
Transmission Control Protocol (TCP), bilgisayar ağlarında iki uç cihaz arasında güvenilir ve sıralı veri iletimi sağlamak amacıyla kullanılan, bağlantı odaklı bir aktarım katmanı protokolüdür. TCP, ilk kez ABD Savunma Bakanlığı'na bağlı İleri Araştırma Projeleri Ajansı (DARPA) tarafından geliştirilmiş olup, günümüzde İnternet üzerindeki veri iletiminin temel taşlarından birini oluşturur. Güvenilir veri aktarımı, hata kontrolü, akış kontrolü ve tıkanıklık kontrolü gibi işlevlerle desteklenmektedir. TCP, veri akışını paketler (segmentler) halinde iletir ve her paketi numaralandırarak alıcıya doğru sırayla ulaştırılmasını sağlar. Özellikle telsiz ortamlar gibi hata oranı yüksek iletişim kanallarında TCP'nin performansını artırmak için çeşitli teknikler geliştirilmiştir.
TCP, bağlantı kurulumu, veri iletimi ve bağlantı sonlandırma aşamalarını içerir. İki cihaz arasında bir oturum açılmadan veri transferi başlamaz. TCP'nin en önemli görevleri şunlardır:
TCP, temelinde bayt akışı üzerinden çalışır; her veri segmenti bir bayt numarası ile tanımlanır ve alıcı taraf, alınan segmentlere karşılık bir onay (ACK) mesajı gönderir.
TCP segmentleri, veri yükünün yanında kontrol bilgilerini içeren bir başlık taşır. Bu başlıkta kaynak portu, hedef portu, sıra numarası, onay numarası, bayraklar (SYN, ACK, FIN gibi), pencere boyutu ve hata kontrolü için kullanılan bir sağlama toplamı (checksum) yer alır.
TCP bağlantıları üç aşamalı bir el sıkışma (three-way handshake) mekanizması ile kurulur ve güvenli bir şekilde sonlandırılır.
Bağlantı başlatan cihaz (istemci) bir SYN segmenti gönderir. Hedef cihaz (sunucu) SYN-ACK segmenti ile yanıt verir. İstemci, bir ACK segmenti göndererek bağlantıyı kurar. Bu süreç aşağıdaki adımları içerir:

TCP protokolünün, bağlantı kurulumunda kullandığı "Three-Way Handshake" Şeması. (YZ ile çizilmiştir)
Bağlantı bitiminde, her iki taraf da FIN bayrağı taşıyan segmentler göndererek bağlantının kontrollü bir şekilde kapatılmasını sağlar.
TCP, hem akış hem de tıkanıklık kontrol mekanizmaları ile ağ kaynaklarının etkin kullanılmasını hedefler.
Alıcı taraf, göndericiye kendi tampon kapasitesine uygun bir pencere boyutu bildirir (advertised window). Gönderici, bu pencere boyutuna göre veri gönderimini sınırlar.
TCP, veri kaybını ağ tıkanıklığının göstergesi olarak değerlendirir. Bir segment kaybolduğunda gönderici, veri gönderim hızını azaltır. TCP'nin tıkanıklık kontrol teknikleri arasında şu mekanizmalar bulunur:
Telsiz ağlar gibi hata olasılığı yüksek ortamlarda klasik tıkanıklık kontrol yöntemleri, gereksiz veri hız kısıtlamalarına yol açabilir. Bu durumu aşmak için TCP üzerinde kayıp nedenini ayırt edebilen yeni teknikler geliştirilmiştir.
Paketlerin gönderildikleri sıradan farklı bir sırada alıcıya ulaşması, TCP için önemli bir sorundur. Paket yeniden sıralanması (packet reordering) aşağıdaki problemlere neden olur:
Bu problemleri hafifletmek için yeni algoritmalar geliştirilmiş, örneğin Eifel Algoritması gibi yöntemlerle sahte yeniden iletimler tespit edilmeye çalışılmıştır.
Telsiz ortamlarda segment kayıplarının nedeni çoğunlukla tıkanıklıktan değil, veri bozulmasından kaynaklanır.
Bu nedenle TCP, telsiz ortamlarda daha verimli çalışabilmesi için geliştirilmiştir:
Örneğin, TCP Peach ve TCP Westwood gibi protokoller telsiz ortamlardaki performansı artırmak için geliştirilmiş varyantlardır.

Henüz Tartışma Girilmemiştir
"TCP (Transmission Control Protocol) " maddesi için tartışma başlatın
TCP'nin Temel Özellikleri
TCP Başlık Yapısı
Bağlantı Kurulumu
Bağlantı Sonlandırılması
TCP'de Akış ve Tıkanıklık Kontrolü
Akış Kontrolü (Flow Control)
Tıkanıklık Kontrolü (Congestion Control)
TCP'de Paket Yeniden Sıralama Problemi
TCP'nin Telsiz Ortamlardaki Uyarlanması
Bu madde yapay zeka desteği ile üretilmiştir.