同步传输控制规程实现多字符或者多位组合的数据块为单位的传输。同样,也要求在数据块传输之前、传输过程中对双方进行同步。传输之前的同步可以依赖于特定编码的非数据位,或者收发双方的握手信号。传输过程中的同步则依赖于将同步信号融合在数据信号中的方法予以实现。接收方从传输来的数据信息中分离出同步信号,调整接收时钟或者取样脉冲。由于采用数据块为单位的传输,能够比较有效地利用信道容量。同步传输控制规程主要分为两类:面向字符型的传输控制规程和面向数据位型的传输控制规程。
3.5.2面向字符型的传输控制规程
尽管面向字符型的传输控制规程存在较多的问题,但其优点是仅需要很少的缓冲存储容量,实现比较简单,对物理链路的要求不高,因此,在面向终端的网络系统例如点对点通信中仍然常被使用。
(1)控制方法
二进制同步通信规程(BSC)是基本型控制规程。它的执行包含3个阶段:建立链路、数据传输和拆除链路。建立链路是指建立通信双方的收发关系。通常,主动要求建立链路的一方称为主叫方;对应的一方称为被叫方。数据传输只能建立在链路的基础上,传输方向可以是双向的。数据传输过程中发送数据的一方称为发送方;接收数据的一方称为接收方。拆除链路是指释放通信双方已经建立的关系。BSC利用10个专门的控制字符组成特殊的控制序列,来控制数据的传输过程,并且采用反馈重传和超时重发的方法保证数据传输的正确性。
(2)传输对象
通信双方正常交换的字符信息序列包含以下3类:
a.正文信息:通信双方正常交换的字符型应用数据。
b.正向控制序列:主叫方发给被叫方的控制信息序列。
c.反向控制序列:被叫方发给主叫方的控制信息序列。
(3)控制字符
尽管BSC主要支持字符数据的传输,但也可以支持数据位(二进制数据)的传输,此时,数据位必须被组合,例如7位为一组。由于位组合的随机性,可能出现相同控制字符的位序列。为了保证数据中允许任意的数据位序列,或者为了保证这些相同控制字符的位序列不会导致控制的混乱,可在对应的位组合之前增加转义字符DLE。DLE之后的控制字符不再起控制作用,而具有普通数据的含义。
(4)数据块格式
BSC规程支持的数据块一般由标题字段和正文字段两部分组成。字段之间采用控制字符予以分隔。正文字段包含用户希望传输的应用数据,标题字段包含与正文传输和处理有关的辅助信息,例如发方地址、收方地址、处理要求等。标题字段可以省略。如果标题字段和正文字段中含有控制字符,该控制字符应前缀DLE予以转义;如果应用数据很长,由于传输和处理方面的原因,应用数据可以被分为若干个数据块。正文内部可以隐含数据块的序号,以表示逻辑上完整的数据块之间的关系,或者解决传输过程中重新收发的问题。重发该数据块时,数据块的序号不变;数据块按序发送时,序号累加,以此解决帧重复接收的问题。为了解决同步问题,数据块以一个或者多个SYN字符间隔。为了解决数据块传输正确性问题,BSC规定采用水平垂直奇-偶校验或循环校验方式进行差错检验。
(5)控制序列
BSC规程采用的控制序列一般由1个控制字符或者由若干个其他字符引导的单个控制字符序列组成。控制序列包括正向控制序列和反向控制序列,主要分为以下4种格式:
a.确认(ACK)。表示数据块已被正确接收或者已经具备接收数据的能力。
b.否认(NAK)。表示数据块未被正确接收或者不具备接收数据的能力。
c.询问(ENQ)。用于轮询或者选择控制序列,通常前缀为被轮询或者选择的站地址。
d.拆链(EOT)。表示数据传输结束,拆除收发双方已建立的联系。
以上4种控制序列都采用水平奇-偶校验技术作差错检验。BSC采用半双工的等-停协议控制通信双方的交互过程,即一方发出信息后,必须等待对方的响应,仅在收到对方的响应之后,才能进行新的动作。为了避免信息传输丢失而导致无限期等待,BSC采用超时重发技术。如果若干次重发仍不成功,则认为链路故障,拆链并通知用户。
3.5.3面向数据位型的传输控制规程
面向数据位型的传输控制规程可以支持任意二进制数据的传输,ISO的高级数据链路控制(ISOHDLC)规程就是典型代表。下面根据ISOHDLC介绍本规程。
(1)传输对象
高级数据链路控制(HDLC)规程支持任意二进制数据的传输,每个二进制信息块由特定的起始标志引导,并由特定的终止标志结束。包括起始标志和终止标志的信息块称为帧,起始标志和终止标志采用相同的数据位模式01111110,称为间隔位模式。实际上,帧是由间隔位模式01111110所分隔的最小通信单位。
(2)HDLC规程的说明
a.3种类型的站
主站:控制整个链路的工作,可发出命令来确定和改变链路状态;
次站:接受主站控制,只能发出响应的站,主站和每一个次站之间均维持1条独立的逻辑链路;
复合站:兼有主站和次站功能。
b.2种链路结构
不平衡结构:由1个主站和1个或多个次站组成,适用于点对点或者多点操作;
平衡结构:由2个复合站组成,适用于点对点操作。
c.3种数据传输模式
正常响应模式(NRM):适用于不平衡结构,主站具有选择、轮询次站的功能,并可向次站发送命令或者数据,次站只有在主站询问时才能作为响应而传输数据;
异步响应模式(ARM):适用于不平衡结构,主站具有建立链路、差错校正和逻辑拆线功能,与NRM不同的是次站可以主动传输数据;
异步平衡模式(ABM):适用于平衡结构,任一复合站均可控制链路,主动传输数据。
(3)一般帧结构
HDLC规程支持所有帧使用相同的结构。每个帧都由间隔数据位模式(F)、地址字段(A)、控制字段(C)、信息字段(I)、帧校验序列(FCS)组成。
F取值为“01111110”,用于标识一个帧的起始和终止,也可以作为帧之间的填充字符。F通常由硬件自动产生并发往链路。为了保证F的惟一性和帧内数据的透明性,保证在其他字段中不出现数据位模式“01111110”,HDLC规程采用了“0”位插入法。发送端发送“01111110”后,开始数据发送,并在数据发送过程中,检查发送的数据位流,一旦发现连续5个“1,则自动在其后插上一个“0”位,并继续传送后继的数据位流;数据发送结束后,再传送“01111110”。接收端执行相反的动作:一旦识别“01111110”后面不是间隔数据位模式,则启动接收过程,若识别出5个“1”和1个“0”连在一起,则自动丢弃该“0”,以恢复原来的数据位流。若识别出连续6个“1”,结束接收过程,完成帧的接收工作。
A的含义与数据传输模式有关。对于NRM和ARM,A表示次站的地址。对于ABM,A表示对方的地址。A可以扩充,如果对应地址字段的字节第1位为“0”,表示后续字节仍属于地址字段;如果为“1”,表示本字节为地址字段的最后地址字节。
C用于区分帧的类型。HDLC规程的帧分为两种:信息帧(I帧)和控制帧;控制帧分为监控帧(S帧)和无编号帧(U帧)。
I为被传送的用户数据,可以是任意的二进制数据位串。
FCS为对A、C、I字段的循环校验。