OSI ve TCP/IP
E-mail: [email protected] / twitter: @0xb23be
OSI Referans Modeli
Önceki yazıda sık sık OSI isimli bir referans modeline, onun katmanlarına değinmiştim. Bu yazıda OSI modeli nedir ona bakacağız.
Muhtemelen bu yazıyı bir kısmınız Android işletim sistemli telefonlarınızdan, bir kısmınız Windows işletim sistemi kurulu bilgisayarınızdan, bir kısmınız Linux işletim sistemine sahip laptopunuzdan okuyorsunuz. Belki bazılarınız Firefox kullanırken bazılarınız Chrome üzerinden bu siteye giriş yapıyorsunuz. Siz Windows işletim sistemi kullanırken, bu yazının bulunduğu sunucu Linux işletim sistemini kullanıyor ama yine de sorunsuz bir şekilde bu web sitesini görüntüleyebiliyorsunuz. Farklı yazılımlar ve donanımlar kullansak da çoğu zaman bir sorun yaşamıyoruz. İşte bu uyumu sağlamak için bazı standartlar belirlenmiş ve çeşitli referans modelleri ortaya çıkmış. Üreticiler de, bu modellerin tanımladığı kurallar çerçevesinde ürünler geliştirirler. Bu sayede farklı donanımlar ya da yazılımlar kullansak da çoğu zaman birbirimizle uyumlu oluyoruz.
OSI (Open Systems Interconnection), 1984 yılında ISO (International Organization of Standardization) tarafından veri aktarımı yapabilen cihazların, bu aktarımı nasıl yapacağı hakkında bir standart belirlemek için geliştirilmiştir. Bir çeşit klavuz diyebiliriz. Her bir katmanında farklı görevleri yerine getirmek için bir dizi farklı protokol olan ve toplamda 7 katmandan oluşan bir mimariye sahiptir.
KATMAN NUMARASI | KATMAN İSMİ |
---|---|
7 | Uygulama (Application) |
6 | Sunum (Presentation) |
5 | Oturum (Session) |
4 | Taşıma/İletim (Transport) |
3 | Ağ (Network) |
2 | Veri Bağlantı (Data Link) |
1 | Fiziksel (Physical) |
Veri göndericiden alıcıya gönderilirken, her katmanda, ilgili paket başlıkları veri paketine eklenir. Bu paket başlıkları her katmanda incelenip, işlenerek doğru ve istenilen biçimde aktarım sağlanır.
1. Fiziksel Katman
İletişimdeki fiziksel bağlantıyı temsil eder. Bağlantının fiziksel özelliklerini tanımlar, bakır kablo, fiber optik kablo ya da radyo frekansı gibi. Örneğin Ethernet kablosu, WiFi sinyalleri bu katmanda yer alır. Kablolu ya da kablosuz taşınan sinyallerin bit çözümlemesi bu katmandadır. Yani verinin ham halinin iletiminden ve senkron bir şekilde iletiminden sorumludur. (bkz: bit synchronization, bit rate control) Bu bitlerin hangi şekilde iletileceğine de, dijital mi yoksa analog mu, bu katmanda karar verilir.
2. Veri Bağlantı Katmanı
Bu katman fiziksel olarak birbirine bağlı iki cihaz arasında bağlantı kurmayı ve kurulmuş bağlantıyı sonlandırmayı sağlar. İki nokta arasındaki verinin iletiminden sorumludur ve fiziksel katmanda meydana gelebilecek hataları tespit edip bu hataları düzeltir. Veri Bağlantı katmanı iki alt katmandan oluşur:
- Logical Link Control (LLC): Ağ protokollerini tanımlar, hata denetimini gerçekleştirir ve çerçeveleri senkronize eder
- Media Access Control (MAC): MAC adresini kullanarak cihazları bağlar ve veri iletmek ve almak için izinleri tanımlar.
Ağdaki bir paketi, MAC adresini kullanarak ilgili makineye iletmek bu katmanın sorumluluğundadır. Yani katman 2’ye ait paket başlıkları, gönderenin ve alıcının MAC adresini içerir. Buradan yola çıkarak, buradaki veri iletiminin aynı ağ içerisinde yapıldığını söyleyebiliriz.
Bu katmanın bir özelliği de “framing” yani çerçeveleme yapılmasıdır. Ağ katmanından (katman 3) alınan paket Network kartının çerçeve boyutuna bağlı olarak çerçevelere bölünür. Bu da bir göndericinin, alıcı için anlamlı bir bit dizisi iletmesini sağlar. Çerçeveler oluşturulduğunda, her çerçeveye MAC adres bilgileri de eklenir. “802.2 Ethernet II” frame türüne örnek olarak verilebilir.
(bkz: Framing, Physical Addressing, Error Control, Flow Control, Access Control)
(Görselde yazan TCP/IP modelinden yazının sonunda bahsediyorum.)
3. Ağ Katmanı
Bu katmanda farklı ağlar arasında bir iletim söz konusudur. Ağ katmanının en önemli özelliği ağlar arası yönlendirmenin yapılmasıdır. Bu işi yapmak için router isimli özel cihazlar kullanılır. Paket iletiminin en kısa yoldan yapılmasının sağlanması da bu katmanda bir görevdir. Göndericinin ve alıcının IP adresleri katman 3 paket başlıklarında yer alır. Bu katmanda kullanılan protokollere örnek olarak; IP, ARP, ICMP verilebilir.
4. Taşıma/İletim Katmanı
Bu katman OSI modelinin kalbi olarak isimlendirilir. İletimin nasıl yapılacağının belirlendiği katman diyebiliriz. Üst katmanlardan gelen veri segmentlere ayrılır ve öyle taşınır. Alıcı gelen paketin katman 4’e ait başlıklarını okuyarak, segmentlere ayrılmış veriyi birleştirir ve hangi porta gönderilmişse orada değerlendirir. Uçtan uca bir iletim sağlanır. Hangi portların kullanılacağı, gönderimin aciliyeti ve gönderimin ulaşıp ulaşmadığına dair kontrol bu katmanda belirlenir.
İki türlü iletim yolu vardır:
- Connection Oriented
- Bağlantı Kurulumu
- Veri Transferi
- Bağlantıyı kesme
- Connection Less
Bu iki tür iletim için sırasıyla TCP ve UDP’yi örnek olarak verebiliriz. “Bu yazıda” bu protokollerin detaylarını öğrenebilirsiniz.
5. Oturum Katmanı
Bu katman cihazlar arasındaki bağlantıları kontrol etmekten sorumludur. Bir oturumun askıya alınması, yeniden başlatılması veya tamamen sonlandırılması için prosedürler bu katmanda oluşturulur. Authentication (kimlik doğrulama) ve authorization (yetki) işlemleri bu katmanda gerçekleştirilir.
6. Sunum Katmanı
Uygulama katmanından alınan veri makinenin anlayabileceği binary veriye yani ağ üzerinden iletilmeye uygun bir formata dönüştürülür. Bu kısma translation denir. Daha sonra iletilecek olan veri, sıkıştırılır. Sıkıştırma işlemi temelde kayıplı ve kayıpsız olarak ikiye ayrılır. Örneğin GIF, hem hareketli hem de statik görüntüleri destekleyen görüntü dosyaları için kayıpsız sıkıştırma kullanan bir formattır. Verinin şifrelenmesi işlemi de bu katmanda yapılır.
7. Uygulama Katmanı
Son kullanıcıya en yakın olan katmandır. Burada kullanıcı ve uygulama katmanı, bir uygulama ile birlikte doğrudan etkileşim halindedir. Bu uygulamalar ağ üzerinden aktarılması gereken verileri üretir ya da alınan verileri kullanıcıya gösterir. Örnek olarak web browserları ya da email uygulamalarını verebiliriz.
TCP/IP Modeli
Esasında bu iki modelde aman aman bir farklılık yoktur. TCP/IP modeli daha protokol odaklı oluşturulmuştur. 7 değil 4 katman vardır. OSI modelindeki 7-6-5 katmanlarını tek bir “Application” katmanında, 2-1 katmanlarını da “Link / Network Interface / Network Access” katmanında birleştirir.
Bu modelde;
- Tek bir ağ içinde iletimi yapılan veriler için iletişim standartlarını belirleyen Link katmanı,
- Birbirinden bağımsız, farklı ağlar arasında iletişimin yönlendirilmesini belirleyen protokoller için Internet / Network katmanı,
- Host-to-Host iletişimi ele alan yöntemlerin belirlendiği protokoller için Transport katmanı,
- Uygulama ve uygulamanın kullandığı dosya formatı bulunarak gönderilen verinin türüne göre farklı protokollerin kullanıldığı Application katmanı,
bulunur.
Eğer OSI modelinde, katmanlardaki protokolleri merak ediyorsanız şu wikipedia sayfasına göz atabilirsiniz: https://en.wikipedia.org/wiki/List_of_network_protocols_(OSI_model)
Yazara ait diğer yazılar
OSI ve TCP/IPLAN/WAN - Ethernet - MAC - IP - ARP - MiTM