一 HDLC概述
记忆符 |
名 称 |
比特 |
功 能 |
|
b2 |
b3 |
|||
RR |
接收准备好 |
0 |
0 |
确认,且准备接受下一帧,已收妥N(R)以前的各帧 |
RNR |
接收未准备好 |
1 |
0 |
确认,暂停接收下一帧,N(R)含义同上 |
REJ |
拒绝接收 |
0 |
1 |
否认,否认N(R)起的各帧,但N(R)以前的帧已收妥 |
SREJ |
选择拒绝接收 |
1 |
1 |
否认,只否认序号为N(R)的帧 |
可以看出,接收就绪RR型S帧和接收未就绪RNR型S帧有两个主要功能:首先,这两种类型的S帧用来表示从站已准备好或未准备好接收信息;其次,确认编号小于N(R)的所有接收到的I帧。拒绝REJ和选择拒绝SREJ型S帧,用于向对方站指出发生了差错。REJ帧用于GO-back-N策略,用以请求重发N(R)以前的帧已被确认,当收到一个N(S)等于REJ型S帧的N(R)的I帧后,REJ状态即可清除。SREJ帧用于选择重发策略,当收到一个N(S)等SREJ帧的N(R)的I帧时,SREJ状态即应消除。
3*无编号帧(U帧)
无编号帧用于数据链路的控制,它本身不带编号,可以在任何需要的时刻发出,
不影响带编号的信息帧的交换顺序。它可以分为命令帧和响应帧。用5个比特位(即M1、M2)来表示不同功能的无编号帧。HDLC所定义的无编号帧名称和代码见表2。
表2无编号帧的名称和代码
记忆符 |
名 称 |
类型 |
M1 |
M2 |
|
命令 |
响应 |
b3 b4 |
b6 b7 b8 |
||
SNRM |
置正常响应模式 |
C |
0 0 |
0 0 1 |
|
SARM/DM |
置异步响应模式/断开方式 |
C |
R |
1 1 |
0 0 0 |
SABM |
置异步平衡模式 |
C |
1 1 |
1 0 0 |
|
SNRME |
置扩充正常响应模式 |
C |
1 1 |
0 1 1 |
|
SARME |
置扩充异步响应模式 |
C |
1 1 |
0 1 0 |
|
SABME |
置扩充异步平衡模式 |
C |
1 1 |
1 1 0 |
|
DISC/RD |
断链/请求断链 |
C |
R |
0 0 |
0 1 0 |
SIM/RIM |
置初始化方式/请求初始化方式 |
C |
1 0 |
0 0 0 |
|
UP |
无编号探询 |
C |
0 0 |
1 0 0 |
|
UI |
无编号信息 |
C |
0 0 |
0 0 0 |
|
XID |
交换识别 |
C |
R |
1 1 |
1 0 1 |
RESET |
复位 |
C |
1 1 |
0 0 1 |
|
FRMR |
帧拒绝 |
R |
1 0 |
0 0 1 |
|
UA |
无编号确认 |
R |
0 0 |
1 1 0 |
3.2.3 HDLC的操作方式
HDLC是通用的数据链路控制协议,当开始建立数据链路时,允许选用特定的操作方式。所谓链路操作方式,通俗地讲就是以主节点方式操作,还是以从节点方式操作,或者是二者兼备。
在链路上用于控制目的的节点称为主节点,其他的受主节点控制的节点称为从节点。主节点负责对数据流进行组织,并且对数据上的差错实施恢复。由主节点发往从节点的帧称为命令帧,而由从节点返回主节点的帧称为响应帧。连有多个节点的链路通常使用轮询技术,轮询其他节点的节点为主节点,而在点到点链路中每个节点均可为主节点。在一个节点点连接多条链路的情况下,该节点对于一些链路而言可能是主节点,而对另外一些链路而言有可能是从节点。
HDLC中常用的操作方式有3种:
1正常响应方式 NRM
正常响应方式NRM(Normal Response Mode)一种非平衡数据链路操作方式,有时也称为非平衡正常响应方式。该操作方式使用于面向终端的点到点或一点到多点的链路。在这种操作方式下,传输过程由主节点启动,从节点只有收到主节点某个命令帧后,才能作为响应向主节点传输信息。响应信息可以由一个或多个帧组成,若信息由多个帧组成,则应指出哪一帧是最后一帧。主节点负责管理整个链路,且具有轮询、选择从节点及及向从节点发送命令的权利,同时也负责对超时、重发及各类恢复操作的控制。
2异步响应方式 ARM
异步响应方式ARM(Asynchronous Response Mode)也是一种非平衡数据链路操作方式,与NRM不同的是,ARM下的传输过程由从节点启动。从节点主动发送给主节点的一个或一组帧中可包含有信息,
也可以是仅以控制为目的而发的帧。在这种操作方式下,由从节点来控制超时和重发。该方式对采用轮询方式的多节点点链路来说是比不可少的。
3*异步平衡方式 ABM
异步平衡方式ABM(Asynchronous Balanced Mode)是一种允许任何节点来启动传输的操作方式。为了提高链路传输效率,节点之间在两个方向上都需要有较高的信息传输量。在这种操作方式下,任何时候任何节点都能启动传输操作,每个节点点即可以作为主节点又可以作为从节点,即每个节点都是组合节点。各个节点都有相同的一组协议,任何节点都可以发送或接受命令,也可以给出应答,并且各节点对差错恢复过程都负有相同的责任。
整个数据通信一般分为3个阶段:数据链路建立阶段、信息帧传送阶段、数据链路释放阶段。第2阶段的完成需要用到信息帧和监控帧,第1、3阶段的完成需要用到无编号帧。
图5画出了多点链路的建立和释放。主站A先向从站B发出置正常响应模式SNRM的命令,并将P置1,要求B站作出响应。B站同意建立链路后,发送无编号确认UA的响应,将F置1。A站和B站在将其状态变量V(S)和V(R)进行初始化后,就完成了数据链路的建立。接着A站开始与C站建立链路。
图5 多点链路的建立和释放
当数据传送完毕后,A站分别向B站和C站发出断链命令DISC,B站、C站用无编号确认帧UA响应,数据链路就释放了。
图6为点对点链路中两个站都是复合站的情况。复合站中的一个站先发出置异步平衡模式SABM的命令,对方回答一个无编号响应帧UA后,即完成了数据链路的建立。由于两个站是平等的,任何一个站均可在数据传送完毕后发出DISC命令提出断链的要求,对方用UA帧响应,完成数据链路的释放。
3.3 HDLC规程的特点
与面向字符的基本型传输控制规程相比较,HDLC具有以下特点:
1透明传输
HDLC对任意比特组合的数据均能透明传输。“透明”是一个很重要的术语,它表示:某一个实际存在的事物看起来好象不存在一样。“透明传输”表示经实际电路传送后的数据信息没有发生变化。因此对所传送数据信息来说,由于这个电路并没有对其产生什么影响,可以说数据信息“看不见”这个电路,或者说这个电路对该数据信息来说是透明的。这样任意组合的数据信息都可以在这个电路上传送。
2可靠性高
在HDLC规程中,差错控制的范围是除了F标志的整个帧,而基本型传输控制规程中不包括前缀和部分控制字符。另外HDLC对I帧进行编号传输,有效地防止了帧的重收和漏收。
3传输效率高
在HDLC中,额外的开销比特少,允许高效的差错控制和流量控制。
4适应性强
HDLC规程能适应各种比特类型的工作站和链路。
5结构灵活
在HDLC中,传输控制功能和处理功能分离,层次清楚,应用非常灵活。
3.4 HDLC存在的问题
3.4.1"0"位插入/删除技术
如上所述,SDLC/HDLC协议规定以01111110为标志字节,但在信息场中也完全有可能
有同一种模式的字符,为了把它与标志区分开来,所以采取了"0"位插入和删除技术。具体作法是发送端在发送所有信息(除标志字节外)时,只要遇到连续5个"1",就自动插入一个"0"当接收端在接收数据时(除标志字节)如果连续接收到5个"1",就自动将其后的一个"0"删除,以恢复信息的原有形式。这种"0"位的插入和删除过程是由硬件自动完成的,比上述面向字符的"数据透明"容易实现。
3.4.2 SDLC/HDLC异常结束
若在发送过程中出现错误,则SDLC/HDLC协议用异常结束(Abort)字符,或
称失效序列使本帧作废。在HDLC规程中7个连续的"1"被作为失效字符,而在SDLC中失效字符是8个连续的"1"。当然在失效序列中不使用"0"位插入/删除技术。
四 HDLC协议的应用与发展前景
4.1 HDLC的应用特点
1应用场合
就系统结构而言,HDLC适用于点到点或点到多点式的结构;就工作方式而言,HDLCHDLC适用于半双工或全双工;就传输方式而言,HDLC只用于同步传输;在传输速率方面考虑,HDLC常用于中高速传输。
2传输效率
HDLC开始发送一帧后,就要连续不断地发完该帧;HDLCHDLC可以同时确认几个帧;HDLC中的每个帧含有地址字段A,在多点结构中,每个从节点只接收含有本节点地址的帧,因此主节点在选中一个从节点并与之通讯的同时,不用拆链,便可以选择其他的节点通讯,即可以同时与多个节点建立链路。
由于以上特点,HDLC具有较高的传输效率。
3传输可靠性
HDLC中所有的帧(包括响应帧)都有FCS,I帧按窗口序号顺序编号,传输可靠性比异步通讯高。
4数据透明性
HDLC采用“0比特插入法”对数据进行透明传输,传输信息的比特组合模式无任何限制,处理简单。
5信息传输格式
HDLC采用统一的帧格式来实现数据、命令、响应的传输,实现起来方便。
6*链路控制
HDLC利用改变一帧中的控制字段的编码格式来完成各种规定的链路操作功能,提供的是面向比特的传输功能。
4.2 HDLC协议的发展前景
HDLC作为面向比特的数据链路控制协议的典型代表,具有如下特点:协议不依赖于任何一种字符编码集;数据报文可透明传输,用于实现透明传输的“0比特插入法”易于硬件实现;全双工通信,不必等待确认便可连续发送数据,有较高的数据链路传输效率;所有帧均采用CRC校验,对信息帧进行编号,可防止漏收或重份,传输可靠性高;传输控制功能与处理功能分离,具有较大灵活性和较完善的控制功能。由于以上的优点,HDLC协议发展和普及的非常快,目前网络设计普遍使用HDLC作为数据链路层协议,HDLC协议的发展前景也被业内人士看好。
五 结论
本文通过对数据链路层的HDLC协议进行综述介绍,主要内容包括对HDLC的发展数据链路控制协议,HDLC协议的主要内容、存在的技术标准以及HDLC的应用和发展前景等进行了研究。HDLC作为面向比特的数据链路控制协议的典型代表,有着很大的优势: HDLC协议不依赖于任何一种字符编码集;并且数据报文可透明传输,用于实现透明传输的“0比特插入法”也易于硬件实现;另外它采用的是全双工通信,有较高的数据链路传输效率;它的所有帧采用CRC检验,对信息帧进行顺序编号,可防止漏收或重份,传输可靠性比较高;最后其传输控制功能与处理功能分离,具有较大灵活性。
由于以上特点,HDLC的应用得很广泛。目前网络设计普遍使用HDLC作为数据链路层协议。所以说HDLC已经成为通信领域额非常重要的一个协议。