TCP

Vikipedi, özgür ansiklopedi
Atla: kullan, ara
İnternet iletişim kuralları dizisi

OSI Modeli

Katman İletişim kuralları
7. Uygulama katmanı HTTP, HTTPS, SMTP, FTP, TFTP, UUCP, NNTP, SSL, SSH, IRC, SNMP, SIP, RTP, Telnet, ...
6. Sunum katmanı ISO 8822, ISO 8823, ISO 8824, ITU-T T.73, ITU-T X.409, ...
5. Oturum katmanı NFS, SMB, ISO 8326, ISO 8327, ITU-T T.6299, ...
4. Ulaşım katmanı TCP, UDP, SCTP, DCCP, ...
3. Ağ katmanı IP, IPv4, IPv6, ICMP, ARP, IGMP, IPX,...
2. Veri bağlantısı katmanı Ethernet, HDLC, Wi-Fi, Token ring, FDDI, PPP, ...
1. Donanım katmanı ISDN, RS-232, EIA-422, RS-449, EIA-485, ...

TCP (Transmission Control Protocol), TCP/IP protokol takımının iki aktarım katmanı protokolünden birisidir.

Gelişmiş bilgisayar ağlarında paket anahtarlamalı bilgisayar iletişiminde kayıpsız veri gönderimi sağlayabilmek için TCP protokolü yazılmıştır. HTTP, HTTPS, POP3, SMTP ve FTP gibi internet'in kullanıcı açısından en popüler protokollerinin veri iletimi TCP vasıtasıyla yapılır.

TCP, gönderilen veriler için özel bir TCP kabul (Ethereal gibi araçlarda ve birçok kaynakta kısaca TCP ACK da denir) paketi gönderir. Bu paket, gelmiş olan paketlerden hangi byte'a kadar olan kısmının doğru olarak alındığını gösterir. Gönderen taraf, kabul gelmediği sürece paketi arka arkaya birkaç kez yollar (belli bir süre sonra da pes eder).

Tarihçe[değiştir | kaynağı değiştir]

İlk olarak 1974 Mayıs ayında Elektrik ve Elektronik Mühendisleri Enstitüsü (İEEE) tarafından “A Protocol for Packet Network Intercommunication” başlıklı bir makale yayınlandı. Gazetenin yazarları, Vint Cerf ve Bob Khan, düğümler arasında kaynak paylaşımı için bir internet protokolü kullandılar. Bu protokol modelini paket anahtarlamalı olarak nitelendirdiler ve TCP ‘nin temelleri atılmış oldu.

1980 ‘li yıllarda Amerika Savunma Bakanlığı (DoD) tarafından OSI ye alternatif olarak gelişimine devam etti.DoD ’un Amerika piyasını büyük ölçekte etkilemesinden dolayı TCP/IP, yazılımlarda standart olarak kabul edildi. Bunun sonucunda TCP/IP ile birlikte , internetin yapıtaşı sayılabilecek ARPANET geliştirildi.  

Nasıl Bağlantı kurulur[değiştir | kaynağı değiştir]

A bilgisayarı B bilgisayarına TCP yoluyla bağlanmak istediğinde şu yol izlenir:

  • A bilgisayarı B bilgisayarına TCP SYNchronize mesajı yollar
  • B bilgisayarı A bilgisayarının isteğini aldığına dair bir TCP SYN+ACKnowledgement mesajı yollar
  • A bilgisayarı B bilgisayarına TCP ACK mesajı yollar
  • B bilgisayarı bir ACK "TCP connection is ESTABLISHED" mesajı alır

Üç zamanlı el sıkışma adı verilen bu yöntem sonucunda TCP bağlantısı açılmış olur.

Veri değişimi[değiştir | kaynağı değiştir]

Bağlantı oluşturulduktan sonra, B bilgisayarı A bilgisayarından paketler almaya başlar. B, her aldığı paketten sonra bir süre bekledikten sonra en son düzgün olarak aldığı paket grubunu A'ya bildirir. Gelen bildirimlere göre A, daha sonra hangi paketleri yollaması gerektiğine karar verir ve yollar. Arada kaybolan paketler (veya paket alındı bilgileri) tekrar tekrar gönderir.

Bağlantının sona erdirilmesi[değiştir | kaynağı değiştir]

Veri iletişimi bitince bilgisayarlardan herhangi biri diğerine TCP kapatma mesajı yollar. Diğer bilgisayar, kapatmayı teyid etme paketi ve kapatma isteği yollar. Son olarak, diğer bilgisayar da kapatma teyidini yollar ve bağlantı kapatılmış olur.

Bu işlemin adımları tam olarak şöyledir:

  • A bilgisayarı B bilgisayarına bağlantıyı sonlandırmak istediğine dair TCP FIN mesajı yollar.
  • B bilgisayarı A bilgisayarına bağlantı sonlandırma isteğini aldığına dair TCP ACK mesajı yollar.
  • B bilgisayarı A bilgisayarına bağlantıyı sonlandırmak istediğine dair TCP FIN mesajı yollar.
  • A bilgisayarı B bilgisayarına bağlantı sonlandırma isteğini aldığına dair TCP ACK mesajı yollar.

Bu işlemlerin sonunda TCP bağlantısı sonlandırılmış olur. Buna 4 zamanlı el sıkışma denir.

Görüldüğü üzere, bağlantının kurulmasından farklı olarak bağlantı her cihaz için ayrıca kapatılmaktadır. Bunun nedeni, istenildiğinde bağlantının tek yönlü olarak açık tutulabilmesini sağlamaktır. Bunun için tek tarafın bağlantı kapama adımlarını gerçekleştirmesi gerekir.

TCP Segmenti[değiştir | kaynağı değiştir]

TCP bağlantılı bir protokoldür. Bağlantılı olduğu için iki bilgisayar birbirini doğrulamadan bağlantıya geçmez.

TCP, taşıma katmanında verileri parçalara bölerek her bir parçanın önüne başlık bilgisi ekler. Başlık bilgisiyle birlikte bu veriye 'TCP Segmenti' denir.

TCP Segmentinin Genel Yapısı[değiştir | kaynağı değiştir]

Kaynak Port(Source Port):Veriyi gönderen bilgisayarın kullandığı TCP portudur.

Hedef Port(Destination Port):Hedef bilgisayarın TCP portudur.

Sıra Numarası(Sequence Number):TCP'nin verinin böldüğü her bir segmentine verdiği numaradır.

Onay Numarası(ACK Number):Alınan bir SYN paketine karşılık olan onay mesajı ACK biti ile gönderilir.

Başlık Uzunluğu(Header Length):TCP başlığının uzunluğunu gösterir.

Rezerve Edilmiş(Reserved):İlerde kullanılmak üzere saklı tutulur.

Kod Bitleri ya da Bayraklar(Code Bits or Flags):Segment ile ilgili kontrol bilgilerini taşır.

Pencere(Window):Akış denetimi için kullanılır.

Hata Kontrol Bitleri(Checksum):Segmentin hatalı ulaşıp ulaşmadığını kontrol etmek için kullanılır.

Acil İşaretçisi(Urgent Pointer):Bir verinin acil olarak iletilmek istendiği durumlarda kullanılır.

Seçenek(Option):TCP segmentinin maksimum boyutunun bilgisini taşır.

Veri(Data):Verinin bulunduğu kısım.[1]

Kaynakça[değiştir | kaynağı değiştir]

  1. ^ YILMAZ, DAVUT (2005). TCP Segmentinin Yapısı. İstanbul: Hayat Yayıncılık. ss. 43 44. ISBN 975-6700-90-4.