一、ICE
交互式連接建立(ICE)是允許您的Web瀏覽器與對等方連接的框架。 從對等A到對等B的直接連接根本無法工作有很多原因。 它需要繞過防火牆,以防止打開連接;如果在大多數情況下,您的設備沒有公用IP地址,則爲您提供一個唯一的地址;如果您的路由器不允許您直接與對等方連接,則需要通過服務器中繼數據 。 ICE使用STUN和/或TURN服務器來完成此操作,如下所述。
二、STUN
NAT的會話遍歷實用程序(STUN)(首字母縮寫詞爲縮寫)是一種協議,用於發現您的公共地址並確定路由器中可能阻止與對等方直接連接的任何限制。
客戶端會將請求發送到Internet上的STUN服務器,服務器將使用客戶端的公共地址以及客戶端是否可以通過路由器NAT進行訪問進行回覆。
三、NAT
網絡地址轉換(NAT)用於爲您的設備提供公共IP地址。 路由器將具有公用IP地址,並且連接到路由器的每個設備都將具有專用IP地址。 請求將通過唯一端口從設備的專用IP轉換爲路由器的公共IP。 這樣,您無需爲每個設備都使用唯一的公用IP,但仍可以在Internet上找到它。
某些路由器將限制誰可以連接到網絡上的設備。 這可能意味着即使我們擁有STUN服務器找到的公共IP地址,也沒有任何人可以創建連接。 在這種情況下,我們需要轉向TURN。
四、TURN
一些使用NAT的路由器採用了稱爲“對稱NAT”的限制。 這意味着路由器將只接受來自先前連接的對等方的連接。
使用圍繞NAT(TURN)的中繼進行遍歷旨在通過打開與TURN服務器的連接並通過該服務器中繼所有信息來繞過對稱NAT限制。 您將與TURN服務器建立連接,並告訴所有對等方將數據包發送到服務器,然後將其轉發給您。 顯然這會帶來一些開銷,因此僅在沒有其他選擇時才使用。
五、SDP
會話描述協議(SDP)是用於描述連接的多媒體內容(例如分辨率,格式,編解碼器,加密等)的標準,以便一旦數據傳輸,兩個對等方就可以相互理解。 從本質上講,這是描述內容的元數據,而不是媒體內容本身。
從技術上講,SDP並不是真正的協議,而是一種用於描述在設備之間共享媒體的連接的數據格式。
記錄SDP遠遠超出了本文檔的範圍。 但是,這裏有幾件事值得注意。
1、結構
SDP由一行或多行UTF-8文本組成,每行以一個字符的類型開頭,後跟等號(“ =”),然後是包含值或描述的結構化文本,其格式取決於類型。 以給定字母開頭的文本行通常稱爲“字母行”。 例如,提供媒體描述的行的類型爲“ m”,因此這些行稱爲“ m行”。
2、更多關於SDP
要了解有關SDP的更多信息,請參見以下有用的資源: