tcp 三次握手的奇葩问题

2014-08-22 22:04:27 +08:00
 huaiyinhou
现象:服务端应用部署在rhl 6.4上,监听端口为8112 、8114 、8116 、8118。由另一台机器发请求后,发现监听一会就没了,客户端链接超时或拒绝连接。通过tcpdump监控到问题出现在tcp三次握手中的第二次一直无法成功。但把服务端换了其他端口就没问题(上述端口肯定未被占用)。后来没有办法,把apache 的服务端口更改为上述端口,测试一直没出现问题,tcp我手成功,业务测试正常。
最后只得在这台服务器上再模拟客户端请求,问题依旧出现在三次握手,只要换了端口肯定没问题,至今未能解决(selinux iptables全是关的)。
希望大家帮我分析一下。
5817 次点击
所在节点    Linux
15 条回复
tftk
2014-08-22 22:34:35 +08:00
第二次握手为什么失败?
huaiyinhou
2014-08-22 22:41:24 +08:00
@tftk 没找到原因
tftk
2014-08-22 22:46:11 +08:00
确定抓包也看不到为什么失败?
cloveryume
2014-08-22 23:20:50 +08:00
bind这几个端口,向外连,看看会怎么样?
zeayes
2014-08-23 00:25:52 +08:00
第二次握手失败,返回的是什么错误信息呢?
huaiyinhou
2014-08-23 07:14:58 +08:00
@tftk
hslx111
2014-08-23 09:16:01 +08:00
无法成功,那失败的信息有吗?
cloudzhou
2014-08-23 09:55:18 +08:00
考虑一下防火墙和路由
jedihy
2014-08-23 10:54:12 +08:00
@zeayes TCP除了能发RST包之外还能返回错误信息?
huaiyinhou
2014-08-23 11:21:36 +08:00
@jedihy rst都没有
huaiyinhou
2014-08-23 11:25:46 +08:00
@tftk 由于在本机服务器测试,tcpdump 没有看到
jedihy
2014-08-23 11:57:58 +08:00
@huaiyinhou 就是你发了SYN之后,没有SYN的ACK回来?
zeayes
2014-08-23 23:46:52 +08:00
@jedihy 我的意思没表述清楚。


@huaiyinhou 楼主的意思是:client SYN后,server ACK/SYN后,client没有ACK?
tywtyw2002
2014-08-24 05:33:31 +08:00
楼主把tcpdump -vvv的结果发来。
huaiyinhou
2014-08-25 15:04:01 +08:00
@tywtyw2002 稍后

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/129380

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX