课程视频https://www.bilibili.com/video/BV19E411D78Q/?p=35 CSMA/CD协议,意思是载波监听多点接入/碰撞检测,属于共享信道中动态媒体接入控制的随机接入的协议,即所有用户可以随机发送信息,发送信息时占用全部信道带宽。 CSMA/CD口诀:先听后发;边听边发;冲突停止;随机重发
检测信道。不管在发送前还是发送后,每个站都必须不停地检测信道,检查是否有其他的计算机在发送数据。
总线型网络,即计算机以多点接入地方式连接在一根总线上。
半双工网络“边发送边监听”,即适配器边发送数据边检测信道上地信号电压地变化情况,以便于判断自己在发送数据时其他站是否也在发送数据。当几个站同时在总线上发送数据时,总线上的信号电压变化幅度将会增大(互相叠加),当适配器检测到地信号电压变化幅度超过一定地门限值时,就认为总线上至少有两个站同时发送数据,即产生了冲突或碰撞。
因为电磁波在总线上总是以有限的速率传播的。
设局域网两端站A和站B相距1km,用同轴电缆相连。电磁波在1km电缆的传播时延约为5us。因此,A向B发出的数据,在约5us后才能传送到B。如果B在A发送的数据到达前发送数据,这是B的载波监听检测不到A发送的信息,就一定会在某个时间A的帧和B的帧碰撞。产生碰撞之后,A和B分别对数据进行差错控制,一定会检测到所接收到的数据出现错误,而碰撞之后接收的数据发生错误,这两个帧都会变得无用,A和B站也会停发数据,不让这个错误继续下去。
在局域网的分析中,常把总线上的单程端到端传播时延记为τ
发送的数据站希望尽早知道是否发生了碰撞,最多要经过的时间是两倍的总线端到端的传播时延(2τ),或总线的端到端往返传播时延,也称为争用期/冲突窗口/碰撞窗口 只要经过2τ时间还没有检测到碰撞,就能肯定这次发送不会发生碰撞 经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
以太网使用截断二进制指数退避算法来确定碰撞后重传的时机。这种算法让发生碰撞的站在停止发送数据后,不是等待信道变成空闲后就立即重新发送数据,而是推迟(避让)一个随机的时间。
如果几个发生碰撞的站都在监听信道,那么都会同时发现信道变成了空闲。如果在此时都同时重新发送,那么一定会又发生碰撞
——帧的传输时延至少要两倍的信号在总线中的传播时延——
%为什么要设置最小帧长???% 如果某一个站发送了一个很短的帧,假定这个帧在继续向前传播到达目的站之前和别的站发送的帧发生了碰撞,因而目的站点接收到错误的帧,然后将该帧丢弃。而发送站不知道这个帧发生了碰撞,因而不会重传此帧。
最小帧长的计算: 以太网规定的最小帧长为64B,即512bit。凡是长度小于64B的都是由于冲突而异常终止的无效帧。只要接收到这种无效帧,就应当立即丢弃。
最小帧长相关例题请跳转到计算机网络——CSMA/CD最小帧长相关题目
协议规定了基本推迟时间为争用期2τ,具体的争用期时间是51.2us。对于10Mbit/s以太网,在争用期内可发送512bit,即64字节,也可以说争用期是512比特时间。
当发送数据的站点一旦发生了碰撞,除了立即停止发送数据外,还需要再继续发送32比特或者48比特的人为干扰信号,以便于让所有用户都知道现在已经发生了碰撞
T1:A站从发送数据开始到检测到碰撞并停止发送的时间间隔 T2:A站得知碰撞已经发生时发送的强化碰撞的干扰信号的持续时间 发生碰撞使A浪费的时间:T1+T2 整个信道被占用的时间:T1+T2+τ为了使刚刚收到数据帧的目的站点清理接收缓存,做好接收下一帧的准备,以太网规定了帧间最小间隔9.6us,相当于96比特时间。
在发送数据帧之前,先要检测信道。适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中。
若检测到信道忙,就不停的检测信道,一直等待信道转为空闲。 若检测到信道为空闲,并在96比特时间内信道保持空闲(保证了帧间最小间隔),就发送这个帧。
发送成功 在争用期内一直未检测到碰撞,那么这个帧肯定能发送成功。
发送失败 (1)在争用期内检测到碰撞,这时立即停止发送数据,按照规定发送人为干扰信号 (2)适配器执行截断二进制指数退避算法,等待r倍的512比特时间后,返回步骤2继续检测信道 (3)若重传16次仍不能成功,则停止重传向上报错
以太网每发完一个帧,一定要把已发送的帧暂时保留一下。如果在争用期内检测出发生了碰撞,那么还要再推迟了一段时间后再把这个帧重传一次。
