📅  最后修改于: 2023-12-03 15:31:07.048000             🧑  作者: Mango
HDLC的基本框架结构
HDLC(High-level Data Link Control,高级数据链路控制)是一个用于数据通信的协议,常用于串行线路上。
HDLC帧结构
HDLC帧结构包含以下几个部分:
- 起始标志:一个字节(0x7E),表示帧的起始。
- 地址:一个字节,标示接收端的地址。一般设置为0x00(无地址)。
- 控制码:一个字节,用于控制流程。包括发送和接收方地址、传输模式(半双工或全双工)、确认、重发等控制信息。
- 数据:可选,最大长度为2048字节。
- 帧校验序列(FCS):4字节,用于检查帧是否被篡改。
- 结束标志:一个字节(0x7E),表示帧的结束。
HDLC帧结构示意图如下:
+---------------+--------------+----------------+-------+---------------+
| 起始标志(1B) | 地址(1B) | 控制码(1B) | 数据 | FCS(4B) | 结束标志(1B) |
+---------------+--------------+----------------+-------+---------------+
HDLC控制码
HDLC控制码用于控制流程和交换信息。它包含以下几个位:
- 帧类型位(bit 0):用于区分信息帧、确认帧和非编号帧(无响应信息帧)。
- 发送序号位(bit 1-3):用于编号信息帧。发送方每发送一个信息帧,该位加1。
- 接收序号位(bit 4-6):用于编号信息帧。接收方每收到一个信息帧,该位加1。
- 最后一帧位(bit 7):用于标识消息的结束。发送方在发送最后一个帧时,该位为1。
HDLC帧的传输方式
HDLC帧一般有两种传输方式:
- 异步传输方式:每个字节间隔一段时间,通过计时器来完成。
- 同步传输方式:在开始标志后,以定时而不是字符间的时间来控制帧的传输和接收。
HDLC实现
在实现HDLC协议时,需要完成以下几个部分:
- 帧的发送和接收:将数据分成多个帧,加上控制码和校验码后发送。
- 流组装和拆解:将多个帧合并为一个流,或将一个流分解为多个帧。
- 校验码计算:计算校验码,检查帧是否被修改。
参考资料