Sabtu, 14 Juli 2012

ICMP (Internet Control Message Protocol)



Protokol IP tidak memiliki mekanisme error-reporting (pelaporan kerusakan) atau error-correction (perbaikan kerusakan) sehingga dibutuhkan sebuah protokol dalam mengidentifikasi kesalahan dalam pengiriman paket data. Apa yang terjadi jika sebuah router harus membuang sebuah datagram (sebutan paket pada layer network) karena router tersebut tidak menemukan router tujuan akhir dari datagram, atau time to live (TTL) dari datagramnya sudah mencapai nilai 0? Apa yang terjadi jika host tujuan akhir harus membuang seluruh fragments dari suatu datagram karena host tersebut tidak menerima seluruh fragment dalam batas waktu yang telah ditentukan? Ini adalah contoh dari situasi dimana kerusakan bisa terjadi dan protokol IP tidak memiliki mekanisme untuk memberikan pesan kepada pengirim atas kondisi tersebut.

Maka, Internet Control Message Protocol (ICMP) telah di desain untuk menangani situasi yang telah disebutkan di atas. ICMP sendiri berada pada layer network di mana paket ICMP ini tidaklah dikirimkan begitu saja melalui layer datalink melainkan dibungkus terlebih dahulu menjadi sebuah paket IP kemudian diserahkan ke layer datalink untuk dibungkus menjadi frame.

Kegiatan yang berjalan di Internet dimonitor secara teliti oleh router. Jika terjadi sesuatu yang tidak diinginkan, kejadian tersebut akan dilaporkan oleh ICMP atau dengan kata lain protokol yang menginformasikan suatu kerusakan pada IP datagram adalah ICMP. ICMP mendeteksi kondisi error seperti kongesti/kemacetan internetwork (internetwork congestion) dan hubungan yang putus, lalu memberitahukan IP (Internet Protocol) dan protokol pada layer atas sehingga paket-paket dapat dikirimkan disekeliling area yang bermasalah.

Internet Control Message Protocol (ICMP) adalah protokol yang digunakan untuk membantu penanganan kesalahan (error handling) dan prosedur pengendalian (control procedure). Protokol ini bekerja pada network layer dan berurusan dengan layanan koneksi (connection services). Tugas dari ICMP adalah menyediakan pengendalian error atau kesalahan (error control ) dan pengendalian arus (flow control) pada network layer (lapisan internet). ICMP berperan membantu menstabilkan kondisi jaringan ketika koneksi IP terganggu, misalnya router yang crash, putusnya kabel atau host tujuan tidak hidup. Peranan ICMP diwujudkan dengan cara memberikan pesan-pesan tertentu sebagai respon atas kondisi tersebut. Karakteristik dari ICMP antara lain :
  • ICMP menggunakan IP
  • ICMP melaporkan kerusakan
  • ICMP tidak dapat melaporkan kerusakan dengan menggunakan pesan ICMP, untuk menghindari pengulangan
  • Untuk data yang terfragmentasi, pesan ICMP hanya mengirimkan pesan kerusakan pada fragmentasi pertama
  • Pesan ICMP tidak merespon dengan mengirimkan data secara broadcast atau multicast
  •  ICMP tidak akan merespon kepada IP datagram yang tidak memiliki header IP pengirim
  • Pesan ICMP dapat membuat proses kerusakan pada IP datagram
  • Bagian internal dari IP dan diimplementasikan disetiap module IP
  • Digunakan untuk menyediakan feedback tentang beberapa error pada sebuah proses datagram.
  • Tidak mendukung kehandalan pengiriman paket IP


Sistem kerja dari ICMP secara singkat adalah sebagai berikut : pesan ICMP akan diberi header IP tujuan dengan melalui interface yang ada. Kemudian setelah pesan tadi diterima oleh IP tujuan maka penerima akan menerima lagi pesan ICMP kepada IP tujuan (asal) bahwa pesan telah diterima (pesan yang dikirim tergantung tipe pesan yang dipesan oleh pengirim pertama). Jika terdapat kerusakan dalam interface yang dilalui sehingga tidak dapat meneruskan pesan, maka pesan akan mengirimkan pesan error kepada pengirim pertama.

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.

ICMP Error Message

Tanggung jawab utama ICMP adalah melaporkan terjadinya error. Namun ICMP tidak memperbaiki error. Perbaikan error hanya dilakukan pada lapisan protokol yang lebih tinggi. Pesan error selalu di kirim ke alamat asal. Beberapa jenis error yang ditangani oleh ICMP antaralain :

1. Destination Unreachable

Jenis error ini merupakan ICMP messages yang digunakan untuk memberi informasi ke host asal bahwa tidak tersambung ke host tujuan. Tipe pesan ini digunakan ketika subnet atau router tidak dapat menemukan tujuan, atau paket dengan DF bit tidak dapat dikirimkan, karena "paket-kecil" jaringan berada pada jalur.  Ilustrasi prinsip kerjanya seperti ditunjukkan pada Gambar berikut ini.

2. Source Quence

Tipe pesan ini tadinya digunakan untuk menghambat host yang mengirim terlalu banyak paket. Ketika host menerima pesan tersebut, diharapkan untuk memperlambatnya. Hal tersebut jarang dilakukan lagi karena ketika kemacetan (congestion) terjadi, paket tersebut cenderung untuk menambah kemacetan yang terjadi. Pengendalian kemacetan pada Internet sekarang sebagian besar ditangani pada transport layer.

3. Time exceeded

Tipe pesan ini akan dikirimkan ketika paket di-drop dikarenakan counter telah mencapai 0. Kejadian tersebut merupakan gejala bahwa terjadi looping pada paket, kemacetan yang sangat besar, atau pengatur waktu (timer) yang diatur terlalu rendah.

4. Parameter Problem

Tipe pesan ini menunjukkan bahwa nilai yang tidak sah (ilegal) telah terdeteksi pada header field. Masalah ini menunjukkan adanya bug pada software IP host pengirim, atau mungkin pada software router yang dilintasi oleh paket.

5. Redirection

Tipe pesan ini digunakan ketika router memperhatikan bahwa paket terlihat salah dikirimkan. Pesan ini digunakan router untuk memberitahu host pengirim tentang kemungkinan terjadinya error.

ICMP Query Message

Dalam pesan jenis ini, node mengirim pesan yang dijawab dalam format spesifik oleh node tujuan. Jenis-jenis query pada ICMP adalah sebagai berikut:

1. Echo request and reply

Merupakan ICMP messages yang digunakan untuk mendeteksi host tersebut online pada jaringan atau tidak. Contoh: PING command. Kedua tipe pesan ini digunakan untuk melihat apakah tujuan (destination) dapat dicapai dan dalam keadaan hidup. Pada saat mengirim ECHO REQUEST, tujuan (destination) diharapkan untuk mengirim balik ECHO REPLY yang menandakan tujuan dapat dicapai dan dalam keadaan hidup. Ilustrasi prinsip kerjanya seperti ditunjukkan pada Gambar berikut ini.

Format Ping command adalah : ping [-switches] host [size [packets]], dimana
  •  Switches          : Merupakan macam – macam pilihan ping.
  • Host                 : Tujuan, bisa berupa IP address atau yang lainnya
  • Size                  : Ukuran data dalam 1 packet.
  • Packets            : Jumlah packet yang dikirim.

2.      Timestamp request and reply

Pesan ini mengharapkan waktu tiba dari pesan dan waktu keberangkatannya dicatat pada saat membalas. Fasilitas ini digunakan untuk mengetahui performance jaringan.

3.      Address mask request and reply

Untuk mengetahui berapa netmask yang harus digunakan oleh suatu host dalam suatu network.

Pengiriman ICMP Message dan Format Pesan

ICMP memerlukan dua level enkapsulasi yang dikemas dalam paket ICMP seperti pada Gambar 11 berikut ini. Setiap pesan ICMP merupakan bagian dari datagram IP yang juga merupakan bagian dari suatu frame data. Datagram yang membawa pesan ICMP mendapat perlakuan yang sama dengan datagram lain dalam hal reliability & priority-nya. Pengecualian prioritas didapat untuk menghindari masalah : mendapat pesan error mengenai pesan error. Prioritas tersebut menentukan bahwa pesan tidak dibangkitkan untuk error yang disebabkan oleh datagram yang membawa pesan error.

Format Pesan diawali dengan 3 field antara lain :
  • 8 bit     : field TYPE yang mengidentfikasikan pesan
  • 8 bit      : field CODE yang menyediakan informasi lebih jauh tentang tipe pesan
  • 16 bit   : field CHECKSUM untuk pengecekkan pesan ICMP


ICMP yang berisi pesan error terdiri dari header dan 64 bit pertamanya berisi penyebab error yang terjadi. Type field yang ada  seperti disajikan pada Tabel dibawah.

Kesimpulan

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 seperti 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.

Dengan kata lain dalam suatu sistem connectionless setiap gateway akan melakukan pengiriman, perute-an datagram yang datang tanpa adanya koordinasi dengan pengirim pertama. Tidak semua sistem berjalan dengan lancar. Kegagalan dapat saja terjadi. misalnya line komunikasi, prosesor atau dikarenakan mesin tujuan tidak sedang aktif, TTL dari counter habis, atau ketika terjadi kemacetan sehingga gateway tidak lagi bisa memproses paket yang datang. Dalam koneksi dengan internet pengirim tidak dapat memberitahukan dan tidak tahu sebab kegagalan suatu koneksi. Dalam hal ini IP tidak dapat meberikan solusi, nama mekanisme ICMP bisa diterapkan dalam situasi seperti ini. Protokol ICMP yang menggunakan protokol IP mampu memberikan informasi berupa pesan, sehingga kesalahan-kesalahan yang terjadi pada lapisan internet ini dapat seger ditangani secepatnya. Meskipun ICMP tidak mampu menyelesaikan masalah ini, namun monitor sudah dilakukan sebagai tindak awal mengenali masalah. Mekanisme yang digunakan ICMP adalah melaporkan error atau menyediakan informasi mengenai kejadian yang tidak diinginkan. 

Berdasarkan uraian atas maka dalam lapisan internet TCP/IP peran protokol IP dan ICMP sangat berpengaruh. Bahkan kedua protokol ini saling berkaitan dan tidak bisa dilepaskan satu dengan yang lain. Artinya masing-masing tidak dapat berdiri sendiri, meskipun diketahui bahwa setiap protokol memiliki tugas masing-masing dalam dalam satu layer.

3 komentar: