我在 Python 上学习网络编程:使用 TCP、UDP、ICMP、ARP 等协议编写客户端-服务器和客户端-客户端软件。
我需要一个工具来模拟具有以下功能的 N 个主机的网络:
轻量级软件,可以创建 N (2, 5, 10, ...) 个主机,每个主机都带有 python 解释器(都在我的电脑上!)。像 Virtualbox 这样的虚拟机似乎太重了,并且对 RAM 的要求令人难以置信。我只需要 python 解释器和网络堆栈支持。
能够配置整个网络质量,例如“丢弃 10% 的数据包”或“使信号延迟达到 500 毫秒”
能够分别为每个主机配置对某些请求的响应。就像“从 5 号主机 ping 到 google.com 应该返回”“无法访问远程网络”,但“从 5 号主机 ping 到 yahoo.com”应该没问题。
当然,我的网络中发生的事情会完整记录下来。
是否有这样的软件或框架(适用于 Windows 7 和 Linux)?