This chapter explores an early and important aspect of network systems development—network modeling. Specifically, it addresses the simulations and emulations of networks with Python-based projects.
First we will look into network simulations that can model very large systems within a single computer. We will discuss ns-3, a network simulator originally written in C++ with Python bindings, making it easy to simulate networks in Python.
The chapter goes on to network emulation that indeed models resources one-to-one. It discusses Mininet, the most popular network emulator developed in Python. We will further discuss the extensions to Mininet, such as MaxiNet and Mininet-WiFi. The chapter concludes with how to extend existing simulators and emulators and to build a cloud network leveraging these platforms.