IPv4 başlık (header) yapısı aşağıdaki şekilde gösterilmiştir:
Bir IPv4 başlığında bulunan bölümler şunlardır:
- Sürüm (Version) (4-bit):
Internet protokolünün ne olduğunu gösterir. IPv4 başlığı için bu 4’tür.
- Başlık Boyutu (Header Length) (4-bit):
Başlık bilgisinin boyutunu gösterir.
- Servis Türü (Type of Service - TOS) (8-bit):
Paketin önceliği, gecikmesi, güvenilirliği ve iletim hızı konularında bilgi veren bölümdür.
- Toplam Uzunluk (Total Length) (16-bit):
IP paketinin toplam büyüklüğünü gösterir. En fazla 65536 byte olabilir.
- Kimlik Bilgisi (Identification) (16-bit):
Parçalanma yapılan verinin, hangi IPv4 paketlerinden oluştuğunu gösterir. Bunu aynı datayı oluşturan bütün paketlere aynı kimlik bilgisi değerini vererek yapan kısımdır.
- Bayraklar (Flags) (3-bit):
- İlk biti ayrılmıştır ve 0 olmak zorundadır.
- İkinci bitte ise parçalama bayrağı (don’t fragmentation) bulunur. Bu değer 1 olduğunda, eğer paketin yönlendiriciden iletilmesi için parçalanması gerekiyorsa paket yok olur.
- Üçüncü bitte ise daha fazla parça (more fragment) bayrağı bulunur. Bu değerin 0 olduğu paket, son pakettir veya parçalamaya uğramamıştır.
- Parça Numarası (Fragment Offset) (13-bit):
IPv4 paketlerinin hangi sırada birleşerek datayı oluşturacağını gösteren kısımdır.
- Yaşam Süresi (Time to Live) (8-bit):
Bu alan, paket her "router"dan geçtiğinde 1 azalır. Eğer TTL değeri 0 olursa paket yok olur.
- Protokol (Protocol) (8-bit):
Üst katman protokolünü (TCP, UDP veya ICMP) gösterir. Protokol numaraları IANA’ya gore belirlenmiştir.
- Başlık Kontrolü (Header Checksum) (16-bit):
Pakette hata olup olmadığı bu bölümde kontrol edilir. Yol boyunca bütün yönlendiricilerde bu bölüm doğrulanarak tekrar hesaplanır.
- Kaynak IPv4 Adresi (Source IPv4 Address) (32-bit):
Kaynağın IPv4 adresini gösterir.
- Hedef IPv4 Adresi (Destination IPv4 Address) (32-bit):
Alıcının IPv4 adresini gösterir.
- Seçenekler (Options):
Güvenlik, kaynak, yönlendirme, yolun kaydedilmesi ve zaman gibi bilgilerin tutulduğu alanlardır. Gerektiği zaman kullanılır. Boyutu değişkendir.
- Dolgu (Padding):
Paketin 32 bitlik sınırda sonlanması için kullanılan bölümdür. Başlık bilgisi büyüklüğünü değiştirir.
- Yük (Payload):
İletilen bilgiyi gösterir.