OSI Katmanları
Değerli arkadaşlar, merhaba! Bu yazımızda sizlere, OSI Katmanları'nın ne olduğundan, nasıl çalıştıklarından ve 'encpsulation' kavramından söz edeceğiz. OSI Katmanları hakkındaki bu blog yazısının, Türkiye'deki en detaylı blog yazısı olduğunu iddia ediyoruz. Eğer daha detaylı anlatan bir blog sitesi biliyorsanız bize de söyleyin; takip edelim. Neyse, başlayalım.
Bir bilgisayar kasası topladığınızı düşünün. Her parça donanımı hep aynı firmadan temin etmeyebilirsiniz yani karma olarak gidebilirsiniz, öyle değil mi? Bu durumda farklı firmalardan elde ettiğiniz donanımların aynı kasada olmalarına rağmen birbirlerini tanımadıklarını düşünün; rezalet...
İşte bu durum, yıllar öncesinde gerçekten de vardı. Her şirket, kendi ürettiği teknolojilere yine kendi ürettikleri standartları yüklüyordu. Yani her şirketin kendi ürünleri ve kendi standartları vardı. Bu yüzden iki farklı şirketten iki farklı teknoloji, bir arada kullanılamaz hâle geliyordu. Örneğin Intel'den aldığınız bir işlemci ile Kingston'dan aldığınız bir RAM'i aynı kasa içerisinde kullanamıyordunuz; birbirlerini tanımıyorlardı çünkü farklı standartlara sahiplerdi.
İşte, tam bu noktada ISO denen uluslararası bir teşkilat, OSI adında bir standart geliştirdi. Bu standart, kapak fotoğrafında da gördüğünüz gibi 7 katmandan oluşuyor ve her katmanda farklı protokoller çalışıyor. Bu standardı zamanla her firma kullanmaya başlamış. Bu sayede de kullanıcılar büyük bir rahata ermiş ve şirketler de çeşitli kolaylıklar elde etmiştir. Bununla birlikte, tamamen farklı işletim sistemlerine sahip bilgisayarların bile iletişim kurmasına da OSI yardımcı olmuştur.
ISO: International Organization for Standardization (Uluslararası Standardizasyon Teşkilatı)
OSI: Open System Interconnection (Açık Sistem Arabağlantısı)
Şimdi, dilerseniz bu katmanların ne olduğuna bir bakalım; Yedinci katmandan başlayacağız. Lütfen İngilizce karşılıklarına dikkat edin; faydanıza olacaktır.
7. Application Layer (Uygulama Katmanı)
- Kullanıcı tarafından çalıştırılan tüm uygulamalar bu katmanda yer alır. Yani ekranda gördüğünüz her şey buna örnek olarak verilebilir. Dolayısıyla kullanıcıya en yakın olan katmandır.
- Sadece bu katman diğer katmanlara servis sağlamaz.
- DNS, FTP, TFTP, HTTP, SNMP, SMTP, WWW protokolleri bu katmanda yer alır.
6. Presentation Layer (Sunum Katmanı)
- Bu katmanda, verileri uygulama katmanına sunarken veri üzerinde kodlama ve dönüştürme işlemi yapılır. Bir bilgisayardan gönderilen veriyi karşı taraftaki bilgisayarın da anlaması için ortak bir format belirlenir. Örneğin, size gönderilen bir Office Word dosyasını (.docx), bilgisayarınızda Office Programı kurulu değilse açamıyorsunuz. Bu mantıkla gidersek, sunum katmanı başarısız oluyor. Ayrıca bu katmanda; veriyi sıkıştırma ve açma, şifreleme ve şifre çözme işlemleri de gerçekleştiriliyor.
- PICT, TIFF, JPEG, MIDI, MPEG, HTML gibi bazı standartlar, bu katmanda yer alır.
5. Session Layer (Oturum Katmanı)
- Bu katmanda; bilgisayarlar arası haberleşme organize ve senkronize edilir; oturumun kurulması, yönetilmesi ve sonlandırılması gibi işlemler gerçekleştirilir.
- İstemcinin yani kullanıcının kullandığı her ağ bağlantısı (tarayıcı, mail vb.) için ayrı ayrı oturumlar açarak verilerin birbirine karışmasını engeller.
- Eğer veri iletiminde bir sıkıntı varsa verinin tekrar gönderilmesi sağlanır. Bunun yanında hata kontrolü yapar. Bu sayede bilginin güvenliği de kontrol edilir.
- Bu katmanda, üç iletişim çeşidi vardır:
- Tek Yönlü (Simplex): Burada bir bilgisayar, tek seferde sadece veri gönderebilir veya alabilir. Buna, televizyonlar örnek olarak verilebilir. Akıllı olmayan televizyonlar sadece veri iletebilir.
- Yarı Çift Yönlü (Half Duplex): Burada iki bilgisayar da veri gönderip alabilir ama bunun olması, bir sıraya bağlıdır. Önce bir bilgisayar veriyi gönderir, daha sonra diğer bilgisayar veri gönderir. Telsiz teknolojisini bunun için örnek olarak verebiliriz. Bir düğmeye basarak önce siz konuşursunuz ve elinizi düğmeden çekip beklemeye başlarsınız. Sonra karşı tarafın cevap vermesini beklersiniz; karşı taraf da aynı şeyleri yapar ve bu, bu şekilde sürüp gider.
- Çift Yönlü (Full Duplex): Burada ise iki bilgisayar aynı anda veri gönderip alabilir; herhangi bir bekleme veya ona benzer bir şey yoktur. Telefon teknolojisini buna örnek olarak verebiliriz ama aklınız karışmasın; konuşmanın bitmesini beklemek ile veri transferinin iletilmesini beklemek farklı şeyler. Yani siz konuştuğunuzda karşı taraf sizi eş zamanlı olarak duyar. Bu da, çift yönlü iletişimdir.
4. Transport Layer (Taşıma Katmanı)
- Bu katman, 5 - 7 ve 1 - 3 arasındaki katmanların bağlantısını sağlar ve 'ara katman' olarak bilinir.
- Üst katmandan aldığı verileri bölümlere ayırır ve bu bölümlere 'segment' adını veririz. Daha sonra bu 'segmentleri' bir alt katmana iletir. Son olarak bu segmentleri birleştirir ve tekrar üst katmana iletir.
- İsminden de anlaşılacağı üzere bu katman, iki nokta arasında mantıksal bir bağlantı kurulmasını sağlar. Böylece taşıma işlemi daha doğru bir şekilde çalışır.
- Bu katmanda paketlere, hedef ve kaynak portları eklenir. Port numaraları veri tipine göre değişir. Port kavramı sayesinde LAN, WAN içinde ve portlar üzerinde çeşitli değişiklikler yapılarak ağ üzerindeki kullanıcıların farklı tipteki isteklerini erişime açık hâle getirme veya engelleme özelliğine sahiptir.
- Bu katmanda 'Flow Control' yani 'Akış Kontrolü' özelliği vardır. Flow Control sayesinde verinin yerine ulaşıp ulaşmadığı kontrol edilir. Bu da veri bütünlüğünü sağlar.
- Bu katmanda TCP, UDP, SPX gibi protokoller bulunur.
- Connection Oriented Protocol - Bağlantı Temelli Protokol
- Taşıma katmanı içerisinde bu terimi görmeniz olasıdır. Taşıma katmanının, iletişim ortamını hazırlama işlemine 'connection oriented' denir. Genel olarak connection oriented yani bağlantı temelli protokol ise veri iletiminde akış kontrolünü ve hata kontrolünü yapan protokollere denir.
- Normal şartlarda verinin transferi üç aşamadan oluşur; 'bağlantı sağla', 'veryi transfer et', 'bağlantıyı sonlandır'. Ancak bu durum her ne kadar temiz ve güvenli olarak gözüküyor olsa da bağlantı temelli servislerde bir sıkıntı çıktığında ağ durur ve veri iletimi başarısız olur.
3. Network Layer (Ağ Katmanı)
- Bu katman, bütün veri iletişimi programının yarıdan fazlasını oluşturan katmandır.
- Bu katmanda iletilen veriler 'paket (pack, packet)' olarak adlandırılır. Dikkat edin; az önce verinin ismi 'segment' idi, şimdi ise 'paket'.
- Aslında verinin hedef ve kaynak IP adreslerinin eklenmesiyle paket dediğimiz kavram oluşur. Zaten bir paketin bir yerden diğer bir yere iletilebilmesi için ileten ve iletilen tarafların bir adresi olmalıdır.
- Bu katman, veri paketlerinin ağ adreslerini kullanarak veri paketlerini uygun ağlara yönlendirme işini üstlenir. Yani ana görevi 'routing - yönlendirme'dir. Dolayısıyla 'Yönlendirici (Router)' dediğimiz cihazlar bu katmanda çalışır. Söz konusu bir 'yönlendirici' olduğu için bu katman, veriyi en iyi, en rahat ve en kısa yoldan yollamaya çalışır. Bu sayede darboğazlar (veri trafiğinin sıkışması, boğulma, yavaşlama) engellenmiş olur.
- IP, IPX, ARP, RARP gibi protokoller bu katmanda yer alır.
- Bu katmanda iki çeşit paket bulunur. Bunlar; 'veri paketi' ve 'yönlendirme paketi' şeklindedir.
- Veri paketleri, kullanıcının bilgisini taşımak için kullanılır. Bu paketler IP ve IPX gibi yönlendirilebilir protokollerle taşınır.
- Yönlendirme paketleri ise ağdaki Router'ların tablolarını güncellemeye yarar.
2. Data-Link Layer (Veri İletim Katmanı)
- Bu katmanda, Fiziksel katmanda sağlanan elektronik medya üzerinde verilerin nasıl iletileceği ya da verilerin bu medyalara nasıl konulacağı belirlenir.
- Bu katman, Ağ Katmanı'ndan aldığı veri paketlerine 'hata kontrol bitleri' ekleyerek 'çerçeve' haline dönüştürür. Biz de bu çerçeveyi 'frame' olarak adlandırırız. Dikkatli olun; verinin ismi önce 'segment' sonra 'paket' daha sonra da 'frame' oldu.
- Hata kontrol bitleri eklendikten sonra bu frame'ler, Veri İletim Katmanı tarafından Fiziksel Katman'a iletilir. Bu katman, ilettiği frame'lerin doğruluğunu kontrol eder ve eğer frame hatalı iletilmişse onu tekrar gönderir.
- Karıştırmayın: Flow Control, verinin iletilip iletilmediğine bakar, gerisiyle ilgilenmez. Fakat bu katmanda, iletilen verinin 'doğru' iletilip iletilmediği kontrol edilir.
- Bunlarla beraber ağ üzerindeki diğer bilgisayarları tanımlayarak bir kablonun o anda kim tarafından kullanıldığını tespit eder. Örneğin; Ethernet, Frame Relay, ISDN, Switch ve Bridge.
- Temel olarak OSI'nin 7 katmanı olduğunu biliyoruz fakat bu katmanlar arasına ilişmiş ara katmanlar da vardır. İlişen bu katmanlar; Veri İletim Katmanı'nın bir üstünde ve bir altında yer alıyor. Hemen görelim:

- MAC (Media Access Control): Bildiğimiz MAC adresleridir. Eğer bilmiyorsanız hakkındaki blogumuzu okumak için tıklayın. MAC alt katmanı; veriyi, hata kontrol kodu (CRC), alıcı ve gönderenin MAC adresleri ile paketler ve Fiziksel Katman'a (1. Katman) aktarır. Alıcı taraf da bu işlemleri tersine yapar ve veriyi, veri bağlantısı içindeki ikinci katman olan LLC'ye aktarır. IP adresleri ile MAC adresleri arasındaki ilişkiden ve ikisinin de birer tanımlayıcı olduğundan söz etmiştik. Bir önceki katmanda IP adresleri birer tanımlayıcı iken bu katmanda tanımlayıcı olan MAC adresleridir.
- LLC (Logical Link Control): LLC alt katmanı ise bir üst katman olan Ağ Katmanı için bir geçiş (köprü) görevi görür. Protokole özel mantıksal portlar oluşturur. Bu sayede kaynak (source) makinede ve hedef (destination) makinede aynı protokollerin iletişime geçebilmesini sağlar. Alıcı, işleyebileceğinden fazla veri paketi alırsa 'darboğaz' dediğimiz olay gerçekleşir. İşte, bunu engellemek adına bu katman içerisinde de Flow Control mekanizması bulunur. LLC'nin görevi, buradaki darboğlazların engellenmesini sağlamaktır.
1. Physical Layer (Fiziksel Katman)
- Burada veriler, fiziksel olarak gönderilip alınır. Bu katman içerisindeki protokoller veya standartlar, verinin içeriği ile ilgilenmez. Daha ziyade; işaretin şekli, fiziksel katmanda kullanılacak konnektör ve kablo türü gibi elektriksel ve mekanik özelliklerle ilgilenir. Verinin ismi, bu katmanda 'bit'tir.
- Bu katmanda '1' ve '0'lar, bir iletim ortamının anlayacağı şekilde (örneğin; elektrik sinyali, ışık vb.) gönderilir. Konu hakkında detaylı bilgi için buyurun: Sayı Sistemleri Bölüm 1 ve Sayı Sistemleri Bölüm 2
- Hub'lar, bu katman içerisinde tanımlıdır ve 10BaseT, 100BaseT, UTP, RJ-45, IEEE 802.6 ve benzeri standartlar bu katman içerisinde yer alır.
[*] Direkt olarak katmanların ne olduğunu öğrenmeyi değil, bu katmanların birbirleriyle olan ilişkisini anlamaya çalışarak öğrenmeyi denerseniz daha başarılı olabilirsiniz. Öğrenirken böyle bir hata yapmıştım.
Dilerseniz katmanları, katmanların görevlerini ve katmanlarda bulunan protokolleri kısa bir şekilde, bir tablo halinde yazalım; daha akılda kalıcı olabilir.
|
Katman (Layer)
|
Görev ve Protokoller
|
|
7. Uygulama (Application)
|
Kullanıcı uygulamaları
HTTP, FTP, TFPT, SMTP, SNMP, DNS
|
|
6. Sunum (Presantation)
|
Aynı dilin konuşulması, veri formatlama, şifreleme
PICT, TIFF, JPEG, MIDI, MPEG HTML
|
|
5. Oturum (Session)
|
Bağlantının organizesi ve senkroniazsyonu; yönetilmesi, sonlandırılması
NFS, ASP, SQL
|
|
4. Taşıma (Transport)
|
Verilerin segmentlere ayrılarak karşı tarafa gitmesinin kontrol edilmesi
TCP, UDP, SPX,
|
|
3. Ağ (Network)
|
Veri segmentlerinin paketlere ayrılması, ağ adreslerinin tanımlanması, yönlendirilmesi
IP, IPX
|
|
2. Veri İletim (Data-Link)
|
Ağ paketlerinin frame’lere dönüştürülmesi
Ethernet, ISDN, Frame Relay, Switch, Bridge
|
|
1. Fiziksel (Physical)
|
Fiziksel veri aktarımı
Bit, kablo, konnektör kontrolü
|
Sürekli yedinci katmandan birinci katmana doğru gittik. Şimdi, tabloya bakarak birinci katmandan yedinci katmana doğru okuyun ve bu ikisini birleştirin. Her şeyin aslında nasıl gerçekleştiğini daha rahat anlayacaksınızdır.
Bu 7 katman, aralarında 3 gruba ayrılır. Hemen destekleyici bir görsel ekleyelim:

1, 2 ve 3. katmanlar, daha çok donanım ile ilgilidir ve 'Ağ Grubu' olarak nitelendirilir. Bu Ağ Grubu; bilgisayarlar arasında gerçekleşen iletişim sırasında donanımların ne tip özelliklere sahip olması gerektiğini tanımlar.
5, 6 ve 7. katmanlar, daha çok bir yazılımın kurallarının nasıl olması gerektiği ile ilgilenir ve 'Uygulama Grubu' olarak nitelendirilir.
Arada kalan 4. katman ise kendisini anlatırken de belirttiğimiz gibi 'Ara Katman' olarak isimlendirilir. Taşıma Katmanı daha çok veri taransferinin nasıl gerçekleşeceğini tanımlayan katman olarak geçer. Bu sayede yazılım ve donanım arasındaki köprü görevini üstlenir.
Son olarak bu düzeni bir şema ile görelim fakat ondan önce unutmamanızı istediğim bir şey var: Yedinci katmandan aşağı doğru inerken verinin tipi değişiyordu. Bu veri tipinin değişmesi olayına kısaca PDU (Protocol Data Unit - Protokol Veri Birimi) diyoruz; yani veri tipi değişirken önceki veriye bir başlık eklemiş oluyoruz.
Hatırlayın; yedinci katmandan beşinci katmana kadar olan kısımda veriye verdiğimiz isim 'veri' idi. Dördüncü katmanda veriye 'segment' ismini vermeye başladık. Üçüncü katmanda 'segment' olan veriyi, 'paket' olarak görmeye başladık. İkinci katmanda 'paket', 'frame' oldu ve son olarak birinci katmanda 'frame', 'bit'e dönüştü.
Yani yedinci katmandan inerken; veri > segment > paket > frame > bit
Birinci katmandan yukarı çıkarken; bit > frame > paket > segment > veri
Bu sıralamayı isminiz gibi bilin çünkü aşağıdaki görselde gördüğünüz 'encapsulation' konusunu anlamanız için buna ihtiyacımız var. Ayrıca lütfen tane tane ve anlayarak okuyun.

Şimdi; yeşil, açık ve koyu turuncu alanlara dikkatli bakın; en üstten başlıyoruz. Açık turuncu olan kısımlar verinin eski hâlidir. Mavi, küçük yazılar verinin dönüşmüş hâlidir yani yeni ismidir. Yeşil kısımlar, veri dönüşürken veriye eklenen yeni PDU'lardır. Koyu turuncu olan kısımlar ise veri dönüşürken veriye eklenen eski PDU'lardır; isim etiketi gibi düşünebilirsiniz ve bunlar birbirlerine eklenerek gitmektedirler. Aşağıdaki anlatımları madde madde, görsele bakarak okuyun.
- Dediğim gibi yedinci katmandan beşinci katmana kadar verinin ismi 'veri'dir.
- Dördüncü katman yani Taşıma Katmanı'nda 'segment' hâline geliyor ve 'segment başlığı' adı altında, veriye bir PDU etiketi ekliyoruz.
- Üçüncü katmana geldiğimizde 'segment' olan verimiz 'paket' oluyor ve 'paket başlığı' adı altında yeni bir PDU değeri daha ekliyoruz.
- İkinci katmanda 'paket'ler, 'frame' dediğimiz çerçevelere dönüşüyor ve bunun için 'frame başlığı' adı altında yeni bir PDU daha ekliyoruz.
- Son olarak 'frame' olan verimiz ve içerisindeki diğer veriler ile beraber, bilgisayarın anlayacağı dile yani 'bit' formatına dönüşüyor.
- Eklenen her PDU içerisinde bilgiler vardır. Bu bilgiler üst üste eklenerek bir sonraki hâlini almaktadır. Yani bit; 'Veri + Segment Başlığı + Paket Başlığı + Frame Başlığı' şeklindedir.
Bu anlatımı, yedinci katmandan birinci katmana doğru yaptık. Bunun ismi de 'Encapsulation - Kapsülleme'dir. Burada anlattığımız her şey, Uygulama Katmanı'ndan yani bizim görüp anlayabildiğimiz basit yapılardan bilgisayarın anlayabileceği zor ve karmaşık (bit) yapılara kadar olan süreçti.
Bu notkada iki bilgisayarın haberleşme şeklini görmüş oldunuz. İlk önce gönderici bilgisayar, veriyi kapsülleştirir. Daha sonra bu kapsülü diğer bilgisayara yollar ve diğer bilgisayar bu kapsülü çözer. Diğer bilgisayar, çözdüğü kapsülü de ekrana, kullanıcının anlayacağı şekilde gönderir.
Şimdi, 'De-encapsulation - Kapsül Çözme' işini size bırakıyorum. Lütfen sakince, tane tane ve anlayarak yorumlamaya çalışın; 'tek seferde olacak' diye bir şey söz konusu olmayabilir. Nasıl ki basit yapıdan zor yapıya süreci anladık; aynı şekilde bilgisayarın anladığı zor dilden bizim anladığımız kolay dile kadar olan süreci yorumlamaya çalışın. Bu pratik, konuya olan hakimiyetinizi artıracaktır.
Yayınlanma Tarihi: 2022-07-23 23:34:55
Son Düzenleme Tarihi: 2022-11-18 23:26:55