2

关于64/66bit encoding有一些我不明白的事情,并且未能在网上找到答案。任何帮助/链接将不胜感激:

i) 如何识别帧的开始?我不认为它可以通过维基百科上称为序言的初始 10/01 位,因为您无法区分它们(如果空闲链接为 0,则 0000 10 和 000 01 0 看起来非常相似)。我希望帧的结束由控制字指示,其余位可能用于 CRC?

ii) 加扰器如何同步,以及它们如何避免以相同的方式加扰相同的数据包?或者换一种说法,为什么恶意用户不可能通过仔细选择坏消息来导致大量丢包?

iii) 这可能已经在 ii) 中得到解答,但是如果一个数据包被发送到交换机,然后再发送到另一台主机,它是否两次都以相同的方式加扰?

再次,非常感谢提前

4

1 回答 1

1

图层

首先需要明确OSI 模型。

以太网帧数据链路层,而64b /66b 编码物理层的一部分(更准确地说是物理层的 PCS)

物理层对帧的开始一无所知。它只看到数据。(以太网帧的开始是包含前导码的数据字节。)


64b/66b 编码

现在让我们假设链接已启动并正在运行

在这种情况下,空闲链路未充满“0”-s。(在这种情况下,链路不会是自同步的)空闲消息(空闲字符和/或同步块,即控制信息)通过空闲链路发送。(用 0b10 前导码编码的控制信息)(这就是为什么发射的频谱和功耗不取决于链路是否处于空闲状态)

因此,新框架的开始如下所示:

  1. 链路发送空闲信息。(带 0b10 序言)
  2. 上层(数据链路层)将帧(以 64 位数据块形式)发送到物理层。
  3. 物理层通过链路发送数据(带有 0b01 前导码)。

(请注意,即使在数据突发期间,物理层也经常将控制(同步)符号插入原始帧)

同步

在数据传输之前,必须初始化 64b/66b 编码通道。该初始化包括块同步的通道初始化。Xilinx 的 Aurora 规范(P34) 是链路初始化的一个示例。简要地说,接收器尝试匹配不同位位置的同步字符,当匹配多次时,它报告链接。

请注意,64b/66b 编码使用自同步扰码器。这就是为什么加扰器(本身)不需要知道我们在数据流中的位置。如果您运行自同步(去)扰频器足够长的时间,它会产生解码的比特流。

恶意

请注意,64b/66b 编码不是加密。这种加扰不会保护您免受窃听/篡改。(加密应该放在 OSI 模型的更高级别)

多次相同的数据包

因为当您第二次发送相同的数据包时,加扰器处于不同的状态/种子,所以两个编码的数据包会有所不同。(理论上我们可以创建数据包,它设置了加扰的移位寄存器,但我们需要考虑控制符号,所以实际上这是不可能的。)

于 2019-05-17T09:28:14.410 回答