Ressource
2020, 04 Avril . Lycée . Parents . Éducateurs . Professeurs du secondaire . Article ou présentation . réseau de communication . transport de donnéesTransport de données
Les services en ligne sont actuellement très sollicités entre postes très dispersés, avec certains qui font du Skype/Zoom/etc à 15 voire 30, dans des conditions qui restent étonnamment fluides. Mais comment Internet peut-il fonctionner si bien dans ces conditions ?
Arnaud Legout, Olivier
La stabilité et la robustesse à l’échelle (scalability) d’internet repose sur 5 niveaux
– le multiplexage du trafic (IP et la notion de datagramme)
– le contrôle de congestion dans le réseau (TCP)
– le contrôle de débit adaptatif fait au niveau des applications
– la réplication des contenus proche des consommateurs.
– le dimensionnement du réseau
Toutes ces points existent depuis les années 1990 et énormément d’intelligence a été mis dedans depuis 30 ans,
ça n’est donc pas un hasard si Internet fonctionne malgré plusieurs révolutions dans les usages qui ont conduit à une profonde modification du trafic
– mail et accès serveurs distants dans les années 1980
– Web dans les années 1990
– réseaux sociaux et Web participatif dans les années 2000
– P2P et vidéo streaming milieux des années 2000 à aujourd’hui
Reprenons les éléments de la stabilité d’Internet.
1) le multiplexage : quelque soit le trafic qui est produit, il n’est jamais continu. Le principe du multiplexage est que lorsque tu as un trou dans ton trafic, ce trou est utilisé par quelqu’un d’autre. Pour faire simple, ça fonctionne très bien et ça a été beaucoup étudié.
En pratique on trouve tout de même des composantes auto similaires à de nombreuses échelles de temps, et pour les supporter la solution c’est le surdimensionnement du réseau.
2) Le contrôle de congestion TCP
TCP est un protocole de congestion à boucle fermé créé en 1988 et amélioré très régulièrement même si la base
reste la même. On peut voir Internet comme un système dynamique composé de milliard de boucles de contrôle
qui cherche à trouver le point d’équilibre pour une utilisation optimale des ressources. Ça aussi ça fonctionne très bien.
Cependant, TCP n’est pas très bien adapté à certains cas et la tendance est d’utiliser UDP (l’autre protocole de transport qui ne fait pas de contrôle de congestion) et de gérer l’adaptation au niveau applicatif. Le principal argument pour faire cela est de prendre en compte les besoins de l’application dans le contrôle de congestion, ce que TCP ne peut pas faire à cause de l’isolation des couches protocolaires.
3) le contrôle adaptatif applicatif
Pour de nombreuses applications TCP pose quelques problèmes : il est difficile de garantir un délai (dans l’interactivité, mais également dans la vitesse de convergence) avec TCP.
Cela pose un problème pour
- les applications interactives, typiquement le Web où l’usage actuel demande une très faible latence dans l’affichage des pages Web,
- les jeux ou la latence dois être largement en dessous de 100ms (j’ai en mémoire 30ms),
- la vidéo conférence ou l’on veut un très faible délai
Pour tout ce qui est vidéo conférence, des protocoles de contrôle de congestion en couche sont utilisés. C’est-à-dire que la qualité de la vidéo se dégrade et s’améliore en fonction du débit disponible (évalué en général avec les pertes) en exploitant un encodage vidéo utilisant des couches cumulatives, à chaque couche la qualité s’améliore.
Les outils de vidéo conférence fonctionnent en général en pair à pair (ce qui ne va pas sans poser des problèmes de protection
de la vie privée, mais c’est une autre histoire).
Le plus gros générateur de trafic est le streaming vidéo aujourd’hui.
4) la réplication de contenus
Depuis l’explosion du Web, on s’est vite rendu compte qu’il était impossible de servir avec une bonne qualité le monde entier depuis un serveur centralisé. Cela a donné lieu aux recherches sur les CDN (contente delivery network) où l’idée est d’avoir des serveurs (ou même des datacenters) dans le monde entier et de pousser nos contenus dans ces data centers, puis de rediriger les requêtes des clients vers les serveurs les plus proches.
Tout le monde utilise cela aujourd’hui pour les sites Web populaire et pour le vidéo streaming.
La synchronisation du contenu sur les serveurs (en particulier pour le Web qui est bien plus dynamique que la vidéo) est un sujet difficile, mais ici aussi ça fonctionne bien.
Pour conclure, l’architecture d’internet fait que les points de congestion potentiel sont bien connus, et très surveillés. C’est en général les points de peering entre les opérateurs (c’est à dire l’endroit ou l’on passe d’un opérateur à un autre), le reste du réseau étant en général bien surdimensionné.
J’ai essayé de faire un survol rapide, il y a évidemment des raccourcis et des simplifications.
Vous pourriez aussi être intéressé-e-s par :
…/…