RESEAUX Edition numérique format PDF

Transcription

RESEAUX Edition numérique format PDF
RESEAUX
Formation Télécom Réseaux
Pléneuf
V 1.1 – Septembre 2011
Edition Numérique
Tables des matières
SECTION 1 Concepts Réseaux
1. Modèles Réseaux
1
1.1 Cartographies
1.2 Normalisation
1.3 Classification générale des Réseaux
1.4 Commutation
1.5 Topologies
1.6. Architecture des Réseaux
1
2
6
10
14
17
2. Les Supports Physiques
25
2.1 Introduction
2.2 La paire torsadée
2.3 Le câble coaxial
2.4 La fibre optique
2.5 Les ondes radios
2.6 Débits
2.7 Comparatifs
25
25
27
28
29
30
32
SECTION 2 Pile X.25
3. Liaison ETTD-ETCD
33
3.1 Définition, Fonction, Objectif
3.2 Jonction ETTD-ETCD
3.3 Jonction V-24 ou RS 232
3.4 Transmissions synchrone & asynchrone
33
34
37
41
4. HDLC
43
4.1 Le protocole HDLC :
4.2 Mise en œuvre de HDLC
4.3 Echange HDLC
4.4 Conclusion sur HDLC:
4.5 Frame Relay
43
44
48
49
50
5. X 25
53
5.1 Norme X 25
5.2 Protocole X 25
5.3 Routage
5.4 Interaction niveau 2 et 3 dans X25
53
55
57
60
SECTION 3 Pile IEEE 802
6. Les normes IEEE 802
63
6.1 Résumé des différentes normes IEEE 802
6.2 Architecture
6.3 LLC (802.2)
6.4 Sous-Couche MAC
6.5 CDP
63
66
67
68
71
7. Ethernet
73
7.1 Description du CSMA/CD :
7.2 Fast Ethernet
7.3 Gigabit Ethernet
7.4 Auto-Négociation
73
76
79
80
c
Tables des matières
7.5 Wi-Fi
7.6 Wimax
82
85
8. Commutations
89
8.1 VLAN
8.2 Spanning Tree
89
92
SECTION 4 Pile TCP/IP
9. Protocoles niveau 2 dans Internet
97
9.1 SLIP
9.2 PPP
9.3 PPPoE
9.4 Procédures multilink
97
98
100
101
10. IP
103
10.0 Historique
10.1 Datagramme et protocole
10.2 Les adresses IP
10.4 Routage
10.5 Protocoles de contrôle
10.6 IP v6
10.7 6to4
10.8 Sécurité des réseaux IP
103
104
107
114
119
123
127
129
11. Protocoles de routages
135
11.1 Généralités
11.2 Protocoles de routages : RIP
11.3 OSPF
11.4 EIGRP
11.5 BGP
11.6 MPLS
11.7 Protocoles de routages : comparatif
135
136
139
141
142
144
146
12. TCP
147
12.1 Description niveau OSI 4
12.2 Qualités de Service
12.3 Le niveau 4 de TCP/IP
12.4 Le modèle de service TCP
12.5 Mise en œuvre TCP
12.6 Modèle de service UDP
12.7 Développement Client-Serveur
147
149
151
152
152
162
163
SECTION 5 Services
13. DNS
167
13.1 Nom de domaine
13.2 Service DNS
13.3 Le Protocole DNS
13.4 NetBios
167
169
170
174
14. Mail
177
14.1 Adresse Mail
14.2 Transfert de Mail
14.3 SMTP
177
178
180
d
Tables des matières
14.4 POP3
14.5 Représentation des Données
14.6 Types MIME
14.7 Messagerie instantanée
181
182
185
186
15. HTTP
189
15.1 Html
15.2 Protocole Http
15.3 URI
15.4 Navigateur
189
191
192
194
16. VoIP
197
16.1 La Voix
16.2 VoIP / ToIP
16.3 H.323
16.4 SIP
16.5 MGCP
16.6 Les protocoles de transport
197
198
200
201
203
204
17. Administration
209
17.1 Emulation de terminal
17.2 Transfert de Fichiers
17.3 Gestion des services
209
210
211
SECTION 6 Réseaux Télécoms
18. Réseaux Téléphoniques
213
18.1 Le RTC
18.2 RNIS
18.3 ADSL
213
217
221
19. Réseaux Hauts-débits
227
19.1 Synthèse des besoins
19.2 Hiérarchies numériques
19.3 PDH
19.4 SDH
19.5 Architectures des réseaux interconnectés
227
228
230
232
236
20. ATM
237
20.1 Principe
20.2 Modèle ATM
20.3 Mécanismes ATM
20.4 La commutation
20.5 Intégration IP/ATM/SDH
237
238
241
245
247
21. Systèmes Mobiles
253
21.1 Normes et services
21.2 Système GSM
21.3 Concepts Cellulaires
21.4 Identification
21.5 Traitements numériques GSM
21.6 Systèmes 3G
253
254
256
257
257
259
e
Tables des matières
SECTION 7 Systèmes Informatiques
22. Architecture d’un Système Informatique
261
22.1 Présentation Générale
22.2 Structure
22.3 USB
22.4 Technologie des mémoires
22.5 Les Types de Mémoires
22.6 Architecture d’un processeur
22.7 Fonctionnement
22.8 Evolution des architectures
261
262
265
267
270
273
278
282
23. OS : Operating System
285
23.1 Introduction aux OS
23.2 Le noyau
23.3 Systèmes de fichiers
23.4 Systèmes de stockage
23.4 Les processus.
23.5 Gestion de la mémoire
23.6 Exécution
23.7 Boot – Amorçage
285
288
290
298
299
302
308
310
SECTION 8 Sécurité
24. Cryptologie
313
24.1 Vocabulaire
24.2 Techniques fondamentales
24.3 Cryptanalyse
24.4 Nombres premiers
24.5 Mathématiques
24.6 Stéganographie
24.7 Empreintes
313
316
319
321
324
326
329
25. Systèmes Cryptographiques
333
25.1 Historique
25.2 Cryptographie à clé secrète
25.3 Cryptographie à clé publique
25.4 Génération d’aléatoire
25.5 Cryptographie Quantique
25.6 Authentification
25.7 Cryptographie Appliquée
333
336
340
343
346
348
350
Annexe A :
Annexe B :
Annexe C :
Annexe D :
Annexe E :
Annexe F :
Annexe G :
353
354
355
357
358
359
360
Tableau ASCII
Tableau ANSI- ISO 8859-15
OS: Command Line Utilities
Masques CIDR
Pile OSI
En-tête Classiques
Services Internet
Bibliographie
Index
361
363
f
Avant-Propos
Avec ce troisième volume s'achève la trilogie des Télécommunications modernes, au seuil de
l'aventure de l'Information. Constitués en réseaux hétérogènes s'interconnectant et coopérant selon des
variantes illimitées, les systèmes télécoms nous offrent des moyens aboutis d'oublier le chemin que
nous avons dû parcourir pour en arriver là.
Car si ce parcours a commencé avec la beauté simple des mathématiques et de la sinusoïde parfaite,
c'est dans les tracas du quotidien que prendra fin le voyage : envoyer des messages, rencontrer des
amis, publier ses photos de vacances, protéger ses données banquaires... Autant de soucis que
l'humanité partage depuis plus de 2000 ans.
La mise en place de réseaux opérationnels ne peut s'envisager sans une architecture en couche,
orientée vers les services. Nous étudierons différents modèles réseaux, avant de s'intéresser aux
multiples applications. Les choix faits ici sont guidés par l'expérience quotidienne du technicien
éclairé : il trouvera donc des tableaux de synthèse, comparatifs, listes de commandes ou de paramètres
utiles ou pratiques. Les grandes envolées lyriques sur le modèle OSI, l'aventure de l'informatique
contemporaine ou les mystères de la cryptologie n'ont pas été oubliées pour autant.
Quelques aspects sur la sécurité en particulier, ou les réseaux téléphoniques mobiles, demanderont à
être complétés dans les prochaines éditions.
Si une suite devait être envisagée, c'est indéniablement dans l'étude des techniques de traitement de
l'information massive qui s'accumule chaque jour dans les systèmes. Ces réseaux tendent l'architecture
de cyber-espaces où se développe l'information tel un organisme vivant. L'information est un
processus itératif et récursif qui se déploie et qui reste à comprendre et à assimiler. Gageons que
certains ont déjà commencé.
Allons moussaillons! L'heure est venue d'hisser les voiles et de prendre la mer. L'horizon nous défie.
Cap au large!
Je remercie tout particulièrement l’ensemble de mes étudiants qui ont
au fil des années contribué à l’élaboration de cet ouvrage
MF
g
h
Section 1 – Concepts Réseaux
1. Modèles Réseaux
1.1 Cartographies
1.1.1 Du rôle des cartes
Avant d’entreprendre un voyage dans un pays inconnu, on a l’habitude de se munir d’une carte afin
d’avoir une vision d’ensemble des lieux que l’on va fréquenter. Cette carte donne un aperçu
géographique, mais elle permet d’accéder à des informations d’un niveau plus fin, comme la nature du
réseau routier ou ferroviaire, les villes, les services pour se restaurer, dormir, les sites culturels…
Représenter une carte c’est avant tout faire une représentation à un instant donné, la réalité évolue et il
faut également ne pas être surpris des écarts entre les informations fournies par un guide et ce qui sera
découvert sur le terrain.
Internet (avec une majuscule) est en soit un monde, virtuel mais néanmoins présent dans notre
quotidien. Les réseaux sont anciens (Chappe…) mais l’Internet contemporain naît au tout début des
années 1970 aux états unis. Il évoluera de manière quasi exponentiel jusqu’à aujourd’hui. Cette
rapidité fait d’Internet une entité très difficile à représenter. Il s’est doté de structures de
gouvernement, de régulation mais aussi de zones plus ou moins contrôlées.
En outre, la question se pose de la nature de ce que l’on doit représenter : les lieux de localisations des
terminaux, des serveurs, les endroits les plus fréquentés, les plus intéressants, les artères de
communication…
Le paragraphe suivant propose une approche croissante, depuis le plus concret, les équipements,
jusqu'au plus dématérialisé, les services.
1
Section 1 – Concepts Réseaux
1.1.2 Quelques cartes
Câbles Sous-marins Fibre Optique – Source Alcatel
Concentration des serveur WEB dans le monde (2005) : [Noir >1000000 ; blanc <100]
Répartitions des services en fonction du nombre d’accès (2007-www.nowhereincoming.net)
2
Section 1 – Concepts Réseaux
1.1.3 Histoire
En 1970, l’informatique est à ses balbutiements : systèmes d’exploitation, microprocesseur,
calculateurs… Le volume des équipements de calculs imposent de disposer de terminaux légers que
l’on va relier à des ordinateurs puissants, et donc impose le développement de moyens de mise en
réseaux.
Rapidement, l’informatique puis la mini-informatique fait place à la micro-informatique et au PC
domestique dans les années 1980 : le micro-ordinateur investit le champ de la bureautique. A
nouveau, le partage des ressources, l’échange de données vont contribuer à la mise en place de
nouveaux réseaux de transmissions de données (RNIS, X25, Réseaux locaux…)
Au cours des années 1990, ces réseaux sont devenus d’un usage courant dans notre société,
L’invention du Web, la démocratisation du mail, la baisse des coûts matériels et l’accroissement de
leurs performances ont contribué a la popularité grandissante d’Internet.
Les années 2000 ont vu depuis la généralisation des réseaux, leur interconnexions, l’émergence de
nouveaux produits et les premiers bouleversements dans les comportements du grand public. Les
concepts de convergence, de mobilité, de positionnement, renversent les hiérarchies établies et
ouvrent des perspectives inédites.
1.1.4 Géographie
On appelle topologie la disposition géométrique de ces nœuds et des supports qui les relient.
Généralement, les nœuds correspondent à des stations de travail, mais ils peuvent également
représenter d’autres équipements tels qu’une imprimante. Ces différents nœuds peuvent être reliés de
diverses manières, le plus souvent par des câbles électriques (paires torsadées ou câbles coaxiaux),
mais aussi maintenant au moyen de fibres optiques, ou encore, plus rarement, grâce à des faisceaux
hertziens.
Le terme architecture ne fait pas référence à la disposition géographique des stations mais à la
structure logique de leurs protocoles de communication, ou piles de protocoles. C’est un terme qui fait
référence à des termes logiques, alors que topologie est d’ordre physique.
Un réseau se décrit donc à la fois en terme de structure physique (topologie) et de structure logique
(architecture).
1.1.5 Langues
Une fois reliés physiquement (topologie), les équipement doivent s’échanger des informations aux
différents niveaux de leur architecture : signal électrique, horloge, débit, adressage, format des
message et des données… Ces éléments sont qualifiés de protocoles, et sont donc organisé sous forme
d’une pile allant des éléments matériels aux plus informels.
Ils sont comme une langue commune qui doit permettre la compatibilité et la pérennité du réseau
d’échange. Ces protocoles doivent donc répondre à des accords de normalisation, ou au moins des
consensus partagés pour que la notion d’Internet soit pleinement cohérente.
3
Section 1 – Concepts Réseaux
1.2 Normalisation
1.2.1 Nécessité d’une normalisation
La diversité des éléments actuels du marché en informatique et plus encore dans celui des réseaux fait
qu’il est nécessaire d’avoir recours à la normalisation. Le marché ne peut ignorer les normes, ni les
normes ignorer le marché.
Supports de transmissions (du filaire à la radio)
Equipements particuliers ( modems, concentrateurs, commutateurs, routeurs … )
Terminaux ( Micro ordinateurs, minitel, VT 320, terminaux mobiles… )
Logiciels et langages de programmation (C, java, html…)
Systèmes d’exploitations ( DOS,Windows 3.1,Windows 95-98 , NT, XP, 7, Unix(s), Linux,
MacOs, Androïd … )
Topologies diverses
Partages de formats d’adresses
La communication devient complexe, d’où la nécessité de définir une architecture réseau normalisée.
Les rôles de la norme sont donc de :
Permettre des échanges sur des machines de constructeurs différents.
Assurer l’indépendance des applications vis à vis des contraintes de transmission
Garantir l’évolution future sans remettre en cause l’architecture logicielle et matérielle
La normalisation des réseaux concerne autant le matériel informatique ( PC, modem, routeur…) que
les supports de transmission. Au final les normes présentent une double sécurité :
pour les industriels, auxquels elle garantit compatibilité avec les matériels concurrents
pour les clients, auxquels elle assure l’inter-fonctionnement entre ses différents acquis.
1.2.2 Les organismes nationaux de normalisation
Seuls les organisations ISO, CEI et UIT-T sont officiellement chargées de normaliser en matière de
réseaux. Elles siègent toutes à Genève et sont indirectement rattachées à l’organisation des nations
unies.
Les principaux organismes nationaux :
AFNOR
ANSI
DIN
BSI
Association Française de NORmalisation, divisée en
commissions ( industriels, administrations, utilisateurs)
American National Standard Institute
Deutsches Institut Für Normung
British Standart Institute
France
USA
Allemagne
Grande Bretagne
1.2.3 Les organismes internationaux
Citons quatre organisme souvent cité dans le domaine des réseaux :
ISO
CEI
UIT
IEEE
IETF
International Standardization Organization,
Commission Electrotechnique Internationale
Union Internationale des Télécommunications
Institute of Electronics and Electrics Engineers
Internet Engineering Task Force
regroupe environ 90 pays
affiliée à l’ISO
Ex-CCITT
Interne à l’Internet Society
L’UIT (ex CCITT, Comité Consultatif, Internationales des Téléphones et Télégraphes) et L’ISO
constituent les deux organismes les plus importants.
4
Section 1 – Concepts Réseaux
L’UIT-T publie des recommandations. Celles-ci sont étudiées tous les 4 ans sous forme de recueil.
Les domaines d’application sont identifiés par une lettre (cf Partie 2.3).
L’ISO reprend en principe les normes de l’UIT et de l’IEEE en leur donnant un nom propre de façon à
unifier les normes internationales.
1.2.4 Les principaux groupements de constructeurs
Les groupements de constructeurs regroupent les principales industries privées :
ECMA
EIA
European Computer Manufactures
Electronic Industries Association
POSI
Promotion conférence for OSI in Japon
COS
SPAG
NTT
Committee On Standardization
Standard Promotion and Application Group
Nippon Telephon and Telegraph Corporation
Assocation, à l’origine constituée
uniquement de constructeurs européens
(Bull, Philips, Siemens…) aujourd’hui il
comprend DEC, IBM, Unisys…
connue essentiellement pour les
recommandations RS232C
association des six principaux
constructeurs japonais
USA
Europe
1.2.5 Principes d’élaboration d’une norme ( ISO )
La rédaction d’une norme est une succession de publications, la durée entre le projet et la publication
définitive peut être longue. Un projet de normalisation est formalisé dans un document brouillon qui
expose les formes stables, chaque pays émet son avis ( vote ). Puis une forme quasi définitive est
publiée, elle constitue une base pour les constructeurs. La norme définitive est ensuite publiée.
Plus la norme initiale est solide et bien étudiée, meilleur sera son succès grâce à une fiabilité
importante qui autorise son adoption par un large ensemble d’industriels. En revanche, une norme
présentant des lacunes, évoluant trop rapidement, avec des risques d’incompatibilité tant ascendante
entre les versions successives qu’entre produits sensés répondre à la même norme, ne sera pas adopté
massivement et ne restera probablement qu’un tas de papier (souvent épais).
1.2.6 La norme OSI
L’ISO a préconisé un modèle de référence pour les architectures de réseau OSI ( Open System
Interconnexion ). La plupart des constructeurs respectent la norme OSI ou créent des passerelles entre
leurs propres modèles d’architecture et la norme OSI.
Le modèle OSI définit 7 couches chacune correspondant à une ou des fonctions précises. il se divise
en 2 blocs :
Les couches basses ( transport des messages à travers le réseau)
Les couches hautes ( application / traitement des informations)
Ce modèle est d’une extrême importance théorique puisqu’il sert de référence descriptive à l’ensemble
des architectures réseaux.
Nous allons approfondir le modèle de référence OSI dans la partie N°5 de cette section, Architecture
des réseaux.
5
Section 1 – Concepts Réseaux
1.2.7 Séries des recommandations UIT-T
L’UIT-T est la section de l’UIT chargé des recommandations pour les télécommunications et
Réseaux. Chaque lettre de l’alphabet correspond à un domaine de normalisation propre appelée série ;
Dans chaque série, un chiffre permet de fixer le cadre technique concerné.
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
X
Y
Z
Organisation du travail de l’UIT
Moyens d’expression – Définitions, Symboles, Classification
Statistiques générales des télécommunications
Principes généraux de télécommunication
Exploitation générale du réseau, service téléphonique
Services de télécommunication non téléphonique
Systèmes et supports de transmission, systèmes et réseaux numériques
Systèmes audiovisuels et multimédias
Réseau numérique à intégration de services - RNIS
Transmission des signaux télévisuels et autres signaux multimédia
Protection contre les perturbations
Construction, installation et protection des câbles et autres installations extérieures
RGT et maintenance des réseaux : systèmes de transmission, télégraphie, télécopie,
circuits téléphoniques, Circuits loués internationaux
Maintenance : circuits internationaux de transmission radiophonique et télévisuelle
Spécifications des appareils de mesure
Qualité de transmission téléphonique, installations téléphoniques et réseaux locaux
Commutation et signalisation
transmission télégraphique
Equipements terminaux de télégraphie
Terminaux de services télématiques
Commutation télégraphique
Communications de données sur le réseau téléphonique
réseaux pour données et communication entre systèmes ouverts
Infrastructure mondiale de l’information
Langages de programmation
1.3. Classification générale des Réseaux
1.3.1 Modes de diffusion de l’information
Les réseaux se différencient, aussi, selon les modes de diffusion de l’information.
On distingue ainsi plusieurs modes :
La diffusion : La source d’information diffuse ses informations vers des stations réceptrices. La
relation est unidirectionnelle de 1 à N réseaux de diffusion. Les réseaux de radiodiffusion
constituent un exemple de ce type de réseau.
Source
La Collecte : A l’inverse, un ensemble de stations peut envoyer leurs informations à un seul
destinataire. La relation est ainsi unidirectionnelle de N à 1 réseau de collecte (les réseaux de
télémesure ).
6
Section 1 – Concepts Réseaux
Stations Sources
La Commutation : D’une manière générale, l’abonné d’un réseau désire pouvoir atteindre tous
les autres abonnés, ou une partie de ceux-ci. Le réseau doit établir une relation 1 à 1 parmi N. Ces
réseaux de mise en relation, sont dits réseaux de commutation (le réseau téléphonique RTC ).
Commutation
La liaison point à point : Il existe aussi le cas où deux abonnés sont directement reliés l’un à
l’autre par un lien ( fibre, câble ), dans ce cas c’est une liaison point à point.
Point à Point
Peer to Peer
unicast
La liaison Client Serveur : C’est une liaison fondamentalement asymétrique, comme la
diffusion, mais qui du point de vue du client s’apparente à de la liaison point à point.
Serveur
Client
Client serveur
La diffusion multicast : C’est une variante du broadcast générale où une fraction des stations
destinataires est ciblée par les paquets.
Diffusion
Multicast
Le point à point anycast : Il s’agit d’élire parmi un ensemble potentiel de cibles un seul
destinataire qui pourra être relayé par une nouvelle station en cas de défaillance.
7
Section 1 – Concepts Réseaux
point à point
anyc ast
1.3.2 Réseaux PAN
Personal Area Network ou Réseau Local Personnel. Réseau qui concerne la proximité d’un utilisateur
personnel unique, y compris les équipements standards de communication : téléphone, PDA, pager,
ordinateur portable, appareil photo… Il couvre une distance n’excédant pas une pièce (10 mètres) et
son essentiellement associé à des technologies sans-fils (WPAN – Wireless PAN).
Le concept de BAN (pour Body Area Network) évoque la notion de développement des applications à
la périphérie voir l'intérieur du corps, en particulier pour les applications médicales.
1.3.3 Réseaux LAN
Local Area Network ou Réseau Local d’Entreprise (RLE). Réseau dont l’étendue physique est limitée
à une salle ou un bâtiment. Il raccorde un nombre limité de machines, jusqu’à une ou quelques
centaines.
1.3.4 Réseaux MAN
Metropolitan Area Network. Réseau métropolitain chargé d’interconnecter entre eux des machines ou
des réseaux LAN disposés sur une distance de plusieurs kilomètres, par exemple sur un campus
universitaire, ou encore une ville, pour l’interconnexion des administrations etc…
Il peut compter quelques milliers de machines interconnectées.
1.3.5 Réseaux WAN
World Area Network, réseaux étendus à l’échelle d’un pays, d’un continent ou de la planète. Transpac
en France et Internet sont des exemples de WAN. Il peut également s’agir de l’interconnexion de
LAN et de MAN, comme dans le cas d’Internet.
Ici le nombre de machines n’est pas limité.
8
Section 1 – Concepts Réseaux
1.3.6 Frontières de réseaux
Les réseaux sont des entités avec un degré plus ou moins grand d’autonomie en terme de services et
d’accès. Leur interconnexion permet de fournir des « portes de sortie » afin d’élargir cette offre de
services. Ces réseaux peuvent être privés ou publics. Si une administration, une entreprise, un
opérateur est propriétaire d’un réseau physique, il sera de nature privée et d’accès réservé. Si le réseau
appartient à une organisation publique, il peut être ouvert à tout utilisateur.
La distinction INTRANET/INTERNET symbolise cette classification. Il faut en outre distinguer les
réseaux dits de données, des réseaux d’opérateurs télécoms destinés à la téléphonie.
1.3.7 Réseaux d’accès et réseaux cœurs
La distinction historique LAN/MAN/WAN conduit à une approche contemporaine en terme de
réseaux périphériques, réseaux d’accès et réseaux cœurs. Les points mis en relation à travers un
réseaux (par exemple client et serveur) utilisent des moyens matériels de profondeurs variables.
Composant
Tâche
Exemples
Client
Accède à un service
Humain, logiciel, OS…
Réseaux d’accès
Permet de raccorder un terminal à un
réseau ouvert
Réseaux locaux d’entreprise, WIFI, boucle
locale RTC, xDSL, réseaux de
téléphonies…
Réseaux cœurs
Aiguillage des connections (commutation),
cohabitation des différents flux,
identifications des terminaux
ATM, SDH…
Serveur
Fournit le service au client via les réseaux
WEB, mail, phonie, video…
Client
Serveur
Réseau d'accès
Réseau d'accès
Réseaux coeur
Réseaux coeur
Le schéma qui suit résume l’ensemble des paramètres définis dans cette partie.
9
Section 1 – Concepts Réseaux
PAN
LAN
WAN
Réseaux d'accès
FA I
Réseaux coeurs
Opérateurs
Etendue
géographique
BAN
PAN
LAN
MAN
<10cm
WAN
Débit moyen
Technologies
Body Area Network – applications médicales
<10m
~1Mbit/s
Bluetooth, irDA, UWB, ZigBee
<100m
100Mbit/s – 1Gbit/s
Fast-Giga Ethernet – WiFi
<10 000m
~10Gbit/s
Giga/10Giga Ethernet – FDDI – DQDB – WiMax
-
~100Gbit/s
ATM – MPLS – SDH
1.3.8 Réseaux et Télécoms
Deux mondes s’affrontent pour des raisons historiques liées à la nature fondamentale des types de
données à transmettre sur les réseaux : la voix et les données.
La voix est très contraignante en terme de délais d’acheminement, de garantis de bande passante, de
chemin de retour. Les réseaux télécoms prennent en compte tous ces paramètres ce qui les rend
coûteux à développer et entretenir. Il s’agit d’une approche circuit qui favorise le lien en point à point.
Les données ont en revanche peu de ces contraintes. Les réseaux associés sont donc faciles à mettre en
œuvre avec une approche de commutations de paquets.
Pour résumer l’antagonisme de ces deux approches, le tableau qui suit donne quelques axes de
réflexion.
Types de services principaux
TELECOMS
RESEAUX
Voix
Données
Commutation
Circuit
Paquet
Multiplexage
TDM (Time Division)
Aléatoire
Qualité de services
Elevée
Faible
Coût
Elevé
Faible
Origine
Europe
US
Réactivité des évolutions
Lente
Elévée
Protocoles
ATM
TCP/IP/MPLS
Technologie
SDH
Ethernet
1.4 Commutation
1.4.1 Introduction
La mise en communication de deux utilisateurs au travers d’un réseau met en oeuvre des
commutateurs et des lignes ou circuits de télécommunication.
10
Section 1 – Concepts Réseaux
La connexion réseau réalisée est selon le cas, ponctuelle ou permanente et correspond respectivement
à l’utilisation de services liaisons commutées ou liaisons spécialisées. Cette connexion est obtenue par
la mise bout à bout de liens et de commutateurs, utilisant une technique de commutation pouvant être
du type circuit, message ou paquet.
La commutation de circuit et la commutation de paquets occupent la quasi-totalité du terrain. Ils sont
associés traditionnellement et respectivement au service téléphonique et aux services de données.
1.4.2 Commutation de circuits
Cette technique largement répandue dans le monde des télécommunications est notamment mise en
oeuvre sur les réseaux historiques RTC et NUMERIS\RNIS. Elle permet d’établir une liaison
physique temporaire entre deux utilisateurs du réseau. Le long de la route fixée entre deux utilisateurs
finals, chaque commutateur, choisit un circuit parmi « n » dans la direction visée.
B
C
D
Transmission
du message
Etablissement de
la connexion RTC
A
Chaque commutateur comporte 3 lignes de sortie. Lorsqu’un signal d’appel transite dans le
commutateur, une connexion physique est établie entre la ligne sur laquelle parvient l’appel et l’une
des lignes de sortie en direction du destinataire.
A
B
C
D
Dès que le signal de sortie est établi, on peut y faire passer toutes sortes d’informations (paroles,
données, etc.) mais le rendement est assez médiocre. En effet, la commutation de circuits possède une
propriété importante : l’obligation d’établir un circuit de bout en bout avant que toute information soit
transmise.
Le temps écoulé entre l’émission de l’appel et la sonnerie chez le destinataire correspond au temps
d’établissement du circuit. Il peut atteindre facilement 10 secondes. Pendant tout ce temps, le système
téléphonique cherche un chemin dans le réseau pour établir un circuit entre les correspondants.
On peut donner les caractéristiques suivantes :
très mauvaise utilisation du réseau
50% du temps, la ligne ne sert à rien (temps de silence)
échange rapide – délai de transmission faibles
s’adapte bien à la voix – service connecté
11
Section 1 – Concepts Réseaux
1.4.3 Commutation de messages
La commutation de messages est une alternative à la communication de circuits, principalement dans
une première approche pour l’échange de données et non pour le téléphone.
Cette technique convient pour des applications dans lesquelles le temps de réponse n’est pas le critère
prépondérant. Elle consiste en une succession de lignes et de nœuds de stockage et commutation. Le
message fourni par l’utilisateur au réseau est stocké dans chacun des nœuds de commutation traversé
avant d’être relayé avec d’autres messages en attente de transfert, vers le nœud suivant.
Cette méthode permet une bonne utilisation des circuits mais au prix d’une lenteur inacceptable pour
des applications temps réel.
B
C
D
Transmission
du message
A
échange long
s’adapte mieux aux données « DATA »
si il y a une erreur à la réception, il faut renvoyer tout le message
1.4.4 Commutation de paquets
Combinant les avantages des deux techniques précédentes, cette technique est généralisée
particulier sur les réseaux X25 publics ou privés.
B
C
D
Transmission
du message
A
en
Elle dérive de la précédente, la segmentation des messages en paquets de taille plus réduite (100 octets
au lieu de 1000), qui améliore les possibilités de reprise en cas d’erreurs. de même, on substitue dans
les nœuds de commutation, des mémoires électroniques (RAM) aux mémoires magnétiques (disques)
utilisées en commutation de message. Enfin, à partir d’un nœud de commutation, le multiplexage des
différents paquets utilisateurs sur la ligne de communication, permet en combinaison avec la réduction
du temps de stockage et de transmission, d’obtenir des temps de transit performants.
12
Section 1 – Concepts Réseaux
A
C
B
D
Ainsi l’historique TRANSPAC, par exemple, garantit un temps de transit paquet inférieur dans 90%
du temps à 150 ms quel que soit les accès et le nombre de nœuds traversés.
paquet plus petit que le message donc plus rapide
se reconstitue plus vite en petits morceaux à la fin, qu’un gros morceau
si il y a une erreur à la réception, il faut renvoyer un seul paquet (ou 2...), mais pas tout le
message
Une cellule (terme utilisé pour l’ATM) désigne un paquet de petite taille (53 octets pour la cellule
ATM).
1.4.5 Le mode non connecté
CNLS : Connectedless Oriented Network Service
Un exemple classique de la liaison en mode non connecté est le mail : le courier est envoyé sans
garantie sur le fait que son destinataire le lira.
Il n’y a aucune garantie sur l’acheminement des données. Les informations transitent dans le réseau
indépendamment les unes des autres. Le destinataire n’est pas nécessairement à l’écoute, les
informations sont, dans ce cas, perdues. Dans un tel mode de fonctionnement les routes empruntées
par les différents blocs d’information peuvent être différentes, le séquencement des informations ne
peut être garanti.
Dans ce mode de mise en relation, aucune certitude de délivrance n’est donnée (pas de mécanisme
d’accusé de réception). Les services de commutation de message et par paquets sont adaptés au mode
non connecté
1.4.6 Mode connecté
CONS : Connected Oriented Network Service
L’exemple typique est celui de la communication téléphonique.
Il y a dialogue entre 2 entités communicantes. Une liaison physique (commutation de circuits) ou
virtuelle (commutation de paquets) est établie préalablement à toute échange de données. Lors de la
phase d’établissement de la connexion, les différentes ressources nécessaires au transfert (buffers,
voies…) sont réservées. Tous les messages empruntent la route préétablie, le séquencement est assuré
(même chemin), la délivrance est garantie (connexion préalable, mécanisme d’accusé de réception).
Lorsque l’échange est terminé, une phase de déconnexion libère les ressources.
Une liaison en mode connectée se déroule en principe selon le même schéma :
Etablissement de connexion
Echange de données
Libération de la liaison
Une commutation de circuit est typique du mode connecté
Une commutation de paquets peut utiliser ce mode car après la phase d’établissement du chemin, il
n’est plus nécessaire que les différents paquets contiennent l’adresse du destinataire, seul un adressage
simplifié identifiant la voie subsiste, ce qui allège le protocole et améliore les performances.
13
Section 1 – Concepts Réseaux
1.5 Topologies
1.5.1 Introduction
Chaque équipement informatique est relié au support physique ( câble, fibre, … ) par l’intermédiaire
d’un contrôleur de communication ( carte d’interface ) et d’une unité de raccordement ( MAU :
Médium Acces Unit ) au support qui correspond à l’interface physique.
Equipement
Contrôleur de
communication
MAU
Support physique
La topologie représente la manière dont les équipements sont reliés entres eux par le support
physique. Lors de la conception, la topologie du réseau est fonction de plusieurs paramètres :
Des fonctions souhaitées (application temps réel, bureautique, simple partage d’imprimante)
De la fiabilité
Des coûts (du câblage, des cartes réseaux, des ponts-commutateurs… ,et des logiciels
d’administration)
1.5.2 Topologie en bus
Sur câbles coaxiaux, les connexions au niveau du câble commun sont assurées par des connexions
électriques intégrant un traitement de codage mais dont le rôle est neutre dans le fonctionnement
global du réseaux.
Deux types de bus peuvent exister :
Bus bidirectionnel : les informations peuvent circuler dans les deux sens mais non simultanément
sur un câble unique. Lorsqu’une station émet, le signal se propage dans les deux sens, de part et
d’autre de la connexion, vers toutes les autres stations. Norme IEEE 802.3.
Bus unidirectionnel : les informations ne peuvent circuler que dans un sens et la transmission à
toutes les stations est assurée par l’existence de deux canaux séparés (deux câbles distincts ou un
seul câble et deux canaux multiplexés en fréquence). Norme IEEE 802.6. Les performances
dépendent essentiellement du nombre de nœuds et du trafic.
Bus
Bus bidirectionnel
Cette topologie est économique en câblage. Dans le cas d’un support de type câble coaxial, elle
permet facilement l’extension du réseau par ajout d’équipements dans la limite de la capacité de
gestion du système d’exploitation. Cependant si le support est de type optique, cette opération s’avère
plus délicate, car elle nécessite la coupure de la fibre optique à l’endroit de la connexion.
14
Section 1 – Concepts Réseaux
En ce qui concerne la fiabilité, le dysfonctionnement d'une station ne met pas en cause le
fonctionnement du reste du réseau. Par contre, en cas de rupture du câble commun, la désadaptation
d’impédance peut provoquer une panne complète du réseau. Cette rupture doit être localisée
physiquement ce qui n’est pas toujours simple (Analyse par réflectométrie).
Avantages :
la présence ou l'absence des machines est transparente
Une station peut tomber en panne sans perturber le réseau
La connexion est moins coûteuse en raison du caractère passif des stations
Inconvénients :
Le signal n’est pas régénéré, donc si les longueurs de câble sont trop grandes , il faut prévoir
des répéteurs ce qui augmente le coût
Est associé à une méthode d’accès aléatoire (CSMA/CD - Carrier Sense Multiple Access /
Collision Détection ) peut adaptée à des trafics importants.
1.5.3 Topologie en étoile
Tous les équipements sont reliés directement à un serveur (un concentrateur ou un routeur) qui
constitue le nœud central par lequel transitent toutes les transmissions. Cette topologie permet
d’ajouter aisément des équipements (un câble par équipement) dans la limite de la capacité du serveur.
La gestion du réseau se trouve facilitée par le fait que les équipements sont directement interrogeables
par le serveur et que toutes les transmissions y passent (centralisation du logiciel). Par ailleurs, une
défaillance d’un équipement terminal ne met pas en cause le fonctionnement du reste du réseau.
Avantages :
On peut utiliser un câblage préexistant qui se trouve souvent dans les entreprises sous la
forme du réseau téléphonique.
Une plus grande simplicité de la gestion centralisée.
On peut utiliser un réseau en étoile répondant aux normes d’une liaison bus
Inconvénients :
Si le nœud central est défectueux, tout le réseau est en panne. Ce qui implique de prévoir une
solution de secours mais qui augmente d’autant le coût.
1.5.4 Topologies en anneau
Il existe trois types de topologie en anneau :
Unique anneau unidirectionnel
Double anneau unidirectionnel
Double anneau bidirectionnel
15
Section 1 – Concepts Réseaux
Chaque élément est relié à deux équipements voisins, de telle sorte que l’ensemble constitue une
boucle fermée. Dans cette topologie, les informations transitent d’équipement en équipement jusqu’à
destination. Les MAU (Médium Access Unit ) sont donc des éléments actifs chargés de recevoir les
informations en provenance de la station précédente et de les retransmettre vers la station suivante.
Rupture
Reconfiguration
Le double anneau unidirectionnel permet de limiter le blocage, le fonctionnement du réseau peut être
assuré. Cette topologie traduit les besoins de rendondance et de continuité de services inhérents aux
réseaux professionnels de forte capacités.
Les réseaux Token Rings et FDDI ( Fiber Distributed Data Interface ) utilisent respectivement les
topologies en anneau et double anneau.
Avantages :
Structure adaptée aux communications de messages
Il permet de connecter un grand nombre de stations
Il permet des distances plus longues, chaque station étant un répéteur.
Il nécessite un protocole spécifique différent des accès bus.
Inconvénients :
Plus grande complexité de connexion des stations
Problèmes de fiabilité à la jonction ( MAU ) sur l’anneau
La défaillance d’un nœud a pour résultat de mettre le réseau hors service s’il n’est pas en
double anneau.
1.5.5 Topologie en arbre (hiérarchique)
C’est une topologie en étoile dans laquelle une connexion donne naissance à un nouveau bus
commun. Les réseaux arborescents sont constitués d’un ensemble de réseaux étoiles reliés entre eux
par des concentrateurs.
Cette solution est souvent retenue pour une extension d’un réseau. Elle nécessite de prendre en
compte les spécificités techniques pour ne pas accroître la taille dans des proportions inacceptables
pour les types d’équipements considérés.
16
Section 1 – Concepts Réseaux
1.5.6 Topologie maillée
Un réseau maillé est un réseau dans lequel deux stations du réseau peuvent être mises en relation par
différents chemins. La mise en relation est effectuée par des commutateurs. Chaque commutateur
constitue un nœud du réseau. Ce type de réseau, par la possibilité de multiple choix de chemins vers
une destination qu’il permet est très résistant à la défaillance d’un nœud et autorise une optimisation
de l’emploi de ressources en répartissant la charge entre les différents nœuds.
Internet est un exemple de réseau maillé.
1.6. Architecture des Réseaux
1.6.1 Introduction
On a vu dans la partie précédente les possibilités de raccordement physique des stations. Nous allons
maintenant aborder l’aspect logique du dialogue entre les équipements.
En effet, il faut envisager de connecter divers équipements provenant de différents constructeurs afin
qu'ils s'échangent des informations ; cela nécessite que ceux-ci utilisent des techniques de connexion
compatibles ( raccordement, niveau électrique…), mais aussi des protocoles d'échange identiques et
une sémantique de l'information compréhensible par les partenaires de la communication.
1.6.2 Le modèle En couche
Afin d’aborder l’architecture de tous types de réseaux, il est utile de se familiariser avec le concept de
modèle protocolaire en couches. Détaillons brièvement les principes pour l’élaboration d’un tel
modèle :
Découpage du système en couches, chaque couche est dédiée à une tâche spécifique à accomplir
dans le processus d'échange.
La mise en relation des entités communicantes s'effectue par mises en relation successives d'entités
de niveau inférieur ; une couche N pour entrer en relation avec la couche N distante demande à la
couche N-1 de la mettre en relation ( connexion N-1 ), l'échange de données de la couche N
s'effectue sur la connexion N-1.
Le service rendu par la couche N-1 est accessible par un point d'accès identifié (adresse - PA) qui
sert d'interface entre les deux services.
Un dialogue spécifique, répondant à des règles précises (protocole de couche), s'établit entre
couches homologues distantes.
17
Section 1 – Concepts Réseaux
Couche N+1
Couche N+1
Interface N
Couche N
Couche N
Protocole N
Couche N-1
Couche N-1
Service
Fourni
Service
Utilisé
Le modèle répartit les fonctions différentes en couches, chaque couche remplit une tâche déterminée
chargée de rendre un service spécifique à la couche supérieure. Par exemple la mise à disponibilité du
service de niveau N l' a été par une demande du niveau supérieur et par une acceptation explicite de la
connexion N-1 par le niveau N de l'entité communicante distante. Concrètement l'échange
d'information s’effectue verticalement via des instructions formalisant les services ou primitives de
services. Virtuellement, les deux entités distantes N sont en relations via leur couche N-1
1.6.3 Détermination des couches
La nécessité d'identifier des fonctions élémentaires distinctes, mais coopérantes au processus de
communication, a conduit à étudier un modèle structuré en couches. La définition des différentes
couches descriptives du modèle doit respecter les principes suivants :
Ne pas créer plus de couches que nécessaire, afin que le travail de description et d'intégration reste
simple, ce qui conduit à regrouper les fonctions similaires dans une même couche.
Créer une couche chaque fois qu'une fonction peut être identifiée par un traitement ou une
technologie particulière.
Créer une couche là où un besoin d'abstraction et de manipulation de données doivent être
distinguées.
1.6.4 Le modèle OSI à 7 couches
Le modèle OSI définit par l’ISO est un modèle abstrait qui définit une terminologie. Il sert de cadre à
la description (spécification) des services et des protocoles utilisés pour rendre ces services. Le
modèle OSI décrit des fonctionnalités à mettre en œuvre dans les protocoles normalisés
Le modèle se divise en 7 couches elles-mêmes réparties en deux sous-ensembles distincts
Couches hautes (5 à 7): qui sont essentiellement chargées d'assurer l'inter-fonctionnement des
processus applicatifs distants, ce sont les couches orientées application.
Couches basses (1 à 4): qui fournissent aux couches hautes un service de transport de données
fiable, déchargeant les couches hautes de la gestion de tous les mécanismes
de transfert d'information, ce sont les couches orientées transport.
18
Section 1 – Concepts Réseaux
Entité A
Entité B
7-Application
7-Application
6- Présentation
6- Présentation
5- Session
5- Session
4- Transport
4- Transport
3-Réseau
2-Liaison
Multi - Point
Point-à-point
1-Physique
couches Hautes
Orienté Application Client
Orienté Réseau Service
3-Réseau
Protocoles
2-Liaison
Interface
1-Physique
couches Basses
Support
Signal
1.6.5 Les Niveaux de connexions
Au niveau matériel, seules les couches basses sont en interaction. On définit ainsi plusieurs niveaux de
raccordement suivant la capacité et la nature de la prise en charge de l’équipement d’interconnexion
réseau.
le schéma ci-dessous donne les définitions des différents équipements de connexion et leur position
dans l’architecture, c’est à dire leur complexité logique et physique
5/6/7-Application
4- Transport
Passerelle
Changement de réseau
3-Réseau
Routeur
Multi - Point
2-Liaison
Changement de ligne
Point-à-point
Pont
Changement de support
1-Physique
Répéteur
Amplification du signal
Support
1.6.6 Description sommaire des couches
Couche nol - Physique
Elle s'occupe de la transmission des bits de façon brute sur un canal de communication. (bit level)
Sa conception prend en compte les aspects de codage électrique ou de modulation, en fonction des
spécificités du support, mais également les modalités de raccordement mécanique via une connectique
déterminée et un ensemble de règle protocolaire pour la synchronisation des échanges, l’initialisation
et la libération du canal.
19
Section 1 – Concepts Réseaux
Couche no2 - Liaison de données
Sa tâche principale est de prendre un moyen de transmission « brut » entre deux points et de le
transformer en une liaison fiable pour la couche supérieure. C’est le niveau trame (frame level) ou les
bits sont traités par blocs délimités. Cette couche va ainsi assurer trois tâches primordiales :
La délimitation des trames, afin de repérer leur début et leur fin ; On peut utiliser une méthode de
fanion délimiteur ou de compteur de la longueur.
Le contrôle de flux, afin de garantir une temporisation de la réception en cas de saturation des
tampons (buffers) et de permettre un dialogue cohérent de questions – réponses entre les deux points
de la liaison.
Le traitement des erreurs ou des effacements de bits, en utilisant des techniques FEC (abordés dans
le cours sur le codage) ou de calcul de redondance cyclique (CRC) afin de détecter puis de corriger.
On peut par exemple dans une liaison bi directionnelle utilisés des techniques de numérotations de
trames et de retransmission.
Couche no3 - Réseaux
Le niveau paquet (packet level) est associé à une destination. Son rôle devient incontournable dès que
plus de deux machines sont concernées dans les relations. Elle assure donc les fonctions d’adressage
(attribution d’adresses) et de routage (aiguillage des paquets de données).
L’adressage doit avoir un format commun pour être reconnu lors de la traversée d’un ensemble de
nœuds qui doivent prendre une décision sur les liens que doivent emprunter tel ou tel paquet. Des
réseaux hétérogènes doivent garantir des mécanismes de compatibilité ou de résolution d’adresses.
Le routage implique de la part du nœud de prendre une décision à partir d’un certain nombre de
règle : Distance à atteindre, encombrement des liens, connaissance de la route pour atteindre le
destinataire finale, rapidité d’accès… Il existe de nombreuses solutions que nous détaillerons
ultérieurement.
Signalons simplement que dans les réseaux à diffusion, ou à inondation le problème du routage est
simple, si bien que la couche réseau est souvent mince, voire inexistante, puisqu’il suffit de
retransmettre le paquet à tous les points connectés au réseau.
Couche no4 - Transport
Elle assure au niveau d’un réseau ce que réalise la couche 2 au niveau d’une liaison point à point. La
couche transport est une couche de bout-en-bout, de l'émetteur au destinataire. En d’autres termes, un
programme de la machine source soutient une conversation avec un programme similaire sur la
machine destinataire.
Assure un traitement du message à transmettre avec des mécanismes de comptage et de
numérotation propre pour faciliter son découpage avant sa traversée du réseau et sa reconstruction à
la réception.
Gère les connexions indépendantes entre de multiples destinataires ou avec des services différents.
Elle permet le multiplexage des paquets sur le réseau.
Elle détermine le niveau de fiabilité et la qualité de services à garantir sur le lien de bout en bout. En
particulier il est possible de gérer les flux et de détecter les erreurs ou les pertes de paquets.
20
Section 1 – Concepts Réseaux
Couche no5 - Session
Elle permet à des utilisateurs travaillant sur différentes machines d'établir des sessions entre eux. Une
session permet le transport des données, comme la couche transport, mais elle offre également des
services évolués utiles à certaines applications. Une session peut permettre à un utilisateur d'accéder à
un système à temps partagé distant ou de transférer un fichier entre eux machines.
Le rôle de la couche session est la gestion des dialogues et des échanges multiples avec plusieurs
terminaux distants. Elle permet de gérer des transferts de fichiers de grandes tailles, avec la possibilité
d’interrompre et de reprendre en cas de rupture de connexion.
Couche no6 - Présentation
Cette couche traite les problèmes sémantiques de codage et de représentation des données : ASCII,
unicode, base64… Il existe de nombreuses techniques permettant de distinguer les niveaux
d’information, comme les langages à balises ou la gestion par blocs, permettant d’insérer des métadonnées ou des structures de mise en forme.
C’est aussi à ce niveau que se situent les problèmes de chiffrement des informations de façon à les
rendre confidentielles pour les couches inférieures.
Couche no7 - Application
Il s’agit dans l’approche OSI d’une couche très ouverte, comme étant le point d’accès de l’utilisateur
au service réseau pris dans sa globalité. Elles assurent la prise en charge des données et son traitement
pour l’utilisateur.
1.6.7 Encapsulation
Le schéma ci-dessous donne un exemple de la façon dont les données peuvent être transmises en
utilisant le modèle OSI. Le processus émetteur doit émettre certaines données vers le processus
récepteur. Il émet ces données à la couche N+1 qui leur accole un en-tête application PCI – Protocol
Control Interface, et donne l'ensemble la couche N. Cet ensemble est appelé PDU – Protocole Data
Unit et va constituer la charge utile N-SDU Service Data Unit de la couche inférieure N.
(N+1)-PCI
(N+ 1)-SDU
(N+ 1)-PDU
COUCHE N+1
COUCHE N
(N)-SDU
(N)-PCI
(N)-PDU
La couche N peut transformer cet ensemble de différentes façons, éventuellement rajouter un en-tête
et donner le résultat à la couche N-1. Il est important de comprendre que la couche N ne connaît pas et
ne doit pas connaître l’existence éventuelle d’en-tête N+1 qui fait pour elle partie des données
utilisateur.
21
Section 1 – Concepts Réseaux
1.6.8 Primitives de services
Les services fournis par la couche N à la couche supérieure N+1 sont disponibles en utilisant des
instructions appelées primitives de services permettant à N+1 de solliciter N. Nous présentons ici
quatre primitives simples Pour la connexion.
B
A
N+1
N
N
CR
N+1
CI
CRe
CC
CR
Connect Request
N+1-A demande à N-A son service N
CI
Connect Indication
N-A agit et contacte N-B qui Sollicite N+1-B
Cre
Connect response
N+1-B envoie sa réponse à N+1-A par l’intermédiaire de N-B
CC
Connect Confirm
N+1-A reçoit de N-A la confirmation du service N
Signalons qu’il existe d’autres primitives dans la pratique et selon le type de réseau, pour l’échange
des informations, la clôture de la connexion, l’interruption et la reprise…
1.6.9 N-SAP
On utilise à l’interface entre deux couches N et N+1 la notion d’adresse pour faciliter le dialogue
entre les deux couches. Cette adresse ou N-SAP (N – Service Access Point) nomme le service fournit
par la couche N à la couche N+1
N+1
Interface
N
service N+1
N-SAP
service N
Cet adressage permet en particulier deux opérations couramment utilisées par les services réseaux :
l’éclatement et le multiplexage :
Le multiplexage permet à plusieurs services N+1 d’utiliser le même service N
L’éclatement permet à un service de niveau N+1 de s’appuyer sur deux services N distincts.
Des illustrations de ces procédés seront données dans la suite du cours.
22
Section 1 – Concepts Réseaux
N+1
service N+1
service N+1
service N
N
Multiplexage
service N+1
N+1
N
service N
service N
Eclatement
23
Section 1 – Concepts Réseaux
24
Section 1 – Concepts Réseaux
2. Les Supports Physiques
2.1 Introduction
Le câblage est un élément clé dans un réseau, il dépend de l’envergure du réseau ( en nombre de
postes connectés, de la longueur de câble entre chaque extrémité ) et de l’utilisation c’est à dire s’il est
destiné à un simple usage bureautique ou pour des applications temps réel nous parlons dans ce cas de
bande passante. De plus le câblage à un coût, qui est non négligeable lors de la conception d’un
réseau ; coût du support, mais aussi coût des accessoires et d’installation.
Il existe 4 grands types de support physique utilisés pour les réseaux :
La paire torsadée
Le câble coaxial
La fibre optique
Les ondes radio
Ces technologies ont été étudiées dans les 2 volumes précédents. Nous résumerons seulement certains
aspects fondamentaux dans la compréhension de la problématique réseau.
2.2 La paire torsadée
2.2.1 Les types de paires
Ce type de câblage filaire couramment appelé RJ45 (à tort car c’est le nom du connecteur de ce câble)
est constitué de deux conducteurs identiques torsadés. Ces deux fils sont mis en spirales afin de
diminuer les perturbations électriques ambiantes (réduction de l’effet de couplage champ à boucle).
Chaque fil de cuivre est entouré d’une gaine isolante en plastique
La paire torsadée est sensible à l’environnement électromagnétique ( parasites industriels, proximité
de câbles courant forts…), c’est pourquoi des modèles dit blindés ont été conçus. Les liaisons en LAN
sont limitées à une centaine de mètres en général, quelques milliers dans le cas de l'ADSL, cela est lié
à la diaphonie due au couplage inductif des paires proches, à la vulnérabilité au bruit et aux pertes
importantes.
25
Section 1 – Concepts Réseaux
Il existe plusieurs types de paires torsadées classées dans le tableau suivant :
UTP
FTP
Unshielded Twisted pair
Foiled Twisted pair
S/UTP
STP
SFTP
F/FTP
Screened UTP
Shielded Twisted pair
Shielded FoiledTwisted pair
Foiled/FoiledTwisted pair
Paire torsadée non-blindée
Paire torsadée blindée par feuillard
(écrantée)
Comme FTP
Paire torsadée blindée
Paire torsadée écrantée et blindée
Similaire au S/FTP. Utilisé pour les
câbles résidentiels (domestique)
UTP
FTP
STP
S/FTP
On notera que les blindages à tresses sont les plus efficaces, et le sont d’autant plus que la tresse est
épaisse et serrée, et que le câble est cher. Le feuillard métallique est peu efficace contre les
perturbations électriques mais assure rigidité mécanique et résistance aux… rongeurs !
2.2.2 Caractéristiques
Les grandeurs caractéristiques ont été étudiées dans le cours sur les supports de transmission !
l’impédance caractéristique – En principe 150Ω à 600Ω
l’affaiblissement ( < 11,5dB / 100m )
la paradiaphonie en dB ( perturbation d’une paire sur une autre )
2.2.3 Catégories
Catégories 1 & 2
concernent le fil téléphonique
Catégorie 3
produits prévus pour une utilisation jusqu’à 16 Mhz ( réseaux Ethernet , Token
Ring 4Mbits/s et Local Talk ). Le câble peut être utilisé pour les transmissions à 10
Mbits/ s
produits prévus pour une utilisation jusqu’à 20 Mhz ( réseaux Ethernet, Token Ring
4Mbits/s et 16 Mbits/s et Local Talk ). Le câble peut être utilisé pour les
transmissions à 16 Mbits/s
produits pour une utilisation jusqu’à 100 Mhz ( réseaux Ethernet, Token Ring
4Mbits/s et 16 Mbits/s, Local Talk, ATM 155 Mbits/s et Fast Ethernet 100 Mbits/s ).
Pour les réseaux GigaBits Ethernet. 250MHz de bande passante à 500MHz pour
le 6a
Pour les réseaux 10GigaBits Ethernet. Bande passante élevée (600MHz pour le 7
à 1000MHz pour le7a) compatible avec les applications video HD.
Catégorie 4
Catégorie 5
Catégories 6/6a
Catégories 7/7a
26
Section 1 – Concepts Réseaux
A [dB/km]
cat 4
100
cat 5
10
cat 6
cat 7
3
1
10k
100k
1M
10M
100M
f [Hz]
2.2.4 Le connecteur
Les connecteurs sur paires peuvent être de nature très variable selon les applications : audio, phonie,
alimentation, réseau…Le connecteur réseau le plus utilisé est appelé un RJ 45 à 8 emplacements de
fils (8P/8C) ou modular plug , pour le côté mâle (côté câble) et modular jack pour l’embase femelle.
Ils peuvent être métalisés voire blindés. (cf §7.2.2 pour le câblage.)
2.3 Le câble coaxial
2.3.1 Description
Un câble coaxial est constitué de deux conducteurs concentriques maintenus à distance constante par
un diélectrique. Le conducteur extérieur, tresse métallique en cuivre appelé blindage est mis à la terre.
L’ensemble est protégé par une gaine isolante.
Gaine
Tresse ou conducteur
de masse
diélectrique
âme
Le câble coaxial possède des caractéristiques électriques supérieures à celle de la paire torsadée, la
bande passante du câble coaxial est plus importante et la sensibilité aux perturbations
électromagnétiques plus faible. Cependant il est tout de même plus cher que la paire torsadée.
2.3.2 Caractéristiques
une âme de cuivre
un diélectrique isolant en polyéthylène
27
Section 1 – Concepts Réseaux
un conducteur externe ou tresse de masse servant également de blindage
une gaine isolante
Impédance caractéristique:
Affaiblissement:
Longueur maximale d’un segment :
50 Ohms
45 dB/km à 10 Mhz
<qques km.
2.3.3 Les principaux accessoires :
le Té BNC : permet de raccorder en cascade les stations
le connecteur BNC à baïonnette , le prolongateur
le bouchon de charge 50 Ohms
Le raccordement de la station au support se fait En parallèle sur le support appelé également bus
coaxial. Au bout du dernier Té on place un bouchon 50 Ohms pour l’adaptation.
Connecteur câble
bus coaxial
Té
Embase
MAU
2.4 La fibre optique
2.4.1 Description
C’est un conducteur d’ondes lumineuses. Elle est constituée d’un cœur et d’une gaine optique. Un
revêtement primaire assure la tenue mécanique de la fibre et évite les fractures en cas de courbure. Le
principe d’isolation totale de la fibre optique permet une réflexion totale des ondes lumineuses entre
cœur et gaine. La lumière se propage sans perdition au cœur de la fibre. La fibre requiert à ses
extrémités un émetteur de lumière, une diode ou un laser détecteur de lumière.
Fibre optique
Coeur optique
Faisceau lumineux
2.4.2 Caractéristiques
la bande passante élevée
l’insensibilité aux parasites électriques et magnétiques
le faible encombrement et poids
l’atténuation très faible
la vitesse de propagation élevée ( en monomode)
sécurité
légèreté
28
Gaine
Section 1 – Concepts Réseaux
2.4.3 Catégories
les fibres multimodes , plusieurs rayons lumineux parcourent des trajets différents, il y a deux
types :
à saut d’indice
à gradiant d’indice
Elles sont réservés aux réseaux locaux : distance faible et débits moyens.
Les fibres monomodes, un seul rayon lumineux est admis dans la fibre. Plus coûteuses, de diamètre
plus réduits, elles sont utilisées sur les réseaux cœurs, anneaux optiques, câbles sous-marins… où les
distances et les débits sont élevés.
Faisceau lumineux
Fibre optique saut d'indice
Faisceau lumineux
Fibre optique gradiant d'indice
Faisceau lumineux
Fibre optique Monomode
2.5 Les ondes radios
2.5.1 Description
Avec l’amélioration des performances des composants électroniques de très hautes fréquences (au
delà du GHz) autorise depuis quelques années la diffusion de dispositifs d’interconnexion utilisant les
principes des télécommunications. Il est ici hors de question de développer ce qui a été vu concernant
le traitement du signal ou les architectures systèmes, rappelons que, du point de vue réseau, les
techniques radio ne sont utilisées que pour « couper » le fil, et le remplacer.
Emetteur
Emetteur
Récepteur
Récepteur
2.5.2 Caractéristiques
Bande passante moyenne
Sensibilité aux parasites électriques et magnétiques, éloignement
très faible encombrement et poids
Performances très dépendantes des conditions de transmissions
sécurité et fiabilité difficiles à assurer
29
Section 1 – Concepts Réseaux
2.5.3 Technologies
La technologie Wi-Fi (Wireless Fidelity) est aujourd’hui la plus répandue. De nombreuses variantes
de la norme IEEE 802.11 coexistent, avec des bonheurs plus ou moins heureux.
Les technologies HomeRF sont en principe plus robustes et plus fiables que le WiFi mais, moins
simples, elles sont nettement moins diffusées.
Les réseaux Hyperlan 1 et 2, normes européennes développées par l’ ETSI, sont bloquées dans leur
diffusion par des contraintes réglementaires, le défaut d’industriels développant du matériel et le
caractère essentiellement européen de la norme. Cette norme restera vraissemblablement dans les
cartons
Le Wi-Max, version MAN du WI-FI pour les accès radio sur des distances de plusieurs kilomètres.
On pourra ajouter le bluetooth qui assure simplement la connexion par radio de deux matériels
équipés et une communication en mode paquet. Très simple avec de courtes portées (10 mètres), il est
en outre bon marché. Citons également dans la même catégorie des liaisons de proximité, le zigbee,
l’UWB, USB sans fils…
2.6 Débits
2.6.1 Débit réel et débit utile
Les transmissions de données s’effectuent en général en découpant les messages par paquets qui
contiennent certaines informations supplémentaires, notamment les coordonnées du destinataire :
l’ensemble diffusé sur un support de transmission est appelé trame.
En raison des techniques d’accès utilisées et de cet ajout d’informations, le débit effectif ou utile (c’est
à dire disponible pour l’utilisateur) de transmission des données sur le réseau peut être sensiblement
inférieur au débit nominal ou réel du support utilisé. Ce débit, exprimé en bits par seconde, peut
atteindre plusieurs dizaines de millions. de bits par seconde ou méga bit par seconde – Mbit/s.
2.6.2 Débit et applications
Selon le service fourni et les débits nécessaires, les caractéristiques de la liaison sont très différentes.
Le tableau qui suit résume quelques points fondamentaux qui seront définis et développés dans la
suite du cours.
Service
Type
Délai de transmission
Débits
Volume
FLUX
Faible à élevé
En rafale
VBR/ABR
faible <10kbit/s
élevé – 3Mbit/s
Moyen : 4 à
10*64kbits/s
Constant
Constant
Constant /
variable
CBR/VBR
CBR/VBR
CBR/VBR
(Latence & gigue)
Diffusion
PaP
Phonie
PaP
Vidéo
Diffusion
Visioconférence
PaP
Données
Quelconque
Court : <1s
Court : <200ms
Court
2.6.3 Flux et multiplexage
La notion de débit brut est associée à celle de flux et de multiplexage : en pratique, il n’existe pas un
seul type de service actif sur le réseau, l’ensemble des flux sont gérés par les applications (couches
hautes du modèle OSI). Au niveau du système client, l’ensemble des flux sont a priori non distincts au
30
Section 1 – Concepts Réseaux
cours du temps. C’est le rôle des différentes applications du système de faire le tri en s’appuyant sur
des étiquettes d’indentification.
Client
data
voix
video
Flux
Sortant
Client
Flux
Entrant
Réseaux
Réseaux
B an de passan t e
Pour optimiser l’utilisation du canal réseau, le multiplexage doit tenir compte de la nature du débit
instantané requis pour chaque flux. Les flux à débit constant comme la voix (approche télécom) sont
plus coûteux que les transmissions de fichiers (approche réseaux de données)
CBR
VBR
ABR
UBR
CBR
Constant Bit Rate
VBR
Variable Bit Rate
ABR
Available Bit Rate
UBR Unspecified Bit Rate
Services télécoms avec de forts besoins en bande passante et délai
d’acheminement constant - Voix
Services de bandes passantes variables mais avec des minima et
maxima garantis – Vidéo compressée en streaming
Débits variables sans garanties sur les maxima. Doit se satisfaire d’une
bande minimale – Services web
Débit et délais non garantis. Transfert de données - Mail
CBR
VBR
ABR
UBR
Temps
31
Section 1 – Concepts Réseaux
2.7 Comparatifs
Caractéristiques
Longueur d’onde
Capacité maximum
(n Bit/s)
Atténuation (dB /
Km)
Distance entre 2
répéteurs
Sensibilité aux
interférences
Isolement électrique
Encombrement à
capacité égale
Propriétés
mécaniques
Connectique
Flexibilité
Résistance aux fortes
températures (T >
1000°)
Mode de
fonctionnement
Coût par circuit
Paires filaires
Câbles Coaxiaux
Fibres optiques
Kilomètrique/métrique
Continu-100 MHz
Métrique
100 kHz-10 GHz
Micrométrique
>THz
100 Mbit/s
100 Mbit/s
10 dB/km à 1 MHz
100 dB/km à 10 MHz
20 m à 500 m
5 dB/km à 10 MHz
10 dB/km à 40 MHz
1 à 2 km
Très sensible
Sensible
1000 Gbit/s
(monomode)
1 dB/km
(Industriel)
1 à 100 km
(selon débit)
Nulle
Moyen
Important
Moyen
Important
Total
Très faible
souplesse
Facile et simple
Bonne résistance
mécanique
Simple
Bonne résistance
mécanique
Délicat
Bonne
Non
Faible
Non
Importante
Oui
Analogique
Numérique – Bande de
base ou transposée
Faible
Analogique possible
Numérique
Analogique
possible
numérique
Faible
32
Assez Important
Radio
Millimétrique
1 GHz –10
GHz
300 Mbit/s
40 à 80dB
100m à 10 km
très
Sensible
Nul
élevé
Système
antennaire
délicat
Très élevé
Numérique
Faible
Section 2 – Pile X25
3. Liaison ETTD-ETCD
3.1 Définition, Fonction, Objectif
3.1.1 Couche OSI 1
La couche physique assure la transmission d’un élément binaire (0 ou 1) sur un support matériel, on
parle aussi de niveau ‘bit’.
Elle s’interface par le bas avec la ligne de transmission, par le haut avec la couche liaison de données
avec qui elle échange des trames d’informations. Elle s’adapte aux caractéristiques du support de
transmission du réseau. C’est à ce niveau que l’on choisit le type de transmission (synchrone ou
asynchrone), le débit du canal de transmission, le mode de transmission (analogique ou numérique) et
le type de codage pour la transmission des données sur le média.
Couche Liaison
Couche Physique
Couche Physique
Support
Conformément au modèle OSI, la couche physique fournit le service physique utilisé par la couche
liaison. Les fonctions principales du service physique concernent l’établissement de la connexion
physique, le transfert des données et la libération du circuit.
3.1.2 Adaptation au support
Une des tâches essentielles de la couche physique est la transmission des bits, appelés éléments
binaires (eb) sur le support . Cette adaptation au support physique, qui porte le nom de modulation sur
fréquence porteuse ou modulation en bande de base (transcodage). Toutes ces techniques ont été
largement abordées dans le cours sur les signaux et les télécommunications.
33
Section 2 – Pile X25
3.1.3 Protocole
Afin de communiquer à ce niveau, la couche 1 utilise un protocole propre pour gérer l’échange des eb.
Les fonctions propres sont le réglage du débit, identique des deux côtés, de la reconnaissance des
signaux… Tous ces éléments permettent le réglage optimale d’une liaison de manière automatique,
selon la qualité du canal. La suite de ce document détaille quelques systèmes de canaux physiques
couramment utilisés dans les transmissions de données.
3.2 Jonction ETTD-ETCD
3.2.1 ETTD et ETCD
Les principaux éléments d’une liaison de données sont :
Le circuit de données qui se caractérise par la transmission d’informations numériques (0 ou
1) entre les jonctions.
La ligne de transmission proprement dite qui assure le transport dans le monde physique
Le schéma type d’une liaison numérique est représenté ci dessous :
E TTD
JONCTION
Circuit d e données
ETCD
ETCD
ETTD
Support
Couche physique
Couche liaison
3.2.2 Définition de l’ETTD
L’appellation ETTD (Equipement Terminal de Traitement de Données), plus souvent communément
appelée ‘terminal’ (en anglais, DTE : Data Terminal Equipment), recouvre tout type d’équipement
susceptible de transmettre ou de recevoir des informations numériques, il peut désigner tout aussi bien
une machine de traitement, par exemple un ordinateur, qu’une console d’entrée sortie.
En fait, la liaison sur la jonction est assurée par un connecteur placé (côté système informatique) sur
un dispositif matériel et logiciel appelé coupleur ou contrôleur de communications.
Sur les petits et moyens systèmes, les dispositifs de communication sont incorporés, plus ou moins,
dans l’équipement. Ils sont la plupart du temps réalisés sous forme d’adaptateurs, de cartes, reliés par
câbles ou disposés dans les bus de la machine. Parfois, ils sont disposés près de la machine sous forme
de coffrets et dans ce dernier cas, ils peuvent disposer d'une adresse propre. Les systèmes
contemporains par leur niveau élevé d'intégration masque de plus en plus leur présence physique.
34
Section 2 – Pile X25
3.2.3 Définition de l’ETCD
Le dispositif normalisé d’extrémité d’une ligne est appelé ETCD (Equipement Terminal de Circuits de
Données) plus communément appelé ‘modem’ (en anglais DCE : Data Circuit Equipment).
L’ETCD permet d’adapter la ligne à la jonction ; adaptation soit technologique, soit physique, soit de
codage ou autre ; ce qui permet d’utiliser, théoriquement, tout type de ligne. L’adaptation au support
nécessite souvent la modulation et la démodulation d’une fréquence porteuse (cas des modems
téléphoniques) ou un transcodage électrique (LAN Ethernet, modem bande de base) ; puisque la
plupart des liaisons numériques sont bidirectionnelles, un ETCD comporte en général les deux
fonctions assurant l’émission et la réception.
Le cas le plus réduit est celui où la ligne est constituée par de simples fils métalliques reliant une
jonction à une autre, l’ETCD est alors réduit à un simple connecteur.
La plupart du temps, le cadencement d’envoi (en fait, la vitesse de transmission en bits par seconde)
sera délivré par l’ETCD à l’ETTD, ceci en fonction des possibilités de la ligne. Ce cadencement est
appelé horloge (clock en anglais).
Le partage des horloges entre les deux ETTD et les deux ETCD impliqués dans la liaison implique
une seule et unique référence pour l’ensemble : deux horloges imposées provoquent généralement un
conflit d’horloges et rend la communication impossible. C’est une cause majeure de
dysfonctionnement.
3.2.4 Jonction
La jonction se fait entre les deux connecteurs ETTD et ETCD, elle est normalisée. Le rôle principal
d’une jonction est d’assurer la transparence du circuit de données vis-à-vis des utilisateurs, activer la
liaison physique, de la maintenir durant le transfert de données et de la désactiver le transfert terminé.
ETCD
JONCTION
ETTD
Support
Modem
Cette propriété permet aux utilisateurs des circuits de données de ne pas avoir à connaître les
caractéristiques des supports internes de transmission et dans une moindre mesure de celles des
ETCD.
Un utilisateur connaissant la procédure peut réaliser une transmission de données sur un système de
transport qui lui est totalement inconnu. Cette qualité s’appelle la transparence.
35
Section 2 – Pile X25
Il y existe trois niveaux de spécifications (interfaces) :
Niveau
Rôle
Mécanique
Electrique
Fixe la nature du connecteur physique
Détermine les niveaux électriques des signaux qui transitent par
la jonction
Spécifie les fonctions remplies par telle ou telle broche :
Le transfert de données
Les signaux de commande
Les signaux de synchronisation
Les masses électriques
Fonctionnel
Ces interfaces permettent la connexion physique des équipements d’extrémité quels que soient la
nature, la fonction ou le constructeur de l’équipement. Aux niveaux électrique et mécanique, les
interfaces varient selon le débit utilisé.
Il ne faut pas confondre la jonction reliant ETCD et ETTD avec la liaison au niveau ETCD/ligne qui
concerne l’adaptation électrique et mécanique des signaux aux caractéristiques de la ligne de
communication. Cette adaptation est intégrée par défaut dans l’ETCD agréé et concerne une norme
propre.
Pour illustrer ces notions, dans une configuration classique, la norme reliant un MODEM à un PC est
la norme V24, celle permettant à deux modems de dialoguer entre eux est V34 (V90-92). (cf §1.2.5)
3.2.5 Normalisation des jonctions
L’UIT normalise les jonctions dans la série V consacrée à la communications de données sur le réseau
téléphonique, c’est à dire aux Modems (ETCD) et à leur raccordement (Jonction)
les modems traditionnellement utilisés pour les connexions Internet et normalisés V34 ou V90 et
suivantes utilisent dans leur configuration externe une connexion au PC-ETTD respectant la norme
V24 décrite dans la suite de cette partie.
Série V
V1
V10
V35
V40
V50
V60
V100
V200
–
–
–
–
–
–
–
–
V9
V34
V39
V49
V59
V99
V199
V249
V250 – V299
V300 – V399
UIT
Considérations générales
Interfaces et modems pour la bande vocale
Modems à large bande
Contrôle d’erreurs
Qualité de transmission et maintenance
Transmission simultanée de données et d’autres signaux
Interfonctionnement avec d’autres réseaux
Spécification de la couche interface pour les communications de
données
Procédures de commandes
Modems sur circuits numériques
L’EIA (Electronic Industry Association) américaine a normalisé de nombreux types de jonctions, en
particulier selon les débits autorisés et nommées RSnnn.
EIA
RS232C
RS449
RS422
RS423
RS485
-
UIT
V24
V35
V11
V10
X21
Débit
300 à 9600bit/s
48 à 64 kbit/s
128kbit/s à 2Mbit/s
128kbit/s à 2Mbit/s
128kbit/s à 2Mbit/s
10Mbits
64kbit/s
36
Distance
20m
Liaison
1 émetteur/1 récepteur
60m
60m
60m
1200m
1 émetteur/10 récepteurs
1 émetteur/10 récepteurs
Bus – 32 émetteurs/récepteurs
Section 2 – Pile X25
On signale que la norme RS232C contient l’ensemble des spécifications électriques, mécaniques et
fonctionnelles. La norme V24 ne désigne que la norme fonctionnelle ; on se reportera au paragraphe
suivant.
Le tableau suivant récapitule les principales interfaces physiques utilisées :
DEBIT
Bit/s
RESEAU
INTERFACE PHYSIQUE
Mécanique
Electrique
Fonctionnelle
Appellation
courante
RTC ou LS
< 20 K
> 20 K
ISO 2110 [DB25]
ISO 2593
V 28
V 35
V 24
V 24
V 24 / RS232C
V 35
TRANSPAC
< 20 K
> 20 K
ISO 2110 [DB25]
ISO 4903
V 28
V 10/V 11
X 21 bis
X 21
X 21
V 10
RNIS
144k
2M
S0
S2
I 430/I 431
3.3 Jonction V-24 ou RS 232
3.3.1 Description Norme électrique V28
La norme RS 232 ou RS 232C (EIA : Electronic Industries Association – norme US) est une norme
classique de circuit de données qui porte aussi le nom de V-24 (norme fonctionnelle du CCITT :
Comité Consultatif International Télégraphique et Téléphonique). Cette norme est utilisée par les
réseaux traditionnels tels le réseau téléphonique commuté ou les liaisons spécialisées analogiques.
Ses caractéristiques électriques sont celles du V 28 (interface) :
Tension du générateur
+ 25 V pour un 0 logique à vide
- 25 V pour un 1 logique à vide
résistance entre 3 et 7 kΩ
entre 3 et 15 V pour un niveau 0 logique
entre -15 et -3 V pour un niveau 1 logique
50 m
Circuit de charge
Tension sur la ligne fermée
Longueur maximale du câble
Tension
25V
15V
3V
longueur
-3V
-15V
-25V
0 0 0
1 1 0
37
1 1 1
Section 2 – Pile X25
3.3.2 Description du connecteur
La norme mécanique concerne les connecteurs. La plus connue est la norme ISO 2110, connecteur dit
aussi DB 25 pour vingt-cinq broches, vingt-cinq points, ou vingt-cinq contacts.
Il existe également des connecteurs réduits (qui ne transmettent que les informations les plus utilisées)
comme le connecteur DB 9 à neuf contacts. Ce dernier n’est pas normalisé.
Les correspondances entre les deux connecteurs sont les suivantes :
Signal
TD
RD
RTS
CTS
DSR
SG
DCD
DTR
RI
DB 9
Description (émetteur)
DB 25
3
2
7
8
6
5
1
4
9
2
3
4
5
6
7
8
20
22
Transmission de données– Transmit Data
Réception des données– Receive Data
Demande d’émission– Request To Send
Accord réception prêt à émettre – Clear To Send
ETCD prêt– Data Set Ready
Masse – Signal Ground
Détection de porteuse– Data Carrier Detect
ETTD prêt– Data Terminal Ready
Drapeau de sonnerie– Ring Indicator
1
14
DB 25
13
1
25
6
5
DB 9
9
Mâle vue de face
ETTD
ETCD
JONCTION
Les liaisons électriques entre l’ETTD et l’ETCD sont réalisées entre broche de même numéro à
broche de même numéro sans aucun croisement dans le câble, ceci implique que les broches du
connecteur côté ETTD n’aient pas le même comportement électrique que les broches de même
numéro du connecteur côté ETCD (asymétrie de fonctionnement).
5
4
3
2
1
9
102-SG
125-RI
108-DTR
9
5
8
4
7
3
2
6
1
106-CTS
8
103-TD
7
105-RTS
104-RD
6
107-DSR
109-DCD
La communication entre deux systèmes répondant à la norme RS 232C, utilisant un des connecteurs
précédents et les signaux décrits dans le tableau précédent, suivent un protocole de communication.
Ce protocole sert à l’émetteur à savoir à quel moment il peut émettre (le récepteur doit être prêt à
recevoir des données). La paragraphe suivant détaille ce protocole.
38
Section 2 – Pile X25
3.3.3 Norme fonctionnelle : La série 100
Les fonctions sont données avec les références CCITT (nombres dits de la série 100) et RS 232
(abréviation EIA). Ces deux appellations sont les plus couramment employées sur les appareils.
La série 100 spécifie 37 circuits qui s’appliquent aux transmissions de données synchrones et
asynchrones, aux services de transmissions de données sur lignes louées à 2 ou 4 fils en exploitation
point ou multipoint. Il existe une série 200 destinée aux modems automatiques.
Broche Broche
DB 25
DB 9
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
3
2
7
8
6
5
1
Nom
US
FG
TD
RD
RTS
CTS
DSR
SG
DCD
SRTS
SCTS
STD
TC
SRD
RC
4
9
ETTD/
ETCD
N°
CCITT
Fonction
-




Frame Ground – Masse châssis
Transmit Data – Emission de données
Receive Data – Réception de données
Request To Send – Demande d’émission
Clear To Send – Prêt à émettre
Date Set Ready – Poste de données prêt
Signal Ground – Masse électrique
Data Carrier Detect – Détection de porteuse
103
104
105
106
107
102
109

114

115
SRTS
DTR
SQ
RI
108

125
ETC
113
Secondary DCD – DCD secondaire
Secondary CTS – CTS secondaire
Secondary TD – TD secondaire
Transmit Clock – Horloge d’émission ETCD
Secondary RD – RD secondaire
Receive Clock – Horloge de réception ETCD
Secondary RTS – RTS secondaire
Data Terminal Ready – Terminal de données prêt
Signal Quality – Qualité du signal
Ring Indicator – Indicateur de sonnerie
External TX Clock – Horloge d’émission externe
ETTD
3.3.4 Protocole de liaison ETTD - ETCD
la liaison ETTD-ETCD est normalisée.
39
Section 2 – Pile X25
JONCTION
ETTD
ETCD
distant
ETCD
107 ETCD prêt
Temps
108 ETTD prêt
105 demande à émettre
106 prêt à émettre
109 détection de porteuse
Support physique
Signal modulé
103 Emission de données
104 Réception de données
Connexion par câble droit
L’interface ETTD/ETCD véhicule les signaux de contrôle et les données transmises. La procédure
d’établissement de la liaison et le transfert de données s’exécute comme ci-dessus.
Protocole de connexion :
L’initialisation :
L’ETCD à la mise sous tension signale qu’il est prêt en levant le 107
L’ETTD sous tension lève le 108 (met le 108 sous tension)
Préparation au transfert :
L’ETTD formule une demande à émettre (lève le 105)
L’ETCD
- Se met en état d’émission
- Envoie une porteuse à l’ETCD distant (synchronisation et retournement éventuel)
- Après un certain temps (temporisation), il lève le 106 pour indiquer qu’il est prêt à émettre
La phase de transmission :
L’ETTD émet les données sur le 103
L’ETCD (distant) émet les données vers l’ETTD sur le 104
113 : horloge fournit par l’un des deux
109 : indication de présence d’un modem (ETCD) distant, sous tension
Les demandes (ou ordres ou commandes) émises par l’ETTD, sont effectuées avec l’emploi du 0
logique, qui doit demeurer en permanence, l’absence de demande est déterminée par la présence d’un
1 logique. La suppression d’une demande s’effectue par le passage du 0 logique au 1 logique
permanent. Les indications émises par l’ETCD sont délivrées par l’emploi de 1 ou de 0 logique
suivant les cas. Le 0 signale que l’indication est valide.
3.3.5 Liaison ETTD-ETTD
La liaison entre ETTD et ETCD est normalisée, la connexion est représentée par la figure du
paragraphe 1.3.2. Cependant il est possible de raccordé directement deux ETTD entre eux sans ETCD,
ce qui est plus simple quand ils sont très proches.
Si on raccorde directement deux ETTD entre eux, alors chaque ETTD doit se comporter comme un
ETCD pour l’autre ETTD. On utilise dans ce cas des câblages non normalisés. On donne ici les
exemples de trois liaisons non normalisées entre deux ETTD que l’on utilise très couramment :
40
Section 2 – Pile X25
102-SG
9
5
4
8 103-TD
3
9
5
103-TD 8
4
1
6
104-RD
104-RD
1
6
Liaison 3 fils - câble croisé
ETTD A
3
2
7
7
2
ETTD B
102-SG
9
5
108-DTR 4
8 106-CTS
103-TD 3
9
5
103-TD 8
4
109-DCD 1
104-RD
6 107-DSR
1
6
Liaison 3 fils - câble croisé
ETTD A
3
2
7
7 105-RTS
104-RD 2
ETTD B
102-SG
9
5
108-DTR 4
103-TD 3
104-RD 2
109-DCD 1
ETTD A
9
5
8 106-CTS
8
4
7 105-RTS
7
6 107-DSR
6
Liaison 3 fils - Null Modem
3
2
1
ETTD B
Ce câble ou boîtier de liaison est indifféremment appelé null modem, faux modem, câble croisé ou
encore zéro modem. Son emploi est très fréquent, notamment pour le raccordement d’une imprimante
série à un micro-ordinateur, ou le raccordement direct de deux PC entre eux. La figure précédente est
un exemple de câblage, il peut être différent suivant le dialogue à simuler. Le câble qui relie l’ETTD à
l’ETCD est appelé câble droit, les broches correspondant sont reliées une à une.
3.4 Transmissions synchrone & asynchrone
3.4.1 Partage des horloges
Dans un lien entre deux équipements échangeant des données numériques, ces deux derniers mis en
jeu sont susceptibles de fournir une horloge pour la transmission, ce qui n’est pas techniquement
possibles : même réglées sur des valeurs identiques, des horloges indépendantes ne sont jamais
rigoureusement synchrones, il y a donc un risque d’erreurs.
Pour cela, il y a deux solutions
Soit on impose une horloge maître, l’autre étant asservie ; il faut alors régler les
équipements en conséquence
41
Section 2 – Pile X25
Soit on élimine toute référence d’horloge entre les deux extrémités.
3.4.2 Echange asynchrone
Dans ce cas, on fixe a priori le rythme de transmission des deux côtés sur la même valeur : ce ser ala
valeur par défaut. On va ensuite transmettre des octets de 8 bits , c’est à dire que l’on va échanger sur
un mode caractère.
Bit de start
Bit de stop
t
1 0 0 1 0 1 0 0
MSB
LSB
Octet envoyé : 00101001
Pour indiquer au côté réception qu’un message arrive, l’octet est précédé d’un bit de start (état haut –
0 logique) et l’octet se fini sur un bit de stop (état bas – 1 logique). Le récepteur déclenche son
horloge sur le bit de start, compte les 8 bits, puis remet son horloge compteur à zéro après le bit de
stop, en attente du prochain caractère.
Attention : sur le support, le bit de fois faible est émis en premier et le bit de poids fort en dernier.
3.4.3 Echange Synchrone
Dans le cas d’une transmission synchrone, une horloge est fixée pour référence aux deux côtés. Dans
ce cas, il n’y a plus besoin de bit de start ou de stop, les instants d’émission et les durées bits sont
parfaitement déterminés des deux côtés de la liaison.
Horloge de référence
t
t
Autre
octet
1 1 0 0 1 0 1 0 0 1
Autre
LSB
MSB
octet
Octet envoyé : 00101001
Ce type d’échange permet des vitesses plus élevées que l’échange asynchrone mais est techniquement
plus délicat à mettre en œuvre.
42
Section 2 – Pile X25
4. HDLC
4.1 Le protocole HDLC :
4.1.1 Types de procédures :
Il existe deux types de procédures pouvant être mises en œuvre pour régler les protocoles entre deux
entités communicantes :
la procédure orientée caractère (POC) qui utilise des codes tels que : ASCII ou EBCDIC dont le but
est de définir pour chaque caractère (contenant 7 ou 8 bits ) une fonction (EOF, ACK, NACK,…).
la procédure orientée bit (POB), utilisé par HDLC, qui permet de transmettre des éléments binaires
sans se soucier de leur nature. Elle a été conçue afin de surmonter les défauts les plus gênant des
POC. Elle permet de couper au milieu d’un caractère même si celui-ci comporte un nombre d’octets
non entier. Un bloc transmis peut contenir N bits, mais N ne correspondra pas forcément à un
nombre entier de caractères. Cette procédure est la plus utilisée car elle a l’avantage d’être plus
souple que la procédure orientée caractère.
4.1.2 Variantes des protocoles HDLC
HDLC, qui signifie High Level Data Link Control (Protocole de haut niveau de contrôle de la couche
2) est un protocole normalisé par le CCITT (depuis 1976). Il est mis en œuvre dans le réseau Transpac
au niveau 2 dans X-25 (X-25.2). On peut néanmoins en trouver de très nombreuses versions ; en
outre, de par son efficacité, il est pratiquement utilisé partout, et sa connaissance est indispensable.
De nombreux protocoles sont des variantes qui s’appuient sur HDLC ; citons
SDLC
ADCP
DDCMP
LAP
Il est utilisé dans l’environnement SNA (System Network
Architecture), est moins riche que HDLC et ne
fonctionne qu’en mode équilibré.
Advanced Data Communication
normalisé par l’ANSI
Control Protocol
Digital Data Communication
Message Protocol
Link Access Protocol
(Protocole d’accès niveau de liaison de données)
Synchronous Data Link Control
43
Section 2 – Pile X25
LAP-B
B :Balanced = équilibré
LAP-D
D pour canal D
LAP-X
LAP-M
X pour le télétex
M pour Modem
LAPDm
m pour mobile
réponse sur sollicitation du primaire.
c’est une variance du LAP mais équilibrée. Le primaire
n’est pas prédéfini car chaque station peut-être primaire.
Il est similaire au mode LAP-B mais est utilisé dans les
réseaux numériques (RNIS).
C’est un dérivé du LAP-D utilisé pour le télétex.
C’est un dérivé du LAP-D. Il est mis en œuvre pour des
connexions PC-Calculateur hôte, ce protocole est utilisé
dans les modems conforment à l’avis V42 et V42 bis.
Version pour l'interface radio GSM
Les protocoles de type PPP (Chapitre 2.2) dans Internet utilise une procédure analogue.
4.1.3 Principe de l’échange en mode connecté
Tout type de transmission repose toujours sur un protocole en trois phases. Ce type est caractéristique
du mode connecté et utilise les primitives de services en rapport avec le service de transfert de
données entre deux points.
A
B
Jonction
ETTD
Jonction
ETCD
ETCD
ETTD
Connexion
Echange
Déconnexion
4.2 Mise en œuvre de HDLC
4.2.1 Structure de l’unité de transfert :
L’unité de transfert d’HDLC est la trame échangée entre deux équipements appelés : primaire et
secondaire.
Trames
Primaire
Secondaire
Cette notion de primaire/secondaire peut se rapporter à la notion d’initiative dans l’échange, et en
particulier dans la mise en relation des deux entités
Ces deux entités sont physiquement soit l’ETTD et l’ETCD avec lequel il est en relation, on est alors
dans le cas de la jonction ; soit les deux ETTD distants, et alors on est dans la configuration de
l’échange de niveau 2.
4.2.2 Structure de la trame HDLC :
Chaque trame est délimitée par un caractère spécial appelé : le fanion, en anglais flag, ou encore
délimiteur de trames. Ce caractère est le seul caractère utilisé par le protocole, et, est aussi employé
44
Section 2 – Pile X25
pour maintenir la synchronisation entre les trames. Cette synchronisation peut également se faire par
l’émission continue de 1 (FF en hexadécimal).
01111110
Fanion
Adresse
Commande
Champs DATA
FCS 2 octets
01111110
Fanion
4.2.3 Transparence des trames
Le problème est d’assurer qu’aucun des champs compris entre les deux fanions délimiteurs de la
trames ne contienne la séquence 7E (01111110). Donc si on désire envoyer un message dont la
combinaison des bits est 01111110, on devra rajouter systématiquement un « 0 » après le cinquième
« 1 » afin de pouvoir différencier les bits de données et les bits du fanion. On obtiendra alors la
combinaison suivante : 011111010. Ce bit est appelé : bit de transparence. A la réception, on
éliminera ce bit au niveau de l’interface entre la couche 2 et 1.
En pratique, on évalue à 5% l’augmentation de la taille de la trame émise à cause de l’insertion des
bits de transparence.
Exemple :
soit la séquence suivante :
Celle ci sera codée par l’émetteur de cette façon :
« 0111101111101111110 »
« 011110111110011111010 »
Dans la pratique, les trames représentées par un analyseur réseau ne représente pas le fanion et on
élimine le bit de transparence de façon à n’afficher que les informations utiles au niveau du protocole
(niveau 2).
4.2.4 Description de la trame HDLC :
FANION :
Il est constitué de 8 éléments binaires : 01111110 correspondant à 7E en
hexadécimal et indique le début et la fin de la trame. Le fanion de queue peut
faire office de fanion de tête de la trame suivante.
ADRESSE :
Elle désigne la station avec laquelle on communique (ETTD ou ETCD). On y
trouve la notion de primaire/secondaire (maître/esclave). L’adresse est
soit 00000001 soit 00000011 qui correspondent à 01 et 03 en hexadécimal.
45
Section 2 – Pile X25
Jonction
ETCD
ETTD
Adresse 01
Commande
Primaire
Secondaire
Réponse
Adresse 03
Commande
Secondaire
Primaire
Réponse
COMMANDE :
C’est un champ dont la combinaison de bits définit le type de trame. Ce champ
est détaillé dans un paragraphe suivant.
FCS :
Frame Check Sequence. C’est un champ de contrôle qui contient sur 2 octets le
reste de la divisions polynomiale du message transmis (adresse, commande,
information) par le polynôme générateur CCITT-CRC [V41] de degré 16. Le
FCS est calculé à l’émission et vérifié à la réception. En cas d’erreur, le
protocole met en œuvre une nouvelle émission.
INFORMATIONS : C’est le champ contenant les données à transmettre. Il encapsule les éléments du
niveau OSI 3.
4.2.5 Les différents types de trames :
Le protocole HDLC possède 3 types de trames grâce au champ de commande : I, S, U.
Trames I : Trames d’information. Elles contiennent un champ de données. Les champs
N(s), N(r) correspondent, pour chaque extrémité de la liaison, à un compteur de
trames d’informations émises N(s) ou N(r).
Trames S : Trames de supervision. Elles permettent de superviser l’échange de données.
Le champ N(r) permet d’identifier la trame acceptée ou refusée. Les bits S
identifient la commande. Les trames S permettent d’assurer les fonctions de
contrôle d’erreurs et de contrôle de flux de la liaisons de données.
Trames U : Trames non numérotées (Unumbered). Elles gèrent la liaison (établissement,
libération…). Elles ne comportent aucun compteur(non numérotées). Elles
servent à l’initialisation et aux problèmes de reprises sur erreurs non
récupérables au niveau 2. Les bits M identifient la commande.
Le type de trame est défini par les 2 premiers bits du champ de commande.
4.2.6 Structure du champ de commande
bit
Trames I
Trames S
8
7
N(r)
N(r)
6
5
P/F
P/F
4
S
3
N(s)
S
2
0
1
0
1
Trames U
M
M
M
P/F
M
M
1
1
Tableau présenté dans le sens de lecture de gauche à droite
46
Section 2 – Pile X25
Le champ de commande comporte 3 champs :
Un champ binaire qui définit le type de trame I, S, U et la commande.
Des champs compteurs N(s) et N(r) qui sont des compteurs à 8 états sur 3 éléments binaires. Chaque
station maintient à jour 2 compteurs : un compteur de trames émises (N(s) variant de 0 à N) et un
compteur de trames reçues (N(r) variant de 0 à N). Le champ N(s) est utilisé pour la numérotation
des trames émises : il indique le nombre de trames envoyées. , alors que N(r) sert à l’acquittement, il
contient le numéro de la prochaine trame attendue : N(r)=x acquitte donc les (x-1) trames
précédentes.
Un bit de contrôle de la liaison P/F :
P=1 (avec P pour Poll), le primaire exige une réponse du secondaire.
F=1 (avec F pour Final), le secondaire répond à la demande du primaire.
Principales commandes utilisées :
Format
I
S
U
Commande
Réponse
Information
RR
RNR
REJ
SARM
DISC
SABM
UA
CMDR/FRMR
DM
Champ de commande
876
5
432
N(r)
P/F
N(s)
N(r)
P/F
000
N(r)
P/F
010
N(r)
P/F
100
P
111
000
010
P
001
001
P
111
001
011
F
100
F
011
000
F
111
1
0
1
1
1
1
1
1
1
1
1
I
(Information)
Trame d’information.
RR
(Receive Ready)
Prêt à recevoir, accusé de réception utilisé lorsque
le récepteur n’a pas de trames d’information à
envoyer N(r).
RNR
(Receive No Ready)
Non prêt à recevoir, le récepteur demande à
l’émetteur d’arrêter ses émissions, et acquitte les
trames acceptées N(r).
REJ
(Reject)
Rejet, demande de retransmission à partir de la
trame N(r).
SARM
(Set Asynchronous Response Mode)
Passage en mode asynchrone équilibré, le
secondaire peut transmettre sans autorisation.
DISC (Disconnected)
L’un de ETTD prend l’initiative de rupture de
Connexion.
SABM
(Set Asynchronous Balanced Mode)
Commande permettant le passage en mode
équilibré. Il n’y a pas de notion de primaire et de
secondaire. Chaque station peut émettre sans
autorisation.
UA
Acquitte une trame non numérotée.
(Unnumbered Acknowledge)
47
Section 2 – Pile X25
CMDR (Command Reject)
Trame de rejet d’une commande.
FRMR (Frame Reject)
Informe de la réception d’une trame qui n’a pu
être acceptée.
DM
Indique que la station est déconnectée.
(Disconnect Mode)
4.3 Echange HDLC
4.3.1 Connexion :
A
B
Jonction
Jonction
ETCD
Temps
ETTD
ETTD
ETCD
U-SABM - P=1
U-UA - F=1
La liaison est dans l’état déconnecté. Le primaire demande l’établissement d’une liaison par l’envoie
de trame non numérotée (U) de type SABM (LAP-B) ou SARM (LAP). Le bit P est positionné à 1
c’est à dire qu’il devra attendre une réponse du secondaire avant d’envoyer ses informations (le bit P
aurait pu être à zéro, là aucune réponse n’est demandée pour commencer à transmettre). Le secondaire
répond, s’il accepte la connexion, par l’UA, le positionnement du bit F sera identique à celui de P. La
liaison est alors établie, l’échange peut donc commencer.
4.3.2 Echange de données
Maintenant la transmission de données, qui peut avoir lieu.
A
B
Jonction
ETTD
Jonction
ETCD
ETCD
ETTD
N(s) P/F N(r)
I 0 0 0
Temps
I 1 0 0
I 2 0 0
RR - 0 3
I 3 0 0
I 4 0 0
I 5 0 0
RR - 0 6
Cas sans erreur
Fenêtre de 3
REJ - 0 4
Cas erreur
48
Cas erreur
Section 2 – Pile X25
Un mécanisme d’échange est présenté dans la figure suivante.
Dans le cas sans erreur, la trame 4 arrive sans erreur à B.
Dans le second elle contient une erreur ce qui impose une correction de B avec l’envoie de la trame
REJ signifiant quel la trame 4 n’est pas arrivée.
On appelle fenêtre le nombre de trames que l’on peut envoyer sans accusé de réception.
Ici la fenêtre est de 3 donc le nombre de trames envoyées par A sera de trois avant la prochaine
réponse de B. La taille de la fenêtre d’envoi doit être inférieure à la capacité du compteur RRN
signifie que le secondaire a bien reçu N paquets et qu’il attend le paquet portant le N(s) = N.
Lorsqu’il y a une erreur, le secondaire utilise :
- soit la commande REJ N pour demander la retransmission à partir du paquet N+1
- soit la commande SREJ N pour demander la retransmission du paquet N tout seul.
4.3.3
Déconnexion:
A
B
Jonction
ETTD
Jonction
ETCD
ETCD
ETTD
U - DISC -P=1
U - UA -F=1
La liaison est en état connectée. Le primaire émet une demande de déconnexion DISC. Le bit P est à
1, le secondaire accuse réception avec UA par F=1. La liaison est rompue. L’échange de fanions se
poursuit pour maintenir la synchronisation tant que le lien physique n’est pas rompu.
4.4 Conclusion sur HDLC:
HDLC est un protocole à la fois très efficace pour le contrôle de flux, très fiable pour la transmission
entre deux équipements, mais il est aussi très lent puisqu’il est mis en œuvre entre chaque nœud de la
liaison. De plus c’est un protocole coûteux en gestion logiciel.
C’est pourquoi, il a été amélioré pour la transmission dans un réseau. La technique utilisée est le
système de FRAME RELAY ( Relais de Trames ) qui permet un allégement du contrôle d’erreurs au
niveau 2 dans le but d’être plus rapide: ce sont les équipements d’extrémité qui s’en chargeront, et
plus les nœuds intermédiaires : c’est l’évolution vers les hauts débits.
Sous ses nombreuses variantes, on le retrouve dans de très nombreux types de réseaux : RNIS, X25,
Ethernet avec LLC…
49
Section 2 – Pile X25
4.5 Frame Relay
4.5.1 Objectifs
Afin d’alléger le fonctionnement HDLC, Frame Relay (FR) propose un certain nombre d’adaptations
tout en conservant les objectifs associés à la couche 2 :
Transmission à travers un réseau (OSI 3)
Contrôle de bout en bout : technique du CV (Circuit Virtuel)
Remplace et simplifie la pile X25/HDLC
ETTD
ETTD
ETCD
ETCD
Frame
Relay
ETCD
ETTD
4.5.2 Primitives de services
De part son approche bout en bout, ce sont les stations qui négocient la connexion, l’échange des
données et la libération. Le réseau propage les trames mais n’acquitte pas directement comme HDLC.
B
A
Frame
Relay
Temps
SETUP
SETUP
CALL
PROCEEDING
CONNECT
CONNECT
Connexion
Etablie
Disconnect
RELEASE
Disconnect
RELEASE
RELEASE
COMPLETE
Déconnexion
4.5.3 Format de Trame
La trame HDLC est une extension du format HDLC :
50
Section 2 – Pile X25
01111110
Fanion
Adresse 1
En-tête
2 / 4 octets
C/R EA
Adresse 2 FECN BECN DE EA
Champs DATA
<4096 octets
CRC 2 octets
01111110
Fanion
Adresse (DLCI : Data Link Connection Identifier) est divisée en 2 blocs : un bloc de 6 bits et
un autre de 4 bits. Il permet d’identifier la connexion unidirectionnelle sortante (Numéro de
circuit virtuel)
EA (End Address) indique si le champ adresse à une suite (EA = 0) ou s’il est le dernier (EA
= 1). Dans les versions étendues, le champ adresse est incrémenté d’un octet (7 bits plus le bit
EA). L’adresse peut donc être exprimée sur 10, 17 (en-tête de 3 octets), ou 24 (en-tête de 4
octets).
C/R (Command/Response) indique s’il s’agit d’une trame de commande ou de réponse
FECN (Forward Explicit Congestion Notification) et BECN (Backward Explicit Congestion
Notification) permettent d’éviter les congestions. Ils sont utilisés lorsque le seuil de
congestion est pratiquement atteint dans un sens ou dans l’autre de l’échange de trame.
L’utilisateur qui reçoit ces avertissements se doit de réduire ses échanges en diminuant son
débit ou la taille de ses fenêtres glissantes.
DE (Discard Eligibility) permet aux organes du réseaux de marquer les trames à éliminer en
priorité lors d’une congestion.
4.5.4 Applications
Le Frame Relay permet un débit de 2 Mbit/s à 45 Mbit/s et des temps de réponse très faibles. Il est
particulièrement bien adapté aux forts trafics aléatoires tels que les trafics d'interconnexion de réseaux
locaux. Par contre les délais de transmission sont variables, le Frame Relay n'est pas adapté aux
applications imposant des temps de latences garantis telles que la phonie ou la vidéo.
51
Section 2 – Pile X25
52
Section 2 – Pile X25
5. X 25
5.1 Norme X 25
5.1.1 Services
X25 est une norme de l’UIT qui normalise les couches basses du niveau OSI 1, 2 et 3. X25 assure
donc les trois grandes fonctions :
1 : Façon de se raccorder au réseau physiquement
2 : Flux et contrôle d’erreurs
3 : Adressage et routage
Il ne s’agit donc pas à proprement parlé d’un protocole mais d’une série de trois protocoles empilés.
X25 est une suite de protocole autorisant la transmission fiable à travers un réseau de paquets de
données en utilisant la technique de commutation de paquet décrite dans la première section.
5.1.2 Architecture
Nous allons décrire l’ensemble des trois piles du protocole avant de détailler la couche réseau
Opérateur Réseau X25
Utilisateur Terminal X25
ETTD
Norme X25
X25
Couche réseau
HDLC
Couche liaison
X21
Couche physique
53
ETCD
Couche réseau
Couche liaison
Couche physique
Section 2 – Pile X25
X 25.1 : Couche physique
La couche physique s’appuie sur le protocole X 21 qui est une forme de V24/RS232
plus évoluée et assurant des débits plus élevés. ( 64 KBits / s et au-delà).
X 25.2 : LAP-B / HDLC
LAP-B : Link Access Protocol – Balanced
Le niveau 2 de la norme X25 correspond au protocole déjà étudié HDLC. Il est dit
équilibré car les trames de connexion sont du type SABM (Set Asynchronous Balanced
Mode).
X 25.3 : désignée couramment par« X 25 », initialement cette norme décrit l’interface entre
l’ETCD et l’ETTD, c’est à dirte encore entre l’utilisateur (ETTD) et le réseau dit réseau
X25 (ETCD). C’est un concept fondamental : l’utilisateur s’adresse à un réseau.
Les services assurés par le niveau 3 sont en principe négociés en amont à l’abonnement par
l’utilisateur avec l’opérateur. en principe, on peut donner les caractéristiques suivantes :
Respect du séquencement
Débit :
64 Kbits / s
Taille des paquets : 128 octets
5.1.3 VL et CV
Le routage sur un réseau X25 s’appuie sur les deux concepts de VL [Voie Logique] et de CV [Circuit
virtuel]. Le CV désigne le trajet emprunté par tous les paquets de bout en bout, et la VL est un
numéro donner à chaque liaison sur le trajet.
Le circuit virtuel est un concept associé aux réseaux de type CONS (Connected Oriented Network
Service). C’est un circuit particulier ( « route » ) réservé aux paquets de données de A vers B (bout en
bout). Tous les paquets empruntent le même chemin. On distingue ainsi deux types de CV :
CVC : CV Commuté
CVP : CV Permanent
Le CVC est institué à la demande. Le CVP est mis en place une fois pour toute lors de l’abonnement
de l’utilisateur.
CV
VL
VL
Un CV est composé de plusieurs VL Le numéro de chaque VL est attribué localement un pour chaque
lien physique et sur un même lien un pour chaque liaison empruntant ce même lien. Il n’y a aucun
rapport entre les numéro de VL entrant et sortant. Nous décrirons dans le chapitre suivant la règle
d’attribution de ces numéros.
54
Section 2 – Pile X25
En conséquence, nous ne manipulerons pratiquement que les VL et leur numéro : ce sont eux sur
lesquels repose la distinction des paquets, de leur source et de leur destination. Le CV est un concept
théorique qui ne sera pas rencontré par la suite dans les trames et les paquets.
5.2 Protocole X 25
5.2.1 Paquet X 25.3
Les données fournit par l’utilisateur sont encapsulées dans un paquet X25 dont lle format est le
suivant :
8
1
IGF
NGVL
NVL
P(r)
M
Bit
Octet 1
Octet 2
P(s)
DATA
0
Octet 3 :ITP
128 octets
IGF. : Identificateur Général de Format
NGVL. : Numéro de Groupe de Voie Logique
NVL. : Numéro de Voie Logique
M : Bit de séparation, bit More : Découpage
P(r), P(s) : Compteur sur 3 bits de 0 à 7 comme en HDLC
ITP. : Identificateur de Type de Paquet ( sur 1 ou 2 octet(s) ) L’ITP désigna l’octet 3
IGF
(4 eb ) :
Ce champ est aussi représenté par la séquence QDmm. Les deux premiers eb Q et D ont des rôles
particuliers et par défaut ils sont à 0. Les deux suivants mm désigne le modulo des compteurs de
paquets :
0001
0010
modulo 8 : les compteurs P(s) et P(r) sur 3 eb, l’ITP sur 1 octet.
modulo 128 : P(s) et P(r) sur 7 eb et l’ITP sur 2 octets.
NGVL
(4 eb ) :
Sa valeur peut aller de 0 (0h) à 15 (Fh).
NVL
(8 eb ) :
Sa valeur peut aller de 0 (00h) à 255 (FFh).
Au total, on a la possibilité d’avoir 15x255 VL possibles.
ITP
(8 eb) :
Quand le bit de poids faible (LSB) est à 0, il s’agit alors d’un paquet de données. S’il est à 1 il
représente un paquet de service (voir infra). Dans le cas d’un paquet de données, ce champ est
constitué à l’image de celui du champ de commande de la trame HDLC. L’usage des compteurs et des
fenêtres y est identique.
P(s) = nombre de paquets envoyés
P(r) = nombre de paquets reçus
M : Le bit More(M) permet d’utiliser des paquets de taille raisonnable. Cet eb permet de découper les
segments transports en paquet de petite taille (128 octets par exemple). Il s’agit en terme de réseau d’une
opération de segmentation. A la réception on aura un réassemblage.
55
Section 2 – Pile X25
OSI4
T-PDU =N-SDU
X25
X25
X25
M=1
M=1
M=0
2 N-PDU
X25
Il existe d’autres types de paquets qui permettent de gérer la liaison au niveau 3 – X25 et dont le
format d’ITP est donné dans le tableau qui suit :
8
5
P(r)
4
M
P(s)
1
bits
0
Paquet DATA
P(r)
0 0 0 0
1
Paquet RR
P(r)
0 0 1 0
1
Paquet RNR
P(r)
0 1 0 0
1
Paquet REJ
0 0 0 0 1 0 1
1
0Bh Paquet d’appel
0 0 0 0 1 1 1
1
0Fh Appel confirmé
0 0 0 1 0 0 1
1
13h demande de libération
0 0 0 1 0 1 1
1
17h Libération confirmée
5.2.2 Echange X 25 ( niveau 3 )
ETTD A
ETCD
ETCD
ETTD B
Déconnexion
Echange de données
Connexion
Réseau X25
Demande d'app el
A; B; VL8
Indication d'appel
A; B; VL1
Confirmation d'appel
A; B; VL1
Appel accepté
A; B; VL8
Paquet données
Pr=0; Ps=0; VL8
Paquet données
Pr=0; Ps=0; VL1
Paquet RR
Pr=1; VL8
Paquet données
Pr=0; Ps=1; VL8
Paquet RR
Pr=1; VL1
Paquet RR
Pr=2; VL8
Paquet RR
Pr=1; VL8
Paquet données
Pr=1; Ps=1; VL1
Paquet données
Pr=2; Ps=0; VL8
Demande de
libération; VL8
Confirmation de
libération; VL8
56
Indication de
libération; VL1
Paquet RR
Pr=1; VL1
Paquet données
Pr=1; Ps=0; VL1
Paquet RR
Pr=2; VL1
Confirmation de
libération; VL1
Section 2 – Pile X25
l’échange ci-dessus représente les flux de paquets au niveau 3 lors des trois phases: connexion,
échange et déconnexion. Ici, l’ETTD A envoie deux paquets de données à l’ETTD B et l’ETTD B en
envoie un à l’ETTD A.
Notons que tous ces paquets utilisent pour être transportés sur les supports du réseau des trames
d’information HDLC. Chacun de ces paquets y sera traité comme des données encapsulées dans le
champs DATA des trames.
5.2.3 Affectation des NVL
On applique toujours la règle suivante pour l’affectation des numéro de voies logiques:
le numéro de voie logique le plus haut possible est utilisé par l’ETTD appelant, c’est à dire
pour les paquets sortants
le numéro de voie logique le plus bas possible est utilisé par l’ETCD appelé pour les paquets
entrants.
les NVL bas (appels entrants) sont prioritaires sur les NVL. Hauts. Cette règle est utile pour
éviter les collisions et inclut une certaine hiérarchie pour les multiples appels arrivants.
Les NVL sont fondamentaux: ce sont eux qui identifie la connexion pour l’ensemble des éléments
connecté aux réseaux. Si A appelle B, il peut ouvrir une ou plusieurs connexion en utilisant autant de
NVL que nécessaire. De même, toute connexion de A avec un autre ETTD C utilisera un autre NVL
qui sera affecté selon les règles précédentes.
Il se peut que l’ensemble des NVL soient affectés, auquel cas l’ETTD est saturé et plus aucun appel
ne peut entrer ou sortir. Dans ces cas, il est d’usage de réservé des NVL à l’usage de l’opérateur
réseau pour la maintenance en cas de difficultés.
5.2.4 Remarques
On peut constater les points suivants:
L’ensemble des acquittements sont locaux au niveau de l’interface ETTD / ETCD ( Utilisateur /
Opérateur) lors de l’échange de données: c’est le réseau qui se charge d’acquiter et non l’ETTD
distant.
L’appel et sa confirmation sont distants, la confirmation de libération est locale: s’il y a une
coupure, on peut gérer la panne en local (libération des voies logiques) car si la confirmation de
libération est distante l’intervention est impossible.
Le réseau peut prendre la responsabilité de refuser une connexion (paquet d’appel) sans le
transmettre au destinataire, il y a alors transmission d’un paquet d’annulation depuis l’ETCD local
vers l’ETTD local. Cette annulation peut également être transmise depuis l’ETTD distant qui refuse
la connexion; le réseau se contente alors de faire transiter le paquet d’annulation.
5.3 Routage
5.3.1 Services : routage et routeurs
La couche paquet (niveau 3) gère l’échange bidirectionnel des paquets, avec régulation du flux de
données émises, en fonction de la vitesse de réception du correspondant. Cette couche assure aussi le
multiplexage de communication simultanée. Les données sont d’abord fragmentées et chaque
fragment est introduit dans le paquet avec un en-tête. Chaque paquet ainsi formé constitue le champ
d’information de la trame HDLC (1 trame contient 1 paquet). La longueur détermine la taille des
57
Section 2 – Pile X25
paquets qui, en général est comprise entre 32 et 256 octets. Les réseaux de paquets peuvent proposer
des tailles de paquets assurant la compatibilité avec l’interconnexion de réseaux locaux, tels
qu’Ethernet (qui utilise des paquets de taille inférieure à 1518 octets).
Ces paquets circulent dans le réseau suivant différentes méthodes selon le protocole utilisé. En effet,
le routage peut être décidé localement ou bien à partir d’un point central. L’un ou l’autre ne propose
pas les mêmes avantages, le routage centralisé restant le plus sûr, mais avec une gestion plus
complexe : c’est en principe celui retenu dans les réseaux X25 étendus.
On distingue également les notions de routage dynamique et de routage statique. Dans le premier cas,
les décisions peuvent évoluer selon la configuration du réseau ; cette technique est traditionnellement
associée à celle de routage locale. Le routage statique signifie que les tables sont fixées une fois pour
toute pour l’ensemble des routeurs.
On peut également aborder le service de routage à travers l’angle du routeur. Ce dernier est
l’équipement qui traite les opérations de routage décrit ci-dessus ; ce peut être un ordinateur ou un
équipement dédié sans interface utilisateur autre qu’un port de configuration. L’important est qu’il
soit équipé de plusieurs ports ou interfaces réseaux. Il sera programmé avec un des algorithmes décrits
ci-dessous et contiendra la table de routage.
5.3.2 Routage par inondation
Le paquet qui arrive sur un port sera renvoyé sur toutes les voies logiques proposées par le routeur.
Les paquets arriveront donc d’une manière certaine à la station destinataire. Les paquets qui se
« perdront » seront détruits grâce à la présence de temporisations qui jugeront l’utilité ou l’inutilité du
paquet dans le maillage.
Cet algorithme est très peu utilisé car il est encombrant, complexe à gérer…mais il est très efficace. Il
se trouve donc appliqué à quelques systèmes tels que certains systèmes militaires qui nécessite une
efficacité maximale.
5.3.3 Routage « hot potatoes »
Il existe un autre algorithme, un peu plus utilisé, c’est l’algorithme « patates chaudes » (hot potatoes
en anglais). Il fonctionne selon le principe que dès que le routeur reçoit un paquet d’appel (dans le cas
X25), il le renvoie vers la voie de sortie la moins occupée. L’inconvénient de ce type d’algorithme est
que le paquet n’emprunte pas le chemin le plus court et que le risque de disparition du paquet est plus
important.
5.3.4 Table de routage statique et dynamique
Tous les trajets utilisés n’ont pas la même efficacité (pas la même longueur, pas le même débit …), il
faut donc estimer la ligne pour lui appliquer un coefficient. Tous les coefficients sont enregistrés dans
des tables qu’il faut remettre à jour régulièrement. Ces coefficients sont appelés pondérations, ils
changent de temps en temps et ne sont applicables que pour une station (pour une autre station, les
pondérations sont différentes).
Le problème principal sera donc de remettre à jour les tables (en temps réel dans le cas du routage
dynamique, une fois par jour…). En outre la gestion de ce genre de table impose un contrôle centralisé
par l’opérateur. Nous aborderons d’autres techniques dans le cadre de l’IP.
58
Section 2 – Pile X25
A
0.1
0.5
0.4
0.3
0.4
0.2
0.7
0.1
0.7
0.1
0.6 0.2
0.2
0.3
B
5.3.5 Routage Géographique
Une dernière technique plus fiable mais plus lourde à mettre en place, il s’agit du routage
géographique. La décision de la route apprendre dépend de l’adresse de l’ETTD appelé. L’adressage
géographique est le plus couramment utilisé. Il suit la norme (ISO) X-121 (il faut d’abord préciser le
pays, puis la région, le réseau…). Cette séquence a besoin de 14 demi-octets. Le paquet d’appel X25
contient à la fois l’adresse appelante et l’adresse appelée.
5.3.6 Création d’un CV
Pour tous ces types d’algorithmes dans le cadre du protocole X25, c’est le premier paquet (paquet
d’appel) qui est routé ; une fois que ce premier paquet (l’Appel) est arrivé à destination, les autres
paquets suivront en utilisant le même itinéraire (ils se repèrent à partir du NVL affecté). Il ne sera plus
nécessaire de les router à travers un algorithme mais de suivre l’affectation de NVL.
A
B
VL8
L1
appel A->B
Adresse
Port
A
M1
B
M4
C
D
M2
A
M3
B
VL8
VL8
M1
L1
M2 VL1
M3
M4
appel A->B
Entrée Sortie
M1
M4
VL8
VL1
Exemple de la procédure suivi par le paquet demandant la connexion :
L’utilisateur A envoie la trame d’appel pour se connecter. Cette trame arrive sur le routeur par le port
M1. Le routeur consulte la table d’adressage et lit, que pour l’adresse B, il doit renvoyer les paquets
sur le port physique M4 avec un numéro de voie logique : 1. De cette façon, les paquets traversent
successivement les routeurs pour arriver à l’utilisateur B sur la voie logique 1.
59
Section 2 – Pile X25
Le paquet de confirmation d’appel prendra le même chemin en sens inverse. Tous les paquets de
données ne porteront que le numéro de VL qui leur sera donné et réaffecté par chaque nœud du
réseau, grâce à la table secondaire associant numéro de port et numéro de VL.
5.4 Interaction niveau 2 et 3 dans X25
5.4.1 Encapsulation
HDLC
01111110
Adresse
T-PDU
X25
Commande
IGF NVL
NVL
ITP
Fanion
En-tête HDLC
En-tête X25
Champs DATA
FCS HDLC
01111110
Fanion
Les paquets X25 sont encapsulés dans des trames HDLC qui seront codées électriquement. Ce sont
donc de telles trames qui circulent sur le réseau. Les données sont placées entre différents éléments
que sont l’entête et l’enqueue. Ces derniers sont introduits au passage à travers les couches de niveau
2 et 3. Il existe donc des liens très étroits entre les différentes couches (et particulièrement entre la
couche 2 et la couche 3).
La trace suivante représente un paquet de données X25 encapsulé dans une trame LAPB dont l’en-tête
a été décodé ; l’en-tête X25 est surligné en gras et décodé au-dessous :
Length: 135
From: Network
Status: Ok
LAPB: LAPB Type: Information Transfer
LAPB: Address Field: 0x03 (Command)
LAPB: Control Field: 0x2A
LAPB: N(S)=5, N(R)=1, P=0
User Data
OFFSET DATA
0002: 10 0F 02 5B 5C 5D 5E 5F 0D 0A 27 28 29 2A 2B 2C
0012: 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C
(....)
Frame Tail
OFFSET DATA
0085: 80 61
10 : 0001 0000 – QD=00 m=01 (modulo 8) NGVL=0
0F : 0000 1111 – NVL=15 (Numéro de voie Logique)
02 : 0000 0010 – Pr=0 – M=0 – Ps=1 – Paquet I
60
ASCII
...[\]^_..'()*+,
-./0123456789:;<
ASCII
.a
Section 2 – Pile X25
5.4.2 Architecture et topologie
Ce dessin montre que les couches 1, 2, 3 sont en contact grâce aux routeurs placés dans le réseau et
que les couches interagissent entre-elles.
B
e direct
Dialogu
A
OSI4
X25
HDLC
X21
X25
HDLC
X21
X25
HDLC
X21
X25
HDLC
X21
61
Section 3 – Pile IEEE 802
62
Section 3 – Pile IEEE 802
6. Les normes IEEE 802
6.1 Résumé des différentes normes IEEE 802
6.1.1 IEEE
L’IEEE est L’Institute of Electronics and Electrics Engineers, organisme d’étude et de normalisation
internationale. Il existe une grande quantité de normes en perpétuelles évolutions et associées à des
groupes de travail qui publient régulièrement leur résultats, et qui sont créés pour suivre les besoins de
normalisation. Les standards IEEE qui nous intéressent ici concernent les couches physiques et liaison
(niveau 1 et 2) du modèle OSI (Open Systems Interconnection). Ces standards sont connus sous le
nom de normes IEEE 802 édictées au sein du groupe IEEE 802 LMSC (LAN/MAN Standards
comittee). Ils ont été repris par l’ISO sous le numéro 8802.
6.1.2 Résumé des IEEE 802
le tableau qui suit résume l’actualité des normes 802.n. Des détails sont disponibles sur le site internet
ieee.org.
IEEE 802.1
IEEE 802.2
IEEE 802.3
IEEE 802.4
IEEE 802.5
IEEE 802.6
IEEE 802.7
IEEE 802.8
IEEE 802.9
IEEE 802.10
IEEE 802.11
IEEE 802.12
IEEE 802.13
IEEE 802.14
IEEE 802.15
IEEE 802.16
Résumé de la norme 802
Résumé des protocoles de sous-couche Mac
Protocoles d’interface de haut niveau (HLI)
Norme Ethernet sur bus – CSMA/CD
Bus à jeton – Token bus
Anneau à jeton – Token ring
MAN- DQDB : Dual Queue Dual Bus
Technologies large bande
LAN sur fibre optique
Ethernet Multimédia – 10 Base M
Sécurité des LAN
LAN sans fils – 10 base X – 11 et 54 Mbit/s (WLAN)
100 Base VG any LAN [(VG : Voice Grade) téléphonie sur LAN].
Câblage Cat 6 – 10Gb LAN
Câbles modems (paire téléphonique)
Réseaux personnels sans fils (Wireless PAN)
Accès sans fils large bande / Boucle locales radio (WMAN)
63
Section 3 – Pile IEEE 802
IEEE 802.17
IEEE 802.18
IEEE 802.19
IEEE 802.20
IEEE 802.21
IEEE 802.22
Anneau de paquet résilient
Surveillance de la coexistence des normes radio
Surveillance de la coexistence de l’ensemble des normes
Réseau sans fils large bande – MBWA – Mobile Broadband
Wireless Access
Handover et interopérabilité inter-réseau : GSM, WiFi, Bluetooth…
WRAN : Wireless Regional Area Network
6.1.3 Standard - Norme 802.3
Le standard IEEE 802.3 se divise également en de multiples sous-groupes qui traitent chacun d’un
aspect de la transmission sur bus utilisant le protocole CSMA/CD :
IEEE Std 802.3z-1998,
IEEE Std 802.3aa-1998
Gigabit Ethernet
Maintenance Revision #5 100BASE-T – Fast Ethernet
IEEE Std 802.3ab-1999
IEEE Std 802.3ac-1998
IEEE Std 802.3ad-2000
IEEE Std 802.3ak
IEEE Std 802.3af
1000BASE-T.
VLAN TAG
Link Aggregation
10Gb sur cuivre
Power over Ethernet (PoE)
Remarque : On compte en réalité plus d’une quarantaine de sous-groupes, avec la création de 2 à 4
nouveaux sous-groupes chaque année, et d’autres sont obsolètes.
6.1.4 Résumé des normes radio
Le tableau qui suit indique les principales caractéristiques de normes de liaison de données par le
canal radio. On pourra distinguer tout d’abord les technologies télécoms destinés au transmissions
vocales et les technologies réseaux destinées aux données informatiques. L’utilisation d’une des
catégories pour l’usage opposé impose certaines contraintes et sont au cœur de certaines
normalisations.
Norme
Organisme
Bande
Débit brut
IEEE 802.11b
WiFi
IEEE 802.11g
IEEE 802.11a
IEEE 802.11h
IEEE 802.11f
IEEE 802.11e
IEEE 802.11.i
IEEE 802.11.n
IEEE 802.11.s
IEEE
2,45GHz
11 Mbits/s
IEEE
IEEE
IEEE
IEEE
IEEE
IEEE
IEEE
IEEE
2,45GHz
2,45GHz
5GHz
22Mbits/s
54Mbit/s
54Mbits/s
-
500Mbits/s
IEEE 802.15.1
IEEE 802.15.2
IEEE 802.15.3a
UWB – WiMedia
IEEE
IEEE
IEEE
2,45GHz
IEEE 802.15.3c
IEEE
60GHz
2Gbit/s
64
Technique
radio
Etalement de
spectre
Usage
LAN radio
OFDM
OFDM
OFDM
LAN radio
LAN radio
Migration Hyperlan (Europe)
Itinérance (roaming)
Qos Voix
Sécurité
MIMO-OFDM
WiFi Haut débit
Maillage radio des réseaux
WiFi
Convergence Bluetooth
Coexistence 802.11 / WPAN
OQPSK
LAN personnel – WPAN –
Mort
WPAN – Haut débit
Section 3 – Pile IEEE 802
IEEE 802.15.4
« Zig-bee »
IEEE 802.16
Wimax
IEEE
2,45GHz
250 kbit/s
Transmission de données
IEEE
11GHz
70Mbit/s
OFDM
MAN radio
Normes concurrentes
HyperLAN2
ETSI
5GHz
4Mbit/s
OFDM
LAN radio
Home RF 1.1
2,45GHz
1,6Mbit/s
LAN radio privé
Home RF 2.01
2,45GHz
10Mbit/s
Bluetooth
2,45GHz
3Mbit/s
Etalement de
spectre
Etalement de
spectre
GFSK
UWB – Ultra
Wide Band
W-USB Wireless
USB
3,110,6GHz
3,110,6GHz
480Mbits/s
OFDM/PPM
480Mbits/s
OFDM/PPM
LAN radio privé
Transmission de données
courte portée
Transmission Multimedia
courte portée
Compatible UWB
L’utilisation d’un canal radio est en pratique plus coûteux de 20 à 30% qu’un accès filaire, mais offre
des avantages en terme de mobilité au sein d’un même bâtiment, de facilité d’accès de certains locaux,
d’équipement temporaire, etc…
Portée
Cellulaire
GSM
WiMax
GPRS
EDGE
4G
10000m
802.16
UMTS
802.11b
1000m
802.11g
802.11a
802.11n
WLAN
100m
HomeRF
10m
HyperLan/2
WPAN
ZigBee
Bluetooth
1.0
1m
10k
WUSB/UWB
2.0
10M
1M
100k
100M
1G Débit bits/s
L’IEEE envisage ainsi un développement concentrique de ses normes, offrant une gamme complète et
alternative aux réseaux d’opérateurs classiques. La guerre est sur le point d’être déclarée.
10km
Wireless MAN
802.16
100m
WiMax
802.11
WiFi
Wireless LA N
10m
802.15
ZigBee/UWB
65
Wireless PAN
Section 3 – Pile IEEE 802
6.2 Architecture
6.2.1 Architecture IEEE et OSI
La normalisation IEEE 802 repose sur un découpage de la couche liaison OSI2 en deux sous couches
LLC et MAC qui débordent vers la couche réseau OSI3 et la couche physique OSI1. Cela répond à
une finalité plus pratique et matériel que celle de l’OSI : au-dessus les machines et les logiciels ; audessous les cartes physiques de communication et les supports de transmissions.
La position dans l’architecture de type OSI :
pile OSI
OSI 4
pile IEEE
OSI 3
LLC
OSI 2
MAC
OSI 1
PHY
Medium
LLC : Logical Link Control.
MAC : Medium Access Control (contrôle d’accès au support)
PHY : Physical
La norme IEEE 802.1 traite de la relation entre l’architecture des réseaux locaux et le modèle ISO, en
particulier du découpage de la couche liaison en deux sous-couches MAC ( Medium Access Control)
et LLC ( Logical Link Control). La couche PHY sera traitée dans le chapitre suivant.
6.2.2 Sous-couches MAC & LLC
La couche MAC (Medium Access Control) rend un service d’accès au support, déterminé par la
norme ISO 10 039. Il existe, comme pour toutes les couches, des primitives de services pour permettre
à la couche LLC (Logical Link Control) situé au dessus de la couche MAC de demander les services
de transmission de la couche MAC.
Pour ce qui concerne les protocoles de la couche MAC, plusieurs méthodes génériques d’accès sont
normalisées :
CSMA/CD sur bus, définie dans le standard IEEE 802.3 et décrite ci-après
Le jeton sur anneau logique ou physique (c’est à dire sur bus ou sur anneau. Ces 2 dernières
méthodes d’accès sont définies respectivement dans les standards IEEE 802.4 et IEEE 802.5)
CSMA/CA sur canal radio, définie dans le standard IEEE 802.11
Le contrôle de l’émission et de la réception des trames est à la charge du niveau LLC qui a fait l’objet
du standard IEEE 802.2.
6.2.3 Accès au medium
Les fonctions de niveau 1 sont réalisées par une unité d’accès au support appelée MAU (Medium
Access Unit). Ces fonctions regroupent notamment :
Les codages et décodages de données.
La synchronisation.
La reconnaissance de trames.
66
Section 3 – Pile IEEE 802
Au niveau de la transmission sur le support physique et le médium lui-même, deux techniques font
actuellement l’objet de standards :
La transmission en bande de base sur câble coaxial.
La transmission en large bande sur un câble de type CATV (câble d’antenne de télévision).
Les vitesses de transmission standard pour le réseau local sont de 1, 5, 10, 20 et 100Mbit/s.
Nous rappelons ici les différentes façons d’accéder au support (nous renvoyons le lecteur aux cours
Télécoms et Signal) :
AMRF
AMRT
AMRC
AMRS
AMRP
CSMA
CSMA/CD
CSMA/CA
ALOHA
accès multiple à répartition des fréquences (FDMA en anglais).
accès multiple à répartition du temps (TDMA).
accès multiple à répartition en code (CDMA).
accès multiple à répartition spatiale (SDMA).
accès multiple à répartition en polarisation (PDMA).
carrier sense multiple access = accès multiple à détection de porteuse
CSMA collision detected = accès multiple à détection de porteuse et
détection de collision.
CSMA Collision avoidance = accès multiple à détection de porteuse et
évitement de collision [support radio].
( « Bonjour » en tahitien !) Chacun occupe le canal lorsqu’il le désire
Les protocoles CSMA sont bien adaptés aux trafics faibles. Ils sont surtout beaucoup plus simples à
mettre en œuvre tout en garantissant une bande passante relativement élevée. Ce sont eux qui sont au
fondement du standard IEEE 802.3.
6.3 LLC (802.2)
6.3.1 Services
La couche LLC assure un certain nombre de services similaires à ceux du protocole HDLC dont il
reprend les trames (SABM, DISC, RR, I, UI...) :
le contrôle de flux : il est de type « stop and wait » pour les services sans connexion et avec
acquittement. Il utilise un mécanisme de fenêtre classique pour le service avec connexion.
Le contrôle d’erreurs : la détection des erreurs se fait à l’aide d’un CRC (Cyclic Redundancy
Check).
Le service rendu par la couche LLC aux couches supérieures est spécifié par 3 classes :
LLC 1 : Service sans connexion et sans acquittement
LLC 2 : Service avec connexion
LLC 3 : Service sans connexion et avec acquittement
LLC 1 peut s’appliquer dans les cas suivants :
lorsque les couches supérieures supportent la reprise en cas d’erreurs et assurent la remise en ordre
des informations.
lorsque l’application tolère des pertes et des erreurs dans les données (voix numérisée, fax,
télémesure).
LLC 2 convient pour les (longs) transferts de fichiers ou lorsqu’un terminal accède à distance à un
système de temps partagé. C’est le plus fiable, avec connexion, contrôle de flux, reprise sur erreur,
libération…
LLC 3 évite de maintenir une table des connexions actives qui peut devenir énorme dans certains
cas. Elle fonctionne en mode point à point uniquement. Elle est plus fiable que LLC1.
67
Section 3 – Pile IEEE 802
6.3.2 Structure de trame LLC :
Au début d’une trame LLC, nous trouvons deux octets de champ d’adresse. Le premier contient
l’adresse destinataire (Destination Service Access Point) DSAP et le second désigne l’adresse
d’origine (Source Service Access Point) SSAP.
Dans le DSAP, le bit de poids faible (le premier transmis) sert à indiquer si l’adresse est individuelle
ou de groupe. Par contre dans le SSAP, ce même bit indique s’il s’agit d’une trame de commande ou
de réponse : son rôle est similaire à celui du bit P/F dans HDLC.
LSB
Point d'accès Destination
Point d'accès Source
DSAP
SSAP
Contrôle
Champs DATA
<8Mo
FCS 2 octets
Le champ de commande d’une trame LLC correspond aux spécifications de HDLC. Si la
numérotation se fait modulo 128, les compteurs N(s) et N(r) sont codés chacun sur 7 bits. Le champs
FCS n’est utile que si les fonctionnalités de reprises sur erreur sont utilisées (LLC1 et 3)
Nous verrons que dans le format de l’encapsulation MAC, la taille maximale du paquet est de 1500
octets et que sa taille minimale est de 46 octets, pour assurer l’occupation du support avant les
détections de collisions (§3.3.3).
6.4 Sous-Couche MAC
6.4.1 Services
Les couches MAC les plus répandues sont celles utilisées dans les réseaux Ethernet définies par la
technique CSMA/CD (normalisée 802.3) et dans les réseaux utilisant la technique de jetons sur bus
(Token Ring) définie par la norme 802.4.
Le rôle de cette sous couche est par définition l’adaptation aux supports physique. Dans le cas d’un
réseau bus, des fonctions d’adressages seront donc nécessaires pour identifier les machines. Elle gère
également les détections d’erreurs.
68
Section 3 – Pile IEEE 802
6.4.2 Trame MAC 802.3 : RFC 1042
10101010 10101010
10101010 10101010
10101010 10101010
10101010 10101011
Préam bule
start Frame delimitor
Adresse Destination 2 ou 6 octets
Adresse Source 2 ou 6 octets
Longueu r 2 octets
Champs DATA
0 à 1500 octets
Champs PAD
0 à 46 octets
CRC 4 octets
Chaque trame contient dans un en-tête l’adresse de la station origine et l’adresse de la station
destination.
La taille minimale de la trame est de 64 octets, sans le préambule. Le champs PAD (padding) pour le
bourrage permet d’assurer cette taille en l’absence de données ou avec des données insuffisantes.
A noter que le CRC se calcule sur l’ensemble allant de l’octet SFD à la fin du champ PAD, y compris
les adresses et le champ longueur. Le polynôme générateur utilisé est :
G ( x) = x 32 + x 26 + x 23 + x 22 + x16 + x12 + x11 + x10 + x8 + x 5 + x 4 + x 2 + 1
6.4.3 Trame ETHERNET II : RFC 894
Il existe une variante de la trame précédente appelée trame Ethernet et qui n’est pas destinée à
encapsuler une trame LLC. Elle va encapsuler directement des datagrammes IP par exemple. Dans le
cas de cette trame le champ longueur (sur deux octets) est remplacé par un champ type de trame. Sa
valeur est exprimée selon le protocole de couche supérieure (cf RFC 1700) :
Protocole
Champ
IPv4
ARP
X25.3
Appletalk
IPv6
0800h
0806h
0805h
8019h
86DDh
Pour éviter la confusion entre trame Ethernet II et trame LLC, Il existe donc un usage double du
champ longueur :
Si La valeur du champ est inférieure à 1500 : Il s’agit d’une trame LLC. Ces trames sont
limitées à la taille maximale de 1500 octets pour le champ DATA (1518 avec le CRC, les
adresses MAC et le champs longueur/Ethertype).
Si la valeur est supérieure à 1500, il représente un code (ou ethertype) conforme au tableau
précédent, identifiant la nature du protocole encapsulé dans la trame
69
Section 3 – Pile IEEE 802
6.4.4 Adressage MAC : IEEE 802.1
L’adresse MAC est unique et attribuer aux cartes matériels assurant la connexion au réseau. Il
s’effectue sur 6 octets (48bits). Son format général est le suivant :
ab
N° OUI 22 bits
N° de série 24 bits
On les exprimera sous une forme hexadécimale, chaque octet séparé par deux points :
08 : 00 : 20 : 56 : D8 : 96
Attention : la séquence binaire codée sur le support est inversée par rapport à sa représentation
hexadécimale (toujours le LSB transmis en premier) : l’octet 08h, qui s’écrit 0000 1000, sera codé
0001 0000, c’est à dire 10.
Le bit de poids fort du champ d’adresse ici noté a précise s’il s’agit d’une adresse individuelle (notée
0) ou d’une adresse de groupe (notée 1). Une adresse de groupe permet à plusieurs stations de
reconnaître une même adresse. Lorsqu’une trame est transmise avec une adresse de groupe, toutes les
stations appartenant au groupe la reçoivent. Ce type de transmission est appelé transmissiondestinataire.
Le second bit b permet d’indiquer s’il s’agit d’une adresse universelle (notée 0) s’identifiant sur 6
octets ou une adresse locale (notée 1) sur 2 octets.
On définit donc à partir de l’utilisation du champ adresse 3 types d’utilisation :
a
0
1
Unicast
Multicast
Unique
Locale
Broadcast
1
b
0
1
1
une adresse unique pour un destinataire unique
adresse désignant un groupe de machines
adresse officielle au format OUI
adresse administrée localement.
adresse de diffusion générale, tous les bits à 1 :
FF :FF :FF :FF :FF :FF
6.4.5 Identification OUI
Xerox est l’initiateur du standard Ethernet. OUI désigne l’Organizationally Unique Identifier, numéro
unique d’identification de l’interface. En se reportent à la recommandation RFC 1700, on aura la liste
des différents constructeurs de coupleurs Ethernet afin de pouvoir les identifier. Nous donnons ici
quelques exemples :
Constructeur
En-tête24bits
Sun
IBM
Cisco
08 :00 :20
08 :00 :5A
00 :00 :0C
70
Section 3 – Pile IEEE 802
6.4.6 Adresses Particulières
Outre l’adresse de diffusion destinée à l’ensemble des interfaces (FF :FF :FF :FF :FF :FF) Il existe un
certains d’adresse particulières destinées à un usage spécifique ou propriétaire.
Encapsulation de Datagrammes IP multicast
Les paquets IP à destination multicast (224.a.b.c) sont encapsulés dans des trames MAC d’adresses
destinations spécifiques formées à partir de l’adresse IP destination multicast.
bits
IP multicast : 224.aaaa aaaa.bbbb bbbb.cccc cccc
MAC : 01:00:5E:0aaa aaaa:bbbb bbbb:cccc cccc
Spanning Tree
L’IEEE normalise l’usage de l’adresse destination 01 :80 :c2 :00 :00 :00 pour les trames BPDU du
protocole spanning tree (§8.2.4)
Cisco Discovery protocol
Protocole propriétaire décrit dans la partie suivante et utilisant l’adresse destination
01 :00 :0c :cc :cc :cc.
6.5 CDP
6.5.1 Objet de cdp
le CDP (Cisco Discovery Protocol) est un protocole propriétaire de collecte d’information sur les
équipements réseaux supportant CDP : Version du système d’exploitation, adresse IP… Il permet de
vérifier la connectivité niveau 3 en l’absence de fonctionnalités IP. Il supporte les protocoles LAN,
Frame Relay, ATM
CDP permet la transmission d’information TLV: (Type lenght Value):
- l'identifiant (Device ID)
- L’adresse IP, et l’interface locale
- la capacité : type de matériel
- la plate-forme et le versions logiciels.
6.5.2 Format des trames
CDP
SNAP
ID 0x2000
Oui 0x00000C
LLC
802.3
ATM
Cisco HDLC
Type 0x2000
PPP
Type 0x2007
Cisco HDLC inclut dans la trame un champ protocole de 2 octets après le champ commande et avant
le champ data
71
Section 3 – Pile IEEE 802
CDP
code-PID
00000c-2000
DSAP : aa
LLC
MAC Destination 01:00:0c:cc:cc:cc
Encapsulation sur LAN : CDP/PID/OUI/LLC/MAC
Les informations sont consultables sur les équipements via des commandes spécifiques
>
>
>
>
>
>
>
>
cdp run
cdp enable
show cdp traffic
clear cdp counters
show cdp
show cdp entry {*|nom-équipement[*][protocol | version]}
show cdp interface [type number]
show cdp neighbors [type number] [detail]
72
Section 3 – Pile IEEE 802
7. Ethernet
7.1 Description du CSMA/CD :
7.1.1 Historique
L’accès ALOHA (Qui signifie bonjour en tahitien) a été mis en place par les Américains pour
exploiter le réseau informatique des îles du pacifique. Le principe est très sommaire, chacun utilise le
réseau lorsqu’il le désire. Ce système va vite montrer son point faible : lorsque au moins deux
utilisateurs utilisent le support en même temps, le réseau se « plante » car il y a collision des paquets.
La solution consiste donc à utiliser le support lorsque celui-ci est libre.
Ce procédé prend le nom de CSMA ; avant d’émettre la station 'écoute' le support hertzien pour voir si
le réseau est disponible, et si personne n’émet, elle émet à son tour. Ce système fit ses preuves, mais le
réseau prenant de l’ampleur une nouvelle faille apparut. Si une station placée à une extrémité du
réseau décide d’émettre et, qu’à l’autre extrémité une station ‘écoute’ le support en même temps, cette
dernière pensera que le réseau est libre car elle n’entendra rien à cet instant, cela est dû au temps de
propagation sur le support. Elle décide donc d’émettre et, les paquets rentrant en collision, le réseau
« plante » à son tour.
Le CSMA/CD résout le problème en continuant à écouter le réseau une fois le paquet envoyé. S’il
entend une collision, il ré-émet le paquet après un certain temps. Pour que ce système soit fiable, il
faut naturellement que la temporisation soit différente sur chaque station.
7.1.2 Câblage :
Historiquement, le réseau Ethernet est le premier utilisant une technique d’accès type CSMA/CD. Les
bouchons permettent de s’adapter à l’impédance du câble (50 Ω ). Le Débit est de 10Mbits/s. On y a
accès sur câble coaxial « épais » ou « fin », ou sur paire torsadée, voire fibre optique.
73
Section 3 – Pile IEEE 802
câble coaxial
Dénomination des câblages historiques :
Nom
Câble
Longueur max
d’un segment
10 base 5
10 base 2
10 base T
10 base F
Coaxial épais
Coaxial fin
Paires torsadée
Fibre optique
500 m
200 m
100m
2000m
100 base T
10 base X
Paires torsadées 100m
Radio
100m
Nbre max de
stations par
segments
100
30
1024
1024
1024
-
remarques
Réseaux fédérateurs
Maintenance facile
Site élargi sur plusieurs
bâtiments
Fast Ethernet sur hub
Normalisé sous 802.11
Dans le nom « 10BASE »La valeur de « 10 » représente le débit en Mbits/s. On trouve également 100
pour le fast Ethernet et 1000 pour le Giga Ethernet. Des normes spécifiques ont été étudiées pour ces
cas (voir parties ci-dessous).
10 base 2 : câble coaxial, 200 mètres maximum avec un débit de 10Mbits/s en théorie. En réalité, le
débit est supérieur à 1Mbit/s et inférieur à 10Mbits/s à cause du protocole d’accès.
7.1.3 Principe du CSMA/CD
La méthode d’accès aléatoire CSMA/CD est entièrement décentralisée et aucune station ne joue un
rôle particulier. Cette technique ne s’applique que sur un bus logique ; l’ordre dans lequel les stations
reçoivent les messages sur le bus n’intervient pas. La détection de la porteuse se fait par
reconnaissance des interférences provoquées par la collision de 2 trames.
Problème : Comment s’assurer que c’est son propre paquet qui est entré en collision ?
Solution : Afin d’éviter qu’une trame très courte, transmise par une station, ne soit victime d’une
collision après la fin de sa transmission et avant que son premier bit n’ait atteint l’extrémité d’un
câble, une méthode consiste à ce que la trame ait une longueur (durée) minimale.
durée aller
durée retour
collision
longueur L
A et C sont aux extrémités du réseau.
A t=0 : la station A commence à transmettre une trame. Soit τ le temps de propagation de cette trame
pour atteindre l’autre extrémité du câble. Juste avant que la trame atteigne l’autre extrémité du câble
74
Section 3 – Pile IEEE 802
(à t = τ - ε) la station C se met également à émettre. Lorsque C s’aperçoit quelle écoute des
informations différentes que celles transmises, elle en déduit qu’une collision s’est produite. La station
C interrompt alors sa transmission et génère un signal de brouillage de 48 Bits afin d’avertir les autres
stations de cette collision.
Au bout d’un temps de 2τ, la station A recevant le signal de brouillage émis par B, interrompt
également sa transmission. Les 2 stations devront attendre un certain temps avant de renouveler leurs
transmissions respectives.
7.1.4 Calculs
Le temps minimal avant d’être certain qu’il n’y a pas de collision est de 2 τ. Sachant que dans un
câble coaxial, la vitesse d’une onde est de 2/3.c0 (~2.108m/s) et que selon la norme, la longueur
maximale du bus est de 2500m (entre A et C), nous pouvons calculer la valeur de τ :
τ=
L max 2500
=
= 12.5µs
v
2.108
Il faut que la trame ait une durée de 2 τ, soit 25µs.
Sachant que le débit est de 10Mbits/s, nous pouvons calculer la longueur de la trame en octets.
L (trame en octet)= ( 10.106 * 25.10-6 ) / 8 = 31.25 octets
Il faut donc 32 octets minimum dans une trame. Dans la norme, comme la durée minimale réelle
d’une trame est fixée à 51.2µs (avec les marges de sécurité dues au temps de calcul au niveau des
cartes et des répéteurs) ; cette durée est aussi appelée Round-Trip Delay. En conséquence la taille doit
être de 64 octets minimum.
En outre une marge inter-message est respectée (d’au moins 9,6µs) pour garantir une atténuation du
signal précédent et prévenir tout risque d’échos.
7.1.5 Codage
Le codage électrique des données en ligne est un codage Manchester simple (ou codage biphasé
antipolaire) avec 2 niveaux de tension : + 0 V et – 2.2 V.
Représentation temporelle :
Compte tenu de l’aspect temporel, la bande passante minimale du signal devra être de 20MHz pour un
débit de 10 Mbits/s.
75
Section 3 – Pile IEEE 802
V/Hz
20MHz
Hz
7.1.6 Erreurs Ethernet
L’expérience et l’étude des réseaux locaux ont montré un certain nombre de défauts et d’erreurs
susceptibles de provoquer des baisses de performances plus ou moins pénalisantes :
Trame runt de taille inférieure à 64 octets dont la présence peut être une conséquence de
collisions
Des trames jabber de longueur excédent 1526 octets (avec un préambule et un FCS valide)
Des erreurs d’alignement de trames ne contenant pas un nombre entier d’octets.
Il convient d’être respectueux des longueurs de segments, de se méfier des équipement defectueux,
d’une charge trop importante provoquant des collisions dans des taux plus grands que 1 pour 1000
trames...
7.2 Fast Ethernet
7.2.1 Topologie :
Le câblage en paire torsadée, ou paire téléphonique est plus simple à installer qu’un câblage coaxial,
en particulier dans un bureau pré-câblé pour le téléphone. Cela a conduit a normalisé les conditions
d’accès à un support sur paire UTP ou STP (cf chapitre 2 - Support Physique).
Hub - Concentrateur
Paire Torsadée
La topologie en étoile est représentée ci-dessus. Le rôle du hub peut –être multiple. Le plus simple est
le hub – concentrateur qui simule le rôle du bus coaxial historique et permet le partage d’un support
unique par toutes les stations.
Le protocole CSMA/CD peut-être implémenté sans difficulté mais avec quelques aménagements sur
le codage électrique, les horloges et les longueurs de câbles, qui concerne le domaine de collisions.
L’augmentation du débit de 10 à 100Mbit/s a une conséquence importante puisque le Round-Trip
Delay est alors divisée par 10. il s’ensuit donc une réduction de la taille physique des supports à
environ une centaine de mètres par câble.
76
Section 3 – Pile IEEE 802
7.2.2 Câblage
On trouve trois types de supports possibles pour le Fast Ethernet autorisant 100Mbit/s sur le canal :
Nom
Câble
100 base T4
100 base TX
100 base FX
Paires torsadée – 8 fils (4 paires)
Paires torsadée – 4 fils (2 paires)
Fibre optique
Longueur max
d’un segment
100 m
100 m
400m
12345678
Connecteur RJ 45 vu contacts électriques au dessus du connecteur
Le tableau qui suit présente le câblage pour le 100baseTX côté prise RJ45 ci-dessus.
Fil
1
2
3
4
5
6
7
8
Couleur
Blanc - Vert
Vert - Blanc
Blanc - Orange
Bleu - Blanc
Blanc - Bleu
Orange - Blanc
Blanc - Marron
Marron - Blanc
Fonction
Emission + 3
Emission - 3
Réception + 2
Réception - 2
Pour un câblage correct entre une carte PC et un Hub, il faut donc croiser les câbles entre les deux
connecteurs mâles RJ45.
12345678
12345678
On peut également, comme pour la jonction V24, utiliser un câble croisé pour relier directement deux
PC sans passer par le Hub. Le câblage ci-dessous propose un exemple pour un câble 4fils :
12345678
12345678
7.2.3 Codage
L’augmentation du débit de 10 à 100Mbits/s imposerait pour un codage Manchester une bande
passante double de 200MHz. : deux moments par bits. Pour limiter la bande tout en gardant une bonne
qualité, des codages particuliers détaillés dans le tableau sont mis en œuvre.
77
Section 3 – Pile IEEE 802
Tous les symboles ne sont pas utilisés pour les données mais peuvent être utilisés par le réseau. La
vitesse réelle sur le support est supérieure ou inférieure au débit utile selon les choix. On résume cidessous différents codages pouvant être utilisés :
B
T
Q
Bivalent – 2 états électriques
Trivalent – 3 états électriques
Quadrivalent - – 4 états électriques
2B2T
2 eb représentés avec 2 symboles trivalents
8 eb représentés avec 6 symboles trivalents
2 eb représentés avec 1 symboles quadrivalents
4 eb représentés avec 5 symboles bivalents
8B6T
2B1Q
4B5B
On détaille les applications au Fast Ethernet :
Nom
100 base T4
4 paires
100 base TX
2 paires
Codage
8B/6T
8 Bits / 6eb transmis codés sur 3 états
4B/5B
4 Bits / 5eb transmis codés sur 2 états
Horloge
25 MHz
125 MHz
Dans le cas du 100baseT4, une paire est consacrée à la liaison montante, et les 3 autres à la liaison
descendante. Le débit sur chacune des paires est de 8/6 de la fréquence horloge. Le débit totale
descendant est donc bien du triple soit 8/2x25MHz=100Mbit/s.
Symbole
Idle
J Début
K Début
R
S
Quiet
Halt
T
Codage
11111
11000
10001
00111
11001
00000
00100
01101
Codage 4B/5B 100 BASE TX
Symbole
Codage
Symbole
0
11110
8
1
01001
9
2
10100
A
3
10101
B
4
01010
C
5
01011
D
6
01110
E
7
01111
F
Codage
10010
10011
10110
10111
11010
11011
11100
11101
La transmission s’effectue par un codage électrique de type NRZI – Non Retour à Zéro Inversé,
présenté ci-dessous :
V
0
0
1
1
0
1
t
Durée
8 ns
Symbole T
Durée : 40ns
0 : Pas de changement d’état
1 : Inversion de polarité de l’état précédent
78
Section 3 – Pile IEEE 802
7.3 Gigabit Ethernet
7.3.1 Topologie :
Les topologies Ethernet étoilés classiques sont conservées. Cette norme est une évolution du Fast
Ethernet vers un débit 10 fois plus important. Son débit élevé lui permet d’être déployé en priorité sur
les réseaux professionnels d’opérateurs.
7.3.2 Câblage
On trouve essentiellement 3 types de raccordement physique :
Nom
1000 base T
802.3ab
1000 base CX
1000 base X
Câble
Longueur max
d’un segment
Paires torsadée – 8 fils (4 paires) – 100 m
cat 5 UTP (cat 6 FTP)
2 Câbles coaxiaux
25 m
Fibre optique
<70km
Le raccordement sur fibre (1000BaseX) comprend en réalité de nombreuses variantes selon le type de
fibre
Nom
Fibre
Longueur max
d’un segment
1000 base SX Multi-mode
<550m
1000 base LX Multi-mode
550m
1000 base LX Monomode
5 km
1000 base LX10 Monomode 1,310nm (2ème fenêtre) 10 km
1000 base ZX10 Monomode 1,550nm (3ème fenêtre) 70 km
7.3.3 Codage
On retrouve les techniques introduites pour le codage Fats Ethernet :
Nom
1000 Base T
1000 Base SX/LX
Codage
8B1Q4 / PAM5/ 4 paires
8B/10B / NRZ
Horloge
125 MHz
-
Le codage 8B1Q4 code 8 bits sur un symbole de valence 4+1 (soit 5, -2,-1,0,1,2) envoyé en un temps
horloge, d’où le débit de 8*125M=10Gbit/s. Ce symbole 1Q4 inclus un symbole de correction
d’erreur.
Le codage PAM5 (Pulse Amplitude Modulation) désigne le codage à 5 niveaux de tensions. (-1V, 0,5V, 0V, +0,5V, +1V).
79
Section 3 – Pile IEEE 802
7.4 Auto-Négociation
7.4.1 Topologie globale :
L’intégration dans un même LAN de différents équipements avec des besoins différents en bande
passante et une exigence de QoS permet de répartir la charge des flux entre poste client et backbone
selon une topologie en arbre hiérarchique.
Serveur
1000Mbit/s
Bac kb on e
Switch
1000Mbit/s
1000Mbit/s
Switch
Switch
100Mbit/s
100Mbit/s
HUB
10Mbit/s
Clients
Le modèle de connexion physique peut se détailler selon le schéma ci-dessous en fonction des
différentes déclinaisons :
PLS
PMA
MAU
MDI
10BaseT
PLS :
Physical Layer Signaling
RS :
Reconciliation Sublayer
PCS :
PMA :
PMD :
MDI :
Physical Coding Sublayer
Physical Medium Attachment
Physical Medium Dependent
Medium Dependent Interface
LLC
MAC
RS
PCS
PMA
PHY
PMD
Autoneg
RJ-45 MDI
100BaseT
RS
PCS
Autoneg
PHY PMA
PMD
RJ-45 MDI
1000BaseT
Interprètes les bits véhiculés sur le câble (data,
collision, NLP)
Adaptation de bits de la couche MAC pour les
couches PHY
Codage des bits en symboles (type 4B/5B)
Interface avec la bande de base (NRZI)
Interface électronique
Connectique
7.4.2 Commutateurs
Les commutateurs Ethernet 10/100/1000 Mbit peuvent permettre une extension de la taille des liens et
la mise en place d’une topologie complexe. Leur structure interne peut être de complexité plus ou
moins grande, selon en particulier les capacités d’administration, la rapidité, le nombre de ports...
80
Section 3 – Pile IEEE 802
Les commutateurs « on the fly » (ou "cut through") se contente de traiter les premiers octets de
l’entête puis d’aiguiller l’ensemble de la trame vers le destinataire. Aucun traitement d’erreur
n’est effectué.
Les commutateurs « store&Forward » mémorise l’ensemble de la trame ce qui est plus sûr
mais impose une latence plus grande. Il est possible d’administrer les switch de manière plus
ou moins fine afin d’arbitrer entre ces deux types de commutation
Les architectures des commutateurs seront abordées dans le cadre de l’ATM.
7.4.3 Fast Link Pulse
Lorsque le connecteur RJ45 est inséré sur un commutateur, les interfaces en mode auto-négociation
peuvent tester leur capacité.
Le standard 10baseT initial utilise un test NLP (Normal Link Pulse) constituant en l’émission d’une
impulsion électrique tous les 8 à 24ms. Ces impulsions d’environ 100ns chacunes permettent de tester
l’intégrité du lien physique et sa compatibilité avec le 10 baseT. Si aucune impulsion n’est reçu au
delà de 150ms, le lien est considéré comme rompu par le récepteur.
NLP
t
16ms +/-8ms
Le mode Fast-Ethernet a enrichi cette approche avec le FLP (Fast Link Pulse) qui remplace les
impulsions simples du NLP par un train codant les caractéristiques proposées par la carte émettrices :
burst
FLP
t
16ms +/-8ms
Ces bursts sont constitués de 33 impulsions de 100ns, séparées de 62,5ms. Les impulsions paires de 0
à 32 sont destinées à maintenir l’horloge, et les impulsions impaires de 1 à 31 (notées D0 à D15)
codent les données utiles avec une impulsion positive pour un ‘1’ et pas d’impulsion pour un ‘0’.
Format burst
D0 D1 D2
D15
FLP
impulsions Data
impulsions horloge
125us
D0
D1
D2
D3
D4
D5
D6
D7
D8
D9
D10
S0
S1
S2
S3
S4
A0
A1
A2
A3
A4
A5
00001=802.3
10 BaseT Half Duplex
10 Base T Full Duplex
100 Base TX Half Duplex
100 Base TX Full Duplex
100 Base T4
Pause
81
t
Section 3 – Pile IEEE 802
D11
D12
D13
D14
D15
A6
A7
RF
Ack
NP
1000 Base T Half Duplex
1000 Base T Full Duplex
Remote Fault
Acknowledge
Next Page
L’ordre de priorité est défini par l’ordre inverse : A7, puis A6 jusqu’A0. La norme 802.3 fixe un
minimum de 3 burst FLP correctement reçus pour être validés.
7.4.4 Incohérence duplex
Normalement, si les deux interfaces interconnectées sont en mode auto, il n’y pas de conflits. En
revanche, si une interface est forcée sur un mode non compatible avec l’autre, il peut se produire un
conflit, en particulier lors d’une incohérence duplex (Duplex mismatch).
Si une interface est forcée en Full Duplex, l’autre pourra déterminer la vitesse mais pas son mode
duplex, et donc choisira la priorité la plus faible, donc Half Duplex. Dans ce cas il y aura pertes de
paquets et ralentissement dans l’échange ; ce type de diagnostique est assez délicat à poser puisque le
lien est valide et le réseau reste opérationnel.
7.5 Wi-Fi
7.5.1 802.11
Depuis quelques années, la norme 802.11 est parvenue à s’imposer largement sous le nom de Wi-Fi
(Wireless Fidelity) dans le monde professionnel jusque dans le grand public. Des coûts réduits, une
simplicité d’installation et une qualité « Ethernet » standard ont contribué au succès planétaire de cette
norme. Wi-Fi est devenue aussi familier qu’Internet.
ROUTEUR
Internet
SWITCH
Mode Ad-Hoc
AP
Mode Infrastructure
Les deux topologies classiques sont :
Le mode Ad-Hoc, où les stations sont reliées entre elles et s’échangent librement leurs données,
sans infrastructure filaire nécessaire, ce qui peut s’avérer très utile dans certains cas.
Le mode Infrastructure permet d’assurer un lien avec un réseau filaire Ethernet de manière
transparente ; le câble réseau vers le hub ou commutateur est alors remplacé par une liaison
radio vers un point d’accès (AP - Access Point).
Les topologies sont donc de types cellulaires.
BSS
BSSID
ESS
ESSID
Basic Service Set
BSS Identifier
Extended Service Set
ESS identifier
Cellule désservie par un AP
Identifiant sur 6 octets (Adresse MAC de l’AP)
Association de plusieurs BSS (APs)
Identifiant ou nom de réseau sur 32 octets
82
Section 3 – Pile IEEE 802
Cependant, le peu de lisibilité de l’évolution des standards IEEE (a, b, h, g…), des critiques quant à la
sécurité ou la qualité dans certaines configurations, de même que l’inadaptation native aux services
télécoms ou diffusion peuvent laisser la place à des normes concurrentes aujourd’hui « à la traîne » :
Hyperlan, HomeRF, UMTS…
7.5.2 Couche physique
Trois modes de transfert physique sont disponibles : Infra rouge, par saut de fréquence (FHSS) ou par
étalement de spectre à séquence direct (DSSS). Les modulations de phase associées à l’étalement de
spectre peuvent être à deux (BPSK) ou quatre états (QPSK). Un code CCK (Complementary Code
Keying) est utilisé dans l’étalement de spectre. Les bandes de fréquence sont différentes selon les pays
(bande des « 2,4GHz »).
Couche 2 : Liaison de données
Sous couche MAC
Couche PHY
Modulation
802.2
802.11
DS (Direct
Sequence)
B/QPSK
FH (Frequency
Hopping
2/4GFSK
IR (Infra –Rouge)
Pour approfondir le cas de la transmission par étalement par séquence directe, dans le cas de la norme
802.11b, le signal d’information est étalé par une séquence de barker de 11bits (10110111000), avec
une modulation BPSK ou QPSK.
Modulation
Débit (étalement sur 11bits)
BPSK
1Mbit/s
QPSK
2Mbit/s
La technique de CCK (Complementary Code Keying) est utilisée pour accroître le débit de la liaison,
en utilisant toujours la QPSK (2 bits par symbole) et un facteur d’étalement réduit, associé à une
rotation de la modulation, que nous ne détaillerons pas ici. On atteint ainsi les débits nominaux de 5,5
et 11Mbit/s.
7.5.3 CSMA/CA
La transmission sur le canal radio a nécessité l’adaptation du traditionnel protocole CSMA/CD en une
version qualifié de CSMA/CA pour Collision Sense Multiple Access / Collision Avoidance. Une des
contraintes particulières est qu’il n’est pas possible de parler et d’écouter simultanément de manière
simple sur le canal radio (canal duplex et usage d’un duplexeur). Pour n’avoir à fonctionner
efficacement qu’en mode alterné, cette technique est mise en œuvre dans les normes 802.11.
L’idée du protocole est d’éviter les collisions en partant de la constatation que les collisions sont les
plus nombreuses justes après la libération du support.
Trame émise
DIFS
SIFS Trame
acquitement
DIFS
Durée
Le DIFS (Distributed Inter Frame Space) est la durée minimale pendant laquelle une station doit
écouter le support avant d’émettre : c’est la durée de garde après émission d’une trame.
Le SIFS (Short Inter Frame Space) est la durée maximale d’acquittement d’une trame par le
récepteur. le SIFS est inférieur au DIFS ce qui interdit toute collision.
En mode Burst, les paquets de données sont émis dans des burst différents : c’est la fragmentation. Le
burst suivant doit être émis avant l’écoulement du SIFS.
83
Section 3 – Pile IEEE 802
Trame N°1
DISF
Trame N°2
SIFS
SIFS Trame
acquitement
Durée
En outre, une station désirant émettre envoie un paquet de connexion RTS (Request To Send) à la
station réceptrice qui acquitte par un CTS (Clear to send). Le canal est alors réservé et les autres
stations attendront avant d’émettre. Les paquets contiendront par la suite la durée d’occupation du
canal à l’intention des autres stations.
occupé
DISF
contention
Trame
Slots
Durée
On peut aussi signaler l’utilisation d’un procédé dit « Backoff exponentiel » dont le rôle est d’interdire
à toutes les stations d’émettre simultanément après le DIFS, provoquant une collision inévitable.
Chaque station choisira un nombre aléatoire, dont la valeur croîtra exponentiellement en cas de
collision. Ce nombre détermine combien de slots de contention seront observés avant l’émission de la
trame suivante.
L’ensemble de ces protocoles assurent une meilleure utilisation du canal radio que ce qu’est en
mesure d’assurer un CMSA/CD classique.
7.5.4 Trame MAC
La trame de données MAC qui circule sur le support radio est différente de celle qui circule sur le
réseau filaire. En particulier, elle contient au moins trois adresses MAC (contre deux), voire quatre,
car la liaison radio impose de disposer des adresse sources, destination et, en plus, celle du point
d’accès (PA). On trouve en outre des trames de contrôle ou de gestion spécifiques (RTS, CTS,
ACK…).
Ce format est transparent au niveau 2 puisque pour les stations émettrices et réceptrices n’ont pas à
gérer le point d’accès, et l’ensemble des protocoles sur réseau filaire reste valide.
7.5.5 Sécurité
Le succès de la simplicité cache un écueil redoutable : la sécurité. Brouillage des bandes radio (four
micro-ondes…), piratage des connexions Internet, chiffrement faible des données transmises,
confidentialité aléatoire par analyse des flux de données, sont autant de risques pour l’utilisateur peu
averti.
En ce qui concerne le chiffrement des données, le procédé initial baptisé WEP (Wireless Equivalent
Privacy) implémenté dans le 802.11b, a été très critiqué pour les nombreuses failles qu’il présentait.
Les normes récentes (802.11g) propose une seconde approche nommée WPA (Wi-Fi protected
Access) beaucoup plus fiable mais non dénuée de failles. La norme 802.1x permet d’évoluer du WEP
basique à une version où l’authentification est plus sûre, notamment avec le contrôle physique des
ports.
Actuellement, Le protocole WEP est obsolète et facilement décryptable avec des outils largement
disponibles. Le mode de sécurisation le plus robuste est le WPA2 (WiFi protected Access 2) basé sur
AES, algorithme robuste de chiffrement, en remplacement du WPA également considéré comme peu
sûr, fondé sur le chiffrement pas flot RC4. Malheureusement, il existe encore des matériels utilisant le
WEP, et ne supportant pas le WPA.
84
Section 3 – Pile IEEE 802
7.5.6 Roaming WiFi (802.11 f)
Le roaming, technologie classique sur les réseaux cellulaires, a été adpaté sur les réseaux locaux sans
fils. Il consiste à garantir la continuité de services tout en se déplaçant géographiquement d’une zone
couverte par un PA1 vers une autre couverte par un PA2 différents. On distingue alors deux types de
roaming :
ROUTEUR
Internet
ROUTEUR
SWITCH
SWITCH
Roaming Niveau 3
Roaming Niveau 2
Roaming de niveau 2 : le mobile change d’AP mais reste dans le même espace de collision
(adresse IP fixe) et le réseau conserve le même SSID (Service Set Identifier). Il peut se
produire des pertes de paquets mais les sessions sont maintenues
Roaming de niveau 3 : les AP dépendent de routeurs différents. Une nouvelle adresse IP est
attribuée. Les sessions sont coupées et doivent être réintialisées.
7.6 Wimax
7.6.1 IEEE 802.16
WiMax, pour Worldwide Interroperability for Microvawe Access,a été développé pour compléter et
élargir les champs d’application du WiFi existant. Là où WiFi est une simple extension d’un LAN sur
le support radio, c’est à dire une substitution de support physique, WiMax vise à accroître les portées
et la mobilité.
Plusieurs évolution de la norme depuis 2003 tentent de fournir une qualité de service proche des
réseaux cellulaires 4G :
Haut-débit sans fil
Mobilité des utilisateurs (roaming)
Les diverses applications du WiMax, aussi qualifié de « Wireless DSL » ou de « Wireless MAN »
pour ses services équivalents qui sont de trois ordres :
Accès Internet direct pour client fixe
Accès Internet direct pour client nomade (portable)
Interconnexion et maillage de réseaux Wi-Fi
La norme IEEE 802.16 est en réalité une série de normes dont les plus significatives sont détaillées
dans les paragraphes suivants
85
Section 3 – Pile IEEE 802
Base WiMax
Utilisateur Mobile
Wi-Fi
Utilisateur Indoor Fixe
7.6.2 Couche PHY
Donnons une brève description des caractéristiques techniques de la couche physique. La norme étant
encore en cours de développement, elle reste indicative.
802.16
802.16a
802.16e
Bande du spectre
10-66GHz
2-11GHz
<6GHz
Configuration
LOS*
NLOS
NLOS
Line Of Sight
Non LOS
Non LOS
Modulation
QPSK, QAM16,
QAM64
OFDM-256
QPSK, QAM16, QAM64, QAM256
FEC (Correction
d’erreur)
Convolutionel et RS - ajustable
Débits** (selon
bande)
<100Mbit/s
Mobilité
utilisateur
Fixe
Mobile
(<100km/h)
Largeur des
canaux
20,25,28 MHz
1,25 à 20MHz
ajustable
5MHz
Portée
5km
10km
5km
*LOS : Line of Sight. Il s’agit de liaison dont la visibilité est directe entre l’utilisateur et la base, c’est à dire sans
obstacle entre les deux antennes.
**Les débits sont a priori indéterminés. Ils sont liés à la qualité de la liaison et aux options de modulation et de
codage adoptés pour compenser le bruit et les erreurs de transmission.
Ainsi, la valeur théorique de 134,4 Mbit/s correspond a une modulation mono-porteuse QAM64
(soit 6 bits par moment) sur un canal de 28 MHz avec une qualité optimale.
7.6.3 Couche MAC
La couche MAC du WiMax améliore la qualité de services de celle du WiFi en modifiant les
techniques d’accès au support afin de garantir entre autre
Une liaison Full-Duplex
Des liaisons multi-utilisateurs simultanées
86
Section 3 – Pile IEEE 802
La transmission de données prioritaires
Des délais pour les flux audio et vidéo
Le protocole d’accès CSMA/CA est ainsi abandonné au profit d’un accès autorisé par la station de
base WiMax suite à la demande d’une station utilisatrice et via des canaux accessibles en fréquence
(FDD – Frequency Division Duplex) et en temps (TDD – Time Division Duplex)
Le modèle ci-dessous est celui correspondant au transport des données utilisateurs. Il est complété par
celui des données d’administration.
Service Specific
Convergence Sublayer
MAC
Common Part Sublayer
Privacy Sublayer
PHY
La sous-couche de convergence SSCS assure une interface avec les piles réseaux supérieures. Elle
prend en charge deux schémas principaux :
ATM
Ethernet et IP
La sous-couche commune CPS gère la liaison radio :
Mécanismes d’accès
Allocation de bande passante
Gestion de la connexion
Qualité de Services (QoS)
7.6.4 Sécurité
Il est prévu de sécuriser l’ensemble des communications par un chiffrement type 3DES sur des clés de
168 bits, et plus vraisemblablement AES (cf chapitres consacrés à la cryptographie).
L’ensemble de ces dispositions seront gérées au niveau de la couche PS de la pile MAC.
87
Section 3 – Pile IEEE 802
88
Section 3 – Pile IEEE 802
8. Commutations
8.1 VLAN
8.1.1 Hub et switch
Dans un LAN, le domaine de collision est historiquement le bus coaxial partagé par l’ensemble des
stations connectées. Cet ‘ether’ impose que l’ensemble de ces stations écoutent et reçoivent en
permanence l’ensemble du trafic : c'est le CSMA/CD. Ceci pose au moins deux problèmes :
Les performances vont décroître quand le trafic va augmenter à cause des collisions
La sécurité est au niveau le plus bas puisque tout le monde entend tout.
Utilisation Bande passante
50%
Trafic
Ce type d’inconvénient sur bus est également typique des réseaux étoilés sur hub. Ce type d’appareil
est un pur concentrateur qui répartit les signaux sur chacun des liens connectés. C’est un équipement
de niveau 1 en terminologie OSI.
SWITCH
2-Liaison
HUB
1-Physique
Support
89
Section 3 – Pile IEEE 802
Pour augmenter les capacités du réseau, on va utiliser un commutateur ou switch qui va réaliser en
interne une commutation dédiée entre les deux points en connexion, libérant les autres stations et leur
permettant de communiquer entre elles si elles sont libres.
HUB
SWITCH
Le switch est un équipement plus complexe qui impose :
Une lecture d’adresse des stations sources et cibles
Des relais électroniques et des buffers de données.
C’est un équipement de niveaux 2, particulièrement consommant en énergie électrique, en particulier
depuis le déploiement des normes PoE (Power over Ethernet) pour la téléphonie sur IP.
8.1.2 Lan Virtuel
L’ensemble des machines interconnectées via un commutateur ou un réseau de commutateurs sont
potentiellement sur le même niveau de partage. C’est parfois un inconvénient, et il peut être utile ou
pratique de segmenter ce LAN réel en plusieurs petit LAN virtuels ou VLAN.
SWITCH
VLAN2
VLAN1
VLAN2
VLAN1
La machines appartenant à un même VLAN pourront se voir mais ignoreront la présence des autres
VLAN.
8.1.3 Types de VLAN
Pour créer un VLAN, on peut utiliser trois techniques différentes selon le niveau OSI auquel on
applique les règles de partage :
Niveau 1
VLAN par port
Niveau 2
VLAN par adresse MAC
Niveau 3
VLAN par adresse IP
On applique le partage sur les ports physiques du
commutateur
On utilise l’adresse MAC de la carte réseau du poste
client
On utilise une distinction sur l’adresse IP de la
machine cliente (Palge d’adresses ou sous-réseau)
Le VLAN de niveau 1 est purement statique, les deux autres sont dynamiques et permettent la
mobilité des stations physiques, voir uniquement des adresses IP.
90
Section 3 – Pile IEEE 802
8.1.4 Trunking
Lors de l’extension d’un VLAN à travers plusieurs commutateurs, il est naturel de vouloir faire suivre
le VLAN au-delà de la limitation du seul équipement auquel la station cliente est connectée. Pour
effectuer cette extension, on doit configurer un trunking des commutateurs concernés pour tagger les
trames afin d’étiqueter leur VLAN d’origine.
SWITCH
SWITCH
VLAN2
Trames
Taggées
802.1q
VLAN1
VLAN2
VLAN1
La norme 802.1q supportées par les Switchs permet de relayer les trames en insérant dans l’en-tête
Ethernet un segment de 4 octets avant le champ longueur. Les deux premiers octets (TPID – Tag
Protocol Identifier) valent 0x8100 afin d’identifier le tag 802.1q. Les deux octets suivants (TCI – Tag
Control Identifier) permettent notamment de coder le numéro de VLAN sur 12 bits. (NB : Il est
possible de tagger deux fois une trame MAC).
10101010 10101010
10101010 10101010
10101010 10101010
10101010 10101011
Préambule
start Frame delimitor
Adresse Destination 2 ou 6 octets
Adresse Source 2 ou 6 octets
0x81
0x00
Tag 802.1q
Longueur 2 octets
Champs DATA
0 à 1500 octets
Champs PAD
0 à 46 octets
CRC 4 octets
Ci dessous un exemple de trace de trame taggée :
0000
0010
0020
0030
0040
00
08
16
63
73
19
00
11
64
74
99
45
c0
65
75
85
00
23
66
76
05
00
16
67
77
03
3c
1a
68
61
00
0c
08
69
62
19
54
00
6a
63
99
00
b7
6b
64
91
85
00
51
6c
65
05
80
01
6d
66
5a
01
00
6e
67
81
81
95
6f
68
00
fb
0a
70
69
00
c0
61
71
02
23
62
72
...........Z....
..E..<.T.......#
...#.....Q....ab
cdefghijklmnopqr
stuvwabcdefghi
Section 3 – Pile IEEE 802
8.2 Spanning Tree
8.2.1 Boucle et tempête de broadcast
Lors du câblage d’un réseau étendu, un risque est de provoquer une boucle en reliant deux segments
par deux commutateurs. Dans ce cas, le broadcast émis sur l’un des segments va être relayé par les
commutateurs puis va être amplifié provoquant un phénomène appelé ‘Tempête de broadcast’.
SWITCH
1
3
SWITCH
2
2
1
3
1. Un broadcast (ARP) est transmis par un des réseaux et relayé par les commutateurs
2. Chaque commutateur entend le broadcast transmis par l’autre commutateur
3. Il relaie le Broadcast vers le réseau initial provoquant une boucle auto entretenue et une
saturation de la bande passante.
Ce type de câblage peut donc provoquer un déni de services global très pénalisant. (DoS - Denial of
Service). Un des solutions simples est d’éviter les boucles, mais cette approche est incompatible avec
le besoin de redondance en cas de panne d’un commutateur : le doublement des équipements est une
obligation pour garantir la continuité de service.
Pour résoudre le problème, on peut utiliser un protocole spécifique appelé Spanning Tree.
8.2.2 Spanning Tree Protocol
Normalisé avec le 802.1d, ce protocole permet de transformer toute topologie avec des boucles en une
topologie en arbre (Tree)
92
Section 3 – Pile IEEE 802
RO OT BRIDGE
Lien Physique
Lien bloqué
Lien désigné
RP
DP
BP
DP
Le protocole permet d’élire un commutateur racine (Root Bridge) qui sert de référence pour déployer
l’arbre jusqu’aux différentes machines. Tous les commutateurs transmettent leur identificateur qui
utilise un numéro associé à leur adresse MAC. C’est en principe le commutateur d’adresse MAC la
plus faible qui est élu. Ce commutateur peut également être déterminé par un administrateur.
Une fois le commutateur bridge élu, il faut que chaque commutateur désigne un unique RP (Root
port). Les ports des différents commutateurs peuvent être de 3 types (Port Role) :
DP : Designated Port – Port valide pour échanger les trames
BP : Blocked Port – Port ne devant pas être émettre de trames
RP : Root Port – Port valide le plus proche du root bridge. (un seul par commutateur).
La métrique est calculée par le nombre de commutateurs traversés pour atteindre le commutateur
maître, et le débit disponible sur chaque lien. Le coût cumulé le plus faible permet d’élire le RB. Ce
coût peut être attribué manuellement, en restant compatible avec les valeurs normalisées de l’IEEE du
tableau :
Vitesse
4 Mbit/s
10 Mbit/s
16 Mbit/s
100 Mbit/s
1 Gbit/s
10 Gbit/s
Coût
250
100
62
19
4
2
Enfin sur chaque domaine de collision on désigne un port pour atteindre les autres réseaux et recevoir
les trames du reste du réseau. Ce port est désigné pour sa distance la plus faible au root Bridge.
8.2.3 Etats du protocole
Les ports spanning tree peuvent être dans un des 5 états décrits ci-dessous
93
Section 3 – Pile IEEE 802
Blocking: pert e de BPDU >20se
Disabled
Listening : delai 15sec
Learning : delai 15sec
Forw arding
En état Blocking, le port se contente de recevoir les trames BPDU. Il n'émet pas et ignore
toutes les autres trames. Il reste en l’état tant que ces trames arrivent (Une toutes les 2
secondes environ). Après un silence supérieur à 20 secondes il passe dans l’état suivant.
En état Listening, il transmet les BPDU à son système et envoie celles reçues de son système
En état Learning, il construit une table associant port et adresses MAC
En état Forwarding, il est en mode normal d’émission et de réception
En état disabled par une opération manuelle de l’administrateur, ou une panne.
Au total, il faut environ 50 secondes au protocole entre une modification de la topologie du réseau et
un retour du trafic à la normale. Cette durée peut cependant apparaître élevée pour un utilisateur actif
du réseau, et l'effet de "plantage" consécutif peut provoquer une dégradation réelle du service.
Une version optimisée, le RSTP (Rapid Spanning Tree Protocol), permet d'assurer la convergence en
moins de 6 secondes. RSTP est compatible avec le Spanning Tree classique, les principales
différences portant sur le délai de détection de panne, et le basculement direct de l'état Blocking à
forwarding. Il complète les port roles avec : root, designated, alternate, backup, blocked.
AP : Alternate Port – Alternative au Root Port
BuP : Backup Port – Port alternatif à un port déjà connecté
8.2.4 BPDU
Les Bridge Protocol Data Units désignent les trames émises pour permettre les négociations du
Spanning Tree Protocol. Ce sont ce trames qui permettent de maintenir la topologie de l’arbre du
réseau. Nous résumons ci dessous le format de ces trames.
0000
0010
0020
0030
01
03
1a
02
80
00
7e
00
c2
00
80
0f
00
02
00
00
00
02
00
00
00
2c
16
80
00
80
e0
b1
16
00
c8
06
e0
00
67
82
c8
14
80
01
67
0e
80
00
84
51
02
00
00
44
02
00
27
01
00
00
42
00
14
00
42
06
00
00
..........g..'BB
.....,.....QD...
.~......g.......
................
Les BPDU (STP : Spanning Tree Protocol) sont encapsulées dans une trame LLC qui désigne le
service SSAP et DSAP 0x42. L’adresse de destination MAC 01 :80 :c2 :00 :00 :00 :est une adresse
générique qui désigne les commutateurs supportant STP.
94
Section 3 – Pile IEEE 802
1 octet
1 octet
protocol Id : 0x0000
Protocol Version
Type
Flags
Root identifier
Root Path Cost
Bridge identifier
Port identifier
message Age
Max Age
Hello Time
Forward Delay
le Root identifier comme le Bridge identifier sont déterminés par la concaténation de son numéro
identificateur (priorité – 2 octets) avec son adresse MAC qui est en fait celle de son port Ethernet de
plus faible adresse. Ceci permet par défaut de choisir le commutateur qui a la plus faible adresse MAC
ou de définir manuellement un maître en modifiant son numéro identificateur de 2 octets.
Le coût du chemin au root bridge est déterminée par le débit des liens selon le tableau normalisé du
§8.2.2.
Le champ flag permet de communiquer des informations sur le type du port (DP ou RP) et son état
(listening, learning ou forwarding).
95
Section 4 – Pile TCP/IP
96
Section 4 – Pile TCP/IP
9. Protocoles niveau 2 dans Internet
Lors de la connexion au réseau Internet, il se présente en principe deux possibilités : soit la station
appartient à un réseau local (LAN) et donc elle bénéficie déjà d’une liaison niveau 2 avec un réseau
(en principe normalisée IEEE, voir section précédente) soit la station à besoin d’être raccordée à un
réseau, par l’intermédiaire d’une LS ou d’une liaison téléphonique classique. Les deux protocoles
présentés ici concernent ce second cas : ils gèrent la connexion au réseau, et l’acheminement des
datagrammes IP.
PC isolé
Internet
Ligne téléphonique
9.1 SLIP
Il s’agit du Serial Line Internet Protocol, décrit (mais non normalisé) dans le RFC 1055.
Le but de ce protocole est de transmettre d’un point à un autre des paquets IP (Internet Protocol). Ce
protocole est très peu utilisé.
La station de travail envoie sur la ligne des paquets IP bruts en mettant au début et à la fin de chaque
paquet un fanion 0xC0 en hexadécimal (192 en décimal - représente le caractère ASCII END). Cette
technique impose d’utiliser une règle « d’octet de transparence » pour éviter d’interpréter des éléments
transmis comme des fanions.
Nous n’entrerons pas dans les détails, d’autant plus qu’il existe des variantes, mais afin de bien
comprendre pourquoi le SLIP est peu utilisé, voici quelques unes de ses caractéristiques qui ne le
mettent pas en valeur :
Le SLIP n’effectue ni détection, ni correction d’erreurs, les couches supérieures doivent se
charger de détecter les trames manquantes, dupliquées ou erronées et de mettre en œuvre
les algorithmes de correction appropriés.
97
Section 4 – Pile TCP/IP
Il ne gère que le protocole IP (exemple : le réseau LAN Novell est incompatible avec le
SLIP).
Chacune des extrémités doit connaître l’adresse IP des autres.
Il ne permet pas l’identification et donc on ne sait pas qui parle à qui.
Il existe de nombreux protocoles IP non normalisés dont il existe de nombreuses versions
différentes et non compatibles.
Il ne peut pas gérer différents protocoles de niveau 3
En deux mots, c’est un protocole non fiable.
9.2 PPP
9.2.1 Désignation
PPP désigne le Point to Point Protocol
C’est un protocole de liaisons de données point à point qui va devenir la norme Internet officielle.
C’est un protocole local qui concerne uniquement la liaison modem/fournisseur, considérés comme
les deux points du terme PPP.
PPP gère la détection des erreurs, traite différents protocoles, permet la négociation des adresses IP à
la connexion ainsi que l’authentification et se révèle ainsi supérieur à SLIP.
9.2.2 La trame PPP : RFC 1661/1662/1663
Le format de la trame PPP est très proche de celui de HDLC. En particulier, les trois octets d’en-tête
constitue une en-tête HDLC non numéroté (U).
Une des différences est que PPP est orienté caractère alors qu’HDLC est orienté bit. PPP utilise des
caractères de transparences pour traiter le problème du fanion, ce qui fait que les trames comportent
un nombre entier d’octets à l’inverse d’HDLC qui peut voir des trames d’octets non entiers.
Cependant cette contrainte est faible compte tenu que par nature les datagrammes IP sont constituées
d’un nombre entier d’octets.
01111110
11111111
00000011
Fanion
Adresse
Contrôle
Protocole : 0021h pour IP
Champs DATA
<1500 octets
CRC 2 octets
01111110
Fanion
La trame PPP comprend :
Le fanion 01111110 (identique au fanion HDLC) : il délimite la taille de la trame.
Le champ adresse : il contient la valeur 11111111 pour que toutes les stations acceptent la
trame.
Le champ de commande : dont la valeur est par défaut 00000011 pour correspondre à une
trame non numérotée.
98
Section 4 – Pile TCP/IP
Le champ protocole : son rôle est d’indiquer quel type de paquet est dans le champ
information. Entre autre on peut donner :
0021h pour IP
C021h pour LCP
8021h pour NCP
8081h IP Control Protocol (RFC 1332)
C023h pour PAP
C223h pour CHAP
Le champ information : de longueur variable jusqu’à un certain maximum, la valeur par
défaut est 1500 octets. Bien entendu, le champ information contient lui-même différents
champs : adresse, FCS… des couches supérieures.
L’octet de transparence remplace la séquence h7E par h7D5E et h7D par h7D5D.
En résumé, PPP est un mécanisme de fabrication des trames multi-protocole et est utilisable aussi bien
avec des modems que sur des liaisons HDLC bit. Il permet la détection d’erreurs, la négociation
d’options, la compréhension des entêtes et une transmission fiables en utilisant des trames HDLC. Ils
gèrent les erreurs sur les lignes téléphoniques.
Ce protocole est utilisé quasi universellement.
9.2.3 Les protocoles de gestion
Les protocoles d’authentification :
PAP : Password Authentification Protocol (RFC 1661)
CHAP : Challenge handshake Authentification protocol
Ces deux protocoles sont chargés au début de la liaison d’échanger les identifiants et mot de passe afin
d’autoriser la connexion. La principale différence est que l’échange du mot de passe est en clair avec
PAP et crypté avec CHAP, d’où l’utilisation massive de CHAP .
Le protocole NCP : Network Control Protocol
Ce protocole négocie les options pour la couche réseau sur la suite de protocoles utilisée (TCP/IP,
IPX...), et l’affectation d’une adresse réseau. Dans le cas (courant) d’une connexion à un réseau
travaillant avec IP, on utilise IPCP : Internet Protocol Control Protocol. Sont également négociées, les
options de compression des données, d’adressage DNS…
Le protocole LCP : Link Control Protocol
Ce protocole gère les échanges de trames PPP en établissant la connexion, l’échange et la
déconnexion. Comme le NCP, le LCP fournit une adresse réseau au PC avant d’être connecté à
Internet.
Le tableau et la figure suivante présente la chronologie de l’utilisation des protocoles sur la liaison :
99
Section 4 – Pile TCP/IP
LCP
Phase
d'attente
PAP/CHAP
Phase
d'établissement
Phase
d'authentification
ECHEC
LCP
ECHEC
NCP
Phase
Terminaison
Phase
Protocole niveau 3
Echange PPP
Flux IP
LCP
PAP/CHAP
NCP
IP
LCP
PPP
PPP
PPP
PPP
PPP
phase 3
phase 4
Négociation
Etablissement Authentification
Echange
réseau
phase 1
phase 2
phase 5
Clôture
9.3 PPPoE
9.3.1 Architecture
L’accès via un modem ADSL autorise un client isoler à se connecter à son fournisseur d’accès en
utilisant une pile de protocoles masquée par l’utilisation de PPPoE : point to point protocol over
Ethernet. (ADSL, Ethernet et ATM, sont abordés dans les chapitres suivants)
Client
DSLAM
Modem DSL
BAS
Broadband
Access Server
Serveur FAI
Réseaux
FAI
ATM
Couche Réseaux
Couche Réseaux
Couche Réseaux
PPP
PPPoE
PPP
PPPoE L2TP
PPP
L2TP
Ethernet
Ethernet
Ethernet
ATM
Ethernet
ATM
PHY DSL
Backbone
PHY DSL
Backbon e
Le DSLAM (Digital Subscriber Line Access Multiplexer) collecte les différents flux des modems
clients et les multiplexe sur un réseau propriétaire haut-débit, en principe gérer par de l’ATM. Il est
ainsi possible pour les abonnés ne disposant d’aucune configuration réseau de se connecter au serveur
BAS (Broadband Access Server) pour s’authentifier. Au-delà du BAS se trouve le réseau du
fournisseur d’accès qui transporte les paquets vers les routeurs de sortie.
100
Section 4 – Pile TCP/IP
9.3.2 Format d’en-tête PPPoE
En-tête pppoE
1 octet
Version
Type
code
session_id
Length
Payload
Les champs version et type sur 4 bits chacun sont en principe à 1.
Le code (1 octet) permet de distinguer les phases des deux étapes de PPPoE : le discovery et le
session.
Le session_id identifie une session ppp (pour des adresses MAC données)
Le champs length indiue la longueur de la charge utile Payload.
Les deux premiers octets de la charge utile définissent le champ protocole de ppp, et la nature des
données encapsulées (0021h pour IP, C223h pour CHAP…). On compte donc ainsi 8 octets de taille
supplémentaire pour l’en-tête PPPoE.
9.3.3 PPPoE et MTU
Les problèmes de Fragmentations et de MTU sont abordés dans les chapitres suivant. Notons
simplement que l’accroissement de 8 octets de la taille des paquets encapsulés par Ethernet (taille de
l’en-tête PPPoE) impose un MTU de 1492 octets au niveau de l’hôte client contre 1500 en standard
sur Ethernet. Il convient donc de réduire la taille des trames envoyées au modem. Les paquets
transmis sur le segment Ethernet du FAI ne seront alors pas fragmentés.
Il existe de nombreuses topologies possibles, notamment sur le réseau de collectes FAI qui peut
tunneler les paquets envoyés par le client. En particulier le réseau du FAI peut utiliser un tunnel
supportant le protocol L2TP (Level 2 Tunneling Protocol). Ce protocole ajoute 16 octets transparents
pour le transport des paquets des clients.
9.4 Procédures multilink
9.4.1 MLP Multilink Procedure (RFC 1717/1990)
Le principe d’une liaison multilink est de transmettre un unique flux de données en utilisant plusieurs
liens physiques simultanément au lieu d’un seul. Cette procédure est transparente pour les couches
supérieures. On parle dans ce cas de MLPPP, MPPP, MLP ou encore MP.
101
Section 4 – Pile TCP/IP
Couche Réseaux
MLPPP
PPP 1 PPP 2
PPP n
9.4.2 MLP Multilink Procedure (RFC 1717/1990)
Le champ données initial est découpé et étiqueté sur chacun des liens afin de pouvoir être reconstituer
de l’autre côté du lien.
Format long
BE000000
seq
seq
seq
01111110 Fanion
11111111 Adresse
00000011 Contrôle
00000000
00111101
BE00 seq
seq
Protocole : 003dh pour MLPPP
Champs DATA
CRC 2 octets
01111110
Fanion
Chaque fragment transmis est encapsulé dans une trame PPP/MLPPP. Il existe un format court de
l’entête MLPPP (2 octets – schéma ci-dessus) et un format long (4 octets)
Le Bit B=1 quand c’est la première trame (Begin), 0 sinon
Le Bit E=1 quand c’est la dernière trame (End), 0 sinon
Le numéro de séquence seq (12 bits en format court et 24 bits en format long) permet de numéroter
les données fragmentées. Le numéro est incrémenté de 1 à chaque fragment.
102
Section 4 – Pile TCP/IP
10. IP
10.0 Historique
Initié dès 1969 par l’ARPA (Advanced Research Projects Agency, le protocole IP (Internet Protocole)
a été crée en 1973, et utilisé dans le réseau du nom d’ARPAnet par les militaires américains. En 1975
le réseau jusqu’alors expérimental devient opérationnel.
Topologie N°4 : Arpanet avec les 4 noeuds :
université de Los Angeles (UCLA), Stanford (SRI)
Santa Barbara (UCSB) et Utah
En 1980, Internet est une interconnexion de 20 réseaux. (20 ans plus tard, il dépassera les 100.000).
En 1981, ARPAnet s’ouvre au domaine privé, et sa révision lui donne le nom d’Internet.
En 1983, la pile TCP/IP est déclarée standard militaire par les américains et impose à l’ensemble de
leurs machines de l’utiliser pour se raccorder au réseau.
La création du NSFNet (National Science Foundation), réseau visant à interconnecter l’ensemble des
scientifiques et ingénieurs dans leur travail, marque un tournant qui conduira à l’Internet tel qu’il est
aujourd’hui. Le réseau ARPAnet cesse officiellement d’exister en 1990 au profit du NFSNet.
103
Section 4 – Pile TCP/IP
Enfin, en 1995 la NSFNet abandonne sa responsabilité de la gestion du backbone principal aux FAI
privés et autres administrations dans le monde…La naissance du WWW à cette même date consacre
l’Internet tel que nous le vivons encore aujourd’hui.
IP devait bénéficier d’une grande souplesse en permettant d’interconnecter des réseaux qui ont des
topologies différentes. Il devait pouvoir résister à des coupures physiques du support (attaque par des
missiles nucléaires). Le message devait arriver à destination, même si une partie du réseau était
détruite. Cette propriété de la pile TCP/IP explique en partie son succès et son omniprésence.
Aujourd’hui l’Internet désigne l’ensemble des machines interconnectées et utilisant le même protocole
internet (IP) [RFC791]. On estime à plus de 50000 le nombre de nœuds malgré la difficulté de
représenter un réseau extrêmement mouvant.
10.1 Datagramme et protocole
10.1.1 Services
IP est un protocole correspondant au niveau 3 de la pile OSI En conséquence il assure les ervices
suivant :
transmission de datagrammes en mode non connecté ou CNLS (Connexion Less Network
Protocol), avec routage individuel (pas de CV).
IP procède à la fragmentation des datagrammes en cas de besoin.
10.1.2 Description du datagramme
Le paquet niveau 3 porte dans le monde IP le nom de datagramme. L’en-tête est décrite ci-dessous :
4bits
Version
4bits
IHL
1 octet
T OS : T ype de service
Longueur Totale : 2 octets
DF MF
Offset : 13 bits
TTL: Durée de vie
Protocole
Total de contrôle : 2 octets
Adresse Source 4 octets
Adresse Destination 4 octets
Option facultatives(<40 octets)
Bourrage
Champs DATA
0 à 64 ko
104
20 octets minimum
Indentification : 2 octets
Section 4 – Pile TCP/IP
VERSION Le numéro de version permet d’identifier la version du protocole IP utilisé. La version
actuelle du protocole IP est la version 4.
IHL Le champ longueur IHL (Internet Head Lenght) indique en multiple de 4 octets, la longueur de
l’en-tête. La valeur courante est 5 (20 octets).
TOS Le champ type de service (TOS) indique au sous-réseau le type de service désiré.
Objet
Priorité
Bits
Valeur
0-2
000
001
010
011
100
101
110
111
0
1
0
1
0
1
Délai d’acheminement
3
Transfert
4
Fiabilité
5
Réservés
6-7
Signification
Priorité minimale, routine.
Priorité normale.
Immédiat.
Flash.
Flash overdrive.
Critique/ECP.
Contrôle du réseau ARPAnet.
Contrôle du réseau (administration)
Délai d’acheminement normal.
Délai d’acheminement faible.
Débit normal.
Débit élevé.
Fiabilité normale.
Fiabilité élevée.
Longueur totale Ce champ indique la longueur totale, en octet, du datagramme en-tête y compris. La
longueur maximale du datagramme est donc de 65536 octets (216).
Identification Ce champ est identique pour tous les fragments d’un même datagramme. Cette valeur
est recopiée lors de la fragmentation ; elle permet, à l’hôte destinataire, d’identifier (N°
identification et adresse IP) les différents fragments d’un même datagramme. L’identificateur est
attribué par la source, il est recopié par les systèmes intermédiaires, dans chacun des datagrammes,
lorsque ceux-ci effectuent une fragmentation.
Le champ suivant, d’un bit, est actuellement inutilisé.
DF Le bit DF (don’t fragment) demande au système intermédiaire de ne pas fragmenter le
datagramme. Ce bit est utilisé, par exemple, lorsque le système d’extrémité ne peut pas réassembler
les différents fragments. Le système intermédiaire qui reçoit un tel datagramme doit le router dans
son intégralité sur un sous réseau où le MTU (Maximum Transmit Unit) est compatible ou alors il
doit le détruire.
MF Le bit MF (More fragment) est à un 1 dans tous les fragments pour indiquer qu’un fragment suit.
MF est à 0 dans le dernier fragment ou lorsque la fragmentation n’est pas utilisée.
Offset Ce champ indique la position du fragment, en multiple de 8 octets, dans le datagramme
d’origine. En conséquence, tous les fragments, sauf le dernier, doivent avoir une longueur multiple
de 8.
TTL Le champ durée de vie ou TTL (Time To Live) exprime, en seconde, la durée de vie d’un
datagramme. Cette valeur est décrémentée toutes les secondes ou à chaque passage à travers une
passerelle. Lorsque le TTL est égal à 0, le datagramme est détruit. La passerelle qui détruit un
datagramme envoie un message d’erreur à l’émetteur.
Protocole Le champ indique à IP à quel protocole de niveau supérieur appartiennent les données du
datagramme [Dans les systèmes UNIX, les numéros sont disponibles dans le fichier
/etc/protocols]
105
Section 4 – Pile TCP/IP
Protocole
valeur
ICMP
IGMP
TCP
EGP
UDP
ISO-TP
01h –1
02h - 2
06h – 6
08h – 8
11h - 17
1Dh - 29
Total de contrôle Ce champ est le contrôle d’erreur. il ne porte que sur l’en-tête. Il est recalculé à
chaque système intermédiaire. Son calcul consiste à ajouter tous les mots de 16 bits constituant l’entête et à en prendre le complément à 1.
Options Ce champ est codé : code option, longueur, paramètres. L’octet code est un champ de bit
dont les différentes valeurs sont indiquées dans le tableau suivant. Un bourrage éventuelle permet de
compléter en nombre d’octets entiers.
Bits
0
Fonction
1-2
Classe
Option
3-7
Numéro
d’option
Copie
Valeur
0
1
00
01
10
11
Classe
0
0
0
0
2
0
0
0
Commentaire
En cas de fragmentation, l’option n’est pas recopiée.
L’option est recopiée dans le fragment.
Datagramme ou supervision de réseau.
Réservé pour une utilisation future.
Test.
Réservé.
Valeur
Longueur
Fin de la liste d’option.
0
1
Alignement d’octet.
2
11
Restrictions de sécurité.
Routage lâche par la source.
3
var
4
var
Horodatage.
7
var
Enregistrement route.
4
Identificateur de connexion.
8
Routage strict par la source.
9
var
10.1.3 Protocole internet IP
Le protocole IP gère l’émission et la réception de paquets pour la couche supérieure. Il construit les
datagrammes, les adapte au réseau et prend des décisions de routage. IP ne se préoccupe pas du
contenu de ses paquets qui sont gérés comme une suite d’octets. il ne vérifie pas non plus si les
paquets sont bien arrivés à destination ou s’ils sont bien classés.
Il fournit à la couche supérieure (UDP ou TCP) :
Le protocole utilisé (version).
Le type de service (TOS).
La longueur des données.
Les options.
Les datagrammes IP peuvent être utiliser pour transporter d’autres protocoles pour le contrôle et le
routage : ICMP, IGMP, RSVP…
10.1.4 Fragmentation et MTU
Les trames Ethernet encapsulant un datagramme IP sont limités à une longueur de 1500, valeur
imposée par la gestion du champ longueur des trames LLC. Au-dessus de cette valeur, il s’agit d’un
code identifiant le protocole encapsulé, h0800 dans le cas d’IP.
106
Section 4 – Pile TCP/IP
Le MTU ou Maximum Transfer Unit désigne dans un réseau la valeur maximale de la longueur des
datagrammes (donc en-tête comprise) pouvant être transmis dans le réseau. Si un datagramme dépasse
cette valeur il devra être fragmenté.
Réseau 1
Réseau 2
MTU 1=1000
MTU 2=300
1000
Réseau 3
MTU 3=1500
300
300
300
300
300
300
100
100
La valeur 1500 est la valeur limite encapsulable dans une trame Ethernet II. Cependant pour des
raisons de codification de la valeur de l’offset en multiple de 8 octets, la taille des fragments doit être
un multiple de 8, excepté le dernier.
En-tête IP
o ctet 8n
DF=0
MF=0
OFF=0
IP
o ctet 8p
IP fragmenté
DF=0
MF=1
OFF=n
DF=0
MF=1
OFF=0
DF=0
MF=0
OFF=p
Fragmentation d’un datagramme de 1000 octets dans un MTU de 300
DF
MF
Offset
Non fragmenté
0
0
0
Fragment 1
0
1
0
20+280 (280=35*8)
Fragment 2
0
1
35
20+280 (280=35*8)
Fragment 3
0
1
70
20+280 (280=35*8)
Fragment 4
0
0
105
20+140
Taille entête IP+payload
20+980
10.2 Les adresses IP
10.2.1 Classe de réseau.
Chaque ordinateur et chaque réseau internet possède une adresse IP, qui définit une adresse pour le
réseau auquel appartient la machine et une pour la machine. Les adresses IP, ont un format de 32 bits.
Chaque ordinateur, doit être identifiable sur le réseau, grâce à son adresse unique. Il existe plus de 4
milliards d’adresses possibles.
Les adresses IP ont été définies pour être traitées rapidement. Les routeurs qui effectuent le routage en
se basant sur le numéro de réseau, sont dépendants de cette structure. Un hôte relié à plusieurs réseaux
aura plusieurs adresses IP. En fait, une adresse n’identifie pas simplement une machine mais une
connexion à un réseau. Les adresses sont choisies par un NIC (Network Information Center), de type
RIR ou LIR (§10.2.4).
107
Section 4 – Pile TCP/IP
Adresse IP
1 octet
On définit 5 classes de réseau A, B, C, D, E. Les classes D sont réservées aux adresses de diffusion
locales (Multicast) et les classes E sont réservées à des applications d’expérimentations de réseaux. En
conséquence, seules les adresses A, B ou C sont réellement attribuées.
Ces adresses sont codées sur 4 octets (32 bits) dans lesquels ont distingue 3 champs successifs :
L’identifiant de classe sur 1 à 5 bits
L’adresse du réseau
L’adresse de l’hôte sur le réseau
La répartition des bits définit les classes :
Classe
A
B
C
D
E
Premiers bits
adresse du réseau
adresse de l’hôte
7 bits suivant
14 bits suivant
21 bits suivant
0
10
110
1110
24 derniers bits
16 derniers bits
8 derniers bits
1111 0
Classe
Premiers bits ; adresse du réseau R ;adresse hôte H
A
B
C
0RRR RRRR-HHHH HHHH-HHHH HHHH-HHHH HHHH10RR RRRR-RRRR RRRR-HHHH HHHH-HHHH HHHH110R RRRR-RRRR RRRR-RRRR RRRR-HHHH HHHH-
On peut déduire :
Classe A : peu de réseaux (127) / énormément de machines(>16 millions).
Classe B : environ 16000 réseaux avec beaucoup de machines (>65000)
Classe C : beaucoup de réseaux (>2 Millions) / peu de machines (255).
10.2.2 Formats & notations
La représentation des adresses IP s’appelle la doted notation ou notation pointée.
On donne ici un exemple avec la notation en binaire sur la ligne supérieure et dessous en
hexadécimal :
Octet 1
Octet 2
Octet 3
Octet 4
10000110
00011000
00001000
01000010
0x86
0x18
0x08
0x42
En décimal
En décimal
134
Doted notation :
24
En décimal
En décimal
8
66
134 . 24 . 8 . 66
Avec le premier nombre de la doted notation on reconnaît donc la classe du réseau :
108
Section 4 – Pile TCP/IP
Classe
Premier octet
A
0. à 127.
128. à 191.
192. à 223.
224. à 239.
240. à 247.
B
C
D
E
On trouve aussi la notation suivante pour désigner un réseau de classe C :
192.33.22/24
Qui désigne le réseau 192.33.22.0, le nombre de bits réservés à l’adressage du réseau étant 24 (classe
C). Cette notation permet de synthétiser le couple adresse/masque.
10.2.3 Adresses particulières
Si une adresse contient dans la partie hôte que des 1, on parle d’adresse de diffusion. C’est à
dire que toutes les machines du réseau sont destinataires.
Si une adresse contient dans la partie hôte que des 0, c’est l’adresse du réseau.
Par conséquent, dans un réseau de 256 adresses potentielles, seules 254 adresses peuvent être
réellement affectées.
L’adresse 0.0.0.0 est l’adresse de la machine au démarrage. On la rencontre lors de la
connexion à un réseau de machines n’ayant pas encore d’adresse IP, avant qu’un serveur ne leur
en affecte une (voir protocole RARP).
L’adresse 127.0.0.1 est une adresse de bouclage : elle désigne la machine émettrice ellemême et permet de se router vers la machine elle-même. Elle est en particulier utiliser par
certains utilitaires (ping), ou pour assurer la communication inter-processus.
Les adresses 224.0.0.x (appartenant à la classe D),
multicast ou multipoints (vidéo,…).
sont réservées aux transmissions
Les classes 10.0.0.0/8, 172.16.0.0/14, 196.168.0.0/16 sont des adresses non
affectées officiellement sur le réseau Internet. Elles sont réservées à un usage privé sur les
réseaux locaux par exemple. (§10.4.7).
10.2.4 Attribution des adresses IP sur Internet
Il a été évoqué dans le premier chapitre de ce volume la répartition régionales des adresses IP (V4 ou
V6). Les adresses IPv4 ont été réparties par l’IANA (Internet Assigned Numbers Authority) entre les
différents RIR (Regional Internet Registry) afin que ces derniers les répartissent à leur tour entre les
différents pays via des LIR (Local Internet registry).
109
Section 4 – Pile TCP/IP
IANA
Internet Assigned Numbers Authority
RIR
RIR
Regional Internet Registry
Regional Internet Registry
ARIN
RIPE
American Registry for Internet Numbers
Registre Internet Europén
LIR
Local Internet Registry
FRANCE
0.0.0.0
255.255.255.255
Répartitions des adresses Ipv4 (source www.caida.org)
RIR
Zone
% d’adresses attribué
AFRINIC
APNIC
ARIN
LACNIC
RIPE -NCC
Hors RIR
Réservé
Afrique
Asie-Pacique
Amérique
Amérique latine
Europe
(Historique)
2%
18%
14%
4%
14%
36%
14%
Le RIPE-NCC (Réseaux IP européens – Network Coordination Center) coordonnent plus de 500 LIR
(Local Internet Registry) rien que pour la France. Ils sont eux-mêmes chargés en tant que FAI
(Fournisseurs d’accès Internet) de les redistribuer aux clients finaux qui souhaitent accéder à Internet.
110
Section 4 – Pile TCP/IP
La politique d’attributions des adresses doit permettre de garantir l’agrégation de route et se fait en
coordination avec l’attribution des numéro d’AS BGP, eux-mêmes attribués par les RIR.
Le 3 février 2011, l’IANA a attribué le dernier bloc d’adresses IPv4. Le plan d’adressage IPv6 doit
fournir une substitution pour l’avenir (10.6).
10.3 Les sous-réseaux.
10.3.1 La partition d’un réseau
Le système d’adressage IP est un système qui trouve vite ses limites. Par exemple, la classe A peut
administrer 128 réseaux et chacun de ces réseaux pouvant administrer plus de 16 millions de
machines. Il y a donc pour chacun des réseaux de cette classe beaucoup trop d’adresses hôte qui
seront vraisemblablement inutilisées. Et inversement pour la classe C
On peut donc dire qu’il manque des classes intermédiaires. C’est là qu’apparaît la notion de sousréseaux. Ainsi un réseau d’une classe quelconque sera “découpé” en plusieurs sous-réseaux.
Routeur
Internet
Réseau unique
Routeur
Internet
Partage en trois sous-réseaux
Ce partage sera réalisé par un réaménagement de l’affectation des adresses en utilisant des masques
d’adresses.
10.3.2 Adresses et masques
Le masque réseau indique à une machine quelles sont celles qui appartiennent à son propre réseau. Il
permet pour un routeur de distinguer la machine du réseau auquel elle appartient.
Pour plus de simplicité nous allons considérer une classe C : 196.33.22.0 à 196.33.22.255.
L’adresse du réseau est donc : 196.33.22.0.
111
Section 4 – Pile TCP/IP
On peut considérer que 196.33.0.0 désigne le sous-réseau France et 196.33.22.0 le sousréseaux Côtes d’Armor. Cette distinction sera utile pour le traitement des routeurs qui travailleront de
manière hiérarchique sur l’adresse.
On peut y adresser 254 machines, mais on peut constituer, pour plus de souplesse d’administration,
des groupes de machines indépendants, ou bien pour réaliser une dizaine de réseaux dont les adresses
seront attribuées à des clients indépendants.
Le masque de l’adresse du réseau France est 255.255.0.0 et celui du sous-réseau Côtes-d’Armor
de classe C est 255.255.255.0 : tout les champs binaires à 1 sauf ceux de l’hôte : ce masque
multiplié par n’importe quelle adresse de machines appartenant au réseau retournera l’adresse du
réseau lui-même :
Adresse Hôte
196.33.22.54
produit
masque
255.255.255.0
Adresse Réseau
196.33.22.54
11000100
00100001
00010110
00110110
X
X
X
X
11111111
11111111
11111111
00000000
11000100
00100001
00010110
00000000
Avec les opérations booléennes suivantes :
1X1=1
1X0=0
0X0=0
L’idée pour partager en sous-réseaux un réseau de classe C est d’accroître le masque vers la zone
d’adresse de l’hôte.
10.3.3 Le routage CIDR
Le routage “sans classe” CIDR (Class Inter Domain Routing) est une technique permettant d’allouer
le solde des adresses de classes C (plus de 2 millions) sous forme de blocs de taille variable. Ex : un
site ayant besoin de 1000 adresses en obtient 1024 soit 4 réseaux de classe C contigus au lieu
d’adresses de classe B.
Adresse IP
Masques n bits
Techniquement, il s’agit de créer un masque comme pour la partition mais en modifiant la répartition
des bits de réseaux et d’hôtes du format des adresses IP. Il est possible :
D’ajouter des bits de réseaux dans la partie consacrée aux hôtes da la classe, c’est un masque de
sous-réseaux de classe
De supprimer les derniers bits du champ réseaux de la classequi seront réservés aux adresses de
l’hôte : c’est un masque de super-réseaux, à l’opposé des sous-réseaux.
masque
255.255.252.0
/22
11111111
11111111
11111100
00000000
Le masque de 'super-réseaux' ci-dessus permet d’adresser 1022 machines sur le réseau dont l’adresse
n’utilisera pas les deux derniers bits du champ réseau de classe C.
Sur le réseau, on envoie alors l’adresse réseau suivi de l’adresse masque (ou du nombre de 1, ici 22).
Cette opération d’ignorer les derniers bits du champ grâce à l’usage du masque ne sera possible que
sur les routeurs implémentant cette technique.
112
Section 4 – Pile TCP/IP
On donne ci dessous les 8 extensions de masques possibles :
masque
1000 0000
/+1
.128
1100 0000
/+2
.192
1110 0000
/+3
.224
1111 0000
/+4
.240
1111 1000
/+5
.248
1111 1100
/+6
.252
1111 1110
/+7
.254
10.3.4 Masque de sous-réseaux
Si on désire partager le réseau précédent (§10.3.1)en 4 sous-réseaux on va utiliser le masque suivant :
Masque : /26
255.255.255.192
11111111
11111111
11111111
11000000
Alors, on pourra adresser 4 sous réseaux avec les classes d’adresses :
196.33.22.0
11000100
00100001
00010110
00000000
196.33.22.64
11000100
00100001
00010110
01000000
196.33.22.128
11000100
00100001
00010110
10000000
196.33.22.192
11000100
00100001
00010110
11000000
On pourra trouver également la notation 196.33.22.64/26 pour désigner le second réseau de cette liste,
26 étant le nombre de bits réservés à l’adresse réseau, 32-26=6 ceux réservés aux hôtes du réseau.
Le premier de ces sous-réseaux, que l’on pourra appeler Pléneuf, aura donc 62 possibilités d’adresses,
le sous-champ hôte de 6 bits tout à 0 et tout à 1 étant réservé respectivement pour désigner le sousréseau et la diffusion sur le sous-réseau. Ces adresses iront donc entre les deux extrêmes du tableau
suivant :
196.33.22.1
11000100
00100001
00010110
00000001
196.33.22.62
11000100
00100001
00010110
00111110
Pour récapituler ce qui a été expliqué dans notre exemple :
Font parties du réseau France, les machines ayant pour adresse IP : 196.33.xxx.xxx
Font parties du sous-réseau Côtes d’Armor, les machines ayant les adresses IP de
196.33.22.1, jusqu’à 196.33.22.254
Font parties du sous-réseau Pléneuf Les machines ayant les adresses IP de 196.33.22.1
jusqu’à 196.33.22.62
On peut mettre en place une multitude de sous-réseaux, et cela pour toutes les classes. Cela permet
d’accroître les possibilités d’adressage en s’appuyant sur le format existant et sans faire « exploser »
les tables de routage grâce à la hiérarchisation.
10.3.5 Exemple de partitionnement
Considérons un réseau avec une classe C :
Adressage d’un réseau local de classe C : 192.168.1.0
On peut exploiter 254 adresses d’hôtes
113
Section 4 – Pile TCP/IP
192.168.1.2
192.168.1.254
192.168.1.253
192.168.1.3
switch
serveur
192.168.1.4
192.168.1.1
192.168.1.255
83.112.25.17
INTERNET
routeur
Broadcast
Si un administrateur souhaite partitionner en 4 sous-réseaux à partir de cette classe C, il pourra ainsi
utiliser un masque élargi de 2 bits supplémentaires, donc /26. Il pourra exploiter 62 adresses d’hôtes
par sous-réseaux.
192.168.1.2
192.168.1.62
192.168.1.61
192.168.1.3
switch
serveur
192.168.1.4
83.112.25.17
192.168.1.1
INTERNET
192.168.1.63
Broadcast
192.168.1.65
192.168.1.129
192.168.1.193
10.4 Routage
10.4.1 Routage dans Internet
La mise en réseau de machines utilisant la pile TCP/IP peut mettre en œuvre différents concepts de
routage que nous résumerons ici, selon les niveaux croissants de la pile OSI
Au niveau 1 : Le domaine de collision à travers un HUB ou concentrateur, où toutes les
machines se voient et s’écoutent simultanément. Il n’y a pas de routage à proprement parler
et c’est la mise en œuvre du CSMA/CD qui permet le partage des informations.
Au niveau 2 : Le SWITCH ou commutateur permet d’aiguiller les connexions vers le bon
destinataire sans solliciter les autres machines ; cette opération n’est possible que dans une
même classe d’adresse IP. En fait, le routage s’effectue sur la valeur de l’adresse MAC des
machines, et ignore la valeur des adresses IP. L’usage du protocole ARP est imposé.
Le commutateur a lui-même une adresse IP unique et plusieurs adresse MAC selon son nombre
de ports. Il fait donc partie du réseau local qu’il dessert.
Enfin au niveau 3 : Le ROUTER ou routeur assure l’opération de routage proprement dit
au niveau de l’adresse IP. Il lit l’adresse IP du datagramme à router et choisit un de ses accès
en fonction de sa table de routage (dont le principe et la mise en place sont détaillés ci-après).
114
Section 4 – Pile TCP/IP
Ce dispositif (appareil spécifique ou terminal avec plusieurs cartes réseaux), aussi qualifié de
GATEWAY (passerelle) dans la terminologie IP, dispose d’au moins deux IP, une pour chacun des
deux réseaux qu’il dessert.
Routeur
Switch
@IP2
Internet
@IP1
10.4.2 Architecture d’un routeur
Un routeur IP est composé de 2 plans principaux, et d’un troisième pour sa gestion externe.
Le plan de commande ou de contrôle, est le cerveau du routeur où se déroule les calculs de
route en fonction des éléments dont il dispose : la table de routage (RIB : Routing
Information Base) et les protocoles de routage.
Le plan de transfert gère l’aiguillage pratique des paquets de données tel que le plan de
commande l’a établi par l’intermédiaire d’une table (FIB : Forward Information Base)
Le plan de management, qui permet à l’administrateur de régler les paramètres du routeur via
les ports de contrôle (console, Interface ligne de commande, telnet…)
P lan de Management
Plan de commande
ROUT A GE
Prot ocoles
RIB
Plan de T ransfert
FIB
A IGUILLA GE
L’architecture matérielle d’un routeur est similaire à celle d’un PC, qui sera abordé dans une autre
partie de ce volume. Le plan de commande supporte donc un OS simplifié à base d’unix avec ces
propres fonctionnalités (Système de fichiers, gestion de processus, Kernel…). Le plan de transfert est
constitué d’une architecture électronique rapide dédiée pour le traitement des paquets et d’une matrice
de commutation associée à des mémoires pour les buffers.
Mat rice de
Commutat ion
Plan de
T ransfert
Plan de
commande
RIB
FIB
FIB
FIB
FI B
Interfaces
La partie 20.4 expose en détail certaines architectures internes de commutateurs classiques.
115
Section 4 – Pile TCP/IP
10.4.3 Routage statique et dynamique
Il existe deux grands types de routage dans un réseau : le routage statique et le routage dynamique. Ils
font référence à la méthode dont sont constituées les tables de routages.
Le premier fait appel à une table écrite manuellement sur une machine et ne pouvant être modifiée que
par l’intervention d’un technicien. C’est simple mais rapidement ingérable avec l’accroissement du
nombre de machines et les modifications permanentes d’un réseau.
Le routage dynamique implique une intelligence machine qui permettent aux routeurs de connaître en
permanence l’état du réseau et sa topologie pour décider d’un routage optimal. Il faut donc mettre en
œuvre des protocoles spécifiques détaillés dans les paragraphes suivants.
En général, les deux procédés sont intégrés pour constituer les tables.
10.4.4 Routage direct et indirect
Un routeur – aussi qualifié de passerelle ou GATEWAY dans le vocabulaire TCP/IP – est un
équipement traitant des paquets IP et capable de retransmettre ces mêmes paquets si l’adresse IP de
destination qu’ils contiennent n’est pas celle du routeur lui-même. C’est le concept fondamental du
routage IP : tout équipement qui n’est pas routeur (comme un Switch) ignore les paquets qui lui sont
adressés via son adresse MAC mais qui n’ont pas son adresse IP.
IP4
Switch
Routeur IP100
eth a
IP1
IP2
eth b
IP?
IP?
IP3
Internet
IP101
Si une machine du réseau local (IP1 pour l’exemple) désire émettre un paquet dont l’IP destination
n’appartient pas au réseau local, elle devra disposer d’une adresse de passerelle (Gateway) dans sa
table de routage pour émettre le datagramme avec comme adresse MAC destination celle du routeur
côté réseau local :
IP Destination
IP Interface
IP Gateway
port
IP LAN
IP1
-
eth 0
IP ext
IP1
IP4
eth 0
NOTE : L’IP destination dans la table peut être soit celle d’une machine, soit celle d’un réseau auquel
cas le masque est également fournit.
L’émission du datagramme vers l’IP extérieure se déroulera en Trois étapes successives :
La machine cherche dans sa table de routage une adresse de Gateway à laquelle envoyer son
datagramme.
Une fois qu’elle a cette IP gateway, elle interroge cette Gateway (via ARP) pour connaître son
adresse MAC
Elle forge une trame MAC à destination de l’adresse MAC Gateway et contenant le
datagramme à destination de l’IP extérieure.
116
Section 4 – Pile TCP/IP
Au niveau du routeur (Gateway) convenablement configuré, tout paquet dont l’IP ne correspondra pas
au segment local desservi par le port etha sera rediriger vers le port ethb. Dans un LAN type 802.3, on
trouvera l’adresse MAC ethernet pour qualifier l’adresse du port. On fait alors confiance au routeur
suivant. La table de routage du routeur sera alors :
IP Destination
IP Interface
IP Gateway
port
IP LAN
IP4
-
eth a
IP ext
IP100
IP101
eth b
Dans le cas de la première adresse on parle de routage direct, dans l’autre cas de routage indirect.
Notons que ce routage indirect prendra l’aspect d’un routage vers un réseau plutôt que vers la
machine du réseau. C’est à dire que l’IP destination ne correspondra pas à l’IP passerelle mais aura
son adresse MAC.
Cette table simple peut être implémentée de manière statique ; alors tout changement de configuration
du segment local impliquera une modification manuelle.
10.4.5 Table de routage
On fournit ci-dessous l’exemple d’une table de routage simple sous une station linux équipé de deux
interfaces réseaux, identifiées par leurs noms eth0 et eth1 :
On utilise la commande route La commande analogue sous Windows est route print
root@localhost admin]# route
Table de routage IP du noyau
Destination
Passerelle
Genmask
192.168.1.0
*
255.255.255.0
192.35.22.0
*
255.255.255.0
127.0.0.0
*
255.0.0.0
default
192.168.1.1 0.0.0.0
Indic
U
U
U
UG
Metric
0
0
0
0
Ref
0
0
0
0
Use
0
0
0
0
Iface
eth0
eth1
lo
eth0
Destination : adresses des réseaux à atteindre. Ici deux réseaux locaux 192.35.22.0 et 192.168.1.0.
Tout autre adresse est comprise dans « default ».
Passerelle (Gateway) : Adresse de la passerelle qui effectuera le routage si l’accès n’est pas direct.
Masque : masque réseau associé à l’adresse destination. 0.0.0.0 désigne toutes les adresses IP.
Indicateur (flag) :
U
Up – station active
G
Destination indirecte
H
Destination directe vers une machine
Interface : désigne l’interface réseau que le datagramme devra emprunté. eth0 et eth1 désignent des
cartes réseaux, lo est l’interface de bouclage locale (loopback).
La manipulation de cette table peut se faire directement avec la commande route dont un exemple est
fournit ci-dessous :
Windows :
>route add ip_net_dest MASK ip_net_dest_mask ip_gateway
Linux :
>route add -net ip_net_dest/n [netmask ip_net_dest_mask] gw ip_gateway eth1
117
Section 4 – Pile TCP/IP
10.4.6 Interconnexion de réseaux
Ce cas va se compliquer si on considère des topologies plus élaborées, et en particulier si le routeur
possède plus de deux ports. En outre, il y a de forte chance que ce type de table ne produise pas un
routage très efficace.
On pourrait traiter cela par un routage type inondation qui risquerait de congestionner le réseau. Dans
la pratique on va donc compléter la table par des paramètres supplémentaires et par un algorithme de
traitement. En outre, le routeur effectuera une recherche du réseau auquel appartient la machine, en
utilisant les classes et les masques associés, laissant au routeur final desservant le réseau concerné le
dernier routage direct
Les problématiques de ces interconnexions sur une échelle plus large seront abordées dans le chapitre
11.
Routeur
Routeur
Routeur
10.4.7 Adressage privé
Une des difficultés du routage simple est que la station qui traverse le routeur pour accéder à un
réseau externe doit disposer d’une adresse officielle ou publique référencée dans les tables de routage.
Le nombre limité d’adresses IP disponibles (§10.2.4), la souplesse nécessitée par une gestion locale
des adresses sur un LAN, ont conduit à établir une distinction entre les adresses publiques et les
adresses privées (RFC 1918) .
Les adresses privées sont disponibles pour les administrateurs de réseaux locaux et ne sont pas
attribuées sur Internet. Il faudra filtrer les trafics et masquer le réseau local tout en permettant au
machines d’accéder au réseau extérieur
Classe
A
B
C
plage
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
10.4.8 NAT: Network Address translation
Une des techniques de filtrage est d’utiliser une technique de substitution de l’adresse privée par une
adresse publique: c’est le NAT. On distingue deux types de NAT, statique et dynamique.
118
Section 4 – Pile TCP/IP
NAT
@IP-Dest
@IP-externe
@IP-interne
NAT statisque : chaque adresse privée est décalée par le routeur pour devenir une adresse publique.
Les machines internes peuvent être jointes depuis l’extérieur. En revanche il faut disposer d’autant
d’adresses internes que d’externes ce qui ne résout pas le problème de pénurie.
@ IP-Interne
@ IP-Externe
192.168.0.1
192.168.0.2
83.204.12.15
83.204.12.16
NAT dynamique : [masquerading] une unique adresse externe peut être attribuée à la demande à une
ou plusieurs adresse interne. Ce mécanisme impose de gérer les liens entre adresse interne et adresse
externe pendant une durée donnée et donc un certain degré de complexité logicielle du routeur.
L’avantage du NAT est d’être souple et de ne pas nécessiter de configuration avancée au niveau du
client, le routeur gérant seul la translation dans les deux sens. En revanche, il peut exister des risques
d’instabilités des connexions sortantes, et il est impossible d’accepter des connexions entrantes
(depuis l’extérieur). Le NAT peut évoluer en divers variantes qui utilisent la couche supérieure TCP :
NAPT, PAT puis par l’usage de Proxy ou de protocoles comme STUN (Simple Traversal of UDP
Through Nat).
10.5 Protocoles de contrôle
Il existe différents protocoles au niveau de la couche réseau qui permettent de contrôler l’état du
réseau.
10.5.1 ICMP : Internet Control Message Protocole.
En cas de problèmes (datagrammes perdus, TTL à zéro, erreurs sur l’en-tête), un message est
encapsulé dans un datagramme afin de signaler la nature du problème (Norme RFC 792). Ce
protocole est également utilisée lors de l’exécution de la fonction PING destinée à s’assurer de la
présence d’une station sur le réseau et à évaluer les temps de réponse (Round Time Trip - RTT).
Un message ICMP est constitué d’un en-tête d’au moins 4 octets suivi d’un bourrage éventuel pour
garantir la taille minimale de la trame. Les messages ICMP sont eux-mêmes encapsulés dans un
datagramme IP et sont identifiés dans le champ type de protocole par la valeur 1 : ils sont pris en
charge directement par la couche IP
On recense 13 types de messages ICMP selon leur rôle : destination inaccessible, durée dépassée,
fragmentation nécessaire. Le champ type d’un octet contient cette valeur suivi d’un champ code d’un
octet qui contient le cas échéant un code d’erreur.
Message ICMP
Type
Echo reply
Destination Unreachable
Source quench
Redirect
Echo request
Time exceded for datagram
0
3
4
5
8
11
119
Section 4 – Pile TCP/IP
Parameter problem on datagram
Timestamp request
Timestamp reply
Address mask request
Address Mask Reply
12
13
14
17
18
La commande PING correspond à l’émission d’un ICMP type 8 (echo request) et sollicite de la cible
en retour un paquet de réponse (echo reply) : cet échange permet de garantir la connectivité réseau IP
entre ces deux points. Le paquet ICMP est étendu à 8 octets avec deux champs supplémentaires :
identifiant et numéro de séquence.
1 octet
A
Type
Code
B
Checksum
Identifiant
ICMP type 8
ICMP type 0
Numéro de
séquence
Il existe de nombreuses options et facilités d’usage pour cette commande incontournable afin de
faciliter des mesures de délais, tester les filtres, analyse de la fragmentation, modification de TTL…
La commande TRACEROUTE (ou tracert) est une variante de l’usage des messages ICMP permettant
de définir la série des nœuds réseaux utiliser en incrémentant le numéro de TTL à partir de 1 pour
chaque ECHO REQUEST émis. La destruction d’un message ICMP est signalée par un autre message
ICMP de type 11. La destruction de messages de type 11 n'est pas signalée.
10.5.2 ARP : Address Résolution Protocol.
Les adresses IP sont attribuées indépendamment des adresses matérielles (adresses MAC – 6.4) des
machines. Pour envoyer un datagramme dans le réseau, on peut envisager deux solutions :
Encapsuler le datagramme dans un paquet MAC de diffusion : il devra être traité par
l’ensemble des stations qui devront analyser la trame au niveau IP.
Mettre le datagramme dans une trame MAC comportant l’adresse MAC de la machine
concernée, ce qui accélère et allège la transmission.
Pour mettre en œuvre cette seconde solution, le logiciel réseau doit convertir l’adresse IP en une
adresse physique MAC qui est utilisée par la machine, pour transmettre la trame. Une machine utilise
ARP pour déterminer l’adresse physique du destinataire, en diffusant, sur le sous-réseau, une requête
ARP, qui contient l’adresse IP à traduire. La machine possédant l’adresse IP concernée répond en
renvoyant son adresse physique.
120
Section 4 – Pile TCP/IP
A
B
requête ARP: diffusion Ethernert"IPB?"
A
B
réponse ARP de B vers A: IPB-MACB
Cette requête ARP est un paquet spécial encapsulée dans une trame Ethernet et contenant, outre les
types de réseau (Ethernet) et de protocole (IP) utilisés, les adresses MAC et IP sources et destinataires
Le champ type de la trame Ethernet est 0806h pour permettre d’identifier le protocole ARP.
Adresse Destination 2 ou 6 octets
Adresse Source 2 ou 6 octets
00001000 00000110
Type de matériel
Type de protocole
taille matériel taille protocole
OP
Ethernet source
Ethertype 0806
28 octets ARP/RARP
IP source
Ethernet cible
IP cible
CRC 4 octets
Type de matériel : Pour Ethernet 0001h – taille matériel (longueur adresse physique) :6
Type de Protocole : Pour Protocole IP 0800h : taille protocole (longueur adresse protocole) : 4
OP : code opération : 1 pour la requête et 2 pour la réponse
10.5.3 RARP : Reverse ARP.
Au moment du démarrage, une machine doit contacter son serveur pour déterminer son adresse IP,
afin de pouvoir utiliser les services de TCP/IP. Le protocole RARP, permet à une machine d’utiliser
son adresse physique pour déterminer son adresse logique dans le réseau (adresse IP). Le mécanisme
RARP permet à un client de se faire identifier comme cible en diffusant sur le réseau une requête
RARP. Les serveurs recevant le message examinent leurs tables et répondent au client.
Pour l’identification, la trame RARP est encapsulée dans une trame Ethernet dont le type est 0835h.
10.5.4 DHCP : protocole de démarrage – RFC 1531.
Historiquement, un protocole BOOTP permettait d’affecter à une machine sans disque une adresse et
même son système d’exploitation via le réseau. Aujourd’hui, le principe subsiste pour l’affectation
dynamique d’adresses IP.
121
Section 4 – Pile TCP/IP
Le but de DHCP (Dynamic Host Configuration Protocol) est de fournir la possibilité d’affecter
dynamiquement une adresse IP à une machine qui se connecte sur le réseau et qui n’a aucune adresse
(0.0.0.0). Ce protocole simplifie grandement la tâche d’administration comparé à un réseau où
l’affectation des adresses est statique : dans ce cas toute machine a une adresse IP, qu’elle soit ou non
connectée au réseau. Cette affectation statique mobilise un nombre élevé de ressources d’adresses IP,
alors que ces dernières sont parfois en nombre limitée.
server
DHCP
IP?
server
DHCP
1
DHCP_Discover
2
DHCP_Offer
3
DHCP_Request
4
DHCP_ACK
Le principe est assez similaire à celui de ARP mais nécessite une double demande :
Dans un premier temps la machine sans adresse communique une demande DHCP : je veux
une adresse IP. Les serveurs DHCP répondent et proposent une adresse IP.
La machine choisit une réponse et effectue alors sa requête DHCP : je veux telle adresse IP. Le
serveur concerné répond et confirme en attribuant en outre d’autres paramètres, comme le
masque, la durée de validité de l’adresse… son adresse est valide pendant la durée du bail
imposé par le serveur. Une nouvelle attribution sera nécessaire à l’expiration du bail.
Attention : BOOTP comme DHCP fonctionnent sur UDP/IP avec le numéro de port 68. Ce n’est donc
pas un protocole de même niveau que ICMP, mais de niveau applicatif. Nous y reviendrons dans la
section suivante.
Ce protocole permet d’attribuer une IP parmis une liste d’adresses disponibles, de manière statique
(toujours la même IP) automatique (à chaque connexion) ou dynamique (allocation temporaire)
DHCP est utilisé sur la pile UDP/IP.
Ci-dessous format de la trame DHCP.
OP
type
hops
long ad. phys
XID
Temps
flags
IP source
future IP source
IP serveur
IP relais (passerelle)
Ad. physique
Nom serveur
Accès fichier boot
Info spécifiques
122
Longueur variable
Section 4 – Pile TCP/IP
Descriptif du champ information spécifique peut contenir le type de message DHCP utilisé
Valeur
message
1
2
3
4
5
6
7
8
DHCP_Discover
DHCP_Offer
DHCP_Request
DHCP_Decline
DHCP_Ack
DHCP_Nack
DHCP_Release
DHCP_Inform
DNS
DHCP
D o m a in
Nam e
Se rv er
Dynamic Host
Configuration
Protocol
53
68
TCP
EGP
Exterior Gateway
Protocol
RI P
Routing Internet
Protoc ol
520
O SPF
Open Shor test
Pa th First
UDP
Transmission Control P rotocol
User D ata Protoc ol
Ping
T ra c e
R o u te
ICMP
11h
06h
3
3
BGP
Border Gateway
Protocol
Internet Control
Message
Protocol
01h
IP
v4/v6
Internet Protoc ol
AR P
2
2
0806
0800
Adress
Resolution
Protocol
R AR P
Reverse ARP
0835
4
4
Routage
10.5.5 Piles des protocoles
Ethernet
10.6 IP v6
10.6.1 Objectifs
La première raison d’être d’Ipv6 était d’augmenter l’espace disponible pour les adresses afin de
répondre aux besoins croissants des réseaux modernes, lesquels possèdent un grand nombre de
périphériques connectés. Mais les concepteurs d’Ipv6 ne se sont pas contentés d’agrandir l’espace
d’adressage, ils en ont tiré les enseignements de quelques quinze années d’exploitation d’Ipv4.
Des diverses propositions que l’on a pu faire pour répondre aux problèmes d’adressage d’Ipv4 et pour
améliorer le protocole, Ipv6 n’a retenu que les meilleures.
Outre les capacités d’adressage étendues, des possibilités de traitement selon la nature des données
(Texte, voix…) avec réservation des ressources réseaux.
123
Section 4 – Pile TCP/IP
10.6.2 En-tête
2 Octets
Version
Priorité
Etiquette de flot
Longueur champ DATA
En-tête suivant
Nombre de saut max
IP source
40 octets
IP cible
16 octets
16 octets
L’en-tête Ipv6 se compose principalement d’une partie de taille fixe de 40 octets, dont 16 octets pour
l’adresse d’origine et 16 octets pour l’adresse de destination.
le champ version est toujours égal à 6 pour Ipv6. Pendant la période de transition de Ipv4 à Ipv6, qui
durera probablement une décennie, les routeurs devront examiner ce champ pour savoir quel type de
datagramme ils routeront, et la structure de l’en-tête à traiter avec la version appropriée.
le champ priorité est utilisé pour distinguer les sources qui doivent bénéficier du contrôle de flux de
celles qui ne le doivent pas. Des priorités de 0 à 7 pour les débits variables, et de 8 à 15 pour les
trafics en temps réel à débits constants ( en cas de congestion de trafic, les données tels que l’audio
et la vidéo seront altérées)
le champ étiquette de flot est un champs expérimental qui permet à une source ou une destination
d’ouvrir une pseudo-connexion avec des propriétés et des exigences particulières, en particulier
selon la nature des données : voix, texte, images, vidéo…
le champ longueur de charge utile indique le nombre d’octets de données qui suivent l’en-tête de 40
octets. La longueur de l’en-tête n’est plus comptabilisée dans la longueur totale du datagramme
(Ipv4), seule la longueur de charge utile compte.
le champ en-tête suivant spécifie le type de l’en-tête suivant éventuel en cas d’utilisation d’extensions
d’en-têtes optionnelles. Ainsi, si l’en-tête est le dernier d’une suite d’en-tête IP, le champ en-tête
suivant indique à quel protocol de transport passer les DATA (TCP,UDP).
le champ nombre maximal de sauts est utilisé pour empêcher les datagrammes de circuler
indéfiniment. Il contient une valeur représentant un nombre de sauts qui est décrémenté à chaque
passage dans un routeur. L’Ipv4 a en plus une notion de temps (TTL)
En plus de cette en-tête de base, on retrouve parfois des extensions pour :
le routage servant à spécifier un certain nombre de routeurs par lesquels le datagramme devra
impérativement passer avant d’atteindre sa destination.
la fragmentation qui, contrairement à Ipv4, ne permet plus au routeur de fragmenter les paquets
les options de destination servant à transporter des informations optionnelles qui n’intéressent que le
destinataire. Avant tout échange, les deux extrémités déterminent le MTU (Maximum Transmission
Unit) qui est la taille maximale en octet des paquets supportés à travers la liaison.
la fin des en-têtes
124
Section 4 – Pile TCP/IP
les options pas à pas qui contient des informations qui intéressent tous les routeurs intermédiaires que
rencontre le paquet pendant son acheminement
l’identification permet d’assurer l'intégrité et l’identification des datagrammes IP.
la sécurité permet d’assurer l’intégrité et la confidentialité des datagrammes IP.
En conclusion, l’en-tête a été allégée par rapport a Ipv4 : plus de gestion de fragmentation, plus de
contrôle d’erreur d’en-tête ou de champ longueur d’en-tête. Il s’en suit un accroissement de la vitesse
de lecture et de traitement de l’en-tête dans les routeurs.
10.6.3 Formats d’adresse Ipv6
Ipv6 prévoit trois formats d’adresse qui rompent avec la structure hiérarchique d’Ipv4 ( Classe n ) et
porte sur 128 bits : « unicast » qui identifie un correspondant unique, « anycast » qui identifie
plusieurs correspondants ( seul l’un d’entre eux devant recevoir une trame ) et « multicast » qui
identifie plusieurs corresponds, lesquels reçoivent tous la même trame ( notion de « broadcasting »).
L’adresse « unicast » permet d’identifier l’organisme qui attribue l’adresse du fournisseur d’accès,
l’abonné et un groupe de nœud particulier, celui du destinataire. Elle sert à l’encupsulage des adresses
Ipv4 : les 32 bits de Ipv4 sont placés dans une adresse de 128 bits. Un second format de transition dit
« Ipv6 mapped Ipv4 » est destiné aux routeurs qui ne comprennent pas Ipv6 et que l’on ne veut pas
remplacer dan l’immédiat.
L’adresse « multicast » correspond au besoin de plus en plus affirmé de fournir des services à un
ensemble d’abonnés : une agence de presse par exemple où il est nécessaire de dupliquer des trames
de données vers les utilisateurs. Les routeurs peuvent exploiter pour cela des protocoles tels que
DVMRP ( Distance Vector Multicast Routing Protocol ) et MOSPF ( Multicast Open Shortest Path
First ).
2 Octets
Adresse IPv4
Adresse IPv6
16 octets
Le nombre d’adresses potentielles Ipv6 étant très élevé (supérieur à 100 au m² pour la planète Terre),
il est possible de réaliser un routage hiérarchique très efficace.
Il existe pusieurs formats correspondant à l’organisation de ces 16 octets :
Le format lien local : formé à partir de l’adresse MAC (48 ou 64 bits) pour une utilisation sur
un LAN non routé, préfixé fe80 ::/10 (§10.6.5)
Le format site local, formé à partir de l’Ipv4 utilisable sur LAN préfixée fec0 ::/10
Le format Ipv4 mappé permet de communiquer avec des machines Ipv4 de
format ::ffff :192.168.0.1
Le format Ipv4 compatible pour joindre des réseaux Ipv4 de format ::192.168.0.1
Les adresses 6to4 pour le tunneling Ipv4 , préfixées 2002 ::/16
Le format agrégé décrit ci-dessous. Format exploitable sur un WAN. Préfixé 2000 ::/3
Niveau Hiérarchique
Cigle
Taille en bits
Top Level Aggregator
Next Level Aggregator
Site Level Aggregator
TLA
NLA
SLA
13
32
16
125
Section 4 – Pile TCP/IP
Adresse IPv6
001
TLA
NLA
13
3
32
Topologie Publique
SLA
Interface ID
16
64
Topologie Privée
10.6.4 Notation Ipv6
Les formats de notation d’adresse sont alors semblables à celles d’Ipv4 ou en hexadécimal séparé par
deux points. Pour alléger on peut utiliser le double deux points « :: » pour simplifier la notation. De
longue suite de zéro.
Format standard
1fff :0000 :0a88 :85a3 :0000 :0000 :0c00:2dc3
Décimal pointé
Suppression des 0 poids forts
Suppression de la plus longue
chaîne de 0
1fff :0000 :0a88 :85a3 :0000 :0000 :12.0.45.195
1fff :0 : a88 :85a3 :0 :0 : c00:2dc3
1fff :0 : a88 :85a3 :: c00:2dc3
On peut utiliser la même notation que celle utiliser en Ipv4 pour indiquer en nombre de bits la taille du
préfixe qui fixe format de l’adresse en notation CIDR :
1fff ::/16 (16=longueur du préfixe en bit)
Il existe également certaines adresses particulières dont on donne les notations Ipv6 :
Adresse de Loopback = ::1
Adresse indéterminée (constituée uniquement de 0) = ::
Adresse multicast préfixée ff00 ::/8
10.6.5 Trace Ipv6 – Adressage Lien Local
On propose ci-dessous l’exemple d’une trame icmpV6 encapsulée dans un datagramme Ipv6. On
pourra noter la formation de l’adresse Ipv6 lien-local à partir de l’adresse MAC :
Adresse MAC
Inversion bit 7
Découpage bloc 24 bits
Intercalage fffe
Id Ipv6
Adresse Ipv6
No.
Time
220 192.371047
solicitation
00 :11 :09 :a6 :e8 :b0
02 :11 :09 :a6 :e8 :b0
02 :11 :09
a6 :e8 :b0
02 :11 :09 :ff :fe :a6 :e8 :b0
0211:09ff:fea6:e8b0
fe80:0211:09ff:fea6:e8b0
Source
Destination
fe80::211:9ff:fea6:e8b0 ff02::1:ff02:30
Protocol
ICMPv6
Info
Neighbor
Frame 220 (86 bytes on wire, 86 bytes captured)
Arrival Time: Mar 24, 2006 12:05:26.448458000
Time delta from previous packet: 0.209153000 seconds
Time since reference or first frame: 192.371047000 seconds
Frame Number: 220
Packet Length: 86 bytes
Capture Length: 86 bytes
Protocols in frame: eth:ipv6:icmpv6
Ethernet
II,
Src:
192.35.22.1
(00:11:09:a6:e8:b0),
Dst:
Ipv6-NeighborDiscovery_ff:02:00:30 (33:33:ff:02:00:30)
Destination: Ipv6-Neighbor-Discovery_ff:02:00:30 (33:33:ff:02:00:30)
Source : 192.35.22.1 (00 :11 :09 :a6 :e8 :b0)
Type : Ipv6 (0x86dd)
Internet Protocol Version 6
Version : 6
126
Section 4 – Pile TCP/IP
Traffic class: 0x00
Flowlabel: 0x00000
Payload length: 32
Next header: ICMPv6 (0x3a)
Hop limit: 255
Source address: fe80::211:9ff:fea6:e8b0 (fe80::211:9ff:fea6:e8b0)
Destination address: ff02::1:ff02:30 (ff02::1:ff02:30)
Internet Control Message Protocol v6
Type: 135 (Neighbor solicitation)
Code: 0
Checksum: 0xc7a7 [correct]
Target: 2001:503:a83e::2:30 (2001:503:a83e::2:30)
ICMPv6 options
Type: 1 (Source link-layer address)
Length: 8 bytes (1)
Link-layer address: 00:11:09:a6:e8:b0
0000
0010
0020
0030
0040
0050
33
00
09
00
05
00
33
00
ff
01
03
11
ff
00
fe
ff
a8
09
02
20
a6
02
3e
a6
00
3a
e8
00
00
e8
30
ff
b0
30
00
b0
00
fe
ff
87
00
11
80
02
00
00
09
00
00
c7
00
a6
00
00
a7
00
e8
00
00
00
00
b0
00
00
00
02
86
00
00
00
00
dd
00
00
00
30
60
02
00
20
01
00
11
00
01
01
33…0….....`.
… :…........
…...........
…..0…..... .
...>.........0..
......
10.7 6to4
10.7.1 Migration
Les protocoles Ipv4 et Ipv6 diffèrent tant par le format des paquets que par l’esprit de leur protocole.
Ils ne sont pas compatibles, il est donc nécessaire de mettre en place des couches d’adaptation
supplémentaires dans l’architecture réseaux. Les objectifs sont doubles
Permettre à des stations Ipv6 de dialoguer entre elles via des réseaux Ipv4 backbone.
(horizontale)
Permettre le dialogue entre terminaux adressés indifféremment en Ipv4 ou Ipv6 (vertical)
IPv6
6to4
6to4
IPv6
IPv4
Cette migration nécessaire a conduit à élaborer le 6to4 qui comprend un certain nombre d’outils : un
format d’adresse 6to4, un protocole 6to4 et des routeurs 6to4.
10.7.2 Adressage 6to4
Pour qu’une station disposant d’une adresse Ipv4 puisse être mise en relation avec une machine Ipv6,
il est nécessaire de modifier son adresse en lui assignant un préfixe Ipv6
Ainsi l’adresse Ipv4 :a.b.c.d aura pour préfixe Ipv6 :2002 :AABB :CCDD ::/48 où AA est la
traduction de a en hexadécimal. Le format complet de l’adresse 6to4 ainsi préfixée sera
2002:AABB:CCDD:[sla]:[interface]
127
Section 4 – Pile TCP/IP
Toutes les adresses préfixées 2002 ::/16 sont reconnues comme des adresses 6to4
IPv6
Adresse 2002:v4
IPv4
6to4
Adresse IPv4
IPv4
1.2.3.4
2002 :0102 : 0304 :: 0102 : 0304
10.7.3 Encapsulation Ipv6 dans Ipv4
Il est possible de faire transiter un paquet Ipv6 dans un réseau Ipv4 en l’encapsulant dans un
datagramme Ipv4 qui indiquera la nature de sa charge utile avec un protocole 41.
DATA
IPv6
IPv4
Protocole 41
Si ce paquet est à destination d’une machine Ipv4 depuis un réseau Ipv6, l’adresse Ipv6 a été préfixée
comme précisé dans le paragraphe précédent. Elle est donc extraite pour être utilisée comme adresse
destination dans le datagramme v4.
IPv6
Adresse IPv6B
6to4
6to4
IPv6B
192.88.99.1
IPv4
Dans le cas où inversement une machine Ipv4 souhaite contacter une station adressée en Ipv6 natif, ou
bien si deux machines Ipv6 natives ont besoin de transiter par un backbone Ipv4, il n’est plus possible
d’utiliser une adresse v4 de destination dans le plan Ipv4. Dans ce cas l’adresse 192.88.99.1 est
utilisée comme adresse destination dans un réseau Ipv4. Elle désigne un routeur 6to4 permettant de
sortir du plan v4. Cette adresse est référencée dans l’ensemble des routeurs Ipv4 et ne désigne pas une
interface en particulier, mais un routeur potentiel permettant d’envoyé des paquets Ipv6 avec des
adresses Ipv6 natives : il s’agit d’une adresse unicast.
Cette adresse unicast (et parfois l’ensemble 192.88.99.0/24) correspondra à une route particulière qui
devra être prise en compte par les protocoles de routage (en particulier BGP, décrit au chapitre 11).
128
Section 4 – Pile TCP/IP
10.8 Sécurité des réseaux IP
10.8.1 VPN- Virtual Private Network
Pour pouvoir étendre un réseau local LAN à travers un réseau global, de nombreuses difficultés se
posent. Cette nécessité est avant tout lié à la simplicité du LAN. On garde ainsi la possibilité de
travailler avec un nombre de machines réduit appartenant à un domaine privé. Mais à travers
l’utilisation d’infrastructures publiques. Dans ce cas l’ensemble de l’infrastructure physique est
assimilé à un “switch virtuel”.
VPN
DATA
IP
Tunnel
IP
Routeur
Routeur
Routeur
Réseau
"Switch Virtuel"
On met donc en place un protocole « tunnel » donc l’objectif est de rendre invisible le réseau sousjacent vis-à-vis des clients. Ainsi les machines clientes du VPN utilisent des protocoles de
“tunnelisation” pour utiliser le réseau de manière transparente. Réciproquement ces clients doivent
être identifiés par le réseau et par tous les autres clients.
Il peut en outre être nécessaire que les communications privées soient confidentielles en utilisant un
chiffrement transparent pour les clients.
On distingue deux grands modèles de mise en oeuvre de ce VPN
Modèle overlay : les routeurs du cœur de réseau sont configurés manuellement pour garantir
les échanges en point à point. Ce modèle est lourd à gérer si le nombre de site à interconnecter
croit (niveau 2). Il impose la participation de l’opérateur pour configurer les routeurs du cœur.
Modèle peer : les routeurs du cœur de réseau ignorent les VPN, seuls les routeurs de périphérie
(d’accès au réseau) sont configurés pour gérer les liens. (niveau 3). Les IP des routeurs de
périphérie sont connus de l’opérateur.
VPN
VPN
CV bout en bout
overlay
Peer
Routeur
Périphérie
Réseau
Réseau
129
Section 4 – Pile TCP/IP
10.8.2 Protocoles tunnels
Il existe un certain nombre de protocoles de VPN selon le niveau OSI considéré. Dans le tableau
suivant on propose quelques exemples qui seront abordés par la suite.
Protocole
OSI
PPTP
Point to Point Tunneling Protocol
2
L2TP
Layer 2 Tunneling Protocol
2
IPSEC
Internet Protocol Security
3/4(UDP)
Secure Socket Layer /
4/5
SSL/TLS
Transport Layer security
(UDP/TCP)
SSH
Secure Shell
7
Chacun de ces protocoles va se substituer au protocole standard afin de garantir le transfert des
données dans les meilleures conditions.
Term inal
Terminal
7 -Applicatio n
7 -Application
6 -Présentation
6 -Présentation
5 -Session
5 -Session
4 -Transport
4 -Transport
Tunnel
3 -Réseau
2 -Liaison
3 -Réseau
2 -Liaison
protocole
tunnelling
protocole
tunnelling
3 -Réseau
3 -Réseau
3 -Réseau
2 -Liaison
2 -Liaison
2 -Liaison
1 -Physique
1 -Physique
1 -Physique
Réseau de transport
Un protocole tunnel de niveau 2
En règle générale le tunnel offre de nombreuses facilités quand il s’agit d’interconnecter des réseaux
dans un modèle ouvert. On empile des protocoles parfois redondants ce qui n’optimise pas les
performances mais simplifie l’interopérabilité.
En terme de sécurité, le tunneling est souvent associé à la notion de confidentialité et de chiffrement
du tunnel, ce qui est un réel avantage, mais peut également présenter une faille puisque les
mécanismes de filtrages extérieurs au tunnel sont inopérants, en particulier pour les tunnels de haut
niveau : http, SSH…
10.8.3 IPSec
Ipsec pour Internet Protocol Security permet de négocier un échange sécurisé et d’encapsuler les
datagrammes échangés avec des techniques chiffrées :
Dans le mode transport, seules les données sont masquées
Dans le mode tunnel, les données et les adresses destination et source sont également masquées
Deux protocoles peuvent être utilisés avec le choix de ces deux modes: AH et ESP
130
Section 4 – Pile TCP/IP
DATA
TCP
IP
TCP
IPsec
IP
Mode Tunnel
DATA
TCP
IP
IPsec
IP
Données Protégées
DATA
Données Protégées
Mode Transport
10.8.4 La traversée de NAT
Une des difficultés posée par les tunnels IPsec est la traversée des routeurs NAT qui modifient
l'adresse source des en-têtes IP. Cette opération sans conséquence pour des services type web où c'est
le client qui initie la connexion, pose des difficultés lorsqu'il s'agit de contacter un hôte NATé à partir
du réseau extérieur.
Client
VPN
NAT
Passerelle
VPN
La solution consiste à utiliser la translation de port (PAT), ce qui oblige le service à avoir un numéro
de port officiel, et donc d'être encapsulé dans UDP ou TCP. Dans le cas d'IPsec en mode transport,
l'adresse IP source doit être connue du destinataire, donc le NAT bloque la mise en place du tunnel car
l'intégrité de l'échange ne peut plus être vérifiée.
IPsec
UDP 4500
IP
Pour cette raison IPsec peut être encapsulé au-dessus de UDP/IP et dans ce cas on utilise le port 4500
pour authentifier la nature de la charge IPSec par UDP. Ce numéro est également utilisé par IKE
(Internet Key Exchange - §10.8.7).
10.8.5 IPSec : Protocole AH
L’ Authentification Header (RFC 2402->4302-4305) est un des deux protocoles permettant de gérer
l’échange de données dans le mode IPsec. Cet en-tête d’au moins 16 octets permet :
En mode transport l’en-tête AH est indiquée par le champ protocole de l’en-tête IP avec le
numéro 51
de protéger l’authenticité, l’unicité et l’intégrité du datagramme émis.
de garantir l’intégrité des champs du datagramme qui ne sont pas affectés par les routeurs lors
du transport: version, longueur en-tête, longueur totale, identification, protocole (51), adresses
IP.
10.8.6 Ipsec : Protocole ESP
L’Encapsulating Security Payload (RFC 2406->4303-4305) est le second protocol pour traiter IPSec
avec un en-tête et un en-queue de tailles variables encapsulant les données. Son principal avantage est
131
Section 4 – Pile TCP/IP
de supporter le chiffrement assurant la confidentialité contrairement à AH. C'est le protocole le plus
utilisé en pratique
32 bits
SPI
Numéro de Séquence
DATA
En-queue
En mode tunnel l’en-tête ESP est indiquée par le champ protocole de l’en-tête IP avec le
numéro 50
l'en-tête est constitué de deux mots de 32 bits: un SPI pour indiquer la nature du flux avec la
SA, et un numéro de séquence pour la reconstitution des données.Les numéros de séquences
permettent en outre d’éviter les rejeux.le SPI (Security Parameters Index) identifie de manière
unique avec l’adresse IP, l’association de sécurité entre les deux points du tunnel.
Un trailer (En-queue) ESP est placée après les données encapsulées avec un éventuel bourrage,
il permet de préciser la portée du chiffrement (transport/tunnel) et l’authentification.
ESP peut assurer la confidentialité (chiffrement) des données protégées
10.8.7 ISAKMP / IKE
Le protocole ISAKMP (Internet Security Association and Key Management Protocol - RFC 2048) est
utilisé en préliminaire à l'établissement du tunnel de chiffrement IPSec. Il est indépendant des types de
chiffrements qui seront choisis. Il assure les associations de sécurité (SA - Security Association) et les
négociations nécessaires aux transport des clés de chiffrement. Ces clés seront elles-mêmes transmises
via un protocole supérieur, comme IKE (Internet Key Exchange) qui utilise la cryptographie à clé
publique via l'algorithme Diffie-Helman.
ISAKMP
IKE
UDP 500
IP
UDP 4500
IP
Une association de sécurité est une définition logique enregistrée dans une base de données du
contexte de sécurité impliquant la mise en relation de deux entités à travers un réseau en utilisant une
clé partagée pour garantir une authentification sûre. Le client transmet ainsi son identité permettant à
la passerelle de lui attribuer les bons paramètres de sécurité : paramètres réseaux, adresses, type de
protocoles d'encapsulation, algorithme de cryptographie, méthodes de négociation, durée de vie des
clés...
Client
VPN
SA - ID
Passerelle
VPN
Transfert certificats
SA établie
132
Section 4 – Pile TCP/IP
IKE possède deux phases dans sa mise en relation : la phase 1 permet d'établir l'association de sécurité
et de définir la première clé de chiffrement. En phase 2, IKE établit les tunnels nécessaires au transfert
des données (au moins deux pour garantir le Full Duplex)..
133
Section 4 – Pile TCP/IP
134
Section 4 – Pile TCP/IP
11. Protocoles de routages
11.1 Généralités
11.1.1 Routage et AS
La topologie à large échelle des réseaux IP nécessite de créer des zones particulières autonomes en
terme de routage Ces zones doivent être administrées localement et doivent également se signaler aux
autres pour pouvoir communiquer.
Un AS (Autonoumous system) est un réseau autonome autorisant toutes les connexions entre les
machines qui sont connectées en interne. Les routes entre ses différents composants sont établies en
s’appuyant sur des protocoles appelés protocole intérieur (ou interne). Il s’agit d’une distinction
administrative. Les numéros d’AS sont attribués par les RIR en lien avec les classes d’adresse IP.
Le raccordement de deux AS impose un nouveau protocole extérieur (ou externe) pour permettre aux
paquets de transiter hors de leur AS.
Routage intérieur
Routage extérieur
Réseau 2
Réseau 1
AS
(Autonomous System)
Protocoles intérieurs
Protocoles extérieurs
RIP (1 et 2)
OSPF
IGRP / EIGRP
EGP
BGP
135
Section 4 – Pile TCP/IP
Réseau autonome
Réseau autonome
EGP/BGP
IGP
RIP/OSPF
Routeur Inter-zone
Gateway
Réseau autonome
On classe ces protocoles également selon leur approche de calculs des meilleurs routes : Vecteur de
distance ou état de lien.
11.1.2 Vecteur de distance
Pour atteindre une machine, on connaît la direction (adresse du premier routeur ou vecteur) et le
nombre de saut pour atteindre cette objectif (nombre de routeurs ou distance). Simple mais peu
efficace.
A
B : R1 - 3
B : R2 - 4
Vecteur de distance
B
R1
Réseau 1
R2
Réseau 2
11.1.3 Etat de liens
Pour atteindre une machine, le routeur ‘racine’ connaît l’ensemble de la topologie du réseau à partir de
lui-même et l’état de chacun des liens entre les divers équipements de façon à choisir la meilleure
route (équilibrage de charges) en fonction de paramètres variés (bande passante, délai, nombre de
saut…). Puissant et efficace mais complexité de calcul des routes.
A
R1
R3
B
R2
R4
B
Etat de liens
B
R3
R1
Réseau 1
R4
R2
Réseau 2
11.2 Protocoles de routages : RIP
RIP est essentiellement un protocole à vecteur de distance. Il en existe 2 versions
136
Section 4 – Pile TCP/IP
11.2.1 Routing Internet Protocol 1 (RFC 1058)
Chaque routeur maintient à jour sa propre table de routage en indiquant par une métrique 0 les réseaux
atteinds de manière directe. Puis il transmet cette table aux routeurs qui lui sont directement connectés
(environ toutes les 30 secondes). La métrique correspond au nombre de sauts (routeurs) à faire pour
atteindre la destination. Une valeur de 15 indique une destination inatteignable (unreachable)
Réseau 4
Routeur 1
eth a
eth b
eth c
eth a'
Réseau 2
eth b'
eth c'
Routeur 2
Réseau 1
Réseau 3
La table de routage du routeur 1 pour RIP sera la suivante :
Routeur 1
IP Destination
IP Réseau1
IP Réseau2
IP Réseau3
IP Réseau4
IP Interface
IPR1
IPR2
IPR3
IPR2
IP Gateway
IPRouteur2
port
eth a
eth b
eth c
eth b
metric
0
0
0
1
L’établissement de cette table est réalisé par la communication à travers le réseau de l’ensemble des
tables des routeurs. Supposons qu’un routeur soit mis sous tension : sa table ne contient que les
routages directes. Il communique à l’ensemble de ces ports un message RIP pour demander aux
routeurs voisins leur table de routage et mettre à jour sa table propre.
Ainsi nous donnons pour exemple la table de routage du routeur 2 et la mise à jour qui s’en suit pour
le routeur 1 :
Routeur 2
IP Destination
IP Réseau1
IP Réseau2
IP Réseau3
IP Réseau4
IP Réseau5
IP Interface
IPR1’
IPR1’
IPR1’
IPR2’
IPR3’
IP Destination
IP Réseau1
IP Réseau2
IP Réseau3
IP Réseau4
IP Réseau5
IP Interface
IPR1
IPR2
IPR3
IPR2
IPR2
IP Gateway
IPRouteur1
IPRouteur1
IPRouteur3
port
eth a’
eth a’
eth a’
eth b’
eth c’
metric
1
0
1
0
5
port
eth a
eth b
eth c
eth b
eth b
metric
0
0
0
1
6
Routeur 1 MAJ
IP Gateway
IPRouteur2
IPRouteur2
En principe, le routeur émet toutes les 30 secondes des réponses RIP contenant les informations de sa
table pour permettre aux routeurs voisins de mettre à jour dynamiquement leurs entrées. de proche en
proche les mises à jour se propagent.
137
Section 4 – Pile TCP/IP
Cependant, ce type de protocole est limité dans son étendu, notamment par le nombre de sauts limite
(en principe 15 au maximum - Sur Internet le nombre maximal de saut peut atteindre 30 à 40) et le
peu de souplesse dans les mises à jour. Il convient à des petits réseaux peu étendus.
En outre, des problèmes de bouclage peuvent apparaître : en effet, si un réseau est supprimé (par
exemple le réseau 1), sa présence dans de nombreuses tables de routage, suite à la propagation via
RIP, risque d’être permanente, bien qu’il n’existe plus. Routeur3 informera Routeur2 qui informera
routeur3…RIP2 permet de corriger ces difficultés.
11.2.2 Architecture et format de paquets
1 octet
1 octet
Command
Version RIP
00 h
00h
Address Family : IP h0002
00h
IP Address
RIP
UDP
IP 17
Ethernet
00h
00h
520
broadcast
00h
00h
00h
00h
00h
00h
00h
Metric
broadcast
les paquets RIP qui contiennent les tables de routages sont transmis dans des trames de Broadcast,
avec des IP de broadcast, dans des segments UDP utilisant le port source et destination 520.
le champ command vaut 1 pour les paquets Request (démarrage d’un routeur), 2 pour les
Response (contenant les tables).
le champ Version vaut 1
le champ IP Address vaut 0.0.0.0 par défaut
Exemple d’une trace d’un datagramme RIP :
No.
Time
1 0.000000
Source
192.168.1.1
Destination
192.168.1.255
Protocol Info
RIPv1
Response
Frame 1 (86 bytes on wire, 86 bytes captured)
Arrival Time: Mar 24, 2006 11:40:24.059101000
Time delta from previous packet: 0.000000000 seconds
Time since reference or first frame: 0.000000000 seconds
Frame Number: 1
Packet Length: 86 bytes
Capture Length: 86 bytes
Protocols in frame: eth:ip:udp:rip
Ethernet II, Src: ZyxelCom_82:6d:e2 (00:a0:c5:82:6d:e2), Dst: Broadcast
(ff:ff:ff:ff:ff:ff)
Destination: Broadcast (ff:ff:ff:ff:ff:ff)
Source: ZyxelCom_82:6d:e2 (00:a0:c5:82:6d:e2)
Type: IP (0x0800)
Internet Protocol, Src: 192.168.1.1 (192.168.1.1), Dst: 192.168.1.255 (192.168.1.255)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 72
Identification: 0x19e2 (6626)
Flags: 0x00
0... = Reserved bit: Not set
.0.. = Don't fragment: Not set
..0. = More fragments: Not set
Fragment offset: 0
Time to live: 1
138
Section 4 – Pile TCP/IP
Protocol: UDP (0x11)
Header checksum: 0x1b73 [correct]
Source: 192.168.1.1 (192.168.1.1)
Destination: 192.168.1.255 (192.168.1.255)
User Datagram Protocol, Src Port: router (520), Dst Port: router (520)
Source port: router (520)
Destination port: router (520)
Length: 52
Checksum: 0x5b8b [correct]
Routing Information Protocol
Command: Response (2)
Version: RIPv1 (1)
IP Address: 0.0.0.0, Metric: 1
Address Family: IP (2)
IP Address: 0.0.0.0 (0.0.0.0)
Metric: 1
IP Address: 212.234.68.168, Metric: 1
Address Family: IP (2)
IP Address: 212.234.68.168 (212.234.68.168)
Metric: 1
11.2.3 Routing Internet Protocol 2 (RFC 1721-1724)
RIPv2 pallie à de nombreux inconvénients : diffusion des masques de sous-réseaux (supporte CIDR),
authentification, gestion de domaines logiques et de routes empruntés par les paquets RIP… Il reste
limité à 15 sauts.
11.3 OSPF
11.3.1 Open Shortest Path First (RFC 1523)
Mis en place pour palier aux insuffisances de RIP, lenteur et inefficacité sur les réseaux étendus, les
chercheurs ont créé un second protocole nommé OSPF. Il est placé directement au-dessus d’IP et est
du type protocole à état de liens. OSPF est un protocole évolué très efficace pour le routage sur des
réseaux de taille moyenne. C’est l’alternative à RIP2. Il est déployé sur les réseaux locaux de taille
moyenne exigeant une grande QoS et une administration efficace. Il permet d’assurer le routage sur
un AS (Autonomous System).entier
La topologie est partagée en aires (area) autonomes au niveau de leur routage. Pour sortir de cette
aire, une route vers un routeur frontalier (ABR) est distribuée sur tous les équipements de l’aire. Il est
alors possible d’accéder à l’aire de backbone qui joue le rôle de réseau fédérateur et permet de router
vers d’autres aires, voir de sortir vers l’extérieur vers un autre AS
ABR
IR
ASBR
Aire 0.0.0.1
Aire 0.0.0 .0
ABR
IR
Backbone area
Aire 0.0.0.2
AS
IR : Internal Router
ABR : Area Boundary Routeur
139
Section 4 – Pile TCP/IP
ASBR : Autonomous System Boundary Router
DR : Designated Router – Routeur chargé de diffuser les messages vers les autres
routeurs de sa zone
BDR : Backup Designated Router – Router DR de secours
Chaque routeur maintient à jour sa propre topologie du réseau en signalant à tous les autres
routeurs l’état de ses propres liens (disponibilité, modification, coûts…).
La métrique est alors calculable à partir de multiples paramètres (saut, délais, bande
passante…) .
Il utilise les paquets OSPF fournis par les autres routeurs pour calculer les routes (algorithme
de Dijkstra).
OSPF autorise deux niveaux de routage : intra-zone et inter-zone (ou aire/area) en subdivisant
l’AS en un certain nombre de zones ne dépassant pas 50 routeurs.
Gère les masques CIDR et l’agrégation de routes
Les routeurs OSPF s’échangent périodiquement leur adresse et l’adresse des routeurs et réseaux
auxquels ils sont reliés et l’état du lien. Ce paquet OSPF va se propager à travers l’ensemble du réseau
et permettre à tous les routeurs de s’établir sa propre topologie du réseau. Ainsi, contrairement à RIP,
le routeur ne prend plus sa décision sur un nombre de saut minimal, mais sur un ensemble intégrant la
topologie et l’état des liens du réseau. Chaque routeur se considère alors à la racine de l’ensemble du
réseau et établi le chemin le plus court (Shortest path) de son point de vu pour router les paquets.
11.3.2 Architecture et format de paquets
OSPF est un protocole applicatif de niveau 4 qui implique des fonctionnalités réseaux IP. Il utilise des
adresses de diffusion IP et MAC multicast. Il existe deux adresses IP possibles selon que l’on
communique avec tous les routeurs à l’intérieure d’une aire ou en avec le routeur désigné.
1 octet
1 octet
Version
Type
Longueur du message
IP routeur source
Identification zone
Total de controle
OSPF
IP 87
Ethernet
Authentification Type
224.0.0.5
224.0.0.6
intra-zone
01:00:5E:x
Multicast
Authentification Data
vers l'IR
DATA
11.3.3 Types de paquets
Il existe 5 types de paquets identifiés par le champs type d’un octet de l’en-tête de paquets.
Type 1
Type 2
Type 3
Type 4
Type 5
Hello – détermine le délai
Data Base Description – topologie
Link State Request – Etat de la liaison
Link State Update – Mise à jour
Link State Acknowledge - Acquittement
Type 1 : Le protocole Hello vérifie la connectivité, élit le routeur désigné (IR). Il permet de
maintenir les liens comme valide en diffusant la liste des routeurs voisins et en mesurant les
délais. En principe on transmet un paquet Hello toutes les 10 secondes. Si aucun paquet n’est
reçu après 40 secondes, le lien est considéré comme rompu (intervalle de mort).
Type 2 : Les messages de type 2 contiennent un ensemble d’information permettant de dresser
la topologie : MTU, Le type des routeurs, l’état des liens…
140
Section 4 – Pile TCP/IP
Type 3 : ce type de message permet de demander des informations manquantes après réception
des paquets de type 2 sur certaines routes manquantes ou en cas d’informations trop âgées.
Type 4 : Il permet d’envoyer les messages de mises à jour des informations demandées.
Type 5 : suite à la réception d’un message de type 4, et après vérification que les informations
sont plus récentes, le routeur acquitte sur la route empruntée avec le type 5 et informe sur ces
autres interfaces.
11.3.4 Avantages et inconvénients
OSPF est un protocole complexe à appréhender et à mettre en oeuvre. Il permet de résoudre les défaut
de RIP (gestion des masques, équilibrage de trafic, économe en paquets…) et garantit une QoS et une
évolutivité du réseau. L’adoption de ce protocole permet une gestion fine au détriment de la
complexité et des ressources à mobiliser en terme de calculs, de connaissance et d’administration..
11.4 EIGRP
11.4.1 Enhanced Interior Gateway Routing Protocol (Cisco)
Protocole propriétaire évolution de IGRP. Il utilise de nombreuses techniques pour garantir un routage
optimal : métrique intégrant le délai, la bande passante, la fiabilité, la charge… et configurable par
l’administrateur. Protocole à vecteur de distance, chaque routeur communique avec ses voisins les
destinations et métriques associées. Il met en œuvre 4 technologies :
Neighbor discovery/Recovery – Vérifie la connectivité avec ses voisins (hello message)
Reliable Transport Protocol – Vérifie l’acheminement des paquets
DUAL finite-State Machine – Calcul des routes
Protocol-dependant Module – Responsable de la couche réseau utilisé (IP).
11.4.2 Architecture et format de paquets
1 octet
1 octet
Version
OpCode
Checksum
Flags
EIGRP
IP 88
Ethernet
Sequence
224.0.0.n
Acknowledge
Autonomous System
01:00:5E:x
DATA
11.4.3 Types de paquets
Hello/Ack
Update
Query
Reply
Requests
Spécifie le routeur comme actif – Ack : pas de données
Transporte les données pour construire la topologie
En cas d’absence de successeur pour une destination
141
Section 4 – Pile TCP/IP
11.5 BGP
11.5.1 Border Gateway Protocol (RFC 4271)
BGP est le protocole couramment utilisé pour résoudre les problèmes de routage inter-domaine (entre
systèmes autonomes – AS) : Perte de routes et routage dynamique, routage politique, harmonisation
des métriques internes aux AS et aux différents protocoles internes. Il est du type protocole à vecteur
de distance.
BGP
AS 2
AS 1
AS 3
BGP est un service d’échange en mode connecté actif sur les routeurs (port TCP 179). Il existe une
version interne (iBGP) utilisé sur l’AS pour communiquer avec les routeurs voisins et un eBGP pour
discuter avec les autres AS.
Chaque AS est identifié par un numéro (de 0 à 65535) public attribué par les organismes qui
attribuent également les adresses IP (IANA). La plage 64512-65535 est réservée aux usages privés.
BGP 4 est la version actuellement exploitée. BGP peut présenter des failles de sécurité sur l’annonce
des « meilleures » routes.
11.5.2 Architecture et format de paquets
1 octet
1 octet
hFF
hFF
hFF
BGP
TCP
IP 06
Ethernet
hFF
Marker
hFF
hFF
hFF
hFF
hFF
hFF
hFF
hFF
hFF
179
hFF
hFF
16 octets FF
hFF
Longueur
Type
DATA
Un paquet BGP est constitué d’un en-tête fixe suivi d’une ou plusieurs en-têtes spécifiques. Un même
paquet peut contenir plusieurs messages BGP concaténés. On précise les 4 types de messages BGP :
1
2
3
4
OPEN message
UPDATE Message
NOTIFICATION Message
KEEP ALIVE message
142
Section 4 – Pile TCP/IP
11.5.3 Annonces de routes BGP
Le principe de BGP est de faire circuler entre les AS des annonces de route et de relayer les
informations avec les AS voisins via les messages UPDATE. Chaque AS ajoute aux annonces son
propre numéro. Il est ainsi important de distinguer deux types d’AS :
Les AS de transits qui transmettent les routes provenant des autres AS et annoncent leurs propres
routes, c’est à dire les plages d’adresses qui les concernent. En interne iBGP permet de relayer les
messages entre les routeurs de frontière.
Les AS de non-transits qui annoncent ses propres routes et celles venant de clients mais ne
propagent pas les routes apprises des autres AS de non-transits ou par des peers, c’est à dire les AS
auxquels il est directement connecté avec eBGP.
AS_PATH(1)
AS_PATH(1,2)
AS 2
AS 1
AS 5
AS_PATH(1)
AS_PATH(1,3,4)
AS 4
AS 3
AS_PATH(1,3)
C’est aux routeurs BGP de retenir les routes valides, en générales les plus courtes, et d’éliminer les
éventuelles boucles, c’est à dire les routes contenant son propre numéro. Les problèmes de sécurité
concernant BGP seront évoqués ultérieurement dans l'espace-temps.
11.5.4 Agrégation de routes
L’agrégation de route est une approche géographique du plan d’adressage IP qui permet d’éviter une
explosion de la taille des tables de routage. C’est une application directe du routage CIDR (§10.3.3) et
du principe du masque de taille variable. Il est possible d’annoncer une route globale avec un masque
de petite taille puis au fur et à mesure de la progression, d’annoncer des routes de plus en plus
précises : c’est le principe de l’adresse postale.
196.33.22.0/24
Annonce de routes BGP:
Agrégation
196.33.22.0/26
196.33.22.64/26
AS 3
AS 1
AS 2
196.33.22.128/26
Bien entendu cette approche impose une répartition hiérarchique et coordonnées des adresses IP et des
numéro d’AS. C’est encore de le rôle des RIR. Les FAI ont alors la responsabilité d’annoncer leurs
propres routes.
Un (gros) problème de BGP est que l'annonce de routes plus précises est prioritaire sur l'annonce des
routes globales. Sur notre exemple, si une AS4 non représentée sur le schéma annonce une route
196.33.22.0/25, plus précise que 196.33.22.0/24, c'est lui qui recevra le trafic à destination des hôtes
196.33.22.1 à 196.33.22.126: c'est un détournement de trafic.
143
Section 4 – Pile TCP/IP
11.6 MPLS
11.6.1 Routage vs commutation
Il est important de bien distinguer ces deux fonctions qui sont complémentaires dans l’interconnexion
des réseaux. Le tableau résume schématiquement les principales différences entre ces deux approches.
COMMUTATION
ROUTAGE
Niveau OSI
2 - Liaison
3 - Réseaux
Connexion
Point à point
Inter-réseaux
Aiguillage
Commutation sur étiquette unique
décision sur l’adresse et consultation
d’une table
Rapidité
OUI
NON
Souplesse
NON
OUI
Cet antagonisme à conduit à l’élaboration de technique permettant d’associer la simplicité et la
rapidité de la commutation à la souplesse et l’indépendance du routage. La solution est l’approche de
la commutation sur voie virtuelle, et a été retenue avec X25 ou ATM. Dans ce cas, le chemin initialisé
lors du premier échange de paquets est mémorisé par le réseau et réutilisé pour l’ensemble du trafic
entre les deux points.
voie virtuelle entre A et B
B
A
Commutateur
Réseau
En cas de rupture de ce chemin (panne, encombrement, erreurs…) la connexion est perdue et doit être
réinitialisée. En outre, l’utilisation optimale des ressources n’est pas forcément garantie sur la durée.
Cependant, sur des réseaux cœurs fiables et évoluant très peu en topologie, cette approche est
intéressante.
Le routage IP est excessivement coûteux en calculs et donc en temps. Afin d’alléger le routage, les
réseaux cœurs ont allégés la tâche en utilisant ce principe de la commutation de voie virtuelle avec
MPLS.
11.6.2 Multi Protocol Label Switching (RFC 4271)
L’idée est donc de remplacer la fonction routage par une fonction commutation plus rapide.. On peut
résumer MPLS avec les caractéristiques suivantes :
MPLS est une couche intermédiaire du modèle OSI : 2,5 – Avantage de la commutation
(niveau 2) et du routage (niveau 3)
144
Section 4 – Pile TCP/IP
Les routeurs/commutateurs dressent et s’échangent une table de label en s’appuyant sur les
routes établies par les protocoles de routages (RIP, OSPF,BGP…). Il n’est pas un protocole de
routage mais une technique complémentaire.
MPLS gère l’agrégation de route en périphérie (ajout de nouveau réseau sans modifier le
réseau cœur)
@IPB
@IPA
label a|W label d|Z
@IPA->@IPB
Z
@IPA->@IPB W
label a
X
@IPA->@IPB
@IPA->@IPB
label h
label d
@IPA->@IPB
Routeur périphérique LER
Y
route LSP
commutateur LSR
IP/MPLS
Principaux constituants du réseau :
LSR : Label switch Router – intègre un routeur IP et un commutateur de label
LER : Label Edge Router – permet d’accéder (ingress) ou de sortir (egress) du plan MPLS
LSP : Label Switched Path : route unidirectionnelle suivie par tous les paquets.
11.6.3 Architecture et format de paquets
IP
1 octet
label MPLS-s=1
1 octet
LABEL (20 bits)
label MPLS-s=0
Exp
802/ATM/FR/PPP
S
TTL
Exp : Expérimental
S : bit stack ; 0 signale un empilement de label, 1 pour indiquer la fin de la pile (denier label
avant datagramme)
TTL : TTL du datagramme IP recopié à l’entrée par le LER, décrémenté à chaque traversée de
commutateur, recopié dans le datagramme IP à la sortie : les commutateurs sont ainsi
comptabilisés dans le TTL
11.6.4 Mécanismes MPLS
Lors de son entrée dans un réseau MPLS, le datagramme est encapsulé avec le label extrait de la table
du commutateur de périphérie (LER) et envoyé vers le prochain commutateur MPLS. Ce dernier se
contentera de lire le label à son arrivée et de le remplacer par un nouveau label avant d’orienter vers le
prochain LSR. Il n’y a aucun contrôle d’entête IP et donc de route de destination. Le datagramme
encapsulé suivra naturellement le LSP (voie virtuelle). Si le plan de labels MPLS a été
convenablement établi, le datagramme parviendra au LER de sortie ou le label sera dépilé.
145
Section 4 – Pile TCP/IP
3. Commutation
datagramme
1. Arrivée
du paquet
@IPA->@IPB
label a
@IPA->@IPB
Z
W
2. Consultation
table labels|ports label a|W
label d|Z
label d
5. Transmsion
du paquet sur
le port de sortie
4. Nouveau
Label
Cette approche est similaire à du tunnelling du point de vue du client final. Cependant, le champs TTL
sera affecté par la traversée du réseau MPLS qui n’est donc pas entièrement transparent.
11.6.5 Protocole LDP (RFC 3036) – Label distribution protocole
Afin de construire les différents LSP, il faut bien entendu dresser l’ensemble de la topologie du
réseau. L’approche manuelle devenant très délicate pour les réseaux de grande taille, l’ensemble des
protocoles de routages IP sont supportés par les commutateurs MPLS de façon à identifier les
meilleures routes internes.
Le protocole LDP est alors mis en œuvre pour permettre aux commutateurs d’échangés leur label. Il
utilise UDP en multicast pour s’identifier avec les commutateurs voisins (découverte de nouveaux
liens) et TCP (port 676) pour établir des sessions d’échanges
11.7 Protocoles de routages : comparatif
RIP
OSPF
EIGRP (Cisco)
Routage intérieur
BGP
Routage extérieur
philosophie
Vecteur de distance
Etat de lien
Vecteur de distance
Métrique
Sauts
Coût configurable
Coût configurable
Taille
Limitée (<15)
Illimitée
Hiérarchique
Non
Oui
Charge réseau
élevée
faible
faible
Durée de
convergence
Longue
courte
courte
Masques réseaux
v1 : non v2 : oui
oui
Authentification
v1 : non v2 : oui
oui
Equilibrage de
charge
non
oui
oui
Encapsulation
UDP :520
UDP :87
IP :87
146
Un peu des deux
Illimitée
non
oui
Oui (BGP-4)
oui
TCP :179
Section 4 – Pile TCP/IP
12. TCP
12.1 Description niveau OSI 4
12.1.1 Connexions transport
La fonction de base de la couche transport est d’accepter des données de la couche session (niveau 5),
de les découper, le cas échéant, en plus petites unités, de les passer à la couche réseau et de s’assurer
que tous les morceaux arrivent correctement de l’autre côté. De plus, tout cela doit être fait de façon
efficace et en prévenant les couches supérieures des inévitables évolutions technologiques du matériel.
pile OSI
pile OSI
OSI 5
OSI 5
couche session
OSI 4
OSI 4
couche transport
OSI 3
OSI 3
couche réseau
OSI 2
Réseau
OSI 1
OSI 2
OSI 1
Normalement, la couche transport crée une connexion dite de bout en bout à travers la couche réseau,
connexion requise par la couche session. Cependant, si la connexion de transport requiert un débit
rapide, la couche transport peut créer de multiples connexions réseau, sur lesquelles elle répartit les
données pour améliorer le débit. A l’inverse, dans le cas ou la création et le maintien de la connexion
sont coûteuse, la couche transport peut multiplexer plusieurs connexions transport sur la même
connexion réseau pour réduire le coût. Dans tous les cas, la couche transport à pour tache de rendre ce
multiplexage transparent à la couche session.
147
Section 4 – Pile TCP/IP
pile OSI
pile OSI
pile OSI
pile OSI
couche session
couche transport
couche réseau
Réseau
Réseau
Eclatement - Accélération de la connexion trasnsport
Multiplexage - optimisation de la con nexion trasnspor
12.1.3 Conclusion
En résumé, la vocation de la couche transport est de fournir à l’utilisateur, qui est en principe un
processus de la couche application, un service de transport efficace, fiable et économique. Pour
remplir cette fonction, la couche transport utilise des services mis à sa disposition par la couche
réseau. Les relations qui existent entre les couches réseau, transport et application sont illustrées ci–
dessous.
pile OSI
Traitement de
données
pile OSI
Session
Transport
Transmission
fiable de
données
Réseau
Réseau
Comme la couche réseau, la couche transport permet deux types de services : avec ou sans connexion.
Le service transport avec connexion ressemble par bien des points au service réseau avec connexion.
Dans les deux cas, les connexions passent par trois phases : établissement, transfert, libération. Quant
au service transport sans connexion, il est logiquement très proche du service réseau sans connexion.
Par son essence même, l’existence de la couche transport permet d’avoir un service transport plus
fiable que le service réseau sous-jacent. Les paquets perdus et les données alternées peuvent être
détectées et ré organisées par la couche transport.
12.1.4 Notion d’adresses logiques
pile OSI
couche session
A dre sse t rans port
applicat ion lo gicie lle
couche transport
A dre sse machine
ré s eau
couche réseau
A dre sse port
mat é rie l
couche liaison
L’adresse transport sert à définir le service fourni ou demandé par la machine.
La connaissance de cette adresse transport peut nécessiter un protocole spécifique ou la consultation
d’un service d’annuaire pour la résolution d’adresse. Dans le cas TCP ces adresses sont pour une part
réservées et un numéro affecté historiquement à un service.
148
Section 4 – Pile TCP/IP
12.2 Qualités de Service
12.2.1 Services
La couche transport est une authentique couche de bout en bout, de l’émetteur au destinataire. En
d’autres termes, un programme de la machine source soutient une conversation avec un programme
similaire sur la machine destinataire en utilisant les messages d’en-tête et de contrôle. Pour les
couches plus basses, les protocoles agissent entre machines voisines et non entre les machines
d’extrémité, source et destinataire, qui peuvent être séparées par un grand nombre de routeurs.
On doit pouvoir disposer pour chaque machine de plusieurs connexions entrantes et sortantes. Il est
alors nécessaire d’indiquer quel message appartient à quelle connexion.
En plus du multiplexage de plusieurs messages sur un canal, la couche transport doit gérer
l’établissement et le relâchement des connexions sur le réseau. Cela nécessite un mécanisme
d’adressage permettant au processus initiateur d’indiquer avec qui il veut converser. Il doit également
exister un mécanisme de régulation de flux de telle sorte qu’une machine hôte rapide ne sature pas une
machine plus lente. C’est ce mécanisme qu’on appelle contrôle de flux et qui joue un rôle clé dans la
couche transport. Le contrôle de flux entre hôtes est différent de celui entre routeurs.
12.2.2 Notion de QoS
Une autre façon de définir la couche transport est donc de l’envisager dans son rôle de garant de la
qualité de service (QoS pour la Quality of Service) fournie par la couche réseau. Si la couche réseau
est sans faille, la couche transport a un travail très simple. En revanche, si la qualité du service de la
couche réseau est faible, la couche transport comble le fossé entre ce que désire l’utilisateur en termes
de qualité et ce que la couche réseau met à sa disposition.
Au premier coup d’œil, la notion de qualité de service est vague, mais nous allons illustrer notre sujet
en étudiant certains de ces paramètres. Le service de transport permet de distinguer pour ces
paramètres trois types de valeurs : préférée, acceptable, inacceptable, qui sont choisies lors de
l’établissement d’une connexion.
12.2.3 Les paramètres de QoS :
Temps d’établissement de connexion :
C’est la durée qui s’écoule entre l’émission d’une demande de connexion par l’utilisateur et
la réception de sa confirmation. Elle inclut en particulier, le temps de traitement de la
demande par l’entité éloignée. Bien sûr, plus ce temps est court, meilleure est la qualité de
service, comme dans tous les problèmes de délai.
La probabilité d’échec d’établissement :
Elle mesure le risque qu’une connexion ne puisse s’établir dans u délai maximum défini, à
la suite, par exemple, d’un engorgement du réseau, d’un manque d’espace en table ou de
tout autre problème interne.
Le débit de la liaison :
Il donne le nombre d’octets utiles qui peuvent être transférés en une seconde ; le débit est
estimé séparément pur chaque sens de transmission.
Le temps de transit :
C’est le temps écoulé entre le moment où l’utilisateur du service de transport envoie un
message et celui où l’entité de transport réceptrice le reçoit effectivement. Comme pour la
mesure du débit, cette estimation doit être faite pur les deux sens de transmission.
Le taux d’erreur résiduel :
149
Section 4 – Pile TCP/IP
C’est le rapport du nombre de message perdus ou mal transmis au nombre total de
messages transmis pendant une période donnée. En théorie, ce nombre devrait être nul,
puisque c’est justement la tache de couche transport que de s’affranchir des erreurs. En
pratique, ce nombre a une valeur ( faible) non nulle. Voir paragraphe suivant.
La protection :
Elle est définie comme étant la possibilité laissée à l’utilisateur d’interdire à un terminal
tiers l’intrusion ou l’interférence sur la ligne pour lire ou modifier les données transmises.
La résiliation :
Ce paramètre est la probabilité que la couche transport décide d’elle-même de la
déconnexion suite à un engorgement ou à des problèmes internes.
Il se peut aussi que la couche transport s’aperçoit de l’impossibilité d’atteindre l’objectif désiré, mais
qu’elle puisse réaliser un objectif moins ambitieux mais encore acceptable. Elle renvoie alors à
l’ordinateur distant la demande de connexion avec le nouvel objectif ainsi que la valeur minimale
autorisée. Si à son tour, celui-ci ne peut réaliser la valeur proposée, mais peut rester au-dessus du
minimum autorisé, il rejette purement et simplement la demande de connexion. La couche transport
avertit l’utilisateur de la bonne fin ( ou non ) de la procédure de connexion, et lui transmet, le cas
échéant, les paramètres acceptés par les différentes entités.
Cette procédure s’appelle négociation des options. Une fois les options négociées, elles demeurent
inchangées pendant toute la durée de la connexion. Il faut savoir que l’opérateur de réseaux peut leur
prix en fonction de la qualité de service.
12.2.4 Le taux d’erreur :
On distingue en réalité deux taux d’erreur :
Le taux d’erreur signalé ( TES ) : Erreurs signalées par la couche réseau mais non corrigées.
Le taux d’erreur résiduel ( TER ) : Erreurs non signalées ( ou non détectées ).
Important : Théoriquement le taux d’erreur résiduel est nul
On distingue trois types de réseaux :
Type
A
B
C
TES
Faible
Elevé
Elevé
TER
Faible
Faible
Elevé
Afin d’améliorer la QoS, on dote la couche transport de ″ facilités ″ pour récupérer les erreurs des
classes de transport en fonction des types de réseaux définit ci-dessus.
Type
A
B
C
Classe
0-2
1-3
4
En schématisant on peut dire que les classes 0 et 2 s’adaptent aux réseaux du type A qui
correspondent à un service réseaux évolué comme celui des réseaux X25. La classe optimale est
nécessaire sur les réseaux du type C offrant un service réseaux de liaison en mode non-connecté.
Le tableau ci-dessous récapitule pour les cinq classes de transport les possibilités ou mécanismes
autorisés. La classe 0 ou la classe minimale n’autorise ni le multiplexage ni la reprise sur erreur. La
classe 2 autorise le multiplexage, adaptée aux réseaux à commutation de paquet du type A, elle est la
plus utilisée en téléinformatique. La classe 4 autorise tout les mécanismes ; c’est la seule utilisable en
mode non-connecté pour une transmission fiable.
150
Section 4 – Pile TCP/IP
Le choix de la classe se fait par négociation au niveau 4, la couche transport émettrice propose une
classe préférentielle, et une couche acceptable ( de substitution ) à la couche transport réceptrice.
Mécanisme / Classes
Segmentation / Réassemblage
Concaténation / Séparation
Multiplexage / Eclatement
Contrôle de flux
Numérotation TPDU (séquencement)
Données express
Reprise sur erreurs détectées et
signalées
Détection d’erreur sur TPDU
0
Oui
Non
Non
Non
Non
Non
Non
1
Oui
Oui
Non
Non
Oui
Oui
Oui
2
Oui
Oui
Oui
Oui
Oui
Oui
Non
3
Oui
Oui
Oui
Oui
Oui
Oui
Oui
4
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Non
Non
Non
Non
Oui
12.3 Le niveau 4 de TCP/IP
12.3.1 Pile TCP/UDP sur IP
En dehors du protocole de transport du modèle OSI, on trouve d’autres protocoles :
TCP Transport Control Protocol (Protocole IP : 6), proposé par le DoD au-dessus de IP,
qui fournit un service en mode connecté ou fiable. Ce protocole a une approche de
transfert de flux d’octets.
UDP User Data Protocol (Protocole IP : 17),, qui fournit un service en mode non
connecté, donc non fiable mais plus rapide (si la liaison est sûre). UDP assure le transfert
de messages uniques.
4
TCP
3
UDP
IP
Mode connecté
TCP
TCP
IP
Mode non connecté
IP
Dans le modèle TCP/IP, TCP travaille donc en mode connecté sur IP qui est non-connecté.
TCP/IP se situe par rapport au modèle OSI entre les couches RESEAUX et SESSION et prend en
compte le transport comme le montre la figure suivante :
151
Section 4 – Pile TCP/IP
TCP
TCP
IP
IP
IP
Réseau
PPP
Ethernet
Sous - réseau
physique
Application
802.n
Transmission
fiable de
données
pile TCP/IP
X25
Traitement de
données
Station
Routeur IP
Station
12.3.2 Encapsulation TCP/IP
Le protocole internet IP étudié précédemment constitue une sous-couche réseau et permet la passerelle
inter-réseaux. TCP regroupe fonctionnellement les couches TRANSPORT et SESSION du modèle de
référence OSI. La couche IP ne donnant aucune garantie de bonne remise des datagrammes, TCP doit
gérer un temporisateur et retransmettre, si nécessaire, les données perdues. De plus, les datagrammes
peuvent très bien arriver dans un ordre différent ; TCP doit être capable de les rassembler en messages
correctement ordonnés.
TCP doit assurer la fiabilité qu’exigent la plupart des utilisateurs mais qu’IP n’est pas en mesure
d’offrir. Chaque datagramme encapsulera en conséquence une en-tête TCP qui contiendra les
éléments nécessaires pour assurer ces services.
Exemple d’encapsulation TCP/IP sur un réseau LAN
Données
en-tête
TC P
en -tête
IP
en-tête
MA C
en-tête
TC P
en-tête en-tête
IP
TC P
12.4 Le modèle de service TCP
12.4.1 Architecture Client-serveur
Il existe plusieurs modèles de comportement lors d’un échange d’information entre plusieurs points.
Citons entre autre :
Le modèle client / serveur
Le modèle Consommateur / producteur
Le modèle Maître / esclave
Dans le premier Cas, un serveur désigne une entité réseau qui dispose d’un programme, aussi appelé
service ou démon au sens grec (daemon), qui « écoute » les requêtes émanant du réseau afin de les
152
Section 4 – Pile TCP/IP
traiter. Ces requêtes sont identifiées par un numéro de port dans le modèle TCP afin de s’adresser au
bon service.
Le client adresse sa requête à partir d’un numéro de port source à la volée pour l’envoyé à un numéro
de port bien précis (Well Known Ports) (§2.2.1). Un serveur désigne par extension l’entité qui assure
le service.
12.4.2 Notion de port
Les numéros de port peuvent être considérés comme des adresses d’applications identifiant les
protocoles de couches supérieures qui seront encapsulés dans TCP (ou UDP). Du point de vue
logiciel, ce port identifie un service ou daemon qui est un programme apte à recevoir les paquets qui
porteront le même numéro.
Service
N° port
Paquet TCP
UDP
Réseau IP
Un numéro de port est codé sur 16 bits et identifie de manière non équivoque la nature de
l’application concernée par les données encapsulées.
Applications
N ° p o rt
N ° p o rt
N ° p o rt
N ° p ort
TCP/UDP
Toutes les connexions TCP sont bidirectionnelles et en mode point à point. Bidirectionnelle signifiant
que les données peuvent circuler dans les deux sens simultanément. Point à point signifiant que
chaque connexion est définie par deux points d’extrémité et deux seulement. TCP ne permet ni la
multidistribution (multicasting), ni la diffusion générale (broadcasting).
Une connexion impose donc deux numéros de port : un numéro source et un numéro destinataire. Les
numéros de port sont réservés seulement pour le destinataire. l’émetteur choisit pour lui comme
numéro de port source un numéro de port aléatoire (au dessus de 1024). En effet, l’émetteur sait quel
service l’intéresse, il n’a besoin de mobiliser que le numéro de port destinataire concerné. Cela lui
permettra en outre de pouvoir établir des connexions multiples avec des numéro source différents
mais sur une même machine et un même service destinataire.
Service n
connexion
Service n
N° po rt so urce x
N° po rt d est n
N° p o rt so urce x
N° po rt d est n
TCP/UDP
153
Section 4 – Pile TCP/IP
12.4.3 Well Known Ports
Les ports dont les numéro sont inférieures à 1023 sont appelés Port réservés (Wellknown ports) et
sont utilisés par les services les plus courants. Par exemple, Pour accéder à un serveur web, on
utilisera le numéro de port 80 qui désigne officiellement les applications supportant le protocole http
pour l’échange des pages HTML.
Ces numéros identifient donc des services et sont associés au logiciel aussi appelé serveur. Le tableau
donne une liste non exhaustive de ces numéros.
SERVICE
N°PORT
FTP
SSH
telnet
SMTP [MAIL]
http [WEB]
ISO – 4 TSAP
POP [mail]
epmap [WinXP]
netbios
21
22
23
25
80
102
110
135
137/138/139
Les numéros de port au-dessus de 1024 et jusqu’à 65535 sont libres d’usages pour des services
propriétaires ou pour des ports clients ou ports sources.
12.4.4 Sockets
L’affectation d’un numéro de port n’est pas suffisant pour identifier une connexion : il faut y ajouter
l’adresse IP du destinataire et celle de la source. Ainsi, pour avoir un service TCP (flux, type
d’application, fiabilité…), il faut créer deux points de connexions appelées sockets ou points
terminaux : l’un côté client, l’autre côté serveur. La socket est l’association du numéro de port et de
l’adresse IP locale. Le client utilise son numéro de port source pour s’adresser au port destination du
serveur.
Client
Serveur
port_S
port_D
IP_A
IP_B
On dispose donc d’un couple de sockets pour identifier la connexion bidirectionnelle en mode point à
point.
IP
IP_A
IP_B
Port
Port_S
Port_D
Socket
IP_A:Port_S
IP_B:Port_D
195.22.33.14
80
195.22.33.14 :80
L’intérêt de cette socket est de permettre l’opération de multiplexage/démultiplexage : sur une même
machine cible le même port peut être disponible simultanément pour plusieurs machines distantes.
On peut utiliser un socket simultanément pour plusieurs connexions. En d’autres termes, deux
connexions ou plus, peuvent aboutir au même socket. Les connexions sont identifiées par les
identifiants des sockets des deux extrémités, c’est-à-dire socket source, socket destination. On utilise
donc ni numéro de circuit virtuel, ni autre identifiant.
154
Section 4 – Pile TCP/IP
12.4.5 Principe de gestion
Une connexion TCP correspond à un flot d’octets et non de messages. La seule contrainte de taille
théorique est que l’ensemble doit être transporté dans des datagrammes de taille inférieure à 65535
octets (dû au codage de la longueur du champ IP de 16 bits).sinon le protocole inférieur IP devra
couper les paquets TCP. (en pratique la MTU – Maximum Transport Unit – est inférieure à 1,5ko sur
les réseaux IP/Ethernet)
Quand une application fournit des données à TCP, TCP peut à sa guise les envoyer immédiatement ou
les stocker (en regroupant le plus grand nombre, afin de les envoyer en une seule fois). Il arrive
cependant que l’application ait besoin d’envoyer immédiatement les données. Par exemple, supposons
qu’un utilisateur soit connecté à une machine distante ; après sa saisie d’une ligne de commande et la
frappe de la touche retour-chariot, il est essentiel que la ligne soit envoyée immédiatement vers la
machine distante et non mise dans un tampon en attendant la ligne suivante. Pour forcer l’expédition
des données, les applications envoyant des données peuvent utiliser le drapeau PUSH (pousser) qui
indique à TCP au niveau récepteur de ne pas retarder la transmission.
12.4.6 Principe du protocole TCP
Un point important dans la gestion de la connexion TCP est l’usage des temporisations qui permet de
résoudre les problèmes de pertes non signalées, ou de paquets perdus. TCP envoi un TPDU, appelé
encore segment TCP, et déclenche un temporisateur, s’il ne reçoit pas d’ACK avant l’écoulement du
temps imparti, il ré émet les infos. Cette durée est appelée RTO (Retransmission Time Out) et a une
grande influence sur les performances : trop courte elle provoque des retransmissions inutiles et trop
longue elle bloque la transmission.
RTO
temporisation 1
temporisation 2
A
Reprise sur
temporisation
B
data 1
data 2
Ack 1
data 3
data 2
RTT
Ack 3
Ack 2
Si l’acquittement arrive néanmoins, mais après la fin de la temporisation, il est en principe ignoré par
l’émetteur des TPDU.
La durée entre l’émission et la réception de l’ACK est appelée RTT (Round Time Trip) et permet
d’évaluer la durée d’aller retour des messages. Il permet d’ajuster la valeur du RTO.
155
Section 4 – Pile TCP/IP
12.4.7 Contrôle de flux
Le principe du contrôle de flux dit explicite utilisé par TCP passe par l’utilisation d’une fenêtre de
taille variable indiquant au point terminal de la connexion TCP le nombre d’octets maximal qu’il peut
envoyer. Ce principe de fenêtre glissante a déjà été présenté dans le cas de HDLC : le nombre d’octets
transmis et non acquittés doit être inférieur à la valeur de la fenêtre.
Cette méthode nécessite la mise en place d’une gestion fine de la valeur de cette fenêtre ; on observe
des pertes de performances dommageables pour le transfert de flux important en cas de congestion : la
mise à zéro de la fenêtre bloquant le flux, il faut alors déterminer avec justesse sa valeur en fonction
de la taille du buffer de réception et sa vitesse de traitement par le processus (SWS- Silly Windows
Syndrome).
Cette fenêtre annoncée par le récepteur est différente de la fenêtre de congestion qui elle est estimée
par l’émetteur en fonction des pertes constatées : on parle de congestion, signalée par une absence
d’accusé de réception. Le procédé utilisé en général est le slow start, c’est à dire que la fenêtre de
congestion de 1 au démarrage double ensuite tant qu’il n’y a pas de pertes de données détectées. En
cas de pertes, on abaisse la taille de cette fenêtre et on l’augmente de manière linéaire, donc moins
vite : c’est l’évitement de congestion (Congestion Avoidance). L’algorithme le plus répandu est TCP
Reno, car le TCP Tahoe impose un redémarrage à zéro.
Fenêtre de
congestion
Fenêtre de
congestion
Perte
Congestion
Avoidance
Perte
Perte
Perte
Slow start
TCP Tahoe
Temps
TCP Reno
Temps
Il existe d’autres algorithmes de gestion (Newreno, Vegas, Westwood…) en fonction de divers
paramètres : évolution des ACK, mesure des durées de Round Time Trip (RTT - aller-retour),
temporisation…
12.4.8 TCP sécurisé
Les connexions TCP sont par défaut en clair. Il n’existe pas de chiffrement natif des informations qui
circulent. une approche a été proposée pour permettre via un chiffrement à clé publique de protéger le
flux des écoutes indiscrètes (Wire tap) : Obfuscated TCP (obs TCP) remplacé par tcpcrypt.
Cett extension de TCP est transparente pour l’utilisateur, il consiste à la mise en place d’un tunnel
proposé par le serveur au client (navigateur) ; il sera mis en œuvre automatiquement si le client le
supporte, sinon l’échange TCP classique est utilisé. Ce protocole ne gère pas l’authentification (pas de
certificat) du serveur, et est donc contourné par une attaque de type Man In The Middle (MITM).
12.5 Mise en œuvre TCP
12.5.1 Services et protocoles
Les données transmises en utilisant TCP sur IP et transportant un segment de données, par exemple
dans le cas d’un protocole HTTP transmettant des données HTML, sont encapsulées avec un en-tête
TCP portant un de ses numéro de port (source pour le serveur) valant 80.
156
Section 4 – Pile TCP/IP
Le datagramme IP portera le numéro de protocole correspond à TCP, c’et à dire 6.
Enfin, la trame Ethernet codée sur le réseau local portera dans son champ ethertype la valeur 0800h
désignant le protocole IP dans sa charge utile.
protocole
0800h -IP
En-tête
Ethernet
protocole
n°6 -TCP
En-tête
IP
service
n°80 -HTTP
En-tête
TCP
Requête HTTP
CRC
12.5.2 Format d’en-tête
2 octets
Port source : 2 octets
Port destination : 2 octets
Numéro de séquence
acquitté
lo ngueur
en-tête 4 bit s
URG ACK PSH RST SYN FIN
Fenêtre
20 octets minimum
Numéro de séquence
Total de contrôle
Pointeur sur données urgentes
Option facultatives
Bourrage
Champs DATA
0 à 64 ko
L’en-tête est constitué de plusieurs mots de 32 bits ; il comprend les champs suivant :
Adresses port source / destination (sur 2x16 bits) : Elles identifient les adresses des paires de port
qui constituent des sockets en association avec les adresses de paire d’IP correspondantes. Une
connexion TCP-IP étant identifiée par une paire de sockets.
Numéro de séquences (sur 32 bits) : Il désigne le numéro du 1er octet du champs de données. Le
numéro de séquence est aléatoire et est incrémenté à chaque envoi du nombre d’octets déjà transmis.
Numéro d’accusé de réception (sur 32 bits) : A titre d’accusé de réception, il pointe sur le 1er octet de
la séquence de données attendue.
157
Section 4 – Pile TCP/IP
Longueur de l’en-tête (sur 4 bits) : Elle indique combien de mots de 32 bits contient l’en-tête. En
réalité, ce champs indique le point de départ des données au sein du segment, mesuré en mots de 32
bits. (Ce qui veut dire grosso modo la même chose).
Suit un champ de fanions (Flags) constitués de 6 bits :
URG : Bit indiquant que le champ pointeur urgent est valide.
PSH : Bit pour transmettre toutes les données, contenues dans les mémoires tampon,
immédiatement.
RST : Bit pour réinitialiser l’envoi de la séquence d’octet.
ACK : Bit pour valider un accusé de réception.
SYN : Bit pour synchroniser l’envoi de la séquence d’octet.
Si SYN=1 et ACK=0, on demande une connexion pour indiquer que le champ n° de
reconnaissance est utilisé.
Si SYN=1 et ACK=1, connexion en réponse.
FIN : Bit pour indiquer qu’il n’y a plus de données à transmettre.
Taille de fenêtre (sur 16 bits) : Elle indique le nombre d’octets que l’on est prêt à recevoir, c’est un
contrôle de flux (§12.4.7). Il peut y avoir une interruption du flux, dans ce cas la taille de fenêtre est
nulle.
Total de contrôle (sur 16 bits) : C’est la somme des mots de 16 eb complémentée à 1 pour le contrôle
d’erreur, il porte sur l’en-tête, sur les données pour garantir l'intégrité et pour éviter les erreurs de
routage, sur la pseudo en-tête IPde 96 bits (partie de l’en-tête IP incluant les adresses IP sources,
destinations, le type de protocole et la longueur du datagramme ).
Pointeur d’urgence (sur 16 bits) : Il indique le début de la partie du champ de données à traiter en
priorité.
Option (long. Variable) : Pour le codage de divers paramètres tels que :
0 donne la fin de liste d’options
1 donne le numéro d’opération
2 donne la taille maximale du segment
12.5.3 Connexion TCP
La séquence qui suit présente la phase de connexion TCP en 3 étapes. L’ensemble de ces segments
sont encapsulés dans des datagrammes IP qui ne sont pas représentés ici.
A l’initialisation, les numérose de séquences sont choisis aléatoirement par le système. La connexion
se fait en 3 étapes successives :[ SYN] / [ACK+SYN] / [ACK]
CLIENT
SERVEUR
Service : β
Port Source : α
Port destination : β
Seq=x
SYN
Port Source : β
Port destination : α
Seq=y SYN ACK=x+1
Port Source : α
Port destination : β
Seq=x+1 ACK=y+1
158
Section 4 – Pile TCP/IP
12.5.4 Echange Séquencé TCP
Notons les principes fondamentaux utilisés par TCP :
Les volumes de données déjà transmis incrémentent (en nombre d’octets) la valeur du numéro
de séquence
Les volumes de données sont acquittés au fur et à mesure (ACK) en incrémentant le numéro de
séquence acquitté du volume reçu.
Il est possible de reconstituer les segments arrivés dans le désordre.
La déconnexion est effective après un envoi bidirectionnel du flag FIN
CLIENT
Port Source : α
Seq=x+1
SERVEUR
Service : β
Port destination : β
P data
Port Source : β Port destination : α
Seq=y+1 ACK=x+1+P
Q data
Port Source : α
Port destination : β
Seq=x+P+1 ACK=y+1+Q
Port Source :β Port destination : α
Port Source : α
Seq=y+1+Q
Port destination : β
Seq=x+P+1
FIN
FIN
12.5.5 Trace TCP
Dans le tableau on présente un exemple d’échange TCP entre un client 192.0.0.1 et un serveur
192.0.0.2. Les numéros de ports sources et destination sont indiqués et signalent qu’ils s’agit
vraisemblablement d’un échange (HTTP –WEB). Au total 304 octets de données ont été envoyés par
le client et 443 par le serveur.
1
2
3
4
5
6
7
8
9
10
IP source
192.0.0.1
192.0.0.2
192.0.0.1
192.0.0.1
192.0.0.2
192.0.0.1
192.0.0.1
192.0.0.2
192.0.0.2
192.0.0.1
IP dest
192.0.0.2
192.0.0.1
192.0.0.2
192.0.0.2
192.0.0.1
192.0.0.2
192.0.0.2
192.0.0.1
192.0.0.1
192.0.0.2
Flag
SYN
SYN-ACK
ACK
ACK
ACK
FIN
ACK
FIN ACK
ACK
Port S
1470
80
1470
1470
80
1470
1470
80
80
1470
Port D
80
1470
80
80
1470
80
80
1470
1470
80
Seq relative
Seq=0
Seq=0
Seq=1
Seq=1
Seq=1
Seq=305
Seq=305
Seq=444
Seq=444
Seq=306
Ack relative
Ack=0
Ack=1
Ack=1
Ack=1
ACK=305
ACK=444
ACK=444
ACK=306
ACK=306
ACK=445
12.5.6 Diagramme d’états de TCP
Le schéma ci-dessous montre les états possibles d’un service TCP selon qu’il est client ou serveur.
Ces états sont indiqués par le système d’exploitation qui gère le protocole. L’état LISTEN ou
LISTENING est caractéristique d’un service actif en écoute (ou port ouvert).
La clôture finale depuis TIME_WAIT présente une temporisation suffisante pour garantir que l’autre
extrémité de la connexion a bien reçu l’acquittement de fin de connexion. Cette temporisation est
fixée par la RFC 793 à 2 fois la durée maximale de survie d’un message TCP (2 minutes).
159
Section 4 – Pile TCP/IP
snd SYN
CLOSED
serveur
client
rcv SYN LISTEN
snd SYN ACK
SYN
RCVD
snd SYN
SYN
SENT
rcv SYN snd ACK
rcv ACK
snd FIN
rcv SYN ACK snd ACK
EST ABLISHED
Fermeture passive
snd FIN
FINWAIT 1
rcv FIN
snd ACK
rcv ACK
CLOSE
WAIT
rcv FIN
snd ACK
snd FIN
CLOSING
rcv ACK
FINWAIT 2
rcv FIN
snd ACK
LAST
ACK
TIME WAIT
Temporisateur
<4min
Fermeture active
CLOSED
rcv ACK
12.5.7 Débits
Deux ordinateurs A et B échangent via Ethernet un message de 1460 octets (1500 octets pour le
datagramme, taille maximum par défaut pour Ethernet (MTU)), calculons le taux de transfert des
informations sachant que seul IP est utilisé. Précisons que le datagramme IP est encapsulé directement
dans une trame Ethernet (qui ne contient pas de champ LLC).
22 octets
20 octets
20 octets
En-tête
Ethernet
En-tête
IP
En-tête
TCP
4 octets
DATA
CRC
Réseau Ethernet : 10Mbits/s
Ethernet pur : 1500 octets utiles et 1526 octets utilisés
Débit utile :
1500
× 10 Mbits / s = 9,8Mbits / s
1526
IP seul dans la trame MAC d’Ethernet
1480 bits utiles et 1526 bits utilisés
Débit utile :
1480
× 10 Mbits / s = 9,7 Mbits / s
1526
TCP-IP dans la trame MAC d’Ethernet
1460 bits utiles et 1526 bits utilisés
Débit utile :
1460
× 10Mbits / s = 9,6Mbits / s
1526
Soit on obtient les débits de bout en bout par couche :
Couche
Protocole
Débit
Couche
Couche
Couche
Couche
TCP
IP
MAC
délimitation
9,6Mbit/s
9,7Mbit/s
9,8Mbit/s
10Mbit/s
4
3
2
1
160
Section 4 – Pile TCP/IP
Ce débit vaut pour un datagramme. Un fichier est découpé en de multiples datagrammes, chacun
d’eux étant acquitté et soumis aux contraintes de l’accès CSMA/CD, intervalles de gardes et aux
risques de collisions.
12.5.8 NAPT (PAT): Network Address and Port Translation
Nous avons évoqué la technique de NAT (Network Address Translation) pour permettre l’attribution
d’une adresse IP externe à une machine locale ne disposant qu’ d’une adresse privée. Une partie des
incnvénients du NAT dynamique et du partage multiple peut être résolue par la technique du PAT
(Port & network Address Translation) : il s’agit de modifier les sockets source et destination.
Ainsi le mécanisme de translation est étendu aux ports pour assurer le partage d’une même adresse IP
externe par plusieurs adresses IP internes. L’@IP-Dest:Port-Dest est inchangée par le dispositif
192.168.1.2
NAPT
192.168.1.3
@IP-Dest
192.168.1.2:p1
192.168.1.3:p2
192.168.1.4:p3
192.168.1.4
@ Interne : port source
192.168.1.2 :1025
192.168.1.3 :1025
83.254.32.14:n
83.254.32.14:n+1
83.254.32.14:n+2
@ Externe : port source
83.254.32.14 :2054
83.254.32.14 :2055
S’il devient possible de faire un usage simultané d’une même IP externe, seuls les services sur
TCP/UDP peuvent être natés (ce qui n’est pas le cas du ping). Il n’est pas non plus possible de se
connecter depuis l’extérieur.
12.5.9 Port forwarding
Pour permettre l’accès d’une machine interne qui assure un service déterminé par un numéro de port
n, il est possible de rediriger la demande de connexion entrante vers ce service sur la machine interne
via son numéro de port. On peut alors interroger un service interne depuis l’extérieur par redirection
(forwarding) du port.
Le schéma ci-dessous décrit une connexion à un serveur web interne. Le routeur est accessible via son
adresse externe (83.254.32.14). Le numéro de port 80 est signalé dans une configuration logicielle : le
datagramme contenant la demande SYN est redirigé vers 192.168.1.2.
192.168.1.2
Serveur WEB-80
192.168.1.2:80
83.254.32.14:80
192.168.1.3
192.168.1.4
Forwarding
161
Section 4 – Pile TCP/IP
Le port mapping est une amélioration : il s’agit d’un forwarding avec décalage du port destination.
192.168.1.2
Serveur WEB-8080
192.168.1.2:8080
83.254.32.14:80
192.168.1.3
Mapping: 80->8080
192.168.1.4
Enfin le port trigerring est un forwarding provoqué par une première connexion à initiative interne,
comme pour le transfert de fichier FTP (21) ou la diffusion en streaming RTSP (554)
192.168.1.2
192.168.1.2:20
@IP-D:21
83.254.32.14:20
Triggering
Serveur FTP-21
@IP-D
@IP-D:21
Cette technique permet de ne pas conserver les ports ouverts en permanence comme dans le
forwarding, ou de permettre à plusieurs machines d’ouvrir des ports identiques à la demande.
12.6 Modèle de service UDP
12.6.1 Ports et services
Avec UDP, les applications peuvent encapsuler des datagrammes IP bruts et les envoyer sans établir
de connexion. Les numéros de ports sont utilisés comme pur TCP pour identifier les services utilisés.
SERVICE UDP
Port
DNS
DHCP serveur
DHCP client
53
67
68
Dans de nombreuses applications client-serveur on préfère utiliser UDP plutôt que d’avoir à établir
puis à libérer une connexion pour chaque couple de question/réponse, en particulier lorsque les
échanges ne nécessitent que l’émission d’un message cours. De plus l’utilisation d’UDP pour les
transferts de gros fichiers ou de diffusion de type ‘streaming’ permet des débits supérieurs à ceux de
TCP.
162
Section 4 – Pile TCP/IP
Notons que les flux UDP sont prioritaires sur les flux TCP pour compenser les absences de primitives
de services gérant les connexions TCP ou les perte de données. Cette particularité peut poser des
difficultés lors d’une surcharge importante de flux UDP (flooding).
12.6.2 En-tête UDP
Port Source
Port Destination
Longueur UDP
Total de contrôle UDP
32 bits
Un segment UDP comporte un en-tête de 8 octets suivi des 8 données. Les 2 ports ont la même
fonction que dans TCP : identifier les points d’extrémité au niveau des machines source et destination.
La valeur du champs longueur UDP comprend à la fois l’en-tête de 8 octets et les données. Le total de
contrôle UDP inclut un pseudo en-tête (une partie de l’en-tête IP). Ce total de contrôle est optionnel et
à pour valeur 0 s’il n’est pas calculé. Il est très risqué de le désactiver, sauf si la qualité des données
n’a que peu d’importance.
12.7 Développement Client-Serveur
12.7.1 Introduction
Le but de cette partie est de fournir un exemple de développement d’un serveur et d’un client pour
illustrer les concepts présentés en théorie et comment ils peuvent concerner l’utilisateur,
l’administrateur ou le développeur.
Les codes ci-dessous écrits en langage C pour une machine type windows utilisent la libraire winsock
(librairie libws2_32.a ou ws2_32.lib). Nous ne donnerons pas de tutorial de compilation ici. Notons
que les instructions sont portables aisément sous linux.
La notion de socket bloquante ou non bloquante est un point fondamental pour comprendre le
comportement d’un client ou d’un serveur. En cas de socket non bloquante, tout appel fait sur cette
socket rendra la main au système directement, comme n’importe qu’elle fonction classique en langage
C (par exemple un affichage écran via printf). En cas de socket bloquant, la fonction se termine
seulement si elle est validée.
12.7.2 serveur.c
Le code source présente ici un serveur extrêmement simplifié dont la tache est d’envoyer le message
« Bienvenue » à tout client se connectant au port 2222.
La fonction socket() détermine les paramètres techniques de la socket en définissant le type
d’adresse réseau supporté (AF_INET pour IP v4) et la nature du protocole de niveau 4 : TCP avec
SOCK_STREAM et UDP avec SOCK_DGRAM. La fonction bind() lie la socket à l’adresse du
serveur (INADDR_ANY en local désigne toutes les adresses IP de la machine s’il existe plusieurs
interfaces) et au numéro de port. Enfin listen() permet de lancer le serveur ; le second paramètre
de cette fonction indique le nombre de connexions pouvant être mises en attente. La boucle d’attente
permet d’écouter et en cas de connexion valide, enverra un buffer de données au client dont les
paramètres techniques sont stockées dans la structure csock : csin.sin_addr est l’adresse IP du
client et csin.sin_port le port client.
163
Section 4 – Pile TCP/IP
Si la socket est bloquante, l’appel accept() s’interrompt si aucune connexion n’est détectée. Cela
évite que la boucle while(1) ne sature le CPU. Cependant dans le cas d’un processus devant effectuer
une tache en parallèle, cette fonction serveur doit être threadée pour ne pas bloquer la totalité du
programme
#include <stdio.h>
#include <winsock2.h>
int main()
{
char buffer[]="Bienvenue"; //message d'accueil
WSADATA WSAData;
WSAStartup(MAKEWORD(2,0), &WSAData);
SOCKET sock, csock;
SOCKADDR_IN sin, csin;
int sinsize = sizeof(csin);
sock = socket(AF_INET, SOCK_STREAM, 0);
sin.sin_addr.s_addr = INADDR_ANY;
sin.sin_family
= AF_INET;
sin.sin_port
= htons(2222); //numéro de port écouté
bind(sock, (SOCKADDR *)&sin, sizeof(sin));
listen(sock, 0);
printf("Serveur actif... Ecoute le port 2222");
while(1) //boucle d'écoute
{if((csock = accept(sock, (SOCKADDR *)&csin, &sinsize)) !=
INVALID_SOCKET)
{send(csock,buffer,strlen(buffer),0);
printf("%s",inet_ntoa(csin.sin_addr));}
}
}
12.7.3 client.c
Le code suivant est un serveur simple qui se connecte en local (127.0.0.1) au serveur écoutant le port
2222 en appuyant sur la touche ‘c’ Ce client a la capacité de recevoir un flux d’octets qui sera stocké
dans le buffer par la fonction recv(). On constate que ce client a l’initiative de la connexion à la
socket du serveur sock.
La fonction recv() sur une socket bloquante implique que le déroulement du programme est
interrompu tant qu’aucune information n’est reçue par la socket, en particulier si le serveur ne répond
pas.
#include <stdio.h>
#include <winsock2.h>
int main()
{
WSADATA WSAData;
SOCKET sock;
SOCKADDR_IN sin;
char buffer[255];
char adresse[10]="127.0.0.1"; //adresse du serveur
sin.sin_addr.s_addr = inet_addr(adresse);
sin.sin_family
= AF_INET;
sin.sin_port
= htons(2222);
while(1) {
char choix=getch();
if (choix=='c') {
//connexion au serveur
WSAStartup(MAKEWORD(2,0), &WSAData);
sock = socket(AF_INET, SOCK_STREAM, 0);
connect(sock, (SOCKADDR *)&sin, sizeof(sin));
memset(buffer,0,255);
recv(sock, buffer, sizeof(buffer), 0);
printf("%s\n",buffer);
164
Section 4 – Pile TCP/IP
closesocket(sock);
WSACleanup();}
//fin de la connexion
if (choix=='q') {break;}
}return;
}
Ce client n’est pas indispensable, tout serveur peut en principe être testé par la commande ‘telnet’ :
$ telnet IP-Server Port_Server
12.7.4 Mise en œuvre
Afin de tester ces deux processus, on exécute le programme ‘server.exe’ qui permet d’ouvrir le port
2222. On teste la présence du port ouvert sur le serveur par la commande ‘netstat’ :
$ netstat -an
Connexions actives
Proto
[…]
TCP
[…]
Adresse locale
Adresse distante
Etat
0.0.0.0:2222
0.0.0.0:0
LISTENING
L’exécution du client depuis une machine distante permet d’être détectée par l’état d’une nouvelle
connexion TCP spécifique dans la liste :
$ netstat -an
Connexions actives
Proto
[…]
TCP
TCP
[…]
Adresse locale
Adresse distante
Etat
0.0.0.0:2222
192.168.2.3:2222
0.0.0.0:0
192.168.2.1:4013
LISTENING
CLOSE_WAIT
La capture de la connexion est donnée ci-dessous. Elle permet en particulier d’établir la connexion en
3 étapes sur le protocole TCP et l’envoie par le serveur de 9 octets correspondant aux lettres du mot
« Bienvenue ». On remarquera également que le serveur clôt la session mais pas le client ce qui laisse
la socket en l’état CLOSE_WAIT. La fermeture de la socket n’est donc pas bidirectionnelle ; il aurait
fallu utiliser la commande closesocket(csock) pour clore la socket cliente au niveau du
serveur après l’envoie du buffer.
1
2
3
4
5
6
IP
IP
IP
IP
IP
IP
192.168.2.1.4587
192.168.2.3.2222
192.168.2.1.4587
192.168.2.3.2222
192.168.2.1.4587
192.168.2.3.2222
>
>
>
>
>
>
192.168.2.3.2222:
192.168.2.1.4587:
192.168.2.3.2222:
192.168.2.1.4587:
192.168.2.3.2222:
192.168.2.1.4587:
165
SYN
SYN
ACK
PSH
FIN
ACK
Seq
ACK
ack
seq
seq
ack
0
Seq 0 ack 1(0)
1(0)
10(9) ack 1
1(0) ack 10(9)
2(0)
Section 4 – Pile TCP/IP
166
Section 5 – Services
13. DNS
13.1 Nom de domaine
13.1.1 Nom de domaine
Pour localiser un serveur sur un réseau adressé IP, la connaissance de son adresse IP est obligatoire. Il
n’est cependant pas simple de retenir que le moteur de recherche google peut être interrogé via
l’adresse 209.85.156.103. Pour simplifier cette recherche, un service de nom de domaine (DNS –
Domain Name Service) propose une norme d’annuaire associant des noms à des adresses IP.
Ces noms sont organisés en système hiérarchique avec des domaines de premiers niveaux, et des sousdomaines.
Le domaine de premier niveau (Top Level Domain) possède une extension générique ou une
extension géographique
Génériques (exemples) TLD
.biz
Business
.org
Organisations à buts non lucratifs
.com
Commercial
.net
Réseaux
.gov
Gouvernemental
.edu
Education
Géographiques (exemples) ccTLD (Country Code)
.fr
France
.de
Deutschland
.uk
United Kingdom
.us
United States
.va
Vatican
.tv
Tuvalu
.fm
Micronésie
Le nom de domaine qualifie en général le deuxième niveau associé au premier niveau. Le nombre de
caractère du deuxième niveau est compris entre 3 et 63 caractères. Il peut exister une hiérarchie pour
des niveaux supplémentaires (troisième niveau) : frameip.com, impots.gouv.fr
Les noms sont attribués par des autorités administratives régionales comme l’AFNIC en France
dépendant de l’ICANN (Internet Corporation for Assigned Names and Numbers).
167
Section 5 – Services
Certains fournisseurs d'accès géographiques nationaux proposent également des TLD non officiels,
pour filtrer certaines recherches ou proposer le support de caractères spéciaux.
13.1.2 FQDN
Un nom de domaine est une notion relative à un ensemble de serveurs ou plus largement de machines.
Il convient de le compléter par la notion de nom d'hôte désignant un serveur précis (par exemple www
pour un serveur web). Quand ce nom de domaine s'achève par un point, il désigne un FQDN (Fully
Qualified Domain Name) qui permet d'indiquer que ce nom fait référence explicitement à un TLD
officiel. On parle alors de nom absolu (Absolute name)
Nom de domaine
Nom d'hôte
FQDN
telecom.fr
www.telecom.fr
www.telecom.fr.
13.1.3 IDN: Nom de domaine internationalisé [RFC 3490]
L'enregistrement des noms de domaines est historiquement associé à des caractères ASCII bien
précis : alphabet minuscules, chiffres, quelques signes de ponctutations et symboles. Cette approche
est dans la pratique incompatible avec des alphabets non latin ou plus simplement avec la
représentation unicode des langues internationales.
Un nom IDN (Internationalized Domain Name) permet une approche plus large et peuvent contenir
des caractères non ASCII.
Les noms de domaine sont cependant stockés sous un format ASCII du point de vue des serveurs de
noms. Il a été défini plusieurs procédés permettant de convertir les noms IDN en chaîne de caractères
ASCII. Nous présentons deux approches : la canonicalisation et le punycode.
Canonicalisation
La canonicalisation permet en règle générale d'ignorer les distinctions de nom désignant le même
objet: par exemple un fichier nommer par son chemein relatif ou absolu. A titre d'exemple on peut
considérer qu'éliminer les accents en français est une forme de canonicalisation applicable aux noms
de domaine.
Nom
Nom canonique
www.formationtélécom.fr
formationtelecom.fr
formationtelecom.fr/index.htm
http://www.formationtélécom.fr
www.formationtelecom.fr
Punycode [RFC 3492]
La RFC 3492 fournit un algorithme 'bootstring' qui permet de passer d’un jeu de caractère étendu à un
jeu réduit [a…z1…0-]. Cette option n'est pas supportée par tous les TLD ou ccTLD. Elle se déploie
néanmoins de manière régulière.
Les chaînes punycode sont précédées des 4 caractères :
xn-Télécom
Pléneuf-Val-André
Pléneuf
www.SectionTélécom.fr.st
xn--tlcom-bsab
xn--plneuf-val-andr-cnbn
xn--plneuf-cva
www.xn--sectiontlcom-iebb.fr.st
Les applications (navigateurs) compatibles acceptent les caractères unicodes dans les adresses et les
convertissent en punycode : on parle alors d'IDNA – IDN in Applications. Dans ce cas toute chaîne de
caractère entrée dans la barre d'adresse est convertie par le navigateur puis transmise aux serveurs
DNS.
168
Section 5 – Services
13.2 Service DNS
13.2.1 Domain Name Service
Le service DNS a pour objet principal d'identifier un équipement ou un service par un nom unique:
pratiquement, il fait correspondre le nom (OSI 5) avec l’adresse IP (OSI 3). Il existe plusieurs
méthodes :
Correspondance statique : par fichier mis à jour manuellement
[linux]
[windows]
/etc/hosts
C:\WINDOWS\system32\drivers\etc\hosts
Correspondance dynamique : résolution par un protocole en utilisant des serveurs de nom
(DNS) ou par recherche sur Broadcast (NetBios)
13.2.2 Espace des noms
L'espace défini par l'ICANN est divisé en deux type des TLD (Top Level Domain – domaine de
premier niveau ) qui structure l’espace global normalisé: le TLD génériques et les TLD géographiques
ou ccTLD (Country Code TLD).
.
Domaine racine (root)
Domaines de premier niveau
.com
Génériques
.org .net
.edu
Géographiques (country code)
.fr
.us
.hotmail
Domaine de second niveau
.orange
.gouv
Le SLD (Secondary Level Domain – Domaine de seconds niveaux) est sous la responsabilité de
chaque TLD qui va déléguer l'administration à des responsables privés. On parle alors de domaine
pour un couple SLD.TLD. Un sous-domaine est une extension à gauche à partir du nom de domaine
du type Sous-domaine.SLD.TLD.
13.2.3 Zones et DNS (domain Name Server)
L'administration des annuaires où on trouve l'ensemble des correspondances @IP/nom de domaine
n’est pas centralisée sur un serveur unique mais répartie sur plusieurs zones. Chaque zone est
autonome et gère son propre espace indépendamment de la hiérarchie. Elle est sous l’autorité d’un NS
(Name Server). Dans l'exemple qui suit, les sous-domaine gouv.fr et mdef.gouv.fr sont inclus
dans la même zone mais efep.mdef.gouv.fr est une zone autonome.
169
Section 5 – Services
Racine
Root
SLD
.com
.fr
TLD
.net
zone gouv.fr
.hotmail
.gouv
serveur primaire
.mdef
.air
.mer
serveur secondaire
.efep
zone efep.mdef.gouv.fr
domaine .gouv.fr
Le serveur DNS primaire est sous l'autorité du propriétaire des zones qui peut modifier ses propres
tables. Le serveur secondaire contient les tables en copie et en lecture seule. Les zones DNS
correspondent à une organisation administrative.
13.2.4 Enregistrement des Ressources (Resources Records)
On appelle ressource DNS la façon dont une adresse correspondant à un nom d'hôte ou de domaine est
enregistrer dans les serveur DNS. On distingue un certains nombre de type, dont le plus courant est le
type A qui associe directement le nom de domaine à une adresse IPv4.
FQDN
corporate.com.
host.corporate.com.
host6.corporate.com.
corporate.com.
Durée de
vie (s)
86400
86400
86400
86400
corporate.com.
www.corporate.com.
Classe Type
Valeur
IN
IN
IN
IN
SOA [Start Of Authority]
A [adresse IPv4]
AAAA [adresse IPv6]
NS [Name Server-ayant autorité]
86400
IN
MX [Relais de messagerie]
86400
IN
[info-durées de vie]
@IPv4
@IPv6
host.corporate.com
1 host.corporate.com
[priorité hostname]
CNAME [nom canonique alias host.corporate.com
de nom]
13.3 Le Protocole DNS
13.3.1 Format de Paquets
Le protocole DNS est associé au port UDP-53. TCP peut être utilisé en cas de long message (champ
data de UDP supérieur à 512 octets). Le paquet a un en-tête de taille fixe de 12 octets suivis des
questions et réponses contenant l'enregistrement des ressources DNS.
1 octet
1 octet
Identification
DNS
Paramètres
Nombre questions
Nombre réponses
UDP 53
IP 17 @IP_server
Nombre autorités
Nombre info supplémentaires
DATA
170
Section 5 – Services
Identification : permet d’identifier le couple question/réponse
Paramètres : champ de bits [décrit plus bas]
Nombres : permet d’indiquer le nombre de champs questions/réponses/autorités
supplémentaires qui seront placés dans le champ data qui suit l’en-tête.
DATA : Série de queries, answers et Additional record ; [décrit plus bas]
13.3.2 Requête DNS et services DNS
Il existe trois types de requêtes pouvant être adressées à un serveur DNS par un client.
Iterative question : le serveur fournit une réponse au client : soit l’adresse IP demandée s'il en
dispose ou dans le cas contraire l'adresse d'un autre serveur DNS
Recursive queries : le serveur doit fournir la réponse : l’adresse IP demandée ou une erreur s'il n'a
pas de réponse à fournir
Inverse questions : le serveur doit retourner le nom associé à une adresse IP.
Il est ici important de bien distinguer deux types de serveurs DNS, bien souvent confondus
physiquement : Le serveur cache auquel s'adresse les requêtes des clients et le serveur de domaine qui
ne répond qu'aux serveurs (cache ou domaine)
Serveur Cache
Serveur de
Domaine
Requête récursive
OUI
Requête itérative
Tolérée
NON
OUI
Interrogé par un client qui attend une
réponse. Sa réponse est différée.
Interrogé par un serveur de cache qui
cherche une réponse. Donne une réponse
immédiate.
13.3.3 Résolution
Le mécanisme de résolution DNS a pour objet l'association entre un nom et une adresse IP. Si la
machine cliente ne contient aucune association ni dans son cache, ni dans ses fichiers de configuration
statiques (hosts), alors une reqête récursive est faite à un serveur de cache DNS.
serveur racine
2
3
serveurde domaine
efep.mdef.gouv.fr
serveurde cache
1
serveur .net
4
serveurs de domaines
D NS
DNS
DNS
5
6
serveur commentcamarche.net
@IP serveur
de cache DNS
7
prof.efep.mdef.gouv.fr
1. Le client demande l’adresse @IP de l’adresse www.commentcamarche.net à son serveur
cache DNS [résolveur - Récursive]
2. Le serveur-cache DNS n’a pas la réponse dans son cache : il interroge le serveur domaine
racine [Itérative]
3. Le serveur racine n'a pas la réponse; il communique l’adresse IP du serveur domaine de zone
.net
4. Le serveur-cache s’adresse au serveur domaine de zone .net [Itérative]
171
Section 5 – Services
5. Le serveur .net connait la réponse: il renvoie l’adresse IP du serveur web recherché
6. Le serveur cache DNS comunique au client l’adresse IP du serveur web
7. Le client interroge le serveur web via son adresse IP
13.3.4 Champ flags : paramètres
Détail du champ de l’en-tête UDP
1
bits
4
QR
paramètres
1 1 1 1
Taille
1
Opcode
4
AA [Answers Authorities]
1
TC [Truncated Message]
1
RD [Récursivité demandé]
1
RA [Récursivité disponible]
1
Réservé
Rcode
3
4
Valeur
0
1
0
1
0
1
0
1
0
1
0
1
000
0
1
2
3
4
5
RCode
signification
Queries : question
Response : réponse
Résolution standard
Résolution inverse
Pas d’autorité
Autorité sur le domaine
Non (UDP seul)
Oui (TCP)
Non
Oui
Non
Oui
Pas d’erreur
Erreur de format
Erreur de serveur
Erreur de nom
Non Implémenté
Refus
Format des champs data
2 octets 2 octets
Nom_domaine
DATA : queries
2 octets 2 octets
Type
Nom_domaine
Nom_domaine
-
-
Type
A
AAAA
NS
CNAME
SOA
MB
MG
MR
NULL
WKS
PTR
HINFO
MINFO
MX
TXT
IN
-
01
28
02
05
06
07
08
09
10
11
12
13
14
15
16
1
-
CLASS
TTL
Longueur
4
Opcode AA TC RD RA Réservé
Flag
QR
DATA : Response
3
Class
Type
4 octets
TTL
Class
2 octets
longueur Ressources
03
77 77 77 03 6e 65 74 02 66 72 00
w
w
w
n
e
t
f
r
Adresse IP de l'hôte
Adresse IPv6 de l’hôte
Nom du serveur de noms pour ce domaine
Nom canonique (Nom pointant sur un autre nom)
Début d'une zone d'autorité (informations générales sur la zone)
Une boite à lette du nom de domaine (expérimentale)
Membre d'un groupe de mail (expérimentale)
Alias pour un site (expérimentale)
Enregistrement à 0 (expérimentale)
Services Internet connus sur la machine
Pointeur vers un autre espace du domaine (résolution inverse)
Description de la machine
Groupe de boite à lettres
Mail exchange (Indique le serveur de messagerie)
Chaîne de caractères
Valeur de la durée de vie en seconde dans le cache
Longueur du champ ressources en octets
172
Section 5 – Services
13.3.5 Compression du nom de domaine
Pour éviter de répéter les noms de domaine dans les questions ou réponses et augmenter inutilement la
taille des paquets, on met en place une compression qui consiste à rediriger le champ nom_domaine
vers un autre endroit du paquet en utilisant une séquence de 2 octets.
Nom_domaine
12 octets
-
Nom_domaine
2 octets
-
03
77
w
77 77 03
w
w
Octet 1
11 aa aaaa
6e
n
65
e
74
t
02
66 72
f
r
Octet 2
aaaa aaaa
00
Dans ces deux octets, les 14 bits ‘a’ donnent en décimal la valeur de l’offset du nom de domaine par
rapport au début du paquet DNS : identifications-paramètres-questions-réponses-autorités-info soit un
minimun de 6*2=12 octets.
13.3.6 Résolution DNS inverse – PTR Lookup
La résolution inverse permet au protocole de retrouver le nom DNS à partir de l’adresse IP. En
principe à tout enregistrement DNS doit correspondre un enregistrement inverse.
Si dessous la table d’enregistrement des ressources inverses
Valeur
@IP-inversée.in-addr.arpa.
@IP-inversée.in-addr.arpa.
@IP-inversée.in-addr.arpa.
Classe
IN
IN
IN
Type
SOA [Start Of Authority]
PTR
NS [Name Server-ayant
autorité]
Nom de domaine
corporate.com.
host.corporate.com.
corporate.com.
Dans les requêtes inverses, l’adresse a.b.c.d sera référencée à l’envers d.c.b.a.inaddr.arpa. Elle sera atteinte dans la zone dns réservée .in-addr.arpa.
arbre DNS inverse
Racine
Root
.arpa
TLD
SLD
.in-addr
13.3.7 Commandes
Afin de tester la configuration d'un client DNS, diverse commandes sont possibles. On propose
quelques exemples ci-dessous.
Win/
Linux
Win/
Linux
Linux
Linux
Win
nslookup [nom_domaine]
ping [nom_domaine]
dig [nom_domaine]
dig [d.c.b.a.inaddr.arpa]
ipconfig /displaydns
Teste la présence d'un serveur dans la configuration
réseau et résoud le nom_domaine en IP
Résoud nom_domaine en IP puis ping l'adresse IP
Fournit les enregistrements détaillés correspondant à
nom_domaine
Résolution inverse DNS à parttir de l'adresse IP a.b.c.d
Visualise le cache DNS de l'hôte
Il est également possible de visualiser le cache DNS des machines hôtes sous linux mais ce dernier est
en mémoire et géré par le démon nscd. Nous n'expliquerons pas ici cette analyse plus détaillée.
173
Section 5 – Services
13.4 NetBios
13.4.1 Protocole et rôles
NetBios est un ensemble de fonctionnalités permettant des services d’échanges sur des réseaux
locaux, en particulier de type PC – Microsoft. Netbios est non routable et n’a pas d’organisation
hiérarchique (à la différence deDNS). Les résolutions de nom se font donc directement d'hôtes à hôtes,
ce qui limite son utilisation à des réseaux locaux.
Du point de vue utilisateur (toujours important dans l'approche Microsoft), c'est les fonctionalités
'voisinage réseau' qui sont garanties par l'ouverture des différents ports.
Port et services
135
Emap - Service de localisation (RPC Remote Procedure Call)
137
Nns – Netbios Name Service
138
Ndgm – Netbios Datagram Service
139
Nssn – Netbios Session Service
445
Version Netbios 2000-XP-vista
13.4.2 Résolution de Nom Netbios
Le service nns permet d’associer un nom netbios avec son adresse IP: c'est la résolution de nom
NetBios. Un nom Netbios est limité à 15 caractères. Le seizième caractère sert à distinguer le nom de
l’hôte de celui du groupe de travail (workgroup). Le jeu de caractères disponibles et son codage dans
les échanges sont décrits dans le tableau :
Char Ascii Code
EB
A
EC
B
ED
C
EE
D
EF
E
EG
F
EH
G
EI
H
EJ
I
EK
J
EL
K
EM
L
Char Ascii Code
EN
M
EO
N
EP
O
FA
P
FB
Q
FC
R
FD
S
FE
T
FF
U
FG
V
FH
W
FI
X
Char Ascii Code
FJ
Y
FK
Z
DA
0
DB
1
DC
2
DD
3
DE
4
DF
5
DG
6
DH
7
DI
8
DJ
9
Char
<SPACE>
!
„
#
$
%
&
‘
(
)
*
+
Ascii Code
CA
CB
CC
CD
CE
CF
CG
CH
CI
CJ
CK
CL
Char Ascii Code
CM
,
CN
CO
.
DN
=
DK
:
DL
;
EA
@
FO
^
FP
_
HL
{
HN
}
HO
~
Netbios NS
UDP 137/137
IP 17 broadcast
Ethernet broadcast
La résolution du nom se fait en utilisant des broadcast Ethernet et IP. L’entête Netbios est semblable à
l’entête DNS (partie 13.3). Le champs Type du champ data Queries/Response est cependant inédit
dans DNS :
Type
NS
32
Adresse IP de l'hôte désigné par son nom NetBios.
174
Section 5 – Services
1
2
1.Quelle est l’adresse IP de ‘NOM_NETBIOS’ ? [broadcast MAC/IP]
2. ‘NOM_NETBIOS’ a pour adresse @IP
13.4.3 Samba
Afin de permettre le partage de dossier ou d'imprimantes sur un réseau windows supportant Netbios et
des machines Linux, le serveur samba a pour rôle d'émuler une couche de virtualisation permettant
aux hôtes linux de se comporter comme des hôtes Windows gérant Netbios. Les hôtes windows
ignoreront alors la nature des linux avec lequels ils échangent les données.
Linux
Windows
SA MBA
NetBios
175
Section 5 – Services
176
Section 5 – Services
14. Mail
14.1 Adresse Mail
14.1.1 Format d’un adresse électronique
Le format d'une adresse électronique s'appuie sur le système de nom de domaine DNS.
historiquement, on utilise la syntaxe associant un utilisateur user (partie locale) à une machine via son
nom de domaine (partie distante) :
user@hôte.domaine
user.name@hôte.domaine
user@domaine
user%domaine1@domaine2
Il n’y a pas de différence entre minuscules et majuscules sur la partie distante. Le symbole ‘@’
ne doit être utilisé que comme séparateur dans la chaîne entre la partie locale identifiant le
compte et la partie distante associée au nom DNS.
La règle initiale et appelée LDH et n’autorise que les lettres (L) les nombres (D=digits) et le
tiret – (H=hyphen).
Il est possible d'utiliser d'autres formats d’une même adresse, afin d'ajouter un commentaire ou un
alias qui se subsituera à l'adresse de la messagerie dans les agents mail.
[email protected]
james b <[email protected]>
[email protected] (james b)
“james b.” [email protected]
14.1.2 Caractères autorisés
Une adresse valide répond à la RFC 3696, mais de nombreuses applications ne les acceptent pas.
Certains caractères autorisés peuvent poser quelques problèmes :
! # $ % & ‘ * + - / = ? ^ _ ` . { | } ~
177
Section 5 – Services
Les parties locale et distante sont limitées à 64 caractères chacune. Il est possible d’associer 100
destinataires au maximum. Les adresses, quelque soit leur format, sont alors séparées par un point
virgule ‘ ;’ suivi d’un espace:
[email protected]; [email protected]
14.2 Transfert de Mail
14.2.1 Topologie d’un Système d’échange
D'un point de vue général, un système d'échange de mails électroniques est très proche de celui d'un
échange de courrier postal. En particulier on retrouve les notions de boîtes à lettre pour l'envoie et
pour la réception des messages.
DNS
serveur smtp
MTA
3
serveur smtp
MDA
SMTP
4
1
2
5
MSA
SMTP
MUA
agent mail
POP
6
Emetteur
Récepteur
MAU : Mail User Agent : Logiciel de messageri
MSA: Mail Submission Agent :nom donne au serveur recevant en SMTP depuis le MAU
MTA : Mail Transer Agent : serveur recevant et transférant les messages
MDA : Mail Delivery Agent : serveur stockant les messages
1. L'émetteur résout l'adresse IP du serveur smtp MSA. Il utilise normalement une adresse
d'un serveur DNS fournie par son FAI, et le nom DNS de son serveur de messagerie,
souvent sous la forme smtp.fai.tld
2. Le message est envoyé par l’émetteur au serveur smtp (MSA-MTA)avec son MAU
3. Le serveur MTA résoud le domaine de l'adresse mail destinataire. Il s'appuie sur la
partie distante de l'adresse mail du destinataire. le serveur DNS répondra en
transmettant une ressource MX qui sera à son tour résolue en adresse IP.
4. Le serveur transfert ce message via un réseau éventuel d’autres MTA jusqu’au MDA
5. Le récepteur contact sa boîte au lettre via son propre MAU
6. Le serveur transmet le message à son destinataire
14.2.2 Protocoles mis en œuvre
On distingue les protocoles de transfert (SMTP/ESMTP) des protocoles de réception (POP/IMAP). En
principe, comme pour l'envoie d'un courrier postal, il n'est pas nécessaire au client SMTP de
s'authentifier pour transmettre le message au MTA. Les serveurs acceptant et transmettant tous les
messages sont qualifiés 'd'ouverts' et en général blacklistés par les autres serveurs. Dans la pratique,
les clients sont authentifiés par le fournisseur de services mail pour éviter la transmission de mails
anonymes ou de spam.
178
Section 5 – Services
SMTP
ESMTP
POP
IMAP
Simple Mail Transfer Protocol
Extended SMTP
Post Office Protocol
Internet Message Access Protocol
Transmission non sécurisée de messages
Comptable avec SMTP. Version étendue.
Récupération de messages par le destinataire
Même rôle que POP
Il n'existe pas non plus de chiffrement. Pour la confidentialité, il est conseillé de mettre en place des
tunnels chiffrés entre les clients et serveurs.
14.2.3 Format du message
Le message ou mail est un document dans un format texte (ASCII) répondant au format MIME (partie
14.6). Il peut ainsi contenir en plus du texte, tout type de fichiers (pièces jointes) préalablement codés
et mis en forme selon les types MIME. Ce message contient également un en-tête composé d'un
ensemble de métadonnées relatives à l'émetteur : adresses mail source et destination, version du
logiciel MAU, dates...
Séquence transmise par le MAU
Commandes MAU -> MSA
Réponses MSA-> MAU
protocoles POP, SMTP...
Message-ID: <006001c9c8c9$fd48acf0$091623c0@host>
From: "BOSS" <[email protected]>
To: <[email protected]>
Cc: <[email protected]>
Subject: WORK
Date: Wed, 29 Apr 2011 14:57:01 +0200
En-tête du message
MIME-Version: 1.0
Message au format MIME
[.../...]
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.2180
en-tête MIME
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
This is a multi-part message in MIME format.
[.../...]
SUITE
14.2.4 Webmail
Le manque de souplesse des MAU logiciels a conduit au développement de plateforme webmail:
l'ensemble des fonctionalités est alors prises en charge à travers un navigateur internet.
Le serveur webmail reçoit les commandes côtés client via des méthodes GET en utilisant des langages
de scripts, puis traduit sous forme html les réponses pour le navigateur et gère les éléments échangés
avec les serveurs POP et SMTP. L’utlisateur dispose ainsi des fonctionnalités de gestion de sa boîte à
lettre via une interface web.
Le transfert des pages html peut être supporté en http ou https selon que le contenu est clair ou
chiffré : les implémentations sont différentes selon les fournisseurs de service.
HTTP
serveur http
serveur pop
serveur smtp
Navigateur
Conversion page html
179
Section 5 – Services
14.3 SMTP
14.3.1 Simple Mail Transfer Protocol
SMTP est un protocole client serveur relativement ancien en mode texte. Comme il a déjà été
remarqué, l’authentification de l’émetteur n’est pas obligatoire; un protocole SMTP-AUTH offre une
phase de connexion obligatoire mais est très peu déployé à cause de certaines faiblesses de mise en
oeuvre.
SMTP
command
MTA
serveur smtp
MAU
agent mail
response
user1@domaine1
Command
user2@domaine2
Response
220 domaine2
HELO domaine1
250 hello
MAIL FROM <user1@domaine1>
250 ok
RCPT TO <user2@domaine2>
250 ok its for <user2@domaine2>
DATA
354 ok, send it; end with <CRLF>.<CRLF>
Message Body
EOM :
250 Message queued
QUIT
221 Goodbye
14.3.2 Mode client serveur
Le serveur SMTP reçoit les connexions TCP sur le port 25. Elle est initiée par le MUA sur un port
source quelconque. Aujourd'hui le port 587 est couramment utilisé en substitution pour un meilleur
contrôle des échanges.
Le client de messagerie (MAU) est en principe un logiciel spécifique supportant les protocoles et la
mise en forme des données. Cependant le client en ligne telnet (§17.1.1) peut être utilisé afin de
transmettre des mails en envoyant les commandes textes manuellement.
14.3.3 ESMTP : Extended SMTP
Afin de soliciter la variation étendue ESMTP, un client utilise le message EHLO au lieu de HELO
pour signaler sa présence et indiquer qu'il supporte ESMTP. S’il est rejeté, SMTP est utilisé. S’il est
accepté, il permet de nouvelles fonctionalités : envoie de messages de taille élevée et fixée par le
serveur à la connexion, support des caractères 8 bits (sans MIME).
EHLO domaine1
250 hello, pleased to meet you
180
Section 5 – Services
14.4 POP3
14.4.1 Post Office Protocol
POP3 est un protocole client serveur en mode texte relativement ancien qui a pour ibjet la consultation
des boîtes mail par leur propriétaire. L’authentification est obligatoire mais s'effectue en clair par
défaut. APOP (Authenticated POP) permet de réaliser une authentification initiée côté client par la
commande APOP user2 hash en remplacement du classique USER/PASS. Cependant certains
serveurs POP ne supportent pas APOP.
POP
command
MDA
serveur pop
MAU
agent mail
user2@domaine2
response
Command
Response
+ OK POP3 Server
USER user2
+ OK send your password
PASS password
+OK maildrop locked and ready
APOP user2 hash
[authentification sécurisée]
LIST
[Affiche la liste des messages]
RETR #n
[récupère le message n]
STAT
[nombre et taille des messages]
TOP #n x
[affiche x lignes du message n]
DELE #n
[supprime le message n]
QUIT
+OK POP3 Server saying Good-Bye
Le serveur POP3 reçoit les connexions TCP sur le port 110. Elle est initiée par le MUA sur un port
source quelconque. Comme dans le cas de SMTP, le client telnet peut émuler un client POP.
14.4.2 IMAP : Internet Message Access Protocol
IMAP est un protocole plus récent pouvant se substituer à POP. Il utilise le port TCP 143. Les
commandes textes offrent plus de facilités et en particuliers permettent de détailler le contenu complet
des boîtes mail : répertoire, messages, titres, statut (lu/non lu), horodatage...
181
Section 5 – Services
14.5 Représentation des Données
14.5.1 Formalisation des codages
Les données utilisateurs doivent être repésentées par des systèmes de codages normalisés afin d’être
correctement interprétées par le récepteur. L’ASCII historique réservées aux systèmes anglo-saxons a
évolué afin de pouvoir coder aujourd’hui toutes les langues internationales.
ASCII – Latin de base
C’est un codage de caractères alphanumériques sur 7 bits de 0 (h00) à 127 (h7F). Historiquement
on distingue les caractères de contrôles (de 0 à 31) des caractères texte (de 32 à 127). Le tableau
qui suit donne la signification historique des caractères de contrôle.
déc code
NULL
0
1
2
3
4
5
6
7
8
9
SOM
EOA
EOM
EOT
WRU
RU
BELL
FE0
HT/SK
10
11
12
13
14
15
LF
VTAB
FF
CR
SO
SI
déc code
16 DC0
Null/Idle
Start of message
End of address
End of message
End of transmission
"Who are you...?"
"Are you...?"
Audible signal
Format effector
Horizontal tabulation/
Skip
Line feed
Vertical tabulation
Form feed
Carriage return
Shift out
Shift in
17
18
19
20
21
22
23
24
25
DC1
DC2
DC3
DC4 (STOP)
ERR
SYNC
LEM
S0
S1
26
27
28
29
30
31
S2
S3
S4
S5
S6
S7
Device control reserved
for data link escape
Device control
Device control (stop)
Error
Synchronous idle
Logical end of media
Separator (information)
ASCII étendu – ISO-8859-1/Latin-1
C’est une extension du codage précédent sur 8 bits : les premières valeurs de 0 (h00) à 127 (h7F)
sont identiques à ASCII. L’Extension pour les caractères de 128(h80) à 255 (hFF) diffère selon
qu’il s’agit de l’ANSI Etendu (OEM) utiliser par les systèmes DOS (microfoft) ou de l’ISO
8859-1/Latin1 utilisé par les système UNIX. l’ISO-8859-15 est une version modifiée contenant
entre autre le caractère €=hA4.
UNICODE – ISO-10646
Afin de pouvoir disposer d’un plus grand nombre de caractères, l’Unicode étend sur16 bits de 0
(h00 00) à 65535 (hFF FF) pour le premier plan (0) puis 32 bits. Il permet de coder l’ensemble
des caractères linguistiques connus du latin au Télougou en passant par l’arabe et le chinois. Les
caractères (h00 00) à (h00 FF) sont compatibles ISO Latin-1.
L'ensemble des données générées peuvent se résumer à un flux d'octets quelconques, dont il peut être
difficile de marquer le début et la fin, ou d'assurer son transfert ou stockage.
Fichier
Texte
Binaire
Flux d'octets
surcodage
UTF-8
Base64 uuencode
182
Section 5 – Services
Ces flux peuvent eux-même connaître un surcodage pour assurer leur transfert par les différent
protocole réseaux (POP, SMTP, http…) . Ces techniques sont décrites dans les paragraphes cidessous.
14.5.2 UTF-8
L'Universal character set Transformation Format 8 bits est un système de représentation des données
quelques soient leur flux d'octets. Il s'agit de limiter le jeu de caractères (ou octets) possibles dans le
flux. l'UTF-8 ne code que les octets supérieurs à 128.
h00 à h7F : 7 bits
de 8 à 11bits
de 12 à 16 bits
0xxx xxx
1 octet compatible 100% ASCII
code yyy yyxx xxxx
code zzzz yyyy yyxx xxxx
5
110y yyyy 10xx xxxx
1110 zzzz 10yy yyyy 10xx xxxx
A titre d'exemple on propose l'exemple du codage UTF-8 du mot "été" codé en ISO 8859-1 :
é
E9
1110 1001
1100 0011
1010 1001
C3
A9
Ã
©
8859-1
Binaire
Binaire UTF 8
Hexa
8859-1
t
74
0111 0100
0111 0100
74
t
é
E9
1110 1001
1100 0011
1010 1001
C3
A9
Ã
©
14.5.3 BASE 64
Système de représentation des flux binaires utilise un jeu de 64 caractères imprimables codés sur 6
bits. Des flux d'octets (donc codés sur 8 bits) sont écrits en binaire et les bits regroupés par 6. Comme
le nombre de bits (multiple de 8 par défaut) n'est pas nécessairement un multiple de 6, la fin du
message codé en base64 peut comporter le symbole '=' ou '==' pour supprimer les deux ou quatres bits
en trop insérés à la fin.
Déc bin
00
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
000
000
000
000
000
000
000
000
001
001
001
001
001
001
001
001
Char
000
001
010
011
100
101
110
111
000
001
010
011
100
101
110
111
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Déc bin
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
010
010
010
010
010
010
010
010
011
011
011
011
011
011
011
011
Char Déc bin
000
001
010
011
100
101
110
111
000
001
010
011
100
101
110
111
Q
R
S
T
U
V
W
X
Y
Z
a
b
c
d
e
f
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
183
100
100
100
100
100
100
100
100
101
101
101
101
101
101
101
101
Char Déc bin
000
001
010
011
100
101
110
111
000
001
010
011
100
101
110
111
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
110
110
110
110
110
110
110
110
111
111
111
111
111
111
111
111
Char Hex
000
001
010
011
100
101
110
111
000
001
010
011
100
101
110
111
w
x
y
z
0
1
2
3
4
5
6
7
8
9
.
/
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
Binaire
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Section 5 – Services
Exemple de codage en base64. Cette technique augmente la taille du message dans la proportion de
4/3 et est donc plus gourmande en bande passante et espace de stockage.
é
E9
1110 10 01
111010
58
6
8859-1
Binaire
sextet
base64 décimal
base64
t
74
0111 0100
010111
23
X
é
E9
11 10 1001
101001
41
p
0100 11
19
T
14.5.4 UUEncode
Le codage Unix-to-Unix encode permet de contracter les formats binaires (8 bits) sur 7 bits. Il
s’appuie sur le même principe que base64, la représentation imprimable étant différente : on ajoute 32
à la valeur obtenu et on code avec le caractère imprimable ASCII correspondant sur 7 bits (de 32 à 95)
xxxx xxxx
xxxx xx
0-63
+32
Déc bin
00
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
000
000
000
000
000
000
000
000
001
001
001
001
001
001
001
001
yyyy yyyy
xx yyyy
0-63
+32
Char
000
001
010
011
100
101
110
111
000
001
010
011
100
101
110
111
[sp]
!
„
#
$
%
&
‘
(
)
*
+
,
.
/
Déc bin
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
010
010
010
010
010
010
010
010
011
011
011
011
011
011
011
011
Char Déc bin
000
001
010
011
100
101
110
111
000
001
010
011
100
101
110
111
zzzz zzzz
zz zzzz
0-63
+32
yyyy zz
0-63
+32
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
100
100
100
100
100
100
100
100
101
101
101
101
101
101
101
101
Char Déc bin
000
001
010
011
100
101
110
111
000
001
010
011
100
101
110
111
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
110
110
110
110
110
110
110
110
111
111
111
111
111
111
111
111
Char Hex Binaire
000
001
010
011
100
101
110
111
000
001
010
011
100
101
110
111
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
14.5.5 Binhex
Le codage binary to hexadecimal est utilisé sur les systèmes mac dans un but identique à uuencode de
convertir les fichiers binaires en caractères imprimables. Il est relativement préhistorique et fut créé
pour le TRS-80 au début des années 1980
La première ligne d’un fichier ainsi codé porte la mention explicite :
(This file must be converted with BinHex 4.0)
L’algorithme de conversion est propriétaire d’Apple. Il inclut en outre un mécanisme de CRC.
184
Section 5 – Services
14.6 Types MIME
14.6.1 En-tête : Multipurpose Internet Mail Extension (RFC 2045->2049)
MIME est une norme de représentation de données hétérogènes dans un flux données. l'en-tête MIME
du message décrit le contenu des données transmises et le format de codage utilisé. Ce formalisme
permet entre autre d'avoir plusieurs objets (tels des pièces jointes) dans un même message. On peut
aussi noter les éléments suivants:
La longueur du message est illimitée
Utilisation de jeux de caractères (alphabets) autres que le code ASCII et de texte enrichi (mise
en forme des messages, polices de caractères, couleurs...)
Des pièces jointes binaires (exécutables, images, fichiers audio ou vidéo, etc.), comportant
éventuellement plusieurs parties
Le format MIME est supporté par l'ensemble des agents gérant les interfaces utilisateurs: clients de
messagerie et navigateur internet.
Un message MIME commence par la directive MIME-version suivie d'un numéro de version (1.0).
Suit une liste de longueur et de nature variable indiquant les paramètres à prendre en compte pour le
traitement des données encapsulées:
Directive d’en-tête
MIME-Version
Content-type:
Content-Transfer-Encoding
Content-ID
Content-Description
Content-Disposition
1.0
Charset ; Jeu de caractères utilisé
Jeu de caractères pour le corps du message
Identificateur de partie de message
Informations complémentaires
Paramètres de pièces jointes (dont le nom des fichiers)
14.6.2 Type et sous-types
Chacun des sous-types est décrit dans les RFC appropriées. Il décrit la nature du contenu à transférer
Content-type: type_mime_principal/sous_type_mime
Type
/Sous-type
application
audio
image
multipart
text
video
/javascript
/octet-stream
/msword
/zip
/x-shockwave-flash
/pdf
[…]
/mpeg
/x-wav
/ gif
/jpeg
/mixed
/alternative
/related
/css
/html
/plain
/mpeg
/mp4
/quicktime
185
Par défaut : binaire
Mime email
Feuille de style en cascade
Section 5 – Services
14.6.3 Codages des contenus
Codage utilisé pour le transfert du contenu décrit en type
Content-Transfert-Encoding:
7bit
Quoted-printable
Base64
x-token
ietf-token
8bit
binary
De 0 à 127
Alphabets accentués
De 0 à 255
Q=hxx – code ascii du caractère accentué
B
Déconseillé avec SMTP
Non compatible SMTP
Notons que le « Quoted-printable » est semi-lisible et adapté aux textes accentués (voir l'exemple dans
le paragraphe suivant). Le « Base64 » est moins compressé que l’ASCII naturel mais adaptée aux
contenus binaires : fichiers bureautiques, pdf, exécutables, images...
14.6.4 Structure Message MIME
Nous présentons ici un exemple de message structuré MIME contenant deux sous-parties :
Message
MIME-Version: 1.0
Content-type: multipart/mixed;
Boundary="234567"
Content-Disposition: inline
MIME-Version
Content-type : parties multiples hétérogènes
Frontière arbitraire et univoque entre les parties
Content-Disposition
--234567
Frontière indiquant le début
Content-type: text/plain; charset=ISO-8859-1
Content-transfer-encoding: quoted-printable
Ci-joint, le fichier joint test.
James
Texte simple et codage ASCII
Type de codage utilisé pour le transfert
Message
Message
--234567
Frontière indiquant le passage à la seconde partie
Content-type: text/plain;
name="=?ISO-8859-1?Q?Surprise=2Etxt?="
Content-Disposition:
attachment;
filename="=?ISO-8859-1?Q?Surprise=2Etxt?="
Joyeux anniversaire
Texte simple
Nom de la partie
Pièce jointe attachée au message avec son nom
codé en Quoted Printable
Contenue de la pièce jointe
--234567
FIN
La frontière (boundary) est une chaîne de caractères ne devant pas apparaître ailleurs dans le corps du
message. Elle identifie chaque changement de partie (type multipart) et est présente à la fin .
14.7 Messagerie instantanée
14.7.1 IRC – Internet Relay Chat
La 'messagerie instantanée' est un service dont l'idée est de transmettre des données courtes en mode
point à point : la charge utile d'un ping peut-être utilisée à cet effet. cette approche peu pratique qui
impose de connaître par soi-même l'adresse IP du destinataire a été perfectionnée avec une
architecture client-serveur centralisée.
IRC est un des premiers systèmes d’échanges. Le serveur (serveur en écoute sur le port 6667) permet
aux clients de se connecter à des salons de discussion (ou canaux). Des messages textes sont alors
diffusés à l’ensemble des participants instantanément.
186
Section 5 – Services
IRC utilise un échange de PING/PONG entre le serveur et le client pour garantir la connectivité. Le
protocole est en mode texte. L’ensemble des commandes est précédé du caractère ‘/’ en début de
ligne, elle est interprétée par le serveur.
Signalons que cette architecture permet un filtrage ou une censure de certains messages de la part de
l'administrateur du serveur : blocage des insultes, de certains liens, de transfert de fichiers...
serveur central
p
oc
rot
ole
pr
o to
co
le
Données
Client
Client
Commandes client
/SERVER [nom] [port]
Pour se connecter au démon ircd(serveur) port 6667
par défaut
/NICK [nom]
Choisir son pseudo
/JOIN #nom_canal
Rejoindre le canal
/PART #nom_canal
quittter
/ME
Remplacer par le pseudo
/NAMES #nom_canal
Utilisateurs connectés au canal
/LIST
Liste des utilisateurs connectés
/WALLOP
Diffusion à tous les utilisateurs
/MODE
Pour assigner des modes
/TOPIC
Fixer le sujet du canal
/HELP
Aide en ligne sur les commandes
Mode utilisateur
w
o
i
s
reçoit tous les messages wallop
signifie que l’utilisateur est opérateur irc
invisible
reçoit les notifications du serveur
187
Section 5 – Services
14.7.2 Services et comparatifs
Nous présentons ci-dessous quelques services courants. De nombreuses variantes existent.
IRC
Jabber
Google Talk
MSN (Windows live
Messenger)
Yahoo Messenger
Protocole Port
IRC
TCP 6667
XMPP
TCP 5222
TCP 5269
XMPP
TCP 5222
TCP 443
MSNMS
TCP 1863
YMSG
TCP 5050
AIM
AOL Instant Messenger
Skype
OSCAR
?
TCP ?
SIP
SIP
TCP 5060
188
Propriétaire
Non
Non
IETF
Non
IETF
Oui
Microsoft
Oui
Yahoo
Oui
AOL
Oui
Skype Microsoft
Non
IETF
Centralisé VoIP Visio
Oui
Non Non
Non
Oui
Oui
Non
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
?
Oui
Oui
Non
Oui
Oui
Section 5 – Services
15. HTTP
15.1 Html
15.1.1 Hyper-text Mark-up Language
Le langage html est un langage à balise (markup language) qui connait de très importante évolution
depuis sa création. Une balise est un code texte encadré par '< >' qui permet de structurer le contenu
d’un ensemble de données : la balise de fin est précédée du slash '/'
<balise> mes données </balise>
On appelle lien hypertexte une balise spéciale permettant une redirection vers une autre page html,
c'est à dire d'activer le protocole http pour télécharger la page désignée par le lien.
<a href="lien_vers_la_page.html">cliquer ici</a>
15.1.2 Structure d’une page html
Une page html definie par la balise <html> est un fichier texte qui se divise en deux sous-parties
principales:
L'en-tête DOCTYPE indique la version d'html utilisé dans la page.
L’élément <head> qui permet de décrire un ensemble d’information concernant la page : son
titre, son auteur, le type de contenu, des meta données, des descriptions destinées au
protocole http… ces éléments ne sont pas visibles sur la page éditée par le navigateur
L’élément <body> permet de décrire la structure de la page elle-même. Il peut contenir tous
les éléments ou intégrer des redirections vers d'autres objets qui devront être à leur tour
téléchargés pour s'afficher dans le navigateur: image, plugins...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
189
Section 5 – Services
<body>
<p>Exemple de page <em>html</em>.</p>
<p>
<strong>retour</strong> : <font color="#FF0000">cliquer</font>
<a href="http://www.google.fr">ici</a>
</p>
<p>
<font
size="-1"
face="Arial,
Helvetica,
sans-serif">(c)-pl&eacute;neuf
2009</font>
</p>
</body>
</html>
-
L'exemple de code html est ici représenté interprété dans la fenêtre du navigateur. Ce dernier possède
en général une fonction spéciale permettant d'éditer directement ce code dans une fenêtre.
On remarque que les caractères spéciaux non ASCII, ou certains caractères de contrôles, doivent être
codés dans le corps de la page html : on peut rencontrer deux techniques : le codage numérique ou
par référence symbolique.
numérique
&#D;
symbolique
&nom_symbolique;
Nom_symbolique décrit dans une liste
&#233;
&#232;
&#982;9
&#xH;ou &#XH;
xH, XH code hexadécimale du
caractère
&#xe9; / &#XE9;
&#xe8; / &#XE8;
&#x2665;
&eacute;
&egrave;
&hearts;
&#60;
&#x3C;
&lt;
&#62;
&#x3E;
&gt;
D : nombre décimal
é
è
♥
<
>
15.1.3 Les versions d’Html
Né au tout début des années 90, avec le web inventé par Tim Berners-Lee en 1992, le html connait de
très importante évolution. Le W3C (World Wide Wevb Consortium) est chargé de sa normalisation.
De nombreuses versions se succèdent, afin d'apporter de nouvelles fonctionalités tout en augmentant
la complexité donc l'instabilité et les risques.
html
html 2.0
html 3.2
html 4.0
xhtml 1.0
xhtml 2.0
html 5.0
1989-1992
1995
1997
1997
2000
- 2009
201?
Chaque révision apporte son lot de nouvelles balises permettant d'insérer de nouveaux contenus
(audio, video...) ou des mises en formes spécifiques.
190
Section 5 – Services
15.2 Protocole Http
15.2.1 Hyper-text transfer protocol (RFC 2616)
HTTP inventé par Tim Berners-Lee, le père d'html, est un protocole de transfert de données
supportant les types MIME. Son but est de permettre de de transférer des pages aux formats html
depuis le serveur qui dispose du documentvers le navigateur qui va l'afficher.
HTTP obéit a une architecture client serveur au dessus de TCP/IP. Le serveur de pages html est actif
sur le port 80. On trouve principalement deux versions d'HTTP, 1.0 et 1.1. Cette apparente simplicité
ne doit pas faire oublier que ce protocole est extrèmement riche et que les RFC font près de 200
pages.
HTTP 0.9
HTTP 1.0
1996
HTTP 1.1
1997
RFC 1123
RFC 1945
GET
HEAD ; POST
RFC 2616
OPTIONS ; TRACE ; DELETE ; PUT
Authentification simple :
base64
Authentification sécurisée par
challenge (RFC 2167)
15.2.3 Méthodes Http
Outre des méthodes suplémentaires, le protocole HTTP 1.1 permet une meilleure gestion des
connexions entre le client et le serveur et de meilleures performances dans la transmission de pages
complexes.
Commande/méthode
GET
HEAD
POST
PUT
DELETE
Requête simple sans effet
Requête de l’entête http avec les seules informations de la ressource
Ajout d’une nouvelle ressource
Enregistrement de la ressource envoyée
Supression d’une ressource
La connexion se déroule simplement par l’émission d’un GET par le client et par la réponse (envoie
de la ressource) par le serveur puis clôture de la connexion. On propose ci dessous la mise en oeuvre
d'HTTP via un client telnet.
$ telnet 127.0.0.1 80
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
Connexion via
telent au serveur
http
GET / HTTP/1.0
Demande par le
client [avec 2
retours chariots]
HTTP/1.1 200 OK
Date: Sun, 26 Apr 2009 13:24:24 GMT
Server: Apache/1.3.24 (Cygwin)
Last-Modified: Sun, 26 Apr 2009 13:24:01 GMT
ETag: "13ac61-1fe-49f46071"
Accept-Ranges: bytes
Content-Length: 510
Connection: close
Content-Type: text/html
191
Nature du serveur http
Dernière modification de la page
Longueur des data (page html)
Fermeture TCP à la fin
Type MIME
En-tête de la
réponse http par le
serveur
Gestion des types
MIME
Section 5 – Services
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-88591">
</head>
<body>
<p>Exemple de page <em>html</em>.</p>
<p>
<strong>retour</strong> : <font color="#FF0000">cliquer</font>
<a href="http://www.google.fr">ici</a>
</p>
<p>
<font size="-1" face="Arial, Helvetica, sans-serif">(c)-pl&eacute;neuf
- 2009</font>
</p>
</body>
</html>
Connection closed by foreign host.
Page html d’index
Clôture directe
15.2.3 En-tête Http
De nombreuses informations sont transmises dans l'en-tête http, aussi bien dans la requête que la
réponse, citons-en quelques-une. Leur présence n'est pas obligatoire mais dépend de l'implémentation
du serveur.
GET /
Host
Referer
User-Agent
Site web cible objet de la requête
URI (cf 15.3) du document source qui a fourni le lien de la requête
Caractéristiques du navigateur utilisé par le client
HTTP/1.0 OK
Server
Content-Length
Content-Type
Expires
Last-Modified
Nature du serveur http
Taille de la ressource en octet
Type MIME de la ressource
Durée conseillée de conservation en mémoire cache du navigateur
Date de dernière modification de la ressource
15.3 URI
15.3.1 Universal Ressource Indentifier (RFC 3986)
Un URI est une chaîne de caractères ASCII permettant d’identifier une ressource soit par sa
localisation sur un serveur (« adresse »- URL), soit par son nom assimilable à une référence (« code
barre »- Universal Ressource Name - URN). Cette ressource est dépendante du protocole utilisée pour
l'exploiter (fichier, forum, mail, appel téléphonique...)
URL
Serveur
URI
URN
192
Document
Section 5 – Services
15.3.2 Universal Ressource Locator (RFC 1738/3986)
l'URL est classiquement utilisé dans la 'barre d'adresse' des navigateurs. Cette chaîne de caractères
ASCII permettant de désigner une ressource accessible via un protocole d’échange a une syntaxe
hiérarchique dont certains éléments sont optionnels (comme l'identificateur ou le port), ou complétés
automatiquement par le navigateur.
Protocole
http://
ftp://
telnet://
mailto://
Identificateur
[facultatif]
User :password@
Nom de l’hôte
Port TCP
www.nomdomaine.com
192.168.0.1
:80
[par défaut]
Chemin relatif vers
la ressource
/index.html
[par défaut]
Pour plus de souplesse, les URL peuvent être codées de manière relative en ce qui concerne le
chemin, notamment à l’intérieur des pages html elles-mêmes en ce qui concerne les liens référents au
site lui-même.
./
../
/
Dossier actuel
Dossier parent
Dossier racine
15.3.3 Codages de caractères non fiables
Certains caractères sont considérés comme non fiables, et sont donc codés pour éviter toute confusion.
En utilisant la syntaxe %ASCII_HEX_CODE
Char
Tab
Espace
«
#
%
&
Code
%09
%20
%22
%23
%25
%26
Char
(
)
+
,
.
/
Code
%28
%29
%2B
%2C
%2E
%2F
Char
:
;
<
=
>
?
Code
%3A
%3B
%3C
%3D
%3E
%3F
Char
@
[
\
]
^
‘
Code
%40
%5B
%5C
%5D
%5E
%60
Char
{
|
}
~
Code
%7B
%7C
%7D
%7E
15.3.4 Scripting
Il est possible de passer des paramètres aux serveurs de création de pages dynamiques (php, asp cgi)
en utilisant le séparateur ‘ ? ’ et ‘ & ‘ entre les paramètres
index.php?id=2&page=3
On entend par page dynamique un fichier html dont le contenu est déterminé par la demande du client
et n’est pas figé à priori par le concepteur de la page: date, structure des objets, texte...
15.3.5 Shortener
La longueur excessive de certains liens ou adresses peut poser des difficultés lors de leur transmission
via des messages courts (sms, twit...) et des techniques de racourcissement sont proposer par des sites.
des sites comme goo.gl ou bit.ly (et de nombreux autres...) permettent de stocker une URL longue
en échange d'un code texte de la forme goo.gl/x57te . Cette offre s'accompagne de services : durée
de validité, statistiques sur le nombre de consultations, la fréquence...
Le raccourci est calculé automatiquement à partir de fonctions de hashage, qui seront abordées dans
les chapitres consacrés à la cryptographie. Il est possible sur certains sites de définir soit même le
raccourci à utiliser.
193
Section 5 – Services
15.4 Navigateur
15.4.1 Navigateur – Butineur – Browser
Le navigateur est un programme supportant les principaux protocoles permettant d’accéder aux
services web : http, https, ftp…Il accède à ces services soit avec l’URL ou l’adresse IP du serveur
passés par l’intermédiaire de la barre d’adresse.
Le travail d’un navigateur est double : il gère les protocoles réseaux avec le serveur (http) et il doit
interpréter les données reçues pour l’utilisateur, en particulier le langage html. Cette dernière tâche
peut être complexe, les évolutions d’html et les règles de création de pages étant parfois très difficiles
à maîtriser.
Internet Explorer
Firefox
Chrome
Opera
Safari
Konqueror
Lynx
Microsoft
Mozilla
Google
Opera software
Apple
Environnement KDE (Linux)
Unix/Linux
Dans le cadre des évolutions du web, de nombreux plugins peuvent ou doivent être intégrés pour
augmenter la nature des services disponibles, et permettre de travailler dans le seul cadre du
navigateur. (La liste des plugins est obtenue par « about :plugin » dans la barre d’adresse de
chrome par exemple). Ces évolutions conduiront à l’OS-Navigateur.
PLUGINS
Shockwave Flash
ActiveX
Adobe Acrobat
Quicktime
Rôle
Supporte les fichiers .swf – lecture de vidéo ou de contenu animés interactifs
Supporte les objets de active X de Microsoft
Affichage des contenus .pdf
Affichage des contenus .mov
L’évolution actuelle est de transformer le navigateur en véritable plateforme logicielle assimilable à
un système d’exploitation. La technologie java permet par exemple d’éxécuter des programmes à
l’intérieur de pages écrites en html et de s’affranchir du système d’exploitation et des programmes
locaux.
L’architecture simplifiée d’un navigateur peut être représentée par le schéma de référence détaillé cidessous :
Cache de
données
Interface Utilisateur
Moteur du navigateur
Moteur de rendu
Réseau
Interpréteur
javascript
XML
Parser
Outils
A ffichage
L’interface utilisateur et le moteur du navigateur fournissent l’environnement graphique et le confort
nécessaire à l’utilisateur lors de sa navigation en lien avec la mémoire cache. C’est le moteur de rendu
qui traite les pages html, et le sous-système réseau qui gère les protocoles (http). Le parser xml est un
analyseur syntaxique chargé d’analyser la structure des fichiers. L’ensemble des outils d’affichage est
en lien avec le système d’exploitation, gérant les primitives graphiques, les polices de caractères et le
fenêtrage.
194
Section 5 – Services
15.4.2 User Agent http
Lors de l’étape de connexion initiale, la demande par le client (GET) passe pour paramètre le « user
agent » qui décrit dans une chaîne de caractères à la fois la nature de l’OS et le type de navigateur
utilisé. Cette chaîne permet (entre autre) aux sites de fournir un contenu de page adapté au navigateur
client.
Chrome sous XP :
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.19
(KHTML, like Gecko) Chrome/1.0.154.59 Safari/525.19
Mozilla Firefox sous XP
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.20)
Gecko/20081217 Firefox/2.0.0.20 (.NET CLR 3.5.30729)
Internet Explorer sous XP
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0;
.NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR
3.5.30729)
15.4.3 Cookies
le cookie est un fichier texte de petite taille (<4ko) stocké sur le disque dur du client et chargé par le
serveur lors de la première visite. Il est ensuite transmis dans chaque requête du client (GET). Ce
fichier peut avoir divers usage :
personnaliser la configuration utilisée pour des visites futures (habillage des pages,…)
identifier une session en cours (paniers électroniques…)
tracer et identifier un utilisateur via son login et son mot de passe par exemple
Ce cookie est transmit dans l'entête HTTP sous l'information 'cookie' comme dans l'exemple cidessous:
Cookie: [email protected]; myICalPassword=boss;
myImailSessionKey=/X3de29e9c9dc8cc6a89bcc5; myImailSessionNumber=26606
195
Section 5 – Services
196
Section 5 – Services
16. VoIP
16.1 La Voix
16.1.1 Caractéristiques
L'étude de la voix a été faite dans le premier volume consacré aux signaux. Rappelons ici les
caractéristiques fondamentales prises en compte dans un système télécom :
Bande analogique de la voix
Bande téléphonique
Bande Hi-Fi
Dynamique (voix forte/faible)
stabilité des caractéristiques
Délai optimal de transmission
Délai inacceptable
Pause entre deux mots
Débit numérique standard
50Hz-8kHz
300Hz-3kHz
15Hz-15kHz
30 dB
20-50ms
<150ms
>400ms
~100ms
64 kbit/s
niveau relatif
Limite
d'audibilité
0dB
-20dB
-40dB
dynamique
30dB
300Hz
10kHz
1kHz
20kHz
f
En ce qui concerne l'enveloppe spectrale de la voix humaine, elle s'étend de quelques dizaines de hertz
à plus de 10kHz pour les harmoniques. Les niveaux de puissances sonores se mesurent en dBa
(déciBel audio) de 0 dBa pour un son à peine perceptible à 130 dBa pour le seuil de douleur de
l’oreille.
197
Section 5 – Services
Transmission analogique
Fe
CAN
Fe/2
VOIX
n eb
001100110
pré- ampli BF
Filtre antirepliement
Echantillonneur
Quantificate ur
Loi A ou u
Mise en trame
Canal
Transmission numérique
16.1.2 Acquisition et compression
En limitant la bande de fréquence utile de la voix à 3400Hz, et en respectant le théorème d'acquisition
de Shannon, un minimu de 6800Hz est obligatoire: la valeur de 8kHz a été retenue pour les systèmes
télécoms. Ainsi la voix analogique acquise à la fréquence de 8kHz sur 8 bits génèrent un flux continue
de 8000 octets par seconde, soit un octet tous les 125µs, ou 64kbit/s.
Ce débit brut qui est celui des réseaux télécoms (RNIS-SDH) peut-être compressé par des algorithmes
plus ou moins puissants et efficaces : les codecs (Codeurs-décodeurs). L'indice de qualité indique
l'impression subjective de l'oreile humaine comparant l'ensemble des normes.
Norme AUDIO
G 711
G 721 (G 726)
G 722 (G 726)
G 723 (G 726)
G 728
G 729
GSM-EFR (Enhanced FR)
GSM – FR(Full rate)
GSM – HR (Half Rate)
Inmarsat
FS/STANAG (DoD-NATO)
codage
Voix – PCM – loi A/µ
ADPCM Adaptative Differential PCM
~ADPCM
ACELP
LD CELP
CS ACELP
GSM (ACELP)
GSM (RPE-LTP)
GSM (VSELP)
IMBE/AMBE
LPC/CELP
Débit
64kbit/s
32kbit/s
48 à 64kbit/s
24kbit/s à 5,3kbit/s
16kbit/s
8kbit/s
12.2kbit/s
13kbit/s
5.6kbit.s
<5kbit/s
2.4kbit/s
Qualité /5
4,3
4,1
4,1
3,7
4,1
4,0
4,0
3,9
3,4
<3.9
3.1
La compression est un facteur important dans les systèmes exploitant des réseaux sur le protocole IP
ou les ressources ne peuvent être garanties en règle générale.
16.2 VoIP / ToIP
16.2.1 RTC et signalisation sémaphore
Les principales notions concernant le Réseau Téléphonique Commuté public (RTCP) seront abordées
dans les chapitres consacrés aux réseau télécoms. Afin de bien souligner les différences entre la voix
sur IP et la technologie historique sur cuivre, on signale que la connexion via le RTC utilise un réseau
sémaphore, le SS7, permettant de transporter la signalisation sous forme de tonalité ou fréquences
sonores (numérotation DTMF – norme E.164 du plan de numérotage internationale) et de définir le
circuit entre les deux communicants.
SS7
RTC
Réseau téléphonique commuté : Signalisation Sémaphore 7
198
Section 5 – Services
La connexion physique passe alors par des PABX (Private Branch Exchange) ou auto-commutateurs
qui mettent en place une commutation de circuits. Cette technique est très sûre en terme de Qualité de
service (QoS) mais très coûteuse en ressource.
16.2.2 VoIP : Voice over IP
La VoIP est avant tout une technologie permettant de faire circuler la voix entre deux point connectés
entre eux via un réseau IP. La voix numérisée à l'entrée du réseau IP est transportée par le protocole IP
qui assure la commutation de paquets : le circuit du RTC devient inutile. La voIP est compatible avec
des équipements standards. Elle nécessite des PABX capable d’assurer l’interface avec des
équipement IP via des passerelles (ou Gateway) qui devront gérer le changement de codecs, puis le
routage dans le réseau IP.
RTC
IP
Passerelle
D'un point de vue strict, la voix sur IP est une mise en oeuvre de protocoles garantissant le transfert de
la voix à travers un réseau IP, sans envisager les difficultés imposées par la téléphonie: la signalisation
(trouvé son correspondant) et la voie de retour du correspondant.
16.2.3 ToIP Telephony over IP
La ToIP envisage la téléphonie en tant que service globale et assure la compatibilité et
l'interropérabilité d'un service totalement IP avec les réseaux de téléphonie classique (RTC,
mobiles...). Elle nécessite des équipements terminaux spécifiques : Hardphone (IPPhone-ou telephone
ethernet) ou Softphone (PC équipés de logiciel). Afin d'assurer la mise en relation entre les divers
clients, les notions de signalisations et de routage prennent une place prépondérante dans sa mise en
oeuvre.
RTC
switch
IP
Passerelle
On distingue les protocoles de signalisation permettant de joindre un correspondant de ceux destinés
au transport de flux de la voix. Aujourd'hui, deux grands familles de protocoles se partagent le marché
de la signalisation : H.323 et SIP. Les flux de données utilisent RTP.
La téléphonie sur IP de bout en bout envisage la mise en relation de deux correspondants utilisant des
postes téléphoniques (hardphones), sans équipement PC, et à travers un réseau entièrement IP. Ces
appareils ne possédant pas de configuration en dure, une phase d'enregistrement auprès des serveurs
est nécessaire.
199
Section 5 – Services
16.3 H.323
16.3.1 Protocole VoIP de l’UIT
l'UIT, fondée en 1865 pour l'organisation mondiale de la télégraphie, a développé à partir de 1995 une
pile protocolaire visant à assurer les services de ToIP.H.323 est une norme très répandue dans les
produits du marché. Elle présente 5 versions de V1 à V5 dont les procédures varient légèrement.
Largement utilisé au début des années 2000, il est aujourd'hui en perte de vitesse et remplacé par SIP.
L'architecture de H.323 compte 4 entités fondamentales: le terminal, le Gatekeeper, la gateway ou
passerelle, et le MCU.
Le Gatekeeper (Garde barrière) est un équipement d’interface optionnel qui assure les traductions
adresse IP <-> n° de téléphone et la gestion de certains paramètres : autorisation, bande passante,
annuaires… Il remplace le PABX classique de l’architecture RTC . Quand un abonné se connecte au
réseau IP, il doit déclarer sa présence et s'enregistrer sur le Gatekeeper pour entre autre informer de
son adresse IP. Cependant si les deux terminaux souhaitant se joindre connaissent prélablement leurs
adresses IP, la présence du GK n'est plus nécessaire (cf §16.3.2).
La Gateway permet de joindre des réseaux Non-IP et le MCU est une forme de Gatekeeper permetant
de gérer les liaisons multipoints.
Gatekeeper
IP
Passerelle
RTC
IP
SDH
IP/ETHERNET
Telephone H323
GW : GateWay – Passerelle
GK : GateKeeper
MCU : Multipoint Control Unit [diffusion type conférence]
16.3.2 Pile H.323
H.323
Présentons brièvement les différents protocoles utilisés lors de l'établissement d'une liaison
téléphonique.
Contrôle
H.224
H.225
TCP
IP
DATA
T.120
VOIX
G.711
G.722
G.723
G.728
G.729
VIDEO
H.261
H.263
RTP/RTCP
UDP
x
Le protocole H.225 (inclut RAS-Registration Admission Status) est utilisé pour la signalisation et
l’initialisation. Il existe des sous couches intermédiaires entre ces protocoles et TCP : TPKT,Q.931
pour la signalisation d'appel.
Le protocole H.245 permet la négociation des paramètres audio/vidéo de la communication : codec,
délais.
200
Section 5 – Services
RTP (Real Time Protocol) et RTCP (Real Time Control Protocol) assure l’encapsulation des flux
vocaux. RTP permet notamment le séquencement des paquets pour la reconstitution ordonnée des
flux.
Comme expliqué au paragraphe précédent, la procédure de connexion peut être directe ou relayée
(routée) par un Gatekeeper. Les ports TCP pour les protocoles de contrôle (H.225) sont :
1718,1719,1720 et 1721
Connexion TCP
H.225
RTP
Telephone H323
Telephone H323
Initialisation
Gatekeeper
H.225
H.225
H.225
Initialisation
H.245
négociation
H.245
Ouverture
RTP
16.4 SIP
16.4.1 Session Initiation Protocol (RFC 3261)
Si H.323 est issu du monde télécom (UIT), SIP est un pur produit des réseaux et de l'Internet
normalisé par l'IETF à partir de 1997. Il est donc moins riche que que H323 mais plus simple. SIP
fonctionne sur le modèle client-serveur classique. Les agents clients sont nommés UAC (User Agent
Client) et UAS (User Agent Server). La procédure SIP RFC3261 n’est pas compatible avec le
RFC2543
SIP assure l'ensemble des services de signalisations : il assure la localisation via les URI SIP@
(Universal Ressource Indicator) de la forme sip:user@adresse; SIP gère la connexion et le
contrôle de la liaison. Comme H.323, les données (voix ou vidéo) sont transportées via RTP.
SIP s'architecture autour de 5 entités: le terminal, le serveur d'enregistrement, le serveur de
localisation, le serveur de redirection et le serveur proxy.
Proxy
UAS
UAS
UAC
Proxy
Serveur
UAS
Localisation
Redirect
Internet
UAC
Terminal SIP
Terminal SIP
PS : Proxy server
RS : Redirection Server
LS : Location Server
RG : Registar Server
Le serveur d'enregistrement(RS) gère l'association entre le client (via son sip@) et son adresse IP:
c'est le client qui lui transmet son adresse au moment de sa connexion. Le serveur de localisation
201
Section 5 – Services
(LS), souvent associé à la même entité physique que le RS, gère l'ensemble des clients et est tenu
informé par le RS des connexions. afin de pouvoir résoudre les noms en IP à la manière d'un DNS. Le
serveur de redirection est un intermédiaire entre le client et le LS qui route les demandes de
localisation faites par le client ( INVITE sip@). Enfin le proxy prend en charge la mise en relation des
deux clients: c'est le serveur le plus sollicité puisqu'il prend en charge les communications de leur
initialisation à leur clôture. En principe il existe deux serveurs proxy impliqués: celui côté appelant et
celui côté appelé.
16.4.2 Adressage SIP
L'adresse SIP se présente sour la forme d'une URI (15.3) qui contient deux informations
fondamentales: la désignation du correspondant ou identifiant et le serveur qui gère le compte
del'identifiant. Sous ce format, les variantes sont nombreuses comme dans le tableau ci-dessous:
Protocole
sip:
sip:
Identificateur
User [:password]@
james.b@
Nom de l’hôte
serveur
192.168.0.1
sip:
sip:
james.b@
+3310123456:pass@
server.bzh
gateway_rtc
Format standard
Format commun. 192.168.0.1 est le serveur gérant
james.b
format nécessitant la résolutiond DNS du serveur
Permet à l'appelant de contacter sa passerelle rtc (via
son mot de passe) pour que celle-ci le relaie vers le
numéro appelé.
Il est également possible de modifier les protocoles (TCP/UDP) et ports utilisés lors de la
communication.
SIP
16.4.3 Architecture
VOIX
DATA
VIDEO
SD
SIP
RSVP
TCP
IP
RTP/RTCP
SAP SDP
UDP
x
SIP utilise le port 5060 pour le proxy et 5070 pour l’agent client pour les deux protocoles UDP et
TCP. Le protocole SIP peut encapsuler un conteneur SD (Session Description Protocol). La
signalisation est transmise encapsulée en mode texte dans TCP.
On propose un exemple d’échange simple entre deux UA (User Agent) à travers deux proxies. Notons
que les proxies ne sont pas sollicités pour le transfert des données qui sont routées de client à client,
ces derniers étant avertis de leur adresse IP.
INVITE
Proxy
Proxy
INVITE
TRYING
TRYING
Ringing
UA SIP
INVITE
Ringing
OK
UA SIP
Ringing
OK
OK
ACK
ACK
RTP
BYE
OK
Proxy
BYE
OK
202
Proxy
BYE
OK
Section 5 – Services
Request_Line SIP
TRYING
RINGING
OK
UNAUTHORIZED
Code
d’état
100
180
200
401
REGISTER sip:@
INVITE sip:@
ACK sip:@
BYE sip:@
-
Enregistrement auprès du serveur pour être localisé
Ouverture de session vers un UA
Acquittement
Fin de session
16.4.4 Enregistrement d'un hardphone
Un poste téléphonique Ethernet ne dispose pas de sa configuration lors de son raccordement au
réseau. Il ne connait que son adresse MAC. Il utilise donc les protocoles réseaux classiques : DHCP
lui attribue un adresse IP et celle d'un serveur TFTP où il pourra dans un second temps télécharger un
fichier de configuration qui lui affectera ses paramètres téléphoniques. Enfin, il pourra s'enregistrer
auprès d'un serveur SIP.
DHCP
Attribution adresse IP
TFTP
Téléchargement d'un fichier
de configuration
SIP
Enregistrement du poste
Appel
16.4.5 Asterisk
Asterisk est un PBX (Private Branch Exchange) ou autocom logiciel IP. Il permet d'assurer l'ensemble
des fonctionalités nécessiare à la mise en oeuvre d'un système de ToIP d'entreprise. Il propose les
fonctionalités d'un standard téléphonique: authentification des appelants, accueil, transfert d'appel,
messagerie, filtrage... Entièrement fonctionnel sur un réseau IP pure, il peut être raccordé à un réseau
de téléphonie classique via le périphérique adéquat.
16.5 MGCP
16.5.1 Media GateWay Control Protocol - Megaco
MGCP est un protocole VoIP qui fonctionne uniquement en mode client-serveur assymétrique.
MGCP est complémentaire avec les deux protocoles H.323 et SIP. Son objectif est de soulager les
terminaux de certaines tâches. Normalisé dans RFC 3435 pour l’implémentation MGCP, et H.248
pour l’IUT dans l’implémentation Megaco
203
Section 5 – Services
MGC
SG
SS7
MGCP
IP
RTC
MG
MGC : Media Gateway Controller
MG : Media Gateway
SG : Signaling Gateway
Le MGC permet de gérer la signalisation à travers le réseau et la MG prend en charge la compression
des flux media. Dans ce cadre, MGC peut prendre en charge la signalisation H323/SIP sur IP, à la
place des terminaux. MG ne s’occupe que des flux RTP/RTCP vers IP
16.5.2 Piles Protocolaires
MGC
VOIX
2427
H.323/SIP
MGCP
RTP/RTCP
MGCP
UDP
IP
VIDEO
UDP
IP
TCP
Pile MGC
Pile MG
Normalisation
Signalisation
Flux
Détection de boucles
Evolutivité
Passerelle
TCP
2427
H323
SIP
MGCP
UIT
TCP
UDP/RTP
Non (v1)
Faible
GateKeeper
EITF
TCP-UDP
TCP-UDP/RTP
oui
ouvert
Proxy
UIT/EITF
forte
MGC / MG
16.6 Les protocoles de transport
16.6.1 RTP
Si les protocoles SIP et H.323 gère la signalisation et l'initialisation de l'appel, le transport des flux
médias utilise un protocole de streaming appelé RTP: Real Time Transport Protocol (RFC
3550/1889). RTP est encapsulé dans UDP : en effet l'usage de UDP permet une plus grande rapidité
de traitement, au détriment de la garantie d’acheminement. Les datagrammes perdus ne pouvant
s’insérer dans le flux sont ignorés.
204
Section 5 – Services
RTP
UDP
IP
[n]
Cette couche entre la voie compressée et le protocole de transport permet de garantir la base de temps
des flux audio et vidéo transmis et leur synchronisation : il assure le séquencement des paquets pour la
reconstitution des flux et identifie la nature et l’émetteur du paquet. Le format d'en-tête est résumé cidessous
2 octets
2
VER
1 1
P X
4
CC
1
7
Payload Type
M
Numéro de séquence
Identifiant de source
de synchronisation SSRC
16 octets
RTP Time Stamp
Identifiant de Flux
CSRC
DATA
Ver : Version (2)
P : padding : vaut 1 s’il y a bourrage du champ DATA. Leur nombre est précisé dans le champ
DATA lui-même.
X : Extension d’en-tête.
CC : Contributing source Count – indique le nombre de CSRC du champ suivant.
M : Marker, vaut 1 après un temps de silence.
PT : Payload Type audio ou vidéo et le type de codage.
Numéro de séquence : Incrémenté de 1 à chaque nouveau paquet
Time Stamp : Instant d’échantillonnage du premier octet du champ DATA. Il permet de
synchroniser l’horloge réception sur l’horloge d’émission en contrôlant la gigue.
Identifiant SSRC : Unique par session RTP, identifie le flux
Identifiant CSRC : sources multiples d’un même flux.
PT
0
4
8
9
15
18
31
34
Norme AUDIO
PCM loi µ
PCM loi A
G 723 (G 726)
G 722 (G 726)
G 728
G 729
H.261
H.263
Afin d'améliorer la sécurité, SRTP, Secure Real Time Transport Protocol (RFC 3711) assure
l’authentification, l’intégrité et le chiffrement des flux. Il rend impossible le rejeu des flux.
16.6.2 RTCP
RTCP pour Real Time Transport Control Protocol (RFC 3550/1889) et un protocole permettant de
gérer les flux RTP. Il permet de transmettre des informations sur les participants à la session et la
qualité du service.
205
Section 5 – Services
Type de message
200
201
202
203
204
SR - Sender Report : rapport de l’émetteur
RR – Receiver Report : rapport du récepteur
SD – Source Descrition
BYE
APP : Application spécifique
Un même datagramme RTCP peut contenir plusieurs types de message RTCP concaténés. Chaque
type de message a son propre format d’en-tête. Il ne contient pas de données.
blablabla
RTP
RTP
RTP
RTP
RTCP-RR
RTP
RTCP-SR
RTP
RTP
16.6.3 QoS
L’acheminement de données imposant un flux régulier (CBR) nécessite certaines garanties et donc un
ensemble de mécanisme (protocole, configuration matériel, traitement des données…). Sur un réseau
IP, les garanties de QoS (Quality of Service) concernent essentiellement la voix et la vidéo, en
particulier en duplex (téléphonie et visiophonie). La Qos pour le transport de la voix concerne
essentiellement un minimum de bande passante garantie et un délai maximal pour la durée aller-retour
avec un contrôle de la gigue. Il existe deux protocoles permettant la réservation de ressources
IntServ : des ressources sont garanties pour chaque flux nécessitant de la QoS
DiffServ : Les ressources sont gérés par le réseau cœur qui agrège les flux selon leur QoS
IntServ : RSVP (Ressource Reservation Protocol )
IntServ est un protocole appartenant au modèle IntServ (Services intégrés) qui permet de garantir dans
une certaine mesure une QoS sur un réseau IP.
Guaranted
Controlled Load
Garantie du débit, délai et sans perte
Différent niveaux en Best effort
RSVP définit 3 classes de service :
Best Effort
Delay Sensitive
Rate Sensitive
Assimilable à UBR d’ATM
Assimilable à ABR d’ATM – débit minimum garanti
Assimilable à CBR d’ATM – débit garanti
DiffServ
Diffserv définit deux classes de services
Expedited
Assured
Garanti du Débit et taux de perte
Haute probabilité d’acheminement
206
Section 5 – Services
Les classes de trafic sont définies en utilisant le champ TOS de l’entête IP qui a été redéfini par
l’IETF (RFC 2475); Chaque classe de trafic sera traitée d’une manière définie par le cœur de réseau.
207
Section 5 – Services
208
Section 5 – Services
17. Administration
17.1 Emulation de terminal
17.1.1 Telnet
Telnet est un protocole historique permettant d’envoyer des commandes systèmes depuis un terminal
distant (le client) qui s’éxécuteront sur le serveur et dont le résultat sera retourné au client. L’écran et
le clavier sont locaux, l’unité centrale est distante. Il permet de disposer de machines ayant de grosses
puissances de calcul, ou de les administrer à distance. Telnet utilise le port TCP-23.
TELNET
Client
port n
serveur
port 23
Octets
L’intérêt de cette émulation doit être modérée par les risques d’attaques : l’identification n’est pas
chiffrée, l’ensemble des commandes sont en claires ainsi que les résultats, sans évoquer les risques
d’attaque MITM (Man In The Middle) par usurpation.
Telnet
23
>telnet IP_destination
[Connexion au serveur]
17.1.2 SSH Secure Shell
Les risques aujourd’hui inacceptables de sécurité liés à la commande telnet imposent d’utiliser pour la
remplacer la commande ssh. Cette dernière garantit une authentification chiffrée avec utilisation de la
cryptographie à clefs publiques. La connexion au serveur lors de la première tentative provoque
l’envoie d’un certificat que le client doit valider. SSH utilise le port TCP-22.
SSH
22
>ssh IP_destination –l user
>ssh user@ip_destination
209
[Connexion au serveur]
Section 5 – Services
Client
SSH
serveur
port n
port 22
Connexion
Chiffre à clé publique
Chiffre symétrique
Cette commande très puissante permet de mettre en place des tunnels chiffrés au niveau applicatif
(VPN). Le schéma qui suit propose un scénario simple d’une connexion à un serveur FTP (décrit dans
la partie suivante) via un tunnel SSH
serveur
Client
FTP
SSH
serveur
port 22
port n
port 21
IP1
IP2
IP3
La première étape consiste à créer le tunnel qui sera accessible par le port local 2121 et dirigé vers le
serveur SSH avec un compte valide pour s’authentifier auprès de ce serveur :
> ssh IP2 -n -l user -L 2121:IP3:21
Enfin on se connecte au serveur FTP en passant à travers ce tunnel :
> ftp 127.0.0.1 2121
17.2 Transfert de Fichiers
17.2.1 FTP
Le protocole FTP (File Transfert Protocol) est un complément à l’émulation de terminal : il permet de
télécharger depuis la machine serveur ou vers cette machine tout type de fichiers. Les commandes
sont donc limitées : il s’agit de commandes propres à ce protocole pour évoluer dans l’arborescence
du serveur (CD, PWD, DIR) ou télécharger (GET, PUT).
La plupart des navigateurs internet supporte nativement le protocole ftp :
ftp://IP-serveur/
Notons que l’ensemble des échanges est en clair (login, mot de passe, commandes, fichiers) et n’offre
donc aucune confidentialité.
17.2.2 Principe de FTP
Le serveur de fichier FTP utilise TCP et écoute sur le port 21.
210
Section 5 – Services
FTP
21
FTP-DATA
20
>ftp IP_destination
ftp> ?
ftp> dir
[Connexion au serveur]
[liste des commandes]
[contenu du répertoire courant]
[Port source côté serveur]
Lors d’une procédure d’envoie ou de réception de données, des connexions sont établies depuis le
serveur vers le client. En général le client FTP ouvre un port à la volée pour recevoir la connexion en
utilisant comme numéro de port son dernier port client utilisé plus un. Le serveur utilise comme port
source le numéro 20 (FTP-DATA). Cette procédure est parfois impossible à mettre en œuvre en cas de
NAT ou de proxying. Le triggering est nécessaire. Il est également possible d’activer un mode ‘passif’
(commande PASSIVE) sur la connexion FTP initiale pour éviter cette seconde connexion : cette
commande est utile derrière un proxy ou à travers un tunnel SSH.
Client
FTP
serveur
port n
port 21
Commandes
port n+1
port 20
Données
17.2.3 TFTP
TFTP est un protocole simplifié sur UDP-69, donc en mode non connecté. Il ne gère pas
l’authentification et le chiffrement. Les commandes sont limitées en pratique à GET et PUT sans
possibilité de se déplacer dans les répertoires.
Ce caractère rudimentaire permet cependant à des terminaux légers sans configuration (machines
virtuelles, poste client, hardphones...) de télécharger des fichiers depuis des serveurs de boot. Une
machine cliente peut booter sur sa carte réseau configurée en cliente DHCP, le serveur DHCP lui
fournira outre une adresse IP, l’adresse d’un serveur tftp et le fichier image à télécharger (option
DHCP 150).
17.3 Gestion des services
17.3.1 Installation standard des services sous linux
L’installation d’un service sur un système Linux générique respecte certaines règles spécifiques. Il
existe trois types de fichiers classiquement utilisés pour un service type :
/etc/service/service.conf
/etc/init.d/service
/usr/bin/serviced.exe
Fichier texte avec les paramètres propres au
serveur : ports, répertoires de travail, liste
d’accès, path vers les exécutables…
Scripts bash permettant de démarrer ou
arrêter le service (§ suivant)
Code binaire du service. Il s’agit du démon
qui tournera en tâche de fond.
Ces éléments ne sont pas exclusifs et il existe de nombreuses variantes.
211
Section 5 – Services
17.3.2 Gestion
Afin de déterminer si un service est actif sur un serveur, la commande netstat permet d’établir
l’ouverture du port associé.
netstat –an | grep xxxx
Si le port est bien actif, un ligne similaire à celle qui suit s’affichera, validant l’état du démon :
tcp
0
0
0.0.0.0 :xxxx
0.0.0.0 :*
LISTEN
Pour arrêter ou démarrer le démon associé, le script permet une grande souplesse d’usage :
/etc/init.d/service stop
/etc/init.d/service start
17.3.3 Services sous Windows
L’installation d’un service sur un système type Windows passe en général par un programme autoéxécutable. Les services sont gérés par le panneau de gestion des services accessible par la commande
services.msc
avec la commande net il est également possible d’effectuer une gestion en ligne de commande. Pour
connaître l’ensemble des services actifs on peut utiliser la commande en ligne net :
net start
la commande sc (service controller) peut aussi s’avérer utile :
sc start service
17.3.4 Scan de ports
Si netstat permet la gestion en local des serveurs, il peut être intéressant de tester l’ouverture d’un
port sur une machine distante. Le scan de port est ainsi l’équivalent d’un ping de niveau 4. Cette
activité douteuse en ce qui concerne l’étude de machines que vous ne possédez pas, elle est cependant
une technique fort utile pour tester ses propres machines de manière distante et contrôler l’activité des
différents démons.
Nmap est un des outils les plus connus pour s’adonner à ce genre d’activités. nmap est devenu célèbre
après avoir joué un rôle non négligeable dans un film culte.
nmap 127.0.0.1
Starting nmap …
PORT
STATE
21/tcp
open
xxxx/tcp
Open
…
SERVICE
ftp
service
212
Section 6 – Réseaux Télécoms
18. Réseaux Téléphoniques
18.1 Le RTC
18.1.1 Boucle locale – Local Loop
la boucle locale désigne la portion de circuit qui rattache l’abonné, client privé, à l’opérateur
propriétaire du réseau téléphonique proprement dit.
La nature de cette « boucle » qui incluse un passage dans les deux sens client vers opérateur et
réciproquement, a très longtemps été monolithique : une ou plusieurs paires de cuivre et un opérateur
historique unique : celui qui a installé le fil.
Aujourd’hui, la déreglementation autorise toute entreprise à proposer un service d’opérateur autorisant
la concurrence avec l’opérateur initial ou historique. Cependant, il n’est pas question de tirer un fil
nouveau entre l’abonné et le nouvel opérateur ; on utilise alors l’ancien, propriété de l’opérateur
historique ce qui au niveau légal se nomme le dégroupage.
Cependant, il peut être intéressant de proposer d’autres technologies de supports comme la fibre
optique ou le canal radio, ou encore le RNIS ou bien l’ADSL.
Canal
Technologie
Cuivre
RTC
RNIS
xDSL
DECT
GSM/GPRS
UMTS
-
Radio
Optique
Les techniques sans-fils,comme DECT, Wi-Fi ou Hyperlan sont encore peut répandus pour l’accès
public aux réseaux.
18.1.2 Le réseau téléphonique public
Le RTC ou RTCP désigne le Réseau Téléphonique commuté Public (PSTN en anglais).
213
Section 6 – Réseaux Télécoms
Un réseau téléphonique est chargé d’effectuer le transport de signaux représentant des voies humaines.
Les premiers concepteurs ont cherché à réaliser des lignes transportant directement les signaux
électriques issus des microphones des appareils d’extrémité.
La bande passante minimale permettant la transmission de la parole est située dans une plage 3003400 Hz.
Des lignes avec une telle bande passante ont été étudiées et réalisées ; les signaux en ligne sont dits
analogiques ce qui correspond, en théorie, à une valence infinie pour le signal.
Sur le signal de base, téléphonique, analogique, il n’y a pas de porteuse ; une porteuse devient
nécessaire lorsque l’on transporte ces signaux dans des conditions particulières de ligne et de support
physique.
18.1.3 Organisation du réseau téléphonique
L’organisation d’un réseau téléphonique public commuté, comme le réseau téléphonique français,
permet de modéliser les méthodes utilisées pour résoudre le problème principal : Mettre en
communication deux abonnés distants et a priori non relié entre eux par un fil.
Abonné 1
Abonné 4
Cen tral 1
Central 3
Abonné 3
Central 2
Abonn é 2
En effet, la multiplication du nombre d’abonné rend impossible la solution de relier chacun d’entre
eux physiquement par une ligne : le nombre de ces lignes exploserait de manière exponantielle. La
solution adoptée est d’utiliser des commutateurs, installés dans des centraux, qui mettront sur
demande les abonnés en relation.
Chaque abonné est relié de façon permanente à un central téléphonique par l’intermédiaire d’un
équipement d’abonné (téléphone) et d’une ligne d’abonné qui lui sont propres. Les centraux sont
interconnectés par un réseau de circuits banalisés. Le choix de l’itinéraire d’acheminement dépend de
la disponibilité des circuits inter-centraux au moment de l’établissement de la communication.
Les caractéristiques du circuit entre deux abonnés peuvent donc varier d’une communication à une
autre.
18.1.4 Commutation spatiale
Une liaison physique va être établie : cette liaison est dite « commutée », car elle n’est pas fixée d’une
manière définitive (cas des liaisons dites point à point), ce qui permet à l’un des utilisateurs du réseau
de choisir et de changer d’interlocuteur. Cette liaison est dite commutée « spatialement » car il existe
un lien physique ou spatial , c’est à dire électrique, entre les deux abonnés
La liaison est provoquée par une demande préalable effectuée par un point, dit demandeur ou
appelant, qui souhaite être en liaison avec un autre point, dit demandé ou appelé, l’un ou l’autre des
interlocuteurs peut mettre fin à la liaison lorsqu’il le désire.
214
Section 6 – Réseaux Télécoms
Il existe aussi une liaison dite transparente, lorsque les signaux en ligne ne donnent pas de possibilités
de communication entre le transporteur et les utilisateurs.
Abonné 2
Abonn é 1
liaison physique t e mp oraire commut é e
La troisième partie traite plus particulièrement des principes de commutation.
18.1.5 Les 4 niveaux de l’organisation générale du réseau français
Niveau
Niveau
Niveau
Niveau
1
2
3
4
CTP – Centre de transit primaire
CTS – Centre de transit secondaire
CAA - Centre à autonomie d’acheminement
CL - centre local
SR – Sous répartiteur
PD – Point de distribution
ZAA
ZL
La Zone locale (ZL) est la zone géographique dépendant d’un même CL.
La Zone à autonomie d’acheminement (ZAA) est la zone géographique dépendant d’une même ZAA.
Les différents CAA sont reliés entre eux par l’intermédiaire de NID, nœuds interurbain de
distributions, et de liaisons constituées par des liaisons câbles ou par Faisceaux hertziens.
18.1.6 Articulation des éléments du réseau
Si l’on pénètre un peu plus dans la structure interne du réseau, on est amené à distinguer différentes
catégories de centraux et de circuits d’interconnexion.
La figure suivante illustre cette différenciation dans le cas d’une communication téléphonique
interurbaine typique :
Réseau
Interurbain
Z AA
Abonné 1
CAA
ZAA
Abonné 2
CAA
CL
CL
Dans le cas général, un abonné est relié à un central téléphonique chargé d’organiser l’acheminement
de ses communications vers les autres abonnés, ce central (CAA) est relié aux autres commutateurs
par plusieurs faisceaux de circuits et choisit pour chaque communication l’itinéraire le plus approprié
compte tenu du point d’aboutissement et de l’état de charge du réseau. Les CAA ont une capacité
variable pouvant aller jusqu’à quelques millions d’abonnés. ceux-ci sont situés dans un rayon
n’excédant pas une dizaine de kilomètres, sinon le coût des lignes d’abonnés deviendrait très
important.
Dans certaines zones peu denses, le nombre d’abonnés ne justifie pas l’existence d’un CAA, et on
installe donc un Centre Local (CL) relié à un seul CAA par un faisceau de circuits unique. Toutes les
communications d’un abonné relié à un CL passent par le CAA dont dépend le CL, sauf celles
destinées aux abonnés rattachés au même CL.
Les CAA sont reliés entre eux directement ou par l’intermédiaire de Centres de Transit (CT).
215
Section 6 – Réseaux Télécoms
Les liaisons à grande distance interurbaines sont établies entre centres de transit. Le réseau interurbain
comprend les centres de transit et les liaisons qui les relient entre eux et aux CAA.
18.1.7 Hiérarchie des voies analogiques
Sur les circuits interurbains et de grande distance, on va former un groupe sur un même circuit de
plusieurs voies téléphoniques à bande étroite pour former un circuit multiplex à large bande. C’est
ainsi, par exemple, qu’on regroupe 12 voies téléphoniques de 4 KHz de bande pour former un Groupe
Primaire GP), et ainsi de suite.
Un groupe est une structure selon laquelle, les voies téléphoniques sont organisés.
Il existe 4 types de groupes :
Système
Relation
Capacité
Une voie
GP – Groupe primaire
12 Voies
12 voies
Bande de fréquence
300
à
60
à
3400 Hz
108
kHz
GS – Groupe secondaire
5GP
60 voies
312
à
552
kHz
GT – Groupe tertiaire
5GS
300 voies
812
à
2044
kHz
GQ – Groupe quaternaire
3GT
900 voies
8516 à
12388
kHz
18.1.8 Câblage prise téléphonique
Une prise téléphonique appelé communément prise en 'T' n’utilise que deux fils sur les huit que
comporte un fil téléphonique.
Signal
2
1
4
3
6
5
18.1.8 Signalisation téléphonique
On a longtemps utilisé des postes à cadrans mécaniques qui imposaient une durée assez longue pour la
composition du numéro et qui imposaient également un codage au niveau du central de connexion.
Avec l’utilisation de fréquences vocales, la vitesse des numéros peut aller jusqu’à dix chiffres par
seconde, et de plus ces numéros peuvent transiter directement à travers le réseau téléphonique dans le
canal 300-3400 Hz sans codage interne.
1209
1336
697
1
2
3
A
770
4
5
6
B
852
7
8
9
C
941
*
0
#
D
1477
1633
Hz
Signalisation DTMF :
216
Hz
Section 6 – Réseaux Télécoms
Quand l’abonné appuie sur une touche du clavier, le poste envoie vers le central un signal électrique
composite constitué de la somme de 2 signaux de fréquences différentes, significative de la ligne
(fréquence basse) et de la colonne (fréquence haute) où est située la touche. Par exemple, si l’abonné
appuie sur la touche 6, le poste émet le mélange 770 + 1477 Hz. Dans le central, un récepteur de
numérotation, par un ensemble de 8 filtres, permet de déceler individuellement la présence de chaque
fréquence et donc d’en déduire le chiffre composé.
Les touches * et # ainsi que A, B, C et D, ces dernières n’équipant pas encore tous les postes, sont
réservées à des fonctions spéciales pour la télématique.
18.1.9 Réseau sémaphore SS7 :
La signalisation est véhiculée sur un réseau sémaphore appelé SS7 (Signalisation Sémaphore 7) ou
CCITT N°7. Le but de ce réseau est de véhiculer les demandes d’appels, lorsqu’un abonné compose le
numéro demandé, mais sans utiliser les ressources circuits qui seront utilisées pour la communication
si elle a lieu. Un canal sémaphore, c’est à dire un canal numérique spécifique, est réservé à la
transmission du numéro à travers le réseau sémaphore qui le route jusqu’au CAA demandé (identifié
par les premiers chiffres du numéro téléphonique). Ainsi un canal sémaphore de 64kbits/s peut gérer
2000 canaux téléphoniques environ.
Réseau sémaphore SS7
1- Demande d'appel
3- Etablissement
du cicuit
2- Accusé de réception d'appel
Réseau téléphonique
Les fonctionnalités tel que renvoie d’appel, rappel automatique etc.. peuvent alors s’effectuer
simplement par manipulation sur le routage sémaphore sans solliciter les circuits téléphoniques euxmêmes.
18.2 RNIS
18.2.1 Objectifs
Le RNIS : Réseau Numérique à Intégration de Service ou ISDN : Integrated Service Digital Network
(en anglais) avait pour objectif premier de remplacer le réseau téléphonique analogique RTC par un
réseau entièrement numérique.
La numérisation du réseau téléphonique permet à ce dernier de devenir multi-usage et de transporter
les informations relatives à la voix, aux données, aux textes et aux images. Il évite l’étranglement du
canal téléphonique (300-3400 Hz). De plus, il est évolutif et adaptable aux futurs équipements.
RNIS – bande étroite : commercialisé historiquement par France Télécom sous le nom de
NUMERIS
RNIS – large bande : ATM (Asynchronous Transfer Mode)
217
Section 6 – Réseaux Télécoms
Avant le RNIS, la numérisation s’effectuait au niveau du commutateur téléphonique, un ou plusieurs
circuits numériques du type MIC (Modulation par Impulsions et Codages) permettant la connexion de
deux commutateurs adjacents. Ces liaisons intercommutateurs d’abord locales et urbaines se sont
ensuite rapidement étendues aux niveaux des liaisons interurbaines et même internationales.
Le RNIS étend la numérisation jusqu’à l’abonné ce qui apporte plusieurs avantages dont :
une grande qualité de transmission de bout en bout.
une meilleure utilisation de la ligne téléphonique d’abonné qui achemine en simultané
deux canaux à 64 kbit/s relatifs à la voix et aux données
un dialogue plus riche entre l’installation d’abonné et le réseau grâce à un canal D à 16
kbit/s relatif en particulier à la signalisation
18.2.2 Accès au réseau
Nous aborderons ici la couche 1 du RNIS, c’est à dire le raccordement physique. Les couches
supérieures seront évoquées dans les sections suivantes.
Pour pouvoir avoir accès au réseau RNIS (se connecter), il faut avoir un TNR qui signifie
Terminaison Numérique de Données (en anglais, NT1 : Network Termination 1). De là, il y a deux
possibilités :
soit un accès pour les particuliers ou PME (accès de base)
soit un accès privé pour les grosses entreprises par exemple (accès primaire)
Entre le RNIS et le TNR, il y a une interface appelée U (jonction) et entre le TNR et l’accès que l’on
désire, il y a une autre interface appelée T.
L’opérateur (France Télécom car c’est lui qui le commercialise) s’occupe de la partie comprise entre
le RNIS et l’interface T.
Interface
U
TNR
Interface
T
Accès de base
RNIS
NT1
Accès primaire
Opérateur
Principe de l’accès au réseau
Le TNR désigne la Terminaison numérique d’abonnée (Network Termination 1 en anglais).
Le terminal RNIS (téléphone, télécopieur…) est raccordé à l’interface d’accès au réseau par un
connecteur RJ 45 :
218
Section 6 – Réseaux Télécoms
18.2.3 Nature des accès
Les canaux suivants ont été standardisés par l’UIT (Union Internationale des Télécommunications) et
ont été combinés pour offrir deux configurations.
La liaison numérique RNIS transporte divers canaux de communication multiplexés, notamment les
canaux :
Canal
A
B
C
D
E
H
Nature
analogique téléphonique à 4 kHz
numérique de type MIC à 64 kbit/s
numérique à 8 ou 16 kbit/s
numérique de signalisation à 16 ou 64 kbit/s
numérique, écho du canal D, pour la signalisation interne du RNIS
numérique de débits 384, 1536 ou 1920 kbit/s
A partir de ces canaux on peut définir les accès suivants :
Accès
S0
S1
S2
Pays
Europe – USA - Japon
USA - Japon
Europe
Nature
2B+D
24B
30B+D
Débit ligne réel
192kbit/s
1544kbit/s
2048kbit/s
Les accès européens sont décrits dans les paragraphes qui suivent.
18.2.4 Accès de base S0 2B+D
Cet accès est utilisé chez un particulier quelconque ou bien dans une PME. L’équipement de base est
composé de deux téléphones et d’un PC. Si on en a plus, il faut mettre un TNA :Terminaison
Numérique d’Abonné (en anglais, NT2 : Network Termination 2) qui joue le rôle de régie.
Interface
T
TNA
Interface
S0
NT2
Optionnel
Si un des appareils (téléphone ou fax) ne dispose pas des connecteurs normalisés, il suffit de rajouter
un boîtier d’adaptation AT (Adaptateur de terminal).
S'il est donc possible de raccorder deux terminaux téléphoniques (Téléphone, fax) et un PC avec une
connexion à 16kbit/s, cette ligne peut être aujourd’hui utilisée pour un accès rapide d’un PC à Internet
en exploitant la totalité de la bande passante de la ligne via un modem RNIS.
Interface
S0
AT
Installation standard simple chez un particulier
219
Section 6 – Réseaux Télécoms
D - 16kbit/s
S0
2B - 2*64kbit/s
L’accès de base 2B+D (144 kbits/s) est subdivisé en trois sous-débits :
2 canaux dénommés B de 64 kbits/s chacun, permettant d’établir 2 liaisons téléphoniques
numériques commutées indépendantes ou pouvant être utilisées pour différents services
numériques.
Un canal dénommé D de 16 kbits/s destiné à la signalisation (SS7) et à la transmission de
données par paquets (PC, TRANSPAC, X 25).
On a une trame de 48 eb sur 250 µs :
le débit utile est de (2 * 64) + 16 = 144 kbit/s
le débit réel est de 48 / 250.10-6 = 192 kbit/s
Le tableau ci-dessous présente la trame des eb sur la durée de 250 µs.
F
L
B1
8 bits
E
D
A Fa N
B2
8 bits
250 µs
E D
M
B1
8 bits
E
D
S
B2
8 bits
E
D
L
B1 : premier canal B
B2 : second canal B
D : canal D
E : écho de canal D
M, S : bits réservés
F, Fa, L, A :gestion et synchronisation sur le bus RNIS
le transcodage électrique est de type HDB3.
18.2.5 Accès primaire/entreprise S2 (30B+D)
Pour cet accès, il faut utiliser un TNA (aussi appelé PABX, autocom pour autocommutateur). Sur le
schéma suivant, un exemple est donné du raccordement d’une entreprise au réseau RNIS puis à un
autre réseau interne :
Interface
U
RNIS
Interface
T
Interface
S0
AT
TNA
PABX
NT2
TNR
NT1
AT
RLE
Installation autour de l’autocommutateur numérique (TNA/PBX) privé d’une entreprise
L’UIT (Union Internationale des Télécommunications) dans les normes référencées Ixxx a défini des
points de référence ou interface, nommés R, S, T et U ( voir schéma installation accès de base et
schéma installation accès primaire ) pour spécifier les interfaces d’accès des équipements au RNIS.
220
Section 6 – Réseaux Télécoms
Les points S et T sont les points de référence les plus importants, car c’est en ces points que sont
définis les débits, les types de canaux de transmission et les protocoles d’accès usager réseau RNIS.
Les interfaces S et T sont fonctionnellement semblables.
Le point de référence T représente l’interface d’accès de l’usager à la terminaison numérique RNIS.
Le point de référence S défini l’interface d’accès (côté TNA) aux divers terminaux RNIS de l’abonné.
Cet accès offrant 30 canaux B de débit 64 kbit/s et un canal D de débit 64 kbit/s est principalement
destiné au raccordement des autocommutateurs téléphoniques ou multiservices privés (PABX).
D - 64kbit/s
S2
30B - 30*64kbit/s
Accès S2 30B+D :
On a une trame de 256 eb sur 125 µs , c’est à dire 32 IT (intervalle de temps) contenant chacunun
octet de 8 bits , et véhiculant un canal à 64kbit/s. On obtient donc :
débit utile est de (30 * 64) + 64 = 1984 kbit/s
débit réel est de 256 / 125.10-6 = 2048 kbit/s
Le débit réel tient compte d’un canal B supplémentaire non destiné à l’utilisateur : c’est le premier IT
(IT0). Le 17ème IT (IT16) contient le canal D.
S y nchro
serv ices
Trame
125 us
IT0 IT1
IT15
IT16
IT31
C anal D
Le canal B constitue un support de choix pour des applications de transmission de données à haut
débit non permanentes telles que : télécopie, consultation de bases de données, téléchargement de
logiciels, transmission d’images, audioconférence enrichie…
L’accès au réseau TRANSPAC est possible à travers NUMERIS par le canal D ou par le canal B pour
des débits allant de 2,4 à 64 kbit/s.
A l’extrémité de la liaison numérique, l’opérateur installe chez l’abonné RNIS une terminaison
numérique de réseau (TNR). La TNR est reliée au centre de raccordement RNIS de l’opérateur par
l’intermédiaire du câble téléphonique à paires torsadées existant.
18.3 ADSL
18.3.1 Historique
Depuis 1999, la technologie ADSL (Asymetrical Digital Subscriber Line) s’impose pour remplacer les
liaisons RNIS entre l’abonné et le réseau numérique. Cette technologie est dérivée de la VoD (Video
on demand) qui était un service envisagé il y a une dizaine dizaine d’année pour distribuer chez
l’abonné, par les lignes téléphoniques cuivre la télévision numérique interractive, et en particulier
permettre le choix d’un film. La diffusion des magnétoscopes VHS et des cassettes a rendu ce type de
services inutile.
221
Section 6 – Réseaux Télécoms
Accès cuivre
RTCP
Le développement de l’Internet a exigé des accès numériques haut-débit sur la boucle locale, c’est à
dire sur la liaison (paire de cuivre) entre l’abonné et l’opérateur (central). Les modems téléphoniques,
modulant sur le canal téléphonique analogique 0-4kHz atteignent leur limite à 56kbit/s, ce qui est
largement insuffisant. La technologie ADSL, issu du service VoD, est une promesse de haut-débit
sans modifications lourdes de la ligne physique (cas du RNIS interface S0 ou S2).
Les services DSL sur lignes téléphoniques existantes concurrencent aujourd’hui les accès « hautdébit » plus classiques comme l’accès de base RNS de même que l’accès primaire S2. Ils seront
prochainement eux-mêmes concurrencer par les déploiement de la fibre optique vers l’abonné
(FTTH : Fiber to the Home)
Client
Accès cuivre
Backbone
Internet
Centre
d'accès
V92-xDSL
Câble/coaxial
câble
Fibre optique
Fibre optique
FTTH
Centre
d'accès
Backbone
Internet
Centre
d'accès
Backbone
Internet
L’UIT a normalisé l’ADSL et ses évolutions dans une série de recommandation : G992,G993,G994,
G997…
18.3.2 Concept
Retenons trois points importants :
La ligne téléphonique analogique est opérationnelle, même pendant la connexion
La liaison numérique est constituée de deux canaux multiplexés en fréquence : un pour la
liaison abonné-réseau, dite montante (« upstreams »), un second pour la liaison
descendante réseau-abonné (« downstreams »).
Les débits des canaux sont différentes (asymétriques) et variables (adaptabilité).
Le schéma qui suit représente le multiplex de fréquence d’une liaison ADSL.
Canal
t éléphonique
4kHz 2 5kHz
Canal
mont ant
200kHz
Canal
descendant
1,1MHz
f
18.3.3 Les variantes xDSL
On dénomme par xDSL les différentes variantes de la technologie, selon principalement les débits des
canaux montants et descendants. Le tableau suivant résume les paramètres.
222
Section 6 – Réseaux Télécoms
Service
Signification
caractéristiques
Débit
montant
Débit
descendant
Distance
ADSL
Asymmetric DSL
asymétrique
Asymmetric DSL
Asymétrique
<1,5Mbit/s
<8Mbit/s
<10Mbit/s
5 km
ADSL 2 *
<160kbit/s
<256kbit/s
<1Mbit/s
6 km
ADSL 2+
Asymmetric DSL
Asymétrique
<1.2Mbit/s
<25Mbit/s
6 km
ReADSL
Reach Extended ADSL
Asymétrique
<1Mbit/s
<10Mbit/s
8 km
HDSL
High bit data rate DSL
2Mbit/s
2Mbit/s
4 km
SDSL
Single pair DSL
2Mbit/s
2Mbit/s
3 km
RADSL
Rate adaptative DSL
Symétrique sur deux
paires
Symétrique sur une
paire
variable
< débit ADSL
< débit ADSL
6 km
VDSL
Very high bit data rate
DSL
Free ADSL
Variable
<2Mbit/s
<50Mbit/s
Asymétrique sur
plusieurs paires
<18Mbit/s
<174Mbit/s
300 m
1500 m
6 km
F-ADSL ( ?)
DSL : Digital Subscriber Line – Ligne Numérique d’Abonné
xDSL et bandes de fréquences
* L’ADSL 2 présente essentiellement des avantages sur l’ADSL simple en terme de qualité de
services : temps d’initialisation de la connexion cours (3s contre 10s), une meilleure fiabilité des
liaisons…
C anal
téléphonique
(PO T S - Plain O ld
T elephonic Servic e)
H DSL - S DS L
C anal
descendant
A DSL
C anal
montant
A DSL
4kHz 25kHz
200kHz
V DS L
C anal
descendant
A DS L2+
1,1MHz
f
2,2MHz
Débit Mbit/s
50
VDSL
20
10
ADSL 2+
ADSL
ReADSL
6km
3km
8km
Distance
Abonné - Réseau
Débit et longueur de la ligne d’abonné
18.3.4 Débit maximal et débit pratique
Un point fondamental, qui sera détaillé par la suite, est que le débit indiqué est toujours un débit
théorique, dont on peut être certain qu’il ne sera jamais atteint. Il dépend de la qualité de la ligne et de
la longueur de cette ligne et ne peut être déterminé avec certitude qu’au moyen d’une mesure.
223
Section 6 – Réseaux Télécoms
En outre, les offres tiennent compte des débits sur le back-bone ATM sur lequel sont raccordés les
modems du DSLAM (cf § 4.2.1). Il faut tenir compte d’une perte de débit due à l’encapsulation des
datagrammes dans le flux de cellules ATM (environ 15%).
18.3.5 Topologie
Le schéma qui suit présente la topologie de la boucle local ADSL. Le Modem ADSL est constitué en
principe d’un modem proprement dit et d’un POTS (Plain Old Telephone Service) qui permet la
cohabitation de la ligne téléphonique et de la liaison ADSL.
Le PC peut-être raccordé à la ligne ADSL par l’intermédiaire du port USB (1 ou 2), d’un coupleur
type Ethernet (carte réseau) ou d’une interface ATM. Ces trois technologies sont en effet susceptibles
de fournir la bande passante suffisante supérieure à 1Mbits/s pour le transfert des données.
Au niveau du fournisseur d’accès, un splitter permet de séparer l’interface POTS de celle de l’accès
numérique et permet d’aiguiller le signal vocal vers le RTC (PSTN-Public Switched Telephonic
Network) et un boîtier terminal côté fournisseur d’accès, restitue le signal numérique qui est alors
transmis sur le réseau Internet via une liaison haut-débit.
RTCP
DSLAM: Digital Subscriber Line
Access Multiplexer
Adaptateur d'accès
POTS
POTS
Paire cuivre
téléphonique
ANT
ADSL - NT
ADSL -LT
Splitter (filtre)
Splitter
Backbone
Internet
interface
réseau
ADSL -LT
A TM
155M bits/s
ADSL -LT
Abonné
Fournisseur d'accès
ANT : ADSL Network Termination – POTS : Plain old telephonic service
18.3.6 Traitement du signal
Il existe deux techniques de modulation utilisées pour l’ADSL : la CAP et la DMT. En réalité, il s’agit
de dénominations de deux principes de transmissions liés au partage du spectre. Nous allons détailler
sommairement ces deux techniques : cela permettra de comprendre la notion d’adaptabilité des débits
et de justifier pourquoi on ne peut garantir un débit fixe pour la liaison ADSL, ce qui n’est pas le cas
du RNIS.
Pour la technique CAP, La première idée consiste à utiliser une seule fréquence porteuse dont la
vitesse de modulation permettra d’optimiser la largeur du spectre.
Au total, elle peut disposer de l’ensemble du canal descendant qui atteint presque 1MHz.. Avec un
filtrage optimal de Nyquist sur une modulation de valence 64 on peut donc espérer
6eb*1,2*1MHz=7,2Mbit/s. En pratique, on peut espérer 1,5Mbit/s.
dB
Fonction de transfert
Spectre modulé
f
Canal descendant seul représenté
224
Section 6 – Réseaux Télécoms
Du point de vue signal, la modulation CAP (carrierless amplitude and phase) est une variante de la
modulation QAM. Elle s’en distingue par le traitement du signal modulant qui subit une transformée
de Hilbert. La mise en œuvre du modulateur est donc totalement différente. Les modulations sont de
valences variables et de vitesse variable. Elles s’adaptent aux exigences du canal de propagation
(pertes, fonction de transfert…). Il s’en suit donc que le débit ne peut être garanti.
Un point important est l’utilisation de techniques d’égalisation puissantes pour permettre d’utiliser le
maximum de bande passante, quelque soit la qualité du support. Cette exigence disparaît pour la
technique suivante, DMT.
La seconde approche est la DMT: ce terme désigne une technique de modulation multiporteuse ,
Discrete Multi Tone (DMT). Ceci présente l’avantage de pouvoir utiliser seulement les parties du
canal où la transmission est correcte (atténuation perturbations parasites, distorsions de phase…).
On compte 256 canaux descendants (dans le meilleur des cas, car certains canaux peuvent ne pas être
utilisés si la liaison y est de mauvaise qualité), 1 réservé au canal téléphonique, 5 réservés séparant la
voie des données, 32 montants,. La bande passante totale est de 1,1MHz, ce qui autorise pour chaque
sous-porteuse un canal (ou tone) de 4,3125kHz de large.
dB
Fonction de transfert
sous porteuses
modulées
200kHz
1,1MHz
218-n canaux
f
Canal descendant seul représenté
Chacune de ces porteuses peut être modulée en 4QAM, 16QAM, 64QAM ou 256QAM pour optimiser
le débit, à la vitesse constante de 4kBaud. Dans cette technique le choix des canaux optimaux ne
nécessite pas une égalisation complète, mais les sous-porteuses peuvent se perturber l’une l’autre
créant en plus de l’interférence inter symbole, des interférences intercanaux. L’égalisation est donc
néanmoins nécessaire pour limiter ces phénomènes.
La valence des sous-porteuses peut varier de 4 à 256, soit 8 bits par moments au maximum. En
assimilant la largeur à la vitesse de modulation (lobe principal de la modulation) on en déduit un débit
maximal théorique de :4 kBd*8bits*256porteuses= 8.192Mbits/s. C’est la limite pour l’ADSL
standard. L’ADSL2 et surtout l’ADSL2+ qui double la bande descendante, permet d’accroître cette
valeur jusqu’à 18Mbit/s théorique.
Les équipements CAP sont plus simples à mettre en œuvre et nécessitent moins de puissance que les
modems DMT, Cependant la technique DMT est plus performante.
18.3.7 Les services DSL
Une des applications (La « killer » application) est d’utiliser la technologie ADSL sur la boucle locale
cuivre réservée initialement au RTC pour disposer d’un connexion haut-débit au réseau Internet. La
contrainte principale est la longueur de la ligne. Compte tenu de ces caractéristiques, la connexion
peut être permanente avec une adresse IP fixe définitive pour la station, ce qui peut être un
inconvénient pour la sécurité et impose une protection.
En pratique, ce type de liaison avantageux est réservé aux habitants des villes proches des centres de
commutation équipés, ainsi qu’aux PME et PMI.
L’idée est venue aux utilisateurs et fournisseurs de proposer un service de transport de la voix sur le
canal ADSL (Voice over DSL – VoDSL). Quel intérêt étant donné la présence du POTS traditionnel ?
225
Section 6 – Réseaux Télécoms
Tout simplement , le débit permet de faire coexister sur un seul canal jusqu’à une dizaine de
communications téléphoniques simultanées, d’où un avantage certains en terme de coût.
Le service de VoD (Video on Demand) est historiquement celui qui a lancé les recherches sur l’ADSL
pour fournir un accès numérique destiné à transmettre de la vidéo à un abonné via le canal cuivre
téléphonique. Tombé dans l’oubli avec l’avènement du magnétoscospe (VHS), l’offre refait surface
depuis que, finalement l’ADSL existe, grâce à Internet.
Aujourd’hui, le service de télévision via les systèmes DSL sont en concurrence avec la diffusion
satellite (DVB-S), la diffusion par câble (DVB-C), la télévision numérique terrestre (TNT - DVB-T),
la télévision sur mobile (DVB-H), sans parler des Wifi haut-débits, du Wimax, du LTE…
Accès à Internet, diffusion TV, téléphonie deviennent des services purs, de plus en plus décorrélés des
réseaux qui les transportent. On ne peut que dire que la concurrence sera rude, mais que les atouts sont
nombreux et il reste difficile de prédire lequel sera plébiscité par le grand public : qualité, simplicité,
fiabilité, coût, évolutivité, quantité de l’offre ?…
Historiquement, les applications technologiques comme la TV couleur, la Hi-Fi, le téléphone portable
ou plus récemment l’accès Internet, les compressions (médiocres) audio-video MP3-divX, (et bientôt
la TVHD, THD…) ont montré que pour le client le plus séduisant des atouts est d’abord un coût faible
(voire très faible) pour un service nouveau, le dernier atout étant la qualité. Avis aux commerciaux…
226
Section 6 – Réseaux Télécoms
19. Réseaux Hauts-débits
19.1 Synthèse des besoins
19.1.1 Réseaux filaires
Résumé des différents types de réseaux filaires mis en œuvre dans les réseaux :
Réseaux de données pour les sytèmes informatiques
Réseaux Télécom pour la téléphonie (service de transmission de la voix)
Réseaux à Intégration de services (RNIS) Voix, Données et Vidéo.
Distance
X2 5
RNIS
2B+D
RT C
V90
RNIS
2B+D
RNIS
30B+D
PDH
ATM
50000m WAN
5000m MAN
DQDB
Token Ring
ADSL
500m LAN
FDDI
STM- 1
STM-64
High Speed
Token Ring
ADSL2
Ethernet
Fas t
Ethernet
Giga
Ethernet
10Giga
Ethernet
VDSL
Bo u cle
Lo cale
10k
100k
10M
1M
100M
1G
FIBRE OPTIQUE
CUIVRE
10G
Débit bits/s
On distingue la boucle locale désignant l’accès aux réseaux par des systèmes externes, des réseaux
proprement dit intégrant un ensemble de machines de manière cohérente.
19.1.2 Réseaux radio
Nous retrouvons ces éléments distinctifs pour ce qui concerne les réseaux radio
227
Section 6 – Réseaux Télécoms
Portée
Cellulair e
GSM
WiMax
GPRS
EDGE
4G
10000m
802.16
UM TS
802.11b
1000m
802.11g
802.11a
802.11n
WLAN
100m
HomeRF
10m
WPAN
ZigBee
Bluetooth
1m
1.0
10k
HyperLan/ 2
WUSB/UWB
2.0
10M
1M
100k
100M
1G Débit bits/s
Les différentes évolutions tendent vers une augmentation du débit et un accroissement de la portée.
Les réseaux radio sont particulièrement destinés aux réseaux d’accès, alors que les réseaux à
infrastructures filaires aux réseaux de backbone (épine dorsale)
LAN
MAN
WAN
WLAN
WPAN
Local Area Network
Metropolitan Area Network
World Area Network
Wireless LAN
Wireless Personal Area Network
19.1.3 Services et débits
Chaque service fournit par un réseau de télécommunication a un coût en terme de débit, de délai, de
temps de réponse, de nature de la liaison… Selon leur finalité, les réseaux décrits précédemment ont
certaines capacités adaptées à un service particulier. L’harmonisation des débits, l’interopérabilité des
protocoles et la qualité des codages de sources sont également des points fondamentaux dans
l’évolution des systèmes et des services proposés.
Services
Voix
Données
Vidéo
Visiosonférence
Vidéo Médicale
Débit*
10-64kbit/s
50kbit/s – 10Mbit/s
500kbit/s – 5Mbit/s
500kbit/s – 15Mbit/s
500Mbit/S
Flux
Constant
Rafale
Rafale
Constant
Constant
Délai
Contant
Variable
Constant
Constant
Constant
Mode
Duplex
Simplex
Simplex
Duplex
Simplex
* Selon compression
Les services spécifiques comme la vidéo médicale ou scientifique exigent des qualités particulières ;
ainsi, aux Etats-Unis, les techniques de compression type MPEG2 sont évitées pour éliminer les
risques d’artefacts et d’erreurs de diagnostic ou d’interprétations.
19.2 Hiérarchies numériques
19.2.1 Intégration des réseaux
L’accroissement des débits et le multiplexage pose deux problèmes distincts à l’intégration des
réseaux de télécommunication :
228
Section 6 – Réseaux Télécoms
S’adapter aux nouvelles technologies (fibre optique, multiplexage en longueur d’onde…) et
permettre d’évoluer avec des débits de plus en plus élevés avec une souplesse au niveau du
support
Assurer des niveaux de multiplexage de plus en plus élevés avec une densité de voies de plus
en plus grande sur les lignes de transmissions.
19.2.2 Horloges
Le partage des horloges entre les équipements terminaux et le réseaux est un point fondamental dans
la compréhension des réseaux de télécommunications.
On distingue trois types de réseaux : synchrone, asynchrone et plésiochrone, en relation avec
l’harmonisation des débits.
Le schéma et le tableau suivant résument les différences et les caractéristiques de ces techniques.
Horloge B
Horloge A
Réseau
Horloge R
Réseau
Synchrone
Asynchrone
SDH/
SONTET
ATM
Plésiochrone
PDH
Partage
Le réseau impose son horloge à A et B :
Horloge R=Horloge A = Horloge B
Les horloges A et B n’ont aucune relation
entre elles :
Horloge A ≠ Horloge B
Les horloges A et B sont presque identiques
et fournies par les terminaux.Elle est
commune avec celle du réseau
Horloge A ≈ Horloge B
Nous aborderons les techniques asynchrones dans la partie suivante (ATM). Les deux chapitres qui
suivent détaillent PDH et SDH. Les réseaux PDH sont les plus anciens ; ils se trouvent au cœur des
réseaux téléphoniques RNIS. Il ont évolué et au cours des années 70 on a pu mettre en œuvre de
nouvelles techniques de multiplexage synchrones (SONET/SDH) beaucoup plus performantes.
La technique temporelle asynchrone (ATM – Asynchronous Transfer Mode) est un effort pour
accroître la souplesse des réseaux et des services partagés.
19.2.3 Les niveaux de base
Rappelons qu’il existe deux niveaux de base dans la hiérarchie numérique ; en fait trois avec les EtatUnis ; ils ont été étudiés avec l’architecture RNIS dans le chapitre précédent (18.2). Le premier niveau
(ou niveau 0) consiste en la voie analogique téléphonique numérisée à 8kHz et générant un débit utile
de 64kbit/s, soit 8 bits tous les 125µs. Cette voie correspond à un canal B.
L’accès S0 ou accès de base est constitué de 2 canaux B et un canal D à 16kbit/s. Associé aux canaux
de services, on atteint un débit réel de 192kbit/s
L’accès S2 intègre 30 voix utiles (canaux B) plus un canal D à 64kbits et un canal de service dont
nous verrons l’usage ultérieurement. Au total 2,048Mbit/s utiles répartis sur 32 IT de 8 bit en 125µs.
[norme UIT G704]
229
Section 6 – Réseaux Télécoms
L’accès S1 est propre aux Etats-Unis. Ils est constitué de 24 voies utiles pour un débit utile de
1,544Mbit/s.
Le problème des hiérarchies numériques est d’intégrer ces éléments dans des multiplex pour accroître
la capacité et le débit.
19.3 PDH
19.3.1 Intégration des multiplex.
Historiquement, les systèmes PDH (Plesiochronous Digital Hierarchy) ont été développés dans les
années 1960. Les avantages de cette technique étaient la rapidité du multiplex, l’absence de
bufferrisation et d’une gestion d’horloge, et donc au final des délais de transmission faibles et
cohérents avec les critères d’une bonne liaison téléphonique.
L’idée de la hiérarchie est de regrouper un certains nombres d’accès de bas niveau pour en constituer
un de plus haut niveau afin d’assurer la coexistence de nombreuses voies sur un seul support. Le
concept de plésiochrone implique que les débits des affluents (ou voies bas débits entrantes) ne sont
pas tous identiques en réalité même si leur valeur indicative est identique (par exemple 64kbit/s). En
conséquence, le débit de sortie du multiplex doit être supérieur à la somme de tous les débits d’entrée
pour compenser une éventuelle dérive (accélération) d’un des débits d’entrée.
30 voies
64kbit/s
MUX
2,048Mbit/s
niveau E1
De la même manière, ces niveaux sont intégrés : ainsi 4 E1 vont constituer un niveau E2.
2,048Mbit/s
MUX
8,448Mbit/s
niveau E2
On constate le même décalage des débits en sortie :
4x2,048 < 8,448
Chaque sortie de multiplex a donc sa propre fréquence d’horloge, indépendante de celle de ses
affluents, eux-mêmes indépendants entre eux.
19.3.2 Niveaux des hiérarchies
230
Section 6 – Réseaux Télécoms
En Europe :
Niveau
0
E1
E2
E3
E4
E5
Voies
1
30
4 E1
4 E2
4 E3
4 E4
Débit brut
64 kbit/s
2,048 Mbit/s
8,448 Mbit/s
34,368 Mbit/s
139,264 Mbit/s
564,992 Mbit/s
Niveau
T1
T2
T3
T4
Voies
24
4 T1
7 T2
6 T3
Débit brut
1,544 Mbit/s
6,132 Mbit/s
44,736 Mbit/s
274,176 Mbit/s
Niveau
T1
T2
T3
T4
T5
Voies
24
4 T1
5 T2
3 T3
4 T4
Débit brut
1,544 Mbit/s
6,132 Mbit/s
32,064 Mbit/s
97,728 Mbit/s
397,2 Mbit/s
Aux Etats-Unis :
Au Japon :
19.3.3 Synchronisation et signalisation
Le premier octet de la trame E1 (IT0) est utilisé pour la synchronisation de la trame complète et
indiquer le début. Cet octet a aussi un rôle de gestion de la liaison entre deux multiplex : gestion des
alarmes, détection d’erreurs avec un CRC. La justification des variations de débit des affluents est
gérée dans l’octet de signalisation (IT16).
E3
E3
E2
E2
E1
E1
V oie
téléphonique
L’idée est de signaler l’état des affluents de manière régulière. Il s’agit d’un signalisation hors octet de
données. Cette méthode implique la lecture de toutes les trames pour restituer le signal de la voie utile.
Cette particularité implique une lecture complète des trames pour extraire les affluents. Il en résulte un
manque de souplesse pour extraire une voie téléphonique à une grande profondeur du multiplex.
C’est un des inconvénients majeur de la PDH.
19.3.4 Indication et justification
Le passage des niveaux E1 au multiplex de niveau supérieur E2 doit tenir compte des différences
d’horloges : il n’est pas possible d’attribuer les mêmes intervalles aux mêmes entrées du multiplex. Si
une des entrées est plus rapide que les autres, il risque de se produire une file d’attente en entrée :
comment accélérer la transmission dans le multiplex E2 ?
231
Section 6 – Réseaux Télécoms
La technique utilisée est celle de la justification et de l’indication. Tout d’abord, signalons que le
multiplexage E2 ne considère plus les octets des voies téléphoniques de base, mais des bits : la
reconstitution des octets implique la lecture complète du flux de bits.
4 affluents E1
trame
2,048Mbit/s
125us
Multiplex E2
trame
8,448Mbit/s
100,4us
groupe I
groupe II
200 bits
12 bits
groupe I
groupe IV
208 bits
4*52 bits entrelacés
0010
4 bits
groupe III
4*50 bits entrelacés
1111010000AR
4 bits
groupe II
groupe III groupe IV groupe I
208 bits
0010
4 bits
4*52 bits entrelacés
204 bits
4 bits de
justification
0010
Indication de justification
négative affluent 3
4*51 bits entrelacés
+ 4 bits de justification
L’idée de l’indication est de réserver des bits dit de justification dans le flux E2 qui ne sont pas
attribués, et indiqués comme tels. Si le débit augmente en entrée, ces bits d’indication signalerons que
les bits de justification suivant permettront la justification positive du flux et contiendront des bits
d’information. Même principe pour la justification négative en cas de débit d’entrée trop lent avec
l’utilisation de bits de remplissage. Les différentes combinaisons permettront de préciser à quel flux
d’entrée E1 appartiennent ces bits.
Le schéma qui précède représente le schéma de la trame secondaire qui multiplexe 4 affluents E1.
(norme G742).
En entrée on trouve les 4 trames primaires de 32*8=256 bits, soit 1024 bits en 125µs. Tous ces bits ne
se retrouvent pas dans les 200+208+208+204=820 bits de la trame secondaire. Les bits de justification
(4 derniers bits du groupe VI) permettent de compenser une réduction du débit d’entrée d’un des
affluents en indiquant sa suppression avec la combinaison 111 répartie dans les en-têtes des groupes
II, III et IV.
En effet, les trames d’entrées ne sont pas entièrement multiplexées dans une trame secondaire mais
dans un flux continu de ces trames. Le débit minimale en sortie du E2 sera 820/100,4µs=8,167Mbit/s
et le débit maximal possible 824/100,4µs=8,207Mbit/s si les quatre bits de justification sont utilisés,
intervalle qui comprend la valeur intermédiaire de 4E1=8,192Mbit/s.
19.4 SDH
19.4.1 Historique
Développé dans les années 1980, le SDH (Synchronous Digital Hierarchy) norme de l’UIT-T s’appuie
sur un standard américain (SONET, Synchronous Optical Network). Il permet de faire évoluer du
PDH vers un réseau totalement synchrone, compatible avec le PDH, et assurant des niveaux de très
hauts-débits.
232
Section 6 – Réseaux Télécoms
Aujourd’hui, il est au fondement des architectures backbone très hauts-débits des autoroutes de
l’information.
19.4.2 Trame SONET : STS1
Nous donnons ici le format de la trame de base du SONET, appelée STS1 – Synchronous Transport
Signal. Elle se décompose en 9 lignes de 90 colonnes. Sur une durée de 125 µs, elle transmet donc
9*90=810 octets. Elle se lit et s’écrit sur le support de gauche à droite sur un même ligne puis de haut
en bas, ligne par ligne. Ce support peut être de nature électrique (cuivre) ou optique (fibre) : dans ce
cas le niveau est qualifié de OC pour Optical Carrier.
3 colonnes
87 colonnes
SOH
Pointer
Pointer
LOH
POH
DATA
POH : Path Over Head ; Surdébit de conduit : 1 colonne
LOH : Line Over Head ; Surdébit de ligne 3 colonnes – 6 lignes
SOH : Section Over Head ; Surdébit de section 3 colonnes – 3 lignes
Chaque surdébit correspond à une utilisation particulière par une couche du réseau. (cf 1.4.5)
Le débit de ce niveau STS-1 est donc différent selon que l’on s’intéresse au débit total ou brut
(51,84Mbit/s), ou à celui réservé à l’utilisateur, appelé charge utile c’est à dire 86 colonnes
exploitables (49,536Mbit/s).
La charge utile ou payload est de nature flottante dans la trame STS1. Elle ne commence pas
forcément au début de cette trame mais n’importe où, selon sa disponibilité. Le pointeur (qui
appartient au LOH) est là pour désigner l’octet de début des données transmises.
19.4.3 Trame SDH : STM1
La norme Internationale de SDH débute au niveau supérieur : elle correspond à 3 trames STS-1, avec
la structure appropriée présentée ci-dessous :
9 colonnes
S O H
261 colonnes
Pointer
P.
LOH
P
O
H
DATA
Sa durée est également de 125 µs. Son débit brut est donc triple et vaut 155,52Mbit/s. Le débit utile
est quant à lui de 149,76Mbit/s. Ce support porte le nom de STM1 : Synchronous Transport Module.
233
Section 6 – Réseaux Télécoms
Le Conteneur C : Les données transportées sont mises sous une forme particulière selon leur
nature (PDH, IP, ATM…) elles constituent le Conteneur (Abrévié C – Contener).
Le Conteneur Virtuel VC : Après l’ajout du POH en en-tête des DATA du conteneur, on
obtient le VC (pour Virtual Contener).
L’unité administrative AU : L’association du pointeur (première ligne du LOH) au VC se
nomme AU – Administrative Unit.
Nous reviendrons sur ces éléments au paragraphe 1.4.6.
19.4.4 Hiérarchie SDH
L’intégration des deux niveaux de base décrits précédemment en multiplex d’ordre supérieur constitue
la hiérarchie synchrone.
SONET
Optique Electrique
OC1
STS1
OC3
STS3
OC9
STS9
OC12
STS12
OC48
STS48
OC192
STS192
OC768
STS768
SDH
STM1
STM3
STM4
STM16
STM64
STM256
Débit brut
Débit indicatif
51,84 Mbit/s
155,52 Mbit/s
466,56 Mbit/s
622,08 Mbit/s
2488,32 Mbit/s
9953,28 Mbit/s
39813,12 Mbit/s
50 M
150 M
466 M
622 M
2,5 G
10 G
40 G
19.4.5 Réseau : topologie et architecture
Le réseau SDH peut se modéliser en terme de topologie matérielle et en terme d’architecture. On peut
intégrer SDH à la couche OSI 1, mais c’est un réseau à part entière avec ses mécanismes
d’acheminement et de corrections d’erreurs.
On distingue quatre sous-couches, avec les éléments appropriés : Physique ou photonique, Section,
Ligne et Conduit. A chaque sous-couche, les surdébits (OH : overhead) sont ajoutés pour permettre la
gestion des échanges en point à point et en bout à bout.
Equipement
Terminal
Equipement
Terminal
Multiplexeur
Conduit
Répéteur
Ligne
Section
Photonique
Les équipements de multiplexage sont aussi appelés ADM (Add and Drop Multiplexer) ou DCS
[DXC] (Digital Cross connect System) selon leur position dans la topologie du réseau.
conduit
Multiplexeur
Fibre
section
Répéteur
Répéteur
ligne
234
Multiplexeur
M ultiplexeur
Section 6 – Réseaux Télécoms
Réseau dorsal
répéteur
ADM
DXC
DXC
DXC
DXC
ADM
ADM
19.4.6 Intégration PDH SDH
Le niveau élevé des débits implique des règles d’encapsulation précises des flux PDH dans les
conteneurs SDH. Le tableau qui suit donne les correspondances courantes entre Conteneur SDH et
niveau PDH :
PDH
T1
E1
T3
E3/T4
E4
SDH
C11
C12
C2
C3
C4
Pour illustrer, on détaille la hiérarchie menant du conduit E1 à 2,048Mbit/s au niveau STM1 de la
hiérarchie numérique SDH.
Niveau
C12
VC12
TU12
TUG2
TUG3
Construction
E1+2octets
C12+POH
VC12+Pointer
TU12*3
TUG2*7
VC4
TUG3*3
34 octets
35 octets
36 octets = 4 colonnes de 9 lignes
3*4=12 colonnes
7*12=84 colonnes 1 colonne POH +pointer 3
octets+bourrage = 86 colonnes
86*3=258+2 colonnes (1 pointer+bourrage)
Le VC4 constitue le container virtuel du STM1. Les détails de l’intégration ne sont pas ici précisés, en
particulier sur la technique selon laquelle sont écrits et répartis les octets dans la trame. Il y a en
particulier des entrelacements systématiques d’octets puis de colonnes dans les différents niveaux.
E1
E1
E1
C12 C12 C12
VC12
VC12 VC12
TU12 TU12 TU12
TUG2
TUG2
TUG2
TUG3
TUG3
VC4
235
TUG3
Section 6 – Réseaux Télécoms
19.5 Architectures des réseaux interconnectés
Boucle locale
xDSL
RTC
RNIS
BLR
<10Mbit/s
Réseau d'accès
PDH E1/E3
Réseau dorsal
SDH / SONET
<150Mbit/s
236
<40Gbit/s
Section 6 – Réseaux Télécoms
20. ATM
20.1 Principe
20.1.1 Protocoles, services
Le mode de transfert temporel asynchrone ou ATM – Asynchronous Transfer Mode, a été développé
dans les laboratoires du CNET à Lannion en Bretagne. Les objectifs de ce protocole sont d’assurer la
transmission simultanée sur un même support de flux d’informations de débits et de natures
totalement différents : on lui donne aussi le nom de RNIS-LB pour Réseau Numérique à Intégration
de Services Large Bande.
ATM était normalisé par l’ATM FORUM (devenu depuis BROADBAND FORUM), dont les
spécifications sont reprises par l’IUT-T sous la lettre Q. On trouve également une série de drafts RFC
de l’IETF (pour ce qui concerne IP/ATM)
Horloge A
Horloge B
ATM
SD H
Aux origines, il convient de faire évoluer le réseau numérique de téléphonie vers un réseau plus
souple avec des largeurs de bande plus grandes. Dans une certaine mesure, il est complémentaire du
réseau SDH qui offre un support synchrone : l’ATM offre un accès asynchrone aux supports.
Les horloges des utilisateurs A et B sont sans relation Chacun peut transmettre ou recevoir à sa propre
vitesse. On peut également multiplexer sur le même réseau d’autres flux totalement différents.
237
Section 6 – Réseaux Télécoms
20.1.2 Concepts
L’ATM est une pile de protocoles assurant la transmission fiable à travers un réseau. L’approche de la
connexion est de type Circuit Virtuel (CV) comme pour le protocole X25. L’ATM offre donc des
services « forts » d’acheminement des flux de données en terme de débit, de délais, d’acquittement…
garanties propres au mode connecté.
Le caractère asynchrone signifie que le réseau peut transporter des données totalement différentes,
voix, données, vidéo, téléphonie, les multiplexer et assurer leur acheminement sans entrave. En outre,
le réseau ne fournit aucune horloge de références aux terminaux : ces derniers transmettent les
données à leur rythme, sans se préoccuper des contraintes de flux ou de débit que seul ATM va gérer.
20.1.3 Cellules
Le protocole ATM repose sur la cellule, élément unique transporté dans les réseaux ATM. Elle est
constituée de 53 octets : 48 octets de données et 5 octets d’en-tête.
Cellule ATM
En-tête
5 octets
Payload : 48 octets
Cette cellule transportera les données de toute nature, comme les éléments de contrôle du réseau.
L’intérêt de la cellule, ou paquet de petite taille, est de pouvoir être multiplexé facilement avec
d’autres flux et d’être commuté sans difficulté avec une grande rapidité et des bufferisations de taille
fixe. L’inconvénient majeur est que la durée et le volume de traitement des en-têtes augmentent car le
nombre de cellules va s’élever très rapidement : en comparaison un paquet X25 est en moyenne de
256 octets et celui d’un datagramme IP 1,5ko.
20.2 Modèle ATM
20.2.1 La pile ATM
Dans la nomenclature OSI, le modèle ATM s’étend de la couche 1 à la couche 3 : il assure des
services de détection binaire sur le support, la gestion des erreurs, et l’acheminement de bout en bout à
travers le réseau.
2
1
[IP]
AAL
CS
SAR
ATM
PMD
238
TC
PM
Pile ATM
3
Section 6 – Réseaux Télécoms
Le tableau qui suit résume le rôle de chacune des trois couches et des sous-couches du modèle de
référence :
AAL
CS
SAR
ATM
PMD
TC
PM
ATM Adaptation Layer
Convergence Sublayer
L’AAL assure l’interface avec l’utilisateur
Prend les données en charge avec un niveau de
priorité, gère la détection d’erreur par CRC
Segmentation & Reassembly Découpe le flux de données en élément de 48
octets, et assure le réassemblage à la réception
avec un mécanisme de numérotation
Asyncronous Transfer Mode Ajoute l’en-tête de 5 octets utilisé par ATM pour
commuter à travers le réseau ; Contrôle du flux
et du multiplexage.
Physical Medium Dependant Assure l’interface entre les cellules et le niveau
binaire
Transmission Convergence Embrouillage /désembrouillage de la charge utile
de la cellule ATM
Physical Medium
Cadrage et détection des cellules ATM sur le
support à partir du flux d’eb
Nous détaillerons ces couches dans le chapitre 2.3
20.2.2 L’en-tête ATM
La suite de ce chapitre va être consacré au détail de l’en-tête ATM de 5 octets, de son fonctionnment
et de sa gestion par la sous-couche ATM.
VPI
VPI
VCI
VCI
VCI
PT
HEC
VPI
VPI
VCI
VCI
VCI
PT
CLP
GFC
En-tête ATM NNI
1 octet
CLP
En-tête ATM UNI
1 octet
HEC
L’ATM dispose en réalité de deux types d’en-tête qui diffèrent uniquement sur la présence du champ
GFC en début d’en-tête. Le paragraphe suivant explique les rôle de ces deux en-têtes NNI et UNI.
GFC
VPI
VCI
PT
Generic Flow Control
Virtual Path Identifier
Virtual Channel Identifier
Payload Type
CLP
Cell Loss Priority
HEC
Head Error Control
Conduit virtuel de flux de canaux de cellules
Canal Virtuel de transport de cellules
Permet de distinguer la nature de la charge utile,
données utilisateur ou gestion réseau
Bit unique permettant d’autoriser ou non la
supression de la cellule en cas de congestion
Champ de contrôle d’erreur portant uniquement
sur l’en-tête
On constate que le but essentiel de l’en-tête ATM et du protocole qui le gère est la commutation des
cellules dans un conduit virtuel définit par ses valeurs de VPI et VCI.
20.2.3 Interface UNI/NNI
ATM étant un réseau fermé, comme X25, on distingue la nature de l’en-tête pour y accéder (UNI –
User Network Interface) de celle des cellules transitant dans le réseau lui-même (NNI _ Network
Node Interface.
239
Section 6 – Réseaux Télécoms
Interface
UNI
ATM
NNI
L’interface UNI est en cours de normalisation continuelle. La plus répandue actuellement est la norme
UNI 3.1 qui décrit la phase de connexion et de déconnexion ATM. Nous détaillerons cet aspect dans
le chapitre suivant. La caractéristique de cette interface est d’utiliser le champ GFC pour déterminer
les caractéristiques de la liaison.
Pour Private-NNI il s’agit cette fois de décrire un protocole de routage intercommutateur ATM. Il
rappelle la notion de réseaux virtuels vu sur les LAN. Un tel protocole définit une station leader qui
connaît et pilote les stations qui sont à sa charge.
20.2.4 Niveaux de commutation
Il existe deux nivaux de commutation pour le protocole ATM : Ce double niveau autorise plus de
souplesse et de rapidité dans la commutation et l’acheminement des flux de cellules. En outre ces
niveaux sont qualifiés de virtuel car le regroupement n’est pas physique mais symbolisé par un même
numéro de VP ou de VC.
Un conduit virtuel est considéré comme un groupe de voix virtuel : il constitue le niveau bas de
commutation qualifié de brassage. Le terme de commutation sera conservé pour la commutation du
canal de bout en bout.
VCx
Commutation
Brassage
Support
VP1
VP2
VP4
Les organes de brassage s’appelle des brasseurs, ceux qui assurent la commutation s’appellent des
commutateurs.
20.2.5 Champ PT et priorité
Les 3 eb du champ PT Payload Type permettent de définir 8 types de cellules, dont 4 (de PT=000 à
PT=011) pour le trafic usager permettant la gestion de la congestion du réseau. Trois autres types
définissent des cellules dites OAM – Operation And Maintenance.
PT
PT
0xx
1xx
Cellules de données usager
Cellule OAM
En cas de congestion importante, le réseau peut prendre la décision de détruire une cellule. Le Bit
CLP est positionné à 1 sur les cellules qui seront détruites en premiers.
240
Section 6 – Réseaux Télécoms
2.2.6 Détection d’erreur
Le champs HEC assure la détection des erreurs dans les 4 autres octets de l’en-tête uniquement. Ce
HEC correspond au reste de la division polynomiale des 32 bits du GFC au CLP par le polynôme :
x8 + x 2 + x +1
Au résultat on ajoute le mot 01010101 pour éviter un nombre de 0 trop grand dans le HEC. Cette
division permet en outre la correction de toutes les erreurs simples dans l’en-tête.
20.3 Mécanismes ATM
20.3.1 La pile ATM
Le schéma ci-dessous synthétise l’ensemble des mécanismes assurés par les différentes couches du
modèle ATM.
pile ATM
Datagramme IP - Trame MA C
Bloc données
CS
PAD
En-tête CS
AAL
SAR
ATM
En-queue CS
48 octets
En-tête SAR
En-queue SA R
En-tête ATM
53 octets
TC
Embrouillage du champs donnée
Cadrage par détection du HEC
PMD
Support synchrone
PM
Conteneur STM-1 / OC3
A
ATM
ATM
B
VC
ATM
Commutat e ur
AAL
ATM
PMD
ATM
PMD
241
VP
VC
ATM
PMD
AAL
ATM
PMD
Section 6 – Réseaux Télécoms
20.3.2 Connexion ATM
La connexion est propre aux protocoles orientés connectés comme X25 ou TCP. ATM en tant que
protocole offre sur l’interface UNI une connexion de bout en bout à travers le réseau ATM : Il faut
retenir que dans le protocole ATM, on s’adresse à un réseau (commutateur) et non directement à une
station distante. Les primitives sont détaillées dans le schéma qui suit.
Précisons les points suivants :
• La connexion s’effectue toujours sur le VPI-0 VCI-5 du flux de cellule.
• La primitive SETUP porte dans un ensemble de cellules : l’adresse destinataire, la QoS
désirée, le N°d’AAL souhaitée… Un refus de ces paramètres se traduit par l’émission d’un
RELEASE COMPLETE au lieu du CALL PROCEEDING ou CONNECT.
• Le CALL PROCEEDING indique les VPI et VCI accordés pour la liaison
B
A
ATM
Temps
SETUP
SETUP
CALL
PROCEEDING
CALL
PROCEEDING
CONNECT
CONNECT
CONNECT ACK
CONNECT ACK
Connexion
Etablie
RELEASE
RELEASE
RELEASE
COMPLETE
RELEASE
COMPLETE
Déconnexion
Une interface UNI4.0 plus complexe offre des possibilités de réinitialisation, diffusion…
20.3.3 Les couches AAL
Il existe plusieurs mécanismes pour les couches d’adaptation ATM- AAL – ATM Adaptation Layer.
Chacune porte un numéro et dispose de ces caractéristiques propres.
Les couches d’adaptation ATM (décrivent des protocoles de sous couches CS et SAR. Le tableau qui
suit résume et compare leurs caractéristiques.
N°AAL
1
2
3/4
5
Classe de services
A
B
C
D
Débits
Constant[CBR]
Délai/synchro
Variable[VBR]
Garantis
Connexion
Non garantis
CONS
CNLS
Ajout CS
aucun
aucun
+8 octets
+ 8 octets (4 CRC)
Ajout SAR
+1 octet
+3 octets
+4 octets (CRC)
aucun
Services
Emulation de
circuits pour
voix et vidéo
Vidéo
compressée
MPEG
Données
Données
Visio
conférence
Téléphonie
xDSL
Inefficace et
compliqué
Commentaires
UMTS
242
Fiable
TCP/IP
Section 6 – Réseaux Télécoms
AAL 1
Initialement ces services avaient pour but de garantir des services temps réel (téléphonie, visiophonie,
visioconférence…) mais sa mise en place s’avère complexe et va à l’encontre de la souplesse voulue
pour ATM en mobilisant les ressources du réseau.
Cellule ATM : AAL1
En-t ête
5 oct et s
SNC 3
SN :
Sequence
Number
CRC 3
Pty1
CS 1
Payload : 47 octets
En-t ête SA R 1 oct et
SNP :Sequence
Number Protection
Le schéma qui précède représente la structure de la cellule ATM pour AAL 1. Le rôle de la couche
3
SAR est d’ajouter 1 octet protégé par son propre CRC ( x + x + 1 ) et un bit de parité (Pty). Le
champ SNC (Sequence Number Counter) est un compteur des cellules émises pour assurer l’ordre à la
réception et la détection de pertes. Le bit CS (Convergence Sublayer Information) est utilisé pour la
synchronisation des horloges des terminaux externes.
La technique d’entrelacement des charges utiles de cellules est également appliqué pour éviter les
risques de pertes d’une cellule utile complète mais répartir les erreurs dans plusieurs cellules. Cette
entrelacement est combiné à la mise en œuvre d’un code bloc correcteur de type Reed-Solomon
[124,128] sur le flux de données.
CRC 4 octets
47 lignes
données 124 octets
Charge utile d'une cellule
AAL 2
La principale différence avec AAL 1 est liée au flux : en CBR, on a un débit constant de cellules, c’est
à dire un flux continu issu d’une acquisition de signaux (son ou image). En AAL2, la vidéo
compressée aura un flux dépendant du taux de compression, d’où le service VBR. Depuis la mise en
œuvre des services DSL, l’AAL2 a offert le cadre pour encapsuler les différents flux.
AAL 3/4
L’AAL 3 offre un service de classes C et AAL4 un service de classes D. En revanche les mécanismes
de SAR et CS sont identiques et lourds (Seulement 44 octets de données utilisateurs par cellules) dû
principalement à l’usage d’un CRC sur chaque champs données de cellule.
En revanche, cette couche AAL3/4 offre une fiabilité importante dans le transport des données et
permet le multiplexage de plusieurs flux de cellules sur un même VPI/VCI (numérotation des
cellules).
243
Section 6 – Réseaux Télécoms
AAL 5
L’AAL 5 est très utilisée car elle est simple et efficace (autre nom : SEAL Simple & Efficient
Adaptation Layer) et elle est bien adaptée au trafic TCP/IP (dont les datagrammes ne dépassent pas 64
ko). Le bloc de données est tronçonné en bloc de 48 octets encapsulés dans une cellule ATM. Un
CRC protège l’ensemble des données utilisateurs et est placé dans la dernière cellule contenant les
données du bloc (Cf schéma ci-dessous) ; mais les cellules ne sont pas numérotées et protégées
individuellement comme pour l’ AAL3/4.(Pas de rajout d’en-tête et d’en-queue SAR).
Dernière Cellule ATM du bloc : AAL5
En-têt e
5 oct et s
Payload / bourrage : 40 octets
PT=01h
En-queue CS 8 octet
Reservé Length
2
2
CRC 4
En conséquence, le multiplexage de flots de cellules n’est plus possible ici comme en AAL3/4
puisque rien ne distingue les cellules pour permettre de les numéroter en particulier. Il faudra alors
utiliser des techniques particulières comme l’attribution de VP/VC spécifiques pour chaque liaison.
On se reportera au chapitre 2.3 -interconnexion de réseaux.
2.2.4 QoS et classe de transfert
La qualité de service (Qos : Quality of Service) intègre les notions de débits requis (CBR, VBR…) et
les paramètres spécifiques de la transmission (PCR…).
Les classes de transfert décrivent les services offert par la couche ATM en terme de débit. Elles
peuvent être demandées par l’utilisateur lors de la connexion ATM. L’usage d’une AAL5 peut exiger
une classe CBR, même si une classe VBR est plus adaptée.
Bande passante
CBR :
Constant Bit Rate
VBR-RT :
Variable Bit Rate (Real time)
VBR-nRT :
Variable Bit Rate (no Real time)
ABR :
Available Bit Rate
UBR :
Unspecified Bit Rate
Ces classes permettent le partage de la bande passante du canal de transmission de manière optimal :
CBR
Constant Bit Rate
VBR
Variable Bit Rate
ABR
Available Bit Rate
UBR Unspecified Bit Rate
La classe CBR consomme une portion constante de bande.
La VBR ne prend que ce dont elle a besoin, dans les limites de la bande disponible, ce qui est vu à la
connexion ; en cas de transfert imposant des conditions temps réels, le débit maximum doit être
garanti à chaque instant. En revanche, en mode nRT (Non Real Time) il est possible de mettre en
place des files d’attentes pour réaliser un multiplexage statistique.
ABR utilise ce qui reste. ABR est donc réservé à l’AAL5 et au trafic WEB (TCP/IP) puisque les
garantis de délais et débits ne sont plus assurées à l’instant t (ce qui est le cas pour VBR puisque cette
classe est prioritaire sur ABR).
244
Section 6 – Réseaux Télécoms
Le débit UBR ne garantit rien, même pas l’acheminent des données, ce qui est néanmoins le cas pour
ABR qui offre une garantie de débit minimal non nul. L’ABR est idéal pour le transfert de document
HTML avec HTTP (surf sur le WEB).
Le tableau qui suit présente une série de QoS proposée par la norme pour garantir la qualité de la
transmission. Cette liste n’est pas exhaustive.
PCR
SCR
Peak Cell Rate
Sustained Cell Rate
MCR
Minimum Cell Rate
CVDT
Cell variation Delay Tolerance
CLR
CTD
CDV
Cell Loss Ratio
Cell Transfer Delay
Cell Delay Variation
Débit maximum de la transmission (cellule/s)
Débit moyen sur un long intervalle de temps
(CBR :PCR=SCR)
Débit minimum acceptable par l’usager (UBR : ABR
avec MCR=0)
Gigue de cellule toléré (microseconde) en avance ou
en retard par rapport au temps 1/PCR
Taux de pertes de cellules accepté
Temps de transit moyen des cellules dans le réseau
Variance admissible du temps d’acheminement
20.4 La commutation
20.4.1 Enjeux de la commutation
Les objectifs d’un commutateur sont doubles :
Assurer une commutation de cellules aussi rapide que possible avec un taux de rejet aussi
faible que possible
Ne jamais réordonner les cellules dans un circuit virtuel, donc conserver l’ordre de transfert
Pour satisfaire à ces exigences, les équipements devront intégrer des équipements très rapides, avec un
haut de degré d’architectures parallèles, d’électronique rapide, de mémoires et de logiciels optimisés.
Les commutateurs ATM ont depuis les origines été considérés comme les équipements de télécom les
plus poussés en terme de technologies.
commut ateur 4x4
20.4.2 Les éléments d’architectures
Afin d’assurer ces objectifs, un commutateur dispose de deux éléments fondamentaux qui constitue
son architecture : La commutation avec un élément de matrice de commutation, le stockage des
cellules dans des mémoires. On y ajoutera l’organe de traitement d’en-tête qui gère la commutation
sur les VP/VC.
stockage
rout age
245
matrice de
commutation
Section 6 – Réseaux Télécoms
En ce qui concerne les mémoires, on utilise des composants de type FIFO : First In First Out. Les
accès à ce type de mémoire est beaucoup plus efficace que celui des mémoires standards à adressage
direct aléatoire (RAM). On peut assimiler une FIFO à une pile, ou une file d’attente, dans laquelle on
stocke les cellules en attente de traitement
cellule
FIFO
Entrée
Sort ie
La profondeur de la mémoire permettra de gérer la congestion dans les réseaux et les temps de
traitement de la matrice de commutation et de l’élément de routage.
On préférera également placer les files d’attente en sortie, c’est à dire après la commutation, de façon
à ne pas ralentir les cellules qui se dirigent vers des ports libres.
Parmi les architectures de la matrice de commutation, on distingue les architectures à temps partagé
qui utilisent un bus commun, des architecture spatiales qui sont plus performantes mais avec une
structure plus complexe. On peut également introduire la notion de routage direct où la cellule se
dirige seule, avec une étiquette, dans la matrice, et celle de routage indirect où l’organe de traitement
contrôle directement les éléments internes du commutateur.
20.4.3 L’architecture Crossbar
Il s’agit d’un architecture spatiale avec file d’attente en sortie. Un bus dessert l’ensemble des sorties.
La sortie concernée prend la cellule en charge. Ce type d’architecture est peu efficace dans le transfert
de données où seule une sortie est utilisée pendant une durée importante.
Entrée
Sorties
20.4.4 L’architecture Batcher/Banyan
Les commutateurs Batcher/Banyan associent un réseau de tri Batcher avec un commutateur Banyan.
Le réseau de tri permet d’éliminer les risques de collisions dans le commutateur. L’intérêt de cette
architecture est le parallélisme du traitement, l’absence de files d’attente en entrée et le routage interne
de type direct basé sur une étiquette portant sur trois bits (pour 8 sorties) le numéro du port de sortie.
Nous résumons les règles de base de routage dans le commutateur :
Règle du réseau de tri Batcher :
Si deux cellules se présentent : l’adresse numérique de poids fort est routée vers la sortie
indiquée par la flèche
Si une cellule se présente : elle est routée vers la sortie non pointée par la flèche
Règle pour le commutateur Banyan :
Chaque cellule dispose d’une adresse sur trois eb (0 à 7) représentant le port de sortie
246
Section 6 – Réseaux Télécoms
La première colonne lit le bit de poids fort, la seconde le second et la troisième le dernier
(poids faible).
Un 0 et le routage s’effectue par le haut un 1 et le routage s’effectue par le bas.
6
5
1
4
6
6=110
Commutateur Batcher
Commutateur Banyan
Notons que le nom de Batcher est celui d’un ingénieur et Banyan celui d’un arbre dont
l’enchevêtrement des racines rappellent les connexions de la matrice du commutateur…
Arbre de Banyan – Inde
20.5 Intégration IP/ATM/SDH
20.5.1 Architectures et topologies
Comme dans toute étude de réseaux, la distinction entre topologie et architecture est fondamentale :
La topologie concerne la forme physique et la disposition des matériels utilisés, en particulier les
ordinateurs, serveurs, routeurs, commutateurs… On y précise également les normes de réseaux
éventuellement impliquées : LAN Ethernet, Fats Ethernet, Token Ring ou MAN FDDI, ATM, X25…
247
Section 6 – Réseaux Télécoms
L’architecture implique de connaître quel protocole est utilisé aux différents niveau OSI, en
particulier au niveau Liaison (2) et Réseau (3), et quelles interfaces ont été mises en place pour assurer
la compatibilité de ces protocoles entre eux : gestion des adresses, du routage, du contrôle d’erreurs,
des connexions…
20.5.2 Backbone ATM : Interconnexion
Compte tenu de sa relative complexité, ATM est traditionnellement réservé aux réseaux fédérateurs,
ou backbone, plutôt qu’aux réseaux LAN utilisateurs, majoritairement orienté Ethernet, Fast Ethernet
voir Giga Ethernet.
Aujourd’hui, la situation peut se résumer ainsi : les machines se connectant à un réseau utilisent un
protocole TCP/IP et ignorent les infrastructures physiques des réseaux empruntés, en particulier LAN,
MAN ou WAN.
Demain, le « tout ATM » devrait permettre à toute machine de dialoguer entre elles en utilisant les
mécanismes ATM seuls : les fonctions d’adressage, de connexion et de commutation ATM, ainsi que
les mécanisme de contrôle, rendant inutiles les reprises TCP et les routages IP.
TCP/IP
LAN 802.3
LAN 802.3
ATM
VC
ATM
pont ou
routeur
ATM
Commut at e ur
pont ou
routeur
Autant dire que ce scénario a peut de chance de se concrétiser dans les faits. Il faut se résoudre à
envisager une cohabitation de longue durée entre IP (v4 puis v6) avec ATM, si ATM survit…
20.5.3 Pontage et routage
On constate qu’il n’est pas possible de relier directement un réseau LAN 802.3 à un commutateur
ATM. Les signaux électriques (niveau support et physique) les formats de trames 802.3 et cellules
ATM ne sont pas compatibles. Cela impose un équipement d’interface qui prenne en charge
l’interconnexion.
Un commutateur ATM prendra donc en charge des trames, c’est à dire issues de protocoles MAC 802,
ou FDDI, qu’il pourra considérer comme des données.
Il reste deux options pour transférer ces trames : Le multiplexage de circuits virtuels (Pontage) ou le
multiplexage de protocole sur un même circuit virtuel (Routage).
Dans le premier cas, chaque numéro VPI/VCI identifiera un protocole réseau particulier : plusieurs
protocoles nécessiteront plusieurs VC. Ceci utilise la puissance de la couche ATM qui gère ces VC.
Dans le second cas où il n’est pas simple de se voir affecter un VC supplémentaire ou quand on
dispose d’un VC permanent, alors il peut être intéressant de faire cohabiter l’ensemble des protocoles
en les identifiant au préalable par une étiquette (LLC/SNAP)
248
Section 6 – Réseaux Télécoms
Etiquettage
des protocoles
VC
ATM
VC
ATM
ATM
ATM
ATM
ATM
PONTAGE
ROUTAGE
dans les deux cas, et selon l’AAL utiliser, il sera possible (AAL 3/4)ou non (AAL 5) de multiplexer
des flux de cellules sur le même VC
20.5.4 IP over ATM – RFC1577
La notion d’ « IP over ATM » appelée également « Classical IP over ATM » désigne les techniques
pour utiliser l’ATM directement sous un protocole TCP/IP, sans couche MAC intermédiaire. Cette
approche est plus simple que le LANE (§2.4.5), avec quelques inconvénients.
Le premier avantage est bien entendu d’alléger la pile de protocole, même s’il y a toujours redondance
entre TCP et ATM (contrôle d’erreurs…), mais dans l’évolution qui devrait conduire au tout ATM, il
est utile de considérer comme phase transitoire un protocole utilisateur simple et très répandu
aujourd’hui (TCP/IP) et un réseau de backbone (ou fédérateur) détenu par des opérateurs utilisant
ATM sur PDH ou SONET/SDH.
Le but est ainsi de constituer des liens ATM entre des stations IP, qui seront essentiellement des
routeurs ou des serveurs. On définit ainsi un LIS (Logial IP Subnet), sorte de réseau internet virtuel où
chacun doit pouvoir connaître les couples d’adresse IP-ATM de son LIS. Pour cela il existe deux
protocoles, ATMARP et RATMARP, équivalent de ARP et RARP pour les adresses MAC-IP. On
retrouve les problèmes de diffusion sur ATM, contournés par l’usage d’un serveur qui gère l’ensemble
de la table d’adresse du LIS. De plus, l’usage des circuits virtuels ATM commutés (CVS - switched)
ou permanent (CVP) influera sur les mécanismes de résolution adresses IP/ATM/CV(P ou S).
LIS
TCP/IP
@IPc
@IPb
@IPa
ATM
VC
ATM
Commut ate ur
Serve ur
AT MA RP
@A T Ma|@IPa
@A T Mb|@IPb
@A T Mc|@IPc
ATM
La pile de protocole classiquement utilisée pour le transport de données (définit dans le RFC1483 et
commune au RFC1577) est alors la suivante :
TCP
IP
ET 20 octets
ET 20 octets
SNAP PID (Ethertype) 00 80h
OUI
00 00 00h
LLC (DSAP SSAP Ctrl)
AA AA 03h
AAL5
EQ 8octets
249
Section 6 – Réseaux Télécoms
ATM
SDH
OC
La sous-couche LLC/SNAP (Logical Link Control/Sub Network Access Protocol) consiste ici a
rajouter 8 octets, qui sont toujours les mêmes dans le cas de TCP/IP. Le SNAP se divise en OUI
(Organizational Unit Identifier) identique au numéro Xerox des adresses MAC, et le PID (Protocol
Identifier)
20.5.5 Emulation de LAN : LANE
Une des utilisations de l’ATM peut être l’émulation de LAN. En effet historiquement, le débit des
LAN étaient limités avec Ethernet à 10Mbit/s. Cela était trop peu pour des réseaux professonniels.
L’idée fut alors d’utiliser l’architecture ATM pour émulé un réseau local de débit élevé (155Mbit/s).
L’arrivée du fast et Giga Ethernet rend cette solution moins cruciale. L’émulation signifie que les
stations appartenant à un même LAN utilisent ATM, mais sans le savoir : une couche logique
intermédiaire entre MAC et ATM simule (ou émule) le LAN à travers le réseau ATM. Ainsi aucune
machine n’a à se préoccuper des mécanismes ATM.
Cependant, un réseau ATM n’a pas toutes les fonctionnalités d’un LAN, comme la diffusion : ATM
n’est pas un bus ou un hub. Aussi les techniques d’émulation nécessitent-elles une topologie et des
protocoles particuliers, pour la résolution d’adresse, le broadcast…
La technique LANE, normalisée par l’ATM forum, est une réponse à ces inconvénients. Elle consiste
en l’ajout d’une couche d’émulation LEC (Lan Emulation Client).
@IPa
@MACa
@IPb
@MACb
BUS
LECS
@IPr
@MACr
LAN 802.3
LES
ATM
VC
@MACr | @ATMr
@MACs | @ATMs
@MACe | @ATMe
ATM
Pont
LEC
LEC
ATM
@IPe
@MACe
Pont
LEC
@IPs
@MACs
Commut at eur
@IPc
@MACc
@IPd
@MACd
LAN 802.3
TCP
IP
MAC
AAL5
ATM
SDH
OC
ET 20 octets
ET 20 octets
ET 14+4 octets
EQ 8octets
Le terme Client de LEC signifie qu’il y a quelque par un serveur : il s’agit du LES (Lane Emulation
Server) dont le rôle principal est de gérer la résolution d’adresse MAC/ATM. On trouve en outre un
BUS (Broadcast and Unknown server) dont le nom approprié évoque son rôle, la diffusion et les
liaisons multipoint. Un troisième server vient compléter la joyeuse émulation, sous le nom de LECS
(LAN emulation configuration server) qui gère la nature des LAN émulés par les LEC. Le LES, Le
LECS et le BUS sont des stations spécifiques.
250
Section 6 – Réseaux Télécoms
20.5.6 MPOA – Multiprotocol over ATM – RFC 1483
Citons deux inconvénients des architectures décrites ci-dessus :
Dans le cas de l’ELAN (Emulated LAN – LAN émulé sur ATM), il n’est pas possible de
réaliser une connexion directe avec un autre ELAN directement à travers le réseau ATM : il
faudrait nécessairement passer par un routeur IP connecté lui-même sur le réseau ATM
Dans le cas de l’IP sur ATM, seul IP est pris en charge : les autres protocoles réseaux (IPX,
DECNET…) ne sont pas pris en charge.
MPOA, normalisé par l’ATM FORUM, vise à résoudre ces différents aspects.
Le RFC 1483 de l’IETF (Multiprotocol over AAL5) définit une technique plus large que celle du
RC1577 pour transporter sur un réseau ATM des trames issues de réseaux MAC différents. Pour cela
la couche LLC/SNAP permet d’identifier à l’interface avec l’ATM la nature du trafic qui circule dans
le réseau (ISO ou Non –ISO, ARP, RARP, ICMP, IP…). Les octets sont alors différents de ceux de
IP/ATM vus précédemment, mais leur nombre est toujours de 8.
Le tableau qui suit résume les champs décrits dans le RFC1483 :
LLC
AA AA 03 : En-tête SNAP
FE FE 03 : trame ISO
SNAP
OUI
00 80 C2
PDU ponté
00 00 00
PDU routé
PID
00 01
00 02
00 03
00 04
00 05
00 07
00 08
00 09
00 0A
00 0B
00 0E
06 00
08 00
60 03
81 37
802.3 ponté avec CRC
802.4 ponté avec CRC
802.5 ponté avec CRC
FDDI ponté avec CRC
802.6 ponté avec CRC
802.3 ponté sans CRC
802.4 ponté sans CRC
802.5 ponté sans CRC
FDDI ponté sans CRC
802.6 ponté sans CRC
802.1 ponté
XNS routé
IP routé
DECnet routé
IPX routé
On y retrouve le routage de datagrammes vu dans le paragraphe 2.4.5. L’option avec ou sans CRC
s’explique par le fait que cette technique utilise la couche d’adaptation AAL5 qui inclut son propre
CRC, et donc le rend redondant avec celui des trames MAC.
En conclusion, le but du RFC 1483 est d’autoriser des accès multi-protocoles sur un seul VC ouvert à
travers un réseau. Il est également possible de réaliser un multiplexage sur VC en attribuant un VC par
protocoles. Le MPOA est une technique de type client-serveur élaborée pour traiter les cas de LANE
multiples et gérer leur interconnexion.
20.5.7 IP over SONET – RFC 1619
Cette technique est en concurrence avec « IP over ATM » où les datagrammes IP sont directement
placés dans les containers SONET (moyennant la mise en trame PPP). On gagne alors en débit brut
(on n’a plus les en-têtes de cellules ATM, ni le temps de calcul) mais on perd en fiabilité et en
souplesse (le multiplexage de datagrammes est plus lent que celui de cellules, et la gestion des QoS
qui n’est plus prise en charge ; deux atouts qui représentent l’intérêt d’ATM.
TCP
IP
PPP
SDH
OC
ET 20 octets
ET 20 octets
+7 octets
251
Section 6 – Réseaux Télécoms
IP
802.n
0806
0800
ARP
Adress
Resolution
Protocol
MPOA
Multi Protocol
Over ATM
CV commuté
RFC 1577
RFC 1483
VC muxing
CS
Co n ve rg e n ce
S u b la yer
AAL5
ATM
252
CV permanent
R FC 148 3
SNAP
LLC
Section 6 – Réseaux Télécoms
21. Systèmes Mobiles
21.1 Normes et services
21.1.1 Services et bande V/UHF
Le tableau qui suit résume les principaux services publics et privés rencontrés dans les bandes de
fréquence VHF à UHF.
Désignation
CB (Citizen Band)
Bande TV I
Bande FM
Bande aéronautique
3RP
Réseaux des
radiotéléphones à
ressources partagées
Bande TV III
TETRA
Trans European
Trunked Radio
Bande TV IV-V
GSM
Bande
26.965-27.405 MHz
40 canaux – 10kHz
47-68 MHz
canaux 8MHz
87.5-108MHz
canaux 400kHz
108-144MHz
150-174MHz
canaux 12.5kHz
Modulation
FM
BLR/AM(son)
Services
Radio communication sans
licence
Diffusion TV
WBFM
Diffusion radios FM
NBFM
FM
Radio communication aéroports
Radio communication
professionnelles
174-223MHz
410-470MHz
canaux 25kHz
BLR/AM(son)
π/4 DQPSK
Diffusion TV VHF (Canal+)
Transmission de données
470-830 MHz
890/915 MHz
935/960 MHz
BLR/AM(son)
GMSK
Diffusion TV UHF
Téléphonie mobile
(SFR/Orange)
21.1.2 Génération de systèmes mobiles
Les débits sont les débits théoriques maximum. Les bandes de fréquence dépendent des pays dans
lesquels ces systèmes sont déployés.
Si les systèmes historiques sont de philosophie « télécoms » destinées à la transmission de la voix
(téléphonie), normalisées par l’ETSI puis le 3GPP, les nouvelles générations orientées vers les
données sont plus dans la philosophie « réseaux », normalisées notamment via l’IEEE
253
Section 6 – Réseaux Télécoms
G
2G
2.5G
3G
3.5G
4G
Désignation
DECT
Digital Euroean
Cordless Telephone
GSM [ETSI]
Global system for
Mobile Communication
DCS [ETSI]
Digital Cellular system
GPRS [ETSI]
General Packet Radio
System
EDGE [3GPP]
Enhanced Data GSM
Evolution
UMTS [3GPP]
Universal Mobile
Telecommunication
System
HSDPA [3GPP]
High Speed Dowlink
Packet Access
HSUPA[3GPP]
High Speed Uplink
Packet Access
LTE [3GPP]
Long Term Evolution
Bande
1880/1900 MHz
Modulation
GFSK
F/TDMA
Débit
Voix : 9.6kbit/s
Data : 1Mbits/s /s
890/915 MHz 935/960 MHz GMSK
F/TDMA
Voix : 9.6kbit/s
Data : 14.4kbits/s
1710/1785MHz
1805/1880MHz
890/915 MHz
935/960 MHz
GMSK
F/TDMA
GMSK
F/TDMA
Voix : 9.6kbit/s
Data : 14.4kbits/s
28.8171 kbits/s
connecté TCP/IP
890/915 MHz
935/960 MHz
8-PSK
F/TDMA
<384kbits/s
connecté TCP/IP
1920/1980MHz
2110/2170MHz
QPSK
WCDMA
<384kbits/s connecté TCP/IP
1920/1980MHz
2110/2170MHz
QPSK/
16QAM
<384kbit/s 14Mbits/s
1920/1980MHz
2110/2170MHz
QPSK/
16QAM
5.8Mbits/s 14Mbits/s
1920/1980MHz
2110/2170MHz
300Mbit/s 80Mbit/S WiMax [IEEE802.16]
Worlwide
Interoperability for
Microwave Access
2/11 GHz
QPSK/
16QAM/
64QAM
SOFDMA
<1Gbit/s (fixe)
<100Mbit/s (mobile)
21.1.3 Evolution : débits et services
Débits
100Mbit/s
Réalité
Augmentée
10Mbit/s
Visiophonie
1Mbit/s
100kbit/s
10kbit/s
TV
Visiophonie
TV
TV
Internet HD
Internet HD
Internet HD
MMS
MMS
MMS
Voix Voix
MMS Voix
SMS
Voix Voix SMS SMS
SMS SMS
Internet SD
GSM
Génération
GPRS EDGE UMTS 4G
21.2 Système GSM
21.2.1 Architecture système GSM [2G]
Le GSM (Global System for Mobile Communication) est un réseau télécoms : il est constitué
254
Section 6 – Réseaux Télécoms
D’une infrastructure physique qui intègre en particulier la partie liaison sans fil
D’une infrastructure logique et logicielle qui gère l’ensemble des paramètres : identification,
localisation, routage des communications…
Signalisation
Communication & Signalisation
BSC
BTS
RTCP
MSC
BSC
VLR
BTS
BSC
HLR
RTCP
MSC
VLR
BTS
BSS NSS
BSS
BTS
Base Station Sub System
Base transceiver Station
BSC
MS
Base Station Controller
Mobile Station
NSS
MSC
VLR
Network Sub-system
Acheminant des communications
Mobile-services Switching Center Commutateur en général associé à une VLR
Vistor Location Register
Base de données locales identifiant les mobiles
présents dans la zone
Home Location Register
Base de données de localisation et de
caractérisation des utilisateurs mobiles.
HLR
Gestion des ressources radio
Systèmes radio : antennes,
emetteurs/récepteurs
Gestion des BTS et concentration des circuits
Terminal radio mobile
21.2.2 Architecture en couche de la Liaison radio GSM
La liaison radio est le point le plus particulier du réseau GSM. Chaque lien entre les différents
équipement est référencé par un nom d’interface. Le schéma ci-dessous est directement associé au
descriptif classique du modèle OSI en couche (Cf volume 3 – Réseaux).
uplink
MS
downlink
BSC
BTS
Connection Management
Mobile Management
Connection Management
Mobile Management
RR
Radio Ressource
LAPDm
Physique
MSC
RR' BTSM
LAPDm
LAPD
Physique Physique
BSSAP
BSSAP
BTSM
LAPD
Physique
LAPDm : Protocole assimilé à HDLC pour le mobile (m)
Ressource Radio : Gère les canaux radio et le suivi de communication en surveillant la qualité de
la liaison par cellules, l’activation des émetteurs
Mobile Management permet de gérer l’itinérance (Roaming) en lien avec les information des
bases de localisation intégrées au MSC
Connection Management : permet de traiter la commutation de circuit, ou les messages courts
SMS (Short Message Service)
255
Section 6 – Réseaux Télécoms
21.3 Concepts Cellulaires
21.3.1 Modèle Cellulaire
Le plan géographique est divisée en cellule couverte chacune par une BTS :
La taille des cellules qui constituent le maillage géographique du réseau dépendent de nombreux
facteurs : la géographie, la végétation, la densité des utilisateurs, le réseau routier, les fréquences…
Chaque cellule est désservie par une BTS dont la puissance et le diagramme de rayonnement sont
directement liés à la taille et la forme de la cellule ( BTS ou micro-BTS)
Afin d’assurer la couverture du réseau, certaines zones sont couvertes par plusieurs BTS, d’où des
perturbations et l’établissement d’un plan de fréquences.
21.3.2 Roaming : Itinérance
Le Roaming (itinérance) définit la capacité à se déplacer dans un réseau cellulaire et de pouvoir
joindre ou être joint en permanence : cela implique l’identification et la mise à jour de la localisation
de l’utilisateur mobile.
Cette notion est à la fois
locale, à l’intérieur d’une zone couverte par une même MSC
régionale, sur un territoire couvert par un opérateur donné (inter-MSC)
nationale, avec changement de réseaux d’opérateurs nationaux
internationale avec la mobilité internationale qui implique des accords inter-opérateurs
étrangers.
21.3.3 Handover : Transfert des communications
Le handover definit la capacité à maintenir une communication ou un service de transimission lors du
changement de cellules par le MS. Cette technique impose au mobile d’être synchronisé en
permanence avec plusieurs BTS. C’est le MSC qui a le contrôle de l’opération.
On peut signaler plusieurs cas de transfert
Rescue Handover en cas de pertes de signal (taux d’erreur critique)
Confinment Handover, en cas de perturbation provoqués par d’autres mobiles
256
Section 6 – Réseaux Télécoms
Traffic Handover, en cas de saturation d’une BTS par un grand nombre de mobiles.
21.3.4 Géolocalisation
Il est possible de localiser avec plus ou moins de précision, par identification de la BTS d’accueil, par
triangulation, ou par consultation des bases de données HLR/VLR. Des services internet permettent
(sous réserve d’autorisation) d’accéder en moins de 20 secondes à ces informations.
21.4 Identification
21.4.1 IMSI – International Mobile Subscriber Identity
l’IMSI est le numéro d’identification unique de l’abonné et non visible par l’utilisateur. Ce numéro est
attribué et utilisé par l’opérateur pour identifier un abonné, indépendament de son numéro de
téléphone(MSISDN) ou d’équipement (IMEI). Il est lié à la carte SIM (Subsciber Identity Module)
Le format est normalisé par l’E.212 de l’UIT.
208
France
03
Orange
13
HLR 13
12345678
Numéro d’abonné
21.4.2 MSISDN – Mobile Station ISDN Number
Le MSISDN est le nom savant du classique numéro de téléphone (commençant par 06 ou 07 pour les
éléments mobiles du réseau) permettant de joindre l’abonné sur son terminal (MS) ce numéro est
référencé au niveau international (33 6 pour la France) et peut être accessible via un annuaire.
21.4.3 IMEI – International Mobile Equipement Identity
l’IMEI est la numéro de série de l’appareil mobile de 15 chiffres minimum et défini de manière
unique. Il caractérise un équipement propre. Pour connaître ce numéro sur un terminal mobile il suffit
de composer sur le clavier la séquence :
*#06#
33
209900
123456
7
France
Allocation et format Identification model
Bit de vérification
interprétation
Sagem C850 – GSM 2/2+ - DGPT France
Ce numéro peut être identifié sur Internet via certains sites.
Signalons que l’IMEISV – IMEI Software Version est un numéro d’un format différent (le dernier
digit est remplacé par deux chiffres) qui identifie le logiciel installé sur le mobile pour traiter
l’identification.
21.5 Traitements numériques GSM
21.5.1 Acquisition de la voix
Le Canal vocal analogique, entre 300Hz et 3400Hz, est numérisée à une fréquence d’échantillonnage
de 8kHz (comme le RNIS) mais sur 13 bits (et non 8 bits). Le débit brut de la voix ainsi acquise est de
13*8k=104kbit/s. Ce débit, est réduit en compressant les données par un procédé appelé filtrage RPELTP (Regular Pulse Excitation – Long Term Prediction).
257
Section 6 – Réseaux Télécoms
La compression permet de restituer 260 bits utiles pour 20 ms de voix soit un débit utile de :
260
= 13kbit / s
0.020
21.5.2 Protection contre les erreurs
On définit trois classes de bits selon leur importance dans la restitution de la voix initialement acquise.
Chacune de ces trois classes est protégée de manière spécifique :
Classe
Nombre
de bits
Protection
Bits &
protection
Ia
50 bits
Elevée – CRC de 3 bits polynôme
53 bits
3
Ib
132
bits
II
78 bits
260
bits
§
x + x +1
(53+132+4§)*2
=378 bits
moyenne – encodage convolutif de
rendement ½ avec le bloc de 53 bits de
classe Ia protégé par CRC
Aucune
78 bits
456 bits
4 bits (0000) supplémentaires pour la purge du codeur convolutif en fin de séquence :
x 4 + x 3 + 1 pour les bits pairs - x 4 + x 3 + x + 1 pour les bits impairs
D’autres codeurs sont mis en œuvre pour les autres canaux du système GSM.
21.5.3 Entrelacement
Pour améliorer la détection et la correction des erreurs en rafales (burst errors) on entrelace les 456
bits dans 8 demi-blocs de 456/8=57 bits. Ces 57 bits ne sont pas pris consécutivement mais tous les 1
sur 8 de la séquence totale. Cette technique introduit un délai incompressible de 20ms environ dans la
transmission, ce qui n’est pas une difficulté pour la perception humaine, sensible à des décalages de
200ms.
Voix [300-3400Hz]
Compression
260 bits
20 ms
3 bits
bits de données codés et chiffrés
456 bits
58 bits
26 bits
séquenc e
d'apprentiss age
bits de données codés et chiffrés
BURST 546.5us
Entrelacement
8*57 bits
~40 ms
258
3 bits
58 bits
protection
Section 6 – Réseaux Télécoms
21.6 Systèmes 3G
21.6.1 Architecture simplifiée : système GSM/GPRS [2,5G]
Le GPRS est le système dédié à la transmission de données brutes, type fichiers ou page web. Les
débits obtenus peuvent varier de 9,6kbit/s à près de 150kbit/s. Pour atteindre ces valeurs, plusieurs
canaux TDM sont associés entre eux (juqu’au maximum de 8) et fournis à l’abonné. Bien sûr, les
performances vont diminuer avec l’augmentation du nombre d’utilisateurs simultanés.
Le GPRS est la frontière entre la commutation de circuit du GSM et le mode paquet des réseaux de
données (IP).
GSM
MS
Signalisation
BTS
RTCP
Mode circuit
BSC
Communication & Signalisation
MSC
VLR
GPRS
BTS
HLR
Mode Paquet
SGSN
GPRS
SGSN
General Packet Radio Service
Serving GPRS Support Node
GGSN
Gateway GPRS Support Node
GGSN
Internet
Relié au BSS, il agit comme un routeur qui gère
les terminaux dans la zone désservie
Assure l’interface (donc le routage) du réseau
GPRS avec d’autres réseaux (IP) GPRS ou
externes.
Le service GSM seul permet d’assurer le service communication vocal et SMS.
Le GPRS permet d’accroître le débit de données transmise (jusqu’à 150kbit/s environ) et autorise
l’accès Internet.
Remarquons que Le service de message court (SMS) n’utilise pas le GPRS mais le mode circuit
classique du GSM.
21.6.2 Architecture simplifiée : système UMTS [3G]
l’UMTS permet de faire évoluer l’interfce radio tout en continuant à s’appuyer sur le sous-système
GPRS. Les débits autorisés sont nettement supérieurs, de 144kbit/s jusqu’à 2Mbit/s selon l’usage (fixe
ou mobile) et les conditions de la liaison.
Les spécificités techniques des mobiles UMTS leur permet en général d’être totalement compatible
avec le réseau GSM (roaming) et de supporter en plus des cartes USIM les cartes SIM standards.
259
Section 6 – Réseaux Télécoms
RNS
MN
UMTS
Signalisation
Node B
RNC
Commutation de circuits
RTCP
Communication & Signalisation
MSC
RNC
VLR
Node B
GPRS
infrastructure
HLR
Commutation de paquets
SGSN
MN
Node B
Mobile Node
Noeud B
RNC
RNS
Radio Network Controller
Radio Network SubSystem
GGSN
Internet
Equipement terminal de la liaison radio dans une
ou plusieurs cellules
Contrôle l’usage de l’interface radio
Alloue et libère les ressources radio disponibles
260
Section 7 – Systèmes Informatiques
22. Architecture d’un Système Informatique
22.1 Présentation Générale
Un micro-ordinateur se compose initialement d’un écran, d’un clavier (d’une souris) et d’une unité
centrale. A cette configuration « mono-poste » s’ajoute des périphériques disques supplémentaires et
des éléments de connexion à un réseau.
La notion de « micro-ordinateur » comme structure autonome et isolée dédiée au calcul a
pratiquement disparue au profit d’un concept réseau et communication : le micro-ordinateur comme
interface entre utilisateurs, ou utilisateur avec le réseau : dans sa version initiale, voire historique, le
micro-ordinateur est destiné au calcul ; aujourd’hui c’est un outil de communication et d’échanges de
données.
En outre la présentation matérielle évolue vers des systèmes enfouis ou embarqués, c’est à dire que
l’interface utilisateur prend des formes nouvelles : téléphone, tablette, console de jeux, automobile,
équipement ménager… Un système informatique, avec cet aspect extérieur à présent familier et
intégré à notre vie quotidienne, c’est avant tout un matériel électronique qui traite des données, ou
encore, qui « brasse des bits », des éléments binaires (0 et 1).
261
Section 7 – Systèmes Informatiques
Données à
traiter
Données
traitées
Unité de calcul
Processeur
Mémoire
Unité centrale
Ces données sont traitées suivant un programme qui a été écrit dans un but précis. Ce programme est
placé en mémoire et est exécuté par le processeur.
Nous distinguerons donc pour commencer ces éléments de base : les organes de traitement et les
organes de stockage ; les instructions du programme et les données à traiter. Les interactions entre ces
quatre éléments constituent le cadre de l’informatique contemporaine.
22.2 Structure
22.2.1 Architecture générale
L’unité centrale est elle-même composée d’éléments bien distincts illustrés par le schéma suivant :
Mémoire Vive
Mémoire
cache
Externe
Chipset
Processeur
Bus ISA
Carte
Carte
Carte
Carte
Bus PCI
Carte Graphique
Carte Réseau
Carte SCSI PCI
Bus IDE
Disque dur
CD ROM - DVD
ZIP
UDMA
Bus AGP
Audio
Réseau
SCSI ISA
Modem
Carte Graphique
port
port
port
port
port
série parallèle PS2 USB (1/2) IEEE 1394
D’un point de vue plus détaillée, la carte mère s’organise autour du Northbridge et du Southbridge :
262
Section 7 – Systèmes Informatiques
chip set
C lo ck
CPU
L1 - L2
F ro nt Sid e
Bus
North
Bridge
SLO TS
RAM
AGP/PCIe
g rap hic
SLO TS
C o ntro ller
Bus
SLO TS
PCI PCI/e
South
Bridge
SLO TS
EIDE
SATA
USB
Ethernet
ISA
I/O
Controller
Diagramme de
Carte mère
PS2 RS Audio
232 Codec
Les mémoires(RAM) et le processeur (CPU-L1-L2), qui constituent le noyau de l’unité centrale,
seront analysés dans les parties suivantes.
22.2.2 Le chipset :
En français, c’est le jeu de puces, c’est à dire les composants dont est constituée la carte mère qui
supporte l’ensemble des autres éléments. Ces composants génèrent en particulier la fréquence
d’horloge (quartz de référence), gère l’alimentation électrique, le dialogue avec les périphériques
(BIOS), les ports de sortie, les bus, les périphériques de stockage…
Son rôle est donc important et il doit être adapté aux éléments qu’il supportera (type de connexion,
tension, horloge…). Certaines cartes mères intègrent en plus le jeu de puces pour les cartes vidéo ou
son, voir la mémoire vive. C’est le cas des portables pour un gain de place.
Les évolutions des processeurs ou des mémoires vives (« barettes de RAM ») nécessitent en général le
changement du chipset, c’est à dire de la carte mère. Cela est également associé au connecteur associé
au processeur.
22.2.3 Les connecteurs processeurs
Le processeur est fiché directement sur la carte mère par l’intermédiaire d’un connecteur. Leur
caractéristique essentielle est d’être incompatible entre eux, et de faire (ou non) le succès d’un
processeur. Ce tableau présente une évolution résumé de ces sockets :
Connecteur PC
Socket 7
Slot ONE
Socket 370
Socket 478 / Socket 423
Socket A
Socket 754
Socket 939/940
Socket T
Socket M / Socket J
Socket AM3
Socket H
Année
1994
1997
1999
2000
2000
2003
2004
2004
2006
2009
2009
Processeurs
Pentium I- pro – AMDK6
Pentium II - III
PIII -Celeron 500
Pentium IV
AMD - Athlon
AMD - ATHLON 64
AMD - ATHLON 64
Intel – PIV - Celeron - Core Duo
Intel Core – Xeon
AMD- Athlon II Sempron
Intel Core I – Xeon - Pentium
Le slot one correspondait à un processeur en cartouche. Cela a été un échec pour Intel :
incompatibilité avec l’ancien et avec les clone AMD ; coût élevé de la cartouche (packaging
plastique), scepticisme des utilisateurs… Les évolutions tendent à alléger la présentation ; de son côté
263
Section 7 – Systèmes Informatiques
AMD a conservé une connectique plus classique, qui est toujours aujourd’hui celle des processeurs
Intel.
La technologie de ces connecteurs peut se classer en trois familles qui se distinguent par le mode de
contact électrique entre le composant et le connecteur. Ce contact est délicat pour des raisons de
dissipation de chaleur ou de contraintes mécaniques pour insérer le processeur sur le connecteur.
PGA
BGA
LGA
Pin Grid Array
Ball Grid Array
Land Grid Array
Matrice de broches
Matrice de billes - Haute densité
Matrice de pastilles – Plus de broches sur le
composant
Il existe de plus en plus de variantes de connecteurs pour les différents types de cartes mères : PC de
bureau, portable, smartphones, mini-PC…
22.2.4 Les bus périphériques
On distingue actuellement plusieurs types de bus que l’on repère sur la plupart des cartes mères.
Certains anciens disparaissent au profit de plus puissant et plus rapides :
ISA (Industry Standard Architecture): les bus d’anciennes générations, donc peu rapides. Il
ne convienne plus aux exigences des débits vidéo notamment, mais tout à fait à une carte
RNIS (1000 fois moins rapide qu’un bus ISA !). Ils sont compatibles 8/16 bits et ont un
débit de 8/16MHz. EISA, est une version améliorée (E : Enhanced).
PCI (peripheral Componant interconnect): c’est le nouveau bus, 32 bits à 33MHz
d’horloge. Il supporte le type de reconnaissance Plug&Play. Le PCI X est une évolution 64
bits.
PCI/e xn (peripheral Componant interconnect – express) dérivé du PCI, utilise
physiquement un nombre n de lignes séries bidirectionnelles (bus de 1 bit) ; Destinés à
remplacer AGP et PCI.
E-IDE (Enhanced-IDE) : Ce type de bus est utilisé pour le dialogue avec les supports de
stockage (CDROM, Disque dur, ZIP…).
UDMA (ultra direct memory Access) : est une technologie compatible avec L’E-IDE, mais
plus rapide à 33Mo/s. Le Chipset doit être prévu pour gérer l’UDMA. le principe de l’accès
DMA est d’autoriser un périphérique à accèder au disque dur sans solliciter le processeur.
SCSI (Small Computer System Interface) : concurrent avec l’EIDE et l’UDMA, il s’agit
d’une technique d’accès aux périphériques Elle reste marginale. Il existe de très
nombreuses évolutions de cette technologie : Wide, ultra 2, 3 ultra 640…
AGP 4x (8x) (Accelerated Graphic Port) : Compte tenu des besoins en bande passante
(jeu et image vidéo), un port spécifique a été développé par Intel pour l’échange avec la
carte graphique, afin de remplacer le PCI trop « juste ».
ATA (Advanced Technology Attachment) : Bus entre carte mère et disque dure de 100 à
600Mbit/s.
SATA (Serial Advanced Technology Attachment) : Bus entre carte mère et disque dur de
133Mo/s à 150Mo/s. Pour SATA II on donne 380Mo/s, et pour le III 600 Mo/s
Ces bus, associés à des connecteurs spécifiques, supportent donc les périphériques de la carte mère. Le
processeur et les mémoires sont eux-mêmes fixés sur la carte mère par des dispositifs appropriés
(SLOT ou Socket pour les processeurs) auxquels on ne donne pas le nom de bus car leur connexion
est dédiée et non partagée.
264
Section 7 – Systèmes Informatiques
Nom
ISA
PCI
PCI-X
PCI-X 2
PCI Express
W-SCSI
SCSI 3
UDMA
SATA
SATA II
SATA III
AGP 2x
AGP 4x
AGP 8x
Largeur Bus
16 bits
32 bits
64 bits
64 bits
1 (série)
16 bits
16
1 (série)
2 (série)
3 (série)
32bits
32bits
32bits
Fréquence
16 MHz
33 MHz
133 MHz
533 MHz
10
80 QDR**
2x66 MHz
4x66 MHz
266 MHz
Bande Passante*
32Mo/s
132Mo/s
1Go/s
4Go/s
8Go/s
20/40 Mo/s
640 Mo/s
33 Mo/s
180 Mo/s
380 Mo/s
600Mo/s
528Mo/s
1Go/s
2,1Go/s
*Bande passante maximale selon les versions
**QDR : Quadruple Data Rate : Deux transitions écriture et deux lectures pour un cycle
horloge.
La vitesse s’obtient par le produit de la taille du bus en octets avec l’horloge en MHz. Certaines
normes supportent la transmission sur les deux fronts d’horloge (montant et descendant) ce qui double
la vitesse.
22.2.5 Les ports d’entrée/sortie
l’inconvénient des ports « historiques », série ou parallèle, est leur très faible débit (quelques dizaines
de kio maximum). Aussi s’est-il avéré intéressant de proposer des accès externes à des débits élevés
pour connecter simplement des périphériques gourmands en débit : scanner, unité de stockage, caméra
numérique…
Port
USB 1.0
USB 2.0 / Wireless USB
USB 3.0
IEEE 1394 (FireWire)
FireWire 2
débit
1,5Mo/s
45-60 Mo/s
600 Mo/s
12.5-25-50-100 Mo/s
200 Mo/s
Le port USB (universal Serial Bus) est le plus répandu aujourd’hui dans le monde PC, avec son
concurrent IEE1394 (Mac).
22.3 USB
22.3.1 Evolution des interfaces
Les interface séries classiques RS232 tendent aujourd’hui à disparaître (quoique) au profit de l’USB –
Universal Serial Bus – qui se veut, comme son nom l’indique une interface standard pour la
connexion d’équipements en tout genre, et en particulier d’équipement type ETCD à des ETTD.
En outre, une étude se justifie en raison du caractère classique de la présentation de la norme qui
illustre bien les différents aspects des concepts réseaux.
Il existe plusieurs variantes résumées dans le tableau qui suit :
265
Section 7 – Systèmes Informatiques
USB 1.1
USB 2.0
High Speed
USB OTG
On The Go
USB 3.0
Connexion PC série par câble
Connexion PC série par câble et Radio
1,5 Mbit/s et 12Mbit/s
480Mbit/s
Connexion série
inter-périphériques
Connexion par câble périphériques
stockage de masse
_
4800Mbit/s
La variante OTG (« au pied levé ») est une évolution de l’USB 2.0 pour assurer l’interconnexion entre
périphérique non PC : Téléphone et PDA, Appareil photo et imprimante, Portable et lecteur MP3…
22.3.2 Topologie
Le bus série USB a une topologie que l’on apparente à une topologie Bus ou étoile, avec un HUB ou
concentrateur, sur lequel sont raccordés les différents ports d’accès. Pour des raisons liés à la capacité
d’adressage, on peut raccordé jusqu’à 127 équipements sur un contrôleur d’hôte. L’hôte désigne ici la
machine qui pilote le bus ; c’est en général le PC. Sur les PC récents, chacun des ports dispose de son
propre contrôleur ce qui permet de multiplier par autant la capacité.
22.3.3 Description Mécanique et câblage
Il existe deux types de connecteurs, déclinés eux-mêmes en versions mâle et femelle :
Type A
Connecteur plat
Mâle vers l’amont
Femelle vers l’aval
Type B
Connecteur carré
Mâle vers l’aval
Femelle vers l’amont
On trouve en outre des versions de connecteurs A et B miniatures pour les équipements de petites
tailles (portables, agenda…)
Le câble USB est composé de 4 fils, dont les couleurs sont normalisés. Le surmoulage doit être de
couleur blanc, naturel, gris ou noir.
Connecteur Type A
1
2
3
4
Connecteur Type B
Rouge
Blanc
Vert
Noir
266
Alim Bus (+5V)
DD+
Masse
Section 7 – Systèmes Informatiques
22.3.4 Description Electrique
Les éléments binaires sont transmis par un codage différentiel utilisant les deux paires D+ et D- avec
un codage de type NRZI, décrit dans le cours sur les codages.
Niveau haut
Niveau bas
VD+-Vmasse
VD- - Vmasse
VD+-Vmasse
VD- - Vmasse
>2.8V
<-0.3V
<-0.3V
>2.8V
Au niveau du récepteur, on définit :
Niveau haut
Niveau bas
VD+ - VDVD- - VD+
>200mV
>200mV
22.3.5 Description fonctionnelle
Compte –tenu de la simplicité de câblage, la procédure fonctionnelle est plus complexe et utilise un
protocole complet de communication entre l’hôte et les différents périphérique que nous ne
détaillerons pas ici.
22.4 Technologie des mémoires
Au fondement du développement des mémoires intégrées sur semi-conducteurs (ou MISC) il y a la
technologie même qui permet de fabriquer ces transistors à base de semi-conducteurs. Deux grandes
familles se partagent le marché : MOS (Metal Oxyde Semiconductor) et bipolaire.
22.4.1 Bipolaire
De type NPN ou PNP, il existe aujourd’hui deux filières :
TTL (Transistor-Transistor Logic)
ECL (Emitter coupled logic)
Conctacts aluminium
Emetteur
Collecteur
N
Base P
Collecteur
Base
N
Emetteur
Bipolaire NPN
Leur intérêt est de présenter une grande vitesse de commutation. ECL est très performante de ce point
de vue mais aussi très consommante.
22.4.2 MOS
Cette technologie permet une forte intégration des composants et des puissances de consommation
faibles ; deux filières coexistent :
MOS et n-MOS (Canal n) ou MOSFET
CMOS (Complementary MOS) puis BiCMOS
267
Section 7 – Systèmes Informatiques
Conctacts aluminium
Grille
Drain
Source
N+
N
Drain
isolant (SiO2)
N+
canal N
P
Grille
Bulk
Source
Substrat P
MOSFET Canal N
Enrichissement
B (Bulk)
MOSFET Canal N
Le CMOS désigne en réalité une famille logique. Il s’agit de l’association de deux transistors MOS
complémentaires : un canal n et un canal p.
22.4.3 comparaison
On résume dans ce tableau les principaux intérêts de ces différentes technologie :
NMOS
CMOSBiCMOS
+
+
Vitesse
Consommation
TTL
ECL
++
++
Simplicité de conception des circuits
++
++
Densité d’intégration
++
+
La plupart des composants intégrés sur les PC sont de la famille CMOS ou BiCMOS. Nous
reviendrons sur les problèmes de consommation et de technologie dans la partie consacrée aux
processeurs.
22.4.4 Bascule
La bascule, aussi appelée « point-mémoire » est l’élément de base permettant de mémoriser un
élément binaire (ou bit, avec tous les dangers bien connus des pros des télécoms quant à l’usage de ce
mot).
Entrée 0 ou 1
Horloge ou
commande
Sortie 0 ou 1
Il existe différent type de bascule présentant des intérêts plus ou moins variés (RS, D, JK,…).
Elles peuvent être réalisées dans une quelconque des technologies citées précédemment en utilisant
des opérateurs logiques combinés entre eux (NAND,NOR…)
On distinguera ici les notions, utiles pour la suite, de mémoires dynamiques et statiques.
Les mémoires statiques nécessitent 6 transistors et sont stables dans le temps ; leur accès
est très rapide.
Les mémoires dynamiques ne nécessitent qu’un seul transistor associé à une capacité, mais
exige une régénération de l’information mémorisée toutes les 2 à 4 ms ; leur accès est
complexe et plus lent que pour les précédentes.
Sur ces différents points, les technologies évoluent très rapidement.
268
Section 7 – Systèmes Informatiques
22.4.5 Registre
Un registre est un ensemble de case mémoire de dimension précise (8, 16, 32, 64… éléments binaires
mémorisables) ; c’est donc un ensemble de bascule. On parle aussi de buffer pour désigner un espace
mémoire tampon.
On distingue les registres parallèles des registres à décalage, dont on illustre les principes sur la
figure suivante :
Registre
parallèle
Horloge ou
command e
Horloge ou
commande
sortie
entrée
Registre
A décalage
22.4.6 Adressage
Une mémoire est un ensemble de registres, tout simplement. Néanmoins, il sera nécessaire ici de
distinguer les différents registres entre eux. On aura donc deux concepts essentiels pour utiliser une
mémoire :
L’adresse, qui nomme un espace mémoire (registre)
La donnée, qui constitue l’information contenue dans le registre nommé
Adresse
#0
#1
#2
0
1
0
1
Données – Registres de 8 bits
1
1
0
1
0
0
0
0
0
1
1
0
#N
Dans cet exemple, chaque champs adressable est un registre de 8 Bits. La quantité de registres dépend
du nombre de numéros d’adresses disponibles (A0, A1…), et ce dernier dépend du nombre de bits sur
lequel ces numéros sont codés. Le tableau suivant illustre les capacités d’adressage :
4 bits
8 bits
16 bits
32 bits
36 bits
40 bits
64 bits
16 adresses
256 adresses
65536 adresses
4.294.967.296
68.719.476.736
64 Kilo octets – capacité DOS
4 Giga octets
68 Giga octets - capacité pentium
>1000 Go
> 18 10^18 (18 Exaoctets)
Les adresses sur 64 bits, malgré leurs apparences disproportionnées, sont aujourd’hui manipuler par
les processeurs… Bien sûr, la gestion des formats d’adresses nécessite des temps de calcul d’autant
plus élevé que les adresses sont longues : le passage d’adresse 16 à 32 puis 64 bits n’est donc pas sans
conséquence sur les performances d’un système et la consommation.
22.4.7 Caractéristiques principales
Deux éléments qui caractérisent les mémoires sont :
269
Section 7 – Systèmes Informatiques
Le temps d’accès, c’est à dire la durée entre la demande d’une information à une mémoire et
sa mise à disposition sur un bus par exemple.
La capacité de données mémorisables, qui se mesure en kio, Mio, Gio…
Deux remarques :
En anglais octets se dit Bytes et s’abrège B. Ne pas confondre avec bit (1 Byte= 8 bits).
Les capacités s’expriment de manière capricieuse, et le kilo d’octets ne vaut pas mille, d’où
une certaine confusion dans l’expression des quantités exactes…
1
1
1
1
kio (Ko)
Mio
Gio
Tio
Kibioctet
Mebioctet
Gibioctet
Tébioctet
210
220
230
240
1
1
1
1
ko
Mo
Go
To
Kilooctet
Megaoctet
Gigaoctet
Téraoctet
103 = 1.000 octets
106 = 1.000.000 octets
109 = 1.000.000.000 octets
1012 = 1 000 000 000 000 octets
=
=
=
=
1.024 octets
1.048.576 octets
1.073.741.824 octets
1 099 511 627 776 octets
22.5 Les Types de Mémoires
Nous distinguerons comme de tradition ROM et RAM mais il est clair que la frontière est parfois
floue. Outre les classifications habituelles, on trouvera quelques éléments sur les mémoires actuelles
dont sont constitués les micro-ordinateurs.
22.5.1 Les Accès
Une autre façon de comprendre les types de mémoires est d’étudier le type d’accès, temporel (partagé
dans le temps) ou spatial (à l’aide d’un commutateur). De plus il existe (ou existait) des accès
séquentiels ou aléatoires.
Dans la pratique, les mémoires sont toutes à accès aléatoire, plus souple, où chaque partie de la
mémoire dispose de son adresse propre.
22.5.2 ROM
En anglais Read Only Memory ou mémoire morte. Ces mémoires ont un contenu en principe définitif.
Mais de nombreuses variantes font qu’elles sont parfois effaçables. Le définitif peut être temporaire et
la mémoire morte donne des signes de vie. Elles ne présentent cependant pas la souplesse d’écriture
des mémoires vives. Une des caractéristiques des mémoires mortes effaçables par rayonnement est de
disposer d’une fenêtre sur le dessus du boîtier. Ce type d’UVPROM est en particulier utilisé pour
stocker le BIOS des PC.
Mémoire morte
ROM programmable
par l'utilisateur
ROM programmable
par masque
ROM programmable
effaçable EPROM
ROM effaçabl e
aux UV: UVPROM
ROM effaçable
électriquement : EEPROM
270
ROM programmable
à fusible
EPROM effaçable
électriquement :flash
ROM programmable
une seule fois
Section 7 – Systèmes Informatiques
On assimile aujourd’hui ses ROM a des mémoires non volatiles, c’est à dire qu’elles se conservent
sans une alimentation électrique permanente.
22.5.3 Mémoire Flash
La mémoire flash est de type EEPROM et s’assimile par sa technologie à une RAM(§2.5.4) non
volatile. Les bits sont conservés par piégeage d’électrons dans les portes électroniques. Les cellules
mémoires flash ont une capacité de réécriture de l’ordre de 10000 à 100000 selon la technologie.
On trouve deux familles technologiques
Flash NOR : Accès long en écriture (effacement) mais rapide (accès aléatoire) en lecture.
Coût élevé. Adapté aux disques de boot. On la réserve au stockage de code (firmware) avec
des dimensions de quelques dizaines de Mo.
Flash NAND : accès rapide en écriture et plus long (accès séquentiel) en lecture.
Relativement bon marché.. Utilisées sur les cartes mémoires de stockage. Elles proposent des
esapces de stockage de plusieurs dizaines de Go.
Pour ces raisons, la défragmentation sur ces supports n’est pas conseillé puisqu’elle augmente les
cycles d’écritures (ce qui accélère le vieillissement) ; Le temps d’accès à une mémoire flash est 10
fois plus long que pour un accès d’un disque dur. Le gain de performance est donc très peu sensible.
22.5.4 RAM
« 640 ko de RAM devrait suffire à tout le monde » Bill Gates. (Il y a très longtemps)
Les mémoires vives ou Random Access Memory stockent temporairement les informations (tant
qu’elles sont alimentées). Elles sont aussi dites « volatiles ». Plus leur temps d’accès est cours, plus
leur prix est élevé et en pratique plus les capacités offertes sont limitées. On retrouve cet état de fait
dans la façon dont elles sont réparties au sein d’une unité centrale. Cela sera abordé en détail dans la
partie III.
Type
DRAM (Dynamic RAM)
EDO
SDRAM (Synchronous DRAM) 33MHz
SDRAM 100MHz
SDRAM 133MHz
DRDRAM (Direct Rambus DRAM) PC800
DDR SDRAM 133MHz/200MHz
DDR2(QDR) SDRAM 800MHz
DDR3 SDRAM
XDR DRAM (Rambus)
Temps d’accès
(latence)
~70 ns
~60 ns
~50 ns
~50 ns
~50 ns
~50 ns
~50 ns
~50 ns (3-3-3)
~10 ns 7/7/7/20
~10 ns 1/2/2/3 (ns)
Capacité
0,20 Go/s
0,32 Go/s
0,25 Go/s
0,8 Go/s
1,1 Go/s
1,6 Go/s
2,1 Go/s
6,4 Go/s
> 10 Go/s
12,8 Go/s
Les mémoires SDRAM et DRDRAM puis XDRDRAM (architectures propriétaires de RAMBUS)
sont en concurrence sur le marché. Les mémoires Rambus sont plus performantes (50% environ) mais
plus chers. Leur architecture est en particulier optimisée par un câblage interne plus court en moyenne
et identique pour les différents accès.
271
Section 7 – Systèmes Informatiques
controller
Architecture Rambus
controller
Architecture
SDRAM
Succédant au SDRAM, les mémoires DDR SDRAM, Double Data Rate SDRAM ont pour différence
avec la SDRAM classique, de doubler le débit de transfert avec une fréquence d’horloge constante en
travaillant sur les deux fronts d’horloge, montant et descendant. La SDRAM classique transfert sur le
front montant seulement. LA DDR2 offre deux canaux DDR parallèles : un lecture et un écriture ce
qui permet de quadrupler la vitesse globale.
Les mémoires SRAM quant à elles, et à cause de leur coût élevé sont utilisées pour les mémoires
caches. Celles de caches de niveau 1 doivent atteindre des temps d’accès de quelques nano-secondes
pour être compatibles avec les fréquences d’horloge des processeurs… En comparaison, le temps
d’accès au disque dur est de quelques milli-secondes.
Quant à la MRAM (magneto-resistive RAM – développée par IBM, Hitachi et ST microelectronics)
elle promet pour les prochaines années des performances analogues avec l’avantage de la non
volatilité lors de la coupure de l’alimentation. Elle serait idéale pour des boot ultra-rapide, dans les
PC, les téléphones, les appareils photos… Mais elle reste encore chère. Elle pourrait à terme
remplacer avantageusement les mémoires types Flash dont le temps d’accès est de l’ordre de la milliseconde.
22.5.5 Latence CAS
La latence CAS (Column Adress Strobe) est un paramètre capital pour estimer la rapidité des
mémoires RAM. Ce paramètre numérique donne le nombre de cycles d’horloge nécessaires à une
RAM pour accéder aux données. Précisément, chaque point mémoire (transistor) est accessible par sa
colonne et sa rangée, la latence (CAS ou RAS) est le temps d’attente entre la commande reçue par la
RAM et la disponibilité de la donnée sur le bus de sortie.
Ce paramètre, de 1.5 à 3, voire plus, est indiqué en premier dans les descriptifs de RAM : 2338
signifie 2/3/3/8 :
2
3
3
8
CAS Latency
RAS Precharge
RAS (Row AS) to CAS latency
RAS active time
Délai
Délai
Délai
Délai
d’accès colonne
entre deux accès à une ligne
entre mode rangée et colonne
d’accès rangée
Une valeur faible pour ces paramètres, dans l’ordre ici indiqué, est bien sûr synonyme de meilleure
performance, mais aussi de valeur de fréquence faible sur le bus. Un accroissement de la valeur de la
fréquence bus augmentera le nombre de cycles (cas de la DDR3 par exemple). Des réglages optimisés
de ces valeurs dans le BIOS d’un PC peuvent accroître de quelques % les performances des RAM
22.5.6 Technologie et consommation
Une des contraintes dans l’évolution et la réalisation des mémoires et des processeurs est liée à la
technologie utilisée pour les réaliser. On retiendra que celle utilisée actuellement est du type BICMOS
272
Section 7 – Systèmes Informatiques
(structure CMOS avec étage de sortie Push-Pull bipolaire pour les puristes). Cette technologie est très
performante en terme de rapidité mais très consommante. Ces structures sont essentiellement
consommantes au moment de la commutation des transistors.
De plus, les capacités parasites présentent dans la mise en chaîne des fonctions, c’est à dire la
désadaptation de la chaîne électrique, déforment les signaux numériques ce qui limite la montée en
fréquence.
VDD
S
E
CL
Architecture CM OS
En outre, afin d’augmenter le nombre de transistors et d’accélérer les échanges électriques, on
diminue la distance entre deux transistors. On avait 0,35µm pour les versions des premiers pentium et
0,80µm (soit 800nm) pour les 386. Le tableau suivant est fourni par la société Intel pour ces
processeurs Le processeur quantique révolutionnera à terme ces avancées.
2007
2008
2010
2011
65nm
45nm
32nm
22nm
Ces valeurs sont conformes à la loi de MOORE. Cet ingénieur avait formulé dans les années 70 une
loi selon laquelle la densité d’intégration des transistors doublait tous les 18mois, puis tous les 2 ans
dans les dernières années du XXème siècle et au début du XXIème. On travaille sur des gravures
inférieures à 10nm en laboratoire.
Cette intégration poussée, associée à la technologie bicmos, conduit à des problèmes de dissipation de
chaleur. Néanmoins le rapprochement des transistors diminue la longueur des contacts et donc réduit
les pertes par effet joules dans ces pistes. Une solution consiste à réduire la tension d’alimentation du
processeur (ou de la mémoire) en utilisant des tensions de 1,65V pour les processeurs les plus récents,
contre 3,3V pour les premiers pentium et 5V pour les 386.
Un changement de technologie va également dans ce sens, tout en améliorant les performances des
composants : il s’agit de la techno cuivre. Les contacts entre transistors sont en métal ; l’aluminium
était jusqu’à présent utilisé dû à son faible coût et sa simplicité d’utilisation dans les processus de
fonderie. Mais il provoque des pertes importantes. Le cuivre est le meilleur conducteur, mais il est très
cher. Les fondeurs ont longtemps repoussé cette évolution. Aujourd’hui elle est nécessaire.
22.6 Architecture d’un processeur
22.6.1 Architecture globale
Chaque constructeur est libre de structurer le processeur à sa façon. Néanmoins, depuis les origines
historiques avec les machines de Von Neumann, le principe de fonctionnement est à peu de chose près
toujours le même. La figure suivante présente le schéma pour le processeur pentium classique, encore
très répandu.
273
Section 7 – Systèmes Informatiques
cache du
code 16Ko
traitement
des instructions
mémoire
des instructions
unité de contrôle
BUS
Bus de données
64 bits/s
Bus d'adresses
64 bits/s
Chipset
optimisation
du co de
Organisation
des adresses
Organisation
des données
Unité de
calcul en
virgule
flottante
cache de
données 16Ko
architecture d'un processeur pentium
On peut dors et déjà dégager trois concepts clés, ou la Sainte Trinité de l’informatique : l’unité du
calcul, cœur du processeur (le Père), les mémoires caches, stockant les informations manipulées par
l’unité calcul (le Fils) et le bus qui permet au deux précédents de dialoguer (l’Esprit). La comparaison
s’arrête là. L’ensemble constitue l’unité centrale (CPU).
Le travail du processeur consiste donc à effectuer une série d’opération sur des données qu’il prend
dans les mémoires et redélivre ses résultats à ses mêmes mémoires. On comprend donc que cette
manipulation nécessite aussi un traitement des adresses, ce qui se traduira par la présence d’une unité
d’organisation des adresses spécifique, et d’unités de contrôle gérant l’articulation adresses/données.
Un dernier point concerne les instructions réalisées par l’unité de calcul. Les données sont traitées
suivant un programme (le logiciel…) qui est décodé par le processeur. Ce dernier génère un code,
c’est à dire une série d’instructions élémentaires qui est la traduction du programme dans le langage
du processeur. La nature de ces instructions, et la façon dont elles sont exécutées par le processeur
seront capitales dans son architecture.
22.6.2 UAL
En français Unité Arithmétique et Logique, et en anglais ALU (Arithmetical and Logical Unit). Elle
réalise les calculs (sur les données ou les adresses) qui lui sont demandés.
L’UAL la plus simple réalise des additions binaires (1+1=0). On peut aussi ajouter des opérations
logiques booléennes (OR, NAND, NOR…). Cette unité réalise des calculs sur les nombres entiers,
c’est à dire sur des mots binaires d’une longueur fixe. Cette longueur, en bits, détermine la
dénomination globale du microprocesseur. Actuellement, les processeurs ont une architecture 32 bits,
c’est à dire que l’UAL travaille sur des mots de 32 éléments binaires.
mot 32 bits
mot 32 bits
Horloge
Commande
Opération
ALU
mot 32 bits
274
Indication
(retenue, résultat nu l...)
Section 7 – Systèmes Informatiques
Bien entendu, plus la taille est grande, plus l’unité de calcul sera puissante. Il existe des processeurs
64 bits (Cf dernière partie) pour les stations et serveurs professionnels, et les architectures des
processeurs grand publics tendent vers cette taille également (Itanium Intel, Opteron AMD, G5
Motorola…).
Cependant, aujourd’hui beaucoup d’applications (multimédia, graphiques notamment) nécessitent des
calculs sur des « nombres à virgules », c’est à dire comportant une série de chiffres et un exposant.
Ces nombres ne sont convenablement traités que par une unité de calcul appropriée : la FPU (Floating
point unit). Il y a quelques années, ce composant portait le nom de coprocesseur et était physiquement
dissocié du processeur. A présent, il est systématiquement intégré dans les architectures depuis les
premiers pentium.
Un nombre réel à virgule, de la forme 0,000001, peut être noté sous une forme scientifique 1.10E-6 ce
qui est plus court et nécessite des registres (mantisse – exposant) plus court pour manipuler un espace
de nombres plus grand que celui des entiers. Nous retrouvons ces particularités en C notamment pour
la déclaration des int et des float.
Notons enfin que le calcul sur les nombres entiers concerne principalement les applications de type
bureautique. Les applications multimédia (graphique, vidéo, 3D, voix…) nécessitent quant à elles des
calculs en virgule flottante. Ces unités multimédia sur les processeurs modernes peuvent disposer de
registre spéciaux plus large sur 40, 64 ou même 128 bits.
22.6.3 La fréquence d’horloge
A ce point, il n’est plus possible d’évacuer l’attribut le plus précieux de la divinité qui (s’il était la
Charité-Agape dans le cas de notre comparaison) est ici la fréquence de l’horloge. C’est elle qui
rythme la vitesse à laquelle s’effectue les calculs. L’augmentation de la fréquence d’horloge accroît
directement la vitesse du travail dans les mêmes proportions.
Le processeur dispose de sa propre horloge, seul le quartz est fourni par la carte mère. Il y a peu de
temps, la vitesse était de quelques dizaines de Mégahertz (33MHz pour les 386), Intel affiche
aujourd’hui des pentium à pratiquement 2GHz. C’est l’ALU ! Le tableau qui suit résume l’évolution
qui suit la loi de MOORE : le doublement de la puissance tous les deux ans.
Année
1985
1989
1993
1995
1997
1999
2001
2003
2005
2007
2009
2010
Fréquence
32MHz
60MHz
120MHz
180MHz
300MHz
500MHz
~1GHz
~2GHz
~4GHz
~4GHz x2
~4GHz x4
~4GHz x6
Processeur
386
486
Pentium
Pentium pro
PII
PIII
P4
P4
P4
Core2
Corei7
Corei7x
Cependant, cette donnée, fondamentale, n’est qu’une des nombreuses conditions pour obtenir un
matériel performant ; la taille des registres de l’UAL (32 ou 64 bits à partir de 2004) et les éléments
détaillés ci-après sont aussi importants… De plus des techniques permettent d’accroître les capacités à
fréquence constante, notamment en travaillant sur le front montant et sur le front descendant de
l’horloge, ce qui double la vitesse de transfert.
Ceci est d’autant plus vrai que pour des raisons commerciales, un processeur de type Athlon d’AMD
qualifié de 2000 ne tourne pas à 2 GHz mais seulement 1,250MHz, cependant, ses performances sont
équivalentes à celles d’un pentium 4 2GHz.
275
Section 7 – Systèmes Informatiques
22.6.4 Caches de niveau 1, 2 et 3
Les caches sont des mémoires vives (RAM). Il existe en principe deux types :
des caches de niveau 1, ou level 1 ou L1
de niveau 2, ou level 2 ou L2
de niveau 3, ou level 3 ou L3
On trouve aussi les notions de cache interne ou externe. Les caches de niveau 3 (De plusieurs Mo)
sont apparus sur les familles core i5 et i7 d’Intel assurant une meilleure répartition de l’accès avec la
RAM.
Comme toute mémoire vive, on parle de leur capacité et de leur temps d’accès. Ici, les caches sont les
espaces mémoires avec lesquels dialoguera directement le processeur. Comme le processeur travaille
vite, les mémoires devront aussi être aussi rapides que possible pour ne pas affecter les performances.
Or, une mémoire rapide (temps d’accès très court) est une mémoire chère (de type SRAM). On les
utilisera donc en faible quantité. La figure suivante illustre les conséquences :
Processeur
ALU
5ns
50ns
cache
L1
2x16ko
20ns
cache
L2
256ko
RAM
128Mo
L’épaisseur des flèches est censée symboliser la taille du bus d’échange. Nous y reviendrons dans le
chapitre suivant. Le bus de sortie du processeur porte le nom de FSB (Front Side Bus) et est connecté
à la RAM via le Northbridge qui le relie également aux autres bus de la carte mère.
22.6.5 Utilisation
Quand un processeur doit traiter des données selon certaines instructions, il va aller chercher les
données utiles et préparer les instructions nécessaires. Seulement, il va réfléchir deux secondes
(beaucoup moins en réalité, c’est juste une expression) et va aussi chercher d’autres données et se
préparer à effectuer des instructions qui logiquement devrait suivre celles qu’on lui demande. Des
algorithmes efficaces permettent de prévoir dans 90% des cas ce qui va lui être demandé. Il charge
alors tout cela dans ces mémoires caches afin de les avoir « sous la main ». C’est un peu comme si on
vous demande des clous pour les enfoncer, vous prenez le marteau en plus, au cas où… Ces
fonctionnalités ont été améliorées dans le nouveaux processeurs avec des risques : en effet, il existe un
taux non négligeable de prévisions fausses, et donc un travail inutile qui fait perdre du temps et réduit
les performances ! les application bureautiques sont plus sujettes à ces erreurs que les applications
multimédia plus prévisibles.
Bien entendu, plus les caches ont une capacité élevée, plus on peut y mettre de choses et donc
épargner au processeur des aller-retours incessants jusqu’à la RAM. Ainsi, les processeurs courants
utilise aujourd’hui un cache de niveau 2 d’environ 2Mo.
A titre indicatif, le fonctionnement entre RAM et disque dur est identique, mais l’accès au disque dur
demande presque 10000 fois plus de temps., et 100000 fois plus pour une mémoire flash.
26.6.6 Caches et processeurs courants
Le tableau qui suit propose quelques valeurs courantes ; compléter par votre propre CPU.
276
Section 7 – Systèmes Informatiques
Processeur
UAL
Horloge
CPU
L1 data
L1 code
L2
L3
Celeron
32
600MHz
16ko+
16ko
128ko
-
PIII
32
866MHz
16ko+
16ko
256ko
-
Celeron
32
900MHz
16ko+
16ko
128ko
-
Athlon XP2000
32
1250MHz
64ko+
64ko
256ko
-
Athlon64
64
2GHz
64ko+
64ko
512ko
-
Sempron3700+
64x2
2GHzx2
64ko+x2
64kox2
512kox2
-
Sempron4700+
64x2
2.5GHzx2
64ko+x2
64kox2
512kox2
-
Intel Xeon
64x2
2.5GHzx2
32ko+x2
32kox2
2048ko
-
22.6.7 Les Bus
Pour véhiculer les adresses et les données il faut des routes. On les nomme les bus (!). Plus le bus est
large, plus on peut faire passer de bits à chaque fois. La taille d’un bus est de 32, 64 bits… C’est
physiquement une nappe de fils ou de pistes imprimées.
La vitesse sur un bus dépend également de sa fréquence d’horloge (nécessaire pour cadencer la
transmission). Il faut donc calculer au plus juste entre le débit sur un bus (en Mo/s) et ce que peut
traiter l’UAL pour ne pas ralentir cette dernière.
On peut schématiquement dire que plus on se rapproche du cœur du processeur, plus la taille et la
fréquence d’horloge du bus augmente. Pour compenser, plus on s’en éloigne, plus les capacités
mémoires augmentent pour stocker l’information.
Une des innovations du Pentium II fut d’incorporer dans son boîtier un cache de niveau 2 de 512 Ko
minimal, travaillant avec le processeur proprement dit a l’aide d’un bus de la moitié de l’horloge
processeur avec une taille atteignant 300 bits. Sur les processeurs précédents, le cache de niveau 2
externe travaillait sur un bus de 64 bits avec l’horloge de la carte mère. Depuis tous les processeurs
intègrent le cache L2 avec des bus de 128 bit et des fréquences horloges du CPU.
Le bus données et le bus adresses peuvent être distincts ou confondus physiquement. Certains bus
peuvent être dédiés aux caches pour éviter les partage avec les autres périphériques. La taille du bus
d’adresse correspond à la capacité d’adressage des mémoires (32, 36 bits voir 40 pour les plus récents
processeurs 64 bits) et celui de donnée est en principe de 64 bits.
ALU 2GHz
2GHz
2GHz
2GHz
512bits
512bits
512bits
cache
L1D
cache
L1I
cache
L2 RAM
DDR
64 Ko
64 Ko
133MHzx2
64bits
512 Ko
Dans les architectures plus récentes, l’amélioration des technologies a permis de rapprocher les
différentes composantes du chipset du processeur.
277
Section 7 – Systèmes Informatiques
22.7 Fonctionnement
22.7.1 Unité de contrôle
Nous avons vu les éléments essentiels d’un processeur. Voyons maintenant quelques notions quant à
son fonctionnement.
Un programme que désire exécuter un utilisateur, ou plus simplement le système d’exploitation de la
machine, est chargé en mémoire vive à la mise sous tension (le Chipset contient les instructions
nécessaires à cette opération). Chacune des commandes du programme est envoyée, dans l’ordre de
lecture du programme au processeur qui va les traiter. Ces commandes sont interprétées par le
processeur et traduites en une série d’instructions plus simples que le processeur est capable
d’exécuter.
L’unité de contrôle est au cœur du processeur : elle gère l’échange des données, les adresses et les
accès aux différentes mémoires.
Elle inclut en particulier l’UAL qui effectue les calculs. Un micro-ordinateur comme on l’a signalé est
un ensemble de mémoires reliées par des bus de données et d’adresses. L’unité de contrôle de
processeurs permet de charger les données, de les manipuler via l’UAL puis de les replacer en
mémoire.
Bus d 'adresse
Bu s d e d onn é es
4
unité de contrôle
1
3
HORLOGE
Registre données
Séquenceur
compteur ordinal
adresse
5
Registre instruction
2
UAL
Accumulateur
Décodeur
4
6
caches
Le séquenceur organise l’ensemble des actions : incrément du compteur ordinal, chargement d’une
instruction, décodage d’un instruction, lecture des mémoires, accès via le bus de données, lecture,
écriture…
Le compteur ordinal contient l’adresse de la prochaine instruction (ou données) de la pile du
programme en cours d’exécution ; le registre d’instruction contient l’instruction en cours d’exécution
et la conserve tant qu’elle n’est pas achevée. Le décodeur interprète l’instruction a exécuter et
organise avec le séquenceur la succession des opérations a réaliser (charger une valeur dans
l’accumulateur, écrire dans la pile mémoire, ajouter deux valeurs dans l’UAL…). Une fois que
l’instruction est achevée, le séquenceur incrémente le compteur ordinal et recharge dans le registre
d’instruction.
Chacune de ces fonctions nécessitent un certain temps pour faire son travail (typiquement, un coup
d’horloge) et comme elles sont dépendantes les unes des autres, elles doivent attendre. C’est la
278
Section 7 – Systèmes Informatiques
chaîne : celui qui visse les boulons doit attendre que ceux-ci aient été placés au bon endroit par son
collègue en amont.
22.7.2 Le Pipe-Line
Pour éviter les temps morts, Henry Ford inventa le travail à la chaîne dans le sens où pour fabriquer
une voiture , il faut deux jours, mais il sort 10 voitures par jour. C’est la même chose avec
l’architecture Pipe-Line, où le processeur n’attend pas d’avoir exécuté une instruction pour en
commencer une autre.
Horloge
Horloge
Ch arge me nt
Exécut io n
Range me nt
Instruction 1
Instruction 2
Fonctionnement normal
Instruction 1
Instruction 2
Architecture Pipe-Line
On comprend donc deux choses :
Une architecture pipe-line accélère le rendement du processeur en limitant ses temps
d’inactivité
Elle n’est réellement efficace que si chaque instruction se découpe de manière identique
pour optimiser le travail du processeur (même nombre d’opérations de même durée, dans le
même ordre…). Dans le cas contraire, la gestion des traitements peut s’avérer complexe et
en règle générale ce genre de technologie nécessite un code de séquenceur évolué.
Ainsi, plusieurs opérations peuvent être en cours de traitement au même instant dans le processeur. Le
nombre d’opérations pour exécuter une instruction est appelé nombre d’étages du pipe-line (3 sur
l’exemple précédent). Le tableau ci-dessous résume la profondeur des pipe-line pour les processeurs
Intel
386
-
486
5
pentium
5
Pentium pro
10
PII
10
PIII
10
P4
20
22.7.3 L’architecture Super-scalaire
Afin d’accélérer encore les capacités de traitement, Les processeurs actuels intègrent plusieurs UAL
de 32 bits qui travaillent en parallèle. Le 486 (et les précédents) n’avait qu’une seule UAL. Le
pentium en a 2, le pentium Pro en a 3 et le pentium II en a 4, puis 8 en 2010 dans les core-i. Ces
architectures à plusieurs UAL sont dites super-scalaires.
279
Section 7 – Systèmes Informatiques
Exécut ion
Chargement
Rangement
Architecture
Super-Scalaire
Architecture Pipe-Line
Là encore, le gain obtenu n’est réellement valable que si les instructions se prêtent à des traitements
parallèles. Il faut donc un code optimisé pour ce genre de traitement. Si ce n’est pas le cas, le
processeur perdra du temps à traduire le code programme en instructions qui lui sont propres et qui
utilisent l’architecture super-scalaire.
La gestion de l’utilisation des UAL multiples exige des algorithmes appropriés, des cycles
supplémentaires de traitement ce qui augmentera le nombre d’étages des pipe-lines. Les difficultés se
cumuleront.
Bilan : Des nombreuses innovations pour augmenter les vitesses des processeurs, celle de la vitesse
d’horloge est toujours la plus sensible car elle ne requiert aucune adaptation du code des programmes.
En revanche, les tailles de bus, les structures pipe-line ou scalaire sont réellement efficaces quand la
programmation a été pensée pour ces structures.
22.7.4 Threading
Quand un programme simple (constitué d’une série de taches successives) ou mono-thread, le pipeline permet de séquencer chacune des commandes élémentaires pour les exécuter sans temps mort,
pendant que l’architecture super-scalaire tente de paralléliser cette série de commande quand cela est
possible :
Exécution
Instruct ion
Processeur
Architecture
Super-Scalaire
Architecture
Pipe-Line
Coeur simple
Les technologies de multi-threading ou d’hyperthreading (SMT : Simultaneaous Multi Threading)
permet de paralléliser plusieurs taches (Threads) parallèles d’un même processus (ou non) dans les
zones d’inactivités du cœur.
280
Section 7 – Systèmes Informatiques
Instruct ion
Processeur
Thread 2
Exécution
Architecture
Super-Scalaire
Inst ruction
Processeur
T hread 1
Architecture
Pipe-Line
Coeur simple
Ce type de technologie équipe les architectures à partir des P4 et Athlon 64. On peut espérer un gain
de 30% des performances, mais en augmentant sensiblement les tailles de caches L1 et L2. dans
certains cas on constate également des pertes de performances à cause d’une mauvaise gestion des
caches et registres. Les processeurs sont capables, à partir de 2010, de gérer 2 threads par cœur de
processeur.
22.7.5 Branch Prediction et Out of Order
Sous ces deux expressions vaguement ésotériques se cachent deux techniques sensées optimiser les
deux architectures précédentes.
La prédiction de branchement permet de prévoir par des considérations statistiques quelles
instructions seront exécutées, notamment lors d’un test conditionnel avec deux branches possibles
selon le résultat du test. Si la branche chargée dans le pipe-line s’avère fausse, il faut purger le pipeline ce qui entraîne un retard conséquent.
L’out of order (OOO) doit assurer une occupation permanente des UAL en leur fournissant du code à
traiter dans le désordre, c’est à dire sans suivre (quand c’est possible) l’ordre du code initial, mais sans
perturber l’exécution du processus.
22.7.6 Multicore
Pour limiter les problèmes de dissipation de chaleur causée par l’accroissement des fréquences de
processeurs, les constructeurs ont proposé des processeurs à double, quadruple ou octuple cœur. Dans
ce cas, le processeur regroupe en fait 2, 4, 6, 8 processeurs (voir plus) afin d’accroître la performance
à fréquence donnée.
Ce « cœur » de base intègre outre l’UAL, les caches de niveau 1 et 2 dédiés. Le cache de niveau 3,
quand il est implémenté, est partagé par l’ensemble des cœurs.
Cependant, ici aussi, un usage pertinent de cette technologie implique des logiciels prévus pour être
exécutés sur ces architectures. Pour atteindre cet objectif, chacun des différents cœurs sera
vraisemblablement dédié à des charges bien spécifiques (vidéo, graphique, calcul…)
22.7.7 Architecture x86
Depuis les années 1970, l’architecture x86 promue par Intel continue d’évoluer en respectant une
architecture globale cohérente. Pour fonctionner, ce processeur à besoin de registres comme ceux
présentés au §3.5.1. On donne ci dessous la liste de ceux utilisés sur les processeurs récents. La lettre
‘e’ qui les qualifie pour extended signale que ces registres sont des mots de 32 bits.
Registres généraux – stocke des valeurs
eax
Accumulateur
Opérations arithmétiques et valeurs de
retour des appels systèmes
ecx
edx
Compteur
Données
En général pour les boucles
Opérations arithmétiques et valeurs
d’entrées/sorties
281
Section 7 – Systèmes Informatiques
ebx
Base
Pointeur de base (données et variables local)
Registres d'index – pointe des adresses
esp
ebp
esi
edi
Pointeur de pile
eip
eflags
Pointeur d’instruction
Registre de Flags
Pointeur de base
Index de source
Index de destination
Suivi du déroulement du programme
Les bits de drapeaux dans ce registre permettent
d’indiquer retenue, débordement, signe, valeur
nulle…
22.8 Evolution des architectures
22.8.1 Historique et développement : CISC et RISC
Pour achever de brosser ce rapide tableau, il est important de distinguer deux options quant aux jeux
d’instructions propres au processeur.
Historiquement, on programmait directement les processeurs en langage machine (pour gagner en
efficacité). Seulement pour faciliter la vie des programmeurs on a intégré de plus en plus
d’instructions machines dans les mémoires mortes du processeur : au lieu de dix ou quinze lignes de
code machine, une seule suffisait. Cette implémentation de nombreuses instructions machines à
donner naissance à la filière CISC (Complex instructions set computer). Les processeurs CISC
disposent donc de nombreuses instructions en mémoire.
Une autre tendance a vu le développement du principe de la compilation. Un programme écrit en
langage dit évolué est ensuite traduit automatiquement en langage de « bas niveau », ou langage
machine. Ainsi, le langage machine peut être très frustre, le compilateur produisant alors de
nombreuses lignes de code. Ici donc, plus besoin d’optimiser le langage du processeur, au contraire.
Cette filière porte le nom de RISC (Reduced instructions set computer).
L’intérêt du RISC sur le CISC est d’alléger considérablement le bagage du processeur et de libérer des
transistors pour le traitement des données plutôt que pour le stockage d’instructions, ce qui est lourd
pour le CISC. En outre, la présence de peu d’instructions (RISC) permet de les optimiser pour le
pipeline et le superscalaire.
Aussi, les processeurs RISC ont-ils eu des UAL sur 64 bits, les processeurs CISC étant toujours en 32
bits. Les processeurs RISC ont longtemps été les plus puissants sur le marché et équipaient les stations
de travail ou les serveurs.
Depuis le début des années 2000, l’architecture RISC s’est retrouvée confrontée à un palier qui rendait
ses performances difficiles à faire progresser. Les options CISC se sont elles montrées plus aptes à
répondre aux besoins des équipements plus exigeants, les serveurs et stations de travail. Les
processeurs Intel concurents, ITANIUM, et OPTERON pour AMD ont dépassé en terme d’efficacité
leur concurrents RISC 64 bits. (cf partie 4)
22.8.2 Jeux d’instructions
Pour comprendre les évolutions, un peu d’histoire : Le pentium est un CISC. Le MMX (Multi Media
eXtension) était un jeu d’instructions (57 précisément) pour le traitement du multimédia. Le MMX2 a
donné naissance au pentium III : son jeu d’instruction s’appelle Katmaï et intègre 70 commandes
supplémentaires dédiées au traitement 3D ou la reconnaissance vocal [SSE] ; le pentium 4 en a 144 de
plus SSE2, SSE3 et enfin SSE4 pour la vidéo, la voix, le traitement photo, le cryptage, les calculs
282
Section 7 – Systèmes Informatiques
scientifiques … AMD à développé quant à lui des bibliothèque comme 3Dnow ! et 3Dnow+, puis
x86-64 (extension des adresses sur 64 bits).
Dans le cas des pentium, les jeux d’instructions porte le qualificatif de SIMD : Single Instruction
Multiple Data. Elles sont adaptées aux calculs sur les nombres entiers et les nombres à virgule
flottante. Elles peuvent traiter des blocs de données de 128bits sur 4 UAL de 32bits (architecture
superscalaire). Le terme SSE signifie Streaming SIMD Extensions.
Processeur Quad Core – Intel Sandy Bridge (2011)
22.8.3 Architectures x-86 : Familles INTEL/AMD
Les architectures INTEL se divisent en IA-32 (Intel Architecture 32 bits) qui concernent les
processeurs grand public pentium. Cette dernière se partage en micro-architectures, P4 pour les 486,
P5 pour les pentium (« 586 »), P6 pour les Pentium pro, II et III, Netburst pour le P4. Puis on trouve
les processeurs 64bits. Puis les architectures multi-cœurs
1985
1989
1995
1999
2003
2006
2007
2010
Architecture x86
386
486
686
786
886 – Architecture 64 Bits
986 – Multicoeur
1086 – Quadcore
1186
Processeurs (exemple)
Intel 386
Intel 486
Pentium II/III
Athlon – P4
Athlon 64
Core 2
AMD Phenom
Intel Sandy Bridge
Depuis 2001, L’Itanium puis l’Itanium 2 utilise une architecture IA-64 qui exploite l’ EPIC (Explicit
parallel instruction computer) qui est une alternative au x86/CISC. Il s’agit d’une optimisation de la
compilation pour permettre le traitement en parallèle des instructions. Ici, au lieu d’être exécuté ligne
par ligne, le logiciel est compilé de façon à décharger le processeur de la détection de parallélisme.
Ainsi le processeur aura à exécuter une suite de commandes prédigérées par le compilateur qui en
quelque sorte organisera lui-même l’exécution en ordonnant les instructions à traiter afin d’optimiser
les structures pipeline et super-scalaire du processeur… C’est une technologie Intel et HP
22.8.4 Autres familles
Le marché du processeur a considérablement évolué depuis les belles heures des années 1990.
Aujourd’hui, INTEL et AMD restent les deux véritables acteurs du marché du CPU. On signalera
également le rôle des fabricants de GPU (Graphics Processing Unit)
Fabricant
SUN
IBM
DIGITAL
HP
VIA
NVIDIA
Processeur
Descriptif
SPARC
64 bits - RISC
G5 – 64 Bits
64 Bits – RISC
RISC
X86
X86 - GPU
PowerPC
ALPHA
PA 8200
Via Nano
M6117C
283
Section 7 – Systèmes Informatiques
22.8.5 Super-calculateurs
De nouveaux besoins ont émergés, et le besoin en super-calculateurs est de plus en plus présent dans
l’industrie: Simulation mécanique, modélisation financières, calcul scientifique, analyse massive de
données, imagerie médicale, météorologie, jeux vidéos en réseaux…
Sur ce marché du calcul, qui a fait les belles années de Cray dans les années 1980, on retrouve Intel
(Xeon), AMD (Opteron) ou Nvidia (Tesla) qui proposent des cartes multiprocesseurs. On trouve ainsi
des dizaines de cartes intégrant chacune plusieurs centaines de processeurs.
Intel équipe aujourd’hui près de 80% des systèmes informatiques à super-calculateurs, Ils détenaient
en 2010 le record de vitesse (Grâce en particulier aux chinois…) avec 2.5 Péta Flops. Ces systèmes
sont gérés par des systèmes d’exploitation Linux dans près de 90% des cas.
284
Section 7 – Systèmes Informatiques
23. OS : Operating System
23.1 Introduction aux OS
23.1.1 Historique
Pour commencer en français OS se traduit par SE (Système d’exploitation). Il s’agit d’un programme
dont le rôle est de permettre de fournir un cadre d’exécution à tous les programmes souhaitant accéder
aux matériels.
Rappelons les grandes dates qui ont marqué l’évolution des systèmes d’exploitation.
IBM
Microsoft
Linux
Apple
1970
1971:UNIX
1975
1980
Fondation:1975
1977: achète
à Digital Research
DOS
Personal
Computer
Fondation:1976
Berkeley
AT&T
1981:system III
1981
1983: interface
Graphique
1984:MacIntosh
PC-DOS
1985
Bell
1978: - BSD
syste m V
AIX
(system V)
Unix
1990
os/2 2.0
1995
Windows 95
Windows 98
2000
1991: Linus Torvald
Freax ->Linux
1992:
Windows 3.1
Windows Me
1996:
NT 4
2000
2001:XP
2003:2003
2005
OS/400
2010
199 3:F ree BSD
Mac_OS
1997:kernel 2.0
1995: OpenBSD
Opensource
2001:kernel 2.4
2003:kernel 2.6
Mac_OS X
SP3 2006:VISTA
Systèmes
Propriétaires
2009:Se7en
Processeurs X-86
285
PowerPC
Sparc - MIPS R1000
Section 7 – Systèmes Informatiques
23.1.2 Rôles
Les OS ont 2 rôles principaux :
1- Assurer l’interface utilisateur /matériel. C’est à dire décharger l’utilisateur des tâches de base.
2- Assurer le fonctionnement des différents périphériques entre eux.
Ut ilisat eur
Utilisateur
Programmat ion
Commande
A PPLICA T IONS
Résultats
Information
APPLICAT IO NS
Système d'Exploitation (OS)
O perating System
Matériel
Mainframes - Serveurs -PC-Phone
Périphériques
Processeur
Réseau
23.1.3 Contenu
Le contenu d’un OS est composé de 3 parties :
Le noyau qui contient les routines périphériques et permet la gestion des processus.
L’interface qui peut se présenter sous forme graphique (Windows, serveur X) ou en ligne de
commande grâce à un shell (interface noyau-utilisateur).
Les logiciels qui sont des processus lancés par l’utilisateur.
23.1.4 Microsoft
Chez Microsoft on trouve plusieurs systèmes d’exploitation qui coexistent et destinés à plusieurs
applications. Leur origine historique remonte au DOS qui reste toujours présent pour des raisons de
compatibilité.
Il y a les Windows 3X, 9X et Me qui sont mono utilisateur, mono poste et mono tâche (un
seul processus à la fois). Issue de DOS, ils sont destinés à la gestion d’une machine physique.
Il y a les Windows NT, 2000 et XP pu, Vista, Se7en, qui eux sont destinés à des applications
réseaux et aux communications inter-machines. Ils sont multi utilisateurs, multi postes et
multi tâches.
On trouve enfin un ensemble de systèmes destinés aux serveurs : 2003 et 2008 server.
Permettant de gérer des machines plus puissantes autorisant et contrôlant de nombreux accès
réseaux
Quand on parle de « multi utilisateurs », cela signifie que l’on va avoir un login à taper à la connexion.
La notion de multi postes signifie une utilisation client-serveur. Et enfin le multi tâche comme son
nom l’indique veut dire que plusieurs tâche se déroule en même temps. Le système d’exploitation est
multi processus : il est une série de processus qui permettent le bon déroulement des autres
programmes.
23.1.5 Unix
Historiquement les micro-ordinateurs ont été étroitement associés à Microsoft. Cependant les gros
systèmes informatiques (mini-ordinateurs et ordinateurs) ont utilisé des OS de la lignée d’Unix, né au
début des années 1970 et dérivant du système originel MULTICS.
286
Section 7 – Systèmes Informatiques
Unix est comme on peut dire « Multi-tout ». De plus il existe plusieurs versions d’Unix:
Solaris et Open Solaris[Sun].
BSD [Berkley] plus destiné à la gestion.
SVR4 [System V Release 4] destiné à des applications plus scientifiques.
HPUX [stations HP]
Il est extrêmement répandu dans les gros systèmes professionnels, et est devenu de fait un standard (et
non une norme). Passer d’un système à un autre demande quelques adaptations mais reste assez
naturel.
23.1.6 Linux
Aujourd'hui, au moins un concurrent de Windows pour les processeurs x86 est devenu célèbre :
Linux. Historiquement Linux a été développe par Linus Torwald, étudiant en informatique, qui
continue de superviser l’évolution du noyau.
Linux est un projet GNU. GNU signifie GNU is Not Unix. Le projet GNU été réalisé par
R.M.Shallenonn. Il est associé a la licence GPL : Gnu Private Licence. La licence GPL interdit (entre
autre) a quiconque d’exploiter un code source libre GPL a des fins économiques.
Linux est devenu a son tour le système de base de MAC-OS (Apple) ainsi que l’OS de base de
nombreux équipements informatiques : portables, smartphones, routeurs, serveurs, box, tablettes…
Le grand nombre de versions d’Unix et parfois de Linux, libres, propriétaires, commerciales…
augmente les difficultés pour trouver des failles (donc limite les virus) mais entrave la compatibilité
des logiciels.
23.1.7 Ce qui différencie Windows et Linux. Avantages et Inconvénients
En fait Unix cohabitait depuis longtemps avec Windows. La concurrence de Linux sur les machines
équipés de même matériel (processeurs x86) se transforme en une cohabitation plus ou moins sereine.
Windows
Matériel équipé grand public et les micro-ordinateurs
bureautiques
OS propriétaire. Payant (et cher)
Distribution
Maintenance
Versions
Evolutions
Fiabilité
Public
Sécurité
Linux
(Unix) les serveurs et les stations de travail.
Equipements légers :
(en grande partie) libre et gratuit. Open source.
le code source n'est connu que de la firme qui les développeurs peuvent le lire, le modifier, en
le diffuse (MicroSoft en l'occurrence)
faciliter l'utilisation (joindre une documentation
par exemple) et le diffuser avec les dites
modifications
Peu nombreuses : XP, Vista, Se7en. différentes distributions issues de Linux (Ubuntu,
Compatibilité assurée pour les applicatifs
Mandriva, Debian, Red Hat, openSuse…) pas
toujours compatibles
Chez Microsoft, on pense avant tout à fournir la communauté de programmeurs qui ont créé
un nouveau monstre pour la date fatidique depuis près de 15 années le système Linux : les
décidée par le patron
Hackers. Linux est un système de rêve, où
chaque programmeur peaufine son petit bout de
code pour le rendre rapide, facile à utiliser...
Si jusqu’à XP, les systèmes Windows restaient Très stable et régulièrement patché. Système qui
instables et inefficaces, 2000 puis XP (famille inspire aujourd’hui une confiance élevée.
NT) ont prouvé leur qualité. Les mises à jour de
sécurité sont nombreuses et pénalisent à terme
le système
Windows s’impose dans le grand public et la Linux reste minoritaire, destiné aux informaticiens
bureautique au sens large.
de métiers et aux bidouilleurs natifs. Choix de
certaines administrations et professionnels de
l’informatique
Nombreuses failles.
producteurs de Virus
Cible
favorite
287
des Peu de virus, outils de sécurité très efficaces.
Section 7 – Systèmes Informatiques
Indépendance
faible. Formats captifs de fichiers
Elevées. Formats de fichiers texte ou xml
privilégiés
23.2 Le noyau
23.2.1 Rôle et tâches
Le noyau est le premier programme chargé en mémoire vive au démarrage de l'ordinateur. Il faut se le
représenter comme les fondations du système Linux, et les programmes comme une maison bâtie pardessus. Les ordinateurs compatibles PC sont d'une infinie diversité par leur puissance, le type et le
nombre de leurs périphériques, etc. ; mais le noyau est une plate-forme de béton standardisée qui fait
se ressembler tous les PC du monde.
Techniquement parlant, le noyau de tout système d'exploitation qui se respecte est en charge des
fonctionnalités suivantes :
Chargement des programmes :
C 'est la fonctionnalité la plus indispensable. Pour diverses raisons, l'image sur disque d'un programme
n'est pas identique à sa copie en mémoire ; le noyau a pour fonction d'initialiser tout ce qui est
nécessaire pour que les programmes puissent tourner.
Multitâche préemptif :
même sur une machine monoprocesseur, qui ne peut exécuter qu'une seule instruction assembleur à la
fois, Linux doit pouvoir faire tourner plusieurs programmes à la fois. Il y parvient en attribuant à
chaque programme une petite fraction de seconde pour s'exécuter, à tour de rôle pour chacun d'eux ; et
ce de façon préemptive, c'est-à-dire en interrompant le programme sans délai quelle que soit
l'opération qu'il est en train d'effectuer.
Gestion et protection de la mémoire :
Comme plusieurs programmes et le noyau doivent coexister en mémoire vive, les différents
programmes ne doivent pas pouvoir écrire sur les zones mémoire des autres ou du noyau. Le
microprocesseur doit donc être équipé de fonctionnalités qui lui permettent de «faire attention à ce
qu'il fait», car il suffit d'une instruction assembleur mal placée pour écrire n'importe où en mémoire...
Tout manquement aux règles de gestion de la mémoire fixées par le noyau doit être sanctionnée par la
terminaison immédiate du programme fautif.
En guise d'extension (supportée par Linux, bien entendu), le noyau du système d'exploitation peut
offrir les fonctions de mémoire virtuelle ou swap (certaines zones de la mémoire vive attribuée aux
programmes sont copiées sur le disque dur pour faire de la place), ou inversement d'antémémoire ou
cache (les zones inutilisées de la mémoire sont remplies avec des copies des données présentes sur
disque, pour limiter le nombre d'accès en lecture - écriture au disque et donc améliorer les
performances). Bien évidemment, ces deux fonctions doivent s'accomplir de façon totalement
transparente pour les programmes : ils ne doivent pas avoir à réclamer à nouveau leurs zones de
mémoire si elles ont disparu dans la mémoire virtuelle, et si ils ont besoin de plus de mémoire
l'antémémoire doit être immédiatement réduite pour leur faire de la place.
Abstraction des périphériques :
Un fichier est un fichier, et une souris est une souris ! Le noyau doit proposer aux programmes une
interface standardisée d'accès aux périphériques qui soit identique selon le type du système de fichiers,
de la souris, de la carte réseau, etc. De cette façon, le code qui gère la communication avec un
nouveau matériel se retrouve factorisé à un seul et même endroit : dans un pilote de périphérique, un
composant du noyau.
Droits d'accès :
288
Section 7 – Systèmes Informatiques
le noyau est responsable du fait que les accès aux ressources de la machine (fichiers, communications
réseau, périphériques etc..) se fassent dans l'ordre et la discipline. C'est donc lui seul qui a le droit de
parler aux périphériques : il n'y a pas d'autre moyen pour un programme Linux pour lire ou écrire dans
un fichier que d'en faire la demande au noyau, au moyen d'une procédure spéciale qu'on nomme un
appel système. Et si le noyau considère, au vu des politiques de sécurité pour lesquelles il a été
programmé, que le programmes appelant n'a pas les droits convenables pour l'opération qu'il
demande, il peut rejeter l'appel système et renvoyer une erreur. Le concept de droits d'accès peut
englober celui de multi - utilisateurs, comme c'est le cas sous Linux : plusieurs utilisateurs différents
peuvent cohabiter sur le même système informatique, chacun d'eux étant protégé des accès
intempestifs à ses ressources (notamment ses fichiers) de la part des autres utilisateurs.
Alléger la gestion de la machine :
Tâches principales gérés par le noyau :
Démarrage du système
Gestion de processus
Communication inter processus
Accès aux périphériques
Gérer les systèmes de fichiers
pl ic
Ap
s
a ti on
us
c e ss
o
r
P
ter
In
face Ut ilisa te
ur
ur
Or
nnanc e
do
g e sti o nna i
G
es
t
io n
P
ér i
Cart es
Réseaux
ph é
ri
qu es
r e d e m ém oi r e
Noyau
d es p ériph é
ue
ir q
s
IHM
Disques
Processeur
RAM
23.2.2 Noyau monolithique et micro noyau
On peut résumer les structures des noyaux de SE en deux grandes catégories :
Les noyaux monolithiques, constitués d’un code source unique s’exécutant comme un seul
processus, cas du noyau Linux (kernel). Ils sont rapides mais lourds à faire évoluer.
Les micro-noyaux, c’est à dire un noyau élémentaire, chargé de la communication de micronoyaux entre eux. Ils sont peu rapides (complexité de l’interface entre mico-noyaux) mais
plus aisés à faire évoluer avec une meilleure portabilité vu l’indépendance des codes et leur
légèreté . Le projet GNU/HURD en est un exemple pour les architecture IA32 x86.
Les options théoriques de choisir l’une ou l’autre sont en débat, et nous n’y entrerons pas ici.
Signalons cependant que l’approche modulaire du noyau Linux permet d’associer dynamiquement au
noyau monolithique des modules qui sont comme des options de ce dernier. C’est une forme de
compromis entre monolithique pure et micro-noyau pur qui assure à Linux une forte portabilité.
En ce qui concerne windows XP, les secrets du modèle propriétaire permettent de conclure qu’il s’agit
d’une approche micro-noyau pure, tendant vers le monolithique modulaire avec une forte couleur
monolithique (oui c’est ça).
289
Section 7 – Systèmes Informatiques
23.2.3 Noyau Temps Réel
Pour les systèmes embarqués (véhicules, robotiques,…), la gestion d’un ensemble complexe impose
également une gestion en temps réel en version mou ou dur, alors que les systèmes informatiques
généralistes sont dits temps partagés. Le temps réel est une contrainte supplémentaire que ni le noyau
Linux standard, et encore moins Windows, ne satisfont.
Un système temps réel doit garantir des durées d’exécutions et des temps de réaction à certains
messages (alarmes, commande capteurs...) : dans le cas du temps réel mou, on garantit un retard
moyen de plusieurs centaines de ms, dont le non respect dans un certain pourcentage des cas est sans
conséquence grave. le temps réel dur impose un délai de réaction de quelques micro secondes sans
dépassement toléré dans les cas critiques (cas de la sécurité automobile)
De nombreuses sociétés fournissent des solutions commerciales. Le projet RTEMS ( Real Times
Executive for Multiprocessor Systems) est un exemple Open source. D’autres industriels ont adapté le
noyau Linux aux contraintes du temps réel.
23.3 Systèmes de fichiers
23.3.1 Définition
L'ensemble des données sur disque peut donc être vu comme un énorme catalogue de fichiers,
référencés de façon non ambiguë. C'est donc de fait une structure de données complexe qui doit
pouvoir gérer à la fois les notions haut niveau : nom d'un fichier, ses attributs, son type (si cela a un
sens pour le système), sa taille, l'endroit physique sur le support, les opérations en cours sur le fichier
(gestion d'accès concurrents, modifications en cours, mais non transcrits sur le support, etc. ), ... Mais
le système doit aussi gérer les aspects bas niveau : parties du support occupés et libres, sections
endommagés, tampons de transfert, fragmentation, etc. .
Il y a, actuellement, peu de consensus sur ce point, ne serait-ce que à cause des différents supports
utilisés et les besoins de différents types d'utilisateur. On peut avoir besoin de favoriser des accès
rapides en lecture/écriture, ou alors préférer la fiabilité et la possibilité de retracer une opération si elle
échoue (rollback), avec option de trace de toutes les opérations effectuées ; on peut favoriser des
fichiers de grande taille, de petite taille, minimiser l'espace inutilisé sur disque ou optimiser les temps
de recherche d'un nom. Tous ces critères sont antagonistes, et il s'agit d'un problème d'optimisation
complexe que de satisfaire chacun d'entre eux au mieux.
23.3.2 Structure de disque
Un disque dur classique est un ensemble de δ disques magnétiques parallèles (ou plateaux) entre
lesquels peuvent se déplacer des têtes de lecture, comme le montre la figure suivante. Les disques
effectuent une rotation autour de leur axe vertical à une vitesse de l'ordre de 10000 tours par minutes
(round per minutes -rpm), tandis que les têtes peuvent se déplacer en translation horizontale. Les
contraintes mécaniques imposées par les vitesses de rotations rapides (force de coriolis) imposent de
conserver ces disques en position horizontale, au pire verticale, mais jamais de travers : cela
provoquerait des vibrations et une usure rapide de l’axe de rotation des disques.
Chaque disque contient un nombre ρ de pistes, qui sont des cercles concentriques. Une piste est donc
tout ce qu'une tête de lecture peut lire lorsqu'elle reste immobile. On appelle cylindre l'ensemble de
pistes de même diamètre sur tous les disques (un disque dur a donc au total ρ×δ pistes et ρ cylindres).
290
Section 7 – Systèmes Informatiques
Têtes de
lecture
Piste
Secteur
Plateau
Cylindre
Une piste est trop importante pour permettre de stocker convenablement des données à elle seule.
Beaucoup de pistes de disques ont une capacité de stockage de 50 000 octets, voire davantage. C'est
pour cette raison quelles sont divisées en plusieurs sous unités de stockage numérotées appelées
secteurs. Ces secteurs représentent des portions de piste.
Les différents types de disques durs et de disquettes donnent lieu à des découpages en secteurs
différents selon la densité des pistes. Les disques les plus récents utilisent des répartitions variables
pour optimiser les densités d’écriture des données appelées zone density recording ou zone bit
recording. Notons que les vitesses de lectures et d’écritures sont plus élevées à la périphérie des
disques, et environ deux fois plus faibles au centre, ce qui explique les performances décroissantes
quand le disque se remplit, depuis la périphérie vers le centre.
Partition classique
Zone Density Recording
(3 Zones ici)
Lorsqu'il est formaté, le disque dur contient un ensemble σ de secteurs. Les secteurs forment une
subdivision régulière des pistes en f parts, de sorte qu'un disque dur formaté contient σ=f×ρ×δ
secteurs. Le secteur est la plus petite unité qui puisse être lue par le contrôleur de disque (et, par
conséquent, par le système).
Chaque secteur contient classiquement 512 octets de données. Dans ce cas on est dans le format CHS
(Cylinder Head Sector) décrit ci-dessus.
De nouveaux standards sur les disques de fortes capacités proposent depuis 2009 des secteurs de 4096
octets. Cette évolution n’est pas sans conséquence sur l’évolution des OS qui ont à les supporter. D’un
point de vue matériel, le modèle ancien (BIOS/CHS/MBR) n’autorise des partitions qu’inférieures à
2,2 To, imposant un nouveau modèle de description des partitions (UEFI/GPT : GUID partition
Table). Nous renvoyons à la dernière partie consacrée au boot.
Chaque secteur est défini par :
Une zone de préfixe, qui détermine :
le début du secteur ainsi que son numéro
Une zone de suffixe, qui contient
une somme de contrôle appelée CRC ( Cyclical Redundancy Check ) qui a pour rôle
de garantir l'intégrité des données stockées. Le calcul se fait à l'aide du polynôme
suivant :
CRC = x16 + x15 + x2 + 1
291
Section 7 – Systèmes Informatiques
Il existe une autre variante de ce polynôme fournit par le CCITT :
CRC = x16 + x12 + x5 + 1
23.3.3 Clusters
En revanche le système raisonne en termes de blocs ou clusters (pour diverses raisons, l'une étant de
se rendre indépendant du matériel utilisé, car tous les disques n'ont pas nécessairement la même taille
de données par secteur) qui est de taille équivalente à un multiple entier de la taille d'un secteur.
La taille d’un cluster varie donc selon le système d’exploitation, le système de fichier et sa capacité
d’adressage, voire la taille de la partition ou du disque.
Cette notion de cluster est à associée à celle de la taille des plus petits fichiers possibles. Un fichier
contenant 5 caractères comptera pour 5 octets de taille, mais pour 4096 octets d’espace disque réservé,
soit un cluster complet, qui est l’unité indivisible pour l’OS.
Système
FAT32
NTFS
Ext 2
Ext 3
Partition
<2Go
<20To
<2Go
<20To
Cluster
4ko
4ko
Secteurs/cluster
8
8
1kio
2
Toute la difficulté des parties bas-niveau d'un système de fichiers provient maintenant de faire
correspondre des secteurs à des blocs et des blocs à des fichiers, en faisant en sorte que les temps
d'accès soient optimaux, que la cohérence entre la représentation logique du système corresponde à la
réalité physique sur le disque, même en cas de panne brusque du système, etc… .
23.3.4 Formatage et partitions
En principe, un disque dur vierge ne contient « rien ». Cette notion est très flou avec les disques
modernes. Pour des raisons de fiabilité, les constructeurs insèrent des options de gestion et de
correction d’erreur non géré par l’OS lui-même. Aussi, l’analyse physique des plateaux n’est pas en
principe à la portée du système.
On peut ainsi définir trois étapes de formatage :
Formatage « bas-niveau » ou low-level qui « efface » les données du disque. En réalité, un
effacement pur est impossible et rendre un disque dur « vierge » est une utopie. Il s’agit en
pratique d’écrire des zéro sur toute la surface du disque (zero fill). A noter qu’il faut un
écrasement multiple (6 à 7 fois consécutives) des données pour les rendre réellement
illisibles. On peut ainsi écrire des zéros sur tout le disque à 7 reprises. C’est long.
Partitionnement qui répartit les cylindres en autant de partitions désirées. Le premier secteur
de chaque cylindre aura un MBR valide si la partition est « bootable ». Chaque partition se
verra attribuer une lettre de lecteur par Windows (C :, E :, G :…) et un numéro de partition
par Linux (hda1, hda2 pour le Hard Disk A, c’est à dire le premier détecté)
Formatage « haut-niveau » ou high-level. Qui en général se contente d’effacer le point
d’entrée du disque ou de la table qui stocke les données relatives aux données, mais laisse les
données intactes physiquement. C’est rapide mais ça ne supprime pas les informations.
23.3.5 Stockage des fichiers
D’une façon très générale, on peut ainsi définir un fichier : Un fichier est une suite d’octets lue de
façon séquentielle.
292
Section 7 – Systèmes Informatiques
Pour un O.S. de type Unix tout est fichier. C'est-à-dire, l’une des bases du fonctionnement d'un
système Unix est que tout dans l'ordinateur est associé à un fichier et que tous ces fichiers sont
localisés dans une arborescence unique, dont l'élément racine (root) est sobrement noté /.
Il existe différente technique théorique de stocker les fichiers sur un disque physique :
Allocation contiguë
Fichiers
Fichiers détruits : fragmentation
Ce système consiste à mettre les fichiers les uns à la suite des autres.
Il est donc difficile de modifier la taille du fichier.
Chaque fichier détruit provoque de la fragmentation.
Allocation en listes chaînées
Fichiers
Ce système permet à chaque bloc de contenir l’adresse du bloc suivant.
Il permet donc d’éviter la fragmentation mais impose un accès lent aux fichiers.
Allocation en listes chaînées indexées
Table
Fichiers
Ce système est une amélioration du précédent, il permet un regroupement des «adresses de
bloc» dans une table (index) en mémoire. L’inconvénient vient de l’obligation de charger la
table complète en mémoire.
Les paragraphes suivants abordent les systèmes courants. Nous proposons dans le tableau une courte
synthèse :
Système de fichier
Taille Max des partitions
FAT 16
FAT32
NTFS
Ext3 (Linux)
2 (4) Go
<32 Go (conseillé) - <2To
<256 To
<32 To
Taille Max d’un
fichier
<4Go
4 Go
16 To
<32 To
Taille Max d’un
nom de fichier
8(nom)+3(ext) o
255 o
255 o
255 o
23.3.6 Allocation de type FAT
La FAT (File Allocation Table) est un système de fichiers utilisé par DOS, OS/2, Windows 3.x et 95
et NT. Plus récemment, ce système est couramment utilisé sur les supports amovibles (types clés
USB). La table d'allocation des fichiers est une structure contenant la liste des clusters utilisés et non
utilisés. Elle contient également l'adresse des fichiers utilisés, c'est à dire le numéro du premier cluster
qu'ils utilisent. Cette table est dupliquée afin de protéger les données et de pouvoir les retrouver en cas
d’erreur ou d’effacement accidentel.
La structure d'un volume de disque standard est constituée :
293
Section 7 – Systèmes Informatiques
• D'un secteur de boot aussi appelé Master Boot Record (MBR) contenant la structure de
l'unité physique. C'est à dire le nombre de partition, leur taille, leur type (principale ou
étendue) et le nombre d'unités logiques avec leur taille.
• La première table d'allocation de fichier.
• Une ou plusieurs copies de la table d'allocation de fichier.
• Le répertoire racine avec le nom de volume.
• La zone de données pour les fichiers et les sous répertoires.
Disque
MBR
FAT
Volume
DATA
Lorsque l'on crée un fichier ou un sous répertoire, les informations relatives à cette création sont
stockées dans le répertoire racine sous la forme d'une structure contenant le nom et la taille du fichier,
la date et l'heure de sa dernière modification, le numéro de cluster de départ et l'attribut ( Archive,
Caché, Système ...)
Les segments de la FAT acceptent des noms de fichiers pouvant comprendre jusqu'à 11 caractères (8
caractères pour le nom plus 3 caractères pour l'extension). Cette FAT dit FAT 16 bits ne permet
d'adresser qu'un volume de 2 Go au maximum ( 216 * 32768 ). Sur les disquettes on trouve (encore) du
FAT12.
Microsoft, avec la dernière version de Windows 95 4.0.0.1111 a développé une FAT 32 bits qui
permet théoriquement de gérer au maximum des partitions de 128 To et d'autoriser des noms de
fichiers de 256 caractères.
23.3.7 NTFS (New Technology File System)
Le NTFS est un système de fichiers comparable à celui d'UNIX. Il n'est accessible que sous Windows
NT, XP et ultérieures. Son caractère propriétaire le rend moins documenté et difficilement compatible
avec d’autres OS. Néanmoins, le plupart des Linux de noyaux récents (noyaux 2.6) supportent NTFS
en lecture et écriture.
La longueur des noms de fichiers peut atteindre 256 caractères et la taille maximale d'un volume est
de 16 Eo (Exa-Octect = 1 073 741 824 Go ). NTFS utilise une grande quantité d'espace pour stocker
les structures du système. Il est donc conseillé de ne l'utiliser qu'avec des volumes supérieurs à 400
Mo.
Disque
NTFS Boot sector
MBR
Copies
MFT
DATA
MFT
MFT
Le MBR annonce sa présence (.R.NTFS). Puis NTFS dispose d'une table des fichiers la MFT (Master
File Table). L’OS stocke plusieurs copies des parties critiques de cette table, ce qui permet de
récupérer facilement des données. Il utilise des clusters pour stocker les informations des fichiers ou
294
Section 7 – Systèmes Informatiques
répertoires (horodatage, nom, descripteur de sécurité). Mais contrairement à la FAT la taille des
clusters n'est pas liée à celle du volume et peut être inférieure à la taille d'un secteur (512 Ko) ou
beaucoup plus grande (64ko). Dans le cas de fichiers de petite taille (inférieure à celle du cluster) les
données sont même stockées directement dans la MFT. Dans le cas des fichiers plus gros, donc ne
pouvant résider dans la MFT, les attributs de la MFT décrivent les zones où ils sont écrits : numéro du
premier cluster et nombre de clusters.
On a donc une faible fragmentation des fichiers. Par contre lorsque les clusters ne sont pas contigus on
a une légère réduction des performances par rapport à la FAT. En contrepartie de cette légère baisse
de performance, NTFS peut gérer la réparation automatique des secteurs défectueux. En effet dès
qu'ils sont détectés et signalés, NTFS les supprime de la liste des secteurs utilisables par le système.
23.3.8 I-nodes (nœud d’index)
On trouve cette technique de stockage dans les Système de fichiers de type UNIX et Linux (Ext 2,
Ext2 fs, Ext3 , Reiser…). Les inodes (index-node) sont des blocs de taille fixe (512 octets). L'inode est
le centre de tous les échanges entre le disque et la mémoire. L'inode est la structure qui contient toutes
les informations sur un fichier donné à l'exception de sa référence dans l'arborescence.
Les informations stockées dans une inode sont :
L’utilisateur propriétaire (UID)
Le groupe propriétaire (GID)
Le type de fichier (Fichier, lien, répertoire)
Les droits d'accès (541)
La date de dernier accès
La date de dernière modification
La date de dernière modification de l'inode
La taille du fichier (en octets)
Les adresses des blocs-disques d’accès direct: 10 espaces d’indexation directe, c’est à dire
pointant vers les blocs contenant le fichier (1024 octets),
ou si c’est insuffisant, 3 adresses d’indexation indirecte, c’est à dire pointant vers des blocs
contenant d’autres espaces d’adresses.
INODE
Informations
512 octets
10 adresses
accès direct
3 adresses
accès indirect
En ce qui concerne les 3 adresses d’accès indirect, La première indirection est simple, elle pointe vers
des adresses directes. La seconde est de niveau double : elle pointe vers des adresses qui pointe ellesmêmes vers les adresses directes. La troisième est de niveau triple d’indirection. Avec des blocs de
1024 octets, cette méthode permet d’indexer des fichiers de 17Gio (cas de Ext3).
Ces inodes sont stockés dans une table du système de fichiers, ce qui permet d'accéder très rapidement
à toutes ces informations et de retrouver également très simplement le ou les blocs contenant les
données du fichier. Le problème est ici que cette table a un nombre d'entrées limité, ce qui implique
un nombre limité de fichiers dans le système de fichiers. Plus cette table est grande, plus le nombre de
fichiers que l'on pourra créer est grand, et inversement. Il faut donc trouver un compromis entre la
taille de cette table et le nombre de fichiers que l'on est susceptible de créer. Il va de soi qu'en général,
les grandes partitions contiennent plus de fichiers, mais que la table d'inodes peut également avoir une
295
Section 7 – Systèmes Informatiques
taille supérieure sans que cela ne soit dérangeant. Par conséquent, il est relativement courant de définir
le taux d'inodes par bloc, ou autrement dit la proportion d'inodes dans la partition par rapport à sa
taille.
Toutes ces informations (blocs libres et inodes) sont sauvegardées à plusieurs endroits dans la
partition, ce qui permet de disposer en permanence de copies de la structure du système de fichiers.
De cette manière, il est relativement simple de réparer un système de fichiers endommagé. Chacune
de ces copies s'appelle un groupe de blocs. Chaque groupe de blocs contient un bloc particulier, le
« super bloc », qui contient la description de son groupe.
23.3.9 Autres systèmes de fichiers :
Citons quelques exemples d’autres « FS » courant :
ISO 9660, Joliet,Romeo : système de fichiers des CD ROM.
NFS : Le système de fichiers réseau, ou NFS (Network File System), permet aux hôtes de
monter des partitions sur un système distant et de les utiliser exactement comme des systèmes
de fichier locaux. Ceci permet à l'administrateur système de stocker des ressources dans un
emplacement central du réseau, fournissant ainsi aux utilisateurs légitimes un accès
permanent.
Deux versions de NFS sont actuellement en vigueur. La version 2 de NFS (NFSv2) d'une
part, utilisée depuis plusieurs années, est largement supportée par divers systèmes
d'exploitation. La version 3 de NFS (NFSv3) d'autre part, apporte d'autres fonctions, y
compris un traitement de fichiers de taille variable et un meilleur rapportage d'erreurs.
JFS : ce système est l’œuvre d'IBM, qui s'est récemment chargé de le porter sous Linux. Ce
système, bien que nouveau sous Linux, a déjà été éprouvé sur les machines Unix du
constructeur.
/proc : système de fichier virtuel sous Linux dont les fichiers permettent d'obtenir des information
sur le système. En particulier /proc/partitions
23.3.10 Hiérarchie
Windows :
Depuis les origines (DOS), Windows est resté lié à la notion de lecteur physique chacun disposant de
sa propre arborescence de répertoire contenant des fichiers. Nous laisserons chacun s’interroger sur
l’ésotérique A: , l’universel C: et le mystérieux B: …
UNIX-Linux :
/
/bin
/boot
/dev
/etc
/home
/lib
/mnt
/opt
/root
/sbin
/tmp
/usr
/var
root
Binaires (exe) des commandes essentielles
Fichiers statiques du chargeur de démarrage
[device] – Fichiers et drivers de périphériques
[Et Caetrea] Configuration du système et fichiers divers
Répertoires contenant les données personnelles utilisateurs
[library] – Bibliothèque et modules du noyau
[mount] – Point de montage des partitions
Paquetages d’applications logicielles supplémentaires
Répertoire personnel de root
Binaires systèmes essentiels
Fichiers temporaires
[user] – Hiérarchie et fichiers utilisateurs
Données variables
Les systèmes Unix respectent la norme POSIX conforme à la FHS : File Hierarchy Standard.
L’ensemble des composants de la machine (fichiers, répertoires, disques, périphériques…) sont
296
Section 7 – Systèmes Informatiques
accessibles depuis la racine (root) aisément identifiable dans la table des inodes. Chacun des
répertoires /rep peut être installé sur une partition propre du disque dur.
23.3.11 Gestion des droits d’accès
Dans un système Unix (dont Linux) il est possible de gérer librement et efficacement les permissions
associées à chaque inode, dossier, fichier, lien… Ces permissions ou droits sont au nombre de 3 :
Read – droit en lecture de l’inode
Writable - Droit en écriture (suppression)
Executable – Droit en exécution sur un programme ou accès à un répertoire
r
w
x
Ces droits peuvent s’appliquer à trois types d’utilisateurs :
user
group
other
Utilisateur autorisé (whomai)
Membres du groupe auquel appartient l’utilisateur
Les autres (LOST)
L’inode peut être de nature diverse dont les plus courantes sont définies ci-dessous :
d
l
c
b
Fichier (groupe d’octet éditable)
Directory – Répertoire accessible via cd
Link – Lien symbolique
Character – Périphérique de type caractère (carte son, port série…)
Bloc – périphérique de type bloc (disque dur, cd…)
Ainsi tout affichage de la liste du contenu d’un répertoire (commande ls -l) donnera l’ensemble des
informations sous forme d’une série de lignes similaires au format suivant :
Fr-x-w---x
1 user
F: Special
- / d/ l / c / b /
droits
Droit étendus SUID – s=S+x
SGID – s=S+x
Sticky bit – t=T+x
Aucun
taille date fichier.nom
User
rwx
421
101
m=4+1=5
rws=4000+700
rwx=700
rwx=700
Group
rwx
421
010
n=2
-w-=+20
-wS=2000+20
-w-=+20
Other
rwx
4.2.1
001
p=1
--x=+1
--x=+1
--t=+1000+1
L’Attribution des droits peut s’effectuer via la commande :
chmod mnp nom-fichier
La combinaison numérique mnp (soit 521 dans notre exemple) signifie que user a les droits m, group a
le droit n et other le droit p. sur l’inode dont la nature est donnée par le flag spécial F
Il existe en outre deux droits spéciaux permettant une gestion encore plus fine :
S (ou s=S+x) qui remplace le droit exécution de l’utilisateur (SUID) ou du groupe (SGID) en
donnant les droits du propriétaires du fichier lui-même pendant son exécution. (mount)
T (ou t=T+x) appelé sticky bit sur un répertoire limite l’écriture : on distingue la notion de
modification (possible) d’un fichier avec sa suppression (qui devient impossible). Sur un
fichier le sticky bit sert à le conserver en mémoire vive après son arrêt (rien à voir donc)
297
Section 7 – Systèmes Informatiques
23.4 Systèmes de stockage
23.4.1 Le stockage sécurisé des données
Sans évoquer ici les problèmes de confidentialité, le stockage des données dans une mémoire
confronte l’utilisateur à une double exigence :
l’accès et la garantie que ces données sont disponibles à tout instant
la protection contre les erreurs de lecture (ou d’écriture) et la garantie que ces données sont
exactes
Aujourd’hui on peut évoquer deux approches pour renforcer l’efficacité du stockage de données par
un système informatique.
23.4.2 RAID
Le système RAID (Redundant Array of Independant Disk) propose plusieurs architectures permettant
de distribuer des données sur des disques durs multiples. Il existe plusieurs types de RAID qui
peuvent être gérés de manières logicielles ou purement matérielles.
Les systèmes logiciels sont constitués d'une couche d'abstraction dans l'OS entre le drivers du disque
et le systèmes de Fichiers. Ils sont peu coûteux mais moins efficace que les systèmes matériels qui
offrent une meilleurs sécurité.
Les types de RAID sont numérotés de 0 à 6 dont on donne un bref aperçu dans le tableau suivant:
Type
0
1
2
3/4
5
6
Principe
Stockage alternée entre les
disques (stockage en bande striping)
Copie d'un disque sur un autre
ou miroring.
Stockage sur plus de trois
disques alternés, le dernier
disque stockant un contrôle de
parité
Stockage répartie et contrôle de
parité répartie sur plus de trois
disques
Amélioration du RAID 5 avec
plusieurs contrôles de parités (en
général 2°)
Propriétés
Pas de redondances
Performances élevés en parallèle
Redondance et récupération des données
Gaspillage d'espace et pas de gain d'efficacité
Obsolète
Redondance garantie par la parité et efficacité.
Disque stockant les parités fortement sollicité.
Supporte la perte d'un disque
Disques de même tailles et durée élevée de la
récupération des données. Supporte la perte d'un
disque
Complexité et durée des calculs de redondance.
Supporte la perte de plusieurs disques (2)
Ces différentes types peuvent être combinés entre eux pour offrir plus de sécurité et de performances.
23.4.3 Clouds
La rapidité des réseaux autorise aujourd’hui un stockage distribué et distant, permettant de repousser
(au moins virtuellement) l’échelle du système informatique de référence (mémoire/bus/traitement) à
celle d’un réseau. La notion de SAN (Storage Area Network) est ainsi devenue une réalité.
Ses intérêts résident dans une indépendance des systèmes de stockage vis-à-vis des OS manipulant ces
données: ils doivent garantir une haute disponibilité et de bonnes performances. Les systèmes RAID
sont également déployés dans les baies de stockage.
Ce réseau peut stocker des données au sens large : fichiers, base de données, OS ou applicatifs, on
parle alors de cloud.
298
Section 7 – Systèmes Informatiques
Fibre optique
Fabric
Client
Switch
Baies de
stockage de
disques durs
Du point de vue du système client, ce type d'accès est différent d'un serveur de fichiers où les données
sont encapsulés dans des protocoles réseaux. Dans le cas des SAN, le dialogue se fait sur des liens
fibre très haut débit avec des protocoles comparables à ceux utilisés pour les disques durs des cartes
mères : STA, SCSI... Le SAN ne propose pas un disque de partage, il est le disque de la machine.
23.4 Les processus.
23.4.1 Programme exécutable.
Les fichiers exécutables, ou programmes, sont des ensembles d’octets compilés à partir d’un code
source écrit dans un langage de haut niveau (C, C++, VB, C#…) et contenant l’ensemble des éléments
compréhensible par l’OS, afin d’être décodés, chargés en RAM puis interprétés par le processeur.
Leur format diffère selon les OS et sont en général incompatibles. On distingue en particulier :
Le format PE (Portable Executable) pour Windows, avec les extensions .exe ou .dll
(Dynamic Link Library)
Le formal ELF (Executable and Linking Format) Pour les systèmes Linux Et Unix
Mac-O pour Apple Mac-OS X
Les exécutables contiennent les instructions assembleurs décrivant le code, et de nombreuses méta
données incluses par le compilateur ou l’éditeur de liens.
23.4.2 Contexte d’exécution.
Il est nécessaire de bien distinguer le programme, ou binaire, exécutable et stocké sur un disque sous
forme de fichier et le processus qui est une des instances de programmes en cours d’exécution, c’est à
dire chargé en RAM et traité par le processeur. Un même programme peut s’exécuter dans de
nombreux processus.
On appelle ainsi contexte d’exécution le programme en tant que programme qui s’exécute. Ce
contexte est tout ce qui caractérise ce processus :
Espace d’adressage : zone de la RAM occupé par le processus
Pointeurs sur piles : point où se trouve le programme (Compteur ordinal)
Registres : état du processeur
Variables…état de la pile mémoire géré par le processus
299
Section 7 – Systèmes Informatiques
Gestion des processus
RAM
OS
P1
P2
P3
Processeur
Tous ces éléments ont été abordés dans le fascicule précédent consacré aux processeurs.
Chaque processus est identifié par l’OS grâce à son numéro d’identification PID :
PID : Processus Identification.
PPID : Parent PID
Ainsi l’identification du processus INIT sous Linux est : PID = 1 PPID = 0
Etant donné qu'un seul processus peut être en exécution sur un processeur à un instant donné (même
sur un système multi-tâches) les autres sont donc dans un autre état. Ils se retrouvent donc mis en
attente, dans ce que l'on appelle des files d'attentes.
Un processus peut avoir différents états (sous linux man ps pour de plus ample détails) :
Nouveau
Le processus est en cours de création
En exécution ( Running : « R » )
Le processus est en cour d'exécution
Prêt / Bloqué ( Sleeping : « S »)
Le processus est en attente d'exécution
Terminé (« T »)
Le processus s'est terminé
Lorsqu'un processus est dans un état prêt il se retrouve dans la file d'attente des processus prêts.Tandis
que les processus dans un état en attente. Sont eux dans une file d'attente de périphériques. Chaque
périphérique possède sa propre file d'attente.
23.4.3 Traitement du CPU.
Il existe différents type de traitements :
Monotâche : exécution d’un seul processus à la fois. Le processeur est entièrement consacré à un seul
processus ce qui peut provoquer un blocage du système.
Multitâche : exécution de plusieurs processus en parallèle. Le système fait tourner les processus en
cours à tour de rôle. Il est capable d’interrompre tout processus ce qui assure une meilleure stabilité.
Dans ce dernier cas, il existe plusieurs paramètres pris en compte et divers algorithmes
d’ordonnancement mis en œuvre dans l’OS pour assurer le partage des ressources CPU entre les
divers processus concurrents :
Pile FIFO : priorité selon l’ordre d’arrivé d’un processus en file d’attente (First In
First Out) ; premier arrivé premier exécuté.
Shortest First : priorité aux processus le plus cours.
Tourniquet : attribution du CPU à un processus pendant un Quantum de temps
déterminer. (210ms sous linux).
300
Section 7 – Systèmes Informatiques
Degré de priorité des processus. Affecté par le système ou l’utilisateur via le
gestionnaire de processus.
Pour élire le processus qui sera exécuter, l’algorithme tiendra compte du temps qu’il lui a déjà alloué, de
l’accès éventuel à des périphériques, de la criticité pour le système…
P1
P2
P3
Noyau OS
Temps
CPU
sleep
run
P1
P2
P1
Processeur
quantum
Interruption de P1
Reprise de P1
On constate que chaque processus doit garder l’impression d’être le seul à être exécuté par la machine
au moment où il occupe le CPU. C’est le rôle de l’OS de sauvegarder le contexte de l’exécution au
moment de l’interruption et de le restaurer au moment de la reprise.
L’ordonnancement peut être préemptif si le noyau interrompt par son initiative le processus en cours
d’exécution (cas de l’interruption brutale)
23.4.4 Mode utilisateur & mode noyau
Les processeurs X86 ont deux modes de fonctionnement :
Le Mode utilisateur : exécution d’un processus par l’utilisateur. Aucune fonction critique
n’est nécessaire pour le traitement.
Le Mode noyau : exécution d’un processus par le noyau pour le compte de l’utilisateur.
Exécution d’une routine de noyau critique pour le système comme l’accès disque, accès
périphérique…
sleep
user
mode
P1
P1
P2
run
kernel
mode
P1
Noya u
Ordonnancement
Appel Système
Noyau
P3
Appel Système Reprise de P3 en mode noyau
Noyau préemptible : interruption du processus noyau en cours et exécution d’un autre de
priorité plus élevé.
Noyant réentrant : on peut bloquer plusieurs processus en mode noyau (Exemple de P3,
reprise en mode noyau).
301
Section 7 – Systèmes Informatiques
23.4.5 Les threads
Le thread est un processus léger. Différents des processus « lourds » ou normaux, ils n’ont pas
d’identification propre pour l’OS mais sont comme « des processus à l'intérieur de processus ». Ils
s’exécutent dans le même espace mémoire qu’un processus d’où leur caractère « léger ». Ce sont des
tâches spécifiques du processus qui ont été ainsi définit par le développeur du programme. Ils sont
dévolus à une tache autonome (serveur, calcul…) séparée du programme principal qui en général
fournit l’interface utilisateur.
P1
Thread
Par exemple, les Threads de Kernel n’ont pas d’interaction avec l’utilisateur.
Les threads ont été créés pour résoudre certains problèmes que les processus seuls ne pouvaient
résoudre. Ces problèmes sont principalement liés aux performances et aux traitements parallèles ou
concurrents sur des données identiques.
23.4.6 Communication inter-processus
L’OS assure la commuication directe entre deux processus distincts et peut envoyer la sortie standard
de l’un vers l’entrée standard d’un autre sans interfaces avec l’utilisateur. On parle de pipe, ou de tube.
Par exemple avec le symbole: | (AltGr 6)
> proc1 | proc2
On peut l’utiliser simplement pour la recherche sous linux avec la commande grep qui recherche des
chaînes de caractères :
> ps –a | grep init
> more /etc/passwd | grep root
23.5 Gestion de la mémoire
23.5.1 Structure d’un processus :
Une fois les sources d’un programme compilé, ce programme est exécutable (apparaît en nom.exe, cf
5.1). Lors de son exécution, les instructions sont donc chargées dans la mémoire vive ( RAM ).
L’espace d’adressage est organisé depuis les adresses basses en haut (BA) jusqu’aux adresses les plus
élevées (0xFFFFFFFF) en bas de la pile.
302
Section 7 – Systèmes Informatiques
Registre
processeur
Taille fixe
Taille dynamique
Espace d'adressage
RAM
BA: adresse de base
Instructions
DATA
Constantes static
Text
bss - constantes globales
Tas (Heap)
PC: Program counter
Compteur ordinal
Variables locales
SP: Stack Pointer
Pile (Stack)
Valeurs instantanées
Registres
Le segment DATA ou code contient le code machine, et les constantes static. Il est
considéré comme étant en lecture seul par l’OS pour éviter d’être modifié pendant son
exécution. Le .BSS (Block Started by Symbol) contient les variables globales qui peuvent
être modifiées.
Le tas (heap) contient toutes les données qui sont dynamiquement alloués par le
processus. Sa taille dépend uniquement des paramètres d’exécutions et des données
d’entrée fournies. Il croît vers le bas (vers des adresses hautes)
La pile (stack) contient toutes les variables intermédiaires qui apparaissent et
disparaissent au gré de l’exécution du programme. On y stocke principalement : les
variables locales d’une fonction, des résultats de calcul intermédiaire, les paramètres
d’appel d’une fonction, les valeurs des différents registres. elle croît vers le haut (vers des
adresses basses)
La taille de la pile et du tas est fixée arbitrairement. Lorsqu’un processus a utilisé toutes
ses ressources, soit le système met fin au processus, soit le système reloge le processus
dans une nouvelle zone de la mémoire en lui réservant plus de ressources. On stocke dans
la même zone mémoire, la pile et le tas. En général, la pile croît du bas vers le haut, tandis
que le tas grandit du haut vers le bas. Lorsque les deux parties se rencontrent, on réalloue
une nouvelle zone pour le processus. Les objets présents dans le tas restent à la même
position relative par rapport à l’adresse de base (BA) et il suffit de mettre le pointeur de
pile (SP) à jour et de recopier les données de la pile dans son nouvel emplacement.
23.5.2 Gestion de la mémoire vive (RAM) :
Une fois les sources d’un programme compilé, ce programme est exécutable ( il apparaît en nom.exe
ou sous forme de librairie .dll). Lors de son exécution, les instructions sont donc chargées dans la
mémoire vive ( RAM ).
Un algorithme de gestion est chargé de placer au mieux les différents processus qui vont être exécutés.
Citons les termes de best-fit (meilleure allocation possible), first-fit (Allocation dans le premier espace
disponible) ou next-fit (Espace suivant).
Quelques définitions:
Partition: espace d’adressage d’un processus dans la mémoire (RAM).
303
Section 7 – Systèmes Informatiques
Fragmentation : espace libre non contiguë. Un processus est fragmenté quand son espace
d’adressage n’est pas continu
Vu qu’il n’y a aucun contrôle sur l’ordre de lancement et de fin ou sur la taille des processus, la
mémoire vive devient rapidement fragmentée. Il faut donc utiliser la compression ou compaction :
RAM
Noyau OS
P1
Processus
fragmenté
DATA
Text
Tas
P2
Pile
P1
Espace
Libre laissé
par un
processus
achevé
P3
Espace
Libre
On distingue également ce phénomène de fragmentation de l’espace libre (non alloué) appelé
également fragmentation externe, d’un second type appelé fragmentation interne. Dans ce second cas,
on parle de l’espace alloué à un processus par l’OS mais qui ne sera pas utilisé par le processus. Ce
phénomène sera caractéristique de l’allocation de mémoire par page (cf plus bas, la pagination), ou
des blocs de taille fixe sont attribués au processus.
Le swap :
Si la RAM est surchargée, une partie de cette dernière est stockée sur le disque dur dans un
fichier ou sur une partition réservée. Ce seront les processus en sommeil (sleep) ou moins
cruciaux (priorité) qui seront « swapé » en premier. L’écriture et la lecture sur le disque dur
étant 1000 fois plus lente que pour la RAM, le swap entraîne le ralentissement des traitements.
RAM
Disque Dur
OS
P1
SWAP
P2
P3
Les différents problèmes :
Comment gérer la fragmentation ?
Elle est gérée soit par segmentation, soit par pagination. Ce problème sera traité dans les
paragraphes suivants.
Comment adresser un programme dont la partition n’est pas contigüe en RAM.
La solution est la MMU ( Memory Management Unit), c’est à dire l’unité de gestion de la
mémoire du système.
304
Section 7 – Systèmes Informatiques
23.5.3 Types d’adressage et MMU
On doit distinguer différents type d’adressage selon le niveau du traitement considéré : Processus,
Noyau, Matériel.
adressage absolu :
C’est l’adresse de référence du processus. Il s’agit du Compteur Ordinal qui pointe sur la pile
d’instruction et qui est référencé à 0, point de départ du processus. Chaque processus se référence
par rapport à son propre 0.
adressage virtuelle ou logique :
C’est le déplacement vers une adresse de base qui permet à plusieurs processus d’avoir des espaces
d’adressages différents mais contigus. Il s’agit de l’espace d’adressage gérer pour le CPU par le
noyau.
adressage physique :
C’est l’adresse réelle où se trouve l’opérande dans la RAM. Il s’agit de l’adresse dans le
composant électronique composant la RAM. Ce type d’adresse n’est pas accessible par le
processeur mais manipuler par la MMU sur la carte mère pour le compte du processeur.
0
RAM Physique
CPU
Processus
DATA
Noyau OS
Text
Tas
base
DATA
Text
Tas
Pile
MMU
Pile
Chaque fois que le processeur manipule une adresse mémoire (adresse virtuelle), l’instruction est
interceptée par le MMU – Memory Management Unit – , qui fait partie intégrante du processeur. Au
lieu d’accéder à la mémoire RAM directement à l’adresse spécifiée, le MMU va traduire l’adresse
virtuelle en son correspondant réel (RAM) avant de placer la requête sur le bus.
23.5.4 La segmentation :
La segmentation est un mécanisme qui ne peut être désactivé. Il permet de découper l’espace linéaire
des adresses en plusieurs segments. Ceux-ci peuvent contenir des données, du code, une pile ou des
structures de données systèmes. Les tailles et positions de ces segments dépendent de nombreux
facteurs : segmentation de la RAM, swap sur disque dur, gestion de la MMU…
Tous les segments d’un système doivent être contenus dans l’espace linéaire. Pour localiser un
élément dans la mémoire, une adresse logique est requise. Une adresse logique est divisée en deux
parties : le sélecteur de segment et l’offset.
Le sélecteur de segment est un identifiant unique pour un segment. En fait, ce sélecteur de segment
pointe vers un des descripteurs de segments contenus dans une table. Chaque segment est décrit dans
une table, par une structure de données bien spécifique, appelée descripteur de segment.
305
Section 7 – Systèmes Informatiques
Cette structure contient la taille du segment, les droits d’accès, la place du premier octet du segment
dans l’espace linéaire (adresse de base) ainsi que d’autres informations. L’offset est ajouté à l’adresse
de base d’un segment pour former une adresse appelée linéaire. Avant de réaliser un quelconque
accès, le processeur vérifie que les informations du descripteur du segment correspondent bien au
mode d’accès en cours( accès à du code ou à des données).
Le schéma qui suit représente la translation d’une adresse logique en une adresse linéaire :
Sélecteur de segment
15
Offset
31
0
0
Adresse logique
Descripteur de segment
Longueur
Base
Table de
Descripteurs
0 A dresse linéaire
31
En cas de longueur du segment réel inférieure à celle inscrite dans le descripteur, il y a erreur de
segmentation. (Segmentation fault). En revanche ce mécanisme garanti l’absence de fragmentation
interne.
Protection offerte par la segmentation :
Ce mécanisme d’adressage offre un certain degré de fiabilité pour l’exécution d’un processus et la
programmation du processeur.
Vérification de limite ( si on essaie d’accéder au delà de la fin du segment, une
exception est générée)
Vérification du type (si on essaie d’exécuter un segment de donnée, une exception est
générée)
Vérification du niveau de privilège
Restriction de l’espace d’adressage
Restriction du jeu d’instruction.
23.5.5 La pagination
La pagination correspond à un type de segmentation où la taille des segments est fixe.
Quand le processeur fonctionne en mode protégé, il permet de mapper directement l’espace linéaire
sur l’espace mémoire physique, ou indirectement en utilisant la pagination. Une partie de l’espace
d’adressage linéaire est alors contenue en mémoire physique, le reste étant contenu sur une mémoire
de masse.
Quand la pagination est activée, l’espace linéaire est divisée en pages physiques (aussi appelées cadre
ou frame) de 4 Ko ou 8 Ko chacune, chacune d’entre elles pouvant être en mémoire physique ou sur
une mémoire de masse. Lorsque le processeur reçoit une adresse logique, il la traduit en adresse
linéaire, puis via les mécanismes de la pagination traduit cette dernière en adresse physique.
Le schéma général est le suivant :
306
Section 7 – Systèmes Informatiques
RAM Physique
Processus 1
0
page 1.0
page 1.1
TABLE DES PAGES
page 1.2
page 1.0
page 1.2
page 1.1
La pagination repose sur une double indirection : les répertoires de pages et les tables de pages. Les
pages sont définies dans des tables de pages, qui sont elles même définies dans un répertoire de page.
Il y a bien une double indirection :
répertoire de page table de page page.
Il n’y a qu’un seul répertoire de pages activé à un instant donné dans le système, soit 1024 tables de
pages possible, c’est à dire 1024*1024 = 1048576 pages, représentant pour une page de 4 Ko un
espace linéaire de 4 Go ( 1024* 1024 * 4 K).Tout l’espace linéaire peut donc être défini dans des
tables de pages, et donc un répertoire de page.
Le schéma ci-après résume le mécanisme :
page
Offset
Table
t
p
12 11
0
31
22 21
TABLE
DES PAGES
t
TABLE
DES PAGES
p
adresse page
31
11
0
A dresse Physique
concaténée
REPERTOIRE
DES PAGES
La pagination permet donc sur un système avec peu de RAM physique installée de simuler un grand
espace linéaire pouvant contenir de nombreuses tâches et données.
La mémoire réelle est découpée en pages de même taille, les pages utilisées au fur et à mesure des
besoins sont chargées en mémoire réelle et enlevées lorsqu’on n’en a plus besoin. La condition
nécessaire est de pouvoir disposer d’un moyen de savoir quelles pages de la mémoire virtuelle se
trouvent actuellement en mémoire et où elles se trouvent. C’est le rôle de l’unité de gestion de la
mémoire du système, le MMU(cf § 25.5.3)
Avec ce mécanisme, il n’y a plus de risque de fragmentation externe, mais possibilité de
fragmentation interne, au moins un cadre par processus pouvant être utilisé de manière partielle – soit
½ cadre de fragmentation interne en moyenne.
307
Section 7 – Systèmes Informatiques
RAM Physique
page 1.0
page 2.0
page 2.1
page 2.2
page 1.2
page 2.3
page 3.0
page 1.1
Cadres de taille
fixe
page 3.1
23.6 Exécution
23.6.1 Compilation
On propose ci-dessous un code source extrêmement simple. Ce code source est écrit dans un langage
de haut niveau (C)
#include <stdio.h>
int main(void) {
}
puts("helloWorld!");
return 0;
Code source hello.c
Ce programme est destiné à être compilé, c’est à dire réécrit sous forme de langage machine, aussi
appelé langage assembleur, directement interprétable par l’OS et par le processeur. Compilateur
procède en deux étapes :
Le code source de 82 octets est d’abord compilé sous forme de fichier objet (de l’ordre de
500 octets), où le compilateur contrôle la syntaxe et la définition correcte des variables et
fonctions.
Puis l’éditeur de lien intègre à partir de librairies (dll – dynamic link library) les références
des instructions appelées dans le code source. Il génère alors l’exécutable proprement dit
(environ 15ko). On obtient ainsi un programme exécutable qui est stocké sous forme d’un ou
plusieurs fichiers sur le disque dur.
Edition
de liens
Compilation
hello.c
Source
hello.o
Fichier
objet
308
hello.exe
Fichier
exécutable
Section 7 – Systèmes Informatiques
23.6.2 Lancement d’un processus
Lors de son lancement par une commande dans un shell (invite de commande) par exemple, l’OS
décompresse ce programme présent sous forme de fichier sur le disque dur, puis écrit les instructions
en RAM en lui affectant un espace d’adressage virtuel et un numéro d’identification [PID]. Ce
processus qui se présente donc sous la forme d’une pile écrite en code assembleur, est interprété par le
processeur pas à pas sous le contrôle de l’OS qui peut l’interrompre ou le suspendre pour partager les
ressources avec d’autres processus en parallèle.
23.6.3 Espace d’adressage
L’espace d’adressage du processus est protégé par l’OS. On va y trouver selon la structure décrite
précédemment les instructions du code écrites par le développeur (DATA/CODE), un espace de
stockage des données définies dans le code source (BSS) : constantes fixes, chaîne de caractères,
valeurs numériques. Puis un espace dynamique constitué du tas (HEAP) où seront placées les
variables locales du programme et enfin la pile (STACK) qui verra s’empiler les valeurs instantanées
manipulées par le processus au cours de son déroulement : adresse pointant vers des variables, état de
compteur et de registres, résultats de tests…
On propose ci-dessous l’architecture globale de l’exécutable avec les caractéristiques de chaque
section. On remarque les attributs en lecture seule (READONLY) pour les parties fixes du code et des
variables statiques. Il est possible de reconstituer ainsi la taille du programme (colonne size) et la
position de chacune de ces sections dans le fichier (File Offset)
Structure globale du programme hello.exe :
hello.exe:
file format pei-i386
Sections:
Idx Name
0 .text
1 .data
2 .rdata
3 .bss
4 .idata
Size
000008d4
CONTENTS,
00000040
CONTENTS,
000000f0
CONTENTS,
000000b0
ALLOC
00000290
CONTENTS,
VMA
LMA
File off Algn
00401000 00401000 00000400 2**4
ALLOC, LOAD, READONLY, CODE, DATA
00402000 00402000 00000e00 2**4
ALLOC, LOAD, DATA
00403000 00403000 00001000 2**4
ALLOC, LOAD, READONLY, DATA
00404000 00404000 00000000 2**4
00405000 00405000
ALLOC, LOAD, DATA
00001200
2**2
23.6.4 Désassemblage
Le désassemblage est une méthode d’analyse des exécutables afin d’étudier le contenu. Dans notre
cas, Si on analyse la section 0 .text du processus hello.exe, on y trouve la portion de code
correspondant à la séquence du main{} du programme hello.exe. On notera l’évolution de l’espace
d’adressage. Dans le programme original où il s’agit d’un fichier contenant le code sous forme
hexadécimale (dont la taille dépasse 15ko), on a représenté la zone de quelques octets (22) identifiant
la boucle principale du code source.
Address
[Contents of section .text:]
…/…
4012b0
e85b0400 00e8f600 0000c704 24003040
4012c0
00e83a05 0000b800 000000c9 c3909090
…/…
[Contents of section .rdata:]
403000
68656c6c 6f576f72 6c642100 00000000
309
.[..........$.0@
..:.............
helloWorld!.....
Section 7 – Systèmes Informatiques
Dans le tableau suivant, les commandes sont présentées sous forme interprétées par le debugger
(format AT&T). On notera l’ordre inversé d’affichage des octets (processeur x86 en orientation littleendian). et une partie de son architecture en RAM
Adresse virtuelle
0x00401290
<main+0>:
0x004012b5
<main+37>:
Codage hexa
55
Commandes / Data
push
%ebp
call
0x4013b0 <__main>
0x004012ba
<main+42>:
e8 f6 00 00
00
c7 04 24 00
30 40 00
movl
$0x403000,(%esp)
0x004012c1
<main+49>:
e8 3a 05 00
00
call
0x401800 <_puts>
0x004012c6
<main+54>:
b8 00 00 00
00
mov
$0x0,%eax
0x00403000
<_data_end__+4032>:
"helloWorld!"
Début bloc d’activation
Début des commandes de la
fonction main
Charge l’adresse 403000 dans le
registre esp
Appelle de la fonction puts qui
affichera le contenu pointé par
esp précédemment
Fin avec retour à zéro :
l’accumulateur contient la valeur
de retour nulle
Stockage de la valeur à afficher
La connaissance intime du mode de fonctionnement des processus permet de mieux appréhender le
comportement du processeur, l’intérêt de l’écriture en langage de haut niveau, les risques éventuels
d’une mauvaise écriture de code (hacking) : vol de mot de passe, débordement de tampon,
shellcode…
23.7 Boot – Amorçage
23.7.1 Séquence de boot
Le boot s’effectue lors de la mise sous tension du PC. L’ordre de boot est une option du Bios, en
particulier d'un PC, permettant de choisir l'ordre dans lequel la machine va interroger les disques pour
savoir où se trouve son système d'exploitation. On choisira par exemple « C:, A:, CDROM, USB »,
pour booter sur le disque dur principal, puis sur une disquette si le disque dur n'est pas (plus) bootable,
puis éventuellement sur un CDROM ou enfin une clé USB.
On n'aura plus alors rien à craindre des disquettes oubliées dans l'unité (ou clés USB) et qui peuvent
contenir des virus de boot.
Le Bios, Basic Input Output System, est une partie du système d'exploitation s'occupant exclusivement
des entrées-sorties et de l'interface avec le hardware, dans un PC. Proche du matériel, il est d'un
emploi plus que fruste et peu portable (d'ailleurs il est souvent installé dans une mémoire morte sur la
carte mère), mais il a un avantage : il est rapide. On y accède sur un PC lors du boot, par une touche
ou une combinaison de touches, comme « Suppr » ou « F2 ».
Lorsque votre ordinateur est mis sous tension le BIOS va effectuer les opérations suivantes :
Faire le test du CPU
Vérifier le BIOS
Vérifier la configuration du CMOS
Initialiser le timer (l'horloge interne)
Initialiser le contrôleur DMA
Vérifier la mémoire vive et la mémoire cache
Installer toutes les fonctions du BIOS
Vérifier toutes les configurations (clavier, Lecteurs externes, disques durs ...)
Secteur de démarrage de l’OS MBR (Disque dur) 512 o. (cf. secteur partie système de
fichier)
310
Section 7 – Systèmes Informatiques
En principe, Le secteur de MBR (Master Boot Record) est trop petit (512 octets) pour contenir tout le
code d’un chargeur de boot. En conséquence, ce secteur se contente de pointer vers un autre secteur
du disque dur où se trouvera le chargeur de boot.
BIOS
Disque
RAM
MBR
Chargeur de Boot
Périphériques
OS 1
OS 2
OS 3
23.7.2 Etapes du Chargement de Linux
Pour le système d’exploitation de Linux on distingue les étapes de pré chargement, celle de
l’installation et de l’éxécution du noyau, puis les lancements des processus utilisateurs :
« loading Linux » :
on va chercher le noyau sur le disque dur.
Un compressing…
Ecrire le programme sur la RAM
Ok, booting the KERNEL Démarrage du noyau et éxécution
Le noyau est à la base des systèmes d'exploitation modernes. Il s'agit d'une portion de code, souvent
écrite en assembleur et qui gère le multitâche, le multithread et permet de faire le lien entre le matériel
est les couches supérieures du système et les applications. Ce principe permet une évolution aisée des
systèmes d'exploitation.
Puis ensuite :
Installation
des périphériques
de la mémoire virtuelle
du scheduler (Ordonnanceur) et de l’horloge.
Chargement des modules (options)
Lancement des processus
0 : IDLE
lance le premier processus (1)et occupe le processeur à vide
1 : INIT
Processus père qui lance d’autres processus
n :
Processus systèmes de gestion
n’ :
gestionnaires de périphériques, démons, serveurs
mingetty
login & password
shell
L’utilisateur peut alors interagir avec le système.
Gestionnaire de fenêtre (WM : Windows Manager)
KDE, Gnome…
L’interface Linux permet de suivre l’ensemble des étapes du démarrage et ainsi de déterminer les
éventuels options sous-jacentes ou certains problèmes de lancement de services (réseau, sécurité…)
311
Section 7 – Systèmes Informatiques
312
Section 8 – Sécurité
24. Cryptologie
24.1 Vocabulaire
24.1.1 Codes & Chiffres
La science du secret (sens éthymologique de cryptologie) est un domaine qui au cours des dernières
décennies a connu une extraordinaire évolution. Si le secret s’accommode fort bien de la confusion, la
science requiert une rigueur incontournable dans l’étude de chacun des éléments qui concourent à ce
secret.
Aussi, pour éviter de s’égarer plus que nécessaire dans ce qui échappe légitiment à la compréhension,
il convient de baliser soigneusement ce nouveau territoire. Comme toute entreprise de cette nature, il
va nous falloir prendre le temps de nommer les concepts fondamentaux de la cryptologie.
Avec la cryptologie, nous devons compléter la notion de code avec celle de chiffre.
Le code est une table universelle permettant de substituer un caractère par un autre. Il n’y a dans un
code aucune notion de secret et aucune volonté de dissimulation. La diffusion massive de la table de
codage doit rendre son interprétation et son utilisation instantanée par tout manipulateur du message.
L’exemple le plus classique est aujourd’hui le code ASCII (American Standard Code for Information
Interchange) qui permet de remplacer l’ensemble des caractères courants latins par un code décimal
entre 32 et 127.
Le chiffre (à rapprocher de l’allemand Ziffer, ou de l’anglais cipher) désigne une technique de codage
qui est en partie cachée, rendant le message chiffré privé de sens pour tout destinataire non initié à
cette technique et au secret.
Message
Table de
codage
Message
Chiffre
313
?
Section 8 – Sécurité
Remarque : en cryptographie classique, on introduit la distinction subtile entre substituer un mot
(code) et substituer une lettre (chiffre). Cette distinction antérieure à l’univers informatique peut être
intéressante d’un point de vue historique mais obsolète d’un point de vue technique.
L’ignorant prendra un code pour un chiffre, l’imbécile un chiffre pour un code. Nous échappons
dorénavant à ces deux catégories.
24.1.2 Modèle et vocabulaire
Le modèle de la cryptologie classique s’appuie sur le modèle initial de Shannon. Le message à
communiquer transite par un canal de transmission. L’objet de la cryptologie est d’étudier dans quelle
mesure ce message peut-il être rendu « comme du bruit » tout en conservant toute l’information une
fois parvenue au destinataire final, objet de la cryptographie, et par quelles méthodes ces moyens
peuvent être « cassés », objet de la cryptanalyse.
Champs de la cryptologie
Message
M
C(M)
C()
Source
Cryptographie
M
D()
Cryptogramme
Chiffrement
Destinataire
Déchiffrement
Cryptanalyse
Attaquant
Décryptage
M
On appelle message (ou clair) M, le contenu initial devant être transmis.
On appelle chiffrement la fonction C permettant de chiffrer le message. Le résultat obtenu C(M) est
désigné sous le terme de message chiffré ou cryptogramme.
On appelle déchiffrement l’opération D permettant de restituer le message M à partir du
cryptogramme. En conséquence :
M =D(C(M ))
On appelle décrypter l’action qui consiste à obtenir M à partir de C(M) sans disposer de la méthode
D. Cette opération de décryptage est le résultat d’une cryptanalyse, c’est à dire de l’étude de la
méthode de chiffrement et de ses faiblesses potentielles.
La cryptographie étudie l’ensemble des techniques permettant de cacher une information M.
On appelle crypter l’action d’évoquer ce dont on ne sait pas de quoi on parle mais dont on peut
supposer que d’autres y comprennent quelque chose. Si le terme est officiellement dans le
dictionnaire de la langue française, il n’appartient cependant pas au champ de la cryptologie. Son
usage abusif est toutefois toléré lors d’une discussion au self, pour expliquer les abonnements TV à sa
mamie, pour désigner un mystère qui nous dépasse (et pour un moment encore) voir même pour
rédiger un article scientifique.
24.1.3 Les services de la cryptographie
Dans l’étude de la sécurité des messages et des risques qui peuvent apparaître lors de la
communication de ces messages, on distingue trois types de services qui sont assurer par la outils
cryptographiques :
La confidentialité : cacher les informations contenues dans un message pour les rendre
inaccessibles à tout attaquant. C’est l’objet du chiffre.
314
Section 8 – Sécurité
L’intégrité : garantir qu’un message n’est pas modifié ou détecter d’éventuelles
modifications, intentionnelles ou non. Ce sera le rôle des empreintes.
L’authenticité : S’assurer que la source du message est bien qui elle prétend être. On utilisera
alors des mots de passe.
24.1.4 Principes de Shannon
En 1949, Claude Shannon exprima les deux propriétés d’un message chiffré. Un cryptogramme doit
être assimilé à du « bruit blanc », c’est à dire rendre impossible toute tentative de décryptage. Aussi
l’opération de chiffrement doit produire un maximum de confusion et de diffusion.
La confusion est une propriété qui permet d’effacer toute caractéristique statistique du message clair.
Le cryptogramme ne contient pas d’information exploitable.
La diffusion garantit que deux messages très proches auront des cryptogrammes extrêmement
différents. Cette propriété est fondamentale quand l’analyse d’un grand nombre de cryptogrammes est
possible.
Confusion
Diffusion
M
A Theory of Secrecy Systems
The Theory of Secrecy Systems
C(M) – AES 128 ECB
£jY‾*†Eúì> µBs‾nIÑ-G"mÎiAë<ó†
}IOØþ¿ Æ"-m ›zt{dÌÝ[à.f—ªØ!?
Il existe une unique méthode de garantir ces deux propriétés (§24.2.5). Cependant aucune méthode de
mesure n’est disponible et seule la cryptanalyse permettra d’évaluer leur efficacité.
On peut conclure en quelque sorte que pour dissimuler une information il faut la transmettre sous la
forme d’une information maximale au sens de l’entropie afin d’éliminer toute redondance exploitable.
24.1.5 Principe de Kerckhoffs
Si Shannon a énoncé des principes ayant traits à la théorie de l’information, Auguste Kerckhoffs a
expliquer de manière empirique à la fin du XIXème siècle que toute technique cryptographique
efficace devait respecter quelques règles simples.
Tout d’abord il faut distinguer dans la fonction de chiffrement C d’une part l’algorithme et d’autre
part la clé. L’algorithme C est un procédé qui admet la clé k pour paramètre que l’on notera
dorénavant Ck.
Ck()
k
On peut énoncer simplement ce principe : L’algorithme C qui peut être complexe est ouvert et connu
de l’adversaire effectuant une cryptanalyse (maxime de Shannon) mais la clé de chiffrement k (que
l’on peut dire de taille modeste devant C) est secrète. La sécurité repose sur le secret de la clé seule.
Ce principe est loin d’aller de soi. Le réflexe inné est d’assurer le maximum de sécurité par la
dissimulation du système complet. La pratique montre que c’est une erreur. Ce réflex trahit une
confusion entre la finalité (cacher une information) et les moyens mis en œuvre qui n’ont pas besoin
d’être totalement secrets. Bien au contraire on peut en donner une justification simple : la sécurité
d’un système est au mieux égale à la plus fragile de ces composantes. Assimiler par défaut ce point
faible à une clé de chiffrement permet de garantir un maximum de sécurité.
315
Section 8 – Sécurité
Il est aisé de déterminer si une clé est faible, d’en changer fréquemment ou en cas de compromission,
de la dissimuler en lieu sûr de par sa taille réduite.
Réciproquement toute faille du système ouvert pourra être facilement découverte et signalée, assurant
à terme que seule la clé garantisse la confidentialité.
24.1.6 Cryptosystème
L’usage de ce terme est sujet à controverse. Un cryptosystème désigne en principe l’ensemble des
messages clairs et l’ensemble des messages chiffrés auxquels ils correspondent via la fonction de
chiffrement avec toutes les clés possibles. Il s’agit donc de l’espace associé à un chiffre donné.
Messages
M
Ck()
Chiffrés
C(M)
k
Si pour chaque message correspond un et un seul message chiffré, pour une clé donnée, il y alors
isomorphisme entre l’espace des messages M et des chiffrés C(M). Cette condition n’est pas une
nécessité.
La notion de « système cryptographique » est plus large et désigne toute « boîte à outils » contenant
un ensemble de fonctions cryptographiques assurant différents services : chiffrement, authentification,
génération de clés…
24.2 Techniques fondamentales
24.2.1 Cryptographies classique et informatique
Jusqu’à la moitié du XXième siècle, la cryptographie est qualifiée de classique. Les méthodes
utilisées reposent sur les traitements alphabétiques. Ces traitements ont bénéficié avec le temps de la
cryptanalyse des systèmes existants pour se renforcer. La machine Enigma utilisée par les Allemands
pendant la seconde guerre mondiale marque une étape puisque sa cryptanalyse a conduit Alan Türing
à inventer l’ancêtre de nos ordinateurs.
Tout en réutilisant les techniques et principes fondamentaux de la cryptologie, l’ère informatique va
révolutionner les techniques d’analyse et imposer de nouvelles découvertes, rendant obsolètes bon
nombre de chiffres encore exploités. La vitesse de calcul, les capacités de stockage, le
perfectionnement mathématique vont ouvrir la voie pour une nouvelle cryptographie qui dépasse
l’alphabet pour le binaire.
24.2.2 Substitution
La technique la plus ancienne est celle qui consiste à remplacer ou substituer les caractères du
message clair par un jeu de caractères différents. Dans cette approche, l’ordre des caractères dans le
message initial n’est pas affecté.
Il existe de nombreuses variantes de constructions de ces alphabets désordonnés et de procédé de
substitution (à plusieurs caractères). On propose ci dessous un exemple de table de substitution
316
Section 8 – Sécurité
alphabétique avec une méthode de construction : la clé est alors constituée par le mot initial de la
table : SY(S)TEM(E)
A B C D E F G H I J
S Y T E M A B C D F
K L M N O P Q R S T U V W X Y Z
G H I J K L N O P Q R U V W X Z
Dans son approche simple telle que présentée ici, il est donc possible de retrouver les caractéristiques
statistiques de la langue d’origine sur les probabilités d’apparition d’une lettre ou de deux lettres
(bigrammes) : le mot « passage » sera chiffré en « LSPPSBM ». Ci-dessous les fréquences indicatives
d’apparitions des caractères alphabétiques en langue française :
E
S A I
T N R U L O D C P M É V Q F
% 14,7 7,9 7,6 7,5 7,2 7,1 6,5 6,3 5,5 5,4 3,7 3,3 3,0 2,9 1,9 1,6 1,3 1,1 <1%
24.2.3 Transposition
Pour augmenter la confusion, il est possible de permuter l’ordre des caractères du message selon une
clé qui peut être déterminer par un code numérique ou une permutation arrangée.
213
123
A titre d’exemple : Le code 213 permet de permuter chaque groupe de 3 lettres selon l’ordre 2 – 1 –
3 : « passage » se transpose en « apsasge ».
A nouveau les caractéristiques fréquentielles des monogrammes ne sont pas affectées, ce qui n’est
plus le cas des bigrammes.
En Otrue l’Unvisreté de Cbamrigde a mnorté que l'odrre des ltteers dnas un mto n'a pas d'ipmrotncae,
la suele coshe ipmrotnate est que la pmeirère et la drenèire soit à la bnnoe pacle. Le rsete peut êrte
dnas un dsérorde ttoal et vuos puoevz tujoruos lrie snas porlbème. C'est prace que le creaveu hmauin
ne lit pas chuaqe ltetre elle-mmêe, mias le mot cmome un tuot. [source : www.apprendre-en-ligne.net].
Non, vous n’êtes pas un génie, mais votre cerveau est une brillante machine [Source : Albert Einstein]
24.2.4 Xorisation
Cette troisième technique est propre au méthode informatique. Pour dissimuler simplement une chaîne
binaire, on lui applique une seconde chaîne avec un ou exclusif (xor). Cette opération est parfaitement
réversible : en effet la xorisation d’une séquence binaire avec elle-même crée une chaîne nulle.
Le ou exclusif, dont le symbole est ‘⊕’ ou bien en langage C ‘^’ (accent circonflexe) a la table
suivante :
0
0
1
XOR
0
1
1
1
0
Illustrons la technique de xorisation avec le tableau suivant :
01010101010101
11000101110100
10010000100001
11000101110100
01010101010101
Message clair : M
Clé : K
Chiffrement : M ⊕ K
Clé : K
Déchiffrement : M ⊕ K ⊕ K
317
Section 8 – Sécurité
Cette opération extrêmement puissante, rapide à réaliser avec des moyens informatiques, réversibles,
constitue un des éléments fondamentaux des algorithmes de chiffrement moderne. On en détaillera
quelques applications dans les chapitres 17 et 18.
24.2.5 Vernam
A la question « Existe-t-il une technique de chiffrement absolument fiable ? » la réponse est oui.
Shannon a montré que la méthode du One-time pad ou masque jetable encore appelé chiffre de
Vernam (1917) est impossible à cryptanalyser. Il est impossible de deviner la clé, même en les
essayant toutes. Il découle des principes de Shannon en considérant qu’il faut transmettre un bruit pur
et unique pour une confidentialité absolue.
Pour garantir la parfaite efficacité technique, il faut trois conditions concernant la clé de chiffrement :
La clé est parfaitement aléatoire
La clé est de même longueur que le message à transmettre
La clé est à usage unique et sera détruite après son seul usage
Si la clé n’est pas aléatoire, le message en clair peut apparaître dans le cryptogramme
Si la clé est plus courte que le message, on risque de pouvoir retrouver une partie du message
en le superposant à lui-même (cas de la troisième condition)
Si on réutilise la clé avec un autre message, la superposition des deux cryptogrammes va
produire la superposition des deux messages en clair, compromettant fortement la
confidentialité des informations.
Nous allons illustrer ce propos avec le chiffrement de motifs graphiques, les pixels blancs représentant
un ‘0’ et les noirs un ‘1’. La superposition en mode ou exclusif de deux pixels de couleurs différentes
produit un pixel noir(1), et deux pixels de couleurs identiques un pixel blanc(0). La clé peut alors
légitimement être qualifiée de masque (pad-tampon).
Message
Clé
Message ⊕ clé
Chiffrement
Clé aléatoire de même
longueur que le
message
Déchiffrement
Clé non aléatoire :
Cryptogramme de
mauvaise qualité
Mauvaise clé :
Le message déchiffré
est faux
On peut conclure que dans cette approche, où le cryptogramme est supposé connu de l’attaquant,
l’information du message est entièrement contenue dans la clé. Il convient donc de la conserver
parfaitement secrète. Hors cette clé doit être détenue par le destinataire, il faut donc la lui transmettre.
318
Section 8 – Sécurité
Les conditions de transmission de la clé doivent alors être aussi sûres que celle du message en clair :
le canal qu’il faut mettre en place pour transmettre cette clé pourrait aussi bien servir au message en
clair lui-même, rendant ce chiffrement inutile.
Ce Graal de la cryptographie présente des conditions difficiles à tenir en pratique : clé à usage unique,
difficulté de la communiquer, qualité de l’aléa… si cette technique a été utilisée en pratique, elle
s’accommode mal des approches modernes. Les algorithmes actuels qui conserveront néanmoins
l’idée de tendre vers ce chiffre parfait.
24.3 Cryptanalyse
24.3.1 Finalité
Sans entrer dans des aspects trop techniques, la cryptanalyse a pour objet l’étude des cryptogrammes
afin de déterminer des méthodes de reconstitution des messages clairs, en partie ou en totalité. Dans la
cryptologie moderne, le cryptanalyste possède l’algorithme de chiffrement mais ignore la clé.
Dans le cas du chiffre de Vernam, cette cryptanalyse est impossible puisque la clé est l’information.
En revanche, dans les autres cas où les conditions de Vernam ne sont pas parfaitement respectées,
l’attaquant cherchera par différentes approches de prendre en défaut les principes de Shannon
(Confusion et diffusion) et d’élaborer des statistiques exploitables en fonction de divers paramètres
(longueur de la clé, du message, taille de blocs, répétitions de séquences, lois mathématiques…)
Nous proposons une petite visite des techniques courantes de cryptanalyse. Retenons cependant que
les techniques de base évoquées précédemment permettent de construire des chiffres solides qui
rendront le travail de l’attaquant rapidement difficile.
24.3.2 Cryptanalyse Classique
La cryptographie classique s’est développée en constatant les progrès et l’efficacité des techniques de
cryptanalyse.
Les techniques d’alphabets désordonnés, utilisant la substitution alphabétique, ont montré leur
faiblesse devant l’analyse fréquentielle : cette dernière peut trahir une langue d’origine, voir les lettres
elles-mêmes.
Cette approche se complète avec l’attaque du mot probable qui consiste à chercher un mot précis dans
le cryptogramme qui permet d’accélérer la reconstruction de la table de substitution. Ce mot peut être
un nom propre, un site géographique, une date…
Toutes ces approches peuvent s’enrichir du nombre de cryptogrammes dont dispose l’attaquant, voir
d’un exemple de message clair/cryptogramme connu, de ces propres tests s’il dispose de l’algorithme
(principe de Kerckhoffs) ou de tout autre élément.
24.3.3 Attaque Brute force
Dans la cryptographie moderne où l’algorithme est connu, une méthode simple est de retrouver la clé
de chiffrement utilisée en essayant l’ensemble des combinaisons de toutes les clés possibles du
cryptosystème analysé. Cette recherche exhaustive aussi appelée ‘brute force’ égard à sa finesse exige
avant tout de gros moyens : puissance et rapidité de calcul, espaces de stockage, grande durée
d’analyse….
319
Section 8 – Sécurité
Il devient alors possible a priori de déterminer la faisabilité de cette recherche en mesurant l’espace
des clés. Une clé sur 8 bits (soit un caractère ASCII) autorise un jeu de 28=256 clés. Sur 128 bits (soit
une chaîne de 16 caractères) le nombre de combinaisons devient quasi cosmologique. Les durées de ce
tableau sont indicatives pour une machine seule testant 1 clé par microseconde.
Taille de la clé
8 bits
40 bits
56 bits
128 bits
256 bits
Nombre de clés
256
1 099 511 627 776
72 057 594 037 927 936
340 282 366 920 938 463 463
374 607 431 768 211 456
2 256 (Plus de 77 décimales)
Durée relative d’analyse
256 us
<13 jours
<2300 ans
Le soleil a explosé depuis
longtemps
L’univers a cessé d’exister
depuis longtemps
L’ajout d’un bit a la clé de chiffrement doublera la durée nécessaire. Il s’agit d’une croissance
exponentielle. Bien sûr avec 10 000 machines overclockées à mort, on peut réduire les temps d’un
facteur 100 000, ce qui rend l’analyse des clés de 56 bits plausibles en quelques heures. Il faut
également envisager que pour un algorithme donné, une faille permette de réduire considérablement le
nombre de combinaisons à tester : un accroissement de la taille devient nécessaire pour compenser la
faille.
En contre-partie, ces attaques ont un coût financier et en énergie qui augmente quand on veut
diminuer la durée. Il faut se demander si la valeur de l’information recherchée le justifie avant
d’engager les dépenses. Il faut aussi envisager de quel type d’adversaire on souhaite se protéger : son
neveu qui possède un mini-pc ou le gouvernement chinois qui exploite 100 000 000 de machines.
On estime que des clés de 128 bits sont hors de portée de ce type d’attaque pour plusieurs dizaines
d’années. Les éventuels ordinateurs quantiques associés a des avancées en nanotechnologie voir en
biotechnologie pourraient modifier ces prévisions. Avec 256 bits vos photos de vacances sont en
sécurité.
24.3.4 Attaque au dictionnaire
La sécurité d’un système est équivalente à celle de son plus faible élément. En général, dans les
systèmes cryptographiques contemporains, le plus faible élément est la source humaine, et en
particulier son choix de clé de chiffrement. Pour des raisons d’efficacité, la fabrication de la clé de
chiffrement repose sur le choix d’un mot de passe (password, passphrase) qui présente dans la
majorité des cas la propriété de ne pas être du tout aléatoire. On peut même estimer que dans 99% des
cas, ce mot de passe est un mot appartenant à un dictionnaire, c’est à dire non secret et
potentiellement connu d’un grand nombre de personnes.
L’attaque au dictionnaire assimilable à un « brute force intelligent » peut alors s’articuler ainsi :
1 On fabrique le dictionnaire, en fonction de la langue supposée, des éventuelles combinaisons
simples de ces même mots, de substitution numérique…
2 On teste toutes les entrées comme clés possibles.
3 En cas d’échecs, on optimise le dictionnaire : caractères majuscules, noms propres
spécifiques…
L’efficacité de ce genre d’attaque doit se compléter d’une forte dose d’intelligence sociale, qui sera
évoquée ultérieurement.
On propose ci dessous un extrait de dictionnaire de recherche de mots de passe simples pour les
systèmes Unix. Il est laissé à chacun le soin de ne surtout pas utiliser ces mots de passe :
abc admin root r00t test temp qwerty azerty password Pass passwd pwd
newpass notused user internet asshole 12345678 newuser asterix
asterixx computer fiction abc123 coolman coolman0 coolman00 123456
12345 full master god mmm xx xxx xxxx 0246 a1b2c3 chris david foobar
stupid * 123abc john helen love kiss fuck kamasutra s3x ann matrix
320
Section 8 – Sécurité
m4tr1x M4tr1X hacker acdc metallica 666 madonna apple unix windows
bill system crypt lost help …
Sans oublier le mot de passe vide…
Tout cryptanalyste débutant ou confirmé se doit de constituer et d’entretenir son propre dictionnaire,
via des algorithmes de son choix, une bonne dose d’imagination, et un peu de curiosité.
24.3.5 Attaque temporelle
L’étude des algorithmes de contrôles des clés ou de déchiffrement peut être extrêmement riche pour le
cryptanalyste. Une mauvaise programmation peut révéler bon nombre de failles aisément exploitable.
La durée d’exécution des programmes est à ce titre très précieux.
On peut citer en particulier la mauvaise implémentation de comparaison de chaînes de caractères qui
en procédant pas à pas à chaque caractère interrompt la comparaison dès qu’elle s’avère fausse.
Mot secret
Mot testé
SDBGSTYUIW
SDAAAAAAAA
Durée test: 2 caractères OK
Mot testé
SDBAAAAAAA
Durée test: 3 caractères OK
Ce type d’attaque par canal auxiliaire a été appliqué avec succès à la mesure de la consommation
électrique des calculateurs, voir l’acoustique des systèmes (ventilation, frappe de touches…)
24.4 Nombres premiers
24.4.1 Définition
On notera N l’ensemble des entiers positifs.
N={0 ; 1 ; 2 ; 3 ; 4…}
Un nombre entier positif n est dit premier s’il admet pour uniques diviseurs 1 et lui-même. La
divisibilité est une notion qui se définit par le fait qu’un nombre entier peut s’écrire sous la forme du
produit d’au moins deux nombres :
n= p.q
1 et 2 sont par défaut premiers. 3 est premier car seulement divisible par 1 et 3 et pas par 2. Tous les
nombres pairs ne sont pas premiers (2 excepté) puisque qu’ils sont tous divisibles par deux. Cette
approche de recherche de diviseur est très ancienne puisqu’elle correspond à la possibilité de classer
une quantité n en un tableau de p colonnes et q lignes.
Le tableau qui suit illustre la primalité des premiers entiers :
1
2
3
4
1*1
2*1
3*1
4*1 ; 2*2
321
(Premier)
(Premier)
Premier
Non premier
Section 8 – Sécurité
5
6
5*1
6*1 ; 3*2
7
8
7*1
8*1 ; 4*2
9
9*1 ; 3*3
10
10*1 ; 5*2
11
11*1
Premier
Non premier
Premier
Non Premier
Non Premier
Non Premier
Premier
24.4.2 Recherche des nombres premiers
Comment déterminer la liste des nombres premiers ? Comment déterminer la primalité d’un nombre
n ? Comment construire un nombre premier ? Toutes ces questions ont absorbé et absorbent encore
des cohortes de mathématiciens, de fanatiques, d’originaux ou de simples curieux depuis plus de 2000
ans.
Pour déterminer si un nombre n est premier, la première méthode, de par la définition, est de vérifier
s’il est divisible par un quelconque des nombres p qui le précède ( p<n ). L’algorithme suivant
propose une application simple en langage C. L’opérateur % retourne le reste de la division
euclidienne n par i. (chapitre 17). Si i divise n alors n%i vaut 0.
#include <stdio.h>
main()
{
unsigned long int n=1234567;
unsigned long int i;
}
for (i=2; i<n; i++)
{
if (n%i==0) {printf("%u n'est pas premier et divisible par %u",n,i);
return;}
}
printf("%u est premier !!",n);
return ;
Cette liste peut être limité à p< n afin d’accélérer la durée d’exécution, puis aux seuls nombres
premiers de cette liste. Mais voilà, cela devient excessivement long si n est grand. Même à l’ère
informatique classique la primalité de nombres de plusieurs centaines de chiffres peut poser problème.
Ce ne sera plus le cas si un calculateur quantique voit le jour. (chapitre 25)
24.4.3 Quelques nombres premiers
Il n’existe donc pas de lois (enfin connues à ce jour) pour exprimer l’ensemble des nombres premiers.
On peut en trouver des listes. Ci dessous vous trouvez tous les premiers de 1 à 1000 :
2 - 3 - 5 - 7 - 11 - 13 - 17 - 19 - 23 - 29 - 31 - 37 - 41 - 43 - 47 - 53 - 59 - 61 - 67 - 71 73 - 79 - 83 - 89 - 97 - 101 - 103 - 107 - 109 - 113 - 127 – 131 - 137 - 139 - 149 - 151 157 - 163 - 167 - 173 - 179 - 181 - 191 - 193 - 197 - 199 - 211 - 223 - 227 - 229 - 233 239 - 241 - 251 - 257 - 263 - 269 - 271 - 277 - 281 - 283 - 293 - 307 - 311 - 313 - 317 331 - 337 - 347 - 349 - 353 – 359 - 367 - 373 - 379 - 383 - 389 - 397 - 401 - 409 - 419 421 - 431 - 433 - 439 - 443 - 449 - 457 - 461 - 463 - 467 - 479 - 487 - 491 - 499 - 503 509 - 521 - 523 - 541 - 547 - 557 - 563 - 569 - 571 - 577 - 587 - 593 - 599 - 601 - 607 613- 617 - 619 - 631 - 641 - 643 - 647 - 653 - 659 - 661 - 673 - 677 - 683 - 691 -701 709 - 719 - 727 - 733 - 739 - 743 - 751 - 757 - 761 - 769 - 773 - 787 - 797 - 809 - 811 -
322
Section 8 – Sécurité
821 - 823 - 827 - 829 - 839 - 853 - 857 - 859 - 863 - 877 - 881- 883 - 887 - 907 - 911 919 - 929 - 937 - 941 - 947 - 953 - 967 - 971 - 977 - 983 - 991 - 997
Cette liste nous sera utile pour les paragraphes qui suivent. On peut cependant en citer quelques autres
forts remarquables.
Le plus grand nombre premier connu en 2010 est le nombre : 243 112 609-1 (nombre premier de
p
Mersenne de la forme 2 −1 où p est premier).
100314512544015.22171960 –1 et 100314512544015.22171960 +1 sont premiers. Ce sont des
jumeaux : ce sont deux impairs consécutifs premiers (comme 5 et 7, ou 11 et 13)
24.4.4 Décomposition en facteurs premiers
Si un nombre n n’est pas premier, on montre alors qu’il peut s’écrire sous la forme d’un produit de
facteur tous premiers :
n= p 1 .p2 ...
462=2*3*7*11
Nous rencontrons ici une difficulté essentielle pour la cryptologie moderne. En effet, s’il est aisé
d’effectué le produit de deux nombres premiers avec une simple calculatrice, ou un calculateur
manipulant les grands nombres :
211*647=136 517
En revanche l’opération qui consiste à réduire un nombre donné en facteur premier peut s’avérer très
très long, puisque cette opération est au moins aussi délicate qu’un test de primalité (§24.3.5)
263 689= ? * ?
Enfin une remarque sur la taille des nombres. La multiplication de deux nombres de x et y décimales
produira un résultat de x+y décimales (croissance logarithmique). Dans le cas d’un nombre à 6
décimales, on peut se contenter de tester les facteurs de longueurs inférieures à 3 décimales. Utiliser la
liste du §24.3.3.
24.4.5 Primalité et cryptographie
Les cryptographes font un grand usage de nombres premiers dans leur calculs et algorithmes. En
premier lieu, la quantité de nombres premiers de 300 chiffres est quasi illimitée, donc aucun risque de
pénuries. Le problème est d’en choisir un qui soit premier. En effet, on démontre que la chance d’un
nombre de 300 chiffres d’être premier est d’une sur 700 (=300*ln(10)). Cette valeur pas trop faible
montre qu’une recherche par tirage aléatoire pourra s’avérer fructueuse
Les mathématiciens ont montré qu’il est plus facile de déterminer si un nombre n donné constitué de
d décimales est premier (algorithme de durée d’exécution proportionnelle à d) que de déterminer les
facteurs premiers de n (durée proportionnelle à ed).
Il existe en effet des tests probabilistes (tests de Fermat, Miller-rabin, Solovay-Strassen…) qui
permettent d’évaluer la probabilité qu’un nombre n pris au hasard est premier. L’idée est d’effectuer
une opération simple (en général un calcul modulo) impliquant n et un nombre a aléatoire (a<n).
Chaque test donnant une probabilité 0,5, la multiplication de ces tests permettra d’accroître la
probabilité à des niveaux largement satisfaisants et pour des durées d’exécution informatique de
quelques secondes. Ces nombres sont aussi qualifiés de nombres premiers industriels.
24.4.6 Bizarreries et mystères
L’étude des nombres premiers a fasciné et fascinent toujours les amateurs de mathématiques. Ces
nombres indivisibles restent des nombres « à part ». Mais il n’existe à ce jour aucune loi, aucune
323
Section 8 – Sécurité
méthode, aucune démonstration ou conjecture capable de déterminer avec certitude et rapidement la
primalité d’un nombre.
L’étude de la répartition des nombres premiers montre qu’ils sont en nombre infinis, mais ils semblent
se raréfier quand le nombre de décimales augmente : on parle de densité nulle dans l’ensemble des
entiers naturels. Ils semblent surgir au hasard, bien qu’en réalité leur présence soit due aux multiples
qui les entourent, comme en creux, faute de ne pas avoir été obtenu par l’élimination des multiples des
nombres inférieurs.
Plus troublant, certaines personnes se sont révélées capables de tester la primalité de grands nombres
avec une extraordinaire facilité, sans aucune aide matériel, tel Zerah Colburn au début du XIXème
siècle ou les jumeaux autistes décrits par le neurologiste Oliver Sacks en 1966.
La complexité du problème et son apparente étrangeté sont des sujets passionnants pour l’ensemble de
la communauté scientifique. Celle de la cryptologie est particulièrement attentive aux recherches et
résultats dans ce domaine.
24.5 Mathématiques
24.5.1 Définitions des ensembles
On rappelle que N désigne l’ensemble des entiers positifs.
N={0 ; 1 ; 2 ; 3 ; 4 …}
On notera Z celui des entiers relatifs :
Z={… -4 ; -3 ; -2 ; -1 ; 0 ; 1 ; 2 ; 3 ; 4 …}
On pourra utiliser dans ces ensembles les opérations classiques : addition ‘+’ et produit ‘.’. La
soustraction et la division seront possibles sous certaines conditions d’appartenances.
24.5.2 Division euclidienne et modulo
Considérons deux entiers positifs de N quelconques notés n et q. On montre alors qu’il existe un
unique couple d’entiers de N (notés p et r) avec la propriété suivante :
n= p.q+r avec r<q
Cette opération est appelée division euclidienne. Par exemple la division de 114 par 7 peut s’écrire
114 = n 7 = q
44(114-70) 10+6 = p
2 (44-42) = r
114=16*7+2 avec 2<7
En cas de divisibilité de n par q, le reste r est nul. Cette propriété a été exploitée dans l’algorithme
proposé au §16.3.2.
Il est possible de définir la notion de congruence modulaire. On exprime alors le modulo de n par q
comme étant le reste r de cette division euclidienne :
n≡r [q] [n congrue à r modulo q]
324
Section 8 – Sécurité
114 ≡ 2 [7]
24.5.3 Anneau Z/nZ
En utilisant la notion de congruence, les mathématiciens (Dieu leur pardonne) ont établi de nouveaux
ensembles de tailles limités à n notés Z/nZ où n est un entier. Ces ensembles sont constitués
d’éléments appelés classes et parfois notés avec un point au-dessus de sa valeur numérique :
ɺ ; 1ɺ ; 2ɺ ;… ; nɺ−1 }
Z/nZ={ 0
La classe cɺ d’un nombre a entier quelconque est tout simplement sa valeur modulo n :
a≡c [n]
Aussi, cet ensemble possède des propriétés intéressantes (amusantes pour les mathématiciens). La
somme de deux classes xɺ et yɺ est une nouvelle classe zɺ de l’ensemble.
xɺ+ yɺ =zɺ
En effet si la valeur numérique x+y est supérieure à n il suffit de prendre sa valeur z modulo n qui est
une classe valide. Même chose pour le produit de deux classes.
xɺ.yɺ =wɺ
Enfin il est venu à l’esprit de définir la notion de classe inverse d’une classe xɺ et notée xɺ -1 (avec
bonheur).
xɺ . xɺ -1 = 1ɺ
L’existence de cet inverse n’est pas garanti. On démontre en effet la propriété fondamentale suivante :
si p est premier, alors tous les éléments de l’anneau (qui porte alors le nom de corps) Z/pZ sont
inversibles, c’est à dire qu’ils admettent une classe inverse dans l’anneau.
Mais enfin où sommes-nous ? Sous ces aspects étranges, les ensembles Z/nZ peuvent être assimilés à
des alphabets, ou des jeux de symboles en nombre limité, mais permettant de représenter une infinité
d’objets. L’exemple classique est celui de l’horloge. Midi (12h00) est également minuit ou une
infinité de midi, un pour chaque jour. Seulement dans l’approche qui consiste à organiser une journée,
il est inutile de compter chaque heure depuis la naissance du Christ, mais de remettre le compteur à
zéro chaque jour. On mesure l’heure dans Z/12Z ! Si vous ajouter une durée de 9 heures à 8h00 du
matin vous obtiendrez naturellement 5h00 de l’après-midi : 8+9=17=12+5=5 !
24.5.4 Etude d’un exemple
Un premier exemple extrêmement simple est l’anneau Z/3Z composé de 3 classes
ɺ ; 1ɺ ; 2ɺ }
Z/3Z={ 0
On peut alors dresser les tableaux des deux opérations addition et multiplication :
somme
0ɺ
1ɺ
2ɺ
0ɺ
0ɺ
1ɺ
2ɺ
1ɺ
1ɺ
2ɺ
0ɺ
2ɺ
2ɺ
0ɺ
1ɺ
Produit
0ɺ
1ɺ
2ɺ
0ɺ
0ɺ
0ɺ
0ɺ
1ɺ
0ɺ
1ɺ
2ɺ
2ɺ
0ɺ
2ɺ
1ɺ
ɺ est sa propre inverse. De même pour 1ɺ . Toutes les classes
On remarque en particulier que la classe 2
non nulles ont donc un inverse car 3 est premier.
Second exemple : soit à présent l’anneau Z/7Z :
325
Section 8 – Sécurité
ɺ ; 1ɺ ; 2ɺ ; 3ɺ ; 4ɺ ; 5ɺ ; 6ɺ }
Z/7Z={ 0
On dresse ci-dessous le tableau de la multiplication. Il nous permet de contrôler à nouveau le caractère
inversible de chacune des classes et leur inverse, 7 étant premier.
Produit
0ɺ
1ɺ
2ɺ
3ɺ
4ɺ
5ɺ
6ɺ
0ɺ
0ɺ
0ɺ
0ɺ
0ɺ
0ɺ
0ɺ
0ɺ
1ɺ
0ɺ
1ɺ
2ɺ
3ɺ
4ɺ
5ɺ
6ɺ
2ɺ
0ɺ
2ɺ
4ɺ
6ɺ
1ɺ
3ɺ
5ɺ
3ɺ
0ɺ
3ɺ
6ɺ
2ɺ
5ɺ
1ɺ
4ɺ
4ɺ
0ɺ
4ɺ
1ɺ
5ɺ
2ɺ
6ɺ
3ɺ
5ɺ
0ɺ
5ɺ
3ɺ
1ɺ
6ɺ
4ɺ
2ɺ
xɺ
xɺ -1
1ɺ
1ɺ
2ɺ
4ɺ
3ɺ
5ɺ
4ɺ
2ɺ
5ɺ
3ɺ
6ɺ
6ɺ
6ɺ
0ɺ
6ɺ
5ɺ
4ɺ
3ɺ
2ɺ
1ɺ
Ces résultats seront fondamentaux pour expliquer la construction de certains systèmes
cryptographiques, et en particulier RSA.
24.5.5 Application au chiffre de Vernam
Une des applications de ces ensembles est son application au chiffre de Vernam à masque jetable
(§16.2.5). On travaille alors dans Z/26Z , chaque classe étant associé à une lettre de l’alphabet. Le
chiffrement consiste alors à ajouter (modulo 26), le message en clair à la clé aléatoire jetable.
L’opération de soustraction modulo 26 pour le déchiffrement restituera le message en clair :
Message clair :
C
H
I
2
7
8
Clé :
R
K
G
17 10 6
Cryptogramme :
19 17 14
T
R
O
F
5
F
5
R
17
E
4
D
3
E
4
V
21
E
4
R
17
N
13
A
0
M
12
O
14
V
21
A
0
U
20
M
12
D
3
C
2
S
18
R
17
T
19
T
19
Q
16
19
T
26=0 17
A
R
24
Y
15
P
7
H
23
X
22
W
34=26+8 32=26+6 19
I
G
T
28=26+2
C
On vérifie bien que l’opération est réversible : par exemple si au 6(G) du cryptogramme on retranche
le 19(T) de la clé on obtient 6-19=-13, auquel on ajoute le 26 du modulo soit 26-13=13(N), caractère
du message en clair.
24.6 Stéganographie
24.6.1 Dissimulation d’information
La stéganographie est l’art de recouvrir une information (qui peut être claire ou chiffrée) par une autre
information le plus souvent clair. Techniquement, la stéganographie ne cherche pas à rendre
l’information incompréhensible, mais à ne la rendre accessible que via une lecture détournée.
Techniques analogiques
326
Section 8 – Sécurité
Le principe est d’introduire des variations dans la réalisation d’un schéma, dessin, ou texte manuscrit :
épaisseur ou longueur des lignes, disposition de motifs, espacement entre les mots… On peut
apparenter ce genre de techniques à celle de l’illusion d’optique.
Le bibliothécaire d’Arcimboldo
Techniques alphabétiques
A la façon de Georges Sand dans ses lettres, il est possible d’alterner ou de modifier certains
caractères pour dissimuler l’information. C’est pas toujours facile.
24.6.2 Stéganographie informatique
Le format des documents, en particulier les images ou les sons, peut permettre d’y insérer des
informations tels un texte, une autre image ou un exécutable. Les techniques classiques utilisent la
manipulation des bits de poids faibles sur les images de type bitmap (palettes de couleurs) ou sur les
sons de type wav.
Fichier
Insertion
Image .bmp
Fichier
Taille & format
identique
Image .bmp
Extraction
Image .bmp
Dans le cas des images bitmaps, chaque pixel codé sur 3 octets (24 bits) stocke sur 8 bits les 3
composantes Rouge, Vert et Bleu. Il exite donc 256 tonalités pour chaque couleur qui combinées
créent l’ensemble des nuances. Dans le cas des niveaux de gris, on utilise un unique octet pour les 256
niveaux. Le principe est d’altérer la valeur du (ou des) bits de poids faible pour coder le message à
dissimuler. Il est clair que cette altération sera invisible à l’œil. Il est facile de modifier un bit de poids
faible (ou plusieurs) sans modifier sensiblement la valeur du blanc. L’œil ne pourra pas détecter la
dissimulation du message.
1111 1111 hFF
Blanc pur (255)
1111 1110 hFE
Altération du bit de poids faible (254)
1111 1100 hFC
1111 1000 hF8
Altération de 2 bit de poids faible
(252)
Altération de 3 bits (248)
1111 0000 hF0
Altération de 4 bits (240)
1110 0000 hF0
Altération de 5 bits (224)
1100 0000 hF0
Altération de 6 bits (192)
Dans un bitmap, on ne pourra donc insérer que des données de tailles plus petite que le huitième de la
taille du bitmap en utilisant un seul bit de poids faible. L’expérience montre qu’il est possible de faire
327
Section 8 – Sécurité
mieux sans trop dégrader la qualité de l’image, en particulier sur les schémas, les dégradés des photos
étant plus sensibles à cette altération.
200x226 pixels au format gif – 18 846 octets
La photo de paysage suivante de format 730x260 pixels codée en bitmap de 191 398 (187ko) octets
sur 256 niveaux de gris contient l’image de l’antenne stéganographié
Stéganographie sur 1 bit de
poids faible
Taille maximale
dissimulable :~23ko
Stéganographie sur 4 bits de
poids faible
Taille maximale
dissimulable :~93ko
Stéganographie sur 5 bits de
poids faible
Taille maximale
dissimulable :~115ko
24.6.3 Watermarking
Un application directe de la stéganographie est le tatouage d’image ou watermarking qui permet de
dissimuler un signe dans une image à des fins de protection intellectuelle par exemple, ou de traçage.
Ce tatouage doit cependant être résistant aux modifications, comme l’impression ou la compression
(format jpeg par exemple).
image normale tatouée gif
image saturée révélant le
tatouage à partir du gif
original
328
image saturée révélant le
tatouage à partir d’un jpeg
compressé
Section 8 – Sécurité
Tatouage révélé à partir d’une copie d’écran du document informatisé
24.7 Empreintes
24.7.1 Fonctions à sens unique
La boîte à outil de la cryptographie compte parmi ces applications les plus usités, la fonction de
hashage (Hash Function), ou de calcul d’empreinte. C’est une fonction qualifiée de fonction à sens
unique car le résultat obtenu ne donne pas d’information sur le message M qui a permis de le produire.
En outre le résultat sera de taille fixe, indépendante de celle du message.
Message
M
E()
E(M)
Calcul d'empreinte
E : M→E(M)
Un exemple simple peut être fournit en utilisant à nouveau pour coder un message la représentation
numérique de l’alphabet. Une fonction à sens unique consisterait à sommer toutes les valeurs et retenir
les deux dernières décimales (modulo 100) pour limiter la taille du résultat à deux chiffres quelque
soit la taille du message.
C
2
H
7
I
8
F
5
F
5
R
17
E
4
Calcul d’empreinte
2+7+8+5+5+17+4=48
E(CHIFFRE)=48
Ce résultat ne permet pas de déterminer le mot d’origine ou la taille du message, puisque
E(PAPAS)=48 de la même manière. Cependant, si un message est altéré ou modifié lors de sa
transmission, le calcul de l’empreinte révélera avec une forte probabilité l’erreur.
On constate donc que contrairement à la cryptographie décrite au §24.1.6, il n’y a plus isomorphisme
entre l’espace de tous les messages et celui de toutes les empreintes possibles, mais simplement une
injection (au sens mathématique)
Messages
M
M'
E()
Calcul d'empreinte
329
E(M)
Section 8 – Sécurité
En d’autres termes il existe forcément des messages différents ayant la même empreinte :
M ≠ M’ et E(M)=E(M’)
On appelle ce phénomène une collision. En général est-ce un inconvénient ? tout va dépendre de
l’usage et du degré de fiabilité exigé. Le bit de parité est extrêmement pauvre et notre version E() un
peu plus robuste. Celles utilisés dans la pratique cryptographique sont beaucoup plus solides, c’est à
dire que ce risque de collision est extrêmement rare. N’oublions pas que ce qui est attendu en pratique
c’est que deux messages M1 et M2 très proches gardent des empreintes différentes pour garantir une
authentification sûre :
M1 ≈ M2 et E(M1) ≠E(M2)
L’utilisation d’une fonction de hashage permettra donc que :
Deux données différentes auront des empreintes différentes à (presque) 100%,
Une fonction de hachage ne permettra pas de divulguer le contenu du message source,
Une modification faible du message modifiera complètement son empreinte
24.7.2 Quelques fonctions en pratiques
Le tableau suivant donne une liste non exhaustive de fonction à sens unique utilisées couramment
dans les systèmes informatiques.
Fonction
Taille Hash
MD5
128 bits
Message Digest 5
SHA1
SHA-256
SHA-384
SHA-512
SHA-224
RIPEMD
160
256
384
512
224
160
Secure Hash Algorithm
bits
bits
bits
bits
bits
bits
Très utilisé. Présente des
risques de collision
Implémentée par la NSA
-
RACE Integrity Primitives
Evaluation Message Digest
Compatible 4 clés DES 56 bits
Implémenté en Europe par le
RIPE consortium
Les empreintes sont données sous formes hexadécimales ou alphanumériques. Le tableau qui suit
montre à titre d’illustration la taille fixe des empreintes md5 et la capacité de détection de
modification d’une unique lettre d’un simple texte
MD5 (128 bits)
Texte
Calcul d'empreinte
7ab81fc9ff48f6e07e1036c0a6a721ac
Calcul d'empreintE
f4909a49c3141266de2d75e595275ae7
Secrecy
fae8dd6f6c6fa0ad812b6de2ce77a823
L’évolution des fonctions est contrainte par les attaques et les faiblesses découvertes en matière de
collisions. On a montré ces dernières années qu’il était possible de construire un message M2 à
partir de M1 avec la même signature md5, rendant l’usage de cet algorithme déconseillé. Les mêmes
mésaventures sont rencontrées par SHA1 ou RIPEMD.
Il est également possible de trouver des outils (en ligne sur Internet notamment) capable d’inverser
des empreintes par des méthodes de cryptanalyse.
24.7.3 Exemples d’utilisation
Comme il a été précisé au § 24.1.3, le champ d’application de ces fonctions de calcul d’empreinte est
l’intégrité des messages. On peut ainsi citer quelques domaines courant de leur utilisation :
330
Section 8 – Sécurité
Garantir l’intégrité d’un fichier stocké sur un support physique : disque dur, serveur web ou
ftp…
Analyse des systèmes de fichiers et identifications de virus
Détection d’intrusion par modification de fichiers
Contrôle des processus exécuter sur un système
Contrôle par des pare-feu applicatifs des applications accédant au réseau
Stockage de mot de passes dans des fichiers systèmes
Recherche d’identité rapide entre deux fichiers
331
Section 8 – Sécurité
332
Section 8 – Sécurité
25. Systèmes Cryptographiques
25.1 Historique
25.1.1 Finalités de la cryptographie
A quoi sert la cryptographie et comment l’utiliser ? Ces deux questions sont fondamentales : avant
d’utiliser cet outil, il convient de se les poser car comme tout outil destiné à la sécurité, il n’y en a pas
de parfait.
Les outils cryptographiques permettent d’assurer trois services essentiels (§24.1.3) : la confidentialité,
l’intégrité et l’authentification. Ces outils sont plus ou moins fiables, plus ou moins simples à
manipuler et imposent des choix directs à leur utilisateur :
choix de la technique (algorithme),
choix de la clé (taille, durée de vie, stockage et mémorisation, partage)
Mais ces choix sont liés à des conditions préliminaires que l’on peut classer en deux catégories :
De quoi (ou qui) se protéger ?
Pendant quelle durée cette protection doit-elle être valide ?
Les deux tableaux suivants permettent une première approche :
Adversaire potentiel
Une personne
Conjoint, enfants, collègue ; dispose de moyens et de
connaissances limités. Il est a priori aisé de s’en protéger.
Le bon sens peu suffire :Vous pouvez ignorer les règles de
base.
Un groupe de personnes
Association, adversaires commerciaux, groupe
d’ « amis » ; peuvent mettre en œuvre des systèmes
d’analyse plus élaborés, réaliser une étude de personnalité
et d’intelligence sociale efficace, voir exercer des menaces.
Il faut respecter les règles élémentaires en matière de
choix de mot de passe, sauvegarde de données et
stockage, communication téléphonique ou échange de
mail, ce qui nécessite une initiation à la sécurité
informatique.
333
Section 8 – Sécurité
Un état
Disposant de moyens et de connaissances très importants,
L’usage des outils standards recommandés par les
spécialistes du moment sont obligatoires : une
connaissance éclairée des outils cryptographiques est
nécessaire. Selon les lois en usage, ils ne sont pas toujours
disponibles ou autorisés.
Les extra terrestres
Difficile d’estimer leur niveau de connaissance et leur
moyen : ordinateurs bioquantiques multiparallèles
alimentés en énergie par des nano-trous noirs en équilibre
phasique, scanneurs cérébraux et analyseur de pensée,
mensurations de rêve et peu farouches… On peut espérer
qu’ils n’ont pas d’accords stratégiques avec les adversaires
cités précédemment.
Durée de la protection
Quelques heures
Informations tactiques, absence momentanée… Les outils
standards voir « faits main » sont tout à fait valides
Plusieurs jours
Informations boursières, décisions politiques… Outils
officiels recommandées, mais pas de questions à se poser
sur un choix de clé trop complexe
Plusieurs années
Archives secrètes, photos de jeunesse… Les progrès et
découvertes futures peuvent rendre non fiables les outils
conseillés aujourd’hui. Utiliser les algorithmes et tailles de
clés recommandés
Plusieurs siècles
Secret de fabrication de virus biologique virulent, Plan
pour transformer un four micro-onde en bombe H, recette
du coca-cola… Une méthode personnelle non documentée
peut résister longtemps (Hiéroglyphes égyptiens,
manuscrit de Voynich…)
Ces échelles d’évaluations permettent de justifier encore aujourd’hui l’usage de méthodes
cryptographiquement non sûres mais adaptées à leur finalité.
Pour illustrer et modérer les différents aspects évoqués ici, évoquons le cas du chiffre ADGVFX
(combinaison de substitution et transposition alphabétique) développé par l’allemand Fritz Nebel en
1917. Ce chiffre militaire utilisé pour les communications de commandement sur le front, fut cassé
par le français Georges Painvin avec du papier et un crayon en quelques jours. Nebel n’apprendra cet
exploit qu’en 1967 : il était resté persuadé pendant 50 ans que son chiffre n’avait jamais été cassé. 50
ans, durée du secret d’état français imposé à Painvin avant de pouvoir évoquer cet aspect de la
première guerre mondiale…
25.1.2 César
Jules César met au point une des premières techniques de cryptographie alphabétique. Il s’agit au sens
strict d’un codage (substitution simple) mais on peut la qualifier de chiffre avec un algorithme
(substitution) et une clé (rang du décalage alphabétique, 3) : la lettre A est remplacée par D, B par E…
A B C D E F
D E F G H I
G H I
J K L
J K L M N O P Q R S T U V W X
M N O P Q R S T U V W X Y Z A
Y Z
B C
Cette technique n’efface pas les propriétés fréquentielles de la langue d’origine (§24.2.2). Si le
décalage est différent de 3, il est facilement cassable en utilisant les 25 alphabets décalés possibles
pour retrouver la clé (rang du décalage).
Cette technique simple est toujours utiliser sur Internet via l’algorithme ROT13 qui décale les lettres
d’un rang de 13. Ce choix permet de déchiffrer avec l’algorithme de chiffrement
[M=ROT13(ROT13(M))]. Son rôle est d’obfusquer, c’est à dire de dissimuler l’information claire à
une détection de clair simple (œil, logiciel de recherche de mots clés, filtrage de proxy…). Le code
source ci-dessous permet d’utiliser ROT13 sur la ligne de commande.
334
Section 8 – Sécurité
#include <stdio.h>
#define ROT 13
int main(int argc, char **argv)
{
if (argc < 2) {return 0;}
int i;
}
for (i=0; i<strlen(argv[1]);i++)
{
if (argv[1][i] >= 'a' && argv[1][i] <= 'z')
{argv[1][i] = (argv[1][i] - 'a' + ROT) % 26 + 'a';}
else if (argv[1][i] >= 'A' && argv[1][i] <= 'Z')
{argv[1][i] = (argv[1][i] - 'A' + ROT) % 26 + 'A';}
}
printf("%s\n", argv[1]);
return 1;
25.1.3 Polybe
Le carré de Polybe (200-126 avJC) est une méthode originale qui historiquement est le premier cas de
conversion d’un texte alphabétique en une série numérique. Il s’agit d’un chiffre de substitution
simple qui connaît les même faiblesses que le chiffre de César, mais l’identification de la chaîne peut
être plus délicate et il existe de nombreuses variantes.
1
2
3
4
5
1
A
F
L
Q
V
2
B
G
M
R
W
3
C
H
N
S
X
4
D
I,J
O
T
Y
5
E
K
P
U
Z
SECRET : 43 15 13 42 15 44
La méthode du carré est très présente dans de nombreux chiffres. Avec certaines améliorations, il peut
devenir un chiffre extrêmement solide : alphabets désordonnés, caractères redondants avec codage
multiple, grille plus grande…
25.1.4 Vigenère
Blaise de Vigenère (1523-1596) imagine vers 1560 un chiffre qu’on peut assimiler à un « supercésar ». La principale faiblesse du chiffre de César, ou plus largement de l’alphabet désordonné, est de
substituer un même symbole clair par un même symbole chiffré, rendant les attaques par analyses
fréquentielles ou la recherche de clair connu particulièrement efficaces.
Dans le cas de Vigenère, une même lettre sera chiffrée différemment selon sa position dans le
message d’origine. L’idée est d’appliquer un César à décalage variable dépendant d’une clé
numérique ou d’un mot de passe :
Clair
Clé
Décalage
Cryptogramme
M
C
1
N
E
O
4
I
S
D
2
U
S
E
3
V
A
C
1
B
G
O
4
K
E
D
2
G
S
E
3
V
On constate que les ‘S’ consécutifs sont bien chiffrés par deux lettres différentes.
Ce chiffre sera longtemps considéré comme incassable. Il faudra attendre 3 siècles pour que Charles
Babbage (mathématicien et fabricant de machines à calculer) brise le chiffre de Vigenère.
335
Section 8 – Sécurité
25.1.5 Enigma
La machine Enigma d’origine allemande, créer au début des années 1930, a été largement utilisée
pendant la deuxième guerre mondiale par l’armée allemande pour assurer ses communications
chiffrées.
Machine Enigma
Bombe de Türing
Pour chiffrer, on entre la clé sous forme d’un code en tournant des roues dentées activant une série de
3 rotors créant une grande quantité de combinaison (26^3=17536 alphabets de substitution
garantissant une non répétition pour des messages inférieurs à 17536 caractères). En appuyant sur une
lettre du clavier, on ferme alors un circuit électrique qui allume une ampoule qui désigne la lettre
chiffrée correspondante. Le système est réversible pour le déchiffrement : on tape le chiffré avec la
même clé.
Considérée comme inviolable, de nombreux facteurs sont venus affaiblir le chiffre (mauvaise
utilisation des clés et de leur gestion, erreur de manipulation…) et ont facilité sa cryptanalyse par les
alliers, au nombre desquels Alan Türing reste une figure majeure. Travaillant sur la Bombe, machine
électromécanique de 2 mètres sur 3, qui testait les combinaisons d’arrangements possibles, ses travaux
seront aux origines de l’informatique moderne.
25.2 Cryptographie à clé secrète
25.2.1 Principe
L’ensemble des systèmes décrits dans la partie précédente font partie de la catégorie des chiffres à clé
secrète partagée, aussi appelé cryptographie symétrique. La même clé est utilisée de part et d’autre de
la liaison, elle partagée par la source et le destinataire.
clair
clair
clé secrète
Chiffrement
clé secrète
Cryptogramme
Déchiffrement
Canal
Cryptanalyse
336
Section 8 – Sécurité
Les avantages de ces chiffres sont d’être rapides et solides avec une bonne clé. En revanche le partage
de la clé étant obligatoire, on doit disposer d’un second canal fiable pour la communiquer. Les risques
de pertes et de vols sont aussi à considérer, il faudra donc la renouveler souvent.
On propose dans le tableau quelques uns des chiffres les plus utilisés aujourd’hui.
Nom d’algorithmes
DES
DES3
AES
Blowfish
RC4
One-Time-Pad
Data Encryption Standards
Triple DES
Advanceds Encryption Standard
Output feedback
Rivest Cipher 4
Bloc – Dépassé
Bloc – Dépassé
Bloc - Remplace DES officiellement
Bloc – Remplace DES.
Flot – Rapide & simple. Peu sûr.
Chiffre de Vernam. Incassable.
25.2.2 Choix de la clé secrète
Comme évoqué au §24.3.4, le choix d’une clé de chiffrement de n bits est le plus souvent réduit au
choix d’un mot de passe de p caractères. Ces caractères peuvent être alphabétiques (26 minuscules et
26 majuscules) numériques (10 chiffres) ou incluant des signes de ponctuation ( ! - $ #…25 au total).
Il convient de choisir un mot de passe complexe (incluant un jeu de caractères étendus soit 77 au
mieux) n’appartenant à aucun dictionnaire. On indique les complexité équivalente avec les tailles de
clés en bits.
Mot de passe - Jeu
6 caractères – 26 caractères
8 caractères – 26 caractères
6 caractères – 77 caractères
10 caractères – 26 caractères
8 caractères – 77 caractères
10 caractères – 77 caractères
20 caractères – 77 caractères
16 caractères – 256 caractères
Taille de la clé équivalente
28 bits
38 bits
38 bits
47 bits
50 bits
64 bits
128 bits
128 bits
Dans la plupart des algorithmes il est nécessaire de disposer de clés d’au moins 128 bits. On doit donc
disposer d’un algorithme permettant de générer la clé de chiffrement à partir de ce mot de passe ; en
pratique une fonction de hashage pourrait suffire (16.7). Cependant afin d’éviter la construction de
tables de clés hashées à partir des dictionnaires de mots de passe, on renforce le mot de passe par un
salage (17.5).
25.2.3 Modes de chiffrements
Il existe deux modes de chiffrements utilisés par les algorithmes contemporains : le chiffre par bloc et
le chiffre par flot. L’amateur en traitement du signal les confrontera aux codagex correcteurs d’erreurs
respectivement blocs et convolutifs.
Les chiffres par blocs chiffrent des blocs clairs de taille fixe généralement identique à la taille
de la clé (128 ou 256 bits)
Les chiffres par flots chiffrent les octets au fur et à mesure sans contrainte de taille.
Dans le mode blocs, on distingue à nouveau plusieurs approches dont les plus communes sont
détaillées ci dessous :
Mode de chiffres blocs
ecb
Electronic Code Book
cbc
Chaines Block Cipher
cfb
Cipher Feedback
ofb
Output feedback
Non fiable. Rapide
Fiable. Propagation d’erreurs.
Fiable – possibilité chiffre par blocs de 8 bits : assimilable à du
chiffrement par flot. Propagation d’erreurs.
Fiable – similaire à cfb sans propagation d’erreur
337
Section 8 – Sécurité
Dans l’approche ecb, chaque bloc clair est codé par le même bloc de chiffrement : en conséquence
deux blocs clairs identiques produisent deux blocs chiffrés également identiques. Il sera possible de
détecter des motifs répéter, voir d’interchanger ou de modifier ces blocs. En revanche, le calcul peut
être parallélisable et rapide sur l’ensemble des blocs.
AES
clair
chiffré
ecb : 128 bits
aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa
k¡Óz°*pnKES- mG k¡Óz°*pnKES- mG k¡Óz°*pnKES- mG
Blocs clairs
B1
B2
B3
Ck()
Ck()
Ck()
Blocs chiffrés
Ck(B1)
Ck(B2) Ck(B3)
Le mode cbc ou chaîné, est plus efficace puisque qu’il utilise le bloc chiffré précédent pour xoriser
le bloc clair suivant avant son propre chiffrement. Le chiffré augmente en confusion et diffusion au
sens de Shannon. En revanche il y a un risque de propagation d’erreur : une erreur affectant un bloc
reçu se répercutera sur le déchiffrement des blocs suivants. De plus le calcul doit être réalisé bloc par
bloc.
AES
clair
chiffré
cbc : 128 bits
aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa
k¡Óz°*pnKES- mG :}jÜ“z ƒ•±Zmñ Ù :½`hW Š˜. *K $
Blocs clairs
IV: Vecteur
d'initialisation
B1
B2
B3
+
+
+
Ck()
Ck()
Ck()
Blocs chiffrés
Ck(B1) Ck(B2+Ck(B1))
On remarquera que le premier bloc chiffré de l’exemple précédent est identique à celui du mode ecb.
Ceci est naturel mais peut-être génant. Dans ce cas on applique au premier bloc un IV (Vecteur
d’initialisation) choisi de manière aléatoire et transmis avec le message chiffré.
Les deux images ci-dessous sont des cryptogrammes d’une même image bitmap noir et blanc de
256x256 pixels. Elles illustrent les défauts du mode ecb pour chiffrer un message à faible entropie : le
bloc de chiffrement apparaît clairement répété. Celle de gauche exploite le mode ecb et celle de
gauche celui de cbc :
338
Section 8 – Sécurité
Mode ecb – 128 bits
Mode cbc 128 bits
Le mode par flot, ou en continu, utilisé entre autre par l’algorithme RC4, utilise un générateur de
bits pseudo-aléatoire qui viennent xoriser les bits (ou octets) du message clair. Ces algorithmes sont en
générale coûteux et dépendent des conditions d’utilisation du chiffre dans la liaison.
Ak
Bits/octets clairs
Bits/octets chiffrés
+
25.2.4 DES
Suite au travaux d’IBM sur l’algorithme LUCIFER, le DES (Data Encryption Standard) est né dans
les années 1970 et est adopté par les services de renseignement américain (ce qui est toujours un gage
de confiance pour les autres).
DES
Date de naissance
Type
Mode
Taille de bloc
Taille de clé
Survie à une attaque
STATUT
1976
Code bloc
Ecb
64 bits
56 bits (7*8+8 parités)
<24 heures
OBSOLETE
Le codage des blocs repose sur une succession d’opérations qui porte le nom de schéma de Feistel
décrit sur le schéma ci-dessous. Les blocs de 64 bits sont découpés en demi-blocs et chacun subit une
série de plusieurs tours similaires à celui représenté. K’ est une sous-clé dérivée de la clé de
chiffrement et est différente pour chaque tour. F est une fonction assurant une opération non linéaire
de substitution sur le bloc d’entrée. La sortie de cette fonction est xorisée avec le premier demi-bloc.
32 bits
32 bits
48 bits
+
F
339
K': Sous clé
Section 8 – Sécurité
Les faiblesses lièes en particulier à la taille de la clé, ont conduit à l’éléboration d’une version plus
robuste appelée triple DES (DES3), où on enchaîne 3 chiffrements successifs avec des clès
différentes. Il existe différentes approches de cette concaténation non détaillées ici.
DES3 (Triple DES)°
Date de naissance
Type
Mode
Taille de bloc
Taille de clé
Survie à une attaque
STATUT
1998
Code bloc
Ecb – cbc – ofb- cfb
64 bits
112 bits (effectif)
>année
ACCEPTABLE
25.2.5 AES
Suite à un concours international (NIST : National Institute of Standards and Technology),
l’algorihme Rijndael est choisi en 2000 comme nouveau standard remplaçant le DES. Les algorithmes
TwoFish et Serpent, malheureux perdants, sont cependant utilisés.
L’algorithme baptisé depuis AES (Advanced Encryption Standard) abandonne les schémas de Feistel
du DES trop gourmands en ressource au profit de substitutions et transpositions appliquées (et
quelques xor) à des blocs de 128 bits. Le chiffrement repose sur une série de 10, 12 ou 14 tours.
AES °
Date de naissance
Type
Mode
Taille de bloc
Taille de clé
Survie à une attaque
STATUT
2000
Code bloc
Ecb – cbc – ofb- cfb
128 bits
128/192/256 bits
>plusieurs années
CONSEILLÉ
25.3 Cryptographie à clé publique
25.3.1 Principe
Un nouveau système est né des recherches en mathématiques et des nouveaux besoins des protocoles
de communication : la cryptographie à clé publique ou asymétrique. La découverte est attribue à
Diffie et Helman en 1976.
Deux clés sont nécessaires : Une clé publique diffusée largement par un ‘serveur’ ; une clé secrète
conservée uniquement par le ‘serveur’
'client'
"clé" publique
'Serveur'
clair
clair
Chiffrement
clé secrète
Cryptogramme
Canal
340
Déchiffrement
Section 8 – Sécurité
Il est possible d’appliquer les deux scénarios suivants :
Diffuser la clé publique permettra à chacun de vous envoyer un message chiffré que vous
serez le seul à pouvoir déchiffrer : c’est la confidentialité
Diffuser la clé secrète et conserver la clé publique (cadenas) permettra de prouver que tout
paquet chiffré que l’on peut ouvrir avec cette clé secrète vient de vous : c’est
l’authentification ou la signature
Clé de chiffrement
Clé publique
Clé secrète
Clé de déchiffrement
Clé secrète
Clé publique
Objet
Communiquer une information au serveur
Authentifier une information comme issue du serveur
Ce type de chiffre se révèle beaucoup plus lent (facteur 100 à 1000) et coûteux en calculs que les
chiffres symétriques. Par conséquent leur usage se limite à l’initialisation d’un canal chiffré et à
l’échange de clés symétriques de manière à pouvoir ensuite utiliser un algorithme type AES.
Nom d’algorithmes
RSA
Diffie-Hellman
El Gamal
Rivest Shamir Aldermann
Inventeurs du chiffre asymétrique
Courant.
25.3.2 Choix de la clé publique
Les clés utilisées dans les algorithmes à clés publiques ne sont plus des nombres aléatoires, mais des
valeurs choisies judicieusement selon certains critères propres à l’algorithme. En particulier on fait un
usage important de nombres premiers (cas du RSA), fondant la sécurité sur la dissymétrie entre la
facilité de multiplier deux grands nombres premiers entre eux, et la difficulté de retrouver ces
diviseurs à partir du produit.
D’autres approches (Diffie-Hellman) utilisent les courbes elliptiques pour arriver au même objectif.
En général la taille des clefs publics dans le cas de RAS est recommandée à 2048 bits voir 4096 pour
une sécurité équivalente à 128 bits en chiffre symétrique. On rappelle que plus la clef est longue plus
il faut du temps pour la générer.
On estime que la capacité de factorisation des clés utilisées par RSA impose de doubler les tailles tous
les dix ans environ. Ces prédictions n’ont bien sûr aucune valeur, il est impossible d’estimer les
découvertes qui seront faites dans les prochaines années.
25.3.3 Signature Numérique
Les protocoles de signature numériques ont pour objet de fournir le moyen au destinataire de vérifier
l’authenticité du message, et son celle de son auteur. Il existe plusieurs protocoles, le protocole
expliqué ici est à la fois valide et rapide. Il repose sur la distribution d’une clé de déchiffrement public
et l’usage de fonction de hashage.
341
Section 8 – Sécurité
"clé" publique
destinataire
Diffusion
"clé" secrète
Contrôle
Auteur
clair
Hash
clair
Message signé
Hash
clair
Signature
1.
2.
3.
4.
5.
L’auteur du message va le hasher et chiffrer ce message avec sa clé secrète : ce sera la signature.
Il envoie le message et sa signature,
Le destinataire recalcule le hash à partir du clair,
Il déchiffre la signature avec la clé diffusé par l’auteur et seule capable de le déchiffrer
Il compare le hash ainsi déchiffré avec celui recalculer, s’ils sont identiques cela garantit que la
clé est bonne (auteur authentifier) et que le message n’a pas été modifié (intégrité)
DSA pour Digital Signature Algorithm est une alternative à RSA dans le cadre de l’authentification de
document. Comme RSA, il repose sur l’arithmétique des nombres premiers.
25.3.4 PKI – Public Key Infrastucture
Une des spécificités des protocoles à clefs publique est la confiance accordée par l’utilisateur à ces
fameuses clés publiques : le cadenas avec le nom « Bob » est-il bien celui de Bob ? En d’autres
termes, comment se protéger d’attaque type MITM (Man In The Middle) ou d’usurpation d’identité ?
La solution apportée à ce problème est la PKI : Public Key Infrastructure.
Pour ce partage en confiance de la clé publique on met en place un organisme tiers de certification de
la clé public qui garantit que cette clé appartient bien au serveur que vous contactez (Bob).
Les formats de certificats respectent classiquement la norme X509.
Organisme certificateur
Inscription
'client'
'Serveur'
Certificat
communique
son certificat
342
Section 8 – Sécurité
25.4 Génération d’aléatoire
25.4.1 Aléa vs chaos
La cryptographie est un des nombreux champs qui manipulent du hasard et pour simplifier, des séries
binaires aléatoires. Les télécommunications (CDMA), la simulation électromagnétique (méthode de
Monte Carlo), le codage de source ou d’erreurs sont également des disciplines évoquées dans les
volumes précédents où le hasard tient une place prépondérante.
La notion d’aléatoire est extrèment délicate. On ne doit pas la confondre avec celle de chaos : le chaos
est un processus de génération où une infime variation non mesurable provoque une dérive des
résultats (effet « papillon »). L’aléatoire est un état qui caractérise le résultat obtenu en réussissant une
série de tests statistiques. On peut donner une série de proposition, et quelques commentaires :
Une série équiprobable de 0 et 1
Le résultat d’un calcul
Un tirage de pièces de monnaies
Mesures quantiques de particules
Un fichier incompressible ou zippé
01010101… respecte cette proposition mais la série n’est
pas aléatoire car on peut prédire avec certitude qu’un 1
succède à un zéro.
Ne fournit jamais un aléatoire non prédictible, mais les
séries peuvent présenter d’excellentes caractéristiques
assimilable à du bruit blanc, et peuvent être reproduite à
l’identique (SPA, séries congruentielles).
On considère que la mesure d’un phénomène physique est
une condition nécessaire, mais la pièce ou le lancer peut
présenter des défauts et le tirage n’est plus équiprobable
Un parfait hasard n’exclue pas de produire de très longues
séries périodiques ou nulles, ce qui est inacceptable pour
certaines applications cryptographiques.
Ce type de données présente également d’excellentes
propriétés de hasard apparent dans la distribution binaire,
mais n’est pas dû au hasard du tout.
On comprend donc qu’un hasard cryptographique doit répondre à certains critères :
Ne pas être compressible (pour éliminer les redondances de toute nature)
Etre de nature chaotique (difficilement reproductible par un tiers)
Eviter les biais cachés (être compressible et pas chaotique contrairement aux apparences).
La compléxité de Kolmogorov permet de qualifier l’organisation d’une information de purement
aléatoire lorsque le plus petit programme informatique permettant de la générer est de longueur au
moins égale à celle de la série considérée (soit la série elle-même). La profondeur de Benett affine le
concept en mesurant le nombre de pas nécessaire à ce programme pour générer une série.
25.4.2 Générateur polynomial
Il a été étudié l’architecture générale des générateurs polynomiaux de séquences pseudo alétatoires
dans le volume consacré à l’étude du signal. Retenons ici à titre d’illustration que pour générer une
séquence pseudo-aléatoire on utilise un registre à décalage contenat un certain nombre de contreréaction et décrivant un polynome de degré n (LSFR – Linear Shift Feedback Register). La longueur
du registre est égale au degré du polynôme n.
Cette séquence est pseudo aléatoire car elle est en réalité périodique : elle se reproduit identique à ellemême au bout d’un certain temps lié à la longueur n du registre à décalage.
Si le registre est initialisé avec tout à 0, alors la sortie sera toujours nulle. A l’inverse on montre que si
au moins un eb 1 est injecté dans l’une des bascules, le registre prendra tous les états possibles sauf
l’état tout à 0. Cette séquence ne sera pas obtenu pour tous les polynômes de degré n, mais seulement
343
Section 8 – Sécurité
pour une certaine classe d’entre eux appelés polynômes primitifs. La longueur de la séquence alors
générée est maximale et vaut 2 − 1 .
n
Si le registre est piloté par une horloge de période T, la durée de la séquence est donc ( 2 n − 1 )T.
Dans le tableau suivant quelques exemples de polynômes primitifs.
Degré n
Polynôme
Longueur séquence
3
4
x3 + x2 + 1
x4 + x3 + 1
x5 + x3 + 1
x5 + x4 + x3 + x2 + 1
x5 + x4 + x3 + x + 1
7
15
5
6
7
8
9
18
x6 + x5 + 1
x7 + x6 + 1
8
x +x7 + x6 +x + 1
x9 + x5 + 1
18
x + x11 + 1
x18 +x16 + x9 +x3 + 1
18
17
16
x + x +x + x15 + x14 + x13 + x12 + x2 + 1
31
63
127
255
511
262145
On appelle graine ou seed la séquence binaire utilisée pour initialiser le registre. La modification de
cette graine aura pour effet de décaler la séquence générée, mais pas de modifier sa nature, c’est à dire
l’ordre de génération de eb.
On propose un exemple simple de registre à décalage (LSFR dans son implémentation de Galois) et le
code source en C permettant de générer la séquence pseudo aléatoire à partir du polynôme
x4 + x3 + 1 :
+
x 4 + x 3 + 0. x 2 + 0. x + 1
polynôme diviseur binaire : 1100=C
#include <stdio.h>
void main()
{
int
i, j;
unsigned long registre=0x0001;//seed=1
unsigned long poly=0x000C; //x^4+x^3+1
int degre=4;
}
for (j=pow(2,degre); j>0; j--) // taille du registre
{
if (registre&1) {
registre=(registre >> 1) ^ poly; //^ou exclusif
printf("1");
} else {
registre>>= 1;
printf("0");
}
}
return;
Ce type d’aleatoire est extrèment intéressant, voir de bonne qualité, mais parfaitement reproductible. Il
est à exclure des applications cryptographiques en règle générale. Cependant, avec des valeurs très
élevés de n, le seed peut jouer le rôle de clé secrète, ce qui est le cas de la version chiffrée du GPS.
344
Section 8 – Sécurité
25.4.3 Générateurs congruentiels
Le mécanisme de génération repose sur le calcul d’éléments d’une suite (xn) et de calcul modulo.
xn +1 ≡ (a . xn + b )[m ]
Les paramètres a, b, m doivent être judicieusement (b et m premiers entre autre) pour garantir une
longueur maximale qui n’excèdera pas la valeur de m. La séquence se déroulera jusqu’à retomber sur
la valeur d’initialisation.
a
b
m
106
421
3877
84589
1 664 525
1283
1663
29573
45989
1 013 904 223
6075
7875
139968
217728
232
#include <stdio.h>
void main()
{
int
a=106;
int
b=1283;
int
m=6075;
unsigned long int un=0;
while (1)
{ un=(a*un+b)%m;
printf("%d ", un);
if (un==0) {break;}
}
return;
}
Leur comportement aléatoire est bon, mais ils ont été cassés et ont démontré nombre de faiblesses qui
les rendent inutilisables en cryptographie.
25.4.4 Random
Le besoin d’une source aléatoire en programmation pousse parfois le développeur à exploiter une
fonction random() ou tout autre s’y rapportant. Ici encore, l’appel à une fonction numérique est une
erreur pour des besoins cryptographiques. En pratique, le programme générera toujours la même
séquence lors de son lancement. L’éxécution répétée du code suivant vous en convaincra
définitivement
#include <stdio.h>
void main()
{
while (1){
int alea=rand();
printf("%d ", alea);
if (alea==0) {break;}
}
return;
}
On pensera à initialiser la fonction avec un seed différent à chaque éxécution avec par exemple un
usage de l’horloge (time). On ne négligera pas non plus l’usage des fonctions de hashage qui peuvent
augmenter le degré chaotique à partir d’une source pauvre.
Les différents compilateurs (tout langage confondu) utilisent pour ce type de fonction des générateurs
LSFR ou congruentiels décrits dans les paragraphes précédents.
345
Section 8 – Sécurité
25.4.5 Dispositifs physiques
Dans des cas critiques, une source de hasard ‘vrai’ sera utilisée, sous la forme d’un dispositif original
(hashage de photos de webcam…) ou d’une carte PCI, ou un boitier USB, utilisant des modules
quantiques (mesure d’états de photons) et pouvant fournir de l’alea haut-débit.
Détecteur
'0'
50%
Source
Détecteur
'1'
50%
Photon
miroir
semi-transparent
La plupart des sytèmes Unix utilise un fichier spécial (dev/random) : En surveillant régulièrement les
paramètres systèmes arbitraires (CPU, débit réseaux, frappe clavier, mouvement souris) l’OS
‘piochent’ des valeurs a priori alétoires et difficilement reproductibles, puis crée une source
hexadécimale aléatoire et chaotique de qualité satisfaisante pouvant ensuite être utilisée par
l’utilisateur. Certaines applications installent leur propre service (daemon) sur le même principe, en
particulier sur les systèmes Windows.
25.4.6 Applications cryptographiques
Finalement, A quoi peuvent donc servir ces séries aléatoires ? Donnons, dans le domaine de la
cryptographie, quelques exemples non exhaustifs :
Générer des clés pour un chiffre de Vernam
Test de primalité statistique d’un grand nombre
Fuzzing sur des logiciels de recherche de signature (Anti-virus, pare-feu…)
Fichiers de mot de passe pour brute-forcing
Création de faux messages chiffrés
Tests de logiciels de chiffrement (Attaques en cryptanalyse)
Challenge dans les protocoles d’authentification
25.5 Cryptographie Quantique
25.5.1 Propriétés quantiques des photons
Les photons sont des particules élémentaires dont les propriétés sont ‘étranges’, c’est à dire qu’elles
obéissent aux lois de la physique quantique. Ces photons sont en effet polarisés selon un axe
quelconque. Si on décide d’intercepter ce photon avec un filtre lui-même polarisé, selon l’orientation
de ce filtre, le photon aura plus ou moins de chance de traverser : avec une polarisation croisée à 45°,
sa chance est de 50%.
Si une source transmet des photons polarisés de manière identique, il est impossible de prévoir si tel
photon passera ou non avec un filtre à 45°. Il est également impossible pour le récepteur de savoir a
priori quelle est la polarisation du photon sans en faire une mesure.
Les 3 cas ci-dessous résument les mesures possibles pour le récepteur.
346
Section 8 – Sécurité
Source
Source
Source
Détect eur
Photon
Dét ecteur
50%
Phot on
Filt re polarisé à 45°
Dét ect eur
100%
Phot on
Filtre polarisé à 0°
0%
Filtre polarisé à 90°
25.5.2 Distribution de clé
Ces propriétés vont être exploitées pour transmettre une clé binaire aléatoire. Cette clé n’est pas
décidée par l’émetteur mais sera mesurée au cours d’une transmission de photons : on parle de
protocole de distribution de clé quantique.
polarisation et codage
0°
45°
135°
90°
bit '0'
bit '1'
Mode 0
Bit ‘0’ =0°
Bit ‘1’ =90°
Bit ‘0’ =45°
Bit ‘1’ =135°
Mode 1
L’émetteur note la polarisation de chacun des bits émis de manière aléatoire. Cette séquence est
estimée par le récepteur avec un filtre polarisé au hasard à 0° ou 45°. Le récepteur aura donc une
vision partielle de ce qui a été émis : certains photons détectés et d’autres pas selon la polarisation du
filtre.
Mode 0
Bit ‘0’ =0°
Mode 1
Bit ‘1’ =90°
°
Bit ‘0’ =45°
Polarisation
récepteur
0°
45°
0°
45°
0°
45°
0°
45°
Bit ‘1’ =135
Détection
Estimation
100%
50%
0%
50%
50%
100%
50%
0%
0
?
1
?
?
0
?
1
Le récepteur transmet par voie radio ou filaire la nature de sa séquence de filtres polarisés, sans
donner les valeurs estimées. L’émetteur jugera alors lesquels des résultats sont corrects (0% ou 100%)
et lui signalera quelles estimations il doit retenir, ce qui constituera la clé de chiffrement secrète et
partagée.
Source
Séquence polarisée
Détecteur
Série de filtres utilisés
N° des bits à retenir
25.5.3 Propriétés de la cryptographie quantique
Ce procédé de distribution est plutôt élaboré, mais il garantit deux choses fondamentales
Le partage de la clé se fait sans qu’elle soit communiquée en claire sur le canal
347
Section 8 – Sécurité
Si un intercepteur interrompt le photon transmis, il ne peut le ré émettre avec certitude ne
connaissant pas forcément sa polarisation d’origine, et son écoute sera au final détectée par la
source au moment de la validation de la série de filtre du détecteur
Aujourd’hui, la cryptographie quantique est opérationnelle, mais ses applications concrètes posent des
problèmes techniques qui rendent les interceptions malgré tout possibles (Contrôle du nombre de
photon émis ou reçu, saturation des détecteurs…)
25.6 Authentification
25.6.1 Choix du mot de passe
Le choix d’un bon mot de passe, ou le durcissement d’un mot de passe doit respecter des critères
objectifs et subjectifs. Le mot de passe doit respecter des règles qui permettront tout risque d’attaque
par dictionnaire (§24.3.4), brute force ou intelligence social
Le mot de passe doit être long de plus de 10 caractères (cf §25.2.2)
Il doit être composé de miniscules, majuscules, chiffre et signe de ponctuation
Il doit avoir une apparence aléatoire
Il faut le changer régulièrement
Du point de vue subjectif, les choix doivent éviter tout élément personnel trop direct : date, numéro de
plaque, codes postaux, nom propre, terme spécifique en lien avec une passion personnelle... Ces
conditions doivent néanmoins être compatibles avec un stockage sûr, c’est à dire résident dans le
cerveau uniquement : toute trace écrite est une vulnérabilité qu’il faut absolument éviter. Enfin, le
choix d’un mot de passe unique pour l’ensemble de ses comptes est une très mauvaise idée, la
compromission d’un seul d’entre eux compromettant tous les autres. On conseille en outre d’éviter les
logiciels pour générer ou stocker les mots de passe, sans un contrôle sérieux.
Une méthode classique est d’établir une phrase personnelle simple à retenir, à laquelle on applique
une série de transformation pour obtenir un résultat apparemment aléatoire. Chaque technique doit
être personnelle et secrète pour être résistante à une attaque exhaustive.
Phrase
Transformation
Résultat
Un bon de passe pas facile à trouver.
Initial et nombre de lettre
U2b3d2p5p3f6a1t7.
25.6.2 Salage et stockage
Un mot de passe bien choisi doit être conservé, d’une manière ou d’une autre, des deux côtés de la
liaison, et en particulier sur les serveurs. Il existe 3 approches dont la dernière est la seule qui soit à
retenir :
Stockage du mot de passe en clair
Stockage du mot de passe hashé
Stockage du mot de passe salé puis hashé.
En effet, dans le premier cas il est évident que le mot de passe peut être volé. Dans le second cas,
même si le mot est caché par le hashage, il peut être facile à casser pour les mots connus qui
donneront toujours des hashs connus, ou pour identifier deux comptes utilisant le même mot de passe.
Le Troisième cas illustré ici permet d’éliminer tous ces risques. Attention cependant, un salage
(Salted) n’allonge pas le mot de passe et n’augmente pas la durée d’une attaque par dictionnaire ou
autre, il garantit seulement qu’il faudra une attaque sur le hash salé.
348
Section 8 – Sécurité
Stockage
piment/sel
Mot chiffré
Mot de passe
HASH
Mot chiffré
Le sel (ou seed) est choisi par le processus d’enregistrement de mot de passe utilisant un générateur
pseudo-aléatoire et de manière transparente pour l’utilisateur. Mais il peut aussi être choisi par
l’utilisateur lui-même au moment de la déclaration.
Prenons l’exemple concret de la majorité des systèmes Linux. Pour authentifier un utilisateur, Linux
utilise deux fichiers /etc/passwd et /etc/shadow. Cette distinction permet une meilleure sécurité,
en particulier en ce qui concerne l’accès par des applications aux comptes des utilisateurs.
/etc/passwd contient les logins et identifiants du compte:
login:pwd:iduser:idgroup:commentaire:homedirectory:shell
alice:x:501:501:alice:/home/alice:/bin/bash
/etc/shadow : le champ pwd du fichier précédent contient x ou * ce qui renvoie pour
l’authentification au second fichier /etc/shadow qui contient les empreintes salées des mots de
passe : historiquement la fonction crypt (DES3) était utilisée, puis remplacée par MD5signalé par $1$
en début de chaîne, puis sha256 signalé par $5$ et sha512 par $6$.
login:hash:[dates concernant la validité du mot de passe]
alice:$1$Uh6jxbTa$DKv5LKdKGEfJAJGFU3qQh/:14636:0:99999:7:::
Alice
$1$
Uh6jxbTa
DKv5LKdKGEfJAJGFU3qQh/
14636
0
99999
7
Login
Format Hash md5
Seed
Hash
Dernier changement du mot de passe
Minimum de jour valide
Maximum de jour valide
Délai en jour d’avertissement de la limite de validité
25.6.3 Protocole d’authentification
Une situation courante est de pouvoir s’authentifier à travers un réseau sur lequel des interceptions
sont possibles. Il est hors de question d’envoyer son mot de passe en clair. Un autre risque est
l’attaque par rejeux, si la réponse envoyée par le client voulant s’authentifier est toujours la même
(c’est le cas d’un mot de passe hashé simple). On peut donc envisager deux situations
L’usage d’un protocole à clé publique
L’usage d’un protocole d’authentification par challenge
L’intérêt du protocole par challenge – réponse est qu’à aucun moment le mot de passe n’est connu du
serveur qui ne dispose que du hashé salé. On parle en cryptographie de preuves par divulgation nulle
de connaissance.
L’empreinte du mot de passe est stockée dans le serveur. Voici la procédure pas à pas :
1. Le serveur tire un nombre au hasard (alea ou challenge)
2. Il l’envoie au client (avec le seed si nécessaire)
3. Le client calcule le hash [alea$seed$motdepasse]
4. L’empreinte obtenue est envoyée au serveur
5. Le serveur effectue la même opération que le client en local
349
Section 8 – Sécurité
6. Le serveur contrôle que la réponse du client est identique à la sienne. L’authentification est
valide
En cas de nouvelle authentification, le challenge sera différent, d’où impossibilité de rejeux et
difficulté à brute forcer, …
aléa
'Serveur'
'client'
mot de passe
aléa
aléa
Canal
Hash
mot de passe
?
=
Empreinte
Hash
Authentification
25.7 Cryptographie Appliquée
25.7.1 Openssl
Openssl est une librairie offrant de très nombreuses fonctionnalités de cryptographie. Cet outil est
disponible sur les plates-formes Linux en ligne de commande, ou sous Windows (cygwin). Il est
proposé ici à titre d’exemple applicatif des concepts évoqués dans cette partie.
On propose ci dessous la liste des fonctions cryptographiques proposées par openssl :
Standard commands
asn1parse
ca
dgst
dh
ec
ecparam
gendh
gendsa
passwd
pkcs12
rand
req
s_server
s_time
spkac
verify
ciphers
dhparam
enc
genrsa
pkcs7
rsa
sess_id
version
crl
dsa
engine
nseq
pkcs8
rsautl
smime
x509
crl2pkcs7
dsaparam
errstr
ocsp
prime
s_client
speed
Message Digest commands (see the `dgst' command for more details)
md2
md4
md5
rmd160
sha
sha1
Cipher commands (see the `enc' command for more details)
aes-128-cbc
aes-128-ecb
aes-192-cbc
aes-192-ecb
aes-256-ecb
base64
bf
bf-cbc
bf-ecb
bf-ofb
cast
cast-cbc
cast5-cfb
cast5-ecb
cast5-ofb
des
des-cfb
des-ecb
des-ede
des-ede-cbc
des-ede-ofb
des-ede3
des-ede3-cbc
des-ede3-cfb
des-ofb
des3
desx
rc2
rc2-64-cbc
rc2-cbc
rc2-cfb
rc2-ecb
rc4
rc4-40
aes-256-cbc
bf-cfb
cast5-cbc
des-cbc
des-ede-cfb
des-ede3-ofb
rc2-40-cbc
rc2-ofb
25.7.2 Format des cryptogrammes openssl
Les fichiers générés par openssl respectent un format standard, décrit dans le tableau ci-dessous. N
correspond à la taille du bloc, soit en général 128 bits ou 256 bits.
Chaîne
Salted__
Signature openssl
350
Longueur
8 octets
Section 8 – Sécurité
BBBBBBBB
Seed passer par le paramètre 8 octets
–S 4242424242424242
corps message chiffré
N*(nbits/8) octets
En queue-métadonnées
16/32 octets
[N blocs de taille n bits]
[ ]
Voici l’exemple d’en-tête d’un fichier chiffré par openssl :
0000:
0001:
0002:
0003:
0004:
53
ff
bf
f5
fe
61
f2
dd
98
a2
6c
e3
46
f8
e4
74
d4
a2
dc
24
65
1f
d4
64
18
64
6e
cc
88
d2
5f
e4
e9
bd
e7
5f
72
9a
cb
60
7a
27
90
b7
6d
fc
99
92
c4
9c
df
89
95
79
f6
06
27
58
5c
d1
78
0b
43
6f
8c
6a
74
8b
69
6c
25
90
9e
bc
9d
46
59
4e
ff
3b
Salted__
‗ÒÈ▼nõr
┐¦FóÈ╠ÚÜ
§ÿ°▄dê¢╦
■óõ$↑Êþ`
z³▀♠xj%F
'Öë'♂tÉY
ÉÆòXCï×N
À─y\oi╝
m£÷ÐîlØ;
L’algorithme de dérivation de clés est le suivant : le sel ‘salt’et le mot de pass ‘password’ sont utilisés
pour générer la clé et l’IV par la concaténation de hashs md5 :
D1=md5(passwordsalt)
D2=md5(D1passwordsalt)
(key, IV)=D1D2 (selon le besoin de longueur pour la clé et le vecteur)
Pour une clé de 128 bits, key=D1 et IV utilise les premiers octets de D2. si une clé plus longue est
souhaitée (256 bits), on chaîne avec
D3=md5(D3passwordsalt)
25.7.3 Commandes pratiques
Calcul en base64 : codage chaine ou fichier puis décodage
$ echo chaine | openssl enc -a
$ openssl enc -a -in file > file.b64
$ openssl enc -d -a -in file.b64
fonction crypt (DES) pour le stockage des mots de passe avec le salage
$ openssl passwd -salt VU test
VUmaegY1g8q4I
Fonction md5 pour le calcul d’empreinte de fichier
$ openssl md5 "md5.txt"
MD5(md5.txt)= fae8dd6f6c6fa0ad812b6de2ce77a823
Chiffrement aes 128 bits en mode cbc d’un fichier avec un seed et un IV nuls.
$ openssl enc -aes-128-cbc -S 0 –iv 0-in clair -out cryp
enter aes-128-cbc encryption password:
Verifying - enter aes-128-cbc encryption password:
Et le déchiffrement (-d)
$ openssl enc -aes-128-cbc -d -in cryp -out decryp
enter aes-128-cbc decryption password:
Passage d’un seed en paramètres Hexadécimal
$ openssl enc -aes-128-cbc -S AAAAAAAAAAAAAAAA -in clair -out cryp
enter aes-128-cbc encryption password:
Verifying - enter aes-128-cbc encryption password:
On peut passer le mot de passe #### en argument
$ openssl enc -aes-128-cbc -d -in cryp -out decryp -k ####
$ openssl enc -aes-128-cbc -d -in cryp -out decryp -pass pass:"####"
351
Section 8 – Sécurité
352
Annexes
Annexe A : Tableau ASCII étendu
Déc Hex Char
Déc Hex Char
Déc Hex Char
Déc Hex Char
Déc Hex Char
Hex Binaire
0
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
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
☺
☻
♥
♦
♣
♠
♂
♀
♫
☼
►
◄
↕
‼
¶
§
▬
↨
↑
↓
→
←
∟
↔
▲
▼
space
!
"
#
$
%
&
'
(
)
*
+
,
.
/
0
1
2
3
4
5
6
37
38
39
3A
3B
3C
3D
3E
3F
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F
60
61
62
63
64
65
66
67
68
69
6A
6B
6C
6D
6E
7
8
9
:
;
<
=
>
?
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
6F
70
71
72
73
74
75
76
77
78
79
7A
7B
7C
7D
7E
7F
80
81
82
83
84
85
86
87
88
89
8A
8B
8C
8D
8E
8F
90
91
92
93
94
95
96
97
98
99
9A
9B
9C
9D
9E
9F
A0
A1
A2
A3
A4
A5
A6
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
⌂
Ç
ü
é
â
ä
à
å
ç
ê
ë
è
ï
î
ì
Ä
Å
É
æ
Æ
ô
ö
ò
û
ù
ÿ
Ö
Ü
ø
£
Ø
×
ƒ
á
í
ó
ú
ñ
Ñ
ª
353
A7
A8
A9
AA
AB
AC
AD
AE
AF
B0
B1
B2
B3
B4
B5
B6
B7
B8
B9
BA
BB
BC
BD
BE
BF
C0
C1
C2
C3
C4
C5
C6
C7
C8
C9
CA
CB
CC
CD
CE
CF
D0
D1
D2
D3
D4
D5
D6
D7
D8
D9
DA
DB
DC
DD
º
¿
®
¬
½
¼
¡
«
»
░
▒
▓
│
┤
Á
Â
À
©
╣
║
╗
╝
¢
¥
┐
└
┴
┬
├
─
┼
ã
Ã
╚
╔
╩
╦
╠
═
╬
¤
ð
Ð
Ê
Ë
È
ı
Í
Î
Ï
┘
┌
█
▄
¦
DE
DF
E0
E1
E2
E3
E4
E5
E6
E7
E8
E9
EA
EB
EC
ED
EE
EF
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
FA
FB
FC
FD
FE
FF
Ì
▀
Ó
ß
Ô
Ò
õ
Õ
µ
þ
Þ
Ú
Û
Ù
ý
Ý
‾
´
±
‗
¾
¶
§
÷
¸
°
¨
—
¹
³
²
■
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Annexes
Annexe B : ANSI- ISO 8859-15
Déc Hex
00
0
01
1
02
2
03
3
04
4
05
5
06
6
07
7
08
8
09
9
0A
10
0B
11
0C
12
0D
13
0E
14
0F
15
10
16
11
17
12
18
13
19
14
20
15
21
16
22
17
23
18
24
19
25
1A
26
1B
27
1C
28
1D
29
1E
30
1F
31
20
32
21
33
22
34
23
35
24
36
25
37
26
38
27
39
28
40
29
41
2A
42
2B
43
2C
44
2D
45
2E
46
2F
47
30
48
31
49
32
50
[tab]
[]
[return]
[Space]
!
“
#
$
%
&
'
(
)
*
+
,
.
/
0
1
2
Déc
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
Hex
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F
60
61
62
63
64
65
3
4
5
6
7
8
9
:
;
<
=
>
?
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
`
a
b
c
d
e
Déc
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
Hex
66
67
68
69
6A
6B
6C
6D
6E
6F
70
71
72
73
74
75
76
77
78
79
7A
7B
7C
7D
7E
7F
80
81
82
83
84
85
86
87
88
89
8A
8B
8C
8D
8E
8F
90
91
92
93
94
95
96
97
98
354
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
Déc
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
Hex
99
9A
9B
9C
9D
9E
9F
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
AA
AB
AC
AD
AE
AF
B0
B1
B2
B3
B4
B5
B6
B7
B8
B9
BA
BB
BC
BD
BE
BF
C0
C1
C2
C3
C4
C5
C6
C7
C8
C9
CA
CB
¡
¢
£
€
¥
Š
§
š
©
ª
«
¬
®
‾
°
±
²
³
Ž
µ
¶
·
ž
¹
º
»
Œ
œ
Ÿ
¿
À
Á
Â
Ã
Ä
Å
Æ
Ç
È
É
Ê
Ë
Déc
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
Hex
CC
CD
CE
CF
D0
D1
D2
D3
D4
D5
D6
D7
D8
D9
DA
DB
DC
DD
DE
DF
E0
E1
E2
E3
E4
E5
E6
E7
E8
E9
EA
EB
EC
ED
EE
EF
F0
F1
F2
F3
F4
F5
F6
F7
F8
F9
FA
FB
FC
FD
FE
FF
Ì
Í
Î
Ï
Ð
Ñ
Ò
Ó
Ô
Õ
Ö
×
Ø
Ù
Ú
Û
Ü
Ý
Þ
ß
à
á
â
ã
ä
å
æ
ç
è
é
ê
ë
ì
í
î
ï
ð
ñ
ò
ó
ô
õ
ö
÷
ø
ù
ú
û
ü
ý
þ
ÿ
Annexes
Annexe C : OS : Command Line Utilities
Commande Réseaux
OS
ipconfig
W
winipcfg
ifconfig
ping
W9x
uX
Extension
Objectif
Fournit la configuration de base de la station
Donne des infos supplémentaires
/all
arp
Traceroute
Tracert
uX
W
route
W
uX
netstat
nbtstat
/all
[adresse IP]
-t
-f –l 1490
-a
-g
-a [adr IP]
-s
-d [adr IP]
comme précédemment sous Windows 9x
comme précédemment
Teste la connectivité entre deux équipements
Test continu
Test fragmentation d’une trame de 1490 octets
Visualisation du cache ARP
idem
idem pour la machine identifiée
Créer manuellement une association IP/MAC
Enlever la configuration
[adresse IP]
[adresse IP]
Indique la route jusqu’à l’adresse
Idem pour Windows
Print (W)
add
delete
Affiche la table de routage
Ajoute une entrée à la table de routage
Efface une entrée
route add 0.0.0.0 MASK 0.0.0.0 192.35.22.1 #tout router vers 192.35.22.1
route add –net 0.0.0.0 netmask 0.0.0.0 gw 192.35.22.1 eth0
Statistiques sur les protocoles
-s
Triées par protocoles
-e
pour Ethernet
-r ou –rn
table de routage
-a
Connexions actives et état des ports
-n
Connexions actives et établies
-p tcp
Connexions TCP établies
-p udp
Connexions UDP établies
-r
-n
-c
-A[adr
-a[nom
-S[adr
-s[nom
dig
nslookup
net
uX
Hostname
who
last
uX
uX
uX
IP]
NetBIOS]
IP]
NetBIOS]
[nom_dns]
[nom_dns]
view
config
use
Statistiques sur NetBIOS
purge et recharge le cache de noms Net BIOS
nom et services sur la machine locale
cache NetBIOS/IP
Nom et adresse machine indiquée
Nom et adresse machine indiquée
Connexions NetBIOS établies par la machine
Connexions NetBIOS établies par la machine
Fournit les détails des ressources DNS(record)
Réponse des serveurs DNS
Visualise les ressources réseaux partagées
Statistique de l’hôte
Information sur les connexions
Nom de l’hôte local (Linux)
Utilisateurs connectés
Historique des dernières connexions
355
Annexes
Commandes Systèmes OS
pwd
uX
ps
uX
ls
uX
more
uX
cd
mkdir
Extension
Objectif
Où suis-je ?
Liste des processus en cours
-l –a -x
-l [ll]
-a
[filename]
Liste des fichiers et dossiers dans le répertoire
Informations longue
Fichiers cachés
Visualisation texte à l’écran de filename
..
myrep
Changement de répertoire
Remonter d’un niveau
Créer le répertoire myrep
[nom]
Supprimer fichier ou dossier
rm
uX
df
uX
Etat de la fragmentation du disque
whoami
uX
Qui suis-je ?
su
uX
chmod
uX
[username]
abc filename
connecter en tant que root
connecter en tant que username
Affecte les droits abc à Filename
uname
uX
-a
Version du noyau [#n compilation]
lsmod
uX
rmmod
uX
[modname]
Supprime le module modname
modprobe
uX
[modname]
Charge le module modname
mount
uX
/dev/xxx
Monte le périphérique xxx
umount
uX
/dev/xxx
Démonte le périphérique xxx
smbmount
uX
grep
uX
//IP-dest/doc
/loc
[pattern] [File]
Monte le répertoire ‘doc’ de ‘Ip-dest’ dans le répertoire ‘/loc’
(partage de dossiers windows vers linux)
Recherche un motif (chaîne) dans un fichier
locate
uX
[file]
Recherche les instances d'un fichier
jobs
uX
Liste des tâches en cours
bg %n
uX
Tâche n en tache de fond (back ground)
fg %n
uX
Tâche n au premier plan (first ground)
Liste des modules chargées
[ctrl+z]
Stoppe la tâche en cours
[ctrl+c]
Interrompt la tâche en cours
&
uX
Suffixe d’une tâche lancée en fond (bg)
free
uX
Etats des processus
top
uX
>
fo [entrée]
[file]
Gestionnaire de processus
Etat des swap
Redirige une sortie (écran) vers ‘file’
>>
[file]
Redirige et ajoute une sortie (écran) dans ‘file’
<
[file]
Récupère une entrée à partir de ‘file’
| [altgr +6]
uX
Pipe (tube) entre deux processus
356
Annexes
Annexe D : Masques
Extension des masques:
masque
1000 0000
/+1
.128
1100 0000
/+2
.192
1110 0000
/+3
.224
1111 0000
/+4
.240
1111 1000
/+5
.248
1111 1100
/+6
.252
1111 1110
/+7
.254
Combinaisons des masques
masque
0.0.0.0
128.0.0.0
192.0.0.0
224.0.0.0
240.0.0.0
248.0.0.0
252.0.0.0
254.0.0.0
255.0.0.0
255.128.0.0
255.192.0.0
255.224.0.0
255.240.0.0
255.248.0.0
255.252.0.0
255.254.0.0
255.255.0.0
255.255.128.0
255.255.192.0
255.255.224.0
255.255.240.0
255.255.248.0
255.255.252.0
255.255.254.0
255.255.255.0
255.255.255.128
255.255.255.192
255.255.255.224
255.255.255.240
255.255.255.248
255.255.255.252
255.255.255.254
255.255.255.255
357
/.
/0
/1
/2
/3
/4
/5
/6
/7
/8 [Classe A]
/9
/10
/11
/12
/13
/14
/15
/16 [Classe B]
/17
/18
/19
/20
/21
/22
/23
/24 [Classe C]
/25
/26
/27
/28
/29
/30
/31
/32
2
2
3
3
1
1
IEEE 802.5
R ad io
Fib re
Cu ivre
Me diu m
Access
Con tro l
MAC
Lo gica l
Link
Con tro l
LLC
I nter net Contr ol
secur e
AH E S P
I Psec
22
IEEE 802.6
4
4
80 21
Se c ure
She ll
BGP
IP v6
10Base5
UTP
STP
SFTP
1000BaseT
100baseFX
1000b aseSX
1000b aseLX
1000b aseZX
BaseF
T4 - 4 p aires
TX - 2 p aires
M ulti Pr otocol
Ov er ATM
LLC
SAR
ATM
FDDI
Physical medium
PMD
Routage
SONET/SDH
STM-4 622Mbit/s
STM-1c 155Mbit/s
Tra nsmission Convergen ce
TC
Asynchronous Transfer Mode
Se gm en ta tio n
And Re asse m bly
LANE
802.5
LAN Emulati on
802.3
AAL1 AAL2 AAL3/4 AAL5
MP O A
802.n
SNAP
Co nv erg e nc e
Su blay e r
PDH T3
p pp
EIGRP
Enhanced Interior Gateway
Routing Protocol
ATM
EGP
CS
68
User Data Protocol
Exterior Gateway
Protocol
pp p over Eth ernet
DHCP
Dy n amic H ost
Con figuration
P rotocol
UDP
139 137/138
O SP F
RSVP SAP SDP
NetBIOS
NetBEUI
Ope n Shortest
P ath First
Ethernet
100BaseT
SI P
SD
VOIP
PP P oE
AR P R AR P
Adress
Reverse
Resolution
ARP
Protocol
Inter net Contr ol
M essage
Pr otocol
10BaseT
Coaxial - fila ir e - Fibre
10 - 100 - 1000Mbits/s
10Base2
Radio 2,45G H z
11-22-54 Mbits/s
WiFi
H.261
H.263
V IDEO
RTP/RTCP
Trace
Route
I CMP
Ping
T.120
LAN/MAN
Radio 11G H z
70 Mbits/s
WiMax
IEEE 802.16 IEEE 802.11 IEEE 802.3
IEEE 802.2 - LLC
Sub Network Access Protocol
SNAP
Cisco Discovery P rotocol
CDP
Internet Protocol
IP
H.224
H.225
Co ntr ôle
01h
179
v4/v6
In ternet Con trol
V6 encapsu lé
H.323
Bord er G atewa y
Pr otocol
D om ain
N am e
Serv er
110 53
po st O ffic e
pro toc ol
TCP
25
Sim ple Mail
Tra nsfe r
Pro toc ol
Transmission Control Protocol
23
Tu nn e l
F ile
Tr ansfer
Pr oto c o l
Tr an spo rt
31h
Tok en rin g
06h
SIP
59h
H ype r Te xt
Tra nsfe r
Pro to c o l
32h
DQDB
Dual Queue Dual Bus
11h
G.71 1
G.72 2
G.72 3
G.72 8
G.72 9
08h
VOIX
58h
HTTP FTP SSH telnet SMTP POP DNS
0800
Routage
Applications
Applications
(c) 2011 - Télécom & r éseaux - Pléneuf
0806
29h
coaxial
0835
358
p aire
OSPF
Bluetooth
PPP
NCP
(N )-PCI
(N +1)-PCI
HDLC
X21
High Level Data Link
Control
LAP-B
X25
Se rvic e
Ac c ess
P oint
SAP
S0 : 2*64kbit/s
S2 : 2,048Mbit/s
Réseau Numérique à
Intégration de Service
RNIS
Link Access
Protocol
LAP-D
RNIS
(N)-SDU
(N +1 )-PD U
(N+1)-SDU
Ro uteur
ETCD
1 - Physique
2 - Liaison
3 - Réseau
(N )-PD U
protocole
X25
COU CHE N
COUCHE N+1
Hôte
ETTD
1 -Physique
Frame
Relay
Bit
Tra m e 2 -Liaison
WAN
RTC
Réseau téléphonique
Commuté
4 -Tr anspor t
5 - Session
6 -Présentation
7 -A pplic at ion
Interface
Modèle OSI
Pile OSI
P aq ue t 3 -R éseau
Messa ge
xDSL
SLIP
Serial Line IP
Network Control
Protocol
V.34/V90
Point to point Protocol
MLP P P
Link Control
Protocol
LCP
CHAP
Control Handshake
Authentification
Protocole
PAP
87
Password
Authentification
Protocole
520
Routing Internet
Pr otoco l
R IP
Open Sho rtest
Path Fir st
0021h
Ori e nté se rvi ce
Ori e nté r é se a u
de tr a nsmi ssi on
TCP/IP
Annexes
Annexe E : Pile OSI
Annexes
Annexe F : En-têtes Classiques
MAC
C hamp longueur
<1500 LLC
>1500 Etherty pe
A dresse M ac S ource
A dresse M ac Destination
MD MD MD MD MD MD MS MS MS MS MS MS LG LG
ARP
Hardware
Address
Lenght
Protocol type
Target
Hardware
Address
Protocole
Address
Lenght
Opcode :
1=REQUEST
2=RESPLY
Sender
Hardware
Address
Hardware Type
E TH ERTYP E=A RP
ff ff ff ff ff ff MS MS MS MS MS MS 08 06 00 01
08 00 06 04 00 01 00 18 f3 d8 c8 ca c2 c7 8e 13
00 00 00 00 00 00 c2 c7 8e 11
Sender
Protocol
Address
Target
Protocol
Address
IP
Header
Version Lenght (*4)
ETHE RTYPE =IP
Total
Lenght
MD MD MD MD MD MD MS MS MS MS MS MS 08 00 45 00 TOS
00 3c 06 76 00 00 80 PP 92 97 c2 c7 8e 13 c2 c7
Header
Source IP adress
8e 11 Identification
Destination IP adress
TTL Protocol
Checksum
DF MF
Fragmentation
Offset
0000 0000 0000 0000
ICMP
Type
MD
00
8e
67
77
MD
3c
11
68
61
Code
MD
06
08
69
62
Checksum Identifier
MD
76
00
6a
63
MD
00
4a
6b
64
MD
00
5c
6c
65
UDP
Sequence N umber
Protocol: ICMP
MS
80
02
6d
66
MS
01
00
6e
67
MS
92
01
6f
68
MS
97
00
70
69
MS
c2
61
71
E THE RTYP E =IP
MS
c7
62
72
08
8e
63
73
00
13
64
74
45
c2
65
75
00
c7
66
76
Payload
Protocol: UDP
E THE RTYPE =IP
MD MD MD MD MD MD MS MS MS MS MS MS 08 00 45 00
00 3c 06 3f 00 00 80 11 dc b5 c2 c7 8e 13 c3 dd
43 04 04 01 00 35 00 28 39 a0 a0 [ .../...]
Source Port D estination Port UDP lenght
Checksum
Payload
TCP
Protocol: TCP
Source Port Destination Port Sequence Number
Window
MD
00
fa
ff
04
MD
34
0e
ff
02
MD
06
04
c3
MD
40
08
4b
MD
40
00
00
MD
00
50
00
MS
80
e6
02
MS
06
98
04
Acknowledgment N umber
MS
50
1d
05
MS
db
2f
b4
MS
c2
00
01
MS
c7
00
03
08
8e
00
03
00
13
00
04
Chec ksum Urgent Pointer
Header Lenght (*4)
45
58
80
01
00
bf
02
01 Lenght/>Flags
U A
R C
G K
P R
S S
H T
S F
Y I
N N
1000 0000 0000 0010
359
post Office Internet Me ssa ge
protocol
Access Protocol
TCP 23
telnet
> ssh @IP -l user > telnet @IP port
TCP 22
Se cure
She ll
SSH
*éch an g es en clair
*Aut h ent ificat ion clair e
Administration
telnet @IP 110
USER name
PASS name
LIST
RETR n
QUIT
*Aut h ent ificat ion
p ar ch iffr emen t à clé p u blic
*Chiffr emmen t d es éch an g es
*P or t tu n n elin g
>
>
>
>
>
>
ACK=y+1
ACK=y+1+Q
Seq=x+P+1
F IN AC K
P or t S ou r ce
P ort
: a d est in ation : b
Seq=x+P+1
ACK=y+1+Q
P or t S ou rce :Paort d est in ation : b
P data
P or t Sou r ce : aP or t d est in at ion : b
Se q = x + 1
Mo d e co nn e cté
Seq=x+1
P or t d est in at ion : b
P or t S ou r ce : a
S YN
P or t d estin at ion : b
P ort S ou rce : a
Seq=x
SYN
AC K=x+1
ACK=x+1 +P
FIN
Por t Sou r ce P
: bo rt d e stin at io n : a
S eq=y+1 +Q
AC K
AC K=x+1 +P
S eq =y+1 +Q
P ort S ou rce P
: bor t d e st in a t io n : a
Q d at a
S eq =y+1
P or t S ou rce P
: bor t d estinat ion : a
Seq=y
P ort S ou rce : b
P ort d est in at ion : a
Service : b
SER VEUR
Connexion TCP
Clô tu r e
2
M TA
serveur smtp
POP IMAP IMAP
SSL
Em et te ur
SMTP
3
TCP 25 TCP 110 TCP 143 TCP 993
telnet @IP 25
MAIL FROM <me@D>
RCPT TO <dst@D>
DATA
[...]
QUIT
CLIENT
>
>
>
>
>
>
Simple M ail
Transfe r
Protocol
SMTP
MAIL
MUA
age nt mail
DNS
Echanges
4
SMTP
Clients
Serveurs
Réseaux PhysiquesDonnées
360
bout en bout
1
POP
IMAP
G.711
G.722
G.723
G.728
G.729
TCP UDP
1718->1721
H.224T.120
H.225
UDP
S IP
RTP
TCP
TCP U DP
5060 - 5070
SIP
06h
Trivial
File
Transfer
Protocol
IP
NON
NON
NON
NON
OU I
Interne t Protocol
v4/v6
Champs Protocol
NetBIOS
NetBEUI
11h
clie n t
clie nt
139
137/138
C onnec té
Séquenc é
Contrôle de flux
Fia ble
R apide
TCP 179
clie n t
P2P décentralisé
RTC
RN IS
GS M
Bo rde r G a te wa y
Pro to c o l
BGP
Rou t ag e
ext ér ieu r
P2P Ce ntralisé
se rv e u r
Req uête
Récursive
1
serveurde cache
UDP 68
UDP 67
D y na m ic H o st
Co nfigura tio n
Pro to c o l
DHCP
DNS
6
3
5
7
RIP
Ro ut ing Inte rne t
Pro t o co l
1 -Physique
2 -Liaison
3 -Réseau
4 -Transport
5 -Session
6 -Présentation
7 -Application
Pile OSI
UDP 520
U se r Data Protocol
UDP
UDP 87
OSPF
O pen Sho rt e st
Pa t h F irst
Rou t ag e int érieu r
33
44
55
> nslookup nom.tld
> dig nom.tld
> ipconfig /displaydns
routage
adressage
UDP 53
Domain
Name
Server
DNS
DN S
serveur .fr
serveur efep.md.doma ine .fr
4
serveurs de domaines
se rveur racine
D NS
prof.efep.md.domaine.fr
2
DNS
Requête
Itérative
se rveurde domaine
e fep.md.domaine.fr
DDL
@IP serveur
de cache DNS
> ftp @IP
TCP 21
p r o p rié t a ir e f ich ie r
Echa nge direct
P2P
ser v e u r
OUI
OUI
OUI
OU I
NON
A ge nt
S IP
UDP
69
> telnet @IP 80
> GET / HTTP/1.0[CRCR]
TCP 80 TCP 443
HTTPHTTPS T FTP
SSL
Hype r Te xt
Transfer
Protocol
Navigateurs
Authentification
liste partage
Prox y S IP
RSVPSAPSDP
SD
A gent
S IP
Proxy S IP
VOIP
Réseau
Social
Transmission Control Protocol
H.261
H.263
VIDEO
5 6
webmail
RTP/RTCP
64kb/s
>48kb/s
<24kb/s
16kb/s
8kb/s
VOIX
R éc ept eur
5
Conversion page html
Contrôle H.323
Gat ekeeper
H 323
IM
6
serveur smtp
MDA
WEB
(c) 2011 - Dpt Télécom & résea ux - Pléneuf
INTERNET PROTOCOLS CLOUDS - v1.2
Annexes
Annexe G : Services Internet
Annexes
Bibliographie
[1] Claude Servin – Réseaux et Télécoms –
2ème édition – 2006 DUNOD
[2] Andrew Tanenbaum – Réseaux
3ème édition – 1997 InterEditions Paris
[3] Pierre Rolin - Réseaux haut débit
1999 HERMES
[4] Guy Pujolle – Les Réseaux
2ème édition – 1998 Eyrolles
[5] Xavier Lagrange ; Philippe Godlewski ; Sami Tabbane – Réseaux GSM-DCS
1997 HERMES
[6] ] Laurent Ouakil; Guy Pujolle - Téléphonie sur IP
2007 EYROLLES
[7] Bruce Schneier – Cryptographie Appliquée
2ème édition – 2001 VUIBERT
[8] Daniel Bovet ; Mario Cesati – Le Noyau Linux
2001 O’Reilly
[9] Gilles Dubertret – Initiation à la cryptographie
3ème édition – 2002 VUIBERT
[10] Jean-Paul DELAHAYE– Merveilleux nombres premiers
2000 BELIN
[11] Jon Erickson – Techniques de Hacking
2008 PEARSON
Nombreux Articles de la revue MISC – Diamon Editions
www.miscmag.com
361
Annexes
362
Index
BAN
Bascule (mémoire)
BASE64
Batcher-Banyan
BGP
Binhex
Blowfish
BNC
Boot (OS)
BOOTP
Boucle locale
BPDU
Branch prediction
Brassage (ATM)
Brute force
BSS
BTS
Bus
Index
2G, 3G, 4G
6to4
253
127
A
AAL
ABR
Accès de base (RNIS)
Accès primaire (RNIS)
ADGVFX
Adressage IP
Adresse IPv6
Adresse MAC
Adresse Mail
Adresse mémoires
Adresse Particulière (IP)
ADSL
AES
AFNIC
Agrégation de route
AH
Aloha
Anneau
Anneau Z/nZ
Anycast
AP (Wifi)
Application (couche)
Arbre
Architecture
ARP
Arpanet
AS (Autonomous System)
ASCII
Asterisk
Asynchrone (horloge)
Asynchrone (transmission)
ATM
Authenticité
Authentification
Auto négociation Ethernet
238, 241,243
31
219
220
334
107
125
70
177
269
109, 118
221
337, 338
167
143
131
73
15
325
7
82
21
16
3
120
103
135
182
203
42, 229
42
237
315
348
80
C
CAA
Cablage paires torsadées
Câble coaxial
Câbles sous-marins
Canal auxiliaire (attaque)
Canonicalisation
cbc
CBR
ccTLD
CDP
Cellule (ATM)
Cellule (GSM)
Cerificat (PKI)
César (Chiffre)
cfb
Challenge
CHAP
Chiffre à clé publique
Chiffre à clé secrète
Chiffrement
Chipset
CIDR
CISC
Classes d'adresses IP
Clé
Clé publique
Clé secrète
Client IM
Client-serveur
Clouds
Clusters
B
Balise
8
268
183
246
142
184
337
28
310
121
213
94
281
240
319
255
255
14
189
363
215
77
27, 73
2
321
168
337
31
167, 169
71
238
256
342
334
337
349
99
340
336
314
262
112
282
108
315, 318
340
336
188
152, 163
298
292
Index
Commutateurs
Commutation
Commutation (architecture)
Commutation (RTC)
Commutation de circuits
Commutation de paquets
Commutations (Ethernet)
Confidentialité
Connecteurs (Processeur)
Connexion TCP
Contrôle de flux TCP
Cookies
Couche de protocole
Crossbar
Cryptanalyse
Cryptographie quantique
Cryptologie
Cryptosystème
CSMA/CA
CSMA/CD
CV (Canal Virtuel)
80, 90
7
245
214
11
12
89
314
263
158
156
195
18
246
319
346
313
316
83
73, 89
54
Enigma
ESMTP
ESP
Etats de liens
Etats TCP
ETCD
Ethernet II
Etoile
ETTD
F
Facteurs premiers
Fanion
Fast Ethernet
FAT
FCS
Feistel (Schéma)
Fibre Optique
Flag TCP
FLP
Formatage (disque dur)
FQDN
Fragmentation IP
Frame Relay
FTP (File Transfert Protocole)
FTP (Foiled Twisted Pair)
FTTH
D
Datagramme
DB connectique
Débit
Déchiffrement
Décryptrage
DES
Désassemblage (processus)
DHCP
Dictionnaire (attaque)
Diffie-Hellman
Diffserv
Diffusion
Disque dur
Distribution de clés quantique
Division Euclidienne
DNS
DNS (commandes systèmes)
DNS (paquet)
Droits d'accès (Fichiers)
DSL
DTMF
104
38
31
314
314
337, 339
309
121
320
341
206
6
291
347
324
167
173
170
297
223
216
323
45
76
293
46
339
28
158
81
292
168
106
50
210
26
222
G
Gateway
Générateur Congruentiel
Générateur Polynomial
Génération d'aléa
Géolocalisation (GSM)
GGSN
Gigabit Ethernet
GPRS
GSM
115
345
344
343
257
259
79
259
254
H
H.323
Handover
Hardphone
Hash
HDLC
Hiérarchies numériques
HLR
Horloges
Hot-Potatoes
HTML
HTTP
E
E1 (niveau)
ecb
EIGRP
Empreintes
Encapsulation
336
180
131
136
160
34
69, 73
15
34
230
337
141
329
21
364
200
256
203
329
43
228
255
41, 229
58
190
189
Index
Hub
76, 90
Maillage
MAN
Manchester
Masques CIDR
Masques de classes
MAU
MBR
MD5
Mémoire caches (L1-L2-L3)
Mémoires Flash
Messagerie instantanée
Méthodes HTTP
MGCP
MIME
MLP
MMU
MN (UMTS)
Mode connecté
Mode non connecté
Modèle OSI
Modem
Modulo
Mot de passe
MPLS
MPOA
MSC
MSISDN
MTU
Multicast
Multilink
Multiplexage (Flux)
I
IANA
ICANN
ICMP
IDN
IEEE 802
IKE
IMAP
IMEI
IMSI
Incohérence duplex
Inode
Intégrité
Interface de couche
Intserv
IP
Ipsec
IPv6
IRC
ISAKMP
ISO
Itinérance
109
167
119
168
63
132
181
257
257
82
295
315
18
206
103
131
123
186
132
5
256
J
Jabber (Trames)
Jeux d'instructions
Jonction
76
282
35
K
Kerckhoffs (principe)
315
N
NAPT
NAT
NAT (Traversée)
Navigateur
NCP
Netbios
NLP
Node B
Nombres premiers
Normailisation
Normes Sans Fils IEEE
Northbridge
Noyaux (OS)
NRZI
NSS
NTFS
L
L2TP
LAN
LANE
LAPB
LAPD
LAPDm
Latence CAS
LCP
Liaison de données
Linux
LIR
LLC (Sous-couche)
130
8, 65
250
44
44
255
272
99
20, 34
287
109
66, 67
M
MAC (Sous-couche)
Mail Agent
17
8, 65
75
113
111
14
294
330
276
271
186
191
203
185
101
305
260
13, 44
13
19
35
324
319, 348
143
251
255
257
101
7
101
31
66, 68
178
365
161
118
131
194
99
174
81
260
321
4
64
262
286, 288
78
255
294
Index
O
ObsTCP
Ofb
Ondes radios
One Time Pad
OOO
Openssl
Ordonnanceur
OS
OSI
OSPF
OUI (adressage MAC)
R
156
337
29
318, 337
281
350
300, 303
285
5
139
70
RAID
RAM
RAM
RARP
RC4
Records (DNS)
Registre (Mémoire)
Requêtes DNS
Réseau (couche)
Réseaux radios
Ressources DNS
Rijndael
RIP
RIPE
RIR
RISC
RJ45
RNC
RNIS
Roaming (GSM)
Roaming (Wifi)
Routage (principe)
Routage IP
Routages
Routeur
Routeur (niveau 3)
RS232
RSA
RTC
RTCP (RTC)
RTCP (RTP)
RTP
Runt (Trames)
P
P2P
Pagination
Paire torsadée
PAN
PAP
Partionnement disque
Partionnement réseaux
Passerelle (niveau 4)
PDH
PDU
Physique (couche)
Ping
Pipe-Line
PKI
Plésiochrone (horloge)
Polybe (Carré)
POP
POP3
Port
Port Forwarding
Port Mapping
Port Trigerring
Posix
PPP
PPPoE
PPTP
Premiers (liste)
Présentation (couche)
Primitives de services
Processus (exécution)
Protocole
Punycode
7
306
25
8, 65
99
292
114
19
230
21
19, 34
119
279
342
229
335
178
181
153
161
162
162
296
97
100
130
322
21
22
299, 308
18
168
S
S0 (RNIS)
S2 (RNIS)
Salage
Samba
SAP
Scan de port
Schéma de Feistel
SDH
SDU
Seed
Segmentation
Séquencement TCP
Série 100
Serveurs (Gestion)
Q
QoS
QoS (voip)
Qualité de service
298
271
300
121
84, 337
170
269
171
20
228
170
340
136
110
109
282
27
260
217
256
85
57
115
116
115
19
37
341
198
213
205
204
76
150
206
150
366
219
219
348
175
22
212
339
232
21
348
305
159
39
212
Index
Session (couche)
SGSN
Shannon (principe)
Shannon (principe)
Shortener
Signature numérique
SIP
SLD (DNS)
SLIP
SMTP
SNAP
Socket
SONET
Sous-Réseaux
Southbridge
Spanning Tree
SS7
SSH
Stéganographie
STM1
STP (Paire)
STP (protocole)
Substitution
Super-calculateurs
Superscalaire (architecture)
Supports Physiques
Switch
Synchrone (horloge)
Synchrone (transmission)
Systèmes de fichiers
21
259
315
330
193
341
201
169
97
178, 180
248
154, 163
233
111
262
92
198, 217
209
326
233
26, 92
92
316
284
279
25
80, 90
42, 229
42
290
TTL
Tunnel
Tunnel SSH
Türing (Alan)
Types MIME
U
UAL
UBR
UDP
UIT
UMTS
Unité centrale
Unité de contrôle (x86)
Unix
URI
URL
USB
UTF-8
UTP
UUEncode
274
31
162
6
259
261
278
286
192
193
265
183
26
184
V
V24
VBR
Vecteur de distance
Vernam
Vigenère
VL (Voie Logique)
VLAN
VLR
VoIP
Voix
VP/VC (ATM)
VPN
T
Table de routage
TCP
TCP (entête)
TCP Reno
TCP Tahoe
TCPcrypt
Telnet
TFTP
Threading (x86)
Threads
TLD
ToIP
Topologie
Transistor Bipolaire
Transistor MOS
Transparence (bit)
Transport (couche)
Transposition
Trunking
105
130
209
336
185
117
147
157
156
156
156
209
211
280
302
167, 169
199
3, 14
267
267
45
20
317
91
37
31
136
318
335
54
89
255
197
197
240
129
W
WAN
Watermarking
Webmail
Wellknown Port
WEP
Wifi
Wimax
WPA
8
328
179
154
84
30, 82
30, 85
84
X
X25
x86 (architecture)
Xorisation
367
53
274, 281
317

Documents pareils

V. - The Superior Shave

V. - The Superior Shave Hand- und Fußpflegeinstrumente Instruments de manucure et pédicure Instrumentos para manicura y pedicura Strumenti per manicure e pedicure

Plus en détail