用示波器揭示以太网数据传输的机制

strongerHuang 2024-10-09 08:20

关注+星标公众,不错过精彩内容

来源 | 硬件十万个为什么


   1、文章概要    

本文以双绞线以太网为分析对象,以混合信号示波器为分析工具,深入探秘了两类常见的双绞线以太网的编码,且实地查看并验证了以太网在物理层的信号传输情况。最后,通过一个实战例子对比了实际网络中软件接收的数据和示波器捕获信号之间的一致性。


本文打通软硬件之间的隔阂,从物理层揭示了以太网数据传输的机制,也充分发挥了现代化混合信号示波器的总线解码能力。


  2、以太网概述   

以太网(Ethernet)是一种常见的计算机组网技术,其技术标准在IEEE 802.3中规定 [1]。目前广泛使用的以太网通过双绞线(俗称网线)交换信息,其技术标准主要在TIA/EIA-568中规定 [2]。


本文以最常见的以太网标准为例,利用混合信号示波器的协议解码功能,揭秘以太网上的信号是如何传输的。通常对于网络数据的分析都在软件上进行,例如著名的Wireshark工具可以对指定网卡上传输的数据进行捕获并解析 [3]。但这样的操作屏蔽了物理层的差异,本文将更进一步揭秘物理层上数据具体是如何转变成电信号并传输的。


以太网(10 Base-T)和快速以太网(100 Base-TX)可以使用同一种双绞线进行数据传输,其引脚定义如图1所示。

图1. 网线的引脚定义 [1]

以T568B为例,其中用到了4根线,构成2个差分对(TX和RX)。不失一般性,我们取其中一对(TX)作为分析对象。因此需要引出Pin 1和Pin 2,用于连接示波器探头来抓取信号。这里剪开一根网线,在Pin 1和2上分别引出一根导线,做成分析用的专用跳线,如图2所示。

图2. 在双绞线的Pin 1和2上分别引出一根导线

这一对线上传输的是差分信号,因此最好用差分探头(例如TDP1500)。当然这里用到的跳线比较短,用普通的无源探头也可以,只是信号质量会受到一定的影响。

   3、10base-T以太网    


10 Base-T的传输速率是10Mbps,使用曼彻斯特编码(相位编码)数据。“0”用下降沿表示,“1”用上升沿表示。如图3所示,这是一段由示波器抓取到的差分波形。在确认最小脉宽后,可以通过判断周期性的边沿方向来辨识“0”或“1”。

图3. 10 Base-T的曼彻斯特编码解析

接下来,需要将二进制序列组装成数据帧,由于包含多个协议的堆叠(MAC、IP、TCP等),手动解码会比较复杂,可以直接使用示波器的总线解码工具进行解码并显示。如图4所示,将总线设为“Ethernet”,速度设为“10 Base-T”,信号类型设为“差分”,其它选项根据实际情况选择或保持默认就可以了。

图4. 10 Base-T解码设置

解码结果如图5所示,可以看到这是一个IPv4的数据帧,放大后可以看到MAC地址等数据包内的具体内容。

图5. 10 Base-T解码结果


   4、100base-TX以太网    

相比10 Base-T,100 Base-TX带来了10倍的速度提升,达到100Mbps。它的编码协议也变得复杂得多,主要涉及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虽然数据传输率是100MBps,却需要125Mhz的时钟频率。

图6. 4B5B对应关系表

3.2

MLT-3

MLT-3表示“Multi-Level Transmit”,即使用多个电压级别来传输数据 [5]。MLT-3使用3个电压,在差分传输线上,3个电压可以归一化记为“-1”、“0”和“+1”。


MLT-3通过切换电压来实现跳变,顺序遵循两个规则:
一是,如果跳变前电压是-1或+1,则跳变后电压是0;二是,如果跳变前电压是0,则跳变后电压与上一个非0值的电压相反。


因此可简单总结跳变顺序为:-1 → 0 → +1,或+1 → 0 → -1。

3.3

NRZ-I

MLT-3描述了电压跳变的规则,但没有说明电压跳变与数据“0”、“1”的关系。NRZ-I为“Non-Return-to-Zero Inverted”的缩写,即不归零反转码。这种编码规定数据“0”不跳变,数据“1”跳变。

3.4

示例

综合前面三个关键词,可以简单概括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位一组,用绿色字体标识。接下来,找到解扰码(scrambler key)序列。


扰码不是加密,只是用来改善电磁特性。因此,加扰和解扰都只需做异或(XOR)操作,使用同一个序列。100 Base-TX使用一个11位的线性反馈移位寄存器(LFSR)来生成2047位长的伪随机数序列。这对于手动找到同步的位置带来了非常大的困难,但是如果是程序自动同步,就非常容易了。解扰后的数据是5 bits一组,反查4B5B的编码表,就可以得到4 bits一组的数据。图7中展示了3个字节的编码分析结果。

图7. 100 Base-TX的编码解析

虽然100 Base-TX手动解码非常困难,但是借助示波器的总线解码工具,可以非常快速方便地完成解码。示波器的设置,如图8所示。由于是标准协议,并没有太多选项,将总线设为“Ethernet”,速度设为“100 Base-TX”,信号类型设为“差分”,其它选项根据实际情况选择或保持默认就可以了。

图8. 100 Base-TX解码设置

解码结果,如图9所示。

图9. 100 Base-TX解码结果

100 Base -TX的解码流程复杂,数据量大,检索不方便,通常需要协议分析软件辅助才可以进一步分析。现在混合信号示波器中已经集成了解码和分析功能,只需要一根特制的网线,就可以完成全部分析工作,彻底将以太网的传输机制展示在屏幕上。

3.5

实战

我们通过2台计算机组成一个小局域网,在局域网之间进行ping操作的实战验证。通过Wireshark捕获,我们可以看到在网口上已经有了若干ping request和reply数据包,如图10所示。在TX差分对上,我们理应找到发出去的ping request数据包,源地址是192.168.0.2,目标地址是192.168.0.1。


在示波器上,我们设置好Ethernet总线解码,并将触发设置为指定的IP。如图11所示,触发位置选为“IP标头”,源地址设为“192.168.0.2”,这样当出现指定源地址的数据包后,示波器就会被触发。


如图12所示,是通过上述设置后示波器捕获并解码的数据包,经过对比,和Wireshark上软件捕获的数据相一致。

图10. Wireshark捕获的ping request和reply数据包

图11. 触发设置为指定IP

图12. 示波器捕获并解码的ping request数据包

4、总结 

软件和硬件总是存在一些隔阂。例如在以太网分析上,传统的计算机网络领域主要从软件层面介绍逻辑链路层及更高层的设计和实现,对于物理层的介绍比较简单。而传统的硬件领域对于数字信号往往只介绍简单的串行总线,并不会拿比较复杂的以太网作为例子。


本文深入分析了两类常见的双绞线以太网的编码,并利用混合信号示波器的总线解码功能,查看并验证了以太网在物理层的信号传输情况。最后,通过一个实战例子对比了实际网络中软件接收的数据和示波器捕获信号之间的一致性,从物理层揭示了以太网数据传输的机制。

参考文献 

[1] https://en.wikipedia.org/wiki/Ethernet

[2] https://en.wikipedia.org/wiki/ANSI/TIA-568

[3] https://www.wireshark.org

[4] https://en.wikipedia.org/wiki/4B5B

[5] https://en.wikipedia.org/wiki/MLT-3_encoding

声明:本文素材来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。

------------ END ------------



●专栏《嵌入式工具

●专栏《嵌入式开发》

●专栏《Keil教程》

●嵌入式专栏精选教程


关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。

点击“阅读原文”查看更多分享。


strongerHuang 作者黄工,高级嵌入式软件工程师,分享嵌入式软硬件、物联网、单片机、开发工具、电子等内容。
评论
  • 全球知名半导体制造商ROHM Co., Ltd.(以下简称“罗姆”)宣布与Taiwan Semiconductor Manufacturing Company Limited(以下简称“台积公司”)就车载氮化镓功率器件的开发和量产事宜建立战略合作伙伴关系。通过该合作关系,双方将致力于将罗姆的氮化镓器件开发技术与台积公司业界先进的GaN-on-Silicon工艺技术优势结合起来,满足市场对高耐压和高频特性优异的功率元器件日益增长的需求。氮化镓功率器件目前主要被用于AC适配器和服务器电源等消费电子和
    电子资讯报 2024-12-10 17:09 78浏览
  • 【萤火工场CEM5826-M11测评】OLED显示雷达数据本文结合之前关于串口打印雷达监测数据的研究,进一步扩展至 OLED 屏幕显示。该项目整体分为两部分: 一、框架显示; 二、数据采集与填充显示。为了减小 MCU 负担,采用 局部刷新 的方案。1. 显示框架所需库函数 Wire.h 、Adafruit_GFX.h 、Adafruit_SSD1306.h . 代码#include #include #include #include "logo_128x64.h"#include "logo_
    无垠的广袤 2024-12-10 14:03 68浏览
  •         在有电流流过的导线周围会感生出磁场,再用霍尔器件检测由电流感生的磁场,即可测出产生这个磁场的电流的量值。由此就可以构成霍尔电流、电压传感器。因为霍尔器件的输出电压与加在它上面的磁感应强度以及流过其中的工作电流的乘积成比例,是一个具有乘法器功能的器件,并且可与各种逻辑电路直接接口,还可以直接驱动各种性质的负载。因为霍尔器件的应用原理简单,信号处理方便,器件本身又具有一系列的du特优点,所以在变频器中也发挥了非常重要的作用。  &nb
    锦正茂科技 2024-12-10 12:57 69浏览
  • 智能汽车可替换LED前照灯控制运行的原理涉及多个方面,包括自适应前照灯系统(AFS)的工作原理、传感器的应用、步进电机的控制以及模糊控制策略等。当下时代的智能汽车灯光控制系统通过车载网关控制单元集中控制,表现特殊点的有特斯拉,仅通过前车身控制器,整个系统就包括了灯光旋转开关、车灯变光开关、左LED前照灯总成、右LED前照灯总成、转向柱电子控制单元、CAN数据总线接口、组合仪表控制单元、车载网关控制单元等器件。变光开关、转向开关和辅助操作系统一般连为一体,开关之间通过内部线束和转向柱装置连接为多,
    lauguo2013 2024-12-10 15:53 65浏览
  • 概述 通过前面的研究学习,已经可以在CycloneVGX器件中成功实现完整的TDC(或者说完整的TDL,即延时线),测试结果也比较满足,解决了超大BIN尺寸以及大量0尺寸BIN的问题,但是还是存在一些之前系列器件还未遇到的问题,这些问题将在本文中进行详细描述介绍。 在五代Cyclone器件内部系统时钟受限的情况下,意味着大量逻辑资源将被浪费在于实现较大长度的TDL上面。是否可以找到方法可以对此前TDL的长度进行优化呢?本文还将探讨这个问题。TDC前段BIN颗粒堵塞问题分析 将延时链在逻辑中实现后
    coyoo 2024-12-10 13:28 89浏览
  • 肖特基具有很多的应用场景, 可以做同步整流,防止电流倒灌和电源反接等,但是随着电源电流的增大,肖特基导通正向压降0.3~0.7v的劣势也越发明显,产生了很多的热,对于工程师的散热设计是个考验,增加了工程师的设计难度和产品成本,目前一种新的理想二极管及其控制器,目前正在得到越来越广泛的应用- BMS,无人机,PLC,安防,家电,电动工具,汽车等都在快速普及理想二极管有三种架构,内置电荷泵的类似无锡明芯微MX5050T这种,驱动能力会弱点,静态功耗200uA,外置电荷泵MX74700T的这种驱动能力
    王萌 2024-12-10 08:51 85浏览
  • 我的一台很多年前人家不要了的九十年代SONY台式组合音响,接手时只有CD功能不行了,因为不需要,也就没修,只使用收音机、磁带机和外接信号功能就够了。最近五年在外地,就断电闲置,没使用了。今年9月回到家里,就一个劲儿地忙着收拾家当,忙了一个多月,太多事啦!修了电气,清理了闲置不用了的电器和电子,就是一个劲儿地扔扔扔!几十年的“工匠式”收留收藏,只能断舍离,拆解不过来的了。一天,忽然感觉室内有股臭味,用鼻子的嗅觉功能朝着臭味重的方向寻找,觉得应该就是这台组合音响?怎么会呢?这无机物的东西不会腐臭吧?
    自做自受 2024-12-10 16:34 129浏览
  • 本文介绍Linux系统(Ubuntu/Debian通用)挂载exfat格式U盘的方法,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。修改对应的内核配置文件# 进入sdk目录cdrk3562_linux# 编辑内核配置文件vi./kernel-5.10/arch/arm64/configs/rockchip_linux_defconfig注:不清楚内核使用哪个defc
    Industio_触觉智能 2024-12-10 09:44 89浏览
  •         霍尔传感器是根据霍尔效应制作的一种磁场传感器。霍尔效应是磁电效应的一种,这一现象是霍尔(A.H.Hall,1855—1938)于1879年在研究金属的导电机构时发现的。后来发现半导体、导电流体等也有这种效应,而半导体的霍尔效应比金属强得多,利用这现象制成的各种霍尔元件,广泛地应用于工业自动化技术、检测技术及信息处理等方面。霍尔效应是研究半导体材料性能的基本方法。通过霍尔效应实验测定的霍尔系数,能够判断半导体材料的导电类型、载流子浓度及载流子
    锦正茂科技 2024-12-10 11:07 62浏览
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-10 16:13 91浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦