在一些苛刻的網(wǎng)絡(luò)條件下TCP要么不能提供正常的通信質(zhì)量保證,要么成本過(guò)高。為什么要在UDP之上做可靠保證,究其原因就是在保證通信的時(shí)延和質(zhì)量的條件下盡量降低成本,RUDP主要解決以下相關(guān)問(wèn)題:
端對(duì)端連通性問(wèn)題:一般終端直接和終端通信都會(huì)涉及到NAT穿越,TCP在NAT穿越實(shí)現(xiàn)非常困難,相對(duì)來(lái)說(shuō)UDP穿越NAT卻簡(jiǎn)單很多,如果是端到端的可靠通信一般用RUDP方式來(lái)解決,場(chǎng)景有:端到端的文件傳輸、音視頻傳輸、交互指令傳輸?shù)鹊取?/p>
弱網(wǎng)環(huán)境傳輸問(wèn)題:在一些WIFI或者3G/4G移動(dòng)網(wǎng)下,需要做低延遲可靠通信,如果用TCP通信延遲可能會(huì)非常大,這會(huì)影響用戶體驗(yàn)。例如:實(shí)時(shí)的操作類網(wǎng)游通信、語(yǔ)音對(duì)話、多方白板書(shū)寫(xiě)等,這些場(chǎng)景可以采用特殊的RUDP方式來(lái)解決這類問(wèn)題。
帶寬競(jìng)爭(zhēng)問(wèn)題:有時(shí)候客戶端數(shù)據(jù)上傳需要突破本身TCP公平性的限制來(lái)達(dá)到高速低延時(shí)和穩(wěn)定,也就是說(shuō)要用特殊的流控算法來(lái)壓榨客戶端上傳帶寬,例如:直播音視頻推流,這類場(chǎng)景用RUDP來(lái)實(shí)現(xiàn)不僅能壓榨帶寬,也能更好的增加通信的穩(wěn)定性,避免類似TCP的頻繁斷開(kāi)重連。
傳輸路徑優(yōu)化問(wèn)題:在一些對(duì)延時(shí)要求很高的場(chǎng)景下,會(huì)用應(yīng)用層relay的方式來(lái)做傳輸路由優(yōu)化,也就是動(dòng)態(tài)智能選路,這時(shí)雙方采用RUDP方式來(lái)傳輸,中間的延遲進(jìn)行relay選路優(yōu)化延時(shí)。還有一類基于傳輸吞吐量的場(chǎng)景,例如:服務(wù)與服務(wù)之間數(shù)據(jù)分發(fā)、數(shù)據(jù)備份等,這類場(chǎng)景一般會(huì)采用多點(diǎn)并聯(lián)relay來(lái)提高傳輸?shù)乃俣,也是要建立在RUDP上的(這兩點(diǎn)在后面著重來(lái)描述)。
資源優(yōu)化問(wèn)題:某些場(chǎng)景為了避免TCP的三次握手和四次揮手的過(guò)程,會(huì)采用RUDP來(lái)優(yōu)化資源的占用率和響應(yīng)時(shí)間,提高系統(tǒng)的并發(fā)能,例如:QUIC.