tcptrack 显示 SYN_SENT 连接,这是否意味着 SYN 包到达了服务器?

xpu*_*xpu 9 timeout connection tcp

我们的服务器遇到了严重的连接超时问题,所以我们用tcptrack跟踪tcp连接

我们发现,如果客户端开始连接到服务器,tcptrack 显示连接,但处于 SYN_SENT 状态,并且netstat -nat什么也不显示。(tcptrack & netstat 都在服务器上运行)

  1. 这是否意味着syn请求到达了服务器?没有发回同步/确认?
  2. 为什么 tcptrack 可以报告此连接但 netstat 不能?
  3. 一般apache无法与客户端建立连接可能是什么问题?

ab在同一个内网中做了一个基准测试,到指定的网卡,它处理了 10000 个并发连接和 400000 个请求

ps:这不是每次都发生,但确实发生了很多

pps:有没有什么好的工具可以追踪tcp连接丢失的地方?

Dav*_*rtz 5

这意味着 SYN 是由客户端发送的,并且没有到达服务器,服务器没有回复它,或者服务器选择回复它而不跟踪它。服务器不需要跟踪它发送的每个 SYN 回复(并且可以使用SYN cookie),因为它们可能被欺骗,并且这样做会产生拒绝服务攻击的风险。