4 OSI ve katmanlı iletişim
Geçen hafta kablodan ve link ışığından başlayıp switch’in çerçeveyi doğru porta nasıl gönderdiğine kadar çıktık. Bu hafta bu basamakları katmanlara ayırıyoruz. Katmanlı model, ağ iletişimini üst üste duran katmanlara böler ve her katmana ayrı bir iş verir. Bir sorun çıktığında hangi katmanın işinin aksadığını bulursan aramayı o katmana daraltırsın.
Sınavda sorulur: verilen bir kanıtın hangi katmanı gösterdiği; 1–4. katmanların ve uygulama katmanının görevleri; MAC adresi, IP adresi ve port numarasının hangi katmana ait olduğu; 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; OSI’nin hangi yıl yayımlandığı; üreticilerin katmanlara verdiği farklı adlar.
4.1 Arkadaşın “Site açılmıyor” diyor: sorun nerede olabilir?
Arkadaşın okulda dizüstü bilgisayarından ders sitesine girmeye çalışıyor ve sana “Site açılmıyor” diyor. Sayfa ekrana gelene kadar istek, arkadaşının bilgisayarından sitenin çalıştığı uzaktaki bilgisayara, yani sunucuya kadar uzun bir yol gidiyor. Bu yolun nerelerinde bir şey bozulmuş olabilir?
Okumaya devam etmeden önce aklına gelen yerleri bir liste olarak yaz. Teknik terim bilmen gerekmiyor: “Wi-Fi kopmuş olabilir” de listeye girer.
Bölümdeki dört vakada şikâyet hep aynı, arıza ise her seferinde başka bir yerde. Her vaka listendeki bir maddeyi sınıyor. Bölümün sonunda listeye döneceğiz.
4.2 Vaka 1: Kablo çıkmış
> ipconfig
Ethernet adapter Ethernet:
Media State . . . . . . . . . . . : Media disconnected
Switch portunda link ışığı yanmıyor.
4.2.1 Kanıt ne söylüyor
Bu kanıtı geçen haftanın Vaka 1’inden tanıyorsun. Media disconnected satırı, Windows’un ağ kartında hiç sinyal görmediğini söyler. Bu durumda cihazın IP adresini, DNS ayarını ya da tarayıcısını konuşmanın anlamı yok: kablodan tek bir bit bile geçmiyor.
Fiziksel katman (Katman 1) bitleri kabloyla, fiberle ya da radyo dalgasıyla taşır. Bu katmanda kabloya, konnektöre, porta, link ışığına ve Wi-Fi sinyaline bakılı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
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
timeout, gönderilen pakete belli bir süre içinde yanıt gelmediği anlamına gelir. Kablo bağlı, çünkü bilgisayar bir IP adresi almış ve Media disconnected yazmıyor. Yerel ağ da çalışıyor, çünkü ağ geçidi (yerel ağdan dışarı çıkan kapı, çoğu zaman router) yanıt veriyor. Yanıt yalnız kendi ağının dışındaki adresten gelmiyor.
Ağ katmanı (Katman 3) IP adresleriyle çalışır ve paketleri bir ağdan başka bir ağa iletir. IP adresi, ağ geçidi ve router’ın paketi hangi yoldan göndereceği bu katmanın işidir. Cihaz kendi ağındaki ağ geçidine ulaşıp dışarıdaki bir adrese ulaşamıyorsa önce Katman 3’e bakarsın: ağ geçidi ayarına, router’a ve router’ın internete bağlandığı hatta. Yalnız bazı ağlar ve sunucular ping’e yanıt vermez. Bu yüzden karar vermeden önce dışarıdaki ikinci bir adresi de dene.
Kablo bağlıyken aynı yerel ağdaki cihazla konuşulamadığı durumlar da olur. Veri bağlantı katmanı (Katman 2) aynı yerel ağ içindeki teslimi yapar. Geçen hafta gördüğün Ethernet çerçevesi ve MAC adresi bu katmanın öğeleridir. Kanıtı arp -a çıktısında görürsün: ağ geçidine ping attıktan sonra bile onun IP adresi listede MAC adresiyle birlikte görünmüyorsa bilgisayar ağ geçidinin MAC adresini öğrenememiştir. Sorun IP ayarının altında, yerel teslimdedir.
4.4 Vaka 3: Sunucuya ulaşılıyor, site açılmıyor
> ping 203.0.113.10
Reply from 203.0.113.10: bytes=32 time=21ms TTL=55
> curl https://203.0.113.10
curl: (7) Failed to connect to 203.0.113.10 port 443: Connection refused
Aynı sunucuda başka bir porttaki hizmet çalışıyor.
curl komutu verilen adrese bir web isteği gönderir. Kendi bilgisayarında denersen Windows PowerShell’de curl yerine curl.exe yaz, çünkü orada curl başka bir komutu çalıştırır. Komut İstemi’nde curl yeterlidir.
4.4.1 Kanıt ne söylüyor
ping yanıt aldığı için Katman 1, 2 ve 3 çalışıyor: paket sunucuya gidiyor ve geri dönüyor. Connection refused ise başka bir şey söyler: istek sunucunun bulunduğu yere ulaştı ama 443 numaralı kapıya yapılan bağlantı geri çevrildi.
Taşıma katmanı (Katman 4) veriyi bir cihazdaki uygulamadan öteki cihazdaki uygulamaya ulaştırır. Bunu port numaralarıyla yapar: port, aynı cihazdaki hizmetleri birbirinden ayıran numaradır. Web sitelerinin şifreli bağlantısı (HTTPS) 443 numaralı portu kullanır. TCP ve UDP bu katmanın iki protokolüdür. Sunucuya ping gidiyor ama bir porta bağlanılamıyorsa aramayı o porta daraltırsın: ya sunucuda o portta çalışan bir hizmet yoktur ya da sunucudaki veya önündeki bir güvenlik kuralı bağlantıyı geri çevirir.
ping çalışması her katmanın sağlam olduğunu göstermez
ping yalnızca paketin hedefe gidip geldiğini, yani Katman 3’e kadar olan basamakların çalıştığını gösterir. Bir hizmete bağlanamamanın nedeni Katman 4’te ya da daha üstte olabilir. “Ping gidiyor ama site açılmıyor” durumunda bir çelişki yok: iki komut farklı katmanları sınıyor.
4.5 Vaka 4: Bağlantı kuruldu, site hata verdi
> curl -I https://example.com
HTTP/1.1 500 Internal Server Error
Content-Type: text/html
-I seçeneğiyle curl sayfanın kendisini istemez, sunucudan yalnız yanıtın durum satırını ve başlık satırlarını ister.
4.5.1 Kanıt ne söylüyor
Bu çıktı, alttaki her katmanın çalıştığını kanıtlar: sinyal taşındı, çerçeve yerel ağda teslim edildi, paket sunucunun ağına ulaştı, sunucunun 443 numaralı portuyla bağlantı kuruldu ve sunucu bir yanıt gönderdi. Yanıtın içeriği hata olsa bile, bir yanıt gelmiş olması bu istek için ağ yolunun çalıştığını gösterir.
Uygulama katmanı (Katman 7) kullanıcıya en yakın katmandır. Web sayfalarını getiren HTTP ve adları IP adresine çeviren DNS bu katmanda çalışır. HTTP yanıtının ilk satırındaki sayıya durum kodu denir: 200 her şeyin yolunda olduğunu, 500 ise sunucudaki programın hata verdiğini söyler. Bu durumda kablo değiştirmek, IP adresini yenilemek ya da DNS önbelleğini (bilgisayarın daha önce çevirdiği adları sakladığı liste) temizlemek hiçbir şeyi düzeltmez, çünkü bunların hiçbiri bozuk değil. Arızayı sitenin yöneticisi gidermelidir.
4.6 Neden bir katman çalışırken öteki bozulabilir?
Vaka 4’te alttaki katmanların hepsi çalışıyordu ama sayfa açılmıyordu. Bunun nedeni, her katmanın ayrı bir iş yapması. Bir katman işini yaptı diye üstündeki katmanın da işini doğru yaptığı söylenemez. Her katman işi için gereken bilgiyi veriye ayrı bir başlık olarak ekler. Başlık, verinin önüne konan ve o katmanın bilgilerini taşıyan kısımdır. Bir web isteği gönderildiğinde veri, iç içe kutulara konur gibi sarılır. Aşağıdaki çizim bu yapının basitleştirilmiş hâlidir:
Ethernet çerçevesi
┌──────────────────────────────────────────────────────┐
│ Ethernet başlığı → yerel teslim (MAC) │
│ IP paketi │
│ ┌──────────────────────────────────────────────┐ │
│ │ IP başlığı → ağlar arası adresleme │ │
│ │ TCP bölümü │ │
│ │ ┌──────────────────────────────────────┐ │ │
│ │ │ TCP başlığı → port numarası │ │ │
│ │ │ Uygulama verisi → HTTP isteği │ │ │
│ │ └──────────────────────────────────────┘ │ │
│ └──────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────┘
Gönderen tarafta yapılan bu sarmaya kapsülleme (encapsulation) denir. Fiziksel katman başlık eklemez, hazır olan çerçeveyi bit bit taşır. 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 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ı
Vakalarda katmanları tek tek gördük. Hepsini bir arada gösteren model OSI’dir. OSI, İngilizce Open Systems Interconnection sözlerinin kısaltmasıdır. Türkçesi “açık sistemlerin birbirine bağlanması”.
1970’lerde her bilgisayar üreticisi kendi ağ sistemini kuruyordu ve bir üreticinin cihazı ötekinin cihazıyla konuşamıyordu. Uluslararası Standardizasyon Örgütü (ISO) bu yüzden 1984’te OSI modelini yayımladı. Model, ağ iletişimini yedi katmana böler ve her katmanın ne iş yapacağını tanımlar. Her üretici cihazını bu tanıma göre yaparsa farklı üreticilerin cihazları birlikte çalışır. Addaki “açık” sözcüğü bunu anlatır: model tek bir üreticiye ait değildir, herkes uyabilir.
OSI için yazılan protokoller pek yaygınlaşmadı. İnternet, 6. haftada göreceğin TCP/IP protokolleriyle kuruldu. Ama OSI’nin katmanları ağı anlatmanın ortak dili olarak kaldı. Ağ cihazlarının belgelerinde ve teknik konuşmalarda katman numaraları kullanılır: “Katman 2 switch” ya da “sorun Katman 1’de” gibi.
| No | Katman | Ne iş yapar |
|---|---|---|
| 7 | Uygulama | Kullanıcının programlarına ağ hizmeti verir: HTTP, DNS |
| 6 | Sunum | Verinin biçimini düzenler: kodlama, sıkıştırma, şifreleme |
| 5 | Oturum | İki program arasındaki konuşmayı başlatır ve bitirir |
| 4 | Taşıma | Veriyi port numarasıyla doğru uygulamaya ulaştırır: TCP, UDP |
| 3 | Ağ | Paketi IP adresiyle bir ağdan ötekine iletir |
| 2 | Veri bağlantı | Çerçeveyi MAC adresiyle yerel ağda teslim eder: Ethernet, Wi-Fi |
| 1 | Fiziksel | Bitleri kabloyla, fiberle ya da radyo dalgasıyla taşır |
Yedi katmanın adını ve sırasını bilmen gerekir. Bu derste ağırlık 1–4. katmanlarda ve uygulama katmanında. 5. ve 6. katmanın adını ve yerini bilmen yeter, ayrıntılı işleri sınavda sorulmaz.
İnternette kullanılan protokoller ise çoğunlukla dört katmanlı TCP/IP modeliyle anlatılır. Bu model OSI’nin üst üç katmanını tek bir uygulama katmanında, alt iki katmanını da tek bir ağ erişimi katmanında toplar. Ayrıntısı 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 | 7 (Uygulama) |
| Switch | Temel olarak 2 |
| Router | Temel olarak 3 |
Switch çerçeveyi MAC adresine bakarak doğru porta gönderir, bu yüzden 2. katmanda çalışır. Router paketi IP adresine bakarak başka bir ağa iletir, bu yüzden 3. katmanda çalışır. Bazı cihazlar birden fazla katmandaki bilgiye bakar. Örneğin bir firewall (güvenlik duvarı) hem IP adresine hem port numarasına göre karar verebilir. Tabloda bu yüzden “baskın katman” yazıyor, yani cihazın asıl işini yaptığı katman.
4.8 Soruya dönelim: sorun nerede olabilir?
Bölümün başında arkadaşının “Site açılmıyor” şikâyetinin arkasında nelerin bozulmuş olabileceğini sormuştuk. Vakalar listeyi şöyle tamamlıyor:
| Listendeki madde | Neye bakarak anlarsın | Katman | Nerede gördük |
|---|---|---|---|
| “Kablo çıkmış”, “Wi-Fi kopmuş” | Media disconnected yazıyor, link ışığı yanmıyor |
1: Fiziksel | Vaka 1 |
| “Bilgisayar ağdaki cihazları göremiyor” | arp -a listesinde ağ geçidinin MAC adresi yok |
2: Veri bağlantı | Vaka 2’nin ardındaki kutu |
| “Modem bozuk”, “İnternet gitmiş” | Ağ geçidi yanıt veriyor, dışarıdaki adres vermiyor | 3: Ağ | Vaka 2 |
| “Site kapalı” | Sunucuya ping gidiyor, porta bağlantı reddediliyor |
4: Taşıma | Vaka 3 |
| “Sitenin kendisi bozuk” | HTTP yanıtı geliyor, durum kodu 500 |
7: Uygulama | Vaka 4 |
Listende “site kapalı” ile “sitenin kendisi bozuk” tek madde olarak yazılıysa şimdi ikiye ayırabilirsin. Vaka 3’te sunucu bağlantıyı hiç kabul etmedi. Vaka 4’te bağlantı kuruldu ve sunucu bir hata yanıtı gönderdi. “Adresi yanlış yazmış” gibi bir madde yazdıysan o da uygulama katmanına girer: adı IP adresine çeviren DNS’e 9. haftada bakacağız.
Dört vakada da arkadaşın aynı cümleyi kurdu. Seni doğru katmana götüren şikâyet değil, komutların çıktısıydı.
4.9 Ekranda ne gördük
Derste sınıf bilgisayarında dört komut çalıştırılır. Derse gelemeyenler için aynı çıktı burada. Terminali nasıl açacağın 1. haftanın “Ekranda ne gördük” kısmında yazıyor. Windows PowerShell’de curl yerine curl.exe yazmayı unutma (Vaka 3).
> ipconfig ← Katman 1: kart bağlı mı?
IPv4 Address. . . : 192.168.20.45
Default Gateway . : 192.168.20.1
> arp -a ← Katman 2: ağ geçidinin MAC adresi biliniyor mu?
Internet Address Physical Address Type
192.168.20.1 a0-1b-2c-3d-4e-5f dynamic
> ping 1.1.1.1 ← Katman 3: dışarıdaki bir adrese paket gidiyor mu?
Reply from 1.1.1.1: bytes=32 time=18ms TTL=57
> curl -I https://example.com ← Katman 4 ve uygulama: bağlantı kuruluyor mu, yanıt ne?
HTTP/1.1 200 OK
ipconfig çıktısında Media disconnected yazmıyor ve kartın bir IP adresi var, yani kablo ya da Wi-Fi bağlı. Sonraki her komut bir basamak yukarı çıkıyor. Bir komut başarısız olursa aramayı önce o basamağa daraltırsın. Yalnız bazı ağlar ping’e yanıt vermez: ping başarısızken web sayfası yine açılabilir. Bu komutları 12. haftada ayrıntısıyla göreceğiz. Şimdilik hangi komutun hangi katman hakkında kanıt verdiğini bilmen yeter.
4.11 Tek sayfa özet
- Katmanlı model, aynı şikâyetin arkasındaki farklı arızaları ayırmaya yarar.
- Kanıt aşağıdan yukarıya toplanır: alt katman bozukken üst katmanın testi sana yeni bir şey söylemez.
- Katman 1 (Fiziksel) bitleri taşır. Kanıtı link ışığı ve
Media disconnected. - Katman 2 (Veri bağlantı) çerçeveyi MAC adresiyle yerel ağda teslim eder. Kanıtı
arp -alistesindeki MAC adresleri. - Katman 3 (Ağ) paketi IP adresiyle başka bir ağa iletir. Kanıtı ağ geçidine giden ama dışarıdaki adrese gitmeyen
ping. - Katman 4 (Taşıma) veriyi port numarasıyla doğru uygulamaya ulaştırır. Kanıtı
Connection refused. - Katman 7 (Uygulama) asıl isteği taşır. Kanıtı HTTP durum kodu:
500sunucudaki programın hatasıdır. - OSI, farklı üreticilerin cihazları birlikte çalışsın diye ISO’nun yayımladığı yedi katmanlı modeldir: 1 Fiziksel, 2 Veri bağlantı, 3 Ağ, 4 Taşıma, 5 Oturum, 6 Sunum, 7 Uygulama.
- Switch temel olarak 2. katmanda, router 3. katmanda çalışır.
- Kapsülleme: her katman kendi işi 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ğda sorun yok” demek değildir. Yalnız Katman 3’e kadar olan basamakları doğrular.
4.12 Bu bölümün kazanımları
Bu bölümü bitiren öğrenci:
- Verilen kanıt kümesini doğru katmana yerleştirir.
- OSI’nin yedi katmanını adı ve sırasıyla tanır, katmanları 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.
- Alt katmanda sorun gösteren bir kanıt varken üst katman testinin neden bir şey kanıtlamadığını açıklar.




