Systèmes d'exploitation — fondations · L2 · Section 7/12
Introduction aux réseaux informatiques
Progression
#Introduction aux réseaux informatiques
Prérequis
- Aucune programmation réseau préalable; le chapitre IPC sockets approfondit l'API.
Objectifs d'apprentissage
- Nommer les quatre couches du modèle TCP/IP et leur responsabilité.
- Décomposer une connexion TCP en quadruplet adresse/port.
- Distinguer latence et bande passante, et situer fiabilité TCP vs UDP.
Dès que l'on connecte deux machines, il faut décider comment les données circulent, comment les adresses sont attribuées et comment les erreurs sont gérées. Le modèle TCP/IP donne une réponse pragmatique qui s'articule autour de quatre couches principales. Le principe directeur: chaque couche ne rend service qu'à celle du dessus et n'utilise que celle du dessous; un changement d'étage ne modifie pas les autres.
#0. Le réseau comme graphe
Le cours d'Unix commence par la modélisation, et c'est la bonne entrée en matière. Un réseau est un ensemble de nœuds (sommets) et de liens (arêtes): c'est donc un graphe. Les nœuds représentent les ordinateurs, les postes de travail, les imprimantes et autres périphériques partagés, les nœuds de communication; les arêtes représentent les liaisons. Le cours file l'analogie du réseau routier — routes, échangeurs, convois — et rappelle que les sous-réseaux peuvent correspondre à des opérateurs distincts, nationaux ou trans-nationaux, reliés par leurs nœuds centraux.
Deux échelles se distinguent. Le réseau local relie les ordinateurs d'un particulier, d'un bâtiment ou d'une entreprise, sur des lignes téléphoniques, des liaisons radio, de la fibre optique, du câble coaxial ou de l'Ethernet; le réseau du parc Valrose en est un exemple. Le réseau étendu relie des ordinateurs distants de centaines ou milliers de kilomètres, par câbles, fibre, lignes spécialisées, satellite ou réseaux publics; le réseau de l'UNSA, relié à R3T2 puis à RENATER, en est un exemple.
Trois modes de transmission coexistent, et les confondre empêche de comprendre Ethernet.
- La liaison directe établit la connexion entre deux postes et empêche toute autre connexion: elle n'est possible que dans un réseau très simple, et sert surtout à une liaison fixe.
- La diffusion fait envoyer l'émetteur dans toutes les directions; tous les récepteurs captent l'information, seuls les destinataires l'utilisent.
- La transmission passe par plusieurs commutateurs, avec un établissement de liaison temporaire.
Ethernet met en œuvre la diffusion. Tout organe y possède une adresse Ethernet, aussi appelée adresse MAC, caractéristique dans le monde entier, et chacun est à l'écoute de ce qui le concerne.
Comme un commutateur n'a qu'un nombre limité de canaux et qu'on ne peut pas les bloquer pour une transmission de durée imprévisible, on découpe l'information en paquets: les fragments sont transmis indépendamment les uns des autres et regroupés à l'arrivée pour reconstituer le message. C'est la raison d'être des paquets, et elle explique aussi pourquoi il faut un protocole pour les réordonner.
#1. Couches et responsabilités
La couche liaison (Ethernet, Wi-Fi) définit le format des trames au sein d'un réseau local et s'appuie sur des adresses MAC pour joindre la machine voisine. La couche Internet (IP) attribue des adresses et planifie le routage d'un point A vers un point B; IPv4 encode 32 bits (environ 4,3 milliards d'adresses, d'où la pénurie), IPv6 étend l'espace à 128 bits. La couche transport propose deux tempéraments: TCP garantit l'ordre, la fiabilité et le contrôle de flux, tandis qu'UDP préfère la simplicité et la rapidité, quitte à laisser l'application gérer les pertes. La couche application regroupe des protocoles spécialisés comme HTTP, DNS ou SSH.
Applications concrètes du choix: une page web (TCP), un flux vidéo en direct ou un jeu rapide (UDP, où une image perdue vaut mieux qu'une image en retard), une résolution de nom (UDP pour la requête DNS usuelle).
#2. Adressage et ports
Chaque interface réseau se voit attribuer une adresse IP et expose des services identifiés par des ports numérotés (0 à 65535; les ports inférieurs à 1024 exigent des privilèges pour être liés). Une connexion TCP est ainsi décrite par un quadruplet: adresse source, port source, adresse destination, port destination. Deux connexions vers le même serveur web se distinguent par le port source côté client; c'est ce quadruplet que ss -tn affiche. C'est la frontière exacte avec le module Unix & Shell, où un tunnel SSH s'installait justement en écoutant un port local.
Les routeurs maintiennent des tables pour savoir où envoyer chaque paquet; les commutateurs travaillent plus bas, au niveau des adresses MAC, pour aiguiller les trames dans un réseau local. Dans un réseau domestique, le routeur joue souvent plusieurs rôles: NAT (traduction d'adresses), serveur DHCP (attribution), pare-feu (filtrage).
Observation locale:
1ip addr # vos adresses IP par interface2ip route # votre passerelle par défaut3ss -tn # connexions TCP actives: locaux distants#L'adressage IP dans le détail
Le cours détaille la structure d'une adresse IPv4, et ces questions reviennent en épreuve. Une adresse IPv4 est un nombre de 32 bits découpé en quatre octets, lui-même partagé en deux parties: la première identifie le réseau (net id), la seconde identifie un poste sur ce réseau (host id). Cet adressage définit cinq classes, dont trois pour les réseaux membres d'Internet.
- Classe A — premier octet inférieur à 128. Le premier octet identifie le réseau, les trois suivants les machines. Pas plus de 128 très grands réseaux; l'octet
18représente le réseau du MIT. - Classe B — premier octet entre 128 et 192. Les deux premiers octets caractérisent le réseau, les deux derniers les machines: 16 384 réseaux de 65 536 machines.
134.59est le réseau de l'UNSA. - Classe C — premier octet entre 192 et 224. Les trois premiers octets caractérisent le réseau, le quatrième les machines: plus de deux millions de petits réseaux de 256 machines.
Beaucoup d'entreprises cachent leurs adresses internes derrière du NAT (network address translation), et « malgré tout ce système a atteint ses limites ». La fin de l'utilisation des classes date de 1993, avec le CIDR (Classless Inter-Domain Routing).
IPv6 étend l'adresse à 128 bits, soit 16 octets, notée en hexadécimal en 8 groupes de 16 bits séparés par des deux-points:
12001:0db8:0000:85a3:0000:0000:ac1f:8001Le nombre d'adresses théoriques atteint . Plusieurs types d'adresses sont indiqués par le préfixe: unicast, anycast, multicast. Un préfixe comme 2001:db8:1f89::/48 désigne l'ensemble des adresses allant de 2001:db8:1f89:0:0:0:0:0 à 2001:db8:1f89:ffff:ffff:ffff:ffff:ffff; le préfixe 2000::/3 correspond à la monodiffusion mondiale (Global Unicast), c'est-à-dire des adresses publiques, routables sur Internet et globalement uniques.
Noms et domaines. L'adresse IP est malcommode pour l'utilisateur: on définit donc des adresses symboliques hiérarchisées en domaines, et des serveurs de noms établissent la correspondance dans les deux sens. La hiérarchie se lit de droite à gauche, le niveau le plus élevé apparaissant en dernier: domaine par pays (fr, uk, za), domaines « apatrides » (org, net, com, biz), domaines réservés aux États-Unis (mil, gov, edu). Les niveaux précédents sont gérés par l'organisme propriétaire du domaine — en France, l'Afnic gère .fr. Les alias sont fréquents: sesame-mips.unice.fr et www-mips.unice.fr sont deux alias de polymnie.unice.fr, d'adresse 134.59.2.13; mit.edu est un alias de web.mit.edu.
Routeurs. Les réseaux communiquent entre eux par l'intermédiaire de nœuds d'interconnexion, les routeurs. Un message passe par plusieurs routeurs avant d'arriver au réseau local du destinataire, et il est découpé en paquets dont les chemins peuvent varier. Sur le réseau local, l'ordinateur a une adresse physique; le message comporte une adresse IP; le réseau local fait se correspondre les deux, et un routeur envoie le message vers le routeur voisin capable de traiter l'adresse IP.
Outils. Quatre commandes suffisent à la plupart des diagnostics.
1host polymnie.unice.fr # nom vers adresse, ou l'inverse2dig polymnie.unice.fr # la même chose, avec beaucoup plus de détails3ping polymnie # accessibilité; terminer par C-c4traceroute www.unice.fr # chemin de routeur en routeurhost prend en argument l'une des deux formes d'adresse et répond avec l'autre: c'est l'outil d'association nom-adresse. ping teste l'accessibilité; en testant des relais de plus en plus éloignés, on détermine où apparaît une panne — et beaucoup de machines n'y répondent pas, pour des raisons de sécurité. traceroute montre le chemin de routeur en routeur, ce qui fait apparaître les nœuds d'interconnexion traversés systématiquement.
#3. Latence, perte et sécurité
Comprendre un réseau, c'est aussi reconnaître ses contraintes. La latence correspond au temps de propagation plus le traitement de chaque nœud intermédiaire; la bande passante mesure le débit maximal. Les deux sont indépendantes: un lien satellite peut offrir un gros débit avec une latence énorme, et c'est la latence qui pénalise les protocoles bavards (une session SSH interactive devient pénible bien avant que le débit sature). Les protocoles de transport doivent composer avec les pertes, les congestions et les variations de délai: TCP réordonne, réémet et ralentit; UDP ne fait rien de tout cela.
La sécurité s'appuie sur des pare-feux pour filtrer, sur TLS pour chiffrer au niveau applicatif, et sur des architectures bien pensées (zones démilitarisées, VLAN) pour limiter les dégâts en cas d'intrusion. Pour un développeur système, ces notions conditionnent la façon d'écrire un service réseau ou de diagnostiquer un comportement anormal.
#4. Protocoles de communication
Un protocole intervient dans tout échange de données entre ordinateurs: il fixe la forme des données, la codification utilisée, les conventions pour demander la répétition, les conventions pour l'accusé de réception. Le cours illustre la notion par un appel téléphonique, qui suit lui aussi un protocole: l'appelé indique qu'il a reçu l'appel, l'appelant vérifie qu'il est en relation avec la bonne personne, chacun s'identifie, le dialogue commence, et un protocole final termine la communication.
Les protocoles se classent selon la simultanéité qu'ils exigent.
Protocoles simples et immédiats. write envoie du texte sur le terminal de quelqu'un d'autre: on obtient d'abord le nom du terminal avec who jojo, on tape write jojo nom_du_terminal, l'interlocuteur voit le message et répond de la même façon, puis tout ce que tape l'un apparaît chez l'autre. Pour éviter le mélange, chacun doit annoncer la fin de son message et attendre son tour; le dialogue se termine par une fin de fichier (C-d). talk gère lui-même son protocole et découpe la fenêtre en deux parties, mais beaucoup de machines le refusent. Leur inconvénient est structurel: les deux interlocuteurs doivent être présents simultanément, et write impose d'être sur la même machine. mesg n refuse les dialogues dans un terminal, mesg y les accepte, mesg indique l'état.
IRC. Internet Relay Chat permet la communication entre plusieurs personnes, sous forme immédiate. Des serveurs IRC sont reliés entre eux, un utilisateur se connecte à un serveur et choisit un canal parmi un très grand nombre, avec la liberté d'en définir de nouveaux; tout message tapé sur un canal est transmis à tous les serveurs qui le servent. Le cours en tire une conséquence sans détour: « tout le monde parle ensemble, comme dans une foule, peu de gens écoutent ».
NNTP. Network News Transfer Protocol permet la communication entre plusieurs personnes, sous forme différée. Des serveurs NNTP communiquent entre eux; l'utilisateur s'abonne à des groupes de discussion, lit les articles récents et en publie; les serveurs se synchronisent régulièrement; les administrateurs choisissent les groupes diffusés et la durée de vie des articles. Les articles sont publics, les participants n'ont pas besoin d'être connectés simultanément, il n'y a pas d'identification absolue des articles, et certains groupes ont un modérateur qui filtre. Les groupes sont hiérarchisés, le terme le plus général en premier: comp, rec, alt, fr. L'ensemble des serveurs forme le système Usenet, et le cours note que « le rapport signal sur bruit est très proche de zéro ».
Messagerie instantanée. Elle exige la présence simultanée des deux interlocuteurs, comme les conversations privées d'IRC. Les protocoles privés des fournisseurs (AIM, ICQ, MSN, Yahoo) sont incompatibles entre eux; le protocole Jabber vient du monde du logiciel libre, et les outils multi-protocoles comme Pidgin savent tous les parler. Le fonctionnement est client-serveur: un message part du serveur de l'émetteur, qui établit la communication avec le serveur du destinataire, et le message est livré.
Pair-à-pair. Dans un système P2P, les échanges se font directement entre ordinateurs connectés: tous les ordinateurs, appelés nœuds, jouent à la fois le rôle de client et de serveur. BitTorrent en est l'exemple pour le partage de fichiers.
#5. Le courrier électronique
Le courrier électronique a quatre propriétés de base: communication de personne à personne, sans nécessité de présence simultanée, laissant une trace écrite, et de très grande vitesse de transmission. Le cours compare avec les autres moyens: le téléphone n'a pas de trace et exige la simultanéité; le courrier postal est lent et peu fiable; les groupes de discussion produisent beaucoup de bruit et peu de confidentialité; IRC ajoute la brièveté; HTTP place toute l'activité du côté du client et n'offre donc pas de dialogue symétrique.
Ses inconvénients sont tout aussi nets: incompatibilité des moyens de communication, problèmes des alphabets nationaux, absence d'authentification, pas de réel accusé de réception, confidentialité pas vraiment garantie, possibilité de fraude, et envahissement par les courriers non sollicités.
Deux agents. La gestion normale met en jeu deux types d'outils. L'agent de transport (MTA) effectue la transmission des messages d'une machine à une autre. L'agent de courrier (MUA) sert à composer, envoyer, recevoir et afficher les messages. Pour un message de toto@alpha.unice.fr à titi@mit.edu, l'agent de transport de la machine émettrice reçoit le message préparé par Toto, identifiant clairement l'expéditeur et le destinataire; il se met en communication avec l'agent de transport du domaine récepteur; il fournit ses références, celles de l'expéditeur, puis celles du destinataire; il transmet le message; il termine la communication.
La communication directe est souvent impossible: pour beaucoup de domaines, un serveur de courrier centralise toutes les entrées et sorties, et il faut passer par des relais de courrier qui transforment les adresses avant de retransmettre. L'agent de transport joue donc un rôle complexe: il reçoit les requêtes des agents de courrier locaux, écoute sur le port 25 pour celles des autres agents, analyse les en-têtes, dépose les messages dans les boîtes aux lettres locales, ré-expédie certains messages, en rejette d'autres. L'utilisateur normal ne communique jamais directement avec lui.
SMTP. Le protocole s'appuie sur TCP et IP et utilise le port 25 (non crypté), 465 et 587 (cryptés). La trace complète, rejouable à la main avec telnet, est donnée par le cours:
1telnet echo.unice.fr 251220 echo.unice.fr ESMTP Postfix2HELO wfsm3250 echo.unice.fr4MAIL FROM: guingne@echo.unice.fr5250 ok6RCPT TO: guingne@echo.unice.fr7250 ok8DATA9354 End data with <CR><LF>.<CR><LF>10essai pour le cours ...11.12250 Ok: queued as EB26D2C0313QUIT14221 ByeDeux observations. Le corps du message est introduit par DATA et terminé par une ligne ne contenant qu'un point. Et surtout, il n'y a aucune authentification: l'expéditeur déclaré dans MAIL FROM n'est vérifié par personne, ce qui rend la fraude triviale — c'est la racine technique des pourriels.
Structure d'un message. Un message comprend un ensemble d'en-têtes de forme normalisée, puis un corps éventuellement divisé en plusieurs parties. Certains en-têtes sont définis par l'utilisateur, d'autres entièrement préparés par l'agent de courrier, d'autres encore ajoutés par les agents de transport successifs.
To— destinataire, obligatoire, une ou plusieurs adresses séparées par des virgules, sous forme d'adresse ordinaire ou de chaîne libre suivie de l'adresse entre chevrons.Subject— sujet du message, facultatif mais très utile: c'est souvent la seule chose que le destinataire regarde.Cc— destinataires secondaires (« copie carbone »);Bcc— destinataires cachés, qui reçoivent le message sans apparaître dans la liste.From— expéditeur, obligatoire, introduit par l'agent de courrier; si l'utilisateur le modifie, l'agent doit ajouter un champSenderindiquant l'expéditeur effectif.Date— date et heure exactes d'expédition, fuseau horaire compris.Return-path— comment renvoyer le message s'il ne peut être transmis; normalement identique àFromouSender.In-reply-to— ajouté si le message répond à un autre, en référence à sonMessage-id.Received— champ répété, montrant en ordre chronologique le chemin suivi par le message.
Les en-têtes n'utilisent qu'un alphabet sur 7 bits; les caractères accentués y sont transcodés. Le corps est limité à un alphabet sur 8 bits, et certains agents préfèrent même le limiter à 7. Le codage quoted-printable code sur 7 bits les caractères sur 8, et le codage MIME (Multipurpose Internet Mail Extension) permet d'utiliser plusieurs alphabets dans le même message, d'inclure des fichiers de tous types et d'enrichir le message d'indications de présentation.
Accès distant. Les protocoles POP et IMAP permettent de consulter le courrier à distance sans l'amener localement, ce qui convient aux utilisateurs nomades; leurs limites sont que le mot de passe est transmis en clair et que les messages laissés sur le serveur occupent un espace commun très limité. Quelques commandes complètent le tableau: mailq vérifie l'état de la file d'attente de l'agent de transport, from liste les expéditeurs des messages non lus, xbiff signale graphiquement l'arrivée de courrier, et Emacs l'annonce par le mot Mail dans sa barre de mode.
#6. HTTP, HTML et le Web
HTTP (HyperText Transport Protocol) repose sur une idée simple: un document hypertexte contient des références à d'autres documents. Un serveur HTTP fournit une base de documents, souvent appelés des pages, et reçoit des requêtes selon le protocole; les pages sont le plus souvent codées en HTML. Un client HTTP envoie des requêtes, affiche les pages reçues, et utilise les références contenues dans ces pages pour envoyer de nouvelles requêtes.
Il n'y a pas de session HTTP. Chaque requête est indépendante des autres: le client envoie une requête GET qui précise la référence à la page demandée et le protocole utilisé; le serveur connaît et conserve l'adresse IP du client et la date et l'heure de la requête; la réponse, accompagnée éventuellement de ce qui est demandé, termine la requête. Le cours souligne que « le protocole HTTP n'était pas prévu pour ce qu'on en fait actuellement »: sans établissement de connexion durable, chaque nouvelle requête exigeait une nouvelle connexion. D'où l'ajout de Connection: Keep-Alive avec HTTP 1.0, puis de la connexion persistante avec HTTP 1.1. Et comme il n'existe toujours pas d'état côté serveur, on a ajouté des marqueurs (cookies): envoyés au client avec la réponse, conservés dans son espace de travail, de contenu quelconque déterminé par le serveur, et récupérables par le serveur pour mémoriser l'historique des communications.
Une URL a la forme générale protocole://hôte[:port][/chemin/fichier]. Deux remarques du cours: pour le protocole et l'hôte, majuscules et minuscules sont équivalentes; pour le chemin et le fichier, qui suivent les conventions d'Unix, elles ne le sont pas. Le numéro de port n'est que très rarement indiqué.
HTML (HyperText Markup Language) est du texte courant parsemé de balises qui donnent des indications de structure (titres hiérarchisés, tableaux, listes), des indications de présentation (gras, italique, couleur) et fournissent des liens hypertextes. Les balises vont en général par paires, une ouvrante et une fermante, ce qui permet des emboîtements; les balises ouvrantes peuvent porter des attributs de la forme clé="valeur". Un point essentiel: la présentation du texte en HTML est sans signification, une suite d'espaces et de passages à la ligne équivalant à un seul espace. Le document est encadré par html, avec un en-tête head contenant principalement le titre et un corps body.
Le cours distingue les indications de structure — titres h1 à h6, paragraphes p, passage à la ligne br, trait horizontal hr, listes ordonnées ol, non ordonnées ul, de définitions dl, tableaux table — et les indications de présentation, à utiliser avec modération puisqu'on ne maîtrise jamais complètement la présentation finale: caractères spéciaux codés par des entités comme é, gras b, italique i, indice sub. Les indications logiques existent aussi: strong pour une forte accentuation, blockquote pour une citation.
Un lien hypertexte est une zone cliquable définie par l'élément d'ancrage, dont l'attribut href porte l'adresse ou l'URL. Il peut mener à un autre endroit du même document, à un fichier du même serveur, ou à un fichier d'un autre serveur. La méthode recommandée aujourd'hui est de séparer les indications de présentation du contenu: la page contient des balises d'identification et fait référence à une feuille de style.
Le World Wide Web a été conçu au CERN vers 1989 et repose sur HTTP; il est souvent confondu avec Internet, qui en est l'infrastructure. Les premiers navigateurs étaient purement textuels; les navigateurs actuels acceptent d'autres protocoles — FTP, Telnet, NNTP — et servent souvent d'outils de communication universels. Lynx reste le navigateur purement textuel, très simple et très rapide.
#Atelier: capturer et attribuer
Installez tcpdump (avec droits) ou wireshark, capturez le trafic lors d'une requête DNS puis d'un téléchargement HTTP.
Observations attendues côté DNS: une requête UDP vers le port 53, une réponse. Côté HTTP: poignée de main TCP en trois temps (SYN, SYN-ACK, ACK), puis les segments de données et les accusés de réception. Comparez ensuite un ping filaire et un ping Wi-Fi vers la même cible (ping -c 20 hote): relevez les moyenne et déviation du temps d'aller-retour, puis attribuez chaque observation à sa couche: quel étage corrige les pertes (transport), lequel résout les noms (application), lequel choisit le chemin (Internet)?
#Exercices
1. Quel objet mathématique modélise un réseau? Expliquer. Quelles sont les deux échelles de réseau que le cours distingue?
2. Quels sont les trois modes de transmission? Lequel Ethernet met-il en œuvre?
3. Définir TCP et décrire brièvement à quoi cela sert. À quoi sert un numéro de port?
4. Décrire les classes A, B et C de l'adressage IPv4, avec un exemple d'organisation pour chacune. Pourquoi ce système a-t-il été abandonné?
5. Combien d'adresses IPv6 existe-t-il théoriquement? Comment s'écrit une adresse IPv6?
6. Que fait un serveur de noms de domaine? Comment se lit la hiérarchie des domaines, et qui gère le domaine fr?
7. Définir IRC et décrire brièvement à quoi cela sert. En quoi diffère-t-il de NNTP?
8. Quels sont les deux agents mis en jeu par le courrier électronique, et quel est le rôle de chacun? Sur quel port SMTP écoute-t-il?
9. Citer cinq en-têtes d'un message électronique et donner leur rôle. Que permet le codage MIME?
10. Qu'est-ce qu'une URL? Pourquoi dit-on qu'il n'y a pas de session HTTP, et comment le protocole a-t-il contourné cette limite?
Corrections détaillées
1. Un réseau se modélise par un graphe: un ensemble de nœuds (sommets) et de liens (arêtes). Les nœuds sont les ordinateurs, serveurs, imprimantes et nœuds de communication; les arêtes sont les liaisons. Les deux échelles sont le réseau local, qui relie les machines d'un particulier, d'un bâtiment ou d'une entreprise, et le réseau étendu, qui relie des machines distantes de centaines ou milliers de kilomètres.
2. La liaison directe, qui établit une connexion entre deux postes et empêche toute autre connexion; la diffusion, où l'émetteur envoie dans toutes les directions et où tous les récepteurs captent l'information, seuls les destinataires l'utilisant; et la transmission, qui passe par plusieurs commutateurs avec un établissement de liaison temporaire. Ethernet met en œuvre la diffusion: tout organe possède une adresse Ethernet (MAC) caractéristique dans le monde entier, et chacun est à l'écoute de ce qui le concerne.
3. TCP (Transmission Control Protocol) intervient aux deux extrémités de la communication: il découpe le message en paquets et associe à chacun une enveloppe identifiant l'expéditeur, le destinataire, le message et l'ordre des paquets; à l'arrivée il réassemble les paquets. Il assure la sécurité et l'intégrité de la transmission en dialoguant avec l'expéditeur pour redemander les paquets manquants ou mal transmis. Le numéro de port identifie l'application destinataire: chaque application utilise un port spécialisé, ce qui permet au message d'être transmis à la bonne application.
4. Classe A: premier octet inférieur à 128, cet octet identifie le réseau et les trois suivants les machines — pas plus de 128 très grands réseaux, l'octet 18 correspondant au réseau du MIT. Classe B: premier octet entre 128 et 192, les deux premiers octets identifient le réseau — 16 384 réseaux de 65 536 machines, 134.59 correspondant au réseau de l'UNSA. Classe C: premier octet entre 192 et 224, les trois premiers octets identifient le réseau — plus de deux millions de réseaux de 256 machines. Le système a été abandonné parce qu'il a atteint ses limites: malgré le recours au NAT, qui cache les adresses internes des entreprises, la pénurie d'adresses est restée. Les classes ont été remplacées dès 1993 par le CIDR, puis à terme par IPv6.
5. Une adresse IPv6 fait 128 bits, soit 16 octets, ce qui donne adresses théoriques. Elle s'écrit en hexadécimal, en 8 groupes de 2 octets (16 bits) séparés par des deux-points: 2001:0db8:0000:85a3:0000:0000:ac1f:8001. Le préfixe indique le type: unicast, anycast, multicast.
6. Le serveur de noms établit la correspondance depuis et vers les adresses IP, car l'adresse numérique est malcommode pour l'utilisateur. La hiérarchie se lit de droite à gauche, le niveau le plus élevé apparaissant en dernier: domaines par pays (fr, uk, za), domaines « apatrides » (org, net, com, biz), domaines réservés aux États-Unis (mil, gov, edu). Les niveaux précédents sont gérés par l'organisme propriétaire du domaine; en France, c'est l'Afnic qui gère .fr.
7. IRC (Internet Relay Chat) permet la communication entre plusieurs personnes, sous forme immédiate: des serveurs reliés entre eux, des canaux nombreux et librement créés, chaque message transmis à tous les serveurs qui servent le canal — « tout le monde parle ensemble, comme dans une foule, peu de gens écoutent ». NNTP organise au contraire une communication différée, apparentée à des panneaux d'affichage publics: articles publics, participants non simultanés, conservation temporaire des articles, groupes hiérarchisés. La différence tient à la simultanéité et à la persistance.
8. L'agent de transport (MTA) effectue la transmission des messages d'une machine à une autre: il reçoit les requêtes des agents de courrier locaux, écoute sur le port 25, analyse les en-têtes, dépose les messages dans les boîtes aux lettres locales, ré-expédie ou rejette certains messages. L'agent de courrier (MUA) sert à composer, envoyer, recevoir et afficher les messages. SMTP utilise le port 25 en clair, et 465 et 587 en version cryptée.
9. Par exemple: To (destinataire, obligatoire), Subject (sujet, facultatif mais très utile), From (expéditeur, introduit par l'agent de courrier), Date (date et heure d'expédition avec fuseau), Received (chemin suivi, répété à chaque relais). On peut aussi citer Cc et Bcc (destinataires secondaires et cachés), Return-path (adresse de retour) et In-reply-to (message auquel on répond). Le codage MIME permet d'utiliser plusieurs alphabets dans le même message, d'y inclure des fichiers de tous types et d'enrichir le message d'indications de présentation.
10. Une URL a la forme protocole://hôte[:port][/chemin/fichier]. Pour le protocole et l'hôte, majuscules et minuscules sont équivalentes; pour le chemin et le fichier, qui suivent les conventions d'Unix, elles ne le sont pas. Il n'y a pas de session HTTP parce que chaque requête est indépendante: le client envoie une requête GET, le serveur répond, et la requête est terminée. Le protocole a contourné cette limite de deux manières: d'abord par la connexion persistante, Connection: Keep-Alive avec HTTP 1.0 puis la persistance de HTTP 1.1; ensuite par les cookies, marqueurs envoyés au client avec la réponse, conservés dans son espace de travail, et récupérables par le serveur pour mémoriser l'historique des communications.