C# 使用IP欺骗对TCP进行负载测试

C# 使用IP欺骗对TCP进行负载测试,c#,tcp,ip,load-testing,C#,Tcp,Ip,Load Testing,我正试图找到一种方法来对以下体系结构进行负载测试: 我们有一个应用服务器,它接收来自多个服务器的数据,这些服务器上有数据收集代理 但是,我们的测试环境只有一台带有代理的服务器,我们希望模拟从同一台服务器到应用服务器的多个100连接 我已经为代理计算机上的NIS卡分配了大量开放的IP,但我无法找到一种方法,使从计算机到应用服务器的每个传出连接使用不同的IP,从而打开一个新连接 我知道,面对这个问题时,HTTP协议上的web测试可以轻松地使用虚拟用户和IP欺骗工具,但由于代理服务器连接使用TCP,我

我正试图找到一种方法来对以下体系结构进行负载测试:

我们有一个应用服务器,它接收来自多个服务器的数据,这些服务器上有数据收集代理

但是,我们的测试环境只有一台带有代理的服务器,我们希望模拟从同一台服务器到应用服务器的多个100连接

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

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

我还考虑过可能通过代码编辑每个数据包,并每次用不同的IP替换它的报头——但这种方法似乎过于复杂且不切实际,因为它会将每个请求延迟太长时间,使负载测试变得相关

欢迎提出任何想法和解决方案


提前感谢:

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


此处描述:

您可以使用winpcap或其.net包装器pcap.net来完全控制发送的IP/TCP数据包。

由于某些特殊原因,它不会接受此方法作为有效方法,因为他在system.net.sockets文件夹中找不到它。这是Socket类中的一个方法我在我的工作中遇到的一个有趣的可能解决方案研究是使用NAT。但是,NAT通常用于一对一或一对多解决方案,因此它只能将单个IP或多个不同的本地IP转换为一个全局IP。我们在这里寻找的是一种将单个本地IP转换为多个全球IP的方法。这里有人熟悉一对多NAT格式吗?谷歌恐怕没有什么帮助。