Maybe 20 years ago now, I wrote a simple email-to-sms script that I ran from procmail. To send the email out as SMS, it connected to a Verizon web site. This was before Verizon provided their own email-to-sms gateway.
I wrote and tested the script under OS X and it worked fine. I then moved it to my Linux server on the same network and it couldn't connect to Verizon's web site.
After using tcpdump to figure out what the difference was, I noticed that Linux was setting the ECN bit. Verizon had a firewall in front of their site that was apparently dropping packets with the ECN bit set. ECN was only a couple years old at that point. I think I figured out that it was due to an out-of-date Cisco PIX firewall on the Verizon end, but I'm not sure how I would have figured that out.
FYI, you can do email-to-SMS with various carriers just by sending to an appropriately-named email address. For Verizon, it's PHONE_NUMBER@vtext.com (text) or PHONE_NUMBER@vzwpix.com (pictures). No need for any website interaction.
Discovering this was a huge boon to my high school programming. I had a Gmail bot listening for commands like !weather which would text me an up to date weather report. This was 2005 and I was on a flip phone without a data plan working outside as a lifeguard.
I wrote and tested the script under OS X and it worked fine. I then moved it to my Linux server on the same network and it couldn't connect to Verizon's web site.
After using tcpdump to figure out what the difference was, I noticed that Linux was setting the ECN bit. Verizon had a firewall in front of their site that was apparently dropping packets with the ECN bit set. ECN was only a couple years old at that point. I think I figured out that it was due to an out-of-date Cisco PIX firewall on the Verizon end, but I'm not sure how I would have figured that out.
The solution was to disable ECN on the Linux box.
https://en.wikipedia.org/wiki/Explicit_Congestion_Notificati...