Réseaux : Transmission des données

I. Introduction au réseau et à Internet

Dans ce chapitre, nous allons voir comment les ordinateurs communiquent entre eux, et comment ces communications se composent pour faire fonctionner Internet.

Réseau informatique
Un réseau informatique est un système composé d'éléments matériels (contrôleurs Ethernet, câbles, fibres optiques, bornes Wi-Fi, routeurs…) et de logiciels dont la fonction est le transport de flux d'informations sous forme de données numériques. Afin que les machines puissent communiquer, elles ont besoin de règles communes : les protocoles.

Un réseau doit permettre d'offrir à ses utilisateurs un ensemble de services : échanges de fichiers, échanges de messages, partage de matériel (disque dur, imprimantes…), etc. Un réseau doit être capable de transporter tout type d'information, de toute taille et n'importe où, tout en conciliant sécurité et fiabilité.

Internet

Internet est la contraction de internetworking : c'est une interconnexion de réseaux, ou un réseau de réseaux. C'est le réseau public mondial qui interconnecte tous les équipements informatiques, via des liaisons physiques variées (câbles, satellites, fibres…) et des équipements (répéteurs, commutateurs, routeurs).

Repères historiques

Les opérateurs possèdent les infrastructures du réseau. En France, on trouve par exemple Orange (anciennement France Télécom), Bouygues Telecom, SFR ou Free. Les fournisseurs d'accès Internet (FAI) offrent des services aux utilisateurs (adresse mail, DNS, télévision…). En France, opérateurs et FAI se confondent souvent.

Certains organismes mondiaux veillent au bon fonctionnement d'Internet :

II. Architecture d'un réseau

On distingue 3 types de composants réseau :

Taille des réseaux

Les réseaux se différencient d'abord par leur étendue géographique :

Sigle Nom Étendue Exemple
PAN Personal Area Network Quelques mètres Bluetooth entre smartphone et casque
LAN Local Area Network Un bâtiment / site Réseau d'un lycée ou d'une entreprise
MAN Metropolitan Area Network Une ville Différents sites d'une université
WAN Wide Area Network Pays / planète Internet

Topologie physique

La topologie physique décrit la façon dont les machines sont reliées physiquement. Il en existe trois principales :

Topologie en bus Simple mais fragile : une coupure paralyse tout Topologie en étoile ★ SW La plus courante. Panne d'une machine : réseau OK. Panne du switch : tout HS Topologie en anneau Données circulent dans un seul sens. Chaque machine attend son tour.
Topologie en étoile
C'est la topologie la plus utilisée dans les réseaux modernes (lycées, entreprises…). Toutes les machines sont reliées à un équipement central appelé switch (commutateur). La panne d'une machine ne perturbe pas les autres. Seule la panne du switch met le réseau hors service.
III. Identifier les machines : adresses IP et MAC

1. Le câblage Ethernet et les switchs

Le réseau le plus simple consiste à relier 2 ordinateurs par un câble Ethernet (réseau en bus). On utilise pour cela des connecteurs RJ45 et chaque ordinateur doit posséder une carte réseau.

En pratique, pour relier plusieurs ordinateurs, on utilise un réseau en étoile autour d'un switch. On peut relier plusieurs switchs entre eux pour couvrir de plus grandes surfaces (comme au lycée).

2. Les adresses IP

Relier physiquement des machines ne suffit pas : chaque machine doit posséder une adresse unique pour pouvoir être contactée, comme une adresse postale. C'est le rôle des adresses IP.

Adresse IP (version 4)
Une adresse IPv4 est composée de 4 nombres entiers compris entre 0 et 255, séparés par des points.
Exemple : 212.123.12.1

Elle est codée sur 32 bits (4 × 8 bits = 4 octets), ce qui permet au maximum $2^{32} \approx 4$ milliards d'adresses différentes. Ce nombre étant insuffisant, une nouvelle norme IPv6 utilise 128 bits pour adresser $3{,}4 \times 10^{38}$ machines.

Une adresse IP est constituée de deux parties :

Ce découpage est précisé par un masque sous-réseau (netmask). On peut le noter sous forme d'un nombre de bits après un « / ». Par exemple :

Exemple de lecture d'une adresse IP
172.16.1.7/16

3. Les adresses MAC

Adresse MAC (Medium Access Control)
C'est un identifiant physique unique, gravé dans chaque carte réseau par son fabricant. Elle est constituée de 48 bits (6 octets), notés en hexadécimal séparés par « : ».

Exemple : 00:1A:3F:DA:1E:24
00:1A:3F identifie le constructeur
DA:1E:24 identifie la carte réseau
Rôles respectifs de l'adresse IP et de l'adresse MAC Analogie : l'adresse IP est comme l'adresse postale d'un immeuble, l'adresse MAC est comme le nom du destinataire dans cet immeuble.

Le protocole ARP (Address Resolution Protocol) permet de faire le lien entre une adresse IP et une adresse MAC. Lorsqu'une machine veut contacter une IP, elle envoie une requête ARP en broadcast (à toutes les machines du réseau) : « Qui possède l'adresse IP X.X.X.X ? ». La machine concernée répond avec son adresse MAC.

IV. Transmission de l'information

1. Communication par paquets

Pour transmettre des données sur un réseau, l'information n'est pas envoyée d'un seul tenant : elle est découpée en paquets. Chaque paquet est constitué d'un en-tête (informations sur le contenu et la destination) et d'une charge utile (fragment des données).

Avantages du découpage en paquets

À chaque étape, chaque couche du modèle réseau ajoute ses propres informations autour des données : c'est l'encapsulation. Le processus inverse, qui consiste à retirer ces en-têtes à la réception, s'appelle la désencapsulation.

2. Le modèle TCP/IP

Internet repose sur le modèle TCP/IP, composé de 4 couches de protocoles :

4 — Application HTTP, FTP, SMTP, DNS, DHCP… Interface avec les programmes 3 — Transport TCP (fiable), UDP (rapide) Découpage en segments 2 — Internet (Réseau) IP (IPv4, IPv6) Routage via adresses IP → paquets 1 — Accès Réseau Ethernet, Wi-Fi — adresses MAC Transmission physique → trames ↓ Émission : encapsulation (ajout d'en-têtes) ↑ Réception : désencapsulation
Remarque — Modèle OSI
Il existe un autre modèle, le modèle OSI (7 couches), qui est antérieur au modèle TCP/IP. C'est un modèle théorique qui a posé les bases des communications réseau, mais c'est bien le modèle TCP/IP à 4 couches qui est implémenté dans les machines réelles.

3. Les protocoles TCP et UDP (couche Transport)

a. Le protocole TCP

TCP (Transmission Control Protocol)
Protocole de la couche Transport. C'est un protocole orienté connexion : il établit et maintient la connexion entre deux machines. Il garantit que les données arrivent dans le bon ordre et sans perte.

TCP assure le transport fiable des données en effectuant les actions suivantes :

Machine A Machine B Segment 0 → ← ACK 0 Segment 1 → ← ACK 1 Segment 2 →

b. Le protocole UDP

UDP (User Datagram Protocol)
Protocole de transport sans connexion : il envoie les données sans établir de connexion préalable et sans attendre d'accusé de réception. Les paquets perdus ne sont pas renvoyés.

Avantage : plus rapide (pas d'attente de confirmation).
Inconvénient : non fiable (perte possible de données).
Caractéristique TCP UDP
Connexion Orienté connexion Sans connexion
Fiabilité Garantie (accusé de réception) Non garantie
Ordre des paquets Garanti Non garanti
Vitesse Plus lent Plus rapide
Utilisation typique Web (HTTP), mail (SMTP), FTP Streaming vidéo/audio, DNS, jeux en ligne

4. Le protocole IP (couche Internet)

IP (Internet Protocol)
Protocole de la couche Internet. Il achemine les données (sous forme de paquets IP, aussi appelés datagrammes) d'une machine à une autre, en s'appuyant sur les adresses IP source et destination.

IP est un service non fiable : il ne vérifie pas le contenu des données, ne garantit pas l'ordre d'arrivée des paquets, et ne renvoie pas les paquets perdus. C'est TCP qui se charge de compenser ces limitations.
Application : Données (message) Transport : En-tête TCP Données = Segment TCP Internet : En-tête IP En-tête TCP Données = Paquet IP (datagramme)

5. La couche Accès Réseau

Quand un paquet IP arrive à la couche Accès Réseau, des informations propres à la technologie physique (Ethernet ou Wi-Fi) lui sont ajoutées : un en-tête contenant les adresses MAC source et destination, et un champ CRC de contrôle d'erreur. L'ensemble s'appelle une trame Ethernet (ou trame Wi-Fi).

Structure d'une trame Ethernet
Champ Taille Rôle
Préambule8 octetsSynchronisation des récepteurs
Adresse MAC destination6 octetsMachine destinataire
Adresse MAC source6 octetsMachine émettrice
Type2 octetsProtocole encapsulé (IPv4, IPv6, ARP…)
Données46 à 1500 octetsLe paquet IP encapsulé
CRC4 octetsContrôle d'intégrité (détection d'erreur)

6. Récapitulatif : encapsulation complète

Ce que font switchs et routeurs
Accès Réseau : En-tête Eth. En-tête IP En-tête TCP Données (Application) CRC = Trame Ethernet Internet : En-tête IP En-tête TCP Données = Paquet IP Transport : En-tête TCP Données = Segment TCP Application : Données brutes = Message HTTP, mail…
V. Protocole du bit alterné

Ce protocole est un protocole de correction d'erreurs. Il a été décrit par Barlett et Scantlebury en 1969 et permet de récupérer certaines erreurs lors de transmissions. Bien qu'il ne soit plus utilisé dans les réseaux modernes (remplacé par des protocoles plus performants), il illustre parfaitement les mécanismes de fiabilisation des communications.

Principe du protocole du bit alterné
L'émetteur A ajoute un bit de séquence (0 ou 1, appelé drapeau ou flag) à chaque trame qu'il envoie. Ce bit alterne entre 0 et 1 d'une trame à l'autre.

Cas nominaux et cas d'erreur

Cas nominal (transmission sans erreur) A (émetteur) B (récepteur) Trame [bit=0] → ← ACK [bit=0] Trame [bit=1] → ← ACK [bit=1]
Cas de perte de trame A B Trame [bit=0] → ✗ PERDUE Timeout ! Retransmission Trame [bit=0] → ← ACK [bit=0] Trame [bit=1] →

De la même façon, si c'est l'accusé de réception (ACK) qui se perd, A déclenche son timeout et retransmet la trame. B reçoit alors deux fois la trame portant le même bit : il reconnaît le doublon et l'ignore, mais renvoie quand même l'ACK.

Limites du protocole du bit alterné
Ce protocole ne peut gérer qu'un seul bit de séquence (0 ou 1). Il fonctionne bien pour des pertes ponctuelles, mais est mis en échec si un paquet est très en retard : A renvoie la trame à cause du timeout, B reçoit un doublon qu'il ne peut pas distinguer d'un nouveau paquet. C'est pourquoi des protocoles plus avancés (avec des numéros de séquence sur plusieurs bits) ont été développés pour remplacer celui-ci.