@ccueil Colles

Internet



Introduction et repères chronologiques

1948 - A Mathematical Theory of Communication, par C. Shannon
Article clé qui pose les bases de la théorie de la communication.
Dans cet article, Shannon expose le concept d'information de nature probabiliste, en faisant suite à environ un siècle d'émergence des probabilités, en physique et mathématiques (particulièrement avec Boltzmann et Markov).
C. Shannon est alors ingénieur à la Compagnie des Téléphones Bell qui cherche à transmettre des messages de manière à la fois plus économique et plus fiable.
Shannon étudie alors les moyens de minimiser la probabilité d'erreur dans la reconnaissance du message.
Fin des années 50
Premier Modem, le "Bell 103", permet de connecter et faire communiquer des machines distantes.
Années 70
Un groupe de chercheurs de la RAND ("Research ANd Development": une association américaine scientifique) est missionné par l'US Air Force pour l'étude et la conception d'un réseau capable résister à une frappe nucléaire massive.
La solution proposée est un système décentralisé dans lequel chaque machine est un nœud et qui chercherait la "route" la plus courte possible à une autre machine (et contournerait donc les problèmes si une partie du réseau était touchée et défectueuse).

Ce projet est tout d'abord refusé, puis verra néanmoins le jour quelques années plus tard, au sein du groupe de la défense ARPA (pour "Advanced Research Projects Agency").
Arpanet, pour ARPA network, est mis en place en 1969, reliant 4 centres universitaires américains, puis Cyclade en France, reliant 16 machines.
Années 80 - Internet
pour Interconnected Network et des protocoles généraux TCP et IP.
Les deux éléments clé fondamentaux du fonctionnement d'Internet sont la communication par paquets et le principe de routage de ces paquets à travers le réseau.
1983 - DNS
Les réseaux grandissant, le référencement d'hôtes se fit par noms (adresses symboliques plutôt que numériques), et il fallait distribuer un fichier de référence à tous les hôtes du réseau.
Cette opération est vite devenue trop fastidieuse, est la solution technique DNS (Domain Name System, ou système de nom de domaine) fut adoptée.
1989 - Invention du Web
Tim Berners-Lee développe une version d'hypertexte totalement distribuée sur le réseau. Sa diffusion devient mondiale en 1991 lorsqu'il rend son application publique
2000 - Napster: 1ère application P2P (peer-to-peer ou "pair-à-pair")
2012 et 2020: réseaux et communications 4G et 5G

Un réseau de réseaux de …

Internet est le réseau informatique mondial, accessible au public. Plus précisément, Internet est la mise en réseau de réseaux à différentes échelles, qui eux même résultent de la mise en réseau de …
Internet peut donc être vu comme un gigantesque graphe dont les sommets sont des machines et les liens indiquent les connexions.

Par exemple, les ordinateurs du lycée sont connectés entre eux en réseau, dit local. Ce réseau est connecté vers l'"extérieur", vers un réseau plus large, …

La carte suivante montre, à l'échelle mondiale, les interconnexions entre différents pays/continents.
Source: Submarine Cable Map par TeleGeography
En 2019, quelques 1,2 millions de kilomètres de câble sous-marins relient de nombreux pays entre tous les continents.
Exercice 1
Le site Submarine Cable Map répertorie les différents câbles intercontinentaux.
  1. Chercher le nombre de câbles marins reliant la France.
  2. Le plus long câble est l'"Asia-America Gateway (AAG)". Quelle est sa longueur et quels pays pays dessert-il ?
  1. Il y a environ 20 câbles sous-marins, reliant la France à de nombreux autres pays et continents.
  2. l'"Asia-America Gateway (AAG)" est long de 20 000 km (c'est le plus long câble) reliant l'Asie à la côte ouest des États Unis.


Internet est donc, d'une certaine façon l'infrastructure permettant aux données de circuler.
"La neutralité du Net" est un des principes fondateurs d'Internet, garantissant l'égalité de traitement de tous les flux de données sur Internet. Ce principe exclut par exemple toute discrimination positive ou négative à l'égard de la source, de la destination ou du contenu de l'information transmise sur le réseau (source Wikipédia: Neutralité du Net). Voir aussi, dans la rubrique "Pixels" du journal Le Monde, l'infographie expliquant la neutralité du Net avec des camions.

Cette neutralité est un principe démocratique qui est, depuis sa création, à la base même d'Internet. Récemment, cette neutralité a été remise en question et abondonnée aux États-Unis.
Exercice 2
Documentez-vous sur le principe de neutralité du Net.
Donner des arguments pour et des arguments contre.

Adresse IP

Pour pouvoir communiquer entre elles, des machines nécessitent d'avoir une adresse, de même qu'une adresse postale ou un numéro d'immatriculation sur un véhicule routier.

Exemple de l'immatriculation des véhicules routiers

On peut comparer l'adressage des machines à l'immatriculation des véhicules en France.
L'ancien système d'immatriculation, jusqu'en 2009, juxtaposait 4 chiffres, 3 lettres, puis encore 2 chiffres ainsi: .
Les deux derniers chiffres servaient d'identificateur pour le département (13 pour les Bouches-du-Rhône, 33 pour la Gironde, 75 pour Paris, …), les 7 premiers caractères peuvent quant à eux être quelconque.
Exercice 3
Combien de véhicules différents peuvent être immatriculés par département avec ce système ?
676 000   (il faut savoir faire le calcul !)


L'épuisement de toutes les immatriculations était prévisible avec ce système (prévu pour 2025 à Paris), et il a fallu concevoir un nouveau système. Depuis 2009, ce nouveau système, SIV, se compose de 7 caractères: 2 lettres puis 3 chiffres et à nouveau 2 lettres .
Exercice 4
Combien de véhicules différents peuvent être immatriculés avec ce nouveau système ?
456 976 000   (il faut aussi savoir faire le calcul !)


Description d'une adresse IP

Une adresse IP peut se présenter sous trois formats différents : décimal, binaire ou symbolique.
  • décimal: sous la forme x.x.x.x où chaque x est un nombre ayant une valeur comprise entre 0 et 255, ce qui donne par exemple 91.198.174.225
  • binaire: sous la forme xxxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx où chaque x représente un bit ayant comme valeur 0 ou 1, soit par exemple 01011011.11000110.10101110.11100001 (l'équivalent de l'adresse précédente).
    L'adresse est constituée de 4 nombres de 8 bits, donc 4 octets, soit donc 32 bits: c'est la norme pour la version 4 du protocole IP: IPv4. Une nouvelle norme, Ipv6, la remplace et devient actuellement le nouveau standard (voir un peu plus bas).
  • Symbolique: par exemple http://www.eiffel-bordeaux.org/ ou encore http://xymaths.free.fr.
    C'est la version "humainement compréhensible" et donc "humainement mémorisable"
Exercice 5
Ouvrir une fenêtre d'"invite de commandes" (fenêtre DOS) et exécuter la commande ipconfig ou ipconfig /all
(voir éventuellement l'aide ipconfig /?).

Chercher sur le web un site qui permet d'afficher son adresse IP, puis comparer.

La conversion entre le format décimal et binaire est simple, c'est un simple calcul de conversion.
Par contre, la conversion vers, ou depuis, le format symbolique est nettement plus compliquée: c'est le travail des DNS.

DNS

Le DNS, pour Domain Name System, ou encore système de noms de domaine, est depuis le début d'internet un composant essentiel du développement du réseau.
Une machine qui se connecte sur le réseau, appelé un client, interroge le réseau à la recherche d'une adresse symbolique, par exemple www.lycee-eiffel.org ou xymaths.free.fr, il va tout d'abord interroger un, ou plusieurs, servers DNS afin de connaître l'adresse IP numérique correspondante.
La commande ipconfig permet, sous windows, d'afficher des informations sur le réseau.
Exercice 6
Ouvrir une fenêtre d' "invite de commandes" (fenêtre DOS) et exécuter la commande "ipconfig /displaydns" et lire les informations affichées.
La commande "ipconfig /displaydns" affiche le cache de résolution du client DNS, qui inclut les entrées préchargées à partir du fichier des hôtes locaux ainsi que tous les enregistrements de ressources récemment obtenus pour les requêtes de noms résolues par l'ordinateur.
Le service Client DNS utilise ces informations pour résoudre rapidement les noms fréquemment sollicités, avant d'interroger ses serveurs DNS configurés.


Nombre d'adresses disponibles

Exercice 7
Combien d'adresses différentes peut-on former avec IPv4 ?
4 294 967 296 : soit un plus de 4 milliards d'adresses (il faut aussi savoir faire le calcul !)


À la création d'IPv4, il semblait inimaginable d'atteindre 4 milliards d'adresses disponibles.
Aujourd’hui, l'espace d'adressage d'IPv4 est incapable de répondre à la forte demande d'adresse à travers le monde. Personne n'imaginait à l'époque la nécessité d'une adresse IP pour téléphoner, jouer, naviguer sur Internet avec un téléphone portable, un assistant personnel, un objet connecté quelconque.

Une nouvelle norme, IPv6, est en train de remplacer IPv4.
Avec IPv6, les adresses sont longues de 128 bits, soit 16 octets.
Exercice 7
  1. Combien d'adresses différentes peut-on former avec IPv6 ?
  2. La surface de la Terre est d'environ 500 millions de km2.
    Combien cela fait d'appareils par m2 ? par mm2 ?
  1. 2128∼ 1038 adresses distinctes: 1OO milliards de milliards de milliards de milliards d'adresses … (il faut toujours savoir faire le calcul !)
  2. 1038/500.106=229 adresses par km2, ou encore 223 adresses par m2 ou encore 217 adresses par mm2, soit 200 millions de milliards d'appareils par mm2 !


Adresses IP: adresse d'une machine dans un réseau

Comme l'ancien système d'immatriculation des véhicules routiers, la carte réseau d'une machine contient en fait une une double information: l'adresse IP de la machine elle-même et l'adresse du réseau qui contient la machine. L'adresse du réseau s'appelle le masque de réseau (ou masque de sous-réseau, ou encore de réseau local; voir ce complément).
Exercice 8
Pourquoi l'adresse IP ne peut-elle pas être affectée à un périphérique réseau par son fabricant ?
l'adresse IP doit non seulement être unique mais elle doit aussi refléter la structure de l'interconnexion: elle contient une partie qui dépend du réseau: toutes les machines connectées au même réseau physique ont le même préfixe réseau, et le constructeur ne peut imaginer à l'avance à quel réseau un périphérique, ou tout objet connecté, va justement être connecté.
Une machine peut de plus être mobile et donc changer de réseau à travers lequel elle se connecte; son adresse devra alors être modifiée.


Tests d'identification et de communication sur un même réseau

L'exercice suivant utilise des programmes utilitaires réseau, disponibles sur tout ordinateur. Sous Windows, il faut ouvrir une fenêtre de commandes, ou fenêtre DOS (en tapant directement "cmd" dans le menu Démarrer, ou dans la rubrique "accessoire" de la liste des programmes).
Exercice 9
  1. Ouvrir une fenêtre d' "invite de commandes" (fenêtre DOS).
  2. Tapez la commande hostname. Quel est le nom de l'ordinateur ?
  3. Taper la commande ping nom_de_l_ordinateur. Quelle est l'adresse IP de l'ordinateur ? (voir aussi avec la commande ipconfig comme précédemment dans l'exercice 5)
  4. Demander le nom de l'ordinateur de quelqu'un d'autre, à un autre ordinateur, dans la pièce.
    Taper alors la commande ping nom_de_l_autre_ordinateur.
    Quelle est l'adresse IP de cet ordinateur ?
    Que fait ici la commande ping ?


Exemple d'application: tracer un mail et localiser sa provenance

Le mail, ou message électronique, est un des éléments qui a fait le succès d'internet.
Néanmoins, derrière son utilisation simple, rapide, efficace, … de nombreuses utilisations frauduleuses en sont aussi faites.
Un mail contient en plus des données (le contenu du message lui-même), comme dans tout échange entre machines, l'adresse IP de l'expéditeur. En cas de doute sur le mail, cette adresse peut être utilisée pour localiser l'expéditeur, ou du moins glâner quelques informations.

Exercice 10
  1. Ouvrir un mail (ou un spam, …), depuis sa messagerie électronique sur un navigateur web ou un programme de messagerie.
  2. Chercher la possibilité d'"afficher la source du message", ou le "texte brut", ou encore l'"en-tête" (header) du message.
  3. Identifier l'adresse IP de l'expéditeur: X-Originating-IP.
    Copier alors cette adresse IP.
  4. Faire alors une recherche sur cette adresse IP: de nombreux sites permettent cela, comme par exemple DNS frog ou iplocation.net ou encore le site https://whoer.net/fr/checkwhois qui donne des informations à partir d'une adresse symbolique ou d'une adresse IP numérique.


Exemple 2: obtenir des informations sur un site web

De même que dans le paragraphe précédent, on peut chercher à obtenir des informations sur un site web.
le site https://whoer.net/fr/checkwhois donne des informations à partir d'une adresse symbolique ou d'une adresse IP numérique.
Exercice 11
Afficher des informations sur le site du lycée G. Eiffel, www.lycee-eiffel.org, sur le site www.google.fr, sur le site xymaths.free.fr, ou un sur un autre site.
Dans certain cas, l'adresse symbolique n'est pas connue publiquement, comme xymaths.free.fr. Il faut récupérer l'adresse IP au préalable.
Comme depuis notre ordinateur nous arrivons à accéder à ce site en saisissant l'adresse symbolique, on doit aussi pouvoir accès à la conversion en adresse IP. La commande ping permet cela.
Exercice 12
Éxécuter dans une console:
ping adresse
adresse est une adresse, symbolique ou IP: par exemple celle du lycée G. Eiffel, ou www.google.fr, ou xymaths.free.fr, ou …


Explorer et tester le réseau

La commande ping permet cela.
Exercice 13
  1. Essayer les commandes:
    ping google.com
    ou
    ping xymaths.free.fr
    ou encore
    ping http://www.eiffel-bordeaux.org/
  2. Essayer avec l'option -n: ping -n 1... ou ping -n 2 ...
  3. Essayer avec l'option -i: ping -i 1... ou ping -i 2 ...
    -i: indique le TTL (Time To Live: ...)
    Combien faut-il au minimum de TTL pour accéder à www.google.fr ou à http://www.eiffel-bordeaux.org/ ou à xymaths.free.fr ?


La commande netstat permet d'afficher les connexions actives: les machines connectées à celle-ci et prêtes à communiquer, ou en cours de communication.
Cette commande permet ainsi d'"explorer" le réseau local autour de notre machine.

Protocoles IP et TCP

IP et TCP sont les deux protocoles de communications entre machines à la base même de la fondation d'internet.

Paquets IP

Le message à transmettre est découpé en paquet. Chaque paquet est alors acheminé indépendamment. En gros, un paquet IP contient
  • l'adresse IP de l'émetteur
  • l'adresse IP de la destination
  • les données à transmettre
  • position du paquet dans l'ensemble des données à transmettre
Exercice 14
Le protocole TCP/IP est-il adapté à toutes les applications ?
Citer des applications pour lesquelles il ne semble pas indiqué.
L'envoi des paquets, et surtout leur réception, ne conserve par forcément leur ordre dans le message de départ. Il faut les remettre dans le bon ordre. TCP/IP gère cela.
Par contre, rien ne garantit l'ordre d'arrivée: des paquets de la fin du message peuvent arriver plus tôt; des paquets contigus peuvent être transmis à des vitesses différentes (en empruntant par exemple des routes différentes).
Enfin certains paquets peuvent avoir été purement et simplement perdus …

Des applications temps réel et de streaming ne peuvent donc pas reposer sur ce protocole de transmission, voir ci-dessous.


Inconvénients de TCP/IP

TCP n'est pas forcément adapté à toutes les applications.
Par exemple les applications en temps réel, ou streaming de média nécessitent un transfert des données "plus ordonné". Dans ce type d'application, il est de plus préférable de pouvoir gérer les erreurs de de transmission (avec des codes-correcteurs d'erreurs par exemple), plutôt que d'essayer de les éviter et de réinitialiser l'envoi du paquet en cas d'erreur.

D'autres protocoles ont été créés pour cela, tels que
  • FTP (File Transfert Protocol) pour l'échange direct de fichiers entre machines
  • UDP (User Datagram Protocol) qui privilégie le temps-réel sur la fiabilité
  • SCTP (Stream Control Transmission Protocol) ou RTSP (Real Time Streaming Protocol) pour le streaming,
  • POP (Post Office Protocol), SMTP (Simple Mail Transfer Protocol), ou encore IMAP (Internet Message Access Protocol), pour ce qui concerne les mails
  • BitTorrent est un protocole de transfert de données pair à pair (P2P) à travers un réseau informatique
  •  …
Exercice 15
  1. Faire des recherches sur les réseaux P2P, ou "Peer-to-Peer", "Pair-à-Pair" en français.
  2. Quel est le principe ? l'intérêt de ce type de réseau ?
  3. Quels en sont les inconvénients ? les usages illicites ?

Routage des données entre deux machines

Routage: problème général

Comment un ordinateur peut-il communiquer avec un autre ordinateur distant ?
Plus précisément, comment fait-il pour trouver la "route" qui va mener ses messages à l'ordinateur voulu ?

De part la taille du réseau mondiale et le nombre de machines connectées, il est impensable qu'un ordinateur "connaisse" tout le réseau complet, c'est-à-dire l'ensemble de toutes les machines connectées car:
  • il y en a trop ! plusieurs milliards ... , voir à ce sujet le nombre d'adresses IP disponibles
  • il faudrait les mettre à jour (très) régulièrement, d'où un important volume de données échangées sans arrêt
  • le calcul du meilleur iténéraire dans un graphe avec autant de sommets prendrait un temps gigantesque, vu que le nombre d'itinéraires possible est vertigineux, voir les problèmes logistiques avec les graphes.
Pour répondre à cette problématique, l'énorme réseau est segmenté en différents petits réseaux. Au sein de ces petits réseaux, on donne des adresses aux machines et il suffit de connaître l'adresse du réseau pour envoyer l'information à une machine de celui-ci. À l'intérieur du réseau, l'information sera alors redirigée vers la bonne machine.
Le principe est analogue à l'acheminement postal: pour envoyer un paquet par la poste, on indique le nom de la ville; le paquet arrive à la poste de la ville, puis c'est elle qui gère la distribution du paquet à la bonne adresse.

Les machines jouant un rôle analogue à celui de relai postal sont appelées des routeurs.

Un routeur est une machine qui permet de relier deux réseaux, en possédant notamment deux cartes réseau.
Chaque carte a une adresse IP différente (et d'ailleurs aussi une adresse MAC différente).
De plus, et contrairement à un ordinateur classique, un routeur accepte de recevoir et transmettre aux autres un message qui n'est pas destinée à sa propre adresse IP.


À l'intérieur de chaque sous-réseau local, le protocole DHCP (Dynamic Host Configuration Protocol) génère automatiquement les adresses IP pour son réseau.

Inteconnexion des réseaux et routage

Supposons pour simplifier une interconnexion limitée de 7 réseaux.
Comment un ordinateur relié au réseau C, à Bordeaux, peut-il parvenir à communiquer avec un ordinateur relié au réseau G ?
Ça dépend ! du réseau …


Le problème est traité ainsi en pratique: chaque routeur a sa table de routage, qui permet au message d'être transmis de proche en proche, de routeur en routeur, jusqu'à destination.
Une table de routage contient des informations seulement sur les autres routeurs proches. En d'autres termes, un routeur "connaît son voisinage".

Difficultés et questions liées au routage

  • Comment un routeur connaît-il ses voisins ?
  • Comment faire pour savoir si un routeur est en panne ? et comment faire dans ce cas si on comptait passer par lui ?
  • Et si de nombreux routeurs sont en panne, au point de ne laisser aucun chemin possible entre l'émetteur et le destinataire ?
  • Optimisation ? plus court chemin ?

Quelques réponses

Dans notre exemple, C veut communiquer avec G. La distance entre eux est de 2 dans notre graphe.
  • C envoi sa table de routage: il dit être à une distance de 1 de A, B et D.
  • B envoi sa table: C sait donc qu'il est à une distance de 2 de G via B
  • A envoi sa table: C sait donc qu'il est aussi à une distance de 3 de G via A
  • D et F envoient aussi leur table: C sait donc qu'il est aussi à une distance de 3 de G via D et F

Time To Live (TTL)

Revenons à la question, assez primordiale, "et en cas de panne d'un routeur ?"
Par exemple, avec le graphe précédent, et si B est en panne ?

Le principe du routage va permettre d'acheminer les paquets via A (puis F et H).

Et en cas de panne de plusieurs routeurs ? des paquets zombies ?
Un paquet émis de C en destination de G risque d'avoir du mal à arriver à destination.
Problème: le paquet émis risque de tourner un certain temps sur le réseau !
Solution: on ajoute au paquet un compteur qu'on fait décroître de 1 à chaque passage par un routeur. Ce compteur est nommé TTL, pour Time To Live. Si ce compteur arrive à 0, le paquet est purement et simplement supprimé.
Par exemple, un paquet part ici de C avec un TTL=16. Ce paquet passe par le routeur A, son TTL diminue à 15. Il passe ensuite par F, et son TTL devient 14 …
En python, le programme de traitement d'un paquet par un routeur ressemble donc à:
if (TTL>0): 
    # Instructions de traitement:
    #  lecture de l'adresse de destination
    #  lecture de la table de routage
    # ...
    #
    TTL=TTL-1
else: 
    destruction du paquet

Un test en direct

Il est possible d'effectuer une requête vers une adresse IP et d'observer la route empruntée pour y parvenir.
La commande "tracert" (contraction de trace route) sous windows permet de le faire.
Exercice 16
  1. Ouvrir une fenêtre d' "invite de commandes" (fenêtre DOS).
  2. Taper la commande tracert www.lycee-eiffel.org. Combien d'intermédiaires sont rencontrés ?
  3. Réessayer avec une autre adresse, www.google.fr, xymaths.free.fr, … , un site américain (en .us), australien (en .au), …
(Consulter l'aide, si nécessaire, tracert /?).


Quelques failles ?

On distingue toujours en informatique:
  • la sûreté du système: son bon fonctionnement dans tous les cas (pannes, bugs, ...)
  • la sécurité du système: protection des données et des systèmes (piratage, ...)

La sécurité peut être altérée par exemple par "interception DNS": changement de la traduction adresse symbolique <-> numérique et donc usurpation d'identité de site (ou usurpation d'adresse).

La sûreté peut être attaquée par exemple par un envoi d'un grand nombre de requêtes (ping..., et options ping -ta, depuis un ou plusieurs clients) vers un site: dépassement de la capacité de traitement du serveur.


Voir aussi:
Lien