快速零拷贝数据包生成与解析模块
pnet的Python项目详细描述
一个快速简单的python包创建和解析库,目前没有 更多的是概念的证明。灵感来自python pypacker库和rust的pnet,
设计
通过利用 memoryviews 用于快速切片和零拷贝内存操作。
这个库接受一个字节或字节数组对象并解析 与rust库类似的各种协议。结果 可以检查数据包对象,或者,如果数据包对象有bytearray支持, 也写信给。在这种情况下,将立即更新备份内存。
不是将数据包字段映射到属性,而是使用 像api这样的集合。这是我个人的品味,因为我不喜欢 自动生成的属性最终会使用与python重叠的akward名称 关键词。
性能
在我的机器上的初始测试表明,这个库大约是的两倍 分析数据包的速度很快,但我还没有确定这是否可以归因于 设计差异,或者我只是做得更少。
待办事项
这是我发布的大量网络检查代码的一部分。
- 丰富的BPF支持和迷你语言
- 异步支持原始套接字和数据包捕获
- 基于异步的DHCP服务器和客户端库