比特填充的例子

Cel*_*tas 12 networking data-link-layer bitstuffing

我正在阅读一个阅读的例子

比特填充.假设数据链路层从网络层接收到以下位串:01110111101111101111110.位填充后的结果字符串是什么?加粗已添加的每一位.

回答:

0111011110111110011111010
               ^      ^  
Run Code Online (Sandbox Code Playgroud)

这个答案是如何达成的?我的理解是位填充通过在帧的开头和结尾插入特定的位序列(称为标志值)来工作.我没有得到的是:

  1. 我们没有被告知旗帜价值!
  2. 我们没有被告知框架有多大,所以我们怎么知道把旗子放在哪里?

附加信息:我认为这个网络是以太网.

附加信息2:位标志是01111110

老实说,我认为我理解,但不是不完整的答案,因为他们没有将旗帜01111110添加到最后或be?他们只是在消息中出现这种位模式时进行处理.

其他例子:这里他们也这样做.

man*_*pak 11

考虑: 0111011110111110*0111110*10

在它找到一个0然后连续五个1位之后,它会填充一个0.这假设0比特填充是常见的.


小智 11

对于数据链路层中的网络成帧,有一些方法是面向比特的,其中之一.

它应该是一种了解在接收器端的链路上传输的帧的开始和结束的方法,因此有一些像HDLC一样的帧格式.你可以看到这个.

在许多类型的帧格式中,有乞讨序列(显示帧的开始)和结束序列(显示帧的结束)和作为数据的帧的主体.可能发生的问题是体内结束序列的出现,这可能使得帧结束不正确.

为了防止出现这个问题,帧的发送者在身体上稍微有点用于解除结束序列的模式,这种技术称为比特填充.

看看这个例子:

位序列号:110101111101011111101011111110(无位填充)

位序列号:1101011111 0 01011111 0 101011111 0 110(带位填充)

在连续5个1位之后,填充0位.

填充的位标记为粗体.

  • 这个答案比被接受的答案要好 (2认同)