我有一个数据库充满了大量已记录的IPV4消息 . 它用于获取以下查询:“给我所有来自MacAddress的消息......在这段时间内记录下来... ......有... ......
某些查询将导致大量记录的消息 . 因此,如果提出此类请求,我们决定制作PCAP文件 .
“请创建一个包含数据库中所有已记录消息的PCAP文件......”
因此,根据请求,我的服务应该从数据库中获取所请求的数据(在页面中)并创建一个填充了从数据库中获取的数据的PCAP文件 . 以后的调用者可以向此文件请求只读OWIN流
该服务可以创建这样的文件 . 问题是它不被识别为正确的WireShark文件 .
我读过Libcap File Format . 每当我必须创建一个充满LoggedMessages的文件时,我会按如下方式填充二进制文件 .
全局 Headers
每条记录的消息:
包头
分组数据:
以太网帧:目标Mac,源Mac,EtherType(0x800)
IPV4标头
记录的数据
Wireshark在尝试读取 Ethertype 时开始抱怨该文件 . 它说这是一个长度 . Definition of Ethernet Frame with EtherType
所以下面我展示了我的文件的开头 . 每个字节的十六进制格式我对它的解释 . 之后来自wireshark的评论
创建的流以Global Header开头:32字节结构 . 首先是十六进制值然后是解释:
=== Global Header ====
D4 C3 B2 A1 02 00 04 00
00 00