使用IP欺骗加载测试TCP

时间:2013-04-11 14:53:14

标签: c# tcp ip load-testing

我正试图想出一种方法来加载测试以下架构:

我们有一个应用服务器,可以从多个服务器上收集数据收集代理的数据。

但是,我们的测试环境只有一台带有代理的服务器,我们希望模拟从发送到Application Server的同一服务器的多个(100)连接。

我已经为代理计算机上的NIS卡分配了一系列广泛的IP,但是我无法找到一种方法来使从机器到应用服务器的每个传出连接使用不同的IP和从而打开一个新的连接。

我知道HTTP协议上的Web测试可以在面对这些问题时轻松使用虚拟用户和IP欺骗工具,但由于代理服务器连接使用TCP - 我找不到任何能够实现此功能的工具。

我还考虑过可能通过代码编辑每个数据包并每次用不同的IP替换它的标头 - 但是这种方法似乎太过于混乱和不切实际,因为它会延迟每个请求太长时间以使负载测试相关。 / p>

欢迎任何想法和解决方案!

提前感谢:)

2 个答案:

答案 0 :(得分:0)

您可以在连接服务器之前使用Socket.Bind设置IP地址。

这里描述:http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.localendpoint(v=vs.100).aspx

答案 1 :(得分:0)

您可以使用winpcap或其.net包装器pcap.Net(http://pcapdotnet.codeplex.com/)来完全控制发送的IP / TCP数据包。