这两天在项目实践中遇到了将网卡的TCP checksum offload 开启后在client侧无法正确接收sever侧的ACK消息的情况,关闭后问题解决了,但是有一点一直搞不懂,就是为什么TCP在建立连接的时候的SYN+ACK能够正确的加上校验和,而server回复给client的普通的ACK则不能正确的加上校验和,按理说如果硬件校验开启后不是所有的SERVER发送的包都需要经过网卡进行校验和的计算后才发送出去的吗?难道SYN+ACK这个包是TCP/IP协议栈自己进行checksum的计算的?求高手解答啊~wireshark截图如下:(我让wireshark开启了校验和的检验,默认是关闭的)上面第2个包显示校验和正确,而第6个包显示校验和错误

