İçeriğe atla

ns (simülatör)

ns-3
İlk yayınlanma30 Haziran 2008 (16 yıl önce) (2008-06-30)[1]
Güncel sürüm3.41[2] Bunu Vikiveri'de düzenleyin / 9 Şubat 2024 (Error: first parameter (9 Şubat 2024-10-20) cannot be parsed as a date or time.) (9 Şubat 2024)
Programlama diliC++ (core), Python (bindings)
İşletim sistemiLinux, FreeBSD, macOS
PlatformIA-32, x86-64
TürAğ simülatörü
LisansGNU GPL
Resmî sitesiwww.nsnam.org Bunu Vikiveri'de düzenleyin
Kod deposu Bunu Vikiveri'de düzenleyin

ns (network simulator ifadesinin kısaltması), bir dizi ayrık olay ağ simülatörleri, özellikle ns-1, ns-2 ve ns-3 için kullanılan bir isimdir. Hepsi, öncelikle araştırma[3] ve öğretimde kullanılan ayrık olay bilgisayar ağı simülatörleridir.

Tarihçe

ns-1

ns-1 olarak bilinen ns'nin ilk sürümü 1995-97 zaman diliminde Steve McCanne, Sally Floyd, Kevin Fall ve diğer katkıda bulunanlar tarafından Lawrence Berkeley National Laboratory (LBNL)'de geliştirilmiştir. Bu, LBNL Ağ Simülatörü olarak biliniyordu ve 1989 yılında S. Keshav tarafından REAL olarak bilinen daha önceki bir simülatörden türetildi.

ns-2

ns-2, ns-1'in bir revizyonu olarak başladı. 1997'den 2000'e kadar ns'nin geliştirilmesi DARPA tarafından LBL, Xerox PARC, UC Berkeley ve USC/ISI'deki VINT projesi aracılığıyla desteklendi. 2000 yılında ns-2'nin geliştirilmesi DARPA tarafından SAMAN ile ve NSF tarafından CONSER ile, her ikisi de USC/ISI'de, ACIRI dahil diğer araştırmacılarla işbirliği içinde desteklenmiştir.

NS2'nin özellikleri

  1. Ağ araştırmaları için ayrık bir olay simülatörüdür.
  2. TCP, FTP, UDP, HTTPS ve DSR gibi bir grup protokolü simüle etmek için önemli destek sağlar.
  3. Kablolu ve kablosuz ağ simülasyonu yapar.
  4. Öncelikle Unix tabanlıdır.
  5. Betik dili olarak TCL kullanır.
  6. Otcl: Nesne yönelimli desteği
  7. Tclcl: C++ ve otcl bağlantısı
  8. Ayrık olay çizelgesi

Ns-2, UCB Daedelus ve CMU Monarch projeleri ve Sun Microsystems'den kablosuz kod dahil olmak üzere üçüncü tarafların önemli katkılarını içermektedir.

ns-3

2003 yılında Tom Henderson, George Riley, Sally Floyd ve Sumit Roy liderliğindeki bir ekip, ns-2'nin yerine ns-3 adında bir yazılım geliştirmek için ABD Ulusal Bilim Vakfı'na (NSF) başvurmuş ve fon almıştır. Bu ekip, Sophia Antipolis'teki INRIA'nın Planete[4] projesi ile işbirliği yaptı ve Mathieu Lacage'ın yazılım lideri olduğu yeni bir açık kaynak projesi oluşturdu.

ns-3'ün geliştirilmesi sürecinde, ns-2 ile geriye dönük uyumluluğun tamamen terk edilmesine karar verildi. Yeni simülatör C++ programlama dili kullanılarak sıfırdan yazılacaktı. ns-3'ün geliştirilmesine Temmuz 2006'da başlandı.

Üç sürümün mevcut durumu şöyledir:

  • ns-2 kurulduğunda ns-1'in geliştirilmesi durduruldu. Artık geliştirilmemekte ve bakımı yapılmamaktadır.
  • ns-2'nin geliştirilmesi 2010 yılı civarında durdu. Artık geliştirilmemekte ve bakımı yapılmamaktadır.
  • ns-3 aktif olarak geliştirilmekte ve sürdürülmektedir.

Tasarım

ns-3, C++ ve Python kullanılarak betik oluşturma özelliği ile oluşturulmuştur. ns kütüphanesi, ns C++ başlıklarının ayrıştırılmasını castxml ve pygccxml'ye devrederek ilgili C++ bağlama (binding) yapıştırıcısını otomatik olarak üreten pybindgen kütüphanesi sayesinde Python tarafından sarmalanır. Otomatik olarak oluşturulan bu C++ dosyaları son olarak ns Python modülünde derlenerek kullanıcıların Python komut dosyaları aracılığıyla C++ ns modelleri ve çekirdeği ile etkileşime girmesine olanak tanır. ns simülatörü, simülasyon parametreleri için varsayılan ve örnek başına değerleri yönetmek için entegre bir öznitelik tabanlı sisteme sahiptir.

Gereksinimler

ns'i oluşturmak için bir bilgisayara ve bir C++ derleyicisine ihtiyacınız var. Ns'yi çeşitli Unix türleri (FreeBSD, Linux, SunOS, Solaris) üzerinde geliştiriyoruz, bu nedenle en sorunsuz şekilde orada kurulur, ancak muhtemelen bazı ince ayarlarla Posix benzeri bir bilgisayarda çalışmalıdır. Ns ayrıca Windows altında da kurulur ve çalışır, özel Windows/Cygwin sayfasına bakın. Basit senaryolar makul herhangi bir makinede çalışmalıdır, ancak çok büyük senaryolar büyük miktarda bellekten yararlanır.

Ns oldukça büyüktür. Allinone paketini oluşturmak için yaklaşık 320MB disk alanı gerekir. Parçalardan ns oluşturmak biraz disk alanı kazandırabilir. (Birden fazla kişi yer kazanmak için ns derleme ağacındaki dosyaları paylaşmak isterse, basit bir Perl betiği indirebilir, ardından README'deki talimatları takip edebilirsiniz. USC'nin CS599b sınıfından ayrıntılı talimatlar var. Ayrıca ns-users posta listesi arşivindeki tartışmaları da yararlı bulabilirsiniz).

Ns indirme ve oluşturma

Kasım 2005 itibarıyla, ns bu SourceForge sitesinde mevcuttur.

Ns, Tcl/Tk'nın (başlık dosyalarıyla birlikte) mütevazı bir şekilde güncel bir kurulumunu ve iki ek paketi gerektirir: tclcl ve otcl. Çoğu işletim sistemi kurulumu tam Tcl/Tk kurulumları veya bu diğer paketlerle birlikte gelmez, bu nedenle büyük olasılıkla ilave olarak birkaç paket yüklemeniz gerekecektir.

Genel Linux, BSD, OS X ve Solaris talimatları

Ns oluşturmanın iki tipik yolu vardır: her bileşeni ayrı ayrı ("parçalardan") oluşturmak veya hepsini tek seferde yükleyen bir komut dosyası çalıştırmak ("allinone"). Eğer sadece hızlı bir şekilde denemek istiyorsanız, allinone paketini deneyebilirsiniz. C düzeyinde geliştirme yapmak istiyorsanız, indirme süresinden veya disk alanından tasarruf etmek istiyorsanız ya da allinone ile sorun yaşıyorsanız, parçalardan oluşturmalısınız.

allinone paketinin yüklenmesi: Bu paket, Tcl/Tk, OTcl, tclcl, ns-2, nam-1 ve diğer paketlerin kurulumunu gerçekleştiren bir kurulum betiğine sahiptir.

allinone paketinin güncelleme: "allinone" paketi yalnızca her sürüm için güncellenir. Platformunuz için allinone paketinin rahatlığıyla ilgileniyorsanız, ancak ns-2 kodunun daha taze bir anlık görüntüsünü kullanmak istiyorsanız güncelleme yöntemini kullanabilirsiniz.

(Not: Yukarıdaki allinone ve pieces ISI sayfalarının vikileştirilmesi ve güncellenmesi gerekmektedir)

Kaynaklardan ns oluşturma - Talimatlar

Farklı sistemlere özgü bazı talimatlar dokümantasyonda almaktadır.[5]

Wouter Horré ns/nam için bir PPA tutmaktadır, böylece kullanıma hazır deb paketlerini oradan alabilirsiniz. Eğer bir sebepten dolayı build-from-sources kurulum talimatlarını arıyorsanız dokümana[6] göz atın.

Simülasyon iş akışı

Bir simülasyon oluşturmanın genel süreci birkaç adıma ayrılabilir:

  1. Topoloji tanımı (Topology definition): Temel tesislerin oluşturulmasını kolaylaştırmak ve birbirleriyle ilişkilerini tanımlamak için ns-3, bu süreci kolaylaştıran bir kapsayıcı ve yardımcılar sistemine sahiptir.
  2. Model geliştirme (Model development): Modeller simülasyona eklenir (örneğin, UDP, IPv4, noktadan noktaya cihazlar ve bağlantılar, uygulamalar); çoğu zaman bu yardımcılar kullanılarak yapılır.
  3. Düğüm ve bağlantı yapılandırması (Node and link configuration): modeller varsayılan değerlerini ayarlar (örneğin, bir uygulama tarafından gönderilen paketlerin boyutu veya noktadan noktaya bağlantının MTU'su); çoğu zaman bu, öznitelik sistemi kullanılarak yapılır.
  4. Yürütme (Execution): Simülasyon tesisleri olaylar üretir, kullanıcı tarafından talep edilen veriler günlüğe kaydedilir.
  5. Performans analizi (Performance analysis): Simülasyon tamamlandıktan sonra veriler zaman damgalı olay izi olarak kullanılabilir. Bu veriler daha sonra R gibi araçlarla istatistiksel olarak analiz edilerek sonuçlar çıkarılabilir.
  6. Grafiksel Görselleştirme (Graphical Visualization): Bir simülasyonda toplanan ham veya işlenmiş veriler Gnuplot, matplotlib veya XGRAPH gibi araçlar kullanılarak grafik haline getirilebilir.

Ayrıca bakınız

Kaynakça

  1. ^ Henderson, Tom (9 Haziran 2012). "upcoming ns-3.1 release" (E-posta). ns-3 GSoC 2015 students. 27 Mart 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 31 Mayıs 2013. 
  2. ^ Hata: Referans düzgün görüntülenemiyor. Bilgi için belgeleme sayfasına bakınız.
  3. ^ "Publications « ns-3". 22 Şubat 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 30 Ağustos 2012. 
  4. ^ "Planete Project". 14 Nisan 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 27 Eylül 2023. 
  5. ^ "ns-3 Installation Guide" (PDF). 27 Eylül 2023 tarihinde kaynağından (PDF) arşivlendi. 
  6. ^ "User Information - nsnam". 7 Temmuz 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 27 Eylül 2023. 

Dış bağlantılar

İlgili Araştırma Makaleleri

Python, nesne yönelimli, yorumlamalı, birimsel (modüler) ve etkileşimli yüksek seviyeli bir programlama dilidir.

<span class="mw-page-title-main">İnternet iletişim kuralları dizisi</span>

İnternet protokol takımı, bilgisayarlar ve ağ cihazları arasında iletişimi sağlamak amacıyla standart olarak kabul edilmiş kurallar dizisidir. Bu kurallar dizisi temel olarak verinin ağ üzerinden ne şekilde paketleneceğini ve iletilen veride hata olup olmadığının nasıl denetleneceğini belirlemektedir.

<span class="mw-page-title-main">Simülasyon</span> gerçek bir dünya süreci veya sisteminin işletilmesinin zaman üzerinden taklit edilmesi

Simülasyon veya benzetim, teknik olmayan anlamda bir şeyin benzeri veya sahtesi anlamında kullanılır. Teknik anlamda gerçek bir dünya süreci veya sisteminin işletilmesinin zaman üzerinden taklit edilmesidir. Sistem nesneleri arasında tanımlanmış ilişkileri içeren sistem veya süreçlerin bir modelidir.

<span class="mw-page-title-main">Pardus 2008</span>

Pardus 2008, Pardus Linux dağıtımının 27 Haziran 2008 tarihinde çıkan kararlı sürümüdür.

<span class="mw-page-title-main">Unreal Engine</span> video oyunu motoru

Unreal Engine, Epic Games tarafından geliştirilen ve ilk olarak 1998 yılında yayınlanan Unreal isimli birinci şahıs nişancı oyununda kullanılan oyun motoru. Esas olarak birinci şahıs nişancı oyunları için geliştirilmesine karşın, sonraları çeşitli türlerdeki oyunlarda kullanıldı. C++ ile yazılmış kodu sayesinde yüksek derecede taşınabilirliğe sahiptir ve günümüzde birçok oyun geliştirici tarafından kullanılan bir araç haline gelmiştir.

C4 Engine. Terathon Software tarafından Microsoft Windows XP/Vista/7, Apple Mac OS X, Linux ve Sony PlayStation 3 platformları için üç boyutlu oyun, simülasyon ve interaktif uygulamalar üretmek üzere geliştirilmiş, tescilli bir oyun motorudur.

Pisi Linux; PiSi paket yönetim sistemini içeren Pardus 2011 sürümünü taban alan, özgür yazılım topluluğu tarafından geliştirilen, bilgisayar kullanıcılarına kurulum, yapılandırma ve kullanım konusunda büyük kolaylık sağlayan ve onların başlıca masaüstü gereksinimlerini karşılamayı amaçlayan, son kullanıcı odaklı bir GNU/Linux dağıtımıdır. Anka takımı tarafından geliştirilme süreci devam eden Pisi Linux, 10 Temmuz 2015'te 1.2 sürümü yayımlandı. İçerisinde 6000'den fazla güncellenmiş paketi bulunan 1.2 sürümü sonrası ise büyük değişimler getirecek olan 2.1 sürümü ile tüm paketler yeni sürümlerine geçirildi ve birçok hata giderildi, bu sayede Pisi Linux'un hızı ve stabilitesi artırılmış oldu.

Simülasyon yazılımı, matematik formülleri kullanılarak gerçek olayların modellendiği bir süreçtir. Simülasyon ile kullanıcılar gerçeğe en yakın olacak şekilde ürünlerin tasarlanmasını sağlayabilir ve çıktının nasıl olacağını anlayabilirler. Simülasyon yazılımı daha çok oyunlarda kullanılan gerçek zamanlı uygulamalardır. Oyunlar dışında birçok endüstriyel alanda da uygulanmaktadır. Endüstriyel alanlarda sorun yaratacak durumlarda; benzetim sayesinde olağan tehlikelerin önceden anlaşılması ve ne tip sonuçlara yol açabileceği anlaşılır. Örneğin; pilotlar, nükleer güç santralinde çalışan operatörler, kimya santrallerinde çalışan operatörler, kontrol panellerin modelleri gibi insan ve araç gereçlerin süreçte neler yaşayacağına ve ne sorunlarla karşılaşılacağına yönelik fiziksel tehlikeler benzetim sayesinde gerçek zamanlı gibi önceden fark edilebilir.

<span class="mw-page-title-main">Tren simülasyonu</span>

Bir tren simülasyonu, demiryolu taşımacılığı operasyonlarının bilgisayar tabanlı bir simülasyonudur. Bunlar genellikle, hem ticari eğitmenler olarak uygulanan 3B sanal gerçeklik dünyasını hem de kullanıcının sanal dünyanın içine adım atarak etkileşime girmesini sağlayan oyun modlarına sahip tüketici bilgisayar oyun yazılımını modelleyen büyük ve karmaşık yazılım paketleridir. Yakın görüş modellemesi nedeniyle genellikle hızlı tren simülatörü yazılımı genellikle uçuş simülatörü programlarından çok daha karmaşık ve yazılması ve uygulanması zor bir yazılımdır.

Microsoft Windows uygulama programlamasında, OLE Otomasyonu, Microsoft tarafından oluşturulan süreçler arası bir iletişim mekanizmasıdır. Başlangıçta Visual Basic olan komut dosyası dilleri tarafından kullanılması amaçlanan Bileşen Nesne Modeli'nin (COM) bir alt kümesine dayanmaktadır, ancak şimdi Windows'ta birkaç dil tarafından kullanılmaktadır. IDispatch arabirimini uygulamak için tüm otomasyon nesneleri gereklidir. Otomasyon denetleyicileri adı verilen uygulamaların, diğer uygulamalar tarafından dışa aktarılan paylaşılan otomasyon nesnelerine erişebildiği ve bunları değiştirebildiği bir altyapı sağlamaktadır. Uygulamaların birbirini kontrol etmesi için daha eski bir mekanizma olan Dinamik Veri Değişimi'nin (DDE) yerini almaktadır. DDE'de olduğu gibi, OLE Otomasyonunda otomasyon denetleyicisi "istemci"dir ve otomasyon nesnelerini dışa aktaran uygulama "sunucu"dur.

wish, X Pencere Sistemini destekleyen Unix benzeri işletim sistemlerinin yanı sıra macOS, Microsoft Windows, ve Android için kullanılabilen, Tk komutlarıyla genişletilmiş bir Tcl yorumlayıcısıdır. Geliştiricilere, Tk araç setini ve Tcl programlama dilini kullanarak GUI widget'ları oluşturma imkanı sağlar.

<span class="mw-page-title-main">Tk (yazılım)</span>

Tk, birçok programlama dilinde bir grafik kullanıcı arabirimi (GUI) oluşturmak için GUI widget'larının temel öğelerinden oluşan bir kitaplık sağlayan ücretsiz ve açık kaynaklı, çapraz platform bir widget araç takımıdır.

<span class="mw-page-title-main">Ağ simülasyonu</span>

Bilgisayar ağı araştırmalarında, ağ simülasyonu bir yazılım programının gerçek bir ağın davranışını kopyaladığı bir tekniktir. Bu, yönlendiriciler, anahtarlar, düğümler, erişim noktaları, bağlantılar vb. gibi farklı ağ varlıkları arasındaki etkileşimlerin hesaplanmasıyla elde edilir. Çoğu simülatör, durum değişkenlerinin zaman içinde ayrık noktalarda değiştiği sistemlerin modellendiği ayrık olay simülasyonunu kullanır. Ağın ve desteklediği çeşitli uygulama ve hizmetlerin davranışı daha sonra bir test laboratuvarında gözlemlenebilir; ağın/protokollerin farklı koşullar altında nasıl davranacağını değerlendirmek için ortamın çeşitli özellikleri de kontrollü bir şekilde değiştirilebilir.

Ağ emülasyonu gerçek uygulamaların performansını sanal bir ağ üzerinden test etmek için kullanılan bir tekniktir. Bu kavram, sanal trafik modellerinin, ağ modellerinin, kanalların ve protokollerin uygulandığı ağ simülasyonu'ndan farklıdır. Amaç, performansı değerlendirmek, değişimin etkisini tahmin etmek veya başka bir şekilde teknoloji karar verme sürecini optimize etmektir.

Ağ trafiği simülasyonu, telekomünikasyon mühendisliğinde bir iletişim ağının verimliliğini ölçmek için kullanılan bir süreçtir.

<span class="mw-page-title-main">ExtendSim</span>

ExtendSim, ayrık olay, sürekli, ajan tabanlı, ayrık hız ve karışık modlu süreçlerin modellenmesi için bir simülasyon programıdır. Üç ExtendSim paketi bulunmaktadır:

Global Mobile Information System Simulator, kablosuz ve kablolu ağ sistemlerini simüle eden bir ağ protokolü simülasyonu yazılımıdır.

QualNet Scalable Network Technologies, Inc. tarafından sahip olunan ve sağlanan bir test ve simülasyon aracıdır. Ağ simülasyon yazılımı olarak, fiziksel bir iletişim ağının davranışını taklit eden bir planlama, test ve eğitim aracı olarak işlev görür.

Web tabanlı simülasyon, bilgisayar simülasyonu hizmetlerinin World Wide Web üzerinden, özellikle de bir web tarayıcısı aracılığıyla sunulması ve kullanılmasıdır. Web, giderek artan bir şekilde modelleme ve simülasyon uygulamaları sağlamak için elverişli bir ortam olarak görülmekte ve bu nedenle simülasyon topluluğu içinde gelişmekte olan bir araştırma alanıdır.

Bilgisayar ağ yönetimi alanında, pcap ağ trafiğini yakalama için bir API'dir. Bu isim packet capture kelimesinin kısaltması olsa da, API'nin özel ismi bu değildir. Unix benzeri sistemler pcap'i libpcap kütüphanesinde uygular; Windows için, libpcap'in artık desteklenmeyen veya geliştirilmeyen WinPcap adlı bir uyarlaması ve Windows 7 ve sonrası için hala desteklenen Npcap adlı bir uyarlaması vardır.