Gsm Gprs Show

Embed Size (px)

Citation preview

Facults Universitaires Notre-Dame de la Paix 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

Mmoire prsent pour l'obtention du grade de matre en informatique Promoteur : le Professeur Olivier Bonaventure

Anne acadmique 2000-2001

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.

RsumL'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.

AbstractThe 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.

SommaireIntroduction 1 Introduction GSM et GPRS1.1 1.2

11 13

Tlphonie cellulaire et autres concepts utiles . . . . . . . . . . . . . . . . . 13 GSM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Caractristiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Application concrte . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Identiants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 La pile de protocoles gre par la MS(Mobile Station) . . . . . . . . 21 Canaux logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

1.3

GPRS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 Introduction : les services oerts . . . . . . . . . . . . . . . . . . . . 23 Caractristiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Deux scnarios d'illustration . . . . . . . . . . . . . . . . . . . . . . . 27 Identiants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 La pile de protocoles gre par la MS . . . . . . . . . . . . . . . . . . 28

7

8 1.3.7 1.4

SOMMAIRE

Canaux logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2 Portage et amlioration2.1 2.2

33

Fonctions du programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.2.1 2.2.2 2.2.3 2.2.4 Prambule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Objectifs et solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Prsentation Gnrale . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Diagramme de classes . . . . . . . . . . . . . . . . . . . . . . . . . . 41

2.3 2.4

Exemple d'utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

3 Le compilateur CSN.13.1 3.2

47

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 CSN.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.2.1 3.2.2 Dnition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Avantages et inconvnients . . . . . . . . . . . . . . . . . . . . . . . 51

3.3

Ralisation du compilateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.3.1 3.3.2 3.3.3 Raisons de ce travail . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Un peu de thorie des compilateurs . . . . . . . . . . . . . . . . . . . 52 Dveloppement du compilateur . . . . . . . . . . . . . . . . . . . . . 56

3.4

Le dcodeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.4.1 3.4.2 Structure de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

3.5 3.6

Exemple de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

SOMMAIRE

9

4 Illustration de GPRS4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9

67

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Analyse du protocole RLC/MAC . . . . . . . . . . . . . . . . . . . . . . . . 68 Interface pour l'allocation radio . . . . . . . . . . . . . . . . . . . . . . . . . 71 Mode de spcication du comportement de l'interface . . . . . . . . . . . . 72 Spcication du comportement de l'interface . . . . . . . . . . . . . . . . . 73 Compilation de la syntaxe CSN.1 de RLC/MAC . . . . . . . . . . . . . . . 78 Adaptation de J-GSM-Show GPRS . . . . . . . . . . . . . . . . . . . . . . 79 Validation de la dmarche . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

Conclusion Bibliographie Liste des gures Liste des tables

87 88 90 92

10

SOMMAIRE

IntroductionLe 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 mmoireAu 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 le dveloppement de nouvelles fonctionnalits relatives GPRS.

INTRODUCTION

Le chapitre 2 voquera la ralisation du portage de GSM-Show en Java, langage choisi pour sa grande portabilit. Nous nous concentrerons principalement sur l'architecture du nouveau programme, conue pour satisfaire aux exigences cites prcdemment. Le format binaire des messages changs sur la voie radio dans GPRS a t spci au moyen d'une notation ad hoc nomme CSN.1 (Concrete Syntax Notation 1). Cette notation est compilable : il est possible de crer un programme appel compilateur qui partir d'un texte crit dans cette notation gnre un dcodeur. Ce dernier est capable de dchirer les messages au format dcrit dans le texte d'origine. Le chapitre 3 se penchera sur la ralisation d'un tel compilateur dont on dcrira l'utilisation au chapitre 4. En eet, au chapitre 4, nous nous pencherons sur la ralisation de la partie GPRS du programme : la faon dont nous l'avons spcie et en avons implment une partie. Nous conclurons, nalement, sur les perspectives d'avenir du programme, ses ventuelles extensions futures et tenterons de donner au lecteur une estimation du travail dj ralis et restant raliser.

Chapitre 1

Introduction GSM et GPRSCe premier chapitre introduit au fonctionnement des rseaux GSM et GPRS en insistant sur les techniques employes sur la voie radio. Nous prsenterons tout d'abord quelques concepts utiles, puis l'architecture d'un rseau GSM classique pour nalement introduire celle d'un rseau GPRS. Ce chapitre emprunte beaucoup [BW97], [CG97], [LGT00] et [Zeg00].

1.1 Tlphonie cellulaire et autres concepts utilesUn systme de radiotlphonie a pour but de permettre un terminal d'accder au rseau tlphonique sur un territoire d'une assez grande tendue (par exemple, un pays, voire un continent). Ce service utilise une liaison radiolectrique entre le terminal et le rseau. La tlphonie cellulaire est un cas particulier de la radiotlphonie. Un rseau est dit cellulaire s'il comprend une srie de stations de base (Base Transceiver Station, BTS ) qui chacune ore le service sur un petit territoire appel cellule. Cette architecture se justie de deux faons. Elle permet premirement de limiter la consommation lectrique des stations mobiles (MS, Mobile Station ) en leur vitant de devoir dployer une grande puissance d'mission. En eet, avec une telle architecture, un terminal est toujours assez proche du point d'accs au rseau avec lequel il dialogue. Et elle permet deuximement d'conomiser le spectre hertzien, c.--d. permettre un maximun de communications en parallle dans les bandes de frquence alloues au systme. En eet, s'il n'y avait qu'une seule BTS pour un certain territoire, il n'y aurait moyen d'couler simultanment qu'un nombre de communications tant le rsultat de la division de la bande passante disponible par la bande requise pour une communication. On peut augmenter ce

13

14

CHAPITRE 1.

INTRODUCTION GSM ET GPRS

nombre de communication possibles en rutilisant la mme frquence plusieurs endroits sur le territoire. A cette n, au lieu de placer une BTS mettant trs fort au milieu du territoire, on va en placer une multitude mettant moins fort intervalles rguliers. Les frquences utilises par deux BTS aux cellules contingentes seront direntes pour viter les interfrences. Plusieurs problmes mergent cause de la mobilit des utilisateurs : Tout d'abord, un utilisateur doit pouvoir passer d'une partie du territoire un autre. Sa communication ne doit pas tre interrompue parce qu'il quitte une cellule pour en gagner une autre. Une autre BTS doit prendre le relai. Cette procdure de changement de cellule par laquelle un terminal va se caler sur une autre frqence porteuse pendant une conversation, de faon transparente l'utilisateur, s'appelle le handover. Ensuite, un autre problme pos par la mobilit est le volume de signalisation. En eet, garder en permanence une trace de la position de chaque MS allume requiert un norme ux de signalisation. Pour diminuer ce volume, le rseau ne cherchera pas savoir tout moment dans quelle cellule exactement se situe un terminal mobile. Il dnit des sousensembles de l'ensemble des cellules, appele zones de localisation, et se contente de savoir dans laquelle se trouve chaque utilisateur actif. Lorsque le mobile quitte ce sous-ensemble, c'est lui qui va provoquer une mise jour de localisation dans les registres du rseau. Le rseau ne connat donc souvent que la localisation approximative d'un mobile et lorsqu'il doit l'atteindre, il fait un appel en diusion, c'est--dire qu'il met un appel contenant un identiant du mobile sur toutes les cellules de la zone de localisation. Le mobile qui reconnat son identiant peut alors signaler sa position. Cette procdure d'appel en diusion est appel paging. Mais pour qu'un appel en diusion atteigne sa cible, celle-ci doit tre l'coute. Tous les mobiles prsents dans une cellule sont l'coute en tat de veille sur une frquence appele voie balise. Cette coute leur permet de s'informer d'ventuels appels qui leur seraient destins. Cette voie sert aussi transmettre des messages de synchronisation et diuser rgulirement la zone de localisation laquelle appartient la BTS, ce qui permet au mobile de savoir quand il la quitte. Chaque BTS a sa propre voie balise. La voie balise transmet des messages de synchronisation parce que le mobile doit pouvoir situer o commence chaque message dans le ux de donnes qu'il reoit. Un autre problme pos aux rseaux de tlphonie cellulaire est celui l'itinrance ou roaming. Un utilisateur abonn dans un certain rseau devrait pouvoir se rendre dans un territoire couvert par un autre rseau utilisant le mme systme et communiquer. Ce problme requiert la dnition des modes d'interaction entre rseaux. Par exemple, on doit dnir comment un rseau A signale un rseau B la prsence d'un de ses utilisateurs. Cette information est ncessaire pour pouvoir faire transiter les appels vers cet utilisateur.

1.2.

GSM

15

1.2 GSM1.2.1 IntroductionLe 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, lesA 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.1

16

CHAPITRE 1.

INTRODUCTION GSM ET GPRS

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

Un rseau de tlphonie mobile a plusieurs contraintes propres et la manire dont sont gres ces contraintes est trs caractristique des rseaux GSM. On va surtout insister ici sur l'interface radio qui occupe le centre de ce mmoire. Tout d'abord, quelles sont les contraintes principales de la liaison radio : il est possible pour un tiers de pratiquer des coutes indiscrtes il y a beaucoup d'interfrences comme sur un vieux rseau Ethernet, le mdium de transmission est partag les bandes de frquences sont limites et doivent donc tre utilise au mieux

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.

GSM

171 trame 1 slot

Bande de freq. 0 Bande de freq. 1 Bande de freq. 2 Bande de freq. 3

ne sont pas indispensables la comprhension de la suite. Nous considrerons d'ailleurs par la suite qu'il n'y a pas de saut de frquence et que donc un mobile reste sur une seule frquence pendant une communication, ce qui facilitera grandement la comprhension sans nuire la gnralit du propos. Pour grer la complexit, les dirents ux de donnes qui peuvent transiter par la voie radio sont classs en fonction du type de donnes transportes. En fonction de ce type, il seront transmis dans dirents canaux logiques. Un canal logique est une suite de slots qui vhiculent un ux particulier. La caractristique qui les dsigne est la fois physique, correspondant une squence de slots bien dnie, et logique, relative aux fonctions qu'ils servent. Par exemple, le ct logique du canal logique BCCH (Broadcast Control CHannel) est qu'il sert transmettre aux mobiles situs porte de l'mission d'une BTS des informations sur la cellule et le ct physqiue est sa position dans les trames, dans le slot 0 des trames de la voie balise. Les canaux logiques sont spars en deux types : les canaux de donnes et les canaux de signalisation. On distingue aussi les canaux communs, utiliss par plusieurs mobiles simultanment, des canaux ddis, rservs un seul mobile. An de reprer physiquement les canaux logiques dans les slots et les trames, la norme utilise le notions de multitrame, supertrame et hypertrame. Une multitrame 51 regroupe 51 slots situs la mme place dans 51 trames conscutives. Les multitrames se succdent l'inni. La norme utilise cette structure pour dnir o doivent se situer les dirents canaux logiques dans le ux de trames. Par exemple, elle prcise que le canal logique SCH (Synchronization CHannel) occupe toujours les slots 0, 10, 20, 30, 40 et 50 d'une multitrame 51. Attention, il faut bien comprendre qu'il y a

200 KHz 200 KHz 200 KHz 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

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

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

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.

1.1 TDMA avec saut de frquence

18

CHAPITRE 1.

INTRODUCTION GSM ET GPRS

Fig.

1.2 Structuration logique des slots

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

1.2.3 Application concrte

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.

INTRODUCTION GSM ET GPRS

Fig.

1.3 Architecture d'un rseau GSM

1.2.4 ArchitectureL' 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 :

les BTS(Base Transceiver Station)

metteur-rcepteur grant une cellule. Gre la couche physique sur la voie radio : modulation, dmodulation, CRC's, multiplexage, saut de frquence, chirage. Il gre galement la couche liaison de donne avec le mobile (protocole LAPDm). commutateur qui ralise un premire concentration de circuit. S'occupe de la gestion de la ressource radio (allocation des canaux, dcision du handover...).

les BSC(Base Station Controller)

les MSC(Mobile-services Switching Center)2

commutateur pour des entits mobiles. Gre l'tablissement de circuits travers le rseau, les SMS et l'excution du handover.

On a omis certaines fonctions qu'il n'est pas ncessaire de comprendre pour la suite.

1.2.

GSM

21

le HLR(Home Location Register)

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. base de donnes agissant la fois comme un tampon vitant des accs trop frquent au HLR et comme lment d'une base de donne distribue dans tous les VLR et HLR GSM. Gnralement plac proximit d'un MSC (souvent dans le mme quipement). Contiennent les donnes d'abonnement des abonns prsent dans une zone gographique.

les VLR(Visitor Location Register)

1.2.5 IdentiantsIMSI (International Mobile Subscriber Identity) TMSI(Temporary Mobile Subscriber Identity)Enn, il sera utile de savoir qu'un mobile a plusieurs identiants : Cet identiant est celui d'un abonnement, il est stock dans la carte SIM du mobile. Il est transmis aussi rarement que possible sur la voie radio pour prserver l'anonymat de l'utilisateur Cet identiant est utilis sur la voie radio autant que possible en lieu et place de l'IMSI pour compliquer la tche d'ventuelles coutes indiscrtes. Il est dni au dbut de l'interaction du mobile avec le rseau et rgulirement mis jour pour compliquer toute tentative de reprage de l'utilisateur.

IMEI(International Mobile Equipment Identity) MSISDN(Mobile Station ISDN Number)

Cet identiant est celui de l'appareil(sans carte SIM). Il est peu utilis l'heure actuelle mais devrait permettre d'interdire l'accs au rseau du matriel vol ou fonctionnant mal. 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.

Cette profusion d'identiants sert principalement viter le reprage d'un utilisateur par des coutes indiscrtes.

1.2.6 La pile de protocoles gre par la MS(Mobile Station)La complexit des fonctionnalits que l'on dsire obtenir au niveau de la MS(Mobile Station) est classiquement gre par une pile de protocoles. On trouvera la gure 1.4 une reprsentation de la pile de protocole gre par la MS. La couche liaison de donnes est gre par le protocole LAPDm qui est de la famille de HDLC. Ses caractristiques principales sont : taille xe des paquets, codes dtecteurs d'erreur, numrotation des trames, correction par retransmission slective (mcanisme ARQ, Automatic Repeat Query). Le protocole LAPDm permet aussi bien un mode avec connexion

22

CHAPITRE 1.

INTRODUCTION GSM ET GPRS

Fig.

1.4 La pile de protocoles gres par la MS

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)

MM (Mobility Management)

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. Cette couche gre la gestion de la mobilit, principalement, les mises jours de localisation, et assure les fonctions de scurit. Cette couche est trs semblable ce qui existe sur les rseaux tlphoniques xes pour grer les appels entre abonns. Les problmes lis la mobilit en ont en eet t autant que possible supprims pour tre dplacs vers la couche MM.

CM (Connection Management)

1.2.7 Canaux logiquesLes dirents canaux logique GSM sont spars en deux classes : Les canaux ddis un mobile :

TCH (Trac CHannel) :

Rserv au transfert de la voix (ou des donnes en mode

1.3.

GPRS

23

circuit).

SDCCH (Stand-alone Dedicated Control CHannel) : SACCH (Slow Associated Control CHannel) :

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. Durant une conversation, c'est cette voie qui est utilise pour remonter au rseau les mesures eectues par le mobile ainsi que d'autres lments de signalisation. Sert assurer le bon droulement de la conversation. Lorsqu'en cours de conversation, en phase de handover, le besoin se fait sentir d'un dbit lev pour la signalisation, on cre un FACCH. Les ressources radio sont "voles" au TCH, pour transmettre ce surplus de signalisation.

FACCH (Fast Associated Control CHannel) :

Les canaux communs plusieurs mobiles :

BCCH (Broadcast Control CHannel) : diuse les informations systmes(voir supra) PCH (Paging CHannel) : diuse les recherches d'utilisateurs par paging RACH (Random Access CHannel) : utilis pour les accs alatoires que ralise unmobile pour demander l'allocation de canaux ddis. C'est le seul canal commun sur la voie montante. l'allocation de canaux ddis

AGCH (Access Grant CHannel) :

canal de la voie descendante par lequel se ralise

1.3 GPRS1.3.1 Introduction : les services oertsTout 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.

INTRODUCTION GSM ET GPRS

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 CaractristiquesGPRS 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 d utilisateurs si les autres utilisateurs n'utilisent pas leur portion de bande passante. Dans ce cas, notre

1.3.

GPRS

25

utilisateur rcupre les ressources inutilises par les autres. La norme dnit de nouveaux canaux logiques GPRS dont l'allocation est exible : sur une frquence, le rseau peut choisir de leur allouer la totalit ou seulement une partie des 8 slots de chaque trame. Autrement dit, l'utilisation d'une frquence peut tre partag entre la parole et les donnes. La rpartition de ces slots consacr GPRS entre les utilisateurs actifs se fait sparment sur les voies montante et descendante. Le chapitre 4 se concentrera plus en dtail sur les mcanismes d'allocation de la ressource radio pour GPRS. Plusieurs schmas de codage sont dnis pour permettre des taux de transfert de 8 Kbps plus de 150 Kbps (inaccessibles dans les faits). Chaque schma de codage ore une protection des donnes plus ou moins importante. La norme dnit l'interaction entre rseaux GPRS et rseaux IP, et entre rseaux GPRS et rseaux X.25. Les donnes utilisateurs sont transfres de manire transparente entre le terminal mobile et les rseaux de donnes externes par une technique de "tunneling". Le tunneling consiste encapsuler les messages transmis par la MS dans des paquets d'un autre protocole. Le rseau n'utilise pas les informations du paquet utilisateur pour le router jusqu' une passerelle. Cette dernire va, en rception du message, dcapsuler le message de la MS et le transmettre sur un rseau PDP correspondant. Ceci permet au rseau GPRS de ne grer qu'un seul protocole dans son backbone et facilite l'utilisation du rseau GPRS avec de nouveaux protocoles de donnes dans le futur. Pour grer les problmes de mobilit, GPRS utilise le mme systme de paging que GSMC mais dnit des sous-ensembles de cellules plus petits que ceux de GSM-C. On appelle ces sous-ensembles des zones de routage. Une zone de routage est toujours totalement incluse dans une zone de localisation. Les intrts principaux de GPRS sont les temps d'accs, de l'ordre d'une seconde pour commencer un transfert de donnes, et la possibilit de facturer en fonction du volume de donnes transfr, plutt qu'en fonction du temps de connexion.

1.3.3 ArchitectureLa 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 :

SGSN (Serving GPRS Support Node) :

Entits associes des zones de routage. Les SGSN communiquent d'un ct avec les terminaux mobiles et d'un autre ct avec le "backbone" du rseau GPRS. Les SGSN gardent trace de la localisation des MS et assurent les fonctions de scurit et de contrle d'accs sur la voie radio. GGSN (Gateway GPRS Support Node) : Passerelles entre le backbone du rseau GPRS et un rseau xe de transmissions de donnes. (PDN Public Data Network). Elles sont les points d'accs principaux au rseau GPRS.

26

CHAPITRE 1.

INTRODUCTION GSM ET GPRS

Fig.

1.5 Architecture d'un rseau GPRS

On trouvera une illustration de l'architecture d'un rseau GPRS la gure 1.5. La norme spcie que le rseau qui relie tous les SGSN et GGSN doit tre un rseau IP. Comme on peut le voir la gure 1.5, GSM-C et GPRS partagent l'infrastructure radio, c.--d. l'ensemble des BTS et des BSC. Pour le reste de leur parcours, les ux GSM-C et GPRS sont spars. Dans GPRS, partir du SGSN, les messages PDP envoys par une MS sont encapsuls dans des paquet IP et transfrs un GGSN. C'est la technique de tunneling dj voque. Le GGSN choisi dpend du type de message encapsul. En eet, un GGSN ne gre l'accs qu' un seul type de rseau PDP. Le deuxime critre de choix du GGSN est sa proximit avec la zone de routage de la MS. Le GGSN qui reoit le paquet IP va dcapsuler le message PDP de la MS qui y est contenu et l'envoyer sur le rseau PDP. En plus de ces deux entits, on va rajouter de l'information dans le HLR pour grer GPRS. On rajoute au HLR les informations d'abonnement GPRS, la zone de routage des abonns, quand on la connat, et une table de correspondance entre adresses PDP et identiants de MS.

1.3.

GPRS

27

1.3.4 Deux scnarios d'illustrationNous allons envisager deux scnarios pour faciliter la comprhension du fonctionnement d'un rseau GPRS. Tout d'abord, l'mission d'un message par une MS direction d'un rseau PDP et ensuite, l'mission d'un message par une entit d'un rseau PDP destination d'une MS. On supposera par la suite que le rseau PDP en question est Internet et que le message manant ou direction de la MS est un paquet IP.

MS -> InternetPour 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 -> MSQuand 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.

INTRODUCTION GSM ET GPRS

1.3.5 IdentiantsDe nouveaux identiants ont du tre dnis pour tre utiliss dans les dirents protocoles GPRS :

P-TMSI(Packet TMSI) :

TLLI (Temporary Logical Link Identity) :

C'est l'quivalent du TMSI pour GSM-C. Il est ncessaire de disposer d'un identiant supplmentaire du mobile dans le rseau parce que le mobile peut tre la fois actif en GPRS et en GSM-C. C'est pour cela qu'on n'utilise pas le TMSI pour les deux services et qu'on a cr le P-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.

1.3.6 La pile de protocoles gre par la MSEn fait, dans GPRS, une MS ne gre pas une mais des piles de protocoles situs dans deux plans dirents : le plan de signalisation et le plan de transmission. Le plan de transmission sert transfrer toutes les donnes utilisateurs. Le plan de signalisation sert quant lui assurer la gestion de la mobilit (MM : Mobility Management), mais aussi la transmission de messages courts. Mais en fait, seul les sommets de ces deux piles dirent. Dans le plan de signalisation on trouve au sommet la couche GMM (GPRS Mobility Management) surmonte des couches SM (Session Management) et GSMS (GPRS SMS). Dans le plan de transmission, on trouve au sommet de la pile le protocole SNDCP surmont de dirents PDP (Packet Data Protocol). On trouvera une illustration de ces deux piles aux gures 1.6 et 1.7.

couche physiqueLa 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 RLCLe 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

Pour rappel dans GSM-C on utilise des multitrames 26 et 51

1.3.

GPRS

29

Fig.

1.6 Pile de protocoles dans le plan de donnesSM GSMS GMM

SM

GSMS GMM

LLC LLC RELAY RLC MAC Physical Layer RLC MAC Physical Layer

LLC

Terminal MobileFig.

Station de base

SGSN

1.7 Pile de protocoles dans le plan de signalisation

30

CHAPITRE 1.

INTRODUCTION GSM ET GPRS

couche MACLe 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 LLCLe 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 SNDCPSNDCP 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 GMMLa 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

pour le moment, seule la compression des en-ttes IP est dnie Si GSM-C et GPRS cohabitent, une RA est forcment un sous-ensemble d'une zone de localisation

1.4.

CONCLUSION

31

Couche SMLa 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 : le type de rseau utilis (X.25, IP...) l'adresse PDP du mobile(adresse IP par exemple) l'adresse IP du SGSN grant la cellule o se trouve l'abonn le point d'accs au service rseau utilis (NSAPI, Network Service Access Point) la qualit de service ngocie

Un abonnement GPRS contient la souscription d'une ou plusieurs adresses PDP. Chaque adresse PDP, s'il elle est actuellement en usage, est dcrite par un contexte PDP individuel dans la MS, dans le SGSN et dans le GGSN . Chaque contexte PDP peut tre individuellement actif ou inactif. Les adresses PDP peuvent tre alloues dynamiquement ou statiquement. Dans le cas dynamique, ce peut-tre le rseau o l'abonn a souscrit l'abonnement qui va attribuer l'adresse ou ce peut tre un autre rseau auquel le mobile est attach pour le moment.

1.3.7 Canaux logiquesLa notion de canal logique perd beaucoup de son sens dans GPRS, comme on l'expliquera au chapitre 4. Seuls les canaux communs gardent un certain sens. Ils sont trs semblables ceux de GSM-C. D'ailleurs l'utilisation des canaux communs spciques GPRS est facultative. Il est possible de n'utiliser que les canaux GSM-C pour la signalisation et les accs alatoires.

1.4 ConclusionLa 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.

INTRODUCTION GSM ET GPRS

Chapitre 2

Portage et amlioration d'un logiciel d'illustration des protocoles de GSM sur la voie radioment 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. Dans ce chapitre, nous dcrirons la partie GSM du projet : J-GSM Show(Java-GSM Show). Il s'agit d'un logiciel d'illustration du fonctionnement du systme GSM et notam-

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.

ARCHITECTURE

35

2.2

Architecture

2.2.1 PrambuleDans 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.

2.2.2 Objectifs et solutionsLes objectifs atteindre lors de la conception de ce programme taient triples : Faciliter autant que possible l'intgration de nouveaux composants permettant l'utilisation de mobiles de trace non prvus l'origine. Etant donn que plusieurs marques proposent des mobiles de trace aux capacits trs semblables, il a sembl judicieux de prvoir ds le dbut la possibilit de l'utilisation d'autres mobiles que l'Orbitel dont on disposait l'origine. Faciliter autant que possible l'ajout de nouveaux crans illustrant d'autres parties des protocoles GSM(par exemple GPRS). S'assurer de la totale indpendance des dirents crans, de faons ce qu'on puisse toujours en utiliser un indpendamment d'un autre. Pour grer plusieurs mobiles de faon transparente, on a utilis une classe abstraite :

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

Mesures de puissance

Trames GSM

Mobile de trace

"Trame Srie"

En-Tte spcifique au mobile

Trames GSM

J-GSM Show

Liaison Srie En-Tte spcifique au mobile

ou Rapport de mesures

"Trame Srie"

Fig.

2.1 Trames, trames srie et rapports

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.

2.2.3 Prsentation GnraleLe logiciel s'articule principalement autour d'une classe : IHM. C'est cette classe qu'il faut excuter pour lancer le programme et c'est partir d'elle que toutes les autres sont utilises. Elle comprend la dnition de tous les lments interactifs de l'interface et, dans la mthode ActionPerformed(...), le coeur du programme : pour chaque action de l'utilisateur (clic sur un menu en gnral), c'est l qu'est enclenche la raction du programme. La liaison srie est gre par la classe PortManager. Via les mthodes de cette classe, on peut ouvrir le port, xer ses paramtres (baudrate, bits de parit...) et le fermer. La gestion du port srie utilise la package commapi que l'on peut trouver sur le site de Sun [SM01]. Une instance de la classe FlowParser segmente le ux d'octets qu'on capte ensuite sur le port. Cette instance gre la partie du protocole propre au mobile relative aux limites d'une trame srie. La classe FlowParser est donc abstraite et peut tre instancie par plusieurs classes direntes dont l'implmentation dpend du mobile utilis. On a dcrit un mcanisme identique, utilis pour la classe MobileManager, au point 2.2.2. La classe MobileManager est abstraite. Les classes concrtes qui l'implmentent doivent permettre de lancer la communication avec le mobile, de l'arrter et de traiter les trames sries qui lui sont transmises pour dcodage. Aprs traitement, une instance de MobileManager provoquera la cration d'un vnement par le Dispatcher via les mthodes reRap-

38

CHAPITRE 2.

PORTAGE ET AMLIORATION

portEvent(Rapport r) et reTrameEvent(Trame t) de ce dernier. Les direntes instances possible de MobileManager vont toujours remplir la mme fonction : dcoder l'en-tte

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.

ARCHITECTURE

39

Structure de trame : Type String int int int boolean boolean int

Nom du Champ heure direction frequence channel incomplet repetition ns

int int int int int int int int[] String String

decompteur couche_L3 transaction_ID longueur pt_debut_L2 pt_debut_L3 pt_contenu_L3 contenu message nom_L3Tab.

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)

2.1 Les champs de la classe Trame

40

SagemGPRSFlowParser PortManager FlowParser IHM

public void parse(int newData) public void setPrintWriter(PrintWriter pw) public void ActionPerformed(ActionEvent e) public final static void main(String[] args)

OrbitelFlowParser

public void parse(int newData) public void setPrintWriter(PrintWriter pw)

public void openPort() public void closePort() public void setPortParameters(SerialParameters sp) public pipedReader getReader() public void writeToPort(Strin message) public void setFlowParser(FlowParser fp)

Fig.TrameFileSender OrbitelManager MobileManager public void startReading() public void stopReading() public void setPortManager(PortManager pm) public void setDispatcher(Dispatcher d) public void startReading() public void stopReading() public void setPortManager(PortManager pm) public void setDispatcher(Dispatcher d) public void setDispatcher(Dispatcher d) public void readNext() public void readTempo() public void stopReadTempo() public void close() SagemGPRSManager public void startReading() public void stopReading() public void setPortManager(PortManager pm) public void setDispatcher(Dispatcher d) Dispatcher public void addTrameListener(TrameListener tl) public void addRapportListener(RapportListener rl) public void fireTrameEvent(Trame t) public void fireRapportEvent(Rapport r) public void removerTrameListener(TrameListener tl) public void removeRapportListener(RapportListener rl) TrameEvent TempFileWriter Fentre x public Trame getTrame() public Object getSource() public void processTrame(TrameEvent te) public void processRapport(RapportEvent re) public void processTrame(TrameEvent te) public void processRapport(RapportEvent re) RapportEvent public Rapport getRapport() public Object getSource() TrameListener RapportListener public void processTrame(TrameEvent te) public void processRapport(RapportEvent re)

public void parse(int newData) public void setPrintWriter(PrintWriter pw)

Interpreter

public void interprete(Trame t)

CHAPITRE 2.

2.2 Diagramme UML des classes du noyau du programme

PORTAGE ET AMLIORATION

2.2.

ARCHITECTURE

41 Nom du Champ bande BSIC etat freq_vois) frequence Niv_Puiss RX_Level RX_Level_cour RX_Qual_cour TA_Reel 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

Structure de Rapport : Type int int[] int int[] int int int[] int int int

Tab.

2.2 Les champs de la classe Rapport

2.2.4 Diagramme de classesLe schma de la gure 2.2 n'est pas exhaustif, il est simplement destin comprendre l'architecture gnrale du programme1 . Le rle de chaque classe : - IHM La classe dont la mthode main() est appele au lancement. Cette classe gre toute l'interaction avec l'utilisateur. - PortManager Permet de congurer la liaison srie et de lancer la rception du ux d'octets sur le port choisi. Ce ux est ensuite segment en messages par une instance de la classe abstraite FlowParser. Ensuite, ces messages sont mis disposition dans un tampon que l'on peut obtenir en utilisant la mthode getReader(). De plus, on peut mettre des chanes de caractre sur la liaison srie via la mthode writeToPort() 2 . - FlowParser Classe abstraite dont les instances concrtes doivent tre capables de segmenter un ux d'octets en trames srie. La classe va accumuler les octets dans un tampon jusqu' obtenir une trame srie complte et va alors crire cette trame dans un tampon o un autre composant pourra la rcuprer. - SagemGPRSFlowParser Une des implmentations particulires de FlowParser. Elle segmente le ux de donnes transmis par un mobile Sagem de modle OT96MGPRS. Le protocole utilis utilise des ags et un champs longueur pour dlimiter les trames et permet un contrle de validit par un CRC sur les trames sries. - OrbitelFlowParserPour 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 mcanisme2 1

42

CHAPITRE 2.

PORTAGE ET AMLIORATION

-

Une des implmentations particulires de FlowParser. Elle segmente le ux de donnes transmis par un mobile Orbitel de trace. Le mobile en question spare les trames sries par des CR/LF's. La segmentation est donc particulirement simple.

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

Une des implmentations particulires de MobileManager.

Une des implmentations particulires de MobileManager. Permet d'ajouter ou d'enlever dynamiquement des TrameListener ou des RapportListener. Isole la source (MobileManager ou TrameFileSender) des receveurs. Devrait augmenter la rutilisabilit du code.

-

TrameFileSender

-

TrameListener

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

RapportListener TempFileWriter

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

Une des nombreuses fentres qui peut traiter les TrameEvent.

2.3.

EXEMPLE D'UTILISATION

43

2.3

Exemple d'utilisation

La gure 2.3 reprsente une saisie d'cran de JGSM-Show en cours de fonctionnement. L'utilisateur y a activ quatre crans : les traces brutes dans le quadrant suprieur gauche, les primitives de niveau 2 dans le quadrant suprieur droit, les primitives de niveau 3 dans le quadrant infrieur gauche et les frquences, niveaux de rception et codes de couleur dans le quadrant infrieur droit. Dans le quadrant suprieur gauche, l'utilisateur peut visualiser directement les trames sries, en ce compris l'en-tte ajoute par le mobile. A titre d'exemple, la gure 2.3 reprsente des traces mises par le mobile Orbitel. Dans le quadrant suprieur droit, on peut visualiser un change de primitives de niveau 2 entre le mobile et le rseau. Cette fentre permet d'observer en direct le fonctionnement du protocole LAPDm. La reprsentation d'une primitive s'articule autour d'une che indiquant le sens de transmission, qui peut tre montant, c.--d. de la MS la BTS ou descendant, de la BTS la MS. Le nom et les dirents paramtres de la primitive sont inscrits au dessus de la primitive. Si la primitive sert transporter des donnes, cellesci s'achent en dessous de la che. Dans la gure 2.3, on peut par exemple observer le mcanisme de fentre glissante utilise par le protocole pour les acquittements multiples. Le numro N(R) de la premire primitive indique quelle trame le mobile attend. Sa valeur est de 3. Ensuite, la BTS transmet une trame portant ce numro. Et par consquent, comme cette transmission s'est eectue sans problme, on peut voir que la primitive suivante transmise par la MS transporte un numro N(R) de valeur 4, c.--d. augment d'une unit. Dans le quadrant infrieur gauche, l'utilisateur peut observer un change de primitives de niveau 3. Le programme reprsente ces primitives de la mme faon que celles de niveau 2. Dans la gure 2.3 on peut observer le mcanisme de handover. Le rseau ordonne au mobile par la deuxime primitive ache l'cran, HANDOVER_COMMAND, de se caler sur une autre frquence. Les paramtres exacts de cette opration sont transmis dans les donnes inscrites en dessous de la primitive. Lorsque le mobile a ni, il transmet la BTS le message HANDOVER_COMPLETE. Dans le quadrant infrieur droit, on peut observer les frquences de la BTS courante et de maximum 6 autres BTS, les mieux reues par le mobile parmi celles appartenant un rseau GSM qu'il a l'autorisation d'utiliser. Pour chaque BTS on peut observer la qualit de rception correspondante. En gnral, la meilleure rception correspond la BTS courante. Dans le cas du HANDOVER voqu au paragraphe prcdent on pourra observer dans cet cran un changement de frquence pour la BTS courante. A droite de cette liste, le programme ache quelques paramtres de la communication en cours : puissance de transmission du mobile, avance en temps ...

44

CHAPITRE 2.

PORTAGE ET AMLIORATION

Fig.

2.3 JGSM-Show en plein fonctionnement

2.4.

CONCLUSION

45

2.4 ConclusionIl 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.13.1 IntroductionA 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

CHAPITRE 3.

LE COMPILATEUR CSN.1

3.2

CSN.1

3.2.1 DnitionCSN.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|000reprsente 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|11dnote le mme ensemble que :

{ 00 } | { 11 }mais pas le mme que :

0 {0|1} 1Les caractres '' 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.

CSN.1

49

sont permis, en ce compris les espaces tabulations et retour la ligne. Une rfrence suivie de la squence de caractres ' : :=' suivi d'une description, le tout suivi d'un point-virgule dnote l'association de la rfrence avec la description. Par exemple,

::=1|0;associe la rfrence la description 1|0. 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 :

La squence de caractres 'null' dnote un ensemble vide. Une chane de caractre plac entre parenthses, '(' et ')' reprsente un exposant. CSN.1 permet de placer en exposant une variable dont la valeur dpendra d'une proprit d'une squence particulire de l'ensemble dcrit. Par exemple :

::= ;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()

La fonction len() prend en entre une squence de bits et en renvoie le nombre de bits. Exemples : len(1000) = 4

len(010) = 3CSN1. prvoit aussi la possibilit de pratiquer les oprations arithmtiques courantes +, -, *, div et mod sur les valeur de ces fonctions. Exemple :

::= ;

50N de bit : 1 2 3 4

CHAPITRE 3.

LE COMPILATEUR CSN.1

5

6

7

8

CHAMPS 1

CHAMPS 2

DONNEES

BIT MORE

NOMBRE

DONNEES SUP

Champs prsent si le bit more vaut 1

...DONNEES SUP

NOMBRE occurences du champs DONNEES SUP

Fig.

3.1 Une reprsentation classique d'un format de message binaire.

La squence de caractres '' indique le dbut d'un commentaire. Il se termine avec le premier retour la ligne. Finalement le caractre ' !' peut remplacer le caractre '|' quand les choix droite du ' !' reprsentent des erreurs possibles dans le message. Ces deux symboles s'quivalent presque. Cette construction sert principalement permettre l'analyse d'un message partiellement reu. Pour nir, voici un exemple plus complexe de description en CSN.1 :

< < < < < {

exemple de description > ::= CHAMPS 1 : bit(2)> CHAMPS 2 :bit(6)> DONNEES : bit(7)> BIT MORE : bit> { -- commentaire

};

} * (val(BIT MORE))

Le format de message binaire dni la gure 3.1 est exactement quivalent cette description CSN.1.

3.2.

CSN.1

51

3.2.2

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 :

0|1 Elle reste trs lisible contrairement aux reprsentations classiques qui demandaient de rajouter des commentaires en annexe aux schmas. De plus,CSN.1 permet la description de protocoles trs complexes tout en restant relativement lisible. La description d'un protocole aussi complexe que RLC/MAC n'aurait pas t possible sans une telle notation1 . Enn, CSN.1 permet de donner des noms des parties de squences de bits correctement encodes. Ceci permet de dnir plus facilement la smantique de la squence, c.--d. l'interprtation du message. Mais CSN.1 prsente aussi certains inconvnients. Tout d'abord, CSN.1 induit gnralement un dcodage squentiel des messages. En effet, un programme de dcodage ne peut souvent dterminer l'emplacement d'un champs qu'aprs avoir parcouru toute la squence qui le prcde. Ensuite, CSN.1 permet d'crire des descriptions diciles compiler. Par exemple, des descriptions rcursives gauches :

::= bit | bit;

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 Ralisation du compilateur3.3.1 Raisons de ce travailPour arriver dcoder les paquets RLC/MAC tracs par le mobile de trace, rdiger un programme " la main" apparaissait impensable, tant donn le nombre prohibitif de cas. Tout d'abord, nous avons pens utiliser un compilateur prexistant, YCSN de la socit Arguin Communications. Ce programme, rdig en C et gnrant du C satisfait priori tous les besoins de GPRS-SHOW, si ce n'est la portabilit. Mais au nal, les ngociations en vue d'obtenir une licence gratuite des ns acadmiques en sont restes au point mort. De plus l'incorporation de code propritaire pourrait nuire d'ventuelles diusions du programme. En sus, un dveloppement par nos soins du compilateur prsentaient quelques avantages. Tout d'abord, il permettait une ralisation en Java de manire prserver la portabilit du programme. Ensuite, il facilitait l'adaptation du dcodeur aux besoins exacts de GPRSShow et nous orait une meilleure matrise de son fonctionnement. Toutes ces raisons ont concouru nous dcider malgr la relative ampleur du projet.

3.3.2 Un peu de thorie des compilateursUn compilateur est un programme qui prend en entre un programme crit dans un langage de programmation (le langage source) et produit comme rsultat un programme dans un autre langage. Fondamentalement, il s'agit d'un traducteur automatique. Le fonctionnement d'un compilateur se dcoupe gnralement en plusieurs phases. Une phase est une opration cohrente qui prend en entre une reprsentation du programme source et produit comme rsultat une autre reprsentation. Nous ne nous intresserons qu'aux deux premires phases classiques : l'analyse lexicale et l'analyse syntaxique. L'analyse lexicale dcoupe la squence de caractres qui constitue le programme source en une squence d'units atomiques appeles tokens. Chaque token reprsente une squence de caractres qui peut tre traite comme une seule entit logique, par exemple un identiant ou un oprateur. L'analyse syntaxique a deux fonctions : premirement elle vrie que les tokens apparaissant en entre, qui rsultent de l'analyse lexicale, se prsentent dans des congurations permises par la spcication du langage source. Secondement, elle impose aux tokens une structure en arbre, habituellement utilise par les phases suivantes du compilateur. (Voir exemple la gure 3.2)

3.3.

RALISATION DU COMPILATEUR

53

expression

expression expression AFig.

expression

expression / B C

*

3.2 Exemple d'arbre syntaxique

Gnralement aprs ces deux phases, le compilateur procde la gnration du code et son optimisation. Nous ne parlerons pas de ces deux phases parce que le compilateur qui nous intresse ici ne les eectue pas. La frquence des problmes de compilation a incit la cration d'outils d'aide la construction de compilateurs. On parlera tout d'abord des gnrateurs d'analyseurs lexicaux, tels que LEX. A partir de la spcication de tokens sous la forme d'une liste d'expressions rgulires, de tels outils gnrent l'analyseur lexical correspondant, aussi appel "lexeur". La notation appele "expressions rgulires" permet de dnir des ensembles de chanes de caractres. Pour la thorie de cette notation, nous conseillons au lecteur de s'en rfrer [AU79]. Nous pensons cette notation assez intuitive pour ne pas demander de plus longue explication. Voici un exemple d'expression rgulire :

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

grammaire non-contextuelle, de tels outils gnrent l'analyseur syntaxique correspondant, appel "parseur". La notation appele "grammaire non-contextuelle" ou galement BNF (Backus-NaurForm) permet de dnir des ensembles de chanes de tokens considres comme valides. Ici aussi, pour la thorie, nous renvoyons [AU79]. Voici un exemple de grammaire noncontextuelle :

expression ::= | | terme ::= | |

expression PLUS terme expression MOINS terme terme; terme FOIS ENTIER terme DIV ENTIER ENTIER;

Cette grammaire dcrit un ensemble d'expression arithmthique ne comprenant que des entiers et les oprateurs d'addition, de soustraction, de multiplication, de division. On trouve da