IPv4

IPv4, RFC 791 'de tanımlanmıştır (Eylül 1981). Bir önceki versiyonu olan RFC 760 'ın (Ocak 1980) yerini almıştır.IPv4 paket anahtarlamalı bağlantı katman (internet layer) ağları üzerinde kullanım için bir bağlantısız protokoldür. En iyi çabayla dağıtım (best effort delivery) modeli üzerinde çalışır. Bilgi bütünlüğü içeren bu yönleri bir üst katman taşıma protokolü tarafından adreslenirler. (Örn.: TCP)IPv4 adresleri 32 bittir. 32 bit ile en fazla 4,294,967,296 (232) IPv4 adreslemesi yapmak mümkündür. Bazı IPv4 adresleri; özel ağlar (private network) (~18 milyon adres ) ya da çok yöne yayın (multicast) adresleri (~270 milyon adres ) gibi özel amaçlarla ayrılmıştır. Bu, genel internet üzerinde yönlendirme için muhtemelen ayrılacak olan adres sayısını azaltır. Ağ adresleme mimarisinin sınıflı ağ (classful network) dizaynı aracılığıyla yeniden düzenlenmesine, sınıfsız alanlar arası yönlendirme (Classless Inter Domain Routing) ve ağ adres çevirisinin (NAT) kaçınılmaz tüketimi büyük oranda ertelemesine rağmen adresler artarak son kullanıcılara verildikçe bir IPv4 adres eksikliği ortaya çıkmaktadır.IPv4 uzayındaki adres sınırı, yeni yeni kullanılmaya başlayan fakat bu konuda uzun dönemli tek çözüm olan IPv6'nın gelişimini teşvik etmektedir.IPv4 adresleri, genellikle noktalarla ayrılan ve onluklar şeklinde ifade edilen, 4 oktetli notasyonda yazılırlar.Bir IPv4 adresi iki kısımdan oluşur: Ağ adresi ve host adresi. Host adresine (İngilizce: rest field) de denmekteydi. Başlangıçta kullanılan bu yapıda en fazla 256 adet ağ adresi tanımlanabilmekteydi. Daha sonraları bu ağ adresleme modeli yetersiz kaldı.Bu yetersizliği aşmak için, 1981 yılında most-significant address octet'leri ağ adresleri sınıfları oluşturmak amacıyla yeniden tanımlandı. Bu metod zaman içerisinde Classful networking olarak isimlendirildi. Bu sistemde 5 adet sınıf tanımlandı: A sınıfı, B sınıfı, C sınıfı, D sınıfı ve E sınıfı. A, B ve C sınıflarındaki ağ adresleri farklı uzunluklarına sahiptirler.D sınıfı adresler multicast adreslemesi için ayrılırken ve E sınıfı adresler gelecekteki bazı uygulamaları için ayrılmıştır.Mevcut Classful adreslerin Subnet'lere bölünmesi 1985 yılında RFC 950 ile başlamıştır. Bu adres bölünmesi, oldukça esnek bir yöntem olan 'değişken uzunluklu alt ağ maskeleme' (variable-length subnet mask (VLSM)) ile RFC 1109 içinde tanımlanmıştır.1993’te yayınlanan IETF standardı RFC 1517 temel alınarak bu kategoriler sistemi resmi olarak sınıfsız alanlar arası yönlendirme (CIDR)’nin yerini aldı ve aksine sınıflandırma temelli düzene sınıflı adreslendirme (classful) adı verildi. CIDR herhangi bir adres yüzeyinin yeniden parçalara ayrılmasına izin vermesi için tasarlanmıştı. Böylece tüm kullanıcılar için daha küçük ya da daha büyük adres blokları tahsis edilebilirdi. CIDR tarafından yaratılan hiyerarşik yapı  IANA ve RIRs tarafından idare edilmektedir. Her bir RIR, IP adresi görevleriyle, hakkında bilgi sağlayan alenen incelenebilir bir WHOIS veri tabanı tutar.IP uzaylarının alt ağlara bölünmesi işlemine alt ağlandırma (subnetting) diyoruz. Alt ağlara bölme işleminin bize sağladıklarını;1. Ağ performansını ve hızını artırır. Yönlendiricilerin kullanıldığı ortamlarda yoğun ağ trafiği mevcuttur ve yönlendiriciler yayın alanı yaratmaktadır. Yayın alanı (broadcast domain), ağda bir ağın üyesi olan istemcilerin yönlendiriciye ulaşmadan diğer istemci cihazlarla veri iletişiminde bulunabildiği yapıdır. Yayın alanı sayısı arttıkça o alan içerisindeki ağ trafiği, tek bir yayın alanına sahip yapıya göre azalacaktır.3. Ağın yönetimini kolaylaştırır. İzole edilmiş ağlarda problemlerin tespit edilmesi daha kolay ve anlaşılır olmaktadır.Bir ağı alt ağlara bölerken sıklıkla kullanacağımız iki formül vardır. Birincisi alt ağda yer alacak host sayısı, ikincisi ise kaç adet alt ağ olacağını bulmamıza yarar:Alt ağların sayısını bildiğim için “2^m >= alt ağ sayısı” formülünü kullanacağım. 2^m >= 2  ifadesinde m değeri için 1 vermek yeterlidir. 1 değeri yeni ağların yeni alt ağ maskesini hesaplarken kullanılacaktır. Bu host bitlerinden 1 bitin kullanılacağı anlamına gelmektedir. Host biti alt ağ maskesindeki 0'lar ile gösterilen alandir. Ağ biti ise 1'ler ile gösterilen alandır.Yeni durumda host bitlerinin sayısı 7 oldu. Bu durumda her ağda kullanılacak IP sayısı ise 2^7-2= 126 olacaktır. Burada sayıyı 2 eksiltmemizin sebebi bir tane IP'nin alt ağ kimliği için, bir tanesinin de yayın adresi için kullanılacağıdır. Alt ağ kimliği ve yayın adresleri bu amaçlarla özel olarak ayrılmış adresler olduğundan bu adresleri bir hosta vermek mümkün değildir. Peki alt ağ kimliği ve yayın adresi nasıl bulacağız? Alt ağlandırma alt ağ kimliği ve yayın adresini bulmak için alt ağ kimliği, ilk IP, son IP, yayın adresi sıralamasını kullanınız.Ilk networkun Subnet ID’ si ile ikinci networkun Subnet ID’ si arasındaki fark 2^n kadardır. Bu bilgiler doğrultusunda rahatlıkla Subnet ID ve Broadcast adresi bulabilirsiniz.VLSM, Aralık 1995'te RFC 1878 ile yayımlanmıştır. Değişken uzunluklu alt ağ maskesi, ([[Sınıfsız alanlar arası yönlendirme1993 yılında adres sınıfından bağımsız yönlendirme (CIDR) () tanıtıldı. CIDR üst ağ oluşturma (İngilizce: Supernetting  )yı gerçekleştirmek için kullanılır. Üst ağ oluşturma yön kümeleme (İngilizce: Route Aggregation  ) ye olanak sağlar. CIDR, CIDR notasyonu olarak da bilinen önek notasyonunu tanıttı. Önek/CIDR notasyonu sınıfsız IP adreslemenin 3 şeklinde kullanılıyor: Alt ağ oluşturma, VLSM/farklı boyutların alt ağları, CIDR / Üst ağ oluşturma.IP adres sınıflarının orijinal sistemi CIDR ile yer değiştirdi ve sınıf-tabanlı şema karşılaştırma amacıyla sınıflı (classful) olarak adlandırıldı. CIDR'ın en temel avantajı; herhangi bir adres alanının, daha küçük ya da daha büyük adres blokları kullanıcılara ayrılabilmesi amacıyla yeniden bölümlendirilmesine izin vermesidir.CIDR tarafından oluşturulan, IANA (Internet Assigned Numbers Authority  ) ve RIRs (Regional Internet registry ) tarafından denetlenen hiyerarşik yapı, internet adreslerinin dünya çapında uygulamasını yönetir. Her RIR, IP adresi uygulamaları hakkında bilgi sunan genel araştırılabilen WHOIS  veritabanını muhafaza eder. Bu veritabanlarından gelen bilgi IP adreslerini coğrafik olarak konumlandırmaya çabalayan çok sayıda araçta merkezi bir rol oynar.IPv4'de yer alan adreslerin üç bloğu özel ağlarda (Private networks) için kullanılmak üzere ayrılmıştır. Bu IP adres blokları özel ağların dışında yönlendirilmezler. Özel ağ IP adreslerine sahip olan bilgisayarlar ancak ağ adresi dönüştürme (NAT) yapılarak internete erişim sağlayabilirler.RFC 5735 169.254.0.0/16 adres bloğunu yerel bağlantı adreslemede özel kullanım için tanımlar. Bu adresler yalnızca hostun bağlı olduğu noktadan noktaya bağlantı ve yerel ağ segmenti gibi linklerde geçerlidir. Bu adresler yönlendirilebilir değildir ve özel adresler gibi internette dolaşan hedef ya da kaynak paketler olamazlar. Yerel bağlantı adresleri, bir host bir IP adresini DHCPserverından ya da diğer içsel yapılandırma methodlarından alamadığında yerel olarak adres oto yapılandırılması için kullanılır.Adres boğu ayrıldığında, adres oto yapılandırılmasının mekanizmaları için herhangi bir standart oluşmaz. Microsoft Otomatik Özel IP Adresleme - APIPA adında bir uygulama oluşturarak bu boşluğu doldurmuştur. Microsoft'un pazarlama gücüne göre APIPA milyonlarca makineye yayıldı ve dolayısıyla endüstride De facto standardı haline geldi. Pek çok yıl sonra IETF,IPv4 yerel bağlantı adreslerinin dinamik yapılandırılması olarak anılan RFC 3927 fonksiyonellik için resmi bir standart tanımladı.127.0.0.0–127.255.255.255 (127.0.0.0/8 CIDR notasyonunda) adres bloğu [localhost] iletişimi için ayrılmıştır. Bu blok içerisindeki adresler host bilgisayarı dışında asla dışarı çıkmamalıdır ve bu adrese gönderilen paketler aynı sanal ağ aygıtında gelen paketler olarak çevrilirler (geri döngü veya loopback olarak bilinir).0 veya 255 oktetiyle biten adreslerin hiçbir zaman hostlara atanamadıkları yaygın bir yanlış anlaşılmadır. Bu sadece en azından 24 bitlik alt ağ maskeli ağları, eski sınıflı adresleme şemasındaki C sınıfı ağlar ve /24'den /32'ye maskeli ağlar içeren CIDR için doğrudur.Sınıflı adreslemede (CIDR'ın ortaya çıkmasıyla yürürlükte olmayan) sadece üç tane muhtemel alt ağ maskesi vardır: A, B ve C sınıfı. Örneğin 192.168.5.0/255.255.255.0 (veya 192.168.5.0/24) alt ağında 192.168.5.0 tanımlayıcısı bütün alt ağı temsil eder ve dolayısıyla aynı anda o alt ağdaki bireysel bir aygıtı temsil edemez.IP paketleri başlık kısmı ve veri kısmı olmak üzere iki kısımdan oluşur. IP paketlerinde, bazı veri bağlantısı katmanı protokollerinde olduğu gibi veri sağlama sayısı veya başka herhangi bir altlık içermez. Genellikle veri bağlantısı katmanı tarafından IP paketlerinin sarmalandığı paketlerin döngüsel artıklık denetimi altlıkları tarafından birçok hata tespit edilir. Ayrıca uçtan uca TCP katmanı sağlama toplamı birçok diğer hatayı tespit etmektedir.IPv4 paket başlığı 14 alandan oluşur. Bunlardan 13 tanesinin doldurulması zorunludur, (tabloda kırmızı arka plan ile gösterilen) 14. alan ise isteğe bağlıdır seçenekler alanı olarak adlandırılır. Başlıktaki alanlar yüksek basamaklı bayt başta olacak şekilde sıralanır ve diyagram ve tartışmalarda da yüksek basamaklı bitler önce yazılır. En yüksek basamaklı bit 0 numaralı olandır. Dolayısıyla sürüm alanı ilk baytın dört en yüksek basamaklı bitinde bulunur demek daha doğru bir tanımdır.IP paket başlıklarındaki ilk alan dört bit uzunluğundaki sürüm alanıdır. IPv4 için bu alana konacak değer 4'tür. (IPv4 adındaki v4 versiyon 4'ü temsil eder)4 bit uzunluğundaki bu ikinci alan başlıkta bulunan 32 bitlik (word) sayısıdır. Yani bu alandaki değer başlığın kaç adet 32 bitten oluşabileceğini göstermektedir. Başlıkta uzunluğu değişebilen tek alan seçenekler alanı olduğundan başlığın uzunluğunu bu alana belirler. Uzunluğun 32 bitin katı olmaması durumunda en yakın katına yuvarlanacak şekilde doldurma bitleri eklenir. Bu alanın alabileceği en düşük değer 5'tir (RFC 791). Bu da 5×32 = 160 bit = 20 bayta karşılık gelir. Bu alan 4 bitlik uzunlukta olduğundan gelebilecek en büyük değer 15'tir (yani 15×32 bit = 480 bits = 60 bayt).Aslında ilk olarak Hizmet Türü (ToS veya Type of Service) alanı olarak tanımlanmıştır. Ancak RFC 2474'ten itibaren Sınıflandırılmış Hizmetler (DiffServ veya Differentiated Services) alanı olarak tanımlanmıştır. Gitgide gerçek zamanlı veri akışı gerektiren ve dolayısıyla DSCP alanını kullanan yeni teknolojiler kullanıma girmektedir. Etkileşimli ses verisi takasını sağlayan Voice over IP (VoIP) buna bir örnek olarak gösterilebilir.RFC 3168 ile tanımlanan bu alan, paketleri düşürmeden uçtan uca ağ tıkanıklığı bildiriminin yapılmasını sağlar. İsteğe bağlı olarak kullanılan ECN yalnızca iki üç noktanın da bu özelliği desteklemesi ve kullanmak istemesi durumunda uygulanabilir. Yalnızca üzerinde olunan ağ tarafından desteklenmesi durumunda etkilidir.Paketteki başlık ve verinin birlikte toplam uzunluğunu belirten bu 16 bitlik alanın alabileceği en küçük değer 20 (20 bayt başlık + 0 bayt veri), en büyük değer ise 65.535 bayttır (16 bitlik bir sayının alabileceği en büyük değer). IP paketlerinin mümkün olan en büyük uzunluğu 65.535 olsa da bu paketleri çerçeve adı verilen iletim birimlerine sarmalayıp taşıyan alt katman protokollerinin taşıyabileceği maksimum çerçeve uzunluğu değişkenlik göstermektedir. Standartlara göre tüm hostlar 576 bayta kadar olan tüm veri bloklarını kabul edebilmelidir. Günümüzde birçok host çok daha büyük paketleri taşıyabilmektedir. Ancak bazen bazı alt ağlar maksimum paket büyüklüğü üzerine kısıtlama koymaktadır. Bu durumda bu sınırı aşan veri bloklarının parçalara ayrılarak taşınması gerekmektedir. Bu işleme parçalandırma (fragmentation) denmektedir. Desteklenen maksimum paket büyüklüğünün 576 bayttan az olamayacağı standartla sabitlendiği için 576 bayta kadar olan tüm paketlerin parçalandırılmaya gerek kalmadan taşınabileceği kesindir. IPv4 protokolünde parçalandırma işlemi hostlarda veya yönlendiricilerde gerçekleştirilebilir.Tanımlama alanı olarak adlandırılan bu alan parçalandırılmış paketlerin hangi IP paketine ait olduğunu anlamak için her pakete eklenen ve aynı paketin parçaları olan paketlerde aynı olan sayının bulunduğu alandır. Bazı deneysel çalışmalar tanımlama alanının başka amaçlar için de kullanılmasını önermiştir. Örneğin bu alanın kaynak adresi alanında sahte bilgi içeren veri bloklarının takip edilmesini kolaylaştırma amacıyla kullanılabileceği önerisi yapılmış, ancak RFC 6864 tarafından bu tür kullanımlar yasaklanmıştır.Üç bitlik bu alan paket parçalarının kontrol edilmesi ve tanımlanabilmesi amacıyla kullanılmaktadır. Yüksek basamaktan düşüğe doğru sıralı olmak üzere bayrak bitleri su şekildedir:Eğer DF bayrağı ayarlanmışsa ama paketin aktarımı esnasında yönlendirilebilmesi için parçalandırılması gerekiyorsa, paket düşürülür ve hata iletisi gönderilir. Bu ayar parçalandırma işlemleriyle ilgilenecek miktarda kaynağı bulunmayan bir hosta paket gönderirken kullanılabilir. Bir diğer kullanım alanı da paketin aktarım yolunun desteklediği maksimum paket boyutunu ölçmektir. Bu ölçme IP yazılımı tarafından kendiliğinden veya ping veya traceroute gibi bazı ağ tanılama araçlarıyla kullanıcı tarafından gerçekleştirilebilir.MF biti, kendisinden sonra gelecek başka parçaların olduğu paketlerde 1 olarak, son paketlerde ise 0 olarak işaretlidir. Parçalandırılmamış paketler de kendilerinin ilk ve son parçası olarak düşünülebileceğinden bu paketlerde MF biti 0'dır. Parçalandırılmış paketlerin de son parçaları hariç tüm parçalarında bu bit 1 olarak ayarlıdır. MF biti 0 olan bir paketin tek başına bir paket mi yoksa bir paketin parçası mı olduğu Parçanın Başlangıç Konumu alanından anlaşılır. Zira o alan tek parçadan oluşan paketlerde 0 olacaktır.Orijinal paketin başlangıcına göre parçanın bağıl konumunu belirten bu alandaki 13 bit uzunluğunda olan sayının birimi sekiz bayttır (64 bit). Yani parçanın, orijinal paketin kaçıncı 64 bitlik kısmından itibaren olan kısmını içerdiğini belirtir. Bu alanla en fazla (213 – 1) × 8 = 65.528 bayt uzunluğunda konum belirtilebilir ancak bu başlık da dahil edildiğinde maksimum IP paket boyutunu (65.535) aşmaktadır (65.528 + 20 = 65.548 bayt).Sekiz bitten oluşan yaşam süresi paketlerin internet üzerinde döngülere takılarak sonsuza kadar kalmasını engeller. Teorik olarak bu alan paketin kalan ömrünü saniye türünden belirtir ve yol üzerinde paketin üzerinden geçtiği her düğüm yaşam süresi alanından paketin işlenmesi sırasında geçen süreyi düşer. 1 saniyeden kısa geçen süreler 1 saniyeye yuvarlanır. Günümüzde paketler yönlendiriciler üzerinden 1 saniyeden çok daha küçük sürelerde aktarıldığından uygulamada bu alan atlama sayısının ölçüsü olarak kullanılır. Yönlendiriciler paketi teslim aldığında TTL alanını bir azaltır. Sayı sıfır olduğunda paket düşer ve göndericiye ICMP Zaman Aşımı (ICMP Time Exceeded) iletisi gönderilir.Traceroute yazılımı da paketin kaynaktan hedefe giderken üzerinden geçtiği yönlendiricilerin listesini oluştururken yönlendiricilerden gelen ICMP Zaman Aşımı iletilerini kullanır.Bu alan IP paketlerinin veri kısmında hangi protokolün kullanıldığını tanımlar. İnternet Tahsisli Sayılar ve İsimler Kurumuna bağlı çalışan İnternet Tahsisli Sayılar Otoritesi, RFC 790 ile belirenmiş IP protokol numaralarının bir listesini tutmakktadır.16 bit uzunluğundaki sağlama toplamı alanı başlıkta hata denetimi yapmak amacıyla kullanılır. Yönlendiriciye bir paket vardığında, yönlendirici paket başlığının sağlama toplamını hesaplar ve başlıkta yazan sağlamayla karşılaştırır. Eğer değerler bağdaşmıyorsa yönlendirici paketi yok sayar. Veri kısmındaki hatalarla veriyi sarmalayan protokol ilgilenmelidir. Hem UDP'nin hem TCP'nin sağlama toplamı vardır.Yönlendiriciye bir paket vardığında yönlendirici paketin TTL alanını bir azaltır. Sonra da yeni sağlama toplamını hesaplar. RFC 1071 sağlama toplamının hesaplanmasını şöyle tarif etmektedir:Sağlama toplamı alanı, başlıktaki 16 bitlik tüm sözcüklerin bire tümleyen toplamının bire tümleyeninin alınmasıyla elde edilen 16 bitlik sayıdır. Sağlama toplamı hesaplanırken başlıktaki sağlama toplamı bölümü sıfır olarak alınır.Örneğin on altılık gösterimi şu şekilde olan başlık verisini ele alalım: 4500003044224000800600008c7c19acae241e2b. Bu veri toplamda 20 bayt uzunluğundaki bir IP paketi başlığıdır. Standart ikinin tümleyeni artimetiğini uygulayan bir makinede:1. Adım) 4500 + 0030 + 4422 + 4000 + 8006 + 0000 + 8c7c + 19ac + ae24 + 1e2b = 0002BBCF (32-bit toplam)2. Adım) 0002 + BBCF = BBD1 = 1011101111010001 (16 bitlik bire tümleyen toplamı, bu toplam 32 bitlik ikiye tümleyen toplamını 16 biti aşan basamakların başa taşınıp toplama eklenmesiyle hesaplanır. Toplamın basamak sayısı 16 biti aştıkça bu işlem tekrarlanır)Başlığın sağlama toplamını doğrulamak için aynı algoritma kullanılabilir – doğru bir sağlama toplamı bulunduran bir başlığın sağlama toplamı hesaplandığında tamamen 0'dan oluşan bir sözcük elde edilir:Bu alan paketi gönderenin IPv4 adresidir. Ulaştırma esnasında bu adresin ağ adresi çözümleme aygıtı tarafından değiştirilebileceğine dikkat edin.Bu alan paketin alıcısının IPv4 adresidir. Kaynak adresi gibi bu adres de bir ağ adresi çözümleme aygıtı tarafından ulaştırma esnasında değiştirilebilir.Seçenekler alanı çok sık kullanılmaz. IHL başlğında bulunan 32 bitlik sözcüklerin uzunluğunun tüm seçenekleri kapsayacak kadar büyük olması gerektiğine dikkat ediniz, toplam uzunluğun 32 bitin katı olmaması durumunda başlık gereken miktarda dolgu verisiyle doldurulmalıdır. Seçenekler listesi EOL (Seçenekler Listesi Bitimi, 0x00) seçeneği ile bitirilebilir ancak bu yalnızca seçeneklerin sonu başka türlü başlığın sonuyla denk gelmiyorsa gereklidir. Başlığa konulabilecek seçeneklerin listesi şöyledir:Not: Eğer başlık uzunluğu 5'ten büyükse, yani 6'dan 15'e kadarsa seçenekler alanı kullanılmış demektir dolayısıyla dikkate alınır.Not: Kopyalandı, Seçenek Sınıfı ve Seçenek Numarasından bazen "Seçenek Türü" adlı sekiz bitlik tek bir alan olarak söz edilir.Loose Source and Record Route (LSRR) ve Strict Source and Record Route (SSRR) seçeneklerinin kullanılması güvelik kaygıları nedeniyle önerilmemektedir. Bu seçenekleri barındıran paketleri birçok yönlendirici engellemektedir.