我們這裏有3個主要概念:
的ICE協商並不是那麼簡單...... 爲了執行ICE,UA具有對確定所有候選地址,傳輸地址。傳輸地址是特定傳輸協議的IP地址和端口的組合。有三種類型的候選人:
- 主持人候選人 - 與UA的本地接口相關的傳輸地址
- 接力候選人 - 與TURN服務器相關聯的傳輸地址(只能從一個TURN服務器獲得)
- 服務器自反候選 - 對NAT的公共端轉換的地址
(無論是從STUN服務器或TURN服務器獲得)
UA1收集完所有候選項後,按照優先級從高到低的順序排列它們,並將它們發送到UA2中的SDP提供消息中的屬性。 UA2執行相同的候選人聚會,併發送SDP響應及其候選人名單。每個UA都將這兩個候選人列表進行對比,並將他們配對成候選人對。每個UA將它們收集到檢查列表中,並計劃連通性檢查,STUN請求/響應事務,以查看哪些對工作。圖3顯示了構成UA檢查列表的候選對的組成部分。
ICE將其中一個代理指定爲「控制代理」,將另一個代理指定爲「受控代理」。控制代理使用有效的候選對來提名一對用於媒體。有兩種可用的提名方法:
- 定期提名檢查繼續進行,直到至少有一個有效的候選人對。控制代理從有效配對中選擇並在該配對上發送第二個STUN請求,並帶有一個標誌,以告訴對等方這是被提名使用的一個。
- 侵略性提名每次STUN請求都會發送提名標誌,一旦第一次檢查成功完成ICE處理,因爲該媒體流已完成並且不需要第二個STUN請求。
檢查列表中的每個候選對具有與其關聯的狀態。一旦檢查清單被計算出來,狀態由UA分配。有五種可能的狀態:
- 凍結這對只能在被置於等待狀態後才能被檢查。要進入等待狀態,其他檢查必須先成功。
- 等待只要這是檢查列表中最高優先級對,就會執行檢查。
- 正在進行此支付已發送支票,交易正在進行中
- 成功成對檢查成功。
- 失敗對檢查失敗的結果。
以下鏈接包含ICE流程的更多信息和圖表。
參考:
儘管我非常瞭解ICE的重要性,但我無法制定出答案。很好的問題! – Kevin