浅谈HDLC协议

Published on in 网络 with 0 views and 0 comments

学得慢,忘得快,网络协议亦是如此,今天准备捡起一个数据链路层的协议——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