Şekil-NS ile Lan simulasyonları için bazı MAC katmanı programları
NS2 aynı zamanda gerekli tcl derleyiciler, simülasyon senaryo üreteci ve simülasyon topoloji üreteci gibi utilityler içermektedir. Tcl derleyiciler tcl scriptlerini derlemek için kullanılmaktadır ve eğer simülasyonu gerekli genis bir script ile kontrol edilmek isteniyorsa gereklidir. Tcl derleyicisi eğer otomatik olarak kurulmadıysa, NS2 tarafından içerilmez, fakat daha sonra kurulabilir. Tcl derleyicisinin bir dezavantajı, kullanılan tcl versiyonuna bağımlı olması ve aynı
zamanda NS2 versiyonuna da bağımlı olmasıdır.
zamanda NS2 versiyonuna da bağımlı olmasıdır.
Şekil- OTCL Yorumlayıcısının Yapısı
Yukarıdaki şekilde NS'in basitlestirilmis bir görüntüsüdür. Burada görüldüğü üzere NS OO TCL (OTCL) script yorumlayıcısı içermektedir. NS kütüphanesinde olay tasarlayıcı(event schedule) nesneler, ağ bileseni(network component) nesneleri ve ağ kurulum yardım menüleri vardır. Diğer bir deyisle NS i kullanmak için yapmak istediklerinizi Otcl script dilinde yazmanız gereklidir. Yapacağımız simulasyonu OTCL ile yazarken kullanıcı olay tasarlayıcısı ilklendirilir ve ağ nesneleri ve plumbing fonksiyonlarını kullanarak ağ topolojisini olusturur, son olarakta trafik kaynağına paketleri ne zaman göndermeye baslayacağı ve sonlandıracağı zamanı söyler. Plumbing terimi ağın ayarları manasında kullanılmaktadır.
NS'in en büyük bilesenlerinden biriside olay tasarlayıcısıdır(event schedular).NS te olay bir paket ID sidir. Bu ID NS nesnesinin isleyebilmesi için belirli bir zamanla birlikte her paket için tekil olarak tanımlanır. Olay tasarlayıcısı simulasyon sırasında olan bütün olayları kaydeder ve olay kuyruğundan o an olan olayı gerekli network nesnesini uyararak olay kuyruğundan çıkarır.Bir paket bir network nesnesine geldiği zaman o nesnenin olay kuyruğuna seçer.Sonra sırası geldiğinde zaman kuyruktan çıkarılıp islenir ve ilgili nesneye yönlendirilir. Yazdığımız scripti çalıstırdığımızda olaylar sıraya konur ve sırayla çalıstırılır.
NS sadece Otcl ile değil C++ ilede yazılabilir.Fakat etkinlik amacıyla veri yolu ve kontrol yolu birbirinden ayrılmıstır. Paket ve olay isletim süresini düsürebilmek için olay tasarlayıcısı ve basit network bilesenleri C++ ile yazılır. Bu derlenmis C++ ile yazılmıs nesneler Otcl yorumlayıcı tarafından Otcl nesnelerine dönüstürülürler. Bu yolla C++ nesnelerinin kontrolü de Otcl nesnelerine verilir.
Nesneler direkt olarak Otcl ile de olusturulabilir. Sekil-3.3 C++ ve Otcl nesne
hiyerarsisini göstermektedir.
NS'in en büyük bilesenlerinden biriside olay tasarlayıcısıdır(event schedular).NS te olay bir paket ID sidir. Bu ID NS nesnesinin isleyebilmesi için belirli bir zamanla birlikte her paket için tekil olarak tanımlanır. Olay tasarlayıcısı simulasyon sırasında olan bütün olayları kaydeder ve olay kuyruğundan o an olan olayı gerekli network nesnesini uyararak olay kuyruğundan çıkarır.Bir paket bir network nesnesine geldiği zaman o nesnenin olay kuyruğuna seçer.Sonra sırası geldiğinde zaman kuyruktan çıkarılıp islenir ve ilgili nesneye yönlendirilir. Yazdığımız scripti çalıstırdığımızda olaylar sıraya konur ve sırayla çalıstırılır.
NS sadece Otcl ile değil C++ ilede yazılabilir.Fakat etkinlik amacıyla veri yolu ve kontrol yolu birbirinden ayrılmıstır. Paket ve olay isletim süresini düsürebilmek için olay tasarlayıcısı ve basit network bilesenleri C++ ile yazılır. Bu derlenmis C++ ile yazılmıs nesneler Otcl yorumlayıcı tarafından Otcl nesnelerine dönüstürülürler. Bu yolla C++ nesnelerinin kontrolü de Otcl nesnelerine verilir.
Nesneler direkt olarak Otcl ile de olusturulabilir. Sekil-3.3 C++ ve Otcl nesne
hiyerarsisini göstermektedir.
Şekil- C++ OTCL Nesne Hiyerarşisi
Şekil- NS'in genel mimarisi
Yukarıdaki şekilde NS'in genel mimarisini göstermektedir. Normal bir kullanıcı Otcl kütüphanelerini kullanarak TCL ile bir simülasyon dizayn ederken veya çalıstırırken kendisinin sol alt kösesinde bulunan tcl8.0 yazan kısımdadır. Olay tasarlayıcı ve diğer network bilesenlerinin çoğu C++ ile gerçeklestirilmistir. Otcl ve Otcl bağlantıları ise tclcl kullanılarak gerçeklestirilmistir.
Topoloji üretimi için 4 seçenek var: NTG, RTG, GT-ITM ve TIERS paketleridir. En azından GT-ITM NS2’nun bir parçasıdır. NS2 ile birlikte çalısabilmesi için Knuth’un cweb ve SGB yazılımı gerektirir, fakat bu yazılımpaketleri zaten NS2’un parçasıdır. Bu topoloji üreteçleri ile tüm topolojileri el iletanımlama ihtiyacı olmaksızın genis network topolojileri olusturabilir.
Topoloji üretimi için 4 seçenek var: NTG, RTG, GT-ITM ve TIERS paketleridir. En azından GT-ITM NS2’nun bir parçasıdır. NS2 ile birlikte çalısabilmesi için Knuth’un cweb ve SGB yazılımı gerektirir, fakat bu yazılımpaketleri zaten NS2’un parçasıdır. Bu topoloji üreteçleri ile tüm topolojileri el iletanımlama ihtiyacı olmaksızın genis network topolojileri olusturabilir.
Simülasyon senaryo üreteci düğümleri arasında trafik olusturmak için kullanılabilir. Wireless Network’leri simüle ederken, senaryo üreteci aynı zamanda düğümlerin hareketlerini tanımlayan dosya olusturur.