Aller au contenu

Partie 2 : Routage et DNS


Le réseau Internet est constitué de routeurs reliés entre eux par des liens de communication. Un routeur est un équipement dont la fonction est d'aiguiller les paquets vers leur destination.

Chaque routeur possède une table de routage : un programme qui détermine, pour chaque paquet reçu, vers quel routeur voisin il faut le transférer. Le routeur ne connaît pas la totalité du réseau ; il se contente de prendre une décision locale à chaque étape.

Analogie postale : une lettre de Boston à Montauban

Section intitulée « Analogie postale : une lettre de Boston à Montauban »

Imaginons qu'une lettre soit envoyée de Boston (États-Unis) à Montauban (France). La lettre ne va pas directement de la boîte aux lettres de l'expéditeur à celle du destinataire. Elle transite par une série de centres de tri postal :

  1. Le facteur de Boston dépose la lettre au centre de tri local de Boston.
  2. Ce centre voit que la destination est en France : il envoie la lettre au centre de tri international des États-Unis.
  3. Le centre international américain la transmet au centre de tri de Roissy (principal hub postal français pour le courrier international).
  4. Roissy l'envoie au centre de tri régional de Toulouse.
  5. Toulouse la transmet au bureau de poste de Montauban, qui la distribue au destinataire.

Chaque centre de tri fonctionne exactement comme un routeur : il ne connaît pas tout le chemin, mais il sait vers quel prochain centre envoyer la lettre en fonction de l'adresse de destination. C'est le principe du routage pas-à-pas.

Le chemin emprunté par un paquet dépend de plusieurs critères :

  • la vitesse de transmission des liens ;
  • la charge (congestion) des routeurs ;
  • la disponibilité des liaisons.

Imaginons un réseau simplifié de villes françaises reliées par des routeurs. Pour envoyer un paquet de Lille à Perpignan, plusieurs chemins sont possibles :

  • Lille → Paris → Toulouse → Perpignan
  • Lille → Paris → Lyon → Marseille → Perpignan
  • Lille → Reims → Lyon → Toulouse → Perpignan

Le routeur de chaque ville choisit le meilleur prochain saut selon les conditions du moment.

Un réseau informatique peut être représenté sous forme d'un graphe : chaque routeur est un sommet et chaque liaison physique est une arête. Lorsqu'on associe un poids (un coût) à chaque arête, on obtient un graphe pondéré.

Le poids peut représenter :

  • le temps de transmission en millisecondes ;
  • le nombre de sauts (nombre de routeurs à traverser) ;
  • un coût calculé à partir de la bande passante du lien.
A ---3--- B ---1--- C
| | |
2 4 2
| | |
D ---5--- E ---1--- F

Dans cet exemple, le chemin de A à F peut passer par plusieurs routes. Trouver le plus court chemin (celui dont la somme des poids est minimale) est un problème classique en informatique.

On peut chercher le chemin optimal par tâtonnement : on liste tous les chemins possibles, on additionne les poids, et on garde celui qui a le coût le plus faible.

Pour les réseaux de grande taille, le tâtonnement est trop lent. On utilise alors des algorithmes spécialisés, comme l'algorithme de Dijkstra (du nom du mathématicien néerlandais Edsger Dijkstra). Sans entrer dans les détails de cet algorithme (qui est au programme de Terminale NSI), son principe est le suivant :

  1. On part du sommet de départ et on lui attribue un coût de 0.
  2. On explore ses voisins et on note le coût pour les atteindre.
  3. On choisit le voisin ayant le coût le plus faible et on répète l'opération depuis ce voisin.
  4. On continue jusqu'à atteindre la destination, en mettant à jour les coûts dès qu'on trouve un chemin moins cher.

Sur Internet, les routeurs utilisent des protocoles de routage pour construire automatiquement leurs tables de routage. Deux protocoles importants sont :

  • Critère de choix : le nombre de sauts (nombre de routeurs à traverser).
  • Principe : le meilleur chemin est celui qui passe par le moins de routeurs possible.
  • Avantage : simple à mettre en œuvre.
  • Inconvénient : ne tient pas compte de la vitesse des liens. Un chemin en 2 sauts par des liens lents peut être choisi plutôt qu'un chemin en 3 sauts par des liens très rapides.
  • Limite : maximum 15 sauts ; au-delà, la destination est considérée comme inaccessible.

Les adresses IP (comme 195.81.225.119) sont difficiles à mémoriser pour les humains. On utilise donc des noms de domaine (ou adresses symboliques), bien plus faciles à retenir.

Un nom de domaine se compose de deux parties :

PartieRôleExemples
NomIdentifie le sitewikipedia, google
ExtensionIndique le type d'organisation ou le pays.org (association), .com (commercial), .fr (France), .gouv.fr (gouvernement français)

Le DNS (Domain Name System) est le système qui fait le lien entre un nom de domaine et l'adresse IP correspondante. Il fonctionne comme un annuaire :

  1. Vous tapez www.wikipedia.org dans votre navigateur ;
  2. Votre ordinateur interroge un serveur DNS ;
  3. Le serveur DNS répond avec l'adresse IP correspondante (par exemple 78.109.84.114) ;
  4. Votre navigateur contacte le serveur à cette adresse IP.

Le système DNS est distribué : aucun serveur ne contient l'intégralité de l'annuaire. Les serveurs se répartissent la charge et se consultent mutuellement si nécessaire.

On peut retrouver l'adresse IP associée à un nom de domaine grâce à des commandes ou des outils en ligne :

# En Python, on peut résoudre un nom de domaine
import socket
adresse_ip = socket.gethostbyname("www.wikipedia.org")
print(f"L'adresse IP de wikipedia.org est : {adresse_ip}")