7. IP (INTERNET PROTOCOL)
IP’nin sorumluluğu üst katmandan gelen segmentleri birbirine bağlı ağlar
üzerinden iletmektir. IP bu segmentleri TCP veya UDP’den alır. Her bir
segment, IP tarafından bir başlık eklenerek IP datagramı haline getirilir ve
her bir IP datagramı birbirinden bağımsız varlıklar olarak varış host’una
gönderilebilir. Internet’teki tüm host’lar üzerinde IP protokol grubu çalışmak zorundadır.
IP paketleri, ağlar arası dolaşımda pek çok host’a uğrar ve her bir host’ta
aynı kurallara göre çalışan IP protokolleri ile karşılanır. 7.1 IP’nin ana özellikleri IP, ISO8473 tanımlamasına (bağlantısız ağ protokolü veya CLND) oldukça
benzerdir. Birçok ISO 8473 kavramı IP’den türetilmiştir. IP bağlantısız servise bir örnektir. İki host bilgisayarı arasında ön bir
çağrı kurulmadan trafik alışverişi yapılmasını sağlar. IP bağlantısız
olduğundan, datagramlar iki son kullanıcı istasyon arasında kaybolabilir.
Örneğin; IP router’ı bir maksimum kuyruk uzunluğunu zorlarsa, ve eğer kuyruk
uzunluğu bozulursa, tamponlar taşar. Fazla datagramlar daha sonra ağda
bertaraf edilir. Böylece, bu sorunların telafi edilmesi bir yüksek-katman
protokolünün (TCP gibi) asli görevi olur. IP, altındaki altağı son kullanıcılardan saklar. Bu açıdan IP son
kullanıcıya hayali bir ağ yaratır. Bir IP gateway’ine farklı tiplerde ağlar
bağlanabilir. Bunun bir sonucu, IP’nin kurulması oldukça kolaydır ve
bağlantısız yapısından dolayı oldukça sağlamdır. Ancak IP güvenilir olmayan,
yüksek-zorluklu (best effort), datagram-tipi bir protokol olduğundan, hiç bir
güvenilirlik mekanizması yoktur. Altındaki altağlar için hiçbir hata telafisi
sağlamaz. Hiç bir akış-kontrol mekanizması bulunmaz. Kullanıcı verisi
(datagramlar) kaybolabilir, çiftlenebilir veya hedefe sırası bozuk olarak
ulaşabilir. Bu problemlerin bir çoğu ile IP uğraşmaz. Daha sonra
anlatacağımız gibi, bu sorunların çözümü bir üst katman protokolünün (TCP)
asli görevidir. IP fragmantasyon işlemini destekler. Fragmantasyon, bir PDU’nun daha küçük
parçalara bölünmesi işlemine denir. Bu özellik oldukça kullanışlıdır çünkü
ağların çoğu aynı büyüklükte PDU’lar kullanmazlar. Örneğin, X.25 tabanlı
WAN’lar tipik olarak 128 oktet veri alanlı bir PDU (X.25’te bir paket denir)
kullanırlar. Ethernet standardı, bir PDU büyüklüğünü 1500 oktetle sınırlar.
Aksine, proNET-10 2000 oktetlik bir PDU şart koşar. Fragmantasyon
kullanılmasaydı, ağlar arasındaki birbirine uymayan PDU büyüklükleri sorununu
çözmeye çalışmakla bir router görevlendirilecekti. IP router’larda
fragmantasyon yaparak ve alıcı host’ta reassembly (yeniden-birleştirme)
yaparak bu problemi çözer. 7.2 IP ve Altağlar IP, altağların en üstünde yerleşmek üzere tasarlanmıştır ve olabildiğince
transparandır. Bu; IP, altındaki ağ veya ağların karakteristikleri ile çok az
ilgilenir demektir. Mühendisler açısından bu durum oldukça çekicidir. Çünkü
IP, altağları göreceli olarak kendisinden bağımsız tutar. Datagramlar IP içeren bir router’a geldikçe, datagramların IP adresleri
bir rotalama tablosu ile eşleştirilir. Router’daki IP, rotalama tablosundaki
girişleri baz alarak, datagramı bir sonraki ağa veya doğrudan alıcı host’a
rotalar. Tahmin edebileceğiniz gibi, transparanlık her katmanda yeniden paketleme
yapılarak başarılır. Host bilgisayarının gönderdiği veri bir IP datagramı
olarak paketlenir ve IP başlığı alıcı host bilgisayarın adresini tanımlar. IP
datagramı ve başlığı daha sonra transit ağın özel protokolüne göre tekrar
paketlenir. Örneğin transit ağ bir X.25 ağı veya Ethernet LAN’ı olabilir. Transit ağ trafiği bir IP gateway’ine gönderilince, transit ağın kontrol
bilgisi atılır. Router daha sonra datagram başlığındaki varış adresine
bakarak trafiği nereye rotalayacağına karar verir. Tipik olarak datagram daha
sonra altağ giriş protokolü himayesinde bir altağa geçer (Örnek olarak bir
LAN’daki Ethernet veya bir WAN’daki X.25). Bu protokol, datagram başlığı ve
kullanıcı verisini altağın kullanacağı başlıklar ve fragmanlara paketler. Bu
işlem her bir router’da tekrarlanır ve neticede datagram son varış yerine
ulaşır ki buradan da alıcı istasyona geçer. Bir IP router’ı kendine bağlı bir altağın giriş protokolü ile tamamen
ilgisiz değildir. IP’de sihirli bir şey yoktur; router arabirimi kendine
bağlı ağa nasıl giriş yapabileceğini bilmelidir. Netice olarak, bazı
haberleşme şekilleri (sınırlı da olsa) router ve ona bağlı altağ arasında
olmak zorundadır. Önemli nokta şudur ki IP ağların içişleri ile ilgilenmez. 7.3 IP Datagramı (n) = Alandaki
bitlerin sayısı Şekil 7-1 IP
Datagramı Şekil 7-1’de bir IP datagramı görülmektedir. Tablo 7-1’de datagramlardaki
alanların kısaltılmış birer tanımlamaları yapılmıştır: Tablo 7-1 IP PDU’su
Versiyon alanı kullanımdaki IP sürümünü tanımlar. Çoğu protokolde bu alan vardır
çünkü bazı ağ düğümlerinde protokolün son sürümleri bulunmayabilir. Başlık uzunluğu (header lenght) alanının 4 biti kullanılarak datagram
başlığının uzunluğu gösterilir. Uzunluk 32-bit kelimelerle ölçülür. Tipik
olarak, QOS (quality-of-service) opsiyonu olmayan bir başlık 20 oktet içerir.
Böylece uzunluk alanındaki değer genelde 5 olur. Servis-tipi (type-of-service (TOS)) alanı bir internetin sağladığı belirli
QOS fonksiyonlarını tanımlamak için kullanılabilir. CLNP PDU’sunda bulunan
servis alanına oldukça benzerdir. Transit gecikmesi, akış, öncelik hakkı ve
güvenilirlik bu alanda istenebilir. TOS alanı Şekil 7-2’de resmedilmiştir. Toplam 8 bit yer tutan beş girişe
sahiptir. 0,1 ve 2 bitleri bir öncelik bilgisi taşıyarak datagramın göreceli
önemini gösterirler. Değerler 0’dan 7’ye değişir. 0 set edilmesi bir rutin
önceliği gösterir. Öncelik alanı tüm sistemlerde kullanılmaz, gerçi 7 değeri
bazı uygulamalarda bir ağ kontrol datagramını göstermek üzere kullanılır.
Öncelik alanı aynı zamanda bir ağdaki akış kontrol ve tıkanıklık
mekanizmalarının kurulmasında kullanılabilir. Bu gateway ve host, düğümlerin
sıkışıklık durumlarında datagramları yok etme sırasına karar vermelerini
sağlar. Takip eden 3 bit diğer servisler için kullanılır. 3 biti gecikme bitidir.
1’e set edilince, bu TOS internet üzerinde kısa bir gecikme ister. Gecikme
durumu standartlarda tanımlanmamıştır ve satıcı servisi geliştirmelidir.
Diğer bit akış bitidir (througput). Bu 1’e set edilerek internet üzerinde
hızlı bir akış isteği yapılır. Bunun da standartlarla özel bir yolu
belirlenmemiştir. 5 biti güvenilirlik bitidir ki kullanıcıya datagramı için
yüksek bir güvenilirlik isteme olanağı tanır. 6 ve 7 bitleri şimdilik
kullanılmamaktadır. Şekil 7-2 TOS Alanı Bazı satıcılar IP’yi gerçekleştiren TOS alanını kullanmamaktadırlar.
Bununla beraber, Internetin kapasitesi arttıkça gelecekte TOS alanının
kullanımı artacaktır. Örneğin, open shortest path first (OSPF) protokolünde
kullanılır. Toplam uzunluk (total lenght) alanı IP datagramının toplam uzunluğunu
gösterir. Oktetler cinsinden ölçülür ve, başlık ve veri uzunluğunu içerir.
IP, toplam uzunluktan başlık uzunluğunu çıkararak veri alanı için ayrılmış
alanın büyüklüğünü hesap eder. Bir datagramın maksimum olası uzunluğu 65535
oktet (216)’dır. IP datagramlarına servis veren bir router’ın, kendine bağlı
ağların datagramlarına sağladığı maksimum PDU uzunluklarını desteklemesi gerekir.
Ek olarak, tüm router’lar 576 oktetlik datagramları destekleyebilmelidir. IP protokolü, başlığındaki üç alanı kullanarak fragmantasyon ve
yeniden-birleştirme işlemlerini kontrol eder. Tanımlayıcı (identifier) alanı
orijinal bir datagramdan oluşturulan tüm fragmanlarını biricik olarak
tanımlar. Tanımlayıcı alanından gelen bilgi ile kaynak adresi birlikte, alıcı
host’a gelen her bir fragmanı tanımlarlar. Bayrak alanları kullanılarak,
datagramın fragmantasyona müsait olup olmadığına karar verilir. Eğer müsaitse,
bitlerden biri set edilerek bu fragmanın datagramın son fragmanı olup
olmadığına karar verilebilir. Fragmantasyon offset alanı fragmanın orijinal
datagrama olan göreceli pozisyonunu belirten değeri içerir. Değer önce 0’dır
ve sonra router fragmantasyon yaparsa sıradaki değerler set edilir. Değer
sekiz oktet birimi ile ölçülür. Yaşama zamanı (time-to-live (TTL)) parametresi bir datagramın bir internet
üzerinde kalma süresinin ölçüsüdür. CLNP’nin hayat zamanı alanına oldukça
benzerdir. Her bir router kendisine gelen datagramın TTL alanına bakar ve
eğer değer 0 ise datagramı yok eder. Ayrıca bir router işlemden geçirdiği her
datagramının TTL alanı değerini azaltır. Doğru uygulamalarda TTL alanı
datagramın aşacağı hop sayısını belirtir. Böylece, bir datagram IP düğümünde
(bir hop) ilerleyince, alanın değeri 1 azaltılır. IP uygulamaları bu alanda
bir zaman sayıcısı kullanabilirler ve azaltma saniyede bir olur. TTL alanı yalnızca sonsuz döngüleri engellemek için kullanılmaz. Aynı
zamanda bu alan, host tarafından internetteki segmentlerin yaşama sürelerinin
kısıtlanmasında da kullanılır. Dikkat etmek gerekir ki bir host bir router
gibi davranırsa, TTL alanına router kuralları ile muamele yapmalıdır.
Satıcınızla birlikte, host’un datagramı ne zaman yok edeceğine karar vererek,
TTL değerini atayınız. İdealde TTL değeri internet başarımı gözlemlenerek
şekillendirilebilir ve değeri atanır. Ek olarak ağ yönetim bilgi protokolleri
(SNMP’de olanlar gibi) TTL değerini teşhis amaçları için set etmek
isteyebilirler. Son olarak, eğer satıcınız TTL alanı için yeniden
belirlenemeyen sabit bir değer kullanıyorsa, bu sabit değerin internetinizin
büyümesine engel olamayacağından emin olun. Protokol alanı, son varış host’unda IP üzerindeki katmanda bulunan
protokollerden hangisinin datagramı alacağını tanımlar. Ethernet çerçevesinde
bulunan tip alanı ile oldukça benzerdir. Internet standartları, çokça
kullanılan üst-katman protokollerini tanıtan bir numaralandırma sistemi
geliştirmiştir. Tablo 7-2’de bu protokollerin listesi ve çok kısa
açıklamaları verilmiştir. Tablo 7-2 IP
numaraları (Örnekler)
Header checksum kullanılarak başlıkta olabilecek bozulmalar algılanır.
Kontrol veri akışı sırasında olmaz. IP’yi eleştiren bazı kişiler kullanıcı
verisinde bir hata öngörmenin router’ın en azından alıcı host’a sorunların
oluştuğunu bildirmesini sağlayabileceğini söylemişlerdir. Aslında bu servis,
IP standardına kardeş ICMP (Internet Control Message Protocol) tarafından
sağlanmaktadır. Görüşler her ne ise, IP’nin bugünkü checksum (toplamsal-hata)
algoritması oldukça basittir. IP toplamsal-hata algoritmasının birçok oktet
için çalıştırılmasına gerek yoktur. Ancak alıcı host’ta bulunan bir yüksek
katman protokolünün (eğer alıcı host verinin doğruluğu ile ilgileniyorsa)
kullanıcı verisi üzerinde hata kontrol işlemlerini yapması gerekir. IP datagramında, iki adres taşınır. Bunlar kaynak ve varış adresleri
olarak etiketlenir ve datagram yaşadıkça bu değerler aynı kalır. Bu alanlar
5. bölümde bahsettiğimiz internet adreslerini içerirler. Opsiyonlar alanı belirli ek servisleri tanımlamada kullanılırlar.
Opsiyonlar alanı tüm datagramlarda kullanılmaz. Uygulamaların çoğu bu alanı ağ
yönetimi ve teşhisler için kullanırlar. Şekil 7-3’te opsiyonlar alanına yerleşecek bir opsiyon alanının formatı
gösterilmektedir. Tablo 7-3 şu ana kadar standartlar ile tanımlanmış
değerleri verir. Opsiyon alanının uzunluğu değişkendir çünkü bazı opsiyonların
uzunluğu değişir. Her opsiyonun 3 alanı mevcuttur. İlk alan tek bir oktetten
oluşan opsiyon kodunu içerir. Opsiyon kodunun kendisi de üç alandan oluşur.
Bunların fonksiyonları aşağıdaki gibidir: Şekil 7-3 IP
Opsiyon Alanı Flag Copy (1 bit): Diğer oktet opsiyonun uzunluğunu içerir. Üçüncü alan opsiyonun veri
değerlerini içerir. Padding (dolgu) alanı datagram başlığını 32-bit’e tamamlamak için
kullanılır. Son olarak, veri alanı kullanıcı verisini içerir. IP, veri alanı ve
başlığının toplamının 65,535 okteti geçmesine izin vermez. Tablo 7-3 Opsiyon
Kodları
7.4 Ana IP Servisleri Bu başlık altında ana IP servislerini inceleyeceğiz. Şu da var ki
satıcılar IP için farklı ürünlere sahip olabilirler ve bazı ürünler bu
bölümde anlattığımız tüm özellikleri desteklemeyebilir. 7.4.1 Internet başlık kontrol programı · Geçerli IP başlık uzunluğu Eğer datagram testleri geçemezse yok edilir. Eğer testler yapılır ve
datagram testleri geçerse, datagramın internet varış adresi incelenerek, bu
router’a mı, başka bir router’a mı ait olduğuna karar verilir. Eğer datagram
bu gateway için değilse, IP ilerletme programı modülüne atılarak rotalanır. 7.4.2 IP kaynak rotalama IP, kaynak rotalama denilen bir mekanizmayı, rotalama algoritmasının
parçası olarak kullanabilir. Kaynak rotalama bir ULP’nin (üst katman
protokolü) IP router’ına nasıl rotalama yapacağını bildirmesini sağlar. ULP,
IP modülüne bir internet adresleri listesi verme opsiyonuna sahiptir. Liste,
datagramların son varışa giderken geçecekleri ara IP düğümlerini içerir.
Listedeki son adres bir ara düğümün son varışıdır. IP bir datagramı alınca, bir sonraki ara düğümü belirlemek için kaynak
rotalama alanındaki adresleri kullanır. Şekil 7-4’te gösterildiği gibi bir
IP, diğer IP adresini öğrenmek için bir işaretçi alanı kullanır. İşaretçi ve
uzunluk alanları listenin tamamlandığını gösterirse varış IP alanı
rotalama için kullanılır. Eğer liste bitmemişse IP modülü işaretçinin
gösterdiği adresi kullanır. IP modülü sonra kaynak rotalama listesindeki değerin yerine kendi adresini
yerleştirir. Daha sonra ise işaretçiyi bir adres (4 bayt) arttırarak diğer
hop’un sıradaki adresi kullanabilmesini sağlar. Bu yaklaşım ile datagram ULP
tarafından dikte edilen rotayı izler ve rota yol boyunca kayıt edilir. Şekil 7-5’de rota kaydı ile ilgili bir örnek sağlanmıştır. İlk adımda IP,
işaretçiyi kullanarak rota verisi alanındaki sıradaki adrese kilitlenir. Bu
örnekte IP, 128.2.3.4 adresine kilitlenir ve bu adrese dayanarak bir rotalama
kararı alır. İkinci adımda, şimdiki varış adresini belirtmek üzere rota
verisi alanındaki 128.2.3.4 adresi yerine kendi adresini koyar. Üçüncü
adımda, işaretçi değerini arttırarak sıradaki IP modülünün rotadaki bir
sonraki (veya son) hop’u kararlaştırabilmesini sağlar. Şekil 7-4 Kaynak
Rotalama Şekil 7-5 Rota
Kaydı 7.4.2.1 Rotalama işlemleri IP router’ı rotalama listesine dayanarak rotalama kararları alır. Eğer
varış host’u başka bir ağda ise IP router’ı, datagramı diğer ağa nasıl
rotalayacağına karar vermelidir. Her bir gateway, son varış ağına gitmek için geçilmesi gereken diğer
gateway’lerin bilgilerini bir rotalama tablosunda tutar. Tablo her bir
ulaşılabilir ağın girişini içerir. Tablolar statik veya dinamik olabilir,
ancak dinamik tablolar daha yaygındır. IP modülü, aldığı tüm datagramlar için
bir rotalama kararı verir. IP modülü rotalama tablosunda her bir erişilebilir ağ için bir IP adresi
ve kendine komşu bir router’ın adresini saklar (buradaki router doğrudan IP
modülünün bulunduğu ağa bağlantılıdır). Komşu router varış ağı için en kısa
rotadır. Eğer bir komşu router için hiç bir adres yoksa, IP router mantığı
router’ın doğrudan bu ağa bağlı olduğunu çıkarır. IP rotalaması, mesafe metrik denen bir kavrama dayanır. Bu değer genelde
router ve son varış arasındaki birkaç hop’tan ibarettir. Router rotalama
tablosuna başvurur ve IP başlığında bulduğu varış ağ adresi ile rotalama
tablosunda bulunan bir ağ girişini eşleştirmeye çalışır. Eğer eşleşme yoksa,
datagram yok edilir ve IP kaynağına bir ICMP mesajı iletilir. Bu mesaj
"varış ulaşılamazdır" kodu içerecektir. Eğer rotalama tablosunda
bir eşleşme mevcut ise router bunu kullanarak çıkışın yapılacağı porta karar
verir. IP bir datagramı son varışa rotalamak için iki seçenek sağlar.
Birincisinde (esnek kaynak rotalama denir) IP modülü kaynak listesinde
sağlanan adreslere ulaşmak için ara hopları kullanabilir. Datagram seyahat
ettikçe düğümler listelenir. Sert kaynak rotalamada ise datagram yalnızca
kaynak listesinde adresleri belirtilen ağlar boyunca seyahat edebilir. Eğer
sert kaynak rotası takip edilemezse, datagramı yollayan host’un IP’sine bir
hata mesajı yollanır. Esnek ve sert rotalamanın ikisi de rota kaydı
özelliği isterler. 7.4.3 Rota kaydı opsiyonu Rota kaydı opsiyonu kaynak rotalamaya benzer biçimde çalışır, ancak aynı
zamanda kayıt özelliğini kullanır. Böylece her bir IP modülü bir datagram
alınca, datagramın adresini rota kayıt listesine ekler (Şekil 7-6’ya bakınız).
Rota kayıt işleminin yapılması için alıcı IP modülü, işaretçi (pointer) ve
uzunluk alanlarını inceleyerek rotayı kayıt etmek için boş yerinin olup
olmadığına karar verir. Eğer rota kayıt listesi dolu ise IP modülü datagramın
adresini almadan onu ilerletir. Eğer dolu değilse işaretçi kullanılarak ilk
boş tam-oktet slotuna adres yerleştirilir ve sonra IP modülü işaretçiyi
sıradaki IP slotunu göstermek üzere arttırır. 7.4.4 Zaman-damgası opsiyonu (time-stamp option) IP’deki kullanışlı seçeneklerden biri; datagram internet içerisinde her
bir IP modülünü geçerken, datagramın zaman-damgasının görülebilmesidir. Bu
fikir bir ağ yöneticisinin datagramın internetteki rotasına karar vermesini
sağladığı gibi aynı zamanda her bir IP modülünün datagramı işleme zamanını
bilmesini de sağlar. Bu özellik ile router’ların, ağların ve rotalama
algoritmalarının etkinlikleri karşılaştırılabilir. Şekil 7-6 Zaman-damgası
Opsiyonu Şekil 7-6’da zaman-damgası işlemlerinin opsiyon alanlarının formatı
gösterilmektedir. Önceki opsiyonlarda olduğu gibi bir IP adresini ve onun
ilgili zaman damgasını doğru slota yerleştirmek için uzunluk ve işaretçi
alanları kullanılır. Oflw alanı yalnızca bir IP modülü kaynak yetersizliği
veya çok-küçük opsiyon alanı gibi nedenlerle bir zaman-damgası
oluşturamamışsa kullanılır. Böyle bir sorunu olan her bir modül için bu değer
arttırılır. 4-bitlik bayrak alanı her bir IP modülüne zaman-damgası işlemleri için
rehberlik sağlamak amacı ile kullanılır. Bu alandaki değerleri şöyle
açıklarız: 0 = ardışık 32-bitlik kelimelere yalnızca zaman-damgası kaydı ve
saklanması yapılacaktır. Zaman-damgasında kullanılan zaman milisaniyeler mertebesindedir ve
evrensel zamana (Greenwich Mean Time) göredir. Açıkçası, evrensel zamanın
kullanımı cihazlar arasında tam doğru zaman damgalarını garanti etmez, çünkü
cihazların saatleri biraz değişebilir. Bununla beraber çoğu ağda
milisaniyeler mertebesindeki evrensel zaman fark edilir bir doğruluk derecesi
sağlar. Ağ zaman protokolü (NTP) bu opsiyon için kullanışlı bir araçtır. 7.4.5 Fragmantasyon ve yeniden-birleştirme Bir IP datagramı farklı PDU büyüklükleri kullanan çeşitli ağlardan
geçebilir. Her ağın bir maksimum PDU büyüklüğü vardır ve buna maksimum iletim
birimi (MTU) denir. Bu yüzden IP, bir büyük datagramı daha küçük datagramlara
bölecek prosedürler içerir. ULP, IP’yi fragmantasyon yapabilir veya yapamaz
diye şartlayabilir. Tabii ki IP son varışta bir yeniden-birleştirme mekanizması
kullanarak fragmanları orijinal iletimdeki hallerine getirebilmelidir. Bir IP router modülü, transit altağın iletebileceğinden daha büyük bir
datagram alınca fragmantasyon işlemlerini kullanır. Datagramı; 8-oktetlik
sınırlarla dizecek biçimde iki veya daha çok parçaya böler. Her bir fragmana
tanımlama, adres ve orijinal datagrama ait tüm opsiyon bilgilerini içeren bir
başlık eklenir. Fragman paketlerine orijinal datagramdaki yerlerini
tanımlayan bilgiler de eklenir. Şekil 7-1’i referans alırsak, bayraklar (3-bit) şöyle kullanılır.: Bit 0 : rezervedir İlginçtir ki IP, her bir fragman işlemini ayrık olarak ele alır. Şöyle ki,
fragmanlar son varışa gitmek için farklı router’lardan geçebilirler ve eğer
geçtikleri ağ daha küçük veri birimleri kullanıyorsa tekrar fragmantasyona
uğrayabilirler. Fragmanlarda offset değeri bunu belirtmek ve fragman
sıralarının karışmasını önlemek üzere set edilir. Şekil 7-7’de iki router
boyunca yapılan bir çoklu fragmantasyon gösterilmiştir. Şekil 7-7
Gateway’lerdeki Fragmantasyon İşlemleri Altağ 128.3 1500-oktet PDU büyüklüğü kullanır. 128.3 altağı bu veri
birimini A router’ına geçirir. A Router’ı PDU’yu 21.4 altağına rotalamaya
karar verir. 21.4 altağı 512-oktet PDU büyüklüğünü desteklemektedir. Router
1500’lük veri birimini 512, 512 ve 476 oktetlik 3 daha küçük parçaya ayırır
(1500 = 512 + 512 + 476). 476 oktetlik son parçaya, 8’in tam katına ulaşmak
için 0’lar eklenir. Böylece bu veri alanı 480 oktet (476 + 4 = 480, ki 8’in
tam katıdır) olur. A router’ı veriyi 21.4 altağına iletir. Veri buradan da B router’ına
iletilir. Bu router, datagram fragmanlarını 21.5 altağına göndermeye karar
verir. B router’ı 21.5’in 256 oktet büyüklüğünde PDU’lar kullandığını
bildiğinden, yeni bir fragmantasyon gerçekleştirir. 512 oktet büyüklüğündeki
fragmanları daha küçük veri birimlerine böler ve gelen üç fragmanın offset
değerlerini kullanarak gereğince yeni veri birimlerinin offset değerlerini
ayarlar. Dikkat edelim ki offset değerleri B router’ında değiştirilmiştir ve
yeni değerler önceki fragmanların offset değerleri kullanılarak
türetilmiştir. Şekil 7-8
Fragmanların yeniden-birleştirilmesi Şekil 7-8’de, alıcı host’ta paketlerin yeniden-birleştirilmesi
gösterilmektedir. IP modülü ilk fragmanı alınca tampon boşluğunu hazırlar.
Her bir fragman için bir tampon ayrılır ve fragman göreceli olarak orijinal
datagramdaki yerine göre tampondaki yerine yerleştirilir. Tüm fragmanlar
gelince IP modülü veriyi, gönderici ULP’den yollandığı orijinal düzeni ile
ULP’ye geçirir. Konuyu tartışabilmek için Şekil 7-7’de görülen datagram fragmanlarının
başka router’lara (Y ve Z’ye diyelim) rotalandığını varsayalım. Analize devam
etmek için Şekil 7-8’de "zaman oku"nun gösterdiği sırayla (en önce
n zamanı, en son n + m zamanı) Y ve Z router’larından fragmanların IP’ye
vardıklarını söyleyelim. Böylece fragmanlar aşağıdaki sırayla gelirler: Birinci : offset değeri 96 olan
fragman Alıcı cihaz için fragmanları yerleştirmek oldukça kolay bir iştir. IP
modülü, fragmanı tamponun hangi slotuna yerleştireceğine karar vermek için
offset değerini 8 ile çarpar. Örneğin ilk gelen fragmanın tampondaki göreceli
pozisyonu hafıza adresi 768 olarak hesap edilir (96 × 8 = 768). Şekil 7-8’deki birleştiren host, dördüncü fragman gelene kadar IP
datagramının tam uzunluğunu bilmez. Dördüncü fragman M = 0 biti (son
fragman), offset değeri ve fragman uzunluğu bilgilerini içerir. Offset değeri
160 ve uzunluk 220 oktet olduğundan host, artık orijinal datagramın 1500
oktet [(160 offset değeri) × (8 oktet her değerde) + (220 oktet son fragman)]
olduğunu bilir. Şimdi M bitinin neden çok önemli olduğunu gördük. Fragmandaki uzunluk
alanı orijinal datagramın büyüklüğü yerine fragmanın büyüklüğünü
gösterdiğinden, orijinal uzunluğu (ve son fragmanı) kararlaştırmanın tek
yöntemi M = 0 işaretçisidir. Eğer bazı fragmanlar varışa gelmezlerse veya TTL parametresini aşarlarsa,
IP varışa gelen fragmanları yok eder. Ayrıca ilk fragmanın gelmesi ile alıcı
bilgisayar bir birleştirme zamanlayıcısı çalıştırır. Ağ yönetici tarafından
kurulan bu zamanlayıcı, tüm fragmanların belirli bir sürede gelmesini zorunlu
kılar. Eğer zamanlayıcının verdiği süre dolana kadar tüm fragmanlar gelmezse,
gelen fragmanlar yok edilir. Eğer kullanıcı, fragmantasyon oluşmasını istemezse, fragman bayrağı 1
yapılır. Bu, datagramlar üzerinde fragmantasyon yapılamayacağını belirtir. Bu
alan böyle set edilirse ve MTU geçeceği bir altağ kapasitesini aşarsa
datagramlar router tarafından yok edilir. Bağlantısız router’lar datagramları birleştiremediği halde bazı
bağlantı-yönlendirmeli router’lar ara birleştirmeler yapabilirler. 7.5 IP Adres ve Rotalama Tabloları IP, veriyi Internet üzerinde yollamak için rotalama ve adres tabloları
kullanır. Rotalama tablolarında rotalar, adres tablolarında ise bir ağdaki
varlıkların özel adresleri saklanır. 7.5.1 Adres tabloları Internet Activities Board (IAB) RFC 1213 yayınında IP adres tablosu için
tanımlama yapmıştır. Şekil 7-9’da da görüldüğü gibi bu tablo, 5 sütun ve n
satır içerir. Her bir satır bir varlığın (bir host, router, vs.) IP adresi
ile ilgilidir. Eğer cihazda birden çok IP adresi varsa birden fazla satır
girişi olacaktır. Bu tablonun içerikleri aşağıdaki gibidir: · Giriş adresi bu girişin arabirimine karşı düşen IP adresini içerir.
Şekil 7-9 IP Adres
Tablosu 7.5.2 Rotalama tablosu 1990’a kadar bir IP rotalama tablosu, ilgili satıcının gerekli gördüğü
biçimde tasarlanmaktaydı. Internet Management Information Base (MIB)’in
yayınlanması ile IP rotalama tablosunun daha resmi bir tanımlaması yapılmış
oldu. Şekil 7-10’da, RFC 1213 yayınında tanımlanan MIB standardındaki bir IP
rotalama tablosu gösterilmiştir. IP rotalama tablosunun her bir satırı; bu tabloyu saklayan IP’nin bildiği
her bir rota için bir giriş içerir. Sütunlar her bir satır için bulunabilen
bilgileri içerirler. Aşağıda her bir sütun tanıtılacaktır. Varış girişi bu rotanın varışının IP adresini içerir. Eğer bu sütun
0.0.0.0 olarak kodlanmışsa rota, default rota olarak algılanır. IfIndex girişi arabirim indeksini belirtir. Sıradaki hop’a ulaşmamızı
sağlayacak bölgesel arabirimi (fiziksel port olarak da anılır) tanıtır. Takip eden beş sütun metrik olarak etiketlenmiştir. Metrik girişleri rota
kararlaştırmada kullanılan cost metrik bilgilerini içerirler. Çoğu sistemde
cost metrik, varışa ulaşırken aşılacak hop sayısıdır. Daha sofistike rota
bulma protokollerinin (OSPF gibi) gelişmesi ile rotayı hesaplarken birden
fazla cost metrik kullanılabilmesi olanağı doğdu. Rotalama tablosunda
en çok beş cost metrik saklanabilir. Sıradaki hop girişi bu rota için bir sonraki hop’un IP adresini içerir. Tablodaki diğer sütun ise rota tipidir. Dört değerden birine set edilerek
aşağıdaki bilgiler sağlanır: 1 = aşağıdakilerden hiç biri Rotalama protokolü girişi bu rotayı bulan rota bulma protokolünü belirtir.
Eğer rota, rota bilgi protokolü (RIP) ile bulunmuşsa bu sütundaki değer 8
olmalıdır; eğer cisco internal group routing protokolü ile bulunmuşsa, bu
değer 11 olmalıdır; vb... Rota yaşı, rotanın güncelleştirilmesinden veya kontrol edilmesinden
itibaren geçen zamanı saniyeler cinsinden verir. Rota maskesi sütunu, bu rotanın maskesini içerir. Bu maske IP
datagramındaki varış adresi ile mantıksal VE işleminden geçirilir ve bulunan
değer daha sonra bu tablodaki 1. sütun ile (varış etiketli sütun)
karşılaştırılır. Rota bilgisi olarak etiketlenen son sütun, belirli bir rotalama protokolü
ile ilgili MIB tanımlaması için referans verir. Bunun değeri bu satır
girişinde kullanılan rotalama protokolü tipine dayanır. IP rotalama
tablosundaki bir satır girişine örnek olarak, 5. bölümdeki Şekil 5-5’e
başvuralım. Bu şekilde varış ağlarından biri 14.0.0.0 olarak gösterilmiştir.
Sonuç olarak, 8. router’daki rotalama tablosunun perspektifi ile bu ağın
sütun girişleri şunlardır: varış = 14.0.0.0
Şekil 7-10 Olası
bir IP Rotalama Tablosu |