面向字符的同步协议 BSC采用一组定义完善的规程来管理不同情况下的传送次序、应答次序和控制字符的放置次序。下面要描述两种常见的传送次序: 点对点操作: 在点对点操作中,需要发送报文的工作站首先向其它工作站请求对线路的使用许可。一旦请求得到满足,就会像图7-6所示的那样继续进行传输。在得到最后一个数据块的肯定ACK后,线路又处于可用状态,任何工作站都可以用SYN SYN ENQ序列请求使用线路。
多点操作: 在多点操作中(线路中超过两个工作站),一个控制工作站采用轮询技术,请求来自线路上的各个工作站的输入。图7-7对此进行了图解。如果控制工作站有一个报文需要发送,它会采用如图7-8所示的寻址操作。发送了最后的ACK报文后,线路又处于空闲状态。
ENQ SYN SYN SYN SYN ACK0
BCC ETB 正文 STX 标题 SOH SYN SYN SYN SYN ACK1
BCC EOT 正文 STX SYN SYN SYN SYN ACK0
图7-6 使用BSC协议的点对点线路的操作
请求的 请求使用线路 报文的块1 最后一个正文块 肯定应答,充许使用线路 肯定应答,数据接收正确 肯定应答,数据接收正确 接收的
ENQ 地址1 SYN SYN SYN SYN EOT
SYN SYN SOH 标题 STX 正文 EOT BCC ACK0 SYN SYN ENQ 地址3 SYN SYN
图7-7 使用BSC协议的多点线路的轮询操作
控制工作站 询问位于地址1的工作站 对报文的肯定应答 肯定应答,但没用数据要发送 发送报文,作为对询问的响应 询问位于地址2的工作站 ENQ 地址2 SYN SYN 继续询问下一个工作站 从工作站 总得来说,BSC是一个效率较高的协议,很容易理解和实现,所以它在计算机和终端供应商中深受欢迎。它主要有以下缺点: 1、 它不是独立于编码集的 2、 它是一个半双工协议,因而无法利用全双工线路的优势 3、 透明性的实现方法比较困难。
ENQ 地址 SYN SYN EOT SYN SYN SYN SYN ACK0 BCC EOT 正文 STX 标题 SOH SYN SYN SYN SYN ACK1 图7-8 使用BSC协议的多点线路的寻址操作
控制工作站 紧跟地址的EOT,指明所选择的接收工作站 发送报文 肯定应答接收就绪 继续询问下一个工作站 从工作站 对报文的肯定应答 面向比特的协议
High Level Link Control (HDLC) Protocol
The HDLC protocol is a general purpose protocol which operates at the data link layer of the OSI reference model. The protocol uses the services of a physical layer, and provides either a best effort or reliable communications path between the transmitter and receiver (i.e. with
acknowledged data transfer). The type of service provided depends upon the HDLC mode which is used.
Each piece of data is encapsulated in an HDLC frame by adding a trailer and a header. The header contains an HDLC address and an HDLC control field. The trailer is found at the end of the frame, and contains a Cyclic Redundancy Check (CRC) which detects any errors which may occur during transmission. The frames are separated by HDLC flag sequences which are transmitted between each frame and whenever there is no data to be transmitted.
面向比特的协议仅使用一个称为标记字符的特殊字符,对报文的开始和结尾进行标记。“面向比特”的含义是协议将帧看成比特流,而不是像面向字节计数协议那样以字节为单位。 HDLC(High-Level Data Link Control)是一个面向比特的协议,支持半双工和全双工操作,如图7-12所示,HDLC定义了3种类型的工作站 1、 主机到其他站发布命令,并根据它们做出的响应进行动作。主站还负责建立和管理到其他站的连接。 2、 次站响应主站发出的命令。一个次站每次只和一个主站建立连接。它可以发送数据,但不可以向其他站发布命令 3、 组合站既担当主站也担当次站。它们可以向其他组合站发布命令,也可以从它们那里接收命令。 主站次站命令应答点对点
点对多点主站
次站次站
次站命令命令
应答命令
应答
应答组合站次站命令和应答命令和应答点对点
图7-12 HDLC 站的配置 操作模式 HDLC可以在如下3种模式下进行操作 正常响应模式 (Normal Response Mode ,NRM): NRM用于其中一个主站和一个或多个次站的线路。主站询问次站,只有响应的次站才可以发送数据。正常响应模式既可以用于多点链路,也可以用于点对点链路。 异步响应模式(Asynchronous Response Mode,ARM):ARM用于其中一个主站和一个或多个次站的线路。在这种模式中,次站可以在没用得到主站许可的前提下,启动数据或控制信息的传输。主站仍然保持对线路的职责,包括初始化、差错恢复和断开连接。在同时有主站和次站的点对点线路中,ARM模式最常见。 异步平衡模式(Asynchronous Balanced Mode,ABM):ABM用于组合站,即每个节点在没用接收到其他节点许可报文的情况下,都可以在线路上启动一次传输。这是两台计算机间通信的典型情况。ABM是3种模式中使用最广的模式,由于没用轮询开销,它可以更有效地使用全双工线路。
帧 HDLC的基本操作单元是帧,如图7-13所示。帧经过网络发送到目的节点,目的节点对成功到达的帧进行确认。HDLC定义了3种类型的帧。 ●管理帧(S)帧 ●信息帧(I)帧 ●未编号的(U)帧
标志字段(01111110): 为了保证标志的唯一性,数据流中不允许出现连续6个”1”的序列。所有传输的位流必须通过硬件的扫描。利用一种称为 位填补 的技术,在帧的标题和数据部分所有连续5个1的串之后插入一个0,在接收端,这些附加的0位有硬件移除。位填补技术如图7-14所示:
地址字段: 地址字段确定一个帧的目的节点。通常,他的长度为8位。如果帧由主站发送,地址字段中包含了这些帧将要发送的次站的地址。在有数个次站的多点环境中,这个很有必要的。如果有次站发送帧,地址字段包含的就是它自己的地址,因为只有一个主站。次站之间并不互相通信。利用该地址,主站可以确定帧来自哪个次站。 有时,地址字段可能包含一个广播地址或组地址,携带有广播地址的帧,被已经和主站建立通信连接的所有次站接收。携带有组地址的帧,被一个预先定义的组的成员站接收。
控制字段: 控制字段的格式取决于它是 信息帧、管理帧、还是无编号的帧。如图7-15所示。信息帧以一个0位开始,管理帧以10开始,无编号的帧以11开始。 发送编号字段,通常简写为N(S),指正在发送的帧的编号。 当P/F位用户命令帧(由主站发出)时,起轮询的作用,即当该位为1时,要求被轮询的从站给出响应,所以此时P/F位可称为轮询位(P位); 当P/F位用于响应帧时(由从站发出),称为终止位(或Final位),当其为1时,表示接收方确认的结束。 接收编号字段,通常简写为N(R),说明N(R)-1号帧之前的所有帧已经被正确地接收。S和M字段稍候讨论。 H DLC defines currently two formats for frames which carry sequence numbers. These type of frame are used to provide the reliable data link service. Two types of numbered frames are supported:
S (supervisory) frames containing only an acknowledgment number (N(R))
I (information) frames carrying data and containing both a send sequence number (N(S))
and an acknowledgment number (N(R)).
The S frame contain an additional field to identify the function which is to be performed. The 2-bit SS field is used to identify one of four functions:
SS=00 RR - Receiver Ready to accept more I-frames SS=01 REJ - Go-Back-N retransmission request for an I-frame SS=10 RNR - Receiver Not Ready to accept more I-frames SS=11 SREJ - Selective retransmission request for an I-frame