网络基础数据传输过程中的同步
在数据传输过程中,经常会发生接收方接收数据与发送方不一致的问题。
为保证发送方所传递的信息能够被接收端正确无误的接收,在数据通信中,需要发送端和接收端的工作必须控制在同一时间内进行,即发送方以某一速率在一定的时间内传送数据,接收端也必须以相同的速率在相同的时间内接收数据。
1.异步传输
异步传输(Asynchronous Transmission)将比特分成小组进行传送,小组可以是8位的1个字符或更长。
发送方可以在任何时刻发送这些比特组,接收方并不知道数据会在什么时候到达。
这就像有人出乎意料地从后面走上来跟你说话,而你没来得及反应过来。
因此,每次异步传输的信息都以一个起始位开头,它通知接收方数据已经到达了,这就给了接收方响应、接收和缓存数据比特的时间;在传输结束时,一个停止位表示该次传输信息的终止。
按照惯例,空闲(没有传送数据)的线路实际携带着一个代表二进制1的信号,异步传输的开始位使信号变成0,其他的比特位使信号随传输的数据信息而变化。
最后,停止位使信号重新变回1,该信号一直保持到下一个开始位到达,如图3-26所示。
图3-26 异步传输字符格式
异步传输字符格式中的起始位和结束位是用来实现字符的同步,字符之间的间距(时间)是任意的,但发送一个字符时,发送每一位占用的时间长度是由发送端和接收端事先商定,并且保持各位都恒定不变,从而实现同步。
2.同步传输
同步传输(Synchronous Transmission)的比特分组要大得多。
它不是独立地发送每个字符,每个字符都有自己的起始位和结束位,而是把它们组合起来一起发送。
这些组合称为数据帧,或简称为帧。
数据帧的第一部分包含一组同步字符,它是一个独特的比特组合,类似于前面提到的起始位,用于通知接收方一个帧已经到达,但它同时还能确保接收方的采样速度和比特的到达速度保持一致,使收发双方进入同步。
实现同步传输的方法由外同步法和自同步法两种。
帧的最后一部分是一个帧结束标记。
与同步字符一样,它也是一个独特的比特串,类似于前面提到的结束位,用于表示在下一帧开始之前没有别的即将到达的数据了。
1.外同步法
外同步法是指,在发送端和接收端之间建立一条单独的时钟线路,发送端在发送数据之前,首先向接收端发出一个同步时钟脉冲,接收端按照这一同步时钟脉冲的频率和时序,来锁定接收端的接收频率,以便在接收数据的过程中始终与发送端同步。
这种方法在短距离传输中比较有效,而在长距离传输时,同步信号将会因失真而失效。
2.自同步法
自同步法是指采用数据编码技术(如曼彻斯特编码或差分曼彻斯特编码),使数据信号中携带时钟信号的方法。
利用自同步法,发送端和接收端能够实现在比特位级上的同步,但是接收端需要知道数据块的起始位置和结束位置,为此可以在数据块的头部和尾部分别附加上前同步码(Preamble)和后同步码(Postamble),即数据帧,其中,前文和后文表示数据块的开始位置和结束位置,且前文和后文的特性取决于数据块是面向字符的,还是面向比特的。
在面向字符的同步传输中,帧头是一个或多个同步字符SYN。
SYN是一个控制字符,其后面是数据字节。
接收端在收到帧头后,便开始接收后面的数据块,以直到遇到另一个同步字符为止。
具有代表性的面向字符同步传输协议由IBM的二进制同步协议(BSC或BISYNC)。
面向字符同步传输的BISYNC帧格式,如图3-27。
图3-27 BISYNC帧格式
在面向比特的同步传输中,用标志序列01111110来标识一帧的开始或结束。
为避免在数据中也出现01111110而造成的混乱,发送端总是在其发送的数据中以每出现5个连续1时,就插入一个附加的0;接收端则每检测到5个连续的1并且其后有一个0时,就删除该0。
其中,高级数据链路控制协议(HDLC)就是面向比特同步传输协议的代表。
面向比特同步传输的HDLC帧格式,如图3-28所示。
图3-28 HDLC帧格式。