WireShark

1.WireShark介绍

WireShark下载地址
WireShark是一个开源网络协议分析器,可以捕获和分析网络数据包。它可以在Windows,Mac OS X,Linux和其他操作系统上运行。
WireShark的主要功能包括:
1.捕获网络数据包:WireShark可以捕获来自本地计算机或网络上的数据包,包括以太网,WiFi,蓝牙,USB等。
2.分析网络数据包:WireShark可以对捕获的数据包进行深入分析,包括查看数据包头,协议分层,数据字段和错误信息。
3.过滤网络数据包:WireShark可以通过使用过滤器来筛选数据包,仅显示与您正在查看的问题相关的信息。
4.生成报告:WireShark可以生成有关网络流量的报告,例如网络流量趋势和统计信息。

2.PC抓包

开启wireshark,选择对应的网卡进行抓包
在这里插入图片描述

3.移动端抓包

3.1 移动端连接PC的wifi热点抓包

打开网络和Internet设置(Windows10)
打开网络设置界面
开启wifi热点
在这里插入图片描述
手机端连接wifi热点
启动wireshark选择网卡
在这里插入图片描述

在这里插入图片描述

4.过滤规则

4.1 地址过滤

源地址过滤

ip.src == 192.168.0.1

目标地址过滤

ip.dst == 192.168.0.1

源地址或目标地址过滤

ip.addr == 192.168.0.1

排除某个地址过滤

!(ip.addr == 192.168.0.1)

4.2 端口过滤

源端口过滤

tcp.srcport == 80

目标端口过滤

tcp.dstport == 80

对源端口或者目标端口过滤

tcp.port == 80

大于某个端口过滤

tcp.port >= 60000

4.3 协议过滤

直接在filter框中输入协议名,如过滤HTTP协议,则http

4.4 http协议相关过滤

过滤出请求地址中包含“user”的请求

http.request.uri contains user

过滤域名

http.host == www.baidu.com

模糊过滤域名

http.host contains baidu

过滤请求的content_type类型

http.content_type == 'text/html'

过滤http请求方法

http.request.method == GET

过滤http响应状态码

http.response.code == 200

过滤含有指定cookie的http数据包

http.cookie contains userid

4.5 长度和内容过滤

针对数据段长度过滤

udp.length < 20
http.content_length <= 30

过滤出显示 TCP Previous segment not captured 报文

tcp.analysis.lost_segment

原因:前一个分片丢失,有可能是网络中确实丢失了,或者晚到了,也有可能是wireshark本身并没有抓到。

过滤出显示TCP Dup ACK 报文

tcp.analysis.duplicate_ack

原因:当网络中存在乱序或者丢包时,将会导致接收端接收到的seq number不连续。此时接收端会向发送端回复重复ack,ack值为期望收到的下一个seq number。重复ack数大于等于3次将会触发快速重传。

过滤出显示 TCP Out-Of-Order 报文

tcp.analysis.duplicate_ack

原因:一般来说是网络拥塞,导致顺序包抵达时间不同,延时太长,或者包丢失,需要重新组合数据单元

过滤出 TCP ZeroWindows 的报文

tcp.window_size == 0 

原因:当发送端发包速率大于接收端的接收速率时,会造成接收端TCP window越来越小,当接收端在反馈ack时携带的window size=0时,wireshark标记TCP Zero window。此时发送端将暂停发送数据,直到收到接收端window size!=0的标志。

过滤出 TCP Window Full 的报文

tcp.analysis.window_full

原因:是指的发送端发送的数据已经达到的接受窗口的上限。发送端暂停发送,等待新的接收窗口的通告。

5.界面介绍

5.1 开始捕获前的界面

打开 Wireshark ,初始界面从上到下是主工具栏显示过滤器捕获过滤器以及状态工具栏
在这里插入图片描述
详细介绍:
1.主工具栏包含了开始捕获、停止捕获、显示最新分组等操作的按键;
2.显示过滤器可输入过滤规则,使分组列表窗口仅显示符合规则的数据包;
3.捕获过滤器可输入规则,在抓包的时候捕获符合规则的数据包;
4.状态工具栏则显示软件当前状态与已捕获&显示的分组数量。

5.2 捕获时的界面

开始捕获后,Wireshark 会将捕获到的报文显示在界面上。
在这里插入图片描述
详细介绍:
1.分组列表显示所有捕获到的报文,顶部为报文序号等各种关键字段;
2.分组详情显示选中报文的分层情况;
3.分组字节流显示选中报文的16进制与ASCII码编码的字节流。

5.3 分组列表

1)分组列表显示每个数据包的各种字段,并默认按照序号/捕获时间升序排列分组。(若想要以某个字段降序排列,点击该字段即可。)
在这里插入图片描述
2)为了方便查看报文中的关键字段,可以①右键字段栏,②点击 Column Preferences ,③添加字段。
例如:添加HTTP协议的host字段和TLS协议的 server_name 字段。
在这里插入图片描述
添加完字段后的显示
在这里插入图片描述
3)额外说明:捕获界面的最左侧的No.列
选中某个数据包时,Wireshark分组列表的No.列会显示一些符号,这些符号标识的是数据包与数据包之间的关系,这里罗列一下 Wireshark 官网的解释:
在这里插入图片描述

5.4 分组详情

分组详情窗口是TCP/IP五层模型最好的结构化展示,从上到下分别是:
在这里插入图片描述
展开各层,能看到 Wireshark抓包工具 对各个字段的解析和注释。
在这里插入图片描述
标准协议的 RFC 文档阅读起来比较费劲,对照 Wireshark 抓包工具的解析,能更好地理解标准协议的字段格式。
RFC 791 中对 IP 协议头部的描述
在这里插入图片描述
部分分组的分组详情窗口内包含 URI 超链接,或者与其有关系的另一个分组的超链接,双击即可跳转。
在这里插入图片描述
前一个请求在86帧,响应在291帧,下一个请求在296帧

5.5 分组字节流

1)分组字节流窗口中显示的是十六进制与ASCII字符对照形式的分组字节内容(不包含物理层的字节),即数据包在链路上传播时的原始字节流。

2)分组字节流窗口中的字节和分组详情中的字段是一一对应的:点击字段会选中字节内容;点击某个字节16进制值会选中对应的字段。

3)可以使用这个窗口来观察一些私有协议的字段格式。
在这里插入图片描述
十六进制值与ASCII码也是对应的,GET 的 ASCII码为 0x474554

4)总结:
从分组列表到分组详情,再到分组字节流,可以看到 Wireshark 抓包工具 是如何从大到小为我们显示多个分组——单个分组的多层结构——未解析时的原始字节流。从下而上逆推,我们可以体会到网卡和协议栈是如何实现数据包解析的。

5.6 主工具栏中常用的按键

实践中有4个按键比较常用:开始捕获停止捕获重新开始捕获显示最新的分组
在这里插入图片描述
捕获的三个按键比较好理解,不做解释。

选中显示最新的分组后,分组列表会一直滚动显示最新捕获的分组。如果要查看某个报文,可以滚动鼠标滑轮,此时分组详情会停止滚动。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值