OSI referans modeli, kavramsal bir modeldir. Yani, hiçbir yerde OSI programı veya OSI donanımı diye bir şey göremezsiniz. Yazılım ve donanım üreticileri, bu modelin tanımladığı kurallar çerçevesinde üretim yaparlar ve böylece farklı üreticilerin ürettikleri ürünler birbirleriyle uyumlu çalışır. OSI modelinde en üst katmandan yola çıkan ham veri ki; ö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.
Şekil 1. OSI Referans Modelinde Katmanlar Arası Veri İletimi
Bilgisayarlar arası iletişimin başladığı günden itibaren, farklı bilgisayar sistemlerinin birbirleri arasında gerçekleştirecekleri iletişim daima en büyük problemlerden birisi olmuş ve bu sorunun üstesinden gelebilmek için uzun yıllar boyunca çeşitli çalışmalar yapılmıştır.
Açık Sistem Bağlantıları / Open Systems Interconnection(OSI) Modeli, iki bilgisayar arasındaki iletişimin nasıl olacağını tanımlamak amacıyla ISO (International Organization for Standardization) tarafından geliştirmiştir. OSI referans modeli, bir ağ uygulaması değildir, her katmanın görevini tüm detayları ile tanımlayan bir modeldir. OSI referans modelini bir gemi projesine benzetebiliriz. Nasıl ki aynı gemi planını alan farklı firmalar birbirlerinden farklı ya da birbirleriyle tamamen aynı gemi yapabiliyorlarsa OSI referans modeli de aynı esneklik ve yapıcılığa sahiptir.
İlk olarak 1978 yılında ortaya çıkarılan bu standart, 1984 yılında yeni bir düzenlemeyle OSI başvuru modeli olarak yayımlanmıştır. Bu model kısa sürede kabul görerek yaygınlaşmış ve ağ işlemleri için bir kılavuz olmuştur.
Şekil 2. OSI Referans Modeli Katmanları
OSI öncesindeki dönemde, bütün bilgisayar firmalarının kendilerine özgü ağları vardı. Örneğin; IBM International Business şirketine ait SNA ile DEC firmasına ait DECnet gibi. Bu ağlar, çoğunlukla, yalnızca o üreticinin donanımının kullanılmasına izin verecek ya da en azından başka ürünlerin bağlanmasını zorlaştıracak biçimde tasarlanmıştı. İşte bu nedenlerden ötürü OSI, çeşitli üreticilerin ürünlerinin bağlanabileceği bir ağ için, bir sektör etkinliği olarak ortaya çıkmıştır. OSI modeli, herhangi bir donanım ya da bilgisayar ağı tipine göre değişiklik göstermemektedir. OSI referans modelinin amacı, ağ mimarilerinin ve protokollerinin bir ağ ürünü bileşeni gibi kullanılmasını sağlamaktır.
ISO standartlarının ağ üzerindeki iletişimi sağlarken karmaşık bir yol izlediği bir gerçektir. OSI modeli modüler bir mimariye dayanır. Her katmanda belli bir iş yapılarak bir sonraki katmana geçilir. ISO standardı, yedi katmana ayrılmıştır. Bir başka deyişle bu temel problem, 7 adet küçük probleme parçalanmış ve her bir problem için ayrı ayrı bir çözüm yaratılmaya çalışılmıştır. Şekil 2’de OSI referans modeli katmanları gösterilmiştir. Bu 7 katmanın en altında yer alan iki katman yazılım ve donanım, üstteki beş katman ise genelde yazılım yolu ile çözülmüştür. OSI modeli, bir bilgisayarda çalışan uygulama programının, iletişim ortamı üzerinden başka bir bilgisayarda çalışan diğer bir uygulama programı ile olan iletişiminin tüm adımlarını tanımlar. En üst katmanda görüntü ya da yazı şeklinde yola çıkan bilgi, alt katmanlara indikçe makine diline dönüşür ve sonuç olarak 1 ve 0’lardan ibaret elektrik sinyalleri halini alır. Aşağıdaki şekilde, OSI referans modeli katmanları ve bir ağ üzerindeki durumu gösterilmektedir:
Şekil 3. OSI Referans Modellerinin Katmanları ve Ağ Üzerindeki Durumu
OSI KATMANLARI ve ÖZELLİKLERİ
OSI modelinde iletişim problemi yedi katman ile çözülmüştür. İki bilgisayar sisteminin birbiriyle iletişim kurabilmesi için ilk öncelikle uygulama programının, sistemin 7. katmanıyla konuşması gerekir. Bu katman 6. katmanla, 6. katman 5. katmanla, 5. katman 4. katmanla, 4. katman 3. katmanla, 3. katman 2. katmanla ve 2. katman 1. katmanla konuşur. Ardından iletişim network hattına oradan da diğer sistemin 1. katmanına geçer. Şekil 3’te de görüleceği gibi veri ilgili sistemin diğer katmanlarına yükselir.
LAN teknolojilerinin anlaşılması için OSI referans modeli olarak adlandırılan yedi katmanlı modelin anlaşılması gerekir. OSI modeli, modüler bir mimariye dayanır. Her katmanda belli bir iş yapılarak bir sonraki katmana geçilir.
OSI katmanları, kendilerine ait iletişim servis ve / veya servislerini tanımlar. Herhangi bir katmanın üzerinde gerçekleşecek iletişim, protokol denilen iletişim kuralları ile düzenlenir. Protokoller, ilgili verinin iletimini sağlarlar.
Katmanlı model işlemlerin farklı teknolojilerle yapılmasını sağlar ve farklı problemlerin farklı teknolojilerle çözülmesine olanak verir. Örneğin; farklı kablolama yöntemlerinin kullanılmasının ardından, üst katmanlardaki işlemler aynen devam edebilir. Her bir katman, hem bir önceki katmanda hem de bir sonraki katmanda gerçekleşen işlemlerden haberdardır.
FİZİKSEL KATMAN
Genel olarak, fiziksel iletim katmanı, ağın elektriksel ve mekanik karakteristiklerini belirler. Modülasyon teknikleri, çalışma voltajı, frekansı vs. bu katmanın temel özelliklerindendir.
Fiziksel katman, OSI modelinin en alt katmanıdır. Verileri bit olarak iletir. Bu katmanda, ağ kablosu ile iletişim kurulur. Fiziksel katmanda, verilerin iletimi sayısal olarak (basebant) koaksiyel kablo, UTP ya da fiber optik kablo üzerinden yapılır. Fiziksel iletimle ilgili olarak yaygın olarak IEEE The Institute of Electrical and Electronics Engineers 802.3, 802.4 ve 802.5 standartları kullanılır. Bunun dışında ANSI FDDI (Fiber Distributed Data Interface) standardı da vardır. Fiziksel katman, verinin kablo üzerinde alacağı fiziksel yapıyı tanımlar. Diğer katmanlar bir ve sıfır değerleriyle çalışırken, fiziksel katman bir ve sıfırların nasıl ve ne şekilde elektrik, ışık veya radyo sinyallerine çevrileceğini ve aktarılacağını tanımlar. Gönderen tarafta fiziksel katman bir ve sıfırları elektrik sinyallerine çevirip kabloya yerleştirirken, alıcı taraftaki fiziksel katman kablodan okuduğu bu sinyalleri tekrar bir ve sıfır haline getirir.
Şekil 4. Fiziksel Katmanda Veri İletimi
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 bir manasına gelen elektrik sinyalini +5 volt ve 2 milisaniye süren bir elektrik sinyali olarak yolluyorken alıcının +7 volt ve 5 milisaniyelik bir sinyali kabloda gördüğünde, bunu 1 olarak anlıyorsa veri iletimi gerçekleşmez, gerçekleşemez.
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 üretmiş olduğu ağ kartları birbirleriyle sorunsuz olarak çalışır.
Fiziksel katman, verinin gönderilmesini ve alınmasını tanımlayan katmandır. Kablolamayı ve network kartına bağlanmayı sağlayan birimleri içerir. İletim ortamındaki sinyal iletimini kontrol eder.
Fiziksel katman, bitlerin bir bilgisayardan diğerine gönderildiği katmandır. Diğer bir deyişle, ağın ta kendisidir. Network üzerinde iki istasyon arasındaki bağlantı bakır bir kablo, fiber optik, radyo sinyalleri, mikrodalga, infrared ya da ortama göre değişen bir medya olabilir. Fiziksel katman verilerin bit olarak (elektronik olarak ) iletimiyle ilgilenir. Veri paketleriyle, frame'lerle, adreslerle ya da verinin ulaşacağı hedef ile ilgilenmez.
Fiziksel katman, verinin iletildiği medya ile ilgilidir. Verilerin iletileceği çok fazla medya olduğu için ISO ve diğer firmalar tarafından çok sayıda kılavuz medya özelliklerini açıklamak için çalışmalar yapmaktadır. Özellikle hız, uzunluk, güvenlik vb. özellikler medya türlerini tanımlar.
Network'lerin çoğunda sayısal sinyalleme kullanılır. Sayısal sinyallerin iletiminde en büyük sorun zamanlamadır. Bu sorunu gidermek için çeşitli sinyal iletim yöntemleri geliştirilmiştir.
VERİ HATTI KATMANI
Veri hattı katmanında, fiziksel katmanda elektronik medyanın üzerinde verilerin nasıl iletileceği ve verilerin bu medyaya nasıl yazılacağı belirlenir.
Bu katmanda, ethernet ya da token ring olarak bilinen erişim yöntemleri çalışır. Bu erişim yöntemleri, verileri kendi protokollerine uygun olarak işleyerek iletirler. Veri hattı katmanında veriler network katmanından fiziksel katmana gönderilirler. Bu aşamada veriler belli parçalara bölünür. Bu parçalara paket / frame denir. Frame’ler, verileri belli bir kontrol içinde göndermeyi sağlayan paketlerdir. Veri hattı katmanında yaygın olarak kullanılan protokoller ise Ethernet ve Token Ring'dir.
Verilerin iletiminde temel olan veriler, paket olarak yapılandığından, paketler veri iletiminde önemli bir yer tutarlar. Paketler, LAN üzerinde taşınan bir birim bilgidir. Paketler, OSI modelinin farklı katmanlarına göre işlenirler. Bu işleme sarma (encapsulation) denir. Bu işlemle her OSI katmanında bir üst düzeyden alınan veri işlenir ve ardından kapsüllenerek bir sonraki düzeye gönderilir.
Şekil 5. Veri İletim Katmanı
Birçok sarma tekniği vardır. Bu işlem bir dizi protokol ile sağlanır. Ancak bütün sarma işlemlerinde veriye dokunulmadan ona ekleme yapılır. Her katman, bilgisini ekleyerek veriyi bir sonraki katmana gönderir. Ya da tam tersi her katman kendi elde ederek (çıkartarak) veriyi bir sonraki katmana gönderir.
Ethernet network'ünde kapsüllenen veri paket olarak hareket eder ve bir paketin genel olarak formatı aşağıdaki gibidir:
Network başlığı Veri Network izleyeni
Veri bağlantısı katmanı iki alt bölüme ayrılır: Media Access Control (MAC) ve Logical Link Control (LLC).
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ı yani 3. katman için geçiş görevi görür. Protokole özel mantıksal portlar oluşturur. Örneğin; Service Access Points, SAPs. Böylece kaynak makinede ve hedef makinede aynı protokollere göre iletişime geçebilir. Örneğin; TCP/IP ile 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şleyebileceğinden fazla veri paketi gönderilerek boğulmasının engellenmesi de yine LLC'nin görevidir.
AĞ KATMANI
Network katmanının ana görevi yönlendirme (routing) dir. Yönlendirme işlemi paketlerin yerel network dışında diğer network'lere gönderilmesini sağlar.
Network katmanında iki istasyon arasında en ekonomik yoldan verinin iletimi kontrol edilir. Bu katman sayesinde verinin yönlendiriciler aracılığıyla yönlendirilmesi sağlanır.
Network aşamasında mesajlar adreslenir, ayrıca mantıksal adresler fiziksel adreslere çevrilir. Bu aşamada network trafiği işlemleri gerçekleştirilir.
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. Aşağıdaki şekilde, network katmanı gösterilmiştir:
Şekil 6. Ağ Katmanı
TAŞIMA KATMANI
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örevleri de 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. Transport katmanında verinin uçtan uca iletimi sağlanır. Verinin hata kontrolü ve zamanında ulaşılıp ulaşmadığı kontrol edilir. Taşıma katmanı taşıma katmanı üst katmanlara taşıma servisi sağlar.
Transport katmanı network'ün servis kalitesini (QoS) artırır. "Quality of Service", bir network servisinin kalitesinin ölçümü için belli kriterleri kullanılır. Bu kriterler şunlardır:
- İletişimin maliyeti
- İletişim için sağlanan bant genişliği
- Network katmanında oluşan hataların giderilmesi
- Kayıp paketlerin kurtarılması
- Sırası bozulan paketlerin yeniden düzenlenmesi
Taşıma katmanı, veriyi, kaynak bilgisayardan hedef bilgisayara güvenli bir şekilde taşıyan ve data akışını düzenleyen katmandır. Taşıma katmanının iki önemli fonksiyonu vardır. Bunlar: Güvenlilik (Reliability) ve Akış Kontrolü (Flow Control)’dür.
Güvenlilik (Reliability): İki bilgisayar arasında gerçekleştirilen data iletişiminde, gönderilen datanın sağlıklı bir şekilde alınıp alınmadığını, alınmadığı takdirde tekrar gönderilmesini sağlayan bir fonksiyondur. Örneğin; A bilgisayarı B bilgisayarına 3 data paketi göndermiştir ve bu dataların alındığının onaylanmasını istemektedir. Gönderilen her bir data, taşıma katmanı protokolü tarafından numaralandırılmaktadır. B bilgisayarı da gönderilen dataları aldığını ve bir sonraki data paketini ve/veya paketlerini beklediğini belirten bir onay mesajı gönderir. Bu mesaja gönderim onayı (forward acknowledgement) denir.
Akış Kontrolü (Flow Control): Birçok sebepten dolayı bazı data paketleri yok edilmektedir. İletişim halindeki bilgisayarlardan gönderen bilgisayarın kapasitesi, data paketlerini alan bilgisayarın alabileceği kapasiteden daha fazla olabilmektedir.
Dolayısıyla datayı alan bilgisayar, data paketlerini yok edebilmektedir. Ayrıca gönderen bilgisayar, ağda bulunan anahtar ve yönlendirici gibi ağ cihazlarının kapasitesini zorlayabilmektedir. Aynı şekilde bu cihazlar da data paketlerini yok edeceklerdir. Bazen datayı alan bilgisayarın ara belleği (buffer) yeteri kadar büyük olmayabilir ve işlemcisi çok miktarda datayı işliyor olabilir. Bu nedenlerden dolayı tıkanma (congestion) olabilmektedir. Bu tıkanıklığı giderebilmek için data gönderim miktarını kontrol etmek üzere akış kontrol etmek üzere akış kontrol sistemi kullanılmaktadır. Bu sistemde, üç metot kullanılmaktadır. Bunlar;
- Ara Bellekleme (Buffering)
- Tıkanıklıktan Kaçınma (Congestion Avoidance)
- Pencereleme (Windowing)
Ara Bellekleme (Buffering): Data akış hızına müdahale etmeden alınan data, bilgisayarın kapasitesini aştığı durumlarda bilgisayarın ara belleğinde yer açma işlemidir. Böylece, belli bir süre ara bellekte tutulan data, bilgisayarın yükü azaldığı zaman hemen işleme sokulmaktadır.
Tıkanıklıktan Kaçınma (Congestion Avoidance): Data paketlerini alan bilgisayarın ara belleği dolduğu durumlarda, data paketlerini gönderen bilgisayara ya “gönderme işlemini durdur” ya da “gönderme işlemini yavaşlat” şeklinde mesajlar göndermektedir. Böylece, alınmış olan data paketlerini işlemek üzere belli bir süre kazanmaktadır. TCP/IP iletişimde ICMP mesajları içerisinde “Source Quench” adlı mesaj, data paketlerini gönderen bilgisayara hızını yavaşlatması gerektiğini ifade etmektedir.
Pencereleme (Windowing): Data iletişimi sırasında gönderilen datanın güvenli bir şekilde gidip gitmediğinin öğrenilmesi ve oluşacak data kayıplarının telafi edilmesi çok önemlidir. Bu takibin, daha etkili bir şekilde yapılması için gönderen bilgisayarın onay almadan gönderebileceği maksimum sayıda data paketi belirlenir. Bu işleme, pencereleme (windowing) denir.
Transport katmanında iki farklı protokol vardır. Bunlar:
1. Bağlantı Odaklı Protokoller (Connection Orianted Protocols): İletişim kuracak olan iki uç arasında bağlantı kurulmadan önce mesaj alışverişi gerektiren protokollerdir.
2. Bağlantısız Protokoller(Connectionless Protocols): İletişim kuracak olan iki uç arasında bağlantı kurulmadan önce mesaj alışverişi gerektirmeyen protokollerdir.
Aşağıdaki şekilde taşıma katmanı gösterilmiştir:
Şekil 7. Taşıma Katmanı
OTURUM KATMANI
Oturum katmanında iki nokta arasında iletişim bağlantısı kurulur, başlatılır ve sona erdirilir. Oturum Katmanı uygulamalar arasındaki oturumu temsil eder. Oturum katmanı sunum katmanına yollanacak veriler arasından diyalog kurar. Aşağıdaki şekilde oturum katmanı gösterilmiştir:
Şekil 8. Oturum Katmanı
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 üzerindeki yazıcıya yazdırırken, 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.
SUNUM / SUNUŞ KATMANI
Sunum katmanında verinin çevrilmesi işlemi yapılır. Sunum katmanı, uygulama katmanına verileri yollar. Bu katmanda verinin yapısı, biçimi ile ilgili düzenlemeler yapılır.
Sunum katmanında verinin formatı belirlenir. Ayrıca verinin şifrelenmesi ve açılması da bu katmanda yapılır. Yine bu katmanda verinin sıkıştırılması işlemi yapılır. Aşağıdaki şekilde sunuş katmanı gösterilmiştir:
Şekil 9. Sunuş Katmanı
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 birbirlerinin verisini kullanabilmesi mümkün olur.
Dos ve Windows 9x metin tipli veriyi 8 bit ASCII olarak, örneğin A harfini 01000001 olarak kaydederken, NT tabanlı işletim sistemleri 16 bit Unicode'u kullanır ve A harfini 0000000001000001 olarak kaydeder. 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 makinenin diğer makine ü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.
UYGULAMA KATMANI
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 HTTP'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 gibi), aynı protokolü kullanan bir Web sunucuya erişir.
Bilgisayar uygulaması ile network arasında gerçek bir arabirim sağlar. Bu katman kullanıcıya en yakın olandır. Sadece bu katman diğer katmanlara servis sağlamaz. Uygulama katmanında ise uygulamaların network üzerinde çalışması sağlanır.
Uygulama katmanı, network servisini kullanacak olan programdır. Bu katman kullanıcının gereksinimlerin karşılar. Örneğin; veritabanı uygulaması ya da e-mail uygulaması.
TCP/IP ile etkileşen kullanıcı süreçleri, ulaşım katmanında yer alan TCP ve UDP protokolleri aracılığıyla veri alıp verir.
TCP, uygulama programları için iki yollu, bağlantı temelli veri yolu oluşturur. TCP'nin bağlantı temelli doğası, ağın "alındı" mesajı sağlaması nedeniyle "güvenilir" bir iletişim anlamına gelir. TCP ile aynı katmanda yer alan UDP, bağlantısız kendi kendine yeterli datagram servisi sağlar. Bağlantısız olması nedeniyle UDP'de, ağ alındı mesajı sağlamaz. Dolayısı ile güvenilir bir iletişim söz konusu değildir. Burada sözü edilen güvenilir olmak veya olmamak, en düşük seviyedeki ağ servisleri açısındandır. Güvenilirliği iyileştirmek için uygulama ve destek yazılımlarının yaptığı herhangi bir şey varsa o ayrı bir konudur. Aşağıdaki şekilde uygulama katmanı gösterilmiştir:
Şekil 10. Uygulama Katmanı
Son olarak, OSI referans modelinde kullanılan protokollerin listesi aşağıdaki gibidir: