3.3.1 为什么使用?
介质访问控制(Medium Access Control,MAC)
含义:用来决定广播信道中信道分配的协议属于数据链路层的一个子层
主要任务:为使用介质的每个结点隔离来自同一信道上其他结点所传送的信号,以协调活动结点的传输。
目的为了解决:多个节点共享同一个“总线型”广播信道时,可能发生“信号冲突”。应该怎么控制各节点对传输介质的访问,才能减少冲突,甚至避免冲突?
ANS:控制方法:有信道划分介质访问控制、随机访问介质访问控制和轮询访问介质访问控制
3.3.2 信道划分介质访问控制
TDM:时分复用(Time Division Multiplexing,TDM):将时间分为等长的“TDM帧”,每个“TDM帧”又分为等长的m个“时隙”,将m个时隙分配给m对用户(节点)使用
TDM的缺点:
✅每个节点最多只能分配到信道总带宽的¹/m
✅如果某节点暂不发送数据,会导致被分配的“时隙”闲置,信道利用率低
STDM: 统计时分复用(Statistic Time Division Multiplexing, STDM):又称异步时分复用,在TDM的基础上,动态按序分配时隙
STDM的优点:
✅如果需要时,一个节点可以在一段时间内获得所有的信道带宽资源
✅如果某节点暂不发送数据,可以不分配“时隙”,信道利用率更高
FDM:频分复用(Frequency Division Multiplexing, FDM) :是将信道的总频带划分为多个子频带,每个子频带作为一个子信道,每对用户使用一个子信道进行通信
注:为了防止子信道之间互相干扰,相邻信道间还要加入“隔离频带”。
FDM的优缺点:
✅优点:各节点可同时发送信号;充分利用了信道带宽 (Hz)
❌缺点:FDM技术只能用于模拟信号的传输
WDM:波分复用(Wavelength Division Multiplexing, WDM):即光的频分复用
Tips:光信号的频带范围(带宽)非常大,因此很适合采用波分复用技术,将一根光纤在逻辑上拆分为多个子信道
⭐️码分复用 (CDM)
-
①给各节点分配专属“码片序列”
-
“码片序列”包含m个码片(信号值), 可看作“m维向量”(分量通常取1或-1)
-
-
要求:各节点的“m维向量”必须相互正交
-
-
Tips: 相互通信的各节点知道彼此的“码片序列”
-
-
②发送方如何发送数据
-
节点发出m个信号值与“码片序列”相同,表示比特1
-
节点发出m个信号值与“码片序列”相反,表示比特0
-
-
③信号在传输过程中“叠加”
-
当多个发送方同时发送数据时,信号值会叠加 (注:本质是多个m维向量的加法)
-
-
④接收方如何接收数据
-
接收方收到的是“叠加”信号,需要从中“分离”出各发送方的数据
-
叠加信号与发送方的码片序列作“规格化内积”
-
结果为1,表示比特1
-
结果为-1,表示比特0
-
-
-
ex:A、B、C的码片序列(chipping sequence)分别是(1,1,1,1),(1,-1,1,-1)和((1,1,-1,-1)。若C从链路上收到的序列是(2,0,2,0,0,-2,0,-2,0,2,0,2),则C收到A发送的数据是( )。
解:用这组信号值。分别和A站点的这个码片序列做规格化内积
3.3.3 随机访问介质访问控制
a、随机访问介质访问控制含义
随机访问介质访问控制含义:不采用集中控制方式解决发送信息的次序问题,所有用户都能根据自己的意愿随机地发送信息,占用信道的全部速率。
随机访问介质访问控制协议:为了解决随机访问发生的冲突,每个用户需要按照一定的规则反复地重传它的帧,直到该帧无冲突地通过,这些规则就是随机访问介质访问控制协议
其核心思想是:胜利者通过争用获得信道,进而获得信息的发送权
1. ALOHA协议
(1) 纯ALOHA协议
纯ALOHA协议的基本思想是,当总线形网络中的任何站点需要发送数据时,可以不进行任何检测就发送数据。若在一段时间内未收到确认,则该站点就认为传输过程中发生了冲突。发送站点需要等待一段时间后再发送数据,直至发送成功。(准备好数据,就立即发送)
(2) 时隙ALOHA协议
时隙ALOHA协议同步各站点的时间,将时间划分为一段段等长的时隙(Slot),规定站点只能在每个时隙开始时才能发送帧,发送一帧的时间必须小于或等于时隙的长度。(时隙大小固定=传输一个最长帧所需时间、只有在每个时隙开始时才能发送帧)
这样做避免了用户发送数据的随意性,降低了产生冲突的可能性,提高了信道的利用率。
2.CSMA
CSMA (Carrier Sense Multiple Access) 协议,即载波监听多路访问协议:在发送数据之前,先监听信道是否空闲,只有信道空闲时,才会尝试发送
CSMA协议分为三种。
(1)1-坚持CSMA
基本思想是:当站点要发送数据时,首先监听信道;
若信道空闲,则立即发送数据;若信道忙,则继续监听直至信道空闲。
“坚持”的含义是监听到信道忙时,继续坚持监听信道;
“1”的含义是监听到信道空闲时,立即发送帧的概率为1.
优点:信道利用率高,信道一旦空闲,就可以被下一个节点使用。
缺点:当多个节点都已准备好数据时,一旦信道空闲,会有多个节点同时发送数据,冲突概率大。
(2) 非坚持CSMA
基本思想是:当站点要发送数据时,首先监听信道;
若信道空闲,则立即发送数据;若信道忙,则放弃监听,等待一个随机的时间后,再重新监听。
在监听到信道忙时就放弃监听,因此降低了多个站点等待信道空闲后同时发送数据导致冲突的概率,但也增加了数据在网络中的平均时延。
优点:当多个节点都已准备好数据时,如果信道不空闲,则各节点会随机推迟一段时间再尝试监听,从而使各节点“错开”发送数据,降低冲突概率。
缺点:信道刚恢复空闲时,可能不会被立即利用,导致信道利用率降低
(3) p-坚持CSMA
只适用于时分信道,
其基本思想是:当站点要发送数据时,首先监听信道;
若信道忙,则持续监听(即等到下一个时隙再监听),直至信道空闲;若信道空闲,则以概率p发送数据,以概率1-p推迟到下一个时隙再继续监听;直到数据发送成功。
优点:属于1-坚持CSMA、非坚持CSMA的折中方案,降低冲突概率的同时,提升信道利用率
🌟3.🌟 CSMA/CD协议
适用于总线形网络或半双工网络环境,
-
工作流程:先听后发,边听边发,冲突停发,随机重发
✅如何随机重发?
-
截断二进制指数退避算法:
-
特别注意
-
第10次冲突,是“随机重发”的分水岭
-
第16次冲突,直接躺平,放弃传帧,报告上级 (网络层)
-
-
-
✅争用期
-
争用期=2×最大单向传播时延 (考虑距离最远的两个节点)
-
若争用期内未发生冲突,就不可能再冲突
-
CSMA/CD没有ACK机制,若发送过程中未检测到冲突,就认为帧发送成功
-
-
信道A:发送数据在信道传输了30us,则整个信道肯定就为它所用了,不会再被其他结点去打断
假设:a节点的信号马上就要(29us)到达b节点的时候,b结点准备好了一个数据帧。b结点尝试着监听信道。此时由于a节点还暂时没有到达b节点,所以b节点会以为整个信道此时好像是空闲的。所以b结点也会发送自己的数据,如发送了1bit数据,发生冲突,
对于b结点来说,他可能很快就能意识到发生了冲突,就停止发送。a节点信号继续发送(因为a节点还不知道发生了冲突),b节点的1bit信号也继续发送,但a节点的这个数据在快到达b节点才发生冲突,所以等b节点1bit数据到达a节点时又要经过一段时间(再经过29us)
-
✅最短帧长&最长帧长
-
最短帧长=2×最大单向传播时延×信道带宽
-
若收到的帧小于最短帧长,视为无效帧
-
-
最长帧长:规定最长帧长可防止某些节点一直占用信道
-
假设a节点只发500bit。那根据信道的带宽,发送500个比特,只需要50微秒,假设在29微秒的时候,很不巧b这个结点,它也准备好了一个数据帧。此时b结点监听信道,发现信道是空闲的,所以在第29到第30微秒这段时间内。b结点会发送一些数据(1bit)到信道上,我们用红色来表示。b结点已经发出(1bit)会沿着信道继续往前传播。直到第59微秒的时候,b结点发出的这个(1bit),才可以被a结点监听到对吧?但a结点把500比特全部发送到信道上,但是发生冲突的这个信号,需要到59微秒的时候才可以被a结点检测到,那这就意味着a结点在传输这个数据帧的过程当中。一直没有检测到冲突,所以a会误以为整个发送的过程没有冲突,但实际上已经发生冲突了。
-
以太网规定
-
最短帧长=64B; 最长帧长=1518B
-
🌟4. CSMA/CA协议
-
协议要点
-
发送方:先听后发,忙则退避
-
若信道空闲,间隔DIFS后,再发送帧(一口气发完,发送过程中不用检测冲突)
-
若信道不空闲,则进行“随机退避”
-
-
-
✅“随机退避“原理
-
①用二进制指数退避算法确定一段随机退避时间 (倒计时)
-
②发送方会保持监听信道,只有信道空闲时才“扣除倒计时”,倒计时结束后立即发送帧 (此时信道“听起来”一定空闲)
-
-
✅接收方:停止等待协议
-
每收到一个正确数据帧都返回ACK;若发送方超时未收到ACK,则进行“随机退避”
-
-
-
✅信道预约机制(可选功能):目的:为了解决“隐蔽站问题”
-
①发送方广播RTS控制帧 (先听后发,忙则退避)
-
②AP广播CTS控制帧
-
③其他无关节点收到CTS后自觉“禁言”一段时间 (即:虚拟载波监听机制); 发送方收到CTS后,就可以发送数据帧
-
④AP收到数据帧后,进行CRC校验,若无差错就返回ACK帧
-
-
-
发送的数据帧很短。在发送这个数据帧之前就不用预约,为什么呢?因为一个短的数据帧即便发送失败了。重传它所带来的代价是很小的;但是如果一个数据帧很长,那么在发送这种长数据帧之前就可以先进行信道预约。
-
✅帧间间隔IFS
-
DIFS,最长的IFS (比较长的一个时间片)
-
每次“帧事务”开始之前需要等待的时间
-
-
SIFS,最短的IFS
-
收到一个帧后需要预留的一段处理时间
-
-
PIFS, 中等长度的IFS
-
可不关注PIFS
-
-
时间长度:DIFS>PIFS>SIFS
-
为什么不采用CSMA/CD协议?
1)硬件上很难实现“边听边发,冲突检测”——因为接收信号的强度往往远小于发送信号的强度,且在无线介质上信号强度的动态变化范围很大。(离AP距离近,信号强,远则信号弱;在发送信号的过程当中,很难检测到其他节点发来的这种弱信号)
2)存在“隐蔽站”问题———在无线通信中,并非所有站点都能够听见对方。发送结点处没有冲突并不意味着在接收结点处就没有冲突。
(a和b同时发送信号的话,那么虽然二者感受不到彼此的存在,但是他们的信号会在数据的接收结点,这个位置发生冲突。即便a节点一边发送一边监听。它只能监听到自己所处的这个位置是否有别的信号,而对于数据的接收方,在这个位置到底有没有发生冲突?其实它是不可能监听到的。)
3.3.4 轮询访问介质访问控制
令牌传递协议
-
协议要点
-
-
核心特点:环形拓扑结构,各节点“轮询访问”信道,不会发生信道冲突。
-
令牌帧
-
1」需指明当前获得令牌的节点编号
-
2』只有获得令牌 (Token)的节点才能往信道上发送数据帧
-
3」如果获得令牌的节点没有数据要发送,就将令牌传递下一个节点
-
-
数据帧
-
1』需指明数据帧的源地址/目的地址、是否已被接收、获得令牌的节点编号
-
2」数据帧从源结点发出,“传递一圈”后回到源节点
-
3』数据帧“传递一圈”的过程中,会被目的节点复制一份数据,并将数据帧标记为“已接收”
-
4」数据帧回到源结点后,如果发现异常状况(如CRC校验失败,或者超过次数),就尝试重发;若无异常,就将令牌传递下一个节点
-
-
-
令牌环网络中令牌和数据的传递过程如下:
1)当网络空闲时,环路中只有令牌帧在循环传递。
2)当令牌传递到有数据要发送的站点时,该站点就修改令牌中的一个标志位,并在令牌中附加自己需要传输的数据,将令牌变成一个数据帧,然后将这个数据帧发送出去。
3)数据帧沿着环路传输,接收到的站点一边转发数据,一边查看帧的目的地址。若目的地址和自己的地址相同,则接收站就复制该数据帧,以便进一步处理。
4)数据帧沿着环路传输,直到到达该帧的源站点,源站点收到自己发出去的帧后便不再转发。同时,通过检验返回的帧来查看数据传输过程中是否出错,若出错则重传。
5)源站点传送完数据后,重新产生一个令牌,并传递给下一站点,交出信道控制权。
-
其他补充
-
~无论是令牌帧还是数据帧,都只能沿单向传递
-
~获得令牌的节点,每次只能发一帧,发完就释放令牌
-
~需要用专门的网络设备 (MAU)实现集中控制
-
~令牌传递协议很适用于负载高的网络 (不会发生冲突,效率高)
-