pcap_open_dead模拟完整的UDP数据包捕获

时间:2012-04-11 22:15:00

标签: c linux udp pcap libpcap

关于创建pcap文件的question后,我现在想模拟保存完整的UDP数据包,包括以太网,IP和UDP标头。

我应该使用哪种DLT_XXX类型?使用pcap_open_dead(DLT_RAW,65535)时,我相信pcap_dump()skips以太网标头。

1 个答案:

答案 0 :(得分:4)

如果要模拟完整的UDP-over-IP-over-Ethernet数据包,则需要DLT_EN10MB(名称中的“10MB”是历史数据; DLT_EN10MB实际上是指“所有类型的以太网“)。

DLT_RAW用于最低级别标头用于IP的数据包;它不会跳过以太网标头,这意味着您不必提供以太网标头,事实上,它要求你提供一个 - 如果你提供一个,它将被写入文件,这会混淆读取文件的程序,因为它们会期望数据包以IPv4或IPv6标头开头,而不是以太网标头。)