|
知识路径: > 计算机网络原理 > 网络分层与功能 > 数据链路层 >
|
相关知识点:14个
|
|
|
|
数据链路层为了能实现数据有效的差错控制,就采用了一种“帧”的数据块进行传输。而要采帧格式传输,就必须有相应的帧同步技术,这就是数据链路层的“组帧”(也称为“帧同步”、“成帧”)功能。
|
|
|
采用帧的好处是,在发现有数据传送错误时,只需将有差错的帧再次传送,而不需要将全部数据的位流进行重传,这样传送效率上将大大提高。但同时也带来了两方面的问题:
|
|
|
|
(2)在夹杂着重传的数据帧中,接收方在接收到重传的数据帧时是识别成新的数据帧,还是识别成已传帧的重传帧呢?这就要靠数据链路层的各种“帧同步”技术来识别了。“帧同步”技术既可使接收方能从以上并不是完全有序的位流中准确地区分出每一帧的开始和结束,同时还可识别重传帧。
|
|
|
|
|
字符计数法是一种面向字节的同步规程,是利用帧头部中的一个字段来指定该帧中的字符数,以一个特殊字符表征一帧的起始,并以一个专门字段来标明帧内的字符数。这种方法遇到的问题是计数值有可能由于传输差错而导致字符数信息出错或丢失,目前很少使用这类计数法。
|
|
|
|
字符填充帧定界法只适用于面向字符的链路层协议,如20世纪60年代末由IBM公司开发的二进制同步通信(BInary SYNchronous Communication,BISYNC)协议。字符填充组帧法采取的措施是每个帧以ASCII字符序列DLE STX开头、DLE ETX结束(DLE、STX和ETX分别为ASCII字符集里的控制字符,其中DLE为Data Link Escape,STX为Start of TeXt,ETX为End of TeXt)。用这种方法,接收端通过扫描输入线路上的DLE STX和DLE ETX就能确定帧的起始和结束。
|
|
|
字符填充组帧法带来的一个问题是,当用户数据中含有DLE STX或DLE ETX字符序列时,将严重干扰帧的定界。解决的办法是:让发送方在发送数据的每个DLE字符前面再插入一个DLE字符,而接收方在接收数据时删除插入的DLE字符,这种方法叫做字符填充(Character Stuffing)技术。这样,接收方在扫描物理线路的字符序列时,如果发现只是单个DLE出现,就可以断定一定是帧的起始或结束标识符DLE STX或DLE ETX,而不是数据DLE,因为后者总是成对出现的。下图给出了用户数据在进行字符填充前、填充后以及去掉填充字符后的情况。
|
|
|
|
|
|
位填充帧定界法是位填充组帧法。位填充组帧法克服了字符填充组帧法的缺点,因为它不依赖特定的字符集,允许发送的数据为任意的位组合。该方法可以用于面向位的链路层协议,如IBM的同步数据链路控制(Synchronous Data Link Control,SDLC)和ISO的高级数据链路控制(High Data Link Control,HDLC)协议。
|
|
|
位填充组帧法是在每一帧的头和尾各引入一个特殊的位组合作为帧的起始和结束标识符,如01111110(十六进制7E)。当接收方扫描到01111110时就知道是一帧的开头,接收方开始扫描并接收位串直到扫描到下一个01111110标识符为止。
|
|
|
位填充组帧法也带来一个同样的问题,即当发送的数据中含有01111110位组合时,也将严重干扰正常的组帧。为保证标识符的唯一性但又兼顾帧内数据的透明性,可以采用“0位插入法”来解决。也就是说,在发送端发送用户数据,当发现有连续的5个“1”出现时便在其后添加一个“0”,然后继续发送后续的用户数据。在接收端接收用户数据除标识符以外的所有字段,当发现有连续5个“1”出现后,若其后一个位为“0”,则自动删除它以恢复原来的位流。下图给出了一个位填充的例子。
|
|
|
|
|
|
物理层违例法在物理层采用特定的位编码方法时采用。例如,曼彻斯特编码方法,是将数据位“1”编码成“高-低”电平对,将数据位“0”编码成“低-高”电平对。
|
|
|
数据位“0”编码成“高-低”电平对,将数据位“1”编码成“低-高”电平对,这种说法在考试中也是正确的。
|
|
|
不管哪种说法,“高-高”电平对和“低-低”电平对在数据位中是违法的。这样,在每个数据位中都有电平跳变,而作为帧界定符就不会有电平跳变,就借用这些违法编码序列来界定帧的起始与终止。
|
|
|
局域网IEEE 802.3和802.5标准中就采用了这种方法。违法编码法不需要任何填充技术,便能实现数据的透明性,但它只适于采用冗余编码的特殊编码环境。
|
|
|