3 ms·
If you are seeing bad packets with any amount of frequency, one thing to check is if you're using any TCP offloading with your driver, both on the sending end a
by IvyMike 14y ago
If you are seeing bad packets with any amount of frequency, one thing to check is if you're using any TCP offloading with your driver, both on the sending end and on the receiving end. (Such as "Large Send Offload", TCP checksum offloading, IP checksum offloading, TSO/LRO, etc. These are usually vendor-specific settings, so terminology may differ)
I've seen multiple vendors with buggy implementations. In what way are they buggy? In the cases I've seen, packets are corrupted by the driver and then have a hardware checksum applied to the corrupt data...so they go through the network just fine. (In one case, for example, two 64 byte blocks of data were swapped within a large packet.)
When you turn on TCP offloading, you're swapping the well-proven OS network stack for a who-the-hell-knows-how-much-testing-really-went on network device stack.
There may or may not be a noticeable performance penalty when you turn off TDP offloading features, so you should profile performance before and after.