二進制指數退避算法


2019/12/18

二進制指數退避算法(來自於百度百科)

  CSMA/CD采用二進制指數退避算法,又稱為二元指數后退算法。退避算法是以沖突窗口大小為基准的,每個節點有一個沖突計數器C。退避的時間與沖突次數具有指數關系,沖突次數越多,退避的時間就可能越長,若達到限定的沖突次數,該節點就停止發送數據。

 

 

 定義

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

應用

 

CSMA/CD協議中,一旦檢測到沖突,為降低再沖突的概率,需要等待一個隨機時間,然后再使用CSMA方法試圖傳輸。為了保證這種退避維持穩定,采用了二進制指數退避算法的技術,其算法過程如下:

 

1.確定基本退避時間,一般為端到端的往返時間為2t,2t也稱為沖突窗口或爭用期。

 

2. 定義參數k,k與沖突次數有關,規定k不能超過10,k=Min[沖突次數,10]。在沖突次數大於10,小於16時,k不再增大,一直取值為10。

 

3. 從離散的整數集合[0,1,2,……,(2k-1)]中隨機的取出一個數r,等待的時延為r倍的基本退避時間,等於r x 2t。r的取值范圍與沖突次數k有關,r可選的隨機取值為2k個、這也是稱為二進制退避算法的起因。

 

4.當沖突次數大於10以后,都是從0—210-1個2t中隨機選擇一個作為等待時間。

 

5. 當沖突次數超過16次后,發送失敗,丟棄傳輸的幀,發送錯誤報告。

 

舉例

 

如果第二次發生碰撞:

 

n = 2

 

k = MIN(2,10) = 2

 

R = {0, 1, 2, 3)

 

延遲時間 = R * 512 * Bit-time

 

其中:Bit-time = 1 / Debit

 

例如:

 

對於傳輸速率Debit = 10 Mbit/s,

 

那么Bit-time = 0.1 us

 

延遲時間={0, 51.2 us, 102.4 us, 153.6 us} 其中任取一

---內容來源於百度百科


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM