- 主题:请教一个关于connect()疑似trigger了TCP SYN的问题
一个很简单的echo server/client可以复现。
被这个问题折腾了好久,请教各位socket programming巨佬。
server端运行在x86上,TCP,打开一个端口,等待连接。
client端运行在arm上,尝试连接这个端口。
运行中client端的connect()函数要么毫秒级立刻返回成功连接。
要么等待8/16/32/64秒后返回成功连接。
要么等待约130秒后返回超时。
这个8/16/32/64太规律了。
google了一下说可能是激发了TCP SYN的问题。
但是我server端端口打开后,只有一个client尝试连接这个端口,远谈不上flood。
请问什么能导致这个?
我知道的是ARM端(运行client)端有些特别的network设置,防止入侵的。
这个有关系吗?
--
FROM 61.188.78.*
通过IP连接的
因为ARM端(client端)的某些设置,导致只能用IP连接。
【 在 ziqin 的大作中提到: 】
: 通过ip连的还是domain连的
:
--
FROM 64.207.220.*
谢谢你的建议!我得先学习一下tcpdump。
【 在 weiwallz 的大作中提到: 】
: 8/16/32/64这个是tcp sync retry的过程中,发送方自动将重传间隔翻倍的操作
:
: rfc6298
: ...................
--
FROM 64.207.220.*
试了一下抓包,并且了解了一些背景。
ARM系统(client端)是一个IPoIB,然后所有的tcp转到了某个host (call it host_A), 然后host_A再找到路径转到x86的服务端。
server端抓包显示的from都是来自host_A,而不是arm系统。
【 在 speedboy2998 的大作中提到: 】
: 1. 先用 TCPDUMP 抓包
: 2. 找一个没有特殊网络和安全设置的 ARM 机器,调试成功后,再到你这个 ARM 设备上调试
:
--
FROM 64.207.220.*