计算机网络:数据链路层常用的成帧方式

本文详细介绍了数据链路层的四种成帧方式:字节计数法、字符填充的首尾界定法、比特填充的首尾标志法和违规编码法,包括各自的工作原理、优缺点及实际应用案例。比特填充的首尾标志法因其不依赖字符编码集、硬件实现方便等优势被广泛使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、字节计数法:

原理:利用头部的一个域来指定该帧中的字节数,该域被称为计数字段。当目的主机的数据链路层接收到这个字节计数值的时候就知道后面跟随的字节数了,从而确定帧结束的位置

字节计数法

优点:利用计数字段来确定帧的终止边界,使得数据不会和其他的信息混淆,所以不用采取其他的措施就可实现数据的透明传输,任何数据可以不受限制的进行传输。

缺点:一旦计数字段的值出错,就会使得帧边界识别错误(如下图)。

实际应用:

  • 美国DEC公司的数字数据通信报文协议(DDCMP) 
  • 即使校验和不正确,接收方知道该帧已经被损坏,它仍然无法知道下一帧从哪里开始,失去帧同步,因此,字节技术方法本身很少被使用

 


 

二、使用字符填充的首尾界定法:

原理:考虑到了出错之后的重新同步问题,让每个帧用一些特殊的字符作为开始和结束

  • 特定的字符来定界一帧的开始与结束。
  • 帧内数据是由若干个字符组成的数据块。
使用控制字符进行帧定界

但是这种方法会出现一个问题——如果特殊字符是我们传输数据的一部分就会引起识别失误

针对这个问题,我们采取字节填充的方法解决,在数据部分出现的特殊字符前面填充一些特殊的字节,如下图中的转义字符ESC。在转义字符ESC后面的特殊字符EOT将不会看作帧的开始结束字符。

缺点:和特定的字符编码集关系过于密切,不利于兼容;字节填充软硬件实现困难,依赖于所采用的字符编码集 。

 


 

三、使用比特填充的首尾标志法:

原理:一组特定的比特模式(如:01111110)来标志数据帧的开头和结束

但是这样会出现一个问题——如果数据段传输的数据刚好有01111110这一段咋办?

所以发送方在传输的数据段中碰到 5 个连续的 1 时,就自动在其后面填充一个 0 ;在接收方接收数据时,每收到连续的 5 个 1 就删除后面跟着的 0 。

优点:

  • 不依赖于字符编码集。
  • 比特填充的方法由硬件实现较方便,可用于双向同时通信。
  • 可连续发送而不必停等确认,数据速率较高。
  • 能实现各种较完善的控制功能。

正是因为这些优点,使用比特填充的首尾标记法得到了广泛的使用!

实际应用:IBM公司在20世纪70年代初提出的面向比特的同步数据链路控制SDLC (Synchronous Data Link Control)规程。

SDLC规格帧格式

 


 

四、违规编码法:

原理:(个人理解:把用不上的编码做边界!)

  • 比特编码成信号通常包括一些冗余比特,这种冗余意味着这种冗余不会出现在常规数据中。
  • 可以利用这些保留的信号来指示帧的开始和结束。
  • 借用违规编码序列来定界帧的起始与终止,不需要任何填充技术,便能实现透明性。

缺点:但只适用于存在冗余编码的环境。

 

许多数据链路协议为了安全起见综合使用了上面介绍的这些成帧方法!

 

Ending... ...

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值