Ασύρματες Κινητές Επικοινωνίες Ενότητα 2: Το επίπεδο MAC του WiFi



Σχετικά έγγραφα
Εργαστηριακή Άσκηση 3

Ασύρματες Κινητές Επικοινωνίες Ενότητα 3: Σημεία πρόσβασης στο Wireless Fidelity (WiFi) Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤE

Ασύρματες Κινητές Επικοινωνίες Ενότητα 1: Εισαγωγή

Ασύρματες Κινητές Επικοινωνίες Ενότητα 8: Επαναληπτική ενότητα

Εργαστηριακή Άσκηση 5

Ασύρματες Κινητές Επικοινωνίες Ενότητα 6: Worldwide Interoperability for Microwave Access (WiMAX)

ΜΑΘΗΜΑ: Ασύρματες Κινητές Επικοινωνίες

Ασύρματες Κινητές Επικοινωνίες Ενότητα 4: Το πρωτόκολλο Transmission Control (TCP)

Ασύρματες Κινητές Επικοινωνίες Ενότητα 5: Διαχείριση ενέργειας

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Δίκτυα Υπολογιστών Ενότητα 9: Dynamic Host Configuration Protocol- DHCP

Ασύρματες Κινητές Επικοινωνίες Ενότητα 7: Long Term Evolution (LTE)

Δίκτυα Υπολογιστών Ενότητα 10: Ethernet και ARP

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Διαδικτυακές Εφαρμογές Ενότητα 7: Προσπέλαση ΒΔ με το JDBC

Αντικειμενοστραφής Προγραμματισμός

ΜΑΘΗΜΑ: Δίκτυα Υψηλών Ταχυτήτων

Δίκτυα Υψηλών Ταχυτήτων Ενότητα 7: Διευθυνσιοδότηση Internet Protocol (IP) v4

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Ειδικά Θέματα Δικτύων Ι

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Δομημένος Προγραμματισμός

Τεχνολογία Πολυμέσων. Ενότητα # 17: Πρωτόκολλα μετάδοσης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Μεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Αρχιτεκτονικές Δικτύων & Πρωτόκολλα Ι

Ειδικά Θέματα Δικτύων ΙΙ

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Δίκτυα Υψηλών Ταχυτήτων Ενότητα 9: MPLS

{ int a = 5; { int b = 7; a = b + 3;

MYY703: Δίκτυα Υπολογιστών I Εργαστήρια

Συστήματα Αναμονής. Ενότητα 1: Εισαγωγή. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Ειδικά Θέματα Δικτύων ΙΙ. Ενότητα 8: Δρομολόγηση κατάστασης ζεύξης (Μέρος 2) Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems Εισαγωγή

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Ειδικά Θέματα Προγραμματισμού

Σχεδίαση Δικτύων Υπολογιστών

ΜΑΘΗΜΑ: Ψηφιακές Επικοινωνίες

Ειδικά Θέματα Δικτύων Ι

Ηλεκτρονικοί Υπολογιστές

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Ειδικά Θέματα Προγραμματισμού

Χρήση βασικών εργαλείων συλλογής πληροφοριών για τη διαμόρφωση και την κατάσταση λειτουργίας του δικτύου

Προχωρημένα Θέματα Προγραμματισμού Δικτύων Ενότητα 8: ΈλεγχοςΡοήςΑνοικτούΒρόχου Φώτης Βαρζιώτης

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 9: Ειδικά θέματα γλώσσας C/C++. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

Σχεδίαση Δικτύων Υπολογιστών

Ειδικά Θέματα Δικτύων Ι

Προγραμματισμός H/Y Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Ειδικά Θέματα Δικτύων ΙΙ. Ενότητα 7: Δρομολόγηση κατάστασης ζεύξης (Μέρος 1) Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems Παράμετροι Συστημάτων Αναμονής Τύπος Little. Β. Μάγκλαρης, Σ. Παπαβασιλείου

Προγραμματισμός H/Y Ενότητα 4: Δείκτες. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Ειδικά Θέματα Δικτύων Ι

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Σχεδίαση Δικτύων Υπολογιστών

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems

Δίκτυα Υπολογιστών Ενότητα 7: Internet Control Message Protocol - ICMP

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 7: Πρόγραμμα Συνδεδεμένης Λίστας και Διαδικασιών. Μανόλης Γ.Η.

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Λειτουργικά Συστήματα

Ειδικά Θέματα Δικτύων Ι

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Δομημένος Προγραμματισμός

ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ(Visual Basic)

Ασφάλεια Υπολογιστικών Συστημάτων

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός H/Y Ενότητα 6: Δομές (structures) Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Μοντελοποίηση Λογικών Κυκλωμάτων

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

Σχεδίαση Δικτύων Υπολογιστών

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 2: Κλάσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

Σχεδίαση Δικτύων Υπολογιστών

Ειδικά Θέματα Δικτύων Ι

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ

Οργανωσιακή Συμπεριφορά Ενότητα 1: Η έννοια της οργάνωσης και διοίκησης

Ειδικά Θέματα Προγραμματισμού

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Διαδικτυακές Εφαρμογές. Ενότητα 2: Enterprise Java Beans και Java Server Faces Μιχάλας Άγγελος Βούρκας Δημήτριος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Πληροφοριακά Συστήματα & Περιβάλλον Ασκήσεις

Ειδικά Θέματα Δικτύων ΙΙ

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

ΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Εργαστηριακή Άσκηση 6 Επίδοση Τοπικών ικτύων IEEE 802.3

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία. Εργαστήριο 4 ο : MATLAB

Transcript:

Ασύρματες Κινητές Επικοινωνίες Ενότητα 2: Το επίπεδο MAC του WiFi Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα του ΤΕΙ Δυτικής Μακεδονίας και της Ανώτατης Εκκλησιαστικής Ακαδημίας Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Το επίπεδο MAC του WiFi

Σκοποί ενότητας Σε αυτή την ενότητα εξετάζουμε την επίδοση του MAC πρωτοκόλλου του IEEE 802.11. Οι μετρικές επίδοσης που μας ενδιαφέρουν είναι το ποσοστό των πακέτων που στάλθηκαν, το ποσοστό των πακέτων που ελήφθησαν επιτυχώς, η μέση καθυστέρηση μετάδοσης των πακέτων (delay) και τη μέση ρυθμαπόδοση του δικτύου (throughput). 5

Περιεχόμενα ενότητας (1/3) Σενάριο Προσομοίωσης Αρχεία κεφαλίδας και βασικές παράμετροι Δημιουργία των κόμβων του δικτύου Υλοποίηση του Φυσικού επιπέδου του WiFi Υλοποίηση του επιπέδου MAC του WiFi Δημιουργία των συσκευών WiFi 6

Περιεχόμενα ενότητας (2/3) Ορισμός της θέσης των κόμβων Καθορισμός διευθύνσεων IP UDP server UDP client Διάρκεια προσομοίωσης Εκτέλεση προσομοίωσης 7

Περιεχόμενα ενότητας (3/3) Ανάλυση αποτελεσμάτων Πρόγραμμα ανάλυσης αποτελεσμάτων - Awk Ανάλυση αποτελεσμάτων (συνέχεια) Ασκήσεις Τροποποίηση του αρχικού σεναρίου προσομοίωσης Ασκήσεις (συνέχεια) 8

Σενάριο Προσομοίωσης Το ασύρματο δίκτυο που εξετάζουμε αποτελείται από 8 κόμβους. Ο κόμβος 4 στέλνει πακέτα στον κόμβο 1. Οι κόμβοι είναι τοποθετημένοι σε πλέγμα και είναι στατικοί. 9

Αρχεία κεφαλίδας και βασικές παράμετροι (1/2) Εισάγουμε τα απαραίτητα αρχεία κεφαλίδας (header files), το namespace που θα χρησιμοποιήσουμε, τις παραμέτρους που μπορούμε να περάσουμε μέσω του τερματικού και το επίπεδο καταγραφής των μηνυμάτων. 10

Αρχεία κεφαλίδας και βασικές παράμετροι (2/2) #include "ns3/core-module.h " #include "ns3/point-to-pointmodule.h " #include "ns3/network-module.h " #include "ns3/applicationsmodule.h " #include "ns3/wifi-module.h " #include "ns3/mobility-module.h " #include "ns3/csma-module.h " #include "ns3/internet-module.h " #include "ns3/netanim-module.h" #include "ns3/olsr-helper.h" using namespace ns3; NS_LOG_COMPONENT_DEFINE ("Lab2"); int main (int argc, char *argv[]){ uint32_t nwifi = 8; CommandLine cmd; cmd.addvalue ("nwifi", "Number of wifi STA devices", nwifi); cmd.parse (argc,argv); LogComponentEnable ("UdpClient", LOG_LEVEL_INFO); LogComponentEnable ("UdpServer", LOG_LEVEL_INFO); 11

Δημιουργία των κόμβων του δικτύου Δημιουργούμε τους κόμβους του ασύρματου δικτύου: NodeContainer wifistanodes; wifistanodes.create (nwifi); 12

Υλοποίηση του Φυσικού επιπέδου του WiFi Δημιουργούμε το φυσικό επίπεδο και το κανάλι και τα συσχετίζουμε. Εφαρμόζουμε τις προεπιλεγμένες ρυθμίσεις. YansWifiChannelHelper channel = YansWifiChannelHelper::Default (); YansWifiPhyHelper phy = answifiphyhelper::default (); phy.setchannel (channel.create ()); 13

Υλοποίηση του επιπέδου MAC του WiFi Θέτουμε τον τύπο του αλγορίθμου για τον έλεγχο του ρυθμού και υλοποιούμε το επίπεδο MAC για το οποίο ορίζουμε ότι δεν θα παρέχει κάποιο μηχανισμό για Ποιότητα της Υπηρεσίας. WifiHelper wifi = WifiHelper::Default (); wifi.setremotestationmanager ("ns3::aarfwifimanager"); NqosWifiMacHelper mac = NqosWifiMacHelper::Default (); 14

Δημιουργία των συσκευών WiFi Καθορίζουμε τις παραμέτρους φυσικού και MAC επιπέδου των κόμβων μας κι έτσι δημιουργούμε τις συσκευές WiFi. NetDeviceContainer stadevices; stadevices = wifi.install (phy, mac, wifistanodes); 15

Ορισμός της θέσης των κόμβων Ορίζουμε τη θέση των κόμβων στο δίκτυό μας. MobilityHelper mobility; mobility.setpositionallocator ("ns3::gridpositionallocator", "MinX", DoubleValue (0.0), "MinY", DoubleValue (0.0), "DeltaX", DoubleValue (40.0), "DeltaY", DoubleValue (50.0), "GridWidth", UintegerValue (2), "LayoutType", StringValue ("RowFirst")); mobility.setmobilitymodel ("ns3::constantpositionmobilitymodel"); mobility.install (wifistanodes); 16

Καθορισμός διευθύνσεων IP Εγκαθιστούμε τη στοίβα πρωτοκόλλων TCP κι ορίζουμε τις IP διευθύνσεις των συσκευών. InternetStackHelper stack; stack.install (wifistanodes); Ipv4AddressHelper address; address.setbase ("10.1.2.0", "255.255.255.0"); Ipv4InterfaceContainer interfaces = address.assign(stadevices); 17

UDP server Δημιουργούμε ένα κόμβο που θα λαμβάνει πακέτα (server), θέτουμε την πόρτα στην οποία θα ακούει και καθορίζουμε τις χρονικές στιγμές έναρξης και λήξης της κίνησης. UdpServerHelper server (22000); ApplicationContainer serverapps = server.install (wifistanodes.get (1)); serverapps.start (Seconds (1.0)); serverapps.stop (Seconds (10.0)); 18

UDP client (1/2) Δημιουργούμε τον κόμβο που θα στέλνει την κίνηση στο δίκτυο (client) και θέτουμε κάποιες παραμέτρους: Το χρονικό διάστημα μεταξύ δύο διαδοχικών πακέτων. Το μέγιστο αριθμό πακέτων που μπορεί να στείλει ο client και το μέγεθος του πακέτου. Τις χρονικές στιγμές έναρξης και λήξης της αποστολής πακέτων. 19

UDP client (2/2) UdpClientHelper client (interfaces.getaddress (1), 22000); client.setattribute ("Interval", TimeValue (Seconds (0.01))); client.setattribute ("PacketSize", UintegerValue (512)); client.setattribute ("MaxPackets", UintegerValue (15000)); ApplicationContainer clientapps = client.install (wifistanodes.get (4)); clientapps.start (Seconds (1.5)); clientapps.stop (Seconds (9.5)); 20

Διάρκεια προσομοίωσης Δηλώνουμε τη διάρκεια της προσομοίωσης και το αρχείο που θα χρησιμοποιήσουμε για το NetAnim. Simulator::Stop (Seconds (14.0)); // Create the animation object and configure for specified output AnimationInterface anim ("lab2.xml"); Simulator::Run (); Simulator::Destroy (); return 0; } 21

Εκτέλεση προσομοίωσης Αποθηκεύουμε τον κώδικα σε ένα αρχείο με όνομα lab2.cc στην τοποθεσία ns-allinone- 3.**/ns-3.**/scratch. Για να εκτελέσουμε το εν λόγω αρχείο μεταφερόμαστε με την κατάλληλη εντολή cd στην τοποθεσία ns-allinone-3.**/ns-3.** κι εκτελούμε την εντολή:./waf --run lab2 22

Απεικόνιση της προσομοίωσης με το NetAnim Ανοίγουμε το αρχείο lab2.xml με το NetAnim. 23

Ανάλυση αποτελεσμάτων Αποθηκεύσουμε τα αποτελέσματα της προσομοίωσης σε ένα αρχείο εκτελώντας την εντολή:./waf --run lab2 &> out2 Το αρχείο out2 δημιουργείται στην τοποθεσία nsallinone-3.**/ns-3.**. Για ευκολότερη επεξεργασία των δεδομένων του, χρησιμοποιούμε ένα script που είναι γραμμένο σε γλώσσα awk. 24

Πρόγραμμα ανάλυσης αποτελεσμάτων - Awk (1/6) Ένα πρόγραμμα awk αποτελείται από τρία τμήματα. Το πρώτο τμήμα του προγράμματος ορίζεται με την εντολή BEGIN { }. Περιλαμβάνει όλες τις εντολές που θα εκτελεστούν κατά την εκκίνηση της του προγράμματος. Όπως αρχικοποίηση μεταβλητών. 25

Πρόγραμμα ανάλυσης αποτελεσμάτων - Awk (2/6) Το τμήμα BEGIN του αρχείο awk που θα χρησιμοποιήσουμε: BEGIN { sum = 0; count = 0; sent = 0; starttime = -1; stoptime = -1; bytes = 0; started= 0; } 26

Πρόγραμμα ανάλυσης αποτελεσμάτων - Awk (3/6) Το δεύτερο τμήμα περιλαμβάνει ένα σύνολο από κανόνες που θα εκτελεστούν για κάθε γραμμή του αρχείου εισόδου. Αποτελούνται από δύο τμήματα. Το πρώτο τμήμα καθορίζει σε ποιες γραμμές του αρχείου εισόδου αναφέρεται ο κανόνας. Το δεύτερο τμήμα καθορίζει ποιες λειτουργίες θα πραγματοποιηθούν για αυτές τις γραμμές. 27

Πρόγραμμα ανάλυσης αποτελεσμάτων - Awk (4/6) Για παράδειγμα ο κανόνας δεξιά ορίζει ότι: Όταν συναντήσουμε μια γραμμή του αρχείου εισόδου που περιέχει τους όρους «TraceDelay TX» Αν η τιμή της δέκατης λέξη είναι μεγαλύτερη από 5 τότε η τιμή της μεταβλητής started γίνεται ίση με 1. Στο δεύτερο if, αν η τιμή της μεταβλητής started είναι ίση με 1, τότε η τιμή της μεταβλητής sent αυξάνεται κατά 1. /TraceDelay TX/ { if ($10 > 1.0) { started = 1; } if (started == 1) { sent++; } } 28

Πρόγραμμα ανάλυσης αποτελεσμάτων - Awk (5/6) Το κομμάτι κώδικα δεξιά ελέγχει τις γραμμές που περιέχουν τον όρο «RXtime» και: Προσθέτει στη μεταβλητή sum την τιμή της 17 ης λέξης η οποία είναι η καθυστέρηση (delay) του πακέτου. Η μεταβλητή count είναι ο αριθμός των πακέτων που ελήφθησαν επιτυχώς. Στη μεταβλητή bytes προστίθενται κάθε φορά η ποσότητα των Bytes που λαμβάνεται. /RXtime/ { split($13, tmp, "."); timesent = tmp[1]; if (timesent > 1e9) { count++; split($17,tmp,".") sum += tmp[1]; } # print starttime # print tmp[1] if ( started == 1) { split($15, tmp, ".") if (starttime < 0) { tarttime=tmp[1];} stoptime = tmp[1]; bytes += $3; } } 29

Πρόγραμμα ανάλυσης αποτελεσμάτων - Awk (6/6) Το τελευταίο τμήμα ορίζεται από την εντολή END{ } Τυπώνονται Τα πακέτα που εστάλησαν (sent) Τα πακέτα που ελήφθησαν (received) Οι απώλιες πακέτων (packet loss) Η καθυστέρηση μετάδοσης (delay) Η ρυθμαπόδοση (throughput) END { # print sent, count print "sent", sent, " recv", count, " pl ", (1.0*(sent - count)/sent), "delay", (1e-9*sum)/count, "throughput", 1e9*8*bytes / (1.0*stoptime - starttime); } 30

Ανάλυση αποτελεσμάτων (συνέχεια) Εισάγουμε τον κώδικα awk σε ένα κενό αρχείο και το αποθηκεύουμε με όνομα myawk.awk στην τοποθεσία nsallinone-3.**/ns-3.**. Εκτελούμε το αρχείο lab2 κι εξάγουμε τα αποτελέσματά του σε ένα αρχείο με όνομα out2, Εκτελέστε στο τερματικό την εντολή: awk f myawk.awk < out2 Με αυτή την εντολή, εκτελούμε το αρχείο myawk.awk δίνοντας του ως είσοδο το αρχείο out2 που περιέχει τα αποτελέσματα της προσομοίωσης μας. Το αρχείο awk τυπώνει στο τερματικό τα σχετικά αποτελέσματα που περιγράφηκαν νωρίτερα. 31

Ασκήσεις (1/2) 1. Πόσα πακέτα στάλθηκαν και πόσα λήφθηκαν; 2. Ποια είναι η ρυθμαπόδοση (throughput) του δικτύου; 3. Ποια είναι η μέση καθυστέρηση μετάδοσης των πακέτων (delay); 32

Ασκήσεις (2/2) 4. Αλλάξτε το χρονικό διάστημα μεταξύ της αποστολής δύο διαδοχικών πακέτων από 0.1 σε 1 και 0.01 κι απαντήστε ξανά στα παραπάνω ερωτήματα. Δώστε σύντομη εξήγηση για τα νέα αποτελέσματα. 5. Αλλάξτε το μέγεθος του πακέτου από 1024 σε 512 και 1500. Απαντήστε πάλι στα ερωτήσεις 1 έως 3 και δώστε μία σύντομη εξήγηση. 6. Ορίστε τον κόμβο 7 ως τον κόμβο που θα στέλνει την κίνηση. Απαντήστε στις ερωτήσεις 1 έως 3 και δώστε σύντομη εξήγηση. 33

Τροποποίηση του αρχικού σεναρίου προσομοίωσης (1/2) Θα ορίσουμε ένα πρωτόκολλο για δρομολόγηση των πακέτων μεταξύ των κόμβων του δικτύου μας. Θα εφαρμόσουμε το πρωτόκολλο δρομολόγησης Optimized Link State Routing (OLSR). Θέτουμε βάρη στις μεθόδους δρομολόγησης. Αν έχουμε στατική δρομολόγηση, το βάρος είναι 0. Αν έχουμε το πρωτόκολλο OLSR, το βάρος είναι 10. Αν έχουμε δημιουργήσει στατικές εγγραφές στον πίνακα δρομολόγησης, τότε αυτές θα προτιμηθούν έναντι των εγγραφών που δημιουργούνται από το πρωτόκολλο δρομολόγησης στον πίνακα δρομολόγησης. 34

Τροποποίηση του αρχικού σεναρίου προσομοίωσης (2/2) Εγκαθιστούμε σε όλους τους κόμβους του δικτύου, το OLSR πρωτόκολλο δρομολόγησης. Εισάγεται το κομμάτι κώδικα (δεξιά) μετά από το σημείο που ορίζουμε τις θέσεις και την κινητικότητα των κόμβων. // Enable OLSR OlsrHelper olsr; Ipv4StaticRoutingHelper staticrouting; Ipv4ListRoutingHelper list; list.add (staticrouting, 0); list.add (olsr, 10); InternetStackHelper stack; stack.setroutinghelper (list); stack.install (wifistanodes); Ipv4AddressHelper address; address.setbase ("10.1.3.0", "255.255.255.0"); 35

Ασκήσεις (συνέχεια) 8. Εκτελέστε πάλι το σενάριο προσομοίωσης κι απαντήστε ξανά στις ερωτήσεις 1 έως 3. Δώστε μία σύντομη εξήγηση για τα νέα αποτελέσματα. 36

Βιβλιογραφία 1. Βασικές Αρχές Ασύρματης Επικοινωνίας, David Tse, Pramod Viswanath, Εκδόσεις Κλειδάριθμος 2. ΔΙΚΤΥΑ ΚΙΝΗΤΩΝ & ΠΡΟΣΩΠΙΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ, Θεολόγου Μ., Εκδοτικός Οίκος: ΤΖΙΟΛΑ Έτος έκδοσης: 2007 ISBN: 978-960-418-126-1 3. Εισαγωγή στα ασύρματα συστήματα, Black, Dipiazza, Ferguson 4. Συστήματα Κινητών Επικοινωνιών, Κανάτας Αθανάσιος,Κωνσταντίνου Φίλιππος,Πάντος Γεώργιος 37

Τέλος Ενότητας