首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何对UDP协议进行拥塞控制?

如何对UDP协议进行拥塞控制?
EN

Stack Overflow用户
提问于 2011-12-31 04:25:44
回答 5查看 25.7K关注 0票数 12

我有一个带有多个发送器/接收器的自定义UDP协议,旨在尽可能快地发送大文件。它基于客户端/服务器。

如何检测LAN上的拥塞以减慢发送UDP数据包的速率?

编辑:请不要评论UDP的使用是否合适。此协议使用UDP,但在数据包到达时将其重组为完整文件。

换句话说:拥塞控制算法是如何工作的,如何检测拥塞?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-12-31 04:37:51

这是假设您必须使用UDP (TCP将是首选)。

在应用程序内部,网络拥塞的唯一指示是IP数据包的丢失。根据您使用协议的方式,您可能想要对发出的每个数据报进行编号,如果接收方发现它丢失了一些(或使其顺序混乱),则向发送方发送一条(或多条)消息,以指示存在IP数据包丢失并减慢速度。

有一种称为RTP (实时传输协议)的协议,用于实时流应用中。

RTP运行在UDP和RTCP(实时传输控制协议)上,与RTP一起工作,为QoS(服务质量)提供测量,如分组丢失、延迟、抖动等,以报告回发送器,以便它知道何时放慢或改变编解码器。

并不是说你可以使用RTP,但看看它是如何工作的可能会有所帮助。

票数 15
EN

Stack Overflow用户

发布于 2011-12-31 05:31:29

延迟是检测拥塞的好方法。如果您的延迟开始增加,那么您可能应该放慢速度。丢失的数据包相当于等待时间=无穷大。但是你永远不能确定一个包是否丢失了,或者只是非常慢,所以你应该有一个超时来“检测”丢失的包。

票数 3
EN

Stack Overflow用户

发布于 2012-01-11 01:31:44

流量控制是一个固有的难题,因为您真正知道的是发送数据包和接收数据包的时间。延迟、损失甚至速度等都是您必须计算和解释的统计数据。

下面的文章将深入讨论这些统计数据及其意义:DEI Tech Note 0021: Loss, Latency, and Speed

找到一个好的解决方案一直是许多研究和商业努力的主题。不同的算法(TCPUDTMultipurpose Transaction Protocol等)使用不同的方法和做出不同的假设,都试图根据非常稀疏的数据找出网络中正在发生的事情。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8683722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档