nat 類型分4種
1、全錐形 full cone
A 與 主機B交互,nat轉換 A的內部地址及端口為 ip1 port1,ip1和port1為對外地址,任何機器能訪問。
2、ip 受限制(對B而言)
A 與 主機B交互,nat轉換 A的內部地址及端口為 ip1 port1,B要想訪問A,需要A先訪問過B(不管是否失敗),並且B的ip不能變,但是B的端口可以變。
3、端口 受限制(對B而言)
A 與 主機B交互,nat轉換 A的內部地址及端口為 ip1 port1,B要想訪問A,需要A先訪問過B(不管是否失敗),並且B的ip不能變,B端口也不能變。
4、對稱型
以上種,再nat轉換時,都會轉換成ip1 port1的形式,但是這種,訪問主機B,轉為ip1,port1,訪問主機C,轉為ip1,port2,或者ip2,port2
A 與 主機B交互,nat轉換 A的內部地址及端口為 ip1 port1,B要想訪問A,,需要A先訪問過B(不管是否失敗),並且B的ip不能變,B端口也不能變
nat穿透:
局域網的A訪問一個外部主機,這個主機返回A它的nat轉換后的ip1 port1。另一個局域網B訪問外部主機(stun),外部主機返回B被nat轉換后的ip2,port2。A訪問B,就是A去訪問ip2,port2。B訪問A,就是訪問ip1,port1。
非對稱與非對稱:由於A(客戶機)無論訪問哪個主機,A的nat都是將它轉換為ip1 port1(ip1 與port1都不會變化),因此A B都去訪問stun,得到的ip與port不會變化。因此可以打洞。
一端對稱,一端非對稱:A(非對稱Nat,且只能是ip不變,port變化的那種情況),一端非對稱B,且只能是 full cone 或者ip受限。首先B訪問A,B記錄A的ip1(只要ip1的信息發過來,就能收到),B的數據必然被A的nat丟掉,但是A就可以訪問B了,這兒假定A的nat轉換后的ip是不變的(A一般都是這種)。
對稱與對稱:A去訪問stun 得到的為Aip1 Aport1。B去訪問stun,得到Bip1 Bport1。 A去訪問B, A net記錄Bip1 Bport1, B去訪問A,自身nat將其轉換為BIp2, Bport2(Bip1,Bport1是訪問stun得到的),但是A的洞只為Bip1,Bport1留着,Bip2,Bport2根本鏈接不上A,所以2個都改為對稱Nat,根本沒法打穿。