Aujourd’hui un petit article de culture générale pour expliquer comment l’internet de tous les jours marche.
Je ne rentrerai pas dans les détails très techniques. Je pense qu’avec une culture de base en informatique on peut comprendre sans difficultés la suite de cet article.
Afin de comprendre simplement tous les mécanismes qui rentrent en jeux, nous allons supposez que vous voulez afficher le blog racam.nohost.me/blog.
L’internet c’est un peu comme le réseau routier
Lorsque vous voulez afficher le blog racam.nohost.me/blog, vous faites une requête ayant pour source votre ordinateur et pour destination le serveur hébergeant mon blog. A partir de là, c’est comme si vous vouliez partir de votre maison (comprendre votre ordinateur) et qu’avec votre voiture (comprendre la requête) vous vouliez aller jusqu’à la maison de racam.nohost.me/blog (comprendre le serveur hébergeant racam.nohost.me/blog).
DNS
On cherche ici à connaitre l’adresse exacte de destination. Pour cela, on utilise le protocole DNS qui va convertir notre nom de domaine en IP (exemple racam.nohost.me/blog -> 1.2.3.4). On peut facilement comparer cela aux pages jaunes : je dois aller dans les locaux de la rédaction racam.nohost.me/blog, les pages jaunes me retournent l’adresse du bâtiment.
Table de routage
Super ! Je connais l’IP/l’adresse du blog racam.nohost.me/blog. Je connais donc ma destination. Maintenant que votre requête est partie de votre ordinateur, il va devoir choisir le bon chemin pour arriver à bon port. Quand nous sommes en voiture, nous disposons de panneaux à chaque intersection ou bien d’un GPS qui nous indique quelle direction prendre.
Ici c’est le même principe, a chaque intersection du réseau se trouve un routeur : c’est un équipement qui grâce à sa table de routage sait rediriger la requête vers le prochain bon routeur pour vous rapprocher de votre destination.
Exemple simple, avec votre modem/box internet à la maison. Elle remplit plusieurs rôles dont celui de routeur. On peut imaginer qu’elle comporte deux entrées dans sa table de routage :
- Toutes les requêtes ayant pour destination les ordinateurs de la maison, sont redirigés vers leur destinataire final.
- Toutes les autres requêtes (à destination de l’internet) sont redirigées vers un second routeur appartenant à votre FAI (Fournisseur d’accès à internet).
Pour faire l’analogie avec notre réseau routier. Notre box est comme le petit rond point de votre quartier. Vous et 3 voisins y habitez autour. Si vous voulez aller chez votre voisin il vous suffit de prendre le rond point et prendre la sortie où habite votre voisin. Si vous voulez aller autre part pour faire des courses, il vous faut prendre la sortie du rond point avec le panneau « Toutes directions ».
Il est impossible d’avoir une entrée dans la table de routage pour chaque destination. Donc il existe souvent une entrée « par défaut » qui recueille toutes les requêtes n’ayant pas trouvées une correspondance avec les autres entrées. Dans notre comparaison cela est équivalent au panneau « Toutes directions » des ronds points. Cela redirige de routeur en routeur de plus en plus haut niveau, jusqu’à tomber sur un qui sait orienter la requête pour la rapprocher de sa destination.
Système Autonome
Prenons un peu de hauteur par rapport à notre réseau routier. Il est intéressant de remarquer que chaque pays possède son propre code de la route, ses propres autoroutes : une organisation qui lui est propre. On peut comparer le réseau routier d’un pays à un système autonome pour notre requête informatique.
Wikipédia (lien):
Un Autonomous System (abrégé AS), ou système autonome, est un ensemble de réseaux informatiques [NDLR ; les villes pour notre comparaison] […] dont la politique de routage interne [NDLR; le code de la route et la signalisation] […]est cohérente.
Un AS est généralement sous le contrôle d’une entité ou organisation unique, typiquement un fournisseur d’accès à Internet.
Ainsi si votre requête a comme destinataire une adresse appartenant au même système autonome que vous (typiquement votre FAI). C’est comme si vous restiez dans le même pays pour atteindre votre destination. Il faut faire attention à ce que notre code la route/signalisation soit cohérent. En effet, il serait handicapant d’avoir des panneaux qui nous font tourner en rond ! Ou bien nous font passer par Lille pour faire Paris – Marseille. Toutes ces problématiques sont résolues par des algorithmes mis en oeuvre dans les GPS par exemple. C’est pareil ici, chaque système autonome doit avoir son GPS interne permettant d’acheminer ses requêtes.
Peering
Cependant que se passe-t-il quand nous devons aller à l’international avec notre réseau routier ? Si j’habite en France et que je veux aller en Belgique, il faut qu’il existe une route entre les deux pays. Un accord entre la France et la Belgique a donc été pris pour relier les deux pays par une route.
En informatique on appelle cela le peering (Appairage en français). Cela consiste à connecter entre eux 2 systèmes autonomes. Bien sûr, il faut financer cette liaison et ce n’est pas toujours évident.
Exemple avec Free et YouTube : la route (le peering) entre le système autonome de Free et celui de YouTube n’était pas assez grande pour tout le trafic généré. Du coup, les clients de Free subissaient des embouteillages et avaient un débit réduit vers YouTube. Cela n’était pas le cas avec les autres FAI qui avaient un accord de peering permettant de faire passer un plus gros trafic.
Il serait hasardeux de trouver un coupable dans ce genre de situation, les accords de peering sont souvent confidentiels. Quand il faut financer une autoroute entre la France et la Belgique, il est compliqué de tomber sur un accord pour savoir qui paye quoi en fonction de la multitudes de facteurs. (sens du trafic, politique internationale, enjeux économiques …).
BGP
Reste un dernier problème : à moins de connecter tous les systèmes autonomes entre eux, je vais devoir passer par des systèmes autonomes intermédiaires. Pour aller de la France au Portugal, je dois passer par l’intermédiaire de l’Espagne. Cependant, comment savoir que je dois passer par l’Espagne pour aller au Portugal ? Réponse : il faut que les systèmes autonomes se synchronisent entre eux pour calculer les différentes routes possibles : ce protocole s’appelle BGP.
BGP (Border Gateway Protocol) permet donc de créer une table de routage de très haut niveau : entre les systèmes autonomes.
Ainsi, si les locaux du blog racam.nohost.me/blog sont au Portugal et que je suis en France, ma signalisation/mon code la route va me diriger vers un rond point de frontière. Ce rond point de frontière va grâce au protocole BGP me redirigera vers l’Espagne car j’ai un route existante (peering) entre la France et l’Espagne. Une fois en Espagne, je serais redirigé vers la frontière entre l’Espagne et le Portugal puis envoyer au Portugal grâce à une route entre les deux pays (peering). Une fois dans mon pays de destination, il me suffit de suivre les signalisations du pays pour arriver à destination.
Conclusion
Internet est défini comme un réseau de réseaux et j’espère que cette analogie routière vous aidera a en saisir les mécanismes.
Il est évident que pour cet exercice de vulgarisation beaucoup de détails ont été omis et des simplifications faites afin de ne pas alourdir la compréhension. Si toutefois, vous trouvez un détails important à mentionner, je vous invite à laisser un commentaire pour aider de futurs lecteurs à mieux comprendre.