当前位置: 首页 > news >正文

计算机网络:以太网中的数据传输

以太网中,数据的传输依赖于一系列标准化的技术规范,核心包括帧结构封装介质访问控制机制物理层编码技术,具体如下:

1. 以“帧(Frame)”为基本传输单元

以太网在数据链路层将网络层的数据包(如IP包)封装为“以太网帧”,作为数据传输的基本单位。帧结构包含固定字段:

  • 目的MAC地址(6字节):接收设备的物理地址;
  • 源MAC地址(6字节):发送设备的物理地址;
  • 类型/长度字段(2字节):标识上层协议类型(如0x0800表示IP协议)或数据长度;
  • 数据字段(46-1500字节):封装的上层数据(不足46字节时自动填充);
  • FCS校验字段(4字节):通过CRC循环冗余校验检测帧传输是否出错。

这种结构化封装确保数据在链路层的可靠识别和传输。

2. 介质访问控制:从CSMA/CD到全双工交换

  • 传统共享介质以太网(如10BASE-T):采用CSMA/CD(带冲突检测的载波监听多路访问) 机制,解决多设备共享同一物理介质的冲突问题:

    • 载波监听:发送数据前检测介质是否空闲;
    • 冲突检测:发送时若检测到信号冲突(多个设备同时发送),立即停止发送并等待随机时间后重试。
  • 现代交换式以太网:通过交换机实现全双工通信,每个端口独立连接设备,消除了共享介质的冲突问题,无需CSMA/CD,传输效率大幅提升。

3. 物理层编码技术:适配不同速率与介质

根据速率和传输介质(双绞线、光纤等),以太网采用不同的编码技术将二进制数据转换为物理信号:

  • 10Mbps以太网(如10BASE-T):使用曼彻斯特编码,每个比特周期中间强制电平跳变(既表示数据,又提供时钟同步)。
  • 100Mbps以太网(如100BASE-TX):采用4B/5B编码(将4位数据转为5位符号,保证直流平衡)+ MLT-3调制(减少信号跳变,适配双绞线)。
  • 1Gbps及以上以太网
    • 1000BASE-T:8B/10B编码(8位数据转10位符号,效率80%)+ PAM-5调制(5级幅度,每符号承载2比特);
    • 10Gbps及更高:64B/66B编码(效率96.97%)+ PAM-4调制(4级幅度,每符号承载2比特),适配光纤或高等级双绞线(如Cat6a)。

总结

以太网数据传输的核心是:以帧为单位封装数据,通过CSMA/CD(共享介质)或全双工交换(交换式网络)实现介质访问,结合适配速率和介质的物理层编码技术,完成二进制数据到物理信号的转换与传输。这一体系确保了以太网从早期10Mbps到现代400Gbps乃至更高速率的兼容与演进。


为何不使用差分曼彻斯特编码

以太网在发展过程中未采用差分曼彻斯特编码,核心原因与其技术特性、以太网的设计目标(如速率提升、实现复杂度、兼容性)以及历史演进路径密切相关,具体可从以下几方面分析:

1. 编码效率与速率限制的冲突

差分曼彻斯特编码与曼彻斯特编码同属“自同步编码”,其编码逻辑决定了每个比特需要至少一次电平跳变(中间跳变用于同步,起始跳变用于表示数据),这导致两者的编码效率均为50%(即传输1比特数据需占用2个单位的带宽)。

对于早期以太网(如10BASE-T,速率10Mbps),这种效率尚可接受(实际占用20MHz带宽),但随着以太网向高速率演进(100Mbps、1Gbps乃至更高),50%的效率会导致带宽需求翻倍(如100Mbps需200MHz带宽),远超普通双绞线(如Cat5)的物理传输能力(高频信号衰减严重)。

相比之下,以太网后续采用的编码技术(如4B/5B效率80%、8B/10B效率80%、64B/66B效率96.97%)大幅提升了编码效率,降低了对物理介质的带宽需求,更适合高速传输。因此,效率低下的差分曼彻斯特编码自然被淘汰。

2. 实现复杂度与成本问题

差分曼彻斯特编码的逻辑比曼彻斯特编码更复杂:

  • 曼彻斯特编码仅通过“中间跳变方向”直接表示数据(高→低=1,低→高=0),硬件电路设计简单;
  • 差分曼彻斯特编码需要对比当前比特与前一比特的关系(起始处是否跳变),这要求电路额外存储前一比特的状态并进行逻辑判断,增加了硬件设计的复杂度和成本。

早期以太网(20世纪80年代)受限于硬件集成度和成本控制,更倾向于选择实现简单的曼彻斯特编码。而当后续需要提升速率时,工程师们选择了“编码+调制”结合的方案(如4B/5B+MLT-3、PAM调制),而非转向更复杂的差分曼彻斯特编码。

3. 与以太网介质访问机制的适配性不足

以太网早期采用CSMA/CD(带冲突检测的载波监听多路访问) 机制,核心是“实时检测信号冲突并快速响应”(冲突发生后需立即停止发送并重试)。

曼彻斯特编码的“中间跳变”特性让信号的“有无”和“冲突”更容易被检测(冲突时信号会出现异常叠加);而差分曼彻斯特编码的信号跳变更复杂(起始处和中间均可能跳变),会增加冲突检测电路的设计难度——需要区分“正常跳变”和“冲突导致的异常跳变”,不利于快速响应冲突。

相比之下,曼彻斯特编码的信号特征更简单,与CSMA/CD机制的适配性更好,这也是早期以太网选择它的重要原因。

4. 历史演进与标准化路径的选择

以太网的编码技术选择与标准化进程密切相关:

  • 1983年IEEE 802.3标准(10BASE5/2)确定采用曼彻斯特编码,此时差分曼彻斯特编码已用于令牌环网络(IEEE 802.5),两者分属不同的网络体系(以太网vs令牌环),技术路线被固化;
  • 当以太网向100Mbps(快速以太网)演进时,为突破曼彻斯特编码的效率瓶颈,标准化组织选择了4B/5B编码(结合MLT-3调制),而非转向差分曼彻斯特编码(效率同样低下且兼容性差);
  • 后续千兆、万兆以太网进一步采用更高效的编码(8B/10B、64B/66B),形成了“效率优先”的技术路线,差分曼彻斯特编码因不符合这一路线而被彻底排除。

总结

以太网未采用差分曼彻斯特编码,本质是技术特性与需求的不匹配:其50%的编码效率无法满足高速传输需求,复杂的实现逻辑增加了成本和冲突检测难度,且与以太网“效率优先、简单实用”的设计理念及标准化路径相悖。相比之下,从曼彻斯特编码到4B/5B、64B/66B的演进,更贴合以太网在速率、成本和兼容性上的持续追求。


文章转载自:

http://LKc1Ti12.xsbhg.cn
http://VzmWa8Se.xsbhg.cn
http://UjLRqa53.xsbhg.cn
http://TTV9Nr7N.xsbhg.cn
http://xoR2KhH4.xsbhg.cn
http://n2SUK2dm.xsbhg.cn
http://yk14Hb8w.xsbhg.cn
http://CVso6395.xsbhg.cn
http://X8invAbL.xsbhg.cn
http://CvGLCVeC.xsbhg.cn
http://MPM8sOdo.xsbhg.cn
http://2WqB3Q9o.xsbhg.cn
http://xjP6jpEy.xsbhg.cn
http://gmiYkGR6.xsbhg.cn
http://dqBrtDhN.xsbhg.cn
http://2UxWovvr.xsbhg.cn
http://vq5mnELc.xsbhg.cn
http://NSLnVTfr.xsbhg.cn
http://BmqtorXy.xsbhg.cn
http://xAxDyMwb.xsbhg.cn
http://dyrsIwBg.xsbhg.cn
http://88mVtxdz.xsbhg.cn
http://Ouz1VmSB.xsbhg.cn
http://LyVqHuxp.xsbhg.cn
http://MEvRWLhV.xsbhg.cn
http://ziPMseRe.xsbhg.cn
http://vRPo9Hn9.xsbhg.cn
http://vxDqUTIs.xsbhg.cn
http://z6rYxcFr.xsbhg.cn
http://JPr7VGEb.xsbhg.cn
http://www.dtcms.com/a/370348.html

相关文章:

  • Lua和C#比较
  • Android开发——初步了解AndroidManifest.xml
  • STM32CubeProgrammer软件安装
  • Rust 元组
  • Flink-新增 Kafka source 引发状态丢失导致启动失败
  • 消失的6个月!
  • 《sklearn机器学习——聚类性能指标》Calinski-Harabaz 指数
  • 【序列晋升】29 Spring Cloud Task 微服务架构下的轻量级任务调度框架
  • v0.29.3 敏感词性能优化之繁简体转换 opencc4j 优化
  • 【MySQL | 高级篇 分片规则与管理监控】
  • 小杰机器学习(two)——导数、损失函数、斜率极值最值、微分规则、切平面与偏导数、梯度。
  • MATLAB R2025a安装配置及使用教程(超详细保姆级教程)
  • Linux/UNIX系统编程手册笔记:POSIX
  • 8.FC平台模块梳理
  • 对接gemini-2.5-flash-image-preview教程
  • ModelScope概述与实战
  • 【Bluedroid】A2dp Source播放流程源码分析(7):蓝牙音频流启动流程深度解析(btif_av_stream_start)
  • Docker 本地开发环境搭建(MySQL5.7 + Redis7 + Nginx + 达梦8)- Windows11 版 2.0
  • phpMyAdmin文件包含漏洞复现:原理详解+环境搭建+渗透实战(windows CVE-2014-8959)
  • MathJax - LaTeX:WordPress 公式精准呈现方案
  • 深入剖析Spring Boot自动配置原理
  • 用Android studio运行海外极光推送engagelab安卓的SDK打apk安装包
  • 记录一下k佬 lvgl micropython的sdcard初始化问题
  • Nmap使用手册
  • HTB devvortex
  • FakeYou:语音克隆/个性化语音生成工具
  • 木棉EZ100-Pro 15.5G矿机参数解析:Etchash算法与高效能耗
  • OpenAI新论文:Why Language Models Hallucinate
  • Compose笔记(四十九)--SwipeToDismiss
  • Coze源码分析-资源库-删除插件-前端源码-核心组件实现