繁体   English   中英

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

[英]How to stop my own udp packets flooding my own router

我想我知道答案,而答案是“不,我不能”。 但万一我错过了一个技巧..

我有一个 web 应用程序。 我创建了一个 2K 字节的字节数组,并每秒将其中的 10 个字节发送到我的 signalR 集线器主机。

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

现在我知道 Udp 通信是基于“即发即弃”的,并且 tcp 通信会向我发送一个 ACK,让我判断何时发送下一个数据包。

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

我已经用 C# 写了这个,但我猜它可能是任何语言。 我只是在任何最佳实践之后。 我认为我的代码不相关。 但是,如果需要,我当然会把它贴在这里。

如果有“队列”,我更喜欢“清除/丢弃”任何数据包。

我很感激人们可能想问'我为什么不使用 TCP'。 这是一个很长的答案和一个不同的问题。

曾经有一个 ICMP Source Quench,上游设备会向主机发送“source quenches”,告诉它减速。 这在一段时间前已被弃用,但与您正在寻找的类似。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM