Apa itu ICMP (Internet Control Message Protocol) Protocol ?
Protokol ICMP
ICMP adalah singkatan dari Internet Control Message Protocol. Ini adalah protokol lapisan jaringan. Protokol ini digunakan untuk penanganan kesalahan di lapisan jaringan, dan terutama digunakan pada perangkat jaringan seperti router. Karena berbagai jenis kesalahan dapat terjadi di lapisan jaringan, maka ICMP dapat digunakan untuk melaporkan kesalahan ini dan men-debug kesalahan tersebut.
Misalnya, beberapa pengirim ingin mengirim pesan ke beberapa tujuan, tetapi router tidak dapat mengirim pesan ke tujuan tersebut. Dalam kasus ini, router mengirimkan pesan kepada pengirim bahwa saya tidak dapat mengirim pesan ke tujuan tersebut.
Protokol IP tidak memiliki mekanisme pelaporan kesalahan atau perbaikan kesalahan, jadi protokol ini menggunakan pesan untuk menyampaikan informasi. Misalnya, jika seseorang mengirim pesan ke tujuan, pesan tersebut entah bagaimana dicuri antara pengirim dan tujuan. Jika tidak ada yang melaporkan kesalahan, maka pengirim mungkin berpikir bahwa pesan telah sampai ke tujuan. Jika ada orang di antara mereka yang melaporkan kesalahan, maka pengirim akan mengirim ulang pesan tersebut dengan sangat cepat.
Posisi ICMP di lapisan jaringan
ICMP berada di lapisan IP , seperti yang ditunjukkan pada diagram di bawah.
- Pesan pelaporan kesalahan
Pesan pelaporan kesalahan berarti bahwa router mengalami masalah saat memproses paket IP lalu melaporkan pesan.
- Pesan kueri
Pesan kueri adalah pesan yang membantu host untuk mendapatkan informasi spesifik dari host lain. Misalnya, misalkan ada klien dan server, dan klien ingin tahu apakah server aktif atau tidak, maka klien mengirim pesan ICMP ke server.
Format Pesan ICMP
Format pesan memiliki dua hal; satu adalah kategori yang memberi tahu kita jenis pesannya. Jika pesan tersebut berjenis kesalahan, pesan kesalahan tersebut berisi jenis dan kode. Jenis menentukan jenis pesan sementara kode menentukan subjenis pesan.
Pesan ICMP berisi bidang-bidang berikut:
- Tipe: Ini adalah bidang 8-bit. Ini mendefinisikan tipe pesan ICMP. Rentang nilai dari 0 hingga 127 didefinisikan untuk ICMPv6, dan nilai dari 128 hingga 255 adalah pesan informasional.
- Kode: Ini adalah bidang 8-bit yang mendefinisikan subtipe pesan ICMP
- Checksum: Ini adalah bidang 16-bit untuk mendeteksi apakah kesalahan ada dalam pesan atau tidak.
Catatan: Protokol ICMP selalu melaporkan pesan kesalahan ke sumber aslinya. Misalnya, saat pengirim mengirim pesan, jika terjadi kesalahan dalam pesan, router akan melaporkannya ke pengirim, bukan penerima, karena pengirimlah yang mengirim pesan.
Jenis Pesan Pelaporan Kesalahan
Pesan pelaporan kesalahan secara umum diklasifikasikan ke dalam kategori berikut:
- Tujuan tidak dapat dijangkau
Kesalahan destination unreachable terjadi saat paket tidak mencapai tujuan. Misalkan pengirim mengirim pesan, tetapi pesan tidak mencapai tujuan, maka router perantara melaporkan kepada pengirim bahwa tujuan tidak dapat dijangkau.
Diagram di atas menunjukkan format pesan dari pesan yang tidak dapat dijangkau. Dalam format pesan:
Tipe: Menentukan tipe pesan. Angka 3 menunjukkan bahwa tujuannya tidak dapat dijangkau.
Kode (0 hingga 15): Ini adalah angka 4-bit yang mengidentifikasi apakah pesan berasal dari beberapa router perantara atau tujuan itu sendiri.
Catatan: Jika tujuan membuat pesan tujuan tidak dapat dijangkau maka kodenya bisa berupa 2 atau 3.
Terkadang tujuan tidak ingin memproses permintaan, sehingga ia mengirimkan pesan tujuan yang tidak dapat dijangkau ke sumber. Router tidak mendeteksi semua masalah yang mencegah pengiriman paket.
- Sumber pendinginan
Tidak ada mekanisme kontrol aliran atau kontrol kongesti di lapisan jaringan atau protokol IP. Pengirim hanya peduli dengan pengiriman paket, dan pengirim tidak berpikir apakah penerima siap menerima paket tersebut atau apakah terjadi kongesti di lapisan jaringan sehingga pengirim dapat mengirim lebih sedikit paket, jadi tidak ada mekanisme kontrol aliran atau kontrol kongesti. Dalam kasus ini, ICMP memberikan umpan balik, yaitu, source quench. Misalkan pengirim mengirim ulang paket pada kecepatan yang lebih tinggi, dan router tidak dapat menangani kecepatan data yang tinggi. Untuk mengatasi situasi seperti itu, router mengirimkan pesan source quench untuk memberi tahu pengirim agar mengirim paket pada kecepatan yang lebih rendah.
Diagram di atas menunjukkan format pesan dari pesan sumber yang dipadamkan. Pesan tersebut adalah pesan tipe 4, dan kodenya nol.
Catatan: Pesan pemadaman sumber memberi tahu pengirim bahwa datagram telah dibuang karena terjadi kemacetan di lapisan jaringan.
Jadi, pengirim harus menghentikan atau memperlambat pengiriman datagram hingga kemacetan berkurang. Router mengirimkan satu pesan source-quench untuk setiap datagram yang dibuang karena kemacetan di lapisan jaringan.
- Waktu terlampaui
Terkadang situasi muncul ketika ada banyak router yang berada di antara pengirim dan penerima. Ketika pengirim mengirim paket, maka paket tersebut bergerak dalam sebuah routing loop. Waktu yang terlewati didasarkan pada nilai time-to-live. Ketika paket melintasi router, maka setiap router menurunkan nilai TTL sebanyak satu. Setiap kali router menurunkan datagram dengan nilai time-to-live menjadi nol, maka router membuang datagram dan mengirim pesan time exceeded ke sumber asli.
Setiap lapisan MAC memiliki unit data yang berbeda. Misalnya, beberapa lapisan dapat menangani hingga 1500 unit data, dan beberapa dapat menangani hingga 300 unit. Ketika paket dikirim dari lapisan yang memiliki 1500 unit ke lapisan yang memiliki 300 unit, maka paket tersebut dibagi menjadi beberapa fragmen; proses ini dikenal sebagai fragmentasi. 1500 unit ini dibagi menjadi 5 fragmen, yaitu f1, f2, f3, f4, f5, dan fragmen-fragmen ini mencapai tujuan secara berurutan. Jika semua fragmen tidak mencapai tujuan dalam waktu yang ditentukan, mereka membuang semua fragmen yang diterima dan mengirim pesan waktu terlampaui ke sumber asli.
Dalam kasus fragmentasi, kodenya akan berbeda dibandingkan dengan TTL. Mari kita amati format pesan waktu yang terlampaui.
Format pesan di atas menunjukkan bahwa tipe time-exceeded adalah 11, dan kodenya bisa berupa 0 atau 1. Kode 0 mewakili TTL, sedangkan kode 1 mewakili fragmentasi. Dalam pesan time-exceeded, kode 0 digunakan oleh router untuk menunjukkan bahwa nilai time-to-live telah mencapai nol.
Kode 1 digunakan oleh tujuan untuk menunjukkan bahwa semua fragmen tidak tercapai dalam waktu yang ditentukan.
Masalah parameter
Router dan host tujuan dapat mengirim pesan masalah parameter. Pesan ini menyampaikan bahwa beberapa parameter tidak diatur dengan benar.
Diagram di atas menunjukkan format pesan dari masalah parameter. Jenis pesannya adalah 12, dan kodenya bisa 0 atau 1.
Pengalihan
Ketika paket dikirim, tabel routing secara bertahap ditambah dan diperbarui. Alat yang digunakan untuk mencapai hal ini adalah pesan pengalihan. Misalnya, A ingin mengirim paket ke B, dan ada dua router yang berada di antara A dan B. Pertama, A mengirim data ke router 1. Router 1 mengirim paket IP ke router 2 dan pesan pengalihan ke A sehingga A dapat memperbarui tabel routingnya.
Catatan: Pesan pengalihan dikirim dari router ke host di jaringan yang sama.
Pesan Permintaan ICMP
Pesan ICMP Query digunakan untuk penanganan kesalahan atau debugging internet. Pesan ini biasanya digunakan untuk melakukan ping terhadap suatu pesan.
Pesan permintaan gema dan balasan gema
Router atau host dapat mengirim pesan echo-request. Pesan ini digunakan untuk melakukan ping ke host lain yang mengatakan “Apakah Anda masih hidup “. Jika host lain masih hidup, maka ia akan mengirim pesan echo-reply. Pesan echo-reply dikirim oleh router atau host yang menerima pesan echo-request.
Poin-poin penting dari pesan Query
- Pesan permintaan gema dan pesan balasan gema dapat digunakan oleh pengelola jaringan untuk memeriksa pengoperasian protokol IP. Misalkan ada dua host, yaitu A dan B, dan A ingin berkomunikasi dengan host B. Host A dapat berkomunikasi dengan host B jika tautan antara A dan B tidak terputus, dan B masih aktif.
- Pesan permintaan gema dan pesan balasan gema memeriksa jangkauan host, dan ini dapat dilakukan dengan menjalankan perintah ping.
Format pesan permintaan gema dan pesan balasan gema
Diagram di atas menunjukkan format pesan dari pesan echo-request dan echo-reply. Tipe echo-request adalah 8, dan permintaan echo-reply adalah 0. Kode pesan ini adalah 0.
Pesan permintaan cap waktu dan pesan balasan cap waktu
Pesan permintaan cap waktu dan balasan cap waktu juga merupakan jenis pesan kueri. Misalkan komputer A ingin mengetahui waktu di komputer B, maka ia mengirim pesan permintaan cap waktu ke komputer B. Komputer B merespons dengan pesan balasan cap waktu.
Format pesan timestamp-request dan timestamp-reply
Tipe permintaan stempel waktu adalah 13, dan tipe balasan stempel waktu adalah 14. Kode tipe pesan ini adalah 0.
Poin-poin penting terkait pesan permintaan stempel waktu dan balasan stempel waktu
- Dapat digunakan untuk menghitung waktu perjalanan pulang pergi antara sumber dan tujuan, bahkan jika jamnya tidak sinkron.
- Ini juga dapat digunakan untuk menyinkronkan jam di dua mesin yang berbeda jika waktu transit yang tepat diketahui.
Jika pengirim mengetahui waktu transit yang tepat, maka pengirim dapat menyinkronkan jam. Pengirim menanyakan waktu pada jam penerima, lalu menambahkan waktu dan penundaan propagasi. Misalkan waktunya adalah 1:00 clock dan penundaan propagasi adalah 100 ms, maka waktunya adalah 1:00 clock ditambah 100 ms.
Alat debugging
Ada beberapa alat yang digunakan untuk debugging. Dalam topik ini, kita akan mempelajari dua alat yang menggunakan ICMP untuk debugging. Kedua alat tersebut adalah ping dan traceroute . Kita telah mempelajari tentang ping dalam pesan echo-request dan echo-reply yang memeriksa apakah host atau router masih aktif atau berjalan.
Sekarang kita akan melihat traceroute.
Traceroute adalah alat yang melacak rute yang diambil oleh paket pada jaringan IP dari sumber ke tujuan. Alat ini mencatat waktu yang diambil oleh paket pada setiap hop selama rutenya dari sumber ke tujuan. Traceroute menggunakan pesan ICMP dan nilai TTL. Nilai TTL dihitung; jika nilai TTL mencapai nol, paket akan dibuang. Traceroute menggunakan nilai TTL kecil karena cepat kedaluwarsa. Jika nilai TTL adalah 1 maka pesan diproduksi oleh router 1; jika nilai TTL adalah 2 maka pesan diproduksi oleh router 2, dan seterusnya.
Mari kita pahami traceroute melalui sebuah contoh.
Misalkan A dan B adalah dua host yang berbeda, dan A ingin mengirim paket ke host B. Ada 3 router antara A dan B. Untuk menentukan lokasi router, kami menggunakan alat traceroute.
Nilai TTL = 1: Pertama, host A mengirim paket ke router 1 dengan nilai TTL 1, dan saat paket mencapai router 1 maka router mengurangi nilai TTL sebesar satu dan nilai TTL menjadi 0. Dalam kasus ini, router 1 menghasilkan pesan waktu terlampaui dan host A mengetahui bahwa router 1 adalah router pertama di suatu jalur.
Nilai TTL=2: Ketika host A mengirim paket ke router 1 dengan nilai TTL 2, dan ketika paket mencapai router 1 maka nilai TTL berkurang 1 dan nilai TTL menjadi 1. Kemudian router 1 mengirim paket ke router 2, dan nilai TTL menjadi 0, sehingga router menghasilkan pesan waktu terlampaui. Host A mengetahui bahwa router 2 adalah router kedua di jalur tersebut.
Nilai TTL=3: Ketika host A mengirim paket ke router 1 dengan nilai TTL 3, maka router mengurangi nilainya sebanyak satu, dan nilai TTL menjadi 2. Kemudian, router 1 mengirim paket ke router 2, dan nilai TTL menjadi 1. Kemudian, router 2 mengirim paket ke router 3, dan nilai TTL menjadi 0. Ketika nilai TTL menjadi 0, router 3 menghasilkan pesan waktu terlampaui. Dengan cara ini, host A adalah router ketiga pada suatu jalur.
//AGR
Referensi : [1]