端木占軍
廣域網(wǎng)中擁塞控制方法
端木占軍
計算機網(wǎng)絡吞吐量將隨輸入負荷的增大而下降,造成擁塞。本文提出的解決方案,可以有效進行控制,網(wǎng)絡不易出現(xiàn)擁塞現(xiàn)象和死鎖。
擁塞 死鎖 結(jié)點緩存 擁塞控制機制
計算機網(wǎng)絡中的網(wǎng)絡資源包括鏈路容量(即帶寬)、交換結(jié)點中的緩存和處理機速度。在某段時間,若對網(wǎng)絡中某一資源的需求超過了該資源所能提供的范圍,網(wǎng)絡的性能就要變壞,這種情況就叫做擁塞(congestion)。網(wǎng)絡擁塞往往是由許多因素引起的,如帶寬、結(jié)點緩存的容量、結(jié)點處理機的速度,及包的生存時間等。TCP擁塞控制機制包括慢啟動(slow start)、擁塞避免、快速重傳(fast retransmit)、快速恢復(fast recovery)、選擇性應答(SACK)等。通過在終端上對網(wǎng)絡的擁塞情況作出適當?shù)恼{(diào)整,可以大大提高網(wǎng)絡傳輸?shù)男阅?,減少擁塞發(fā)生的可能性。
圖一 網(wǎng)絡中擁塞控制的作用
在一個源IP主機和一個目標IP主機之間(單播)或者一個源IP主機和網(wǎng)絡中所有的IP主機之間(廣播)進行的?,F(xiàn)在要將信息發(fā)送給網(wǎng)絡中的多個而非所有IP主機,如果采用傳統(tǒng)的IP通信技術(shù)就有兩種方法可以選擇:要么采用廣播方式,要么由源IP主機分別向網(wǎng)絡中的多個目標IP主機單播發(fā)送IP包。廣播方式不僅會將信息發(fā)送給不需要的IP主機而浪費帶寬,也可能由于路由回環(huán)引起一場嚴重的廣播風暴。單播方式由于IP包的重復發(fā)送而白白浪費掉大量帶寬,同時也增加了服務器的負載。傳統(tǒng)網(wǎng)絡設(shè)備采用被動隊列管理PQM來管理網(wǎng)絡中間節(jié)點數(shù)據(jù)包的排隊,它采用FIFO的Drop-tail丟包策略,僅在輸入溢出時進行丟包,這種方式容易產(chǎn)生鎖外、滿列、全局同步等問題,可見傳統(tǒng)的IP通信技術(shù)不能有效地解決單點發(fā)送多點接收的問題。
3.2 圖一橫坐標是提供的負載(offered load),代表單位時間內(nèi)輸入給網(wǎng)絡的分組數(shù)目,因此,提供的負載也稱為輸入負載或網(wǎng)絡負載??v坐標是吞吐量(throughput),代表單位時間內(nèi)從網(wǎng)絡輸出的分組數(shù)目。具有理想擁塞控制的網(wǎng)絡,在吞吐量飽和之前,網(wǎng)絡吞吐量應等于提供的負載,故吞吐量曲線是45°的斜線。但當提供的負載超過某一限度時,由于網(wǎng)絡資源受限,吞吐量不再增長而保持為水平線,即吞吐量達到飽和,這就表明提供的負載中有一部分損失掉了(例如,輸入到網(wǎng)絡的某些分組被某個結(jié)點丟棄了)。死鎖(deadlock)。圖一顯示隨著提供的負載的增大,網(wǎng)絡吞吐量的增長速率逐漸減小。也就是說,在網(wǎng)絡吞吐量還未達到飽和時,就已經(jīng)有一部分的輸入分組被丟棄了。當網(wǎng)絡的吞吐量明顯地小于理想的吞吐量時,網(wǎng)絡就進入了輕度擁塞的狀態(tài)。更值得注意的是,當輸入負載達到某一數(shù)值時,網(wǎng)絡的吞吐量反而隨提供的負載的增大而下降,這時網(wǎng)絡就進入了擁塞狀態(tài)。當輸入的負載繼續(xù)增大到某一數(shù)值時,網(wǎng)絡的吞吐量就下降到零,網(wǎng)絡已無法工作。
3.3 使用擁塞控制算法。TCP是目前在互聯(lián)網(wǎng)中使用最廣泛的傳輸協(xié)議。廣義的來講,TCP擁塞控制的概念是每個源端判斷當前網(wǎng)絡中有多少可用容量,從而知道它可以安全完成傳送的分組數(shù)。一旦某個源端有這么多分組在傳送,它用確認(ACK)信號的到達表明它有一個分組已經(jīng)離開網(wǎng)絡,因而它不需要增加擁塞級別就可以安全地向網(wǎng)絡中發(fā)送一個新的分組,通過使用確認信息來協(xié)調(diào)分組的傳送,TCP稱為自同步(self-clocking)的。
3.4 目前TCP使用丟包作為隱式的擁塞指示信號,即發(fā)送方檢測到重復的ACK或者重傳超時的時候認為發(fā)生擁塞,這種機制在用于檢測擁塞時開銷較大,需要等待較長的周期才能發(fā)現(xiàn)擁塞,降低了擁塞控制的效率。為此,顯示擁塞通告算法ECN可以減少由于不比要的丟包產(chǎn)生的延時,其主要思想是通過路由器對擁塞的判斷,顯示的設(shè)置擁塞標記,發(fā)送端主機通過網(wǎng)絡中返回的帶擁塞反饋標記的包發(fā)現(xiàn)擁塞。
3.5 新的互聯(lián)網(wǎng)擁塞控制機制XCP。XCP(eXplicit Control Protocol)事實上是對ECN機制的一種擴充,它的主要思想是充分利用網(wǎng)絡中間節(jié)點對鏈路帶寬的認知,為端到端擁塞控制機制提供比是否發(fā)生擁塞更多和更有效的網(wǎng)絡帶寬提示,從而使控制機制能夠更快的適應當前的網(wǎng)絡狀況。
3.6 TCP中使用的擁塞控制算法已經(jīng)成為保證目前互聯(lián)網(wǎng)穩(wěn)定性的重要因素。
在擁塞控制時付出的代價就是:當輸入的負載較小時,有實際擁塞控制的吞吐量反而比無擁塞控制時要小。