天天看點

重試中的指數退避算法

重試中的指數退避算法

退避算法:

      退避算法是在在單個信道的基于競争的媒體的一種通路控制(MAC)協定。每當一個以上的節點在同一時刻試圖通路媒體的時候,它會導緻分組碰撞。如果相撞的節點試圖再次通路信道,在節點做及時同步的時候資料包将發生碰撞。是以,節點需要時間位差。為了産生這種位差,退避算法(例如二進制指數退避(BEB)) 。例如,在BEB算法中,每當一個節點的傳輸涉及在與另一個節點的傳輸發生碰撞,兩個節點都将選擇一個随機的等待時間,在下次再次嘗試前需要等待選擇的随機時間。如果他們在這樣的嘗試都沒有成功,他們自己的競争視窗增加一倍,在發射前再次選擇等待一個随機時間。這個過程将被重複一定次數的嘗試。如果經過數次嘗試之後都失敗了,那麼其傳輸的資料包将被從傳輸隊列中移除。

      二進制退避技術(Binary Exponential Back off). 指在遇到重複的沖突時,站點将重複傳輸,但在每一次沖突之後,随着 時延 的平均值将加倍。二進制指數退避算法提供了一個處理重負荷的方法。嘗試傳輸的重複失敗導緻更長的退避時間,這将有助于負荷的平滑。如果沒有這樣的退避,以下狀況可能發生:兩個或多站點同時嘗試傳輸,這将導緻沖突,之後這些站點又立即嘗試重傳,導緻一個新沖突。

繼續閱讀