- WebRTC 教程
- WebRTC - 首頁
- WebRTC - 概述
- WebRTC - 架構
- WebRTC - 環境
- WebRTC - MediaStream APIs
- WebRTC - RTCPeerConnection APIs
- WebRTC - RTCDataChannel APIs
- WebRTC - 傳送訊息
- WebRTC - 信令
- WebRTC - 瀏覽器支援
- WebRTC - 移動端支援
- WebRTC - 影片演示
- WebRTC - 語音演示
- WebRTC - 文字演示
- WebRTC - 安全性
- WebRTC 資源
- WebRTC - 快速指南
- WebRTC - 有用資源
- WebRTC - 討論
WebRTC - 路由查詢
為了連線到另一個使用者,您應該找到繞過您自己網路和另一個使用者網路的清晰路徑。但是,您使用的網路可能存在多個級別的訪問控制,以避免安全問題。有多種技術用於查詢與另一個使用者的清晰路徑:
- STUN(用於 NAT 的會話穿越實用程式)
- TURN(使用 NAT 周圍的中繼進行穿越)
- ICE(互動式連線建立)
為了瞭解它們的工作原理,讓我們看看典型的 WebRTC 連線的佈局:
第一步是找出您自己的 IP 地址。但是,當您的 IP 地址位於網路路由器之後時,就會出現問題。為了提高安全性並允許多個使用者使用相同的 IP 地址,路由器會隱藏您自己的網路地址並將其替換為另一個地址。當您在您自己和公共網路之間有多個 IP 地址時,這是一種常見情況。
STUN
STUN 有助於識別每個使用者並在它們之間找到良好的連線。首先,它向啟用 STUN 協議的伺服器發出請求。然後,伺服器會發送回客戶端的 IP 地址。客戶端現在可以使用此 IP 地址來識別自身。
因此,基本上有兩個步驟:
要使用此協議,您需要連線到啟用 STUN 的伺服器。好訊息是 Chrome 和 Firefox 為您提供了開箱即用的預設伺服器來測試。
對於在生產環境中的應用,您需要部署您自己的 STUN 和 TURN 伺服器供您的客戶端使用。目前有幾項提供此服務的開源服務。
TURN
有時防火牆不允許任何基於 STUN 的流量到達另一個使用者。例如,在某些企業 NAT 中。這就是 TURN 作為連線另一個使用者不同方法出現的地方。
TURN 的工作原理是在客戶端之間新增一箇中繼。此中繼代表使用者充當對等連線。然後,使用者從 TURN 伺服器獲取其資料。然後,TURN 伺服器將獲取並重定向為每個使用者傳送的每個資料包。這就是為什麼它是沒有替代方案時的最後手段。
大多數情況下,使用者無需 TURN 即可正常工作。在設定生產應用程式時,最好確定使用 TURN 伺服器的成本是否值得。
ICE
現在我們可以瞭解 STUN 和 TURN 如何透過 ICE 整合在一起。它利用 STUN 和 TURN 來提供成功的對等連線。ICE 查詢並按排序順序測試一系列對兩個使用者都有效的地址。
當 ICE 開始時,它對每個使用者的網路一無所知。ICE 的過程將逐步經歷一系列階段,以使用不同的技術來發現每個客戶端的網路設定方式。主要任務是找出有關每個網路的足夠資訊,以便建立成功的連線。
STUN 和 TURN 用於查詢每個 ICE 候選。ICE 將使用 STUN 伺服器查詢外部 IP。如果連線失敗,它將嘗試使用 TURN 伺服器。當瀏覽器找到新的 ICE 候選時,它會將此資訊通知客戶端應用程式。然後,應用程式透過信令通道傳送 ICE 候選。找到並測試足夠的地址後,連線即建立。