计算机网络学习(八)——MAC

一、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 工作流程(请求-响应机制):

  1. 发送请求(ARP Request):

    • 主机 A 构造一个广播帧,询问"谁是 192.168.1.5?";
    • MAC 目标地址:FF:FF:FF:FF:FF:FF(广播);
    • 包含发送方的 IP 和 MAC 地址。
  2. 接收响应(ARP Reply):

    • 目标主机 B 收到请求,发现目标 IP 是自己 → 回复包含自身 MAC 地址的应答帧(单播给 A)。
  3. 更新缓存

    • A 收到响应后,将 B 的 IP 与 MAC 的映射关系缓存到 ARP 缓存表(ARP Cache)

六、MAC 地址与交换机

  • 交换机是工作在数据链路层的设备;
  • 它通过学习 MAC 地址表(MAC → 端口)转发数据;
  • 当接收到一个帧时,交换机会查找目标 MAC 所在端口,仅将数据转发到该端口(而非广播);
  • 若未知地址,则广播该帧。

七、MAC 伪装与安全问题

虽然 MAC 地址理论上是固定的,但它可以被修改(伪装):

行为 说明
MAC 伪装 修改本机 MAC 地址,使其看起来像另一个设备
ARP 欺骗 伪造 ARP 响应,冒充网关等设备,实现中间人攻击
防范手段 静态 ARP 表、防ARP欺骗软件、网络访问控制(NAC)
相关推荐
pe7er9 天前
macOS 应用无法打开(权限问题)解决方案
macos·mac
西岸行者11 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意11 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码11 天前
嵌入式学习路线
学习
毛小茛11 天前
计算机系统概论——校验码
学习
babe小鑫11 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms11 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下11 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。11 天前
2026.2.25监控学习
学习
im_AMBER11 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode