Kadang-kadang alamat web yang sering kita kunjungi tidak dapat diakses secepat biasanya, di internet hal ini dapat terjadi karena beberapa sebab, yang paling sering adalah karena jalur internet yang kita lalui memang sedang melambat atau penuh atau server dari alamat web tersebut sedang diakses oleh banyak orang sehingga membutuhkan waktu bagi server tersebut untuk memproses permintaan kita.
Memang sulit untuk mendeteksi permasalahan yang ada pada server remote (server yang terletak di tempat lain), tetapi ada beberapa software yang dapat membantu kita untuk mendeteksi kondisi jaringan yang kita lalui. Dua software sederhana yang paling sering kita pakai untuk mendeteksi jaringan adalah ping dan traceroute. Utility tersebut pada mulanya diciptakan untuk sistem operasi Unix, tetapi sekarang juga diterapkan pada DOS dan Windows, bernama ping dan tracert. Juga ada versi dari program ini yang berjalan pada Macintosh. Untuk artikel ini, penulis mengasumsikan pembaca menggunakan sistem operasi Windows Family, tetapi cara yang sama dapat diterapkan pada sistem operasi lain.
Kita akan memulai dengan ping. Ping bekerja dengan mengirimkan sebuah paket data yang disebut dengan Internet Control Message Protocol (ICMP) Echo Request. Paket ICMP ini biasanya digunakan untuk mengirimkan informasi tentang kondisi jaringan antara dua host (komputer). Informasi yang dikirim kurang lebih adalah “jangan lakukan itu”, “kirimkan paket yang lebih kecil”, “data yang anda cari tidak ada”, “jangan kesini, anda harusnya kesana”. Jika sebuah host menerima Echo Request ini, dia harus merespon dengan mengirimkan Echo Reply, dengan menempatkan Echo Request ke bagian data pada Echo Reply.
Penggunaan ping cukup sederhana, kita tinggal mengetikkan : ping namahost, dimana namahost adalah nama atau nomor IP dari host yang kita tuju. Banyak sekali versi dari ping, tetapi jika anda menggunakan ping milik Windows, maka outputnya akan menjadi seperti berikut :
Yang terjadi ketika kita melakukan ping ke
http://www.detik.com adalah kita mengirim satu paket ICMP Echo Request, setiap detik ke host tersebut. Ketika program ping kita memperoleh Echo Reply dari host yang kita tuju (www.detik.com), dia akan mencetak respon tersebut ke layar yang menunjukkan ke kita beberapa informasi : yang pertama adalah
nomor IP dari mana ping memperoleh Echo Reply, biasanya IP ini adalah IP dari host yang kita tuju (www.detik.com), yang kedua yang kedua adalah berapa mili detik waktu yang diperlukan untuk program ping mendapatkan balasan, yang ketiga adalah Time To Live (TTL).
Jika ada status Request time out, berarti ada paket yang drop, dengan kata lain entah itu Echo Request atau Echo Reply hilang di tengah jalan. Jika jumlah paket yang hilang sedikit (kurang dari satu persen), hal ini masih normal. Tapi jika paket yang hilang banyak sekali, berarti ada masalah pada koneksi jaringan kita.
Informasi berikutnya adalah Time To Live, setiap paket data yang dikirimkan melalui jaringan memiliki informasi yang disebut TTL, biasanya TTL ini diisi dengan angka yang relatif tinggi. Setiap kali paket tersebut melewati sebuah router maka angka TTL ini akan dikurangi dengan satu, jika TTL suatu paket akhirnya bernilai 0, paket tersebut akan di drop atau dibuang oleh router yang menerimanya. Menurut aturan RFC untuk IP, TTL harus bernilai 60. Kegunaan utama dari TTL ini supaya paket-paket data yang dikirim tidak ‘hidup’ selamanya di dalam jaringan.
Jika TTL yang kita dapatkan sewaktu kita melakukan ping berbeda-beda, ini menandakan bahwa paket-paket ping yang kita kirim berjalan melewati router yang berbeda-beda, hal ini menandakan koneksi yang tidak baik.
Informasi waktu yang diberikan oleh ping adalah waktu perjalanan pulang pergi ke remote host yang diperlukan oleh satu paket. Satuan yang dipakai adalah mili detik, semakin kecil angka yang dihasilkan, berarti semakin baik (baca: cepat) koneksinya. Waktu yang dibutuhkan suatu paket untuk sampai ke host tujuan disebut dengan latency. Jika waktu pulang pergi suatu paket hasil ping menunjukkan variasi yang besar (diatas 100), yang biasa disebut jitter, itu berarti koneksi kita ke host tersebut jelek. Tetapi jika selisih tersebut hanya terjadi pada sejumlah kecil paket, hal tersebut masih dapat ditoleransi.
Seperti yang anda lihat, ping berguna untuk melakukan tes konektivitas pada jaringan dan untuk memperkirakan kecepatan koneksi.
Berikutnya kita akan mempelajari tracert (atau traceroute di linux) yang akan menunjukkan pada kita jalur router yang dilewati oleh paket yang kita kirimkan ke host tertentu. Untuk lebih memperjelas, berikut ini adalah contoh hasil traceroute ke
http://www.detik.com:
Traceroute akan menampilkan titik-titik perantara yang menjembatani anda dan titik tujuan anda, ‘jembatan’ inilah yang biasa disebut dengan router, data yang anda kirimkan akan meloncat melewati jembatan-jembatan ini. Ada tiga buah waktu yang menunjukkan berapa waktu yang dibutuhkan oleh paket tersebut untuk berjalan dari komputer anda ke router. Untuk dapat memahami seluruh data yang dihasilkan oleh traceroute tersebut, kita harus memahami bagaimana cara traceroute bekerja.
“Traceroute menggunakan prinsip TTL dan paket ICMP yang sudah kita singgung diatas”.
Traceroute mengirimkan sebuah paket ke port UDP yang tidak dipakai oleh servis lain pada komputer tujuan (defaultnya adalah port 33434). Untuk tiga paket pertama, traceroute mengirimkan paket yang memiliki TTL satu, maka sesampainya paket tersebut pada router pertama (menghasilkan loncatan yang pertama) TTL akan dikurangi dengan satu sehingga menjadi 0 kemudian paket tersebut akan di drop. Berikutnya router tersebut akan mengirimkan paket ICMP ke komputer kita yang berisi pemberitahuan bahwa TTL dari paket yang kita kirimkan sudah habis dan paket yang kita kirimkan di drop.
Dari pesan ini, traceroute dapat menentukan nama router tempat data kita meloncat dan berapa waktu yang dibutuhkannya. Berikutnya traceroute akan mengirimkan paket dengan nilai TTL yang ditambah satu demi satu sampai host tujuan dicapai. Karena itu traceroute menggunakan port yang tidak dipakai oleh servis lain sehingga paket yang dikirim mendapat respon dan tidak ‘dimakan’ oleh servis lain yang mungkin ada.
Kadang waktu yang diperlukan meningkat banyak sekali karena jarak yang jauh atau jaringan yang dilewati memang sedang padat. Anda harus mencurigai titik-titik dimana waktu yang diperlukan menjadi besar sekali. Jika hal ini terjadi, anda dapat mengeceknya dengan melakukan ping ke router tersebut beberapa kali untuk melihat apakah paket yang kita kirimkan di drop, atau apakah ada variasi waktu yang besar. Dikombinasikan dengan ping, traceroute menjadi alat analisa jaringan yang baik dengan melihat loncatan mana yang memakan waktu yang besar atau paket yang di drop, kita dapat menentukan dimana titik kritisnya. Kemudian dengan melakukan ping pada titik tersebut dan satu titik sebelumnya, kita dapat menemukan masalah yang ada dalam jaringan.
ping 202.134.0.155
Menguji konektivitas dengan Host IP 202.134.0.155
ping –t 202.134.0.155
Melakukan perintah ping ke host tujuan terus menerus sampai dihentikan. Untuk melihat statistic dan melanjutkan tekan Control+Break sedangkan untuk menghentikan proses tekan Control+C.
Pinging 202.134.0.155 with 32 bytes of data:
Reply from 202.134.0.155: bytes=32 time=78ms TTL=245
Reply from 202.134.0.155: bytes=32 time=82ms TTL=245
Reply from 202.134.0.155: bytes=32 time=77ms TTL=245
Reply from 202.134.0.155: bytes=32 time=80ms TTL=245
dst………..
ping –a 202.134.0.155
Melakukan perintah ping dan mencari nama host dari komputer tujuan
Pinging nsjkt1.telkom.net.id [202.134.0.155] with 32 bytes of data:
Reply from 202.134.0.155: bytes=32 time=77ms TTL=245
Reply from 202.134.0.155: bytes=32 time=76ms TTL=245
Reply from 202.134.0.155: bytes=32 time=75ms TTL=245
Reply from 202.134.0.155: bytes=32 time=78ms TTL=245
ping –n 5 202.134.0.155
Melakukan perintah ping dengan menentukan jumlah request echo. Defaultnya tanpa –n adalah 4.
Pinging 202.134.0.155 with 32 bytes of data:
1. Reply from 202.134.0.155: bytes=32 time=91ms TTL=245
2. Reply from 202.134.0.155: bytes=32 time=78ms TTL=245
3. Reply from 202.134.0.155: bytes=32 time=77ms TTL=245
4. Reply from 202.134.0.155: bytes=32 time=78ms TTL=245
5. Reply from 202.134.0.155: bytes=32 time=75ms TTL=245
ping –l 100 202.134.0.155
Melakukan perintah ping dengan mengirimkan paket data sebesar 1000 bytes. Secara default paket yang dikirimkan sebesar 32 bytes. Maximum paket yang bisa dikirimkan sebesar 65,527 bytes
Pinging 202.134.0.155 with 1000 bytes of data:
Reply from 202.134.0.155: bytes=1000 time=419ms TTL=245
Reply from 202.134.0.155: bytes=1000 time=246ms TTL=245
Reply from 202.134.0.155: bytes=1000 time=241ms TTL=245
Reply from 202.134.0.155: bytes=1000 time=343ms TTL=245
ping –w 10000 202.134.0.155
Mengatur Timeout dalam milliseconds untuk menunggu pada tiap-tiap reply. Jika pesan yang ditampilkan adalah “Request Time Out”, maka dengan menggunakan opsi atau parameter ini jarak antar pesan “RTO” adalah seperti yang telah kita atur. Secara Default waktu time outnya adalah 4000 millisecond (4 detik) Jika dirubah dengan angka 10000 = 10 detik.
Pinging 202.134.0.155 with 32 bytes of data:
Reply from 202.134.0.155: bytes=32 time=302ms TTL=245
Reply from 202.134.0.155: bytes=32 time=323ms TTL=245
Reply from 202.134.0.155: bytes=32 time=199ms TTL=245
(10 detik) Request timed out.
(10 detik) Request timed out.
Reply from 202.134.0.155: bytes=32 time=117ms TTL=245
Reply from 202.134.0.155: bytes=32 time=291ms TTL=245
B. Lebih Detail Mengetahui Cara Traceroute/Tracert bekerja
Untuk mengetahui jalur yang ditempuh untuk mencapai suatu node, traceroute mengirimkan 3 buah paket probe tipe UDP dari port sumber berbeda, dengan TTL bernilai 1. Saat paket tersebut mencapai router next-hop, TTL paket akan dikurangi satu sehingga menjadi 0, dan router next-hop akan menolak paket UDP tersebut sembari mengirimkan paket ICMP Time-to-Live Exceeded ke node asal traceroute tersebut. Dengan cara ini, pengirim traceroute tahu alamat IP pertama dari jalur yang ditempuh.
Kemudian, sumber traceroute mengirimkan 3 buah paket UDP lagi dengan nilai TTL yang dinaikkan 1 (TTL = 2), sehingga router pertama di jalur menuju tujuan traceroute akan melewatkan paket UDP tersebut ke router selanjutnya. Router hop kedua akan melihat bahwa paket tersebut sudah expired (TTLnya jadi 1, setelah dikurangi oleh router pertama). Maka, seperti halnya router pertama, router tersebut akan mengirimkan paket ICMP Time-to-Live Exceeded ke sumber traceroute. Sekarang, sumber traceroute telah mengetahui hop kedua dari jalur menuju tujuan traceroute.
Sumber traceroute akan mengirimkan lagi paket UDP dengan TTL ditambah 1 (TTL = 3). Router hop ketiga akan membalas dengan paket ICMP Time-to-Live Exceeded ke sumber traceroute, sehingga sumber traceroute mengetahui alamat IP router hop ketiga. Proses ini akan diulang terus paket UDP yang dikirimkan mencapai alamat IP tujuan traceroute.
Tiga buah paket UDP traceroute adalah jumlah paket default dari aplikasi traceroute. Inilah mengapa kita melihat tiga buah tampilan latensi saat melihat hasil traceroute yang dijalankan.
Tidak semua aplikasi traceroute menggunakan UDP. Windows menggunakan paket ICMP, sedangkan sejumlah aplikasi tertentu menggunakan paket TCP. Cara menghitung latensi tiap hop adalah dengan mengukur selisih antara timestamp paket probe yang dikirimkan dengan timestamp dari paket ICMP TTL exceeded yang diterima. Router yang berada sepanjang jalur pengiriman tidak akan melakukan pemrosesan data timestamp. Dari cara ini, yang kita ketahui hanyalah waktu total pulang-pergi dari sumber ke router hop tertentu. Delay yang terjadi sepanjang perjalanan kembali ke sumber juga akan berpengaruh. Kemudian, alamat IP dari interface manakah yang kita lihat dari hasil traceroute?
Alamat IP yang kita lihat dari hasil traceroute adalah IP dari interface ingress router. Sebenarnya, RFC 1812 menyebutkan bahwa sumber ICMP haruslah dari interface egress. Namun, hal ini akan menyebabkan hasil traceroute menjadi kacau.