FR2898455A1 - Procede et dispositif de transmission de paquets de donnees - Google Patents
Procede et dispositif de transmission de paquets de donnees Download PDFInfo
- Publication number
- FR2898455A1 FR2898455A1 FR0650844A FR0650844A FR2898455A1 FR 2898455 A1 FR2898455 A1 FR 2898455A1 FR 0650844 A FR0650844 A FR 0650844A FR 0650844 A FR0650844 A FR 0650844A FR 2898455 A1 FR2898455 A1 FR 2898455A1
- Authority
- FR
- France
- Prior art keywords
- transmitted
- packet
- register
- packets
- descriptor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
L'invention concerne une transmission de paquets de données. Afin de simplifier la gestion de paquets à transmettre, on met en oeuvre :- une écriture dans un premier registre (370) d'au moins un descripteur (3700) de paquets à transmettre, chaque descripteur de paquets à transmettre comprenant des informations représentatives d'un statut de chaque paquet appartenant à l'ensemble, le statut de chaque paquet indiquant si le paquet est à transmettre ou non ;- détermination du premier paquet (3710) de données à transmettre à partir du contenu du premier registre et enregistrement d'un identifiant du premier paquet de données à transmettre dans un deuxième registre (371); et- transmission d'un ensemble de paquets de données.
Description
Procédé et dispositif de transmission de paquets de données.
1. Domaine de l'invention. La présente invention concerne le domaine des télécommunications et plus précisément la transmission de paquets à haut débit.
2. Arrière-plan technologique. Selon l'état de la technique, des procédés de transmission de 10 paquets de données mettent en oeuvre des mécanismes d'acquittement de paquets afin de retransmettre les paquets erronés. Dans la couche MAC (de l'anglais Medium Access Channel ou Canal d'accès au médium ), les données à transmettre ou MSDU (de l'anglais MAC Service Data Unit ou unité de données de services 15 MAC ) sont encapsulées dans des PDU (ou unité de données de protocole de l'anglais Protocol Data Unit ) avec un entête MAC. Lorsque des MSDU sont transmis, ils peuvent être rassemblés (plusieurs fragments de plusieurs MSDU étant transmis dans un seul PDU) ou simplement fragmentés (seulement une partie (ou fragment) d'un MSDU est 20 transmise dans un PDU, les parties restantes étant transmises dans un ou plusieurs autres PDU). Pour des communications avec ARQ (ou requête de répétition automatique de l'anglais Automatic Repeat Request ), un fragment de MSDU est divisé en plusieurs blocs et chaque bloc doit être acquitté. Selon une norme IEEE802.16, un fragment doit comprendre des 25 blocs consécutifs qui n'ont pas été envoyés ou acquittés. Un tel procédé mis en oeuvre par un microprocesseur d'une station émettrice/réceptrice est illustré en regard de la figure 1 et commence par une étape d'initialisation 10 au cours de laquelle une variable indiquant le bloc courant pointe sur le premier bloc à transmettre. Puis, au cours d'une 30 étape 11, un ou plusieurs paquets de données correspondants à un MSDU correspondant à un ensemble de blocs sont transmis. Ensuite, au cours d'une étape 12, la station attend et reçoit un descripteur d'erreur, chaque bloc transmis étant acquitté ou non en fonction d'une bonne ou mauvaise réception par son destinataire. Puis, au cours d'un test 13, le 35 microprocesseur initialise un pointeur de bloc courant correspondant au premier bloc transmis. Ensuite, au cours d'un test 14, le microprocesseur vérifie si le bloc courant a bien été reçu par son destinataire. Dans l'affirmative, au cours d'une étape 15, le microprocesseur met à jour la liste des blocs à retransmettre en y insérant le bloc correspondant au bloc courant. Dans la négative ou suite à l'étape 15, au cours d'un test 16, le microprocesseur vérifie si le bloc courant correspond au dernier bloc transmis. Dans l'affirmative, l'étape 11 est réitérée, les blocs transmis correspondant à des nouveaux blocs ou à des blocs à retransmettre correspondant à la liste mise à jour au cours de l'étape 15. Dans la négative, au cours d'une étape 17, le microprocesseur met à jour le pointeur sur le bloc courant en le faisant pointer sur le bloc suivant transmis. Ensuite, le test 14 est réitéré. Ainsi, le processus de mise à jour de la liste des blocs à transmettre (première transmission ou retransmission suite à un mauvais acquittement) est relativement long puisque le nombre d'opérations élémentaires est élevé (au moins 2 fois (correspondant aux étapes 14 et 17) le nombre de blocs présents dans un MSDU). Cette technique présente donc l'inconvénient d'être mal adaptée aux applications (par exemple de type transmission d'un flux audiovisuel) requérant une forte réactivité.
3. Résumé de l'invention. L'invention a pour but de pallier ces inconvénients de l'art antérieur. Plus particulièrement, l'invention a pour objectif d'améliorer les performances d'un système de communication (par exemple, la vitesse de détermination de blocs de données à transmettre sur un lien de communication, notamment suite à la réception de requête de retransmission). A cet effet, l'invention propose un procédé de transmission de paquets de données, comprenant les étapes suivantes : -écriture dans un premier registre d'au moins un descripteur de paquets à transmettre, chaque descripteur de paquets à transmettre comprenant des informations représentatives d'un statut de chaque paquet appartenant à l'ensemble, le statut de chaque paquet indiquant si le paquet est à transmettre ou non - détermination du premier paquet de données à transmettre à partir du contenu du premier registre et enregistrement d'un identifiant du premier paquet de données à transmettre dans un deuxième registre ; et - transmission d'un ensemble de paquets de données. Selon une caractéristique particulière, l'étape de détermination du premier paquet est une étape élémentaire effectuée en au plus un nombre de cycles d'horloge strictement inférieur à la taille du premier registre exprimée en nombre de données binaires et préférentiellement en au plus un cycle d'horloge. Selon une caractéristique préférée, le procédé comprend une étape de détermination du nombre de paquets consécutifs à transmettre avec le premier paquet de données à transmettre.
Avantageusement, l'étape de détermination du nombre de paquets consécutifs à transmettre est une étape élémentaire effectuée en au plus un nombre de cycles d'horloge strictement inférieur à la taille du premier registre exprimée en nombre de données binaires et préférentiellement, en au plus un cycle d'horloge.
Préférentiellement, les étapes de détermination du premier paquet et de détermination du nombre de paquets consécutifs à transmettre sont simultanées. Selon une caractéristique avantageuse, le procédé comprend une étape d'enregistrement du nombre de paquets consécutifs à transmettre 20 dans le deuxième registre. Avantageusement, la lecture du deuxième registre entraîne une mise à jour purement électronique du premier registre, du statut de chaque paquet indiqué comme étant à transmettre par le deuxième registre. Selon une caractéristique particulière, la lecture du deuxième 25 registre et la mise à jour du premier registre correspondant se font en au plus un cycle d'horloge. Selon une caractéristique particulière, au moins un du ou des descripteurs de paquets à transmettre est un descripteur d'état courant de transmission de paquets mis à jour après une réception d'un acquittement 30 de paquets correspondant à des paquets transmis préalablement ou expiration d'une temporisation faisant suite à une transmission de paquets. Avantageusement, les étapes de détermination du premier paquet de données à transmettre à partir du contenu du premier registre et d'enregistrement d'un identifiant du premier paquet de données à 35 transmettre dans un deuxième registre sont réitérées tant que le descripteur comprend des informations représentatives d'un statut correspondant à des paquets à transmettre.
Préférentiellement, le paquet correspondant à un statut est identifié, au moins en partie, par la position d'une information représentative du statut.
Selon une caractéristique particulière, la transmission d'un ensemble de paquets de données est effectuée sur un canal sans fil. L'invention concerne également un dispositif de transmission de paquets de données, qui comprend : - des moyens d'écriture dans un premier registre d'au moins un descripteur de paquets à transmettre, chaque descripteur de paquets à transmettre comprenant des informations représentatives d'un statut de chaque paquet appartenant à l'ensemble, le statut de chaque paquet indiquant si le paquet est à transmettre ou non ; - des moyens de détermination du premier paquet de données à transmettre à partir du contenu du premier registre et des moyens d'enregistrement d'un identifiant du premier paquet de données à transmettre dans un deuxième registre ; et - des moyens transmission d'un ensemble de paquets de données.
4. Liste des figures. L'invention sera mieux comprise, et d'autres particularités et avantages apparaîtront à la lecture de la description qui va suivre, la description faisant référence aux dessins annexés parmi lesquels : la figure 1 illustre une mise en oeuvre d'une transmission de paquets connue en soi ; la figure 2 représente un réseau de communication selon un mode particulier de réalisation de l'invention ; la figure 3 illustre schématiquement un appareil du réseau de communication de la figure 2, selon un mode particulier de réalisation de l'invention ; les figures 5 à 6 présentent un procédé de transmission mis en oeuvre dans l'appareil de la figure 3 ; et la figure 7 donne un exemple de l'évolution de contenu de registres mis en oeuvre dans l'appareil de la figure 3. 5. Description détaillée de l'invention. La figure 2 représente un réseau de communication 2 selon un mode particulier de réalisation de l'invention. Le réseau 2 est, par exemple, un réseau sans fil du type IEEE802.16 et comprend : - un point d'accès 20 ; - des terminaux 21 et 22. Le point d'accès 20 est apte à émettre ou recevoir des MSDU à destination les terminaux 21 et 22 sur le lien sans fil.
La figure 3 illustre schématiquement un appareil 3 correspondant au point d'accès 20 ou à l'un des terminaux 21 et 22. L'appareil 3 comprend, reliés entre eux par un bus 34 d'adresses et de données, transportant également un signal d'horloge : - un microprocesseur 31 (ou CPU) ; - une mémoire non volatile de type ROM (de l'anglais Read Only Memory ) 32 ; - une mémoire vive ou RAM (de l'anglais Random Access Memory ) 33 ; - un module 35 de transmission d'un signal sur le lien sans fil ; - un module 36 de réception d'un signal sur le lien sans fil ; et - un module 37 de gestion de blocs à transmettre. Par ailleurs, chacun des éléments 31 à 37 est bien connu de l'homme du métier. Ces éléments communs ne sont pas décrits ici. On observe que le mot registre utilisé dans la description désigne dans chacune des mémoires mentionnées, aussi bien une zone de mémoire de faible capacité (quelques données binaires) qu'une zone mémoire de grande capacité (permettant de stocker un programme entier ou tout ou partie des données représentatives d'un service audio/vidéo reçu). La mémoire ROM 32 comprend notamment un programme prog 320 . Les algorithmes mettant en oeuvre les étapes du procédé décrit ci-après sont stockés dans la mémoire ROM 32 associée à l'appareil 3 mettant en oeuvre ces étapes. A la mise sous tension, le microprocesseur 31 charge et exécute les instructions de ces algorithmes.
La mémoire vive 33 comprend notamment : - dans une registre 330, le programme de fonctionnement du microprocesseur 31 chargé à la mise sous tension de l'appareil 3 ; - N descripteurs dans des registres 3311 à 331 N ; - des données audiovisuelles et/ou MDSU contenant ces données dans un registre 332 ; - une variable de premier bloc à transmettre dans un registre 333 ; et - une variable de nombre de blocs à transmettre dans un registre 334. Le module 37 de gestion de blocs à transmettre comprend : -un module 370 comprenant un registre 3700 destiné notamment à l'écriture par le CPU 31 d'un descripteur et ayant sa propre adresse pour être accessible en écriture par le CPU 15 31 via le bus 34 ; - un module 371 comprenant un registre 3710 identifiant un premier bloc et un registre 3711 identifiant un nombre de blocs auxquels le CPU 31 peux accéder en lecture, les registres 3710 et 3711 ayant chacun leur propre adresse pour être 20 accessible en lecture par le CPU 31 via le bus 34 ; et - un module 372 de traduction du contenu du registre 3700 en un identifiant de premier bloc et en un nombre de blocs. Selon l'invention, le module 37 est un bloc électronique comprenant un ou plusieurs composants discrets (par exemple du type ASIC 25 ou composant programmables) ou inséré totalement ou en partie dans un composant comprenant d'autres fonctions (par exemple ASIC comprenant les mémoires 32 et/ou 33 et/ou le CPU 31). Selon le mode de réalisation décrit les descripteurs comprennent 32 bits. Selon des variantes de réalisation de l'invention, les descripteurs ont 30 une taille fixe différente de 32 (pouvant aller de quelques bits (par exemple 8) à plusieurs centaines ou milliers de bits) ou une taille variable. Typiquement, chaque bit du descripteur correspond au statut d'un bloc à transmettre : ainsi, une valeur du statut égale à 0 correspond à un bloc à transmettre (soit pour une première transmission, soit pour une retransmission). Bien entendu, selon l'invention, d'autres significations ou valeurs (par exemple valeurs opposées à celles précédemment décrites) et d'autres formats (par exemple plusieurs bits) pour le statut sont possibles. 10 Pour des raisons de clarté, on ne décrit ici que les descripteurs relatifs aux blocs à transmettre . D'autres descripteurs peuvent être mis en oeuvre des notamment des descripteurs de blocs acquittés. Ces derniers sont mis à jour lors d'une transmission (blocs transmis indiqués comme non acquittés) et à la réception d'une trame d'acquittement (indications mise à jour en fonction du contenu de la trame d'acquittement). A la réception d'une trame d'acquittement (ou d'un descripteur d'erreur), les descripteurs transmis sont également mis à jour avec une simple opération effectuée bit à bit sur le description de blocs à transmettre.
Le module 372 de traduction est mis en oeuvre sous forme électronique et préférentiellement sous forme de circuits logiques dans un composant programmable (par exemple tableau de portes (ou gatearray en anglais), PLD (de l'anglais Programmable Logic Device ou composant logique programmable)) ou dans un ASIC. Un tel circuit est, par exemple obtenu et optimisé, par une définition VHDL de son contenu, correspond, par exemple, aux équations logiques suivantes : - en fonction de la valeur des bits lus en entrée, la sortie numéro de premier bloc vaut ^ 0 si premier bit= 0 ; ^ 1 si 2 premiers bits = 10 (le premier bit lu en entrée étant celui représenté à gauche) ; ^ 2 si 3 premiers bits = 110 ; ^ 3 si 4 premiers bits = 1110 et ^ plus généralement n si les (n+1) premiers bits valent 1(n fois)0 ; - le mot de 32 bits en entrée est ensuite décalé vers la gauche de la valeur du numéro du premier bloc avec insertion à droite de 1 -puis, en fonction du mot décalé, la sortie nombre de bits vaut : ^ 1 si 2 premiers bits = 01 (le premier bit du mot décalé étant celui représenté à gauche) ; ^ 2 si 3 premiers bits = 001 ; ^ 3 si 4 premiers bits = 0001 et ^ plus généralement n si les (n+1) premiers bits valent 0(n fois)1 ; 25 30 35 Une telle mise en oeuvre du module 372 présente l'avantage de comprendre des fonctions logiques simples et requérant relativement peu de portes logiques. Par ailleurs, le module de traduction lit directement dans le registre 3700 le descripteur dont il convertit la valeur en un numéro de premier bloc et en un nombre de blocs. Ces derniers sont automatiquement stockés dans les registres respectifs 3710 et 3711 par le module 372. Ainsi, le contenu du registre 3700 est quasiment immédiatement traduit, avec une traduction enregistrée dans les registres 3710 et 3711. De cette manière, en moins d'un cycle d'horloge, suivant l'écriture dans le registre 3700, les registres 3710 et 3711 sont mis à jour. Le CPU 31 écrivant un descripteur dans le registre 3700 peut donc lire dès le cycle d'horloge suivant le contenu des registres 3710 et 3711. Selon un mode avantageux de réalisation de l'invention, un accès en lecture des deux registres 3710 et 3711 entraîne une mise à jour automatique du contenu du registre 3700 via une liaison 373 entre les modules 371 et 370. Cette mise à jour peut être effectuée par lecture de l'un des registres en supposant que ce registre est lu après l'autre ou par mémorisation des lectures des deux registres et mise à zéro dès que la mise à jour automatique du registre 3700 est effectuée. Préférentiellement, la mise à jour automatique est effectuée pendant le cycle d'horloge de la dernière lecture pour éviter les conflits d'accès en écriture au registre 3700. Pour effectuer la mise à jour, le module 371 génère un masque d'un mot de 32 bits dont les m premiers bits sont à 1 et les (32-m+1) bits sont à 0, m représentant la somme des contenus des registres 3710 et 3711. La mise en oeuvre électronique de cette génération de masque peut être obtenue à partir d'un code VHDL d'un registre à décalage initialisé à 0 et dans lequel on effectue m décalage avec un 1 en entrée. Ce masque est présenté sur la liaison 373 avec un signal de commande du module 370 pour entraîner l'écriture dans le registre 3700 du résultat d'une opération ou effectuée bit à bit entre le contenu courant du registre 3700 et le masque. La figure 4 illustre schématiquement un algorithme de transmission de paquets de données mis en oeuvre dans l'appareil 3. Au cours d'une première étape 40, l'appareils 3 initialise ses 35 différents composants et variables. Puis, au cours d'une étape 41, le CPU 31 initialise la liste des blocs à transmettre (par exemple, en fonction de l'arrivée de blocs transmis par une application non représentée sur la figure 3 pour des raisons de clarté). Ensuite, au cours d'une étape 42, l'appareil 3 transmet, sur le médium sans fil, les blocs correspondant à la liste des blocs à transmettre en lançant une temporisation (ou time-out en anglais). Puis, au cours d'une étape 43, l'appareil 3 attend soit un descripteur d'erreur ou acquittement transmis par le destinataire des blocs transmis au cours de l'étape 42, soit l'expiration de la temporisation lancée au cours de l'étape 42 (le descripteur d'erreur ayant pu être perdu). Si un descripteur d'erreur est reçu, le CPU 31 met à jour le descripteur de blocs à transmettre correspondant à l'aide une simple opération ET effectuée bit à bit avec le descripteur d'erreur reçu (en supposant une valeur égale à 1 pour un bloc acquitté et 0 pour une erreur). Si la temporisation expire, le CPU 31 met à jour le descripteur de blocs à transmettre correspondant à l'aide une simple opération ET effectuée bit à bit avec le descripteur de blocs acquittés (en supposant une valeur égale à 1 pour un bloc acquitté), un bloc étant supposé transmis (valeur 1 dans le descripteur de blocs à transmettre) étant alors marqué à transmettre puisque non acquitté. Ensuite, au cours d'une étape 44, l'appareil 3 met à jour la liste des blocs à transmettre en fonction du descripteur d'erreur reçu (le cas échéant). L'étape 42 est ensuite réitérée. Ces étapes sont mises en oeuvre en partie par le CPU 31 et en partie par le module 37. La mise en oeuvre de la partie logicielle par le CPU 31 est effectuée préférentiellement sous forme multi-tâche ou pseudo mufti- tâche, les étapes 41, 42 et 44 pouvant être effectuées par des tâches différentes. La figure 6 présente en détails l'étape 42 de transmission de blocs. Les blocs sont transmis suivant la norme IEEE 801.16. L'ensemble des blocs à transmettre possède un statut associé du type à transmettre . Lorsque le bloc a été transmis, son statut change et devient à ne pas transmettre . Le statut de chaque bloc est mémorisé à l'aide des descripteurs 3311 à 331N de 32 bits, chacun des bits correspondant au statut d'un bloc précis, le statut des 32 premiers blocs étant mémorisé dans le descripteur 3311 et le statut des 32 blocs suivant étant mémorisé dans le descripteur suivant 3312 et ainsi de suite. Pour un nombre maximal de blocs égal à 2048, N vaut 64.
Lorsque qu'un paquet MSDU est à transmettre, il est découpé en blocs. Une fois la liste des blocs à transmettre mise à jour, la transmission des blocs elle-même et leur identification est effectuée selon des méthodes bien connues de l'homme du métier et ne seront pas détaillée d'avantage.
En revanche, la mise à jour de cette liste, objet de l'invention, effectuée lors des étapes 42 et 44 est détaillée ci-après. Au cours d'une première étape 420, le CPU 31 initialise une variable de descripteur courant ou p avec un pointeur sur le premier descripteur 3311.
Puis, au cours d'un test 421, le CPU 31 vérifie si le descripteur courant indique des blocs à transmettre en comparant son contenu avec la FFFFFFFFH (le suffixe H indiquant une notation hexadécimale). Si un bloc au moins est à transmettre, au cours d'une étape 422, le CPU 31 écrit le contenu du descripteur courant dans le registre 3700.
Comme indiqué précédemment, les registres 3710 et 3711 sont alors mis à jour à l'aide du module 372. Puis, au cours d'une étape 423, le CPU 31 lit le contenu des registres 3710 et 3711 et le mémorise respectivement dans les registres 333 et 334 de la mémoire RAM 33.
Puis, au cours d'un test 424, le CPU 31 vérifie que le nombre de blocs à transmettre n'est pas nul. Si le nombre de blocs à transmettre n'est pas nul, alors, au cours d'une étape 425, le CPU crée un ensemble de blocs à transmettre et met à jour la mémoire 231 p et l'étape 423 est réitérée.
Suite à une réponse négative au test 421 ou positive au test 424, au cours d'un test 427, le CPU 32 vérifie si le descripteur courant est le dernier descripteur à tester. Dans la négative, au cours d'une étape 428, le CPU 31 met à jour la variable de descripteur courant en la faisant pointer sur le descripteur suivant. Ensuite, l'étape 422 est réitérée. Dans l'affirmative, au cours d'une étape 429 (dernière étape de l'étape 42), s'il y a des blocs à transmettre, ces blocs sont transmis sur le médium sans fil en mettant à jour des descripteurs de transmission (non illustrés).
La figure 6 présente en détails l'étape 44 de mise à jour des descripteurs.
Au cours d'un test 440, le CPU 31 vérifie que des descripteurs d'acquittement transmis par le destinataire des paquets MSDU sont reçus. Dans l'affirmative, le CPU 31 met à jour les descripteurs 3311 à 331 N en fonction des descripteurs reçus, les bits de statut à 0 correspondant à des blocs non acquittés par le destinataire, ces blocs étant à retransmettre, et les bits de statut à correspondant à des blocs acquittés. Dans la négative, le CPU 31 met à jour les descripteurs 3311 à 331N en indiquant un statut à 0 pour chacun des blocs transmis précédemment.
L'étape 44 s'achève après la mise en oeuvre de l'une des étapes 441 ou 442. A titre illustratif, la figure 7 donne un exemple de l'évolution de contenu de registres correspondant à un descripteur particulier. Suite à l'envoi de 32 blocs correspondant à un descripteur, l'appareil 3 reçoit un descripteur d'erreur 70 que la CPU 31 écrit dans la mémoire 331 à 331N correspondant avant de le traiter suivant les étapes 422 à 426. En particulier, au cours de l'étape 422, le CPU écrit le contenu du descripteur 70 dans le registre 3700. On suppose, à titre illustratif, que le contenu du descripteur 70 est E1 FO3FFFH (représenté en binaire sur la figure 7), les premiers bits étant représentés à gauche (bits de poids forts). Les registres 3710 et 3711 contiennent alors respectivement 3 (le premier 0 étant en troisième position) et 4 (il y a quatre 0 consécutifs à partir de la troisième position). Au cours de l'étape 423, le CPU 31 lit le contenu des registres 3710 et 3711 et le module 371 crée un masque 72 (valant FE000000H) qu'il transmet au module 370 qui effectue une opération 78 de ou avec le contenu 70 du registre 3700 pour enregistrer une nouvelle valeur 73 (valant FFFO3FFFH) dans le registre 3700. La valeur du nombre de blocs lue étant égale à 4, l'étape 423 est réitérée. Les registres 3710 et 3711 comprennent maintenant les valeurs respectives 12 et 6. Au cours de l'étape 423, le CPU 31 lit ces valeurs ce qui entraîne la création d'un masque 75 valant FFFFC000H par le module 371 et une opération 79 de ou avec le contenu 73 du registre 3700 par le module 370 et un enregistrement d'un descripteur 76 tout à 1 dans le registre 3700. La valeur du nombre de blocs à transmettre est alors nulle et la valeur du 1er bloc est mise à une valeur arbitraire ou une valeur prédéfinie non comprise entre 0 et 31 inclus. Au cours du test 424, le CPU 31 détecte alors la fin de l'identification des blocs à transmettre pour le descripteur courant. Bien entendu, l'invention ne se limite pas aux modes de réalisation décrits précédemment.
En particulier, l'architecture de l'appareil d'émission/réception peut être différente de celle illustrée en figure 3, dans la fonction respective et/ou la forme des éléments (les fonctions des éléments électroniques peuvent notamment être regroupées dans un nombre restreint de composants ou, au contraire, éclatés dans plusieurs composants) et leur agencement. En outre, le module de gestion de blocs à transmettre peut aussi avoir une structure différente, les fonctions de traduction pouvant être notamment intégrées à l'un des modules associés aux registres. Par ailleurs, selon l'invention, le module de gestion de blocs à transmettre peut être associé à l'ensemble des descripteurs ou, au contraire, l'appareil peut comprendre plusieurs modules de gestion de blocs à transmettre, chacun de ces modules étant associé à un ou plusieurs descripteurs. L'invention ne se limite pas non plus à la transmission de données suivant une norme de communication sans fil (par exemple IEEE802.16) mais concerne également tout mode de transmission utilisant des descripteurs de blocs de paquets à transmettre. De plus, selon des variantes de l'invention, les descripteurs de paquets à transmettre ne sont pas nécessairement associés à des descripteurs d'erreurs mais correspondent à tout type de statuts particuliers devant entraîner une transmission de blocs de données (notamment expiration d'une temporisation). Selon une variante de l'invention, le module électronique de gestion de blocs ne met en oeuvre que l'une des fonctions de détermination du premier bloc à transmettre ou de détermination du nombre d'informations de statuts consécutives ayant ou n'ayant pas une valeur prédéterminée à partir d'un rang particulier. En outre, l'invention ne se limite pas aux transmissions sans fil mais concerne toutes les transmissions sur un médium quelconque, et notamment sur des canaux filaires bruités ou sur un canal d'enregistrement.
Claims (15)
1. Procédé de transmission de paquets de données, caractérisé en ce qu'il comprend les étapes suivantes : - écriture (422) dans un premier registre (370) d'au moins un descripteur (3700) de paquets à transmettre, chaque descripteur de paquets à transmettre comprenant des informations représentatives d'un statut de chaque paquet appartenant audit ensemble, le statut de chaque paquet indiquant si ledit paquet est à transmettre ou non ; - détermination du premier paquet (3710) de données à transmettre à partir du contenu dudit premier registre et enregistrement d'un identifiant du premier paquet de données à transmettre dans un deuxième registre (371) ; et - transmission d'un ensemble de paquets de données.
2. Procédé selon la revendication 1, caractérisé en ce que ladite étape de détermination du premier paquet est une étape élémentaire effectuée en au plus un nombre de cycles d'horloge strictement inférieur à la taille du premier registre exprimée en nombre de données binaires.
3. Procédé selon la revendication 2, caractérisé en ce que ladite étape de détermination du premier paquet est une étape élémentaire effectuée en au plus un cycle d'horloge. 25
4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce qu'il comprend une étape de détermination du nombre de paquets consécutifs à transmettre avec ledit premier paquet de données à transmettre. 30
5. Procédé selon la revendication 4, caractérisé en ce que ladite étape de détermination du nombre de paquets consécutifs à transmettre est une étape élémentaire effectuée en au plus un nombre de cycles d'horloge strictement inférieur à la taille du premier registre exprimée en nombre de données binaires. 35
6. Procédé selon la revendication 5, caractérisé en ce que ladite étape de détermination du nombre de paquets consécutifs à transmettre est une étape élémentaire effectuée en au plus un cycle d'horloge.
7. Procédé selon l'une quelconque des revendications 4 à 6, caractérisé en ce que lesdites étapes de détermination du premier paquet et de détermination du nombre de paquets consécutifs à transmettre sont simultanées.
8. Procédé selon l'une quelconque des revendications 1 à 7, caractérisé qu'il comprend une étape d'enregistrement du nombre de paquets consécutifs à transmettre dans ledit deuxième registre.
9. Procédé selon l'une quelconque des revendications 1 à 8, caractérisé en ce que la lecture du deuxième registre entraîne une mise à jour purement électronique du premier registre, du statut de chaque paquet indiqué comme étant à transmettre par le deuxième registre.
10. Procédé selon la revendication 9, caractérisé en ce que la lecture du deuxième registre et la mise à jour du premier registre correspondant se font en au plus un cycle d'horloge.
11. Procédé selon l'une quelconque des revendications 1 à 10, caractérisé en ce qu'au moins un dudit ou desdits descripteurs de paquets à transmettre est un descripteur d'état courant de transmission de paquets mis à jour après une réception d'un acquittement de paquets correspondant à des paquets transmis préalablement ou expiration d'une temporisation faisant suite à une transmission de paquets.
12. Procédé selon l'une quelconque des revendications 1 à 11, caractérisé en ce que lesdites étapes de détermination du premier paquet de données à transmettre à partir du contenu dudit premier registre et d'enregistrement d'un identifiant du premier paquet de données à transmettre dans un deuxième registre sont réitérées tant que le descripteur comprend des informations représentatives d'un statut correspondant à des paquets à transmettre.
13. Procédé selon l'une quelconque des revendications 1 à 12, caractérisé en ce que le paquet correspondant à un statut est identifié, au moins en partie, par la position d'une information représentative du statut.
14. Procédé selon l'une quelconque des revendications 1 à 13, caractérisé en ce que la transmission d'un ensemble de paquets de données est effectuée sur un canal sans fil.
15. Dispositif (3) de transmission de paquets de données, caractérisé en ce qu'il comprend : - des moyens d'écriture dans un premier registre (370) d'au moins un descripteur de paquets à transmettre, chaque descripteur de paquets à transmettre comprenant des informations représentatives d'un statut de chaque paquet appartenant audit ensemble, le statut de chaque paquet indiquant si ledit paquet est à transmettre ou non ; - des moyens de détermination du premier paquet de données à transmettre à partir du contenu dudit premier registre et des moyens d'enregistrement d'un identifiant du premier paquet de données à transmettre dans un deuxième registre (371) ; et - des moyens transmission d'un ensemble de paquets de données.
Priority Applications (7)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR0650844A FR2898455A1 (fr) | 2006-03-13 | 2006-03-13 | Procede et dispositif de transmission de paquets de donnees |
| PCT/EP2007/052145 WO2007104688A1 (fr) | 2006-03-13 | 2007-03-07 | Procédé et dispositif de transmission de paquets de données |
| KR1020087020789A KR101332279B1 (ko) | 2006-03-13 | 2007-03-07 | 데이터 패킷 전송 방법 및 디바이스 |
| EP07726698.9A EP1994695B1 (fr) | 2006-03-13 | 2007-03-07 | Procédé et dispositif de transmission de paquets de données |
| CN2007800094149A CN101406001B (zh) | 2006-03-13 | 2007-03-07 | 用于传输数据分组的方法和设备 |
| US12/225,057 US8320251B2 (en) | 2006-03-13 | 2007-03-07 | Method and device for transmitting data packets |
| JP2008558783A JP4827933B2 (ja) | 2006-03-13 | 2007-03-07 | データパケットを送信する方法およびデバイス |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR0650844A FR2898455A1 (fr) | 2006-03-13 | 2006-03-13 | Procede et dispositif de transmission de paquets de donnees |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| FR2898455A1 true FR2898455A1 (fr) | 2007-09-14 |
Family
ID=37398269
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| FR0650844A Pending FR2898455A1 (fr) | 2006-03-13 | 2006-03-13 | Procede et dispositif de transmission de paquets de donnees |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US8320251B2 (fr) |
| EP (1) | EP1994695B1 (fr) |
| JP (1) | JP4827933B2 (fr) |
| KR (1) | KR101332279B1 (fr) |
| CN (1) | CN101406001B (fr) |
| FR (1) | FR2898455A1 (fr) |
| WO (1) | WO2007104688A1 (fr) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9420072B2 (en) | 2003-04-25 | 2016-08-16 | Z124 | Smartphone databoost |
| US8767632B2 (en) * | 2009-02-05 | 2014-07-01 | Motorola Mobility Llc | Method for uplink acknowledgement/non-acknowledgement messages in a wireless communication system |
| US8751682B2 (en) | 2010-09-27 | 2014-06-10 | Z124 | Data transfer using high speed connection, high integrity connection, and descriptor |
| US8788576B2 (en) | 2010-09-27 | 2014-07-22 | Z124 | High speed parallel data exchange with receiver side data handling |
| US9351237B2 (en) | 2011-09-27 | 2016-05-24 | Z124 | Displaying of charging status on dual screen device |
| US9774721B2 (en) | 2011-09-27 | 2017-09-26 | Z124 | LTE upgrade module |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20020087732A1 (en) * | 1997-10-14 | 2002-07-04 | Alacritech, Inc. | Transmit fast-path processing on TCP/IP offload network interface device |
| WO2002087174A1 (fr) * | 2001-04-24 | 2002-10-31 | Thales | Procede de gestion d'une liste de paquets dans un port de sortie d'un commutateur de paquets. |
Family Cites Families (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5483518A (en) * | 1992-06-17 | 1996-01-09 | Texas Instruments Incorporated | Addressable shadow port and protocol for serial bus networks |
| US6389479B1 (en) * | 1997-10-14 | 2002-05-14 | Alacritech, Inc. | Intelligent network interface device and system for accelerated communication |
| JP3689580B2 (ja) * | 1999-01-29 | 2005-08-31 | 株式会社日立製作所 | インタネット電話接続方法、帯域管理装置及びゲートキーパー装置 |
| US6625472B1 (en) * | 1999-05-13 | 2003-09-23 | Skyworks Solutions, Inc. | Apparatus and method for connecting a cellular telephone to a universal serial bus |
| EP1059589B1 (fr) * | 1999-06-09 | 2005-03-30 | Texas Instruments Incorporated | DMA multicanal avec planification de trafic de données sur des ports |
| US7023833B1 (en) * | 1999-09-10 | 2006-04-04 | Pulse-Link, Inc. | Baseband wireless network for isochronous communication |
| JP2001274895A (ja) * | 2000-03-23 | 2001-10-05 | Casio Comput Co Ltd | データ転送装置及び記録媒体 |
| US6795360B2 (en) * | 2001-08-23 | 2004-09-21 | Integrated Device Technology, Inc. | Fifo memory devices that support all four combinations of DDR or SDR write modes with DDR or SDR read modes |
| JP2003283472A (ja) * | 2002-03-25 | 2003-10-03 | Hitachi Kokusai Electric Inc | データ転送制御方法 |
| US7412536B2 (en) * | 2003-06-27 | 2008-08-12 | Intel Corporation | Method and system for a network node for attachment to switch fabrics |
| JP2005229151A (ja) * | 2004-02-10 | 2005-08-25 | Murata Mach Ltd | 通信端末装置 |
| US7161909B2 (en) * | 2004-04-23 | 2007-01-09 | Samsung Electronics Co., Ltd. | Method and system for acknowledging the receipt of a transmitted data stream in a wireless communication system |
| JP4497299B2 (ja) * | 2004-07-01 | 2010-07-07 | 日本電気株式会社 | 移動無線通信端末装置 |
| JP4369351B2 (ja) * | 2004-11-30 | 2009-11-18 | 株式会社日立製作所 | パケット転送装置 |
-
2006
- 2006-03-13 FR FR0650844A patent/FR2898455A1/fr active Pending
-
2007
- 2007-03-07 CN CN2007800094149A patent/CN101406001B/zh not_active Expired - Fee Related
- 2007-03-07 EP EP07726698.9A patent/EP1994695B1/fr not_active Ceased
- 2007-03-07 JP JP2008558783A patent/JP4827933B2/ja active Active
- 2007-03-07 WO PCT/EP2007/052145 patent/WO2007104688A1/fr not_active Ceased
- 2007-03-07 US US12/225,057 patent/US8320251B2/en active Active
- 2007-03-07 KR KR1020087020789A patent/KR101332279B1/ko active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20020087732A1 (en) * | 1997-10-14 | 2002-07-04 | Alacritech, Inc. | Transmit fast-path processing on TCP/IP offload network interface device |
| WO2002087174A1 (fr) * | 2001-04-24 | 2002-10-31 | Thales | Procede de gestion d'une liste de paquets dans un port de sortie d'un commutateur de paquets. |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2007104688A1 (fr) | 2007-09-20 |
| JP2009530879A (ja) | 2009-08-27 |
| EP1994695B1 (fr) | 2017-03-01 |
| US20090303999A1 (en) | 2009-12-10 |
| CN101406001A (zh) | 2009-04-08 |
| EP1994695A1 (fr) | 2008-11-26 |
| US8320251B2 (en) | 2012-11-27 |
| JP4827933B2 (ja) | 2011-11-30 |
| KR20080106203A (ko) | 2008-12-04 |
| KR101332279B1 (ko) | 2013-11-22 |
| CN101406001B (zh) | 2011-04-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0046831B1 (fr) | Système de retransmission de trames numérotées et reçues en erreur dans un système de transmission de données | |
| FR2824215A1 (fr) | Procede et dispositif de traitement d'un message dans un reseau de communication | |
| EP1949619A1 (fr) | Routeur et reseau de routage | |
| EP3470982B1 (fr) | Procede et dispositif pour la gestion dynamique du delai de retransmission de message sur un reseau d'interconnexion | |
| US20110122816A1 (en) | Method and apparatus for managing transmission of tcp data segments | |
| FR2948838A1 (fr) | Procede de transmission de donnees multimedia dans des reseaux de communication adhoc | |
| US8320251B2 (en) | Method and device for transmitting data packets | |
| EP0723355A1 (fr) | Système de transmission à compression de données | |
| FR2898752A1 (fr) | Procede et dispositif d'asssemblage de paquets de donnees | |
| FR2898446A1 (fr) | Procede, module et appareil de reception de trames de paquets de donnees | |
| FR3106422A1 (fr) | Passerelle de communication de trames de données pour véhicule automobile | |
| FR2850508A1 (fr) | Procede d'insertion et de traitement d'informations pour le controle par un noeud de la diffusion d'un flux de donnees traversant un reseau de base d'un reseau heterogene, et noeuds correspondants | |
| EP1355454B1 (fr) | Dispositif de routage à traitement parallèle | |
| EP4142251B1 (fr) | Procédé de traitement d'une requête d'intérêt dans un réseau ndn | |
| FR2921777A1 (fr) | Procede d'acquittement hierarchique de donnees, produit programme d'ordinateur, moyen de stockage et noeud correspondants. | |
| FR3164860A1 (fr) | Procédés de gestion de la transmission et de la réception d’un paquet de données compressé | |
| EP1324562A1 (fr) | Système de communication de données selon un principe de commutation par paquets | |
| FR2833124A1 (fr) | Procedes de transmission de donnees dans un reseau de communication, dispositifs et systeme correspondants | |
| EP0723341A1 (fr) | Système de compression de données | |
| FR2794918A1 (fr) | Procede et dispositif d'emission, de traitement et de reception d'un paquet de donnees dans un reseau de communication | |
| EP0603053A1 (fr) | Procédé de génération d'erreurs binaires et dispositif de mise en oeuvre du procédé | |
| FR2835133A1 (fr) | Procede de mise a jour de tables de routage dans un reseau de communication, portail, systeme et programme correspondants | |
| EP0716546A1 (fr) | Procédé d'adressage d'usagers dans un système de télévision à accès réservé | |
| FR3100908A1 (fr) | Procédé de communication entre des entités logicielles via une API | |
| FR2794919A1 (fr) | Procede et dispositif de traitement et de transfert d'un paquet de donnees dans un reseau de communication |