NeST: Network Stack TesterΒΆ
NeST is a python3 package aiding researchers and beginners alike in emulating real-world networks. Here is a small peak into the APIs NeST provides:
>>> # Create two nodes, emulating two network devices
>>> host1 = Node("host1")
>>> host2 = Node("host2")
>>>
>>> # Connect the above nodes, with eth1 and eth2 being
>>> # respective interfaces of host1 and host2
>>> eth1, eth2 = connect(host1, host2)
>>>
>>> # Assign addresses to the above two interfaces
>>> eth1.set_address("192.168.1.1/24")
>>> eth2.set_address("192.168.1.2/24")
>>>
>>> # Ping from host1 to host2!
>>> host1.ping(eth2.address)
=== PING from host1 to 192.168.1.2 ===
PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.060 ms
64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.095 ms
64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.056 ms
64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=0.083 ms
64 bytes from 192.168.1.2: icmp_seq=5 ttl=64 time=0.063 ms
--- 192.168.1.2 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4053ms
rtt min/avg/max/mdev = 0.056/0.071/0.095/0.015 ms
NeST provides a set of APIs for:
Creation of network testbed
Configuration of network testbed
Setup network experiment on the testbed
Collection and Visualization of the data from the network experiment
NeST is officially supported for Python 3.6+.