如何使用 Wireshark 确定文件是串行下载还是并行下载?

网络工程 tcp 线鲨
2022-02-22 20:09:53

在下面链接提供的http-ethereal-trace中有三个HTTP GET请求。第二个和第三个请求分别下载GIF和JPG格式的图像。我们如何确定这两个文件是以串行方式还是并行方式下载的建立的 HTTP 和 TCP 连接?请详细解释。

链接:- https://drive.google.com/open?id=1Wa7G9TCjoouUYYyrczfAaN1JQafU-hHI

2个回答

它们是并行的,您可以在任何方便的捕获工具中看到它们。它们是并行的,因为第二个在第一个处理完成之前打开。 事实上,处理甚至还没有开始。

我们看到两个 TCP 相隔几毫秒打开,一个在端口 4308 上,一个在端口 4309 上:

06:38:41.734948 IP (tos 0x0, ttl 128, id 694, offset 0, flags [DF], proto TCP (6), length 48)
    192.168.1.102.4308 > 165.193.123.218.80: Flags [S], seq 4246632680, win 64240, options [mss 1460,nop,nop,sackOK], length 0
06:38:41.736408 IP (tos 0x0, ttl 128, id 699, offset 0, flags [DF], proto TCP (6), length 48)
    192.168.1.102.4309 > 134.241.6.82.80: Flags [S], seq 4246666212, win 64240, options [mss 1460,nop,nop,sackOK], length 0

我们从它们的获取中识别流,稍后,片段显示从端口 4308 获取 GIF 和 4309 获取 JPEG:

06:38:41.756098 IP (tos 0x0, ttl 128, id 703, offset 0, flags [DF], proto TCP (6), length 611)
    192.168.1.102.4308 > 165.193.123.218.80: Flags [P.], seq 1:572, ack 1, win 64860, length 571: HTTP, length: 571
    GET /catalog/images/pearson-logo-footer.gif HTTP/1.1
    ...
06:38:41.759416 IP (tos 0x0, ttl 128, id 705, offset 0, flags [DF], proto TCP (6), length 595)
    192.168.1.102.4309 > 134.241.6.82.80: Flags [P.], seq 1:556, ack 1, win 64240, length 555: HTTP, length: 555
    GET /~kurose/cover.jpg HTTP/1.1
    ...

上面的输出是使用 tcpdump 捕获工具完成的,过滤 TCP 流。

tcpdump -n -v -K -r http-ethereal-trace-4 ip proto \\tcp

我会这样做:

使用wireshark去edit --> preferences选择

appearance --> columns

在那里我会添加一个新列,而不是给它一个类似的名称stream-idxtcp.stream用作字段值。

现在,您在摘要行中获得了每个数据包的 Stream-Index 编号,您可以查看您的流是否被并行处理。

背景是,通常每个 GET 请求都使用一个单独的流。

但我认为你的例子并不是最好的证明,因为文件,尤其是 gif,太小了。