13

我正在阅读一个示例

位填料。假设数据链路层从网络层接收到以下位串:01110111101111101111110。位填充后的结果串是什么?将添加的每个位加粗。

回答:

0111011110111110011111010
               ^      ^  

这个答案是如何得出的?我的理解是位填充通过在帧的开头和结尾插入特定的位序列(称为标志值)来工作。我不明白的是:

  1. 我们没有被告知标志值!
  2. 我们没有被告知框架有多大,那么我们怎么知道在哪里放置旗帜呢?

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

附加信息 2:位标志是01111110

老实说,我想我明白了,但答案不是不完整,因为他们没有在结尾或开头添加标志 01111110 吗?他们只是在消息中出现这种比特模式时处理了问题。

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

4

5 回答 5

12

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

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

在许多类型的帧格式中,有请求序列(显示帧的开始)和结束序列(显示帧的结束)以及作为数据的帧主体。可能出现的问题是在正文中出现了结尾序列,这可能使帧结尾的识别不正确。

为了避免这个问题,帧的发送者在帧的主体上填充一些位来打乱结束序列的模式,这种技术称为位填充

看这个例子:

位序列:110101111101011111101011111110(无位填充)

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

在 5 个连续的 1 位之后,填充一个 0 位。

填充位标记为粗体。

于 2014-11-09T20:46:49.637 回答
11

考虑:0111011110111110*0111110*10

在它找到 a0然后五个连续1的位后,它会填充 a 0。这假设0了常见的位填充。

于 2013-04-19T10:05:22.827 回答
2

位填料:

输入流:        0110111111100111110111111111100000
填充流:     未填充流01101111101100111110011111011111000000
0110111111100111110111111111100000

于 2018-01-10T07:20:47.177 回答
1

问题中没有足够的信息来完全回答“任何”协议,但是以太网例如位填充帧内容在 5 个连续的 1 位之后具有 0 位,这里似乎就是这种情况。

至于您关于框架的其余问题,提示是查看应该从数据链路层传递到网络层的内容。它是预先构建的数据位还是您正在查看的框架内容?

于 2012-10-04T08:33:18.747 回答
0

每当您必须执行位填充时,您总是会得到起始和结束标记 FLAG 位值 最简单的技巧是删除标志的最后两位并记下新的位系列,只要您在您的系列中获得相同的系列。数据,你必须在那里塞一点东西。例如 - 给定数据是 011111011110 这里我的 FLAG 是 0111110 所以我的新 FLAG 将是 01111 每当我在我的数据系列中得到 (01111) 时我都会填充一点,所以填充后的数据将是 - 01111(0)101111 (0)0 括号表示这里有填充。

于 2017-11-18T03:54:29.907 回答