Brevet FR2831744A1 — publié le 20030502

PROCEDE ET APPAREIL POUR TUNNELISER DES PAQUETS DANS UN SYSTEME DE DONNEES PAR PAQUETS Domaine de l'invention Da manière générale, la présente invention concerne le transport de paquets de données dans un canal de communication par paquets partagé, et plus particulièrement un procédé et un appareil pour transporter des paquets de données ayant différentes priorités dans un canal de communication par paquets partagé sur demande tout en conservant la largeur de bande. Arrière-plan technologique de l'invention Les paquets et les systèmes de données par paquets sont connus et ont de-nombreuses utilisations. Les systèmes de données par paquets permettent le transport par paquets et facilitent ainsi le transport des informations. Par exemple, les paquets de données et les systèmes de données par paquets sont indispensables dans les systèmes cellulaires pour envoyer des données vocales et des informations aux utilisateurs de téléphones cellulaires. Dans le monde d'aujourd'hui, le transport des informations est accompli en encapsulant des types spécifiques d'informations dans des paquets et en envoyant les paquets dans un"canal de communication". Un paquet est une collection d'informations (à savoir, des données, des données vocales, des données ET3, des données audio, etc. ). Les informations contenues dans le paquet peuvent être une combinaison des différents types d'information susmentionnés. Lors de l'envoi de paquets de données par un canal de communication par paquets, et plus particulièrement par un canal de communication par paquets partagé, chaque paquet se voit attribuer un niveau de priorité. Le niveau de priorité est attribué principalement en fonction de la taille du paquet et du type d'information contenu dans le paquet. La transmission de certains types de paquets dépend de façon critique du temps (données vocales en duplex intégral) et ne peut être retardée par la transmission simultanée de paquets qui ne dépendent pas du temps de façon critique. Lors de l'utilisation d'un réseau comprenant un canal de communication par paquets partagé pour transporter des paquets d'information, il est fréquent que de gros paquets de basse priorité encombrent le canal de communication par paquets partagé, laissant ainsi les paquets de haute priorité en attente jusqu'à la fin de la transmission des paquets de basse priorité. Le résultat net est un retard inacceptable pour les transmissions prioritaires. Plusieurs procédés ont été conçus dans la technique antérieure pour éliminer le problème d'encombrement rencontré dans les canaux de communication par paquets partagés. Par exemple, la préemption a été précédemment incluse dans la norme de relais de blocs. La préemption est un procédé consistant à bloquer le transport de certains paquets dans un type spécifique de ligne de transmission. Par exemple, la préemption se produit lorsqu'un protocole HDLC (High Level Data Link Control, contrôle de liaison de données de haut niveau) utilise une"séquence de suppression"pour mettre fin à la transmission d'un paquet. La"séquence de suppression"est une séquence spéciale émise par la station d'émission des paquets. Ces deux procédés, bien qu'ils réduisent le retard, augmentent la largeur de bande nécessaire pour transporter les paquets en raison du fait que la transmission doit retransmettre la partie du paquet qui a été supprimée. En conséquence, il existe un besoin pour un procédé plus efficace pour transporter des paquets de priorité variable dans un système de transport de paquets partagé. Brève description des figures La figure 1 est un schéma fonctionnel illustrant un système de transmission de données par paquets ; La figure 2 est un schéma de transition de paquets illustrant un algorithme de classement par ordre de priorité et de transmission de paquets selon la présente invention ; La figure 3 est un organigramme d'émission de paquets de données illustrant l'un des modes de réalisation d'un algorithme de classement par ordre de priorité et de transmission de paquets selon la présente invention ; et La figure 4 est un organigramme de réception de paquets de données illustrant un autre mode de réalisation de l'algorithme de classement par ordre de priorité et de transmission de paquets selon la présente invention. Description détaillée des modes de réalisation préférés Dans un réseau utilisant un canal de communication par paquets partagé pour transporter une pluralité de types de paquets ayant chacun un niveau de priorité différent, il est fourni un procédé pour appeler de multiples paquets de données dans un canal de communication par paquets partagé, le procédé comprenant les étapes consistant à arrêter prématurément la transmission d'un paquet non prioritaire, stocker le reste du paquet non prioritaire sur un moyen de stockage, et transmettre un paquet prioritaire. Le procédé consistant à appeler de multiples paquets de données comprend en outre la transmission du reste du paquet non prioritaire une fois que la transmission du paquet prioritaire est terminée, la signalisation d'un paquet début d'un paquet non prioritaire afin d'identifier les paquets en attente et permettre la transmission des paquets prioritaires, la détermination du niveau de priorité d'un paquet entrant, et la vérification périodique du niveau de priorité des paquets de données en cours de transmission. Dans l'un des modes de réalisation de la présente invention, dans un réseau conçu pour transporter une pluralité de types de paquets ayant chacun un niveau de priorité différent, un appareil pour appeler des types multiples de paquets afin d'effectuer la transmission prévisible dans un canal de communication par paquets partagé comprend un canal de communication par paquets partagé, un moyen d'émission de signaux couplé dans un rapport de communication avec le canal de communication par paquets partagé, un contrôleur connecté au canal de communication par paquets partagé couplé, et un moyen de réception de signaux couplé dans un rapport de communication avec le canal de communication par paquets partagé. La présente invention utilise un algorithme pour résoudre le problème"d'encombrement" des paquets de données dans un canal de communication par paquets partagé sans sacrifier la largeur de bande. Les paquets de données proviennent de plusieurs types de sources. Par exemple, les paquets de données peuvent provenir d'un téléphone cellulaire, d'un"pager"ou d'autres dispositif sans fil. Ces paquets sont transmis d'un utilisateur à un autre, à savoir d'un correspondant cellulaire à un autre correspondant cellulaire, d'un correspondant cellulaire à un pager, ou à un utilisateur téléchargeant des informations à partir d'une autre source. L'encombrement se produit lorsque des paquets de données trop nombreux ayant des priorités multiples sont transmis en succession chronologique trop rapide. L'algorithme transfère une "séquence de suppression"pour arrêter prématurément la transmission du paquet de données qui ne dépend pas de manière critique du temps. Le reste du paquet sera remis dans la file d'attente afin d'être transmis au moment approprié. Le côté réception du canal de communication par paquets partagé 58 conservera temporairement les données du paquet non critique reçues et ajoutera le reste des données du paquet une fois que le reste du paquet de données critique aura été transmis. Un drapeau inséré dans le paquet début est utilisé pour identifier le paquet en attente afin de permettre la transmission de multiples paquets dépendant du temps de façon critique. Des horloges d'expiration sont utilisées pour vider le paquet dans la mémoire tampon dans l'éventualité d'une corruption de la ligne. Conformément aux modes de réalisation préférés de la présente invention et en se référant aux figures 1, 2 et 3, la présente invention fournit un algorithme de classement par ordre de priorité et de transmission de paquets de données. Comme décrit ci-dessus, la figure 1 est un schéma illustrant un système de transmission de paquets de données 50. Le système de transmission de paquets de données 50 comprend des dispositifs d'émission de paquets de données 52-56, un canal de communication par paquets partagé 58, un contrôleur de transmission de paquets de données 60, des dispositifs de réception de paquets de données 62-66. Comme il a été mentionné ci-dessus, les dispositifs d'émission de données 52-56 peuvent être, mais sans s'y limiter, des téléphones cellulaires, des pagers, et des assistants personnels numériques. Par ailleurs, les dispositifs de réception de paquets de données 62-66 peuvent être des dispositifs du même type que les dispositifs d'émission de paquets de données 52-56. Le canal de communication par paquets partagé 54 est un support de transmission de paquets de données dans lequel les données sont transportées vers leurs destinations respectives. Le contrôleur de transmission des paquets de données 58, ci-après le contrôleur 58, régule le flux de paquets de données dans le canal de communication par paquets partagé 54. Le contrôleur 58 renferme et exécute l'algorithme de classement par ordre de priorité et de transmission de paquets selon la présente invention. Comme décrit ci-dessus, la figure 2 est un schéma de transition de paquets illustrant un algorithme de classement par ordre de priorité et de transmission de paquets selon la présente invention. L'algorithme de classement par ordre de priorité et de transmission (ci-après "l'algorithme") sera mieux expliqué en appliquant différents scénarios à la figure 2. Scénario 1 : 2 niveaux de paquets interrupteurs Initialement, un paquet de données A et un drapeau joint sont envoyés par un dispositif de transmission de paquets de données. A l'instant D, le paquet B est transmis. En outre, à l'instant E, le paquet C est transmis. Le paquet de données et le drapeau progressent avec le temps jusqu'à l'instant D, un point arbitraire dans le temps. Les paquets de données B et C sont transmis au même moment que le paquet de données A. Il faut noter toutefois que les paquets de données A, B et C ont des priorités de transmission différentes, qui sont dans ce cas croissantes. A l'instant D, un drapeau est détecté par l'algorithme, de sorte que l'algorithme vérifier le code de redondance cyclique (ci-après désigné CRC) du paquet de données A juste avant que le paquet de données A atteigne le point D. Le contrôle du CRC échouera dans la mesure où la transmission du paquet de données A n'est pas terminée. En raison de l'échec du contrôle du CRC, l'algorithme suppose qu'un paquet de priorité plus élevée (paquet de données B) est en cours de transmission. Au point E, un drapeau est reçu, de sorte que l'algorithme contrôle le CRC du paquet de données B juste avant que le paquet de données B atteigne le point Dl. Le contrôle du CRC échouera puisque la transmission du paquet de données B n'est pas terminée. Du fait de l'échec du contrôle du CRC, l'algorithme suppose qu'un paquet de données de plus haute priorité (paquet de données C) est en cours de transmission. Au point F, le contrôle du CRC est positif, signifiant que le paquet de données C a été transmis dans sa totalité. Au point G, deux contrôles du CRC sont réalisés. Deux contrôles sont réalisés dans la mesure où il est possible d'enchaîner l'un à l'autre des paquets de données, un drapeau étant inséré entre les deux paquets de données et servant de drapeau de fin pour le premier paquet et de drapeau de début pour le second paquet. Le récepteur ne sait pas si le paquet de données allant du point FI au point G est un second paquet interrupteur qui suit le paquet de données C ou la suite du paquet B. En conséquence, l'algorithme réalise un contrôle du CRC sur le paquet allant du point FI au point G. Si le CRC correspond, alors il s'agit d'un second paquet de données qui suit le paquet de données C. Selon une autre possibilité, l'algorithme pourrait effectuer un contrôle du CRC sur les paquets de données après le drapeau du point D et poursuivre le contrôle du CRC jusqu'au point G (à l'exclusion du CRC) et exclure le paquet de données allant du point E au point FI. Si le CRC au point C correspond, le paquet B est bon. Au point H, l'algorithme réalise la même fonction qu'au point G. Si le CRC au point H correspond, le paquet de données A est décodé. Scénario 2 : 2 niveaux d'interruption avec erreur sur les bits (voir la figure 2) Aux fins du présent scénario, on suppose que le train de bits est corrompu au point Dl. Une erreur sur les bits à un niveau quelconque corrompt ce paquet et tous les paquets en attente derrière celui-ci. Etant donné que l'on suppose que cette situation est rare, elle est jugée acceptable puisque le paquet en cours de transmission serait perdu de toute façon. Ce procédé implique la perte des paquets en attente, mais, par définition, ceux-ci n'étaient pas des paquets prioritaires. Au point D, un drapeau est reçu, de sorte que l'algorithme contrôle le CRC du paquet de données A juste avant que le paquet A n'atteigne le point D. Le contrôle du CRC échouera puisque la transmission du paquet de données A n'est pas terminée. Dans la mesure où le contrôle du CRC échoue, l'algorithme suppose qu'un paquet de priorité plus élevée (paquet de données B) est en cours de transmission. Au point E, un drapeau est reçu, de sorte que l'algorithme contrôle le CRC du paquet de données B juste avant que le paquet de données D n'atteigne le point Dl. Le contrôle du CRC échouera puisque la transmission du paquet de données B n'est pas terminée. Etant donné l'échec du contrôle du CRC, l'algorithme suppose qu'un paquet de données de priorité plus élevée (paquet de données C) est en cours de transmission. Au point F, le contrôle du CRC est positif, signifiant que le paquet de données C a été transmis dans sa totalité. Au point G, le contrôle du CRC échoue. L'algorithme suppose alors que le reste du paquet de données A est un nouveau paquet de données, ce qui est faux. Après le drapeau en H, si une période d'inactivité est détectée par l'algorithme, l'algorithme peut fonctionner de deux manières : (1) la pile de paquets est supprimée et les paquets de données A et B sont perdus, ou (2) si un autre paquet de données suit au point H, l'algorithme attend un dépassement du temps imparti pour le paquet A, puis pour le paquet B. Dans les deux cas, les paquets de données A et B sont perdus. Scénario 3 : synchronisation du récepteur au démarrage, sans erreurs sur les bits (voir la figure 2) Aux fins de ce troisième scénario, on suppose qu'un récepteur se ré-initialise et parvient au point Dl. Au point E, le récepteur reçoit le premier drapeau. L'algorithme supprime les paquets de données présents jusqu'au point E. Au point F1, l'algorithme décode le CRC du paquet de données C du fait qu'il n'y a pas de paquet interrupteur de priorité plus élevée en cours de transmission. Au point Gl, l'algorithme vérifie le CRC des paquets de données présents entre le point F1 et le point G. Le contrôle du CRC entre ces points échoue. Le récepteur suppose que le paquet de données allant du point F1 au point G est un paquet interrupteur, ce qui est faux. Au point Hl, le récepteur contrôle le CRC et échoue également. Finalement, les horloges qui ont démarré aux points F et G dépasseront le temps imparti et leurs paquets partiels seront supprimés et le récepteur fonctionnera normalement. Lors de la synchronisation, l'algorithme supprime les paquets jusqu'à ce que la liaison soit purgée de tous les paquets partiels. Selon une autre possibilité, l'algorithme pourrait être programmé pour attendre jusqu'à ce que le canal de communication par paquets partagé 58 soit vidé. Ceci, néanmoins, entraînerait la perte des paquets de données. La figure 3 montre un schéma de transmission de paquets de données illustrant l'un des modes de réalisation préférés d'un algorithme de transmission de paquets de données selon la présente invention. La figure 3 montre de façon plus détaillée comment l'algorithme de classement par ordre de priorité et de transmission de paquets de données 100 résout le problème lié au fait de retarder la transmission d'un paquet de données non prioritaire tout en transmettant un paquet de données prioritaire. Le processus débute par l'étape 102, lors de laquelle un paquet de données est transmis. Dans l'étape 104, la transmission d'un second paquet de données prioritaire commence. Aux fins du présent exemple, il faut supposer que le second paquet de données a une priorité plus élevée que le premier paquet de données, non prioritaire. Une fois que l'algorithme a déterminé que le second paquet de données est prioritaire par rapport au premier paquet de données, la transmission du premier paquet de données est prématurément arrêtée. La partie restante du premier paquet de données est alors stockée. Cette partie du processus est illustrée dans les étapes 106 et 108 de la figure 3. Après que le paquet début a été signalé par un drapeau, le paquet de données prioritaire est transmis, le reste du premier paquet de données étant transmis à un dispositif de récupération de signal (étape 112). La figure 4 montre un schéma de réception de paquets de données illustrant un autre mode de réalisation préféré de l'algorithme de classement par ordre de priorité et de transmission de la présente invention. Le processus de classement par ordre de priorité et de transmission de paquets commence par l'étape 202 avec la réception d'un train de données en paquet. Lors de l'étape 204, un drapeau est reçu par le contrôleur 56 indiquant la fin d'un paquet de données ou le début d'un paquet de données. Après réception du drapeau par le contrôleur 56, le paquet de données est soumis à un contrôle du code de redondance cyclique (étape 206). Le contrôle du code de redondance cyclique détermine si le paquet en cours de transmission est un paquet de données complet ou s'il s'agit d'une partie d'un paquet de données. Si le contrôle du code de redondance cyclique du paquet de données est un échec, l'algorithme est programmé pour contrôler le CRC de tous les paquets partiels du même niveau de priorité que le paquet de données en cours de transmission (étape 208). S'il existe des paquets de données ayant le même niveau de priorité qui n'ont pas subi le contrôle du CRC, alors l'algorithme est programmé pour concaténer les paquets partiels antérieurs à ce niveau de priorité (étape 210). Une fois que l'étape 210 est achevée, l'algorithme est programmé pour contrôler le CRC du paquet de données. En effet, l'algorithme revient à l'étape 206. Si tous les paquets partiels a ce niveau de priorité ont subi un contrôle du CRC, alors une erreur existe et l'algorithme est programmé pour supprimer le paquet de données en cours de transmission (étape 212). Si le contrôle du code de redondance cyclique du paquet de données réussit, l'algorithme décode le paquet de données (étape 214). Dans l'étape 216, le paquet de données prioritaire est reçu jusqu'à réception d'un autre drapeau (étape 204). Le processus décrit ci-dessus se poursuit jusqu'à ce que tous les paquets de données aient été émis et reçus. Bien que la présente invention ait été décrite en se référant à des modes de réalisation préférés, le spécialiste de la technique reconnaîtra que des changements peuvent être apportés dans la forme et le détail sans sortir de l'esprit et de l'étendue de la présente invention. REVENDICATIONS 1. Dans un réseau utilisant un canal de communication par paquets partagé pour transporter une pluralité de types de paquets ayant chacun une priorité différente, procédé pour ajouter des paquets multiples dans un canal de communication par paquets partagé, ce procédé comprenant les étapes de : signalisation d'un paquet début d'un paquet non prioritaire afin d'identifier les paquets en attente et permettre la transmission de paquets prioritaires ; arrêt prématuré de la transmission du paquet non prioritaire ; stockage du reste du paquet non prioritaire dans un périphérique de stockage ; transmission du paquet prioritaire ; et transmission du reste du paquet non prioritaire une fois que la transmission du paquet prioritaire est terminée. 2. Procédé selon la revendication 1, dans lequel l'arrêt prématuré de la transmission du paquet non prioritaire comprend en outre l'étape consistant à insérer un drapeau de paquet à l'endroit où le paquet doit être divisé. 3. Procédé selon la revendication 1, dans lequel l'étape consistant à signaler le paquet début comprend en outre l'étape consistant à déterminer le niveau de priorité d'un paquet entrant. 4. Procédé selon la revendication 1, dans lequel l'étape consistant à signaler le paquet début comprend en outre l'étape consistant à vérifier périodiquement le niveau de priorité du paquet de données en cours de transmission. 5. Procédé selon la revendication 1, dans lequel l'étape consistant à signaler un paquet début comprend en outre les étapes consistant à identifier le paquet non prioritaire et à identifier un début d'un paquet prioritaire. 6. Procédé selon la revendication 1, dans lequel l'étape consistant à signaler un paquet début comprend en outre l'étape consistant à identifier une interruption du paquet non prioritaire. 7. Procédé selon la revendication 1, dans lequel l'étape consistant à signaler un paquet début comprend en outre l'étape consistant à identifier un paquet interrompu. 8. Procédé selon la revendication 1, dans lequel l'étape consistant à stocker le reste du paquet non prioritaire dans un périphérique de stockage comprend en outre le transfert du reste du paquet dans une file d'attente. 9. Dans un réseau conçu pour transporter une pluralité de types de paquets ayant chacun une priorité différente, appareil pour ajouter de multiples types de paquets en vue d'effectuer une transmission prévisible dans un canal de communication par paquets partagé, l'appareil comprenant : un canal de communication par paquets partagé ; un moyen d'émission de signaux couplé dans un rapport de communication avec le canal de communication par paquets partagé ; un contrôleur connecté au canal de communication par paquets partagé ; et un moyen de réception de signaux connecté au canal de communication de paquets partagé, dans lequel l'algorithme de classement par ordre de priorité et d'émission est stocké dans le contrôleur et est utilisé par le contrôleur pour réguler la transmission de paquets par le canal de communication par paquets standard, en mettant en oeuvre : des moyens de signalisation d'un paquet début d'un paquet non prioritaire afin d'identifier les paquets en attente et permettre la transmission de paquets prioritaires ; des moyens d'arrêt prématuré de la transmission d'un paquet non prioritaire ; des moyens de stockage du reste du paquet non prioritaire dans un dispositif de stockage ; des moyens de transmission d'un paquet prioritaire ; et des moyens de transmission du reste du paquet non prioritaire une fois que la transmission du paquet prioritaire est terminée. 10. Appareil selon la revendication 9, dans lequel le contrôleur est programmé pour insérer un drapeau de paquet à. la place où le paquet doit être divisé après que la transmission du paquet non prioritaire a été interrompue.