数据链路层-第五节2:随机访问介质控制

Posted 快乐江湖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据链路层-第五节2:随机访问介质控制相关的知识,希望对你有一定的参考价值。

文章目录

在随机访问协议中,所有用户能根据自己的意愿随机发送信息,占用信道全部速率。因此在这种情况下,当有多个用户同时发送信息时,极易产生帧的碰撞导致冲突,最终所有冲突用户的发送都会失败

随机访问介质控制协议:为解决随机接入发生的碰撞,每个用户都需要按照一定规则反复重传它的帧,直到该帧无碰撞通过;其核心思想是胜利者通过争用获得信道,从而获得信息的发送权,其本质是将广播信道转化为点到点信道。常用协议有

  • ALOHA协议
  • CSMA协议
  • CSMA/CD协议
  • CSMA/CA协议

一:ALOHA协议(不听就说)

(1)纯ALOHA协议

纯ALOHA协议:当网络中的任何一个站点需要发送数据时,可以不进行任何检测就发送数据;如果在一段时间内未收到确认,那么该站点就认为传输过程中发生了冲突;发送站点需要等待一段时间后再发送数据,直到发送成功。也即想发就发、随机重发

如下图

  • 站1发送帧1时,其他站都未发送数据,所以站1的发送必定成功
  • 站2和站 N N N-1发送的帧2和帧3在时间上有所重叠,发生碰撞,因此需要重传
  • 纯ALOHA协议采用的重传策略是让各站等待一段时间再重传,如果再次发生碰撞则再等待一段时间,直到重传成功

(2)时隙ALOHA协议

时隙ALOHA协议:把时间分成若干相同的时间片,所有用户在时间片开始时刻同步接入网络信道;如果发生冲突,则必须等到下一个时间片开始时刻再发送

  • 时隙ALOHA协议的吞吐量要大于纯ALOHA协议且效率更高

如下图

  • 时隙的长度 T 0 T_0 T0使得每个帧正好在一个时隙内发送完毕
  • 在一个时隙内有两个或两个以上的帧到达时,在下一个时隙将产生碰撞

二:CSMA(载波监听多路访问)协议(先听再说)

CSMA协议(载波监听多路访问):每个站点在发送前都需要侦听一下共用信道,发现信道空闲后再发送,这样做可以大大降低碰撞发生的概率。CSMA协议其实是一种在ALOHA协议基础上提出的一种改进协议,与ALOHA协议的主要区别就是多了一个载波侦听装置

  • CS(载波监听):每一个站在发送数据之前需要检测总线上是否有其他计算机在发送数据
  • MA(多点接入):表示许多计算机以多点接入的方式连接在一根总线上

根据侦听方式侦听到信道忙后的处理方式的不同,CSMA协议分为以下三种

  • 1-坚持CSMA:侦听到信道忙后,继续坚持侦听信道;侦听到信道空闲后,发送帧的概率为1,也即立刻发送数据
  • 非坚持CSMA:监听到信道忙后不继续监听
  • p p p-坚持CSMA:是指对于监听信道空闲的处理

(1)1-坚持CSMA

1-坚持CSMA:如果一个主机要发送消息,那么先监听信道;空闲则直接传输不必等待、忙则一直监听直到空闲再传输、如有冲突则等待随机时间再监听;重复上述过程

  • 优点:只要媒体空闲,站点就马上发送,避免媒体利用率的损失
  • 缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免

(2)非坚持CSMA

非坚持CSMA:如果一个主机要发送信息,那么它先监听信道空闲则直接传输不必等待、忙则等待一个随机的时间之后再进行监听;重复上述过程

  • 优点:采用随机的重发延迟时间可以减少冲突发生的可能性
  • 缺点:可能存在大家都在延迟等待过程中,使媒体仍然可能处于空闲状态,媒体使用率降低

(3) p p p-坚持CSMA

  • 如果 p p p=1其实就是1-坚持CSMA
  • 如果 p p p=0其实就是非坚持CSMA

p p p-坚持CSMA:如果一个主机要发送信息,那么它先监听信道空闲则以概率 p p p直接传输不必等待,概率 1 − p 1-p 1p等待到下一个时间槽再传输,忙则持续监听知道信道空闲再以概率 p p p发送,若冲突则等到下一个时间槽开始再监听并重复上述过程;重复上述过程

  • 优点:既能像非坚持算法那样减少冲突,又可以像1-坚持算法那样减少媒体空闲时间
  • 缺点:发生冲突后还是要坚持把数据帧发送完,造成浪费(解决方案就是CSMA/CD协议)

总结

1-坚持CSMA非坚持CSMA p p p-坚持CSMA
信道空闲马上发马上发 p p p概率马上发;1- p p p概率等到下一时隙再发
信道忙碌继续坚持监听放弃监听,等一个随机时间再监听持续监听,直到信道空闲再以概率 p p p发送

三:CSMA/CD(载波监听多路访问/碰撞检测)协议(先听再说、边听边说)

CSMA/CD(载波监听多路访问/碰撞检测):是CSMA协议的改进方案

  • CS(载波监听):每一个站点在发送数据之前和发送数据之时需要检测总线上是否有其他计算机在发送数据
  • MA(多点接入):表示许多计算机以多点接入的方式连接在一根总线上(总线型网络)
  • 碰撞检测:边发送边监听,即适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站点是否也在发送数据(半双工网路)

(1)传播时延对载波监听的影响(争用期或碰撞窗口的概念)

由于电磁波在总线上总是以有限的速率传播,因此电磁波的传播时间对载波监听是有很大影响的,这也是为什么即便采用先听后发的策略后仍然会出现冲突的原因

例如下图, A A A B B B单程端到端传播时延为 τ \\tau τ,因此在这个时间内,如果 A A A所发送的信号还未能传达到 B B B,那么 B B B就会认为信道是空闲的,于是会发送数据,自然而然会产生冲突和碰撞

这里的传播时延 τ \\tau τ对CSMA/CD的影响非常大,如下图

  • t = 0 t=0 t=0时, A A A发送数据, B B B检测信道空闲
  • t = τ − δ t=\\tau-\\delta t=τδ时, A A A所发送的数据还没有到达 B B B B B B检测信道还是空闲,因此发送数据
  • 在经过时间 τ 2 \\frac\\tau2 2τ后,即在 t = τ − τ 2 t=\\tau - \\frac\\tau2 t=τ2τ时, A A A发送的数据和 B B B发送的数据发生碰撞,但此时 A A A B B B都未察觉
  • t = τ t=\\tau t=τ时, B B B检测到碰撞,于是停止发送数据 t = 2 τ − δ t=2 \\tau-\\delta t=2τδ时, A A A检测到碰撞,于是也停止发送数据


由上图可以看出, A A A在发送帧后至多经过 2 τ 2\\tau 2τ时间就可以知道所发送的帧是否发生了碰撞(即 δ → 0 \\delta \\to 0 δ0时),因此我们把以太网端到端往返时间 2 τ 2\\tau 2τ称之为争用期(又称为冲突窗口或碰撞窗口)。每个站在自己发送数据之后的一小段时间内,存在发生冲突的可能性,但只有经过争用期这段时间还未检测到冲突时,才能确定这次发送不会发生冲突

(2)如何确定碰撞后的重传时机

当发生冲突之后,两个站点如果立马再次发送数据将会导致无休止冲突,为了解决这个问题,CSMA/CD采用 二进制指数退避算法 来解决这个问题,算法核心思想如下

  • 确定基本退避时间为争用期 2 τ 2\\tau 2τ
  • 定义参数 k k k,它等于重传次数,但 k k k不能超过10。当重传次数不超过10时, k k k=重传次数,当大于10时, k k k也不会增大而会一直等于10
  • 从离散的整数集合 0 , 1 , 2 k − 1 \\0, 1, 2^k-1\\ 0,1,2k1中随机取出一个数 r r r,重传所需要退避的时间就是r倍的基本退避时间,也即2 r τ r \\tau rτ

如果连续多次发生重传,就表明可能有较多的站参与争用信道,使用此算法可使重传需要推迟的平均时间随重传次数的增大而增大,因而减小发生碰撞的概率,有利于系统稳定

(3)最小帧长

最小帧长:为了确保发送站点在发送数据的同时能检测到可能存在冲突,需要在发送完帧之前就能收到自己发送出去的数据,也即帧的传输时延至少要两倍于信号在总线中的传播时延,所以CSMA/CD规定总线网中的所有数据帧都必须要大于一个最小帧长,任何站点收到帧长小于最小帧长的帧时,就把它当作无效帧立即丢弃

  • 最小帧长=总线传播时延×数据传输率×2

因此,以太网规定最短帧长为64B,凡是长度小于64B的都是由于冲突而异常终止的无效帧

四:CSMA/CA(载波监听多路访问/碰撞避免)协议

(1)基本介绍

CSMA/CA(载波监听多路访问/碰撞避免):CSMA/CD协议已经成功应用于使用有线连接的局域网,但不适用于无线局域网,主要有两个原因

  • 接受信号的强度往往远小于发送信号的强度,且在无线介质上信号强度的动态变化范围很大,因此如果要实现碰撞检测,硬件成本会很大
  • 在无线通信中,并非所有站点都能听见对方,也即存在“隐蔽站”问题

CSMA/CA还会使用以下三种机制来实现碰撞避免

  • 预约信道:发送方在发送数据的同时向其他站点通知自己传输数据需要的时间长度,以便让其他站点在斩断时间内不发送数据,从而避免碰撞
  • ACK帧:所有站点在正确接收到发给自己的数据帧(除广播帧和组播帧)后,都需要向发送方发回一个ACK帧,如果接收失败,那么不采取任何行动。发送方在发送完一个数据帧后,在规定的时间内如果未收到ACK帧,那么认为发送失败,此时进行该数据帧的重发,直到收到ACK帧或达到规定重发次数为止
  • RTS/CTS帧:可选的碰撞避免机制,主要解决 “隐蔽站”问题

(2)CSMA/CA和CSMA/CD对比

相同点:CSMA/CD与CSMA/CA机制都从属于CSMA的思路,其核心是先听再说。换言之,两个在接入信道之前都须要进行监听。当发现信道空闲后,才能进行接入

不同点

  • 传输机制不同:CSMA/CD用于总线式以太网(有线);CSMA/CA用于无线局域网(无线)
  • 载波检测方式不同:CSMA/CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化;CSMA/CA采用 能量检测(ED)、载波检测(CS)和能量载波混合检测三种检测信道空闲的方式

以上是关于数据链路层-第五节2:随机访问介质控制的主要内容,如果未能解决你的问题,请参考以下文章

计算机网络第五章 数据链路层

数据链路层概述

TCP/ip--基础知识

网络层-第五节2:OSPF协议与链路状态算法

数据链路层-第五节:点对点协议PPP

计算机网络-介质访问控制子层-数据链路层交换