iPhone上3G的典型UDP延迟 - 我的号码是对的吗?

时间:2013-07-25 13:41:35

标签: iphone network-programming udp 3g latency

为了评估iPhone上的TCP与UDP,我在我的计算机上编写了一个小型echo服务器,并在iPhone上使用了AsyncUdpSocket库,但延迟时间非常大,我想知道我的实现是否有问题不知。

我的设置有一个wifi路由器(Apple Airport),它有一个外部静态IP。 echo服务器使用的端口将转发到我的开发计算机。

我使用了两种不同的设置:

  1. iPhone - > Wifi - >无线路由器 - > Wifi - >计算机
  2. iPhone - > 3G - >无线路由器 - > Wifi - >计算机
  3. 数据包大小约为10个字节。

    在第一种情况下,往返行程从9毫秒到600毫秒不等。大多数情况下,我会看到大约300毫秒的中位数,但有些运行只有30毫秒。

    第二种情况......最佳情况2000毫秒,最多移动5000毫秒。

    实现将发送UDP数据包,等待它返回,然后发送下一个。

    我最初认为实施有些问题,但是从模拟器运行它会产生一致的延迟,只有7毫秒。

    我的号码是正确的还是奇怪的事情?

2 个答案:

答案 0 :(得分:1)

我看到了这个link on iphone Wifi latency,我决定尝试更快地抽取UDP数据包。

我开始降低接收ping和发送新ping之间的延迟,直到我达到50毫秒。

在50毫秒时,UDP ping(往返)使用3G降低到大约80毫秒(记住,这最初是在2000毫秒左右)!

TCP也有所改进,但没有UDP那么多。我会再次在3G上获得100-200毫秒。

我的结论是iPhone关闭天线,严重影响UDP。 TCP更好,因为手机知道开放连接并且启动速度更快。

在数据包丢失期间顺便,TCP将达到1000-2000 ms的ping。这与自己的观察一致,即TCP连接偶尔会在iPhone上遭受大量延迟。

答案 1 :(得分:1)

我每隔30秒发送一个1字节的udp数据包,延迟消失。这样天线永远不会睡觉。