Internet, le conglomérat des réseaux17/11/06 Qu'est-ce que l'internet ? Littéralement, « internet » vient du néologisme anglais « internetting » qui désigne le fait d'interconnecter des réseaux. L'internet est donc un réseau de réseaux. Comment ça marche ? L'information circule sous forme de paquets acheminés indépendamment les uns des autres. Pour cela, chaque paquet contient un identifiant de la destination : son adresse IP. La manière d'allouer les adresses IP et la manière d'acheminer les paquets sont intimement liées, c'est ce qui permet de faire fonctionner de concert plusieurs centaines de milliers de réseaux connectant ainsi plusieurs centaines de millions de machines entre elles.
Ce document vise essentiellement à donner une idée des principes de base du fonctionnement de l'internet. Il aborde notamment la façon dont y sont acheminées les données,
comment est identifiée la destination d'un envoi de données
(quelle est son adresse ?), les problèmes liés à la croissance de
l'internet, et quelques aspects de son utilisation courante.
1. Circulation de l'informationComment les données circulent-elles dans l'internet ? Ce qui circule : des paquetsDans un réseau, l'information qui circule est découpée en unités élémentaires appelées paquets. Il s'agit d'une suite d'octets suffisamment courte pour pouvoir être communiquée sous forme numérique et sans erreur sur un câble de communication ou tout autre type de liaison numérique (radio par exemple). Dans le cas de l'internet, le format des paquets est spécifié par un protocole, l'Internet Protocol, connu sous l'acronyme IP. On parle donc de paquets IP. Quand on récupère un fichier par exemple, son contenu est découpé en petits morceaux inclus dans une multitude de paquets IP qui transitent sur le réseau. Chaque paquet circule indépendamment des autres. Pour cela, il contient un en-tête indiquant entre autres quelle est la destination du paquet. Le protocole IP spécifie que cette destination est identifiée par une suite de 4 octets : son adresse IP (chaque octet est généralement lu comme un nombre entre 0 et 255). Voici le format de l'en-tête d'un paquet IP, tel que spécifié
au bit près
dans le standard
RFC 791
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of Service| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live | Protocol | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
On voit qu'outre l'adresse IP de la destination (cinquième ligne),
un paquet IP contient aussi celle de la source (quatrième ligne)
et bien d'autres champs À l'intérieur d'un réseauComment les paquets ainsi formés circulent-ils dans un réseau ? Un réseau est constitué de routeurs et de liens de communication. Les liens relient les routeurs entre eux à la manière de routes entre les villes d'un pays. Plus précisément, un routeur est une sorte d'aiguilleur qui possède des liens avec d'autres routeurs. Chaque lien est branché au routeur via une interface. La principale activité d'un routeur consiste à router des paquets. Voici plus précisément comment fonctionne le routage :
Le choix de l'interface de sortie dépend de l'en-tête du paquet.
Pour faire ce choix, un routeur maintient à jour une table de
routage qui contient pour une destination donnée le numéro
d'interface où faire suivre le paquet.
Un protocole de routage spécifie les informations que
s'échangent les routeurs pour pouvoir construire leurs tables de
routage. Calculer les tables de routages revient à calculer
des chemins dans un graphe Toute machine reliée à un des routeurs du réseau peut ainsi communiquer avec toute autre machine reliée à un routeur du réseau. Les machines qui sont ainsi mises en relation par un réseau sont appelées des hôtes. À l'opposé, dans les réseaux téléphoniques (qui existent depuis beaucoup plus longtemps que l'internet), tous les paquets d'une communication se suivent avec régularité sur la même route. Toute communication commence par l'établissement d'une connexion qui va configurer les éléments du réseau de sorte qu'une route soit réservée pour la série de paquets qui va suivre. Ces réseaux dédiés à une application donnée, comme le transport de la voix, n'ont pas la malléabilité de l'internet, dont le principe de base consiste à interconnecter tout ce qui peut transporter un paquet IP. On oppose ainsi les réseaux en mode connecté comme les réseaux téléphoniques aux réseaux à commutation de paquets comme l'internet. Comment agréger les réseauxComment les paquets circulent-ils d'un réseau à un autre ? Les hôtes, machines des utilisateurs de l'internet, sont généralement reliés à un réseau local. Pour chaque réseau local, un routeur appelé passerelle relie ce réseau avec l'internet. La seule décision de routage prise par un hôte est d'envoyer un paquet, soit directement à la destination si elle se trouve dans le réseau local, soit à la passerelle sinon. Tous les routeurs d'un réseau sont gérés par la même organisation. Ils sont reliés entre eux, et savent acheminer des paquets entre eux. Certains des routeurs du réseau peuvent avoir des liens vers des routeurs d'autres réseaux, appelons-les des routeurs de frontière (pour « border gateway » en anglais). Le monde des destinations, vu d'un routeur de l'internet, se sépare donc en deux populations, les destinations qui sont accessibles sans sortir de son propre réseau d'une part, et celles qui sont en dehors de ce réseau d'autre part. Internet est constitué par un empilement hiérarchique de réseaux. Les réseaux du bas de la hiérarchie ne possèdent souvent qu'un seul routeur frontière relié à un réseau de niveau supérieur. Tout paquet pour une destination hors de portée du réseau sera envoyé vers ce lien. On parle de route par défaut, puisque les paquets sont envoyés par là si aucune information concernant la destination n'est trouvée dans la table de routage. Celle-ci ne contient en effet que des entrées concernant les destinations accessibles via le réseau. À l'inverse, un routeur du réseau supérieur qui connecte ce réseau à l'internet doit connaître l'ensemble des destinations accessibles via celui-ci, au cas où il recevrait un paquet pour l'une d'elles. Les réseaux de plus haut niveau n'ont pas de route par défaut, on les appelle systèmes autonomes (en anglais « Autonomous System » ou AS), et ils constituent la nervure centrale (« backbone ») de l'internet. Ce sont eux qui assurent l'interconnexion globale de l'internet. Les réseaux de différentes organisations sont reliés entre eux au gré d'accords bilatéraux (ou même multi-latéraux). Les deux organisations s'accordent sur les informations que s'échangent les routeurs et sur les conditions commerciales dans lesquelles ils s'échangent du trafic. Les réseaux intermédiaires de la hiérarchie, que nous appellerons réseaux d'accès (ou « transit network » en anglais) peuvent aussi conclure à leur niveau de tels accords de « peering » (entre pairs).
Un réseau local peut aussi être directement connecté à un routeur du réseau d'accès. C'est souvent le cas pour les réseaux universitaires ou les réseaux d'entreprise. Les routeurs des systèmes autonomes
possèdent des sortes de méta-tables de routage
qui indiquent pour une adresse IP comment atteindre
le système autonome où se trouve la destination possédant cette adresse.
Plus précisément, chacun de ces routeurs connaît
la suite de systèmes autonomes qu'il va falloir traverser pour atteindre
la destination. Pour cela, tout routeur frontière
connecté au routeur frontière d'un autre système autonome échange avec lui
des informations sur les adresses IP gérées par tel ou tel système autonome
et sur les interconnexions entre système autonomes selon le protocole de
routage BGP L'acheminement d'un paquet IP se fait donc généralement ainsi :
Bien sûr, un réseau intermédiaire de la hiérarchie peut s'apercevoir que la destination se trouve dans un autre des sous-réseaux qu'il connecte à l'internet. Dans ce cas, le paquet redescendra directement vers la destination, sans passer par les routeurs de plus haut niveau des systèmes autonomes. De même, un lien de « peering » avec un réseau intermédiaire en charge du réseau de la destination peut permettre de court-circuiter le passage par les systèmes autonomes. Par exemple, sur la figure ci-dessus, un paquet envoyé depuis le réseau J à destination
de i transitera par K, qui utilisera son lien
de « peering » vers H, qui fera suivre directement vers
I à destination de i. Notons qu'une commande,
traceroute [ Page suivante ] |