performance - 协商移动应用程序的流量速度 - 算法?

标签 performance algorithm statistics traffic

我们有 2 台设备 - iPad A 和 iPad B。两者都使用相同的应用程序来发送音频/视频数据。

有时设备彼此相距很远,流量通过互联网而不是本地网络。

那样的话,我们就不能保证两端的网速一样了。一台设备可以发送 512Kb/s 的速度,另一台设备可能少 5 倍。

问题是——

是否可以实时测量两个设备之间的流量并在需要时扩大/缩小规模。例如,如果我知道设备 A 在这个给定时刻只有 256kb/s 的传入连接,那么设备 B 应该自动从 1mb/s 降低到 256kb/s

目前我们实现的解决方案是通过识别丢失的数据包来检测流量/速度下降。但这并不完美。

也许您读过一些东西或有一个想法?

提前致谢, 德米特里

最佳答案

如果您使用 TCP作为您的网络层 - 协议(protocol)已经在其 flow control 中为您完成了.该协议(protocol)还确保数据包将到达目的地1

如果您出于某种原因不使用 TCP,您可以遵循协议(protocol)使用的想法 - 使用其滑动窗口(维基百科文章描述了这个想法的概念)。

但是,由于您可能需要可靠的连接 - 并且您还希望因此确保流量速度 - 我建议使用现成的解决方案并选择 TCP 作为您的网络协议(protocol)。


(1) 达到一定限度,经过多次失败的试验后,包裹将被丢弃 - 但据我所知这种情况很少发生。

关于performance - 协商移动应用程序的流量速度 - 算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13264027/

相关文章:

r - 蒙特卡罗积分的错误答案

java - 电脑socket的速度是120MB/s,正常吗?

javascript - 操作 DOM 子项的有效方法

algorithm - 不同解析算法之间的运行时差异是什么?

machine-learning - 马尔可夫链蒙特卡罗,多元伯努利分布的建议分布?

algorithm - 哪类算法可以减少连续输入流中的误差范围?

MATLAB - 'webread' 由于内容类型检查而变慢?

performance - 我应该在每个 http 请求上调用 template.ParseFiles(...) 还是只从主函数调用一次?

python - 在 Google App Engine 中使用 python 进行文本预测的建议解决方案是什么?

algorithm - 立方(洪水)填充