iOS Multipeer Connectivity 的往返时间非常不稳定

The Round Trip Time of iOS MultipeerConnectivity is very unstable

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

我在代码中所做的是,我从设备 A 向设备 B 发送一个 ping 消息,并在设备 A 上记录当前系统正常运行时间 ([[NSProcessInfo processInfo] systemUptime])。当设备 B 收到 ping 消息时,它立即向设备A发送一个pong消息。当设备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 毫秒左右,然后循环再次重复。我没有在这两个设备之间发送任何其他消息,只传输乒乓消息。

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

是否有可能使 iOS MultipeerConnectivity 网络稳定且具有较低的 RTT(大约 5 毫秒)?非常感谢!

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