<HTML> <HEAD> <TITLE>Un mot sur les empilements protocolaires couramment utilisés</TITLE> </HEAD> <BODY> <H1>7. <A NAME="s7"></A>Un mot sur les empilements protocolaires couramment utilisés</H1> <P> <A HREF="Modems-HOWTO.html#toc7">Contenu de cette section</A></P> <P></P> <P>Un tel titre pourrait faire croire à une erreur de mise en page ou de <I>copier-coller</I> étant donné le sujet du document. En fait, il n'en est rien.</P> <P></P> <P>La connexion d'une machine à un fournisseur d'accès à Internet met en jeu un ensemble de protocoles de communications~: TCP, UDP, IP, SLIP, PPP, etc. De nombreux utilisateurs souhaitent réaliser ce type de connexion depuis chez eux, via un modem et rencontrent parfois quelques problèmes de configuration.</P> <P></P> <P>Il est évident qu'il est à la fois difficile et inutile de tout connaître de ces protocoles. Il faut vraiment <I>être du métier</I> pour bien les connaître, et encore~! Cependant il semble raisonnable de penser que la mise en oeuvre de telles connexions, sous Linux par exemple, ne peut se faire dans de bonnes conditions sans un minimum de connaissances sur l'architecture de communication utilisée.</P> <P>La lecture du forum <I>fr.comp.os.linux</I> montre parfois une certaine confusion dans toutes les fonctions mises en oeuvre et qui engendrent inévitablement de mauvais paramétrages.</P> <P></P> <P>Les quelques schémas qui suivent donnent une idée de la façon dont tous ces <I>engrenages</I> sont placés pour que "ça tourne"~!</P> <P></P> <H2>7.1 <A NAME="ss7.1"></A> TCP/UDP/IP</H2> <P></P> <P>Ces sigles sont très fréquemment utilisés aujourd'hui et pour cause~: ces empilements de couches de communications tendent à se répandre à vive allure. C'est à l'origine un ensemble de protocoles développés dans le cadre du projet ARPANET, créé par ARPA (aujourd'hui DARPA), l'agence pour les projets de recherche avancée du Ministère de la Défense des Etats-Unis.</P> <P> <UL> <LI> TCP <SL> Transmission Control Protocol </SL> est une entité de niveau Transport chargée de véhiculer des données de manière fiable entre deux machines souhaitant dialoguer~; </LI> <LI> UDP <SL> User Datagram Protocol</SL> est une entité de niveau Transport chargée de véhiculer des données entre deux machines souhaitant dialoguer~; </LI> <LI> IP <SL> Internet Protocol</SL> est une entité de niveau Réseau chargée de véhiculer des données entre deux noeuds d'un réseau. </LI> </UL> </P> <P></P> <H2>7.2 <A NAME="ss7.2"></A> PPP/SLIP</H2> <P></P> <P>PPP <SL>Point-to-Point Protocol</SL> et SLIP <SL>Serial Line IP</SL> proposent une méthode d'encapsulation des datagrammes IP sur des liaisons point à point, par exemple les lignes asynchrones série. En quelques mots, disons que SLIP est un protocole très simple, assez ancien, datant d'une époque où certains problèmes n'étaient pas aussi importants qu'aujourd'hui~: adressage, identification réciproque, détection et correction d'erreurs, compression (extrait du RFC-1055). PPP est quant à lui beaucoup plus complet et c'est pourquoi il est généralement préféré par les connaisseurs. Il offre toutes ces caractéristiques regroupées en trois sous-ensembles~:</P> <P> <UL> <LI> une méthode d'encapsulation de type HDLC sur circuit commuté ou permanent, synchrone ou asynchrone~; </LI> <LI> un protocole LCP (Link Control Protocol) permettant d'établir, de configurer et de tester une connexion~; </LI> <LI> une famille de protocoles NCP (Network Control Protocols) pour l'établissement et la configuration des protocoles réseaux. </LI> </UL> </P> <P></P> <P></P> <P>Pour obtenir de plus amples renseignements, vous pouvez vous reporter aux documents concernant ces protocoles~: <B>RFC-1055</B> (SLIP), <B>RFC-1171</B> et <B>RFC-1172</B> (PPP) et le <B>PPP-HOWTO</B>.</P> <P></P> <H2>7.3 <A NAME="ss7.3"></A> Mise en oeuvre</H2> <P></P> <P> <BLOCKQUOTE><CODE> <PRE> +----------------+-------+ +--------+ +--------+ +------+ +-----+ | Applications | FTP | | TELNET | | SMTP | | TFTP | | ... | +----------------+---+---+ +---+----+ +--------+ +--+---+ +-----+ | | | | +----------------+---+---------+------++------------+-----+ | Transport | TCP | UDP | +----------------+---------------------+------------------+ | Reseau | | | | IP | | | _____ _____ ______ | | (interfaces) | / eth \ / ppp \ / slip \ | +----------------+-----------------^---------+------------+ | Liaison | LLC | PPP | SLIP | | | MAC | | | +----------------+-------++--------+--------+-+-----------+ || | | +----------------+-------++--------+--------+-+-----------+ | Interfaces | LAN | V.24 | Fonctionnelle | | (non decrit) | V.28 | Electrique | | | ISO.2110 (25 br) | Physique +----------------+-------++--------+--------+-+----------------+ || | | Ethernet +--+ +-+-+-+ Modem ==========| |===== |\ \------- Fddi +--+ \ \_____\ / \|_0_0_| --------- </PRE> </CODE></BLOCKQUOTE> </P> <P>La mise en oeuvre de tels protocoles se fait toujours de bas en haut (des couches basses aux couches hautes) puisque la demande se fait de haut en bas. Prenons un exemple~:</P> <P></P> <P>Supposons que vous souhaitiez faire un <I>ftp</I> de chez vous sur <I>ftp.samachine.fr</I>. L'application <I>ftp</I> demande à TCP d'établir une connexion. Pour qu'elle puisse s'établir, PPP doit déjà fonctionner. Pour que PPP fonctionne, le modem doit être en ligne~:</P> <P></P> <P> <UL> <LI> première étape~: établissement d'une communication entre deux modems. Cette étape est supposée connue, maintenant~; </LI> <LI> deuxième étape~: mise en route de PPP, avec éventuellement authentification~; </LI> <LI> troisième étape~: configuration de l'interface IP correspondante. Il s'agit en général, sous Linux, de l'interface <I>ppp0</I>. Une adresse IP pouvant provenir soit d'une configuration locale, soit de votre fournisseur, est affectée à l'interface. Dans ce dernier cas, celui-ci la fournit lors de l'initialisation PPP. Dans les deux cas, c'est le démon PPP qui configure l'adresse de l'interface~; </LI> <LI> quatrième étape~: établissement d'une connexion TCP, puis initialisation de <I>ftp</I>. A partir de là, si tout s'est bien passé, vous pouvez transférer vos fichiers. <P></P> <P></P> </LI> </UL> </P> <P>Vous pouvez maintenant imaginer le déroulement d'une déconnexion.</P> <P></P> <H2>7.4 <A NAME="ss7.4"></A> Les fichiers de configuration</H2> <P></P> <P></P> <H3>Les applications</H3> <P></P> <P>Vous comprendrez qu'il est difficile de décrire ici l'emplacement des fichiers de configuration des applications. Prenez soin de lire les fichiers README ou INSTALL et d'exécuter l'installation correctement.</P> <P></P> <H3>Les couches de communication : TCP/UDP/IP</H3> <P></P> <P>Pour une configuration standard de votre machine, vous devez compiler le noyau avec les options "réseau" suivantes~:</P> <P> <BLOCKQUOTE><CODE> <PRE> Networking support y Network firewalls n Network aliasing n TCP/IP networking y IP: forwarding/gatewaying n IP: multicasting n IP: accounting n IP: PC/TCP compatibility mode n IP: Reverse ARP n IP: Disable Path MTU Discovery (normally enabled) n IP: Disable NAGLE algorithm (normally enabled) n IP: Drop source routed frames y IP: Allow large windows (not recommended if <16Mb of memory) n The IPX protocol n ... autres protocoles n </PRE> </CODE></BLOCKQUOTE> </P> <P>Le fichier <I>resolv.conf</I> doit contenir~:</P> <P> <BLOCKQUOTE><CODE> <PRE> domain <domaine de votre fournisseur> nameserver <adresse IP du serveur de nom de votre fournisseur> </PRE> </CODE></BLOCKQUOTE> </P> <P></P> <HR> <P> Chapitre <A HREF="Modems-HOWTO-8.html">suivant</A>, Chapitre <A HREF="Modems-HOWTO-6.html">Précédent</A> <P> Table des matières de <A HREF="Modems-HOWTO.html#toc7">ce chapitre</A>, <A HREF="Modems-HOWTO.html#toc">Table des matières</A> générale</P> <P> <A HREF="Modems-HOWTO.html">Début</A> du document, <A HREF="#0"> Début de ce chapitre</A></P> </BODY> </HTML>