GSoC/GCI Archive
Google Summer of Code 2015

The ns-3 Network Simulator Project

License: GNU General Public License version 2.0 (GPLv2)

Web Page:

Mailing List:

ns-3 (project website) is a discrete-event network simulator, distributed as free open-source software, with an emphasis on networking research and education. Users of ns-3 can construct simulations of computer networks using models of traffic generators, protocols such as TCP/IP, and devices and channels such as WiFi, LTE, or wired links, and analyze or visualize the results. Simulation plays a vital role in the research and education process, because of the ability for simulations to obtain reproducible results (particularly for wireless protocol design), scale to large networks, and study systems that have not yet been implemented. A particular emphasis in ns-3 is the high degree of realism in the models (including frameworks for using real application and kernel code) and integration of the tool with virtual machine environments and testbeds. We believe that these are distinguishing technical characteristics of the tool. ns-3 has been in development since 2005 and has been making regular releases since June 2008 (our last release was ns-3.22 in February 2015). The tool is in wide use; we provide statistics about the project on our web site (under the Overview/Statistics page), but in summary, we have a users mailing list of about 4603 members as of February 2015 (an increase of about 1200 in the past year) averaging roughly 900 posts per month. Our developers' list has 1480 subscribers, and the code base has a total of 175 authors and about 10 active maintainers. ns-3 is operated as an open source project with some financial backing from three NSF grants and funding from the French government (and via help from Google Summer of Code) but with most current contributions coming from interested researchers and students worldwide. We use a GPLv2 licensing model and heavily use mailing lists, and IRC for code springs, but typically not other social media.


  • 802.15.4 realistic MAC and Energy Model The current 802.15.4 MAC implementation in ns-3, lacks sleep features. The radio is assumed to be always active, which is not true for nodes deployed in the field which usually employ some sort of sleep/wake mechanism in order to conserve energy. The goal of this project is to develop a realistic MAC model and link it with the energy model in order to simulate realistic scenarios where a node’s energy can get depleted resulting in changes in the network topology.
  • Carrier Aggregation support for the LTE module 3GPP standardizes, in release R10, the Carrier Aggregation (CA) technology. This consists of the possibility, for a single user equipment (UE), to aggregate Radio Resources belonging to different carriers, in order to have more bandwidth available, and a higher potential throughput. The idea is to improve the current LENA implementation, with CA functionalities, by implementing a sort of “proxy” between the RLC/RRC layer and MAC/Scheduler layers, associated to the multiple carriers.
  • Implementing multipath TCP (MPTCP) in ns3 I have a working version of multipath TCP for ns3.19 that I can't share publicly yet (I can with the ns3 admins). My idea is - during the first 6 weeks - to add more features, refactor a few things so that it can be upstreamed. During the last 4 weeks I would like to implement per node clock to be able to simulate time distribution protocols. This proposition is a follow up of my email:
  • TCP layer refactoring with automated test on RFC-compliance and validation A step-by-step refactoring of the TCP layer, which should lead to a more easy way to test congestion control and RFC compliancy of its state machine. Four steps are needed, and they will be detailed below.