UDT與UDP協議
關于UDP協議我們已經非常熟悉了。這里我們再來介紹一下UDT協議。這兩個協議在縮寫上面容易混淆,大家首先要區分清楚。那么接下來我們就來對這部分內容進行一下比較和區分吧。
1.介紹
隨著網絡帶寬時延產品(BDP)的增加,通常的TCP協議開始變的低效。這是因為它的AIMD(additive increase multiplicative decrease)算法徹底減少了TCP擁塞窗口,但不能快速的恢復可用帶寬。理論上的流量分析表明TCP在BDP增加到很高的時候比較容易受包損失攻擊。
另外,繼承自TCP擁塞控制的不公平的RTT也成為在分布式數據密集程序中的嚴重問題。擁有不同RTT的并發TCP流將不公平地分享帶寬。盡管在小的BDP網絡中使用通常的TCP實現來相對平等的共享帶寬,但在擁有大量BDP的網絡中,通常的基于TCP的程序就必須承受嚴重的不公平的問題。這個RTT基于的算法嚴重的限制了其在廣域網分布式計算的效率,例如:internet上的網格計算。
一直到今天,對標準的TCP的提高一直都不能在高BDP環境中效率和公平性方面達到滿意的程度(特別是基于RTT的問題)。例如:TCP的修改,RFC1423(高性能擴展),RFC2018(SACK)、RFC2582(New Reno)、RFC2883(D-SACK)、和RFC2988(RTO計算)都或多或少的提高了點效率,但最根本的AIMD算法沒有解決。HS TCP(RFC 3649)通過根本上改變TCP擁塞控制算法來在高BDP網絡中獲得高帶寬利用率,但公平性問題仍然存在。
考慮到上面的背景,需要一種在高BDP網絡支持高性能數據傳輸的傳輸協議。我們推薦一個應用程序級別的傳輸協議,叫UDT或基于UDP的數據傳輸協議并擁有用塞控制算法。
本文描述兩個正交的部分,UDP協議和UDT擁塞控制算法。一個應用層級別的協議,位于UDP之上,使用其他的擁塞算法,然而這些本文中描述的算法也可以在其他協議中實現,例如:TCP。
一個協議的參考實現叫[UDT];詳細的擁塞控制算法的性能分析在[GHG04]中可以找到。
2.設計目標
UDT主要用在小數量的bulk源共享富裕帶寬的情況下,最典型的例子就是建立在光纖廣域網上的網格計算,一些研究所在這樣的網絡上運行他們的分布式的數據密集程序,例如,遠程訪問儀器、分布式數據挖掘和高分辨率的多媒體流。
UDT的主要目標是效率、公平、穩定。單個的或少量的UDT協議流應該利用所有高速連接提供的可用帶寬,即使帶寬變化的很劇烈。同時,所有并發的流必須公平地共享帶寬,不依賴于不同的帶寬瓶勁、起始時間、RTT。穩定性要求包發送速率應該一直會聚可用帶寬非常快,并且必須避免擁塞碰撞。
UDT并不是在瓶勁帶寬相對較小的和大量多元短文件流的情況下用來取代TCP的。
UDT主要作為TCP的朋友,和TCP并存,UDT協議分配的帶寬不應該超過根據MAX-MIN規則的最大最小公平共享原則。(備注,最大最小規則允許UDT在高BDP連接下分配TCP不能使用的可用帶寬)。