项目描述:基于 Pcap4j+kryo+mmap 内存映射+WebSocket+SpringBoot+Thymeleaf 实现的抓包软件,项目包含实时抓取并显示网络
数据包、数据包各协议栈解析、过滤数据包、数据导入\导出 pcap 格式文件、网卡选择等功能模块
项目难点(个人职责):
1. 通过生成语法树的方式解析、验证过滤规则,使用责任链设计模式对已捕获和未捕获的数据包进行过滤,并用缓存存储对已捕
获数据包解析期间产生的新数据包,防止信息错位
2. 数据包导入\出:允许用户将捕获的数据包导出 pcap 格式文件,方便离线分析和共享。并支持静态 pcap 文件的解析
3. 使用 Pcap4j底层库获取网卡信息,根据用户选择要监听的网卡,对网卡中的数据包实时捕获,并用 WebSocket 协议推送给前端
显示
4. 使用 HashMap 集合缓存数据地址,解决 DNS 协议的域名压缩存储方式
5. 使用观察者设计模式,实现相关 listener 对抓取的数据包进行监听、处理,降低对象耦合,实现事件驱动
6. 基于 SPI 机制给用户提供自定义解析接口,使用 starter 的形式实现每个