HDLC
HDLC (High-Level Data Link Control、高级数据链路控制) 是一个在同步网上传输数据、面向比特的数据链路层协议。帧头和帧尾都是特定的二进制序列,通过控制字段来实现对链路的监控,可以采用多种编码方式实现高效的、可靠的透明传输。不需要数据必须是规定字符集,对任何一种比特流,均可以实现透明的传输
- HDLC 协议只支持点到点链路
- HDLC 协议不支持 IP 地址协商,不支持认证
- 协议内部通过发 Keepalive 报文来检测链路状态,两端设备轮询时间间隔必须相同,3 个周期内无法收到对方发出的 Keepalive 消息就视为链路不可用
- HDLC 协议只能封装在同步链路上,如果是同异步串口的话,只有当同异步串口工作在同步模式下才可以应用 HDLC 协议
串行链路传输方式
在广域网环境下,连接外部设备的一个串口总线标准,数据帧被逐位按顺序传送的线路即串行链路。适用于远距离通信,但传送速度较慢。传输方式分为异步传输与同步传输
异步传输
在异步传输中,数据以字节或字符的形式发送。该传输是半双工型传输。在该传输中,在数据的起始位和停止位都添加了奇偶校验位。不需要同步
同步传输
在同步传输中,数据以块或帧的形式发送。此传输是全双工类型。在发送者和接收者之间强制性同步。在同步传输中,数据之间没有间隙。与异步传输相比,传输大量数据更加有效和可靠
HDLC 帧结构
- Flag : 标志字段,为 01111110(0x7e) 的比特模式,用以标志帧的开始与结束,也可以作为帧与帧之间的填充字符
- Address : 地址字段,内容取决于所采用的操作方式
- Control : 控制字段,用于构成各种命令及响应,以便对链路进行监视与控制
- N(S) : Send Sequence Number
- N(R) : Receive Sequence Number
- P/F : Poll Bit command frame/Final Bit response frame,轮询/终止位
- M : Modifier Function
- S : Supervisory Function
- Protocol : 协议字段,表示 Information 域中的数据封装的协议类型
- Information : 信息字段。可以是任意的二进制比特串,长度未作限定。其上限由 FCS 字段或通信节点的缓冲容量来决定,下限可以是 0,即无信息字段。但是监控帧中不可有信息字段
- FCS : 帧检验序列字段,可以使用 16 位 CRC,对两个标志字段之间的整个帧的内容进行校验
I format (信息帧)
信息帧用于传送有效信息或数据,通常简称 I 帧。I 帧以控制字第一位为 “0” 来标志
S format (监控帧)
监控帧用于监视和控制数据链路,完成信息帧的接收确认、重发请求、暂停发送请求等功能。监控帧不具有信息字段
U format (无编号帧)
无编号帧用于数据链路的控制,它本身不带编号,可以在任何需要的时刻发出,不影响带编号的信息帧的交换顺序。它可以分为命令帧和响应帧