Brevet FR2851708A1 — publié le 20040827

2002-0 Domaine technique La présente invention concerne de façon générale la transmission de paquets de voix et de données dans un réseau de transmission de données numériques et plus particulièrement une méthode pour transmettre des paquets de haute priorité dans un réseau de transmission IP. Etat de la technique Dans un réseau de transmission de données numériques, les données provenant d'un grand nombre d'utilisateurs sont transmises en série d'un noeud du réseau à un autre noeud du réseau jusqu'à leur destination finale respective. A cause de l'évolution des réseaux vers des combinaisons de sous-réseaux de plus en plus complexes avec une architecture hétérogène, il est clair qu'il y aura dans le futur la nécessité de supporter des applications de traitement distribuées à travers des réseaux principaux à haute vitesse pouvant transporter du trafic LAN, de la voix, de la vidéo parmi des ordinateurs hôtes et des stations de travail. Le défi fondamental pour l'utilisation de réseaux haute vitesse est peut-être 15 de minimiser le temps de traitement dans chaque noeud du réseau. La commutation par paquets est maintenant utilisée couramment pour effectuer des communications par trames à protocoles multiples dans des environnements de traitement distribuées. Pour réaliser ceci, des paquets transportant un trafic par trames peuvent être affectés d'une basse priorité à temps non réel alors que des paquets transportant du trafic de voix et de 20 vidéo peuvent être affectés d'une haute priorité en temps réel. Un noeud d'un réseau par commutation de paquets contient des mémoires tampons pour emmagasiner des paquets attendant d'être transmis sur les liens de communication. Des paquets attendant d'être transmis peuvent être emmagasinés dans des mémoires tampon gérées de façon différente, dépendant de la priorité affectée aux paquets. Plusieurs procédures de service peuvent être adoptées dans le but de transmettre des paquets se trouvant dans des queues de priorités différentes telles que la transmission sans préemption, la préemption avec re-transmission ou la préemption avec reprise. Quand aucune préemption n'est utilisée, la priorité est examinée seulement pour déterminer dans quelle queue sélectionner le prochain paquet à transmettre. Si un paquet à haute priorité est placé dans la queue 30 alors qu'un paquet basse priorité est en cours de transmission, le paquet haute priorité doit attendre jusqu'à ce que la transmission en cours soit terminée. Une procédure de préemption avec 2 2002-0 retransmission signifie que le noeud arrêtera la transmission du paquet basse priorité à l'arrivée d'un paquet haute priorité et transmettra le paquet haute priorité. Une fois que les paquets haute priorité ont été transmis, la transmission du paquet basse priorité préempté sera reprise à partir du début du paquet. Une procédure de préemption avec reprise est similaire sauf que la transmission 5 du paquet basse priorité préempté est reprise à partir du point d'interruption plutôt qu'à partir du début. Aussi bien la procédure de transmission sans préemption que la procédure de préemption avec re-transmission peuvent être implémentées en utilisant le protocole HDLC à couche MAC existant. Pour la procédure de préemption avec reprise, un protocole HDLC à couche MAC 10 modifié est décrit dans le document EP 0.582.537 o trois types de drapeaux spécifiques sont utilisés pour délimiter les paquets de façon à permettre à des paquets haute priorité de préempter temporairement des paquets basse priorité. Mais ce système exige que le matériel soit capable d'analyser le flux de bits entrant, de reconnaître des drapeaux non standard spéciaux en plus des drapeaux HDLC, et de mettre en oeuvre un protocole pour vérifier un ensemble de règles à la 15 détection de ces drapeaux. Par conséquent, un matériel spécial est nécessaire dans ce but. Un système décrit dans US 5,557,608 permet de remédier à l'inconvénient ci-dessus. Dans ce système, un paquet temps réel entrant est placé après le bloc de données du paquet en temps non réel en cours de transmission. Ceci est réalisé en transmettant chaque paquet associé à un octet de fin de paquet qui est utilisé pour indiquer le type de paquet, si le bloc courant de données 20 en temps non réel est préempté ou si la transmission du bloc courant de données en temps non réel a été reprise. Mais, lorsque le protocole utilisé entre un transmetteur et un récepteur est toujours le protocole Internet (IP), le mécanisme complexe décrit dans le brevet US 5,557,608 n'est pas nécessaire. Dans ce brevet, le protocole utilisé ne tire pas avantage du fait que tous les paquets de 25 couche 2 qui sont transmis commencent par un en-tête IP tel que défini par la suite du protocole IP. Par conséquent, un nouveau champ doit être ajouté pour le transport des indicateurs variés entre le transmetteur et le récepteur, ce qui représente un inconvénient majeur. Exposé de l'invention En conséquence, le principal but de l'invention est de réaliser une méthode pour transmettre des paquets de haute priorité dans un réseau de transmission utilisant le protocole IP 3 2002-0 dans lequel il n'est pas nécessaire d'ajouter des bytes supplémentaires pour indiquer que des données de basse priorité sont préemptées ou reprises après préemption. Un autre but de l'invention est de réaliser une méthode pour transmettre des paquets de haute priorité dans un réseau de transmission transportant seulement du trafic IP, dans lequel 5 seulement un bit réservé de l'entête IP du paquet indique si les données de basse priorité sont préemptées ou reprises. La méthode selon l'invention est utilisée dans un réseau de transmission basé sur le protocole Internet (IP) dans lequel des paquets de basse priorité ou des fragments de paquet de basse priorité sont transportés entre un transmetteur et un récepteur et au moins un paquet de 10 haute priorité doit être transporté du transmetteur au récepteur par préemption d'un paquet de basse priorité ou d'un fragment de paquet de basse priorité. Dans le transmetteur, la méthode consiste à déterminer si un paquet de basse priorité ou un fragment de paquet de basse priorité est en cours de transmission entre le transmetteur et le récepteur lorsqu'un paquet de haute priorité doit être transmis, mettre à 1 un bit réservé dans l'en-tête IP du paquet de haute priorité utilisé 15 comme indicateur de préemption si un paquet de basse priorité ou fragment de paquet de basse priorité est en cours de transmission, transmettre le paquet de haute priorité avec le indicateur de préemption mis à 1 entre le transmetteur et le récepteur, et reprendre la transmission du paquet de basse priorité ou fragment de paquet de basse priorité à la fin de la transmission du paquet de haute priorité. Dans le récepteur, la méthode selon l'invention consiste à déterminer si un paquet de haute priorité est reçu par le récepteur, déterminer dans ce cas si un bit réservé dans l'en-tête IP du paquet de haute priorité utilisé comme indicateur de préemption est activé, et attendre la réception d'un nouveau paquet si le bit réservé est activé indiquant que le paquet de haute priorité à préempté un paquet de basse priorité ou fragment de paquet de basse priorité. 25 Description brève des dessins Les buts, objets et caractéristiques de l'invention apparaîtront plus clairement à la lecture de la description qui suit faite en référence aux dessins dans lesquels: 4 2002-0 * la figure 1 est une représentation schématique de l'adaptateur de sortie d'un noeud dans un réseau de transmission de données numériques dans lequel l'invention peut être implémentée, * la figure 2 est un diagramme représentant le format d'un en-tête IP dans un paquet transmis en utilisant la méthode selon l'invention, * la figure 3 est un organigramme montrant les étapes de la méthode selon l'invention dans le transmetteur, et * la figure 4 est un organigramme montrant les étapes de la méthode selon l'invention mises en oeuvre dans le récepteur. Description détaillée de l'invention Un réseau à commutation par paquets comprend habituellement des noeuds de commutation et des liens de communication, ou liaisons entre ces noeuds. Chacun de ces noeuds est relié à au moins un autre noeud au moyen de un ou plusieurs liens de communication. Les 15 noeuds de commutation sont des systèmes de traitement de données comprenant des adaptateurs de transmission/réception connectés aux liens de communication. A chaque noeud, les paquets de données entrants sont sélectivement routés vers un ou plusieurs liens de communication sortants terminés à un autre noeud. Les décisions de routage sont prises en réponse aux informations dans l'en-tête du paquet de données. Dans un réseau de commutation par paquets, les paquets sont des éléments de données qui sont préfixés avec des en-têtes contenant des informations de contrôle et de routage qui identifient les utilisateurs expéditeurs et destinataires. Chaque noeud examine chaque en-tête et décide o envoyer le paquet de façon à ce qu'il se rapproche de sa destination. La figure 1 représente la structure de l'adaptateur de sortie comprenant deux dispositifs de 25 queue 10 et 12 et un planificateur 14. Les paquets reçus par l'adaptateur de sortie sont emmagasinés dans un des dispositifs de queue selon leur type, c'est-à-dire les paquets de voix dans la queue 10 et les paquets de données dans la queue 12. Le planificateur 14 met en oeuvre une procédure pour transmettre ces paquets à la jonction d'adaptateur. Les paquets de voix sont affectés d'une haute priorité par rapport aux paquets de données 30 qui sont affectés d'une basse priorité de façon à réduire le retard pour les paquets de haute 2002-0 priorité. Pour chaque type de paquets, voix et données, les paquets sont servis en séquence, c'està-dire selon leur ordre d'arrivée. Un paquet emmagasiné dans le dispositif de queue 12 est servi seulement si le dispositif de queue 10 ayant la plus haute priorité est vide et la transmission de paquets de basse priorité est 5 interrompue lorsqu'un paquet de haute priorité arrive avant la fin de la transmission. Puis, la transmission du paquet de basse priorité est reprise après que tous les paquets de haute priorité contenus dans la queue 10 ont été transmis. En référence à la figure 2, chaque paquet comprend un en-tête MAC (donnant les adresses pour la couche 2), un en-tête IP et les données. L'en-tête IP d'un paquet comprend une pluralité de 10 champs parmi lesquels le champ "Type de Service" (TOS) et le champ "drapeaux" sont utilisés dans la présente invention. Le champ TOS est utilisé pour spécifier le type de service requis par la transmission dans le réseau IP, mais dans l'invention, sa valeur indique si la trame est un paquet de voix ou un paquet de données. En fait, plusieurs valeurs TOS peuvent indiquer des paquets de voix et peuvent aussi indiquer des paquets de données. On doit noter que, bien que 15 l'utilisation de l'octet TOS pour faire la discrimination entre les paquets de voix et de données est l'implémentation préférée, l'homme du métier peut aisément choisir d'autres mécanismes pour discriminer entre les paquets de voix et de données sans s'écarter de l'invention, par exemple en analysant les valeurs contenues dans le champ de protocole dans l'en-tête IP. L'autre champ utile dans l'invention est le champ "drapeaux" qui comporte un premier bit 20 réservé qui devrait être mis à zéro. Ici, ce bit est utilisé en tant que bit indicateur. Dans les paquets de données, le bit est utilisé, lorsqu'il est activé, en tant que "indicateur de début de paquet" indiquant le premier segment du paquet de données. Dans les paquets de voix, le bit est utilisé, lorsqu'il est activé, en tant que "indicateur de préemption" indiquant qu'un paquet de voix a préempté un paquet de données. Dans le transmetteur, lorsqu'un paquet (une trame IP, ou un fragment de trame IP s'il y a fragmentation) est prêt à être transmis, le premier segment (le seul segment si aucune préemption n'est survenue) a son indicateur de début de paquet qui est activé. Lorsque le paquet est préempté, tous les segments excepté le premier ont leur indicateur de début de paquet qui n'est pas activé. En d'autres termes, lorsque la transmission du paquet de données est reprise parce que la 30 transmission d'un paquet de voix a été terminée et qu'il n'y a pas de nouveau paquet de voix dans la queue, tous les segments suivants commencent avec un en-tête IP du paquet dupliqué, 6 2002-0 l'indicateur de début de paquet n'étant pas activé dans ces segments. Lorsque la transmission d'un paquet de données ou d'un segment de paquet de données a été suspendue parce qu'il y a un ou plusieurs paquets de voix à transmettre, tous les paquets de voix transmis avant la fin de la transmission du paquet de données ont leur indicateur de préemption qui est activé. La méthode selon l'invention du côté transmetteur est maintenant décrite en référence à la figure 3. Elle débute aussitôt qu'un paquet est prêt à être transmis dans la queue (étape 30). Un test est effectué pour déterminer si c'est un paquet de voix ou non (étape 32). Si le paquet à transmettre est un paquet de données, l'indicateur de début de paquet est activé (étape 34) en tant que drapeau dans la mémoire du transmetteur et aussi dans le paquet de données pour informer le 10 récepteur que la transmission d'un nouveau paquet de données a commencé. Puis, cette transmission est commencée (étape 36) On détermine alors si un paquet de voix est prêt (étape 38). A noter que le test peut être effectué de façon asynchrone ou être effectué selon une période de temps prédéterminée qui doit être suffisamment petite pour minimiser le retard mis à traiter un paquet de voix prêt à être 15 transmis. S'il y a un paquet de voix prêt à être transmis, l'indicateur de début de paquet est désactivé dans le registre de drapeau (étape 40), l'indicateur de préemption est activé (étape 42) en tant que drapeau dans la mémoire du transmetteur et dans le paquet de voix, et le paquet de voix est transmis (étape 44) avant de reboucler le processus à l'étape de détermination qu'un paquet de voix est prêt (étape 38). Si aucun paquet de voix n'est prêt à être transmis, la transmission du paquet de données préempté est reprise (étape 46). Puis, on détermine si la fin de la transmission du paquet de données a été atteinte (étape 48). Sinon, le processus est rebouclé à l'étape de détermination qu'un paquet de voix est prêt (étape 38). Lorsque la transmission du paquet de données est terminée, on détermine s'il y a un 25 nouveau paquet prêt à être transmis (étape 50). Sinon, un paquet balai est transmis (étape 52), le but d'un tel paquet balai étant d'informer le récepteur que les données accumulées précédemment correspondent à un paquet complet. Après transmission de ce paquet balai et s'il y a un paquet prêt à être transmis, le procédé est rebouclé au début (étape 30). Lorsque, au début du procédé, il est déterminé qu'il y a un paquet de voix qui doit être 30 transmis, l'indicateur de préemption reste inactivé puisqu'il n'y a pas préemption d'un paquet de 7 2002-0 données. Puis, le paquet de voix est transmis (étape 54) et le procédé est rebouclé à l'étape de départ (étape 30). La méthode selon l'invention du côté récepteur est maintenant décrite en référence à la figure 4. Le procédé débute en déterminant si un paquet est reçu (étape 60). Cette étape est 5 rebouclée jusqu'à ce qu'un nouveau paquet soit reçu. Si c'est le cas, un test détermine si c'est un paquet de données (étape 62). Si c'est le cas, un test détermine si l'indicateur de début de paquet est activé dans le paquet de données (étape 64). Dans ce cas, le paquet reçu est en fait un segment qui est le début d'un nouveau paquet de données (ou un paquet complet). Tout paquet de données qui a été accumulé précédemment est alors transmis à la couche 3 supérieure du récepteur (étape 10 66). A ce point, un test est effectué pour déterminer si le paquet reçu est un paquet balai (étape 68). Si c'est le cas, le paquet peut être rejeté en toute sécurité (étape 70). Sinon, le paquet reçu est accumulé (étape 72) puisqu'il n'est pas possible de déterminer à ce point si le segment reçu est un paquet de données complet. Si, lorsqu'un paquet de données a été reçu, on détermine que l'indicateur de début de paquet est désactivé, ceci signifie que le paquet correspond à un segment d'un paquet de données. Comme il n'est pas encore possible de déterminer si le paquet de données correspondant a été entièrement reçu, le segment est ajouté aux segments du même paquet de données déjà accumulés (étape 74) et mémorisés dans le récepteur. Si on a déterminé (étape 62) qu'un paquet de données a été reçu, un tel paquet est transmis immédiatement à la couche supérieure (étape 76). Un test est effectué pour déterminer si l'indicateur de préemption est activé (étape 78). Si ce n'est pas le cas, ceci signifie que les segments accumulés précédemment peuvent être fournis à la couche supérieure du récepteur (étape 80). Si l'indicateur de préemption est activé, ceci signifie que le paquet de voix qui vient 25 d'être reçu a préempté un paquet de données et que le paquet de données qui a été reçu précédemment n'a pas été entièrement transmis. A noter que, après qu'un paquet balai a été rejeté (étape 70), ou après qu'un premier segment d'un paquet de données est accumulé (étape 72), ou après qu'un segment d'un paquet de données est ajouté au paquet de données déjà accumulé (étape 74), ou après qu'il a été déterminé 30 que l'indicateur de préemption n'a pas été activé (étape 78), ou après la fourniture du paquet de 8 2002-0 données accumulé précédemment à la couche supérieure (étape 80), le procédé est rebouclé au début pour attendre la réception d'un nouveau paquet. Bien que l'invention a été décrite selon un mode de réalisation préféré, d'autres modes de réalisation et modifications peuvent être mis en oeuvre par l'homme du métier sans sortir du cadre de l'invention. 9 2002-0153 REVENDICATIONS 1. Méthode pour transmettre des paquets de haute priorité dans un réseau de transmission basé sur le protocole Internet (IP) dans lequel des paquets de basse priorité ou des 5 fragments de paquet de basse priorité sont transportés entre un transmetteur et un récepteur et au moins un paquet de haute priorité doit être transporté dudit transmetteur audit récepteur par préemption d'un paquet de basse priorité ou d'un fragment de paquet de basse priorité; ladite méthode étant caractérisée en ce que, dans le transmetteur, elle 10 comprend les étapes de: - déterminer si un paquet de basse priorité ou un fragment de paquet de basse priorité est en cours de transmission entre ledit transmetteur et ledit récepteur lorsqu'un paquet de haute priorité doit être transmis, - mettre à 1 un bit réservé dans l'en-tête IP dudit paquet de haute priorité utilisé 15 comme indicateur de préemption si un paquet de basse priorité ou fragment de paquet de basse priorité est en cours de transmission, - transmettre ledit paquet de haute priorité avec ledit indicateur de préemption mis à 1 entre ledit transmetteur et ledit récepteur, et - reprendre la transmission dudit paquet de basse priorité ou fragment de paquet 20 de basse priorité à la fin de la transmission dudit paquet de haute priorité. 2. Méthode selon la revendication 1, dans laquelle ledit indicateur de préemption n'est pas mis à 1 s'il n'y a pas de paquet de basse priorité ou fragment de paquet de basse priorité en cours de transmission avant que ledit paquet de haute priorité ne soit transporté dudit 25 transmetteur audit récepteur. 3. Méthode selon la revendication 2, dans laquelle ledit bit réservé dans l'en-tête IP est utilisé comme indicateur de début de paquet dans chaque paquet de basse priorité ou fragment de paquet de basse priorité transporté entre ledit transmetteur et ledit récepteur. 30 4. Méthode selon la revendication 3, dans laquelle ledit bit réservé utilisé comme indicateur de début de paquet est mis à 1 dans le premier segment d'un paquet de basse priorité ou fragment de paquet de basse priorité transporté entre ledit transmetteur et ledit récepteur, ledit bit réservé étant désactivé lorsqu'un paquet de haute priorité doit 2002- 0153 être transmis par préemption dudit paquet de basse priorité ou fragment de paquet de basse priorité. 5. Méthode selon la revendication 4, dans laquelle un paquet balai est transmis entre ledit 5 transmetteur et ledit récepteur lorsqu'il n'y a pas de paquet de haute priorité à transmettre après qu'un paquet de basse priorité ou un fragment de paquet de basse priorité a été entièrement transmis entre ledit transmetteur et ledit récepteur, ledit paquet balai étant un paquet sans données indiquant que la transmission précédente d'un paquet de basse priorité ou un fragment de paquet de basse priorité est terminée. 10 6. Méthode selon la revendication 5, dans laquelle ledit bit réservé est un bit du champ "drapeaux" dans l'en-tête IP du paquet. 7. Méthode pour transmettre des paquets de haute priorité dans un réseau de transmission 15 basé sur le protocole Internet (IP) dans lequel des paquets de basse priorité ou des fragments de paquet de basse priorité sont transportés entre un transmetteur et un récepteur et au moins un paquet de haute priorité doit être transporté dudit transmetteur audit récepteur par préemption d'un paquet de basse priorité ou d'un fragment de paquet de basse priorité; ladite méthode étant caractérisée en ce que, dans ledit récepteur, elle comprend les étapes de: - déterminer si un paquet de haute priorité est reçu par ledit récepteur, - déterminer lorsqu'un paquet de haute priorité est reçu par ledit récepteur, si un bit réservé dans l'en-tête IP dudit paquet de haute priorité utilisé comme 25 indicateur de préemption est activé, et - attendre la réception d'un nouveau paquet si ledit bit réservé est activé indiquant que ledit paquet de haute priorité à préempté un paquet de basse priorité ou fragment de paquet de basse priorité. 8. Méthode selon la revendication 7, dans laquelle un paquet de basse priorité ou fragment de paquet de basse priorité accumulé précédemment est fourni à la couche supérieure lorsque ledit bit réservé utilisé comme indicateur de préemption n'et pas activé dans ledit paquet de haute priorité, ledit indicateur de préemption désactivé indiquant que la il 2002-0153 transmission d'un paquet de basse priorité ou fragment de paquet de basse priorité précédent est terminé.. 9. Méthode selon la revendication 8, comprenant en outre l'étape de déterminer si ledit bit 5 réservé utilisé comme indicateur de début de paquet est activé lorsque le paquet reçu par ledit récepteur est un paquet de basse priorité ou fragment de paquet de basse priorité, ledit paquet de basse priorité ou fragment de paquet de basse priorité étant un segment à ajouter au paquet de basse priorité ou fragment de paquet de basse priorité déjà accumulé si l'indicateur de début de paquet est activé. 10 10. Méthode selon la revendication 9, dans laquelle ledit paquet de basse priorité ou fragment de paquet de basse priorité déjà accumulé est fourni à la couche supérieure lorsque ledit bit réservé utilisé comme indicateur de début de paquet est activé indiquant que la réception du paquet de basse priorité ou fragment de paquet de basse priorité 15 précédent est terminée. 11. Méthode selon la revendication 10, comprenant en outre l'étape de déterminer si le paquet reçu est un paquet balai sans données, ledit paquet balai indiquant que la transmission d'un paquet de basse priorité ou fragment de paquet de basse priorité est 20 terminée. 12. Méthode selon la revendication 11, dans laquelle l'étape de déterminer si le paquet reçu est un paquet de basse priorité ou fragment de paquet de basse priorité ou bien un paquet de haute priorité en vérifiant la valeur du champ TOS dans l'en-tête IP du paquet. 25 13. Méthode selon la revendication 12, dans laquelle ledit bit réservé est un bit du champ "drapeaux" dans l'en-tête IP du paquet. 14. Méthode selon la revendication 13, dans laquelle ledit paquet de haute priorité est un 30 paquet de voix et ledit paquet de basse priorité ou fragment de paquet de basse priorité est un paquet de données ou un fragment de paquet de données. 12 2002-0153 15. Système comprenant des moyens adaptés pour mettre en oeuvre les étapes de la méthode selon l'une des revendications 1 à 14.