資源描述:
《udt協(xié)議-基于udp的可靠數(shù)據(jù)傳輸協(xié)議》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、1.??介紹隨著網(wǎng)絡(luò)帶寬時延產(chǎn)品(BDP)的增加,通常的TCP協(xié)議開始變的低效。這是因?yàn)樗腁IMD(additiveincreasemultiplicativedecrease)算法徹底減少了TCP擁塞窗口,但不能快速的恢復(fù)可用帶寬。理論上的流量分析表明TCP在BDP增加到很高的時候比較容易受包損失攻擊。另外,繼承自TCP擁塞控制的不公平的RTT也成為在分布式數(shù)據(jù)密集程序中的嚴(yán)重問題。擁有不同RTT的并發(fā)TCP流將不公平地分享帶寬。盡管在小的BDP網(wǎng)絡(luò)中使用通常的TCP實(shí)現(xiàn)來相對平等的共享帶寬,但在擁有大量BDP的網(wǎng)絡(luò)中,通常的基于TCP的程序就必須承受嚴(yán)重的不公平的問題。
2、這個RTT基于的算法嚴(yán)重的限制了其在廣域網(wǎng)分布式計(jì)算的效率,例如:internet上的網(wǎng)格計(jì)算。一直到今天,對標(biāo)準(zhǔn)的TCP的提高一直都不能在高BDP環(huán)境中效率和公平性方面達(dá)到滿意的程度(特別是基于RTT的問題)。例如:TCP的修改,RFC1423(高性能擴(kuò)展),RFC2018(SACK)、RFC2582(NewReno)、RFC2883(D-SACK)、和RFC2988(RTO計(jì)算)都或多或少的提高了點(diǎn)效率,但最根本的AIMD算法沒有解決。HSTCP(RFC3649)通過根本上改變TCP擁塞控制算法來在高BDP網(wǎng)絡(luò)中獲得高帶寬利用率,但公平性問題仍然存在??紤]到上面的背景,需
3、要一種在高BDP網(wǎng)絡(luò)支持高性能數(shù)據(jù)傳輸?shù)膫鬏攨f(xié)議。我們推薦一個應(yīng)用程序級別的傳輸協(xié)議,叫UDT或基于UDP的數(shù)據(jù)傳輸協(xié)議并擁有用塞控制算法。本文描述兩個正交的部分,UDP協(xié)議和UDT擁塞控制算法。一個應(yīng)用層級別的協(xié)議,位于UDP之上,使用其他的擁塞算法,然而這些本文中描述的算法也可以在其他協(xié)議中實(shí)現(xiàn),例如:TCP。一個協(xié)議的參考實(shí)現(xiàn)叫[UDT];詳細(xì)的擁塞控制算法的性能分析在[GHG04]中可以找到。2.??設(shè)計(jì)目標(biāo)UDT主要用在小數(shù)量的bulk源共享富裕帶寬的情況下,最典型的例子就是建立在光纖廣域網(wǎng)上的網(wǎng)格計(jì)算,一些研究所在這樣的網(wǎng)絡(luò)上運(yùn)行他們的分布式的數(shù)據(jù)密集程序,例如,
4、遠(yuǎn)程訪問儀器、分布式數(shù)據(jù)挖掘和高分辨率的多媒體流。UDT的主要目標(biāo)是效率、公平、穩(wěn)定。單個的或少量的UDT流應(yīng)該利用所有高速連接提供的可用帶寬,即使帶寬變化的很劇烈。同時,所有并發(fā)的流必須公平地共享帶寬,不依賴于不同的帶寬瓶勁、起始時間、RTT。穩(wěn)定性要求包發(fā)送速率應(yīng)該一直會聚可用帶寬非???,并且必須避免擁塞碰撞。UDT并不是在瓶勁帶寬相對較小的和大量多元短文件流的情況下用來取代TCP的。UDT主要作為TCP的朋友,和TCP并存,UDT分配的帶寬不應(yīng)該超過根據(jù)MAX-MIN規(guī)則的最大最小公平共享原則。(備注,最大最小規(guī)則允許UDT在高BDP連接下分配TCP不能使用的可用帶寬)
5、。我們3.??協(xié)議說明3.1.概述UDT是雙工的,每個UDT實(shí)體有兩個部分:發(fā)送和接收。發(fā)送者根據(jù)流量控制和速率控制來發(fā)送(和重傳)應(yīng)用程序數(shù)據(jù)。接收者接收數(shù)據(jù)包和控制包,并根據(jù)接收到的包發(fā)送控制包。發(fā)送和接收程序共享同一個UDP端口來發(fā)送和接收。接收者也負(fù)責(zé)觸發(fā)和處理所有的控制事件,包括擁塞控制和可靠性控制和他們的相對機(jī)制,例如RTT估計(jì)、帶寬估計(jì)、應(yīng)答和重傳。UDT總是試著將應(yīng)用層數(shù)據(jù)打包成固定的大小,除非數(shù)據(jù)不夠這么大。和TCP相似的是,這個固定的包大小叫做MSS(最大包大?。?。由于期望UDT用來傳輸大塊數(shù)據(jù)流,我們假定只有很小的一部分不規(guī)則的大小的包在UDTsessi
6、on中。MSS可以通過應(yīng)用程序來安裝,MTU是其最優(yōu)值(包括所有包頭)。UDT擁塞控制算法將速率控制和窗口(流量控制)合并起來,前者調(diào)整包的發(fā)送周期,后者限制最大的位被應(yīng)答的包。在速率控制中使用的參數(shù)通過帶寬估計(jì)技術(shù)來更新,它繼承來自基于接收的包方法。同時,速率控制周期是估計(jì)RTT的常量,流控制參數(shù)依賴于對方的數(shù)據(jù)到達(dá)速度,另外接收端釋放的緩沖區(qū)的大小。??3.2.包結(jié)構(gòu)UDT有兩種包:數(shù)據(jù)包和控制包。他們通過包頭的第一位來區(qū)分(標(biāo)志位)。如果是0,表示是數(shù)據(jù)包,1表示是控制包。3.2.1.???數(shù)據(jù)包????數(shù)據(jù)包結(jié)構(gòu)如下顯示:01340123456789012345678
7、90123456789010包序號應(yīng)用數(shù)據(jù)包序號是UDT數(shù)據(jù)包頭中唯一的內(nèi)容。它是一個無符號整數(shù),使用標(biāo)志位后的31位,UDT使用包基礎(chǔ)的需要,例如,每個非重傳的包都增加序號1。序號在到達(dá)最大值2^31-1的時候覆蓋。緊跟在這些數(shù)據(jù)后面的是應(yīng)用程序數(shù)據(jù)。3.2.2.???控制包控制包結(jié)構(gòu)如下:0134012345678901234567890123456789011類型保留ACK序號控制信息字段有6種類型的控制包在UDT中,bit1-3表示這些信息。前32位在包頭中必須存在??刂菩畔⒆侄伟?(例如,它