Di recente ho trascorso le vacanze di Pasqua con i miei genitori, che vivono in una zona molto rurale del Regno Unito. Hanno una (terribile) connessione Internet ADSL, che viene eseguita su diversi chilometri di rame instabile e viene periodicamente interrotta quando gli agricoltori vicini invertono i loro trattori nelle linee telefoniche.
Ho notato che il loro router stava facendo cadere ripetutamente l' pptp
handshake, rinegoziandolo, uccidendo la connessione in modo efficace. Questo è stato frustrante. Quindi, nel tentativo di evitare di impazzire, gli ho detto di raddoppiare il margine SNR minimo accettabile e la stretta di mano per le velocità più basse:
$ 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.
Ciò ha migliorato le cose e la cosa ha ottenuto un tubo (un po ') stabile, anche se incredibilmente lento, verso il mondo esterno:
$ 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
...
A questo punto, la vita reale è intervenuta e ho trascorso diverse ore a giocare con i gatti, guardando le gif di gatto sul mio telefono, in realtà parlando con la mia famiglia , ecc. Ho dimenticato che avevo lasciato questo processo di ping in esecuzione, e sono tornato indietro un giorno dopo per colpire ctrl-c
.
Le statistiche riassuntive mostrate mi hanno paventato:
--- 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
Come puoi vedere, il tempo di risposta massimo registrato per un pacchetto ICMP che fa un salto transatlantico breve sul server DNS di Google è di 3600577,732 ms . È quasi un'ora esatta , e sicuramente molto più lunga ping
del timeout predefinito.
Come diavolo può essere? È preciso? Quale router rimarrà felicemente su un pacchetto per sessanta minuti prima di inviarlo sulla sua strada? Perché questo pacchetto non è stato eliminato? È il risultato di un overflow dal contatore di pacchetti a 8 bit combinato con latenze elevate?
Infine, sarei interessato a sapere se esiste un codice di condotta nel Regno Unito che afferma che le connessioni ADSL dei consumatori dovrebbero avere una latenza inferiore e una migliore gestione del traffico rispetto a quella di RFC 1149 e RFC 2549 ;-).
ping
codice sorgente (da ~ l 761) posso vedere che i fusi orari vengono ignorati nel calcolo successivo ( gettimeofday(nv, NULL)
restituisce i microsecondi dell'epoca). Ci è voluta davvero un'ora!