我正在使用libpcap
. 我正在计算此处
size_payload = ntohs(ip->ip_len) - (size_ip + size_tcp);
给出的有效负载大小
现在,对于一个数据包,size_payload
是 1228,以太网报头是 14 字节,IP 报头是 20 字节,TCP 报头是 32 字节。而header.caplen
和header.len
是 1514 字节。不size_payload+size_ip+size_tcp+size_ethernet
应该等于header.caplen
?此外,当我使用 tcpdump 转储相同的数据包时,捕获长度显示为1514
. 为什么这些不同?我期望ntohs(ip->ip_len)
等于header.caplen
和header.len
编辑
我希望ntohs(ip->ip_len)
等于header.caplen
and header.len
。但我发现的ntohs(ip->ip_len) = 1280
是header.caplen = header.len = 1514