NAT型別及打洞原理

2021-09-26 22:32:16 字數 1461 閱讀 9029

nat是network address translation的縮寫,指的是主機位址與公網ip的對映規則;就是說比如你有乙個pc,連到區域網,然後你要訪問163.com,這時候區域網會你的ip和開啟的位址對映成1個"公網ip:port"去訪問163.com;然後163.com發資料給你,它發的位址一定是公網ip:port;這時候區域網會把這個「公網ip:port」的資料**給你pc;實際上可能更加複雜,可能需要多級對映:及你pc處的位置是區域網的區域網。

這樣看一下nat型別(公網ip:port對映規則)

1.公網ip,沒有對映規則

2.full cone nat(開放式),是指你pc開啟的埠,對映到「公網ip:port」是固定的

3.restricted cone nat(位址限制),是指你pc開啟的埠,只有你傳送了資料的位址才開啟;比如從同一私網位址埠192.168.0.8:4000發至公網的所有請求都對映成同乙個公網位址埠1.2.3.4:62000,只有當內部主機192.168.0.8:4000先給伺服器c 6.7.8.9傳送乙個資料報後,192.168.0.8才能收到6.7.8.9傳送到1.2.3.4:62000的資料報。

4.port restricted cone nat(埠限制),是指你pc開啟的埠,只有你傳送了資料ip:port才開啟;比如從同一私網位址埠192.168.0.8:4000發至公網的所有請求都對映成同乙個公網位址埠1.2.3.4:62000,只有當內部主機192.168.0.8先向外部主機位址埠6.7.8.9:8000傳送乙個資料報後,192.168.0.8才能收到6.7.8.9:8000傳送到1.2.3.4:62000的資料報。

5.symmetric nat (完全對稱型),是指你pc開啟的埠,對映到「公網ip:port」對應不同公網port或port,對映的port都不一樣

打洞原理

首先tcp需要3次握手建立連線,以流式通訊,不存在打洞一說,打洞需要伺服器,來獲取自己裝置對映的公網ip及埠,一般使用udp;還有最好知道自己的網路型別,這個使用stun伺服器,原理就是stun伺服器開啟兩個ip(公網),每個ip開啟兩個埠,裝置用同乙個埠訪問乙個ip:port,伺服器從另外3個地方傳送資料判斷是否位址受限或埠受限,裝置收不到是symmetric nat型別。

打洞一端為公網或者full cone nat,不需要打洞;打洞一端為restricted cone nat,兩邊互相發資料,restricted cone nat端就可以收到資料的,然後restricted cone nat再端往接受資料的ip:port發資料就通了,兩端都為port restricted cone nat;同時往對映位址發資料也通了,兩端都為symmetric nat是肯定不能打洞的;一端為port restricted cone nat,一端為symmetric nat ;由於symmetric nat對映的port不一樣,也不好打洞,想打洞需要port restricted cone nat往乙個個埠試傳送資料,這樣成功率很低

NAT打洞原理

具體例子 nat211.133.和nat211.134.之間需要進行通訊,但開始不能直接就發資料報,我們需要乙個中間人,這個就是外部索引伺服器 我們假設是211.135.7000 當nat211.133.向211.135.7000傳送資料報,211.135.7000是可以正常接收到資料,因為它是屬於...

Udp打洞,判斷Nat網路型別

一種基於udp協議實現p2p智慧型穿越nat的方案 於仁崗1常州工學院,常州 e mail yurengang123 126.com 摘 要 由於目前nat network address translation 網路位址轉換協議 的廣泛運用,處於internet上的公網主機與處於 nat之後的主機...

NAT穿越 TCP打洞

在處於nat之後的兩台主機之間建立p2p tcp連線比建立相應的udp要稍微複雜,但在協議層次,tcp打洞非常類似與udp打洞。然而tcp協議本身比較複雜,因此支援的nat比較少。然而,在nat支援tcp打洞的情況下,tcp打洞像upd打洞那樣快並且可靠。穿透 行為良好 的nat的tcp p2p連線...