TCP/IP ve Bileþenleri
Su ana
kadar bilgisayar agi kavramlari ve ag yapisinin fiziksel katmanlari
hakkinda genel bir fikir edindik. Bu noktada bilgisayarlar arasi iletisimi
saglayan temel protokol katmanlarina gelmis bulunuyoruz. Burada okuyucuya
alt yapi protokolleri ile ilgili detayli ancak cok teknik olmayan bilgiler
verilecek ve sistemin temel calisma prensipleri aciklanmaya calisilacaktir.
Genel
tanimlar
TCP/IP
katmanlardan olusan bir protokoller kumesidir. Her katman degisik
gorevlere sahip olup altindaki ve ustundeki katmanlar ile gerekli bilgi
alisverisini saglamakla yukumludur. Asagidaki sekilde bu katmanlar bir
blok sema halinde gosterilmektedir.
Cizim-10 TCP/IP katmanlari
TCP/IP
katmanlarinin tam olarak ne oldugu, nasil calistigi konusunda bir fikir
sahibi olabilmek icin bir ornek uzerinde inceleyelim:
TCP/IP nin
kullanildigi en onemli servislerden birisi elektronik postadir (e-posta).
E- posta servisi icin bir uygulama protokolu belirlenmistir (SMTP). Bu
protokol e- posta’nin bir bilgisayardan bir baska bilgisayara nasil
iletilecegini belirler. Yani e- postayi gonderen ve alan kisinin
adreslerinin belirlenmesi, mektup iceriginin hazirlanmasi vs. gibi. Ancak
e-posta servisi bu mektubun bilgisayarlar arasinda nasil iletilecegi ile
ilgilenmez, iki bilgisayar arasinda bir iletisimin oldugunu varsayarak
mektubun yollanmasi gorevini TCP ve IP katmanlarina birakir. TCP katmani
komutlarin karsi tarafa ulastirilmasindan sorumludur. Karsi tarafa ne
yollandigi ve hatali yollanan mesajlarin tekrar yollanmasinin kayitlarini
tutarak gerekli kontrolleri yapar. Eger gonderilecek mesaj bir kerede
gonderilemeyecek kadar buyuk ise (Ornegin uzunca bir e-posta
gonderiliyorsa) TCP onu uygun boydaki segment’lere (TCP katmanlarinin
iletisim icin kullandiklari birim bilgi miktari) boler ve bu segment’lerin
karsi tarafa dogru sirada, hatasiz olarak ulasmalarini saglar. Internet
uzerindeki tek servis e-posta olmadigi icin ve segment’lerin karsi tarafa
hatasiz ulastirilmasini saglayan iletisim yontemine tum diger servisler de
ihtiyac duydugu icin TCP ayri bir katman olarak calismakta ve tum diger
servisler onun uzerinde yer almaktadir. Boylece yeni bir takim uygulamalar
da daha kolay gelistirilebilmektedir. Ust seviye uygulama protokollerinin
TCP katmanini cagirmalari gibi benzer sekilde TCP de IP katmanini
cagirmaktadir. Ayrica bazi servisler TCP katmanina ihtiyac duymamakta ve
bunlar direk olarak IP katmani ile gorusmektedirler. Boyle belirli
gorevler icin belirli hazir yordamlar olusturulmasi ve protokol seviyeleri
insa edilmesi stratejisine ‘katmanlasma’ adi verilir. Yukarida verilen
ornekteki e- posta servisi (SMTP), TCP ve IP ayri katmanlardir ve her
katman altindaki diger katman ile konusmakta diger bir deyisle onu
cagirmakta ya da onun sundugu sevisleri kullanmaktadir. En genel haliyle
TCP/IP uygulamalari 4 ayri katman kullanir. Bunlar:
- Bir
uygulama protokolu, mesela e-posta
- Ust
seviye uygulama protokollerinin gereksinim duydugu TCP gibi bir protokol
katmani
- IP
katmani. Gonderilen bilginin istenilen adrese yollanmasini saglar.
- Belirli
bir fiziksel ortami saglayan protokol katmani. Ornegin Ethernet, seri hat,
X.25 vs.
Internet
birbirine gecis yollari (gateway) ile baglanmis cok sayidaki bagimsiz
bilgisayar aglarindan olusur ve buna ‘catenet model’ adi verilir.
Kullanici bu aglar uzerinde yer alan herhangi bir bilgisayara ulasmak
isteyebilir. Bu islem esnasinda kullanici farkina varmadan bilgiler,
duzinelerce ag uzerinden gecis yapip varis yerine ulasirlar. Bu kadar
islem esnasinda kullanicinin bilmesi gereken tek sey ulasmak istedigi
noktadaki bilgisayarin ‘Internet adresi’ dir. Bu adres toplam 32 bit
uzunlugunda bir sayidir. Fakat bu sayi 8 bitlik 4 ayri ondalik sayi
seklinde kullanilir (144.122.199.20 gibi). Bu 8 bitlik gruplara ‘octet’
ismi de verilir. Bu adres yapisi genelde karsidaki sistem hakkinda bilgi
de verir. Mesela 144.122 ODTU icin verilmis bir numaradir. ODTU ucuncu
octet’i kampus icindeki birimlere dagitmistir. Ornegin, 144.122.199
bilgisayar merkezinde bulunan bir Ethernet agda kullanilan bir adrestir.
Son octet ise bu Ethernete 254 tane bilgisayar baglanmasina izin verir (0
ve 255 bilgisayar adreslemesinde kullanilmayan ozel amacli adresler oldugu
icin 254 bilgisayar adreslenebilir).
IP
baglantisiz “connectionless” ag teknolojisini kullanmaktadir ve bilgi
“datagramlar” (TCP/IP temel bilgi birim miktari) dizisi halinde bir
noktadan digerine iletilir. Buyuk bir bilgi grubunun (buyuk bir dosya veya
e-posta gibi) parcalari olan “datagram” ag uzerinde tek basina yol alir.
Mesela 15000 octet’lik bir kutuk pek cok ag tarafindan bir kere de
iletilemeyecek kadar buyuk oldugu icin protokoller bunu 30 adet 500
octetlik datagramlara boler. Her datagram ag uzerinden tek tek yollanir ve
bunlar karsi tarafta yine 15000 octet lik bir kutuk olarak birlestirilir.
Dogal olarak once yola cikan bir datagram kendisinden sonra yola cikan bir
datagramdan sonra karsiya varabilir veya ag uzerinde olusan bir hatadan
dolayi bazi datagramlar yolda kaybolabilir. Kaybolan veya yanlis sirada
ulasan datagramlarin siralanmasi veya hatali gelenlerin yeniden alinmasi
hep ust seviye protokollerce yapilir. Bu arada “paket” ve “datagram”
kavramlarina bir aciklama getirmek yararli olabilir. TCP/IP ile ilgili
kavramlarda “datagram” daha dogru bir terminolojidir. Zira datagram TCP/IP
de iletisim icin kullanilan birim bilgi miktaridir. Paket ise fiziksel
ortamdan (Ethernet, X.25 vs.) ortama degisen bir buyukluktur. Mesela X.25
ortaminda datagramlar 128 byte lik paketlere donusturulup fiziksel ortamda
boyle tasinirlar ve bu islemle IP seviyesi hic ilgilenmez. Dolayisiyla bir
IP datagrami X.25 ortaminda birden cok paketler halinde tasinmis olur.
TCP
katmani
TCP’nin
(“transmission control protocol-iletisim kontrol protokolu”) temel islevi,
ust katmandan (uygulama katmani) gelen bilginin segment ler haline
donusturulmesi, iletisim ortaminda kaybolan bilginin tekrar yollanmasi ve
ayri siralar halinde gelebilen bilginin dogru sirada siralanmasidir. IP
(“internet protocol”) ise tek tek datagramlarin yonlendirilmesinden
sorumludur. Bu acidan bakildiginda TCP katmaninin hemen hemen tum isi
ustlendigi gorulmekle beraber (kucuk aglar icin bu dogrudur) buyuk ve
karmasik aglarda IP katmani en onemli gorevi ustlenmektedir. Bu gibi
durumlarda degisik fiziksel katmanlardan gecmek, dogru yolu bulmak cok
karmasik bir is halini almaktadir.
Su ana
kadar sadece Internet adresleri ile bir noktadan diger noktaya ulasilmasi
konusundan bahsettik ancak birden fazla kisinin ayni sisteme ulasmak
istemesi durumunda neler olacagi konusuna henuz bir aciklik getirmedik.
Dogal olarak bir segment’i dogru varis noktasina ulastirmak tek basina
yeterli degildir. TCP bu segment’in kime ait oldugunu da bilmek zorundadir.
“Demultiplexing” bu soruna care bulan yontemdir. TCP/IP ‘de degisik
seviyelerde “demultiplexing” yapilir. Bu islem icin gerekli bilgi bir seri
“baslik” (header) icinde bulunmaktadir. Baslik, datagram’a eklenen basit
bir kac octet’den olusan bir bilgiden ibarettir. Yollanmak istenen mesaji
bir mektuba benzetecek olursak baslik o mektubun zarfi ve zarf uzerindeki
adres bilgisidir. Her katman kendi zarfini ve adres bilgisini yazip bir
alt katmana iletmekte ve o alt katmanda onu daha buyuk bir zarfin icine
koyup uzerine adres yazip diger katmana iletmektedir. Benzer islem varis
noktasinda bu sefer ters sirada takip edilmektedir.
Bir ornek
vererek aciklamaya calisirsak: Asagidaki noktalar ile gosterilen satir bir
noktadan diger bir noktaya gidecek olan bir dosyayi temsil etsin,
...............
TCP
katmani bu dosyayi tasinabilecek buyuklukteki parcalara ayirir:
... ...
... ... ...
Her
segment’in basina TCP bir baslik koyar. Bu baslik bilgisinin en onemlileri
‘port numarasi’ ve ‘sira numarasi’ dir. Port numarasi, ornegin birden
fazla kisinin ayni anda dosya yollamasi veya karsidaki bilgisayara
baglanmasi durumunda TCP’nin herkese verdigi farkli bir numaradir. Uc kisi
ayni anda dosya transferine baslamissa TCP, 1000, 1001 ve 1002 “kaynak”
port numaralarini bu uc kisiye verir boylece herkesin paketi birbirinden
ayrilmis olur. Ayni zamanda varis noktasindaki TCP de ayrica bir “varis”
port numarasi verir. Kaynak noktasindaki TCP nin varis port numarasini
bilmesi gereklidir ve bunu iletisim kuruldugu anda TCP karsi taraftan
ogrenir. Bu bilgiler basliktaki “kaynak” ve “varis” port numaralari olarak
belirlenmis olur. Ayrica her segment bir “sira” numarasina sahiptir. Bu
numara ile karsi taraf dogru sayidaki segmenti eksiksiz alip almadigini
anlayabilir. Aslinda TCP segmentleri degil octet leri numaralar. Diyelim
ki her datagram icinde 500 octet bilgi varsa ilk datagram numarasi 0,
ikinci datagram numarasi 500, ucuncusu 1000 seklinde verilir. Baslik
icinde bulunan ucuncu onemli bilgi ise “kontrol toplami” (Checksum)
sayisidir. Bu sayi segment icindeki tum octet ler toplanarak hesaplanir ve
sonuc basligin icine konur. Karsi noktadaki TCP kontrol toplami hesabini
tekrar yapar. Eger bilgi yolda bozulmamissa kaynak noktasindaki hesaplanan
sayi ile varis noktasindaki hesaplanan sayi ayni cikar. Aksi takdirde
segment yolda bozulmustur bu durumda bu datagram kaynak noktasindan tekrar
istenir. Asagida bir TCP segmenti ornegi verilmektedir.
Cizim-11 TCP Segmenti
Eger TCP
basligini “T” ile gosterecek olursak yukarda noktalarla gosterdigimiz
dosya asagidaki duruma gelir:
T... T...
T... T... T...
Baslik
icinde bulunan diger bilgiler genelde iki bilgisayar arasinda kurulan
baglantinin kontrolune yoneliktir. Segment’in varisinda alici gonderici
noktaya bir “onay” (acknowledgement) yollar. Ornegin kaynak noktasina
yollanan “onay numarasi” (Acknowledgement number) 1500 ise octet numarasi
1500 e kadar tum bilginin alindigini gosterir. Eger kaynak noktasi belli
bir zaman icinde bu bilgiyi varis noktasindan alamazsa o bilgiyi tekrar
yollar. “Pencere” bilgisi bir anda ne kadar bilginin gonderilecegini
kontrol etmek icin kullanilir. Burada amac her segment’in gonderilmesinden
sonra karsiya ulasip ulasmadigi ile ilgili onay (ack) beklenmesi yerine
segment’leri onay beklemeksizin pencere bilgisine gore yollamaktir. Zira
yavas hatlar kullanilarak yapilan iletisimde onay beklenmesi iletisimi cok
daha yavaslatir. Diger taraftan cok hizli bir sekilde surekli segment
yollanmasi karsi tarafin bir anda alabileceginden fazla bir trafik
yaratacagindan yine problemler ortaya cikabilir. Dolayisiyla her iki taraf
o anda ne kadar bilgiyi alabilecegini “pencere” bilgisi icinde belirtir.
Bilgisayar bilgiyi aldikca pencere alanindaki bos yer azalir ve sifir
oldugunda yollayici bilgi yollamayi durdurur. Alici nokta bilgiyi
isledikce pencere artar ve bu da yeni bilgiyi karsidan kabul edebilecegini
gosterir. “Acil isareti” ise bir kontrol karakteri veya diger bir komut
ile transferi kesmek vs. amaclarla kullanilan bir alandir. Bunlar disinda
ki alanlar TCP protokolunun detaylari ile ilgili oldugu icin burada
anlatilmayacaktir.
IP
katmani
TCP
katmanina gelen bilgi segmentlere ayrildiktan sonra IP katmanina yollanir.
IP katmani, kendisine gelen TCP segmenti icinde ne oldugu ile ilgilenmez.
Sadece kendisine verilen bu bilgiyi ilgili IP adresine yollamak
amacindadir. IP katmaninin gorevi bu segment icin ulasilmak istenen
noktaya gidecek bir “yol” (route) bulmaktir. Arada gecilecek sistemler ve
gecis yollarinin bu paketi dogru yere gecirmesi icin kendi baslik
bilgisini TCP katmanindan gelen segment’e ekler. TCP katmanindan gelen
segmentlere IP basliginin eklenmesi ile olusturulan IP paket birimlerine
datagram adi verilir. IP basligi eklenmis bir datagram asagidaki cizimde
gosterilmektedir:
Cizim-12 IP Datagram
Bu
basliktaki temel bilgi kaynak ve varis Internet adresi (32-bitlik adres,
144.122.199.20 gibi), protokol numarasi ve kontrol toplamidir. Kaynak
Internet adresi tabiiki sizin bilgisayarinizin Internet adresidir. Bu
sayede varis noktasindaki bilgisayar bu paketin nereden geldigini anlar.
Varis Internet adresi ulasmak istediginiz bilgisayarin adresidir. Bu bilgi
sayesinde aradaki yonlendiriciler veya gecis yollari (gateway) bu
datagram’i nereye yollayabileceklerini bilirler. Protokol numarasi IP’ye
karsi tarafta bu datagram’i TCP’ye vermesi gerektigini soyler. Her ne
kadar IP trafiginin cogunu TCP kullansa da TCP disinda bazi protokollerde
kullanilmaktadir dolayisiyla protokoller arasi bu ayrim protokol numarasi
ile belirlenir. Son olarak kontrol toplami IP basliginin yolda bozulup
bozulmadigini kontrol etmek icin kullanilir. Dikkat edilirse TCP ve IP
ayri ayri kontrol toplamlari kullanmaktalar. IP kontrol toplami baslik
bilgisinin bozulup bozulmadigi veya mesajin yanlis yere gidip gitmedigini
kontrol icin kullanilir. Bu protokollerin tasarimi sirasinda TCP’nin
ayrica bir kontrol toplami hesaplamasi ve kullanmasi daha verimli ve
guvenli bulundugu icin iki ayri kontrol toplami alinmasi yoluna
gidilmistir.
IP
basligini “I” ile gosterecek olursak IP katmanindan cikan ve TCP verisi
tasiyan bir datagram su hale gelir:
IT...IT...IT...IT...IT...
Basliktaki
“Yasam suresi” (Time to Live) alani IP paketinin yolculugu esnasinda
gecilen her sistemde bir azaltilir ve sifir oldugunda bu paket yok edilir.
Bu sayede olusmasi muhtemel sonsuz donguler ortadan kaldirilmis olur. IP
katmaninda artik baska baslik eklenmez ve iletilecek bilgi fiziksel
iletisim ortami uzerinden yollanmak uzere alt katmana (bu Ethernet, X.25,
telefon hatti vs. olabilir) yollanir.
Fiziksel katman
Fiziksel
katman gercekte Data Link Connection (DLC) ve Fiziksel ortami icermektedir.
Ancak biz burada bu ara katmanlari genlleyip tumune Fiziksel katman adini
verecegiz. Gunumuzde pek cok bilgisayar aginin Etherneti temel iletisim
ortami olarak kullanmasindan dolayi da Ethernet teknolojisini ornek olarak
anlatacagiz. Dolayisiyla burada Ethernet ortaminin TCP/IP ile olan
iletisimini aciklayacagiz. Ethernet kendine has bir adresleme kullanir.
Ethernet tasarlanirken dunya uzerinde herhangi bir yerde kullanilan bir
Ethernet kartinin tum diger kartlardan ayrilmasini saglayan bir mantik
izlenmistir. Ayrica, kullanicinin Ethernet adresinin ne oldugunu
dusunmemesi icin her Ethernet karti fabrika cikisinda kendisine has bir
adresle piyasaya verilmektedir. Her Ethernet kartinin kendine has numarasi
olmasini saglayan tasarim 48 bitlik fiziksel adres yapisidir. Ethernet
kart ureticisi firmalar merkezi bir otoriteden uretecekleri kartlar icin
belirli buyuklukte numara bloklari alir ve uretimlerinde bu numaralari
kullanirlar. Boylece baska bir ureticinin karti ile bir cakisma meydana
gelmez. Ethernet teknoloji olarak yayin teknolojisini (broadcast medium)
kullanir. Yani bir istasyondan Ethernet ortamina yollanan bir paketi o
Ethernet agindaki tum istasyonlar gorur. Ancak dogru varis noktasinin kim
oldugunu, o aga bagli makinalar Ethernet basligindan anlarlar. Her
Ethernet paketi 14 octet’lik bir basliga sahiptir. Bu baslikta kaynak ve
varis Ethernet adresi ve bir tip kodu vardir. Dolayisiyla ag uzerindeki
her makina bir paketin kendine ait olup olmadigini bu basliktaki varis
noktasi bilgisine bakarak anlar (Bu Ethernet teknolojisindeki en onemli
guvenlik bosluklarindan birisidir). Bu noktada Ethernet adresleri ile
Internet adresleri arasinda bir baglanti olmadigini belirtmekte yarar var.
Her makina hangi Ethernet adresinin hangi Internet adresine karsilik
geldigini tutan bir tablo tutmak durumundadir (Bu tablonun nasil
yaratildigi ilerde aciklanacaktir). Tip kodu alani ayni ag uzerinde farkli
protokollerin kullanilmasini saglar. Dolayisiyla ayni anda TCP/IP, DECnet,
IPX/SPX gibi protokoller ayni ag uzerinde calisabilir. Her protokol
basliktaki tip alanina kendine has numarasini koyar. Kontrol toplami
(Checksum) alanindaki deger ile komple paket kontrol edilir. Alici ve
vericinin hesapladigi degerler birbirine uymuyorsa paket yok edilir. Ancak
burada kontrol toplami basligin icine degilde paketin sonuna konulur.
Ethernet katmaninda islenip gonderilen mesaj ya da bilginin (Bu bilgi
paketlerine frame adi verilir) son hali asagidaki duruma gelir:
Cizim-13 Ethernet Paketi
Ethernet
basligini “E” ile ve Kontrol toplamini “C” ile gosterirsek yolladigimiz
dosya su sekli alir:
EIT...C
EIT...C EIT...C EIT...C EIT...C
Bu
paketler (frame) varis noktasinda alindiginda butun basliklar uygun
katmanlarca atilir. Ethernet arayuzu Ethernet baslik ve kontrol toplamini
atar. Tip koduna bakarak protokol tipini belirler ve Ethernet cihaz
surucusu (device driver) bu datagram’i IP katmanina gecirir. IP katmani
kendisi ile ilgili katmani atar ve protokol alanina bakar, protokol
alaninda TCP oldugu icin segmenti TCP katmanina gecirir. TCP sira
numarasina bakar, bu bilgiyi ve diger bilgileri iletilen dosyayiyi
orijinal durumuna getirmek icin kullanir. Sonucta bir bilgisayar diger bir
bilgisayar ile iletisimi tamamlar.
Ethernet encapsulation: ARP
Yukarida
Ethernet uzerinde IP datagramlarin nasil yer aldigindan bahsettik. Fakat
aciklanmadan kalan bir nokta bir Internet adresi ile iletisime gecmek icin
hangi Ethernet adresine ulasmamiz gerektigi idi. Bu amacla kullanilan
protokol ARP’dir (“Address Resolution Protocol”). ARP aslinda bir IP
protokolu degildir ve dolayisiyla ARP datagramlari IP basligina sahip
degildir. Varsayalimki bilgisayariniz 128.6.4.194 IP adresine sahip ve siz
de 128.6.4.7 ile iletisime gecmek istiyorsunuz. Sizin sisteminizin ilk
kontrol edecegi nokta 128.6.4.7 ile ayni ag uzerinde olup olmadiginizdir.
Ayni ag uzerinde yer aliyorsaniz, bu Ethernet uzerinden direk olarak
haberlesebileceksiniz anlamina gelir. Ardindan 128.6.4.7 adresinin ARP
tablosunda olup olmadigi ve Ethernet adresini bilip bilmedigi kontrol
edilir. Eger tabloda bu adresler varsa Ethernet basligina eklenir ve paket
yollanir. Fakat tabloda adres yoksa paketi yollamak icin bir yol yoktur.
Dolayisiyla burada ARP devreye girer. Bir ARP istek paketi ag uzerine
yollanir ve bu paket icinde “128.6.4.7” adresinin Ethernet adresi nedir
sorgusu vardir. Ag uzerindeki tum sistemler ARP istegini dinlerler bu
istegi cevaplandirmasi gereken istasyona bu istek ulastiginda cevap ag
uzerine yollanir. 128.6.4.7 istegi gorur ve bir ARP cevabi ile “128.6.4.7
nin Ethernet adresi 8:0:20:1:56:34” bilgisini istek yapan istasyona
yollar. Bu bilgi, alici noktada ARP tablosuna islenir ve daha sonra benzer
sorgulama yapilmaksizin iletisim mumkun kilinir. Ag uzerindeki bazi
istasyonlar surekli agi dinleyerek ARP sorgularini alip kendi tablolarini
da guncelleyebilirler.
TCP
disindaki diger protokoller: UDP ve ICMP
Yukarida
sadece TCP katmanini kullanan bir iletisim turunu acikladik. TCP
gordugumuz gibi mesaji segment’lere bolen ve bunlari birlestiren bir
katmandi. Fakat bazi uygulamalarda yollanan mesajlar tek bir datagram’in
icine girebilecek buyukluktedirler. Bu cins mesajlara en guzel ornek adres
kontroludur (name lookup). Internet uzerindeki bir bilgisayara ulasmak
icin kullanicilar Internet adresi yerine o bilgisayarin adini kullanirlar.
Bilgisayar sistemi baglanti kurmak icin calismaya baslamadan once bu ismi
Internet adresine cevirmek durumundadir. Internet adreslerinin isimlerle
karsilik tablolari belirli bilgisayarlar uzerinde tutuldugu icin
kullanicinin sistemi bu bilgisayardan bu adresi sorgulayip ogrenmek
durumundadir. Bu sorgulama cok kisa bir islemdir ve tek bir segment icine
sigar. Dolayisiyla bu is icin TCP katmaninin kullanilmasi gereksizdir.
Cevap paketinin yolda kaybolmasi durumunda en kotu ihtimalle bu sorgulama
tekrar yapilir. Bu cins kullanimlar icin TCP nin alternatifi protokoller
vardir. Boyle amaclar icin en cok kullanilan protokol ise UDP’dir(User
Datagram Protocol).
UDP
datagramlarin belirli siralara konmasinin gerekli olmadigi uygulamalarda
kullanilmak uzere dizayn edilmistir. TCP’de oldugu gibi UDP’de de bir
baslik vardir. Ag yazilimi bu UDP basligini iletilecek bilginin basina
koyar. Ardindan UDP bu bilgiyi IP katmanina yollar. IP katmani kendi
baslik bilgisini ve protokol numarasini yerlestirir (bu sefer protokol
numarasi alanina UDP’ye ait deger yazilir). Fakat UDP TCP’nin
yaptiklarinin hepsini yapmaz. Bilgi burada datagramlara bolunmez ve
yollanan paketlerin kayidi tutulmaz. UDP’nin tek sagladigi port
numarasidir. Boylece pek cok program UDP’yi kullanabilir. Daha az bilgi
icerdigi icin dogal olarak UDP basligi TCP basligina gore daha kisadir.
Baslik, kaynak ve varis port numaralari ile kontrol toplamini iceren tum
bilgidir.
Diger bir
protokol ise ICMP’dir (“Internet Control Message Protocol”). ICMP, hata
mesajlari ve TCP/IP yaziliminin bir takim kendi mesaj trafigi amaclari
icin kullanilir. Mesela bir bilgisayara baglanmak istediginizde sisteminiz
size “host unreachable” ICMP mesaji ile geri donebilir. ICMP ag hakkinda
bazi bilgileri toplamak amaci ile de kullanilir. ICMP yapi olarak UDP’ye
benzer bir protokoldur. ICMP de mesajlarini sadece bir datagram icine
koyar. Bununla beraber UDP’ye gore daha basit bir yapidadir. Baslik
bilgisinde port numarasi bulundurmaz. Butun ICMP mesajlari ag yaziliminin
kendisince yorumlanir, ICMP mesajinin nereye gidecegi ile ilgili bir port
numarasina gerek yoktur. ICMP ‘yi kullanan en populer Internet uygulamasi
PING komutudur. Bu komut yardimi ile Internet kullanicilari ulasmak
istedikleri herhangi bir bilgisayarin acik olup olmadigini, hatlardaki
sorunlari aninda test etmek imkanina sahiptirler Su ana kadar gordugumuz
katmanlari ve bilgi akisinin nasil oldugunu asagidaki sekilde daha acik
izleyebiliriz.
Cizim-14 Katmanlar arasi bilgi
akis
Internet Adresleri
Daha once
de gordugumuz gibi Internet adresleri 32-bitlik sayilardir ve noktalarla
ayrilmis 4 octet (ondalik sayi olarak) olarak gosterilirler. Ornek vermek
gerekirse, 128.10.2.30 Internet adresi 10000000 00001010 00000010 00011110
seklinde 32-bit olarak gosterilir. Temel problem bu bilgisayar agi
adresinin hem bilgisayar agini ve hem de belli bir bilgisayari tek basina
gosterebilmesidir.
Internet’te degisik buyuklukte bilgisayar aglarinin bulunmasindan dolayi
Internet adres yapisinin tum bu aglarin adres sorununu cozmesi
gerekmektedir. Tum bu ihtiyaclari karsilayabilmek amaci ile Internet
tasarlanirken 32bitlik adres yapisi secilmis ve bilgisayar aglarinin
cogunun kucuk aglar olacagi varsayimi ile yola cikilmistir.
32-bit
Internet adresleri, 'Ag Bilgi Merkezi (NIC) Internet Kayit Kabul'
tarafindan yonetilmektedir. Yerel yonetilen bir ag uluslararasi platformda
daha buyuk bir aga baglanmadiginda adres rastgele olabilir. Fakat, bu tip
adresler ileride Internet'e baglanilmasi durumunda sorun cikartabilecegi
icin onerilmemektedir. Ag yoneticisi bir diger IP-tabanli sisteme, ornegin
NSFNET'e baglanmak istediginde tum yerel adreslerin 'Uluslararasi Internet
Kayit Kabul' tarafindan belirlenmesi zorunludur.
Degisik
buyuklukteki aglari adreslemek amaci ile 3 sinif adres kullanilmaktadir:
A Sinifi
adresler: Ilk byte 0 'la 126 arasinda degisir. Ilk byte ag numarasidir.
Gerisi bilgisayarlarin adresini belirler. Bu tip adresleme, herbiri
16,777,216 bilgisayardan olusan 126 agin adreslenmesine izin verir.
B Sinifi
adresler: Ilk byte 128 'le 191 arasinda degisir. Ilk iki byte ag
numarasidir. Gerisi bilgisayar adresini belirler. Bu tip adresleme,
herbiri 65,536 bilgisayardan olusan 16,384 agin adreslenmesine izin verir.
C Sinifi
adresler: Ilk byte 192 ile 223 arasinda degisir. Ilk uc byte ag
numarasidir. Gerisi bilgisayarlarin adresini belirler. Bu tip adresleme,
herbiri 254 bilgisayardan olusan 2,000,000 agin adreslenmesine izin verir.
A Sinifi
Adresler
+-------+---------------+--------------------------------+
|0 |Ag Numarasi |Bilgisayar Numarasi |
+-------+---------------+--------------------------------+
B Sinifi
Adresler
+--+--+------------+--------------------+
|1 |0 |Ag Numarasi |Bilgisayar Numarasi |
+--+--+------------+--------------------+
C Sinifi
Adresler
+--+--+--+--------------+-----------------------+
|1 |1 |0 |Ag Numarasi |Bilgisayar Numarasi |
+--+--+--+--------------+-----------------------+
127 ile
baslayan adresler Internet tarafindan ozel amaclarla (localhost tanimi
icin) kullanilmaktadir.
223'un
uzerindeki adresler gelecekte kullanilmak uzere D-sinifi ve E-sinifi
adresler olarak reserve edilmis olarak tutulmaktadir.
A sinifi
adresler, NSFNET, MILNET gibi buyuk aglarda kullanilir. C sinifi adresler,
genellikle universite yerleskelerinde kurulu yerel aglarla, ufak devlet
kuruluslarinda kullanilir. NIC sadece ag numaralarini yonetir. Bolgede
olmasi beklenen bilgisayar sayisina gore A, B veya C sinifi adresleme
secilir. Bir bolgeye ag numarasi verildikten sonra bilgisayarlarin nasil
adreslenecegini bolge yonetimi belirler. IP adres alani ozellikle son
yillarda artan kullanim talebi sonucunda hizla tukenmeye baslamistir. Bu
nedenle yapilan IP adres taleplerinin gercekci olmasinin saglanmasi icin
gerekli kontroller yapilmaktadir.
Alt
Aglar (Subnet)
Subnet ya
da alt ag kavrami, kurumlarin ellerindeki Internet adres yapisindan daha
verimli yararlanmalari icin gelistirilen bir adresleme yontemidir. Pek cok
buyuk organizasyon kendilerine verilen Internet numaralarini "subnet" lere
bolerek kullanmayi daha uygun bulmaktadirlar. Subnet kavrami aslinda
'Bilgisayar numarasi' alanindaki bazi bitlerin 'Ag numarasi' olarak
kullanilmasindan ortaya cikmistir. Boylece, elimizdeki bir adres ile
tanimlanabilecek bilgisayar sayisi dusurulerek, tanimlanabilecek ag
sayisini yukseltmek mumkun olmaktadir.
Nasil bir
alt ag yapisinin kullanilacagi kurumlarin ag alt yapilarina ve
topolojilerine bagimli olarak degismektedir. Subnet kullanilmasi durumunda
bilgisayarlarin adreslenmesi kontrolu merkezi olmaktan cikmakta ve yetki
dagitimi yapilmaktadir. Subnet yapisinin kullanilmasi yanlizca o adresi
kullanan kurumun kendisini ilgilendirmekte ve bunun kurum disina hicbir
etkisi de bulunmamaktadir. Herhangi bir dis kullanici subnet kullanilan
bir aga ulasmak istediginde o agda kullanilan subnet yonteminden haberdar
olmadan istedigi noktaya ulasabilir. Kurum sadece kendi icinde kullandigi
gecis yollari ya da yonlendiriciler uzerinde hangi subnet'e nasil
gidilebilecegi tanimlamalarini yapmak durumundadir.
Bir
Internet agini subnet’lere bolmek, subnet maskesi denilen bir IP adresi
kullanilarak yapilmaktadir. Eger maske adresteki adres bit'i 1 ise o alan
ag adresini gostermektedir, adres bit'i 0 ise o alan adresin bilgisayar
numarasi alanini gostermektedir. Konuyu daha anlasilir kilmak icin bir
ornek uzerinde inceleyelim:
ODTU
kampusu icin bir B-sinifi adres olan 144.122.0.0 kayitli olarak
kullanilmaktadir. Bu adres ile ODTU 65.536 adet bilgisayari adresleyebilme
yetenegine sahiptir. Standart B- sinifi bir adresin maske adresi
255.255.0.0 olmaktadir. Ancak bu adres alindiktan sonra ODTU'nun teknik ve
idari yapisi goz onunde tutularak farkli subnet yapisi uygulanmasina karar
verilmistir. Adres icindeki ucuncu octet'inde ag alani adreslemesinde
kullanilmasi ile ODTU'de 254 adede kadar farkli bilgisayar aginin
tanimlanabilmesi mumkun olmustur. Maske adres olarak 255.255.255.0
kullanilmaktadir. Ilk iki octet (255.255) B-sinifi adresi, ucuncu octet
(255) subnet adresini tanimlamakta, dorduncu octet (0) ise o subnet
uzerindeki bilgisayari tanimlamaktadir.
144.122.0.0 ODTU icin kayitli adres
255.255.0.0 Standart B-Sinifi adres maskesi Bir ag, 65536 bilgisayar
255.255.255.0 Yeni maske 254 ag, her agda 254 bilgisayar
ODTU de
uygulanan adres maskesi ile subnetlere bolunmus olan ag adresleri merkezi
olarak bolumlere dagitilmakta ve her bir subnet kendi yerel agi uzerindeki
ag parcasinda 254 taneye kadar bilgisayarini adresleyebilmektedir. Boylece
tek bir merkezden tum universitedeki makinalarin IP adreslerinin
tanimlanmasi gibi bir sorun ortadan kaldirilmis ve adresleme yetkisi ayri
birimlere verilerek onlara kendi iclerinde esnek hareket etme kabiliyeti
taninmistir. Bir ornek verecek olursak: Bilgisayar Muhendisligi bolumu
icin 71 subneti ayrilmis ve 144.122.71.0 ag adresi kullanimlarina
ayrilmistir. Boylece, bolum icinde 144.122.71.1 den 144.122.71.254 'e
kadar olan adreslerin dagitimi yetkisi bolumun kendisine birakilmistir.
Ayni sekilde Matematik bolumu icin 144.122.36.0, Fizik bolumu icin
144.122.30.0 ag adresi ayrilmistir.
C-sinifi
bir adres uzerinde yapilan bir subnetlemeye ornek verecek olursak:
Elinde
C-sinifi 193.140.65.0 adres olan bir kurum subnet adresi olarak
255.255.255.192 kullandiginda
193.140.65.0 11000001 10001100 01000001 00000000
255.255.255.192 11111111 11111111 11111111 11000000
<-------------------------->|<---->
Ag numarasi alani |Bilgisayar Numarasi
elindeki
bu adresi dort farkli parcaya bolebilir. Degisik subnet maskeleri ile
nasil sonuclar edinilebilecegi ile ilgili ornek bir tablo verecek olursak
:
128.66.12.1 255.25.255.0 128.66.12 subneti uzerindeki
130.97.16.132 255.255.255.192 130.97.16.128 subneti uzerindeki
192.178.16.66 255.255.255.192 192.178.16.64 subneti uzerindeki
132.90.132.5 255.255.240.0 132.90.128 subnetindeki 4.5 inci
18.20.16.91 255.255.0.0 18.20.0.0 subnetindeki 16.91 inci
Ozel
adresler
Internet
adreslemesinde 0 ve 255'in ozel bir kullanimi vardir. 0 adresi, Internet
uzerinde kendi adresini bilmeyen bilgisayarlar icin (Belirli bazi
durumlarda bir makinanin kendisinin bilgisayar numarasini bilip hangi ag
uzerinde oldugunu bilmemesi gibi bir durum olabilmektedir) veya bir agin
kendisini tanimlamak icin kullanilmaktadir (144.122.0.0 gibi). 255 adresi
genel duyuru "broadcast" amaci ile kullanilmaktadir. Bir ag uzerindeki tum
istasyonlarin duymasini istediginiz bir mesaj genel duyuru "broadcast"
mesajidir. Duyuru mesaji genelde bir istasyon hangi istasyon ile
konusacagini bilemedigi bir durumda kullanilan bir mesajlasma yontemidir.
Ornegin ulasmak istediginiz bir bilgisayarin adi elinizde bulunabilir ama
onun IP adresine ihtiyac duydunuz, bu cevirme isini yapan en yakin "name
server" makinasinin adresini de bilmiyorsunuz. Boyle bir durumda bu
isteginizi yayin mesaji yolu ile yollayabilirsiniz. Bazi durumlarda birden
fazla sisteme bir bilginin gonderilmesi gerekebilir boyle bir durumda her
bilgisayara ayri ayri mesaj gonderilmesi yerine tek bir yayin mesaji
yollanmasi cok daha kullanisli bir yoldur. Yayin mesaji yollamak icin
gidecek olan mesajin IP numarasinin bilgisayar adresi alanina 255 verilir.
Ornegin 144.122.99 agi uzerinde yer alan bir bilgisayar yayin mesaji
yollamak icin 144.122.99.255 adresini kullanir. Yayin mesaji yollanmasi
birazda kullanilan agin fiziksel katmaninin ozelliklerine baglidir. Mesela
bir Ethernet aginda yayin mumkun iken noktadan noktaya (point-to-point)
hatlarda bu mumkun olmamaktadir.
Bazi eski
surum TCP/IP protokolune sahip bilgisayarlarda yayin adresi olarak 255
yerine 0 kullanilabilmektedir. Ayrica yine bazi eski surumler subnet
kavramina hic sahip olmayabilmektedir.
Yukarida
da belirttigimiz gibi 0 ve 255'in ozel kullanim alanlari oldugu icin aga
bagli bilgisayarlara bu adresler kesinlikle verilmemelidir. Ayrica
adresler asla 0 ve 127 ile ve 223'un uzerindeki bir sayi ile
baslamamalidir.
|