一、MAC
在计算机网络中,MAC(Media Access Control,媒体访问控制)地址 是数据链路层的重要概念 ,它用于唯一标识网络中的设备,并且在局域网(如以太网)中发挥关键作用。
MAC 是硬件地址,也称为物理地址或链路地址,用于在同一链路层中唯一标识网络接口(如网卡)。
- 是网卡出厂时烧录的一个唯一标识;
- 用于局域网中设备的识别与通信;
- 与 IP 地址不同,MAC 地址与设备硬件绑定,不能跨网络路由。
二、MAC 地址的结构
MAC 地址是 48 位(6 字节) ,常以十六进制表示,
由两部分构成:
字节位置 | 字节数 | 名称 | 说明 |
---|---|---|---|
前 3 字节 | 24 位 | OUI(组织唯一标识符) | 由 IEEE 分配给制造商(如 Intel、Cisco) |
后 3 字节 | 24 位 | NIC-specific(设备序列号) | 由厂商自定义,唯一标识该设备 |
示例:
00:1A:2B:3C:4D:5E
└──┬──┘ └───┬───┘
OUI 设备序列号
00:1A:2B
是某个厂商分配的 OUI(如 Intel);3C:4D:5E
是该厂商生成的设备唯一编号。
三、MAC 地址的分类
类型 | 说明 |
---|---|
单播地址(Unicast) | 表示发送给某一个设备 |
广播地址(Broadcast) | FF:FF:FF:FF:FF:FF ,表示发送给所有设备 |
多播地址(Multicast) | 表示发送给一组设备,首字节的最低位为 1 |
本地管理地址 | 可以由用户或软件自定义,区别于全球唯一地址(由IEEE分配) |
四、MAC vs IP
比较项 | MAC 地址 | IP 地址 |
---|---|---|
层级 | 数据链路层(第二层) | 网络层(第三层) |
范围 | 仅在本地网络有效 | 可跨网络传输 |
分配方式 | 由设备厂家出厂时指定 | 通常由网络管理员或 DHCP 分配 |
是否唯一 | 全球唯一(OUI + 序列号) | 网络内唯一(可变动) |
在以太网通信中,IP 是逻辑地址,而 MAC 是物理地址,设备实际是通过 MAC 通信的。
五、ARP 协议:桥梁作用
ARP(Address Resolution Protocol,地址解析协议) 是 TCP/IP 协议族中的一个核心协议,工作在 数据链路层与网络层之间,用于将 IP 地址解析为对应的 MAC 地址,是局域网通信中不可缺少的协议。
举例:
主机 A 想向 192.168.1.5
发送数据,但不知道它的 MAC 地址 → 使用 ARP 请求来获取。
ARP 工作流程(请求-响应机制):
-
发送请求(ARP Request):
- 主机 A 构造一个广播帧,询问"谁是 192.168.1.5?";
- MAC 目标地址:
FF:FF:FF:FF:FF:FF
(广播); - 包含发送方的 IP 和 MAC 地址。
-
接收响应(ARP Reply):
- 目标主机 B 收到请求,发现目标 IP 是自己 → 回复包含自身 MAC 地址的应答帧(单播给 A)。
-
更新缓存:
- A 收到响应后,将 B 的 IP 与 MAC 的映射关系缓存到 ARP 缓存表(ARP Cache)。
六、MAC 地址与交换机
- 交换机是工作在数据链路层的设备;
- 它通过学习 MAC 地址表(MAC → 端口)转发数据;
- 当接收到一个帧时,交换机会查找目标 MAC 所在端口,仅将数据转发到该端口(而非广播);
- 若未知地址,则广播该帧。
七、MAC 伪装与安全问题
虽然 MAC 地址理论上是固定的,但它可以被修改(伪装):
行为 | 说明 |
---|---|
MAC 伪装 | 修改本机 MAC 地址,使其看起来像另一个设备 |
ARP 欺骗 | 伪造 ARP 响应,冒充网关等设备,实现中间人攻击 |
防范手段 | 静态 ARP 表、防ARP欺骗软件、网络访问控制(NAC) |