Laborator 1 Familiarizarea cu simulatorul EXata. Rularea unor scenarii simple.

În acest laborator se vor dezvolta următoarele abilități: Pornirea interfeței grafice a EXata și crearea unui scenariu nou Plasarea unor noduri, legături și crearea unor aplicații: o Manual o Automat  Rularea unei simulări  Vizualizarea și interpretarea rezultatelor unei simulări 1. Prezentarea EXata 1.1. Despre EXata EXata este un mediu cuprinzător pentru dezvoltarea protocoalelor, crearea și animarea scenariilor de folosire a rețelelor de telecomunicații și evaluarea performanțelor sale. EXata se compune din următoarele unelte:  EXata Architect - O unealtă grafică pentru dezvoltarea și vizualizarea experimentelor. Arhitectul are două moduri: modul Design pentru crearea scenariilor și modul Visualize pentru rularea și vizualizarea experimentelor.  EXata Analyzer – O unealtă pentru analizarea statisticilor grafice  EXata Packet Tracer – O unealtă grafică pentru afișarea și analizarea urmelor pachetelor  EXata File Editor - Un editor de text  EXata Command Line Interface (CLI) – Acces în linie de comandă la simulator EXata poate rula sub Windows, Linux și Mac OS X. O listă completă cu cerințele de sistem necesare pentru a funcționa se poate găsi în EXata-2.2-InstallationGuide din documentație. EXata e instalat în directoare diferite, în funcție de sistemul de operare și/sau alegerea utilizatorului. Pe parcursul laboratoarelor următoare, directorul de instalare EXata va fi denumit EXATA_HOME. 1.2. Simularea unei rețele de telecomunicații pe bază de scenariu În EXata, o topologie de rețea este denumită scenariu. Un scenariu permite utilizatorului să specifice toate componentele unei rețele și condițiile în care va opera aceasta. Acestea includ: detaliile reliefului, efectele propagării undelor electromagnetice (atenuarea de cale, fading, umbrire), subrețele cu și fără fir, dispozitive de rețea (switch-uri, huburi, rutere), întreaga stivă de protocoale a diferite componente de rețea standard sau definite de utilizator și aplicații ce rulează prin rețea. Multe dintre acestea sunt opționale; se poate porni cu un scenariu de bază și se pot specifica apoi cât mai multe detalii necesare pentru a îmbunătăți acuratețea modelului simulat.  

Simularea Sistemelor de Comunicații

Laborator 1

1.2.1. Modul de abordare În general,o simulare cuprinde următoarele faze:  Prima fază este crearea și pregătirea scenariului pe baza descrierii sistemului și a metricilor de interes (vezi 1.2.2).  Următorul pas este execuția, vizualizarea și analiza scenariului creat și colectarea rezultatelor simulării. Aceste rezultate pot include animații ale scenariului, statistici în timp real, statistici finale și output traces  Ultima fază este analiza rezultatelor simulării. De obicei, utilizatorii trebuie să-și adapteze scenariile pe baza statisticilor colectate. 1.2.2. Crearea scenariilor Crearea unui scenariu se face în mai mulți pași. Mai întâi se configurează proprietățile generale care sunt aplicabile întregului scenariu. Apoi, se specifică topologia rețelei prin crearea de subrețele, plasarea nodurilor și definirea mobilității nodurilor. Apoi, este necesară configurarea stivei de protocoale pentru noduri singulare sau grupate, după cum este necesar. Ultimul pas este configurarea parametrilor pentru colectarea rezultatelor simulării și controlul în timp real al simulării. 1.2.3. Fișiere asociate cu un scenariu Există mai multe fișiere de intrare pentru EXata (ce conțin parametrii necesari pentru simulator). Fișierele de intrare sunt text, iar cele principale sunt:  Fișierul de configurare a scenariului: Acesta este fișierul principal de intrare pentru EXata și specifică scenariul și parametrii pentru simulare. Are de obicei extensia „.config”.  Fișierul de plasare a nodurilor: Acesta constituie o referință pentru fișierul de configurare și specifică pozițiile inițiale și viitoare ale nodurilor din cadrul scenariului. Are, de obicei, extensia „.nodes”.  Fișierul de configurare a aplicațiilor: Acesta este, de asemenea, apelat de către fișierul de configurare a scenariului și specifică aplicațiile care rulează pe nodurile din scenariu. Are, de obicei, extensia „.app” În plus față de acestea, EXata poate folosi și alte fișiere de intrare, după cum se va vedea și în laboratoarele următoare. Acestea depind de modelele specificate în fișierul de configurare. Când utilizatorul folosește interfața în linia de comandă, trebuie să le creeze manual. La crearea unui scenariu în modul Architect, fișierele principale, ce reprezintă scenariul, sunt create automat. Fișierul principal generat de o rulare a unei simulări în EXata este un fișier cu statistici, cu extensia „.stat”. Fișierul conține statisticile colectate în cadrul simulării. Alte fișiere ce pot fi generate de simulator includ fișierul de urmărire (trace) (cu extensia „.trace”) care înregistrează urmele pachetelor și fișierul de animație (cu extensia „.anim”) care înregistrează animația uni scenariu rulat în Arhitect. Atât fișierele de statistici și trace sunt de tip text și pot fi deschise cu orice editor de text. În plus, se poate folosi Analyzer pentru a vizualiza conținutul lor într-un mod grafic, ușor de analizat.
2

Simularea Sistemelor de Comunicații

Laborator 1

1.3.

Simulare și Emulare

EXata este, de fapt, un emulator de rețea care permite evaluarea rețelelor de comunicații, creând o replică virtuală a unei rețele care se interfațează cu rețele și aplicații reale. Un emulator de rețea mimează funcționalitățile unei rețele reale, astfel încât aceasta să apară, să interacționeze și să se comporte precum o rețea reală. Astfel, sistemul emulat nu poate fi deosebit de unul real. Folosirea unui emulator permite o metodă de evaluare eficientă din punctul de vedere al costurilor a noilor tehnologii înainte de a începe construcția propriuzisă a rețelelor sau sistemelor. Un simulator de rețea redă comportamentul unei rețele reale, dar nu poate interacționa cu aceasta. Folosește o reproducere sau o abstractizare a sistemului real și singurul său scop e de a reproduce comportamentul acestuia. O simulare a unei rețele este o metodă eficientă folosită în cadrul primelor etape de dezvoltare a rețelelor. Utilizatorii pot evalua comportamentul primar al rețelei și pot testa combinații ale proprietăților rețelei care sunt susceptibile de a funcționa. Emularea rețelelor ajută la dezvoltarea așa-numitelor „net-centric systems” sau sisteme de rețele, furnizând un mediu în care deciziile de proiectare alese pot fi schimbate rapid și impactul lor evaluat. Utilizatorii pot folosi rețeaua emulată și vedea cum aplicațiile lor (VoIP, redare video etc.) se vor comporta când sistemul real este construit. Rețeaua emulată poate, de asemenea, fi integrată cu sisteme mai vechi pentru a testa interoperabilitatea cu acestea și a forma utilizatorii pentru rețelele de generații viitoare. 2. Prezentarea mediului vizual al EXata, crearea și rularea unui scenariu Interfața grafică (GUI) a EXata se deschide printr-un dublu click al iconiței de pe Desktop:

La pornirea EXata, implicit acesta se va deschide în modul Architect. Fereastra afișată la pornirea EXata este aceasta:

3

Simularea Sistemelor de Comunicații

Laborator 1

Notă: Implicit, la pornirea EXata, modul de lucru este emulare. Totodată, la fiecare încărcare a unui scenariu, modul de lucru este tot emulare. Va trebui, pentru a rula EXata în modul simulare, ca, de fiecare dată, să se selecteze modul „Simulation” din bara de emulare. S.1. Zona de lucru pentru un nou scenariu este deja creată și ea trebuie doar salvată. Pentru a salva un scenariu, se apasă File > Save din meniu (sau Ctrl+S folosind tastatura) și se navighează către directorul %EXATA_HOME%/scenarios/user. Se denumește scenariul Lab1.config. Se va crea automat un director cu același nume în care va fi plasat fișierul .config.

4

Simularea Sistemelor de Comunicații

Laborator 1

Din Panoul lateral cu unelte de lucru, de sub bara Devices se selectează Default device (prima iconiță din stânga). Apoi se face click pe zona de lucru în colțurile din stânga-sus și dreapta-jos (se creează astfel nodurile 1 și 2). Se face clic în continuare pentru a amplasa mai multe noduri între cele două, aproximativ ca în figura de mai jos:

Se apasă pe Select în bara de aspect și apoi se mută nodurile prin zona de lucru folosind mouse-ul. Se face clic dreapta pe un nod și se selectează Properties pentru a vedea proprietățile implicite ale nodului respectiv:

5

Simularea Sistemelor de Comunicații

Laborator 1

Se creează o aplicație de tip CBR (rată de bit constantă) între nodurile 1 și 2 astfel: în panoul lateral, se apasă CBR din bara Applications, apoi se face clic pe nodul 1 și se ține apăsat; se deplasează mouse-ul pe nodul 2 și se dă drumul. Pentru a vedea proprietățile implicite ale aplicației, se face click dreapta pe legătura CBR și se selectează Properties. Se șterg toate nodurile în afară de 1 și 2 folosind unealta Select pentru a selecta nodurile și apoi se apasă tasta Delete sau se face click-dreapta și se selectează Delete din meniul pop-up. Mai simplu, se poate folosi unealta Lasso pentru a se selecta toate nodurile deodată și a le șterge.

6

Simularea Sistemelor de Comunicații

Laborator 1

În final, ar trebui să rămână doar nodurile 1 și 2 și aplicația CBR în zona de lucru. Se selectează din meniu Tools > Node Placement. Va apărea o astfel de fereastră:

Se introduc următoarele setări: Number of Nodes: 25 Placement Model: Uniform Se creează încă 2 aplicații CBR între nodurile 21-25 și 5-20. Zona de lucru ar trebui să arate acum aproximativ așa:

7

Simularea Sistemelor de Comunicații

Laborator 1

Se alege „Simulation” din bara de emulare. Se apasă acum butonul Run Simulation din Bara de rulare (butonul apoi se pune pauză. ). Se apasă butonul Play. Se vizualizează pentru o perioadă,

În panoul lateral din partea stângă, se selectează Animation Filters > Event Filters > Node Radio Range:

Se apasă Play și se lasă scenariul să ruleze până la sfârșit. Prin activarea acestui filtru se poate vedea acoperirea radio a unui nod. Zona de lucru va arăta aproximativ astfel:

8

Simularea Sistemelor de Comunicații

Laborator 1

Se selectează din meniu Animation > Step Setting > By Command. Va apărea următoarea fereastră:

Se setează Command Interval la valoarea 100. Se apasă OK. Apoi se apasă butonul Step din bară ( ). Astfel simularea va avansa cu un pas de 100 de comenzi, la fiecare apăsare a butonului. Apăsați de câteva ori, apoi se apasă Play și se lasă scenariul să ruleze până la sfârșit. Se face click pe Output Window din panoul inferior și se observă mesajele de ieșire și faptul că scenariul a rulat 100%.(De obicei, dacă apare o eroare, zona se extinde automat pentru ca utilizatorul să vadă ce erori au apărut).

9

Simularea Sistemelor de Comunicații

Laborator 1

Se observă că butonul Analyze Statistics of the Current Scenario a devenit activ. Se apasă din nou butonul Run Simulation. Se selectează din meniu Animation > Dynamic Statistics > Scenario Statistics. În fereastra ce apare, se setează următoarele:    Se bifează IP: Number of Packets Received. Se alege opțiunea Per node Se setează intervalul dintre două actualizări succesive ale statististicilor: 100 ms

Se rulează scenariul. Rezultatul final arată aproximativ în felul următor:

10

Simularea Sistemelor de Comunicații

Laborator 1

E.1. Se vizualizează statisticile apăsând butonul . Se face clic pe Application > CBR Server > Total Packets Sent. Se observă valorile pentru cele 3 noduri client (1, 5 și 21). Se face apoi clic tot în submeniul Application pe CBR Client > Total Packets Received. Q.1. Se compară numărul de pachete de date trimise de clienți (nodurile 1, 5, respectiv 21) cu numărul de pachete primite de către servere (2, 20, respectiv 25). De ce diferă? Există soluții pentru ca pierderile de pachete să fie mai mici (ideal nule)? 3. Simularea unei rețele cu fir. Utilizarea EXata Packet Tracer S.2. Dacă există scenarii deschise, se închide fiecare prin apăsarea butonului Close Tab ( ). Va rămâne zona de lucru implicită. Se salvează scenariul cu numele Lab1-2 în directorul %EXATA_HOME%/scenarios/user. Se plasează pe zona de lucru două noduri. Se face clic pe unealta Link din panoul lateral de sub tabul Links. Se face clic pe nodul 1 și se trage mouse-ul până la nodul 2, apoi se dă drumul. Se creează astfel o conexiune de tip punct-la-punct (cablată) între cele 2 noduri.

Se face clic dreapta pe legătură și se alege Properties. Se fac, sau se verifică existența următoarelor setări:      Link Type: Wired MAC Protocol: Abstract Link MAC Symmetric: Yes Bandwidth: 2 Mbps Use Station VLAN Tagging: No
11

Simularea Sistemelor de Comunicații

Laborator 1

Se face clic pe aplicația CBR din panoul lateral și se definește o aplicație CBR de la nodul 2 la nodul 1. În acest moment, se va vedea doar una din cele două (aplicația sau legătura punct-la-punct). Faptul că există mai mult de o conexiune între două noduri va fi denotat de un + care apare deasupra liniei:

Pentru a comuta între cele două, se face clic dreapta și se alege Links and Applications > CBR sau Link.

E.2. Se rulează simularea și se vizualizează rezultatele. Se apasă pe Architect din bara de componente pentru a reveni la modul Architect. Apoi se apasă butonul Switch to Design Mode ( )pentru a modifica scenariul.

Se șterge aplicația CBR și legătura punct-la-punct. Se adaugă încă 7 noduri:    4 switch-uri conectate în romb (Panoul lateral > Devices > Switch) 2 noduri conectate la unul din switch-uri printr-o legătură punct-la-punct 2 noduri conectate la un hub (Panoul lateral > Network Components > Hub), folosind o legătură 802.3 (legătura se creează implicit de tip 802.3)

12

Simularea Sistemelor de Comunicații

Laborator 1

E.3. Se adaugă o aplicație de tip Lookup între nodurile 1 și 4. În EXata, Lookup este un model abstract de trafic de tip cerere/răspuns cum ar fi DNS look-up sau ping. Se setează următoarele:    Reply Delay: 1 ms Start time: 5 min End Time: 10 min

13

Simularea Sistemelor de Comunicații

Laborator 1

În panoul lateral se apasă pe Scenario Properties > Open Scenario Properties.

Se setează General Settings > Simulation Time să fie 10 minute

Se rulează simularea și se încearcă setarea vitezei de execuție cât mai mică pentru a permite vizualizarea detaliilor animației.

E.4. Se vizualizează rezultatele, apoi se schimbă momentul de start al aplicației la 1 minut. Se mai mărește numărul de pachete trimise (Requests to send) la 500 și se reia simularea. Q.2. Se notează momentul la care a fost trimis primul pachet de către client, momentul la care primul pachet este primit de către server și intervalul mediu dintre momentul trimiterii unei cereri și momentul primirii răspunsului (Average Roundtrip Delay). Ce legătură există între valorile obținute? E.5. Se șterge aplicația Lookup și se creează din nou o aplicație CBR între nodurile 1și 4. Se face clic dreapta pe aplicație și se introduc următoarele setări:     Items to Send: 500 Interval: 20 ms Start Time: 0 s EndTime: 10 s

Q.3. Se rulează simularea și se verifică statisticile de la CBR Server și CBR Client. Ce se întâmplă? Care ar putea fi explicația? E.6. Se modifică proprietățile aplicației CBR astfel:
14

Simularea Sistemelor de Comunicații

Laborator 1

   

Items to Send: 100 Interval: 200 ms Start Time: 20 s End Time: 50 s

Q.4. Se rulează iar simularea și se compară momentul la care a fost trimis primul pachet de către client cu momentul la care primul pachet este primit de către server. Luând în considerație aceste valori, care este cauza pierderilor de pachete și care ar putea fi soluția (sau soluțiile) pentru remedierea problemei? Se revine în modul Design prin apăsarea butonului Switch to Design Mode. Se activează modul Packet Tracer astfel: Se face clic pe Scenario Properties > Open Scenario Properties, apoi tabul Statistics and Tracing. Se introduc următoarele:      Enable Packet Tracing: Yes Trace All Layers: Yes Trace Direction: Both Trace Included Headers: No Enable Access List Tracing: No

E.7. Se rulează iar simularea, iar după terminarea acesteia se face clic pe fișierul .trace corespunzător din fereastra File system din bara de componente și se apasă Open din meniul apărut:

15

Simularea Sistemelor de Comunicații

Laborator 1

Se va deschide modul Packet Tracer și fereastra va arăta asemănător cu aceasta:

4. Simularea unei rețele fără fir S.3. Se creează un nou scenariu cu durata de 2 minute. Se salvează cu numele Lab1-2. Se verifică dimensiunile zonei de lucru. Aceasta trebuie să fie de 1500m x 1500m. Dimensiunile se modifică din Scenario Properties > Terrain > Coordinate System > Scenario Dimensions.

Se plasează 7 noduri pe diagonală de la colțul din stânga-sus la cel din dreapta-jos.

16

Simularea Sistemelor de Comunicații

Laborator 1

Fiecare scenariu are o subrețea fără fir (wireless subnet) implicită. Orice nod plasat în zona de lucru ce nu este conectat la un alt dispozitiv sau o altă subrețea face parte din subrețeaua implicită. Aceasta nu este reprezentată în nici un fel pe zona de lucru. Se face clic pe View > Display Settings (sau pe butonul din bara de aspect) și se bifează IP Address. Astfel, adresele IP asociate fiecărui nod vor apărea pe zona de lucru. Se observă astfel că toate nodurile fac parte din aceeași subrețea. Se face clic pe Scenario Properties > Channel Properties. Se fac următoarele setări:    Number of Channels: 1 Channel Frequency[0]: 2.0 GHz Pathloss Model[0]: FreeSpace (modelul atenuării de cale în spațiu liber)

E.8. Se definește o aplicație CBR de la nodul 1 la 7. Se aleg parametrii aplicației astfel încât să încapă în durata de 2 minute a simulării. Se rulează scenariul și se vizualizează rezultatele în Analyzer, notând numărul total de pachete trimise și recepționate. Se revine în modul Design. Modificarea proprietăților nivelului fizic se poate face fie la nivel de subrețea, fie la nivel de nod, fie la nivel de interfață. Fiind mai comod, se vor modifica proprietățile subrețelei fără fir implicite. Se face clic în panoul inferior pe Table View > Networks, se dă clic dreapta pe Default Wireless Subnet și se alege Properties apoi din fereastra care apare, tabul Physical Layer.

17

Simularea Sistemelor de Comunicații

Laborator 1

Se modifică puterile de emisie la valorile 11, 12, 15, respectiv 20 dBm.

E.9. Se rulează scenariul, se vizualizează rezultatele și se notează din nou, numărul de pachete trimise și recepționate. E.10. Se revine în modul Design și, folosind procedura descrisă mai sus, se deschide fereastra ce conține proprietățile nivelului fizic. Se modifică rata de date la 5.5 Mbps și se reia simularea. Q.5. Ce se întâmplă acum? (Indicație: Se verifică statisticile de la nivelul MAC > 80211DCF > Packet Drops due to retransmission limit, RTS packets sent și CTS packets sent) Q.6. Se poate modifica scenariul pentru a nu avea pierderi de pachete la rata de transmisie de 2 Mbps?
18

Laborator 2 Simularea rețelelor complexe folosind EXata
Scopul acestui laborator este de a dezvolta următoarele abilități:       Dezvoltarea unor rețele cu fir complexe Depanarea încărcării legăturilor radio Crearea unui scenariu cu mai mult de un canal radio Diferențierea între diversele tipuri de antene Rularea în serie a scenariilor (Batch Experiment) Folosirea modelelor de fading

1. Simularea unei rețele cu fir complexe. Crearea rutelor statice. S1. Se creează un scenariu cu următoarea topologie:    Nodurile 1 și 2 sunt conectate la nodul 3 printr-o legătură punct-la-punct de 10 Mbps cu o întârziere de propagare de 1 ms Nodul 3 este conectat la nodul 4 printr-o legătură punct-la-punct de 1 Mbps cu o întârziere de propagare de 1 ms Nodurile sunt plasate ca în figură:

Simularea Sistemelor de Comunicații

Laborator 2

Nodul 1 și nodul 2 trimit fiecare trafic tip CBR către nodul 4. Fiecare trimite 750 de pachete de date (512B) la fiecare 1 ms începând de la 0 s la 30 s. Se face clic pe Open Display Settings și se bifează IP Address și Interface Name. Se notează adresele IP corespunzătoare interfeței pentru fiecare nod. Folosind un editor de text, se creează un fișier numit Lab2-1.routes-static. Folosind adresele IP ale interfețelor (dacă nu se disting, se poate folosi zoom), se definesc următoarele rute ca în figură:

Sintaxa unui fișier de rutare este următoarea: <identificator nod> <adresa destinației> <adresa următorului hop> Se verifică dacă intrările respectă sintaxa și se salvează și închide fișierul. Nu are importanță unde este salvat fișierul, dar cel mai indicat este în același director cu scenariul. Se dă clic pe Table View în panoul inferior și apoi sub tabul Networks, se selectează, ținând apăsat Ctrl toate elementele existente (sau alternativ, pe zona de lucru se selectează, tot cu Ctrl, toate cele trei legături), se dă clic dreapta și se alege Properties. În fereastra care apare, se face clic pe Routing Protocol și se specifică următoarele:   Specify Static Routes: Yes Static Route File: se navighează către directorul unde a fost salvat fișierul de rutare și se alege acesta

20

Simularea Sistemelor de Comunicații

Laborator 2

În Display Settings se bifează Queues pentru a vizualiza cozile de așteptare ale nodurilor. Se apasă Run și, înainte de a apăsa Play, se verifică sub Event Filters, activarea filtrului Packet Queuing. Se apasă Play pentru a rula scenariul. Se vizualizează rezultatele. E1. Notați numărul de pachete primite de server, respectiv trimise de client. Notați numărul de pachete aruncate de nivelul rețea (Network->FIFO->Total Packets Dropped) E2. Modificați parametrii scenariului astfel încât să nu mai existe pachete aruncate. E3. Schimbați direcția uneia dintre legăturile CBR (de ex: în loc de 1->4 să fie 4->1). Modificați corespunzător fișierul Lab2-1.routes-static. Rulați din nou scenariul și notați statisticile cerute la E1 2. Simularea unei rețele complexe fără fir. Crearea mai multor canale radio. S2. Se creează un nou scenariu numit Lab2-2. Nodurile se plasează conform ilustrației de mai jos:

21

Simularea Sistemelor de Comunicații

Laborator 2

Se deschide Scenario Properties > Channel Properties. Se adaugă un nou canal radio modificând Number of Channels la valoarea 2. Se apasă iconița pentru a vizualiza și modifica proprietățile celor două canale radio. Canalele apar într-o listă și sunt indexate începând cu 0. Se modifică frecvența canalului 1 la valoarea 2,5 GHz.

22

Simularea Sistemelor de Comunicații

Laborator 2

Se adaugă două subrețele fără fir, și se conectează nodurile ca în figura de mai sus folosind unealta Link din panoul lateral. Se modifică proprietățile ambelor subrețele astfel încât fiecare să utilizeze canale radio diferite. Pentru aceasta se face clic dreapta pe fiecare din subrețelele reprezentate pe zona de lucru, se alege Properties > Physical Layer și se editează valorile câmpurilor Listenable și Listening Channel Mask, astfel încât să aibă valorile 10 pentru cea din stânga și 01 pentru cea din dreapta:

23

Simularea Sistemelor de Comunicații

Laborator 2

Se adaugă o aplicație Traffic Gen de la nodul 1 la nodul 5 cu următorii parametri:  Start Time Distribution: Deterministic o Start Time: 1 s  Duration Distribution: Deterministic o Duration Time: 30 s  Packet Size Distribution: Uniform o Smallest Packet Size: 1 byte o Largest Packet Size: 2020 bytes  Packet Interval Distribution: Uniform o Shortest Packet Interval: 10 ms o Longest Packet Interval: 100 ms Restul parametrilor rămân cei impliciți. E4. Se rulează simularea și se notează rezultatele (numărul de pachete – data units – trimise și recepționate, întârzierea cap-la-cap și jitter-ul). Dacă numărul de pachete recepționate este mai mic decât cel de pachete trimise, se notează și câte pachete au fost aruncate (fie la Network fie la MAC->802.11DCF->Packet drops due to retransmission limit).
24

Simularea Sistemelor de Comunicații

Laborator 2

3. Rularea experimentelor în serie (batch mode). Folosirea modelelor de propagare. S3. Se creează un nou scenariu numit Lab2-3. Acesta va consta în următoarele:  25 de noduri distanțate la 300m unul de celălalt o Se alege din meniu Tools > Node Placement. Se introduc setările:  Number of Nodes: 25  Placement Model: Grid  Grid Unit: 300 o Se apasă OK

O aplicație CBR de la nodul 21 la nodul 5

25

Simularea Sistemelor de Comunicații

Laborator 2

Se folosește modul de execuție în serie (Batch Mode) pentru a rula scenariul cu următoarele configurații: o Model de propagare deasupra suprafețelor reflectante (Two-Ray) sau în spațiu liber (Free Space) (Scenario Properties->Channel Properties>Pathloss Model) cu înălțimile antenelor de 1,5 și 3,5 m (Default Wireless Subnet Properties->Physical Layer->Specify Antenna Model From File>Antenna Height)

Pentru a rula în modul Batch, se lucrează cu tabul Batch Experiments din panoul inferior. Parametrii ce trebuie modificați în cursul simulărilor multiple trebuie adăugați fiecare în tabelul cu parametri din Batch Experiments. Acest lucru se face mergând la fereastra de editare a parametrului ca în cazul unui scenariu obișnuit, se face click pe acel parametru și se apasă butonul Add to Batch. Atenție! Dacă un parametru este dependent de un parametru părinte, atunci acela trebuie adăugat primul în tabelul cu parametri. De exemplu, pentru a adăuga Pathloss Model, trebuie mai întâi adăugat parametrul Number of Channels

26

Simularea Sistemelor de Comunicații

Laborator 2

Pentru a specifica valorile pentru fiecare parametru se apasă butonul corespunzător fiecărui parametru din coloana Value ceea ce va duce la deschiderea unui editor pentru specificarea parametrilor. Se introduce fiecare parametru și se apasă Add de fiecare dată. După ce se introduc toți parametrii, se închide editorul. Se apasă apoi butonul Run Experiments, ceea ce va duce la apariția ferestrei de alegere a modului de rulare. Se alege Non-Interactive.

În modul non-interactiv, toate experimentele sunt executate unul după altul fără intervenția utilizatorului. Execuția scenariului nu este animată. Fiecare din experimente se numește Experiment-1, Experiment-2 ș.a.m.d. și fișierele asociate fiecărui experiment sunt denumite corespunzător. Acestea sunt plasate automat într-un subdirector numit BatchRun din directorul scenariului. E5. Se analizează statisticile rezultate în urma execuției scenariului și se identifică experimentul (sau experimentele) cu cele mai bune rezultate (pierderi minime de pachete). Se notează, deschizând fișierul .config corespunzător ce valori ale parametrilor au fost folosite. S4. Pe baza experimentului de mai sus, se rulează același scenariu în mod Batch cu următorii parametri:   Parametri impliciți Model de propagare Two-Ray cu o înălțime a antenei de 1.5 m: o Fără fading o Fading Rayleigh
27

Simularea Sistemelor de Comunicații

Laborator 2

o Fading Rice (K = 5) E6. Se vizualizează și se compară rezultatele simulărilor, notând valorile parametrilor folosiți pentru care s-au obținut rezultatele cele mai bune. 4. Folosirea antenelor directive în simulări Modelele de antenă prezente în EXata sunt următoarele:   omnidirectivă: are același câștig pentru orice direcție; orientabilă (steerable): direcția lobului principal poate fi variată, pentru maximizarea câștigului într-o anumită direcție; cu comutare a lobului principal (switched beam): are mai multe caracteristici de radiație dintre care este aleasă cea cu câștigul cel mai mare pentru direcția dată.

S5. Se creează un nou scenariu intitulat Lab2-4. Se plasează 3 noduri în linie la o distanță de aproximativ 500 m între ele și se creează o aplicație CBR între nodurile 1 și 3. Se vor folosi setările implicite mai puțin modelul de antenă.

Se setează modelul de antenă la antenă direcțională tot la nivelul subrețelei fără fir implicite. În tabul Physical Layer din proprietățile acesteia, se scriu următoarele:   Specify Antenna Model from Files: No Antena Model: Switched Beam

28

Simularea Sistemelor de Comunicații

Laborator 2

Antena Azimuth Pattern File: se navighează EXATA_HOME/data/antenna/default.antenna-azimuth

și

se

alege

fișierul

Apoi, în tabul MAC Layer se setează opțiunea Enable Directional Antenna Mode: Yes și se lasă setările care apar implicite.

29

Simularea Sistemelor de Comunicații

Laborator 2

Se rulează scenariul, încetinind viteza de execuție pentru a se putea observa caracteristicile de radiație ale antenelor. Dacă simularea rulează prea repede chiar și la viteza cea mai mică, se poate mări durata simulării împreună cu o creștere corespunzătoare a numărului de pachete generate.

Se observă rezultatele și apoi se încearcă următoarea modificare:

30

Simularea Sistemelor de Comunicații

Laborator 2

E7. Se adaugă încă două noduri în mijloc, între cele 3 noduri. Se rulează scenariul și se observă rezultatele, apoi se revine la modul Design și se mută cele două noduri în sus sau în jos. Se rulează din nou scenariul. Ce se observă?

Se revine în modul Design și se mută unul din noduri înapoi pe linie. Se setează, folosind pașii de mai devreme, modelul de antenă la steerable antenna. Se alege fișierul steerable.antenna-azimuth:

E8. Se rulează scenariul și se observă diverșii lobi laterali.
31

Simularea Sistemelor de Comunicații

Laborator 2

32

Laborator 3 Simularea unei rețele GSM. Folosirea utilitarelor auxiliare ale EXata
1. Utilitarul Radio Range Programul radio_range, localizat în directorul EXATA_HOME/bin este un utilitar în linie de comandă care întoarce acoperirea radio a unui nod, lunând în considerație setul de parametri specificați în fișierul de configurare (.config) al scenariului. Presupune că nu există interferențe de la celelalte emițătoare. Valorile date de acest utilitar sunt aproximative, din moment ce componentele aleatoare cum ar fi fadingul și umbrirea nu sunt luate în considerație la estimarea distanței. Pentru a folosi programul radio range, se deschide o linie de comandă se schimbă directorul curent cu cel în care e plasat scenariul și se apelează programul ca mai jos:
c:\snt\exata\2.2\scenarios\user\director_nume_scenariu>..\..\..\bin\radi o_range.exe nume_scenariu.config

Se va afișa ceva similar cu linia de mai jos: (exemplu pentru 802.11):
radio radio radio radio range: range: range: range: 483.741m, 370.968m, 356.973m, 283.554m, for for for for 802.11b 802.11b 802.11b 802.11b data data data data rate rate rate rate 1.0 Mbps 2.0 Mbps 5.5 Mbps 11.0 Mbps

Simularea Sistemelor de Comunicații

Laborator 3

2. Scriptul Urban Grid Scriptul Urban Grid (urban_grid.pl) este un script scris în limbajul Perl plasat în directorul EXATA_HOME/bin care poate fi folosit pentru a genera eșantioane de date cu caracteristici ale terenului (clădiri, străzi, parcuri, stații de metrou) în format de teren specific EXata (un fișier tip .xml). Datele sunt generate în coordonate carteziene. Străzile sunt aranjate într-o grilă. O stație de metrou este plasată în fiecare din cele 4 colțuri ale grilei. Un bloc al grilei trebuie să fie un parc. Toate celelalte blocuri au clădiri plasate aleator. Înălțimile clădirilor sunt alese la întâmplare dintr-o gamă specificată. Liniile sunt numerotate începînd cu 0, crescînd în direcția axei Y. Coloanele sunt numerotate începând de la 0, crescând în direcția axei X. Semafoare nu sunt generate cu acest utilitar. Datele de ieșire sunt afișate pe ecran dacă nu sunt direcționate către un fișier. Pentru a folosi scriptul Urban Grid, se tastează următoarea comandă (toți parametrii trebuie scriși pe o singură linie):
perl urban_grid.pl <num_linii> <num_col> <lat_grila> <lat_strada> <linie_parc> <coloana_parc> <inalt_min> <inalt_max>

unde
<num_linii> <num_col> <lat_grila> <lat_strada> <linie_parc> <coloana_parc> <inalt_min> <inalt_max>

numărul de linii generate numărul de coloane generate Distanța dintre blocuri în metri Lățimea străzilor în metri Numărul liniei unde parcul este situat Numărul coloanei unde parcul este situat Înălțimea minimă a unei clădiri Înălțimea maximă a unei clădiri

Exemplu de utilizare(textul afișat în consolă va fi direcționat către fișierul mapdata001.xml) :
perl urban_grid.pl 3 3 320 20 1 1 50 100 > ../mapdata001.xml

Notă: Comanda perl va funcționa numai dacă este instalată o variantă de perl pe stația de lucru. Comanda de mai sus va produce fișierul de teren mapdata001.xml plasat în directorul EXATA_HOME. Pentru a-l încărca într-un scenariu din EXata, se procedează în felul următor:
34

Simularea Sistemelor de Comunicații

Laborator 3

 

Se creează un nou scenariu și se salvează cu numele ales Se navighează la Scenario Properties > Terrain și se introduc umătoarele: o Specify Urban Terrain Features: Yes o Urban Terrain Features Format: EXata Terrain Format o Number of Terrain Files: 1 o Urban Terrain Features File[0]: cale_către_fișier/mapdata001.xml Se apasă OK

Spațiul de lucru arată astfel:

Aceasta este o privire de sus, corespunzătoare modului de vizualizare implicit al EXata și anume X-Y View. Pentru a vedea terenul din perspectivă, se va alege modul 3-D View din meniul de vizualizare:

Acum, terenul arată astfel:

35

Simularea Sistemelor de Comunicații

Laborator 3

Pentru a manipula vizualizarea în mod 3-D a scenariului, se pot folosi următoarele butoane:     Rotate (3D View) Pan Zoom - Rotește imaginea

- Mută/mișcă vederea scenariului - Mărește - Vedere de aproape a unei anumite porțiuni a spațiului de

Binoculars (3D View) lucru Free Camera (3D View)

- Mișcare liberă a camerei

Notă: Scriptul urban_grid.pl generează o zonă dreptunghiulară cu blocurile ocupate fiecare fie de parc sau clădiri. Pentru a genera un teren oarecare dorit există două variante: 1. Se generează folosind scriptul Urban Grid o grilă cu dimensiuni acoperitoare relativ la terenul dorit, după care se editează fișierul .xml generat, ștergând din acesta etichetele corespunzătoare obiectelor nedorite. De exemplu, dacă se dorește ștergerea unei clădiri, se șterge marcajul <Building>....</Building> corespunzător; dacă se dorește ștergerea unei străzi, se șterge marcajul <Street_Segment>...</Street_Segment> ș.a.m.d. 2. Dacă se dispune de terenul dorit în format ESRI (extensia .shp), atunci se poate folosi utilitarul Shapefile-to-XML disponibil în același director. Acesta va converti terenurile din format ESRI în format .xml folosind următoarea sintaxă:
shptoxml [<opțiuni>] <nume_fișier>

Lista cu opțiuni, precum și alte detalii se găsesc în Anexa D5 din EXata User’s Guide

36

Simularea Sistemelor de Comunicații

Laborator 3

3. Simularea unei rețele GSM E1. Se creează un nou scenariu cu numele Lab3-1.config și se creează 8 canale radio cu următoarele proprietăți:    4 canale (Fiecare este o pereche de legături ascendentă și descendentă) câte unul pentru fiecare stație de bază Frecvența pe canalul ascendent este fa = 890 MHz + 0,2*n (unde n este numărul canalului) Frecvența pe canalul descendent este fd = fa + 45 MHz

1. Se completează următoarele câmpuri la Scenario Properties > Channel Properties: o Number of Channels: 8 o Channel Frequency[0]: 935 MHz o Channel Frequency[1]: 890 MHz o Channel Frequency[2]: 935.2 MHz o Channel Frequency[3]: 890.2 MHz o Channel Frequency[4]: 935.4 MHz o Channel Frequency[5]: 890.4 MHz o Channel Frequency[6]: 935.6 MHz o Channel Frequency[7]: 890.6 MHz 2. La Statistics and Tracing > File Statistics se bifează GSM 3. Se face clic pe Tools > Toolset Editor > Customized Toolbar și se adaugă nodurile GSM-BASE-STATION, GSM-MOBILE-STATION și GSM-MOBILESWITCHING-CENTER în bara de unelte Devices. Se apasă OK. (Dacă sunt deja prezente, se ignoră acest pas.)

37

Simularea Sistemelor de Comunicații

Laborator 3

4. Se plasează 2 stații de bază împreună cu un MSC între acestea. Se conectează toate BS-urile printr-o subrețea fără fir. Se conectează fiecare BS cu MSC-ul. Apoi se adaugă 7 stații mobile. Zona de lucru ar trebui să arate acum aproximativ ca în figura de mai jos.

5. Se configurează GSM la nivelul stațiilor de bază și MSC: o Din Table View->Networks se face clic dreapta pe Wireless Subnet (nu Default Wireless Subnet), se alege Properties > Physical Layer și se completează următoarele:  Listening Channel Mask: 00000000 (0 pentru toate canalele)  Radio Type: GSM  Packet Reception Model: BER-based Reception Model  Number of BER Tables: 1  BER Table[0]: C:/snt/exata/2.2/data/modulation/gmsk.ber o Se trece la MAC Layer și se completează:  MAC Protocol: GSM  GSM Control Channel List: poate rămâne valoarea implicită, va fi configurat ulterior la nivel de nod. o La Network Layer > General Properties se scrie:  Network Protocol: GSM Layer3  GSM Node Type: Base Station
38

Simularea Sistemelor de Comunicații

Laborator 3

o Se apasă OK o Se face clic dreapta pe Default Wireless Subnet, se alege Properties > Physical Layer și se completează următoarele:  Listening Channel Mask: 00000000 (0 pentru toate canalele)  Radio Type: GSM  Packet Reception Model: BER-based Reception Model  Number of BER Tables: 1  BER Table[0]: C:/snt/qualnet/5.0/data/modulation/gmsk.ber o Se trece la MAC Layer și se completează:  MAC Protocol: GSM  GSM Control Channel List: [0 4] (canalele de control ale tuturor stațiilor de bază din simulare) o La Network Layer > General Properties se scrie:  Network Protocol: GSM Layer3  GSM Node Type: Mobile Station o Se face apoi clic dreapta pe Link, se alege Properties > Network Protocol și se alege  Network Protocol: GSM Layer3 o Se repetă pentru cealaltă legătură punct-la-punct o Se face clic pe MSC și se specifică:  La Network Layer > General Properties se scrie:  Network Protocol: GSM Layer3  GSM Node Type: Mobile Switching Center  6. Se alocă un canal de control pentru fiecare stație de bază: o Se face clic dreapta pe BS1 și se alege Properties > Interfaces > Interface# > MAC Layer (# corespunde numărului interfeței GSM) o Se introduc următoarele:  BS Downlink Control Channel: [0]  Location Area Code: 226  Cell ID: 1  Channel Range: 0-3  Neighboring Base Stations: 4-226-2 o Se repetă pentru BS2:  BS Downlink Control Channel: [4]  Location Area Code: 226  Cell ID: 2  Channel Range: 4-7  Neighboring Base Stations: 0-226-1 Notă: În mod normal, valoarea pentru Neighboring Base Stations nu o să poată fi selectată pentru BS1, deoarece BS2 încă nu a fost configurată. După ce BS2 este configurată, se revine și se configurează Neighboring Base Stations pentru BS1. Dacă tot nu apare nimic, va trebui editat manual fișierul Lab3-1.gsm după sintaxa următoare:
39

Simularea Sistemelor de Comunicații # GSM-BS [NodeId] [Neigh.BS Info] [LAC] [CellId] [ChannelRange] [MSC

Laborator 3 NodeId]

GSM-BS 2 226 2 4-7 3 0-226-1 GSM-BS 1 226 1 0-3 3 4-226-2

7. Se configurează canalele de control pentru stațiile mobile: o Se face clic dreapta pe una din stațiile mobile și se alege Properties > Interfaces > Interface0 > MAC Layer o Se introduc următoarele:  MAC Protocol: GSM  GSM Control Channel List: [0 4] o La Network Layer > Network Protocol se alege GSM Node Type: Mobile Station o Se repetă pașii pentru celelalte 6 stații 8. Se configurează aplicațiile: o Din bara de aplicații, se apasă pe GSM și se creează astfel două apeluri de voce de la nodul 1 la nodul 3 și, respectiv, de la nodul 5 la nodul 6 o Pentru apelul de la nodul 1 la nodul 3, se configurează (se face clic dreapta pe GSM și se alege Properties):  Call Start Time: 18S  Call Duration: 10S o Pentru apelul de la nodul 5 la nodul 6, se scrie:  Call Start Time: 15S  Call Duration: 12S 9. Se rulează simularea și se notează următorii parametri:  Network: o GSM_MS  Calls Received  Calls initiated  Channel Assignments received  Location Update Request Received  Traffic Packets Sent  Traffic Packets Received o GSM_MSC  Location Update Request Received  Traffic Packets Transferred o GSM_BS  Traffic Packets (On Air) Received  Traffic Packets (On Air) Sent  MAC o GSM_MS  Cell Selection  Cell Selection Failures
40

Simularea Sistemelor de Comunicații

Laborator 3

Q1: Comparați numărul de pachete trimise/primite de stațiile mobile cu numărul de pachete trimise/primite de stațiile de bază, respectiv numărul de pachete transferate de MSC E2: Se creează un fișier de teren, conform procedurii de la punctul 2. Numărul de clădiri, precum și înălțimile lor sunt la alegere. Se poziționează una dintre stațiile de bază deasupra unei clădiri. Pentru a-i modifica coordonata pe axa z (pe înălțime), se face clic pe nodul respectiv și se completează valoarea înălțimii dorite în câmpul Z al indicatorilor de poziție. Se rulează din nou scenariul. Q2:Se notează diferențele (dacă există) dintre valorile statisticilor generate la scenariul precedent și cele generate acum.

E3: Se utilizează utilitarul radio_range și se notează acoperirea radio a unei stații de bază.

41

Laborator 4 Rețele wireless avansate
În acest laborator se vor atinge următoarele obiective:   Crearea și configurarea unor scenarii în tehnologiile WiMAX și UMTS Configurarea protocoalelor de rutare între rețele UMTS și IP

1. Configurarea unui scenariu în tehnologia WiMAX S1. Se creează un scenariu (Lab4-1) ce conține două subrețele. Subrețeaua 1 conține nodurile de la 1 la 10, iar subrețeaua 2 nodurile de la 11 la 20. Ambele au protocol MAC de tip 802.16, iar nodurile 1 și 15 sunt stații de bază ale subrețelei 1, respectiv 2. Cele 2 stații de bază sunt conectate printr-o legătură de tip punct-la-punct.

Se face clic pe Scenario Properties > Channel Properties și se introduc următorii parametri:   Number of Channels: 2 Pentru fiecare canal se introduc aceiași parametri: o Channel Frequency: 2.4 GHz o Pathloss Model: Two-Ray o Restul parametrilor rămân cei impliciți

Se face clic dreapta pe fiecare din subrețelele fără fir și în Properties > Physical Layer se introduc:  Listenable și Listening Channel Mask: o 10 pentru subrețeaua 1 o 01 pentru subrețeaua 2 Radio Type: 802.16 Radio

Simularea Sistemelor de Comunicații

Laborator 4

Restul parametrilor impliciți

În MAC Layer se introduc următoarele:    MAC Protocol: 802.16 Station Type: Subscriber Station Restul parametrilor impliciți

În acest moment, toți parametrii configurați la nivel de subrețea vor fi preluați și de către nodurile ce aparțin acestora. Însă, nodurile 1 și 15, fiind stații de bază, fac excepție și trebuie configurate separat. Se face clic dreapta pe nodul 1, și se alege Properties > Interfaces > Interface# > MAC Layer, unde # este numărul interfeței care are ca MAC Protocol 802.16. Se pune Station Type: Base Station și se lasă restul parametrilor impliciți. Se setează înălțimea antenei de emisie la 10m. Similar se procedează și pentru nodul 15.

E1. Se creează o aplicație CBR între nodul 9 și nodul 14. Se rulează simularea, se vizualizează rezultatele. Se notează următoarele:    momentele recepționării primului și ultimului pachet de date; întârzierea cap-la-cap numărul total de pachete primite și recepționate.

Dacă sunt pierderi de pachete sau o întârziere excesivă a pachetelor, atunci se încearcă ajustarea în continuare a parametrilor scenariului pentru obținerea unor rezultate cât mai bune (pe baza a ceea ce s-a studiat deja în laboratoarele trecute). S2. Se copiază scenariul folosind Save As și se salvează cu numele Lab4-2. Se va adăuga acum mobilitate nodului client (nodul 9). Pentru aceasta se face clic pe unelta Mobility (iconița ) din panoul lateral. Apoi se face clic pe nodul pentru care se vrea adăugată mobilitatea și apoi se face clic pe zona de lucru în punctul unde urmează să se deplaseze nodul. Va apărea un steguleț (numit și punct de referință sau waypoint) care va reprezenta
43

Simularea Sistemelor de Comunicații

Laborator 4

poziția nodului la un moment dat. Se repetă acțiunea până când zona de lucru arată ca mai jos. Se observă că punctele astfel unite dau traiectoria pe care se va deplasa nodul.

Se face acum clic dreapta pe unul din punctele de referință și se alege Properties ceea ce va deschide un editor unde se pot modifica proprietățile acestor puncte. Importante sunt coloanele Simulation Time (momentul simulării la care nodul va fi în punctul respectiv) și coordonatele punctului. Pe baza acestora, se poate determina viteza pe care o va avea nodul. Trebuie avut grijă să nu se definească o viteză prea mare, căci va duce la pierderi de pachete. Tehnologia WiMAX (în teorie) permite recepție bună chiar și în condiții de mobilitate foarte mare, până la 125 km/h. Pentru simularea de față, se recomandă o viteză maximă de 60-80 km/h.

44

Simularea Sistemelor de Comunicații

Laborator 4

Se face clic dreapta pe nodul 1 și se merge la Properties > Interfaces > Interface# > Mac Layer. Aici se introduc următoarele:    Enable Mobility Mode: Yes Neighbor BS List: {15}. Restul parametrilor rămân cei impliciți

Se procedează similar pentru nodul 15, cu deosebirea că stația de bază vecină va fi 1.

Se face click dreapta pe fiecare din subrețelele fără fir și în Properties > MAC Layer se pune Enable Mobility Mode: Yes, restul parametrilor rămânând cei impliciți.

45

Simularea Sistemelor de Comunicații

Laborator 4

Pentru stația mobilă, se schimbă în Properties > Interfaces > Physical Layer > Listenable și Listening Channel Mask la valoarea 11. Astfel, stația va putea asculta și canalul vecin și se va putea conecta la stația de bază vecină când puterea semnalului recepționat de la stația de bază curentă scade sub -78 dBm. (vezi parametrul Handover RSS Trigger din figura de mai sus), adică va putea efectua un transfer. E2. Se rulează simularea și se vizualizează rezultatele. Se notează aceiași parametri ca la E1 și, în plus, de sub MAC->802.16e:      Number of handovers performed Number of Neigbor BS Scanning performed Number of MOB-MSHO-REQ messages sent și rcvd Number of MOB-BSHO-RSP messages sent și rcvd Number of MOB-HO-IND messages sent și rcvd

E3. Se schimbă protocolul de rutare la AODV. Se selectează ambele subrețele și se modifică Properties > Routing Protocol > General > Routing Protocol for IPv4 la valoarea AODV. Se păstrează toate celelalte setări implicite.

Atenție! Modificarea protocolului de rutare la nivel de subrețea va asigura și modificarea protocolului de rutare la nivelul nodurilor ce aparțin acestora, dar mai există legătura punct-lapunct dintre cele două stații de bază. Se efectuează clic dreapta pe legătură și se urmează aceiași pași pentru a seta protocolul de rutare. Se rulează din nou, se verifică și se notează dacă apar îmbunătățiri ale rezultatelor. Dacă nu, se pot micșora intervalul de expirare a rutei active (Active Route Timeout Interval) și intervalul de expirare a rutei curente (My Route Timeout Interval). De reținut că ultima trebuie să fie dublul primeia. Se vor nota aceiași parametri ca la E1.
46

Simularea Sistemelor de Comunicații

Laborator 4

2. Configurarea unui scenariu UMTS S3. Se configurează următorul scenariu (Lab4-3): 1. Se selectează nodurile UMTS din Devices de pe panoul lateral și se plasează 6 noduri UMTS-UE, 3 noduri UMTS-NodeB, , 2 noduri UMTS-RNC și câte un nod UMTSGGSN, UMTS-SGSN, UMTS-HLR. Notă. Dacă nodurile nu sunt disponibile pe panou, acestea trebuie adăugate. Se face clic pe Tools > Toolset Editor > Customized Toolbar și se adaugă nodurile mai sus menționate în bara de unelte Devices.

2. Se plasează o subrețea fără fir pe zona de lucru. Se conectează cele 6 UE și cele 3 NodeB la aceasta. 3. Se conectează 2 din cele 3 NodeB la un RNC, iar cel de-al treilea NodeB se conectează la celălalt RNC, folosind legături punct-la-punct Cele două RNC-uri se conectează la SGSN 4. Se creează rețeaua backbone. Se conectează nodul SGSN la GGSN și HLR. HLR se conectează la GGSN.

47

Simularea Sistemelor de Comunicații

Laborator 4

5. Se verifică dacă Cellular Layer3->UMTS Layer 3 e specificat la Network Protocol pentru toate nodurile. 6. Se creează două canale radio cu parametri impliciți. 7. Se configurează Listenable Channel Mask. Parametrul va permite UE-urilor să asculte canalul descendent (downlink) și NodeB-urilor să asculte canalul ascendent (uplink) al ariei de control SGSN căreia îi aparțin. Cum, de obicei, sunt mai multe UEuri decât NodeB-uri într-un scenariu, poate fi mai comod să se configureze măștile pentru UE-uri prin configurarea la nivel de subrețea, urmând a se configura masca pentru fiecare NodeB individual la nivel de interfață. Așadar, pentru subrețeaua fără fir din scenariu (cea la care sunt conectate UE-urile) se pune Listenable Channel Mask 10, iar pentru fiecare NodeB se pune Listenable Channel Mask 01 (pe interfața corespunzătoare legăturii UMTS). Se procedează similar și pentru Listening Channel Mask. 8. Se configurează pentru subrețea următoarele  MAC Protocol: Cellular MAC  Cellular MAC Protocol: UMTS Layer 2  Radio Type: Cellular PHY  Cellular PHY Model: UMTS PHY Model 9. Pentru NodeB-uri (nodurile 7,8 și 9) se configurează Downlink Channel 0 și Uplink Channel 1 la Node Configuration->Network Layer

48

Simularea Sistemelor de Comunicații

Laborator 4

10. Pentru SGSN și GGSN se configurează My Home Location Register Server 14 și, doar pentru SGSN, My Primary GGSN Node 13. Tot sub Node Configuration>Network Layer

11. Se configurează protocolul de rutare pentru SGSN, GGSN și HLR Bellman-Ford (Node Configuration->Routing Protocol). 12. Se creează o rețea IP. Pentru aceasta se plasează 3 noduri Default pe zona de lucru. Se conectează un nod (nodul 15) la celelalte 2 (nodurile 16 și 17) și la GGSN prin legături punct-la-punct.

49

Simularea Sistemelor de Comunicații

Laborator 4

13. Se configurează gateway-ul implicit pentru nodurile 15, 16, 17 să fie GGSN-ul. Se merge la Properties > Node Configuration > Routing Protocol. Se pune Configure Default Gateway:Yes și Default Gateway: 13. 14. Se configurează protocolul de rutare pentru nodurile IP să fie RIP. Se verifică faptul că pe interfața GGSN către rețeaua IP, valoarea Network Layer este IPv4, iar protocolul de rutare este tot RIP. Legătura punct-la-punct dintre GGSN și nodul 15 trebuie să fie de tip IPv4 nu Cellular Layer3.

15. Se configurează gateway-ul implicit pentru SGSN nodul 15. 16. Se configurează o aplicație CBR între unul din nodurile UE (nodul 4, de exemplu) și un nod din rețeaua IP (nodul 16, de exemplu). Se configurează următorii parametri:  Items to Send: 1000  Item Size: 256  Interval: 32 ms  Precedence: 4
50

Simularea Sistemelor de Comunicații

Laborator 4

Parametrul Precedence specifică din ce clasă QoS face parte aplicația (vezi Anexa 2). O valoare de 4 înseamnă clasa Streaming. E4. Se salvează scenariul și se rulează, notându-se rezultatele ca la E1. Q1. Verificați dacă apar pierderi de pachete și dacă pot fi îmbunătățite performanțele (vezi și Anexele 1 și 2)

51

Simularea Sistemelor de Comunicații

Laborator 4

Anexe 1. Rutarea între rețele UMTS și IP Rutarea în scenariile UMTS comportă două aspecte:  Este necesar un protocol de rutare în rețeaua core UMTS pentru a permite rutarea pachetelor între SGSN-uri, GGSN-uri și HLR-uri care ar putea fi la mai multe noduri distanță unul de altul. Rețelele IP au propria lor arhitectură IP. Pentru a ruta pachetele între PLMN și IP, sunt necesare mai ales informații despre nodurile de la marginile celor două rețele. Acestea sunt descrise mai jos.

Configurările nodurilor marginale: Acestea trebuie configurate pentru a permite următoarele:   Rutarea de la rețeaua UMTS către IP. Nodul GGSN trebuie să ruteze pachetele către gateway-ul IP corespunzător. Rutarea de la rețelele IP către UMTS. Următoarele considerații se aplică: o Ruterele IP de obicei nu știu adresa IP individuală atribuită nodului UE. Totuși, trebuie să știe cum să ajungă la rețeaua UMTS luată ca un întreg. o Segmentele de adrese IP alocate unui PLMN sunt de obicei configurate static. o Informațiile globale de rutare pentru segmentele de adrese IP ale fiecărei PLMN trebuie făcute cunoscute rețelelor IP.

1.1. Tehnci pentru rutarea inter-domeniu 1.1.1. Rutarea folosind BGP Protocolul BGP (Border Gateway Protocol) poate fi folosit pentru a conecta domeniile de rutare ale rețelelor UMTS și IP între ele. Următorii pași trebuie urmați pentru a configura rutarea BGP: 1. Se tratează domeniul de rutare PLMN ca un sistem autonom 2. Se creează sisteme autonome în rețeaua IP 3. Se configurează BGP pentru a anunța informațiile globale de rutare ale PLMN rețelelor IP 4. Se configurează BGP pentru a face cunoscute informațiile globale de rutare ale rețelelor IP nodului GGSN al rețelei UMTS A se vedea documentația Multimedia and Enterprise Model Library 1.1.2. Rutarea prin includerea GGSN în rețeaua IP

52

Simularea Sistemelor de Comunicații

Laborator 4

În această configurație, GGSN-ul din rețeaua UMTS este inclus în domeniul de rutare al rețelei IP. Nodul GGSN e configurat ca gateway implicit al rețelei IP. Acesta învață rutele către nodurile IP prin intermediul protocolului dinamic de rutare configurat pentru rețeaua IP. Metoda funcționează în cazul rutării pachetelor dinspre PLMN către rețeaua IP. Totuși pachetele nu pot fi rutate dinspre rețeaua IP către PLMN deoarece nodurile IP nu știu că pachetele trebuie rutate prin GGSN. În acest caz, rute statice sau implicite trebuie folosite. 1.1.3. Folosirea rutelor statice sau gateway-urilor implicite Rutele statice pot fi configurate pentru a informa nodurile IP să ruteze pachetele către nodul GGSN al unei rețele UMTS. Totuși, dacă topologia rețelei se schimbă, rutele statice nu mai sunt corecte. Alternativ, nodul GGSN poate fi configurat ca gateway implicit pentru nodurile IP    Dacă nodurile IP nu au informații de rutare pentru adresa de destinație, rutează pachetele către gateway-ul implicit. Gateway-ul implicit poate fi la mai multe noduri distanță Nodul GGSN poate fi configurat ca gateway implicit pentru noduri IP

Notă. Din moment ce un singur gateway implicit poate fi configurat pentru fiecare nod IP, această abordare funcționează doar dacă o singură rețea UMTS este conectată la rețeaua IP. 2. Configurarea aplicațiilor în scenarii UMTS Aplicațiile de tip servicii cu comutație de pachete (packet service) din rețele UMTS pot fi simulate prin modele de generare de trafic ale EXata. Modelele CBR și VBR pot fi folosite pentru a simula fluxuri coversaționale și de streaming în rețele UMTS. Apelurile de voce (servicii cu comutație de circuite) pot fi simulate prin aplicația Phone Call. În EXata, modelele de generare de trafic, cum ar fi CBR, VBR, suportă configurarea claselor QoS prin trei parametri QoS: PRECEDENCE, TOS și DSCP. În rețelele UMTS, doar parametrul PRECEDENCE este suportat. Tabelul următor arată corespondența dintre parametrul PRECEDENCE și clase QoS și priorități.
Tabel 1 Clase QoS și priorități pentru UMTS

PRECEDENCE 6-7 4-5 3

Clase QoS UMTS și priorități Conversațional Streaming Interactiv, prioritate = 1

53

Simularea Sistemelor de Comunicații

Laborator 4

2 1 0

Interactiv, prioritate = 2 Interactiv, prioritate = 3 Fundal

Pentru rețelele UMTS, fiecare rate level impune limite asupra ratei de date maxime și dimensiunii maxime a pachetului. Aplicația CBR/VBR ar trebui configurată astfel încât dimensiunile pachetelor și rata de date se încadrează în aceste limite. Tabelele următoare dau limitele impuse pentru tipurile de trafic conversațional și streaming.
Tabel 2 Limitele pentru rata de date și dimensiunea pachetului de date pentru trafic conversațional

Rate level

Rata de date maximă (bps)

Dimensiunea maximă a pachetului (octeți) 112 48 128 288

1 (TTI 40 ms) 2 (TTI 20 ms) 3 (TTI 20 ms) 4 (TTI 20 ms)

28800 32000 64000 128000

Tabel 3 Limitele pentru rata de date și dimensiunea pachetului de date pentru trafic de tip streaming

Rate level

Rata de date maximă (bps)

Dimensiunea maximă a pachetului (octeți) 40 112 256 544

1 (TTI 40 ms) 2 (TTI 40 ms) 3 (TTI 40 ms) 4 (TTI 40 ms)

14400 28800 57600 115200

3. Configurarea aplicațiilor în scenariile WiMAX O proprietate importantă a tehnologiei WiMAX este suportul său QoS. Totuși, în EXata, doar aplicațiile de generare de trafic CBR/VBR au fost modificate astfel încât să dea parametri QoS corecți. Tabelul următor dă corespondența dintre valorile câmpului PRECEDENCE și clasele de servicii.

54

Simularea Sistemelor de Comunicații
Tabel 4 Tipuri de servicii pentru WiMAX

Laborator 4

Servicii Unsolicited Grant Service Extended Real-time Polling Service Real-time Polling Service Non-real-time Polling Service Best Effort 7, 5 4 3 6, 2, 1 0

Precedence

Notă: Valorile 6, 2, 1 corespund toate tipului nrtPS. Acest lucru permite alocarea diferitelor priorități fluxurilor nrtPS. Totuși, în implementarea din EXata, planificarea nu permite priorități multiple în cadrul unui tip de serviciu. Planificarea folosește WFQ și ponderile folosite se bazează pe cerințele de bandă ale fluxurilor. Notă: În EXata, rutarea traficului folosește PRECEDENCE 6, ceea ce e clasificat ca flux nrtPS. De asemenea, nivelul rețea poate afecta QoS dacă are mai puțin de 8 cozi, din moment ce introduce pachete de tipuri diferite de servicii într-o singură coadă. Valoarea numărului de cozi IP ar trebui să fie mai mare sau egală cu 8, altfel, aplicația setează un câmp PRECEDENCE de valoare mare pentru pachetele sale și pot fi blocate în cozi de pachete cu valoare PRECEDENCE mai mică. Astfel, pentru a garanta tipurile de servicii, trebuie configurate 8 cozi la nivelul rețea.

55

Laborator 5 Modificarea codului sursă al EXata
Unul din avantajele simulatorului EXata este posibilitatea utilizatorului de a crea, configura și rula propriile modele de protocoale și rețele. EXata este scris integral în C/C++ și poate fi compilat, sub Windows, folosind mediul de dezvoltare C/C++Visual Studio 2008. O listă cu alte medii C/C++ în care se poate compila EXata se poate găsi în EXata-2.2Programmer’s Guide din documentație. (Alternativ, și nespecificat în Programmer’s Guide, se poate folosi și mediul Eclipse IDE. Avantajul său este că e un software cross-platform). 1. Compilarea EXata folosind Visual Studio 2008 1.1. Configurarea VS 2008 Înainte de a putea compila EXata, VS2008 trebuie configurat o singură dată. Se urmează pașii de mai jos: 1. Folosind un editor de text, se creează un fișier numit Makefile în directorul EXATA_HOME. Acest fișier va conține comenzi pentru redirecționarea către un fișier makefile din EXATA_HOME/main (fișierul corespunzător mediului de dezvoltare C/C++ folosit). Fișierul Makefile va conține următoarele linii: all: cd main nmake -f Makefile-windows-vc9 rebuild: clean nmake -f Makefile-windows-vc9 clean: cd main nmake -f Makefile-windows-vc9 clean 2. Se deschide Microsoft Visual Studio 2008 făcând clic pe iconița de pe Desktop

3. Se face clic pe File > New > Project From Existing Code și se introduc următoarele:  Project file location: C:\snt\exata\2.2  Project name: exata  Folder: C:\snt\exata\2.2

Simularea Sistemelor de Comunicații

Laborator 5

4. Se apasă Next și, în fereastra următoare se bifează How do you want to build the project?: Use external build system și se apasă din nou Next 5. Se introdc următoarele configurări pentru depanare:  Build command line: nmake  Rebuild command line: nmake rebuild  Clean command line: nmake clean  Output (for debugging): bin\exata.exe

6. Se apasă Finish

57

Simularea Sistemelor de Comunicații

Laborator 5

Se va crea astfel proiectul qualnet și va fi încărcat în fereastra Solution Explorer din dreapta ecranului:

Folosind Solution Explorer, se poate naviga prin structura directoarelor proiectului și deschide fișierele componente pentru a fi editate în mediul de dezvoltare Visual Studio 2008. În figura de mai sus se observă directorul ce conține fișierele sursă pentru modulul de WiMAX (802.16). Efectuarea unui dublu clic pe acesta va duce la deschiderea sa în editorul Visual Studio. Se poate comuta pe modul Class View care oferă o privire detaliată asupra tuturor variabilelor, funcțiilor și claselor existente în cadrul proiectului. Având în vedere faptul că simulatorul EXata are un grad ridicat de complexitate cu module implementate prin intermediul mai multor fișiere grupate în directoare, este comod a se folosi Class View pentru a găsi și vizualiza o clasă sau structură, componentele ei sau o funcție.

În figura de mai sus, se observă o structură (agent_adv_timer_info), împreună cu componentele sale. Se poate folosi butonul Search pentru a găsi o anumită structură/clasă/funcție. Dacă se face clic pe aceasta, vor apărea în fereastra de previzualizare

58

Simularea Sistemelor de Comunicații

Laborator 5

de dedesubt membrii acelei structuri, iar dacă se dă dublu clic, se va deschide fișierul ce conține definiția structurii respective, cursorul fiind plasat la linia definiției. 1.2. Compilarea folosind mediul vizual VS 2008 Odată ce a fost configurat Visual Studio 2008, poate fi folosit în felul următor:  Se apasă pe Build > Build Solution pentru a compila EXata  Se apasă pe Build > Rebuild Solution pentru a recompila EXata  Se apasă pe Build > Clean Solution pentru a șterge fișierele obiect (cu extensia .obj) 2. Modificarea codului sursă a modelului de WiMAX pentru a permite transferul pe baza raportului semnal-zgomot-plus-interferență În modelul de WiMAX din EXata, declanșatorul (triggerul) implicit al transferului (handover) este nivelul puterii semnalului recepționat (RSSI). Totuși, modelul permite transferul pe baza a trei parametri:  Puterea semnalului recepționat (RSS – Received Signal Strength)  Raportul semnal-zgomot-plus-interferență (CINR – Carrier to Interference plus Noise Ratio)  Întârzierea dus-întors a pachetelor (RTD – Round Trip Delay) Versiunea 2.2 a EXata dă posibilitatea efectuării transferului folosind aceste trei metrici, însă codul sursă al EXata conține doar implementarea transferului folosind RSS ca metrică. Laboratorul acesta propune modificarea codului sursă al EXata pentru a implementa luarea deciziei de transfer pe baza celei de a doua metrici, CINR. Acest lucru presupune următorii pași:      Identificarea fișierelor și funcțiilor ce trebuie modificate Scrierea codului corespunzător țelului propus având ca model codul deja existent pentru transferul pe baza RSS Compilarea EXata Depanarea, în cazul apariției erorilor de compilare și/sau linkare Modificarea interfeței grafice a EXata pentru a permite alegerea celor 2 metrici de transfer

Codul sursă ce implementează modulul de WiMAX în EXata este plasat în directorul EXATA_HOME/libraries/advanced_wireless, iar fișierele ce țin strict de partea de mobilitate și care vor fi modificate sunt următoarele:  mac_dot16e.h – conține definițiile unor parametri impliciți ai transferului, cum ar fi nivelul RSS implicit la care se face transferul sau metrica de transfer ceva fi folosită (RSSI, CINR sau RTD)  mac_dot16_ss.h și mac_dot16_ss.cpp – implementează decizia de transfer inițiat de stația mobilă în funcția MacDot16SsUpdateBsMeasurement (...).

59

Simularea Sistemelor de Comunicații

Laborator 5

mac_dot16_bs și mac_dot16_bs.cpp – implementează decizia de transfer inițiat de rețea în funcția MacDot16BsCheckHandover (...). Înainte de a modifica fișierele codului sursă al EXata, se efectuează o copie de siguranță a acestora. Poate fi plasată într-un director în EXATA_HOME.  E1. Se editează fișierul mac_dot16e.h și, la linia 64, între definiția parametrului și cea a DOT16e_TRIGEGER_METRIC_TYPE_CINR(sic!), se adaugă următoarele definiții:
DOT16e_DEFAULT_HO_RSS_MARGIN // /** // CONSTANT :: DOT16e_DEFAULT_NBR_SCAN_CINR_TRIGGER : 16.0 // DESCRIPTION :: CINR value to trigger neighbor BS scan // **/ #define DOT16e_DEFAULT_NBR_SCAN_CINR_TRIGGER (16.0) // /** // CONSTANT :: DOT16e_DEFAULT_HO_CINR_TRIGGER : 12.0 // DESCRIPTION :: CINR value to trigger handover decision // **/ #define DOT16e_DEFAULT_HO_CINR_TRIGGER (12.0) // /** // CONSTANT :: DOT16e_DEFAULT_HO_CINR_MARGIN : 2.0 // DESCRIPTION :: Margin in CINR value for choosing the new BS // **/ #define DOT16e_DEFAULT_HO_CINR_MARGIN 2.0

Indicație: Pentru a sări la o anumită linie, se apasă Ctrl+G și se intorduce numărul liniei.

Parametrii de mai sus sunt similari celor legați de RSS și dau valorile implicite ale CINR care declanșează scanarea stațiilor de bază vecine și decizia de transfer. Al treilea parametru dă marginea de RSS. La alegerea stației de bază vecine către care să se efectueze transferul, stația mobilă va considera doar acele stații de bază ale căror ale căror niveluri RSS sunt mai mari decât nivelul RSS al stației curente cu cel puțin valoarea marginii de RSS. Acest lucru elimină transferurile frecvente. Valorile implicite au fost alese experimental, pe baza simulărilor repetate. E2. Se editează fișierul header mac_dot16_bs.h. La linia 529 se adaugă următorii 2 parametri (scriși îngroșat) în structura MacDot16BsPara:
double double double double hoRssTrigger; hoRssMargin; hoCinrTrigger; hoCinrMargin; // RSS level to trigger handover // Margin of RSS level to init Bs HO // CINR value to trigger handover //Margin of CINR to init Bs HO

//dot16e

60

Simularea Sistemelor de Comunicații

Laborator 5

Parametrii reprezintă valoarea CINR care va declanșa decizia de transfer și marginea cu care trebuie să fie mai mare raportul CINR al stației vecine decât cel al stației curente. E3. Se deschide fișierul mac_dot16_bs.cpp. La linia 619 se adaugă următoarele (scrise îngroșat):
........................ // dot16e dot16Bs->para.resrcRetainTimeout = DOT16e_HO_SYTEM_RESOURCE_RETAIN_TIME; IO_ReadString( node, node->nodeId, interfaceIndex, nodeInput, "MAC-802.16e-HANDOVER-TRIGGER-TYPE", &wasFound, stringVal); if(wasFound) { if (strcmp(stringVal, "RSSI") == 0) { dot16Bs->trigger.triggerType = DOT16e_TRIGEGER_METRIC_TYPE_RSSI; IO_ReadDouble( node, node->nodeId, interfaceIndex, nodeInput, "MAC-802.16e-HANDOVER-RSS-TRIGGER", &wasFound, &doubleVal); if (wasFound) { dot16Bs->para.hoRssTrigger = doubleVal; } else { dot16Bs->para.hoRssTrigger = DOT16e_DEFAULT_HO_RSS_TRIGGER; } IO_ReadDouble( node, node->nodeId, interfaceIndex, nodeInput, "MAC-802.16e-HANDOVER-RSS-MARGIN", &wasFound, &doubleVal); if (wasFound) { dot16Bs->para.hoRssMargin = doubleVal;

61

Simularea Sistemelor de Comunicații
} else { dot16Bs->para.hoRssMargin = DOT16e_DEFAULT_HO_RSS_MARGIN; } } else if (strcmp(stringVal, "CINR") == 0) { dot16Bs->trigger.triggerType = DOT16e_TRIGEGER_METRIC_TYPE_CINR; IO_ReadDouble(

Laborator 5

node, node->nodeId, interfaceIndex, nodeInput, "MAC-802.16e-HANDOVER-CINRTRIGGER", &wasFound, &doubleVal); if (wasFound) { dot16Bs->para.hoCinrTrigger = doubleVal; } else { dot16Bs->para.hoCinrTrigger = DOT16e_DEFAULT_HO_CINR_TRIGGER; } IO_ReadDouble( node, node->nodeId, interfaceIndex, nodeInput, "MAC-802.16e-HANDOVER-CINR-MARGIN", &wasFound, &doubleVal); if (wasFound) { dot16Bs->para.hoCinrMargin = doubleVal; } else { dot16Bs->para.hoCinrMargin = DOT16e_DEFAULT_HO_CINR_MARGIN; } } } // Admission control unit algorithm name dot16Bs->acuAlgorithm = DOT16_ACU_NONE; .................

62

Simularea Sistemelor de Comunicații

Laborator 5

Codul de mai sus citește din fișierul de configurare mai întâi care va fi metrica de transfer (MAC-802.16e-HANDOVER-TRIGGER-TYPE) și apoi citește valorile parametrilor necesari pentru CINR (valoarea la care se ia decizia de transfer și marginea). Aceștia sunt stocați în variabilele care au fost create în prealabil în structura MacDot16BsPara din fișierul header (hoCinrMargin și hoCinrTrigger). La linia 15785 se adaugă următorul cod (cel scris îngroșat):
.................... // start dot16e realted init if (dot16->dot16eEnabled) { dot16Bs->configChangeCount = 0; dot16Bs->lastNbrAdvSent = 0; //dot16Bs->trigger.triggerType = DOT16e_TRIGEGER_METRIC_TYPE_RSSI; dot16Bs->trigger.triggerFunc = DOT16e_TRIGEGER_METRIC_FUNC_SERV_LESS_ABSO; dot16Bs->trigger.triggerAction = DOT16e_TRIGGER_ACTION_MOB_SCN_REQ; if (dot16Bs->trigger.triggerType == DOT16e_TRIGEGER_METRIC_TYPE_RSSI) { dot16Bs->trigger.triggerValue = (signed char) DOT16e_DEFAULT_NBR_SCAN_RSS_TRIGGER; } else if (dot16Bs->trigger.triggerType == DOT16e_TRIGEGER_METRIC_TYPE_CINR) { dot16Bs->trigger.triggerValue = (signed char) DOT16e_DEFAULT_NBR_SCAN_CINR_TRIGGER; } dot16Bs->trigger.triggerAvgDuration = (unsigned char) DOT16e_DEFAULT_TRIGGER_AVG_DURATION; .......................

Codul de mai sus inițializează, în funcție de metrica de transfer aleasă, variabila din structura trigger cu valoarea sub care trebuie să scadă RSS sau CINR al stației curente pentru a se începe scanarea stațiilor de bază vecine.
triggerValue

Decizia de transfer inițiat de stația de bază este implementată în funcția MacDot16BsCheckHandover(...). Aceasta trebuie modificată pentru a ține cont și de CINR ca metrică de transfer. La linia 14624 se modifică astfel codul:
static void MacDot16BsCheckHandover(Node* node, MacDataDot16* dot16, MacDot16BsSsInfo* ssInfo) { MacDot16Bs* dot16Bs = (MacDot16Bs*) dot16->bsData; Message* pduMsg;

63

Simularea Sistemelor de Comunicații
// if ul link quality is bad or // system wise, for load balance // it is time to ask SS handover

Laborator 5

if (!ssInfo->inHandover && dot16Bs->trigger.triggerType == DOT16e_TRIGEGER_METRIC_TYPE_RSSI && !ssInfo->bsInitHoStart && ssInfo->ulRssMean < dot16Bs->para.hoRssTrigger) { int i; double maxBsRssi; ........ if (found && (maxBsRssi - ssInfo->ulRssMean > dot16Bs->para.hoRssMargin)) { ......... } } else if (!ssInfo->inHandover && dot16Bs->trigger.triggerType == DOT16e_TRIGEGER_METRIC_TYPE_CINR && !ssInfo->bsInitHoStart && ssInfo->ulCinrMean < dot16Bs->para.hoCinrTrigger) { int i; double maxBsCinr; int maxIndex; BOOL found = FALSE; // ATTEN: need further revisit // assume UL and DL are symmetric? maxBsCinr = ssInfo->ulCinrMean; for (i = 0; i < DOT16e_DEFAULT_MAX_NBR_BS; i++) { if (ssInfo->nbrBsSignalMeas[i].bsValid && ((ssInfo->nbrBsSignalMeas[i].dlMeanMeas.measTime + 2 * DOT16_SS_DEFAULT_NBR_SCAN_MIN_GAP) < getSimTime(node)) && ssInfo->nbrBsSignalMeas[i].dlMeanMeas.cinr > maxBsCinr) { found = TRUE; maxBsCinr = ssInfo>nbrBsSignalMeas[i].dlMeanMeas.cinr; maxIndex = i; } } if (found && (maxBsCinr - ssInfo->ulCinrMean > dot16Bs>para.hoCinrMargin)) { pduMsg = MacDot16eBsBuildMobBshoReqPdu( node, dot16, ssInfo, ssInfo->nbrBsSignalMeas[i].bsId); MacDot16BsScheduleMgmtMsgToSs(node, dot16,

64

Simularea Sistemelor de Comunicații

Laborator 5
ssInfo, ssInfo-

>basicCid, pduMsg); ssInfo->bsInitHoStart = TRUE; ssInfo->lastBsHoReqSent = getSimTime(node); // update stat dot16Bs->stats.numBsHoReqSent ++; if (DEBUG_HO) { MacDot16PrintRunTimeInfo(node, dot16); printf("BS inits a handover for SS w/ basicCid %d to" "bs %d:%d:%d:%d:%d:%d\n", ssInfo->basicCid, ssInfo->nbrBsSignalMeas[i].bsId[0], ssInfo->nbrBsSignalMeas[i].bsId[1], ssInfo->nbrBsSignalMeas[i].bsId[2], ssInfo->nbrBsSignalMeas[i].bsId[3], ssInfo->nbrBsSignalMeas[i].bsId[4], ssInfo->nbrBsSignalMeas[i].bsId[5]); } } } }

Codul de mai sus tratează transferul inițiat de stația de bază și respectă întru totul algoritmul pentru metrica RSS de transfer, fiind adaptat pentru CINR. Conform codului de mai sus, transferul inițiat de stația de bază are loc astfel:  Mai întâi începe scanarea stațiilor de bază vecine. Scanarea începe dacă: o Stația mobilă nu a început ea însăși procedura de transfer (condiția !ssInfo>inHandover din if) o Stația de bază nu a început deja procedura de transfer (condiția !ssInfo>bsInitHoStart) o Valoarea RSS sau CINR de la stația mobilă a scăzut sub pragul de transfer (condiția ssInfo->ulRssMean < dot16Bs->para.hoRssTrigger sau ssInfo->ulCinrMean < dot16Bs->para.hoCinrTrigger în funcție de valoarea dot16Bs->trigger.triggerType).  Se caută apoi stația de bază care are valoarea RSS sau CINR de la stația mobilă mai mare decât cel al stației de bază curente. Dacă acesta este mai mare cu marginea RSS sau CINR atunci se poate iniția transferul către stația de bază aleasă, prin trimiterea mesajului MOB-BSHO-REQ. E4. Urmează tratarea transferului inițiat de stația mobilă. Pentru aceasta, mai întâi se va edita structura MacDot16SsPara din fișierul mac_dot16_ss.h de la linia 475 pentru a conține variabile legate de metrica CINR de transfer:
............... clocktype nbrMeaLifetime; // timeout for signal quality measure of a BS

65

Simularea Sistemelor de Comunicații

Laborator 5

double nbrScanRssTrigger; // RSS level to trigger neighbor scan double hoRssTrigger; // RSS level to trigger handover double hoRssMargin; // Margin of RSS level to select new BS double nbrScanCinrTrigger; //CINR to trigger neighbor scan double hoCinrTrigger; //CINR to trigger handover double hoCinrMargin; //Margin of CINR to select new BS // end of 802.16e parameters } MacDot16SsPara; ---------------------------------------------------------------------------

E5. Se editează fișierul mac_dot16_ss.cpp pentru a citi metrica de transfer și a inițializa variabilele corespunzătoare cu valorile configurate în scenariu (similar ca la stația de bază) la linia 415:
..................... dot16Ss->para.t42Interval = DOT16e_SS_DEFAULT_T42_INTERVAL; dot16Ss->para.t44Interval = DOT16e_SS_DEFAULT_T44_INTERVAL; IO_ReadString( node, node->nodeId, interfaceIndex, nodeInput, "MAC-802.16e-HANDOVER-TRIGGER-TYPE", &wasFound, stringVal); if(wasFound) { if (strcmp(stringVal, "RSSI") == 0) { IO_ReadDouble( node, node->nodeId, interfaceIndex, nodeInput, "MAC-802.16e-NEIGHBOR-SCAN-RSS-TRIGGER", &wasFound, &doubleVal); if (wasFound) { ............... } IO_ReadDouble( node, node->nodeId, interfaceIndex, nodeInput, "MAC-802.16e-HANDOVER-RSS-TRIGGER", &wasFound, &doubleVal); if (wasFound) { ........ }

66

Simularea Sistemelor de Comunicații

Laborator 5

IO_ReadDouble( node, node->nodeId, interfaceIndex, nodeInput, "MAC-802.16e-HANDOVER-RSS-MARGIN", &wasFound, &doubleVal); if (wasFound) { ........... } } else if (strcmp(stringVal, "CINR") == 0) { IO_ReadDouble( node, node->nodeId, interfaceIndex, nodeInput, "MAC-802.16e-NEIGHBOR-SCAN-CINR-TRIGGER", &wasFound, &doubleVal); if (wasFound) { dot16Ss->para.nbrScanCinrTrigger = doubleVal; } else { dot16Ss->para.nbrScanCinrTrigger = DOT16e_DEFAULT_NBR_SCAN_CINR_TRIGGER; } IO_ReadDouble( node, node->nodeId, interfaceIndex, nodeInput, "MAC-802.16e-HANDOVER-CINRTRIGGER", &wasFound, &doubleVal); if (wasFound) { dot16Ss->para.hoCinrTrigger = doubleVal; } else { dot16Ss->para.hoCinrTrigger = DOT16e_DEFAULT_HO_CINR_TRIGGER; } IO_ReadDouble( node, node->nodeId, interfaceIndex, nodeInput,

67

Simularea Sistemelor de Comunicații
"MAC-802.16e-HANDOVER-CINR-MARGIN", &wasFound, &doubleVal); if (wasFound) { dot16Ss->para.hoCinrMargin = doubleVal; } else { dot16Ss->para.hoCinrMargin = DOT16e_DEFAULT_HO_CINR_MARGIN; } } }

Laborator 5

dot16Ss->isCRCEnabled = DOT16_CRC_STATUS; dot16Ss->isFragEnabled = DOT16_FRAGMENTATION_STATUS; ...................... ---------------------------------------------------------------------------

Acum, decizia de transfer se ia în funcția MacDot16SsUpdateBsMeasurement. Tot ce trebuie făcut este să se modifice codul de la linia 14620 pentru a ține cont și de CINR ca metrică de transfer
static void MacDot16SsUpdateBsMeasurement(Node* node, MacDataDot16* dot16, PhySignalMeasurement* signalMea) { MacDot16Ss* dot16Ss = (MacDot16Ss*) dot16->ssData; MacDot16SignalMeasurementInfo meanMeas; ........ if (dot16->dot16eEnabled && dot16Ss->nbrScanStatus == DOT16e_SS_NBR_SCAN_InScan && dot16Ss->operational) { // update signal measurement of neighbor BS if (dot16Ss->targetBs != NULL) { // update the measurement histroy and return the mean ........... if ( (dot16Ss->servingBs->trigger.triggerType == DOT16e_TRIGEGER_METRIC_TYPE_RSSI && dot16Ss->targetBs->rssMean > dot16Ss->servingBs->rssMean && dot16Ss->servingBs->rssMean < IN_DB(PhyDot16GetRxSensitivity_mW( node, dot16->myMacData->phyNumber, moduCodeType))) || (dot16Ss->servingBs->trigger.triggerType == DOT16e_TRIGEGER_METRIC_TYPE_CINR && dot16Ss->targetBs->cinrMean > dot16Ss->servingBs>cinrMean && dot16Ss->servingBs->cinrMean < 5.0)) {

68

Simularea Sistemelor de Comunicații

Laborator 5

................... } } } else { if (dot16Ss->initInfo.dlSynchronized) { ................... // only when SS has already finish the intitialization with // serving BS could it start the scan and handover procedure if (dot16->dot16eEnabled && dot16Ss->operational && dot16->numChannels > 1) { // check if need to trigger handover if (dot16Ss->nbrScanStatus == DOT16e_SS_NBR_SCAN_None && dot16Ss->hoStatus == DOT16e_SS_HO_None) { if ((dot16Ss->servingBs->rssMean < dot16Ss->para.hoRssTrigger && dot16Ss->servingBs->trigger.triggerType == DOT16e_TRIGEGER_METRIC_TYPE_RSSI) || (dot16Ss->servingBs->trigger.triggerType == DOT16e_TRIGEGER_METRIC_TYPE_CINR && dot16Ss->servingBs->cinrMean < dot16Ss>para.hoCinrTrigger )) { // need to init handover if (dot16Ss->nbrBsList != NULL) { // select a nbr BS to perform handover MacDot16SsBsInfo* targetBs; targetBs = MacDot16eSsSelectBestNbrBs(node, dot16); if ((targetBs != NULL && (targetBs->rssMean - dot16Ss->servingBs>rssMean) >= dot16Ss->para.hoRssMargin && dot16Ss->servingBs->trigger.triggerType == DOT16e_TRIGEGER_METRIC_TYPE_RSSI) || (targetBs != NULL && dot16Ss->servingBs->trigger.triggerType == DOT16e_TRIGEGER_METRIC_TYPE_CINR && (targetBs->cinrMean - dot16Ss->servingBs>cinrMean) >= dot16Ss->para.hoCinrMargin )) { // find a suitable nbr BS, do handover .............. dot16Ss->targetBs = targetBs; Message* msHoReq; msHoReq = MacDot16eSsBuildMobMshoReqMsg(node, dot16); MacDot16SsEnqueueMgmtMsg(node, dot16, DOT16_CID_BASIC, msHoReq); dot16Ss->hoStatus = DOT16e_SS_HO_LOCAL_Begin; dot16Ss->hoNumRetry = DOT16e_MAX_HoReqRetry;

69

Simularea Sistemelor de Comunicații

Laborator 5
// set timer and the retry counter when // check outgoing

} else if ((targetBs != NULL && (targetBs->rssMean > dot16Ss->servingBs->rssMean) && dot16Ss->servingBs->rssMean < IN_DB(PhyDot16GetRxSensitivity_mW( node, dot16->myMacData->phyNumber, moduCodeType)) && dot16Ss->servingBs>trigger.triggerType == DOT16e_TRIGEGER_METRIC_TYPE_RSSI) || (dot16Ss->servingBs>trigger.triggerType == DOT16e_TRIGEGER_METRIC_TYPE_CINR && targetBs != NULL && (targetBs->cinrMean > dot16Ss->servingBs->cinrMean) && dot16Ss->servingBs->cinrMean < 5.0 )) { // if the serving BS signal is too weak and // target BS has stronger signal, handover to // target BS though the difference is not over // the handover margin to avoid call dropping ............ dot16Ss->targetBs = targetBs; Message* msHoReq; msHoReq = MacDot16eSsBuildMobMshoReqMsg(node, dot16); MacDot16SsEnqueueMgmtMsg(node, dot16, DOT16_CID_BASIC, msHoReq); dot16Ss->hoStatus = DOT16e_SS_HO_LOCAL_Begin; dot16Ss->hoNumRetry = DOT16e_MAX_HoReqRetry; // set timer and the retry counter when check // outgoing } } else { // no nbr BS in the list, restart } } } // if not in HO or neighbor scan mode, and if RSS is below // the trigger, needs to start neighbor BS scan if (dot16Ss->hoStatus == DOT16e_SS_HO_None && dot16Ss->nbrScanStatus == DOT16e_SS_NBR_SCAN_None && (dot16Ss->servingBs->trigger.triggerType == DOT16e_TRIGEGER_METRIC_TYPE_CINR || dot16Ss->servingBs->trigger.triggerType == DOT16e_TRIGEGER_METRIC_TYPE_RSSI) ) { // for RSSI or CINR case if (dot16Ss->servingBs->trigger.triggerFunc == DOT16e_TRIGEGER_METRIC_FUNC_SERV_LESS_ABSO &&

70

Simularea Sistemelor de Comunicații

Laborator 5

((dot16Ss->servingBs->trigger.triggerType == DOT16e_TRIGEGER_METRIC_TYPE_RSSI && dot16Ss->servingBs->rssMean < dot16Ss->para.nbrScanRssTrigger ) || (dot16Ss->servingBs->trigger.triggerType == DOT16e_TRIGEGER_METRIC_TYPE_CINR && dot16Ss->servingBs->cinrMean < dot16Ss->para.nbrScanCinrTrigger)) && (dot16Ss->lastScanTime + dot16Ss->para.nbrScanMinGap) <= getSimTime(node)) {// less than threshold if (dot16Ss->servingBs->trigger.triggerAction == DOT16e_TRIGGER_ACTION_MOB_SCN_REQ) { // needs to scan NBR BSs if (DEBUG_NBR_SCAN) { MacDot16PrintRunTimeInfo(node, dot16); printf("inits neighbor BS scan\n"); } // need to start scanning by tx a req to serving BS Message* mgmtMsg; mgmtMsg = MacDot16eSsBuildMobScnReqMsg(node, dot16, NULL); MacDot16SsEnqueueMgmtMsg(node, dot16, DOT16_CID_BASIC, mgmtMsg); dot16Ss->nbrScanStatus = DOT16e_SS_NBR_SCAN_WaitScnReq; dot16Ss->scanReqRetry = DOT16e_MAX_ScanReqRetry; } } } } } }

Codul de mai sus implementează transferul inițiat de stația mobilă. Procedura este următoarea:  Se scanează stațiile de bază vecine. Scanarea este efectuată periodic de către stația mobilă, atunci când valoarea RSS sau CINR de la stația de bază curentă este mai mică decât pragul de declanșare al procedurii de scanare (condiția dot16Ss->servingBs>rssMean < dot16Ss->para.nbrScanRssTrigger sau dot16Ss->servingBs>cinrMean < dot16Ss->para.nbrScanCinrTrigger ).  Transferul se inițiază în una din următoarele situații: o La inițializarea stației mobile, dacă semnalul recepționat de la stația de bază curentă este prea slab, sub pragul de sensibilitate al receptorului (condiția
dot16Ss->servingBs->rssMean IN_DB(PhyDot16GetRxSensitivity_mW(node, >phyNumber, moduCodeType))) < dot16->myMacData-

sau dot16Ss->servingBs->cinrMean < 5.0), se efectuează transferul către o stație de bază cu semnal mai bun
71

Simularea Sistemelor de Comunicații

Laborator 5

(condiția
>rssMean >cinrMean);

dot16Ss->targetBs->rssMean

>

dot16Ss->servingBs-

sau dot16Ss->targetBs->cinrMean > dot16Ss->servingBs-

o Dacă semnalul recepționat de la stația de bază scade sub pragul de transfer (condiția dot16Ss->servingBs->rssMean < dot16Ss>para.hoRssTrigger sau dot16Ss->servingBs->cinrMean < dot16Ss>para.hoCinrTrigger), se inițiază transferul către stația de bază care are nivelul RSS sau CINR mai mare cu marginea de transfer decât cel al stației de bază curente (condiția (targetBs->rssMean - dot16Ss->servingBs>rssMean) >= dot16Ss->para.hoRssMargin sau (targetBs->cinrMean dot16Ss->servingBs->cinrMean) >= dot16Ss->para.hoCinrMargin) o Dacă semnalul de la stația de bază curentă este prea slab și o stație de bază vecină are semnal mai bun, se face transferul către aceasta deși diferența dintre ele este mai mică decât marginea de transfer pentru a se evita pierderea conexiunii. Se inițiază transferul către stația de bază aleasă, prin trimiterea mesajului MOBMSHO-REQ.

E6. După ce s-au editat toate fișierele sursă, se apasă Save All și se compilează proiectul exata, apăsând Build > Build exata.

Dacă nu apar erori de compilare, ecranul Output ar trebui să apară, arătând astfel:

Dacă apar câteva warning-uri, nu este nici o problemă. 3. Modificarea interfeței grafice a EXata

72

Simularea Sistemelor de Comunicații

Laborator 5

Acum că s-a efectuat modificarea de cod propusă, noile opțiuni disponibile, de a putea selecta metrica de transfer și stabili parametrii aferenți, trebuie să se reflecte în mediul vizual al EXata. 3.1. Descrierea fișierelor de setări ale interfeței grafice EXata

Mediul vizual EXata oferă ferestre de editare a proprietăților pentru ca utilizatorul să furnizeze parametrii scenariului și ai protocoalelor. Acești parametri sunt apoi folosiți pentru a crea fișierele de configurare ale EXata (.config, .app etc.) care sunt folosite drept fișiere de intrare ale simulatorului EXata. Există editoare de proprietăți asociate cu fiecare componentă a unui scenariu, cum ar fi dispozitiv (device), legătură, aplicație sau element de rețea. În plus, există editoare de proprietăți pentru configurarea parametrilor globali și la nivel de interfață. EXata Architect folosește 3 tipuri de fișiere pentru a construi editoarele de proprietăți. Acestea sunt:  Fișiere de componente. Conțin informații structurale pentru afișarea tuturor segmentelor (grupurilor de parametri) ai editorului de proprietăți. Au extensia „.cmp” și se găsesc în directorul EXATA_HOME/gui/settings/components Fișiere de descriere partajate. Conțin descrierile segmentelor comune mai multor editoare de proprietăți. Au extensia „.prt” și sunt plasate în directorul EXATA_HOME/gui/settings/protocol_models Fișierul de descriere a setului de unelte. Conține descrierea aspectului Setului de unelte (icoanele pentru fiecare tip de dispozitiv, aplicație, legătură etc.). Se numește Toolset.xml și e localizat în directorul EXATA_HOME/gui/settings Mai multe detalii se pot găsi în Capitolul 5 (Customizing EXata Graphical User Interface) din EXata-2.2-ProgrammersGuide.pdf. 3.2. Modificarea interfeței grafice a EXata pentru a putea alege metrica de transfer în WiMAX Integrarea codului adăugat necesită modificarea unui fișier de descriere partajat. Cum procedura de transfer se declanșează în funcții ce acționează la nivelul MAC în simulator, va trebui modificat fișierul mac_layer.prt din directorul EXATA_HOME/gui/settings/protocol_models. Se efectuează o copie de siguranță a fișierului respectiv și se deschide fișierul original, fie cu un editor de text, fie cu Visual Studio 2008 și se editează fișierul în felul următor: E7. Se adaugă la linia 344 următorul text (cel scris îngroșat):
<variable name="Enable Mobility Mode (802.16e)" key="MAC-802.16-SUPPORTMOBILITY" type="Selection" default="NO"> <option value="NO" name="No" /> <option value="YES" name="Yes"> <variable name="Handover Trigger Type" key="MAC-802.16e-HANDOVER-TRIGGER-TYPE" type="Selection" default="RSSI"> <option value="RSSI" name="RSSI">

73

Simularea Sistemelor de Comunicații

Laborator 5

<variable name="Neighbor BS Scanning RSS Trigger (dBm)" key="MAC-802.16e-NEIGHBOR-SCAN-RSS-TRIGGER" type="Fixed" default="-76.0" help="The SS will try to scan neighboring BSs if the receiving signal strength (RSS) from serving BS is below is threshold." /> <variable name="Handover RSS Trigger (dBm)" key="MAC-802.16e-HANDOVER-RSS-TRIGGER" type="Fixed" default="-78.0" help="The SS will try to start handover if the receiving signal strength (RSS) from serving BS is below is threshold." /> <variable name="Handover RSS Margin (dB)" key="MAC-802.16e-HANDOVER-RSS-MARGIN" type="Fixed" default="1.0" help="The SS will only handover to a target BS whose RSS level is higher than that of current serving BS no smaller than this margin." /> </option> <option value="CINR" name="CINR"> <variable name="Neighbor BS Scanning CINR Trigger" key="MAC-802.16e-NEIGHBOR-SCAN-RSS-TRIGGER" type="Fixed" default="18.0" help="The SS will try to scan neighboring BSs if the carrier-to-interference-plus-noise-ratio (CINR) from serving BS is below this threshold." /> <variable name="Handover CINR Trigger" key="MAC-802.16e-HANDOVER-CINR-TRIGGER" type="Fixed" default="12.0" help="The SS will try to start handover if the carrier-tointerference-plus-noise-ratio (CINR) from serving BS is below is threshold." /> <variable name="Handover CINR Margin" key="MAC-802.16e-HANDOVER-CINR-MARGIN" type="Fixed" default="1.5" help="The SS will only handover to a target BS whose CINR is higher than that of current serving BS no smaller than this margin." /> </option> </variable> <variable name="Enable Sleep Mode" key="MAC-802.16e-SS-SUPPORT-SLEEP-MODE" type="Checkbox" default="NO"/> <variable name="Enable Idle Mode" key="MAC802.16e-SS-SUPPORT-IDLE-MODE" type="Checkbox" default="NO"/> </option> </variable>

Acum, se adaugă parametrii pentru stația de bază (la linia 403):
<variable name="Enable Mobility Mode (802.16e)" key="MAC-802.16-SUPPORTMOBILITY" type="Selection" default="NO"> <option value="NO" name="No" /> <option value="YES" name="Yes"> <variable name="Handover Trigger Type" key="MAC-802.16e-HANDOVER-TRIGGER-TYPE" type="Selection" default="RSSI"> <option value="RSSI" name="RSSI"> <variable name="Neighbor BS Scanning RSS Trigger (dBm)" key="MAC-802.16e-NEIGHBOR-SCAN-RSS-TRIGGER" type="Fixed" default="-76.0" help="The SS will try to scan neighboring BSs if the receiving signal strength (RSS) from serving BS is below is threshold." /> <variable name="Handover RSS Trigger (dBm)" key="MAC-802.16e-HANDOVER-RSS-TRIGGER" type="Fixed" default="-78.0" help="The SS will try to start handover if the receiving signal strength (RSS) from serving BS is below is threshold." /> <variable name="Handover RSS Margin (dB)" key="MAC-802.16e-HANDOVER-RSS-MARGIN" type="Fixed"

74

Simularea Sistemelor de Comunicații

Laborator 5

default="1.0" help="The SS will only handover to a target BS whose RSS level is higher than that of current serving BS no smaller than this margin." /> </option> <option value="CINR" name="CINR"> <variable name="Neighbor BS Scanning CINR Trigger" key="MAC-802.16e-NEIGHBOR-SCAN-RSS-TRIGGER" type="Fixed" default="18.0" help="The SS will try to scan neighboring BSs if the carrier-to-interference-plus-noise-ratio (CINR) from serving BS is below this threshold." /> <variable name="Handover CINR Trigger" key="MAC-802.16e-HANDOVER-CINR-TRIGGER" type="Fixed" default="12.0" help="The SS will try to start handover if the carrier-tointerference-plus-noise-ratio (CINR) from serving BS is below is threshold." /> <variable name="Handover CINR Margin" key="MAC-802.16e-HANDOVER-CINR-MARGIN" type="Fixed" default="1.5" help="The SS will only handover to a target BS whose CINR is higher than that of current serving BS no smaller than this margin." /> </option> </variable> <variable name="Neighbor BS List" key="MAC802.16-BS-NEIGHBOR" type="String" default="{}" optional="true" help="A list of neighbor BSs for possiable handover, The neighbor BS list could be in the form of {nodeId1,nodeId2 } or {nodeId1 thru nodeId2} or a combination." />

Se salvează și se închide editorul. Dacă mediul vizual EXata este deschis, trebuie repornit pentru ca schimbările să aibă efect. Acum, interfața grafică ar trebui să arate astfel, pentru stația mobilă

și pentru stația de bază:

75

Simularea Sistemelor de Comunicații

Laborator 5

4. Testarea funcționării codului modificat Se validează tot ceea ce s-a realizat până acum prin rularea unui scenariu. Se alege un scenariu predefinit din cele plasate în directorul EXATA_HOME/scenarios/advanced_wireless. Se copiază directorul WiMAXHomeToOffice în EXATA_HOME/scenarios/user și apoi se modifică metrica de transfer pentru toate nodurile din scenariu la CINR, păstrându-se valorile implicite. E8. Se rulează scenariul și se compară rezultatele cu cele așteptate (fișierul WiMAXHomeToOffice.expected.stat)

76

Sign up to vote on this title
UsefulNot useful