Network simulation involves using software to model the performance of a computer network by analyzing relationships between network components like links, switches, routers and nodes. A network simulator specifically predicts network performance by creating a virtual model of the network that can be manipulated to evaluate how the network would perform under different conditions. A network emulator takes the additional step of allowing real applications to run over the virtual network to assess performance and optimize decision making. Common open-source network simulators include NS-2, NS-3, Netkit and Marionnet, while commercial options include OPNET and QualNet. NS-3 is currently one of the best network simulators as it provides an open-source platform for modeling wired, wireless and mobile networks along with extensive