qualnet un simulatore di reti wirelessun simulatore...

56
Sistemi Mobili M Sistemi Mobili M Università di Bologna CdS Laurea Magistrale in Ingegneria Informatica CdS Laurea Magistrale in Ingegneria Informatica II Ciclo - A.A. 2013/2014 Corso di Sistemi Mobili M (8 cfu) Qualnet Un simulatore di reti wireless Un simulatore di reti wireless Andrea Reale & Paolo Bellavista Qualnet – Sistemi Mobili M 1 1 http://lia.deis.unibo.it/Courses/sm1314-info/ http://lia.deis.unibo.it/Staff/PaoloBellavista/

Upload: others

Post on 19-Jan-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Sistemi Mobili MSistemi Mobili M

Università di BolognaCdS Laurea Magistrale in Ingegneria InformaticaCdS Laurea Magistrale in Ingegneria Informatica

II Ciclo - A.A. 2013/2014Corso di Sistemi Mobili M (8 cfu)

QualnetUn simulatore di reti wirelessUn simulatore di reti wireless

Andrea Reale & Paolo Bellavista

Qualnet – Sistemi Mobili M 11

http://lia.deis.unibo.it/Courses/sm1314-info/http://lia.deis.unibo.it/Staff/PaoloBellavista/

Page 2: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Simulazione e Qualnet

INTRODUZIONE

Simulazione e Qualnet

Qualnet – Sistemi Mobili M 2

Page 3: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

SimulazioneSimulazione

Sistema Complesso

Riproduzione del comportamento di un sistema complesso

Astrazione da dettagli Modello Feedback superflui

Focus su parametri e

Risultati

ocus su pa a e easpetti d’interesse del sistema

Esecuzione

Qualnet – Sistemi Mobili M 3

Page 4: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Usi della simulazioneUsi della simulazione

Sistema reale troppo costoso da realizzare

Livello di dettaglio massimo non necessarioLivello di dettaglio massimo non necessario

Misurazione di parametri altrimenti difficili da osservare

Necessità di rallentare/velocizzare il tempo di / pesecuzione

Qualnet – Sistemi Mobili M 4

Page 5: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Classificazione di simulatoriClassificazione di simulatori

i i iStatico vs DinamicoStatico: il tempo non è una variabile importante del modelloDinamico: considera il variare del tempo

Continuo vs Eventi (Discreti)Continuo vs Eventi (Discreti)Continuo: il tempo avanza ad intervalli costantiAd eventi: il tempo avanza solo quando accadonoAd eventi: il tempo avanza solo quando accadono eventi significativi (ad es. ricezione di un pacchetto)

Qualnet – Sistemi Mobili M 5

pacchetto)

Page 6: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Validazione di un simulatoreValidazione di un simulatore

Un modello usato in una simulazione può produrre risultati molto diversi da quelli realip q

Errori nel modello

Trascurati dei dettagli importantiTrascurati dei dettagli importanti

Validazione di un modelloConfronto dei risultati di simulazione con risultatiConfronto dei risultati di simulazione con risultati reali attesi

Qualnet – Sistemi Mobili M 6

Page 7: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Simulatori di reteSimulatori di rete

d lli di i di l l iModelli di reti di calcolatoriNodi, router, switch, link, …Protocolli di comunicazione tra nodi

Esecuzione di scenari altrimenti costosi in termini di hw, tempo e praticità

Nuovi protocolli o varianti di protocolli esistentiTopologie di rete complesseFacilità di tuning di caratteristiche nodi e misura di parametri valutativi

Qualnet – Sistemi Mobili M 7

Page 8: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Qualnet: simulatore Qualnet: simulatore di reti (wireless) ad eventi discretidi reti (wireless) ad eventi discretidi reti (wireless) ad eventi discretidi reti (wireless) ad eventi discreti

Qualnet – Sistemi Mobili M 8

Page 9: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Qualnet: caratteristiche principaliQualnet: caratteristiche principali

Prodotto commerciale

Spin-off di un progetto opensource di UCLASpin off di un progetto opensource di UCLA

Modelli accurati e veloci di protocolli di tutto lo stack di rete

Modelli di propagazione radio (pathloss, p p g (p ,shadowing, fading)

802 11 802 15 4 802 16 GSM/UMTS802.11, 802.15.4, 802.16, GSM/UMTS, …

RIP, DSR, AODV, …

Qualnet – Sistemi Mobili M 9

Page 10: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Qualnet: punti di forzaQualnet: punti di forza

S l bilitàScalabilitàEsecuzione parallela su più di un processore (o su più di una macchina, con opportuna licenza), pp )

Tradeoff dettaglio/prestazioni configurabileModelli molto dettagliatiPossibilità di astrarre da dettagli non desiderati per velocizzare l’esecuzione

PortabilitàPortabilitàLinux, MacOs X, Windows (32 e 64 bit)

EstensibilitàEstensibilitàPossibilità di sviluppare modelli ad ogni livelloInterfacciabile da software esterno

Qualnet – Sistemi Mobili M 10

Page 11: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Crezione di scenari e analisi dei risultati

SIMULARE RETI CON QUALNET

Crezione di scenari e analisi dei risultati

Qualnet – Sistemi Mobili M 11

Page 12: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Qualnet: architetturaQualnet: architettura

C d Li GUI ToolsCommand Line Interface

Model LibrariesExternal

Qualnet Simulation Kernel

External Interfaces

&Dynamic

APIsQualnet Simulation Kernel

Qualnet – Sistemi Mobili M 12

Page 13: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

ScenarioScenario

S i d i i di t ibil d lScenario: descrizione di una rete eseguibile dal simulatore. Comprende:

Topologia: nodi collegamenti fisici tra nodiTopologia: nodi, collegamenti fisici tra nodiInterfacce di rete (numero, tipo, modello fisico)Protocolli per ciascuna interfaccia (fisico MACProtocolli per ciascuna interfaccia (fisico, MAC, network, routing)Modelli di mobilità dei nodiModello “ambientale”: caratteristiche del terreno, caratteristiche meteorologiche, …Batterie, modelli di consumo energetico, …Batterie, modelli di consumo energetico, …Modello delle singole antenne…

Qualnet – Sistemi Mobili M 13

Page 14: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Workflow di simulazioneWorkflow di simulazione

Definizione Scenario

GUI: Designer

CLICLI

fi GUI:

Esecuzione con Qualnet

scenario.config GUI: Animator

CLI

scenario.stat

<trace>

scenario.trace GUI: Analyzer

Analisi RisultatiAnalyzer

GUI: Tracer

Qualnet – Sistemi Mobili M 14

Page 15: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Input: file .configInput: file .config

i i l d ll i d i lDescrizione completa dello scenario da simularePuò includere altri file

.app: descrive i protocolli applicativi sui nodi

.nodes: descrive il posizionamento e la mobilità dei nodi

CreazioneTramite GUI con Qualnet DesignerA mano, utile soprattutto per scenari più complessi (ad es. con tanti nodi)

Qualnet – Sistemi Mobili M 15

Page 16: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Input: file .configInput: file .config

Ogni riga del file imposta un parametro della simulazione

Formato:[<scope>] <param> [<index>] <value>

ifi li tti d ll i l i dscope: specifica a quali oggetti della simulazione deve essere applicato il parametro. Un parametro può essere definito per uno di questi scope: global, node, subnet, interface

param: nome identificativo del parametro

index: per parametri che possono avere più istanze, specifica a quale istanza si riferisce (opt)istanza si riferisce (opt)

value: valore del parametro. Il formato ed il tipo possono variare

Qualnet – Sistemi Mobili M 16

Page 17: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

example.config example.config Canali RadioCanali RadioCanali RadioCanali Radio

SIMULATION-TIME 12H

COORDINATE-SYSTEM CARTESIAN

TERRAIN-DIMENSION (1500, 1500)

NODE-POSITION-FILE example.nodes

MOBILITY RANDOM WAYPOINTMOBILITY RANDOM-WAYPOINT

# RADIO CHANNELS (un solo canale, indice 0)

PROPAGATION-CHANNEL-FREQUENCY[0] 2400000000

PROPAGATION-PATHLOSS-MODEL[0] TWO-RAY

PROPAGATION-SHADOWING-MODEL[0] LOGNORMALPROPAGATION SHADOWING MODEL[0] LOGNORMAL

PROPAGATION-SHADOWING-MEAN[0] 4dB

PROPAGATION-LIMIT[0] -111.0 dB

PROPAGATION MAX DISTANCE[0] 0

Qualnet – Sistemi Mobili M 17

PROPAGATION-MAX-DISTANCE[0] 0

Page 18: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

example.config example.config -- SubnetSubnet

NETWORK PROTOCOL IPNETWORK-PROTOCOL IPIP-QUEUE-TYPE[0] FIFO

SUBNET N8-1 0 { 1 thru 10} # crea nodi ed interfacceSUBNET N8-1.0 { 1 thru 10} # crea nodi ed interfacce[N8-1.0] PHY-MODEL PHY802.11b[N8-1.0] MAC-PROTOCOL MACDOT11[N8-1 0] ROUTING-PROTOCOL AODV[N8 1.0] ROUTING PROTOCOL AODV

LINK N8-2.0 {10, 11}[N8-2.0] LINK-PHY-TYPE WIRED[ ][N8-2.0] LINK-MAC-PROTOCOL MAC802.3 # MAC802.3|ABSTRACT[N8-2.0] NETWORK-PROTOCOL IP[N8-2.0] ROUTING-PROTOCOL BELLMANFORD

APP-CONFIG-FILE example.app

Qualnet – Sistemi Mobili M 18

Page 19: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

example.config example.config RisultatoRisultatoRisultatoRisultato

Qualnet – Sistemi Mobili M 19

Page 20: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Output: scenario statisticsOutput: scenario statistics

Fil di t t t tFile di testo .statOgni riga ha il formato:

<id>, <addr>, <index>, <layer>, <proto>, <param> = <value>

id: identificativo del nodoaddr: indirizzo IP dell’interfaccia su cui gira il protocollo (opt)index: distingue istanze multiple di uno stesso protocollo (opt)layer: PHY, MAC, NETWORK, TRANSPORT, APPLICATIONproto: nome del protocollo a cui si riferisce la statisticaproto: nome del protocollo a cui si riferisce la statisticaparam: identificativo descrittivo della statisticavalue: misura della statistica

Qualnet – Sistemi Mobili M 20

Page 21: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Output: Trace fileOutput: Trace file

T d i i bi ti d i li t lliTracce dei messaggi scambiati da singoli protocolliSi possono selezionare selettivamente interi layer e/o singoli protocolli da tracciareg pFile xml: <rec>

<rechdr></rechdr><recbody></recbody>

</rec>/

<rec> Entry per un singolo pacchetto tracciato<rechdr> Header della registrazione<rechdr> Header della registrazione<recbody> header del pacchetto (uno o più se incapsulati)

Qualnet – Sistemi Mobili M 21

Page 22: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

example.traceexample.trace

<t fil > Il d 3 i i l d 0 i<trace_file><head> … </head><body>

Il nodo 3 invia al nodo 0 un messaggiooriginato dal protocollo 4 (cbr) al secondodi simulazione 3.35. Il messaggio ètracciato dal protocollo 2 (udp) e l’azione

…<rec>

<rechdr> 3 0 3 3584881 7 3 2 <action> 1 0 </action> </rechdr>

tracciato dal protocollo 2 (udp) e l azioneassociata è la 1 (send)

<rechdr> 3 0 3.3584881 7 3 2 <action> 1 0 </action> </rechdr><recbody>

<udp> 519 519 36 0 </udp><recbody>

</rec> Porta sorgente: 519Porta destinazione: 519Length: 36 bytes…

</body></trace_file>

Length: 36 bytesChecksum: N/A

Qualnet – Sistemi Mobili M 22

Page 23: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

GUI Tools: Qualnet ArchitectGUI Tools: Qualnet Architect

d li à d’Due modalità d’usoDesign Modeg

Creazione di scenari tramite drag&drop di componenti visualipGenerazione dei file di testo di configurazione

Visualize ModeVisualize ModeEsecuzione di scenariA i i i i li i di ( l i) t iAnimazioni e visualizzazione di (alcuni) parametri in tempo reale

Qualnet – Sistemi Mobili M 23

Page 24: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

GUI Tools: Qualnet Architect GUI Tools: Qualnet Architect (Design Mode)(Design Mode)(Design Mode)(Design Mode)

Qualnet – Sistemi Mobili M 24

Page 25: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

GUI Tools: Qualnet Architect GUI Tools: Qualnet Architect (Visualize Mode)(Visualize Mode)(Visualize Mode)(Visualize Mode)

Qualnet – Sistemi Mobili M 25

Page 26: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

GUI Tools : Qualnet AnalyzerGUI Tools : Qualnet Analyzer

Parsing dei file statistiche (.stat) prodotti da esperimenti

Visualizzazione grafica delle statistiche

Semplici strumenti di Se p c s u e daggregazione e sintesi

Personalizzazione deiPersonalizzazione dei grafici

Qualnet – Sistemi Mobili M 26

Page 27: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

GUI Tools: Qualnet Packet TracerGUI Tools: Qualnet Packet Tracer

Parsing dei file .trace prodotti da esperimenti

Visualizzazione tabulare delle informazioni nelle tracce

Ricerca e filtraggio ce ca e agg obasati su criteri multipli

e.g., porta d’origine, TTL,e.g., porta d origine, TTL, nodo di destinazione, protocollo

Qualnet – Sistemi Mobili M 27

Page 28: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Implementare nuovi modelli e protocolli

SVILUPPO IN QUALNET

Implementare nuovi modelli e protocolli

Qualnet – Sistemi Mobili M 28

Page 29: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Qualnet: Ambiente di sviluppoQualnet: Ambiente di sviluppo

Q l t K l M d l Lib i itt i CQualnet Kernel e Model Libraries scritte in C++In realtà, object orientation del C++ è scarsamente utilizzatautilizzataConoscenza di linguaggio C sufficiente per comprendere (e scrivere) gran parte del codice

Sorgenti di parti del kernel e dei protocolli delle Model Libraries disponibili

Possibilità di modificare protocolli esistenti per adattarli alle proprie esigenzeadattarli alle proprie esigenzeUtili linee guida di sviluppo di nuovi modelli

Qualnet – Sistemi Mobili M 29

Page 30: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Simulazione ad eventi: repriseSimulazione ad eventi: reprise

C d di i diCoda di eventi, ordinata secondo timestamp crescente dell’evento

Event Queuecrescente dell eventoAd uno ad uno gli eventi vengono prelevati dallavengono prelevati dalla coda e processatiL’elaborazione di unEvent Handler L elaborazione di un evento può generare altri eventi, che sonoaltri eventi, che sono inseriti ordinatamentenella coda

Qualnet – Sistemi Mobili M 30

Page 31: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Tipi di evento in QualnetTipi di evento in Qualnet

P k t E tPacket EventUsati per simulare scambio di pacchetti tra nodi distintiUsati per simulare passaggio di pacchetti attraverso layerUsati per simulare passaggio di pacchetti attraverso layer protocollari diversi di uno stesso nodi

Timer EventUsati per simulare time-out o allarmi (ricorrenti nella gestione di protocolli)

Timer Event e Packet Event in Qualnet sonoTimer Event e Packet Event in Qualnet sono rappresentati da un’unica struttura dati: Message

Vengono gestiti dal kernel del simulatore in maniera g gomogeneaA livello terminologico, qualsiasi evento può essere chiamato “Messaggio” in Qualnet

Qualnet – Sistemi Mobili M 31

chiamato Messaggio in Qualnet

Page 32: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Message Data StructureMessage Data Structure

d f {typedef struct message_str {

short layerType; // e.g. APPLICATION LAYERy yp ; // g _

short protocolType; // e.g. CBR

short instanceId; // e.g. 1515 (port)

//short eventType; // e.g. MSG_APP_CBR_NEXT_PKT

char *packet; // Payload (anche NULL)char packet; // Payload (anche NULL)

int virtualPayloadSize; // eg. 42

std::vector<MessageInfoHeader> infoArray;

} Message;

Qualnet – Sistemi Mobili M 32

} Message;

Page 33: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

LayeringLayering

Q l t i l t ti d i i b tQualnet implementa una gestione dei messaggi basata su Layer

I layer sono quelli più bassi del modello OSII layer sono quelli più bassi del modello OSIOgni messaggio ha un suo tipo, che è definito da un determinato protocolloOgni protocollo appartiene ad uno dei layerViene fatto il dispatching di ogni messaggio sulla base didi:

Tipo di messaggioProtocollo che lo definisceProtocollo che lo definisceLayer a cui il protocollo appartieneNodo destinatario del messaggio

Qualnet – Sistemi Mobili M 33

gg

Page 34: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Dispatcher e LayeringDispatcher e Layering

HNDL_1

Application LayerEvent Dispatcher

MY_APP ED

HTTP ED

RIP ED

HNDL_2

Transport LayerEvent Dispatcher

TCP ED

UDP ED

NodeEvent Dispatcher

Network LayerEvent Dispatcher

IPv6 ED

IPv4 ED

MAC LayerEvent Dispatcher

UMTS MAC ED

802.11 MAC ED

PHY LayerEvent Dispatcher

UMTS MAC ED

802.11 MAC ED

Qualnet – Sistemi Mobili M 34

NODE LEVEL PROTOCOL LAYER LEVEL PROTOCOL LEVEL MESSAGE LEVEL

Page 35: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Dispatcher e LayeringDispatcher e Layering

HNDL_1

Application LayerEvent Dispatcher

MY_APP ED

HTTP ED

RIP ED

HNDL_2

Transport LayerEvent Dispatcher

TCP ED

UDP ED

NodeEvent Dispatcher

Network LayerEvent Dispatcher

IPv6 ED

IPv4 ED

MAC LayerEvent Dispatcher

UMTS MAC ED

802.11 MAC ED

PHY LayerEvent Dispatcher

UMTS MAC ED

802.11 MAC ED

Qualnet – Sistemi Mobili M 35

NODE LEVEL PROTOCOL LAYER LEVEL PROTOCOL LEVEL MESSAGE LEVEL

Page 36: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Struttura di un protocolloStruttura di un protocollo

Ogni protocollo definisce un insieme di eventiche si dichiara in grado di gestireg g

Uno o più handler gestiscono il verificarsi degli eventi definitidegli eventi definiti

Un “Event Dispatcher”, con il ruolo di richiamare handler appropriato all’arrivo di nuovi messagginuovi messaggi

Qualnet – Sistemi Mobili M 36

Page 37: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Protocolli come macchine a statiProtocolli come macchine a stati

Initialization

t

Simulation Clock Start

ER

Wait for Events Event Handler

event

EVEN

TD

ISPA

TCH

E

Simulation Clock End

D

Finalization

Qualnet – Sistemi Mobili M 37

Page 38: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Packet Event ePacket Event ecomunicazione intercomunicazione inter--layerlayercomunicazione intercomunicazione inter--layerlayer

O i t ll ò d i i iOgni protocollo può generare ed inviare messaggiDiretti ad un protocollo sullo stesso (o un altro) nodo (più comune per Timer Event)(più comune per Timer Event)Diretti ad un altro nodo, passando per i layer direttamente sottostanti (come in OSI)

Ogni livello prende in consegna il messaggio, lo elabora, aggiunge un suo header e lo propaga al livello più in basso

Ad i i lAd ogni passaggio possono eventualmente essere aggiunti opportuni delay

Qualnet – Sistemi Mobili M 38

Page 39: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Packet Event: Packet Event: Gestione a LayerGestione a LayerGestione a LayerGestione a Layer

Node A Node B

Application Layer

Transport Layer

Application Layer

Transport Layer

Allocate Message

Add Header Remove Header

Free Message

Network Layer

MAC Layer

Physical Layer

Network Layer

MAC Layer

Physical Layer

Add Header

Add Header

Remove Header

Remove Header

Physical Layer Physical Layer

Propagation

Qualnet – Sistemi Mobili M 39

Page 40: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Qualnet Message APIQualnet Message API

API generiche per manipolare eventi:MESSAGE_Send(Node*, Message*, clocktype)

ll ( d * )MESSAGE_Alloc(Node*, int, int, int)

MESSAGE_Free(Node*, Message*)

MESSAGE AddInfo(Node* Message* int short)MESSAGE_AddInfo(Node , Message , int, short)

MESSAGE_AddHeader(Node*, Message*, int, TraceProtocolType)

MESSAGE_RemoveHeader( … )

API specifiche per APPLICATION LayerAPP_UdpSendNewData( … )

APP_UdpNewHeaderVirtualDataWithPriority( ... )

Qualnet – Sistemi Mobili M 40

Page 41: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Esempio: Esempio: gestione di Hard Vertical Handovergestione di Hard Vertical Handovergestione di Hard Vertical Handovergestione di Hard Vertical Handover

S iScenarioDispositivo mobile con due interfacce wirelessUn’interfaccia IEEE 802.11 e una IEEE 802.16

ObiettivoIl dispositivo “a regime” utilizza solo una delle due interfacceQuando la qualità del segnale ricevuto sull’interfaccia

d l l dscende sotto una certa soglia, il dispositivo prova a ottenere connettività migliore dall’altra interfaccia

Qualnet – Sistemi Mobili M 41

Page 42: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Diagramma degli statiDiagramma degli stati

IdlTIMER_UPDATE

IdleUna interfaccia attiva

d h kIdle Periodic Check

Periodic CheckPeriodicamente, viene controllata qualità del

TRIGGERCOMPLETED

controllata qualità del segnale ricevuto

Handover Process

Handover Process

Handover ProcessVengono attivate entrambe le interfacce,

Processe viene lasciata accesa la “migliore”

Qualnet – Sistemi Mobili M 42

Page 43: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Simple Vertical Handover: Simple Vertical Handover: alcune considerazionialcune considerazionialcune considerazionialcune considerazioni

Peculiarità del protocolloProtocollo “single host”: non comunica con altri gnodi. Solo informazioni locali

Posizionato a livello Application ma necessita diPosizionato a livello Application, ma necessita di informazioni a livello MAC (RSSI dei segnali)

Rompe parzialmente il layering di Qualnet

Qualnet – Sistemi Mobili M 43

Page 44: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Definire un modello: cose da fareDefinire un modello: cose da fare

D fi iDefinireIdentificativo di protocolloTipo degli eventi gestiti COSTANTIp g gStrutture dati utilizzate

Implementarei di i i i li i ll i i i i li i d llFunzione di inizializzazione: allocazione e inizializzazione delle

strutture dati del protocolloDispatcher del protocollo: gestione degli eventi e invocazione degli handler appropriatiHandler degli eventiFunzione di finalizzazione: calcolo e stampa di statistiche, eFunzione di finalizzazione: calcolo e stampa di statistiche, e deallocazione delle strutture dati

“Registrare” le funzioni sul gestore del layer appropriato

Qualnet – Sistemi Mobili M 44

Page 45: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Definizione del protocolloDefinizione del protocollo

Aggiungere il nuovo protocollo nella lista dei protocolli applicativi disponibilitypedef enum { // include/application.h

APP_FTP_SERVER = 21,

…,

APP_HANDOVER_SIMPLE,

APP_PLACEHOLDER

} AppType;

Qualnet – Sistemi Mobili M 45

Page 46: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Definizione degli eventiDefinizione degli eventi

Includere i tipi di evento che il protocollo vuole gestire nella lista degli eventi possibilienum { // include/api.h

MSG_APP_CBR_NEXT_PKT,

MSG_APP_HANDOVER_UPDATE,

MSG APP HANDOVER TRIGGER,_ _ _

MSG_APP_HANDOVER_FINALIZE,

…,

MSG_DEFAULT

};

Qualnet – Sistemi Mobili M 46

Page 47: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Inizializzazione e finalizzazione Inizializzazione e finalizzazione del protocollodel protocollodel protocollodel protocollo

F i di i i i li i i t iFunzione di inizializzazione invocata per ciascuna istanza del protocollo (ad es. per ogni istanza su ogni nodo))

Allocazione ed inizializzazioni di strutture dati definite appositamente per il protocolloS l t i d ll t tt ll t t d l d i iSalvataggio delle strutture nello stato del nodo a cui si riferiscono

Funzione di finalizzazione invocata per ciascuna istanza del protocollo, a fine simulazione

l h l f l dRaccolta statistiche e stampa sul file di output .statDeallocazione delle strutture dati del protocollo

Qualnet – Sistemi Mobili M 47

Page 48: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Inizializzazione e FinalizzazioneInizializzazione e Finalizzazione

void HandoverInit(Node *node) {

HandoverData *hd;

hd = (HandoverData*) MEM_malloc(sizeof(HandoverData));

……

APP_RegisterNewApp(node, APP_HANDOVER_SIMPLE, hd);

timerMsg = MESSAGE_Alloc( node, APP_LAYER,

APP_HANDOVER_SIMPLE,

MSG_APP_HANDOVER_UPDATE);

MESSAGE_Send(node, timerMsg, HANDOVER_UPDATE_PERIOD);

}

void HandoverFinalize(Node *node) {

HandoverData *hd = _HandoverRetrieveData(node);

i ( ) i ( )

Qualnet – Sistemi Mobili M 48

if ( hd != NULL ) App_UnregisterAPP(node, data);

}

Page 49: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Dispatcher degli eventiDispatcher degli eventi

void HandoverProcessEvent(Node *node, Message *msg) {

switch(MESSAGE_GetEvent(msg)) {

case MSG_APP_HANDOVER_UPDATE:

HandoverPeriodcStatusUpdate(node, msg);HandoverPeriodcStatusUpdate(node, msg);

break;

case MSG_APP_HANDOVER_TRIGGER:

d d ( d )HandoverStartHandover(node, msg);

break;

case MSG_APP_HANDOVER_FINALIZE:

HandoverMakeDecision(node, msg);

break;

default:default:

ERROR_ReportError(“Unexpected event”);

}

Qualnet – Sistemi Mobili M 49

}

Page 50: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

““RegistrazioneRegistrazione”” delle callbackdelle callback

// main/application.cpp

void APP_InitializeApplications(Node *first, NodeInput *in) {…

for (i=0; i< in.numLines; i++) {

else if (strcmp(appStr, “CBR”) == 0) { … }

else if (strcmp(appStr, “HANDOVER SIMPLE”) == 0) {p pp _ {

node = MAPPING_GetNodePtrFromHash( … );

if (node != NULL) {if (node != NULL) {

HandoverInit(node);

}

}}

}

}

Qualnet – Sistemi Mobili M 50

Page 51: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

““RegistrazioneRegistrazione”” delle callbackdelle callback

// main/application.cpp

void APP_ProcessEvent(Node *node, Message *msg) {

switch(msg->protocolType) {

case APP_ROUTING_BELLMANFORD:

case APP HANDOVER SIMPLE:case APP_HANDOVER_SIMPLE:

HandoverProcessEvent(node, msg);

break;

}

}

void APP_Finalize(Node *node) {

// Il concetto rimane il solito…

Qualnet – Sistemi Mobili M 51

}

Page 52: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Dynamic APIDynamic API

Monitoring e modifica runtime di variabili di simulazione (variabili dinamiche)

Ogni protocollo/modello deve definire esplicitamente le variabili che vuole esporrevuole esporre

Servizio di directory (molto semplificato) per istanze di variabili dinamiche

Path di una variabile dinamica va esplicitamente registrato sul corrispondente servizio D_Hierarchy

Variabile dinamica va esplicitamente associata al path tramite unaVariabile dinamica va esplicitamente associata al path tramite una specifica funzione di libreria

/node/129/interface/192.168.0.1/aodv/numRequestsInitiated

Componenti software interni possono registrare funzioni di callback per essere notificati di cambiamenti alle variabili di i h

Qualnet – Sistemi Mobili M 52

dinamiche

Page 53: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

External Interface APIExternal Interface API

C t l i di i t f h ttConsente la creazione di interfacce che permettano l’interazione runtime di software esterni con il simulatore

QualNet mette a disposizione (su licenza aggiuntiva) p ( gg )tre diverse implementazioni di External Interface:

DIS (IEEE 1278), HLA (IEEE 1516), STK

QualNet SimulationExternal InterfaceExternal Entity Interface

Qualnet – Sistemi Mobili M 53

External Interface API

Page 54: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

QualNet: conclusioniQualNet: conclusioni

PProDisponibili numerosissimi modelli molto precisi e dettagliatiLibertà di configurazione del tradeoff velocità/dettaglio delle g / gsimulazioniOttimi tool graficiBuona manualistica introduttiva e forum di supporto onlineBuona manualistica introduttiva e forum di supporto online molto attivoCodice ben scritto

CConsNecessario comprare tante licenze per usare diversi modelliManca documentazione dettagliata del codice (ad es. API doc)Manca documentazione dettagliata del codice (ad es. API doc)Comunità di utilizzatori ridotta e meno “collaborativa” rispetto ad altre alternative (vedi prossima slide)

Qualnet – Sistemi Mobili M 54

Page 55: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Simulatori di reti: aldilà di QualNetSimulatori di reti: aldilà di QualNet

NS 2 / NS 3NS-2 / NS-3Simulatori opensource (GPL) molto utilizzati in ambito accademicoNS-2 famoso per la sua lenta curva di apprendimentoNS-3 più usabile di NS-2, ma non altrettanto ricco di modelli già esistenti

OMNeT++Academic Public License: gratuito per scopi accademici

èNon è un simulatore di reti, ma un framework generico per simulazione ad eventi discretiDisponbili diversi package contenenti modelli per la simulazione di reti (INET)Linguaggio abbastanza sofisticato (NED) per descrivere scenari di simulazione

Qualnet – Sistemi Mobili M 55

Page 56: Qualnet Un simulatore di reti wirelessUn simulatore …lia.deis.unibo.it/Courses/sm1314-info/lucidi/qualnet(1x).pdfSistemi Mobili M Università di Bologna CdS Laurea Magistrale in

Voglio provare QualNet!Voglio provare QualNet!

L’U i i à di B l di di li diL’Università di Bologna dispone di una licenza di QualNet installata su un’unica macchina fissa

Developer Model Library (IEEE 802 3 IP TCP UDP RIP )Developer Model Library (IEEE 802.3, IP, TCP, UDP, RIP, …) Wireless Model Library (IEEE 802.11, MACA, DSR, …)Advanced Wireless Model Library (IEEE 802 16)Advanced Wireless Model Library (IEEE 802.16)Sensor Networks Model Library (IEEE 802.15.4)UMTS Model LibraryUMTS Model Library

Possibilità di utilizzare da remoto quella macchinaPossibilità di utilizzare da remoto quella macchinaCon alcune limitazioni

Qualnet – Sistemi Mobili M 56