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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό με C++

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

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

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

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Δρομολόγηση στο Internet (II) Αλγόριθμοι Distance Vector (Bellman) Αλγόριθμοι Link State (Dijkstra)

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

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

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

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

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

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

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

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

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

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

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

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

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

Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών. ΗΥ335a Δίκτυα Υπολογιστών Διδάσκουσα: Παπαδοπούλη Μαρία BlindSense

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

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

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

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

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

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

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

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

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

Εισαγωγή στην Πληροφορική

Οικονομικά Μαθηματικά

Εισαγωγή στην Πληροφορική

Διαδικαστικός Προγραμματισμός

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

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

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

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

Εισαγωγή στον Προγραμματισμό με C++

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

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

Διαχείριση Δικτύων με τη χρήση SNMP (5η άσκηση) Διαχείριση Δικτύων - Ευφυή Δίκτυα, 9 ο Εξάμηνο,

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

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

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

7.2.2 Σχέση OSI και TCP/IP

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

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

Προχωρημένα Θέματα Προγραμματισμού Δικτύων Ενότητα 13: QoS Policy, Παραδείγματα QoS, Επισκόπηση μαθήματος Φώτης Βαρζιώτης

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

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ - ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΤΗΛΕΠΙΚΟΙΝΩΝΙΕΣ ΚΑΙ ΔΙΚΤΥΑ Η/Υ. Μελέτη Σημείου Πρόσβασης ως ασύρματου επαναλήπτη

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

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

Εξοικείωση με τις εντολές ipconfig και ping

Εισαγωγή στην Πληροφορική

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

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

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

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

Transcript:

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

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

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

Σημεία πρόσβασης στο WiFi

Σκοποί ενότητας Με αυτή την ενότητα εξετάζουμε τη λειτουργικότητα του σημείων πρόσβασης (access points) στα δίκτυο IEEE 802.11. Ακόμα, μελετούμε τον τρόπο εκτέλεσης προσομοιώσεων εκτός του scratch. 5

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

Περιεχόμενα ενότητας (2/4) Ρύθμιση παραμέτρων του σημείου πρόσβασης. Δημιουργία της συσκευής του σημείου πρόσβασης. Ορισμός της θέσης των κόμβων. Καθορισμός διευθύνσεων Internet Protocol (IP). User Datagram Protocol (UDP) server. 7

Περιεχόμενα ενότητας (3/4) UDP client. Πίνακες δρομολόγησης. Διάρκεια προσομοίωσης. Η τοποθεσία ns-3.**/examples. Windows script (Wscript). Εκτέλεση προσομοίωσης. 8

Περιεχόμενα ενότητας (4/4) Ανάλυση αποτελεσμάτων. Ασκήσεις. 9

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

Αρχεία κεφαλίδας και βασικές παράμετροι (2/2) #include "ns3/core-module.h" #include "ns3/network-module.h" #include "ns3/applications module.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" using namespace ns3; NS_LOG_COMPONENT_DEFINE ("lab3"); int main (int argc, char *argv[]){ uint32_t nwifi = 3; double xdist = 50.0; CommandLine cmd;cmd.addvalue ("xdist", "Distance between two nodes along axis x", xdist); cmd.parse (argc,argv); LogComponentEnable("UdpClient", LOG_LEVEL_INFO); LogComponentEnable("UdpServer", LOG_LEVEL_INFO); 11

Δημιουργία των κόμβων του δικτύου Δημιουργούμε τους κόμβους του ασύρματου δικτύου. Χαρακτηρίζουμε έναν κόμβο ως σημείο πρόσβασης (Access Point). NodeContainer wifistanodes, wifiapnode; wifistanodes.create (nwifi); wifiapnode = wifistanodes.get (0); 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

Παράμετροι για την ανίχνευση του δικτύου Ορίζουμε ένα Service Set Identifier (SSID) για το δίκτυο. Επίσης, δηλώνουμε ότι δε θα χρησιμοποιείται ο μηχανισμός Active Probing για την ανίχνευση του σημείου πρόσβασης. Θα χρησιμοποιούνται beacon frames, όπως θα δούμε παρακάτω. Ssid ssid = Ssid ("ns-3-ssid"); mac.settype ("ns3::stawifimac", "Ssid", SsidValue (ssid), "ActiveProbing", BooleanValue (false)); 15

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

Ρύθμιση παραμέτρων του σημείου πρόσβασης Θέτουμε το SSID για το σημείο πρόσβασης. Ρυθμίζουμε το σημείο πρόσβασης να στέλνει ένα beacon frame κάθε 5 δευτερόλεπτα. Έτσι, το σημείο πρόσβασης θα γνωστοποιεί την ύπαρξή του στους χρήστες που βρίσκονται εντός της περιοχής κάλυψής του. Ο μηχανισμός αυτός ονομάζεται παθητική σάρωση (Passive Scanning). mac.settype ("ns3::apwifimac", "Ssid", SsidValue (ssid), "BeaconGeneration", BooleanValue (true), "BeaconInterval", TimeValue (Seconds (5))); 17

Δημιουργία της συσκευής του σημείου πρόσβασης Δημιουργούμε τη συσκευή WiFi για το σημείο πρόσβασης καθορίζοντας τις παραμέτρους του Φυσικού και του MAC επιπέδου της. NetDeviceContainer apdevice; apdevice = wifi.install (phy, mac, wifiapnode); 18

Ορισμός της θέσης των κόμβων Ορίζουμε τη θέση των κόμβων στο δίκτυο. mobility.setpositionallocator ("ns3::gridpositionallocator","minx", DoubleValue (0.0),"MinY", DoubleValue (0.0),"DeltaX", DoubleValue (xdist),"deltay", DoubleValue(25.0), "GridWidth", UintegerValue(3), "LayoutType", StringValue ("RowFirst")); mobility.setmobilitymodel ("ns3::constantpositionmobilitymodel"); mobility.install (wifistanodes); 19

Καθορισμός διευθύνσεων IP Εγκαθιστούμε τη στοίβα πρωτοκόλλων Transmission Control Protocol (TCP) κι ορίζουμε τις IP διευθύνσεις των κόμβων. InternetStackHelper stack; stack.install (wifistanodes); Ipv4AddressHelper address; Ipv4InterfaceContainer wifiinterfaces, wifiapinterface; address.setbase ("10.1.5.0", "255.255.255.0"); wifiapinterface = address.assign (apdevice); wifiinterfaces = address.assign (stadevices); 20

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

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

UDP client (2/2) UdpClientHelper Client (wifiapinterface.getaddress (0), 22000); Client.SetAttribute ("Interval", TimeValue (Seconds(0.5))); Client.SetAttribute ("PacketSize", UintegerValue (768)); ApplicationContainer clientapps = Client.Install (wifistanodes.get(1)); clientapps.start (Seconds (2.0)); clientapps.stop (Seconds (14.0)); 23

Πίνακες δρομολόγησης Συμπλήρωση των πινάκων δρομολόγησης. Ipv4GlobalRoutingHelper::PopulateRoutingTables (); 24

Διάρκεια προσομοίωσης Ρυθμίζουμε τη διάρκεια της προσομοίωσης και δημιουργούμε το αρχείο για το Network Animator. Simulator::Stop (Seconds (18.0)); AnimationInterface anim ("lab3.xml"); Simulator::Run (); Simulator::Destroy (); return 0; } 25

Η τοποθεσία ns-3.**/examples Αποθηκεύουμε τον κώδικα σε ένα αρχείο με όνομα lab3.cc στην τοποθεσία ns-allinone- 3.**/ns-3.**/examples/tutorial. Η τοποθεσία ns-3.**/examples περιέχει μία σειρά από παραδείγματα σχετικά με τις τεχνολογίες που υποστηρίζει ο NS3. 26

Wscript (1/4) Η διαφορά στην περίπτωση της τοποθεσίας ns- 3.**/examples με την τοποθεσία scratch όπου τοποθετούμε συνήθως τις προσομοιώσεις μας εντοπίζεται στην ύπαρξη των αρχείων wscript. Περιγράφουν τα περιεχόμενα του κάθε φακέλου. Τα wscripts είναι από τα βασικά συστατικά του NS3, με αποτέλεσμα να κρίνεται χρήσιμη η γνωριμία με αυτά στα πλαίσια του μαθήματος. 27

Wscript (2/4) Η μορφή των περιεχομένων ενός αρχείου wscript είναι η παρακάτω: def build(bld): obj = bld.create_ns3_program('hello-simulator', ['core']) obj.source = 'hello-simulator.cc' obj = bld.create_ns3_program('first', ['core', 'point-to-point', 'internet', 'applications']) obj.source = 'first.cc obj = bld.create_ns3_program('second', ['core', 'point-to-point', 'csma', 'internet', 'applications']) obj.source = 'second.cc' 28

Wscript (3/4) Με τις εντολές της μορφής obj = bld.create_ns3_program('first', ['core', 'point-to-point', 'internet', 'applications']) obj.source = 'first.cc καθορίζουμε: Το όνομα μίας προσομοίωσης που υπάρχει στην ίδια τοποθεσία με το wscript (πχ first). Τις εξαρτήσεις (dependencies) που έχει η εν λόγω προσομοίωση (πχ core, point-to-point, internet κι 'applications']). Το αρχείο που περιέχει την προσομοίωσή μας (πχ. first.cc). 29

Wscript (4/4) Για να μπορούμε να εκτελέσουμε το αρχείο lab3.cc μέσα από το examples/template, προσθέτουμε τις παρακάτω γραμμές στο αρχείο wscript που υπάρχει σε αυτή την τοποθεσία. obj = bld.create_ns3_program(lab3, ['core', 'wifi', 'csma', 'netanim', 'internet', 'applications']) obj.source = 'lab3.cc' 30

Εκτέλεση προσομοίωσης (1/2) Για να εκτελέσουμε την προσομοίωσή μεταφερόμαστε με την κατάλληλη εντολή cd στην τοποθεσία ns-allinone-3.**/ns-3.** κι εκτελούμε την εντολή:./waf --run examples/tutorial/lab3. Μπορούμε να αποθηκεύσουμε τα αποτελέσματα της προσομοίωσης σε ένα αρχείο με την εντολή:./waf --run examples/tutorial/lab3 &> out3. 31

Εκτέλεση προσομοίωσης (2/2) Το αρχείο out3 θα εξαχθεί στην τοποθεσία ns-allinone-3.**/ns-3.**. Για ευκολότερη επεξεργασία των δεδομένων που περιέχει το αρχείο out3 θα χρησιμοποιήσουμε το αρχείο awk που παρουσιάστηκε στην προηγούμενη ενότητα. 32

Απεικόνιση της προσομοίωσης με το NetAnim Ανοίγουμε το αρχείο lab3.xml με το NetAnim. Εικόνα 1. Απεικόνιση της προσομοίωσης από το NetAnim, εμφάνιση μετά την εγκατάσταση του προγράμματος ns-3, ελεύθερο λογισμικό, με άδεια GNU GPLv2 license, διαθέσιμο στο κοινό για έρευνα, ανάπτυξη και χρήση. 33

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

Ασκήσεις (1/8) Σε αυτή την άσκηση εξετάζουμε την επίδοση του μηχανισμού Request To Send / Clear To Send (RTS/CTS) σε ένα δίκτυο IEEE 802.11. Επίσης, πραγματοποιείται εξάσκηση στον εναλλακτικό τρόπο εκτέλεσης των προσομοιώσεων μέσα από κάποια τοποθεσία όπως η examples/tutorial, που επεξηγήθηκε στις προηγούμενες διαφάνειες. 35

Ασκήσεις (2/8) Το δίκτυο IEEE 802.11 που θα προσομοιωθεί αποτελείται από 9 στατικούς κόμβους τοποθετημένους σε πλέγμα. Δίνεται το παρακάτω κομμάτι κώδικα: #include "ns3/core-module.h" #include "ns3/network-module.h" #include "ns3/applications-module.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" 36

Ασκήσεις (3/8) Συνέχεια κώδικα. using namespace ns3; NS_LOG_COMPONENT_DEFINE ("Lab3b"); int main (int argc, char *argv[]) { LogComponentEnable ("UdpClient", LOG_LEVEL_INFO); LogComponentEnable ("UdpServer", LOG_LEVEL_INFO); /* Τοποθετίστε εδώ τον κώδικα που θα σας ζητηθεί παρακάτω*/ phy.enablepcap ("lab3b", stadevices.get (0)); Simulator::Run (); Simulator::Destroy (); return 0; } 37

Ασκήσεις (4/8) Μέσα στη συνάρτηση main. 1. Δημιουργήστε ένα δίκτυο IEEE 802.11 με 9 κόμβους. 2. Δημιουργήστε το φυσικό επίπεδο του δικτύου. 3. Εισάγετε το παρακάτω κομμάτι κώδικα για την ενεργοποίηση του μηχανισμού RTS/CTS. WifiHelper wifi = WifiHelper::Default (); wifi.setremotestationmanager ("ns3::aarfwifimanager"); Config::SetDefault ("ns3::wifiremotestationmanager::rtsctsthreshold", UintegerValue (0)); NqosWifiMacHelper mac = NqosWifiMacHelper::Default (); 38

Ασκήσεις (5/8) 4. Δημιουργήστε τις συσκευές WiFi. 5. Δημιουργήστε το πλέγμα όπου θα είναι τοποθετημένοι οι κόμβοι και ρυθμίστε τους κόμβους ώστε να μην κινούνται στο χώρο. Στην κάθε σειρά του πλέγματος θα πρέπει να είναι τοποθετημένοι 3 κόμβοι. 6. Εισάγετε τη στοίβα του internet. 7. Ορίστε τις IP διευθύνσεις. 39

Ασκήσεις (6/8) 8. Δημιουργήστε 2 servers (κόμβος 0 και 2) και 2 clients (κόμβος 6 και 8). a. Ο κόμβος 6 να στέλνει κίνηση στον κόμβο 0 και ο κόμβος 8 να στέλνει κίνηση στον κόμβο 2. b. Οι servers να ξεκινούν τη χρονική στιγμή 2 και να σταματούν τη χρονική στιγμή 10. c. Οι clients να ξεκινούν τις χρονικές στιγμές 3 και 3.15 και να σταματούν τη χρονική στιγμή 9. d. Ορίστε το μέγεθος των πακέτων που θα στέλνουν οι clients να είναι ίσο με 1024 bytes. 40

Ασκήσεις (7/8) e. Το χρονικό διάστημα μεταξύ δύο διαδοχικών πακέτων να είναι ίσο με 0.01. f. Ο μέγιστος αριθμός πακέτων (MaxPackets) να είναι ίσος με 1000. 9. Ορίστε το συνολικό διάστημα της προσομοίωσης σε 12 δευτερόλεπτα. 10.Εκτελέστε τον κώδικα κι εξάγεται τα αποτελέσματα σε ένα αρχείο με όνομα homework. 41

Ασκήσεις (8/8) 12. Αναλύστε τα αποτελέσματα χρησιμοποιώντας το αρχείο myawk.awk. Πόσα πακέτα εστάλησαν και πόσα ελήφθησαν; Ποιες είναι οι τιμές για την απόλυα πακέτων, τη χρονική καθυστέρηση και τη ρυθμαπόδοση; 13. Αλλάξτε την τιμή του RtsCtsThreshold από 0 σε 1200 και κάντε πάλι τα δύο προηγούμενα ερωτήματα. Δώστε μία σύντομη εξήγηση. 42

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

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