Ana içeriğe geç
Kitap 11 · AğlarSayfa 28 / 37

TCP

İletim Kontrol Protokolü

Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/tcp

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.

Bir bakışta

TCP üçlü el sıkışması: SYN, SYN-ACK ve ACK; ardından veri iki yönde akar.İstemciSunucu1SYN · seq = x2SYN-ACK · seq = y, ack = x + 13ACK · ack = y + 1Bağlantı açıkveri, iki yönde
Veri gönderilmeden önce iki taraf, üç mesajla başlangıç sıra numaralarında anlaşır.

Ö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çmakpython
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.

Sık karşılaştırılanlar

İlgili sayfalar

Kaynaklar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar