我正在阅读libpcap tutorial并正在使用我想要分析的一些捕获(我自己没有创建它们),因此我正在使用离线模式。
在应用教程时,似乎没有任何内容匹配。我没有从以太网帧获得有效的MAC地址,甚至前言似乎也没有。经过一段时间的过期后,我解雇了wireshark并注意到一些奇怪的事情。每个数据包都以6
开头:这些不是以太网(数据链路)层上的数据包,它们已经是IP(网络)层上的一层(它们是IPv6数据包,这是预期的)。
当然,我现在可以轻松继续,但我仍然想知道:我如何知道捕获的包在哪一层?似乎至少有两个选项:保存在数据链路层并保存在网络层。我也可以在传输层接收数据包吗?我如何区分?用户必须告诉我吗?我真的很讨厌不得不猜测,但是当看到wireshark正确时,必须有一种简单的方法来确定它。
答案 0 :(得分:2)
libpcap文件格式在其global header called network
中有一个字段,用于指定数据链接类型。这对应于tcpdump项目中有关各种Link-Layer Header Types的文档。
从那里,您将能够确定链接层包含多少字节(如果有的话),并且将成为解析使用libpcap库创建的pcap文件的可靠方法。
我不知道“libpcap系列”中的程序选项允许您从传输层开始捕获。