Internet Control Message Protocol (ICMP) merupakan protokol penting yang membantu dalam memastikan jalur komunikasi dalam jaringan tetap berjalan dengan baik. Meskipun tidak membawa data seperti halnya TCP atau UDP, ICMP berperan penting dalam memberi tahu apakah jalur komunikasi bekerja sebagaimana mestinya. Protokol ini membantu perangkat jaringan saling memberi umpan balik ketika terjadi gangguan, sehingga masalah dapat ditemukan dan diperbaiki lebih cepat.
Dalam praktiknya, ICMP banyak digunakan untuk diagnosis jaringan, terutama melalui perintah seperti ping dan traceroute. Dengan protokol ini, administrator jaringan dapat mengetahui apakah sebuah host bisa dijangkau, berapa lama waktu responsnya, dan di mana letak gangguan jika terjadi masalah. Selain itu, ICMP juga menjadi mekanisme pelaporan kesalahan yang membantu router dan perangkat lainnya memahami alasan sebuah paket gagal dikirimkan.
Definisi ICMP
ICMP atau Internet Control Message Protocol adalah protokol jaringan yang digunakan untuk menyampaikan pesan informasi terkait kondisi komunikasi antar perangkat dalam jaringan.
ICMP memiliki fungsi utama sebagai alat pemantau komunikasi jaringan. Protokol ini tidak membawa data aplikasi, tetapi memberikan informasi diagnostik tentang kondisi jalur yang dilalui paket. Misalnya, protokol ICMP memberi tahu apakah tujuan bisa dijangkau, apakah waktu perjalanan paket melewati batas toleransi, atau apakah rute yang dipilih perlu diperbaiki.
Karena kemampuannya dalam memberikan informasi ketika ada masalah, ICMP sering diibaratkan sebagai “sistem saraf” jaringan. Ia memberi respons cepat jika terjadi gangguan, sehingga administrator dapat dengan mudah mengecek kondisi jaringan dan mencari titik permasalahan nya.
Sejarah & Standarisasi ICMP
ICMP pertama kali diperkenalkan pada awal perkembangan internet untuk membantu perangkat saling memberi tahu ketika terjadi masalah dalam pengiriman data. Protokol ini dirancang oleh Jon Postel, salah satu tokoh penting dalam sejarah internet. ICMP pertama kali dijelaskan secara resmi dalam dokumen bernama RFC 777 yang diterbitkan pada tahun 1981. Dari sinilah ICMP mulai menjadi bagian penting dalam keluarga protokol TCP/IP yang digunakan di seluruh dunia.
Seiring waktu, ICMP diperbarui dan diperjelas dalam dokumen standar baru, yaitu RFC 792. Dokumen ini menjadi acuan utama dalam penggunaan ICMP pada jaringan IPv4 hingga saat ini. Ketika teknologi jaringan berkembang menuju IPv6, ICMP juga ikut berkembang menjadi ICMPv6. Dengan perkembangan ini, ICMP tetap menjadi protokol penting yang terus digunakan dalam jaringan komputer saat ini.
Fungsi ICMP
ICMP (Internet Control Message Protocol) adalah protokol jaringan yang tidak mengirim data aplikasi, melainkan mengirim pesan tentang kondisi jaringan misalnya memberi tahu saat ada kesalahan atau membantu pemeriksaan koneksi. Berikut ini empat fungsi ICMP secara umum.
1. Error reporting dan notifikasi kegagalan
Saat sebuah paket data tidak sampai atau ada masalah saat diteruskan, perangkat jaringan (router atau host) akan mengirim pesan ICMP ke pengirim untuk memberitahu jenis masalahnya. Contohnya: jika alamat tujuan tidak ada, perangkat mengirim pesan Destination Unreachable; jika paket terlalu lama berputar sampai nilai TTL habis, dikirim Time Exceeded. Pesan ini membantu pengirim mengetahui ada yang salah sehingga bisa mengambil tindakan, misalnya mengirim ulang data atau mengubah ukuran paket.
Contoh sederhana: Host mengirim paket ke alamat yang salah → router mengembalikan pesan ICMP bahwa tujuan tidak dapat dijangkau → host mendapatkan info gagal atau timeout.
2. Connectivity testing dan verifikasi keterjangkauan (reachability)
ICMP dipakai untuk mengecek apakah sebuah perangkat aktif dan dapat dijangkau, serta mengukur seberapa cepat responsnya. Mekanisme paling umum adalah Echo Request dan Echo Reply dari perintah ping. Dengan ping, administrator bisa melihat apakah host aktif dan berapa lama waktu bolak-balik (latency).
Contoh sederhana: ketika Anda menjalankan ping 8.8.8.8, komputer mengirim Echo Request; jika ada balasan (Echo Reply), berarti alamat tersebut dapat dijangkau.
3. Network diagnostics dan pemetaan jalur (path mapping)
ICMP membantu memetakan jalur yang dilalui paket dari sumber ke tujuan. Alat seperti traceroute memanfaatkan fakta bahwa ketika TTL paket habis di suatu router, router tersebut mengirimkan pesan Time Exceeded kembali. Dengan menaikkan nilai TTL secara bertahap, traceroute dapat menampilkan daftar router (hop) yang dilewati — ini berguna untuk menemukan titik kemacetan atau lokasi masalah di jaringan.
Contoh sederhana: traceroute menunjukkan urutan router antara kantor Anda dan server tujuan sehingga Anda tahu di hop mana masalah muncul.
4. Route optimization dan manajemen jaringan
ICMP juga memberi sinyal yang membantu memperbaiki atau mengoptimalkan rute. Misalnya Redirect message memberi tahu host bahwa ada gateway yang lebih efisien untuk mencapai tujuan. Di lingkungan yang lebih modern, pesan ICMPv6 seperti Router Advertisement dan Router Solicitation membantu host menemukan router atau konfigurasi jaringan secara otomatis. Dengan cara ini, ICMP dapat membantu mempercepat pengiriman data dan menurunkan beban jaringan.
Contoh sederhana: komputer mengirim paket lewat gateway A, akan tetapi router melihat bahwa ada gateway B yang lebih dekat, maka router akan mengirim ICMP Redirect supaya komputer menggunakan gateway B.
Cara Kerja ICMP
Kita bisa menggunakan ilustrasi sederhana cara kerja ICMP melalui proses ping. Ketika sebuah host menjalankan perintah ping, sistem operasi akan membuat sebuah paket ICMP Echo Request (Type 8).
Nah,Paket ini berisi header ICMP serta data tertentu sebagai payload, kemudian dikemas ke dalam paket IP dan dikirim ke alamat tujuan. Setiap router yang dilewati hanya meneruskan paket tersebut tanpa mengubah isi ICMP-nya karena router hanya bertugas mengantarkan paket sesuai jalur routing.
Ketika paket ICMP Echo Request tiba di host tujuan, sistem operasi perangkat tersebut memeriksa isi header IP dan mendeteksi bahwa paket tersebut adalah paket ICMP. Host tujuan kemudian membuat paket balasan berupa ICMP Echo Reply (Type 0).
Balasan ini berisi data yang sama persis dengan yang dikirimkan sebelumnya, termasuk nilai identifikasi dan payload. Dengan mengembalikan data yang identik, pengirim dapat memastikan bahwa komunikasi berjalan baik dan tidak ada perubahan atau kerusakan data selama perjalanan.
Setelah host tujuan mengirimkan Echo Reply, paket kembali melalui rute jaringan menuju host pengirim. Ketika balasan diterima, sistem operasi menghitung waktu perjalanan paket pulang-pergi (round-trip time), membaca nilai TTL pada paket balasan, serta menghitung jumlah Echo Reply yang diterima.
Dari hasil tersebut, pengguna dapat mengetahui apakah host tujuan hidup, seberapa cepat respons jaringan, dan apakah terjadi packet loss.
Simulasi Ping ICMP
(192.168.1.1)
(192.168.1.2)
Tipe-tipe ICMP
ICMP terbagi menjadi 2 kategori, yaitu pesan permintaan informasi (Query Messages) dan pesan kesalahan (Error Messages). Namun pada penjelasan berikut, semua tipe ICMP disusun dalam satu daftar menyeluruh berdasarkan nomor tipe (Type) agar mudah dipelajari dan diurutkan.
ICMP QUERY MESSAGES (PESAN PERMINTAAN INFORMASI)
| Type (Kode) | Nama Pesan | Fungsi Utama | Status | Keterangan Singkat |
|---|---|---|---|---|
| 0 | Echo Reply | Balasan dari Echo Request (ping) | Aktif | Menandakan host tujuan hidup |
| 8 | Echo Request | Mengirim permintaan ping | Aktif | Digunakan untuk pengecekan konektivitas |
| 9 | Router Advertisement | Router mengumumkan informasi gateway | Jarang dipakai | Digunakan dalam IRDP (IPv4) |
| 10 | Router Solicitation | Host meminta router mengirimkan advertisement | Jarang dipakai | Host mencari gateway otomatis |
| 13 | Timestamp Request | Meminta waktu sistem tujuan | Jarang dipakai | Dulu untuk sinkronisasi waktu |
| 14 | Timestamp Reply | Balasan waktu sistem | Jarang dipakai | Terdiri dari originate/receive/transmit timestamp |
| 15 | Information Request | Permintaan informasi alamat jaringan | Deprecated | Digantikan oleh DHCP |
| 16 | Information Reply | Balasan permintaan informasi | Deprecated | Tidak digunakan lagi di jaringan modern |
| 17 | Address Mask Request | Meminta subnet mask jaringan | Deprecated | Digantikan DHCP Option 1 |
| 18 | Address Mask Reply | Balasan subnet mask | Deprecated | Menyediakan nilai subnet mask |
| 42 | Extended Echo Request | Ping modern untuk interface/VM/SDN | Modern | Digunakan pada cloud/virtualisasi |
| 43 | Extended Echo Reply | Balasan extended echo | Modern | Mengirim status interface, MTU, statistik |
ICMP ERROR MESSAGES (PESAN KESALAHAN)
| Type (Kode) | Nama Pesan | Fungsi Utama | Status | Keterangan Singkat |
|---|---|---|---|---|
| 3 | Destination Unreachable | Menginformasikan bahwa paket tidak dapat mencapai tujuan | Aktif | Memiliki banyak subkode (network, host, port unreachable, MTU, dsb.) |
| 4 | Source Quench | Meminta pengirim memperlambat kiriman paket | Deprecated | Digantikan oleh TCP Congestion Control |
| 5 | Redirect Message | Memberitahu host agar menggunakan router lain | Jarang dipakai | Rentan serangan spoofing, sering diblok |
| 11 | Time Exceeded | TTL habis sebelum mencapai tujuan | Aktif | Digunakan oleh traceroute |
| 12 | Parameter Problem | Ada kesalahan pada header IP | Aktif | Menunjukkan paket rusak/tidak valid |
| 31 | Datagram Conversion Error | Kesalahan konversi datagram | Langka | Hanya muncul pada arsitektur lama |
| 36 | Mobile Registration Error | Registrasi Mobile IP gagal | Deprecated | Dulu dipakai pada protokol Mobile IP |
| 40 | Photuris Security Failure | Kesalahan negosiasi keamanan Photuris | Eksperimental | Tidak digunakan di jaringan umum |
| 41 | Experimental Traceroute | Pesan traceroute eksperimental | Eksperimental | Digunakan untuk penelitian jaringan |
Type 0 – Echo Reply
ICMP Type 0 atau Echo Reply adalah pesan balasan yang dikirimkan oleh perangkat tujuan sebagai respons dari pesan ping yang dikirim menggunakan Echo Request. Fungsinya adalah memastikan bahwa perangkat tujuan dalam kondisi aktif, dapat menerima paket, dan dapat mengirimkan balasan dengan benar.
Cara kerjanya dimulai ketika sebuah host menerima paket ICMP Echo Request, host tersebut wajib membuat paket balasan Echo Reply dengan payload yang sama persis, lalu mengirimkannya kembali ke pengirim. Dalam praktiknya, penggunaan Type 0 dapat terlihat saat menjalankan perintah seperti ping 8.8.8.8, di mana sistem operasi akan menampilkan baris laporan waktu respon. Contoh output pada Linux misalnya:
64 bytes from 8.8.8.8: icmp_seq=1 ttl=118 time=12.3 ms
Sedangkan pada Windows, outputnya seperti:
Reply from 8.8.8.8: bytes=32 time=13ms TTL=118
Output tersebut menunjukkan bahwa Echo Reply diterima dan respon dari tujuan aktif.
Type 3 – Destination Unreachable
ICMP Type 3 atau Destination Unreachable adalah pesan yang dikirimkan oleh router atau host ketika sebuah paket IP tidak dapat mencapai tujuannya. Fungsinya adalah memberi tahu pengirim bahwa proses pengiriman gagal, sehingga pengirim tidak terus-menerus mengirim paket serupa.
Cara kerjanya tergantung pada penyebab kegagalan, misalnya jika router tidak memiliki jalur menuju tujuan, maka ia akan mengirim Type 3 Code 0. Jika perangkat tujuan hidup tetapi port TCP/UDP yang dituju tidak terbuka, host akan mengirim Type 3 Code 3.
Contoh penggunaannya bisa dengan cara kita melakukan traceroute UDP ke host yang port-nya tertutup. Perintah seperti traceroute -U 8.8.8.8 pada Linux dapat menghasilkan pesan akhir berupa Port Unreachable, contohnya:
From 192.168.1.1: Destination port unreachable
Selain itu, jika ukuran paket melebihi MTU dan bit DF (Don’t Fragment) disetel, router akan mengirim Type 3 Code 4 yang sering terlihat dalam proses Path MTU Discovery. Outputnya dapat berupa:
Frag needed and DF set (mtu 1400)
Dengan demikian, Type 3 sangat penting dalam troubleshooting jaringan.
Type 4 – Source Quench (Deprecated)
ICMP Type 4 atau Source Quench adalah mekanisme lama yang dulu digunakan untuk mengendalikan kemacetan jaringan. Ketika router merasa buffer-nya penuh dan tidak mampu memproses lebih banyak paket, ia akan mengirim Type 4 kepada pengirim sebagai tanda agar memperlambat laju pengiriman.
Fungsinya adalah sebagai sinyal kontrol arus, tetapi cara kerja ini terbukti tidak efisien karena dapat memicu serangan atau memperburuk kemacetan. Meski saat ini sudah dihentikan penggunaannya, Anda masih dapat melihatnya dalam analisis protokol lama atau dokumentasi historis. Outputnya, jika muncul di Wireshark, biasanya terlihat seperti:
ICMP Source Quench
Namun saat ini, protokol TCP dengan mekanisme Congestion Control telah menggantikan fungsi ini sepenuhnya.
Type 5 – Redirect
ICMP Type 5 atau Redirect adalah pesan yang dikirim router untuk memberi tahu host bahwa jalur yang digunakannya tidak efisien, dan ada router lain yang lebih tepat untuk dilalui menuju tujuan. Fungsinya adalah mengoptimalkan rute lokal tanpa perlu konfigurasi manual.
Cara kerjanya, jika ada sebuah host mengirim paket ke router yang bukan jalur terbaik, maka router tersebut akan memforward paket sekaligus mengirim ICMP Redirect ke host agar host memperbarui routing table lokalnya.
Misalnya ketika host mengirim paket ke 10.0.0.1 padahal router optimal adalah 10.0.0.254, maka router akan mengirim pesan Redirect. Contoh penggunaan dapat terlihat saat menganalisis log Wireshark atau saat host mengonfigurasi diri secara otomatis. Contoh output:
ICMP Redirect: redirect to 10.0.0.254
Oh ya ICMP tipe ini jarang sekali di gunakan bahkan kebanyakan di blok, karena tipe ini rentan disalahgunakan untuk serangan man-in-the-middle.
Type 8 – Echo Request (Ping)
ICMP Type 8 atau Echo Request adalah permintaan ping yang digunakan untuk memeriksa apakah sebuah host hidup, mengukur waktu perjalanan paket, dan menghitung tingkat packet loss. Fungsinya menjadi dasar dalam troubleshooting awal jaringan.
Cara kerjanya adalah host mengirim paket ICMP berisi data dan header tertentu, dan tujuan yang hidup harus membalasnya dengan Echo Reply. Perintah yang digunakan misalnya ping google.com. Output Linux menunjukkan waktu perjalanan dan TTL, seperti:
64 bytes from 142.250.4.100: icmp_seq=1 ttl=115 time=15.6 ms
Sedangkan Windows akan menampilkan:
Reply from 142.250.4.100: bytes=32 time=16ms TTL=115
Dengan informasi ini, pengguna dapat mengetahui latency, kestabilan koneksi, dan juga status host.
Type 9 – Router Advertisement
ICMP Type 9 atau Router Advertisement adalah pesan yang dikirimkan oleh router untuk mengumumkan keberadaannya kepada host dalam jaringan. Fungsinya adalah memudahkan host menemukan gateway tanpa perlu konfigurasi manual atau DHCP.
Cara kerjanya biasanya secara periodik, router akan memberi tahu alamatnya, lifetime, dan metrik lainnya. Dengan ini Host dapat memilih router mana yang paling sesuai. Contoh penggunaan dapat ditemukan dalam jaringan yang mengaktifkan IRDP (IPv4 Router Discovery Protocol). Dalam Wireshark, outputnya dapat berupa:
Router Advertisement from 10.0.0.1: lifetime=1800s
Pesan ini membantu perangkat baru bergabung dengan jaringan secara otomatis.
Type 10 – Router Solicitation
ICMP Type 10 digunakan oleh host untuk meminta router mengirimkan Router Advertisement. Fungsinya adalah mempercepat proses identifikasi router ketika host baru dinyalakan.
Cara kerjanya, host akan mengirimkan pesan solicitation ke multicast 224.0.0.2, dan router kemudian menjawab dengan Router Advertisement. Contoh penggunaan terjadi ketika komputer pertama kali terhubung ke jaringan. Output Wireshark biasanya menampilkan:
ICMP Router Solicitation
Dengan demikian, Type 10 bekerja sebagai permintaan awal sebelum router mengumumkan dirinya.
Type 11 – Time Exceeded (Traceroute)
ICMP Type 11 atau Time Exceeded adalah pesan yang dikirimkan ketika nilai TTL pada paket mencapai nol sebelum sampai ke tujuan. Fungsinya adalah mencegah paket berputar-putar tanpa akhir dalam loop routing dan menjadi dasar kerja traceroute.
Cara kerjanya terlihat jelas ketika menjalankan perintah seperti tracert 8.8.8.8 di Windows atau traceroute 8.8.8.8 di Linux. Perintah tersebut mengirimkan paket dengan TTL mulai dari 1, 2, dan seterusnya. Setiap router yang menerima paket dengan TTL=0 akan mengirimkan Type 11 kembali. Output traceroute biasanya menampilkan alamat router:
2 203.0.113.1 12.3 ms 11.8 ms 12.0 ms
Inilah cara traceroute memetakan jalur yang dilalui paket.
Type 12 – Parameter Problem
ICMP Type 12 dikirimkan oleh router ketika mendeteksi kesalahan dalam header IP, seperti panjang header tidak valid atau opsi IP tidak dapat diproses. Fungsinya adalah memberi tahu pengirim bahwa paket dianggap cacat dan dibuang.
Cara kerjanya adalah router akan membaca setiap byte header, dan jika menemukan nilai ilegal, router mengirim Type 12 dengan pointer ke lokasi byte yang bermasalah. Contoh muncul saat debugging protokol eksperimen atau perangkat lunak jaringan. Output Wireshark biasanya seperti:
ICMP Parameter Problem: pointer=20
Hal ini sangat membantu dalam menemukan bug implementasi.
Type 13 – Timestamp Request
ICMP Type 13 adalah pesan permintaan waktu yang digunakan untuk mengukur waktu transmisi satu arah dan sinkronisasi sederhana antar host. Fungsinya adalah menyediakan timestamp dari perangkat tujuan.
Cara kerjanya, host akan mengirim pesan berisi waktu permintaan, kemudian tujuan harus membuat timestamp waktu menerima dan mengirim ulang. Contoh penggunaan biasanya muncul pada analisis penundaan jaringan. Dalam Wireshark terlihat sebagai:
ICMP Timestamp Request
Namun saat ini jarang digunakan karena sudah digantikan oleh protokol NTP.
Type 14 – Timestamp Reply
ICMP Type 14 berfungsi memberikan balasan timestamp sebagai respons terhadap Timestamp Request. Cara kerjanya adalah host mengembalikan tiga nilai waktu: originate timestamp (saat permintaan dikirim), receive timestamp (saat pesan diterima), dan transmit timestamp (saat dibalas). Contoh output Wireshark dapat berupa:
ICMP Timestamp Reply: originate=123456 receive=123460 transmit=123461
Hal ini digunakan untuk penelitian delay jaringan.
Type 15 dan 16 – Information Request/Reply (Deprecated)
ICMP Type 15 dan 16 dahulu digunakan komputer lama yang tidak memiliki alamat IP tetap untuk menanyakan jaringan mana yang sedang digunakan. Fungsinya adalah sebagai mekanisme auto-configuration awal sebelum DHCP ditemukan.
Cara kerjanya, host mengirim Information Request dan router membalas dengan Information Reply. Outputnya dalam ketika di capture biasanya berbunyi:
ICMP Information Reply
Saat ini, tipe ini tidak lagi digunakan.
Type 17 dan 18 – Address Mask Request/Reply (Deprecated)
ICMP Type 17 dan 18 digunakan untuk menanyakan subnet mask jaringan lokal. Perangkat lama yang tidak memiliki konfigurasi otomatis akan mengirim Address Mask Request, dan router membalas dengan Address Mask Reply. Contoh penggunaan historis terlihat pada sistem diskless workstation. Contoh output:
Address Mask Reply: 255.255.255.0
Saat ini digantikan sepenuhnya oleh DHCP.
Type 31 – Datagram Conversion Error
ICMP Type 31 muncul ketika sebuah router atau gateway tidak mampu mengonversi format paket dari satu jenis network service ke jenis lain.
Fungsinya berhubungan dengan jaringan lama yang menggunakan format berbeda. Cara kerjanya muncul ketika router berusaha mentranslasikan datagram namun terjadi ketidaksesuaian. Output Wireshark biasanya berupa:
ICMP Datagram Conversion Error
Tipe ini tidak digunakan dalam jaringan modern.
Type 36 – Mobile Registration Error
ICMP Type 36 digunakan dalam protokol Mobile IP lama untuk memberitahukan adanya kegagalan saat perangkat mobile mencoba mendaftar ke agen asing atau agen rumah.
Fungsinya adalah memastikan perangkat mengetahui alasan registrasi gagal. Contoh output biasa terlihat dalam lingkungan Mobile IP eksperimen:
Mobile Registration Error: reason = authentication failed
Protokol ini tidak lagi banyak digunakan.
Type 40 – Photuris Security Failure
ICMP Type 40 digunakan untuk melaporkan kesalahan dalam protokol keamanan Photuris, yaitu protokol pertukaran kunci eksperimental. Cara kerjanya adalah router atau host mengirim pesan ketika negosiasi kunci gagal. Contoh output di capture:
ICMP Photuris: Security Failure
Jarang ditemui di jaringan umum.
Type 41 – Experimental Traceroute
ICMP Type 41 digunakan untuk eksperimen traceroute alternatif dalam penelitian jaringan. Cara kerjanya mirip dengan traceroute tetapi dengan struktur data berbeda. Contoh output biasanya hanya terlihat pada paket penelitian:
ICMP Experimental Traceroute
Type 42 – Extended Echo Request
ICMP Type 42 adalah versi modern dari Echo Request yang digunakan di jaringan virtualisasi dan cloud. Fungsinya adalah memeriksa status interface tertentu di perangkat tujuan meskipun pengirim tidak mengetahui IP interface tersebut.
Cara kerjanya, host akan mengirim permintaan yang berisi identitas interface atau parameter tertentu, kemudian tujuan memberikan balasan lengkap. Contoh penggunaan pada jaringan SDN atau container menggunakan perintah vendor, misalnya dalam sistem jaringan cloud internal. Contoh output dapat berupa:
Extended Echo Reply:
interface = eth2
status = UP
mtu = 1500
rx_packets = 12345
Type 43 – Extended Echo Reply
ICMP Type 43 adalah jawaban dari Extended Echo Request. Fungsinya memberikan informasi status dan parameter jaringan secara detail. Cara kerjanya mengikuti permintaan Type 42.
Outputnya menampilkan data teknis seperti MTU, kondisi link, atau statistik penggunaan interface.

Tinggalkan komentar