作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我们在 linux 上使用 libpcap 嗅探数据包我们在每个数据包上获得的 header 如下所示:
struct pcap_pkthdr {
struct timeval ts; /* time stamp */
bpf_u_int32 caplen; /* length of portion present */
bpf_u_int32 len; /* length this packet (off wire) */
};
现在,我的理解是 caplen 是我们捕获的数据的长度len 是数据包在线路上的长度。在某些情况下(例如,当打开 pcap 设备时将 snaplen 设置得太低)我们可能只捕获数据包的一部分,该长度将是 'caplen',而 'len' 是原始长度。因此,caplen 应等于或小于 len,但绝不能大于 len。
这样理解对吗?我们在一些机器上看到 caplen > len
最佳答案
您的理解是正确的,至少基于 pcap 手册页。
caplen 是捕获中可用的数据量。 len为数据包的实际长度。
我不知道有任何情况会给您 caplen > len。我通常认为它们是相等的,因为我的 snaplen 足够高。
关于c - pcap 结构 pcap_pkthdr len 与 caplen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1491660/
我们在 linux 上使用 libpcap 嗅探数据包我们在每个数据包上获得的 header 如下所示: struct pcap_pkthdr { struct timeval ts;
我是一名优秀的程序员,十分优秀!