4 OSI ve katmanlı iletişim
Dört farklı öğrenci aynı cümleyi söylüyor: “Site açılmıyor.” Dördünde de arıza başka bir yerde, dolayısıyla çözüm de başka. Ağ iletişimini üst üste duran katmanlara bölen katmanlı model burada işe yarar: aynı şikâyetin arkasındaki farklı arızaları birbirinden ayırmamıza yardım eder.
Sınavda sorulur: verilen bir kanıt kümesinin hangi katmana işaret ettiği; 1–4. katmanların görevleri; Ethernet/MAC–IP–TCP/UDP–port eşleştirmesi; kapsüllemede neden farklı başlıklar eklendiği; OSI’nin yedi katmanının adı ve sırası; switch ve router’ın baskın katmanı.
Sınav dışı (bilgi amaçlı): her protokolü tek ve kesin bir OSI katmanına yerleştirmek; 5. ve 6. katmanların ayrıntılı işlevleri; üreticiye özgü katman terminolojileri.
4.1 “Site açılmıyor” şikâyeti: hangi kanıt hangi arızayı gösterir?
Katman adları, bu sorunun cevabını anlatırken kullandığımız ortak dildir. Adları öğrenmek kolay; zor olan, eldeki kanıtı doğru katmana yerleştirmek. Aşağıdaki dört vakada şikâyet hep aynı, değişen yalnızca kanıt.
4.2 Vaka 1: Kablo çıkmış (Katman 1)
> ipconfig
Ethernet adapter Ethernet:
Media State . . . . . . . . . . . : Media disconnected
Switch portunda link ışığı yanmıyor.
4.2.1 Kanıt ne söylüyor
Media disconnected satırı, işletim sisteminin arayüzde hiç sinyal görmediğini söyler. Bu durumda cihazın IP adresini, DNS ayarını ya da tarayıcı sürümünü konuşmanın anlamı yok: kablodan tek bir bit bile geçmiyor.
Fiziksel katman (Katman 1) bitlerin kablo, fiber ya da radyo dalgasıyla taşınmasıyla ilgilenir. Kablo, konnektör, port, link ışığı ve sinyal seviyesi bu katmanın kanıtlarıdır.
Alt katman çalışmıyorsa üst katmanı test etmenin anlamı yoktur. Fiziksel bağlantı yoksa ping de, nslookup (bir adın IP adresini soran komut) da başarısız olur ve bu başarısızlıklar sana DNS hakkında hiçbir şey söylemez. Bu yüzden kanıtları aşağıdan yukarıya doğru toplarız.
4.3 Vaka 2: Adres var, dışarı çıkış yok (Katman 3)
IPv4 Address. . . : 192.168.20.45
Subnet Mask . . . : 255.255.255.0
Default Gateway . : 192.168.20.1
ping 192.168.20.1 → başarılı
ping 1.1.1.1 → timeout
4.3.1 Kanıt ne söylüyor
Fiziksel bağlantı var (arayüz bağlı), yerel iletişim var (ağ geçidi yanıtlıyor). Sorun, paketlerin kendi ağının dışına çıkamamasında.
Ağ katmanı (Katman 3) IP adresleriyle çalışır ve paketleri bir ağdan başka bir ağa iletir. Adres, prefix (adresin hangi kısmının ağı gösterdiği, 7. haftada), ağ geçidi ve yönlendirme bu katmanın kanıtlarıdır. Bir cihazın kendi ağına ulaşıp dışına ulaşamaması tipik bir Katman 3 belirtisidir.
Fiziksel bağlantı varken yerel iletişimin kurulamadığı durumlar da vardır. Veri bağlantı katmanı (Katman 2) aynı yerel ağ içindeki iletişimle ilgilenir; Ethernet çerçevesi ve MAC adresi bu katmanın öğeleridir. Kanıtı genellikle arp -a çıktısında görürüz: aynı ağdaki bir IP için MAC eşlemesi öğrenilemiyorsa (incomplete), sorun IP yapılandırmasının altında, yerel çerçeve iletişimindedir.
4.4 Vaka 3: Sunucuya erişiliyor, hizmet kapalı (Katman 4)
ping 93.184.x.x → başarılı
curl https://93.184.x.x → Failed to connect: Connection refused
Aynı sunucunun başka bir portundaki hizmet çalışıyor.
4.4.1 Kanıt ne söylüyor
curl komutu verilen adrese bir web isteği gönderir. ping başarılı olduğu için Katman 1, 2 ve 3 çalışıyor: paket sunucuya gidiyor ve dönüyor. Ama Connection refused mesajı bambaşka bir şey söyler: paket hedefe ulaştı ve hedef “o kapı kapalı” diye cevap verdi.
Taşıma katmanı (Katman 4) uygulamalar arasındaki uçtan uca iletişimi, yani bir cihazdaki uygulamadan öteki cihazdaki uygulamaya giden iletişimi yönetir. TCP, UDP ve port numaraları (aynı cihazdaki hizmetleri birbirinden ayıran numaralar) bu katmanın öğeleridir. Bir sunucuya IP düzeyinde erişilip belirli bir porttaki hizmete erişilemiyorsa, sorun ağ yolunda değil, o portta dinleyen hizmette veya onu engelleyen kuraldadır.
ping çalışması her katmanın sağlam olduğunu göstermez
ping yalnızca paketin Katman 3 düzeyinde hedefe gidip geldiğini ölçer. Bir hizmete bağlanamamanın nedeni Katman 4’te ya da daha üstte olabilir. “Ping atıyor ama site açılmıyor” durumunda bir çelişki yok; iki test iki farklı katmanı ölçüyor.
4.5 Vaka 4: Bağlantı kuruldu, uygulama hata verdi (Katman 7)
> curl -i https://example.com
HTTP/1.1 500 Internal Server Error
Content-Type: text/html
4.5.1 Kanıt ne söylüyor
Bu çıktı, alttaki her katmanın çalıştığının kanıtıdır: sinyal taşındı, yerel çerçeve iletildi, paket yönlendirildi, TCP bağlantısı kuruldu ve sunucu bir HTTP yanıtı gönderdi. Yanıtın içeriği hata olsa bile, bir yanıt gelmiş olması ağ yolunun sağlam olduğunu gösterir.
Uygulama katmanı kullanıcıya en yakın katmandır; web sayfalarını getiren HTTP ve adları IP adresine çeviren DNS burada çalışır. 500 kodu sunucudaki uygulamanın kendi hatasıdır. Burada kablo değiştirmek, IP yenilemek ya da DNS önbelleğini temizlemek hiçbir şeyi düzeltmez, çünkü bunların hiçbiri bozuk değil.
| Kanıt | Katman | Bir sonraki adım |
|---|---|---|
Media disconnected, link ışığı yok |
1: Fiziksel | Kablo/port/Wi-Fi bağlantısı |
Aynı ağdaki IP için arp eşlemesi yok |
2: Veri bağlantı | Yerel bağlantı, switch portu |
| Ağ geçidi yanıtlıyor, dış IP yanıtlamıyor | 3: Ağ | Adres/prefix/gateway/yönlendirme |
| IP’ye ping var, porta bağlantı reddedildi | 4: Taşıma | Port, hizmet, engelleme kuralı |
HTTP yanıtı geldi ama 500 |
Uygulama | Sunucudaki uygulama |
4.6 Neden bir katman çalışırken diğeri bozulabilir?
Vaka 4’te alttaki dört katman çalışıyordu ama sayfa açılmıyordu. Bunun nedeni, her katmanın veriye kendi işi için ayrı bir başlık eklemesi. Başlık, verinin önüne konan ve o katmanın bilgilerini taşıyan kısımdır. Bir uygulama veri gönderdiğinde bu veri, iç içe kutulara konur gibi sarılır:
Ethernet çerçevesi
┌──────────────────────────────────────────────────────┐
│ Ethernet başlığı → yerel teslim (MAC) │
│ IP paketi │
│ ┌──────────────────────────────────────────────┐ │
│ │ IP başlığı → ağlar arası adresleme │ │
│ │ TCP/UDP bölümü │ │
│ │ ┌──────────────────────────────────────┐ │ │
│ │ │ TCP/UDP başlığı → port/uç │ │ │
│ │ │ Uygulama verisi → HTTP isteği │ │ │
│ │ └──────────────────────────────────────┘ │ │
│ └──────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────┘
Gönderen tarafta yapılan bu sarmaya kapsülleme (encapsulation) denir. Alıcı tarafta her katman kendi başlığını okur ve kutuları dıştan içe doğru sırayla açar.
Başlıkların her biri başka bir iş görür. Ethernet başlığı çerçevenin yerel ağda hangi cihaza teslim edileceğini söyler. IP başlığı paketin hangi ağdaki hangi cihaza gideceğini, TCP/UDP başlığı ise o cihazdaki hangi uygulamaya (porta) gideceğini söyler. Uygulama verisi asıl isteği taşır. Dış kutular sağlamken en içteki içerik hatalı olabilir; Vaka 4’te olan da buydu.
4.7 OSI’nin yedi katmanı
| No | Katman | Bu derste temel fikir |
|---|---|---|
| 7 | Uygulama | Kullanıcıya/uygulamaya yakın ağ hizmetleri (HTTP, DNS davranışı) |
| 6 | Sunum | Veri gösterimi, kodlama ve dönüşüm fikri |
| 5 | Oturum | İletişim oturumlarının yönetimi fikri |
| 4 | Taşıma | Uçtan uca iletişim; TCP/UDP ve portlar |
| 3 | Ağ | IP adresleme ve ağlar arası iletim |
| 2 | Veri bağlantı | Ethernet/Wi-Fi çerçevesi ve MAC adresleme |
| 1 | Fiziksel | Bitlerin kablo, fiber veya radyo üzerinden taşınması |
Adları ve sırayı bilmen gerekir, çünkü sahada herkes bu adları kullanır. Ama bu derste ağırlık 1–4. katmanlarda ve uygulama katmanında. 5. ve 6. katmanın adını ve yerini bilmen yeterli; ayrıntılı işlevleri sınavda sorulmaz.
İnternette kullanılan protokoller ise çoğunlukla dört katmanlı TCP/IP modeliyle anlatılır (6. haftada):
| OSI | TCP/IP katmanı |
|---|---|
| 7–5 Uygulama/Sunum/Oturum | Uygulama |
| 4 Taşıma | Taşıma |
| 3 Ağ | İnternet |
| 2–1 Veri bağlantı/Fiziksel | Ağ erişimi |
4.7.1 Protokoller ve cihazlar hangi katmanda?
| Örnek | Baskın katman |
|---|---|
| Ethernet, MAC adresi | 2 |
| IP adresi | 3 |
| TCP, UDP, port numarası | 4 |
| HTTP, DNS davranışı | Uygulama |
| Switch | Temel olarak 2 |
| Router | Temel olarak 3 |
Bu tablo, cihazların bütün yeteneklerini kapsayan kesin bir sınıflandırma değil. Örneğin güncel bir firewall (güvenlik duvarı) birden fazla katmandaki bilgiye bakabilir. Tabloda bu yüzden “baskın katman” yazıyor, yani cihazın asıl işini yaptığı katman.
4.8 Ekranda ne gördük
Derste aynı hedefe dört farklı düzeyde soru soruyoruz. Kayıttan izleyenler için aynı çıktılar burada:
> ipconfig ← Katman 1: arayüz bağlı mı?
Media State . . . : Media connected
> arp -a ← Katman 2: yerel MAC eşlemesi var mı?
192.168.20.1 a0-1b-2c-3d-4e-5f dynamic
> ping 1.1.1.1 ← Katman 3: dış ağa paket gidiyor mu?
Reply from 1.1.1.1: bytes=32 time=18ms TTL=57
> curl -I https://example.com ← Katman 4 + uygulama: port açık mı, yanıt ne?
HTTP/1.1 200 OK
Her komut farklı bir katmanı sınıyor. İlerleyen haftalarda bu komutların her birini ayrıntısıyla göreceğiz; şimdilik hangi komutun hangi katman hakkında kanıt verdiğini bilmen yeter.
4.10 Tek sayfa özet
- Katmanlı model, aynı şikâyetin arkasındaki farklı arızaları ayırmaya yarar.
- Kanıt sırası aşağıdan yukarıdır: alt katman bozukken üst katman testi yanıltır.
- Katman 1 bit taşır; kanıtı link ışığı,
Media disconnected. - Katman 2 yerel çerçeve teslim eder; kanıtı MAC/
arp. - Katman 3 ağlar arası paket taşır; kanıtı IP/prefix/gateway ve dış IP pingi.
- Katman 4 uygulama uçlarını bağlar; kanıtı port ve
Connection refused. - Uygulama katmanı asıl isteği taşır; kanıtı HTTP yanıt kodu.
- Kapsülleme: her katman kendi görevi için farklı bir başlık ekler. Bu yüzden dış kutular sağlamken en içteki içerik hatalı olabilir.
pingçalışması “ağ sorunu yok” anlamına gelmez; yalnızca Katman 3’e kadarını doğrular.
4.11 Bu bölümün kazanımları
Bu bölümü bitiren öğrenci:
- Verilen kanıt kümesini doğru katmana yerleştirir.
- Her katmanı kullandığı adres türüyle (MAC, IP, port) eşleştirir.
- Kapsüllemede her başlığın farklı bir görevi olduğunu açıklar.
- Başarılı bir testin neyi kanıtlayıp neyi kanıtlamadığını ayırt eder.
- Ağ cihazını baskın katmanıyla eşleştirir.
- Kanıtların neden aşağıdan yukarıya toplandığını açıklar.
