I've contacted the owners of network A and network B, but they haven't been helpful so far. What other test would show up network corruption? If I knew the network topology and I could find HTTPS servers behind each hop between A and B, I could run my test on them. Second question: Are there any tools I can use to isolate the problem? I can't find any. I guess some router must be doing higher-level data mangling (NAT? transparent proxy?) and corrupting the data but fixing the checksum? Also, if I run a network capture, I don't see many retransmits (according to wireshark's filter), which you would expect if packets were being corrupted and failing the TCP checksum. This has been going on for over 3 days, by the way.įirst question: How can this plausibly happen? TCP has packet-level checksums, and corrupt packets passing the checksum should be much rarer than I am seeing. So it's pretty clear my TCP stream is getting corrupted between A and B. In those cases, the loop runs forever with no errors. But I cannot reproduce from network A to other servers, or from other hosts to network B. I can reproduce this on multiple hosts in network A, accessing multiple servers on network B. Usually within 20 requests, curl fails with an error like "Unknown SSL protocol error" or "tlsv1 alert decrypt error". I can reproduce the problem by running: sh -e -c 'while true do curl $SERVER > /dev/null sleep 1 done' If I make the requests over HTTPS, I get SSL-level errors. If I make the requests over unencrypted HTTP, I get strange errors that hint at a corrupt request. Unfortunately, many of these requests get corrupted. I run a few hosts on network A that make requests to servers (which I don't own) on network B, somewhere across the Internet.