TCP
PROTOKOLÜ
TCP(Transmission Control Protocol), IP gibi şu problemleri
çözmek için çok bahsedilen bir protokoldür. Birine bir kitap
göndermek isteyip de posta ofisinin sadece mektup kabul ettiği bir
ortamda ne olurdu?Neler yapılabilirdi?Kitabın her sayfasını
ayırıp zarflara bölerdin ve bir posta kutusuna atardın. Alıcı
tüm sayfaların ulaştığından emin olmalıdır ve onları doğru
sırada yapıştırır. Bu, TCP’nin ne yaptığıdır.
TCP, göndermek istediğiniz bilgiyi alır ve onu parçalara
böler. Her parçayı numaralandırır ve böylece alış işlemleri
kontrol edilebilir, veri düzgün bir sırada geri dönebilir. Geliş
sırasına göre bu numaralar ağı geçerler. Verinizin bir parçası
bir TCP zarfına yerleştirilir, TCP zarfının içerisine bir IP
yerleştirilir ve ağa verilir. Öncelikle içinde bir IP zarfı olan
bir şeye sahip olun ki network onu taşısın.
Alış kısmında bir TCP yazılım paketi zarfları
biriktirir, verileri çıkarır ve onu düzgünce sıralar. Eğer
bazı zarflar eksikse göndericiye bunu sorar ve onları tekrar
transfer eder. Öncelikle alıcı bütün bilgilerin doğru
sıralanışına sahip olmalıdır. O veriyi hangi uygulama programı
kullanıyorsa onun seviyesine geçirir.
Bu, gerçekte TCP’ nin oldukça ütopik yanıdır. Gerçek
hayatta paketler kaybolmakla kalmaz aynı zamanda ulaşma esnasında
telefon hatlarındaki sorunlar yüzünden değişebilir de. TCP aynı
zamanda bu problemlere sahiptir. Veriyi zarfa koyduğu gibi bir
toplama(checksum) de yapar. Kontrol, pakette hata olup olmadığını
kontrol eden bir numaradır. Paket ulaştığı zaman bir
karşılaştırma işlemi yapılır eğer gönderilen ile alınan
eşleşmezse transfer işleminde bir hata oluşur. Hatalı paketleri
TCP atar ve bir daha gönderilmesini ister.
IP’nin görevi ham verileri-yani paketleri- bir yerden bir
yere göndermektir. TCP’ nin görevi ise akışı denetlemek ve
verilerin doğruluğunu kontrol etmektir.
Bağlantılı ve güvenilir iletişim sağlar . Bağlantılı
olması bilgisayarların iletişime geçmeden önce aralarında
oturum açılması sırasında kendi iletişim parametrelerini
birbirlerine göndermeleridir. İletişim sırasında bu
parametrelere göre hareket ediliyor.
Güvenilir olması da bilginin karşı tarafa ulaştığından
emin olmaktır. Bunun için ACK ,acknowledge onay mesajının bize
gelmesini sağlıyor. Eğer belli bir sürede mesajı alabilirsek
bizden çıkan bilgi karşı tarafın eline geçmiş oluyor alamazsak
gönderilen bilginin başına birşey geldi demektir bilgi tekrar
gönderiliyor.
Bu veri iletişim performansını düşürüyor ama güvenli
bir şekilde hedefe ulaşmasını sağlıyor.
TCP/IP protokolünde kritik işler yapan protokoller ve
servisler verilerini TCP ile iletirler. Örneğin 21 nolu portu
kullanan FTP , 23 nolu portu kullanan telnet ve 53 nolu portu
kullanan DNS.
TCP iletişimini Network Monitör programı ile
gözlediğimizde ilkin 3 veri çerçevesinin ( frame) gidip geldiğini
görüyoruz. Bu 3 verinin amacı veri paketinin ( bu paketlere TCP de
segment deniyor)geliş ve gidişi senkronize etmek , karşı tarafa
tampon bellek miktarı hakkında bilgi vermek ve TCP bağlantısını
kurmaktır.
Bu 3 çerçeve ile TCP bağlantısı açıldıktan sonra
dosya listesinin aktarımı, dosyanın listeden seçilip aktarımı
için Netbios oturumu açılıyor hemen ardından da SMB oturumu
açılıyor(server message block). SMB microsoft ağlarında
bilgisayarlar arası kaynak paylaşımı için kullanılıyor.
TCP iletişiminde iletilmek istenen veriler segmentlere
ayrılır , her segmente sıra numarası verilir . Gönderici
bilgisayar , segmentleri yani çerçeveleri teker teker gönderip
bunların herbirisi için onay bekler . Bunun yerine belli sayıda
topluca göndeririz. Örneğin 10 ar 10 ar.Bu belli sayıya pencere
denir.
Alıcı bilgisayar da çerçeveler kendisine ulaştıkça
bunları kendi tampon belleğine yerleştirir.İki ardışık çerçeve
tampon belleğe yerleşince alıcı bilgisayar aldığı en son
çerçeve için mesaj gönderir.
Örneğin gönderici 45 adet segment tutuyor pencere
büyüklüğü 10 olsun. Bu çerçevelerin 10 ar 10 ar gönderileceği
anlamına geliyor. İlk 10 çerçeve gönderildi onay geldi. 17.
çerçevenin başına birşey geldi. Bu durumda en son 16. çerçeve
için mesaj gider.Veri iletimi tekrarlanacaktır. Ama çerçeveler
teker teker gönderilmediği için 17. çerçeveden başlamak üzere
10 çerçeve gönderir. Bu sefer 1-10-20... den oluşan pencere
17-27-37... şekline dönüşür.Bu yönteme kayan pencereler
denir.
TCP iki kısımdan oluşur. Başlık (header) ve veri (data)
kısmı. Başlık kısmı şu alanlardan oluşur.
Kaynak Portu (source port):
Gönderilen bilgisayarın TCP portu
Hedef Portu( destination port ) :
Alıcı bilgisayarın TCP portu
Sıra Numarası ( sequence number
) :Segmentlere verilen numara
Onay Numarası( Acknowledgement
number)
Veri Uzunluğu ( Data lenght ):
TCP segmentinin uzunluğu
Rezerve ( reserved) :Gelecekte
kullanılmak üzere rezerve edilmiş
Bayraklar ( Flags) :
Segmentin içeriğine dair bilgi
Pencere (window): TCP
penceresinde ne kadar yer kalmış olduğunu gösterir.
Kontrol Toplamı (checksum):
Başlık kısmının bozulup bozulmadığını gösteren kontrol
kısmı
Acil Veri Göstergesi (Urgient
pointer) : Bayrak kısmında gösterilen acil bir verinin iletilmek
istediğini gösterir.
0 yorum:
Yorum Gönder