L’équilibrage de charge de couche 4 utilise les informations définies au niveau de la couche transport (couche 4) du réseau pour déterminer comment répartir les requêtes des clients entre un groupe de serveurs. Pour le trafic Internet en particulier, un équilibreur de charge de couche 4 fonde sa décision sur les adresses IP et les ports source et de destination enregistrés dans l’en-tête du paquet, sans tenir compte du contenu de celui-ci.

Il existe au total sept couches réseau, définies par le modèle de référence OSI (Open Systems Interconnection). Pour plus d’informations, consultez la section Couches des modèles OSI et Internet ci-dessous.

Pour plus d’informations sur l’équilibrage de charge, consultez « Équilibrage de charge des applications avec NGINX Plus ».

Équilibrage de charge de couche 4 et NAT

Aujourd’hui, le terme « équilibrage de charge de couche 4 » désigne le plus souvent un déploiement dans lequel l’adresse IP de l’équilibreur de charge est celle qui est communiquée aux clients pour un site web ou un service (via le DNS, par exemple). Par conséquent, les clients indiquent l’adresse de l’équilibreur de charge comme adresse IP de destination dans leurs requêtes.

Lorsque l’équilibreur de charge de couche 4 reçoit une requête et prend sa décision de répartition de charge, il effectue également une traduction d’adresses réseau (NAT) sur le paquet de la requête, en remplaçant l’adresse IP de destination enregistrée, qui est la sienne, par celle du serveur de contenu qu’il a choisi sur le réseau interne. De même, avant de transmettre les réponses du serveur aux clients, l’équilibreur de charge remplace l’adresse source enregistrée dans l’en-tête du paquet, qui est l’adresse IP du serveur, par la sienne. (Les numéros des ports TCP de destination et source enregistrés dans les paquets sont parfois également modifiés de manière similaire.)

Les répartiteurs de charge de couche 4 prennent leurs décisions de routage en fonction des informations d’adresse extraites des premiers paquets du flux TCP, sans examiner le contenu des paquets. Un répartiteur de charge de couche 4 est souvent un équipement matériel dédié fourni par un fabricant et exécutant un logiciel propriétaire de répartition de charge. Les opérations de traduction d’adresses réseau (NAT) peuvent être effectuées par des puces spécialisées plutôt que par voie logicielle.

L’équilibrage de charge de couche 4 était une approche architecturale courante pour gérer le trafic à une époque où le matériel standard était moins puissant qu’aujourd’hui et où les interactions entre les clients et les serveurs d’applications étaient beaucoup moins complexes. Il nécessite moins de calculs que les méthodes d’équilibrage de charge plus sophistiquées (comme celles de couche 7), mais les processeurs et la mémoire sont désormais suffisamment rapides et peu coûteux pour que l’avantage de l’équilibrage de charge de couche 4 en matière de performances soit devenu négligeable, voire sans intérêt, dans la plupart des situations.

Comparaison des équilibreurs de charge de couche 4 et de couche 7

Les répartiteurs de charge de couche 7 fonctionnent au niveau le plus élevé du modèle OSI, la couche application (sur Internet, HTTP est le protocole dominant à ce niveau). Les répartiteurs de charge de couche 7 fondent leurs décisions de routage sur diverses caractéristiques de l’en-tête HTTP et sur le contenu réel du message, comme l’URL, le type de données (texte, vidéo, images) ou les informations contenues dans un cookie.

La prise en compte d’un nombre bien plus important d’aspects des informations transférées peut rendre l’équilibrage de charge de couche 7 plus coûteux que celui de couche 4 en termes de temps et de puissance de calcul nécessaire, mais peut néanmoins améliorer l’efficacité globale. Par exemple, puisqu’un équilibreur de charge de couche 7 peut déterminer le type de données (vidéo, texte, etc.) demandé par un client, il n’est pas nécessaire de dupliquer les mêmes données sur tous les serveurs soumis à l’équilibrage de charge.

Les équilibreurs de charge polyvalents modernes, tels que NGINX Plus et le logiciel open source NGINX, fonctionnent généralement au niveau de la couche 7 et font office de véritables proxys inverses. Au lieu de gérer le trafic paquet par paquet, comme les équilibreurs de charge de couche 4 qui utilisent la NAT, les proxys d’équilibrage de charge de couche 7 peuvent lire les requêtes et les réponses dans leur intégralité. Ils gèrent et manipulent le trafic en s’appuyant sur une compréhension complète de la transaction entre le client et le serveur d’applications.

Certains répartiteurs de charge peuvent être configurés pour assurer une répartition de charge de couche 4 ou de couche 7, selon la nature du service. Comme indiqué précédemment, le matériel standard moderne est généralement suffisamment puissant pour que les économies de ressources de calcul offertes par la répartition de charge de couche 4 ne compensent pas les avantages de la répartition de charge de couche 7 en matière de flexibilité et d’efficacité.

Comment NGINX peut vous aider

NGINX Plus et NGINX sont des solutions d’équilibrage de charge de premier ordre utilisées par des sites web à fort trafic tels que Dropbox, Netflix et Zynga. Plus de 350 millions de sites web dans le monde font confiance à NGINX Plus et NGINX Open Source pour diffuser leur contenu rapidement, de manière fiable et sécurisée.

En tant qu’équilibreur de charge logiciel, NGINX Plus est bien moins coûteux que les solutions matérielles offrant des fonctionnalités similaires. Les fonctionnalités complètes d’équilibrage de charge de NGINX Plus vous permettent de créer un réseau de diffusion d’applications hautement optimisé.

Lorsque vous placez NGINX Plus comme équilibreur de charge devant votre batterie de serveurs, vous améliorez l’efficacité, les performances, la fiabilité et l’évolutivité de l’ensemble de votre site web. NGINX Plus vous aide à optimiser à la fois la satisfaction de vos clients et le retour sur vos investissements informatiques.

Couches des modèles OSI et Internet

Pour le trafic Internet, parler d’équilibrage de charge de « couche 4 » et de « couche 7 » est un raccourci pratique, mais pas tout à fait exact. Si le sujet vous intéresse, poursuivez votre lecture.

La notion de sept couches réseau provient du modèle de référence pour l’interconnexion des systèmes ouverts (OSI). Ce modèle répartit les fonctions réseau en sept couches abstraites, généralement désignées par leur numéro (de la couche 1 à la couche 7). Pour chaque couche, des normes définissent la manière dont les données sont conditionnées et transportées. Ces normes définissent notamment comment segmenter le flux de bits constituant une requête ou une réponse en paquets distincts appelés unités de données de protocole (PDU). Elles définissent également les métadonnées ajoutées à chaque PDU sous la forme d’un en-tête ; ces métadonnées peuvent, par exemple, préciser les adresses des hôtes d’origine et de destination.

L’attribution des différents aspects des fonctionnalités réseau à différentes couches simplifie le traitement au niveau de chaque couche, car un protocole doit uniquement savoir comment gérer les PDU de sa propre couche et quelles métadonnées inclure dans l’en-tête afin que les protocoles des couches adjacentes puissent reconditionner les PDU selon leur propre niveau de segmentation des données.

La répartition des fonctions réseau entre les protocoles de base régissant le trafic sur le World Wide Web – collectivement désignés sous le nom de « suite de protocoles Internet (IP) » – ne correspond pas exactement au modèle OSI. En effet, la suite IP a été définie et mise en œuvre avant la publication, en 1984, de la version définitive du modèle OSI. Néanmoins, les différents protocoles de la suite IP remplissent des fonctions distinctes qui correspondent approximativement aux couches du modèle OSI.

Plusieurs protocoles sont définis à chaque niveau, mais voici les protocoles et les niveaux pertinents pour la répartition de charge du trafic des sites web :

  • Le protocole Internet (IP) fonctionne au niveau de la couche réseau (couche 3). Ses PDU sont appelées paquets, et IP est chargé de les acheminer d’un hôte source vers un hôte de destination, généralement en traversant les frontières entre les multiples réseaux plus petits qui composent Internet. Chaque appareil directement connecté à Internet possède une adresse IP unique, qui permet de l’identifier comme destinataire des paquets.
  • Le protocole de contrôle de transmission (TCP) fonctionne au niveau de la couche transport (couche 4). TCP crée en pratique une connexion virtuelle entre l’hôte sur lequel s’exécute le navigateur et celui sur lequel s’exécute une application serveur. En raison du manque de fiabilité des réseaux, les paquets IP peuvent être perdus, corrompus ou arriver dans le désordre. TCP dispose de mécanismes permettant de corriger ces erreurs et de transformer le flux de paquets IP en un canal de communication fiable. Chaque application se voit attribuer un numéro de port TCP unique afin que les données soient acheminées vers la bonne application sur les hôtes qui en exécutent plusieurs.
  • Le protocole de transfert hypertexte (HTTP) fonctionne au niveau de la couche application (couche 7). Il définit la manière dont les données sont encodées pour permettre la communication entre les navigateurs web et les serveurs web (ou toute application prenant en charge l’encodage HTTP).

Comme le montre clairement cette liste, parler de « répartition de charge de couche 4 » pour le trafic Internet est un raccourci pratique, mais le terme plus précis est « répartition de charge de couches 3/4 », car le répartiteur de charge fonde sa décision à la fois sur les adresses IP des serveurs d’origine et de destination (couche 3) et sur le numéro de port TCP des applications (couche 4). Le terme le plus exact pour désigner la « répartition de charge de couche 7 » serait peut-être « répartition de charge des couches 5 à 7 », car HTTP combine les fonctions des couches 5, 6 et 7 du modèle OSI.