Selasa, 12 Juli 2011

ICMP (Internet Control Message Protocol)

 Internet Control Message Protocol, dijelaskan di RFC 792 (http://www.isi.edu/in-notes/rfc792.txt), adalah pasangan bagi IP yang memberitahukan pengirim IP jika ada datagram yang bermasalah. ICMP sangat penting artinya di lingkungan connectionless seperti IP. ICMP bukan host-to-host protocol seperti TCP atau UDP, tapi host-tohost dalam artian sebuah alat (apakah itu router atau computer) mengirimkan berita ke alat yang lain (apakah itu router / komputer).
Pada kondisi normal, Protokol IP berjalan baik dan menghasilkan proses penggunaan memori serta sumber daya transmisi yang efisien. Namun ada beberapa kondisi dimana koneksi IP terganggu, misalnya karena router yang crash, putusnya kabel, atau matinya host tujuan.. Pada saat saat ini ICMP berperan membantu menstabilkan kondisi jaringan. Hal ini dilakukan dengan cara memberikan pesan pesan tertentu, sebagai respons atas kondisi tertentu yang terjadi pada jaringan tersebut.
Situasi yang sering terjadi dilapangan, misalnya, dalam hubungan antara router A dan B mengalami masalah, maka Router A akan secara otomatis mengirimkan paket ICMP Destination Unreachable ke host pengirim paket yang berusaha melewati host B menuju tujuannya. Dengan adanya pemberitahuan ini maka host tujuan tidak akan terus menerus berusaha mengirimkan paketnya melewati router B.
Contoh diatas hanya sebagian dari jenis pesan ICMP. Ada dua tipe pesan yang dapat dihasilkan oleh ICMP yaitu ICMP Error Message dan ICMP Querry Message. ICMP Error Message, sesuai namanya, dihasilkan jika terjadi kesalahan pada jaringan. Sedangkan ICMP Querry Message ialah jenis pesan yang dihasilkan oleh protokol ICMP jika pengirim paket menginginkan informasi tertentu yang berkaitan dengan kondisi jaringan.
Protokol ICMP terdefinisi dari header protokol IP dengan nilai satu (1) pada kolom protokol. Secara umum 32 bit pertama protokol ICMP yang akan menentukan fungsi yang di emban protokol ICMP seperti tampak pada gambar.

Keterangan dari masing-masing kolom adalah sebagai berikut:
Type: Menentukan format message ICMP (8 bits). Ada cukup banyak format ICMP yang di definisikan. Beberapa diantaranya terdapat dalam tabel.
Code: Menjelaskan lebih lanjut dari ICMP Message (8 bits).
Checksum: Digunakan untuk mencek apakah header ICMP yang diterima masih baik atau sudah korup (16 bit)..
Data: Berisi data yang spesifik seperti di indikasikan oleh kolom Type dan Field. Panjang data bervariasi.
IANA memaintain daftar lengkap dari ICMP Parameters (http://www.iana.org/assignments/icmp-parameters). Cuplikan berbagai tipe message ICMP dapat dilihat sebagai berikut:
Type Deskripsi 0 Echo reply. 3 Destination unreachable. 4 Source quench. 5 Redirect. 6 Alternate Host Address. 8 Echo request. 9 Router advertisement. 10 Router solicitation. 11 Time exceeded. 12 Parameter problem. 13 Timestamp request. 14 Timestamp reply. 15 Information request. 16 Information reply. 30 Traceroute. 33 IPv6 Where-Are-You. 34 IPv6 I-Am-Here.
ICMP Error Messages dibagi menjadi beberapa jenis. Diantaranya :
1.Destination Unreachable. Pesan ini dihasilkan oleh router jika pengiriman paket mengalami kegagalan akibat masalah putusnya jalur, baik secara fisik maupun secara logic. Destination Unreachable ini dibagi menjadi beberapa tipe. Beberapa tipe yang penting ialah : Network Unreachable, jika jaringan tujuan tak dapat dihubungi. Host Unreachable, jika host tujuan tak bisa dihubungi. Protocol At Destination is Unreachable, jika di tujuan tak tersedia protokol tersebut. Port is Unreachable, jika tidak ada port yang dimaksud pada tujuan. Destination Network is Unknown, jika network tujuan tak diketahui. Destination Host is Unknown, jika Host tujuan Tidak diketahui.
2.Time Exceeded. Paket ICMP jenis ini dikirimkan jika isi field TTL dalam paket IP sudah habis dan paket belum juga sampai ke tujuannya. Sebagaimana telah diterangkan pada bagian IP diatas, tiap kali sebuah paket IP melewati satu router, nilai TTL dalam paket tersebut dikurangi satu. TTL ini diterapkan untuk mencegah timbulnya paket IP yang terus menerus berputar putar di network karena suatu kesalahan tertentu, sehingga menghabiskan sumberdaya jaringan yang ada.
Field TTL ini pula yang digunakan oleh program traceroute untuk melacak jalannya paket dari satu host ke host lain. Program traceroute dapat melakukan pelacakan rute berjalannya IP dengan cara mengirimkan paket kecil UDP ke IP tujuan, dengan TTL yang di set membesar.
Saat paket pertama dikirim, TTL di set satu, sehingga router pertama akan membuang paket ini dan mengirimkan paket ICMP time exceeded. Kemudian paket kedua dikirim , dengan TTL dinaikkan. Dengan naiknya TTL, paket ini sukses melewati router pertama namun dibuang oleh router kedua. Router ini pun mengirimkan paket ICMP time exceeded. Dengan mendaftar nama nama router yang mengirimkan paket ICMP time exceeded ini, akhirnya didapat seluruh nama router yang dilewati oleh paket UDP ini. Traceroute adalah program yang menggunakan kemampuan ini, contoh keluaran di Linux adalah
[root@dodol ~]# traceroute www.vision.net.id traceroute to webhost2.vision.net.id (202.150.0.2), 30 hops max, 38 byte packets
1 192.168.0.10 (192.168.0.10) 0.277 ms 0.322 ms 0.205 ms
2 vnp-gtw.vision.net.id (202.150.10.31) 1.826 ms 3.054 ms 2.780 ms
3 202.150.1.1 (202.150.1.1) 110.270 ms 4.868 ms *
4 webhost2.vision.net.id (202.150.0.2) 333.681 ms 112.037 ms
[root@dodol ~]#

3.Parameter Problem. Paket ini dikirim jika terdapat kesalahan parameter pada header Paket IP 4.Source Quench. Paket ICMP ini basanya dikirim oleh router untuk memberitahukan bahwa dia mengalami kepadatan trafik dan datagram yang dikirim terpaksa di buang. Hal ini biasanya terjadi karena terbatasnya buffer di router. Sebagai respons atas paket ini, pihak pengirim paket harus memperlambat pengiriman paketnya 5.Redirect. Paket ini dikirimkan jika router merasa Host mengirimkan paket IP melalui router yang salah. paket ini seharusnya dikirimkan melalui router lain. Untuk alasan keamanan, biasanya message Redirect di blok oleh firewall.

Sedangkan ICMP Querry Messages terdiri dari :
1.Echo dan Echo Reply. Bertujuan untuk memeriksa apakah sistem tujuan dalam keadaan aktif. Program ping merupakan program pengirim paket ini. Responder harus mengembalikan data yang sama dengan data yang dikirimkan. 2.Timestamp dan Timestamp Reply. Message ini mirip dengan message Echo tapi menggunakan timestamp / pewaktu (dengan ketelitian milidetik) di messagenya. Hal ini memungkinkan kita menghitung berapa waktu yang dibutuhkan untuk sebuah mesin untuk memproses datagram, dan juga memberikan mekanisme bagi sebuah mesin untuk mensinkronkan waktu. 3.Address Mask. Untuk mengetahui berapa netmask yang harus digunakan oleh suatu host dalam suatu network.
Salah satu aplikasi ICMP yang paling sering digunakan adalah Echo Request (Type 8) yang di jawab menggunakan Echo Reply (Type 0), atau yang lebih kompleks menggunakan Timestamp (Type 13) dan Timestamp Reply (Type 14) sehingga kita dapat mengukur waktu yang dibutuhkan untuk mengirim ICMP Message tersebut.

Header ICMP untuk keperluan timestamp & timestamp reply memiliki beberapa tambahan kolom untuk memasukan nomor urut (Sequence Number) dan Timestamp. Tampak pada contoh adalah hasil keluaran yang dihasilkan.
[onno@yc0mlc ~]$ ping www.yahoo.com PING www.yahoo.akadns.net (66.94.230.48) 56(84) bytes of data. 64 bytes from p17.www.scd.yahoo.com (66.94.230.48): icmp_seq=0 ttl=47 time=253 ms 64 bytes from p17.www.scd.yahoo.com (66.94.230.48): icmp_seq=1 ttl=49 time=335 ms 64 bytes from p17.www.scd.yahoo.com (66.94.230.48): icmp_seq=2 ttl=49 time=345 ms 64 bytes from p17.www.scd.yahoo.com (66.94.230.48): icmp_seq=3 ttl=47 time=315 ms 64 bytes from p17.www.scd.yahoo.com (66.94.230.48): icmp_seq=4 ttl=48 time=232 ms 64 bytes from p17.www.scd.yahoo.com (66.94.230.48): icmp_seq=5 ttl=47 time=273 ms
--- www.yahoo.akadns.net ping statistics --- 6 packets transmitted, 6 received, 0% packet loss, time 4999ms rtt min/avg/max/mdev = 232.316/292.573/345.372/42.271 ms, pipe 2 [onno@yc0mlc ~]$
Tampak bahwa dari mesin contoh ke www.yahoo.com dibutuhkan waktu bolak-balik rata-rata 290ms, dan cukup reliable karena tidak ada paket yang hilang (0% packet loss) di jalan.
Sebagai paket pengatur kelancaran jaringan, paket ICMP tidak diperbolehkan membebani network. Karenanya, paket ICMP tidak boleh dikirim saat terjadi problem yang disebabkan oleh :
1.Kegagalan pengiriman paket ICMP 2.Kegagalan pengiriman paket broadcast atau multicast

Logika Sambungan TCP dan ICMP
Sangat penting untuk menghayati bagaimana sambungan TCP terjadi untuk dapat merasakan bagaimana TCP beroperasi. Hubungan komunikasi TCP pada dasarnya terdiri atas tiga (3) bagian, yaitu: 1.Connection Establishment (pembuatan sambungan). 2.Data Exchange (pertukaran data). 3.Connection Termination (pemutusan sambungan). Dalam contoh di baeah adalah sambungan ke server POP3 (yang mendengarkan di TCP port 110) dengan klien-nya (yang menggunakan TCP port 1967).

Tidak ada komentar:

Posting Komentar