路由器輔助的TCP擁塞控制技術之設計


Design of TCP Congestion Control Techniques by Router-assisted Approach


鍾永彬

隨著網路訊務流量的快速成長,如何妥善的運用網路資源是一個成功的擁塞控制機制要面對的根本問題。在終端設備上執行的TCP是網路上最廣為使用者使用的傳輸層協定,它有很多不同的版本被設計出來改進使用的效能,例如TCP Reno、TCP Vegas 等。由於TCP所棲身的終端設備並未具有網路內部狀態的資訊,大部份的TCP 擁塞控制機制僅能依賴封包遺失觸發擁塞控制機制,本研究提出TCP Muzha協定,藉由路由器協助,提供網路內部資訊給傳送端,在未發生擁塞前不需依賴封包遺失便可進行適度的傳輸速度控制,以減少因為封包遺失所造成劇烈的傳輸速度下降,並可更快速達到最佳傳輸速度。本研究的設計理念是設法尋找傳送路徑中的瓶頸,進而計算出瓶頸提供的可用頻寬,藉由瓶頸所提供的資訊動態的進行流量控制以充份利用頻寬並避免產生擁塞,增進整體的效能。本研究之重點在於路由器應提供何種資訊及如何運用所獲得的資訊進行動態速率調整。我們提出模糊化的多層級速率調整方法,藉著動態所獲得的細膩資訊做擁塞避免。最後於NS2平台實驗模擬,評估我們所提出的方法,實驗結果中顯示本方法能有效避免擁塞的產生,降低封包遺失,提升整體效能,和TCP Reno共存的環境下不因為TCP Reno侵略性的傳輸方式而降低過多的效能並保有較低的封包遺失率。

With the tremendous growth of Internet traffic, to utilize network resources efficiently is essential to a successful congestion control protocol. Transmission Control Protocol (TCP) is a widely used end-to-end transport protocol across the Internet. It has several enhencing versions (i.e. TCP Reno, TCP Vegas…) which intend to improve the drawbacks of the initial version of TCP. Most congestion control techniques use trial-and-error-based flow control to handle network congestion. In this paper, we propose a new method (TCP Muzha) that requires routers to feedback their status to the sender. Based on this information, the sender is able to adjust the sending data rate dynamically. Our approach can prevent data rate from decreasing dramatically due to packet loss. It can also help to increase the data rate quickly to where it supposes to be. Our design philosophy is to find out the bottleneck of the path, and its available bandwidth. Our goal is to increase network performance and avoid congestion by using the information obtained from the bottleneck. The design challenges are to determine which information is essential and how to use this information to dynamically adjust the data rate. We also propose the multi-level data rate adjustment method. Congestion can be avoided by dynamically adjusting data rate using this information. Finally, we use NS2 simulator to evaluate the performance of our approaches. The experiment results show that our method can avoid congestion before it actually happens, decrease packet-loss rate and increase the network utilization. In the fairness experiment, our method will only suffer a minor throughputs degradation when TCP Reno is coexisting.