Network Layer - Congestion Control

擁塞定義:當網絡中有包延時和包丟失,導致網絡和性能下降。網絡層和傳輸層都需要處理擁塞。

Congestion Control 和 Flow Control 區別

     Congestion Control:確保網絡能夠投遞數據包,涉及所有的主機和路由器。
     Flow Control: 確保接受方和發送方能夠正確地工作,保證快的發送方不會淹沒接收方。

擁塞控制的方法
  • 增加路由器,帶寬。
  • 改變路徑權重。如果某一條線路出現擁塞,就增加這條路徑的權重,讓數據報走其他路徑。
  • 准入控制。減少負載,拒絕新連接。這有兩個問題
    • 找出擁塞的源機
    • 如何通知擁塞源機減慢發包速度。
  • load shedding:如果以上策略失敗,就將數據報直接丟棄。這個方法的問題是丟什麼包?新包還是舊包?這取決於應用場景。

Traffic Throttling 交通控制

需要解決兩個問題
  • 路由器能夠預判擁塞
  • 路由器及時通知引起擁塞的源機。
擁塞通知源機的方法
  • choke packets:路由器發送choke packets給源機。源機接受到choke packets時,需要減少發包速度。
  • explicit Congestion notification:路由器不再另外發送choke packets,而是在發往源機的數據報標記ECN,源機幾首包標有ECN的數據包後,就需要主動減慢發包速度。
  • Hop by hop Backpressure:當路由器向源機發送Choke Packet是,沿途的路由器收到Choke Packet時,都主動減慢發包速度。而上面的“choke Packet”是源機收到Choke Packet時,主動減慢發包速度。從而導致下路的路由器包減少。

Random Early Detection

     大部分情況下,擁塞的主機不是用ECN標籤中獲知擁塞,而是從包的丟失上預感到擁塞的出現。
     RED策略大致如下:當排隊的包的大小達到一定閥值,路由器隨機丟棄一部分包。當源機發現包沒有被確認時,它會主動減慢發包速度。
     實際情況是RED比Load Shedding效果好。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章