ICMP message dibungkus dalam IP packet sehingga ada orang yang mengatakan bahwa ICMP adalah protokol layer 4 seperti UDP atau TCP. Namun, karena ICMP adalah bagian penting dari protokol IP, ia biasanya dianggap sebagai protokol layer 3.
Header yang digunakan ICMP sangat sederhana, seperti inilah tampilannya:
8 bits/1 Byte pertama menentukan tipe ICMP message. Misalnya, tipe 8 digunakan untuk ICMP echo request dan tipe 0 digunakan untuk ICMP echo reply. Tipe 3 untuk destination unreachable.
8 bits/1 Byte kedua disebut code, menentukan kode atau jenis dari setiap ICMP message. Misalnya, destination unreachable memiliki 16 kode berbeda. Ketika Anda melihat kode 0 itu berarti bahwa jaringan tujuan tidak dapat dijangkau, sementara kode 1 berarti bahwa host tujuan tidak dapat dijangkau.
Kolom ketiga adalah 16 bits (2 Bytes) yang digunakan untuk checksum, untuk mengecek apakah header ICMP error atau tidak. Seperti apa field-field lain yang tersisa dari header? Itu bergantung pada tipe ICMP message yang digunakan.
Jika Anda tertarik, berikut adalah daftar lengkap semua kode dan tipe ICMP.
Untuk menunjukkan kepada Anda beberapa contoh ICMP, mari kita lihat beberapa ICMP message yang sering digunakan, menggunakan Wireshark.
1. ICMP echo
PC-X mau mengirim paket ICMP echo (ping) ke server 1.1.1.1, untuk mengetahui apakah server 1.1.1.1 bisa membalas ICMP echo dari PC-X
C:\Users\PC-X>ping 1.1.1.1
Pinging 1.1.1.1 with 32 bytes of data:
Reply from 1.1.1.1: bytes=32 time=72ms TTL=58
Reply from 1.1.1.1: bytes=32 time=85ms TTL=58
Reply from 1.1.1.1: bytes=32 time=27ms TTL=58
Reply from 1.1.1.1: bytes=32 time=158ms TTL=58
Ping statistics for 1.1.1.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 27ms, Maximum = 158ms, Average = 85ms
Dari hasil capture Wireshark, kita bisa melihat ICMP echo (ping) request yang dikirim ke server 1.1.1.1. ICMP echo (ping) request mempunyai tipe 8 dan kode 0.
Sedangkan ICMP echo (ping) Reply dari server 1.1.1.1 ke PC-X, mempunyai tipe 0 dan kode 0.
2. Destination Unreachable
PC-X mencoba mengirim ICMP echo (ping) ke server 110.5.105.30, tapi ternyata server tsb tidak bisa dicapai (unreachable) karena alasan tertentu (misalnya sedang shutdown, restart, dll).
C:\Users\PC-X>ping 110.5.105.30
Pinging 110.5.105.30 with 32 bytes of data:
Reply from 202.62.12.98: Destination host unreachable.
Reply from 202.62.12.98: Destination host unreachable.
Reply from 202.62.12.98: Destination host unreachable.
Reply from 202.62.12.98: Destination host unreachable.
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Hasil capture Wireshark, ICMP Destination Unreachable mempunyai tipe 3 dan kode 1 untuk Host Unreachable.
3. Traceroute
PC-X mengirim ICMP echo (ping) ke server 8.8.8.8 menggunakan TTL terkecil yaitu 1 dan secara bertahap dinaikkan hingga mendapat reply/balasan dari server 8.8.8.8, dengan tujuan untuk mendapatkan informasi mengenai hop-by-hop yang dilalui dari PC-X hingga sampai ke server 8.8.8.8
C:\Users\PC-X>tracert 8.8.8.8
Tracing route to 8.8.8.8 over a maximum of 30 hops
1 14 ms 11 ms 12 ms 10.158.0.1
2 145 ms 139 ms 219 ms 202.73.96.26
3 168 ms 143 ms 141 ms 202.73.96.25
4 32 ms 24 ms 28 ms 116.68.231.150
5 34 ms 33 ms 29 ms 111.95.246.130
6 38 ms 44 ms 28 ms 74.125.242.33
7 26 ms 24 ms 68 ms 72.14.232.101
8 33 ms 34 ms 67 ms 8.8.8.8
Trace complete.
Hasil capture Wireshark, ini adalah paket ICMP yang dikirim PC-X ke 8.8.8.8, dengan TTL terkecil yaitu 1. TTL ini selalu dikurangi 1 ketika transit di sebuah router. Terlihat bahwa paket ICMP mempunyai Protocol ID = 1.
Ketika sampai di router pertama (gateway terdekat), TTL 1 tsb dikurangi menjadi 0, sehingga paket di-drop oleh router dan router tersebut mengirim ICMP TTL exceeded message kepada pengirim (PC-X). ICMP TTL exceeded mempunyai tipe 11 dan kode 0.
Kesimpulan:
Kita telah membahas mengenai kegunaan ICMP, seperti apa header-nya dan beberapa contoh ICMP message yang sering kita gunakan. Jika ada pertanyaan, silahkan tulis di kolom komentar :)
Agar lebih mudah memahami tentang ICMP, sebaiknya tonton video saya yang membahas mengenai ICMP di: https://youtu.be/k4DfVCJOA4w?t=1290
Semoga bermanfaat & tetap semangat untuk belajar :)
-AHa-
Sangat menarik pemaparan materi, thanks
ReplyDeleteSangat menarik pemaparan materi, thanks
ReplyDelete