首页 > 代码库 > 分析ppp、hdlc、EthernetII协议

分析ppp、hdlc、EthernetII协议

   ppp协议(点到点协议)属于网络接口层,主要用于拨号接入Internet的场合。)PPP具有动态分配IP地址的能力,允许在连接时刻协商IP地址;具有错误检测以及纠错能力,支持数据压缩;为了建立点对点链路通信,PPP 链路的每一端,必须首先发送 LCP 包以便设定和测试数据链路。在链路建立,LCP 所需的可选功能被选定之后,PPP 必须发送 NCP 包以便选择和设定一个或更多的网络层协议。一旦每个被选择的网络层协议都被设定好了,来自每个网络层协议的数据报就能在链路上发送了PPP是面向字符的,HDLC是面向位的。ppp帧格式如下:

                                    

技术分享

    其首尾两个7E为帧定界标志,取值固定为7E;FF为地址字段,由于点到点链路的端点唯一,所以该字段设为FF;03(C)为控制字段,包含了帧类型和序号等信息;FCS是帧校验字段,用于检测是否有差错;

                ppp协议规定有用于建立、配置和测试ppp协议的LCP(链路控制协议);用wireshark扑捉的数据包如下图:

技术分享

   HDLC协议

    HDLC是面向比特的数据链路控制协议的典型代表,该协议不依赖于任何一种字符编码集;数据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬件实现;全双工通信,有较高的数据链路传输效率;所有帧采用CRC检验,对信息帧进行顺序编号,可防止漏收或重发,传输可靠性高;传输控制功能与处理功能分离,具有较大灵活性。SDLC/HDLC协议规定,所有信息传输必须以一个标志字符开始,且以同一个字符结束。这个标志字符是01111110,称标志字段(F)。从开始标志到结束标志之间构成一个完整的信息单位,称为一帧(Frame)。所有的信息是以帧的形式传输的,而标志字符提供了每一帧的边界。接收端可以通过搜索"01111110"来探知帧的开头和结束,以此建立帧同步。

    在标志字段之后,可以有一个地址字段A(Address)和一个控制字段C(Contro1)。地址字段用来规定与之通信的次站的地址。控制字段可规定若干个命令。控制字段中第1或第1、2位表示传送帧的类型,第1位为“0”表示是信息帧,第1、2位为“10”是监控帧,“11”是无编号帧SDLC规定A字段和C字段的宽度为8位。HDLC则允许A字段可为任意长度,C字段为8位或16位。接收方必须检查每个地址字节的第一位,如果为"0",则后边跟着另一个地址字节;若为"1",则该字节就是最后一个地址字节。同理,如果控制字段第一个字节的第一位为"0",则还有第二个控制字段字节,否则就只有一个字节。紧跟在信息字段之后的是两字节的帧校验字段,帧校验字段称为FC(Frame Check)字段, 校验序列FSCFrame checkSequence)。

技术分享

        wireshark扑捉的数据包如下图:

技术分享


     Ethernet II协议

   以太网是当今现有局域网采用的最通用的通信协议标准。该协议定义了局域网中采用的电缆类型和信号处理方法。它由6个字节的目的MAC地址,6个字节的源MAC地址,2个字节的类型域(用于标示封装在这个Frame、里面的数据的类型)接下来是46-1500字节的数据和4字节的帧校验。

    报头8    目标地址6    源地址6    以太类型2    有效负载46-1500    帧检验序列4

   报头:8字节,前7个0,1交替的字节(10101010)用来同步接收站,一个1010101011字节指出帧的开始位置。报头提供接收器同步和帧界定服务。

   目标地址:6个字节,单播多播或者广播。单播地址叫个人、物理、硬件或MAC地址,广播地址为全1,0xFF FF FF FF。

   源地址:6个字节。指出发送节点的单点广播地址。

   以太类型:2个字节,用来指出以太网帧内所含的上层协议。即帧格式的协议标识符。对于IP报文来说,该字段值是0x0800。对于ARP信息来说,以太类型字段的值是0x0806。

   

   有效负载:由一个上层协议的协议数据单元PDU构成。可以发送的最大有效负载是1500字节。由于以太网的冲突检测特性,有效负载至少是46个字节。如果上层协议数据单元长度少于46个字节,必须增补到46个字节。

   帧检验序列:4个字节。验证比特完整性。


技术分享

    Destination:目标地址为C4:01:20:E8:00:00

    SOURCE:源地址为c4:02:21:e8:00:00



分析ppp、hdlc、EthernetII协议