一、链路层协议作用
链路层协议紧紧贴近物理层,有效数据包含IP协议头。
链路层主要目的:
- 为IP模块发送和接收IP数据;
- 为ARP模块发送ARP请求和接收ARP应答;
- 为RARP发送RARP请求和接收RARP应答;
链路层协议由网络所使用的硬件决定,包括:
- 以太网;
- 令牌环网;
- FDDI(光纤分布式数据接口);
- RS-232串行线路;
以太网IP数据报的封装是在RFC894中定义的,主机需求RFC要求每台Internet主机都与一个10Mb/s的以太网电缆相连接。
简单说,传输层协议就是封装在数据(各层协议)最外层的协议。
下面介绍两种传输层协议SLIP和PPP协议。
二、SLIP协议和PPP协议
1.SLIP协议
SLIP全称Serial Line IP。是一种在串行线路上对IP数据报进行封装的简单形式。SLIP适用于家用PCRS-232串口和调制解调器接入的Internet,是一种网传串口的协议封装。
SLIP协议规则:
- IP数据报以一个“END”(0xC0)的特殊字符结束。同时,为防止数据报到来之前的线路噪声被当成数据报内容,大多数实现在数据报的开始处也传一个“END”;
- 如果IP报文中出现“END”字符,就连续传输两个字节“0xdb”和“0xdd”来取代。“0xdb”被称作SLIP协议的“ESC”字符;
- 如果IP报文出现“0xdb”字符,就连续传输两个字节“0xdb”和“0xdd”来取代它;
SLIP协议缺陷:
- 每一端必须知道对方的IP地址,没有办法吧本端IP地址通知给另一端;
- 数据帧中没有类型字段,如果一条串行线路用于SLIP,则不能同时用于其他协议;
- SLIP没有在数据帧上加检验和。如果SLIP传输的报文被线路噪声影响发生错误,只能通过上层协议发现;
2. PPP协议
PPP,点对点协议修改了SLIP协议中的缺陷:
- 在串行链路上封装IP数据报的方法:PPP 既支持数据位8位和无奇偶校验的异步模式(串口),还支持面向比特的同步链接;
- 建立、配置及测试数据链路的链路控制协议;
- 针对不同网络层协议的网络控制协议体系。
- 每一帧以“0x7e”开始和结束,接着是地址字节“0xff”,然后是一个值“0x03”控制字节;
- 协议字段,类似于以太网中的类型字段功能,当值为“0x0021”时,表示为一个IP数据报;当值为“0xc021”时,表示信息字段是链路控制数据;值为0x8021时,表示信息字段是网络控制数据;
- CRC字段(或FCS,帧检验序列)是一个循环冗余校验码,以检验数据帧中的错误;
- 当信息字段中,出现标识字符值为“0x7e”,则PPP需要对其进行转义;
3. 小结
PPP协议比SLIP协议具有优势:
- PPP支持在单根线路上运行多种协议,不只是IP协议;
- 每一帧有循环冗余校验;
- 通信双方可以进行IP地址的动态协商;
- 对TCP和IP报文首部进行压缩;
- 链路控制协议可以对多个数据链路选项进行设置
这些优点的代价是每一帧首部增加了3字节,当建立链路时要发送几帧协商数据。
三、最大传输单元MTU
点到点的链路层(SLIP和PPP)的MTU并非指的是网络媒体的物理特性。相反,是一个逻辑限制,目的是为交互使用提供足够块的响应时间。
四、路径MTU
两台通信主机路径中的最小MTU值,被称为路径MTU。