iT邦幫忙

2023 iThome 鐵人賽

DAY 10
0

WebRTC 核心功能之一是 RTCPeerConnection,其中相關的 SDP(Session Description Protocol)協定的 Offer/Answer 機制。讓我們深入探討這些關鍵概念。

什麼是 RTCPeerConnection?

RTCPeerConnection 是 WebRTC 技術中的一個關鍵部分,它允許兩個瀏覽器建立對等連接。這種對等連接是點對點的,不需要通過中間伺服器,但他在剛開始連接時需要一個 Signaing Server 作為資料交換的據點而在交換並連線後即不需要再透過 Server 交換資料。

SDP 協定

WebRTC 使用 UDP 和 RTP 來實現媒體傳輸,同時使用 SDP 來協商通信的參數

前面的文章題到 WebRCT 選擇使用 UDP 進行與 RTP 一起使用,打造低延遲的媒體傳輸。而點對點的連接該如何交換資訊之到彼此的 IP 位置、媒體內容就需要使用 SDP 協定傳輸相關的資訊。

SDP(Session Description Protocol)是一種描述媒體會話的協定,用於描述音訊和視訊的屬性,如編解碼器、媒體類型、媒體流的 IP 地址和端口等信息。在 WebRTC 中,被用於協商兩個對等端之間的媒體會話參數。

Offer/Answer

WebRTC 中用於建立對等連接的協商過程。

在這個過程中,一方(通常是發起通話的一方)將一個 SDP Offer 發送給對方,對方收到 Offer 後,回復一個 SDP Answer。這兩者包含了各自的媒體參數描述,以及關於媒體連接方式的信息。

確保了通話雙方的媒體設置是相容的,並且交換彼此的資訊也接收彼此的資訊以達到連線。

雖然通常是但由加入者發起通話也是可行的,只要兩者皆發送 SDP 給對方完成交換訊息的協商過程就可以達到連線。

如何建立連線

  1. Host 開啟媒體建立 offer
  2. Host 將 offer 設定為 localDescription
  3. Guset 收到 offer
  4. Guset 將 offer 設定為 remoteDescription
  5. Guset 建立 Answer
  6. Host 將 Answer 設定為 localDescription
  7. Host 收到 Answer
  8. Host 將 Answer 設定為 remoteDescription

https://ithelp.ithome.com.tw/upload/images/20230922/20151124o933MkCBAz.jpg
圖片來源:自製

重點整理

  • RTCPeerConnection 在剛開始交換資訊時需要 Signaing Server 讓使用者交換第一次的資料
  • WebRTC 使用 SDP 來協定來交換通信的參數
  • Offer/Answer 包含了各自的媒體參數描述,用於交換資訊時雙方溝通的媒介

總結來說, RTCPeerConnection 和 SDP 協定的 Offer/Answer 過程是 WebRTC 技術的核心~希望能用這篇讓大家快速了解WebRTC怎麼交換資訊達到連線,下篇介紹 NAT 是什麼?網路是如何打洞連線?

參考資料
Day16 RTCPeerConnection: Offer / Answer - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天 (ithome.com.tw)
WebRTC 102: #4 Understanding SDP Internals (dyte.io)


上一篇
[Day9] MediaStreams - getTracks、addTrack 取得 MediaStream
下一篇
[Day11] RTCPeerConnection - RTCIceServer NAT 網絡地址轉換
系列文
前端工程師30天 WebRTC + Firebase 視訊通話原理到實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言