首页 > 代码库 > Ethernet II、PPP、HDLC 协议分析

Ethernet II、PPP、HDLC 协议分析

一、 Ethernet II
       Ethernet II类型以太网帧的最小长度为64字节(6+6+2+46+4),最大长度为1518字节(6+6+2+1500+4)。其中前12字节分别标识出发送数据帧的源节点MAC地址和接收数据帧的目标节点MAC地址。
       接下来的2个字节标识出以太网帧所携带的上层数据类型,如16进制数0x0800代表IP协议数据,16进制数0x86dd代表IPv6协议数据,16进 制数0x809B代表AppleTalk协议数据,16进制数0x8138代表Novell类型协议数据等。
       在不定长的数据字段后是4个字节的帧校验序列(Frame. Check Sequence,FCS),采用32位CRC循环冗余校验对从"目标MAC地址"字段到"数据"字段的数据进行校验。
  以太网最小发送帧长为64字节,按照标准,10Mbps以太网采用中继器时,连接的最大长度是2500米,最多经过4个中继器,因此规定对10Mbps以 太网一帧的最小发送时间为51.2微秒。这段时间所能传输的数据为512位,因此也称该时间为512位时。这个时间定义为以太网时隙,或冲突时槽。512 位=64字节,这就是以太网帧最小64字节的原因。现在基本上都是交换机或路由器直接连接计算机,集线器连接很少存在了,在交换机或路由器直接连接计算机 时每个计算机与设备之间都是一个独立的冲突域,是不会产生冲突的,因此,此时发送长度小于64字节的帧理论上是可以的,但为了遵循原有标准,考虑到有些集 线器设备依旧在使用,因此保持最小帧长64字节不变。


二、 PPP
        点对点协议(PPP)为在点对点连接上传输多协议数据包提供了一个标准方法。PPP 最初设计是为两个对等节点之间的 IP 流量传输提供一种封装协议。在 TCP-IP 协议集中它是一种用来同步调制连接的数据链路层协议(OSI 模式中的第二层),替代了原来非标准的第二层协议,即 SLIP。除了 IP 以外 PPP 还可以携带其它协议,包括 DECnet 和 Novell 的 Internet 网包交换(IPX)。
PPP(点到点协议)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。
点对点协议(PPP)为在点对点连接上传输多协议数据包提供了一个标准方法。PPP 最初设计是为两个对等节点之间的 IP 流量传输提供一种封装协议。在 TCP-IP 协议集中它是一种用来同步调制连接的数据链路层协议(OSI 模式中的第二层),替代了原来非标准的第二层协议,即 SLIP。除了 IP 以外 PPP 还可以携带其它协议,包括 DECnet和 Novell的Internet 网包交换(IPX)。


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


地址字段和控制字段
        在标志字段之后,可以有一个地址字段A(Address)和一个控制字段C(Contro1)。地址字段用来规定与之通信的次站的地址。控制字段可规定若干个命令。 SDLC规定A字段和C字段的宽度为8位。HDLC则允许A字段可为任意长度,C字段为8位或16位。接收方必须检查每个地址字节的第一位,如果 为"0",则后边跟着另一个地址字节;若为"1",则该字节就是最后一个地址字节。同理,如果控制字段第一个字节的第一位为"0",则还有第二个控制字段 字节,否则就只有一个字节。


信息场
跟在控制字段之后的是信息字段(Information)。信息字段包含有要传送的数据,亦成为数据字段。并不是每一帧都必须有信息字段。即信息字段可以为0,当它为0时,则这一帧主要是控制命令。
帧校验字段
        紧跟在信息字段之后的是两字节的帧校验字段,帧校验字段称为FC(Frame Check)字段, 校验序列FCS(Frame check Sequence)。SDLC/HDLC均采用16位循环冗余校验码CRC (Cyclic Redundancy Code),其生成多项式为CCITT多项式X^16+X^12+X^5+1。除了标志字段和自动插入的"0"位外,所有的信息都参加CRC计算。 CRC的编码器在发送码组时为每一码组加入冗余的监督码位。接收时译码器可对在纠错范围内的错码进行纠正,对在校错范 围内的错码进行校验,但不能纠正。超出校、纠错范围之外的多位错误将不可能被校验发现 。



本文出自 “萧焜垚” 博客,转载请与作者联系!

Ethernet II、PPP、HDLC 协议分析