28
Εργαστήριο Τηλεπικοινωνιακών Δικτύων χρησιμοποιώντας τον προσομοιωτή OMNET++ ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Αθήνα 2015

Εργαστήριο Δικτύων Omnet++ 2015 vol2

Embed Size (px)

DESCRIPTION

Εργαστήριο Δικτύων Omnet++ 2015 vol2

Citation preview

Page 1: Εργαστήριο Δικτύων Omnet++ 2015 vol2

Εργαστήριο Τηλεπικοινωνιακών

Δικτύωνχρησιμοποιώντας OMNET++τονπροσομοιωτή

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

Αθήνα 2015

Page 2: Εργαστήριο Δικτύων Omnet++ 2015 vol2

Το Omnet++ ..μελίγαλόγια

• Το Omnet++ είναι ένα αντικειμενοστραφές framework προσομοίωσης ανοιχτού κώδικα, ελεύθερο για μη κερδοσκοπική χρήση

• Είναι object-orianted, βασισμένο σε διακριτά γεγονότα• Δεν είναι από μόνο του τηλ/νιακό δίκτυο αλλά μας επιτρέπει

να δημιουργούμε δικά μας• Το OMNeT++ περιλαμβάνει ένα IDE βασισμένο στο

περιβάλλον Eclipse• Αναπτύχθηκε από το Τεχνικό Πανεπιστήμιο της Βουδαπέστης

από τον Andras Varga.

Page 3: Εργαστήριο Δικτύων Omnet++ 2015 vol2

Παραδείγματαχρήσηςτου Omnet++

• Μοντελοποίηση ενσύρματων και ασύρματων δικτύων επικοινωνιών

• Μοντελοποίηση πρωτοκόλλων• Μοντελοποίηση δικτύων ουρών• Μοντελοποίηση πολυεπεξεργαστικών και κατανεμημένων

hardware συστημάτων• Εκτίμηση της απόδοσης πολύπλοκων λογισμικών συστημάτων

Page 4: Εργαστήριο Δικτύων Omnet++ 2015 vol2

ΙεράρχησηΟντοτήτων

• Το Omnet++ αποτελείται από εμφωλευμένες οντότητες που επικοινωνούν στέλνοντας μηνύματα

• Ιεραρχικά το κορυφαίο module αποτελεί το σύστημα. Αυτό περιέχει submodules και αυτά με την σειρά τους περιέχουν άλλα submodules

• Η πιο απλή οντότητα που διαθέτει κάποια λειτουργικότητα και τους αλγορίθμους ονομάζεται simple module και αποτελεί μια C++ κλάση.

• τα simple modules είναι επαναχρησιμοποιήσιμα και μπορούν να συνδυαστούν μεταξύ τους σχηματίζοντας τα compound modules

Page 5: Εργαστήριο Δικτύων Omnet++ 2015 vol2

, , Μηνύματα Πύλες Σύνδεσμοι

• Τα μηνύματα μπορούν να περιέχουν αφηρημένα δεδομένα ή σύνθετες δομές δεδομένων. Τα simple modules μπορούν να στείλουν σε άλλα modules ή στον εαυτό τους (self messages) και από τα μικρότερα επίπεδα δικτύου στα μεγαλύτερα (και αντίστροφα)

• Πύλες (gates) είναι οι είσοδοι και έξοδοι των modules στις οποίες φτάνουν (input gates) ή από τις οποίες στέλνονται (output gates) μηνύματα.

• Οι σύνδεσμοι (links) ενώνουν μοναδικά δύο modules του ίδιου επιπέδου

Page 6: Εργαστήριο Δικτύων Omnet++ 2015 vol2

ΜοντελοποίησηΜετάδοσηςΔεδομένων

• Για την υλοποίηση δικτύων επικοινωνίας, οι σύνδεσμοι μπορούν να χρησιμοποιηθούν ως φυσικοί σύνδεσμοι μεταξύ κόμβων.

• Σε μια σύνδεση μπορούν να αντιστοιχηθούν παράμετροι για ρεαλιστική μοντελοποίηση ενός δικτύου, όπως data rate, propagation delay, bit error rate and packet error rate

• Αυτές οι παράμετροι μαζί με τους αλγορίθμους που τους αφορούν αποτελούν την δομή του διαύλου (channel) και μπορούν να παραμετροποιηθούν ανάλογα τις ανάγκες

Page 7: Εργαστήριο Δικτύων Omnet++ 2015 vol2

Παράμετροι

• Οι μονάδες μπορούν να έχουν χαρακτηριστικά με τη μορφή παραμέτρων τα οποία ορίζονται κατά την δημιουργία ευέλικτων τοπολογιών. Έτσι υπάρχει η δυνατότητα να δημιουργηθούν στιγμιότυπα της ίδιας μονάδας. Οι παράμετροι ρυθμίζουν την συμπεριφορά των μοντέλων και κατ’ επέκταση των δικτύων

• Οι παράμετροι μπορεί να είναι :• Numeric - Αριθμητικά• String - Σειρές χαρακτήρων• Bool - Σωστό/Λάθος• XML data trees

Page 8: Εργαστήριο Δικτύων Omnet++ 2015 vol2

Τύποιαρχείωνστο Omnet++

.neddefinitions of simulation components and networks

.cc, .hC++ source files of simulation components

.msgmessage descriptions (e.g. protocol headers) that are automatically translated to C++ classes

_m.cc, _m.hgenerated files, created from msg files during the build process

.iniparameter settings and configuration options for simulations

Page 9: Εργαστήριο Δικτύων Omnet++ 2015 vol2

Αναλύονταςτααποτελέσματα

• Τα αρχεία αποτελεσμάτων είναι με κατάληξη “.sca” (scalar) ή “.vec” (vector). Τα αρχεία με κατάληξη .vec καταγράφουν χρονοσειρές δεδομένων, δηλαδή ζευγάρια που αποτελούνται από μια τιμή και μια χρονοσφραγίδα. Τα αρχεία με την κατάληξη .sca καταγράφουν μόνο τιμές δεδομένων ανά την προσομοίωση.

• Το Omnet++ προσφέρει εργαλεία για την ανάλυση των αποτελεσμάτων

• Τα αρχεία αποτελεσμάτων είναι line-oriented text files και μπορούν να αναλυθούν με μια ποικιλία εργαλείων όπως το Matlab, GNU R, Perl, Python and spreadsheets

Page 10: Εργαστήριο Δικτύων Omnet++ 2015 vol2

Specialized Component Libraries

• Η ανάπτυξη και η χρησιμότητα του OMNeT++ οδήγησε στην ανάγκη να δημιουργηθούν εργαλεία τα οποία να εξειδικεύουν την προσομοίωση σε συγκεκριμένους τύπους και σχηματισμούς δικτύων.

• Mobility Framework -- for mobile and wireless simulations• INET Framework -- for wired and wireless TCP/IP based

simulations• Castalia -- for wireless sensor networks• MiXiM -- for mobile and wireless simulations• OverSim -- for overlay and peer-to-peer networks (INET-based)• Consensus Positif and MAC Simulator -- for sensor networks

Page 11: Εργαστήριο Δικτύων Omnet++ 2015 vol2

Getting Started ..

• Ξεκινήστε τον προσομοιωτή • Ανοίξτε το τερματικό και πληκτρολογήστε /local-disk/omnetpp-

4.5/ide/omnetpp

Page 12: Εργαστήριο Δικτύων Omnet++ 2015 vol2

Getting Started cont ..• Στην συνέχεια θα σας ζητηθεί να επιλέξετε ένα workspace της

επιλογής σας• Ως workspace πληκτρολογήστε την θέση :

/local-disk/tmp/stdXXXXX , προσθέτοντας τα στοιχεία από το Α.Μ. σας.

Page 13: Εργαστήριο Δικτύων Omnet++ 2015 vol2

Getting Started cont ..•Πατήστε Χ στο Welcome Page•Κάντε uncheck την επιλογή “Install INET Framework” όπως είναι στην εικόνα και πατήστε «ΟΚ»

Page 14: Εργαστήριο Δικτύων Omnet++ 2015 vol2

Exploring the Models• Αριστερά στο πλαίσιο Project

Explorer έχουν φορτωθεί κάποια μοντέλα.

• Ανοίγουμε με δεξί click>open project το φάκελο inet

• Στο φάκελο src περιέχει τα components του μοντέλου (protocols, apps , etc) ενώ στο φάκελο examples περιέχονται έτοιμα παραδείγματα

Page 15: Εργαστήριο Δικτύων Omnet++ 2015 vol2

Launching Simulations• Ανοίγουμε το φάκελο

examples>manetrouting>net80211_control• Θα ασχοληθούμε με την ασύρματη επικοινωνία μη

κεντρικοποιημένων δικτύων όπως είναι τα ΜΑΝΕΤ (Mobile Ad Hoc Network)

• ο χρήστης μπορεί να τρέξει το παράδειγμα με κάποιο πρωτόκολλο δρομολόγησης όπως το AODV , DSR , DSDV , DYMO ,OLSR.

• Στην INET βιβλιοθήκη το AODV και DSR αναφέρονται ως AODVUU και DSRUU. Το «UU» στο τέλος αναφέρεται στο πανεπιστήμιο της Ουψάλα (Uppsala University)

Page 16: Εργαστήριο Δικτύων Omnet++ 2015 vol2

Net80211_control.ned• Πατάμε διπλό click στο αρχείο Net80211_control.ned

• Το channel control καθορίζει πληροφορίες για τη θέση και την κίνηση των κόμβων ενώ καθορίζει και το μοντέλο απωλειών (default value – free space model)

• To configurator ρυθμίσει τις διευθύνσεις IP και τους πίνακες δρομολόγησης για το δίκτυο με σκοπό την εύρεση του συντομότερου μονοπατιού

• Στο δίκτυο μας υπάρχουν κινητά που στέλνουν μηνύματα (στο παράδειγμά μας στέλνουν UDP packets)

Page 17: Εργαστήριο Δικτύων Omnet++ 2015 vol2

AdhocHost.ned• Bλέπουμε τι βρίσκεται μέσα στους δυο κόμβους –

αποστολέας και παραλήπτη, χρησιμοποιείται η σύνθετη οντότητα (compound module) “AdhocHost”

Page 18: Εργαστήριο Δικτύων Omnet++ 2015 vol2

Simulation Setup configuration from omnetpp.ini file)

Επιλέγουμε το αρχείο .ini (συνήθως είναι omnetpp.ini) Από το πεδίο Form αλλάζουμε τις παρακάτω μεταβλητέςΑπό το General• sim-time-limit 200sΑπό το Parameters • numHosts =10 , numFixHosts =0 • .constraintAreaMaxX / Y = 500m• **.udpApp[0].chooseDestAddrMode = perSend (για να

αλλάζουμε προορισμό πακέτων με κάθε νέο πακέτο)• **.udpApp[0].sendInterval = 0.01s (400 kbps) κάθε πότε θα

δημιουργεί η πηγή νέο πακέτο Από το Result Recording ελέγχουμε αν είναι «τικαρισμένα» τα

Enable recording of vectors & scalars

Page 19: Εργαστήριο Δικτύων Omnet++ 2015 vol2

Launching Simulations• Για να τρέξουμε την προσομοίωση πατάμε την επιλογή Run

Page 20: Εργαστήριο Δικτύων Omnet++ 2015 vol2

Running Simulations• Επιλέγουμε το Config name : DYMOUM -- "Aodv Simple test“ • Επιλέξουμε τον τρόπο με τον οποίο θα τρέξουμε την προσομοίωσή μας• Step by step - F4• Run - F5 (με βάση την ταχύτητα που έχουμε επιλέξει βλ. παρακάτω)• Fast – F6• Express – F7• Until (ένα συγκεκριμένο event / μήνυμα που μας ενδιαφέρει)Για να σταματήσουμε την προσομοίωσή μας πατάμε το Stop – F8 Για να αποθηκευτούν τα αποτελέσματά μας πρέπει να καλέσουμε την finish

() (το σημαιάκι)

Page 21: Εργαστήριο Δικτύων Omnet++ 2015 vol2

• Στο κύριο παράθυρό μας τρέχει η προσομοίωση όπου μπορούμε να επιλέξουμε την ταχύτητα με την οποία θέλουμε να τρέξει

• Από κάτω φαίνονται τα event τα οποία πραγματοποιούνται • Μπορούμε να κάνουμε διπλό click για να μπούμε μέσα σε

κάποια οντότητα για να δούμε μέσα σε αυτήν τα events χαμηλότερου επιπέδου

Running Simulations

Page 22: Εργαστήριο Δικτύων Omnet++ 2015 vol2

Αναλύοντας τααποτελέσματα• Τα αποτελέσματα

αποθηκεύονται στο φάκελο result εφόσον έχουμε κλείσει προηγουμένως την προσομοίωση με το finish

• Διπλό click για να ανοίξει κάποιο από τα αρχεία .vec ή .sca

• Το εργαλείο ανάλυσης των αποτελεσμάτων μετά την επεξεργασία των αποτελεσμάτων θα φτιάξει ένα αρχείο .anf το οποίο μετά μπορείτε να ξαναπροσπελάσετε για να δείτε τα αποτελέσματα.

Page 23: Εργαστήριο Δικτύων Omnet++ 2015 vol2

Αναλύοντας τααποτελέσματα• Αφού έχουμε κλείσει την προσομοίωσή μας τότε πηγαίνουμε στο

φάκελο results που έχει δημιουργηθεί • Επιλέγουμε να ανοίξουμε το αρχείο .sca • Στο παράθυρο που θα μας ανοίξει επιλέγουμε το πεδίο Browse Data

(στο κάτω μέρος της καρτέλας που μας άνοιξε) για να δούμε τις μετρικές που μας ενδιαφέρουν

Page 24: Εργαστήριο Δικτύων Omnet++ 2015 vol2

ΜετρικέςΚάποιες χαρακτηριστικές μετρικές είναι οι παρακάτω

• Number of CollisionsΌταν δύο οι περισσότερα πακέτα διασταυρωθούν σε κάποιο μονοπάτι την ίδια στιγμή τότε προκαλούνται παρεμβολές, οι οποίες έχουν ως αποτέλεσμα κάποια από αυτά τα πακέτα να τεθούν άχρηστα. • Average ThroughputΑποτελεί το ποσοστό επιτυχούς παράδοσης πακέτων ανά μονάδα χρόνου πάνω σε ένα κανάλι επικοινωνίας. Μετριέται σε bit/sec. • Number of received PacketsΕίναι ο συνολικός αριθμός των πακέτων που έλαβαν οι κόμβοι.• End – To – End DelayΕίναι ο χρόνος που χρειάζεται ένα πακέτο να φτάσει στον τελικό παραλήπτη από την στιγμή που δημιουργήθηκε στον κόμβο αποστολέα. Ο χρόνος αυτός λαμβάνει υπόψη και τους χρόνους που απαιτούνται για την αποστολή του πακέτου στους ενδιάμεσους κόμβους. • Packet Loss Rate Είναι το ποσοστό απώλειας πακέτων που στάλθηκαν από τους κόμβους πηγές και δεν έφτασαν στους τελικούς παραλήπτες.

Page 25: Εργαστήριο Δικτύων Omnet++ 2015 vol2

Event Log • Μπορούμε να απεικονίσουμε τις αλληλεπιδράσεις σε ένα

δυναμικό διάγραμμα ακολουθίας. • Το διάγραμμα ακολουθίας λειτουργεί από το αρχείο

καταγραφής συμβάντων (.elog) • Για να ενεργοποιήσουμε το eventlog στο αρχείο .ini

>Form>Event Log > Enable eventlog recording

Page 26: Εργαστήριο Δικτύων Omnet++ 2015 vol2

Event Log

Page 27: Εργαστήριο Δικτύων Omnet++ 2015 vol2

Importing Inet Framework

• Για να το κατεβάσουμε πηγαίνουμε στην ιστιοσελίδα http://inet.omnetpp.org/index.php?n=Main.Download

• Στο IDE του Omnet επιλέγουμε File>Import>General>Existing Projects into Workspace>Next

• Ύστερα επιλέγουμε Browse βρίσκουμε τον φάκελο που έχουμε αποσυμπιέσει το Inet και το επιλέγουμε.

• Τσεκάρουμε τις επιλογές Copy project into workspace και Search for nested projects

• Πατάμε Finish• Για να ολοκληρώσουμε την διαδικασία πατάμε Ctrl+B για να

κάνει build το Inet και να μπορούμε να το χρησιμοποιήσουμε• Μπορείτε να βρείτε περισσότερες λεπτομέρειες στο

παρακάτω video

Page 28: Εργαστήριο Δικτύων Omnet++ 2015 vol2

Χρήσιμα link

• András Varga. OMNΕT++, Discrete Event Simulation System, Version 4.4, http://www.omnetpp.org/

• INET Framework, http://inet.omnetpp.org/• Google Group “omnetpp”,

https://groups.google.com/forum/#!forum/omnetpp• OMNeT++ API Reference,

http://omnetpp.org/doc/omnetpp/api/index.html• C++ source documentation (Doxygen),

http://inet.omnetpp.org/doc/INET/doxy/index.html• OMNeT++ USER MANUAL

http://omnetpp.org/doc/omnetpp/manual/usman.html#toc_1• INET Framework API http://

inet.omnetpp.org/doc/INET/neddoc/index.html• YouTube Video from our friend Rupam (installing Omnet++ and

import a library) https://www.youtube.com/watch?v=XhklF78Lbbc