Académique Documents
Professionnel Documents
Culture Documents
GSM Gprs Show
GSM Gprs Show
Institut d'Informatique
rue Grandgagnage, 21
B-5000 Namur
Un logiciel d'illustration
des protocoles GSM et GPRS
sur la voie radio
Martin De Wulf
Je tiens remercier les nombreuses personnes qui m'ont encourag et aid tout au long
de ce travail.
Tout d'abord, je m'acquitte volontiers d'un devoir de gratitude envers le professeur Olivier
Bonaventure, promoteur de ce mmoire de n d'tudes. Ses remarques pertinentes m'ont
t d'une aide prcieuse.
Un tout grand merci aussi Monsieur Xavier Lagrange, Matre de Confrences l'ENSTBretagne, pour m'avoir encadr aussi attentivement et pour sa formidable disponibilit lors
de mon stage Rennes.
Un grand merci tous les relecteurs de ce mmoire : Gregory, Isabelle, Maman, Pierre,
Stphane et Thibaut qui m'ont aid rendre ce texte peu prs comprhensible.
L'aboutissement de ce mmoire doit beaucoup ma famille et mes amis qui m'ont soutenu
et encourag durant ces longs mois de labeur. Un remerciement tout particulier Charlotte
qui m'a support et rconfort durant les moments diciles.
Rsum
L'originalit principale de GSM et GPRS rside dans la faon dont ces systmes grent les
ressources radio qui leur ont t alloues. Mais comme souvent, l'optimisation a dbouch
sur une plus grande complexit. Par consquent, l'immense succs de ces rseaux ncessite
de plus en plus de personnes qualies.
Un logiciel permettant l'observation en direct des protocoles de communication utiliss
sur la voie radio faciliterait la formation de ces personnes. Il permettrait un enseignement
trs vivant et concret et pourrait aussi servir la mise en vidence des principes la base
de tout protocole de communication.
Ce mmoire a pour objectif la conception et l'implmentation en Java d'un tel logiciel.
Il dcrit en se concentrant sur la voie radio les principes de base de GSM et GPRS et
inclut la spcication architecturale et fonctionnelle du programme. En outre, il explique
comment on peut crer automatiquement un dcodeur pour les messages changs sur la
voie radio dans GPRS partir de la spcication ocielle de ces messages.
Abstract
The main originality of the GSM and GPRS sytems rests in the way they manage
the radio ressources which were allocated to them. As often, optimization led to a greater
complexity. So the huge success of those networks requires more and more qualied people.
A software allowing the live observation of the protocols used on the radio way would
ease the training of those people. It would allow a very animated and tangible teaching
and could also be useful to put prominently the base principles of every communication
protocol.
This thesis is aimed at the design and implementation in Java of such a software. It
describes the base principles of GSM and GPRS, especially on the radio way, and includes
the architectural and functional specication of the application. Moreover, it explains how
a decoder of the messages exchanged on the radio way in GPRS can be created from the
ocial specication of those messages.
Sommaire
Introduction
11
13
1.1
1.2
GSM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3
1.2.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2.2
Caractristiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.2.3
Application concrte . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.2.4
Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.2.5
Identiants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.2.6
1.2.7
Canaux logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
GPRS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.3.1
1.3.2
Caractristiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.3.3
Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.3.4
1.3.5
Identiants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.3.6
SOMMAIRE
1.3.7
1.4
Canaux logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2 Portage et amlioration
33
2.1
Fonctions du programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.2
Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.2.1
Prambule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.2.2
Objectifs et solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.2.3
Prsentation Gnrale . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.2.4
Diagramme de classes . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.3
Exemple d'utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.4
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3 Le compilateur CSN.1
47
3.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2
CSN.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.3
3.4
3.2.1
Dnition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.2.2
Avantages et inconvnients . . . . . . . . . . . . . . . . . . . . . . . 51
Ralisation du compilateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.3.1
Raisons de ce travail . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.3.2
3.3.3
Dveloppement du compilateur . . . . . . . . . . . . . . . . . . . . . 56
Le dcodeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.4.1
Structure de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.4.2
Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.5
Exemple de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.6
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
SOMMAIRE
4 Illustration de GPRS
67
4.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.2
4.3
4.4
4.5
4.6
4.7
4.8
Validation de la dmarche . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.9
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Conclusion
87
Bibliographie
88
90
92
10
SOMMAIRE
Introduction
Le systme GSM (Global System for Mobile communications reprsente un des succs
industriels les plus marquants de ces dernires annes. Ce systme de tlphonie mobile a
t standardis par l'ETSI (European Telecommunication Standards Institute).
Vu la raret de la ressource radio, ses concepteurs se sont concentrs sur une utilisation
optimale de la bande de frquence qui leur serait alloue. Et de fait, l'interface radio
du systme en constitue la principale orginalit. Mais comme souvent, l'optimisation a
dbouch sur une complexit accrue.
Pour enseigner le fonctionnement de GSM sur la voie radio, Xavier Lagrange, Matre de
Confrences l'ENST-Bretagne (Ecole Nationale Suprieure des Tlcommunications de
Bretagne), a dvelopp un logiciel d'illustration des protocoles du systme. Cette application, nomme GSM-Show, se base sur l'utilisation d'un mobile GSM de trace. Ce type
d'appareil transmet un ordinateur, via une liaison srie, une trace des communications
qu'il entretient avec le rseau. A partir de ces informations, GSM-Show reprsente de faon
trs lisible et quasiment en direct, le fonctionnement de l'interface radio GSM.
Xavier Lagrange a crit son programme en Visual Basic et trouvait que son architecture
manquait de souplesse. Il regrettait notamment que son programme ne puisse facilement
intgrer l'utilisation d'autres mobiles de trace que celui dont il disposait. De plus, il souhaitait moyen terme raliser une application permettant d'illustrer le fonctionnement d'une
nouvelle extension de GSM : GPRS. Enn, il dsirait porter son application sur d'autres
plate-formes que Windows an notamment de l'utiliser dans des salles de travaux pratiques
dont les ordinateurs utilisent un systme d'exploitation de la famille UNIX.
Ce mmoire va dcrire la ralisation de ce double projet : porter le programme en amliorant son architecture et y ajouter une partie GPRS.
Structure de ce mmoire
Au chapitre 1, nous nous intresserons aux dirents concepts au coeur des systmes
GSM et GPRS. Cette tude a t ncessaire pour permettre le portage de GSM-Show et
11
12
INTRODUCTION
Chapitre 1
13
14
CHAPITRE 1.
1.2.
GSM
15
1.2 GSM
1.2.1 Introduction
Le systme de tlphonie cellulaire GSM (Global System for Mobile communications)
est largement utilis travers toute l'Europe et est devenu peu peu la rfrence pour
la tlphonie cellulaire digitale travers le monde. Il est pass par un long processus
de normalisation gr par l'ETSI European Telecommunication Standards Institute pour
arriver aujourd'hui une certaine maturit. Ses limitations commencent se faire sentir.
Ses performances en tlphonie sont tout fait satisfaisantes. Par contre en terme de
transfert de donnes, en comparaison avec les rseaux xes, il reste beaucoup de chemin
parcourir. Les deux dfauts principaux sont les suivants :
Les dbits sont limits 14,4 kbps (voire 9,6kbps dans la plupart des rseaux oprationnels).
La transmission de donnes exige l'tablissement d'une connexion et la rservation
de ressources qui sont en gnral loin d'tre utilises pleinement tout au long de la
connexion.
Mais la norme GSM ne cesse d'voluer. Aprs la phase 1 qui en 1992 n'orait que la
tlphonie, la phase 2 a apport les messages courts (SMS Short Message Service) et le
transfert de donnes. A l'heure actuelle, la phase 2 introduit entre autres des terminaux bibandes (bandes de 900MHz et de 1800MHz), l'utilisation des concepts de rseau intelligent,
et le routage optimal1 . Plusieurs volutions sont en cours d'laboration :
Tout d'abord, GPRS, qui permettra d'augmenter les dbits, de faire disparatre les temps
de connexion et de facturer en fonction du volume transmis (et non plus de la dure de
connexion). Cette volution nous intressera plus particulirement dans ce mmoire.
Ensuite, EDGE, qui grce des techniques de modulation plus ecaces permettra l'augmentation des dbits.
Enn, ce qui est appel la troisime gnration (3G) et qu'on pourrait qualier d'volution "plus" : plus de dbit, plus de services, plus de souplesse. La troisime gnration
est emblmatiquement reprsente par l'UMTS (Universal Mobile Telecommunication System). Plus qu'une volution, il s'agit l d'un systme concurrent utilisant d'autres bandes
de frquence et orant des services plus attractifs. Cependant, l'avnement de l'UMTS ne
signiera pas la n de GPRS. En eet, la solution pratique qui semble se dessiner est celle
d'abonnements et de mobiles multi-plateformes permettant l'accs sur plusieurs types de
rseaux. Etant donn la porte limite et le cot important des installations UMTS, les
1
A l'heure actuelle, un appel manant d'un mobile A et dirig vers un mobile B doit forcment passer
par le rseau GSM ou le possesseur du mobile B a souscrit son abonnement , mme si aussi bien lui que
son correspondant se trouvent dans une zone gographique tout fait dirente. Le routage optimal vise
ne plus faire passer que du trac de signalisation par le rseau o a t souscrit l'abonnement.
16
CHAPITRE 1.
oprateurs n'assureront en eet pas une couverture complte des territoires actuellement
couverts par GSM. Et l o UMTS sera absent, GPRS prendra sans doute le relai. UMTS
est encore en cours de spcication. Nanmoins, on a dj concd dans de nombreux pays
une partie de la bande hertzienne ces services, souvent prix d'or.
1.2.2
Caractristiques
Pour grer ces contraintes, GSM a opt pour un systme TDMA saut de frquence et
duplexage frquentiel.
La technique de multiplexage temporel, dite TDMA (Time Division Multiple Access), est
frquement utilise dans le domaine des rseaux. Nous n'en expliquerons le fonctionnement
que dans le cas particulier de la voie radio GSM : tant donn qu'une bande de frquence
dans GSM peut vhiculer huit fois le dbit d'une conversation tlphonique, on va segmenter le temps d'mission/rception en 8 intervalles de temps rpts l'inni, qu'on appelera
slots. Chacun sera allou une conversation dirente o de la signalisation. Une de ces
squences de 8 slots est appel une trame. On optimise ainsi l'utilisation de la voie radio.
Le saut de frquence consiste pour un mobile changer de frquence pour chaque slot
temporel qu'il utilise. La suite de frquences peut-tre cyclique ou pseudo-alatoire. On
utilise cette technique parce que les interfrences ne sont pas rparties quitablement entre
les frquences et que de cette faon, les erreurs sont rparties entre un maximum de ux utilisateurs. On amliore ainsi l'ecacit des codes correcteurs d'erreur. La gure 1.1 illustre
les concepts de trames et de slot. Les ches reprsentent le saut de frquence.
Le duplexage frquentiel consiste sparer en frquence la voie montante et la voie
descendante d'une connexion. Pour GSM dans la bande 9OOMHz, l'cart entre la voie
montante et la voie descendante est x 45MHz. Comme expliqu plus haut, 8 communications peuvent tre multiplexes sur chaque couple de frquence (voire 16, si on utilise
des algorithmes de compression de la voix plus performant).
Nous n'insistons pas sur les notions de saut de frquence et de duplexage frquentiel qui
1.2.
17
GSM
1 trame
1 slot
Bande de
freq. 0
200
KHz
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
Bande de
freq. 1
200
KHz
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
Bande de
freq. 2
200
KHz
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
Bande de
freq. 3
200
KHz
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
Temps
Fig.
18
CHAPITRE 1.
Fig.
une double numrotation, une dans la structure de trame et une autre dans la structure de
multitrame. Autrement dit, un slot porte un numro compris entre 0 et 7 qui le situe dans
une trame et un autre numro compris entre 0 et 50 qui le situe dans une multitrame. Le
contexte indiquera en gnral lequel de ces deux numros on utilise. Quand on parlait des
slots 0, 10..., on citait leur numrotation dans la structure de multitrame.
Pour certains canaux ddis, on utilise une structure de multitrame 26. Les deux
structures de multitrames peuvent tre utilises pour se reprer dans la mme bande de
frquence mais pour des slots dirents. On peut utiliser par exemple la multitrame 51
pour se reprer les slots numrots 0 dans chaque trame et la multitrame 26 pour les
autres.
La structure suprieure est la supertrame. Elle se constitue de soit 26 multitrames 51
soit 51 multitrames 26. Cette structure de supertrame sert juste agrger les dirents
types de multitrames. Ici aussi, les supertrames se succdent l'inni.
Enn, une hypertrame se constitue de 2048 supertrames. Un structure d'hypertrame est
donc constitue de 2048 56 21 trames . C'est en rfrence cette structure que la norme
dnit le Frame Number de chaque trame : c'est sa position dans la structure d'hypertrame
courante. Une hypertrame dure 3h 28min 53s et 760ms. Aprs l'coulement de ce temps,
toute une srie de valeurs voluant cycliquement dans le rseau vont reprendre leur valeur
initiale.
1.2.
GSM
19
Voici une application concrte des dirents principes prsents jusqu'ici ; intuitivement,
comment fait un mobile pour se "caler" sur une BTS :
Tout d'abord, il scrute toutes les frquences situes dans le spectre de GSM. Il va reprer
un certain signal mis par chaque BTS qu'il peroit et slectionner celui qu'il reoit le
mieux. Ce signal est prsent sur le slot numrot 0 dans une trame de la voie balise, ce
qui permet au mobile d' la fois reprer la frquence de la voie balise et de se reprer dans
la structure de trames. Ensuite, le mobile va se synchroniser plus nement en coutant
le canal SCH (Synchronization Channel) qui est le premier de la trame TDMA suivante.
Dans les informations du SCH, il va trouver le Frame Number et un code de couleur (BSIC
Base Station Identication Code) qui sert direncier les BTS peu loignes qui mettent
sur la mme frquence balise. A partir de ce moment, il est synchronis avec la BTS.
Maintenant, il va couter sur certains slots bien dnis de la voie balise les informations
dont il a besoin. Il les trouve dans le canal logique BCCH dont l'emplacement est xe dans
la structure de multitrames 51, ce qui lui permet de s'y retrouver. Ces informations sont
entre autres :
les paramtres de slection de la cellule qui permettent un mobile de dterminer s'il
peut se mettre en veille sur la cellule
le numro de zone de localisation qui permet un mobile de savoir s'il doit procder
une inscription, comme il doit le faire lorsqu'il change de zone de localisation
les paramtres RACH (Random Access Channel) qui contiennent les rgles d'accs
alatoire que le mobile devra utiliser s'il veut se signaler la BTS
la description de l'organisation des canaux de contrle communs qui indique au mobile
les slots couter pour dtecter les pagings.
Le mobile va alors se signaler au rseau, pour faire connatre sa localisation . Il le fait
par un accs alatoire sur le canal logique RACH (Random Access CHannel) dont l'emplacement physique dans les structures de multitrame lui a t prcis dans les informations
du BCCH. Si cet accs russit, le rseau va diuser sur le canal logique AGCH (Access
Grant CHannel) un message d'allocation de canaux logiques ddis au mobile la fois sur
la voie descendante et la voie montante. Sur ces canaux logiques, le mobile va ngocier des
paramtres de cryptage et ensuite transmettre un de ses identiants. Ds lors, le rseau sait
quel mobile exactement l'a contact et peut enregistrer sa zone de localisation. Ensuite,
le mobile mettra rgulirement un message pour signaler au rseau qu'il est toujours
l'coute. Si ce message n'est pas reu pendant une certaine priode, assez longue, ce mobile
sera considr comme inaccessible par le rseau.
20
CHAPITRE 1.
Fig.
1.2.4 Architecture
L' architecture d'un rseau GSM est spcie dans la norme de l'ETSI. Ceci permet
l'interaction, ncessaire l'itinrance, de plusieurs rseaux installs par des oprateurs
dirents mais aussi l'achat des dirents composants d'un rseau auprs de dirents
fournisseurs. Plusieurs entits sont dnies dans la norme. Ce qu'on entend par entit,
c'est un quipement physique, dot d'une certaine intelligence, d'une capacit traiter de
l'information. On trouvera la gure 1.3 une reprsentation de cette architecture. Voici
un cours descriptif fonctionnel de ces entits 2 :
On a omis certaines fonctions qu'il n'est pas ncessaire de comprendre pour la suite.
1.2.
GSM
21
Certains MSC peuvent tre des GMSC (Gateway MSC), et servent alors de passerelle
avec un autre rseau de tlphonie.
base de donne centralisant les informations d'identication et de localisation de chaque abonn du rseau.
1.2.5 Identiants
Enn, il sera utile de savoir qu'un mobile a plusieurs identiants :
Cet identiant est le numro de tlphone correspondant l'abonnement. Une table de correspondance IMSI/MSISDN est stocke
dans le HLR et le MSISDN n'est jamais transmis sur la voie radio.
22
CHAPITRE 1.
Fig.
qu'un mode sans connexion pour le transfert de donnes. Il est possible de multiplexer dirents ux sur le mme canal physique. La distinction des ux se fait grce au SAPI(Service
Access Point Identier).
La couche 3 comprend trois sous-couches. Si la norme les prsente comme une pile, dans
les fait, ces trois couches agissent en parallle. Autrement dit, il n'y a pas d'encapsulation
entre les couches. Ces trois couches sont :
RR (Radio Ressource)
Cette couche gre la connexion radio et principalement l'tablissement (ou le rtablissement) d'un canal ddi lors de la procdure de handover.
L'entit RR de la MS dialogue avec un BSC.
MM (Mobility Management)
CM (Connection Management)
1.3.
23
GPRS
circuit).
Permet au mobile de transfrer de la signalisation sur la voie montante quand une conversation n'est pas en
cours. C'est sur cette voie que transite les SMS.
1.3 GPRS
1.3.1 Introduction : les services oerts
Tout d'abord, nous allons procder une petite mise au point terminologique. Etant
donn que GPRS (General Packet Radio Service) est partie intgrante de GSM, pour
direncier les services oerts par GPRS de ceux oerts par la norme GSM "classique"
on parlera non pas de GPRS et GSM, mais de GPRS et GSM-Circuit (ou GSM-C). De
plus, il faut noter qu'on dsigne le protocole rseau utilis au dessus de GPRS par le terme
gnrique PDP(Packet Data Protocol). Et par extension, un rseau interagissant avec un
mobile travers l'architecture GPRS est appel rseau PDP. Dans la plupart des cas, il
s'agira d'un rseau IP.
GPRS n'apporte pas vrai dire de nouveaux services l'utilisateur, puisque le transfert
de donnes est dj disponible au moyen d'un terminal la norme GSM. Ce que GPRS
apporte, c'est une augmentation des dbits et une plus grande souplesse d'utilisation :
connexion quasi-instantane et facturation au temps de transmission rel, voire au volume
rellement transmis. Pour bien comprendre, il faut voir qu'aussi bien GSM-C que GPRS ne
fournissent pour les donnes que les deux premires couches du modle OSI : les couches
24
CHAPITRE 1.
physique et liaison de donnes. Les dirences se trouvent dans la faon dont sont assures
les fonctions de ces deux couches :
Dans GSM-C pour raliser un transfert de donnes, on tablit un circuit physique virtuel entre deux points, au moyen duquel seront transmises les donnes. Les ressources
sont rserves pour toute la dure de l'change, mme si elles ne sont utilises en fait
que pendant une inme portion du temps de connexion. Ceci est trs courant pour de
nombreuses applications classiques, par exemple, la consultation de documents html.
Ensuite, on utilise un protocole point point pour abiliser le transfert le long de
ce circuit. Par exemple pour un utilisateur voulant accder un rseau datagrammes
comme Internet, GSM-C tablit un circuit entre la MS et une passerelle appartenant
un fournisseur d'accs. On utilise ensuite le protocole PPP (ou SLIP) pour faire
communiquer la MS et cette passerelle. Le tout (circuit + PPP) fournit les couches 1
et 2 du modle OSI.
Dans GPRS ce n'est plus un circuit qui permet la communication entre le terminal
mobile et la passerelle mais bien un rseau commutation de paquets avec concurrence
d'accs aux ressources et possibilit d'associer des qualits de services par ux. Sur la
voie radio, l'allocation de ressources se fait la demande du mobile pour transmettre
un volume de donnes x au pralable. Les ressources alloues sont donc adaptes au
volume transmettre.
Pour conclure, s'il est juste de dire que GPRS n'est qu'une amlioration de services dj
disponibles, il faut se rendre compte de l'importance de l'volution qui doit tre faite au
sein du rseau GSM pour assurer ces amliorations. C'est une refonte trs complexe du
rseau.
1.3.2 Caractristiques
GPRS utilise les mmes bandes de frquence que GSM-C. La cohabitation des deux
services se fait sur base des structures de slots et de trames dcrites au point 1.2.2 et la
gure 1.1.
Pour augmenter les dbits disponibles pour l'utilisateur, on utilise principalement deux
techniques nalement trs simples :
la diminution de la protection des donnes utilisateurs (moins d'overhead)
l'utilisation pour transporter des donnes de plusieurs slots sur une trame TDMA, au
lieu d'un seul dans GSM-C
La deuxime de ces techniques repose sur le principe du multiplexage statistique : par
multiplexage statistique, on entend permettre un utilisateur de se voir allouer ponctuellement bien plus que
bande passante
nombre d0 utilisateurs
si les autres utilisateurs n'utilisent pas leur portion de bande passante. Dans ce cas, notre
1.3.
GPRS
25
1.3.3 Architecture
La mise en place du service GPRS sur le rseau GSM actuel ncessite le rajout l'architecture envisage au point 1.1.4 de nouvelles entits de rseau ddies l'acheminement
des paquets :
26
CHAPITRE 1.
Fig.
1.3.
GPRS
27
MS -> Internet
Pour transmettre un message destination d'une adresse IP, la MS va d'abord essayer
d'obtenir des ressources sur la voie radio. Pour ce faire, elle va se signaler par un accs
alatoire au rseau. Si cet accs russit, le rseau va lui rserver un canal logique sur lequel
ils vont pouvoir dialoguer.
Aprs s'tre identi, avoir exprim sa requte et reu une allocation de ressources, la MS
va transmettre son paquet IP qui va parvenir jusqu'au SGSN. Celui-ci va demander au HLR
l'adresse d'un GGSN orant l'accs Internet. Quand il disposera de cette information, le
SGSN va encapsuler le paquet IP de la MS dans un autre paquet IP portant l'adresse du
GGSN. Le paquet IP de la MS est donc encapsul dans un autre paquet IP.
Lorsqu'il reoit ce paquet, le GGSN en question dcapsule le paquet IP de la MS et
l'envoie sur Internet.
Internet -> MS
Quand un ordinateur connect Internet souhaite envoyer un paquet IP un abonn
GPRS, il l'envoie comme n'importe quel paquet. Ce paquet est rout vers un GGSN du
rseau GPRS parce qu'il contient une adresse IP qui le destine ce rseau.
Quand le GGSN reoit le paquet en question, il peut s'adresser au HLR pour connatre
la zone de routage actuelle de l'abonn qui possde l'adresse IP. Quand le GGSN dispose
de cette information, il va envoyer le message PDP encapsul dans un paquet IP au SGSN
qui gre cette zone de routage.
Ce SGSN peut alors contacter la MS en faisant du paging pour savoir exactement o
il se trouve. Il va ensuite lui signaler quand et sur quelle frquence couter. Au moment
convenu, le mobile va se mettre l'coute et le SGSN va lui transmettre le paquet IP.
28
CHAPITRE 1.
1.3.5 Identiants
De nouveaux identiants ont du tre dnis pour tre utiliss dans les dirents protocoles GPRS :
P-TMSI(Packet TMSI) :
Identit temporaire qui identie un mobile particulier pour le SGSN. Choisi alatoirement par le mobile l'initialisation d'un ux
de donne s'il ne s'est pas encore vu allouer de P-TMSI. A chaque fois que le mobile
possde un P-TMSI valable, le TLLI est gal au P-TMSI.
couche physique
La structuration du temps sur une frquence en slots et en trames est reprise GSM-C,
ce qui permet de faire cohabiter les deux types de ux sur une mme bande de frquence.
Par contre, une nouvelle structure du niveau des multitrames de GSM-C est dni : la
multitrame 52 slots3 . On approfondira cette notion dans le chapitre 4.
Couche RLC
Le protocole RLC assure la segmentation des paquets LLC en blocs RLC/MAC et eectue les retransmissions ncessaire quand un paquet s'est perdu (mcanisme de type ARQ
Automatic Repeat Query). Ce protocole est troitement li l'interface radio utilise.
3
1.3.
29
GPRS
Fig.
SM
GSMS
SM
GMM
GSMS
GMM
LLC
LLC
LLC RELAY
RLC
RLC
MAC
MAC
Physical Layer
Physical Layer
Terminal Mobile
Station de base
Fig.
SGSN
30
CHAPITRE 1.
couche MAC
Le protocole MAC gre l'accs concurrent aux dirents canaux physiques. Un mobile
peut se voir allouer plusieurs intervalles de temps d'une trame TDMA s'il est capable de
les grer (terminaux multislots).
Les en-ttes des protocoles RLC et MAC sont mlanges. La sparation est donc assez
factice d'autant plus que les deux protocoles sont dnis dans le mme document. On
parlera donc souvent de la couche RLC/MAC.
Couche LLC
Le protocole LLC doit :
fournir un lien logique able entre la MS et le SGSN.
tre indpendant des protocoles sous-jacents l'interface radio pour permettre l'introduction de nouvelles solutions radio pour GPRS avec un minimum de changement au
NSS (Network Sub-System).
supporter des paquets d'information de taille variable
supporter un mode avec acquittement et un autre sans
permettre de faire une distinction de qualit de service entre les dirents types d'utilisateur
prserver la condentialit des identits des utilisateurs
Couche SNDCP
SNDCP gre le multiplexage de plusieurs connexions PDP, la compression/dcompression
des en-ttes4 et la compression/dcompression des donnes. Ce protocole assure le respect
de la squence des messages. Le protocole SNDCP assure aussi la segmentation (et la reconstitution) des paquets de donnes pour fournir des blocs de donnes de taille acceptable
pour le protocole LLC.
Couche GMM
La couche GMM (GPRS Mobility Management) va grer, comme son nom l'indique,
l'itinrance du terminal dans le rseau. Cette couche n'est pas vraiment en-dessous de SM
tant donn qu'il n'y a pas d'encapsulation entre les couches. GPRS reprend le principe
de groupement en zone des cellules de GSM-C, mais ces zones sont plus petites : elles sont
appeles zone de routage (ou routing area, RA)5 .
4
5
1.4.
CONCLUSION
31
Couche SM
La couche SM permet au mobile de demander au rseau la mmorisation d'un contexte,
appel contexte PDP, dans le SGSN et le GGSN. Ce contexte va servir ces deux entits
router les paquets en provenance du mobile ou destins celui-ci sans devoir consulter
les bases de donnes de localisation. Il comprend principalement :
1.4 Conclusion
La profusion d'exception aux rgles gnrales reprsente la principale dicult de la prsentation de GSM/GPRS. Ce chapitre n'a pu tout prsenter, il sert simplement introduire
ou rappeler au lecteur des principes ncessaires la comprhension de ce mmoire.
Si certains de ces principes ne serviront pas directement dans les chapitres qui suivent,
ils ont nanmoins d tre compris pour avancer dans ce mmoire. Et terme, ils devraient
tous intervenir dans le projet J-GSM-Show.
32
CHAPITRE 1.
Chapitre 2
ment de la pile de protocoles gre par un terminal mobile (que l'on dsignera souvent par
la suite par l'acronyme MS, Mobile Station). J-GSM Show est un portage/amlioration en
Java du logiciel GSM-Show, l'origine conu par Xavier Lagrange et programm en Visual
Basic.
Ce chapitre se structure de la faon suivante :
Au point 2.1 nous dcrirons les fonctions du programme.
Au point 2.2 nous dcrirons l'architecture du programme, o l'on mettra en vidence
les amliorations apportes par rapport GSM-Show.
Au point 2.3 nous donnerons un exemple d'utilisation de J-GSM Show.
Pour des supplments d'information sur le programme on se rfrera aux annexes lectroniques, o l'on trouvera non seulement la documentation du programme gnre au moyen
de l'outil Javadoc de Sun mais aussi un petit guide d'installation.
2.1
Fonctions du programme
J-GSM Show est destin tre utilis avec un mobile de trace GSM, qui retransmet sur
une ligne srie connecte un ordinateur tous les changes de signalisation qu'il entretient
avec le rseau. On dit qu'il trace ses changes avec le rseau. Ces traces, dont le format
dpend du mobile de trace utilis, sont ensuite dcodes par J-GSM-Show et le rsultat
33
34
CHAPITRE 2.
PORTAGE ET AMLIORATION
de ce dcodage est ach sous des formes nettement plus lisibles pour l'utilisateur qu'un
ux d'octets bruts. Par exemple, le programme va reconstituer partir des traces les
messages de niveau 3 et les acher sous la forme des primitives de services auxquels ils
correspondent. Ainsi, il est possible d'observer, quasiment en temps rel les dialogues dans
le plan de signalisation entre le rseau et le mobile aux dirents niveaux de protocole.
Toutes les fonctionnalits de GSM-Show et de son clone J-GSM Show :
Visualisation des traces brutes, telles que reues sur la liaison srie en provenance du
mobile de trace.
Visualisation des changes de primitives dans le plan de signalisation GSM, aussi bien
au niveau 2 qu'au niveau 3.
Visualisation des frquences, niveaux de rception et codes de couleur d'au plus 6
stations de base situes proximit du mobile.
Visualisation de la conguration utilise sur le moment pour les dirents canaux
physiques : quels slots de quelle trame sont occups et par quel canal logique.
Visualisation de variables d'tats de la station de base courante sur laquelle le mobile
de trace est l'coute. Par exemple : identiant de cette station dans le rseau, ou
niveau maximal d'mission permis un mobile communiquant avec cette station.
Visualisation de l'volution du niveau de rception sur la station de base courante ou
sur une station de base adjacente , du niveau d'mission en cas de communication avec
le rseau, etc..
visualisation aussi, ds que possible, des dirents identiants du mobile
Nous n'avons pas encore implment les 3 derniers lments de cette liste dans J-GSM
Show.
Le programme peut fonctionner dans trois modes dirents :
Le mode srie : dans ce mode, un mobile de trace doit tre branch l'ordinateur via
une liaison srie. Le programme va alors dcoder " la vole" les messages mis par le
mobile sur cette liaison et acher le rsultat de son travail dans les dirents crans
que l'utilisateur aura choisi d'acher. Il est possible de sauvegarder les messages du
mobile dans un chier.
Le mode temporis : dans ce mode, on utilise un chier sauvegard dans le mode srie.
Le programme va "rejouer" la trace raison d'un message toutes les 0,75 secondes.
Ce mode permet d'utiliser le programme des ns d'illustrations partir de scnarii
connus l'avance et sans disposer d'un mobile de trace.
Le mode pas--pas : trs semblable au prcdent, sauf qu'ici c'est l'utilisateur qui
commande la lecture de chaque message via l'interface, ce qui permet de rejouer un
scnario tape par tape, au cours d'un expos par exemple.
2.2.
2.2
ARCHITECTURE
35
Architecture
2.2.1 Prambule
Dans la suite de ce chapitre, nous parlerons par abus de langage de "trame srie" quand
il s'agira d'un message transmis sur la liaison srie et contenant une en-tte spcique au
protocole utilis par le mobile pour cette liaison ; et nous parlerons de trame (tout court)
lorsqu'il s'agira d'un message au format utilis sur la voie radio dans GSM. Et donc,
souvent, une trame srie contient une trame prcde d'une en-tte spcique au mobile
utilis.
Mais parfois, une trame srie ne contient pas de trame, mais plutt un rapport qui est
gnr par le mobile partir des mesures qu'il a ralises. Un rapport n'est pas transmis
sur le rseau GSM, contrairement une trame. La gure2.1 illustre ces dirents concepts.
MobileManager. Chaque mobile sera reprsent par une instance d'une classe hritant de
MobileManager. Cette structure permet d'abstraire tout ce qui, dans la gestion du dialogue
avec le mobile de trame, est commun tous les mobiles, quelle que soit leur modle. Cela
garantit une relative indpendance du programme vis--vis du mobile utilis (relative parce
que par exemple, le contenu des rapports dire d'un mobile l'autre).
Pour faciliter l'ajout de nouveaux crans, on a utilis un modle de conception dnomm
Observer et tir du livre Design Patterns[GHJV97]. Ce modle utilise la communication
par vnement. Un composant se charge de crer des vnements. En toute gnralit,
on ne sait pas quel composant sont destins ces vnements. Pour se voir adresser un
exemplaire d'un vnement, un composant doit s'abonner, c.--d. s'enregistrer auprs du
crateur d'vnements. Ces composant constituent les observateurs qui donnent son nom
36
CHAPITRE 2.
PORTAGE ET AMLIORATION
Rseau GSM
BTS
courante
Trames GSM
Mesures de
puissance
Mobile de trace
"Trame Srie"
En-Tte
spcifique au
mobile
Liaison Srie
J-GSM
Show
En-Tte
spcifique au
mobile
Trames GSM
ou
Rapport de mesures
"Trame Srie"
Fig.
2.2.
ARCHITECTURE
37
au modle. Dans notre cas, un vnement sera la mise disposition d'une nouvelle trame ou
d'un nouveau rapport et les direntes fentres du programme observeront ces vnements
pour les traiter et acher leur rsultat. Le distributeur sera une instance de la classe Dispatcher, les vnements seront des instances des classes TrameEvent et RapportEvent et les
observateurs implmenteront, selon les vnements souhaits, les interfaces TrameListener
ou RapportListener. Pour abonner un observateur, on utilisera les mthodes addRapportListener(RapportListener rl) et addTrameListener(TrameListener tl) du Dispatcher.
Le fait d'implmenter les interfaces TrameListner ou RapportListener impose aux observateurs d'implmenter des mthodes de traitement de ces vnements, processTrameEvent(TrameEvent
te) ou processRapportEvent(RapportEvent re).
Le diagramme de classe de la gure 2.2 illustre cette architecture.
Ce modle prsente l'avantage de rendre aussi indpendant que possible la source des
vnements et leur destination, permettant ainsi d'ajouter trs facilement des observateurs
ou de dissocier sources et rcepteurs sur des machines direntes.
Enn, pour assurer l'indpendance entre les crans on n'a partag aucune action de
dcodage entre dirents crans. Cela conduit bien sr parfois procder deux fois au
mme dcodage, mais les cas sont susamment peu nombreux pour tre ngligs.
38
CHAPITRE 2.
PORTAGE ET AMLIORATION
propre au mobile des trames srie. Pour les trames sries contenant une trame, elles vont
principalement pouvoir en dduire le sens de la communication, la frquence de transmission et le canal logique.
Une trame srie peut contenir en plus de l'en-tte une trame, c.--d. dans notre terminologie, un champs de donnes au format GSM. Ce format est bien sr identique pour
tous les mobiles. Il est dcrit dans la norme GSM. Ces donnes sont donc analyses par
une classe unique, quel que soit le mobile : Interpreter. Cette classe va dcoder certains
renseignements supplmentaires tels que type de couche de niveau 3 (RR,CM, ou MM)
et l'emplacement du dbut du message de niveau 2 et des donnes de niveau 3 qu'il peut
contenir.
Pour stocker les informations contenues dans un rapport ou dans une trame on a cr
deux structure de donnes spciques, les classes Trame et Rapport. On trouvera dans
les tableaux 2.1 et 2.2 la liste des champs de ces classes ainsi que la dnition de leur
smantique. Ces classes ne sont pas reprsentes sur le diagramme de classe de la gure
2.2 pour ne pas surcharger.
Le reste du traitement des trames GSM est eectu pour chacun des observateurs dans
les mthodes processTrame et processRapport(), comme expliqu dans la section "Objectifs
et solutions".
La classe tempFileWriter constitue un de ces observateurs et implmente donc ces deux
interfaces. Elle est destine stocker sur le disque les squences de structures dcodes. Le
but en stockant le rsultat du dcodage plutt que sa matire brute est d'viter de devoir
reprocder l'interprtation chaque fois et d'avoir un format de chier indpendant du
mobile de trace utilis.
Dans les cas du mode pas--pas ou du mode temporis, ce n'est pas une instance de la
classe MobileManager qui va utiliser les mthodes reRapportEvent et reTrameEvent. En
eet dans ces modes, il n'y a pas de mobile grer. A la place, une instance de la classe
TrameFileSender va lire un chier qui lui est spci par IHM et dclencher les vnements
que le Dispatcher va distribuer. Si on est en mode temporis, cette instance va provoquer
un vnement toutes les 0,75 secondes. Si on est en mode pas--pas, c'est sur appel de sa
mthode readNext() par IHM qu'elle va provoquer un vnement.
Pour faciliter la comprhension du code, il n'y a pas d'autres variables globales au programme que les constantes qui sont toutes situes dans la classe Constantes. De plus, toutes
les interactions entre classes se font par les mthodes disponibles et seuls les paramtres
de l'en-tte de chaque mthode sont modis par la mthode.
2.2.
39
ARCHITECTURE
Structure de trame :
Type
String
Nom du Champ
heure
int
direction
int
frequence
int
boolean
channel
incomplet
boolean
int
repetition
ns
int
decompteur
int
int
couche_L3
transaction_ID
int
int
longueur
pt_debut_L2
int
pt_debut_L3
int
pt_contenu_L3
int[]
contenu
String
String
message
nom_L3
Tab.
Commentaire
Temps en ms depuis le dbut du processus
de trace
Sens de transmission de la trame :
UPLINK ou DOWNLINK
Numro de frquence ARFCN sur laquelle
le message est reu(de 0 1023)
Canal logique
Valeur vraie si le message de niveau 3 n'est
pas complet
Valeur vraie si la trame est rpte
Les QUATRE bits de poids faible du
champ control (voir norme GSM) qui
contiennent le numro de la trame de niveau 2 (permet d'viter d'acher les rptitions)
Valeur du dcompteur uniquement sur
SACCH en mode ddi ( 0=> n de com)
Type de couche (RR,CM,MM)
Rfrence de la transaction(pour couche
CC)
Longueur en nombre d'octets du contenu
Pointeur indiquant (pour tous canaux logiques) le dbut de la trame niveau 2
Pointeur indiquant (pour tous canaux logiques) le dbut du message de niveau 3
Pointeur indquant le dbut du contenu du
niveau 3
Contenu octet par octet ou champ par
champ
Contenu du message brut
Nom du message L3 (cf norme)
Fig.
Interpreter
OrbitelFlowParser
SagemGPRSFlowParser
SagemGPRSManager
OrbitelManager
FlowParser
<interface> TrameListener
TempFileWriter
Fentre x
<interface> RapportListener
TrameFileSender
IHM
CHAPITRE 2.
TrameEvent
Dispatcher
MobileManager
PortManager
40
PORTAGE ET AMLIORATION
2.2.
41
ARCHITECTURE
Structure de Rapport :
Type
int
int[]
int
int[]
int
int
int[]
int
int
int
Nom du Champ
bande
BSIC
etat
freq_vois)
frequence
Niv_Puiss
RX_Level
RX_Level_cour
RX_Qual_cour
TA_Reel
Tab.
Commentaire
Bande de frquence actuellement utilise
Codes de couleur des BTS les plus proches
Mode dedi ou idle
Frquences des BTS les plus proches
Numro ARFCN de frquence courante
Niveau de puissance cod faon gsm
Niveau de rception sur les BTS les plus proches
Niveau de rception sur la BTS courante
Qualit de la rception sur la BTS courante
Avance en temps
Pour une description exhaustive, se rfrer la documentation html gnre avec JavaDoc.
Ces messages sont mis sans dlai sur la ligne et servent soit lancer le processus de trace, soit
l'arrter, soit acquitter les trames sries si le protocole utilis par le mobile comporte un tel mcanisme
2
42
CHAPITRE 2.
MobileManager
C'est une implmentation de cette classe qui doit dcoder les messages que le MobileManager lit dans le tampon que lui fournit un Portmanager, garnir une Trame ou
un Rapport et provoquer un vnement via la mthode idoine du Dispatcher. Cette
classe abstraite permet de masquer l'utilisation de mobiles de modles dirents. Elle
est prvue pour permettre une extension plus aise du programme.
Interpreter
Une classe contenant principalement la mthode Interprete() qui va dcoder une trame
telle que transmise sur la voie radio en s'aidant de renseignements fournis par le protocole spcique au mobile , tels que le sens de la transmission (sur la voie montante
ou sur la voie descendante) et la canal logique utilis. Cette classe peut-tre utilise
par toutes les instances de MobileManager vu qu'elle ne dpend pas d'un protocole
utilis par un mobile particulier mais uniquement des spcications du systme GSM.
OrbitelManager
SagemGPRSManager
Dispatcher
TrameFileSender
En cas d'utilisation des modes pas--pas et temporis, devient la source des instances
de la classe Trame. Deux modes d'utilisations :
- une pour le mode temporis (mthode StartTempo()) qui dmarre un thread qui
toutes les 0,75 s met une trame en provenance du chier
- une pour le mode pas pas (mthode readNext()) o c'est l'IHM qui dclenche
l'mission de la trame suivante
TrameListener
RapportListener
TempFileWriter
PORTAGE ET AMLIORATION
Une interface implmenter par toutes les classes qui veulent s'abonner la distribution de TrameEvent par un Dispatcher.
Une interface implmenter par toutes les classes qui veulent s'abonner la distribution de RapportEvent par un Dispatcher .
En mode srie, on garde une trace de toutes les trames dans un chier. Le FileWriter
est abonn au Dispatcher et enregistre la trace dans un chier temporaire qui ne sera
sauvegard que si l'utilisateur le souhaite.
Fentre X
2.3.
2.3
EXEMPLE D'UTILISATION
43
Exemple d'utilisation
44
CHAPITRE 2.
Fig.
PORTAGE ET AMLIORATION
2.4.
CONCLUSION
45
2.4 Conclusion
Il reste encore raliser dans J-GSM-Show trois crans de GSM-Show. Ce travail est en
cours. Xavier Lagrange l'a donn comme exercice des lves de l'ENST-Paris. De plus,
le programme pourrait encore tre amlior :
Premirement, il devrait informer l'utilisateur en cas d'chec dans le dcodage d'une
trame envoye par le mobile de trace.
Deuximement, il devrait proposer des raccourcis claviers (mnmoniques).
Troisimement, il devrait orir une aide en ligne
Et dernirement, il devrait rajouter une en-tte spcique au chier rsultant du dcodage. Elle pourrait contenir la date de l'enregistrement et un champs contenant un
descriptif du scnario enregistr.
Ce ne sont l que les amliorations auxquelles nous avons pens. Quoi qu'il en soit, si le
programme ne prsente pas encore toutes les facilits d'utilisation d'un logiciel professionel, il est parfaitement fonctionnel l'heure actuelle. De plus, nous avons incorpors trs
facilement l'utilisation d'un autre mobile que celui utilis par GSM-Show, ce qui tend
prouver la souplesse de l'architecture choisie. Enn, la ralisation de fonctionnalits GPRS
et leur incorporation au programme existant nous a encore conforts dans notre conviction
du bien-fond de cette architecture.
46
CHAPITRE 2.
PORTAGE ET AMLIORATION
Chapitre 3
Le compilateur CSN.1
3.1 Introduction
A l'heure actuelle, les nouvelles normes de tlphonie mobile ne cessent de paratre. Et les
constructeurs d'quipements cherchent produire des appareils implmentant ces normes
et leurs nouvelles fonctionnalits dans des dlais de plus en plus courts. Or la complexit des
protocoles grant ces fonctionnalits est de plus en importante. Pour rsoudre ce problme,
on a pens exprimer le format des dirents messages sous une forme directement comprhensible par un ordinateur. Michel Mouly a dni un telle forme avec CSN.1 (Concrete
Syntax Notation number 1) dans son livre [Mou00].
Si on crit le format des messages sous cette forme, on peut gnrer automatiquement un
programme de dcodage correspondant. Ensuite, il est relativement facile d'implmenter
ce programme dans un tlphone mobile ou tout autre appareil.
Ce chapitre est structur de la faon suivante :
Premirement, on trouvera au point 3.2 une description de CSN.1.
Deuximement, au point 3.3 nous expliquerons comment nous avons ralis un compilateur pour CSN.1, c--d un programme qui recevant en entre une description de format en
CSN.1 fournit en sortie une structure de donnes quivalente et facilement utilisable par un
autre programme. Nous avons cr un compilateur pour CSN.1 an de gnrer un dcodeur
pour les messages du protocole au coeur de la voie radio dans GPRS : RLC/MAC.
Troisimement, au point 3.4 nous dcrirons la construction du programme capable de
dcoder un message au moyen de la structure de donnes gnre par le compilateur.
Et enn, en 3.5, nous donnerons un exemple de fonctionnement du compilateur et du
dcodeur.
47
48
3.2
CHAPITRE 3.
LE COMPILATEUR CSN.1
CSN.1
3.2.1 Dnition
CSN.1 est une notation destine dcrire l'encodage binaire d'un protocole. Un description crite en CSN.1 dnit un ensemble de squences de bits considres comme correctes.
L'ensemble de squences incorrectes en constitue donc le complmentaire. Ces squences
sont nies et ordonnes.
Concrtement une description CSN.1 est un texte utilisant l'alphabet de base IA5.
En absence de mention explicite, les espaces, tabulation et retours la ligne n'y sont pas
signicatifs.
Pour indiquer un bit, on utilise les caractres '0' et '1'. Formellement, les notations '0'
et '1' dnotent chacune un ensemble compos d'une seul squence d'un seul bit. De plus le
mot 'bit' dnote l'ensemble de deux squences longues de 1 bit, '0' et '1'.
La succession de deux descriptions dcrit la concatnation de ces descriptions. Formellement, elle dcrit l'ensemble de squences de bits obtenues en concatnant une squence
dcrite par la premire avec une squence dcrite par la deuxime .
Le caractre '|' dnote l'alternative. Formellement, il reprsente l'union de deux ensembles. Par exemple la description
011|000
reprsente l'ensemble constitu de deux squences de bits distinctes : '011' et '001'.
Les caractre '{' et '}' dlimitent une description.
Du point de vue priorit des oprateurs, la concatnation a priorit sur l'alternative. Par
exemple la description :
00|11
dnote le mme ensemble que :
{ 00 } | { 11 }
mais pas le mme que :
0 {0|1} 1
Les caractres '<' et '>' dlimitent un identiant utilis comme une rfrence une
description apparaissant ailleurs. Ce mcanisme permet la modularit. Tous les caractres
compris entre ces deux caractres sont signicatifs et constituent un label. Un label ne
peut contenir les caractres ' :', '=', '(', ')', '<', '>', ' ;' ou '.'. Tous les autres caractres
3.2.
49
CSN.1
<bit>::=1|0;
associe la rfrence <bit> la description 1|0.
Un caractre '<' suivi d'un label, d'un caractre ' :' d'une description et d'un caractre '>'
dnote l'association de la rfrence la description. Ce mcanisme quivaut au prcdent.
Ce mcanisme permet de nommer une partie de message sans devoir crer une dnition
spcique. Exemple :
<champ>::=<longueur : bit(8)>
<donnes : bit(val(longueur)>;
De cette faon, des donnes du message peuvent tre utilises pour dnir la structure de ce
mme message. Par exemple, dans la description ci-dessus, la longueur de la chane de bits
champ dpend de la valeur associe une de ses sous-squences : longueur. La valeur prise
en compte est celle de la dernire instance du label avant son usage comme une variable.
Le terme "avant" doit se comprendre comme "selon l'ordre des bits dans la squence". Ce
mcanisme requiert la dnition de fonctions qui transforment la squence extraite en un
rsultat quelconque. Deux fonctions prdnies sont donnes dans la dnition de CSN.1 :
val() La fonction val() interprte une squence de bits comme un entier reprsent en
binaire avec le bit de poids le plus fort prcdant tous les autres dans la squence.
Exemples :
val(1000) = 8
val(010) = 2
len()
len(010) = 3
CSN1. prvoit aussi la possibilit de pratiquer les oprations arithmtiques courantes +,
-, *, div et mod sur les valeur de ces fonctions. Exemple :
<champ>::=<longueur : bit(8)>
<donnes : bit(val(longueur)+1)>;
50
CHAPITRE 3.
N de
bit :
CHAMPS 1
LE COMPILATEUR CSN.1
CHAMPS 2
DONNEES
BIT
MORE
NOMBRE
DONNEES SUP
Champs prsent
si le bit more
vaut 1
...
NOMBRE
occurences
du champs
DONNEES SUP
DONNEES SUP
Fig.
<
<
<
<
<
{
};
<NOMBRE : bit(8)>
-- commentaire
<DONNEES SUP : octet(val(longueur))>
}
* (val(BIT MORE))
Le format de message binaire dni la gure 3.1 est exactement quivalent cette
description CSN.1.
3.2.
3.2.2
CSN.1
51
Avantages et inconvnients
CSN.1 prsente plusieurs avantages sur la traditionnelle reprsentation des messages sous
forme de grilles avec une case par bit.
Tout d'abord, CSN.1 est compilable, c.--d. qu'il est possible de crer un programme
qui partir d'une syntaxe rdige en CSN.1, va gnrer un dcodeur. Par dcodeur, on
entend un autre programme qui pourra dterminer si une squence de bits qu'on lui soumet
appartient l'ensemble de squences de bits dnie par la syntaxe. Le cas chant, il devrait
aussi pouvoir isoler chacune des sous-squences nommes dans cette syntaxe.
Ensuite, CSN.1 permet de minimiser facilement le nombre de bits utiliss pour transmettre un message. Dnir des champs facultatifs s'avre, en eet, d'une grande facilit.
Voici la construction gnralement employe :
1
On peut d'ailleurs se demander si l'absence de cette notation n'aurait pas induit une protocole plus
simple .
52
CHAPITRE 3.
LE COMPILATEUR CSN.1
3.3.
53
RALISATION DU COMPILATEUR
expression
expression
expression
A
Fig.
expression
expression
/
identifiant = lettre(lettre|chiffre)*
Cette expression rgulire dnit un ensemble de chanes de caractres, dnomm identiant, constitu des chanes commenant par une lettre et suivie d'un nombre indtermin
de lettres ou chires.
Avec un gnrateur d'analyseurs lexicaux, on associe une expression rgulire un identiant de token et une fonction qui permet d'extraire la valeur du token de la chane de
caractres laquelle il correspond. Exemple :
identifiant = lettre(lettre|chiffre)
{return symbol(sym.IDENTIFIER,yytext());}
o yytext() est la mthode qui envoie une instance de la classe String reprsentant la chane
de caractres correspondant l'expression rgulire.
Ensuite, les gnrateurs d'analyseurs syntaxiques tels que YACC (Yet Another Compiler of Compiler). A partir d'une spcication du langage compiler sous la forme dune
54
CHAPITRE 3.
LE COMPILATEUR CSN.1
expression ::=
|
|
terme
::=
|
|
expr
::= expr:e1
{: RESULT =
|
expr:e1
{: RESULT =
|
expr:e1
{: RESULT =
|
PLUS expr:e2
new Integer(e1.intValue() + e2.intValue()); :}
MINUS expr:e2
new Integer(e1.intValue() - e2.intValue()); :}
TIMES expr:e2
new Integer(e1.intValue() * e2.intValue()); :}
3.3.
RALISATION DU COMPILATEUR
55
expression ::=
|
|
|
|
expression
expression
expression
expression
ENTIER;
PLUS expression
MOINS expression
FOIS expression
DIV expression
56
CHAPITRE 3.
LE COMPILATEUR CSN.1
+
4
Fig.
6
5
4
5
Fig.
4 + 5 + 6
gnrera l'arbre syntaxique de la gure 3.3 plutt que celui de la gure 3.4.
3.3.
RALISATION DU COMPILATEUR
syntax
::=
definition
| definition syntax
;
definition ::= PP IDENTIFIER PG ALLOC description POINTVIRG
description ::=
NULL
| INTEGER
| IDENTIFIER
| PP IDENTIFIER PG
| description INFINITY
| description PAROUV expr PARFERM
| description MULT expr
| PP IDENTIFIER DEUXPOINTS description PG
| description description
| description OF description
| description EXCLA description
;
expr
::= expr PLUS expr
| expr MOINS expr
| expr MULT expr
| expr DIV expr
| expr MOD expr
| MOINS
| PAROUV expr PARFERM
| INTEGER
| VAL PAROUV IDENTIFIER PARFERM
| LEN PAROUV IDENTIFIER PARFERM
;
Fig.
57
58
CHAPITRE 3.
LE COMPILATEUR CSN.1
lexeurs, JFLEX (Java Fast LEXical analysor generator)[Kle01]. Ces deux outils prsentent
les avantages d'avoir t conus pour tre interfacs et de gnrer du code Java ce qui
garantit la portabilit du parseur gnr.
L'arbre syntaxique gnr par CUP se constitue d'instances de la classe csn1AbstractNode.
Un ensemble de classes concrtes hritent de cette classe abstraite. La classe exacte qui
est instancie pour constituer un noeud dpend de la production laquelle il correspond.
On trouvera la gure 3.6 un reprsentation UML de cet ensemble de classes. Ces classes
sont :
csn1Leaf
Cette classe est instancie pour reprsenter une chane de bits qui dans la syntaxe d'origine se constitue d'une squence de '1' et de '0'.
csn1ReferenceNode
Cette classe est instancie pour reprsenter une rfrence. Elle possde un champs label.
csn1ConcatenationNode
Cette classe est instancie pour reprsenter une concatenation. Elle possde deux champs de type csn1AbstractNode qui reprsentent les deux
descriptions concatnes.
csn1AlternativeNode
csn1ExponentNode
Pour plus de dtails sur l'implmentation, on se reportera aux documents gnrs au moyen
de l'outil javadoc et placs en annexe lectronique.
Les exposants sont reprsents dans une autre structure d'arbre dont les noeuds instancient tous la classe abstraite csn1ExprNode. L'impossibilit de calculer les valeurs des
exposant au moment de la compilation cause des fonctions impose le stockage des expressions compltes dans la structure de donnes qu'utilisera le dcodeur. Pour rappel, les
fonctions utilises dans les exposants en CSN.1 permettent que des donnes du message
soient utilises pour dnir la structure de ce mme message.
Pour les exposants aussi, la classe prcise qu'on instancie dpend de la production
laquelle correspond le noeud. On trouvera la gure 3.7 une reprsentation UML de ces
classes. Nous n'insisterons pas sur cette structure, vu sa relative trivialit.
A la n du parcours de la squence de caractres en entre, le compilateur a gnr
un nombre d'arbres gal au nombre de dnitions de la syntaxe. Cette liste d'arbres est
stocke dans une instance de la classe ListeDeNoeudsCSN1. Le premier arbre de cette liste
est la racine. Il reste encore alors associer les rfrences prsentes dans tous ces arbres
aux dnitions correspondantes. La mthode link() de la classe ListeDeNoeudsCSN1 assure
cette tche : partir de tous les arbres gnrs, elle va gnrer un unique arbre dont la
3.3.
59
RALISATION DU COMPILATEUR
csn1AlternativeNode
+csn1AbstractNode getFils1()
+csn1AbstractNode getFils2()
csn1ConcatenationNode
+csn1AbstractNode getFils1()
+csn1AbstractNode getFils2()
csn1ExposantNode
csn1AbstractNode
+ static int ALTERNATIVE
+ static int CONCATENATION
+ static int EXPOSANT
+ static int LABEL
+ static int LEAF
+ static int REFERENCE
+ abstract int type()
+csn1AbstractNode getFils()
+csn1ExprNode getExposant()
csn1LabeltNode
+csn1AbstractNode getFils()
+String getLabelt()
csn1ReferenceNode
+csn1AbstractNode getFils()
+void setFils(csn1AbstractNode fils)
+String getLabel()
csn1Leaf
+MyBoolArray getSeq()
Fig.
60
CHAPITRE 3.
LE COMPILATEUR CSN.1
csn1DualExprNode
+csn1ExprNode getTerme1()
+csn1ExprNode getTerme2()
csn1ExprNode
+ static int DIV
+ static int INT
+ static int LEN
+ static int MOD
+ static int MOINS
+ static int MULT
+ static int PLUS
+ static int VAL
csn1FunctionExprNode
+String getLabel()
+int getValue()
Fig.
3.4
Le dcodeur
Le dcodeur doit confronter l'arbre syntaxique d'une syntaxe CSN.1 avec un message
suppos correspondre cette syntaxe. Le cas chant, il doit gnrer une structure de
donnes reprsentant le dcodage du message.
On va tout d'abord au point 3.4.1 dcrire la structure de donnes utilise pour stocker
le rsultat du dcodage.
Ensuite, au point 3.4.2 nous dcrirons les grandes lignes de la conception du dcodeur,
notamment pour la gestion des exposants.
3.4.
LE DCODEUR
61
suiv :
En fait, suiv et ls pointent vers d'autres instances de la classe csn1ConcreteNode qui
reprsentent la racine d'un arbre de sous-squences du message.
3.4.2 Conception
Le dcodeur fonctionne rcursivement sur la structure d'arbre syntaxique gnre par le
compilateur : il parcourt rcursivement l'arbre et le confronte un message. Si ce message
appartient l'ensemble dcrit par l'arbre syntaxique, le dcodeur gnre une structure de
donnes telle que vue au point 3.4.1.
L'appel rcursif ne prend que deux paramtres, l'oset du prochain bit analyser et
une instance de csn1AbstractNode qui reprsente une partie de la syntaxe. On va essayer
de vrier l'appartenance d'une squence de bits commenant l'oset l'ensemble de
squences de bits dcrites par cette partie de la syntaxe.
Pour une bonne comprhension, deux cas particuliers sont envisager :
Le noeud courant instancie la classe csn1Leaf. Le compilateur va alors vrier s'il est
possible de faire coincider la squence de bits contenue dans ce noeud avec une squence de
bits de mme longueur commenant l'oset courant. Si c'est le cas, le dcodeur gnre une
instance de la classe csn1ConcreteNode sans ni valeur de label, ni ls, ni suivant, mais avec
62
CHAPITRE 3.
LE COMPILATEUR CSN.1
3.5.
63
EXEMPLE DE FONCTIONNEMENT
champs(*)
champs(5)
concatnation
concatnation
champs
alternative
concatnation
champs
Fig.
champs concatnation
alternative
concatnation
...
null
champs concatnation
null
champs concatnation
champs
champs
...
Le problme une fois nonc se rsout simplement et nous n'entrerons pas dans le
dtail.
La classe jgsm.csn1.decoder.Decoder implmente un dcodeur rsolvant ces problmes.
64
CHAPITRE 3.
LE COMPILATEUR CSN.1
|0
11
|{z}
0000000
| {z }
101
|{z}
11
|{z}
01
|{z}
010101
| {z }
00000010
| {z } 00000000
| {z } 00000000
| {z }
1111111
| {z }
{z
11
|{z}
111111
| {z }
00000000
| {z }
{z
label : CHAMPS 1
offset : 0
data : 01
longueur : 2
suiv :
fils:
label : DONNEES
offset : 2
data : 1111111
longueur : 7
suiv :
fils:
label :
offset : 10
data : 0
longueur : 1
suiv :
fils:
label : description 3
offset : 11
data : 11111111
longueur : 8
suiv :
fils:
label : NOMBRE
offset : 19
data : 00000000
longueur : 8
suiv :
fils:
label : CHAMPS 2
offset : 13
data : 111111
longueur : 6
suiv :
fils:
<octet>
3.6.
CONCLUSION
65
3.6 Conclusion
Nous avons dni le compilateur dcrit dans ce chapitre pour dcoder les messages accepts dans le cadre du protocole RLC/MAC.
En l'tat actuel, ce compilateur CSN.1 pourrait tre optimis. Une des optimisations les
plus videntes, aussi bien pour le compilateur que pour les dcodeurs qu'il gnre, serait
d'liminer la rcursivit dans toutes les mthodes qui parcourent des structures d'arbre.
De plus, l'heure actuelle, le compilateur ne gre pas toutes les constructions possibles
en CSN.1. Il ne gre par exemple pas la troncation, qui consiste en mettant le signe '//'
la n de la description spcier qu'on accepte aussi des messages tronqus. Le traitement
de ces constructions n'a pas t implment parce que nous n'en avions pas besoin pour
compiler la spcication CSN.1 du format des messages RLC/MAC.
Mais ce compilateur et les dcodeurs qu'il gnre pourrait avoir bien d'autres utilisations
que le dcodage des paquets RLC/MAC
Il pourrait par exemple tre utilis pour crer des prototypes de serveur an de tester
de nouveaux protocoles. Il pourrait permettre de singulirement rduire le temps entre la
description d'un protocole et sa premire implmentation.
Il pourrait aussi tre utilis dans le cadre d'un outil de trace, un "snier", sur un rseau
local. Nous pouvons imaginer que l'utilisateur spcie en CSN.1 le format des paquets qui
l'intresse et que le "snier" utilise un dcodeur gnr partir de cette spcication pour
identier dans le ux qu'il surveille les paquets correspondants.
Enn, il pourrait aussi tre utilis, dans des applications du mme type que J-GSM-Show,
pour aider l'illustration du fonctionnement de divers protocoles. Pourquoi pas TCP/IP
par exemple ?
Ce compilateur constitue donc un produit ni part entire qui pourra tre utilis dans
nombre d'autres projets que J-GSM-Show. Nous comptons d'ailleurs le mettre en accs
libre la disposition de la communaut d'Internet.
66
CHAPITRE 3.
LE COMPILATEUR CSN.1
Chapitre 4
67
68
CHAPITRE 4.
ILLUSTRATION DE GPRS
dcoder les blocs RLC/MAC1 et d'autre part d'tablir une communication avec le mobile
de trace GPRS via une liaison srie.
Le dcodage des blocs RLC a t la motivation premire du dveloppement du compilateur dcrit au chapitre 3. En l'utilisant pour gnrer partir de la spcication du
format binaire des blocs RLC/MAC un dcodeur, nous avons rencontr divers problmes.
Ils seront voqus au point 4.6.
Le dveloppement des modules ncessaires l'utilisation d'un nouveau mobile de trace
sera voqu au point 4.7.
Malheureusement, le temps a manqu pour implmenter les spcications voques au
point 4.4 mais nous avons cependant ralis une interface simple utilisant tous les principes
voqus auparavant qui nous a permis de prouver la validit de la dmarche. Nous nous
expliquerons au point 4.8.
Enn, nous conclurons sur les dicults rencontres et les perspectives d'avenir du projet.
4.2.
69
12
BLOC 0
BLOC 1
BLOC 2
T BLOC 3
25
BLOC 4
BLOC 5
38
BLOC 6
BLOC 7
BLOC 8
T BLOC 9
51
BLOC 10
BLOC 11
T reprsente le PTCCH
i signifie idle
Fig.
Tab.
Cette allocation de slots se fait dans une structure spciale : la multitrame 52. Pour
rappel, GSM-C utilise des multitrames 26 et 51.
Cette allocation se fait au niveau de la couche RLC/MAC. L'allocation de slots pour
GPRS se fait en gnral par blocs de quatre2 . C'est donc en blocs qu'on va dcomposer la
multitrame 52, en 12 blocs en fait. Les 4 slots restant seront utiliss en alternance pour le
PTCCH (transmission des ajustements de l'avance en temps sur la voie descendante et de
messages permettant au rseau de calculer cette avance en temps sur la voie montante) et
par un slot IDLE pendant lequel le mobile peut faire des mesures de qualit et de puissance
sur direntes BTS. Ces slots sont les slots 12, 25, 38 et 51 (voir gure 4.1).
L'augmentation du nombre de slots allous par trame un mobile est le premier moyen
d'augmenter les dbits. Le second moyen est la diminution de la protection des donnes
pour diminuer l'overhead. Le volume utile de donnes transportes dans un bloc varie en
fonction du schma de codage utilis. Un schma de codage correspond un niveau de
scurit sur les donnes, plus le volume utile transport est faible, plus la redondance est
forte et plus le nombre possible de corrections d'erreurs augmente. Ce paramtre permet
d'augmenter le volume transport quand les parasites sont rares.
La norme dnit quatre schmas de codage : de CS-1 CS-4, du mieux protg celui
transportant le plus de bits "utiles". On trouvera au tableau 4.1 la liste de ces schmas et
le volume de donnes utiles correspondant.
Enn, comme nous l'avons dj expliqu au chapitre 1, GPRS permet une connexion
quasi instantane et ne demande pas d'allocation de ressources pendant toute le communication de l'utilisateur. Cet objectif a t atteint sur la voie radio au moyen de TBF
(Temporary Block Flow).
2
70
CHAPITRE 4.
ILLUSTRATION DE GPRS
Un TBF est un ux de donnes temporaire, comme son nom l'indique. Il est dsign
par un identiant, le TFI(Temporary Flow Identier). Un TBF existe tant que l'metteur
a en mmoire des donnes transmettre, il peut correspondre l'mission de plusieurs
paquets d'une couche suprieure. Autrement dit, un TBF est interrompu et ses ressources
sont libres pour d'autres transferts de donnes ds que l'metteur n'a plus de donne
transmettre. Il y a deux types de TBF :
Le TBF downlink
Le TBF Uplink
On voit donc qu'un TBF implique toujours des transmissions dans les deux sens, de la MS
au rseau et du rseau la MS, que le TBF soit UPLINK ou DOWNLINK.
En toute logique, un mobile peut avoir deux TFI, un TFI UPLINK et un TFI DOWLINK, ce qui montre bien que ces deux aspects sont indpendants. A noter aussi que les
acquittements d'un TBF sont identis par le TFI de ce TBF alors qu'ils traversent la voie
radio dans le sens oppos celui du ux principal du TBF.
Il peut y avoir quatre tats :
Aucun TBF n'est en cours.
Un TBF UPLINK est en cours.
4.3.
71
SLOT: 1
BLOC 0
BLOC 1
BLOC 2
BLOC 3
BLOC 4
BLOC 5
BLOC 6
BLOC 7
BLOC 8
BLOC 9
BLOC 10
BLOC 11
BLOC 0
BLOC 1
BLOC 2
BLOC 3
BLOC 4
BLOC 5
BLOC 6
BLOC 7
BLOC 8
BLOC 9
BLOC 10
BLOC 11
SLOT: 3
BLOC 0
BLOC 1
BLOC 2
BLOC 3
BLOC 4
BLOC 5
BLOC 6
BLOC 7
BLOC 8
BLOC 9
BLOC 10
BLOC 11
SLOT: 4
BLOC 0
BLOC 1
BLOC 2
BLOC 3
BLOC 4
BLOC 5
BLOC 6
BLOC 7
BLOC 8
BLOC 9
BLOC 10
BLOC 11
SLOT: 2
Downlink
TFI Downlink:32
Multi. Courante
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
SLOT: 1
BLOC 0
BLOC 1
BLOC 2
BLOC 3
BLOC 4
BLOC 5
BLOC 6
BLOC 7
BLOC 8
BLOC 9
BLOC 10
BLOC 11
SLOT: 2
BLOC 0
BLOC 1
BLOC 2
BLOC 3
BLOC 4
BLOC 5
BLOC 6
BLOC 7
BLOC 8
BLOC 9
BLOC 10
BLOC 11
SLOT: 3
BLOC 0
BLOC 1
BLOC 2
BLOC 3
BLOC 4
BLOC 5
BLOC 6
BLOC 7
BLOC 8
BLOC 9
BLOC 10
BLOC 11
SLOT: 4
BLOC 0
BLOC 1
BLOC 2
BLOC 3
BLOC 4
BLOC 5
BLOC 6
BLOC 7
BLOC 8
BLOC 9
BLOC 10
BLOC 11
BLOC 1
BLOC 2
BLOC 3
BLOC 4
BLOC 5
BLOC 6
BLOC 7
BLOC 8
BLOC 9
BLOC 10
BLOC 11
BLOC 1
BLOC 2
BLOC 3
BLOC 4
BLOC 5
BLOC 6
BLOC 7
BLOC 8
BLOC 9
BLOC 10
BLOC 11
Uplink
TFI Uplink:33
SLOT: 7
BLOC 0
SLOT: 7
BLOC 0
Slot
PBCCH
Slot
PCCCH
uplink
CS Uplink: ????
CS Downlink:: ????
4.2 Interface destine illustrer l'allocation des ressources sur la voie radio dans
GPRS
Fig.
4.3
La gure 4.2 reprsente notre proposition d'interface pour illustrer l'allocation des ressources sur la voie radio dans GPRS. Cet cran peut comporter jusqu' 8 reprsentations de
la structure de multitrames 52. Les 4 premiers sont ceux reprsentant la voie descendante,
une reprsentation par slot ou le mobile peut tre l'coute 3 , les quatres suivantes reprsentent ceux de la voie montante , l'avant-dernier est la reprsentation du slot contenant
3
On fait la supposition que les mobiles multislots capables de grer plus de 4 slots n'apparatront pas
avant longtemps, mme si en thorie, la norme permet l'utilisation de 8 slots simultanment.
72
CHAPITRE 4.
ILLUSTRATION DE GPRS
4.4
4.5.
73
ASSIGNMENT comprend par exemple dans sa dnition les champs suivants (ceci est une
version simplie de la vraie syntaxe) :
4.5
Cette spcication de la faon dont l'cran doit ragir la rception d'un bloc RLC/MAC
s'appuie sur leur dnition en CSN.1. Comme nous l'avons expliqu plus en dtail au
chapitre 3, il est possible partir d'une syntaxe en CSN.1 de crer un programme qui
pourra dterminer si une chaine de bits qu'on lui soumet appartient l'ensemble de chanes
de bits dni par la syntaxe et qui, le cas chant, peut isoler chacune des sous-chanes
nommes dans cette syntaxe. L'ide est donc de spcier les ractions du programme en
fonction des valeurs de ces sous-chanes. Bien sr, dans le cas o une de ces sous-chanes ne
74
CHAPITRE 4.
ILLUSTRATION DE GPRS
serait pas prsente, le programme ne doit avoir aucune raction relative sa valeur, sauf
contre-indication explicite.
En fonction du type d'allocation sur la voie montante, le comportement en rception de chaque bloc est dirent :
mode d'allocation dynamique : si l'USF du paquet est celui du mobile sur ce PDCH,
mettre en vert la trame suivante sur la voie montante du mme pdcch.
mode d'allocation statique : ne pas tenir compte de l'USF du paquet.
De plus, ds qu'un paquet downlink est trac, le bloc correspondant passe en rouge et le
prcdent bloc mis en rouge sur la voie descendante retourne sa couleur originelle.
Dans la suite de cette section, nous allons dcrire la raction de l'interface quelques
blocs RLC/MAC de contrle assez intressants, c.--d. provocant des changements importants dans l'interface. Nous adopterons la structure suivante : nous ferons correspondre
chaque nom de bloc la liste des champs qui comportent des informations d'allocation de ressource sur la voie radio. Nous dcrirons alors pour chaque champ le mcanisme d'allocation
correspondant et la raction de l'interface en rception d'un tel bloc.
4.5.
75
76
CHAPITRE 4.
ILLUSTRATION DE GPRS
bits. Chaque bit reprsente un bloc ou un groupe de plusieurs blocs6 (en fonction
de la valeur du bit BLOCKS_OR_BLOCK_PERIODS). Deux cas sont donc
possible :
BLOCKS_OR_BLOCK_PERIODS = 1 : Dans ce cas, l'allocation se fait pour
tous les slots allous la fois. Le bitmap dcrit un tableau unidimensionnel.
Pour chaque bit du bitmap, autant de blocs sont allous aux mobiles qu'il a eu
de slots assigns par le champ TIMESLOT_ALLOCATION. Il s'agit de blocs
"parallles", c'est dire partageant les mmes trames TDMA. Le tableau est
index comme suit :
bloc[z] z, tel que 0 z L
avec
L : (nombre de bits -1)dans l'ALLOCATION_BITMAP.
z : le numro de bloc relatif au TBF_STARTING_TIME.
: mettre en vert les blocs qui sont rservs au mobile(y compris dans
les 10 onglets).
A l'cran
4.5.
77
bloc[x, y]
x = (L n) N T S n, tel que 0 n L,
y = (L n)mod N T S n, tel que 0 n L,
avec
: mettre en vert les blocs qui sont rservs au mobile(y compris dans
les 10 onglets).
A l'cran
78
CHAPITRE 4.
ILLUSTRATION DE GPRS
TBF Starting Time contient le Frame Number de la trame pendant laquelle le TBF
allou peut commencer.Peut-tre exprim de manire absolue sous la forme d'un
champs de 16 bits(Absolute Frame Number Encoding) ou de manire relative au
Frame Number de la premire trame TDMA du bloc contenant ce champs.( sous
la forme d'un champs de 13 bits)
USF_GRANULARITY champ de 1bit. Si ce bit est mis 1, l'allocation se fait par 4
blocs la fois(=16 slots). S'il est mis 0, l'allocation se fait par 1 bloc la fois.
USF_TNi (avec i=0...7) Champs optionnels de 3 bits. Pour chaque slot allou au
mobile, un USF lui est transmis. Pourrait tre ach ct du numro de slot
sur la voie montante.
Remarque : l'allocation dynamique risque d'tre peu utilise cause de la plus grande
consommation lectrique qu'elle entrane en forant le mobile rester l'coute en
permanence.
Allocation d'un bloc unique :
TIMESLOT_NUMBER Champ de 3 bits. Le numro de slot sur lequel le mobile va
pouvoir transmettre son bloc.
TBF Starting Time Le Frame Number de la trame TDMA ou le mobile pourra
commencer mettre le bloc unique .Peut-tre exprim de manire absolue sous la
forme d'un champs de 16 bits(Absolute Frame Number Encoding) ou de manire
relative au Frame Number de la premire trame TDMA du bloc contenant ce
champs.( sous la forme d'un champs de 13 bits) A l'cran : faire passer le bloc
dsign par cette allocation en vert.
< LSA Parameters IE > ::= < NR_OF_FREQ_OR_CELLS : bit (5) >:
{<LSA ID information : < LSA ID information struct >>
7
4.7.
79
* (val(NR_OF_FREQ_OR_CELLS))
};
On peut remarquer la prsence d'un signe " :" en trop au bout de la premire ligne.
A l'aide du compilateur, nous avons pu aisment reprer les erreurs de syntaxe dans les
spcications CSN.1 et nous nous sommes tonns que les concepteurs de la norme n'aient
pas eu recours de tels procds.
Pour gnrer un dcodeur partir de ces spcications, il a donc fallu les corriger. Mais
si certaines corrections, comme celle de l'exemple ci-dessus sont assez triviales, d'autres,
tel que l'ajout d'une accolade fermante, sont plus dlicates, vu que l'emplacement de cette
accolade peut changer la smantique de la syntaxe.
Lors de la compilation, nous avons rencontr un autre problme : seuls les contenus des
paquets de contrle est spci en CSN.1. Les en-tte d'une taille allant de 1 4 octets
ne sont pas spcies en CSN.1. Pour raliser un dcodeur, nous avons du remdier cet
oubli. La gure 4.3 reprsente cette spcication CSN.1.
Une fois ces dirents problme rsolus, nous avons obtenu un programme de dcodage
des paquets du protocole RLC/MAC. Malheureusement, il semble que nos corrections
n'aient pas toutes t justes et ce dcodeur s'est avr incapable de dcoder tous les blocs
RLC/MAC complets mme s'il fonctionne sur nombre de cas isols.
Nous expliquerons au point 4.8 comment nous avons tout de mme pu valider la dmarche
de spcication et d'utilisation de la spcication CSN.1 voque au point 4.3.
80
CHAPITRE 4.
ILLUSTRATION DE GPRS
-- 16 bits
4.7.
81
Nous avons ensuite dni une nouvelle structure de donne destine contenir le rsultat
du dcodage des trames sries et des blocs RLC/MAC qu'elles contiennent : GPRSBlock.
On trouvera la gure 4.2 une description des champs de cette structure.
Ensuite, nous avons cr un nouveau type d'vnements, GPRSBlockEvent et un nouveau
type d'observateur, GPRSBlockListener, tous deux grs par une instance de la classe
Dispatcher, reprenant le modle d'observateur dcrit au point 2.2.2.
La gure 4.4 illustre ces dirents concepts.
82
CHAPITRE 4.
ILLUSTRATION DE GPRS
Spcification
CSN.1 de RLC/
Mac, extrait de la
Norme GSM 04.60
Sens des
messages:
UPLINK?
Sagem
OT96MGPRS
yes
Flux d'octet
no
Partie de la
spcification
concernant les
Messages
montants
Partie de la
spcification
concernant les
Messages
descendants
Compilation
CSN.1
Compilation
CSN.1
Dcodeur
messages
descendant
SagemGPRSFlowParser
Dcodeur
messages montant
Trame Srie
GPRSPacket
No
Yes
SagemGPRSMobileManager
Paquet GPRS
(= chane d'octets)
Yes
Montante?
GPRSPacket
Yes
Dispatcher
GPRS-Show
Fig.
4.7.
Structure de GPRSBlock :
Type
Int
int
Nom du Champ
FrameNumber
direction
int
frequence
int
int
int[]
channel
longueur
contenu
String
message
String
csn1ConcreteNode
nom_RLC
racineDecodage
Tab.
83
Commentaire
Frame Number du premier slot du bloc
Sens de transmission de la trame :
UPLINK ou DOWNLINK
Numro de frquence ARFCN sur laquelle
le message est reu(de 0 1023)
Canal logique
Longueur en nombre d'octets du contenu
Contenu octet par octet ou champ par
champ
Contenu de la trame srie correspondant
au bloc
Nom du message RLC/MAC (voir norme)
Racine de la structure de donne reprsentant le rsultat du dcodage du bloc
84
CHAPITRE 4.
Fig.
4.8
ILLUSTRATION DE GPRS
Validation de la dmarche
A cause des erreurs dans la norme [ETSa] et par manque de temps, il ne nous a pas
t possible d'implmenter l'ensemble de la spcication voque au point 4.3. Nous avons
implment l'interface elle mme sans pouvoir la rendre active. On trouvera une illustration
de la ralisation concrte de cette interface la gure 4.5. Pour donner un ordre d'ide, la
ralisation intelligente d'une telle interface demande de 1 2 jours.
Cependant pour valider la dmarche entreprise, nous avons ralis une interface simple
similaire celles crs pour illustrer le niveau 2 ou le niveau 3 des protocoles GSM. Cette
interface ache pour chaque bloc RLC/MAC trac par le mobile le sens de la communication, le type de bloc, de contrle ou de donne, et s'il s'agit d'un bloc de contrle le
85
4.9.
CONCLUSION
Fig.
nom exact du message de contrle. Elle est illustre la gure 4.6. Pour arriver faire
fonctionner cette interface, nous avons du utiliser un spcication simplie des blocs qui
ne dcrit prcisment que jusqu' 5 octets des blocs RLC/MAC(sur 22 octets).
Le fonctionnement de cette interface prouve la validit de l'approche utilise et le bon
fonctionnement du compilateur. L'interface en elle-mme prsente un certain intrt pour
illuster le fonctionnement de RLC/MAC.
On trouvera les 2 (UPLINK et DOWNLINK) spcications CSN.1 simplies des blocs
RLC/Mac la gure 4.3
4.9 Conclusion
Dans la ralisation de ce projet, nous nous sommes heurts quatre dicults majeures :
Tout d'abord, la complexit et le manque d'information sur GPRS. En eet en novembre 2000, hormis un chapitre du livre de Xavier Lagrange [LGT00], aucun ouvrage ne
s'attardait vraiment sur le fonctionnement de RLC/MAC et notamment des mcanismes
d'allocation des ressources sur la voie radio au moyen de ce protocole. Il nous a donc fallu
analyser le protocole directement partir de la norme [ETSa] qui si elle est exhaustive ne
peut pas prtendre une grande lisibilit.
Ensuite, les erreurs de la norme dans la syntaxe CSN.1 qui nous ont fait perdre beaucoup
de temps. Temps qui aurait pu servir implmenter l'interface du point 4.3.
Et nalement, le manque de donnes GPRS proprement parler. En eet, l'heure o
86
CHAPITRE 4.
ILLUSTRATION DE GPRS
nous crivons, aucun rseau GPRS n'est encore ouvert au public, ni Rennes, lieu du
stage prparatoire ce mmoire, ni en Belgique. Pour tester l'ensemble du programme,
nous avons dispos en tout et pour tout de deux chiers de traces au moyen desquels nous
avons pu rejouer des scnarios enregistrs au moyen du mobile de trace GPRS dans des
rseaux exprimentaux. Le premier de ces deux chiers provenait d'une version dirente
du mobile de trace et les donnes qu'il contenait taient partiellement inutilisables et le
deuxime ne nous est parvenu que le 8 mai 2001.
Nanmoins, nous sommes parvenu implmenter un programme capable partir des
traces fournies par un mobile GPRS d'acher le nom et le sens de ces paquets. Nous avons
pu tester ce programme partir des 2 chiers dont nous disposions. Si cette ralisation
est relativement modeste, elle prouve la validit de la dmarche qui la sous-tend et qui
terme, pourrait aboutir des ralisations bien plus impressionnantes.
De plus, l'ajout de modules permettant la gestion d'un autre mobile que celui dont nous
disposions l'origine a permis de prouver la souplesse de l'architecture du programme.
Enn, nous aimerions souligner l'important eort d'analyse qui a t ncessaire pour
raliser la spcication voque au point 4.3 partir de la norme [ETSa] qui est particulirement ardue comprendre. Cette spcication a requis une comprhension en profondeur
des mcanismes d'allocation de ressources sur la voie radio dans le cadre du protocole
RLC/MAC.
Conclusion
Ce mmoire se base sur la comprhension des mcanismes de fonctionnement de GSM et
GPRS, surtout sur la voie radio. Nombre des concepts employs se rattachent plus une
formation d'ingnieur que d'informaticien mais la convergence actuelle des tlcommunications et de l'informatique devrait amener de plus en plus de gens acqurir cette double
comptence.
Nous allons tout d'abord voquer ce qui a dj t ralis, ensuite, nous expliquerons ce
que selon nous, il reste faire et nous conclurons sur le futur du programme.
Ce travail nous a tout d'abord amen raliser le portage et l'amlioration d'un programme destin illustrer le fonctionnement de GSM sur la voie radio. Les choix d'architecture sont notre contribution la plus originale pour cette partie. Ils devraient permettre
une adaptation facile du programme toutes sortes d'amliorations dans le futur.
Ensuite notre travail a consist en l'ajout au programme existant d'une partie destine
l'illustration des protocoles GPRS sur la voie radio. Cette technologie encore rcente et
par consquent peu documente s'est rvle d'une assez grande complexit. L'analyse des
dirents protocoles et la ralisation des interfaces destines les illustrer constituent une
partie de notre contribution ce projet. Nous avons pu implmenter un prototype destin
illustrer GPRS qui nous a permis de prouver la validit de l'architecture et de la dmarche
employe pour dcoder les messages du protocole au coeur de GPRS sur la voie radio :
RLC/MAC.
Mais le plus original de notre travail pour cette deuxime partie a consist en la programmation du compilateur CSN.1 (Concrete Syntax Notation 1).La spcication du protocole
RLC/MAC utilise CSN.1. Cette notation permet de dnir le format de messages binaires
de manire assez lisible. Elle prsente surtout l'avantage d'tre compilable, ce qui veut dire
qu'une spcication de format binaire en CSN.1 peut tre transforme automatiquement en
un dcodeur des messages binaires qu'elle dcrit. Cette transformation, c'est le compilateur
qui l'eectue. Nous avons cr de cette faon un dcodeur pour les messages du protocole
RLC/MAC que nous avons pu utiliser pour illustrer le fonctionnement de ce protocole.
Outre cette utilisation immdiate, le compilateur pourrait servir bien d'autres projets,
comme par exemple faciliter la ralisation de serveurs utilisant de nouveaux protocoles .
87
88
BIBLIOGRAPHIE
Bibliographie
[AU79]
Alfred V. Aho and Jerey D. Ullman. Principles of compiler designs. AddisonWesley Publishing Company, California, 1979.
[BW97] Gtz Brasche and Bernard Walke. Concepts, Services, and Protocols of the New
GSM Phase 2+ General Packet Radio Service. IEEE Communications Magazine,
aot 1997.
[CG97] Jian Cai and David J. Goodman. General Packet Radio Service in GSM. IEEE
Communications Magazine, octobre 1997.
[ETSa]
[ETSb] ETSI. Digital cellular telecommunications system(Phase 2+) ; General Packet Radio Service(GPRS) ; Mobile Station(MS) - Serving GPRS Support Node(SGSN) ;
Subnetwork Dependent Convergence Protocol(SNDCP) (GSM 04.65 version 8.0.0
release 1999).
[ETSc]
ETSI. Digital cellular telecommunications system(Phase 2+) ; General Packet Radio Service(GPRS) ; Mobile Station(MS) - Serving GPRS Support Node(SGSN) ;
Logical Link Control(LLC) layer specication (GSM 04.64 version 8.4.0 release
1999).
[FS97]
Martin Fowler and Kendall Scott. UML distilled. Addison Wesley Longman, Inc.,
1997.
[GHJV97] Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Addison-Wesley Publishing Company, 1997.
[HFAA99] Scott E. Hudson, Frank Flannery, C. Scott Ananian, and Andrew W. Appel.
Cup User's Manual. http ://www.cs.princeton.edu/ appel/modern/java/CUP,
1999.
[Kle01] Gerwin Klein. JFlex User's Manual.
pel/modern/java/JFLEX, 2001.
[LGT00] Xavier Lagrange, Philippe Godlewski, and Sami Tabbane. Rseaux GSM. Hermes
science Publication, Paris, 2000.
[Mou00] Michel Mouly. CSN.1 Specication, Version 2.0. Cell & Sys, Palaiseau, 2000.
89
90
[SAG00] SAGEM. Serial link trace interface specications for trace mobile M42, 2000.
[SM01]
Inc. Sun Microsystems. Java(tm) Communications API Read Me, Version 2.0.
http ://www.sun.com, 2001.
1.2
1.3
1.4
1.5
1.6
1.7
2.1
2.2
2.3
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
91
. . . . . . . . 59
92
3.9
Multitrame 52
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.2
Interface destine illustrer l'allocation des ressources sur la voie radio dans
GPRS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.3
4.4
4.5
4.6
2.2
4.1
4.2
93