Internet Control Message Protocol  ICMP
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 tersebut 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 DATA AREA FRAME DATA AREA FRAME HEADER DATAGRAM HEADER ICMP HEADER ICMP DATA
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 TYPE  ( 8-bits ): Message type. CODE  ( 8-bits ): Further information on the message type. CHECKSUM  ( 16-bits ): Same checksum algorithm as used in the IP protocol, but only covers the ICMP datagram.
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
Datagram yang menyebabkan error
 
 
ICMP Unreachable Destinations Message Digunakan ketika router tidak dapat mengirimkan sebuah datagram IP (dikembalikan ke  original source ) CODE  ( 8-bits ): Integer value that further describes the problem which occurred Code Value Meaning 0 Network Unreachable 1 Host Unreachable 2 Protocol Unreachable 3 Port Unreachable 5 Source Route Failed 6 Destination Network Unknown 7 Destination Host Unknown 12 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 0 8 16 31 DATAGRAM HEADER + FIRST 64 BITS OF DATAGRAM . . . TYPE (3) CODE (0-12) CHECKSUM UNUSED (MUST BE ZERO)
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 0 8 16 31 INTERNET HEADER + FIRST 64 BITS OF DATAGRAM . . . TYPE (4) CODE (0) CHECKSUM UNUSED (MUST BE ZERO)
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 CODE  (8-bits): 0 = TTL count exceeded. 1 = Fragment reassembly time exceeded The timer is started at destination after the first fragment is received. 0 8 16 31 INTERNET HEADER + FIRST 64 BITS OF DATAGRAM . . . TYPE (11) CODE (0 or 1) CHECKSUM UNUSED (MUST BE ZERO)
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 0 8 16 31 INTERNET HEADER + FIRST 64 BITS OF DATAGRAM . . . TYPE (12) CODE (0..1) CHECKSUM UNUSED (MUST BE ZERO) POINTER
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 R 2 R 1 R 4 R 3 R 5 S D
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 CODE : 0 : Redirect datagrams for the Net (now obsolete) 1 : Redirect datagrams for the Host 2 : Redirect datagrams for the Type of Service and Net 3 : Redirect datagrams for the Type of Service and Host 0 8 16 31 INTERNET HEADER + FIRST 64 BITS OF DATAGRAM . . . CODE(0 TO 3) TYPE (5) ROUTER INTERNET ADDRESS CHECKSUM
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 : 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
TYPE  (8-bits): Request = 8 Reply = 0 SEQUENCE NUMBER  (16-bits): Digunakan oleh pengirim untuk menyesuaikan antara  replies  dengan  requests  yang dikirim 0 8 16 31 OPTIONAL DATA . . . TYPE (0 OR 8) CODE (0) CHECKSUM IDENTIFIER SEQUENCE NUMBER
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 . 0 8 16 31 ORIGINATE TIMESTAMP TYPE(13 OR 14) CODE (0) CHECKSUM IDENTIFIER SEQUENCE NUMBER TRANSMIT TIMESTAMP RECEIVE TIMESTAMP
TYPE  ( 8-bits ): Request  = 13 Reply  = 14 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 TYPE  (8-bits): Request = 17 Reply = 18 ADDRESS MASK  (32-bits): Subnet mask yang digunakan 0 8 16 31 ADDRESS MASK . . . TYPE (17..18) CODE (0) CHECKSUM IDENTIFIER SEQUENCE NUMBER
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 0 8 16 31 . . . TYPE (10) CODE (0) CHECKSUM RESERVED

Internet Control Message protocol ICMP

  • 1.
  • 2.
    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
  • 3.
    Control and errormessaging 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 )
  • 4.
    ICMP adalah mekanismepelaporan 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
  • 5.
    Mengapa ICMP hanyadigunakan 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 tersebut 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
  • 6.
    Enkapsulasi ICMPmessage DATAGRAM DATA AREA FRAME DATA AREA FRAME HEADER DATAGRAM HEADER ICMP HEADER ICMP DATA
  • 7.
    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
  • 8.
    Posisi ICMP padanetwork layer
  • 9.
    Format umum ICMP message Setiap error message memiliki format tertentu, tetapi selalu diawali oleh tiga field berikut TYPE ( 8-bits ): Message type. CODE ( 8-bits ): Further information on the message type. CHECKSUM ( 16-bits ): Same checksum algorithm as used in the IP protocol, but only covers the ICMP datagram.
  • 10.
    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
  • 11.
  • 12.
  • 13.
  • 14.
    ICMP Unreachable DestinationsMessage Digunakan ketika router tidak dapat mengirimkan sebuah datagram IP (dikembalikan ke original source ) CODE ( 8-bits ): Integer value that further describes the problem which occurred Code Value Meaning 0 Network Unreachable 1 Host Unreachable 2 Protocol Unreachable 3 Port Unreachable 5 Source Route Failed 6 Destination Network Unknown 7 Destination Host Unknown 12 Host Unreachable for Type of Service
  • 15.
    ICMP Unreachable DestinationMessage 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 0 8 16 31 DATAGRAM HEADER + FIRST 64 BITS OF DATAGRAM . . . TYPE (3) CODE (0-12) CHECKSUM UNUSED (MUST BE ZERO)
  • 16.
    ICMP Source QuenchSource-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 0 8 16 31 INTERNET HEADER + FIRST 64 BITS OF DATAGRAM . . . TYPE (4) CODE (0) CHECKSUM UNUSED (MUST BE ZERO)
  • 17.
    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)
  • 18.
    ICMP Time ExceededAkibat 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 CODE (8-bits): 0 = TTL count exceeded. 1 = Fragment reassembly time exceeded The timer is started at destination after the first fragment is received. 0 8 16 31 INTERNET HEADER + FIRST 64 BITS OF DATAGRAM . . . TYPE (11) CODE (0 or 1) CHECKSUM UNUSED (MUST BE ZERO)
  • 19.
    ICMP Parameter ProblemPesan 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 0 8 16 31 INTERNET HEADER + FIRST 64 BITS OF DATAGRAM . . . TYPE (12) CODE (0..1) CHECKSUM UNUSED (MUST BE ZERO) POINTER
  • 20.
    ICMP Redirect MessageRedirect 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
  • 21.
    Misalnya router R1salah 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 R 2 R 1 R 4 R 3 R 5 S D
  • 22.
    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 CODE : 0 : Redirect datagrams for the Net (now obsolete) 1 : Redirect datagrams for the Host 2 : Redirect datagrams for the Type of Service and Net 3 : Redirect datagrams for the Type of Service and Host 0 8 16 31 INTERNET HEADER + FIRST 64 BITS OF DATAGRAM . . . CODE(0 TO 3) TYPE (5) ROUTER INTERNET ADDRESS CHECKSUM
  • 23.
    Echo Request/Reply Digunakansebagai 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 : 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
  • 24.
    TYPE (8-bits):Request = 8 Reply = 0 SEQUENCE NUMBER (16-bits): Digunakan oleh pengirim untuk menyesuaikan antara replies dengan requests yang dikirim 0 8 16 31 OPTIONAL DATA . . . TYPE (0 OR 8) CODE (0) CHECKSUM IDENTIFIER SEQUENCE NUMBER
  • 25.
    Timestamp Message TimestampRequest 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 . 0 8 16 31 ORIGINATE TIMESTAMP TYPE(13 OR 14) CODE (0) CHECKSUM IDENTIFIER SEQUENCE NUMBER TRANSMIT TIMESTAMP RECEIVE TIMESTAMP
  • 26.
    TYPE (8-bits ): Request = 13 Reply = 14 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
  • 27.
    Address Mask MessageAddress Mask Request and Reply digunakan untuk menentukan subnet mask yang digunakan pada jaringan lokal TYPE (8-bits): Request = 17 Reply = 18 ADDRESS MASK (32-bits): Subnet mask yang digunakan 0 8 16 31 ADDRESS MASK . . . TYPE (17..18) CODE (0) CHECKSUM IDENTIFIER SEQUENCE NUMBER
  • 28.
    Router Advertisement Suatuhost 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
  • 29.
  • 30.
    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
  • 31.
    Router Solicitation Routeradvertisement 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 0 8 16 31 . . . TYPE (10) CODE (0) CHECKSUM RESERVED