6 TCP/IP modeli ve internet iletişimi
Tarayıcıya bir adres yazıp Enter’a bastığınızda tek bir protokol çalışmaz. Alan adının çözümlenmesi, hedefe IP üzerinden ulaşılması, uygulamalar arasında veri taşınması ve web isteğinin gönderilmesi gibi farklı işler birlikte yürütülür. OSI modeli bu görevleri kavramsal olarak ayırmamıza yardım etmişti; şimdi internetin günlük çalışmasında karşılaşacağımız TCP/IP protokol ailesine daha yakından bakacağız.
Bu bölümde TCP/IP katmanlarını, IP’nin temel rolünü, TCP ve UDP arasındaki farkları, port numaralarını, yaygın uygulama protokollerini, ICMP’yi ve bir web isteğinin uçtan uca temel yolculuğunu inceleyeceğiz. DNS ve DHCP’yi burada yalnız protokol zincirindeki yerleri kadar kullanacağız; ayrıntılı çalışmalarını 9. bölümde ele alacağız.

6.1 Bu bölümün sonunda
- TCP/IP modelinin dört temel katmanını açıklayabilecek,
- OSI ile TCP/IP modellerinin yaklaşık ilişkisini yorumlayabilecek,
- IP’nin ağlar arası iletişimdeki rolünü açıklayabilecek,
- TCP ve UDP’yi bağlantı durumu, sıralama, yeniden iletim ve ek yük açısından karşılaştırabilecek,
- TCP bağlantısının üç yönlü el sıkışma fikrini temel düzeyde açıklayabilecek,
- IP adresi ile port numarasının farklı sorulara cevap verdiğini gösterebilecek,
- HTTP/HTTPS, DNS, DHCP, SSH ve e-posta protokollerini amaçlarıyla eşleştirebilecek,
- ICMP’nin tanılama ve hata bildirimindeki rolünü tanıyabilecek,
- bir web isteğinin DNS → IP → taşıma → uygulama zincirini sıralayabileceksiniz.
6.2 TCP/IP modeli
TCP/IP, internet iletişiminde kullanılan protokollerin oluşturduğu geniş bir ailedir. “TCP/IP” ifadesi yalnızca TCP ve IP adlı iki protokolü değil, DNS, HTTP, UDP, ICMP ve daha birçok protokolün birlikte çalıştığı ekosistemi ifade eder (Dordal 2023).
Bu kitapta dört katmanlı sade modeli kullanıyoruz:
| TCP/IP katmanı | Temel sorumluluk | Örnekler |
|---|---|---|
| Uygulama | Kullanıcının/uygulamanın ağ hizmeti | HTTP, DNS, DHCP, SSH, e-posta protokolleri |
| Taşıma | Uç uygulamalar arasındaki veri aktarımı | TCP, UDP |
| İnternet | Ağlar arası adresleme ve paket iletimi | IPv4, IPv6, ICMP |
| Ağ erişimi | Yerel bağlantı ve fiziksel iletim | Ethernet, Wi‑Fi |
OSI ile yaklaşık ilişkiyi hatırlayalım:
OSI 7–5 ≈ TCP/IP Uygulama
OSI 4 ≈ TCP/IP Taşıma
OSI 3 ≈ TCP/IP İnternet
OSI 2–1 ≈ TCP/IP Ağ erişimi
Bu eşleme bir matematiksel eşitlik değildir; farklı kaynakların aynı sorumlulukları farklı katman isimleriyle anlatabilmesini anlamaya yarar.
6.3 Protokol nedir?
Protokol, iletişimde kullanılan mesajların biçimini, anlamını ve çoğu zaman hangi sırayla gönderileceğini tanımlayan kurallar bütünüdür.
Örneğin iki web uygulaması iletişim kurarken şu soruların ortak cevabı olmalıdır:
- İstek nasıl ifade edilir?
- Hangi hedefe gönderilir?
- Veri kaybolursa ne yapılır?
- Yanıt nasıl tanınır?
- Bağlantının hangi uygulamaya ait olduğu nasıl anlaşılır?
Bu soruların tamamına tek bir protokol cevap vermez. Farklı protokoller farklı sorumlulukları paylaşır.
6.4 IP’nin görevi
IP (Internet Protocol), paketlerin kaynak ve hedef IP adreslerine göre ağlar arasında iletilmesini sağlar. IPv4 ve IPv6, IP’nin iki sürümüdür.
IP’yi posta sistemindeki “hedef adres” fikrine benzetmek mümkündür; ancak benzetme sınırlıdır. Bir IP paketi üzerinde temel olarak kaynak ve hedef IP adresi bulunur. Router’lar hedef adresin hangi ağ yönünde olduğunu değerlendirerek paketi bir sonraki noktaya iletir.
Örneğin bir istemci:
192.168.10.25
adresinden şu hedefe erişmek istesin:
203.0.113.40
Hedef aynı yerel ağda değilse istemci paketi varsayılan ağ geçidine gönderir; router da kendi yönlendirme bilgisine göre paketi bir sonraki ağa iletir. IP adresleme ve prefix kararını 7–8. bölümlerde ayrıntılı inceleyeceğiz.
Temel IP hizmeti “best effort” yaklaşımıyla paketleri iletmeye çalışır. Bir paketin kesin teslim edilmesi, doğru sırada gelmesi veya tekrar gönderilmesi IP’nin tek başına sağladığı garanti değildir. Bu tür ihtiyaçların bir kısmını taşıma protokolleri veya uygulama çözer.
6.5 Taşıma katmanı: neden TCP ve UDP var?
Tek bir bilgisayarda aynı anda tarayıcı, e-posta uygulaması, görüntülü görüşme, oyun ve SSH bağlantısı çalışabilir. Taşıma katmanı, uygulamalar arasındaki iletişimi ayırmaya ve uygulamanın ihtiyaç duyduğu aktarım davranışını sağlamaya yardım eder.
En sık karşılaşılan iki taşıma protokolü TCP ve UDP’dir.
6.6 TCP
TCP (Transmission Control Protocol), uygulamalara sıralı ve güvenilir bir byte akışı sağlamayı amaçlayan bağlantı odaklı taşıma protokolüdür.
TCP’nin temel özelliklerini giriş düzeyinde şöyle özetleyebiliriz:
- iletişim başlamadan önce bağlantı durumu oluşturur,
- veriyi sıralı biçimde uygulamaya sunar,
- kaybolan veriyi yeniden gönderebilir,
- alıcının veri alabildiğini onaylarla takip eder,
- ağ koşullarına göre gönderim hızını düzenleyen mekanizmalara sahiptir.
Bunlar yararlıdır fakat kontrol bilgisi ve durum takibi ek yük oluşturur.
6.6.1 TCP üç yönlü el sıkışma
TCP bağlantısının başlangıcı basitleştirilmiş olarak üç mesajla açıklanır:
İstemci Sunucu
| |
| -------- SYN -----------> |
| <----- SYN + ACK -------- |
| -------- ACK -----------> |
| |
| bağlantı hazır |
- SYN: istemci bağlantı başlatmak istediğini bildirir.
- SYN-ACK: sunucu isteği aldığını ve kendisinin de bağlantıya hazır olduğunu bildirir.
- ACK: istemci yanıtı onaylar.
Bu aşamadan sonra uygulama verisi taşınabilir. Ayrıntılı sequence number ve congestion-control hesabı bu kitabın kapsamı dışındadır.
6.7 UDP
UDP (User Datagram Protocol), datagram tabanlı daha yalın bir taşıma hizmetidir. TCP’deki bağlantı kurma, sıralama ve yeniden iletim mekanizmalarının tamamını taşıma katmanında sağlamaz.
Bu durum UDP’nin “kötü” veya “eksik TCP” olduğu anlamına gelmez. Bazı uygulamalar:
- düşük gecikme,
- basit istek–yanıt,
- uygulamanın kendi güvenilirlik mekanizmasını kurması,
- kayıp olduğunda eski veriyi tekrar göndermek yerine yeni veriye devam etmek
gibi nedenlerle UDP’yi tercih edebilir.
DNS sorgularının önemli bölümü UDP kullanabilir. Gerçek zamanlı ses/görüntü protokolleri UDP tabanlı olabilir. QUIC ise UDP üzerinde çalışmasına rağmen kendi güvenilirlik ve bağlantı özelliklerini uygulama/taşıma tasarımında sağlar.
6.8 TCP ve UDP karşılaştırması
| Özellik | TCP | UDP |
|---|---|---|
| Bağlantı kurulumu | Var | Yok |
| Sıralı teslim | Sağlar | Taşıma katmanında garanti etmez |
| Yeniden iletim | Sağlar | Taşıma katmanında sağlamaz |
| Akış/congestion kontrolü | Var | UDP’nin kendisinde yok |
| Başlık/işlem ek yükü | Daha fazla | Daha az |
| Veri modeli | Byte stream | Datagram |
| Örnek kullanım | Klasik HTTPS, SSH, e-posta protokolleri | DNS sorguları, bazı gerçek zamanlı uygulamalar, QUIC taşıyıcısı |
Gerçek performans yalnız protokol başlığının boyutuna bağlı değildir. Ağ kaybı, gecikme, uygulamanın kendi mekanizmaları, sunucu kapasitesi ve protokol tasarımı sonucu değiştirir. UDP seçmek otomatik olarak daha hızlı uygulama üretmez.
6.9 Port numarası
IP adresi hedef sistemi/ağ arayüzünü bulmaya yardım eder. Aynı sistemde birden fazla ağ uygulaması çalıştığı için taşıma katmanında port numarası kullanılır.
Örnek bir bağlantı:
İstemci: 192.168.10.25:53142
Sunucu: 203.0.113.40:443
Burada:
192.168.10.25istemcinin IP adresidir,53142istemci tarafında geçici (ephemeral) port olabilir,203.0.113.40sunucunun IP adresidir,443HTTPS için yaygın sunucu portudur.
Bir TCP/UDP iletişimini ayırt ederken yalnız hedef port değil; kaynak/hedef IP, kaynak/hedef port ve taşıma protokolü birlikte önemlidir.
6.9.1 “Port” fiziksel soket değildir
Ethernet switch’indeki 24 fiziksel porta da “port” deriz; TCP/UDP’deki 443 değerine de “port” deriz. Bunlar aynı kavram değildir.
- Switch portu: fiziksel/mantıksal ağ arayüzü.
- TCP/UDP portu: işletim sisteminde uygulama iletişimini ayıran sayısal tanımlayıcı.
Bağlamdan hangisinin kastedildiğini anlamak gerekir.
6.10 Yaygın uygulama protokolleri ve portlar
Port numaralarını sınav listesi gibi ezberlemek yerine protokolün ne yaptığını anlamak daha önemlidir. Yine de dokümantasyon ve hata çıktılarında sık görülen bazı eşleşmeleri tanımak yararlıdır.
| Hizmet/protokol | Yaygın taşıma/port | Ne işe yarar? |
|---|---|---|
| HTTP | TCP 80 | Şifrelenmemiş klasik web iletişimi |
| HTTPS | TCP 443 | TLS üzerinden klasik web iletişimi |
| DNS | UDP/TCP 53 | İsim çözümleme sorguları/yanıtları |
| DHCPv4 | UDP 67/68 | Otomatik IPv4 ağ yapılandırması |
| SSH | TCP 22 | Güvenli uzak kabuk/uzak yönetim |
| SMTP | TCP 25/587 vb. | E-posta gönderimi/aktarma |
| IMAP | TCP 143/993 | E-posta kutusuna erişim |
Tablodaki portlar “bu uygulama başka portta asla çalışmaz” anlamına gelmez. Servisler farklı portlara yapılandırılabilir; bazı modern protokoller farklı taşıma yöntemleri kullanabilir.
6.11 Bir sunucu birden fazla hizmeti nasıl sunar?
Tek bir sunucunun IP adresi 192.0.2.10 olsun. Aynı makine şu hizmetleri sunabilir:
192.0.2.10:22 → SSH
192.0.2.10:80 → HTTP
192.0.2.10:443 → HTTPS
IP adresi aynı olmasına rağmen port numarası hangi uygulama hizmetine ulaşılacağını ayırır. İşletim sistemi gelen bağlantıyı uygun dinleyen sürece teslim eder.
6.12 ICMP
ICMP (Internet Control Message Protocol), IP ağlarında hata bildirimleri ve tanılama mesajları için kullanılan önemli protokoldür. ping aracı ICMP Echo Request ve Echo Reply mesajlarından yararlanır.
ICMP’nin yalnız “ping protokolü” olduğunu düşünmek eksiktir. Ağ cihazları bazı erişilemez hedef veya TTL/hop limit durumlarını ICMP mesajlarıyla bildirebilir. traceroute benzeri araçlar da bu davranışlardan yararlanır.
Hayır. Bir firewall ICMP Echo mesajlarını engelleyebilirken web hizmetine izin verebilir. Ping başarılı olması güçlü bir erişim kanıtıdır; başarısız olması ise tek başına hedef uygulamanın kapalı olduğunu kanıtlamaz.
6.13 Bir web isteğinin basitleştirilmiş yolculuğu
Tarayıcıda şu adresi açalım:
https://example.com
Gerçek sistem çok daha karmaşıktır, ancak temel akışı sekiz adımda okuyabiliriz.
6.13.1 1. Alan adını çözmek
Tarayıcı/işletim sistemi example.com için IP adresine ihtiyaç duyar. Daha önce önbellekte yoksa DNS sorgusu yapılır.
6.13.2 2. Hedefin yerel mi uzak mı olduğuna karar vermek
İstemci hedef IP’nin kendi yerel ağında olup olmadığını prefix bilgisiyle değerlendirir. Uzaksa paket varsayılan gateway’e gönderilecektir.
6.13.3 3. Yerel teslimi hazırlamak
Ethernet kullanılıyorsa istemcinin gateway’e ait yerel MAC bilgisine ihtiyacı vardır. IPv4’te ARP bu noktada görev alabilir. ARP’yi 9. bölümde daha ayrıntılı işleyeceğiz.
6.13.4 4. Taşıma bağlantısını kurmak
Klasik HTTPS/TCP kullanılıyorsa sunucunun 443 portuna TCP bağlantısı kurulur. Üç yönlü el sıkışma gerçekleşir.
6.13.5 5. Güvenli oturumu oluşturmak
HTTPS için TLS güvenli bağlantı kurulur. Sertifika doğrulama ve şifreleme ayrıntıları bu kitabın kapsamı dışındadır; önemli olan HTTP’nin doğrudan düz metin olarak gönderilmediğini anlamaktır.
6.13.6 6. HTTP isteğini göndermek
Tarayıcı hedef kaynağı ister. Örneğin öğretici olarak:
GET / HTTP/1.1
Host: example.com
6.13.7 7. Sunucu yanıt verir
Sunucu HTTP yanıtı ve istenen içeriği gönderir.
6.13.8 8. Tarayıcı ek kaynakları ister
Bir sayfa yalnız HTML değildir. CSS, JavaScript, görseller ve başka hizmetler için yeni istekler oluşabilir.
Bu zincir, “web sitesi açılmıyor” şikâyetinin neden tek sebebi olmadığını gösterir. DNS, IP yolu, TCP/QUIC, TLS veya HTTP hizmetinin herhangi birinde sorun olabilir.
6.14 DNS ve HTTP farklı hizmetlerdir
DNS’in görevi bir alan adını uygun kayıtlarla ilişkilendirmektir. HTTP/HTTPS ise web uygulamasının istek ve yanıt biçimini tanımlar.
Şu iki durumu karşılaştıralım:
Durum A:
nslookup example.com → IP geliyor
curl https://example.com → bağlantı başarısız
DNS en azından yanıt vermiştir; web hizmeti veya bağlantı zincirinin sonraki aşamaları araştırılır.
Durum B:
ping 1.1.1.1 → başarılı
nslookup example.com → timeout
Temel IP erişimi vardır, fakat DNS güçlü şüphelidir.
Bu ayrımı 9. ve 12. bölümlerde uygulamalı olarak kullanacağız.
6.15 HTTP/3 ve QUIC
Modern web iletişiminde HTTP/3 ile karşılaşabilirsiniz. HTTP/3, TCP yerine QUIC adlı protokol üzerinde çalışır; QUIC ise UDP datagramlarını taşıyıcı olarak kullanır ve güvenilirlik/bağlantı özelliklerinin önemli bölümünü kendi içinde sağlar (Kurose and Ross 2026).
Bu bölümde QUIC paketlerini analiz etmeyeceğiz. Hatırlanması gereken sonuç:
“HTTPS her zaman TCP 443 kullanır” ifadesi modern internet için mutlak bir kural değildir.
UDP 443 üzerinde QUIC/HTTP/3 trafiği de görülebilir.
6.16 Çalışılmış vaka: IP çalışıyor, uygulama çalışmıyor
Bir bilgisayarda şu testler yapılsın:
ping 192.168.1.1 → başarılı
ping 1.1.1.1 → başarılı
nslookup example.com → başarılı
curl -I https://example.com → timeout
Ne biliyoruz?
- yerel gateway’e temel IP erişimi var,
- en az bir uzak IP’ye erişim var,
- DNS isim çözümlemesi çalışıyor,
- web uygulama bağlantısı tamamlanmıyor.
Bu durumda kabloyu değiştirmek veya DNS’i ilk şüpheli seçmek eldeki kanıtla uyumlu değildir. TCP/QUIC bağlantısı, firewall, TLS, proxy veya uzak web hizmeti gibi sonraki aşamalar araştırılabilir.
6.17 Kendinizi kontrol edin
- TCP/IP modelinin dört katmanını ve her biri için bir protokol/teknoloji örneğini yazın.
- IP neden tek başına güvenilir teslim garantisi vermez?
- TCP ile UDP arasındaki dört temel farkı açıklayın.
- TCP üç yönlü el sıkışmadaki SYN, SYN-ACK ve ACK sırasını yazın.
192.168.1.20:53142 → 203.0.113.10:443ifadesindeki dört sayısal bölüm neyi anlatır?- Switch’in fiziksel portu ile TCP port numarası arasındaki farkı açıklayın.
- DNS, HTTP ve DHCP’nin görevlerini birbirinden ayırın.
- ICMP’nin yalnız ping’den ibaret olmadığını açıklayın.
- Bir web sayfasının açılmasında DNS’den HTTP yanıtına kadar temel aşamaları sıralayın.
- Uzak IP’ye erişilebildiği halde alan adı çözülemiyorsa neden DNS güçlü şüphelidir?
- HTTP/3’ün “HTTPS = TCP 443” ezberini neden değiştirdiğini açıklayın.
6.18 Bölüm özeti
TCP/IP, internet iletişiminde birlikte çalışan geniş bir protokol ailesidir. Dört katmanlı model uygulama, taşıma, internet ve ağ erişimi sorumluluklarını ayırır. IP paketleri kaynak ve hedef IP adreslerine göre ağlar arasında iletilir, fakat IP tek başına güvenilir teslim garantisi sunmaz. TCP bağlantı kurar, sıralı teslim ve yeniden iletim gibi mekanizmalar sağlar; UDP daha yalın datagram hizmeti sunar. Port numaraları aynı sistemde çalışan farklı uygulama iletişimlerini ayırmaya yardım eder. HTTP/HTTPS web, DNS isim çözümleme, DHCP otomatik yapılandırma, SSH uzak yönetim gibi farklı görevler üstlenir. ICMP ağ tanılama ve hata bildirimlerinde kullanılır. Bir web isteği DNS çözümlemesi, IP yolu, taşıma bağlantısı, güvenli oturum ve uygulama protokolünün birlikte çalışmasını gerektirir. Modern HTTP/3, QUIC/UDP kullanabildiği için protokol bilgisini tek ve değişmez port eşleşmelerine indirgememek gerekir.
6.19 Kısa sözlük
| Terim | Kısa anlam |
|---|---|
| TCP/IP | İnternet iletişiminde kullanılan protokol ailesi ve katman modeli |
| IP | Paketlerin ağlar arasında adreslenmesi ve iletilmesi için kullanılan protokol |
| TCP | Güvenilir ve sıralı byte akışı sağlayan bağlantı odaklı taşıma protokolü |
| UDP | Bağlantısız datagram taşıma protokolü |
| Port | Taşıma katmanında uygulama iletişimini ayıran sayısal tanımlayıcı |
| Socket | IP, port ve protokol bağlamındaki iletişim uç noktası kavramı |
| ICMP | IP ağlarında kontrol, hata ve tanılama mesajları için kullanılan protokol |
| DNS | Alan adlarının ağ kayıtlarıyla ilişkilendirilmesini sağlayan sistem |
| HTTP/HTTPS | Web uygulamalarının istek/yanıt protokolleri |
| QUIC | UDP üzerinde modern güvenli taşıma özellikleri sunan protokol |