BAIBUSEC Header

Veri bir yolculuğa çıkıyor: OSI ve TCP/IP modellerini baştan sona anlamak

OSI ve TCP/IP modellerinin katmanlarının karşılaştırılması

AĞ TEMELLERİ

Üç kelimelik bir mesaj dünyanın öbür ucuna nasıl ulaşıyor? Cevap, tek bir dâhi programda değil; işi katmanlara bölen eski bir anlaşmada saklı. Bu anlaşmanın iki büyük temsilcisini, hiç ağ bilmeyen birinin de yıllardır bu işi yapanın da keyifle okuyabileceği şekilde adım adım açıyoruz.

Telefonunu açıp bir arkadaşına “buluşalım mı?” yazdın ve gönder’e bastın. O üç kelime karşı tarafın ekranında belirene kadar, tanımadığın onlarca cihazın içinden geçti; defalarca parçalandı ve paketlendi; elektriğe, ışığa ve radyo dalgasına çevrildi; belki okyanus altından geçen bir fiber kablodan geçip tekrar harflere döndü. Hepsi, sen gözünü kırpmadan.

Bu kadar karmaşık bir işin bu kadar düzenli yürümesi tesadüf değil. Arkasında, mühendislerin on yıllar önce üzerinde anlaştığı bir fikir var: büyük ve zor bir işi, her biri tek bir şeyden sorumlu küçük katmanlara böl. Her katman bir alttakinden hizmet alır, bir üsttekine hizmet verir ve komşusunun işine karışmaz. Bu fikrin iki ünlü somutlaşmış hâli OSI ve TCP/IP modelleridir.

İkisi de aynı soruyu cevaplar: “Bir makinedeki veri, başka bir makineye düzgünce nasıl ulaşır?” Farkları, bu cevabı kaç parçaya böldükleri ve ne kadar hayatın içinde olduklarıdır. Baştan söyleyeyim: OSI haritayı çizdi, TCP/IP ise yolu asfaltladı. İkisini bir arada öğrenmek, bu yüzden kafa karıştırmaz; tam tersine, birbirini tamamlar.

Neden ağları katmanlara böldük?

Katman fikrini bir mektupla düşün. Sen bir kâğıda yazarsın, zarfa koyarsın, üstüne adres yazıp postaya verirsin. O andan sonra mektubun hangi kamyona bindiğini, hangi uçağa yüklendiğini, hangi dağıtım merkezinden geçtiğini bilmezsin ve bilmen de gerekmez. Postacı da zarfın içinde ne yazdığını bilmez, bilmesi gerekmez. Herkes tek bir işi yapar ve bir alttakine güvenir.

Ağda da aynısı olur. Tarayıcın sayfayı ister; o isteğin fiziksel olarak bakır telde mi, camdan fiberde mi, yoksa havada radyo dalgası olarak mı gittiğiyle ilgilenmez. Bu ayrım, görünmez ama çok şey kazandırır:

Değiştirilebilirlik. Kablolu bağlantıdan Wi-Fi’a geçtiğinde tarayıcını yeniden yazmak gerekmez; yalnızca en alttaki katman değişir, üstü aynen çalışmaya devam eder. Birlikte çalışabilirlik. Farklı üreticilerin cihazları, aynı katman kurallarına uydukları sürece birbiriyle konuşabilir; telefonun marka demeden modeme bağlanır. Teşhis kolaylığı. Bir şey bozulduğunda “sorun hangi katmanda?” diye sorarsın; kablo mu takılı değil, IP mi yanlış, yoksa yine DNS mi? Ortak dil. Mühendisler “bu bir 3. katman sorunu” dediğinde, dünyanın öbür ucundaki biri de aynı şeyi anlar.

OSI modeli: yedi katmanın hikâyesi

OSI (Open Systems Interconnection), 1980’lerde ISO tarafından ortaya konan bir referans modelidir. Yani “ağlar şöyle çalışsın” demez; “ağların yaptığı işi şöyle yedi parçaya ayırıp düşünelim” der. Bu yüzden OSI’yi bir ürün gibi değil, herkesin üzerinde anlaştığı bir zihinsel harita gibi görmek gerekir.

Veri yukarıdan aşağıya doğru akar: senin uygulamandan (7. katman) başlar, en altta fiziksel sinyale (1. katman) dönüşür. Karşı tarafta ise ters yönde, aşağıdan yukarıya doğru tırmanır. Şemada yukarıdan aşağıya okuyalım.

OSI modelinin yedi katmanı, görevleri ve PDU adları
OSI’nin yedi katmanı. Gönderen tarafta veri yukarıdan aşağıya iner, alıcı tarafta aşağıdan yukarıya çıkar. Sağdaki PDU sütunu, verinin o katmandaki adıdır.

7 Uygulama (Application)

En tepede, senin ve uygulamanın bulunduğu katman. Buradaki yaygın yanılgı şudur: bu katman tarayıcının kendisi değildir; tarayıcının ağ servislerine eriştiği kapıdır. Bir web sayfası istediğinde HTTP, bir alan adını çözmek istediğinde DNS, e-posta gönderirken SMTP burada devreye girer.

6 Sunum (Presentation)

Verinin “herkesin anlayacağı” bir forma çevrildiği çevirmen katmanı. Metni hangi karakter kümesiyle kodlayacağın (UTF-8), görüntüyü nasıl sıkıştıracağın (JPEG) ve en kritiği, veriyi şifreleyip deşifre etme işi burayla ilişkilendirilir. TLS çoğu zaman bu katmanda anılır; yani tarayıcıdaki o kilit simgesinin köklerinden biri buradadır.

5 Oturum (Session)

İki taraf arasındaki konuşmayı başlatan, açık tutan ve düzgünce kapatan katman. Uzun bir aktarım yarıda kesilirse nereden devam edileceğini işaretleyen senkronizasyon noktaları da buranın işidir. Modern yığında bu katmanın görevleri çoğu zaman üstteki ve alttaki katmanların içine erir; o yüzden pratikte en az konuşulan katmandır.

4 Taşıma (Transport)

İşin gerçekten ciddileştiği yer. Taşıma katmanı iki şeyi halleder. Birincisi, büyük veriyi taşınabilir segmentlere böler ve karşıda doğru sırayla birleştirir. İkincisi, port numaralarıyla hangi verinin hangi uygulamaya ait olduğunu işaretler; aynı bilgisayarda tarayıcın da, e-posta istemcin de ağı kullanırken karışmaz.

Burada iki karakter yaşar. TCP titiz olandır: karşı tarafla üçlü el sıkışma yapar, her parçanın ulaştığını teyit ettirir, kaybolanı yeniden gönderir. Web, e-posta, dosya aktarımı onu sever. UDP ise hızı seçendir: teyit beklemez, kaybı dert etmez. Canlı video, oyun ve DNS gibi “geç gelen veriden hiç gelmemesi yeğdir” diyen işler onunla çalışır.

3 Ağ (Network)

Paketlerin farklı ağlar arasında yolunu bulduğu katman. Her cihaza mantıksal bir adres, yani IP adresi verilir ve yönlendiriciler (router) bu adreslere bakarak paketi bir ağdan diğerine, hedefe en uygun yoldan iletir. ping attığında konuşan protokol olan ICMP de buradadır. Bir paket şehir şehir atlarken bu katman devrededir.

2 Veri Bağı (Data Link)

Aynı yerel ağdaki komşuların birbiriyle konuştuğu katman. Burada adres IP değil, karta kazınmış fiziksel adres olan MAC’tir. Veri, başı ve sonu belli çerçevelere paketlenir; sona eklenen bir hata denetimi alanı (FCS), yolda bozulan çerçeveyi yakalar. Yerel ağdaki trafiği doğru porta yönlendiren switch bu katmanda çalışır. Ethernet ve Wi-Fi’ın (802.11) evi burasıdır.

1 Fiziksel (Physical)

En alttaki, en somut katman. Yukarıdaki her şey nihayetinde buraya iner ve bitlere, yani 0 ve 1’lere dönüşür. Bu bitler de fiziksel bir şeye çevrilir: bakır telde voltaj, fiberde ışık darbesi, havada radyo dalgası. Kabloların, konnektörlerin, frekansların dünyası. İmkânsız gibi görünen o uzak bağlantı, aslında burada başlar.

TCP/IP modeli: internetin gerçekte konuştuğu dil

OSI kâğıt üstünde kusursuz bir haritaydı, ama internetin üzerinde koştuğu şey o değil. İnternet, akademisyenlerin bir komitede çizdiği ideal modelle değil, çalışan kodla büyüdü. ARPANET’ten bugünkü internete uzanan o kod, TCP/IP modelini kullanır. OSI 1984’te resmîleştiğinde, TCP/IP çoktan sahadaydı, bedavaydı ve çalışıyordu. Yarışı bu yüzden o kazandı.

TCP/IP, OSI’nin yedi katmanını dört katmana toplar. Fikir aynıdır, sadece bazı katmanlar tek çatı altında birleştirilmiştir. OSI’nin uygulama, sunum ve oturum katmanları tek bir Uygulama katmanına; veri bağı ve fiziksel katmanları da tek bir Ağ Erişimi katmanına iner. Aşağıdaki eşleşme, iki modeli aynı anda kafanda tutmanın en kolay yoludur.

OSI ve TCP/IP modellerinin katmanlarının karşılaştırılması
İki model yan yana. TCP/IP, OSI’nin üç üst katmanını tek “Uygulama”, iki alt katmanını tek “Ağ Erişimi” katmanında toplar. Öğretimde sık kullanılan beş katmanlı melez modelde ise Ağ Erişimi tekrar Fiziksel ve Veri Bağı olarak ayrılır.

Peki hangisini öğrenmeli? İkisini birden. TCP/IP gerçekte olan biteni anlatır; bir paketi incelerken, bir güvenlik duvarı kuralı yazarken onunla çalışırsın. OSI ise ortak dildir; “bu bir 7. katman saldırısı” dediğinde herkes neyi kastettiğini bilir. Biri pratiğin, diğeri sözlüğün.

Veri katmanlar arasında nasıl akar?

Şimdi işin kalbine geliyoruz. Veri katmanlar arasında gezinirken sihirli bir şey olmaz; her katman, bir üstten aldığı veriye kendi küçük bilgi notunu ekler ve bir alta verir. Bu notun teknik adı başlık (header)’tır. En alttaki veri bağı katmanı ise başlığın yanında sona bir de kuyruk (trailer) ekler; içinde o hata denetim alanı vardır.

Buradaki en zarif fikir şu: her katman, yalnızca kendi başlığını okur. Taşıma katmanının eklediği başlığı, yoldaki yönlendiriciler değil, karşı makinenin taşıma katmanı okur. Yani her başlık, karşı taraftaki “eşine” yazılmış bir mektuptur. Bu yüzden bütün bu işleme, iç içe geçmiş zarflar anlamında kapsülleme (encapsulation) denir.

Encapsulation: her katman kendi zarfını ekler

Gönderen tarafta veri aşağı inerken her durakta bir zarfla daha sarılır ve her durakta adı değişir. Uygulamadan çıkan ham veri, taşımada segment, ağda paket, veri bağında çerçeve, fizikselde ise bir bit dizisi olur. Aşağıdaki şema bu büyümeyi gösteriyor.

Verinin katmanlar boyunca kapsüllenmesi ve başlıkların eklenmesi
Encapsulation. Turuncu blok hep aynı veri; değişen, etrafına eklenen başlıklar. Veri bağı katmanı ayrıca sona bir kuyruk (FCS) ekler. En altta her şey bit dizisine iner.

Bu başlıkların ne işe yaradığını şöyle düşün. Taşıma başlığı “bu veri 443 numaralı porta ait ve 5. sıradaki parça” der. Ağ başlığı “kaynak şu IP, hedef bu IP” der. Veri bağı başlığı ise “bir sonraki durağın MAC adresi şu” der. Her biri bir alt soruyu cevaplar: hangi uygulamaya, hangi makineye, hangi komşuya?

OSI KATMANIPDU (VERININ ADI)EKLENEN KONTROL BILGISI
Uygulama / Sunum / OturumVeri (Data)Uygulama verisi
TaşımaSegmentPort numaraları, sıra, onay
AğPaket (Packet)Kaynak ve hedef IP
Veri BağıÇerçeve (Frame)Kaynak/hedef MAC + FCS
FizikselBitSinyal (voltaj/ışık/dalga)

Decapsulation: zarfların tek tek açılması

Veri karşı makineye vardığında aynı film ters oynar. Bitler en altta sinyalden tekrar 0 ve 1’e döner; veri bağı katmanı çerçeveyi açar, MAC’in kendisine ait olduğunu doğrular ve FCS ile bütünlüğü kontrol eder. Ağ katmanı IP başlığını okuyup soyar, taşıma katmanı port ve sırayı okuyup segmentleri doğru sıraya dizer, en tepede uygulama katmanı artık arınmış veriyi karşı uygulamaya teslim eder.

Her katman yalnızca kendi zarfını açar ve içindekini bir üste, soru sormadan uzatır. Gönderende eklenen her başlık, alıcıda tam karşılığı olan katman tarafından okunup kaldırılır. Kapsülleme ve ters kapsülleme, bu yüzden birbirinin aynadaki görüntüsüdür.

Uçtan uca bir örnek: tarayıcıya adres yazdığında

Dağınık parçaları tek bir sahnede birleştirelim. Adres çubuğuna example.com yazıp Enter’a bastığında kabaca şunlar olur:

İstemci, yönlendirici ve sunucu arasında uçtan uca veri akışı
Yolculuğun tamamı. Veri senin cihazında aşağı iner, kablodan geçer, yoldaki yönlendiricilerde 3. katmana kadar açılıp yeniden paketlenir ve sunucuda yukarı tırmanarak uygulamaya ulaşır. Cevap aynı yolu tersten izler.

Önce isim çözülür. example.com bir IP adresi değil; tarayıcın bir DNS sorgusu (çoğunlukla UDP üzerinden) göndererek adın hangi IP’ye karşılık geldiğini öğrenir. Sonra bağlantı kurulur. TCP, sunucuyla üçlü el sıkışma yapar (SYN, SYN-ACK, ACK); https ise ayrıca bir TLS el sıkışması olur ve şifreli kanal açılır.

İstek paketlenir ve yola çıkar. Tarayıcının HTTP GET isteği uygulama verisi olarak oluşur; taşıma katmanı onu 443 portuna etiketli segmentlere böler; ağ katmanı kaynak ve hedef IP’yi yazar; veri bağı katmanı bir sonraki durağın (çoğunlukla modemin) MAC adresini yazar — bu adresi bulmak için küçük bir ARP sorgusu yapılır — ve fiziksel katman her şeyi sinyale çevirir.

Yoldaki her yönlendirici küçük bir mola verir. Gelen çerçeveyi açar, IP başlığına bakar, “bu paket nereye gitmeli?” diye karar verir, paketin ömür sayacını (TTL) bir azaltır ve bir sonraki durağa uygun yeni bir çerçeveyle tekrar yola koyar. Böyle durak durak, paket sunucuya ulaşır.

Sunucuda film ters oynar. Veri yukarı tırmanır, her katman kendi başlığını soyar, uygulama katmanı isteği okur ve sayfayı hazırlar. Cevap da aynı yolculuğu tersten yapıp senin ekranında belirir. Bütün bu durak, paketleme ve çözme işi, çoğu zaman gözünü kırpmandan kısa sürer.

Paylaş

Son Yazılar

Bizi Takip Edin

Yazıyı Beğendin mi?

Yeni yazılarımızdan haberdar olmak için şimdi bize katılın.
İlgili yazılar

Okumaya Devam Edin