WebRTC SDP 的協議解釋

全局描述

o=- 4611731400430051336 2 IN IP4 127.0.0.1
  • 第一個數字4611731400430051336是會話唯一標誌
  • 第二個數字2是會話的版本,當會話有新的協商或者應答時,例如(例如保持,編解碼器更改,添加刪除媒體軌道)的時候
  • IN IP4 127.0.0.1這段描述的是創建SDP的網絡IP和類型,與協商無關
s=-
  • 這個是文本會話的名稱,不常用
t=0 0
  • 開始和結束時間。 都設置成0,這意味着會話不受限於特定的時間
a=group:BUNDLE audio video
  • BUNDLE 分組建立了包括在SDP中的多個媒體線路,通常是音頻和視頻之間的關係。 在WebRTC中,它用於相同的RTP會話中複用多個媒體流。 在這種情況下,瀏覽器提供多路複用音頻和視頻,但是還必須由另一方支持和接受。
a=msid-semantic:WMS lgsCFqt9kN2fVKw5wg3NKqGdATQoltEwOdMS
  • 此行給出了在PeerConnection生命期間WebRTC媒體流(WMS)的唯一標識符。 此標識符將用於屬於特定媒體流(在我們的例子中爲音頻和視頻m行)的每個m行的a = msid屬性中。 這意味着RTP媒體流(由每個RTP分組中存在的SSRC字段標識)屬於該媒體流,並且它是該媒體流的軌道。 它是單個RTP媒體流到MediaStream WebRTC對象的顯式關聯。 有關這方面的更多信息,請參閱draft-ietf-mmusic-msid

音頻

m=audio 58779 UDP / TLS / RTP / SAVPF 111 103 104 9 0 8 106 105 13 126
  • m意味着它是一個媒體行 - 它收集了很多關於流媒體屬性的信息。按照這個順序,它告訴我們:音頻 - 媒體類型將用於會話(媒體類型在IANA註冊),
    54278
    RTP / SAVPF-傳輸協議將用於會話,最後但並非最不重要
    111 103 104 0 8 106 105 13 126-瀏覽器支持媒體格式描述以發送和接收媒體。
    RTP / SAVPF在RFC5124中定義。簡而言之,它需要使用SRTP和SRTCP和RTCP反饋數據包。
    媒體格式描述,具有協議RTP / SAVPF,給出將要用於不同格式的RTP有效載荷數。低於96的有效負載數由IANA映射到編碼格式。在我們的SDP0地圖到G711U和8到G711A。大於95的格式號是動態的,並且有一個= rtpmap:屬性從RTP有效載荷類型編號映射到介質編碼名稱。還有alsoa = fmtp:attributes指定格式參數
c=IN IP4 217.130.243.155
  • c是連接行。 此行給出您希望發送和接收實時流量的IP。 因爲ICE在WebRTC中是強制性的,所以c線中的IP將不被使用。

ICE Candidates

a=candidate:1467250027 1 udp 2122260223 192.168.0.196 46243 typ host generation 0
a=candidate:1467250027 2 udp 2122260222 192.168.0.196 56280 typ host generation 0
  • UDP上的RTP的主機候選 - 在這個ICE線路中,瀏覽器給出它的主機候選 - 瀏覽器在計算機上偵聽的接口的IP。瀏覽器可以在該IP上接收/發送SRTP和SRTCP,以防有遠程對等體的一些候選者的IP可見性。例如,如果其他計算機在同一LAN上,將使用主機候選。udp後面的數字 - 2122260223 - 是候選者的優先級。注意,主機候選者的優先級高於其他候選者,因爲使用主機候選者在資源使用方面更有效。第一行(component = 1)用於RTP,第二行(component = 2)用於RTCP
a=candidate:435653019 1 tcp 1845501695 192.168.0.196 0 typ host tcptype active generation 0
a=candidate:435653019 2 tcp 1845501695 192.168.0.196 0 typ host tcptype active generation 0
  • RTP over TCP的主機候選 - 這些線路與之前的兩個ICE線路相同,但只是TCP傳輸。 請注意,優先級是較低的 - 因爲TCP不是實時媒體傳輸的最佳選擇。
  • RTCP over TCP的主機候選。
a=candidate:1853887674 1 udp 1518280447 47.61.61.61 36768 typ srflx raddr 192.168.0.196 rport 36768 generation 0
a=candidate:1853887674 2 udp 1518280447 47.61.61.61 36768 typ srflx raddr 192.168.0.196 rport 36768 generation 0
  • 反射候選RTP over UDP - 這裏我們有服務器反思候選人。 請注意,它們的優先級低於主機候選。
  • 反射候選人RTCP over UDP - 這裏我們有服務器反思候選人。 請注意,它們的優先級低於主機候選。
a=candidate:750991856 2 udp 25108222 237.30.30.30 51472 typ relay raddr 47.61.61.61 rport 54763 generation 0
a=candidate:750991856 1 udp 25108223 237.30.30.30 58779 typ relay raddr 47.61.61.61 rport 54761 generation 0
  • RTP over UDP中繼候選 - 接下來我們有中繼候選。這些候選者從TURN服務器獲得,當創建對等連接時,TURN服務器必須被提供。注意,這裏的優先級低於主機和反射候選者(25108222更高),因此僅當主機和反射候選者之間沒有IP連接時,才使用中繼。

  • RTCP over UDP的中繼候選。

ICE Parameters

a=ice-ufrag:Oyef7uvBlwafI3hT
a=ice-pwd:T0teqPLNQQOf+5W+ls+P2p16
  • 一旦ICE候選者被交換,驗證過程開始,其中兩個瀏覽器試圖使用所提供的候選者連接。 在該過程中使用ice-ufrag和ice-pwd憑證,爲了避免被攻擊,未經驗證的連接無法建立會話。
a=fingerprint:sha-256 49:66:12:17:0D:1C:91:AE:57:4C:C6:36:DD:D5:97:D2:7D:62:C9:9A:7F:B9:A3:F4:70:03:E7:43:91:73:23:5E
  • 該指紋是在DTLS-SRTP協商中使用的證書的散列函數(在這種情況下使用sha-256)的結果。 此行在信令(假定是信任的)和在DTLS中使用的證書之間創建綁定,如果指紋不匹配,則應該拒絕會話。
a=sendrecv
  • 這一行說,瀏覽器願意在這個會話中發送和接收音頻。 其他值可以是sendonly,recvonly和inactive,用於實現不同的場景,如將呼叫保持。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章