NPing 在 `TCP Connect` 上花费的时间明显少于 `TCP`

NPing 在 `TCP Connect` 上花费的时间明显少于 `TCP`

我使用 NPing(NMap 的 ping 工具)测量可能不响应 ICMP 的特定服务器的延迟。此外,服务器通常不运行 HTTP(S),我只检查与游戏反恐精英相关的特定 TCP 端口的延迟。

我总是尝试 ICMP、TCP 和 TCP-Connect,并分别执行它们。我的方法是:

  • 尝试 ICMP ( nping --icmp dstip -p dstport)
  • 然后,尝试 TCP ( nping --tcp dstip -p dstport)
  • 然后,尝试 TCP-CONNECT ( nping --tcp-connect dstip -p dstport)。
  • 从所有这些中获得最低的延迟。

在我的直觉中,预期的行为应该是

ICMP latency >= TCP-Connect latency >= TCP latency

实际情况是

ICMP latency >= TCP latency >>> TCP-Connect latency(其中 >>> 代表“大很多”)

举个例子,在一台服务器中,ICMP 会产生超时,TCP 可以绕过180ms,而 TCP-Connect 只会产生绕过3ms

对于为什么会发生这种情况有什么想法吗?

编辑1:该tcptraceroute工具还为我提供了3ms。两者非常接近并通过 IXP 连接。见下文:

~$ sudo tcptraceroute dstip dstport
Selected device ens3, address 172.16.1.6, port 58803 for outgoing packets
Tracing the path to dstip on TCP port dstport, 30 hops max
 1  my_localip (172.16.1.6) 0.139 ms  0.131 ms  0.155 ms
 2  my_isp_globalip  0.288 ms  0.233 ms  0.264 ms
 3  my_isp_bordergw  1.855 ms  0.311 ms  0.257 ms
 4  IXP_router_name (IXP_router_ip)  0.570 ms  0.420 ms  0.482 ms
 5  dst_bordergw  2.820 ms  2.967 ms  3.145 ms
 6  dst_internalrouter  2.736 ms  3.665 ms  2.331 ms
 7  dstname (dstip) [open]  3.095 ms  3.088 ms  3.145 ms

不过...为什么 NPing 的 TCP 模式会导致这么长的延迟?

编辑2:根据tcpdump,在 TCP 模式下,TCP Syn 响应大约在 左右3 to 6ms。那么为什么 NPing 会通知我180ms延迟?

数据:https://pastebin.com/v4mgacTR

相关内容