6 TCP/IP ve internet iletişimi
Bilgisayarında aynı anda tarayıcı, e-posta istemcisi, bir oyun ve müzik uygulaması çalışıyor. Hepsi aynı IP adresini kullanıyor. Peki gelen cevaplar neden birbirine karışmıyor? Bu hafta IP adresinin nerede yetmediğini ve eksik kalan işi hangi kavramın gördüğünü göreceğiz: port.
Sınavda sorulur: TCP/IP modelinin dört katmanı; port kavramı ve neden gerektiği; HTTP 80, HTTPS 443, DNS 53, SSH 22; geçici (ephemeral) port fikri; TCP–UDP temel farkı; IP TTL’in amacı ve DNS TTL ile karıştırılmaması; web isteğinin beş adımı.
Sınav dışı (bilgi amaçlı): TCP bayrakları, sequence/acknowledgment ayrıntıları, congestion control, HTTP/3 ve QUIC mekanizması, port aralıklarının sınırları (0–65535, 0–1023), DHCP’nin port numaraları, uzun port listelerini ezberlemek.
6.1 Tek IP adresiyle onlarca uygulamanın cevabı nasıl karışmıyor?
Cevap, iki parçadan oluşan bir adreste:
192.0.2.20:443
└────┬────┘ └┬┘
IP adresi port
hangi cihaz? hangi uygulama ucu?
IP adresi verinin hangi cihaza, port o cihazdaki hangi uygulamaya gideceğini söyler. Bağlantının iki ucundaki uygulamalara kısaca uygulama ucu diyeceğiz. Haftanın geri kalanında bu ikilinin ayrıntısına ineceğiz.
6.2 TCP/IP modelinin dört katmanı
4. haftada OSI’yi arızanın hangi katmanda olduğunu bulmak için kullanmıştık. İnternette kullanılan protokoller ise çoğunlukla dört katmanlı TCP/IP modeliyle anlatılır:
| TCP/IP katmanı | Görevi | Örnekler | OSI karşılığı |
|---|---|---|---|
| Uygulama | Kullanıcıya yakın hizmetler | HTTP, DNS, SSH | 5–7 |
| Taşıma | Uygulamalar arası uçtan uca iletişim | TCP, UDP, portlar | 4 |
| İnternet | IP adresleme, ağlar arası iletim | IPv4, IPv6 | 3 |
| Ağ erişimi | Yerel bağlantı | Ethernet, Wi-Fi | 1–2 |
Bu hafta çoğunlukla taşıma katmanındayız, çünkü portlar bu katmana ait.
6.3 Vaka 1: Sunucuya erişiliyor, hizmet yanıt vermiyor
ping 203.0.113.10 → başarılı
curl https://203.0.113.10 → Failed to connect: Connection refused
curl http://203.0.113.10 → HTTP/1.1 200 OK
6.3.1 Kanıt ne söylüyor
Sunucu da IP adresi de aynı, ama isteklerden biri çalışıyor, diğeri reddediliyor. O hâlde farkı port yaratıyor.
http:// varsayılan olarak TCP 80, https:// ise TCP 443 portuna gider. Bu sunucuda 80 açık, 443 kapalı. Connection refused mesajı “sana ulaşamadım” değil, “ulaştım ve o kapı kapalı” demektir.
Port, aynı cihazda çalışan hizmetleri birbirinden ayırır. Bir sunucuda web, SSH (uzaktaki bir bilgisayara güvenli komut satırı bağlantısı) ve DNS hizmeti aynı anda çalışabilir. Her biri farklı bir portu dinler, yani o numaraya gelen bağlantıları bekler.
443 gibi bir TCP/UDP portu yazılımdaki bir iletişim ucudur, elle tutulur bir şey değildir. Switch üzerindeki “Port 1, Port 2…” ise kablonun takıldığı fiziksel yuvadır. Aynı kelime iki ayrı anlamda kullanılır; sınavda hangisinin sorulduğuna dikkat et.
6.3.2 Bilmen gereken dört port
| Hizmet | Protokol / Port | Kullanım |
|---|---|---|
| HTTP | TCP 80 | Şifrelenmemiş web |
| HTTPS | TCP 443 | TLS ile şifrelenmiş web |
| DNS | UDP/TCP 53 | İsim çözümleme |
| SSH | TCP 22 | Uzak bilgisayara güvenli bağlantı |
Bu dördü dışında port numarası ezberlemen beklenmiyor. Vakada başka bir port geçerse hizmetin adıyla birlikte verilir. Örneğin 9. haftada göreceğin DHCP, UDP 67 ve 68 portlarını kullanır; bu numaraları bilmen gerekmez.
6.4 Vaka 2: Aynı anda üç bağlantı, karışmayan cevaplar
Bir bilgisayarda aynı anda iki tarayıcı sekmesi ve bir SSH oturumu açık. Hepsi aynı IP adresinden, 192.168.1.20’den çıkıyor.
6.4.1 Kanıt ne söylüyor
Her bağlantı dört değerle tanınır ve bu dörtlü her bağlantıda farklıdır: kaynak IP, kaynak port, hedef IP, hedef port.
Sekme 1 : 192.168.1.20:53124 → 203.0.113.10:443
Sekme 2 : 192.168.1.20:53125 → 203.0.113.10:443
SSH : 192.168.1.20:53126 → 198.51.100.5:22
İlk iki satırda hedef aynı: aynı sunucu, aynı port. Onları kaynak portu ayırıyor. İşletim sistemi her yeni bağlantı için geçici bir port seçer; buna ephemeral (dinamik) port denir. Cevap geldiğinde işletim sistemi bu numaraya bakarak paketi doğru uygulamaya teslim eder.
6.5 Vaka 3: Neden DNS UDP, web TCP?
Bir öğrenci “UDP hızlıdır, o hâlde her şey UDP kullansın” diyor.
6.5.1 Kanıt ne söylüyor
İki protokol farklı hizmet sunar; hız tek ölçüt değildir.
| Özellik | TCP | UDP |
|---|---|---|
| Bağlantı | Bağlantı kurar | Bağlantı kurmadan tek tek paket (datagram) gönderir |
| Teslim garantisi | Veriyi sıralar, kaybolanı yeniden iletir | Protokol düzeyinde garanti yok |
| Ek yük | Daha fazla | Daha az |
| Örnek | Web, SSH | DNS sorguları, gerçek zamanlı trafik |
Web neden TCP? Bir sayfanın yarısı eksik gelirse işe yaramaz. TCP kayıp parçayı yeniden ister ve sırayı düzeltir.
DNS sorgusu neden UDP? Sorgu tek küçük bir pakete sığar, cevap da öyle. Bağlantı kurup kapatmak için gidip gelen mesajlar (ek yük) sorgunun kendisinden büyük olurdu. Cevap gelmezse istemci yeniden sorar.
Yani doğru cümle “UDP hızlıdır” değil, “TCP daha çok garanti verir, UDP daha az ek yük getirir; uygulama hangisine ihtiyaç duyuyorsa onu kullanır”.
TCP veriyi sıraya koyar, kaybolan parçayı yeniden gönderir ve alıcının alabileceğinden fazlasını göndermemeye dikkat eder. Sequence/acknowledgment ayrıntıları ve congestion control hesabı sınavda sorulmaz. Bilmen gereken şu: TCP, uygulamaya güvenilir ve sıralı bir byte akışı sunmaya çalışır.
6.6 Vaka 4: Paket sonsuza kadar dolaşırsa ne olur?
İki router yanlış yapılandırılmış ve paketi birbirine geri gönderiyor. Bu paket ağda sonsuza kadar dolaşır mı?
6.6.1 Kanıt ne söylüyor
Hayır, çünkü IPv4 başlığında TTL (Time To Live) alanı vardır. Paket her router’dan geçtiğinde TTL bir azaltılır. Değer sıfıra ulaştığında paket atılır.
Adında “time” geçse de TTL bir zaman ölçüsü değil, hop sayacıdır (hop: paketin bir router’dan geçmesi). Böylece yönlendirme döngüsüne giren, yani router’lar arasında gidip gelen paketler ağı kilitleyemez.
Paketin geçtiği router’ları listeleyen traceroute / tracert komutu da bu davranıştan yararlanır: TTL’i önce 1, sonra 2, sonra 3 yaparak gönderir ve her adımda hangi router’ın “TTL bitti” cevabı verdiğini görür. 10. ve 12. haftalarda bu çıktıyı yorumlayacağız.
9. haftada DNS kayıtlarının ne kadar süre önbellekte tutulacağını belirleyen DNS TTL değeriyle karşılaşacaksın. İsim aynı, kavram farklı: IP TTL paketin router geçiş sayısını sınırlar, DNS TTL bir kaydın önbellek ömrünü belirler.
6.7 Bir web isteğinin beş adımı
Tarayıcıya https://example.com yazdığında olanları beş adımda izleyebilirsin:
1. İsim çözme DNS: example.com hangi IP? (UDP 53)
↓
2. Taşıma bağlantısı İstemci hedef porta bağlanır (TCP 443)
↓
3. Uygulama isteği Tarayıcı HTTP isteğini gönderir
↓
4. Ağlar arası iletim IP paketleri gateway → ISP → hedef
↓
5. Yanıt Sunucu yanıtı üretir, veri geri gelir
Bu beş adım arıza ararken de işe yarar: isteğin hangi adımda takıldığını bulursan neye bakacağını da bilirsin. 12. haftada bunu komutlarla test edeceğiz.
Gerçek bir sayfa açılırken TLS şifrelemesi, sayfadaki resim ve dosyalar için ek istekler, önbellek ve CDN gibi başka ayrıntılar da vardır; bu hafta yalnız temel akışa bakıyoruz.
6.8 Ekranda ne gördük
> curl -I http://example.com ← TCP 80
HTTP/1.1 200 OK
> curl -I https://example.com ← TCP 443
HTTP/2 200
> curl -I https://example.com:8443 ← kapalı bir port
Failed to connect ... port 8443: Connection refused
↑ IP'ye ulaşıldı, o kapı kapalı: Katman 4 kanıtı
> ping example.com ← port kullanmaz
Reply from 93.184.x.x: time=18ms
↑ port kapalıyken bile ping çalışır
Son iki blok, 4. haftada gördüğümüz kuralı yeniden gösteriyor: ping çalışması hizmetin çalıştığını kanıtlamaz. Şimdi nedenini biliyorsun: ping port kullanmaz.
6.10 Tek sayfa özet
- IP hangi cihaz, port hangi uygulama ucu. Tek IP üzerinde onlarca bağlantı bu sayede karışmaz.
- Bir bağlantı dört değerle tanımlanır: kaynak IP, kaynak port, hedef IP, hedef port.
- Bilinmesi gereken portlar: HTTP 80, HTTPS 443, DNS 53, SSH 22. Aralık sınırları sınav dışı.
- Sunucu portu sabit ve bilinen, istemci portu geçici (ephemeral).
- TCP veriyi sıralar ve kaybolanı yeniden iletir; UDP daha az ek yük getirir. “UDP hızlıdır” yetersiz bir açıklamadır.
- IP TTL bir hop sayacıdır ve yönlendirme döngülerini önler; DNS TTL ile karıştırma.
- Web isteği: isim çözme → taşıma bağlantısı → uygulama isteği → IP iletimi → yanıt.
Connection refused= ulaştım, kapı kapalı.pingport kullanmaz.
6.11 Bu bölümün kazanımları
Bu bölümü bitiren öğrenci:
- IP adresi ile portun farklı sorulara cevap verdiğini açıklar.
- Temel hizmet portlarını (HTTP, HTTPS, DNS, SSH) tanır ve kapalı port belirtisini yorumlar.
- Geçici (ephemeral) port ile bağlantıların nasıl ayırt edildiğini açıklar.
- TCP ile UDP’nin farklı hizmetler sunduğunu gerekçelendirir.
- IP TTL’in amacını açıklar ve DNS TTL ile karıştırmaz.
- TCP/IP katmanlarını sıralar ve bir kavramın hangi katmana ait olduğunu belirler.
- Bir web isteğinin adımlarını sıralar ve hata mesajını doğru adıma bağlar.
