模拟网络到特定进程

时间:2009-08-28 06:24:11

标签: windows testing networking process tcptrace-pocketsoap

我正在尝试模拟一个进程的服务器连接断开而另一个服务器的连接已启动的情况。因为我需要另一个进程连接才能保持正常状态,所以在我的情况下拉网线是行不通的。

这种工作有什么工具吗?我在Windows上。谢谢!

3 个答案:

答案 0 :(得分:3)

有几个层可以模拟这个。最简单的是,如果您的两个服务器侦听两个不同的TCP端口。在这种情况下,您可以运行两个tcp代理,并在想要模拟故障时停止/暂停一个代理。对于Windows,我建议使用tcpTrace来执行此操作。

另一种选择是将两台服务器绑定到两个虚拟网卡,这两个虚拟网桥桥接到物理网卡。当然,如果您有两个物理网卡,则可以将每个服务器进程绑定到不同的物理网卡。

在较低级别,您可以运行WAN模拟器。大多数模拟器允许您损害特定类型的流量或特定端口。一个这样的模拟器是Packetstorm

我建议的另一种方法是将调试器附加到一个进程,并使用调试器暂停进程上的所有线程。通常,进程不会消亡,但会陷入垃圾回收或循环中。由于套接字没有关闭,许多“高可用性”解决方案不会自动进行故障转移。

答案 1 :(得分:2)

一种方法是mock用于测试目的的相关网络连接代码。在这种情况下,您可能希望模拟它返回连接断开时的通常情况。

答案 2 :(得分:0)

如果你可以在你的机器上使用睡眠/休眠模式,那么一个穷人的方法:

  • 在Windows防火墙中设置出站规则以禁止连接特定程序。
  • 已连接的插座保持连接:将机器暂时置于睡眠/休眠状态,以强制断开插座。
  • 系统恢复后,程序无法建立新连接。
  • 一旦禁用防火墙规则,就可以实现新连接。

请注意,它不会模拟网络中断,因为每个连接都会因权限错误而立即失败。但它阻止了进程建立连接。