数据链路层
网络层 IP 提供的是跨网络发送数据的能力,传输层 TCP 是为数据发送提供可靠性保证的,而链路层解决的则是两台相连主机之间的通信问题。
# MAC 帧格式

- 源地址和目的地址是指网卡的硬件地址(也叫 MAC 地址,全球具有唯一性),长度是 48 位(6 个字节),一般用 16 进制数字加上冒号的形式来表示,例如:
08:00:27:03:fb:19 - 帧协议类型字段有三种值,分别对应 IP 协议、ARP 协议和 RARP 协议。
- 帧末尾是 CRC 校验码。
# 载荷分离和交付上层
- 载荷分离:因为是定长的,直接提取帧头和帧尾后,剩下的就是有效载荷了
- 交付上层:根据帧头的类型字段,将有效载荷交付给对应的上层协议
# 局域网发送原理
在局域网中,任意时刻只能有一个主机发消息,否则的话,数据会发生碰撞,称为无效数据。一个局域网本质就是一个碰撞域,“碰撞检测”就是计算机边发送数据边检测信道上的信号电压大小。当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。
每一个正在发送数据的主机,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。
数据链路层中的交换机可以识别局部性的碰撞,对碰撞数据不做发送,用来划分碰撞域。
# MUT
MTU 相当于发快递时对包裹尺寸的限制.。这个限制是不同的数据链路对应的物理层, 产生的限制。以太网帧中的数据长度规定最小 46 字节,最大 1500 字节。由于数据链路层 MTU 的限制, 对于较大的 IP 数据包网络层要进行分包和组装。
# ARP 协议
在网络通讯时,源主机的应用程序知道目的主机的 IP 地址和端口号,却不知道目的主机的硬件地址。数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃,因此在通讯前必须获得目的主机的硬件地址。
ARP 协议工作在数据链路层,A 建立主机 IP 地址 和 MAC 地址 的映射关系。
# 格式

- 目的 MAC 地址初始并不知道,初值为全 F
- 硬件类型指链路层网络类型,1 为以太网;
- 协议类型指要转换的地址类型,0x0800 为 IP 地址;
- 硬件地址长度对于以太网地址为 6 字节;
- 协议地址长度对于和 IP 地址为 4 字节;
- op 字段为 1 表示 ARP 请求,op 字段为 2 表示 ARP 应答
# 工作流程
IP1 主机获取 IP3 主机的 MAC 地址:

上次更新: 2025/11/11, 22:03:54