Modèle OSI

Le modèle OSI (Open Systems Interconnection) est le modèle théorique le plus répandu décrivant le processus de communication entre deux systèmes indépendants (ex. ordinateurs, consoles de jeu, appareils intelligents, imprimantes, routeurs, etc.). Il est généralement représenté en 7 couches (4 couches hautes, 3 couches matérielles). Ces couches représentent la structure d’une unité de données de protocole ou “protocol data unit” (PDU).

Couche #1 : Physique

La couche physique du modèle OSI correspond aux interfaces réseau et aux connexions point-à-point entre les appareils du réseau (ethernet, fibre, wifi, etc.). On trouve à cette couche les données brutes (bits) destinées à l’appareil directement connecté à l’autre bout du fil. Ces données peuvent être transmises par différentes méthodes incluant des signaux électriques, lumineux ou radio. 

C’est à cette couche que l’on parle souvent de duplex complet (full duplex) ou demi-duplex/simplex (half duplex). Lorsque la connexion est établie en plein duplex, la connexion est composée de deux liens et donc les deux appareils peuvent échanger des données simultanément. Lorsque la connexion est établie à demi-duplex, seulement un lien est établi, donc seulement un hôte peut parler à la fois. Ces liaisons se nomment des domaines de collision car si deux hôtes parlent en même temps sur un seul lien, leurs données entreront en collision et seront perdues et devront être retransmis.

On peut penser ici à l’équivalent d’une lettre à transmettre.

 

Couche #2 : Liaison de données

La couche de liaison de données est la couche responsable de l’acheminement de données entre deux hôtes par leur adresse MAC (medium access control). Cette adresse est unique à chaque interface permettant la mise en réseau d’un appareil (carte Ethernet, WiFi, Bluetooth, etc.). Un hôte possédant plusieurs interfaces aura donc une adresse unique pour chaque interface. Cette adresse peut être reconfigurée au besoin mais l’interface conservera toujours une adresse de base unique.

Les unités de transmission à cette couche du modèle OSI se nomment des trames Ethernet et sont destinées à une adresse MAC, que ce soit celle de la destination finale du trafic ou celle du prochain saut à la couche réseau (passerelle). L’étendue dans laquelle il est possible d’acheminer des trames se nomme un domaine de diffusion. Pour acheminer du trafic à l’extérieur de celui-ci, il faut passer à la couche réseau du modèle OSI. Les appareils responsables de l’acheminement des trames au sein d’un domaine de diffusion sont généralement des concentrateurs (hubs), commutateurs (switch) ou des ponts (bridges). Ces appareils utilisent une table de commutation ou “forwarding information database” (FIB/FDB/MAC) qui répertorie quelle adresse MAC se situe derrière quelle interface réseau.

La capture d’écran suivante est une table de commutation sur un commutateur Cisco. On y remarque que deux adresses se situent derrière le port 2 car un autre commutateur y est branché derrière lequel se situent deux ordinateurs.

          Mac Address Table
-------------------------------------------

Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
   1    0050.7966.6800    DYNAMIC     Et0/0
   1    0050.7966.6801    DYNAMIC     Et0/1
   1    0050.7966.6802    DYNAMIC     Et0/2

La structure d’une trame ethernet est la suivante.

8 octets

6 octets

6 octets

2 octets

MTU

4 octets

Préambule

MAC Destination

MAC source

Type

Données

FCS

Le préambule annonce le début d’une trame ethernet. Les adresses de destination et source seront utilisées pour l’acheminement des données. Le type de trame indiquera la norme utilisée pour la trame (Ethernet II, 802.3, 802.2, etc.). Les données seront généralement un paquet IP mais d’autres protocoles fonctionnant seulement à la couche 2 existent. Sa taille est variable en fonction de la taille maximale d’unité de transmission (MTU). La dernière section d’une trame contient la séquence de variation de trame ou “frame check sequence” (FCS). Il s’agit du résultat d’un calcul permettant la détection d’erreur dans la transmission de la donnée.

Pour effectuer l’association entre les adresses MAC et les adresses IP (entre la couche 2 et la couche 3), c’est le protocole ARP qui sera utilisé. Tous les appareils connectés à un réseau IP possèdent une telle table. La capture d’écran suivante représente une table ARP sur un routeur MikroTik.

[admin@MikroTik] > /ip arp print
Flags: D - DYNAMIC; C - COMPLETE
Columns: ADDRESS, MAC-ADDRESS, INTERFACE, STATUS
#    ADDRESS      MAC-ADDRESS        INTERFACE  STATUS
0 DC 192.168.4.2  0C:45:07:34:00:03  ether4     reachable
1 DC 192.168.2.2  0C:C2:BC:B8:00:01  ether2     reachable
2 DC 192.168.3.2  0C:F1:BF:A0:00:02  ether3     reachable

Ce protocole opère à la couche 2 et permet donc seulement de remplir la table avec les adresses se situant au sein du même domaine de diffusion.

On peut penser ici à l’équivalent de remettre directement une lettre à un voisin ou à déposer une lettre dans une boîte aux lettres.

Couche #3 : Réseau

La couche réseau est la couche responsable de l’acheminement de données entre plusieurs domaines de diffusion. Les unités de transmission à cette couche du modèle OSI se nomment les paquets IP et sont destinés à une adresse IP. C’est ici que les tables de routage seront utilisées. Tous les appareils connectés à un réseau IP possèdent une table de routage. Cette table en association à la table ARP permet la création d’une trame Ethernet en fonction d’une adresse IP de destination.

Une table de routage contient les réseaux de destination et soit l’interface par laquelle faire parvenir (si le réseau est directement connecté) ou l’adresse IP à qui transmettre la donnée ensuite (passerelle).

L'exemple suivant est une table de routage sur un routeur MikroTik. On y observe ici que le réseau 192.168.2.0/30 est directement connecté à l'interface ether2, 192.168.3.0/30 à l'interface ether3, 192.168.4.0/30 à l'interface ether4 mais aussi que le réseau 10.4.20.0/24 est connecté à son interface ether1 et que si le MikroTik doit atteindre toute autre destination inconnue, la route vers 0.0.0.0/0 (incluant toutes les adresses IPv4), il acheminera ce trafic à l'adresse IP 10.4.20.1. Cette route se nomme une route par défaut/de dernier recours et est la route qui sera utilisée pour tout trafic destiné à une adresse ne figurant pas dans la table de routage existante.

[admin@MikroTik] > /ip/route/print
Flags: D - DYNAMIC; A - ACTIVE; c - CONNECT, d - DHCP
Columns: DST-ADDRESS, GATEWAY, DISTANCE
    DST-ADDRESS     GATEWAY    DISTANCE
DAd 0.0.0.0/0       10.4.20.1         1
DAc 10.4.20.0/24    ether1            0
DAc 192.168.2.0/30  ether2            0
DAc 192.168.3.0/30  ether3            0
DAc 192.168.4.0/30  ether4            0

Lors de la préparation de la trame Ethernet, si le réseau est directement connecté, l’émetteur consultera sa table ARP pour déterminer à quelle adresse MAC faire acheminer directement la trame contenant le paquet. Si le réseau de destination se situe derrière une adresse IP, l’émetteur enverra la trame Ethernet à l’adresse MAC correspondant à la passerelle/prochain saut.

On peut penser ici au service postal qui acheminera la lettre au bon endroit.

Couche #4 : Transport

La couche de transport est le cœur du modèle OSI. On y trouve ici le protocole utilisé (ICMP, TCP, UDP, etc.) et le numéro de port auquel la connexion sera envoyée. Un hôte sur un réseau peut être à l’écoute de connexions entrantes sur plusieurs ports pour différentes applications plutôt que d'usurper une adresse IP unique par application. Certains protocoles comme TCP établissent une connexion et s’assurent de la livraison des données par des accusés de réception alors que d’autres protocoles comme UDP sont “sans connexion” et abandonnent les données dont le délai de livraison est échu.

Cette couche est aussi responsable de la façon dont les données seront segmentées en plusieurs paquets pour être acheminées à la destination. Ceci permet de transmettre une plus grande quantité de données sans monopoliser le réseau lors de la transmission et permet de retransmettre seulement les segments de données perdus en cas d’erreur lors de la transmission.

 

Couche #5 : Session

La couche de session détermine la façon dont les interlocuteurs établissent, maintiennent et terminent leur connexion. On y retrouverait ici des protocoles tels que SIP (établissement d’appels audio/vidéo), HTTP pour l’acheminement de pages web ou FTP pour le transfert de fichiers. Cette couche permet l’authentification et l’autorisation de connexion des clients ainsi que la gestion de sessions (ouverture, restauration, fermeture).

Couche #6 : Présentation

La couche de présentation s’assure que le système recevant les données sache comment les interpréter. Elle permet la conversion de données, la compression et décompression de données, l’encryption et décryptage de données, etc.

Couche #7 : Application

La couche d’application contient les données d’application échangées entre les différents systèmes tout au long de la connexion.