# TCP (İletim Kontrol Protokolü)

Adres: https://softwaredictionary.org/tr/terimler/tcp
Kategori: Ağlar
Son güncelleme: 2026-09-30

Kısaca: TCP, bir bağlantı kurup kaybolan verileri yeniden göndererek iki program arasında veriyi güvenilir ve sıralı biçimde ileten temel bir internet protokolüdür.

## TCP nedir?

TCP (İletim Kontrol Protokolü), internetin ana protokollerinden biridir. Bir tarayıcı ile bir web sunucusu gibi iki program arasında güvenilir bir bağlantı kurar ve bir tarafın gönderdiği baytların diğer tarafa eksiksiz, bozulmadan ve aynı sırayla ulaşmasını garanti eder. TCP, IP'nin üzerinde çalışır: IP tek tek paketleri makineler arasında taşır, TCP ise bunları güvenilir bir veri akışına dönüştürür.

Bir TCP bağlantısı üçlü el sıkışmayla (three-way handshake) başlar: istemci `SYN` gönderir, sunucu `SYN-ACK` ile yanıt verir ve istemci `ACK` ile karşılık verir. Ardından veri numaralandırılmış segmentlere bölünür ve alıcı aldıklarını onaylar. Bir segment zamanında onaylanmazsa gönderen onu yeniden iletir; akış denetimi ve tıkanıklık denetimi ise alıcı ya da ağ aşırı yüklendiğinde göndericiyi yavaşlatır.

İyi bir benzetme telefon görüşmesidir. Önce bağlanırsınız, sonra sırayla konuşursunuz ve karşınızdaki kişi kaçırdığı bir şeyi tekrar etmenizi isteyebilir. TCP, tam olarak gönderildiği gibi ulaşması gereken trafiğin çoğunu taşır: HTTP/1.1 ve HTTP/2 üzerinden web sayfaları, e-posta, dosya aktarımları, SSH oturumları ve veritabanı bağlantıları bunların arasındadır.

TCP en çok UDP ile karşılaştırılır. UDP, bağlantı, sıralama ya da yeniden iletim olmadan bağımsız paketler gönderir; bu da onu daha hızlı ve hafif ama güvenilmez kılar. Her baytın doğru ulaşması gerektiğinde TCP'yi, canlı görüntülü görüşmeler ya da çevrimiçi oyunlar gibi hızın kusursuzluktan daha önemli olduğu durumlarda ise UDP'yi seçin.

## Önemli noktalar

- TCP bağlantı odaklıdır: veri göndermeden önce üçlü el sıkışmayla bir bağlantı açar.
- Sıra numaraları ve onaylar sayesinde teslimi, doğru sıralamayı ve hata denetimini garanti eder.
- Kaybolan veri otomatik olarak algılanır ve yeniden gönderilir.
- Akış denetimi ve tıkanıklık denetimi, göndericinin alıcıyı ya da ağı bunaltmasını engeller.
- Bunun bedeli, UDP'ye kıyasla ek yük ve gecikmedir.

## Örnek: Python'da bir TCP bağlantısı açmak

```python
import socket

# Open a TCP connection to a web server on port 80
with socket.create_connection(("example.com", 80)) as sock:
    # Send a minimal HTTP request over the TCP stream
    sock.sendall(b"GET / HTTP/1.1\r\nHost: example.com\r\nConnection: close\r\n\r\n")

    # TCP delivers the reply bytes reliably and in order
    reply = sock.recv(1024)
    print(reply.decode(errors="replace").splitlines()[0])  # e.g. HTTP/1.1 200 OK
```

## Sık sorulan sorular

**TCP ile UDP arasındaki fark nedir?**

TCP bir bağlantı kurar ve verinin eksiksiz ve sıralı ulaşmasını garanti eder; kaybolanı yeniden gönderir. UDP ise bağlantı ya da garanti olmadan paketleri olduğu gibi gönderir; bu daha hızlıdır ama bazı verilerin kaybolabileceği ya da sırasız ulaşabileceği anlamına gelir.

**TCP üçlü el sıkışma nedir?**

Bir TCP bağlantısının başlama biçimidir: istemci bir `SYN` mesajı gönderir, sunucu `SYN-ACK` ile yanıt verir ve istemci `ACK` ile onaylar. Bu üç adımdan sonra iki taraf başlangıç sıra numaralarında anlaşmış olur ve veri alışverişi yapabilir.

**HTTP, TCP kullanır mı?**

HTTP/1.1 ve HTTP/2, genellikle HTTPS için üzerine TLS eklenerek TCP üzerinde çalışır. HTTP/3 ise UDP üzerine kurulu, kendi güvenilirliğini ve şifrelemesini ekleyen daha yeni bir protokol olan QUIC üzerinde çalışır.

## Kaynaklar

- [RFC 9293: Transmission Control Protocol (TCP)](https://www.rfc-editor.org/rfc/rfc9293.html)

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
