bnnetsimulator

BNNetSimulator is a packet-level network simulator to generate datasets for research and analysis.

https://github.com/bnn-upc/bnnetsimulator

Science Score: 52.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
    Organization bnn-upc has institutional domain (bnn.upc.edu)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.7%) to scientific vocabulary
Last synced: 9 months ago · JSON representation ·

Repository

BNNetSimulator is a packet-level network simulator to generate datasets for research and analysis.

Basic Info
  • Host: GitHub
  • Owner: BNN-UPC
  • Language: Jupyter Notebook
  • Default Branch: main
  • Size: 24.4 KB
Statistics
  • Stars: 14
  • Watchers: 2
  • Forks: 5
  • Open Issues: 2
  • Releases: 0
Created over 3 years ago · Last pushed over 2 years ago
Metadata Files
Readme Citation

README.md

BNNetSimulator

BNNetSimulator is a packet-level network simulator that is built on the OMNeT++ framework. It allows users to easily generate network datasets for research and analysis. With BNNetSimulator, you can define a network topology with various node and link features, specify a src-dst routing, and set a traffic matrix. The simulator then provides performance metrics such as mean delay, jitter, and packet loss per path, as well as link utilization and QoS queue statistics. With the datanetAPI tool, you can easily process and analyze the generated dataset.

Parameters

BNNetSimulator offers a variety of parameters that allow you to customize the simulation to your specific needs. You can define several characteristics for each node in the topology, including:

  • The scheduling policy used to serve packets and the buffer size of the queues

  • The capacities of the links

  • The src-dst routing

The simulator also supports different types of traffic profiles, including:

  • Poisson distribution

  • CBR (Constant Bit Rate) distribution

  • ON-OFF distribution

  • Generic distribution generated with a python script

Additionally, you can define the packet size distribution as a list of packet sizes and their probabilities or through a generic python script. For more information on the available parameters and how to use them, please refer to the inputparametersglossary.ipynb document.

The BNNetSimulator is available as a pre-built docker image, which can be found at https://hub.docker.com/r/bnnupc/bnnetsimulator. To use it, you can simply follow the code examples provided in the Jupyter Notebooks of the accompanying repository.

The repository includes two main Jupyter Notebooks that will guide you through the process of using the simulator:

  • quickstart.ipynb: This notebook provides a step-by-step introduction to the process of generating your first dataset using the BNNetSimulator. It covers all the necessary steps and provides clear examples to help you get started.

  • inputparametersglossary.ipynb: This notebook contains detailed descriptions of the various parameters that can be used to build a dataset. It provides information on what each parameter does, how to use it, and how it affects the resulting dataset.

Both the quickstart.ipynb and inputparametersglossary.ipynb are a great resources for someone who wants to get started using BNNetSimulator.

Cite the simulator

Please, if you use the simulator, don't forget to use the following citation:

Plain text:

Miquel Ferriol-Galmés, Jordi Paillisse, José Suárez-Varela, Krzysztof Rusek, Shihan Xiao, Xiang Shi, Xiangle Cheng, Pere Barlet-Ros, and Albert Cabellos-Aparicio. (2022). RouteNet-Fermi: Network Modeling with Graph Neural Networks. arXiv preprint arXiv:2212.12070.

BibTeX:

```

@article{ferriol2022routenet,

title={RouteNet-Fermi: Network Modeling with Graph Neural Networks},

author={Ferriol-Galm{\'e}s, Miquel and Paillisse, Jordi and Su{\'a}rez-Varela, Jos{\'e} and Rusek, Krzysztof and Xiao, Shihan and Shi, Xiang and Cheng, Xiangle and Barlet-Ros, Pere and Cabellos-Aparicio, Albert},

journal={arXiv preprint arXiv:2212.12070},

year={2022}

}

```

Setting up the docker enviroment

To use the BNNetSimulator, you will need to have either Docker Engine or Docker Desktop installed on your machine. Both of these tools provide a way to run the BNNetSimulator as a Docker container, which makes it easy to set up and use.

Here are the links to the instructions for installing Docker on your machine, depending on your operating system:

  • Docker Desktop: https://docs.docker.com/desktop/

  • Docker Engine: https://docs.docker.com/engine/

Make sure to follow the instructions for your specific operating system, and have the software installed before you try to use the BNNetSimulator. And in case you are having some troubles, you can always refer to the official documentation.

Owner

  • Name: Barcelona Neural Networking Center
  • Login: BNN-UPC
  • Kind: organization
  • Location: Barcelona

BNN has been created with the main goals of carrying fundamental research in the field of Graph Neural Network applied to Computer Networks

Citation (CITATION.cff)

cff-version: 1.2.0
title: >-
  RouteNet-Fermi: Network Modeling with Graph Neural
  Networks
message: >-
  If you use this software, please cite it using the
  metadata from this file.
authors:
  - given-names: Miquel
    family-names: Ferriol-Galmés
    email: miquel.ferriol@upc.edu
    affiliation: Universitat Politècnica de Catalunya
  - given-names: Jordi
    family-names: Paillisse
    affiliation: Universitat Politècnica de Catalunya
  - given-names: José
    family-names: Suárez-Varela
    affiliation: Universitat Politècnica de Catalunya
  - given-names: Krzysztof
    family-names: Rusek
    affiliation: AGH University of Science and Technology
  - given-names: Shihan
    family-names: Xiao
    affiliation: 'Huawei Technologies Co., Ltd.'
  - affiliation: 'Huawei Technologies Co., Ltd.'
    given-names: Xiang
    family-names: Shi
  - given-names: Xiangle
    family-names: Cheng
    affiliation: 'Huawei Technologies Co., Ltd.'
  - given-names: Pere
    family-names: Barlet-Ros
    affiliation: Universitat Politècnica de Catalunya
  - given-names: Albert
    family-names: Cabellos-Aparicio
    affiliation: Universitat Politècnica de Catalunya
abstract: >-
  Network models are an essential block of modern
  networks. For example, they are widely used in
  network planning and optimization. However, as
  networks increase in scale and complexity, some
  models present limitations, such as the assumption
  of markovian traffic in queuing theory models, or
  the high computational cost of network simulators.
  Recent advances in machine learning, such as Graph
  Neural Networks (GNN), are enabling a new
  generation of network models that are data-driven
  and can learn complex non-linear behaviors. In this
  paper, we present RouteNet-Fermi, a custom GNN
  model that shares the same goals as queuing theory,
  while being considerably more accurate in the
  presence of realistic traffic models. The proposed
  model predicts accurately the delay, jitter, and
  loss in networks. We have tested RouteNet-Fermi in
  networks of increasing size (up to 300 nodes),
  including samples with mixed traffic profiles --
  e.g., with complex non-markovian models -- and
  arbitrary routing and queue scheduling
  configurations. Our experimental results show that
  RouteNet-Fermi achieves similar accuracy as
  computationally-expensive packet-level simulators
  and it is able to accurately scale to large
  networks. For example, the model produces delay
  estimates with a mean relative error of 6.24% when
  applied to a test dataset with 1,000 samples,
  including network topologies one order of magnitude
  larger than those seen during training.
doi: https://doi.org/10.48550/arXiv.2212.12070

GitHub Events

Total
  • Watch event: 3
  • Fork event: 1
Last Year
  • Watch event: 3
  • Fork event: 1