L'équilibrage de charge de couche 4 utilise les informations définies au niveau de la couche de transport réseau (couche 4) comme base pour décider comment distribuer les demandes des clients sur un groupe de serveurs. Pour le trafic Internet en particulier, un équilibreur de charge de couche 4 base la décision d'équilibrage de charge 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 du paquet.
Il existe au total sept couches réseau, définies par le modèle de référence d'interconnexion des systèmes ouverts [OSI]. Pour plus d’informations, voir Couches dans les 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 .
Aujourd’hui, le terme « équilibrage de charge de couche 4 » fait le plus souvent référence à un déploiement dans lequel l’adresse IP de l’équilibreur de charge est celle annoncée aux clients pour un site Web ou un service (via DNS, par exemple). Par conséquent, les clients enregistrent l’adresse de l’équilibreur de charge comme adresse IP de destination dans leurs demandes.
Lorsque l'équilibreur de charge de couche 4 reçoit une demande et prend la décision d'équilibrage de charge, il effectue également une traduction d'adresses réseau (NAT) sur le paquet de demande, en modifiant l'adresse IP de destination enregistrée de la sienne à 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 modifie l’adresse source enregistrée dans l’en-tête du paquet de l’adresse IP du serveur à la sienne. (Les numéros de port TCP de destination et de source enregistrés dans les paquets sont parfois également modifiés de manière similaire.)
Les équilibreurs de charge de couche 4 prennent leurs décisions de routage en fonction des informations d’adresse extraites des premiers paquets du flux TCP et n’inspectent pas le contenu des paquets. Un équilibreur de charge de couche 4 est souvent un périphérique matériel dédié fourni par un fournisseur et exécute un logiciel d'équilibrage de charge propriétaire, et les opérations NAT peuvent être effectuées par des puces spécialisées plutôt que par un logiciel.
L'équilibrage de charge de couche 4 était une approche architecturale populaire pour la gestion du trafic lorsque le matériel standard n'était pas aussi puissant qu'aujourd'hui et que l'interaction entre les clients et les serveurs d'applications était beaucoup moins complexe. Cela nécessite moins de calculs que les méthodes d’équilibrage de charge plus sophistiquées (telles que la couche 7), mais le processeur et la mémoire sont désormais suffisamment rapides et bon marché pour que l’avantage de performance de l’équilibrage de charge de la couche 4 soit devenu négligeable ou sans importance dans la plupart des situations.
Les équilibreurs 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 à cette couche). Les équilibreurs de charge de couche 7 basent leurs décisions de routage sur diverses caractéristiques de l'en-tête HTTP et sur le contenu réel du message, tel que l'URL, le type de données (texte, vidéo, graphiques) ou les informations contenues dans un cookie.
La prise en compte de nombreux autres aspects des informations transférées peut rendre l'équilibrage de charge de la couche 7 plus coûteux que celui de la couche 4 en termes de temps et de puissance de calcul requise, mais elle peut néanmoins conduire à une plus grande efficacité globale. Par exemple, étant donné qu'un équilibreur de charge de couche 7 peut déterminer le type de données (vidéo, texte, etc.) demandé par un client, vous n'avez pas besoin de dupliquer les mêmes données sur tous les serveurs équilibrés en charge.
Les équilibreurs de charge modernes à usage général, tels que NGINX Plus et le logiciel open source NGINX, fonctionnent généralement au niveau de la couche 7 et servent de proxys inverses complets. Plutôt que de gérer le trafic paquet par paquet comme les équilibreurs de charge de couche 4 qui utilisent 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 sur la base d’une compréhension complète de la transaction entre le client et le serveur d’application.
Certains équilibreurs de charge peuvent être configurés pour fournir un équilibrage de charge de couche 4 ou de couche 7, selon la nature du service. Comme mentionné précédemment, le matériel moderne est généralement suffisamment puissant pour que les économies de coûts de calcul réalisées grâce à l’équilibrage de charge de couche 4 ne soient pas suffisamment importantes pour contrebalancer les avantages d’une plus grande flexibilité et d’une plus grande efficacité grâce à l’équilibrage de charge de couche 7.
NGINX Plus et NGINX sont les meilleures solutions d'équilibrage de charge utilisées par les sites Web à fort trafic tels que Dropbox, Netflix et Zynga. Plus de 350 millions de sites Web dans le monde s'appuient sur 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 basé sur un logiciel, NGINX Plus est beaucoup moins cher que les solutions matérielles dotées de capacités similaires. Les fonctionnalités complètes d'équilibrage de charge de NGINX Plus vous permettent de créer un réseau de distribution d'applications hautement optimisé.
Lorsque vous insérez NGINX Plus comme équilibreur de charge devant votre batterie de serveurs, cela augmente l'efficacité, les performances, la fiabilité et l'évolutivité de l'ensemble de votre site Web. NGINX Plus vous aide à maximiser à la fois la satisfaction client et le retour sur vos investissements informatiques.
Pour le trafic Internet, faire référence à l’équilibrage de charge de « couche 4 » et de « couche 7 » est un raccourci pratique, mais pas tout à fait exact. Si vous êtes intéressé, lisez la suite.
La notion de sept couches réseau provient du modèle de référence d'interconnexion de systèmes ouverts (OSI). Le modèle sépare les fonctions réseau en sept couches abstraites, communément désignées par leurs numéros (couches 1 à 7). À chaque couche, il existe des normes qui définissent la manière dont les données sont conditionnées et transportées. Les normes définissent, entre autres, comment segmenter le flux de bits qui constitue une demande ou une réponse en paquets discrets appelés unités de données de protocole (PDU). Les normes définissent également les métadonnées ajoutées à chaque PDU sous la forme d'un en-tête ; les métadonnées peuvent spécifier les adresses des hôtes d'origine et de destination, par exemple.
L’attribution de différents aspects de la fonctionnalité 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 à leur propre niveau de segmentation des données.
La répartition des fonctions réseau entre les protocoles de base pour le trafic sur le World Wide Web – collectivement appelés la suite de protocoles Internet (IP) – n’est pas exactement conforme au modèle OSI. Cela est dû au fait que la suite IP a été définie et mise en œuvre avant la publication du modèle OSI finalisé en 1984. Néanmoins, les différents protocoles de la suite IP remplissent des fonctions distinctes qui correspondent approximativement aux couches OSI.
Plusieurs protocoles sont définis à chaque niveau, mais voici les protocoles et niveaux pertinents pour l'équilibrage de charge du trafic du site Web :
Comme le montre clairement cette liste, faire référence à « l’équilibrage de charge de couche 4 » du trafic Internet est un raccourci pratique, mais le terme plus précis est « équilibrage de charge de couche 3/4 » – car l’équilibreur 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 « équilibrage de charge de couche 7 » pourrait être « équilibrage de charge de couche 5 à 7 », car HTTP combine les fonctions des couches 5, 6 et 7 OSI.