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 çok teknik olmayan bilgiler verilecek ve sistemin temel çalisma prensipleri açiklanmaya çalisilacaktir.
Genel tanimlar
TCP/IP katmanlardan olusan bir protokoller kümesidir. Her katman degisik görevlere sahip olup altindaki ve üstündeki katmanlar ile gerekli bilgi alisverisini saglamakla yükümlüdür. Asagidaki sekilde bu katmanlar bir blok sema halinde gösterilmektedir.
Çizim-10 TCP/IP katmanlari
TCP/IP katmanlarinin tam olarak ne oldugu* nasil çalistigi konusunda bir fikir sahibi olabilmek için bir örnek üzerinde inceleyelim:
TCP/IP nine kullanildigi en önemli servislerden birisi elektronik postadir (e-posta). E- posta servisi için bir uygulama protokolü belirlenmistir (SMTP). Bu protokol e- posta’nin bir bilgisayardan bir baska bilgisayara nasil iletilecegini belirler. Yani e- postayi gönderen ve alan kisinin adreslerinin belirlenmesi* mektup içeriginin hazirlanmasi vs. gibi. Ancak e-posta servisi bu mektubun bilgisayarlar arasinda nasil iletilecegi ile ilgilenmez* iki bilgisayar arasinda bir iletisimin oldugunu varsayarak mektubun yollanmasi görevini 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 gönderilecek mesaj bir kerede gönderilemeyecek kadar büyük ise (Örnegin uzunca bir e-posta gönderiliyorsa) TCP onu uygun boydaki segment’lere (TCP katmanlarinin iletisim için 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*
ooooooooooooooo
TCP katmani bu dosyayi tasinabilecek buyuklukteki parcalara ayirir:
ooo ooo ooo ooo ooo
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.
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 çok teknik olmayan bilgiler verilecek ve sistemin temel çalisma prensipleri açiklanmaya çalisilacaktir.
Genel tanimlar
TCP/IP katmanlardan olusan bir protokoller kümesidir. Her katman degisik görevlere sahip olup altindaki ve üstündeki katmanlar ile gerekli bilgi alisverisini saglamakla yükümlüdür. Asagidaki sekilde bu katmanlar bir blok sema halinde gösterilmektedir.
Çizim-10 TCP/IP katmanlari
TCP/IP katmanlarinin tam olarak ne oldugu* nasil çalistigi konusunda bir fikir sahibi olabilmek için bir örnek üzerinde inceleyelim:
TCP/IP nine kullanildigi en önemli servislerden birisi elektronik postadir (e-posta). E- posta servisi için bir uygulama protokolü belirlenmistir (SMTP). Bu protokol e- posta’nin bir bilgisayardan bir baska bilgisayara nasil iletilecegini belirler. Yani e- postayi gönderen ve alan kisinin adreslerinin belirlenmesi* mektup içeriginin hazirlanmasi vs. gibi. Ancak e-posta servisi bu mektubun bilgisayarlar arasinda nasil iletilecegi ile ilgilenmez* iki bilgisayar arasinda bir iletisimin oldugunu varsayarak mektubun yollanmasi görevini 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 gönderilecek mesaj bir kerede gönderilemeyecek kadar büyük ise (Örnegin uzunca bir e-posta gönderiliyorsa) TCP onu uygun boydaki segment’lere (TCP katmanlarinin iletisim için 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*
ooooooooooooooo
TCP katmani bu dosyayi tasinabilecek buyuklukteki parcalara ayirir:
ooo ooo ooo ooo ooo
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.