28 février 2023

TCP Fast Open, améliore les performances du réseau et réduit la latence TCP grâce à TFO

Qu'est-ce que TCP Fast Open et comment l'implémenter correctement sur les systèmes Linux et Web Server Apache et NGINX

Introduction

L'expérience utilisateur est l'un des éléments clés du succès de tout site Web, et la vitesse de chargement est un facteur crucial affectant la perception de l'utilisateur. De plus, la vitesse du site Web a un impact significatif sur le classement des moteurs de recherche, car les moteurs de recherche accordent de plus en plus de poids à la vitesse du site Web dans leur algorithme de classement.

Pour améliorer la vitesse du site web, l'un des facteurs importants à considérer est le TTFB (Time To First Byte), c'est-à-dire le temps écoulé entre la requête du client au serveur et la réception de la première réponse du serveur. Un faible TTFB peut aider à augmenter la vitesse de chargement du site Web et améliorer l'expérience utilisateur.

Cependant, le processus de connexion entre le client et le serveur peut être une limitation majeure pour TTFB. La poignée de main à trois voies de TCP nécessite trois messages pour établir une connexion, et ce processus peut prendre plus de temps, augmentant le TTFB et ralentissant le site Web.

Pour pallier ce problème, il a été développé TCP Fast Open, une technologie qui permet de réduire le temps nécessaire pour établir une connexion TCP, améliorant les performances du réseau et la vitesse de chargement du site Web. En implémentant TCP Fast Open, le serveur peut envoyer des données au client dès la phase de prise de contact, ce qui réduit le temps nécessaire pour établir la connexion et améliore le TTFB et la latence du site Web.

Qu'est-ce que TCP Fast Open ?

TCP Fast Open (TFO) est une technologie d'optimisation des performances réseau du protocole TCP (Transmission Control Protocol) qui permet de réduire le temps nécessaire à l'ouverture des connexions réseau. En pratique, TFO prévoit l'envoi de données critiques pendant la phase d'ouverture de la connexion elle-même, sans avoir à attendre le résultat de la poignée de main à trois, qui a normalement lieu entre le client et le serveur. Cela réduit les délais d'ouverture de connexion, améliorant ainsi les performances globales du réseau.

Objectifs du poste

L'objectif de cet article est de fournir un aperçu complet de TCP Fast Open, en expliquant le fonctionnement de la technologie, ses avantages et ses inconvénients, et comment l'activer sur les serveurs et les clients. En particulier, le billet s'adresse à ceux qui ont une connaissance de base du protocole TCP et qui souhaitent en savoir plus sur le sujet, par exemple pour améliorer les performances de leur réseau ou mieux comprendre les mécanismes de fonctionnement du protocole.

Ce billet vise à avoir à la fois un but d'introduction et de mise en œuvre pour les utilisateurs généraux et les initiés tels que les ingénieurs en systèmes informatiques qui souhaiteraient améliorer l'efficacité de leur réseau, les performances de TCP/IP et améliorer sa vitesse en particulier dans un contexte où vous souhaitez utiliser le protocole HTTP ou HTTP/2 plutôt que HTTP3 ou QUIC qui utilise normalement des connexions UDP plutôt que TCP.

Comprendre le fonctionnement de TCP

Le modèle de communication TCP

Le protocole TCP est l'un des protocoles de communication les plus utilisés au niveau du réseau. Il est basé sur un modèle de communication par flux d'octets, c'est-à-dire que les données sont envoyées et reçues sous la forme d'un flux continu d'octets, sans interruption. Le protocole assure la fiabilité de la communication, c'est-à-dire qu'il garantit que les données sont reçues correctement et dans l'ordre, grâce à l'utilisation de numéros de séquence et d'accusés de réception.

La poignée de main à trois

Pour établir une connexion TCP entre un client et un serveur, un mécanisme de prise de contact à trois voies, appelé « prise de contact à trois voies », est utilisé. Fondamentalement, le client envoie un paquet SYN au serveur, le serveur répond avec un paquet SYN/ACK et enfin le client envoie un paquet ACK pour confirmer la connexion. Ce mécanisme de prise de contact garantit que le client et le serveur sont synchronisés et prêts à échanger des données de manière fiable.

Poignée de main à trois voies

La congestion du réseau

Le protocole TCP dispose également d'un mécanisme de contrôle de la congestion du réseau. En pratique, le protocole surveille en permanence les performances du réseau, pour éviter d'envoyer trop de données en même temps et de provoquer une congestion du réseau. Si le réseau devient congestionné, le protocole réduit la vitesse de transmission des données, pour éviter d'aggraver la situation.

De manière générale, le protocole TCP a été conçu pour assurer une grande fiabilité des communications, mais au détriment des performances du réseau en termes de vitesse de transmission des données.

TCP Fast Open : comment ça marche

La poignée de main à trois de TFO

TCP Fast Open fournit un mécanisme de poignée de main alternatif à la poignée de main traditionnelle à trois voies. En pratique, lors de la phase d'ouverture de connexion, le client envoie un paquet SYN avec un champ de données supplémentaire (cookie TFO), qui contient des informations sur la connexion précédente. Le serveur peut utiliser ces informations pour authentifier la demande du client et répondre immédiatement avec un paquet SYN/ACK, contenant également un cookie TFO. Le client peut alors envoyer immédiatement les données de connexion critiques, sans attendre le résultat de la poignée de main complète en trois étapes.

TCP rapide ouvert

Comment TFO réduit les délais d'ouverture des connexions

TCP Fast Open réduit les temps d'ouverture de connexion, car il permet au client d'envoyer immédiatement des données de connexion critiques, sans avoir à attendre le résultat de la poignée de main complète à trois. Ce mécanisme est particulièrement utile en cas de requêtes répétitives entre un même client et serveur, par exemple lors du téléchargement de contenu depuis un site Internet. Cela réduit les délais d'ouverture de connexion et améliore les performances globales du réseau.

En général, TCP Fast Open est une technologie d'optimisation des performances réseau du protocole TCP qui permet de réduire le temps d'ouverture des connexions réseau, ce qui améliore les performances globales du réseau.

Implémentation de TCP Fast Open

Prise en charge des systèmes d'exploitation

TCP Fast Open est pris en charge par plusieurs systèmes d'exploitation, dont Linux, macOS et Windows 10. En particulier, à partir de la version 3.6 du noyau Linux, TCP Fast Open est activé par défaut. Dans macOS, TCP Fast Open a été introduit dans la version 10.11. Dans Windows 10, TCP Fast Open est pris en charge à partir de la version 1607.

Activer TCP Fast Open sous Linux

Pour activer TCP Fast Open sous Linux, le système d'exploitation doit disposer d'un noyau prenant en charge cette technologie. En particulier, la prise en charge de TCP Fast Open a été introduite dans la version 3.7 du noyau Linux, il est donc important de vérifier que le noyau de votre système est mis à jour vers cette version ou une version ultérieure.

Une fois la version du noyau vérifiée, TCP Fast Open peut être activé en modifiant les paramètres du noyau via le fichier de configuration /etc/sysctl.conf. Pour ce faire, vous devez ajouter la ligne suivante à votre fichier de configuration :

net.ipv4.tcp_fastopen=3

Ce paramètre active TCP Fast Open sur le système, permettant au serveur d'envoyer des données au client pendant la phase de négociation TCP.

Il est important de noter que pour utiliser TCP Fast Open, le logiciel serveur doit également supporter cette technologie. Par exemple, si vous utilisez apache comme serveur web, vous pouvez activer TCP Fast Open en ajoutant la ligne suivante à votre fichier de configuration :

Accepter le filtre http aucun

Autoriser Ouverture rapide TCP sur NGINX, vous devez vérifier que votre version de NGINX prend en charge cette technologie. En particulier, la prise en charge de TCP Fast Open a été introduite à partir de la version 1.5.7 de NGINX.

Bannières NGINX

Une fois que vous avez vérifié votre version de NGINX, vous pouvez activer TCP Fast Open en ajoutant la ligne suivante à la configuration de votre serveur NGINX :

tcp_fastopen on;

Ce paramètre permet au serveur NGINX d'envoyer des données au client pendant la phase de prise de contact TCP, améliorant ainsi les performances du réseau et la vitesse du site Web.

Il est important de noter que, comme pour Linux, le client doit également prendre en charge TCP Fast Open afin de tirer pleinement parti de cette technologie. Sinon, la technologie sera désactivée.

De plus, vous pouvez configurer des paramètres supplémentaires pour TCP Fast Open dans NGINX, tels que le nombre maximal de connexions TCP Fast Open pour chaque client ou la taille maximale des données pouvant être envoyées pendant la phase de négociation TCP.

De plus, vous devez vérifier que le client prend en charge TCP Fast Open, sinon la technologie ne peut pas être utilisée.

Limites de TCP Fast Open

TCP Fast Open a certaines limitations qui limitent son utilisation dans certains scénarios. Par exemple, TCP Fast Open n'est pas recommandé pour les connexions à des sites Web non fiables, car il peut être vulnérable à l'usurpation d'identité ou aux attaques de l'homme du milieu. De plus, TCP Fast Open nécessite que le serveur prenne en charge cette technologie, sinon elle ne peut pas être utilisée.

Conclusions

Avantages de TCP Fast Open

TCP Fast Open offre plusieurs avantages en termes de performances réseau. Il permet notamment de réduire les temps d'ouverture des connexions réseau et d'améliorer les performances globales du réseau. Cela se traduit par une efficacité accrue des applications qui utilisent le protocole TCP, en particulier celles qui nécessitent une communication rapide et fréquente entre les clients et les serveurs.

Défis liés à la mise en œuvre de TCP Fast Open

Malgré les avantages, la mise en œuvre de TCP Fast Open présente certains défis. En particulier, comme nous l'avons vu, TCP Fast Open nécessite que le serveur prenne en charge cette technologie, ce qui peut limiter son utilité dans certains scénarios. De plus, l'utilisation de TCP Fast Open peut poser des risques de sécurité, en particulier lors de la connexion à des sites Web non fiables.

Vous avez des doutes ? Vous ne savez pas par où commencer ? Contactez-nous !

Nous avons toutes les réponses à vos questions pour vous aider à faire le bon choix.

Discute avec nous

Discutez directement avec notre support avant-vente.

0256569681

Contactez-nous par téléphone pendant les heures de bureau 9h30 - 19h30

Contactez-nous en ligne

Ouvrez une demande directement dans l'espace contact.

INFORMATIONS

Managed Server Srl est un acteur italien leader dans la fourniture de solutions système GNU/Linux avancées orientées vers la haute performance. Avec un modèle d'abonnement peu coûteux et prévisible, nous garantissons que nos clients ont accès à des technologies avancées en matière d'hébergement, de serveurs dédiés et de services cloud. En plus de cela, nous proposons des conseils système sur les systèmes Linux et une maintenance spécialisée en SGBD, sécurité informatique, Cloud et bien plus encore. Nous nous distinguons par notre expertise dans l'hébergement de CMS Open Source de premier plan tels que WordPress, WooCommerce, Drupal, Prestashop, Joomla, OpenCart et Magento, soutenus par un service d'assistance et de conseil de haut niveau adapté aux administrations publiques, aux PME et à toutes tailles.

Red Hat, Inc. détient les droits de Red Hat®, RHEL®, RedHat Linux® et CentOS® ; AlmaLinux™ est une marque commerciale d'AlmaLinux OS Foundation ; Rocky Linux® est une marque déposée de la Rocky Linux Foundation ; SUSE® est une marque déposée de SUSE LLC ; Canonical Ltd. détient les droits sur Ubuntu® ; Software in the Public Interest, Inc. détient les droits sur Debian® ; Linus Torvalds détient les droits sur Linux® ; FreeBSD® est une marque déposée de The FreeBSD Foundation ; NetBSD® est une marque déposée de la Fondation NetBSD ; OpenBSD® est une marque déposée de Theo de Raadt. Oracle Corporation détient les droits sur Oracle®, MySQL® et MyRocks® ; Percona® est une marque déposée de Percona LLC ; MariaDB® est une marque déposée de MariaDB Corporation Ab ; REDIS® est une marque déposée de Redis Labs Ltd. F5 Networks, Inc. détient les droits sur NGINX® et NGINX Plus® ; Varnish® est une marque déposée de Varnish Software AB. Adobe Inc. détient les droits sur Magento® ; PrestaShop® est une marque déposée de PrestaShop SA ; OpenCart® est une marque déposée d'OpenCart Limited. Automattic Inc. détient les droits sur WordPress®, WooCommerce® et JetPack® ; Open Source Matters, Inc. détient les droits sur Joomla® ; Dries Buytaert détient les droits sur Drupal®. Amazon Web Services, Inc. détient les droits sur AWS® ; Google LLC détient les droits sur Google Cloud™ et Chrome™ ; Microsoft Corporation détient les droits sur Microsoft®, Azure® et Internet Explorer® ; La Fondation Mozilla détient les droits sur Firefox®. Apache® est une marque déposée de The Apache Software Foundation ; PHP® est une marque déposée du groupe PHP. CloudFlare® est une marque déposée de Cloudflare, Inc. ; NETSCOUT® est une marque déposée de NETSCOUT Systems Inc. ; ElasticSearch®, LogStash® et Kibana® sont des marques déposées d'Elastic NV. Hetzner Online GmbH détient les droits sur Hetzner® ; OVHcloud est une marque déposée d'OVH Groupe SAS ; cPanel®, LLC détient les droits sur cPanel® ; Plesk® est une marque déposée de Plesk International GmbH ; Facebook, Inc. détient les droits sur Facebook®. Ce site n'est affilié, sponsorisé ou autrement associé à aucune des entités mentionnées ci-dessus et ne représente en aucune manière aucune de ces entités. Tous les droits sur les marques et noms de produits mentionnés sont la propriété de leurs titulaires respectifs des droits d'auteur. Toutes les autres marques mentionnées appartiennent à leurs titulaires. MANAGED SERVER® est une marque déposée au niveau européen par MANAGED SERVER SRL, Via Enzo Ferrari, 9, 62012 Civitanova Marche (MC), Italie.

JUSTE UN MOMENT !

Souhaitez-vous voir comment votre WooCommerce fonctionne sur nos systèmes sans avoir à migrer quoi que ce soit ? 

Entrez l'adresse de votre site WooCommerce et vous obtiendrez une démonstration navigable, sans avoir à faire absolument quoi que ce soit et entièrement gratuite.

Non merci, mes clients préfèrent le site lent.
Retour en haut de page