22 Mart 2009 Pazar

2.Hafta: OSI Referans Modeli

OSI Modeli ve Standardizasyon


TCP/IP ve OSI Network Modelleri

Bilgisayar ağları dünyasındaki temel standart, katmanlama standardıdır. Temel bilgisayar mimarisinden bahsedecek olursak (öncelikle işin içine “network”ü katmayalım) bilgisayarlar şu katmanlardan oluşurlar:

Bu katmanlar bilgisayar sistemlerinin en temel iskeletidir. Sistem her ne kadar karmaşık olursa olsun, en yukarıdan bakıldığında bu katmanlardan ibarettir. Bu sistem bilgisayarın çalışmasını ve cihazın karşısında oturan insanın silikondan yapılma ilginç elektronik devreleri yola getirerek onlar sayesinde iş yapabilmesini sağlayan sistemdir. Bilgisayar kullanıcısı bir “uygulama”nın karşısında oturmaktadır. Söz konusu uygulama bir “işletim sistemi” üzerinde çalışır. İşletim sistemi de “donanım” üzerinde çalışmakta ve uygulamanın (ve dolaylı yoldan kullanıcının) isteklerini yerine getirmeye uğraşmaktadır.

Bahsettiğimiz sistem, kişisel bir bilgisayarın çalışmasını anlatır ve gerçekten rahat anlaşılabilecek bir yapıdadır. Gerçekten de bizler bu sistemin katmanlarını görebilmekte, onlara olabildiğince müdahale edebilmekteyiz. Tam olarak karşımızda bir uygulama var, işletim sistemi var ve o sistemin üzerinde çalıştığı bir donanım var.

İş “ağ” olayına gelince durum farklılaşmaktadır. Bu katmanlara sahip bilgisayarlar, birbirleri ile konuşabilmelidirler. Peki bu konuşma nasıl olacaktır?

Bu soruya cevap öncelikle farklı üreticiler tarafından farklı şekillerde verilmiştir. Daha önce de bahsettiğimiz gibi farklı üreticiler değişik biçimlerde iletişim kuralları (diller) yazarak kendi ürettikleri bilgisayarların birbirleri ile konuşmalarını sağlamışlardır.Fakat iş dünya çapında ortak mantıkla çalışan bilgisayarların ortak bir dille konuşmalarına gelince, tümüyle bütün üreticilerin uyması gereken bir kurallar zinciri ortaya çıkmıştır.

Bu kurallar bütünü bir “model”dir ve üreticiler bu modele uygun bilgisayar geliştirdikleri için standardizasyonu sağlamışlardır. Bu model OSI modelidir ve ISO (International Organization for Standardization) tarafından geliştirilmiştir. Bu modele göre bilgisayarlar 7 değişik katmana sahiptir ve bu katmanlar sayesinde bilgileri paketleyip iletmektedir. Bu katmanlar şu şekildedir.

7- Uygulama (Application)
6- Sunum (Presentation)
5- Oturum (Session)
4- İletim (Transport)
3- Network
2- Data-link

1- Fiziksel

Bu 7 katman sayesinde kullanıcıların verilerini uzaklara göndermekle yükümlü uygulama-işletim sistemi-donanım üçlüsü, yani bilgisayar belirli kurallara göre söz konusu gönderme işlemini yapmaktadır.

Peki OSI modeline göre ortaya çıkmış 7 katman nerededir?
Bu soru önemlidir. Gerçekten de biz, az önce bahsettiğimiz genel mimariyi gözlemleyebiliyoruz. Uygulamayı görüyor, işletim sistemini yüklüyor ve donanımı satın alıp kuruyoruz. Fakat network uygulamaları için gereken ve genel mimari diye adlandırdığımız uygulama-işletim sistemi-donanım üçlüsü ile bütünleşik çalışan 7 katmanlı mimariyi göremiyoruz. Bahsettiğimiz 7 katmanlı OSI modeli aşağıdaki şekilde gösterildiği üzere, genel mimari ile bütünleşik çalışmaktadır.

7 katmanlı OSI modelinin bilgisayar ağları dünyasında gerçekten uygulanışı TCP/IP protokol yığını (protocol stack) ile olmuştur. 7 katmanlı mimarinin katmanları aslında birer program parçacıklarıdır. Bu program parçacıkları birbirlerine data “paslarlar”. Yani en yukarıdan -uygulama katmanından- alından veri, her katmanda bazı ekler almak sureti ile aşağı doğru ilerler. Bütün katmanlar tarafından etiketlenen veri en sonunda fiziksel katman sayesinde kablo üzerine aktarılır ve gideceği yere ulaşmak üzere yola koyulur.

OSI Modeli Katmanları ve Görevleri

OSI modeli ile belirlenen katmanlar ortak bir dil ortaya koyar. Bu katmanlara uygun şekilde gerçekleşen veri akışı global bir standart oluşturmaktadır. Aslında OSI modeli, ISO tarafından ortaya konmuş bir modeldir ve hiç bir zaman ticari olarak gerçekleşmemiştir. Sadece model olarak kalan bu mimari, şu an kullandığımız teknolojiler için referans olmaktadır.

7. Katman, Uygulama (Application) Katmanı
OSI modelinin yedinci katmanı olan uygulama katmanı, öncelikle akla geldiği üzere bilgisayarlarımızda kullandığımız uygulamaların bulunduğu katman değildir.

Bu katman sayesinde kullandığımız uygulamalar, ağda yol almak üzere belirlenen veriyi, hedefine ulaşması amacı ile protokol yığınına teslim ederler. Uygulama katmanı, kullandığımız uygulamalar ile bütünleşik olabilir. Eğer biz ağ üzerine çalışmak üzere tasarlanmış, ağı kullanma kabiliyeti olan bir uygulama çalıştırıyorsak, bu program ürettiği verileri uygulama katmanına teslim eder ve hedefine doğru yol almasını sağlar. Eğer biz Internet Explorer programını çalıştırmış isek, bu program bizim ürettiğimiz verileri uygulama katmanında belirlenen protokoller dahilinde paketleyip hedefe gönderecektir. Bu katmanda, uygulamadan gelen veriye hangi protokolü kullanacak ise, o protokol ile ilgili bilgiler eklenir. Uygulama katmanı, uygulamaların network’e veri taşıması aşamasındaki ilk adımdır. Burada üretilen veri daha sonra bir sonraki katman olan sunum katmanına teslim edilir.

Aşağıdaki şekilde, kullanıcının ürettiği veri (örneğin uzaktaki bilgisayara iletilmek üzere yazdığı yazı) uygulama katmanı tarafından teslim alınmıştır. Bu veriye kullanılacak 7. seviye protokolün başlığı (header) eklenir

.

Yazımızın ilerleyen bölümlerinde, MSN Messenger programı ile bir sohbet gerçekleştiren kullanıcının yazdığı “Merhaba” yazısının nasıl hedef bilgisayara gittiğinden bahsedeceğiz.

6. Katman, Sunum (Presentation) Katmanı
Bu katmanda, uygulama katmanından gelen veriye, aynen diğer katmanlarda olduğu gibi bazı eklentiler yapılır. Bu katmanda, verinin tipi, üst katmandan gelen pakete eklenir. Sunum katmanına, yukarıdan gelen veri aslında uygulama katmanı eklentisi + veri şeklindedir. Yukarıdan gelen bu verinin tümüne, sunum katmanında veri tipi eklenir, ortaya çıkan pakey tümüyle bir alt katmana gönderilir.

Görüldüğü üzere, en üstte üretilen veri, her katmanda bir eklenti edinmek sureti alt katmanlara doğru yol almaktadır.

5. Katman, Oturum Katmanı
OSI modelinin bu katmanında aşağı doğru yol alan veriye oturum değişkenleri eklenir. Bu değişkenler bir çok uygulamada gerekli olan oturum değerlerini belirlerler. Bankacılık uygulamalarında kullandığımız SSL (Secure Socket Layer) teknolojisi, oturum katmanı bazında yapılan şifrelemeye dayanır. Bu teknoloji, oturum katmanının önemli bir temel teşkil ettiği teknoloji olarak oturum katmanına örnektir.

4. Katman, İletim Katmanı
Bu katman, işletim sisteminin yönetimi dahilinde olan bir katmandır. Bu seviyede, kaynak bilgisayar ve hedef bilgisayar arasındaki güvenli (reliable) iletişimin gerekleri yerine getirilir. Iletim katmanında çalışan en bilinen protokol TCP protokolüdür ve bu katmanda yukarından (oturum katmanından) gelen veriye eğer TCP protokolü kullanılıyor ise bu protokolün verileri eklenir. TCP protokolü, bu katmanda, veriye yerel işletim sisteminden çıkış ve hedef işletim sisteminin giriş sanal portlarını yazar.

3. Katman, Network Katmanı
Bu katman ise çoğunlukla IP protokolünün çalıştığı ve mantıksal adreslemenin gerçekleştiği katmandır. Bu katman dahilinde üretilen IP paketleri, üst katmandan gelen pakete IP verileri eklenmesi ile oluşur.Bu katmanda IP protokolünden başka IPX, Appletalk gibi diğer protokoller de kullanılabilir fakat bu katmanda çoğunlukla kullanılan protokol IP’dir.

2. Katman, Data-Link Katmanı
OSI modelinin 2. seviyesi olan Data-Link katmanında ortam taşıyıcısı belirlenir.
Bu katman karşımıza “taşıyıcı” kavramını çıkarır. 3. seviyede yani Network katmanında üretilen IP paketi, Data-Link katmanında kullanılan taşıyıcı ile “taşınır”. Buradaki taşıyıcı, 3. seviyede ürettiğimiz IP paketinin aldığı yol boyunca değişiklik gösterebilir. Lokal ortamlarda çoğunlukla kullandığımız Ethernet teknolojisi bir taşıyıcıdır. Uzak mesafe bağlantılarda ise kablo ve bağlantı tiplerine bağlı olmak üzere PPP, HDLC, ATM, X.25, Frame-Relay gibi protokoller de kullanılabilir. Bahsi geçen bu protokoller 2. seviye taşıyıcılardır ve adından da anlaşılacağı üzere 3. seviyedeki IP paketlerini taşımak amacıyla kullanılırlar.


1. Katman, Fiziksel Katman
OSI modelinin en alt katmanında fiziksel katman bulunur. Bu katmanda veri, elektrik sinyallerine çevrilmek sureti ile değişik kablo teknolojileri dahilinde iletilir. Ethernet gibi bazı 2. seviye protokoller çalışmak için kendilerine özel fiziksel iletim teknolojileri kullanırlar. Örneğin, Ethernet teknolojisi fiziksel seviyede UTP veya STP kablolar kullanır.

OSI Modeli ve TCP/IP Modeli
Dünya çapında bilgisayarların birbirleri ile ortak bir dil aracılığı ile konuşmasını amaçlayan katmanlama teknolojisi, OSI modeli ile ortaya atılmıştır. Ama işin pratiğe dökülmesi TCP/IP modeli ile gerçekleşmiştir.
Dünya çapındaki bilgisayarlar, OSI modeli ile standardizasyona zorlanmış olsa bile, şu an hiç bir bilgisayarın üzerinde OSI modeli yüklü değildir. Şu an çoğunlukla bilgisayarlar TCP/IP modelini kullanırlar. Peki TCP/IP modelinin katmanları nedir?

Aşağıdaki şekil TCP/IP modeli ile OSI modelinin karşılaştırılmasıdır.

Buraya kadar olan kısımda OSI modelini anlattık. Fakat OSI modelinin katmanları epeyce havada kalmış oldu. Çünkü bu katmanları anlatırken somut örnekler vermedik. Somut örnekler vermememizin sebebi, şu anda bu modelin kullanılmıyor oluşudur. Bu model hayali olarak anlaşılmalı ve birazdan anlatacağım gerçek çalışma sisteminin temelini teşkil etmelidir. Gerçek çalışma sisteminin anlaşılması, OSI modelinin anlaşılması ile mümkündür.

Şu andan itibaren somut örnekler başlayacaktır. Biz şu anda bilgisayarlarımız üzerinde TCP/IP ve OSI modelinin birleşiminden oluşan hibrid modeli kullanıyoruz. Hibrid modelde belirlenen katmanlar uyarınca veri iletimimizi gerçekleştiriyoruz. Hibrid modelde belirlenen seviyelerde, belirli protokoller kullanıyoruz.
Şu anda kullandığımız hibrid model, bilgisayarlarımız üzerinde çalışmakta ve biz bu modele uygun üretilmiş ünlü uygulama-işletim sistemi-donanım üçlümüz ile iletişimi gerçekleştiriyoruz.
Şimdi bir bilgisayardaki sohbet programının, örneğin MSN Messenger’in, girdiğimiz bir yazıyı karşı tarafa nasıl gönderdiğini, girdiğimiz yazının katmanlar arasından akarken, kabloya aktarılana kadar hangi eklentilere maruz kaldığını inceleyelim.

Bir örnek; MSN Messenger’da sohbet eden kullanıcı

MSN Messenger ile sohbet eden bir kullanıcının yazdığı yazıların nasıl karşı bilgisayara ulaştığını inceleyelim.

Örnek network diagramı:

Senaryomuza göre, şekildeki iki bilgisayar birbiriyle MSN Mesajlaşması gerçekleştirsin. Gerçekte MSN programındaki metin tabanlı mesajlar, merkezi bir server üzerinden diğer kullanıcılara iletilir. Ama bizim örneğimizde birbirine bağlı iki bilgisayar, direkt olarak birbirlerine mesaj gönderecekler. Bu şekildeki sadeleştirme, işlemin anlaşılmasını kolaylaştıracak.

A bilgisayarında oturan kullanıcı, B bilgisayarındaki kullanıcı ile haberleşecek. Bu yapıda, ortam değişkenlerimiz şu şekilde:

A Bilgisayarı:
MSN Kullanıcısı ismi: Ali
Ethernet Adresi: abc
IP Adresi: 10.1.1.1

B Bilgisayarı:
MSN Kullanıcısı ismi: Ahmet
Ethernet Adresi: xyz
IP Adresi: 10.1.1.2

Bu iki bilgisayar birbirine cross kablo tabir edilen kablo ile bağlı. Bu, yerel ethernet ağlarında çoğunlukla kullanılan UTP kabloların farklı dizilişli bağlanması ile elde edilen bir kablodur. Bu kablo ile iki ethernet kartı arada başka cihaz olmaksızın direkt birbirine bağlanabilir.

Bu iki bilgisayarda da MSN Messenger programı yüklü olsun. Bu durumda Ahmet’in bilgisayarındaki MSN Messenger programı, Ali’nin bilgisayarındaki MSN programından gelecek verileri kabul edebilecek durumda olacaktır.

Öncelikle Ali, Ahmet’e göndermek üzere ekranındaki MSN penceresine “Merhaba” yazar. Bu, Ali’nin karşı tarafa göndermek istediği “veri”dir. Bu veri değişik aşamalardan geçtikten sonra kablo üzerinden Ahmet’in bilgisayarına varacaktır. Hedefine varan veri, yine işlendikten sonra ekrana yansıtılacaktır.

Burada belirtilen “aşama”lar TSP/IP, OSI Hibrid modelimizde belirttiğimiz katmanlardır. Ali’nin yola çıkmak üzere yazdığı “merhaba”; bu katmanlar, diğer bir deyişle program parçacıkları arasında yol alarak ve her aşamada farklı farklı bilgiler edinerek hedefine doğru yola çıkacaktır.

Öncelikle; Ali’nin yazdığı “Merhaba” yazısı MSN Messenger programı aracılığı ile uygulama katmanına teslim edilir. Bu arada şunu da belirtmeliyiz ki, her katmanda olup biteni şekiller ile destekleyerek anlatımımıza ekleyeceğiz.
İlk olarak Ali’nin “Merhaba” yazısı uygulama katmanına (Katman 7) teslim edilir, burada kendisine gerekli eklentileri edindikten sonra, sıradaki katman olan 6. katmana yani sunum katmanına teslim edilir.

Uygulama katmanında, veriye, programa özel datalar yazılır. Burada veri’ye karşı bilgisayara gitmek üzere kullanacağı 7. seviye protokol bilgileri de –gerekiyorsa- eklenir. Örneğin biz MSN Messenger değil de ftp protokolünü kullanıyor olsaydık, 7. seviyede (Uygulama katmanı) veriye ftp header bilgisi yazılacaktı.

Uygulama katmanında oluşturulan paket, tümüyle bir alt katman olan 6. seviye sunum katmanına teslim edilir. Burada önemli olan nokta paketin tümünün bir alt katmana teslim edilmesidir. Sunum katmanında yukarıdan gelen pakete yine bazı bilgiler eklenecektir.
Sunum katmanında, üst katmandan gelen paket alınır ve bu pakete, içerisinde taşıdığı verinin tipi bilgisi eklenir. Biz örneğimizde veri tipi olarak, karşı bilgisayara “text” gönderdiğimiz için, sunum katmanında, üst katmandan alınan veriye text ibaresi eklenecek.


Sunum katmanında yukarıdan gelen paketin tümü alındı ve ona bir başlık (header) eklendi. Bu başlıkta, taşıdığımız verinin tipi yeralmakta. Sunum katmanında elde ettiğimiz tüm paket bir alt katmana (katman 5, oturum katmanı) gönderilecek.

5. Katman olan oturum katmanında, üst katmandan gelen paket tümüyle alınacak ve ona yine bir başlık bilgisi eklenecek. Bu sefer, eklenen bilgi “oturum değişkenleri”ni içerecek. Burada “oturum” derken MSN Messenger oturumundan bahsediyoruz. Bu katmanda eklenecek oturum değişkenleri MSN Messenger’in oturum değişkenleri olacak ve bu değişkenler, MSN Takma isimleri.

Bu katmanda eklenen oturum değişkenlerinin yani MSN takma isimlerinin amacı, karşılıklı programlar arasında akan verinin uygulama bazında farklılaştırılmasını sağlamak. Bu seviyede, üst katmandan gelen veriye, Ali ve Ahmet takma isimleri yazılacak. Bu sayede karşılıklı çalışan MSN Messenger programları, kendilerine gelen verinin hangi kullanıcıdan geldiğini anlayabilecekler.

Oturum katmanında, bir üst katman olan sunum katmanından gelen paketin tümüne oturum değişkenleri eklendi ve oluşan yeni paket bir alt katman olan iletim katmanına iletildi.
4. Katman olan İletim seviyesinde, işlemler biraz daha farklılaşmaktadır. İşlemlerin farklılaşmasından kasıt zorlaşması veya anlamının değişmesi değildir. Farklılaşmadan kasıt, katmanların hizmet ettiği kesimin değişmesidir. Önceki anlattıklarımızdan hatırlayacak olursak, genel bilgisayar mimarisi 3 temel kademeden oluşmakta idi. Bunlar donanım-işletim sistemi-uygulama üçlüsüdür. Buraya kadar anlattığımız olaylar “uygulama”nın yaptığı işlemlerdir. Buraya kadar bahsedilen uygulama katmanı, sunum katmanı ve oturum katmanı, MSN Messenger uygulaması dahilinde yapılan işlemlerdir. Şimdiden itibaren yapılacaklar ise işletim sisteminin denetiminde gerçekleşecektir.

Üstteki şekilde de görüldüğü üzere; uygulama, sunum ve oturum katmanları, genel olarak “uygulama” çatısı altında toplanan (implement edilen) katmanlardır. Şimdi sıradaki katman ise “iletim katmanı”. Bu katman işletim sisteminin hakimiyetinde çalışmaktadır. MSN Messenger kendi içindeki uygulama sunum ve oturum katmanlarında oluşturduğu verileri şimdi işletim sisteminin iletim katmanına teslim edecek ve gitgide yeni eklentilerle büyüyen paketimiz, yolculuğuna devam edecek.

4. Seviye İletim katmanında, bir üst katmandan gelen paket alınarak, bu pakete bilgisayar üzerinde çalışan 4. seviye protokol uyarında gerekli bilgiler eklenir. Yerel veya uzak mesafe bağlantılarımızda, internet bağlantılarımızda çoğunlukla TCP protokolünü kullanırız. TCP (Transmission Control Protocol) 4. seviye bir protokoldür ve bilgisayarlar arası güvenilir (reliable) haberleşmeyi sağlar. TCP protokolü ile iletilen paketler, hedef noktaya vardıklarında, veriyi alan bilgisayar veriyi aldığına dair geri bildirimde bulunur. Bu geri bildirim (acknowledgement) mekanizması sayesinde kaynak bilgisayar, hedefe gönderdiği bilginin gerçekten yerine ulaştığından emin olur.

Bu katmanda TCP protokolünden başka protokoller de kullanılabilir. Geri bildirimin gerekmediği ortamlar için UDP (User Datagram Protokol) kullanılır. Bu protokol, geri bildirimin gerekmediği Video ve Ses yayını, IP protokolü ile ses taşınması uygulamaları için uygundur.

Bizim örneğimizdeki iki bilgisayar birbirleri arasında MSN Mesajlaşması yapıyorlar iken, 4. seviyede TCP protokolünü kullanmaktadırlar. Bu katmanda TCP protokolü bilgileri, üst katmandan gelen pakete eklenecektir. TCP protokolü bilgileri kaynak ve hedef port numaralarıdır.

Network ortamında TCP/IP OSI Hibrid yapısına göre haberleşen ve TCP protokolünü kullanan bilgisayar sistemleri, birbirlerinin uygulamalarına erişmek için sanal portları kullanırlar. Örneğin bir Web Sunucu, bulunduğu bilgisayarın 80. portunu “dinler”. Yani bir Web Sunucu yazılımının bulunduğu bilgisayarın 80. portu hedeflenerek yapılan istekler, 80. portu Web Sunucu dinlediği için ona iletilir. Burada, port numaralarının önemi ortaya çıkmaktadır. Sanal port numaraları sayesinde bir işletim sistemi üzerindeki birden çok program ağı kullanabilir ve bunlara gelen bilgiler port numaraları sayesinde birbirinden ayrılır.



Bizim örneğimizde, 4. seviye olan iletim seviyesinde, yukarıdan gelen veriye port numaraları eklenecek. Senaryomuza göre, B bilgisayarındaki MSN Messenger programı, 115. portu kullanıyor olsun. Bu, hedef bilgisayardaki MSN Messenger uygulamasının 115. portu dinlediğini gösterir.

İletim katmanında, hedef bilgisayarın hangi portuna gideceğimizi yazdık. 4. seviyede oluşturduğumuz veri, hedef bilgisayarın 115 numaralı portuna gidecek. Karşı bilgisayarın 115 numaralı portu, MSN Messenger tarafından dinlendiği için, gönderdiğimiz mesaj 4. katman’dan sonra MSN Messenger’a ait olan 5. katmana teslim edilecek. Daha önce de belirtildiği gibi, 4. seviyedeki sanal port numaraları sayesinde, bir bilgisayarın üzerinde, ağı kullanan birden çok program bulunabilir. Örneğimize geri dönersek, B bilgisayarı aynı anda MSN Messenger, Web Sunucu ve FTP Sunucu yazılımlarını çalıştırabilir. Aynı anda MSN Messenger’a, Web Sunucu’ya ve FTP Sunucuya veri kabul edebilir. Çünkü bir bilgisayara gelen verilerin, o bilgisayar üzerindeki hangi yazılıma gideceği, port numaraları ile belli olur.

FTP Sunucu yazılımları bulundukları bilgisayarların 20 ve 21. portlarını dinlemektedirler. Web Sunucular ise 80. portu dinlerler. Bir bilgisayarın üzerinde hem FTP Sunucu hem de Web Sunucu aynı anda bulunuyorsa, o bilgisayara gelen verilerin hangi uygulama için geldikleri port numaralarına bakılarak anlaşılır. Bir bilgisayara gelen TCP Paketindeki hedef port numarası 80 ise, o TCP Paketi bilgisayar üzerindeki Web Sunucu yazılımına teslim edilir. Eğer bir bilgisayar a gelen paket 21. porta gelmiş ise, bu, o bilgisayar üzerinde bir FTP Sunucu yazılımı çalıştığı ve o yazılıma teslim edilmek üzere bir paket alındığı anlamına gelir.

Bizim örneğimizde ise, biz B bilgisayarının 115 numaralı portunu hedef alarak TCP paketimizi göndermekteyiz. Bu, bizim karşı bilgisayardaki 115 numaralı portu dinleyen MSN yazılımını hedef aldığımızı gösterir.

TCP paketinin üzerine, hedef port bilgisinin yanısıra kaynak port numarası da yazılır fakat o şu an için yazımız dahilinde değil. İleriki yazılarda değinebileceğimiz Network Address Translation konusu dahilinde, kaynak port numaralarından da bahsederiz.

TCP paketi üzerine hedef port numarası yazıldıktan sonra elde edilen paket, bir alt katman olan network katmanına iletilir.


Network katmanında, mantıksal adresleme söz konusudur. Dünya çapındaki bilgisayarların haberleşmesinde, en genel 3. seviye standart olarak IP (Internet Protocol) kullanılır. Bu protokolü kullanan bütün bilgisayarların birbirlerinden farklı olacak şekilde birer IP adresleri bulunmaktadır. Bir bilgisayar eğer 3. katmanında IP çalıştırıyor ise, diğer IP protokolünü kullanan bilgisayarlar ile haberleşebilir.

Örneğimizde, 3. seviyede IP protokolü kullanılmaktadır. A bilgisayarının IP Adresi 10.1.1.1’dir. B bilgisayarının IP Adresi ise 10.1.1.2’dir. Bu durumda Network katmanına, üst katmandan gelen pakete, kaynak ve hedef IP Adresleri yazılarak IP Paketi elde edilmiş olur. Network katmanının ürettiği IP paketi bir alt katman olan Data-Link katmanına gönderilir.

Data-Link katmanında, 3. seviyeden teslim alınan IP Paketi, ortamda hangi taşıyıcı protokol kullanılıyor ise o protokol tarafından yüklenilir. Yerel ortamlarda çoğunlukla kullanılan taşıyıcı protokol “Ethernet”tir. Yerel ortamlarda taşıyıcı (2. seviye) olarak ethernet kullanılmak zorunda değildir. Ethernet protokolü en çok kullanılan yerel 2. seviye protokol olsa da; FDDI, Token Ring gibi nispeten daha eski ve daha az kullanılan 2. seviye protokoller de kullanılabilir.

Verilen MSN Mesajlaşması örneğinde, 2. seviye protokol olarak Ethernet kullanılmaktadır. Bu, 3. seviyede üretilen IP paketlerinin “yerel ortam sınırları içerisinde” Ethernet ile “taşınacağı” anlamına gelir.

Uzak mesafelerde ise ortam tipine uygun farklı taşıyıcı teknolojiler kullanılır. PPP, HDLC, Frame-Relay, ATM, X.25 gibi teknolojiler, 2. seviye taşıyıcı teknolojilerdir. Ağ teknoojilerini destekleyen, yani Internet ortamında haberleşebilen bilgisayarlar uzak mesafelere veri gönderirlerken, gönderdikleri uzak bilgisayar ile kendi aralarında kurdukları TCP oturumu ve uçtan uca iletilen IP paketleri sabittir. Değişen ise taşıyıcılardır. Bir IP paketi internet ortamında yol alırken sürekli aynı taşıyıcı ile taşınmak zorunda değildir. Bir IP paketi, yol boyunca kimi zaman ethernet, kimi zaman ATM, kimi zaman Frame-Relay teknolojisi ile taşınabilir.

Bizim örneğimizde, A bilgisayarının 3. seviyede (Network Seviyesinde) ürettiği IP paketi, 2. seviyede “Ethernet” protokolü ile taşınmaktadır.

Şekilde de görüldüğü üzere, 3 seviyedeki IP paketi, Ethernet Frame’inin içine konulmuş ve üzerine hangi fiziksel adresten gelip hangi fiziksel adrese gittiği yazılmıştır. Ethernet protokolünde fiziksel adresleme olarak MAC (Media Access Control) Adreslemesi kullanılır. Bir bilgisayarda, network haberleşmesi için Ethernet kartı takılı ise, o bilgisayar ürettiği IP paketlerini taşımak için Ethernet protokolünü kullanıyor demektir. Aynı zamanda, ethernet kartı takılı bilgisayarın bir MAC Adresi bulunur. Bu MAC Adresi dünyada sadece o bilgisayar üzerinde bulunan bir adrestir. MAC Adresleri 2. seviye adreslerdir ve Ethernet Frame’lerinin üzerine kaynak ve hedef adresler olarak yazılır.

Bizim örneğimizde, A bilgisayarının oluşturduğu Ethernet Frame’inin üzerine B’nin (hedef) MAC adresi ve A’nın (kaynak) MAC adresi yazılmıştır.

Bu Ethernet Frame’i, artık yolculuğa hazırdır. Frame, artık 1. seviyeye (Fiziksel Katman) teslim edilebilir.



Fiziksel katmana teslim edilen Ethernet Frame’i elektrik sinyallerine çevrilerek kablo üzerinden aktarılır.

Peki B bilgisayarına kablo üzerinden gelecek olan veri, B bilgisayarında nasıl işlenecektir?

B bilgisayarının ethernet kartı, ona takılı olan kablodan gelen elektrik sinyallerini algılayacak ve bu sinyallerin temsil ettiği 2. seviye Ethernet Frame’ini anlamlandırabilecektir.

Hatırlayacağımız üzere, A bilgisayarı kullanıcıdan aldığı “Merhaba” yazısını, her katmanında ayrı ayrı paketleyerek kablo üzerinden iletmişti. Bu esnada A bilgisayarı, her katmanda ürettiği paketi bir alt katmana yollamış, ve paketleri alt katmandaki paketler içerisine koymak suretiyle içi içe paketler üretmişti.
B bilgisayarı da içiçe paketler halinde gelen verileri, aça aça üst katmanlara iletecektir.


Yukarıdaki şekilde de görüldüğü üzere, B bilgisayarı kendisine elektriksel sinyaller olarak gelen veriyi ethernet kartı sayesinde alarak öncelikle 2. seviyeye kadar açacaktır. B bilgisayarı da 2. seviyede Ethernet teknolojisini kullandığı için bu noktada bir uyum söz konusudur. Buradaki iki bilgisayar da aynı standardı kullandıkları için birbirlerinin dilinden anlayabilmektedirler. B bilgisayarı 2. seviye Ethernet frame’indeki kaynak&hedef MAC Adresleri kısmını kontrol eder ve Frame’in üzerinde bulunan diğer eklentiler sayesinde hata kontrolü gerçekleştirir. Eğer B bilgisayarına gelen Frame hatalı değilse ve gerçekten de B bilgisayarına gelmiş ise, B bilgisayarı bu Frame’in içindeki IP paketini çıkartır ve IP paketini bir üst katman olan Network katmanına iletir.

B bilgisayarının 3. katmanı olan Network katmanında, A bilgisayarı gibi IP protokolü çalışmaktadır. Bu durumda B üzerindeki 3. seviye protokol, kendisine alt katmandan teslim edilen IP Paketini inceyelecektir. IP paketini inceleyen IP protokolü, kaynak ve hedef IP adresleri kısmını kontrol eder. Eğer veri kendi IP adresi hedeflenerek gönderilmiş ise, bu IP paketinin içinde bulunan TCP paketini çıkartarek üst katmana (4. Katman, İletim Katmanı) teslim eder.

B bilgisayarının 4. Katmanı olan iletim katmanı, kendisine alt katmandan gelen TCP paketini teslim alır ve üzerindeki TCP Başlık bilgilerini okur. Bu nokta önemlidir. TCP Başlık bilgileri kılavuzunda B bilgisayarı, kendisine uzak makinadan gelen verilerin, kendi üzerindeki hangi uygulamaya hitaben geldiğini anlar. TCP Protokolü, kendisine varmış olan TCP paketinin üzerindeki port numaralarına bakmak sureti ile paketi iletilmesi gereken programa iletir. Bizim örneğimizde, B bilgisayarının üzerindeki MSN Yazılımı, B bilgisayarının 115 numaralı portunu dinlemekteydi. Bu durumda, A bilgisayarı, B’nin üzerindeki MSN yazılımına ulaşmak için TCP seviyesinde ürettiği paketleri B’nin 115 numaralı portuna gönderdi. Hal böyleyken, B bilgisayarının TCP protokolü, gelen TCP paketinin 115 numaralı porta geldiğini görecek ve bu paketin içindeki 5. seviye paketi (Oturum Katmanı paketi) MSN yazılımına teslim edecektir. Görüldüğü üzere, B bilgisayarının üzerinde birden çok yazılım çalışıp, hepsi aynı anda ağı kullanabilirler. Bu yazılımlara ağ aracılığı ile gelen verilen 4. seviye İletim Katmanının kullandığı sanal port numaraları sayesinde ayrıştırılıp doğru yazılımlara iletilmektedir.

4. seviyedeki iletim katmanında port numarasına bakılıp MSN Yazılımına teslim edilmesine karar verilen TCP Paketinin içeriği, MSN Yazılımının kontrolünde olan oturum katmanına (5. Katman) teslim edilir.

5. Katmanda, alt katmandan gelen veri alınarak, üzerindeki 5. katman başlık bilgileri okunur. Bizim örneğimizde, oturum değişkenleri olarak kullanıcı takma isimleri kullanılmış idi. Başka uygulamalar başka oturum değişkenleri kullanabilirler. Hatta hiç oturum seviyesi işlemi yapmayabilirler. “Hibrid TCP/IP, OSI Modeli” şekli incelenecek olursa, görülecektir ki 5. 6. ve 7. seviyeler ağ üzerinde çalışacak uygulamanın kontrolündedir. Bizim örneğimizdeki MSN yazılımı 5. 6. ve 7. seviyelerin tümünü içsel mekanizmaları dahilinde kullanmakta olup paketlere her katmanda gerekli eklentileri yapmaktadır. MSN yazılımı, şu an bahsetmekte olduğumuz 5. katmanda oturum değişkenleri olarak kullanıcı rumuzlarını yazmıştır ve bu sayede kendisine iletim katmanından teslim edilen verilerin hangi kullanıcıdan hangi kullanıcıya geldiğini anlayabilir. Örneğimizdeki MSN yazılımı bu katmanda, kendisine gelen paketin başlık bilgilerini okuyacak ve paketin Ali’den Ahmet’e geldiğini anlayacaktır. 5. seviye katman olan oturum katmanı, paketi değerlendirdikten sonra diğer katmanların da yaptığı gibi paketin içindeki bir üst katman paketini (6. seviye sunum katmanı paketi) bir üst katman olan sunum katmanına iletir.

6. Seviye sunum katmanında, teslim alınan veri, yine başlık bilgileri okunmak sureti ile değerlendirilir. Hatırlanacağı üzere, sunum katmanında paketin içerisindeki verinin tipi belirtilmektedir. Örneğimizde veri tipimiz text olduğu için, sunum katmanı başlık bilgisinde text yazmaktadır. MSN Yazılımı; 6. seviye sunum katmanı sayesinde, Ali isimli kullanıcıdan Ahmet isimli kullanıcıya bir “text” mesajı geldiğini anlar. Sunum katmanının görevi tamamlanmıştır ve sunum katmanı içerisindeki bir üst katmana ait paket, bir üst katmana iletilir.

7. seviye uygulama katmanında ise verinin kodlanmasını ve gösterim metodlarını belirleyen, HTTP gibi başka 7. seviye protokoller kullanılıyor ise o protokollerin gereği olan veriler paket başlık bilgisinden okunur. Bizim örneğimizde, MSN yazılımı, veri kodlama metodlarını da 7. seviye başlık bilgisinde öğrendikten sonra bu paketin içindeki veri’yi ekrana yazar. Dikkat edilirse, diğer bütün katmanlarda, ele alınan paketin “veri” kısmı, bir üst katmanın muhatap olacağı paketin tümünü ifade etmektedir. Şekillerden de anlaşılacağı gibi en alt katmandan en üst katmana kadar paket içinde paket mevcuttur. Fakat 7. seviye paketin içinde artık başka bir paket değil, karşı bilgisayara iletmek istediğimiz veri mevcuttur.

7. Seviye paketin içindeki “text” tipindeki veriyi okuyan MSN Yazılımı, bu veriyi ekranına yansıtır. Bu sayede, A bilgisayarındaki Ali kullanıcısı, B bilgisayarındaki Ahmet kullanıcısına veri göndermiş olur. Bu sistem gerçekten de olağanüstü esnek bir şekilde internet dünyasında müthiş hızlarla çalışmaktadır. Saniyede milyarlarca paket bilgisayarlar arasında akmaktadır ve bu bilgisayarların hepsi bahsettiğimiz katmanlı mimariye sahiptirler. Bizim örneğimizde 2. seviyede Ethernet protokolü, 3. seviyede IP, 4. seviyede ise TCP kullanılmıştır. Gerçek dünyada birbirleri ile iletişim halinde bulunan milyonlarca bilgisayar aynen bizim örneğimizdeki protokolleri kullanmak zorunda değillerdir. Her ne kadar IP protokolü neredeyse zorunlu olsa da, 2. seviye protokoller çok esnektir. 2. seviye taşıyıcı olarak lokal ortamlarda çoğunlukla ethernet kullanılmakta beraber uzun mesafe bağlantılarda çok sayıda 2. seviye taşıyıcıdan faydalanılır. Sonuçta internet dünyasındaki bilgisayarlar, Hibrid modele sadık kalmak koşulu ile bir çok protokolün birlikte çalışması ile iletişim kurarlar.


Baglanti Aygitlari

Bilgisayar agi erisiminde genel olarak dort tip baglanti aygiti kullanilir: tekrarlayici (repeater), kopru (bridge), yonlendirici (router) ve gecityolu (gateway). Tekrarlayicilar tamamen protokol bagimsiz olarak fiziksel katmanda calisir ve fiziksel genisleme amacli kullanilirlar. Geleneksel kopruler ayni protokolu kullanan Yerel Aglar arasinda temel veri duzeyinde baglanti saglar. Buna karsilik, geleneksel yonlendiriciler degisik tipteki ag protokollerini idare edebilecek sekilde programlanabilirler ve boylelikle ayni genis ag alani uzerinde farkli tipteki Yerel Aglari ve bilgisayar sistemlerini destekleyebilirler. Gecityollari daha karmasik olup, islem yogunluklu protokol cevrimi yaparak uygulamalar arasinda isletilebilirligi (interoperability) saglarlar.

Tekrarlayici (Repeater)

Tekrarlayicilar Cizim-3deki sekilden de gorulecegi gibi fiziksel katmanda calisan cihazlardir.


Cizim-3 Tekrarlayici ve OSI modeli

Tekrarlayicinin temel gorevi bir fiziksel ortamdaki (kablo, fiber-optik, radyo dalgasi vs.) sinyali alip kuvvetlendirip bir diger fiziksel ortama vermektir. Aglarin fiziksel buyukluk sinirlarini daha da genisletmek amaci ile kullanilan bu cihazlar ile kuramsal olarak bir bilgisayar agi sonsuza kadar genisletilebilir. Ancak cesitli bilgisayar aglarindaki tasarim sinirlamalari nedeni ile gercekte bu genisleme belli sinirlar icinde kalmaktadir. Cizim-4 tekrarlyicilarin bir ag uzerinde nasil kullanildiklarini gostermektedir.

Cizim-4 Bir tekrarlayici uygulamasi

Temelde bir agin genisletilmesi amaci ile kullanilan tekrarlayicilar cok kolay kurulmalari, cok az bakim gerektirmeleri ve fiyatlarinin ucuz olmasi sebepleri ile cok populer cihazlardir.

Kopru (Bridge )

Modern, protokol-seffaf kopruler asagidaki sekilde goruldugu gibi OSI referans modelinin veri iletim (data link) katmaninda calisirlar


Cizim-5 Kopru ve OSI modeli

Kopru cihazlari temelde bagimsiz iki agin (farkli ag teknolojilerini kullanabilirler- Ethernet ve Token-Ring gibi) birbirine baglantisi icin kullanilirlar. Asagidaki sekilde iki Ethernet ve bir Token-Ring aginin birbirlerine kopruler vasitasi ile yapilan baglantisi gosterilmektedir. Bir kopru bagladigi alt aglar ustundeki tum trafigi yurutur. Her paketi okur, paketin nereden geldigini ve nereye gittigini gormek icin MAC (Media Access Control)-katman kaynagini ve yerlesim (destination) adresini inceler. Bu suzme yetenegi mesajlari yayinlamak ya da yerel veri trafiginin diger ag uzerine gecmesini engellemek icin etkili bir yol saglar. Bazi kopruler adres suzmenin ve protokol tipine bagli suzgecin de otesine gider.

Cizim-6 Bir Kopru uygulamasi

Bir kopru, DECnet, TCP/IP, XNS gibi farkli iletisim protokollerini kullanarak, protokol uyumlulugunu gozonune almadan aglar arasinda fiziksel baglanti saglayabilse de, bu uygulamalar arasinda isletilebilirligini garanti etmemektedir. Bu, OSI referans modelinin yuksek katmanlarinda isleyen ve farkli islem ortamlari arasinda cevrim yapabilen standalone protokol ceviricilerini gerektirmektedir. Koprulu aglar, protokol cevrimlerinin olmadigi, guvenlik gereksinimlerinin en az oldugu ve gereken tek seyin basit yonlendirme oldugu durumlarda basarilidir.

Yonlendirici (Router)

Yonlendiriciler asagidaki sekilde goruldugu gibi OSI referans modelinin ag (network) katmaninda calisirlar

Cizim-7 Yonlendirici ve OSI modeli

Bir kopru sadece paketlerin kaynagini ve gittigi yerin adresini kontrol ederken bir yonlendirici cok daha fazlasini yapar. Bir yonlendirici agin tum haritasini tutar ve paketin gittigi yere en iyi yolu belirleyebilmek icin tum yollarin durumunu inceler.

Yonlendirici farkli fiziksel yapida olan ve farkli protokolleri calistiran yerel ya da genis alan aglarinin birbirleri ile olan baglantisinda basari ile kullanilabilir.

Bir yonlendirici, OSI referans modelinin ag katmaninda genel olarak tanimlanan protokollerle, yerel bolge aglarini genis bolge aglarina baglar. Bu ozellikleri sayesinde ornegin yonlendirici TCP/IP kullanarak bir Ethernet aginin X.25 paket agina baglamasini saglar. Eski yonlendiriciler protokol bagimli olduklarindan, kuruluslarin ag isletim ihtiyaclarini karsilamak icin birden fazla yonlendirici gerekebilir. Yeni yonlendiriciler ise, birden fazla ve degisik protokolu ayni anda idare edebilmektedirler.

Cizim-8 Bir yonlendirici uygulamasi

Yonlendiriciler paketleri iki istasyon arasindaki en iyi yolu gosteren yonlendirme tablosuna gore ilerleterek ag uzerindeki yollari en iyi sekilde kullanirlar. Yonlendiriciler kendi yonlendirme tablolarini olusturduklarindan, ag trafigindeki degisikliklere hemen ayak uydururlar ve boylelikle veri yukunu dengelerler. Ayni zamanda, yonlendiriciler agdaki degisiklikleri tespit ederler ve asiri yuklu ve islemeyen baglantilari onlerler.

Gecityollari (Gateway)

Gecityollari kopru ve yonlendiricilerin yeteneklerinin de otesine gecerler. Asagidaki sekilden de gorulebilecegi gibi OSI referans modelinin ust katmanlarinda islerler.

Cizim-9 Gecityolu ve OSI modeli

Gecityollari sadece farkli noktalardaki aglari baglamakla kalmaz ayni zamanda bir agdan tasinan verinin diger aglarla uyumlu olmasini da garanti ederler. Bu bir server'da, minibilgisayarda ya da ana bilgisayarda bulunan protokol cevirim yazilimiyla yapilir. Internet protokolleri farkli aglar arasindaki veri iletimini, gecityollariyla bagli altaglardan olusmus otonom sistem (Autonomous System, AS) gruplarini birbirine baglayarak yapar. Yani Internet, her biri merkezi olarak yonetilen ag ya da altaglar serisi olan AS serisinden olusmaktadir. Her AS diger AS'lere baglanti saglayan gecityolu sunar. Gecityollari tum farkli aglari birlikte tutan bir yapistiricidir. Internet protokolleri altaglarin nasil birbirine bagli oldugunu ve baglanti araclarinin nasil calistigini tanimlar.

Hiç yorum yok:

Yorum Gönder