Cours d’introduction ` a TCP/IP
Fran¸cois Laissus
< fr . laissus [at] laissus . fr >
Version du 20 f´evrier 2005
ii
Copyright (c) 1999 - 2005 — Fran¸cois Laissus<fr.laissus[at]laissus.fr>
Les sources de ce document sont ´edit´ees sous Unix (FreeBSD) `a l’aide de l’´editeur de texte vi, et g´er´es avec cvs. L’ensemble du processus de fabrica- tion est d´ecrit dans un fichier Makefile(commande make).
La mise en forme s’effectue grˆace au logiciel LATEX. Les figures sont des- sin´ees sous X Window (X11) `a l’aide du logicielxfiget int´egr´ees directement dans le document final sous forme de PostScript encapsul´e. Les listings des exemples de code C ont ´et´e fabriqu´es `a l’aide du logiciel a2pset inclus dans le document final ´egalement enPostScript encapsul´e.
La sortie papier a ´et´e imprim´ee enPostScriptsur une imprimante de type laser, avecdvips. La versionpdfest une transformation du formatPostScript
`a l’aide du logiciel pspdfm, enfin la version HTML est traduite directement en HTML `a partir du format LATEX `a l’aide du logiciel latex2html.
Tous les outils ou formats cit´es dans ce paragraphe sont en acc`es ou usage libre, sans versement de droit `a leurs auteurs respectifs. Qu’ils en soient remerci´es !
Je remercie ´egalement Jean-Jacques Dh´enin et les nombreux lecteurs que je ne connais qu’au travers de leur e-mails, d’avoir bien voulu prendre le temps de relire l’int´egralit´e de ce cours et de me faire part des innombrables erreurs et coquilles typographiques qu’il comportait, merci encore !
Ce support de cours est en acc`es libre au format HTML `a l’url : http ://www.laissus.fr/cours/cours.html O`u encore au format dvi, compress´e avec gzip :
ftp ://ftp.laissus.fr/pub/cours/cours.dvi.gz O`u encore au format PostScript (600 dpi), compress´e avec gzip :
ftp ://ftp.laissus.fr/pub/cours/cours.ps.gz Le mˆeme, mais compress´e avec bzip2 :
ftp ://ftp.laissus.fr/pub/cours/cours.ps.bz2 O`u encore au format pdf :
ftp ://ftp.laissus.fr/pub/cours/cours.pdf Le mˆeme, mais compress´e avec zip:
ftp ://ftp.laissus.fr/pub/cours/cours.pdf.zip
$Revision: 1.9 $ --- $Date: 2005/02/11 17:27:28 $ --- $Author: fla $
Table des mati` eres
Pr´eface xv
A Introduction ` a la pile ARPA 1
I R´eseaux locaux 3
1 Pr´eambule . . . 3
2 G´en´eralit´es - LANs . . . 3
2.1 G´en´eralit´es . . . 3
2.2 Mod`ele de communication ISO . . . 4
3 R´eseaux locaux . . . 7
3.1 Qu’est-ce qu’un LAN ? . . . 7
3.2 WAN - MAN . . . 8
3.3 Communications inter-r´eseaux . . . 8
4 Couche 2 - Liaison (Data Link) . . . 9
4.1 Caract´eristiques d’Ethernet . . . 9
4.2 Diff´erences Ethernet - 802.2/802.3 . . . 12
5 Interconnexion - Technologie ´el´ementaire . . . 13
5.1 Raccordement . . . 13
5.2 R´ep´eteur . . . 16
5.3 Concentrateur . . . 17
5.4 Ponts . . . 18
5.5 Commutateurs . . . 19
5.6 Passerelles — Routeurs . . . 20
6 Bibliographie . . . 22
II Introduction `a IP 23 1 TCP/IP et l’Internet - Un peu d’histoire . . . 23
2 Caract´eristiques de TCP/IP . . . 25
3 Comparaison TCP/IP — ISO . . . 26
3.1 Couche “ Application Layer ” . . . 27
3.2 Couche “ Transport Layer ” . . . 27
3.3 Couche “ Internet Layer ” . . . 27
3.4 Couche “ Network Access ” . . . 28
4 Encapsulation d’IP . . . 28
5 Bibliographie . . . 29
iv TABLE DES MATI`ERES
III Anatomie d’une adresse IP 31
1 Adressage IP . . . 31
1.1 Unicit´e de l’adresse . . . 31
1.2 D´elivrance des adresses IPv4 . . . 32
2 Anatomie d’une adresse IP . . . 33
2.1 D´ecomposition en classes . . . 33
2.2 Adresses particuli`eres . . . 34
2.3 Sous-r´eseaux . . . 35
2.4 CIDR . . . 37
2.5 Pr´ecisions sur le broadcast . . . 38
3 Adressage multicast . . . 39
3.1 Adresse de groupe multicast . . . 39
3.2 Adresse multicast et adresse MAC . . . 40
4 Conclusion et bibliographie . . . 41
IV Protocole IP 43 1 Datagramme IP . . . 43
1.1 Description de l’en-tˆete . . . 44
1.2 Fragmentation IP . . . 47
2 Protocole ARP . . . 50
2.1 Fonctionnement . . . 50
2.2 Format du datagramme . . . 52
2.3 ProxyARP . . . 53
3 Protocole RARP . . . 53
4 Protocole ICMP . . . 54
4.1 Le syst`eme de messages d’erreur . . . 54
4.2 Format des messages ICMP . . . 55
4.3 Quelques types de messages ICMP . . . 56
5 Protocole IGMP . . . 58
5.1 Description de l’en-tˆete . . . 58
5.2 Fonctionnement du protocole . . . 59
5.3 Fonctionnement du Mbone . . . 60
6 Routage IP . . . 61
6.1 Table de routage . . . 62
6.2 Routage statique . . . 64
6.3 Routage dynamique . . . 66
6.4 D´ecouverte de routeur et propagation de routes . . . . 68
6.5 Message ICMP “ redirect ” . . . 69
6.6 Interface de “loopback ” . . . 70
7 Finalement, comment ¸ca marche ? . . . 71
8 Bibliographie . . . 73
V Protocole UDP 75 1 UDP – User Datagram Protocol . . . 75
1.1 Identification de la destination . . . 75
TABLE DES MATI`ERES v
1.2 Description de l’en-tˆete . . . 77
1.3 Ports r´eserv´es — ports disponibles . . . 79
2 Bibliographie . . . 81
VI Protocole TCP 83 1 TCP – Transport Control Protocol . . . 83
1.1 Caract´eristiques de TCP . . . 83
1.2 Description de l’en-tˆete . . . 85
2 D´ebut et clˆoture d’une connexion . . . 88
2.1 Etablissement d’une connexion . . . .´ 88
2.2 Clˆoture d’une connexion . . . 89
3 Contrˆole du transport . . . 91
3.1 M´ecanisme de l’acquittement . . . 91
3.2 Fenˆetres glissantes . . . 92
4 Compl´ements sur le fonctionnement de TCP . . . 95
4.1 Algorithme de Nagle . . . 95
4.2 D´epart lent . . . 96
4.3 Evitement de congestion . . . .´ 96
5 Paquets captur´es, comment´es . . . 97
6 Bibliographie . . . 100
B Protocoles applicatifs 101
VII Serveur de noms - DNS 103 1 G´en´eralit´es sur le serveur de noms . . . 1031.1 Bref historique . . . 103
1.2 Syst`eme hi´erarchis´e de nommage . . . 104
2 Fonctionnement du DNS . . . 107
2.1 Convention de nommage . . . 107
2.2 Le “ Resolver ” . . . 108
2.3 Strat´egie de fonctionnement . . . 109
2.4 Hi´erarchie de serveurs . . . 112
2.5 Conversion d’adresses IP en noms . . . 112
2.6 Conclusion . . . 114
3 S´ecurisation du DNS . . . 114
3.1 TSIG/TKEY pour s´ecuriser les transferts . . . 115
3.2 DNSSEC pour s´ecuriser les interrogations . . . 116
4 Mise `a jour dynamique . . . 116
5 Format des “ Resource Record ” . . . 117
5.1 RR de typeSOA . . . 118
5.2 RR de typeNS . . . 118
5.3 RR de typeA . . . 119
5.4 RR de typePTR . . . 119
5.5 RR de typeMX . . . 119
5.6 RR de typeCNAME . . . 120