Modems-HOWTO Jean Michel VANSTEENE <vanstee@worldnet.net> 13 F�vrier 1996 _________________________________________________________________ _Le modem est devenu aujourd'hui un produit � la mode. Que ce soit pour l'acc�s � Internet ou pour se connecter chez un particulier qui laisse b�n�volement sa machine disponible, il faut un modem. Or, cet appareil, d'apparence fort simple, cache des choses tr�s sophistiqu�es et son emploi peut engendrer bien des soucis. J'ai constat� d'ailleurs que bon nombre d'utilisateurs se posaient des questions � son propos. (Et ceux qui ne s'en posent pas ont parfois des probl�mes qu'ils seraient aptes � r�soudre par eux-m�me, s'ils connaissaient un peu son fonctionnement.) Ce document n'est ni un HOWTO ni une FAQ, ce qui est � priori inhabituel pour un document Linux. J'ai longuement r�fl�chi avant de me lancer dans cette aventure. Parmi mes priorit�s, la premi�re a �t� d'�tre clair et de ne pas tomber dans le genre cours magistral... Le but de ce document est en fait d'�claircir un peu des notions dont on a entendu parler : bande passante, bits/seconde, baud, modulation, interface s�rie, connexions � vingt-huit-huit ... Apr�s avoir lu ce document, de deux choses l'une : soit vous vous dites c'est imbitable, et l� vous sautez sur votre courrier-� pr�f�r� pour m'engueu... me le dire, soit vous pensez que ca vous a apport� quelque-chose et l�, vous sautez sur votre courrier-�... pour me le dire. En tout cas, toute remarque sera la bienvenue, comme d'habitude._ _________________________________________________________________ 1. Introduction La communication a toujours �t�, est et sera toujours un �change de signaux entre un �metteur et un r�cepteur. Afin d'avoir les id�es claires sur ce que nous allons aborder, d�composons les diff�rentes �tapes de la communication. Le meilleur mod�le que nous allons prendre est l'homme qui l'utilise depuis fort longtemps. _Premi�re �tape _: prenons un homme, bien ras� de pr�f�rence, propre et pr�t � se rendre au travail. Justement il a un mot � dire � sa femme avant de partir. C'est l'information � transmettre. _Deuxi�me �tape _: comment la transmettre. Si elle est l�, il crie (bon, il parle), sinon il �crit le message sur un bout de papier. Notre homme est donc capable (voyez-vous �a, il est � peine 7h30 du matin !) de coder son information en fonction de la mani�re dont il transmet son message. Pour communiquer, nous utilisons des �l�ments de base dont l'ensemble forme l'alphabet. Une succession de ces �l�ments d�finit un vocabulaire. En fait il s'agit ni plus ni moins que d'un code, complexe certes, mais compr�hensible par tous ceux qui l'adoptent. Moins il est ambigu, plus il est pr�cis. (Vous pouvez essayer de donner trois sens diff�rents � cette phrase pour comprendre que notre langue est parfois ambigu� : il est �norm�ment b�te .) Pour s'exprimer, il est ensuite capable de d�couper une suite de mots (�l�ments continus) en phon�mes (�l�ments discontinus), que le r�cepteur saura r�assembler. En informatique, l'information de base est _binaire_, donc cod�e sur deux valeurs logiques que l'on note habituellement 0 et 1. C'est le code sans doute le plus �l�mentaire qui soit. Aussi il existe un certain nombre de codes interm�diaires. Nous citerons par exemple le code ASCII, permettant de coder les lettres et chiffres. _Troisi�me �tape _: sa femme d�couvre le message (ou l'entend). Elle est capable de le reconstituer. Les lettres (respectivement les phon�mes) forment des mots qui forment des phrases qui forment le message. Ouf ! On y est. 1.1 R�sumons un peu _D�coupage horizontal_. La communication n'est possible que s'il existe un code commun. � tout niveau il faut s'assurer non seulement que le code employ� a un sens, mais en plus qu'il a le m�me pour l'�metteur et le r�cepteur. On parle alors de _protocole_. Au niveau le plus bas, un signal est utilis� comme un moyen de communication. Il transporte en effet un message sous une forme particuli�re appel� _codage_ ou _modulation_. Un signal a une nature physique et un mod�le math�matique. Nous nous �tendrons davantage sur sa nature que sur le mod�le qui, bien qu'int�ressant, nous am�nerait trop loin. Le signal s'appuie sur un support. _D�coupage vertical_. De l'id�e au code employ� : plusieurs niveaux de traitement sont utilis�s pour transformer un message complexe en �l�ments plus simples aptes � �tre v�hicul�s et compris par une entit� homologue. Or s'il y a un signal, il faut forc�ment un support de transmission, permettant de le v�hiculer d'un point � un autre. Nous verrons cela un peu plus loin. Celui qui nous int�resse concerne les transmissions t�l�phoniques. Voici donc jet�es les bases de la communication. Nous allons maintenant �claircir un peu tout cela dans les diff�rentes parties qui vont suivre. La premi�re �tape consiste � consolider les bases sur les signaux, ensuite nous verrons leur transmission. 2. Un peu de th�orie du signal... La voix est un bon exemple de signal permettant de v�hiculer une information. Ce signal est caract�ris� par sa _bande passante_, c'est-�-dire le domaine de fr�quences sur lequel elle peut s'�tendre. En g�n�ral cette bande est continue et comprise entre 30 et 15000 Hz. Ce signal est de type sinuso�dal. Sans entrer dans des d�tails math�matiques, disons qu'un signal est compos� d'une fr�quence principale et d'harmoniques. Il est possible d'en donner une repr�sentation math�matique gr�ce aux s�ries de Fourier, mais nous n'irons pas plus loin. Disons simplement que ce signal est appel� signal "analogique", parce qu'il peut prendre n'importe quelle valeur de fa�on continue entre deux instants : le signal est "modul�". 2.1 Les supports de transmission Un signal quel qu'il soit, n'a d'int�r�t que s'il peut �tre transport�. Il faut savoir qu'un syst�me de transmission n'est jamais en mesure d'�mettre des signaux sans leur faire subir de d�formations : selon leur nature, on parle de distorsion, d'affaiblissement, de diaphonie ... Comme nous le verrons plus loin, les lignes t�l�phoniques ne font pas exception � cette r�gle. Chaque type de support est caract�ris� entre autres par son aptitude � transmettre un signal plus ou moins fid�lement. De nombreux supports sont utilis�s en transmission de donn�es : les supports avec guide physique (c�bles, fibres, ...) et les supports sans guide physique (ondes radio, ondes lumineuses). Pour donner une id�e, de la qualit� des supports, disons que les c�bles �lectriques � paires torsad�es sont les moins fiables, suivis par les c�bles coaxiaux. Les fibres optiques offrent actuellement le meilleur compromis fiabilit�/performance. 3. Les t�l�communications analogiques et num�riques 3.1 Les t�l�communications analogiques C'est un mode de communication utilis� depuis tr�s longtemps notamment dans la technologie t�l�phonique. Il s'agit en effet d'une activit� beaucoup moins consommatrice de ressources, tant financi�res que technologiques que la transmission num�rique. On n'est pas tout � fait pr�t � pouvoir s'en passer. 3.2 Le signal t�l�phonique � l'origine, le t�l�phone a �t� con�u pour transmettre la voix. Malheureusement, il n'est pas possible, �tant donn� le support utilis�, de v�hiculer le signal complet, c'est-�-dire l'ensemble des fr�quences le constituant. Le domaine de fr�quences (on parle de largeur de bande) que peuvent transmettre les lignes t�l�phoniques est officiellement compris entre 300 et 3400 hertz Les _codecs_ (codeurs-d�codeurs) modernes utilis�s dans les centraux t�l�phoniques actuels ont une bande passante de l'ordre de 200 � 3700 Hz et la qualit� des lignes des abonn�s s'en trouve g�n�ralement am�lior�e. . On applique donc au signal de d�part un _filtre passe-bande_ qui restreint l'espace de fr�quence attribu� � la transmission du signal sur cette liaison. Ceci correspond heureusement � 90% de nettet� de la voix. Selon le principe bien admis que tout traitement a un co�t, le plus simple et le moins co�teux en t�l�communications est de transmettre le signal avec le moins de transformations possible. C'est bien ce qui se passe pour la voix par t�l�phone. Les seules transformations sont d'ordre analogique comme l'amplification par exemple. 3.3 Les t�l�communications num�riques Nous avons d�j� �voqu� pr�c�demment que le fonctionnement de nos chers ordinateurs �tait fond� sur la seule information binaire. Celle-ci est repr�sent�e, d�s lors qu'il s'agit de la visualiser (oscilloscope) ou de la transporter, par un signal rectangulaire � deux niveaux. Pour transporter un tel signal, le plus simple et le moins co�teux consiste � lui faire subir le moins de traitement possible, voire � le transporter tel quel. On imagine ais�ment que pour transmettre ce signal sur un support, il suffise de d�finir deux signaux �lectriques repr�sentant les niveaux logiques 0 et 1. De plus ce type de transmission offre des performances consid�rablement sup�rieures � la transmission analogique, ceci pour deux raisons. La premi�re est un faible taux d'erreurs. En effet, alors qu'en transmission num�rique, les signaux sont transmis avec des tensions d'amplitude variable, en transmission num�rique le nombre de niveaux est limit�. Les signaux parasites s'infiltrant dans un signal analogique sont donc tr�s difficiles � supprimer et engendrent des erreurs. En transmission num�rique, les d�fauts sont plus facilement rep�rables et les �quipements r�g�n�rent plus facilement un signal parasit� ou affaibli. La deuxi�me raison tient au fait que l'on sait mieux traiter une information num�rique. Ainsi, en utilisant les m�thodes de multiplexage, de compression, l'acheminement des donn�es se fait beaucoup plus rapidement. De plus le co�t du mat�riel de traitement diminue consid�rablement. 3.4 Alors pourquoi l'analogique ? Cette question est bien entendu la premi�re que l'on se pose maintenant. La r�ponse tient en quelques mots : essentiellement pour des raisons financi�res. Lorsque les ordinateurs sont organis�s en petits groupes ferm�s, l'infrastructure � mettre en place pour les relier est bien s�r num�rique. Mais d�s lors que les communications s'�tablissent sur de grandes distances, elles doivent empreinter l'infrastructure existante, qui est analogique. L'�volution se fait lentement vers le tout num�rique, Num�ris en est l'exemple prometteur. 3.5 De l'analogique au num�rique et r�ciproquement Puisqu'il faut s'adapter � un monde fait de num�rique et d'analogique, il faut savoir passer de l'un � l'autre. C'est essentiellement ce qui va se passer avec les modems. Faisons d'abord un point rapide sur les m�thodes de conversion entre l'analogique et le num�rique. De l'analogique au num�rique L'information de d�part est repr�sent�e par un signal qui, si on le transforme en tensions �lectriques, peut prendre une infinit� de valeurs (dans un intervalle fini, heureusement !) entre deux instants. Pour le transcrire dans un monde fait d'un nombre limit� de niveaux significatifs, il faut le coder. Un des principes de codage les plus simples consiste � pr�lever � intervalle r�gulier la valeur de la tension, puis de la repr�senter en binaire sur 7 ou 8 bits. Le pr�l�vement est usuellement appel� _�chantillonnage_ et la fr�quence d'�chantillonnage correspond au nombre d'�chantillons pr�lev�s par seconde. Un codeur-d�codeur pr�l�ve en g�n�ral 8000 �chantillons par seconde. Du num�rique � l'analogique A l'inverse, la transformation d'une information num�rique en analogique consiste � moduler un signal de base en fonction de cette information. C'est le r�le du modulateur-d�modulateur (modem). Consid�rons maintenant ce signal de base. S'agissant d'un signal analogique, c'est donc une sinuso�de dont la fr�quence peut varier, dans le cas qui nous int�resse, de 1000 � 2000 hertz. C'est la porteuse. La modulation de ce signal va consister ensuite � en faire varier un ou plusieurs param�tres : la _phase_, _l'amplitude_ ou la _fr�quence_. La modulation d'amplitude consiste � modifier l'amplitude de la porteuse, selon l'information binaire � transmettre. Par exemple une valeur de l'amplitude est attribu�e au 0 et une autre au 1. La modulation de fr�quence correspond � la m�me notion, mais ici les deux valeurs sont repr�sent�es par des fr�quences diff�rentes. Enfin, la modulation de phase, consiste � faire varier la phase de la porteuse, de 45, 135, 225 ou 315 degr�s par exemple. La _rapidit� de modulation_ caract�rise la vitesse � laquelle ces changements s'effectuent. C'est la caract�ristique essentielle qui permet de d�finir la bande passante. Arr�tons-nous l� un instant pour �voquer maintenant la notion de d�bit. Il est en effet facile d'imaginer pouvoir faire varier un signal � volont�, mais ce serait ne pas tenir compte de certaines caract�ristiques physiques des supports qui nous contraignent fortement. 3.6 Des bits et des d�bits Une des valeurs caract�ristique des supports de transmission est le d�bit maximum qu'ils peuvent supporter. Comment s'emp�cher de comparer un support � une route. Le nombre maximum de v�hicules qu'une autoroute est capable de supporter par heure est tr�s sup�rieur � celui d'une route d�partementale (m�me si vous n'aimez pas les routes d�partementales, mais ceci est une autre histoire ...). En ce qui concerne les supports de transmission, leur d�bit maximum est directement li� � la largeur de la bande passante. Chose promise, chose due, pas trop de math�matiques ici. Mais il est impossible de ne pas parler de deux valeurs fondamentales qui vont permettre de comprendre ce qui se passe avec les modems : ce sont le _d�bit binaire maximum_ et la _capacit� de transmission maximale_. Le d�bit binaire maximum Sur un canal de transmission dont la bande passante est B, il est montr� qu'un signal peut �tre enti�rement reconstitu� � l'arriv�e, si on le transmet en prenant 2B �chantillons par seconde. Le d�bit maximum s'�crit alors : Dmax = 2B Si, de plus, le signal peut prendre plus de deux valeurs significatives, la formule se g�n�ralise en : Dmax = 2B log V 2 o� _V_ correspond au nombre de niveaux significatifs (ou �tats) que peut prendre le signal : c'est sa _valence_. Par exemple, V=4 si le signal peut prendre les valeurs +10 volts, +5 volts, -5 volts et -10 volts. Ceci pour vous montrer qu'en th�orie, sur une ligne t�l�phonique dont la bande passante est de 3000 hertz, le d�bit maximum est de 6000 bits/s avec deux niveaux significatifs (un pour le 0, un pour le 1), 12000 bits/s avec quatre niveaux, etc. Le d�bit maximum est th�oriquement infini. La capacit� de transmission maximale Un des inconv�nients suppl�mentaires des supports est le _bruit_. Or la quantit� de bruit pr�sente sur une ligne s'exprime par rapport � la puissance utile du signal transmis : c'est le _rapport signal/bruit_. Plus ce rapport est grand, meilleure est la qualit�. La capacit� de transmission maximale est une fonction de ce rapport. Pour une ligne t�l�phonique, cette capacit� maximale atteint 30000 bits/s. Cela signifie bien que sur ces lignes _on ne peut transmettre � plus de 30000 bits/s_ C'est bien une capacit� maximale physique, � ne pas confondre avec des d�bits logiques apr�s compression de donn�es. quels que soient la valence et la fr�quence du signal. C'est une limite au d�bit binaire maximum. 4. Le modem Le r�le du modem est d'adapter les signaux rectangulaires de donn�es, que le r�seau t�l�phonique ne peut pas transmettre tels quels, en signaux transmissibles par ce r�seau. Il a en fait deux fonctions : * un r�le d'_adaptation du signal_ aux lignes du r�seau utilis�, c'est-�-dire de modulation et de d�modulation ; * un r�le de _dialogue_ avec l'�quipement informatique auquel il est reli�. Il tient donc exactement le m�me r�le fonctionnel qu'une couche de communication (TCP, par exemple). Il poss�de une _interface_ permettant un dialogue avec un utilisateur se trouvant � un niveau sup�rieur. Ici il s'agit d'une interface physique (y compris �lectrique). Il communique avec une entit� paire (un autre modem) selon un _protocole_. La structure interne d'un modem est d�crite ci-dessous : +-----+ +--------+ +-------------+ +----------------+ | J +----->| codeur +-------> | modulateur +------>| | | O | +--------+ +-------------+ | | | N | | | | C | | transformateur | | T | | | | I | | ligne | | O | +----------+ +--------------+ | | | N |<-----+ decodeur |<------+ demodulateur |<-----| | +-----+ +----------+ +--------------+ +----------------+ Les param�tres caract�risant un modem sont : * le _d�bit d'information_ en bits/s ; * le _mode de transmission_ : synchrone ou asynchrone ; * le _support de transmission utilis�_ : r�seau ou ligne sp�cialis�e ; * le _mode de couplage_ � la ligne : �lectrique ou acoustique. Nous aborderons assez rapidement l'ensemble de ces param�tres, selon l'utilisation que nous aurons � en faire. La notion de d�bit devrait maintenant �tre assimil�e. Penchons-nous rapidement sur les modes et les supports de transmission utilis�s. Voyons ensuite plus pr�cis�ment le r�le d'adaptation du signal du modem, puis le dialogue qui met en jeu la jonction et la ligne. Commen�ons par d�finir un vocabulaire commun. 4.1 Vocabulaire Un _avis_ est une recommandation �dict�e par l'U.I.T (Union Internationale des T�l�communications), organisation intergouvernementale comp�tente en t�l�communications. Les avis ont valeur de norme au sein de l'Europe, puisque les organismes de T�l�com nationaux ont encore le monopole. Les recommandations sont issues de travaux de diverses commissions d'�tudes et sont adopt�es lors des assembl�es pleini�res (d�lai de l'ordre de neuf mois, �tant donn� l'�volution rapide des technologies). La section Etat actuel de la normalisation d�crit les diff�rents avis actuellement en vigueur. Dans sa normalisation, l'U.I.T d�finit l'�quipement informatique comme un _ETTD_ (_�quipement Terminal de Traitement de Donn�es_) et le modem comme un _ETCD_ (_�quipement Terminal de Circuit de Donn�es_). La connexion d'un �quipement informatique � un modem, par exemple, est r�alis�e par l'interm�diaire d'une _jonction_ ou _interface_. On appelle half-duplex (bidirectionnel � l'alternat), une transmission s'effectuant dans un seul sens � la fois. On appelle full duplex (bidirectionnel simultan�), une transmission pouvant s'effectuer dans les deux sens en m�me temps. Ces transmissions peuvent avoir lieu indiff�remment sur liaison 2 ou 4 fils. 4.2 Le mode de transmission Une transmission de donn�e est toujours li�e au facteur temps. Dans les transmissions en s�rie qui constituent la majorit� des transmissions, l'�metteur et le r�cepteur doivent travailler � la m�me cadence. Dans le mode _synchrone_, ils sont cal�s sur le m�me rythme gr�ce � des signaux d'horloge �mis avant la transmission. Dans le mode _asynchrone_, l'horloge du r�cepteur n'est d�clench�e puis arr�t�e que sur r�ception de bits de d�but et de fin. On les appelle bits de _start_ et de _stop_. Ce mode, bien que moins performant, est le plus utilis� actuellement dans les communications � travers le r�seau public. 4.3 Le support de transmission ou ligne Un modem est utilisable principalement sur deux types de supports : le _r�seau commut�_ ou la _ligne sp�cialis�e_. Sur chaque type de support, les liaisons peuvent �tre � deux ou quatre fils. Dans le cas qui nous int�resse, le modem est reli� au r�seau t�l�phonique commut� et la liaison est � deux fils. Nous l'utilisons soit en half duplex, soit en full duplex selon l'avis (voir d�finition de ce mot au paragraphe Vocabulaire. A ce propos, r�fl�chissons un peu sur l'utilisation qui est faite actuellement du R�seau T�l�phonique Commut� (appel� aussi RTC). Nous l'utilisons bien souvent en full duplex sur liaison deux fils (avis V.32 ou V.34). Lorsqu'on utilise des lignes � quatre fils, il est facile d'imaginer que l'on consacre deux fils � chaque sens de transmission. Pour chaque sens, consid�rant les vitesses de modulations maximales possibles, on con�oit qu'il faut combiner plusieurs types de modulations pour obtenir des d�bits maintenant courants de l'ordre de 28800 bits/s. Or le RTC n'utilise que _deux_ fils. Pour travailler en full-duplex � des d�bits relativement faibles (en fait jusqu'� l'avis V22 bis), il �tait possible de partager la bande de fr�quence en deux moiti�s, une pour chaque sens. Avec les d�bits employ�s actuellement ce n'est plus possible. Pour travailler en full-duplex � d'importants d�bits, il est fait appel � des algorithmes complexes dits "de suppression d'�cho" (proche et lointain). Imaginez le travail � r�aliser : chaque modem re�oit les donn�es envoy�es par le distant m�lang�es � ses propres donn�es. Le tout est encore pollu� par de l'�cho ! Et pour compliquer le tout, tout ceci varie dans le temps, et bien s�r d'une communication � l'autre. Vous comprendrez donc qu'avec une telle utilisation du RTC, les modems soient continuellement soumis � rude �preuve pour ce qui est de la correction, ceci pouvant conduire � des d�bits variables selon le moment. 4.4 L'adaptation du signal Nous avons vu aux sections pr�c�dentes ce qu'�taient une modulation et un d�bit. Rassemblons maintenant un peu toutes ces id�es. Bien souvent, c'est sur ce point d�licat que les esprits se perdent. Nous avons vu que la rapidit� de modulation est une caract�ristique essentielle de la bande passante. Plus cette rapidit� est grande, plus la bande passante demand�e est large. Sur le r�seau t�l�phonique, la bande maximale officielle est de 3100 hertz (300 � 3400 Hz). Dans les centraux t�l�phoniques modernes, elle va jusqu'� 3500 Hz. Pour bien comprendre le m�canisme de l'adaptation du signal, imaginez maintenant que nous disposions d'un appareil �lectrique capable d'�mettre quatre niveaux de tensions possibles. Les donn�es � transmettre sont quant � elles toujours pr�sent�es sous forme d'un flot ininterrompu (ou presque) d'informations binaires. L'id�e serait de regrouper les bits deux par deux et de les faire passer par ce dispositif, afin d'obtenir en sortie le niveau de tension correspondant. Un tel signal en sortie est dit de _valence_ 4. Plus g�n�ralement, la valence d'un signal est le nombre d'�tats qu'il peut prendre. Cette transformation du signal est appel�e _codage_. Afin d'adapter ce signal de sortie au support, il faut maintenant le moduler, par exemple en choisissant d'effectuer une modulation de phase. Etant donn�e sa valence, nous avons besoin de quatre d�calages de phase. A chaque fois que _deux_ bits se pr�sentent, il est possible d'effectuer _une_ modulation. A l'autre bout, l'�quipement est capable de reg�n�rer deux bits. Le d�bit (en _bits/s_) est donc bien double de la vitesse de modulation (exprim�e en _bauds_). Exemple Vous configurez un modem � 4800 bits par seconde (V.27 ter). Que va-t-il se passer ? Selon cette norme, le modem va r�aliser une modulation de phase diff�rentielle octovalente. Il va donc regrouper les bits par trois (_tribits_) pour moduler le signal. La vitesse de modulation est donc de 1600 bauds et le d�bit de 4800 bits/seconde. Pour obtenir un d�bit de 9600 bits par seconde, il faudra combiner un autre type de modulation. La section D�bits et modulations pr�sente l'essentiel des modulations utilis�es dans les diff�rentes normes actuelles. R�sum� L'adaptation du signal peut se faire de trois mani�res : * par une simple modulation appropri�e ; * par un codage puis une modulation ; * par un simple codage. Ce type d'adaptation est pr�sent dans certains modems dits "bande de base" qui transmettent directement ce code sur la ligne. Ce ne sont pas ceux que nous utilisons couramment. La rapidit� de modulation s'exprime en _bauds_. Elle correspond au nombre de changements d'�tats du signal par seconde sur la ligne de transmission. Une rapidit� de _b_ bauds ne correspond pas forc�ment � _b_ bits/s sur la ligne. Une configuration binaire (un ou plusieurs bits selon la valence) correspond � un �tat du signal. 4.5 Le dialogue Int�ressons-nous maintenant au dialogue entre l'�quipement informatique et la jonction. La jonction s�rie La jonction sp�cifie les caract�ristiques m�caniques, �lectriques et fonctionnelles des signaux. Bien entendu ces jonctions sont normalis�es (voir plus loin les tableaux r�capitulatifs sur l'�tat actuel de la normalisation) et celle qui nous int�resse plus particuli�rement est r�f�renc�e sous le nom V.24 par l'U.I.T, sensiblement �quivalente de la norme RS-232C d�finie par l'E.I.A Electronic Industries Association. . Voici une description des signaux de l'interface V.24 les plus couramment utilis�s : +------+-----------+-----------+--------+------+------------------------------- -+ | Code | No broche | No broche | RS-232 | V.24 | Signification | | | ISO 2110 | DB 9 | | | | +------+-----------+-----------+--------+------+------------------------------- -+ | 101 | 1 | | PG | TP | Terre de protection | | | | | | | | | 102 | 7 | 5 | SG | TS | Terre de signalisation | +------+-----------+-----------+--------+------+------------------------------- -+ | 103 | 2 | 3 | TD | ED | Emission de donnees | | | | | | | | | 104 | 3 | 2 | RD | RD | Reception de donnees | +------+-----------+-----------+--------+------+------------------------------- -+ | 105 | 4 | 7 | RTS | DPE | Demande pour emettre | | | | | | | | | 106 | 5 | 8 | CTS | PAE | Pret a emettre | | | | | | | | | 107 | 6 | 6 | DSR | PDP | Poste de donnees pret | | | | | | | | | 108 | 20 | 4 | DTR | TDP | Terminal de donnees pret | | | | | | | | | 109 | 8 | 1 | DCD | DS | Detection du signal de ligne | +------+-----------+-----------+--------+------+------------------------------- -+ | 125 | 22 | 9 | RI | IA | Indicateur d'appel | +------+-----------+-----------+--------+------+------------------------------- -+ Brochage des prises c�t� soudures : +-----------+ +---------------------------------------+ | 5 4 3 2 1 | | 13 12 11 10 9 8 7 6 5 4 3 2 1 | \ 9 8 7 6 / \ 25 24 23 22 21 20 19 18 17 16 15 14 / `---------' `-------------------------------------' DB 9 ISO IS 2110 Le dialogue proprement dit Prenons deux postes de travail �quip�s d'un modem chacun et souhaitant communiquer. Nous passerons rapidement sur le fait que les �quipements doivent �tre reli�s � la masse. Ceci est r�alis� gr�ce au circuit 101. D'autre part, il est n�cessaire de d�finir une r�f�rence de signalisation : c'est le r�le du circuit 102. D�s sa mise sous tension, l'ETTD pr�sente un �tat logique "1" sur le circuit 108 : _Terminal de Donn�es Pr�t_ (DTR). D�s la mise sous tension de l'ETCD, celui-ci pr�sente l'�tat _Poste de Donn�es Pr�t_ (DSR) correspondant � un �tat logique "1" sur le circuit 107, assurant ainsi que le modem est sous tension et connect� � la ligne. L'ETTD ayant des donn�es � �mettre, demande � �mettre. Il pr�sente sur la jonction l'information _Demande Pour �mettre_ (RTS) sur le circuit 105. Ceci valide le modulateur de l'ETCD qui �met alors une porteuse. Du cot� appel�, l'ETCD d�tecte la pr�sence de la porteuse sur la ligne de transmission et le signale � l'ETTD sur le circuit 109 : _D�tection de signal_ (porteuse). Les circuits 107 et 108 auront �t� initialis�s au pr�alable comme ci-dessus. L'ETTD ayant signal� son intention d'�mettre sur le circuit 105 re�oit en r�ponse peu de temps apr�s le signal _Pr�t � �mettre_ (CTS) sur le circuit 106. Les donn�es peuvent ensuite circuler via les circuits 103 et 104. Le contr�le de flux Lorsqu'un �metteur �met de fa�on syst�matique plus de donn�es que le r�cepteur ne peut en accepter, il se pose alors un probl�me qui ne peut �tre r�solu que gr�ce au m�canisme de _contr�le de flux_. Le contr�le de flux peut �tre de diff�rents types : _logiciel_ Le modem ins�re des caract�res de contr�les dans le flot de donn�es circulant entre l'ETCD et l'ETTD : _XOFF_ pour arr�ter l'envoi et _XON_ pour le reprendre. _mat�riel_ G�n�ralement appel� _CRTSCTS_, il met en oeuvre l'emploi des circuits 105 (RTS) et 106 (CTS). Ce symbole est en fait le nom donn� � la constante du fichier d'inclusion _termios.h_. Le fonctionnement du contr�le de flux mat�riel pendant la transmission peut se r�sumer ainsi : Avant d'�mettre, le terminal doit lever son signal RTS (Request To Send). � partir de ce moment, le modem, s'il est en mesure d'�mettre, l�ve le signal CTS (Clear To Send). Lorsque le buffer du modem est plein, le modem descend CTS. Il le remonte ensuite. Dans l'autre sens de transmission, lorsque le buffer du terminal est plein, le terminal descend RTS. 4.6 La connexion au r�seau t�l�phonique commut� Maintenant, plusieurs questions se posent, et j'imagine que parmi celles que vous vous posez il y a : * et sous Linux, le fonctionnement est-il identique ? * � quel moment le num�ro du correspondant a t-il �t� compos� ? * mon modem est configur� en r�ception/�mission, comment �a marche ? * etc. Nous allons maintenant tenter de r�pondre. Eclaircissons un peu les choses. Le dialogue que nous venons de voir concerne le dialogue _th�orique_ ETTD-ETCD et ETCD-ETTD sans se soucier d'�ventuelles contraintes pouvant provenir du syst�me d'exploitation. Il est toujours vrai. N�anmoins, il ne suffit pas forc�ment pour qu'une communication soit �tablie, notamment via le RTC. Nous allons �tudier ce fonctionnement point par point en prenant un bon syst�me d'exploitation (_Linux_, mais ce n'est qu'un exemple), un bon port s�rie et du courage. Vous continuez ? Tout d'abord, nous avons vu qu'une communication commen�ait toujours par le premier �change DTR/DSR, ou si vous pr�f�rez 108/107. La mont�e du circuit 108 est r�alis�e sous Linux � l'ouverture du port s�rie (ex. fopen ("/dev/ttyS0", ...)). Cela se voit tr�s bien sur un modem externe, le voyant TR est allum�. La r�ponse du modem par le circuit 107 est un peu diff�rente. Dans la section Le dialogue proprement dit, pour des raisons de simplicit�, nous supposions que le modem r�pondait sur le circuit 107 apr�s un d�lai tr�s bref, c'est-�-dire qu'il �tait instantan�ment connect� � la ligne. Cette r�ponse est maintenant conditionn�e par la connexion � la ligne via le r�seau t�l�phonique commut�. Initialisation du modem En g�n�ral, c'est juste apr�s l'ouverture du port s�rie que le modem est initialis�. Cela se fait gr�ce aux commandes AT que nous ne d�taillerons pas. Simplement, ces commandes sont envoy�es au modem (par l'interm�diaire du circuit 103) (ex. write sur le _descripteur de fichier_ du p�riph�rique) et interpr�t�es par lui, lorsque : * le circuit 108 est ferm� (�tat "1") ; * le modem est en mode commande. �tablissement de la connexion L'une des commandes d'initialisation permet la composition d'un num�ro. Le modem d�croche (eh oui, ce terme barbare veut dire que suite � la fermeture du relais, le central local envoie une tonalit� � la fr�quence de 440 Hz :-)) puis compose le num�ro. Sur l'�quipement distant, le circuit 108 est �galement mont�. Le modem appel� d�tecte l'appel. Le signal d'indication d'appel (circuit 125) est utilis� en interne pour m�moriser l'appel, le modem r�alisant donc lui-m�me la connexion � la ligne. Cette m�morisation est maintenue par DTR (jusqu'� d�connexion). � ce moment pr�cis, le modem appel� r�pond en validant son modulateur qui �met la porteuse. Le modem appelant, en �tat de d�crochage et attendant la porteuse, met son �metteur en service. Apr�s n�gociation, le circuit 109 (DCD) est alors valid�. Du c�t� de l'appel�, le circuit 109 est �galement valid�. La prise de contact est termin�e. Les circuits 107 (DSR) des deux modems sont alors mont�s en r�ponse � DTR (asservissement des circuits 107-109). R�ponse automatique ou manuelle Du c�t� de l'appel�, il est possible de mettre le modem en mode r�ponse automatique. Il r�pond alors tout seul � l'appel apr�s quelques sonneries. Le registre S0 des modems est g�n�ralement r�serv� � la configuration de ce mode. Lorsque ce registre contient la valeur 0, (ATS0=0), le modem est en r�ponse manuelle. Sous Linux, c'est assez souvent l'option choisie, et c'est le logiciel (notamment _getty_) qui g�re l'appel. En effet les gestionnaires, de _tty_ tels que _getty_ pr�f�rent prendre en charge la connexion : ce n'est pas au modem � r�pondre � un appel mais � _getty_ lui m�me. Lorsque le modem re�oit un appel, il �met simplement le message _RING_ (bien s�r, si le mode verbeux est bien configur� : ATE1). Sur ce, _getty_ envoie la commande ATA qui valide le mode r�ponse et la porteuse. Enfin, � la fermeture du port, les signaux 108/107 repassent � l'�tat _0_. Voici � titre d'information l'organigramme d'un appel : +---------------------------------------+ | Detection de l'invitation a numeroter | +---------------------------------------+ | +--------------------------+ | Numerotation | +--------------------------+ | +---------------------------------+ | Emission de la tonalite d'appel | +---------------------------------+ | +--------------------------+ +------- NON -----| Detection de tonalite |- OUI | +--------------------------+ | | | | | +--------------+ +--------------------------+ | | Occupe | | Retour d'appel | | +--------------+ +--------------------------+ | | | | | +--------------------------+ +------------------------- NON -------| Detection arret tonalite | | | +--------------------------+ | | | | | +-------------------------------+ | | +-------- NON ----| Detection tonalite de reponse | | | | +-------------------------------+ | | | | | | | +--------------------------+ | | | +-NON--| Prise de contact aboutie | | | | | +--------------------------+ | | | NO | | TIMEOUT | BUSY | | ANSWER | TIMEOUT | CONNECT +--------------------------+ +-------------+ +-------------------------- + | Appel infructueux | | Deconnexion | | Transmission de donnees | +--------------------------+ +-------------+ +-------------------------- + D�connexion Plusieurs m�thodes permettent de mettre fin � un appel : * _Mode commande._ Mettre le modem en mode commande et envoyer la cha�ne +++ATH ; * _Perte de porteuse._ L'une des causes est la d�connexion normale de l'autre modem ; * _Ouverture du circuit 108_ (DTR). C'est la m�thode la plus couramment employ�e. 5. Etat actuel de la normalisation Voici un tableau r�sumant l'�tat actuel de la normalisation concernant les classes de d�bits support�s. +----------+--------------------------------------------+ | Avis | Signification | +----------+--------------------------------------------+ | V.21 | Utilisation sur RTC a 300 bits/s | | | | | V.22 | Utilisation a 1200 bits/s sur RTC 2 fils | | | full duplex | | V.22 bis | idem a 2400 bits/s | | | | | V.23 | Utilisation a 600 ou 1200 bits/s sur RTC | | | ou 1200/75 bits/s | | | | | V.25 et | Composition automatique du numero et/ou | | V.25 bis | reponse automatique a un appel sur RTC | | | | | V.26 | Utilisation a 2400 bits/s sur LS(*) 4 fils | | | | | V.26 bis | Modem 2400 bits/s (1200 en repli) sur RTC | | | | | V.27 | Modem 4800 bits/s pour LS | | | | | V.27 bis | Modem 4800 bits/s (2400 en repli) pour | | | donnees synchrones | | | | | V.27 ter | Modem 4800 bits/s (2400 en repli) meme | | | modulation mais pour le RTC | | | | | V.29 | Modem 9600 bits/s pour LS | | | | | V.32 | 9600 bits/s (4800 en repli) duplex 2 fils | | | sur RTC | | | | | V.32 bis | 14400 bits/s | | | | | V.34 | 28800 bits/s sur RTC | | | | | V.42 | Correction d'erreurs LAP-M et MNP4 | | | | | V.42 bis | Correction d'erreurs + | | | compression de donnees MNP5 | | | | | V.54 | Normalise les boucles de tests | +----------+--------------------------------------------+ * LS = Ligne Specialisee 5.1 � propos du V.42 bis Un tout petit mot � propos de la norme V.42 bis qui permet la compression de donn�es. L'algorithme utilise un dictionnaire de cha�nes de caract�res. Lorsqu'une cha�ne appara�t, un _token_ est transmis qui n'est autre que l'index de cette cha�ne dans le dictionnaire. La longueur maximale d'une cha�ne ainsi que la taille maximale du dictionnaire sont n�goci�es au d�but de la connexion. La norme V.42 bis autorise une longueur de cha�ne comprise entre 6 et 250 caract�res. La taille minimale du dictionnaire est de 512 entr�es (soit 9 bits pour coder le rang d'un entr�e). Le taux maximal de compression dans ce cas est de : 250 * 8 : 9 = 222.2 soit un taux de 222:1. Un bon taux de compression est plus une affaire de taille m�moire et d'efficacit� en fonction des donn�es � coder qu'une affaire de puissance de processeur. 5.2 D�bits et modulations Merci � Christian 'naddy' Weisgerber de son aide pour la r�daction de cette partie. Voici rassembl�s dans les tableaux suivants les d�bits et les modulations correspondantes utilis�s dans les principales normes pour liaisons t�l�phoniques � 2 fils. Les _normes_ qui ne sont pas cit�es ci-apr�s sont peu utilis�es voire oubli�es aujourd'hui (liaisons � 4 fils, V.32 terbo, Bell xxx, V.FC, ZyXEL, HST, PEP... certaines n'�tant d'ailleurs pas de v�ritables normes). +------------------------------------------------------------------------+ | Avis b/s bauds modulation remarques | +------------------------------------------------------------------------+ | V.21 300 300 FSK | | | | V.22 1200 600 DPSK | | | | V.22bis 2400 600 QAM | | | | V.23 1200 1200 FSK | | 600 600 FSK | | 75 75 FSK [1] | | | | V.32 9600 2400 QAM+TCM | | 9600 2400 QAM | | 4800 2400 QAM | | | | V.32bis 14400 2400 QAM+TCM | | 12000 2400 QAM+TCM | | 9600 2400 QAM+TCM | | 7200 2400 QAM+TCM | | 4800 2400 QAM | | | | V.34 (voir tableau suivant) | | | | V.27ter 4800 1600 DPSK | | 2400 1200 DPSK | | | | V.29 9600 2400 QAM | | 7200 2400 QAM | | 4800 2400 QAM [2] | | | | V.17 14400 2400 QAM+TCM | | 12000 2400 QAM+TCM | | 9600 2400 QAM+TCM | | 7200 2400 QAM+TCM | +------------------------------------------------------------------------+ [1] Bande de retour. [2] Pas utilise pour fax. V.21, V.22, V.22bis, V.32, V.32bis, V.34 sont "full duplex". V.27ter, V.29, V.17 sont "half duplex" et utilises pour fax. V.23 est "half duplex" et asymetrique. Les modulations: FSK : Frequency Shift Keying (modulation de frequence) DPSK : Differential Phase Shift Keying (modulation de phase differentielle) QAM : Quadrature Amplitude Modulation (modulation d'amplitude en quadrature) TCM : Trellis Coded Modulation (modulation codee en treillis) Dans le cas de l'avis V.34, les choses se compliquent un peu. Cette norme a des vitesses de modulation obligatoires (2400, 3000, 3200 bauds) et des vitesses facultatives (2743, 2800, 3429 bauds). La modulation est toujours de type QAM (modulation d'amplitude en quadrature) avec une des trois m�thodes TCM choisie par le r�cepteur. Les combinaisons suivantes sont possibles : +-------------------------------------------------------------+ | 2400 2743 2800 3000 3200 3429 bauds | | b/s | +-------------------------------------------------------------+ | 2400 x | | 4800 x x x x x x | | 7200 x x x x x x | | 9600 x x x x x x | | 12000 x x x x x x | | 14400 x x x x x x | | 16800 x x x x x x | | 19200 x x x x x x | | 21600 x x x x x x | | 24000 x x x x x | | 26400 x x x | | 28800 x x | +-------------------------------------------------------------+ 6. Foire Aux Questions _Comment puis-je changer facilement un param�tre de mon port s�rie ?_ La meilleure fa�on de le faire, aussi bien manuellement que dans un script est de rediriger le p�riph�rique sur l'entr�e standard de _stty_. Exemple : stty crtscts < /dev/ttyS0 activera le contr�le de flux mat�riel sur le premier port s�rie utilis� en entr�e. stty -a < /dev/cua0 affichera tous les param�tres du premier port s�rie utilis� en sortie. _Pourquoi faut-il configurer CRTSCTS sur le port s�rie ?_ Pour g�rer le contr�le de flux mat�riel. Ce n'est pas une obligation, c'est une garantie que l'�change de donn�es entre ETTD et ETCD se fera dans les meilleures conditions. Il faut bien entendu que votre modem puisse le faire. Contrairement � une id�e re�ue, si vous mettez l'option CRTSCTS dans le fichier /etc/gettydefs, il n'est pas n�cessaire d'effectuer en plus un stty crtscts </dev/port\#. Par contre, il faut le mettre � la fois dans la partie _initiale_ et _finale_ de gettydefs. Notez qu'il s'agit bien d'un contr�le de flux local, et en aucun cas il ne faut s'inqui�ter de ce que fait le correspondant dans ce domaine. _Je remarque que agetty modifie les droits du fichier /dev/ttyS0, bizarre non ?_ Ca peut effectivement para�tre bizarre. Il s'agit en fait de l'�tablissement d'une _session_ d'utilisation du p�riph�rique. Celui-ci prend alors les droits du "chef" de session (_session leader_) qui se prot�ge ainsi des utilisations du m�me tty par d'autres processus. _Aurais-je acc�s � mon t�l�phone ?_ Cette question a �t� r�ellement pos�e. Si vous n'avez qu'une ligne t�l�phonique, la r�ponse est non. De plus, en d�crochant le combin� t�l�phonique, vous pertuberez la ligne et le modem risque fort de diminuer le d�bit (pour le remonter si tout va bien ensuite). _Lorsque je me connecte chez mon fournisseur, comment mon adresse IP est g�n�r�e ?_ Cette question montre � l'�vidence une confusion entre toutes les notions r�seaux. Bien qu'elle ait �t� pos�e suite � un probl�me relatifs aux modems, la r�ponse ne devrait th�oriquement pas se trouver dans ce document. N�anmoins, le chapitre suivant rappelle quelques principes de base des empilements protocolaires afin de clarifier un peu tout cela. 7. Un mot sur les empilements protocolaires couramment utilis�s Un tel titre pourrait faire croire � une erreur de mise en page ou de _copier-coller_ �tant donn� le sujet du document. En fait, il n'en est rien. 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. Il est �vident qu'il est � la fois difficile et inutile de tout conna�tre de ces protocoles. Il faut vraiment _�tre du m�tier_ 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. La lecture du forum _fr.comp.os.linux_ montre parfois une certaine confusion dans toutes les fonctions mises en oeuvre et qui engendrent in�vitablement de mauvais param�trages. Les quelques sch�mas qui suivent donnent une id�e de la fa�on dont tous ces _engrenages_ sont plac�s pour que "�a tourne" ! 7.1 TCP/UDP/IP 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. * TCP Transmission Control Protocol est une entit� de niveau Transport charg�e de v�hiculer des donn�es de mani�re fiable entre deux machines souhaitant dialoguer ; * UDP User Datagram Protocol est une entit� de niveau Transport charg�e de v�hiculer des donn�es entre deux machines souhaitant dialoguer ; * IP Internet Protocol est une entit� de niveau R�seau charg�e de v�hiculer des donn�es entre deux noeuds d'un r�seau. 7.2 PPP/SLIP PPP Point-to-Point Protocol et SLIP Serial Line IP 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 : * une m�thode d'encapsulation de type HDLC sur circuit commut� ou permanent, synchrone ou asynchrone ; * un protocole LCP (Link Control Protocol) permettant d'�tablir, de configurer et de tester une connexion ; * une famille de protocoles NCP (Network Control Protocols) pour l'�tablissement et la configuration des protocoles r�seaux. Pour obtenir de plus amples renseignements, vous pouvez vous reporter aux documents concernant ces protocoles : _RFC-1055_ (SLIP), _RFC-1171_ et _RFC-1172_ (PPP) et le _PPP-HOWTO_. 7.3 Mise en oeuvre +----------------+-------+ +--------+ +--------+ +------+ +-----+ | 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_| --------- 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 : Supposons que vous souhaitiez faire un _ftp_ de chez vous sur _ftp.samachine.fr_. L'application _ftp_ 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 : * premi�re �tape : �tablissement d'une communication entre deux modems. Cette �tape est suppos�e connue, maintenant ; * deuxi�me �tape : mise en route de PPP, avec �ventuellement authentification ; * troisi�me �tape : configuration de l'interface IP correspondante. Il s'agit en g�n�ral, sous Linux, de l'interface _ppp0_. 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 ; * quatri�me �tape : �tablissement d'une connexion TCP, puis initialisation de _ftp_. A partir de l�, si tout s'est bien pass�, vous pouvez transf�rer vos fichiers. Vous pouvez maintenant imaginer le d�roulement d'une d�connexion. 7.4 Les fichiers de configuration Les applications 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. Les couches de communication : TCP/UDP/IP Pour une configuration standard de votre machine, vous devez compiler le noyau avec les options "r�seau" suivantes : 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 Le fichier _resolv.conf_ doit contenir : domain <domaine de votre fournisseur> nameserver <adresse IP du serveur de nom de votre fournisseur> 8. Le Minitel Bien que ce merveilleux appareil commence � prendre de l'�ge, il est difficile de ne pas en parler un peu, notamment en raison de ses sp�cificit�s. Pourquoi ne pas envisager en effet de faire un serveur Minitel chez vous ou tout simplement de l'utiliser comme terminal. Nous nous contenterons ici d'en donner quelques caract�ristiques int�ressantes dans le cadre d'une utilisation avec Linux. Les STUM 1B Sp�cifications Techniques d'Utilisation du Minitel 1B. d�crivent l'ensemble des caract�ristiques des divers modules du Minitel 1B : * l'�cran ; * le clavier ; * le modem ; * la prise p�ri-informatique. A ce propos, je tiens � votre disposition un sch�ma �lectronique d'un montage permettant l'adaptation RS232-Minitel. Il met en oeuvre le circuit MAX232 permettant une parfaite adaptation des tensions. 8.1 L'�cran Le minitel 1B est capable d'afficher 24 lignes de 40 ou 80 caract�res et 8 couleurs (ou niveaux de gris). Le mode 40 colonnes correspond au standard _Videotex_, le mode 80 colonnes au standard _t�l�-informatique_. C'est en g�n�ral celui-ci que l'on utilisera s'il sert de terminal. Les s�quences de touches permettant de passer d'un mode � l'autre sont indiqu�es dans le tableau suivant dans lequel on retrouvera �galement quelques s�quences utiles : +-------------+----------------------------------+ | Touches | Signification | +-------------+----------------------------------+ | <Fcnt T> A | Mode tele-informatique americain | | | (pas d'accents) | | <Fcnt T> F | Mode tele-informatique francais | | | accents (codage particulier) | | <Fcnt T> V | Mode Videotex | +-------------+----------------------------------+ | <Fcnt T> E | Valide/invalide l'echo local | | | | | <Fcnt E> P | Mode page (retour haut de page | | | en fin d'ecran) | | <Fcnt E> R | Mode rouleau (par defaut) | | | | | <Fcnt C> M | Verouillage minuscules (defaut | | | en mode tele-informatique) | +-------------+----------------------------------+ 8.2 Le clavier Il s'agit d'un clavier _AZERTY_ permettant la saisie de la plupart des caract�res courants pour un terminal. Il est notamment possible de verouiller les minuscules gr�ce � la s�quence <Fcnt C> M. A noter une correspondance, dans le mode t�l�-informatique, de certaines touches : +-------------+-----------------------------------+ | Touches | Correspondance terminal classique | +-------------+-----------------------------------+ | Sommaire | PF1 | | | | | Annulation | PF2 | | | | | Retour | PF3 | | | | | Repetition | PF4 | | | | | Envoi | Enter (Entree) | +-------------+-----------------------------------+ La touche _Entr�e_ correspond �galement � la s�quence de touches <Ctrl J> 8.3 Le modem Le modem du minitel permet des d�bits de 300 � 4800 ou 9600 bits/s Tous les mod�les de minitel n'autorisent pas tous ces d�bits. . Il est associ� � un coupleur travaillant sur 7 bits de donn�es, un bit de parit� paire, un bit de _start_ et un bit de _stop_, soit 10 bits par caract�re. Le tableau suivant donne les s�quences de touches permettant de configurer le modem � ces diff�rents d�bits. +-------------+--------------+ | Touches | Debit | +-------------+--------------+ | <Fcnt P> 3 | 300 bits/s | | | | | <Fcnt P> 1 | 1200 bits/s | | | | | <Fcnt P> 4 | 4800 bits/s | | | | | <Fcnt P> 9 | 9600 bits/s | +-------------+--------------+ En standard V.23, il est possible de _retourner_ le modem (vitesse �mission-r�ception) avec la s�quence <Fcnt M> R. 8.4 Utilisation du Minitel comme simple terminal D'apr�s les conseils avis�s de _Pierre Ficheux_, voici un exemple de configuration permettant de connecter un Minitel : Configuration de getty Une m�thode simple consiste � compiler un _getty_ un peu particulier. Les sources se trouvent dans le paquetage _getty_ps-2.0.7h_, en g�n�ral disponible par _ftp_ (ftp.ibp.fr) sous _/pub/linux/tsx-11/sources/sbin_. Il s'agit ensuite de modifier le fichier _tune.h_ comme suit : #ifdef V23 #define DEF_CFL (CS7|PARENB) /* Pour connexion V.23 */ #else #define DEF_CFL (CS8) /* default word-len/parity */ #endif /* V23 */ Puis de compiler l'ensemble avec l'option -DV23 vous donnant un fichier ex�cutable _uugetty_ que vous pourrez renommer _uugetty_v23_. Ensuite, il faut ajouter quelques entr�es au fichier _/etc/gettydefs_ : # # Pour la connexion V.23 # 9600v23# B9600 CS7 PARENB -PARODD CLOCAL # B9600 SANE -ISTRIP CLOCAL #@S login: #4800v23 4800v23# B4800 CS7 PARENB -PARODD CLOCAL # B4800 SANE -ISTRIP CLOCAL #@S login: #2400v23 2400v23# B2400 CS7 PARENB -PARODD CLOCAL # B2400 SANE -ISTRIP CLOCAL #@S login: #1200v23 1200v23# B1200 CS7 PARENB -PARODD CLOCAL # B1200 SANE -ISTRIP CLOCAL #@S login: #1200v23 Enfin, vous modifiez le fichier _inittab_ de fa�on � d�marrer _uugetty_v23_ comme dans l'exemple ci-dessous : d4:45:respawn:/sbin/uugetty_v23 ttyS1 9600v23 Une solution diff�rente consisterait � seulement modifier _/etc/gettydefs_. La m�thode pr�c�dente ne fait, finalement, que red�finir l'option SANE qui ne comporte pas moins de 16 param�tres, en modifiant l'un d'eux : DEF_CFL. Il est possible de la red�finir par configuration en la rempla�ant par l'ensemble des param�tres, sauf CS8 que l'on remplacera par CS7 PARENB. Les entr�es de _/etc/gettydefs_ sont � modifier comme l'exemple ci-apr�s : # # Pour la connexion V.23 # 9600v23# B9600 CS7 PARENB -PARODD CLOCAL # B9600 ISTRIP CS7 PARENB -PARODD (*) CLOCAL BRKINT IGNPAR ICRNL IXON IXANY OPOST ONLCR CREAD HUPCL ISIG ICANON (*) ECHO ECHOE ECHOK #@S login: #4800v23 (*) a continuer sur la meme ligne [reste du ficher] Bien que cela puisse para�tre lourd, il est pr�f�rable d'utiliser cette m�thode. On a trop tendance � recompiler des sources pour les adapter � trente-six situations alors qu'ils fournissent g�n�ralement un niveau de configurabilit� extr�mement complet et puissant. C'est le cas ici. Les sources de _getty_ pr�voient d'analyser tous ces param�tres, et cela fonctionne parfaitement. 8.5 Utilisation du Minitel pour un acc�s distant Deux cas peuvent se pr�senter : * soit vous souhaitez d�dier votre ligne aux seuls acc�s Minitel, auquel cas il est souhaitable d'envisager de configurer votre syst�me comme ci-dessus. Il faut simplement modifier le fichier _/etc/gettydefs_ en rempla�ant l'option CLOCAL par CRTSCTS dans la premi�re partie (options initiales) et par CRTSCTS HUPCL dans le partie suivante (options finales) ; * soit vous souhaitez seulement _pouvoir_ utiliser le Minitel comme terminal distant, sans que ce soit un acc�s d�di�. Dans ce cas il n'y a rien � faire sur votre syst�me (rien de plus que la configuration que vous avez d�j� d� mettre en place : getty, gettydefs, inittab, ...). Sur le Minitel, il sera pr�f�rable de le configurer en mode t�l�-informatique (<Fcnt T> F). 9. Un modem particulier: le c�ble null-modem Un c�ble _null-modem_ est tout simplement un c�ble inverseur permettant de relier ensemble deux ETTD sans passer par l'interm�diaire de deux ETCD. Il est conforme aux normes du C.C.I.T.T., c'est � dire qu'il simule les diff�rents signaux. Son seul inconv�nient est que la liaison ainsi r�alis�e ne peut d�passer 250 m�tres. Voici le sch�ma du c�ble � r�aliser : +------+-------+---------------------------------+------+-------+ | Code | V.24 | Cablage (No de broche) | Code | V.24 | +------+-------+---------------------------------+------+-------+ | 101 | TP | 1 o-------------------o 1 | 101 | TP | | | | | | | | 102 | TS | 7 o-------------------o 7 | 102 | TS | | | | | | | | 103 | ED | 2 o-------------------o 3 | 104 | RD | | | | | | | | 104 | RD | 3 o-------------------o 2 | 103 | ED | | | | | | | | 105 | DPE | 4 o-| |-o 4 | 105 | DPE | | | | | | | | | | 106 | PAE | 5 o-| |-o 5 | 106 | PAE | | | | \ ,------' | | | | | | -------(---------o 8 | 109 | DS | | 109 | DS | 8 o---------' | | | | | | | | | | 107 | PDP | 6 o------------------o 20 | 108 | TDP | | | | | | | | 108 | TDP | 20 o------------------o 6 | 107 | PDP | | | | | | | +------+-------+---------------------------------+------+-------+ 10. Choix d'un modem Si vous �tes sur le point d'investir dans un modem, il y a au moins trois facteurs d�terminants pour vous : _Le co�t_ Ce facteur est g�n�ralement le plus important. Vous vous �tes certainement fix� une somme que vous ne pourrez d�passer que dans des limites raisonnables (moins de 500 francs environ) et moyennant un service suppl�mentaire non n�gligeable. On trouve � l'heure actuelle d'excellents modems dans une gamme de prix de l'ordre de 1000 FF � 2000 FF. _Le d�bit_ La r�ponse pourrait �tre vague : tout d�pend de l'utilisation. En fait, il semble que la plupart d'entre vous se connectera � Internet et la plupart des fournisseurs proposent d�sormais des acc�s � 28800 bits/s. Il semble raisonnable d'investir dans un tel modem, d'autant plus que leur co�t est rarement sup�rieur � 2000 FF. Vous pouvez d'ailleurs esp�rer gagner un peu sur les temps de connexions lors de transferts de fichiers ou de navigation "WEB". _Le type de modem : interne ou externe_ Pour r�pondre rapidement, on pourrait dire que le modem interne a, en France, tous les d�fauts. Hors de France, il a beaucoup de d�fauts. C'est un avis, il vaut ce qu'il vaut, mais il semble partag� par bon nombre d'utilisateurs : * le premier d�faut est qu'il est interne et occupe donc un emplacement sur le _bus_. En externe le modem est de plus facilement transportable d'un PC � un autre, par exemple ; * le deuxi�me est que notre op�rateur national demande � ce qu'un num�ro soit "br�l�" lorsqu'un appel �choue plusieurs fois. Une fois le num�ro br�l�, le modem refuse de le composer. La seule solution est alors d'�teindre le modem et de recommencer. Au fait, comment �teignez-vous un modem interne ? * le troisi�me est plut�t li� au confort. La plupart des modems externes poss�dent en effet des voyants indiquant l'�tat de la connexion. Il est agr�able de constater rapidement que la connexion est perdue ou que le transfert est perturb�. Le seul inconv�nient du modem externe est qu'il occupe un port s�rie. De plus il vaut mieux poss�der un port s�rie rapide de type 16550A (les 16550 sont bogu�s). Notez cependant que les ports s�rie de type 8250 (les anciens) supportent des d�bits pouvant aller jusqu'� 57600 bits/s. Contrairement � ce que l'on dit, ils ne sont pas si mauvais que cela. Qui est d�j� mont� � des d�bits sup�rieurs ? 11. Quelques chiffres Beaucoup d'utilisateurs se posent des questions sur ce qu'ils peuvent attendre de leur modem et du co�t des communications. Bien souvent, la facture surprend tous les deux mois. 11.1 D�bit r�el Un petit tableau vaut mieux qu'un long discours, voici quelques valeurs de d�bits r�els. Evidemment, il n'est pas tenu compte des probl�mes de lignes, de disponibilit� des serveurs qui r�duisent parfois les taux de transfert effectifs. De plus, les valeurs sont indiqu�es sans compression logicielle. En cas de compression, il faudra multiplier les valeurs par au plus 2, ce qui est d�j� optimiste. Il faut savoir qu'en transmission asynchrone 8 bits, �tant donn�s les bits de _start_ et de _stop_, le rendement est d'environ 80%. +---------------+--------------+-------------------+ | Debit affiche | Debit reel | Ko/s | Mo/heure | +---------------+--------------+--------+----------+ | 9600 b/s | 7680 b/s | 0,96 | 3,4 | | | | | | | 14400 b/s | 11520 b/s | 1,44 | 5,2 | | | | | | | 19200 b/s | 15360 b/s | 1,92 | 6,9 | | | | | | | 21600 b/s | 17280 b/s | 2,16 | 7,8 | | | | | | | 26400 b/s | 21120 b/s | 2,64 | 9,5 | | | | | | | 28800 b/s | 23040 b/s | 2,88 | 10,4 | +---------------+--------------+--------+----------+ 11.2 Co�ts de connexion Le meilleur indicateur pour ce genre de calcul est bien entendu France T�l�com. Essayons ici de d�gager quelques grands chiffres. Les prix sont indiqu�es pour un appel � Paris : +---------------+---------------------------------+ | | Prix / heure de connexion | +---------------+---------------------------------+ | Appel de : | Tarif plein | 50% | 65% | +---------------+-----------------------+---------+ | Paris | 14,84 F | 7,42 F | 5,20 F | | | | | | | Proche | 22,26 F | 11,13 F | 7,79 F | | Banlieue | | | | | | | | | | Province | 127,20 F | 63,60 F | 44,52 F | +---------------+---------------------------------+ Prix de l'unit� T�l�com : 0,742 FF. 12. Envisager d'�crire des applications Vous avez s�rement plein d'id�es d'applications int�ressantes, mais envisager de contr�ler une jonction s�rie vous fait peur ? Voici quelques petites indications. 12.1 Et si c'�tait simple ? Sous Unix, donc sous Linux, les seuls objets manipul�s lors des entr�es/sorties sont les _fichiers_. (Tiens, au fait, on aurait peut-�tre d� commencer par l� ! Bon, vous le saviez d�j�, ce n'est pas un cours Unix). La jonction s�rie n'�chappe pas � cette r�gle et le pilote vous la pr�sente ainsi. Ici, il s'agit d'un (ou plut�t deux comme on le verra plus loin) fichier particulier, bien s�r, puisque se cache derri�re un pilote (_driver_) en mode caract�re, mais la fa�on de r�aliser les entr�es sorties est la m�me : _open, read, write, ioctl, close_. Il y a quand m�me quelques petites choses � savoir. Le pilote s�rie s'est enregistr�, � l'initialisation du noyau, comme un _tty_. Il est donc g�r� comme un tty classique. Il apporte bien entendu quelques caract�ristiques suppl�mentaires que nous verrons rapidement dans la section concernant la commande _ioctl_. Toujours est-il que si vous savez g�rer un _tty_ sous Unix (commande _stty_), vous saurez sans probl�me g�rer ce pilote. open, close La m�thode d'ouverture et de fermeture d'un port s�rie est classique. N�anmoins un m�canisme particulier se cache derri�re la primitive _open_ qui est rapidement d�crit � la section Appels entrants (Dial-in) et appels sortants (Call-out) sous Linux. read, write Rien � signaler de particulier. ioctl Le contr�le de tout syst�me d'entr�e/sortie se fait avec la commande syst�me _ioctl_. Elle est souvent masqu�e par des commandes de haut niveau (setserial, stty, modemstat, ...), mais elle est leur moteur. Selon que vous souhaitez vous adresser aux fonctionnalit�s classiques d'un _tty_ ou aux fonctions sp�cialis�es du pilote s�rie, vous utiliserez deux sous-ensembles de commandes diff�rentes. Vous les retrouverez dans le fichier � inclure _linux/termios.h_. D�crivons-les rapidement (on d�borde un tout petit peu du sujet :-)) : _TCGETS - TCSETS_ et quelques d�riv�s avec WAIT, FLUSH... Elles permettent de r�cup�rer (resp. positionner) les attributs standard _tty_ dans une structure _termios_ (voir le fichier _linux/termios.h_) _TIOCSTTY - TIOCNOTTY_ permettent de d�finir (resp. annuler) une session d'utilisation du _tty_. Ceci est visible car, entre autres choses, une cons�quence est le changement des droits du fichier correspondant Avant: crw-rw-rw- 1 root tty 4, 64 Nov 26 20:47 ttyS0 Apres: crw--w--w- 1 root root 4, 64 Nov 26 20:49 ttyS0 _TCFLSH et compagnie_ positionnement d'indicateurs (voir la commande stty) _TIOCGSERIAL - TIOCSSERIAL_ permettent de r�cup�rer (resp. positionner) les informations g�n�rales dans une (resp. � partir d'une) structure _serial_struct_ (voir le fichier _linux/serial.h_) : le type de port s�rie, la ligne, le port, l'irq le port utilis�... ni plus ni moins ce que fait _setserial_. _TIOCMGET - TIOCMSET_ permettent de r�cup�rer (resp. positionner) les informations plus sp�cifiques � la jonction proprement dite (dans un entier, sous forme de bits positionn�s selon que l'indicateur correspondant est vrai ou faux) : +------------------------------------------------------------------------------ -------------+ | // DSR RNG CAR CTS // // RTS D TR //| | // (Data Set (Ring) (Carrier) (Clear To // // (Request (Data T erminal // | | // Ready) Send) // // To Send) Rea dy) // | +------+----------+-------+----------+-----------+----+----+-----------+------- --------+----+ 31 9 8 7 6 5 4 3 2 1 0 12.2 Appels entrants (Dial-in) et appels sortants (Call-out) sous Linux Introduction Le pilote s�rie du noyau de Linux propose de g�rer un m�me port s�rie � la fois pour les appels entrants et pour les appels sortants exploitant ainsi pleinement leur caract�ristique bi-directionnelle. Il offre donc � l'utilisateur deux types de fichiers : * /dev/ttyS<n> : sont g�n�ralement utilis�s en entr�e ; * /dev/cua<n> : sont g�n�ralement utilis�s en sortie. Gestion Chaque port s�rie est enregistr� deux fois aupr�s du g�rant _tty_ : une fois en mode _entr�e_ (ttyS, majeur 4) et une fois en mode _sortie_ (cua, majeur 5). Voyons rapidement comment le pilote g�re ensuite les "deux" ports : * les ports s�ries /dev/cua sont g�r�s en mode _non-bloquant_. Leur ouverture n'est possible que si la ligne /dev/ttyS correspondante n'est pas ouverte et active (sinon errno retourne EBUSY) ; * les ports s�ries /dev/ttyS sont g�r�s en mode bloquant ou non-bloquant, c'est donc un peu plus compliqu�. Si l'indicateur CLOCAL est positionn�, l'ouverture en mode _bloquant_ est effective si la ligne /dev/cua est libre. Si l'indicateur CLOCAL n'est pas positionn�, elle est effective si les deux conditions suivantes sont r�unies : + la ligne est libre (le /dev/cua correspondant n'est pas utilis�), + la porteuse (circuit 109) a �t� d�tect�e. Dans ce mode et pendant que l'ouverture est bloqu�e, la ligne n'est pas occup�e, ce qui signifie qu'une application peut toujours effectuer un appel sortant. Si le port est en cours de fermeture, l'ouverture �choue (EAGAIN). L'ouverture en mode non-bloquant, quant � elle, est effective si le port n'est pas d�j� ouvert et actif (sinon errno retourne EBUSY) Les applications utilisent de plus le m�canisme des fichiers de verrouillage garantissant l'unicit� d'utilisation de la ressource. . C'est le mode qu'utilisent beaucoup d'applications comme _getty_ qui souhaitent dans un premier temps initialiser la ligne (pour �viter des instabilit�s li�es aux connexions pr�c�dentes) voire ensuite pour initialiser l'�quipement (modem). Elles ne s'int�ressent qu'au fait que la ligne soit occup�e, en fermeture ou libre. Si celle-ci n'est pas libre, l'application se termine et le m�canisme du _respawn_ se charge de les relancer. Pour la gestion de la connexion proprement dite, l'application _getty_ (pour prendre un exemple courant) ouvre la ligne, soit en mode bloquant si vous laissez le modem en r�ponse automatique, soit en mode non-bloquant si vous souhaitez qu'elle g�re activement la connexion. Elle est alors en attente bloquante en lecture (sur _read_). 13. Quelques applications int�ressantes 13.1 Un num�roteur Cette id�e va faire plaisir � _Xavier CAZIN_ : c'est la sienne. Le mieux est de le laisser parler : En fait, je trouverais tr�s utile de cliquer sur un bouton pour appeler une personne retrouv�e dans une base de donn�es par exemple. Surtout si elle se trouve � l'�tranger (minimum 12 chiffres depuis ici). Donc, ce que j'aimerais, ce sont les renseignements n�cessaires au programmeur pour pouvoir construire un frontal qui demande au modem de composer le num�ro choisi, puis affiche un message (si le poste n'est pas occup�) du style "Le t�l�phone sonne, prenez le combin�". Ces petites choses toutes simples demandent de comprendre ce que signifie prendre la ligne et la rel�cher, pour un modem. Excellent exercice. Alors avec tout ce que l'on vient de dire, au travail :-). En laissant de c�t� la partie base de donn�es, l'algorithme � utiliser correspond � _l'organigramme d'un appel_ donn� � titre d'information au chapitre Le modem, auquel il faut rajouter : * au pr�alable, ouvrir le port s�rie (/dev/cua<n>), le configurer. Le mieux est de prendre exemple sur ce que fait _getty_ ; * envoyer ensuite les commandes AT d'initialisation puis de num�rotation (utiliser la fonction chat()) qui fait ceci tr�s bien ; * enfin se mettre en lecture sur le port afin de d�tecter les messages �mis par le modem. Le seul probl�me ici est qu'il sera difficile d'attendre certains d'entre-eux (NO ANSWER, TIMEOUT) �tant donn� qu'il faut pr�venir l'utilisateur qu'il peut d�crocher. Par contre les messages NO DIALTONE (modem pas branch�), et BUSY sont fort int�ressants et permettent d'informer l'utilisateur imm�diatement. 13.2 modemstat et compagnie Vous trouverez sur les _serveurs ftp_ habituels quelques petits programmes permettant d'afficher l'�tat de la jonction. Vous pourrez vous int�resser particuli�rement � la fa�on de r�cup�rer les informations (plut�t que sur l'interface utilisateur qui est l'exemple m�me de ce qu'il ne faut pas faire). /pub/linux/sunsite/system/Serial/modem-stats-1.0.tar.gz /pub/linux/sunsite/system/Serial/statserial-1.1.tar.gz /pub/linux/sunsite/system/Serial/modemstat-0.2.tgz Un bon point pour statserial aussi simple que bien pr�sent�, en mode texte. 13.3 Un d�tecteur de signal 109 (CD) Lu dans _comp.os.linux.development.apps_ cette demande Existe-t-il un utilitaire que je pourrais utiliser dans un _shell-script_ et retournant une valeur, disons 1, si le signal _D�tection de porteuse_ est mont� et 0 sinon ? Le message ne dit pas quel en serait l'usage mais peu importe c'est un excellent exemple d'utilitaire assez facile � r�aliser. Voici d'ailleurs un exemple de code source possible : _________________________________________________________________ ------------------------- debut de carrier.c ------------------------- #include <sys/types.h> #include <sys/stat.h> #include <sys/ioctl.h> #include <termios.h> #include <unistd.h> #include <fcntl.h> #include <string.h> #include <stdlib.h> #include <errno.h> #include <stdio.h> main(int argc, char *argv[]) { char *whoami, *device; int fd; int modem_bits; whoami = (whoami = strrchr(argv[0], '/')) ? whoami + 1 : argv[0]; if (argc != 2) { fprintf(stderr, "Usage: %s device-file\n", whoami); return(EXIT_FAILURE); } device = argv[1]; if ((fd = open(device, O_RDONLY | O_NDELAY)) < 0) { fprintf(stderr, "%s: error opening \"%s\": %s\n", whoami, device, strerror(errno)); return(EXIT_FAILURE); } if (ioctl(fd, TIOCMGET, & modem_bits) < 0) { fprintf(stderr, "%s: error getting modem line statuses for \"%s\": %s\n", whoami, device, strerror(errno)); return(EXIT_FAILURE); } if (modem_bits & TIOCM_CAR) { printf("1\n"); return(EXIT_SUCCESS); } printf("0\n"); return(EXIT_FAILURE); } ------------------------- fin de carrier.c ------------------------- _________________________________________________________________ On pourra ensuite l'utiliser dans un _shell_ de la mani�re suivante : _________________________________________________________________ if [ `carrier /dev/modem` -eq 1 ]; then ... choses a faire si la porteuse est detectee ... else ... choses a faire s'il n'y a pas de porteuse ... fi _________________________________________________________________ 14. Remerciements Ce document n'aurait vu le jour sans un certain nombre de gens fort sympathiques et plein de bonnes id�es appartenant pour la plupart � la mailing list de traduction : Ren� COUGNENC,\\ Xavier CAZIN,\\ Bernard CHOPPY,\\ Fran�ois AUDIBERT\\ Eric DUMAS,\\ Pierre FICHEUX, \\ Herv� MIGNOT, \\ Pierre VASSELLERIE, \\ Jacques LAVIGNOTTE, \\ et tous les autres.