O livro "High Performance Browser Networking" de Ilya Grigorik responde exatamente isso. Há um capítulo inteiro (7) dedicado às redes móveis. O livro afirma que o problema com o alto desempenho está quase sempre ligado à latência, geralmente temos muita largura de banda, mas os protocolos ficam no caminho. Seja TCP início lento , o Controlador de Recursos de Rádio (RRC) ou configurações sub-ótimas. Se você está tendo latência ruim apenas nas redes móveis, é como elas são projetadas.
Há uma tabela no livro sobre latências típicas:
Tabela 7-2. Taxas de dados e latência para uma conexão móvel ativa
Generation | Data rate | Latency 2G | 100–400 Kbit/s | 300–1000 ms 3G | 0.5–5 Mbit/s | 100–500 ms 4G | 1–50 Mbit/s | < 100 ms
Embora muito relevante para a latência, o handshake de três vias característico do TCP ou o slow-start não respondem realmente à pergunta, pois afetam as conexões com fio igualmente. O que realmente afeta a latência em redes móveis é a camada sob IP. Se a camada sob o IP tiver uma latência de meio segundo, uma conexão TCP com um servidor levará cerca de 1,5 segundo (0,5s * 3), pois os números são muito rápidos. Como dito antes, suponhamos que o celular não esteja ocioso. Se o aparelho estiver inativo, primeiro ele precisa "conectar-se" à rede, o que exige negociar uma reserva de recursos com a torre (simplificada) e leva entre 50-100ms em LTE, até vários segundos em 3G e mais em redes anteriores.
Figura 7-12. Latências de fluxo de solicitação LTE
- Latência do Plano de controle : custo de latência fixo e único incorrido para negociação de RRC e transições de estado: < 100 ms para inatividade ativo e < 50 ms para dormente ativo.
- Latência do plano de usuário : custo fixo para cada pacote de aplicativo transferido entre o dispositivo e a torre de rádio: <5 ms.
- Latência de rede principal: Custo dependente da operadora para transportar o pacote da torre de rádio para o gateway de pacote: na prática, 30 a 100 ms.
- Latência de roteamento da Internet: custo de latência variável entre o gateway de pacotes da operadora e o endereço de destino na Internet pública.
Na prática, a latência de ponta a ponta de muitas redes 4G implantadas tende a estar na faixa de 30 a 100 ms quando o dispositivo está conectado.
Portanto, você tem uma solicitação (Figura 8-2. Componentes de uma solicitação HTTP "simples"):
- negociação de RRC 50-2500 ms
- pesquisa de DNS 1 RTT
- TCP handshake 1 RTT (conexão preexistente) ou 3 RTT (nova conexão)
- TLS de handshake de TLS 1-2
- solicitação HTTP 1-n RTTs
E com dados reais:
Tabela 8-1. Sobrecarga de latência de uma única solicitação HTTP
| 3G | 4G Control plane | 200–2,500 ms | 50–100 ms DNS lookup | 200 ms | 100 ms TCP handshake | 200 ms | 100 ms TLS handshake | 200–400 ms | 100–200 ms HTTP request | 200 ms | 100 ms Total latency overhead | 200–3500 ms | 100–600 ms
Além disso, se você tiver um aplicativo interativo que deseja executar moderadamente ok em uma rede móvel, experimente desabilitar o algoritmo Nagle (o kernel espera que os dados se aglutinem em pacotes maiores em vez de enviar vários pacotes menores). para testá-lo no link .
Há a opção de ler o livro inteiro gratuitamente por todos, no link patrocinado pela Velocity Conference. Este é um livro altamente recomendado, não apenas para pessoas que desenvolvem websites, mas também para todos que atendem bytes em alguma rede a um cliente.