【问题标题】:The Round Trip Time of iOS MultipeerConnectivity is very unstableiOS Multipeer Connectivity 的往返时间非常不稳定
【发布时间】:2022-04-29 16:41:46
【问题描述】:

我正在使用带有 2 部 iPhone 的 iOS MultipeerConnectivity 网络做一个项目。在测量往返时间(RTT)时,我发现 RTT 非常不稳定。

我在代码中所做的是,我从设备 A 向设备 B 发送 ping 消息,并在设备 A 上记录当前系统正常运行时间 ([[NSProcessInfo processInfo] systemUptime])。当设备 B 收到 ping 消息时,它立即发送 pong 消息回到设备A。当设备A收到pong消息时,RTT的计算公式为

RTT = (current system uptime - previously recorded system uptime) * 1000

我每 2 秒从设备 A 向设备 B 发送一次 ping 消息,得到以下 RTT 结果:

Current Rtt 8.79170834377874
Current Rtt 156.932708341628
Current Rtt 251.297625000007
Current Rtt 3.99058334005531
Current Rtt 6.2492500001099
Current Rtt 5.35900000249967
Current Rtt 96.0188750032103
Current Rtt 190.877625005669
Current Rtt 291.066874997341
Current Rtt 7.09629166522063
Current Rtt 6.8734583328478
Current Rtt 43.4346249967348
Current Rtt 227.179375011474
Current Rtt 235.792583334842
Current Rtt 336.144541666727
Current Rtt 10.1862916635582
Current Rtt 14.6641249884851
Current Rtt 100.17424999387
Current Rtt 194.973624995328
Current Rtt 294.071500000427
Current Rtt 5.01749999239109
Current Rtt 5.53570833289996
Current Rtt 65.7211666693911
Current Rtt 159.985583333764
Current Rtt 253.625583325629
Current Rtt 7.48362501326483
Current Rtt 4.94183332193643
Current Rtt 20.4326250095619
Current Rtt 122.555875001126
Current Rtt 214.03287499561
Current Rtt 296.639208332635
Current Rtt 6.16570832789876
Current Rtt 5.21995832968969
Current Rtt 61.9622916710796

您可能已经注意到这种模式,它是一个循环!一开始,RTT 非常低(大约 5 毫秒),这很好。但在很短的时间(约5秒)后,逐渐增加,最终达到300毫秒左右的峰值。然后它立即下降到 5 ms 左右,循环再次重复。我没有在这两个设备之间发送任何其他消息,只传输了 ping pong 消息。

这对我来说很奇怪,因为它稳定不稳定......这应该是因为 iOS MultipeerConnectivity 的性质而发生的吗?还是我做错了什么导致了这种情况?

这是否可以使 iOS MultipeerConnectivity 网络稳定并具有低 RTT(大约 5 毫秒)?非常感谢!

【问题讨论】:

  • 这可能取决于连接到两个对等点的技术。如果他们只是简单地连接到同一个 wifi 网络,我会期望一致的往返时间。如果它与蓝牙或点对点 Wifi 连接,则需要共享无线电;特别是后者。 wifi 无线电在点对点模式之间切换并返回到您的 wifi 连接
  • @Paulw11 是的,我在多种情况下测试了它,比如两个设备在同一个wifi下,两个设备在不同的wifi下,根本没有wifi。但是即使他们在同一个wifi下,RTT仍然不稳定。我可以理解RTT是否总是很高,但是我不理解这种重复的模式......

标签: ios networking multipeer-connectivity


【解决方案1】:

我认为 MultipeerConnectivity 的主要目的是传输大文件,而不是稳定的低延迟通信。因此,MultipeerConnectivity 可能不适合需要稳定和低延迟的本地点对点游戏。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-24
    • 2012-10-12
    • 2015-07-18
    相关资源
    最近更新 更多