数据链路层:媒体接入控制

1.数据链路层:媒体接入控制

笔记来源:
湖科大教书匠:媒体接入控制的基本概念
湖科大教书匠:随机接入–CSMA/CD协议
湖科大教书匠:随机接入–CSMA/CA协议

声明:该学习笔记来自湖科大教书匠,笔记仅做学习参考

共享信道着重考虑的问题是:如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC

媒体接入控制的划分

下图来自:3.21.频分多路复用(FDM)

1.1静态划分信道

信道复用概念

“复用”是一种将若干个彼此独立的信号,合并为一个可在同一信道上同时传输的复合信号的方法。

1.1.1 频分复用FDM

每个频率的信号都独占一个信道,类似并行
下图来自:3.21.频分多路复用(FDM)

1.1.2 时分复用TDM

在一个周期中第一个时间段内红色信号独占信道,第二个时间段内黄色信号独占信道,类似并发
时分复用的所有用户在不同时间占用同样的频带宽度
下图来自:3.22.时分多路复用(TDM)

1.1.3 波分复用WDM

波分复用就是光的频分复用
不同波长(频率)的光在同一信道中不会干扰
下图来自:3.24.波分多路复用(WDM)

光信号传输一段距离后会衰减,所以使用了放大器

1.1.4 码分复用CDM(码分多址CDMA)

给每个主机进行编码(此主机的唯一标识),若该主机发送比特1就用这个编码代表,若发送比特0就用这个编码的反码代表。
下图来自:3.25.码分多路复用(CDMA)
下图中如果主机A和主机B发送的数据不在同一个子信道(子频带)上则不会产生冲突,若在同一个子信道(子频带)上则会产生冲突。该如何解决这种情况?线性相加。相加后的数据到达目的地后如何处理?叠加后的数据与源站规格化内积

比特时间是发送一比特所需的时间,它是数据传输速率的倒数

两个主机可以共享同一个信道的前提是:两站码片序列规格化内积为0



例1:

例2:

1.2 动态划分信道

1.2.1 ALOHA协议

下图来自:ALOHA协议

1.2.2 CSMA协议(载波监听多址接入)

载波监听:每个站在发送帧之前先检测总线上是否有其他站发送帧
多址接入:多个站连接到一条总线,竞争使用总线

CSMA比ALOHA多了监听,先监听信道是否被占用,若信道忙,则推迟发送,若信道闲,则发送
下图来自:CSMA协议

1.2.3 随机接入–CSMA/CD协议(载波监听多址接入/碰撞检测)

碰撞检测:正在发送帧的站点边发送帧边检测碰撞(先听再发)
发送过程中实时检测(边听边发)
检测过程中一旦发现冲突则停止发送(冲突停发)
停发之后剩余的数据再随机重发
共享式以太网的媒体接入控制协议CSMA/CD


CSMA/CD协议不能进行全双工通信(A->B同时A<-B),只能进行半双工通信(只能A->B或者A<-B)

发送端A的信号与B的信号发生碰撞,B的信号被A端收到时检测到碰撞,碰撞点可能在总线中任意一个位置
发送端检测到碰撞最长耗时的情况为:碰撞点无限接近于终点,这样的话收到B的信号就需要B的信号在整个总线上的传播时延,这样从发送端A发出信号的传播时延(整个总线上的传播时延)+碰撞后B信号到A的传播时延 = 两倍传播时延
无限趋于 2 τ 2\tau 2τ 也叫冲突窗口、争用期,主机最多经过 2 τ 2\tau 2τ的时长就可检测到本次发送是否遭受了碰撞,经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发送碰撞。

怎么保证“碰撞停发”?
在争用期内检测到碰撞,而当前帧还没有发送完毕,则主机A立即中止发送,保证了碰撞停发(发送一个帧的过程中检测到碰撞,而不是发完一帧后检测到碰撞),则接收端将该帧作为无效帧丢弃。
最小帧长确保了主机可在帧发送完成之前就检测到该帧的发送过程中是否遭遇了碰撞
最小帧长=2×传播时延×数据率= 2 τ ×数据率 \text{最小帧长=2×传播时延×数据率=$2\tau$×数据率} 最小帧长=2×传播时延×数据率=2τ×数据率
若发送的数据非常少,必须加入一些填充字节,使得帧长不小于64字节(以太网规定最小帧长为64字节)
若在争用期内没有检测到碰撞,那后续发送的数据一定不会发生碰撞
若在争用期内检测到了碰撞,就立即中止发送,这时发送出去的数据一定小于64字节,因此长度小于64字节的帧都是由于碰撞而异常中止的无效帧
如何重发(重发时机及次数)?
截断二进制指数退避算法:
随机推迟/退避r倍争用期: r ∗ 2 τ r*2\tau r2τ(争用期作为基本退避时间)
r ∈ [ 0 , 1 , … … , 2 k − 1 ] r\in[0,1,……,2^k-1] r[0,1,……,2k1] k = m i n ( 重传次数,10 ) k=min(\text{重传次数,10}) k=min(重传次数,10)

1.2.4 随机接入–CSMA/CA协议(载波监听多址接入/碰撞避免)

802.11局域网的媒体接入控制协议CSMA/CA,在CSMA基础上增加一个 碰撞避免(CA) 功能,不再实现碰撞检测功能


如何尽可能避免碰撞?
发送前通知其他节点,在某段时间内不要发送
实现碰撞避免的三种机制:

发送数据帧之前先发送RTS帧(请求发送帧),在收到响应CTS帧(允许发送帧)后,就可发送数据帧

虽然C收不到A发送的RTS帧,但能收到B发送的CTS帧,这样C就知道信道被占用多长时间了,在这段时间内C不能向信道发送帧

802.11的MAC层中定义的两种不同媒体接入控制方式:

帧间间隔(IFS):所有站点必须在持续检测到信道空闲一段指定时间后才能发送帧
短帧间间隔(SIFS):用来分隔开属于一次对话的各帧
DCF帧间间隔(DIFS):比SIFS长得多,在DCF方式中用来发送数据帧和管理帧

源站为什么在检测到信道空闲后还要等待DIFS?
考虑到有其他高优先级的帧要发送,若有,就要让高优先级帧先发送
目的站为什么正确接收数据帧后还要等待一段时间SIFS才能发送ACK帧?
在SIFS这段时间内,一个站点应当能够从发送方式切换到接收方式
信道由忙转为空闲且经过DIFS后,为什么还要退避一段随机时间才能使用信道?
防止多个站点同时发送数据而产生碰撞

猜你喜欢

转载自blog.csdn.net/weixin_48524215/article/details/130956663
今日推荐