1. Definisi dan karakteristik
ICMP (Internet Control Message Protocol) [1] adalah protocol yang bertugas mengirimkan pesan-pesan kesalahan dan kondisi lain yang memerlukan perhatian khusus. Pesan / paket ICMP dikirim jika terjadi masalah pada layer IP dan layer diatasnya (TCP/UDP).
Karakteristik dari ICMP adalah :
ICMP merupakan bagian internal dari IP dan diimplementasikan disetiap module IP
ICMP digunakan untuk menyediakan feedback tentang beberapa error pada sebuah proses datagram.
Tidak mendukung kehandalan pengiriman paket IP. Datagram/ paket bisa tidak terkirim dan tidak ada report pemberitahuan tentang kehilangan datagram. Jika diperlukan adanya kehandalan maka harus diimplementasikan pada layer transport ( pada arsitektur TCP /IP).
Tidak ada respon ICMP yang dikirimkan untuk menghindari adanya perulangan tak terbatas, kecuali respon dari query message ( ICMP type 0, 8-10, 13-18).
ICMP error message tidak pernah dikirimkan sebagai respon sebuah datagram untuk tujuan broadcast atau multicast.
2. ICMP Message
ICMP message dikirimkan didalam IP datagram. Format ICMP message dapat dilihat pada gambar 1. Dari gambar terlihat bahwa nomor protocol selalu 1 (ICMP) dan Type of Service selalu nol.

Gambar 1. Format ICMP Message
ICMP error message
Setiap ICMP error message terdiri dari Internet Header (IP) dan sekurangnya 8 data octet (byte) pada datagram.
Pada field Type menspesifikasikan tipe dari message, sementara error code pada datagram dilaporkan oleh ICMP message pada field Code. Pengertian setiap code bergantung dari tipe message.
Dibawah ini adalah tabel yang berisi penjelasan setiap tipe dan code

Tabel 1
Pada kondisi normal protocol 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 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.

Gambar 2. Timbulnya ICMP
Sebagai contoh, pada gambar diatas, hubungan antar 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 Query Message. ICMP Error Message sesuai namanya dihasilkan jika terjadi kesalahan pada jaringan. Sedangkan ICMP Query Message ialah jenis pesan yang dihasilkan oleh protocol ICMP jika pengirim paket menginginkan informasi tertentu yang berkaitan dengan kondisi jaringan.
ICMP Error Message dibagi menjadi beberapa jenis diantaranya :
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 adalah:
Network Unreachable, jika jaringan tujuan tak dapat dihubungi
Host Unreachable, jika host tujuan tak bisa dihubungi
Protocol at Destination is Unreachable, jika ditujuan tak tersedia protocol 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
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 dinetwork karena suatu kesalahan tertentu, sehingga menghabiskan sumberdaya jaringan yang ada.
Parameter Problem, paket ini dikirimkan jika terdapat kesalahan paameter pada header paket IP
Source Quench, Paket ICMP ini dikirimkan jika router atau tujuan mengalami kongesti. Sebagai resspons pada paket ini, pihak pengirim paket harus memperlambat pengiriman paketnya.
Redirect, paket ini dikirimkan jika router merasa host mengirimkan paket IP melalui router yang salah. Paket ini seharusnya dikirimkan melalui router lain.
Sedangkan ICMP Query Messages terdiri atas:
Echo dan Echo Reply. Bertujuan untuk memeriksa apakah system tujuan dalam keadaan aktif. Program ping merupakan program pengiriman paket ini. Responder harus menembalikan data yang sama dengan data yang dikirimkan.
Timestamp dan Timestamp Reply. Menghasilkan informasi waktu yang diperlukan system tujuan untuk memproses suatu paket.
Address mask, Untuk mengetahui berapa netmask yang harus digunakan oleh suatu host dalam suatu network.
Sebagai paket pengatur kelancaran jaringan, paket ICMP tidak diperbolehkan membebani network. Karenanya paket ICMP tidak boleh dikirim saat terjadi problem yang disebabkan oleh:
Kegagalan pengiriman paket ICMP
Kegagalan pengiriman paket broadcast atau multicast
sumber : TUGAS AKHIR