為什麼YouTube使用TCP而不是UDP?
在影片點播平臺中,YouTube是市場上一個流行的平臺。在如此競爭激烈的市場中,為了增加受眾,一個重點領域應該是更好的體驗和最佳的影片質量。影片的質量取決於它採用的流媒體協議。
像YouTube這樣的影片流媒體平臺根據目標和需求同時使用TCP和UDP。一個基於TCP的協議,稱為即時訊息協議(RTMP),負責流式傳輸影片和音訊內容,它可以提供低延遲。RTMP由Macromedia開發。RTMP透過傳輸層安全協議的擴充套件提供安全性和加密。
概述
TCP流媒體協議和UDP流媒體協議
TCP流媒體協議
TCP或傳輸控制協議是一個沒有邊界限制的協議,在客戶端和伺服器之間進行資料傳輸之前會建立連線。
它使用三次握手進行錯誤檢測和恢復。此外,TCP是可靠的,並具有網路擁塞避免機制。它將大型資料包分成較小的有序資料包,並在傳輸過程中確保資料完整性。
TCP協議是面向連線的,即首先建立連線,然後將帶有資料段的IP資料包傳送到接收方。
資料的重傳和校驗和錯誤檢查技術被稱為“TCP流媒體協議”。如果在肯定確認技術中傳輸失敗,則會再次傳輸重複的資料包。透過處理TCP中IP的開銷,可以實現大規模的網路可用性。IP頭部以一種組織有序的方式減少冗餘資訊,以實現無錯誤的傳輸。
UDP流媒體協議
UDP或使用者資料報協議是一種即時通訊協議,無需進行資料驗證。此協議不保證交付和安全。UDP減少了開銷,在許多情況下這種服務可能就足夠了。
UDP將資料封裝到資料包中,併為資料包提供其頭部資訊。接收到的資料包不會向傳送方傳送確認資訊,因此它是不可靠的。
由於UDP傳輸的資料報沒有編號,因此無法保證交付。
UDP的缺點
交付服務不可靠
訊息可能會丟失、複製或順序錯亂。
通訊中沒有確認或流量控制。
例如:流媒體。
由於UDP並不理想用於在YouTube等平臺上進行即時流式傳輸影片。因為UDP有利於資料流式傳輸,但存在丟包問題。
UDP不適合,因為它無法進行重傳,從而導致延遲,因此線上遊戲中、VoIP或影片流媒體中不使用UDP。但UDP用於視訊會議、直播等。一些服務或應用程式只需要一個位於UDP之上的協議,這使得它更高效。例如,RTP與UDP結合使用等。
為什麼YouTube使用TCP而不是UDP
YouTube使用TCP是因為其可靠性、時間敏感性、安全傳輸等。TCP確保資料完整且傳送的資料包能夠被接收。TCP使用握手來檢測IP資料包中的任何問題、負載均衡問題或不可靠網路中的網路擁塞。為了傳送所有資料包或幀,則使用TCP。這裡延遲不是問題,在HTTP或Web瀏覽器中,TCP可以輕鬆傳輸而無需任何額外的軟體或外掛。
TCP優先考慮資料的順序,並確保影片流的質量。如果TCP檢測到IP資料包中的任何問題,例如資料包丟失、複製或順序錯亂,則會重新傳輸丟失的資料,糾正順序錯亂的資料並最大限度地減少負載均衡。
解決了與網路堵塞相關的問題。減少緩衝,解決了即時端到端位元組流的問題。TCP確保最佳的影片流質量,並且透過監控端到端通訊的頻寬而變得更容易。同時的多個連線重定向嘗試線上堵塞控制的流量。如果由於在重傳過程中資訊資料包丟失或出現惡意軟體問題,則TCP提供問題識別和錯誤恢復。使用者可以隨意停止、更改或播放影片,TCP可以輕鬆處理而不會出現任何問題或衝突。此外,端到端加密用於維護電影和節目的版權。TCP的一個重要方面是資訊安全和可靠的替代方案。
在YouTube上,TCP是贏家。但是UDP在確保某些資料包(在傳輸過程中丟失或順序錯亂)方面存在不足。這會導致影片直播出現故障。此外,等待訊息重傳會導致長時間延遲,從而中斷使用者體驗。
結論
TCP協議更適合流式傳輸影片,因為它持續地相互通訊以確保所有資料包按順序接收。此外,如果需要,還會及時進行錯誤檢查和恢復。對於在不可靠網路中的傳輸,TCP流媒體協議比UDP流媒體協議更好。在TCP連線中,發生HTTP通訊。由於這裡處理資料包時延遲不是問題,因此TCP可以輕鬆傳輸到HTTP和Web瀏覽器以減少緩衝時間。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP