Ασύρματες Κινητές Επικοινωνίες Ενότητα 8: Επαναληπτική ενότητα Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα του ΤΕΙ Δυτικής Μακεδονίας και της Ανώτατης Εκκλησιαστικής Ακαδημίας Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3
Επαναληπτική ενότητα
Σκοποί ενότητας Στόχος της ενότητας είναι η παροχή μίας συνοπτικής επανάληψης όλων των προηγούμενων ενοτήτων. 5
Περιεχόμενα ενότητας (1/2) Τι μελετήσαμε. Εργαλεία που χρησιμοποιήσαμε. Network Simulator 3. Μετρικές αξιολόγησης απόδοσης. NetAnim. Gnuplot. 6
Περιεχόμενα ενότητας (2/2) ΙΕΕΕ 802.11. Transmission Control Protocol (TCP) - Παράθυρο Συμφόρησης. IEEE 802.16 WiMAX. Long Term Evolution (LTE). User Datagram Protocol (UDP) server. UDP client. 7
Τι μελετήσαμε (1/2) Επίδοση του επιπέδου Medium Access Control (MAC) του IEEE 802.11 και το πρωτόκολλο δρομολόγησης Optimized Link State Routing (OLSR). Σημείο Πρόσβασης (Access Point -AP) κι επίδοση του μηχανισμού Request to Send/ Clear to Send (RTS /CTS) σε ένα δίκτυο IEEE 802.11. Παράθυρο συμφόρησης (Congestion Window - CW) του πρωτοκόλλου TCP. 8
Τι μελετήσαμε (2/2) Ενέργεια και κατανάλωση ενέργειας σε ένα δίκτυο IEEE 802.11. Μητροπολιτικά δίκτυα IEEE 802.16 WiMAX. Κυψελωτά δίκτυα τέταρτης γενιάς LTE. 9
Εργαλεία που χρησιμοποιήσαμε Network Simulator 3 (ns-3). Network Animator (NetAnim). Gnuplot. 10
Network Simulator 3 (1/2) Γράφουμε τα σενάρια σε C++, τα αποθηκεύουμε ως example.ccστην τοποθεσία ns-allinone-3.**/ns- 3.**/scratch και τα εκτελούμε ως εξής:./waf --run example. Ο ns3 χρησιμοποιεί το ns3 namespace: using namespace ns3;. Κάνουμε include τα headerfiles που χρειαζόμαστε: #include "ns3/core-module.h". 11
Network Simulator 3 (2/2) Μπορούμε να βάλουμε τα outputs του σεναρίου σε αρχείο με την εντολή:./waf --run example &> όνομα-αρχείου. Χρησιμοποιούμε awk αρχεία για εύκολη εξαγωγή αποτελεσμάτων (αφού πρώτα έχουμε αποθηκεύσει τα outputs σε αρχείο) με την παρακάτω εντολή: awk f myawk.awk < όνομα-αρχείου. 12
Μετρικές αξιολόγησης απόδοσης Συνηθισμένες μετρικές για αξιολόγηση της απόδοση ενός δικτύου. Ρυθμαπόδοση (Throughput). Καθυστέρηση μετάδοσης (Delay). Μεταβλητότητα καθυστέρησης μετάδοσης (Jitter). Απώλειες πακέτων (Packet loss). 13
NetAnim Κάνουμε include το απαραίτητο αρχείο κεφαλίδας: #include "ns3/netanim-module.h". Δηλώνουμε στο σενάριο το xml αρχείο που θα δημιουργηθεί ώστε να το χρησιμοποιήσουμε στον NetAnim, με το παρακάτω κομμάτι κώδικα: AnimationInterfaceanim ("animfile.xml");. Ανοίγουμε τον NetAnim με την εντολή:./netanim. Στο περιβάλλον του NetAnim επιλέγουμε openfile και το όνομα του xml αρχείου που δημιουργήσαμε (πχ. animfile.xml). 14
Gnuplot (1/3) Αφού εκτελέσουμε το σενάριο κι αποθηκεύσουμε τα αποτελέσματα σε ένα αρχείο test.dat, ανοίγουμε το gnuplot από την τοποθεσία nsallinone-3.**/ns-3.** με την εντολή: gnuplot. Μέσα από το περιβάλλον του gnuplot, ορίζουμε το μέγεθος της εικόνας που θα περιέχει τη γραφική αναπαράσταση που θα δημιουργήσουμε, με την εντολή: setterminalpngsize 640, 480. 15
Gnuplot (2/3) Ονομάζουμε την εικόνα: setoutput image1.png. Δίνουμε όνομα στους άξονες x, yμε τις εντολές: setxlabel onoma_x και setylabel onoma_y. Θέτουμε το εύρος των τιμών για τους άξονες x, y με τις εντολές: setxrange [0:1600] και setyrange [10:16]. 16
Gnuplot (3/3) Δημιουργούμε τη γραφική παράσταση χρησιμοποιώντας τα δεδομένα του αρχείου test.dat. Βασιζόμαστε στις στήλες 1 και 2 του αρχείου. Δίνουμε ένα όνομα στο γράφημα και το αναπαριστούμε με γραμμές και σημεία: plot test.dat using 1:2 title Τίτλος γραφήματος with linespoints. 17
ΙΕΕΕ 802.11 Σε ένα δίκτυο IEEE 802.11 μπορούν να οριστούν Σημεία Πρόσβασης (Access Points - APs) στα οποία συνδέεται ένας κόμβος (πρέπει να βρίσκεται εντός της εμβέλειας ενός AP) προκειμένου να αποκτήσει πρόσβαση στις υπηρεσίες του δικτύου. Τα δίκτυα IEEE 802.11 υποστηρίζουν και την Αδόμητη Δικτύωση (AdHoc). 18
ΙΕΕΕ 802.11 - OLSR Πρωτόκολλο δρομολόγησης Optimized Link State Routing (OLSR) Χρησιμοποιείται για τη δρομολόγηση των πακέτων από ένα πομπό προς ένα παραλήπτη όταν δεν είναι άμεσα συνδεδεμένοι μεταξύ τους. Η δρομολόγηση γίνεται μέσω ενδιάμεσων κόμβων (μέσω πολλαπλών βημάτων). 19
ΙΕΕΕ 802.11 - RTS/CTS (1/3) Μηχανισμός RTS/CTS. Σε ένα δίκτυο IEEE 802.11 ο μηχανισμός RTS/CTS είναι μία πρόσθετη μέθοδος που εφαρμόζεται για την αποφυγή συγκρούσεων πακέτων. Όταν ένας κόμβος-πομπός θέλει να στείλει δεδομένα σε ένα άλλο κόμβο-παραλήπτη, αρχικά του στέλνει ένα πλαίσιο RTS. Αν ο κόμβος-παραλήπτης είναι ελεύθερος, τότε στέλνει πίσω στον κόμβο-πομπό ένα πλαίσιο CTS. 20
ΙΕΕΕ 802.11 - RTS/CTS (2/3) Μηχανισμός RTS/CTS (Συνέχεια). Όλοι οι κόμβοι που λαμβάνουν το πλαίσιο CTS δεν αποστέλλουν δεδομένα για μία συγκεκριμένη χρονική διάρκεια που καθορίζεται σε αυτό. Ο μηχανισμός RTS/CTS Αντιμετωπίζει το πρόβλημα του κρυμμένου τερματικού που οφείλεται στις αδυναμίες του Carrier Sense Multiple Access / Collision Avoidance (CSMA/CA) που σχετίζεται με την πρόσβαση στο μέσω. Τέλος, χρησιμοποιείται ένα κατώφλι (threshold), που καθορίζει αν θα ενεργοποιείται ο μηχανισμός ή όχι. Αν το μέγεθος του πακέτου που θέλει να στείλει ένας κόμβος ξεπερνά την τιμή που ορίζει το κατώφλι, τότε ενεργοποιείται ο μηχανισμός. 21
ΙΕΕΕ 802.11 - RTS/CTS (3/3) RTS/CTS στο 802.11. Χρησιμοποιούμε την παρακάτω εντολή για να ενεργοποιήσουμε/απενεργοποιήσουμε το μηχανισμό. Θέτοντας την τιμή 0 στο κατώφλι (threshold) ο μηχανισμός ενεργοποιείται για όλα τα πακέτα. Αν η τιμή για το κατώφλι είχε οριστεί ίση π.χ. με 1024, ο μηχανισμός θα ενεργοποιείται μόνο όταν πρόκειται να αποσταλούν πακέτα με μέγεθος μεγαλύτερο από 1024 Bytes. Config::SetDefault("ns3::WifiRemoteStationManager:: RtsCtsThreshold", UintegerValue(0)); 22
ΙΕΕΕ 802.11 Διαχείριση ενέργειας (1/3) Εναπομένουσα ενέργεια και κατανάλωση ενέργειας στους κόμβους ενός δικτύου. Κάθε φορά που ένας κόμβος στέλνει ή λαμβάνει πακέτα καταναλώνει ενέργεια. Υπάρχουν πολλά μοντέλα για τον καθορισμό της εναπομένουσας ενέργειας και της συνολικής κατανάλωσης της ενέργειας στους κόμβους. 23
ΙΕΕΕ 802.11 Διαχείριση ενέργειας (2/3) Εναπομένουσα ενέργεια και κατανάλωση ενέργειας στους κόμβους του δικτύου. Ορίζουμε ένα μοντέλο ενέργειας (π.χ. το WiFi Radio Energy Model) σε όλους τους κόμβους του δικτύου ώστε να μπορούμε να επιβλέπουμε την εναπομένουσας ενέργεια και τη συνολική κατανάλωσης ενέργειας στους κόμβους. Μπορούμε να αρχικοποιήσουμε τιμές όπως η ένταση του ρεύματος σε Ampere όταν ένας κόμβος βρίσκεται σε κατάσταση αποστολής ή λήψης δεδομένων. 24
ΙΕΕΕ 802.11 Διαχείριση ενέργειας (3/3) BasicEnergySourceHelperbasicSourceHelper; basicsourcehelper.set ("BasicEnergySourceInitialEnergyJ", DoubleValue (0.1)); EnergySourceContainer sources = basicsourcehelper.install (nodes); WifiRadioEnergyModelHelperradioEnergyHelper; radioenergyhelper.set ("TxCurrentA", DoubleValue (0.015)); DeviceEnergyModelContainerdeviceModels = radioenergyhelper.install (devices, sources); 25
TCP - Παράθυρο Συμφόρησης Παράθυρο Συμφόρησης πρωτοκόλλου TCP (Congestion Window - CW). Χρησιμοποιείται για τον έλεγχο της συμφόρησης του πρωτοκόλλου TCP και καθορίζει το πλήθος των δεδομένων που θα αποστέλλονται. Ο κόμβος-πομπός ορίζει την αρχική τιμή του CW Κάθε φορά που λαμβάνει επιβεβαίωση επιτυχούς αποστολής του πακέτου (Acknowledgement - ACK) αυξάνει το μέγεθός του. Όταν δε λαμβάνει ACK (ένδειξη πιθανής συμφόρησης στο δίκτυο) τότε επαναφέρει το CW στην αρχική του τιμή. Όσο αυξάνεται η τιμή του CW τόσο αυξάνεται και το πλήθος των δεδομένων που θα αποσταλούν χωρίς την ανάγκα λήψης κάποιου ACK. 26
IEEE 802.16 WiMAX IEEE 802.16 WiMAX. Ένα δίκτυο IEEE 802.16 αποτελείται από σταθμούς βάσης (base stations - BS) κι από σταθμούς συνδρομητών (subscriber stations - SS). Οι σταθμοί συνδρομητών συνδέονται στους σταθμοί βάσης ώστε να αποκτήσουν πρόσβαση στις υπηρεσίες του δικτύου. 27
IEEE 802.16 WiMAX Ζεύξεις καθόδου κι ανόδου (1/2) WiMAX DL UL (Downlink - Uplink). Στο WiMAX για την επιτυχημένη αποστολή και λήψη πακέτων, πέρα από τις εφαρμογές server και client, πρέπει να υλοποιηθούν και οι αντίστοιχες ζεύξεις ανόδου και καθόδου, αντίστοιχα. IpcsClassifierRecordDlClassifierUg (Ipv4Address ("0.0.0.0"), Ipv4Mask ("0.0.0.0"), SSinterfaces.GetAddress (0), Ipv4Mask ("255.255.255.255"), 0, 65000, 22000, 22000, 17, 1); ServiceFlowDlServiceFlowUgs =wimax. CreateServiceFlowServiceFlow::S _DIRECTION_DOWN, ServiceFlow::SF_TYPE_RTPS, DlClassifierUgs); 28
IEEE 802.16 WiMAX Ζεύξεις καθόδου κι ανόδου (2/2) IpcsClassifierRecordUlClassifierUgs ( SSinterfaces.GetAddress (1), Ipv4Mask ("255.255.255.255"), Ipv4Address ("0.0.0.0"), Ipv4Mask ("0.0.0.0"), 0, 65000, 22000, 22000, 17, 1); ServiceFlowUlServiceFlowUgs = wimax.createserviceflow(serviceflow::sf_direction_up, ServiceFlow::SF_TYPE_RTPS, UlClassifierUgs); ss[0]->addserviceflow (DlServiceFlowUgs); ss[1]->addserviceflow (UlServiceFlowUgs); 29
LTE Κυψελωτά δίκτυα τέταρτης γενιάς LTE. Ένα δίκτυο LTE αποτελείται από το δίκτυο κορμού (Evolved Packet Core - EPC) και το δίκτυο πρόσβασης (Evolved UMTS Radio Access Network - EUTRAN). Στο LTEη κίνηση κατανέμεται σε φορείς (bearers). Ένας φορέας μπορεί να μεταφέρει ταυτόχρονα πολλές ροές δεδομένων. Οι ροές δεδομένων ενός φορέα εισπράττουν την ίδια Ποιότητα Υπηρεσίας (Quality of Service - QoS). 30
LTE Σύνδεση εξοπλισμού χρήστη με σταθμό βάσης Σε μία προσομοίωση που περιλαμβάνει της τεχνολογία LTE. Συνδέουμε τον εξοπλισμό χρήστη (ue) με το σταθμό βάσης (enb) για να μπορούν να επικοινωνήσουν μεταξύ τους με μία εντολή όπως η παρακάτω: ltehelper->attach (ueltedevs.get(0), enbltedevs.get(0)); 31
LTE - Χρονοπρογραμματισμός Χρονοπρογραμματισμός στο LTE. Καθορίσουμε ποιος χρονοπρογραμματιστής θα χρησιμοποιηθεί για την εκχώρηση των διαθέσιμων πόρων του δικτύου στους χρήστες, με την παρακάτω εντολή. ltehelper->setschedulertype("ns3::pfffmacscheduler"); 32
LTE - Φορείς Φορείς στο LTE. Με την παρακάτω εντολή καθορίζουμε έναν φορέα. ltehelper->activateepsbearer (ueltedevs, EpsBearer (EpsBearer::NGBR_VIDEO_TCP_DEFAULT), EpcTft::Default ()); 33
UDP server UDP Server. Είναι μία εφαρμογή που λαμβάνει δεδομένα. Ορίζουμε την πόρτα στην οποία θα ακούει, καθώς και τις χρονικές στιγμές έναρξης και λήξης της λειτουργίας της. Την εγκαθιστούμε σε έναν κόμβο. UdpServerHelperserver (22000); ApplicationContainerserverApps = server.install (wifistanodes.get (0)); serverapps.start (Seconds (2.0)); serverapps.stop (Seconds (8.0)); 34
UDP client (1/2) UDP Client. Μία εφαρμογή που αποστέλλει δεδομένα στο δίκτυο. Ορίζουμε σε ποιο ποια διεύθυνση IP και σε ποια πόρτα θα αποστέλλει τα δεδομένα. Επιπλέον, ορίζουμε το χρονικό διάστημα μεταξύ δύο διαδοχικών πακέτων (Interval), το μέγεθος του πακέτου (PacketSize) και το μέγιστο αριθμό πακέτων που μπορεί να στείλει (MaxPackets). Καθορίζουμε τις χρονικές στιγμές που θα ξεκινάει και θα σταματάει να στέλνει δεδομένα. Την εγκαθιστούμε σε έναν κόμβο. 35
UDP client (2/2) UdpClientHelper client (interfaces.getaddress (0), 22000); client.setattribute ("Interval", TimeValue (Seconds (0.01))); client.setattribute ("PacketSize", UintegerValue (512)); client.setattribute ("MaxPackets", UintegerValue (2000000)); ApplicationContainerclientApps = client.install (wifistanodes.get (1)); clientapps.start (Seconds (3.0)); clientapps.stop (Seconds (7.0)); 36
Βιβλιογραφία 1. Βασικές Αρχές Ασύρματης Επικοινωνίας, David Tse, Pramod Viswanath, Εκδόσεις Κλειδάριθμος. 2. ΔΙΚΤΥΑ ΚΙΝΗΤΩΝ & ΠΡΟΣΩΠΙΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ, Θεολόγου Μ., Εκδοτικός Οίκος: ΤΖΙΟΛΑ Έτος έκδοσης: 2007 ISBN: 978-960-418-126-1. 3. Εισαγωγή στα ασύρματα συστήματα, Black, Dipiazza, Ferguson. 4. Συστήματα Κινητών Επικοινωνιών, Κανάτας Αθανάσιος, Κωνσταντίνου Φίλιππος, Πάντος Γεώργιος. 37
Τέλος Ενότητας