如何阻止我自己的 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)独立监控您的路由器带宽和内部队列,如果达到某些阈值,则停止发送数据包。
我想我知道答案,答案是 '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)独立监控您的路由器带宽和内部队列,如果达到某些阈值,则停止发送数据包。