【計算機網絡】-網絡層-擁塞控制
擁塞
擁塞控制是網絡層和傳輸層一起工作的責任,網絡中出現太多的數據包時,網絡的性能開始急劇下降,這種情況稱為擁塞
擁塞產生原因
- 多個輸入對應一個輸出
- 慢速處理器,難以完成必要的維護工作
- 低帶寬線路
解決辦法
- 針對某個因素的解決方案,通常不會有明顯的效果,甚至僅僅是轉移了瓶頸
- 需要全面考慮各個因素
普遍准則
- 監視系統並檢測何時何地發生擁塞
- 將信息傳遞到可以采取措施的地方
- 調整系統操作以糾正問題
流量控制的途徑(important)
對應書p304
流量感知路由->准入控制->流量限制->負載脫落
- 網絡必須盡力提供所提供的負載
- 不同時間尺度的不同方法
- 節點還應減少提供的負載(傳輸)
擁塞控制與流量控制的差別
擁塞控制(congestion control)
確保子網能夠承載所達到的流量
是一個全局性問題,涉及各方面的行為,包括所有的主機、所有的路由器內部的存儲-轉發處理過程、所有可能會消弱子網承載容量的其它因素
例:一個1Mbps的存儲-轉發網絡中,有1000台大型的計算機,其中的一半正試圖給另一半機器以100kbps速率傳送文件。這里需要擁塞控制
流量控制(flow control)
只與特定的發送方和特定的接收方間的點到點流量有關
主要解決快速發送方與慢速接收方的問題,是局部問題,一般都是基於反饋進行控制的
舉例:在一個100Gbps的光纖網絡上,一台超級計算機試圖給一台PC傳送一個大文件,這台PC只有處理1Gbps速率的能力。這里沒有擁塞,但需要流量控制
擁塞控制的途徑
增加資源
- 啟動備用路由器或線路
- 分散流量
減少負載
- 若新的連接將導致網絡變得擁擠不堪,就應該拒絕這種新連接的建立,這種控制稱為准入控制
- 當擁塞已迫在眉睫時,網絡可給造成問題的數據包源端傳遞反饋信息,要求源端抑制它們的流量,或減緩流量本身
- 負載脫落
流量感知路由
- 繞開熱門的區域,疏散流量
- 可能會出現搖擺不定的問題,要加以控制
准入控制
除非網絡可以攜帶額外流量而不會變的擁塞,否則就不建立新的連接。
准入控制可以和流量感知路由相結合,在虛電路建立過程中,考慮繞開流量熱點區域的路由
流量調節
當擁塞迫在眉睫的時候,它必須告訴發送方緊急剎車放慢速度
抑制包(Choke Packets)
通知擁塞發送方的方法中,路由器選擇一個被擁塞的數據包,給該數據包的源主機返回一個抑制包,抑制包中的目的地址取自該擁塞數據包。同時,在原來的擁塞數據包上添加一個標記,它在前行的路徑上不會產生更多的抑制包,它的轉發過程如同平常一樣
源主機收到抑制包后,按一定比例減少發向特定目的地的流量,並在固定時間間隔內忽略指示同一目的地的抑制包。
逐跳的抑制包(Hop-by-Hop Choke Packets)
在高速或長距離的網絡中,由於源主機響應太慢,抑制包算法對擁塞控制的效果並不好,可采用逐跳抑制包算法;
基本思想
抑制包對它經過的每個路由器都起作用
能夠迅速緩解發生擁塞處的擁塞,但要求上游路由器有更多的緩沖區
負載脫落
以上任何一種方法都解決不了的時候,路由器來不及處理數據包而面臨被數據包淹沒的時候,直接將其丟棄。
當任何一種方法都不能消除擁塞的時候,路由器可以丟掉來不及處理的數據包
針對不同服務,可采取不同丟棄策略
文件傳輸,優先丟棄新數據包,wine策略
多媒體服務,優先丟棄舊數據包,milk策略
智能丟棄策略:數據包中標明優先級,當不得不丟棄數據包,路由器可首先丟棄重要性最輕一類數據包,然后是次重要一類數據包,以此類推。