Les protocoles d’Internet et du Web

Ce 8ème chapitre de l’ouvrage Pratiques de l’édition numérique est écrit par Jean-Philippe Magué, maître de conférences en Humanités Numériques à l’ENS Lyon et membre du laboratoire ICAR (Interactions, Corpus, Apprentissages, Représentations). Nous tenterons de reprendre les éléments importants de ce chapitre technique, en les enrichissant d’exemples et d’informations complémentaires.

Tout d’abord, il convient de rappeler la différence entre Internet et le Web.

Internet est le réseau qui interconnecte des ordinateurs du monde entier. Son nom vient de “réseaux interconnectés” : INTERconnected NETworks et son année d’inauguration est 1973 avec l’apparition du protocole TCP/IP.

Le World Wide Web, est  quant à lui, un système hypertexte public fonctionnant sur Internet. Le Web permet de consulter, avec un navigateur, des pages accessibles sur des sites. Il a été créé en 1989 par Tim-Berners Lee et Robert Cailliau, chercheurs au CERN (Centre Européen de Recherche Nucléaire).

Des conventions aux protocoles
La production et la circulation des contenus sont des phénomènes devenus exponentiels grâce au développement d’Internet et du Web et de leurs protocoles d’échange de données et de documents. Il est donc important de s’intéresser aux protocoles TCP/IP et HTTP qui permettent respectivement de faire fonctionner Internet et de partager des documents sur le Web.

Bien avant la naissance du terme « protocole », la notion de « convention » était utilisée pour formaliser les étapes nécessaires à une communication efficace, notamment dans le cas de la communication épistolaire : la place de l’adresse sur l’enveloppe, celle du timbre, la langue employée ainsi que le rôle de chaque acteur des services postaux se devaient d’être préalablement définis. Le respect des conventions par l’ensemble des acteurs de la chaîne communicationnelle est encore aujourd’hui, primordial à la bonne réception et à la compréhension des messages envoyés. Le parallèle peut alors être fait avec l’envoi de courrier par Internet ou l’affichage d’une page Web. C’est avec l’avènement de la communication inter-machines, que les conventions d’échange se sont appelées « protocoles ». Sur le réseau de réseaux qu’est Internet, la transmission de données est basée sur deux protocoles : IP, Internet Protocol, et TCP, Transfer Control Protocol.

Le protocole IP
L’Internet Protocol a été créé en 1973 par l’ingénieur américain Vint Cerf. Il permet de découper les informations à transmettre en différents paquets de données adressés qu’il est possible de transmettre indépendamment à un destinataire. Le destinataire est identifié grâce à 3 éléments circulant sous forme de datagrammes (paquets de données) :

  • une adresse unique (l’adresse IP) pour chaque appareil (ordinateur, serveur*, imprimante) connecté à Internet. Ex : 192.168.1.100
  • un masque de sous-réseau (ex : 255.255.255.0) : chaque adresse IP est associée à un masque de sous-réseau qui permet l’identification de la partie hôte et de la partie réseau de l’adresse IP. Ainsi, la partie réseau de l’adresse IP utilisée ci-dessus est 192.168.1, et la partie hôte de l’adresse IP est 100. Cent est le numéro qui identifie de façon unique l’ordinateur dans le réseau 192.168.1.0.
  • une passerelle par défaut, gateway en anglais (ex : 192.168.1.254) permet à l’ordinateur d’envoyer les paquets de données à cette adresse si l’ordinateur de destination n’est pas sur le réseau local

* Un serveur est un ordinateur qui reste allumé et connecté à Internet 24 h/24, 7 j/7. Il dialogue avec d’autres ordinateurs appelés clients en leur envoyant des pages Web à tout moment.

Certains ordinateurs des réseaux qui constituent Internet, les « routeurs », vont aiguiller les données de l’expéditeur jusqu’au destinataire. Comment cela fonctionne-t-il ?

Les datagrammes envoyés par l’expéditeur sont analysés par les routeurs qui vont déterminer le chemin que ces derniers doivent emprunter pour arriver à destination. Si l’on fait l’analogie avec les services postaux, les routeurs sont l’équivalent des centres de tris.

Le protocole RIP, Routing Information Protocol (protocole d’information de routage) permet alors à chaque routeur de communiquer aux autres routeurs la distance qui les sépare par rapport au destinataire. Le routeur concerné choisira alors la distance la plus courte. Seul inconvénient, le RIP ne tient pas compte de l’état de la liaison entre les routeurs mais uniquement de la distance qui les sépare. Ceci peut parfois créer un temps d’acheminement long si l’état des liaisons est mauvais.

En revanche, point positif, la communication via différents routeurs fait d’Internet un réseau décentralisé. Plusieurs chemins sont ainsi proposés aux données pour arriver à destination. Si, à la suite d’une panne de routeurs par exemple, un chemin venait à disparaître, un autre chemin serait disponible, faisant d’Internet un réseau extrêmement robuste.

Enfin, certaines propriétés du protocole IP doivent être soulignées : si un datagramme envoyé se perd, ni l’expéditeur, ni le destinataire n’en sont informés. De plus, rien ne garantit que l’ordre de réception des paquets envoyés par un même expéditeur soit conservé à sa réception.  En effet, chaque datagramme est géré indépendamment des autres datagrammes, même au sein du transfert des octets d’un même fichier. Cela signifie que les datagrammes peuvent être mélangés, dupliqués, perdus ou altérés. Enfin, la taille des paquets est limitée par un MTU (Maximum Transfer Unit) pour assurer leur transport dans des supports physiques de tailles diverses.

Ces quelques faiblesses du protocole IP  rendent le protocole TCP indispensable au bon acheminement des données sur Internet.

PC

Le protocole TCP
La plupart des informations que l’on souhaite faire circuler sur Internet (courriers électroniques, pages Web) dépassent largement les tailles maximales autorisées par les paquets IP. Elles doivent donc être découpées en plusieurs paquets de taille appropriée par l’ordinateur expéditeur et reconstituées par l’ordinateur destinataire. Pour rendre cela possible, le protocole TCP découpe les données à transmettre en un ensemble de paquets IP. Du côté de l’ordinateur récepteur, le protocole TCP réordonne les paquets IP reçus, en accuse la réception ou réclame ceux qui se sont perdus pour les réassembler et reconstituer les données initiales.

Lorsqu’un serveur accepte une connexion TCP, le protocole TCP lui indique, grâce à un numéro, le protocole utilisé (HTTP, FTP) pour structurer les données. Ceci permet au serveur de faire entrer les données à travers le bon « port » et de les interpréter correctement. À chacun de ses ports, le serveur attendra des données conformes à un protocole donné. Ainsi, par exemple, HTTP sera typiquement associé au port TCP 80.

Système de Noms de domaine (Domain Name System)
Le DNS a été conçu en novembre 1983 par l’informaticien Jon Postel et l’ingénieur Paul V. Mockapetris à la demande de la DARPA (Defense Advanced Research Projects Agency). Ce système permet de traduire les adresses IP utilisées par les appareils connectés à Internet en adresses « courantes » utilisées par les internautes. La corrélation entre les adresses IP et le nom de domaine associé est appelé résolution de noms de domaines ou résolution d’adresses. Le DNS est nécessaire au protocole HTTP pour la navigation internet.

Le Web et le protocole HTTP
Le Web ou World Wide Web est un système mettant en relation différents documents (textes, images, sons, vidéos) reliés les uns aux autres par des hyperliens. L’échange de données sur le Web est possible grâce au protocole HTTP, HyperText Transfer Protocol. Ce dernier permet  à différents appareils (un client et un serveur) de dialoguer sur la base d’un système requête/réponse. En effet, lorsque le client envoie pour la première fois une requête HTTP à un serveur, il ouvre simultanément (sur le port 80), une connexion TCP avec ce serveur, qui peut rester ouverte pour des connections ultérieures. HTTP sert à définir la structure des messages échangés par le client et le serveur à travers la connexion TCP.

HTTP

URL
Les requêtes HTTP sont déclenchées lorsqu’un utilisateur clique sur une URL, Uniform Resource Locator. Cette URL peut être un lien hypertexte dans une page Web ou une adresse saisie dans un navigateur.

Exemple d’URL :

http://www.tolkien.com:80/home/menu.htm

http:// signifie qu’il faut émettre une requête HTTP pour traiter cette URL

www est le type du serveur (Web, FTP)

:80 spécifie le port vers lequel la connexion TCP doit être établie. L’indication du port est facultative, ie. la connexion sera faite par défaut sur le port 80…sauf si le serveur est configuré pour accepter les connexions HTTP sur un autre port que le port 80 (on rencontre par exemple le port 8080 lorsque le serveur repose sur la technologie Java).

tolkien.com est le nom du serveur (nom de domaine) où se trouve la ressource. Aux débuts du Web, ce chemin indiquait la localisation d’un fichier HTML sur le disque dur d’un serveur. Aujourd’hui, les ressources ne sont pas nécessairement des fichiers préexistants à la requête, mais sont bien souvent calculées dynamiquement par le serveur grâce aux requêtes php par exemple.

/home/menu.htm  est l’emplacement et le nom des fichiers contenus par le serveur (facultatif).

Lorsqu’un internaute saisit l’adresse URL d’un serveur, telle que www.tolkien.com, cette dernière doit d’abord être convertie en adresse IP. Ainsi, lorsque le fournisseur réceptionne une adresse URL, il la renvoie immédiatement vers un serveur spécialisé appelé serveur de noms. Un serveur de noms abrite une base de données qui répertorie tous les serveurs internet existants. Le serveur de noms retrouve alors l’adresse IP équivalente à l’URL demandée (ex : l’adresse IP de www.tolkien.com est 155.84.12.84), puis la retourne au fournisseur qui peut dès lors établir la connexion avec le serveur demandé.

Depuis que le système d’adresse IP puis d’adresse URL ont été instaurés, le réseau Internet connaît une croissance exponentielle.

Structure des requêtes et des réponses HTTP
Les requêtes et réponses HTTP sont constituées de deux parties : un en-tête qui contient des informations propres au protocole HTTP, et un corps qui contient les données échangées (par exemple, le code HTML de la page renvoyée par le serveur).

HTTP permet à un client de réclamer une ressource à un serveur.  Il existe également d’autres types de requêtes, identifiées par la méthode HTTP se trouvant dans l’en-tête d’une requête http :

Méthode GET : cette méthode indique au serveur que le client demande une ressource.

Méthode POST : cette méthode indique au serveur que le client souhaite transmettre des informations au serveur (avec l’envoi d’un formulaire par exemple) plutôt que d’accéder à une ressource particulière.

L’en-tête d’une requête HTTP est composé d’un ensemble de paramètres dont les identifiants de l’utilisateur, le format ou la langue de ressource attendue en réponse à une requête.

L’en-tête d’une réponse HTTP est composé :

  • d’un « statut » indiquant la manière dont le serveur a traité la requête du client. Par exemple, le statut « 200 OK » indique que la requête a été correctement traitée. À l’inverse, le statut « 404 Not Found » indique que la ressource désignée par l’URL n’a pas pu être fournie par le serveur, soit parce qu’il ne l’a pas trouvée, soit parce qu’il n’a pas su la construire.
  • de métadonnées sur la ressource renvoyée : format, taille, langue
  • d’un témoin de connexion appelé « cookie ». C’est une suite d’informations envoyée par un serveur au client dans une réponse HTTP, et que le client renvoie systématiquement lors des requêtes ultérieures à ce même serveur. Les cookies permettent aux serveurs d’enregistrer des informations sur l’utilisateur à l’origine d’une requête et de les réutiliser lors des requêtes suivantes.

D’autres protocoles basés sur Internet : SSH et FTP
Le FTP, File Transfer Protocol, permet l’échange de fichiers, tandis que le SSH, Secure Shell Protocol, permet d’établir des connexions sécurisées.

L’échange de fichiers par le protocole FTP
Le protocole FTP permet à un internaute, à l’aide d’un client FTP (tel que Filezilla créé en 2001), de se connecter à un serveur FTP. L’internaute devra alors spécifier le nom du serveur (qui sera traduit en adresse IP par un serveur DNS), le port (par défaut 21), son identifiant et son mot de passe. L’internaute peut alors, selon les droits de lecture et d’écriture qui lui sont attribués, parcourir l’arborescence de fichiers du serveur,  y transférer des fichiers et créer ou supprimer des répertoires. Le protocole FTP permet aussi au serveur de transférer des fichiers  vers le client.

La connexion à distance en ligne de commande avec le protocole SSH
Les systèmes d’exploitation de la famille UNIX (tels que Linux ou Mac OS) proposent, en plus de leur interface graphique, une interface en ligne de commande, accessible grâce au protocole SSH. Cette interface homme-machine dans laquelle la communication entre l’utilisateur et l’ordinateur s’effectue en mode texte, se révèle souvent plus puissante que l’interface graphique. Il est donc intéressant de pouvoir se connecter en ligne de commande à une machine distante.

Tout comme pour le protocole FTP, l’utilisation du protocole SSH nécessite la possession d’un compte sur le serveur auquel l’internaute souhaite se connecter. À la différence de HTTP et de FTP, pour lesquels il existe des logiciels clients avec une interface graphique comme les navigateurs Web, une connexion SSH ne s’établit qu’à partir de la ligne de commande à l’aide de la commande « SSH ».

A quoi cela sert-il ?

Exemple concret :
Nous sommes sur notre lieu de travail et avons besoin d’accéder à un autre ordinateur de l’entreprise (réseau local) situé dans une ville voisine afin de récupérer un document. Il nous suffit alors d’utiliser un client SSH (ex. PuTTy) pour se connecter à  la machine distante et récupérer le fichier.

Les protocoles existants sont donc nombreux et possèdent chacun une utilisé propre.

Conclusion
Ce chapitre dresse un panorama des protocoles d’échange de données existants sur Internet et sur le Web. Le protocole TCP/IP a été fondamental dans le développement d’Internet car sans lui, il aurait été impossible de créer un réseau mondial :  toutes les machines n’auraient dès lors pas le même langage pour communiquer. C’est donc le respect des conventions au niveau mondial qui a rendu possible et fait durer un réseau aussi complexe qu’Internet.

Quid de l’avenir des protocoles ?
Aujourd’hui,  la technologie a un rôle à jouer dans l’avenir d’Internet, provoquant par exemple des transformations majeures dans les versions des protocoles IP. En effet, avec l’explosion de l’Internet des objets, de plus en plus d’appareils ont besoin de se voir attribuer une adresse IP. C’est ainsi que le nombre d’adresses IPv4 (Internet Protocol version 4) publiques est arrivé officiellement à saturation le 3 février 2011. L’IPv6 (Internet Protocol version 6) a dès lors commencé à être utilisé. IPv6 est un protocole standardisé par l’IETF (Internet Engineering Task Form) afin de pallier aux manques de l’IPv4 et notamment au manque d’adresses IP. Alors que l’IPv4 a atteint ses limites, les réserves en adresses IP se sont fortement améliorées grâce à l’IPv6. Or, au début de l’année 2014, le déploiement d’IPv6 est encore limité (3% des utilisateurs Internet) alors que l’épuisement des adresses IPv4 publiques disponibles est imminent…

Internet commence-t-il à être victime de son succès ? Les protocoles établis lors de sa construction  seront-ils toujours utilisables dans le futur ? Internet et l’évolution du Web suscitent et susciteront de nombreuses interrogations dans les siècles à venir…

Sources et prolongements

Articles
Le protocole IP

Cours d’introduction à TCP/IP

La connexion sécurisée à distance avec SSH 

Gouvernance d’Internet : l’avenir des réseaux est avant tout technologique (sur l’IPV4 et l’IPV6)

Vidéo
Introduction à l’encapsulation TCP / IP / Ethernet

  

Leave a Reply

Your email address will not be published. Required fields are marked *