From Nsnam
Jump to: navigation, search

Main Page - Current Development - Developer FAQ - Tools - Related Projects - Project Ideas - Summer Projects

Installation - Troubleshooting - User FAQ - HOWTOs - Samples - Models - Education - Contributed Code - Papers

This is the wiki page for the ns-3 training sessions held on 17-18 June, 2019 in Florence. For a list of all past training sessions, see Training.


Video recordings of all sessions are available at Vimeo



Monday training was divided into four sessions that covered the basics of ns-3, setting the stage for some more detailed coverage of specific models in the following day.

Session 1 slides: pdf,pptx

Session 2 slides: pdf,pptx

Session 3 slides: pdf,pptx

Queue experiment: exercise,solution


Session 1: TCP

Survey the available TCP models for ns-3 and walk through an example program that examines TCP performance over a link with variable bandwidth, delay, and packet error rate.

TCP session slides: pdf,pptx

Bake/DCE slides:

See below for previous ns-3 training video on DCE by a DCE maintainer.

Session 2: Wi-Fi (S. Deronne)

Slides: pdf

Session 3: LTE (Z. Ali)

Zoraze Ali will lead an introduction of the LTE module by walking through the execution and trace output of several LTE example programs (see handout below).

Slides: pdf

Handout: LTE hands-on tutorial

Session 4: Sensor networks (T. Pecorella and D. Magrin)

Tommaso Pecorella and Davide Magrin introduced the sensor network-related models available for ns-3.


  • Tommaso's slides: pptx
  • Davide's slides: pdf
  • Davide's demo: pdf


More detailed information is available in this document, but in summary, to obtain and build the training code:

1) Make sure you have 'git', 'mercurial', 'python', and a C++ compiler installed (g++ or clang++)

2) Download and build as follows:

 $ git clone -b training
 $ cd ns-3-allinone
 $ ./ -b training
 $ ./ -- --enable-examples --enable-tests
 $ cd ns-3-dev

The arguments passed to ./ (--enable-examples --enable-tests) are separated by two dash characters '--'; this ensures that those options are passed on to the Waf build system.

After the above, you should have a working ns-3 installation (debug build) that is in sync with a very recent changeset of ns-3-dev. You can check it by running some of the tutorial programs:

 $ ./waf --run first

To update the code at a future date, you can perform a 'git pull' while in ns-3-dev.

Other utilities needed

We will be using gnuplot and matplotlib in some scripts.

We have shown other extension in the course of presenting the material. Please see the Installation page for information about extra packages that are needed for installing dependencies for PyViz, tcpdump, netanim, and DCE.

Supplementary training videos

Please see the older training videos from 2016 and earlier linked from this page.

  • 2016 session on large-scale, distributed simulations with ns-3 (instructor: Peter Barnes); (slides, video)
  • 2014 ns-3 tracing tutorial from Walid Younes: (slides, video)
  • 2015 presentation on DCE (instructor: Hajime Tazaki): (slides, video)