Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Πρόγραμμα Προπτυχιακών Σπουδών Τμήμα Ψηφιακών Συστημάτων Δίκτυα Υπολογιστών Ι Λέκτορας ΠΔ Κ.Τσαγκάρης Εισαγωγή στον Network Simulator-2.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Πρόγραμμα Προπτυχιακών Σπουδών Τμήμα Ψηφιακών Συστημάτων Δίκτυα Υπολογιστών Ι Λέκτορας ΠΔ Κ.Τσαγκάρης Εισαγωγή στον Network Simulator-2."— Μεταγράφημα παρουσίασης:

1 Πρόγραμμα Προπτυχιακών Σπουδών Τμήμα Ψηφιακών Συστημάτων Δίκτυα Υπολογιστών Ι Λέκτορας ΠΔ 407 - Κ.Τσαγκάρης Εισαγωγή στον Network Simulator-2

2 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 2 - Τι είναι ο Network Simulator-2 (NS-2);  O NS (Network Simulator) είναι ένας προσομοιωτής διακριτών γεγονότων προσανατολισμένος στην έρευνα και εκπαίδευση γύρω από τα δίκτυα επικοινωνιών/υπολογιστών  Ο NS παρέχει σημαντική υποστήριξη –στην προσομοίωση πρωτοκόλλων επικοινωνίας, δρομολόγησης κ.ά. επάνω σε ενσύρματα αλλά και ασύρματα δίκτυα –Σύγκριση πρωτοκόλλων –Νέα αρχιτεκτονικά σχέδια  NS-2 είναι ένα δωρεάν λογισμικό πρόγραμμα με μεγάλο πλήθος βιβλιοθηκών, γραμμένες σε Tcl/OTcl αλλά και σε C/C++ –Ανοικτός κώδικας –«Αύξηση εμπιστοσύνης» στο αποτέλεσμα  Ο NS-2 θεωρείται ένα ισχυρό εργαλέιο προσομοίωσης, αλλά... –απαιτεί πολλή μελέτη –πολλή εξάσκηση κυρίως για την «πραγματική εργασία» στον NS-2 (δηλ. αλλαγές στον κώδικα)

3 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 3 -... Τι είναι ο Network Simulator-2 (NS-2);  ns-2 –~230 kLOC C/C++, ~150 kLOC Tcl/OTcl –~100 test suites και 100+ παραδείγματα –~400 σελίδες του ns manual –Τελευταία έκδοση: 2.34, 17 Ιουλίου 2009  Υποστηριζόμενες πλατφόρμες –FreeBSD, Linux, Solaris, Windows, Mac  Χρήστες –>1k ινστιτούτα (50 χώρες), >10k χρήστες –~300 θέματα/μήνα στην ns-users@isi.edu (σελίδα εγγραφής: http://mailman.isi.edu/mailman/listinfo/ns-users)ns-users@isi.edu http://mailman.isi.edu/mailman/listinfo/ns-users  ns-3 –Εκδόσεις κάθε 15 του μηνός (μόνο source) –Σεπτέμβριος 22, 2008 (ns-3.2) –Άμεσα σχέδια βελτίωσης Άμεσή σύνδεση με την πραγματική στοίβα πρωτοκόλλων TCP/IP Εξελιγμένη καταγραφή αποτελεσμάτων/στατιστικών (Doxygen) Νέα, ακριβή μοντέλα για 802.11/MAC Python bindings …

4 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 4 - Προσομοίωση διακριτών γεγονότων  2 τύποι προσομοίωσης  Προσομοίωση οδηγούμενη από διακριτό χρόνο (discrete time-driven simulation) –ο χρόνος διακριτοποιείται σε διαστήματα. –για κάθε διάστημα μια διαδικασία ελέγχει αν υπάρχει γεγονός να επεξεργαστεί –αλλιώς προχωρά στο επόμενο διάστημα (Δύσκολη και ακριβή)  Προσομοίωση οδηγούμενη από διακριτά γεγονότα (discrete event-driven simulation) –Η βασική διαδικασία (scheduler) δημιουργεί μια λίστα (linked list) από γεγονότα, καθένα από τα οποία δεικτοδοτείται ανάλογα

5 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 5 -...Προσομοίωση διακριτών γεγονότων  Ο NS-2 είναι ένας προσομοιωτής διακριτών γεγονότων (discrete-event simulator) –Φυσικές δραστηριότητες μεταφράζονται σε γεγονότα (events) π.χ. επαναμετάδοση πακέτου μετά από λήξη timeout  Η «καρδιά» του NS-2 είναι ο scheduler –Στην αρχή της προσομοίωσης ο χρήστης δρομολογεί έναν αριθμό από γεγονότα που θα εκτελεσθούν π.χ. Έναρξη μιας εφαρμογής –Τα αντικείμενα του scheduler δρομολογούν άλλα γεγονότα –Όλα τα γεγονότα μπαίνουν σε μια λίστα ανάλογα με το χρόνο εκτέλεσή τους

6 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 6 -...Προσομοίωση διακριτών γεγονότων –Ο scheduler αποσπά (dequeue) από τη λίστα το γεγονός που υπάρχει στην κορυφή ενημερώνει το χρόνο εκτελεί το γεγονός αποσπά νέο γεγονός....κ.ο.κ μέχρι το γεγονός εξόδου ΠΡΟΣΟΧΗ: –Ο χρόνος στον NS-2 δεν αντιστοιχεί στον πραγματικό χρόνο –Ο χρόνος προσομοίωσης εξαρτάται από το πλήθος των γεγονότων που εκτελούνται εντός αυτού 12 Time: 1.5 secTime: 1.7 sec Time: 1.8 secTime: 2.0 sec

7 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 7 -...Προσομοίωση διακριτών γεγονότων TX Pkt Event @ 1.5sec Node 1 Module Node 2 Module TX Pkt Event @ 1.5sec RX Pkt Event @ 1.7sec TX Ack Event @ 1.8sec RX Ack Event @ 2.0sec Λίστα γεγονότων Τέλος Προσομοίωσης!

8 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 8 - …Τι είναι ο Network Simulator-2 (NS-2); Περιορισμοί του NS-2  Τα μοντέλα που χρησιμοποιούνται στον NS-2 είναι εκ των πραγμάτων απλοποιημένα σε σχέση με τα πραγματικά συστήματα (π.χ. υποστηρίζονται μοντέλα προσομοίωσης για Reno, NewReno, Sack ή Fack TCP, ωστόσο, δεν υπάρχει δυναμική διαφήμιση παραθύρου)  Ο NS-2 δεν είναι ένα πλήρως εμπορικό προιόν, ούτε και έχει τελειώσει η ανάπτυξή του  Είναι αποτέλεσμα συνεχιζόμενης ερευνητικής και προγραμματιστικής προσπάθειας –Λάθη στο software ανακαλύπτονται συνεχώς και διορθώνονται. –Η επικύρωση της ορθότητας των αποτελεσμάτων προσομοίωσης είναι δική μας υπόθεση (π.χ. λάθη στο πακέτο EDCF για το πρωτόκολλο 802.11e)  ΠΑΡΟΛΑ ΑΥΤΑ, ο NS-2 είναι πολύ δημοφιλής! –Αρκετές εκατοντάδες από ερευνητικά άρθρα που χρησιμοποιούν τον NS-2 είναι διαθέσιμα

9 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 9 - Εγκατάσταση του NS-2 Απαιτήσεις για εγκατάσταση του NS-2  Ένας Unix like Η/Υ (FreeBSD, Linux, Solaris), ένας C++ compiler, 320MB αποθηκευτικού χώρου  Για εγκατάσταση του NS-2 σε windows απαιτέιται Linux emulator π.χ. Cygwin (linux-like περιβάλλον για Windows) : –Μια DLL (cygwin1.dll) = Linux API emulation layer που παρέχει την απαραίτητη Linux API λειτουργικότητα –Συλλογή εργαλείων, που παρέχουν ένα Linux «look and feel». –Αρκετά πειραματικό, προτιμούμε εγκατάσταση σε Linux  2 τρόποι εγκατάστασης του NS-2 –Εγκατάσταση από τα ξεχωριστά κομμάτια του –Εγκατάσταση από το πακέτο all-in-one (όλα σε ένα )  Θα εγκαταστήσουμε το πακέτο ns-allinone-2.33 σε Linux μηχανήματα

10 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 10 - Εγκατάσταση του NS-2 σε Linux  Βήμα 1: κατεβάζουμε το πακέτο ns-allinone (έκδοση 2.33) από την επίσημη ιστοσελίδα του NS-2 –για εκδόσεις πριν το 2005 -> http://www.isi.edu/nsnam/nshttp://www.isi.edu/nsnam/ns –πλέον, από την αποθήκη πηγαίου κώδικα SourceForge.net -> http://sourceforge.net/project/showfiles.php?group_id=1497 43  Βήμα 2: επιλέγουμε ένα directory εργασίας έστω το /home/ktsagkaris και αντιγράφουμε το αρχείο  Βήμα 3: αποσυμπιέζουμε το αρχέιο $ tar xzvf ns-allinone-2.33.tar  Βήμα 4: Εντός του ns-allinone directory, τρέχουμε το script εγκατάστασης $ cd ~/ns-allinone-2.33 $./install –Αν δεν τελειώσει ή είναι ανεπιτυχής η εγκατάσταση, ερώτηση στη ns-mailing list ή ατομική διόρθωση!

11 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 11 -...Εγκατάσταση του NS-2 σε Linux  Βήμα 5: διαμορφώνουμε το προσωπικό μας.bashrc αρχέιο στο home directory για τη χρήση του NS-2 $ cd ~ ή cd /home/ktsagkaris $ vi.bashrc &  Δηλ. προσθέτουμε στο αρχείο τις ακόλουθες γραμμές για –τα εκτελέσιμα του NS και της tcl –LD_LIBRARY_PATH και TCL_LIBRARY που είναι μεταβλητές περιβάλλοντος (environment variables) και δείχνουν σε βιβλιοθήκες (libraries απαραίτητες) για τon NS –Η εντολή εξαρτάται από τον shell που χρησιμοποιείται) export PATH="$PATH:/home/ktsagkaris/ns-allinone- 2.33/bin:/home/ktsagkaris/ns-allinone-2.33/tcl 8.4.14/unix:/home/ktsagkaris/ns-allinone-2.33/tk8.4.18/unix" export LD_LIBRARY_PATH="/home/ktsagkaris/ns-allinone- 2.33/otcl-1.13:/home/ktsagkaris/ns-alli none-2.33/lib" export TCL_ LIBRARY="/home/ktsagkaris/ns-allinone- 2.33/tcl8.4.18/library"

12 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 12 -...Εγκατάσταση του NS-2 σε Linux  Βήμα 6: Βγείτε από το τρέχον τερματικό και εκτελέστε ένα νέο και κάντε έλεγχο αν τρέχει το ns.exe $ ns %  Βήμα 7: (προαιρετικό) τρέξτε κάποιο από τα παραδείγματα π.χ. $ cd ~/ns-allinone-2.33/ns-2.33/tcl/ex $ ns simple.tcl 210 0.0037499999999999999 running nam...  Βήμα 8: (προαιρετικό) Επικυρώστε την εγκατάσταση. Πηγαίνετε στο directory του NS και τρέξτε “validate” (χρονοβόρο) $ cd ~/ns-allinone-2.33/ns-2.33 $./validate

13 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 13 - Πρωτόκολλα και μοντέλα στον NS-2  Μοντέλα κίνησης (Traffic models) και Εφαρμογές (applications): –Web, FTP, telnet, constant-bit rate(CBR)…  Πρωτόκολλα μεταφοράς (Transport protocols): –Unicast: TCP (π.χ. Reno, Vegas), UDP, Multicast (π.χ. Scalable Reliable Multicasting - SRM, Receiver Driven Layered - RLM)  Δρομολόγηση (Routing) και ουρές αναμονής (queuing): –Static routing, DV routing, multicast, Ad-Hoc routing… –Διαχείριση ουρών αναμονής (Queuing disciplines): drop- tail, RED (Random Early Drop), (S)FQ…  Φυσικά μέσα διάδοσης (Physical media): –Ενσύρματα (Wired – point-to-point, LANs), Ασύρματα (Wireless), Δορυφορικά (Satellite)

14 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 14 - Τα συστατικά του NS-2  Ο προσομοιωτής NS-2 αυτός καθεαυτός –Καθορίζει την προσομοίωση –Παράγει αποτελέσματα (ίχνη ή traces)  NAM = Network AniMator –Οπτικοποίηση (visualization) της προσομοίωσης του NS –GUI για κατασκευή απλών σεναρίων  Προ-επεξεργασία (pre-processing): –Γεννήτριες κίνησης και τοπολογίας  Μετ-επεξεργασία (post-processing): –Ανάλυση ιχνών (trace analysis) εκτός από Tcl scripts, συχνά σε Awk ή Perl –Εργαλεία αναπαράστασης αποτελεσμάτων Xgraph, Gnuplot, excel κτλ

15 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 15 - Δομή αρχείων του NS-2 ns-2.33extcl tcl8.4.18 tk8.4.18 tclcl-1.19 otcl-1.13 nam-1.13 … doc ns-tutorial … models test lib … examples core code test cases } C++ } OTcl …και φυσικά, το αρχείο (script) για προσομοίωση!

16 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 16 - Οι δύο γλώσσες του NS-2  Δύο γλώσσες: 1. Tcl/OTcl 2. C++ 1. Tcl/OTcl: –MIT Object Tcl, –Επέκταση της Tcl/Tk για object-oriented programming  Χρησιμοποιείται για να δημιουργήσει τη δομή του δικτύου και την τοπολογία  Απλή σύνταξη και συμβατή με πολλές πλατφόρμες  Ευκολία στη διευθέτηση (configuration) των παραμέτρων δικτύου  Εξερευνά γρήγορα πολλά και διαφορετικά σενάρια  Όχι αρκετή για περαιτέρω ερευνητικά ζητήματα

17 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 17 - Οι δύο γλώσσες του NS-2 2. C++: Το πιο σημαντικό κομμάτι του NS-2!  Υλοποίηση του πυρήνα της αρχιτεκτονικής των πρωτοκόλλων –Τροποποίηση ή αποκλεισμός ( “comment out” ) των υπαρχόντων πρωτοκόλλων στον NS-2  Λεπτομερείς προσομοιώσεις πρωτοκόλλων απαιτούν γλώσσα προγραμματισμού συστήματος –διαχείριση byte, επεξεργασία πακέτου, υλοποίηση αλγορίθμων –Η ταχύτητα και ο χρόνος εκτέλεσης είναι πολύ σημαντικά –Αργός χρόνος απόκρισης στις αλλαγές run simulation find bug fix bug recompile re-run

18 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 18 - Τελικά γιατί 2 γλώσσες? Διότι 2 και οι βασικές απαιτήσεις του προσομοιωτή!  Λεπτομερής προσομοίωση πρωτοκόλλου: Ταχύτητα χρόνου εκτέλεσης  Γρήγορη μεταβολή παραμέτρων του configuration: Ευκολία χρήσης  Η C++ είναι γρήγορη στην εκτέλεση αλλά αργή στις αλλαγές (κωδικοποίηση)  Η Tcl/OTcl είναι εύκολη στην κωδικοποίηση αλλά τρέχει αργά

19 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 19 - Σύνταξη Tcl  Set b 0 b=0  χρήση της b me $b  Μαθηματική λειτουργία (expression) –set x [expr $a + $b]  puts “[expr 1/60]”τυπώνει 0  puts “[expr 1.0/60.0]”τυπώνει 0.0166  Σχόλια με #

20 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 20 - … Σύνταξη Tcl  Άνοιγμα αρχείου –set file1 [open filename w]  Βρόχοι –for { set i 0 } { $i < 5 } { incr i } { execute commands }  Διαδικασίες (procedures) –proc lala { par1 par2 … } { global var1 var2 Return sth }

21 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 21 - Παράδειγμα Tcl script (ex-tcl.tcl) # Γράφουμε μια διαδικασία (procedure) “test” και την αποθηκεύουμε σε ένα αρχείο ex-tcl.tcl proc test {} { set a 43 set b 27 set c [expr $a + $b] set d [expr [expr $a - $b] * $c] for {set k 0} {$k < 10} {incr k} { if {$k < 5} { puts "k < 5, pow = [expr pow($d, $k)]“ } else { puts "k >= 5, mod = [expr $d % $k]“ }

22 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 22 - …Παράδειγμα Tcl script (ex-tcl.tcl) # κλήση της τεστ που δημιουργήθηκε ns ex-tcl.tcl k < 5, pow = 1.0 k < 5, pow = 1120.0 k < 5, pow = 1254400.0 k < 5, pow = 1404928000.0 k < 5, pow = 1573519360000.0 k >= 5, mod = 0 k >= 5, mod = 4 k >= 5, mod = 0 k >= 5, mod = 4

23 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 23 - Παράδειγμα OTcl script (ex-otcl.tcl) Class Mom Mom instproc greet {} { $self instvar age_ puts “$age_ years old mom: How are you doing?” } Class Kid -superclass Mom Kid instproc greet {} { $self instvar age_ puts “$age_ years old kid: What’s up, dude?” } set mom [new Mom] $mom set age_ 45 set kid [new Kid] $kid set age_ 15 $mom greet $kid greet ns ex-otcl.tcl 45 years old mom say: How are you doing? 15 years old kid say: What's up, dude? Δημιουργία κλάσης “mom” και προσθήκη συνάρτησης μέλους “greet” Δημιουργία child κλάσης “kid” που κληρονομεί τη “mom” και αντικατάσταση (override) της συνάρτησης μέλους “greet” Κλήση της συνάρτησης μέλους "greet” για κάθε αντικείμενο Δημιουργία αντικειμένων mom και kid Θέση τιμής age

24 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 24 - Βήματα προσομοίωσης μέσω NS-2  Δημιουργία Tcl/OTcl script για το μοντέλο του δικτύου μας –Κόμβοι (nodes), ζεύξεις(links), πηγές κίνησης (traffic sources), αποδέκτες κίνησης (sinks) κτλ  Παραμετροποίηση αντικειμένων προσομοίωσης –Ζεύξεις: μεγέθη ουρών, ταχύτητα ζεύξης, … –Πρωτόκολλα μεταφοράς: TCP με παραμέτρους (>30) όπως μέγεθος παραθύρου συμφόρησης, …  Συλλογή στατιστικών –Αποτύπωση των γεγονότων σε ίχνη, μετ-επεξεργασία τους –Καταγραφή στατιστικών εντός του OTCL script κατά την προσομοίωση –Τροποποίηση του πηγαίου NS κώδικα  Εκτέλεση του NS-2 πολλές φορές –Διαστήματα εμπιστοσύνης (confidence intervals)

25 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 25 - Δημιουργία μιας βασικής προσομοίωσης NS-2 1. Δημιουργία του δρομολογητή γεγονότων (event scheduler) 2. Δημιουργία κόμβων και ζεύξεων 3. Δημιουργία συνδέσεων 4. Δημιουργία πηγών/αποδεκτών κίνησης 5. Ενεργοποίηση καταγραφής (tracing)

26 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 26 - Δημιουργία μιας βασικής προσομοίωσης NS-2 1. Δημιουργία του δρομολογητή γεγονότων (event scheduler) 2. Δημιουργία κόμβων και ζεύξεων 3. Δημιουργία συνδέσεων 4. Δημιουργία πηγών/αποδεκτών κίνησης 5. Ενεργοποίηση καταγραφής (tracing)

27 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 27 - Βήμα 1: Δημιουργία του event scheduler  Δημιουργία scheduler set ns [new Simulator]  Προγραμματισμός γεγονότος $ns at : οποιαδήποτε αποδεκτή Ns/TCL εντολή π.χ $ns at 0.5 “$cbr start” $ns at 4.5 “$cbr stop” $ns at 5.0 “finish”  Εκκίνηση scheduler $ns run

28 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 28 - Δημιουργία μιας βασικής προσομοίωσης NS-2 1. Δημιουργία του δρομολογητή γεγονότων (event scheduler) 2. Δημιουργία κόμβων και ζεύξεων 3. Δημιουργία συνδέσεων 4. Δημιουργία πηγών/αποδεκτών κίνησης 5. Ενεργοποίηση καταγραφής (tracing)

29 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 29 - Βήμα 2: Δημιουργία του δικτύου (κόμβοι και ζεύξεις)  Κόμβοι (Nodes) set n0 [$ns node] set n1 [$ns node]  Ζεύξεις (Links): ενώνουν 2 κόμβους $ns duplex-link $n0 $n1 simplex-link και duplex-link χωρητικότητα (ταχύτητα ζεύξης) προσδιορίζει την καθυστέρηση διάδοσης καθορίζει την πολιτική διαχείρισης ουρών (DropTail, RED, CBQ, FQ, SFQ, DRR) n1 n0

30 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 30 - Δημιουργία μιας βασικής προσομοίωσης NS-2 1. Δημιουργία του δρομολογητή γεγονότων (event scheduler) 2. Δημιουργία κόμβων και ζεύξεων 3. Δημιουργία συνδέσεων 4. Δημιουργία πηγών/αποδεκτών κίνησης 5. Ενεργοποίηση καταγραφής (tracing)

31 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 31 - Βήμα 3: Δημιουργία συνδέσεων  Transports: –TCP, UDP, multicast κτλ. –Νέο: SCTP (Stream Control Transport Protocol), RFC 2960 –Πρωτόκολλα μεταφοράς «επισυνάπτονται» στους κόμβους

32 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 32 - Δημιουργία καναλιών μεταφοράς: UDP  Πηγή και αποδέκτης set u_src [new Agent/UDP] set u_dst [new Agent/NULL]  Επισύναψη στους κόμβους και μετά σύνδεσή τους $ns attach-agent $n0 $u_src $ns attach-agent $n1 $u_dst $ns connect $u_src $u_dst n1 n0 udp null

33 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 33 - Δημιουργία καναλιών μεταφοράς: TCP  Πηγή και αποδέκτης set t_src [new Agent/TCP/Newreno] set t_dst [new Agent/TCPSink] Ο “Newreno” είναι αλγόριθμος αποφυγής συμφόρησης στο TCP  Επισύναψη στους κόμβους και μετά σύνδεσή τους $ns attach-agent $n0 $t_src $ns attach-agent $n1 $t_dst $ns connect $t_src $t_dst n1 n0 tcp sink

34 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 34 - Δημιουργία μιας βασικής προσομοίωσης NS-2 1. Δημιουργία του δρομολογητή γεγονότων (event scheduler) 2. Δημιουργία κόμβων και ζεύξεων 3. Δημιουργία συνδέσεων 4. Δημιουργία πηγών/αποδεκτών κίνησης 5. Ενεργοποίηση καταγραφής (tracing)

35 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 35 - Βήμα 4: Δημιουργία μοντέλων κίνησης  Κίνηση - Εφαρμογές : –Web, ftp, telnet, audio, κτλ. –Αντικείμενα εφαρμογών (application objects) προσδένονται σε αντικείμενα πρωτοκόλλου μεταφοράς (transport protocol objects) –Γεννιέται κίνηση στο πρωτόκολλο μεταφοράς

36 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 36 - Κίνηση πάνω από TCP FTP session πάνω από TCP?  Δημιουργία μοντέλου κίνησης set ftp [new Application/FTP] –η εξ’ ορισμού (default) περίπτωση αναφέρεται σε άπειρο μέγεθος αρχείου  Πρόσδεση σε TCP κανάλι $ftp attach-agent $t_src  Δρομολόγηση χρόνου έναρξης $ns at “$ftp start” n1 n0 tcp ftp sink

37 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 37 - Κίνηση πάνω από UDP Μοντέλο CBR (Constant Bit Rate) πάνω από UDP? set cbr [new Application/Traffic/CBR] $cbr set packetSize_ 512 $cbr set interval_ 0.250 $cbr attach-agent $u_src $ns at “$cbr start” n1 n0 udp cbr null

38 Δρ. Κ. Τσαγκάρης Δρομολόγηση n0n1 Addr Classifier Port Classifier classifier_ dmux_ entry_ 0 1 Addr Classifier Port Classifier classifier_ dmux_ entry_ 1 0 Link n0-n1 Link n1-n0 Πρόγραμμα Μεταπτυχιακών Σπουδών Δίκτυα Υψηλών Ταχυτήτων Διδακτική της Τεχνολογίας & Ψηφιακά Συστήματα- 38 -

39 Δρ. Κ. Τσαγκάρης 0 1 Μεταφορά n0n1 Addr Classifier Port Classifier classifier_ dmux_ entry_ 0 Agent/TCP agents_ Addr Classifier Port Classifier classifier_ dmux_ entry_ 1 0 Link n0-n1 Link n1-n0 0 Agent/TCPSink agents_ dst_=1.0 dst_=0.0 Πρόγραμμα Μεταπτυχιακών Σπουδών Δίκτυα Υψηλών Ταχυτήτων Διδακτική της Τεχνολογίας & Ψηφιακά Συστήματα- 39 -

40 Δρ. Κ. Τσαγκάρης 0 1 n0n1 Addr Classifier Port Classifier classifier_ dmux_ entry_ 0 Agent/TCP agents_ Addr Classifier Port Classifier classifier_ dmux_ entry_ 1 0 Link n0-n1 Link n1-n0 0 Agent/TCPSink agents_ dst_=1.0 dst_=0.0 Application/FTP Εφαρμογή Πρόγραμμα Μεταπτυχιακών Σπουδών Δίκτυα Υψηλών Ταχυτήτων Διδακτική της Τεχνολογίας & Ψηφιακά Συστήματα- 40 -

41 Δρ. Κ. Τσαγκάρης 0 1 n0n1 Addr Classifier Port Classifier entry_ 0 Agent/TCP Addr Classifier Port Classifier entry_ 1 0 Link n0-n1 Link n1-n0 0 Agent/TCPSink dst_=1.0 dst_=0.0 Application/FTP Ροή πακέτων Πρόγραμμα Μεταπτυχιακών Σπουδών Δίκτυα Υψηλών Ταχυτήτων Διδακτική της Τεχνολογίας & Ψηφιακά Συστήματα- 41 -

42 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 42 - Δημιουργία μιας βασικής προσομοίωσης NS-2 1. Δημιουργία του δρομολογητή γεγονότων (event scheduler) 2. Δημιουργία κόμβων και ζεύξεων 3. Δημιουργία συνδέσεων 4. Δημιουργία πηγών/αποδεκτών κίνησης 5. Ενεργοποίηση καταγραφής (tracing)

43 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 43 - Βήμα 5: Καταγραφή (αντικείμενα καταγραφής)  EnqT: κρατά πληροφορίες για ένα πακέτο που φθάνει και εισέρχεται στην ουρά εισόδου της γραμμής  DrpT: αν συμβεί υπερχείλιση, το αντικείμενο DropT διαχειρίζεται τα απορριφθέντα πακέτα  DeqT: καταχωρεί πληροφορίες για το χρονικό σημείο που το πακέτο εξέρχεται της ουράς  RecvT: δίνει πληροφορίες για τα πακέτα που ελήφθησαν στην έξοδο της ζεύξης

44 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 44 - Βήμα 5: Καταγραφή  Καταγραφή πακέτων σε όλες τις ζεύξεις set f [open out.tr w] $ns trace-all $f  Οπτικοποίηση της καταγραφής μέσω NAM set nf [open out.nam w] $ns namtrace-all $nf

45 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 45 - Βασική (default) μορφή trace file 1. Event ( + enque, - deque, r receive, d drop) 2. time of event 3. input node της ζεύξης που συμβαίνει το event 4. output node της ζεύξης που συμβαίνει το event 5. packet type (tcp,udp,cbr,sip,...) 6. packet size (σε bytes, encoded στην IP header) 7. flags (για διάφορες λειτουργίες π.χ. για μείωση παραθύρου συμφόρησης) 8. flow id (σε περίπτωση IPv6 ή σαν color id) 9. source address ( ) 10. destination address ( ) 11. seq num (αύξων αριθμός πακέτου για αναλύσεις, ακόμα και για UDP) 12. pkt id (μοναδικό αναγνωριστικό πακέτου)

46 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 46 - Παράδειγμα Trace file.txt (n1->n2)... + 11.533441 1 2 tcp 1440 ------- 12 1.2 2.4 96 2092 r 11.535694 1 2 tcp 1440 ------- 12 1.2 2.4 65 1527 - 11.537214 1 2 exp 180 ------- 100 0.2 2.13 284 1528 - 11.538654 1 2 cbr 1440 ------- 101 1.11 2.14 155 1530 r 11.547214 1 2 tcp 1440 ------- 12 1.2 2.4 66 1529 + 11.54728 1 2 tcp 1440 ------- 12 1.2 2.4 97 2095 r 11.548654 1 2 exp 180 ------- 100 0.2 2.13 284 1528 + 11.55 1 2 cbr 1440 ------- 101 1.11 2.14 211 2096 - 11.550174 1 2 tcp 1440 ------- 12 1.2 2.4 67 1534 r 11.560174 1 2 cbr 1440 ------- 101 1.11 2.14 155 1530 - 11.561694 1 2 exp 180 ------- 100 0.2 2.13 285 1532 + 11.56222 1 2 tcp 1440 ------- 12 1.2 2.4 98 2097 - 11.563134 1 2 tcp 1440 ------- 12 1.2 2.4 68 1537 r 11.571694 1 2 tcp 1440 ------- 12 1.2 2.4 67 1534 r 11.573134 1 2 exp 180 ------- 100 0.2 2.13 285 1532 - 11.574654 1 2 exp 180 ------- 100 0.2 2.13 286 1536...

47 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 47 - Παράδειγμα Trace file.txt (n1->n2)... + 11.533441 1 2 tcp 1440 ------- 12 1.2 2.4 96 2092 r 11.535694 1 2 tcp 1440 ------- 12 1.2 2.4 65 1527 - 11.537214 1 2 exp 180 ------- 100 0.2 2.13 284 1528 - 11.538654 1 2 cbr 1440 ------- 101 1.11 2.14 155 1530 r 11.547214 1 2 tcp 1440 ------- 12 1.2 2.4 66 1529 + 11.54728 1 2 tcp 1440 ------- 12 1.2 2.4 97 2095 r 11.548654 1 2 exp 180 ------- 100 0.2 2.13 284 1528 + 11.55 1 2 cbr 1440 ------- 101 1.11 2.14 211 2096 - 11.550174 1 2 tcp 1440 ------- 12 1.2 2.4 67 1534 r 11.560174 1 2 cbr 1440 ------- 101 1.11 2.14 155 1530 - 11.561694 1 2 exp 180 ------- 100 0.2 2.13 285 1532 + 11.56222 1 2 tcp 1440 ------- 12 1.2 2.4 98 2097 - 11.563134 1 2 tcp 1440 ------- 12 1.2 2.4 68 1537 r 11.571694 1 2 tcp 1440 ------- 12 1.2 2.4 67 1534 r 11.573134 1 2 exp 180 ------- 100 0.2 2.13 285 1532 - 11.574654 1 2 exp 180 ------- 100 0.2 2.13 286 1536... 0.0114sec=180*8/(10^6)+0.01

48 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 48 - Καταγραφή μέσω παρακολούθησης  Παρακολούθηση ουράς: η ουρά για πρόσβαση σε μία ζεύξη set qmon[$ns monitor-queue $n0 $n1 $q_f $sample_interval] –Λήψη στατιστικών μιας ουράς $qmon set pdrops_ –Προαιρετική καταγραφή η σε trace file 29.000000000000142 0 1 0.0 0.0 4 4 0 1160 1160 0

49 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 49 - … Καταγραφή μέσω παρακολούθησης  Παρακολούθηση ροής (flow) monitor: συγκεκριμένη ροή σε μία ουρά set fmon [$ns makeflowmon Fid] $ns attach-fmon $link $fmon $ns at “puts $fmon set pdrops_”

50 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 50 - Μετ-επεξεργασία αποτελεσμάτων  nam-1 (Network AniMator Version 1) –Οπτικοποίηση σε επίπεδο πακέτου (packet-level) –Υποστηρίζεται πολύ καλά από τον NS-2  xgraph, gnuplot, tracegraph... –Γραφικές παραστάσεις

51 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 51 - Ο Network Animator (ΝΑΜ)

52 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 52 - Δυνατότητες ΝΑΜ - κόμβοι  Color (χρωματισμός κόμβων) $node color red  Shape (σχήμα κόμβων *δεν αλλάζει κατά τη διάρκεια της προσομοίωσης ) $node shape box (circle, box, hexagon)  Label (απλό string) $ns at 1.1 “ $n0 label \ ” web cache 0\ ””

53 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 53 - Δυνατότητες ΝΑΜ - ζεύξεις  Color $ns duplex-link-op $n0 $n1 color "green"  Label $ns duplex-link-op $n0 $n1 label “ backbone ”

54 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 54 - Ολοκληρωμένο παράδειγμα απλού δικτύου

55 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 55 - Ολοκληρωμένο παράδειγμα απλού δικτύου

56 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 56 - NS – Agents και Applications  Αφού ορίσαμε την τοπολογία -> traffic flow 1) FTP over ΤCP Tahoe/Reno/Vegas κτλ Ορισμός κόμβου πηγής της TCP σύνδεσης Sink στον προορισμό (acks) Σύνδεση πηγής-προορισμού Μέγεθος πακέτου TCP (default =1000) Ορισμός εφαρμογής FTP πάνω από τη σύνδεση TCP

57 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 57 -... NS – Agents και Applications 2) CBR over UDP Άλλες πηγές κίνησης πχ. Exponential, Pareto Ρυθμός μετάδοσης (σταθερός) Τυχαίος θόρυβος

58 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 58 - Προγραμματισμός γεγονότων  $ns at  Εκτέλεση simulator ns example.tcl

59 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 59 - Σύνοψη Scripts για εκτέλεση Εκτέλεση NS Αποτελέσματα προσομοίωσης Ανάλυση...

60 Δρ. Κ. Τσαγκάρης Πρόγραμμα Προπτυχιακών Σπουδών Δίκτυα Υπολογιστών Ι Τμήμα Ψηφιακών Συστημάτων- 60 - Δικτυακός τόπος  http://www.isi.edu/nsnam/ns http://www.isi.edu/nsnam/ns  http://nsnam.isi.edu/nsnam/index.php/Main_Page http://nsnam.isi.edu/nsnam/index.php/Main_Page


Κατέβασμα ppt "Πρόγραμμα Προπτυχιακών Σπουδών Τμήμα Ψηφιακών Συστημάτων Δίκτυα Υπολογιστών Ι Λέκτορας ΠΔ Κ.Τσαγκάρης Εισαγωγή στον Network Simulator-2."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google