为什么某些以太网卡上的TCP烟囱卸载function无法将某些networking数据包传递给操作系统?

在http://support.microsoft.com/kb/942861中, Microsoft报告说,在某些情况下,Microsoft SQL Server遇到networking问题,因为网卡的TCP烟囱卸载已打开。 我有其他服务器软件遇到类似的问题。 结果和SQL Server一样,closuresTCP Chimney Offload,一切恢复正常。

这个TCP烟囱卸载function是做什么的? 它是什么阻止某些networking数据包到达最终的应用程序?

TCP烟囱是帮助将大量networking处理从CPU卸载到网卡中的众多function之一。 它的问题是,一些网卡不正确做它。 当发生这种情况时,校验和会被搞乱,或者数据包以神秘的方式被破坏。 被封装的数据包和丢弃的数据包一样好,因此不会到达目的地。

顺便说一句,Broadcom卡是臭名昭着的这个bug。

TCP烟囱似乎是TCP卸载引擎的一种forms,与Windows一起使用来优化TCP通信。 正常情况下,TCP卸载是更多的单片,而烟囱似乎允许部分卸载方法,简化了一些事情。 这是一个专有的窗口的事情。 微软的Exchange博客有关于烟囱的一些信息。