tcp_tw_recycle导致NAT网络TCP连接失败
来源:互联网 发布:windows文档加密 编辑:程序博客网 时间:2024/05/16 05:45
问题描述:
同时使用4个手机一起登陆游戏,会出现有手机登陆不上的问题(4个手机用wifi连在同一个局域网内)
使用同一内网中多个pc同时登陆游戏,都可以正常登陆
我们游戏登陆流程大概是 客户端先登陆Login Server,获取到Game Server的IP和端口,然后服务器主动断开连接,客户端再去连接Game Server
实验发现,手机上登陆不上的客户端,反复登陆,还是登陆不上,这时候使用命令发现有socket处于TIME_WAIT状态,等到TIME_WAIT状态结束,再登陆,则可以正常登陆
由于TCP执行主动关闭的一方才会经历TIME_WAIT状态,所以很容易想到,由客户端执行主动关闭,问题果然解决了。
但还是有不解的地方,于是在网上找到了如下参考连接,大概原因是说,由于服务器设置了 tcp_tw_recycle导致的问题,查看服务器 /etc/sysctl.conf 文件,果然设置了此参数,于是把sysctl.conf文件清空,再使用手机登陆,但还是有手机登陆不上,然后把tcp_tw_recycle改为0,并执行sysctl -p命令,就正常了,4个手机都能正常登陆。
参考连接:
http://huoding.com/2012/01/19/142
http://chenzhenianqing.cn/articles/1150.html
通过以上文章分析,可能出现问题的原因如下:
一个客户端连上Login Server,获取到Game Server的信息,然后Login Server主动断开连接,此时Login Server 的 Socket处于TIME_WAIT状态,由于设置了 tcp_tw_recycle参数,导致TIME_WAIT状态的socket被回收,而连接的端口信息被清除,但IP和时间戳仍被保存,倒是后来上来的分节如果时间戳小于此ip上之前的时间戳,则此分节会被丢弃。此处分析比较粗略,具体分析可参考上面的链接。
- tcp_tw_recycle导致NAT网络TCP连接失败
- [转]NAT网络下TCP连接建立时可能SYN包被服务器忽略-tcp_tw_recycle
- NAT网络下TCP连接建立时可能SYN包被服务器忽略-tcp_tw_recycle
- NAT网络下TCP连接建立时可能SYN包被服务器忽略-tcp_tw_recycle
- NAT网络下TCP连接建立时可能SYN包被服务器忽略-tcp_tw_recycle
- net.ipv4.tcp_tw_recycle 与 网络连接失败
- tcp_tw_recycle和tcp_timestamps导致connect失败问题
- tcp_tw_recycle和tcp_timestamps导致connect失败问题
- tcp_tw_recycle和tcp_timestamps导致connect失败问题
- tcp_tw_recycle和tcp_timestamps导致connect失败问题
- tcp_tw_recycle和tcp_timestamps导致connect失败问题
- tcp_tw_recycle和tcp_timestamps导致connect失败问题
- tcp_tw_recycle和tcp_timestamps导致connect失败问题
- tcp_tw_recycle和tcp_timestamps导致connect失败问题
- tcp timestamp和tcp_tw_recycle中引发connect 连接不上
- VMware-NAT连接网络
- 公网服务器或客户端为 NAT 网络的服务器不要同时开启 tcp_tw_recycle 和 tcp_timestamps
- 解决问题的记录【一】TCP连接过多导致新连接创建失败
- Qt学习历程(一):Qt5.5.1(mingw)静态编译步骤
- JS,Jquery获取各种屏幕的宽度和高度
- 解决Android 弹出软键盘将整个界面上移的问题
- Struts2-国际化
- Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator的用法
- tcp_tw_recycle导致NAT网络TCP连接失败
- ObjectC&&Swift 渐变色算法实现
- 在一个方框内上下左右移动图片
- 如何用PowerShell 修改Site Collection的URL?
- 5种服务器网络编程模型讲解
- Oracle pl/sql编程 11---loop循环
- 【.Net码农】修改WebBrowser控件的内核解决方案
- GTK+2.0编程范例代码分析-第一章(2)
- 范围最小值问题 (Range Minimum Query,RMQ)