(2)链路层

你离开我真会死。 提交于 2020-01-14 01:30:07

一、简介

    链路层主要有三个目的:

    (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。

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!