1. 程式人生 > >ude協議—基於udp的全雙工可靠傳輸協議

ude協議—基於udp的全雙工可靠傳輸協議

    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協議內部實現了心跳機制來檢測死連結,程式設計師不需要在設計時考慮死連結這樣的問題。