Wireshark 正常通信、线路延时、客户端延时、服务端延时

1. 以 HTTP 通信为例。正常通信抓包信息, TCP 三次握手 SYN --> SYN/ACK --> ACK 花费时间很少,并且 HTTP 请求后 ACK 响应客户端也非常快。

 

 2. 以 HTTP 通信为例。 线路延时信息,TCP 三次握手 ,在收到 SYN/ACK 返回有 0.878s 的延时,一种延时一般都是客户端和服务端之间的设备导致的。当服务端收到一个 SYN 数据包时,由于不涉及任何传输层以上的处理,发送一个响应只需要非常小的处理量。即使服务器正承受巨大的流量负载,通常它也会迅速地向 SYN 数据包响应 SYN/ACK 。这排除服务器导致高延时的可能性。并且从第三个包 ACK 和 HTTP GET 请求也是快速响应
查看第五个包,延时更加明显。收到 HTTP GET 请求后,服务器在发送数据之前会先发送一个 ACK ,理论同样也不需要花费太多耗时的。这也是线路延时的另一个标志。
虽然通过这个包,你没有看到具体延时的确切原因,但它起码告诉你不是客户端也不是服务端的问题,所以你能意识到延时是因为中间的一些设备除了问题。 你就可以开始检查中间链路的如 防火墙、路由器、代理服务器等设备。

 

3. 以 HTTP 通信为例。客户端延时信息,TCP 握手正常,但 HTTP GET / 请求确非常慢,延时 1.38s。这个数据包是客户端发起的 HTTP GET 请求,与服务器无关。并且发送完后第五个数据包服务端响应是非常快的。这意味着通信延时的根源在于 客户端

 

 4. 以 HTTP 通信为例。服务端延时信息,TCP 握手正常,第四个包客户端发起 HTTP GET 也是非常的快。直到第六个数据包,它是服务端响应客户端 GET 请求的第一个 HTTP 数据包,由此可以分析出服务端未能及时处理这个数据,最终延时的根源指向了 服务端

 

 

 

 

--源自:《Wireshark 数据包分析实战(第2版)》第 9 章——网络不再卡

 

posted @ 2021-12-25 16:37  秋风凌冬  阅读(1324)  评论(0)    收藏  举报