Üniversite’de OSI katmanları ‘nı teorik olarak dinlediğimde hiçbir şey anlamamıştım. Bir tane hoca da bu katmanlı yapının gerçek yaşamda ne işe yaradığını anlatmadı. Yıllar sonra OSI modelini anlamamın networkü anlamak için ne kadar önemli olduğunu yaşayarak görmüş oldum.
İşin kitabi teorisi bir yana kısaca OSI katmanları ‘nı, verinin bir noktadan bir noktaya ulaşırken izlediği yolu bize anlatan bir yapı olarak tanımlayabiliriz. İletim olayını 7 ana fonksiyonel katmana bölünerek, daha kolay anlaşılır bir hale getirilmiş oluyor.
Katmanlara kısaca göz atalım;
Katmanlardan ilk dördü, genellikle veri iletiminde karşımıza çıkan katmanlardır ve bir network uzmanı olarak ilk dört katmanın işlevini çok iyi bilmemiz gerekmektedir. 5-7 arası katmanlar ise daha çok yazılımlar tarafından yönetilen ve uygulamalar tarafından kullanılan katmanlardır.
Veri İletim Katmanları
1. Fiziksel Katman: Bu katmanda bir önceki konumuzda işlediğimiz gibi, artık iletilmek istenen veri 0 ve 1 olarak BIT seviyesine dönüşmüş ve bir ortam üzerinden aktarılmaya hazır duruma gelmiştir.
Layer 1 denince aklımıza UTP data kablosu, fiber optik kablo, radyolink, wifi vs. gibi veri iletiminin kullanıldığı herhangi bir ortam gelmelidir.
2. Veri Bağlantı Katmanı: Bu katmanda, fiziksel ortamdan verinin hangi protokol kullanılarak taşınacağı belirlenir. Yani ben ortam üzerinden veriyi karşıya göndereceğim ama gönderirken hangi dili konuşacağım. Eğer ben Ethernet protokolü ile konuşuyorsam karşıdaki de Ethernet protokolü ile konuşmalı ki aynı dilde anlaşabilelim. Örnek olarak 802.3 Ethernet, PPP, HDLC, Frame Relay, ATM vb. Protokolleri verilebilir. Bu katmanda veri, fiziksel ortama gönderilmeden önceki çerçeve (frame) hali ile bulunur.
Layer 2 dendiğinde aklımıza MAC adresi, VLAN ve Switchler gelmelidir.
3. Ağ Katmanı: Ağ katmanı daha çok birden fazla nokta ile bağlantı söz konusu olduğunda bu bağlantıların hangisinin tercih edileceğine karar verildiği yönlendirme katmanıdır.
Ben ikinci seviyede karşıdaki ille aynı dili konuşmaya başladım. Biz konuşacağımız kişi ile yan yana isek sorun yok, peki ben uzaktaki birisi ile konuşmak istediğimde ne yapacağım? Bu kişi benim direk karşımda değilse ben uzaktaki kişiye mesajımı direk bağlı olduğum komşularım üzerinden iletmek durumundayım. Peki uzaktaki kişiye ulaşana kadar çok sayıda komşu ve çok sayıda bağlantım varsa ben hangi yolu seçmeliyim? Tüm bu karar mekanizmasını yöneten ağ katmanıdır.
Layer 3 denince aklımıza IP adresi, Router’lar ve Layer 3 switchler gelmelidir.
4. Ulaşım Katmanı: Ulaşım katmanında artık karşıdan aldığımız veri IP’den uygulama seviyelerine doğru geçiş aşamasındadır. Veri iletim ortamı ile Uygulama ortamı arasındaki geçiş noktamız uygulama katmanı üzerinden sağlanmaktadır.
Sunucu üzerinde hizmet veren her bir uygulamaya erişim için bir uygulama soketi açılmak durumundadır, uygulamalar dış dünya ile açılan bu soketler üzerinden erişim sağlarlar.
Layer 4 denince aklımıza TCP, UDP, Firewall, Load Balancer gelmelidir.
5, 6 ve 7. Katmanlar daha çok uygulamalar tarafından kullanıldığından bahsetmiştik, detaylarına burada girmeyeceğim. Eskiden bir network uzmanının uygulamalardan anlaması gerekmezdi, ben layer4’den sonrasında karışmam diyerek işi uygulamacılara bırakırdık, ama artık tüm modern networkler uygulama eksenli olarak tasarlandığından yeni çağımızın network uzmanlarının uygulama karakteristiklerin de bilmesi gerektiği ortadadır.
Uygulama Katmanları
5. Oturum Katmanı: İletişim sağlanırken oturumların başlatılması ve sonlandırılması işlemleri kontrol edilir. Örnek olarak RPC, SQL, NFS verilebilir.
6. Sunum Katmanı: Sunum katmanı uygulamaların veriyi hangi formatta sıkıştırarak paketleyeceği belirlenir. Örneğin veri bir resim verisi ise bu JPEG formatında sıkıştırılabilir. Bir video verisi ise MPEG formatında sıkıştırılarak paketlenebilir. Ben hangi formatta veriyi paketledi isem karşıdaki sisteminde bunu aynı uygulama formatı ile açması gerekir, yani JPEG olarak paketlenen bir dosyayı sanki WORD dosyasıymış gibi açamam.
Bazen tanımadığınız bir dosyanın içini text editör ile açmayı denemişsinizdir, içinde karmaşık ve anlamsız karakterleri görmüşsünüzdür.
Layer 6 denince aklımıza dosya formatları, sıkıştırma (encryption), geri açma (decription) gelmelidir.
7. Uygulama Katmanı: Bizim asıl farklı bir noktaya taşımak istediğimiz uygulamamızdır. Kullanılan uygulamalar ise farklı farklıdır. Mesele HTTP, FTP, Database, Telnet, SSH vb. Biz uygulamayı hangi formatta taşıyacağımıza uygulama katmanında karar veririz. Sunucu ve istemci tarafı uygulama katmanında aynı dili kullanıyor olmalıdır, yani sunucu HTTP ile bir hizmet sunuyorsa biz bu hizmeti FTP uygulaması ile kullanamayız. Her uygulamanın kendine göre bir parmak izi ve yapısal şekli vardır.
Günümüz network uzmanlarının uygulama seviyesinde bilgi sahibi olması gerektiğini ifade etmiştik. Buradaki kasıt en az bir ortamdan geçen verinin hangi uygulamaya ait olduğunun tespit edebilecek seviyede olmalıdır. Günümüzde network uzmanlarına yardımcı olabilecek ve uygulama seviyesinde aklı olan bazı donanım ve yazılımlar mevcuttur. Örnek olarak birçok kişinin kullanmakta olduğu wireshark uygulaması ile geçen verinin hangi uygulamaya ait olduğunu anlayabilir ve uygulama seviyesinde analiz gerçekleştirebilirsiniz.
Layer 7 denince aklınıza Layer 7 Firewall, Web Application Firewall (WAF), Layer 7 Load Balancer ve uygulamalar (HTTP, FTP, Telnet, SSH vs) gelmelidir.
Paket Yapısı
Katmanlı yapıyı anlamak ileteceğimiz verinin bir noktadan diğer noktaya giderken nasıl bir yol izlediğini ve oluşan paket yapılarını anlamamızda bize yardımcı olur. Bunu bir şekil ile anlatmak istersek;
Her katman kendine gelen veriye başlık ve kuyruk bilgisi ekleyerek bir sonraki katmana iletir. Bu veri karşı tarafa ulaştığında aynı şekilde her katman, eklenen bu başlık ve kuyruk bilgisini çıkararak asıl veriyi elde eder. Eklenen bu başlık ve kuyruk bilgileri hem verinin doğru adrese gitmesini hem de herhangi bir kayba uğramadan gitmesini garanti altına alır.
Örnek
Gelin son olarak bunu bir örnek üzerinden açıklayalım. Ben www.cisco.com sitesinden bir resim dosyasını browserim ile açmak istiyorum. Arada geçen olayları katmanlara bölerek anlatalım.
Biraz sıkıcı olduğunun farkındayım ama iyi bir network uzmanının OSI katmanlarını çok iyi anlaması, özellikle 1-4 arası katmanların nerede ve hangi cihazlar tarafından kullanıldığını çok iyi bilmesi gerekmektedir.