小智 6
MTU是可以传递给链路层的最大有效载荷大小; 它不包括任何链路层报头,因此,例如,在以太网上它将是1500,而不是1514或1518,并且不会大到足以捕获全尺寸的以太网数据包.
此外,它不包括任何元数据标头,例如802.11无线电信息的radiotap标头.
而如果适配器做任何形式的分裂/分段/重组和卸载,数据包交给适配器或收到适配器可能尚未被分割或分割,或可能已被重新组装,并且,正因为如此,可能是很多大比MTU.
至于在PCAP缓冲区中安装更多数据包,这仅适用于Linux中具有固定大小数据包插槽的内存映射TPACKET_V1和TPACKET_V2捕获机制; 其他捕获机制不为每个数据包保留最大大小的插槽,因此较短的快照长度无关紧要.对于TPACKET_V1和TPACKET_V2,较小的快照长度可能会有所不同,但至少对于以太网,libpcap 1.2.1尽可能地尝试为以太网选择合适的缓冲区大小.(TPACKET_V3似乎没有固定大小的每个数据包插槽,在这种情况下它不会出现这个问题,但它最近才出现在官方发布的内核中,并且在libpcap中还没有支持它.)