搜索
bottom↓
回复: 21

路由器上UDP打洞需要的心跳时间最短要多少

[复制链接]

出0入0汤圆

发表于 2016-4-28 09:32:31 | 显示全部楼层 |阅读模式
路由器UDP通信端口开放的维持时间,都说会有一个很短的维持时间,也说每种路由器都不一样,那么有没有一个经验值,最短是多少呢?
设的 太短 对服务器压力不小,设的太长,可能会导致有些路由器时间超了。

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2016-4-28 09:40:16 | 显示全部楼层
UDP这个回收是和网络的繁忙程度有关的

出0入0汤圆

发表于 2016-4-28 10:05:45 | 显示全部楼层
不懂帮顶,以前研究过UDP打洞,发现对我来说有点难,就先放弃了,在一篇论文里中提到NAT设备最短只有20秒~

以下为论文的中文翻译:

3.6 UDP在空闲状态下的超时问题
由于UDP转换协议提供的“洞”不是绝对可靠的,多数NAT设备内部都有一个UDP转换的空闲状态
计时器,如果在一段时间内没有UDP数据通信,NAT设备会关掉由“打洞”操作打出来的“洞”,
做为应用程序来讲如果想要做到与设备无关,就最好在穿越NAT的以后设定一个穿越的有效期。
很遗憾目前没有标准有效期,这个有效期与NAT设备内部的配置有关,最短的只有20秒左右。
在这个有效期内,即使没有p2p数据包需要传输,应用程序为了维持该“洞”可以正常工作,也
必须向对方发送“打洞”维持包。这个维持包是需要双方应用都发送的,只有一方发送不会维持
另一方的session正常工作。除了频繁发送“打洞”维持包以外,还有一个方法就是在当前的“洞”
有效期过期之前,p2p客户端双方重新“打洞”,丢弃原有的“洞”,这也不失为一个有效的方法。

以下为原版论文,UDP超时问题在3.6节

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入42汤圆

发表于 2016-4-28 10:08:57 | 显示全部楼层
TCP 打洞时间是不是好一些,当然服务器比较累。

出0入0汤圆

 楼主| 发表于 2016-4-28 11:10:26 | 显示全部楼层
多谢楼上各位!

出5入42汤圆

发表于 2016-4-28 11:42:44 | 显示全部楼层
我刚才搜索了一下才了解打洞是什么意思,好像目的就是为了两个内网的机器能够直接相互通信,而甩开位于公网的中间服务器吧。

还有什么好处吗?在实际生活中,还有什么意义吗?因为现在使用QQ什么的,给人的感觉不都是内网内的机器在直接互相通信吗?虽然这中间有腾讯的服务器进行转发。

出0入0汤圆

 楼主| 发表于 2016-4-28 12:28:40 来自手机 | 显示全部楼层
主要的意义就是可以提高实时性

出0入0汤圆

发表于 2016-4-28 12:38:04 来自手机 | 显示全部楼层
TCP打洞太复杂 目前有几个标准 stun turn 针对不同场景的

出0入0汤圆

发表于 2016-4-28 12:38:53 来自手机 | 显示全部楼层
kevin_me 发表于 2016-4-28 11:42
我刚才搜索了一下才了解打洞是什么意思,好像目的就是为了两个内网的机器能够直接相互通信,而甩开位于公网 ...

主要是为了应对NAT NAT导致设备不能直接互联互通

出0入0汤圆

发表于 2016-4-28 12:40:16 来自手机 | 显示全部楼层
还有,最简单但是有点危险的方式是用upnp,不过很多路由器是关闭了upnp 的

出0入0汤圆

发表于 2016-4-28 12:47:51 | 显示全部楼层
不太会这样设计,因为一部分路由不支持UDP的端口映射

出0入33汤圆

发表于 2016-4-28 12:51:48 来自手机 | 显示全部楼层
udp心跳时间最好小于30秒。

出0入33汤圆

发表于 2016-4-28 12:52:43 来自手机 | 显示全部楼层
赶快上ipv6吧,ipv6就没有这个问题了

出0入0汤圆

发表于 2016-4-28 13:19:51 | 显示全部楼层
duedue 发表于 2016-4-28 12:28
主要的意义就是可以提高实时性

难道在同一个局域网内的两台机器上的QQ 通过打洞,就可以不经过腾讯的服务器了?  我怎么感觉怎么着都是会通过腾讯服务器的啊

出5入42汤圆

发表于 2016-4-28 13:37:38 | 显示全部楼层
imjacob 发表于 2016-4-28 13:19
难道在同一个局域网内的两台机器上的QQ 通过打洞,就可以不经过腾讯的服务器了?  我怎么感觉怎么着都是 ...

局域网内的两个QQ客户端之间发生超大文件,速度一般逼近网络带宽,感觉貌似没有经过腾讯的服务器了吧

出0入0汤圆

 楼主| 发表于 2016-4-28 15:30:07 | 显示全部楼层
imjacob 发表于 2016-4-28 13:19
难道在同一个局域网内的两台机器上的QQ 通过打洞,就可以不经过腾讯的服务器了?  我怎么感觉怎么着都是 ...

可能是腾讯服务器根据收发双方的WAN IP来决定 该次通话是否为内网。如果是内网的话   相当于路由器上的一个端口发数据给另一个端口   就相当于是内网通信

出0入0汤圆

发表于 2016-4-28 19:15:41 | 显示全部楼层
duedue 发表于 2016-4-28 15:30
可能是腾讯服务器根据收发双方的WAN IP来决定 该次通话是否为内网。如果是内网的话   相当于路由器上的一 ...

懂了,谢谢两位

出0入0汤圆

发表于 2016-4-28 19:54:40 | 显示全部楼层
学习的,路过

出0入0汤圆

发表于 2016-4-28 22:05:42 来自手机 | 显示全部楼层
用 tcp吧,走 mqtt.全世界都说好

出0入0汤圆

发表于 2016-4-28 22:17:34 | 显示全部楼层
wxws_wxws 发表于 2016-4-28 22:05
用 tcp吧,走 mqtt.全世界都说好

mqtt 也是实现应用层的互联互通 LZ是想打洞,实现的代价稍小一点,不过可能风险更大吧

出0入0汤圆

发表于 2016-4-29 14:32:40 | 显示全部楼层
wxws_wxws 发表于 2016-4-28 22:05
用 tcp吧,走 mqtt.全世界都说好

用mqtt和 udp打洞有什么关系啊?不懂,请教

出0入0汤圆

发表于 2016-4-29 14:48:57 来自手机 | 显示全部楼层
用TCP吧,UDP不可靠因素太多,很难做负载均衡
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-29 17:45

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表