本项目是一个轻量级、模块化的网络流量捕获与分析工具,旨在实现类似 Wireshark 的核心抓包功能,并侧重于数据流量的可视化呈现与协议逻辑的深度解析。
系统基于 Python 3 开发,采用 Scapy 作为底层数据包处理引擎,结合 PySide6 (Qt for Python) 构建高性能图形界面,并集成 Matplotlib 实现实时的流量统计图表。相较于传统商业软件,本系统具有轻量化、部署灵活、源码易读等特点,适合网络协议分析、网络安全教学及二次开发研究。
图 1-1 现有工具与本系统特性对比分析
- 🛡️ 实时数据包捕获:基于 Npcap/Libpcap 底层驱动,支持多网卡实时混杂模式抓包。
- 🔍 多层协议解析:
- 支持 Ethernet, ARP, IPv4, ICMP, TCP, UDP, HTTP, DNS 等主流协议。
- 提供可视化的协议解析树 (Protocol Tree) 视图。
- 🎨 智能色彩映射:根据协议类型自动匹配背景色(如 TCP:淡紫, UDP:杏色, HTTP:浅黄),提升分析效率。
- 📊 动态可视化:
- 基于时间桶算法的实时流量 IO 趋势图。
- 协议分布占比饼图/统计图。
- ⚡ 高性能架构:采用多线程 + 队列缓冲机制,防止高并发流量下的界面冻结。
系统采用分层设计,整合了底层驱动、Python 解释器、协议处理库及 GUI 框架。

图 2-3 系统技术架构层次图
遵循 Model-View-Controller 模式,实现数据处理与界面显示的解耦。

图 4-1 系统分层架构设计图
利用 Qt 的 Signal/Slot (信号槽) 机制实现后台抓包线程与主界面线程的异步通信。

图 2-2 基于 Qt 信号槽的多线程通信机制
- 操作系统: Windows 10/11 (推荐) 或 Linux (Ubuntu 20.04+)
- Python: 3.9 或更高版本
本系统依赖底层网络驱动,必须安装以下驱动之一才能抓包:
- Windows 用户: 下载并安装 Npcap。
- 注意:安装时务必勾选 "Install Npcap in WinPcap API-compatible Mode"。
- Linux 用户: 安装 Libpcap 开发包
sudo apt-get install libpcap-dev。
在项目根目录下运行终端:
pip install -r requirements.txt