Niveau :
Résumé : ethernet ; ip ; tcp
Aujourd'hui quelques explications de base sur le fonctionnement d'internet pour ceux qui voudraient mieux comprendre l'article précédent. On va parler simplement, experts, passez votre chemin.
Les couches réseau
Le réseau est conçu comme des lasagnes, chaque protocole s'appuie sur un autre protocole de couche inférieure. Ces couches ont été modélisées par l'iso sous le nom de modèle osi, lequel ne sert à rien (si ce n'est une numérotation bizarre) mais qu'il faut connaître (c'est idiot l'informatique parfois).
En pratique les couches sont donc les suivantes :
- 1 physique : câble branché, des ondes passent dessus, on les transforme ensuite en bits -> pour les électriciens, électroniciens, microondistes, opticiologues et optoélectroniciens
- 2 liaison : envoyer des données à l'autre bout du câble (chez vous c'est l'ethernet qui fait ça)
- 3 réseau : envoyer des données partout sur le réseau (sur internet et quasiment partout c'est IP)
- 4 transport : gestion d'une communication avec une autre machine sur la durée (souvent TCP ou UDP)
- 7 au dessus chacun se démerde, ce sont les applications qui implémentent leur protocole (http, smtp ...)
Exemple d'un paquet (à ce niveau on dit une trame) qui passe sur le réseau :
Chaque couche mérite un livre (voire une bibliothèque) à elle seule, je vais donc être nécessairement court. En fait, je vais me concentrer sur les différents équipements qu'on trouve sur chaque couche.
Switch
Le switch c'est ce qui permet d'aller un peu plus loin que le câble tout en restant au niveau ethernet. A partir de l'adresse MAC "to XX:XX" il envoie le paquet sur le bon port et à la bonne machine sans toucher au contenu du paquet.
Le hub lui ressemble, mais ne fait que retransmettre les paquets à tous les ports (sauf celui d'où ils viennent) sans réfléchir.
Il n'y a pas que les switchs qui permettent de traverser plusieurs câbles, il y a aussi les ponts (bridge), qui en général ont pour but de passer d'un type de câble à un autre (par exemple du rj45 au wifi) et qui souvent touchent à l'en-tête ethernet au passage.
Le paquet (la trame) est vu sous cette forme dans un switch :
Le routeur
Le routage c'est ce qui permet à une machine de communiquer avec une autre machine sans pour autant avoir un câble (avec ou sans switch) entre les 2 machines. Le routage s'effectue sur des routeurs (fort hein !) situés entre les machines et reliés entre eux par des protocole de niveau 2. Les routeurs décident par où passent les paquets (au niveau IP) pour atterrir sur linux attitude.
Le paquet (on dit aussi datagramme) vu par le routeur ressemble donc à ceci :
Vous comprenez donc pourquoi le from/to de l'en-tête ethernet qui semblait redondant ne peut plus servir. Une autre en-tête niveau 2 sera générée à la sortie du routeur pour que le paquet continue son chemin.
Le routeur a pour seule activité de lire la partie IP et de choisir la prochaine machine à qui il devra envoyer ce paquet. Il dispose donc d'une table de correspondance qui lui dit quoi faire. Notez que certaines règles font parfois intervenir la couche au dessus d'IP.
Firewall
Au dessus de ça on trouve aussi des firewall qui analysent l'ensemble (mais le plus souvent la partie IP+TCP) et fait une action dessus (suppression, modification ...).
Le paquet vu par le firewall ressemble donc à ceci
Lorsqu'ils analysent la partie data on les qualifie plutôt d'ids (Intrusion Detection System).
Application
Et enfin par dessus l'ensemble on trouve les applications, c'est à dire le serveur et le client codés sans se soucier des autres couches.
Les paquets (qu'on appelle ici segments) pour une application ressemblent donc à ça :
Comments