nat (Network Address Translation)是一種吧內網ip端口轉換爲外網地址端口的網絡設備。
一般作爲局域網內網的網關。
nat有幾種不同的類型
1 full clone 全克隆,一個內網ip,端口映射一組外網ip,端口
2 地址限制型克隆,一組內網ip,端口也對應一組外網ip,端口,但是隻有內網ip和端口先向另一個外網ip和端口發送數據包之後,才能正常相互通信。發出去包之後,nat登記了外網的ip地址。
3 比第二種要求更嚴格一些,就是除了限制了外網的ip,同時也限制了外網的端口
4 對稱型nat, 每次會話不保證內網ip和端口映射到同一個ip和地址
p2p 打洞,一般指的是udp打洞,1,2,3都可以打洞 4 不行,因爲ip地址在變化
1 很簡單,內網ip端口直接往外發包,然後外網三方服務器迴應
2 內網機器A,B先向外網服務器C發送包,然後C記錄A,B的外網ip和端口。 然後C告訴A,B的外網ip和端口,告訴B,A的外網ip和端口,然後A向B的外網地址和端口發包,同樣B也這樣發包,這樣雖然包沒能發送出去,但是相互在自己的nat上登記了對方的ip和端口,下一次發包就能通信了。
3 打洞方式和2一樣。
4 不能打洞