UE PRIP
Principe des Réseaux Informatiques par la Pratique
La couche liaison

Christophe Lohr

Automne 2023

1 Introduction

La topologie en étoile repose sur un nœud actif central qui contrôle le «droit de parole» des stations et achemine l’information. Cette structure n’a jamais vraiment été fortement déployée à grande échelle, on peut noter cependant les réseaux locaux basées sur le protocole X25, au début des années 80 et les ceux basés sur la technologie ATM dans les années 90 (mais c’était pour émuler Ethernet, c’est à dire un bus).

Les topologies à succès sont le bus (Ethernet, qui a gagné la bataille) et l’anneau (Token Ring, d’IBM, en cours d’abandon).

Au cours du temps, le réseau en bus Ethernet a, cependant, évolué vers une structure en étoile, où les nœuds (appelés «hubs») sont des boîtiers électroniques qui émulent un bus. Le «hub» fonctionne comme un bus.

La technologie Token Ring a, elle, été très rapidement implémentée dans des boîtiers électronique renfermant la structure d’anneau.

Aujourd’hui, donc, la topologie est en étoile, mais l’ensemble fonctionne comme un bus (ou encore parfois comme un anneau).

Beaucoup de sous comités:

Note: WiFi est une dénomination commerciale pour le 802.11

La couche LLC permet de définir différents types de liaisons (avec/sans connexion et avec/sans acquittement). Elle n’est pas toujours obligatoire, en Ethernet elle est optionnelle, certains protocoles de niveau 3 l’utilisent, d’autre pas. Par exemple IP, sur Ethernet, n’emploie pas, par défaut, la couche LLC (mais peut le faire, le choix se fait par paramétrage au niveau du système d’exploitation).

La couche MAC est centrale, elle définit l’algorithme gérant l’accès concurrent au support. Elle définit aussi une structure de trame ainsi qu’un mécanisme d’adressage (les adresses MAC, nous verrons cela plus loin).

2 La technologie Ethernet

2.1 Fondements d’Ethernet

Une autre méthode consiste à créer un anneau virtuel. Les stations s’échangent un jeton dans un ordre donné (la station A passe le jeton à la station B qui le passe à C, etc. La station qui désire émettre doit attendre de voir arriver le jeton). Ce type de réseau a été développé par des industriels des mondes de l’automobile et de l’aviation américains. Il fait partie des «réseaux locaux industriels». Il a été standardisé sous le numéro 802.4 par l’IEEE. Il ne s’est pas développé de manière importante.

La technologie WiFi (IEEE-802.11) n’a rien à voir, à priori, avec Ethernet, mais on commence à l’appeler couramment «l’ethernet sans fil», c’est dire... Elle s’adapte, en effet, très bien à Ethernet via des ponts simples à mettre en place.

La technologie Ethernet évolue de manière souple où chaque étape d’évolution ne remet pas en cause les versions antérieures. On peut raccorder une interface 10Mb/s sur une interface 100 ou 1000Mb/s. Les matériels d’interconnexion sont compatibles avec les trois débits.

Quelle est la dimension du réseau (son diamètre ou encore la distance maximale entre deux stations) si la taille minimale des trames est de 512 bits (64 octets), le débit de 10Mb/s et la célérité du signal sur le câble de 200Km/s (c’est sous évalué...)?
Vous devez trouver 5,12Km, ce qui est trop. Dans la réalité il faut tenir compte de l’affaiblissement en ligne qui ne permet pas de propager un signal sur une telle distance sans pertes de puissance et distorsion en ligne. Ces phénomènes obligent à placer des organes régénérateurs à des distances bien plus courtes. On appelle ces organes de répéteurs car ils «répètent» les bits, ils les régénèrent. Ce ne sont pas des amplificateurs car alors les distorsions seraient elle-mêmes amplifiées.

Les premiers réseau Ethernet pouvaient compter des segments de 500m maximum, reliés par des répéteurs.

Les répéteurs apportent un retard, les câbles de raccordement de ces répéteurs au câble principal aussi. Le bilan des délais est tel que la taille maximale est de 2,5km pour les valeurs suivantes:

Comptez bien: 18 octets pour l’entête (6 address destination + 6 adresse source + 2 longueur/type) + 2 checksum. Le préambule à la trame ne compte pas (ce n’est pas vraiment la trame).

Le médium principal est constitué par des segments de câble 50Ω de 500m maximum, reliés entre eux par des répéteurs. Il ne peut y avoir plus de 5 segments entre deux stations (4 répéteurs). Les câbles sont terminés par un «bouchon» constitué par une résistance de 50Ω permettant d’équilibrer l’impédance caractéristique du support.

Un répéteur est un organe qui «répète» sur tous les ports les bits qui arrivent sur un port. Ce n’est pas une amplification car si cela était les altérations du signal seraient amplifiées. Les bits entrant dans un port sont reconnus et régénérés sur tous les autres ports et même sur les fils émission du port sur lesquels ils arrivent.

Les stations et les répéteurs sont raccordés au câble principal via des câbles de 50m maximum. Le câble arrive sur un organe de raccordement directement fixé sur le médium appelé le «transceiver».

Les transceivers doivent être placés à des distances multiples de 2,5m pour des contrer le phénomène des ondes stationnaires. Un point ou un anneau de couleur noire sur le câble (qui lui est jaune) indique les emplacements possibles.

Deux segments principaux peuvent être reliés par une fibre optique de longueur 2000m maximum. Les deux répéteurs aux extrémités de la fibre ne comptent alors que pour 1.

Ce type de réseau est aujourd’hui abandonné. Les segments de câble sont remplacés par des hubs (ou des switches) et l’architecture physique est devenue ainsi une étoile tout en continuant à fonctionner avec une technique de bus. Le hub peut être comparé à ne boite dans laquelle on aurait enfermé le câble et les transceivers.

Les dénominations 10BASE-5 et 10BASE-FL sont explicitées plus loin.

Il existe une version «cheaper net» comportant des câbles coaxiaux fins (de couleur noire), avec un raccordement par prises de type BNC. Ces câbles font 185m max (10BASE-2).

SFD: Start Frame Delimitor

Les créateurs d’Ethernet (Bob Metcalfe et Intel/Xeros/Digital)) ont défini le champ «Type» pour porter l’identité du protocole véhiculé dans les données (le champ type est le SAP). Pour des soucis d’interopérabilité avec des réseaux locaux dont les trames n’ont pas ce champ type (Token Ring 802.5), le comité 802 a décidé qu’il serait obligatoire d’utiliser la couche LLC pour porter l’identité du protocole véhiculé et a transformé le rôle de ce champ en indicateur de longueur des données. Ce n’est pas une mauvaise idée en soi.
Et en pratique?...

En pratique les deux coexistent sur les mêmes supports. Une machine peut émettre en 802.3 pour certaines applications et en Ethernet pur pour d’autres.

Par défaut IP est véhiculé en Ethernet pur (type 0800hexa), il peut être véhiculé en mode 802.3 en paramétrant l’interface.

2.2 Les adresses MAC

En terminologie anglo-saxonne les interfaces matérielles sont appelées NIC pour Network Interface Card.

Une interface voyant passer une trame de broadcast (diffusion) doit prendre en compte cette trame.

Une interface voyant passer une trame de multicast ne la prend en compte que si elle a été paramétrée pour cela.

Information sur les OUI et adresses multicast:
http://standards.ieee.org/regauth/oui/oui.txt

http://standards.ieee.org/regauth/oui/oui.txt

Cette trame est au format 802.3 ou Ethernet pur?

Le pont fonctionne tout seul sans paramétrage préalable. Il écoute le réseau sur son port A et son port B et «voit» passer des trames. Il enregistre les adresses sources de celles-ci et détermine ainsi que L, M, N et O sont du coté A. Ces adresses sont «apprises» par le pont et enregistrées dans sa table A. De même il «apprend» que, coté B, existent les stations W, X, Y et Z. Ces dernières adresses sont stockées dans la table B.

Si une trame est émise par L à destination de O, il reconnaît que ces deux stations sont du coté A, il ne fait rien. De même pour des trames de M vers N ou X vers Z par exemple.

Par contre si une trame est émise de A à destination de Z, alors cette trame est enregistrée dans la file A puis une tentative d’émission de celle-ci sera effectuée coté B. La trame ne sera mémorisée dans la file A que si elle n’a pas collisionné. Elle pourra peut-être collisionner coté B lors de sa ré-émission de ce coté mais la collision ne sera pas détectée coté A.

Si le pont ne connaît pas la station destinatrice (elle n’a rien émis encore) il retransmet les trames vers cette destination sur le port opposé de celui sur lequel il reçoit ces trames.

Avantages:

Pour des raisons de fiabilité on peut être amené à doubler les ponts entre deux réseaux. Se pose alors le problème de boucles comme l’exprime l’exemple présenté ici.

La machine M émet une trame à destination de la machine X.

Premier point négatif: multiplication des copies de trames...

Le pont B1 enregistre la trame et la réémet sur son port 2. La trame arrive à destination. Le pont B2 fait de même. Une seconde copie arrive à destination.

Second point négatif: les trames font des boucles...

Si la station X n’a rien émis encore les ponts ne la connaissent pas. La station M émet une trame vers X. Les ponts ne connaissant pas X retransmettent cette trame comme précédemment. Il y a donc deux copies. Mais...

La copie faite par B1 arrive à destination et aussi en B2 port 2. B2 croit alors que la machine M a changé de réseau, elle est maintenant en bas. Comme il ne connaît pas X il recopie cette trame sur son port 1. Cette trame sera vue par B1 port 1 qui va la relayer vers son port 2 et va à nouveau arriver en X puis en B2 port 2 et ainsi de suite. Mais une trame tournera aussi dans le sens contraire car au début la copie faite par B2 arrive à destination.. etc... etc... Une seule trame émise suffit alors à saturer le réseau.

Pour éviter ce phénomène il faut transformer le réseau. De graphe avec des boucles il faut le transformer en arbre complet, en anglais en «spanning tree».

Les ponts (ou les commutateurs Ethernet) administrables peuvent mettre en œuvre cet algorithme. Sur chacun de ses ports, chaque pont annonce un identificateur qui lui est propre via une trame de type multicast (seuls les ponts sont configurés pour prendre en compte ce type de trame). Cet identificateur signifie en quelque sorte «c’est moi le pont racine». Tous les ponts commencent par annoncer qu’ils sont racine. Lorsqu’un pont reçoit un message comportant un identificateur «inférieur» au sien (on dira «meilleur»), il s’aperçoit qu’il n’est pas «racine» mais qu’un autre pont l’est plus certainement et que celui-ci est accessible via l’interface par laquelle est parvenue ce message «meilleur».

L’ensemble des ponts exécute le même algorithme, celui-ci converge finalement car un seul pont se trouve être le «meilleur», la racine (celui dont l’identificateur est le plus petit). Chaque pont sait par quelle interface atteindre le pont racine par le «plus court chemin», seule cette interface reste active pour le trafic de données, les autres interfaces permettant, elles aussi d’atteindre la racine, mais avec un chemin plus long sont inhibées pour le trafic de données. Les boucles sont ainsi évitées.

Les messages échangés s’appellent des BPDU (Bridge_PDU) et comportent les informations suivantes: <id_pont_supposé_racine, coût_supposé, id_pont_émetteur, port_émission>.

Les messages du protocole Spanning tree sont portés par des trames en adressage multicast. Leur adresse destination est (en standard) 01:80:c2:00:00:00. Ce sont des trames de type 802.3. Les DSAP et SSAP de la couche LLC supérieure (voir plus loin) sont égaux à 0x42. Les messages sont émis toutes les 2 secondes par défaut. Les identificateurs, les délais sont généralement paramétrables.

B1 émet: <25,0,25,1> sur son port 1 et <25,0,25,2> sur son port 2.

Il reçoit <12,0,12,1> par son port 1 et <14,0,14,1> par son port 2. Il constate qu’il n’est pas racine et que la racine doit être 12 (B2) accessible par son port 1. B1 considère que son port 1 est «root port».

Il émet alors: <12,1, 25,1> sur son port 1 et <12,1,25,2> sur son port 2.

B2 émet <14,0,14,1> sur son port 1 et <14,0,14,2> sur son port 2.

Il reçoit: <12,0,12,2> port 2 et <25,0,25,2> port 2 dans une première phase indiquant ainsi que le pont racine doit être accessible par son port 2 plutôt que par son port 1. B2 considère que son port 2 est «root port».

Il émet alors: <12,1,14,2> sur son port 2 et <12,1,14,1> sur son port 1.

B3 ne reçoit pas de «meilleure» configuration que celles qu’il émet. Il est donc la racine.

Comment vont alors se départager B1 (port 2) et B2 (port 1)?

B1 reçoit port 2: <12,1,14,1> ce qui est meilleur que ce qu’il émet sur ce même port <12,1,25,2>. Il inhibe son port 2 (pour le trafic de données, pas pour les messages de spanning tree). B2 reçoit sur son port 1 un message «moins bon» que ce qu’il émet sur ce même port, donc B2 port 1 reste actif.

Excellent tutorial animé à:
http://www.cisco.com/warp/public/473/spanning_tree1.swf

On prend le câble et les transceivers, on ramasse le tout dans un petit boîtier et le tour est joué. D’une topologie en bus nous passons à une topologie en étoile.

En fait ce n’est pas si simple car les raccordement changent, ce ne sont plus des transceivers mais des prises de type RJ45 et les câbles sont de type 10/100 BASE-T, à paire torsadée, de longueur max 100m.

Exemple de fonctionnement: La station E émet vers la station R. Toutes les stations reçoivent le signal, même E pour des raisons de détection de collision.

Un hub se comporte donc comme un bus.

Il est très facile d’espionner tout ce qui passe sur le hub à partir d’une machine raccordée sur un des ports.

Les hubs sont des répéteurs. Ce sont des organes de la couche physique (selon le modèle OSI), ils ne s’intéressent qu’au niveau bit.

Le commutateur ressemble à un hub mais se comporte comme un pont. Il connaît les adresses (MAC) des machines qui sont raccordées sur chacun de ses ports (raccordées directement ou via d’autres d’autres commutateurs ou hubs). C’est un pont multiport.

Il ne recopie une trame que sur le port qui mène vers la destination.

Il peut faire ce travail pour plusieurs trames simultanément à condition qu’elles n’aillent pas vers le même port de sortie, auquel cas elles sont traitées les unes après les autres. Il se comporte donc comme s’il était capable d’établir des circuits entre deux ports pour de cours instants, d’on son nom de commutateur (switch en anglais).

C’est une commutation de niveau 2 (plus exactement de niveau MAC), à ne pas confondre avec la commutation de niveau 3 qu’on rencontre dans d’autres réseaux comme X25 ou ATM.

L’espionnage sur ce type d’appareil est plus difficile, sur un port donné on ne peut voir que les trames destinées à ce port ou les trames de broadcast, l’intérêt pour «l’espion» est donc très limité. Le «malfaisant» persévérant et cultivé en Réseaux peut cependant trouver des solutions...

Un switch se comporte comme un pont. Sur chacun de ses ports il enregistre les adresses sources des trames qu’il voit passer. Chaque port se comporte comme un port de pont. Chaque port délimite donc un domaine de collision.

On voit sur la figure ci-dessus qu’un de ces domaines ne comporte que deux machines (un port du switch et une machine seule), Voir le transparent suivant pour une utilisation plus efficace du lien en question.

Lorsqu’une machine terminale est reliée directement à un switch le domaine de collision est restreint à la machine et au port du switch sur lequel elle est raccordée. Si on considère en plus que le lien physique de raccordement est un câble comportant un circuit différent pour chaque sens (deux fils par pour l’émission, deux autres fils pour la réception, ou deux fibres optiques), il devient alors intéressant d’inhiber le mécanisme de détection et contention de collision pour tirer partie pleinement de la paire émission et de la paire réception présente dans le câble de raccordement en les utilisant simultanément pour véhiculer des données utiles.

On peut ainsi passer de 10/100/1000 Mb/s à l’alternat à 10/100/1000 Mb/s dans chaque sens simultanément (10 ou 100 ou 1000 MB/s selon le matériel).

Attention, en général il faut gérer le full duplex, c’est à dire qu’il faut se connecter au switch pour l’administrer (sur son port console via un PC et l’application HyperTerminal ou via telnet en IP) et configurer les ports qu’on désire voir fonctionner dans ce mode. Il faut aussi vérifier sur la machine terminale qu’elle est bien en full duplex et, éventuellement, la forcer dans ce mode. Si le full duplex n’est pas positionné des deux cotés il en résultera un fonctionnement très ralenti, une des deux extrémités détectant alors des collisions qui n’en sont pas.

2.3 Les VLANs

Imaginons que la machine A veuille émettre vers toutes les machines de son VLAN, elle doit émettre une trame de broadcast qui devra être relayée par le switch de gauche vers le switch de droite. Cependant, le switch de droite devra connaître l’identité du VLAN vers lequel diffuser la trame. Il ne faudra pas, par exemple, émettre vers la machine Y du VLAN2. Pour cela, sur le lien entre les switches, la trame devra être complémentée par un champ porteur de l’ identité du VLAN.

Le transparent suivant indique comment est modifiée la trame ethernet de base.

Le lien d’interconnexion des commutateurs est parfois un «trunk». Selon les constructeurs et les types de switches, des ports spécifiques peuvent être réservés pour le «trunking».

Le champ TPID est tout simplement une valeur de champ Type spécifique. Le champ «User Priority» apporte une possibilité de privilégier certains flux.

Le bit CFI (Canonical Format Indicator), s’il est à 1, indique que le champ information comporte des indications de routage par la source.

Le champ «Virtual LAN Identifier» indique à quel VLAN appartient la trame.

2.4 Évolutions

Sonet (Synchronous Optical Network) est un type de multiplexage mis au point par la société américaine Bellcore et standardisée par l’ITU-T sous l’appellation SDH (Synchronous Digital Hierarchy).

À l’origine, Sonet/SDH est destiné au transport des voies téléphoniques numériques. Les concepts mis en œuvre permettent un multiplexage et un démultiplexage facilité par rapport aux techniques plus anciennes. C’est le support privilégié pour les réseaux de type ATM.

Les débits courants sont de 155Mb/s (Sonet: 0C3, SDH: STM1) sur cuivre (100m) ou fibre optique et 622Mb/s. Le débit de 1,2 Gb/s est possible. Un bond technologique est réalisé pour l’Ethernet 10Gb/s.

Un lien: http://cablingdb.com/GlossaryPages/GlossaryC/CGlossary.asp

2.5 Dénomination

Les matériels à 10Mb/s tendent à disparaître aujourd’hui (2004). Les cartes interfaces sont toutes en 100-BASE-T, même en premier prix.

2.6 Câblage

Un document bien illustré sur le câblage... En italien, mais Mhz et nm et Km s’écrivent comme en français... http://www.garr.it/ws4/pdf/Montessoro.pdf

Un câble croisé permettra de raccorder:

Les hubs et les switches peuvent être munis de ports directement croisés, on les repère généralement par la mention «Up Link». Un port peut aussi avoir deux prises RJ45, und roite et une croisée «up-link».

Un port peut être muni d’un petit commutateur appelé MDI-MDIX permettant de positionner le port en mode normal (MDI) ou en mode croisé (MDIX).

Et enfin, la fonction MDI-MDIX peut être à auto-détection: le switch détecte automatiquement s’il a à faire à un câble droit ou croisé.

Source:
http://tech.mattmillman.com/projects/10base5/
https://petri.kutvonen.net/index_files/ethernet.html

Technologie des débuts 90.

Aujourd’hui on ne trouve plus que du 10/100/1000 BASE-T, à quelques Euros...

Et en plus il y a beaucoup moins de composants...

L’envers du décor:

La fonction «monitoring» consiste à rediriger le trafic normal d’un port vers un port dédié à la fonction et sur lequel on place une machine munie d’un analyseur de flux. Toutes les trames entrantes et sortantes du port surveillé sont recopiées sur le port de monitoring.

3 Les autres techniques autour des LANs

3.1 Le sans fil IEEE-802.11 (WiFi: Wireless Fidelity)

Un tutorial correct:
http://www.intelligraphics.com/articles/80211.article.html

Un lien sur la sécurité en 802.11:
http://www.iss.net/wireless/WLAN.FAQ.php

Autre lien intéressant:
http://wireless.ictp.trieste.it/school.2002/lectures/ermanno/HTML/802.11_Architecture.pdf#search='802%2011%20ssid'

3.2 Les courants porteurs

Un lien intéressant http://vlan.org/breve123.html

3.3 Autres

Les canaux synchrones de IEEE-1394 (FireWire/iLink) sont adaptés à la transmission de flux sons et images.

Ces réseaux utilisent des protocoles spécifiques pour les couches supérieures, par exemple AMDTP (Audio and Music Data Transmission Protocol. IEC61883-6) pour IEEE-1394. IP n’est pas implémenté en standard sur ces réseaux.

Une émulation Ethernet existe pour IEEE-1394 en utilisant les canaux asynchrone.

FireWire: IEEE-1394 chez Apple.

ilink chez Intel

3.4 La couche LLC

Et donc ... il reste combien de SAP possibles, donc de protocoles identifiables?

64! C’est bien peu et c’est un problème...

La notation 0x... est celle du langage C ou Java pour les nombres en hexadécimal.

Le SAP 0x7E ne vous rappelle rien concernant X25 et surtout sa couche 2 standard?

SNAP: même traduit un français, ça ne veut rien dire (humour (?!!!))

OUI: Organizational Unit Identifier

Mais non!... Ce n’est pas si compliqué!...

Et en plus tout peut être justifié... Il y a une bonne raison pour qu’il en soit ainsi. Simplement il faut chercher cette raison parfois profondément...

Décodons... Et répondons aux questions:


Ce document a été traduit de LATEX par HEVEA