带有二进制指数退避的CSMA/CD
载波侦听多路访问/碰撞检测 (CSMA/CD) 是一种用于载波传输的网络协议,它工作在介质访问控制 (MAC) 层。它会检测或侦听共享传输信道是否繁忙,并在信道空闲之前推迟传输。
当多个站点同时发送帧时,就会发生冲突。后退算法是一种冲突解决机制,通常用于在以太网中冲突后安排重传。站点在尝试重传帧之前等待的时间称为后退时间。
CSMA/CD 算法
步骤 1) 当帧准备就绪时,发送站检查信道是空闲还是繁忙。
步骤 2) 如果信道繁忙,则站点等待直到信道空闲。
步骤 3) 如果信道空闲,则站点开始传输并持续监视信道以检测冲突。
步骤 4) 如果检测到冲突,则站点启动二进制指数退避算法。
步骤 5) 站点重置重传计数器并完成帧传输。
冲突情况下的二进制指数退避算法
步骤 1) 站点继续传输当前帧一段时间,同时发送干扰信号,以确保所有其他站点都检测到冲突。
步骤 2) 站点递增重传计数器 c,该计数器表示冲突次数。
步骤 3) 站点在 0 到 2c – 1 范围内选择一个随机时隙数。例如,在第一次冲突(即 c = 1)后,站点将等待 0 或 1 个时隙。在第二次冲突(即 c = 2)后,站点将等待 0 到 3 个时隙之间的任何时间。在第三次冲突(即 c = 3)后,站点将等待 0 到 7 个时隙之间的任何时间,依此类推。
步骤 4) 如果站点在 0 到 2c – 1 范围内选择了一个数字 𝑘,则
Back_off_time = k × 时隙时间,
其中时隙时间等于往返时间 (RTT)。
步骤 5) 在后退时间结束时,站点尝试通过继续使用 CSMA/CD 算法进行重传。
步骤 6) 如果达到最大重传尝试次数,则站点中止传输。
下面的流程图总结了这些算法。CMSA/CD 算法以绿色显示,而后退算法以栗色显示。
广告