COMMUTATEUR DE TRAMES NUMERIQUES
Domaine de 1 ' invention La présente invention concerne le domaine des systèmes numériques de contrôle, destinés notamment à des équipements embarqués tels que des équipements industriels, aéronautiques, automobiles, ferroviaires ou navires.
Le principe général de tels systèmes est bien connu : il s'agit par exemple de réseaux Ethernet commutés. Ethernet est un protocole de réseau local à commutation de paquets. Bien qu'il implémente la couche physique (PHY) et la sous-couche Media Access Control (MAC) du modèle IEEE 802 . 3 , le protocole Ethernet est classé dans les couche de liaison de données et physique, puisque la couche LLC (Logical Link Control) 802 . 2 fait la charnière entre les couches supérieures et la sous-couche MAC (Media Access Control) qui fait partie intégrante du processus 802 . 3 avec la couche physique, car les formats de trames que le standard définit sont normalisés et peuvent être encapsulés dans des protocoles autres que ses propres couches physiques MAC et PHY. Ces couches physiques font l'objet de normes séparées en fonction des débits, du support de transmission, de la longueur des liaisons et des conditions environnementales.
L'Ethernet est basé sur le principe de membres (pairs) sur le réseau, envoyant des messages dans ce qui était essentiellement un système radio, captif à l'intérieur d'un fil ou d'un canal commun, parfois appelé l'éther. Chaque pair est identifié par une clé globalement unique, appelée adresse MAC, pour s'assurer que tous les postes sur un réseau Ethernet aient des adresses distinctes.
On connaît dans 1 ' aéronautique le bus AFDX basé sur le routage de trames Ethernet au moyen de commutateurs
centraux appelés "hubs", réduisant le problème d ' indéterminisme lié au conflit d'accès physique au médium.
On connaît aussi des solutions utilisées dans l'industrie spatiale, connues sous le nom de « Spacewire », un bus informatique basé historiquement sur le standard IEEE 1355 et spécifié sous forme de standard Européen (ECSS-E-ST-50- 12C) .
Dans le domaine automobile, l'état de l'art comprend la technologie CAN. Le bus CAN (Controller Area Network) est un bus système série très répandu dans beaucoup d'industries, notamment l'automobile. CAN repose entièrement sur CSMA, avec arbitrage des collisions au niveau du bit "CSMA/BA". Il a été normalisé avec la norme ISO 11898. II met en application, comme ceux cités précédemment, une approche connue sous le nom de multiplexage, qui consiste à raccorder à un même câble (un bus) une pluralité de calculateurs qui communiqueront donc à tour de rôle. Cette technique élimine le besoin de câbler des lignes dédiées pour chaque information à faire transiter (connexion point-à-point). Dès qu'un système (voiture, avion, réseau téléphonique...) atteint un certain niveau de complexité, 1 ' approche point-à-point devient impossible du fait de l'immense quantité de câblage à installer et de son coût (en masse, matériaux, main d' œuvre, maintenance).
L'introduction des bus multiplexés (principalement le CAN) dans l'automobile avait pour objectif de réduire la quantité de câbles dans les véhicules (il y a jusqu'à 3 km de câbles par voiture), mais elle a surtout permis l'explosion du nombre de calculateurs et capteurs distribués dans tout le véhicule, et des prestations correspondantes (baisse de consommation, dépollution, sécurité active/passive, confort, détection des pannes...), tout en n'augmentant pas trop les longueurs câblées.
Pour l'industrie automobile, la solution Ethernet ou AFDX n'est pas appropriée car elle est trop complexe donc chère et manquant de réactivité. En particulier les trames sont lourdes et peu réactives car prévues pour suivre un routage complexe, avec collisions pour Ethernet ou routeurs pour AFDX. Il en résulte en outre des composants de contrôle complexes et donc coûteux.
La solution « CAN bus » est économique mais présente l'inconvénient d'un manque de robustesse logicielle et de performances médiocres, ne permettant pas une utilisation performante dans un système de calculateurs embarqués .
La solution Spacewire est performante et potentiellement économique au niveau des composants, mais présente l'inconvénient d'un manque de souplesse, en particulier pour réaliser des systèmes complexes, l'avantage de coût devenant discutable à l'échelle du système.
État de la technique
L'état de la technique le plus proche est celui enseigné par la demande de brevet américaine US2010/0061241 qui propose une solution de commutation comportant une matrice de commutation à étages multiples comportant une pluralité de tampons d'entrée et une pluralité de ports de sortie, configuré pour être couplé à une pluralité de dispositifs embarqués. Ce contrôleur est commandé par un logiciel pendant la configuration et la surveillance, pour envoyer un signal de commande d'écoulement à un tampon d'entrée à partir de la pluralité de tampons d'entrée lorsqu'il se produit une congestion au niveau d'un port de sortie.
Ce document propose un mécanisme permettant de suspendre la propagation d'une file de trames pour laisser passer une autre file de trames, ce qui conduit évidemment à
une inversion de l'ordre temporel de réception de ces différentes trames.
En particulier, la notion de «trame» n'est évoquée dans ce document que dans le paragraphe [25] pour préciser la vitesse de transmission des files ("queue") constituée d'une pluralité de trames entre lesquelles l'espacement temporel n'est pas défini. Ce paragraphe précise en particulier que la «suspension de la transmission» peut être indéfinie, ce qui implique qu'une file (et l'ensemble de trames qu'il contient) peut ne jamais être transmise par le commutateur proposé dans l'art antérieur.
On connaît aussi la demande de brevet américain US2005/0047334 décrivant un commutateur de type Fibre Channel qui permet de suivre l'état d'encombrement des ports de destination dans un masque XOFF à chaque entrée.
Une cartographie permet des changements dans le masque de XOFF pour déclencher une primitive à un port amont qui fournit un contrôle de flux de canal virtuel.
Le masque de XOFF est également utilisé pour éviter l'envoi de trames à un port encombré.
Au lieu de cela, ces images sont stockées sur une file d'attente unique différée, puis traitées d'une manière conçue pour maintenir la commande de trame.
Un système de routage applique diverses règles de routage en parallèle pour effectuer le routage de la vitesse ligne .
La matrice de commutation préférée est basée sur la cellule, avec les techniques utilisées pour gérer la maintenance de la voie pour des trames de longueur variable et pour s'adapter à divers taux de transmission dans le système.
Inconvénients de l'art antérieur
Les solutions proposées dans l'art antérieur présentent un inconvénient majeur, car ils ne garantissent pas
l'ordre temporel d'émission des trames et la conformité à l'ordre temporel de réception de ces trames.
Or, les applications, dans le contexte Ethernet, admettent éventuellement une inversion ou une altération de l'ordonnancement des trames, or de nombreuses applications dans le contexte Internet, imposent le strict respect de l'ordonnancement temporel des trames. Mais dans tout les cas, lorsque l'ordonnancement temporel des trames n'est pas garanti par le réseau, il est nécessaire de prévoir des solutions complémentaires pour restaurer en amont l'ordonnancement temporel des trames. Cela introduit trois conséquences :
il est nécessaire de prévoir des ressources matérielles et logicielles additionnelles souvent importantes (il s'agit de la «pile de communication»)
- cela introduit un risque supplémentaire résultant de cette complexité de moyens matériels et informatiques
- cela introduit des temps de traitement et des retards préjudiciables dans les applications en temps réel. Solution apportée par l'invention
La présente invention vise à remédier à ces inconvénients en proposant une solution universelle robuste, flexible et performante.
A cet effet, l'invention concerne plus particulièrement, selon son acception la plus générale, un commutateur de trames numériques échangées avec un système informatique externe, ledit commutateur comportant au moins un port d'entrée, au moins un port de sortie et une matrice de commutation caractérisé en ce que ledit port entrant comporte en outre:
- Un premier moyen de validation de la trame entrante
- Un deuxième moyen de routage de ladite trame validée
- Un troisième moyen de stockage temporaire de la trame entrante validée
- ledit moyen de stockage temporaire de la trame entrante validée étant commandé par une information de type « contrôle de flux » provenant de ladite matrice de commutation,
et en ce que ledit port sortant comprend :
- un moyen de stockage temporaire de la trame sortante commandé par une information de type « contrôle de flux » provenant dudit système informatique externe
ledit commutateur de trames numériques fonctionnant selon un mode FIFO (premier entrant, premier sortant), ce qui suppose de ne pas accorder de priorité à certaines trames comme avec Ethernet et AFDX.
On entend par « trame numérique au sens du présent brevet » un paquet de données indissociables commençant par un marqueur de début de trame ou en-tête, des données numériques et un marqueur de fin de trame servant également à vérifier l'intégrité de la trame. La longueur de la trame n'est pas nécessairement fixe, mais elle peut être précisée dans l'entête pour faciliter l'identification de la position de la balise de fin de trame.
Un ensemble de trames ( frame en anglais) constitue un message, transporté sous forme d'une file (queue en anglais) en sein de laquelle l'ordre des trames peut être perturbé sans inconvénient dans le contexte Ethernet, et dans lequel l'espacement temporel des trames consécutives n'a qu'une importance secondaire : un message peut rester en attente, en attendant l'arrivée de toutes ses trames.
Dans le contexte du temps réel dur, qui est plus spécifiquement celui de l'invention, il arrive que l'ordre des trames et l'espacement temporel soit critique et non modifiable .
De préférence, le commutateur de trames numériques selon l'invention les propage en préservant leur intégrité
temporelle, en plus de leur intégrité logique qui va de soi dans l'état de l'art.
Selon une première variante, l'un au moins desdits ports entrant et/ou l'un au moins desdits ports sortant est associé à un coupleur physique de réseau.
Selon une deuxième variante, l'un au moins desdits ports entrant et/ou l'un au moins desdits ports sortant est relié à un calculateur local.
Avantageusement, il comporte une pluralité de calculateurs . Selon un exemple de réalisation, l'un au moins desdits ports comporte une interface physique série.
Selon un autre exemple de réalisation, l'un au moins desdits ports comporte une interface physique parallèle.
Selon un autre exemple, le commutateur comporte un seul port entrant et un seul port sortant formant un canal de communication bidirectionnel. Selon une variante avantageuse, le commutateur selon l'invention comporte en outre une mémoire pour l'enregistrement d'un fichier numérique de description :
- des règles de validation d'une trame,
- des règles de routage applicable à chaque trame.
L'invention concerne aussi un système caractérisé en ce qu'il comporte plusieurs commutateurs conformes à l'une au moins des solutions précédentes, et une mémoire distribuée sur tous les commutateurs pour l'enregistrement des règles de
validation des trames et des règles de routage applicable chaque trame par chaque commutateur.
Description détaillée d'un exemple non limitatif de
réalisation
L'invention sera mieux comprise à la lecture de la description d'un exemple non limitatif qui suit, se référant aux dessins annexés où :
- la figure 1 représente un schéma de principe d'un circuit utilisant des commutateurs selon l'invention
- la figure 2 représente une vue schématique d'un
commutateur de trames
- la figure 3 représente une vue schématique de la trame des données
- la figure 4 représente une vue schématique de
1 ' artichecture d'un composant selon l'invention
- la figure 5 représente une vue schématique de la trame sortante
- la figure 6 représente une vue schématique du port de sortie
- la figure 7 représente une vue schématique d'une
application de coupleur de réseau
- la figure 8 représente une vue schématique d'une
application de passerelle de réseau
- la figure 9 représente une vue schématique d'une autre application de passerelle de réseau
- la figure 10 représente une vue schématique d'une
application de multiprocesseur
- la figure 11 représente une vue schématique d'une
architecture hétérogène
- La figure 12 illustre en traits pleins un système avec une liaison unique du commutateur selon l'invention (liaison 1202 pointillée)
- La figure 13 illustre un exemple de structure de trame
- La figure 14 illustre le modèle de la pile de
communication .
La figure 1 représente un exemple d'utilisation d'un commutateur numérique selon l'invention.
Ce commutateur de trames numériques (1) selon l'invention est composé de ports de communication (2, 4, 5, 6, 7) reliés par une matrice de commutation (3).
Les ports d'entrée (2,5) reçoivent des trames numériques de l'environnement extérieur. Les ports de sortie ( 6 ) émettent vers 1 ' extérieur des trames qui leur sont routées par la matrice de commutation (3). Les ports en entrée et en sortie peuvent être associés pour former des ports d'entrée/sortie (4,7).
La figure 2 représente une vue schématique d'un commutateur de trames comprenant :
- au moins un port d'entrée (71)
- la matrice de commutation (72)
- au moins un port de sortie (73)
Le port d'entrée (71) comprend une interface physique (31), par exemple un désérialiseur , pour une interconnexion avec un réseau, ou un port parallèle pour une interconnexion avec un calculateur voisin.
Le port comprend également un circuit électronique réalisant un contrôle d'intégrité de la trame, par exemple par des contrôles de type « checksum », CRC (contrôle de redondance cyclique), par test de parité ou détection d'erreur, ou encore par un procédé de type EDAC « Error détection and correction » .
A titre d'exemple non limitatif, un tel moyen est décrit dans le brevet européen EP2437172. Ce brevet décrit un circuit de détection et de correction d'erreurs (EDAC) pour un usage dans un système de mémorisation redondant, le circuit EDAC comprenant :
- une première entrée pour recevoir des premières données et informations de parité stockées par un premier dispositif de mémorisation ;
- une deuxième entrée pour recevoir des secondes données et informations de parité stockées par un second dispositif de mémorisation;
- une première sortie pour fournir les premières données ou les secondes données sur un bus de données.
Une première logique de contrôle de parité qui calcule si la parité est « bonne » ou « mauvaise » dans les premières données et informations de parité reçues. Une seconde logique de contrôle de parité calcule si la parité est « bonne » ou « mauvaise » dans les secondes données et informations de parité reçues. Une logique de comparaison binaire détecte des différences entre les premières données et les secondes données. La logique de comparaison binaire détecte des différences entre les premières informations de parité et les secondes informations de parité.
Une logique de sélection de données choisit les premières données ou les secondes données pour fournir à la première sortie sur la base de la parité calculée des premières données et des secondes données ainsi que des différences entre les premières données et les secondes données, et entre les premières informations de parité et les secondes informations de parité. Une logique de détection d'erreurs de bit unique ou de bits multiples détecte la présence d'erreurs de bits multiples dans les premières et secondes données et informations de parité sur la base des différences détectées entre les premières données et les secondes données et entre les premières informations de parité et les secondes informations de parité. Une logique d'erreurs de bit unique ou de bits multiples remet à zéro le système de mémorisation en réponse à des erreurs détectées de bits multiples, dans lequel le comportement du circuit EDAC est défini par un tableau logique.
Ce circuit réalise, ou la correction d'erreur, l'identification de la trame, l'extraction de l'identifiant de la trame, par exemple la première série d'information contenues dans la trame.
Cette donnée d'identification de la trame d'entrée est utilisée comme entrée d'une mémoire associative dans laquelle est enregistrée une table de correspondant associant à chaque entrée une vecteur de routage, par exemple sous la forme d'un mot de N bits (N correspondant au nombre de ports de sortie). Si tous les bits sont à l'état « vrai », la trame sera diffusée à tous les ports de sortie.
Le routage ( 33 ) consiste à associer ce vecteur de routage à la trame d'entrée validée. Le résultat de ce traitement est enregistré dans une mémoire de type FIFO (« first in, first out ») ( 34 ) traversante (« fall-through »). Le stockage n'intervient que si la sortie ne permet pas de propager immédiatement la trame sortante, notamment si le port de sortie n'est pas libre ou si la totalité des ports de sortie désignés par le vecteur de routage ne sont pas en mesure d'assurer simultanément et immédiatement la propagation .
Le port de sortie ( 73 ) comprend également une mémoire FIFO de stockage temporaire ( 61 ) , assurant le stockage uniquement lorsque la propagation n'est pas immédiatement possible.
Il comprend également une interface physique ( 62 ) série ou parallèle.
Une matrice ( 72 ) est constituée par un ensemble de multiplexeurs arrangés en graphe complet de type « full- mesh ». Elle assure la distribution des trames d'entrée validées vers les ports de sortie en fonction des vecteurs de routage associés par le routeur ( 33 ) . La matrice est traversée lorsqu'une trame d'entrée est à router vers une mémoire FIFO ( 61 ) disponible sur le port de sortie ( 73 ) correspondant.
La matrice de commutation (72) reçoit des trames numériques des ports d'entrée sur ses entrées (20) et les dirige vers une ou plusieurs de ses sorties (21) vers les ports de sortie correspondants du coupleur connecte des ports de sortie du commutateur de trames numériques selon l'invention. Une réalisation avantageuse est d'associer à chaque sortie de la matrice de commutation (72) un multiplexeur recevant toutes les entrées de la matrice de commutation .
La figure 3 représente un exemple de structure d ' une trame numérique .
La trame entrante commence par une clé d'identification ID (11) par laquelle le commutateur de trames identifie le routage qui lui sera appliqué.
L'identifiant de trame (11) est immédiatement suivi de données de contrôle ID_Val (12) et ces deux informations associées prouvent l'intégrité de 1 ' ID (11) et autorisent son décodage .
La charge utile de la trame numérique (13) suit, et elle peut être également accompagnée d'une clé de contrôle d'intégrité Data_Val (14).
Le port d'entrée (2) comprend les éléments décrits dans la Figure 4,
Les trames numériques provenant du monde extérieur par une interface physique (41) convertissant le format physique de la trame numérique dépendant du médium emprunté, en un format adapté à la propagation numérique interne par FIFO.
Une première étape (42) de validation contrôle l'intégrité du couple {ID (31) : ID_Val (32)} pour 1 ' accepter/rejeter .
L'identifiant ID de la trame acceptée est passé (47) à la table de routage (43) associée au port d'entrée. L'étape de routage (44) assigne à la trame entrante (48) le routage (49) enregistré dans la table (43).
La table ( 43 ) dispose également d'entrées logiques ( 46 ) aussi appelés drapeaux indiquant l'état du voisinage réseau du commutateur et utilise cette information pour sélectionner parmi les routes enregistrées pour une trame celle à emprunter. L'information de voisinage peut consister de manière non limitative en la disponibilité matérielle d'un port de sortie, d'un lien extérieur, du commutateur voisin ou proche .
La trame est ensuite à disposition de la matrice de commutation ( 3 ) qui peut être disponible si les ports de sortie désignés par le routage de la trame sont prêts à la recevoir, auquel cas elle consomme la trame immédiatement, ou indisponible auquel cas la trame est retenue dans la mémoire de stockage du port d'entrée.
La figure 5 montre la trame numérique entrante
( 11 , 12 , 13 , 14 ) acceptée et routée par l'adjonction d'un en-tête préliminaire (15) désignant à la matrice de commutation le ou les ports de sortie que ladite trame doit emprunter.
Une réalisation avantageuse de ce routage interne consiste en un mot parallèle (vecteur) dont chaque bit ou groupe de bits correspondant à chaque port de sortie est mis à VRAI pour que ledit port de sortie reçoive un exemplaire de la trame numérique. Il est ainsi facile de router la trame vers un, plusieurs ou tous les ports de sortie. Ce vecteur est avantageusement stocké tel quel dans la table de routage ( 43 ) , associé à 1 ' ID ( 31 ) correspondant à ce comportement de routage .
Le port de sortie représenté en figure 6 comprend : - un moyen de stockage de trame ( 61 ) , typiquement une Fifo qui se vide à l'extérieur dès que la sortie est disponible, éventuellement la Fifo ( 61 ) est juste traversée si la voie vers l'extérieur est disponible.
De même pour la mémoire de stockage du port d'entrée (45), de sorte qu'une trame peut typiquement traverser le commutateur selon 1 ' invention en quelques coups
d'horloge interne nécessaires à la validation de 1 ' ID et au routage .
La figure 8 représente une vue schématique d'un premier exemple d'application : l'utilisation du commutateur selon l'invention (1) pour relier de la manière la plus classique un réseau (83) via un port série (82) d'une part, et d'autre part un calculateur (86) par un bus parallèle (85) via un second port (84). L'interface réseau (31,62) des ports est un sérialiseur pour le port (82) et un port parallèle pour (84).
Dans l'exemple d'application illustré par la figure 9, le commutateur (1) selon l'invention est utilisé comme passerelle entre un réseau (91) et un réseau (92) physiquement dissimilaires, par exemple Ethernet 1000BASE-T et 100BASE-T, les interfaces physiques de chacun des deux ports réalisant la fonction de passerelle. Dans le cas illustré, les trames sont identiques logiquement et seul leur baud rate change.
Dans l'exemple d'application illustré par la figure 10, le commutateur (1) selon l'invention est utilisé comme passerelle entre un réseau (91) et un réseau (92) physiquement et logiquement dissimilaires, par exemple AFDX et Spacewire, associé à un calculateur (101) par un port et parallèle ( 16 ) .
La dissimilarité logique, correspondant à la fonction de passerelle complète, est gérée en dirigeant les trames en provenance d'un des réseaux vers le calculateur, qui les convertit au format logique du réseau destinataire et les lui envoie par le commutateur.
Dans l'exemple d'application illustré par la figure 11, le commutateur (1) selon l'invention est utilisé comme coupleur entre un réseau (91) et deux calculateurs (111, 112).
Cet arrangement permet de réaliser avantageusement une structure bi- ou multi-processeur, dans laquelle chacun a un accès égal au réseau ainsi qu'à l'autre ou aux autres processeur ( s ) . Ces structures sont avantageuses pour, de
manière non limitative, multiplier la puissance de calcul en un point du système, mettre en redondance des ressources logiques, favoriser les échanges entre deux calculateurs.
La figure 12 représente un système hétérogène physiquement et logiquement réalisé avec des commutateurs selon l'invention, dont la structure physique comprend :
- un 1er sous-système de commutateurs (1211, 1212, 1213, 1214, 1215) réalise une structure de bus, dans laquelle l'utilisation en écriture du médium commun (1210) est partagée temporellement par les calculateurs associés.
- un 2ème sous-système comprenant deux commutateurs (1212, 1213) et un médium (1220) est également arrangé en bus, les commutateurs (1212, 1213) partageant ainsi deux bus physiquement séparés, ce qui constitue un avantage en disponibilité dans le système.
- un 3ème sous-système comprenant les calculateurs (1230, 1231, 1232) forme une chaîne à l'aide des coupleurs (1233, 1234). Cet arrangement est avantageux pour réunir par exemple des capteurs nombreux à sécurité non critique avec un minimum de câblage. Si le format des trames entre sous- systèmes est différent, le calculateur (1230) en début de chaîne a la possibilité de fonctionner en passerelle logique pour échanger les trames de la chaîne (1230, 1231, 1232) et celles des bus (1210) ou (1220).
- un 4ème sous-système réunit en anneau physique les commutateurs (1240 à 1246), où (1240, 1241, 1243, 1244, 1246) sont chacun associés à un calculateur, (1245) associé à deux calculateurs, (1242) servant de liaison vers le cinquième sous-système .
L'arrangement en anneau est avantageux pour relier étroitement des calculateurs avec une distribution homogène de bande passante, et offre une grande sécurité intrinsèque en cas de perte d'un lien ou d'un nœud.
- un 5ème sous-système rassemble en étoile autour du commutateur (1250) quatre calculateurs (1251, 1252, 1253,
1254). Une telle structure est avantageuse pour des bus tels qu ' AFDX .
le lien inter-système (1201) entre l'anneau (1240 : 1246) et l'étoile (1251 : 1254) apporte une protection au système contre la défaillance des commutateurs (1242) et (1250) en s ' opposant à la propagation de pannes vers respectivement l'étoile et l'anneau.
Le système en Figure 12 présente un point faible évident par la liaison unique du commutateur (1214) au bus (1210). Il est simple avec le commutateur selon l'invention de pallier cette faiblesse en instanciant, à titre d'exemple non limitatif, une liaison (1202) figurée en pointillé entre les commutateurs (1250) et (1215). La scission du système devient ainsi beaucoup moins probable, par perte simultanée de deux liens.
La finalité du système utilisant le commutateur est d'acheminer les trames numériques entre calculateurs. Les éléments de ce service sont assurés par exemple comme suit :
- une étape de configuration du système de type « ordonnancement total»
- on tabule la totalité des trames échangées entre les calculateurs
- on détermine l'emplacement des calculateurs dans la géométrie du réseau
- on détermine le chemin le plus favorable pour chaque trame et optionnellement les chemins secondaires en cas de perte de certains éléments du système ou de composants du système
- on génère une table associée à chaque port d'entrée des commutateurs selon l'invention, ladite table étant enregistrée dans une mémoire associative prenant en entrée l'identifiant de la trame et délivrant en sortie son vecteur de routage préalablement ordonnancé.
Il est avantageux de permettre au calculateur proche du commutateur de mettre à jour les drapeaux de la
table de routage en fonction d'algorithmes de reconnaissance de l'état du système.
La figure 13 illustre un exemple de structure de trame .
Cet exemple de structure de trame correspond aux champs de trame des réseaux Ethernet et IEEE 802.3 qui font l'objet des définitions suivantes :
• un préambule (2000) constitué par une séquence binaire de 1 et de 0 alternés signalant au destinataire qu'il s'agit d'une trame Ethernet ou IEEE 802.3. La trame Ethernet comporte un octet supplémentaire qui est 1 ' équivalent du champ d' en-tête de la trame IEEE 802.3. en-tête de trame - Caractère séparateur du réseau IEEE 802.3 se terminant par deux bits 1 consécutifs, qui servent à synchroniser les portions réception des trames de toutes les stations du réseau local. Le début de la trame est explicitement précisé dans la norme Ethernet.
Les adresses d'origine (2001) et de destination (2002) : il s'agit des trois premiers octets des adresses sont attribués par 1 ' IEEE au fabricant. Les trois derniers octets sont choisis par le fabricant de la carte réseau Ethernet ou IEEE 802.3. L'adresse source est toujours celle d'un destinataire unique (nœud simple). L'adresse de destination peut être une adresse simple, une adresse multipoint (groupe) ou une adresse de diffusion (tous les nœuds ) .
• Une information (2003) de type de protocole (Ethernet) qui précise le protocole de couche supérieure qui reçoit les données une fois que le traitement Ethernet est terminé.
• Une information (2004) définissant la longueur du champ de données (IEEE 802.3) -indiquant le nombre d'octets de données suivant ce champ. · Un champ parfois appelé « Payload » (2005) des données (Ethernet) : Une fois le traitement de couche physique et de couche liaison terminé, les données contenues dans la trame sont transmises à un protocole de couche supérieure précisé dans le champ type. Bien que la version 2 d'Ethernet ne spécifie pas de bourrage, contrairement à
1 ' IEEE 802.3, Ethernet s'attend à recevoir au moins 46 octets de données. Une fois le traitement de couche Physique et de couche Liaison terminé, les données sont transmises à un protocole de couche supérieure, qui doit être précisé dans la portion données de la trame. Si les données contenues dans la trame sont insuffisantes pour occuper les 64 octets qui représentent la taille minimale de la trame, des octets de bourrage sont ajoutés à la trame .
• Une séquence (2006) de contrôle de trame (FCS) contenant un code de redondance cyclique (CRC) de 4 octets, qui est créée par le dispositif émetteur et recalculée par le dispositif récepteur pour s'assurer que la trame n'a pas été altérée en cours de route.
La figure 14 illustre le modèle de la pile de communication, conforme par exemple au modèle OSI (pour Open Systems Interconnexion) correspondant à la norme ISO 7498.
Le modèle OSI a été conçu en couches, de façon à ce que chaque couche ait une juridiction bien précise. Toute couche ne communique qu'avec les couches qui lui sont adjacentes et toutes les couches sont indépendantes de 1 ' implémentation des autres couches. Le but est d'avoir la
possibilité de modifier 1 ' implémentation d'une couche sans que ce changement affecte les autres.
La norme ISO 7498 fait la différence entre trois concepts qui sont à la base de toutes les couches:
· Service: le service est une description conceptuelle de fonctionnalités
• Protocole: le protocole est un ensemble de règles qui implémente un service
• Interface: l'interface est le moyen concret d'utiliser le service, la plupart du temps une librairies de fonctions.
Les sept couches qui composent le modèle sont généralement séparées en deux groupes: les quatre couches inférieure (3000 à 3004) s ' occupant plutôt de la communication (elles sont souvent implémentées par le système d'exploitation), et les trois couches supérieur (3005 à 3007) s ' occupant plutôt de l'aspect application (elles sont souvent implémentées par une librairie ou un programme spécifique).
Ces couches sont les suivantes:
Le programme ou l'utilisateur communique avec la couche application (3007), qui elle communique avec la couche présentation (3006), qui communique avec la couche session (3005), et ainsi de suite. La couche physique (3001) communique avec la couche physique de l'autre côté du "tunnel" pour former un canal de communication, puis les données remontent les couches jusqu'à la couche application (3007), pour atteindre le programme (et l'utilisateur) à l'autre bout.
Au bas de la pyramide se trouve la couche physique (3001). Son rôle consiste à transmettre des signaux physiques (électriques ou optiques) entre deux machines. Son service est généralement limité à la transmission d'un bit ou d'une chaîne de bits, et sait comment convertir des bits en signaux physiques, et vice-versa.
Des exemples:
10Base-T, 100Base-T, câble coaxial, Wi-Fi, Bluetooth...
À l'étage juste au-dessus, la couche liaison de données (3002) gère la communication entre deux machines adjacentes reliées par un support physique quelconque. Donc ici, on peut transmettre une trame d'un appareil à un autre dans le même LAN (Local Area Network). Il n'y a aucune possibilité de sortir du réseau local, donc aucune nécessité pour le routage (qui sera géré plus haut). En fait, l'adressage utilisé par la couche 2 est un adressage physique (comme les adresses MAC), rendant impossible la détection d'un réseau ou d'un sous-réseau.
La couche de liaison de données (3002) reçoit des paquets de la couche (3003) pour organiser des trames, transmises à la couche physique (3001) qui peut implanter des moyens pour détecter et corriger les erreurs de transmission.
Une trame de la couche liaison de données (3002) contient une entête, une adresse de destination, une adresse source, des données, et un "postambule" (habituellement appelée ' trailer) .
Des exemples:
Ethernet, Frame Relay, PPP ( Point-to-Point
Protocol), Token ring, les communications série.
La couche réseau (3003) transmet ses paquets d'un ordinateur à un autre en fonction de la topologie du réseau et utilise un adressage routable et hiérarchique, contrairement à la couche (3002). Elle est responsable d'envoyer des paquets de la source à la destination. L'invention concerne précisément le commutateur assurant le transport des trames de la couche ( 3002 ) .
La couche réseau (3003) assure le routage (trouver un chemin pour livrer des paquets d'un endroit à un autre à travers un réseau), le relayage (envoyer des paquets à un routeur qui pourra les router au destinataire), et le contrôle des flux (contrôler la congestion sur le réseau en aiguillant les paquets intelligemment).
Toutes les machines d'un réseau doivent implémenter la couche réseau ( 3003 ) et les couches inférieures ( 3001 et 3002 ) afin de pouvoir communiquer. Les routeurs, bien souvent, n ' implémentent rien au-dessus de la couche réseau ( 3003 ) , les couches supérieures ( 3004 à 3007 ) étant utiles uniquement aux appareils des extrémités.
Un paquet réseau contient lui aussi une entête et des adresses sources et destination, mais ce sont cette fois- ci des adresses réseau.
La couche réseau (3002) n'implémente pas nécessairement un contrôle d'erreur et certains paquets peuvent très bien arriver dans le désordre, ou ne jamais arriver, et l'expéditeur n'en sera pas informé. C'est le problème que l'invention permet de résoudre, en n'autorisant pas, contrairement à l'art antérieur, la possibilité d'une arrivée « dans le désordre » , en proposant une solution garantissant l'absence d'introduction d'un tel «désordre » en cours de transmission. Au contraire, l'art antérieur US2010/0061241 propose un fonctionnement introduisant nécessairement un tel « désordre » puisqu'il prévoit de suspendre dans certains cas des files, et donc d'inverser l'ordre temporel des trames qu'il propage.
Des exemples:
IP (le plus connu!), IPX, IPSec.
La couche transport ( 3004 ) est responsable de fournir un canal virtuel de communication entre deux points. Elle ne se soucie aucunement de la façon dont les données vont ultimement atteindre la destination (c'est le rôle de la couche ( 3003 ) . La couche ( 3004 ) est là pour garantir que toutes les données vont se rendre d'un point à un autre, dans l'ordre voulu, sans erreur ni redondance. C'est donc ici qu'on implémentera le plus souvent les méthodes de contrôle d'erreur. Les méthodes exactes utilisées varieront d'une implémentation à l'autre, et il existe cinq types de protocoles de transports, chacun avec son degré de correction:
du type TPO (qui ne corrige à peu près rien et qui se fie que le réseau est parfait), au type TP4 (qui a une correction d'erreur extensive et qui suppose que le réseau n'est pas fiable - comme Internet).
La couche (3004) manipule des messages (parfois appelés segments ou datagrammes) et les envoie à destination, fournissant une interface qui voit la communication comme un flot d'octets de taille variable selon les besoins.
La couche (3004) amène également la notion de ports, qui ne sont finalement rien d'autre que des façons d'adresser des entités multiples situées au même point du réseau. Les ports sont donc ajoutés aux adresses à partir de cette couche.
Des exemples:
TCP (évidemment), UDP (beaucoup moins fiable)
La couche session (3005) apporte les mécanismes nécessaires à l'ouverture, la gestion et la fermeture d'une session de communication entre deux processus. Elle permet 1 ' authentification, la gestion des permissions et la restauration de session dans des cas de pertes de communication. C'est elle qui permet la création d'un "tunnel virtuel" entre deux processus distants. Ce tunnel pourra être utilisé en full duplex, half duplex ou simplex, selon 1 ' implémentation .
Lorsque la communication est ouverte et que les données commencent à arriver, elle relaie le tout à la couche 4 pour le transport proprement dit. La couche session n'est aucunement concernée par le transport des données. Tout ce qui importe pour elle, c'est la gestion du canal dans lequel les données vont transiter.
Dans le monde TCP/IP, ces fonctionnalités sont en fait encapsulées dans la couche 4 (TCP) ou laissées au soin de la couche d'application. En effet, TCP/IP ne respecte pas tout à fait le modèle OSI et prend quelques libertés...
Des exemples:
NetBIOS, RPC (Remote Procédure Call, un protocole utilisé par Windows pour bon nombre de services à accès distant), SSH La couche présentation (3006) s'occupe du
"formatage". C'est elle qui s'assure que les données de la couche application (3007) seront converties convenablement dans un format compréhensible pour l'autre partie. Elle s'occupera des formats de représentation de caractères (EBCDIC vers ASCII, par exemple), la représentation des chaînes de texte, 1 ' encryption et la décryption, etc.
Cette couche ne se soucie aucunement des paquets, datagrammes ou connexions. Elle ne fait que convertir des données afin de s'assurer qu'elles seront comprises correctement, puis les envoie à la couche (3005). Dans le monde TCP/IP, la couche présentation est fusionnée avec la couche application, qui s'occupe un peu de tout ça à la fois. C'est le cas par exemple de HTTP, qui est un protocole de couche application (3007) mais qui est capable de reconnaître et de convertir l'encodage des caractères.
Des exemples:
ASCII, EBCDIC (Extended Binary Coded Décimal Interchange Code), RDP (Remote Desktop Protocol)
La couche application (3007) est celle qui est utilisée par l'utilisateur. C'est dans cette couche que toutes les fonctionnalités utilisateur sont implémentées : les commandes permettant la gestion de la communication, le terminal virtuel, la détermination des ressources disponibles, la disponibilité des partenaires de communication, etc.
Des exemples:
HTTP, FTP, SMTP, POP3 , Telnet, BitTorrent, DHCP,
DNS, etc.
La présente invention concerne le fonctionnement et les spécificités des couches de communication (3001 à 3003) seulement, alors que la solution de l'art antérieur
US2010/0061241 concerne au contraire le fonctionnement de la couche de communication supérieure de transport (3004).