This file is indexed.

/usr/share/doc/HOWTO/fr-html/Modems-HOWTO.html is in doc-linux-fr-html 2013.01-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

   1
   2
   3
   4
   5
   6
   7
   8
   9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  51
  52
  53
  54
  55
  56
  57
  58
  59
  60
  61
  62
  63
  64
  65
  66
  67
  68
  69
  70
  71
  72
  73
  74
  75
  76
  77
  78
  79
  80
  81
  82
  83
  84
  85
  86
  87
  88
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 323
 324
 325
 326
 327
 328
 329
 330
 331
 332
 333
 334
 335
 336
 337
 338
 339
 340
 341
 342
 343
 344
 345
 346
 347
 348
 349
 350
 351
 352
 353
 354
 355
 356
 357
 358
 359
 360
 361
 362
 363
 364
 365
 366
 367
 368
 369
 370
 371
 372
 373
 374
 375
 376
 377
 378
 379
 380
 381
 382
 383
 384
 385
 386
 387
 388
 389
 390
 391
 392
 393
 394
 395
 396
 397
 398
 399
 400
 401
 402
 403
 404
 405
 406
 407
 408
 409
 410
 411
 412
 413
 414
 415
 416
 417
 418
 419
 420
 421
 422
 423
 424
 425
 426
 427
 428
 429
 430
 431
 432
 433
 434
 435
 436
 437
 438
 439
 440
 441
 442
 443
 444
 445
 446
 447
 448
 449
 450
 451
 452
 453
 454
 455
 456
 457
 458
 459
 460
 461
 462
 463
 464
 465
 466
 467
 468
 469
 470
 471
 472
 473
 474
 475
 476
 477
 478
 479
 480
 481
 482
 483
 484
 485
 486
 487
 488
 489
 490
 491
 492
 493
 494
 495
 496
 497
 498
 499
 500
 501
 502
 503
 504
 505
 506
 507
 508
 509
 510
 511
 512
 513
 514
 515
 516
 517
 518
 519
 520
 521
 522
 523
 524
 525
 526
 527
 528
 529
 530
 531
 532
 533
 534
 535
 536
 537
 538
 539
 540
 541
 542
 543
 544
 545
 546
 547
 548
 549
 550
 551
 552
 553
 554
 555
 556
 557
 558
 559
 560
 561
 562
 563
 564
 565
 566
 567
 568
 569
 570
 571
 572
 573
 574
 575
 576
 577
 578
 579
 580
 581
 582
 583
 584
 585
 586
 587
 588
 589
 590
 591
 592
 593
 594
 595
 596
 597
 598
 599
 600
 601
 602
 603
 604
 605
 606
 607
 608
 609
 610
 611
 612
 613
 614
 615
 616
 617
 618
 619
 620
 621
 622
 623
 624
 625
 626
 627
 628
 629
 630
 631
 632
 633
 634
 635
 636
 637
 638
 639
 640
 641
 642
 643
 644
 645
 646
 647
 648
 649
 650
 651
 652
 653
 654
 655
 656
 657
 658
 659
 660
 661
 662
 663
 664
 665
 666
 667
 668
 669
 670
 671
 672
 673
 674
 675
 676
 677
 678
 679
 680
 681
 682
 683
 684
 685
 686
 687
 688
 689
 690
 691
 692
 693
 694
 695
 696
 697
 698
 699
 700
 701
 702
 703
 704
 705
 706
 707
 708
 709
 710
 711
 712
 713
 714
 715
 716
 717
 718
 719
 720
 721
 722
 723
 724
 725
 726
 727
 728
 729
 730
 731
 732
 733
 734
 735
 736
 737
 738
 739
 740
 741
 742
 743
 744
 745
 746
 747
 748
 749
 750
 751
 752
 753
 754
 755
 756
 757
 758
 759
 760
 761
 762
 763
 764
 765
 766
 767
 768
 769
 770
 771
 772
 773
 774
 775
 776
 777
 778
 779
 780
 781
 782
 783
 784
 785
 786
 787
 788
 789
 790
 791
 792
 793
 794
 795
 796
 797
 798
 799
 800
 801
 802
 803
 804
 805
 806
 807
 808
 809
 810
 811
 812
 813
 814
 815
 816
 817
 818
 819
 820
 821
 822
 823
 824
 825
 826
 827
 828
 829
 830
 831
 832
 833
 834
 835
 836
 837
 838
 839
 840
 841
 842
 843
 844
 845
 846
 847
 848
 849
 850
 851
 852
 853
 854
 855
 856
 857
 858
 859
 860
 861
 862
 863
 864
 865
 866
 867
 868
 869
 870
 871
 872
 873
 874
 875
 876
 877
 878
 879
 880
 881
 882
 883
 884
 885
 886
 887
 888
 889
 890
 891
 892
 893
 894
 895
 896
 897
 898
 899
 900
 901
 902
 903
 904
 905
 906
 907
 908
 909
 910
 911
 912
 913
 914
 915
 916
 917
 918
 919
 920
 921
 922
 923
 924
 925
 926
 927
 928
 929
 930
 931
 932
 933
 934
 935
 936
 937
 938
 939
 940
 941
 942
 943
 944
 945
 946
 947
 948
 949
 950
 951
 952
 953
 954
 955
 956
 957
 958
 959
 960
 961
 962
 963
 964
 965
 966
 967
 968
 969
 970
 971
 972
 973
 974
 975
 976
 977
 978
 979
 980
 981
 982
 983
 984
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux (vers 25 March 2009), see www.w3.org">
<meta name="GENERATOR" content="LinuxDoc-Tools 0.9.69">
<title>Modems-HOWTO</title>
</head>
<body>
<h1>Modems-HOWTO</h1>
<h2>Jean Michel VANSTEENE &lt;vanstee@worldnet.net&gt;</h2>
13 F&eacute;vrier 1996
<hr>
<em>Le modem est devenu aujourd'hui un produit &agrave; la mode.
Que ce soit pour l'acc&egrave;s &agrave; Internet ou pour se
connecter chez un particulier qui laisse b&eacute;n&eacute;volement
sa machine disponible, il faut un modem. Or, cet appareil,
d'apparence fort simple, cache des choses tr&egrave;s
sophistiqu&eacute;es et son emploi peut engendrer bien des soucis.
J'ai constat&eacute; d'ailleurs que bon nombre d'utilisateurs se
posaient des questions &agrave; son propos. (Et ceux qui ne s'en
posent pas ont parfois des probl&egrave;mes qu'ils seraient aptes
&agrave; r&eacute;soudre par eux-m&ecirc;me, s'ils connaissaient un
peu son fonctionnement.) Ce document n'est ni un HOWTO ni une FAQ,
ce qui est &agrave; priori inhabituel pour un document Linux. J'ai
longuement r&eacute;fl&eacute;chi avant de me lancer dans cette
aventure. Parmi mes priorit&eacute;s, la premi&egrave;re a
&eacute;t&eacute; d'&ecirc;tre clair et de ne pas tomber dans le
genre cours magistral... Le but de ce document est en fait
d'&eacute;claircir un peu des notions <i>dont on a entendu
parler</i>&nbsp;: bande passante, bits/seconde, baud, modulation,
interface s&eacute;rie, connexions &agrave;
vingt-huit-huit&nbsp;... Apr&egrave;s avoir lu ce document, de deux
choses l'une&nbsp;: soit vous vous dites <i>c'est imbitable</i>, et
l&agrave; vous sautez sur votre courrier-&eacute;
pr&eacute;f&eacute;r&eacute; pour m'engueu... me le dire, soit vous
pensez que ca vous a apport&eacute; quelque-chose et l&agrave;,
vous sautez sur votre courrier-&eacute;... pour me le dire. En tout
cas, toute remarque sera la bienvenue, comme d'habitude.</em>
<hr>
<h2><a name="s1">1. Introduction</a></h2>
<p>La communication a toujours &eacute;t&eacute;, est et sera
toujours un &eacute;change de signaux entre un &eacute;metteur et
un r&eacute;cepteur. Afin d'avoir les id&eacute;es claires sur ce
que nous allons aborder, d&eacute;composons les diff&eacute;rentes
&eacute;tapes de la communication. Le meilleur mod&egrave;le que
nous allons prendre est l'homme qui l'utilise depuis fort
longtemps.</p>
<p><b>Premi&egrave;re &eacute;tape&nbsp;</b>: prenons un homme,
bien ras&eacute; de pr&eacute;f&eacute;rence, propre et pr&ecirc;t
&agrave; se rendre au travail. Justement il a un mot &agrave; dire
&agrave; sa femme avant de partir. C'est l'information &agrave;
transmettre.</p>
<p><b>Deuxi&egrave;me &eacute;tape&nbsp;</b>: comment la
transmettre. Si elle est l&agrave;, il crie (bon, il parle), sinon
il &eacute;crit le message sur un bout de papier. Notre homme est
donc capable (voyez-vous &ccedil;a, il est &agrave; peine 7h30 du
matin&nbsp;!) de coder son information en fonction de la
mani&egrave;re dont il transmet son message.</p>
<p>Pour communiquer, nous utilisons des &eacute;l&eacute;ments de
base dont l'ensemble forme l'alphabet. Une succession de ces
&eacute;l&eacute;ments d&eacute;finit un vocabulaire. En fait il
s'agit ni plus ni moins que d'un code, complexe certes, mais
compr&eacute;hensible par tous ceux qui l'adoptent. Moins il est
ambigu, plus il est pr&eacute;cis. (Vous pouvez essayer de donner
trois sens diff&eacute;rents &agrave; cette phrase pour comprendre
que notre langue est parfois ambigu&euml;&nbsp;: il est
&eacute;norm&eacute;ment b&ecirc;te&nbsp;.) Pour s'exprimer, il est
ensuite capable de d&eacute;couper une suite de mots
(&eacute;l&eacute;ments continus) en phon&egrave;mes
(&eacute;l&eacute;ments discontinus), que le r&eacute;cepteur saura
r&eacute;assembler.</p>
<p>En informatique, l'information de base est <b>binaire</b>, donc
cod&eacute;e sur deux valeurs logiques que l'on note habituellement
0 et 1. C'est le code sans doute le plus &eacute;l&eacute;mentaire
qui soit. Aussi il existe un certain nombre de codes
interm&eacute;diaires. Nous citerons par exemple le code ASCII,
permettant de coder les lettres et chiffres.</p>
<p><b>Troisi&egrave;me &eacute;tape&nbsp;</b>: sa femme
d&eacute;couvre le message (ou l'entend). Elle est capable de le
reconstituer. Les lettres (respectivement les phon&egrave;mes)
forment des mots qui forment des phrases qui forment le message.
Ouf&nbsp;! On y est.</p>
<h2><a name="ss1.1">1.1 R&eacute;sumons un peu</a></h2>
<p><b>D&eacute;coupage horizontal</b>. La communication n'est
possible que s'il existe un code commun. &Agrave; tout niveau il
faut s'assurer non seulement que le code employ&eacute; a un sens,
mais en plus qu'il a le m&ecirc;me pour l'&eacute;metteur et le
r&eacute;cepteur. On parle alors de <i>protocole</i>. Au niveau le
plus bas, un signal est utilis&eacute; comme un moyen de
communication. Il transporte en effet un message sous une forme
particuli&egrave;re appel&eacute; <i>codage</i> ou
<i>modulation</i>. Un signal a une nature physique et un
mod&egrave;le math&eacute;matique. Nous nous &eacute;tendrons
davantage sur sa nature que sur le mod&egrave;le qui, bien
qu'int&eacute;ressant, nous am&egrave;nerait trop loin. Le signal
s'appuie sur un support.</p>
<p><b>D&eacute;coupage vertical</b>. De l'id&eacute;e au code
employ&eacute;&nbsp;: plusieurs niveaux de traitement sont
utilis&eacute;s pour transformer un message complexe en
&eacute;l&eacute;ments plus simples aptes &agrave; &ecirc;tre
v&eacute;hicul&eacute;s et compris par une entit&eacute;
homologue.</p>
<p>Or s'il y a un signal, il faut forc&eacute;ment un support de
transmission, permettant de le v&eacute;hiculer d'un point &agrave;
un autre. Nous verrons cela un peu plus loin. Celui qui nous
int&eacute;resse concerne les transmissions
t&eacute;l&eacute;phoniques.</p>
<p>Voici donc jet&eacute;es les bases de la communication. Nous
allons maintenant &eacute;claircir un peu tout cela dans les
diff&eacute;rentes parties qui vont suivre. La premi&egrave;re
&eacute;tape consiste &agrave; consolider les bases sur les
signaux, ensuite nous verrons leur transmission.</p>
<h2><a name="s2">2. Un peu de th&eacute;orie du signal...</a></h2>
<p>La voix est un bon exemple de signal permettant de
v&eacute;hiculer une information. Ce signal est
caract&eacute;ris&eacute; par sa <b>bande passante</b>,
c'est-&agrave;-dire le domaine de fr&eacute;quences sur lequel elle
peut s'&eacute;tendre. En g&eacute;n&eacute;ral cette bande est
continue et comprise entre 30 et 15000 Hz. Ce signal est de type
sinuso&iuml;dal.</p>
<p>Sans entrer dans des d&eacute;tails math&eacute;matiques, disons
qu'un signal est compos&eacute; d'une fr&eacute;quence principale
et d'harmoniques. Il est possible d'en donner une
repr&eacute;sentation math&eacute;matique gr&acirc;ce aux
s&eacute;ries de Fourier, mais nous n'irons pas plus loin. Disons
simplement que ce signal est appel&eacute; signal "analogique",
parce qu'il peut prendre n'importe quelle valeur de fa&ccedil;on
continue entre deux instants&nbsp;: le signal est
"modul&eacute;".</p>
<h2><a name="ss2.1">2.1 Les supports de transmission</a></h2>
<p>Un signal quel qu'il soit, n'a d'int&eacute;r&ecirc;t que s'il
peut &ecirc;tre transport&eacute;. Il faut savoir qu'un
syst&egrave;me de transmission n'est jamais en mesure
d'&eacute;mettre des signaux sans leur faire subir de
d&eacute;formations&nbsp;: selon leur nature, on parle de
distorsion, d'affaiblissement, de diaphonie&nbsp;... Comme nous le
verrons plus loin, les lignes t&eacute;l&eacute;phoniques ne font
pas exception &agrave; cette r&egrave;gle.</p>
<p>Chaque type de support est caract&eacute;ris&eacute; entre
autres par son aptitude &agrave; transmettre un signal plus ou
moins fid&egrave;lement. De nombreux supports sont utilis&eacute;s
en transmission de donn&eacute;es&nbsp;: les supports avec guide
physique (c&acirc;bles, fibres, ...) et les supports sans guide
physique (ondes radio, ondes lumineuses). Pour donner une
id&eacute;e, de la qualit&eacute; des supports, disons que les
c&acirc;bles &eacute;lectriques &agrave; paires torsad&eacute;es
sont les moins fiables, suivis par les c&acirc;bles coaxiaux. Les
fibres optiques offrent actuellement le meilleur compromis
fiabilit&eacute;/performance.</p>
<h2><a name="s3">3. Les t&eacute;l&eacute;communications
analogiques et num&eacute;riques</a></h2>
<h2><a name="ss3.1">3.1 Les t&eacute;l&eacute;communications
analogiques</a></h2>
<p>C'est un mode de communication utilis&eacute; depuis tr&egrave;s
longtemps notamment dans la technologie t&eacute;l&eacute;phonique.
Il s'agit en effet d'une activit&eacute; beaucoup moins
consommatrice de ressources, tant financi&egrave;res que
technologiques que la transmission num&eacute;rique. On n'est pas
tout &agrave; fait pr&ecirc;t &agrave; pouvoir s'en passer.</p>
<h2><a name="ss3.2">3.2 Le signal
t&eacute;l&eacute;phonique</a></h2>
<p>&Agrave; l'origine, le t&eacute;l&eacute;phone a
&eacute;t&eacute; con&ccedil;u pour transmettre la voix.
Malheureusement, il n'est pas possible, &eacute;tant donn&eacute;
le support utilis&eacute;, de v&eacute;hiculer le signal complet,
c'est-&agrave;-dire l'ensemble des fr&eacute;quences le
constituant. Le domaine de fr&eacute;quences (on parle de largeur
de bande) que peuvent transmettre les lignes
t&eacute;l&eacute;phoniques est officiellement compris entre 300 et
3400 hertz</p>
<blockquote>Les <i>codecs</i> (codeurs-d&eacute;codeurs) modernes
utilis&eacute;s dans les centraux t&eacute;l&eacute;phoniques
actuels ont une bande passante de l'ordre de 200 &agrave; 3700 Hz
et la qualit&eacute; des lignes des abonn&eacute;s s'en trouve
g&eacute;n&eacute;ralement am&eacute;lior&eacute;e.</blockquote>
. On applique donc au signal de d&eacute;part un <i>filtre
passe-bande</i> qui restreint l'espace de fr&eacute;quence
attribu&eacute; &agrave; la transmission du signal sur cette
liaison. Ceci correspond heureusement &agrave; 90% de
nettet&eacute; de la voix.
<p>Selon le principe bien admis que tout traitement a un
co&ucirc;t, le plus simple et le moins co&ucirc;teux en
t&eacute;l&eacute;communications est de transmettre le signal avec
le moins de transformations possible. C'est bien ce qui se passe
pour la voix par t&eacute;l&eacute;phone. Les seules
transformations sont d'ordre analogique comme l'amplification par
exemple.</p>
<h2><a name="ss3.3">3.3 Les t&eacute;l&eacute;communications
num&eacute;riques</a></h2>
<p>Nous avons d&eacute;j&agrave; &eacute;voqu&eacute;
pr&eacute;c&eacute;demment que le fonctionnement de nos chers
ordinateurs &eacute;tait fond&eacute; sur la seule information
binaire. Celle-ci est repr&eacute;sent&eacute;e, d&egrave;s lors
qu'il s'agit de la visualiser (oscilloscope) ou de la transporter,
par un signal rectangulaire &agrave; deux niveaux.</p>
<p>Pour transporter un tel signal, le plus simple et le moins
co&ucirc;teux consiste &agrave; lui faire subir le moins de
traitement possible, voire &agrave; le transporter tel quel. On
imagine ais&eacute;ment que pour transmettre ce signal sur un
support, il suffise de d&eacute;finir deux signaux
&eacute;lectriques repr&eacute;sentant les niveaux logiques 0 et 1.
De plus ce type de transmission offre des performances
consid&eacute;rablement sup&eacute;rieures &agrave; la transmission
analogique, ceci pour deux raisons.</p>
<p>La premi&egrave;re est un faible taux d'erreurs. En effet, alors
qu'en transmission num&eacute;rique, les signaux sont transmis avec
des tensions d'amplitude variable, en transmission num&eacute;rique
le nombre de niveaux est limit&eacute;. Les signaux parasites
s'infiltrant dans un signal analogique sont donc tr&egrave;s
difficiles &agrave; supprimer et engendrent des erreurs. En
transmission num&eacute;rique, les d&eacute;fauts sont plus
facilement rep&eacute;rables et les &eacute;quipements
r&eacute;g&eacute;n&egrave;rent plus facilement un signal
parasit&eacute; ou affaibli.</p>
<p>La deuxi&egrave;me raison tient au fait que l'on sait mieux
traiter une information num&eacute;rique. Ainsi, en utilisant les
m&eacute;thodes de multiplexage, de compression, l'acheminement des
donn&eacute;es se fait beaucoup plus rapidement. De plus le
co&ucirc;t du mat&eacute;riel de traitement diminue
consid&eacute;rablement.</p>
<h2><a name="ss3.4">3.4 Alors pourquoi l'analogique ?</a></h2>
<p>Cette question est bien entendu la premi&egrave;re que l'on se
pose maintenant. La r&eacute;ponse tient en quelques mots&nbsp;:
essentiellement pour des raisons financi&egrave;res. Lorsque les
ordinateurs sont organis&eacute;s en petits groupes ferm&eacute;s,
l'infrastructure &agrave; mettre en place pour les relier est bien
s&ucirc;r num&eacute;rique. Mais d&egrave;s lors que les
communications s'&eacute;tablissent sur de grandes distances, elles
doivent empreinter l'infrastructure existante, qui est analogique.
L'&eacute;volution se fait lentement vers le tout num&eacute;rique,
Num&eacute;ris en est l'exemple prometteur.</p>
<h2><a name="ss3.5">3.5 De l'analogique au num&eacute;rique et
r&eacute;ciproquement</a></h2>
<p>Puisqu'il faut s'adapter &agrave; un monde fait de
num&eacute;rique et d'analogique, il faut savoir passer de l'un
&agrave; l'autre. C'est essentiellement ce qui va se passer avec
les modems. Faisons d'abord un point rapide sur les m&eacute;thodes
de conversion entre l'analogique et le num&eacute;rique.</p>
<h3>De l'analogique au num&eacute;rique</h3>
<p>L'information de d&eacute;part est repr&eacute;sent&eacute;e par
un signal qui, si on le transforme en tensions &eacute;lectriques,
peut prendre une infinit&eacute; de valeurs (dans un intervalle
fini, heureusement&nbsp;!) entre deux instants. Pour le transcrire
dans un monde fait d'un nombre limit&eacute; de niveaux
significatifs, il faut le coder. Un des principes de codage les
plus simples consiste &agrave; pr&eacute;lever &agrave; intervalle
r&eacute;gulier la valeur de la tension, puis de la
repr&eacute;senter en binaire sur 7 ou 8 bits. Le
pr&eacute;l&egrave;vement est usuellement appel&eacute;
<i>&eacute;chantillonnage</i> et la fr&eacute;quence
d'&eacute;chantillonnage correspond au nombre d'&eacute;chantillons
pr&eacute;lev&eacute;s par seconde. Un codeur-d&eacute;codeur
pr&eacute;l&egrave;ve en g&eacute;n&eacute;ral 8000
&eacute;chantillons par seconde.</p>
<h3>Du num&eacute;rique &agrave; l'analogique</h3>
<p>A l'inverse, la transformation d'une information
num&eacute;rique en analogique consiste &agrave; moduler un signal
de base en fonction de cette information. C'est le r&ocirc;le du
modulateur-d&eacute;modulateur (modem).</p>
<p>Consid&eacute;rons maintenant ce signal de base. S'agissant d'un
signal analogique, c'est donc une sinuso&iuml;de dont la
fr&eacute;quence peut varier, dans le cas qui nous
int&eacute;resse, de 1000 &agrave; 2000 hertz. C'est la porteuse.
La modulation de ce signal va consister ensuite &agrave; en faire
varier un ou plusieurs param&egrave;tres&nbsp;: la <b>phase</b>,
<b>l'amplitude</b> ou la <b>fr&eacute;quence</b>.</p>
<p>La modulation d'amplitude consiste &agrave; modifier l'amplitude
de la porteuse, selon l'information binaire &agrave; transmettre.
Par exemple une valeur de l'amplitude est attribu&eacute;e au 0 et
une autre au 1.</p>
<p>La modulation de fr&eacute;quence correspond &agrave; la
m&ecirc;me notion, mais ici les deux valeurs sont
repr&eacute;sent&eacute;es par des fr&eacute;quences
diff&eacute;rentes.</p>
<p>Enfin, la modulation de phase, consiste &agrave; faire varier la
phase de la porteuse, de 45, 135, 225 ou 315 degr&eacute;s par
exemple.</p>
<p>La <b>rapidit&eacute; de modulation</b> caract&eacute;rise la
vitesse &agrave; laquelle ces changements s'effectuent. C'est la
caract&eacute;ristique essentielle qui permet de d&eacute;finir la
bande passante.</p>
<p>Arr&ecirc;tons-nous l&agrave; un instant pour &eacute;voquer
maintenant la notion de d&eacute;bit. Il est en effet facile
d'imaginer pouvoir faire varier un signal &agrave; volont&eacute;,
mais ce serait ne pas tenir compte de certaines
caract&eacute;ristiques physiques des supports qui nous
contraignent fortement.</p>
<h2><a name="ss3.6">3.6 Des bits et des d&eacute;bits</a></h2>
<p>Une des valeurs caract&eacute;ristique des supports de
transmission est le d&eacute;bit maximum qu'ils peuvent supporter.
Comment s'emp&ecirc;cher de comparer un support &agrave; une route.
Le nombre maximum de v&eacute;hicules qu'une autoroute est capable
de supporter par heure est tr&egrave;s sup&eacute;rieur &agrave;
celui d'une route d&eacute;partementale (m&ecirc;me si vous n'aimez
pas les routes d&eacute;partementales, mais ceci est une autre
histoire&nbsp;...).</p>
<p>En ce qui concerne les supports de transmission, leur
d&eacute;bit maximum est directement li&eacute; &agrave; la largeur
de la bande passante. Chose promise, chose due, pas trop de
math&eacute;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&nbsp;: ce sont le <b>d&eacute;bit
binaire maximum</b> et la <b>capacit&eacute; de transmission
maximale</b>.</p>
<h3>Le d&eacute;bit binaire maximum</h3>
<p>Sur un canal de transmission dont la bande passante est B, il
est montr&eacute; qu'un signal peut &ecirc;tre enti&egrave;rement
reconstitu&eacute; &agrave; l'arriv&eacute;e, si on le transmet en
prenant 2B &eacute;chantillons par seconde. Le d&eacute;bit maximum
s'&eacute;crit alors&nbsp;:</p>
<blockquote>
<pre>
<code>        Dmax = 2B
</code>
</pre></blockquote>
<p>Si, de plus, le signal peut prendre plus de deux valeurs
significatives, la formule se g&eacute;n&eacute;ralise
en&nbsp;:</p>
<blockquote>
<pre>
<code>        Dmax = 2B log  V
                     2
</code>
</pre></blockquote>
<p>o&ugrave; <b>V</b> correspond au nombre de niveaux significatifs
(ou &eacute;tats) que peut prendre le signal&nbsp;: c'est sa
<b>valence</b>. Par exemple, V=4 si le signal peut prendre les
valeurs +10&nbsp;volts, +5&nbsp;volts, -5&nbsp;volts et
-10&nbsp;volts.</p>
<p>Ceci pour vous montrer qu'en th&eacute;orie, sur une ligne
t&eacute;l&eacute;phonique dont la bande passante est de 3000
hertz, le d&eacute;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&eacute;bit maximum est
th&eacute;oriquement infini.</p>
<h3>La capacit&eacute; de transmission maximale</h3>
<p>Un des inconv&eacute;nients suppl&eacute;mentaires des supports
est le <b>bruit</b>. Or la quantit&eacute; de bruit pr&eacute;sente
sur une ligne s'exprime par rapport &agrave; la puissance utile du
signal transmis&nbsp;: c'est le <b>rapport signal/bruit</b>. Plus
ce rapport est grand, meilleure est la qualit&eacute;. La
capacit&eacute; de transmission maximale est une fonction de ce
rapport. Pour une ligne t&eacute;l&eacute;phonique, cette
capacit&eacute; maximale atteint 30000 bits/s. Cela signifie bien
que sur ces lignes <b>on ne peut transmettre &agrave; plus de 30000
bits/s</b></p>
<blockquote>C'est bien une capacit&eacute; maximale physique,
&agrave; ne pas confondre avec des d&eacute;bits logiques
apr&egrave;s compression de donn&eacute;es.</blockquote>
quels que soient la valence et la fr&eacute;quence du signal. C'est
une limite au d&eacute;bit binaire maximum.
<h2><a name="sec-modems"></a> <a name="s4">4.</a> Le modem</h2>
<p>Le r&ocirc;le du modem est d'adapter les signaux rectangulaires
de donn&eacute;es, que le r&eacute;seau t&eacute;l&eacute;phonique
ne peut pas transmettre tels quels, en signaux transmissibles par
ce r&eacute;seau.</p>
<p>Il a en fait deux fonctions&nbsp;:</p>
<ul>
<li>un r&ocirc;le d'<b>adaptation du signal</b> aux lignes du
r&eacute;seau utilis&eacute;, c'est-&agrave;-dire de modulation et
de d&eacute;modulation&nbsp;;</li>
<li>un r&ocirc;le de <b>dialogue</b> avec l'&eacute;quipement
informatique auquel il est reli&eacute;.</li>
</ul>
<p>Il tient donc exactement le m&ecirc;me r&ocirc;le fonctionnel
qu'une couche de communication (TCP, par exemple). Il
poss&egrave;de une <b>interface</b> permettant un dialogue avec un
utilisateur se trouvant &agrave; un niveau sup&eacute;rieur. Ici il
s'agit d'une interface physique (y compris &eacute;lectrique). Il
communique avec une entit&eacute; paire (un autre modem) selon un
<b>protocole</b>.</p>
<p>La structure interne d'un modem est d&eacute;crite
ci-dessous&nbsp;:</p>
<pre>

+-----+      +--------+         +-------------+       +----------------+
|  J  +-----&gt;| codeur +-------&gt; |  modulateur +------&gt;|                |
|  O  |      +--------+         +-------------+       |                |
|  N  |                                               |                |
|  C  |                                               | transformateur | 
|  T  |                                               |                |
|  I  |                                               |     ligne      |
|  O  |      +----------+       +--------------+      |                |
|  N  |&lt;-----+ decodeur |&lt;------+ demodulateur |&lt;-----|                |
+-----+      +----------+       +--------------+      +----------------+
</pre>
<p>Les param&egrave;tres caract&eacute;risant un modem
sont&nbsp;:</p>
<ul>
<li>le <i>d&eacute;bit d'information</i> en bits/s&nbsp;;</li>
<li>le <i>mode de transmission</i>&nbsp;: synchrone ou
asynchrone&nbsp;;</li>
<li>le <i>support de transmission utilis&eacute;</i>&nbsp;:
r&eacute;seau ou ligne sp&eacute;cialis&eacute;e&nbsp;;</li>
<li>le <i>mode de couplage</i> &agrave; la ligne&nbsp;:
&eacute;lectrique ou acoustique.</li>
</ul>
<p>Nous aborderons assez rapidement l'ensemble de ces
param&egrave;tres, selon l'utilisation que nous aurons &agrave; en
faire. La notion de d&eacute;bit devrait maintenant &ecirc;tre
assimil&eacute;e.</p>
<p>Penchons-nous rapidement sur les modes et les supports de
transmission utilis&eacute;s. Voyons ensuite plus
pr&eacute;cis&eacute;ment le r&ocirc;le d'adaptation du signal du
modem, puis le dialogue qui met en jeu la jonction et la ligne.</p>
<p>Commen&ccedil;ons par d&eacute;finir un vocabulaire commun.</p>
<h2><a name="sec-vocab"></a> <a name="ss4.1">4.1</a>
Vocabulaire</h2>
<p>Un <b>avis</b> est une recommandation &eacute;dict&eacute;e par
l'U.I.T (Union Internationale des
T&eacute;l&eacute;communications), organisation
intergouvernementale comp&eacute;tente en
t&eacute;l&eacute;communications. Les avis ont valeur de norme au
sein de l'Europe, puisque les organismes de T&eacute;l&eacute;com
nationaux ont encore le monopole. Les recommandations sont issues
de travaux de diverses commissions d'&eacute;tudes et sont
adopt&eacute;es lors des assembl&eacute;es pleini&egrave;res
(d&eacute;lai de l'ordre de neuf mois, &eacute;tant donn&eacute;
l'&eacute;volution rapide des technologies). La section <a href=
"#sec-norme">Etat actuel de la normalisation</a> d&eacute;crit les
diff&eacute;rents avis actuellement en vigueur.</p>
<p>Dans sa normalisation, l'U.I.T d&eacute;finit
l'&eacute;quipement informatique comme un <b>ETTD</b>
(<i>&Eacute;quipement Terminal de Traitement de Donn&eacute;es</i>)
et le modem comme un <b>ETCD</b> (<i>&Eacute;quipement Terminal de
Circuit de Donn&eacute;es</i>). La connexion d'un &eacute;quipement
informatique &agrave; un modem, par exemple, est
r&eacute;alis&eacute;e par l'interm&eacute;diaire d'une
<b>jonction</b> ou <b>interface</b>.</p>
<p>On appelle half-duplex (bidirectionnel &agrave; l'alternat), une
transmission s'effectuant dans un seul sens &agrave; la fois. On
appelle full duplex (bidirectionnel simultan&eacute;), une
transmission pouvant s'effectuer dans les deux sens en m&ecirc;me
temps. Ces transmissions peuvent avoir lieu indiff&eacute;remment
sur liaison 2 ou 4 fils.</p>
<h2><a name="ss4.2">4.2 Le mode de transmission</a></h2>
<p>Une transmission de donn&eacute;e est toujours li&eacute;e au
facteur temps. Dans les transmissions en s&eacute;rie qui
constituent la majorit&eacute; des transmissions, l'&eacute;metteur
et le r&eacute;cepteur doivent travailler &agrave; la m&ecirc;me
cadence. Dans le mode <b>synchrone</b>, ils sont cal&eacute;s sur
le m&ecirc;me rythme gr&acirc;ce &agrave; des signaux d'horloge
&eacute;mis avant la transmission. Dans le mode <b>asynchrone</b>,
l'horloge du r&eacute;cepteur n'est d&eacute;clench&eacute;e puis
arr&ecirc;t&eacute;e que sur r&eacute;ception de bits de
d&eacute;but et de fin. On les appelle bits de <b>start</b> et de
<b>stop</b>. Ce mode, bien que moins performant, est le plus
utilis&eacute; actuellement dans les communications &agrave;
travers le r&eacute;seau public.</p>
<h2><a name="ss4.3">4.3 Le support de transmission ou
ligne</a></h2>
<p>Un modem est utilisable principalement sur deux types de
supports&nbsp;: le <b>r&eacute;seau commut&eacute;</b> ou la
<b>ligne sp&eacute;cialis&eacute;e</b>. Sur chaque type de support,
les liaisons peuvent &ecirc;tre &agrave; deux ou quatre fils.</p>
<p>Dans le cas qui nous int&eacute;resse, le modem est reli&eacute;
au r&eacute;seau t&eacute;l&eacute;phonique commut&eacute; et la
liaison est &agrave; deux fils. Nous l'utilisons soit en half
duplex, soit en full duplex selon l'avis (voir d&eacute;finition de
ce mot au paragraphe <a href="#sec-vocab">Vocabulaire</a>.</p>
<p>A ce propos, r&eacute;fl&eacute;chissons un peu sur
l'utilisation qui est faite actuellement du R&eacute;seau
T&eacute;l&eacute;phonique Commut&eacute; (appel&eacute; 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 &agrave;
quatre fils, il est facile d'imaginer que l'on consacre deux fils
&agrave; chaque sens de transmission. Pour chaque sens,
consid&eacute;rant les vitesses de modulations maximales possibles,
on con&ccedil;oit qu'il faut combiner plusieurs types de
modulations pour obtenir des d&eacute;bits maintenant courants de
l'ordre de 28800 bits/s.</p>
<p>Or le RTC n'utilise que <b>deux</b> fils. Pour travailler en
full-duplex &agrave; des d&eacute;bits relativement faibles (en
fait jusqu'&agrave; l'avis V22 bis), il &eacute;tait possible de
partager la bande de fr&eacute;quence en deux moiti&eacute;s, une
pour chaque sens. Avec les d&eacute;bits employ&eacute;s
actuellement ce n'est plus possible. Pour travailler en full-duplex
&agrave; d'importants d&eacute;bits, il est fait appel &agrave; des
algorithmes complexes dits "de suppression d'&eacute;cho" (proche
et lointain). Imaginez le travail &agrave; r&eacute;aliser&nbsp;:
chaque modem re&ccedil;oit les donn&eacute;es envoy&eacute;es par
le distant m&eacute;lang&eacute;es &agrave; ses propres
donn&eacute;es. Le tout est encore pollu&eacute; par de
l'&eacute;cho&nbsp;! Et pour compliquer le tout, tout ceci varie
dans le temps, et bien s&ucirc;r d'une communication &agrave;
l'autre.</p>
<p>Vous comprendrez donc qu'avec une telle utilisation du RTC, les
modems soient continuellement soumis &agrave; rude &eacute;preuve
pour ce qui est de la correction, ceci pouvant conduire &agrave;
des d&eacute;bits variables selon le moment.</p>
<h2><a name="ss4.4">4.4 L'adaptation du signal</a></h2>
<p>Nous avons vu aux sections pr&eacute;c&eacute;dentes ce
qu'&eacute;taient une modulation et un d&eacute;bit. Rassemblons
maintenant un peu toutes ces id&eacute;es. Bien souvent, c'est sur
ce point d&eacute;licat que les esprits se perdent. Nous avons vu
que la rapidit&eacute; de modulation est une caract&eacute;ristique
essentielle de la bande passante. Plus cette rapidit&eacute; est
grande, plus la bande passante demand&eacute;e est large. Sur le
r&eacute;seau t&eacute;l&eacute;phonique, la bande maximale
officielle est de 3100 hertz (300 &agrave; 3400 Hz). Dans les
centraux t&eacute;l&eacute;phoniques modernes, elle va
jusqu'&agrave; 3500 Hz.</p>
<p>Pour bien comprendre le m&eacute;canisme de l'adaptation du
signal, imaginez maintenant que nous disposions d'un appareil
&eacute;lectrique capable d'&eacute;mettre quatre niveaux de
tensions possibles.</p>
<p>Les donn&eacute;es &agrave; transmettre sont quant &agrave;
elles toujours pr&eacute;sent&eacute;es sous forme d'un flot
ininterrompu (ou presque) d'informations binaires.</p>
<p>L'id&eacute;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
<b>valence</b> 4. Plus g&eacute;n&eacute;ralement, la valence d'un
signal est le nombre d'&eacute;tats qu'il peut prendre. Cette
transformation du signal est appel&eacute;e <b>codage</b>.</p>
<p>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&eacute;e sa valence, nous avons
besoin de quatre d&eacute;calages de phase.</p>
<p>A chaque fois que <b>deux</b> bits se pr&eacute;sentent, il est
possible d'effectuer <b>une</b> modulation. A l'autre bout,
l'&eacute;quipement est capable de reg&eacute;n&eacute;rer deux
bits. Le d&eacute;bit (en <b>bits/s</b>) est donc bien double de la
vitesse de modulation (exprim&eacute;e en <b>bauds</b>).</p>
<h3>Exemple</h3>
<p>Vous configurez un modem &agrave; 4800 bits par seconde
(V.27&nbsp;ter). Que va-t-il se passer &nbsp;? Selon cette norme,
le modem va r&eacute;aliser une modulation de phase
diff&eacute;rentielle octovalente. Il va donc regrouper les bits
par trois (<b>tribits</b>) pour moduler le signal. La vitesse de
modulation est donc de 1600 bauds et le d&eacute;bit de 4800
bits/seconde. Pour obtenir un d&eacute;bit de 9600 bits par
seconde, il faudra combiner un autre type de modulation. La section
<a href="#sec-modul">D&eacute;bits et modulations</a>
pr&eacute;sente l'essentiel des modulations utilis&eacute;es dans
les diff&eacute;rentes normes actuelles.</p>
<h3>R&eacute;sum&eacute;</h3>
<p>L'adaptation du signal peut se faire de trois
mani&egrave;res&nbsp;:</p>
<ul>
<li>par une simple modulation appropri&eacute;e&nbsp;;</li>
<li>par un codage puis une modulation&nbsp;;</li>
<li>par un simple codage. Ce type d'adaptation est pr&eacute;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.</li>
</ul>
<p>La rapidit&eacute; de modulation s'exprime en <b>bauds</b>. Elle
correspond au nombre de changements d'&eacute;tats du signal par
seconde sur la ligne de transmission. Une rapidit&eacute; de
<i>b</i> bauds ne correspond pas forc&eacute;ment &agrave; <i>b</i>
bits/s sur la ligne. Une configuration binaire (un ou plusieurs
bits selon la valence) correspond &agrave; un &eacute;tat du
signal.</p>
<h2><a name="ss4.5">4.5 Le dialogue</a></h2>
<p>Int&eacute;ressons-nous maintenant au dialogue entre
l'&eacute;quipement informatique et la jonction.</p>
<h3>La jonction s&eacute;rie</h3>
<p>La jonction sp&eacute;cifie les caract&eacute;ristiques
m&eacute;caniques, &eacute;lectriques et fonctionnelles des
signaux. Bien entendu ces jonctions sont normalis&eacute;es (voir
plus loin les tableaux r&eacute;capitulatifs sur l'&eacute;tat
actuel de la normalisation) et celle qui nous int&eacute;resse plus
particuli&egrave;rement est r&eacute;f&eacute;renc&eacute;e sous le
nom V.24 par l'U.I.T, sensiblement &eacute;quivalente de la norme
RS-232C d&eacute;finie par l'E.I.A</p>
<blockquote>Electronic Industries Association.</blockquote>
.
<p>Voici une description des signaux de l'interface V.24 les plus
couramment utilis&eacute;s&nbsp;:</p>
<blockquote>
<pre>
<code>+------+-----------+-----------+--------+------+--------------------------------+
| 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            |
+------+-----------+-----------+--------+------+--------------------------------+
</code>
</pre></blockquote>
Brochage des prises c&ocirc;t&eacute; soudures :
<blockquote>
<pre>
<code>      +-----------+          +---------------------------------------+
      | 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
</code>
</pre></blockquote>
<h3><a name="sec-dialogue"></a> Le dialogue proprement dit</h3>
<p>Prenons deux postes de travail &eacute;quip&eacute;s d'un modem
chacun et souhaitant communiquer.</p>
<p>Nous passerons rapidement sur le fait que les &eacute;quipements
doivent &ecirc;tre reli&eacute;s &agrave; la masse. Ceci est
r&eacute;alis&eacute; gr&acirc;ce au circuit 101. D'autre part, il
est n&eacute;cessaire de d&eacute;finir une r&eacute;f&eacute;rence
de signalisation&nbsp;: c'est le r&ocirc;le du circuit 102.</p>
<p>D&egrave;s sa mise sous tension, l'ETTD pr&eacute;sente un
&eacute;tat logique "1" sur le circuit 108&nbsp;: <i>Terminal de
Donn&eacute;es Pr&ecirc;t</i> (DTR). D&egrave;s la mise sous
tension de l'ETCD, celui-ci pr&eacute;sente l'&eacute;tat <i>Poste
de Donn&eacute;es Pr&ecirc;t</i> (DSR) correspondant &agrave; un
&eacute;tat logique "1" sur le circuit 107, assurant ainsi que le
modem est sous tension et connect&eacute; &agrave; la ligne.</p>
<p>L'ETTD ayant des donn&eacute;es &agrave; &eacute;mettre, demande
&agrave; &eacute;mettre. Il pr&eacute;sente sur la jonction
l'information <i>Demande Pour &Eacute;mettre</i> (RTS) sur le
circuit 105. Ceci valide le modulateur de l'ETCD qui &eacute;met
alors une porteuse.</p>
<p>Du cot&eacute; appel&eacute;, l'ETCD d&eacute;tecte la
pr&eacute;sence de la porteuse sur la ligne de transmission et le
signale &agrave; l'ETTD sur le circuit 109&nbsp;:
<i>D&eacute;tection de signal</i> (porteuse). Les circuits 107 et
108 auront &eacute;t&eacute; initialis&eacute;s au pr&eacute;alable
comme ci-dessus.</p>
<p>L'ETTD ayant signal&eacute; son intention d'&eacute;mettre sur
le circuit 105 re&ccedil;oit en r&eacute;ponse peu de temps
apr&egrave;s le signal <i>Pr&ecirc;t &Agrave; &Eacute;mettre</i>
(CTS) sur le circuit 106.</p>
<p>Les donn&eacute;es peuvent ensuite circuler via les circuits 103
et 104.</p>
<h3>Le contr&ocirc;le de flux</h3>
<p>Lorsqu'un &eacute;metteur &eacute;met de fa&ccedil;on
syst&eacute;matique plus de donn&eacute;es que le r&eacute;cepteur
ne peut en accepter, il se pose alors un probl&egrave;me qui ne
peut &ecirc;tre r&eacute;solu que gr&acirc;ce au m&eacute;canisme
de <i>contr&ocirc;le de flux</i>.</p>
<p>Le contr&ocirc;le de flux peut &ecirc;tre de diff&eacute;rents
types&nbsp;:</p>
<dl>
<dt><b>logiciel</b></dt>
<dd>
<p>Le modem ins&egrave;re des caract&egrave;res de contr&ocirc;les
dans le flot de donn&eacute;es circulant entre l'ETCD et
l'ETTD&nbsp;: <b>XOFF</b> pour arr&ecirc;ter l'envoi et <b>XON</b>
pour le reprendre.</p>
</dd>
<dt><b>mat&eacute;riel</b></dt>
<dd>
<p>G&eacute;n&eacute;ralement appel&eacute; <b>CRTSCTS</b>, il met
en oeuvre l'emploi des circuits 105 (RTS) et 106 (CTS). Ce symbole
est en fait le nom donn&eacute; &agrave; la constante du fichier
d'inclusion <i>termios.h</i>.</p>
</dd>
</dl>
<p>Le fonctionnement du contr&ocirc;le de flux mat&eacute;riel
pendant la transmission peut se r&eacute;sumer ainsi&nbsp;:</p>
<p>Avant d'&eacute;mettre, le terminal doit lever son signal RTS
(Request To Send). &Agrave; partir de ce moment, le modem, s'il est
en mesure d'&eacute;mettre, l&egrave;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.</p>
<h2><a name="ss4.6">4.6 La connexion au r&eacute;seau
t&eacute;l&eacute;phonique commut&eacute;</a></h2>
<p>Maintenant, plusieurs questions se posent, et j'imagine que
parmi celles que vous vous posez il y a&nbsp;:</p>
<ul>
<li>et sous Linux, le fonctionnement est-il identique&nbsp;?</li>
<li>&agrave; quel moment le num&eacute;ro du correspondant a t-il
&eacute;t&eacute; compos&eacute;&nbsp;?</li>
<li>mon modem est configur&eacute; en
r&eacute;ception/&eacute;mission, comment &ccedil;a
marche&nbsp;?</li>
<li>etc.</li>
</ul>
<p>Nous allons maintenant tenter de r&eacute;pondre.</p>
<p>Eclaircissons un peu les choses. Le dialogue que nous venons de
voir concerne le dialogue <i>th&eacute;orique</i> ETTD-ETCD et
ETCD-ETTD sans se soucier d'&eacute;ventuelles contraintes pouvant
provenir du syst&egrave;me d'exploitation. Il est toujours vrai.
N&eacute;anmoins, il ne suffit pas forc&eacute;ment pour qu'une
communication soit &eacute;tablie, notamment via le RTC. Nous
allons &eacute;tudier ce fonctionnement point par point en prenant
un bon syst&egrave;me d'exploitation (<b>Linux</b>, mais ce n'est
qu'un exemple), un bon port s&eacute;rie et du courage. Vous
continuez&nbsp;?</p>
<p>Tout d'abord, nous avons vu qu'une communication
commen&ccedil;ait toujours par le premier &eacute;change DTR/DSR,
ou si vous pr&eacute;f&eacute;rez 108/107. La mont&eacute;e du
circuit 108 est r&eacute;alis&eacute;e sous Linux &agrave;
l'ouverture du port s&eacute;rie (ex.&nbsp; <code>fopen
("/dev/ttyS0", ...)</code>). Cela se voit tr&egrave;s bien sur un
modem externe, le voyant TR est allum&eacute;. La r&eacute;ponse du
modem par le circuit 107 est un peu diff&eacute;rente. Dans la
section <a href="#sec-dialogue">Le dialogue proprement dit</a>,
pour des raisons de simplicit&eacute;, nous supposions que le modem
r&eacute;pondait sur le circuit 107 apr&egrave;s un d&eacute;lai
tr&egrave;s bref, c'est-&agrave;-dire qu'il &eacute;tait
instantan&eacute;ment connect&eacute; &agrave; la ligne.</p>
<p>Cette r&eacute;ponse est maintenant conditionn&eacute;e par la
connexion &agrave; la ligne via le r&eacute;seau
t&eacute;l&eacute;phonique commut&eacute;.</p>
<h3>Initialisation du modem</h3>
<p>En g&eacute;n&eacute;ral, c'est juste apr&egrave;s l'ouverture
du port s&eacute;rie que le modem est initialis&eacute;. Cela se
fait gr&acirc;ce aux commandes AT que nous ne d&eacute;taillerons
pas. Simplement, ces commandes sont envoy&eacute;es au modem (par
l'interm&eacute;diaire du circuit 103) (ex.&nbsp;
<code>write</code> sur le <i>descripteur de fichier</i> du
p&eacute;riph&eacute;rique) et interpr&eacute;t&eacute;es par lui,
lorsque&nbsp;:</p>
<ul>
<li>le circuit 108 est ferm&eacute; (&eacute;tat "1")&nbsp;;</li>
<li>le modem est en mode commande.</li>
</ul>
<h3>&Eacute;tablissement de la connexion</h3>
<p>L'une des commandes d'initialisation permet la composition d'un
num&eacute;ro. Le modem d&eacute;croche (eh oui, ce terme barbare
veut dire que suite &agrave; la fermeture du relais, le central
local envoie une tonalit&eacute; &agrave; la fr&eacute;quence de
440 Hz&nbsp;<code>:-)</code>) puis compose le num&eacute;ro.</p>
<p>Sur l'&eacute;quipement distant, le circuit 108 est
&eacute;galement mont&eacute;. Le modem appel&eacute;
d&eacute;tecte l'appel. Le signal d'indication d'appel (circuit
125) est utilis&eacute; en interne pour m&eacute;moriser l'appel,
le modem r&eacute;alisant donc lui-m&ecirc;me la connexion &agrave;
la ligne. Cette m&eacute;morisation est maintenue par DTR
(jusqu'&agrave; d&eacute;connexion).</p>
<p>&Agrave; ce moment pr&eacute;cis, le modem appel&eacute;
r&eacute;pond en validant son modulateur qui &eacute;met la
porteuse.</p>
<p>Le modem appelant, en &eacute;tat de d&eacute;crochage et
attendant la porteuse, met son &eacute;metteur en service.
Apr&egrave;s n&eacute;gociation, le circuit 109 (DCD) est alors
valid&eacute;. Du c&ocirc;t&eacute; de l'appel&eacute;, le circuit
109 est &eacute;galement valid&eacute;. La prise de contact est
termin&eacute;e. Les circuits 107 (DSR) des deux modems sont alors
mont&eacute;s en r&eacute;ponse &agrave; DTR (asservissement des
circuits 107-109).</p>
<h3>R&eacute;ponse automatique ou manuelle</h3>
<p>Du c&ocirc;t&eacute; de l'appel&eacute;, il est possible de
mettre le modem en mode r&eacute;ponse automatique. Il
r&eacute;pond alors tout seul &agrave; l'appel apr&egrave;s
quelques sonneries. Le registre S0 des modems est
g&eacute;n&eacute;ralement r&eacute;serv&eacute; &agrave; la
configuration de ce mode.</p>
<p>Lorsque ce registre contient la valeur 0, (ATS0=0), le modem est
en r&eacute;ponse manuelle. Sous Linux, c'est assez souvent
l'option choisie, et c'est le logiciel (notamment <i>getty</i>) qui
g&egrave;re l'appel. En effet les gestionnaires, de <i>tty</i> tels
que <i>getty</i> pr&eacute;f&egrave;rent prendre en charge la
connexion&nbsp;: ce n'est pas au modem &agrave; r&eacute;pondre
&agrave; un appel mais &agrave; <i>getty</i> lui m&ecirc;me.
Lorsque le modem re&ccedil;oit un appel, il &eacute;met simplement
le message <b>RING</b> (bien s&ucirc;r, si le mode verbeux est bien
configur&eacute;&nbsp;: ATE1). Sur ce, <i>getty</i> envoie la
commande ATA qui valide le mode r&eacute;ponse et la porteuse.</p>
<p>Enfin, &agrave; la fermeture du port, les signaux 108/107
repassent &agrave; l'&eacute;tat <b>0</b>.</p>
<p>Voici &agrave; titre d'information l'organigramme d'un
appel&nbsp;:</p>
<blockquote>
<pre>
<code>
                     +---------------------------------------+
                     | 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  |
    +--------------------------+   +-------------+  +--------------------------+
</code>
</pre></blockquote>
<h3>D&eacute;connexion</h3>
<p>Plusieurs m&eacute;thodes permettent de mettre fin &agrave; un
appel&nbsp;:</p>
<ul>
<li><b>Mode commande.</b> Mettre le modem en mode commande et
envoyer la cha&icirc;ne <code>+++ATH</code>&nbsp;;</li>
<li><b>Perte de porteuse.</b> L'une des causes est la
d&eacute;connexion normale de l'autre modem&nbsp;;</li>
<li><b>Ouverture du circuit 108</b> (DTR). C'est la m&eacute;thode
la plus couramment employ&eacute;e.</li>
</ul>
<h2><a name="sec-norme"></a> <a name="s5">5.</a> Etat actuel de la
normalisation</h2>
<p>Voici un tableau r&eacute;sumant l'&eacute;tat actuel de la
normalisation concernant les classes de d&eacute;bits
support&eacute;s.</p>
<blockquote>
<pre>
<code>
+----------+--------------------------------------------+
|   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
</code>
</pre></blockquote>
<h2><a name="ss5.1">5.1 &Agrave; propos du V.42 bis</a></h2>
<p>Un tout petit mot &agrave; propos de la norme V.42 bis qui
permet la compression de donn&eacute;es. L'algorithme utilise un
dictionnaire de cha&icirc;nes de caract&egrave;res. Lorsqu'une
cha&icirc;ne appara&icirc;t, un <i>token</i> est transmis qui n'est
autre que l'index de cette cha&icirc;ne dans le dictionnaire. La
longueur maximale d'une cha&icirc;ne ainsi que la taille maximale
du dictionnaire sont n&eacute;goci&eacute;es au d&eacute;but de la
connexion. La norme V.42&nbsp;bis autorise une longueur de
cha&icirc;ne comprise entre 6 et 250 caract&egrave;res. La taille
minimale du dictionnaire est de 512 entr&eacute;es (soit 9 bits
pour coder le rang d'un entr&eacute;e). Le taux maximal de
compression dans ce cas est de&nbsp;:</p>
<blockquote>
<pre>
<code>250 * 8 : 9 = 222.2
</code>
</pre></blockquote>
<p>soit un taux de 222:1. Un bon taux de compression est plus une
affaire de taille m&eacute;moire et d'efficacit&eacute; en fonction
des donn&eacute;es &agrave; coder qu'une affaire de puissance de
processeur.</p>
<h2><a name="sec-modul"></a> <a name="ss5.2">5.2</a> D&eacute;bits
et modulations</h2>
<blockquote>Merci &agrave; Christian 'naddy' Weisgerber de son aide
pour la r&eacute;daction de cette partie.</blockquote>
<p>Voici rassembl&eacute;s dans les tableaux suivants les
d&eacute;bits et les modulations correspondantes utilis&eacute;s
dans les principales normes pour liaisons
t&eacute;l&eacute;phoniques &agrave; 2 fils. Les <i>normes</i> qui
ne sont pas cit&eacute;es ci-apr&egrave;s sont peu utilis&eacute;es
voire oubli&eacute;es aujourd'hui (liaisons &agrave; 4 fils, V.32
terbo, Bell xxx, V.FC, ZyXEL, HST, PEP... certaines n'&eacute;tant
d'ailleurs pas de v&eacute;ritables normes).</p>
<blockquote>
<pre>
<code>+------------------------------------------------------------------------+
| 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)
</code>
</pre></blockquote>
<p>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&eacute;thodes TCM choisie par le
r&eacute;cepteur. Les combinaisons suivantes sont
possibles&nbsp;:</p>
<blockquote>
<pre>
<code>+-------------------------------------------------------------+
|         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         |
+-------------------------------------------------------------+
</code>
</pre></blockquote>
<h2><a name="s6">6. Foire Aux Questions</a></h2>
<dl>
<dt><b>Comment puis-je changer facilement un param&egrave;tre de
mon port s&eacute;rie ?</b></dt>
<dd>
<p>La meilleure fa&ccedil;on de le faire, aussi bien manuellement
que dans un script est de rediriger le p&eacute;riph&eacute;rique
sur l'entr&eacute;e standard de <i>stty</i>. Exemple&nbsp;:</p>
<blockquote>
<pre>
<code>        stty crtscts &lt; /dev/ttyS0
</code>
</pre></blockquote>
<p>activera le contr&ocirc;le de flux mat&eacute;riel sur le
premier port s&eacute;rie utilis&eacute; en entr&eacute;e.</p>
<blockquote>
<pre>
<code>        stty -a &lt; /dev/cua0
</code>
</pre></blockquote>
<p>affichera tous les param&egrave;tres du premier port
s&eacute;rie utilis&eacute; en sortie.</p>
</dd>
<dt><b>Pourquoi faut-il configurer CRTSCTS sur le port s&eacute;rie
?</b></dt>
<dd>
<p>Pour g&eacute;rer le contr&ocirc;le de flux mat&eacute;riel. Ce
n'est pas une obligation, c'est une garantie que l'&eacute;change
de donn&eacute;es entre ETTD et ETCD se fera dans les meilleures
conditions. Il faut bien entendu que votre modem puisse le faire.
Contrairement &agrave; une id&eacute;e re&ccedil;ue, si vous mettez
l'option CRTSCTS dans le fichier /etc/gettydefs, il n'est pas
n&eacute;cessaire d'effectuer en plus un <code>stty crtscts
&lt;/dev/port\#</code>. Par contre, il faut le mettre &agrave; la
fois dans la partie <i>initiale</i> et <i>finale</i> de gettydefs.
Notez qu'il s'agit bien d'un contr&ocirc;le de flux local, et en
aucun cas il ne faut s'inqui&eacute;ter de ce que fait le
correspondant dans ce domaine.</p>
</dd>
<dt><b>Je remarque que agetty modifie les droits du fichier
/dev/ttyS0, bizarre non&nbsp;?</b></dt>
<dd>
<p>Ca peut effectivement para&icirc;tre bizarre. Il s'agit en fait
de l'&eacute;tablissement d'une <i>session</i> d'utilisation du
p&eacute;riph&eacute;rique. Celui-ci prend alors les droits du
"chef" de session (<i>session leader</i>) qui se prot&egrave;ge
ainsi des utilisations du m&ecirc;me tty par d'autres
processus.</p>
</dd>
<dt><b>Aurais-je acc&egrave;s &agrave; mon t&eacute;l&eacute;phone
?</b></dt>
<dd>
<p>Cette question a &eacute;t&eacute; r&eacute;ellement
pos&eacute;e. Si vous n'avez qu'une ligne
t&eacute;l&eacute;phonique, la r&eacute;ponse est non. De plus, en
d&eacute;crochant le combin&eacute; t&eacute;l&eacute;phonique,
vous pertuberez la ligne et le modem risque fort de diminuer le
d&eacute;bit (pour le remonter si tout va bien ensuite).</p>
</dd>
<dt><b>Lorsque je me connecte chez mon fournisseur, comment mon
adresse IP est g&eacute;n&eacute;r&eacute;e&nbsp;?</b></dt>
<dd>
<p>Cette question montre &agrave; l'&eacute;vidence une confusion
entre toutes les notions r&eacute;seaux. Bien qu'elle ait
&eacute;t&eacute; pos&eacute;e suite &agrave; un probl&egrave;me
relatifs aux modems, la r&eacute;ponse ne devrait
th&eacute;oriquement pas se trouver dans ce document.
N&eacute;anmoins, le chapitre suivant rappelle quelques principes
de base des empilements protocolaires afin de clarifier un peu tout
cela.</p>
</dd>
</dl>
<h2><a name="s7">7. Un mot sur les empilements protocolaires
couramment utilis&eacute;s</a></h2>
<p>Un tel titre pourrait faire croire &agrave; une erreur de mise
en page ou de <i>copier-coller</i> &eacute;tant donn&eacute; le
sujet du document. En fait, il n'en est rien.</p>
<p>La connexion d'une machine &agrave; un fournisseur
d'acc&egrave;s &agrave; Internet met en jeu un ensemble de
protocoles de communications&nbsp;: TCP, UDP, IP, SLIP, PPP, etc.
De nombreux utilisateurs souhaitent r&eacute;aliser ce type de
connexion depuis chez eux, via un modem et rencontrent parfois
quelques probl&egrave;mes de configuration.</p>
<p>Il est &eacute;vident qu'il est &agrave; la fois difficile et
inutile de tout conna&icirc;tre de ces protocoles. Il faut vraiment
<i>&ecirc;tre du m&eacute;tier</i> pour bien les conna&icirc;tre,
et encore&nbsp;! 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&eacute;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&eacute;vitablement de mauvais
param&eacute;trages.</p>
<p>Les quelques sch&eacute;mas qui suivent donnent une id&eacute;e
de la fa&ccedil;on dont tous ces <i>engrenages</i> sont
plac&eacute;s pour que "&ccedil;a tourne"&nbsp;!</p>
<h2><a name="ss7.1">7.1 TCP/UDP/IP</a></h2>
<p>Ces sigles sont tr&egrave;s fr&eacute;quemment utilis&eacute;s
aujourd'hui et pour cause&nbsp;: ces empilements de couches de
communications tendent &agrave; se r&eacute;pandre &agrave; vive
allure. C'est &agrave; l'origine un ensemble de protocoles
d&eacute;velopp&eacute;s dans le cadre du projet ARPANET,
cr&eacute;&eacute; par ARPA (aujourd'hui DARPA), l'agence pour les
projets de recherche avanc&eacute;e du Minist&egrave;re de la
D&eacute;fense des Etats-Unis.</p>
<ul>
<li>TCP
<blockquote>Transmission Control Protocol</blockquote>
est une entit&eacute; de niveau Transport charg&eacute;e de
v&eacute;hiculer des donn&eacute;es de mani&egrave;re fiable entre
deux machines souhaitant dialoguer&nbsp;;</li>
<li>UDP
<blockquote>User Datagram Protocol</blockquote>
est une entit&eacute; de niveau Transport charg&eacute;e de
v&eacute;hiculer des donn&eacute;es entre deux machines souhaitant
dialoguer&nbsp;;</li>
<li>IP
<blockquote>Internet Protocol</blockquote>
est une entit&eacute; de niveau R&eacute;seau charg&eacute;e de
v&eacute;hiculer des donn&eacute;es entre deux noeuds d'un
r&eacute;seau.</li>
</ul>
<h2><a name="ss7.2">7.2 PPP/SLIP</a></h2>
<p>PPP</p>
<blockquote>Point-to-Point Protocol</blockquote>
et SLIP
<blockquote>Serial Line IP</blockquote>
proposent une m&eacute;thode d'encapsulation des datagrammes IP sur
des liaisons point &agrave; point, par exemple les lignes
asynchrones s&eacute;rie. En quelques mots, disons que SLIP est un
protocole tr&egrave;s simple, assez ancien, datant d'une
&eacute;poque o&ugrave; certains probl&egrave;mes n'&eacute;taient
pas aussi importants qu'aujourd'hui&nbsp;: adressage,
identification r&eacute;ciproque, d&eacute;tection et correction
d'erreurs, compression (extrait du RFC-1055). PPP est quant
&agrave; lui beaucoup plus complet et c'est pourquoi il est
g&eacute;n&eacute;ralement pr&eacute;f&eacute;r&eacute; par les
connaisseurs. Il offre toutes ces caract&eacute;ristiques
regroup&eacute;es en trois sous-ensembles&nbsp;:
<ul>
<li>une m&eacute;thode d'encapsulation de type HDLC sur circuit
commut&eacute; ou permanent, synchrone ou asynchrone&nbsp;;</li>
<li>un protocole LCP (Link Control Protocol) permettant
d'&eacute;tablir, de configurer et de tester une
connexion&nbsp;;</li>
<li>une famille de protocoles NCP (Network Control Protocols) pour
l'&eacute;tablissement et la configuration des protocoles
r&eacute;seaux.</li>
</ul>
<p>Pour obtenir de plus amples renseignements, vous pouvez vous
reporter aux documents concernant ces protocoles&nbsp;:
<b>RFC-1055</b> (SLIP), <b>RFC-1171</b> et <b>RFC-1172</b> (PPP) et
le <b>PPP-HOWTO</b>.</p>
<h2><a name="ss7.3">7.3 Mise en oeuvre</a></h2>
<blockquote>
<pre>
<code>
+----------------+-------+ +--------+ +--------+ +------+ +-----+
|  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_|    ---------
</code>
</pre></blockquote>
<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&nbsp;:</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
&agrave; TCP d'&eacute;tablir une connexion. Pour qu'elle puisse
s'&eacute;tablir, PPP doit d&eacute;j&agrave; fonctionner. Pour que
PPP fonctionne, le modem doit &ecirc;tre en ligne&nbsp;:</p>
<ul>
<li>premi&egrave;re &eacute;tape&nbsp;: &eacute;tablissement d'une
communication entre deux modems. Cette &eacute;tape est
suppos&eacute;e connue, maintenant&nbsp;;</li>
<li>deuxi&egrave;me &eacute;tape&nbsp;: mise en route de PPP, avec
&eacute;ventuellement authentification&nbsp;;</li>
<li>troisi&egrave;me &eacute;tape&nbsp;: configuration de
l'interface IP correspondante. Il s'agit en g&eacute;n&eacute;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&eacute;e &agrave; l'interface. Dans ce
dernier cas, celui-ci la fournit lors de l'initialisation PPP. Dans
les deux cas, c'est le d&eacute;mon PPP qui configure l'adresse de
l'interface&nbsp;;</li>
<li>quatri&egrave;me &eacute;tape&nbsp;: &eacute;tablissement d'une
connexion TCP, puis initialisation de <i>ftp</i>. A partir de
l&agrave;, si tout s'est bien pass&eacute;, vous pouvez
transf&eacute;rer vos fichiers.</li>
</ul>
<p>Vous pouvez maintenant imaginer le d&eacute;roulement d'une
d&eacute;connexion.</p>
<h2><a name="ss7.4">7.4 Les fichiers de configuration</a></h2>
<h3>Les applications</h3>
<p>Vous comprendrez qu'il est difficile de d&eacute;crire ici
l'emplacement des fichiers de configuration des applications.
Prenez soin de lire les fichiers README ou INSTALL et
d'ex&eacute;cuter l'installation correctement.</p>
<h3>Les couches de communication : TCP/UDP/IP</h3>
<p>Pour une configuration standard de votre machine, vous devez
compiler le noyau avec les options "r&eacute;seau"
suivantes&nbsp;:</p>
<blockquote>
<pre>
<code>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 &lt;16Mb of memory)  n

The IPX protocol                n
... autres protocoles           n
</code>
</pre></blockquote>
<p>Le fichier <i>resolv.conf</i> doit contenir&nbsp;:</p>
<blockquote>
<pre>
<code>domain &lt;domaine de votre fournisseur&gt;
nameserver &lt;adresse IP du serveur de nom de votre fournisseur&gt;
</code>
</pre></blockquote>
<h2><a name="s8">8. Le Minitel</a></h2>
<p>Bien que ce merveilleux appareil commence &agrave; prendre de
l'&acirc;ge, il est difficile de ne pas en parler un peu, notamment
en raison de ses sp&eacute;cificit&eacute;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&eacute;ristiques int&eacute;ressantes
dans le cadre d'une utilisation avec Linux.</p>
<p>Les STUM&nbsp;1B</p>
<blockquote>Sp&eacute;cifications Techniques d'Utilisation du
Minitel 1B.</blockquote>
d&eacute;crivent l'ensemble des caract&eacute;ristiques des divers
modules du Minitel 1B&nbsp;:
<ul>
<li>l'&eacute;cran&nbsp;;</li>
<li>le clavier&nbsp;;</li>
<li>le modem&nbsp;;</li>
<li>la prise p&eacute;ri-informatique.
<blockquote>A ce propos, je tiens &agrave; votre disposition un
sch&eacute;ma &eacute;lectronique d'un montage permettant
l'adaptation RS232-Minitel. Il met en oeuvre le circuit MAX232
permettant une parfaite adaptation des tensions.</blockquote>
</li>
</ul>
<h2><a name="ss8.1">8.1 L'&eacute;cran</a></h2>
<p>Le minitel 1B est capable d'afficher 24 lignes de 40 ou 80
caract&egrave;res et 8 couleurs (ou niveaux de gris).</p>
<p>Le mode 40 colonnes correspond au standard <i>Videotex</i>, le
mode 80 colonnes au standard
<i>t&eacute;l&eacute;-informatique</i>. C'est en
g&eacute;n&eacute;ral celui-ci que l'on utilisera s'il sert de
terminal. Les s&eacute;quences de touches permettant de passer d'un
mode &agrave; l'autre sont indiqu&eacute;es dans le tableau suivant
dans lequel on retrouvera &eacute;galement quelques
s&eacute;quences utiles&nbsp;:</p>
<blockquote>
<pre>
<code>+-------------+----------------------------------+
|   Touches   |          Signification           |
+-------------+----------------------------------+
| &lt;Fcnt T&gt; A  | Mode tele-informatique americain |
|             | (pas d'accents)                  |
| &lt;Fcnt T&gt; F  | Mode tele-informatique francais  |
|             | accents (codage particulier)     |
| &lt;Fcnt T&gt; V  | Mode Videotex                    |
+-------------+----------------------------------+
| &lt;Fcnt T&gt; E  | Valide/invalide l'echo local     |
|             |                                  |
| &lt;Fcnt E&gt; P  | Mode page (retour haut de page   |
|             | en fin d'ecran)                  |
| &lt;Fcnt E&gt; R  | Mode rouleau (par defaut)        |
|             |                                  |
| &lt;Fcnt C&gt; M  | Verouillage minuscules (defaut   |
|             | en mode tele-informatique)       |
+-------------+----------------------------------+
</code>
</pre></blockquote>
<h2><a name="ss8.2">8.2 Le clavier</a></h2>
<p>Il s'agit d'un clavier <i>AZERTY</i> permettant la saisie de la
plupart des caract&egrave;res courants pour un terminal. Il est
notamment possible de verouiller les minuscules gr&acirc;ce
&agrave; la s&eacute;quence &lt;Fcnt&nbsp;C&gt;&nbsp;M. A noter une
correspondance, dans le mode t&eacute;l&eacute;-informatique, de
certaines touches&nbsp;:</p>
<blockquote>
<pre>
<code>+-------------+-----------------------------------+
|   Touches   | Correspondance terminal classique |
+-------------+-----------------------------------+
| Sommaire    |   PF1                             |
|             |                                   |
| Annulation  |   PF2                             |
|             |                                   |
| Retour      |   PF3                             |
|             |                                   |
| Repetition  |   PF4                             |
|             |                                   |
| Envoi       |   Enter (Entree)                  |
+-------------+-----------------------------------+
</code>
</pre></blockquote>
<p>La touche <i>Entr&eacute;e</i> correspond &eacute;galement
&agrave; la s&eacute;quence de touches &lt;Ctrl&nbsp;J&gt;</p>
<h2><a name="ss8.3">8.3 Le modem</a></h2>
<p>Le modem du minitel permet des d&eacute;bits de 300 &agrave;
4800 ou 9600 bits/s</p>
<blockquote>Tous les mod&egrave;les de minitel n'autorisent pas
tous ces d&eacute;bits.</blockquote>
. Il est associ&eacute; &agrave; un coupleur travaillant sur 7 bits
de donn&eacute;es, un bit de parit&eacute; paire, un bit de
<i>start</i> et un bit de <i>stop</i>, soit 10 bits par
caract&egrave;re. Le tableau suivant donne les s&eacute;quences de
touches permettant de configurer le modem &agrave; ces
diff&eacute;rents d&eacute;bits.
<blockquote>
<pre>
<code>+-------------+--------------+
|   Touches   |    Debit     |
+-------------+--------------+
| &lt;Fcnt P&gt; 3  |  300 bits/s  |
|             |              |
| &lt;Fcnt P&gt; 1  | 1200 bits/s  |
|             |              |
| &lt;Fcnt P&gt; 4  | 4800 bits/s  |
|             |              |
| &lt;Fcnt P&gt; 9  | 9600 bits/s  |
+-------------+--------------+
</code>
</pre></blockquote>
<p>En standard V.23, il est possible de <i>retourner</i> le modem
(vitesse &eacute;mission-r&eacute;ception) avec la s&eacute;quence
&lt;Fcnt&nbsp;M&gt;&nbsp;R.</p>
<h2><a name="ss8.4">8.4 Utilisation du Minitel comme simple
terminal</a></h2>
<p>D'apr&egrave;s les conseils avis&eacute;s de <i>Pierre
Ficheux</i>, voici un exemple de configuration permettant de
connecter un Minitel&nbsp;:</p>
<h3>Configuration de getty</h3>
<p>Une m&eacute;thode simple consiste &agrave; compiler un
<i>getty</i> un peu particulier. Les sources se trouvent dans le
paquetage <b>getty_ps-2.0.7h</b>, en g&eacute;n&eacute;ral
disponible par <i>ftp</i> (ftp.ibp.fr) sous
<b>/pub/linux/tsx-11/sources/sbin</b>.</p>
<p>Il s'agit ensuite de modifier le fichier <i>tune.h</i> comme
suit&nbsp;:</p>
<blockquote>
<pre>
<code>#ifdef V23
#define DEF_CFL  (CS7|PARENB)                   /* Pour connexion V.23 */
#else
#define DEF_CFL  (CS8)                  /* default word-len/parity */
#endif /* V23 */
</code>
</pre></blockquote>
<p>Puis de compiler l'ensemble avec l'option -DV23 vous donnant un
fichier ex&eacute;cutable <i>uugetty</i> que vous pourrez renommer
<i>uugetty_v23</i>. Ensuite, il faut ajouter quelques
entr&eacute;es au fichier <i>/etc/gettydefs</i>&nbsp;:</p>
<blockquote>
<pre>
<code>#
# 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
</code>
</pre></blockquote>
<p>Enfin, vous modifiez le fichier <i>inittab</i> de fa&ccedil;on
&agrave; d&eacute;marrer <i>uugetty_v23</i> comme dans l'exemple
ci-dessous&nbsp;:</p>
<blockquote>
<pre>
<code>d4:45:respawn:/sbin/uugetty_v23 ttyS1 9600v23
</code>
</pre></blockquote>
<p>Une solution diff&eacute;rente consisterait &agrave; seulement
modifier <i>/etc/gettydefs</i>. La m&eacute;thode
pr&eacute;c&eacute;dente ne fait, finalement, que red&eacute;finir
l'option SANE qui ne comporte pas moins de 16 param&egrave;tres, en
modifiant l'un d'eux&nbsp;: DEF_CFL. Il est possible de la
red&eacute;finir par configuration en la rempla&ccedil;ant par
l'ensemble des param&egrave;tres, sauf CS8 que l'on remplacera par
CS7&nbsp;PARENB. Les entr&eacute;es de <i>/etc/gettydefs</i> sont
&agrave; modifier comme l'exemple ci-apr&egrave;s&nbsp;:</p>
<blockquote>
<pre>
<code>#
# 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]
</code>
</pre></blockquote>
<p>Bien que cela puisse para&icirc;tre lourd, il est
pr&eacute;f&eacute;rable d'utiliser cette m&eacute;thode. On a trop
tendance &agrave; recompiler des sources pour les adapter &agrave;
trente-six situations alors qu'ils fournissent
g&eacute;n&eacute;ralement un niveau de configurabilit&eacute;
extr&ecirc;mement complet et puissant. C'est le cas ici. Les
sources de <i>getty</i> pr&eacute;voient d'analyser tous ces
param&egrave;tres, et cela fonctionne parfaitement.</p>
<h2><a name="ss8.5">8.5 Utilisation du Minitel pour un acc&egrave;s
distant</a></h2>
<p>Deux cas peuvent se pr&eacute;senter&nbsp;:</p>
<ul>
<li>soit vous souhaitez d&eacute;dier votre ligne aux seuls
acc&egrave;s Minitel, auquel cas il est souhaitable d'envisager de
configurer votre syst&egrave;me comme ci-dessus. Il faut simplement
modifier le fichier <i>/etc/gettydefs</i> en rempla&ccedil;ant
l'option CLOCAL par CRTSCTS dans la premi&egrave;re partie (options
initiales) et par CRTSCTS&nbsp;HUPCL dans le partie suivante
(options finales)&nbsp;;</li>
<li>soit vous souhaitez seulement <i>pouvoir</i> utiliser le
Minitel comme terminal distant, sans que ce soit un acc&egrave;s
d&eacute;di&eacute;. Dans ce cas il n'y a rien &agrave; faire sur
votre syst&egrave;me (rien de plus que la configuration que vous
avez d&eacute;j&agrave; d&ucirc; mettre en place&nbsp;: getty,
gettydefs, inittab, ...). Sur le Minitel, il sera
pr&eacute;f&eacute;rable de le configurer en mode
t&eacute;l&eacute;-informatique (&lt;Fcnt&nbsp;T&gt;&nbsp;F).</li>
</ul>
<h2><a name="s9">9. Un modem particulier: le c&acirc;ble
null-modem</a></h2>
<p>Un c&acirc;ble <i>null-modem</i> est tout simplement un
c&acirc;ble inverseur permettant de relier ensemble deux ETTD sans
passer par l'interm&eacute;diaire de deux ETCD. Il est conforme aux
normes du C.C.I.T.T., c'est &agrave; dire qu'il simule les
diff&eacute;rents signaux. Son seul inconv&eacute;nient est que la
liaison ainsi r&eacute;alis&eacute;e ne peut d&eacute;passer 250
m&egrave;tres.</p>
<p>Voici le sch&eacute;ma du c&acirc;ble &agrave;
r&eacute;aliser&nbsp;:</p>
<blockquote>
<pre>
<code>+------+-------+---------------------------------+------+-------+
| 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  |
|      |       |                                 |      |       |
+------+-------+---------------------------------+------+-------+
</code>
</pre></blockquote>
<h2><a name="s10">10. Choix d'un modem</a></h2>
<p>Si vous &ecirc;tes sur le point d'investir dans un modem, il y a
au moins trois facteurs d&eacute;terminants pour vous&nbsp;:</p>
<dl>
<dt><b>Le co&ucirc;t</b></dt>
<dd>
<p>Ce facteur est g&eacute;n&eacute;ralement le plus important.
Vous vous &ecirc;tes certainement fix&eacute; une somme que vous ne
pourrez d&eacute;passer que dans des limites raisonnables (moins de
500 francs environ) et moyennant un service suppl&eacute;mentaire
non n&eacute;gligeable. On trouve &agrave; l'heure actuelle
d'excellents modems dans une gamme de prix de l'ordre de 1000 FF
&agrave; 2000 FF.</p>
</dd>
<dt><b>Le d&eacute;bit</b></dt>
<dd>
<p>La r&eacute;ponse pourrait &ecirc;tre vague&nbsp;: tout
d&eacute;pend de l'utilisation. En fait, il semble que la plupart
d'entre vous se connectera &agrave; Internet et la plupart des
fournisseurs proposent d&eacute;sormais des acc&egrave;s &agrave;
28800 bits/s. Il semble raisonnable d'investir dans un tel modem,
d'autant plus que leur co&ucirc;t est rarement sup&eacute;rieur
&agrave; 2000&nbsp;FF. Vous pouvez d'ailleurs esp&eacute;rer gagner
un peu sur les temps de connexions lors de transferts de fichiers
ou de navigation "WEB".</p>
</dd>
<dt><b>Le type de modem&nbsp;: interne ou externe</b></dt>
<dd>
<p>Pour r&eacute;pondre rapidement, on pourrait dire que le modem
interne a, en France, tous les d&eacute;fauts. Hors de France, il a
beaucoup de d&eacute;fauts. C'est un avis, il vaut ce qu'il vaut,
mais il semble partag&eacute; par bon nombre
d'utilisateurs&nbsp;:</p>
</dd>
</dl>
<ul>
<li>le premier d&eacute;faut est qu'il est interne et occupe donc
un emplacement sur le <i>bus</i>. En externe le modem est de plus
facilement transportable d'un PC &agrave; un autre, par
exemple&nbsp;;</li>
<li>le deuxi&egrave;me est que notre op&eacute;rateur national
demande &agrave; ce qu'un num&eacute;ro soit "br&ucirc;l&eacute;"
lorsqu'un appel &eacute;choue plusieurs fois. Une fois le
num&eacute;ro br&ucirc;l&eacute;, le modem refuse de le composer.
La seule solution est alors d'&eacute;teindre le modem et de
recommencer. Au fait, comment &eacute;teignez-vous un modem
interne&nbsp;?</li>
<li>le troisi&egrave;me est plut&ocirc;t li&eacute; au confort. La
plupart des modems externes poss&egrave;dent en effet des voyants
indiquant l'&eacute;tat de la connexion. Il est agr&eacute;able de
constater rapidement que la connexion est perdue ou que le
transfert est perturb&eacute;.</li>
</ul>
<p>Le seul inconv&eacute;nient du modem externe est qu'il occupe un
port s&eacute;rie. De plus il vaut mieux poss&eacute;der un port
s&eacute;rie rapide de type 16550A (les 16550 sont bogu&eacute;s).
Notez cependant que les ports s&eacute;rie de type 8250 (les
anciens) supportent des d&eacute;bits pouvant aller jusqu'&agrave;
57600 bits/s. Contrairement &agrave; ce que l'on dit, ils ne sont
pas si mauvais que cela. Qui est d&eacute;j&agrave; mont&eacute;
&agrave; des d&eacute;bits sup&eacute;rieurs&nbsp;?</p>
<h2><a name="s11">11. Quelques chiffres</a></h2>
<p>Beaucoup d'utilisateurs se posent des questions sur ce qu'ils
peuvent attendre de leur modem et du co&ucirc;t des communications.
Bien souvent, la facture surprend tous les deux mois.</p>
<h2><a name="ss11.1">11.1 D&eacute;bit r&eacute;el</a></h2>
<p>Un petit tableau vaut mieux qu'un long discours, voici quelques
valeurs de d&eacute;bits r&eacute;els. Evidemment, il n'est pas
tenu compte des probl&egrave;mes de lignes, de disponibilit&eacute;
des serveurs qui r&eacute;duisent parfois les taux de transfert
effectifs. De plus, les valeurs sont indiqu&eacute;es sans
compression logicielle. En cas de compression, il faudra multiplier
les valeurs par au plus 2, ce qui est d&eacute;j&agrave;
optimiste.</p>
<p>Il faut savoir qu'en transmission asynchrone 8 bits,
&eacute;tant donn&eacute;s les bits de <b>start</b> et de
<b>stop</b>, le rendement est d'environ 80%.</p>
<blockquote>
<pre>
<code>+---------------+--------------+-------------------+
| 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    |
+---------------+--------------+--------+----------+
</code>
</pre></blockquote>
<h2><a name="ss11.2">11.2 Co&ucirc;ts de connexion</a></h2>
<p>Le meilleur indicateur pour ce genre de calcul est bien entendu
France T&eacute;l&eacute;com. Essayons ici de d&eacute;gager
quelques grands chiffres. Les prix sont indiqu&eacute;es pour un
appel &agrave; Paris&nbsp;:</p>
<blockquote>
<pre>
<code>+---------------+---------------------------------+
|               |  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 |
+---------------+---------------------------------+
</code>
</pre></blockquote>
Prix de l'unit&eacute; T&eacute;l&eacute;com&nbsp;: 0,742 FF.
<h2><a name="s12">12. Envisager d'&eacute;crire des
applications</a></h2>
<p>Vous avez s&ucirc;rement plein d'id&eacute;es d'applications
int&eacute;ressantes, mais envisager de contr&ocirc;ler une
jonction s&eacute;rie vous fait peur&nbsp;? Voici quelques petites
indications.</p>
<h2><a name="ss12.1">12.1 Et si c'&eacute;tait
simple&nbsp;?</a></h2>
<p>Sous Unix, donc sous Linux, les seuls objets manipul&eacute;s
lors des entr&eacute;es/sorties sont les <i>fichiers</i>. (Tiens,
au fait, on aurait peut-&ecirc;tre d&ucirc; commencer par
l&agrave;&nbsp;! Bon, vous le saviez d&eacute;j&agrave;, ce n'est
pas un cours Unix). La jonction s&eacute;rie n'&eacute;chappe pas
&agrave; cette r&egrave;gle et le pilote vous la pr&eacute;sente
ainsi. Ici, il s'agit d'un (ou plut&ocirc;t deux comme on le verra
plus loin) fichier particulier, bien s&ucirc;r, puisque se cache
derri&egrave;re un pilote (<i>driver</i>) en mode caract&egrave;re,
mais la fa&ccedil;on de r&eacute;aliser les entr&eacute;es sorties
est la m&ecirc;me&nbsp;: <b>open, read, write, ioctl, close</b>. Il
y a quand m&ecirc;me quelques petites choses &agrave; savoir.</p>
<p>Le pilote s&eacute;rie s'est enregistr&eacute;, &agrave;
l'initialisation du noyau, comme un <i>tty</i>. Il est donc
g&eacute;r&eacute; comme un tty classique. Il apporte bien entendu
quelques caract&eacute;ristiques suppl&eacute;mentaires que nous
verrons rapidement dans la section concernant la commande
<i>ioctl</i>. Toujours est-il que si vous savez g&eacute;rer un
<i>tty</i> sous Unix (commande <i>stty</i>), vous saurez sans
probl&egrave;me g&eacute;rer ce pilote.</p>
<h3>open, close</h3>
<p>La m&eacute;thode d'ouverture et de fermeture d'un port
s&eacute;rie est classique. N&eacute;anmoins un m&eacute;canisme
particulier se cache derri&egrave;re la primitive <b>open</b> qui
est rapidement d&eacute;crit &agrave; la section <a href=
"#sec-appels">Appels entrants (Dial-in) et appels sortants
(Call-out) sous Linux</a>.</p>
<h3>read, write</h3>
<p>Rien &agrave; signaler de particulier.</p>
<h3>ioctl</h3>
<p>Le contr&ocirc;le de tout syst&egrave;me d'entr&eacute;e/sortie
se fait avec la commande syst&egrave;me <i>ioctl</i>. Elle est
souvent masqu&eacute;e par des commandes de haut niveau (setserial,
stty, modemstat, ...), mais elle est leur moteur.</p>
<p>Selon que vous souhaitez vous adresser aux
fonctionnalit&eacute;s classiques d'un <i>tty</i> ou aux fonctions
sp&eacute;cialis&eacute;es du pilote s&eacute;rie, vous utiliserez
deux sous-ensembles de commandes diff&eacute;rentes. Vous les
retrouverez dans le fichier &agrave; inclure
<i>linux/termios.h</i>. D&eacute;crivons-les rapidement (on
d&eacute;borde un tout petit peu du sujet
<code>:-)</code>)&nbsp;:</p>
<dl>
<dt><b>TCGETS - TCSETS</b></dt>
<dd>
<p>et quelques d&eacute;riv&eacute;s avec WAIT, FLUSH... Elles
permettent de r&eacute;cup&eacute;rer (resp. positionner) les
attributs standard <i>tty</i> dans une structure <i>termios</i>
(voir le fichier <i>linux/termios.h</i>)</p>
</dd>
<dt><b>TIOCSTTY - TIOCNOTTY</b></dt>
<dd>
<p>permettent de d&eacute;finir (resp. annuler) une session
d'utilisation du <i>tty</i>. Ceci est visible car, entre autres
choses, une cons&eacute;quence est le changement des droits du
fichier correspondant</p>
<blockquote>
<pre>
<code>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
</code>
</pre></blockquote>
</dd>
<dt><b>TCFLSH et compagnie</b></dt>
<dd>
<p>positionnement d'indicateurs (voir la commande stty)</p>
</dd>
<dt><b>TIOCGSERIAL - TIOCSSERIAL</b></dt>
<dd>
<p>permettent de r&eacute;cup&eacute;rer (resp. positionner) les
informations g&eacute;n&eacute;rales dans une (resp. &agrave;
partir d'une) structure <i>serial_struct</i> (voir le fichier
<i>linux/serial.h</i>)&nbsp;: le type de port s&eacute;rie, la
ligne, le port, l'irq le port utilis&eacute;... ni plus ni moins ce
que fait <i>setserial</i>.</p>
</dd>
<dt><b>TIOCMGET - TIOCMSET</b></dt>
<dd>
<p>permettent de r&eacute;cup&eacute;rer (resp. positionner) les
informations plus sp&eacute;cifiques &agrave; la jonction
proprement dite (dans un entier, sous forme de bits
positionn&eacute;s selon que l'indicateur correspondant est vrai ou
faux)&nbsp;:</p>
</dd>
</dl>
<blockquote>
<pre>
<code>+-------------------------------------------------------------------------------------------+
|   //     DSR      RNG       CAR        CTS        //   //    RTS            DTR         //|
|  //   (Data Set  (Ring)  (Carrier)  (Clear To    //   //   (Request   (Data Terminal   // |
| //      Ready)                        Send)     //   //     To Send)      Ready)      //  |
+------+----------+-------+----------+-----------+----+----+-----------+---------------+----+
 31   9     8         7        6          5        4    3        2          1            0
</code>
</pre></blockquote>
<h2><a name="sec-appels"></a> <a name="ss12.2">12.2</a> Appels
entrants (Dial-in) et appels sortants (Call-out) sous Linux</h2>
<h3>Introduction</h3>
<p>Le pilote s&eacute;rie du noyau de Linux propose de g&eacute;rer
un m&ecirc;me port s&eacute;rie &agrave; la fois pour les appels
entrants et pour les appels sortants exploitant ainsi pleinement
leur caract&eacute;ristique bi-directionnelle. Il offre donc
&agrave; l'utilisateur deux types de fichiers&nbsp;:</p>
<ul>
<li><code>/dev/ttyS&lt;n&gt;</code>&nbsp;: sont
g&eacute;n&eacute;ralement utilis&eacute;s en
entr&eacute;e&nbsp;;</li>
<li><code>/dev/cua&lt;n&gt;</code>&nbsp;: sont
g&eacute;n&eacute;ralement utilis&eacute;s en sortie.</li>
</ul>
<h3>Gestion</h3>
<p>Chaque port s&eacute;rie est enregistr&eacute; deux fois
aupr&egrave;s du g&eacute;rant <i>tty</i>&nbsp;: une fois en mode
<i>entr&eacute;e</i> (ttyS, majeur&nbsp;4) et une fois en mode
<i>sortie</i> (cua, majeur&nbsp;5). Voyons rapidement comment le
pilote g&egrave;re ensuite les "deux" ports&nbsp;:</p>
<ul>
<li>les ports s&eacute;ries <code>/dev/cua</code> sont
g&eacute;r&eacute;s en mode <i>non-bloquant</i>. Leur ouverture
n'est possible que si la ligne <code>/dev/ttyS</code>
correspondante n'est pas ouverte et active (sinon
<code>errno</code> retourne EBUSY)&nbsp;;</li>
<li>les ports s&eacute;ries <code>/dev/ttyS</code> sont
g&eacute;r&eacute;s en mode bloquant ou non-bloquant, c'est donc un
peu plus compliqu&eacute;. Si l'indicateur CLOCAL est
positionn&eacute;, l'ouverture en mode <b>bloquant</b> est
effective si la ligne <code>/dev/cua</code> est libre. Si
l'indicateur CLOCAL n'est pas positionn&eacute;, elle est effective
si les deux conditions suivantes sont r&eacute;unies&nbsp;:
<ul>
<li>la ligne est libre (le <code>/dev/cua</code> correspondant
n'est pas utilis&eacute;),</li>
<li>la porteuse (circuit 109) a &eacute;t&eacute;
d&eacute;tect&eacute;e.</li>
</ul>
Dans ce mode et pendant que l'ouverture est bloqu&eacute;e, la
ligne n'est pas occup&eacute;e, ce qui signifie qu'une application
peut toujours effectuer un appel sortant. Si le port est en cours
de fermeture, l'ouverture &eacute;choue (EAGAIN).
<p>L'ouverture en mode non-bloquant, quant &agrave; elle, est
effective si le port n'est pas d&eacute;j&agrave; ouvert et actif
(sinon <code>errno</code> retourne EBUSY)</p>
<blockquote>Les applications utilisent de plus le m&eacute;canisme
des fichiers de verrouillage garantissant l'unicit&eacute;
d'utilisation de la ressource.</blockquote>
.</li>
</ul>
<p>C'est le mode qu'utilisent beaucoup d'applications comme
<i>getty</i> qui souhaitent dans un premier temps initialiser la
ligne (pour &eacute;viter des instabilit&eacute;s li&eacute;es aux
connexions pr&eacute;c&eacute;dentes) voire ensuite pour
initialiser l'&eacute;quipement (modem). Elles ne
s'int&eacute;ressent qu'au fait que la ligne soit occup&eacute;e,
en fermeture ou libre. Si celle-ci n'est pas libre, l'application
se termine et le m&eacute;canisme du <i>respawn</i> se charge de
les relancer.</p>
<p>Pour la gestion de la connexion proprement dite, l'application
<i>getty</i> (pour prendre un exemple courant) ouvre la ligne, soit
en mode bloquant si vous laissez le modem en r&eacute;ponse
automatique, soit en mode non-bloquant si vous souhaitez qu'elle
g&egrave;re activement la connexion. Elle est alors en attente
bloquante en lecture (sur <i>read</i>).</p>
<h2><a name="s13">13. Quelques applications
int&eacute;ressantes</a></h2>
<h2><a name="ss13.1">13.1 Un num&eacute;roteur</a></h2>
<p>Cette id&eacute;e va faire plaisir &agrave; <i>Xavier
CAZIN</i>&nbsp;: c'est la sienne. Le mieux est de le laisser
parler&nbsp;:</p>
<blockquote>En fait, je trouverais tr&egrave;s utile de cliquer sur
un bouton pour appeler une personne retrouv&eacute;e dans une base
de donn&eacute;es par exemple. Surtout si elle se trouve &agrave;
l'&eacute;tranger (minimum 12 chiffres depuis ici). Donc, ce que
j'aimerais, ce sont les renseignements n&eacute;cessaires au
programmeur pour pouvoir construire un frontal qui demande au modem
de composer le num&eacute;ro choisi, puis affiche un message (si le
poste n'est pas occup&eacute;) du style "Le t&eacute;l&eacute;phone
sonne, prenez le combin&eacute;". Ces petites choses toutes simples
demandent de comprendre ce que signifie prendre la ligne et la
rel&acirc;cher, pour un modem.</blockquote>
<p>Excellent exercice. Alors avec tout ce que l'on vient de dire,
au travail&nbsp;<code>:-)</code>. En laissant de c&ocirc;t&eacute;
la partie base de donn&eacute;es, l'algorithme &agrave; utiliser
correspond &agrave; <i>l'organigramme d'un appel</i> donn&eacute;
&agrave; titre d'information au chapitre <a href="#sec-modems">Le
modem</a>, auquel il faut rajouter&nbsp;:</p>
<ul>
<li>au pr&eacute;alable, ouvrir le port s&eacute;rie
(<code>/dev/cua&lt;n&gt;</code>), le configurer. Le mieux est de
prendre exemple sur ce que fait <i>getty</i>&nbsp;;</li>
<li>envoyer ensuite les commandes AT d'initialisation puis de
num&eacute;rotation (utiliser la fonction chat()) qui fait ceci
tr&egrave;s bien&nbsp;;</li>
<li>enfin se mettre en lecture sur le port afin de d&eacute;tecter
les messages &eacute;mis par le modem. Le seul probl&egrave;me ici
est qu'il sera difficile d'attendre certains d'entre-eux
(NO&nbsp;ANSWER, TIMEOUT) &eacute;tant donn&eacute; qu'il faut
pr&eacute;venir l'utilisateur qu'il peut d&eacute;crocher.</li>
</ul>
<p>Par contre les messages NO&nbsp;DIALTONE (modem pas
branch&eacute;), et BUSY sont fort int&eacute;ressants et
permettent d'informer l'utilisateur imm&eacute;diatement.</p>
<h2><a name="ss13.2">13.2 modemstat et compagnie</a></h2>
<p>Vous trouverez sur les <i>serveurs ftp</i> habituels quelques
petits programmes permettant d'afficher l'&eacute;tat de la
jonction. Vous pourrez vous int&eacute;resser
particuli&egrave;rement &agrave; la fa&ccedil;on de
r&eacute;cup&eacute;rer les informations (plut&ocirc;t que sur
l'interface utilisateur qui est l'exemple m&ecirc;me de ce qu'il ne
faut pas faire).</p>
<blockquote>
<pre>
<code>/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
</code>
</pre></blockquote>
<p>Un bon point pour statserial aussi simple que bien
pr&eacute;sent&eacute;, en mode texte.</p>
<h2><a name="ss13.3">13.3 Un d&eacute;tecteur de signal 109
(CD)</a></h2>
<p>Lu dans <i>comp.os.linux.development.apps</i> cette demande</p>
<blockquote>Existe-t-il un utilitaire que je pourrais utiliser dans
un <i>shell-script</i> et retournant une valeur, disons 1, si le
signal <i>D&eacute;tection de porteuse</i> est mont&eacute; et 0
sinon&nbsp;?</blockquote>
<p>Le message ne dit pas quel en serait l'usage mais peu importe
c'est un excellent exemple d'utilitaire assez facile &agrave;
r&eacute;aliser. Voici d'ailleurs un exemple de code source
possible&nbsp;:</p>
<hr>
<pre>
------------------------- debut de carrier.c -------------------------
#include &lt;sys/types.h&gt;
#include &lt;sys/stat.h&gt;
#include &lt;sys/ioctl.h&gt;
#include &lt;termios.h&gt;
#include &lt;unistd.h&gt;
#include &lt;fcntl.h&gt;
#include &lt;string.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;errno.h&gt;
#include &lt;stdio.h&gt;

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)) &lt; 0) {
    fprintf(stderr, "%s: error opening \"%s\": %s\n", whoami, device,
            strerror(errno));
    return(EXIT_FAILURE);
  }

  if (ioctl(fd, TIOCMGET, &amp; modem_bits) &lt; 0) {
    fprintf(stderr, "%s: error getting modem line statuses for \"%s\": %s\n",
            whoami, device, strerror(errno));
    return(EXIT_FAILURE);
  }

  if (modem_bits &amp; TIOCM_CAR) {
    printf("1\n");
    return(EXIT_SUCCESS);
  }
  
  printf("0\n");
  return(EXIT_FAILURE);
}
------------------------- fin de carrier.c -------------------------
</pre>
<hr>
<p>On pourra ensuite l'utiliser dans un <i>shell</i> de la
mani&egrave;re suivante&nbsp;:</p>
<hr>
<pre>
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
</pre>
<hr>
<h2><a name="s14">14. Remerciements</a></h2>
<p>Ce document n'aurait vu le jour sans un certain nombre de gens
fort sympathiques et plein de bonnes id&eacute;es appartenant pour
la plupart &agrave; la mailing list de traduction :</p>
<p>Ren&eacute; COUGNENC,\\ Xavier CAZIN,\\ Bernard CHOPPY,\\
Fran&ccedil;ois AUDIBERT\\ Eric DUMAS,\\ Pierre FICHEUX, \\
Herv&eacute; MIGNOT, \\ Pierre VASSELLERIE, \\ Jacques LAVIGNOTTE,
\\ et tous les autres.</p>
</body>
</html>