TCP客户端建立连接后等待

时间:2019-05-02 07:40:27

标签: tcp tcpdump

我有一个HTTP服务器和一个客户端(我使用curl进行测试)。我的问题是,即使是最简单的“ ping”请求也需要3-5秒才能完成。我在服务器上运行了tcpdump,看来建立TCP连接后,客户端(curl)等待3-4秒发送HTTP请求:

  

09:06:55.079376 IP客户端>服务器:标志[S],seq 1639466412,win 64240,选项[mss 1358,nop,wscale 8,nop,nop,sackOK],长度0

     

09:06:55.079457 IP服务器>客户端:标志[S。],seq 2519785093,ack 1639466413,win 29200,选项[mss 1460,nop,nop,sackOK,nop,wscale 7],长度0

     

09:06:55.087145 IP客户端>服务器:标志[。],确认1,获胜1029,长度0

     

09:06:59.722060 IP客户端>服务器:标志[P。],seq 1:83,ack 1,win 1029,长度82:HTTP:GET / ping HTTP / 1.1

您可以看到tcpdump输出的3至4行之间的问题。

您知道什么可能导致此问题吗?这是在客户端吗?还是在服务器端也应该检查?

更新 如果我使用telnet连接到服务器的端口并发送GET,则服务器会立即回复。

1 个答案:

答案 0 :(得分:0)

  • Flags [S] Syn
  • Flags [S.]-Syn Ack
  • Flags [.]-占位符,通常用于ACK。
  • Flags [P.]-推Ack

  • 您可以在卷曲命令前加上time吗?如下所示。

  • 这些主机,两者之间是否存在延迟?

作为对同一主机(终端)的测试:

terminal a $ python -m SimpleHTTPServer 8989

terminal b $ time curl -vvv localhost:8989 结果看起来像这样:

real    0m0.018s
user    0m0.006s
sys     0m0.005s

这时很难说这是客户端还是服务器端,这取决于您要查询的数据。您可以共享该查询/卷曲命令吗?

相关问题