HDLC协议
面向比特的协议中最有代表性的是IBM的同步数据链路控制规程SDLC(Synchronous Data Link Control),国际标准化组织ISO (International Standards Organization)的高级数据链路控制规程HDLC(High Level Data Link Control),美国国家标准协会(American National Standards Institute )的先进数据通信规程ADCCP ( Advanced Data Communications Control Procedure)。这些协议的特点是所传输的一帧数据可以是任意位,而且它是靠约定的位组合模式,而不是靠特定字符来标志帧的开始和结束,故称"面向比特"的协议。
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的编码器在发送码组时为每一码组加入冗余的监督码位。接收时译码器可对在纠错范围内的错码进行纠正,对在校错范 围内的错码进行校验,但不能纠正。超出校、纠错范围之外的多位错误将不可能被校验发现。
"0"位插入/删除技术如上所述,SDLC/HDLC协议规定以01111110为标志字节,但在信息字段中也完全有可能有同一种模式的字符,为了把它与标志区分开来,所以采取了"0"位插入和删除技术。具体作法是发送端在发送所有信息(除标志字节外)时,只要遇到连续5个"1",就自动插入一个"0"当接收端在接收数据时(除标志字节)如果连续接收到5个"1",就自动将其后的一个"0"删除,以恢复信息的原有形式。这种"0"位的插入和删除过程是由硬件自动完成的,比上述面向字符的"数据透明"容易实现。
SDLC/HDLC异常结束若在发送过程中出现错误,则SDLC/HDLC协议用异常结束(Abort)字符,或称失效序列使本帧作废。在HDLC规程中7个连续的"1"被作为失效字符,而在SDLC中失效字符是8个连续的"1"。当然在失效序列中不使用"0"位插入/删除技术。
SDLC/HDLC协议规定,在一帧之内不允许出现数据间隔。在两帧信息之间,发送器可以连续输出标志字符序列,也可以输出连续的高电平,它被称为空闲(Idle)信号。
HDLC(高级数据链路控制)产生的背景
面向字符型数据链路层协议的缺点:
控制报文和数据报文格式不一样;
采用停止等待方式,效率低;
只对数据部分进行差错控制,可靠性较差;
系统每增加一种功能就需要设定一个新的控制字符。
面向比特型协议的设计目标:
以比特作为传输控制信息的基本单元;
数据帧与控制帧格式相同;
传输透明性好;
连续发送,传输效率高。
数据链路的配置和数据传送方式数据链路的配置
非平衡配置
平衡配置
非平衡配置方式
非平衡配置中的主站与从站
主站:控制数据链路的工作过程。主站发出命令
从站:接受命令,发出响应,配合主站工作
非平衡配置中的结构特点
点-点方式
多点方式
非平衡配置方式
正常响应模式(normal response mode,NRM)
主站可以随时向从站传输数据帧;
从站只有在主站向它发送命令帧进行探询(poll),从站响应后才可以向主站发送数据帧。
异步响应模式(asynchronous response mode,ARM)
主站和从站可以随时相互传输数据帧;
从站可以不需要等待主站发出探询就可以发送数据;
主站负责数据链路的初始化、链路的建立、释放与差错恢复等功能。
数据链路的非平衡配置方式
平衡配置方式
链路两端的两个站都是复合站(combined station);
复合站同时具有主站与从站的功能;
每个复合站都可以发出命令与响应;
平衡配置结构中只有异步平衡模式(asynchronous balanced mode,ABM);
异步平衡模式的每个复合站都可以平等地发起数据传输,而不需要得到对方复合站的许可。
数据链路的平衡配置方式
HDLC的帧结构F(flag) :标志字段
01111110
帧同步
传输数据的透明性:当帧其它字段的比特序列中出现和标志字段相同的比特序列时,就后出现判断错误。解决办法是零比特插入与删除: 发送端在两个标志字段之间的比特序列中,如果检查出连续的5个1,不管它后面的比特位是0或1,都增加1个0;在接收端,在2个标志字段之间的比特序列中检查出连续的5个1之后就删除1个0
A(address) :地址字段
当地址字段的首位为1时表示地址字段为8位;当首位为0时表示地址字段为16位。
当使用非平衡方式传送数据时,地址字段总是填入从站地址;当使用平衡方式传送数据时,地址字段填入应答站地址。
如果地址字段全为1,表示是广播地址。
C(control) :控制字段
根据其最前面两个比特的取值,可以分为3大类:信息帧、监控帧和无编号帧,也就是I帧、S帧和U帧。
控制字段中第1或第1、2位表示传送帧的类型,第1位为“0”表示是信息帧,第1、2位为“10”是监控帧,“11”是无编号帧。
信息帧中,234位为存放发送帧序号,5位为轮询位,当为1时,要求被轮询的从站给出响应,678位为下个预期要接收的帧的序号。
监控帧中,34位为S帧类型编码。第5位为轮询/终止位,当为1时,表示接收方确认结束。
无编号帧,提供对链路的建立、拆除以及多种控制功能,用34678这五个M位来定义,可以定义32种附加的命令或应答功能。
I(information) :信息字段
只出现在信息帧和无编号帧中,它是网络层的用户数据。
FCS:帧校验字段
HDLC采用的是CRC校验,校验A、C和I字段的数据。
生成多项式采用CRC-CCITT,G(X)= X16+X12+X5+1
信息帧
如果控制字段的b0为0,那么该帧为信息帧,即I帧
N(S):b1、b2和b3,表示当前发送的信息帧的序号
N(R):b5、b6和b7,表示一个站所已正确接收序号N
(R)-1及以前的各帧,发送站应发序号为N(R)的帧
由于是全双工通信,所以通信双方都有一个N(S)和 N(R)
P/F位:b4,探询/终止位
0,表示没有意义
P=1(询问),如果从站有帧发送,则可以向主站发送
F=1(终止),发送的最后一帧,表示从站已经发送结束
P=1和F=1在帧交换过程中成对出现
信息帧
信息帧
目前发送的序号为3帧
已经正确接收序号为3及以前的各帧,要求对方下一次发送序号为4的帧
使用探询位P=1去询问对方
监控帧
如果控制字段的b0=1,b1=0,那么该帧为监控帧,即S帧
无编号帧
如果控制字段的b0=1,b1=1,那么该帧为无编号帧,即U帧
没有N(S)和N(R)位,主要起控制作用,它可以在需要时发出,不影响带序号的信息帧的交换顺序
数据链路层的工作过程简化的信息帧结构的表示方法
一个信息帧的表示
无编号帧的表示方法
SNRM帧与UA帧结构的表示方法