【计算机网络】数据链路层深度解析:从以太网帧到MAC地址寻址
本文主要介绍了数据链路层特别是以太网协议的工作原理。数据链路层负责局域网内设备间的数据传输,核心功能包括成帧和物理寻址(通过MAC地址)。以太网帧包含固定长度的报头(14字节)和报尾(4字节),并通过"类型"字段识别上层协议。MTU限制数据大小(1500字节),影响上层分片策略。交换机通过MAC地址表实现单播、广播和未知单播转发。文章还简要介绍了MAC地址的格式和作用,以及CR
文章目录
前言
数据链路层是 TCP/IP 协议栈中最底层的协议。
其解决的问题是:局域网内相连的主机之间数据的交付问题。
本文主要基以太网来进行数据链路层的介绍。
1. 数据链路层简介
-
数据链路层:
主要负责在同一个本地网络(局域网)中的两个设备之间进行数据的传输。(但是数据链路层也可以实现广域网下的两个设备之间数据的传输,此时就不涉及 MAC 了)
- 常见的局域网通信的协议:以太网、WIFI、令牌环……
本文主要探讨的数据链路层通信的是:局域网协议以太网协议。
数据链路层的核心功能:
-
成帧:
将从网络层接受到的数据包(IP 数据包、局域网的 ARP 请求/应答包)大伯,添加当前数据链路层的报文信息。例如:以太网在头部添加报头信息,在尾部添加信息,形成的数据称为“帧”。这个帧在数据链路层的传输的基本单位。
-
物理寻址:
数据链路层还需要得到当前的目标主机(可以是路由器)的 MAC 地址(Media Access Control Address,介质访问控制地址)。在本地网络中,设备之间是不能通过 IP 地址进行直接进行通信的,而是通过一个唯一的、烧录在网卡上的物理地址 MAC 地址来进行的。
MTU
上面谈到了数据链路层需要对上层的数据进行成帧处理。对于上层交付的数据,数据链路层是有要求的。
-
MTU:
MTU(Maximum Translation Unit,最大传输单元)相当于是对传输的数据的限制。这个限制对于不同的数据链路层对物理层进行的限制。例如:以太网中规定,以太网帧中的数据最小长度是 46 字节(当数据量不足 46 字节的时候,以太网会自己填充),最大数据长度是 1500 字节。注意这个数据量是没有计算自己的报头信息的。
由于下层数据链路层对传输的数据有大小的限制,则对上层网络层协议就会产生一定的影响:
-
当上层传输层交付的数据大于了 MTU 的时候,网络层就需要对数据进行分片。但是分片的丢包风险是很大的,所以进一步我们需要减少分片的可能。
- TCP:TCP 协议对数据量的传输进行了限制。滑动窗口控制发送的数据量,每一次发送的 MSS 也会受到下层 MTU 的影响。
- UDP:UDP 协议并没有对数据量的传输进行限制。如果需要实现流量控制,就需要应用层来限制每次发送的数据大小了。
MAC
-
MAC 地址:设备的“身份证”。
为了精准地管理交通,每台联网设备在底层数据传输都必须有一个独一无二的标识。这就是 MAC 地址:也叫做 物理地址 或 硬件地址。
格式:通常是一个 48 位的十六进制数,看起来像这样:00-1A-2B-3C-4D-5E 或 00:1A:2B:3C:4D:5E。
全球唯一:这个地址在设备出厂时就被固化在网卡(NIC)中,理论上全球没有两个相同的 MAC 地址。
作用:在本地网络中(家庭Wi-Fi),数据帧的传递是靠 MAC 地址来寻址的,而不是 IP 地址。交换机通过记录每个端口对应的 MAC 地址来知道该把数据帧转发给谁。
关于交换机,小编不做介绍,大家可以自行了解。
如果大家想要了解数据链路层如何获取对应主机的 MAC 地址,可以参考小编的另外一文:ARP协议
2. 以太网帧报文格式
-
如下图:

-
我们需要解决两个问题:
-
Q:以太网协议中的报头和有效载荷如何分离?
A:以太网协议采用固定长度的报头。在数据首部有14字节的内容和尾部有4字节的内容。
-
Q:有效载荷是如何交付给上层的?
A:在以太网协议中有一个字段:2为类型。通过两位的类型就能得知上层是利用的上面类型的协议了。
-
下面我们来详细介绍一下这些字段:
-
目标地址 && 源地址:
指明了目标主机/当前主机的 MAC 地址。
-
类型:
这是一个关键字段。指明了当前数据的上层协议是什么。例如:IPv4(0x0800)、IPv6(0x86DD)……
-
数据:
上层交付的数据。通常是 46~1500字节。如果不够 46 字节会进行填充。
-
上层交付的数据会有哪些呢?
数据链路层的上层是网络层,但是交付数据的不一定就是 IP 协议。还可能交付数据的是 ARP 协议内容 / RARP 协议内容。
-
-
CRC:
CRC(循环冗余校验)只,用于差错检测。覆盖范围从 “目标 MAC 地址”到“数据”结束。
-
这里小编省略了两个字段:前导码、帧起始界定符。读者有兴趣自行了解。
3. 以太网工作场景
在以太网中进行通信,主要的设备就是交换机。
-
交换机的记录:
- 当一台设备(比如说:主机A)第一次发送一个帧的时候,交换机就会把这个帧的源 MAC 地址和它来自哪一个端口号(不是传输层的端口,而是物理的端口)记录在字节的 MAC 地址表中。很快地,交换机就会获取到整个局域网中所有设备的 MAC 地址和端口的对应关系。
-
交换机的工作:
-
当一个帧到达交换机的时候,交换机查看帧的目标 MAC 地址。
-
然后查看自己的 MAC 地址表:
- 进行单播:如果表中有这个目标 MAC 地址,交换机就会把这个帧只从对应的端口进行发送。完成精准投递。
- 进行广播:如果目标 MAC 地址是 FF:FF:FF:FF:FF:FF,交换机就会把这个帧从除了来源端口的所有端口都发送出去。
- 进行未知单播:如果目标 MAC 不存在,则采取广播方式。
更多推荐



所有评论(0)