面向字符的同步控制协议
面向字符的同步协议是最早提出的同步协议,其范例代表是IBM的二进同步通信BSC(Binary Synchronous Communication)协议。随后ANSI和ISO都提出了类似的相应标准。
任何链路层协议均可由链路建立、数据传输和链路拆除三部分组成。位实现建链、拆链等链路管理以及同步等各种功效,除了正常传输的数据块和报文外,还需要一些把持字符。BSC协议用ASCII和EBCDIC字符集定义的传输把持字符来实现相应的功效。这些传输把持字符的标记、名字及ASCII码值和EBCDIC码值见表3.3。
表3.3 传输把持字符
标记 SOH STX ETX EOT ENQ ACK DEL NAK SYN ETB
名称 序始 文始 文终 送毕 询问 确认 转义 否定 同步 块终
ASCII码值 01H 02H 03H 04H 05H 06H 10H 15H 16H 17H
EBCDIC码值 01H 02H 03H 37H 2DH 2EH 10H 3DH 32H 26H
各传输把持字符的功效如下:
SOH(START OF hEAD):序始,用于表现报文的标题信息或报头的开始。
STX(Start of test):文始,标记标题信息的结束和报关文本的开始。
ETX(End of Text):文终,标记报文文本的结束。
EOT(End of Transmission):送毕,用以表现一个或多个文本的结束,并拆除链路。
ENQ(Enquire):询问,用以恳求远程站给出响应,响应可能包含站的身份或状态。
ACK(Acknowledge):确认,由吸收方发出的作为对正确吸收到报文的响应。
DLE(Data Link Escape):转义,用以修正紧跟其后的有限个字符的意义。在BSC中,实现透明方法的数据传输,或者当10个传输把持字符不够用时供给新的转义伟输把持字符。
NAK(Negative Acknowledge):否定,由吸收方发出的作为对未正确吸收的报文的响应。
SYN(Synchronous):同步字符,在同步协议中,用以实现节点之间的字符同步,或用于在无数据传输时保持该同步。
ETB(End of transmission Block):块终或组终,用以表现当报文分成多个数据块的结束。
BSC协议将在链路上传输的信息分为数据和监控报文两类。监控报文又可分为正向监控和反向监控两种。每一种报文中至少包含一个传输把持字符,用以断定报文中信息的性质或实现某种把持作用。
数据报文一般由报头和文本组成。文本是要传送的有效数据信息,而报头是与文本传送及处理有关的援助信息,报头有时也可不用。对于不超过长度限制的报文可只用一个数据块发送,对较长的报文则分作多块发送,对较长的报文则分作多块发送,每一个数据块作为一个传输单位。吸收方对于每一个收到的数据块都要给以确认,发送方收到反回的确认后,才干发送下一个数据块。
BSC协议的数据块有如下四种格式:
(1)不带报头的单块报文或分块传输中的最后一块报文:
┈┈ SYN SYN STX 报文 ETX BCC
(2)带报头的单块报文:
┈┈ SYN SYN SOH 报头 STX 报文 ETX BCC
(3)分块传输中的第一块报文:
┈┈ SYN SYN SOH 报头 STX 报文 ETB BCC
(4)分块传输中的中间报文:
┈┈ SYN SYN STX 报文 ETB BCC
BSC协议中所有发送的数据均跟在至少两个SYN字符之后,发使吸收方能实现字符同步。报头字段的包辨认符及地址。所有数据块在块终限定符(ETX或ETB)之后还有块校验字符BCC(block check character),bcc可以是垂直奇偶校验或者说16位CRC,校验领域从STX开始到ETX或ETB为止。
当发送的报文是二进制数据库而不是字符串时,二进制数据中形同传输把持字符的比特串将会引起传输混乱。为使二进制数据中容许涌现与传输把持字符雷同的数据(即数据的透明性),可在各帧中真正的传输把持字符(SYN除外)前加上DLE转义字符,在发送时,若文本中也涌现与DLE字符雷同的二进制比特串,则可插入一个外加以标记。在吸收端则进行同样的检测,若创造单个的DLE字符,则可知其后为传输把持字符;若创造持续两个DLE字符,则知其后的DLE为数据,在进一步处理前将其中一个删去。
正、反向监控报文有如下四种:
(1)断定确认和选择响应:
(2)否定确认和选择响应:
SYN SYN ACK
SYN SYN NAK
(3)轮询/选择恳求:
(4)拆链:
SYN SYN P/S前缀 站地址 ENQ
SYN SYN EOT
监控报文一般由单个传输把持字符或由若干个其它字符领导的单个传输把持字符组成。领导字符统称为前缀,它包含辨认符(序号)、地址信息、状态信息以及其它所需信息。ACK和NAK监控报文的作用,首先是作为对先前所发数据块是否正确吸收的响应,因而包含辨认符(序号);其次,用做对选择监控信息的响应,以ACK表现所选站能吸收数据块,而NAK不能吸收。ENQ用作轮询和选择监控报文,在多站结构中,轮询或选择的地址在ENQ字符前。EOT监控报文用以标记报文交换的结束,并在两站点间拆除逻辑链路。
由于BSC协议与特定的字符编码集关系过于密切,故兼容性较差。为满足数据透明性而采用的字符填充法,实现起来比较麻烦,且依附于所采用的字符编码集。另外,由于BSC是一个半双工协议,它的链路伟传输效率很低。不过,由于BSC协议需要的缓冲存储空间较小,因而在面向终端的网络系统中仍然被广泛利用。