Proxy TCP comme proxy inverse et équilibreur de charge

Guides, Mar-06-20245 minutes de lecture

Un serveur mandataire TCP (Transport Control Protocol) opère au niveau de la couche TCP du modèle OSI (Open System Interconnection). Le serveur proxy TCP est un proxy intermédiaire entre le client et le serveur de destination. Le client établit une connexion avec le serveur mandataire TCP qui, à son tour, établit une connexion avec le serveur de destination. Le serveur proxy TCP

Un serveur mandataire TCP (Transport Control Protocol) opère au niveau de la couche TCP du modèle OSI ( Open System Interconnection ). Le serveur proxy TCP est un proxy intermédiaire entre le client et le serveur de destination. 

Le client établit une connexion avec le serveur proxy TCP qui, à son tour, établit une connexion avec le serveur de destination. Le serveur mandataire TCP agit à la fois comme serveur et comme client pour accéder aux services qui limitent les connexions en fonction de l'adresse réseau.

Certaines pages web ne sont accessibles qu'à partir de machines internes, et vous recevez un message d'erreur "accès refusé" lorsque vous y accédez à partir d'une autre machine. Toutefois, vous pouvez consulter cette page à partir d'un navigateur web n'importe où sur l'internet en utilisant un proxy sur l'une des machines internes.

Le serveur web pense qu'il sert les données à un client sur la machine qui exécute le proxy. Cependant, le proxy transmet les données au client réel via le réseau. 

Le serveur mandataire accepte les connexions de plusieurs clients et les transmet au serveur en utilisant plusieurs connexions. Le client ou le serveur doit lire ou écrire des données sur ses connexions et ne doit pas bloquer le serveur mandataire en lui refusant toute opération.

Modèle OSI - Aperçu

Les modèles OSI conceptualisent le processus de mise en réseau des ordinateurs. Il comporte sept couches :

  • Couche physique
  • Couche liaison de données
  • Couche réseau
  • Couche transport
  • Couche session
  • Couche de présentation
  • Couche application

La couche transport est responsable du transfert des données sur un réseau. Elle utilise deux protocoles différents, le TCP et le User Datagram Protocol (UDP). Le TCP est couramment utilisé pour le transfert de données et ce protocole indique comment envoyer les données. Il découpe le message en segments et les envoie ensuite de la source à la destination.

Raccordement de la prise

Dans des circonstances normales, un expéditeur et un destinataire transmettent des morceaux de données. L'expéditeur et le destinataire sont en communication avec des machines différentes au même moment. Le proxy établit donc une connexion entre l'expéditeur et le destinataire engagés dans une communication.

Le socket est une connexion logique entre les deux en utilisant l'IP et le numéro de port. Le proxy établit une connexion de socket du côté de l'expéditeur et du destinataire. L'adresse du socket, composée d'une adresse IP et d'un numéro de port, est unique pour la communication entre l'expéditeur et le destinataire.

L'adresse unique du socket garantit que la transmission des données se fait en parallèle et que les paquets n'entrent pas en collision les uns avec les autres.

Mise en œuvre d'un proxy au niveau de la couche TCP

Un proxy TCP reçoit le trafic entrant et ouvre un socket sortant par lequel il achemine le trafic entrant vers le serveur de destination. Il déplace les données entre le client et le serveur, mais ne peut pas les modifier car il ne les comprend pas.

Un proxy à ce niveau a accès à l'adresse IP et au numéro de port auxquels le récepteur tente de se connecter sur le serveur dorsal. Si le serveur utilise le numéro de port 3306 pour écouter les requêtes, le proxy l'implémente à ce niveau et écoute également sur ce port. 

Le proxy écoute ce port et transmet les messages au serveur. Le proxy TCP crée une connexion par l'intermédiaire d'une socket via une seule combinaison hôte/port.

La mise en œuvre d'un proxy au niveau de la couche transport est légère et rapide, car cette couche n'est responsable que du transfert des données.

Le site proxys sert de support pour la transmission de messages dans les deux sens et ne peut pas lire les messages. Ces proxys vous aident à surveiller le réseau, à cacher le réseau interne du réseau public, à mettre les connexions en file d'attente pour éviter la surcharge du serveur et à limiter les connexions. C'est la meilleure solution pour équilibrer la charge des services communiquant sur TCP, comme le trafic des bases de données vers MYSQL et Postgres.

Proxy TCP comme proxy inverse

Un proxy inverse accepte une requête d'un client, la transmet à un serveur qui peut l'exécuter et renvoie la réponse du serveur au client. Vous pouvez déployer un reverse proxy même s'il n'y a qu'un seul serveur ou une seule application.

Le reverse proxy est vu publiquement par les autres utilisateurs du réseau. Il est mis en œuvre à la périphérie du réseau du site pour accepter les demandes des navigateurs web et des applications mobiles. 

La mise en œuvre d'un proxy TCP en tant que proxy inverse présente les avantages suivants :

Sécurité - Elle renforce la sécurité du réseau. Les clients malveillants ne peuvent pas accéder aux serveurs dorsaux car ils ne sont pas visibles du réseau extérieur. Ils ne peuvent pas y accéder directement pour exploiter les vulnérabilités.

Prévention des attaques DDOS - Les serveurs backend sont protégés par le proxy inverse afin de les protéger contre les dénis de service distribués (DDOS).

Régulation du trafic - Il peut rejeter le trafic provenant d'une adresse IP client particulière (liste noire) ou limiter le nombre de connexions du client.

Évolutivité et flexibilité - il est possible de modifier la configuration du backend car le client ne peut voir que l'adresse du reverse proxy. Pour équilibrer la charge au niveau du serveur, vous pouvez augmenter ou réduire le nombre de serveurs en fonction de l'évolution du volume de trafic.

Accélération du Web - Elle réduit le temps nécessaire à la génération d'une réponse pour le client demandeur. 

Compression - le proxy TCP répond avant de retourner au client, ce qui réduit la bande passante nécessaire à la transmission des données sur le réseau.

Chiffrement - Le trafic entre le client et le serveur dans le réseau nécessite un chiffrement. Le processus de cryptage entraîne une surcharge pour le client et le serveur, car il nécessite beaucoup de calculs. Le mandataire inverse effectue le cryptage et le décryptage, libérant ainsi les serveurs dorsaux pour qu'ils se consacrent uniquement au service des clients.

Mise en cache - Le mandataire inverse stocke une copie de la demande dans son système local avant de la transmettre au client. Le mandataire inverse sert la demande à partir du cache au lieu de transmettre la demande au serveur et de la récupérer lorsque le client la demande à nouveau. 

Proxy TCP comme équilibreur de charge

Un équilibreur de charge est un proxy qui gère le trafic lorsqu'il y a plusieurs serveurs. Il permet au serveur de fonctionner efficacement et de s'adapter lorsque le trafic est élevé. L'équilibreur de charge répartit le trafic entre les serveurs et achemine les connexions originales directement des clients vers un serveur dorsal sain, sans interruption.

Le proxy TCP utilise le retour direct du serveur pour transmettre les réponses des serveurs backend sains aux clients directement et non aux équilibreurs de charge. C'est le serveur dorsal qui met fin au trafic SSL (secure socket layer) et non l'équilibreur de charge. 

Affinité de session

Le trafic TCP entre le client et le serveur prend en charge l'affinité de session. On parle d'affinité de session lorsque le client peut envoyer des demandes au même serveur dorsal tant qu'il est sain et capable. 

Serveurs de surveillance

Le proxy TCP effectue des bilans de santé du serveur dorsal en contrôlant périodiquement son état de préparation. Lorsque le serveur dorsal ne peut pas gérer le trafic, il s'agit d'un nœud malsain et le serveur redirige le trafic vers d'autres serveurs dorsaux sains.

Le proxy TCP présente les caractéristiques suivantes lorsqu'il agit en tant qu'équilibreur de charge :

Comportement asynchrone - Le proxy TCP a un comportement asynchrone, ce qui signifie que si un client cesse soudainement de lire à partir de la socket vers le proxy, les autres clients ne doivent pas remarquer d'interruption de service à travers le proxy.

Prise en charge d'autres protocoles - Le proxy TCP prend en charge le protocole HTTP ainsi que d'autres protocoles de couche d'application tels que FTP.

Agir en tant que proxy inverse - Un utilisateur peut utiliser un proxy TCP en tant que proxy inverse en fonction du lieu de mise en œuvre. Côté serveur, il régule le trafic entre le client et l'utilisateur. 

Option d'échelle de fenêtre

La fenêtre de réception TCP est la quantité de données qu'un récepteur peut traiter en octets et qu'il peut mettre en mémoire tampon au cours d'une connexion. Le récepteur doit mettre à jour la taille de sa fenêtre avant de commencer la communication et d'attendre l'accusé de réception. 

L'expéditeur envoie des données en fonction de la taille de la fenêtre. La conception de la pile TCP/IP de Windows s'adapte à l'évolution de la taille des données et utilise une fenêtre plus grande. Chaque fois que l'expéditeur transmet, il utilise une taille de fenêtre plus grande que celle utilisée lors de la transmission précédente.

La taille de la fenêtre n'est pas fixe car vous pouvez la redimensionner en ajustant la taille maximale du segment (MSS). Le client et le serveur négocient la MSS lors de l'établissement de la connexion. L'ajustement de la fenêtre de réception à des incréments de la MSS augmente le pourcentage de segments TCP de taille complète utilisés lors des transmissions de données en masse.

La taille de la fenêtre de réception est déterminée de la manière suivante :

Le client envoie la première demande de connexion au serveur en annonçant une taille de fenêtre de réception de 16 K (16 384 octets).Lorsque la connexion est établie, le client ajuste la taille de la fenêtre de réception en fonction du MSS.La taille de la fenêtre est ajustée à quatre fois le MSS, jusqu'à une taille maximale de 64 K, à moins que l'option de mise à l'échelle de la fenêtre ne soit utilisée.

Questions fréquemment posées

1. Quelle est la différence entre un proxy inverse et un proxy d'équilibrage de charge ?

Proxy inverséProxy d'équilibrage de charge
Un proxy inverse est une application intermédiaire mise en œuvre entre le client et le serveur.Un proxy d'équilibrage de charge répartit le trafic de manière égale et efficace entre plusieurs serveurs dorsaux.
L'adresse inversée proxys renforce la sécurité des serveurs web en garantissant que les clients ne communiquent pas directement avec le serveur d'origine.Il existe plusieurs serveurs dorsaux et, en cas de panne de réseau ou d'attaque DDoS, un proxy d'équilibrage de charge permet d'éviter les fermetures de site car le trafic peut être réacheminé vers un autre serveur.
The process: – The user makes an HTTP request. – The reverse proxy receives it. – The reverse proxy either allows or denies the user’s request. – If allowed, the reverse proxy forwards the request to the server. – If denied, the reverse proxy sends an error message to the client. – The server sends the corresponding reply to the reverse proxy.The reverse proxy forwards the server’s response to the client.The process:– The load balancer receives the client’s request.– The load balancer sends the request to a single server in the group of backend servers.– The selected server sends the response back to the load balancer.– The load balancer forwards the server’s response to the user.
Voici quelques exemples de sources ouvertes d'informations inversées proxys :NGINXApache HTTP ServerApache Traffic ServerVoici quelques exemples d'algorithmes d'équilibrage de chargeHashRound RobinPower of Two Choices

2. Différence entre un proxy HTTP et un proxy TCP.

Proxy HTTPProxy TCP
Dans une zone démilitarisée (DMZ), il est utilisé comme équilibreur de charge ou comme fournisseur d'adresses IP publiques pour protéger les serveurs dorsaux.Il est utilisé comme proxy inverse pour une connexion TCP entre le client et le serveur.
Crée une requête/réponse HTTP.Ouvre une connexion TCP et y transfère des données.
Le proxy HTTP lit l'adresse de l'hôte et se connecte à l'hôte approprié.Le proxy TCP ne modifie pas les données car il ne peut pas les comprendre.
Outre HTTP, il peut répondre aux demandes HTTPS et FTP.Outre le TCP, il peut répondre aux requêtes HTTP et FTP.

Réflexions finales

Un proxy TCP fait office de proxy inverse et d'équilibreur de charge. Ces deux types d'applications se situent entre les clients et les serveurs, acceptant les demandes des premiers et délivrant les réponses des seconds.

Parfois, le proxy inverse et l'équilibreur de charge peuvent sembler identiques et prêter à confusion. Le fait de savoir quand et pourquoi vous pouvez les déployer sur un site web vous aidera à comprendre.

La collecte de données est une tâche immense et importante pour une entreprise établie ou une startup. C'est un processus qui nécessite de connaître les tendances du marché, d'analyser les concurrents et les préférences des clients pour prendre des décisions. 

ProxyScrape propose les services premium proxys, residential proxys, et dedicated proxys pour collecter des quantités massives de données à partir de sites web. Il est possible de choisir parmi une combinaison flexible de proxys et les prix sont également abordables. Continuez à consulter notre blog pour plus d'informations sur les nouveaux proxys, leurs utilisations et les avantages offerts par ProxyScrape .