Bilgi Ağı üzerindeki bilgi iletimi ve paylaşımı bazı kurallar dahilinde yapılmaktadır.Bu kurallara kısaca internet protokolleri, ya da TCP/IP protokoller ailesi denir.TCP/IP (Transmission Control Protocol/Internet Protocol ), bilgisayarlar ile veri iletme/alma birimleri arasında organizasyonu sağlayan,böylece bir yerden diğerine veri iletişimini olanaklı kılan pek çok veri iletişim protokolüne verilen genel addır.Bir başka değişle,TCP/IP protokolleri bilgisayarlar arası veri iletişiminin kurallarını koyar.Bu protokollere örnek olarak, dosya alma/gönderme protokolü ( FTP,File Transfer Protocol ),Elektronik posta iletişim protokolü ( SMTP Simple Mail Transfer Protocol ),TELNET protokolü ( İnternet üzerindeki başka bir bilgisayarda etkileşimli çalışma için geliştirilen login protolü )verilebilir.Adını sıkça duyduğumuz WWW ortamında birbirine link objelerin iletilmesini sağlayan protokol ise Hyper Text Transfer Protocol ( HTTP ) olarak adlandırılmaktadır.TCP/Ipprotokolü aynı zamanda, diğer iletişim ağlarında da kullanılabilir.Özellikle pek çok farklı tipte bilgisayarı iş istasyonlarını birbirine bağlayan yerel ağlarda ( LAN ) kullanımı yaygındır.
TCP/IP nin kullanildigi en onemli servislerden birisi elektronik postadir (e-posta). E- posta servisi icin bir uygulama protokolu belirlenmistir (SMTP). Bu protokol e- postanin 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 segmentlere (TCP katmanlarinin iletisim icin kullandiklari birim bilgi miktari) boler ve bu segmentlerin karsi tarafa dogru sirada, hatasiz olarak ulasmalarini saglar. Internet uzerindeki tek servis e-posta olmadigi icin ve segmentlerin 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 octeti 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 octetlik 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.
TCPnin (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 segmenti dogru varis noktasina ulastirmak tek basina yeterli degildir. TCP bu segmentin 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, datagrama eklenen basit bir kac octetden 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 segmentin 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 TCPnin 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.