2. 10 Base-T以太网
10 Base-T的传输速率是,使用曼彻斯特编码(相位编码)数据。“0”用下降沿表示,“1”用上升沿表示。如图3所示的是一段由示波器抓取到的差分波形。在确认最小脉宽后曼彻斯特编码,可以通过判断周期性的边沿方向来辨识“0”或“1”。
图3. 10 Base-T的曼彻斯特编码解析
接下来需要将二进制序列组装成数据帧,由于包含多个协议的堆叠(MAC、IP、TCP等),手动解码会比较复杂,可以直接使用示波器的总线解码工具进行解码并显示。如图4所示,将总线设为“”,速度设为“10 Base-T”,信号类型设为“差分”,其它选项根据实际情况选择或保持默认就可以了。
图4. 10 Base-T解码设置
解码结果如图5所示,可以看到这是一个IPv4的数据帧,放大后可以看到MAC地址等数据包内的具体内容。
图5. 10 Base-T解码结果
3. 100 Base-TX以太网
相比10 Base-T,100 Base-TX带来了10倍的速度提升曼彻斯特编码,达到。它的编码协议也变得复杂得多,主要涉及3个关键词:4B5B、MLT-3和NRZ-I。
3.1
4B5B
4B5B表示使用5位二进制编码来表示1组4 bits数据 [4]。这样做的原因是使得传输线上有足够多的跳变用来恢复时钟。4B5B的编码规则是预先定义的,如果仅仅用来解码,只需要查表即可,如图6所示。举例:“0000”或“1111”如果直接传输,会带来4个一样的编码,很有可能引入较强的直流分量,但经过4B5B编码后,分别变成了“11110”和“11101”,就缓解这个问题了。4B5B的缺点是,需要增加额外的25%传输带宽,因此100 Base-TX虽然数据传输率是,却需要的时钟频率。
图6. 4B5B对应关系表
3.2
MLT-3
MLT-3表示“Multi-Level ”,即使用多个电压级别来传输数据 [5]。MLT-3使用3个电压,在差分传输线上,3个电压可以归一化记为“-1”、“0”和“+1”。MLT-3通过切换电压来实现跳变,顺序遵循2个规则:
(1)如果跳变前电压是-1或+1,则跳变后电压是0;
(2)如果跳变前电压是0,则跳变后电压与上一个非0值的电压相反。
因此可简单总结跳变顺序为:-1 → 0 → +1,或+1 → 0 → -1。
3.3
NRZ-I
MLT-3描述了电压跳变的规则,但没有说明电压跳变与数据“0”、“1”的关系。NRZ-I为“Non--to-Zero ”的缩写,即不归零反转码。这种编码规定数据“0”不跳变,数据“1”跳变。
3.4
示例
综合前面3个关键词,可以简单概括100 Base-TX的电信号变化规律如下:
100 Base-TX首先通过4B5B编码将每4位数据编码成5位二进制编码;接着使用3种电压传输数据,如果数据为“0”,电压不跳变,如果数据为“1”,电压跳变1次,且总是往历史电平相反的方向跳变,例如-1 → 0 → +1,或+1 → 0 → -1。
最后,100 Base-TX并不直接传输信号本身,而是传输信号与扰码的异或结果,如图7所示。截取的信号首先通过MLT-3的规则解码,每5位一组,用绿色字体标识。接下来找到解扰码( key)序列。扰码不是加密,只是用来改善电磁特性,因此加扰和解扰都只需做异或(XOR)操作,使用同一个序列。100 Base-TX使用一个11位的线性反馈移位寄存器(LFSR)来生成2047位长的伪随机数序列。这对于手动找到同步的位置带来了非常大的困难,但是如果是程序自动同步,就非常容易了。解扰后的数据是5 bits一组,反查4B5B的编码表,就可以得到4 bits一组的数据。图7中展示了3个字节的编码分析结果。
图7. 100 Base-TX的编码解析
虽然100 Base-TX手动解码非常困难,但是借助示波器的总线解码工具,可以非常快速方便地完成解码。示波器的设置如图8所示。由于是标准协议,并没有太多选项,将总线设为“”,速度设为“100 Base-TX”,信号类型设为“差分”,其它选项根据实际情况选择或保持默认就可以了。
图8. 100 Base-TX解码设置
解码结果如图9所示。
图9. 100 Base-TX解码结果
100 Base -TX的解码流程复杂,数据量大,检索不方便,通常需要协议分析软件辅助才可以进一步分析。现在混合信号示波器中已经集成了解码和分析功能,只需要一根特制的网线,就可以完成全部分析工作,彻底将以太网的传输机制展示在屏幕上。
3.5
实战
我们通过2台计算机组成一个小局域网,在局域网之间进行ping操作的实战验证。通过捕获,我们可以看到在网口上已经有了若干ping 和reply数据包,如图10所示。在TX差分对上,我们理应找到发出去的ping 数据包,源地址是192.168.0.2,目标地址是192.168.0.1。
在示波器上,我们设置好总线解码,并将触发设置为指定的IP。如图11所示,触发位置选为“IP标头”,源地址设为“192.168.0.2”,这样当出现指定源地址的数据包后,示波器就会被触发。
如图12所示,是通过上述设置后示波器捕获并解码的数据包,经过对比,和上软件捕获的数据相一致。
图10. 捕获的ping 和reply数据包
图11. 触发设置为指定IP
图12. 示波器捕获并解码的ping 数据包
4. 总结
软件和硬件总是存在一些隔阂。例如在以太网分析上,传统的计算机网络领域主要从软件层面介绍逻辑链路层及更高层的设计和实现,对于物理层的介绍比较简单。而传统的硬件领域对于数字信号往往只介绍简单的串行总线,并不会拿比较复杂的以太网作为例子。
本文深入分析了2类常见的双绞线以太网的编码,并利用混合信号示波器的总线解码功能,查看并验证了以太网在物理层的信号传输情况。最后通过一个实战例子来对比了实际网络中软件接收到的数据和示波器捕获信号之间的一致性,从物理层揭示了以太网数据传输的机制。
参考文献
[1]
[2]
[3]
[4]
[5]
限时特惠:本站持续每日更新海量各大内部创业课程,一年会员仅需要98元,全站资源免费下载
点击查看详情
站长微信:Jiucxh