(使用 Linux)
使用创建TCP
数据包raw sockets
- 事实证明,在高性能网络中计算校验和是我的瓶颈。由于 NIC 将支持校验和卸载,并且ethtool
还说它已启用,我希望我可以使用校验和卸载。
但是,当我使用原始套接字时,似乎没有计算校验和。有没有办法使用原始套接字启用 tcp 校验和卸载?
编辑:
实际上我的机器/网卡(Thinkpad x201)的行为似乎不太合乎逻辑:当使用普通的 tcp 套接字发送数据包时,所有校验和都是错误的,在环回接口以及机器之间。有趣的是,另一台机器默默地传递数据包?
Edit2:好的,现在我只是查看了错误机器上的数据包,卸载工作正常。但是当我离开tcp_checksum
字段 0 时,它不会被填写,它只是保持 0。