Post on 07-Aug-2015
Internet Control Message Protocol Version 4 (ICMPv4)
Tujuan :
Mendiskusikan alasan keberadaan ICMP.
Menunjukkan bagaimana pesan ICMP dibagi menjadi dua kategori: melaporkan
kesalahan dan pesan permintaan.
Membahas tujuan dan format pesan kesalahan pelaporan.
Membahas tujuan dan format pesan permintaan.
Menunjukkan bagaimana checksum dihitung untuk pesan ICMP.
Menunjukkan bagaimana alat debugging menggunakan protokol ICMP.
Menunjukkan bagaimana pengaturan sebuah paket perangkat lunak sederhana
yang mengimplementasikan ICMP.
1. Pengantar
Protokol IP tidak memiliki sistem pelaporan kesalahan atau mekanisme koreksi
kesalahan. Protokol IP juga tidak memiliki mekanisme untuk host dan manajemen
permintaan. Internet Control Message Protocol (ICMP) telah dirancang untuk
mengkompensasi kekurangan tersebut.
Position ICMP pada layar network
Enkapsulasi Paket ICMP
2. Messages
Pesan ICMP dibagi menjadi dua kategori: Pesan error report dan query messages. Pesan
error report melaporkan masalah yang terdapat pada router atau host (tujuan) mungkin
terjadi ketika proses pengiriman paket IP. Query Messages, yang terjadi pada
pemasangan, membantu host atau manajer jaringan mendapatkan informasi dari router
atau host lain.
Format Pesan
Pesan ICMP memiliki header 8 byte dan bagian ukuran variabel data. 4 byte pertama
yang umum untuk semua jenis pesan. Gambar 9.3 menunjukkan, field pertama, jenis
ICMP, mendefinisikan jenis pesan. Kolom kode menentukan alasan untuk jenis pesan
tertentu. Bidang umum terakhir adalah bidang checksum. Sisa header spesifik untuk
setiap jenis pesan.
Pesan Error Report
Salah satu peran penting ICMP untuk melaporkan kesalahan. ICMP tidak memperbaiki
kesalahan, ICMP hanya melaporkan kesalahan. Koreksi kesalahan diserahkan kepada
protokol-tingkat yang lebih tinggi. Pesan kesalahan selalu dikirim ke sumber asli karena
satu-satunya informasi yang tersedia di datagram tentang rute adalah sumber dan tujuan
alamat IP. ICMP menggunakan alamat IP sumber untuk mengirim pesan kesalahan ke
sumber (originator) dari datagram.
Lima jenis kesalahan yang ditangani : destination unreachable, source quench, time
exceeded, parameter problems, and redirection
a. Destination Unreachable
Ketika sebuah router tidak dapat menemukan sebuah datagram atau sebuah host
tidak dapat mengirimkan sebuah datagram, maka datagram tersebut akan dibuang
dan router atau host mengirimkan pesan destination-unreachable kepada host
yang diinisiasi oleh datagram.
Pesan Destination-unreachable dengan code 2 atau 3 hanya bisa dibuat dari
destination host. Pesan destination-unreachable hanya bisa dibuat dengan satu
routers.
b. Source Quench
Pesan Source-quench di ICMP dirancang untuk menambah jenis kontrol aliran
dan kontrol kongesti untuk IP. Ketika sebuah router atau host membuang
datagram karena kemacetan, ia akan mengirimkan pesan source-quench kepada
pengirim datagram. Pesan ini memiliki dua tujuan. Pertama, itu memberitahu
sumber yang datagram telah dibuang. Kedua, ia memperingatkan source bahwa
ada kemacetan di suatu tempat di jalan dan bahwa souce harus memperlambat
proses pengiriman.
c. Time Exceeded
Time Exceeded secara umum memiliki dua case:
a. Setiap sebuah router mendiscremen sebuah datagram dalam satu nilai time-
to-live ke nol, berarti membuang satu datagram dan mengirim sebuah pesan
time-exceeded ke original source.
b. Ketika destinasi akhir tidak menerima semua fragmen pada satu waktu,
berarti membuang fragmen yang diterima dan mengirim pesan time-exceeded
ke original source.
d. Parameter Problems
Sebuah pesan parameter-problem bisa dibuat oleh router atau destination host.
e. Redirection
Sebuah host biasanya memulai dengan routing table yang kecil, yang secara
bertahap ditambah dan diperbarui. Salah satu alat untuk mencapai hal ini adalah
pesan redirection.
Query Messages
Echo Request and Reply
Echo-request dan echo-reply messages dirancang untuk tujuan diagnostik.
Manajer jaringan dan pengguna memanfaatkan pasangan pesan ini untuk
mengidentifikasi masalah jaringan. Kombinasi pesan echo-request dan echo-reply
menentukan apakah dua sistem (host atau router) dapat berkomunikasi satu sama
lain.
Pesan echo-request dapat dikirim oleh host atau router. Pesan echo-reply dikirim
oleh host atau router yang menerima pesan echo-request.
Pesan Echo-request dan echo-reply dapat digunakan oleh manajer jaringan untuk
memeriksa operasi protokol IP.
Pesan Echo-request dan echo-reply dapat menguji reachability dari host. Hal ini
biasanya dilakukan dengan menerapkan perintah ping.
Timestamp Request and Reply
hosts atau routers dapat menggunakan timestamp-request dan timestamp-reply
messages untuk waktu round-trip yang dibutuhkan untuk datagram IP untuk
perjalanan antara mereka. Hal ini juga dapat digunakan untuk singkronisasi
waktu pada dua mesin.
Pesan Timestamp-request dan timestamp-balasan dapat digunakan untuk
menghitung satu arah atau waktu pulang-pergi yang diperlukan untuk datagram
untuk pergi dari sumber ke tujuan dan kemudian kembali lagi. Formulanya
adalah :
sending time = receive timestamp - original timestamp
receiving time = returned time - transmit timestamp
round-trip time = sending time + receiving time
Checksum
Perhitungan checksum
Pengirim mengikuti langkah-langkah menggunakan hitungan aritmatika:
Bidang checksum diatur ke nol.
Jumlah semua kata 16-bit (header dan data) dihitung.
Jumlah ini dilengkapi untuk mendapatkan checksum.
Checksum disimpan di bidang checksum.
Pengujian checksum
Penerima mengikuti langkah-langkah menggunakan hitungan aritmatika:
Jumlah semua kata-kata (header dan data) dihitung.
Jumlah ini dilengkapi.
Jika hasil yang diperoleh pada langkah 2 adalah 16 0, pesan akan
diterima; jika tidak, berarti ditolak.
3. Debugging Tools
Ping
Kita dapat menggunakan program ping untuk menemukan sebuah host aktif dan
merespon.
Traceroute
Program traceroute di UNIX atau tracert pada Windows dapat digunakan untuk
melacak rute dari paket dari sumber ke tujuan.
4. ICMP Package
a. Input Module
Modul input menangani semua pesan ICMP. Modul ini dipanggil saat sebuah
paket ICMP dikirim ke modul dari lapisan IP. Jika paket yang diterima
adalah permintaan, modul membuat balasan dan mengirimkannya keluar. Jika
paket yang diterima adalah pesan pengalihan, modul menggunakan informasi
untuk memperbarui tabel routing. Jika paket yang diterima adalah pesan
kesalahan, modul menginformasikan protokol tentang situasi yang
menyebabkan kesalahan.
b. Output Module
Modul output bertanggung jawab untuk membuat permintaan, permohonan,
atau pesan kesalahan yang diminta oleh tingkat yang lebih tinggi atau
protokol IP. Modul ini menerima permintaan dari IP, UDP, atau TCP untuk
mengirim salah satu pesan kesalahan ICMP. Jika permintaan dari IP, modul
keluaran pertama harus memeriksa bahwa permintaan diperbolehkan. Ingat,
pesan ICMP tidak dapat dibuat untuk empat situasi: sebuah paket IP yang
membawa pesan ICMP error, paket IP terfragmentasi, paket IP multicast,
atau alamat IP paket IP memiliki 0.0.0.0 atau 127.XY Z. output modul juga
dapat menerima permintaan dari sebuah program aplikasi untuk mengirim
salah satu pesan permintaan ICMP.
Kesimpulan
- Internet Control Message Protocol (ICMP) mendukung unreliable dan
connectionless Internet Protocol (IP).
- Pesan ICMP diringkas dalam datagrams IP. Ada dua kategori pesan ICMP: error-
report dan query messeges. Pesan error-report melaporkan masalah dari router
atau host (tujuan) mungkin terjadi ketika proses paket IP. Query messeges, yang
terjadi pada pairs, membantu host atau manajer jaringan mendapatkan informasi
dari router atau host lain.
- The checksum untuk ICMP dihitung menggunakan kedua header dan bidang data
pesan ICMP.
- Ada beberapa tool yang dapat digunakan oleh internet untuk debugging. Kita
dapat menemukan jika host atau router masih aktif dan berjalan. Dua alat ini
adalah ping dan traceroute.
- Desain ICMP sederhana dapat terdiri dari modul input yang menangani paket
ICMP yang masuk dan modul output yang menangani permintaan layanan ICMP.
Exercises
1. Host A mengirimkan pesan timestamp-request ke host B dan tidak pernah
menerima balasan. Apa penyebabnya?
Jawab :
- Pesan asli hilang dalam perjalanan. Pengirim dapat mengulang pengiriman pesan
kembali.
- Jawabannya hilang dalam perjalanan. Pengirim dapat mengulang pengiriman
pesan kembali.
- Pesan asli rusak dan dibuang. Pengirim dapat mengulang pengiriman pesan
kembali.
2. Mengapa ada pembatasan pada generation dari pesan ICMP dalam
menanggapi pesan kesalahan ICMP?
Jawab :
Pembatasan ini mencegah paket ICMP agar tidak memenuhi jaringan. Tanpa
pembatasan ini aliran paket ICMP tak berulang akan terjadi.
3. Host A mengirim sebuah datagram ke host B. Host B tidak pernah menerima
datagram dan host A tidak menerima peringatan kegagalan . berikan dua
penjelasan berbeda dari apa yang mungkin terjadi.
Jawab : Itu bisa saja terjadi apabila host B tidak ditemukan (unreachable). Pesan
kesalahan yang dihasilkan oleh router bisa hilang dalam perjalanan kembali ke host
A. Atau mungkin datagram terhapus karena kemacetan dan pesan kesalahan yang
dihasilkan oleh hilang diperjalanan.
4. Apa tujuan dari diikutkan IP header dan 8 bytes awal dari datagram dalam
pesan kesalahan pada pesan ICMP?
Jawab : IP header diikutkan dalam pesan kesalahan karena IP header berisi IP
address dari sumber originalnya.
8 bit awal dari data dimasukkan karena bit tersebut berisi seksi pertama dari TCP
atau UDP header yang berisi informasi port numbers (TCP dan UDP) dan sequence
number (TCP). Informasi ini mengizinkan sumber langsung ke pesan ICMP untuk
mendapatkan kebenaran aplikasi
5. Berapa nilai maksimum bidang pointer dalam pesan parameter-problem?
Jawab : Nilai maksimum adalah 59 karena pointer menunjuk ke byte di suatu tempat
di header IP asli (maksimal 60 byte). Offset 0 akan menunjuk ke pertama byte,
sehingga offset 59 akan menunjuk ke byte ke-60.
6. Berikan contoh situasi di mana host tidak akan pernah menerima pesan
redirection.
Jawab : Sebuah host tidak akan menerima pesan redirection jika hanya ada satu
router yang menghubungkan jaringan lokal ke dunia luar
7. Buatlah tabel yang menunjukkan pesan ICMP dikirim oleh router, yang
dikirim oleh host nondestination, dan yang dikirim oleh host tujuan
Jawab :
Category Type CodeNon-
Destination Host
RouterDestination
Host
Error
Destination Unreachable
0 V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V
Source Quench 0 V V
Time Exceeded0 V1 V
Parameter Problem 0 V VRedirection 0 V
Query
Echo Request 0 V V V
Echo Reply 0 V V VTimestamp Request 0 VTimestamp Reply 0 V
8. Dapatkan kita menghitung sending time, receiving time atau round trip time
memiliki nilai negatif ? kenapa atau kenapa tidak ? Berikan contoh
Jawab :
Waktu pengiriman yang dihitung bisa negatif jika waktu station’s clock berjalan
cepat dibadingkan station's clock penerima lebih dari waktu transmisi antara
keduanya. Dalam hal ini, perhitungan nya adalah sending time = receive
timestamp-original timestamp hasil nya didalam angka negatif. Waktu penerimaan
dapat negatif jika waktu station’s clock yang berjalan sebelum waktu station’s clock
permintaan lebih dari waktu transmisi. Maka perhitungannya receiving time = time
packet is returned – transmit timestamp hasil dalam angka negatif. Round trip
time tidak akan pernah memiliki nilai negatif karena perhitungannya adalah round
trip time = sending time + receiving time. termasuk perbedaan antara 2 jam dua
kali: sekali sebagai perbedaan positif dan sekali sebagai selisih negatif, sehingga
membatalkan kesalahan dalam perhitungan. Waktu round trip akan selalu menjadi
angka positif yang benar milidetik diambil untuk perjalanan satu putaran lengkap.
9. Kenapa isn’t one-way time untuk sebuah packet tidak hanya round-trip time dibagi
dua?
Jawab : One way time tidaklah round trip dibagi 2 karena packet yang di request
mungkin dilewati oleh route yang berbeda dengan packet response. Pada masalah
ini, waktu transmisi pada satu arah mungkin berbeda dengan waktu transmisi pada
arah lainnya.
10. Berapa ukuran minimum dari paket ICMP? Berapa ukuran maksimum dari paket
ICMP?
Jawab : Ukuran minimum dari paket ICMP adalah 8 byte (router solicitation packet). Ukuran terbesar dari paket ICMP adalah paket iklan router dengan sampai 255 daftar. Ukuran maksimum 255 listings 8 bytes/listing + 8 bytes for the ICMP header = 2048 bytes
11. Berapa ukuran minimum size dari paket IP yang dibawa sebuah paket ICMP? berapa
ukuran maksimum?
Jawab : Ukuran minimum IP Paket yang dibawa paket ICMP akan dibawa 28 byte (a
header IP 20 byte + 8 byte router solicitation packet). Ukuran maksimum akan 2068
byte (a header IP 20 byte + 2048 byte router advirstment packet).
12. Berapa ukuran minimum dari Ethernet frame yang dibawa IP packet yang pada
gilirannya membawa sebuah paket ICMP? Berapa ukuran maksimum?
Jawab : Ukuran minimum akan menjadi 64 byte jika kita tidak mempertimbangkan
pembukaan dan bidang SFD, yang ditambahkan pada physical layer. Ukuran
maksimum akan 1516 bytes, jika tidak mempertimbangkan pembukaan dan bidang
SFD. Meskipun ukuran maksimum paket ICMP bisa jauh lebih dari 1500 byte (untuk
router adverstment packet), Ethernet hanya dapat membawa 1500 byte saja.
13. Bagaimana kita bisa menentukan apakah sebuah paket IP membawa sebuah paket
ICMP?
Jawab : Nilai dari field protokol IP dari sebuah paket yang dibawa paket ICMP adalah 1.
14. Hitung checksum untuk paket ICMP berikut:
Jenis: Echo Request Identifier: 123 Urutan Nomor: 25 Pesan: Hello
Jawab :
8 0 0
123 25
H e l l
o
Checksum nya adalah : 1101001110011001.8 dan 0 00001000000000000 0000000000000000123 000000000111101125 0000000000011001H dan e 0100100001100101l dan l 0110110001101100o dan pad 0110111100000000Jumlah 0010110001100110Checksum 1101001110011001
15. Router A menerima sebuah paket IP dengan alamat IP sumber 130.45.3.3 dan IP alamat tujuan 201.23.4.6. Router tidak dapat menemukan alamat IP tujuan dalam tabel routing. Isi kolom (sebanyak yang Anda bisa) untuk pesan ICMP yang dikirim.
Jawab : 3 7 Destination
unreachable
0
4 IP Header dari
paket asli130.45.3.3
201.23.4.68 Bytes pertama dari muatan dari paket asli
16. TCP menerima segmen dengan port tujuan alamat 234. cek TCP dan tidak dapat
menemukan port terbuka untuk tujuan ini. Isi pada kolom untuk pesan ICMP
dikirim.
3 3 Destination unreac0
hable4 IP Header
dari paket asli
6
8 Bytes pertama dari muatan dari paket asli
17. Sebuah pesan ICMP sampai dengan header (dalam heksadesimal): 03 0310 20
00 00 00 00 Apa jenis pesan? Apa kode? Apa tujuan pesan?
Jawab : Jenis dalam pesan ini adalah 3, yang artinya adalah pesan destination
unreachable. Kode dalam pesan ini adalah 3, yang berarti bahwa port target tidak
bisa diakses. Tujuan dari pesan ini adalah untuk menginformasikan pengirim bahwa
port tujuan tidak tersedia pada host tujuan saat ini.
18. Pesan ICMP telah sampai dengan header (dalam heksadesimal): 05 00 11 12 11
0B 03 02 Apa jenis pesannya? Berapa kodenya? Apa tujuan dari pesan? Berapa
nilai 4 byte terakhir? Apa yang ditandakan oleh byte terakhir?
Jawab : Jenis dalam pesan ini adalah 5, yang artinya adalah pesan redirection. Kode
dalam pesan ini adalah 0, yang berarti bahwa pesan adalah pengalihan untuk rute
jaringan tertentu. Nilai 4 byte terakhir adalah 17.11.3.2, yang merupakan alamat IP
dari router lain pada jaringan. Tujuan dari pesan ini adalah untuk menginformasikan
kepada pengirim bahwa data yang dikirim ke tujuan awalnya harus dikirim ke router
dengan alamat IP 17.11.3.2.
19. Sebuah komputer mengirimkan permintaan timestamp. Jika jam
menunjukkan pukul 05:20:30 (Universal Time), tunjukkan entri untuk pesan.
Jawab :
13 0 Checksum
Identifier Sequence Number
19,230,000
0
0
20. Ulangi latihan 19 untuk jam 3:40:30 P.M. (Universal Time).
Jawab :
13 0 Checksum
Identifier Sequence Number
56,340,000
0
0
21. Sebuah komputer menerima permintaan timestamp dari komputer lain di
14:34:20 Nilai timestamp asli 52.453.000. Jika jam pengirim adalah 5 ms
lambat, berapa waktu one-way?
Jawab :
2:34:20 PM = 52,460,000 ms
52,460,000 ms - 52,453,000 ms = 7000 ms
7000 ms + 5 ms = 7005 milliseconds
22. Sebuah komputer mengirimkan permintaan timestamp ke komputer lain.
Komputer menerima timestamps yang balasan pada pukul 03:46:07
Nilaioriginal timestamps, receive timestamp, dan transmit timestamp masing-
masing 13.560.000, 13.562.000, dan 13564300,. Berapa waktu pengiriman?
Berapa waktu penerimaan? Berapa waktu round-trip? Berapa perbedaan
waktu antara jam pengirim dan penerima?
Waktu pengiriman = 13,562,000 – 13,560,000 = 2,000 milliseconds
Waktu penerimaan = 13,567,000 – 13,564,300 = 2,700 milliseconds
Waktu Round trip = 2,000 + 2,700 = 4,700 milliseconds
Perbedaan Jam = 13,562,000 – [13,560,000 + (4,700 / 2))] = – 350 milliseconds
Artinya jam pengiriman adalah 350 milidetik sebelum jam penerima. Ini
mengasumsikan bahwa waktu transmisi satu cara adalah salah satu setengah dari
putaran waktu transmisi trip.