Pascasarjana Diary

Komunikasi dan Jaringan Komputer · Pertemuan 05

Wireshark Lab — IP v8.0

Kurose & Ross IP datagram lab via traceroute to gaia.cs.umass.edu (probe sizes 56, 2000, 3500 bytes). Capture on Wi‑Fi en0, 26 Sep 2026 · Wireshark 4.6.8 · macOS UDP probes (equivalent to Windows ICMP Echo in the lab PDF).

Lab PDF

1. Capturing packets from traceroute

  1. Start Wireshark capture on interface en0 (Wi‑Fi). File: lab-ip-traceroute.pcapng.
  2. From a terminal (while capture runs): traceroute -q 1 -m 15 gaia.cs.umass.edu 56
  3. traceroute -q 1 -m 15 gaia.cs.umass.edu 2000
  4. traceroute -q 1 -m 15 gaia.cs.umass.edu 3500
  5. Stop capture.
ifconfig en0 and default gateway
Figure 1. Host IPv4 172.16.3.196/22, default gateway 172.16.0.1 on en0.
Wireshark packet list UDP and ICMP TTL exceeded
Figure 2. Outbound UDP probes and ICMP Time-to-live exceeded replies (filter udp || icmp.type==11).

Question 1: What is the IP address of your computer?

First UDP probe, IPv4 header expanded
Gambar 3. Frame 658, probe UDP pertama (TTL 1), header Internet Protocol dibuka.

Alamat IP komputer ini 172.16.3.196. Pada frame 658, datagram UDP pertama menuju 128.119.245.12 (gaia.cs.umass.edu) mencantumkan Source Address 172.16.3.196. Alamat itu sama dengan IPv4 antarmuka en0 pada Gambar 1, jadi datagram berangkat dari komputer yang menjalankan traceroute.

Question 2: Within the IP packet header, what is the value in the upper layer protocol field?

Nilainya 17 (UDP). Field Protocol pada header IP frame 658 tertulis Protocol: UDP (17). Angka itu adalah nomor protokol di atas IP yang mengisi payload. Traceroute di macOS mengirim probe UDP, maka field ini 17. Pada langkah lab Windows yang memakai ICMP Echo, field yang sama bernilai 1.

Question 3: How many bytes are in the IP header? How many bytes are in the payload of the IP datagram? Explain how you determined the number of payload bytes.

Header IP berisi 20 byte. Payload IP berisi 36 byte. Header Length pada frame 658 bernilai 5, dan satuan field itu 4 byte, jadi 5 × 4 = 20. Total Length datagram adalah 56 byte. Payload = Total Length dikurangi panjang header, yaitu 56 dikurangi 20 = 36. Field Length UDP pada frame yang sama juga 36, sesuai sisa itu: 8 byte header UDP (port sumber 52043, port tujuan 33435) ditambah 28 byte data probe.

Question 4: Has this IP datagram been fragmented? Explain how you determined whether or not the datagram has been fragmented.

Tidak. Pada frame 658, Flags = 0x0: bit More fragments tidak diset, Don't fragment tidak diset, dan Fragment Offset = 0. Penerima mengenali pecahan dari MF = 1 atau offset bukan nol. Di sini keduanya menunjukkan datagram utuh. Total Length 56 byte juga di bawah MTU Ethernet 1500 byte, jadi host tidak memecahnya.

Question 5: Which fields in the IP datagram always change from one datagram to the next within this series of ICMP messages sent by your computer?

Pada 15 probe keluar berukuran 56 byte, dari frame 658 (TTL 1) sampai frame 2099 (TTL 15), field header IP yang selalu berubah adalah Time to Live, Identification, dan Header checksum.

  • Time to Live naik 1, 2, 3, sampai 15. Traceroute memang menaikkan TTL satu per probe.
  • Identification naik satu: 0xcb4c, 0xcb4d, sampai 0xcb5a.
  • Header checksum ikut berubah, misalnya 0xc910 pada TTL 1 dan 0xbb02 pada TTL 15, karena checksum dihitung ulang setiap header berubah.

Di dalam payload, port tujuan UDP juga naik dari 33435 sampai 33449. Traceroute macOS mengganti port itu pada tiap probe. Version, panjang header, Total Length, Flags, Protocol, serta alamat sumber dan tujuan tidak berubah pada seri ini.

Question 6: Which fields stay constant? Which of the fields must stay constant? Which fields must change? Why?

Yang tetap pada ke-15 datagram itu: Version 4, Header Length 20 byte, DSCP 0, Total Length 56, Flags 0x0, Fragment Offset 0, Protocol 17, sumber 172.16.3.196, tujuan 128.119.245.12. Port sumber UDP 52043 juga tetap.

Yang harus tetap adalah Version, panjang header, Protocol, alamat sumber, dan alamat tujuan. Traceroute membandingkan balasan hop untuk satu pengirim, satu tujuan, dan satu jenis probe. Kalau alamat atau protokol berubah, ICMP Time Exceeded tidak lagi merujuk ke seri yang sama. Total Length tetap 56 karena ukuran probe pada run ini memang 56 byte.

Yang harus berubah adalah TTL, Identification, dan Header checksum. TTL naik satu supaya router satu hop lebih jauh yang mengembalikan ICMP Time Exceeded. Identification harus unik per datagram supaya fragmen, kalau ada, dapat disusun kembali; stack host menaikkannya satu setiap datagram dikirim. Header checksum menutup seluruh header, jadi begitu TTL atau Identification berubah, checksum wajib dihitung ulang. Checksum yang tidak mengikuti header membuat router membuang datagram.

Question 7: Describe the pattern you see in the values in the Identification field of the IP datagram.

Identification naik 1 pada setiap probe berurutan. Frame TTL 1 memakai 0xcb4c (52044) dan frame TTL 15 memakai 0xcb5a (52058). Selisihnya 14, sesuai 15 datagram. Polanya adalah penghitung Identification host: satu datagram baru, satu nilai baru.

Question 8: What is the value in the Identification field and the TTL field?

ICMP time exceeded from 172.16.0.1
Gambar 4. Frame 660, ICMP Time-to-live exceeded dari gateway 172.16.0.1 (header IPv4 luar).

Pada header IP luar balasan ICMP dari router hop pertama 172.16.0.1 (frame 660): Identification = 0x9b14 dan TTL = 64. Dua nilai itu dipasang router saat menyusun datagram ICMP. Header IP probe yang dikutip di dalam pesan masih menyimpan Identification 0xcb4c dan TTL 1, yaitu datagram yang kedaluwarsa di hop itu.

Question 9: Do these values remain unchanged for all of the ICMP TTL-exceeded replies sent to your computer by the nearest (first hop) router? Why?

TTL luar tetap 64 pada ketiga balasan hop pertama: frame 660, 2204, dan 4406, semuanya dari 172.16.0.1. Gateway mengawali datagram ICMP dengan TTL 64, dan komputer ini satu hop dari gateway, jadi nilai itu sampai utuh.

Identification luar berubah: 0x9b14, 0x9b15, lalu 0x9b16. Tiap balasan ICMP adalah datagram IP baru, dan router menaikkan Identification satu per datagram. Salinan probe di dalam pesan juga berbeda (0xcb4c, 0xcbfb, 0xcd17) karena tiap run traceroute mengirim datagram yang lain.

Fragmentation

Sort the packet listing by time again. The 2000-byte and 3500-byte traceroute runs below are the macOS equivalent of changing Packet Size in pingplotter.

Question 10: Has the first datagram sent after the packet size was changed to 2000 been fragmented across more than one IP datagram?

Ya. Probe pertama setelah traceroute 2000 byte (setara Packet Size 2000) terpecah menjadi dua datagram IP: frame 2202 dan 2203, Identification sama 0xcbfb. Ukuran asli 2000 byte melebihi MTU Ethernet 1500 byte, jadi IP memecahnya sebelum dikirim. Dua frame itu satu datagram karena Identification-nya sama, offset-nya berurutan (0 lalu 185), dan hanya frame kedua yang mematikan More fragments.

Question 11: What information in the IP header indicates that the datagram has been fragmented? What information in the IP header indicates whether this is the first fragment versus a later fragment? How long is this IP datagram?

First IP fragment of 2000-byte probe
Gambar 5. Frame 2202, fragmen pertama (MF diset, offset 0).

Frame 2202 adalah fragmen pertama. Datagram sudah terpecah karena flag More fragments diset (Flags = 0x01) sementara Total Length fragmen ini 1500, lebih kecil daripada datagram asli 2000 byte. Ini fragmen pertama karena Fragment Offset = 0: potongan ini mulai di byte pertama payload. Fragmen berikutnya punya offset bukan nol. Panjang datagram IP fragmen ini 1500 byte (20 byte header + 1480 byte payload), yaitu batas MTU Ethernet.

Question 12: What information in the IP header indicates that this is not the first datagram fragment? Are there more fragments? How can you tell?

Second IP fragment
Gambar 6. Frame 2203, fragmen kedua, Identification sama.

Frame 2203 bukan fragmen pertama karena Fragment Offset = 185. Satuan offset adalah 8 byte, jadi 185 × 8 = 1480 byte dari awal payload, tepat sesudah payload fragmen pertama. Tidak ada fragmen lagi sesudahnya: flag More fragments clear (Flags = 0x00), yang menandai fragmen terakhir. Identification 0xcbfb sama dengan frame 2202. Total Length fragmen ini 520 byte (20 byte header + 500 byte sisa). 1480 + 500 + header asli 20 = 2000 byte.

Question 13: What fields change in the IP header between the first and second fragment?

Antara frame 2202 dan 2203, yang berubah: Fragment Offset (0 menjadi 185), More fragments (set menjadi clear), Total Length (1500 menjadi 520), dan Header checksum (0xa2bd menjadi 0xc5d8). Checksum berubah karena ia dihitung dari header, dan offset, flag, serta panjang sudah berbeda.

Yang sama: Identification 0xcbfb, TTL 1, Protocol 17, Header Length 20, sumber 172.16.3.196, tujuan 128.119.245.12. Identification yang sama inilah yang mengikat kedua fragmen ke satu datagram.

Question 14: How many fragments were created from the original datagram?

Three fragments of 3500-byte probe
Gambar 7. Frame 4403–4405, Identification 0xcd17, tiga fragmen.

Tiga fragmen. Datagram asli 3500 byte (TTL 1, Identification 0xcd17) pecah menjadi frame 4403, 4404, dan 4405: Total Length 1500, 1500, dan 540; offset 0, 185, dan 370; More fragments diset pada dua frame pertama dan clear pada frame terakhir. Payload-nya 1480 + 1480 + 520 = 3480 byte. Ditambah header IP 20 byte pada datagram utuh, hasilnya 3500 byte. Offset terakhir 370 × 8 = 2960, sama dengan 1480 + 1480. MTU 1500 hanya memuat 1480 byte payload per fragmen (kelipatan 8), jadi 3500 byte butuh tiga fragmen.

Question 15: What fields change in the IP header among the fragments?

Pada ketiga fragmen 0xcd17, yang berubah adalah Fragment Offset (0, 185, 370), More fragments (set, set, clear), Total Length (1500, 1500, 540), dan Header checksum (0xa1a1, 0xa0e8, 0xc3ef). Offset menandai posisi payload, flag More fragments menandai apakah masih ada pecahan sesudahnya, dan Total Length menandai ukuran pecahan itu. Checksum wajib mengikuti ketiga perubahan tersebut.

Identification, TTL (1), Protocol (17), Header Length (20), alamat sumber, dan alamat tujuan tetap, karena ketiganya masih pecahan datagram yang sama.