HDLC协议

简介

HDLC(High-Level Data Link Control,高级数据链路控制),是链路层协议的一项国际标准,用以实现远程用户间资源共享以及信息交互。HDLC协议用以保证传送到下一层的数据在传输过程中能够准确地被接收,也就是差错释放中没有任何损失,并且序列正确。HDLC协议的另一个重要功能是流量控制,即一旦接收端收到数据,便能立即进行传输。

特点

HDLC协议使用统一的帧格式,运用方便;采用零比特插入法,易于硬件实现,且支持任意的位流传输,实现信息的透明传输;全双工通信,吞吐率高,在未收到应答帧的情况下,可连续发送信息帧,提高数据链路传输的效率;采用CRC帧校验序列,可防止漏帧,提高信息传输的可靠性。
主要有四个特点:

  1. 对于任何一种比特流都可透明传输。
  2. 较高的数据链路传输效率。
  3. 所有的帧都有帧校验序列(FCS),传输可靠性高。
  4. 用统一的帧格式来实现传输。

HDLC基本配置

HDLC协议定义了3种类型的站、2种链路配置和3种数据传输方式。

3种类型的站如下:

(1)主站。主站发出的帧叫命令帧,负责对链路进行控制。
(2)从站。从站发出的帧叫响应帧,在主站的控制下进行操作。
(3)复合站。既具有主站的功能,也有从站的功能,既可以发送命令帧,也可以发送响应帧。

2种链路配置如下:

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

3种数据传输方式如下:

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

HDCL帧格式

标志字段F,固定为01111110,作为帧开始和结束的标记。

地址字段A,表示链路上站的地址。在使用不平衡链路结构传送数据时,地址字段总是写入从站的地址;在使用平衡链路结构时,地址字段总是写入应答站的地址。(即地址是接收方的地址)地址字段的长度一般为8bit,最多可以表示256个站的地址。在许多系统中规定,地址字段为“11111111”时,定义为全站地址,即通知所有的接收站接收有关的命令帧并按其动作;全“0”比特为无站地址,用于测试数据链路的状态。因此实际有效地址共有254个之多,这对一般的多点链路是足够的。但考虑在某些情况下,例如使用分组无线网,用户可能很多,可使用扩充地址字段,以字节为单位扩充。在扩充时,每个地址字段的第1位用作扩充指示,即当第1位为“0”时,后续字节为扩充地址字段;当第1位为“1”时,后续字节不是扩充地址字段,地址字段到此为止。

控制字段C,控制字段用来表示帧类型、帧编号以及命令、响应等,以便对链路进行监视和控制。发送方主站或复合站利用控制字段来通知被寻址的从站或复合站执行约定的操作;相反,从站用该字段作对命令的响应,报告已完成的操作或状态的变化。该字段是HDLC的关键。控制字段中的第一位或第一、第二位表示传送帧的类型,HDLC中有信息帧(I帧)、监控帧(S帧)和无编号帧(U帧)三种不同类型的帧。

信息字段I,信息字段内包含了用户的数据信息和来自上层的各种控制信息,在I帧和某些U帧中,具有该字段,它可以是任意长度的比特序列,但必须是8比特的整数倍。监控帧(S帧)中规定不可有信息字段。

FCS,帧校验序列用于对帧进行循环冗余校验,其校验范围从地址字段的第1比特到信息字段的最后一比特的序列,并且规定为了透明传输而插入的“0”不在校验范围内。

HDLC帧类型

信息帧(l帧)

信息帧包含用户数据、该帧的编号和捎带的应答序列N(R)。I帧包含一位PF位,主站发出的命令帧是P,即询问(Polling);从站发出的响应帧是F位,即终止位(Final)。
在正常响应方式(NRM)下,主站发出的命令帧将PF置l,表示询问帧,也允许从站发送数据;从站响应主站的询问,可以发送多个响应帧表示,只将最后一个响应帧的PF置1就表示数据发送完毕。在异步响应方式(ARM)和异步平衡方式(ABM)时,P/F位用于控制U帧和S帧的交换过程。

管理帧(S帧)

管理帧负责流量控制和差错控制,管理帧有4种,包括接收就绪(RR)、接收未就绪(RNR)、拒绝接收(REJ)和选择性拒绝接收(SREG)。

无编号帧(U帧)

U帧用于链路控制。U帧比较多,按其控制功能可以分为以下几类:
a)设置数据传输方式的命令帧和响应帧。
b)传输信息的命令帧和响应帧。
c)链路恢复的命令帧和响应帧。
d)其他的命令帧和响应帧。

协商过程

随着通信的进步,通信信道的可靠性比过去已经有了非常大的改进。已经没有必要在数据链路层使用很复杂的协议(包括编号、检错重传等技术)来实现数据的可靠传输。因此,不可靠传输协议PPP已成为数据链路层主流协议,而可靠传输责任落到运输层TCP协议身上。
下面来讨论其链路协商的过程。
(1)协商建立过程:HDLC每隔10s后互相发送链路探测的协商报文,报文的收发顺序是由序号决定的,序号失序则造成链路中断。这种用来探询点到点链路是否激活状态的报文称之为keepalive报文。
(2)传输报文过程:将IP报文封装在HDLC层上,数据传输过程中,仍然进行keep-alive的报文协商以探测链路的合法有效。
(3)超时断连阶段:当封装HDLC的接口连续3次(当接收包速率超过1000packets/s时为6次),无法收到对方对自己的递增序号的确认时,HDLC协议Line Protocol由Up向Down转变。此时链路处于瘫痪状态,数据无法通信。
简单的说,链路处于Down状态,当设备检测到载波或网管配置指示物理层可用时,HDLC发送一个UP事件,进入Establish阶段。启动链路检测定时器、初始化超时计数器,通过Keepalive报文交互建立连接,当收到对端链路检测帧时,将链路协议UP并进入Maintain阶段,链路始终处于UP状态、可承载网络层报文。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇