网络通讯:Wireshark常用的报文过滤指令

网络通讯:Wireshark常用的报文过滤指令


一、只想看"有 TCP 载荷(数据)的包"

也就是:TCP payload 长度 > 0。

1)最简单写法(推荐)

  • tcp.len > 0
    含义:显示所有 TCP 载荷字节数大于 0 的包(也就是有应用层数据的)。【turn0search2】【turn0search4】

2)非零负载的另一种写法

  • tcp.len != 0
    效果同上,语义是"不等于 0"。

3)只要纯确认包(无数据)

  • tcp.len == 0
    显示所有只有 TCP 头、没有载荷的包(比如 ACK 确认、很多握手的中间包)。

二、按"TCP 载荷长度"的大小范围筛选

常见几个阈值你可以直接改:

1)只看"长 TCP 包"(比如 >= 1000 字节)

  • tcp.len >= 1000
    适用于看大包(大文件传输、大数据块等)。

2)只看"小包"(比如 < 100 字节)

  • tcp.len < 100
    常见用于:
  • 看大量小报文(比如频繁心跳、短请求)
  • 排查"很多小包"性能问题

3)指定一个长度区间

比如:载荷长度在 100~1000 字节之间的 TCP 包:

  • tcp.len >= 100 and tcp.len <= 1000

三、按"IP 总长度"/"TCP 段总长度"来筛选

有时候你说"TCP 长度"可能指的是"整个 TCP 报文长度(含 TCP 头)"。

1)看 IP 总长度(等于整个 IP 报文,含 IP 头+TCP 头+TCP 载荷)

  • ip.len == 1500 // 以太网常见 MTU 1500 的 IP 报文
  • ip.len > 1400 // 看接近 MTU 的大包
  • ip.len < 100 // 看特别小的 IP 包(多为控制报文、握手包等)【turn0search8】【turn0search11】

2)估算 TCP 段总长度(含 TCP 头)

TCP 段总长 = IP 总长度 − IP 头长

用显示过滤器写出来就是:

  • ip.len - ip.hdr_len == 1500
  • ip.len - ip.hdr_len > 1400
  • ip.len - ip.hdr_len < 100
    注意:
  • 这是"IP 数据部分长度",对 TCP 来说,基本就是 TCP 段总长(TCP 头 + 载荷)。
  • 如果 IP 头不是标准的 20 字节(有 Options),这样算仍然正确。【turn0search11】

3)用另一种方式得到"TCP 载荷长度"

TCP 载荷长度 = IP 总长度 − IP 头长 − TCP 头长

显示过滤器:

  • ip.len - ip.hdr_len - tcp.hdr_len > 0 // 有载荷
  • ip.len - ip.hdr_len - tcp.hdr_len == 0 // 无载荷(纯控制/确认)
  • ip.len - ip.hdr_len - tcp.hdr_len >= 1000 // 大载荷包【turn0search11】
    等价于 tcp.len,更直观的写法还是用 tcp.len

四、顺带澄清几个容易混淆的字段

Wireshark 里关于"长度"有好几个字段,新手经常混在一起:

  • frame.len
    整个抓到的帧长度,含以太网头 + IP 头 + TCP 头 + 载荷等。【turn0search8】
  • ip.len
    IP 层的总长度(IP 头 + 后面的数据部分)。如果 IP 装的是 TCP,那"后面的数据"就是 TCP 段(TCP 头 + 载荷)。【turn0search8】【turn0search11】
  • tcp.len
    TCP 段中的数据(payload)长度,不包含 TCP 头。【turn0search4】【turn0search6】
  • tcp.data / tcp.segment_data
    不是数值字段,是原始载荷数据的字节序列,用于按内容匹配,不能写 > 100 这种比较,只能 contains "xxxx" 或匹配字节。【turn0search4】
    简单一句话区分:
  • 想看"整个帧多大":用 frame.len
  • 想看"IP 报文多大":用 ip.len
  • 想看"TCP 载荷多大":用 tcp.len(最常用)【turn0search6】【turn0search4】

五、一些实际可用的"套路"组合

1)看某台服务器发出的所有大数据 TCP 包(载荷 >= 1024)

  • ip.src == 10.0.0.10 and tcp.len >= 1024

2)看某个端口的长请求/长响应

比如看 HTTP 请求/响应里数据较大的包:

  • tcp.port == 80 and tcp.len > 500
  • tcp.port == 443 and tcp.len >= 1200

3)排查"大量小包"性能问题

  • 某条连接(IP 对)的包很多、但都很小:
    • ip.addr == 10.1.1.5 and ip.addr == 10.1.1.6 and tcp.len < 100
  • 某个服务端端口的小包:
    • tcp.dstport == 8080 and tcp.len < 50

4)只看有数据(非纯 ACK)的 TCP 流

  • tcp.len > 0
    如果想排除某些端口,比如只看业务端口:
  • tcp.len > 0 and not (tcp.port == 22 or tcp.port == 3389)

六、简单速查(可复制直接用)

  • 有载荷的 TCP 包:
    • tcp.len > 0
  • 无载荷(纯 ACK/控制):
    • tcp.len == 0
  • 载荷长度大于等于 1000:
    • tcp.len >= 1000
  • 载荷长度小于 100:
    • tcp.len < 100
  • IP 总长度等于 1500(满 MTU):
    • ip.len == 1500
  • TCP 段总长(含头)接近 1500:
    • ip.len - ip.hdr_len >= 1480
  • TCP 载荷长度用原始 IP/TCP 头长计算:
    • ip.len - ip.hdr_len - tcp.hdr_len > 0【turn0search11】
      你可以先说下你说的"TCP 长度"到底是指:
  • "TCP 数据部分长度(tcp.len)",还是
  • "整个 TCP 报文(含头)长度(IP 数据部分)",还是
  • "整个抓包帧的长度(frame.len)",
相关推荐
liulilittle8 小时前
XDP VNP虚拟以太网关(章节:一)
linux·服务器·开发语言·网络·c++·通信·xdp
应用市场9 小时前
图片格式完全指南——从JPEG到AVIF的技术原理与选型
网络·人工智能·安全·汽车
剑之所向9 小时前
c# modbus大小端
linux·运维·网络
xixixi7777710 小时前
CDN(内容分发网络)——缓存和分发网站、应用程序、视频等内容,以提高用户访问速度和稳定性,减少网络延迟和拥塞,同时减轻源服务器的压力
网络·缓存·架构·系统架构·cdn·业务·内容分发网络
-To be number.wan10 小时前
【补漏版】计算机网络期末大题预测合集
网络·计算机网络
liulilittle10 小时前
OPENPPP2 Code Analysis Two
网络·c++·网络协议·信息与通信·通信
爱怪笑的小杰杰11 小时前
紧急补救:TCP心跳检测失效问题复盘与彻底解决
网络
学烹饪的小胡桃11 小时前
WGCAT工单系统 v1.2.7 更新说明
linux·运维·服务器·网络·工单系统
云飞云共享云桌面11 小时前
非标自动化工厂的设计云桌面为什么要选云飞云智能共享云桌面?
大数据·运维·服务器·网络·自动化·负载均衡
lowhot12 小时前
各种网络协议比较
网络·网络协议