由于在傳輸層UDP已經(jīng)是不可靠的連接炉抒,那就要在應(yīng)用層自己實(shí)現(xiàn)一些保障可靠傳輸?shù)臋C(jī)制
簡(jiǎn)單來(lái)講,要使用UDP來(lái)構(gòu)建可靠的面向連接的數(shù)據(jù)傳輸宿稀,就要實(shí)現(xiàn)類(lèi)似于TCP協(xié)議的
1. 超時(shí)重傳(定時(shí)器)
2. 有序接受 (添加包序號(hào))
3. 應(yīng)答確認(rèn) (Seq/Ack應(yīng)答機(jī)制)
4. 滑動(dòng)窗口流量控制等機(jī)制 (滑動(dòng)窗口協(xié)議)
等于說(shuō)要在傳輸層的上一層(或者直接在應(yīng)用層)實(shí)現(xiàn)TCP協(xié)議的可靠數(shù)據(jù)傳輸機(jī)制愕难,比如使用UDP數(shù)據(jù)包+序列號(hào),UDP數(shù)據(jù)包+時(shí)間戳等方法妻柒。
目前已經(jīng)有一些實(shí)現(xiàn)UDP可靠傳輸?shù)臋C(jī)制扛拨,比如
UDT(UDP-based Data Transfer Protocol)基于UDP的數(shù)據(jù)傳輸協(xié)議(UDP-based Data Transfer Protocol,簡(jiǎn)稱(chēng)UDT)是一種互聯(lián)網(wǎng)數(shù)據(jù)傳輸協(xié)議举塔。UDT的主要目的是支持高速?gòu)V域網(wǎng)上的海量數(shù)據(jù)傳輸绑警,而互聯(lián)網(wǎng)上的標(biāo)準(zhǔn)數(shù)據(jù)傳輸協(xié)議TCP在高帶寬長(zhǎng)距離網(wǎng)絡(luò)上性能很差。 顧名思義央渣,UDT建于UDP之上计盒,并引入新的擁塞控制和數(shù)據(jù)可靠性控制機(jī)制。UDT是面向連接的雙向的應(yīng)用層協(xié)議芽丹。它同時(shí)支持可靠的數(shù)據(jù)流傳輸和部分可靠的數(shù)據(jù)報(bào)傳輸北启。由于UDT完全在UDP上實(shí)現(xiàn),它也可以應(yīng)用在除了高速數(shù)據(jù)傳輸之外的其它應(yīng)用領(lǐng)域拔第,例如點(diǎn)到點(diǎn)技術(shù)(P2P)咕村,防火墻穿透,多媒體數(shù)據(jù)傳輸?shù)鹊取?/p>