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.

TCP/IP modeli, TCP/UDP, portlar ve internet üzerindeki veri akışının özeti.

TCP/IP modeli, TCP/UDP, portlar ve internet üzerindeki veri akışının özeti.
NoteBu haftanın kapsamı

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.

ImportantPort, switch portu değildir

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.4.2 Port aralıkları (sınav dışı)

TCP ve UDP port numaraları 0–65535 arasındadır.

  • 0–1023: well-known (iyi bilinen) portlar. Yaygın standart hizmetler bu aralıktadır (80, 443, 53, 22…).
  • Daha yüksek portlar: kayıtlı hizmetlere ya da istemcilerin geçici bağlantılarına ayrılır.

Ephemeral port aralığı işletim sistemine göre değişir; bu derste belirli bir aralık ezberlemiyoruz. Bilmen gereken şu: 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ı 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”.

NoteTCP neden güvenilir sayılı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.

WarningIP TTL ile DNS TTL aynı şey değildir

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.9 Sınav provası

Önce kendi cevabını seç; sonra cevap anahtarında her şıkkın neden doğru veya yanlış olduğunu oku. Sınav maddeleri bu mantıkla yazılır.

Madde 1. IP adresi ile port numarası hangi iki farklı soruya cevap verir?

  • A. IP hangi cihaza, port hangi uygulama/hizmet ucuna gidileceğini belirtir
  • B. IP hangi uygulamaya, port hangi cihaza gidileceğini belirtir
  • C. İkisi de aynı soruya cevap verir, biri yedektir
  • D. IP donanımı, port yazılımı tanımlar
  • E. IP yerel ağda, port yalnız internette kullanılır

Madde 2. Bir sunucuya ping başarılı ancak curl https://... komutu Connection refused veriyor. Bu ne anlama gelir?

  • A. Hedef sunucu tamamen kapalı ya da çökmüştür
  • B. Sunucuya ulaşılıyor, ama o port kapalı
  • C. Hedef sunucu ICMP mesajlarını engelliyordur
  • D. İstemci cihazın IP adresi geçersizdir
  • E. DNS çözümlemesi başarısız olmuştur

Madde 3. Bir sunucudaki web sitesi https:// ile açılıyor. Aynı sunucuya SSH ile bağlanmak isteyen teknisyen şu çıktıyı alıyor:

ssh: connect to host 203.0.113.10 port 22: Connection refused

Bu kanıt en çok hangi sonucu destekler?

  • A. SSH 443 portunu kullanır; istemci yanlış porta gidiyor
  • B. DNS çözümlemesi başarısız; sunucu adı bulunamıyor
  • C. Sunucunun ağ bağlantısı kopuk; kablo kontrol edilmeli
  • D. Sunucunun IP adresi yanlış; önce adres düzeltilmeli
  • E. Sunucu ayakta; TCP 22’de dinleyen SSH hizmeti yok

Madde 4. HTTPS ve DNS için bu derste bilinmesi gereken portlar hangileridir?

  • A. HTTPS: TCP 443, DNS: UDP/TCP 53
  • B. HTTPS: UDP 443, DNS: TCP 80
  • C. HTTPS: TCP 80, DNS: UDP 67
  • D. HTTPS: TCP 8443, DNS: UDP 5353
  • E. HTTPS: TCP 22, DNS: TCP 443

Madde 5. Aynı bilgisayardaki iki tarayıcı sekmesi aynı sunucunun aynı portuna bağlanıyor. Gelen cevapların karışmamasını sağlayan nedir?

  • A. İşletim sisteminin her isteğe sıra numarası vermesi
  • B. Her sekmenin ayrı bir IP adresi alması
  • C. DNS’in her sekme için ayrı kayıt tutması
  • D. Sunucunun her sekmeye farklı bir MAC adresi vermesi
  • E. Her bağlantıya ayrı bir geçici kaynak portu verilmesi

Madde 6. DNS sorguları için tipik olarak neden UDP tercih edilir?

  • A. TCP, DNS’in kullandığı 53 portunu desteklemez
  • B. DNS şifreleme gerektirmediği için UDP zorunludur
  • C. Küçük bir sorgu için bağlantı kurmak fazla yüktür
  • D. UDP paket kaybını kendi telafi ettiği için
  • E. UDP her zaman TCP’den daha güvenilirdir

Madde 7. IP paketindeki TTL alanının temel amacı nedir?

  • A. Paketin hangi router’lardan geçtiğini kaydetmek
  • B. Paketin ağda sonsuza kadar dolaşmasını önlemek
  • C. Paketin şifrelenme süresini belirlemek
  • D. Bağlantının saniye cinsinden ömrünü ölçmek
  • E. DNS kaydının önbellekte kalma süresini belirlemek

Madde 8. TCP/IP modelinde portlar hangi katmanın kavramıdır?

  • A. Uygulama
  • B. Sunum
  • C. İnternet
  • D. Taşıma
  • E. Ağ erişimi

Madde 1. Doğru: A. 192.0.2.20:443 gösteriminde IP cihazı, port o cihazdaki hizmeti belirler.

  • B yanlış: Roller ters çevrilmiş.
  • C yanlış: Farklı sorulara cevap verirler; biri diğerinin yedeği değildir.
  • D yanlış: IP adresi cihaza sonradan atanan bir adrestir; donanıma bağlı kimlik MAC adresidir.
  • E yanlış: Portlar yerel ağdaki iletişimde de kullanılır.

Madde 2. Doğru: B. Başarılı ping 1–3. katmanları doğrular; reddedilme ise hedefin “o kapı kapalı” cevabıdır. Hedeflenen portta dinleyen bir hizmet yok ya da bağlantı engelleniyor.

  • A yanlış: “Refused” sözcüğü sunucunun hiç cevap vermediği izlenimini verebilir. Ama kapalı olsaydı ping de yanıtsız kalırdı.
  • C yanlış: Bir şeyin engellendiği doğru olduğu için bu şık yakın görünür. Ama ping başarılı olduğuna göre ICMP engellenmiyor.
  • D yanlış: Bağlantı kurulamayınca istemcinin ayarlarından şüphelenmek kolaydır. Ama adres geçersiz olsaydı ping de başarısız olurdu.
  • E yanlış: Web sorunlarında DNS sık suçlandığı için akla gelir. Ama istekte IP kullanılmış; isim çözmeye gerek kalmamış.

Madde 3. Doğru: E. Connection refused “ulaştım ve o kapı kapalı” demektir. Web aynı sunucudan 443 üzerinden cevap verdiğine göre cihaz ayakta; sorun yalnız 22 numaralı porttaki hizmette. Hizmet çalışmıyor ya da bu port kapalı.

  • A yanlış: İkisi de şifreli bağlantı olduğu için aynı portu kullandıkları sanılabilir. Ama SSH’in standart portu TCP 22’dir. 443 HTTPS’in portudur; web bu yüzden çalışıyor.
  • B yanlış: Bağlanamama belirtisinde DNS sık suçlanır. Ama çıktıda hedef IP adresi zaten yazıyor ve bağlantı o adrese denenmiş. İsim çözme adımı geçilmiş; web sitesinin açılması da bunu destekler.
  • C yanlış: Alttan başlama alışkanlığı kabloyu ilk adım yapar. Ama kablo kopuk olsaydı ne web açılırdı ne de reddetme cevabı gelirdi. Kanıt fiziksel bağlantı sorununu dışarıda bırakıyor.
  • D yanlış: Bağlantı reddedilince yanlış yere gidildiği düşünülebilir. Ama adres yanlış olsaydı cevap veren bir cihaz olmazdı. Reddetme cevabı, doğru cihaza ulaşıldığını gösterir.

Madde 4. Doğru: A. Bu derste bilmen gereken dört porttan ikisi.

  • B yanlış: Protokoller ve portlar karıştırılmış.
  • C yanlış: TCP 80 HTTP’dir; DNS’in portu 53’tür (67, DHCP’nin kullandığı porttur).
  • D yanlış: 8443 alternatif bir HTTPS portu, 5353 yerel ağda cihaz bulmak için kullanılan bir porttur; standart değerler 443 ve 53’tür.
  • E yanlış: TCP 22 SSH’dir.

Madde 5. Doğru: E. İşletim sistemi her bağlantı için farklı bir geçici (ephemeral) kaynak portu seçer. Bağlantılar kaynak IP, kaynak port, hedef IP ve hedef port dörtlüsüyle ayırt edilir.

  • A yanlış: TCP’de gerçekten sıra numaraları olduğu için bu şık tanıdık gelir. Ama sıralama TCP içinde her bağlantı için ayrı yapılır; bağlantıları ayıran, IP ve port dörtlüsüdür.
  • B yanlış: Her sekme ayrı bir bağlantı gibi davrandığı için ayrı adres alıyor sanılabilir. Oysa sekmeler aynı bilgisayarın tek IP adresini kullanır.
  • C yanlış: Her sekme önce adı çözdüğü için DNS’in sekmeleri takip ettiği düşünülebilir. Ama DNS isim çözer, bağlantı ayırt etmez.
  • D yanlış: MAC de bir adres olduğu için ayırt edici sanılabilir. Ama MAC adresi yalnız yerel ağda geçerlidir; sunucu kimseye MAC adresi dağıtmaz.

Madde 6. Doğru: C. Sorgu ve cevap küçüktür. Tek bir küçük sorgu ve cevap için bağlantı kurup kapatmak, işin kendisinden fazla yük getirir.

  • A yanlış: DNS çoğunlukla UDP 53 ile anıldığı için TCP’de bu port yok sanılabilir. Oysa DNS gerektiğinde TCP 53’ü de kullanır.
  • B yanlış: Klasik DNS sorguları gerçekten şifresiz gittiği için bu bağlantı kurulabilir. Ama şifreleme ile taşıma protokolü seçimi ayrı konulardır.
  • D yanlış: DNS sorguları kaybolsa da sonunda cevap geldiği için UDP’nin telafi ettiği sanılır. Ama UDP telafi etmez; gerekirse istemci sorguyu yeniden gönderir.
  • E yanlış: Bir protokol tercih ediliyorsa daha iyi olduğu sanılır. Ama teslimi garanti etmeye çalışan TCP’dir.

Madde 7. Doğru: B. TTL, paketin bir yönlendirme döngüsüne girip sonsuza kadar dolaşmasını önler. Her router geçişinde azaltılır; sıfıra ulaşınca paket atılır.

  • A yanlış: traceroute TTL’den yararlanarak yolu gösterdiği için TTL’in yolu kaydettiği sanılabilir. Ama TTL bir sayaçtır; geçilen router’ların listesini tutmaz.
  • C yanlış: “Süre” çağrışımı yapan bir alan adı olduğu için herhangi bir zamanlamaya bağlanabilir. Ama TTL’in şifrelemeyle ilgisi yoktur.
  • D yanlış: Açılımı “Time To Live” olduğu için saniye cinsinden bir süre sanılır. Oysa IP TTL bir hop sayacıdır, saniye ölçüsü değil.
  • E yanlış: Bu tanım DNS TTL’ye aittir. İsim aynı olduğu için iki kavram sık karıştırılır.

Madde 8. Doğru: D. Portlar TCP/UDP’nin, yani taşıma katmanının kavramıdır.

  • A yanlış: Uygulamalar portları kullandığı için bu şık doğru görünebilir; ama port bir taşıma katmanı kavramıdır.
  • B yanlış: TCP/IP modelinde ayrı bir sunum katmanı yoktur; OSI’deki sunum katmanı da veri gösterimi ve kodlamayla ilgilidir.
  • C yanlış: İnternet katmanının adresi IP’dir.
  • E yanlış: Ağ erişimi katmanının adresi MAC’tir.

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ı. ping port 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.
Back to top