概述
HDLC是一种基于比特流的同步传输协议,是一种运行在串行链路上的协议
将设备分为主站,从站复合站,在链路上用于控制目的站称为主站,其它的受主站控制的站称为从站,复合站既可以发送命令也可以响应命令
报文
FLAG:标识报文的开始与结束,用01111110标识
Address:8b,标识链路在站上的地址,全1为全站地址,全0为无站地址
control:控制段,用于区分三种类型帧,具体情况如图所示
S字段(supervisory function bit):监控命令字段,2bit组成4种监控命令
M字段(modifier function bit):无编号帧的命令字段,共5bit
FCS:校验和,16位,用于检验数据完整性
类型
I帧
信息帧,通常用于传输数据
较为重要的字段有N(S)字段(transmitting send sequence number),N(R)字段,P/F字段(poll/final)
N(S) | transmitting send sequence number | 标记当前传输的信息的编号,基本帧格式3b,非基本帧格式可拓展至7b或15b |
N(R) | Receive sequence number | 标记期望接收的序列号 |
P/F | poll/final | 查询/结束 |
S帧
监管帧,通常用于流量管控,差错控制
内容包含RR,RNR,REJ,SREJ
RR | 00 | 接收就绪,请求下一帧 |
RNR | 10 | 接收未就绪,请求暂停 |
REJ | 01 | 拒绝,要求重传所有编号 |
SREJ | 11 | 拒绝,要求重传指定帧 |
U帧
无编号帧,提供链路建立和拆除,有5个M位,可标识32种命令,但大多空缺,可参考图表
DM | 11000 | 断开模式 |
SNRM | 00001 | 正常响应模式 |
FRMR | 10001 | 拒绝 |
DICS/RD | 00010 | 请求断开连接 |
XID | 11101 | 交换识别 |
UA | 00110 | 无编号确认 |
特点
1.可实现透明传输
2.只支持点到点链路,不支持点到多点
3.不支持IP地址协商,不支持认证
4.协议内部通过Keepalive报文来检测链路状态
5.0比特插入法,为防止误识flag导致报文信息不正确,当放送数据是011111时,在5个1后补0
链路配置
非平衡配置
既可用于点对点链路也可用于多点链路。这种链路由一个主站和多个从站组成,可以支持全双工或半双工
平衡配置
只能用于点对点链路。这种配置由两个复合站组成,同样支持全双工或半双工传输。
操作模式
正常响应方式(NRM)
适用于不平衡链路结构,即用于点-点和点-多点的链路结构中,特别是点-多点链路。主站控制整个链路的操作,负责链路的初始化、数据流控制和链路复位等。从站只有在收到主站的明确允许后,才能发出响应
异步响应方式(ARM)
也适用于不平衡链路结构。它与NRM不同的是:在ARM方式中,从站可以不必得到主站的允许就可以开始数据传输。显然它的传输效率比NRM有所提高
异步平衡方式(ABM)
适用于平衡链路结构。链路两端的复合站具有同等的能力,不管哪个复合站均可在任意时间发送命令帧,并且不需要收到对方复合站发出的命令帧就可以发送响应帧。ITU-T X.25建议的数据链路层就采用这种方式
工作过程
建立链路
如果链路属于多点链路,则建立结果如下
1.双方调整参数,准备进行链路搭建
2.主站发送链路请求帧,请求搭建链路
3.次站进行分析做出对应操作,可以接收回复链路确认信息
4.重复2,3部,直到想到目的站点可通
倘若双方都是复合站,那么建立过程如上图所示,仅需1次
传输信息
传输信息,双方通过keeplive报文确认链路存活
断开连接
同理,对于多点链路的链路释放,过程:
1.依次发送断开请求
2.对端收到后回复确认断开链路,释放相关资源
复站间链路释放如图所示
总结
HDLC的可靠传输,透明传输使得ta在历史上发光发热,为许多误码率高的网络贡献自己的力量但随技术发展,技术不断完善的今天,HDLC无法提供认证的缺陷也决定了它的命运