Une introduction aux termes, interfaces et protocoles de réseau

Introduction

Une compréhension du réseau est importante pour toute personne gérant un serveur. Non seulement elle est essentielle pour mettre vos services en ligne et les faire fonctionner correctement, mais elle vous donne également un aperçu pour diagnostiquer les problèmes.

Cet article fournira un aperçu de certains concepts réseau courants. Nous aborderons la terminologie, les protocoles courants, ainsi que les responsabilités et les caractéristiques des différentes couches du réseau.

Ce guide est agnostique vis-à-vis du système d’exploitation, mais il devrait être très utile lors de la mise en œuvre de fonctionnalités et de services utilisant le réseau sur votre serveur.

Glossaire du Réseau

Tout d’abord, nous définirons quelques termes courants que vous verrez tout au long de ce guide, ainsi que dans d’autres guides et documentation concernant le réseau.

Ces termes seront développés dans les sections appropriées qui suivent:

  • Connexion: En réseau, une connexion fait référence à des informations liées qui sont transférées à travers un réseau. En général, une connexion est établie avant le transfert de données (en suivant les procédures établies dans un protocole) et peut être déconstruite à la fin du transfert de données.

  • Paquet: Un paquet est la plus petite unité intentionnellement transférée sur un réseau. Lors de la communication sur un réseau, les paquets sont les enveloppes qui transportent vos données (en morceaux) d’un point à un autre.

Les paquets ont une partie en-tête qui contient des informations sur le paquet, y compris la source et la destination, les horodatages, les sauts de réseau, etc. La partie principale d’un paquet contient les données réelles en cours de transfert. On l’appelle parfois le corps ou la charge utile.

  • Interface Réseau: Une interface réseau peut faire référence à n’importe quel type d’interface logicielle vers le matériel réseau. Par exemple, si vous avez deux cartes réseau dans votre ordinateur, vous pouvez contrôler et configurer chaque interface réseau qui y est associée individuellement.

A network interface may be associated with a physical device, or it may be a representation of a virtual interface. The “loopback” device, which is a virtual interface available in most Linux environments to connect back to the same machine, is an example of this.

  • RLE: RLE signifie « réseau local » (LAN en anglais). Cela fait référence à un réseau ou à une partie d’un réseau qui n’est pas accessible au grand public sur Internet. Un réseau domestique ou de bureau est un exemple de RLE.

  • Réseau étendu (WAN): WAN signifie « réseau étendu ». Il désigne un réseau beaucoup plus vaste qu’un LAN. Bien que WAN soit le terme pertinent pour décrire des réseaux dispersés et étendus en général, il est généralement utilisé pour désigner Internet dans son ensemble.

Si une interface est dite connectée au WAN, il est généralement supposé qu’elle est accessible via Internet.

  • Protocole: Un protocole est un ensemble de règles et de normes qui définissent un langage que les appareils peuvent utiliser pour communiquer. Il existe un grand nombre de protocoles largement utilisés dans le domaine des réseaux, et ils sont souvent mis en œuvre à différents niveaux.

Certains protocoles de bas niveau sont TCP, UDP, IP et ICMP. Quelques exemples familiers de protocoles de couche applicative, basés sur ces protocoles inférieurs, sont HTTP (pour accéder au contenu web), SSH et TLS/SSL.

  • Port: Un port est une adresse sur une seule machine qui peut être liée à un logiciel spécifique. Ce n’est pas une interface physique ou un emplacement, mais il permet à votre serveur de communiquer en utilisant plus d’une application.

  • Firewall: Un pare-feu est un programme qui décide si le trafic entrant ou sortant d’un serveur doit être autorisé. Un pare-feu fonctionne généralement en créant des règles indiquant quel type de trafic est acceptable sur quels ports. En général, les pare-feu bloquent les ports qui ne sont pas utilisés par une application spécifique sur un serveur.

  • NAT: NAT signifie translation d’adresse réseau. C’est une manière de reconditionner et d’envoyer les demandes entrantes à un serveur de routage vers les dispositifs ou serveurs pertinents sur un réseau local. Cela est généralement mis en œuvre dans les réseaux locaux physiques pour router les demandes via une adresse IP vers les serveurs backend nécessaires.

  • VPN: VPN signifie réseau privé virtuel. C’est un moyen de connecter des LAN séparés via Internet, tout en maintenant la confidentialité. Cela est utilisé pour connecter des systèmes distants comme s’ils étaient sur un réseau local, souvent pour des raisons de sécurité.

Il existe de nombreux autres termes que vous rencontrerez, et cette liste n’est pas exhaustive. Nous expliquerons d’autres termes au fur et à mesure que nous en aurons besoin. À ce stade, vous devriez comprendre certains concepts de haut niveau qui nous permettront de mieux discuter des sujets à venir.

Couches Réseau

Alors que les réseaux sont souvent discutés en termes de topologie de manière horizontale, entre les hôtes, leur implémentation est stratifiée de manière verticale au sein de n’importe quel ordinateur ou réseau donné.

Cela signifie qu’il existe plusieurs technologies et protocoles qui sont construits les uns sur les autres afin que la communication fonctionne. Chaque couche successive, plus élevée, abstrait un peu plus les données brutes.

Cela vous permet également d’exploiter les couches inférieures de nouvelles manières sans avoir à investir le temps et l’énergie pour développer les protocoles et les applications qui gèrent ces types de trafic.

Le langage que nous utilisons pour parler de chacun des schémas de stratification varie considérablement en fonction du modèle que vous utilisez. Peu importe le modèle utilisé pour discuter des couches, le parcours des données est le même.

Lorsque les données sont envoyées d’une machine à l’autre, elles commencent en haut de la pile et descendent. Au niveau le plus bas, la transmission réelle vers une autre machine a lieu. À ce stade, les données remontent à travers les couches de l’autre ordinateur.

Chaque couche a la capacité d’ajouter son propre « emballage » autour des données qu’elle reçoit de la couche adjacente, ce qui aidera les couches suivantes à décider quoi faire avec les données lorsqu’elles sont transmises.

Modèle TCP/IP

Le modèle TCP/IP, plus communément connu sous le nom de suite de protocoles Internet, est un modèle de stratification largement adopté. Il définit les quatre couches distinctes:

  • Application: Dans ce modèle, la couche d’application est responsable de la création et de la transmission de données utilisateur entre les applications. Les applications peuvent être sur des systèmes distants et doivent sembler fonctionner comme si elles étaient locales pour l’utilisateur final. Cette communication est dite se dérouler entre paires.

  • Transport: La couche de transport est responsable de la communication entre les processus. Ce niveau de mise en réseau utilise des ports pour adresser différents services.

  • Internet: La couche Internet est utilisée pour transporter des données d’un nœud à un autre dans un réseau. Cette couche est consciente des points de terminaison des connexions, mais ne se préoccupe pas de la connexion réelle nécessaire pour passer d’un endroit à un autre. Les adresses IP sont définies dans cette couche comme un moyen d’atteindre les systèmes distants de manière adressable.

  • Lien: La couche de liaison met en œuvre la topologie réelle du réseau local qui permet à la couche Internet de présenter une interface adressable. Elle établit des connexions entre les nœuds voisins pour envoyer des données.

Comme vous pouvez le voir, le modèle TCP/IP est abstrait et fluide. Cela l’a rendu populaire à implémenter et lui a permis de devenir le moyen dominant de catégoriser les couches réseau.

Interfaces

Les interfaces sont des points de communication réseau pour votre ordinateur. Chaque interface est associée à un dispositif réseau physique ou virtuel.

Typiquement, votre serveur aura une interface réseau configurable pour chaque carte Ethernet ou sans fil que vous possédez.

De plus, il définira une interface réseau virtuelle appelée « loopback » ou interface localhost. Celle-ci est utilisée comme interface pour connecter des applications et des processus sur un seul ordinateur à d’autres applications et processus. Vous pouvez voir cela référencé comme l’interface « lo » dans de nombreux outils.

Souvent, les administrateurs configurent une interface pour desservir le trafic vers Internet et une autre interface pour un LAN ou un réseau privé.

Dans les centres de données avec réseau privé activé (y compris les gouttes DigitalOcean), votre VPS aura deux interfaces réseau. L’interface « eth0 » sera configurée pour gérer le trafic provenant d’Internet, tandis que l’interface « eth1 » fonctionnera pour communiquer avec un réseau privé.

Protocoles

Le fonctionnement du réseau consiste à greffer plusieurs protocoles les uns sur les autres. De cette manière, une seule pièce de données peut être transmise en utilisant plusieurs protocoles encapsulés les uns dans les autres.

Nous commencerons par les protocoles mis en œuvre sur les couches inférieures du réseau et nous progresserons vers des protocoles avec une abstraction plus élevée.

Contrôle d’accès au support

Le contrôle d’accès au support est un protocole de communication utilisé pour distinguer des dispositifs spécifiques. Chaque dispositif est censé obtenir une adresse de contrôle d’accès au support unique, codée en dur, appelée adresse de contrôle d’accès au support (adresse MAC) lors de sa fabrication, la distinguant de tout autre dispositif sur Internet.

Adresser le matériel par l’adresse MAC vous permet de faire référence à un dispositif par une valeur unique même lorsque le logiciel en surface peut changer le nom de ce dispositif spécifique pendant son fonctionnement.

L’adressage MAC est l’un des seuls protocoles de la couche de liaison de bas niveau avec lesquels vous êtes susceptible d’interagir régulièrement.

IP

Le protocole IP est l’un des protocoles fondamentaux qui permettent à Internet de fonctionner. Les adresses IP sont uniques sur chaque réseau et permettent aux machines de se communiquer à travers un réseau. Il est implémenté au niveau Internet dans le modèle TCP/IP.

Les réseaux peuvent être interconnectés, mais le trafic doit être routé lorsqu’il traverse les frontières du réseau. Ce protocole suppose un réseau peu fiable et plusieurs chemins vers la même destination qu’il peut changer dynamiquement entre eux.

Il existe plusieurs implémentations différentes du protocole. L’implémentation la plus courante aujourd’hui est celle des adresses IPv4, qui suivent le modèle 123.123.123.123, bien que les adresses IPv6, qui suivent le modèle 2001:0db8:0000:0000:0000:ff00:0042:8329, gagnent en popularité en raison du nombre limité d’adresses IPv4 disponibles.

ICMP

ICMP signifie protocole de message de contrôle Internet. Il est utilisé pour envoyer des messages entre les appareils pour indiquer leur disponibilité ou des conditions d’erreur. Ces paquets sont utilisés dans divers outils de diagnostic réseau, tels que ping et traceroute.

En général, les paquets ICMP sont transmis lorsqu’un autre type de paquet rencontre un problème. Ils sont utilisés comme mécanisme de rétroaction pour les communications réseau.

TCP

TCP signifie protocole de contrôle de transmission. Il est implémenté dans la couche de transport du modèle TCP/IP et est utilisé pour établir des connexions fiables.

TCP est l’un des protocoles qui encapsulent les données dans des paquets. Il les transfère ensuite à l’extrémité distante de la connexion en utilisant les méthodes disponibles sur les couches inférieures. À l’autre extrémité, il peut vérifier les erreurs, demander que certains morceaux soient renvoyés et réassembler les informations en une pièce logique à envoyer à la couche d’application.

Le protocole établit une connexion avant le transfert de données en utilisant un système appelé poignée de main à trois voies. C’est une façon pour les deux extrémités de la communication de reconnaître la demande et de convenir d’une méthode pour garantir la fiabilité des données.

Après que les données ont été envoyées, la connexion est fermée en utilisant une poignée de main similaire à quatre voies.

TCP est le protocole de choix pour bon nombre des utilisations les plus populaires d’Internet, y compris le WWW, SSH et le courrier électronique.

UDP

UDP signifie protocole de datagramme utilisateur. C’est un protocole compagnon populaire de TCP et est également implémenté dans la couche de transport.

La différence fondamentale entre UDP et TCP est que UDP offre un transfert de données non fiable. Il ne vérifie pas que les données ont été reçues à l’autre extrémité de la connexion. Cela peut sembler être une mauvaise chose, et pour de nombreux usages, c’en est une. Cependant, c’est aussi extrêmement important pour certaines fonctions.

Parce qu’il n’est pas nécessaire d’attendre la confirmation que les données ont été reçues et qu’il est forcé de renvoyer les données, l’UDP est beaucoup plus rapide que le TCP. Il n’établit pas de connexion avec l’hôte distant, il envoie simplement des données sans confirmation.

Parce qu’il s’agit d’une transaction directe, il est utile pour des communications telles que la requête de ressources réseau. Il ne maintient pas non plus un état, ce qui le rend idéal pour la transmission de données d’une machine à de nombreux clients en temps réel. Cela le rend idéal pour la voix sur IP, les jeux et d’autres applications qui ne peuvent pas se permettre de retard.

HTTP

HTTP signifie protocole de transfert hypertexte. C’est un protocole défini dans la couche d’application qui constitue la base de la communication sur le web.

HTTP définit plusieurs verbes qui indiquent au système distant ce que vous demandez. Par exemple, GET, POST et DELETE interagissent tous différemment avec les données demandées. Pour voir un exemple des différentes demandes HTTP en action, consultez Comment définir des itinéraires et des méthodes de requête HTTP dans Express.

DNS

DNS signifie système de noms de domaine. Il s’agit d’un protocole de couche application utilisé pour fournir un mécanisme de dénomination convivial pour les ressources Internet. C’est ce qui lie un nom de domaine à une adresse IP et vous permet d’accéder aux sites par leur nom dans votre navigateur.

SSH

SSH signifie shell sécurisé. C’est un protocole crypté mis en œuvre dans la couche application qui peut être utilisé pour communiquer avec un serveur distant de manière sécurisée. De nombreuses technologies supplémentaires sont construites autour de ce protocole en raison de son chiffrement de bout en bout et de son ubiquité.

Il existe de nombreux autres protocoles que nous n’avons pas abordés et qui sont tout aussi importants. Cependant, cela devrait vous donner un bon aperçu de certaines des technologies fondamentales qui rendent possible Internet et les réseaux.

Conclusion

À ce stade, vous devriez être familier avec certains termes de mise en réseau et être en mesure de comprendre comment différents composants peuvent communiquer entre eux. Cela devrait vous aider à comprendre d’autres articles et la documentation de votre système.

Ensuite, pour un exemple concret de haut niveau, vous voudrez peut-être lire Comment effectuer des requêtes HTTP en Go.

Source:
https://www.digitalocean.com/community/tutorials/an-introduction-to-networking-terminology-interfaces-and-protocols