【计算机网络】数据链路层——基于信道划分的介质访问控制
信道划分介质访问控制
点对点链路&广播式链路
点对点:两个相邻节点通过一个链路相连,没有第三者。应用:PPP协议,常用于广域网。
广播:所有主机共享通信介质。应用:早期的总线以太网、无线局域网,常用于局域网。总线型,星型(逻辑总线)
介质访问控制
介质访问控制的内容就是,采取一定的措施,使得两对节点之间的通信不会发生互相干扰的情况。
信道划分介质访问控制:
将使用介质的每个设备与来自同一信道上的其他设备的通信隔离开,把时域和频域资源合理地分配给网络上的设备。
静态划分信道:多路复用
频分多路复用FDM
用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。频分复用的所有用户在同样的时间占用不同的带宽(频率带宽)资源。
充分利用传输介质带宽,系统效率较高;由于技术比较成熟,实现也比较容易。
时分多路复用TDM
将时间划分为一段段等长的时分复用帧(TDM帧)。每一个时分复用的用户在每一个TDM帧中占用固定序号的时隙,所有用户轮流占用信道。
TDM帧是在物理层传送的比特流所划分的帧,标志一个周期。
缺点:如果只有D一个人在传,那就会降低利用率
改进:统计时分复用
每一个STDM帧中的时隙数小于连接在集中器上的用户数。各用户有了数据就随时发往集中器的输入缓存,然后集中器按顺序依次扫描输入缓存,把缓存中的输入数据放入STDM帧中,一个STDM帧满了就发出。STDM帧不是固定分配时隙,而是按需动态分配时隙。
人话就是,谁先来谁先走咯
波分多路复用WDM
波分多路复用就是光的频分多路复用,在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率)不同,所以各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。
码分多路复用CDM
先把AB发过来的混到一起,到C的时候再分开
码分多址(CDMA)
码分多址(CDMA)是码分复用的一种方式。
1个比特分为多个码片/芯片(chip) ,每一个站点被指定一个唯一的m位的芯片序列,发送1时发送芯片序列(通常把0写成-1)。
发送1时站点发送芯片序列,发送0时发送芯片序列反码。
多个站点同时发送数据,要求各个站点的芯片序列相互正交且规格化内积为0
例:A要发送比特1,芯片序列不变;B要发送比特0,芯片序列取反码
两个向量到了公共信道,线性相加S-T
到了C站数据分离:用他自己的芯片序列,去算这个内积:
S·(S-T)= 1,得到A站
T·(S-T)= 0,得到B站
动态分配信道
随机访问介质访问控制
所有用户可随机发送信息。发送信息时占全部带宽。(不协调)
ALOHA协议:不听就说
纯ALOHA协议:
- 不监听信道,不按时间槽发送,随机重发。
时隙ALOHA协议:
把时间分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道,若发生冲突,则必须等到下一个时间片开始时刻再发送。
控制想发就发的随意性
这里站2故意等了一定的时间来避免重传仍然冲突。
1.纯ALOHA比时隙ALOHA吞吐量更低,效率更低。
2.纯ALOHA想发就发,时隙ALOHA只有在时间片段开始时才能发。
CSMA协议:先听再说
载波监听多路访问协议CSMA (carrier sense multiple access)
- CS:载波侦听/监听,每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据。
当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,即发生了冲突。
- MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上。
坚持CSMA
坚持指的是对于监听信道忙之后的坚持。
坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道。
空闲则直接传输,不必等待。
忙则一直监听,直到空闲马上传输。
如果有冲突(一段时间内未收到肯定回复),则等待一个随机长的时间再监听,重复上述过程。
-
优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失。
-
缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免。
非坚持CSMA
非坚持指的是对于监听信道忙之后就不继续监听。
非坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道。
空闲则直接传输,不必等待。
忙则等待一个随机的时间之后再进行监听。
-
优点:采用随机的重发延迟时间可以减少冲突发生的可能性。
-
缺点:可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低。
P-坚持CSMA
p-坚持指的是对于监听信道空闲的处理。
p-坚持CSMA思想:如果一个主机要发送消息,那么它先监听信道。
空闲则以p概率直接传输,不必等待;但是也有可能以概率1-p等待到下一个时间槽再传输。
忙则持续监听直到信道空闲再以p概率发送,也有可能以概率1-p等待到下一个时间槽再传输。
若冲突则等到下一个时间槽开始再监听并重复上述过程。
-
优点:既能像非坚持算法那样减少冲突,又能像1-坚持算法那样减少媒体空闲时间的这种方案。
-
缺点:发生冲突后还是要坚持把数据帧发送完,造成了浪费。
解决缺点:
CSMA/CD协议:先听再说,边听边说
载波监听多点接入/碰撞检测CSMA/CD (carrier sense multiple access with collision detection)
-
CS:载波侦听/监听,每一个站在发送数据之前以及发送数据时都要检测一下总线上是否有其他计算机在发送数据。
-
CD:碰撞检测(冲突检测)断自己在发送数据时其他站是否也在发送数据。“边发送边监听”,适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据。如果有别的站点在发送,那就立刻叫停,防止浪费
为什么先听还会发生冲突?(因为有传播时延对载波监听的影响)
注意的点:
- 碰撞后水变浑了,于是到目的地后发现了碰撞。
- 单程端到端时延τ
- B端发送信息b,到接受信息a的所用时间名叫δ
- 发生碰撞到B检测到:二分之一δ
- A检测到碰撞停发时间:2τ-δ
- 最迟多久才能知道自己发送的数据有没有发生碰撞?2τ!!!!!!!!δ趋近于0。
只要经过2t时间还没有检测到碰撞,就能肯定这次发送不会发生碰撞。
2τ又叫:
总线的端到端往返传播时延
争用期/冲突窗口/碰撞窗口
截断二进制质数规避算法(二进制回退算法)
举个例子:
第一次重传,k=1,r从{0,1}中选,则重传推迟时间为0或者2τ
若再次碰撞,则在第二次重传时, k=2,r从{0, 1, 2, 3}选;
重传推迟时间为0或 2t或 4t或 6t,在这四个时间中随机选一个;
若再次碰撞,则第三次重传时,k=3,r从{0, 1,2,3,4,5,6,7}选...…
16次以后仍不成功,寄!
若连续多次发生冲突,就表明可能有较多的站参与争用信道。
使用此算法可使重传需要推迟的平均时间随重传次数的增大而增大,因而减小发生碰撞的概率,有利于整个系统的稳定。
- 例:在以太网的二进制回退算法中,在11次碰撞之后,站点会在0~(?)之间选择一个随机数。
第11次碰撞,本来k要取11,但是因为k不超过10,所以k=10.
r从{0, 1,2,3,……,1023}选。这个1023是2^10-1
最小帧长
帧的传输时延至少要两倍于信号在总线中的传播时延。否则无法应用碰撞检测重传。
以太网规定最短帧长为64B,凡是长度小于64B的都是由于冲突而异常终止的无效帧。
CSMA/CA协议:非常有礼貌捏
载波监听多点接入/碰撞避免CSMA/CA(carrier sense multiple access with collision avoidance)
为什么要有?
CSMA/CA应用于无线局域网。
因为无法360°全面检测碰撞
隐蔽站问题:当A和C都检测不到信号,认为信道空闲时,同时向终端B发送数据帧,就会导致冲突.
-
发送数据前,先检测信道是否空闲。
-
空闲则发出RTS (request to send) , RTS包括发射端的地址、接收端的地址、下一份数据将持续发送的时间等信息;信道忙则等待。
-
接收端收到RTS后,将响应CTS (clear to send) 。
-
发送端收到CTS后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多久数据)
-
接收端收到数据帧后,将用CRC来检验数据是否正确,正确则响应ACK帧。
-
发送方收到ACK就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数退避算法来确定随机的推迟时间)。
1、预约信道 2、ACK确认帧 3、RTS/CTS帧:
CSMA/CD 和CSMA/CA的区别
但是CD一定是16次。CA不一定嗷
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2023-03-13 .NET平台程序与设计【6】 数组
2023-03-13 .NET平台与程序设计【5】类的继承与多态