我正在开发一些基于python的应用程序(主要是由于进行更改的灵活性),它将侦听以太网上的数据,将其保存到数据库(sqlite)并实时显示数据。以太网上的数据是基于UDP的,上面有一些自定义协议
我的挑战:
我已经有一个Wireshark解析器来解析这个自定义协议。但是,我不能像tshark那样使用它(该应用程序基于MS windows),因为我无法使用它来存储实时应用程序的数据(该应用程序将运行几个小时)。每次启动嗅探时,都会创建一个临时文件。如果我想让日志旋转(以便文件大小不变),我不能使用显示过滤器
使用scapy
-在UDP上快速实现自定义协议。现在,我对存储到sqlite的数据进行了一些测试,发现了一些性能问题,似乎不是所有的数据包都由scapy处理,也就是说,我用Wireshark和scapy进行了跟踪,发现scapy丢失了一些数据包。我查看了每秒数据包的统计数据,发现该接口上可能有75K个数据包/秒,因为这是一台监控计算机,可以看到我网络中的所有流量(我需要的数据不到0.1%)
2.a监控计算机可以采用2种网络配置:中间使用ERSPAN协议(即IP协议中的IP协议,其中我的数据位于整个数据包的最后一部分)或不使用ERSPAN协议(因此我可以向scapy的sniff
命令添加一些额外的过滤器)。不幸的是,第二种配置尚不可用
有什么建议可以做什么呢
目前没有回答
相关问题 更多 >
编程相关推荐