Gambar IP Header
IP Header adalah “label pengiriman” yang menempel di bagian paling depan setiap paket data ketika perangkat berkomunikasi di jaringan. Kalau payload adalah isi paketnya, maka IP Header adalah identitas sekaligus instruksi perjalanan: dari mana paket berasal, ke mana ia harus pergi, bagaimana prioritasnya, dan aturan apa yang harus dipatuhi sepanjang jalur routing.
Bayangkan kamu mengirim paket barang. Kurir butuh alamat pengirim, alamat penerima, berat paket, serta catatan khusus seperti “jangan dibanting”. Di jaringan, router juga butuh informasi yang setara. Karena itulah IP Header menjadi komponen kunci di layer Network. Tanpa header ini, router tidak bisa menentukan rute, tidak tahu ukuran paket terhadap batas MTU, dan tidak punya mekanisme untuk mencegah paket tersesat berputar-putar.
Pada IPv4, struktur IP Header minimal berukuran 20 byte. Ukuran ini bisa bertambah jika ada Options (meski dalam praktik modern jarang dipakai karena menambah overhead). Field pertama adalah Version. Nilai 4 menandakan IPv4, sedangkan nilai 6 menandakan IPv6. Informasi versi ini penting karena format header IPv4 dan IPv6 berbeda.
Lalu ada IHL (Internet Header Length) yang memberi tahu panjang header dalam satuan 32-bit word. Nilai minimum 5 berarti 20 byte. Router perlu mengetahui panjang header ini agar bisa menentukan di mana header berakhir dan data dimulai.
Type of Service (ToS) kini erat dengan konsep DiffServ. Sederhananya, ini membantu jaringan memberi perlakuan berbeda pada jenis trafik berbeda. Voice call atau video conference biasanya butuh latensi rendah, sementara download file besar bisa ditoleransi jika sedikit lebih lambat. Dengan informasi ini, perangkat jaringan dapat menerapkan kebijakan QoS yang lebih cerdas.
Total Length menunjukkan ukuran keseluruhan paket (header + data) dalam byte. Informasi ini krusial saat paket melewati jaringan dengan batas MTU tertentu. Jika paket terlalu besar, mekanisme fragmentasi bisa terjadi. Di sinilah trio Identification, Flags, dan Fragment Offset bekerja bersama. Identification menjadi “nomor seri” paket; semua fragmen dari paket yang sama membawa ID yang sama agar bisa disusun ulang di sisi penerima. Flags memuat DF (Don’t Fragment) untuk melarang pemecahan paket dan MF (More Fragments) untuk menandai bahwa masih ada fragmen lanjutan. Fragment Offset menunjukkan posisi fragmen dalam paket asli, sehingga penerima dapat menyusun ulang urutannya dengan tepat.
Agar paket tidak “hidup selamanya” akibat kesalahan routing, IPv4 menyertakan TTL (Time To Live). Setiap kali melewati router, nilai TTL berkurang satu. Jika mencapai nol sebelum tujuan, paket dibuang dan pengirim mendapat pesan ICMP Time Exceeded. Mekanisme ini juga menjelaskan cara kerja traceroute, yang memanfaatkan penurunan TTL untuk memetakan hop demi hop.
Field Protocol memberi tahu jenis data lapisan atas yang dibawa paket, misalnya TCP (6), UDP (17), atau ICMP (1). Dengan begitu, perangkat tujuan tahu harus menyerahkan payload ke proses mana. Lalu ada Header Checksum yang memastikan integritas header. Karena TTL berubah di tiap hop, router biasanya menghitung ulang checksum ini saat meneruskan paket.
Bagian yang paling mudah dikenali adalah Source Address dan Destination Address, masing-masing 32 bit. Router terutama menggunakan alamat tujuan untuk memilih rute terbaik, sementara alamat sumber dipakai untuk kebutuhan balasan dan identifikasi asal trafik.
Kesimpulannya, IP Header adalah “sistem navigasi” yang membuat pengiriman data lintas jaringan menjadi tertib dan dapat diandalkan. Memahami setiap field di dalamnya akan membantu kamu membaca capture Wireshark dengan lebih tajam, memahami isu MTU/fragmentasi, mengerti mengapa traceroute bekerja, serta melakukan troubleshooting routing dengan lebih presisi.
| Field | Panjang | Fungsi inti | Catatan teknis |
| Version | 4 bit | Menandai versi IP | 4 = IPv4 |
| IHL | 4 bit | Panjang header | Minimum 5 (20 byte). Bertambah jika ada options |
| DSCP/ECN (eks-ToS) | 8 bit | QoS & congestion signaling | Umumnya dipakai untuk DiffServ (DSCP) & ECN |
| Total Length | 16 bit | Ukuran paket total | Header + data. Dipakai untuk validasi & fragmentasi |
| Identification | 16 bit | ID paket untuk fragmentasi | Semua fragmen dari paket yang sama punya ID yang sama |
| Flags | 3 bit | Kontrol fragmentasi | DF melarang fragmentasi; MF menandai ada fragmen lanjutan |
| Fragment Offset | 13 bit | Posisi fragmen | Dalam satuan 8 byte |
| TTL | 8 bit | Batas hop | Berkurang tiap router; 0 → drop + ICMP Time Exceeded |
| Protocol | 8 bit | Penanda L4 | 1 ICMP, 6 TCP, 17 UDP, dll |
| Header Checksum | 16 bit | Integritas header | Dihitung ulang oleh router karena TTL berubah |
| Source Address | 32 bit | Alamat pengirim | Dipakai untuk reply & identifikasi origin |
| Destination Address | 32 bit | Alamat tujuan | Field paling menentukan keputusan routing |
| Options + Padding | variabel | Fitur tambahan | Jarang dipakai; menambah overhead |
