Yusuf Bülbül

An Engineer

Mac Servis Yazılımının(802.11.xx) Linux Sistemlere Uyarlanması

Herkese hayırlı bayramlar. Bir Mac Yazılımını(Mac 802.11) anlayabilmek için, Üç önemli alan bilgisi gerekiyor. Bunlar, Linux Kernel-Socket yapısı, Ağ Yığını Sistem Entegrasyonu ve Ağ topolojileri-Kanal Erişim modelleridir. Bir önceki yazımda Mac Servislerinin ana çalışma algoritmaları ve kanal erişim modellerinden bahsetmiştim. Bu yazımda bir Mac Servisinin Linux Sistemlere uyarlanması ve Linux Socket yapısından bahsedeceğim.  Öncelikle Linux Sistemlerde ağ işlemleri yapısına bir göz atmamız gerekiyor. Örneğin aşağıdaki Linux Sistemlerinin ağ sistem mimarisine bir göz atalım.

Yukarıdaki figür kernel uzayındaki sürücü yapısını ve ilişkilerini gösteriyor.  Kullanıcı uzayındaki yazılımlar internet üzerinden veri alışverişi gerçekleştirebilmesi için kernel uzayındaki servis ve sürücüleri kullanırlar.  Kernel uzayında internet alışverişini sağlayan sürücüler; kablolu ağ ve kablosuz ağ sürücüleri olarak ikiye ayrılıyor. Kullanıcı uzayında internet işlemleri gerçekleştirmek için “socket” yapısı kullanılır. Socket yapısı, standart Linux C kütüphanesinin sunmuş olduğu bir kod altyapısıdır.  Bu kütüphane, veri alışverişi için sistem çağrılarını kullanır.  Kaba taslak olaylar şu şekilde gerçekleşir;  (socket create)  sistem çağrısı ile bir kernel soketi oluşturulur ve bu soket kablosuz ya da kablolu ağa bağlanır. Tabiki bu bağlanma işlemi protokol ailesi ve gerekiyorsa ip vs. belirtilerek gerçekleştirilir. Daha sonra gönderilmesi yada alınması gereken veri mevcut buffer yapısı içerisine koyulup yine  (write) ya da (read) sistem çağrıları ile transfer edilir.

Socket Layer

Bu transfer ilk olarak soket servisinden geçer. (Socket Layer) Bu servis, gönderilen ya da alınan asıl verinin hafıza bölümünün işaretleyicisini(Pointer- skb hold pointer) tutar.Aynı zamanda veri paketlerinin uzunluklarını takip eder. Bu katman tuttuğu veriyi geçerli alt internet altyapı servislerine belli bir protokole göre yönlendirir. Tabi bu işlem için veri paketinin başına gerekli başlık eklenmesi ya da çıkarılması gibi bazı operasyonlar gerçekleştirir.

Network Protocol Layer

Socket servisi, paketi “Network Protocol” servisine gönderir.  Burada adından da anlaşılacağı gibi protokol işlemleri gerçekleştirilir. Linux İşletim sistemi, TCP/IP, x25-frame relay, IPX/SPX, ISDN, ATM, AX25 gibi ağ protokollerini destekler. Gönderilen ya da alınan verinin hangi protokole ait olduğu ya da bu protokoller ile ilgili gerekli işlemler bu servis tarafından gerçekleştirilir. Verinin hangi protokole ait olduğu bilgisi bir üst katmandan gönderilir.

Device Agnostic Layer

Daha sonra paket, Cihaz Agnostik Servisine gider. (Device Agnostic Layer). Bu servis, veri paketini ethernet ya da Wifi gibi uygun cihaz sürücüsü ile bağdaştırır. İşte  Mac Servisi burada işin içerisine giriyor.  Mac Katmanı, kablosuz ağlarda veri transferini gerçekleştirmek için kanal erişimi sağlayan ve 802.11.xx standartları ile belirtilmiş standart yazılımlardır.  Genel olarak iki çeşit Kablosuz Ağ donanımı vardır. Bunlar HardMac ve SoftMac olarak ikiye ayrılır.

Mac Layer

HardMac kablosuz ağ donanımı, kendi içerisinde Mac servisi de barındıran donanımlardır. Bazı yerlerde bu cihazlara Full Mac donanımlar da deniyor. SoftMac donanımlar, sadece fiziksel katman servisi gereksinimlerini barındırır. Mac Servisi, donanımın içerisinde bulunmaz. Kablosuz ağ donanımlarının çoğu SoftMactir.  Mac Servisleri genel olarak Veri Transfer Servisi(mac80211) ve Yönetim-Konfigrasyon(nl80211, cfg80211) Servisi olarak iki blok servisten oluşur. Bazı yerlerde Upper Mac ve Lower Mac olarak da ayrılıyor.  Bu servisler kullanıcı uzayı ile donanım sürücüsü arasında bir arayüz sağlar.  Servislerin adından da anlaşılacağı üzere, veri transfer servisi,  veri alma, gönderme, ack ve gerçek zamanlı işlemlerle meşgul olurken, yönetim servisi, ağa bağlanma, kimlik doğrulama ve ağ kanalına erişim için kullanılacak parametrelerin düzenlenmesi gibi, ağ içindeki diğer işlemler ile ilgilenir. Mac Servisinin Yönetim bloğu da Yönetim(nl80211) ve Konfigrasyon(cfg80211) olarak iki parça servisten oluşur.  HardMac ve SoftMac donanımların her ikisi de Linux Mac Konfigürasyon(cfg80211) Servisi ile çalışması gerekir. Fakat Linux Mac Transfer(Mac80211) Servisi sadece SoftMac donanımlar tarafından kullanılır.

Mac Servisi kendisine gelen veri paketini kendi kanal erişim modeline uygun olacak şekilde paketler ve Mac Frame Yapısı içerisine koyar. Mac Frame Yapıları, mac adresleri, mac servis bilgileri ve ağ kanal erişiminin sağlanabilmesi adına bazı spesifik bilgiler içerir.  Genellikle Yerel Kablosuz ağlarda CSMA/CA kanal erişim mekanizması kullanılır. Bunun için  mac servisi gerekli algoritmayı uygular ve yerel ağdaki veri transferini yönetir.

Physical Layer

Network Protokol servisinden gelen veri, Linux Mac Transfer Servisine(Mac80211) bu şekilde gelir ve yukarda anlattığım bazı paketleme, gerçek zamanlı kontrol ve kanal erişimi mekanizması işlemlerinden geçer ve  Wifi donanım sürücüsüne gönderilir. Aslında Wifi Donanım Sürücüsü, aynı zamanda Fiziksel Katman Servisidir.  Fiziksel katman servisi, verinin anten üzerinden ağ içerisindeki başka bir cihaza gönderiminden sorumludur.  Tabi bu işlem için Mac Çerçeve yapısı, yeniden Fiziksel Katmana özgü bir şekilde başka bir paket içerisine konur. Bu pakete Fiziksel Katman Çerçevesi denir.

Aslında bu bilgilerden hemen sonra 7 Katmanlı OSI modeli ve bu modelin bu yapıya nasıl uyarlandığını da anlatmak gerekiyor. İnşallah bu konuyu da bir sonraki yazımda anlatacağım. Şimdilik sağlıcakla kalın.

 

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Copyright © Tüm Hakları Saklıdır.