这段时间在琢磨如何解析激光雷达采集的pcap数据包,手头有台镭神的32线Lidar,在对pcap文件解包拆成想要的格式(pcd,bin)格式的时候,遇到了一个小问题:
用镭神提供的点云可视化软件录制的pcap包,经常会出现解析失败的情况,具体的报错信息如下:
可以发现,这个pcap文件只能部分解析,解析到第13234个包的时候,出现了错误,查看解析出来的文件夹发现,解析出来的内容是准确而无误的,猜测可能是录制的时间比较长(其实只有30s左右的时间),中间抓包的过程中出了错误,于是重新录制了一个只有几秒钟的pcap包,再次进行解析,最终成功解析出来。
为了找出之前录制的pcap包中出错的地方,用pcap软件打开,定位到第13234个包的位置,问题终于找到:
上图可以发现,第13235个包出现了问题,导致上面的解析程序只能解析到第13234个包,目的地址已经发生了改变,于是考虑用wireshark将其过滤出来,下面是过滤的指令:
ip.dst == 192.168.1.102
按照目的ip地址进行过滤,去掉异常的包,也可以选择其他的过滤条件,过滤结果如下:
可以看到异常数据已经滤除了。
接下来对过滤的结果进行保存,选择导出特定分组:
选择显示的包,这里也可以选择其他需要保存的包,还可以指定具体的包的范围,可以自行探索。
可以发现,过滤后,只显示了50734个包,得到最终过滤后的文件
这里有个地方需要注意的是,不要按照网上一些博客的教程来,可能是版本不同的原因,我这里选择另存为根本不能选择要保存的范围是哪些内容。
最终,对过滤后的pcap文件进行解析,成功通过。