【计算机网络 | 第十篇】以太网的 MAC 层

文章目录

  • [3.3 使用广播信道的数据链路层](#3.3 使用广播信道的数据链路层)
    • [以太网的 MAC 层](#以太网的 MAC 层)
      • [1. MAC 层的硬件地址](#1. MAC 层的硬件地址)
        • [MAC 地址的定义](#MAC 地址的定义)
        • [48 位 MAC 地址的结构](#48 位 MAC 地址的结构)
        • 地址位的特殊含义
      • [2. 适配器对 MAC 地址的检查](#2. 适配器对 MAC 地址的检查)
      • [3. MAC 帧的格式](#3. MAC 帧的格式)
      • [4. 无效的 MAC 帧](#4. 无效的 MAC 帧)

3.3 使用广播信道的数据链路层

说明 :本章内容涵盖局域网的数据链路层、CSMA/CD 协议、使用集线器的星形拓扑以及以太网的信道利用率等内容。鉴于篇幅与博客总结侧重点,本小节博客只整理了最后的 以太网的 MAC 层

以太网的 MAC 层

1. MAC 层的硬件地址

在局域网中,硬件地址又称为物理地址或 MAC 地址

MAC 地址的定义

IEEE 802 标准中所说的"地址",严格来讲是每一个站的"名字"或标识符。

另外,如果连接在局域网上的主机或路由器安装有多个适配器(网卡),那么该主机或路由器就拥有多个"地址"。更准确地说,这种 48 位的"地址"应当是某个接口的标识符

48 位 MAC 地址的结构

IEEE 802 标准规定 MAC 地址字段采用 6 字节(48 位)格式。IEEE 的注册管理机构 RA 负责向厂家分配地址字段的前三个字节(即高位 24 位),称为组织唯一标识符

地址字段的后三个字节(即低位 24 位)由厂家自行指派,称为扩展唯一标识符。厂家必须保证生产出的适配器没有重复地址。

一个地址块可以生成 2 24 2^{24} 224 个不同的地址。这种 48 位地址称为 MAC-48,其通用名称是 EUI-48 。生产适配器时,6 字节的 MAC 地址已被固化在适配器的 ROM 中,因此 MAC 地址也被称为硬件地址物理地址

地址位的特殊含义
  1. I/G 位 (Individual/Group)

    • IEEE 规定地址字段第一字节的最低位为 I/G 位。
    • 当 I/G 位 = 0 时 :地址字段表示一个单站地址(单播)。
    • 当 I/G 位 = 1 时 :表示组地址,用来进行多播(组播)。
  2. G/L 位 (Global/Local)

    • IEEE 把地址字段第一字节的最低第 2 位规定为 G/L 位。
    • 当 G/L 位 = 0 时 :是全球管理(保证在全球没有相同的地址),厂商向 IEEE 购买的 OUI 都属于全球管理。
    • 当 G/L 位 = 1 时 :是本地管理,这时用户可任意分配网络上的地址。

2. 适配器对 MAC 地址的检查

适配器从网络上每收到一个 MAC 帧,首先用硬件检查 MAC 帧中的 MAC 地址。

  • 如果是发往本站的帧,则收下,然后再进行其他处理。
  • 否则,将此帧丢弃,不再进行其他处理。

"发往本站的帧"包括以下三种:

  1. 单播帧:一对一,即收到的帧的 MAC 地址与本站的硬件地址相同。
  2. 广播帧:一对全体,即发送给本局域网上所有站点的帧(全 1 地址)。
  3. 多播帧:一对多,即发送给本局域网上有一部分站点的帧。

混杂方式

以混杂方式工作的以太网适配器,只要"听到"有帧在以太网上传输,无论目的地址是否是自己,都会接收下来。这通常用于网络监听和分析。


3. MAC 帧的格式

常用的以太网 MAC 帧格式有两种标准:

  1. DIX Ethernet V2 标准(最常用)。
  2. IEEE 的 802.3 标准。
以太网 V2 的 MAC 帧格式

以太网 V2 帧主要由五个字段组成:

  1. 目的地址:6 字节。
  2. 源地址:6 字节。
  3. 类型 :2 字节。
    • 类型字段用来标志上一层使用的是什么协议,以便把收到的 MAC 帧的数据上交给上一层的这个协议。
    • 例如:0x0800 表示 IP 数据报。
  4. 数据 :46 ~ 1500 字节。
    • 数据字段的正式名称是 MAC 客户数据字段
    • MTU:最大传送单元,即数据字段的最大长度为 1500 字节。
    • 最小长度 :数据字段的最小长度为 46 字节。如果数据少于 46 字节,必须加入填充字段以保证 MAC 帧长不小于 64 字节。
  5. FCS:4 字节,即帧检验序列。
物理层的前同步码

在帧的前面,物理层会插入 8 字节的内容,但这不属于 MAC 帧的一部分:

  • 前同步码:7 字节,用来迅速实现 MAC 帧的比特同步。
  • 帧开始定界符:1 字节,表示后面的信息就是 MAC 帧。

MAC 示例:

各网卡MAC地址:

  • eth0: 00:15:5d:62:ba:4d (物理网卡)
  • br-d7cfc11ea37e: 3a:24:31:af:ae:b1 (网桥)
  • br-e15858d2c99c: 6e:f3:cb:40:9d:53 (网桥)
  • br-f2072db21258:3a:0d:df:d7:12:43 (网桥)
  • docker0: 02:46:a8:42:55:19 (Docker默认网桥)
  • veth62eb915: 2a:a4:c0:d2:76:cf (虚拟以太网设备)

4. 无效的 MAC 帧

对于检查出的无效 MAC 帧,以太网的处理方式是简单地丢弃,不负责重传。

无效 MAC 帧的判定标准:

  1. 数据字段的长度与长度字段的值不一致。
  2. 帧的长度不是整数个字节。
  3. 用收到的帧检验序列 FCS 查出有差错。
  4. 数据字段的长度不在 46 ~ 1500 字节之间。
  5. 有效的 MAC 帧长度范围为 64 ~ 1518 字节
相关推荐
looking_for__3 小时前
【Linux】应用层自定义协议与序列化
linux·服务器·网络
BlackWolfSky3 小时前
鸿蒙高级课程笔记2—应用性能优化
笔记·华为·harmonyos
科技块儿3 小时前
如何选择合适的IP查询工具?精准度与更新频率全面分析
网络·tcp/ip·安全
devmoon3 小时前
Polkadot SDK 自定义 Pallet Benchmark 指南:生成并接入 Weight
开发语言·网络·数据库·web3·区块链·波卡
AEIC学术交流中心3 小时前
【快速EI检索 | ICPS出版】2026年计算机技术与可持续发展国际学术会议(CTSD 2026)
人工智能·计算机网络
玄同7653 小时前
Python Random 模块深度解析:从基础 API 到 AI / 大模型工程化实践
人工智能·笔记·python·学习·算法·语言模型·llm
君鼎3 小时前
计算机网络第九章:无线网络与移动网络学习总结
网络·计算机网络
符哥20083 小时前
C++ 适合初学者的学习笔记整理
c++·笔记·学习
ujainu3 小时前
让笔记触手可及:为 Flutter + OpenHarmony 鸿蒙记事本添加实时搜索(二)
笔记·flutter·openharmony