C# 延迟传入网络连接
我有一个在特定端口侦听的服务器应用程序Foo和一个连接到Foo的客户端应用程序条(两者都是.NET应用程序) 一切正常。到目前为止还好吗 但是,当连接速度变慢或需要很长时间才能收到Foo响应时,会发生什么情况呢?我必须测试一下 我的问题是,我如何模拟这样的减速 一般来说问题不大(有一些免费的工具),但是Foo和Bar都是在生产机器上运行的(是的,有一些是在生产机器上开发的。我知道,这很糟糕,但相信我,这不是我的决定)。所以我不能仅仅使用一个工具来限制网络适配器的整个带宽C# 延迟传入网络连接,c#,.net,testing,networking,C#,.net,Testing,Networking,我有一个在特定端口侦听的服务器应用程序Foo和一个连接到Foo的客户端应用程序条(两者都是.NET应用程序) 一切正常。到目前为止还好吗 但是,当连接速度变慢或需要很长时间才能收到Foo响应时,会发生什么情况呢?我必须测试一下 我的问题是,我如何模拟这样的减速 一般来说问题不大(有一些免费的工具),但是Foo和Bar都是在生产机器上运行的(是的,有一些是在生产机器上开发的。我知道,这很糟糕,但相信我,这不是我的决定)。所以我不能仅仅使用一个工具来限制网络适配器的整个带宽 是否有一个工具可以限制带
是否有一个工具可以限制带宽或延迟特定端口的连接?有没有可能在.NET/C中实现这一点?这样我就可以编写适当的单元/集成测试了 您可以在代码中加入sleep()命令来降低速度,但我认为这不是一个好主意
老实说,这取决于您的网络设置,我的建议是执行一些基于QOS的流量整形或类似操作。您可以在代码中加入sleep()命令来降低速度,但我认为这不是一个好主意
老实说,这实际上取决于您的网络设置,我的建议是进行一些基于QOS的流量整形或类似操作。这个问题基于一个预先存在的假设,即应用程序的典型使用将通过慢速链路。这是一个有效的假设吗 也许你应该问以下问题:
线程进行“传递”。根据您选择的某些配置文件进行睡眠。这可以合理地模拟脆弱的TCP连接,但有点不科学(TCP后退算法有点毛茸茸,难以精确模拟)
这个问题基于一个预先存在的假设,即应用程序的典型使用将通过慢速链接进行。这是一个有效的假设吗 也许你应该问以下问题:
线程进行“传递”。根据您选择的某些配置文件进行睡眠。这可以合理地模拟脆弱的TCP连接,但有点不科学(TCP后退算法有点毛茸茸,难以精确模拟)
我用过测试这种东西。有些工具甚至可以让你模拟数据包丢失。我曾用它来测试这类东西。有些工具甚至可以让你模拟数据包丢失。在我的工作中,我有时不得不在慢速/不可靠的链路上测试传输代码。我发现最好的免费方式是在FreeBSD中使用dummynet模块。我设置了一些虚拟机,它们之间有一个freebsd框作为透明的桥梁。我使用dummynet来搜索通过网桥的流量,以模拟我想要的任何延迟和数据包丢失
不久前,我在我的博客上写了一篇文章,标题是。在VMWare Workstation或其他虚拟化产品中,只要您可以控制网络接口的操作方式,它也应该是可行的。在我的工作中,有时我必须通过缓慢/不可靠的链接测试传输代码。我发现最好的免费方式是在FreeBSD中使用dummynet模块。我设置了一些虚拟机,它们之间有一个freebsd框作为透明的桥梁。我使用dummynet来搜索通过网桥的流量,以模拟我需要的延迟和数据包丢失