Spezifikation von Kommunikationssystemen - 12. Simulation von...
Transcript of Spezifikation von Kommunikationssystemen - 12. Simulation von...
Spezifikation von Kommunikationssystemen12. Simulation von Kommunikationsnetzen
Prof. Jochen SeitzSommersemester 2019
Fachgebiet „Kommunikationsnetze“
1
Übersicht
Motivation
Definition
Simulationsumgebung
Simulation
Beispieltools
2
Motivation
Motivation
• Bisher → Spezifikation• ASN.1, SDL, UML• Automaten, Weg-Zeit-Diagramme
• Bewertung• Konformität• Zuverlässigkeit
• Aber: keine Realisierung und Evaluation• Simulation ganzer Knoten / Netze
• Leistungsparameter
3
Definition
Was sind Simulationen?
• Definition• Vorgänge anhand realitätsgetreuer Modelle nachbilden
und analysieren• hier: Kommunikationsnetze
• Ziele• ein komplexes System / Modell verstehen• Finden von robusten Lösungen für ein Problem• Vergleich von verschiedenen Lösungen
4
Warum als Simulation?
Möglichkeiten ein System zu untersuchen:
• Reales System• meist (noch) nicht verfügbar
• Testbeds / Feldtests• begrenzte Aussage zu Skalierbarkeit• eventuell unerwünschte Nebene�ekte
• Physische Modelle• unüblich
• Analytische mathematische Beschreibung• als ”closed-form expression” darstellbar• wird schnell komplex• basiert auf restriktiven Annahmen
5
Simulationsumgebung
Komponenten
• Zentrale Simulationsengine
• Sammlung von Modellen (Links, Protokolle usw.)
• Konfigurationsskripte
• Benutzerschnittstelle
• Vorverarbeitungswerkzeuge
• Werkzeuge zur Datenauswertung
6
Simulationsengine
• Beschreibt, wie die Simulationen ablaufen
• Abarbeitung erfolgt einheitlich, unabhängig vonAnwendungen
• Hat Zugri� auf alle Parameter / Knoten
7
Klassifikation
• Zeitabhängigkeit• statisch (keine Auswirkungen)• dynamisch (Änderungen über die Zeit)
• Zufälligkeit• deterministisch (ohne zufälligen Komponenten)• stochastisch (mit zufälligen Komponenten)
• Variablenänderungen• diskret (eventbasiert)• kontinuierlich (Di�erentialgleichungen)
8
Zeitänderung
t0 t1 t3t2
t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11
t0
t5 t6 t7t9
Eventbasiert
Feste Zeitintervalle
Kontinuierliche reale Zeit
9
Arten von Simulationen
• Basierend auf Auswahl an Klassifikationsmerkmalen
• Typisch: ereignisdiskrete Simulation• engl. Discrete Event Simulator (DES)• Systemzustand ändert sich nur, wenn Ereignisse auftreten• Zustand muss zwischen Ereignissen nicht betrachtet
werden• nach Abarbeiten des aktuellen Ereignisses:
• Simulationszeit auf Zeitstempel des nächsten Ereignisses• Engine berechnet neuen Systemzustand (inkl. weiterer
Ereignisse)
• Kontinuierliche Simulation• Systemzustand ändert sich zu vorgegebenen
Zeitintervallen• verwendet echte Zeit• bei ausreichend kleinen Zeitintervallen: alle
Zusandsübergänge beobachtbar 10
Ereignisse in DES
• Ereignisverwaltung• Ereignislisten (Ereignistyp und Zeitstempel)• Ereignisse werden an Modelle weitergegeben• Modelle können als Reaktion neue Ereignisse auslösen
• Eventtypen• Basisereignisse
ändern den Zustand des Systems(ankommende / erzeugte Pakete)
• Hilfsereignissewerden für Auswertung und Steuerung der Simulationbenötigt
11
Allgemeiner Ablauf
• Initialisierung• Setzen der Simulationszeit (idealerweise auf 0.0)• Startzustand der Simulation festlegen• Ereignislisten erzeugen und erstes Ereignis laden
• Ereignisverarbeitung während der Simulation• Aktualisierung der Simulationszeit mit Zeitstempel des
nächsten Ereignisses• Bearbeitung des Ereignisses → alle entsprechenden
Aktionen ausführen• Entsprechende Aktualisierung des Systemzustands
• Beenden der Simulation
• Was fehlt?• Sammlung statistischer Daten• Auswertung der Daten
12
Simulation
Benötige Informationen
• Netztopologie• Knoten (Endsysteme, Router, Server, ...)• Verbindungen (mit ihren Eigenschaften)
• Protokollstack auf den Knoten• Modularer Aufbau• Standardisierte Protokolle / eigene Entwicklungen• Anwendung mit realistischem Verkehrsaufkommen
• Auswertemodule• Animation• Sammlung / Darstellung der ermittelten Werte
13
Anforderungen an Simulationen
• Realistische Modellierung von• Signalausbreitung• Protokollen (den Schichten entsprechend)• Mobilität der Knoten• Zu analysierender Algorithmus
• Szenarien / Netztopologie• Rahmenbedingungen
normales Verhalten von KnotenStraßen, Wege, Verkehrsregeln
• AnwendungsfallKatastrophe, Unfall
• Metriken• Was soll gemessen werden?
Durchsatz, Erfolgsrate, Verzögerungen . . .• Bezug zum Use Case
z.B. im Straßenverkehr: Bremsweg, Schadsto�austoß,aber auch: Dauer des Staus
14
Simulation Aufbauen
• Simulationsumgebung erzeugen
• Netzwerk erzeugen
• Protokollstapel erzeugen
• Anwendungen konfigurieren
• Module zur Sammlung von Messdaten konfigurieren
15
Problemdefinition - Welche Art von Simulation
• Simulationen mit Abbruchkriterium• verwenden definierte Start- und Abbruchbedingungen• Messwerte abhängig von Start- und Abbruchbedingungen• ähnlich zur Analyse von Einschwingverhalten (aber nicht
identisch)
• Simulation stabiler Zustände – Einschwungphase• Ergebnisse einer Start- oder Warmlaufphase• schwanken stark und
• Simulation stabile Zustände – stationäre Phase• Langzeitverhalten eines Systems unter normaler Last• ausreichend großer Beobachtungszeitraum notwendig• entspricht einer Analyse von stationären Zuständen
16
Eingaben
• Trace-basiert• vorher gesammelte Daten in der Simulation verwenden• sehr realitätsnah, zeigt was aufgezeichnet wurde• unflexibel:
andere Fälle werden eventuell nicht berücksichtigtAnpassung des Systems an einen Spezialfall möglich
• Empirische Verteilung• aus Messwerten ableiten, indem Messpunkte verbunden
werden• einfach, relativ genau• Änderungen schwierig, limitierte Anzahl Fälle abbildbar
• Statistische Verteilung• eine passende statistische Verteilungsfunktion (z.B.
Exponential, Gamma) verwenden• kompakte Darstellung der Werte mit wenigen Parametern• geglättete Daten, passende Funktion schwer zu finden 17
Warum Wahrscheinlichkeiten und Statistik?
• Um ein Gefühl für die Daten zu bekommen
• Ergebnisse der Experimente vorstellen und vergleichen
• Wie vergleicht man Statistiken?• graphisch• statistische Hypotesentests
• Aber: nicht Äpfel und Birnen vergleichen!
18
Statistik - Wieviele Experimente sind notwendig?
• Abhängig von der Anzahl variabler Parameter• n Parameter mit jeweils 10 möglichen Werten
ergeben 10n mögliche Konfigurationen• Jede Konfiguration sollte mehrfach wiederholt werden• exponentieller Anstieg der Durchläufe
• Sinvolle Auswahl der Konfigurationen notwendig• aber: alle Zusammenhänge zwischen Parametern erfassen
19
Statistik - Daten sammeln
• Verwendung von Tools der Simulationsumgebung• Mittelwerte, Histogramme, Quantilschätzung• Erkennung von transientem Verhalten• Erkennung von vorgegebener Genauigkeit der Ergbnisse
• Speichern von Rohdaten• Standardmethode der jeweiligen Programmiersprache• Logging-Funktion des Simulators
20
Statistik - Von Rohdaten zum Diagramm
• Werte aus Rohdaten aufbereiten• Skripte (perl, bash)
• Metriken berechnen (inkl. Standardabweichung fürVarianz)
• berechnete Werte in gefordertes Datenformatabspeichern• csv
• plotten der Daten• gnuplot• R
• gegebenenfalls fitten einer Verteilung
21
Notwendige Arbeitsschritte
Problemdefinition
Datenanalyse
Modelle definieren
Konzeption prüfen
Programmierung
Testläufe / Debugging
Modell prüfen
Experiment planen
Simulation
Ergebnisse auswerten
Ergebnisse präsentieren
Modelle kombinieren
22
Vorteile von Simulationen
• oft die einzig mögliche Analyseform• ermöglicht den Vergleich verschiedener
Alternativlösungen• erlaubt die Beobachtung des Systems unter
vorgegebenen Umgebungsparametern• bietet Kontrolle über Umgebungsparameter• ermöglich Analyse von
• Systemem mit großem Zeithorizont in verkürzter Zeit• detaillierten Abläufen bei verzögerter Ausführung
• erfordert weniger / keine restriktiven Annahmen• ermöglicht schnellen Austausch von Modellen,
Algorithmen und Variablen• erlaubt die Verwendung externer Traces aus Messungen
als Eingabe23
Nachteile von Simulationen
• teilweise sehr zeitaufwendig (Entwicklung undAusführung)
• sehr rechenintensiv• Ergebnisse immer nur eine Schätzung des realen
Verhaltens aufgrund im Modell getro�ener Annahmen• Auswertung und Prüfung der Ergebnisse erfordert
zusätzliche Zeit• Ungenaue Ergebnisse möglich, wenn
Beobachtungszeitraum zu kurz• Eventuell hörere Komplexität als notwendig• Abhängigkeiten zwischen Variablen schwer zu erklären
und zu visualisieren• Analyse der Sensitivität schwierig• viele Daten und realistische Animationen verleiten zu
ungerechtfertigtem Vertrauen in Ergebnisse24
Typische Probleme
• zu Beginn oft unpräzise Zieldefinition• falsche Detaillierungs- / Abstraktionsebene• ungeeignete Simulationsumgebung• Simulationsumgebung mit schlecht dokumentierten
Funktionen• Missbrauch von Animationen• falsche Messwerte verwenden• einfaches Nachbilden eines Systems und
Ergebnisse als ”einzig wahre Lösung” ansehen• kein Verständnis für Statistik• fehlende Betrachtung der zufälligen Elemente• fehlende Erfassung von Messwerten• Betrachtung als Programmieraufgabe
25
Beispieltools
Simulatoren
• Freiverfügbare Simulatoren• OMNeT++• ns2• ns3• ONE• QualNet
• Kommerzielle Simulatoren• Matlab• OPNET/SteelCentral
• weitere
26
Beispiel: Drahtlose Sensornetze
• Herausforderungen:• Modellierung der beschränkten Ressourcen
(Prozessorleitsung, Speicher, Energiee�zienz)• Spezielle Hardware und Betriebssysteme• Physikalischer Prozess, der überwacht werden soll
• Spezielle Simulatoren• TOSSIM - TinyOS• COOJA - Contiki• Castalia - allgemein, basiert auf OMNeT++
27
Beispiel: Delay Tolerante Netze
• Herausforderungen:• Lange Simulationszeiten• Interaktionen zwischen Overlay und Underlay• Verschiedene Mobilitätsarten
• Spezielle Simulatoren• ONE
28
Beispiel: Car-2-X-Kommunikation
• Herausforderungen:• Fahrzeugverkehr realistisch nachbilden• Hohe Geschwindigkeiten
• Spezielle Simulationserweiterungen• Veins (OMNeT++ und SUMO)• iTetris (ns3 und SUMO)
29
Beispiel: Click
• Herausforderungen:• Wiederverwendbarkeit des Simulationsmodells für
Implementierung
• Click Modular Router• Routing-Funktionalität als Click-Graph entwerfen• Graph
• in ns-3 integrierbar• unter Linux lau�ähig
im Kernel als Thread oder im User-Space
30
Zusammenfassung
• Auswahl des geeigneten Tools• Erkennen der Möglichkeiten des Tools• Verfügbarkeit von Modulen• Beherrschen der betre�enden Programmiersprache
• Kein optimales Tool für alle Fragestellungen
31
Literatur i
Literatur
Dressler, Falko und Christoph Sommer (2014). Network Simulation. University ofPaderborn. Distributed Embedded Systems. url:http://www.ccs-labs.org/teaching/nwsim/2014s/.
Kohler, Eddie, Robert Morris, Benjie Chen, John Jannotti und M. Frans Kaashoek (Aug.2000). „The Click Modular Router“. In: ACM Transactions on Computer Systems 18(3), S. 263–297.
Levis, Philip, Nelson Lee, Matt Welsh und David Culler (Nov. 2003). „TOSSIM: Accurateand Scalable Simulation of Entire TinyOS Applications“. In: 1st ACM Conference onEmbedded Networked Sensor Systems (SenSys). ACM, S. 126–137.
MiXiM project (2011). url: http://mixim.sourceforge.net/.
32
Literatur ii
Moltchanov, Dmitri A. (2012). Network Simulation and Simulators. Vorlesungfolien.Tampere University of Technology, Institute of Communication Engineering. url:http://www.cs.tut.fi/kurssit/SGN-5876/netSimSGN.pdf.
Network Simulator 3 (ns-3) (2018). url: http://www.nsnam.org/.
OMNeT++ Network Simulation Framework (2018). url: http://www.omnetpp.org/.
Osterlind, Fredrik, Adam Dunkels, Joakim Eriksson, Niclas Finne und Thiemo Voigt(Nov. 2006). „Cross-Level Sensor Network Simulation with COOJA“. In: 31stConference on Local Computer Networks. IEEE, S. 641–648.
QualNet (2018). url:https://web.scalable-networks.com/qualnet-network-simulator-software.
The Network Simulator (ns-2) (2011). url:http://nsnam.sourceforge.net/wiki/index.php/User_Information.
The Opportunistic Network Environment simulator (2015). url:https://akeranen.github.io/the-one/.
TOSSIM (2013). url: http://tinyos.stanford.edu/tinyos-wiki/index.php/TOSSIM.
33
Literatur iii
Veins (Vehicle in Network Simulation) – The Open Source Vehicular NetworkSimulation Framework (2018). url: http://veins.car2x.org/.
34