TCP/IP nin iki tane onemli bileşeninden IP hakkında bilgi verilecektir. TCP/IP uzerinde ilerlemek için IP nin bilinmesi önemlidir. Çünkü IP network üzerindeki datagramların hareketini sağlayan bileşendir. Bir datagramın nasıl birleştirildiğini ve network üzerinde nasıl hareket ettiğini bilmek yüksek seviyedeki layer ların IP ile nasıl calıştığını anlamanıza yardım eder.TCP/IP ailesindeki bütün protokoller de IP datanın nasıl paketlendiğini ve gideceği yere gönderilmesini saglayan temel elemandir.

INTERNET PROTOKOL

Internet protokolu (IP) TCP/IP nin tumleşik yapısına ek olarak, OSI nin ana bilesenidir. Internet protokolun isminde yer almasina ragmen internet ile sınırlı değildir. Internet teki bütün makinelerin TCP/IP yi anlayabileceği yada kullanabileceği doğrudur ama IP internet ile hiçbir bağlantısı olmayan adanmış (dedicated) ağlar icin de kullanilabilir. IP bir protokolu tanımlar, bir baglantiyi degil. Aslinda IP, NetWare i Pc server operating system gibi kullanan ,küçük ve orta local area network’lerdeki Novell NetWare'in IPX gibi protokolleriyle rekabet ile karşılaşsada makine-makine baglantılarında etkili protokolere ihtiyacı olan herhangi bir ağ icin iyi bir seçimdir.

IP ne yapar?Asıl görevi bilgisayarlar arasındaki bilgi -datagramlarının adreslenmesi ve bu datagramların parçalanmasi işleminin yönetilmesidir.Protokol bilgi-datagramlarının layout larının ve datagram hakkında toplanan başlık formasyonunun formal bir tanımına sahiptir. IP datagramların yönetilmesi, nereye gönderileceği ve problem durumlarında alternatif rotalar türetmekle yükümlüdür.

IP nin amacının, diğer önemli bir tarafı da datagramın güvenilir olmayan bir şekilde iletilmesiyle ilgilidir. IP için güvenilir olmaması demek datagramın teslimi garanti değil demektir, çünkü geciktirilmiş ,yanlış yönlendirilmiş, message bölümlerinin (fragman) yeniden birleştirilmesi sırasında bozulmuş olabilir.IP nin akış kontrolu veya güvenilirlikle hiçbir ilgisi yoktur: Gönderilen mesajın doğru şekilde alınacağının doğrulanmasi ile ilgili, doğal olarak hiçbir yeterlilik (yetenek) yoktur. IP nin , datagramın data içeriğiyle ilgili checksum(özet bilgi) yoktur. Sadece header(başlık ) ile ilgili bilgi vardır. Doğrulanma ve akış kontrol görevleri layer modeldeki diğer bileşenlere bırakılmıştır. (bu mesele için, IP, datagramların nasıl ilerlediğiyle bile ilgilenmez. IP yol boyunca datagramın ilerleyeceği sonraki düğüm için en iyi rotayı tahmin edebilir,ama doğal olarak seçilen yolun en iyi yada en etkili rota oldugunu garantilemez). IP sisteminin bir kısmı gateway lerin datagramları nasıl yönettiğini , nasıl ve ne zaman error mesajları üreteceğini ve doğabilecek problemleri nasıl duzeltebileceğini tanımlar.

İlk kısımda ,fragmentation ve reassembly olarak adlandırılan, datanın transmission lar için nasıl ufak parçalara ayrılabileceğini ve diğer bir lokasyonda tekrar birleştirileceğini göreceksiniz. IP max 65,535 byte a kadar paket boyutu sağlar ki bu çoğu netwok un ele alabileceginden cok daha büyüktür.

IP gerekli olduğu zaman bilgi datagramlarının daha küçük parçalara ayırma yeteneğine sahiptir, day 1 de gördüğünüz prensiplerle.

Büyük bir mesajın ufak parçalara ayrılmış ilk datagramı varış noktasına vardığı zaman alıcı makinenin IP layer i tarafindan (birleştirme zamanlayıcısı) reassembly timer başlatılır. Eger zamanlayici onceden belirlenen bir degere ulasincaya kadar tum datagramin parcalari birleştirilemediyse alınan bütün datagram lar geçersiz sayılır. Alıcı makine parçaların hangi sırada birleştirileceğini IP header daki bir alan vasıtasıyla bilir. Bu işlemin bir sonucu parçalanmış (fragmented ) mesajın unfragmented )parçalanmamış mesaja oranla gitme şansı daha azdır ki bu da çoğu uygulamanın mümkün olan durumlarda fragmentasyondan kaçınma sebebidir.

IP bağlantısızdır yani yol boyunca datagramın hangi node (düğüm) lerdan geçtiği veya datagramın hangi makinede başlayıp hangisinde bittiği ile ilgilenmez. Bu bilgi başlıktadır ama datagram üzerindeki analiz ve geçme işleminin IP nin gönderici ve alıcı adresleriyle ilgili analiz ile hicbir ilgisi yoktur.IP datagramin 32-bit tam internet adresiyle adreslenmesini ele alır. Transport protokolu 8-bit adresleme kullansa bile bu geçerlidir. IP nin yeni bir versiyonu ,IPng(IP next generation ) olarak adlandırılıyor, daha büyük header ları işleyebiliyor.

INTERNET PROTOKOLU DATAGRAM BAŞLIĞI(THE INTERNET PROCOL DATAGRAM HEADER)

IP yi bilgiyi paketlemesindeki benzerlikten dolayi ethernet gibi hardware lerle karşılaştırmak cezbedicidir. Dün ethernet in bir uygulama datası ile adres bilgisini içeren başlık bloğunu birleştirerek pencereyi nasıl birleştirdiğini gördünüz. IP de header (başlik) deki bilgilerin IP ye özgü olması dışında aynısını yapar. Ethernet IP assembled(birleştirilmiş) datagram aldığı zaman (IP header içeren bir datagram) başlığını -encapsulation denilen- bir pencere oluşturmak için öne alır. IP ile Ethernet arasındaki başlıca farklardan biri Ethernet başlığı varılacak makinenin fiziksel adresini içerirken IP sadece IP adresini içerir . Dünkü tartışmadan iki adres arasındaki geçişin Address Resolution Protocol (Adres Cozumleme Protokolu) tarafindan çözümlendiğini hatırlayacaksınız.

NOT:

Encapsulation Datanın başlangıcına (bazen de sonuna ) birşeyler eklemek işlemidir, ilaç kapsüllerinin tıbbi içerikleri kapsaması gibi.Eklenen data ve son kısım (kuyruk ) kapatılan data hakkında bilgi verir.

Datagram bazen de daha özel olarak Internet veya IP datagram olarak adlandırılan, IP tarafından kullanılan transfer birimidir. IP yi tanımlayan özellikler (TCP/IP protokol ailesindeki diğer servis ve protokollere ek olarak) header(başlık) ları ve kuyruğu word biçiminde tanımlarlar ki her word 32-bit tir. Bazı işletim sistemleri, 32-bit word uzunluğu daha sık karşılaşılmasına rağmen farklı word uzunluğu kullanırlar (Bazı minicomputer ler ve daha büyük sistemler 64-bit word uzunluğu kullanırlar). Bir byte ta 8 bit vardır böylece 32-bit çoğu zaman 4 byte'a eşittir çoğu sistemlerde .

Şekil: --IP header layout

VERSION NUMARASI(VERSION NUMBER)

Bu protokol yazılımının kullandığı IP numarasını içeren 4-bit lik bir alandır. Bu versiyon numarası, alıcı IP yazılımın ,her yeni versiyonda IP standardı değişen başlığın geri kalan kısmını nasıl çözeceğini bilmesi icin gereklidir. En cok kullanılan versiyon numarası bazı sistemlerin versiyon 6 (IPng olarak adlandırılan) yı test ediyor olmasına rağmen, 4 dür. Internet ve çoğu LAN şuanda ,IP versiyon 6 yi desteklemiyor. Protokol tanımın bir kısmı alıcı yazılımının,gelen datagramdaki headerin geri kalan kısmını ve encapsulated data yı analiz etmeden önce versiyon numarasını kontrol etmesini şart koşarlar. Eğer yazılım datagramı kurarken versiyonu işleyemezse alıcı makinenin IP layer i datagramı reddeder ve içeriğin hepsini görmezden gelir.

BAŞLIK UZUNLUĞU(HEADER LENGHT)

Bu 4 bit gönderici makine tarafından inşa edilen IP header in toplam uzunluğunu gösterir, bu 32-bit te ifade edilir. En kısa header 5 word tür(20 byte), ama seçimlik alanların kullanımı uzunluğu max 6 wörde kadar (24 byte ) çıkarabilir. Başlığı uygun biçimde decode edebilmek icin IP başlığın nerede başlayıp nerede bittiğini bilmek zorundadır, buda bu alanın eklenme sebebidir.(Datagramdaki bilginin nerede başladığını gösteren bir data-başlama işaretcisi yoktur. Bunun yerine header uzunluğu,data bloğunun nerede başladığını bulmak icin, IP header in başlangıç noktasındaki offset den hesaplamak ta kullanilir.)

SERVİS TİPİ (TYPE OF SERVICE)

8 bit (1 byte) lık Servis Tipi alanı IP ye datagramı uygun biçimde nasıl işleyeceğini söyler.

Alanin 8-biti aşağıdaki şekilde de gösterildiği gibi okunur ve atanır. İlk 3 bit 0 (normal ) dan 7 (network kontrol)ye kadar datagramın önceliğini gösterir. Sayi yükseldikçe datagramın önemi artar ve en azından teoride ,datagram gidecegi yere yönlendirilmelidir. Gerçi pratikte TCP/IP nin coğu uygulaması ve pratik olarak TCP/IP yi kullanan hardware bu alani görmezden gelir ve bütün datagramlara aynı öncelikle davranır.

ŞEKİL : 8 bit servis Tipi

Sonraki 3 bit ,gecikmeyi, gidişi(throughput) ve datagramın güvenirliğini kontrol eden 1 bitlik flaglardır. Eğer bit 0 a eşitse ayarlar normaldir.1 e eşitlenmis bir bite karşılık gelen flaglardaki gidişi(throughput) ,gecikmeyi ve güvenirliği ifade eder. Mevcut IP uygulamaları tarafından bu bitlerin çoğu gözardı edilir ve bütün datagramlar aynı gecikme,güvenirlik ve gidiş(throughput) ile davranılırlar.

Çoğu amaç için, Service Type alanındaki bitlerin hepsi 0 a eşitlenir ,çünkü eğer özel bir network kurulmazsa öncelikte, gecikme,guvenirlik ve gidis(throughput) arasindaki fark -vitually -mevcut değildir.Bu flaglar bir datagram için en iyi yönlendirme metodunu bulmak için yararlı olabilirlersede , mevcut hiçbir UNIX tabanlı IP sistemi bu alandaki bitleri değerlendirmeyi düşünmüyorlar.(Gerçi kodun yüksek güvenlikli veya yüksek güvenirlirlikli ağlar için değiştirilmesi akla yatkın.)

DATAGRAM UZUNLUĞU VEYA PAKET UZUNLUĞU (DATAGRAM LENGHT OR PACKET LENGHT)

Bu alan başlığı da içeren biçimde datagramın toplam uzunluğunu verir. Data alanının uzunluğu header uzunluğunu bu alandan çıkararak bulunabilir. Datagram uzunluğu alanının boyutu 16 bittir, bundan dolayı datagramın uzunluğu 65535 byte tir (başlığı da içerir ). Bu alan toplam frame uzunluğunu set etmek için transport protokolune geçirilecek uzunluk değerini belirlemek icin kullanilir.

KIMLIK (IDENTIFICATION)

Bu alan gönderici node(düğüm) tarafından oluşturulan, eşsiz tanımlayıcı olan bir sayı tutar. Bu sayı parçalanmış mesajları yeniden birleştirirken, diğer mesajlarla karışıklık olmamasını garanti için gereklidir. Daha yüksek bir protkolden IP layer tarafindan alınan her data yığınına , data ulaştığı zaman bu numaralardan atanır. Eğer bir datagram parçalandıysa her parça aynı kimlik numarasına sahiptir.

FLAGLAR (FLAGS)

Flag alanı 3 bittir, ilk biti kullanılmaz (protokol tarafından gözardı edilir ve genellikle yazılacak hiç bir değer yoktur). Kalan 2 bit ,parçalama istendiği zaman ,datagramların kullanılmasını kontrol eden, DF(dont fragment-parçalama yapma) ve MF(more fragments -cok parçala) flaglarına atanmıştır

Eğer Df 1 e set edilirse datagram hiçbir durum altında parçalanamaz. Eğer mevcut IP layer yazılımı datagramı parçalamadan gönderemezse ve bu bit 1 ise datagram geçersiz kılınır ve bir hata mesajı geriye gönderilir.

Eger MF flaği 1 e set edilirse mevcut datagram birkaç paket tarafından takibedilir.(bazen subpacket -altpaket olarak adlandırılır) ki tam mesaj yeniden oluşturabilmek için yeniden birleştirilmelidir. Büyük bir mesajın son parcasında MF biti 0 a eşitlenir ki bekleyen araç ne zaman beklemeyi bırakacağını bilebilsin. Datagramların alınıs sırası gönderiliş sırasına uygun düşmeyebileceğinden , alıcı makineye mesajın tam uzunluğunu belirtmek icin , MF flagi Fragment Offset alanı ile birlikte kullanilir(IP header deki diğer alan)

FRAGMENT OFFSET

Eğer MF (more fragments-çok parçalı ) biti 1 e eşitlenmişse (daha büyük bir datagramın parçalanmasını göstermek icin ) parçalama offseti, mevcut datagram içindeki alt mesajların tam mesaj içindeki yerini belirtir. Bu IP ye parcalanmış paketleri uygun sırada birleştirme imkanı verir.

Offsetler her zaman mesajın başına göre göreceli verilir.Bu 13 bitlik bir alan dır böylece offsetler 8 byte lık birimler halinde hesaplanırlar buda 65535 bytelık bir alana denk gelir.Hangi mesajın alıcı datagrama ait olduğunu göstermek için kimlik numarasını kullanarak alıcı makinedeki IP layer tam mesajı birleştirmek için offset adresini kullanabilir.

YAŞAMA ZAMANI ( TIME TO LIVE(TTL))

Bu alan ,datagram geçersiz kılınmadan önce network te kaldığı zamanı saniyeler cinsinden verir. Bu, gönderici düğüm tarafından datagram birleştirildiğinde ayarlanır. Genellikle TTL alanı 15-30 saniyeye set edilir.

TCP/IP standardı paketi işleyen düğüm başına TTL alanının bir saniyede azaltılmasını ister, işlem süresi 1 saniyeden az ise bile bu geçerlidir. Ayrıca eğer bir datagram bir çıkış kapısı (gateway) tarafından alındığı zaman varış zamanı -tag edilir- datagram beklemelidir , zaman TTL si aleyhine işlerken. Bundan dolayı eğer gateway-çıkış kapısı datagramı alamıyacak kadar fazla yüklü ise TTL zamanlayıcısı işlenmeyi beklerken tükenebilir ve datagram iptal edilir.

Eğer TTL alanı 0 a erişirse datagram bulundugu yerdeki node -düğüm tarafından safdışı edilmelidir ama mesaj düştüğü zaman ,gönderilen yere geri gönderilmelidir. Gönderici makine o zaman mesajı yeniden gönderebilir.TTL alanını yöneten kural , IP paketlerinin ağ boyunca sonsuz biçimde dönmesini engellemek üzere dizayn edilmiştir.

TRANSPORT PROTOCOL

Bu alan teslim edilecek paketi alacak transport protokolunun kimlik numarasını tutar. Numaralar interneti yöneten Network Information Center(NIC ) tarafından belirlenir. Şu anda bir transport protokol numarasına 50 kadar protokol tanımlanmış ve atanmıştır. İki önemli protokol ICMP(Internet Control Message Protokol) ve TCP .

HEADER CHECKSUM (BASLIK CHECKSUM)

IP başlığının bu alanındaki numara daha hızlı işlemeyi mümkün kılmak için protokol header alanının checksum özetidir.TTL -Time To Live her node-düğümde azaltıldığı için datagram da geçtiği her makine de değişir. Checksum algoritması 16 bit wordün, 16 bit toplamının bire complementini alır.Bu hızlı ve etkili bir algoritmadır ama hepside 0 olan 16 bit in tamamının kaybolması gibi bazı normal olmayan bozulmaları gözden kaçırır. Bununla beraber , TCP ve UDP tarafından kullanılan data checksum ları tüm paketi kapladığı için bu tür hatalar pencere network protokolü icin birleştirilirken yakalanır.

GONDERICI ADRESI VE HAREKET ADRESİ(SENDIGN ADDRESS AND DESTINATION ADDRESS)

Bu alanlar gönderici ve alıcı cihazın 32 bit IP adreslerini icerir.Bu alanlar datagram oluşturulduğu zaman kurulur ve routing-yönlendirme boyunca değiştirilemez.

SEÇENEKLER(OPTIONS)

Options alanı seçimliktir, değişik uzunluktaki bazı kodların bileşiminden oluşmuştur. Bir datagram da birden fazla seçenek kullanılmışsa ,seçim IP başlığında birbiri peşinsıra görünür. Bütün seçenekler normalde 3 e bölünen bir byte tarafından kontrol edilir : bir 1bit kopya flagı ,bir 2-bit option -seçenek - sınıfı ve bir 5 -bit seçenek numarası.Kopya flagı bir çıkış kapısında parçalama zorunlu olduğu zaman seçeneğin nasıl ele alınacağını gösteriyor. Bu bit 0 a eşit olduğu zaman seçenek ilk datagrama konulmalı diger gelen ardışık datagramlara değil.Eğer bu bit 0 a eşitse seçenek bütün datagramlara kopyalanır. Seçenek sınıfı ve numarası seçeneğin belli bir sınıfını ve belirli bir değerini gösterir. Şu anda sadece iki tane seçenek sınıfı mevcut.(Alandaki sadece iki bitin calışması ile max 4 seçenek set edilebilir). Değer 0 a eşit olduğu zaman seçenek datagrama veya network kontrolüne uygulanır. İki değeri seçeneğin debugging veya yönetici fonksiyonları için demektir.Bir ve üç değeri kullanılmıyor. Şu anda seçenek sınıfı için desteklenen değerler Tablo da verilmiştir.

TABLO: IP BAŞLIKLARI İÇİN GEÇERLİ SEÇENEK SINIFLARI VE NUMARALARI
Option Class Option Number Description

0 0 Marks the end of the options list

0 1 No option (used for padding)

0 2 Security options (military purposes only)

0 3 Loose source routing

0 7 Activates routing record (adds fields)

0 9 Strict source routing

2 4 Timestamping active (adds fields)

Sizin için en önemli olan routing i enable yapmak timestamp ların kaydedilmesidir. Bunlar diagnostic amaçlar için yararlı olabilecek , datagramın internet boyunca kaydını tutmak icin kullanılırlar. Bu iki seçenek datagram içinde dahil edilen bir listeye bilgileri eklerler. (Timestamp ilginç bir formata sahiptir : geceleri milissaniyeler cinsinden ifade edilir, Universal-Evrensel- Zamana göre. Çoğu sistem yaygın olarak -Evrensel zamana göre ayarlı olsalar bile- farklı zaman ayarlarına sahip oldukları icin Timestamp lar az bir şüphe ile karşılanırlar).

Options alanı ile ilgili iki çeşit routing vardır -gevşek ve sıkı. Loose(gevşek ) Routing, makinenin geçmesi gereken bir dizi IP adresini sağlar , ama bu adreslerin herhangi birinin elde edilmesi için herhangi bir yolun (route) kullanılmasını enable eder (genellikle gateways-cıkış kapıları). Strict(sıkı) Routing belirlenen rotadan herhangi bir sapmayı engeller. Eğer rota kullanılamıyorsa datagram iptal edilir. Strict (sıkı) Routing sık sık rotaları test etmekte, nadiren de , datagramın kayıp veya iptal edilme olasılığının yuksek olmasından dolayı kullanıcı datagramının transmission (geçiş) ları için kullanılır.

 

PADDING

Padding alanının içeriği seçilen seçeneğe bağlıdır. Padding genellikle datagram header ın byte a yuvarlanırlığını garanti etmek icin kullanılır.

BİR DATAGARAMIN HAYATI (A DATAGRAM'S LIFE)

IP nin ve diğer TCP/IP layer larının bir makineden diğer makineye datagramı paketlerken ve gönderirken nasıl çalıştığını anlamak için tipik bir datagramın pasajının yapısına basitlenmiş bir yaklaşım yaptım. Bir program network üzerinde bir datagram göndermek isterse bir kaç basit adım gercekleştirmelidir. İlk olarak yerel IP gerçeklemesi tarafından sınırlanan yasal uzunluklar içinde datagramı kurar. Data için checksum hesaplanır ve IP header-başlık- inşa edilir. Sonra datagramı gidiş makinesine direk olarak yerel ağ boyunca veya internetwork kullanılıyorsa gatewaye yönlendirmek için rotadaki ilk hop(makine ) belirlenmelidir. Eğer yönlendirme önemli ise bu bilgi başlığa bir seçenek kullanılarak eklenir. Sonuç olarak datagram network e datagram işlenmesi icin geçirilir.

Datagram internetwork boyunca ilerlerken her gateway bir dizi test uygular. Network layer kendi header ını aldığı zaman çıkış kapısı layer ı chechsum ı kontrol eder ve datagramın bütünlüğünü doğrular.

Eğer checksum(toplam ) lar uyuşmazsa datagram iptal edilir ve gönderici cihaza döndürülür.Sonra TTL alanı azaltılır ve kontrol edilir. Eğer datagramın zamanı geçmişse iptal edilir ve gönderici makineye mesaj hata mesajı gönderilir. Hedef adresi analiz ederek veya IP header içindeki Options alanında belirtilen rota komutundan rotadaki diğer makineyi belirledikten sonra datagram yeni bir TTL value ve yeni bir Checksum(toplam) ile kurulur.

Eğer yazılımın sınırlılığı nedeni ile veya datagramın boyutundaki artmadan dolayı parçalama zorunlu ise datagram bölünür ve doğru header bilgisi ile yeni datagramlar birleştirilir. Eğer bir yönlendirme veya Timestamp gerekli ise bu da eklenir. Son olarak datagram network layer a gönderilir.

Sonunda datagram varış yerinden alındığı zaman sistem checksum hesaplamsı uygular ve (2 checksumında aynı olduğunu varsayarak ) başka parçalanma var mı diye bakar. Eğer tüm mesajı birleştirmek için daha fazla datagrama ihtiyaç varsa , sistem bekler, aynı zamanda bir zamanlayıcı tutarak datagramın makul bir zaman içinde varmasını garanti eder. Eğer bütün parçalar ulaştığı halde cihaz zamanlayıcı 0 a varmadan mesajı birleştiremezse datagram iptal edilir. En son olarak IP header alınır orijinal mesaj parcalanmışsa birleştirilir ve mesaj daha yukardaki layer uygulamalarına geçirilir. Eğer cevap gerekiyorsa üretilir gönderici cihaza yollanır.

Yönlendirme veya timestamp kayıdı için extra bilgi eklendiği zaman datagramın uzunluğu artar. Bütün bu durumları ele almak IP nin hüneridir.