隨著網路技術飛速發展,網速已不再是傳輸的瓶頸,udp協議以其簡單、傳輸快的優勢,在越來越多場景下取代了tcp,如網頁瀏覽、流**、實時遊戲、物聯網。
cdn服務商akamai(nasdaq: akam)報告從2023年到2023年7年時間,各個國家網路平均速率由1.5mbps提公升為5.1mbps,網速提公升近4倍。
網路環境變好,網路傳輸的延遲、穩定性也隨之改善,udp的丟包率低於5%,如果再使用應用層重傳,能夠完全確保傳輸的可靠性。
為了提公升瀏覽速度,google基於tcp提出了spdy協議以及http/2。google在chrome上實驗基於udp的quic協議,傳輸速率減少到100ms以內。
google採用quic後連線速率能有效提公升75%。
google搜尋採用quic後頁面載入效能提公升3%。
youtube採用quic後重新緩衝次數減少了30%。
tcp為了實現網路通訊的可靠性
,使用了
複雜的擁塞控制演算法
,建立了繁瑣的握手過程以及重傳策略。由於tcp內建在
系統協議棧
中,極難對其進行改進。
4.1 網頁瀏覽
使用udp協議有
三個優點:
4.2 流**
採用tcp,一旦發生丟包,tcp會將後續包快取起來,等前面的包重傳並接收到後再繼續傳送,延遲會越來越大。
基於udp的協議如webrtc是極佳的選擇。
4.3 實時遊戲
對實時要求較為嚴格的情況下,採用自定義的可靠udp協議,比如enet、raknet(使用者有sony online game、minecraft)等,
自定義重傳策略
,能夠把丟包產生的延遲降到最低,儘量減少網路問題對遊戲性造成的影響。
採用udp的經典遊戲如fps遊戲quake、cs,著名的遊戲引擎unity3d採用的也是raknet。
4.4 物聯網
2023年google旗下的nest建立thread group,推出了物聯網通訊協議thread,完善物聯網通訊。
採用udp有3個關鍵點:
如今全球將近50%的人都在使用網際網路,人們不斷的追求更快、更好的服務,一切都在變化,在越來越多的領域,udp將會搶占tcp的主導地位。
附:tcp和udp的區別
tcp(傳輸控制協議):
1)提供ip環境下的資料可靠傳輸(一台計算機發出的位元組流會無差錯的發往網路上的其他計算機,而且計算機a接收資料報的時候,也會向計算機b回發資料報,這也會產生部分通訊量),全雙工操作(資料在兩個方向上能同時傳遞),多路復用服務,是面向連線,端到端的傳輸
,提供超時重發,丟棄重複資料,檢驗資料
,流量控制等功能
2)面向連線:正式通訊前必須要與對方建立連線。事先為所傳送的資料開闢出連線好的通道,然後再進行資料傳送,像打**。
3)tcp支援的應用協議:telnet(遠端登入)、ftp(檔案傳輸協議)、smtp(簡單郵件傳輸協議)。tcp用於傳輸資料量大,可靠性要求高的應用。
udp(使用者資料報協議,user data protocol)
1)udp是非連線的(正式通訊前不必與對方建立連線,不管對方狀態就直接傳送,像簡訊,qq。因而傳輸速度快),不能提供可靠性、流控、超時重發功能。它是乙個簡單的面向資料報的運輸層協議,只是把應用程式傳給ip層的資料報傳送出去,但是並不能保證它們能到達目的地
。udp用於一次只傳送少量資料,可靠性要求低、傳輸經濟等特點。
2) udp支援的應用協議:nfs(網路檔案系統)、snmp(簡單網路管理系統)、dns(主網域名稱稱系統)、tftp(通用檔案傳輸協議)等。
總結:tcp:面向連線、傳輸可靠(保證資料正確性,保證資料順序)、用於傳輸大量資料(流模式)、速度慢,建立連線需要開銷較多(時間,系統資源)。
udp:面向非連線、傳輸不可靠、用於傳輸少量資料(資料報模式)、速度快。
聯絡:都是工作在傳輸層的協議
簡單來講,要使用udp來構建可靠的面向連線的資料傳輸,就要實現類似於tcp協議的超時重傳,有序接受,應答確認,滑動視窗流量控制等機制,等於說要在傳輸層的上一層(或者直接在
應用層)實現tcp協議的可靠資料傳輸機制,比如使用udp資料報+序列號,udp資料報+時間戳等方法,
在伺服器端進行應答確認機制,這樣就會保證不可靠的udp協議進行可靠的資料傳輸,不過這好像也是乙個難題!
為什麼UDP有時比TCP更有優勢
隨著網路技術飛速發展,網速已不再是傳輸的瓶頸,udp協議以其簡單 傳輸快的優勢,在越來越多場景下取代了tcp,如網頁瀏覽 流 實時遊戲 物聯網。cdn服務商akamai nasdaq akam 報告從2008年到2015年7年時間,各個國家網路平均速率由1.5mbps提公升為5.1mbps,網速提公...
為什麼UDP有時比TCP更有優勢
網速的提公升給udp的穩定性提供可靠網路保障,丟包率很低,如果使用應用層重傳,能夠確保傳輸的可靠性。tcp為了實現網路通訊的可靠性,使用了複雜的擁塞控制演算法,建立了繁瑣的握手過程,由於 tcp內建的系統協議棧中,極難對其進行改進。採用 tcp,一旦發生丟包,tcp會將後續的包快取起來,等前面的包重...
為什麼UDP有時比TCP更有優勢
隨著網路技術飛速發展,網速已不再是傳輸的瓶頸,udp協議以其簡單 傳輸快的優勢,在越來越多場景下取代了tcp,如網頁瀏覽 流 實時遊戲 物聯網。cdn服務商akamai nasdaq akam 報告從2008年到2015年7年時間,各個國家網路平均速率由1.5mbps提公升為5.1mbps,網速提公...