K.I.S.S. – 简单哲学 Linux, Freedom, Arch, Python, Gtk+, C … Keep It Simple, Stupid!

22二/090

pcap_pkthdr 中 len 和 caplen的区别(转载)

捕获时,使用pcap_loop之类的函数,在调用处理的handle的时候,返回的第一个参数的类型为pcap_pkthdr,第二个参数为uint8_t的指针,前者中有两个数据域的东东:caplen和len,如下:

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——这个包的长度

因为在某些情况下你不能保证捕获的包是完整的,例如一个包长1480,但是你捕获到1000的时候,可能因为某些原因就中止捕获了,所以caplen是记录实际捕获的包长,也就是1000,而len就是1480。

转载请注明:转自K.I.S.S. - 简单哲学 - pcap_pkthdr 中 len 和 caplen的区别(转载)

分享家:Addthis中国

你可能对这些感兴趣:

  1. 非阻塞式socket编程(select() )(转载)

喜欢这个文章吗?

考虑订阅我们的RSS Feed吧!

评论 (0) 引用 (0)

还没有评论.


发表评论


还没有引用.