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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ενσωματωμένα Συστήματα

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

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

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

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

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

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

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

Ενότητα. Εισαγωγή στη Microsoft Access

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

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

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

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

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

Δίκτυα Υπολογιστών Ι. Εγκατάσταση του Network Simulator-2 σε περιβάλλον Cygwin. Δ. Καρβουνάς, Δρ. Κ. Τσαγκάρης, Καθηγ. Π.

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

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

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

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

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

Π : Εγχειρίδια χρήσης της υπηρεσίας για τα κύρια υποστηριζόμενα Λειτουργικά

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

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

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

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

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

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

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 3: Constructors και destructors

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

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

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

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

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

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

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

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

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

Tο περιβάλλον Code::Blocks

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

ΣΧΕΔΙΟ ΣΤΟΝ Η/Υ. Ενότητα 3: Εντολές επεξεργασίας Extend, Fillet, Block. Παπαδόπουλος Χρήστος Τμήμα Διαχείρισης Εκκλησιαστικών Κειμηλίων

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: Χρήση εργαλείων Εικόνων, Εντολών και Ετικετών ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

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

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

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

ΣΧΕΔΙΟ ΣΤΟΝ Η/Υ. Ενότητα 5: Εντολή Array. Παπαδόπουλος Χρήστος Τμήμα Διαχείρισης Εκκλησιαστικών Κειμηλίων

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

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

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

Νέες Τεχνολογίες στην Εκπαίδευση

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

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

ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ. Λογισμός ΙΙ. Χρήστος Θ. Αναστασίου Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

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

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

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

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

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

Τεχνολογία Λογισμικού

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

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

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

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

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

4η ιάλεξη. UML ιαγράμματα αλληλεπίδρασης

Βάσεις Δεδομένων. Ενότητα 1: Εισαγωγή στις Βάσεις δεδομένων. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

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

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

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

ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ

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

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

Πληροφορική. Εργαστηριακή Ενότητα 1 η : Εισαγωγή στα Λογιστικά Φύλλα με το MS Excel. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Transcript:

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

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

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

Σκοποί ενότητας Το ασύρματο δίκτυο που εξετάζουμε αποτελείται από 9 κόμβους, που είναι τοποθετημένοι σε πλέγμα κι αρχικά είναι στατικοί. Ο κόμβος 8 θα στέλνει User Datagram Protocol (UDP) κίνηση στον κόμβο 4. Σημειώνουμε ότι η αρίθμηση των κόμβων ξεκινάει από το 0. Η προσομοίωση διαρκεί συνολικά 12 δευτερόλεπτα. 4

Περιεχόμενα ενότητας (1/3) Αρχεία κεφαλίδας. Χώρος ονομάτων. Καταγραφή μηνυμάτων στο τερματικό. Η συνάρτηση main. Καθορισμός παραμέτρων κατά την εκτέλεση. Τύπωση μηνυμάτων για την κίνηση (Traffic). 5

Περιεχόμενα ενότητας (2/3) Δημιουργία κόμβων. Υλοποίηση του Φυσικού επιπέδου. Υλοποίηση του επιπέδου Medium Access Control (MAC). Δημιουργία συσκευών Wireless Fidelity (WiFi). Ορισμός της θέσης των κόμβων. Internet Protocol (IP) διευθύνσεις. 6

Περιεχόμενα ενότητας (3/3) UDP server. UDP client. Διάρκεια προσομοίωσης. Εκτέλεση προσομοίωσης. Εγκατάσταση του NS-3. Εγκατάσταση του NetAnim. 7

Εισαγωγή 8

Αρχεία κεφαλίδας Αρχικά, πρέπει να συμπεριλάβουμε όλα τα απαραίτητα αρχεία κεφαλίδας (header files) χρησιμοποιώντας τις κατάλληλες εντολές include. Κάθε αρχείο κεφαλίδας του ns3 βρίσκεται στην τοποθεσία ns3/src. Π.χ. το #include "ns3/coremodule.h" βρίσκεται στην τοποθεσία src/core. #include "ns3/core-module.h" #include "ns3/point-to-point 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" #include "ns3/olsr-helper.h" 9

Χώρος ονομάτων Καθορίζουμε τον χώρο ονομάτων (namespace) που θα χρησιμοποιήσουμε. Ο ns3 χρησιμοποιεί το ns3 namespace. using namespace ns3; 10

Καταγραφή μηνυμάτων στο τερματικό Ενεργοποιήσουμε την καταγραφή μηνυμάτων στο τερματικό. Δίνουμε το όνομα του σεναρίου μας, ώστε να ξέρουμε ότι τα μηνύματα που θα τυπωθούν αφορούν τη συγκεκριμένη προσομοίωση. NS_LOG_COMPONENT_DEFINE ("Lab1"); 11

Η συνάρτηση main Δηλώνουμε τη συνάρτηση main Αρχικοποιούμε τη μεταβλητή nwifi. Δηλαδή, δηλώνουμε ότι θα έχουμε 9 κόμβους στο ασύρματο δίκτυο. Η μεταβλητή npackets θα καθορίσει τον μέγιστο αριθμό πακέτων που θα αποσταλούν. int main (int argc, char *argv[]){ uint32_t nwifi = 9; int npackets = 50; 12

Καθορισμός παραμέτρων κατά την εκτέλεση Μπορούμε να ορίζουμε παραμέτρους μέσω του τερματικού, χρησιμοποιώντας ένα αντικείμενο CommandLine στον κώδικα της προσομοίωσης. Π.χ. για να αλλάξουμε τον αριθμό των κόμβων της τοπολογίας μας, εκτελούμε την προσομοίωση με την παρακάτω εντολή:./waf run scratch/intro nwifi=4 CommandLine cmd; cmd.addvalue ("nwifi", "Number of wifi devices", nwifi); cmd.addvalue ("npackets", "Number of packets", npackets); cmd.parse (argc,argv); 13

Τύπωση μηνυμάτων για την κίνηση (Traffic) Τύπωση μηνυμάτων για την κίνηση που στέλνουμε. Συγκεκριμένα, θα τυπώνονται στο τερματικό μηνύματα που αφορούν την εφαρμογή (UdpClient - UdpServer). Επίσης, δηλώνουμε το επίπεδο καταγραφής μηνυμάτων που επιθυμούμε. Υπάρχουν επτά διαφορετικά επίπεδα καταγραφής ανάλογα με το πόσο αναλυτικά θέλουμε να είναι τα μηνύματα καταγραφής. Το επίπεδο info (επίπεδο 4) τυπώνει μηνύματα που αφορούν στην αποστολή και λήψη των πακέτων κατά τη διάρκεια της προσομοίωσης. LogComponentEnable ("UdpClient", LOG_LEVEL_INFO); LogComponentEnable ("UdpServer", LOG_LEVEL_INFO); 14

Δημιουργία κόμβων Δημιουργούμε έξι κόμβους στο δίκτυο. o nwifi = 9. NodeContainer wifistanodes; wifistanodes.create (nwifi); 15

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

Υλοποίηση του επιπέδου MAC Χρησιμοποιώντας τον WifiHelper, υλοποιούμε το επίπεδο MAC του WiFi. Θέτουμε τον τύπο του αλγορίθμου για τον έλεγχο του ρυθμού που θα χρησιμοποιεί. Επίσης, δεν προσθέτουμε Ποιότητα της Υπηρεσίας στο MAC επίπεδο. WifiHelper wifi = WifiHelper::Default (); wifi.setremotestationmanage ("ns3::aarfwifimanager"); NqosWifiMacHelper mac = NqosWifiMacHelper::Default (); 17

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

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

Internet Protocol (IP) διευθύνσεις Ορίζουμε τις IP διευθύνσεις των κόμβων. Ipv4AddressHelper address; address.setbase ("10.1.3.0", "255.255.255.0"); address.assign (stadevices); Ipv4InterfaceContainer interfaces = address.assign(stadevices); 20

UDP server Δημιουργούμε έναν κόμβο θα λαμβάνει πακέτα (server) Θέτουμε την πόρτα που θα χρησιμοποιείται και τη χρονική διάρκεια που ο server θα είναι ενεργός. UdpServerHelper server (22000); ApplicationContainer serverapps =server.install(wifistanodes.get(4)); serverapps.start(seconds (2.0)); serverapps.stop(seconds(10.0)); 21

UDP client Δημιουργούμε την κίνηση (traffic) στο δίκτυο. Ορίζουμε τον κόμβο που θα στέλνει την κίνηση στο δίκτυο (client) και θέτουμε κάποιες παραμέτρους, όπως το χρονικό διάστημα μεταξύ δύο διαδοχικών πακέτων και το μέγεθος του πακέτου. UdpClientHelper client (interfaces.getaddress (4), 22000); client.setattribute ("Interval", TimeValue (Seconds (0.1))); client.setattribute ("PacketSize", UintegerValue (512)); client.setattribute ("MaxPackets", UintegerValue (npackets)); ApplicationContainer clientapps = client.install(wifistanodes.get(8)); clientapps.start (Seconds (3.0)); clientapps.stop (Seconds (9.0)); 22

Διάρκεια προσομοίωσης Δηλώνουμε τη διάρκεια της προσομοίωσης και το αρχείο που θα χρησιμοποιήσουμε για το Network Animator. Simulator::Stop (Seconds (12.0)); AnimationInterface anim ("lab1.xml"); Simulator::Run (); Simulator::Destroy (); return 0; } 23

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

Εγκατάσταση του NS-3 (1/16) Ο παρόν οδηγός παρέχει οδηγίες για εγκατάσταση του NS3 σε Ubuntu/Debian. Την ώρα που γράφεται ο παρόν οδηγός, η τρέχουσα έκδοση του NS3 είναι η 3.16, την οποία μπορούμε να την κατεβάσουμε από εδώ. http://www.nsnam.org/ns-3-16/download/ 25

Εγκατάσταση του NS-3 (2/16) Εικόνα 1. Λήψη του NS-3 από την ιστοσελίδα του, ελεύθερο λογισμικό, με άδεια GNU GPLv2 license, διαθέσιμο στο κοινό για έρευνα, ανάπτυξη και χρήση. 26

Εγκατάσταση του NS-3 (3/16) Αφού κατεβάσουμε τον NS3 από την ιστοσελίδα του, αποσυμπιέζουμε τα περιεχόμενά του σε μία τοποθεσία της επιλογής μας. Για το παράδειγμά μας, έστω ότι έχουμε δημιουργήσει έναν φάκελο με όνομα programs στην τοποθεσία home. Εικόνα 2. Αποσυμπίεση περιεχομένων NS3, ελεύθερο λογισμικό, με άδεια GNU GPLv2 license, διαθέσιμο στο κοινό για έρευνα, ανάπτυξη και χρήση. 27

Εγκατάσταση του NS-3 (4/16) Εικόνα 3. Αποσυμπίεση των αρχείων NS3, ελεύθερο λογισμικό, με άδεια GNU GPLv2 license, διαθέσιμο στο κοινό για έρευνα, ανάπτυξη και χρήση. 28

Εγκατάσταση του NS-3 (5/16) Ανοίγουμε ένα command line και με την κατάλληλη εντολή cd μεταφερόμαστε στην τοποθεσία τοποθεσία-όπου-εξάγαμε-τον-ns3 / ns-allinone- 3.** / ns-3.**. Εικόνα 4. Εντολή για τη μεταφορά στην τοποθεσία όπου εξάγαμε τον ns-3, screen shot από τον υπολογιστή μας, άδεια GNU GPLv2 license. 29

Εγκατάσταση του NS-3 (6/16) Εγκαθιστούμε τα προαπαιτούμενα πακέτα. Ανάλογα με την έκδοση Ubuntu ή Debian που διαθέτουμε, κάποια από αυτά ίσως να μας βγάλουν μήνυμα ότι δεν υπάρχουν διαθέσιμες ενημερώσεις. Σε τέτοιου είδους περίπτωση δεν υπάρχει κάποιο πρόβλημα, προχωράμε στο επόμενο προαπαιτούμενο. 30

Εγκατάσταση του NS-3 (7/16) Για την εγκατάσταση των προαπαιτούμενων, στο command line που ανοίξαμε νωρίτερα, έχοντας μεταφερθεί πλέον στην τοποθεσία τοποθεσίαόπου-εξάγαμε-τον-ns3 / ns-allinone-3.** / ns- 3.**, εκτελούμε τις παρακάτω εντολές. o sudo apt-get install gcc g++ python. o sudo apt-get install gcc g++ python python-dev. o sudo apt-get install mercurial. 31

Εγκατάσταση του NS-3 (8/16) Εγκατάσταση προαπαιτούμενων (συνέχεια). o sudo apt-get install bzr. o sudo apt-get install gdb valgrind. o sudo apt-get install gsl-bin libgsl0-dev libgsl0ldbl. o sudo apt-get install flex bison libfl-dev. o sudo apt-get install g++-3.4 gcc-3.4. 32

Εγκατάσταση του NS-3 (9/16) Εγκατάσταση προαπαιτούμενων (συνέχεια). o sudo apt-get install tcpdump. o sudo apt-get install sqlite sqlite3 libsqlite3-dev. o sudo apt-get install libxml2 libxml2-dev. o sudo apt-get install libgtk2.0-0 libgtk2.0-dev. o sudo apt-get install vtun lxc. 33

Εγκατάσταση του NS-3 (10/16) Εγκατάσταση προαπαιτούμενων (συνέχεια). o sudo apt-get install uncrustify. o sudo apt-get install doxygen graphviz imagemagick. o sudo apt-get install texlive texlive-extra-utils texlive-latexextra. o sudo apt-get install python-sphinx dia. o sudo apt-get install uncrustify. 34

Εγκατάσταση του NS-3 (11/16) Εγκατάσταση προαπαιτούμενων (συνέχεια). o sudo apt-get install doxygen graphviz imagemagick. o sudo apt-get install texlive texlive-extra-utils texlive-latexextra. o sudo apt-get install python-sphinx dia. o sudo apt-get install python-pygraphviz python-kiwi python-pygoocanvas libgoocanvas-dev. o sudo apt-get install libboost-signals-dev libboostfilesystem-dev. 35

Εγκατάσταση του NS-3 (12/16) Εγκατάσταση προαπαιτούμενων (συνέχεια). o sudo apt-get install openmpi*. o sudo apt-get install uncrustify. o sudo apt-get install doxygen graphviz imagemagick. o sudo apt-get install texlive texlive-extra-utils texlive-latexextra. o sudo apt-get install python-sphinx dia. 36

Εγκατάσταση του NS-3 (13/16) Εγκατάσταση προαπαιτούμενων (συνέχεια). o sudo apt-get install python-pygraphviz python-kiwi python-pygoocanvas libgoocanvas-dev. o sudo apt-get install libboost-signals-dev libboostfilesystem-dev. o sudo apt-get install openmpi*. 37

Εγκατάσταση του NS-3 (14/16) Στη συνέχεια, για την εγκατάσταση του NS3, εκτελούμε τις παρακάτω εντολές. o sudo./waf clean. o sudo./waf -d optimized --enable-examples -- enable-tests configure. o sudo./waf. 38

Εγκατάσταση του NS-3 (15/16) Για να δοκιμάσουμε αν η εγκατάσταση έχει ολοκληρωθεί με επιτυχία, εκτελούμε την εντολή./test.py. Αν το αποτέλεσμα αυτής της εντολής είναι παρόμοιο με αυτό της επόμενης διαφάνειας, τότε η εγκατάσταση έχει ολοκληρωθεί με επιτυχία. 39

Εγκατάσταση του NS-3 (16/16) Εικόνα 5. Αποτέλεσμα επιτυχούς εγκατάστασης, screen shot από υπολογιστή εγκατάστασης, άδεια GNU GPLv2 license. 40

Εγκατάσταση του NetAnim (1/3) Με την κατάλληλη εντολή cd μεταφερόμαστε σε μία τοποθεσία της επιλογής μας κι εκτελούμε τις παρακάτω εντολές: 1. sudo apt-get install mercurial. 2. sudo apt-get install qt4-dev-tools. Σε περίπτωση εμφάνιση σφάλματος σχετικά με τις εξαρτήσεις (dependencies) σε αυτή την εντολή: a. Εκτελέστε την εντολή sudo nautilus. b. Στον εξερευνητή (explorer) που θα ανοίξει πηγαίνετε στην τοποθεσία /etc/apt κι ανοίξτε το αρχείο sources.list. 41

Εγκατάσταση του NetAnim (2/3) Συνέχεια εγκατάστασης. c. Στο τέλος του αρχείου προσθέστε τη γραμμή deb http://security.ubuntu.com/ubuntu precise-security main. d. Αποθηκεύστε και κλείστε το αρχείο. e. Εκτελέστε την εντολή sudo apt-get update. 42

Εγκατάσταση του NetAnim (3/3) Συνέχεια εγκατάστασης. 3. sudo hg clone http://code.nsnam.org/netanim. 4. cd netanim. 5. sudo make clean. 6. sudo qmake NetAnim.pro. 7. sudo make. 43

Άνοιγμα του NetAnim (1/4) Ανοίγουμε το NetAnim κάνοντας διπλό κλικ στο αρχείο NetAnim που υπάρχει στο φάκελο της εγκατάστασης. Εικονίδιο NetAnim, εμφάνιση μετά την εγκατάσταση του προγράμματος ns-3, ελεύθερο λογισμικό, με άδεια GNU GPLv2 license, διαθέσιμο στο κοινό για έρευνα, ανάπτυξη και χρήση. 44

Άνοιγμα του NetAnim (2/4) Κάνουμε κλικ στο εικονίδιο που βρίσκεται στο πάνω αριστερό σημείο του NetAnim, για το άνοιγμα ενός αρχείου. Εικονίδιο του NetAnim για το άνοιγμα αρχείου, εμφάνιση μετά την εγκατάσταση του προγράμματος ns-3, ελεύθερο λογισμικό, με άδεια GNU GPLv2 license, διαθέσιμο στο κοινό για έρευνα, ανάπτυξη και χρήση. 45

Άνοιγμα του NetAnim (3/4) Ανοίγουμε ένα xml αρχείο που περιέχει τα δεδομένα μίας προσομοίωσης για το NetAnim. Έχει δημιουργηθεί από κάποιο σενάριο προσομοίωσης. Άνοιγμα αρχείου lab1.xml, εμφάνιση μετά την εγκατάσταση του προγράμματος ns-3, ελεύθερο λογισμικό, με άδεια GNU GPLv2 license, διαθέσιμο στο κοινό για έρευνα, ανάπτυξη και χρήση. 46

Άνοιγμα του NetAnim (4/4) Απεικόνιση προσομοίωσης από το NetAnim, εμφάνιση μετά την εγκατάσταση του προγράμματος ns-3, ελεύθερο λογισμικό, με άδεια GNU GPLv2 license, διαθέσιμο στο κοινό για έρευνα, ανάπτυξη και χρήση.. 47

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

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