UDP socket访问同一台服务器外网端口怎么一直在变?

时间:2021-01-11 07:33:15
这个端口是用来保活端口用的。端口为什么一直在变,我设置的心跳包时间是15秒一次!!!!!!

UDP socket访问同一台服务器外网端口怎么一直在变?

这种NAT 属于 什么NAT啊。

Symmetric NAT :只要目标地址不变 ,外网端口也不会变,所以肯定不是Symmetric NAT....

11 个解决方案

#1


人呢????好冷清啊。。。

#2


描述下你的简单逻辑,打印信息的含义是什么

#3


引用 2 楼 lostying 的回复:
描述下你的简单逻辑,打印信息的含义是什么


这个打印信息是在公网服务器上的,用来接收用户心跳包。IP后面的字段是客户端NAT上分配的端口。
我的问题是 为什么这个端口在短时间内不是固定的呢? 不固定的话我服务器在该段时间内就无法发数据给该客户端了。。。 

#4


15秒一次, 你改小点试试

#5


引用 3 楼 z8323664 的回复:
引用 2 楼 lostying 的回复:描述下你的简单逻辑,打印信息的含义是什么

这个打印信息是在公网服务器上的,用来接收用户心跳包。IP后面的字段是客户端NAT上分配的端口。
我的问题是 为什么这个端口在短时间内不是固定的呢? 不固定的话我服务器在该段时间内就无法发数据给该客户端了。。。

可能NAT上的超时小于你的15秒呗,你bind一个端口来发送就可以固定了,何必让系统每次自动分配呢

#6


引用 5 楼 lostying 的回复:
引用 3 楼 z8323664 的回复:引用 2 楼 lostying 的回复:描述下你的简单逻辑,打印信息的含义是什么

这个打印信息是在公网服务器上的,用来接收用户心跳包。IP后面的字段是客户端NAT上分配的端口。
我的问题是 为什么这个端口在短时间内不是固定的呢? 不固定的话我服务器在该段时间内就无法发数据给该客户端了。。。
可能NAT上的超时小于你的15秒……

我自己弄错了,不关bind的事,那就是楼上某人说的减小时间间隔来试试,15秒对于NAT来说也许超时了,路由就不保留你的对应关系了,下次再发送时又是新建的对应关系.

#7


15秒对于系统来说负担太大了。带宽不够

#8


引用 7 楼 z8323664 的回复:
15秒对于系统来说负担太大了。带宽不够

如果是非对称型NAT,你可以往别的地址发嘛,只要保证NAT上你的对应关系保持就行了,如果是对称型的就得想其他办法了.

#9


引用 8 楼 lostying 的回复:
引用 7 楼 z8323664 的回复:15秒对于系统来说负担太大了。带宽不够
如果是非对称型NAT,你可以往别的地址发嘛,只要保证NAT上你的对应关系保持就行了,如果是对称型的就得想其他办法了.
一语点型梦中人啊。。。自己太纠结了。。。。不过如果是Port Restricted Cone NAT类型的话也没办法穿透了

#10


引用 9 楼 z8323664 的回复:
引用 8 楼 lostying 的回复:引用 7 楼 z8323664 的回复:15秒对于系统来说负担太大了。带宽不够
如果是非对称型NAT,你可以往别的地址发嘛,只要保证NAT上你的对应关系保持就行了,如果是对称型的就得想其他办法了.一语点型梦中人啊。。。自己太纠结了。。。。不过如果是Port Restricted Cone NAT类型的话也没办法穿透了
      ……

穿透的话可以猜测嘛,连起3个socket,1,3发服务器,2发对方,如果1,3差值为1,可以推断2的端口,不过这只是最简单的,复杂的就更头疼了.

#11


引用 10 楼 lostying 的回复:
引用 9 楼 z8323664 的回复:引用 8 楼 lostying 的回复:引用 7 楼 z8323664 的回复:15秒对于系统来说负担太大了。带宽不够
如果是非对称型NAT,你可以往别的地址发嘛,只要保证NAT上你的对应关系保持就行了,如果是对称型的就得想其他办法了.一语点型梦中人啊。。。自己太纠结了。。。。不过如果是Port Restricted Cone N……


恩, 谢谢!!!有关于端口猜测的文章吗?

#1


人呢????好冷清啊。。。

#2


描述下你的简单逻辑,打印信息的含义是什么

#3


引用 2 楼 lostying 的回复:
描述下你的简单逻辑,打印信息的含义是什么


这个打印信息是在公网服务器上的,用来接收用户心跳包。IP后面的字段是客户端NAT上分配的端口。
我的问题是 为什么这个端口在短时间内不是固定的呢? 不固定的话我服务器在该段时间内就无法发数据给该客户端了。。。 

#4


15秒一次, 你改小点试试

#5


引用 3 楼 z8323664 的回复:
引用 2 楼 lostying 的回复:描述下你的简单逻辑,打印信息的含义是什么

这个打印信息是在公网服务器上的,用来接收用户心跳包。IP后面的字段是客户端NAT上分配的端口。
我的问题是 为什么这个端口在短时间内不是固定的呢? 不固定的话我服务器在该段时间内就无法发数据给该客户端了。。。

可能NAT上的超时小于你的15秒呗,你bind一个端口来发送就可以固定了,何必让系统每次自动分配呢

#6


引用 5 楼 lostying 的回复:
引用 3 楼 z8323664 的回复:引用 2 楼 lostying 的回复:描述下你的简单逻辑,打印信息的含义是什么

这个打印信息是在公网服务器上的,用来接收用户心跳包。IP后面的字段是客户端NAT上分配的端口。
我的问题是 为什么这个端口在短时间内不是固定的呢? 不固定的话我服务器在该段时间内就无法发数据给该客户端了。。。
可能NAT上的超时小于你的15秒……

我自己弄错了,不关bind的事,那就是楼上某人说的减小时间间隔来试试,15秒对于NAT来说也许超时了,路由就不保留你的对应关系了,下次再发送时又是新建的对应关系.

#7


15秒对于系统来说负担太大了。带宽不够

#8


引用 7 楼 z8323664 的回复:
15秒对于系统来说负担太大了。带宽不够

如果是非对称型NAT,你可以往别的地址发嘛,只要保证NAT上你的对应关系保持就行了,如果是对称型的就得想其他办法了.

#9


引用 8 楼 lostying 的回复:
引用 7 楼 z8323664 的回复:15秒对于系统来说负担太大了。带宽不够
如果是非对称型NAT,你可以往别的地址发嘛,只要保证NAT上你的对应关系保持就行了,如果是对称型的就得想其他办法了.
一语点型梦中人啊。。。自己太纠结了。。。。不过如果是Port Restricted Cone NAT类型的话也没办法穿透了

#10


引用 9 楼 z8323664 的回复:
引用 8 楼 lostying 的回复:引用 7 楼 z8323664 的回复:15秒对于系统来说负担太大了。带宽不够
如果是非对称型NAT,你可以往别的地址发嘛,只要保证NAT上你的对应关系保持就行了,如果是对称型的就得想其他办法了.一语点型梦中人啊。。。自己太纠结了。。。。不过如果是Port Restricted Cone NAT类型的话也没办法穿透了
      ……

穿透的话可以猜测嘛,连起3个socket,1,3发服务器,2发对方,如果1,3差值为1,可以推断2的端口,不过这只是最简单的,复杂的就更头疼了.

#11


引用 10 楼 lostying 的回复:
引用 9 楼 z8323664 的回复:引用 8 楼 lostying 的回复:引用 7 楼 z8323664 的回复:15秒对于系统来说负担太大了。带宽不够
如果是非对称型NAT,你可以往别的地址发嘛,只要保证NAT上你的对应关系保持就行了,如果是对称型的就得想其他办法了.一语点型梦中人啊。。。自己太纠结了。。。。不过如果是Port Restricted Cone N……


恩, 谢谢!!!有关于端口猜测的文章吗?