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 to be held on 17-18 June, 2019 in Florence. For a list of all past training sessions, see Training.


Training will be held from 09:00-18:00. Please plan to arrive 15-30 minutes beforehand so we may start at 09:00. Catered lunch will be at 12:30, and coffee at 10:30 and 16:00.

Slides and labs will be posted here as they become available.


Monday training will be divided into four sessions that will cover 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 will introduce 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.


Registration must be made at this site:

Local Information

Local information is available on this page:

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)