Commutation de circuits, commutation de paquets

Sommaire :

Introduction
Commutation de circuits
Commutation de paquets
X25

 

Introduction

Pour transmettre des informations au-delà d'un réseau local, il est nécessaire d'utilisé un réseau commuté qui est un réseau partiellement maillé, comportant des noeuds de commutation. Les stations qui échangent des informations doivent être reliées chacune à un noeud de commutation. Il existe deux grands types de réseaux commutés : les réseaux à commutation de circuits et les réseaux à commutation de paquets. Ils sont étudiés en détail plus loin

Pour transmettre des informations au-delà d'un réseau local, il est nécessaire d'utilisé un réseau commuté qui est un réseau partiellement maillé, comportant des noeuds de commutation. Les stations qui échangent des informations doivent être reliées chacune à un noeud de commutation. Il existe deux grands types de réseaux commutés : les réseaux à commutation de circuits et les réseaux à commutation de paquets. Ils sont étudiés en détail plus loin.

Le maillage d'un réseau commuté n'est pas total ce qui serait irréaliste (chaque noeud n'est pas relié directement à tous les autres noeuds). Il existe donc pour chaque noeud quelques liaisons directes avec d'autres noeuds, appelés noeuds voisins. Le choix des liaisons résulte d'une analyse en coûts, en charges et en sécurité.

Les noeuds ont pour vocation essentielle de recevoir des informations par une liaison et de les diriger vers un autre noeud par une autre liaison de manière à les acheminer au destinataire (fonction routage). Les informations vont donc passer de noeud en noeud pour arriver à destination. Certains noeuds sont des noeuds d'entrée-sortie du réseau : des stations leur sont attachées. Ces noeuds ont donc une fonction supplémentaire de réception/délivrance de données.

Les liaisons entre noeuds sont généralement optimisées : elles sont multiplexées, soit de manière spatiale (FDM : Frequency Division Multiplexing), soit de manière temporelle (Time Division Multiplexing).

Commutation de circuits

Dans ce mode de commutation, un chemin (circuit, channel) est construit entre l'émetteur et le récepteur à partir des liaisons du réseau commuté. Ce circuit est "temporaire" dans la mesure où il n'a d'existence que sur la durée de la communication entre émetteur et récepteur. Il est ensuite libéré de manière à ce que les liaisons puissent être utilisées dans le cadre d'une autre communication. 

Une communication, via un réseau à commutation de circuits nécessite donc 3 phases :

Il faut au préalable construire un circuit entre les deux stations à faire communiquer. La station émettrice envoie une demande de connexion au noeud le plus proche. Celui-ci réceptionne cette demande, l'analyse et suivant les règles de routage choisit un canal (et le réserve) vers le noeud voisin le plus adéquat vers lequel la demande de connexion est transmise. le processus de poursuit ainsi jusqu'au noeud de rattachement de la station réceptrice, et donc jusqu'à cette station (on vérifie aussi que cette station est prête à accepter la connexion).

Le circuit de bout en bout étant défini et construit, les données peuvent être échangées entre les deux stations (le circuit est généralement full duplex) comme si ces stations étaient reliées directement.

A la fin du transfert de données, l'une des stations peut prendre l'initiative de libérer le circuit. L'avis de déconnexion est transmis de noeud en noeud et les différents canaux mobilisés pour la communication sont libérés.

Plusieurs remarques doivent être faites sur ce mode de commutation :

Le plus connu et le plus ancien des réseaux à commutation de circuits est le réseau téléphonique (RTC ou Réseau Téléphonique Commuté) qui, par la suite a été également utilisé pour la transmission de données. 

Examinons maintenant les aspects technologiques liés à la commutation de circuit : il y en a trois principaux : la structure d'un commutateur, le routage et la signalisation.

Un commutateur possède des lignes "entrée" et des lignes "sorties". A chaque ligne "entrée", le commutateur a pour rôle de faire correspondre une ligne "sortie". La structure la plus simple est une matrice d'interconnexion (crossbar matrix).

La figure ci-dessous montre un commutateur 8x8 8 lignes en entrée et 8 lignes en sortie. Les points de commutation sont actifs ou passifs suivant les besoins de commutation.

On notera que la possibilité de connexion d'une ligne d'entrée à une libre de sortie non occupée est toujours possible et que le nombre de points de connexion est n2 si le nombre de lignes d'entrée ou de sortie est égal à n. Ceci peut poser problème lorsque le nombre de lignes entrée/sortie devient grand.

Une manière de réduire le nombre de points de connexion est de prévoir plusieurs "étages" de commutation. La figure ci-dessous en donne un exemple pour le cas de 8 lignes d'entrée et de 8 lignes de sortie.

Le nombre de points de commutation est réduit à 40 au lieu de 64. Le prix à payer est cependant un certain blocage de lignes puisque toutes les liaisons ne sont plus possibles (par exemple la station 5 ne peut être reliée à aucune autre station).

Dans les commutateurs précédents, il y a une communication par ligne interne. On peut cependant utiliser les "bienfaits" de la numérisation pour proposer des commutateurs basés sur TDM, c'est à dire sur un multiplexage temporel.  Imaginons n lignes d'entrée/sortie bidirectionnelles à un débit d chacune. Le commutateur utilise un bus à haut débit. Chaque ligne d'entrée est dotée d'un "slot" de temps pour envoyer des données sous forme d'un bloc de bits sur le bus. Ces slots sont multiplexés avec TDM sur le bus en une trame (comportant donc n slots pleins ou vides). De la même manière, une ligne d'entrée retire le contenu du slot qui lui est assigné.

Bien entendu le débit du bus doit être supérieur à nxd.

   

Commutation de paquets

La commutation de paquets est apparue vers 1970 pour résoudre le problème de la transmission de données numériques sur de longues distances. La commutation de circuits était en effet relativement inadaptée (mais parfaitement adaptée pour la voix) à la transmission de données numériques ; d'une part, la communication entre systèmes informatiques comporte de nombreux "silences" et la voie de transmission, si elle est réservée en totalité à cette communication,  n'est donc pas utilisée à 100% ; par ailleurs, la commutation de circuits s'effectue à débit constant ce qui contraint énormément les équipements (serveurs, stations) qui possèdent des possibilités différentes en débit.

Dans la commutation de paquets, un bloc d'information à transmettre est découpé en paquets. Un paquet comporte donc une fraction de l'information à transmettre mais aussi un champ de contrôle, généralement placé en début de paquet (en-tête).

Dans un réseau à commutation de paquets, un noeud de commutation a pour rôle de recevoir les paquets entrants, d'examiner les en-têtes et les destinations, de choisir une voie de sortie pour chaque paquet, de mettre les paquets reçus dans les files d'attente adéquates pour leur acheminement. On notera, en particulier que des paquets provenant de messages différents peuvent être multiplexés (multiplexage temporel) sur une même liaison et que les débits des différentes liaisons peuvent être différents.

Rappelons que les paquets peuvent être acheminés suivant deux modes différents :

Le diagramme ci-dessous montre l'intérêt de la commutation de paquets par rapport à la commutation de circuits en ce qui concerne le délai de transmission. L'exemple est basé sur un message de 36 octets ; l'en-tête des paquets est supposé être de 3 octets. On considère plusieurs possibilités : 1 seul paquet de 36 octets utiles ; 3 paquets de 12 octets utiles ; 6 paquets de 6 octets utiles ; 12 paquets de 3 octets utiles. Pour la transmission de chaque paquet on doit prendre en considération le délai d'acheminement (en principe à la vitesse de la lumière) et le temps de traitement de chaque paquet (examen de l'en-tête et stockage dans un buffer) ; il faudrait y ajouter le temps d'attente avant ré-émission (le paquet est placé dans une file d'attente) ; le temps d'attente est négligé dans le diagramme.

1 paquet

3 paquets

6 paquets

12 paquets

Ce diagramme nous apprend que la taille du paquet doit être choisie de manière optimale : nous voyons, en effet, que la taille de 6 octets utiles correspond ici au meilleur délai d'acheminement. Si la taille est plus petite, l'information de contrôle (en-tête) est plus importante car plus fréquente.

L'acheminement des paquets nécessitent une fonction routage au niveau des noeuds de commutation. Cette fonction permet de diriger un paquet entrant vers le noeud voisin le plus approprié à l'acheminement du paquet vers sa destination finale. Plusieurs méthodes de routage peuvent être envisagées. Nous passons en revue brièvement les principales méthodes. 

Un paquet entrant dans un noeud de commutation est identifié (on garde trace de son identification) puis des copies sont envoyées sur toutes les autres voies possibles (autres que la voie entrante). Le paquet va ainsi se multiplier sur le réseau et transiter par toutes les liaisons du réseau. Il finira donc par arriver au destinataire. Deux mécanismes permettent d'éviter une prolifération trop grande des paquets :

Bien que surprenant au premier abord, le routage par inondation est très efficace ; il peut être utilisé pour certaines applications militaires.

Une étude globale du réseau est supposée avoir été effectuée et, par emploi d'algorithmes de "moindre coût", les routes optimales entre les divers noeuds ont été établies. On sait ainsi, pour une destination donnée, diriger en chaque noeud un paquet vers le noeud voisin adéquat, ce qui signifie que chaque noeud est doté d'une table de routage (destination, noeud voisin). La méthode est simple ; toutefois elle ne prend pas en compte les modifications possibles du réseau, à savoir la rupture d'une liaison ou l'engorgement d'une liaison.

Pour chaque noeud, on peut envisager de choisir la voie de sortie "au hasard". En fait, on utilise des probabilités permettant une certaine optimalité. Les débits des voies n'étant pas nécessairement les mêmes, on peut définir les probabilités suivantes : pi = Di/SDk où Di est le débit d'une voie sortante et où la somme des débits Dk porte sur toutes les voies sortantes (autres que la voie d'entrée du paquet).

Il s'agit d'une forme plus avancée permettant une adaptation du routage à l'état du réseau. Le routage adaptatif se base sur l'échange d'information entre les noeuds du réseau. Ces informations permettent de mettre à jour les tables de routage. Bien entendu, l'échange d'information doit être assez fréquent pour parer à toute éventualité ; a contrario, l'échange d'information contribue de manière non négligeable à augmenter la charge du réseau.

Le contrôle de congestion est une fonction du réseau qui permet d'éviter les problèmes d'engorgement de certaines artères du réseau.  Les mécanismes employés sont divers. On peut déjà considérer que le routage adaptatif est une manière de limiter les circonstances de congestion car l'envoi d'informations permet de déterminer les points noirs du réseau et, donc, de prendre les décisions adéquates (par exemple diminution de débit) ; une autre façon de procéder est l'envoi d'un paquet de contrôle par un noeud "congestionné" à tous les autres noeuds ; cette méthode a le gros inconvénient d'augmenter aussi la charge du réseau. Une variante plus intéressante est l'incorporation d'information de congestion dans les paquets d'information ; on peut ainsi faire remonter des informations de congestion vers l'amont ou l'aval d'un noeud congestionné.

Dans la transmission de paquets, on définit deux modes de service : le service orienté connexion et le service non connecté. Dans un service orienté connexion, les paquets suivent une connexion logique entre une station source et une station destination ; les paquets transitent donc "en séquence" sur cette connexion logique (appelée circuit virtuel). Dans un service non connecté, les paquets émis d'une station source sont transmis de manière indépendante à la station destination ; ils n'arrivent donc pas nécessairement en séquence.

Bien que la terminologie des services soit analogue à celle des modes de transmission de paquets (circuit virtuel et datagramme), il faut bien comprendre que les deux types de services sont indépendants des types de réseau utilisés. On peut en effet trouver les quatre situations suivantes :

service orienté connexion via un réseau à commutation de paquets de type circuit virtuel
service orienté connexion via un réseau à commutation de paquets de type datagramme
service non connecté via un réseau à commutation de paquets de type circuit virtuel
service non connecté via un réseau à commutation de paquets de type datagramme

X25

Le protocole X25 est utilisé dans plusieurs réseaux à commutation de paquets, notamment le réseau français TRANSPAC. Il s'agit en fait d'une pile de protocoles X25 résultant d'une normalisation par le CCITT (1976) et qui concerne les trois couches basses de l'ISO/OSI :

  • couche physique : X21, 
  • couche liaison : variante LAPB (Link Access Protocol - Balanced) de HDLC, 
  • couche réseau : X25.paquet. 

 

Le protocole X21 définit la jonction entre un ETTD (Equipement Terminal de Traitement de Données = ordinateur) et un point d'entrée sur un réseau X25, constitué d'un ETCD (Equipement Terminal de Circuit de Données). Le schéma ci-dessous définit l'interface X21 :

Le protocole HDLC, de la couche liaison, a été décrit au début de ce cours. Nous y renvoyons le lecteur.

Au niveau de la couche réseau,  les paquets X25 sont constitués à partir de l'information provenant de la couche supérieure. Une en-tête de paquet est ajoutée. Le paquet X25 est transmis à la couche liaison et est transformé en une trame HDLC :

X25 utilise le concept de circuit virtuel : 16 groupes de 256 canaux logiques peuvent être multiplexés entre un ETTD et un ETCD. Le format général d'un paquet de données X25 est décrit ci-dessous :

0001 : les paquets sont numérotés de 0 à 7 
0010 : les paquets sont numérotés de 0 à 127 

En addition aux paquets de données, des paquets de contrôle permettent de véhiculer de l'information de service (on se limite ici à la numérotation des paquets modulo 8) :

paquet d'appel : il est caractérisé par le code 00001111 ; il comporte les adresses réseau de la source et de la destination (ces adresses de longueur variable implique l'indication de ces longueurs) ; des services complémentaires peuvent être définis ; l'utilisateur peut ajouter jusqu'à 64 octets d'informations supplémentaires.
paquet de fermeture : il est caractérisé par le code 00010011 ; il comporte des indications analogues à celles du paquet d'ouverture ; il comporte aussi la raison de la fermeture du circuit virtuel.
paquet de contrôle : 3 paquets de contrôle sont principalement utilisés :

RR (Receive Ready) : acquittement des paquets de numéros antérieurs à P(R) ; type : 00001
RNR (Receive Not Ready) : le récepteur ne peut recevoir de paquets ; il faut reprendre à partir du paquet de numéro P(R) ; type : 00101. Ce paquet est utilisé pour le contrôle de flux ;
REJ (Reject) : le paquet reçu n'est pas accepté ; il faut reprendre à partir du paquet de numéro P(R) ; type : 01001. Ce paquet est utilisé pour le contrôle d'erreur.

 La vie d'un circuit virtuel comporte trois phases : ouverture, transfert de données, fermeture . Dans la phase d'ouverture, un paquet spécial définit le chemin (circuit virtuel) que prendront les paquets suivants; à chaque noeud du réseau, il réserve les ressources nécessaires; la phase de transfert de données donne lieu à la circulation de paquets en séquence le long du circuit virtuel précédemment définit; enfin, un paquet de fermeture libère les ressources mobilisées. Le schéma ci-dessous décrit un échange typique de paquets X25 entre deux stations A et B :

On notera que l'acquittement peut s'effectuer soit via un paquet de données, soit par un paquet de contrôle si aucun paquet de données n'est à émettre.

Pour assurer la connexion de terminaux asynchrones (mode caractère), comme le Minitel par exemple, il est nécessaire de prévoir une interface dont le rôle est de convertir les caractères en paquets et réciproquement ; il s'agit d'un PAD (Paquet Assembleur Désassembleur).