如何阻止我自己的 udp 数据包淹没我自己的路由器

How to stop my own udp packets flooding my own router

我想我知道答案,答案是 'no I cannot'。但万一我错过了一个技巧..

我有一个网络应用程序。我创建了一个字节数组,比如 2K 字节,每秒将其中的 10 个发送到我的 signalR Hub 主机。

我发现如果我的 internet/LAN 速度很慢,udp 数据包似乎会聚成一团,并在发送后大约 3 分钟被我的客户收到。

现在我知道 Udp 通信是基于 'fire-and-forget' 的,而 tcp 通信会向我发送一个 ACK​​,让我判断何时发送下一个数据包。

但我使用 udp 数据包来提高速度。如果数据包丢失或什至以错误的顺序发送,我不会感到困扰。我只是想避免滞后。

我是用 C# 写的,但我猜它可以是任何语言。我只是在进行任何最佳实践之后。我认为我的代码不相关。但是,如果需要,我当然会 post 把它放在这里。

如果有 'queue'.

,我希望发生的是 'purge/drop' 任何数据包

欣赏的人不妨问一下'why do I not use TCP'。这是一个很长的答案和一个不同的问题。

曾经有一个 ICMP 源抑制,上游设备会向主机发送“源抑制”以告诉它放慢速度。这在前一段时间已被弃用,但与您正在寻找的东西相似。

做到这一点的唯一方法是通过一些带外方式(例如 SNMP)独立监控您的路由器带宽和内部队列,如果达到某些阈值,则停止发送数据包。