iT邦幫忙

2023 iThome 鐵人賽

DAY 3
0

上一篇提到了網路通訊協定 OSI、TCP/IP,將通訊時不同資料的傳輸方式制定一套標準,而這篇會提到其中的傳輸層,WebRTC又是使用哪個傳輸層協議及原因。

TCP 與 UDP 是傳輸層的兩種協議,IP 協定標識設備的位置,而TCP/UDP則決定了數據的傳輸、封包方式,以下會說明兩者的運作方式以及比較。

TCP (Transmission Control Protocol)

TCP 是一種面向連接的,大部分的網路協定,都是建立在 TCP 上面,因為它是 可靠的傳輸協議; 為每個封包分配一個識別碼,在接收時能夠確保數據的順序及完整性。

  • 可靠性:保證數據可靠地傳輸,確保數據不會丟失或損壞。
  • 有序性:確保數據按照發送的順序到達目的地,防止數據混亂。
  • 流量控制:通過流量控制機制,調整數據的傳輸速率,以避免過多的數據擁堵網絡。
  • 錯誤檢測和重發:使用校驗和重發機制來檢測和修復數據的錯誤。

UDP (User Datagram Protocol)

UDP 是一種無連接、不需要為每個封包分配識別碼,發送端不會等待接收端的確認信號,會繼續快速的且不斷發送封包資料。應用在視訊,傳輸速度比 TCP 更快。但也被稱為不可靠的傳輸協議。

  • 無連接:不建立連接,直接將數據傳輸給目的地。
  • 不可靠性:不保證數據的可靠傳輸,數據可能會丟失或以不同的順序到達。
  • 低延遲:由於不需要等待確認回饋,UDP具有較低的傳輸延遲。
  • 適用性:適用於實時應用,如語音通話、視頻流、遊戲等,這些應用更注重即時性而不是可靠性。

比較

特點 TCP (Transmission Control Protocol) UDP (User Datagram Protocol)
連接性 有連接,建立可靠的連接。 無連接,直接傳輸數據。
可靠性 確保數據不會丟失或損壞。 數據可能會丟失或以不同的順序到達。
延遲 較高延遲,因為需要等待確認回饋。 較低延遲,因為無需等待確認回饋。
用途 適用於需要可靠性的應用,如文件傳輸、電子郵件傳送等。 適用於實時性要求高的應用,如語音通話、視頻流、遊戲等。
流量控制 提供流量控制機制,調整數據的傳輸速率,避免過多的數據擁堵網絡。 不提供流量控制,可能導致網絡擁堵。
建立連接和關閉連接 使用三次握手建立連接和四次揮手關閉連接。 無連接,不需要建立或關閉連接。

可以得知 WebRTC 是透過 傳輸層的 UDP 協議進行通訊,主要也是因為在通訊時會希望以即時性為優先,此時 UDP 的低延遲與即時性是非常重要的也可以避免影響用戶體驗,而 TCP 能夠錯誤檢測和重發,WebRTC 則是透過其應用層自行處理錯誤恢復的機制處理丟失的數據,不需要依賴 TCP 的重發機制。此外由於 WebRTC 使用 P2P 連線不需要伺服器,使用UDP能夠更好地應對不同用戶之間的動態網絡環境。

重點整理

  • TCP 和 UDP 這兩種傳輸層協議的特點主要差別在於它們的連接方式、可靠性、即時性
  • WebRTC 主要使用 UDP 作為其傳輸層協議的,即時性和低延遲對 WebRTC 應用的重要性,以及自主錯誤處理的機制。

參考資料

使用者資料報協定 - 維基百科,自由的百科全書 (wikipedia.org)
TCP 和 UDP 是什麼:簡單的說明 | NordVPN
[第四週] 網路基礎 - TCP/IP | Yakim shu (yakimhsu.com)


上一篇
[Day2] 網際網路協議 OSI、TCP/IP
下一篇
[Day4] 媒體傳輸協議 RTP
系列文
前端工程師30天 WebRTC + Firebase 視訊通話原理到實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言