浅谈 HDLC 协议

Updated on in 网络 with 484 views

学得慢,忘得快,网络协议亦是如此,今天准备捡起一个数据链路层的协议——HDLC(High-Level Data Link Control,高级数据链路控制)。

HDLC 协议用以实现远端资源共享及交互,面向比特 传播,并且保证远端准确无误的接收到数据流。

特点

  1. 不依赖于任何一种字符编码集
  2. 对于任何一种比特流都可以透明传输,使用 0比特填充法 易于硬件实现
  3. 全双工通信,有较高的数据链路传输效率
  4. 所有帧采用 CRC检验,对信息帧进行顺序编号,可防止漏收或重发,传输可靠性高
  5. 传输控制功能与处理功能分离,具有较大灵活性。

站类型

  1. 主站 :主站发出的帧为 命令帧,负责链路控制
  2. 从站 :从站发出的帧为 响应帧,在主站控制下操作
  3. 复合站 :既有主站功能,又有从站功能

帧类型

  1. 信息帧 (I帧):包含用户数据、该帧的编号和捎带的应答序列N
  2. 管理帧 (S帧):负责流量控制和差错控制
  3. 无编号帧 (U帧):用于链路控制

链路配置

  1. 非平衡配置 : 既可用于点对点链路也可用于多点链路。这种配置由一个主站和多个从站组成,可以支持 全双工半双工
  2. 平衡配置 : 只能用于点对点链路。这种配置由两个复合站组成,同样支持 全双工半双工

传输方式

  1. 正常响应方式(Normal Response Mode,NRM),适合不平衡配置,主站启动数据传输过程,从站只有收到命令时才能发送数据
  2. 异步平衡方式(Asynchronous Balanced Mode,ABM),适合两端都是复合站的平衡配置,任何一方都可以启动数据传输
  3. 异步响应方式(Asynchronous Response Mode,ARM),适合不平衡配置,从站在没有收到主站命令时,就可以启动数据传输服务

协商过程

  1. 协商建立过程 : HDLC 每隔10s后互相发送链路探测的协商报文,其收发顺序是由序号决定的,序号失序则造成链路中断。这种用来探询点到点链路是否激活状态的报文称之为 keep-alive 报文
  2. 传输报文过程 : 将 IP 报文封装在 HDLC 层上,数据传输过程中,仍然进行 keep-alive 报文协商以探测链路的合法有效
  3. 超时断连阶段 : 当封装 HDLC 的接口连续3次(当接收包速率超过1000packets/s时为6次),无法收到对方对自己的递增序号的确认时,HDLC 协议 Line Protocol 由 Up 向 Down 转变。此时链路处于瘫痪状态,数据无法通信

0 比特填充法

零比特填充法又称零比特插入法。若在两个标志字段之间的比特串中,碰巧出现了和 HDLC 标志字段F(01111110)一样的比特组合,那么就会误认为是帧的边界。为了避免出现这种情况,HDLC 采用零比特填充法使一帧中两个F字段之间不会出现6个连续1,即在出现5个1后自动填充1个0,以此来区别标志字段F。


标题:浅谈 HDLC 协议
作者:Jeffrey

Responses
取消