Facebook teste le nouvel algorithme de contrôle de congestion COPA contre BBR et CUBIC

Facebook publié résultats d'expérimentations avec un nouvel algorithme de contrôle de congestion - COPA, optimisé pour la transmission de contenu vidéo. L'algorithme a été proposé par des chercheurs du Massachusetts Institute of Technology. Le prototype COPA proposé aux tests est écrit en C++, est ouvert sous licence MIT et inclus dans mvfst — une implémentation du protocole QUIC en cours de développement chez Facebook.

L'algorithme COPA se concentre sur la résolution des problèmes qui surviennent lors de la transmission de vidéo sur un réseau. Selon le type de vidéo, des exigences presque opposées sont imposées aux algorithmes de contrôle de congestion - pour la vidéo interactive, il est nécessaire d'assurer des retards minimes, même au détriment de la qualité, et lors de la diffusion d'une vidéo de haute qualité préparée à l'avance, la priorité est donnée au maintien de la qualité. Auparavant, les développeurs d'applications étaient limités à la possibilité d'appliquer différents algorithmes en fonction des exigences de qualité ou de latence. Les chercheurs qui ont développé COPA ont tenté de créer un algorithme universel pour gérer la congestion vidéo TCP qui pourrait être personnalisé en fonction des exigences vidéo.

Le travail de l'algorithme de contrôle de congestion est de déterminer l'équilibre optimal lors de l'envoi de paquets - l'envoi d'un trop grand nombre de paquets peut entraîner une perte de paquets et une dégradation des performances en raison de la nécessité de les renvoyer, et un envoi trop lent entraîne des retards, qui affectent également négativement les performances. . Le protocole QUIC a été choisi pour les expérimentations, car il permet la mise en œuvre d'algorithmes de contrôle de congestion dans l'espace utilisateur sans interférer avec le noyau.

Pour éviter la congestion des canaux de communication, COPA utilise une modélisation des caractéristiques des canaux basée sur l'analyse des changements dans les délais pendant la livraison des paquets (COPA réduit la taille de la fenêtre de congestion à mesure que les délais augmentent, en manipulant le fait que les délais commencent à augmenter même avant que la perte de paquets ne se produise). . L'équilibre entre les délais et le débit est ajusté à l'aide d'un paramètre delta spécial. L'augmentation du delta augmente la sensibilité aux retards mais réduit le débit, tandis que la diminution du delta permet un débit plus élevé au prix d'une latence accrue. Delta=0.04 est défini comme l'équilibre optimal entre qualité et latence.

Facebook teste le nouvel algorithme de contrôle de congestion COPA contre BBR et CUBIC

Basé sur le service de streaming Facebook Live, COPA a été testé par rapport aux algorithmes populaires CUBIC et BBR. L'algorithme CUBIC par défaut sous Linux consiste à augmenter progressivement la taille de la fenêtre de congestion jusqu'à ce qu'une perte de paquets se produise, après quoi la taille de la fenêtre est ramenée à la valeur avant le début de la perte.

CUBIC laisse beaucoup à désirer en termes de mise en mémoire tampon des paquets sur les équipements réseau modernes, ce qui ralentit les abandons de paquets. L'algorithme de contrôle de congestion ignore la mise en mémoire tampon et continue d'augmenter la vitesse même si le canal est déjà physiquement encombré. Les paquets non envoyés sont mis en mémoire tampon plutôt que rejetés, et l'algorithme de contrôle de congestion de TCP n'intervient que lorsque le tampon est plein et ne peut pas équilibrer le débit avec la vitesse de la liaison physique. Pour résoudre ce problème, Google a proposé un algorithme BBR amélioré qui prédit la bande passante disponible grâce à des vérifications séquentielles et à une estimation du temps d'aller-retour (RTT).

Avec delta=0.04, les indicateurs COPA se révèlent proches de CUBIC et BBR. Lors de tests effectués sur une connexion réseau à haut débit avec de faibles délais de transmission des paquets, COPA a atteint une latence inférieure (479 ms) par rapport à CUBIC (499 ms), mais était légèrement derrière BBR (462 ms). Lorsque la qualité de la connexion diminuait, COPA affichait les meilleurs résultats : les délais étaient 27 % inférieurs à ceux obtenus avec CUBIC et BBR.

Facebook teste le nouvel algorithme de contrôle de congestion COPA contre BBR et CUBIC

Facebook teste le nouvel algorithme de contrôle de congestion COPA contre BBR et CUBIC

Dans le même temps, sur un canal de communication médiocre, COPA et BBR ont permis d'atteindre un débit nettement supérieur à celui de CUBIC. Le gain du BBR par rapport au CUBIC était de 4.8% et 5.5%, et celui du COPA de 6.2% et 16.3%.

Facebook teste le nouvel algorithme de contrôle de congestion COPA contre BBR et CUBIC

Source: opennet.ru

Ajouter un commentaire