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 haftanın konusu, IP adresinin yetmediği yer ve orada devreye giren kavram: port.
Sınavda sorulur: TCP/IP modelinin dört katmanı; port kavramı ve neden gerektiği; 0–65535 aralığı ve 0–1023 well-known portlar; HTTP 80, HTTPS 443, DNS 53, DHCP 67/68, 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ı, uzun port listelerini ezberlemek.
6.1 Tek IP adresiyle onlarca uygulamanın cevabı nasıl karışmıyor?
Cevap iki numaralı bir adreste:
192.0.2.20:443
└────┬────┘ └┬┘
IP adresi port
hangi cihaz? hangi uygulama ucu?
IP adresi hangi cihaza, port hangi uygulama ucuna gidileceğini söyler. Haftanın geri kalanı bu ikiliyi açıyor.
6.2 TCP/IP modelinin dört katmanı
- haftada OSI’yi bir tanı çerçevesi olarak kullanmıştık. Gerçek internet protokol yığını ç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 ağırlıklı olarak taşıma katmanında çalışacağız — çünkü portların yeri orası.
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
Aynı sunucu, aynı IP. Bir istek çalışıyor, diğeri reddediliyor. IP adresi ikisinde de aynı olduğuna göre farkı yaratan şey port.
http:// varsayılan olarak TCP 80, https:// ise TCP 443 portunu hedefler. 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, bir cihaz üzerindeki farklı hizmet uçlarını ayırt eder. Bir sunucuda web hizmeti, SSH hizmeti ve DNS hizmeti aynı anda çalışabilir — her biri farklı bir portta dinler.
443 gibi bir TCP/UDP portu yazılımsal bir iletişim ucudur. Switch üzerindeki “Port 1, Port 2…” ise fiziksel bir ağ arayüzüdür. Aynı kelime iki tamamen farklı bağlamda kullanılır; sınavda hangi bağlamda sorulduğuna dikkat et.
6.3.2 Bu derste bilinecek beş port
| Hizmet | Protokol / Port | Kullanım |
|---|---|---|
| HTTP | TCP 80 | Şifrelenmemiş web |
| HTTPS | TCP 443 | TLS ile web |
| DNS | UDP/TCP 53 | İsim çözümleme |
| DHCP | UDP 67/68 | IP yapılandırması alma |
| SSH | TCP 22 | Güvenli uzak kabuk |
Bu beşli dışında uzun port listeleri ezberlemen beklenmiyor.
6.4 Vaka 2 — Aynı anda beş uygulama, karışmayan cevaplar
Bir bilgisayarda aynı anda iki sekmede web, bir SSH oturumu ve bir DNS sorgusu var. Hepsinin IP adresi 192.168.1.20.
6.4.1 Kanıt ne söylüyor
Her bağlantı dört değerle benzersiz biçimde tanımlanı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ı ayıran şey kaynak portu. İş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.4.2 Port aralıkları
TCP ve UDP port numaraları 0–65535 arasındadır.
- 0–1023: well-known portlar. Yaygın standart hizmetler burada bulunur (80, 443, 53, 22…).
- Daha yüksek portlar: kayıtlı hizmetler veya istemcinin dinamik kullanımı.
Ephemeral port aralığı işletim sistemine göre değişir; bu derste belirli bir aralık ezberlemiyoruz. Bilmen gereken: sunucu tarafındaki port sabit ve bilinen, istemci tarafındaki port geçici ve rastgeledir.
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ısız datagram |
| Teslim garantisi | Sıralama ve yeniden iletim mekanizmaları sunar | 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 ve cevap da öyle. Bağlantı kurup kapatmanın ek yükü, sorgunun kendisinden büyük olurdu. Cevap gelmezse istemci basitçe tekrar sorar.
Yani doğru cümle “UDP hızlıdır” değil, “TCP daha fazla garanti sunar, UDP daha az ek yük getirir; uygulama hangisine ihtiyaç duyuyorsa onu kullanır”.
TCP veri akışını sıralar, kayıpta yeniden iletim yapar ve alıcının kabul edebileceği veri miktarını gözetir. Ayrıntılı sequence/acknowledgment ve congestion control hesabı bu dersin kapsamı dışındadır. Bu düzeyde şu yeterli: 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.
TTL bir zaman ölçüsü değil, hop sayacıdır. Bu mekanizma yönlendirme döngülerinin ağı kilitlemesini önler.
traceroute / tracert komutu tam olarak bu davranışı kullanı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.
- haftada DNS kayıtlarının ne kadar süre önbellekte tutulacağını belirleyen DNS TTL ifadesiyle 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ı
https://example.com yazdığında olan şeyi beş adımda okuyabilirsin:
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 bir tanı sırası olarak da işe yarar: hangi adımda kaldığını bilirsen hangi bileşeni inceleyeceğini de bilirsin. 12. haftada bunu komutlarla test edeceğiz.
Gerçek web iletişiminde TLS, ek kaynak istekleri, önbellek ve CDN gibi ayrıntılar da vardır; bu hafta çekirdek akışa odaklanı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 birlikte 4. haftanın dersini tekrarlıyor: 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.
- Port aralığı 0–65535; well-known portlar 0–1023.
- Bilinmesi gerekenler: HTTP 80, HTTPS 443, DNS 53, DHCP 67/68, SSH 22.
- Sunucu portu sabit ve bilinen, istemci portu geçici (ephemeral).
- TCP sıralama ve yeniden iletim sunar; 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.
- Port aralıklarını ve temel hizmet portlarını tanır.
- 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ı 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.
