I'm having trouble sending large files to an OpenStack machine.
Our Internet connection is over LTE so bad packets are to be expected. However, even sending data over TCP results in corrupted data when sending a few MB.
I would like to test if the TCP checksums are really being verified, so I need a tool to send TCP packets with invalid checksums.
There are programs which allow me to send arbitrary IP packets, but I would prefer a tool which also starts the connection (performs the three-way handshake, etc.) for me.
I can then use tcpdump
to check if the server ACKs the packets or requests a resend. (If the tool could do this as well, even better.)
Some thoughs and notes:
- I have tried different Linux versions on both the client and server.
- We no longer have corrupt packets when switching to a (slower) DSL line.
- We do not have corrupt packets when sending to another server from a different host.
- I have tcpdumps of a TCP transmission from both the client and server but the OpenStack host doesn't want to look at them, which is why I would like to find out if the checksums are the problem and also have a test program for the host.
- The server is an instance in an OpenStack environment.
- The recent
veth
TCP checksum corruption bug in the Linux kernel would explain this bug.
Any other ideas how to debug this are also welcome.