HDLC协议:高级数据链路(High-Level Data Link Control)
简介帧格式
HDLC帧格式1. 标志字段(Flag) = 8bit
HDLC使用固定的01111110
作为分隔符,分别在帧的开始和结束为止。
两帧之间,共有同一分隔符。即分隔符
- 内容
- 分隔符
- 内容
- 分隔符
。
在信道激活状态期间,即便没有进行帧发送,发送方仍然会不断地发送标志字段。这样如果接收方收到一个不是标志字段的内容,可以判断为,新的一帧传输开始了。
但是数据帧中也有可能包含01111110
的内容,该如何分辨呢?
HDLC采用了"0比特插入法"
"0比特插入法":在发送数据连续5个
1
时,会插入一个0
。这样保证了不会插入连续6个1,无法构成实质上的01111110
内容,而是会发送011111010
2. 地址字段(Address) = 8bit
表示发送节点或者接收节点的地址,具体取决于工作方式。主从模式下,该值一直是从节点。
8bit可以标志256个地址,当首位为0
时,表示后面的一字节表示扩展地址,这样可以超过256个。
3. 控制字段(Control) = 8bit
代表报文的类型,HDLC帧分为信息帧,监控帧,无编号帧。该字段可以控制报文类型,组成各种命令。
4. 信息字段(Information) = ∞
用来存放实际数据,内容长度0
至∞
不限制,为0
则代表无信息字段。例如监控帧就是无信息字段。
5. 帧校验序列字段(FCS) = 16/32bit
HDLC帧中包含一个16或32比特的FCS(Frame Check Sequence, FCS)
其对地址字段,控制字段,信息字段进行循环冗余校验(CRC-16/CRC-32)。接收到帧后对帧校验序列进行校验。发现错误可以发送否定确认,也可以不发送等超时。
帧类型
HDLC有三种帧类型
- 信息帧I,控制字段第1个比特位为
0
- 监控帧S,控制字段第1,2个比特位为
10
- 无编号帧U,控制字段第1,2个比特位为
11
1. 信息帧 Information
N(S)与N(R)分别标志发送帧的序号,和期望接收帧的序号,这两个字段用于实现滑动窗口机制,以及确认已接受N(R)之前的所有帧
2. 监控帧 Supervisor
用于控制差错,其中type代表2字节的类型字段,有四种不同的编码。
3. 无类型帧 Unnumbered
用于连接管理,也可以传输数据。可以管理会话信息。type字段一共3+2=5个比特,可以定义32种类型。
网友评论