这里写目录标题
-
-
- [1. wireshark](#1. wireshark)
-
-
- [1.1. 过滤包](#1.1. 过滤包)
- [1.2. 常见分析](#1.2. 常见分析)
-
- [2. tcpdump](#2. tcpdump)
- [3. iperf](#3. iperf)
-
1. wireshark
**ip.dst eq 10.0.0.21**
是用于网络流量分析工具(例如 Wireshark 或 tcpdump)的过滤器表达式。 它的作用是筛选出所有目标IP地址为 10.0.0.21
的数据包
IP.addr == 10.0.0.1 搜索指定ip
1.1. 过滤包
会弹出来的
-
协议过滤:
-
quic
:过滤所有 QUIC 协议的数据包。 -
udp
:过滤所有 UDP 协议的数据包(QUIC 基于 UDP)。 -
tcp
:过滤所有 TCP 协议的数据包。 -
http2
:过滤所有 HTTP/2 协议的数据包。 -
tls
:过滤所有 TLS 协议的数据包。 -
IP 地址过滤:
-
ip.src == 192.168.1.1
:过滤源 IP 为192.168.1.1
的数据包。 -
ip.dst == 192.168.1.1
:过滤目标 IP 为192.168.1.1
的数据包。 -
ip.addr == 192.168.1.1
:过滤源或目标 IP 为192.168.1.1
的数据包。 -
端口过滤:
-
udp.port == 443
:过滤 UDP 端口为443
的数据包(QUIC 通常使用 443 端口)。 -
tcp.port == 80
:过滤 TCP 端口为80
的数据包。 -
tcp.srcport == 8080 过滤 TCP 源端口为
8080
的数据包 -
逻辑运算符:
-
&&
:与(例如quic && ip.src == 192.168.1.1
)。 -
||
:或(例如quic || tls
)。 -
!
:非(例如!tcp
)。
基本 TCP 过滤
tcp
过滤所有 TCP 协议的数据包。tcp.port == 80
过滤 TCP 端口为80
的数据包(HTTP 流量)。tcp.port == 443
过滤 TCP 端口为443
的数据包(HTTPS 流量)。tcp.srcport == 8080
过滤 TCP 源端口为8080
的数据包。tcp.dstport == 22
过滤 TCP 目标端口为22
的数据包(SSH 流量)。
TCP 连接状态过滤
tcp.flags.syn == 1 && tcp.flags.ack == 0
过滤 TCP SYN 包(第一次握手)。tcp.flags.syn == 1 && tcp.flags.ack == 1
过滤 TCP SYN-ACK 包(第二次握手)。tcp.flags.ack == 1 && tcp.flags.syn == 0
过滤 TCP ACK 包(第三次握手)。tcp.flags.fin == 1
过滤 TCP FIN 包(断开连接请求)。tcp.flags.reset == 1
过滤 TCP RST 包(重置连接)。
TCP 数据分析
tcp.payload
过滤包含 TCP 负载的数据包。tcp.len == 100
过滤 TCP 负载长度为100
字节的数据包。tcp.len > 500
过滤 TCP 负载长度大于500
字节的数据包。
TCP 重传和异常
tcp.analysis.retransmission
过滤 TCP 重传的数据包。tcp.analysis.zero_window
过滤 TCP 零窗口数据包(接收方缓冲区已满)。tcp.analysis.window_update
过滤 TCP 窗口更新的数据包。tcp.analysis.duplicate_ack
过滤 TCP 重复确认的数据包。
组合过滤
tcp && ip.src == 192.168.1.1 && tcp.port == 80
过滤源 IP 为192.168.1.1
且端口为80
的 TCP 数据包。(tcp.flags.syn == 1 && tcp.flags.ack == 0) || (tcp.flags.fin == 1)
过滤 TCP 建立连接和断开连接的数据包。tcp.analysis.retransmission || tcp.analysis.zero_window
过滤 TCP 重传和零窗口的数据包。
保存过滤结果
- 在 Wireshark 中应用过滤后,点击菜单栏的
File
->Export Specified Packets
。 - 选择
All packets
或Displayed
。 - 保存为
.pcap
或.pcapng
文件。
示例场景
tcp.port == 80
过滤所有 HTTP 流量(TCP 端口为 80)。tcp.flags.syn == 1 && tcp.flags.ack == 0
过滤 TCP 握手的 SYN 包。tcp.analysis.retransmission
过滤所有 TCP 重传的数据包。tcp && ip.src == 192.168.1.1 && ip.dst == 192.168.1.2
过滤源 IP 为192.168.1.1
且目标 IP 为192.168.1.2
的 TCP 数据包。
1.2. 常见分析
1,


2,


3,

4,Window Full
61622 109.780413297 10.0.0.1 10.0.0.9 openFlow 194 [TCP Window Full] Type: OFPT EXPERIMENTER
是指的发送端发送的数据已经达到的接受窗口的上限。
继而停止发送,等待新的接收窗口的通告
此时接收端返回的是TCP zero window,表示接收端窗口为0
openflow:表示这个数据包是openflow协议, "TCP Window Full"指示符通常表示接收端 的TCP接收缓冲区已满。这意味着接收端已经接收了所有能够接收的数据,并且其接收窗口已满,无法再接收更多的数据,直到一些数据被应用程序处理并从缓冲区中移除。 :发送端会根据接收端的接收窗口大小来控制发送的数据量。当接收端的接收窗口为零时,发送端将停止发送新的数据,直到接收端的缓冲区有更多空间。
5 ,Zero Window
传输层协议TCP---滑动窗口(9)_tcp zerowindow-CSDN博客
Zero Window(0窗口)指的是 TCP 发送方的滑动窗口大小为0,其本质上是因为 TCP 接收方的接收缓存已经满了,没有空间再接收数据。当处于 Zero Window 时,TCP 发送方是不能向对方发送数据的------即使发送也会被对方给怼回来

6,TCP ACKed unseen segment

7,TCP Previous segment not captured
TCP Previous segment not captured\]报文指的是在TCP发送端传输过程中,该Seq前的报文缺失了。一般在网络拥塞的情况下,造成TCP报文乱序、丢包时,会出现该标志。 需要注意的是,\[TCP Previous segment not captured\]解析文字是wireshark添加的标记,并非TCP报文内容。  例子: 流媒体服务器39.135.135.81,端口80,发送序号Seq=147154的包,长度Len=1360,那么下一个数据包序号应该为Seq=147154+1360=148514,可以看到客户端请求的也是Ack=148514。而服务器下一个包序号为Seq=149874,中间的包丢失了。 **8,RST** TCP异常终止的情形 #### 2. tcpdump 你可以使用 `host` 关键字来筛选目标IP地址。例如: **tcpdump -i eth0 dst host 10.0.0.21** 这将捕获所有目标IP地址为 `10.0.0.21` 的数据包。 **tcpdump -i eth0 icmp** 筛选eth0端口的icmp包 **tcpdump -nni port300781 icmp** 这样才能抓到包 用-nni **tcpdump -nni any icmp 抓该节点所有端口的icmp包** **tcpdump -nni port300781 icmp -w test.pacp 抓取的数据包保存到文件** `**test.pcap**` **中 ,导入到wireshark进行分析** **还有个抓包工具tshark**  21:26:49.013621 IP 172.20.20.1.15605 \> 172.20.20.2.5920: Flags \[P.\], seq 49:97, ack 106048, win 4723, length 48 **Flags 标识符** [**#**](https://www.cnblogs.com/wongbingming/p/13212306.html#idx_3) 使用 tcpdump 抓包后,会遇到的 TCP 报文 Flags,有以下几种: * `[S]` : SYN(开始连接) * `[P]` : PSH(推送数据) * `[F]` : FIN (结束连接) * `[R]` : RST(重置连接) * `[.]` : 没有 Flag (意思是除上面四种类型外的其他情况,有可能是 ACK 也有可能是 URG) **使用** `**host**`**基于IP过滤** * tcpdump host 192.168.10.100 * 根据**源ip**进行过滤:tcpdump -i eth2 src 192.168.10.100 * 根据**目标ip**进行过滤:tcpdump -i eth2 dst 192.168.10.200 **基于网段进行过滤:net** * tcpdump net 192.168.10.0/24 * 根据**源网段**进行过滤$ tcpdump src net 192.168 #### 3. iperf Iperf是一个网络性能测试工具。Iperf可以测试TCP和UDP带宽质量。Iperf可以测量最大TCP带宽,具有多种参数和UDP特性。 iperf -s -p 12345 -i 1 -M 1460 iperf -c 10.0.0.1 -p 9190 -i 1 