Le protocole QUIC est extrĂȘmement intĂ©ressant Ă observer, câest pourquoi nous aimons Ă©crire Ă son sujet. Mais si les publications prĂ©cĂ©dentes sur QUIC Ă©taient plutĂŽt de nature historique (histoire locale, si vous prĂ©fĂ©rez) et matĂ©rielle, nous sommes heureux de publier aujourd'hui une traduction d'un genre diffĂ©rent - nous parlerons de l'application rĂ©elle du protocole en 2019. De plus, nous ne parlons pas dâune petite infrastructure basĂ©e dans un soi-disant garage, mais dâUber, qui opĂšre presque partout dans le monde. Comment les ingĂ©nieurs de l'entreprise ont pris la dĂ©cision d'utiliser QUIC en production, comment ils ont effectuĂ© les tests et ce qu'ils ont vu aprĂšs son dĂ©ploiement en production - en dessous de la limite.
Les images sont cliquables. Bonne lecture!
Uber a une envergure mondiale, à savoir 600 villes de présence, dans chacune desquelles l'application s'appuie entiÚrement sur l'Internet sans fil de plus de 4500 XNUMX opérateurs cellulaires. Les utilisateurs s'attendent à ce que l'application soit non seulement rapide, mais aussi en temps réel. Pour y parvenir, l'application Uber a besoin d'une faible latence et d'une connexion trÚs fiable. Hélas, mais la pile ne fonctionne pas bien dans les réseaux sans fil dynamiques et sujets aux pertes. Nous avons réalisé que dans ce cas, les faibles performances sont directement liées à l'implémentation de TCP dans les noyaux du systÚme d'exploitation.
Pour résoudre le problÚme, nous avons appliqué , un protocole de multiplexage de canaux moderne qui nous donne plus de contrÎle sur les performances du protocole de transport. Actuellement, le groupe de travail normalise QUIC comme .
AprĂšs des tests approfondis, nous avons conclu que la mise en Ćuvre de QUIC dans notre application entraĂźnerait des latences de queue infĂ©rieures Ă celles de TCP. Nous avons observĂ© une rĂ©duction de lâordre de 10 Ă 30 % du trafic HTTPS dans les applications conducteur et passager. QUIC nous a Ă©galement donnĂ© un contrĂŽle de bout en bout sur les packages utilisateur.
Dans cet article, nous partageons notre expérience dans l'optimisation de TCP pour les applications Uber à l'aide d'une pile prenant en charge QUIC.
La derniĂšre technologie : TCP
Aujourd'hui, TCP est le protocole de transport le plus utilisĂ© pour acheminer le trafic HTTPS sur Internet. TCP fournit un flux d'octets fiable, faisant ainsi face Ă la congestion du rĂ©seau et aux pertes de couche de liaison. L'utilisation gĂ©nĂ©ralisĂ©e de TCP pour le trafic HTTPS est due Ă l'omniprĂ©sence du premier (presque tous les systĂšmes d'exploitation contiennent TCP), Ă la disponibilitĂ© sur la plupart des infrastructures (telles que les Ă©quilibreurs de charge, les proxys HTTPS et les CDN) et aux fonctionnalitĂ©s prĂȘtes Ă l'emploi disponibles. sur presque la plupart des plateformes et rĂ©seaux.
La plupart des utilisateurs utilisent notre application en déplacement, et les latences de queue TCP étaient loin de répondre aux exigences de notre trafic HTTPS en temps réel. En termes simples, les utilisateurs du monde entier en ont fait l'expérience. La figure 1 montre les retards dans les grandes villes :
Figure 1 : La latence de queue varie selon les principales villes d'Uber.
Bien que la latence sur les rĂ©seaux indiens et brĂ©siliens soit plus Ă©levĂ©e qu'aux Ătats-Unis et au Royaume-Uni, la latence de queue est nettement supĂ©rieure Ă la latence moyenne. Et cela est vrai mĂȘme aux Ătats-Unis et au Royaume-Uni.
Performances TCP en direct
TCP a Ă©tĂ© créé pour filaire rĂ©seaux, câest-Ă -dire en mettant lâaccent sur des liens hautement prĂ©visibles. Cependant, sans fil Les rĂ©seaux ont leurs propres caractĂ©ristiques et difficultĂ©s. PremiĂšrement, les rĂ©seaux sans fil sont sensibles aux pertes dues aux interfĂ©rences et Ă lâattĂ©nuation du signal. Par exemple, les rĂ©seaux Wi-Fi sont sensibles aux micro-ondes, au Bluetooth et Ă dâautres ondes radio. Les rĂ©seaux cellulaires souffrent de perte de signal () en raison de la rĂ©flexion/absorption du signal par les objets et les bĂątiments, ainsi que par du voisin . Cela conduit Ă des rĂ©sultats plus importants (4 Ă 10 fois) et plus diversifiĂ©s. et la perte de paquets par rapport Ă une connexion filaire.
Pour lutter contre les fluctuations et les pertes de bande passante, les rĂ©seaux cellulaires utilisent gĂ©nĂ©ralement de grandes mĂ©moires tampon pour les rafales de trafic. Cela peut entraĂźner des files dâattente excessives, ce qui signifie des dĂ©lais plus longs. TrĂšs souvent, TCP traite cette file d'attente comme un gaspillage en raison d'un dĂ©lai d'attente prolongĂ©, donc TCP a tendance Ă relayer et ainsi Ă remplir le tampon. Ce problĂšme est connu sous le nom (), et c'est trĂšs Internet moderne.
Enfin, les performances du rĂ©seau cellulaire varient selon l'opĂ©rateur, la rĂ©gion et l'heure. Dans la figure 2, nous avons collectĂ© les dĂ©lais mĂ©dians du trafic HTTPS entre les cellules dans un rayon de 2 kilomĂštres. DonnĂ©es collectĂ©es pour deux principaux opĂ©rateurs de tĂ©lĂ©phonie mobile Ă Delhi, en Inde. Comme vous pouvez le constater, les performances varient dâune cellule Ă lâautre. De plus, la productivitĂ© d'un opĂ©rateur diffĂšre de la productivitĂ© du second. Ceci est influencĂ© par des facteurs tels que les modĂšles d'entrĂ©e dans le rĂ©seau prenant en compte l'heure et le lieu, la mobilitĂ© des utilisateurs, ainsi que l'infrastructure rĂ©seau prenant en compte la densitĂ© des tours et le ratio des types de rĂ©seaux (LTE, 3G, etc.).
Figure 2. Retards en utilisant un rayon de 2 km comme exemple. Delhi, Inde.
De plus, les performances des rĂ©seaux cellulaires varient dans le temps. La figure 3 montre la latence mĂ©diane par jour de la semaine. Nous avons Ă©galement observĂ© des diffĂ©rences Ă plus petite Ă©chelle, au sein dâune mĂȘme journĂ©e et dâune mĂȘme heure.
Figure 3. Les retards peuvent varier considĂ©rablement d'un jour Ă l'autre, mais pour le mĂȘme opĂ©rateur.
Tout ce qui précÚde rend les performances TCP inefficaces dans les réseaux sans fil. Cependant, avant de chercher des alternatives au TCP, nous avons souhaité développer une compréhension précise sur les points suivants :
- TCP est-il le principal responsable des latences de queue dans nos applications ?
- Les réseaux modernes présentent-ils des délais aller-retour (RTT) importants et variés ?
- Quel est lâimpact du RTT et de la perte sur les performances TCP ?
Analyse des performances TCP
Pour comprendre comment nous avons analysé les performances de TCP, examinons rapidement comment TCP transfÚre les données d'un expéditeur à un destinataire. Tout d'abord, l'expéditeur établit une connexion TCP, effectuant une communication à trois : L'expéditeur envoie un paquet SYN, attend un paquet SYN-ACK du récepteur, puis envoie un paquet ACK. Une deuxiÚme et une troisiÚme passe supplémentaires sont consacrées à l'établissement de la connexion TCP. Le destinataire accuse réception de chaque paquet (ACK) pour garantir une livraison fiable.
Si un paquet ou un ACK est perdu, l'expéditeur retransmet aprÚs un délai d'attente (RTO, ). Le RTO est calculé dynamiquement en fonction de divers facteurs, tels que le délai RTT attendu entre l'expéditeur et le destinataire.
Figure 4. L'échange de paquets sur TCP/TLS inclut un mécanisme de retransmission.
Pour déterminer les performances de TCP dans nos applications, nous avons surveillé les paquets TCP à l'aide de pendant une semaine sur le trafic de combat provenant des serveurs Edge indiens. Nous avons ensuite analysé les connexions TCP en utilisant De plus, nous avons créé AndroidUne application envoyait du trafic simulé vers un serveur de test, imitant au mieux le trafic réel. Des smartphones équipés de cette application ont été distribués à plusieurs employés qui ont collecté des journaux d'activité pendant plusieurs jours.
Les rĂ©sultats des deux expĂ©riences Ă©taient cohĂ©rents les uns avec les autres. Nous avons constatĂ© des latences RTT Ă©levĂ©es ; les valeurs extrĂȘmes Ă©taient presque 6 fois supĂ©rieures Ă la valeur mĂ©diane ; la moyenne arithmĂ©tique des retards est supĂ©rieure Ă 1 seconde. De nombreuses connexions Ă©taient avec perte, ce qui obligeait TCP Ă retransmettre 3,5 % de tous les paquets. Dans les zones encombrĂ©es comme les aĂ©roports et les gares, nous avons constatĂ© des pertes de 7 %. Ces rĂ©sultats remettent en question l'idĂ©e reçue selon laquelle ceux utilisĂ©s dans les rĂ©seaux cellulaires rĂ©duire considĂ©rablement les pertes au niveau du transport. Ci-dessous les rĂ©sultats des tests de l'application « simulateur » :
Métriques du réseau
Les valeurs
RTT, millisecondes [50 %, 75 %, 95 %, 99 %]
[350, 425, 725, 2300]
Divergence RTT, secondes
En moyenne ~1,2 s
Perte de paquets sur des connexions instables
Moyenne ~3.5% (7% dans les zones surchargées)
PrÚs de la moitié de ces connexions ont subi au moins une perte de paquet, la plupart étant des paquets SYN et SYN-ACK. La plupart des implémentations TCP utilisent une valeur RTO de 1 seconde pour les paquets SYN, qui augmente de façon exponentielle en cas de pertes ultérieures. Les temps de chargement des applications peuvent augmenter car TCP met plus de temps à établir les connexions.
Dans le cas des paquets de donnĂ©es, des valeurs RTO Ă©levĂ©es rĂ©duisent considĂ©rablement l'utilisation utile du rĂ©seau en prĂ©sence de pertes transitoires dans les rĂ©seaux sans fil. Nous avons constatĂ© que le temps moyen de retransmission est d'environ 1 seconde avec un retard de prĂšs de 30 secondes. Ces latences Ă©levĂ©es au niveau TCP ont provoquĂ© des dĂ©lais d'attente et des nouvelles requĂȘtes HTTPS, augmentant encore la latence et l'inefficacitĂ© du rĂ©seau.
Alors que le 75e centile du RTT mesurĂ© Ă©tait d'environ 425 ms, le 75e centile du TCP Ă©tait de prĂšs de 3 secondes. Cela laisse entendre que la perte a amenĂ© TCP Ă effectuer 7 Ă 10 passes pour transmettre avec succĂšs les donnĂ©es. Cela peut ĂȘtre une consĂ©quence d'un calcul RTO inefficace, de l'incapacitĂ© de TCP Ă rĂ©pondre rapidement aux pertes. dans la fenĂȘtre et l'inefficacitĂ© de l'algorithme de contrĂŽle de congestion, qui ne fait pas de distinction entre les pertes sans fil et les pertes dues Ă la congestion du rĂ©seau. Vous trouverez ci-dessous les rĂ©sultats des tests de perte TCP :
Statistiques de perte de paquets TCP
Valeur
Pourcentage de connexions avec au moins 1 perte de paquet
45 %
Pourcentage de connexions avec pertes lors de l'établissement de la connexion
30 %
Pourcentage de connexions avec pertes lors de l'échange de données
76 %
Distribution des délais de retransmission, secondes [50 %, 75 %, 95 %, 99 %]
[1, 2.8, 15, 28]
Répartition du nombre de retransmissions pour un paquet ou un segment TCP
[1,3,6,7]
Application de QUIC
Développé à l'origine par Google, QUIC est un protocole de transport moderne multithread qui s'exécute sur UDP. Actuellement, QUIC est en (nous avons déjà écrit qu'il existe en quelque sorte deux versions de QUIC, curieux - environ. traducteur). Comme le montre la figure 5, QUIC est placé sous HTTP/3 (en fait, HTTP/2 au-dessus de QUIC est HTTP/3, qui fait actuellement l'objet d'une normalisation intensive). Il remplace partiellement les couches HTTPS et TCP en utilisant UDP pour former des paquets. QUIC ne prend en charge que le transfert de données sécurisé car TLS est entiÚrement intégré à QUIC.

Figure 5 : QUIC s'exécute sous HTTP/3, remplaçant TLS, qui s'exécutait auparavant sous HTTP/2.
Voici les raisons qui nous ont convaincu dâutiliser QUIC pour lâamplification TCP :
- Ătablissement de la connexion 0-RTT. QUIC permet la rĂ©utilisation des autorisations des connexions prĂ©cĂ©dentes, rĂ©duisant ainsi le nombre de poignĂ©es de main de sĂ©curitĂ©. Dans le futur prendra en charge 0-RTT, mais une nĂ©gociation TCP Ă trois voies sera toujours requise.
- surmonter le blocage HoL. HTTP/2 utilise une connexion TCP par client pour amĂ©liorer les performances, mais cela peut conduire Ă un blocage HoL (tĂȘte de ligne). QUIC simplifie le multiplexage et transmet les requĂȘtes Ă l'application de maniĂšre indĂ©pendante.
- contrÎle des embouteillages. QUIC réside au niveau de la couche application, ce qui facilite la mise à jour de l'algorithme de transport principal qui contrÎle l'envoi en fonction des paramÚtres du réseau (nombre de pertes ou RTT). La plupart des implémentations TCP utilisent l'algorithme , ce qui n'est pas optimal pour le trafic sensible à la latence. Des algorithmes récemment développés comme , modélisez plus précisément le réseau et optimisez la latence. QUIC vous permet d'utiliser BBR et de mettre à jour cet algorithme au fur et à mesure de son utilisation. .
- reconstitution des pertes. QUIC appelle deux TLP () avant le dĂ©clenchement du RTO - mĂȘme lorsque les pertes sont trĂšs perceptibles. Ceci est diffĂ©rent des implĂ©mentations TCP. TLP retransmet principalement le dernier paquet (ou le nouveau, s'il y en a un) pour dĂ©clencher un rĂ©approvisionnement rapide. La gestion des retards est particuliĂšrement utile pour la maniĂšre dont Uber exploite son rĂ©seau, notamment pour les transferts de donnĂ©es courts, sporadiques et sensibles Ă la latence.
- ACK optimisĂ©. Puisque chaque paquet possĂšde un numĂ©ro de sĂ©quence unique, il nây a aucun problĂšme paquets lors de leur retransmission. Les paquets ACK contiennent Ă©galement du temps pour traiter le paquet et gĂ©nĂ©rer un ACK cĂŽtĂ© client. Ces fonctionnalitĂ©s garantissent que QUIC calcule le RTT avec plus de prĂ©cision. ACK dans QUIC prend en charge jusqu'Ă 256 bandes , aidant l'expĂ©diteur Ă ĂȘtre plus rĂ©silient au brassage des paquets et Ă utiliser moins d'octets dans le processus. ACK sĂ©lectif () dans TCP ne rĂ©sout pas ce problĂšme dans tous les cas.
- migration de connexion. Les connexions QUIC sont identifiĂ©es par un ID de 64 bits, donc si un client change d'adresse IP, l'ancien ID de connexion peut continuer Ă ĂȘtre utilisĂ© sur la nouvelle adresse IP sans interruption. Il s'agit d'une pratique trĂšs courante pour les applications mobiles oĂč l'utilisateur bascule entre les connexions Wi-Fi et cellulaires.
Alternatives Ă QUIC
Nous avons envisagé des approches alternatives pour résoudre le problÚme avant de choisir QUIC.
La premiĂšre chose que nous avons essayĂ©e a Ă©tĂ© de dĂ©ployer des PoP (Points de prĂ©sence) TPC pour terminer les connexions TCP plus prĂšs des utilisateurs. Essentiellement, les PoP mettent fin Ă une connexion TCP avec un appareil mobile plus proche du rĂ©seau cellulaire et renvoient le trafic vers l'infrastructure d'origine. En terminant TCP plus prĂšs, nous pouvons potentiellement rĂ©duire le RTT et garantir que TCP soit plus rĂ©actif Ă un environnement sans fil dynamique. Cependant, nos expĂ©riences ont montrĂ© que la majeure partie du RTT et des pertes proviennent des rĂ©seaux cellulaires et que lâutilisation de PoP nâapporte pas dâamĂ©lioration significative des performances.
Nous avons Ă©galement examinĂ© le rĂ©glage des paramĂštres TCP. La configuration d'une pile TCP sur nos serveurs pĂ©riphĂ©riques hĂ©tĂ©rogĂšnes Ă©tait difficile car TCP a des implĂ©mentations disparates selon les diffĂ©rentes versions de systĂšme d'exploitation. Il Ă©tait difficile de mettre en Ćuvre cela et de tester diffĂ©rentes configurations rĂ©seau. La configuration de TCP directement sur les appareils mobiles n'Ă©tait pas possible en raison du manque d'autorisations. Plus important encore, des fonctionnalitĂ©s telles que les connexions 0-RTT et la prĂ©diction RTT amĂ©liorĂ©e sont essentielles Ă l'architecture du protocole et il est donc impossible d'obtenir des avantages significatifs en rĂ©glant uniquement TCP.
Enfin, nous avons évalué plusieurs protocoles basés sur UDP permettant de résoudre les problÚmes de streaming vidéo. Nous voulions voir si ces protocoles seraient utiles dans notre cas. Malheureusement, ils manquaient cruellement de nombreux paramÚtres de sécurité et nécessitaient également une connexion TCP supplémentaire pour les métadonnées et les informations de contrÎle.
Nos recherches ont montrĂ© que QUIC est peut-ĂȘtre le seul protocole capable de rĂ©soudre le problĂšme du trafic Internet, tout en prenant en compte Ă la fois la sĂ©curitĂ© et les performances.
Intégration de QUIC dans la plateforme
Pour intégrer avec succÚs QUIC et améliorer les performances des applications dans des environnements de connectivité médiocre, nous avons remplacé l'ancienne pile (HTTP/2 sur TLS/TCP) par le protocole QUIC. Nous avons utilisé la bibliothÚque réseau de , qui contient la version originale de Google du protocole - gQUIC. Cette implémentation est également constamment améliorée pour suivre la derniÚre spécification de l'IETF.
Nous avons d'abord intĂ©grĂ© Cronet Ă notre Android-applications pour ajouter la prise en charge de QUIC. L'intĂ©gration a Ă©tĂ© mise en Ćuvre afin de minimiser les coĂ»ts de migration. Au lieu de remplacer complĂštement l'ancienne pile rĂ©seau qui utilisait la bibliothĂšque , nous avons intĂ©grĂ© Cronet SOUS le framework API OkHttp. En procĂ©dant Ă l'intĂ©gration de cette façon, nous avons Ă©vitĂ© de modifier nos appels rĂ©seau (qui sont utilisĂ©s par ) au niveau de l'API.
Similaire à l'approche de Android-appareils, nous avons implémenté Cronet dans les applications Uber iOS, interceptant le trafic HTTP provenant du réseau Utilisation . Cette abstraction, fournie par la Fondation iOS, gÚre les données URL spécifiques au protocole et garantit que nous pouvons intégrer Cronet dans nos applications iOS sans coûts de migration importants.
Compléter QUIC sur les Google Cloud Balancers
CĂŽtĂ© backend, la complĂ©tion QUIC est assurĂ©e par l'infrastructure d'Ă©quilibrage de charge Google Cloud, qui utilise en-tĂȘtes dans les rĂ©ponses pour prendre en charge QUIC. En gĂ©nĂ©ral, l'Ă©quilibreur ajoute un en-tĂȘte alt-svc Ă chaque requĂȘte HTTP, ce qui valide dĂ©jĂ la prise en charge de QUIC pour le domaine. Lorsqu'un client Cronet reçoit une rĂ©ponse HTTP avec cet en-tĂȘte, il utilise QUIC pour les requĂȘtes HTTP ultĂ©rieures vers ce domaine. Une fois que l'Ă©quilibreur a terminĂ© le QUIC, notre infrastructure envoie explicitement cette action via HTTP2/TCP Ă nos centres de donnĂ©es.
Performance : résultats
Les performances de sortie sont la principale raison de notre recherche dâun meilleur protocole. Pour commencer, nous avons créé un stand avec pour savoir comment QUIC se comportera sous diffĂ©rents profils de rĂ©seau. Pour tester les performances de QUIC sur les rĂ©seaux du monde rĂ©el, nous avons menĂ© des expĂ©riences en conduisant autour de New Delhi en utilisant un trafic rĂ©seau Ă©mulĂ© trĂšs similaire aux appels HTTP dans l'application passagers.
expérience 1
Matériel pour l'expérience :
- appareils de test sur Android avec les piles OkHttp et Cronet pour garantir que nous acheminons le trafic HTTPS via TCP et QUIC respectivement ;
- un serveur d'Ă©mulation basĂ© sur Java qui envoie le mĂȘme type d'en-tĂȘtes HTTPS dans les rĂ©ponses et charge les appareils clients pour recevoir des requĂȘtes de leur part ;
- des proxys cloud physiquement situĂ©s Ă proximitĂ© de l'Inde pour mettre fin aux connexions TCP et QUIC. Alors que pour la terminaison TCP, nous avons utilisĂ© un proxy inverse sur , il Ă©tait difficile de trouver un proxy inverse open source pour QUIC. Nous avons nous-mĂȘmes construit un proxy inverse pour QUIC en utilisant la pile QUIC de base de Chromium et en chrome en open source.
Figure 6. La feuille de route pour les tests TCP vs QUIC comprenait : Android- des appareils avec OkHttp et Cronet, des proxys cloud pour la terminaison des connexions et un serveur d'émulation.
expérience 2
Lorsque Google a rendu QUIC disponible avec , nous avons utilisĂ© le mĂȘme inventaire, mais avec une modification : au lieu de NGINX, nous avons utilisĂ© les Ă©quilibreurs de charge Google pour mettre fin aux connexions TCP et QUIC des appareils, ainsi que pour acheminer le trafic HTTPS vers le serveur d'Ă©mulation. Les Balancers sont distribuĂ©s partout dans le monde, mais utilisent le serveur PoP le plus proche de l'appareil (grĂące Ă la gĂ©olocalisation).
Figure 7. Dans la deuxiÚme expérience, nous voulions comparer la latence d'achÚvement de TCP et QUIC : en utilisant Google Cloud et en utilisant notre proxy cloud.
De ce fait, plusieurs révélations nous attendaient :
- la terminaison via PoP a amĂ©liorĂ© les performances TCP. Ătant donnĂ© que les Ă©quilibreurs terminent les connexions TCP plus prĂšs des utilisateurs et sont hautement optimisĂ©s, cela se traduit par des RTT plus faibles, ce qui amĂ©liore les performances TCP. Et mĂȘme si QUIC a Ă©tĂ© moins affectĂ©, il a tout de mĂȘme surpassĂ© TCP en termes de rĂ©duction de la latence de queue (de 10 Ă 30 %).
- les queues sont affectĂ©es . Bien que notre proxy QUIC soit plus Ă©loignĂ© des appareils (latence environ 50 ms plus Ă©levĂ©e) que les Ă©quilibreurs de charge de Google, il a fourni des performances similaires : une rĂ©duction de 15 % de la latence contre une rĂ©duction de 20 % du 99e centile pour TCP. Cela suggĂšre que la transition du dernier kilomĂštre constitue un goulot dâĂ©tranglement dans le rĂ©seau.
Figure 8 : Les résultats de deux expériences montrent que QUIC surpasse considérablement TCP.
Combattre le trafic
InspirĂ©s par ces expĂ©riences, nous avons implĂ©mentĂ© la prise en charge de QUIC dans notre Android et les applications iOS. Nous avons menĂ© des tests A/B pour dĂ©terminer l'impact de QUIC dans les villes oĂč Uber est prĂ©sent. Globalement, nous avons constatĂ© une rĂ©duction significative de la latence de queue, tous opĂ©rateurs et types de rĂ©seaux confondus.
Les graphiques ci-dessous montrent les améliorations en pourcentage des queues (95 et 99 centiles) par macro-région et différents types de réseaux : LTE, 3G, 2G.
Figure 9. Lors des tests de combat, QUIC a surpassé TCP en termes de latence.
Transférer seulement
Ce n'est peut-ĂȘtre qu'un dĂ©but : la mise en production de QUIC a offert d'incroyables opportunitĂ©s d'amĂ©liorer les performances des applications dans les rĂ©seaux stables et instables, Ă savoir :
Couverture accrue
AprĂšs avoir analysĂ© les performances du protocole sur le trafic rĂ©el, nous avons constatĂ© qu'environ 80 % des sessions utilisaient avec succĂšs QUIC pour tous requĂȘtes, tandis que 15 % des sessions utilisaient une combinaison de QUIC et TCP. Nous supposons que cette combinaison est due au dĂ©lai d'attente de la bibliothĂšque Cronet vers TCP, car elle ne peut pas faire la distinction entre les Ă©checs UDP rĂ©els et les mauvaises conditions du rĂ©seau. Nous recherchons actuellement une solution Ă ce problĂšme alors que nous travaillons Ă la mise en Ćuvre ultĂ©rieure de QUIC.
Optimisation QUIC
Le trafic provenant des applications mobiles est sensible Ă la latence, mais pas Ă la bande passante. De plus, nos applications sont principalement utilisĂ©es sur les rĂ©seaux cellulaires. D'aprĂšs les expĂ©riences, les latences de queue sont toujours Ă©levĂ©es mĂȘme si l'on utilise un proxy pour terminer TCP et QUIC Ă proximitĂ© des utilisateurs. Nous recherchons activement des moyens d'amĂ©liorer la gestion de la congestion et d'amĂ©liorer l'efficacitĂ© des algorithmes de rĂ©cupĂ©ration des pertes QUIC.
GrĂące Ă ces amĂ©liorations et Ă plusieurs autres, nous prĂ©voyons dâamĂ©liorer lâexpĂ©rience utilisateur quels que soient le rĂ©seau et la rĂ©gion, rendant ainsi le transport de paquets pratique et transparent plus accessible dans le monde entier.
Source: habr.com
