3G网络上的三秒https连接时间

时间:2012-09-10 01:39:51

标签: iphone ios ssl https ssl-certificate

在3G网络上ping服务器的时间是80ms,与Wifi(60ms)相同,但是建立SSL连接的时间在3G上为3.5秒,在Wifi上为0.5。使用笔记本电脑和iPhone作为客户端也是如此。

3G塔不忙。互联网连接基本上是空闲的。

如果我在Wifi中运行手机,对服务器进行70毫秒的ping操作,连接握手时间会快6倍 - 大约半秒钟,这大概是我所能想到的,考虑到ssl握手细节。

这是正常的吗?我只在一台服务器上测试了它,在弗吉尼亚州的AWS(heroku),这是我办公室在Wifi上大约50ms的ping。在所有情况下,服务器在大约40毫秒左右的时间内构建并响应10kB的数据。

3G真的慢得多吗?或者我是否可以对NSURLConnection等进行一些调整以更快地获得握手?

这是请求之间的3G无线电睡眠吗? - 我不这么认为,因为即使我把3g收音机放在ping上,(比方说)也会发生同样的事情。

1 个答案:

答案 0 :(得分:0)

我实际上不是100%确定这是答案。

手机上的GSM蜂窝收音机关闭的时间尽可能长,以节省电池电量。当您启动应用程序时,只要您要求提供网络资源,广播就会立即开启。大约需要一秒钟? (不确定这个)启动收音机。

所以很难改进。到目前为止我唯一发现的是在main.m中使用NSURLConnection - 没有设置委托。这对我来说加速了大约0.3秒 - 达到我真正想要上网的代码所需的时间。

请注意,如果您实际上不需要上线,这将浪费电池!

    // warm up the radio ASAP. It seems to take over a second for the radio to turn on.
    // This saves about a quarter of a second or so. 404 is typically a fast easy response for a server. 
    NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://yoursite.com/wedonthavethis/"]];
    [NSURLConnection connectionWithRequest:request delegate:nil];