Brevet FR2910655A1 — publié le 20080627

PROCEDE DE RESERVATION ET D'ALLOCATION DYNAMIQUE DE CRENEAUX TEMPORELS DANS UN RESEAU AVEC GARANTIE DE SERVICE L'invention concerne les réseaux radio ad hoc à accès temporel multiple ou TDMA (Time Division Multiple Access). Elle vise, plus particulièrement, l'allocation des slots entre les différents noeuds du réseau et la capacité de réservation de ressources incluant les contraintes de débit et de latence bout-en-bout. Elle s'applique, aussi, dans des systèmes multi-canaux TDMA (par exemple à accès temporel et fréquentiel multiple, T/FDMA pour Time and Frequency Division Multiple Access), les réseaux radio utilisant une modulation OFDMA (Orthogonal Frequency Division Multiple Access) et tout autre système, qui utilise des créneaux temporels et un schéma d'allocation dynamique à la place d'un schéma d'allocation fixe. Les réseaux radio TDMA utilisent généralement des allocations statiques. L'allocation est, soit totalement fixée (trame cyclique avec un slot par noeud), soit définie à l'avance pour une configuration. Les nouveaux systèmes radio commencent à prendre en compte la qualité de service, mais cette prise en compte ne permet pas encore de supporter la réservation globale de ressources avec garantie de service de bout-en-bout (en débit et latence), en particulier les protocoles de garantie de service sur IP (Internet Protocol), tel que le protocole de réservation de ressources RSVP abréviation anglo-saxonne de Reservation Protocol. Un autre inconvénient de l'art antérieur est son incapacité à éviter la saturation des noeuds fortement sollicités, même si les autres noeuds du réseau possèdent des ressources non utilisées et disponibles. En ce qui concerne l'allocation de ressources, les systèmes de radio actuels TDMA ne supportent pas la réservation de ressources et le réseau 2910655 2 ne peut garantir à la fois, un débit minimal et une latence maximale bout-en-bout. L'invention concerne un procédé de niveau contrôle d'accès au milieu 5 MAC (en anglo-saxon medium access control) permettant l'allocation dynamique des slots de ressource avec une garantie de service. Deux types de trafic sont distingués : le trafic élastique et le trafic de session. Le trafic de session correspond à des flux multimédia continus (voix et vidéo) et des flux de données temps-réel pour lesquels on désire une 10 garantie de service forte (débit et latence). L'invention permet, d'une part, de recevoir et de traiter des requêtes de réservation de ressource pour des flux de session provenant des couches supérieures (couche IP typiquement). Ces requêtes de réservation 15 incluent les contraintes de débit minimal, mais aussi de délai maximum de transmission d'un paquet (sur un saut). Elles sont typiquement élaborées par un processus de réservation global, tel que le protocole RSVP sur IP, permettant de décliner des contraintes globales de débit minimal garanti et de latence maximale de bout en bout en contraintes 20 locales de débit pour des caractéristiques connues de flux applicatif, associées à un délai maximum de transmission d'un paquet, au niveau de chacun des noeuds du chemin. L'invention permet, d'autre part, de réaliser des allocations dynamiques de slots de session de manière locale, c'est-à-dire sans recours à une 25 gestion centralisée, en fonctionnement normal. Le procédé selon l'invention repose, notamment, sur une attribution explicite des slots de sessions à un ou plusieurs noeuds et sur une notion de réservation de ces slots. Un slot attribué à un noeud peut être librement réservé par ce noeud pour satisfaire une requête de réservation de ressources. Vu d'un 30 noeud donné, l'ensemble des slots de session non réservés, forme un groupe ou pool de ressources dans lequel il peut potentiellement puiser. 2910655 3 Dans une première étape, le noeud qui reçoit une requête de réservation va élaborer une configuration de réservation de slots de session. Un algorithme d'allocation de ressources va alors sélectionner des slots de ce pool de façon à ce que la configuration de réservation satisfasse les 5 contraintes tout en privilégiant ses propres slots. Un noeud qui ne dispose pas suffisamment de ressources propres pour satisfaire la requête de réservation, va élaborer une configuration de réservation en utilisant le pool de slot de session impliquant au maximum ses propres slots de session, mais également des slots de session du pool qui ne lui sont pas 10 attribués. Dans une deuxième étape, l'allocation est négociée avec les noeuds voisins, en tenant compte des slots utilisés par les voisins (partage effectif de ressource) mais aussi, des situations potentielles d'interférence relatives à la réutilisation spatiale du slot dans l'espace (réutilisation 15 spatiale de ressource). La gestion de ces interférences permet donc la réutilisation spatiale des slots de session, permettant ainsi des passages à l'échelle, en fonction du nombre de noeuds du réseau (scalabilité). Additionnellement, une commutation au niveau MAC (relayage) peut être effectuée sur les flux de session de façon à réduire le temps de transit 20 dans chaque noeud, d'éviter de passer dans la couche supérieure (IP typiquement) et de garantir une faible gigue en maintenant un chemin MAC pour la session en réalisant une sorte de punaisage de route (plus connue sous la désignation anglo-saxonne route pinning ) au niveau MAC. 25 L'invention concerne un procédé de réservation de ressources avec garantie de service en débit et délai au niveau des N noeuds d'un réseau radio utilisant des créneaux temporels pour émettre et transmettre des données, caractérisé en ce qu'il met en oeuvre un processus de réservation global dans lequel un message de réservation émis utilise au 30 moins un des deux paramètres suivants : le délai maximum requis pour accéder au milieu radio et/ou le débit minimal requis afin de satisfaire la garantie de service. 2910655 4 L'objet de l'invention concerne un procédé de réservation de ressource avec garantie de service en débit et délai au niveau des N noeuds d'un réseau radio utilisant des créneaux temporels pour émettre et transmettre des données, caractérisé en ce qu'il met en oeuvre un 5 processus de réservation global dans lequel, un message de réservation émis utilise au moins un des deux paramètres suivants : le délai maximum requis pour accéder au milieu radio, le débit minimal requis afin de satisfaire la garantie de service. Il met, par exemple, en oeuvre une méthode d'allocation dynamique de 10 créneaux temporels définie de la manière suivante : les N noeuds comprenant chacun K slots , dont un slot de contrôle, P slots élastiques et (K-1-P) slots de session, il y a mise en commun des (K-1-P) slots de session pour l'allocation de ressources requises par un noeud à un instant donné. 15 Le procédé et le système selon l'invention offrent notamment les avantages suivants : o Mettre en commun des ressources libres appartenant à plusieurs noeuds, afin d'éviter la saturation d'un ou de plusieurs noeuds. 20 o Garantir une qualité de service au niveau noeud sur les flux de session en terme de débit, de délai de transmission et de gigue. o Permettre de mettre en place des garanties de service applicatif (au niveau des couches supérieures) en terme de débit minimal et de valeur de latence maximum pour le bout-en-bout. Ceci est alors 25 réalisé en mettant en oeuvre un mécanisme global de réservation (tel que le protocole standard RSVP sur IP). o L'optimisation des ressources globales d'un réseau radio TDMA (l'allocation dynamique permet, par exemple, au niveau du routage de privilégier les chemins à nombre minimal de bonds). 30 o La réutilisation spatiale des slots de façon à augmenter la capacité globale du réseau et introduire le passage à l'échelle en fonction du nombre de noeuds du réseau (scalabilité). 2910655 5 o A disposer d'une connaissance sur l'utilisation des ressources au niveau de la couche MAC. D'autres caractéristiques et avantages de la présente invention 5 apparaîtront mieux à la lecture de la description qui suit et d'un exemple donné à titre illustratif et nullement limitatif, annexé des figures qui représentent : o La figure 1, un exemple de trame de base relative à un noeud n, o La figure 2, une structure de trame, 10 o La figure 3, une structure de trame en terme d'allocation de slots, o La figure 4, un exemple de trame non entrelacée, o La figure 5, un exemple de trame entrelacée, o La figure 6, un exemple d'algorithme d'entrelacement, o La figure 7, une représentation des horizons à 1 bond (zone 1), 2 15 bonds (zone 2) et supérieur à 2 bonds (zone 3) pour un noeud donné (noeud A dans l'exemple), o La figure 8, un exemple de répartitions de paquets appartenant à différentes sessions au sein d'un slot de session, o La figure 9 une structure de paquet MAC, 20 o La figure 10, un exemple de réseau composé de 6 noeuds, o La Figure 11 un exemple de configuration de réservation pour le réseau de la figure 10, o La figure 12, un diagramme bloc d'un mécanisme de pré-emption, o La figure 13, un exemple d'échange de messages pour la 25 négociation d'une réservation: émissions de requête SAR par le noeud 3 et de messages de confirmation SAC par les noeuds voisins 2, 5 et 6, o La figure 14, un exemple d'émission de deux requêtes simultanées SAR dans une même trame par les noeuds 1 et 3, d 'émission 30 de messages de confirmation SAC par les noeuds voisins 4 et 5 pour le noeud 1, par les noeuds 6 et 2 pour le noeud 3, suivi d'une requête de déallocation du noeud 3. 2910655 6 o La figure 15, un automate à état finis décrivant l'ensemble des états du processus de négociation de slot. Afin de mieux faire comprendre le principe mis en oeuvre dans le procédé 5 selon l'invention, la description est donnée à titre illustratif et nullement limitatif, pour un réseau radio ad hoc TDMA dans lequel tous les noeuds sont autonomes et jouent un même rôle. Pour cela, ils sont équipés chacun d'un processeur adapté à mettre en oeuvre les étapes du procédé selon l'invention. Ils sont aussi pourvus de moyen radio, émetteur et 10 récepteur, permettant de transmettre et de recevoir les messages transmis vers d'autres noeuds ou en provenance de ces autres noeuds. Chaque noeud comprend, comme il est détaillé ci-après, plusieurs tables : une table DRAM contenant l'information relative aux noeuds, une table de visibilité des autres noeuds, une table de statut, une table créneau 15 temporel ou slot, etc.. Quelques rappels et définitions sont donnés en préambule à l'exposé du procédé et du système selon l'invention. Terminologie L'architecture d'une trame radio est composée de quatre éléments en couche dans lesquels vont être véhiculées les données utiles: 20 o Unité de données (utiles) : paquet de l'application (paquet IP par exemple), o Ressource MAC élémentaire : paquet MAC (paquet d'encapsulation au niveau MAC d'un paquet d'application), o Créneau temporel : slot, 25 o Trame de base : BF, o Trame : F . Paquet MAC Le paquet MAC est une structure de donnée élémentaire au niveau MAC. NPS est le nombre de paquets MAC qu'un noeud peut transmettre dans 30 un créneau temporel (slot). Créneau temporel slot et trame de base La trame de base et les slots sont illustrés sur la figure 1 2910655 7 Cn : slot de contrôle pour le noeud n Dn : slot attribué au noeud n Ts : durée du slot K : nombre de slots composant la trame de base 5 TBF : durée de la trame de base avec TBF=K*Ts Chaque trame de base est relative à un noeud spécifique. L'exemple illustré à la figure 1 montre la trame de base du noeud n. Chaque trame de base contient K slots. Le premier slot Cno dans chaque trame de base est appelé slot de contrôle C'est un slot fixe alloué de façon 10 permanente au noeud n. Le noeud n utilise ce slot pour transmettre la signalisation de niveau MAC (paquets de signalisation nécessaires au fonctionnement des services du niveau MAC tels que la découverte de voisins et la synchronisation trame). Le slot Dni (où i = 1....K-1) représente un des K-1 slots attribués, a 15 priori, au noeud n. Ce noeud n peut utiliser ce slot pour transmettre ses propres données ou peut prêter ce slot à un autre noeud, en mettant en oeuvre les étapes du procédé selon l'invention. Cela signifie que, en relation avec la figure 1, un noeud m peut requérir et obtenir du noeud n la permission de transmettre sur le slot Dni. 20 Les slots, peuvent être divisés en deux classes : o Les slots élastiques utilisés pour transmettre les données élastiques : en général, un sous-ensemble p de Dni (où i = 1...K-1) slots sont alloués statistiquement à un noeud afin de transmettre des données élastiques. Ainsi, Dnj, (où j= 1...p) slots sont réservés 25 pour la transmission de données élastiques. o Les slots de session utilisés pour transmettre des paquets de session. Ces slots peuvent supporter des données élastiques. Si l'on décompte le slot de contrôle et les slots élastiques, les K-1-p slots restants constituent des slots de session qui sont allouables 30 dynamiquement, de façon à transmettre les paquets de session. Les slots de session attribués, mais non utilisés par le noeud auquel 2910655 8 ils sont attribués, peuvent être regroupés dans un ensemble ou pool et partagés entre tous les noeuds du réseau. Trame Chaque noeud a la responsabilité de gérer sa propre trame de base (à 5 l'initialisation du procédé, la trame de base définit notamment les slots attribués). La séquence des trames de base pour l'ensemble des noeuds du réseau compose la trame. Si le réseau est formé de N noeuds, la structure de trame est, par exemple, celle qui est représentée à la figure 2. 10 BFn correspond à la trame de base gérée par le noeud n; K le nombre de slots composant une trame basique ; TF la durée de la trame, avec TF =N*TBF=N*K*Ts. La période d'une trame dépend des paramètres K nombre de slots composant une trame de base, et N, le nombre de noeuds composant le 15 réseau. Gestion des slots et requête de réservation de ressource La figure 3 représente un exemple de structure d'une trame et sa composition. Chaque trame de base est composée de K slots. Ainsi, si le nombre total de noeud est N, le nombre total de slots composant la trame 20 est N*K. A l'intérieur de chaque trame de base, un slot de contrôle CTRL ou Cno est réservé pour la signalisation de niveau MAC et P slots sont utilisés pour transmettre les données élastiques ED. Les slots restants, K-1-P, sont utilisés pour transmettre les paquets de session SES, ces derniers sont mis en commun (en pool) pour être partagés entre tous les 25 noeuds du réseau. Pour les N noeuds cela correspond à (N*(K-1-P)) slots de session. Chaque noeud peut potentiellement utiliser tout slot de session du pool, alors que le slot de contrôle et les slots élastiques sont définitivement alloués à un noeud. 30 En présence d'une nouvelle session, la couche MAC reçoit une requête de réservation de ressource assortie d'une contrainte de débit minimal et d'une contrainte de délai d'accès radio maximal. 2910655 9 Chaque slot est caractérisé par un débit élémentaire associé. Un noeud n peut ainsi évaluer le nombre de slots dont il a besoin pour satisfaire la requête de réservation en terme de débit en se basant sur le débit élémentaire offert par un slot. 5 En relation avec les besoins des applications, la couche supérieure peut requérir une augmentation ou une diminution de l'occupation de la couche MAC par l'intermédiaire de requêtes de réservation de ressource. C'est la couche MAC qui réalise l'allocation effective des ressources correspondant à une requête de réservation de ressource pour une 10 session. Cette couche MAC décide combien de slots de sessions sont nécessaires pour satisfaire la requête de réservation de ressource et démarre des procédures propres pour établir quels slots dans la trame seront utilisés, et plus particulièrement quels paquets MAC sont réservés. Procédé d'entrelacement 15 De façon à rendre le temps d'accès radio homogène et minimal pour tous les noeuds, il est possible d'entrelacer les slots. Un algorithme d'entrelacement propre est utilisé par chacun des noeuds pour définir la séquence temps réel des slots. La figure 4 schématise une trame non entrelacée, avec K = 6 et N=4. La 20 position des slots est distribuée régulièrement selon les noeuds. La figure 5 schématise un exemple de trame pour laquelle il y a entrelacement. La figure 6 illustre un exemple d'algorithme d'entrelacement est le suivant : si la position (k*N) est occupée, k étant l'indice du slots, le slot 25 (k*N)+1 sera utilisé et ainsi de suite. Allocation des slots de session Sur une demande de réservation de ressources pour une nouvelle session, un algorithme d'allocation de ressource élabore une configuration de réservation de slots sessions, et plus particulièrement de 30 paquets MAC (appartenant aux slots de session). Plusieurs contraintes sont prises en compte au niveau de cet algorithme: 2910655 10 o Les ressources allouées doivent être compatibles avec les exigences de débit minimal spécifiées dans la requête de réservation, o Le délai d'accès radio maximal doit être compatible avec le délai 5 maximum imposé dans la requête de réservation. De plus, le procédé selon l'invention, peut implémenter un algorithme d'optimisation qui permet d'augmenter la capacité de transmission d'un noeud en utilisant des concepts de réutilisation de ressources, réutilisation spatiale de slots. 10 La figure 7 représente la décomposition de l'horizon pour chacun des noeuds en plusieurs zones. Par exemple, pour le noeud A, on divise le réseau en trois zones définies de la manière suivante : o Zone 3 , elle inclut tous les noeuds qui sont éloignés d'au moins trois sauts de A, 15 o Zone 2 , zone qui inclut tous les noeuds qui sont éloignés de 2 sauts de A, o Zone 1 , inclut tous les noeuds qui sont éloignés d'un saut (voisins directs) de A. Si le noeud A (zone 1) et un noeud de la zone 3, par exemple le noeud G 20 (zone 3), transmettent des paquets dans le même slot, il n'y a pas collision sur ce slot, puisque les destinataires du noeud A pour ce slot ne sont pas en portée des autres noeuds de la zone 3, tel que G, qui utilisent ce slot. Pour la même raison, le noeud A et un autre noeud situé dans la zone 3 peuvent réutiliser le même slot. 25 A l'inverse, si le noeud A (zone 1) et le noeud F (zone 2) utilisent le même slot, le noeud C et le noeud D ne peuvent pas recevoir l'ensemble des paquets transmis dans ce slot en raison de la collision. En résumé, les noeuds éloignés de moins de 2 sauts ne peuvent pas utiliser un même slot, mais à l'inverse, un slot peut être réutilisé 30 spatialement au-delà de 3 sauts. Sur cette base, le procédé va élaborer au niveau de chaque noeud, une connaissance de l'allocation des slots sur 2910655 11 un horizon de deux noeuds, ce qui permet, d'une part, de négocier le prêt de slot localement et, d'autre part, de réutiliser spatialement les slots. Chaque noeud stocke ainsi sa connaissance des slots utilisés par les noeuds qui sont éloignés d'un ou de deux sauts dans une table DRAM. 5 De façon à éviter au maximum les conflits de réservation, avant d'utiliser des slots gérés par d'autres noeuds, un noeud doit vérifier sa table DRAM et propager son contenu à tous les noeuds qui sont éloignés d'un saut et de deux sauts. Cette information est envoyée par l'intermédiaire de messages dédiés. 10 Table DRAM Le mécanisme d'allocation de ressources dynamique, est basé sur un échange d'informations effectué grâce aux paquets de contrôle MAC véhiculés dans les slots de contrôle CTRL. Pour cela, une table DRAM mémorise : 15 o trois types de slots: 0 : slot session ; 1 : slot control ; 2 : slot données élastiques ; o ID slot : le numéro de slot dans la trame dans l'intervalle 0 à N*K-1 ; o statut : ce champ est composé de 24 bits. Les 20 bits les moins 20 significatifs sont relatifs aux 20 noeuds du réseau. Si le pième bit (en partant de la droite) est mis à 1, cela signifie que le noeud p utilise le slot considéré. Dans la table DRAM d'un noeud, seule l'information relative aux noeuds qui sont situés à un ou deux sauts est mémorisée. Pour les autres noeuds 25 éloignés de plus de deux sauts, le noeud n'a pas de visibilité. Tous les noeuds du réseau construisent leur propre table de la même façon. Tvne de 0 0 0 SLOT ID 0 1 . N*K -1 STATUT 000010000010000001 000000000100010000 ... 000000000000000000 30 noeuds 3, 10 et 16 utilisent le slot 0 dans la trame. 4 Aucun noeud n'utilise de slot (N*k -1) dans la Noeuds 7 et 11 utilisent le slot 1 dans la trame. 2910655 12 Table de visibilité Un noeud possède aussi une table de visibilité composée de deux colonnes. La première colonne correspond aux noeuds qui sont situés à un saut du noeud, elle contient le ID ou identificateur des noeuds situés à 5 un saut. La deuxième colonne contient les identificateurs ID des noeuds situés à deux sauts, qui peuvent être atteints par l'intermédiaire du noeud qui est stocké dans la première colonne et la même rangée. Se basant sur sa table de visibilité, et sur N, le nombre maximum de noeuds dans le réseau, chaque noeud peut construire une autre table, la 10 table des noeuds éloignés, qui contient tous les identifiants ID des noeuds qui sont éloignés de plus de deux sauts. Cette table des noeuds éloignés est utilisée, notamment, pour rechercher les identificateurs ID des noeuds dont les ressources peuvent être réutilisées. La table de visibilité et la table de noeuds éloignés sont construites en 15 envoyant des messages Hello (contenant l'identité du noeud émetteur) dans les slots de contrôles. Un saut Deux sauts ID du noeud ID du noeud Table du statut 20 La table des statuts contient deux champs prochain saut qui contient les ID des noeuds et statut qui contient vrai ou faux. Le statut peut être vrai, si un message de confirmation d'allocation de slot est reçu ou bien faux autrement. Prochain saut statut Noeud ID Vrai ou faux Table des slots Une autre table utile est la table des slots, 25 2910655 13 ID du Nombre de Nombre de ID de la ... Nombre de ID de session slot sessions paquets pour session 0 paquets pour N-1 la session 0 la session N-1 Son contenu est le suivant : o ID slot ; ce champ contient le ID d'un siot, o Nombre de sessions : cette valeur représente le nombre total de 5 sessions transmis à l'intérieur du siot, o Nombre de paquets pour la session K: ce champ contient le nombre de paquets MAC réservés pour la k'ème session dans le slot. La figure 8 schématise un cas où il y a plusieurs paquets MAC appartenant à différentes sessions dans un slot simple de durée Ts ; 10 IDses de la session K : cette valeur représente l'identifiant (le IDses) correspondant à la session. Les sessions sont différenciées sur la figure par des hachures. Table des requêtes de réservation en cours de traitement Lorsqu'une requête pour une nouvelle session est émise par les couches 15 supérieures, la session IDses et le niveau de priorité sont, par exemple, mémorisés dans une table spéciale dont le contenu est le suivant : o Session IDses : l'identifiant IDses de la nouvelle session, o Priorité : le niveau de priorité de la session est mémorisé dans ce champ, 20 o Statut : ce champ est positionné à 1 si la requête est en cours de traitement et O si la requête a été traitée. Une requête en cours de traitement est une requête pour laquelle le processus d'allocation a commencé mais les slots n'ont pas encore été réservés. Session IDses priorité statut 25 Une requête peut être en cours de traitement pour les raisons suivantes : 2910655 14 - Le noeud n'a pas encore reçu toutes les réponses SAC des noeuds proches voisins, - Le noeud a reçu une réponse qui ne lui est pas destinée et ainsi il doit désallouer des ressources. 5 Si plusieurs requêtes arrivent, elles sont stockées dans la table et sont traitées les unes après les autres. Lorsque le noeud doit choisir la requête à servir, la session ayant la priorité la plus élevée est servie en premier. Types de paquets Tous les paquets MAC ont la structure schématisée à la figure 9, 10 contenant les champs suivant : o Code : ce champ indique le type de paquets, o Champ Source : contient l'adresse source du noeud émetteur, o Champ Destination : contient l'adresse destination du noeud destinataire ; 15 o Champ HOP : contient le nombre de sauts, o Champ N slot : contient le nombre de slots IDs écrit dans le ID slot champ, o Champs ID slot : contiennent les IDs des slots, Procédure de négociation des slots 20 Il y a, par exemple, quatre types de messages utilisés dans la procédure de négociation des slots o requête allocation de slots ou SAR (slot allocation request) : ce message est transmis par un noeud lorsqu'il souhaite faire une requête d'allocation de slot, 25 o confirmation d'allocation de slot ou SAC (Slot allocation confirmation) : ce message est envoyé par un noeud lorsqu'il souhaite confirmer une allocation possible de slot. Les slots confirmés sont écrits dans le champ slot ID, o requête de désallocation de slot ou SDR (slot deallocation 30 request) : ce message est émis par un noeud lorsqu'il souhaite faire une requête de désallocation pour les slots alloués précédemment. Ces slots sont écrits dans le champ ID slot. 2910655 15 o confirmation de désallocation de slot ou SDC (slot deallocation confirmation) : ce message est envoyé par un noeud lorsqu'il souhaite faire une confirmation de désallocation. Les slots auxquels le message est destiné sont mémorisés dans le champ 5 slot ID. Procédé d'allocation dynamique Le procédé d'allocation dynamique selon l'invention, peut être divisé, par exemple, en trois principales étapes: El - calcul du nombre total minimal de paquets MAC et de slots requis 10 pour une session en fonction de la contrainte de débit minimal imposée par la requête de réservation; E2 -calcul des identités (ID) des slots dans la trame pour satisfaire la requête de réservation. L'algorithme de sélection des slots de session doit respecter la contrainte de délai maximum d'accès radio imposée par la 15 requête de réservation ainsi que le nombre minimal de paquets MAC réservés ; E3 - négociation avec les voisins en cas d'empreint de nouveaux slots par l'intermédiaire d'un message de requête SAR. Détermination du nombre de slots requis 20 Le calcul du nombre total de slots requis pour une session dépend des contraintes imposées dans la requête de réservation de ressource. Les paramètres d'entrée sont donnés dans la requête et sont utilisés pour déterminer les slots nécessaires : o débit requis (RB) en bit/s ; 25 o délai maximum (MD) pour accéder au médium radio en ms ; o taille maximum des paquets (PS) de données de l'application en bit ; La déclinaison du procédé de réservation de la couche supérieure (comme typiquement RSVP sur IP) en terme de requête de réservation 30 de ressource est détaillée plus loin. Les autres paramètres, donnés comme des contraintes de système sont, par exemple : 2910655 16 o Le nombre N de noeuds dans le réseau ; o Le nombre de slots K composant la trame basique ; o Le débit (BR) du lien radio en bits/s ; o la durée du slot (Ts) ; 5 o le nombre NPS de paquets MAC dans un slot ; o le nombre de bits M utilisés pour encapsuler chaque paquet. Le nombre maximum de bits qui peut être transmis dans un slot est donné par le produit du débit par la durée du slot Bs=BR*Ts 10 On soustrait de Bs, le nombre de bits utilisés pour l'encapsulation d'un paquet de donnée de l'application. Ainsi, le nombre maximum de bits utiles pour l'encapsulation de données UBs est donné par : UBs = Bs -M*NPS Le nombre de slots nécessaires pour satisfaire seulement la contrainte de 15 débit ( largeur de bande passante ) BWs est donné par : BWS=U18 TF où TF est la durée de la trame donnée par : T,. =N*K*TSle nombre total de slots dans une trame est donné par: NSF=N*K En prenant en compte la contrainte de délai MD, le nombre de slots D~ nécessaire pour satisfaire cette exigence est: T _ DS _ _ F MD Une fois calculés BWS et DS, le nombre de slots nécessaires TNS est 25 donné par le maximum des deux paramètres: TNS = max(BWS , DS ) Le procédé détermine ensuite, la distance maximum entre un premier slot session et le suivant ; cette valeur MDs est donnée par: 20 2910655 17 NSF MD = TN s Cela signifie qu'il y a un slot session chaque MDS slots dans la trame. Si la taille maximurn du paquet PS est plus grande que la valeur utile du bit UBS , le nombre de slots consécutifs est : 5 CS= PU.B.s Calcul d'une configuration de réservation, des identificateurs ID des slots et des paquets MAC à réserver avec mécanisme de préemption En partant de la valeur de la distance MDs (distance maximum entre 10 deux slots) déterminée lors de l'étape précédente, et de la contrainte de débit minimal il faut déterminer les identifiants ID des slots à réserver. La sélection des slots de session et l'élaboration d'une configuration de réservation est réalisée à l'aide d'un algorithme d'allocation de ressource. Cet algorithme détermine une solution d'allocation qui respecte les 15 contraintes suivantes : - un espacement temporel, entre deux slots réservés successifs, inférieur à la distance MDS calculée lors de l'étape précédente, une utilisation prioritaire des slots déjà attribués au noeud, un espacement temporel des slots réservés aussi régulier que 20 possible, un nombre de paquets MAC réservés (sur les slots empruntés et sur les slots propres) garantissant le débit minimal requis, - en cas d'absence de solution, possibilité de préemption des slots propres réservés pour des sessions de moindre priorité. 25 Les paramètres d'entrée pour cette étape sont : o Le nombre de slots nécessaires pour la session; o Le nombre des slots consécutifs CS; o La valeur de la table DRAM ; o La valeur de la table de visibilité. 2910655 18 L'élaboration de la configuration de réservation au niveau d'un noeud repose sur un algorithme d'allocation de ressource intégrant les contraintes émises dans la requête de réservation. Une heuristique consiste, par exemple, à examiner chaque slot en commençant, à partir 5 du premier slot libre dans la trame de base, puis en recherchant de proche en proche à sélectionner un slot de session qui satisfasse la contrainte de délai maximal d'accès radio. A la fin de ce processus de sélection, de nouveaux slots sont éventuellement réservés si la contrainte de débit minimal n'est pas respectée. 10 L'algorithme sait, en consultant une table DRAM associée au noeud considéré, si un slot de session est libre ou occupé, c'est à dire déjà totalement utilisé par le noeud considéré (et ne disposant plus de paquet MAC disponible) ou déjà réservé par un autre noeud qui est situé à un ou deux sauts du noeud lui-même. 15 Ainsi, dans l'heuristique décrite, les slots de sessions sont examinés chronologiquement dans la trame. Si le slot est libre, son identifiant ID est mis dans une liste de slot ID's et on passe au slot ID qui est éloigné d'une valeur MDs slots du slot courant. Si ce nouveau slot est libre son ID est mémorisé dans la liste précédente. Sinon, on retourne slot par slot 20 jusqu'à trouver un slot session libre. L'heuristique continue à être déroulé jusqu'à atteindre la fin de la trame. A la fin le procédé dispose d'une liste de slots pouvant être utilisés pour la session. Les figures 10, 11 illustrent un exemple d'élaboration de configuration de 25 réservation de slot de session basée sur l'heuristique d'allocation précédemment décrite pour un réseau comportant 6 noeuds. On suppose dans cet exemple qu'il y a 6 noeuds dans le réseau et que chaque trame de base est composée de K=5 slots, un des slots étant utilisé pour transmettre des données élastiques (P=1). On considère le cas où le 30 noeud 3 doit réserver des ressources pour une session de donnée. Supposons que le débit minimal requis pour la session soit de 5kbits/s et que le délai maximum de transmission soit de 50 ms. 2910655 19 o N = 6 nombre de noeuds dans le réseau o K = 5 nombre de slots dans chaque trame de base o P = 1 nombre de slots (pour les données) élastiques dans chaque trame de base 5 o TS = 10 ms durée du slot o TF = 300 ms durée de la trame o BR = 1 Mbit/s débit du canal TDMA o NPS = 3; nombre de paquets dans un slot o M = 72 bits; en-tête pour encapsulation de paquets 10 o RB = 5 kbit/s débit requis o MD = 50 ms délai maximum de transmission d'un paquet Les bits utiles dans un slot et le nombre de slots, nécessaires pour satisfaire à la contrainte de largeur de bande, sont calculés comme 15 exposé ci-après Bs = BR*TS =106 *10-2 =10`'bits UBs =BS--M*NPS=103ù72*3=9784bits RB 5*103 BWs = _ =0,15 9784 ,15 TF 300 * 10-3 La valeur BWS, de nombre minimal de slots pour satisfaire la contrainte 20 de débit, est approximée au premier entier le plus grand. Dans ce cas, la valeur BWS est égale à 1. En ce qui concerne la contrainte du délai maximum, le nombre de slots nécessaires pour satisfaire cette demande, est donné par : T 300 DS=MD= 50 =6 TNs = max(BWs, Ds )M6 La distance maximum entre un slot session et le prochain est donnée par: NSF 30 MDs=TN =6=5 .s 2910655 20 Cela signifie que l'on a besoin d'un slot session tous les 5 slots dans la trame. Supposons que les slots signés avec une étoile dans la figure 11 correspondent à des slots utilisés par des noeuds qui sont un ou deux 5 slots éloignés du noeud 3 ou des slots déjà attribués au noeud 3 mais totalement occupés. Pour calculer l'identifiant des slots disponibles IDs, le procédé démarre du slot 2, il contrôle s'il est libre. Si oui, il stocke cet identifiant ID(2) dans une liste. Ensuite, il saute 5 slots en avant et contrôle le statut du 10 nouveau slot courant. Dans cet exemple, c'est le slot 7. En vérifiant dans la table DRAM (du noeud 3), il s'avère que ce slot est déjà occupé, donc on revient en arrière jusqu'à trouver un slot libre. Dans l'exemple, ce slot correspond au slot 3. En suivant ce principe, les slots disponibles sont 2, 3, 8, 12, 17, 19, 24 et 29. 15 Le dernier test à exécuter est de vérifier que la distance entre le dernier slot disponible (slot 29) et le premier slot disponible dans la trame suivante (slot 2) est inférieure à MDs. Dans l'exemple, le test est OK. La procédure entière est répétée en commençant à partir du second slot libre dans la trame jusqu'à la fin de la trame, si nécessaire. 20 A la fin de cette procédure d'élaboration de configuration de réservation, si aucune solution n'a été trouvée, la couche MAC rejette la requête de réservation de ressource pour l'instauration de nouvelle session. D'autre part, si la solution trouvée ne sélectionne que des slots déjà attribués au 25 noeud considéré, la requête est acceptée et les paquets MAC associés sont réservés. Dans le cas où la solution fait intervenir des slots non attribués au noeud considéré, on passé à l'étape d'émission d'une requête d'allocation SAR de négociation avec les noeuds voisins. La figure 12 représente un diagramme bloc d'un mécanisme de 30 préemption. Un des paramètres d'entrée pour l'allocation de slot est son niveau de priorité. S'il existe assez de slots de session qui peuvent être alloués à 2910655 21 une session, le niveau de priorité de la requête est vérifié. S'il y a une session ayant un niveau de priorité inférieure, le procédé examine si en désallouant tous les slots appartenant à cette session de faible priorité, s'il est possible de trouver une solution de configuration de réservation 5 pour la nouvelle session de niveau de priorité plus élevé. Ce mécanisme est appelé, mécanisme de préemption et assure que les services de priorité élevée peuvent être garantis localement éventuellement, en désallouant des slots appartenant à des sessions de niveau de priorité inférieur. 10 Requête SAR pour l'allocation de slots De façon à expliquer le processus de requête pour l'allocation de slot, supposons que le noeud 3 a choisi le jeu de slots [2, 3, 8, 12, 17, 19, 24, 29] et veut émettre une requête pour l'allocation de slot. Cette information est transmise par un message SAR (Slot Allocation Request) 15 vers les autres noeuds voisins du réseau. Lorsqu'un noeud transmet un paquet SAR, il crée une table contenant ses noeuds proches voisins au sens prochain saut et un champ statut. Ce champ statut peut être renseigné à vrai ou à faux, dépendant de la réception de la confirmation d'allocation de slot correspondante envoyée 20 par ses noeuds proches voisins (noeuds prochain saut). De plus, le noeud initialise un compteur temporel timer de façon à contrôler si un paquet SAC a été perdu. Généralement, le noeud attend une période entière de trame avant de renouveler la requête. En se référant au noeud 3, sa table statut est : 25 Prochain saut Statut Noeud 2 Vrai Noeud 5 Vrai Noeud 6 vrai Le noeud 3 a les noeuds 2, 5 et 6 comme noeuds situés à un prochain saut . Initialement, le statut correspondant aux noeuds est mis à faux. 2910655 22 Le noeud attend jusqu'à ce qu'il ait reçu tous les paquets SAC de ses noeuds proches saut. S'il n'y pas de problème, les statuts de tous les noeuds dans la table statut sont positionnés à vrai, comme indiqué ci-dessus, et la table DRAM du noeud 3 est mise à jour en mettant à 1 le bit, 5 dans la colonne correspondant au slot ID qui a été demandé, correspondant aux noeuds ID. Dans l'exemple, le troisième bit dans le champ statut de la colonne correspondant au slot IDs 2, 3, 8, 12, 17,1 9, 24 et 29 est mis à 1. S'il n'y a pas de problème, voir la figure 13, le noeud 3 envoie un 10 message SAR dans son slot de contrôle C3 et reçoit les messages SAC des noeuds 5, 6 et 2 dans les slots de contrôle C5, C6 et C2. Si le timer expire, alors le noeud efface toutes les tables et envoie un nouveau message SAR. Un paquet SAC est reçu avec une adresse de destination qui est 15 différente de celle du noeud: dans ce cas, la table DRAM est remise à jour. Ensuite un test de comparaison est effectué entre les identités des slots que le noeud a requis dans son paquet SAR et ceux du paquet SAC reçu. S'il n'y a aucun slots commun un nouveau message SAR est envoyé. 20 Sinon, un message de désallocation " Slot Deallocation Requested (SDR)" est envoyé et la procédure est réitérée. Un message SDR déclare le message SAR précédemment transmis obsolète et invite tous les noeuds qui ont reçu le message SAR à désallouer tous les slots contenus dans ce message 25 La figure 14 schématise un exemple d'échanges de messages entre le noeud 1 qui envoie un message SAR de façon à allouer le slot 2. Ce message est reçu par les noeuds 4 et 5 qui enverront leurs messages SAC dans le slot de contrôle de C4 et C5. Le noeud 3 étant éloigné du noeud 1 30 de 3 sauts, il ne reçoit pas ce message et envoie dans C3 son propre message SAR. Dans C5, le noeud 5 envoie un message SAC en utilisant le 2910655 23 noeud 1 comme adresse de destination et n'envoie pas de message SAC au noeud 3 car son paquet SAR arrive après celui émis par le noeud 1. Sur réception du message SAC du noeud 5, le noeud 1 voit que l'adresse de destination est le noeud 1 au lieu du noeud 3 et que le noeud 1 a émis 5 une requête pour le slot 2. Puisque le noeud 1 est éloigné de 2 sauts du noeud 3, ils ne peuvent utiliser le même slot. Ainsi, le noeud 3 envoie un message SRD. Les noeuds 2, 5 et 6 mettent à jour chacun leur table DRAM en annulant les précédentes requêtes et envoient un message de confirmation de désallocation de slot (SDC message). 10 Slot ID Status Slot II) Status 2 00001001001000000100 6 00001001001000000000 15 Après réception de SAR envoyé par le noeud 3 noeud 3 Après réception de DRS envoyé par le Table DRAM entrée des noeuds 2 et 6 après réception des messages SAR et SDR. 20 Lorsqu'un noeud reçoit un message SAR, il met à jour sa table DRAM et envoie un message SAC en utilisant comme adresse de destination, l'adresse source du paquet SAR reçu. Tant qu'un noeud n'a pas émis de message de confirmation SAC, il ne prend pas en compte les éventuels 25 nouveaux messages SAR. Pour chaque message SDR, un noeud doit attendre jusqu'à ce que tous les noeuds situés à proximité prochain(s) saut(s) aient répondu avec un paquet SDC. Sinon, le message SDR est transmis à nouveau. Si un slot est utilisé par plus d'une session, son ID n'est pas envoyé dans 30 le message de désallocation. L'utilisation des slots demandés par un noeud ne sera considérée possible que lorsqu'il aura reçu la confirmation de tous ses voisins directs. 2910655 24 L'acceptation de la requête de réservation de ressources est alors prononcée et les slots associés sont effectivement réservés. Déclinaison d'une réservation de ressource globale, de type RSVP, au niveau de la couche MAC 5 De façon à supporter la requête de réservation de ressource au niveau MAC, deux paramètres sont introduits dans la requête MAC : - t (paramètre MD défini au niveau MAC): délai maximum requis pour accéder au médium radio, R (paramètre RB défini au niveau MAC) : débit minimal requis. 10 Ces deux paramètres sont utilisés dans l'algorithme d'allocation exposé ci-dessus ou dans tout autre type d'algorithme d'allocation, de façon à garantir le respect de la requête de réservation avec garantie de service. Dans le cas d'un TDMA périodique, le message Resv pour la requête de ressource RSVP se traduit dans la couche MAC en termes de paquets 15 réservés MAC. Les paramètres RSVP sont décrits selon les spécifications RFC de l'IETF connues de l'Homme du métier. Par exemple, les paramètres utilisés pour décrire l'enveloppe du trafic selon le modèle de sceau à jeton sont (selon la recommandation token 20 bucket RFC 2212) : p = débit crête ( peak rate ) (octets/sec) b = capacité du baquet ( bucket depth ) (octets) - r = debit du sceau à jeton ( token.. DTD: bucket rate ) (octets/sec) m = granularité minimum ( minimum policed unit ) (octets) 25 - M = taille maximum des paquets de donnée de l'application ( maximum datagram size ) (octets) Les délais de transmission pour chaque noeud I sont décrits par les deux paramètres suivants : C; = facteur dépendant du débit ( rate dependent factor ) 30 (octets) - D; = terme indépendant du débit ( rate independent term ) (sec) 2910655 25 Ainsi, la borne du délai de transmission d'un paquet à un débit minimal R pour le noeud I est : ti; = C,/ R + D; Dans le cas d'un TDMA avec des slots totalement périodiques au niveau 5 de chaque noeud le procédé de calcul de RSVP peut être utilisé en établissant une correspondance rigoureuse entre les paramètres MAC et les paramètres RSVP. Les relations mathématiques entre les paramètres C; et D; du champ AdSpec (du message PATH du protocole RSVP) et des paramètres du 10 niveau MAC décrits précédemment_sont alors les suivantes : C; : taille d'un paquet MAC (en octets) - D; : délai additionnel éventuel lié au traitement et au transit interne d'un paquet MAC Pour des noeuds identiques, les paramètres sont indépendants du noeud 15 et n'ont plus besoin d'être indicés (dans la description C et Ci, sont employés pour désigner un même paramètre ; il en est de même pour D et Di). Notons que la relation pour le paramètre C n'est rigoureusement valide que si l'algorithme d'entrelacement conduit à une répartition temporelle 20 uniforme des slots physiques de chaque noeud à l'intérieur de la trame globale et si les paquets MAC d'une même session sont répartis sur des slots physiques distincts. Dans le cas d'un accès périodique à un réseau radio par un noeud (cela 25 signifie que tous les slots TDMA utilisés sont également distribués dans la trame), le délai maximal i pour transmettre un paquet pour une session considérée est : T = N.K.Ts /m + D (pour m K + H) et débit disponible R (pour la session considérée) est : 30 R= m.BR/(K.N.NPS) Avec les paramètres MAC suivants (en partie précédemment définis) : BR : débit du canal TDMA, 2910655 26 N : nombre de noeuds du réseau, K : nombre de slots physiques pour un noeud, H : nombre de slots physiques empruntés par le noeud considéré, Ts : durée d'un slot physique, 5 m : nombre de paquets MAC (slots logiques) réservés (m (K+H).q), NPS : nombre de paquets MAC par slot physique, le délai maximum de transmission du noeud s'écrit donc D+C/R=~+D i.e. . 10 C/R = N.K.Ts /m donc C = BR.Ts /NPS = taille (nombre d'octets) d'un paquet MAC. D est souvent négligeable, un noeud relais ayant généralement le temps de traiter le paquet pendant le temps d'attente du slot. Le débit consommé au niveau MAC pour l'encapsulation des paquets n'a 15 pas été pris en compte dans un souci de simplification. La prise en compte de cette encapsulation revient à considérer R comme le débit utile pour l'application. Dans le cas général d'un TDMA avec accès non périodique des noeuds (dû 20 à une répartition des paquets MAC qui n'est généralement pas périodique en raison d'un espace temporel irrégulier des slots): les valeurs 'r (délai de transmission maximum d'un paquet) et R (débit minimal requis) ne sont pas indépendantes et sont même très liées : Par exemple, R peut être déduite approximativement du délai maximum i. 25 Effectivement, en utilisant au moins un paquet MAC tous les i secondes, la valeur minimum de R est : Rmin= (N.K.Ts/ T )(BR/(K.N.NPS)) = Ts.BR/(i.NPS) Et plus les paquets MAC sont espacés régulièrement dans le temps, plus R est proche de Rmin. 30 On peut donc écrire : i=a.C/R 2910655 27 où : C = BR.Ts /NPS = taille ou capacité (nombre d'octets) d'un paquet MAC a est un coefficient plus grand que 1, qui est d'autant plus proche de 1 que les slots d'accès à la radio sont régulièrement espacés 5 dans la trame. Au niveau RSVP, on considère alors les caractéristiques de l'enveloppe du trafic applicatif en accord avec le modèle de sceau à jeton tel que décrit précédemment. 10 Maintenant, en considérant la latence maximale de bout-en-bout, â, et en faisant l'hypothèse que le délai maximum de transmission et de débit minimal sont les mêmes pour chaque noeud (noeuds identiques sur le chemin), la relation mathématique suivante est établie : 8=(bûM)(pûR)+M+n.z R(pûr) R 15 où n est le nombre de saut du chemin de session cette formule est réécrite sous la forme : 8û (bûM)(pûR)+M+n.a.0 R(pûr) R R la relation usuelle RSVP est : 8û(bûM)(pûR)+ù+1 Mn /C' +D R(pûr) ù 20 où les paramètres C; et D, caractérisent le noeud i ainsi, le procédé de calcul de RSVP peut toujours être utilisé en définissant les paramètres C; et D; de la façon suivante : C;=C D; Délai additionnel éventuel 25 Effectivement, dans ce cas, la requête Resv basée sur un calcul de débit minimal requis avec la formule usuelle conduisant à la requête de réservation de ressource MAC suivante : Largeur de bande requise : R' Latence maximum demandée : C/R' 2910655 28 et le délai maximum i et le débit minimal disponible R satisfont alors les relations suivantes C/R' R R' 5 d'où : (b-M)(pR)+M+na. (b-M)(p-R')+M+n.0 R(p-r) R R'(p-r) R' R' ce qui garantit la latence bout-à-bout demandée. La requête RSVP peut alors être déclinée à la couche MAC : Délai de transmission maximal requis : T = C/R', 10 Débit minimal requis : R = r. Si la réservation de ressource est uniquement due à la contrainte de latence bout-en-bout (R' > r), la requête de la couche MAC est basée sur le délai de transmission maximum requis C/R' (la contrainte sur le débit sera alors automatiquement satisfaite). 15 A l'opposé, si la réservation de ressource est due uniquement à la contrainte de débit (R'=r) et si la contrainte bout-en-bout n'est pas significative, la requête MAC est uniquement basée sur le débit requis r (débit nominal des données de l'application). 20 La figure 15 représente un automate à états finis pour le processus de négociation des slots dans le procédé d'allocation dynamique. 1 - Statut : Attente C'est l'état de veille en attente d'une nouvelle requête de réservation de ressource. 25 évènements possibles : a) ouverture d'une requête de session ; le niveau MAC doit ouvrir la session avec les paramètres suivants : ID session ; Débit moyen de la session ; 30 - Délai maximum ; Taille maximum des paquets ; 2910655 29 Règle d'un noeud (source, destination, relais, destination et relais) ; Priorité. b) RX SAR OU SDC DE X : le système reçoit une requête d'allocation/désallocation de slot du noeud 'X'. Le système 5 transmet respectivement SAC ou SDC. c) RX SAC ou SDC : le système reçoit une confirmation d'une allocation/désallocation d'un slot éloigné d'un saut. Le système met à jour la table DRAM. d) Requête de clôture de session ; le système ferme la session. 10 2 - Statut : Cl dans cet état, le noeud analyse les ressources courantes de transmission afin d'établir si les contraintes relatives à une requête de session sont compatibles avec les slots disponibles. Evénements : 15 a) TX SAR : le noeud doit allouer de nouveaux slots et démarrer le mécanisme d'allocation ; b) OK : aucun slot n'est alloué. Les ressources sont déjà assignées pour d'autres sessions mais peuvent être réutilisées. c) Aucune ressource n'est disponible ; les ressources disponibles ne 20 sont pas suffisantes pour satisfaire la requête de session. Le système analyse la priorité des sessions existantes afin de contrôler si les slots qui sont alloués peuvent être réutilisés. 3 statut S3 : at:tente pour transmettre SAR dans son slot le noeud attend pour transmettre son paquet SAR dans son slot de 25 contrôle. Evénement : a) RX A SAC OU SDC : si le noeud reçoit un message SAC ou un message SDC, il doit mettre à jour sa table DRAM et démarrer l'algorithme d'allocation à nouveau de façon à mettre à jour 30 l'algorithme d'allocation de slots avec les nouvelles informations. b) RX A SAR OU SDC DE X : si le noeud reçoit un message SAR ou SDR, il doit transmettre les messages relatifs SAC ou SDC. Ensuite 2910655 30 il doit démarrer la procédure d'allocation à nouveau de façon à mettre à jour l'algorithme d'allocation avec les nouvelles informations. c) TX : le noeud transmet le message SAR dans son slot de contrôle. 5 4 - statut S2: il attend pour transmettre SAC ou SDC dans son slot de contrôle le noeud doit répondre avec un message SAC ou SDC dans son slot de contrôle. Evénements : 10 a) il reçoit SAC ou SDC et met à jour la table DRAM : si le noeud reçoit un message SAC ou SDC, il doit seulement mettre à jour la table DRAM, b) Tx et mise à jour de la table DRAM : le système transmet un message SAC/SDC dans son slot de contrôle, 15 c) RX DRAM : si le noeud reçoit un message SDR il doit analyser la source du message afin de réaliser si le SDR a été envoyé par le noeud qui a transmis le SAR. Sinon les messages SAR ou SDR sont détruits. 5 - statut C5: il teste la source de SDR 20 dans cet état, le noeud doit tester l'origine du SDR reçu, nommé SSDR, de façon à le comparer avec l'origine du SAR reçu, nommé SSAR. Si SSDR et SSAR sont égaux, le système transmet un paquet SDC à l'origine du message SAR. Sinon aucune opération n'est faite. Evénements 25 a) aucune opération ; SSAR et SSDR ne sont pas égaux ; b) RX SDC FROM X : SSAR et SSDR sont égaux. 6 -Statut C3 : il teste la priorité Les slots libres ne sont pas en nombre suffisants pour satisfaire à la requête de réservation de ressource. Le noeud compare la priorité de la 30 nouvelle session avec les priorités des sessions courantes de façon à fermer les sessions qui ont un niveau de priorité rnoins élevé. Evénements : 2910655 31 a) rejet ; le test donne une réponse négative pour l'une de ces raisons : o il n'y a pas de sessions en cours, o les sessions en cours ont un niveau de priorité plus élevé que celle 5 de la session de départ, o la somme des slots utilisés et des slots libres avec un niveau de priorité faible n'est pas suffisante pour satisfaire la requête. b) OK avec préemption de session ; le noeud doit préempter des sessions de façon à désallouer des slots qui seront utilisés pour la 10 nouvelle session prioritaire ; c) Il alloue et/ou désalloue plusieurs slots; les slots désalloués ne sont pas suffisants pour exécuter la session de démarrage et le système doit démarrer le mécanisme d'allocation/désallocation. 7 - statut C4 : il contrôle la table DRAM 15 Le noeud ayant stoppé les sessions, il contrôle la table DRAM de façon à établir s'il y a nécessité de désallouer de nouveaux slots ou de désallouer des noeuds non utilisés ou bien les deux. Evènements : a) il doit allouer de nouveau slots : cette condition n'est pas vérifiée 20 si le noeud doit désallouer des slots non utilisés. Après désallocations de slots non utilisés, le noeud peut allouer de nouveaux slots ; b) il ne doit pas nécessairement désallouer des slots. 8 - Statut C5 : il teste la source de SDR 25 Dans cet état, le noeud doit tester l'origine de SDR reçu, nommé SSDR, afin de le comparer avec l'origine du SAR reçu, nommé SSAR. Si SSDR et SSAR sont égaux, le noeud doit transmettre un paquet de l'origine du message SAR. Sinon aucune opération est faite. Evénements : 30 a) aucune opération : SSAR et SSDR ne sont pas égaux, b) RX SDC DE X : SSAR et SSDR sont égaux. 9 - Statut S4 2910655 32 idem statut S2 10 -statut S5 : il reçoit un message SAC Le noeud doit transmettre le message SAR de façon à requérir les slots nécessaires et ensuite il attend le message de confirmation (SAC) relatif 5 au message SAR transmis. Evénements : a) il reçoit un SAC/SDC adressé à un autre noeud : si le noeud reçoit un message adressé à un autre noeud, le noeud démarre la transmission d'un paquet SAR à nouveau car plusieurs voisins 10 pourraient ne pas l'avoir reçu, b) il reçoit le dernier SAC : le noeud a reçu les messages SAC provenant de tous ses voisins, c) RX SAC : le noeud a reçu le message SAC relatif au message SAR transmis, mais tous les voisins n'ont pas transmis le leur, 15 d) Le RMT (timer) a expiré ; le RMT a expiré et tous les voisins n'ont pas transmis le message SAC. Le message SAR doit être retransmis. 11- statut C6 : il contrôle SAC/SDC Le noeud analyse le champ ID slot du message reçu afin de contrôler si le 20 jeu de slots IDs portés dans ce paquet respecte le jeu de IDs que le noeud a choisi. Evénements : a) TX SAR nouveau ; la nouvelle information dans le message SAC/SDC reçu ne vérifie pas le jeu de slot requis et le noeud peut 25 transmettre à nouveau le message SAR, b) Il doit désallouer des ressources : l'information nouvelle dans le message reçu SAC/SDC vérifie le jeu des slots requis. Le noeud doit désallouer les slots requis par les SAR précédemment transmis et ensuite il doit détecter les slots nécessaires pour la 30 session requise. 12 - statut C7 : il teste la requête 2910655 33 lorsque le noeud reçoit une requête de clôture de session, il doit désallouer les slots relatifs seulement s'ils ne sont pas utilisés par d'autres sessions. Evénements 5 a) tous les slots sont encore utilisés, l'algorithme de désallocation n'est pas nécessaire, b) le noeud génère le message SDR. 13 - statut S6 : il attend pour transmettre SAC ou SDC dans son slot idem statut S2. 10 14 - statut C2 : il teste la source de SDR Dans cet état le noeud doit tester l'origine d'un SDR reçu, nommé_SSDR, de façon à le comparer avec l'origine du SAR reçu, nommé SSAR. Si le SSDR et SSAR sont égaux, le noeud doit transmettre un paquet SDC à l'émetteur du message SAR. Sinon aucune opération ne doit être faite. 15 Evénements a) aucune opération : SSAR et SSDR ne sont pas égaux, b) RX SDC de X : SSAR et SSDR sont égaux. 15 - statut S7 : il attend pour transmettre SDR dans son slot Le noeud attend pour transmettre un message SDR dans son propre slot 20 de contrôle. Evénements a) RX A SAC/SDC : si le noeud reçoit un message SAC ou SDC, il doit mettre à jour la tableDRAM, b) RX A SAR/SDC de X : si le noeud reçoit un message SAR ou SDR, il 25 doit transmettre les messages SAC ou SDC et ensuite il retourne dans son état, c) TX : le noeud transmet le message SDR dans sont propre slot de contrôle. 16 -statut S8 : il attend pour recevoir un message SDC 30 le noeud doit transmettre le message SDR de façon à désallouer des slots non nécessaires et ensuite il doit recevoir le message de confirmation (SDC) relatif au message transmis SDR. 2910655 34 Evénements : a) il reçoit le message SAC ou SDR adressé à un autre noeud : si le noeud reçoit un message SAC/SDC adressé à un autre noeud, le noeud doit renouveler la transmission de SDR, car tout noeud voisin 5 ne l'a pas reçu, b) il reçoit les derniers SDC : le noeud a reçu les messages SDC de tous les noeuds voisins, c) RX SDC : le noeud a reçu le message SDC relatif au message SDR transmis, mais certains noeuds voisins n'ont pas transmis leur 10 message SDC, d) Le RMT (aimer) a expiré ; le RMT a expiré et certains des noeuds voisins n'ont pas transmis le message SDC. Il est nécessaire de retransmettre le message SDR. 15 REVENDICATIONS 1 - Procédé de réservation de ressource avec garantie de service en débit et délai au niveau des N noeuds d'un réseau radio utilisant des créneaux temporels pour émettre et transmettre des données caractérisé en ce qu'il met en oeuvre un processus de réservation global dans lequel, un message de réservation émis utilise au moins un des deux paramètres suivants : le délai maximum requis pour accéder au milieu radio, le débit minimal requis afin de satisfaire la garantie de service. 2 - Procédé de réservation selon la revendication 1, caractérisé en ce qu'il met en oeuvre une méthode d'allocation dynamique de créneaux temporels définie de la manière suivante : les N noeuds comprenant chacun K slots , dont un slot de contrôle, P slots élastiques et (K-1-P) slots de session, il y a mise en commun des (K-1-P) slots de session pour l'allocation de ressources requises par un noeud à un instant donné. 3 - Procédé de réservation selon la revendication 2, caractérisé en ce que chaque noeud comprend une table DRAM contenant les types de slots formant une trame de base le n ID identifiant un slot, et le statut de chaque noeud du réseau, ainsi qu'une table de visibilité constituée par les noeuds voisins en visibilité radio et des noeuds accessibles en deux sauts. 4 - Procédé selon la revendication 2, caractérisé en ce que l'ensemble des slots de sessions non réservés (à la connaissance du noeud considéré) forme un pool de ressource de slots libres dans lequel le noeud peut potentiellement puiser en cas de besoin de ressource pour une demande de réservation selon la revendication 1. 5 - Procédé selon la revendication 3, caractérisé en ce qu'il comporte une étape de réservation de slots comprenant les étapes suivantes : 2910655 36 o en présence d'une requête de réservation de ressource, un noeud détermine les slots de session nécessaires pour démarrer une session, en tenant compte du débit requis pour un service, du délai maximum pour accéder au milieu radio et de la taille des paquets 5 maximum, o le noeud détermine la valeur des identifiant ID des slots à réserver pour démarrer la session, en consultant la table DRAM et une table de visibilité constituée par les noeuds voisins en visibilité radio et en mettant en oeuvre un algorithme de sélection des slots 10 appartenant au pool de slots de session libres. 6 - Procédé selon la revendication 5, caractérisé en ce qu'il comporte une étape de négociation d'une configuration de réservation avec les noeuds voisins comprenant les étapes suivantes : 15 o un noeud ayant choisi un ensemble de slots dans le pool de slots libres de session mis en commun, o il émet une requête d'allocation de slot SAR vers les autres noeuds voisins du réseau, o il génère une table contenant ses proches voisins, et un champ 20 statut renseigné en fonction de la réponse de confirmation SAC d'allocation de slots correspondante envoyée par ses noeuds voisins, o il initialise un compteur temporel afin de contrôler si un paquet SAC a été perdu, 25 o si les noeuds voisins choisis sont d'accord avec la configuration de réservation demandé (et le cas échéant pour allouer leurs propres slots), alors le noeud émetteur de la requête d'allocation transmet un message SAR dans son slot de contrôle et reçoit les messages d'acceptation SAC dans les slots de contrôle des noeuds voisins 30 choisis. 2910655 37 o En cas de demandes SAR concurrentielles sur des slots, des messages de désallocation SDR et de confirmation de désallocation. 5 7 - Procédé selon la revendication 6, caractérisé en ce qu'il met en oeuvre un mécanisme local de préemption en fonction de la priorité allouée à une session. 8 - Procédé selon l'une des revendications précédentes, caractérisé en ce 10 qu'il comporte une étape préalable d'entrelacement des slots de chacun des noeuds N du réseau. 9 - Procédé selon les revendications 3, 5 et 6, caractérisée en ce qu'il comporte une étape de réutilisation spatiale des créneaux temporels en 15 évitant les collisions. 10 - Utilisation du procédé selon l'une des revendications 1 à 8 pour le protocole de réservation RSVP. 20