下面整理的是“IEEE 802.3标准”至“高速以太网”之前的全部内容,涵盖 CSMA/CD、监听策略、二进制指数后退算法,以及局域网网桥互连。全文仅使用 DokuWiki 原生标题、表格、列表、粗体和等宽文本语法。
本节主要介绍传统共享式以太网的介质访问控制,以及局域网之间的网桥互连技术。
IEEE 802.3标准
│
├─ CSMA/CD协议
│ ├─ 载波监听
│ ├─ 多路访问
│ ├─ 冲突检测
│ ├─ 干扰信号
│ └─ 随机后退
│
├─ 二进制指数后退算法
│ ├─ 冲突次数
│ ├─ 随机数
│ ├─争用期
│ └─ 最大重传次数
│
└─ 局域网互连
├─ 透明网桥
│ ├─ 帧转发
│ ├─ 地址学习
│ └─ 生成树
│
└─ 源路由网桥
├─ 源站选择路径
└─ 路由信息写入帧头
IEEE(Institute of Electrical and Electronics Engineers,电气电子工程师学会)制定的IEEE 802系列标准用于规范局域网和城域网技术。
IEEE 802.3主要规范以太网的:
传统共享式以太网采用:
CSMA/CD(Carrier Sense Multiple Access with Collision Detection,载波监听多路访问/冲突检测)
早期以太网中的多个站点共享同一条通信介质。
在共享信道中:
多个站点同时发送造成的现象称为:
Collision(冲突或碰撞)
站点监听到信道空闲,并不代表整个网络中绝对没有站点正在发送。
原因是信号传播需要时间。
例如:
另一种情况是两个站点几乎同时监听到信道空闲,并同时开始发送,也会发生冲突。
核心结论:载波监听只能降低冲突概率,不能彻底避免冲突。
CSMA(Carrier Sense Multiple Access,载波监听多路访问)
缩写可拆分为:
站点发送数据之前,先监听信道上是否存在其他站点的载波信号。
准备发送数据
↓
监听共享信道
↓
信道是否空闲?
├─ 否:按照监听策略等待
└─ 是:按照监听策略决定是否立即发送
CSMA需要解决两个基本问题:
不同的处理规则形成不同的CSMA监听策略。
1-Persistent CSMA(1-坚持载波监听多路访问)的工作规则是:
其中“1”表示信道空闲时立即发送的概率为1。
监听信道
↓
信道空闲?
├─ 是:立即发送
└─ 否:持续监听
↓
一旦空闲立即发送
优点:
缺点:
Non-Persistent CSMA(非坚持载波监听多路访问)的工作规则是:
监听信道
↓
信道空闲?
├─ 是:立即发送
└─ 否:随机等待
↓
重新监听
优点:
缺点:
p-Persistent CSMA(p-坚持载波监听多路访问)通常用于时间被划分为时隙的信道。
工作规则是:
p 发送;1-p 推迟到下一个时隙;检测到信道空闲
↓
生成随机判断
↓
┌───────┴────────┐
│概率p:立即发送 │
│概率1-p:等待一个时隙│
└────────────────┘
优点:
缺点:
p;p选择不当会降低性能。| 比较项目 | 1-坚持CSMA | 非坚持CSMA | p-坚持CSMA |
|---|---|---|---|
| 信道空闲时 | 立即发送 | 立即发送 | 以概率p发送 |
| 信道忙时 | 持续监听 | 随机等待后重听 | 持续监听 |
| 冲突概率 | 较高 | 较低 | 可通过p调节 |
| 信道利用速度 | 快 | 可能较慢 | 介于两者之间 |
| 高负载稳定性 | 较差 | 较好 | 取决于p |
| 适用信道 | 连续时间信道 | 连续时间信道 | 分时隙信道 |
单纯使用CSMA仍然不能消除冲突。
以太网在CSMA基础上增加冲突检测,形成:
CSMA/CD(Carrier Sense Multiple Access with Collision Detection,载波监听多路访问/冲突检测)
CSMA/CD的基本原则通常概括为:
站点准备发送帧
↓
监听信道
↓
信道是否空闲?
├─ 否:按照监听策略继续监听或等待
└─ 是:开始发送帧
↓
发送过程中继续检测信道
↓
是否检测到冲突?
├─ 否:继续发送直至帧结束
└─ 是:发送干扰信号
↓
立即停止发送
↓
执行随机后退
↓
重新监听并尝试发送
发送前,站点检测共享介质上是否存在其他站点发送的载波信号。
载波监听不能消除由传播时延造成的冲突。
多个站点连接在同一共享介质上,并具有平等的信道访问权。
这就是:
Multiple Access(多路访问)
在传统共享式以太网中,不存在固定的中央控制站统一分配发送权。
站点开始发送后,仍然需要继续监听信道,并将线路上的实际信号与自己发送的信号进行比较。
如果检测到信号异常,则判断发生冲突。
这种发送过程中继续监听的机制称为:
Collision Detection(冲突检测)
检测到冲突后,站点会发送一段特殊信号,确保共享网段中的所有站点都能发现冲突。
该信号称为:
Jam Signal(干扰信号或强化冲突信号)
发送干扰信号后:
如果发生冲突的所有站点都等待相同时间后重传,它们可能再次同时发送,造成重复冲突。
因此,各站点必须随机选择后退时间,使它们下一次发送的时刻尽可能错开。
信号从网络一端传播到另一端所需的时间称为单程传播时延,通常记作:
''τ''
最不利情况下:
2τ 后才能检测到冲突。以太网中端到端往返传播时间称为:
Contention Period(争用期)
或:
Collision Window(冲突窗口)
其长度近似为:
''2τ''
站点发送数据后的前 2τ 时间,是可能检测到冲突的关键时间段。
传统以太网把争用期定义为一个标准时槽:
Slot Time(时槽时间)
经典以太网时槽为:
''512 bit times''
即发送512 bit所需的时间。
在10 Mb/s以太网中:
''时槽时间=512÷10,000,000 s''
''时槽时间=51.2 μs''
其中:
μs表示Microsecond,即微秒;为了保证发送站在帧发送结束前能够检测到最远端产生的冲突,帧发送时间必须不小于争用期。
因此:
''最短帧发送时间≥2τ''
对应经典以太网的最短帧长度为:
''512 bit=64 byte''
其中:
''1 byte=8 bit''
''64×8=512 bit''
以太网MAC帧从目的地址字段开始到FCS结束,最小长度为64字节。
如果帧太短:
因此,以太网对帧设置最小长度。
如果上层数据不足,需要使用填充字段补足最短帧长度。
发生冲突后,各站点不能立即同时重传,而应随机等待一段时间。
以太网使用:
BEB(Binary Exponential Backoff,二进制指数后退算法)
随着连续冲突次数增加,随机后退范围按照2的指数扩大。
设:
n为重传或冲突次数;ξ为随机整数;τ为基本时槽或基本后退时间;t_ξ为随机后退时延。教材给出的基本形式为:
''ξ=random[0,2^n]''
''t_ξ=ξτ''
其含义是:
n=0;n增加1;n 增加,可选择的随机后退范围扩大;经典IEEE 802.3通常采用:
''k=min(n,10)''
''r∈{0,1,2,…,2^k-1}''
''后退时间=r×SlotTime''
其中:
| 符号 | 含义 |
|---|---|
n | 当前帧已经发生的冲突次数 |
k | 用于计算随机范围的指数,最大取10 |
r | 从指定范围中均匀选择的随机整数 |
SlotTime | 标准时槽时间 |
教材写成 random[0,2^n] 是用于说明后退范围按2的指数增长;考试涉及标准精确取值时,一般使用 0~2^k-1。
| 冲突次数n | k值 | 随机整数r的范围 | 最大后退时槽数 |
|---|---|---|---|
| 1 | 1 | 0~1 | 1 |
| 2 | 2 | 0~3 | 3 |
| 3 | 3 | 0~7 | 7 |
| 4 | 4 | 0~15 | 15 |
| 5 | 5 | 0~31 | 31 |
| 10 | 10 | 0~1023 | 1023 |
| 11~16 | 10 | 0~1023 | 1023 |
某站点发生第3次冲突。
''n=3''
''k=min(3,10)=3''
随机数范围为:
''r∈{0,1,2,3,4,5,6,7}''
假设随机选择:
''r=5''
则后退时间为:
''5×SlotTime''
在10 Mb/s经典以太网中:
''SlotTime=51.2 μs''
所以:
''后退时间=5×51.2 μs=256 μs''
为了避免一个帧无限重传,以太网限制最大冲突次数。
经典以太网中:
教材也以最大值16为例说明停止重传。
低负载时:
高负载时:
因此,二进制指数后退算法能在一定程度上根据网络负载自动调整平均后退时间。
CSMA/CD主要用于:
CSMA/CD通常不用于现代全双工交换式以太网。
全双工交换式以太网中:
| 网络环境 | 是否使用CSMA/CD |
|---|---|
| 同轴电缆共享以太网 | 是 |
| 集线器半双工以太网 | 是 |
| 交换机端口半双工工作 | 是 |
| 交换机端口全双工工作 | 否 |
| 点到点全双工链路 | 否 |
必须掌握:
2τ。不同局域网或局域网网段可以通过:
Bridge(网桥)
进行互连。
网桥工作在OSI参考模型的:
Data Link Layer(数据链路层)
主要根据MAC地址转发数据帧。
网桥的基本作用:
教材介绍了两种网桥:
相关标准包括:
| 标准 | 网桥类型 | 主要特点 |
|---|---|---|
| IEEE 802.1D | 透明网桥 | 网桥自行学习地址并建立转发表 |
| IEEE 802.5相关机制 | 源路由网桥 | 源站在帧中显式指定转发路径 |
Transparent Bridge(透明网桥)对终端设备是透明的。
所谓透明,是指:
透明网桥插入网络后,可以自动执行:
透明网桥为各端口维护:
Forwarding Database(转发数据库)
也称:
表项通常包含:
| 字段 | 含义 |
|---|---|
| MAC地址 | 站点的硬件地址 |
| 端口 | 到达该站点应使用的网桥端口 |
| 时间戳或定时器 | 用于判断表项是否老化 |
透明网桥通过收到帧的源MAC地址学习站点位置。
假设网桥从端口X收到一个MAC帧:
学习过程可以概括为:
''源MAC地址用于学习,目的MAC地址用于转发''
例如:
| 接收端口 | 源MAC地址 | 学习结果 |
|---|---|---|
| 端口1 | MAC-A | MAC-A位于端口1 |
| 端口3 | MAC-B | MAC-B位于端口3 |
| 端口2 | MAC-C | MAC-C位于端口2 |
网桥从端口X收到帧后,检查目的MAC地址。
如果转发表中存在目的地址,并且对应端口为Y,且Y不是输入端口:
如果目的地址对应端口仍然是X:
如果转发表中没有目的地址:
Flooding(泛洪)用于未知单播帧、广播帧以及部分组播帧的转发。
标准行为说明:透明网桥遇到未知目的单播地址时应向其他有效端口泛洪,而不是直接丢弃。教材相关描述应结合IEEE透明网桥的标准转发机制理解。
从端口X收到帧
↓
根据源MAC地址更新转发表
↓
查找目的MAC地址
↓
┌──────────────────────────────┐
│目的地址是否已知? │
├─ 否:除输入端口外进行泛洪 │
└─ 是:目的端口是否等于输入端口?
├─ 是:过滤该帧
└─ 否:从目的端口转发
网络拓扑可能发生变化,例如:
因此,动态学习的转发表项需要配置老化计时器。
Aging(老化)机制的作用:
为了提高可靠性,网络中可能部署冗余网桥和冗余链路。
冗余虽然可以防止单点故障,但也可能形成二层环路。
例如:
LAN-A ── 网桥1 ── LAN-B │ │ └──── 网桥2 ────────┘
如果网桥1和网桥2同时转发广播帧,帧可能在环路中不断循环。
二层以太网帧没有像IP分组TTL那样的天然生存时间限制。
TTL(Time To Live,生存时间)
因此,环路可能导致:
透明网桥使用生成树机制消除二层环路。
STP(Spanning Tree Protocol,生成树协议)通过阻塞部分冗余端口,将有环的物理拓扑转换成无环的逻辑拓扑。
生成树的目标是:
在连通图中:
生成树满足:
V 个顶点,则生成树包含 V-1 条有效边。STP的典型过程包括:
网络中需要选择一个:
Root Bridge(根网桥)
根网桥是生成树计算的逻辑中心。
根网桥通常由最小的网桥标识确定。
BID(Bridge Identifier,网桥标识)通常由:
组成。
| 端口角色 | 英文名称 | 作用 |
|---|---|---|
| 根端口 | Root Port | 非根网桥上到根网桥代价最小的端口 |
| 指定端口 | Designated Port | 某网段上负责向根方向或从根方向转发的端口 |
| 阻塞端口 | Blocked Port | 为消除环路而停止转发数据帧的冗余端口 |
网桥之间通过交换:
BPDU(Bridge Protocol Data Unit,网桥协议数据单元)
完成生成树计算。
BPDU携带的信息通常包括:
物理链路可以保留,但逻辑转发路径中只使用无环的生成树路径。
当活动链路发生故障时:
Source Routing Bridge(源路由网桥)由发送帧的源站显式指定帧的转发路径。
教材将源路由网桥与IEEE 802.5令牌环网联系起来。
IEEE 802.5是令牌环局域网标准。
源路由网桥的核心思想是:
路由信息通常由以下标识组成:
教材描述为网桥地址和LAN标识符的序列。
每个网桥查看帧头中的路由信息后,可以判断:
源站确定目标站位置
↓
获得可用路径
↓
将路径信息写入帧头
↓
发送帧
↓
沿途网桥检查路由信息
↓
按指定顺序转发
↓
到达目标LAN和目标站
源路由网桥通常不需要像透明网桥那样维护完整的动态MAC转发表。
网桥只需知道:
但是,源站必须:
源站可以通过特殊的路由发现帧寻找目标站和可用路径。
路由发现过程可能包括:
优点:
缺点:
| 比较项目 | 透明网桥 | 源路由网桥 |
|---|---|---|
| 英文名称 | Transparent Bridge | Source Routing Bridge |
| 相关标准 | IEEE 802.1D | IEEE 802.5相关机制 |
| 路由决策者 | 网桥 | 源站 |
| 主机是否感知网桥 | 通常不感知 | 需要参与路径选择 |
| 路由信息位置 | 网桥转发表 | 数据帧帧头 |
| 地址学习 | 网桥自动学习 | 不是核心机制 |
| 是否需要拓扑发现 | 网桥通过协议计算 | 源站需要发现路径 |
| 环路处理 | 使用生成树 | 由帧中的明确路径避免任意循环 |
| 网桥复杂度 | 需要学习和维护转发表 | 转发逻辑相对直接 |
| 终端复杂度 | 较低 | 较高 |
| 帧头开销 | 较小 | 需要携带路由信息 |
| 带宽利用 | 生成树会阻塞部分冗余链路 | 可以选择不同路径 |
现代以太网交换机本质上可以看作多端口高速透明网桥。
共同点:
主要差异:
| 比较项目 | 传统网桥 | 以太网交换机 |
|---|---|---|
| 端口数量 | 较少 | 通常较多 |
| 转发性能 | 较低 | 较高 |
| 实现方式 | 早期可能以软件为主 | 通常使用专用硬件 |
| 并行转发能力 | 有限 | 较强 |
| 功能范围 | 基本桥接 | 支持VLAN、链路聚合等功能 |
监听信道
↓
信道忙?
├─ 是:等待并继续监听
└─ 否:开始发送
↓
边发送边检测
↓
是否冲突?
├─ 否:发送完成
└─ 是:发送Jam信号
↓
停止发送
↓
二进制指数后退
↓
重新竞争信道
收到MAC帧
↓
根据源MAC学习输入端口
↓
查找目的MAC
↓
├─ 目的未知:向其他有效端口泛洪
├─ 目的位于输入端口:过滤
└─ 目的位于其他端口:定向转发
有环物理拓扑
↓
选择根网桥
↓
选择根端口和指定端口
↓
阻塞部分冗余端口
↓
得到无环逻辑拓扑
↓
保持网络连通
必须掌握:
2τ。| 缩写或术语 | 英文全称 | 中文含义 |
|---|---|---|
| IEEE | Institute of Electrical and Electronics Engineers | 电气电子工程师学会 |
| CSMA | Carrier Sense Multiple Access | 载波监听多路访问 |
| CSMA/CD | Carrier Sense Multiple Access with Collision Detection | 载波监听多路访问/冲突检测 |
| 1-Persistent CSMA | 1-Persistent Carrier Sense Multiple Access | 1-坚持CSMA |
| Non-Persistent CSMA | Non-Persistent Carrier Sense Multiple Access | 非坚持CSMA |
| p-Persistent CSMA | p-Persistent Carrier Sense Multiple Access | p-坚持CSMA |
| Collision | Collision | 冲突或碰撞 |
| Collision Detection | Collision Detection | 冲突检测 |
| Jam Signal | Jam Signal | 干扰信号或强化冲突信号 |
| BEB | Binary Exponential Backoff | 二进制指数后退 |
| Slot Time | Slot Time | 时槽时间 |
| Contention Period | Contention Period | 争用期 |
| Collision Window | Collision Window | 冲突窗口 |
| MAC | Media Access Control | 介质访问控制 |
| FCS | Frame Check Sequence | 帧校验序列 |
| Bridge | Bridge | 网桥 |
| Transparent Bridge | Transparent Bridge | 透明网桥 |
| Source Routing Bridge | Source Routing Bridge | 源路由网桥 |
| FDB | Forwarding Database | 转发数据库 |
| Flooding | Flooding | 泛洪 |
| Aging | Aging | 老化 |
| STP | Spanning Tree Protocol | 生成树协议 |
| Root Bridge | Root Bridge | 根网桥 |
| Root Port | Root Port | 根端口 |
| Designated Port | Designated Port | 指定端口 |
| BPDU | Bridge Protocol Data Unit | 网桥协议数据单元 |
| BID | Bridge Identifier | 网桥标识 |
| LAN | Local Area Network | 局域网 |
| TTL | Time To Live | 生存时间 |
| byte | Byte | 字节,等于8个二进制位 |
| μs | Microsecond | 微秒 |
IEEE 802.3标准
│
├─ 共享式以太网
│ ├─ 多个站点共享介质
│ └─ 同时发送产生冲突
│
├─ CSMA
│ ├─ 发送前监听
│ ├─ 1-坚持
│ ├─ 非坚持
│ └─ p-坚持
│
├─ CSMA/CD
│ ├─ 先听后发
│ ├─ 边发边听
│ ├─ 冲突停止
│ └─ 随机后退
│
├─ 二进制指数后退
│ ├─ k=min(n,10)
│ ├─ r=0~2^k-1
│ ├─ 后退时间=r×SlotTime
│ └─ 第16次冲突后放弃
│
└─ 局域网互连
├─ 透明网桥
│ ├─ 源地址学习
│ ├─ 目的地址转发
│ ├─ 表项老化
│ └─ STP消除环路
│
└─ 源路由网桥
├─ 源站发现路径
├─ 路由写入帧头
└─ 网桥按指定路径转发