gpt4 book ai didi

c# - 延迟传入网络连接

转载 作者:行者123 更新时间:2023-11-28 21:03:22 25 4
gpt4 key购买 nike

我有一个在特定端口监听的服务器应用程序 Foo 和一个连接到 Foo 的客户端应用程序 Bar(两者都是 .NET 应用程序)。

一切正常。到目前为止,还好吗?

但是,当连接变慢或 Foo 响应需要很长时间时,何时 Bar 会发生什么情况?我必须测试它。

我的问题是,如何模拟这种减速?

通常不是什么大问题(那里有一些免费工具),但是 Foo 和 Bar 都在生产机器上运行(是的,它们是在生产机器上开发的。我知道,这很糟糕,但相信我,那是不是我的决定)。所以我不能只使用一个工具来限制网络适配器的整个带宽。

有没有可以限制带宽或延迟特定端口连接的工具?是否有可能在 .NET/C# 中实现这一点,以便我可以编写适当的单元/集成测试?

最佳答案

这个问题是基于一个预先存在的假设——您的应用程序的典型使用将通过慢速链接进行。这是一个有效的假设吗?

也许你应该问以下问题:

  1. 这是一个 TCP 连接,旨在通过非常慢的介质(例如拨号)运行吗?

  2. 您能否量化应用程序成功所需的最低可接受吞吐量?

  3. 这种连接是否属于高度交互类型(在这种情况下,延迟成为一个问题,而不仅仅是带宽)?

是的,我质疑你问题中隐含的假设。

假设您已经回答了上述问题,因此您对应用程序的指标和成功标准非常满意,并且您仍然认为您需要某种压力测试来证明一切,那么有有几种方法。

  1. 使用工具模拟“慢速连接”。我知道 Linux 流量控制的东西非常先进,几乎可以模拟任何东西(参见 LARTC)——如果你真的想变得灵活,然后将 Linux 虚拟机设置为路由器并将你的 PC 的默认路由设置为它。可能有无数功能较弱的 Windows 工具可以执行类似类型的操作。

  2. 编写一个接受 TCP 连接的自定义代理应用程序,并根据您选择的某些配置文件使用自定义 Thread.Sleep 进行“传递”。这可以很好地模拟不稳定的 TCP 连接,但有点不科学(TCP 退避算法有点复杂,难以准确模拟)。

关于c# - 延迟传入网络连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1237986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com