OSI (Open Systems Interconnection-Açık Sistemler Bağlantısı) modeli, ISO (International Organization for Standardization-Uluslararası Standardizasyon Örgütü) tarafından geliştirilmiş olup bilgisayarlar arasındaki iletişimi sağlamak için kullanılan bir standarttır. 7 katmandan oluşur. Ağ Katmanı (Network Layer) OSI’nin 3. katmanıdır. Katmanlar birbiriyle ilişkili olarak çalıştığından Ağ katmanı da Taşıma katmanı (Transport Layer) ve Veri Bağlantı katmanı (Data Link Layer) arasındaki iletişimi sağlar. 7. katmanda oluşturulan her katmanda farklı işlemlerden geçen veri 4. katman olan taşıma katmanında segment haline gelir ve ağ katmanına aktarılır. Bu katmanda adresleme, enkapsülasyon, yönlendirme ve dekapsülasyon işlemleri uygulanır.
Adresleme (Addressing)
Ağ katmanı, veriyi gönderecek olan kaynak cihaz ve veriyi alacak olan hedef cihaz için bir adresleme mekanizması sağlar. Her bir veri parçasının doğru hedefe gönderilmesini sağlamak için her cihazın kendine özgü bir adresi olmalıdır. Ağ katmanında bu adresler IP (Internet Protocol) adresleridir. Bu adresler 3. katman başlığı (Layer 3 header) içinde segmentin üzerine enkapsülasyon işlemiyle yerleştirilir. Bu işlem sayesinde hedef cihaz gönderilen paketin kendisine geldiğini anlar ve veriyi hedefi yönlendirmek için kullanılan ara cihazlar veriyi göndereceği yolu belirler.
Enkapsülasyon (Encapsulation)
Enkapsülasyon işleminde 4. katmandan alınan segmentin üzerine 3. katman başlığı eklenir ve segment diye adlandırdığımız veri bütünü artık paket (packet) ismini alır. 3. katman başlığı, hedef adresi (destination address) ve kaynak adresi (source address) gibi bilgileri içerir.
Yönlendirme (Routing)
Paketi gönderecek olan kaynak ve alacak olan hedef cihazlar her zaman aynı ağda yer almazlar. Böyle durumlarda bir ağdan başka bir ağa veri göndermek için yönlendirme işlemi yapılır. Bu yönlendirme işlemini yapan ara cihaza Router (Yönlendirici) adı verilir. Router, verinin hedefe ulaşması için gidebileceği en iyi yolu belirler ve yönlendirir. Bu yönlendirme işlemi için 3. katman başlığı altında bulunan bilgileri kullanır. Kullanılan en önemli bilgi hiç şüphesiz hedef ve kaynak adresidir.
Dekapsülasyon (Decapsulation)
Paket hedef cihaza vardığında çeşitli işlemlerden geçerek OSI’nin 3. katmanı olan ağ katmanına ulaşır. Bu katmanda hedef adresi kontrol edilir ve paketin doğru hedefe ulaştığı doğrulanır. Doğrulama işleminden sonra paket dekapsülasyon işleminden geçerek 3. katman başlığı atılır ve 4. katman olan taşıma katmanına geçer.
Ağ katmanı protokolleri olarak adlandırılan bazı protokoller vardır. Ağ katmanında paketi taşımak için kullanılan bazı protokoller şunlardır; IPV4, IPV6, IPX, AppleTalk, CLNS/DECNet.
IPV4-IPV6 (Internet Protocol Version 4-6-İnternet Protokolü)
IPv4 protokolü, günümüzde bilgisayarların iletişiminin sağlanmasının temelini oluşturur. IPv4 adresleri 8'er bitten oluşan 4 bloktan meydana gelir. Bu da 32 bitlik bir adres demektir. Bu adres bizim internetteki kimliğimizdir. 2^32 tane farklı IPv4 adresi vardır, fakat günümüzün değişen ve gelişen şartlarında bu adresler artık yetmemeye başlamış, bu yüzden IPv6 protokolü oluşturulmuştur. Yakın zaman içersinde IPv4 adreslerinin yerini IPv6 adreslerinin alması beklenmektedir. IPv6 protokolünün IPv4 protokolüne göre birçok avantajı vardır. Bu avantajlar; sağladığı 2^128 tane IP adresi sayesinde daha geniş IP adres alanı, yeni güvenlik özellikleri, paketlerin daha hızlı iletilebilmesini sağlayacak sadeleştirilmiş başlık yapısı, adres atama sunucusu ihtiyacını ortadan kaldıracak olan otomatik adres yapılandırması gibi özellikleri içerir.
32 bitten oluşan IPv4 başlığı aşağıdaki şekilde görüldüğü gibi farklı işlevlere sahip birimlerden oluşur.
Destination Address (Hedef Adres): Paketin gönderileceği hedef adresin bulunduğu kısım.
Source Address (Kaynak Adres): Paketi gönderen kaynak adresin bulunduğu kısım.
Time to Live (Yaşam Süresi): TTL değeri 0 ve 1 rakamlarından oluşan 8 bitlik bir değerdir. Her bir routerdan geçişinde değeri bir azaltılır ve 0 olduğunda paket atılır. Böylelikle hedefe ulaşamayan bir paketin routerlar arasında sonsuz döngüye girmesi engellenmiş olur.
Protocol (Protokol): Her protokole özel bir numara verilir ve böylece doğru katmanda değerlendirilmesi sağlanır.
Type of Service (Service Türü): Buradaki belirteç sayesinde de servisin çeşidi belli olur ve ona göre öncelik verilmiş olur.
Fragment Offset (Parça Karşılığı): Parçalama yapılmış paketlerin sırasını belirtir.
Flag (Bayrak): “More Fragment (MF) flag” biti yani MF değeri 1 ise, parçalara ayırma işleminin (fragmentation) yapıldığını ve gönderilen parçanın son parça olmadığına işarettir. Eğer MF değeri 0 ise ve Fragment Offset bitlerinde 0 olmayan değerler varsa bu parçanın son parça olduğunu gösterir. Eğer MF değeri de 0, Fragment Offset bitleri de 0 ise parçalara ayrılmamış bir pakettir. “Don’t Fragment(DF) Flag” biti 0 ise parçalara ayırma işlemine izin verilmemiş demektir. Yönlendiriciler böyle paketleri çöpe atarlar.
Version (Versiyon): IP versiyon numarasını belirtir.
Header Length(IHL) (Başlık Uzunluğu): Paket başlığının boyutunu belirtir.
Packet Length (Paket Uzunluğu): Başlık dahil verinin bulunduğu paketin boyutunu belirtir.
Identification (Tanımlama): Benzersiz bir IP paket parçalarını tanımlamak için kullanılır.
Header Checksum (Başlık Hata Hesaplama): Paket başlığındaki hataları kontrol etmek için kullanılır.
Options (Seçenekler): Başka servisler için başlıkta alan tedarik etmek için kullanılır fakat nadiren kullanılan bir alandır.
IPX (Novell Internetwork Packet Exchange - Novell Internet Paket Değişimi): IPX/SPX 1969 yılında Utah’ta kurulmuş bir yazılım şirketi olan Novell Data Systems Inc. üretimi olan NetWare (Network güvenliği sağlayan oluşum) yapısı için özel olarak üretilen geliştirilmiş bir protokol kümesidir. IPX, ağ katmanında çalışan TCP/IP yapısındaki IP işlevini üstlenen kısımdır.
AppleTalk: AppleTalk protokolü Apple Computer Corporation tarafından geliştirilmiştir. Macintosh bilgisayarlarla iletişim kurmak için kullanılır.
CLNS/DECNet (Connectionless Network Service - Bağlantısız Ağ Servisi): Digital Equipment Corporation (DEC) ilk olarak 1970’lerin başında DECNet protokolünü duyurdu. Daha sonraki yıllarda bu protokole eklemeler yapıldı ve geliştirildi. CLNS/DECNet bu geliştirmelerden biridir.
Bu protokollerin yanında yine ağ katmanında çalışan ve iletişimin sağlanmasında önemli rol oynayan protokoller vardır. Bu protokollerden bazıları; ARP, ICMP, IGMP.
ARP (Address Resolution Protocol - Adres Çözümleme Protokolü): Ethernet ara yüzüne sahip ağ kartları kendilerine üretim aşamasında verilmiş olan 48 bitten oluşan fiziksel adresleri (MAC adresi) ile iletişime geçerler. Yerel Alan Ağında (LAN - Local Area Network) haberleşmek için veri alış-verişi yapılacak cihazın fiziksel adresi bilinmelidir. Eğer veri gönderilecek cihazın 2. katmana ait olan fiziksel adresi bilinmiyorsa, ARP sayesinde 3. Katmana ait olan IP adresi kullanılarak cihaza ARP sorgusu yapılır. Bu sorguya cevap olarak cihaz fiziksel adresini gönderir. Böylece cihazın fiziksel adresi öğrenilir.
ICMP (Internet Control Message Protocol-İnternet Kontrol Mesaj Protokolü): ICMP bir kontrol protokolüdür. Veri alışverişi yapılırken hangi esnada hata yapıldığını belirler ve bu hataya geri bildirim mesajı gönderir. Geri bildirim esnasında belli bir port numarası üzerinden çalışmaz, yani port başlığı mesaja eklenmez. IP paketinin veri bölümünde taşındığından ip yollu çalışır. ICMP sayesinde iletişim kesikliği, paket parçalanması, pakette hata oluşumu ya da paketin yanlış yolda olması durumları belirlenir, hatanın tam olarak hangi katmanda olduğu anlaşılır ve ona göre bir geri bildirim mesajı gönderilir. “ping” komutu ICMP kullanımına örnektir.
IGMP (Internet Group Management Protocol-İnternet Grup Yönetim Protokolü): Çoklu yayınlarda (multicast) üyeleri yönetmek için kullanılan iletişim protokolü. Taşıma protokolü gibi davranmasına rağmen ağ katmanında IP bazlı çalışır. Tekli dağıtım bağlantılardaki ICMP ye benzer. IGMP, istemciyi yerel çoklu dağıtım yapan yönlendiriciye bağlamak için hem istemci hem de yakınındaki ağ cihazları tarafından kullanılır.