ude是一款基於udp的可靠傳輸協議,專門用於在資料傳輸方面對實時性要求較高的應用領域。
tcp協議雖然能保證資料的可靠傳輸,但它有以下幾個缺點:1.tcp的資料確認機制會導致傳送方重**送一些已經被對方接收的資料,降低了頻寬的有效利用率;2.tcp協議的超時重傳機制嚴格遵守rtt公平性,即到了rtt時間才會重傳丟失的資料,當rtt較大時,就會導致資料的實時性降低,這對於一些對實時性要求較高的應用(比如流**應用)是不能忍受的,並且這一特點會導致頻寬得不到充分利用;3.在p2p傳輸領域,由於tcp的nat穿透成功率極低,用tcp做p2p資料傳輸幾乎不可行。
udp協議雖然不能保證資料傳輸的可靠性,但它在資料的實時性、頻寬的利用率等方面有著tcp望塵莫及的優勢。
ude協議,正是融合了tcp和udp各自的優點,ude協議在udp的基礎之上,實現了tcp的握手連線、資料校驗、超時重傳等機制,並且在某些方面比tcp做的更好:1.ude協議的資料確認機制比tcp更科學,不會重**送已經被對方接收的資料;2.ude的超時重傳機制不遵循rtt公平性(可以設定rtt的上限值),這就保證了當網路延時較高時,ude也可以用於傳輸對實時性要求較高的資料,降低了頻寬的有效利用率換取實時性,另外它不等ack的到來就重傳資料(原理為第n幀沒收到ack、而第n+1、n+2幀已收到ack,則認為第n幀已經丟失);3.ude協議計算兩端之間的頻寬,用這個頻寬值和rtt值計算每次傳送的資料量,可以最大化的利用頻寬;4.當網路傳送擁塞,ude計算出新的頻寬值,它會控制頻寬值的下降幅度,以保證自身的抗網路抖動能力和頻寬競爭力;5.ude協議內部實現了心跳機制來檢測死鏈結,程式設計師不需要在設計時考慮死鏈結這樣的問題。
ude協議,極其適合在cs方式/p2p方式下做實時性資料的可靠傳輸。可以在公網搭建tcp server來**nat穿透信令,在穿透之後,使用ude協議來做可靠傳輸。
對rudp技術感興趣的朋友可以**:172297772
如何實現udp的可靠傳輸
傳輸層無法保證資料的可靠傳輸,只能通過應用層來實現了。實現的方式可以參照tcp可靠性傳輸的方式,只是實現不在傳輸層,實現轉移到了應用層。最簡單的方式是在應用層模仿傳輸層tcp的可靠性傳輸。下面不考慮擁塞處理,可靠udp的簡單設計。1 新增seq ack機制,確保資料傳送到對端 2 新增傳送和接收緩衝...
分享 基於UDP協議實現可靠的資料傳輸
這幾天一直在研究p2p相關的技術,對於底層的傳輸使用了udp協議,但是大家都知道udp協議是不可靠的,如果在傳輸對話資訊或檔案的時候發生丟包,那麼就會造成資料出錯 即使不丟包,udp協議也不能保證接收方按照傳送的順序接收到那些包,也會造成資料出問題!為了使udp有序可靠地傳送資料,那麼必須在它的基礎...
udp可靠傳輸的一種
udp廣播示例 unix套接字可靠傳輸 只能客戶端到服務端,服務端無法sendto 接收端recvfrom介紹 本地程序間通訊方式的一種,unix可靠傳輸 接收端rec.c include include see notes include include include include inclu...