IPv4
İnternet Protokol Versiyon 4 (IPv4), İnternet Protokolü gelişiminde dördüncü gözden geçirilmiş ve geniş bir alana yayılan ilk versiyondur. IPv6 ile birlikte, İnternetin standart-tabanlı çalışma metotlarının çekirdeği olmuştur. IPv4 hala şu ana kadar en geniş alana yayılmış olan İnternet Katman Protokolüdür. 2010 itibarı ile IPv6'nın yayılması hala başlangıç aşamasındadır.
İnternet iletişim kuralları dizisi | ||
Katman | İletişim kuralları | |
7. | Uygulama katmanı | HTTP, DNS, SMTP, FTP, TFTP, UUCP, NNTP, SSL, SSH, IRC, SNMP, SIP, RTP, Telnet, ... |
6. | Sunum katmanı | ISO 8822, ISO 8823, ISO 8824, ITU-T T.73, ITU-T X.409, ... |
5. | Oturum katmanı | NFS, SMB, ISO 8326, ISO 8327, ITU-T T.6299, ... |
4. | Ulaşım katmanı | TCP, UDP, SCTP, DCCP, ... |
3. | Ağ katmanı | IP, IPv4, IPv6, ICMP, ARP, İnternet Grup Yönetim Protokolü, IPX,... |
2. | Veri bağlantısı katmanı | Ethernet, HDLC, Wi-Fi, Token ring, FDDI, PPP, L2TP... |
1. | Donanım katmanı | ISDN, RS-232, EIA-422, RS-449, EIA-485, ... |
IPv4 RFC 791'de tanımlanmıştır (Eylül 1981). Bir önceki tanımı ise RFC 760'dır (Ocak 1980).
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 (upper layer) taşıma protokolü tarafından adreslenirler. (örn : TCP)
Adresleme
IPv4, 32 bitlik adresleri kullanır. 32 bitlik adresler, adres uzayını 4,294,967,296 (232) tane muhtemel tek adreslerle sınırlarlar. Bununla birlikte, bazıları ö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.
Adres Temsilleri
IPv4 adresleri, genellikle periyotlara ayrılan ve onluklar şeklinde ifade edilen 4 oktetli adreslerden oluşan onluk tabanlı notasyonda yazılırlar.
Bu, aşağıdaki tabloda dönüştürmede kullanılan ana formattır:
Gösterim | Değer | Noktalı onluk gösterime çevirim |
---|---|---|
Dot-decimal notation | 192.0.2.235 | N/A |
Noktalı Onaltılık | 0xC0.0x00.0x02.0xEB | Her oktet bireysel olarak onaltılık şekle dönüştürülür |
Noktalı Sekizlik | 0300.0000.0002.0353 | Her oktet bireysel olarak sekizlik şekle dönüştürülür |
Onaltılık | 0xC00002EB | Dotted-hexadecimalden oktetlerin birleştirilmesi |
Onluk | 3221226219 | Onluk düzende belirtilmiş 32 bit sayı |
Sekizlik | 030000001353 | Sekizlik düzende belirtilmiş 32 bit sayı |
Bu formatların çoğu bütün tarayıcılarda çalışmalıdır. Bununla birlikte, nokta tabanlı formatta her oktet farklı temellerden herhangi birisine sahip olabilir. Örneğin, 192.0x00.0002.235 yukarıdaki adreslerin geçerli bir karşılığıdır.
Aldığı son hal aslında bir notasyon değildir. Çünkü nadiren bir ASCII karakter dizisi notasyonunda yazılır. Bu form, ikili tabanda on altılık notasyonun ikili bir formudur. Bu fark sadece "0xCF8E83EB" ile 0xCF8E83EB'nin temsili bir farklılığıdır. Bu form bir yazılım programındaki hedef ve kaynak alanlara atama için kullanılır.
Sınıflı IP Adresleme
Orijinal olarak bir IP adresi iki kısımdan oluşur: adresin en anlamlı oktetinde temsil edilen ağ tanımlayıcısı ve adresin geri kalanını kullanan host tanımlayıcısı. İkincisine bu nedenle kalan alan (İngilizce: rest field) da denir. Bu (ikinci alan) maksimum 256 ağın oluşumuna olanak sağladı. O zamanlar bu yetersiz görüldü.
Bu sınırı aşmak için, adreslerin yüksek sıralı oktetleri sonradan sınıflı ağ (İngilizce: Classful Network ) olarak bilinen bir sistemde bir küme ağ sınıfı oluşturmak için yeniden tanımlandı. Sistem 5 sınıf tanımladı: Sınıf A,B,C,D ve E. A, B ve C sınıfları yeni ağ tanımlanması için farklı bit uzunluklarına sahiptiler. Bir adresin kalanı, öncesinde hostları adreslemek için her ağ sınıfının farklı bir kapasiteye sahip olduğu anlamına gelen bir ağ içerisinde hostu tanımlamak için kullanıldı. D sınıfı, çok yöne yayın adreslemesi için ayrıldı ve Sınıf E gelecek uygulamaları için saklandı.
1985 yılı civarları başlangıç kabul edilerek, metotların IP ağlarına yeniden bölünmesi planlanmıştır. Esnekliğini kanıtlamış bu metotlardan biri de değişken uzunluklu alt ağ maskeleme (variable-length subnet mask (VLSM)) kullanımıdı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.
Alt Ağ Oluşturma (Subnetting)
IP uzaylarının alt sınıflara ayrılması işlemine alt ağlandırma (subnetting) diyoruz. Alt ağlara bölme işleminin bize sağladıklarını
1. Ağ trafiğini azaltı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.
2. Ağ performansını optimize eder.
3. Ağın yönetimini kolaylaştırır. İzole edilmiş ağlarda problemlerin tespit edilmesi daha kolay ve anlaşılır olmaktadır.
şeklinde sıralayabiliriz.
Subnetting İşlemi
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:
2^n -2 >= bir alt ağdaki host sayısı 2^m >= alt ağ sayısı
Örnek: 192.168.0.0 255.255.255.0 ağını 2 alt ağa ayıralım.
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.
Örnekte verilen maske bilgisi 255.255.255.0
11111111.11111111.11111111.00000000: 255.255.255.0 (Şu anki subnet mask) 11111111.11111111.11111111.10000000: 255.255.255.128 (Yeni subnet mask)
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.
Subnet ID+1 = İlk IP
Son IP + 1 = Broadcast Adresi
Subnet ID -1 = Broadcast Adresi
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.
Son durumda 2 alt networkum aşağıdaki gibi olacaktır:
Subnet ID | İlk IP Adresi | Son IP Adresi | Broadcast Adresi |
---|---|---|---|
192.168.0.0 | 192.168.0.1 | 192.168.0.126 | 192.168.0.127 |
192.168.0.128 | 192.168.0.129 | 192.168.0.254 | 192.168.0.255 |
VLSM
1987'de tanıtıldı. Değişken uzunluklu alt ağ maskesi (İngilizce:Variable Length Subnet Mask )farklı boyutlardaki alt ağları gerçekleştirmek için kullanılır.
CIDR ve Üst ağ oluşturma (Supernetting)
1993 yılında adres sınıfından bağımsız yönlendirme (CIDR) (İngilizce : Classless Inter-Domain Routing )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.
Özel Kullanım Adresleri
CIDR adres bloğu | Tanım | Referans |
---|---|---|
0.0.0.0/8 | Mevcut Ağ (yalnızca kaynak adres olarak geçerlidir ) | RFC 1700 |
10.0.0.0/8 | Özel ağlar | RFC 1918 |
127.0.0.0/8 | Loopback | RFC 5735 |
169.254.0.0/16 | Link-Local | RFC 3927 |
172.16.0.0/12 | Özel ağlar | RFC 1918 |
192.0.0.0/24 | Ayrılmış (IANA) | RFC 5735 |
192.0.2.0/24 | TEST-NET-1, Belgeleme ve örnek kod | RFC 5735 |
192.88.99.0/24 | IPv4 yerine IPv6 | RFC 3068 |
192.168.0.0/16 | Özel ağlar | RFC 1918 |
198.18.0.0/15 | Ağ kriter testleri | RFC 2544 |
198.51.100.0/24 | TEST-NET-2, Belgeleme ve örnekler | RFC 5737 |
203.0.113.0/24 | TEST-NET-3, Belgeleme ve örnekler | RFC 5737 |
224.0.0.0/4 | Multicasts (D sınıfı ağdan önceki) | RFC 3171 |
240.0.0.0/4 | Reserved (E sınıfı ağdan önceki) | RFC 1700 |
255.255.255.255 | Broadcast | RFC 919 |
Özel Ağlar
IPv4'de yer alan yaklaşık 4 milyar adresin üç dizisi özel ağ (Private Networks) kullanımı için ayrılmıştır. Bu diziler özel ağların dışında yönlendirilebilir değildir ve özel makineler genel ağlarla direkt iletişim kuramazlar. Ancak, ağ adres çevirisi (Network Address Translation) ile bunu yapabilirler.
Aşağıda özel ağlar için ayrılan 3 dizi adresler yer almaktadır (RFC191823 Eylül 2011 tarihinde Wayback Machine sitesinde arşivlendi.):
İsim | Adres aralığı | Adres sayısı | Sınıflı tanım | En geniş CIDR bloğu |
---|---|---|---|---|
24-bit blok | 10.0.0.0–10.255.255.255 | 16,777,216 | Tek A Sınıfı | 10.0.0.0/8 |
20-bit blok | 172.16.0.0–172.31.255.255 | 1,048,576 | 16 Sınıf B bloğunun ardışık dizisi | 172.16.0.0/12 |
16-bit blok | 192.168.0.0–192.168.255.255 | 65,536 | 256 Sınıf C blloğunun ardışık dizisi | 192.168.0.0/16 |
Sanal Özel Ağlar
Özel adreslerle adreslenen paketler bütün genel yönlendiriciler tarafından reddedilir. Dolayısıyla ,özel kolaylıkları olmayan genel internet aracılığıyla iki özel ağ arasında iletişim kurmak mümkün değildir. Bu Sanal Özel Ağlar (Virtual Private Network) (VPN) la gerçekleştirilir. VPN'ler genel ağ üzerinden tünel fonksiyonu kurarlar. Şöyle ki tünelin son noktaları özel ağ paketleri yönlendirici görevi görürler. Bu yönlendiricilerin, tünelin diğer ucundaki karşı yönlendiriciye genel ağ aracılığıyla verilebilmeleri, genel adresleme başlıklarından soyutlanmaları ve yerel olarak hedefe ulaşması için yönlendirilebilir genel ağda başlıkla birlikte özel olarak adreslenmiş paketleri oluşturur ya da bünyesinde içerir.
İsteğe bağlı olarak içerilen paket genel ağ üzerindeyken veri güvenliği için şifrelenebilir.
Yerel Bağlantı Adresleme (Link-Local Addressing)
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ı.
Localhost
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 ya da 255 ile Biten Adresler
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 (or 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.
Paket yapısı
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.[1]
Başlık
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.
Ofset | Oktet | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Oktet | Bit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
0 | 0 | Sürüm | IHL | DSCP | ECN | Toplam Uzunluk | |||||||||||||||||||||||||||
4 | 32 | Kimlik | Bayraklar | Parçanın Bağıl Konumu | |||||||||||||||||||||||||||||
8 | 64 | Time To Live (Paket Ömrü) | Protokol | Başlık Sağlama Toplamı | |||||||||||||||||||||||||||||
12 | 96 | Kaynak IP Adresi | |||||||||||||||||||||||||||||||
16 | 128 | Hedef IP Adresi | |||||||||||||||||||||||||||||||
20 | 160 | Seçenekler (IHL > 5 ise) |
- Sürüm
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)
- İnternet Başlık Uzunluğu (IHL)
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).
- Sınıflandırılmış Hizmetler Kod Noktası (DSCP)
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.
- Açık Tıkanıklık Bildirimi (Explicit Congestion Notification, ECN)
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.
- Toplam Uzunluk
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.
- Kimlik
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ış,[2] ancak RFC 6864 tarafından bu tür kullanımlar yasaklanmıştır.
- Bayraklar
Üç 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:
- bit 0: Ayrılmış; sıfır olmalıdır.[not 1]
- bit 1: Parçalandırmama işareti (DF, Don't Fragment)
- bit 2: Daha Parça Var işareti (MF, More Fragments)
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.
- Parçanın Bağıl Konumu (Fragment Offset)
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).
- Yaşam süresi (Time To Live) (TTL)
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.
- Protokol
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.
- Başlık Sağlama Toplamı
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)
- 3. Adım) ~BBD1 = 0100010000101110 = 442E (16-bitlik bire tümleyeni toplamının bire tümleyeni)
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:
- 2BBCF + 442E = 2FFFD. 2 + FFFD = FFFF. FFFF'nin bire tümleyeni = 0.
- Kaynak adresi
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.
- Hedef adresi
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
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:
Alan | Boyut (bit) | Açıklama |
---|---|---|
Kopyalandı (Copied) | 1 | Eğer seçeneklerin parçalandırılan paketlerin tüm parçalarına kopyalanması gerekiyorsa 1 olarak ayarlanır. |
Seçenek Sınıfı (Option Class) | 2 | Genel seçenek kategorisi. "kontrol" seçenekleri için 0, "hata ayıklama ve ölçümleme" için 2 kullanılır. 1 ve 3 işlevi daha sonra belirlenmek üzere ayrılmıştır. |
Seçenek Numarası (Option Number) | 5 | Seçeneğin ne olduğunu belirtir. |
Seçenek Uzunluğu (Option Length) | 8 | Tüm seçeneğin boyutunu belirtir (bu alan da dahil). Basit seçenekler için bu alan kullanılamayabilir. |
Seçenek Verisi (Option Data) | Variable | Seçeneğe özgü veriler için kullanılır. Basit seçeneklerde bu alan bulunmayabilir. |
- 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.[3]
Ayrıca bakınız
Notlar
- Nisan 1 şakası olarak RFC 3514'te "Evil bit", yani şeytani bit olarak kullanılması önerilmiştir.
Kaynakça
- RFC 1726 section 6.2
- Savage, Stefan. "Practical network support for IP traceback". Erişim tarihi: 6 Eylül 2010.
- "Cisco gayriresmî SSS sayfası". 26 Haziran 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 10 Mayıs 2012.