Génie électrique Session S6 APP 3 Semaines 4 et 5 Introduction aux réseaux, aux protocoles et au multiplexage Guide du formateur Solutionnaire du procédural 2 Département de génie électrique et de génie informatique Faculté de génie Université de Sherbrooke Note : En vue d’alléger le texte, le masculin est utilisé pour désigner les femmes et les hommes. Document « S6e_APP3_Guide_du Formateur_Procedural_2.doc » Version 1, avril 2009 Rédigé par Noël Boutin, Wajdi Elleuch et Samuel Richard Tous droits réservés 2009 Département de génie électrique et de génie informatique, Université de Sherbrooke. No.1 (a) Pourquoi est-il utile de mettre un fanion au début et à la fin pour délimiter une trame plutôt que de mettre un seul fanion à la fin, par exemple? Réponse : Lorsque le flux de trames n’est pas régulier, c’est-à-dire lorsque la trame suivante ne se présente pas immédiatement, il faut bien signaler le début de la trame suivante par un fanion, afin que le récepteur puisse se synchroniser et déclencher sa réception. Il est beaucoup plus simple pour implémenter le protocole, d’insérer systématiquement dans chaque trame un fanion de début et un fanion de fin (b) Comment se présente le fanion d’une longueur d’un octet fréquemment utilisé pour des systèmes dans lesquels les trames sont de longueur quelconque? Réponse : 01111110 (c) Lorsque le champ de données utiles à transmettre d’une trame de longueur quelconque comporte une suite de bits similaires à celle des fanions utilisés, qu’est-il convenu de faire pour que le récepteur n’interprète pas cette suite comme étant un fanion? Réponse : On fait du remplissage de bits, c’est-à-dire que lorsque la couche liaison de données source détecte cinq 1 consécutifs dans les données à transmettre, elle ajoute à leur suite un bit 0 avant d’envoyer le flux de bits sur la ligne. Quand le récepteur reçoit cinq bits 1 consécutifs suivis d’un bit 0, il enlève ce dernier. No. 2 L’IEEE a normalisé un certain nombre de réseaux locaux (LAN) et métropolitains (MAN) sous la désignation globale IEEE 802. Comme l’illustre la figure suivante, ces normes divisent la couche de liaison de données en deux sous couches, la couche MAC (medium Access Control) et la sous couche LLC (Logical Link Control). Les trames de la sous couche MAC se présentent sous la forme suivante : (a) À quoi sert le préambule (PRE) de 7 octets et de quoi est-il formé? Réponse : Ce préambule permet à l’horloge du récepteur de se synchroniser. Le préambule comporte une suite de 8 octets, chacun formé de la suite de bits 10101010, en bande de base, codée en Manchester, produisant ainsi une onde carrée de 10 MHz pendant 6,4 µsec. (b) À quoi sert le délimiteur de début de trame (SFD) et de quoi est-il composé? Réponse : Le délimiteur de trame comporte 1 octet formé de la suite de bits 10101011. Les deux derniers bits consécutifs à 1 servent à indiquer au récepteur que le prochain bit est le début de l’adresse de destination. (c) La norme 802.3 permet-elle l’envoi d’un même message à plusieurs destinataires? Réponse : Oui, le bit de plus fort poids de l’adresse de destination est à 0 pour une adresse à 1 destinataire, et à 1 pour une adresse de groupe (pré établi d’avance). Si tous les bits de l’adresse sont à 1, toutes les stations du réseau la reçoivent. (d) Expliquer en quoi consiste le protocole de gestion d’accès CSMA/CD utilisé sur un réseau Ethernet. Réponse : La norme 802.3 utilise un protocole de gestion d’accès de type CSMA/CD, c’est-à-dire Carrier Sense Multiple Access with Collision Detection. Un transceiver désirant transmettre une trame écoute sur le canal pour voir s’il est libre de toute transmission. Si oui, il débute son envoi tout en continuant d’écouter. Lorsque son envoi de trame est terminé, il prend pour acquis que tout c’est bien passé. Par contre, lorsqu’il détecte une collision, il cesse de transmettre sa trame, attend un temps aléatoire et recommence le processus à nouveau. (e) Expliquer pourquoi la norme IEEE 802.3 impose une longueur minimale de champ de données (Data) de 46 octets, incluant le champ de remplissage (Pad) utilisé pour compléter la longueur minimale lorsque les données à transmettre ne suffisent pas. Réponse : Historiquement, pour le 10Base5, la longueur maximale du réseau fut fixée, comme compromis, à 2,5 Km (500 mètres par segment reliés à chaque 500 mètres par un répéteur) et le débit à 10 Mbits/sec, transmis sur un gros câble coaxial jaune RG11 dont la vitesse de propagation est de l’ordre de 200 m / µsec. La pire situation de détection de collision survient lorsque 2 transceivers localisés chacun à une des extrémités opposées du réseau tentent de transmettre simultanément. En même temps qu’ils débutent leur transmission, les transceivers sont aussi à l’écoute de se qui se passent sur le réseau. Lorsqu’une trame part à l’instant zéro d’un bout du réseau, ça prend environ 12,5 µsec avant que le premier bit atteigne l’autre extrémité. Si juste avant qu’elle arrive à l’autre bout, l’autre transceiver se met transmettre, il détecte alors l’arrivée de la trame, interrompt son entreprise et transmet un signal de brouillage de 48 bits. Avant que ce signal soit perçu par le premier transceiver, ça prend environ 12,5 µsec. Donc, il faut que la trame dure au moins 50 µsec pour ne pas que le premier transceiver ait eu le temps de terminer la transmission de sa trame avant qu’il détecte la collision. Avec un débit de 10 Mbits/sec, chaque bit dure 0,1 µsec. Il faut donc une trame de longueur minimale de 500 bits, soit 62,5 octets. Par sécurité, la longueur minimale retenue fut de 64 octets. (f) On mentionne dans la littérature que la longueur maximale d’un segment de réseau Ethernet 10Base-T est de 100 mètres alors que la longueur maximale du réseau est de 2 500 mètres. D’où vient cette limitation ? Comment peut-on augmenter la longueur d’un segment? Réponse : Cette limitation vient principalement de l’atténuation du signal encourue dans le canal. À l’origine, pour le 10Base-T, on utilisait une paire torsadée de fils (twisted-pair) de catégorie 3 similaire à celle utilisée sur la portion résidentielle du réseau téléphonique. Si on utilise une paire torsadée de meilleure qualité, par exemple de catégorie 5, on peut atteindre une longueur de l’ordre de 150 mètres. La principale limitation étant le niveau minimal de signal pouvant être reçu sans trop d’erreurs à la réception. Typiquement, ce niveau se situe à 300 mv; le signal injecté étant de 5 V pp. Une autre façon d’augmenter la longueur d’un segment consiste à insérer un « repeater hub », souvent nommé (à tort!) simplement « hub », qui sert essentiellement à amplifier le signal. Il faut toutefois tenir compte du délai pouvant être encouru dans le hub de sorte à ce que le délai maximum dans le réseau mentionné en (e) soit respecté pour permettre de détecter les collisions. (g) On retrouve sur le marché des équipements de réseaux connus sous les noms de répéteur, hub, pont, commutateur, routeur et passerelle. À quoi servent-ils? Réponse : Tout d’abord, ces équipements n’opèrent pas tous au même niveau des diverses couches de protocole comme l’illustre la figure suivante Un répéteur agit au niveau de la couche physique. Il amplifie le signal apparaissant sur un segment du réseau et le transmet sur l’autre segment. Un hub agit aussi au niveau de la couche physique comme un répéteur mais n’amplifie généralement pas le signal. Il dispose de nombreuses lignes en entrée. Les trames qui arrivent sur ses entrées sont envoyées sur toutes les autres lignes. Lorsque deux trames arrivent en même temps, elles entrent en collision, comme sur un câble. Un hub représente donc un domaine de collision à lui tout seul. Les ponts et les commutateurs opèrent au niveau de la couche de liaison de données. Un pont interconnecte deux ou plusieurs LAN alors qu’un commutateur sert plutôt à connecter des ordinateurs individuels. Les termes « pont » et « commutateur » sont souvent employés l’un pour l’autre. Les routeurs opèrent au niveau de la couche réseau et interprète les paquets situés dans le champ des données des trames. Le logiciel de routage s’appuie sur l’en-tête du paquet pour choisir la ligne de sortie. Les passerelles de transport connectent deux ordinateurs qui emploient des protocoles de transport avec connexion différents. (h) À quoi sert la couche LLC (Logical Link Control)? Réponse : Tout ce que ce l’Ethernet et les protocoles 802 offrent, c’est un service de transport de datagramme au mieux (best-effort datagram service). Certains systèmes ont néanmoins besoin d’un protocole de liaison de données assurant le contrôle de flux et le contrôle d’erreurs. C’est le rôle du protocole de contrôle de liaison logique (LLC) défini par l’IEEE sous le sigle 802.2 La sous-couche LLC offre 3 types de services de livraison : non fiable, avec acquittement de trame et fiable en mode connecté. La couche réseau sur la machine émettrice transmet à la sous-couche LLC un paquet en utilisant les primitives d’accès LLC prévues. La souche-couche LLC ajoute un en-tête contenant des numéros de séquence et d’acquittement. La structure obtenue est ensuite insérée dans le champ de données d’une trame 802, puis transmise, comme illustré à la figure suivante. L’en-tête LLC se compose de trois champs : un point d’accès de destination, un point d’accès source et un champ de contrôle. Les points d’accès indiquent le processus à l’origine de la trame et celui à qui elle doit être remise. Le champ de contrôle contient des numéros de séquence et d’acquittement. No. 3 Une des fonctions de la couche liaison de données est de traiter les erreurs de transmission. Sur les câbles en cuivre et la fibre optique, le taux d’erreurs est beaucoup plus faible que pour une communication sans fil. C’est pourquoi, on se contente généralement uniquement d’une technique de détection d’erreurs (avec demande de retransmission) plutôt que d’une technique de correction d’erreurs. Une méthode de détection d’erreurs est le contrôle de redondance cyclique (CRC). Supposons que nous ayons l’octet 10011101 à transmettre et que le polynôme générateur soit x3 +1. (a) Quel est le signal transmis? Réponse : Comme le polynôme générateur est de degré 3, on ajoute 3 zéros à la fin de l’octet à transmettre pour obtenir le polynôme 10011101000. On divise ensuite ce polynôme par le polynôme générateur 1001; ce qui donne : 10011101000 | 1001 1001 10001100 0001 0000 0011 0000 0110 0000 1101 1001 1000 1001 0010 0000 0100 0000 100 Le reste, soit 100, est soustrait du polynôme 10011101000 pour donner le polynôme transmis 10011101100 (b) Si une erreur de transmission survient sur le troisième bit reçu, à partir de la gauche, quelle est la valeur du reste obtenue, à la réception, après décodage? Réponse : Le polynôme erroné reçu est 10111101100. Ce polynôme est divisé par le polynôme générateur 1001; ce qui donne : 10111101100 | 1001 1001 101010 0101 0000 1011 1001 0100 0000 1001 1001 0001 0000 0010 0000 0100 0000 100 Le reste n’étant pas nul, le récepteur détecte une erreur de transmission et demande une retransmission. No. 4 La figure suivante illustre une vue partielle de la pile des protocoles IEEE 802.11 utilisée pour les réseaux sans fil. (a) La norme 802.11 accepte deux modes de fonctionnement : la fonction de coordination distribuée DCF (Distributed Coordinated Function) et la fonction de coordination par point d’accès PCF (Point Coordination Function). En quoi consiste chacun de ces deux modes de fonctionnement et quel protocole d’accès chacun utilise-t-il? Réponse : Les LAN sans fil peuvent opérer avec ou sans stations de base. Mode DCF, aussi nommé « ad hoc ». Il ne fait appel à aucune entité de contrôle centralisée. En cela, il ressemble à l’Ethernet. Il utilise le protocole CSMA avec évitement de collision CSMA/CA (CSMA with Collision Avoidance). Mode PCF, aussi nommé « point d’accès ». Il met en œuvre une station de base, nommée point d’accès, qui invite les stations à émettre en leur demandant, dans un ordre donnée, si elles ont des trames à expédier. Aucune collision n’est possible. La station de base diffuse à intervalles réguliers une trame de signalisation (beacon frame) contenant divers paramètres telles les séquences des fréquences à adopter, les temps de maintien par fréquence (pour le FHSS), la synchronisation d’horloge, etc. (b) Les canaux sans fil sont beaucoup plus bruités que les canaux filaires. Le taux d’erreurs est donc beaucoup plus grand. Comment, avec la norme 802.11, arrive-t-on à obtenir un taux d’erreurs acceptable? Réponse : Le protocole 802.11 autorise les trames à être fragmentées en petites portions, chacune avec son propre total de contrôle. Les fragments obtenus sont numérotés individuellement et acquittés au moyen d’un protocole de type « arrêt et attente » (stop-and-wait); l’émetteur ne doit pas transmettre le fragment k+1 tant qu’il n’a pas reçu l’acquittement correspondant à la réception correcte du fragment k. La taille de fragment n’est pas fixée par la norme mais dépend des conditions du moment. (c) On retrouve dans la littérature des points de vue différents sur la distance couverte par un WLAN de la norme 802.11b. Certains mentionnent que théoriquement on peut atteindre 300 mètres dans un environnement dégagé, d’autres mentionnent 100 mètres alors que certains affirment que typiquement, on peut espérer 30 à 35 mètres, à l’intérieur. Comment peut-on expliquer cette non précision et que faire pour augmenter la portée pour des installations situées, par exemple, dans des bâtiments différents? Réponse : Comme il s’agit de communications RF, la portée dépend beaucoup des conditions environnementales, telles les obstacles situées entre les diverses parties du réseau, les interférences électromagnétiques présentes, la qualité des équipements RF utilisés, etc. Une façon d’augmenter la portée, à puissance transmise constante, consiste à utiliser des antennes directionnelles plutôt qu’omnidirectionnelles. Ainsi, une plus grande densité de puissance (watts/m2) est présente à la réception. No. 5 La figure suivante illustre une partie du réseau Internet composée de nombreux réseaux hétérogènes interconnectés. On peut y observer, entre autres, que des réseaux locaux (LAN) peuvent accéder au réseau Internet. (a) Dans quelle couche de protocoles se situe le protocole IP (Internet Protocol)? Réponse : Dans la couche Réseau (b) Du point du vue protocole, comment un LAN utilisant le protocole IEEE 802.3 peut-il accéder au réseau internet? Réponse : Un paquet IP, provenant de la couche réseau, est simplement inséré dans le champ de données d’une trame MAC 802.3, sans utiliser le protocole de contrôle de liaison logique LLC car, dans Internet, pour transporter des paquets IP, aucune garantie de livraison n’est requise ni attendue. (c) Un datagramme IP est constitué de deux parties : un en-tête et des données. La figure suivante illustre le format de l’en-tête de la version IPv4. On mentionne dans la littérature que les adresses source et destination sont écrites en notation décimale pointée. Qu’est-ce qu’on entend par cela? Réponse : Dans ce format, chacun des quatre octets constituant les 32 bits, est représenté par un nombre décimal entre 0 et 255, un point séparant deux groupes de chiffres décimaux. Par exemple, l’adresse hexadécimale C0290614 équivaut à 192.41.6.20 en notation décimale pointée. L’adresse IP la plus basse est 0.0.0.0 et la plus haute est 255.255.255.255 (d) Comment un ordinateur branché sur un LAN (donc possédant une adresse et un masque de sous-réseau) fait pour savoir si un ordinateur avec lequel il veut communiquer, et dont il connait l’adresse IP, est branché sur le même réseau que lui ou sur un autre réseau? Réponse : L’ordinateur détermine d’abord l’adresse du réseau auquel il appartient en effectuant un ET logique entre son adresse IP et son masque de sous-réseau. Puis, il fait la même opération avec l’adresse de l’autre ordinateur et le même masque et obtient une adresse réseau. Si les deux adresses réseaux sont les mêmes, alors l’autre ordinateur est sur le même réseau. No. 6 La figure suivante illustre les relations logiques existant entre les couches réseau, transport et application. (a) La couche transport offre les mêmes types de service que la couche réseau, soit avec ou sans connexion. Pourquoi alors utiliser deux couches distinctes? Réponse : Le code de transport s’exécute entièrement sur les ordinateurs des utilisateurs, alors que la couche réseau s’exécute principalement sur les routeurs. Ceci permet de garantir un service transport plus fiable que le service réseau sous-jacent. Les paquets perdus et les données altérées peuvent être détectés et compensés par la couche transport. De plus, les primitives du service transport peuvent être implémentées sous forme d’appels à des procédures pour les rendre indépendantes des primitives du service réseau. (b) La couche de transport de l’internet dispose de deux protocoles principaux : UDP User Datagram Protocol) et TCP (Transmission Control Protocol). Sur quels points se distinguent ces deux protocoles? Réponse : UDP est un protocole sans connexion alors que TCP est un protocole avec connexion. UDP n’est pas en mesure de garantir une remise séquentielle et fiable alors que TCP l’est. UDP ne fait pas de contrôle de flux ni de contrôle d’erreur ou de retransmission après réception d’un segment erroné. UDP est particulièrement adapté aux applications client-serveur. La couche IP ne donnant aucune garantie de bonnes remises des datagrammes, TCP doit gérer un timer et retransmettre, si nécessaire, les données perdues. De plus, les datagrammes peuvent très bien arriver dans le désordre; TCP doit être capable de les rassembler en messages correctement ordonnés. (c) Quelle procédure suit-on pour établir une connexion TCP? Réponse : On utilise la méthode en trois étapes proposée par Tomlinson : Une extrémité, par exemple le serveur, attend de manière passive l’arrivée d’une communication en exécutant les primitives « listen » et « accept » qui permettent de désigner une source précise ou d’accepter un appel d’où qu’il vienne. L’autre extrémité, le client, exécute une primitive « connect » qui indique l’adresse IP et le port auxquels il souhaite se connecter, la taille maximale des segments TCP qu’il admet et accessoirement quelques données utilisateur (comme un mot de passe). La primitive « connect » envoie un segment TCP avec le bit SYN à 1 et le bit ACK à 0, et attend une réponse. Quand ce segment arrive à destination, l’entité TCP réceptrice cherche à savoir s’il existe une application à l’écoute (« listen ») du port indiqué dans le champ « Port de destination ». Si elle n’en trouve pas, elle renvoie une réponse avec le bit RST à 1 pour rejeter la demande de connexion. Si un processus quelconque est à l’écoute du port, on lui fournit le segment TCP entrant. Il peut soit accepter, soit rejeter la connexion. S’il l’accepte, il renvoie un segment d’accusé de réception.