Buku "Jaringan Peramban Kinerja Tinggi" dari Ilya Grigorik menjawab persis ini. Ada seluruh bab (7) yang didedikasikan untuk jaringan seluler. Buku ini menyatakan bahwa masalah dengan kinerja tinggi hampir selalu terkait dengan latensi, kami biasanya memiliki banyak bandwidth tetapi protokol menghalangi. Baik itu TCP mulai lambat , Radio Resource Controller (RRC) atau konfigurasi suboptimal. Jika Anda mengalami latensi yang buruk hanya di jaringan seluler, itulah cara mereka dirancang.
Ada tabel di buku tentang latensi yang khas:
Tabel 7-2. Kecepatan dan latensi data untuk koneksi seluler aktif
Generasi | Kecepatan data | Latensi
2G | 100–400 Kbit / s | 300–1000 ms
3G | 0,5–5 Mbit / dtk 100–500 ms
4G | 1–50 Mbit / dtk <100 ms
Meskipun sangat relevan dengan latensi, karakteristik TCP handshake tiga arah atau slow-start tidak benar-benar menjawab pertanyaan, karena mereka mempengaruhi koneksi kabel secara merata. Apa yang benar-benar memengaruhi latensi dalam jaringan seluler adalah lapisan di bawah IP. Jika lapisan di bawah IP memiliki latensi setengah detik, koneksi TCP ke server akan memakan waktu ~ 1,5 detik (0,5s * 3), seperti yang Anda lihat jumlahnya bertambah cukup cepat. Seperti yang dikatakan sebelumnya bahwa seandainya ponsel tidak idle. Jika handset diam terlebih dahulu harus "terhubung" ke jaringan, yang mengharuskan untuk menegosiasikan cadangan sumber daya dengan menara (disederhanakan), dan yang membutuhkan antara 50-100ms dalam LTE, hingga beberapa detik dalam 3G, dan banyak lagi dalam jaringan sebelumnya.
Gambar 7-12. Latensi alur permintaan LTE
- Kontrol latensi pesawat : Memperbaiki, biaya latensi satu kali yang dikeluarkan untuk negosiasi RRC dan transisi keadaan: <100 ms untuk idle menjadi aktif, dan <50 ms untuk aktif ke aktif.
- Latensi pesawat pengguna : Biaya tetap untuk setiap paket aplikasi yang ditransfer antara perangkat dan menara radio: <5 ms.
- Latensi jaringan inti: Biaya tergantung operator untuk mengangkut paket dari menara radio ke gateway paket: dalam praktiknya, 30-100 ms.
- Latensi perutean internet: Biaya latensi variabel antara gateway paket operator dan alamat tujuan di Internet publik.
Dalam praktiknya, latensi ujung ke ujung dari banyak jaringan 4G yang dikerahkan cenderung berada dalam kisaran 30-100 ms begitu perangkat berada dalam kondisi terhubung.
Jadi, Anda memiliki satu permintaan (Gambar 8-2. Komponen permintaan HTTP "sederhana"):
- Negosiasi RRC 50-2500 ms
- Pencarian DNS 1 RTT
- Jabat tangan TCP 1 RTT (koneksi yang sudah ada sebelumnya) atau 3 RTT (koneksi baru)
- Jabat tangan TLS 1-2 RTT
- Permintaan HTTP 1-n RTT
Dan dengan data nyata:
Tabel 8-1. Overhead Latensi dari satu permintaan HTTP
| 3G | 4G
Pesawat kendali | 200–2.500 ms | 50-100 ms
Pencarian DNS | 200 ms | 100 ms
Jabat tangan TCP | 200 ms | 100 ms
Jabat tangan TLS | 200–400 ms | 100–200 ms
Permintaan HTTP | 200 ms | 100 ms
Total overhead latensi | 200–3500 ms | 100–600 ms
Selain itu jika Anda memiliki aplikasi interaktif yang ingin Anda lakukan dengan cukup ok di jaringan seluler, Anda dapat melakukan percobaan menonaktifkan algoritme Nagle (kernel menunggu data untuk bergabung menjadi paket yang lebih besar daripada mengirim beberapa paket yang lebih kecil) mencari cara untuk mengujinya di https://stackoverflow.com/a/17843292/869019 .
Ada opsi untuk membaca seluruh buku secara gratis oleh semua orang di https://hpbn.co/ disponsori oleh Velocity Conference. Ini adalah buku yang sangat direkomendasikan, tidak hanya untuk orang yang mengembangkan situs web, buku ini bermanfaat bagi semua orang yang melayani byte melalui beberapa jaringan ke klien.