Published on

IPv4 Header Yapısı

Authors
  • avatar
    Name
    Alperen Önal
    Twitter
IPv4 Header Format and Diagram - PyNet Labs

Version

4-bitlik bu alan, paketin hangi IP versiyonunu kullandığını belirtir. IPv4 ve IPv6 olmak üzere 2 adet IP versiyonu vardır.

IHL(Internet Header Length)

IPv4 Header’ının uzunluğunu belirtmek için 4 bitlik bir alandır.. Tüm IPv4 paketleri aynı uzunluğa sahip olmayabilirler. Header uzunluğu, içine ne kadar seçenek eklendiğine bağlı olarak değişir. IHL alanı, header’in uzunluğunu 4-byte’lık(32bit) gruplar halinde ifade eder. IPv4 Header’ı 20 ile 60 bayt arasında değer almaktadır.

Eğer header uzunluğu 20 olduğunu varsayalım. IHL alanı, bu durumda 20 byte’ı 4-byte’lık gruplar halinde sayar (20 ÷ 4 = 5). IHL alanındaki değer 5 olur.

IPv4 başlığının en büyük uzunluğu 60 byte’tır. Bu durumda IHL alanı, 60 byte’ı 4-byte’lık gruplar halinde sayar (60 ÷ 4 = 15). IHL alanındaki değer 15 olur.

IHL başlığı 40 byte uzunluğundaysa, bu 4-byte’lık 10 grup eder. 40 ÷ 4 = 10 IHL alanı 10 olur.

IPv4 başlığı 60 byte uzunluğundaysa, bu 4-byte’lık 15 grup eder. 60 ÷ 4 = 15 IHL alanı 15 olur.

ToS(Type of Service) :

8-bitlik bu alan, bir IPv4 paketinin hizmet kalitesini ve önceliğini belirten bilgileri içerir. Bu alan, ağdaki trafik yönetimi ve hizmet kalitesi(QoS) ayarlamaları için kullanılmaktadır.

Total Length

16-bitlik bu alan, paketin toplam uzunluğunu (header uzunluğu + data) belirtir. Router’lar header uzunluğunu Total Length’den çıkartarak data’nın uzunluğunu hesaplayabilirler. 65,535 byte’a kadar değer alabilir.

Identifaction

Bu alan 16-bit uzunluğundadır.

Bir IPv4 paketi, ağda gönderilirken belirli bir MTU (Maximum Transmission Unit) boyutunu aşarsa, paket parçalara bölünür. Bu parçalara bölünmüş paketlerin her biri aynı tanımlayıcı değerini taşır, böylece alıcı cihaz parçaları orijinal paketle eşleştirebilir ve yeniden birleştirebilir.

Her parçalanmış paket, orijinal paketi tanımlamak için kullanılan bu tanımlayıcı değeri taşır. Parçaları birleştiren alıcı, parçaların hepsinin aynı tanımlayıcı değerini taşıdığına bakarak, orijinal paketi doğru bir şekilde yeniden oluşturabilir.

Tanımlayıcı değeri, herhangi bir rastgele değer olabilir. Parçalanan bir paketin tanımlayıcısı, kaynak cihaz tarafından rastgele seçilir ve parçaların orijinal paketle ilişkilendirilmesi için alıcı cihaz tarafından kullanılır.

MTU bir ağda tek bir veri paketinin yaşınabileceği maksimum veri miktarını belirtir. Ağdaki MTU değeri, ağda kullanılan teknolojiye göre değişir. Örneğin, Ethernet ağlarında 1500-byte olan MTU boyutu kullanılırken, PPP(Point-to-Point Protocol) bağlantılarında bu değer daha düşük olabilir.

Flags

Bu alan, parçalama işlemleri için bilgi içerir.

3-bit’den oluşmaktadır. DF(Don’t Fragment), MF(More Fragments) ve RF(Reserved) flag’larını içermektedir.

DF(ikinci bit/ortadaki)MF(ilk bit/en sağdaki)RF(son bit/en soldaki)
Parçalanmasın flag’ıDaha fazla parçala flag’ıBu bit gelecekteki kullanımlar için ayırtılmıştır.
Eğer bu bit ayarlanırsa (1), paketin parçalanmaması istenir. Yani, bu paketin ağda iletilirken parçalanmasına izin verilmez.Eğer bu bit sıfıra ayarlanırsa (0), bu parçanın son parça olduğunu ve başka parça gelmeyeceğini belirtir.Şu anda kullanılmamaktadır ve genellikle 0 değerini almalıdır.

Fragment Offset

Parçalanmış paketlerin orijinal paketin içindeki konumunu belirtir. İlk paketin ofseti 0’dır.

Uzunluğu 13-bittir.

TTL

Bu alanın uzunluğu 8-bittir. Time to Live yani bir paketin bir ağ üzerindeki yaşam süresini belirtir.

Bu alan, hedefe teslim edilemeyen paketlerin silinmesi için kullanılır.

TTL değeri, paket bir router’dan geçtiği zaman ilgili TTL değeri ilgili router tarafından bir miktar azaltılır. Eğer hedefe ulaşamadan bu TTL değeri 0’a eşit olursa paket drop olur ve paketin kaynağına ICMP zaman aşımı mesajı gönderilir.

Protocol/Upper Protocol

8-bit uzunluğuna sahiptir.

Bu alan, hedef düğümdeki paketin data’sını alacak üst katman protokolünü belirtir.

Bu alan, TCP için değeri 6, UDP değeri için 17’dir.

Header Checksum

16-bit uzunluğa sahiptir.

Header alanının doğruluğunu kontrol etmek için kullanılan bir toplama işlemidir. Bu alan yalnızca Header’ın checksum işlemini yapar. Data, kendi checksum’unu içerdiğinden, data bu alana dahil edilmez. Paketi alan ve ileten router’lar checksum hesaplayıp doğrular ve başarısız olması halinde paketi atarlar(drop). Router paketi iletmeden önce TTL değerini 1 azalttığından, header checksum değeri kaynak ve hedef düğümler arasındaki her atlamada yeniden hesaplanır.

Source Address

Bu alan, 32-bittir.

Bu alan, paketi gönderen cihazın IPv4 adresini saklar.

Destination Adress

Bu alan, 32-bittir.

Bu alan, paketin hedefindeki cihazın IPv4 adresini saklar.

Options

IPv4 başlık yapısının bir parçası olan “Options” (Seçenekler) alanı, genellikle isteğe bağlı bilgileri taşıyan bir alandır. Bu alanda, paketin belirli özelliklerini veya işlem gereksinimlerini belirtmek için kullanılabilen farklı seçenekler bulunabilir. Ancak, Options alanı genellikle kullanılmaz ve çoğu durumda boştur.

Yukarıda Wireshark ile bir örnek hazırladım. “blog.alperenonal.com” adresine 1.1.1.1(Cloudflare) üzerinden DNS sorgusu işlemi gerçekleştirdim ve gelen cevaptaki IPv4 paketini inceledim. Umarım faydalı olur. Öğrendiğim kadarıyla Checksum değerinin sıklıkla “Unverified” olması Wireshark’da doğal bir şeymiş. Bu yüzden ona takılmayın, bu paketde yüksek ihtimalle bir bozulma yok.

KAYNAKÇA :

Kurose, James F., & Ross, Keith W. (2017). “Computer Networking: A Top-Down Approach” (7th ed.). Boston: Pearson Education.

www.advancedinternettechnologies.wordpress.com/ipv4-header/

www.pynetlabs.com/introduction-to-ipv4-header-format/

www.erg.abdn.ac.uk/Users/gorry/course/inet-pages/ip-packet.html

www.networklessons.com/cisco/ccna-routing-switching-icnd1-100-105/ipv4-packet-header