szakdolgozatmidra.uni-miskolc.hu/document/16341/9102.pdfszakdolgozat előző részeiben tárgyalt...
TRANSCRIPT
Miskolci Egyetem
Gépészmérnöki és Informatikai Kar
Általános Informatikai Tanszék
3G hálózatok kialakulása, működése és tesztelése
SZAKDOLGOZAT
Tőzsér Attila
AR4QX8
3712, Sajóvámos, Dózsa Gy. u. 27.
Mobil távközlési hálózatok kialakulása, működése és tesztelése
2
Tartalomjegyzék
Bevezetés .............................................................................................................................................. 3
1. A mobil távközlés fejlődéstörténete ............................................................................................ 4
1.1 A 0. (0G) és az első generációs (1G) mobil hálózat ............................................................. 6
1.2 A második generációs (2G) mobil hálózat .............................................................................. 7
1.2.1 A GSM hálózat története és felépítése ........................................................................... 9
1.2.2 Cellás rendszerek ........................................................................................................... 12
1.3 A 2.5 G mobil hálózat .............................................................................................................. 15
1.3.1 A HSCSD hálózat ............................................................................................................. 15
1.3.2 A GPRS hálózat felépítése .............................................................................................. 16
1.4 A harmadik generációs (3G) mobil hálózat .......................................................................... 18
1.4.1 Az UMTS hálózat kialakulása és felépítése .................................................................. 19
1.5 A negyedik generációs (4G) hálózatok megjelenése .......................................................... 22
2. Egy 3G hálózat minőségét tesztelő alkalmazás bemutatása ............................................... 24
2.1 Asynctask .................................................................................................................................. 30
2.2 Megjelenítés listán ................................................................................................................... 34
2.3 Adatok átadása két Activity között ......................................................................................... 36
2.4 A mért adatok mentése ........................................................................................................... 37
2.5 A mért adatok törlése .............................................................................................................. 40
2.6 A felhasználói felület / design ................................................................................................. 40
2.7 Az alkalmazás tesztelése ........................................................................................................ 41
3. Összegzés ................................................................................................................................... 45
4. Summary...................................................................................................................................... 46
5. Irodalomjegyzék .......................................................................................................................... 47
Mobil távközlési hálózatok kialakulása, működése és tesztelése
3
Bevezetés
Szakdolgozatom részletesen szemlélteti a különböző mobil kommunikációs
rendszerek kialakulását, azok jellemzőit. A mobil telefonokkal kapcsolatban gyakran
hallunk a generációkról. A kapható mobiltelefonok többsége már rendelkezik 3G-vel,
de találhatunk a piacon 4G-s készülékeket is. Dolgozatom célja, hogy bemutassam a
mobil kommunikációs hálózatok generációs fejlődését, kielemezve azok
tulajdonságait, funkcióbeli működéseit.
A legutolsó témaköre szakdolgozatomnak, egy olyan önálló 3G hálózat tesztelő mobil
alkalmazás készítése, és a készítés menetének bemutatása, magyarázása, ami a
szakdolgozat előző részeiben tárgyalt telekommunikációs hálózatok valamelyikét
felhasználva, egy adott szerver elérési idejét, csomagveszteségét és más egyéb
paramétereket, információkat ad vissza.
Mobil távközlési hálózatok kialakulása, működése és tesztelése
4
1. A mobil távközlés fejlődéstörténete
A mobil távközlés egy olyan gyűjtőfogalom, ami különböző felhasználói igények
számára kifejlesztett, és így a különböző szolgáltatásokat biztosító mobil rendszerek
összefoglaló elnevezése. Közös jellemzői közé soroljuk, hogy habár különböző
mértékben, de mobilitást biztosítanak a felhasználók számára. A különböző
szolgáltatások nyújtására megtervezett távközlési rendszerek a következő
kategóriákba sorolhatók be:
PLMN (Public Land Mobile Network), vagy más néven Nyilvános Földi Mobil
Hálózatok. Több egyéb rendszer mellett a GSM is ebbe a kategóriába tartozik.
Egy olyan cellás ellátáson alapuló rendszer, melynek szolgáltatási területén a
cellákat úgy alakítják ki, hogy közben figyelembe veszik a föld feletti
hullámterjedési tulajdonságokat. Az ilyen rendszerek tehát fejlett távközlési
szolgáltatásokat nyújtanak, valamint hozzáférést biztosítanak a PSTN
(Nyilvános Kapcsolt Telefonhálózat)-hez. Ide tartozik például a zsinór nélküli
telefonrendszer is. A PLMN kategóriába olyan szolgáltatások tartoznak,
amelyet egy átlagember egy szerződés után használni tud. A három legfőbb
hazai szolgáltató is ebbe a kategóriába tartozik.
DLMN, vagy más néven Zárt Célú Földi Mobil Hálózatok. Olyan
magánhálózatok, amik többnyire üzleti felhasználók számára készülnek.
Ezeknél a hálózatoknál a kommunikáció a bázisállomások és a mobilok,
valamint a mobilok csoportjai között történik. Mind beszéd, mind adatátvitelre
alkalmas, viszont a beszédátvitel, szimplex átvitelre korlátozódik. Ilyen ismert
rendszer például a TETRA és az MDTS is. A DLMN rendszer legfőbb
ismertetőjele, hogy a hálózatot, csak az arra jogosultak használhatják.
Személyhívó rendszerek – a hívott személy felé biztosítanak egy irányú
kommunikációt. A rendszer működési elve a szelektív hívás. Az átvitt
információ többnyire valamilyen adat. Használtuk mára nagymértékben
Mobil távközlési hálózatok kialakulása, működése és tesztelése
5
lecsökkent. A személyhívók általában valamilyen fény vagy hangjelzést adnak
ki, miközben numerikus vagy alfanumerikus információkat jeleznek ki.
Műholdas távközlési rendszerek – A földi hálózatokhoz hasonló
szolgáltatásokat nyújtják (pl.: telefonszolgáltatás, adatátvitel, rádió- és televízió
műsorszórás, helymeghatározás stb.). A legfontosabb különbség viszont az,
hogy itt műholdakat használnak. Az ilyen rendszereknek az előnye, hogy a
térerő a domborzati viszonyoktól független, mivel a jel az égből érkezik. Ebből
következik a hátránya is: a kapcsolat egyből megszűnik, amint a készülék nem
látja az eget. A rendszer használata viszonylag drága.
1. ábra – a Földi Mobil Hálózatok áttekintése
Mobil távközlési hálózatok kialakulása, működése és tesztelése
6
A mobil távközlés helye a telekommunikációban
A telekommunikáció alapvető kategóriái közé soroljuk a különféle technológiákra
támaszkodó hang- és adatátviteli eljárásokat. Ilyen például a mobiltelefon, az internet,
a média stb. A különböző kutatómunkák és fejlesztések következményeképpen
rengeteg területen alakult ki átfedés az egyes kategóriák között. Az eredménye a
kompatibilitás lett, ami később az addigi technológiák kiszorításához vezetett. A
telekommunikáció az elmúlt pár évtizedben rengeteg fejlődésen ment keresztül. Ha a
történelemben visszatekintünk, akkor láthatjuk, hogy jó pár évvel ezelőtt még
azoknak az országoknak az aránya volt nagyobb, akik nem rendelkeztek kiépült
hálózatokkal és előfizetői bázissal.
A következőkben ezt az ugrásszerű fejlődést szeretném ismertetni, az egyes
korszakok technológiájának lényegét bemutatva.
Az első mobil rendszer üzembe helyezése 1946-ban történt az USA-ban. A széles
körben való elterjedést azonban a mikroprocesszorok fejlődésének és az elektronikus
eszközök integrálásának eredményeképpen, az 1980-as években létrejött,
úgynevezett első generációs (1G) rendszerek hozták.
1.1 A 0. (0G) és az első generációs (1G) mobil hálózat
[1] A Bell Systems már 1946-tól üzemeltetett rádiós mobiltelefon-rendszert. A 0G
hálózatba több hasonló rendszer is létezett. Ezeknek közös tulajdonsága volt, hogy a
korábban használt zárt rádiós hálózatoktól eltérő módon, ezek már külső személyek
számára is elérhető volt. A többsége gyakran kapcsolódott a már meglévő
telefonhálózatokhoz. A felhasználóknak volt saját telefonszámuk is.
Az első generációs hálózatok üzemeltetését az 1980-as években kezdték el. Ezek
mindegyike analóg rendszer volt. A különbség a 0G hálózathoz képest, hogy ezek
már jóval több csatornát használtak, támogatták a felhasználók számára
észrevehetetlen automatikus cellaváltást, valamint tervezésükből adódóan
kapcsolhatók voltak vezetékes telefonhálózathoz. Az USA-ban leginkább az AMPS
Mobil távközlési hálózatok kialakulása, működése és tesztelése
7
(Advanced Mobile Phone System) terjedt el. Ezzel szemben Európában az NMT
(Nordic Mobile Telephony) jutott nagyobb szerephez. Az NMT szolgáltatás mind a
roamingot, mind pedig a számlázást támogatta. A legnagyobb hátránya viszont a
lehallgathatóság volt. Ennek oka az volt, hogy az NMT kezdeti változata nem írt elő
semmiféle titkosítást a beszédátvitelre. Legfőképp beszédátvitelre szolgáltak ezek a
rendszerek, de lehetőség volt adatátvitelre is. Biztosítva volt két NMT készülék közötti
üzenetváltás a DMS (Data and Messaging Service) révén. Sokáig párhuzamosan
működtek a 2G hálózatokkal, de mára a rendszerek legtöbbje leállításra került.
1.2 A második generációs (2G) mobil hálózat
Ez a rendszer nem tartalmaz nemzetközi szabványosítást, teljesen digitális elven
működik.
Personal Communication System (PCS)-nek is nevezik a mobilkommunikáció ezen
generációját. Ez eredetileg 1900 MHz-en működő mobilt jelent. Ennek a
generációnak 4 fő rendszere van, amiket röviden szeretnék ismertetni, mert úgy
gondolom, hogy fontos tudni róluk némi információt ahhoz, hogy megértsük a 3G
kialakulását, valamint a viszonylag új, 2006-ban megjelent 4G szolgáltatások
jelenlétét a piacon.
Az első rendszer az AMPS rendszer második generációja, a D-AMPS (digitális fejlett
mobiltelefon-rendszer) elnevezést kapta. A létrejöttének az oka az volt, hogy
szerettek volna egy olyan rendszert létrehozni, ami párhuzamosan tud működni, egy
cellában, az első és második generációs mobiltelefonok esetében. Ebből következik
az a tény is, hogy ugyanolyan 30 kHz-es csatornákat használ, ugyanazokon a
frekvenciákon, mint az AMPS.
Az MTSO a jelen lévő telefonok arányát figyelembe véve dönti azt el, hogy melyik
csatornán analóg, és melyiken digitális a jeltovábbítás, majd ennek függvényében
Mobil távközlési hálózatok kialakulása, működése és tesztelése
8
tudja változtatni dinamikusan a csatornák típusát. Az esetleges forgalomnövekedés
kiküszöbölése érdekében a feltöltési csatornák 1850-1910 MHz közöttiek, a letöltési
csatornák pedig 1930-1990 MHz közöttiek. A hullámhosszuk 16 cm, aminek hatására
a telefonok kisebbek lehetnek. A D-AMPS rendszer telefonjai képesek a 850-1990
MHz-es tartományokat is kezelni/használni. Azt a beszédjelet, amit a mikrofon vesz
fel, tudják digitalizálni és tömöríteni, egy úgynevezett vokóder nevű áramkör
segítségével. Mivel a tömörítés a telefonban történik, ezért a rendszerben 3 külön
felhasználó tud megosztani egy frekvenciapárt időosztásos multiplexeléssel. Egy kis
matematika:
Frekvenciapáronként 25 keret vívődik át másodpercenként, amik egyenként 40
msec hosszúak
Minden keret 6-6,67 msec időszeletre oszlik, amelyet 3 felhasználó oszt meg
Minden időszelet 324 bit hosszú (ebből 64 bit védőidő, szinkronizáció és
vezérlés, 260 bit az adatok tárolására szolgál)
A 260-ból 101 bit elhasználódik a zajos csatorna javítására, viszont 159
megmarad a tömörített beszédnek
Ebből nagyon jól látszik, hogy 3-6-szor annyi felhasználót lehet ugyanabba a
sávszélességbe sűríteni, mint egyetlen AMPS-be.
Ami a hátránya lehet a rendszernek, hogy bonyolult vezérlési szerkezettel
rendelkezik, 6 fő vezérlési csatorna használatával:
- Rendszerbeállítás
- Valós idejű vezérlés
- Nem valós idejű vezérlés
- Hívás
- Hozzáférési válasz
- Rövid üzenetek
Míg a D-AMPS rendszer leginkább az USA-ban és Japánban terjedt el, addig a világ
összes többi részén a GSM technológiát alkalmazzák.
Mobil távközlési hálózatok kialakulása, működése és tesztelése
9
1.2.1 A GSM hálózat története és felépítése
1982-ben a CEPT (Európai Országok Postai és Távközlési Szervezeteinek
Konferenciája) létrehozzott egy nemzetközi szakértői csoportot azzal a céllal, hogy
egy egységes európai mobil telefonrendszer szabványait megalkossák. Ennek a
csoportnak a neve a Group Spécial Mobile (GSM) lett. A GSM nagyon gyorsan
fejlődött, így hamar kinőtte Európát és az egész világra kiterjedő hálózat lett. Emiatt a
GSM megnevezés innentől a Global System For Mobile Communication lett. 1984-
ben lefektették azt a 3 pontot, aminek egy GSM hálózat meg kell, hogy feleljen:
Rádió interface
Adás-vétel, és jeltovábbítási protokollok
Interface és hálózati architektúra
1985-ben és 1986-ban azon fáradozott a szakértői csoport, hogy kidolgozzák a GSM
rendszer paramétereit és azok megvalósítási lehetőségeit. A legfőbb cél a lehető
legjobb adás-vétel típus megalkotása, majd ebből egy működő prototípus létrehozás
volt.
1987-ben egy úgy nevezett MoU nyilatkozat aláírásával, 13 különböző ország értett
egyet a digitális rendszer kidolgozásával. Megszülettek az első szerződések az egyes
országok között olyan céllal, hogy egymás előfizetőit kiszolgálhassák (roaming
szolgáltatás), így a rendszer valóban európai léptékű lett.
A GSM rendszer előnyei:
nagyon gazdaságos frekvencia kihasználás
magas adatbiztonság
nemzetközi roaming szolgáltatás
a világra kiterjedő szabványok használata
rugalmasság, valamint olcsó rendszertechnika és készülékek
a rendszer felépítése az ISO OSI 7 rétegű referencia modellen alapszik
Mobil távközlési hálózatok kialakulása, működése és tesztelése
10
Egy GSM hálózat felépítése a következőképpen néz ki:
2. ábra – A GSM rendszer kulcs elemei, felépítése
[2] A GSM hálózat szétosztható több részre. Az előfizetői oldalon található az MS
(Mobile Station), ami tartalmazza a telefon készüléket (ME – Mobile Equipment),
valamint a SIM-et, ami az előfizetőre vonatkozó szolgáltatási adatokat tárolja,
valamint biztonsági funkciókat lát el. Az MS-el való rádiókapcsolat fenntartását a BSS
(Base Station Subsystem) biztosítja. Majd legutolsósorban az MSC (Mobile Switching
Centre) feladata a mobil állomások között kapcsolatnak a létrehozása, azok
fenntartása, majd legvégül lebontása. A BSS két fő részre bontható: a BTS-re és a
BSC-re. A BTS (Bázis adó-vevő állomás) közvetlen rádiókapcsolatban van az MS-el,
valamint itt található a rádióantenna is. Vele szemben támasztott követelmény, hogy
könnyen kezelhető és megbízható legyen, valamint a könnyen szállíthatóság sem
utolsó szempont. Ennek az az oka, hogy egy BTS viszonylag kis területet fed le (pl.:
egy kis település 3000 lakosságához elég egy db belőle). Ha egy szolgáltató egy
kisebb országot szeretne lefedni, akkor mindenképpen több BTS-re lesz szüksége.
Emiatt egy másik fő kritérium az alacsony költség is. A BSC, vagy más nevén Bázis
Mobil távközlési hálózatok kialakulása, működése és tesztelése
11
Állomás Vezérlő, a rádiócsatorna felépítéséért, valamint a frekvenciaugrásokért
felelős. Ő biztosítja a kapcsolatot az MS és az NSS között.
Az NSS (Hálózati és Kapcsoló Alrendszer) fő feladata a GSM felhasználók és az
egyéb távközlési hálózati rendszerek felhasználói közötti kommunikáció irányítása.
Továbbá az NSS teremti meg a kapcsolatot a nyilvános fix hálózatokkal, majd
továbbítja nekik a jeleket. Ilyen hálózatok pl. a PSTN, vagy az ISDN.
Az MSC a HLR és VLR regiszterek segítségével közösen szolgáltatja a hívás
útvonalát, valamint a GSM nemzetközi roaming szolgáltatásait.
A HLR (Home Location Register) az előfizetői adatok tárolására szolgál. Ilyen adatok
például: a mobil pillanatnyi helyzete, az alapvető telekommunikációs szolgáltatások
leírása, különféle korlátozások (pl. roaming), kiegészítő szolgáltatások stb.
A VLR (Visitor Location Register) szolgál a vendég felhasználók ellenőrzésére. A
mobil alábbi adatai kerülnek a VLR-be: IMSI (International Mobile Subscriber
Identity), MSISDN (Mobile Subscriber ISDN Number), Location Area Code stb.
Az MSC része még az EIR (Equipment Identity Register), vagy más nevén mobil
készülékazonosító regiszter. A készülék egyes adatait tárolja, majd csoportokba
rendezi őket IMEI számuk alapján. Ha például egy olyan készülék kísérel meg
feljelentkezést a hálózatba, ami lopás miatt le lett tiltva, akkor az EIR nem engedi
végrehajtani a csatlakozást (az IMEI szám beregisztrálása miatt).
Az ábrán látható még egy fontos része a GSM hálózatoknak, ami hierarchikus
felépítésű. Ezt OSS (Operation and Maintenance Subsystem)-nek nevezik. Két
részből áll: OMC-ből és NMC-ből.
Az OMC a hálózat állapotáról nyújt információkat, valamint különböző
rendszerparaméterek beállítására ad lehetőséget. Az NMC biztosítja a központi
felügyeletet és a hálózat menedzselést.
Mobil távközlési hálózatok kialakulása, működése és tesztelése
12
A mobil készülék az nem más, mint egy telefonkészülék és egy rádió adó-vevő
berendezés ötvözete. A bázisállomás egy állandó helyű rádió adó-vevő berendezés,
amely egyfajta átjátszóként funkcionál a kapcsolóközpont és a mobiltelefon között. A
telefonközpontok legfőbb feladata a hívási és kapcsolási feladatok ellátása. A
felügyelő rendszer, ahogy a neve is mutatja, ellenőrzi és szabályozza a teljes
rendszert.
A GSM eredetileg a 890-960 MHz-es sávra vonatkozott (GSM 900), ezért ezt
szeretném röviden ismertetni a továbbiakban.
A GSM szabvány a rendelkezésre álló teljes frekvenciasávot két 25 MHz-es részre
bontotta, és mindkettőben 124 db 200 kHz-es csatornát alakított ki. Azért van
szükség ekkora csatornákra, mert kisebb esetén áthallás lenne a beszélgető felek
között. A számokból látszik, hogy ez nagyon kevés, hiszen több millió mobiltelefont
használunk napjainkban. Valamilyen megoldást kell tehát találni. Az egyik módszer
az az, hogy statisztikát készítünk az egyszerre telefonálókról, hiszen nem mindenki
egyszerre beszél, míg a másik megoldást azt jelentheti, hogy egy csatornát többen is
használhatnak egy időben.
Az utóbbi felvetésre a megoldást az AMPS módszernél már jól megismert cellás
kialakítás adja.
1.2.2 Cellás rendszerek
A legrégebbi mobil rendszerek kedvező földrajzi helyeken kialakított, egyetlen adó-
vevő állomáson alapultak. A mobiltelefonok ezeken az adó-vevő állomáson keresztül
kommunikáltak egymással. Emiatt a szolgáltatás lekorlátozódott a bázisállomás
szolgáltatási területére. Ez később problémákat vetett fel, többek között azt, hogy a
mobiltelefonok hatótávolságát a központi állomás korlátozta, mivel nagy
frekvenciákon a rádióhullámok teljesítménysűrűsége csökken. Továbbá problémát
okoztak az átviteli út mentén lévő akadályok, amik lényeges csillapítást okoznak,
tovább csökkentve ezzel a szolgáltatási terület egyébként sem túl nagy méretét.
Mobil távközlési hálózatok kialakulása, működése és tesztelése
13
További probléma még a mobilszolgáltatások számára rendelkezésre álló
frekvenciatartomány korlátozottsága, azaz a spektrumhiány. Ezeket a problémákat a
szolgáltatók az úgy nevezett cellás rendszerek használatával küszöbölik ki, ami
lényegében nagyszámú adó-vevő bázisállomások telepítését jelenti. Ez a struktúra
nagy kiterjedésű területen nagy forgalom elérést teszi lehetővé. A kis teljesítményű
mobiltelefonok így bárhol elérhetik a rendszert, a spektrumhiány pedig elkerülhető a a
rádió erőforrások újrafelhasználásával.
3. ábra – Cellás elrendezés
Az adott cellában használt frekvenciák pár cellával odébb újra használhatóak
lesznek. Ahogy az ábra mutatja, a cellákat egymás mellett lévő hatszögeknek kell
elképzelni. Így tehát minden cellának hat szomszédja van. Egy állomás általában
három cellát szolgál ki. Annak érdekében, hogy növelje a forgalmi kapacitást, több
irányú antenna is elláthatja ezt a feladatot. Telefonálás közben a felhasználók egyik
cellából a másikba mozoghatnak, ezért fontos kritérium, hogy cellaváltás esetén ne
Mobil távközlési hálózatok kialakulása, működése és tesztelése
14
szakadjon meg a kapcsolat, így egyik cella át tudja adni a szomszédos cellának a
kapcsolatot. Ennek a folyamatnak a neve handover. Az egyes cellák azonosítására a
szolgáltatók vivőfrekvenciát alkalmaznak.
Azon frekvenciák száma, amik a cellákban kioszthatók, végesek. Egy átlagos
adótorony 8-9 km-es sugarú körben is érzékelhető marad a készülékek számára, de
leginkább csak ritkán lakott területeken helyezik el ilyen távol a tornyokat egymástól a
szolgáltatók. Sűrűbben lakott részeken, városokban ennél nagyobb cellasűrűségre
van szükség, hogy kiküszöböljék azt a hibát, hogy az összes cella egy időben
lefoglalásra kerül, így a felhasználók nem tudnak hívást kezdeményezni. Erre nagyon
jó példa lehet az év vége, amikor ugyanabban az időben próbál mindenki hívást
kezdeményezni. Ekkor egy hibaüzenet kíséretében nem fog sikerülni a hívás. Ha a
felhasználó, éppen akkor próbálkozik, amikor a másik cella felszabadult, akkor
természetesen megvalósítható a hívás. Magyarországon egyetlen elsőbbséget
élvező szám van, ami a 112-es segélyhívó. Ha bárki egy teljesen foglalt cellában
tárcsázza a segélyhívót, akkor természetesen prioritást élvez egy átlagos felhasználó
más irányú hívásával szemben.
Mobil távközlési hálózatok kialakulása, működése és tesztelése
15
1.3 A 2.5 G mobil hálózat
A bővülő adatszolgáltatás a mobil hálózatok kapacitásnövelését tette szükségessé.
Ahogy a neve is mutatja a 2.5G hálózat a 2G hálózat továbbfejlesztett változata. A
javított hardver és infrastruktúra nagyobb adatátviteli sebesség elérhetését tette
lehetővé. Ide soroljuk a következő technológiákat: HSCSD (GSM alapú), GPRS, és
az EDGE. Ezek a technológiák egy fajta átmenetet biztosítanak a GSM rendszer és a
3G között.
Szolgáltatásai
Kiváló minőségű beszédtovábbítás
Üzenetküldés (Fax, SMS stb.)
Multimédia (mozgóképek, zenelejátszás, filmek stb.)
Internet-hozzáférés (websurfing, flash oldalak)
Csoportos játékok
Távoli jelenlét (Telepresence)
Videokonferencia
Mivel a 2G rendszerek nem kimondottan alkalmasak vezeték nélküli adat-szolgáltatás
biztosítására a kis adatátviteli sebesség (10-13 kbit/s) miatt, így ezt a problémát a
2.5G és a 3G rendszerekben a HSCSD (High Speed Circuit Switched Data – 57,6
kb/s), a GPRS (General Pocket Radio System – 115 kb/s) és az UMTS (Universal
Mobil Telecom System – 2 Mb/s) hálózati technológiak, valamint az IP (Internet
Protocol) vezeték nélküli kiterjesztése hivatottak leküzdeni.
1.3.1 A HSCSD hálózat
A HSCSD egy mobiltelefon adatátviteli technológia, ami lehetővé teszi a nagy
sebességű adatátvitelt egy GSM hálózaton keresztül. Segítségével jóval gyakrabban
és könnyebben elérhető az internet, intranet, vagy esetleg más szolgáltatások,
Mobil távközlési hálózatok kialakulása, működése és tesztelése
16
amelyek adatátvitelen alapulnak. A rádicsatornák számától függően változhat az
átviteli sebesség.
1.3.2 A GPRS hálózat felépítése
4. ábra - A GPRS hálózat felépítése
A GPRS egy csomagkapcsolt, IP-alapú mobil adatátviteli technológia, amelyet GSM
és IS-136 mobiltelefonok használnak. Hasznosítási területe a WAP, SMS és MMS
mellett az internethasználat is.
[3] A vonalkapcsolt adatátvitelnek sok hátránya van. Ha megfigyelünk egy normal
telefonvonalat, ahol nincs visszaigazolásunk az adat megérkezéséről, látjuk, hogy
nehezen követhető nyomon. Ezzel szemben a TCP/IP protokoll a csomagkapcsolást
használja, azaz az információ csomagok formájában került átadásra, valamint
visszajelzés is érkezik, hogy az adott csomag célba ért-e, avagy sem. Előnyei közé
Mobil távközlési hálózatok kialakulása, működése és tesztelése
17
soroljuk többek között az igényekhez igazodó sebességet, valamint a hálózat
optimáls erőforrás kihasználását.
A fix hálózati elemek felépítése:
SGSN (Serving GPRS Support Node)
A BBS alrendszerhez kapcsolódik egy Gb interfészen keresztül. A szolgáltatási
területen található mobil készülékektől, illetve készülékekhez az adatcsomagok
kézbesítése, valamint logikai összeköttetés menedzselése az MS felé. Ezek
mellett egyéb biztonsági funkciókat is ellát.
GGSN (Gateway GPRS Support Node)
Az SGSN-től kapott adatcsomagokat megfelelő formátumra alakítja, majd
továbbítja őket a megfelelő adathálózat felé, kapcsolatot teremtve a külső IP
hálózattal, amely lehet Internet, privát internet, vagy X.25-ös hálózat is.
PCU (Packet Controll Unit)
A csomagkapcsolt adatok szétválasztása a vonalkapcsolt adattól és hangtól.
A GPRS készülékek állapotai:
IDLE
Ebben az állapotban a készülék csak a GSM hálózatra csatlakozik fel, ahol
hívásokat tud fogadni és kezdeményezni. Az SGSN számára ilyenkor a mobil
készülék helye ismeretlen.
Mobil távközlési hálózatok kialakulása, működése és tesztelése
18
STANDBY
Ebben az állapotban a készülék kapcsolatban van a GPRS hálózattal, és az
SGSN számára ismert az RA (Routing Area), azaz, hogy a készülék melyik
területen található. Adatok fogadására és küldésére a készülék nem képes.
READY
Ebben az állapotban az SGSN számára nem csak az RA ismert, hanem a
készülék elhelyezkedése is cellára pontosan. Erre azért van szükség, mert az
adatok pontos célbaérkezéséhez ez az információ elengedhetetlen. Akkor kerül
egy készülék READY állapotba, amikor épp adatot fogad vagy küld.
1.4 A harmadik generációs (3G) mobil hálózat
Napjaink egyik legelterjedtebb hálózata. Ennek segítségével és használatával az
adatok számos különféle technológiát, illetve frekvenciát használva kerülhetnek
továbbításra.
A technológia egyik fontos része a kapacitás, amely nagyban elősegíti az adatátvitel
gyorsaságát, valamint a minősége is nagyságrendekkel jobb lehet. Az elérhető
maximális adatátviteli sebesség, megfelelő lefedettség esetén, akár 2 Mb/s is lehet.
Ez az adatátviteli sebesség lehetőséget nyújt a problémamentes böngészésre is.
A első mérföldkő 2003. júniusában következett be, amikor a Hutchison
Telecommunication által elindításra került az első 3. generációs hálózat. 2005.
nyarától már Magyarországon is elérhetőek voltak a 3G szolgáltatások, az akkori T-
Mobile és Pannon hálózatában.
Mobil távközlési hálózatok kialakulása, működése és tesztelése
19
Ezen rendszerek kezdeti szabványa az UMTS és a CDMA2000 volt. A CDMA2000
leginkább az Egyesült Államokban és Japánban volt elfogadott.
1.4.1 Az UMTS hálózat kialakulása és felépítése
[4] Az ITU 1986 óta koordinálja a széleskörű beszéd és adat, valamint a multimédiás
szolgáltatásokat biztosító 3G mobil rendszerek, vagyis az IMT-2000 szabványcsalád
kidolgozását. Ennek része az UMTS is. A rövidítés (Universal Mobile Telecom
System) az egységes mobil telekommunikációs rendszer szavakat jelenti. Fontos
kiemelni az egységes szót, ugyanis a GSM rendszerek komoly kompatibilitási
gondokkal küszködtek, amit sajnos az UMTS-nek sem sikerült hiánytalanul
megoldani. Amit célul tűztek ki az új szabvány bevezetésével, az a hangminőség és
az adatátviteli sebesség javítása volt.
Az UMTS bevezetése egy komoly rendszerfejlesztést vont maga után. Az
állomásokat 3 új modullal kellett bővíteni. A következő ábra mutatja a hálózat
felépítését:
5.ábra – Az UMTS hálózat felépítése
Mobil távközlési hálózatok kialakulása, működése és tesztelése
20
A GSM hálózatot beszédátvitelre tervezték, így a rádiós hozzáférési hálózat
kódolását is ennek megfelelően alakították ki. Csomagkapcsolt adatátvitelhez
azonban ez nem optimális megoldás.
Mivel az UMTS hálózatokat beszéd és adatátvitelre is tervezték, ezért az új hálózat
megalkotását a már meglévő 2G és 3G hálózatok párhuzamos működését szem előtt
tartva kezdték el.
Ahogy az 5. ábra mutatja a hálózat felépítését:
Felhasználói készülék, UE – ami két részre bontható:
- USIM (UMTS Service Identity Module)
- ME (Mobile Equipment)
- Valamint az őket összekötő Cu interfész
UTRAN, rádiós hálózati alrendszerekre osztva (RNS)
Gyökérhálózat (CN – Core Network)
A CN-ben (Core Network) az eredeti, már meglévő elemek megmaradtak, de néhány
elem módosításra került a 3G követelményeinek megfelelően.
UTRAN
Feladata: a rádiós hozzáférés biztosítása a CN és az UE között
Elemei:
Node B:
- Bázisállomás, amely megvalósítja a rádiós interfész fizikai rétegét:
csatornakódolás és interleaving, spektrum kiterjesztés/szűkítés,
moduláció/demoduláció, sebességillesztés, mérések stb.
- Megvalósít néhány rádió erőforrás menedzsment funkciót is: pl. finomabb
(softer) handover vagy zárthurkú (close loop) teljesítményszabályozás
Mobil távközlési hálózatok kialakulása, működése és tesztelése
21
RNC (Radio Network Controller):
- Rádiós-hálózat vezérlő, amely az UMTS rádiós interfész és a maghálózat
közötti kapcsolatot biztosítja
- Vezérli a rádiós erőforrások felhasználását és a teljesítményszabályozást
- Kezeli néhány interfészen a protokoll-illesztéseket (UE-RNC, RNC-RNC)
Felhasználói készülék (User Equipment)
Mobil készülék (Mobil Equipment)
Olyan hordozható telefonkészülék, amivel bármilyen vezetékes kapcsolódás
nélkül lehetséges beszéddel, vagy egyéb módon kommunikálni. A hálózat
mellett szükséges hozzá maga a készülék (equipment), aminek segítségével
tudunk kapcsolódni a hálózathoz, így szöveges-, beszéd-és adatátvitel
egyaránt létrehozható vele. Fejlődésük rohamos volt. Eleinte több mint 1 kg-os
készülékek voltak használatban, ami a mai napra ennek töredékére csökkent.
Rengeteg funkcióval lettek ellátva, az ébresztőórától egészen a számológépig.
Ezek mellé csatlakozott az SMS, MMS, kamera, valamint az touch screen,
vagy más néven érintőképernyő. Korunk legmodernebb készülékei az
okostelefonok, amikkel a számítógép komolyabb funkcióit is ki tudjuk váltani.
USIM (UMTS SIM)
6.ábra - USIM
Mobil távközlési hálózatok kialakulása, működése és tesztelése
22
A GSM SIM kártyához hasonló funkciók, amik új jellemzőkkel vannak kiegészítve.
Egy USIM kártyával szerelt 3G-s (UMTS) készülék többek között használható
videó hívások kezdeményezésére is, feltételezve, hogy a hívási területet 3G
hálózat fedi.
CN (Core Network)
Funkciói:
Kapcsolat menedzsment: hívásvezérlés az áramkör kapcsolt domainen belül;
az MO, MT hívások felépítése, monitorozása és bontása
Viszony (session) menedzsment: feladata a csomagkapcsolt kapcsolat
kiépítése, monitorozása és lebontása, valamint PDP context kezelés
Mobilitás menedzsment (MM): a felhasználói készülék helyzetének
meghatározása a GPRS-hez hasonlóan történik.
Ezt a feladatot az elektronikus közjegyző végzi a rendszerben.
A közjegyző (CA = Certification Authority) mint harmadik fél nem tesz egyebet, mint
aláírja, hitelesíti az adott fél kulcsait, amit tanúsítványként szolgáltat a kulcsokhoz.
1.5 A negyedik generációs (4G) hálózatok megjelenése
2006-ban az angol Truphone vállalt volt az első olyan cég, aki elkezdte kiépíteni az a
4G-s technológiát használó hálózatot, ezzel biztosítva azt, hogy a többi céget
megelőzve elsőként megjelent a piacon.
Mobil távközlési hálózatok kialakulása, működése és tesztelése
23
Ennek az új hálózatnak a hatására a telekommunikáció olcsóbb lett, viszont a WLAN
és a VoIP egyaránt használható. A 4G rendszer a WiMAX szabvány mellett 2, illetve
6 Mbps sebesség elérésére képes, míg az LTE technológiával ez 5 és 10 Mbps-ra
tehető. Ennek a gyorsaságnak köszönhetően akár hálózati csoportmunka folytatására
is alkalmas az új rendszer.
Az LTE technológia a Long Term Evolution kifejezés rövidítése. Míg a korábbi 3G-s
technológia 28 Mbit/s maximumot támogat, addig az LTE 326 Mbit átvitelére képes
másodpercenként, 4x4 antennával 20 MHz széles frekvenciatartományon.
Mobil távközlési hálózatok kialakulása, működése és tesztelése
24
2. Egy 3G hálózat minőségét tesztelő alkalmazás bemutatása
Célom egy olyan alkalmazás elkészítése volt, ami inkább IT területen dolgozó
szakembereket céloz meg, mintsem egy átlagos felhasználót. Sok esetben egyes
szolgáltatók (pl.: Telecom), úgy építenek ki 3G-s back-up-okat, hogy a rack
szekrénytől laptopon keresztül indítanak méréseket. Ezek a mérések 3G-s
mobilneten keresztül futtatott ping parancsok. Ezeket többször futtatva kapnak egy
képet arról, hogy az adott helyiségből milyen minőségben érhető el a szolgáltató 3G-s
hálózata. Célom tehát egy olyan alkalmazás készítése volt, ami helyettesítheti a
laptopok / notebookok használatát.
Egy másik szempont az volt, hogy ez az alkalmazás futtatható legyen a ma
megvásárolható Android rendszerű készülékek legtöbbjén.
Az interneten körül nézve találtam pár kezdeményezést hasonló programok
elkészítésére, viszont olyan verziót nem találtam, amely az elvégzett mérésekhez
igazodik, és az eredményeit tárolni képes.
Ezen felbuzdulva úgy gondoltam, hogy mindenképpen érdemes lenne egy ilyen
alkalmazást elkészíteni, hiszen sok időt és energiát spórolhat meg vele egy olyan
szakember, aki napi szinten a 3G hálózatok tesztelésével, esetleges létezésének
vizsgálatával van megbízva.
Így nyerte el jelenlegi formáját a MobilNetInformation nevű alkalmazás Android
rendszerű mobiltelefonokra.
Az egyik legfontosabb funkciója, a különböző hálózatoknak, hostoknak adott pontról
történő elérhetőségének és válaszidejének vizsgálata. Az alkalmazás két fajta hálózat
tesztelésére alkalmas, azaz mind 3G-n, mind WIFI-n keresztül képes a méréseket
lebonyolítani.
Korábban alap szinten ismerkedtem a mobil alkalmazásfejlesztéssel, így sok
újdonsággal találkoztam mire elkészült a program.
Mobil távközlési hálózatok kialakulása, működése és tesztelése
25
Hogy érthető legyen az alkalmazás minden része, szeretnék kiragadni egy-egy részt
a kódból, és rövid magyarázattal, képekkel és screenshotokkal bemutatni a program
egyes funkcióit.
[5] Az Android az Open Handset Alliance által fejlesztett, Linux alapú, nyílt
forráskódú operációs rendszer, elsősorban mobiltelefonokra fejlesztve.
Az elv egy olyan mobil operációs rendszer megalkotása volt, ami gyártó független,
azaz több gyártó által készített telefonon is képes futni, kihasználni a készülék
előnyeit. A cél az volt, hogy egy adott telefonból minél több dolgot ki tudjon hozni a
felhasználó, egy viszonylag könnyen kezelhető felületen keresztül.
A fejlesztés során próbáltam én is egy teljesen átlátható, és könnyen kezelhető
platformot létrehozni, ezáltal követni az Android fejlesztők által leírt íratlan szabályt,
az átláthatóságot.
Ahogy említettem, a szoftver nyílt forráskódú, tehát bárki szabadon és ingyen
fejleszthet akár saját magának is hasznos, működő alkalmazásokat.
Ebből nagyon jól látszik az Android egyik előnye: a mások által elkészített
alkalmazások egy része akár ingyen is letölthető az Android Marketről, ezáltal nem
kell a gyártóra várnunk, hogy elkészítse a számunkra megfelelő programot.
Az érvek, amik az Andorid mellett szólnak:
Állandó internetkapcsolat, vagy akár WIFI révén, a telefonon lévő összes
alkalmazás (időjárás-jelentés, levelező rendszer) frissül, így a készüléket
használó naprakész marad.
A már korábban említett Android Market ingyenesen elérhető, így további
alkalmazások tölthetőek le.
Egy nagyon gyorsan fejlődő operációs rendszerről van szó, emiatt nagyon sok
a frissítés hozzá, amiket felhasználva sokkal gyorsabb és még jobban
kezelhető rendszerhez jut a felhasználó.
Mobil távközlési hálózatok kialakulása, működése és tesztelése
26
A verzió, amin az alkalmazás készült, és tesztelésre került, az a 2.3.3, vagy másik
nevén Gingerbread. 2010. december 6-án jelent meg az Android ezen verziója, ami
egy minimálisan módosított kezelőfelülettel és bővítette beállítási opciókkal bír. Ezek
mellett sok egyéb plusz került bele, de ezekre nem szeretnék kitérni, hiszen az
alkalmazásom szempontjából nincs jelentősége.
Az alapötlet az volt, hogy egy adott mobiltelefon hálózatból, egy bármilyen hostot
megpingelve, visszakapjam a szerver válaszidejét.
A Windows cmd konzoljában egy adott host pingelésére jól bevált módszer Android
operációs rendszeren nem alkalmazható, erre egy más utasítás szolgál
megoldásként.
A ping (Packet Internet Gropher) nevű parancs lényegében egy olyan segédprogram,
aminek segítségével megállapítható, hogy az adott hálózatra, vagy Internetre
csatlakozott gép bekapcsolt állapotban van-e, valamint képes-e hálózati kérések
fogadására, illetve feldolgozására.
Windows operációs rendszeren viszonylag könnyű dolgunk van. A következőképp
próbálható ki a használata:
Start menü – Futtatás – cmd parancs beírása
Ezzel elénk tárul egy konzol ablak, ahova a következő utasítást kell beírnunk:
ping origo.hu
Ennek hatására a következő kép tárul elénk:
Mobil távközlési hálózatok kialakulása, működése és tesztelése
27
7.ábra – az origo.hu szerver pingelése
Az első dolog, ami megfigyelhető, hogy a ping parancsot egy domain névre
alkalmaztam, viszont a végrehajtása során az adott domain ip-címe jelenik meg.
Tehát akár erre a célra is használható az utasítás.
Ha a parancs után megadunk egy –n csatolót követve bármilyen értéket, akkor a
pingelés annyiszor fog lefutni, amilyen számot beírtunk a csatoló után. Pl.:
8.ábra – az origo.hu szerver pingelése 10 csomaggal
Mobil távközlési hálózatok kialakulása, működése és tesztelése
28
Jól látszik a képen, hogy 10 kérés elküldéséből 9 –re érkezett válasz. A maradék 1-re
a célgép nem válaszolt, így ott lesz egy csomagveszteségünk. Értelemszerűen minél
magasabb a csomagveszteség aránya, annál rosszabb lesz a kapcsolat minősége is.
Ami szintén jól látszik, hogy minél pontosabb eredményt szeretnénk kapni, annál több
küldött csomagra lesz szükségünk. Hiszen ha megfigyeljük a fenti példát, akkor
látható, hogy ha ezt a hostot az alap ping paranccsal pingeljük, akkor nem valószínű,
hogy a 4 küldött csomag között lesz csomagveszteségünk, azaz nem feltétlenül
pontos a mérésünk.
Ennek kiküszöbölésére az alkalmazásomban 5-ször 5 csomagot használok a
mérésem során, hogy minél nagyobb valószínűséggel kapjak pontos eredményt.
Ahogy korábban említettem, Android operációs rendszerre Java programozási
nyelven nem teljesen egyezik meg a két utasítás.
A következő kódrészlettel szeretném szemléltetni az alkalmazás azon részét, amivel
a pingelést végre hajtom:
@Override
protected String doInBackground(String... params) {
try {
Runtime runtime = Runtime.getRuntime();
Process pingprocess = runtime.exec("/system/bin/ping -c 5
origo.hu");
if (pingprocess.waitFor() == 0) {
BufferedReader in =
new BufferedReader(
newInputStreamReader(pingprocess.getInputStream()));
String inputLine;
Mobil távközlési hálózatok kialakulása, működése és tesztelése
29
while ((inputLine = in.readLine()) != null) {
individual_result.addLine(inputLine);
individual_result.setType(networkType);
}
}
}
in.close();
A try blokk első két utasításával hívjuk meg az Android rendszer ping alkalmazását.
Itt látható a hozzárendelt parancs is, aminek hatására a már fentebb screenshotokkal
ábrázolt kimenethez hasonlót kapunk. Azért csak hasonlót, mert a visszakapott
értékek sorrendje más mint a Windows-os verzióban.
A következő blokkban a kimenet vizsgálata következik, azaz azt nézzük meg, hogy
elérhető-e a szerver, amit pingelni szeretnénk.
Ha az if utasítás 0-val tér vissza, akkor jelzi, hogy lefutott, ha 2-vel, akkor valamilyen
hiba történt.
Ezután az Inputline utasítással beolvassuk a kimenet sorait, és hozzá adjuk egy
általam készített osztályhoz, az addLine metódus segítségével, ami egy String-et vár
bemenetként. Ezek a PingResult osztályon belül kerülnek összefűzésre.
Ez a műveletsor nagyon időigényes, míg egy gyors készülék esetén is több
másodperc lehet amíg lefut egy adott parancs, ami rontaná a felhasználói élményt.
Ha egy alkalmazás nagyon sokáig foglalja az User Interface szálat, továbbiakban UI
szálat, akkor a rendszer hamarosan dob egy értesítést arról, hogy az alkalmazás nem
válaszol. Továbbá ha lefoglalja a UI szálat, a felület frissítése is problémát okozhat,
ugyanis szeretnénk folyamatosan tájékoztatni a felhasználót a vizsgálat
eredményeiről. Ezért szükség van szálfuttatásra, ami segítségével a fent részletezett
kód képes a háttérben futni, anélkül, hogy a kijelző lefagyását eredményezné.
Mobil távközlési hálózatok kialakulása, működése és tesztelése
30
2.1 Asynctask
Az asszinkron feladatkezelés segítséget nyújt abban, hogy ne ütközzön ilyen jellegű
hibákba a programunk. Feladatunk csak annyi, hogy az AsyncTaskba meghívjuk a
fentebb részletezett kódrészletet.
A feladat megoldásához készítettem egy saját AsyncTask osztályt. Az AsyncTask
ősosztályban található doInBackground, preExecute, postExecute metódusokat
felüldefiniáltam a saját alkalmazásomhoz szükséges igények szerint.
Ezeket végrehajtás sorrendje szerint részletezném az alábbiakban:
@Override
protected void onPreExecute() {
progress.setVisibility(View.VISIBLE);
infromation_text.setText("Pinging the server...");
}
A vizsgálat futásának kezdetét vissza szeretném jelezni a felhasználó irányába, ezért
láthatóvá teszem a Progressbar-t, valamint informálom a felhasználót, hogy a szerver
pingelése folyamatban van.
Ezután időrendben a doInBackground metódus fog lefutni, ahol meghívom a ping
parancsot, a korábban részletezett módon, az ott leírt utasítássorral. Ennek a
vizsgálatnak az eredménye egy változóba kerül eltárolásra, amit a postExecute
metódusban fogok feldolgozni.
A postExecute metódusban található kódrészlet az AsyncTask végén kerül lefutásra.
Az AsyncTask-ot rekurzívan, ötször egymás után szeretnénk lefuttatni, úgy, hogy a
memóriában egyszerre csak egy AsyncTask fusson. Ezért a postExecute-ban egy
feltétellel folyamatosan figyelem, hogy hányszor futott le eddig, ahogy az alábbi
kódrészletben is látható:
Mobil távközlési hálózatok kialakulása, működése és tesztelése
31
if (asynctasck_index < 5) {
measurement.get(asynctasck_index).execute("");
infromation_text.setText("Pinging the server...");
asynctasck_index++;
}
Látható, hogy ha nem futott le még ötször az AsyncTask, akkor meghívom a
következőt. Az utolsó futás után informálom a felhasználót a futás eredményeiről, az
alábbi módon:
if (result_list.size() == 5) {
isBegin = false;
isSaved = false;
TextView btn_label = (TextView)findViewById(R.id.begin_button);
btn_label.setText("Restart test");
setStateOfTotalResultsLabel(View.VISIBLE);
TextView info_line = (TextView)
findViewById(R.id.information_label);
info_line.setVisibility(View.GONE);
Beállítom a futás és a mentés állapotát hamisra, ezzel jelezvén, hogy a program már
nem fut, és az eredmény még nem került elmentésre. Beállítom a gomb szövegét az
esetleges újraindítás érdekében Restartra, ugyanis a mérés befejeztével bármikor
újraindítható a vizsgálat.
Láthatóvá teszem a részletes eredményeket, ahol a felhasználó a vizsgálat átlagolt
eredményeit láthatja.
Ezt követően elvégzem az eredmények átlagolását a következőképp:
Mobil távközlési hálózatok kialakulása, működése és tesztelése
32
int avg_ping = 0, avg_pl = 0;
double rec_packet = 0;
for (int i = 0; i < result_list.size(); i++) {
if (result_list.get(i).isMeasurementIsComplete()) {
avg_ping += (int)Math.round(Double.parseDouble(
result_list.get(i).getAvgResponseTime()));
rec_packet += result_list.get(i).getRecivedPacket();
}
else {
avg_ping += 500;
}
}
avg_ping = avg_ping / 5;
avg_pl = (int) Math.round((1 - (rec_packet / 25)) * 100);
Végigfutok a listán egy for ciklussal. Megvizsgálom egy feltétellel, hogy az adott
mérés lefutott-e, vagy eldobta a csomagot. Ha eldobta, akkor az átlag ping
változónak adok egy nagy értéket (jelen esetben 500 millisecundomot). Ha lefutott a
mérés, akkor hozzáadom minden egyes vizsgálat átlagos válaszidejét, amit úgy
számolok ki, hogy a megkapott Stringet double értékké konvertálom, majd kerekítem
és ezt cast-olom integer értékké. Valamint a megkapott csomagokat szintén
hozzáadom egy változóhoz. Ezen műveletsor elvégzése után, a változók értékei
átlagolásra kerülnek.
A kiszámított eredményeket a korábban láthatóvá tett TextView-on kerül
megjelenítésre a kijelzőn. Ehhez az alábbi módon "meg kell fogni" a TextView-at, és
egyszerűen egy setText metódussal beállíthatjuk a kívánt értékeket.
Mobil távközlési hálózatok kialakulása, működése és tesztelése
33
Itt a hálózat típusa kerül beállításra, vagyis, hogy 3G-t vagy WIFI-t használok-e a
mérésre:
TextView type_of_m = (TextView) findViewById(R.id.total_type);
type_of_m.setText(networkType);
A dátumot a következőképp jeleníthetjük meg:
TextView date_of_m = (TextView) findViewById(R.id.total_date);
date_of_m.setText(result_list.get(0).getMeasureDate());
A mérés átlagolt eredményének kijelzőn való megjelenítésére a következő utasítást
használom:
TextView ping_of_m = (TextView) findViewById(R.id.total_ping);
ping_of_m.setText(avg_ping + " ms");
Végül a csomagveszteség %-os megjelenítése az alábbi módon valósul meg:
TextView pl_of_m = (TextView) findViewById(R.id.total_packetloss);
pl_of_m.setText(avg_pl + "%");
Ahogy korábban említettem, szeretném ha az alkalmazás tárolná a mérés
eredményeit. Éppen ezért az eredményeket kiemelem egy globális változóba a futás
végén, hogy később menthetővé váljon. Ezt az alábbi kódrészlet szemlélteti:
total_result = new PingResult(networkType,
result_list.get(0).getMeasureDate(), avg_ping + "", total_min + "",
total_max + "", (int) Math.round(rec_packet));
Mobil távközlési hálózatok kialakulása, működése és tesztelése
34
2.2 Megjelenítés listán
A program futása során több helyen is listákat alkalmaztam az adatok
megjelenítésére. Ennek az oka, hogy viszonylag nagy mennyiségű adatokról van szó,
illetve sokkal átláthatóbb a felület, ha listába szervezzük őket.
Ahhoz, hogy egy-egy ilyen lista egyedi lehessen, külön ArrayAdapterekre van
szükség. Az ArrayAdapter ősosztályból származtattam három osztályt, mivel három
különféle lista kerül megjelenítésre az alkalmazásomban. Ez a három lista a
következőképpen néz ki:
Aktuális eredménylista, ahol az aktuális mérés eredményei megjelennek
Részletes lista, ahol az aktuális eredménylista egy-egy részletezése található
History lista, a korábbi mentett méréseket tartalmazza
Az Array adapterek mindegyike megegyezik abban, hogy a konstruktoruknak
átadásra kerül egy olyan lista, amely a listán megjelenítésre kerülő adatok halmazát
tartalmazza.
A különbség a felüldefiniált getView metódusban található, ami az egyedi
megjelenítésért felelős. Az alábbiakban a részletes listának egy kódrészletét
láthatjuk.
Egy feltétellel megvizsgáljuk, hogy az adott vizsgálat lefutott-e. Ha igen, akkor
beállítjuk a megjelenítendő értékeket az adott cellára.
if (getItem(position).isMeasurementIsComplete()) {
TextView net_type = (TextView) item.findViewById(R.id.network_type);
net_type.setText(((PingResult) getItem(position)).getType());
.....
Mobil távközlési hálózatok kialakulása, működése és tesztelése
35
else {
TextView current_date_on_list =
(TextView)item.findViewById(R.id.packet_date);
TextView msg_title = (TextView) item.findViewById(R.id.textView2);
msg_title.setText("ERROR MESSAGE");
current_date_on_list.setText("Timeout: Unreachable server");
......
}
return item;
Ha a vizsgálat nem futott le, elrejtem a feliratokat és beállítok egy "Timeout:
Unreachable Server" hibaüzenetet.
A többi Array adaptert is hasonló módon állítom be, annyi különbséggel, hogy a
history listánál nem kell megvizsgálni azt, hogy lefutott-e a vizsgálat, mivel ott egy
összesített eredményt kapunk.
Az Array adapterekhez minden esetben az adott Activity onCreate metódusában
rendelem hozzá a listát, az alábbi módon:
ping_listview = (ListView) findViewById(R.id.listView1);
ping_result_arrayadapter = new
ResultArrayAdapter(getApplicationContext(),result_list);
ping_listview.setAdapter(ping_result_arrayadapter);
Mobil távközlési hálózatok kialakulása, működése és tesztelése
36
2.3 Adatok átadása két Activity között
[6] A MainActivity-ben, az eredménylistán jelenítjük meg az ötszöri ping parancs
futása utáni eredményeket. Viszont ezek átlagolt eredmények, és előfordulhat, hogy
szükségünk lehet minimum, esetleg maximum válaszidőre, vagy bármilyen más
részeredményre, ezért fontos, hogy ha kiválasztunk a listából egy elemet, egy másik
Activity-n ennek az elemnek a részletezését megkaphassuk. Ehhez szükség van az
Activity-k közötti adatcserére.
Ezt a feladatot a lista onClickItemListener-jében valósítom meg, az alábbi módon:
Az ArrayAdaptertől elkérem a kiválasztott pozícióban lévő elemet, majd beteszem
egy változóba.
Indítok egy új Intent-et, ami az adatok átadásáért felelős.
PingResult ping_result = ping_result_arrayadapter.getItem(position);
Intent result_intent = new
Intent(getApplicationContext(),ResultDetailActivity.class);
Majd átadom az értékeket a putExtra metódus segítségével, ami String típusú
kulcsérték párokat vár paraméterként:
result_intent.putExtra("type", ping_result.getType());
result_intent.putExtra("full_result", ping_result.getFullResult());
result_intent.putExtra("min_time", ping_result.getMinResponseTime());
result_intent.putExtra("max_time", ping_result.getMaxResponseTime());
result_intent.putExtra("avg_time", ping_result.getAvgResponseTime());
result_intent.putExtra("packets", ping_result.getRecivedPacket());
startActivity(result_intent);
Mobil távközlési hálózatok kialakulása, működése és tesztelése
37
Legvégül, ha minden értékhez állítottam kulcsérték párt, indítom az új Activity-t, ami
jelen esetben a részletes listanézet lesz.
2.4 A mért adatok mentése
Az alkalmazás másik fontos funkciója egy mérés eredményének későbbi
megtekintése. Ehhez készítettem a korábban említett History listákat. Ezen a listán a
fontosabb mérési eredmények kerülnek elmentésre, ami a későbbiek során bármikor
előhívható, és visszanézhető.
Az eredmények mentése a készülék memóriájába, egy history nevű fájlba történik.
Telepítés után ez a fájl még nem létezik, így megtekintése előtt a program létrehoz
egy üres fájlt. A history írására és olvasására egy-egy metódust készítettem:
Olvasásra:
A history nevű fájl beolvasásra kerül, majd készítek egy StringBuilder-t, hogy a
sorokat összefűzhessem. A fájl tartalmát a while ciklus segítségével soronként a
StringBuilderhez fűzöm, majd a futás végén visszatérek a StringBuilder toString
metódusával.
in = openFileInput("history");
InputStreamReader inputStreamReader = new InputStreamReader(in);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
StringBuilder sb = new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
sb.append(line + "\n");
}
return sb.toString();
Mobil távközlési hálózatok kialakulása, működése és tesztelése
38
Írásra:
Mentés esetén először beolvassuk a history fájl tartalmát a korábban megírt
readHistory metódus segítségével, majd ezt hozzáfűzzük egy StringBuilderhez,
annak érdekében, hogy a korábbi mentések ne tűnjenek el. Ezek után hozzáfűzzük a
menteni kívánt eredmények sorait, szóközzel elválasztva a StringBuilderhez.
StringBuilder sb = new StringBuilder();
String historyInMemory = this.readHistory();
if(historyInMemory.startsWith("null")){
sb.append(historyInMemory.substring(0));
}
else{
sb.append(historyInMemory);
}
FileOutputStream fos = OpenFileOutput("history",Context.MODE_PRIVATE);
sb.append(total_result.getType()
+ " "+ total_result.getMeasureDate() + " "
+ total_result.getMinResponseTime() + " "
+ total_result.getMaxResponseTime() + " "
+ total_result.getAvgResponseTime() + " "
+ total_result.getRecivedPacket() + "\n");
fos.write(sb.toString().getBytes());
Végül tájékoztatom a felhasználót a mentés sikerességéről:
Mobil távközlési hálózatok kialakulása, működése és tesztelése
39
Toast.makeText(getApplicationContext(), "Save was successfull",
Toast.LENGTH_LONG).show();
fos.close();
9. ábra – az alkalmazással végzett mérés sikeres mentése
A history mentésére írt metódust a MainActivity-ben használom, a history
megnyitását pedig a History listánál alkalmazom adatbetöltésre.
Mobil távközlési hálózatok kialakulása, működése és tesztelése
40
2.5 A mért adatok törlése
A history nézetben a felhasználónak lehetősége van a korábban mért adatok
törlésére. Egy új 3G-s backup kiépítése esetén zavaró lehet a korábban mért adatok
megjelenítése, így mindenképpen lehetőséget kell biztosítani a felhasználónak, ezen
adatok törlésére. A törlést, ahogy az alábbiakban is látható, úgy oldottam meg, hogy
megnyitottam a history fájlt, majd egy üres Stringet mentettem bele:
FileOutputStream fos = openFileOutput("history",Context.MODE_PRIVATE);
fos.write("".getBytes());
fos.close();
2.6 A felhasználói felület / design
Próbáltam úgy elkészíteni úgy a felhasználói felületet, hogy a fő funkciók kézre
essenek. Mindenképpen követni próbáltam az új mobilfejlesztési trendeket, miszerint
az újabb felületeken Actionbar-okat alkalmaznak.
10. ábra – az alkalmazás kezelőfelülete
Mobil távközlési hálózatok kialakulása, működése és tesztelése
41
2.3 Gingerbread operációs rendszer esetén problémát okozott, hogy az Android ezen
verziójára még nem készült Actionbar, ezért ezt a RelativeLayout-tal oldottam meg,
így szinte az összes Android verzión használható az alkalmazás.
2.7 Az alkalmazás tesztelése
Az alkalmazás és a kód egyes részeinek megismerése után fontos, hogy megnézzük
milyen mérési adatokkal szolgál az elkészített programunk.
Ahogy a dolgozat során már említettem, kettő magyarországi mobilhálózat segítségét
felhasználva végzem el az alkalmazás tesztelését. Mindkét hálózatból a vkk.hu
szerverét próbálom meg elérni. A host egy online játékszerverre mutat, ahol nagyon
fontos az elérési idő.
A teszteléshez használt telefonok:
Samsung Galaxy Ace
Sony Ericsson X10 Mini Pro
Az eredmények összevetése a méréseket mutató screenshotok után kerül elemzésre.
Vodafone hálózatból történő mérés esetén a következő értékeket kaptam:
Mobil távközlési hálózatok kialakulása, működése és tesztelése
42
Majd ugyanezt a mérést elvégeztem a T-mobil mobilinternet szolgáltatását használva
is. Az itt kapott eredmények:
11. ábra – a tesztelés folyamata…
Mobil távközlési hálózatok kialakulása, működése és tesztelése
43
12. ábra – a tesztelés eredménye
A mérés és tesztelés eredményének elemzése:
Az első mérés során szemmel láthatóan sokkal jobb pingidőket kaptunk, mint a
T-mobil hálózatból indított mérés során
A második mérés szerver elérési ideje több, mint kétszer nagyobb mint az első
mérésé
Ahogy megfigyelhető ezen mérési sorozatban, volt egy csomagveszteség,
azaz az első mérés 5 küldött csomagja közül, az utolsó nem ért célba. Itt egy
Timeout üzenetet kaptunk, amint megérintettük a kijelzőn azt a sort, ahol a
csomagveszteség jelentkezett.
Az Infobar-ban jelzett összesített eredménylistán látszik, hogy egy mérésen
elvesztett csomag, az összes méréshez képest hogyan aránylik, azaz egy
mérés 20%-os csomagvesztesége az öt lefuttatott mérés esetén 4%
csomagveszteséget fog jelenteni, amiből látszik, hogy az alkalmazás pontosan
számítja a packet loss értékét.
Mobil távközlési hálózatok kialakulása, működése és tesztelése
44
A mérésekből jól látszik, hogy a Vodafone hálózatából jobb válaszidejű és kisebb
csomagveszteségű (gyakorlatilag 0%-os) mérést tudtunk végezni, mint a T-mobil
hálózatából.
Mobil távközlési hálózatok kialakulása, működése és tesztelése
45
3. Összegzés
Az alapötlet egy olyan alkalmazás elkészítése volt, ami IT területen dolgozó emberek
munkáját segíti. Az alkalmazás megírása során az egyre több ötletet egyre több
funkció követte, amivel végeredményképpen egy teljesen komplex programot
kaptunk. Úgy gondolom, hogy egy felhasználóbarát kezelőfelület segítségével nem
csak az eredeti célközönség, de akár olyan emberek is hasznosnak találhatják az
alkalmazást, akik épp egy szerver elérhetőségét, vagy akár elérési idejét szeretnék
megtudni. Habár sok funkcióval bír a MobilNetInformation, de véleményem szerint
még sok egyéb lehetőség rejlik benne.
Az alkalmazás tovább fejleszthetősége
beállítási menüvel való bővítés
historyban való keresés és szűrés
különféle sebességtesztek (le-, feltöltés)
részletesebb megjelenítés (pl. cellainformáció)
URL bar, ahol megadhatjuk a pingelni kívánt hostot
Úgy gondolom, hogy mindenképpen érdemes volt elkezdeni az alkalmazás
fejlesztését, és bízom abban, hogy lesz alkalmam ezt a munkát folytatni a későbbiek
során. Remélem, hogy magát a programot, minél több jövőbeli felhasználó fogja tudni
hasznosítani.
Mobil távközlési hálózatok kialakulása, működése és tesztelése
46
4. Summary
The main idea behind my thesis was to make an application for those who work in IT
field. While it was being written, I got many new ideas which were added to the
program, too. Therefore I got quiet a complex application by now. As I got a user-
friendly interface, I think, it’s not only specialists who can use it but even those, who
only want to check the availability of a given server, as well as, get its reaching time.
Though, it has many functions, personally I think, there are many opportunities lieing
inside the application.
Ideas for further development
expending the application with setting menu
searching and filtering in the history
differenct speedtests (down, and upstream)
more detailed visualization
URL bar, where we can add the host, we want to ping
I reckon, it was absolutely worth to start to develop the application, and hopefully I will
have the chance to continue my work later on and expand it with many more
functions. I hope that many people can utilize my application for even personal usage.
Mobil távközlési hálózatok kialakulása, működése és tesztelése
47
5. Irodalomjegyzék
[1] http://e-oktat.pmmf.hu
[2] http://wikipedia.org
[3] http://logout.hu
[4] http://muszeroldal.hu
[5] EKLER PÉTER, FEHÉR MARCELL, FORSTNER BERTALAN, KELÉNYI IMRE:
Android-alapú szoftverfejlesztés
[6] BORKO FURHT, DARKO KIROVSKI: Multimedia Encryption and Authentication
Techniques and Applications, 2008