- Qu’est ce qu’un réseau ?C’est un ensemble d’éléments accessible entre eux par le biais de différents mode d’accès selon l’élément :
- Le réseau routier/autoroutier
- Le système nerveux
- Le téléphone
- Les réseaux mafieux
- Un système électronique
- Qu’est ce que l’informatique ?D’une façon générale, c’est la science du traitement de l’information ; dans notre cadre il s’agit du traitement automatisé de l’information, essentiellement par l’utilisation d’ordinateur ou d’automates.
- Saperlipopette, mais alors, qu’est ce qu’un réseau informatique ?!Il s’agit tout simplement d’un ensemble d’éléments accessibles entre eux par le biais de différents supports de communication, et dont le but est de traiter automatiquement les informations.
- Mais à quoi ça sert en fait ?C’est très simple, cela permet d’abord, l’échange d’informations entre différents utilisateurs plus ou moins proches les un des autres et offrent ainsi, différentes possibilités :
- Le partage de ressources
- La communication entre personnes
- La communication entre ordinateurs pour équilibrer les charges de travail
- La mise en place de base de données
- Le partage de données en temps réel
Ce qui permet finalement :
- Une diminution des coûts grâce au partage des périphériques.
- Une standardisation des applications.
- Un accès aux données, en temps utile.
- Une communication et une organisation plus efficace.
- Ok, mais alors, comment ça marche ?Les échanges effectués au sein des réseaux informatiques sont des échanges de type « communication », comme tout le monde le sait, pour pouvoir communiquer, il est préférable de parler la même langue (Français, Anglais), d’utiliser les mêmes règles de dialogue (on parle chacun son tour, tous en même temps, temps de parole, etc), d’être capable de comprendre ce que dit son interlocuteur (un technicien qui parle avec un commercial…), toutes ces règles font partis de ce qu’on appelle, le protocole de communication.
De la même façon, dans un réseau informatique, les communications doivent rigoureusement respecter différents protocoles de communication, jetons un œil à leur principe global :
L’ordinateur A, veut accéder à la page web
https://witistyrannic.1fr1.net/Cette page web est stockée et gérée par un serveur web (un logiciel) installé sur un ordinateur B :
Ordinateur A : Ordinateur B, es-tu là ?
Ordinateur B : (trop occupé pour répondre, il y a tellement de monde sur notre forum)
Ordinateur A : Ordinateur B, es-tu là ?
Ordinateur B : (trop occupé pour répondre, il y a tellement de monde sur notre forum)
Ordinateur A : Ordinateur B, es-tu là ?
Ordinateur B : Je suis là, Ordinateur A.
Ordinateur A : Je voudrais la page
https://witistyrannic.1fr1.net/index.htm.Ordinateur B : Bien compris je t’envoies la page en 4 paquets
Ordinateur B : Paquet 1
Ordinateur A : Paquet 1 reçu
Ordinateur B : Paquet 2
Ordinateur A : Paquet 2 reçu
Ordinateur B : Paquet 3
(Problème sur le réseau le paquet 3 n’arrive pas à l’ordinateur A, au bout de 5 secondes sans réponses de l’ordinateur A, l’ordinateur B réitère son envoi : )
Ordinateur B : Paquet 3
Ordinateur A : Paquet 3 reçu
Ordinateur B : Paquet 4 dernier paquet
Ordinateur A : Paquet 4 reçu
Ordinateur B : Au revoir
Ordinateur A : Au revoir
L’utilisateur voit à présent la page d’index de notre huper forum, qui a été mis en ordre par son navigateur. Pour voir le contenu de l’ensemble des paquets il suffit d’afficher le code source de la page (ctrl+u sur firefox, je sais plus sur IE mais c’est dans les menus en haut).
Bon, nous venons de voir, en gros, à quoi ressemble une communication courante entre deux ordinateurs.Une communication réseau, comme celle que nous venons de voir, est en fait beaucoup plus complexe, pour la simplifier, il a été décidé, il y a quelques années maintenant d’unifier les protocoles de communication selon un même modèle : le modèle OSI et même si l’on tend à présent vers un nouveau modèle appelé TCP-IP, il est préférable de conserver nos explications autour du modèle OSI car il englobe le modèle TCP-IP.
Lorsque l’utilisateur A (de l’ordinateur A) demande la page index.htm, il ne la demande pas directement à l’ordinateur B, mais demande à son ordinateur d’aller la demander.
Pour ceci, il va alors dialoguer avec son application (firefox par exemple), qui va elle dialoguer avec les drivers au travers du système d’exploitation et enfin, la carte réseau. Ce n’est qu’en sortie de la carte réseau qu’on a : Ordinateur A : Ordinateur B, es-tu là ?
Une fois arrivé sur l’ordinateur B, le message subit le même traitement mais inversé : réception par la carte réseau, traitement par les drivers qui transmet le message au travers du système d’exploitation, au serveur web.
Le modèle OSI permet ainsi de décomposer ce traitement de l’information envoyée et/ou demandée par l’utilisateur A :
La liste de protocoles associés aux différentes couches est loin d’être exhaustive, surtout quand on sait que n’importe qui peut créer son propre protocole.
En fonction des applications et de l’action que l’on veut effectuer, certains protocoles sont récurrents. Dans le cas de notre accès à la page index.html via un navigateur web, nous passerons par un protocole http (ou https dans le cas d’accès sécurisé) sur les 3 couches de niveau haut (Application, Présentation et Session), le protocole TCP prendra alors le relais, puis le protocole IP, et enfin le protocole Ethernet, ou Wi-Fi, ou autre encore selon le chemin qu’empruntera notre paquet avant d’arriver à destination.
Ce processus de traitement successif de l’information par différentes couches s’appelle l’encapsulation.
Essayons d’analyse ce qui se passe lorsque je tape
https://witistyrannic.1fr1.net/index.htm :
Couche Application :L’application Firefox récupère ma demande qui contient :
La page que je veux (index.htm)
Où elle se trouve (witistyrannic.1fr1.net)
Et par quel protocole je veux l’obtenir (http)
Mon information ressemble à cela :
HTTP
| Witistyrannic.realbb.net
| /index.htm
| Query (je veux)
Couche présentation :La couche présentation n’a rien à faire pour le moment, mon information ne change pas.
Couche Session :Qui suis-je ? je ne suis pas logé pour le moment, pas de cookie ou autre, par conséquent je dois informer que je me connecte en anonyme, ce qui ne pose pas de problèmes puisque je veux accéder à une page public. De toute façon, si ça pose problème le serveur web, en face, me le dira (Access Denied).
Mon information ressemble alors à ça :
HTTP
| Witistyrannic.realbb.net
| /index.htm
| Query (je veux)
| Anonymous
Couche Transport :La couche transport assure que la communication s’effectue correctement et que les données ne sont pas altérées, nous allons ici utiliser le protocole TCP ; le protocole TCP n’a que faire de ce que j’envoies, il ne veut que contrôler que la transmission s’effectue correctement. C’est lui qui répond, par exemple, lorsque l’on reçoit un paquet ou pour établir la connexion, c’est également à ce niveau qu’apparaissent les notions de port logique, de somme de contrôle, de numéro d’acquittement, etc…
Le protocole TCP va alors rajouter les informations suivantes aux données reçues de la couche supérieure :
TCP
| Port src
| Port dest
| Checksum
| Numéro de séquence
| Numéro d’acquittement
| données
Port source : port à partir duquel sont envoyées nos informations, lors d’un dialogue entre client web et serveur web, on utilise principalement le port 80
Port destination : port vers lequel sont envoyées nos données, il s’agit donc toujours du port 80
Checksum : il s’agit d’un calcul effectué à partir des données, un algorithme est appliqué aux données et donne un résultat qui est stocké dans le checksum, lorsque le serveur recevra ce paquet, il effectuera le même algorithme sur le paquet et compara son résultat avec le checksum, si les valeurs sont identiques alors le paquet est bon, sinon le serveur demandera au client de lui renvoyer le paquet.
Numéro de séquence : 00 pour le moment ; lors d’une communication entre deux éléments, chaque paquet est marqué d’un numéro de séquence, ce qui permet de suivre l’évolution de la communication et de s’assurer que les paquets arrivent dans l’ordre (afin de ne pas confondre les paquets entre eux).
Numéro d’acquittement : indique le numéro de séquence du paquet que le serveur devra envoyer, cela permet aux deux interlocuteurs de s’assurer en permanence de la bonne évolution de la communication.
Données : il s’agit de l’ensemble des données empaquetées précédement (http, witistyrannic…, index.htm, query, anonyme…)
Au niveau Transport, l’information se présente sous le nom « segment » ou « segment TCP »
Couche Réseau :C’est au niveau de la couche réseau que se détermine le chemin à prendre pour accéder à un élément, c’est en grande partie à ce niveau que s’effectue le routage des informations, essentiellement sur de longues distances, il devra sélectionner le meilleur chemin pour atteindre l’ordinateur cible.
Nous utiliserons pour notre part, le protocole IP :
Vip
| Taille entête
| Taille totale
| TTL
| Protocole
| CRC
| Addr src
| Addr dest
| données
| padding
Vip : version du protocole IP (IPv4 ou IPv6)
Taille entête : taille de la partie IP uniquement (sans prendre en compte les données)
Taille totale : taille totale entête + données
TTL : time to live, pour ne pas qu’une information perdue, circule à l’infinie dans un réseau, elle a un temps de vie ; à chaque fois qu’un routeur reçoit un paquet, il diminue la valeur TTL de 1, lorsque cette dernière atteint zéro, le paquet est détruit.
Protocole : protocole utilisé dans la couche supérieure
CRC : il s’agit d’un checksum mais uniquement sur les information IP et donc, sans prendre en compte les données
Addr src : Adresse ip source (il s’agit ici de l’adresse IP attribuée par votre fournisseur d’accès, par exemple 81.56.252.104
Addr dest : Adresse ip de destination (il s’agit ici de l’adresse IP du serveur , dans notre cas et pour notre forum il s’agit de 72.29.95.126 )
Données : ensemble des données reçues de la couche transport
Padding : un paquet ip a une taille minimale à respecter, si les informations transmises sont trop petites pour atteindre cette taille, on comble le vide avec des bits (pas de sous entendus) ces bits s’appellent des bits de bourrage (si si).
Au niveau Réseau, l’information se présente sous le nom de « paquet » ou « paquet IP »
Couche Liaison de données :La couche liaison de données se charge de transmettre les informations entre des éléments relativement proches ou directement connectés. C’est à ce niveau que s’effectue la gestion directe du matériel.
Nous utiliserons dans notre cas, le protocole Ethernet :
Adresse MAC Dest
| Adresse MAC Src
| Protocole
| données
| FCS
Adresse MAC Dest : il s’agit ici de l’adresse matérielle de la carte réseau destinatrice de l’information, cette adresse est unique à chaque interface réseau dans le monde, elle se présente sous la forme suivante : 43.FF.52.BC.8F.10
Adresse MAC Src : Même chose que précédemment, mais pour la carte réseau émettrice de l’information.
Protocole : Protocole de la couche supérieure (dans notre cas, IPv4)
Données : Ensemble des informations reçues par la couche précédente
FCS : identique au checksum du protocole TCP, avec moins de fiabilité toutefois.
Au niveau Réseau, l’information se présente sous le nom de « trame » ou « trame Ethernet »
Couche Physique :La couche physique est chargée de la transmission physique des informations, sous forme de signaux électrique si le support est en cuivre, de signaux lumineux s’il s’agit d’une fibre optique, ou encore d’ondes ou de rayons infrarouges pour les supports sans fils.
Cette couche peut être gérée par un protocole indépendant mais il est courant de voir le même protocole que celui de liaison de donnée, gérer la couche physique, dans notre cas, il s’agit donc toujours d’Ethernet.
Suite du traitement de l'information :Lorsqu’elle quitte l’Ordinateur A, la trame, sous forme de signaux électrique dans le fil, va rejoindre, votre routeur-adsl (ou livebox,freebox,merdebox,neufbox,dartybox et autre saloperies), ce dernier est un élément de couche 3, il va donc lire les informations jusqu’au paquet, determinant ainsi que l’information est destinée à un élément situé sur l’Internet. Il va réécrire les éléments de couches inférieures : 2 et 1 et envoyer la trame vers le DSLAM (sorte de nœud qui gère votre arrondissement, ville, quartier…), la trame sera alors encore modifiées au niveau 2 et 1, et envoyée vers un routeur ou un autre nœud, en direction sur serveur qui gère le présent forum.
Il est possible qu’en chemin, notre information ai à emprunter une fibre optique, à passer par satellite ou un autre type de liaison sans fils, les couches 1 et 2 sont alors réécrites en conséquences et avec les protocoles adaptés.
Notre trame finira par arriver sur le routeur-adsl sur lequel est branché le serveur d’hébergement du forum, il renverra l’information vers le serveur web qui traitera alors la trame en la décapsulant entièrement :
Les informations physique et données contiennent à ce moment là des données sur le routeur-adsl local, ce qui n’est pas important pour le serveur web, par contre, le paquet IP, lui, contient les informations sur l’émetteur de l’information : l’ordinateur A (ou presque) ainsi que sur le protocole supérieur (TCP), ce dernier prend alors en charge le paquet, devenu un segment puisque dépouillé de ses informations de niveau réseau. Le protocole TCP apprend alors que le segment est destiné au port logique 80, vers lequel il envoi l’information.
Sur le serveur, différentes application utilise le port logique 80, mais une seule est censée recevoir des informations sur ce port : le serveur web.
Il reçoit alors les information de niveau 5 : Session, où il apprend que l’utilisateur est anonyme et qu’il dialogue en mode http.
Il continue de décapsuler l’information pour en obtenir le cœur :
Query(je veux) Index.htm
Le serveur web peut alors envoyer le fichier index.htm, à l’ordinateur A, en suivant le même processus que lui.
Il est à noté que l’explication est extrêmement simplifiée, il y a de très nombreux autre points et éléments à prendre en compte lors d’un simple transfert comme celui-ci, cependant, je ne veux pas surcharger la première lecture, et reviendrais en détails sur les points sur lesquels vous désirez de plus amples informations.EDIT: rajout du détail de la couche réseau, je l'avais oublié...