HTTP, DNS, SMTP gibi protokoller burada yaşar. Uygulamanın gerçekten konuştuğu dildir; veriyi anlamlı isteklere ve yanıtlara dönüştürür.
Tarayıcıya bir adres yazdığınızda perde arkasında birbirine geçmiş bir protokol yığını çalışır: paketler IP ile yola çıkar, TCP onları sırayla ve kayıpsız taşır, TLS şifreler, HTTP de anlamı kurar. Bu katmanların her biri belirli bir işi üstlenir ve diğerine güvenir. Bu sayfada TCP/IP katman modelinden IP adreslemeye, TCP ve UDP'den bir isteğin uçtan uca yolculuğuna, HTTP'nin evriminden gecikme ve bant genişliğine kadar temel kavramları birlikte ve adım adım yan yana koyduk.
Ağ iletişimi katmanlara ayrılır; her katman yalnızca kendi işini yapar ve altındakine güvenir. Uygulama katmanı (HTTP) ne göndereceğini bilir ama paketlerin nasıl taşınacağıyla ilgilenmez; taşıma katmanı (TCP/UDP) güvenilirliği üstlenir; internet katmanı (IP) adresleme ve yönlendirmeyi; bağlantı katmanı ise fiziksel iletimi yapar. Bu ayrım sayesinde bir katmanı değiştirmek diğerlerini bozmaz — Wi-Fi'den fiber'e geçmek HTTP'yi etkilemez.
Application HTTP isteği # GET /
Transport + TCP başlığı # port, sıra no
Internet + IP başlığı # kaynak/hedef IP
Link + çerçeve (Ethernet) # MAC adresi
# her katman bir önceki paketi sarar;
# karşı tarafta ters sırayla açılır
HTTP, DNS, SMTP gibi protokoller burada yaşar. Uygulamanın gerçekten konuştuğu dildir; veriyi anlamlı isteklere ve yanıtlara dönüştürür.
TCP güvenilir ve sıralı bir akış sunar; UDP ise hızlı ama garantisizdir. Port numaraları, hangi uygulamaya ait olduğunu burada belirler.
IP, her paketi kaynaktan hedefe taşır. Yol boyunca router'lar paketi en uygun bir sonraki adıma yönlendirir; teslim garantisi vermez.
Her cihazın ağ üzerinde bir IP adresi vardır. IPv4 adresleri tükendiği için ağlar büyük ölçüde NAT ile özel adresleri tek bir genel adres arkasında paylaşır; IPv6 ise neredeyse sınırsız adres alanıyla bu kısıtı baştan ortadan kaldırır. CIDR gösterimi ise adreslerin hangi ağa ait olduğunu kısa ve net biçimde tanımlar.
# IPv4 — 32 bit, ~4.3 milyar adres
203.0.113.42
# IPv6 — 128 bit, pratikte sınırsız
2001:db8::8a2e:370:7334
# CIDR — /24 ağ = 256 adres
192.168.1.0/24
Network Address Translation, bir ağdaki özel adresleri (10.x, 192.168.x) dışarıya çıkarken tek bir genel adrese çevirir. IPv4'ü uzattı ama uçtan uca bağlanmayı zorlaştırdı.
Özel aralıklar (RFC 1918) yalnızca yerel ağda anlamlıdır ve internette yönlendirilmez. Genel adresler benzersizdir ve dünyanın her yerinden erişilebilir.
IP cihazı, port ise o cihazdaki servisi belirtir: 443 HTTPS, 80 HTTP, 53 DNS. IP + port = soket.
Taşıma katmanında iki temel protokol vardır. TCP bağlantı kurar, paketleri sıralar, kaybolanları yeniden gönderir ve akışı tıkanıklığa göre ayarlar — güvenilirlik ister ama bedeli gecikmedir. UDP ise bağlantı kurmaz, garanti vermez; küçük ek yükü ve düşük gecikmesiyle DNS, video ve oyun gibi senaryolarda tercih edilir. HTTP/3'ün UDP üzerine kurulması bu dengeyi yeniden çizdi.
istemci ──SYN──────────────▶ sunucu
istemci ◀────SYN-ACK───────── sunucu
istemci ──ACK──────────────▶ sunucu
# 3 mesaj = 1.5 RTT; bağlantı hazır.
# veri ancak bundan sonra akar.
istemci ──datagram─────────▶ sunucu
# el sıkışma yok, ACK yok, sıra yok.
# kaybolursa kaybolur — hızlı ama
# güvenilirliği uygulama üstlenir.
TCP her bayta sıra numarası verir; alıcı ACK ile onaylar. Onaylanmayan veri yeniden gönderilir, böylece sıra ve bütünlük korunur.
TCP, alıcının ve ağın kaldırabileceği hıza göre gönderim penceresini ayarlar. Paket kaybını tıkanıklık işareti sayıp yavaşlar.
Bütünlük şartsa TCP (web, dosya, e-posta); düşük gecikme önceliğindeyse UDP (DNS, canlı video, oyun, VoIP) doğru tercihtir.
Adres çubuğuna bir alan adı yazdığınızda dört protokol sırayla devreye girer: DNS adı IP'ye çevirir, TCP bağlantıyı kurar, TLS şifreli kanalı açar, HTTP de asıl isteği taşır. Katmanların nasıl birbirine geçtiğini görmenin en iyi yolu, tek bir isteğin baştan sona izini sürmektir.
1. DNS ornek.com → 203.0.113.42 # ad çözümleme
2. TCP SYN / SYN-ACK / ACK # bağlantı (~1 RTT)
3. TLS handshake + sertifika # şifreli kanal
4. HTTP GET / HTTP/2 # asıl istek
◀── 200 OK + HTML # yanıt döner
HTTP'nin anlamı sürümler arasında aynı kaldı — metotlar, başlıklar ve durum kodları değişmedi. Değişen, baytların telde nasıl taşındığıdır. HTTP/1.1 her bağlantıda tek isteği sıraya koyar; HTTP/2 tek bağlantıda çoklamayla (multiplexing) bunu aşar; HTTP/3 ise tıkanmayı kökten çözmek için TCP'yi bırakıp UDP üzerindeki QUIC'e geçer.
| Sürüm | Taşıma | Çoklama | Öne çıkan |
|---|---|---|---|
HTTP/1.1 |
TCP | Yok — sıralı | Kalıcı bağlantı, head-of-line blocking sorunu |
HTTP/2 |
TCP | Var — tek bağlantı | Multiplexing, başlık sıkıştırma; TCP'de HOL hâlâ var |
HTTP/3 |
QUIC (UDP) | Var — stream başına | TCP+TLS tek el sıkışmada; HOL blocking çözüldü |
HTTP/2, tek bağlantı üzerinde birden çok isteği paralel taşır. Bu, HTTP/1.1'in sayfa başına birçok bağlantı açma maliyetini ortadan kaldırır.
HTTP/2 çoklasa da, altındaki TCP tek paketi kaybedince tüm akışı bekletir. QUIC, stream'leri bağımsız taşıyarak bunu çözer.
QUIC, TCP ile TLS handshake'ini tek bir adımda birleştirir ve bağlantı kurulumunu hızlandırır; ağ değişiminde bağlantıyı koparmadan taşır.
Ağ performansını iki büyüklük belirler ve sık sık karıştırılır: gecikme (latency), bir paketin yola çıkıp hedefe varma süresidir; bant genişliği (bandwidth) ise birim zamanda taşınabilen veri miktarıdır. Daha geniş bant, gecikmeyi azaltmaz — bir kamyonu daha geniş yapmak yolu kısaltmaz. Web hızının çoğu sorunu aslında bant genişliği değil, gecikme ve tur sayısı (RTT) sorunudur.
Tek bir paketin gidiş süresi (ms). Mesafe ve aradaki atlama sayısıyla artar; ışık hızı bile bir alt sınır koyar.
Birim zamanda taşınan veri (Mbps). Büyük dosyalarda belirleyicidir; küçük isteklerde çoğunlukla atıl kalır.
Gidiş-dönüş süresi. handshake'ler RTT cinsinden ödenir; her ek tur, gecikmeyi doğrudan büyütür.
Tek bir paketin taşıyabileceği azami bayt. Aşılırsa paket bölünür (fragmentation), bu da verimi düşürür.
Ağ sadece veriyi taşımakla kalmaz; onu kötüye kullanıma ve kayba karşı da korur. Firewall'lar hangi trafiğin geçeceğini sınırlar, congestion control ağ tıkandığında çöküşü önler, yeniden iletim kayıpları toparlar. Ad çözümleme katmanında da DNS sorgularını şifrelemek ve doğrulamak, modern ağların temel hijyenidir.
Yalnızca gerekli portları açın; geri kalanını kapalı tutun. Açık olmayan bir port, saldırı yüzeyi de değildir.
TCP, paket kaybını bir uyarı sayıp gönderim hızını düşürür. Bu, tek bir akışın ağı boğmasını ve topyekûn çöküşü önler.
Onaylanmayan paket bir süre sonra yeniden gönderilir. Güvenilirlik buradan gelir; ama yüksek kayıpta gecikmeyi de büyütür.
DNS sorguları varsayılan olarak açık taşınır. DNS over HTTPS/TLS ile şifrelenir; böylece sorgular dinlenemez ve değiştirilemez.
Layer 3/4 saldırıları ağı paket seliyle boğar. Anycast dağıtımı ve upstream filtreleme, trafiği kaynağa varmadan eler.
Her istekte yeni bağlantı kurmak handshake maliyetini tekrar tekrar ödetir. Kalıcı bağlantı, bu turları bir kez öder.
TCP bağlantı kurar, sıralar ve kaybolanı yeniden gönderir — güvenilir ama yavaş. UDP bağlantı kurmaz, garanti vermez — hızlı ama kayıpları uygulamanın toparlaması gerekir. Web TCP, canlı video ve DNS çoğunlukla UDP kullanır.
Latency bir paketin varma süresidir (ms); bandwidth ise birim zamanda taşınan veridir (Mbps). Geniş bant büyük dosyalarda, düşük gecikme ise etkileşimli kullanımda belirleyicidir. Daha fazla bant, gecikmeyi azaltmaz.
IPv4 32 bitlik adres alanıyla tükendi ve NAT'a mecbur kaldı. IPv6 128 bit ile pratikte sınırsız adres sunar ve uçtan uca bağlanmayı geri getirir; ikisi bir süre yan yana yaşamaya devam eder.
HTTP düz metin taşır; aradaki herkes okuyabilir. HTTPS ise aynı HTTP'yi TLS şifreli kanal üzerinden taşır. Anlam aynıdır; fark, taşımanın şifreli olup olmamasındadır.
IP ağdaki cihazı; port ise o cihazdaki belirli servisi adresler. Bir sunucu tek IP üzerinde 443'te HTTPS, 22'de SSH sunabilir. İkisinin birleşimi (IP + port) bir soketi tanımlar.
İnternet protokollerini tanımlayan IETF RFC'leri ve MDN, Cloudflare gibi tarafsız teknik referanslar.
Yavaş bir bağlantıyı çözmekten dağıtık bir mimariyi tasarlamaya kadar; ağ katmanını doğru kurmak, üstündeki her şeyi daha hızlı ve dayanıklı kılar. Nereden başlayacağınıza birlikte bakalım.