2021年1月6日 星期三

What is ICE?

EX
candidate:842163049 1 udp 1677729535 211.23.7.25 62764 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag o5a5 network-cost 999
candidate:750991856 1 udp 25108223 237.30.3.30 58779 typ relay raddr 47.61.6.61 rport 54761 generation 0

欄位說明:
component = 2)用於RTCP
udp/tcp後面的一長串數字 - 1677722110 - 是候選者的優先級
機候選者的優先級高於其他候選者,因為使用主機候選者在資源使用方面更有效。
relay:表示是中繼候選,這些候選者從TURN服務器獲得
ufrag & pwd:一旦ICE候選者被交換,驗證過程開始,其中兩個瀏覽器試圖使用所提供的候選者連接。在該過程中使用ice-ufrag和ice-pwd憑證,為了避免被攻擊,未經驗證的連接無法建立會話。

fingerprint:DTLS-SRTP協商中使用的證書的散列函數(在這種情況下使用sha-256)的結果。此行在信令(假定是信任的)和在DTLS中使用的證書之間創建綁定,如果指紋不匹配,則應該拒絕會話。

a=sendrecv:瀏覽器願意在這個會話中發送和接收。其他值可以是sendonly,recvonly和inactive,用於實現不同的場景,如將呼叫保持。


它有什麼作用 ?

●交互式連接建立

(ICE)是RFC草案(當前草案19)

●它定義了一種方法而不是協議

●使您的生活更輕鬆(如果您沒有

實施)

●確保兩個對等方能夠

不論哪個網絡都可以相互連接

他們擁有的拓撲

●使用STUN在NAT中打孔


它是如何工作的 ?

採取這種類型的網絡拓撲

讓它看起來像這樣

聚集多個“候選人”

●使用STUN進行UDP打孔

●在本地之間創建多個候選對

和遠程候選人並驗證每個人

配對的連接

●選出最高的有效候選對

用於點對點數據傳輸的優先級

●如果無法直接連接,則使用TURN


創建候選對並驗證

每對之間的連接性(STUN)

選擇有效的一對並開始流數據


什麼是Libnice?

●實現ICE規範的易於使用的庫

●支持草稿19,Google Talk,MSN 8.x和WLM 2009

ICE規格

●支持HTTP,SOCKS5和Google的Pseudossl代理

●支持UDP和TCP TURN中繼(TURN草案12,

Google Talk,MSN)

●支持UPnP

●帶有STUN解析和格式化庫,

支持STUN RFC 3489和RFC 5389

●Gstreamer元素可用

沒有留言:

張貼留言