Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
999-archives:tcp-ip:010tcpip:030_les_sockets [le 30/05/2025 à 13:47] – supprimée - modification externe (Date inconnue) 127.0.0.1 | 999-archives:tcp-ip:010tcpip:030_les_sockets [le 30/05/2025 à 13:47] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. prof | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Les sockets ====== | ||
+ | |||
+ | |||
+ | ===== Une oreille dans chaque port ===== | ||
+ | |||
+ | ==== Adresse, port et socket ==== | ||
+ | |||
+ | Imaginons la situation suivante (fréquente sur des petits réseaux): | ||
+ | |||
+ | Un seul « serveur » (entendez par là une machine) héberge plusieurs services bien connus des internautes: | ||
+ | |||
+ | * un serveur web (HTTP); | ||
+ | * un serveur de fichiers (FTP); | ||
+ | * un serveur de messagerie (SMTP et IMAP); | ||
+ | * un serveur SSH pour l' | ||
+ | |||
+ | Tous ces services cohabitent donc sur un hôte disposant d'une seule adresse IP, disons 62.161.120.45 (pour fixer les idées) et fonctionnent sans problèmes. Vous êtes-vous posé la question de savoir par quel prodige tout ne se mélange pas? Comment se fait-il que le navigateur du client qui invoque l'URL '' | ||
+ | |||
+ | Plus fort encore, pendant qu'un client consulte la page '' | ||
+ | |||
+ | Grâce aux ports! Les ports sont des numéros d' | ||
+ | |||
+ | La combinaison « adresse IP:numéro de port » constitue ce que l'on appelle une « socket » (qui veut dire à peu près « connecteur » en anglais). | ||
+ | |||
+ | Une socket identifie pleinement le service qui est concerné sur une machine donnée. | ||
+ | |||
+ | ==== Le serveur et le client ==== | ||
+ | |||
+ | Les serveurs ont une fonction particulière: | ||
+ | |||
+ | Lorsque l'on écrit '' | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | En revanche, le client qui émet la requête ne dispose pas de port d' | ||
+ | |||
+ | Vous êtes-vous demandé par quel miracle, si vous ouvrez deux fois votre navigateur pour afficher deux pages différentes sur le même serveur, les informations ne se mélangent pas? | ||
+ | |||
+ | C'est parce que les deux sessions du navigateur indiquent des ports de réponse différents! C'est le NOS du client qui choisit les ports de réponse en fonction de ceux qui sont disponibles sur la machine. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ==== Un port d' | ||
+ | |||
+ | Lorsqu' | ||
+ | |||
+ | Ce détail nous mène directement aux problèmes de sécurité et d' | ||
+ | |||
+ | ===== Quelques infos supplémentaires ===== | ||
+ | |||
+ | ==== NAT, PAT et autres mascarades ==== | ||
+ | |||
+ | Nous y reviendrons plus loin dans le chapitre consacré au routage, mais tant qu'on est dans les ports, autant dire quelques mots de ces techniques. | ||
+ | |||
+ | * NAT (Network Address Translation) est une faculté dont dispose un routeur, de modifier les adresses IP des émetteurs lors du passage des datagrammes entre deux réseaux. Ca ne nous intéresse pas directement ici. | ||
+ | * PAT (Port Access Translation) est une fonction qui permet de changer au passage le numéro de port dans le datagramme. Ca peut paraître tordu, mais il existe une foule d' | ||
+ | * MASQUERADE, qui est un mélange des deux (NAT, PAT) est une fonction très intéressante pour connecter tout un réseau local construit sur une classe IP privée à l' | ||
+ | * Le principe de fonctionnement et la façon de construire une telle passerelle sont décrits dans la chapitre MASQUERADE, ailleurs sur ce site. | ||
+ | |||
+ | ==== La liste des ports réservés ==== | ||
+ | |||
+ | Le mieux est de consulter la RFC 1700 qui définit les ports d' | ||
+ | |||
+ | (Pour mémoire, un site de référence pour ce genre d' | ||
+ | |||
+ | Ceux qui désirent consulter la liste exhaustive des « ports bien connus », peuvent le faire [[999-archives: | ||
Les sockets: Dernière modification le: 01/01/1970 à 00:00 par