# Cisco-da konfigurasyon işlemlerini yapıyoruz ve ping atıyoruz. # NS2-da ise bu işlemleri yapmıyoruz. Onun yerine katmanlarda yapılacak işlemleri tanımlıycaz. # örn : uygulama katmanında ne kadar paket gönderilecek, taşıma katmanında hangi # protokol kullanılacak. (udp veya tcp) # Alıcı ve vericiyi tanımlayıp, paketleri gönderip, sonra ise kaç paket gidip-gitmediğine bakıcaz. # Cisco-da paketlerin gidip-gitmediğine, burada ise kurduğumuz ağın performansına bakıyoruz. # "Simulator" sınıfından "ns" nesnesi türetildi set ns [new Simulator] # similasyon boyunca olan olayları out.nam dosyasına kaydediyoruz.Topoloji ve Trafik dahil. # Dosya ismi "out.nam", "w" yazma modudur. "nf" bu yazılımın etiketidir, erişmek için. set nf [open out.nam w] # "ns" nesnesi içerisinde "namtrace-all" isminde metod vardır ve "nf" etiketini gönderdiğimizde # onu "out.nam" dosyası içerisine kaydeder. $ns namtrace-all $nf # Bu fonksiyon projeyi sonlandırmak için kullanılır. proc finish {} { # ns ve nf etiketlerindeki tüm olayları bellekden al ve kaydet. global ns nf $ns flush-trace close $nf # ekran görüntüsünü çalıştır exec nam out.nam & # "return 0" yerine geçer. Çıkış yapmayı sağlar. exit 0 } # "n0" ve "n1" nesneleri "node" sınıfından "ns" projesi için tanımlandı. # Bunlar birer düğümdür. set n0 [$ns node] set n1 [$ns node] # Create a duplex link between the nodes # "dublex-link" : fonksiyondur # 1Mb : bant genişliğidir. # 10ms : iki düğüm arası gecikme süresi. Kullanılan kabloya göre değişir. # "droptail" : kuyruk yönetim algoritmasıdır $ns duplex-link $n0 $n1 1Mb 10ms DropTail # Sonrakı adım Trafik oluşturma : # gönderici düğüm "n0", alıcı düğüm ise "n1" olarak belirliyoruz. # UDP protokolü kullanıcaz # UDP sınıfından "udp0" nesnesini üretip, bunu "n0" -a ekledik. Yani düğüme katman ekledik. # Başlangıçta düğümde katman yok. set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 # Create a CBR traffic source and attach it to udp0 # uygulama katmanı (CBR) tanımladık, sabit oranda paket göndersin. set cbr0 [new Application/Traffic/CBR] # paket boyutu $cbr0 set packetSize_ 500 # gönderme aralığı $cbr0 set interval_ 0.005 # "cbr0" -a "udp0" -ı ekledik # "cbr0" -dan üreteceğimiz paketler "udp0" -a ve "udp0" ise "n0" da olduğu # için bu dğümden paketler gidecek. $cbr0 attach-agent $udp0 # alıcı düğümde uygulama katmanı eklemye gerek yok. Çünkü paket göndermeyecek. # "n1" -e alıcı gibi davranan "null0" nesnesini ekledik. #Create a Null agent (a traffic sink) and attach it to node n1 set null0 [new Agent/Null] $ns attach-agent $n1 $null0 #Connect the traffic source with the traffic sink $ns connect $udp0 $null0 #Schedule events for the CBR agent $ns at 0.5 "$cbr0 start" $ns at 4.5 "$cbr0 stop" # similasyonun 5 saniye süreceğini söyler. $ns at 5.0 "finish" # işlemi başlatır. $ns run