NS3 is an open source discrete event network simulator for networking research and education. It is written in C++ and supports Python scripting. It simulates networking by scheduling discrete events to occur at specific simulation times. NS3 models nodes, net devices, channels, internet stacks, routing, mobility, and applications. Everything in NS3 is modeled as an object with attributes. Scripts are used to configure simulations by creating nodes and network components, installing protocols, and running applications over time.