Introduction
Avant de rentrer dans les détails techniques, il est parfois utile de savoir de quoi on parle. Le but de ce topic est d'expliquer ce qu'est un réseau, ce qu'est Internet et comment tout ceci fonctionne.
Ce topic reprend en partie un précédent topic écrit par Sn@ke.
Sommaire
I - Définitions générales
II - Etendues géographiques des réseaux
III - Couches réseau
IV - Encapsulation et protocoles
V - Interconnexion de réseaux
VI - Identification des équipements: adresses MAC et IP
VII - Localisation des équipements: routage, sous-réseaux et masques
VIII - Acheminement des messages et identification des applications: TCP, UDP et ports
IX - Annuaire de noms de machines: DNS
X - Configuration automatique: DHCP
I - Définitions générales
Un réseau est l'interconnexion de plusieurs équipements électroniques ou informatiques dans le but d'échanger des informations.
Le support physique qui permet cet échange est appelé le médium. Celui-ci peut être un câble (réseau filaire) ou non (réseau sans fil).
Internet (Interconnected Networks) est l'interconnexion de plusieurs réseaux: c'est un "réseau de réseaux".
retour au sommaire
II - Etendues géographiques des réseaux
Un PAN (Personal Area Network) désigne quelques équipements reliés entre eux à très courte distance, par exemple un téléphone mobile et une oreillette.
Un LAN (Local Area Network) désigne un ensemble d'équipements voisins directement accessibles, par exemple plusieurs ordinateurs reliés sur le même médium.
Un MAN (Metropolitan Area Network) désigne un ensemble de réseaux locaux reliés entre eux au niveau d'une ville.
Un WAN (Wide Area Network) désigne un ensemble de réseaux reliés entre eux à longue distance.
Un WPAN (Wireless PAN), un WLAN (Wireless LAN) et un WMAN (Wireless MAN) désignent respectivement un PAN sans fil, un LAN sans fil et un MAN sans fil.
Un VLAN (Virtual LAN) désigne un LAN virtuel dans lequel les équipements ont l'impression de communiquer directement comme s'ils étaient sur un seul LAN à part entière alors qu'en réalité:
- soit ils sont sur plusieurs LAN, MAN et/ou WAN
- soit ils ne sont que sur une partie d'un LAN
retour au sommaire
III - Couches réseau
L'échange d'informations sur les réseaux est construit en plusieurs couches. Le modèle standard international OSI en distingue 7 qui sont (de la plus basse à la plus haute):
1: physique
2: liaison de données
3: réseau
4: transport
5: session
6: présentation
7: application
Dans la pratique, les 3 dernières couches sont souvent regroupées en une seule.
Les couches 1 et 2 sont matérielles, les suivantes sont logicielles.
Plus une couche est élevée et plus elle fait abstraction de la manière dont les informations sont transmises sur les différents médiums:
1: médium
2: contrôle de l'accès au médium (MAC=Medium Access Control)
3: gestion du réseau de proche en proche
4: acheminement de bout en bout
5,6,7: communication entre les applications distantes
A chaque couche correspond également une unité d'information:
1: bit
2: trame
3: paquet
4: segment (avec fragmentation) ou datagramme (sans fragmentation)
5,6,7: message
retour au sommaire
IV - Encapsulation et protocoles
Les couches s'appuient les unes sur les autres sur le principe de l'encapsulation:
- un message est placé dans un segment ou dans un datagramme
- un segment ou un datagramme est placé dans un paquet
- un paquet est placé dans une trame
- une trame est placée dans une séquence de bits
A l'arrivée, la séquence de bits est décapsulée pour retrouver la trame, puis le paquet, puis le segment ou le datagramme et finalement le message qui est délivré à l'application de destination.
Au cours de l'encapsulation, chaque couche rajoute de l'information pour son propre fonctionnement, par exemple:
1: synchronisation d'horloge, marqueurs de début et de fin de trame etc.
2: identification des équipements sur le médium, contrôle de la disponibilité du médium etc.
3: adresses logiques des équipements sur le réseau, routage etc.
4: identification des applications source et destination, congestion du réseau etc.
5: contenu du message
Cette information supplémentaire doit respecter certaines règles pour être correctement interprétée lors de la décapsulation: cet ensemble de règles constitue un protocole. A chaque couche correspond donc au moins un protocole. Les principaux protocoles standards sont:
1,2: Ethernet, WiFi, PPP + ATM (ADSL et 56k) etc. (autant de protocoles que de types de matériel)
3: IP (Internet Protocol)
4: TCP (Transport Control Protocol) et UDP (User Datagram Protocol)
5,6,7: HTTP pour le web, FTP pour le transfert de fichiers, SMTP + POP ou IMAP pour le courrier électronique etc. (autant de protocoles que de types d'application)
retour au sommaire
V - Interconnexion de réseaux
Les réseaux peuvent être reliés entre eux au niveau des couches 1, 2 ou 3:
1: on prolonge le même médium
2: on relie des médiums différents auxquels on accède de la même manière
3: on relie des réseaux utilisant des supports physiques différents avec des méthodes d'accès différentes
Selon la couche et le nombre de réseaux reliés entre eux, le matériel servant à l'interconnexion porte un nom différent:
1: répéteur (2 réseaux) ou concentrateur (plusieurs réseaux)
2: pont (2 réseaux) ou commutateur (plusieurs réseaux)
3: routeur (2 réseaux ou plus)
Le fonctionnement de l'interconnexion est également différent pour chaque couche:
1: les répéteurs et les concentrateurs retransmettent tous les bits reçus sur tous les autres médiums
2: les ponts et les commutateurs identifient les équipements présents sur chaque médium et retransmettent les trames uniquement sur le médium où se trouve la destination
3: les routeurs déterminent à partir d'une table le médium que le paquet doit emprunter pour parvenir à la destination
Un équipement qui ne sert pas à l'interconnexion est appelé un terminal.
retour au sommaire
VI - Identification des équipements: adresses MAC et IP
Les équipements sont identifiés par les adresses de leurs interfaces avec le réseau. Il existe deux types d'adresses:
- les adresses MAC (ou physiques ou matérielles) pour identifier une interface sur le médium auquel elle est reliée
- les adresses IP (ou logiques ou logicielles) pour identifier une interface depuis n'importe quel point du réseau
Les adresses MAC sont matérielles et donc plus ou moins définitives, tandis que les adresses IP sont logicelles et donc paramétrables.
Une interface a exactement une adresse MAC et généralement une seule adresse IP (mais elle peut en avoir plusieurs).
L'adresse MAC est codée sur 48 bits représentés sous la forme de 6 nombres hexadécimaux de 00 à FF séparés par des deux-points (par exemple 12:AB:34:D7:80:2E). Les 3 premiers nombres sont propres à chaque constructeur de matériel et les 3 derniers nombres sont propres à chaque interface fabriquée par un constructeur.
En théorie, une adresse MAC est unique dans le monde. Dans la pratique, certains constructeurs ayant aujourd'hui produit plus d'équipements que d'adresses MAC à leur disposition, ils ont réutilisé d'anciennes adresses. Toutefois, la probabilité que 2 interfaces avec la même adresse MAC se retrouvent sur un même réseau matériel (couches 1 et 2) est très faible, et c'est le seul cas où cela pose un problème.
L'adresse MAC FF:FF:FF:FF:FF:FF sert à la diffusion. Une trame transmise à cette adresse est reçue par tous les équipements du réseau matériel (couches 1 et 2).
Dans la version actuelle de IP (IPv4), l'adresse IP est codée sur 32 bits représentés sous la forme de 4 nombres décimaux de 0 à 255 séparés par des points (par exemple 10.164.7.49).
Dans la prochaine version d'IP (IPv6), l'adresse IP est codée sur 128 bits représentés sous la forme de 8 nombres hexadécimaux de 0000 à FFFF séparés par des deux-points (par exemple 1234:5678:90AB:CDEF:4D91:0AF3). Les 64 premiers bits servent à localiser l'interface et les 64 derniers à l'identifier (en y faisant figurer notamment son adresse MAC).
L'adresse IPv4 0.0.0.0 et l'adresse IPv6 0000:0000:0000:0000:0000:0000:0000:0000 sont les adresses IP par défaut des interfaces quand aucune autre adresse ne leur a été attribuée.
retour au sommaire
VII - Localisation des équipements: routage, sous-réseaux et masques
Les équipements reçoivent en général tous les bits et donc toutes les trames qui circulent sur le médium auquel est relié leur interface. C'est ensuite la couche MAC qui compare l'adresse de destination de la trame avec l'adresse de l'interface pour déterminer si la trame lui est bien destinée. Par conséquent, la localisation des équipements (ou routage) n'est nécessaire qu'à partir de la couche 3 et est assurée par IP.
Le routage consiste à déterminer le chemin qu'un paquet doit emprunter pour parvenir à sa destination. Les routeurs intermédiaires entre la source et la destination sont appelés les passerelles.
La table de routage est la liste des règles qu'un équipement (routeur ou terminal) applique pour déterminer le chemin qu'un paquet doit emprunter. Cette table est logicielle (donc paramétrable) et contient pour chaque destination possible:
- l'adresse IP de la prochaine passerelle
- l'interface (et donc le médium) par laquelle l'équipement peut joindre cette passerelle
Si l'équipement est la dernière passerelle avant la destination, seule l'interface par laquelle la passerelle peut joindre la destination est mentionnée dans la table.
Cette table comporte également une ligne particulière qui indique la passerelle à laquelle le paquet est transmis si aucun chemin n'a pu être trouvé dans la table de routage pour le destinataire du paquet. Cette passerelle est appelée la passerelle par défaut. Les terminaux n'ont en général que cette passerelle dans leur table de routage.
Pour limiter le nombre de lignes dans les tables de routage, on regroupe les terminaux situés entre 2 ou plusieurs routeurs en sous-réseaux dans lesquels les interfaces ont des adresses IP qui commencent de la même manière. Cette séquence de bits commune s'appelle le préfixe. La taille du préfixe (donc le nombre de bits communs) constitue le masque de sous-réseau, représenté de manière différente selon la version de IP:
- en IPv4: sous la forme d'une adresse IP en mettant autant de bits à 1 que la taille du préfixe puis autant de bits à 0 que nécessaire pour compléter une adresse IP (par exemple 255.255.192.0 pour un préfixe de 18 bits)
- en IPv6: simplement en indiquant la taille du préfixe
Pour représenter une adresse IP et le masque qui lui est associé, on les sépare par une barre oblique (par exemple 10.164.7.49/255.255.192.0 en IPv4 ou 1234:5678:90AB:CDEF:4D91:0AF3/40 en IPv6).
Quand un équipement cherche à joindre un autre équipement, il compare l'adresse IP du destinataire avec sa propre adresse IP. Si le nombre de bits communs au début des deux adresses est supérieur ou égal au masque, cela signifie que le destinataire peut être joint directement sans passer par un routeur.
Dans la mesure où toutes les adresses d'un sous-réseau commencent de la même manière, il suffit désormais de savoir à quelle passerelle un équipement doit transmettre un paquet pour l'envoyer à un destinataire dont l'adresse commence par un préfixe donné. On représente ce préfixe dans la table de routage par 2 éléments:
- l'adresse du sous-réseau: c'est le préfixe suivi d'autant de bits à 0 que nécessaire pour compléter une adresse IP
- le masque associé
(par exemple 10.164.0.0/255.255.192.0 pour le sous-réseau correspondant à l'adresse 10.164.7.49/255.255.192.0)
Pour éviter les problèmes, l'adresse IP constituée du préfixe suivi de bits tous à 0 ne doit pas être attribuée à une interface. De même, l'adresse IP constituée du préfixe suivi de bits tous à 1 est réservée: c'est l'adresse de diffusion qui permet d'envoyer un paquet simultanément à tous les équipements du sous-réseau.
En subdivisant un sous-réseau en plusieurs autres sous-réseaux (avec des préfixes de plus en plus long), il est possible de réduire encore le nombre de lignes dans les tables de routage. En effet, les routeurs extérieurs au sous-réseau global ont seulement besoin de connaître le chemin pour atteindre le sous-réseau global et ce ne sont que les routeurs à l'intérieur de ce sous-réseau qui ont besoin de faire la distinction entre les chemins pour joindre les sous-réseaux plus petits.
Enfin, il ne faut pas oublier qu'un paquet est encapsulé dans une trame et qu'il faut donc faire la correspondance entre l'adresse IP et l'adresse MAC pour joindre le bon équipement (que ce soit une passerelle intermédiaire ou le destinataire). Comme une adresse IPv4 (32 bits) ne peut pas contenir l'adresse MAC qui lui correspond (48 bits), il y a un protocole supplémentaire pour faire cette correspondance: c'est le protocole ARP. Son principe est d'envoyer via l'adresse MAC de diffusion un avis de recherche pour l'adresse MAC correspondant à une adresse IP donnée. Seul l'équipement dont l'interface utilise cette adresse IP répond.
En IPv6, l'adresse MAC peut être contenue dans l'adresse IP (128 bits) donc le protocole ARP n'est plus utile.
retour au sommaire
VIII - Acheminement des messages et identification des applications: TCP, UDP et ports
Selon le type d'application que l'on utilise, l'acheminement des messages peut se faire en utilisant le protocole TCP ou UDP.
UDP ne fait qu'envoyer un message sans pouvoir le fragmenter, sans se synchroniser avec la destination, sans se préoccuper de l'état du réseau et sans vérifier si le message arrive bien à destination. Son principal avantage est d'être léger.
TCP est capable de fragmenter les messages (et de réassembler les segments dans l'ordre à l'arrivée), de se synchroniser avec la destination, de mesurer la congestion du réseau, de vérifier si les messages sont bien arrivés et de réémettre seulement les segments perdus. Son principal inconvénient est d'être lourd.
Plusieurs applications utilisant le réseau peuvent fonctionner simultanément sur un même équipement. Il faut donc pouvoir les identifier pour transmettre le message à la bonne application. Un numéro de port est donc attribué à chaque application, qu'elle utilise TCP ou UDP.
On distingue deux types d'applications: les applications clientes qui demandent un service sur le réseau et les applications serveurs qui fournissent ce service. C'est toujours l'application cliente qui est à l'origine de la communication: elle effectue une requête auprès de l'application serveur qui lui répond. Par conséquent, l'application cliente a besoin de connaître à l'avance le numéro de port de l'application serveur pour pouvoir la joindre (et lui fournir au passage son propre numéro de port pour qu'elle puisse répondre).
Les numéros de port des applications serveurs sont donc normalisés par un institut international: 80 pour HTTP (web), 21 pour FTP (transfert de fichiers), 25 pour SMTP (envoi de messages électroniques) etc.
retour au sommaire
IX - Annuaire de noms de machines: DNS
Pour rendre l'adressage plus convivial on attribue des noms aux machines. Il faut alors un service d'annuaire pour pouvoir faire la correspondance entre un nom de machine et une adresse IP: c'est le rôle de DNS (Domain Name Service). C'est une application UDP dont le numéro de port est 53.
Dans le modèle DNS, les machines sont organisées en domaines inclus les uns dans les autres. Le domaine qui englobe tous les autres est le domaine racine (représenté parfois par un point).
L'appartenance d'une machine à un domaine est représentée en indiquant le nom de la machine puis les noms des domaines auxquels la machine appartient, du plus petit au plus grand, en séparant chaque niveau par un point (par exemple
www.france-hardware.com désigne la machine www dans le domaine france-hardware, lui-même inclus dans le domaine com, lui même inclus dans le domaine racine).
Tous les domaines disposent d'au moins un serveur DNS (ou serveur de noms) jouant le rôle d'annuaire du domaine et dont l'adresse IP est connue des domaines de niveaux immédiatement inférieur et immédiatement supérieur. Lorsqu'une machine quelconque demande à quelle adresse IP correspond un nom donné, elle interroge le serveur DNS du domaine auquel elle appartient, qui fera remonter puis redescendre la requête dans les différents niveaux jusqu'à trouver le serveur DNS du domaine auquel appartient la machine demandée, lequel serveur fournit la réponse.
Le plus souvent, les domaines disposent par sécurité de 2 serveurs DNS: un primaire (ou principal) et un secondaire. Si le serveur principal tombe en panne et ne répond plus, on s'adresse alors au serveur secondaire.
retour au sommaire
X - Configuration automatique: DHCP
Dans la plupart des cas, la configuration d'un équipement terminal consiste à lui attribuer:
- une adresse IP
- un masque de sous-réseau
- l'adresse IP d'une passerelle par défaut
- l'adresse IP d'au moins un serveur DNS
Pour simplifier cette configuration, il existe un moyen d'attribuer automatiquement ces éléments à un équipement qui vient d'être connecté à un réseau: le service DHCP (Dynamic Host Configuration Protocol). C'est une application UDP dont le numéro de port est 67.
Son principe est d'envoyer via l'adresse MAC de diffusion un avis de recherche pour un serveur DHCP. S'il y en a un sur le réseau local, il répond en communiquant son adresse MAC. Un dialogue s'établit ensuite entre l'équipement et le serveur pour négocier un bail pour une adresse IP.
Si la négociation réussit, le serveur DHCP fournit tous les éléments dont la machine a besoin pour sa configuration: adresse IP, masque, passerelle par défaut et DNS. Elle peut éventuellement aussi lui communiquer d'autres éléments comme par exemple l'adresse d'un serveur WINS (équivalent d'un serveur DNS sur un domaine de type Microsoft NT).
Le bail est généralement renouvelé lorsqu'il arrive à la moitié de son terme.
retour au sommaire