數據鏈路層中的最小幀長是如何計算出來的
眾所周知,Ethernet的最小幀長是64 Byte。那么這個最小幀長是如何得到的呢?
數據碰撞問題
當多個主機掛載在bus型半雙工信道上時我們都會存在一個信道爭用問題,為解決這個問題我們發明了CSMA/CD協議。
當兩個主機同時在bus型半雙工信道上發送數據就會產生數據碰撞。數據發送過程如圖所示
我們假設單向傳播時延為 t ,圖中發生數據碰撞時,A知道碰撞檢測的時間為 2 t1 ,而B檢測到碰撞的時間為 2 t2。
t = t1 + t2
最差的情況下,當A即將到達B時,B才發送數據,此時發生碰撞。所以最遲我們檢測到數據碰撞的時間是 2t
如何確定最小幀長
因為如果我們自身數據全部發完后才檢測到數據則數據會被誤認為是正常的數據而被接收,所以我們要確保我們還沒有發完數據時就檢測到碰撞。
因此根據上面的時延計算,我們可以得出 幀長 / 數據傳輸速率 >= 2 t
最小幀長 = 數據傳輸速率 x 傳播時延 x 2