数据链路层如何用MAC地址标记每台设备的“身份证“,通过MTU规则限制46-1500字节数据帧大小,ARP协议在广播风暴中精准寻址,解决IP到MAC的“最后一公里“难题
文章目录本篇摘要一.认识以太网二. 以太帧格式三.认识下MTU最大传输单元四.细谈MSS最大段尺寸五.ARP协议ARP数据报格式六.总结几个需要注意的问题七.本篇小结本篇摘要介绍以太网作为技术标准体系涵盖拓扑、MAC方式及速率等解析以太帧结构MAC地址、协议类型等阐述MTU46-1500字节与MSS协商机制说明ARP协议通过请求/应答建立IP-MAC映射并缓存解决局域网通信寻址问题。一.认识以太网以太网的本质以太网并非指某种特定的网络实体而是一套技术标准体系。它不仅涵盖了数据链路层Data Link Layer的相关规定也包含了部分物理层Physical Layer的技术规范。以太网标准内容规定了网络的拓扑结构。定义了介质访问控制MAC方式。明确了网络的传输速率。以太网的技术特性举例通常要求使用双绞线作为传输介质。支持多种传输速率如10Mbps、100Mbps、1000Mbps1Gbps等。以太网的地位与应用是当前应用最为广泛的局域网LAN技术。在局域网技术领域与以太网并列的其他技术还包括令牌环网Token Ring、无线局域网Wireless LAN, WLAN等。二. 以太帧格式IP与MAC地址的核心区别IP地址网络层逻辑地址描述通信的总体起点与终点如从北京到上海的旅程。MAC地址数据链路层物理地址固化在网卡硬件中描述通信每一跳区间的起点与终点如从北京站到天津站、天津站到济南站的具体路段。数据帧的关键结构源/目的MAC地址48位硬件标识符固化在网卡出厂时标识当前链路层的发送端和接收端设备。帧协议类型字段通过特定值区分上层协议类型如IP、ARP、RARP。CRC校验码位于帧末尾用于检测数据帧在传输过程中是否发生错误保障数据完整性。这里有个问题为什么数据链路层这里要求上层传的数据要46-1500?三.认识下MTU最大传输单元MTU的类比MTU相当于发快递时对包裹尺寸的限制该限制由不同数据链路对应的物理层产生。以太网MTU具体数值以太网帧中的数据长度规定最小46字节最大1500字节。ARP数据包长度不够46字节时要在后面补填充位最大值1500称为以太网的最大传输单元MTU 。不同网络类型的MTU不同的网络类型有不同的MTU。MTU与数据包分片如果一个数据包从以太网路由到拨号链路上当数据包长度大于拨号链路的MTU时则需要对数据包进行分片fragmentation。MTU的本质可以理解成这是底层硬件的一种规定如果超过了就必须在IP层进行分片。之前讲过了对于传输层除了报头的数据(UDP【14721500-20-8】/TCP【14601500-20-20】)如果报文过大了就会分片这里就不再说了!可以理解成这是底层硬件的一种规定如果超过了就必须在ip层进行分片在网络层讲过)四.细谈MSS最大段尺寸TCP单个数据报最大消息长度受限于MTU此最大长度称为MSS。TCP建立连接时通信双方会进行MSS协商。最理想状态是MSS值为IP不分片处理的最大长度该长度受限于数据链路层的MTU。双方在发送SYN时会在TCP头部写入自身能支持的MSS值。双方知晓对方MSS值后选择较小的作为最终MSS。MSS的值在TCP首部40字节的变长选项中kind 2。这里的交互MSS就是为了保证双方在数据链路层发送以及接收的时候不会被分片或者拒收以及ip层发现MSS讨大导致拒收引发对面重传等情况!MTU与MSS关系现在我们结合实际情况回答下为什么处于这个范围刚刚说了是由于硬件等规定那么为什么要这么规定局域网就是一个碰撞域一个时刻只能发送一个数据帧 真正在网络物理层上流动的数据 ---- 其实是数据帧这里可以把局域网理解成临界资源每次只能发一个数据帧因此每台主机使用的时间越少越好而发送的数据帧越少越短越好才能对网络更友好这里假设数据帧特别大此时就会传的特别慢占用网络时间长其他主机发的报文就要等待了 — 因此规定最大MTU是1500如果特别小就需要分片的数量就特别大此时一台主机发的数据帧就会特别多此时产生冲突的时间就会延长对网络也是不友好 — 下限就是46这里为什么是这两个数是经过多次测试最优方案此时我们就知道为什么这样规定了也就是结合实际的!使用ifconfig命令,即可查看ip地址, mac地址和MTU:五.ARP协议ARP协议产生背景仅知道目标主机IP地址不知道MAC地址时无法发送数据帧因此需要局域网协议将IP转换为对应的MAC地址即ARP协议。ARP协议层次属性ARP不是单纯的数据链路层协议而是介于数据链路层和网络层之间的协议。ARP协议核心功能建立主机IP地址和MAC地址的映射关系。ARP协议工作流程发送数据帧时先发ARP请求局域网内所有主机可见。若接收方信息不一致则舍弃若目的IP与自身IP一致将自身MAC地址写入并发送应答ARP对方收到后记录MAC地址用于数据发送后续重复时仅匹配的接收不匹配则丢弃 。ARP数据报格式源 MAC 地址和目的 MAC 地址在以太网首部和 ARP 请求中各出现一次在以太网链路层情况中多余其他链路层网络类型可能必要。硬件类型表示链路层网络类型其中 1 代表以太网。协议类型指明要转换的地址类型0x0800 对应 IP 地址。硬件地址长度方面以太网地址为 6 字节。协议地址长度上IP 地址为 4 字节。op 字段取值含义1 表示 ARP 请求2 表示 ARP 应答。那么在数据链路层ARP协议和以太网协议是如何工作?其实就是我们发送ip数据帧的时候首先看下对应ARP协议层有没有对应mac地址没有的话就直接发经过以太网协议包装的ARP请求得到对应mac地址后保存然后再发ip数据帧!这里发送的时候经过哪层协议进行的包装到时候接收的时候它就要进行解析!理解了数据链路层发送的规则但是局域网中任何主机可能收到ARP请求也可能收到ARP应答下面讲一下主机如何进行区分我们说过了局域网是个碰撞域每次都集体发送一个数据帧假设B主机收到了一个ARP数据帧怎么知道是请求还是应答呢首先ARP层拿到对应的数据后可以先看op标志如果是1那么此时就把自己的mac地址填到对应的目的以太网地址里如果是2此时就可以拿到里面的目的以太网地址保存再填充对应ip数据帧!再复盘下对应操作对于第一次给主机发信息首先进行ARP请求(即广播以太网帧首部的硬件地址填FFRFFFRFFF6表示广播)目的主机接收到广播的ARP请求发现其中的IP地址与本机相符,则发送一个ARP应答数据包给源主机将自己的硬件地址填写在应答包中;然后源机拿到后就可以进行ip数据帧的发送了!每台主机都维护一个ARP缓存表,可以用arp -a命令查看。缓存表中的表项有过期时间(一般为20分钟),如果20分钟内没有再次使用某个表项,则该表项失效,下次还要发ARP请求来获得目的主机的硬件地址。两个问题1·为什么要进行缓存如果很长时间给对面主机发信息每次发送ARP请求效率就低了还会带来不必要的网络负担因此需要保存。2·为什么要有过期时间因为ip是动态分配的而且mac地址只要硬件等换了就会更换它们是变化的为了保证有效性需要及时调整等原因导致过期时间动态性适配保证IP - MAC映射关系随设备变化及时更新防止通信失败。资源管理避免缓存表溢出给活跃设备释放空间。安全性增强加大ARP欺骗攻击难度减少长期攻击风险。兼容性适配DHCP等动态IP分配机制支持移动与临时接入设备。六.总结几个需要注意的问题一般对于ARP请求会来到ARP协议层进行分析决定是否舍弃因为它要判断目的ip地址是否和自己的相同而获取目的ip只能在ARP层进行解析。对于ARP应答在MAC帧层就可以决定是否要舍弃如果是发给自己的应答此时在以太网首部就有目的mac如果不是自己的mac地址就直接舍弃。因此当一个主机收到报文的时候首先到达mac帧层如果发现以太网首部目的地址不是全F就是应答按照上面的方式处理如果是全F也就是请求需要交给ARP层进行分析处理七.本篇小结以太网定义局域网通信标准MTU限制数据帧大小保障效率ARP协议通过广播请求与缓存映射实现IP到MAC转换确保链路层数据精准传输。

相关新闻

【UE4】VS2022编译UE4.26.2工程问题记录

【UE4】VS2022编译UE4.26.2工程问题记录

最近将VS2019升级到了VS2022,编译项目时遇到了一些问题,在此记录一下~ 一. GenerateProjectFiles.bat 生成失败 安装 MSVC v142 - VS 2019 C x64/x86 生成工具二. 编译失败,提示常量算法中溢出 安装 Windows 10 SDK (10.0.19041.0) 修改Buil…

2026/7/21 19:43:45 阅读更多 →
SVG Wave 性能优化:如何生成高质量的 SVG 波浪文件

SVG Wave 性能优化:如何生成高质量的 SVG 波浪文件

SVG Wave 性能优化:如何生成高质量的 SVG 波浪文件 【免费下载链接】svgwave SVG Wave is a tiny, free and beautiful SVG gradient waves generator for your next design. 项目地址: https://gitcode.com/gh_mirrors/sv/svgwave SVG Wave 是一款小巧、免费…

2026/7/21 19:43:45 阅读更多 →
现代C++设计模式高级技巧:模板元编程与设计模式的完美结合

现代C++设计模式高级技巧:模板元编程与设计模式的完美结合

现代C设计模式高级技巧:模板元编程与设计模式的完美结合 【免费下载链接】design-pattern Design Patterns In Modern C 中文版翻译 项目地址: https://gitcode.com/gh_mirrors/des/design-pattern 在现代C开发中,设计模式是构建灵活、可维护代码…

2026/7/21 19:43:45 阅读更多 →

最新新闻

三步根治:定时任务重复执行、任务堆积核心方案

三步根治:定时任务重复执行、任务堆积核心方案

定时任务是后台系统不可或缺的核心基础功能,广泛应用于订单超时关闭、未支付订单自动取消、过期优惠券作废、日志定时清理、业务数据定时同步、财务数据日终统计、用户活跃度统计、消息定时推送、缓存定时刷新、死数据定时清理等关键业务场景,贯穿整个后…

2026/7/21 23:02:50 阅读更多 →
OpenCV-Python实战(26)——复杂场景下的实时物体检测与跟踪

OpenCV-Python实战(26)——复杂场景下的实时物体检测与跟踪

OpenCV-Python实战(26)——复杂场景下的实时物体检测与跟踪 0. 前言 1. 本节目标 2. 规划应用程序 3. 搭建应用程序 3.1 运行应用程序——main() 函数例程 3.2 显示结果 4. 处理流程 5. 特征提取 5.1 特征检测 5.2 使用SURF检测图像中的特征 5.3 使用 SURF 获取特征描述符 6.…

2026/7/21 23:02:50 阅读更多 →
DHCP 5.26

DHCP 5.26

如图链接路由器,交换机,和pc端给4个PC端分配IP地址IP地址:192.168.1.1 192.168.1.2 192.168.2.1 192.168.2.2子网掩码:255.255.255.0网关:192.168.1.254 192.168.2.254测试链接&#xff1…

2026/7/21 23:02:50 阅读更多 →
【AI驱动ETL革命】:20年数据架构师亲授5大可落地的AI写ETL流程实战框架

【AI驱动ETL革命】:20年数据架构师亲授5大可落地的AI写ETL流程实战框架

更多请点击: https://kaifayun.com 第一章:AI驱动ETL革命的底层逻辑与范式跃迁 传统ETL流程长期受限于硬编码规则、静态Schema约束与人工调试依赖,导致数据管道在面对多源异构、语义模糊、实时性增强等现代数据挑战时日益僵化。AI驱动的ETL并…

2026/7/21 23:02:50 阅读更多 →
【软件工程】软件项目估算(LOC/FP/COCOMO)+ 风险管理

【软件工程】软件项目估算(LOC/FP/COCOMO)+ 风险管理

考点频率:项目估算 ★★★★☆(选择题常考),风险管理 ★★★★☆(选择题常考) 难度:⭐⭐⭐ 建议:重点掌握三种估算方法的区别、COCOMO模型的公式及三种模式,以及风险管理…

2026/7/21 23:02:49 阅读更多 →
2026亚太EMBA含金量中立测评|民营企业家择校参考

2026亚太EMBA含金量中立测评|民营企业家择校参考

一、测评前言当下民营企业家、企业创始人择校EMBA,普遍面临择校标准模糊、项目适配性难判断、含金量参差不齐等问题。为帮助经营者精准避坑,本文从全球办学排名、院校办学定位、课程体系、学员圈层、产业资源五大核心维度,开展2026亚太EMBA含…

2026/7/21 23:01:49 阅读更多 →

日新闻

Octane Render与C4D汉化版安装与优化指南

Octane Render与C4D汉化版安装与优化指南

1. Octane Render与C4D的黄金组合:为什么选择这个方案?在三维创作领域,渲染器的选择往往决定了作品的最终呈现质量和工作效率。作为Cinema 4D(C4D)用户,Octane Render的GPU加速特性与实时预览功能&#xff…

2026/7/21 0:00:19 阅读更多 →
GPMC接口设计:异步/同步模式与多路复用配置实战

GPMC接口设计:异步/同步模式与多路复用配置实战

1. GPMC接口设计:从硬件连接到软件配置的全局视角在嵌入式系统开发中,尤其是基于TI Sitara系列如AM263x这类高性能微控制器的项目里,外部存储器的扩展几乎是绕不开的一环。无论是存放大量非易失性代码的NOR Flash,还是作为高速数据…

2026/7/21 0:00:19 阅读更多 →
UE5 GAS框架下RPG被动技能系统:从核心原理到实战实现

UE5 GAS框架下RPG被动技能系统:从核心原理到实战实现

1. 项目概述:UE5 GAS RPG被动技能的核心价值在UE5里用GAS(Gameplay Ability System)做RPG游戏,主动技能像是你手里的武器,按一下打一下,逻辑直接,反馈也快。但被动技能,它更像是你身…

2026/7/21 0:00:19 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/21 8:48:31 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/21 5:34:47 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/21 8:25:39 阅读更多 →

月新闻