• No results found

9 Presentasjon og drøfting av funn

9.4 Verdier og identitetsforståelse

MIPv6 hücre geçişi için geliştirilen, gezgin ajanların kullanıldığı yöntemde, ağ üzerinde keşif ajanlarının dağıtılması, ağ verilerinin toplanması ve hücre geçişi sürecinin hazırlanması işlemleri için HA düğümü seçilmiştir. Bir MIPv6 ağında HA düğümü MN için varsayılan yönlendirici görevini yerine getirmektedir ve bu nedenle MN ve HA arasındaki hop sayısı 0’dır. Bunun anlamı MN düğümü HA’ya bir ileti gönderdiği zaman arada başka bir yönlendiriciye ihtiyaç duyulmadan ileti direk olarak HA’ya iletilecek demektir. Bu durum aynı zamanda hücre geçişi süreci sırasında MN ve HA arasında gönderilecek gezgin ajanların iletiminin, ağdaki düğüm sayısından, bant genişliğindeki düşmeden ya da ağda oluşabilecek bir tıkanıklık durumundan etkilenmemesini sağlar. Ajan yönetim merkezi olarak HA’nın seçimi aynı zamanda, hücre geçişi başlamadan önce gerçekleştirilecek ön hazırlıklar ile ilgili ajan iletilerinin getireceği paket yükünün tüm ağa yayılmadan HA ve MN arasında sınırlandırılmasını sağlar.

HA üzerinde bulunan ajan yönetim merkezi yazılımı eş zamanlı olarak çalışan üç farklı kanala sahiptir; Komsu izle, ajan denetimi ve ajan verilerini çöz kanalları.

Ayrıca, yazılım ağdan toplanan verilerinin tutulması için bağlantılı liste tipinde AG adında bir veri yapısı ve yapılandırılan CoA’ların listesini tutan CoA adında ayrı bir veri yapısını kullanmaktadır.

HA üzerinde ajan gönderme işlemi 5050 portu üzerinden, gelen ajanların dinlenmesi ve getirdikleri verilerin alınması işlemi ise 5051 portu üzerinden gerçekleştirilmektedir. Ajan yönetim merkezi yazılımının genel mimarisi Şekil 5.7’de verilmiştir.

Şekil 5.7. HA üzerinde ağ yönetimi yazılımı modeli

Şekil 5.7’ye göre ajan yönetim merkezi yazılımına ait kanallar ve bu kanalların yerine getirdikleri görevler aşağıda verilmiştir;

Komsu İzleme Kanalı ( ): HA’nın ev adreslerini ve komşu adreslerini bularak, bunları dinamik bir şekilde denetleyen kanaldır. Tüm komşu adreslere ag_no değerinin verilmesinden ve komşuluk tablosunun düzenlenmesinden bu kanal sorumludur.

Komşuluk tablosu tarafından tutulan veriler, sistem belleği içerisinde bağlantılı liste veri modelini kullanan AG değişkeninde tutulmaktadır. KT_Güncelle( ) fonksiyonu AG değişkenini kullanarak keşif ajanları tarafından toplanan verilere göre komşuluk tablosunu günceller. KT_Güncelle( ) fonksiyonu kendi içerisinde ayrıca yeni bir adresin listeye eklenmesi için Ekle( ) fonksiyonunu, liste üzerinde bir adresin bulunup bulunmadığını denetlemek etmek için Ara( ) fonksiyonunu, ağ yapısının listelenmesi için Listele( ) fonksiyonunu ve ağdan ayrılan bir düğümün listeden çıkartılması için Sil( ) fonksiyonunu kullanır. Komşu izleme kanalı, her bir ev adresinin bağlandığı komşu adresini Komşu_Eşleştir( ) fonksiyonu ile eşleştirir ve denetler. Ayrıca ajanlar tarafından toplanan verilerin ayrıştırıldıktan sonra

düzenlemesi ve listelenmesi işlemi de bu kanalın görevidir. Komşu izleme kanalına ait akış diyagramı Şekil 5.8’de verilmiştir. Komşu izleme kanalı ND listesini 1s zaman aralıkları ile denetler. Bu zaman aralığında Şekil 5.8’e göre yeni bir komşu adresi tespit edildiği zaman bu adres için Komşu_Eşleştir( ) fonksiyonu çağrılır ve daha sonra AG veri yapısına eklenir. Bu süreç program sonlandırılıncaya kadar devam eder.

Şekil 5.8. Komşu izleme kanalı akış diyagramı

Ajan Denetimi Kanalı( ): Bu kanal komşu bir düğüme ajan gönderilip gönderilmediğinin ve ajanlardan geri dönüş verilerinin alınıp alınmadığının denetlendiği kanaldır. Ajan_Gonder( ) fonksiyonu, bir düğüm için ajan gönderilmesini denetler ve keşif ajanı gönderilmeyen düğümlere ajan gönderir. Bir komşu adrese keşif ajanı gönderildiği zaman bu düğümün ajan_gonderim değeri 1 olarak atanır. ajan_gonderim değeri -1, 0 ya da 1 değerlerinden birisini alabilir. -1 değeri bu adresin düğümün kendi ev adresi olduğunu gösterir. Bu şekilde bir HA kendi üzerindeki adreslere ajan gönderimi gerçekleştirmez. 0 değeri ise adresin

komşu bir düğüme ait olduğunu ve bu düğüme bir ajan gönderilmediğini gösterir.

Ajan_Gonder( ) kanalına ait akış diyagramı Şekil 5.9’da verilmiştir.

Şekil 5.9. Ajan gönder kanalı akış diyagramı

Ajan Veri Dinle( ): Keşif Ajanlarından gelen verilerin işlendiği kanaldır. Ağ üzerinde keşif ajanları tarafından gönderilen ajan verilerinde 5 farklı bilgi mevcuttur. Bilgi değerlerinden ikisi yönlendirici düğümler üzerinde bulunan keşif ajanları tarafından gönderilirler. Bu bilgiler ağa yeni düğüm eklenmesi durumu için +1 ve ağdan bir düğümün ayrılması durumu için -1 değeridir. Diğer üç ajan veri değeri hücre geçişi sürecinin yönetilmesi için MN ve HA arasında kullanılmaktadır. Hücre geçişi sürecinde kullanılan ajan veri değerleri 2, 3 ve 4 bilgileridir. 2 bilgisi MN’nin hücre geçişi yapmaya hazırlandığını bildirmek için, 3 bilgi değeri MN’nin hücre geçişinden sonra tekrar ev ağına döndüğünü bildirmek için ve 4 bilgisi ise MN’nin yeni bir ağa hücre geçişini tamamladığını HA’ya bildirmesi için kullanılır. HA bu bilgi değerlerinden bir tanesini aldığı zaman MN’nin hücre geçişi ile ilgili gereken hazırlıkları gerçekleştirir. Ajan veri dinle kanalına ait akış diyagramı Şekil 5.10’da verilmiştir.

Şekil 5.10. Ajan veri dinle kanalı akış diyagramı 5.2.1. AG veri yapısı

Ağ keşfi sürecinde gezgin ajanlar kullanılarak ağ hakkında toplanan verilerin bellekte tutulması amacıyla AG adında, bağlantılı liste tipinde bir veri yapısı kullanılmıştır. AG veri yapısı tarafından tutulan bilgilerin genel görünümü Şekil 5.11’de gösterilmiştir.

Şekil 5.11. AG veri yapısı

AG veri yapısı tarafından tutulan bilgiler;

eas: double değere sahip eas değişkeni ev adresi sayısı ile birlikte adresin kaçıncı adres olduğunu göstermektedir. Bir düğüm için 3.2 değerinin anlamı, bu düğümün 3 adet ev adresi vardır ve bu adres 2. sıradaki adres anlamına gelmektedir. Bir ajan ile veri toplanırken gelen verinin ayrıştırılması sırasında kullanılmaktadır.

ev_adr: string bir değere sahiptir. Düğüme ait IPv6 ev adresidir.

komsu_adr: String bir değere sahiptir. Ev adresine karşılık gelen komşu adresidir.

HA bu bilgiyi kullanarak keşif ajanlarını gönderir.

mac_adr: string bir değere sahiptir. Ağdaki tüm düğümlerin MAC adresi bilgileri bu veri alanında toplanır. MN için yeni bir adres (CoA) yapılandırırken MAC adresi bilgileri kullanır.

ag_no: HA’nın konumuna göre ağ üzerindeki bir düğümün konum bilgisini gösterir.

HA için ag_no değeri 1’dir. HA’ya bağlı ilk komşu düğüm 1.1, diğer düğüm 1.2 ve sonraki düğümler sırası ile diğer sayıları alırlar. 1.1 ağ numarası ile komşu olan ilk düğüm ise 1.1.1 değerini ve benzer şekilde diğer komşu 1.1.2 değerini alır. Ağ numarası kullanılarak aynı yönlendirici önekine sahip düğümlerin birbirlerini komşu olarak görmesi engellenmektedir. Örneğin 1.1.3.1 ve 1.1.3.2 makineleri aynı yönlendiriciye bağlı oldukları için yönlendirici önekleri birbirlerine eşittir. Bu önek değeri kullanılarak komşu eşleştirmesi yapılırken ag_no değeri aynı düzeyde bulunan düğümler birbirleri ile eşleştirilmemektedirler. Ayrıca keşif ajanları tarafından

toplanan verilere göre listeye düğüm bilgileri eklenirken, ag_no bilgisine göre yerleştirme sağlanmaktadır. Ağ numaralarının ağ üzerindeki düğümlere dağıtım yöntemi Şekil 5.12’de gösterilmiştir.

Şekil 5.12. Ağ no dağılımı

ajan_gonderimi: integer bir değere sahiptir. Komşu adresleri için başlangıç değeri 0’dır. Bir komşu adrese keşif ajanı gönderildiği zaman 1 değerini alır. Bu değer ajan denetimi kanalı tarafından kontrol edilir.

tur: string bir değere sahiptir. Bir düğümün gezgin düğüm, uç düğüm ya da bir yönlendirici olduğunu gösterir. Ajan üzerinde yönlendirme işlemi yapan tüm düğümler R6 türünde, HA’ya wlan ara yüzü ile üzerinden bağlanan tüm düğümler MN türünde ve geri kalan tüm düğümler CN türünde atanır.

yasam_süresi: Bir düğüm mevcut bağlantısını kopardığı zaman liste üzerinde ne kadar zaman tutulacağını belirler. Değeri komşu güncelleme fonksiyonu tarafından kontrol edilir. Eğer listede bulunan bir düğüm bir sonraki komşu güncelleme adımında bulunamazsa yasam_suresi değeri bir arttırılır. Program içerisinde bir yasam_suresi 1 dk olarak ayarlanmıştır. 1 dk içerisinde düğüm ağdaki önceki konumu ile tekrar bağlantı kurmazsa komşu tablosu listesinden silinir.

ajanadi: Ağ üzerinde bulunan düğümlere gönderilen keşif ajanlarının isimleridir.

Keşif ajanlardan gelen veriler ajan isimleri kontrol edilerek ayrıştırılır.

5.2.2. CoA veri yapısı

CoA, hücre geçişi sonrasında bir MN’nin yeni bağlantı noktasında kullandığı eşsiz IPv6 adresidir. CoA, mevcut MIPv6 iletişim kuralında MN tarafından durum denetimsiz ya da durum denetimli olarak üretilir ve ağ üzerindeki eşsizliği DAD süreci ile denetlenir. MN’nin yeni konumunda bir CoA oluşturma ve bu adresi HA ve CN’ye bildirerek yeni konumunu güncelleme süresi hücre geçişi sürecinde yaşanan en uzun gecikmelere neden olur. Ancak, geliştirilen gezgin ajanların kullanıldığı hücre geçişi yönteminde, hücre geçişi başlamadan önce CoA’nın üretilmesi ve eşsizliğinin test edilmesi HA’nın görevidir. HA, ağda kullanılan tüm adresleri keşif ajanları yoluyla öğrenir ve kendi komşuluk tablosunda tutar. HA, bir CoA yapılandıracağı zaman komşuluk tablosunu kontrol eder ve CoA’nın ağda eşsiz bir adres olmasını garanti eder. Diğer taraftan, bir HA’ya birden fazla MN bağlı olabilir ve bu MN’de hücre geçişi gerçekleştirebilir. Böyle bir süreçte, MN yeni ağına geçip üretilen CoA’yı kullanmadan önce diğer MN’de HA’dan bir CoA isteyebilir. Aynı CoA’nın birden fazla MN’ye atanmasını engellemek için HA üzerinde yapılandırılan CoA ve bu CoA’nın hangi MN için atandığı tutulmaktadır.

CoA’ların listesini tutmak için Şekil 5.13’de gösterildiği gibi bir veri alanı kullanılmaktadır. CoA veri yapısında CoA_adres alanı üretilen CoA’nın IPv6 adresini, CoA_esle alanı ise üretilen CoA’nın hangi MN için atandığını gösterir. Bu alanda MN’nin IPv6 ev adresi tutulmaktadır.

Şekil 5.13. CoA veri yapısı