计算机网络介质访问控制全攻略:从信道划分到协议详解!!!
一、信道划分介质访问控制
介质访问控制:多个节点共享同一个“总线型”广播信道时,可能发生“信号冲突”
应该怎么控制各节点对传输介质的访问,才能减少冲突,甚至避免冲突?
时分复用(TDM)
时分复用:将时间分为等长的“TDM 帧”,每个“TDM 帧”又分为等长的 m 个“时隙”,将 m 个时隙分配给 m 对用户(节点)使用
TDM 的缺点:
每个节点最多只能分配到信道总带宽的 1/m
如果某节点暂不发送数据,会导致被分配的“时隙”闲置,信道利用率低
如何解决这个问题呢?
可统计每个节点对信道的使用需求,动态按需分配时隙
统计时分复用(STMD)
统计时分复用:又称异步时分复用,在TDM 的基础上,动态按需分配时隙
STDM 的优点:
- 如果需要时,一个节点可以在一段时间内获得所有的信道带宽资源
- 如果某节点暂不发送数据,可以不分配“时隙”,信道利用率更高
频分复用(FDM)
频分复用(FDM):是将信道的总频带划分为多个子频带,每个子频带作为一个子信道,每对用户使用一个子信道进行通信
FDM 的优缺点:
- 优点:各节点可同时发送信号;充分利用了信道带宽(Hz)
- 缺点:FDM 技术只能用于模拟信号的传输
波分复用(WDM):即光的频分复用:
光信号的频带范围(带宽)非常大,因此很适合采用波分复用技术,将一根光纤在逻辑上拆分为多个子信道
码分复用
2G、3G 移动网络时代,节点和节点之间的通信常使用 CDMA技术,而 CDMA 技术的底层原理就是码分复用(CDM)
CDM 技术允许信号相互干扰,相互叠加。接收方有办法将来自各节点的信号值分离”出来
①给各节点分配专属"码片序列”
“码片序列"包含 m 个码片(信号值),可看作"m 维向量”(m 维向量的分量通常取 1或-1
要求:各节点的"m 维向量"必须相互正交
Tips:相互通信的各节点知道彼此的"码片序列"
②发送方如何发送数据
节点发出 m 个信号值与"码片序列"相同,表示比特 1
节点发出 m 个信号值与"码片序列"相反,表示比特 0
③信号在传输过程中"叠加"
当多个发送方同时发送数据时,信号值会叠加(注:本质是多个 m 维向量的加法)
④接收方如何接收数据
接收方收到的是"看加"信号,需要从中"分离"出各发送方的数据
叠加信号与发送方的码片序列作"规格化内积”
- 结果为 1,表示比特 1
- 结果为-1,表示比特 0
二、随机访问介质访问控制
- 在随机访问协议中,不采用集中控制方式解决发送信息的次序问题,所有用户能根据自己的意愿随机地发送信息,占用信道全部速率。
- 在总线形网络中,当有两个或多个用户同时发送信息时,就会产生的冲突(碰撞,即前面所说的相互干扰),导致所有冲突用户的发送均以失败告终。
- 为了解决随机接入发生的碰撞,每个用户需要按照一定的规则反复地重传它的帧,直到该帧无碰撞地通过。这些规则就是随机访问介质访问控制协议,常用的协议有 ALOHA 协议、CSMA 协议、CSMACD 协议和 CSMA/CA 协议等,它们的核心思想都是:胜利者通过争用获得信道,从而获得信息的发送权。因此,随机访问介质访问控制协议又称争用型协议。
- 如果介质访问控制采用信道划分机制,那么结点之间的通信要么共享空间,要么共享时间,要么两者都共享:而如果采用随机访问控制机制,那么各结点之间的通信就可既不共享时间,也不共享空间。所以随机介质访问控制实质上是一种将广播信道转化为点到点信道的行为。
三、ALOHA 协议
ALOHA 协议是由美国夏威夷大学开发的一种网络协议。处于 OSI 模型中的数据链路层。它属于随机存取协议中的一种。它分为纯 ALOHA 协议和时隙 ALOHA 协议。
纯 ALOHA
纯 ALOHA 协议思想:不监听信道,不按时间发送,随机重发,想发就发
冲突如何检测?
如果发生冲突,接收方在就会检测出差错,然后不予确认,发送方在一定时间内收不到就判断发生冲突。
冲突如何解决?
超时后等一随机时间再重传。
时隙 ALOHA
时隙 ALOHA 协议的思想:把时间分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道,若发生冲突,则必须等到下一个时间片开始时刻再发送。
控制想发就发的随意性
对比纯 ALOHA 和时隙 ALOHA
- 纯 ALOHA 比时隙 ALOHA 吞吐量更低,效率更低
- 纯 ALOHA 想发就发,时隙 ALOHA 只有在时间片段开始时才能发
四、CSMA协议
CSMA 协议:是一种允许多个设备在同一信道发送信号的协议,其中的设备监听其它设备是否忙碌,只有在线路空闲时才发送。
CS:载波侦听/监听,每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据。
当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,即发生了冲突。
MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上
协议思想:发送帧之前,监听信道
1-坚持 CSMA
坚持:指的是对于监听信道忙之后的坚持。
1-坚持 CSMA 思想:
如果一个主机要发送消息,那么它先监听信道。空闲则直接传输,不必等待。
忙则一直监听,直到空闲马上传输。如果有冲突(一段时间内未收到肯定回复),则等待一
个随机长的时间再监听,重复上述过程。
优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失,
缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免。
传播延迟对 1-坚持 CSMA 协议的性能影响较大。
结点 A开始发送数据时,结点 B也正好有数据要发送,但这时结点 A发出数据的信号还未到达结点 B,结点 B 侦听到信道空闲,于是立即发送数据,结果必然导致冲突。
即使不考虑延迟,1-坚持 CSMA 协议也可能产生冲突。
例如,结点 A正在发送数据时,结点 B 和 C 也准备发送数据,侦听到信道忙,于是坚持侦听,结果当结点 A一发送完毕,结点 B 和 C 就会立即发送数据,同样导致冲突。
非坚持 CSMA
非坚持: 指的是对于监听信道忙之后就不继续监听,
非坚持 CSMA 思想:如果一个主机要发送消息,那么它先监听信道。空闲则直接传输,不必等待。忙则等待一个随机的时间之后再进行监听。
优点:采用随机的重发延迟时间可以减少冲突发生的可能性。
缺点:可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低。
非坚持 CSMA 协议在侦听到信道忙后就放弃侦听,因此降低了多个结点等待信道空闲后同时发送数据导致冲突的概率,但也会增加数据在网络中的平均延迟。可见,信道利用率的提高是以增加数据在网络中的延迟时间为代价的。
p-坚持 CSMA
p-坚持指的是对于监听信道空闲的处理。
p-坚持 CSMA 思想:
如果一个主机要发送消息,那么它先监听信道,空闲则以p概率直接传输,不必等待;概率1-p 等待到下一个时间槽再传输。忙则等待一个随机的时间之后再进行监听。
优点:既能像非坚持算法那样减少冲突,又能像 1-坚持算法那样减少媒体空闲时间的这种方案。
缺点:发生冲突后还是要坚持把数据帧发送完,造成了浪费。
1-坚持CSMA | 非坚持CSMA | p-坚持CSMA | |
信道空闲 | 马上发 | 马上发 | p概率马上发 1-p概率等到下一个时隙再发送 |
信道忙 | 继续监听 | 放弃监听,等一个随机时间再监听 | 继续坚持监听 |
五、CSMA/CD协议
协议要点:
先听后发,边听边发,冲突停发,随机重发
截断二进制指数规避算法
确定碰撞后的重传时机
随机等待一段时间 = r倍争用期,其中r是随机数
争用期 = 2×最远单向传播时延(考虑距离最远的两个节点)
k冲突次数
①如果 k≤10,在[0, 2k -1]区间随机取一个整数r
②如果 k>10,在[0,210 -1]区间随机取一个整数r
注:
如果争用期内没检测到冲突,本次帧发送就不再可能发生冲突
CSMA/CD 没有 ACK 机制,若发送过程中未检测到冲突,就认为帧发送成功
特别注意:
第 10 次冲突,是"随机重发"的分水岭
第 16 次冲突,直接躺平,放弃传帧,报告上级(网络层)
最短帧长:
最短帧长 = 2×最大单向传播时延×信道带宽
若收到的帧小于最短帧长,视为无效帧
CSMA/CD 协议的“冲突停发”规则会导致小于最短帧长的“非法帧”
如果 A节点发送的数据帧长度小于最短帧长,可能会导致 A节点“误以为”
发送过程中没有发生冲突,但实际上已经发生了冲突。
如果实际要发送的数据很少,可“填充”至合法长度后再发送
当接收方从信道收到一个帧会做哪些判断?
① 判断是否小于“最短帧长”,'是,则丢弃帧
② 判断是不是发给自己的帧,相当于判定目的地址,"否’,则丢弃帧
③ 使用 CRC 校验,判定帧是否存在差错,'是’,则丢弃帧
以上均无问题,则接收帧,并将数据部分交给网络层
最长帧长:规定最长帧长可防止某些节点一直占用信道
以太网规定:
最短帧长=64B
最长帧长=1518B
六、CSMA/CA协议
协议要点:
若信道空闲,间隔 DIFS 后,再发送帧(一口气发完,发送过程中不用检测冲突)
若信道不空闲,则进行“随机退避"
随机退避原理:
① 用二进制指数退避算法确定一段随机退避时间(倒计时)
② 发送方会保持监听信道,只有信道空闲时才"扣除倒计时"倒计时结束后立即发送帧(此时信道“听起来"一定空闲)
接收方:(采用停止等待协议)
每收到一个正确数据帧都返回 ACK;若发送方超时未收到 ACK,则进行”随机退避”
CSMA | CSMA/CD | CSMA/CA | |
原理 | 先监听,若信道空闲,在发送 | 边发送边监听,检测到冲突立即停止发送 | 发送过程中不用检测冲突,发送前想办法尽量避免冲突(但无法完全避免) |
适用于 | 适用于有线网络(如:以太网技术) | 适用于无线网络:(如:IEEE 802.11标准的无线局域网技术,即WIFI) |
无线局域网(WIFI)
AP(Access Point):接入点,也就是你平时连接的无线 WiFi热点
为什么不采用 CSMAICD 协议?
1)硬件上很难实现“边听边发,冲突检测”;因为接收信号的强度往往远小于发送信号的强
度,且在无线介质上信号强度的动态变化范围很大。
- 存在“隐蔽站”问题;在无线通信中,并非所有站点都能够听见对方。发送结点处没有冲突并不意味着在接收结点处就没有冲突。
帧间间隔((InterFrame Gap)
DIFS(分布式协调IFS):最长的帧间间隔
SIFS(短 IFS):最短的帧间间隔。预留 SIFS 用于处理收到的帧(如完成差错控制等)
PIFS(中等长度的IFS),不考察了解即可
时间长度:DIFS > PIFS > SIFS
解决隐蔽站问题
信道预约机制(可选功能)
- 发送方广播 RTS 控制帧(先听后发,忙则退避)
- AP 广播 CTS 控制帧
- 其他无关节点收到 CTS 后自觉"禁言"一段时间(即:虚拟载波监听机制);发送方收到 CTS 后,就可以发送数据帧
- AP 收到数据帧后,进行 CRC 校验,若无差错就返回 ACK 帧
RTS 控制帧(Request ToSend,请求发送):
它包括源地址、目的地址和这次通信所需的持续时间。
CTS 控制帧(Clear To send,允许发送):
它也包括源地址、目的地址和这次通信所需的持续时间。
注 1:如果超时未收到 CTS,说明预约失败,则“随机退避”后再次 RTS 预约
注 2:“先预约,再发送”这种模式可以启用、也可以不启用。
七、令牌传递协议(轮循访问)
令牌环网技术:IBM 公司于1984 开发的一种局域网技术
核心特点:
环形拓扑结构,各节点“轮询访问”信道,不会发生信道冲突。
如何实现“介质访问控制”:
令牌传递协议
- 令牌传递又称“标记传送”,局部网数据送取的一种控制方法,多用于环形网。
- 令牌由专用的信息块组成,典型的令牌由连续的8位“1”组成。当网络所有节点都空闲时,令牌就从一个节点传送到下一个节点。当某一节点要求发送信息时,它必须获得令牌并在发送之前把它从网络上取走。一旦传送完数据,就把令牌转送给下一个节点,每个节点都具备有发送/接收令牌的装置。使用这种传送方法决不会发生碰撞,这是因为在某一瞬间只有一个节点有可能传送数据。
最大的问题是令牌在传送过程中丢失或受到破坏,从而使节点找不到令牌从而无法传送信息。
- TCU:环接口干线耦合器。它的主要作用是传递经过的所有帧,为接入站发送和接收数据提供接口。它的状态有两种:收听状态和发送状态
- 没有人使用令牌时,令牌则在环路中循环。
令牌:一个特殊格式的 MAC 控制帧,不含任何信息
控制信道的使用,确保同一时刻只有一个结点独占信道。
令牌环网无碰撞(无冲突):
每个结点都可以在一定的时间内(令牌持有时间)获得发送数据的权利,并不是无限制地持有令牌。
问题:
1.令牌开销 2.等待延迟 3.单点故障
应用于令牌环网(物理星型拓扑,逻辑环形拓扑)。
采用令牌传送方式的网络常用于负载较重、通信量较大的网络中。
令牌环网中令牌和数据的传递过程如下:
1)网络空闲时,环路中只有令牌帧在循环传递。
2)令牌传递到有数据要发送的站点处时,该站点就修改令牌中的一个标志位,并在令牌中附加自己需要传输的数据,将令牌变成一个数据帧,然后将这个数据帧发送出去。
3)数据帧沿着环路传输,接收到的站点一边转发数据,一边查看帧的目的地址。如果目的地址和自己的地址相同,那么接收站就复制该数据帧以便进一步处理。
4)数据帧沿着环路传输,直到到达该帧的源站点,源站点接收到自己发出去的数据帧后便不再进行转发。同时,发送方可以通过检验返回的数据帧来查看数据传输过程中是否有错,若有错则重传该帧。
5)源站点传送完数据后,重新产生一个令牌,并将令牌传递给下一个站点,以交出对媒体的访问权限。