一、简介
链路层主要有三个目的:
(1)为IP模块发送和接受IP数据报;
(2)为ARP模块发送ARP请求和接受ARP应答;
(3)为RARP发送RARP请求和接受RARP应答。
二、以太网和IEEE 802封装
两种帧都采用48bit(6字节)的目的地址和源地址,也成为硬件地址。ARP和RARP协议对32bit的IP地址和48bit的硬件地址进行映射。两种封装格式如下所示:
其中长度字段不包括CRC校验码。
三、SLIP:串行线路IP
SLIP协议定义的格式:
(1)IP数据报以一个END(0xc0)的特殊字符结束。大多数实现在数据报开始处也传一个END字符,可终止前一个错误报文的传输;
(2)如果IP数据报中某个字符是END,则要连续传输两个字节的0xdb和0xdc来取代它。0xdb这个字符被称作SLIP的ESC字符,但它的值与ASCII码的ESC字符(0x1b)不同。
(3)如果IP报文中某个字符为SLIP的ESC字符,则连续传输两个字节0xdb和0xdd来取代它。
报文封装格式如下所示:
SLIP也有缺陷,主要包括:
(1)每一端必须知道对方的IP地址。没有办法把本端的IP地址通知给另一端;
(2)数据帧中没有类型字段。如果一条串行线路用于SLIP,那么它不能同时使用其他协议;
(3)SLIP没有在数据帧中加上校验和。
四、压缩的SLIP
压缩的SLIP,即CSLIP,能把40字节压缩到3~5个字节。它能在每一端维持多达16个TCP链接,并知道每个链接的首部中的某些字段一般不会发生变化。被压缩的首部大大缩短了交互响应时间。
五、PPP:点对点协议
点对点协议修改了SLIP协议中的所有缺陷,主要包括以下三个部分:
(1)在串行链路上封装IP数据报的方法。支持数据为8位和无奇偶校验的异步模式,还支持面向比特的同步连接。
(2)建立、配合和测试数据链路的链路控制协议LCP,允许通信双方进行协商,以确定不同的选项。
(3)针对不同网络层协议的网络控制协议NCP体系。
下图为PPP数据帧格式:
PPP协议每一帧都以0x7e开始和结束。紧接着是一个地址字节,值始终是0xff,然后是一个值为0x03的控制字节。接下来是协议字段。分别可承载IP数据报、拦路控制数据和网络控制字段。
CRC字段是一个循环冗余校验码,以检测数据帧中的错误。
当信息字段中出现0x7e时,PPP需要对其进行转义,过程如下:
(1)当遇到字符0x7e,需要传递两个字符0x7d额0x5e,以实现标志字符的转义;
(2)当遇到转义字符0x7d时,需要传递两个字符0x7d和0x5d,以实现转义字符的转义;
(3)默认情况下,如果字符值小于0x20,一般都要进行转义。
链路控制协议可指定是否需要对32个字符中的某些值进行转义,默认情况下是对所有32个字符都进行转义。
PPP比SLIP有以下优点:
(1)PPP支持在单根串行线路上运行多种协议,不只是IP协议;
(2)每一帧都有循环冗余检验;
(3)通信双方可以进行IP地址的动态协商(通过IP网络控制协议);
(4)与CSLIP类似,对TCP和IP报文首部进行压缩;
(5)链路控制协议可以对多个数据链路选项进行设置。
六、环回接口
环回接口loopback interface,允许运行在同一主机上的客户程序与服务器程序通过TCP/IP进行通信。根据惯例,IP地址127.0.0.1为环回接口,其命名为localhose。
环回接口处理IP数据报过程如下:
七、最大传输单元MTU
链路层对数据帧长度都有一个限制,这个特性称作最大传输单元MTU。
下图为不同类型网络下MTU的值:
如果需要传输的数据长度比链路层的MTU还大,那么IP层就要对数据进行分片。
八、路劲MTU
两台通信主机路径中的最小MTU,称作路径MTU。
来源:https://www.cnblogs.com/riasky/p/3361031.html