ns2 ile ağ similasyonu oluşturma

Bu kısımda, ns simülatöründe basit bir topolojiyi simüle eden bir Tcl scripti geliştirilecektir. Bu basit örnek aracılığıyla, düğümlerin ve linklerin tanımlanması, düğümler arasında verinin iletilmesi, bir kuyruğun izlenmesi ve nam ağ animatörünün simülasyonu görsel olarak izlemek için yazmış olduğunuz script içinden çalıştırılması öğreneceğiz.
haydiii başlayalımmm.
ilk önce similasyon nesnesi oluşturuyoruz.
1)set ns [new Simulator] // burada ns adında bir similasyon nesnesi oluşturduk.
şimdi de verilerimizi yazacağımız bir dosya oluşturuyoruz.


2)set nf [open out.nam w]
$ns namtrace-all $nf 
//İlk satır 'out.nam' dosyasını yazmak üzere açar ve açılan dosyaya ‘nf’ etiketini verir. İkinci satırda, //yukarıda oluşturduğumuz simülatör nesnesine, nam ile ilgili olacak olan bütün simülasyon verisini //bu dosya içerisine yazmasını bildiririz.
3)proc finish {} 
{ global ns nf
$ns flush-trace close 
$nf exec nam out.nam & 
exit 0 }
yukarıda yazan kodlar ise simisyonumuzun finish prosedürüdür.
$ns at 5.0 "finish" nu komut finish prosedürünü similasyon basladıktan 5 sn sonra çalıştıracağını söyler.bu sadece finis için değil tüm prosüdürlerin çalıştırılma şekli böyledir.
$ns run bu komutta sizinde anlayağınız gibi similasyonu başlatmaya yarar.
4)set dugum1[$ns node] 
 set dugum2[$ns node ]
bu komut düğüm oluşturmaya yarar.
5)$ns duplex-link $dugum $dugum2 1Mb 10ms DropTail
bu komut ile artık oluşturduğumuz düğümler arasında bağlantı oluşturuyoruz.Artık nerdeyse bir ağımız olmuş oldu.Bu iki düğüm bir bilgisayar olarak düşünecez.Evet artık bağlantımızı yani link oluşturuyoruz.Bu bağlantı duplex yani çift yönlü bir bağlantı.1mb ise bant genişliğini 10ms ise de geçikme süresini demek.böylelikle bu iki düğüm arasında yukarıda özelliklere sahip DropTail kuyruğuna sahip bir bağlantımız olmuş oldu.aşağıdaki görselde gördüğünüz şekilde.




şimdi sıra veriyi göndermeye geldi.Veri göndermek için trafik oluşturmamız gerekiyor.

6)set udp [new Agent/UDP] 
$ns attach-agent $dugum1 $udp0
yukarıda yazan kodlar udp(yani User Datagram Protocol – Kullanıcı Veribloğu İletişim Kuralları)
bir iletişim protokoludür.tcp gibi.ikisin farkını araştırarak öğrenebilirisiniz.Bir sonra ki örnekte udp yerine tcp kullanırız.udp nesnesini oluşturdukdan sonra onu ilgili düğümle eşleştiriyoruz.yani artık dugum1 udp kullanrak veri gönderecektir.kaç düğümünüz varsa (yani veri gönderecek düğümler için)udp tanımlanması gerekir.

set cbr0 [new Application/Traffic/CBR]
 $cbr0 set packetSize_ 500 
  $cbr0 set interval_ 0.005
burada ise trafik oluşturuyoruz.cbr0 adında.CBR(constant bit rate) yani sabit oran demek.paketsize anlaşıldığı gibi bu veri tarifindeki paketlerin büyüklüğünü belirliyoruz.interval değeri ise sn de kaç paket gönderileceği bilgisidir. paket her 0.005 saniyede gönderilecektir (saniyede 200 paket eder)

7)şimdi ise bir trafik alıcısı oluşturmamız gerekiyor.yani düğüm0 dan gelen veriyi alacak olan düğüm 1 için
set null0 [new Agent/Null] 
$ns attach-agent $dügüm2 $null0

trafik alıcı olarak null tanımlıyoruz.Ve attach-agent diyerek bunu ilgili düğüme yerleştiriyoruz.
şimdi sıra geldi null0 ile udp i eşleştirmeye.
$ns connect $udp0 $null0  

yukarda oluşturdugumuz udp nesnesi ile trafık alıcı olarak tanımladığımız null0 biribirine bağlıyoruz.
Ve CBR görevlisine veriyi ne zaman iletmesi ve ne zaman durdurması gerektiği bildirilmelidir.

 $ns at 0.5 "$cbr0 start"//0.5 snde basla
 $ns at 4.5 "$cbr0 stop"//4.5 sn de dur.




gördüğünüz gibi ns2 da iki düğüm oluşturup bu iki düğüm arasında duplex bir bağlantı kurarak bir mini ağ kurmuş oldu.Bir sonra ki yazımda bir çok düğümle değişik ağ toplojileri oluşturacağız.




















sonraki
« Prev Post
Önceki
Next Post »
Thanks for your comment