数据链路层
1. 怎么分离报文头部与有效载荷?
以太网头部长度固定为 14 字节(6+6+2)。 收到完整以太网帧之后:
总帧数据,跳过前面固定 14 字节的帧头,剩下的部分就是上层有效载荷。 公式:载荷 = 整个以太网帧 - 14 字节帧头 - 末尾 4 字节 CRC 校验。
关键点:以太网帧头固定长度,不需要额外长度字段,直接偏移固定字节就能取出载荷。
2. 类型字段(2 字节)的作用:分用(多路分解)
分用(demultiplexing):接收方拿到载荷之后,判断交给上层哪个协议。 类型字段标记数据载荷里面是什么协议:
0x0800→ IPv4 报文(最常见)0x86DD→ IPv6 报文0x0806→ ARP 报文
一句话理解:MAC 层收到帧,剥离 14 字节帧头拿到载荷,读取【类型字段】,知道载荷里面装的是 IP/ARP,然后交给对应的上层模块,这个过程就叫分用。
ARP 与 RARP 报文属于数据链路层报文,被封装在以太网帧载荷中。 以太网帧数据载荷最小为 46 字节;ARP 报文固定 28 字节,不足部分使用 PAD (一般是全0)填充补齐 18 字节。
IP vs MAC
IP 地址:远大最终目标好比唐僧取经,目标是从东土大唐,一路去往西天。 代表端到端的最终目的地,全程不变,从头到尾目标不变。
MAC 地址:当下这一段的下一站就像取经路上一站一站赶路:女儿国→车迟国→狮驼岭。 MAC 只管当前这一段链路,只负责走到下一站;每进入一个新国家(新链路 / 新局域网),就要更换下一站目的地。
早期总线型共享以太网,所有主机共用一条通信线路,同一时刻只允许一台主机发送数据。主机发送的以太网帧会广播到局域网内全部主机;主机收到帧后比对目的 MAC,不是发给自己的报文直接丢弃。
当两台主机同时发送数据,会产生信号碰撞,报文损坏。CSMA/CD 就是用来处理介质冲突的机制:先听后发,边发边听,冲突停发,随机重传。主机发送前监听线路,空闲才发送;发送过程持续检测碰撞,一旦检测冲突就停止发送,等待随机时间后重试。
注意区分:现代交换机以太网工作在全双工模式,收发使用独立通道,不再存在信号碰撞,CSMA/CD 仅作为理论考点。
- 帧长度会影响碰撞概率。帧越长,信道占用时间越长,其他主机在发送期间同时发包的可能性变大,碰撞概率越高;短帧占用介质时间短,碰撞概率更低。
- 主机数量增多,冲突概率显著增加。更多主机竞争共享总线,更容易出现多主机同时发送,频繁发生碰撞,大量资源消耗在冲突与重传,网络有效吞吐量下降。
交换机
交换机在某种意义上,将一个局域网分成了两个part,
左侧机器的通信不会影响右侧机器的相互通信,同时又能实现两侧机器来实现相互通信,增加了通信的效率
交换机最核心的优势就是分割碰撞域,支持局域网内多组主机并行传输,提升带宽利用率;依靠 MAC 地址表实现精准单播转发,当目的 MAC 未知时执行泛洪。
工作原理
- 主机 A 封装帧:
src MacA,dst MacD,把帧发送到网线,从eth_left端口进入交换机。 - 第一步:MAC 自学习交换机读取帧里的源 MAC MacA,查表:MacA 对应的端口就是当前入端口 eth_left,条目不变,无需更新。
- 第二步:查询目的 MAC,做转发决策读取目的 MAC
MacD,查询 MAC 地址表:
MacD 对应的端口:
eth_left,也就是和入端口是同一个端口!
交换机规则:如果目的端口 == 报文的入端口 → 直接丢弃该帧,不向任何其他端口转发。
ARP
拿到目的 IP,通过子网掩码计算目标网络,查询路由表得到下一跳 IP 地址。 想要在以太网中发送数据,必须知道下一跳路由器 / 主机的 MAC 地址。 在同一个网段内,需要一种技术,将下一跳 IP 解析为下一跳设备的 MAC 地址。 这个局域网协议就是:ARP 地址解析协议。
我们根据上面整个来完成下面整个目标
此时主机A在他所在的以太网发送他的arp报文给所有的主机
比如是B主机收到了的报文,他进行报头与有效载荷的分离,然后看目的ip地址,比对发现不是自己,就会将报文丢弃
如果是E主机收到了报文,他进行报头与有效载荷的分离,然后看目的ip地址,比对发现就是自己,然后就会将构建arp应答,那么还要进行arp报文的区分
主机a的报文
主机e的报文
这样主机A就获得了主机E的mac地址
- A 发 ARP 广播请求 (op=1):请问 ipE 的 MAC 是谁?全网主机收到。
- B 等其他主机:目标 IP 不是自己,丢弃。
- E 匹配目标 IP,构造 ARP 单播应答 (op=2),带上自己 MacE 发给 A。
- A 收到应答,得到 ipE ↔ MacE 映射,存入 ARP 缓存
- 缓存里存储的是IP 与 MAC 的映射条目。
- ARP 缓存条目带有老化时间(时间限制),不是永久保存。
- 长时间没有使用这条 IP-MAC 映射,条目就会自动过期删除。
- 好处:如果设备更换网卡、IP 发生变化,旧的失效 MAC 记录可以自动清除,防止通信故障。
ARP 欺骗(ARP 中间人攻击)极简介绍
核心原理
ARP 协议没有身份校验机制:只要收到 ARP 应答报文,主机就会无条件更新自己 ARP 缓存里的IP→MAC映射,不管有没有主动发 ARP 请求(免费 ARP)。
ARP 欺骗就是攻击者伪造 ARP 应答报文,篡改目标主机 ARP 缓存:
告诉受害主机:网关 IP 对应的 MAC = 攻击者主机 MAC 同时告诉网关:受害主机 IP 对应的 MAC = 攻击者主机 MAC
于是受害主机发给网关的流量、网关返回给受害主机的流量,全部先经过攻击者机器转发,这就是ARP 中间人攻击。