




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、UDT協(xié)議-基于UDP的可靠數(shù)據(jù)傳輸協(xié)議分類 : 其他 發(fā)布時間 : 2006-09-01 11:13:03 來源 : 技術文檔大全 UDT協(xié)議-基于UDP的可靠數(shù)據(jù)傳輸協(xié)議UDT協(xié)議-基于UDP的可靠數(shù)據(jù)傳輸協(xié)議 1. 介紹 隨著網(wǎng)絡帶寬時延產(chǎn)品(BDP)的增加,通常的TCP協(xié)議開始變的低效。這是因為它的AIMD(additive increase multiplicative decrease)算法徹底減少了TCP擁塞窗口,但不能快速的恢復可用帶寬。理論上的流量分析表明TCP在
2、BDP增加到很高的時候比較容易受包損失攻擊。 另外,繼承自TCP擁塞控制的不公平的RTT也成為在分布式數(shù)據(jù)密集程序中的嚴重問題。擁有不同RTT的并發(fā)TCP流將不公平地分享帶寬。盡管在小的BDP網(wǎng)絡中使用通常的TCP實現(xiàn)來相對平等的共享帶寬,但在擁有大量BDP的網(wǎng)絡中,通常的基于TCP的程序就必須承受嚴重的不公平的問題。這個RTT基于的算法嚴重的限制了其在廣域網(wǎng)分布式計算的效率,例如:internet上的網(wǎng)格計算。 一直到今天,對標準的TCP的提高一直都不能在高BDP環(huán)境中效率和公平性方面達到滿意的程度(特別是基于RTT的問題)。例如:TCP的修改,RFC1423(高性能擴展),RFC2018(
3、SACK)、RFC2582(New Reno)、RFC2883(D-SACK)、和RFC2988(RTO計算)都或多或少的提高了點效率,但最根本的AIMD算法沒有解決。HS TCP(RFC 3649)通過根本上改變TCP擁塞控制算法來在高BDP網(wǎng)絡中獲得高帶寬利用率,但公平性問題仍然存在。 考慮到上面的背景,需要一種在高BDP網(wǎng)絡支持高性能數(shù)據(jù)傳輸?shù)膫鬏攨f(xié)議。我們推薦一個應用程序級別的傳輸協(xié)議,叫UDT或基于UDP的數(shù)據(jù)傳輸協(xié)議并擁有用塞控制算法。 本文描述兩個正交的部分,UDP協(xié)議和UDT擁塞控制算法。一個應用層級別的協(xié)議,位于UDP之上,使用其他的擁塞算法,然而這些本文中描述的算法也可以在
4、其他協(xié)議中實現(xiàn),例如:TCP。 一個協(xié)議的參考實現(xiàn)叫UDT;詳細的擁塞控制算法的性能分析在GHG04中可以找到。 2. 設計目標 UDT主要用在小數(shù)量的bulk源共享富裕帶寬的情況下,最典型的例子就是建立在光纖廣域網(wǎng)上的網(wǎng)格計算,一些研究所在這樣的網(wǎng)絡上運行他們的分布式的數(shù)據(jù)密集程序,例如,遠程訪問儀器、分布式數(shù)據(jù)挖掘和高分辨率的多媒體流。 UDT的主要目標是效率、公平、穩(wěn)定。單個的或少量的UDT流應該利用所有高速連接提供的可用帶寬,即使帶寬變化的很劇烈。同時,所有并發(fā)的流必須公平地共享帶寬,不依賴于不同的帶寬瓶勁、起始時間、RTT
5、。穩(wěn)定性要求包發(fā)送速率應該一直會聚可用帶寬非??欤⑶冶仨毐苊鈸砣鲎?。 UDT并不是在瓶勁帶寬相對較小的和大量多元短文件流的情況下用來取代TCP的。 UDT主要作為TCP的朋友,和TCP并存,UDT分配的帶寬不應該超過根據(jù)MAX-MIN規(guī)則的最大最小公平共享原則。(備注,最大最小規(guī)則允許UDT在高BDP連接下分配TCP不能使用的可用帶寬)。我們 3. 協(xié)議說明 UDT是雙工的,每個UDT實體有兩個部分:發(fā)送和接收。發(fā)送者根據(jù)流量控制和速率控制來發(fā)送(和重傳)應用程序數(shù)據(jù)。接收者接收數(shù)據(jù)包和控制包,并根據(jù)接收到的包發(fā)送控制包。發(fā)送和
6、接收程序共享同一個UDP端口來發(fā)送和接收。 接收者也負責觸發(fā)和處理所有的控制事件,包括擁塞控制和可靠性控制和他們的相對機制,例如RTT估計、帶寬估計、應答和重傳。 UDT總是試著將應用層數(shù)據(jù)打包成固定的大小,除非數(shù)據(jù)不夠這么大。和TCP相似的是,這個固定的包大小叫做MSS(最大包大小)。由于期望UDT用來傳輸大塊數(shù)據(jù)流,我們假定只有很小的一部分不規(guī)則的大小的包在UDT session中。MSS可以通過應用程序來安裝,MTU是其最優(yōu)值(包括所有包頭)。 UDT擁塞控制算法將速率控制和
7、窗口(流量控制)合并起來,前者調(diào)整包的發(fā)送周期,后者限制最大的位被應答的包。在速率控制中使用的參數(shù)通過帶寬估計技術來更新,它繼承來自基于接收的包方法。同時,速率控制周期是估計RTT的常量,流控制參數(shù)依賴于對方的數(shù)據(jù)到達速度,另外接收端釋放的緩沖區(qū)的大小。 UDT有兩種包:數(shù)據(jù)包和控制包。他們通過包頭的第一位來區(qū)分(標志位)。如果是0,表示是數(shù)據(jù)包,1表示是控制包。 . 數(shù)據(jù)包 數(shù)據(jù)包結構如下顯示: 0
8、160; 1 3 4 0 1
9、;2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 包序號 應用數(shù)據(jù) 包序號是UDT數(shù)據(jù)包頭中唯一的內(nèi)容。它是一個無符號整數(shù),使用標志位后的31位,UDT使用包基礎的需要,例如,每個非重傳的包都增加序號1。序號在到達最大值231-1的時候覆蓋。緊跟在這些數(shù)據(jù)后面的是應用程序數(shù)據(jù)。 . 控制包 控制包
10、結構如下: 0 1 3 &
11、#160; 4 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 1 類型 保留 ACK序號 控制信息字段 有6種類型的控制包在UDT中,bit1-3表示這些信息。前32位在包頭中
12、必須存在??刂菩畔⒆侄伟?(例如,它不存在)或者多個32位無符號整數(shù),這由包類型決定。 UDT使用應答子序號的方法。每個ACK/ACK2包有一個無符號的16位序號,它獨立于數(shù)據(jù)包需要。它使用位16-31。應答需要從0到(216-1)。位16-31在其他控制包中沒有定義。 類型 說明 控制信息 000 協(xié)議連接握手 132位 UDT版本 232位內(nèi)部順序號 332位 MSS(字節(jié)) 432位最大流量窗口大?。ㄗ止?jié)) 001 保活 沒有 010 應答,位16-31是應答序號 132位包序號,先前接收到的包序號 232位,RTT(微秒) 332位,RTT 變量或者RTT
13、Var (微秒) 432位,流量窗口大?。ò臄?shù)量) 532位,連接容量估計(每秒包的數(shù)量) 011 Negative應答(NAK) 丟失信息的32位整數(shù)數(shù)組,見3.9節(jié) 100 保留 這種類型的控制信息保留作為擁塞警告使用,從接收到發(fā)送端。一個擁塞警告能被ECN或包延遲增加趨勢的度量方法觸發(fā)。 101 關閉 110 應答一個應答(ACK2) 16-31位,應答序號。 111 4-15的解釋 保留將來使用 注意,對于數(shù)據(jù)和控制包來說,可以從UDP協(xié)議頭中得到實際的包大小。包大小信息能被用來得到有效的數(shù)據(jù)負載和NAK包中的控制信息字段大小。 UDT在接收端使用4個定時
14、器來觸發(fā)不同的周期事件,包括速率控制、應答、丟失報告(negative應答)和重傳/連接維護。 UDT中的定時器使用系統(tǒng)時間作為源。UDT接收端主動查詢系統(tǒng)時間來檢查一個定時器是否過期。對于某個定時器T來說,其擁有周期TP,將定變量t用來記錄最近T被設置或復位的時間。如果T在系統(tǒng)時間t0(t= t0)被復位,那么任何t1(t1-t>=TP)是T過期的條件。 四個定時器是:RC定時器、ACK定時器、NAK定時器、EXP定時器。他們的周期分別是:RCTP、ATP、NTP、ETP。 RC定時器用來觸發(fā)周期性的速率控制。ACK定時器用來觸發(fā)周期性的有選擇的應答(應答包)。RCTP和ATP是常量值
15、,值為:RCTP=ATP=0.01秒。 NAK被用來觸發(fā)negative應答(NAK包)。重傳定時器被用來觸發(fā)一個數(shù)據(jù)包的重傳和維護連接狀態(tài)。他們周期依賴于對于RTT的估計。ETP值也依賴于連續(xù)EXP時間溢出的次數(shù)。推薦的RTT初始值是0.1秒,而NTP和ETP的初始值是:NTP=3*RTT,ETP=3*RTT+ATP。 在每次bounded UDP接收操作(如果收到一個UDP包,一些額外的必須的數(shù)據(jù)處理時間)時查詢系統(tǒng)時間來檢查四個定時器是否已經(jīng)過期。推薦的周期粒度是微秒。UDP接收時間溢出值是實現(xiàn)的一個選擇,這依賴于循環(huán)查詢的負擔和事件周期精確度之間的權衡。 速率控制事件更新包發(fā)送周期,U
16、DT發(fā)送端使用STP來安排數(shù)據(jù)包的發(fā)送。假定一個在時間t0被發(fā)送,那么下一次包發(fā)送時間是(t0+ STP)。換句話說,如果前面的包發(fā)送花費了t時間,發(fā)送端將等待(STP-t)來發(fā)送下一個數(shù)據(jù)包(如果STP-t <0,就不需要等待了)。這個等待間隔需要一個高精確度的實現(xiàn),推薦使用CPU時鐘周期粒度。 . 數(shù)據(jù)結構和變量 ASND PKT歷史窗口:一個循環(huán)數(shù)組記錄每個數(shù)據(jù)包的開始時間 B發(fā)送端丟失鏈表:發(fā)送段丟失列表是一個連接鏈表,用來存儲被接收方NAK包中返回的丟失包序號。這些數(shù)字以增加的順序存儲。 . 數(shù)據(jù)發(fā)送算法
17、A如果發(fā)送端的丟失鏈表是非空的,重傳第一個在list中的包,并刪除該成員,到5。 B等待有應用程序數(shù)據(jù)需要發(fā)送 C如果未應答的包數(shù)量超過了兩量窗口的大小,轉(zhuǎn)到1。如果不是包裝一個新的包并發(fā)送它。 D如果當前包的序號是16n,n是一個整數(shù),轉(zhuǎn)第2步。 E在SND PKT歷史窗口中記錄包的發(fā)送時間 F如果這是自上次發(fā)送速率降低之后的第一個包,等外SYN時間。 G等外(STP t)時間,t是第1到第4步之間的總時間,然后轉(zhuǎn)到1。 . 數(shù)據(jù)結構和變量 A接收端丟失鏈表:是一個duple連接鏈表,元素的值包括:丟失數(shù)據(jù)包的序號、最近丟失包的反饋時間和包已經(jīng)被反饋的次數(shù)
18、。值以包序號增序的方式存儲。 B應答歷史窗口:每個發(fā)送ACK的和時間一個循環(huán)數(shù)組;由于其循環(huán)的特性,意味著如果數(shù)組中沒有更多空間的時候新的值將覆蓋老的值。 CRCV PKT歷史窗口:一個用來記錄每個包到達時間的循環(huán)數(shù)組。 D對包窗口:一個用來記錄每個探測包對之間的時間間隔。 ELRSN:一個用來記錄最大接收數(shù)據(jù)包需要的變量。LRSN被初始化為初始序號減1。 . 數(shù)據(jù)接收算法 A查詢系統(tǒng)時間來檢查RC、ACK、NAK、或EXP定時器是否過期。如果任一定時器過期,處理事件(本節(jié)下面介紹)并復位過期的定時器。 B啟動一個時間bounded UDP接收。如果每個包到
19、,轉(zhuǎn)1。 C設置exp-count為1,并更新ETP為:ETP=RTT+4*RTTVar + ATP。 D如果所有的發(fā)送數(shù)據(jù)包已經(jīng)被應答,復位EXP時間變量。 E檢查包頭的標志位。如果是一個控制包,根據(jù)類型處理它,然后轉(zhuǎn)1。 F如果當前數(shù)據(jù)包的需要是16n+1,n是一個整數(shù),記錄當前包和上個在對包窗口中數(shù)據(jù)包的時間間隔。 G在PKT歷史窗口中記錄包到達時間 H如果當前數(shù)據(jù)包的序號大于LRSN+1,將所有在(但不包括)這兩個值之間的序號放入接收丟失鏈表,并在一個NAK包中將這些序號發(fā)送給發(fā)送端。如果序號小于LRSN,從接收丟失鏈表中刪除它。 I 更新LRSN,轉(zhuǎn)1。 .
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 特殊工時屬地管理制度
- 獵頭經(jīng)理團隊管理制度
- 豬舍日常衛(wèi)生管理制度
- 環(huán)衛(wèi)公司價格管理制度
- 現(xiàn)場消防保衛(wèi)管理制度
- 班級區(qū)域區(qū)域管理制度
- 理財簽單合同管理制度
- 生產(chǎn)凈化車間管理制度
- 公園開幕活動方案
- 專員提級管理制度
- 生理學習題含參考答案
- 2024-2030年中國內(nèi)河水運行業(yè)市場現(xiàn)狀調(diào)查及發(fā)展趨向研判報告
- 廣東省深圳市福田區(qū)福田小學小學語文六年級小升初期末試題(含答案)
- 數(shù)智時代的商業(yè)變革智慧樹知到期末考試答案章節(jié)答案2024年山東大學(威海)
- 2024年福建省寧德市中考一?!段锢怼吩囶}(解析版)
- 2023年國開(中央電大)04114《會計學概論》題庫及標準答案
- 廣東省廣州市天河區(qū)2024年八年級下冊數(shù)學期末考試試題含解析
- 中建測評2024二測題庫及答案
- 24春國家開放大學《統(tǒng)計學原理》形成性考核1-3參考答案
- 環(huán)衛(wèi)保潔整體服務方案
- 小學數(shù)學小組合作學習有效性課題研究結題報告
評論
0/150
提交評論