- 论坛徽章:
- 0
|
1、级链路控制规程(HDLC--High Data Link Control)是面向二进制位的成熟控制规程,它可以支持任意二进制数据的传输。
(1)HDLC数据帧格式:
起始标志 要传输的数据块 结束标志
01111110 00110110000101100110111 01111110
包括起始和终止标志的信息块称为HDLC的“数据帧”。起始和终止标志采用相同的帧间隔符“01111110”,即在HDLC规程中,帧与帧之间用“01111110” 所分隔,“帧”构成了通信双方交换的最小单位。
(2)一些术语:
HDLC来源于IBM公司的SDLC,因此也采用了一些SDLC的术语和说明。
术 语 名
说 明
主 站
(Primary Station)
控制整个链路的工作,可发出命令来确定和改变链路的状态,包括确定次站、组织数据传输和链路恢复等
![]()
次 站
(Secondary Station)
次站也称从站,指受主站控制,只能发出响应的站
主站与每一次站均维持一条独立的逻辑链路
非平衡结构
由一个主站和一个或多个次站组成,适用于点-点、点-多点操作
组 合 站
(Combined Station)
兼有主/次站功能的站。
![]()
平衡结构
由两个组合站组成,适用于点-点操作
(3)HDLC数据传输模式:
正常响应模式(NRM):主站具有选择、轮询次站的能力,并可向次站发送命令或数据;次站只有在主站询问时才能作为响应传输数据;
异步响应模式(ARM):主站具有初始链路,差错校正和逻辑拆链功能;次站可以主动传输数据;
异步平衡模式(ABM):任一组合站均可控制链路,主动传送数据。
(4)HDLC一般帧格式:
![]()
说明:
F:帧间隔模式:“01111110”---同步符号、 帧之间的填充字符。 01111110111110000111100010101111110101010011111110101001111110
A:地址字段:通信对方的地址
C
:
控制字段
:用于区分帧的类型(数据帧、监控帧、无编号帧)
I:信息字段:携带高层用户数据,可以是任意的二进制位串;
FCS:校验码:对A、C、I字段进行循环校验。
g(x)=x16+x12+x5+1 (CCITT和ISO使用);
g(x)=x16+x15+x2+1 (IBM的SDLC使用)。
由于帧中至少含有A(地址)、C(控制)和FCS(帧校验序列)字段,因此整个帧长度应大于32位。
(5)“0”比特插入法
为了保证帧间隔符“01111110”的唯一性和帧内数据的透明性,保证A(地址字段)、C(控制字段)、I(信息字段)、FCS(帧校验序列)中不出现01111110的位模式,HDLC采用了‘0’比特插入法。
发送端:发送“01111110”后,开始数据发送,并在数据发送过程中,检查发送的位流,一旦发现连续的5个‘1’,则自动在其后插(附)上1个‘0’,并继续传输后继的位流;数据发送结束后,追加帧间隔符“01111110”。
接收端: 执行相反的动作:一旦识别出帧间隔符“01111110”之后的位流不是“01111110”,则启动接收过程;若识别出连续5个‘1’和1个‘0’,则自动丢弃该‘0’,以恢复原来的位流;若识别出连续的6个‘1’,表示数据结束,该数据帧接收完成。
(6)HDLC控制帧字段格式:
0 1 2 3 4 5 6 7
信息帧 I
监控帧 S
无编号帧 U
0
Nr
P/F
Ns
1
0
type
P/F
Ns
1
1
M1
P/F
M2
说明:
信息帧(I):
用于传输用户数据,其控制字段的第0位规定为‘0’;
监控帧(S):
用于表示接收状态,其控制字段的第0、1位规定为“10”;第2、3位表示了四种类型的监控帧。
无编号帧(U):
用于命令的传输(建立/拆除链路)等;
(7)HDLC窗口机制和捎带应答机制:
为了减少应答次数,提高传输效率,HDLC控制规程中引入了窗口机制和稍带应答。
传输窗口:通信双方同意在同一条链路上连续使用的信息帧序号集。
窗口尺寸:通信双方协商同意的在同一条链路上可连续发送、且未被认可的信息帧个数;
HDLC窗口尺寸确定为 23-1=7;
即任一方可以最多连续发送7帧而无需对方的确认。
在信息帧中用Nr,Ns来表示当前窗口的情况。
捎带应答:是HDLC传输控制规程用于提高传输效率的又一措施。
允许在反向传输的信息帧中附带确认信息。
超时重发:为了防止发送方无期限地等待接收方的确认,收发双方均设置计时器。发送方在一定的时间内未收到接收方传来的确认,表示传输有故障,准备重发所有未被确认的帧。
发送方:每发送一信息帧,计时, 直到收到接收方的确认(包括捎带应答);若超时,则重发;
接收方:在正确接收到信息帧后,计时;若在一定的时间内未收到后继信息,则发RR帧,准备接收,并告诉发送方前面已接收。
2、面向字符型的传输控制规程:
主要支持字符数据的传输(或者将位串组合成字符序列的传输),其典型代表为二进制同步通信规程(BSC)
(1)BSC控制方法:
建立链路: 建立链路指建立通信双方的收发关系
数据传输: 在链路建立的基础上,传输数据
拆除链路: 释放通信双方已建立的收发关系
(2)相关通信名词:
主叫方: 主动要求建立链路的一方,
被叫方: 同意主叫方请求,与主叫方建链的一方
发送方: 发送数据的一方,
接收方: 接收数据的一方
(3)通信双方交换的信息序列类型:
正文信息: 通信双方正常交换的数据(双方均可发送);
正向控制序列:主叫方发给被叫方的控制信息序列
反向控制序列:被叫方发给主叫方的控制信息序列。
(4)BSC控制字符:
采用ASCII中的10个特殊的字符(控制字符),并在这些字符之前增加一个转义字符 “DLE”,如 DLE SOH, DLE ETX 等。形成特殊的控制字符组,控制数据(字符序列)传输的过程。
标 记
名 称
ASCΠ码值
EDCDIC码值
功 能 说 明
SOH
序始
01H
01H
表示数据块中标题的开始
STX
文始
02H
02H
表示数据块中正文的开始
ETX
文终
03H
03H
表示数据块中正文的结束
EOT
送毕
04H
37H
表示整个数据块的结束
ENQ
询问
05H
2DH
请求对方予以响应
ACK
确认
06H
2EH
接收方正确接收数据块的响应
NAK
否认
15H
3DH
接收方未正确接收数据块的响应
DLE
转义
10H
10H
用于修改紧随其后字符的语义
SYN
同步
16H
32H
用于收发双方的字符同步
ETB
组终
17H
26H
成组传输时的组结束标记
(5)字符的转义:
在控制字符之前增加一个转义字符(DLE),防止数据的二义性。BSC主要支持字符数据的传输,也可以支持二进制数据传输,但二进制数据时必须被组合,例如:七位形成一个位组。由于二进制位组合的随机性,可能出现等同控制字符组的位串(例如:DLE SOH),为了保证数据的透明性(即数据中允许任意的二进制数据),同时保证这些等同控制字符组的位串不会导致控制的混乱,BSC采用了字符转义的方法--字符填充法。
(6)字符填充法:
发送方在可能产生争议的DLE位串之前再增加一个转义字符(DLE),如 DLE DLE SOH;接收方每接收到两个连续的DLE则丢弃其中的一个DLE。
发送序列:
DLE STX A DLE B STX C DLE E F G DLE ETX
传输序列:
DLE STX A DLE DLE B STX C DLE DLE E F G DLE ETX
接收序列:
DLE STX A DLE B STX C DLE E F G DLE ETX
(7)BSC数据块格式:
标题字段 + 正文字段
标题字段: 包含与正文传输和处理有关的辅助信息,可以省略
例如:发方地址、收方地址、处理要求等;
正文字段:包含用户希望传输的应用数据,字段之间采用相应的控制字符组予以分隔。
数 据 块 格 式
基本格式:
(包括标题和正文)
SYN SYN DLE SOH 标题 DLE STX 正文 DLE ETX 校验码
无标题格式:
SYN SYN DLE STX 正文 DLE ETX 校验码
成组格式:
SYN SYN DLE SOH 标题 DLE STX 正文组1 DLE ETB 校验码
......
SYN SYN DLE STX 正文组n DLE ETX 校验码
注:
数据分组:
如果要传输的数据较长,可以被分为若干个数据块(或称为数据分组)进行传输。对每组数据块的进行编号(称为序号),以示逻辑上完整的数据块之间的关系。同时可解决传输过程中的数据块重发和重收的问题。
数据块按序发送时,序号累加。重发该数据块时,数据块的序号不变; 接收方发现序号相同的数据块(重复接收),应予以丢弃。
校验码:
当采用
水平垂直奇偶校验
时,先对字符施行水平偶校验,再对整个数据块施行垂直偶校验,校验内容包括标题(如果有标题)、正文、直至DLE ETB或者DLE ETX; 校验结果附加在整个数据块之后传输。
当采用
循环校验
时,产生式选择为g(x)=x16+x12+x5+1,校验内容同上。
数据转义:如果标题字段和正文字段中含有DLE字符,则应前缀一个DLE字符予以转义;
同步措施:解决同步的问题,数据块以一个或多个(通常为两个)SYN SYN 字符间隔。
控制序列和控制协议
确认(ACK):
SYN SYN 0/1 DEL ACK
对所收数据块的确认,表示该数据块已被正确接收;对有关监控信息的确认,表示具有接收数据的能力。
否认(NAK):
SYN SYN DLE NAK
对所收数据块的否认,表示该数据块未正确接收;对有关监控信息的否认,表示不具有接收数据的能力
询问(ENQ):
SYN SYN 站地址 DLE ENQ
用于轮询或者选择控制序列
拆链(EOT):
SYN SYN DLE EOT
表示数据传输结束,拆除收发双方已经建立的收发关系
说明:
四种控制序列仅采用
水平奇偶校验
技术进行差错检测。
采用
半双工的停-等协议
,控制通信双方的交互过程,即一方发出信息(数据块或者控制序列)之后,必须等待对方的响应,仅在收到对方的响应之后,才能进行新的动作。
BSC采用了超时重发技术,避免可能的信息传输丢失而导致的无限期等待。如果若干次重发之后,仍然不成功,则认为链路故障,拆链并通知用户。重发技术要求发送方必须暂存被发送的数据块。
BSC工作过程
阶段
主机A
主机B
建链阶段
(建立收发关系)
主机A向主机B发出询问
ENQ.主机B地址 ━→
主机B未准备好接收,向主机A发否认
←━ NAK
主机A向主机B继续发出询问
ENQ.主机B地址 ━→
主机B已准备好接收,向主机A发确认
←━ 0.ACK
数
据
传
输
阶
段
A向B发第1块数据 正文1 ━→
主机B已正确接收,向A发确认
←━ 1.ACK
A向B发第2块数据 正文2 ━→
主机B已正确接收,向A发确认
←━ 0.ACK
A向B发第3块数据 正文3 ━→
A未收到B的确认,超时重发
正文3 ━→
主机B已正确接收,向A发确认
←━ 1.ACK
A未收到B的确认(B的确认可能丢失)超时重发
正文3 ━→
主机B已正确接收(重复收取正文3,丢弃),并向A发确认
←━ 1.ACK
主机A同意接收数据,向B发确认
0.ACK ━→
主机B有数据要发送,向A发询问。
←━ ENQ.主机A
主机A已正确接收,向B发确认
1.ACK ━→
B向A发第1块数据
←━ 正文1
......
......
拆链阶段
(释放收发关系)
A向B发拆链请求,表示数据传输结束。
EOT ━→
B向A发拆链请求,表示数据传输结束。
←━ EOT
(8)BSC规程分析:
不足之处:
(i)控制规程与特定的字符编码集关系过于密切,兼容性较差,
(ii)半双工的停-等协议(反馈重传),传输效率较低,
即使物理链路可以支持全双工通信,BSC仍然不能加以利用;
(iii)数据块和控制序列格式不统一,易引起二义性,使用不方便;
(v)控制序列的差错校验能力仅依赖于控制字符本身的字符奇偶校验能力,可靠性较低。
优点:
仅需要很少的缓存容量,规程简单,易于实现。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/6574/showart_162887.html |
|