数据链路层

两个设备在同一个局域网中进行通信.

具体来说:

  1. 同一局域网内
  2. 两个同类型数据链路节点(如网卡、交换机)之间
  3. 直接传递数据帧

以太网协议

以太网帧格式

字段 长度(字节) 作用
目的地址 6 接收方 MAC 地址,用于局域网内寻址
源地址 6 发送方 MAC 地址
类型 2 标识上层协议类型(如0x0800=IPv4,0x0806=ARP)
数据 46~1500 承载上层协议数据(如 IP 数据报、ARP 报文等)
CRC 4 循环冗余校验,用于检测帧传输错误

认识MAC地址

  • 核心作用 :MAC地址是数据链路层中用于唯一标识相连节点的硬件地址,负责在局域网内完成设备间的寻址与数据交付。
  • 格式与长度 :长度为48位(6字节) ,通常采用XX:XX:XX:XX:XX:XX的十六进制冒号形式表示,例如:08:00:27:03:fb:19
  • 唯一性与可变性
    • 物理网卡的MAC地址在出厂时固化,理论上全球唯一,不可随意修改。
    • 虚拟机的MAC地址虚拟分配,并非真实硬件地址,可能出现地址冲突。
    • 部分网卡支持用户手动配置MAC地址(即MAC地址克隆/修改),存在一定灵活性。

认识MTU

MTU(最大传输单元,Maximum Transmission Unit)可以类比为快递包裹的尺寸限制,它是不同数据链路对应的物理层所产生的传输长度约束。

  • 以太网帧数据长度约束 :以太网帧中数据段的长度被规定为最小46字节最大1500字节。若ARP数据包长度不足46字节,需要在其后填充补足(PAD字段)。
  • 以太网MTU定义 :以太网数据段的最大长度1500字节,即为以太网的最大传输单元(MTU);不同网络类型对应不同的MTU值。
  • 跨链路分片机制 :当数据包从以太网路由至拨号链路等其他链路时,若数据包长度超过目标链路的MTU,就需要对数据包进行**分片(fragmentation)**处理,拆分为符合目标链路MTU要求的多个分片
  • MTU的差异性:不同数据链路层标准(如以太网、PPP、令牌环等)所规定的MTU数值各不相同。

使用ifconfig命令, 即可查看ip地址, mac地址, 和MTU

MTU对UDP协议的影响

  • 分片阈值计算 :在以太网MTU=1500字节的场景下,UDP携带的有效数据若超过1472字节(计算:1500 - 20字节IP首部 - 8字节UDP首部),就会在网络层被拆分为多个IP数据报。
  • 分片的可靠性风险 :UDP本身无重传机制,而IP层重组要求所有分片必须完整到达。只要任意一个IP分片丢失,整个UDP数据报的重组就会失败,最终导致完整UDP报文丢失。因此,UDP报文被分片后,数据丢失的概率会显著上升。

MTU对TCP协议的影响(MSS相关)

  • MSS定义 :TCP单个数据报的最大消息长度称为 MSS(Max Segment Size,最大分段大小),它的大小受限于MTU。
  • 存储位置 :MSS的值存储在TCP首部的40字节变长选项 中,类型为kind=2
  • 理想MSS取值:最理想的MSS值,是让IP层不需要分片处理的最大长度,即:

MSS=MTU−IP首部长度−TCP首部长度 \text{MSS} = \text{MTU} - \text{IP首部长度} - \text{TCP首部长度}MSS=MTU−IP首部长度−TCP首部长度

(以太网场景下,MTU=1500,IP首部20字节,TCP首部20字节,因此理想MSS=1460字节)

  • MSS协商机制
    1. TCP在三次握手建立连接时,通信双方会通过SYN报文进行MSS协商。
    2. 双方会在TCP头部的**变长选项(kind=2)**中,写入自己能支持的MSS值。
    3. 最终会选择双方MSS值中较小的那个 ,作为本次连接的有效MSS。

局域网中具体通信过程---共享式以太网广播通信原理

这张图展示了**共享式以太网(如集线器环境)**的广播通信机制:

  • 广播发送特性 :主机A发送的以太网帧(目的MAC为macE,源MAC为macA,类型0800代表IP协议)会被广播到所有连接在同一总线/集线器上的主机(B、C、D、E都会收到该帧)。
  • 目标匹配过滤
    • 只有目的MAC地址匹配的主机E会接收并处理该帧的数据。
    • 主机B、C、D因自身MAC地址与帧中目的MACmacE不匹配,会直接丢弃该帧,不做任何处理。
加入交换机后的通信行为解析

初始状态(交换机MAC地址表为空)

  • 主机A发送目的MAC为macE、源MAC为macA的以太网帧。
  • 交换机收到该帧后:
    1. 学习MAC地址 :将源MACmacA与接收端口绑定,写入MAC地址表(CAM表)。
    2. 泛洪转发 :因MAC地址表中无macE的条目,交换机会将该帧广播到除接收端口外的所有其他端口(B、C、D、E都会收到)。
  • 主机B、C、D因MAC不匹配丢弃帧;主机E匹配目的MACmacE,接收并处理该帧。

交换机学习到macE后(MAC地址表已包含macAmacE

  • 主机A再次发送目的MAC为macE的帧:
    1. 交换机查询MAC地址表,发现macE对应主机E的端口。
    2. 精准单播转发 :仅将该帧转发到主机E所在端口,不会广播到B、C、D
  • 只有主机E收到并处理该帧,其他主机完全感知不到此通信,带宽和安全性大幅提升。

每次通信,交换机都进行学习,当把主机都学习完毕后,下次通信,可以直接发送到交换机,由交换机直接发送消息到达指定主机,而不进行广播.

只要交换机完成 MAC 地址学习,后续通信就可以精准单播转发

ARP协议

在网络通信中,源主机虽然知道目的主机的IP 地址和端口号,但无法直接获知其硬件 MAC 地址:

  • 网卡仅接收硬件地址与本机匹配的数据包,地址不符则直接丢弃。
  • 若没有目的 MAC 地址,以太网帧无法正确封装和交付,通信无法建立。
  • 因此,通信前必须通过 ARP 协议将目的 IP 地址解析为对应的 MAC 地址,才能完成局域网内的数据传输。

ARP协议核心作用 : 建立了主机 IP地址MAC地址 的映射关系.

ARP不是⼀个单纯的数据链路层的协议, 而是⼀个介于数据链路层和网络层之间的协议.

网络层与数据链路层的核心协议关系

"类型" 指的就是以太网帧头部的类型字段,它是上层协议的标识,决定了数据链路层如何交付给上层。

类型值 对应上层协议 作用
0x0800 IP 协议 表示以太网帧的数据部分是 IP 数据报,交付给网络层 IP 协议处理
0x0806 ARP 协议 表示数据部分是 ARP 请求 / 应答,交付给数据链路层 ARP 协议处理
0x8035 RARP 协议 表示数据部分是 RARP 请求 / 应答,交付给数据链路层 RARP 协议处理
  • IP → 以太网:IP 数据报封装进以太网帧时,类型字段设为0x0800,告知对方法数据是 IP 协议。
  • 以太网 → ARP/RARP:当类型字段为0x0806或0x8035时,以太网帧直接将数据交给 ARP/RARP 协议处理,无需经过网络层。
  • ARP → 以太网:ARP 报文封装进以太网帧时,类型字段设为0x0806,用于 IP 到 MAC 的地址解析。
  • RARP → 以太网:RARP 报文封装进以太网帧时,类型字段设为0x8035,用于 MAC 到 IP 的地址解析。

ARP协议的工作流程

  • ARP 请求 :源主机以广播方式(目的 MAC 为FF:FF:FF:FF:FF:FF)发送 ARP 请求,询问 "192.168.0.1对应的 MAC 地址是多少",确保本网段所有主机都能收到该查询。
  • ARP 应答 :只有 IP 地址匹配的目的主机,会单播回复ARP 应答将自身 MAC 地址告知源主机,完成 IP→MAC 的地址映射。

ARP缓存表

每台主机都维护⼀个ARP缓存表 ,可以用arp -a命令查看。缓存表中的表项有过期时间(⼀般为20分钟),如果20分钟内没有再次使用某个表项,则该表项失效,下次还要发ARP请求来获得目的主机的硬件地址

bash 复制代码
syb@VM-8-5-ubuntu:~$ arp -a
_gateway (10.1.8.1) at fe:ee:6b:e3:2a:f8 [ether] on eth0

ARP数据报的格式

报文整体结构

  • 以太网首部(14字节):目的MAC地址(6B)、源MAC地址(6B)、帧类型(2B,ARP 为 0x0806)
  • ARP 数据部分(28字节):硬件类型、协议类型、地址长度、操作码、发送端/目的端的 MAC+IP 地址
字段 含义与取值
硬件类型 链路层网络类型,以太网为 1
协议类型 要转换的地址类型,IPv4 为 0x0800
硬件地址长度 MAC 地址长度,以太网为 6字节
协议地址长度 IP 地址长度,IPv4 为 4字节
op(操作码) 1 = ARP 请求,2 = ARP 应答
地址冗余 源/目的 MAC 地址在以太网首部和 ARP 报文中各出现一次,以太网场景下冗余,但兼容其他链路层协议
相关推荐
HoldBelief2 小时前
MCP中streamable-http与sse协议的区别
网络·网络协议·http
一次旅行2 小时前
Openclaw龙虾报错disconnocted (1008): unauthorized: gatoway token处理方法
网络·人工智能
Du_chong_huan2 小时前
4.2 光纤接入网(FTTH)的工作原理
网络
liulilittle2 小时前
IP 溯源技术原理
服务器·网络·tcp/ip·ip·trace·通信·sy
kkkkatoq3 小时前
http相关整理
网络·网络协议·http
zephyr053 小时前
TCP/IP协议族详解:数据在互联网中是如何“漂流”的?
服务器·网络·tcp/ip
测试专家3 小时前
ACC-5595反射内存交换机
网络
tianshiyeben3 小时前
日志审计系统WGLOG介绍 - 怎么采集防火墙的日志
运维·服务器·网络·日志审计
乾元3 小时前
算力优化: 在有限硬件资源下进行安全模型微调(Fine-tuning)
网络·人工智能·神经网络·安全·web安全·机器学习·安全架构