İçindekiler
ToggleTCP (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:
-
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. -
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. -
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:
-
FIN: Taraflardan biri (örneğin istemci) veri gönderimini bitirdiğini bildirir.
-
ACK: Karşı taraf bu isteği onaylar.
-
FIN: Karşı taraf da bağlantısını kapatır.
-
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.