为什么我们需要使用曼彻斯特编码进行以太网传输?

hqt*_*hqt 11 networking

当您想将数据从一台计算机传输到另一台计算机时,您的数据(以二进制形式)将首先进入 NIC(网络接口卡),在那里数据将被编码(例如带有计时器时钟滴答)并通过网络发送一种电子信号。

曼彻斯特编码的一个例子:

101110011001   // data
101010101010   // timer tick on network
000100110011   // result using XOR
Run Code Online (Sandbox Code Playgroud)

为什么网卡不直接传输二进制数据而是必须先编码?

Luc*_*man 13

因为使用曼彻斯特编码有一个很好的优势,即自计时(较低的错误率和更可靠的传输)。

这是因为,而不是查看 +5 伏到 0 伏来编码位,这将取决于传输的方向如何编码位。

在此处输入图片说明
图片来源

通常,您首先需要同步时钟才能进行传输。由于这种编码,曼彻斯特编码不需要这个。

  • 附加原因:防止长时间运行 0 或 1,因此错误(例如:断开连接)将更加明显。 (3认同)
  • 就像我说的,因为当你不对它们进行编码时,你需要单独同步时钟,这意味着你会有更高的错误率和更低的传输。 (2认同)

saw*_*ust 13

传输数字信息时使用编码(例如您提到的曼彻斯特编码)至少有三个(可能有更多)原因:

  • 数据和时钟合并为一个信号。如果时钟未随数据一起发送,则接收器将不知道何时对信号进行采样以提取数字值。即使发射器和接收器以某种方式完全同步,也必须考虑传输介质的极小延迟。另一种选择是将数据线与时钟线一起使用,但这会使导线数量增加一倍。与使用更多的电线和更大的连接器相比,将电缆和收发器带宽要求(或功能)加倍(或减半,取决于观点)更便宜、更可靠。
  • 一长串空值(零)将不再看起来像死线或断线。长刺不再看起来像卡住的水平。
  • 编码信号具有更平衡的能量分布,即随时间平均的电压应趋向于零。电路板上的逻辑信号使用 0 伏表示逻辑零,使用正电压(旧 TTL 为 5 伏,现代逻辑为 3.3 伏或更少)为逻辑 1。只有全零的数据逻辑才会有一个零能量分布;任何其他数据模式将始终具有大于零的平均电压电平和特征磁场。但是因为像曼彻斯特这样的编码同时使用正负电压电平,由传输信号产生的磁场要小得多,因为它们往往会相互抵消。这允许电线在电缆中更紧密地捆绑在一起,同时减少彼此之间的干扰。(即使像 RS/EIA-232 这样的慢速传输方案也使用正负电压电平来平衡能量分布。可能小于 0.5 米且在外壳内的板对板连接将仅使用正电压。)