Ilya Grigorikの本「High Performance Browser Networking」はまさにこれに答えています。モバイルネットワーク専用の章全体(7日)があります。この本は、高いパフォーマンスの問題はほとんど常に遅延に関係していると述べており、通常は十分な帯域幅がありますが、プロトコルが邪魔になります。TCP スロースタート、無線リソースコントローラー(RRC)、または次善の構成です。モバイルネットワークでのみレイテンシーが低下している場合は、モバイルネットワークの設計方法です。
本には典型的なレイテンシーに関する表があります:
表7-2。アクティブなモバイル接続のデータレートと遅延
ジェネレーション| データレート| 待ち時間
2G | 100〜400 Kbit / s | 300〜1000ミリ秒
3G | 0.5–5 Mbit / s | 100〜500ミリ秒
4G | 1–50 Mbit / s | <100ミリ秒
遅延に非常に関連していますが、TCP特性のスリーウェイハンドシェイクまたはスロースタートは、有線接続に等しく影響するため、質問に実際には答えません。モバイルネットワークの遅延に実際に影響するのは、IPの下の層です。IPの下のレイヤーの遅延が0.5秒の場合、サーバーへのTCP接続は約1.5秒(0.5s * 3)かかります。これは、数字がかなり速く加算されることを示しています。前に述べたように、それはモバイルがアイドル状態ではないと仮定しています。ハンドセットがアイドル状態の場合、最初にネットワークに「接続」する必要があり、リソースの予約をタワーと交渉する必要があり(簡略化)、LTEで50〜100ミリ秒、3Gで最大数秒かかります。以前のネットワークで。
図7-12。LTEリクエストフローの待ち時間
- コントロールプレーンレイテンシ:RRCネゴシエーションと状態遷移で発生する固定の1回限りのレイテンシコスト:アイドルからアクティブまで<100ミリ秒、休止からアクティブまで<50ミリ秒。
- ユーザープレーンの待ち時間:デバイスと無線タワー間で転送されるすべてのアプリケーションパケットの固定コスト:<5ミリ秒。
- コアネットワーク遅延:無線タワーからパケットゲートウェイにパケットを転送するためのキャリアに依存するコスト:実際には、30〜100ミリ秒。
- インターネットルーティング遅延:キャリアのパケットゲートウェイとパブリックインターネット上の宛先アドレスとの間の可変遅延コスト。
実際には、展開された多くの4Gネットワークのエンドツーエンド遅延は、デバイスが接続状態になると30〜100ミリ秒の範囲になる傾向があります。
したがって、1つのリクエストに対して必要です(図8-2。「単純な」HTTPリクエストのコンポーネント):
- RRCネゴシエーション50〜2500ミリ秒
- DNSルックアップ1 RTT
- TCPハンドシェイク1 RTT(既存の接続)または3 RTT(新しい接続)
- TLSハンドシェイク1-2 RTT
- HTTPリクエスト1-n RTT
そして実際のデータを使って:
表8-1。単一のHTTPリクエストのレイテンシオーバーヘッド
| 3G | 4G
コントロールプレーン| 200〜2,500ミリ秒| 50〜100ミリ秒
DNSルックアップ| 200ミリ秒| 100ミリ秒
TCPハンドシェイク| 200ミリ秒| 100ミリ秒
TLSハンドシェイク| 200〜400ミリ秒| 100〜200ミリ秒
HTTPリクエスト| 200ミリ秒| 100ミリ秒
合計遅延オーバーヘッド| 200〜3500ミリ秒| 100〜600ミリ秒
さらに、モバイルネットワークで適度に実行したいインタラクティブなアプリケーションがある場合は、Nagleアルゴリズムを無効にして実験することができます(カーネルは、複数の小さなパケットを送信する代わりに、データがより大きなパケットに合体するのを待ちます)それをテストする方法を探しますでhttps://stackoverflow.com/a/17843292/869019。
Velocity Conferenceがスポンサーとなっているhttps://hpbn.co/で、すべての人が無料で本全体を読むオプションがあります。これは非常に強く推奨される本であり、ウェブサイトを開発している人だけでなく、何らかのネットワークを介してクライアントにバイトを提供するすべての人に役立ちます。