Saturday 16 March 2013

NS3

NS3

        Work on ns-3 began in the 2004-05 timeframe. A team led by Tom Henderson (University of Washington), and also including George Riley (Georgia Tech), Sally Floyd (International Computer Science Institute), and Sumit Roy (University of Washington), applied for and received funding from the U.S. National Science Foundation (NSF) to build a replacement for ns-2, called ns-3. Around the same time, the Planete research team at INRIA Sophia Antipolis, including principally Mathieu Lacage and Walid Dabbous, began to explore a replacement for ns-2, with an initial emphasis on IEEE 802.11 Wi-Fi models. Lacage's initial simulator was named Yet Another Network Simulator (yans).

             The two efforts combined, and discussions on the design of ns-3 started on the ns-developers mailing list in February 2005. Specifically, on February 22, 2005, Tom Henderson made a post on ns-developers mailing list saying We intend to have some discussions on how some of ns-2 might be either refactored or forked as part of a future development effort (in parallel, for now, with maintenance of the existing code tree). Some of the main goals included building better support for network emulation and reuse of implementation code, to better integrate the tool with testbed-based research. In the process of developing ns-3, it was decided to abandon backward-compatibility with ns-2, mainly due to the high maintenance overhead that would have resulted. The new simulator would be written from scratch, using the C++ programming language.
Development of ns-3 began on July 1, 2006.The software core was largely written by Mathieu Lacage, borrowing also from the yans simulator, the Georgia Tech Network Simulator (GTNetS) built by George Riley, and ns-2. A framework for generating Python bindings (pybindgen) and use of the Waf build system were contributed by Gustavo Carneiro.
The first release, ns-3.1 was made in June 2008, and afterwards the project continued making quarterly software releases, and more recently has moved to three releases per year. ns-3 made its fifteenth release (ns-3.15) in the third quarter of 2012.
Current status of the three versions is:
  • ns-1 is no longer developed nor maintained,
  • ns-2 is only maintained, and
  • ns-3 is actively developed.

Design

         ns-3 is built using C++ and Python and scripting is available with both languages. The ns-3 library is wrapped to python thanks to the pybindgen library which delegates the parsing of the ns-3 C++ headers to gccxml and pygccxml to generate automatically the corresponding C++ binding glue. These automatically-generated C++ files are finally compiled into the ns-3 python module to allow users to interact with the C++ ns-3 models and core through python scripts.

No comments:

Post a Comment