为了评估 iPhone 上的 TCP 与 UDP,我在我的计算机上编写了一个小型回显服务器,并在 iPhone 上使用了 AsyncUdpSocket 库,但是延迟出乎意料地大,我想知道我的实现是否有问题。
我的设置有一个具有外部静态 IP 的 wifi 路由器(Apple Airport)。回显服务器使用的端口被转发到我的开发计算机。
我使用了两种不同的设置:
- iPhone -> Wifi -> Wifi 路由器 -> Wifi -> 电脑
- iPhone -> 3G -> Wifi 路由器 -> Wifi -> 电脑
数据包大小约为 10 个字节。
在第一种情况下,往返时间从 9 毫秒到 600 毫秒不等。大多数情况下,我会看到大约 300 毫秒的中位数,但有些运行只有 30 毫秒。
第二种情况...最好的情况是 2000 毫秒,最多移动到 5000 毫秒。
实现将发送一个 UDP 数据包,等待它返回,然后发送下一个。
我最初认为这个实现有问题,但从模拟器运行它得到的一致延迟只有 7 毫秒。
我的数字是正确的还是发生了什么奇怪的事情?