我有一个pcap文件,其中包含了通过802.11(wifi)传输的各种类型的流量。由于MTU的限制,udp(或更准确地说是IP)会对wifi数据包进行分片。我目前正在使用SharpPcap来读取并尝试访问wifi流量,但遇到了手动重新组装UDP数据包的问题。
我看到两个选项,想检查一下它们是否可行,哪个是最佳方案,或者是否有我忽略的东西。最终,我将访问以同样格式通过UDP流式传输给我的实时数据(wifi over UDP),但出于测试目的,我必须使用pcaps进行测试。
我可以手动加载pcap文件,通过片偏移和数据包ID重新组装它,使用状态机跟踪所有数据包。或者我可以尝试避免重新组装(我认为套接字应该为我完成这项工作),加载pcap文件,输出到本地主机上的原始套接字,并监听本地主机上的UDP套接字。我会避免第一种方法,直到真正需要它(是吗?),而第二种方法似乎应该行得通,但实际上并没有。我已经设置好了所有内容,但数据包仍然一个接一个地以字节数组的形式发送和接收 - 并且被分片。
这可能是因为IP层仍然包含原始捕获的IP目标地址和端口(不同于现在的地址和端口)吗?我尝试在发送之前更改这些内容,虽然我没有更改校验和,但它仍然被分片了。
我看到两个选项,想检查一下它们是否可行,哪个是最佳方案,或者是否有我忽略的东西。最终,我将访问以同样格式通过UDP流式传输给我的实时数据(wifi over UDP),但出于测试目的,我必须使用pcaps进行测试。
我可以手动加载pcap文件,通过片偏移和数据包ID重新组装它,使用状态机跟踪所有数据包。或者我可以尝试避免重新组装(我认为套接字应该为我完成这项工作),加载pcap文件,输出到本地主机上的原始套接字,并监听本地主机上的UDP套接字。我会避免第一种方法,直到真正需要它(是吗?),而第二种方法似乎应该行得通,但实际上并没有。我已经设置好了所有内容,但数据包仍然一个接一个地以字节数组的形式发送和接收 - 并且被分片。
这可能是因为IP层仍然包含原始捕获的IP目标地址和端口(不同于现在的地址和端口)吗?我尝试在发送之前更改这些内容,虽然我没有更改校验和,但它仍然被分片了。