Internet comment ça marche ?

Brève histoire sur la création d'internet. Qui a inventé Internet ?
Explication du modèle TCP/IP

1 - Point Histoire sur Internet

De nos jours beaucoup de personnes pensent qu'Internet désigne le Web, le Cloud, les jeux en lignes. Internet peut sembler quelque chose d'automatique que nous tenons pour acquis. Cependant il y a tout un autre processus qui se déroule dans les coulisses et qui le fait fonctionner.

Internet, qu'est-ce que c'est ?

Internet peut être comparé à un fil géant, ou plutôt de nombreux fils qui relient des appareils électroniques du monde entier entre eux. C'est un réseau mondial d'ordinateurs interconnectés qui communiquent de manière standarisée avec des protocoles bien définis. L'objectif étant que chaque appareil puisse communiquer avec n'importe quel autre appareil distant. Internet et toutes les avancées technologiques ont changé notre société. Cela a changé notre travail, la façon dont nous consommons et dont nous communiquons les uns avec les autres. C'est l'une des plus grandes inventions de tous les temps mais pourquoi Internet a été créé en premier lieu ? Comment tout cela s'est passé, par qui a-t'il été créé ?

C'est au milieu de la guerre froide le 4 Octobre 1957, que les Soviétiques ont lancé le premier satellite artificiel dans l'espace (Spoutnik). Comme il s'agissait du premier objet artificiel au monde à flotter dans l'espace, ceci fut très alarmant pour les Américains.

spoutnik.jpg

Les soviétiques étaient en avance scientifiquement et technologiquement. Les américains craignaient donc que les Soviétiques gagnent la guerre froide et que des attaques nucléaires sur le sol américains soient possibles. La course spatiale a alors commencé et l'administration américaine a commencé à financer diverses agences dont l'ARPA.
ARPA signifie Advanced Research Project Agency, ce projet de recherche faisait partie du département de la défense informatique. Cette institution a permis la mise en commun des connaissances de nombreux chercheurs. Sans l'ARPA, Internet n'existerait pas. C'est grâce à cette institution que la toute première version d'Internet a été créée - ARPANET.

Les ordinateurs à l'époque n'étaient pas tels que nous les connaissons aujourd'hui. Ils étaient massifs et extrêmement chers. Ils étaient considérés comme d'énormes machines à calculer et ils ne pouvaient effectuer qu'un nombre très limité de tâches. Ainsi, les ordinateurs ne ne pouvait exécuter qu'une tâche spécifique. Comment pouvions nous donc réaliser plusieurs tâches sans devoir acheter de multiples ordinateurs ? La solution à cela: Connecter plusieurs ordinateurs effectuant les diverses tâches au même réseau et faire en sorte qu'ils parlent "la même langue" afin de pouvoir communiquer entre eux.
L'idée de plusieurs ordinateurs connectés à un réseau n'était pas nouvelle. Une telle infrastructure existait déjà dans les années 50 et s'appelait WAN (Wide Area Networks). Cependant, les WAN avaient de nombreuses limitations technologiques et chaque machine parlait sa propre langue, ce qui l'empêchait de communiquer avec d'autres machines.

Cette idée d'un «réseau mondial» que JCR Licklider a proposé puis popularisé au début des années 1960 était donc révolutionnaire mais cela ne pouvait se concrétiser que si différents systèmes brisaient la barrière de la langue et s'intégraient dans un réseau plus large. Nous avions besoin de normes communes pour que différents systèmes communiquent.

Une méthode simple et efficace de transfert de données était de découper les données en plusieurs morceaux avant de les envoyer. L'ordinateur décompose les paquets d'informations en blocs et les transmet le plus rapidement possible et dans autant de directions que possibles, chacun empruntant ses propres routes dans le réseau, jusqu'à ce qu'ils atteignent leur destination. Une fois sur place, les paquets sont réassemblés. Cela est rendu possible car chaque paquet contient des informations sur l'expéditeur, la destination et un numéro. Cela permet ensuite au récepteur de les remettre ensemble dans leur forme d'origine. Cette méthode a été étudiée par différents scientifiques. Cette idée avec celles de Paul Baran sur les réseaux distribués ont ensuite été adoptées par ARPANET.

Baran essayait de trouver un système de communication capable de survivre à une attaque nucléaire et capable de gérer les pannes. Il est arrivé à la conclusion que les réseaux peuvent être construits autour de deux types de structures: centralisées et distribuées. De ces structures sont sortis trois types de réseaux: centralisés, décentralisés et distribués. Si une partie de ce type de réseau était détruite, le reste fonctionnerait toujours et la tâche serait simplement déplacée vers une autre partie.

À l'époque, nous n'avions pas besoin d'une expansion rapide du réseau. Et ce n'est que dans les années à venir que cette expansion a commencé à prendre forme. Les idées de Baran étaient en avance sur son temps, cependant, elles ont jeté les bases du fonctionnement actuel d'Internet. Le réseau expérimental à commutation de paquets a été un succès. Cela a conduit à la création précoce de l'architecture ARPANET qui a adopté cette méthode.

arpanet.jpg

Cependant dès les débuts d'ARPANET, il manquait encore un langage commun pour que les ordinateurs puissent communiquer entre eux. Comment ces premiers réseaux pourraient-ils communiquer entre eux? Nous avions besoin que le réseau se développe encore plus pour que la vision d'un «réseau mondial» devienne une réalité. Un protocole général était nécessaire. Autrement dit, un ensemble de règles. Ces règles devaient être suffisamment strictes pour effectuer des transferts de données sécurisés, mais aussi suffisamment souples pour s'adapter à toutes les façons dont les données étaient transférées.

C'est à ce moment que nous allons introduire le modèle TCP / IP dans le prochain article.

2- Modèle TCP / IP - Layers (Couches)

Vint Cerf et Bob Khan ont travaillé sur la conception de ce que nous appelons maintenant Internet. En 1978, le protocole de contrôle de transmission et le protocole Internet ont été créés, également connus sous le nom de TCP / IP. Internet est une suite de protocoles qui peut être imaginé comme un gateau de plusieurs couches. Semblables aux ingrédients du gâteau, les couches dans le contexte des réseaux informatiques sont principalement composées de règles, d'algorithmes et de configurations, et diverses données parsemées.

La couche de liaison, matérielle (Link Layer)

La couche de liaison est la plus élémentaire du protocole de communication. Elle traite l'envoi d'informations entre différentes machines sur un même réseau local (les ordinateurs, tablettes reliés au même routeur de la maison) et traduit les données des couches supérieures vers la couche physique. Les protocoles de la couche de liaison décrivent comment les données interagissent avec le support de transmission. Par exemple comment envoyer ou recevoir des données vers un signal électrique. Contrairement aux autres couches les protocoles de couches de liaison dépendent du matériel utilisé.

La couche Internet (Internet layer)

Les protocoles de la couche Internet (IP Internet Protocol) décrivent comment les données sont envoyées et reçues sur Internet. Le processus implique le conditionnement des données en paquets, l'adressage et la transmission de paquets ainsi que la réception de paquets de données entrants. Pour faire simple IP ne se soucie pas de savoir si un paquet arrive à sa destination ou non. IP ne connaît pas non plus les connexions et les numéros de port. Le travail de l'IP est d'envoyer et de router des paquets vers d'autres ordinateurs. Les paquets IP sont des entités indépendantes et peuvent arriver dans le désordre ou pas du tout.

Il existe actuellement deux versions d'IP en cours d'utilisation: IPv4 et IPv6. Les deux versions décrivent comment les appareils sur Internet se voient attribuer des adresses IP.

IPv4 est plus largement utilisé, mais ne dispose que de 32 bits pour l'adressage , ce qui permet environ 4,3 milliards (environ 4,3 × 10^9 ) adresses possibles. Cependant l'IPv4 finira par souffrir d'un épuisement des adresses car de plus en plus de personnes utilisent de nombreux appareils sur Internet.

La version successeur l'IPv6 vise à résoudre l'épuisement des adresses en utilisant 128 bits pour les adresses . Cela offre donc beaucoup plus de possibilités d'adresses (environ 3,4 × 10^38 ).

Si vous vous connectez à Internet via un fournisseur d'accès Internet (FAI), une adresse IP temporaire vous est généralement attribuée pour la durée de votre session d'accès à distance. Si vous vous connectez à Internet à partir d'un réseau local (LAN), votre ordinateur peut avoir une adresse IP permanente ou il peut en obtenir une temporaire auprès d'un serveur DHCP (Dynamic Host Configuration Protocol). Dans tous les cas, si vous êtes connecté à Internet, votre ordinateur possède une adresse IP unique. ip-header.PNG

La couche de Transport, contrôle et de transmission (Transport Layer)

En mai 1974, Vint Cerf et Bob Kahn (appelés «les pères de l'Internet») ont publié un article intitulé A Protocol for Packet Network Intercommunication. Cet article contenait la première description d'un programme de contrôle de transmission, un concept englobant ce qui serait éventuellement connu sous le nom de protocole de contrôle de transmission (TCP Transmission Control Protocol) et de protocole de datagramme utilisateur (UDP User Datagram Protocol).

La couche de transport encapsule actuellement TCP et UDP. Comme IP, UDP est sans connexion et peut être utilisé pour donner priorité au temps plutôt qu'à la fiabilité. TCP, en revanche est un service de flux d'octets fiable et orienté connexion. Orienté connexion signifie que deux applications utilisant TCP doivent d'abord établir une connexion avant d'échanger des données. TCP est fiable car pour chaque paquet reçu, un accusé de réception est envoyé à l'expéditeur pour confirmer la livraison. TCP inclut également un contrôle dans son en-tête qui assure la vérification des erreurs des données reçues.

TCP fonctionne comme ceci:

C'est ainsi que TCP achemine les données se déplaçant à travers la pile de protocoles vers l'application appropriée.

Notez que TCP ne sait rien des adresses IP. Le travail de TCP est d'obtenir des données au niveau d'une application à une autre de manière fiable. La tâche d'acheminer les données d'un ordinateur à un autre est le travail de l'IP.

tcp-header.PNG

La couche d'application (Application layer)

La couche application décrit les protocoles avec lesquels les applications logicielles interagissent le plus souvent. La spécification comprend des descriptions du protocole de connexion à distance Telnet , du protocole de transfert de fichiers (FTP) et du protocole de transfert de courrier simple (SMTP).

Deux autres protocoles très connus sont l'HTTP (Hypertext Transfer Protocol) et son successeur, l'HTTPS (Hypertext Transfer Protocol Secure), et sont également inclus dans la couche application.

HTTPS est sécurisé par la couche de transport sécurisé (Transport Layer Security), ou TLS, qui peut être considéré comme la couche la plus élevée de l'architecture du modèle réseau décrivant la suite des protocoles Internet.

Exemple:

Si nous voulons envoyer le message "Coucou toi" de l'ordinateur ayant l'adresse 77.101.48.185 à l'ordinateur ayant l'adresse "27.58.157.159" Il se passerait quelque chose comme ceci: internet-layers.png

1-Le message commencerait en haut de la pile de protocoles sur l'ordinateur ayant l'adresse 77.101.48.185 et descendrait en bas de celle-ci.

2- Si le message à envoyer est long, chaque couche traversée par le message peut le diviser en plus petits morceaux de données. Sur Internet, ces blocs de données sont appelés paquets.

3- Les paquets passent par la couche application et continuent vers la couche TCP. Chaque paquet se voit attribuer un numéro de port. Pour faire simple, il suffit de se dire que de nombreux programmes peuvent utiliser la pile TCP/IP et envoyer ou recevoir des messages en même temps. Nous avons besoin de savoir quel programme sur l'ordinateur de destination doit recevoir le message. Ce programme écoutera attendra notre message sur un port spécifique.

4- Après avoir traversé la couche TCP, les paquets passent à la couche IP. C'est là que chaque paquet reçoit son adresse de destination, ici: 27.58.157.159

5- Maintenant que nos paquets de messages ont un numéro de port et une adresse IP, ils sont prêts à être envoyés sur Internet. La couche matérielle se charge de transformer nos paquets contenant le texte alphabétique de notre message en signaux électroniques et de les transmettre sur la ligne téléphonique.

6- À l'autre extrémité de la ligne téléphonique, votre Fournisseur d'accès à Internet (FAI) dispose d'une connexion directe à Internet. Le routeur du FAI examine l'adresse de destination dans chaque paquet et détermine où l'envoyer. Souvent, le prochain arrêt du paquet est un autre routeur.

7- Finalement, les paquets atteignent l'ordinateur 27.58.157.159 Ici, les paquets commencent au bas de la pile TCP / IP de l'ordinateur de destination et progressent vers le haut. Au fur et à mesure que les paquets montent dans la pile, toutes les données de routage ajoutées par la pile de l'ordinateur émetteur (telles que l'adresse IP et le numéro de port) sont supprimées des paquets. Lorsque les données atteignent le haut de la pile, les paquets ont été réassemblés dans leur forme d'origine. On peut lire "Coucou toi".

J'espère que cet article a donné les bases et un aperçu des origines de cette galaxie d'informations que nous utilisons aujourd'hui. Et j'espère que vous avez aimé apprendre comment tout a commencé et le chemin parcouru pour devenir l'Internet que nous connaissons et utilisons aujourd'hui.

Pour aller plus loin je vous invite à vous renseigner sur la hiérarchie de routage sur Internet et comment nos paquets trouvent leurs destinations. Est-ce que chaque ordinateur connecté à Internet sait où sont les autres ordinateurs ? Les paquets sont-ils simplement «diffusés» sur tous les ordinateurs sur Internet? La réponse aux deux questions précédentes est «non». Aucun ordinateur ne sait où se trouvent les autres ordinateurs et les paquets ne sont pas envoyés à tous les ordinateurs. Les informations utilisées pour acheminer les paquets vers leurs destinations sont contenues dans des tables de routage conservées par chaque routeur connecté à Internet.
Mais que faire si vous ne connaissez pas l'adresse IP de l'ordinateur auquel vous souhaitez vous connecter? Que faire si vous devez accéder à un serveur Web appelé www.jesuisunautreordi.com ? Comment votre navigateur Web sait-il où se trouve cet ordinateur sur Internet ? La réponse à toutes ces questions est le service de noms de domaine ou DNS. Le DNS est une énorme base de données distribuée qui garde la trace du nom de domaine et l'adresse IP correspondante sur Internet. Je vous laisserai approfondir ces sujets par vous même.

Images sources:

tcp-header
ip-header