Cours D'introduction `A TCP/IP
Total Page:16
File Type:pdf, Size:1020Kb
Cours d’introduction `aTCP/IP Fran¸coisLaissus <fr . laissus (`a)laissus . fr> Version du 11 septembre 2005 ii Copyright (c) 1999 - 2005 — Fran¸coisLaissus <fr.laissus[at]laissus.fr> Les sources de ce document sont ´edit´eessous Unix (FreeBSD) `al’aide de l’´editeurde texte vi, et g´er´esavec cvs. L’ensemble du processus de fabrica- tion est d´ecritdans un fichier Makefile (commande make). La mise en forme s’effectue grˆaceau logiciel LATEX. Les figures sont des- sin´eessous X Window (X11) `al’aide du logiciel xfig et int´egr´eesdirectement dans le document final sous forme de PostScript encapsul´e.Les listings des exemples de code C ont ´et´efabriqu´es`al’aide du logiciel a2ps et inclus dans le document final ´egalement en PostScript encapsul´e. La sortie papier a ´et´eimprim´eeen PostScript sur une imprimante de type laser, avec dvips. La version pdf est une transformation du format PostScript `al’aide du logiciel pspdfm, enfin la version HTML est traduite directement en HTML `apartir du format LATEX `al’aide du logiciel latex2html. Tous les outils ou formats cit´esdans ce paragraphe sont en acc`esou usage libre, sans versement de droit `aleurs 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´ede 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`eslibre au format HTML `al’url : http ://www.laissus.fr/cours/cours.html O`uencore au format dvi, compress´eavec gzip : ftp ://ftp.laissus.fr/pub/cours/cours.dvi.gz O`uencore au format PostScript (600 dpi), compress´eavec gzip : ftp ://ftp.laissus.fr/pub/cours/cours.ps.gz Le mˆeme,mais compress´eavec bzip2 : ftp ://ftp.laissus.fr/pub/cours/cours.ps.bz2 O`uencore au format pdf : ftp ://ftp.laissus.fr/pub/cours/cours.pdf Le mˆeme,mais compress´eavec 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 `ala pile ARPA 1 I R´eseauxlocaux 3 1 Pr´eambule . 3 2 G´en´eralit´es- LANs . 3 2.1 G´en´eralit´es . 3 2.2 Mod`elede communication OSI . 4 3 R´eseauxlocaux . 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´eristiquesd’Ethernet . 9 4.2 Diff´erencesEthernet - 802.2/802.3 . 13 5 Interconnexion - Technologie ´el´ementaire . 13 5.1 Raccordement . 14 5.2 R´ep´eteur. 16 5.3 Concentrateur . 17 5.4 Ponts . 18 5.5 Commutateurs . 19 5.6 Passerelles — Routeurs . 21 6 Bibliographie . 22 II Introduction `aIP 23 1 TCP/IP et l’Internet - Un peu d’histoire . 23 2 Caract´eristiquesde 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 MATIERES` III Anatomie d’une adresse IP 31 1 Adressage IP . 31 1.1 Unicit´ede l’adresse . 31 1.2 D´elivrancedes adresses IPv4 . 32 2 Anatomie d’une adresse IP . 33 2.1 D´ecomposition en classes . 33 2.2 Adresses particuli`eres. 35 2.3 Sous-r´eseaux. 36 2.4 CIDR . 38 2.5 Pr´ecisionssur le broadcast . 39 3 Adressage multicast . 40 3.1 Adresse de groupe multicast . 40 3.2 Adresse multicast et adresse MAC . 41 4 Conclusion et bibliographie . 42 IV Protocole IP 45 1 Datagramme IP . 45 1.1 Structure de l’en-tˆete. 45 1.2 Description de l’en-tˆete. 46 1.3 Fragmentation IP . 49 2 Protocole ARP . 52 2.1 Fonctionnement . 52 2.2 Format du datagramme . 54 2.3 Proxy ARP ......................... 55 3 Protocole RARP . 55 4 Protocole ICMP . 56 4.1 Le syst`emede messages d’erreur . 56 4.2 Format des messages ICMP . 57 4.3 Quelques types de messages ICMP ............ 58 5 Protocole IGMP . 60 5.1 Description de l’en-tˆete. 60 5.2 Fonctionnement du protocole . 61 5.3 Fonctionnement du Mbone . 62 6 Routage IP . 63 6.1 Table de routage . 64 6.2 Routage statique . 66 6.3 Routage dynamique . 68 6.4 D´ecouverte de routeur et propagation de routes . 70 6.5 Message ICMP “ redirect ” . 71 6.6 Interface de “ loopback ”................ 72 7 Finalement, comment ¸camarche ? . 73 8 Conclusion sur IP . 75 9 Bibliographie . 76 V Protocole UDP 77 TABLE DES MATIERES` v 1 UDP – User Datagram Protocol . 77 1.1 Identification de la destination . 77 1.2 Description de l’en-tˆete. 79 1.3 Ports r´eserv´es— ports disponibles . 81 2 Bibliographie . 83 VI Protocole TCP 85 1 TCP – Transport Control Protocol . 85 1.1 Caract´eristiquesde TCP . 85 1.2 Description de l’en-tˆete. 87 2 D´ebutet clˆotured’une connexion . 90 2.1 Etablissement´ d’une connexion . 90 2.2 Clˆotured’une connexion . 91 3 Contrˆoledu transport . 93 3.1 M´ecanismede l’acquittement . 93 3.2 Fenˆetresglissantes . 94 4 Compl´ements sur le fonctionnement de TCP ........... 97 4.1 Algorithme de Nagle . 97 4.2 D´epartlent . 98 4.3 Evitement´ de congestion . 98 5 Paquets captur´es,comment´es . 99 6 Bibliographie . 102 B Protocoles applicatifs 103 VII Serveur de noms - DNS 105 1 G´en´eralit´essur le serveur de noms . 105 1.1 Bref historique . 105 1.2 Syst`emehi´erarchis´ede nommage . 106 2 Fonctionnement du DNS . 109 2.1 Convention de nommage . 109 2.2 Le “ Resolver ” . 110 2.3 Strat´egiede fonctionnement . 111 2.4 Hi´erarchie de serveurs . 114 2.5 Conversion d’adresses IP en noms . 114 2.6 Conclusion . 116 3 S´ecurisationdu DNS . 116 3.1 TSIG/TKEY pour s´ecuriserles transferts . 117 3.2 DNSSEC pour s´ecuriserles interrogations . 118 4 Mise `ajour dynamique . 118 5 Format des “ Resource Record ” . 119 5.1 RR de type SOA ...................... 120 5.2 RR de type NS ...................... 120 5.3 RR de type A ....................... 121 5.4 RR de type PTR ...................... 121 vi TABLE DES MATIERES` 5.5 RR de type MX ...................... 121 5.6 RR de type CNAME .................... 122 5.7 Autres RR. 122 6 BIND de l’ISC . 123 6.1 Architecture du daemon “ named ” . 123 7 Bibliographie . 124 VIII Courrier ´electronique 127 1 G´en´eralit´essur le courrier ´electronique . 127 1.1 M´etaphoredu courrier postal . 127 1.2 Adresse ´electronique . 128 2 Format d’un “E-mail” - RFC 822 . 129 3 Protocole SMTP - RFC 821 . 131 3.1 Protocole SMTP ...................... 131 3.2 Principales commandes de SMTP . 133 3.3 Propagation du courrier ´electronique . 135 3.4 Courriers ind´esirables- Le spam . 137 4 Exemple de MTA - “Sendmail” et son environnement . 139 4.1 Relations avec le DNS . 139 4.2 Relations avec l’OS . 141 4.3 Le cas de POP . 144 4.4 Le cas de IMAP . 145 5 Configuration du Sendmail . 145 5.1 R`eglesde re´ecriture. 146 5.2 Exemple de sortie de debug . 148 6 Bibliographie . 149 IX Anatomie d’un serveur Web 151 1 Le protocole HTTP . 151 1.1 Exemple d’´echange avec http .............. 152 1.2 Structure d’un ´echange . 152 2 URIs et URLs . 156 2.1 Scheme http . 156 3 Architecture interne du serveur Apache . 158 3.1 Environnement d’utilisation . 158 3.2 Architecture interne . 160 4 Principe de fonctionnement des CGIs . 171 4.1 CGI — M´ethode GET, sans argument . 171 4.2 CGI — M´ethode GET, avec arguments . 172 4.3 CGI — M´ethode POST . 173 4.4 Ecriture d’une CGI en Perl . 174 5 Conclusion – Bibliographie . 175 X El´ements´ de r´eseaux 177 1 Hˆotesou services virtuels . ..