Comprendre ce que nous faisons lorsque nous utilisons Internet.
Un réseau est le transport d'une information d'un point A à un point B via des nœuds d'acheminement 1) reliés entre eux.
Internet utilise la commutation de paquet, par opposition à la commutation de circuit.
Un commutateur électrique qui allume ou éteint une ampoule créant et réservant ainsi un circuit en continu.
Le téléphone crée une ligne en continuité, de nœud en nœud, du point A au point B et en réserve le circuit dans sa totalité tout le temps que durera l'appel.
Le réseau par circuit du téléphone
Le réseau par circuit ne permet pas la communication simultanée et différenciée. Le circuit par commutation de circuit planifie et maintien le circuit ouvert entre le point A et le point B, tout le temps de la communication.
Par exemple, les propos de A destinés à un point F seraient alors mêlés à tous les propos simultanés des point C ou D qui seraient ouverts et reliés au même circuit.
Ça arrive, hein ! .
Pour acheminer un fichier, Internet utilise une ligne du point A à un premier nœud et y envoie un paquet2) numéroté, sans planification pour la suite de l'acheminement jusqu'au destinataire.
Le nœud choisi va acheminer ce paquet vers un nouveau nœud de son voisinage immédiat, toujours sans planification de la totalité du chemin.
Ce nouveau nœud agira de même, les suivant aussi, jusqu'à destination.
Chaque paquet du même fichier passera ainsi entre des nœuds qui pourront être différents de ceux ayant traité le paquet précédent, avant de parvenir au point B qui se chargera lui de les remettre en bon ordre afin de recréer le fichier originel à la réception.
Le réseau par paquet achemine le fichier :
Cela permet des communications multiples et simultanées, dans un parfait mélange.
Par exemple, de A, lors de l'expédition en parallèle d'un fichier vers B et d'un autre vers F, les paquets de chacun des fichiers pourront être mêlés lors de leurs acheminement, mais arriveront bien différenciés à chacun de leurs ports respectifs.
La commutation par paquet vient de France (Cyclade), Internet qui l'utilise vient des États Unis.
Comment chaque paquet se transmet.
On dit à une machine de communiquer tel fichier à tel autre machine par une sortie qui, généralement correspond à votre fournisseur d'accès. C'est le premier passage obligé.
En image, cela correspond au cheminement allant de la sortie d'une voiture depuis le garage jusqu'au portail avant la voie publique.
Une route s'écrit par exemple ainsi :
192.168.0.0/24 via 1.2.3.4
Cela veut dire : Pour faire suivre à telle adresse IP, il faut faire suivre à telle personne.
En français : pour toutes les destinations vers machin jusqu'à truc, il faut passer par ça.
Pour un ordinateur, cela s'écrit en binaire ainsi :
de 3232235520 à 3232235775 via 16909056
Ce binaire pour vous dire que :
Very easy, is'nt ?
Donc, une route (nommée plus justement préfixe) c'est :
Avec le routage statique, chaque nœud du réseau connait les adresses précises de ses voisins et par quels voisins il faut passer pour joindre tel autre bout du réseau. C'est tout.
Une adresse (une destination, ou une source, ou un nœud d'acheminement…), c'est par exemple :
192.168.0.12
Une route ou un préfixe (ce qui désigne une plage d'adresses.) c'est :
192.168.0.0/24
Une passerelle (Par comparaison avec le courrier, le bureau de poste) c'est :
1.2.3.4
Une BiduleBox, est un routeur simple qui a :
Un routeur plus gros, qui correspondrait par exemple aux nœuds des acheminements sur Internet, possède environ 150 passerelles et 300.000 préfixes.
Les préfixes connus de notre BiduleBox sont :
La Box a une première route :
192.168.0.0/24 C'est la route directe vers nos pc personnels.
Lorsque la Box reçoit des messages à destination de ces préfixes, elle sait que c'est de ce côté là qu'elle doit les router : direction la patte 2.
La Box a aussi un interlocuteur connu, c'est le routeur du FAI. Pour lui : direction la patte 1.
Ça veut dire que tout ce qui n'est pas pour la patte 2 (nos pc perso) sera pour la patte 1, le FAI et Internet derrière.
Ainsi, dans notre routeur BiduleBox :
Le nœud que représente notre routeur BiduleBox connait parfaitement les nœuds (nos pc et le routeur du FAI) de proximité immédiate, et seulement ceux-là.
Pour créer un routage dynamique, il est nécessaire de “nommer un réseau” (son AS : Autonomus System) c'est le numéro de l'opérateur.
Le calcul du routage se fait par un échange d'information des AS qui se disent mutuellement. Par exemple :
Je sais joindre telle adresse en trois sauts, via :
tel AS → tel AS → tel AS.
Les routeurs passent leur vie à se partager les nouvelles routes pour joindre la même adresse.
En cas de pépin, ils précisent également la nouvelle route à emprunter.
C'est à dire qu'un routeur va apprendre des 5 routeurs qui le côtoient chacune des 300.000 routes qui lui sont proposées et va prendre la meilleure route possible entre chaque AS pour l'acheminement des paquets.
C'est le rassemblement dans un bâtiment de toutes les lignes d’interconnexion des routeurs sur un seul point.
Autres noms :
Cela permet de se raconter un très grand nombre de routes avec un minimum de câbles de connection.
Chacun des opérateurs (AS) gère et connait l'acheminement dans son réseau. Lorsque deux AS s'échangent des routes possibles, on dit qu'ils sont interconnectés.
Pour permettre le lancement des échanges, chaque routeur commence par annoncer :
Immédiatement, tous les AS qui le cotoient savent :
et lui communiquent les leurs.
Pour l'AS-1
Pour l'AS-2
etc.
C'est pas le meilleur des mondes possibles ça ?
Le peering est l'échange des routes locales uniquement contenues dans chacun des AS interconnectés.
En règle générale, ce service (peering ou GIX OU IXP…) est gratuit.
Le Transit, c'est quand deux opérateurs (AS) s'annoncent des routes qui ne sont pas les leurs, ce sont des adresses qui ne sont pas à destination du second réseau mais vont transiter quand même par son réseau pour arriver à la sortie vers le réseau d'un autre AS, qui lui-même, éventuellement, sera utilisé comme transitaire, jusquà l'AS final qui distribuera le paquet à l'adresse dont il a la gérance.
Typiquement, entre un opérateur de France et un aux États Unis, les paquets vont systématiquement transiter par 3 ou 4 AS.
Ce service est systématiquement facturé.
La symétrie du trafic est la quantité envoyée entre les réseaux et ne peut pas être identique partout. Ce point n'a d'intérêt que commercialement.
Par exemple un fournisseur de contenu comme Youtube sera davantage un expéditeur de paquets plutôt qu'un récepteur, sinon marginalement.
Des négociations privées sont en cours pour faire cesser ou bien pour monnayer ces trafics unilatéraux. Trafics qui n'ont par ailleurs aucune incidence technique, hein !
Le volume est la quantité de paquets traitée par une AS.
Par un lien sur lequel on va émettre des millions de videos tous les jours, les AS qui les véhiculent ont tout intérêt à s'interconnecter directement pour éviter les trafics monnayés.
Actuellement, les négociations entrent les AS portent sur ces trois points :
On route toujours des paquets.
Même pour lire une vidéo, où on a besoin d'un flot en continue, avec un réseau qui fonctionne par paquets, il suffit d'accumuler un premier nombre de paquets dans un buffer, puis de commencer la diffusion.
Au cas où un paquet vient à se perdre, le routeur a tout le temps d'en redemander un exemplaire pour conserver l'approvisionnement des paquets en continue et maintenir le visionnage de la vidéo sans interruption.
Un routeur pour téléphone est épouvantablement plus compliqué car il doit prendre connaissance de tout le réseau avant de créer et construire un circuit.
Le routeur pour Internet ne fait que deux choses, des milliards de fois mais seulement deux. Il décide d'envoyer le paquet reçu là ou là, selon l'adresse contenue qui est inférieure à ou supérieure à un chiffre donné. C'est tout.
Un routeur pour Internet est universel.
Il n'y a pas de nature d'adresse.
Le réseau transporte des paquets. Il ne sait pas qui est client et qui est serveur.
Par contrario, sur un réseau d'eau (qui est en fait un réseau par circuit) on sait qui est le serveur d'eau et qui est l'utilisateur client de l'eau.
Ce qui fait Internet, ce sont les 40.000 AS qui sont interconnectés et qui utilisent le protocole IP pour nommer leurs adresses.
Leur travail le plus important consiste à éviter les doublons d'adresse entre eux tous.
Tous les autres réseaux (IP ou autres) sont des réseaux privés qui utilisent des adresses qui ne sont pas celles utilisées par les AS.
On ne signifie jamais ce que contient les paquets.
Plusieurs machines connectées sur le réseau Internet peuvent s'interconnecter en même temps. (Par exemple sur facebook).
Une machine peut être serveur et client, c'est à dire que l'on peut consulter plusieurs sites et envoyer des pages web à des consultants, tout cela en même temps.
Pour savoir quel paquet va avec quel paquet et non pas un autre, le plus simple en informatique est de numéroter les paquets.
Pour savoir quel paquet va avec quel paquet et non pas un autre, le plus simple en informatique est de rajouter un numéro sur les paquets.
C'est ce que l'on appelle un numéro de port.
En fait le numéro de port est simplement un identifiant de la connection.
La machine indique : tel connection porte tel numéro chez moi.
Si nous tapons cette url que nous cherchons :
http://www.fdn.fr/minitel.avi
Voilà ce que cela donne sur le réseau :
A5038 ---> D.53 : où habite www.fdn.fr ?
Ce qui veut dire :
Si le serveur ne connait pas le port où il faut renvoyer la réponse, il va retourner la réponse sur la bonne machine, mais pas nécessairement pour la bonne question.
Le serveur répond :
D.53 ---> A5038 : il est en 80.67.169.12 (W) (W pour web).
Soit :
La machine envoie alors par un autre port, le port 80 :
A.5039 ---> W.80 : donne-moi le fichier /minitel.avi
Retour :
W.80 ---> A.5039 : //tiens, gaffe, c'est long ! Prévoir plusieurs paquets, environ 600.000 !//
Vu du réseau de transport, il n'y a pas de différence structurelle entre les paquets de la question et ceux de la réponse.
La seule différence qui se fera, c'est au niveau des ports utilisés.
Il peut donc être indifférent.
Par exemple :
Si les serveurs Web et DNS sont la même machine,
Il est donc important que les numéros de port des applications sur les serveurs, soient fixés.
Si vous enlevez le DNS, vous êtes obligé de taper les adresses des machines
C'est le port utilisé par les routeurs pour se raconter leur vie.
Il y a en tout une centaine de ports réservés.
Les paquets sont généralement partis dans l'ordre, mais, du fait des aléas du réseau, ils arrivent dans un ordre différents.
Chez nous, on peut avoir besoin d'adresses pour :
Tout cela fait 6 adresses.
Multiplié par le nombre d'internaute, environ deux milliards, cela fait plus de 12 milliards d'adresses.
Il n'y a que 4 milliards d'adresses possibles sur Internet actuellement.
Pour traiter cela, on choisi des blocs d'adresses qui sont interdites sur le réseau.
Exactement comme il y a des numéros de téléphone que vous n'avez pas le droit d'avoir, par exemple, les 00 qui sont réservés pour l'international.
Il n'y a pas non plus de numéros de téléphone par 99…
Il y a des plages qui sont pas autorisées ou qui sont réservées à des usages internes.
De la même manière, sur le réseau, il y a des plages d'adresses qui sont interdites sur le réseau publique.
C'est à dire que les serveurs savent que s'il y a des paquets qui utilisent une de ces adresses, en provenance ou à destination, il doit les jeter.
Ces adresses sont correctes, juste c'est l'application d'une convention qui dit : “Ces adresses-là, on ne les distribue à personne.”
Nous pouvons donc être certain qu'aucune de ces adresses ne sont utilisées par personne sur Internet, et c'est pourquoi nous pouvons les utiliser chez nous, en privé.
Nous pouvons ainsi relier nos six appareils connectés cnous en réseau privé avec pour chacun une adresse privée qui n'interférera jamais avec une adresse publique sur le web.
Il n'y a aucune route d'annoncée pour ces adresses et, sur le web, les serveurs vont immédiatement en jeter les paquets.
Depuis une adresse privée :
192.168.0.42
Vers le port xxx (n'importe quoi) à destination d'une adresse publique :
80.67.109.12.80
La BiduleBox note :
6734 est 192.168.0.42.5076 (5076 est le port pour cette requête)
Puis elle efface les adresses privées et met la vrai adresse de la BiduleBox en spécifiant le numéro de port qu'elle a réservé pour le retour de la requête :
80.67.176.93.6734 vers 80.67.169.12.80
Ce paquet à bien maintenant une adresse publique client (la demande) et une adresse publique serveur.
Le serveur à l'adresse publique :
80.67.169.12.80
répond à l'adresse publique de la BiduleBox :
80.67.176.93.6734
Pas du tout à destination de la machine qui a demandé la page.
La BiduleBox regarde ses notes et voit que le port 6734 est pour la machine 192.168.0.42.5076 et le lui remet.
La machine n'a pas connaissance des bidouilles faites, qu'on a changé le destinataire de la requête, changer l'expéditeur, tout bricolé dans le milieu, et pourtant, cela arrive tout bien au même endroit.
C'est ce que fait votre routeur personnel quand il permet du partage de connexions. Lui il a une vraie connexion, et il la prête aux machines qui sont connectées dessus.
Un modem, c'est juste une partie qui gère le traitement du signal, il n'a pas d'adresse IP.
Il y a un modem, et il y a un routeur. L'ensemble s'appelle d'ailleurs un Modem-Routeur.
Ça marche en tant que machine client, cela ne permet de stocké un serveur. L'adresse IP :
192.168.0.42.80
n'est pas joignable de l'extérieur.
Ce petit artifice d'utilisation vous empêche d'avoir un serveur. Vous pouvez consulter des données à l'extérieur, vous ne pouvez pas faire consulter des données depuis l'extérieur à cette adresse-là :
192.168.0.42.80
C'est ce que l'on appel de la traduction en entrée.