数据链路层:CSMA/CSMA-CA/CSMA-CD

Posted issue是fw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据链路层:CSMA/CSMA-CA/CSMA-CD相关的知识,希望对你有一定的参考价值。

C S M A \\rm CSMA CSMA

坚持 C S M A \\rm CSMA CSMA

如果一个主机要发送信息,那么它先监听信道

Ⅰ.若空闲则直接传输

Ⅱ.忙则一直监听,直到空间马上传输

Ⅲ.若有冲突(一段时间内未收到肯定回复),则等待一个随机长的时间再监听,重复上述步骤.

优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失

缺点:若有两个或以上的站点需要发送数据,冲突就不可避免



非坚持 C S M A \\rm CSMA CSMA

如果一个主机要发送信息,那么它先监听信道

Ⅰ.若空闲则直接传输

Ⅱ. 忙 则 等 待 一 个 随 机 的 时 间 后 再 进 行 监 听 \\color{Red}忙则等待一个随机的时间后再进行监听

优点:采用随机的重发延迟时间可以减少冲突发生的可能

缺点:媒体使用率低,因为大家可能都在等



p − p- p坚持 C S M A \\rm CSMA CSMA

如果一个主机要发送信息,那么它先监听信道

Ⅰ.若空闲则以 p p p概率直接传输, 1 − p 1-p 1p概率等待到下一个时间槽再传输

Ⅱ.忙则等待一个随机事件后再进行监听

缺点:发生冲突后还是要坚持把数据帧发送完,造成浪费(因为都是根据接收方是否返回确认帧来检测碰撞)



C S M A / C D \\rm CSMA/CD CSMA/CD协议

CS(监听):每一个站在发送数据之前以及发送数据时都要检测一下总线上是否有其他计算机在发送数据

MA(多点接入):多台计算机以多点接入的方式接在一根总线上

CD:碰撞检测(冲突检测):边发送边监听(检测信道上信号电压的变化情况)


传播时延对监听的影响

由于电磁波在信道上传输也需要时间,所以虽然"听"的时候没有发现信号,但是可能信号在来的路上

这个时候发送数据就和别人冲突了

最迟只需要 2 T 2T 2T的时间就知道自己发的数据是否和别人碰撞,因为自己发过去时间就是 T T T

最坏在刚到别的站点的时候发生碰撞,然后别的站点的混乱信息传过来时间是 T T T,加起来就是 2 T 2T 2T

确定碰撞后的重传时机

以下 T T T为单程端到端传播时延

Ⅰ.确定基本退避时间为 2 T 2T 2T

Ⅱ.定义参数 k k k m i n ( 重 传 次 数 , 10 ) \\rm min(重传次数,10) min(,10),

Ⅲ.从正数集合 [ 0 , 2 k − 1 ] [0,2^k-1] [0,2k1]中随机取出一个数 r r r,重传所需的退避时间就是 r r r倍的基本退避时间,即为 2 r T 2rT 2rT

Ⅳ.当重传达 16 \\color{Red}16 16次仍不能成功时,说明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报错

最小帧长

帧的传输时延至少要两倍于信号在总线中的传播时延(为了能在帧发送完毕前检测到碰撞)

帧 长 ( b i t ) 数 据 传 播 速 率 > = 2 T \\frac{帧长(bit)}{数据传播速率}>=2T (bit)>=2T



C S M A / C A \\rm CSMA/CA CSMA/CA协议工作原理

发送数据前,先检测信道是否空闲.

Ⅰ.空闲则发出 R T S ( r e q u e s t   t o   s e n d ) \\rm \\color{Red}RTS(request\\ to\\ send) RTS(request to send), R T S RTS RTS包括发射端的地址,接收端地址,下一份数据持续发送时间等信息

Ⅱ.信道忙则等待

Ⅲ.接收端收到 R T S \\rm RTS RTS,将相应 C T S ( c l e a r   t o   s e n d ) \\rm CTS(clear\\ to\\ send) CTS(clear to send)

Ⅳ.发送端收到 C T S \\rm CTS CTS后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多久数据)

Ⅴ.接收端收到数据帧后,用 C R C \\rm CRC CRC检验数据是否正确,正确则相应 A C K \\rm ACK ACK

Ⅵ.发送方收到 A C K \\rm ACK ACK就可以进行下一个数据帧的发送,若一直没有则重传至规定重传次数为止(二进制指数退避算法来确定随机的推迟时间)



C S M A / C D \\rm CSMA/CD CSMA/CD C S M A / C A \\rm CSMA/CA CSMA/CA的区别

相同点

核心都是先听后说,接入信道前都需要进行监听,当发现信道空闲后,才能进行接入

不同点

Ⅰ.传输介质不同: C S M A / C D \\rm CSMA/CD CSMA/CD用于总线式以太网[有线]. C S M A / C A \\rm CSMA/CA CSMA/CA用于无线局域网[无线]

Ⅱ.载波检测方式不同:因传输介质不同, C S M A / C D \\rm CSMA/CD CSMA/CD通过电缆中电压变化来检测,而 C S M A / C A \\rm CSMA/CA CSMA/CA采用能量检测( E D ED ED),载波检测 ( c s ) (cs) (cs)和能量载波混合检测三种检测信道空闲方式

Ⅲ. C S M A / C D \\rm CSMA/CD CSMA/CD检测冲突, C S M A / C A \\rm CSMA/CA CSMA/CA避免冲突,二者冲突后会进行有限次重传

以上是关于数据链路层:CSMA/CSMA-CA/CSMA-CD的主要内容,如果未能解决你的问题,请参考以下文章

计算机网络—— 数据链路层:数据链路层概述

计算机网络(3) 数据链路层

数据链路层-第一节:数据链路层概述

计算机网络-数据链路层

数据链路层

计算机网络数据链路层总结