Genel

Ağ Katmanları (OSI Modeli) ve Python ile Basit Bir Benzetim

maa
20.10.2025

Bilgisayar ağlarında verinin bir noktadan diğerine nasıl ulaştığını hiç merak ettiniz mi?

Bir dosya gönderdiğinizde, bir web sitesine bağlandığınızda veya mesaj attığınızda arka planda çok katmanlı bir iletişim sistemi çalışır.
Bu sistemin en bilinen modeli ise OSI (Open Systems Interconnection) modelidir.


🌐 OSI Modeli Nedir?

OSI modeli, ağ iletişimini 7 katmana ayırır.
Amaç, her katmanın belli bir görevi yerine getirerek karmaşık veri iletişimini sadeleştirmektir.

Katmanlar yukarıdan aşağıya şöyle sıralanır:

Katman NoKatman AdıGöreviÖrnek Protokoller
7UygulamaKullanıcı ile ağ arasındaki etkileşimi sağlar.HTTP, FTP, SMTP
6SunumVeriyi şifreler, sıkıştırır veya formatlar.SSL, JPEG
5Oturumİki cihaz arasındaki bağlantıyı yönetir.NetBIOS, RPC
4TaşımaVeriyi paketlere böler, güvenli iletim sağlar.TCP, UDP
3Paketlerin hangi yoldan gideceğini belirler.IP, ICMP
2Veri İletimÇerçeveler oluşturur, hata kontrolü yapar.Ethernet, MAC
1FizikselElektriksel sinyalleri veya kablosuz dalgaları taşır.Kablo, Wi-Fi

💬 Basit Bir Benzetme

Bir mektup gönderdiğinizi düşünün:

  • Uygulama Katmanı: Mektubu yazarsınız.

  • Sunum Katmanı: Mektubu katlayıp zarfa koyarsınız.

  • Oturum Katmanı: Postaneye gitmek için sıraya girersiniz.

  • Taşıma Katmanı: Postane mektubu torbaya koyar.

  • Ağ Katmanı: Posta hangi yoldan gideceğine karar verir.

  • Veri İletim Katmanı: Dağıtıcı postacı mektubu sırayla dağıtır.

  • Fiziksel Katman: Mektup bisikletle, kamyonla veya uçakla taşınır.


🐍 Python ile OSI Katmanlarını Basitleştirilmiş Bir Simülasyon

Aşağıdaki örnekte, verinin bir kullanıcıdan çıkıp diğerine ulaştığını, her katmanın da bu veriye “dokunduğunu” basitçe görebilirsiniz:

# OSI Modelini Basitleştirilmiş Python Örneği def uygulama_katmani(veri): print("[7] Uygulama Katmanı: Veri oluşturuluyor...") return f"<Uygulama>{veri}</Uygulama>" def sunum_katmani(veri): print("[6] Sunum Katmanı: Veri formatlanıyor...") return veri.encode("utf-8").hex() # basit bir kodlama örneği def oturum_katmani(veri): print("[5] Oturum Katmanı: Oturum açılıyor...") return f"SESSION_START|{veri}|SESSION_END" def tasima_katmani(veri): print("[4] Taşıma Katmanı: Veri paketleniyor...") paketler = [veri[i:i+10] for i in range(0, len(veri), 10)] return paketler def ag_katmani(paket): print("[3] Ağ Katmanı: Yönlendirme yapılıyor...") return f"IP_HEADER[{paket}]" def veri_iletim_katmani(paket): print("[2] Veri İletim Katmanı: Çerçeve oluşturuluyor...") return f"FRAME[{paket}]" def fiziksel_katman(paket): print("[1] Fiziksel Katman: Veri gönderiliyor...") return f"💡 {paket} sinyale dönüştürüldü ve gönderildi." # Ana akış veri = "Merhaba Dünya!" print("Veri gönderim süreci başlıyor...\n") # Katmanlardan geçiş v1 = uygulama_katmani(veri) v2 = sunum_katmani(v1) v3 = oturum_katmani(v2) paketler = tasima_katmani(v3) for p in paketler: p1 = ag_katmani(p) p2 = veri_iletim_katmani(p1) print(fiziksel_katman(p2)) print("------") print("\n✅ Veri başarıyla gönderildi!")

🧩 Bu Kod Ne Yapar?

Bu küçük Python programı:

  • Veriyi sırayla her katmandan geçirir,

  • Her katmanın yaptığı işlemi simüle eder,

  • Son olarak veriyi “sinyale dönüştürülmüş” olarak gönderir.

Yani gerçekte ağ kartı, yönlendirici veya TCP/IP protokolü çalışmaz; sadece öğrenme amacıyla OSI mantığını taklit eder.


🎯 Sonuç

Ağ katmanları sayesinde:

  • Farklı cihazlar ve işletim sistemleri ortak bir dilde konuşabilir,

  • Hatalar kolayca tespit edilir,

  • Verinin nereye ve nasıl gideceği sistemli bir şekilde yönetilir.

Python ile yapılan bu basit örnek, OSI modelinin karmaşık yapısını somut ve anlaşılır hale getirmeye yardımcı olur.
Gerçek dünyada ise bu işlemleri TCP/IP protokolleri, yönlendiriciler ve ağ donanımları gerçekleştirir.


📚 Kaynakça

  1. Tanenbaum, A. S. — Computer Networks, 5th Edition, Pearson Education.

  2. Cisco Networking Academy — Introduction to Networks (ITN), 2023.

  3. https://www.geeksforgeeks.org/osi-model

  4. https://www.cloudflare.com/learning/ddos/glossary/open-systems-interconnection-model-osi

Bu yazıyı paylaş:
Twitter Facebook LinkedIn

Benzer Yazılar