El libro "High Performance Browser Networking" de Ilya Grigorik responde exactamente a esto. Hay un capítulo completo (7mo) dedicado a las redes móviles. El libro afirma que el problema con el alto rendimiento casi siempre está relacionado con la latencia, generalmente tenemos mucho ancho de banda, pero los protocolos se interponen. Ya sea TCP de inicio lento , el Controlador de recursos de radio (RRC) o configuraciones subóptimas. Si experimenta una latencia deficiente solo en redes móviles, es la forma en que están diseñadas.
Hay una tabla en el libro sobre latencias típicas:
Tabla 7-2. Velocidades de datos y latencia para una conexión móvil activa
Generación | Velocidad de datos | Estado latente
2G | 100–400 Kbit / s | 300–1000 ms
3G | 0.5–5 Mbit / s | 100–500 ms
4G | 1–50 Mbit / s | <100 ms
Aunque es muy relevante para la latencia, el apretón de manos tripartito característico de TCP o el inicio lento realmente no responden la pregunta, ya que afectan a las conexiones por cable por igual. Lo que realmente afecta la latencia en las redes móviles es la capa bajo IP. Si la capa bajo IP tiene una latencia de medio segundo, una conexión TCP a un servidor tomará ~ 1.5 segundos (0.5s * 3), ya que verá que los números se suman bastante rápido. Como se dijo antes, eso supone que el móvil no está inactivo. Si el teléfono está inactivo, primero tiene que "conectarse" a la red, eso requiere negociar una reserva de recursos con la torre (simplificado), y eso toma entre 50-100 ms en LTE, hasta varios segundos en 3G y más en redes anteriores.
Figura 7-12. Latencias de flujo de solicitud LTE
- Latencia del plano de control : Costo fijo de latencia de una sola vez incurrido para la negociación RRC y las transiciones de estado: <100 ms para inactivo a activo, y <50 ms para inactivo a activo.
- Latencia del plano del usuario : Costo fijo por cada paquete de aplicación transferido entre el dispositivo y la torre de radio: <5 ms.
- Latencia de red central: costo dependiente del operador para transportar el paquete desde la torre de radio a la puerta de enlace de paquetes: en la práctica, 30–100 ms.
- Latencia de enrutamiento de Internet: costo de latencia variable entre la puerta de enlace de paquetes del operador y la dirección de destino en la Internet pública.
En la práctica, la latencia de extremo a extremo de muchas redes 4G implementadas tiende a estar en el rango de 30 a 100 ms una vez que el dispositivo está conectado.
Entonces, tiene una solicitud (Figura 8-2. Componentes de una solicitud HTTP "simple"):
- Negociación CRR 50-2500 ms
- Búsqueda de DNS 1 RTT
- Protocolo de enlace TCP 1 RTT (conexión preexistente) o 3 RTT (nueva conexión)
- Apretón de manos TLS 1-2 RTT
- Solicitud HTTP 1-n RTT
Y con datos reales:
Tabla 8-1. Sobrecarga de latencia de una sola solicitud HTTP
El | 3G | 4G
Plano de control | 200–2,500 ms | 50–100 ms
Búsqueda de DNS | 200 ms | 100 ms
TCP apretón de manos | 200 ms | 100 ms
Apretón de manos TLS | 200–400 ms | 100-200 ms
Solicitud HTTP | 200 ms | 100 ms
Latencia total sobrecarga | 200–3500 ms | 100–600 ms
Además, si tiene una aplicación interactiva que desea realizar moderadamente bien en una red móvil, puede experimentar deshabilitando el algoritmo de Nagle (el kernel espera que los datos se unan en paquetes más grandes en lugar de enviar múltiples paquetes más pequeños) busque formas de probarlo en https://stackoverflow.com/a/17843292/869019 .
Existe la opción de leer el libro completo de forma gratuita para todos en https://hpbn.co/ patrocinado por Velocity Conference. Este es un libro muy recomendado, no solo para las personas que desarrollan sitios web, es útil para todos los que sirven bytes a través de una red a un cliente.