Internet Control Message Protocol (ICMP) adalah salah satu protokol inti dari keluarga protokol internet. ICMP utamanya digunakan oleh sistem operasi komputer jaringan untuk mengirim pesan kesalahan yang menyatakan, sebagai contoh, bahwa komputer tujuan tidak bisa dijangkau.
ICMP berbeda tujuan dengan TCP dan UDP dalam hal ICMP tidak digunakan secara langsung oleh aplikasi jaringan milik pengguna. salah satu pengecualian adalah aplikasi ping yang mengirim pesan ICMP Echo Request (dan menerima Echo Reply) untuk menentukan apakah komputer tujuan dapat dijangkau dan berapa lama paket yang dikirimkan dibalas oleh komputer tujuan.
Gambaran Teknis
Internet Control Message Protocol (ICMP) adalah bagian dari keluarga protokol Internet dan didefinisikan di dalam RFC 792. Pesan-pesan ICMP umumnya dibuat sebagai jawaban atas kesalahan di datagram IP (seperti yang dispesifikasikan di RFC1122) atau untuk kegunaan pelacakan atau routing.
Versi ICMP terkini juga dikenal sebagai ICMPv4, yang merupakan bagian dari Internet Protocol versi 4.
Dalam suatu sistem connectionless setiap gateway akan melakukan pengiriman, perutean datagram yang dating 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 & 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 ICMP bukan merupakan program atau user melainkan software internet-nya. Ketika pesan ICMP hadir software ICMP akan menanganinya.
ICMP mengijinkan gateway untuk mengirim pesan error ke gateway lain atau host. ICMP menyediakan komunikasi antar software protocol Internet.
Pada dasarnya terdapat dua macam pesan ICMP : ICMP Error Message & ICMP Query Message. 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.
IP software menyediakan layanan pengiriman datagram yang unreliable, connectionless dengan mengandalkan router-router untuk membawa datagram ke final destination. Jika router tidak dapat mengirimkan datagram atau mendeteksi adanya kondisi yang mempengaruhi kemampuannya membawa datagram (mis. kongesti), router harus memberi tahu original source agar mengambil tindakan untuk mengatasi masalah yang timbul.
Control and error messaging
Physical-based networks dapat melaporkan error melalui perangkat keras. Software-based networks (the Internet) tidak dapat melakukan hal di atas sehingga memerlukan mekanisme untuk pengendalian kesalahan. Agar router mampu mengirimkan pesan error atau pesan pengendali (control) ke router atau host yang lain, ditambahkanlah protokol Internet Control Message Protocol (ICMP)
ICMP adalah mekanisme pelaporan error (erro reporting mechanism)
ICMP hanya digunakan untuk melaporkan error ke original source
Jika error terjadi akibat masalah pada suatu router, ICMP tidak bisa digunakan untuk memberi tahu router tersebut tentang error yang timbul. Original source tidak bertanggung jawab atas pengendalian router-router yang bermasalah, bahkan sebenarnya original source tidak mampu menentukan router yang menimbulkan masalah tersebut
Mengapa ICMP hanya digunakan untuk berkomunikasi dengan original source?
Karena pada datagram IP hanya tercantum IP address orignal source dan final destination
Tidak ada informasi tentang router-router yang dilalui oleh datagram (kecuali untuk kasus tertentu ketika record route option diaktifkan) Karena router dapat membuat dan mengganti tabel ruting sendiri-sendiri maka tidak ada informasi global mengenai rute-rute yang ditempuh. Jika suatu datagram sampai ke suatu router, maka tidaklah mungkin untuk mengetahui rute yang sudah ditempuh datagram ter sebut. Jika suatu router mendeteksi adanya masalah, dia tidak dapat mengetahui router-router yang sudah dilalui datagram tersebut sehingga tidak mampu memberitahukan masalah ke router-router tsb
Jadi ICMP hanya memberi tahu original source mengenai error yang muncul
Dengan harapan network administrator akan memperbaiki kesalahan yang ada
Enkapsulasi ICMP message
Datagram yang membawa ICMP message dirutekan seperti datagram yang biasa (tidak diprioritaskan)
Bisa hilang. Pada kondisi kongesti, bisa menambah kondisi kongesti
Bila datagram yang mengandung ICMP mengalami error maka tidak akan dibangkitkan ICMP error message Meskipun dibungkus (encapsulated) dan dikirimkan menggunakan datagram IP, ICMP bukanlah protokol layer yang lebih atas
Posisi ICMP pada network layer
Format umum ICMP message
Setiap error message memiliki format tertentu, tetapi selalu diawali oleh tiga field berikut
Ketika melaporkan error, ICMP message menyertakan keseluruhan header dan 64 bit pertama datagram IP yang menyebabkan masalah
Sehingga, pada TCP/IP, protokol-protokol layer yang lebih atas dirancang untuk menangani informasi kritis yang ada pada 64 bit pertama dari datagram
ICMP Unreachable Destinations Message
Digunakan ketika router tidak dapat mengirimkan sebuah datagram IP (dikembalikan ke original source)
Host Unreachable for Type of Service
ICMP Unreachable Destination Message Format
Network Unreachable errors biasanya berhubungan dengan kegagalan routing Host Unreachable errors biasanya akibat kegagalan pengiriman (delivery failures)
Bila mekanisme subnetting diterapkan, pesan ICMP host unreachable akan dikirimkan jika terjadi kegagalan ruting subnet (subnet routing failure)
Kegagalan bisa disebabkan:
Tujuan sedang mati
Alamat tujuan tidak ada (A nonexistent destination address)
Router tidak memiliki rute ke arah tujuan
Router tidak dapat mendeteksi keseluruhan error yang mungkin muncul
ICMP Source Quench
Source-Quenching digunakan pada saat terjadi kongesti atau untuk keperluan flow control
Congestion adalah issue global (global to the whole network)
Flow-Control adalah issue end-to-end dan/atau issue point-to-point
Beberapa metoda congestion control menggunakan pesan Source-Quench :
Pemantauan kondisi kongesti
Router membangkitkan pesan Source-Quench untuk setiap datagram yang dibuang
Pesan Source-Quench dikirimkan bila antrian mulai terisi (sebelum kongesti terjadi)
ICMP Time Exceeded
Akibat routing cycles (beberapa router terus menerus mengirimkan paket secara loop antar mereka) akan terjadi hal-hal berikut :
Field TTL (hop count) akan menjadi nol sehingga datagram akan dibuang
Bila time-out tercapai ketika menunggu potongan (fragments) datagram maka datagram akan dibuang
Pesan time exceeded dikirimkan pada kedua kasus tersebut di atas
0 = TTL count exceeded.
1 = Fragment reassembly time exceeded
ICMP Parameter Problem
Pesan ICMP Parameter Problem dikirimkan jika informasi header datagram tidak benar atau bila timbul masalah parameter lain (selain masalah yang sudah kita bahas sebelumnya)
Digunakan pada masalah yang berat (severe problems)
POINTER (8-bits):
Mengindetifikasi oktet yang bermasalah di dalam datagram
CODE (8-bits):
1 = Digunakan untuk melaporkan tidak adanya option yang diperlukan; Pada kondisi ini POINTER tidak digunakan
ICMP Redirect Message
Redirect Message dikirimkan router ke host agar mengganti rutenya karena rute yang dipilih tidak optimal
Router diasumsikan mengetahui rute yang benar
Pada awalnya hosts memiliki informasi routing (pada tabel ruting) yang minimal (yang mungkin sudah tidak valid) tetapi kemudian host meng-update tabel ruting mereka dengan informasi rute baru yang diberikan default routers
Secara umum redirect tidak memecahkan masalah propagasi rute
Misalnya router R1 salah memilih rute sehingga memutuskan untuk mengrimkan datagram dari Source (S) ke Destination (D) melalui R1, R2, R3, R5 (seharusnya mengambil jalur dengan jumlah hop terkecil yaitu melalui R4). R5 tidak dapat mengirimkan redirect message ke R1 karena R5 tidak mengetahui alamat R1
ROUTER INTERNET ADDRESS : alamat router yang harus digunakan oleh host untuk mencapai tujuan yang tercantum pada header datagram
Router hanya mengirimkan ICMP-Redirect messages ke hosts
Echo Request/Reply
Digunakan sebagai debugging tool
Echo requests dikirimkan oleh suatu source yang kemudian akan menerima Echo Replies yang dikirimkan oleh destination yang dapat dicapai dan merespons
Sebagai optional, suatu sample data packets (56K) dikirimkan dan diterima oleh program yang menerapkan echo request and reply ICMP messages (PING)
Echo Requests and Replies digunakan untuk meyakinkan bahwa sistem transport bekerja dengan baik. Sistem transport itu meliputi :
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 :
IP software di source host
Intermediate routers yang menyalurkan datagram
The destination host is running, as are it’s IP and ICMP protocol modules.
Return path rfouters bekerja dan tabel ruting mereka valid
Timestamp Message
Timestamp Request and Reply:
Teknik untuk mensinkronkan clock dengan cara meminta tanggal hari ini dari suatu mesin
Timestamp values are given in milliseconds since midnight Universal Time.
IDENTIFIER and SEQ. NUMBER (16-bits each):
Both are used by the source to associate replies with requests sent.
Timestamp fields yang digunakan untuk menghitung perkiraan selang waktu :
ORIGINAL (32-bits):
Diisi oleh pengirim dengan timestamp sebelum timestamp request dikirimkan
RECEIVE (32-bits):
Diisi oleh destination dengan timestamp ketika request diterima
TRANSIT (32-bits):
Diisi oleh destination ketika reply message dikirimkan
Prakiraan delay tidak akan konsisten bila menggunakan Timestamp-ICMP messages
Harus melibatkan analisa statistik untuk mendapatkan pengukuran yang akurat
Address Mask Message
Address Mask Request and Reply digunakan untuk menentukan subnet mask yang digunakan pada jaringan lokal
Router Advertisement
Suatu host yang baru dinyalakan harus mengetahui alamat dari paling tidak satu buah router di dalam jaringan lokal sebelum dapat mengirimkan datagram
ICMP menyediakan message router advertisement atau router discovery
Router mengirimkan message secara periodik setiap 10 menit
Number of Address : jumlah entry alamat
Address Entry Size : ukuran alamat dinyatakan dalam satuan 32-bit
Lifetime : waktu dalam satuan detik dimana suatu host dapat menggunakan suatu alamat
Default : 30 menit
Pasangan Router Address x dan Address Preference x
Router Address : alamat router yang dapat digunakan
Address Preference : 2’s complement; host memakai preference yang paling tinggi
Router Solicitation
Router advertisement dilaksanakan secara periodik tiap 10 menit (default value)
Bila suatu host ingin segera (sebelum 10 menit) meminta informasi alamat router, maka dapat digunakan message router solicitation
Ketika menerima message router solicitation, router akan mengirimkan router advertisement
Source : https://www.forummikrotik.com