TCP/IP ve Bilesenleri
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.
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 1 8 16 24 31 +-------+---------------+--------------------------------+ |0 |Ag Numarasi |Bilgisayar Numarasi | +-------+---------------+--------------------------------+
B Sinifi Adresler
0 1 16 31 +--+--+------------+--------------------+ |1 |0 |Ag Numarasi |Bilgisayar Numarasi | +--+--+------------+--------------------+
C Sinifi Adresler
0 1 2 24 31 +--+--+--+--------------+-----------------------+ |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 alan,Bilgisayar Numarasi elindeki bu adresi dort farkli parcaya bolebilir. Degisik subnet maskeleri ile nasil sonuclar edinilebilecegi ile ilgili ornek bir tablo verecek olursak :
IP adres Subnet Aciklama
128.66.12.1 255.25.255.0 128.66.12 subneti uzerindeki
1. bilgisayar 130.97.16.132 255.255.255.192 130.97.16.128 subneti uzerindeki
2. bilgisayar. 192.178.16.66 255.255.255.192 192.178.16.64 subneti uzerindeki
3. bilgisayar 132.90.132.5 255.255.240.0 132.90.128 subnetindeki 4.5 inci
4.bilgisayar. 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.