打洞技术说明-代码流程

说明:检测服务器有两台

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 natNAT服务器用不同于接收端口给客户发送的只限制同一IP

说明:该种类型client主动给外网A发送消息,此时通过NAT的路就有了,由于NAT是IP限制的,因此外部主机A可以使用不同端口发送消息给client

     给NAT服务器发送5次,

     有一次能收到回复,即为Restricted Cone nat

 

     五次均没有收到回复则继续往下进行

 

5、验证是不是Port Restricted ConenatNAT服务器用该接收端口给客户发送的既限制IP又限制PORT

说明:该种类型client主动给外网A发送消息,此时通过NAT的路就有了,由于NAT是PORT限制的,因此外部主机A只能 之前端口发送消息给client

     给NAT服务器发送5次,

     有一次能收到回复,即为Port Restricted Conenat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ygmdream

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值