PROCEDE DE TRANSMISSION DE PAQUETS EN MODE ACQUITTE
VIA DES FLUX TEMPORAIRES DE BLOCS ET UNITE DE CONTROLE POUR LA MISE EN ŒUVRE DU PROCEDE
La présente invention concerne les techniques de transmission de paquets en mode acquitté.
Elle s'applique particulièrement à la transmission de paquets du protocole TCP/IP ("Transmission Control Protocol, Internet Protocol") à travers un réseau radio de type GPRS ("General Packet Radio Service").
Les réseaux GPRS ont été développés pour permettre la transmission de données par paquets dans des réseaux cellulaires de type GSM ("Global System for Mobile communications").
TCP/IP est un protocole général de l'Internet, utilisé pour les transferts de données, les consultations de sites web, etc. Dans le cas où l'accès à Internet est effectué via un réseau radio cellulaire, par exemple GPRS, les transferts de données à haut débit sont le plus souvent des transferts descendants (downlink), du réseau vers les terminaux. C'est pourquoi les techniques ont été mises au point dans ces réseaux radio en vue d'optimiser particulièrement sur la voie descendante les performances de transfert de paquets, notamment en termes de débit.
Mais il existe aussi un besoin d'optimiser les transferts sur la voie montante (uplink), puisque dans certains cas un terminal radio peut être couplé à un serveur depuis lequel des données à haut débit sont transférables.
Les transmissions de paquets sur l'interface radio du GPRS sont effectuées selon des flux temporaires de blocs (TBF, "Temporary Block Flows"). Un TBF est ouvert, du réseau vers le terminal radio ou du terminal radio vers le réseau, lorsque des données GPRS (signalisation ou trafic de paquets) sont à émettre. Un TBF est temporaire, c'est-à-dire qu'il n'est maintenu que pendant le transfert de données.
Lorsqu'une séquence relativement volumineuse de paquets TCP montants est produite au niveau du terminal, un TBF montant reste ouvert
pendant une certaine durée, nécessaire au transfert des paquets de la séquence, sachant que les débits de transfert GPRS sont actuellement de l'ordre de quelques dizaines de kbit/s. Pendant cette durée, l'autre extrémité de la connexion TCP retourne de temps en temps des paquets TCP d'acquittement. Ceux-ci sont typiquement émis avec une périodicité de l'ordre de 200 ms. A réception d'un tel paquet TCP d'acquittement, l'infrastructure GPRS ouvre un TBF descendant afin d'acheminer le paquet TCP d'acquittement jusqu'au terminal. S'il n'y a pas par ailleurs de transfert de données descendantes en cours, ce TBF descendant est refermé une fois le paquet TCP d'acquittement envoyé au terminal. Le prochain paquet TCP d'acquittement donne lieu à l'ouverture et à la fermeture d'un TBF descendant de la même manière, et ainsi de suite.
Ce mode de fonctionnement a pour inconvénient de réduire le débit de transfert des données sur la voie montante. En effet, l'établissement des TBF descendants successifs requiert des blocs de signalisation de la part du terminal. Ces blocs de signalisation prennent la place de blocs porteurs de paquets TCP de sorte que l'émission se trouve ralentie. D'autre part, un mécanisme d'acquittement est également mis en œuvre au niveau du TBF descendant: lors de la fermeture de chaque TBF descendant, le terminal doit retourner au moins un bloc d'acquittement, ce qui a également un impact négatif sur le débit montant disponible.
Un but de la présente invention est de remédier à ces inconvénients et d'optimiser le débit de transfert des paquets en mode acquitté.
L'invention propose ainsi un procédé de transmission de paquets par l'intermédiaire d'une unité de contrôle, selon un protocole de communication ayant un mécanisme d'acquittement de paquets. Entre une station émettrice de paquets et l'unité de contrôle, les paquets sont transmis dans des flux de blocs établis de façon temporaire lorsque des paquets sont à transmettre. Selon l'invention, le procédé comprend les étapes suivantes : - transmettre une séquence de paquets depuis la station émettrice par l'intermédiaire d'un premier flux temporaire de blocs de la station émettrice vers l'unité de contrôle;
- à réception par l'unité de contrôle d'un paquet en retour destiné à la station émettrice alors que ladite séquence de paquets est encore en cours de transmission depuis la station émettrice, ouvrir un second flux temporaire de blocs de l'unité de contrôle vers la station émettrice; et i - retarder la transmission dudit paquet en retour dans le second flux temporaire de blocs.
Le fait d'attendre avant de transmettre le paquet en retour dans le second flux temporaire de blocs permet dans la plupart des cas de regrouper dans un même TBF descendant plusieurs acquittements TCP, ces acquittements TCP étant généralement le contenu des paquets en retour dans le cas d'un transfert de données unidirectionnel. La signalisation montante associée à l'établissement du TBF descendant et aux acquittements correspondants n'a donc pas besoin d'être répétée pour chacun des acquittements TCP qui reviennent - vers le terminal. Il en résulte une augmentation du débit de transfert des paquets TCP sur la voie montante.
Dans un mode de réalisation avantageux, à réception par l'unité de contrôle dudit paquet en retour, on ouvre le second flux temporaire de blocs et, à moins que la transmission de la séquence de paquets par la station émettrice s'interrompe, on attend pendant une durée prédéfinie D à compter de la réception dudit paquet en retour avant de transmettre dans le second flux temporaire de blocs au moins un bloc transportant ledit paquet en retour et tout paquet ultérieur reçu en retour et destiné à la station émettrice.
La durée D est supérieure à la périodicité attendue T entre les réceptions successives de paquets d'acquittement destinés à la station émettrice, afin d'obtenir dans le cas général plusieurs acquittements TCP par TBF descendant. Elle ne doit cependant pas être trop longue pour ne pas perturber le fonctionnement de TCP. Typiquement, elle sera comprise entre 3 et 5 fois T.
Un autre aspect de la présente invention se rapporte à une unité de contrôle de paquets pour une infrastructure de réseau supportant des transmissions de paquets selon un protocole de communication ayant un
mécanisme d'acquittement de paquets, les paquets étant transmis entre l'unité de contrôle et une station de communication dans des flux de blocs établis de façon temporaire lorsque des paquets sont à transmettre, l'unité de contrôle comprenant: - des moyens pour relayer une séquence de paquets reçus dans un premier flux temporaire de blocs depuis la station de communication;
- des moyens d'établissement d'un second flux temporaire de blocs de - l'unité de contrôle vers la station de communication en réponse à la réception par l'unité de contrôle d'un paquet en retour destiné à la station de communication alors que ladite séquence de paquets est encore en cours de transmission depuis la station de communication; et
- des moyens de temporisation pour retarder la transmission dudit paquet en retour dans le second flux temporaire de blocs.
D'autres particularités et avantages de la présente invention apparaîtront dans la description ci-après d'exemples de réalisation non limitatifs, en référence aux dessins annexés, dans lesquels:
- la figure 1 est un schéma d'un réseau de type GPRS auquel l'invention peut s'appliquer;
- la figure 2 est un schéma synoptique d'une unité de contrôle de paquets d'un tel réseau, adaptée à la mise en œuvre de l'invention;
- la figure 3 est un diagramme illustrant des échanges de messages intervenant dans l'art antérieur pour la transmission de paquets TCP sur la voie montante d'un réseau GPRS; et
- les figures 4, 5A-5B et 6 sont des diagrammes semblables à celui de la figure 3 et illustrant plusieurs modes de réalisation de l'invention.
Le réseau GPRS illustré sur la figure 1 est bâti sur une infrastructure GSM, et classiquement divisé en un cœur de réseau, aussi appelé sous- système de réseau et de commutation ou NSS ("Network and Switching Subsystem"), et un réseau d'accès radio également appelé sous-système de stations de base ou BSS ("Base Station Subsystem").
Pour le service de paquets, les commutateurs du NSS sont appelés
nœuds de support GPRS ou GSN ("GPRS Support Node"). On distingue les SGSN ("Serving GSN") 5 qui sont reliés au BSS par l'intermédiaire d'une interface appelée Gb, et les GGSN ("Gateway GSN", non représentés) qui servent de passerelle avec des réseaux extérieurs de transmission de paquets, tels que par exemple le réseau Internet.
Une description générale de l'interface radio, appelée Um, entre les stations mobiles (MS) 10 et les stations de base (BTS) 20 du BSS est fournie dans la spécification technique ETSI TS 101 350, "Digital cellular télécommunications System (Phase 2+); General Packet Radio Service (GPRS); Overall description of the GPRS radio interface; Stage 2" (GSM 03.64, version 6.3.0, Release 1997), publiée par l'European Télécommunications Standards lnstitute (ETSI) en juillet 1999.
Chaque station de base 20 est supervisée par un contrôleur de stations de base ou BSC ("Base Station Controller") 21 par l'intermédiaire d'une interface appelée Abis. Pour gérer la transmission de paquets GPRS, le BSS comprend en outre une entité 22 appelée unité de contrôle de paquets ou PCU ("Packet Control Unit"). La localisation du PCU à l'intérieur du BSS n'est pas normalisée. Dans l'exemple représenté sur la figure 1 , le PCU 22 est situé entre le BSC 21 , avec lequel il communique à travers une interface appelée Agprs, et le NSS, avec lequel il communique à travers l'interface Gb.
La figure 2 illustre une structure possible d'un PCU 22 situé entre un SGSN 5 et un BSC 21 , comme dans l'exemple de la figure 1. La référence 40 désigne le contrôleur d'interface Gb pour la liaison avec le SGSN 5.
L'interface Gb est de type asynchrone. Elle repose sur le protocole de relais de trame (FR, "Frame Relay") ou IP ("Internet Protocol"), ainsi qu'un protocole appelé BSSGP ("BSS GPRS Protocol") qui transporte des informations de routage et de qualité de service entre le BSS et le SGSN. Le contrôleur d'interface Gb 40 assure la liaison physique avec le SGSN 5, ainsi que les procédures propres aux protocoles FR (IP) et BSSGP.
Les liaisons entre le PCU 22 et les BTS 20 à travers l'interface Agprs sont de type synchrone. En conséquence, les données manipulées par le PCU
22 entre le contrôleur d'interface Gb 40 et le contrôleur d'interface Agprs 42 transitent par une mémoire tampon 41 où sont enregistrées des files d'attente de paquets.
Entre le PCU 22 et la BTS 20, les informations sont portées par des trames de type TRAU ('Transcoder/Rate Adaptor Unit") de 320 bits, à raison d'une trame toutes les 20 ms. Ces trames TRAU sont mises en forme et traitées par un module 44 et transmises par l'intermédiaire de circuits d'interface synchrone 45 qui réalisent des sous-voies MIC à 16 kbit/s avec les
BTS 20. Plusieurs sous-voies à 16 kbits peuvent être multiplexées sur l'interface Agprs et séparées par le BSC 21 pour l'acheminement vers les BTS.
Un module 46 du contrôleur d'interface Agprs 42 met en œuvre les protocoles radio de la couche 2 du modèle ISO, à savoir les protocoles RLC/MAC ("Radio
Link Control / Médium Access Control") décrits dans la norme européenne
ETSI EN 301 349, "Digital cellular télécommunications System (Phase 2+); General Packet Radio Service (GPRS); Mobile Station (MS) - Base Station
System (BSS) interface; Radio Link Control/Medium Access Control
(RLC/MAC) protocol" (GSM 04.60, version 6.8.1 , Release 1997), publiée par l'ETSI en octobre 2000.
La sous-couche RLC réalise l'interface avec le protocole de couche supérieure, appelé LLC ("Logical Link Control"). Elle assure la segmentation et le réassemblage des unités de données du protocole LLC (LLC-PDU), qui sont échangées de manière asynchrone sur l'interface Gb. Elle produit des blocs de données RLC auxquels la sous-couche MAC rajoute un en-tête MAC d'un octet.
Le terminal radio GPRS 10 a également un module RLC/MAC associé à une mémoire tampon et qui dialogue avec le module 46 du PCU selon des flux temporaires de blocs (TBF). Un TBF se compose d'un certain nombre de blocs RLC/MAC portant une ou plusieurs LLC-PDU. Dans le cas d'un transfert TCP/IP, les LLC-PDU sont elles-mêmes porteuses des paquets TCP. La structure des blocs RLC/MAC est décrite dans la section 10 de la norme ETSI EN 301 349.
Dans les échanges illustrés par les figures 3 à 6, on a représenté une
séquence de paquets TCP émise du terminal GPRS 10 vers une unité distante, par l'intermédiaire du PCU 22. Entre les modules RLC/MAC du terminal 10 et du PCU 22, ces paquets TCP sont incorporés à des blocs RLC/MAC montants dont le transfert dans un TBF montant (à travers les interfaces Um, Abis et Agprs) est représenté par des traits interrompus sur les figures 3 à 6.
Sur ces figures, on suppose par simplification que chaque paquet TCP occupe un bloc RLC/MAC et que les conditions de transmission sont suffisamment bonnes pour qu'il n'y ait pas besoin de répéter des blocs
RLC/MAC. On comprendra toutefois que les techniques décrites ici sont tout à fait applicables à d'autres conditions.
De façon périodique, l'unité distante retourne au terminal des paquets TCP contenant les acquittements des paquets de la séquence. Si aucun TBF descendant n'est établi au moment où le PCU 22 reçoit ces paquets (dans des LLC-PDU), le PCU procède à l'ouverture d'un tel TBF descendant. Il déclenche pour cela l'échange de signalisation décrit dans la section 7.2 de la norme ETSI EN 301 349, qui comprend:
- l'envoi par le PCU 22 d'un bloc RLC/MAC contenant un message dit PACKET_DOWNLINK_ASSIGNMENT (ci-après noté PDASS);
- la réponse du terminal 10 par un bloc RLC/MAC contenant un message dit PACKET_CONTROL_ACKNOWLEDGEMENT (ci-après noté PCA).
On voit sur les figures 3 à 6 que l'envoi par le terminal du bloc RLC/MAC occupé par le message PCA est effectué à la place d'un bloc de données TCP.
La figure 3 illustre un cas classique de transfert de données uplink. Après avoir reçu de l'unité distante un paquet TCP (contenant très probablement un acquittement TCP ACK) et avoir envoyé le message PDASS, le PCU transmet au terminal le paquet TCP dès qu'il reçoit le message PCA confirmant l'ouverture du TBF descendant. A ce moment, le PCU n'a généralement plus de LLC-PDU en attente d'envoi au terminal dans sa mémoire tampon 41 , du fait que les acquittements TCP sont relativement peu fréquents. En conséquence, il commande la fermeture du TBF descendant à
l'aide de champs prévus dans l'en-tête RLC/MAC du bloc descendant PDATA contenant l'acquittement TCP (ETSI EN 301 349, § 9.3.2.5):
- le bit Final Block lndicator (FBI) situé en huitième position de l'en-tête RLC est mis à 1 pour signaler au terminal 10 que le bloc PDATA est le dernier du TBF (ETSI EN 301 349, § 10.4.8).
- le bit Supplementary/Polling (S/P) situé en cinquième position de l'en-tête MACest mis à 1 pour solliciter un acquittement de bloc de la part du terminal 10 (ETSI EN 301 349, § 10.4.4).
A réception du bloc PDATA, le module RLC/MAC du terminal 10 génère le message d'acquittement PACKET_DOWNLINK_ACK/NACK (ci- après noté PDAN et le renvoie au PCU sur le TBF montant. Là aussi, l'envoi par le terminal du bloc RLC/MAC occupé par le message PDAN est effectué à la place d'un bloc de données TCP.
Ainsi, dans le cas classique selon la figure 3, la signalisation associée au TBF descendant nécessaire pour acheminer chaque paquet TCP ACK pénalise nettement le débit disponible pour les paquets TCP sur la voie montante.
Pour limiter l'incidence de ce problème, l'invention préconise qu'une fois le TBF descendant ouvert, le PCU attende avant d'acheminer le ou les acquittements TCP destinés au terminal. Naturellement, il ne lui faudra pas attendre trop longtemps pour ne pas perturber le mécanisme d'acquittement
TCP.
Typiquement, la transmission dans le TBF descendant du paquet TCP dont la réception a déclenché l'ouverture de ce TBF pourra être retardée par le PCU 22 d'une durée comprise entre 100 ms et 1 s, sachant qu'une périodicité typique des acquittements TCP est de l'ordre de 200 ms.
Plusieurs conditions peuvent être prises en compte par le PCU 22 pour décider de transmettre dans le TBF descendant le ou les paquets TCP ACK en attente. II se peut d'abord que le terminal ait terminé d'émettre sur le TBF
montant, la séquence de paquets TCP étant interrompue (figure 6). Dès que cette condition est détectée par le PCU (ETSI EN 301 349, § 9.3.2.3), le ou les paquets TCP ACK en attente sont immédiatement transmis, dans un ou plusieurs blocs RLC/MAC, sur le TBF descendant qui a été précédemment ouvert. Le dernier de ces blocs PDATA a son en-tête remplie par le module 46 avec S/P = 1 et FBI = 1 pour mettre fin au TBF descendant et solliciter un message PDAN. Le TBF est clos à réception de ce message PDAN. Comme le montre la figure 6, il pourra rester un autre acquittement TCP à transmettre ultérieurement (TCP ACK 2). Celui-ci sera transmis selon le même séquencement que dans le cas de la figure 3, ce qui n'est pas pénalisant puisqu'il n'y a plus de séquence TCP montante.
Une autre possibilité est que le PCU 22 attende d'avoir reçu un nombre déterminé de paquets TCP destinés au terminal 10 avant de les délivrer sur le TBF descendant précédemment ouvert. Dans l'exemple illustré par la figure 4, le PCU attend d'avoir reçu trois paquets TCP destinés au terminal avant de transmettre les blocs PDATA correspondants dans le TBF descendant. Le dernier de ces blocs PDATA a son en-tête remplie par le module 46 avec S/P = 1 et FBI = 1 pour mettre fin au TBF descendant et solliciter un message PDAN. Le TBF est clos à réception de ce message PDAN. Une comparaison des figures 3 et 4 montre que la signalisation associée au TBF descendant perturbe beaucoup moins le débit TCP sur la voie montante lorsque le mécanisme selon l'invention est mis en œuvre (figure 4).
Dans une réalisation préférée, après avoir ouvert le TBF descendant à réception d'un paquet TCP ACK i, par le PCU 22 attend pendant une durée prédéfinie D à compter de la réception de ce paquet TCP ACK i avant de transmettre dans le TBF descendant le ou les blocs RLC/MAC transportant ce paquet TCP ACK i et tout paquet ultérieur TCP ACK i+1 , TCP ACK i+2, ... éventuellement reçu dans l'intervalle pour le terminal 10. Naturellement, comme dans le cas de la figure 6, la temporisation D est arrêtée si le PCU détecte une fin de transmission de la séquence de paquets TCP dans le TBF montant.
La figure 4 illustre aussi une telle réalisation dans le cas où D = 2T. La
durée T représente ici la périodicité attendue entre les réceptions successives de paquets d'acquittement destinés au terminal 10. La valeur la plus courante dans les piles TCP/IP est T = 200 ms, et une valeur appropriée est alors D = 3T = 600 ms. Si on adopte le retard D = 600 ms d'emblée lorsque la transmission commence sur le TBF montant, il peut y avoir un risque de perturber les méthodes de démarrage du mécanisme d'acquittement TCP (méthodes dites "slow start").
Pour minimiser ce risque, une disposition avantageuse consiste, dans la phase initiale de la transmission de la séquence TCP depuis le terminal 10, à fait croître progressivement la durée d'attente jusqu'à la valeur D. La figure 5, obtenue en plaçant les figures 5A et 5B l'une au-dessus de l'autre, illustre cette disposition dans un exemple particulier:
- au démarrage, le premier paquet d'acquittement TCP reçu (TCP ACK 1 ) est retransmis sans retard par le PCU 22 au terminal 10. Il peut en être ainsi pour quelques autres paquets d'acquittement initiaux (TCP ACK 2 sur la figure 5);
- ensuite, le PCU faire croître progressivement le retard. Ainsi dans le cas de la figure 5, le paquet d'acquittement TCP ACK 3 est mis en attente pendant une durée d1 = T avant d'être relayé vers le terminal (avec
TCP ACK 4), puis le paquet d'acquittement TCP ACK 5 est mis en attente pendant une durée d2 = 2T avant d'être relayé vers le terminal
(avec TCP ACK 6 et TCP ACK 7);
- lorsque la valeur de retard visée D est atteinte, le TBF montant n'ayant pas été interrompu, le fonctionnement du PCU se stabilise sur cette valeur D pour optimiser le débit sur la voie montante.