Wireshark TS | Packet Challenge 之 HTTP 案例分析

news2024/9/27 21:24:48

前言

来自于 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 = 65535
                     Time precision = microseconds (6)
                     Time ticks per second = 1000000
                     Time resolution = 0x06
                     Operating system = 64-bit Windows 7 Service Pack 1, build 7601
                     Number of stat entries = 1
                     Number 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 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/130920.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

我的2022年终总结

目录 1 序 1 2 工作 1 3 业余 1 3.1 AI 1 3.2 数学小插曲 3 3.3 金融投资 3 4 生活 4 5 最后 4 1 序 老婆大人每年这个时候都要写年终总结,现在也正在写;CSDN也发起了年终征文活动;各大app也各种年度大数据总结。我好像还是第一次写年终总…

两两交换链表中的节点 -- 虚拟头节点

24两两交换链表中的节点 – 虚拟头节点 通过本题可以: 增加对虚拟头节点的理解。 加强对链表这一基本数据结构的基本操作的理解。 1. 交换过程: 如图,假设链表如图所示。 为了减少对头节点的单独讨论,这里采用虚拟头节点进行…

Allegro如何显示走线和铜皮的网络名操作指导

Allegro如何显示走线和铜皮的网络名操作指导 在做PCB设计的时候,如果可以实时看到走线和铜皮的网络名,对于设计有很大帮助,如下图 具体操作如下 选择Set-up-user preferences选择Display

Vue 总结一(简介 基本语法)

目录 Vue 是什么 与其它 JS 框架的关联 Vue 周边库 MVVM模型 怎么用 Vue模板语法有2大类: 数据绑定 data 事件 v-on methods 计算属性 computed 监视属性 watch computed和watch之间的区别: 条件渲染 v-if v-show Vue 是什么 一个动态构建用…

sql根据团队树一级一级汇总统计

1、需求描述 最近碰到了一个需求,是要统计各个团队的员工的销售金额,然后一级一级向上汇总。 架构团队树是类似于这种样子的,需要先算出每个员工的销售金额,然后汇总成上一级的团队金额,然后各个团队的销售总金额再往上…

京东技术发展简史

文章目录前言京东发展历程京东商城技术的演进京东自研技术分布式数据库StarDB京东云移动端Flutter在京东的实践大数据咚咚架构ShardingSphere京东人物参考“京东可以高速发展到今天的规模的原因,其中最核心的是坚持“倒三角”战略:建立出色的团队&#x…

转义字符与strlen(),sizeof()在一起的注意事项

转义字符与strlen(),sizeof() 1. 转义字符每个人都知道是怎么一回事儿,转义字符顾名思义就是转变意思。 2. 首先转义字符肯定是一个字符,不是两个字符,更不用说是数字了,就是字符。 3. 当用strlen()统计字符串长度时或者用sizeo…

2022年度回顾

这一年是不平凡的一年,换了公司,新公司频繁出差,去了临沂,去了河南,去了唐山,去了福鼎,当中最印象深刻的还是河南,项目万分火急,在疫情隔绝的10月份毅然决然的前往河南安…

如何稍微优雅滴完成博文访问计数[SpringBoot+redis+分布式锁]

文章目录前言背景朴素做法Redis方案流量统计接口演示自定义注解计数实现防刷加锁完整代码数据一致性分析自定义注解返回值分析解决方案总结前言 okey,我们来收尾一下,这公历纪年2022年12月31日。这是本年度的最后一篇博文。那么这篇博文主要是用来实现博文的一个访…

【LeetCode】被围绕的区域 [M](深度优先遍历)

130. 被围绕的区域 - 力扣(LeetCode) 一、题目 给你一个 m x n 的矩阵 board ,由若干字符 X 和 O ,找到所有被 X 围绕的区域,并将这些区域里所有的 O 用 X 填充。 示例 1: 输入:board [[&quo…

浅谈Flink批模式Adaptive Hash Join

Flink批Hash Join递归超限问题 随着Flink流批一体能力的迅速发展以及Flink SQL易用性的提升,越来越多的厂商开始将Flink作为离线批处理引擎使用。在我们使用Flink进行大规模join操作时,也许会发生如下的异常,导致任务失败: Hash j…

Es进阶检索

本文用到的测试数据及所有代码链接: https://blog.csdn.net/m0_62436868/article/details/128505566?spm1001.2014.3001.5501 1、SearchAPI ES 支持两种基本方式检索 : 一个是通过使用 REST request URI 发送搜索参数(uri检索参数) 另…

基于华为eNSP的中小企业办公园区网络规划与设计

目录一、需求分析(一)项目背景(二)网络业务需求(三)网络应用需求二、网络结构设计三、网络拓扑图四、网络设备基本配置五、项目测试结语运用到的技术有: 1、虚拟局域网(VLAN&#xf…

人工智能--你需要知道的一切

人工智能--你需要知道的一切 人工智能是当今最受关注的技术之一。但它究竟是什么?你为什么要关心? 人工智能是当今最受关注的技术之一。但它到底是什么?你为什么要关心?在这里,我们将介绍你需要知道的关于人工智能的…

java开发的美妆化妆品电商商城系统

简介 Java基于ssm(可以转springboot项目哦)开发的美妆商城系统,主要是卖化妆品的系统,用户可以浏览商品,加入购物车,下单,在个人中心管理自己的订单。管理员可以管理自己的商品,发布商品,上下架…

2023年留学基金委(CSC)公派访问学者博士后项目选派办法及解读

2023年即将伊始。知识人网祝大家新年快乐,心想事成!同时提醒申请者关注国家留学基金委(CSC)的申报政策。目前CSC官网已经发布了2023年公派访问学者、博士后的项目通知,知识人网小编现将其选派工作流程及选派办法原文转…

C语言 自定义类型

结构体内存对齐 解释1 从内存开始位置存放 解释二 int对齐数是4 vs默认对齐数是8 取其较小值的倍数 那就是4的位置存放 char 对数1 vs是8默认 谁的较小值对数是1 那就是任意数 所以c2防砸8 如下图绿色部分 struct S2 {char c1;int i;double d;//8 };输出结果16 struct S4 …

当我们身边没有示波器就无法测量频率与占空比了?一招教你解决身边没有示波器时如何测量STM32定时器产生PWM的频率与占空比

当我们身边没有示波器就无法测量频率与占空比了?这篇文件小编就教大家如何使用定时器输入捕获功能测量频率与占空比。 原理解析 定时器输入捕获一般应用在两个方面,一个方面是脉冲跳变沿时间测量,另一方面是 PWM输入测量。下面将要使用就是测…

LaTeX快速入门

文章目录LaTeX快速入门一、 概述1、 简介2、 环境配置3、文件结构4、 文档结构二、 基本概念1、 第一个LaTeX程序2、 宏包和文档类2.1 宏包2.2 文档类3、 文件组织的方式4、 相关术语和概念三、 排版文字1、 文字编码2、 排版中文3、 LaTeX中的字符3.1 空格和分行3.2 注释3.3 特…

Redis(Ⅰ)【学习笔记】

(仅作为个人学习笔记) 1.什么是Redis? 1.Redis 是用C语言开发的一个开源的高性能键值对( key-value )内存数据库,它是一种 NoSQL 数据库。 2.它是【单进程单线程】的内存数据库,所以说不存在线…