Wireshark:在 显示过滤器中“加入条件”过滤后,出现其他类型的数据包,为什么?

embedded/2025/3/17 7:13:42/

一、

在Wireshark中使用“tcp协议”过滤后,仍出现TLSv1.2协议的数据包,原因如下:

1. ‌协议层次关系

  • TCP是传输层协议‌,而‌TLS属于应用层协议‌,后者直接运行于TCP之上‌28。因此,所有TLS流量(如HTTPS通信)均会通过TCP传输。当过滤TCP协议时,实际上会显示所有基于TCP的应用层协议流量,包括TLS‌。(如:HTTP等基于TCP的应用层协议)

2. ‌显示过滤器的逻辑

  • tcp过滤器仅筛选传输层协议为TCP的数据包,但‌不会排除TCP上层承载的具体应用协议‌。例如,TLS握手过程(如ClientHello、ServerHello)均通过TCP报文传输,因此会被tcp过滤器命中‌。

3. ‌解决方案

  • 排除TLS流量‌:通过组合过滤器tcp and not tls,可仅显示非TLS的TCP流量‌37。
  • 明确过滤目标‌:若需分析纯TCP行为(如连接建立、流量控制等),需手动排除应用层协议干扰;若需分析TLS,可直接使用tls过滤器‌。

4. ‌示例场景

  • HTTP与HTTPS对比‌:HTTP直接基于TCP,而HTTPS需先完成TLS握手。因此,过滤tcp时会同时显示两者,但过滤http则仅显示HTTP流量‌。

总结:TCP过滤器的设计是捕获所有基于TCP的流量(含TLS)。若需精确分离TCP与TLS,需通过逻辑运算符组合过滤条件‌。

二、

在Wireshark中使用tcp.port过滤后,仍出现其他端口的数据包,原因及解决方案如下:


1、核心原因

  1. tcp.port的过滤逻辑问题

    • tcp.port仅匹配‌源端口或目标端口包含指定值的TCP数据包‌,但‌不会排除其他传输层或应用层协议的流量‌‌。例如,若过滤tcp.port == 80,可能同时显示HTTP协议(端口80)和复用该端口的其他TCP应用协议数据包‌。
  2. 协议层次嵌套

    • TCP为传输层协议,应用层协议(如HTTP、TLS、FTP等)均通过TCP端口传输。过滤tcp.port会显示‌所有基于该端口的应用层协议流量‌(如HTTPS/TLSv1.2流量使用TCP 443端口)‌。
  3. 多协议复用同一端口

    • 某些场景下,同一端口可能承载多种协议(如SSH和自定义TCP服务复用22端口)。此时仅过滤端口无法区分具体协议‌。

2、解决方案

  1. 精确过滤端口方向

    • 使用tcp.srcporttcp.dstport明确区分源/目标端口,避免因双向端口匹配引入干扰流量‌68。
    • 示例:tcp.dstport == 80(仅显示目标端口80的TCP数据包)
  2. 结合应用层协议过滤

    • 若需排除特定应用协议(如TLS),需添加and not条件。
    • 示例:tcp.port == 443 and not tls(过滤443端口但排除TLS协议)
  3. 检查过滤语法有效性

    • 确认过滤器输入框显示为绿色(语法正确)。若为红色,需修正语法错误(如多余空格、运算符错误)‌。
  4. 验证协议实际使用端口

    • 通过Statistics > Protocol Hierarchy查看各协议的真实端口分布,避免因端口复用导致误判‌。

3、示例场景

需求过滤器效果
仅分析目标端口80的HTTP流量tcp.dstport == 80 and http排除非HTTP协议及源端口80的干扰
抓取443端口但排除TLSv1.3tcp.port == 443 and tls.handshake.version != 0x0304精确过滤TLS版本
分离SSH与自定义TCP服务(复用22端口)tcp.port == 22 and (ssh or tcp.payload contains "CUSTOM_HEADER")通过负载特征区分协议

4、总结

tcp.port仅作用于传输层端口,无法自动隔离应用层协议。需通过‌组合过滤条件‌(端口+协议)或‌细化端口方向‌实现精准过滤‌。对复杂场景,建议结合统计工具验证流量分布‌。


http://www.ppmy.cn/embedded/173279.html

相关文章

java八股文之消息中间件

<在Java中使用消息中间件时&#xff0c;通常会选择一些流行的开源解决方案&#xff0c;如Apache Kafka、RabbitMQ、ActiveMQ等。这些消息中间件提供了高效、可靠的消息传递机制&#xff0c;广泛应用于企业级应用中。下面我将介绍如何在Java中使用Apache Kafka进行消息传递的…

58.Harmonyos NEXT 图片预览组件架构设计与实现原理

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; Harmonyos NEXT 图片预览组件架构设计与实现原理 文章目录 Harmonyos NEXT 图片预览组件架构设计与实现原理效果预览一、组件架构概述1. 核心组件层…

2.12[A]distribute sys

在分布式训练中&#xff0c;特别是使用3D并行&#xff08;数据并行、流水线并行和模型并行&#xff09;时&#xff0c;不同阶段的GPU可能因为通信或数据依赖而出现空闲时间&#xff0c;这些空闲时间就是所谓的“气泡”。这些气泡会降低整体的训练效率&#xff0c;导致GPU资源的…

<rust><tauri><GUI>基于tauri和rust,编写一个二维码生成器

前言 本文是基于rust和tauri&#xff0c;由于tauri是前、后端结合的GUI框架&#xff0c;既可以直接生成包含前端代码的文件&#xff0c;也可以在已有的前端项目上集成tauri框架&#xff0c;将前端页面化为桌面GUI。 环境配置 系统&#xff1a;windows 10平台&#xff1a;vis…

【机器学习-基础知识】统计和贝叶斯推断

1. 概率论基本概念回顾 1. 概率分布 定义: 概率分布(Probability Distribution)指的是随机变量所有可能取值及其对应概率的集合。它描述了一个随机变量可能取的所有值以及每个值被取到的概率。 对于离散型随机变量,使用概率质量函数来描述。对于连续型随机变量,使用概率…

HOT100系列——(普通数组+矩阵)

普通数组 1.合并区间 56. 合并区间https://leetcode.cn/problems/merge-intervals/ 先针对左区间进行排序&#xff0c;这样可以对右边进行考虑&#xff0c;如果intervals 中一个新的区间的左端点小于原ans的右端点&#xff0c;那么就能合并&#xff0c;右端点合并成原p【1】和…

基于SpringBoot3+Druid数据库连接池与外部PostgreSQL的Kubernetes Pod YAML全解析

说明 一个基于Spring Boot 3 Druid 外部PostgreSQL的Kubernetes Pod YAML详细解析&#xff0c;包含最佳实践和关键配置说明&#xff1a; YAML apiVersion: apps/v1 kind: Deployment metadata:name: springboot-applabels:app: springboot-app spec:replicas: 2selector:ma…

Spring AI 与 LangChain4j 选型对比分析

Spring AI 与 LangChain4j 选型对比分析 对比分析目前市场上两个主流的Java开源AI框架——Spring AI 和 LangChain4j&#xff0c;探讨它们的技术特点、适用场景以及未来发展的潜力。 一、易用性对比 Spring AI 优点 &#xff1a;对 Spring 开发者友好&#xff0c;通过自动配置…