Wireshark TS | Packet Challenge 之 HTTP 案例分析
创始人
2024-05-03 13:48:32
0

前言

来自于 Sharkfest Packet Challenge 中的一个数据包案例,Sharkfest 是 Wireshark 官方组织的一年一度的大会,致力于在 Wireshark 开发人员和用户社区之间分享知识、经验和最佳实践。印象中早期是一年一次,近几年发展成一年两次,一次貌似固定在美国,一次会在其他地区,像是欧洲或亚洲。Packet Challenge 是大会其中一个比较有意思的活动环节,通过一系列数据包案例设置关卡,参会人员进行分析挑战,测试综合分析能力。


题目信息

本次案例为 Sharkfest 2015 Packet Challenge 中的第二个题目 GO GO SPEED RACER,数据包跟踪文件为 http‐gogo.pcapng

主要描述如下:

  1. What is the HTTP response time for the GET / request in packet 4?
  2. How many packets have the SYN bit set on in this trace file?
  3. What is the name of the largest HTTP object downloaded to this client?
  4. How long did it take to download the browser tab icon, favicon.ico (include TCP connection setup/teardown)?
  5. Frame 131 is a spurious retransmission. Which previous frame caused this to be marked “spurious”?

数据包信息

数据包跟踪文件基本信息如下:

λ capinfos http-gogo.pcapng
File name:           http-gogo.pcapng
File type:           Wireshark/... - pcapng
File encapsulation:  Ethernet
File timestamp precision:  microseconds (6)
Packet size limit:   file hdr: (not set)
Number of packets:   904
File size:           670 kB
Data size:           639 kB
Capture duration:    25.295004 seconds
First packet time:   2013-05-17 04:34:45.147106
Last packet time:    2013-05-17 04:35:10.442110
Data byte rate:      25 kBps
Data bit rate:       202 kbps
Average packet size: 707.62 bytes
Average packet rate: 35 packets/s
SHA256:              d7206ad61a744fe27a62fc4ee1798f5a925e946dbd18fcf23e53790da23e384d
RIPEMD160:           4a3c95a711886b96fcbdac63c5abbc917ced054e
SHA1:                5888fedc0be380ec14be6e2b79eb1bda889edc35
Strict time order:   True
Capture oper-sys:    64-bit Windows 7 Service Pack 1, build 7601
Capture application: Dumpcap 1.10.0pre1-49307 (SVN Rev 49307 from /trunk-1.10)
Number of interfaces in file: 1
Interface #0 info:Name = \Device\NPF_{6E79FEC0-FF79-4970-96E4-EEFF300A9B9F}Encapsulation = Ethernet (1 - ether)Capture length = 65535Time precision = microseconds (6)Time ticks per second = 1000000Time resolution = 0x06Operating system = 64-bit Windows 7 Service Pack 1, build 7601Number of stat entries = 1Number of packets = 904λ

Winows 7 系统上直接通过 Wireshark 捕获,无截断,捕获数据包数量 904 个,捕获持续时间为 25.3 秒,平均速率 202 kbps,其中 IPv4 和 TCP 会话信息较多。

HTTP-01

专家信息显示如下,其中告警级别中存在 TCP 零窗口、乱序、分段未捕获到等问题,相对数量不是那么多,需要实际进入数据包分析。

HTTP-02

数据包分析

因题目和问题和 HTTP 相关,简单筛选辨别下数据包信息,通过 tcp.port 过滤出 HTTP 或 HTTPS 相关的数据包数量为 904 ,和此数据包跟踪文件数据包总量一样,另 TCP 流数量经排序去重统计后得知为 51

λ tshark -r http-gogo.pcapng -Y "tcp.port in {80,443}" | wc -l
904λ tshark -r http-gogo.pcapng -Y "tcp.port in {80,443}" -T fields -e tcp.stream | sort -n | uniq | wc -l
51

考虑到所涉及数据包信息较多,故直接进入各题目实际分析。


1. What is the HTTP response time for the GET / request in packet 4?

数据包 4 中的 GET / request 的 HTTP 响应时间是多少?


分析步骤

No.4 数据包为一个 HTTP GET / request ,在 Packet Details视图中可以看到 Wireshark 提示 [Response in frame:7] ,说明 HTTP Response 数据包在 No.7,同时在 [Packet List] 视图中最左竖边也有两个横向的小箭头标识,一个指向 No.4,另一个指向 No.7 ,同样说明是一对 HTTP 的请求和响应数据包。

HTTP-03

因为要分析的是 HTTP 响应时间的值,所以转向 No.7 数据包细节中,可以看到 [Time since request: 0.204365000 seconds] ,这个就是 Wireshark 根据上下文所关联 HTTP Request 数据包时间所得出的时间间隔。

HTTP-04

分析答案

数据包 4 中的 GET / request 的 HTTP 响应时间是:0.204365000 秒。


2. How many packets have the SYN bit set on in this trace file?

数据包跟踪文件中有多少个数据包包含 SYN 标志位设置。


分析步骤

这个题目比较简单,通过 TCP Flags 过滤即可,但在此想说一点的是在 Wireshark 显示过滤中,tcp.flags.syntcp.flags.syn == 1 这两者是有明显区别的,前者指的是该字段存在与否(包含 0 和 1),而后者才是 SYN 置 1(也就是过滤出 TCP 三次握手中的 SYN 和 SYN/ACK) 。

HTTP-05

通过 tcp.flags.syn == 1 过滤得出所有的 SYN 和 SYN/ACK 数据包共有 101 个,占比 11.2%。

HTTP-06

使用 Tshark 方式过滤如下

λ tshark -r http-gogo.pcapng -Y "tcp.flags.syn==1" | wc -l
101λ 

分析答案

数据包跟踪文件中有多少个数据包包含 SYN 标志位设置:101 个。


3. What is the name of the largest HTTP object downloaded to this client?

下载到此客户端的最大 HTTP object 的名称是什么?


分析步骤

HTTP object 可以直接通过 Wireshark File -> Export Objects-> HTTP... 得到以下信息。

HTTP-07

之后通过 Size 从大到小排序即可,因为同一个文件可能存在于多个数据包,所以再下拉遍历下数据包文件名和大小,可以看到实际最大一个文件是 OpenSans-Semibold.ttf

HTTP-08

HTTP-09

文件 OpenSans-Semibold.ttf 大小为 221328 字节

HTTP-10

个人来说,本道题用 Tshark 来操作分析可能更加简单,通过 --export-objects 参数导出 HTTP Object 到 test 文件夹中。

tshark -r http-gogo.pcapng -q --export-objects http,test

test 文件夹中所有的 HTTP Object 如下

HTTP-11

HTTP-12

分析答案

下载到此客户端的最大 HTTP object 的名称是:OpenSans-Semibold.ttf 。


4. How long did it take to download the browser tab icon, favicon.ico (include TCP connection setup/teardown)?

下载浏览器标签图标 favicon.ico (包括 TCP 连接设置/拆除)需要多长时间?


分析步骤

因为需要找到包含下载 favicon.ico的 TCP 连接,所以可以先通过 http 过滤 uri 的方式找到该连接

http.request.uri contains "favicon.ico"

HTTP-13

TCP Stream 为 47

HTTP-14

展开该流后,可得相关数据包,共 13 个。

HTTP-15

而此流的时间,可以直接点选 No.846 详细信息,[Timestamps] 中可以得到最后一个数据包和第一个数据包的时间差值。

HTTP-16

同样在会话视图中也可以看到该流的统计时间,0.1462 秒。

HTTP-17

分析答案

下载浏览器标签图标 favicon.ico (包括 TCP 连接设置/拆除)需要:0.146238000 秒。


5. Frame 131 is a spurious retransmission. Which previous frame caused this to be marked “spurious”?

数据帧 131 为一个虚假重传,是哪一个前帧导致这个帧被标记为“虚假”?


分析步骤

虚假重传,简单来说就是在数据包跟踪文件中针对某个 Seq Num 的数据包已经 ACK 确认过,之后却又收到一次同样 Seq Num 的数据包。

根据 No.131 数据帧所在 TCP 流分析,可以看出 No.121、No.126 和 No.127 已经完成了一次 TCP 四次挥手,但服务器却由于某种问题又发送了一次 No.130 ACK,以及 No.131 重传的 FIN/ACK,疑似服务器并没有收到 No.127 而产生的超时重传。

HTTP-18

参考 Wireshark 官网文档对于 TCP Spurious Retransmission 的定义:

TCP Spurious Retransmission

Checks for a retransmission based on analysis data in the reverse direction. Set when all of the following are true:

  • The SYN or FIN flag is set.
  • This is not a keepalive packet.
  • The segment length is greater than zero.
  • Data for this flow has been acknowledged. That is, the last-seen acknowledgement number has been set.
  • The next sequence number is less than or equal to the last-seen acknowledgement number.

Supersedes “Fast Retransmission”, “Out-Of-Order”, and “Retransmission”.

分析答案

数据帧 131 为一个虚假重传,是哪一个前帧导致这个帧被标记为“虚假”:No.127 。

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...