载波监听多址接入/碰撞检测 CSMA/CD(carrier sense multiple access/ collision detection)
概念解析
在总线局域网使用的协议
多址接入MA : 多个站连接在同一条线上,竞争使用总线。
载波监听CS : 每一个站在发送帧之前都要检测一下总线上是否有其他站点在发送帧(”先听后说“)
若检测到总线空闲96比特时间,则发送这个帧
若检测到总线忙,则继续检测并等待总线转为空闲96比特时间,然后发送这个帧
碰撞检测CD : 每一个正在发送帧的站边发送边检测碰撞(”边说边听“)
一但发生碰撞,则停止发送,退避一段时间后再发送(“一旦冲突,立即停说,等待时机,重新再说”)
对于碰撞,以太网采取了一种叫做强化碰撞的措施,当发送帧的站点一旦检测到碰撞,除了立即停止发送帧之外,还需要再发送32比特或者48比特的人为干扰信号,为了让所有的站点都检测出碰撞
争用期
争用期=d / 传播速度
-
主机最多经过2τ的时间检测到本次发送是否发生碰撞
-
以太网的端到端往返传播时延2τ称之为争用期或碰撞窗口
-
如何确定不会发生碰撞
经过一个完整的争用期但并未检测到碰撞
-
共享式以太网不能连接太多的主机,使用的总线也不能太长否则导致碰撞的概率大
最小帧长
最小帧长=争用期 * 数据传输速率
使用CSMA/CD协议的以太网帧长不能太短,会导致数据丢失。
以太网规定最小帧长为64字节,即512个比特(512比特的时间即为争用期)
当发送的数据不足以64字节时,加入填充字节使其帧长不小于64字节
以太网的最小帧长确保了主机可在帧发送完之前就检测到该帧的发送过程之中是否遭受到了碰撞
因此可以推出,如果在争用期,没有检测到碰撞,那么后续发送的数据就一定不会发生碰撞
且,检测到碰撞之后,停止发送,数据一定小于64字节,因此,长度小于64字节的帧都是由于碰撞而异常中止的无效帧
最大帧长
根据规定不同,所具有的最大帧长不同,但是最小帧长一样
退避时间的计算方法——截断二进制指数退避算法
退避时间=基本退避时间×随机数r
其中基本退避时间为2τ,
eg:
若是发生多次碰撞,就表明有许多的主机参与竞争信道
但是退避算法使得重传需要推迟的平均时间随着重传次数而增大(称之为动态退避),因而减少发生碰撞的概率,有利于整个系统的稳定。
最高的重传次数为24=16次,当不能成功时,丢弃该帧
信道利用率
考虑以下理想情况之后所有的极限信道利用率为
-
各主机发送帧都不胡碰撞
-
总线一旦空闲就有某个主机立即发送帧
-
发送一帧占用总线的时间为T0+τ,而帧本身的发送时间就是T0
其极限信道利用率为
参数a的值尽量小,以提高信道利用率
以太网端到端的距离受到限制
以太网的帧的长度应尽量长一点