Baru-baru ini saya menghabiskan liburan bank Paskah dengan orang tua saya, yang tinggal di daerah pedesaan di Inggris. Mereka memiliki koneksi internet ADSL (mengerikan), yang dijalankan beberapa kilometer dari tembaga yang cerdik dan secara berkala terganggu ketika petani di dekatnya membalikkan traktor mereka ke saluran telepon.
Saya perhatikan bahwa router mereka berulang kali menjatuhkan pptp
jabat tangan, dan menegosiasikannya, mematikan koneksi secara efektif. Ini membuat frustrasi. Jadi, dalam upaya untuk menghindari menjadi gila, saya mengatakannya untuk menggandakan margin SNR minimum dan jabat tangan untuk kecepatan yang lebih rendah:
$ 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.
Ini meningkatkan masalah, dan benda itu mendapat (agak) stabil, jika sangat lambat, pipa ke dunia luar:
$ 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
...
Pada titik ini, kehidupan nyata turun tangan dan saya kemudian menghabiskan beberapa jam bermain dengan kucing, melihat gif kucing di ponsel saya, benar-benar berbicara dengan keluarga saya , dll. Saya lupa bahwa saya membiarkan proses ping ini berjalan, dan kembali lagi tentang sehari kemudian untuk memukul ctrl-c
.
Statistik ringkasan yang ditampilkan memiringkan saya:
--- 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
Seperti yang Anda lihat, waktu respons maksimum yang tercatat untuk paket ICMP yang membuat lompatan transatlantik singkat ke server DNS Google adalah 3600577,732 ms . Itu hampir tepat satu jam , dan tentu saja jauh lebih lama dari ping
batas waktu default.
Bagaimana ini bisa terjadi? Apakah ini akurat? Router apa yang dengan senang hati akan memegang suatu paket selama enam puluh menit sebelum mengirimkannya dalam perjalanan? Mengapa paket ini tidak dijatuhkan? Apakah ini hasil dari overflow dari penghitung paket 8-bit yang dikombinasikan dengan latensi besar?
Akhirnya, saya akan tertarik untuk mengetahui apakah ada kode etik di Inggris yang menyatakan bahwa koneksi ADSL konsumen diharapkan memiliki latensi yang lebih rendah dan manajemen lalu lintas yang lebih baik daripada RFC 1149 dan RFC 2549 ;-).
ping
kode sumber (dari ~ l 761) saya dapat melihat bahwa zona waktu diabaikan dalam perhitungan berikutnya ( gettimeofday(nv, NULL)
mengembalikan zaman mikrodetik). Itu benar-benar memakan waktu satu jam!