【计算机网络】数据链路层 : CSMA/CD 协议 ( 载波监听多点接入 / 碰撞检测 协议 | 单程端到端传播时延 | 截断二进制指数规避算法 | 计算示例 | 最小帧长问题 )★
文章目錄
- 一、 CSMA/CD 協議
- 二、 傳播時延對于 載波監聽 的影響
- 三、 單程端到端傳播時延 相關概念
- 四、 碰撞后重傳時機 ( 截斷二進制指數規避算法 )
- 五、截斷二進制指數規避算法 計算示例
- 六、最小幀長問題
一、 CSMA/CD 協議
CSMA/CD 協議 :
① 全稱 : Carrier Sense Multiple Access With Collision Detection , 載波監聽多點接入 / 碰撞檢測 協議 ;
② CS : Carrier Sense , 載波監聽 , 每個站點 發送數據前 , 和 發送數據過程中 , 先檢測總線上是否有其它 站點 在發送數據 ;
③ MA : Multiple Access , 多點接入 , 多個 主機 連接在同一條 總線 上 ; 該協議 應用于 總線型網絡 中 ;
④ CD : Collision Detection , 碰撞檢測 , 適配器 一邊發送 , 一邊監聽 , 檢測信道上電壓變化 用于 判斷本站點發送數據 時 , 其它站點是否也在發送你數據 ; 由此可以看出 , 該協議用于 半雙工網絡 中 ;
電磁波傳輸時間導致沖突 : 先監聽了信道 , 但是還是會發生沖突 , 電磁波在信道上是以有限速度傳播的 , 如果電磁波沒有到本站點 , 當時檢測肯定是沒有信號 , 但是等到本站點向外發出數據時 , 突然檢測到有信號 , 這里電磁波傳輸的時間差 , 就造成了這種誤差 ;
ALOHA 協議 與 CSMA 協議 對比 :
-
ALOHA 協議 , 不聽就說 ;
-
CSMA 協議 , 先聽再說 ;
-
CSMA/CD 協議 , 先聽再說 , 邊聽邊說 ;
二、 傳播時延對于 載波監聽 的影響
傳播時延對于 載波監聽 的影響 :
① 前提 : 信道 兩端 是 A,BA, BA,B 兩臺主機 , 兩個站點 單程 端到端 , 電磁波 從 AAA 到 BBB 傳播 , 需要 ttt 納秒 ;
② AAA 發送數據到 BBB 一半 : 000 納秒 時刻 , AAA 向 BBB 發送數據時 , 預計 ttt 納秒后 , 到達到 BBB 站點 ;
③ BBB 發送數據到 AAA : BBB 在 t2\cfrac{t}{2}2t? 納秒 時刻 , 突然 AAA 發送數據 , 此時檢測到信道沒有電磁波 , 因為此時電磁波還沒有到達 BBB 站點 ; 因此檢測到信道沒有信號傳輸 ;
④ 出現沖突 : BBB 如果傳輸數據 , 肯定會在某時刻與 AAA 已經發送的數據 產生沖突 ; 此時時刻時 3t4\cfrac{3t}{4}43t? 納秒
⑤ 碰撞 : BBB 的信號 與 AAA 的信號疊加在一起 , 稱為碰撞 ; 此時兩個信號都被污染了 , 無法解析使用 ;
⑥ BBB 站點檢測到碰撞 : BBB 接收到 碰撞后的信號 , 校驗肯定不通過 , 出現幀錯誤 , 此時檢測到發生了碰撞 , BBB 站點暫停數據發送 ; 該時刻是 ttt 納秒 ;
⑦ AAA 站點檢測到碰撞 : AAA 接收到 碰撞后的信號 , 校驗肯定不通過 , 出現幀錯誤 , 此時檢測到發生了碰撞 , AAA 站點暫停數據發送 ; 此時時刻時 3t2\cfrac{3t}{2}23t? 納秒
三、 單程端到端傳播時延 相關概念
引入一組概念 :
① 單程端到端傳播時延 : 記作 τ\tauτ ;
② 碰撞檢測最長時間 : 站點發出數據后 , 最多 兩倍的 單程端到端時延 2τ2\tau2τ 后就可以得知出現了碰撞 ;
③ 2τ2\tau2τ 概念 : 又稱為 , 總線端到端往返傳播時延 , 爭用期 , 沖突窗口 , 碰撞窗口 ;
只要經過 2τ2\tau2τ 沒有檢測到碰撞 , 本次發送 , 一定沒有碰撞 ;
四、 碰撞后重傳時機 ( 截斷二進制指數規避算法 )
截斷二進制指數規避算法 :
① 爭用期 : 確定基本退避時間 , 也就是爭用期 , 兩倍的 單程端到端傳播時延 2τ2\tau2τ ;
② 重傳次數 : 定義參數 kkk , 一定程度上相當于重傳次數 ;
- kkk 公式 : kkk 取值不超過 101010 , 公式為 k=min(重傳次數,10)k=min( 重傳次數 , 10 )k=min(重傳次數,10) ;
- 當重傳次數 不超過 101010 時 : k=重傳次數k = 重傳次數k=重傳次數
- 當重傳次數 大于 101010 時 : k=10k=10k=10 ;
③ 取隨機數 : 從整數集合 [0,2k?1][0, 2^k - 1][0,2k?1] 中 , 取出隨機數 rrr , 重傳時間就是 r×2τr \times 2\taur×2τ ;
④ 重傳次數限制 : 當重傳 161616 次都失敗時 , 說明網絡擁塞嚴重 , 直接丟棄該幀 , 向上層報告出錯 ;
示例 :
① 第 111 次重傳 , k=1k=1k=1 , 從
[0,1][0, 1][0,1] 區間中 , 即 {0,1}\{ 0 , 1\}{0,1}
中隨機取一個值 , rrr ;
- 如果 r=0r = 0r=0 , 重傳時間是 000 ;
- 如果 r=1r = 1r=1 , 重傳時間是 2τ2\tau2τ ;
② 第 111 次重傳 , k=2k=2k=2 , 從
[0,3][0, 3][0,3] 區間中 , 即 {0,1,2,3}\{ 0 , 1 , 2 ,3\}{0,1,2,3}
中隨機取一個值 , rrr ;
- 如果 r=0r = 0r=0 , 重傳時間是 000 ;
- 如果 r=1r = 1r=1 , 重傳時間是 2τ2\tau2τ ;
- 如果 r=2r = 2r=2 , 重傳時間是 4τ4\tau4τ ;
- 如果 r=3r = 3r=3 , 重傳時間是 6τ6\tau6τ ;
③ 第 333 次重傳 , k=3k=3k=3 , 從
[0,7][0, 7][0,7] 區間中 , 即 {0,1,2,3,4,5,6,7}\{ 0 , 1 , 2 ,3 , 4, 5, 6, 7\}{0,1,2,3,4,5,6,7}
中隨機取一個值 , rrr ;
- 如果 r=0r = 0r=0 , 重傳時間是 000 ;
- 如果 r=1r = 1r=1 , 重傳時間是 2τ2\tau2τ ;
- 如果 r=2r = 2r=2 , 重傳時間是 4τ4\tau4τ ;
- 如果 r=3r = 3r=3 , 重傳時間是 6τ6\tau6τ ;
- 如果 r=4r = 4r=4 , 重傳時間是 8τ8\tau8τ ;
- 如果 r=5r = 5r=5 , 重傳時間是 10τ10\tau10τ ;
- 如果 r=6r = 6r=6 , 重傳時間是 12τ12\tau12τ ;
- 如果 r=7r = 7r=7 , 重傳時間是 14τ14\tau14τ ;
五、截斷二進制指數規避算法 計算示例
在 以太網 二進制回退算法中 , 碰撞 111111 次后 , 隨機數 rrr 的選擇范圍是多少 ???
隨機數 rrr 是根據 參數 kkk 確定的 , 參數 kkk 是重傳次數 和 101010 中較小的值 , 重傳次數 小于等于 101010 次時 , k=重傳次數k = 重傳次數k=重傳次數 , 重傳次數大于等于 111111 次時 , k=10k = 10k=10 ;
隨機數 rrr 的取值范圍是 [0,2k?1][0, 2^k - 1][0,2k?1] , 代入 k=10k=10k=10 ;
取值范圍是 [0,210?1][0 , 2^{10} - 1][0,210?1] , 隨機數 rrr 的 范圍 是 [0,1023][0 , 1023][0,1023] 之間的值 ;
六、最小幀長問題
檢測到碰撞時 , 需要暫停幀的發送 , 如果幀太短 , 就會導致一次性發送完畢 , 無法暫停 , 這里需要在檢測到碰撞時 , 幀還沒有發送結束 ;
幀的傳輸時延 至少要 大于 2τ2\tau2τ ;
幀的傳輸時延=幀長度(比特)數據傳輸速率幀的傳輸時延 = \cfrac{幀長度 ( 比特 )}{ 數據傳輸速率 }幀的傳輸時延=數據傳輸速率幀長度(比特)?
幀長度(比特)數據傳輸速率≥2τ\cfrac{幀長度 ( 比特 )}{ 數據傳輸速率 } \geq 2\tau數據傳輸速率幀長度(比特)?≥2τ
幀長度(比特)≥2τ×數據傳輸速率幀長度 ( 比特 )\geq 2\tau \times 數據傳輸速率幀長度(比特)≥2τ×數據傳輸速率
最小幀長度是 2τ×數據傳輸速率2\tau \times 數據傳輸速率2τ×數據傳輸速率 比特 ;
以太網 規定 最短幀長度是 64 字節 , 小于 64 字節的幀都是由于沖突終止的無效幀 ;
總結
以上是生活随笔為你收集整理的【计算机网络】数据链路层 : CSMA/CD 协议 ( 载波监听多点接入 / 碰撞检测 协议 | 单程端到端传播时延 | 截断二进制指数规避算法 | 计算示例 | 最小帧长问题 )★的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【计算机网络】数据链路层 : 信道划分
- 下一篇: 【计算机网络】数据链路层 : 轮询访问