Książka „High Performance Browser Networking” autorstwa Ilyi Grigorik dokładnie na to odpowiada. Cały rozdział (7) poświęcony jest sieciom mobilnym. Książka stwierdza, że problem z wysoką wydajnością prawie zawsze związany jest z opóźnieniami, zwykle mamy dużą przepustowość, ale protokoły przeszkadzają. Może to być powolny start TCP , kontroler zasobów radiowych (RRC) lub konfiguracje nieoptymalne. Jeśli występują niewielkie opóźnienia w sieciach komórkowych, jest to sposób, w jaki zostały zaprojektowane.
W książce znajduje się tabela na temat typowych opóźnień:
Tabela 7-2. Szybkości transmisji i opóźnienia dla aktywnego połączenia mobilnego
Generacja | Szybkość transmisji danych | Czas oczekiwania
2G | 100–400 Kbit / s | 300–1000 ms
3G | 0,5–5 Mbit / s | 100–500 ms
4G | 1–50 Mbit / s | <100 ms
Chociaż bardzo istotny dla opóźnień, charakterystyczny trójdrożny uścisk dłoni TCP lub powolny start tak naprawdę nie odpowiadają na pytanie, ponieważ w równym stopniu wpływają na połączenia przewodowe. To, co naprawdę wpływa na opóźnienie w sieciach mobilnych, to warstwa pod adresem IP. Jeśli warstwa pod adresem IP ma opóźnienie wynoszące pół sekundy, połączenie TCP z serwerem zajmie około 1,5 sekundy (0,5 s * 3), ponieważ liczby szybko się sumują. Jak powiedziano wcześniej, zakłada się, że telefon komórkowy nie jest bezczynny. Jeśli słuchawka jest bezczynna, najpierw musi „połączyć się” z siecią, co wymaga wynegocjowania rezerwy zasobów z wieżą (uproszczone), a to zajmuje od 50-100 ms w LTE, do kilku sekund w 3G i więcej we wcześniejszych sieciach.
Rycina 7-12. Opóźnienia przepływu żądania LTE
- Opóźnienie płaszczyzny sterowania : Naprawiono, jednorazowy koszt opóźnienia poniesiony na negocjacje RRC i przejścia stanu: <100 ms dla stanu bezczynności do aktywnego i <50 ms dla stanu uśpienia do aktywnego.
- Opóźnienie samolotu użytkownika : Stały koszt dla każdego pakietu aplikacji przesłanego między urządzeniem a wieżą radiową: <5 ms.
- Opóźnienie sieci bazowej: Koszt zależny od przewoźnika za transport pakietu z wieży radiowej do bramki pakietu: w praktyce 30–100 ms.
- Opóźnienie routingu internetowego: Zmienny koszt opóźnienia między bramą pakietu operatora a adresem docelowym w publicznym Internecie.
W praktyce opóźnienie od końca do końca wielu wdrożonych sieci 4G zwykle znajduje się w zakresie 30–100 ms, gdy urządzenie jest w stanie połączenia.
Masz więc jedno żądanie (rysunek 8-2. Składniki „prostego” żądania HTTP):
- Negocjacja RRC 50-2500 ms
- Wyszukiwanie DNS 1 RTT
- Uzgadnianie TCP 1 RTT (istniejące połączenie) lub 3 RTT (nowe połączenie)
- Uzgadnianie TLS 1-2 RTT
- Żądanie HTTP 1-n RTT
I z prawdziwymi danymi:
Tabela 8-1. Opóźnienie związane z pojedynczym żądaniem HTTP
| 3G | 4G
Płaszczyzna kontrolna | 200–2,500 ms | 50–100 ms
Wyszukiwanie DNS | 200 ms | 100 ms
Uzgadnianie TCP | 200 ms | 100 ms
Uzgadnianie TLS | 200–400 ms | 100–200 ms
Żądanie HTTP | 200 ms | 100 ms
Całkowity narzut opóźnień | 200–3500 ms | 100–600 ms
Ponadto, jeśli masz interaktywną aplikację, którą chcesz wykonywać w umiarkowanym stopniu w sieci mobilnej, możesz eksperymentować z wyłączeniem algorytmu Nagle (jądro czeka na połączenie danych w większe pakiety zamiast wysyłania wielu mniejszych pakietów), poszukaj sposobów na przetestowanie go w https://stackoverflow.com/a/17843292/869019 .
Wszyscy mogą bezpłatnie przeczytać całą książkę na https://hpbn.co/ sponsorowanej przez Velocity Conference. Jest to książka bardzo wysoce polecana, nie tylko osobom rozwijającym strony internetowe, ale jest przydatna dla każdego, kto obsługuje bajty w sieci przez klienta.