« Explication détaillée TCP/IP, Volume 1 : Protocole » est un guide complet et détaillé du protocole TCP/IP. Les protocoles individuels appartenant à chaque couche et leur fonctionnement dans différents systèmes d'exploitation sont décrits. L'auteur a utilisé le programme tcpdump du Lawrence Berkeley Laboratory pour capturer différents paquets transmis entre différents systèmes d'exploitation et implémentations TCP/IP. L'étude de la sortie de tcpdump peut aider à comprendre le fonctionnement des différents protocoles. Ce livre convient comme manuel pour les étudiants en informatique qui apprennent les réseaux et comme ouvrage de référence pour les enseignants. Convient également aux techniciens étudiant les réseaux.
Table des matières Préface du traducteur Chapitre 1 Aperçu 1
1.1 Introduction 1
1.2 Stratification 1
1.3 Couche TCP/IP 4
1.4 Adresses Internet 5
1.5 Système de noms de domaine 6
1.6 Emballage 6
1,7 points avec 8
1.8 Modèle client-serveur 8
1.9 Port numéro 9
1.10 Processus de normalisation 10
1.11 RFC10
1.12 Service simple standard 11
1.13 Internet 12
1.14 Mise en œuvre 12
1.15 Interface de programmation d'applications 12
1.16 Réseau d'essais 13
1.17 Résumé 13
Chapitre 2 Couche de liaison 15
2.1 Introduction 15
2.2 Encapsulation Ethernet et IEEE 802 15
2.3 Emballage de queue 17
2.4 SLIP : Ligne série IP 17
2.5 SLIP 18 compressé
2.6 PPP : Protocole point à point 18
2.7 Interface de bouclage 20
2.8 Unité de transmission maximale MTU 21
2.9 Chemin MTU 21
2.10 Calcul du débit de la ligne série 21
2.11 Résumé 22
Chapitre 3 IP : Protocole Internet 24
3.1 Introduction 24
3.2 En-tête IP 24
3.3 Routage IP 27
3.4 Adressage de sous-réseau 30
3.5 Masque de sous-réseau 32
3.6 Adresses IP pour situations particulières 33
3.7 Exemple de sous-réseau 33
3.8 commande ifconfig 35
3.9 Commande netstat 36
3.10 L'avenir de l'IP 36
3.11 Résumé 37
Chapitre 4 ARP : Protocole de résolution d'adresse 38
4.1 Introduction 38
4.2 Un exemple 38
4.3 Cache ARP 40
4.4 Format de regroupement ARP 40
4.5 Exemple ARP 41
4.5.1 Exemple général 41
4.5.2 Requête ARP pour hôte inexistant 42
4.5.3 Paramétrage du délai d'expiration du cache ARP 43
4.6 Proxy ARP 43
4.7 ARP 45 gratuit
Commande 4.8 arp 45
4.9 Résumé 46
Chapitre 5 RARP : Protocole de résolution d'adresse inversée 47
5.1 Introduction 47
5.2 Format de regroupement RARP 47
5.3 Exemple RARP 47
5.4 Conception du serveur RARP 48
5.4.1 Serveur RARP en tant que processus utilisateur 49
5.4.2 Plusieurs serveurs RARP par réseau 49
5.5 Résumé 49
Chapitre 6 ICMP : Protocole de message de contrôle Internet 50
6.1 Introduction 50
6.2 Types de messages ICMP 50
6.3 Demande et réponse de masque d'adresse ICMP 52
6.4 Demande et réponse d'horodatage ICMP 53
6.4.1 Exemple 54
6.4.2 Une autre approche 55
6.5 Erreur de port ICMP inaccessible 56
6.6 4.4Traitement BSD des messages ICMP 59
6.7 Résumé 60
Chapitre 7 Programme Ping 61
7.1 Introduction 61
7.2 Programme Ping 61
7.2.1 Sortie LAN 62
7.2.2 Sortie WAN 63
7.2.3 Liaison SLIP de ligne 64
7.2.4 Liaison SLIP commutée 65
7.3 Options de routage des enregistrements IP 65
7.3.1 Exemples courants 66
7.3.2 Sortie d'exception 68
7.4 Options d'horodatage IP 69
7.5 Résumé 70
Chapitre 8 Programme Traceroute 71
8.1 Introduction 71
8.2 Fonctionnement du programme Traceroute 71
8.3 Sortie LAN 72
8.4 Sortie WAN 75
8.5 Options de routage d'origine IP 76
8.5.1 Traceroute pour un routage d'origine détendu
Exemple de programme 78
8.5.2 Traceroute pour un routage strict du site d'origine
Exemple de programme 79
8.5.3 Programme traceroute de routage du site source lâche
Itinéraire aller-retour 80
8.6 Résumé 81
Chapitre 9 Routage IP 83
9.1 Introduction 83
9.2 Principes de routage 84
9.2.1 Table de routage simple 84
9.2.2 Initialiser la table de routage 86
9.2.3 Tables de routage plus complexes 87
9.2.4 Aucun itinéraire vers la destination 87
9.3 Erreurs d'hôte et de réseau ICMP inaccessibles 88
9.4 Transférer ou ne pas transférer 89
9.5 Erreur de redirection ICMP 89
9.5.1 Un exemple 90
9.5.2 Plus de détails 91
9.6 Message de découverte de routeur ICMP 92
9.6.1 Fonctionnement du routeur 93
9.6.2 Fonctionnement de l'hôte 93
9.6.3 Mise en œuvre 93
9.7 Résumé 94
Chapitre 10 Protocole de routage dynamique 95
10.1 Introduction 95
10.2 Routage dynamique 95
10.3 Démon de routage Unix 96
10.4 RIP : Protocole d'informations de routage 96
10.4.1 Format des messages 96
10.4.2 Fonctionnement normal 97
10.4.3 Métriques 98
10.4.4 Question 98
10.4.5 Exemple 98
10.4.6 Autre exemple 100
10.5RIP version 2 102
10.6 OSPF : ouvrir le chemin le plus court en premier 102
10.7 BGP : Protocole de passerelle frontalière 103
10.8 CIDR : routage inter-domaines sans type 104
10.9 Résumé 105
Chapitre 11 UDP : protocole de datagramme utilisateur 107
11.1 Introduction 107
11.2 En-tête UDP 107
11.3 Somme de contrôle UDP 108
11.3.1 Sortie tcpdump 109
11.3.2 Quelques résultats statistiques 109
11.4 Un exemple simple 110
11.5 Fragmentation IP 111
11.6 Erreur ICMP inaccessible (nécessite une fragmentation) 113
11.7 Utiliser Traceroute pour déterminer le chemin MTU 114
11.8 Découverte du chemin MTU à l'aide d'UDP 116
11.9 Interaction entre UDP et ARP 118
11.10 Longueur maximale du datagramme UDP 119
11.11 Erreur de suppression de la station source ICMP 120
11.12 Conception du serveur UDP 122
11.12.1 Adresse IP du client et numéro de port 122
11.12.2 Adresse IP de destination 122
11.12.3 File d'attente d'entrée UDP 122
11.12.4 Restriction des adresses IP locales 124
11.12.5 Restriction des adresses IP distantes 125
11.12.6 Plusieurs récepteurs par port 125
11.13 Résumé 126
Chapitre 12 Diffusion et multidiffusion 128
12.1 Introduction 128
12.2 Diffusion 129
12.2.1 Diffusion restreinte 129
12.2.2 Diffusions vers le réseau 129
12.2.3 Diffusions vers des sous-réseaux 129
12.2.4 Diffusion sur tous les sous-réseaux 130
12.3 Exemple de diffusion 130
12.4 Multidiffusion 132
12.4.1 Adresse du groupe multicast 133
12.4.2 Conversion d'adresse de groupe multicast en adresse Ethernet 133
12.4.3 Multidiffusion dans les réseaux FDDI et Token Ring 134
12.5 Résumé 134
Chapitre 13 IGMP : Protocole de gestion de groupe Internet 136
13.1 Introduction 136
13.2 Messages IGMP 136
13.3 Protocole IGMP 136
13.3.1 Rejoindre un groupe multicast 136
13.3.2 Rapports et requêtes IGMP 137
13.3.3 Détails de mise en œuvre 137
13.3.4 Champ Durée de vie 138
13.3.5 Tous les groupes d'hôtes 138
13.4 Un exemple 138
13.5 Résumé 141
Chapitre 14 DNS : système de noms de domaine 142
14.1 Introduction 142
14.2 Notions de base du DNS 142
14.3 Format des messages DNS 144
14.3.1 Éléments problématiques dans les messages de requête DNS 146
14.3.2 Partie enregistrement de ressource dans le message de réponse DNS 147
14.4 Un exemple simple 147
14.5 Requête de pointeur 150
14.5.1 Exemple 151
14.5.2 Vérification du nom d'hôte 151
14.6 Enregistrements de ressources 152
14.7 Mise en cache 153
14.8 UDP ou TCP 156
14.9 Un autre exemple 156
14.10 Résumé 157
Chapitre 15 TFTP : Protocole de transfert de fichiers simple 159
15.1 Introduction 159
15.2 Accord 159
15.3 Un exemple 160
15.4 Sécurité 161
15.5 Résumé 162
Chapitre 16 BOOTP : Protocole Bootstrap 163
16.1 Introduction 163
16.2 Format de paquet BOOTP 163
16.3 Un exemple 164
16.4 Conception du serveur BOOTP 165
16.5 Routeur traversant BOOTP 167
16.6 Informations spécifiques au fournisseur 167
16.7 Résumé 168
Chapitre 17 TCP : Protocole de contrôle de transmission 170
17.1 Introduction 170
17.2 Services TCP 170
17.3 En-tête TCP 171
17.4 Résumé 173
Chapitre 18 Établissement et terminaison de la connexion TCP 174
18.1 Introduction 174
18.2 Établissement et terminaison de la connexion 174
18.2.1 Sortie tcpdump 174
18.2.2 Séries chronologiques 175
18.2.3 Établir un accord de raccordement 175
18.2.4 Protocole de terminaison de connexion 177
18.2.5 Sortie tcpdump normale 177
18.3 Timeout pour l'établissement de la connexion 178
18.3.1 Premier temps mort 178
18.3.2 Champ Type de service 179
18.4 Longueur maximale des segments 179
18,5 TCP Demi-fermeture 180
18.6 Diagramme de transition d'état TCP 182
18.6.1 État d'attente 2MSL 183
18.6.2 La notion de temps calme 186
18.6.3 État FIN_WAIT_2 186
18.7 Réinitialiser le segment 186
18.7.1 Demande de connexion à un port inexistant 187
18.7.2 Rupture anormale d'une connexion 187
18.7.3 Détection des connexions semi-ouvertes 188
18.8 Ouvrir simultanément 189
18.9 Fermeture simultanée 191
18.10 Options TCP 191
18.11 Conception du serveur TCP 192
18.11.1 Numéro de port du serveur TCP 193
18.11.2 Adresses IP locales qualifiées 194
18.11.3 Adresse IP distante restreinte 195
18.11.4 File d'attente des demandes de connexion entrantes 195
18.12 Résumé 197
Chapitre 19 Flux de données interactif TCP 200
19.1 Introduction 200
19.2 Saisie interactive 200
19.3 Accusé de réception malgré les retards 201
19.4 Algorithme de Nagle 203
19.4.1 Désactiver l'algorithme Nagle 204
19.4.2 Un exemple 205
19.5 Notification de la taille de la fenêtre 207
19.6 Résumé 208
Chapitre 20 Flux de données TCP fragmenté 209
20.1 Introduction 209
20.2 Flux de données normal 209
20.3 Fenêtres coulissantes 212
20.4 Taille de la fenêtre 214
20.5 Logo POUSSER 215
20.6 Démarrage lent 216
20.7 Débit de données fragmentées 218
20.7.1 Produit bande passante-retard 220
20.7.2 Encombrement 220
20.8 Mode d'urgence 221
20.9 Résumé 224
Chapitre 21 Délai d'expiration et retransmission TCP 226
21.1 Introduction 226
21.2 Exemple simple de timeout et de retransmission 226
21.3 Mesure du temps aller-retour 227
21.4 Exemple RTT de temps aller-retour 229
21.4.1 Mesure du temps aller-retour RTT 229
21.4.2 Calcul de l'estimateur RTT 231
21.4.3 Démarrage lent 233
21.5 Exemple d'encombrement 233
21.6 Algorithme d'évitement de congestion 235
21.7 Algorithme de retransmission et de récupération rapide 236
21.8 Exemple de congestion (suite) 237
21,9 Métriques par itinéraire 240
21.10 Erreurs ICMP 240
21.11 Regroupement 243
21.12 Résumé 243
Chapitre 22 Minuterie de persistance TCP 245
22.1 Introduction 245
22.2 Un exemple 245
22.3 Syndrome de la fenêtre confuse 246
22.4 Résumé 250
Chapitre 23 Minuterie de maintien TCP 251
23.1 Introduction 251
23.2 Descriptif 252
23.3 Exemple de maintien en vie 253
23.3.1 Crash de l'autre côté 253
23.3.2 L'autre extrémité plante et redémarre 254
23.3.3 L'autre extrémité est inaccessible 254
23.4 Résumé 255
Chapitre 24 L'avenir et les performances de TCP 256
24.1 Introduction 256
24.2 Découverte du chemin MTU 256
24.2.1 Un exemple 257
24.2.2 Grand groupe ou petit groupe 258
24.3 Pipeline long et gras 259
24.4 Options d'extension de fenêtre 262
24.5 Options d'horodatage 263
24.6 PAWS : Numéro de série pour éviter le bouclage 265
24.7 T/TCP : extensions TCP pour les transactions 265
24.8 Performances TCP 267
24.9 Résumé 268
Chapitre 25 SNMP : Protocole de gestion de réseau simple 270
25.1 Introduction 270
25.2 Accord 270
25.3 Structure de l'information de gestion 272
25.4 Identificateurs d'objets 274
25.5 Introduction à la base d'informations de gestion 274
25.6 Identification des instances 276
25.6.1 Variables simples 276
25.6.2 Tableau 276
25.6.3 Tri par dictionnaire 277
25.7 Quelques exemples simples 277
25.7.1 Variables simples 278
25.7.2 Opération Get-Next 278
25.7.3 Accès aux tables 279
25.8 Base d'informations de gestion (suite) 279
25.8.1 groupe de systèmes 279
25.8.2 groupe d'interfaces 280
25.8.3 au groupe 281
25.8.4 groupe IP 282
25.8.5 groupe ICMP 285
25.8.6 Groupe TCP 285
25.9 Quelques autres exemples 288
25.9.1 Interface MTU 288
25.9.2 Table de routage 288
25.10 piège 290
25.11 ASN.1 et BER 291
25.12 SNMPv2 292
25.13 Résumé 292
Chapitre 26 Telnet et Rlogin : connexion à distance 293
26.1 Introduction 293
26.2 Protocole de connexion 294
26.2.1 Démarrage du processus de candidature 295
26.2.2 Contrôle du débit 295
26.2.3 Touche d'interruption client 296
26.2.4 Modifier la taille de la fenêtre 296
26.2.5 Commandes serveur à client 296
26.2.6 Commandes client à serveur 297
26.2.7 Caractères d'échappement du client 298
26.3 Exemple de connexion Rlogin 298
26.3.1 Protocole client-serveur initial 298
26.3.2 Touche d'interruption client 299
26.4 Protocole Telnet 302
26.4.1 NVT ASCII 302
26.4.2 Commande Telnet 302
26.4.3 Négociation des options 303
26.4.4 Négociation des sous-options 304
26.4.5 Half-duplex, un caractère à la fois, une fois
Une rangée ou mode rangée 304
26.4.6 Signaux de synchronisation 306
26.4.7 Caractères d'échappement du client 306
26.5 Exemple Telnet 306
26.5.1 Mode caractère unique 306
26.5.2 Mode rangée 310
26.5.3 Une rangée à la fois (mode quasi-rangée) 312
26.5.4 Mode ligne : Touche d'interruption client 313
26.6 Résumé 314
Chapitre 27 FTP : Protocole de transfert de fichiers 316
27.1 Introduction 316
27.2 Protocole FTP 316
27.2.1 Représentation des données 316
27.2.2 Commandes FTP 318
27.2.3 Réponses FTP 319
27.2.4 Gestion des connexions 320
27.3 Exemple FTP 321
27.3.1 Gestion des connexions : ports de données temporaires 321
27.3.2 Gestion des connexions : port de données par défaut 323
27.3.3 Transfert de fichiers texte : NVT ASCII
Représentation ou représentation en image 325
27.3.4 Abandon anormal d'un transfert de fichier :
Signal de synchronisation Telnet 326
27.3.5 FTP anonyme 329
27.3.6 FTP anonyme à partir d'une adresse IP inconnue 330
27.4 Résumé 331
Chapitre 28 SMTP : Protocole de transfert de courrier simple 332
28.1 Introduction 332
28.2 Protocole SMTP 332
28.2.1 Exemple simple 332
28.2.2 Commandes SMTP 334
28.2.3 Enveloppe, en-tête et corps 335
28.2.4 Agents relais 335
28.2.5 NVT ASCII 337
28.2.6 Intervalle de nouvelle tentative 337
28.3 Exemple SMTP 337
28.3.1 Enregistrements MX : hôte non directement connecté à
Internet 337
28.3.2 Enregistrements MX : panne de l'hôte 339
28.3.3 Commandes VRFY et EXPN 340
28.4 L'avenir de SMTP 340
28.4.1 Modifications d'enveloppe : SMTP 341 étendu
28.4.2 Modifications d'en-tête : caractères non-ASCII 342
28.4.3 Modifications de texte : Messagerie Internet générale
Extension 343
28.5 Résumé 346
Chapitre 29 Systèmes de fichiers réseau 347
29.1 Introduction 347
29.2 Appel de procédure à distance Sun 347
29.3 XDR : Représentation des données externes 349
29.4 Mappeur de ports 349
29.5 Protocole NFS 351
29.5.1 Descripteurs de fichiers 353
29.5.2 Protocole d'installation 353
29.5.3 Processus NFS 354
29.5.4 UDP ou TCP 355
29.5.5 NFS sur TCP 355
29.6 Instances NFS 356
29.6.1 Exemple simple : lecture d'un fichier 356
29.6.2 Exemple simple : création d'un répertoire 357
29.6.3 Apatride 358
29.6.4 Exemple : Crash du serveur 358
29.6.5 Processus idempotents 360
29.7 Version 3 de NFS 360
29.8 Résumé 361
Chapitre 30 Autres applications TCP/IP 363
30.1 Introduction 363
30.2 Protocole de doigt 363
30.3 Protocole Whois 364
30.4 Archie, WAIS, Gopher, Veronica
et WWW366
30.4.1 Archie 366
30.4.2 WAIS366
30.4.3 Gopher 366
30.4.4 Véronique 366
30.4.5 Web mondial WWW 367
30.5 Système de fenêtre X 367
30.5.1 Programme Xscope 368
30.5.2 LBX : faible bande passante X 370
30.6 Résumé 370
Annexe A Programme tcpdump 371
Annexe B Horloge de l'ordinateur 376
Annexe C programme de chaussettes 378
Solutions à quelques exercices de l'Annexe D 381
Annexe E Options de configuration 395
Annexe F Code source 406 disponible gratuitement
Références 409
Abréviations 420