TCP checksum优化
原理
TCP校验和(checksum)是一个端到端的校验和,由发送端计算,然后由接收端验证。其目的是为了发现TCP首部和数据在发送端到接收端之间发生的任何改动。如果接收方检测到校验和有差错,则TCP段会被直接丢弃。
通常TCP checksum是由内核网络驱动来实现的,而且在5.6之前的内核版本是使用普通的算法实现。
部分网卡驱动是支持TCP校验和功能的,可以通过ethtool -k 网卡名称 | grep checksumming查看是否支持。
如果网卡驱动不支持,且内核态do_csum函数热点占用过高的情况下,可以通过修改内核合入checksum优化算法来提升性能。
网络通信中do_csum占用过高时的热点函数图如下图1所示:
父主题: 优化方法