41 votes

Pourquoi les réseaux mobiles ont-ils des latences élevées ? Comment peuvent-elles être réduites ?

Je vois de plus en plus des technologies de réseau mobile utilisées pour obtenir un accès à Internet dans des zones où il n'est pas disponible autrement.

Alors que le réseau mobile n'est généralement pas encore viable en tant que connexion Internet principale, la technologie mobile semble être une bonne option pour un secours en cas d'urgence.

La bande passante n'est pas le problème : Avec HDSPA, des vitesses de plusieurs Mbit/s sont possibles, ce qui permet une montée correcte. Cependant, je sais par expérience personnelle que les liens Internet des réseaux mobiles (via GPRS, UMTS, etc.) ont des latences beaucoup plus élevées que les DSL classiques (200-400 ms pour UMTS, encore plus pour GPRS). Cela les rend bien sûr inadaptés à de nombreuses applications, telles que la VoIP et la téléconférence.

  • D'où vient cette latence ?
  • Existe-t-il des technologies disponibles qui peuvent atténuer ce problème, pour rendre l'UMTS viable pour des applications à faible latence ?

Je suppose qu'il doit y avoir une raison technique inhérente, mais laquelle ? Est-ce lié à la manière dont les données sont transmises par voie hertzienne ? Et si c'est à cause de la transmission sans fil, pourquoi le WLAN a-t-il des latences beaucoup plus faibles ?

48voto

Jorge Nerín Points 1118

Le livre "High Performance Browser Networking" d'Ilya Grigorik répond exactement à cela. Il y a tout un chapitre (le 7ème) dédié aux réseaux mobiles. Le livre affirme que le problème de haute performance est presque toujours lié à la latence, nous avons généralement beaucoup de bande passante mais les protocoles s'interposent. Que ce soit le démarrage lent de TCP, le Contrôleur de Ressources Radio (RRC) ou des configurations suboptimales. Si vous rencontrez uniquement des problèmes de latence dans les réseaux mobiles, c'est à cause de leur conception.

Il y a un tableau dans le livre sur les latences typiques :

Tableau 7-2. Débits et latence pour une connexion mobile active

Génération | Débit          | Latence
2G         | 100-400 Kbit/s | 300-1000 ms
3G         | 0.5-5 Mbit/s   | 100-500 ms
4G         | 1-50 Mbit/s    | < 100 ms

Bien que très pertinent pour la latence, les caractéristiques du TCP comme la poignée de main en trois étapes ou le démarrage lent ne répondent pas vraiment à la question, car ils affectent également les connexions câblées de la même manière. Ce qui affecte vraiment la latence dans les réseaux mobiles, c'est la couche sous IP. Si la couche sous IP a une latence d'une demi-seconde, une connexion TCP à un serveur prendra environ 1,5 seconde (0,5s*3), comme vous pouvez le constater, les chiffres s'additionnent très rapidement. Comme dit précédemment, cela suppose que le mobile n'est pas inactif. Si le téléphone est inactif, il doit d'abord "se connecter" au réseau, ce qui nécessite de négocier une réserve de ressources avec la tour (simplifié), et cela prend entre 50 et 100ms en LTE, jusqu'à plusieurs secondes en 3G, et plus dans les réseaux plus anciens.

Figure 7-12. Latences du flux de demandes LTE

  1. Latence du plan de contrôle : Coût de latence fixe et ponctuel engendré pour la négociation RRC et les transitions d'état : <100 ms pour l'inactif vers l'actif, et <50 ms pour le dormant vers l'actif.
  2. Latence du plan utilisateur : Coût fixe pour chaque paquet d'application transféré entre le dispositif et la tour radio : <5 ms.
  3. Latence du réseau cœur : Coût dépendant de l'opérateur pour transporter le paquet de la tour radio à la passerelle de paquet : en pratique, 30-100 ms.
  4. Latence de routage Internet : Coût de latence variable entre la passerelle de paquets de l'opérateur et l'adresse de destination sur Internet public.

En pratique, la latence de bout en bout de nombreux réseaux 4G déployés tend à être de l'ordre de 30 à 100 ms une fois que le dispositif est dans un état connecté.

Donc, vous avez pour une demande (Figure 8-2. Composants d'une demande HTTP "simple") :

  1. Négociation RRC 50-2500 ms
  2. Recherche DNS 1 RTT
  3. Poignée de main TCP 1 RTT (connexion préexistante) ou 3 RTT (nouvelle connexion)
  4. Poignée de main TLS 1-2 RTTs
  5. Demande HTTP 1-n RTTs

Et avec des données réelles:

Tableau 8-1. Surcoût de latence d'une seule demande HTTP

                       | 3G           | 4G
Plan de contrôle       | 200-2,500 ms | 50-100 ms
Recherche DNS          | 200 ms       | 100 ms
Poignée de main TCP    | 200 ms       | 100 ms
Poignée de main TLS    | 200-400 ms   | 100-200 ms
Demande HTTP           | 200 ms       | 100 ms
Total surcoût de latence | 200-3500 ms | 100-600 ms

De plus, si vous avez une application interactive que vous souhaitez faire fonctionner correctement dans un réseau mobile, vous pouvez expérimenter la désactivation de l'algorithme de Nagle (le noyau attend que les données se regroupent en paquets plus gros au lieu d'envoyer de multiples petits paquets) cherchez des moyens de tester cela ici https://stackoverflow.com/a/17843292/869019.


Il est possible de lire l'intégralité du livre gratuitement par tout le monde sur https://hpbn.co/ sponsorisé par la Conférence Velocity. Il s'agit d'un livre très recommandé, non seulement pour les personnes qui développent des sites web, mais aussi pour tous ceux qui envoient des octets sur un réseau à un client.

4voto

Pablo Venturino Points 1660

Je soupçonne qu'une grande partie de la latence que vous pourriez rencontrer lors de l'utilisation des technologies "large bande cellulaire" est un problème complexe résultant de plusieurs facteurs.

Il y a la distance, mais comme l'a mentionné syneticon-dj, c'est réaliste seulement une toute petite proportion du temps de trajet complet.

Voici quelque chose à considérer... Les retards que vous rencontrez en tant que client (surtout en tant que client domicile ou petite entreprise) sont probablement artificiellement induits, au moins dans une certaine mesure. Il existe une classe de communications 3G et GSM pour une utilisation M2M, pour SCADA, etc., qui peuvent parfois offrir une plus grande fiabilité et une transmission à plus faible latence. Par conséquent, elles sont généralement excessivement coûteuses.

Essentiellement, vous êtes confronté à un façonnage du trafic. Soit l'ISP / opérateur télécom le fait pour prioriser les clients qui paient mieux, soit la cellule à laquelle vous êtes connecté est un peu occupée, soit tout leur réseau est un peu lent (essayez 00:00 GMT le 1er janvier 2012, par exemple).

Mais il y a un moyen de contourner tout cela, c'est un peu malin cependant. Vous auriez essentiellement besoin d'un proxy de connexion TCP avant que votre trafic parte sur le réseau WWAN mobile. Ce proxy enverrait essentiellement un ACK falsifié à votre application, car le vrai ACK pourrait être retardé par le façonnage du trafic de l'ISP.
C'est nettement douteux, mais un certain nombre de fournisseurs de services par satellite utilisent ce mécanisme pour faire paraître la latence plus faible qu'elle ne l'est réellement.

2voto

Matej Points 1921

Un peu tard pour le jeu, mais vous pouvez consulter l'article de mon Calendrier des Performances sur le sujet: http://calendar.perfplanet.com/2012/latency-in-mobile-networks-the-missing-link/

tl;dr - une partie importante de la latence mobile est due à un routage non optimisé sur le back-haul.

1voto

Nissim Points 2174

Les technologies de modem de téléphone portable souffrent de latence élevée en raison de la nature des communications en plein air : les distances de transmission WLAN sont généralement beaucoup plus courtes que celles des autres technologies que vous avez mentionnées, d'où une raison pour laquelle la latence est plus faible.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X