Bilgisayar ağlarının ilk günlerinde farklı firmalar kendilerine özel teknolojilerle ağ sistemleri geliştiriyorlar ve satıyorlardı. Kendi başlarına düzgün çalışan bu ağlar ortak çalışma yeteneğine sahip değildi. Herbirinin kendine özel yazılım ve donanımları vardı. Farklı isimlendirme sistemleri ve sürücüler kullanan bu ağları birbirleriyle iletişime geçirmek imkansızdı.
Ağ sistemlerinin bu özel yapısı diğer donanım ve yazılım üreticilerinin bu ağlar için ürün geliştirmesini de imkansız hale getiriyordu.
Bir ağ sistemi satın aldığınızda kablosundan ağ kartına kadar, hub, sürücüler ve ağ işletim sistemi dahil herşeyi üretici firmadan paket olarak çok yüksek bir fiyata almak zorundaydınız. Ayrıca ilerleyen dönemde de bu tek firmaya bağımlı duruma geliyordunuz.
Ağ sistemlerine olan talebin artması ile ağ sistemlerinin işlevlerini tanımlayan ortak bir model oluşturulması gerektiği anlaşıldı.
Bunu gerekli kılan bir diğer unsur ise ağ sistemlerini açıklamakta kullanılan terimlerin üreticiden üreticiye değişiklik göstermesi, ağ üzerinde işlem gören yazılım ve donanım bileşenlerinin ne görev üstlendiklerinin standart halinde olmamasıydı.
1984 yılında International Organization of Standardization (ISO) isimli kurum Open System Interconnection modelini (ISO) ortaya koydu.
İPUCU
International Organization of Standardization=IOS olması gerekmez mi?
ISO kurumun isminin kısatması değil, latincede eşit manasına gelen "isos" kelimesinden türetilmiş bir sözcüktür.
NOT
OSI Modeli değişmez bir kanun değildir. İsteyen kendi başına bir ağ sistemi tasarlayabilir ve belki de çalışır hale getirir. Ancak OSI modeli referans alınmadıysa diğer ağlarla iletişimi zor olacak değişik üreticiler bu ağ sistemi için donanım ve yazılım üretemeyecekler demektir.
Protokoller ve kavram karmaşası
Protokol kelimesi günlük yaşamda karşımıza bir yabancı devlet başkanı ülkemizi ziyarete geldiğinde, karşılama töreni ve sonrasında takip edilen kurallar bütünü olarak çıkar.
Bu manasıyla protokol nasıl bir devlet başkanının diğerinin konuşmasını kesmesini, yada yanlış yerde yanlış harekette bulunmasını önlüyorsa, bilgisayar ağlarında da benzer bir işlevi ifade eder.
Bilgisayar ağları söz konusu olduğunda, protokol kelimesi iki aygıt veya yazılımın önceden belirlenmiş kurallar çerçevesinde nasıl haberleşmeleri gerektiğini tanımlar.
Basit bir FTP programı ile dosya gönderirken bile arka planda bir çok protokol görev yapar. File Transfer Protocol(FTP) iki bilgisayar üzerinde çalışan iki yazılımın nasıl veri değişimi yapacağını belirler. Transmit Control Protocol(TCP) gönderen sistem üzerinde yollanacak veriyi parçalara bölünmesini ve alıcı sistem üzerinde ise tekrar birleştirilmesini sağlar. Internet Protocol(IP) ise verinin değişik yönlendiriciler üzerinde doğru yolu izleyerek karşı tarafa ulaşmasını sağlar. Ağ kartı ve kablo protokolleri ise verinin nasıl eletrik sinyalleri halinde iletileceğini tanımlar.
7 Katman
Ağlar ile ilgili bir çok dökümanda OSI modeline atıf yapıldığını görürsünüz. OSI modeli sayesinde bir cihazın veya protokolün ağ içinde ne görev üstlendiği daha rahat anlatılabilir.
OSI modeli verinin bir bilgisayar üzerinde bir program'dan, ağ ortamından geçerek diğer bir bilgisayar üzerindeki diğer bir programa nasıl ulaşacağını tanımlar. Model bu süreci 7 katman halinde inceler:
Layer 7 - Application
7. Katman - Uygulama
Layer 6 - Presentation
6. Katman - Sunum
Layer 5 - Session
5. Katman - Oturum
Layer 4 - Transport
4. Katman - Taşıma
Layer 3 - Network
3. Katman - Ağ
Layer 2 - Data Link
2. Katman - Veri Bağlantısı
Layer 1 - Physical
1. Katman - Fiziksel
Uygulama katmanı veriyi sunum katmanına sunum ise oturum katmanına aktarırır. Bu şekilde veri fiziksel katmana kadar ulaşır.
Veri alımında ise bu işlem tam tersi şekilde gerçekleşir.
Dikkat
Bilgisayar ağları ile ilgili dökümanlarda örneğin "Network Layer" ve "Layer 3" birbirinin yerine kullanılabilir. Bu sebeple tüm katmanları sırasıyla ve isimleriyle hatırlamakta fayda var.
OSI Modelinde her katman çözülmesi gereken problemleri tanımlar. Bu katmanda çalışan aygıt ve protokoller ise bu problemlere çözüm getirir.
7 katmanlı OSI modeli 2 bölümde incelenebilir: Application Set ve Transport Set. Application Set(uygulama seti) uygulamalar yani programlarla ilgili konuları içerir. Genellikle sadece yazılımsaldır. Modelin en üstündeki uygulama katmanı kullanıcıya en yakın katmandır.
Transport Set(veri aktarım seti) veri iletişimi ile ilgili meseleleri tanımlar. Fiziksel ve veri aktarım katmanları hem yazılımsal hemde donanım olarak görevini yerine getirebilir. Fiziksel katman(en alt katman) fiziksel ağ ort.....(ağ kablosuna mesela) en yakın katmandır. Ve esas olarak bilgiyi kablodan aktarmakla görevlidir.
1. Katman : Fiziksel Katman (Physical Layer)
1. katman veya fiziksel katman verinin kablo üzerinde alacağı fiziksel yapıyı tanımlar. Diğer katmanlar 1 ve sıfır değerleriyle çalışırken, 1. katman 1 ve sıfırların nasıl elektrik, ışık veya radyo sinyallerine çevrileceğini ve aktarılacağını tanımlar. Gönderen tarafta 1. katman bir ve sıfırları elektrik sinyallerine çevirip kabloya yerleştirirken, alıcı tarafta 1. katman kablodan okuduğu bu sinyalleri tekrar bir ve sıfır haline getirir.
Fiziksel katman veri bitlerinin karşı tarafa, kullanılan medya(kablo, fiber optik, radyo sinyalleri) üzerinden nasıl gönderileceğini tanımlar. İki tarafta aynı kurallar üzerinde anlaşmamışsa veri iletimi mümkün değildir. Örneğin bir taraf sayısal 1 manasına gelen elektrik sinyalini +5 volt ve 2 milisaniye süren bir elektrik sinyali olarak yolluyor, ama alıcı +7 volt ve 5 milisaniyelik bir sinyali kabloda gördüğünde bunu 1 olarak anlıyorsa veri iletimi gerçekleşmez.
Fiziksel katman bu tip çözülmesi gereken problemleri tanımlamıştır. Üreticiler(örneğin ağ kartı üreticileri) bu problemleri göz önüne alarak aynı değerleri kullanan ağ kartları üretirler. Böylece farklı üreticilerin ağ kartları birbirleriyle sorunsuz çalışır.
Katman 2: Veri Bağlantısı Katmanı (Data Link Layer)
Veri bağlantısı katmanı fiziksel katmana erişmek ve kullanmak ile ilgili kuralları belirler. Veri bağlantısı katmanının büyük bir bölümü ağ kartı içinde gerçekleşir. Veri bağlantısı katmanı ağ üzerindeki diğer bilgisayarları tanımlama, kablonun o anda kimin tarfından kullanıldığının tespiti ve fiziksel katmandan gelen verinin hatalara karşı kontrolü görevini yerine getirir.
Veri bağlantısı katmanı iki alt bölüme ayrılır: Media Access Control(MAC) ve Logical Link Control(LLC).
VERİ BAĞLANTISI
LLC
MAC
MAC alt katmanı veriyi hata kontrol kodu(CRC), alıcı ve gönderenin MAC adresleri ile beraber paketler ve fiziksel katmana aktarır. Alıcı tarafta da bu işlemleri tersine yapıp veriyi veri bağlantısı içindeki ikinci alt katman olan LLC'ye aktarmak görevi yine MAC alt katmanına aittir.
LLC alt katmanı bir üst katman olan ağ katmanı(3. katman) için geçiş görevi görür. Protokole özel mantıksal portlar oluşturur (Service Access Points, SAPs). Böylece kaynak makinada ve hedef makinada aynı protokoller iletişime geçebilir(örneğin TCP/IP<-->TCP/IP). LLC ayrıca veri paketlerinden bozuk gidenlerin(veya karşı taraf için alınanların) tekrar gönderilmesinden sorumludur. Flow Control yani alıcının işleyebileğinden fazla veri paketi gönderilerek boğulmasının engellenmesi de LLC'nin görevidir.
Katman 3: Ağ Katmanı(Network Layer)
Ağ katmanı veri paketine farklı bir ağa gönderilmesi gerektiğinde yönlendiricilerin kullanacağı bilginin eklendiği katmandır. Örneğin IP protokolü bu katmanda görev yapar.
Katman 4: Taşıma Katmanı (Transport Layer)
Taşıma katmanı üst katmanlardan gelen veriyi ağ paketi boyutunda parçalara böler. NetBEUI, TCP ve SPX gibi protokoller bu katmanda çalışır. Bu protokoller hata kontrolü gibi görevleride yerine getirir.
Taşıma katmanı alt katmanlar (Transport Set) ve üst katmanlar (Application Set) arasında geçit görevini görür. Alt katmanlar verinin ne olduğuna bakmandan karşı tarafa yollama işini yaparken üst katmanlarda kullanılan donanım ile ilgilenmeden verinin kendisi ile uğraşabilirler.
Katman 5: Oturum Katmanı(Session Layer)
Oturum katmanı bir bilgisayar birden fazla bilgisayarla aynı anda iletişim içinde olduğunda, gerektiğinde doğru bilgisayarla konuşabilmesini sağlar. Örneğin A bilgisayarı B üzerideki yazıcıya yazdırıken, C bilgisayarı B üzerindeki diske erişiyorsa, B hem A ile olan, hem de C ile olan iletişimini aynı anda sürdürmek zorundadır.
Bu katmanda çalışan NetBIOS ve Sockets gibi protokoller farklı bilgisayarlarla aynı anda olan bağlantıları yönetme imkanı sağlarlar.
Katman 6: Sunum Katmanı(Presentation Layer)
Sunum katmanının en önemli görevi yollanan verinin karşı bilgisayar tarafından anlaşılabilir halde olmasını sağlamaktır. Böylece faklı programların birbilerinin verisini kullanabilmesi mümkün olur.
Dos ve Windows 9x metin tipli veriyi 8 bit ASCII olarak kaydederken (örneğin A harfini 01000001 olarak), NT tabanlı işletim sistemleri 16 bit Unicode'u kullanır (A harfi için 0000000001000001). Ancak kullanıcı tabii ki sadece A harfiyle ilgilenir. Sunum katmanı bu gibi farklılıkları ortadan kaldırır.
Sunum katmanı günümüzde çoğunlukla ağ ile ilgili değil, programlarla ilgili hale gelmiştir. Örneğin eğer siz iki tarafta da gif formatını açabilen bir resim gösterici kullanıyorsanız, bir makinanın diğeri üzerindeki bir GIF dosyayı açması esnasında sunum katmanına bir iş düşmez, daha doğrusu sunum katmanı olarak kastedilen şey, aynı dosyayı okuyabilen programları kullanmaktır.
Katman 7: Uygulama Katmanı(Application Layer)
Uygulama katmanı programların ağı kullanabilmesi için araçlar sunar. Microsoft API'leri uygulama katmanında çalışır. Bu API'leri kullanarak program yazan bir programcı, örneğin bir ağ sürücüsüne erişmek gerektiğinde API içindeki hazır aracı alıp kendi programında kullanır. Alt katmanlarda gerçekleşen onlarca farklı işlemin hiçbirisiyle uğraşmak zorunda kalmaz.
Uygulama katmanı için bir diğer örnek HHTP'dir. HTTP çalıştırılan bir program değil bir protokoldür. Yani bir kurallar dizesidir. Bu dizeye gören çalışan bir Browser(IE mesela), aynı protokolü kullanan bir Web sunucuya erişir.
Son söz
OSI kavramsal bir modeldir. Yani hiç biryerde OSI programı veya OSI donanımı diye bir şey göremezsiniz. Ancak yazılım ve donanım üreticileri bu modelin tanımladığı kurallar çerçevesinde üretim yaparlar ve ürünleri birbiri ile uyumlu olur.
OSI Modeli aygıtların işlevlerini anlamak ve açıklamakta kullanılır. Örneğin HUB dediğimiz cihazlar gelen veriyi sadece bir takım elektrik sinyalleri olarak gören ve bu sinyalleri çoklayıp, diğer portlarına gönderen bir cihazdır. Bu da HUB'ların fiziksel(1. katman) katmanda çalışan cihazlar olduğunu gösterir.
Oysa switch denen cihazlar 2. katmanda çalışırlar. Çünkü 2. katmanda tanımlı MAC adreslerini algılayabilirler ve bir porttan gelen veri paketini(yine elektrik sinyalleri halinde) sadece gerekli olan porta(o porttaki makinanın MAC adresini bildiği için) yollayabilirler.
Yönlendiriciler(router) için ise bazen "3. katman switch'ler" tabirini görebilirsiniz. Çünkü bu cihazlar biraz daha ileri gidip, 3. katmanda veri paketine eklenmiş IP adresi gibi değerleri de okuyabilir ve ona göre veri paketini yönlendirebilir.
OSI Modelinde en üst katmandan yola çıkan ham veri (örneğin A harfi, bir resim, bir ses dosyası vb.), her katmanda o katmanla ilgili bazı ek bilgiler eklenerek bir alt katmana aktarılır.
Alıcı bilgisayarda ise, alttan üste doğru her katman karşı taraftaki eş katmanın bilgisini kullanır, gerekeni yapar, bu bilgiyi temizleyip paketi bir üst katmana geçirir.
Modele göre her bir katman genellikle üç katmanla ilişki içindedir. Bu üç katman; alt ve üst katmanlar ve karşı taraftaki eş katmandır. Örneğin Transport katmanındaki TCP protokolü, doğal olarak bir üst katmandan aldığı veriyi bir alt katmana iletir(veri gönderimi) veya alttan geleni üste iletir(veri alımı). Ancak gelen veri paketleri eksik ise, tekrar gönderilmesi gereken veri paketini karşı taraftaki eş katmana bildirme görevini de yürütür.