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