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é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 é è ϖ9 &#xH;ou &#XH; xH, XH code hexadécimale du caractère é / é è / è ♥ é è ♥ < < < > > > 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é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
Hand- und Fußpflegeinstrumente
Instruments de manucure et pédicure
Instrumentos para manicura y pedicura
Strumenti per manicure e pedicure