教学目标
📖 课前导入
物理层负责传输比特流(0和1),但仅仅传输比特是不够的——你怎么知道一串比特从哪里开始、到哪里结束?传输过程中出了错怎么办?
这些问题由数据链路层来解决。它把原始比特流组织成有结构的帧(Frame),就像把散乱的文字装入信封一样。
今天我们来学习数据链路层的两个核心概念:MAC地址和以太网帧。
📚 一、MAC地址详解 ⭐核心概念
什么是MAC地址?
MAC地址(Media Access Control Address),也叫物理地址或硬件地址,是网卡出厂时由厂商烧录在硬件中的全球唯一标识。
就像每个人都有唯一的身份证号,每个网卡也有唯一的MAC地址。
MAC地址的格式
00:1A:2B:3C:4D:5E
00:1A:2B
OUI(厂商标识)
由IEEE分配
3C:4D:5E
设备序列号
由厂商分配
• 长度:48位(6字节),通常用12个十六进制数表示
• 分隔符:冒号(00:1A:2B:3C:4D:5E)或连字符(00-1A-2B-3C-4D-5E)
• 前3字节(OUI):组织唯一标识符,标识网卡厂商
• 后3字节:厂商自行分配的设备序列号
• 唯一性:理论上全球不会有两个相同的MAC地址
单播地址
第一字节最低位为0,表示发送给单个设备。
如:00:1A:2B:3C:4D:5E
广播地址
全F:FF:FF:FF:FF:FF:FF,表示发送给所有设备。
交换机收到广播帧会转发到所有端口
组播地址
第一字节最低位为1(但不全F),发送给一组设备。
如:01:00:5E:xx:xx:xx
查看你的MAC地址
Windows中使用以下命令查看:
📚 二、以太网帧结构 ⭐核心内容
以太网(Ethernet)
以太网是目前最主流的局域网技术,由Xerox、DEC和Intel联合开发,后被IEEE标准化为802.3标准。我们日常使用的有线局域网几乎都是以太网。
以太网帧(Ethernet II)结构
前导码
7字节
SFD
1字节
目的MAC
6字节
源MAC
6字节
类型
2字节
数据(有效载荷)
46~1500字节
FCS
4字节
前导码(Preamble)+ SFD —— 8字节
7字节前导码(10101010重复)用于时钟同步,1字节帧起始定界符SFD(10101011)标记帧的开始。接收方据此知道"正式数据来了"。
目的MAC地址 —— 6字节
接收方的MAC地址。交换机根据这个字段决定转发到哪个端口。
源MAC地址 —— 6字节
发送方的MAC地址。交换机根据这个字段学习MAC地址表。
类型(Type)—— 2字节
标识上层协议类型。常见值:0x0800=IPv4,0x0806=ARP,0x86DD=IPv6。
数据(Data / Payload)—— 46~1500字节
上层协议的数据(如IP数据包)。最小46字节(不足需填充),最大1500字节(即MTU,最大传输单元)。
帧校验序列(FCS)—— 4字节
使用CRC-32循环冗余校验算法计算,用于检测帧在传输过程中是否发生了错误。接收方重新计算CRC并与FCS对比,不一致则丢弃该帧。
重要数值记忆
• 以太网帧最小长度:64字节(不含前导码和SFD)
• 以太网帧最大长度:1518字节(不含前导码和SFD)
• MTU(最大传输单元):1500字节(数据字段最大值)
• MAC地址长度:48位 = 6字节
• 广播MAC地址:FF:FF:FF:FF:FF:FF
以太网帧结构Wireshark实战分析
使用Wireshark抓包,展开Ethernet II层,逐字段分析目的MAC、源MAC、类型、数据和FCS
使用Wireshark抓包,展开Ethernet II层,逐字段分析目的MAC、源MAC、类型、数据和FCS
📚 三、ARP协议——IP到MAC的桥梁
为什么需要ARP?
网络层使用IP地址标识主机,数据链路层使用MAC地址转发帧。当你要发送数据给192.168.1.20时,你知道对方的IP,但不知道对方的MAC地址——怎么填帧头?
ARP(Address Resolution Protocol,地址解析协议)就是用来解决这个问题的:通过IP地址查找对应的MAC地址。
ARP工作过程
第1步:发送ARP请求(广播)
PC-A想知道192.168.1.20的MAC地址,于是广播一个ARP请求帧:
"我是192.168.1.10(MAC:AA:AA:AA:AA:AA:AA),谁是192.168.1.20?请把你的MAC地址告诉我!"
目的MAC填 FF:FF:FF:FF:FF:FF(广播),网内所有设备都能收到。
第2步:目标回复ARP应答(单播)
IP为192.168.1.20的PC-B收到后,单播回复:
"我是192.168.1.20,我的MAC地址是BB:BB:BB:BB:BB:BB。"
其他设备发现不是问自己的,直接忽略。
第3步:缓存到ARP表
PC-A收到回复后,将 192.168.1.20→BB:BB:BB:BB:BB:BB 的映射缓存到ARP表中。下次再给192.168.1.20发数据时,直接查ARP表就行,不用再广播了。
ARP缓存有有效期,过期后会删除(Windows默认约2分钟)。
ARP欺骗攻击(了解)
由于ARP协议没有认证机制,攻击者可以发送伪造的ARP应答,让受害者将网关的IP映射到攻击者的MAC地址上,从而截获所有流量。这就是ARP欺骗(ARP Spoofing),也叫中间人攻击的一种形式。
防范方法:使用静态ARP绑定、部署ARP防护软件、启用交换机的DAI(动态ARP检测)功能。
✅ 课堂小测
随堂测验
第 1/6 题MAC地址的长度是多少?
📋 本课小结
MAC地址:48位物理地址,全球唯一,前3字节标识厂商,后3字节标识设备。
以太网帧:目的MAC + 源MAC + 类型 + 数据 + FCS,最小64字节,MTU=1500字节。
ARP协议:通过广播请求和单播应答实现IP→MAC地址解析,结果缓存在ARP表中。
CRC校验:FCS字段用CRC-32检测传输错误,错误帧直接丢弃。
🤔 课后思考
- 用 Wireshark 抓包,找到一个以太网帧,查看其目的MAC、源MAC和类型字段的值。
- 执行
arp -d *清除ARP缓存,然后 ping 某台设备,再用arp -a查看新学到的ARP条目。 - 如果以太网帧传输中出现了1个比特的错误,CRC校验能检测到吗?(提示:CRC-32可以检测所有单比特和双比特错误)