NAT分類
根據Stun協議(RFC3489),NAT大致分為下面四類
1) Full Cone 這種NAT內部的機器A串連過外網機器C後,NAT會開啟一個連接埠.然後外網的任何發到這個開啟的連接埠的UDP資料報都可以到達A.不管是不是C發過來的. 例如 A:192.168.8.100 NAT:202.100.100.100 C:292.88.88.88 A(192.168.8.100:5000) -> NAT(202.100.100.100 : 8000) -> C(292.88.88.88:2000) 任何發送到 NAT(202.100.100.100:8000)的資料都可以到達A(192.168.8.100:5000)
2) Restricted Cone 這種NAT內部的機器A串連過外網的機器C後,NAT開啟一個連接埠.然後C可以用任何連接埠和A通訊.其他的外網機器不行. 例如 A:192.168.8.100 NAT:202.100.100.100 C:292.88.88.88 A(192.168.8.100:5000) -> NAT(202.100.100.100 : 8000) -> C(292.88.88.88:2000) 任何從C發送到 NAT(202.100.100.100:8000)的資料都可以到達A(192.168.8.100:5000)
3)Port Restricted Cone 這種NAT內部的機器A串連過外網的機器C後,NAT開啟一個連接埠.然後C可以用原來的連接埠和A通訊.其他的外網機器不行. 例如 A:192.168.8.100 NAT:202.100.100.100 C:292.88.88.88 A(192.168.8.100:5000) -> NAT(202.100.100.100 : 8000) -> C(292.88.88.88:2000) C(202.88.88.88:2000)發送到 NAT(202.100.100.100:8000)的資料都可以到達A(192.168.8.100:5000) 以上三種NAT通稱Cone NAT.我們只能用這種NAT進行UDP打洞.
4)Symmetic 對於這種NAT.串連不同的外部目標.原來NAT開啟的連接埠會變化.而Cone NAT不會.雖然可以用連接埠猜測.但是成功的機率很小.因此放棄這種NAT的UDP打洞.