如何穿越防火牆NAT,首先需要計算機節點可以自動判斷自己的NAT狀態,計算機節點內部內置了
判斷邏輯,在外部需要一臺STUN的服務器,通過發送請求後可以計算機節點自己所在NAT的情況.
在處理Full Cone NAT時由於IP地址和通訊端口都不做限制可以說它在通訊層面的級別和公網節
點是一致的.穿越這類NAT只需要內部先發起呼叫後,外部的被叫端可以比較輕鬆的建立通道.
由於處於嚴格控制的NAT後的節點間無法直接通訊,所以需要利用第三方服務器來做溝通的橋樑.
我們知道在私網後的計算機間IP不同不在一個網段,所以當他們需要溝通時往往藉助於處在公網
的計算機來溝通,公網計算機節點爲兩個都可以訪問到他的私網節點做好IP通道轉發私網節點間
的通訊信息,這個公網節點的計算機就稱隧道服務器.
處理雙方在Symmetric NAT 和 Port Restricted NAT後需要外部的隧道服務器來使的處於NAT後
的計算機節點可以溝通.
通訊的雙方如果有一方是Symmetric NAT 和 Port Restricted NAT,而另外一放在Full Cone NAT
或者公網的節點,NAT後的可以和Full Cone NAT和公網的節點直接通訊,反方向的通訊需要超級
節點先通知一下對方然後超級節點做隧道服務器.
雙方在Restricted Cone NAT後的節點由於他們的NAT不改變通訊端口,所以可以通過在NAT"打洞"
的技術讓其雙方通訊.
需要指出的是現在大多數的NAT是Cone類型的,這也是將來傳送數字音頻和視頻信號的INTERNET發
展方向,所以用戶在未來可能遇到的更多NAT不會是一定需要通訊隧道情況的NAT。
下面用列表說明一下幾種情況:假設ab節點需要通通訊
節點 防火牆類型 節點 防火牆類型 溝通方式
a 公網-> b Cone NAT(除Port Restricted NAT) 直接聯繫
a 公網-> b Symmetric NAT 和 Port Restricted NAT 直接聯繫
a 公網-> b 公網 直接聯繫
a Cone NAT
(除Port
Restricted NAT)-> b Cone NAT(除Port Restricted NAT) 可聯繫
a Cone NAT
(除Port
Restricted NAT)-> b Symmetric NAT 和 Port Restricted NAT 需要隧道支持
a Symmetric NAT
Port
Restricted NAT-> b Symmetric NAT 和 Port Restricted NAT 需要隧道支持