IP Header — Memahami Struktur dan Fungsi IP Header Secara Lengkap

Dalam komunikasi data di jaringan, setiap informasi yang dikirim akan dikemas dalam bentuk packet.
Nah, di bagian paling depan dari packet itu ada bagian penting bernama IP Header — komponen yang berisi identitas, petunjuk arah, dan instruksi agar paket data bisa sampai ke tujuan dengan benar.

Tanpa IP Header, router dan perangkat jaringan lainnya nggak akan tahu ke mana paket harus dikirim, dari mana asalnya, dan bagaimana cara menanganinya.

🧩 Struktur dan Penjelasan Lengkap Tiap Bagian IP Header:

1. Version (4 bit)

Bagian ini menunjukkan versi protokol IP yang digunakan.
Ada dua versi utama yang dikenal:

IPv4 (Internet Protocol version 4) – versi yang paling umum dan masih banyak digunakan sampai sekarang.

IPv6 (Internet Protocol version 6) – versi terbaru yang menggantikan IPv4 karena keterbatasan jumlah alamat.

📘 Contoh:
Kalau nilai Version = 4 → berarti paket menggunakan IPv4 (192.168.1.1 dan 10.0.0.254).
Kalau nilai Version = 6 → berarti menggunakan IPv6 (2001:0db8:85a3:0000:0000:8a2e:0370:7334 dan 2001:db8:85a3::8a2e:370:7334).

2. Internet Header Length (IHL) – 4 bit

Bagian ini menentukan panjang header IP dalam satuan 32-bit word (4 byte per unit).
Nilai minimum adalah 5, artinya panjang header = 5 × 4 = 20 byte.
Kalau ada options, panjangnya bisa lebih dari itu.

📘 Analogi:
IHL itu seperti “petunjuk ukuran label” di paket pengiriman. Router harus tahu seberapa panjang bagian identitasnya sebelum membaca isi datanya.

3. Type of Service (ToS) – 8 bit

Fungsinya untuk mengatur prioritas dan kualitas layanan (QoS – Quality of Service) dari sebuah paket data.
Sekarang dikenal sebagai Differentiated Services (DiffServ).

ToS memungkinkan perangkat jaringan membedakan jenis lalu lintas, misalnya:

Voice call/video conference → butuh latency rendah, jadi diprioritaskan.

Download file besar → bisa dikirim belakangan.

📘 Intinya:
ToS membantu router menentukan jalur tercepat untuk data yang butuh respon cepat, dan jalur biasa untuk data non-kritis.

4. Total Length – 16 bit

Menunjukkan ukuran total dari seluruh paket (header + data) dalam satuan byte.
Nilainya bisa sampai 65.535 byte (64 KB).

📘 Fungsi utamanya:

Membantu router tahu seberapa besar paket tersebut.

Jika terlalu besar untuk melewati jaringan tertentu (yang punya batas MTU), maka paket harus dipecah menjadi beberapa bagian (fragmentasi).

5. Identification (16 bit), Flags (3 bit), dan Fragment Offset (13 bit)

Tiga bagian ini bekerja bersama-sama untuk menangani fragmentasi — proses memecah paket besar menjadi potongan kecil agar bisa lewat di jaringan dengan batas ukuran tertentu.

– Identification

Memberi nomor unik pada setiap paket.
Kalau paket dipecah, semua fragmennya punya nomor identifikasi yang sama agar bisa digabung kembali di tujuan.

– Flags

Berisi tiga bit:

Bit pertama (reserved) – tidak digunakan.

Bit kedua (DF / Don’t Fragment) – jika nilainya 1, paket tidak boleh dipecah.

Bit ketiga (MF / More Fragment) – bernilai 1 kalau masih ada fragmen berikutnya.

– Fragment Offset

Menunjukkan posisi fragmen tersebut di dalam paket asli, dalam satuan 8 byte.

📘 Contoh:
Paket 60 KB dikirim melalui jaringan dengan MTU 1500 byte → otomatis dipecah menjadi beberapa fragmen, dan tiap fragmen punya offset sendiri agar bisa disusun ulang di penerima.

6. Time To Live (TTL) – 8 bit

TTL adalah batas waktu (atau jumlah hop) yang boleh dilalui oleh paket sebelum dibuang.
Setiap kali paket melewati router, nilai TTL akan berkurang satu.
Jika TTL mencapai 0 sebelum sampai ke tujuan, paket dibuang dan pengirim diberi tahu lewat pesan ICMP “Time Exceeded”.

📘 Tujuan:
Mencegah paket berputar-putar terus dalam jaringan karena kesalahan routing.

📘 Contoh:
TTL awal = 64 → setelah melewati 10 router, nilainya jadi 54.

7. Protocol – 8 bit

Menentukan protokol lapisan atas (Transport Layer) yang digunakan oleh data di dalam paket.
Beberapa nilai umum:

1 → ICMP (Internet Control Message Protocol)

6 → TCP (Transmission Control Protocol)

17 → UDP (User Datagram Protocol)

📘 Artinya:
Router tahu ke mana harus meneruskan paket — apakah ke port TCP, UDP, atau ke protokol lain.

8. Header Checksum – 16 bit

Digunakan untuk mendeteksi kesalahan (error) di bagian header.
Checksum dihitung oleh pengirim dan diverifikasi oleh penerima.
Kalau hasil perhitungan tidak cocok, berarti header rusak dan paket akan dibuang.

📘 Pentingnya:
Menjamin keandalan transmisi data antar jaringan yang tidak selalu stabil.

9. Source Address – 32 bit

Berisi alamat IP sumber, yaitu perangkat yang mengirim paket tersebut.
Router dan penerima akan menggunakan informasi ini untuk membalas atau mengirim respons ke alamat yang benar.

📘 Contoh:
192.168.10.5 → artinya paket berasal dari host dengan IP tersebut.

10. Destination Address – 32 bit

Berisi alamat IP tujuan, yaitu ke mana paket ini harus dikirim.
Router akan membaca alamat ini untuk menentukan rute terbaik menuju tujuan.

📘 Contoh:
8.8.8.8 → berarti tujuan paket adalah server DNS milik Google.

11. Options (Opsional)

Bagian ini jarang digunakan karena bisa memperlambat proses routing.
Biasanya berisi informasi tambahan seperti:

Security options

Timestamp

Record route (menyimpan daftar router yang dilalui)

📘 Note:
Jika bagian ini digunakan, maka panjang header akan lebih dari 20 byte.

⚙️ Fungsi Utama IP Header

Menentukan arah dan tujuan pengiriman data.

Mengatur fragmentasi jika paket melebihi ukuran maksimum jaringan.

Menjamin validitas header melalui mekanisme checksum.

Membedakan jenis layanan agar data penting diprioritaskan.

Menghindari looping berkat mekanisme TTL.

🧭 Kesimpulan

IP Header adalah struktur kontrol yang membuat komunikasi antar perangkat di jaringan bisa berjalan dengan rapi dan efisien.
Setiap bit di dalamnya punya makna penting: dari sekadar penanda versi, sampai pengatur hidup-mati paket di jaringan.

Dengan memahami struktur dan fungsinya, kamu bisa:

Menganalisis paket dengan Wireshark lebih detail,

Memahami proses routing,

Dan menyelesaikan troubleshooting jaringan dengan presisi tinggi.