TCP校验和与TCP卸载

3
我正在使用原始套接字创建自己的套接字。我需要设置tcp_checksum。
我尝试了很多参考资料,但都不起作用(我正在使用wireshark进行测试)。
请问您能帮帮我吗?
顺便说一下,我在某个地方读到,如果将tcp_checksum设置为0,则硬件会自动为您计算校验和。这是真的吗?我尝试过了,但在wireshark中,tcp_checksum给出了一个值为0X000并显示为tcp offload。我还读过关于tcp offloading的内容,但没有理解,它只是表示wireshark无法检查已卸载的tcp校验和,但是否有正确的校验和??

编辑:我意识到,如果您将tcpChecksum设置为0,则网络卡将设置它,而不是操作系统。我正在使用wireshark和虚拟机进行测试,所以这就解释了为什么校验和为0x000(因为数据包甚至没有通过到达网络卡)。
但我仍然想知道如何手动计算tcp_checksum... 有什么帮助或链接吗?


你真的得到了计算校验和并传递0000的作业吗?对我来说没有起作用。 - user666412
1个回答

3

2
Linux是这类信息的宝库。同时,还要查看TCP规范http://www.rfc-editor.org/rfc/rfc793.txt的规格。 - Rickard von Essen
关于RFC的好处(这次我怎么忘了)确实有一点需要注意——工具。ietf.org的HTML页面更适合阅读:http://tools.ietf.org/html/rfc793#section-3.1 - Kimvais

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接