更新时间:2023-05-17 09:00
截断二进制指数退避(Truncated Binary Exponential Back—off,TBEB)算法,原理是让发生碰撞的站点在停止发送后,不是立即再发送数据,而是退避一个随机的时间,降低重传时发生冲突的概率。
在以太网中,每一个站在自己发送数据之后的一小段时间内,存在着遭遇碰撞的可能性,因此以太网不能保证某一时间之内一定能够把自己的数据帧成功的发送出去。以太网的这一特点为发送的不确定性。如果希望在以太网上发生碰撞的机会很小,必须使整个以太网的平均通信量远小于以太网的最高数据率。
总线上的单程端到端传播时延记为 ,以太网的端到端往返时间2 称为争用期。这是因为一个站在发送完数据后,只有通过争用期的“考验”,即经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。如概述图所示,传输的数据帧发生碰撞。以太网使用截断二进制指数退避(truncated binary exponential backoff)算法来解决碰撞问题。
截断二进制指数退避算法,具体的算法是:
(1)当站点发送的数据包冲突时,站点的退避延时取值范围(竞争窗口,CW)按2的指数增大,即k=2^i,i是冲突站点的重发次数(i=1,2,3,...)。
(2)冲突站点取(1,2^i)中的一个随机整数作为其退避时间。若再次发生冲突,则使i=i+1,并重复上述延迟过程,直到冲突分解成功。
(3)为保证信道利用效率,算法规定i的最大值为10,即最大时隙窗口为1024。
(4)算法规定最大重复次数为16,当冲突站点的分解次数超过16次仍然存在冲突站点时就认为分解失败,后几次冲突分解的窗口大小保持1024不变。
当重复次数达16,仍未能成功发送时,就丢弃该帧,并向高层报告。
例如,在第1次重传时,k=1,随机数r从整数{0,1}中选一个数。因此重传推迟的时间是0或争用期,在这两个时间中随机选择一个。
若再发生碰撞,则重传时,k=2,随机数r就从整数{0,1,2,3}中选一个数。因此重传推迟的时间是在0,2 ,4 和6 这4个时间中随机抽取一个。
同样,若在发生碰撞,则重传时k=3,随机数r就从整数{0,1,2,3,4,5,6,7}中选一个数。以此类推。
截断二进制指数退避算法容易实现。若连续多次发生冲突,就表明可能有较多的站参与争用信道。使用截断二进制指数退避算法可使重传需要推迟的平均时间随重传次数而增大(这也称为动态退避),因而减小发生碰撞的概率,有利于整个系统的稳定。
当网络负载重时,尤其是在实时性要求较高的网络中,信道的利用率就比较低,时延较大并且抖动较严重,不能有效处理动态网络中业务的突发性。影响系统的短期吞吐量和长期延迟方差。