您现在的位置是:首页 > 生活 > 正文

nat类型差怎么解决(nat类型)

发布时间:2024-07-20 00:15:43编辑:姚文寒来源:

导读 今天小编岚岚来为大家解答以上的问题。nat类型差怎么解决,nat类型相信很多小伙伴还不知道,现在让我们一起来看看吧!1、NAT类型有三种情况

今天小编岚岚来为大家解答以上的问题。nat类型差怎么解决,nat类型相信很多小伙伴还不知道,现在让我们一起来看看吧!

1、NAT类型有三种情况:NAT1是指直连的2、NAT2是通过路由器连接3、网络类型为NAT3的意思是一些功能受限,电脑不能参加联机,参加派对不能说话,相当于自己给自己关小黑屋。

2、NAT类型检测前提条件:有一个公网的Server并且绑定了两个公网IP(IP-1,IP-2)。

3、这个Server做UDP监听(IP-1,Port-1),(IP-2,Port-2)并根据客户端的要求进行应答。

4、第一步:检测客户端是否有能力进行UDP通信以及客户端是否位于NAT后?客户端建立UDP socket然后用这个socket向服务器的(IP-1,Port-1)发送数据包要求服务器返回客户端的IP和Port, 客户端发送请求后立即开始接受数据包,要设定socket Timeout(300ms),防止无限堵塞. 重复这个过程若干次。

5、如果每次都超时,无法接受到服务器的回应,则说明客户端无法进行UDP通信,可能是防火墙或NAT阻止UDP通信,这样的客户端也就 不能P2P了(检测停止)。

6、2、当客户端能够接收到服务器的回应时,需要把服务器返回的客户端(IP,Port)和这个客户端socket的 (LocalIP,LocalPort)比较。

7、如果完全相同则客户端不在NAT后,这样的客户端具有公网IP可以直接监听UDP端口接收数据进行通信(检 测停止)。

8、否则客户端在NAT后要做进一步的NAT类型检测(继续)。

9、第二步:检测客户端NAT是否是Full Cone NAT?客户端建立UDP socket然后用这个socket向服务器的(IP-1,Port-1)发送数据包要求服务器用另一对(IP-2,Port-2)响应客户端的请求往回 发一个数据包,客户端发送请求后立即开始接受数据包,要设定socket Timeout(300ms),防止无限堵塞. 重复这个过程若干次。

10、如果每次都超时,无法接受到服务器的回应,则说明客户端的NAT不是一个Full Cone NAT,具体类型有待下一步检测(继续)。

11、如果能够接受到服务器从(IP-2,Port-2)返回的应答UDP包,则说明客户端是一个Full Cone NAT,这样的客户端能够进行UDP-P2P通信(检测停止)。

12、第三步:检测客户端NAT是否是Symmetric NAT?客户端建立UDP socket然后用这个socket向服务器的(IP-1,Port-1)发送数据包要求服务器返回客户端的IP和Port, 客户端发送请求后立即开始接受数据包,要设定socket Timeout(300ms),防止无限堵塞. 重复这个过程直到收到回应(一定能够收到,因为第一步保证了这个客户端可以进行UDP通信)。

13、2、用同样的方法用一个socket向服务器的(IP-2,Port-2)发送数据包要求服务器返回客户端的IP和Port。

14、 3、比较上面两个过程从服务器返回的客户端(IP,Port),如果两个过程返回的(IP,Port)有一对不同则说明客户端为Symmetric NAT,这样的客户端无法进行UDP-P2P通信(检测停止)。

15、否则是Restricted Cone NAT,是否为Port Restricted Cone NAT有待检测(继续)。

16、第四步:检测客户端NAT是否是Restricted Cone NAT还是Port Restricted Cone NAT?客户端建立UDP socket然后用这个socket向服务器的(IP-1,Port-1)发送数据包要求服务器用IP-1和一个不同于Port-1的端口发送一个UDP 数据包响应客户端, 客户端发送请求后立即开始接受数据包,要设定socket Timeout(300ms),防止无限堵塞. 重复这个过程若干次。

17、如果每次都超时,无法接受到服务器的回应,则说明客户端是一个Port Restricted Cone NAT,如果能够收到服务器的响应则说明客户端是一个Restricted Cone NAT。

18、以上两种NAT都可以进行UDP-P2P通信。

19、注:以上检测过程中只说明了可否进行UDP-P2P的打洞通信,具体怎么通信一般要借助于Rendezvous Server。

20、另外对于Symmetric NAT不是说完全不能进行UDP-P2P达洞通信,可以进行端口预测打洞,不过不能保证成功。

本文就为大家分享到这里,希望小伙伴们会喜欢。

标签:

上一篇
下一篇