為什麼UDP有時比TCP更有優勢
隨著網路技術飛速發展,網速已不再是傳輸的瓶頸,UDP協議以其簡單、傳輸快的優勢,在越來越多場景下取代了TCP,如網頁瀏覽、流媒體、實時遊戲、物聯網。
1,網速的提升給UDP穩定性提供可靠網路保障
CDN服務商Akamai(NASDAQ: AKAM)報告從2008年到2015年7年時間,各個國家網路平均速率由1.5Mbps提升為5.1Mbps,網速提升近4倍。網路環境變好,網路傳輸的延遲、穩定性也隨之改善,UDP的丟包率低於5%,如果再使用應用層重傳,能夠完全確保傳輸的可靠性。
2,對比測試結果UDP效能優於TCP
為了提升瀏覽速度,Google基於TCP提出了SPDY協議以及HTTP/2。Google在Chrome上實驗基於UDP的QUIC協議,傳輸速率減少到100ms以內。
Google採用QUIC後連線速率能有效提升75%。
Google搜尋採用QUIC後頁面載入效能提升3%。
YouTube採用QUIC後重新緩衝次數減少了30%。
3, TCP設計過於冗餘,速度難以進一步提升
TCP為了實現網路通訊的可靠性,使用了複雜的擁塞控制演算法,建立了繁瑣的握手過程以及重傳策略。由於TCP內建在系統協議棧中,極難對其進行改進。
4, UDP協議以其簡單、傳輸快的優勢,在越來越多場景下取代了TCP
4.1 網頁瀏覽
使用UDP協議有三個優點 :
- 能夠對握手過程進行精簡,減少網路通訊往返次數;
- 能夠對TLS加解密過程進行優化;
- 收發快速,無阻塞。
4.2 流媒體
採用TCP,一旦發生丟包,TCP會將後續包快取起來,等前面的包重傳並接收到後再繼續傳送,延遲會越來越大。基於UDP的協議如WebRTC是極佳的選擇。
2010年google 通過收購 Global IP Solutions,獲得了WebRTC(網頁實時通訊,Web Real-Time Communication)技術,用於提升網頁視訊速率。
4.3 實時遊戲
對實時要求較為嚴格的情況下,採用自定義的可靠UDP協議,比如Enet、RakNet(使用者有sony online game、minecraft)等,自定義重傳策略,能夠把丟包產生的延遲降到最低,儘量減少網路問題對遊戲性造成的影響。
採用UDP的經典遊戲如FPS遊戲Quake、CS,著名的遊戲引擎Unity3D採用的也是RakNet。
4.4 物聯網
2014年google旗下的Nest建立Thread Group,推出了物聯網通訊協議Thread,完善物聯網通訊。
採用UDP有3個關鍵點:
- 網路頻寬需求較小,而實時性要求高;
- 大部分應用無需維持連線;
- 需要低功耗。
小結
如今全球將近50%的人都在使用網際網路,人們不斷的追求更快、更好的服務,一切都在變化,在越來越多的領域,UDP將會搶佔TCP的主導地位。
相關文章
- 為什麼UDP有時比TCP更有優勢?UDPTCP
- 為什麼 UDP 有時比 TCP 更有優勢UDPTCP
- 為什麼DNS使用UDP而不是TCP詳解!DNSUDPTCP
- 教學系統開發時為什麼要配置小班課?有什麼優勢?
- TCP和UDP比較TCPUDP
- TCP和UDP對比TCPUDP
- Python對比其他語言有什麼優劣勢?Python
- “Go語言”有什麼用途?有什麼優勢?Go
- 學Java優勢有什麼?Java
- 什麼是docker?docker有什麼優勢?Docker
- TCP/UDP對比總結TCPUDP
- Linux對比Windows有什麼優勢?這些必知!LinuxWindows
- Linux與windows對比有什麼優勢?對比分析!LinuxWindows
- Linux與windows對比有什麼優勢?學習分析!LinuxWindows
- 伺服器CPU比家用CPU更有哪些優勢伺服器
- 原生IP是什麼意思?有什麼優勢?
- 在Linux中,我們都知道,dns採用了tcp協議,又採用了udp協議,什麼時候採用tcp協議?什麼 時候採用udp協議?為什麼要這麼設計?LinuxDNSTCP協議UDP
- 為什麼要參加java培訓?有哪些優勢?Java
- 企業為什麼選擇伺服器呢?有什麼優勢嗎?伺服器
- WebSocket有什麼優勢?有哪些特點?Web
- Linux與windows對比有什麼優勢?詳細區別LinuxWindows
- 智慧雲播比傳統信發系統有什麼優勢?
- 為什麼獨立伺服器越來越受到公司的喜歡?比共享主機有什麼優勢伺服器
- 企業為什麼需要郵件營銷,有哪些優勢?
- 伺服器為什麼用Linux?其優勢有哪些?伺服器Linux
- 學習web前端有什麼優勢?Web前端
- 講一講Java有什麼優勢?Java
- 為什麼這麼多人學習Python,Python有哪些優勢?Python
- 韓國伺服器有哪些優勢?為什麼這麼熱門?伺服器
- 雲伺服器對比傳統伺服器有什麼優勢伺服器
- Python是什麼語言?有什麼優劣勢?Python
- SFTP是什麼協議?優勢有哪些?與FTP有什麼不同?FTP協議
- TCP和UDP協議有什麼區別?工業閘道器能用嗎?TCPUDP協議
- 共享WiFi為什麼能夠賺錢?有哪些市場優勢WiFi
- Python優勢是什麼?為什麼要學習?Python
- Golang有什麼優勢?與Erlang有何差異?Golang
- Pycharm有什麼優勢?常見快捷鍵有哪些?PyCharm
- 伺服器系統有什麼優勢伺服器