Dalam suatu sistem connectionless setiap gateway akan melakukan pengiriman, perutean 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 ketikaterjadi kemacetan sehingga gateway tidak lagi bisa memproses paket yang datang. Dalam koneksi dengan internet pengirim tidak dapat memberitahukan & tidak tahu sebab kegagalan suatu koneksi. Untuk mengatasinya diperlukan suatu metode yang mengijinkan gateway melaporkan error atau menyediakan informasi mengenai kejadian yang tidak diinginkan sehingga dipakai mekanisme ICMP.Pesan ICMP merupakan bagian dari datagram IP. Tujuan akhir dari suatu pesan ICMPbukan merupakan program atau user melainkan software internet-nya. Ketika pesan ICMPhadir software ICMP akan menanganinya. ICMP mengijinkan gateway untuk mengirimpesan error ke gateway lain atau host. ICMP menyediakan komunikasi antar software protocol Internet.Pada dasarnya terdapat dua macam pesan ICMP : ICMP Error Message & ICMP QueryMessage. ICMP error message digunakan pada saat terjadi kesalahan pada jaringan,sedangkan query message adalah jenis pesan yang dihasilkan oleh protokol ICMP jika pengirim paket menginginkan informasi tertentu yang berkaitan dengan kondisi jaringan.
Error & Query Reporting
Secara teknis ICMP adalah mekanisme error reporting untuk gateway sehingga dapat memberitahu sumber mengenai kesalahan yang terjadi. Sedangkan untuk koreksinya diserahkan pada program aplikasi yang ada pada pengirim.Pesan ICMP ini selalu dikirimkan kepada gateway awal. Jika suatu datagram yang melewati beberapa gateway mengalami kegagalan & kesalahan tujuan di intermediate gatewaynya maka tidak dapat dideteksi gateway mana yang gagal tersebut.
Ada beberapa jenis pesan error diantaranya :
1. Destination unreachable
Pesan ini dihasilkan oleh router jika pengiriman paket mengalami kegagalan akibat masalah putusnya jalur, baik fisik maupun logic. Pesan ini dapat dibagi menjadi beberapa tipe :
¤ Network unreachable
Jika jaringan tujuan tidak dapat dihubungi.
¤ Host unreachable
Jika host tujuan tidak bisa dihubungi.
¤ Protocol at destination is unreachable
Jika di tujuan tidak tersedia protokol tersebut.
¤ Port is unreachable
Jika tidak ada port yang dimaksud pada tujuan.
¤ Destination network is unknown
Jika network tujuan tidak diketahui.
¤ Destination host is unknown
Jika host tujuan tidak diketahui.
2. Time exceeded
Dikirimkan jika is field TTL dalam paket IP sudah habis masa aktifnya dan paket belum juga sampai ke tujuannya.
3. Parameter problem
Pesan ini dikirim jika terjadi kesalahan parameter pada header paket IP.
4. Source quench
Jika router atau tujuan mengalami kemacetan, sebagai respon terhadap pesan ini maka pihak penerima harus memperlambat pengiriman paket.
5. Redirect
Dikirimkan jika router merasa host mengirimkan paket IP melalui router yang salah.
Sedangkan untuk pesan query diantarannya adalah :
1. Echo Request & Echo Reply
Digunakan sebagai debugging tool. Echo requests dikirimkan oleh suatu source yang kemudian akan menerima Echo Replies yang dikirimkan oleh destination.Bertujuan untuk memeriksa apakah sistem tujuan dalam keadaan aktif. Program ping merupakan program pengiriman paket ini. Responder harus mengembalikan datayang sama dengan data yang dikirimkan.
2. Timestamp & Timestamp Reply
Menghasilkan informasi waktu yang diperlukan sistem tujuan untuk memprosessuatu paket.
3. Address Mask
Untuk mengetahui berapa netmask yang harus digunakan oleh suatu host dalamsuatu network.
Pengiriman ICMP Message
ICMP memerlukan dua level enkapsulasi seperti pada gambar dibawah ini
Setiap pesan ICMP merupakan bagian dari datagram IP yang juga merupakan bagain dari suatu frame data. Datagram yang membawa pesan ICMP mendapat perlakuan yang samadengan 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 ICMP
Format diawali dengan 3 field :
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 :
Diteruskan ke UNSRI