Ağ simülasyonu

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ğ simülatörü
Bir **ağ simülatörü**, bir bilgisayar ağının veya kablosuz iletişim ağının performansını tahmin edebilen bir yazılım programıdır. İletişim ağları, geleneksel analitik yöntemlerin sistem davranışının doğru bir şekilde anlaşılmasını sağlayamayacak kadar karmaşık hale geldiğinden, ağ simülatörleri kullanılmaktadır. Simülatörlerde, bilgisayar ağı cihazlar, bağlantılar, uygulamalar vb. ile modellenir ve ağ performansı raporlanır. Simülatörler, 5G, Nesnelerin İnterneti (IoT), Wireless LANlar, mobil ad hoc ağlar, kablosuz sensör ağlar, araçsal ad hoc ağlar, bilişsel radyo ağları, LTE vb. gibi günümüzde kullanılan en popüler teknolojiler ve ağlar için destekle birlikte gelir.

## Simülasyonlar
Ticari simülatörlerinin çoğu GUI odaklıdır, bazı ağ simülatörleri ise CLI odaklıdır. Ağ modeli/yapılandırması ağı (düğümler, yönlendiriciler, anahtarlar, bağlantılar) ve olayları (veri iletimi, paket hatası, vb.) tanımlar. Çıktı sonuçları ağ düzeyinde metrikleri, bağlantı metriklerini, cihaz metriklerini vb. içerir. Ayrıca, simülasyonlar izleme dosyaları açısından ayrıntılı inceleme de mevcut olacaktır. İzleme dosyaları her paketi, simülasyonda meydana gelen her olayı kaydeder ve analiz için kullanılır. Çoğu ağ simülatörü, bekleyen "olayların" bir listesinin saklandığı ayrık olay simülasyonu kullanır ve bu olaylar sırayla işlenir, bazı olaylar gelecekteki olayları tetikler - örneğin bir paketin bir düğüme varması olayı, bu paketin bir aşağı akış (downstream) düğümüne varması olayını tetikler.

## Ağ emülasyonu
Ağ emülasyonu, kullanıcıların gerçek cihazları ve uygulamaları, canlı bir ağın davranışını taklit edecek şekilde paket akışını değiştiren bir test ağına (simüle edilmiş) sokmasına olanak tanır. Canlı trafik simülatörden geçebilir ve simülasyon içindeki nesnelerden etkilenebilir.

Tipik metodoloji, canlı bir uygulamadan gelen gerçek paketlerin emülasyon sunucusuna (sanal ağın simüle edildiği yer) gönderilmesidir. Gerçek paket bir simülasyon paketine 'modüle' edilir. Simülasyon paketi, kayıp, hata, gecikme, jitter vb. etkileri yaşadıktan sonra gerçek bir pakete demodüle edilir, böylece bu ağ etkileri gerçek pakete aktarılır. Böylece gerçek paket gerçek bir ağ üzerinden akmış gibi olur ancak gerçekte simüle edilmiş ağ üzerinden akmıştır.

Emülasyon (Öykünme), dağıtımdan önce iletişim ağlarını doğrulamak için tasarım aşamasında yaygın olarak kullanılır.

## Ağ simülatörleri listesi
Hem ücretsiz/açık kaynaklı hem de tescilli ağ simülatörleri mevcuttur. Önemli ağ simülatörlerine / emülatörlerine örnekler şunlardır:

* ns simulator
* OPNET (Riverbed)
* NetSim (Tetcos)
* GloMoSim

Bunların tümü açık kaynak kodlu ve düzenlenebilirken, bazıları ticari niteliktedir.

## Ağ simülatörlerinin kullanım alanları

Ağ simülatörleri, aşağıdakiler için uygun maliyetli bir yöntem sağlar;

* 5G-NR kapasitesi, verim ve gecikme analizi
* Ağ Ar-Ge'si (Tüm Ağ Araştırma makalesi'nin %70'inden fazlası bir ağ simülatörüne atıfta bulunur) 
* HF gibi savunma uygulamaları / UHF / VHF Radyo tabanlı MANET Telsizler, Taktik veri bağı vb. 
* IOT, VANET simülasyonları 
* UAV ağı/ sürü iletişim simülasyonu
* Makine Öğrenimi: Ağ parametrelerini optimize etmek için makine öğrenimi algoritmalarını test etme, ağlar üzerinde makine öğrenimi algoritmalarını eğiten sentetik veriler oluşturma
* Eğitim: Çevrimiçi kurslar, Laboratuvar deneyleri ve Ar-Ge Çoğu üniversite, donanım ekipmanı satın almak çok pahalı olduğu için öğretim / Ar-Ge için bir ağ simülatörü kullanır

Çok basitten çok karmaşığa kadar değişen çok çeşitli ağ simülatörleri vardır. Asgari olarak, bir ağ simülatörü kullanıcının aşağıdakileri yapmasını sağlamalıdır

* Ağ üzerindeki düğümleri ve bu düğümler arasındaki bağlantıları belirterek ağ topolojisini modelleme
* Düğümler arasındaki uygulama akışını (trafik) modelleme
* Ağ performans metriklerinin çıktı olarak sağlanması
* Paket akışının görselleştirilmesi
* Teknoloji/protokol değerlendirme ve cihaz tasarımları 
* Detaylı analizler/hata ayıklama için paket/olayların kaydedilmesi

## Ayrıca bakınız
*Ağ emülasyonu
*Trafik üretim modeli

## Kaynakça