Preface
I tried to call back the packets I captured on my computer yesterday. However, I found that all the packets were discarded by the device and there was no debug information. I checked the packet capture file, it turns out that the test of the IP header and TCP and UDP headers is all 0, that is, caused by toe (TCP/IP Offload Engine.
Toe (TCP/IP Offload Engine)
Traditional TCP/IP processes network data transmission, which occupies a large amount of host CPU resources. To reduce the CPU pressure, Toe (TCP/IP Offload Engine, (TCP/IP uninstall engine) technology came into being. The toe technology expands the TCP/IP protocol stack so that some TCP/IP protocols are transferred from the CPU to the toe hardware, reducing the CPU burden.
One thing the toe engine needs to do is to calculate the checksun calculation of the IP header, TCP header, and UDP header by the NIC, the CPU does not need to calculate the IP header, TCP header, and UDP header inspection. This can reduce the CPU burden, as shown in, but this will bring about a problem, that is, the test of the sent packets captured by the user application is incorrect. If the packets are directly played back, will be discarded by the device, resulting in packet playback failure.
Disable Nic hardware checksum
Click "Nic properties" and find "advanced. Set
- IPv4 hardware checksum
- TCP hardware checksum (IPv4)
- UDP hardware checksum (IPv4)
If you disable all these three items, you can disable the hardware check and function of the NIC.
Tool for re-calculation and Verification
Another tool for re-calculation and verification is provided:
1. Put the pcap/cap file for checksum modification under this folder.
2. Double-click doit. CMD to generate a new file.
About toe (TCP/IP Offload Engine)