Avant de commencer à parler de ce sujet, je tiens à rappeler que les concepts d'Internet et du Web sont complètement différents !

Internet est un réseau complexe, une infrastructure mondiale dont le web n’est qu’une partie du contenu.

Aujourd'hui sur Internet on ne partage pas seulement des documents web mais aussi des fichiers, des e-mails, de la voix et des données de jeux ou d'applications financières en temps-réel par exemple.

Comme la plupart des grandes inventions de notre monde, nous ne pouvons pas créditer l'invention d'Internet à une seule personne, mais plutôt à une succession de recherches menées par de nombreux ingénieurs et s'appuyant sur les travaux de leurs prédécesseurs.

La peur d'une attaque nucléaire

Dans les années 60, les Etats-Unis sont en pleine guerre froide contre l'URSS, la course à l'espace fait rage et cette dernière a déjà pris une avance considérable dans les télécommunication en envoyant le premier satellite artificiel en orbite dénommé "Spoutnik 1".

La recherche scientifique est vue à l'époque comme une fierté, mais surtout comme un moyen de domination et de survie contre "l'ennemi", notamment avec l'arrivée des ordinateurs de deuxième génération, conçus grâce à l'invention du transistor.

L'informatique permet alors d'effectuer des calculs de plus en plus complexes et les données récoltées sont à la fois précieuses mais volumineuses, deux problèmes se posent alors...

Le partage de données ou de programmes entre plusieurs centres de recherche (souvent universitaires) est compliqué, il doit alors se faire par l'envoi de supports de stockage ou de documents par voie postale, ce qui ralenti considérablement la recherche scientifique.

D'autre part, la menace d'une attaque nucléaire plane sur les États-Unis et le besoin de trouver une solution facilitant la dissémination des informations et documents à travers le pays devient critique.

Arpanet

C'est alors que l'ARPA, l'agence de recherche gouvernementale Américaine commence les recherches autour de la création d'un réseau pouvant résoudre les problèmes cités précédemment, financé par Ministère de la Défense.

En collaboration avec le MIT, ARPANET verra alors le jour comme étant le premier réseau étendu (WAN) et le 29 Octobre 1969 le premier test d'envoi de message entre deux machines situées à l'université de Los Angeles (UCLA) et l'institut de recherche de Stanford sera effectué.

Ce soir-là, le simple mot "login" aura alors réussi à parcourir la distance de plus de 600km en quelques minutes, ou presque, car les trois dernières lettres du mot mettront plus d'une heure à arriver suite à un bug du serveur central, faisant de "lo" le premier message transmis sur l'ancètre d'internet.

Fait amusant : le terme "lo" en vieux jargon anglophone correspond à une exclamation de surprise, une abbréviation du mot "look !", représentant parfaitement la surprise des ingénieur à cet instant précis.

Par la suite, l'ARPANET sera capable de supporter des fonctionnalités comme la connexion à distance, le transfer de fichiers et l'envoi d'e-mails, mais c'est aussi et surtout le premier réseau à transfert de paquets.

Qu'est-ce que le transfert de paquets ?

Aussi appelé "packet-switching", c'est une méthode de décomposition d'une donnée complexe en plusieurs "paquets" de données, chacun contenant une en-tête et une charge (on parlera de payload).

L'en-tête va permettre au paquet d'être dirigé sur le réseau jusqu'à son destinataire et que les différents "payload" soient reconstitués à l'arrivée pour retrouver la donnée complexe d'origine et qu'elle puisse être traitée par la couche applicative.

Deux des avantages de cette méthode sont la gestion des erreurs de transmission et le caractère non-bloquant des données volumineuses :

  • Lorsqu'un paquet n'arrive pas à destination pour une quelconque raison, seul ce paquet pourra être renvoyé par l'expéditeur, et non toute la donnée d'origine, économisant alors la bande passante.
  • Si deux fichiers doivent être envoyés, l'un de 2Go et l'autre de 100Ko, le deuxième fichier n'aura pas besoin d'attendre que le premier soit fini d'envoyé, il s'intercalera entre les paquets du premier !

TCP/IP

TCP/IP est l'une des implémentation du "packet-switching" et constitue avec ARPANET la base de notre internet moderne, il sera d'ailleur intégré à ce dernier en 1983 remplaçant le protocole spécifique utilisé jusqu'alors.

Contrairement à ce que l'on entend souvent, TCP/IP n'est pas un protocole, mais une suite de protocole (généralement connue sous le nom de "Internet Protocole Suite").

L'IP contient les informations sur l'adresse de l'expéditeur et du destinataire, afin que le paquet soit bien transmis sur le réseau et arrive à la bonne machine distante. De son côté TCP va s'assurer que la machine expéditrice puisse être tenu au courant si le paquet n'est pas arrivé à destination et gérer le renvoie des données si besoin.

On parle d'encapsulation car le segment TCP est encapsulé (inclus) dans le datagramme IP, car il faut d'abord que le paquet arrive à la bonne machine identifiée par son adresse pour que les données soit distribuées à la bonne application identifiée par son port (80 pour HTTP, 22 pour SSH, 21 pour FTP, etc...)

Afin de pouvoir fournir les informations d'erreur de transmission, TCP doit établir une "connexion" entre l'expéditeur et le destinataire, c'est pour celà que l'on parle de protocole en mode connecté.

Une session TCP fonctionne en trois phases :

  • Ouverture de la connexion
  • Transfert des données et gestion des erreurs
  • Fermeture la connexion

Pour vous donner un exemple des données contenues dans les couches TCP et IP, voici les datagrammes des deux protocoles :

Datagramme IP (source: wikipedia)
Segment TCP contenu dans la section Data du datagramme IP (source: wikipedia)

Et ensuite ?

Tous les protocoles "applicatifs" utilisent cette suite de protocoles en encapsulant eux-même leur données à l'intérieur de ces datagrammes, qui seront acheminé sur le réseau par les mécaniques expliquées précédemment.

Tout les outils que vous utilisez quotidiennement ont le même fonctionnement sous-jacents : HTTP, FTP, SMTP, etc... car ils ont la même vision du réseau Internet au travers de TCP/IP.

Attention néanmoins, certains protocoles applicatifs utilisent non pas la suite TCP/IP mais UDP/IP dont j'expliquerai la différence dans un prochain article !

J'espère que vous aurez apprécié ce tour d'horizon de l'histoire d'Internet et des transmission de données, j'ai essayé de rester simple pour que cet article reste accessible à un maximum de monde.

N'hésitez pas à le partager si vous l'avez aimé et à bientôt sur le blog !

À propos de l'auteur

Hello, je suis Nicolas Brondin-Bernard, ingénieur web indépendant depuis 2015 passionné par le partage de d'expériences et de connaissances.

Aujourd'hui je suis aussi coach pour développeurs web juniors, tu peux me contacter sur nicolas@brondin.com, sur mon site ou devenir membre de ma newsletter pour ne jamais louper le meilleur article de la semaine et être tenu au courant de mes projets !