A Survey on Network Simulators, Emulators, and Testbeds used for Research and Education