Introduction au fonctionnement d'Internet : infrastructure, protocoles, applications

Objectifs

  • Savoir définir ce qu'est un client, un serveur, un routeur, un protocole

  • Connaître les base du protocole TCP/IP

  • Savoir ce qu'est une adresse IP et un nom de domaine

  • Savoir associer les principales applications d'Internet (SSH, mail et Web a minima), leurs principaux protocoles (SSH, IMAP, SMTP et HTTP) et leurs principaux outils (terminal, client mail, navigateur web)

Principe de la communication sur Internet

FondamentalInternet est un vaste réseau d'ordinateurs qui communiquent entre eux

Pour que les clients, les routeurs et les serveurs puissent communiquer entre eux, ils faut qu'ils soient reliés physiquement et qu'ils hébergent des logiciels qui respectent des protocoles communs.

Exemple

Infrastructure réseau d'Internet

Fondamental

Les composants fondamentaux du réseau Internet sont les câbles très haut débit par lesquels transitent les données.

Ordinateurs clients

DéfinitionClient

Un ordinateur client est un ordinateur qui demande un service à un autre ordinateur, par exemple : envoie ce mail à telle adresse de ma part.

Tout ordinateur qui utilise des services sur Internet est un client.

ExempleEnvoyer un mail

Si j'envoie un mail à contact@picasoft.net depuis mon mail stephane.crozat@utc.fr :

  • Mon ordinateur est le client, via le logiciel de mail Thunderbird il demande au serveur mail de l'UTC d'envoyer mon mail au serveur mail de Picasoft (il utilise pour cela le protocole SMTPS).

  • Ensuite quand quelqu'un chez Picasoft consultera les mails du compte contact, il demandera à son serveur quels nouveaux mails il a reçu et il y aura le mien parmi ceux-là (il utilise pour cela le protocole IMAPS).

ExempleDemander une page web

Si je consulte la page page https://fr.wikipedia.org/wiki/Internet :

  • Mon ordinateur est le client, via le navigateur web Firefox il demande au serveur web de Wikipédia de m'envoyer une page HTML (il utilise pour cela la requête GET du protocole HTTPS).

  • Le serveur web de Wikipédia renvoie la page HTML demandée (il utilise pour cela une réponse HTTPS).

Ordinateurs serveurs

DéfinitionServeur

Un serveur est un ordinateur dont le rôle est de proposer des services, par exemple : stocker des pages web ou acheminer des mails.

ExempleExemple de serveur

L'UTC propose un serveur pour envoyer des mails en utilisant le protocole SMTPS, il s'appelle smtps.utc.fr.

stph@mypc:~$ ping smtps.utc.fr
PING smtps.utc.fr (195.83.155.8) 56(84) bytes of data.
64 bytes from smtps.utc.fr (195.83.155.8): icmp_seq=1 ttl=62 time=0.454 ms
64 bytes from smtps.utc.fr (195.83.155.8): icmp_seq=2 ttl=62 time=0.752 ms
64 bytes from smtps.utc.fr (195.83.155.8): icmp_seq=3 ttl=62 time=0.739 ms
64 bytes from smtps.utc.fr (195.83.155.8): icmp_seq=4 ttl=62 time=0.726 ms

Ordinateurs routeurs

DéfinitionRouteur

Un routeur est un ordinateur dont le rôle est d'acheminer des paquets d'information sur Internet, on peut voir cela comme un coursier.

Remarque

Pour qu'un message se déplace d'un ordinateur à un autre sur Internet, il devra passer par plusieurs routeurs, de plus en plus proches de sa destination.

Exempletraceroute from pic.crzt.fr to www.utc.fr

 1  h7.tetaneutral.net (91.224.148.1)  
 2  renater.par.franceix.net (37.49.236.19)  
 3  te0-0-0-1-ren-nr-compiegne-rtr-091.noc.renater.fr (193.51.177.53)
 4  rrtp-vl221-te0-0-0-0-compiegne-rtr-011.noc.renater.fr (193.51.181.189)  
 5  * * *
 6  * * *
 7  gw-utc.utc.fr (195.83.154.242) 

Exemple

Protocoles réseaux TCP/IP

Afin de pouvoir communiquer entre elles toutes les machines d'Internet respectent des règles communes. Ces règles sont standardisées au sein de protocoles.

Le fonctionnement d'Internet repose fondamentalement sur les protocoles réseaux IP et TCP.

DéfinitionProtocole IP

Le protocole (ou couche) IP gère les communications entre plusieurs machines d'un réseau.

Elle est basée sur l'adressage, le routage et la fragmentation.

DéfinitionPaquet IP

Les entités transmises par le protocole IP sont des paquets (ou datagramme).

Exemple

How the Internet works in 5 minutes (extrait)

Exemple

Codage d'un paquet IP

DéfinitionProtocole TCP

Le protocole (ou couche) TCP gère les communications de bout en bout.

Elle est basée sur la correction des erreurs, le ré-ordonnancement et le contrôle de flux.

DéfinitionMessage

Les entités transmises par la couche TCP sont des messages.

Remarque

Sur la base du protocole de communication TCP/IP on peut bâtir des applications, tels que HTTP pour consulter des fichiers sur le Web ou FTP pour transférer des fichiers.

Adresses IP et noms de domaine

DéfinitionAdresses IP

Une adresse IP est un numéro d’identification d'une machine.

Il est attribué de façon à chaque appareil relié à Internet.

Les adresses ont un format différent selon la version d'IP utilisée :

  • pour IPv4, les adresses sont sur 4 octets (exemple : 192.168.3.200),

  • pour IPv6, les adresses sont sur 16 octets (exemple : 2001:0db8:0000:85a3:0000:0000:ac1f:8001).

DéfinitionNom de domaine

Un nom de domaine est une adresse symbolique permettant d'éviter de devoir retenir des adresses IP.

Ainsi, à un nom de domaine tel que wikipedia.org on peut associer une adresse telle que 91.198.174.192.

DéfinitionDNS

Un serveur DNS (pour Domain Name System) est un serveur qui a connaissance de la correspondance entre noms de domaines et adresses IP. Il est capable de répondre à des requêtes qui lui demandent de résoudre un nom de domaine en une adresse IP.

Protocoles applicatifs d'Internet : SSH, mail, Web...

DéfinitionProtocole

Un protocole est un langage standard que tous les ordinateurs qui veulent communiquer entre eux respectent.

Les protocoles sont la condition de fonctionnement d'Internet, ils permettent à des ordinateurs différents qui utilisent des logiciels différents de communiquer entre eux.

FondamentalQui établit les protocoles ?

Internet est géré de façon décentralisée, il n'y a pas une structure qui gère l'ensemble, les protocoles sont souvent le résultat de discussions ouvertes à toutes et tous.

En pratique il y a quelques organismes de standardisation, comme l'IETF qui publie les RFC ou le W3C qui standardise les langages du Web, comme HTML ou CSS.

AttentionInternet ≠ Web (métonymie)

Le protocole principal du Web est HTTP.

Il existe d'autres protocoles sur Internet : FTP pour le transfert de fichier, SSH pour l'accès à des ordinateurs distants, SMTP et IMAP pour le mail, etc.

ExempleConnexion distante (1969)

  • Naissance : 1969

  • Protocole : Telnet (1969, RFC 15), SSH (1995, RFC 4251)

ExempleMail (1971)

ExempleForum (1979)

  • Naissance : usenet, 1979

  • Application web : Discourse (décentralisé, libre)

  • → Médias sociaux

ExempleMessagerie instantanée (1988)

  • Naissance : commande Unix talk (années 1970)

  • Protocole : IRC, 1988

  • Applications web de messagerie instantanée :

    • Slack (centralisé, propriétaire)

    • Mattermost (décentralisé, libre)

    • Element/Matrix (décentralisé, libre, fédéré, chiffré E2E)

ExempleWeb (1990)

  • Naissance : 1990

  • Protocole : HTTP (1990, W3C, RFC 1945) (et le langage de formatage de documents HTML)

Quelques logiciels qui font fonctionner Internet

Logiciels côté clients

  • Navigateur web : Mozilla Firefox ou Google Chrome (clients HTTP)

  • Client Mail : Mozilla Thunderbird (client IMAP ou POP)

Client SSH sous Linux

Logiciels côté serveur

  • Serveur web : Apache, Nginx

  • Serveur mail : Postfix (SMTP), Dovecot (IMAP)

ComplémentTypologie de logiciels

  • propriétaire + centralisé (Zoom, Discord, Youtube)

  • libre + centralisé (Signal)

  • libre + décentralisé (Mattermost, BigBlueButton, Etherpad)

  • libre + décentralisé + fédéré (Mastodon, Element, Mobilizon, Peertube)

URL : Uniform Resource Locator

DéfinitionLes URL

Les URL sont nées en même temps que le World Wide Web et permettent d'identifier une ressource sur un serveur web.

Décomposition d'une URL

Exemple

Lorsque https://www.wikipedia.org/wiki/URL est rentrée dans un navigateur web, ce dernier fait une requête GET sur la ressource « /wiki/URL » du serveur pointé par www.wikipedia.org, en sécurisant la connexion grâce à HTTPS (que nous verrons par la suite).

SyntaxeÉléments de syntaxe d'une URL

Certains caractères sont réservés pour un usage spécifique. Par exemple :

  • le caractère / est réservé pour indiquer le chemin des fichiers à consulter,

  • le caractère ? est réservé pour annoncer les paramètres à transmettre au serveur,

  • le caractère = est réservé pour indiquer la valeur des paramètres,

  • le caractère # est réservé pour indiquer un fragment, souvent une partie spécifique de la page web (par exemple, un paragraphe).

Lorsqu'un caractère réservé doit être utilisé pour autre chose dans l'URL, il est remplacé par un symbole pourcent suivi de son code ASCII au format hexadécimal ('/' devient %2F et '?' devient %3F).

À retenir

  • Une URL permet d'identifier une ressource précise sur un serveur web donné.

  • Les URL permettent de passer des paramètres aux serveurs web.

Les clients et les serveurs web parlent HTTP

DéfinitionServeur web

Un serveur web est un logiciel qui traite les requêtes HTTP de clients.

Il est installé sur une machine hébergeant des documents (HTML, CSS, JavaScript, etc.) et est accessible depuis Internet.

DéfinitionNavigateur web

Un navigateur web est client HTTP qui a trois rôles.

  1. Effectuer des requêtes HTTP (GET, POST, etc.).

  2. Comprendre les réponses à ces requêtes.

  3. Interpréter les fichiers web (HTML, CSS, JavaScript) retournés.

DéfinitionMéthodes HTTP

Les méthodes HTTP sont les commande que le client (navigateur) envoie au serveur.

Exemple

Les plus courantes sont :

  • GET (pour demander une ressource, une page HTML par exemple)

  • POST (pour transmettre des données au serveur, par exemple quand on remplit un formulaire en ligne)

DéfinitionCode de retour HTTP

Un code HTTP est un code à 3 chiffres qui est présent dans chaque réponse HTTP du serveur.

Exemple

Les plus courants sont :

  • 200 OK : « Tout est bon »,

  • 401 Unauthorized: « Vous n'avez pas le droit d'accéder à cette ressource, il faut une authentification »,

  • 404 Not Found: « Ressource non trouvée »,

  • 500 Internal Server Error: « Erreur du serveur ».

Exercice

Internet c'est pas du virtuel

Vous participez à la Fête De la Science et dans ce contexte vous devez expliquer le fonctionnement d'Internet à des collégiens.

Préparez votre exposé en répondant aux questions suivantes en une ou deux phrases simples et précises.

Expliquez en quoi Internet repose sur une infrastructure physique qui consomme des matériaux, de l'énergie et de l'espace.

Carte des câbles sous-marins du réseau Internet (Monde)

Quel est le rôle des routeurs au sein du réseau Internet et pourquoi ne peut-on pas s'en passer ?

Pour relier 10 ordinateurs on a besoin de 45 câbles et de 9 prises sur chaque ordinateur

Qu'est-ce qu'un protocole et pourquoi est-ce indispensable pour faire fonctionner Internet ?

Internet est un réseau de réseaux qui relient des routeurs du monde entier

Expliquez le principe de fragmentation des messages en paquets sur lequel repose le protocole réseau TCP/IP.

How the Internet works in 5 minutes (extrait)

À quoi servent les adresses IP et quelles sont les machines qui en disposent ? À quoi servent les noms de domaine ?

À quoi sert l'application Telnet, depuis remplacée par SSH, et pourquoi était-ce la première application sur Internet ?

Expliquez comment fonctionne un navigateur web à partir de la méthode GET, la plus courante du protocole HTTP.

Les acteurs du réseau : FAI, FCA, hébergeur, transitaires

DéfinitionFAI

Un FAI (pour Fournisseur d'Accès à Internet) est un acteur qui propose une connexion Internet à ses utilisateurs. En anglais, on parle d'Internet Service Provider (abrégé ISP). Les FAI sont le dernier intermédiaire entre les câbles composant le réseau et les utilisateurs finaux.

RemarquePlusieurs types de FAI
  • Les entreprises en France représentent plus de 95% du marché (Orange, Bouygues, SFR, Free, etc.)

  • En France, la FFDN est une fédération qui regroupe plus de 30 FAI associatifs.

Exemple
Rhizome, un FAI de la FFDN — rhizome-fai.net
DéfinitionFCA

Un FCA (pour Fournisseur de Contenu et d'Applications) est un acteur qui propose du contenu accessible via Internet et font appels aux autres acteurs pour acheminer ce contenu vers les utilisateurs. Tous les acteurs proposant un site web sont des FCA.

Synonyme : fournisseur de service

ExempleFCA
  • Wikipédia, qui propose le site éponyme,

  • Framasoft, qui propose un service de visioconférence appelé Framatalk,

  • ProtonMail, qui propose un service de mails,

  • Les chaînes de télévision par Internet.

DéfinitionServeur Internet

Un serveur Internet est un ordinateur accessible via Internet qui rend des services aux utilisateurs. Il héberge du contenu (pages web, mails, vidéo, etc.). On dit qu'il sert ces contenus aux utilisateurs en réponse à des demande d'accès, ou requêtes.

DéfinitionHébergeur

Un hébergeur est le propriétaire de serveurs utilisés par un ou plusieurs FCA pour distribuer son contenu. Si le FCA est aussi le propriétaire de ses serveurs, il est à la fois FCA et hébergeur.

ExempleEn France

Les entreprises françaises Gandi, OVH ou Scaleway sont des hébergeurs : elles permettent aux particuliers et entreprises de louer des serveurs et d'héberger du contenu.

DéfinitionTransitaire

Un transitaire est un acteur chargé d'acheminer les données entre différentes parties du globe via le réseau physique. Ils sont en charge du cœur de l'infrastructure nécessaire à la circulation des données. Les transitaires sont des intermédiaires entre les FCA et les FAI connus du grand public.

ExempleFrance

En France, on peut citer France-IX, Zayo France, Nerim, Metro Optic, Open Transit, etc. Ces noms sont inconnus du grand public, car les clients des transitaires sont les FAI ou d'autres acteurs, mais pas les citoyens. Certaines entreprises sont à la fois des transitaires et des FAI, comme Orange avec Open Transit.

Protocole

Un protocole informatique est un ensemble de règles techniques permettant à des ordinateurs d'échanger des informations via un langage commun.

IETF
Internet Engineering Task Force

Serveurs web

DéfinitionServeur web

Un serveur web est un logiciel qui traite les requêtes HTTP de clients.

Il est installé sur une machine hébergeant des documents (HTML, CSS, JavaScript, etc.) et est accessible depuis Internet ou un réseau local (un intranet).

Les ressources servies par le serveur peuvent être statiques, c'est-à-dire sans qu'elles existent préalablement à la requête (un fichier HTML, une image PNG, etc.) ou dynamiques, c'est-à-dire construites à chaque requête faite au serveur.

ExempleServeurs HTTP
  • Apache : le serveur web le plus utilisé avec 44,3% des parts de marché en février 2019.

  • Nginx : le deuxième serveur web le plus utilisé mais est le premier parmi les 1000 sites les plus actifs.

  • Node.js : un environnement d'exécution JavaScript en dehors du navigateur qui fait aussi office de serveur HTTP.

À retenir
  • Un serveur hébergeant des fichiers web a besoin d'un serveur web pour les rendre disponibles à travers le protocole HTTP.

  • Apache et Nginx sont les serveurs web les plus utilisés.

Navigateurs web

DéfinitionNavigateurs web

Un navigateur web est client HTTP qui a trois rôles.

  1. Effectuer des requêtes HTTP (GET, POST, etc.).

  2. Comprendre les réponses à ces requêtes.

  3. Interpréter les fichiers web (HTML, CSS, JavaScript) retournés.

Remarque

Tous les navigateurs web possèdent un interpréteur JavaScript permettant d'exécuter ce langage sur l'ordinateur client.

FondamentalLes outils de développement sous Firefox

Les navigateurs possèdent aussi une partie « Outils de développement » destinée à aider les développeurs web dans leur activité.

Sous Firefox, ces outils sont disponibles en appuyant sur F12 ou clic droit > Inspecter l'élément.

Outils de développement Firefox (F12)
Extrait du moniteur réseau quand on accède à www.mozilla.org
Outils de développement Firefox (onglet requête)
À retenir
  • Les navigateurs web sont des clients HTTP.

  • Ils interprètent les langages du Web (HTML, CSS, JS).

  • Ils disposent d'outils de développement permettant d'inspecter les fichiers des pages web et les requêtes et réponses HTTP.

URL : Uniform Resource Locator

DéfinitionLes URL

Les URL sont nées en même temps que le World Wide Web et permettent d'identifier une ressource sur un serveur web.

Décomposition d'une URL
Exemple

Lorsque https://www.wikipedia.org/wiki/URL est rentrée dans un navigateur web, ce dernier fait une requête GET sur la ressource « /wiki/URL » du serveur pointé par www.wikipedia.org, en sécurisant la connexion grâce à HTTPS (que nous verrons par la suite).

SyntaxeÉléments de syntaxe d'une URL

Certains caractères sont réservés pour un usage spécifique. Par exemple :

  • le caractère / est réservé pour indiquer le chemin des fichiers à consulter,

  • le caractère ? est réservé pour annoncer les paramètres à transmettre au serveur,

  • le caractère = est réservé pour indiquer la valeur des paramètres,

  • le caractère # est réservé pour indiquer un fragment, souvent une partie spécifique de la page web (par exemple, un paragraphe).

Lorsqu'un caractère réservé doit être utilisé pour autre chose dans l'URL, il est remplacé par un symbole pourcent suivi de son code ASCII au format hexadécimal ('/' devient %2F et '?' devient %3F).

À retenir
  • Une URL permet d'identifier une ressource précise sur un serveur web donné.

  • Les URL permettent de passer des paramètres aux serveurs web.

Codes de retour HTTP

DéfinitionCode HTTP

Un code HTTP est un code à 3 chiffres qui est présent dans chaque réponse HTTP du serveur. Ce code est destiné au client HTTP pour lui indiquer le statut de sa requête.

Les codes HTTP sont séparés en 5 familles, qui se distinguent par le premier digit du code retour :

  • 1xx : Informations

  • 2xx : Succès

  • 3xx : Redirections

  • 4xx : Erreur du client

  • 5xx : Erreur du serveur

ExempleLes codes HTTP courants

Il existe plusieurs dizaines de code HTTP, mais certains sont plus utilisés que d'autres, en voici quelques-uns :

  • 200 OK : « Tout est bon »,

  • 201 Created: « Ressource ajoutée avec succès »,

  • 401 Unauthorized: « Vous n'avez pas le droit d'accéder à cette ressource, il faut une authentification »,

  • 404 Not Found: « Ressource non trouvée »,

  • 500 Internal Server Error: « Erreur du serveur ».

ExempleObserver les codes HTTP
$ curl -I https://fr.wikipedia.org/wiki/Hypertext_Transfer_Protocol
HTTP/2 200
$ curl -I https://fr.wikipedia.org/fausse_page                     
HTTP/2 404
À retenir
  • Chaque réponse HTTP comporte un code qui permet d'indiquer au client le statut de la requête.

  • Il existe 5 familles de code différents (informations, succès, redirections, erreurs client, erreurs serveur)

Liste des raccourcis clavier

Liste des fonctions de navigation et leurs raccourcis clavier correspondant :

  • Bloc Suivant : flèche droite, flèche bas, barre espace, page suivante, touche N
  • Bloc Précédent : flèche gauche, flèche haut, retour arrière, page précédente, touche P
  • Diapositive Suivante : touche T
  • Diapositive Précédente : touche S
  • Retour accueil : touche Début
  • Menu : touche M
  • Revenir à l'accueil : touche H
  • Fermer zoom : touche Échap.