我们有 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/