J'ai récemment passé le jour férié de Pâques avec mes parents, qui vivent dans une zone très rurale du Royaume-Uni. Ils ont une connexion Internet ADSL (terrible), qui fonctionne sur plusieurs kilomètres de cuivre douteux et est périodiquement interrompue lorsque les agriculteurs voisins inversent leurs tracteurs dans les lignes téléphoniques.
J'ai remarqué que leur routeur abandonnait à plusieurs reprises la pptp
poignée de main et la renégociait, tuant la connexion efficacement. C'était frustrant. Donc, pour éviter de devenir fou, je lui ai dit de doubler la marge SNR minimale acceptable et de prendre la main pour des vitesses inférieures:
$ 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.
Cela a amélioré les choses, et la chose a obtenu un tuyau (quelque peu) stable, si incroyablement lent, vers le monde extérieur:
$ 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
...
À peu près à ce stade, la vraie vie est intervenue et j'ai ensuite passé plusieurs heures à jouer avec des chats, à regarder des gifs de chats sur mon téléphone, à parler à ma famille , etc. J'ai oublié que j'avais laissé ce processus de ping en cours et je suis revenu un jour plus tard pour frapper ctrl-c
.
Les statistiques sommaires présentées m'ont terrassé:
--- 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
Comme vous pouvez le voir, le temps de réponse maximum enregistré pour un paquet ICMP effectuant un court saut transatlantique vers le serveur DNS de Google est de 3600577,732 ms . C'est presque exactement une heure , et certainement beaucoup plus longtemps que ping
le délai d'expiration par défaut.
Comment diable cela peut-il être? Est- ce exact? Quel routeur tiendra volontiers un paquet pendant soixante minutes avant de l'envoyer en route? Pourquoi ce paquet n'a-t-il pas été abandonné? Est-ce le résultat d'un débordement du compteur de paquets 8 bits combiné à de grandes latences?
Enfin, je serais intéressé de savoir s'il existe un code de conduite au Royaume-Uni indiquant que les connexions ADSL grand public devraient avoir moins de latence et une meilleure gestion du trafic que celles des RFC 1149 et RFC 2549 ;-).
ping
code source (à partir de ~ l 761), je peux voir que les fuseaux horaires sont ignorés dans le calcul suivant ( gettimeofday(nv, NULL)
renvoie l'époque en microsecondes). Cela a vraiment pris une heure!