情况介绍
在进行RDMA抓包流量分析时,我使用ethtool工具统计了RDMA网卡的流量发送数据数量,然后使用tcpdump进行抓包。
经过分析发现,tcpdump得到的数据数量总是大于ethtool得到的数据数量,而且每个数据包会多出4个字节。
分析
之后,我进一步了解了tcpdump。在数据包被发送到网卡前,tcpdump捕获之。而网卡从内核收到数据包后,会对数据包进行分割并且添加校验和checksum。tcpdump在捕获数据包的时候,看不到还没计算出的checksum。因此对每个数据包,ethtool多统计的4个字节就是checksum。
总结
在统计流量信息的时候,还需要加上4个字节的校验和(比如校验算法CRC32)。