链路层

一、数据链路层有三个目的:

1)为IP模块发送和接收IP数据报。

2)为ARP模块发送ARP请求和接收ARP应答。地址解析协议

3)为RARP发送RARP请 求和接收RARP应答。逆地址解析协议

二、­数据链路层的协议:

最常用的以太网链路层协议,串行接口链路层协议(SLIP和PPP), 大多数实现都包含的环回(loopback)驱动程序, 还有PPP协议(adsl宽带)。

1.以太网和IEEE 802封装

链路层_第1张图片

目的地址及源地址都为48位,即硬件地址。

CRC为检验码。

2,SLIP:串行线路IP(Serial Line IP)

      适用于家庭中每台计算机几乎都有的R S - 2 3 2串行端口和高速调制解调器接入Internet。

      帧格式:1)IP数据报以0Xc0(END)分割;

                  2)IP数据报有END字符,由连续传输两个字节0Xdb(ESC)和0xdc取代;

                  3)IP数据报有ESC字符,由连续传输两个字节0Xdb和0xdd取代。

      缺陷:1)每一端必须知道对方的IP地址;

              2)帧中没有类型字段。如果一条串行线路用于S L I P, 那么它不能同时使用其他协议。

              3)没有CRC字段。如果S L I P传输的报文被线路噪声影响而发生错误,只能通过上层协议来发现(另一种方法是,新型的调制解调器可以检测并纠正错误报文)。这样,上层协议提供某种形式的C R C就显得很重要。

3. PPP:点对点协议

      点对点协议修改了SLIP协议中的所有缺陷:

标志7E 地址FF  控制03   协议(2字节) 信息(最多1500字节)                                            CRC(2字节)标志7E

                                             0021                      IP数据报

                                              C021                     链路控制数据LCP(Link Control Protocol)

                                              8021                      网络控制数据NCP(Network Control Protocol)

      0x7e转义:在同步链路中,该过程是通过一种称作比特填充(bit stuffing)的硬件技术来完成的。在异步链路中,特殊字符0x7d用作转义字符。当它出现在PPP数据帧中时,那么紧接着的字符的第6个比特要取其补码,具体实现过程如下:

            1) 当遇到字符0x7e时,需连续传送两个字符: 0x7d和0x5e,以实现标志字符的转义。

            2) 当遇到转义字符0x7d时,需连续传送两个字符: 0x7d和0x5d,以实现转义字符的转义。

            3 ) 默认情况下,如果字符的值小于0x20(比如,一个ASCII控制字符),一般都要进行转义。例如,遇到字符0 x 0 1时需连续传送0x7d和0x21两个字符(这时,第6个比特取补码后变为1,而前面两种情况均把它变为0)。

      PPP比SLIP优点: (1) PPP支持在单根串行线路上运行多种协议,不只是IP协议;

                              (2) 每一帧都有循环冗余检验CRC;

                              (3) 通信双方可以进行IP地址的动态协商(使用IP网络控制协议);

                              (4) 与CSLIP类似,对TCP和IP报文首部进行压缩;

                              (5) 链路控制协议可以对多个数据链路选项进行设置。为这些优点付出的代价是在每一帧的首部增加3个字节,当建立链路时要发送几帧协商数据,以及更为复杂的实现。

三、基本问题

封装成帧,透明传输,差错检测

1.封装成帧:给数据添首部和尾部(其中加帧开始符SOH及帧结束符EOT)

2.透明传输:不管所传输数据是什么样的比特组合,都应当能够在链路上传输。所以,如遇到SOH就会出错,故用ESC SOH来取代SOH

3.差错检测:用CRC循环冗余检验。

你可能感兴趣的:(链路层)