大家好,又见面了,我是你们的朋友全栈君。
一、CSMA/CD过程
CSMA/CD就像在没有主持人的座谈会中,所有的参加者都通过一个共同的媒介(空气)来相互
交谈。每个参加者在讲话前,都礼貌地等待别人把话讲完。如果两个客人同时开始讲话,那么他们都
停下来,分别随机等待一段时间再开始讲话。这时,如果两个参加者等待的时间不同,冲突就不会出
现。如果传输失败超过一次,将采用退避指数增长时间的方法(退避的时间通过截断二进制指数退避
算法(truncated binary exponential backoff)来实现)。(摘自维基百科)
二、二进制指数退避算法
1)确定基本退避时间(基数),一般定为2τ,也就是一个争用期时间,对于以太网就是51.2μs
2)定义一个参数K,为重传次数,K=min[重传次数,10],可见K≤10
3)从离散型整数集合[0,1,2,……,(2^k-1)]中,随机取出一个数记做R
那么重传所需要的退避时间为R倍的基本退避时间:即:T=R×2τ。
4)同时,重传也不是无休止的进行,当重传16次不成功,就丢弃该帧,传输失败,报告给高层协议
三、举例
如果第二次发生碰撞:
n = 2
k = MIN(2,10) = 2
R = {0, 1, 2, 3)
延迟时间 = {0, 51.2 us, 102.4 us, 153.6 us} 其中任取一值
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/148094.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...