TCP Nedir? (Transmission Control Protocol’ün Temelleri)

TCP (Transmission Control Protocol), internetin temel iletişim yapısını oluşturan TCP/IP protokol ailesinin en önemli bileşenlerinden biridir. TCP, verilerin iki bilgisayar arasında güvenilir, sıralı ve hatasız biçimde iletilmesini sağlar. Bu yapı içinde IP (Internet Protocol) verinin hangi adrese gideceğini belirlerken, TCP verinin doğru sırada ve eksiksiz ulaşmasını garanti eder. TCP’nin açılımı “Transmission Control Protocol” yani “Veri Aktarım Denetim Protokolü”dür. Diğer bir protokol olan UDP (User Datagram Protocol) ise bağlantısız ve daha hızlıdır, ancak veri bütünlüğünü garanti etmez. Kısacası, TCP güvenilir iletişim sağlarken, UDP hız odaklı iletişim sunar; bu nedenle TCP web trafiği ve e-posta gibi güvenilir aktarım gereken yerlerde, UDP ise canlı yayın veya oyun gibi düşük gecikme isteyen uygulamalarda tercih edilir.

TCP Nedir?

TCP (Transmission Control Protocol), bilgisayar ağlarında veri iletimini güvenilir, sıralı ve hatasız şekilde gerçekleştiren bir iletişim protokolüdür.
1974 yılında Vinton Cerf ve Bob Kahn tarafından geliştirilen TCP, internetin omurgasını oluşturan TCP/IP protokol kümesinin en önemli bileşenidir.

TCP, temel olarak iki uç arasında bağlantı kurar ve verinin bütünlüğünü sağlamak için hata denetimi, akış kontrolü ve paket sıralama mekanizmaları kullanır.
Bu nedenle “connection-oriented (bağlantı odaklı)” bir protokol olarak sınıflandırılır.

TCP’nin Açılımı ve Anlamı

  • Transmission: Veri aktarımı

  • Control: Denetim

  • Protocol: Kurallar dizisi

Yani “Transmission Control Protocol”, veri aktarımını yöneten kurallar dizisi anlamına gelir.
Bir cihazdan diğerine gönderilen veri, TCP tarafından segmentlere (paketlere) bölünür; her bir segment numaralandırılır ve hedefe ulaştığında sıralı şekilde birleştirilir.

TCP’nin Amacı

TCP’nin temel amacı, “veri karşı tarafa tam, sıralı ve eksiksiz ulaşsın” prensibini garanti altına almaktır.
Bunu başarmak için aşağıdaki teknik özellikleri uygular:

  • Üç yönlü el sıkışma (Three-Way Handshake) ile bağlantı kurulumu

  • Checksum kullanarak hata kontrolü

  • ACK (Acknowledgement) paketleriyle iletilen verinin alındığını onaylama

  • Flow Control (Akış kontrolü) mekanizmasıyla tampon taşmasını önleme

  • Congestion Control (Tıkanıklık kontrolü) algoritmalarıyla ağ trafiğini dengeleme

Bu özellikler, TCP’yi güvenilir ama nispeten yavaş bir protokol hâline getirir — çünkü hızdan çok veri bütünlüğü önceliklidir.

TCP/IP Nedir? (İnternetin Temel Mimarisi)

TCP/IP, modern internetin çalışmasını sağlayan protokol mimarisidir. Adından da anlaşılacağı üzere iki temel bileşeni vardır:

  • TCP (Transmission Control Protocol): Veri bütünlüğünü ve güvenilir iletişimi sağlar.

  • IP (Internet Protocol): Verinin ağ üzerindeki yönlendirmesini ve adreslemesini gerçekleştirir.

İkisi birlikte çalışarak, verinin bir cihazdan diğerine ulaşması için gerekli tüm aşamaları tanımlar. Bu yapı, OSI referans modelinin sadeleştirilmiş hâlidir ve dört katmandan oluşur:

Katman Adı Açıklama
1 Ağ Erişim Katmanı (Network Access Layer) Fiziksel bağlantı ve donanım düzeyinde veri aktarımı
2 İnternet Katmanı (Internet Layer) IP adresleme ve yönlendirme
3 Taşıma Katmanı (Transport Layer) TCP ve UDP ile veri iletimi
4 Uygulama Katmanı (Application Layer) HTTP, FTP, SMTP gibi uygulama düzeyi protokoller

Bu model sayesinde, farklı sistemler (Windows, macOS, Linux vb.) aynı ağ üzerinden birbirleriyle sorunsuz iletişim kurabilir.

TCP vs UDP

TCP, veri bütünlüğü ve güvenilirlik üzerine kurulu iken UDP (User Datagram Protocol), hız ve düşük gecikme süresi öncelikli uygulamalarda tercih edilir.

Özellik TCP UDP
Bağlantı Tipi Bağlantı odaklı (connection-oriented) Bağlantısız (connectionless)
Güvenilirlik Yüksek – paketlerin iletimi ve sırası garanti edilir Düşük – paketler kaybolabilir veya karışabilir
Hız Daha yavaş Daha hızlı
Hata Kontrolü Checksum, ACK, yeniden gönderim mekanizmaları Minimum hata kontrolü
Kullanım Alanı Web tarayıcıları, e-posta, dosya transferi (HTTP, FTP, SMTP) Canlı yayın, VoIP, online oyunlar, video konferans
El Sıkışma (Handshake) 3 yönlü (SYN, SYN-ACK, ACK) Yok

Özetle:

  • TCP, doğruluk ve bütünlük odaklıdır.

  • UDP, hız ve verimlilik odaklıdır.

Her ikisi de TCP/IP ailesine ait olsa da, kullanım senaryosu seçiminde performans ve güvenilirlik dengesine göre karar verilir.

TCP’nin Çalışma Mantığı

TCP, iki uç nokta arasında güvenilir bir bağlantı kurmak için “state-based” (durum tabanlı) bir yaklaşım kullanır. Bağlantı kurulmadan önce, iki cihazın birbirini tanıması ve veri aktarımına hazır olduklarını doğrulaması gerekir. Bu işlem, Three-Way Handshake (Üç Yönlü El Sıkışma) olarak bilinir.

1. Three-Way Handshake (Bağlantı Kurulumu)

Bu süreçte üç temel adım vardır:

  1. SYN (Synchronize):
    İstemci (Client), sunucuya (Server) bir bağlantı isteği gönderir. Bu pakette SYN bayrağı 1 olarak işaretlenir ve ilk Sequence Number (SEQ) atanır.

  2. SYN-ACK (Synchronize-Acknowledge):
    Sunucu, isteği aldığını onaylar (ACK) ve kendi bağlantı isteğini iletir (SYN). Yani aynı anda iki işlem gerçekleşir: hem kabul hem senkronizasyon.

  3. ACK (Acknowledge):
    İstemci, sunucunun SYN-ACK paketini onaylayan bir ACK paketi yollar. Bu noktada bağlantı başarılı şekilde kurulmuş olur.

Bağlantı kurulduktan sonra her iki taraf da veri göndermeye hazır hale gelir. Bu durum TCP state tablosunda ESTABLISHED olarak görülür.

2. Veri Aktarımı (Data Transmission)

Bağlantı kurulduktan sonra veri segmentler halinde iletilir. Her segment, özgün bir Sequence Number (SEQ) değeri taşır ve alıcı taraf her paketi Acknowledgment Number (ACK) ile onaylar.

TCP’nin bu yapısı sayesinde:

  • Eksik paketler tespit edilip yeniden gönderilir.

  • Sıra karışıklıkları çözülür.

  • Veri akışı Flow Control (akış kontrolü) algoritmasıyla dengelenir.

TCP, bu süreçte Sliding Window mekanizması kullanır. Bu pencere sistemi, göndericiye “aynı anda kaç baytlık veri gönderebileceğini” bildirir. Böylece alıcının tampon belleği taşmaz ve ağ tıkanıklığı önlenir.

3. Bağlantının Kapatılması (Connection Termination)

Veri aktarımı tamamlandığında TCP bağlantısı da dört aşamada sonlandırılır:

  1. FIN: Taraflardan biri (örneğin istemci) veri gönderimini bitirdiğini bildirir.

  2. ACK: Karşı taraf bu isteği onaylar.

  3. FIN: Karşı taraf da bağlantısını kapatır.

  4. ACK: İlk taraf son kez onay gönderir ve bağlantı tamamen kapanır.

Bu dört aşamalı süreç, “Four-Way Handshake” olarak bilinir.
Sonrasında bağlantı TIME-WAIT durumuna geçer; bu aşama, gecikmiş veya tekrar gönderilen paketlerin ağda dolaşması ihtimaline karşı kısa bir süre bekleme sağlar. Ardından bağlantı CLOSED durumuna girer.

TCP Segment (Paket) Yapısı

TCP, gönderdiği her veri segmentinin başına bir TCP Header (başlık) ekler. Bu başlık, bağlantının yönetilmesi için gerekli kontrol bilgilerini içerir. TCP başlığı genellikle 20 ila 60 bayt arasında değişir.

Alan Boyut (bit) Açıklama
Source Port 16 Gönderenin port numarası
Destination Port 16 Hedef port numarası
Sequence Number 32 Gönderilen verinin sıra numarası
Acknowledgment Number 32 Alınan son verinin ardından beklenen byte numarası
Data Offset 4 Başlığın uzunluğunu belirtir
Reserved 6 Gelecekte kullanım için ayrılmıştır
Flags (Control Bits) 6 SYN, ACK, FIN, RST, PSH, URG bayraklarını içerir
Window Size 16 Akış kontrolü için alıcının kabul edebileceği byte sayısı
Checksum 16 Hata denetimi için kullanılır
Urgent Pointer 16 Acil veriler için işaretleme yapar
Options Değişken MSS, SACK gibi isteğe bağlı alanlar
Data Değişken Gönderilen veri içeriği

TCP başlığındaki Checksum alanı, veri bütünlüğünü sağlamak açısından kritik öneme sahiptir.
Gönderici, başlık ve veri kısmına göre bir kontrol toplamı üretir; alıcı da aynı işlemi yapar ve sonuçlar farklıysa paketi reddeder.

TCP Bağlantı Durumları (TCP State Machine)

Bir TCP bağlantısı boyunca taraflar farklı durumlara girip çıkar. Bu durumlar RFC 793 (Transmission Control Protocol) standardında tanımlanmıştır.

Durum Açıklama
LISTEN Sunucu, gelen bağlantı isteklerini dinliyor.
SYN-SENT İstemci, SYN isteği gönderdi ve yanıt bekliyor.
SYN-RECEIVED Sunucu, SYN aldı ve SYN-ACK gönderdi.
ESTABLISHED İki taraf da veri aktarımına hazır.
FIN-WAIT-1 / FIN-WAIT-2 Taraflardan biri bağlantıyı kapatma sürecinde.
CLOSE-WAIT Taraf, karşıdan gelen FIN isteğini aldı ve kapanmayı bekliyor.
LAST-ACK Karşı tarafa son ACK gönderiliyor.
TIME-WAIT Gecikmeli paketlerin dolaşımı bekleniyor.
CLOSED Bağlantı tamamen kapandı.

Bu durum geçişleri sayesinde TCP, ağ üzerindeki veri trafiğini güvenli ve tutarlı bir şekilde yönetir.

TCP ve UDP Arasındaki Teknik Farkın Derinlemesine Açıklaması

TCP’nin bağlantı temelli yapısı sayesinde her veri paketi hem numaralandırılır hem doğrulanır.
UDP’de ise bu işlemler yoktur; veri “datagram” olarak gönderilir, ancak ne alındığı ne de eksiksiz ulaşıp ulaşmadığı takip edilmez.

Teknik açıdan farklar şunlardır:

  • TCP, Sequence Number ve Acknowledgment Number alanlarını kullanarak veri akışını senkronize eder.

  • UDP paketinde bu alanlar bulunmaz; başlık yalnızca 8 byte’tır.

  • TCP, Sliding Window ve Congestion Control (örneğin Reno, Cubic) algoritmalarını destekler.

  • UDP bu kontrol katmanlarına sahip değildir; bu yüzden daha düşük gecikme, ancak daha fazla hata riski vardır.

TCP’nin bu karmaşık ama güvenilir yapısı, HTTP, SSH, SMTP, IMAP, FTP gibi protokoller için temel oluşturur.
UDP ise DNS sorguları, canlı yayın (RTP), çevrim-içi oyunlar ve VoIP gibi “zaman duyarlı” uygulamalarda kullanılır.

TCP/IP ve OSI Modeli Arasındaki İlişki

TCP/IP protokol kümesi, OSI (Open Systems Interconnection) modeline göre daha sade ama gerçek dünya uygulamalarına çok daha uygun bir yapıdır.
Her iki model de ağ iletişimini katmanlara ayırır, ancak TCP/IP modeli yalnızca 4 katmandan oluşur. OSI modeli ise 7 katmanlıdır.

Aşağıdaki tablo bu iki model arasındaki ilişkiyi gösterir:

OSI Katmanı TCP/IP Katmanı Açıklama
7 – Uygulama (Application) Uygulama (Application) HTTP, FTP, DNS, SMTP, SSH
6 – Sunum (Presentation) Yok TCP/IP’de bu katman uygulama ile birleştirilmiştir
5 – Oturum (Session) Yok TCP/IP’de bu katman da uygulama katmanında ele alınır
4 – Taşıma (Transport) Taşıma (Transport) TCP ve UDP veri akışını yönetir
3 – Ağ (Network) İnternet (Internet) IP, ICMP, ARP gibi yönlendirme protokolleri
2 – Veri Bağlantısı (Data Link) Ağ Erişim (Network Access) Ethernet, PPP, Wi-Fi gibi teknolojiler
1 – Fiziksel (Physical) Yok Kablo, sinyal, donanım bileşenleri

Bu yapı, TCP/IP’nin gerçek ağ donanımlarında OSI modelinden daha doğrudan uygulanabilmesini sağlar.
Örneğin, IP katmanı OSI’nin ağ katmanına denk gelirken, TCP ve UDP OSI’nin taşıma katmanına karşılık gelir.
HTTP, FTP, DNS gibi protokoller ise uygulama katmanında yer alır.

TCP Akış Kontrolü (Flow Control) ve Pencere Yönetimi (Sliding Window)

TCP’nin en güçlü yönlerinden biri akış kontrolü (flow control) mekanizmasıdır.
Amaç, gönderici ve alıcı arasındaki hız farkını dengelemek, alıcının tampon belleğinin taşmasını önlemektir. Bu işlev, Sliding Window (kaydırılabilir pencere) algoritmasıyla sağlanır.

Sliding Window Mantığı

TCP, gönderilen her pakete bir Sequence Number atar. Alıcı taraf, aldığı son paketi onaylayarak (ACK) bir sonraki beklenen paket numarasını bildirir.

Bu sırada “pencere boyutu (window size)” parametresi, göndericinin aynı anda kaç baytlık veri gönderebileceğini belirtir.
Örneğin:

  • Alıcı “Window Size = 10.000 byte” derse, gönderici bu sınırı aşmadan veriyi aralıksız iletebilir.

  • Eğer alıcı tamponu dolarsa, Zero Window sinyaliyle göndericiye “bekle” mesajı gönderir.

Bu mekanizma sayesinde ağ tıkanıklığı veya veri taşması olmadan verimli bir iletim sağlanır.

Dinamik Pencere Boyutu (Dynamic Window Scaling)

Yüksek hızlı ağlarda TCP başlığındaki 16 bitlik Window Size alanı (maksimum 65.535 byte) yetersiz kalır.
Bu nedenle RFC 1323 ile birlikte Window Scaling Option tanımlanmıştır.
Bu özellik, pencere boyutunu 1 gigabayta kadar genişleterek yüksek bant genişlikli bağlantılarda performans kaybını önler.

TCP Tıkanıklık Kontrolü (Congestion Control)

TCP yalnızca akış kontrolü değil, aynı zamanda tıkanıklık kontrolü (congestion control) mekanizmalarına da sahiptir.
Amaç, ağ üzerindeki yükü algılayıp veri gönderim hızını buna göre dinamik biçimde ayarlamaktır.

1. TCP Tahoe

İlk tıkanıklık kontrol algoritmalarından biridir.
Üç temel mekanizması vardır:

  • Slow Start: Başlangıçta pencere küçük tutulur, başarılı iletimlerle üstel artış yapılır.

  • Congestion Avoidance: Eşik değer aşıldığında pencere büyümesi yavaşlar.

  • Fast Retransmit: Paket kaybı tespit edilirse hemen yeniden gönderilir.

Dezavantajı, her kayıpta pencereyi sıfırlayarak performans düşürmesidir.

2. TCP Reno

Tahoe’nun geliştirilmiş versiyonudur.
Kaybın ardından pencereyi sıfırlamak yerine yarıya indirir (multiplicative decrease).
Bu sayede ağ verimliliği artar ve yeniden toparlanma süresi kısalır.

3. TCP Cubic

Linux çekirdeğinde varsayılan hale gelen modern algoritmadır.
Kübik büyüme fonksiyonu kullanarak ağ gecikmesine göre pencere boyutunu ayarlar.
Yüksek hızlı, uzun mesafeli bağlantılarda Tahoe ve Reno’ya göre daha kararlı sonuçlar üretir.

4. TCP BBR (Bottleneck Bandwidth and Round-trip propagation time)

Google tarafından geliştirilen en yeni tıkanıklık kontrol algoritmasıdır.
Klasik yöntemlerden farklı olarak paket kaybını değil, gecikme (RTT) ve bant genişliği ölçümünü temel alır.
Bu sayede özellikle video akışı, bulut sunucuları ve CDN altyapılarında yüksek verim sağlar.

TCP’nin Modern İnternetteki Rolü

TCP, internetin başlangıcından bu yana en güvenilir taşıma protokolü olarak kullanılmaya devam ediyor. Ancak ağ hızı, gecikme süresi ve mobil bağlantıların artışı yeni protokol ihtiyaçlarını da doğurdu.

HTTP/2 ve TCP

HTTP/2, TCP üzerinde çalışan çoklu istek (multiplexing) sistemini destekler.
Bir bağlantı üzerinden aynı anda birden fazla veri akışı taşınabilir. Ancak, TCP’nin “Head-of-Line Blocking” (satır başı engellemesi) sorunu hâlâ tam olarak çözülememiştir; bir paket kaybolduğunda diğerleri de beklemek zorunda kalır.

QUIC (Quick UDP Internet Connections)

Google tarafından geliştirilen QUIC, TCP’nin güvenilirlik özelliklerini UDP üzerine inşa eder.
Yani UDP’nin hızını, TCP’nin güvenliğini birleştirir. QUIC artık HTTP/3’ün temelini oluşturur.
Bu sayede bağlantı gecikmeleri azalır, el sıkışma süresi kısalır ve paket kayıplarının etkisi minimuma iner.

TCP’nin Geleceği

TCP hâlâ Finansal işlemler, E-posta sunucuları, SSH erişimi, Dosya aktarımı (FTP/SFTP) gibi güvenilirlik gerektiren alanlarda en güçlü standarttır.
Ancak yüksek hız gerektiren modern uygulamalarda QUIC ve benzeri protokoller yavaş yavaş TCP’nin yerini almaya başlamıştır.

Kaynak: https://www.ietf.org/rfc/rfc9293.txt

Ransomware, Türkçede fidye yazılımı olarak bilinen, bilgisayar sistemlerine sızarak kullanıcı...