说明:检测服务器有两台
1、验证是不是公网IP (请求NAT服务器返回自己外网IP PORT)
给NAT服务器发送5次,
五次均没有收到回复则认为UDP被封了,不再往下进行,利用TCP去连接NAT服务器,能收到回复则NAT=TCP
有一次能收到回复比较,如果满足(myPriIp ==ip_return1 && myPriPort == port_return1)
则不再往下进行,即为public net
不满足(myPriIp == ip_return1 &&myPriPort == port_return1)则继续往下进行
2、验证是不是full cone nat(NAT服务器让另台服务器直接给客户发送的)
说明:该种类型只要client主动给外网发送消息,此时通过NAT的路就有了,只要是外部机子发往
该NAT上记得外网IP PORT就会直接转给client的
给NAT服务器发送5次,
有一次能收到回复,即为full cone nat
五次均没有收到回复则继续往下进行
3、验证是不是symmetric nat (请求另台服务器返回自己外网IP PORT)
说明:该种类型client主动给外网A发送消息,此时通过NAT的路就有了,再当client主动给外网B发送消息,
由于外部IP 或者PORT不同,所以通过NAT时候发现是给外部不同主机发送的,就会给A和B使用不同的PORT
给NAT服务器发送5次,
五次均没有收到回复则认为UDP被封了,不再往下进行,利用TCP去连接NAT服务器,能收到回复则NAT=TCP
有一次能收到回复比较,如果满足ip_return1!=ip_return2 || port_return1!=port_return2则不再往下进行,即为symmetric nat,接着用TCP去连接NAT服务器,能收到回复则NAT=TCP
不满足ip_return1!=ip_return2 ||port_return1!=port_return2则继续往下进行
4、验证是不是Restricted Cone nat(NAT服务器用不同于接收端口给客户发送的) 只限制同一IP
说明:该种类型client主动给外网A发送消息,此时通过NAT的路就有了,由于NAT是IP限制的,因此外部主机A可以使用不同端口发送消息给client
给NAT服务器发送5次,
有一次能收到回复,即为Restricted Cone nat
五次均没有收到回复则继续往下进行
5、验证是不是Port Restricted Conenat(NAT服务器用该接收端口给客户发送的)既限制IP又限制PORT
说明:该种类型client主动给外网A发送消息,此时通过NAT的路就有了,由于NAT是PORT限制的,因此外部主机A只能 之前端口发送消息给client
给NAT服务器发送5次,
有一次能收到回复,即为Port Restricted Conenat