图层
首先需要明确OSI 模型。
以太网帧是数据链路层,而64b /66b 编码是物理层的一部分(更准确地说是物理层的 PCS)
物理层对帧的开始一无所知。它只看到数据。(以太网帧的开始是包含前导码的数据字节。)
64b/66b 编码
现在让我们假设链接已启动并正在运行。
在这种情况下,空闲链路未充满“0”-s。(在这种情况下,链路不会是自同步的)空闲消息(空闲字符和/或同步块,即控制信息)通过空闲链路发送。(用 0b10 前导码编码的控制信息)(这就是为什么发射的频谱和功耗不取决于链路是否处于空闲状态)
因此,新框架的开始如下所示:
- 链路发送空闲信息。(带 0b10 序言)
- 上层(数据链路层)将帧(以 64 位数据块形式)发送到物理层。
- 物理层通过链路发送数据(带有 0b01 前导码)。
(请注意,即使在数据突发期间,物理层也经常将控制(同步)符号插入原始帧)
同步
在数据传输之前,必须初始化 64b/66b 编码通道。该初始化包括块同步的通道初始化。Xilinx 的 Aurora 规范(P34) 是链路初始化的一个示例。简要地说,接收器尝试匹配不同位位置的同步字符,当匹配多次时,它报告链接。
请注意,64b/66b 编码使用自同步扰码器。这就是为什么加扰器(本身)不需要知道我们在数据流中的位置。如果您运行自同步(去)扰频器足够长的时间,它会产生解码的比特流。
恶意
请注意,64b/66b 编码不是加密。这种加扰不会保护您免受窃听/篡改。(加密应该放在 OSI 模型的更高级别)
多次相同的数据包
因为当您第二次发送相同的数据包时,加扰器处于不同的状态/种子,所以两个编码的数据包会有所不同。(理论上我们可以创建数据包,它设置了加扰的移位寄存器,但我们需要考虑控制符号,所以实际上这是不可能的。)