前言
如果你对这篇文章可感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。
文章目录
第四章 介质访问控制子层
4.1 MAC子层概述
4.1.1 数据链路层的组成
-
数据链路层分成两个子层
- 逻辑链路控制 (LLC - Logical Link Control)
- 介质访问控制 (MAC - Madia Access Control)
4.1.2 数据通信的三种方式
- 单播 (unicast):一对一的通信
- 广播 (broadcast):一对所有的通信,发出一个信息要送达到所有人
- 局域网主要采用共享信道的方式来进行通信,主要采取的方式是广播。
- 组播 (multicast):一对一个组的通信,一个信息发送给一个特定的组的用户
4.1.3 介质多路访问控制 / 介质访问控制MAC
-
广播的问题
- 共享信道 (多路访问信道 / 广播信道)
- 可能会有很多用户同时请求使用这根共享信道,需要确定广播信道上的下一个使用者,尽量避免冲突。
-
分配信道的两种方式 (介质访问控制)
- 静态分配:按照某种方式,预先分配给各用户,不同用户使用情况不同
- PSTN上干线的多路复用,信道被按照频率或时间进行分配
- 动态分配
- 信道不需要提前分配,信道是开放的
- 信道按照需求动态的分配给用户
- 静态分配:按照某种方式,预先分配给各用户,不同用户使用情况不同
-
静态分配
- 静态分配的问题
- 资源分配不合理,不同用户对资源需求不同
- 有资源浪费,效率低
- 信道是平均分配的,延迟时间增大 N 倍。
- 静态分配适用环境
- 适用于用户数量少且用户数目固定的情况。
- 适用于通信量大且流量稳定的情况。
- 不适用于突发性业务的情况。
- 静态分配的问题
-
动态分配
- 多路访问协议 - 动态分配信道资源 - 提高信道利用率
-
多路访问协议
- 随机访问协议
- 特点:站点或用户来争用信道,可能会出现冲突
- 典型随机访问协议:ALOHA协议、CSMA协议、CSMA/CD协议 (以太网采用)
- 受控访问协议
- 特点:站点被明确地分配,不会出现冲突。
- 随机访问协议
4.1.4 课程总结
- 什么是广播?
- 局域网中主要采用什么数据通信方式?
- 介质访问控制用来做什么?
- 介质访问控制协议分成哪两类?
4.2 ALOHA 协议
4.2.1 纯ALOHA协议
-
工作原理
- 任何一个工作站都可以在帧生成之后立即发送,并通过信号的反馈,检测信道判断是否发送成功。
- 如果发出的帧发生冲突,则经过随机等待的时间之后重发数据帧。
-
特点
- 每个站点可在任意时间发送数据 (不关心信道是否已被占用),非常任性,想发就发
- 两个以上站点同时发送数据时就会产生冲突。
-
性能分析
-
吞吐率 S:一个帧时 (T) 内发送成功的平均帧数, 0 < S < 1 0<S<1 0<S<1, S = 1 S=1 S=1 则利用率达到100%。
-
运载负载 / 网络负载 G:在一个帧时 (T) 内,所有通信站一共发送的帧的平均值 (原发+重发), S ≤ G S\leq G S≤G
- G = S G=S G=S,无冲突
- G > S G > S G>S,有冲突
- G > 1 G > 1 G>1,冲突频繁
-
P 0 P_0 P0:一帧发送成功的概率,即发送成功的帧数在全部已发送帧的总数中所占的比例。
- S = G ∗ P 0 S=G*P_0 S=G∗P0
-
冲突危险期:可能发生冲突的时间长度 = 2 T = 2T =2T,发送之前的 T T T 加上发送之后的 T T T
- 生成帧均值: 2 G 2G 2G
- 生成 k 帧的概率服从泊松分布 (假设): P r [ k ] = G k e − G k ! Pr[k]=\frac{G^ke^{-G}}{k!} Pr[k]=k!Gke−G , P r [ 0 ] = e − G Pr[0]=e^{-G} Pr[0]=e−G
- 在 2 T 2T 2T 内发送成功的概率,即为 2 T 2T 2T 内都不产生新帧,即 P 0 = P r [ 0 ] ∗ P r [ 0 ] = e − 2 G P_0=Pr[0]*Pr[0]=e^{-2G} P0=Pr[0]∗Pr[0]=e−2G
- S = G ∗ e − 2 G S=G*e^{-2G} S=G∗e−2G,求 S S S 极大值, S ′ = e − 2 G − 2 G ∗ e − 2 G = 0 S^{'}=e^{-2G}-2G*e^{-2G}=0 S′=e−2G−2G∗e−2G=0。当 G = 0.5 G=0.5 G=0.5 时, S m a x = 0.184 S_{max}=0.184 Smax=0.184。因此纯 ALOHA 协议信道利用率最高为 18.4 % 18.4\% 18.4%。
-
4.2.2 分隙(分槽)ALOHA协议
- 工作原理
- 将时间分成时隙 (时间片),时隙=帧时 (T)。
- 发送帧必须在时隙的起点,不允许随机发送,因此冲突只发生在时隙的起点。冲突危险期缩短为 T,因为只会与发送之后出现的帧冲突,不会与发送之前出现的帧冲突。
- 一旦某个站占用某个时隙并发送成功,则在该时隙内不会出现冲突。
- 性能分析
- P 0 = P r [ 0 ] = e − G P_0=Pr[0]=e^{-G} P0=Pr[0]=e−G
- S = G ∗ e − G S=G*e^{-G} S=G∗e−G, G = 1 G=1 G=1 时, S m a x = 0.368 S_{max}=0.368 Smax=0.368,即分隙 ALOHA 协议信道利用率最高为 36.8 % 36.8\% 36.8%。
- 与纯ALOHA协议对比
4.2.3 课程总结
- 纯ALOHA协议的工作原理是什么?
- 纯ALOHA协议的冲突危险期是多少,信道利用率怎么样?
- 分隙ALOHA协议的工作原理是什么?
- 分隙ALOHA协议的冲突危险期是多少,信道利用率怎么样?
4.3 CSMA 协议
4.3.1 CSMA 协议概述
- 定义:载波侦听多路访问协议 (CSMA - Carrier Sense Multiple Access)
- 改进的 ALOHA 协议 —— “先听后发”
- 分类
- 非持续式 CSMA 协议
- 持续式 CSMA 协议
- 1-持续 CSMA
- P-持续 CSMA
4.3.2 非持续式 CSMA 协议
- 工作过程
- ① 发送数据帧时侦听信道,如果信道空闲,则发送自己的帧。
- ② 如果侦听时,信道被占用,则等待一个随机分布的时间,然后再重复 ①。
- 缺点:随机等待的时间内信道上没有数据传送,这段时间是浪费的。
4.3.3 持续式 CSMA 协议
-
工作过程
- ① 发送数据帧时侦听信道,如果信道空闲,则发送自己的帧。
- ② 如果侦听时,信道被占用,则持续侦听。一旦空闲立即发送数据帧。
- ③ 如果发生冲突,则等待一个随机分布的时间,再重复 ①。
-
缺点:如果两个以上的站同时在侦听信道,一旦介质空闲,两个站同时发送数据帧,则会发生冲突。
-
P-持续 CSMA
- 工作过程
- ① 发送数据帧时侦听信道,如果信道空闲,则以 P 的概率发送数据帧,(1-P) 的概率延迟一个时间发送。
- ② 如果侦听时,信道被占用,则持续侦听。一旦空闲则重复 ①。
- ③ 发送推迟一个时间单元后,继续重复 ①。
- 工作过程
-
传播延迟对载波侦听的影响
- 信道传输 200 m/us。A、B距离 1000 m,A 侦听信道空闲后向 B发送一个数据帧。
- 4us 过去后,数据帧还未到达 B。此时 B 要发送一个数据帧,因此侦听信道。
- 由于 A 发的数据帧还未到达 B,因此 B 以为信道空闲,则发送数据帧,两个数据帧发生冲突。
-
冲突窗口
- 定义:一个工作站能够检测到冲突的时间的最大值,数值上等于最远两站传播时间的两倍,即 RTT (Round Trip Time)。
- 介质传播速度:
v
=
200
m
/
u
s
v=200\ m/us
v=200 m/us,网卡延迟:
t
P
H
Y
t_{PHY}
tPHY,最远两个工作站距离:S
- 两站传播时间: t = S v t=\frac{S}{v} t=vS
- 冲突窗口: 2 ∗ ( t + t P H Y + N ∗ t 中继器 ) 2*(t+t_{PHY}+N*t_{中继器}) 2∗(t+tPHY+N∗t中继器),N为经过中继器个数, t 中继器 t_{中继器} t中继器 为到达中继器到离开中继器的一段时间。
4.3.4 CSMA/CD
-
定义:CSMA with Collision Detection (带冲突检测的载波侦听多路访问协议)
- 本质是 1-持续 CSMA
- 半双工以太网中使用
-
工作原理
- ① 经侦听,如介质空闲,则发送。
- ② 如介质忙,则持续侦听,一旦空闲立即发送。
- ③ 发送成功后,边发边听,侦听发送出去的帧有无和其它帧发生碰撞。如果没有发生冲突,则表明发送成功。
- ④ 如果发生冲突,等待一个随机分布的时间再重复 ①。
- 总结:先听后发、边发边听
-
堵塞信号 (强化冲突信号)
- 所有工作站在发送的同时也接收自己的信号 (广播),监测发送的情况,一旦收到的信号与发出的不一致,就说明发生了冲突。
- 发送站感知冲突后立即停止帧的发送,并且发一个简短的堵塞信号 (称强化冲突信号,Jamming signal),通知各站点该处发生冲突,本站及网上所有站都等待一段随机分布的时间,然后再按CSMA/CD方式重发该帧。
-
性能比较
- P-持续 CSMA中,P越小发生冲突可能性越低,信道利用率越高,但是等待的时间越长。
-
冲突检测和处理
- 冲突检测
- 检测发出的信号与收到的信号,能量与脉冲宽度的变化,如果发生了变化则发生了冲突。
- 冲突检测的要求
- 时隙宽度 = 最大冲突检测时间 ( 冲突窗口 ) 时隙宽度=最大冲突检测时间 (冲突窗口) 时隙宽度=最大冲突检测时间(冲突窗口) ,保证在一个时隙内能够检测到最远距离的冲突。
- 最大冲突检测时间 ( 冲突窗口 ) ≤ 发送有效帧的时间 最大冲突检测时间 (冲突窗口)\leq 发送有效帧的时间 最大冲突检测时间(冲突窗口)≤发送有效帧的时间 ,防止在发生冲突时,已完成短帧发送而无法知道实际上已经发送失败。
- 冲突检测
4.3.5 课程总结
- CSMA系列协议的本质是什么?
- CSMA/CD 的基本工作原理是什么?
- 什么是冲突危险期?
- 先听后发仍然会发生冲突,原因是什么?(两个原因:同时发送与传播延迟)
- 冲突检测的原理是什么?
4.4 以太网概述
4.4.1 以太网基础知识
- 以太网发展史
- 1973年,Robert Metcalf 及其同事设计了以太网雏形 (施乐公司)
- 1980年,DIX 发布了最早的以太网标准,开放标准
- 1985年,IEEE 802.3 对以太网作了小的修改,基本一致,兼容以太网
- 1995年,IEEE 宣布了 100Mbps 以太网标准
- 1998-1999年,通过了千兆以太网标准 (吉比特以太网 - 1000M)
- 2002年,IEEE 通过了10Gbps 以太网标准
- 2016年,IEEE 通过了25Gbps 以太网标准
- 2 种以太网
- 经典以太网
- 3M~10Mbps,不再使用
- 10Base2、10Base5、10BaseT
- 交换式以太网
- 10M、100M、1G,广泛使用
- 经典以太网
4.4.2 经典以太网
-
IEEE 以太网命名规则
- 10Base2 (IEEE 802.3a)
- 10:传输带宽 (Mbps)
- Base:基带传输
- -2 (或5):支持的分段长度 (100m为单位,四舍五入),此处为 200m 传输距离
- 10Base-TX (IEEE 802.3X)
- T:铜制非屏蔽双绞线
- F:表示光缆
- 10Base2 (IEEE 802.3a)
-
以太网线缆
-
-
其中 10Base5 与 10Base2 采用了总线拓扑的方式。
-
10BaseT
- 物理连接是星型/扩展星型结构,中心是集线器 (Hub)
- 逻辑上是总线结构 (站点争用总线)
- 采用双绞线,与同轴电缆相比的优点
- 安装成本大大降低
- 即插即用,组网灵活
- 星型结构,故障隔离
- 适于大批量制造
- 具有开放式标准的互操作能力
- 问题:多用户共享一条 10M 速率信道。
-
-
以太网编码
- 以太网采用曼彻斯特编码,
比特率
=
10
M
b
p
s
比特率 = 10 \ Mbps
比特率=10 Mbps,
波特率
=
20
M
H
z
波特率=20\ MHz
波特率=20 MHz 。
- 1:高电压 -> 低电压
- 0:低电压 -> 高电压
- 802.5 采用差分曼彻斯特编码
- 以太网采用曼彻斯特编码,
比特率
=
10
M
b
p
s
比特率 = 10 \ Mbps
比特率=10 Mbps,
波特率
=
20
M
H
z
波特率=20\ MHz
波特率=20 MHz 。
-
IEEE 802.3 / 以太网 MAC 子层协议
- IEEE 802.3 协议描述了运行在各种介质上 1 Mb/s ~ 10Mb/s 的 1-持续 CSMA/CD 协议的局域网标准。
- IEEE802.3 与 以太网有一定差别 (比如帧格式)。
-
以太网工作站接收数据流程
-
二进制指数后退算法
- 起源:以太网采用 CSMA/CD,发送方在检测到冲突后,双方 (或多方) 都将延时一段时间,那么这段时间到底是多长?
- 具体算法
- 冲突检测到后,时间被分成离散的时隙
- 时隙的长度等于信号在介质上来回传输时间 (51.2 us)
- 一般地,i 次冲突后,等待的时隙数将从 (0~ 2 i − 1 2^i-1 2i−1)*51.2 us 中随机选择。
- 0 < i ≤ 10 0<i\leq 10 0<i≤10 时,取 (0~ 2 i − 1 2^i-1 2i−1)*51.2 us。
- 10 < i < 16 10<i<16 10<i<16 时,取 (0~1023)*51.2 us。
- i > 16 i > 16 i>16 时,放弃发送。
- 二进制指数后退算法的优化
- 上述主要讨论的是发送方怎样避免冲突,或冲突后怎样再次成功发送。
- 但是,一旦成功发送后,接收方如需发确认帧,其中又有争用信道的问题。如把一次成功发送后的第一个时隙留给接收方,则可及时收到确认帧。
-
经典以太网提高负载的方法
- 提速到 100 M
- 采用全双工
- 采用交换式网络,将集线器 (Hub) 换成 交换机 (Swicth)
4.4.3 交换式以太网
-
100Mbps以太网 —— 802.3u
-
要求:兼容性、成本低、标准化
-
基本思想:保留原有帧格式、接口和过程规则,将比特时间 (位时间-发送 1 bit 所需时间) 降为10 ns (原100 ns),电缆最大长度降到10分之一 (原2500米)。
-
传输介质与传输距离
-
名称 传输介质 最大距离 100Base-T4 3 类双绞线 100 米 100Base-TX 5 类双绞线 100 米 100Base-FX 光纤 2000 米
-
-
采用了 4B/5B 编码方式
- 将 4 bits 数据编码成 5 bits 信号,效率更高、易于实现、电压平衡
-
-
千兆位以太网 (吉比特以太网,GE) —— 802.3z
- 淘汰了 FDDI(100M)、ATM(155/622M)
- GE 与现有 10M/100M 以太网技术兼容
- FDDI和ATM与10M/100M以太网不兼容,需要改变帧格式
- 主要工作在全双工模式,如果在半双工工作,需要使用 CSMA/CD 技术,可能带来传输距离过短的问题。
- 可使用帧串、帧扩充等方法解决。
- 速度提高带来的冲突检测问题以及解决办法
- 只有在半双工的模式下才会遇到。
-
以太网强大生命力原因
- 简单性和灵活性
- 可以很方便的将机器挂接到以太网上
- 易于维护
- 支持TCP/IP协议,互联容易
- 使用4B/5B等编码,擅于借鉴其他协议(FDDI)。
- 简单性和灵活性
-
以太网建立无连接不可靠的服务
课程总结
- 以太网是多路访问协议的实现:CSMA/CD
- 二进制指数回退算法,降低了再次冲突的可能
- 问题
- 二进制指数回退算法是怎样做的?
- 经典以太网的特点是什么?(半双工、使用集线器、曼彻斯特编码)
- 交换式以太网的特点是什么?(全双工、交换式网络、4B/5B)
- 以太网为什么具有强大的生命力?
- 以太网采用的编码方法是什么?
4.5 以太网帧格式
4.5.1 IEEE 802.3与以太网 MAC 子层协议
-
以太网覆盖物体层与数据链路层,而802.3在OSI模型中仅覆盖一层半 (即物理层+数据链路层的MAC子层)
-
IEEE 802.3帧格式
-
-
[第一个字段] 先导+帧起始标记 (前导码) :表明一个帧的开始。帧开始字符为10101011。
-
[第二、三个字段] 目的地址与源地址:均为物理地址,即MAC地址。
- MAC地址为48位,一共有7万亿个。
- 目的地址:接收方的MAC地址
- 源地址:发送方的MAC地址
-
[第四个字段] 长度字段:表明了这个帧的长度
- 802.3帧长度,最短64字节,最长不能超过1518字节。(不包括前导码)
- 最长长度限制:早期内存昂贵,接收方存储帧需要内存,因此有最长长度限制
- 最短长度限制:CSMA/CD的要求,要求
最短帧的发送时间
≥
争用时隙
2
t
(
冲突窗口
)
最短帧的发送时间 \geq 争用时隙2t(冲突窗口)
最短帧的发送时间≥争用时隙2t(冲突窗口)
- 802.3 规定,在10Mbps局域网中, 时隙 2 t = 51.2 u s 时隙2t=51.2\ us 时隙2t=51.2 us
- 最短帧长度 = 10 M b p s ∗ 2 t 8 = 64 B y t e 最短帧长度=\frac{10\ Mbps*2t}{8}=64Byte 最短帧长度=810 Mbps∗2t=64Byte
-
[第五个字段] 数据字段:46~1500字节
- 如果数据字段不足46字节,则必须进行填充,保证长度到达帧的最小长度,即64字节。
-
[第六个字段] 校验和字段
- 采用CRC循环冗余校验
- 校验范围:目的/源地址、长度、LLC数据等字段 (除了前导码的所有帧数据)
-
-
IEEE 802.3 与以太网帧 (DIX) 的区别
-
-
① 帧开始字符
- 以太网帧:10101010
- 802.3 帧:10101011
-
② 802.3帧的长度字段、DIX以太网帧的类型字段
- 类型字段:指明网络层所使用的协议。(以太网覆盖了下两层,需要直接与网络层打交道,以太网帧是实际中使用的帧)
- 长度字段:指明帧的长度。(不需指明类型,因为802.3帧不需要与网络层打交道,802.3在OSI模型中只覆盖了一层半)
-
如何鉴别以太帧与802.3帧 —— 查看第四个字段
- 数值 < 1536 ( 0 x 600 ) 数值 < 1536(0x600) 数值<1536(0x600),则为长度,为 802.3 帧。
- 数值 > 1536 ( 0 x 600 ) 数值 > 1536(0x600) 数值>1536(0x600),则为类型,为 以太帧。
-
4.5.2 MAC地址
-
MAC地址为6字节,一共48位,可以表示7万亿个地址。
-
MAC地址组成
- MAC地址分为前24位与后24位,前24位表示一个公司或一个机构,后24位由该公司或机构自行划分,前24位称为OUI。
- 如3Com的前24位地址:00-60-8C-XX-XX-XX
- 典型的Ethernet (以太网) 地址:00-60-8C-01-28-12
- MAC地址分为前24位与后24位,前24位表示一个公司或一个机构,后24位由该公司或机构自行划分,前24位称为OUI。
-
工作站的源地址具有一个特性:全球唯一性
- 每个工作站的MAC地址由IEEE分配,保证世界上没有两个工作站具有的MAC地址是相同的。
- IEEE 要求厂商遵循两条规定
- 必须使用该供应商分配的OUI作为前3个字节
- OUI相同的所有MAC地址的最后3个字节必须分配唯一的值
- IEEE 要求厂商遵循两条规定
- MAC地址存储在网卡的ROM中,当计算机启动时,MAC地址从ROM拷贝到RAM中。
- 每个工作站的MAC地址由IEEE分配,保证世界上没有两个工作站具有的MAC地址是相同的。
-
MAC地址的3种表示方法
- 使用破折号:00-60-2F-3A-07-BC
- 使用冒号:00:60:2F:3A:07:BC
- 使用句点:00.60.2F.3A.07.BC
- 必须使用16进制来表示MAC地址。
4.5.3 课程总结
- 以太帧的各字段分别是什么?
- 如何识别类型/长度字段?
- MAC地址具有哪些特征?
- 为什么以太帧最短至少需要64字节?
4.6 二层交换的基本原理
4.6.1 二层交换基本概念
- 二层交换
- 有很多 LAN(局域网),需要二层交换将它们连接起来。
- 可以用 网桥(bridge) 将它们连接起来。
- 网桥工作在 DLL层(数据链路层),通过检查MAC地址做出转发帧的决策。
- 因此网桥不会检查网络层,即IPv4、IPv6、AppleTalk、ATM、IPX与OSI分组均可穿越网桥
- 交换机是网桥的现代名称。
4.6.2 网桥
-
网桥连接802.11 (无线) 与 802.3,使其正常工作
-
网桥连接 802.X 到 802.Y 的操作
- 不同的帧格式,需要转换 —— 重新封装
- 不同的数据传输速率 —— Buffering,缓存
- 不同的802LAN有不同的最大帧长度 (802.3的1526字节,802.11的2346字节)
- 安全:802.11和802.16支持数据链路层的加密,但802.3不支持
- 服务质量:802.11和802.16提供了服务质量,但802.3没有
-
透明的网桥 (transparent bridges)
- 透明的网桥 —— 将LAN插上网桥之后,一切自动工作,不需要任何其他的设置。
- 通过透明网桥将多个LAN连接起来,硬件和软件不需要做任何的变化
- 透明网桥工作在混杂模式 (promiscuous mode),它接收所有跟它相联的LAN的帧
- 当一个帧到达网桥时,它必须作出丢弃 (discard) 还是转发 (forward) 的决策。
- 如果是转发,必须知道向哪个LAN转发。
- 决策是通过网桥内部的一张地址表 (Hash Table) 中查找目的MAC地址而作出的。
-
网桥如何维护内部转发表
- 初始时,转发表为空。
- 泛洪算法 (扩散算法 - flooding algorithm)
- MAC地址表为空时,大量采用广播
- 当网桥不知道目的地址时 (表中查不到),网桥会将这帧从除来的LAN外的所有LAN转发出去。
- 后向学习法 (backward learning)
- 信息对 - 源地址与其到达的端口
- 网桥从到达帧的源地址认识到源地址对应的那台机是在帧来的那个LAN上,所以将它写入MAC地址表。
- 网桥如何适应网络拓扑的变化 (即LAN的连接与断开)
- 无论何时,凡往表中加入记录,必须同时打下时戳。
- 到达帧的源地址在表中已有记录,则将时戳更新为当前时间。
- 网桥周期性地扫描表,将那些超时的记录从表中删除。
- 地址表始终记录着最新且活跃的那些工作站的信息!
-
网桥工作原理
- 当一帧达到时,网桥启动如下算法:[过滤]
- 网桥打开帧,查看目的与源MAC地址,在地址表中找到对应的LAN
- 如果源LAN和目的LAN相同,则丢弃该帧。
- 如果源LAN和目的LAN不同,则向目的LAN转发该帧。
- 如果目的LAN未知,则广播该帧。(表中未查到目的MAC地址对应的LAN)
- 每当一帧达到,执行上述算法。
- 使用专用的VLSI芯片,可以在几微秒内完成查找和更新表项的动作。
- 当一帧达到时,网桥启动如下算法:[过滤]
-
网桥/交换机分割了冲突域,每个LAN中设备的通信不会影响,因此提高了性能。
-
例题
-
4.6.3 网桥和中继器对比
- 网桥与中继器对比
4.6.4 课程总结
- 为什么需要二层交换?(不同LAN协议不同,802.3、802.11…)
- 二层交换的基本原理是什么?
- 什么是扩散 (泛洪)?
- 为什么网桥又叫透明网桥?
- 为什么采用了交换机而不是集线器作为星形拓扑的中心,性能会得到提升?
4.7 生成树协议
4.7.1 冗余结构带来的问题
-
冗余结构
- 为了网络的稳定,在网络设施中经常会有多根介质连接相同的机器
- 有时也会对交换机做冗余处理,对单个交换机进行拆分,每个交换机连接不同的LAN
-
冗余结构带来的问题
- 多帧传送
- 多个帧通过不同路径进行传送和转发
- 广播风暴
- 如ARP请求,两个在环路上的交换机不断对请求进行广播,导致大量重复广播帧的产生
- 严重时会导致网络崩溃
- MAC 地址库不稳定
- 每个源机器有多条路径可达,导致MAC地址库不断更新变化
- 会使得交换机在转发帧时,转发行为不确定
- 多帧传送
4.7.2 生成树协议 (STP)
-
定义
- STP - spanning tree protocol,由 Radia perlman 提出。
- IEEE 802.1 D 标准
- 目的:维护一个无环路的网络拓扑
-
工作原理
- 每个网络都一个根网桥
- 每个网桥都有一个根端口
- 每个网段都有一个指定端口 (即每个LAN只能通过某个特定端口传输)
- 非指定端口不被使用
-
注意
- 生成树算法,生成在逻辑上无回路的树,即生成树。
- 生成树算法能在有物理回路的网络中,生成一颗没有逻辑回路的生成树,但并不能保证其中的路径是最优的。
- 非指定端口虽然不参与数据帧的转发,但它会侦听树的工作报文。
- 当树上的某些端口失效了之后,非指定端口将重新启用,形成新的生成树。
-
小诗
-
我想我永远也不会看到
像一颗树那么优美的图画
树那至关紧要的特性
是无回路的连通
树需要无限的扩展
包才能到达每一个LAN
首先,需要选好树根
指定ID即可选定
从树根开始,计算最小代价的路径
这些路径,就是这棵树的枝条
网络出自我等愚人之手
而桥则发现了一棵生成树
-
-
例题
4.7.3 课程总结
- 为了可靠,采用冗余结构
- 冗余造成环路,会产生多帧传送、广播风暴和MAC地址库不稳定等问题
- 这些问题的根源就是有环路,STP就是打断环路,维持逻辑上的无环路
- STP可能产生非最优路径 (付出的代价)
- 当逻辑STP树上的某点出了故障,非指定端口将会被重新启用。
- 问题
- 为什么需要冗余拓扑?
- 冗余拓扑会带来什么问题?
- 怎么解决这些问题?
- STP是否消除了冗余拓扑带来的可靠的好处?
4.8 虚拟局域网
- 经典LAN
- 物理LAN,地理位置靠近的工作站或楼层构成的LAN
- VLAN (虚拟局域网 - Virtual)
- 一组逻辑上的设备或用户,不考虑地理位置而考虑组织架构。
- VLAN的三种实现方式
- 基于MAC地址
- 基于三层协议
- 基于端口 (最常用)
- 交换机内部有一张 VLAN 成员的配置表,知道哪些端口属于哪些VLAN。
- IEEE 802.1Q (帧标记方法)
-
解决问题:如何处理一个VLAN用户跨越不同的交换机?
-
每个帧在干线起点打上标签,干线终点拆除这个标签。[帧涂上其所在VLAN的颜色]
-
帧结构中多加了一个字段,表明这个帧所属的VLAN ID
-
举例
-
-
S1、S2为交换机,所有灰色机器为VLAN1中工作站,所有白色机器为VLAN2中工作站。
-
现在 A 向所有 VLAN1 中的工作站发送一个帧。
-
① 一开始帧没有 VLAN ID 标记,帧到达 S1 之后,S1 将帧广播给了直接与 S1 相连的 VLAN1中的工作站,即 I、J、L、L。
-
② 之后 S1 将该帧的 VLAN ID 打上了标记 (干线起点),并通过干线将该帧转发给了 S2。
-
③ 帧到达 S2 之后 (干线终点),S2 将该帧的 VLAN ID 去掉,然后转发给了与 S2 相连的所有 VLAN1 中的工作站。
-
-
- 小结
- VLAN 是一组逻辑上的用户。
- 一个 VLAN 特性等同于一个物理 VLAN。
- 一个 VLAN 就是一个广播域。
- 有了 VLAN,可使用二层交换机实现广播域的分割。
- 帧标记法可以让帧穿过交换机的干线。
- 问题
- 什么是 VLAN?
- VLAN 成员可以跨越交换机吗?
- 帧标记法有什么用?
- 最常用的帧标记法是哪个?
- 采用帧标记法的帧是如何通过干线的?
4.9 二层设备
4.9.1 网卡 (NIC)
-
网卡特点
- 网卡 (NIC - Network Interface Card),第一层和第二层的设备
- 为主机提供介质的访问
- MAC地址烧录在网卡的ROM中
-
网卡功能
- 第一层提供的功能
- Signaling:再生信号,创建信号和与介质的接口
- 内建转发器
- 第二层提供的功能
- Logical Link control (LLC):提供和上层的通信
- Naming:提供一个独特的 MAC 地址标识符
- Framing:成帧过程,封装过程的一部分,为传输比特流打包
- Media Access Control (MAC):为访问共享介质提供访问策略
- 第一层提供的功能
-
网卡分类
-
按计算机类型分类
- 普通PC网卡、笔记本网卡
-
按网络类型分类
- 以太网卡 (最常用)、TOKEN Ring NIC、FDDI NIC
-
按介质类型分类
- Twisted pair、coax、fiber
-
按系统总线类型分类
- PCI、ISA
-
4.9.2 网桥
- 功能
- 连接不同的LAN网段
- 通过过滤部分交通流量,减少冲突的机会,改善网络性能。
- 以网段分流交通,基于 MAC 地址过滤流量。
4.9.3 交换机 (Switch)
-
特点
- LAN 交换机是多端口网桥,基本工作原理与网桥一致。
- 连接 LAN 网段,并使用一张 MAC 地址表,来决定每一帧转发的端口。
- 交换机常被用来替换 集线器 (Hub),以改善现有网络性能。
- 将交换机作为以太网星型拓扑的中心。
- 交换机具有比网桥更高的交换速度。
- 支持新的功能,如 VLAN。
-
LAN 交换机中地址表的维护
- 动态更新
- 直接读取数据包的源地址信息,存入 CAM,如在 CAM 中没有找到所需的地址,则添加到 CAM 中。
- 删除过时的地址记录 (时间标记 - 时戳)
- 每增加一条记录,为它打上时戳
- 每引用或找到某条记录,为它打上新的时戳
- 周期性扫描 CAM,当某条地址记录超过一定时间没被引用,则删除该条记录。
- 动态更新
-
交换机工作原理
- 三选一操作
- flooding (泛洪/广播):当目的地址未知或为广播地址时,桥发送帧到除源端口外的每个端口。
- forwarding (转发):对于已学到的目的地址,桥直接发送帧到对应的目的设备所在端口。
- filtering (过滤):如果目的地址和源地址在同一端口,桥将丢掉该帧。
- 每一帧都进行的操作
- learning (后向学习):通过读取每个帧的源地址和对应源端口来学习连在网段上的每个设备的地址。
- 交换机处理到达帧的过程
- 三选一操作
-
交换机作用
- 使网络段处于无冲突环境
- 微分段
- LAN被交换机分隔开的网段,在一个大的冲突域中产生无冲突域。交换机的每一个端口,只接一个工作站,而不是通过 Hub 再接大量工作站。
- 虚拟线路
- 在交换机内部把段连接成一个虚拟网络的电路,只在需要时才使用。
- 微分段
- 广播域与冲突域
- Hub所有端口都在同一个广播域、冲突域内,所以Hub不能分割冲突域和广播域。
- Switch所有端口都在同一个广播域内,而每一个端口就是一个冲突域,所以交换机能分割冲突域,但分割不了广播域。Vlan技术可以隔离广播域。
- Router的每个端口属于不同的广播域、冲突域
- 使网络段处于无冲突环境
-
交换机的三种交换模式
- 存储转发
- 交换机把整个帧接收下来,计算它的校验和,检查这个帧没有错误了,再按照MAC地址表的指示把它转发出去或做对应的处理。
- 特点:延迟大、出错率小
- 直通交换 (贯穿交换、虫孔交换)
- 交换机直接读取到帧的目的地址,根据MAC地址表直接将帧进行转发。
- 特点:延迟小 (帧在交换机内部停留时间非常短)、出错率大。
- 无分片交换 (无碎片交换)
- 直到读取到帧上的64个字节之后,才进行转发,保证不转发碎片帧。
- 特点:在延迟和出错率上做了一个折中。
- 存储转发
-
交换机和集线器的比较
4.9.4 课程总结
- 网卡的主要功能是什么?
- 交换机的基本工作原理是怎样的?
- 交换机内部的 MAC 地址表示怎样建立和维护的?
- 交换机能创建的最小冲突域多大?
- 三种交换方式的优缺点是什么?