从 01 开始 从 01 开始
首页
  • 📚 计算机基础

    • 计算机简史
    • 数字电路
    • 计算机组成原理
    • 操作系统
    • Linux
    • 计算机网络
    • 数据库
    • 编程工具
    • 装机
  • 🎨 前端

    • Node
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 手机相关技巧
  • 最全面的输入法教程
  • 最全面的浏览器教程
  • Office
  • 图片类工具
  • 效率类工具
  • 最全面的 RSS 教程
  • 码字工具
  • 各大平台
  • 校招
  • 五险一金
  • 职场规划
  • 关于离职
  • 杂谈
  • 自媒体
  • 📖 读书

    • 读书工具
    • 走进科学
  • 🌍 英语

    • 从零开始学英语
    • 英语兔的相关视频
    • Larry 想做技术大佬的相关视频
  • 🏛️ 政治

    • 反腐
    • GFW
    • 404 内容
    • 审查与自我审查
    • 互联网
    • 战争
    • 读书笔记
  • 💰 经济

    • 关于税
    • 理财
  • 💪 健身

    • 睡眠
    • 皮肤
    • 口腔健康
    • 学会呼吸
    • 健身日志
  • 🏠 其他

    • 驾驶技能
    • 租房与买房
    • 厨艺
  • 电影

    • 电影推荐
  • 电视剧
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 小说
  • 关于本站
  • 关于博主
  • 打赏
  • 网站动态
  • 友人帐
  • 从零开始搭建博客
  • 搭建邮件服务器
  • 本站分享
  • 🌈 生活

    • 2022
    • 2023
    • 2024
    • 2025
  • 📇 文章索引

    • 文章分类
    • 文章归档

晓林

程序猿,自由职业者,博主,英语爱好者,健身达人
首页
  • 📚 计算机基础

    • 计算机简史
    • 数字电路
    • 计算机组成原理
    • 操作系统
    • Linux
    • 计算机网络
    • 数据库
    • 编程工具
    • 装机
  • 🎨 前端

    • Node
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 手机相关技巧
  • 最全面的输入法教程
  • 最全面的浏览器教程
  • Office
  • 图片类工具
  • 效率类工具
  • 最全面的 RSS 教程
  • 码字工具
  • 各大平台
  • 校招
  • 五险一金
  • 职场规划
  • 关于离职
  • 杂谈
  • 自媒体
  • 📖 读书

    • 读书工具
    • 走进科学
  • 🌍 英语

    • 从零开始学英语
    • 英语兔的相关视频
    • Larry 想做技术大佬的相关视频
  • 🏛️ 政治

    • 反腐
    • GFW
    • 404 内容
    • 审查与自我审查
    • 互联网
    • 战争
    • 读书笔记
  • 💰 经济

    • 关于税
    • 理财
  • 💪 健身

    • 睡眠
    • 皮肤
    • 口腔健康
    • 学会呼吸
    • 健身日志
  • 🏠 其他

    • 驾驶技能
    • 租房与买房
    • 厨艺
  • 电影

    • 电影推荐
  • 电视剧
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 小说
  • 关于本站
  • 关于博主
  • 打赏
  • 网站动态
  • 友人帐
  • 从零开始搭建博客
  • 搭建邮件服务器
  • 本站分享
  • 🌈 生活

    • 2022
    • 2023
    • 2024
    • 2025
  • 📇 文章索引

    • 文章分类
    • 文章归档
  • 计算机简史

  • 数字电路

  • 计算机组成原理

  • 操作系统

  • Linux

  • 计算机网络

    • 计算机网络微课堂

      • 课程概述
      • 1-1 计算机网络在信息时代的作用
      • 1-2 因特网概述
      • 1-3 三种交换方式
      • 1-4 计算机网络的定义和分类
      • 1-5 计算机网络的性能指标
      • 1-6 计算机体系结构
      • 2-1 物理层的基本概念
      • 2-2 物理层下面的传输媒体
      • 2-3 传输方式
      • 2-4 编码与调制
      • 2-5 信道的极限容量
      • 3-1 概述
      • 3-2 封装成帧
      • 3-3 差错检测
      • 3-4 可靠传输
      • 3-5 点对点协议 PPP
      • 3-6 媒体接入控制的基本概念
      • 3-7 MAC 地址
        • 对于使用 EUI-48 地址空间的应用程序,‍‍IEEE 的目标寿命为 100 年,也就是直到 2080 年,但现在鼓励采用 EUI64 作为替代。‍‍ ‍
      • 3-7 IP 地址
      • 3-7 ARP 协议
      • 3-8 集线器与交换机的区别
      • 3-9 以太网交换机自学习和转发帧的流程
      • 3-10 以太网交换机的生成树协议 STP
      • 3-11 虚拟局域网 VLAN
      • 4-1 网络层概述
      • 4-2 网络层提供的两种服务
      • 4-3 IPv4 地址
      • 4-4 IP 数据报的发送和转发过程
      • 4-5 静态路由配置及其可能产生的路由环路问题
      • 4-6 路由选择
      • 4-7 IPv4 数据报的首部格式
      • 4-8 网际控制报文协议 ICMP
      • 4-9 虚拟专用网 VPN 与网络地址转换 NAT
      • 5-1 运输层概述
      • 5-2 运输层端口号、复用与分用的概念
      • 5-3 UDP 和 TCP 的对比
      • 5-4 TCP 的流量控制
      • 5-5 TCP 的拥塞控制
      • 5.6 TCP 超时重传时间的选择
      • 5-7 TCP 可靠传输的实现
      • 5-8 TCP 的运输连接管理
      • 5-9 TCP 报文段的首部格式
      • 6-1 应用层概述
      • 6-2 客户—服务器方式和对等方式
      • 6-3 动态主机配置协议 DHCP
      • 6-4 域名系统 DNS
      • 6-5 文件传送协议 FTP
      • 6-6 电子邮件
      • 6-7 万维网 WWW
    • 计算机网络微课堂-实验手册

    • 从零开始学计算机网络

  • 数据库

  • 编程工具

  • 装机

  • 计算机基础
  • 计算机网络
  • 计算机网络微课堂
2023-11-16
目录

3-7 MAC 地址

# 370.3-7 MAC 地址

从本节课开始,‍‍我们将用三次课的时间分别介绍 MAC 地址、IP 地址、ARP 协议:

  • MAC 地址是以太网的 MAC 层所使用的地址
  • IP 地址‍‍是 TCP/IP 体系结构网系层所使用的地址。
  • ARP 协议属于 TCP/IP 体系结构的网际层,‍‍其作用是已知设备所分配到的 IP 地址,使用 ARP 协议,就可以通过该 IP 地址‍‍获取到设备的 MAC 地址。‍‍
  • 从网络体系结构的角度来看,MAC 地址属于数据链路层的范畴,IP 地址和 ARP 协议‍‍属于网际层的范畴。
  • 尽管 IP 地址和 ARP 协议属于 TCP 体系结构的网际层,‍‍而不属于数据链路层,但是它们与 MAC 地址存在一定的关系,并且我们日常的网络应用‍‍都离不开 MAC 地址、IP 地址以及 ARP 协议。因此‍‍我们将这三者放在一起讨论。

# MAC 地址作用

本节课我们介绍 MAC 地址,如图所示‍‍两台主机通过一条链路通信,很显然他们不需要使用地址就可以通信,因为连接在信道上的主机‍‍只有他们两个。‍‍换句话说,是用点对点信道的数据链路层不需要使用地址。

​​

再来看使用共享信道的总线型局域网,总线上的某台主机要给另一台主机发送帧,‍‍表示帧的信号通过总线‍‍会传送到总线上的其他所有主机。那么这些主机如何判断该帧是否是发送给自己的呢?‍‍很显然使用广播信道的数据链路层必须使用地址来区分各主机,也就是说‍‍当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机‍‍都必须有一个唯一的标识。‍‍即一个数据链路层地址。

如图所示,假设总线上各主机的地址‍‍分别用一个不同的大写字母来表示,在每个主机发送的帧中,必须携带标识发送主机‍‍和接收主机的地址。由于这类地址是用于媒体接入控制的,写英文缩写词为 MAC 可以读作 MAC,‍‍因此这类地址被称为 MAC 地址。

如图所示这是主机 C 要发送给主机 d 的帧,‍‍则在帧首部中的目的地址字段应填入主机 D 的 MAC 地址,而在源地址字段‍‍应填入主机 C 自己的 MAC 地址,这样‍‍总线上其他各主机收到该帧后,就可以根据真首部中的目的地址字段的值,‍‍是否与自己的 MAC 地址匹配,进而丢弃或接受该帧。

​​

‍‍MAC 地址一般被固化在网卡的电可擦可编程只读存储器 EEPROM 中,因此‍‍ MAC 地址也被称为硬件地址,如图所示,这是一块 PCI 接口的千兆以太网卡:

  • ‍‍核心芯片采用 REALTEK 的 8169SC,该芯片实现了以太网的数据链路层和物理层
  • ‍‍这是一方 EEPROM 芯片,例如 ‍‍93C46,用来存储 MAC 地址以及网卡的相关信息
  • 这是 BootRom 插槽,‍‍用于网络无盘工作站的启动,一般并不标配启动芯片
  • 这是网络隔离变压器,‍‍将核心芯片与外部隔离,提高抗干扰能力,对核心芯片进行保护,例如防雷击

​​

MAC 地址有时也被称为物理地址,例如在 Windows 系统中,但请大家注意,‍‍这并不意味着 MAC 地址属于网络体系结构中的物理层。‍‍我们来看这道考研题,‍‍这是计算机专业考研全国统考,计算机网络部分 2018 年的题 34,‍‍本题的答案是选项 C。如果大家知道物理地址又称为硬件地址或 MAC 地址,‍‍它并不属于物理层的范畴,而是属于数据链路层的范畴。‍‍那么本题可以直接选出答案,‍‍即便大家不知道物理层接口规范定义的内容,也可以选出答案。

但是如果大家不知道这个知识点,‍‍并且对物理层接口规范定义的机械特性,‍‍电气特性、功能特性以及过程特性不熟悉,而仅从字面上理解,那么很可能选项 c‍‍会被大家首先排除掉。

​​ ‍

一般情况下用户主机会包含两个网络适配器,‍‍一个是有线局域网试配器,也就是有线网卡,另一个是无线局域网试配器,也就是无线网卡。‍‍每个网络适配器都有一个全球唯一的 MAC 地址,而交换机和路由器往往拥有更多的网络接口,‍‍所以就会拥有更多的 MAC 地址。

综上所述,严格来说,MAC 地址‍‍是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识。


# MAC 地址格式

接下来‍‍我们介绍 IEEE 802 局域网的 MAC 地址格式,它由 48 个比特构成,每 8 个比特为 1 个字节,‍‍从左至右依次为第 1 字节到第 6 字节:

  • 前三个字节是组织唯一标识符 OUI,生产网络设备的厂商,需要向 IEEE 的注册管理机构申请一个或多个 OUI
  • 后三个字节是获得 OUI 的厂商可自行随意分配的。这种地址标识符‍‍成为扩展的唯一标识符 EUI。对于 48 比特的 MAC 地址可称为 EUI-48‍‍
  • MAC 地址的标准表示方法是将每 4 个比特写成 1 个 16 进制的字符,共 12 个字符,‍‍将每两个字符分为一组,共 6 组,组之间用短线连接,例如‍‍这是 windows 系统中的表示方法‍‍
  • 也可以将短线更改为冒号。例如这是 Linux 系统,苹果系统,安卓系统中的表示方法‍‍
  • 还可以将 4 个字符分为一组,共三组组之间用点连接。例如‍‍这是 packet tracer 仿真软件中的表示方法
  • 如何在各种系统上查看设备所拥有的 Mac 地址,‍‍大家可自行在网上搜索

​​ ‍


# 查看 MAC 地址所属厂商

另外我们可以在 IEEE 的官方网站查看已分配的组织唯一标识符 OUI,这是具体的网址。standards-oui.ieee.org/oui/oui.txt (opens new window)

可以看到 30-fB-B8 这个 oui 已被分配给华为科技有限公司,而 a4‍‍-45-19 这个 oui 已被分配给小米通信有限公司。

​​ ‍

如果我们知道设备的 MAC 地址,而不知道该设备的厂商信息,可以通过设备的 MAC 地址来查询,有很多网站都提供这样的免费查询服务,例如在该网站 MAC 地址查询 - 根据网卡 MAC 地址查询厂商信息 (opens new window) 输入设备的 MAC 地址后,就可以查出设备的厂商信息。


# MAC 地址种类

  • MAC 地址第一字节的 b0 位取零时,表示该地址是单播地址,‍‍取 1 时表示该地址是多播地址,又称为组播地址

  • MAC 地址第一字节的 b1 位取 0 时,‍‍表示该地址是全球管理的,也就是全球唯一的,取 1 时,表示该地址是本地管理的 ‍ 根据上面的规定,我们来填写下表:

  • 第一字节的第 1 位取 0,表明 MAC 地址是全球管理的‍‍,取 1,‍‍表明 MAC 地址是本地管理的

  • 第一字节的 b0 位取 0,表示 MAC 地址是单播地址,‍‍取 1 表明 MAC 地址是多波地址。

很显然一共有 4 种类型的 MAC 地址,分别是‍‍全球管理的单播地址,全球管理的多播地址,本地管理的单播地址,以及本地管理的多播地址:‍‍

  • 全球管理的单播地址是厂商生产网络设备时给设备的各网络接口固化的 MAC 地址‍‍
  • 全球管理的多播地址是标准网络设备‍‍所应支持的多播地址,用于特定功能。‍‍例如交换机生成树协议,所需要的多播地址
  • ‍‍本地管理的单播地址由网络管理员分配,这种类型的地址‍‍会覆盖网络接口的全球管理单播地址,也就是它的优先级高
  • 本地管理的多播地址,‍‍用于用户对主机的软件配置,以表明该主机属于哪些多播组。需要注意的是‍‍当剩余 46 比特为权一时,也就是 MAC 地址的 48 比特全部为 1,16 进制形式为全 F,就是广播地址
  • 由于 MAC 地址由 48 个比特构成,因此‍‍总地址数量为 2 的 48 次方个,也就是 280 多万亿个。‍‍这 4 类 MAC 地址各占总地址空间的 1/4,也就是每种 Mark 地址有 70 多万亿个

​​ ‍

‍‍请大家思考一下,我们每个人一般会拥有几个全球管理的单波 MAC 地址、台式机、‍‍笔记本电脑、平板电脑、智能手机等设备上的以太网接口、WiFi 接口、‍‍蓝牙接口都分配有全球单波的 MAC 地址,而每台交换机和路由器都拥有多个网络接口,‍‍也就拥有多个全球单播的 MAC 地址。那么在我们有生之年‍‍是否会看到 EUI-48 地址空间耗尽?

# 对于使用 EUI-48 地址空间的应用程序,‍‍IEEE 的目标寿命为 100 年,也就是直到 2080 年,但现在鼓励采用 EUI64 作为替代。‍‍ ‍

# MAC 地址的发送顺序

接下来我们介绍 MAC 地址的发送顺序,字节发送顺序为第一字节到第六字节,‍‍字节内的比特发送顺序为 b0~b7 ,如图所示:

​​

# 单播 MAC 地址

‍‍下面‍‍我们来举例说明单播 MAC 地址的作用。假设这是一个拥有三台主机的总线型以太网,‍‍各主机网卡上固化的全球单波 MAC 地址如图所示,假设主机 B ‍‍要给主机 C 发送单波帧,主机 B 首先要构建该单播帧,在帧首部中的目的地址字段,‍‍填入主机 C 的 MAC 地址,源地址字段填入自己的 MAC 地址,再加上帧首部中的其他字段,‍‍数据载荷以及帧尾部,就构成了该单播帧‍‍。

主机 b 将该单播帧发送出去,主机 A 和 C 都会收到该单播帧。‍‍主机 A 的网卡,发现该单播帧的目的 MAC 地址与自己的 MAC 地址不匹配,于是丢弃该帧‍‍

主机 C 的网卡,发现该单波帧的目的 MAC 地址与自己的 MAC 地址匹配,于是接受该帧,并将该帧‍‍交给其上层处理,如图所示

​​

# 广播 MAC 地址

再来看广播 MAC 地址的作用。假设主机 B 要发送一个广播帧,主机 B 首先要构建该广播帧,在帧首部中的目的地址字段填入广播地址,也就是 16 进制的全 F。源地址字段填入自己的 MAC 地址,再加上帧首部中的其他字段,数据载荷以及帧尾部,就构成了该广播帧。主机 B 将该广播帧发送出去,主机 A 和 C 都会收到该广播帧,发现该帧首部中的目的地址字段的内容是广播地址,就知道该帧是广播帧,接受该帧,并将该帧交给上层处理。 ‍

# 多播 MAC 地址

再来看多播 MAC 地址的作用,假设主机 A 要发送多播帧给该多播地址,‍‍将该多播地址的左起第一个字节写成 8 个比特,可以看到最低比特位是 1,‍‍这就表明该地址是多播地址。这里给大家介绍一个快速判断 MAC 地址是否是多播地址的方法,‍‍也就是如果该位 16 进制数不能整除 2,即 13579BDF,则该地址是多播地址。

‍‍假设主机 BCD 支持 MAC 多播,‍‍各用户给自己的主机配置的多播组列表如下所示,可以看到主机 B 属于两个多播组,‍‍主机 C 也属于两个多播组,而主机 D 不属于任何多播组。

主机 A 首先要构建该多播帧,‍‍在帧首部中的目的地址字段,填入该多播地址,源地址字段填入自己的 MAC 地址,‍‍再加上帧首部中的其他字段,数据载荷‍‍以及帧尾部就构成了该多播帧。

主机 A 将该多播帧发送出去,主机 BCD ‍‍都会收到该多播帧,主机 B 发现该多播帧的目的 MAC 地址,在自己的多播组列表中,‍‍主机 C 发现该多播帧的目的 MAC 地址在自己的多播组列表中,因此‍‍主机 B 和 C 都会接受该帧并送交上层处理。

而主机 D 发现该多播帧的目的 MAC 地址‍‍不在自己的多播组列表中,‍‍主机 D 丢弃该多播帧。‍‍

需要提醒大家注意的是,当给主机配置多播组列表进行私有应用时,‍‍不得使用公有的标准多播地址,具体可在以下网址查询。

​​

# 随机 MAC

最后‍‍我们简单介绍一下随机 MAC 地址的概念。‍‍据斯诺登爆料,美国国家安全局有一套系统‍‍,通过监视电子设备的 MAC 地址,来跟踪城市中每个人的行动。因此‍‍苹果率先在 iOS 系列设备扫描网络时,采用随机 MAC 地址技术,随后‍‍ Windows 10,安卓 6.0,以及内核版本为 3.18 的 Linux 系统,‍‍也开始提供随机 MAC 地址的功能。目前大多数移动设备已经采用了随机 MAC 地址技术。‍‍ ‍ 我们将本节课的内容小结:‍

​​

上次更新: 2025/6/3 09:31:54
3-6 媒体接入控制的基本概念
3-7 IP 地址

← 3-6 媒体接入控制的基本概念 3-7 IP 地址→

最近更新
01
学点统计学:轻松识破一本正经的胡说八道
06-05
02
2025 年 5 月记
05-31
03
《贫穷的本质》很棒,但可能不适合你
05-27
更多文章>
Theme by Vdoing | Copyright © 2022-2025 | 粤 ICP 备 2022067627 号 -1 | 粤公网安备 44011302003646 号 | 点击查看十年之约
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式