I recently spent the Easter bank holiday with my parents, who live in a very rural area in the UK. They have a (terrible) ADSL internet connection, which is run over several kilometres of dodgy copper and is periodically interrupted when nearby farmers reverse their tractors into the phone lines.
I noticed that their router was repeatedly dropping the pptp handshake, and renegotiating it, killing the connection effectively. This was frustrating. So, in an attempt to avoid going insane, I told it to double the minimum acceptable SNR margin and handshake for lower speeds:
$ telnet 192.168.1.1
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
U.S. Robotics Wireless MAXg ADSL Gateway
Login: ***********
Password:
> sh
BusyBox v1.00 (2006.02.17-20:30+0000) Built-in shell (msh)
Enter 'help' for a list of built-in commands.
adsl configure --snr 200; exit
Connection closed by foreign host.
This improved matters, and the thing got a (somewhat) stable, if incredibly slow, pipe to the outside world:
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
64 bytes from 8.8.8.8: icmp_seq=0 ttl=55 time=3236.679 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=55 time=3699.541 ms
...
At about this point, real life intervened and I then spent several hours playing with cats, looking at cat gifs on my phone, actually talking to my family, etc. I forgot that I'd left this ping process running, and came back about a day later to hit ctrl-c.
The summary statistics shown floored me:
--- 8.8.8.8 ping statistics ---
103074 packets transmitted, 100564 packets received, 2.4% packet loss
round-trip min/avg/max/stddev = 32.986/3034.479/3600577.732/87527.276 ms
As you can see, the maximum recorded response time for an ICMP packet making a short transatlantic hop to Google's DNS server is 3600577.732 ms. That's almost exactly an hour, and certainly far longer than ping's default timeout.
How on Earth can this be? Is it accurate? What router will happily hold onto a packet for sixty minutes before sending it on its way? Why wasn't this packet dropped? Is it the result of an overflow from the 8-bit packet counter combined with large latencies?
Finally, I would be interested to know if there is any code of conduct in the UK stating that consumer ADSL connections are expected to have less latency and better traffic management than that by RFC 1149 and RFC 2549 ;-).