logo

9 Ocak 2014 Perşembe

TCP/IP Protokolü


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