2012-09-10 71 views
0

在3G網絡上Ping服務器的時間爲80毫秒,與Wifi(60毫秒)大致相同,但建立SSL連接的時間爲3G 3.5秒,Wifi上0.5秒。使用筆記本電腦和iPhone作爲客戶端也是如此。3G網絡上的三秒https連接時間

3G塔不忙。互聯網連接基本閒置。

如果我在Wifi中運行手機,通過70毫秒ping到服務器,連接握手時間快6倍 - 約半秒鐘,這大致是我所能希望的,因爲ssl握手細節。

這是正常的嗎?我只在弗吉尼亞州的AWS(heroku)的一臺服務器上進行了測試,該服務器距我的辦公室約爲50ms。在所有情況下,服務器都會在大約40 ms左右建立並響應10kB的數據。

3G真的慢得多嗎?還是有一些調整,我可以做NSURLConnection等,讓事情握手更快?

這是一個3G無線電睡眠之間的請求? - 我不這麼認爲,因爲即使我將3g收音機與ping連接起來,(比如說)也會發生同樣的事情。

+1

陰謀角度:長連接時間是因爲3G服務提供商需要僞造假SSL證書來窺探您的活動。嚴重:我可能是偏執狂,但檢查SSL證書是否有效。 – Dai

+0

另外,如果您嘗試相同的連接,但在443或80以外的端口上會發生什麼情況? – Dai

回答

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]; 
相關問題