我正在使用iOS MultipeerConnectivity网络和2 iPhones做一个项目。当我测量往返时间( RTT )时,我发现RTT非常不稳定。
我在代码中所做的是从设备A向设备B发送ping消息,并在设备A上记录当前的系统正常运行时间([[NSProcessInfo processInfo] systemUptime])。当设备B接收到ping消息时,它立即将一条乒乓消息发送回设备A。当设备A接收到pong消息时,RTT由
RTT = (current system uptime - previously recorded system uptime) * 1000我每2秒从设备A发送ping消息到设备B,并得到以下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 (约5ms)稳定?非常感谢!
发布于 2022-04-29 08:41:46
我认为MultipeerConnectivity的主要目的是传输大文件,而不是稳定、低延迟的通信。因此,MultipeerConnectivity可能不适用于需要稳定和低延迟的本地点对点游戏。
https://stackoverflow.com/questions/69999384
复制相似问题