ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

Σχετικά έγγραφα
Εργαστήριο 4 Πρωτόκολλα Δρομολόγησης

Δροµολόγηση (Routing)

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I.

ΕΛΕΓΧΟΣ ΣΥΜΦΟΡΗΣΗΣ ΣΕ ΑΣΥΡΜΑΤΑ ΔΙΚΤΥΑ

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

Ενότητα 3. Στρώµα Ζεύξης: Αρχές Λειτουργίας & Το Υπόδειγµα του Ethernet

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου)

Ad Hoc Routing Πρωτόκολλα. Κατηγορίες και κύρια πρωτόκολλα

Δρομολόγηση (Routing)

7.6 ιευθυνσιοδότηση. Ερωτήσεις

ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ «ΠΡΟΗΓΜΕΝΕΣ ΔΙΚΤΥΑΚΕΣ ΤΕΧΝΟΛΟΓΙΕΣ» ΔΡΟΜΟΛΟΓΗΣΗ ΣΕ AD HOC ΔΙΚΤΥΑ. Γενικά

7.9 ροµολόγηση. Ερωτήσεις

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 5ο ΚΕΦΑΛΑΙΟ

Ενότητα 1. Εισαγωγή στις βασικές έννοιες των ικτύων ΗΥ

T.E.I. ΗΠΕΙΡΟΥ ΤΜΗΜΑ ΤΗΛΕΠΛΗΡΟΦΟΡΙΚΗΣ & ΔΙΟΙΚΗΣΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο

ΔΙΑΣΥΝΔΕΣΗ ΔΙΚΤΥΩΝ (INTERNETWORKING)

ΔΙΚΤΥΑ (13) Π. Φουληράς

Πρωτόκολλα Διαδικτύου Μέρος 2ο. Επικοινωνίες Δεδομένων Μάθημα 3 ο

1.5.1 ΓΕΦΥΡΑ (BRIDGE) Εικόνα Επίπεδα λειτουργίας επαναλήπτη, γέφυρας, δρομολογητή και πύλης ως προς το μοντέλο OSI.

Δίκτυα ΙΙ. Κεφάλαιο 7

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

3.3 Πρωτόκολλα ανεύρεσης και απόδοσης διευθύνσεων, Address Resolution Protocol (ARP) και Dynamic Host Configuration Protocol (DHCP)

Νέες Επικοινωνιακές Τεχνολογίες

Περίληψη ιπλωµατικής Εργασίας

ιαδίκτυα & Ενδοδίκτυα Η/Υ

ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων Εισαγωγή

Αλγόριθµοι δροµολόγησης µε µέσα µαζικής µεταφοράς στο µεταφορικό δίκτυο των Αθηνών

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Search and Replication in Unstructured Peer-to-Peer Networks

Δίκτυα Τηλεπικοινωνιών. και Μετάδοσης

1.2.1 Το μοντέλο αναφοράς για τη Διασύνδεση Ανοικτών Συστημάτων (OSI) 1 / 19

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ

Είναι η διαδικασία εύρεσης της διαδρομής που πρέπει να ακολουθήσει ένα πακέτο για να φτάσει στον προορισμό του. Η διαδικασία αυτή δεν είναι πάντα

Κινητές Επικοινωνίες & Τηλεπικοινωνιακά Δίκτυα

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

8 η ιάλεξη: σε δίκτυα δεδομένων

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η

ιαδίκτυα και το ιαδίκτυο (Internetworking and the Internet)

Λύσεις Παλιών Θεµάτων. Συστήµατα Παράλληλης Επεξεργασίας, 9ο εξάµηνο Υπεύθ. Καθ. Νεκτάριος Κοζύρης

Γ. Κορίλη Αλγόριθµοι ροµολόγησης

ΤΕΙ Στερεάς Ελλάδας Τμ. Ηλ.γων Μηχ/κων ΤΕ. Δίκτυα Υπολογιστών. Διάλεξη 4: Επίπεδο 3 το πρωτόκολλο IP

Ερώτηση 1 η μεταγωγής κυκλώματος? : Ποια είναι τα κύρια χαρακτηριστικά της. Ερώτηση 2 η : Ποια είναι τα κύρια χαρακτηριστικά της μεταγωγής μηνύματος?

J. Glenn Brookshear. Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. Αξιολόγηση Επιδόσεων Πρωτοκόλλων Δρομολόγησης για Ad Hoc Δίκτυα με Χρήση του Προσομοιωτή NS2

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Κεφάλαιο 12. Επικοινωνίες-Δίκτυα-Διαδίκτυο. Εξαιρούνται οι παράγραφοι:

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

Μάθημα 3: Τοπολογίες Δικτύων

Περίληψη. Ethernet Δίκτυα Δακτυλίου, (Token Ring) Άλλα Δίκτυα Σύνδεση Τοπικών Δικτύων.

ιαδίκτυα & Ενδοδίκτυα Η/Υ

Επαναληπτικές Ασκήσεις Μαθήματος

Ολοκληρωµένα ικτυακά ΣυστήµαταΚορµού (Backbone Networks)

ροµολόγηση πακέτων σε δίκτυα υπολογιστών

ΘΕΜΑΤΑ ΙΠΛΩΜΑΤΙΚΩΝ ΕΡΓΑΣΙΩΝ 2006 / 2007

Ethernet Ethernet ΙΕΕΕ CSMA/CD

Δίκτυα Υπολογιστών I

1 η ΣΕΙΡΑ ΑΣΚΗΣΕΩΝ. / 2. Οι όροι Eb. και Ec

2η Οµάδα Ασκήσεων. 250 km db/km. 45 km 0.22 db/km 1:2. T 75 km 0.22 db/km 1:2. 75 km db/km. 1:2 225 km 0.22 db/km

ΚΕΦΑΛΑΙΟ 8 ΣΥΜΠΕΡΑΣΜΑΤΑ. 8.1 Εισαγωγή

AODV - SD ΕΠΕΚΤΑΣΗ ΤΟΥ ΠΡΩΤΟΚΟΛΛΟΥ ΔΡΟΜΟΛΟΓΗΣΗΣ AODV ΓΙΑ ΑΝΑΚΑΛΥΨΗ ΥΠΗΡΕΣΙΩΝ ΣΕ ΚΙΝΗΤΑ AD HOC ΔΙΚΤΥΑ SIMULATION WITH J-SIM

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη 16 Νοεμβρίου 2013

3.6 Δρομολόγηση 1 22 /

Δίκτυα ΙΙ Τομέας Πληροφορικής,

Διάρθρωση. Δίκτυα Υπολογιστών I Δίκτυα Μεταγωγής και Διαδίκτυα: Μέρος Β. Διάρθρωση. Αναγκαιότητα της διευθυνσιοδότησης. Ευάγγελος Παπαπέτρου

Δίκτυα Υπολογιστών I

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 1 ο ΚΕΦΑΛΑΙΟ

Κεφάλαιο 5: Τοπικά ίκτυα

ΒΑΣΙΚΕΣ ΥΠΗΡΕΣΙΕΣ ΤΟΥ

Επίπεδο Δικτύου: Διαδικτύωση

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET

Υποστήριξη Κινητικότητας στο Internet. Σαράντης Πασκαλής Εθνικό και Καποδιστριακό Πανεπιστήµιο Αθηνών

Δρομολόγηση (Routing)

Διασύνδεση τοπικών δικτύων

Περιεχόµενα. Επικοινωνίες εδοµένων: Τρόποι Μετάδοσης και Πρωτόκολλα. Εισαγωγή

Δίκτυα Υπολογιστών I

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Κεφάλαιο 3.3: Δίκτυα. Επιστήμη ΗΥ Κεφ. 3.3 Καραμαούνας Πολύκαρπος

Σχολή Προγραµµατιστών Ηλεκτρονικών Υπολογιστών (ΣΠΗΥ) Τµήµα Προγραµµατιστών Σειρά 112

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα

7.2 Τεχνολογία TCP/IP

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Δίκτυα υπολογιστών. (και το Διαδίκτυο)

Διάρθρωση. Δίκτυα Υπολογιστών I Βασικές Αρχές Δικτύωσης. Διάρθρωση. Δίκτυο Υπολογιστών: ένας απλός ορισμός. Ευάγγελος Παπαπέτρου

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

1.8 Το μοντέλο OSI 1 / 33

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου

Τεχνολογίες & Εφαρμογές Πληροφορικής Ενότητα 7: Τοπικά δίκτυα

2 η Σειρά Ασκήσεων Data Link Layer

Παραδείγµατα δικτυακών τεχνολογιών. Ethernet Internet ATM

Περίληψη Λαμπρόπουλος

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. ίκτυα Υπολογιστών Ι. To Μοντέλο OSI. Αναπλ. Καθηγ. Π. εμέστιχας

Συστήματα πανταχού παρόντος υπολογιστή σε περιβάλλοντα υβριδικών βιβλιοθηκών

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η. Αρχές Δικτύων Επικοινωνιών

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7ο ΚΕΦΑΛΑΙΟ

Κατανεμημένα συστήματα και Επικοινωνία Πραγματικού Χρόνου

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

ΗΥ335α Δίκτυα Υπολογιστών Καραγκούνης Δημήτρης

Δίκτυα Υπολογιστών I

Transcript:

Πανεπιστήµιο Πατρών Πολυτεχνική Σχολή Τµήµα Μηχανικών Η/Υ και Πληροφορικής Μεταπτυχιακό πρόγραµµα «Επιστήµη και Τεχνολογία των Υπολογιστών» ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΟΜΗΜΕΝΗ ΡΟΜΟΛΟΓΗΣΗ ΣΕ ΑΣΥΡΜΑΤΑ AD HOC ΙΚΤΥΑ ΛΙΒΑΘΙΝΟΣ ΝΙΚΟΛΑΟΣ Α.Μ. 403 ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ ΤΡΙΜΕΛΗΣ ΕΠΙΤΡΟΠΗ ΤΣΑΚΑΛΙ ΗΣ ΑΘΑΝΑΣΙΟΣ ΤΣΑΚΑΛΙ ΗΣ ΑΘΑΝΑΣΙΟΣ ΓΑΡΟΦΑΛΑΚΗΣ ΙΩΑΝΝΗΣ ΜΑΚΡΗΣ ΧΡΗΣΤΟΣ 2006 ΛΙΒΑΘΙΝΟΣ ΝΙΚΟΛΑΟΣ

Μ Ε Τ Α Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α Ο Μ Η Μ Ε Ν Η Ρ Ο Μ Ο Λ Ο Γ Η Σ Η Σ Ε Α Σ Υ Ρ Μ Α Τ Α A D H O C Ι Κ Τ Υ Α Λιβαθινός Νικόλαος Μηχανικός Η/Υ και Πληροφορικής libathin@ceid.upatras.gr nikos@livathinos.gr Υπεύθυνος καθηγητής: Τσακαλίδης Αθανάσιος Μέλη τριµελούς επιτροπής: Τσακαλίδης Αθανάσιος Γαροφαλάκης Ιωάννης Μακρής Χρήστος 2006 Λιβαθινός Νικόλαος 403 Σελίδα 2 από 80

Περιεχόµενα Ευχαριστίες...7 Περιεχόµενα...3 Πρόλογος...7 1 Εισαγωγή...9 1.1 Τι είναι ένα ασύρµατο ad hoc δίκτυο υπολογιστών...9 1.1.1 ίκτυα υπολογιστών...9 1.1.2 Κινητά ασύρµατα δίκτυα...12 1.1.3 Ασύρµατα ad hoc δίκτυα...14 1.2 ροµολόγηση στα ad hoc δίκτυα...16 1.2.1 Πληµµύρα...17 1.3 ίκτυα οµότιµων κόµβων...19 1.4 οµηµένη δροµολόγηση στα ad hoc δίκτυα...20 1.5 Εφαρµογές των ad hoc δικτύων...21 2 ροµολόγηση στα ad hoc δίκτυα...24 2.1 Γενικές αρχές δροµολόγησης στα ad hoc...24 2.1.1 Όρια στην κλιµάκωση του µεγέθους του δικτύου...24 2.1.2 Χαρακτηριστικά στους αλγορίθµους δροµολόγησης...25 2.2 Κατηγοριοποίηση των αλγορίθµων δροµολόγησης...27 2.3 Επιλεγµένοι αλγόριθµοι δροµολόγησης στα ad hoc...27 2.3.1 Destination Sequenced Distance-Vector (DSDV)...27 2.3.2 Ad hoc on Demand Distance Vector (AODV)...28 2.3.3 Dynamic Source Routing (DSR)...29 2.4 Συγκρίσεις αλγορίθµων Συµπεράσµατα...30 Λιβαθινός Νικόλαος 403 Σελίδα 3 από 80

3 Κύρια σηµεία από peer to peer (p2p) δίκτυα...31 3.1 Γενικές πληροφορίες για τα p2p...31 3.1.1 Ιστορικό των p2p...31 3.1.2 Κατηγορίες p2p πρωτοκόλλων...32 3.2 Αδόµητα p2p δίκτυα - Gnutella...33 3.3 DHT πρωτόκολλα P-Grid...34 3.3.1 Ο αλγόριθµος αναζήτησης...35 3.3.2 Κατασκευή του P-Grid...36 3.4 Επιλεγµένες τεχνικές από DHT p2p δίκτυα...37 3.4.1 Consistent Hashing...37 3.4.2 Rendezvous κόµβοι...39 3.4.3 Σταθερό πλήθος συνδέσµων γραφήµατα de Bruijn...39 4 οµηµένη δροµολόγηση για ασύρµατα ad hoc δίκτυα...42 4.1 Μοντέλο για το ad hoc...43 4.2 Συσχετίσεις µε τα peer to peer...43 4.3 Βασική ιδέα δοµηµένης δροµολόγησης...44 4.4 Στοιχειώδη συµπεράσµατα...45 4.4.1 Κατασκευαστικές αρχές...45 4.4.2 Περιορισµοί στην απόδοση...45 4.5 Αρχιτεκτονική του πρωτοκόλλου CONOS...46 4.5.1 Prefix δένδρα...46 4.5.1.1 Κατασκευή του id του γιου... 46 4.5.1.2 Επιλογή του πατέρα... 47 4.5.1.3 ροµολόγηση στο prefix tree... 48 4.5.2 Αντιστοίχηση της διεύθυνσης στο id...51 4.5.2.1 Αποθήκευση του id στο δίκτυο (name store)... 52 4.5.2.2 Ανάκτηση του id του κόµβου προορισµού (name resolve)... 52 4.5.2.3 Πλεονασµός στην cache... 52 4.5.3 Ενηµέρωση των id των κόµβων...53 Λιβαθινός Νικόλαος 403 Σελίδα 4 από 80

4.5.4 Αποφυγή των βρόχων (loops)...54 4.5.5 Αποµονωµένες συνιστώσες...54 4.6 Ποιοτική εκτίµηση της απόδοσης...55 5 Θέµατα υλοποίησης Πειραµατικές µετρήσεις...56 5.1 Τεχνική περιγραφή του πρωτοκόλλου...56 5.1.1 Πληροφορία του κάθε κόµβου...56 5.1.2 Timeouts...57 5.1.3 Μηνύµατα του πρωτοκόλλου...58 5.1.4 ιαγράµµατα ροής των διαδικασιών...59 5.1.4.1 ιαδικασία join... 59 5.1.4.2 Name store διαδικασία... 61 5.1.4.3 Name resolve διαδικασία... 62 5.1.4.4 ροµολόγηση των δεδοµένων... 63 5.2 Εξοµοίωση µε τον GloMoSim...64 5.2.1 Μοντέλο λειτουργίας του GloMoSim...64 5.2.2 Τροποποιήσεις στον GloMoSim...65 5.3 Μετρήσεις - πειραµατικά αποτελέσµατα...65 5.3.1 Μοντέλο µετρήσεων...65 5.3.1.1 Τοπολογία δικτύου... 66 5.3.1.2 ηµιουργία data µηνυµάτων... 67 5.3.2 Πειραµατικά αποτελέσµατα...68 6 Ανοιχτά θέµατα - Συγκρίσεις...71 6.1 Ανοιχτά θέµατα Μελλοντική έρευνα...71 6.1.1 Αντιµετώπιση των αποµονωµένων συνιστωσών...71 6.1.2 Ενηµέρωση των id...72 6.1.3 Αποδοτική διαµοίραση του πληροφοριακού χώρου...73 6.1.4 Βέλτιστο µέγεθος της cache...73 6.1.5 Παράλληλα µονοπάτια...73 6.1.6 Τεχνικά θέµατα εξοµοίωσης...73 Λιβαθινός Νικόλαος 403 Σελίδα 5 από 80

6.2 Παρόµοιες εργασίες...74 6.3 Γενική επισκόπηση Μελλοντικές κατευθύνσεις...75 7 Παράρτηµα...76 7.1 MAC layer στα ασύρµατα ad hoc δίκτυα...76 7.1.1 Hidden terminal problem...77 7.1.2 Exposed terminal problem...77 7.1.3 Busy tones...78 7.1.4 Πρωτόκολλο 802.11...78 Βιβλιογραφία...80 Λιβαθινός Νικόλαος 403 Σελίδα 6 από 80

Ευχαριστίες Θα ήθελα να ευχαριστήσω θερµά τον επιβλέποντα καθηγητή µου κ. Τσακαλίδη Αθανάσιο για την εµπιστοσύνη που µου έδειξε και την υποστήριξη που µου παρείχε, ακόµα και όταν αυτό ήταν δύσκολο. Επίσης ευχαριστώ τον κ. Γαροφαλάκη Ιωάννη, αναπληρωτή καθηγητή, και τον κ. Μακρή Χρήστο, επίκουρο καθηγητή και για την τιµή που µου έκαναν να είναι µέλη της τριµελούς επιτροπής. Τέλος θέλω να ευχαριστήσω την οικογένειά µου, τους γονείς µου Σπύρο και Γιώτα και την αδερφή µου Αγγελική, για την ενθάρρυνσή τους και τη διαρκή τους υποστήριξη στο κάθε τι. Λιβαθινός Νικόλαος 403 Σελίδα 7 από 80

Πρόλογος Η παρούσα εργασία αφορά την παρουσίαση µιας νέας ιδέας στην δροµολόγηση των ασυρµάτων ad hoc δικτύων, την δοµηµένη δροµολόγηση. Η ιδέα αυτή εξελίχθηκε σταδιακά στην διάνοιά µου τον τελευταίο ένα χρόνο, η ιδέα για την δόµηση µιας υπερκείµενης δοµής πάνω από ένα ασύρµατο ad hoc δίκτυο που θα καθοδηγούσε την αναζήτηση του κόµβου προορισµού. Η έρευνά µου είχε αρχίσει από τα p2p δίκτυα και τις δοµές. Κάποια στιγµή συνειδητοποίησα ότι όλα αυτά είχαν άµεση σχέση µε τα ad hoc δίκτυα. Όταν τελικά διαπίστωσα την ευρεία υιοθέτηση της πληµµύρας στους αλγορίθµους δροµολόγησης στα ad hoc, ήµουν βέβαιος πως σίγουρα θα µπορούσαµε να κάνουµε κάτι καλύτερο. Να αντικαταστήσουµε την αδόµητη, τυφλή, τεχνική της πληµµύρας µε µια δοµηµένη, κατευθυνόµενη, αναζήτηση που θα ελαχιστοποιούσε την επιβάρυνση στο δίκτυο. Έτσι άρχισε η αναζήτησή µου, που κατέληξε στην ανάπτυξη του πρωτοκόλλου CONOS. Ενός πρωτοκόλλου που φιλοδοξεί να µετατρέψει τα ad hoc δίκτυα από µια εξειδικευµένη τεχνική σε µια καθηµερινή πραγµατικότητα. Το πρωτόκολλο CONOS περιγράφεται αναλυτικά στο δεύτερο µέρος αυτής της αναφοράς, και όπως φαίνεται από τις µετρήσεις που έχω κάνει, όντως ελαχιστοποιεί την επιβάρυνση στην αναζήτηση του κόµβου προορισµού. Ωστόσο αποµένει να γίνει και άλλη έρευνα, το κεφάλαιο 6 συνοψίζει διάφορα ανοιχτά θέµατα και προτάσεις για την αντιµετώπισή τους. Μέχρι και την ολοκλήρωση του CONOS, πίστευα πως η ιδέα της δοµηµένης δροµολόγησης ήταν εντελώς πρωτότυπη, ένα πραγµατικά υπέροχο συναίσθηµα. Ωστόσο ανακάλυψα εκ των υστέρων ότι υπήρχε και ένα άλλο πρωτόκολλο που παρουσίαζε µια αντίστοιχη ιδέα, το πρωτόκολλο DART. Είναι εξαιρετικά ενδιαφέρον το πόσα κοινά στοιχεία υπάρχουν σε αυτά τα δύο πρωτόκολλα, δύο πρωτόκολλα που πραγµατικά αναπτύχθηκαν εντελώς ανεξάρτητα το ένα από το άλλο. Μολαταύτα, και το CONOS και το DART χρειάζονται περισσότερη έρευνα. Μια έρευνα που χαρακτηρίζεται από ιδιάζουσες δυσκολίες, λόγω της µεγάλης πολυπλοκότητας στην εξοµοίωση ενός ασύρµατου ad hoc δικτύου. Εφόσον µάλιστα µας ενδιαφέρει να µελετήσουµε την συµπεριφορά της δροµολόγησης σε δίκτυα µεγάλης κλίµακας (ίσως εκατοµµυρίων κόµβων), τότε πρακτικά κανένα από τα υπάρχοντα εργαλεία δεν µπορεί να µας βοηθήσει. Αυτό που διατηρεί άσβεστο το ενδιαφέρον µου για τη δοµηµένη δροµολόγηση, είναι ένα όραµα για µια νέα εποχή στις τηλεπικοινωνίες. ίκτυα που θα είναι πραγµατικά κοινόχρηστα, δεν θα ανήκουν σε κανέναν αλλά και σε όλους, δεν θα χρεώνονται σε κανέναν αλλά όλοι θα πληρώνουν για αυτά. Ίσως ένα όραµα για την πρώτη πραγµατικά ελεύθερη µορφή τηλεπικοινωνιών. Τα ασύρµατα ad hoc δίκτυα µεγάλης κλίµακας. Εύχοµαι αυτά τα δίκτυα να αποτελέσουν σύντοµα µια καθηµερινή πραγµατικότητα. Νίκος Λιβαθινός Πάτρα, Νοέµβριος 2006 Λιβαθινός Νικόλαος 403 Σελίδα 8 από 80

1 Εισαγωγή Σε αυτό το πρώτο εισαγωγικό κεφάλαιο θα παρουσιάσουµε συνοπτικά την γενική ιδέα στα ασύρµατα ad hoc δίκτυα δίνοντας στοιχειώδεις ορισµούς και παραδείγµατα, θα εξηγήσουµε το πρόβληµα της ανακάλυψης του κόµβου προορισµού και θα παρουσιάσουµε συνοπτικά την ιδέα της δοµηµένης δροµολόγησης. Τέλος θα εκθέσουµε πρακτικές εφαρµογές των ad hoc δικτύων 1. 1.1 Τι είναι ένα ασύρµατο ad hoc δίκτυο υπολογιστών 1.1.1 ίκτυα υπολογιστών Ένα δίκτυο υπολογιστών είναι ένα σύστηµα για την επικοινωνία µεταξύ δύο ή περισσότερων υπολογιστών. Για παράδειγµα στο επόµενο σχήµα βλέπουµε ένα τυπικό παράδειγµα διασύνδεσης υπολογιστών µέσω ενός δικτύου: 1 Για λόγους συντοµίας θα αναφερόµαστε στα ασύρµατα ad hoc δίκτυα, απλά ως ad hoc δίκτυα εννοώντας πάντα την ασύρµατη εκδοχή τους. Σε περίπτωση ενσυρµάτων ad hoc δικτύων θα το διευκρινίζουµε ρητά. Λιβαθινός Νικόλαος 403 Σελίδα 9 από 80

Σχήµα 1: Τυπικό παράδειγµα δικτύου Από το Σχήµα 1 φαίνεται καθαρά η οµοιότητα ενός δικτύου υπολογιστών µε ένα γράφηµα όπου ο κάθε κόµβος συµβολίζει µια δικτυακή συσκευή και η κάθε ακµή µια διασύνδεση. Έτσι µπορούµε να απλοποιήσουµε το Σχήµα 1 χρησιµοποιώντας τον συµβολισµό του επόµενου σχήµατος: B D C A E F Σχήµα 2: Απλοποιηµένο διάγραµµα δικτύου Με βάση την αφαιρετική αναπαράσταση του δικτύου όπως φαίνεται στο Σχήµα 2, µπορούµε να αναφερόµαστε στις δικτυακές συσκευές ενός δικτύου απλά ως κόµβους και στις συνδέσεις τους ως ακµές ή links. Στη συνέχεια ας δούµε πιο αναλυτικά την διαδικασία επικοινωνίας µεταξύ δύο κόµβων ενός δικτύου. Μπορούµε να αναλύσουµε την λειτουργία ενός κόµβου του δικτύου σε αυτόνοµα αρθρώµατα ή αλλιώς επίπεδα. Το κάθε επίπεδο είναι ανεξάρτητο από τα άλλα, και στο καθένα έχε ανατεθεί µια λειτουργία όπως φαίνεται στο ακόλουθο σχήµα: Λιβαθινός Νικόλαος 403 Σελίδα 10 από 80

Σχήµα 3: ιαστρωµάτωση του δικτύου κατά OSI Το παραπάνω σχήµα αποτελεί την ανάλυση ενός δικτύου σύµφωνα µε τον µοντέλο OSI. Παρατηρούµε πως υπάρχουν 7 επίπεδα, στη συνέχεια αναφέρουµε συνοπτικά την λειτουργία του κάθε επιπέδου: 1. Φυσικό επίπεδο (physical layer). Αναλαµβάνει την φυσική µετάδοση ακατέργαστων δεδοµένων (bits) διαµέσου ενός φυσικού καναλιού (συρµάτινοι αγωγοί, οπτικές ίνες, ραδιοµετάδοση κ.ά). 2. Επίπεδο ζεύξης δεδοµένων (data link layer). Αναλαµβάνει τον έλεγχο λαθών των µεταδιδόµενων δεδοµένων και τον τεµαχισµό τους σε πλαίσια δεδοµένων, ώστε το επίπεδο δικτύου να παραλαµβάνει συγκεκριµένα µεγέθη πλαισίων µε δεδοµένα δίχως λάθη. Ένα υποεπίπεδο του data link, είναι το MAC (Medium Access Layer). Το MAC ρυθµίζει την ταυτόχρονη πρόσβαση των κόµβων στο ίδιο φυσικό µέσο. 3. Επίπεδο δικτύου (network layer). Ασχολείται µε την δροµολόγηση των δεδοµένων από την αφετηρία στον προορισµό, και τον έλεγχο της συµφόρησης των δεδοµένων στον κόµβο. Λιβαθινός Νικόλαος 403 Σελίδα 11 από 80

4. Επίπεδο µεταφοράς (transport layer). έχεται δεδοµένα από το επίπεδο συνόδου, τα τεµαχίζει σε µικρότερες µονάδες αν είναι απαραίτητο και τα περνά στο επίπεδο δικτύου εξασφαλίζοντας ότι όλα τα τµήµατα φθάνουν σωστά στο άλλο άκρο. 5. Επίπεδο συνόδου (session layer). Το επίπεδο συνόδου επιτρέπει σε χρήστες που χρησιµοποιούν διαφορετικές µηχανές να αποκαταστήσουν συνόδους µεταξύ τους. Πέρα από την µεταφορά δεδοµένων, µια σύνοδος µπορεί επίσης να παρέχει επιπρόσθετες υπηρεσίες (πιστοποίηση χρηστών, υπηρεσίες καταλόγου, συγχρονισµός κ.ά.). 6. Επίπεδο παρουσίασης (presentation layer). Το επίπεδο παρουσίασης ασχολείται µε τη σύνταξη και τη σηµασία της µεταδιδόµενης πληροφορίας. Για παράδειγµα µετατρέπει την αναπαράσταση της πληροφορίας που χρησιµοποιείται εντός του υπολογιστή στην προτοτυποποιηµένη αναπαράσταση του δικτύου και αντίστροφα. 7. Επίπεδο εφαρµογής (application layer). Το επίπεδο εφαρµογής αφορά το πρωτόκολλο της εκάστοτε δικτυακής εφαρµογής. Αξίζει να σηµειωθεί πως ξέχωρα από την ανάλυση των δικτύων κατά OSI, υπάρχουν και άλλα µοντέλα που περιλαµβάνουν λιγότερα επίπεδα όπως το µοντέλο TCP/IP. Στην παρούσα εργασία µας ενδιαφέρει κυρίως το επίπεδο δικτύου (network layer), που έχει τη βασική ευθύνη για την δροµολόγηση και σε µικρότερο βαθµό τα κατώτερα επίπεδα data link και physical. Ένα άλλο σηµαντικό ζήτηµα, αφορά την ταυτόχρονη πρόσβαση των κόµβων του δικτύου στο µέσο µετάδοσης (MAC layer). Για παράδειγµα έστω το δίκτυο του επόµενου σχήµατος: Σχήµα 4: Πολλαπλή πρόσβαση Έστω ότι ο κόµβος B θέλει να επικοινωνήσει µε τον κόµβο D και ο κόµβος Α µε τον κόµβο C. Είναι προφανές ότι µε την τοπολογία που έχει το δίκτυο, µόνο ένας κόµβος µπορεί να το χρησιµοποιεί κάθε στιγµή. Αν προσπαθήσουν δύο κόµβοι να στείλουν δεδοµένα ταυτόχρονα, τότε συµβαίνει µια σύγκρουση (collision) και κανένας κόµβος δεν µπορεί να επικοινωνήσει. Τα collisions που συµβαίνουν σε ένα δίκτυο µειώνουν την απόδοσή του και πρέπει να ελαχιστοποιούνται. 1.1.2 Κινητά ασύρµατα δίκτυα Ένα ασύρµατο δίκτυο, είναι ένα δίκτυο στο οποίο οι κόµβοι διασυνδέονται µεταξύ τους µε ασύρµατους συνδέσµους, συνήθως ραδιοσυνδέσµους. Επίσης αν οι κόµβοι έχουν τη δυνατότητα φυσικής κίνησης στον χώρο, τότε έχουµε ένα κινητό ασύρµατο δίκτυο. Ο παραπάνω ορισµός αφήνει µεγάλο περιθώριο για διαφορετικούς τύπους ασυρµάτων δικτύων, ωστόσο σε κάθε περίπτωση ένα κοινό χαρακτηριστικό των ασυρµάτων δικτύων είναι η broadcast φύση του µέσου επικοινωνίας. Για παράδειγµα ας δούµε τι συµβαίνει στο ακόλουθο σχήµα: Λιβαθινός Νικόλαος 403 Σελίδα 12 από 80

Σχήµα 5: Broadcast φύση του ασυρµάτου δικτύου Ο κόµβος Α θέλει να επικοινωνήσει µε τον κόµβο Β, για αυτό και εκπέµπει ένα µήνυµα. Αναπόφευκτα όµως το µήνυµά του το λαµβάνει όχι µόνο ο Β αλλά και οι κόµβοι C, D, E. Στην πραγµατικότητα αυτό το φαινόµενο είναι η αιτία δύο σηµαντικών προβληµάτων του hidden terminal και του exposed terminal 2. Τα προβλήµατα αυτά µειώνουν την απόδοση του δικτύου και πρέπει να αντιµετωπιστούν στο data link επίπεδο του δικτύου, για αυτό και στα πλαίσια αυτής της εργασίας δεν θα ασχοληθούµε µε αυτό το θέµα. Ένα άλλο ζήτηµα είναι η περιορισµένη εµβέλεια των κόµβων. Καθώς οι κόµβοι κινούνται στο χώρο, έχουν δυνατότητα άµεσης επικοινωνίας µόνο µε τους φυσικούς τους γείτονες, δηλαδή εκείνους τους κόµβους που βρίσκονται εντός εµβέλειας. Πως όµως θα γίνει εφικτή η επικοινωνία µε αποµακρυσµένους κόµβους; Η απάντηση σε αυτό το ερώτηµα υποδιαιρεί τα κινητά δίκτυα σε δύο κατηγορίες: Τα ασύρµατα δίκτυα σταθερής υποδοµής και τα ad hoc δίκτυα. Σε αυτόν τον υπότιτλο θα παρουσιάσουµε συνοπτικά τα ασύρµατα δίκτυα σταθερής υποδοµής και στον επόµενο τα ad hoc δίκτυα. Στα δίκτυα σταθερής υποδοµής οι κόµβοι διακρίνονται σε δύο κατηγορίες, τους σταθµούς βάσης (base stations) και τους κινητούς σταθµούς (mobile stations). Οι σταθµοί βάσης διασυνδέονται µεταξύ τους σε ένα δίκτυο κορµού, που συνήθως είναι ένα αξιόπιστο ενσύρµατο δίκτυο και η συνολική γεωγραφική περιοχή που καλύπτει το δίκτυο, µοιράζεται στο σύνολο των σταθµών βάσης. Ο κάθε κινητός σταθµός µπορεί να επικοινωνεί άµεσα µόνο µε τον σταθµό βάσης της περιοχής που ανήκει. Με αυτό τον τρόπο η επικοινωνία µεταξύ δύο κινητών κόµβων εξυπηρετείται µέσω των σταθµών βάσης. Για παράδειγµα ας δούµε τι συµβαίνει στο ακόλουθο σχήµα: 2 Για µια συνοπτική περιγραφή αυτών των δύο προβληµάτων βλέπε τον υπότιτλο «MAC layer στα ασύρµατα ad hoc δίκτυα», στο Παράρτηµα. Λιβαθινός Νικόλαος 403 Σελίδα 13 από 80

Σχήµα 6: Ασύρµατο δίκτυο µε σταθερή υποδοµή Ας υποθέσουµε ότι ο κόµβος Α θέλει να επικοινωνήσει µε τον κόµβο F. Πρώτα ο Β θα επικοινωνήσει µε τον S1, στη συνέχεια µέσω του δικτύου των σταθµών βάσης θα γίνει επικοινωνία µε τον S2 και τελικά ο S2 θα επικοινωνήσει µε τον F. 1.1.3 Ασύρµατα ad hoc δίκτυα Στην γενικευµένη του µορφή, ένα ασύρµατο ad hoc δίκτυο είναι ένα αυτό-ρυθµιζόµενο δίκτυο, αποτελούµενο από κινητούς κόµβους που διασυνδέονται µε ασύρµατους συνδέσµους. Σε ένα τέτοιο δίκτυο η τοπολογία µπορεί να αλλάζει διαρκώς καθώς οι κόµβοι κινούνται στο χώρο, εξωγενείς παράγοντες επηρεάζουν την µετάδοση των ασύρµατων µηνυµάτων, νέοι κόµβοι προστίθεται και ήδη υπάρχοντες εγκαταλείπουν το δίκτυο. 3 Από τον παραπάνω ορισµό γίνεται σαφές πως υπάρχει µεγάλο περιθώριο στο τι µπορεί να αποτελέσει ένα ad hoc δίκτυο, ωστόσο σε κάθε περίπτωση το κοινό χαρακτηριστικό είναι η απουσία µιας σταθερής υποδοµής. Υπό αυτές τις συνθήκες η ευθύνη για την οµαλή λειτουργία του δικτύου κατανέµεται δυναµικά και ανάλογα µε την τρέχουσα διαµόρφωσή του, σε όλους ή σε επιλεγµένους κόµβους του δικτύου που πληρούν ορισµένες προϋποθέσεις. Αν θεωρήσουµε όλους τους κόµβους του δικτύου ίσους σε δυνατότητες και υποχρεώσεις, τότε αναφερόµαστε σε συµµετρικά δίκτυα, διαφορετικά σε ασύµµετρα δίκτυα. Στην περίπτωση των ασύµµετρων δικτύων µπορεί κάποιοι κόµβοι να έχουν επιφορτιστεί µε την επιπρόσθετη υποχρέωση να λειτουργούν ως «αρχηγοί» στη γειτονιά που ανήκουν. Επίσης ένα ad hoc δίκτυο θα µπορούσε να συνδυαστεί µε κάποιο σταθερό δίκτυο αποτελώντας ένα υβριδικό σύστηµα. Στο ακόλουθο σχήµα φαίνεται το παράδειγµα ενός ad hoc δικτύου: 3 Στην βιβλιογραφία τα ασύρµατα ad hoc δίκτυα αναφέρονται επίσης και ως MANET (Mobile Ad Hoc Network). Λιβαθινός Νικόλαος 403 Σελίδα 14 από 80

Σχήµα 7: Ασύρµατο ad hoc δίκτυο Στο σχήµα βλέπουµε την τρέχουσα διαµόρφωση ενός δικτύου αποτελούµενου από 6 ασύρµατους κόµβους. Εφόσον µας ενδιαφέρει να γνωρίζουµε ποιοι κόµβοι µπορούν να επικοινωνήσουν µεταξύ τους, είναι αναγκαίο να εντοπίσουµε τους παράγοντες που καθορίζουν την επιτυχία µετάδοσης ενός µηνύµατος από έναν κόµβο S προς έναν κόµβο D: Η ισχύς του εκπεµπόµενου σήµατος στον ποµπό S. Η ευαισθησία του δέκτη του D, που ορίζει την ελάχιστη απαιτούµενη ισχύ για ορθή λήψη της πληροφορίας. Οι κεραίες του ποµπού και του δέκτη (ενίσχυση του σήµατος, κατευθυντικότητα). Η απόσταση µεταξύ των S και D, όπως ορίζεται από την τρέχουσα θέση τους µε βάση την κινητικότητά τους. Ο (ηλεκτροµαγνητικός) θόρυβος που υπάρχει στο φυσικό περιβάλλον του δικτύου (ατµοσφαιρικός θόρυβος, παρεµβολή από άλλες ηλεκτροµαγνητικές συσκευές, παρεµβολή από άλλους κόµβους του δικτύου). Ανακλάσεις του σήµατος σε (ηλεκτροµαγνητικά) εµπόδια που υπάρχουν στο χώρο (π.χ. έδαφος, κτίρια, βουνά, µεταλλικά αντικείµενα, σωµατίδια στην ατµόσφαιρα, κ.ά). Εύκολα προκύπτει πως κανένας από τους παραπάνω παράγοντες δεν παραµένει σταθερός. Αυτό ισχύει ιδιαίτερα αν λάβουµε υπόψη µας ότι οι κόµβοι ενός ad hoc δικτύου µπορεί να παρουσιάζουν εξαιρετική ανοµοιογένεια στα τεχνικά τους χαρακτηριστικά (ισχύς εκποµπής, κατευθυντικότητα κεραίας, ευαισθησία λήψης, εσωτερικός θόρυβος, κ.ά). Στην πραγµατικότητα ακόµα και η θεώρηση Λιβαθινός Νικόλαος 403 Σελίδα 15 από 80

κυκλικών ακτίνων µετάδοσης είναι εσφαλµένη καθώς τίποτα δεν εγγυάται πως το εκπεµπόµενο σήµα δεν θα παραµορφωθεί από κάποιον παράγοντα. Εποµένως εύκολα γίνεται αντιληπτή η µεγάλη πολυπλοκότητα που υπεισέρχεται στην µελέτη ενός κινητού ασύρµατου ad hoc δικτύου, πόσο µάλλον η υιοθέτηση ενός αξιόπιστου µοντέλου που να ανταποκρίνεται στην πραγµατικότητα. Αν λάβουµε όλους τους παράγοντες υπόψη, µπορούµε να θεωρήσουµε το ad hoc δίκτυο όπως φαίνεται στο ακόλουθο σχήµα, σχεδιάζοντας µια ευθεία µεταξύ των κόµβων που µπορούν να επικοινωνήσουν άµεσα: Σχήµα 8: Απλοποιηµένη αναπαράσταση ad hoc δικτύου Επίσης πρέπει να λάβουµε υπόψη µας πως στη γενική περίπτωση οι σύνδεσµοι σε ένα ασύρµατο δίκτυο είναι µονής κατεύθυνσης, οπότε δεν ισχύει πάντα ένα σχήµα όπως το Σχήµα 8. 1.2 ροµολόγηση στα ad hoc δίκτυα Έχοντας δει τα χαρακτηριστικά ενός ad hoc δικτύου, θα συνεχίσουµε εξετάζοντας τον τρόπο που γίνεται η δροµολόγηση σε αυτά, που αποτελεί και το κύριο αντικείµενο της παρούσας εργασίας. Ας επανέλθουµε πάλι στην απλοποιηµένη αναπαράσταση του ad hoc που φαίνεται στο Σχήµα 8, και ας θεωρήσουµε ότι ο κόµβος Α θέλει να επικοινωνήσει µε τον κόµβο F. Είναι προφανές ότι εφόσον ο F είναι αρκετά αποµακρυσµένος, ο Α δεν µπορεί να επικοινωνήσει άµεσα µε αυτόν. Επίσης δεν υπάρχουν σταθµοί βάσης. Έτσι η µόνη λύση είναι η επιβάρυνση κάποιων άλλων ενδιαµέσων κόµβων ώστε να προωθήσουν τα µηνύµατα του Α στον F. Φυσικά αυτό δεν θα µπορεί να συµβαίνει πάντα, παρά µόνο όταν υπάρχει µια ακολουθία ενδιαµέσων κόµβων από την αφετηρία στον προορισµό. Το επόµενο σχήµα δείχνει πως µπορεί να γίνει αυτό: Λιβαθινός Νικόλαος 403 Σελίδα 16 από 80

Σχήµα 9: ροµολόγηση στα ad hoc Στο Σχήµα 9, φαίνεται µε µπλε χρώµα το µονοπάτι που ακολουθήθηκε κατά την µεταφορά δεδοµένων από τον Α στον F. Παρατηρούµε επίσης πως ένα τέτοιο µονοπάτι ούτε είναι πάντα εφικτό, ούτε και υποχρεωτικά το συντοµότερο. Για παράδειγµα, κανένας δεν µπορεί να επικοινωνήσει µε τον κόµβο G εφόσον αυτός είναι τόσο πολύ αποµακρυσµένος από τους άλλους και επίσης η συντοµότερη διαδροµή (µετρούµενη σε ενδιάµεσα βήµατα) από τον Α στον F είναι η Α->C->D->F και όχι η Α->Β->C- >D->F που ακολουθήθηκε. Εποµένως γίνεται αντιληπτό πως η δροµολόγηση στα ad hoc δίκτυα δεν µπορεί να είναι µια εγγυηµένη διαδικασία αλλά η καλύτερη προσπάθεια (best effort). Ας επικεντρώσουµε όµως την προσοχή µας στην διαδικασία που ακολούθησε ο Α προκειµένου να επικοινωνήσει µε τον F. Το πρώτο βήµα ήταν να ανακαλύψει που είναι ο F. Εφόσον δεν υπάρχει κάποια σταθερή υποδοµή ο Α δεν γνωρίζει ούτε αν ο F υπάρχει στο δίκτυο, ούτε σε ποια θέση βρίσκεται, ούτε πως θα φτάσει σε αυτόν. Το δεύτερο βήµα είναι να γίνει η επιλογή ενός µονοπατιού από τον Α στον F και να αρχίσει η µεταφορά των δεδοµένων. Φυσικά σε πολλούς αλγορίθµους αυτές οι δύο διαδικασίες µπορούν να συγχωνευθούν, ωστόσο στην γενική περίπτωση είναι δύο διακριτές φάσεις. Η άποψή µας είναι ότι το κλειδί στην δροµολόγηση είναι ο τρόπος που θα υλοποιηθεί η πρώτη φάση, η ανακάλυψη του κόµβου προορισµού. Στη συνέχεια θα παρουσιάσουµε δύο βασικές τεχνικές που χρησιµοποιούνται για αυτό τον σκοπό, την τεχνική της πληµµύρας και την δοµηµένη δροµολόγηση. Η πληµµύρα χρησιµοποιείται ευρέως στους περισσότερους αλγορίθµους δροµολόγησης ad hoc δικτύων, ενώ η δοµηµένη δροµολόγηση αποτελεί το αντικείµενο της παρούσας εργασίας. 1.2.1 Πληµµύρα Η τεχνική της πληµµύρας αφορά την ανακάλυψη του κόµβου προορισµού. Στην πληµµύρα όταν ένας κόµβος S θέλει να ανακαλύψει έναν κόµβο D, αρχίζει αποστέλλοντας ένα µήνυµα ανακάλυψης του D στους άµεσους γείτονές του. Αυτοί µε τη σειρά τους διαδίδουν το µήνυµα στους δικούς τους γείτονες, και η διαδικασία επαναλαµβάνεται έως ότου βρεθεί ο κόµβος D. Συνήθως υπάρχει ένα µέγιστο βάθος Λιβαθινός Νικόλαος 403 Σελίδα 17 από 80

επαναµετάδοσης. Όταν τελικά ο κόµβος βρεθεί τότε σίγουρα έχει βρεθεί και ένα µονοπάτι από τον S στον D (αυτό που χρησιµοποιήθηκε για να φθάσει το µήνυµα σε αυτόν). Φυσικά η παραπάνω διαδικασία µπορεί να βελτιωθεί σηµαντικά από τον εκάστοτε αλγόριθµο, ωστόσο η βασική ιδέα της επαναληπτικής επαναµετάδοσης του µηνύµατος αναζήτησης του κόµβου προορισµού διατηρείται. Για παράδειγµα, έστω το ad hoc που φαίνεται στο ακόλουθο σχήµα, και έστω ότι ο κόµβος E θέλει να επικοινωνήσει µε τον κόµβο J. Σχήµα 10: Πληµµύρα στα ad hoc Ο Ε θα αρχίσει ρωτώντας τους γείτονές του (C, F, H, G) για τον J. Αυτοί θα επαναλάβουν στους δικούς τους γείτονες, και τελικά ο Η θα βρει τον J. Με αυτόν τον τρόπο µπορεί να βρεθεί ένα µονοπάτι E->H->J και να αρχίσει η επικοινωνία του Ε µε τον J. Ωστόσο το αρχικό µήνυµα αναζήτησης που απέστειλε ο Ε δεν διαδόθηκε µόνο προς την κατεύθυνση που βρίσκεται ο J αλλά προς όλες τις δυνατές κατευθύνσεις. Αυτό συνεπάγεται ότι µια αρκετά µεγάλη περιοχή του δικτύου θα έχει επιβαρυνθεί µε το µήνυµα ανακάλυψης του J, δίχως να έχει κανένα νόηµα. Για να το καταστήσουµε πιο σαφές, ας δούµε στο επόµενο σχήµα ποιοι κόµβοι έλαβαν το αρχικό µήνυµα ανακάλυψης που απέστειλε ο Ε: Σχήµα 11: Επιβάρυνση του δικτύου από την πληµµύρα Στο Σχήµα 11, οι κόµβοι µε πράσινο χρώµα (E, H, J) είναι αυτοί που τελικά επιλέχθηκαν για το µονοπάτι που συνδέει τον E µε τον J, και οι κόµβοι µε κόκκινο χρώµα (όλοι) είναι αυτοί που έλαβαν το Λιβαθινός Νικόλαος 403 Σελίδα 18 από 80

µήνυµα του E για την ανακάλυψη του J. ηλαδή ενώ (στην συγκεκριµένη περίπτωση) θα έπρεπε να επιβαρυνθούν µόνο 3 κόµβοι για την ανακάλυψη του προορισµού, τελικά επιβαρύνθηκαν όλοι! Είναι προφανές ότι η επιβάρυνση αυτή οφείλεται στην απουσία ενός µηχανισµού που θα καθοδηγήσει την ανακάλυψη του κόµβου προορισµού. Φυσικά πρέπει να σηµειώσουµε ότι οι πραγµατικοί αλγόριθµοι δροµολόγησης των ad hoc χρησιµοποιούν διάφορες τεχνικές ώστε να µειώσουν την επιβάρυνση της πληµµύρας, και ο καθένας ακολουθεί διαφορετική στρατηγική στον τρόπο επικοινωνίας της αφετηρίας µε τον προορισµό. 1.3 ίκτυα οµότιµων κόµβων Τα δίκτυα οµότιµων κόµβων (peer to peer networks p2p) αποτελούν ένα εντελώς διαφορετικό είδος δικτύων από αυτό που ορίστηκε στην αρχή του κεφαλαίου. Ουσιαστικά πρόκειται για πρωτόκολλα εφαρµογών που δηµιουργούν ένα εικονικό δίκτυο πάνω από ένα φυσικό δίκτυο. Εποµένως πρόκειται καθαρά για λογισµικό που τρέχει σε κάθε κόµβο του δικτύου. Συνηθέστερα οι λειτουργίες που υποστηρίζει ένα p2p δίκτυο είναι η σύνδεση (join) ενός νέου κόµβου στο δίκτυο και η αναζήτηση (lookup) του κόµβου προορισµού, µια διαδικασία αντίστοιχη της δροµολόγησης. Κάθε νέος κόµβος που συνδέεται στο p2p λαµβάνει ένα αναγνωριστικό (id) που τον προσδιορίζει µονοσήµαντα στο δίκτυο, και διατηρεί δείκτες προς άλλους κόµβους του δικτύου. Υπό αυτό το πρίσµα τα id αντιπροσωπεύουν τους κόµβους του εικονικού δικτύου και οι δείκτες που διατηρούν οι κόµβοι, τους συνδέσµους του δικτύου. Η βασικός στόχος ενός p2p δικτύου είναι ο κοινόχρηστος διαµοιρασµός ενός πόρου. Τέτοιοι πόροι µπορεί να είναι: Αρχεία δεδοµένων. Χώρος στο δίσκο. Bandwidth δικτύου. Υπολογιστική ισχύς (cpu power). Για παράδειγµα αν ο πόρος που θέλουµε να διαµοιράσουµε είναι αρχεία δεδοµένων, τότε ο κάθε κόµβος µπορεί να χρησιµοποιεί αρχεία που άλλοι κόµβοι έχουν προσφέρει στο δίκτυο, και να συνεισφέρει και αυτός τα δικά του αρχεία. Ο λόγος που µας ενδιαφέρουν τα p2p δίκτυα είναι η µεγάλη οµοιότητα που παρουσιάζουν µε τα ad hoc δίκτυα. Συγκεκριµένα έχουµε τις εξής οµοιότητες: Οι κόµβοι θεωρούνται γενικά ανεξάρτητοι και ισότιµοι. Η µεταφορά της πληροφορίας γίνεται σε ενδιάµεσα βήµατα από κόµβο σε κόµβο. Υπάρχει ανάγκη εύρεσης του κόµβου προορισµού και δροµολόγησης της πληροφορίας. Λιβαθινός Νικόλαος 403 Σελίδα 19 από 80

Γίνεται κοινόχρηστη διαµοίραση ενός πόρου, που στην περίπτωση των ad hoc δικτύων είναι η περιοχή εµβέλειας του κάθε ασύρµατου κόµβου. Ωστόσο υπάρχει και µια ουσιαστική διαφορά. Για να λειτουργήσει ένα p2p δίκτυο βασίζεται σε ένα υπάρχον υποκείµενο φυσικό δίκτυο, κάτι που δεν υπάρχει στα ad hoc. ηλαδή σε ένα p2p ο κάθε κόµβος έχει τη φυσική δυνατότητα επικοινωνίας µε όποιον κόµβο του δικτύου θέλει, έτσι τα πρωτόκολλα στα p2p δεν έχουν κάποιον περιορισµό στους κόµβους που θα θέσουν ως γείτονες. Στην περίπτωση όµως των ad hoc δεν υπάρχει περιθώριο να επιλέξουµε εµείς ποιοι θα είναι οι γείτονές µας, κάθε φορά είναι οι φυσικοί µας γείτονες. 1.4 οµηµένη δροµολόγηση στα ad hoc δίκτυα Ο βασικός στόχος της δοµηµένης δροµολόγησης είναι η αποφυγή της πληµµύρας στην διαδικασία ανακάλυψης του κόµβου προορισµού. Για να το επιτύχουµε αυτό έχουµε συνδυάσει και επεκτείνει τεχνικές τόσο από τα ad hoc δίκτυα όσο και από τα p2p δίκτυα. Είναι ενδιαφέρον ότι η τεχνική της πληµµύρας που χρησιµοποιείται στα ad hoc, χρησιµοποιήθηκε επίσης στα πρώιµα p2p πρωτόκολλα (π.χ. Gnutella). Ωστόσο τα µεταγενέστερα p2p δίκτυα χρησιµοποίησαν τεχνικές που απέφευγαν την πληµµύρα. Για να το πετύχουν αυτό απέδωσαν στους κόµβους κατάλληλα επιλεγµένα id. Το id που λαµβάνει ο κάθε κόµβος αποδίδεται µε τέτοιο τρόπο ώστε να προσδιορίζει την θέση του στο δίκτυο. Κατόπιν τα id αυτά χρησιµοποιούνται για να κατευθύνουν τη δροµολόγηση στον τελικό προορισµό, αντί να «πληµµυρίζει» το δίκτυο µε πακέτα αναζήτησης. Έτσι εκ πρώτης όψεως η ιδέα της εφαρµογής τεχνικών δροµολόγησης από τα p2p στα ad hoc φαίνεται ιδιαίτερα ελκυστική. Όµως ο φυσικός περιορισµός στην επιλογή των γειτόνων ενός κόµβου, καθιστά αδύνατη την άµεση εφαρµογή οποιουδήποτε p2p πρωτόκολλου στα ad hoc. Προκειµένου να ξεπεράσουµε αυτόν τον περιορισµό αποδίδουµε δυναµικά id στους κόµβους του δικτύου. Το id που αποδίδεται στον κάθε κόµβο σχετίζεται άµεσα µε τους τρέχοντες φυσικούς του γείτονες και έτσι προσδιορίζει την σχετική του θέση στο ad hoc. Χρησιµοποιώντας τα id των κόµβων κατευθύνουµε την αναζήτηση προς την κατεύθυνση του κόµβου προορισµού, αποφεύγοντας την πληµµύρα και την συνεπαγόµενη επιβάρυνση στο δίκτυο. Μολονότι η δοµηµένη δροµολόγηση θα περιγραφεί αναλυτικά σε επόµενα κεφάλαια, αξίζει να αναφέρουµε επιγραµµατικά ποια είναι τα βασικά της χαρακτηριστικά: Εκτίµηση του µεγίστου βαθµού γειτνίασης στους κόµβους του ad hoc δικτύου (παράµετρος του συστήµατος). ηµιουργία µιας δενδρικής υπερκείµενης δοµής πάνω από το φυσικό δίκτυο (prefix tree). Απόδοση σε κάθε κόµβο ενός δυναµικού id. Το id αποδίδεται έτσι ώστε η γειτονικότητα των κόµβων στην υπερκείµενη δοµή να ταιριάζει όσο το δυνατόν περισσότερο µε την φυσική τους γειτονικότητα. Λιβαθινός Νικόλαος 403 Σελίδα 20 από 80

ροµολόγηση που χρησιµοποιεί τους διαθέσιµους φυσικούς συνδέσµους και κατευθύνεται από την υπερκείµενη δοµή. Υιοθέτηση ενός σχήµατος κατανεµηµένου καταλόγου, όπου αντιστοιχίζονται τα δυναµικά id µε τις σταθερές διευθύνσεις των κόµβων του ad hoc. Οι πρώτες µετρήσεις φανερώνουν πως η δοµηµένη δροµολόγηση επιτυγχάνει όντως πολύ µικρότερη επιβάρυνση στην διαδικασία ανακάλυψης του προορισµού από ότι η πληµµύρα. Μια επιβάρυνση γραµµική στο µέγεθος του δικτύου σε αντίθεση µε την τετραγωνική επιβάρυνση της πληµµύρας! Ωστόσο αποµένει να εξεταστούν ακόµη αρκετά ανοιχτά θέµατα όπως: Αντιµετώπιση των αποµονωµένων υποδικτύων. Ελαχιστοποίηση της επιβάρυνσης που προκαλείται από την ανανέωση των ids των κόµβων. Αποδοτική διαµοίραση του πληροφοριακού χώρου στους κόµβους. Βελτιστοποίηση στην κατανάλωση µνήµης. Επίτευξη παραλληλισµού. Έρευνα για µεγάλα µεγέθη δικτύων και µοντέλα κινητικότητας. 1.5 Εφαρµογές των ad hoc δικτύων Τελειώνοντας την εισαγωγή, θέλουµε να εκθέσουµε συνοπτικά τις πρακτικές εφαρµογές των ad hoc δικτύων, καθώς και γιατί πιστεύουµε πως η δυνατότητα κλιµάκωσης των ad hoc δικτύων σε πολύ µεγάλα µεγέθη θα αποτελέσει µια πραγµατική επανάσταση στο χώρο των τηλεπικοινωνιών. Στην παρούσα φάση ανάπτυξης, τα ad hoc δίκτυα χρησιµοποιούνται συνήθως σε εξαιρετικές περιπτώσεις που οι συνθήκες καθιστούν αδύνατη την ύπαρξη σταθερής υποδοµής. Παραδείγµατα τέτοιων περιπτώσεων είναι η διασύνδεση οµάδων διάσωσης σε φυσικές καταστροφές και οι στρατιωτικές επιχειρήσεις. Από την άλλη πλευρά η χρήση των κινητών συσκευών επικοινωνίας είναι εξαιρετικά διαδεδοµένη 4, και είναι λογικό να πιστεύουµε πως εντός των αστικών κέντρων η γεωγραφική τους κατανοµή θα παρουσιάζει µεγάλη πυκνότητα. Μολαταύτα, όλα τα ευρέως χρησιµοποιούµενα δίκτυα κινητών συσκευών λειτουργούν χρησιµοποιώντας σταθερούς σταθµούς βάσης που ανήκουν σε παρόχους τηλεπικοινωνιακών υπηρεσίων, οι οποίοι (κατά συνέπεια) χρεώνουν τους χρήστες του δικτύου για τις υπηρεσίες τους. Θα µπορούσαµε άραγε να εκµεταλλευθούµε την ύπαρξη τόσο πολλών και τόσο πυκνά τοποθετηµένων κινητών συσκευών, δηµιουργώντας ad hoc δίκτυα µεγάλης κλίµακας; Θα µπορούσε 4 Σύµφωνα µε µελέτες του 2004, εκτιµάται ότι για το 2007 ο παγκόσµιος αριθµός χρηστών κινητών τηλεφώνων θα ξεπεράσει τα 2 δισεκατοµµύρια. Λιβαθινός Νικόλαος 403 Σελίδα 21 από 80

µια ολόκληρη πόλη αποτελούµενη ίσως από εκατοµµύρια κινητές συσκευές να δηµιουργήσει ένα τεράστιο ad hoc δίκτυο; Η επίτευξη ενός τέτοιου στόχου θα µπορούσε να οδηγήσει στην δηµιουργία ασύρµατων δικτύων ελεύθερης και δωρεάν πρόσβασης, όπως συνήθως συµβαίνει µε τα p2p δίκτυα. Μολονότι δεν είµαστε σε θέση να απαντήσουµε στα παραπάνω ερωτήµατα, ωστόσο είναι προφανές ότι ο πρώτιστος περιοριστικός παράγοντας είναι η αδυναµία κλιµάκωσης των ad hoc δικτύων σε µεγάλα µεγέθη. Συνήθως τα τυπικά µεγέθη που χρησιµοποιούνται σήµερα είναι µόλις µερικές δεκάδες κόµβοι. Πιστεύουµε πως η αντικατάσταση της τεχνικής της πληµµύρας µε µια πιο «έξυπνη» λύση που θα ελαχιστοποιεί την επιβάρυνση στο δίκτυο, είναι ένα πρώτο βήµα στη δηµιουργία µεγαλύτερων ad hoc δικτύων. Στη συνέχεια η εργασία διαιρείται σε δύο µέρη. Στο πρώτο µέρος παρουσιάζονται επιλεγµένοι αλγόριθµοι για δροµολόγηση σε ad hoc και τεχνικές από p2p δίκτυα. Κατόπιν στο δεύτερο µέρος εκθέτουµε την δική µας εκδοχή για την δοµηµένη δροµολόγηση στα ad hoc δίκτυα, το πρωτόκολλο CONOS. Θα παρουσιάσουµε τόσο το πρωτόκολλο που αναπτύξαµε όσο και τη λογική που µας οδήγησε σε αυτό. Επίσης θα δούµε αποτελέσµατα πειραµατικών µετρήσεων που έγιναν στην υλοποίηση που έχουµε. Τέλος θα εκθέσουµε διάφορα ανοιχτά θέµατα στη δοµηµένη δροµολόγηση, συναφείς εργασίες και πιθανές κατευθύνσεις για µελλοντική έρευνα. Λιβαθινός Νικόλαος 403 Σελίδα 22 από 80

Μέρος Πρώτο: Πρωτόκολλα δροµολόγησης στα ad hoc και peer to peer δίκτυα Λιβαθινός Νικόλαος 403 Σελίδα 23 από 80

2 ροµολόγηση στα ad hoc δίκτυα Στην εισαγωγή της εργασίας είδαµε µερικές βασικές ιδέες για την δροµολόγηση στα ασύρµατα ad hoc δίκτυα. Σε αυτό το κεφάλαιο θα δούµε αναλυτικότερα ζητήµατα που αφορούν τη δροµολόγηση καθώς και συγκεκριµένα πρωτόκολλα. 2.1 Γενικές αρχές δροµολόγησης στα ad hoc 2.1.1 Όρια στην κλιµάκωση του µεγέθους του δικτύου Στο εισαγωγικό κεφάλαιο είδαµε ότι µας ενδιαφέρει η δυνατότητα κλιµάκωσης ενός ad hoc δικτύου σε µεγάλα µεγέθη. Ωστόσο αν θεωρήσουµε ένα δίκτυο µε Ν κόµβους, και αν υποθέσουµε ότι καλύπτουν οµοιόµορφα µια κυκλική περιοχή, τότε η διάµετρος του δικτύου θα είναι O ( N ). Εφόσον η δροµολόγηση γίνεται σε πολλαπλά ενδιάµεσα βήµατα (multi hops), όσο περισσότερα είναι τα ενδιάµεσα βήµατα τόσο περισσότερη επεξεργασία θα πρέπει να γίνει για κάθε µεταδιδόµενο πακέτο. Κατά συνέπεια το µέγεθος του δικτύου θα περιορίζεται από τον παράγονται O ( N ), και η απόδοσή του θα είναι της τάξης του O ( 1/ N ). Επίσης η αύξηση του µεγέθους του δικτύου αυξάνει τα προβλήµατα λόγω της κινητικότητας των κόµβων και την καθυστέρηση διάδοσης ενός µηνύµατος από την µία άκρη ως την άλλη. ιάφορες τεχνικές που έχουν προταθεί για την επέκταση του µεγέθους ενός δικτύου είναι: Λιβαθινός Νικόλαος 403 Σελίδα 24 από 80

Χρήση πολλαπλών ραδιοποµπών. Για µεγάλες αποστάσεις θα χρησιµοποιείται µετάδοση σε διαφορετικές συχνότητες µε κατευθυντικές κεραίες. Έτσι η µετάδοση θα γίνεται πρώτα στην γειτονιά του προορισµού και κατόπιν θα δροµολογείται σε αυτόν µε το κανονικό ραδιοδίκτυο. Ασύµµετρα δίκτυα που θα περιλαµβάνουν ένα σταθερό υποδίκτυο µικρής διαµέτρου και θα χρησιµοποιείται για προώθηση πακέτων σε µεγάλες αποστάσεις µέσα στο ad hoc. Εκµετάλλευση της κινητικότητας των κόµβων. Η ιδέα είναι να χρησιµοποιηθούν κινητοί µεσολαβητές που καθώς θα κινούνται θα «παραδίδουν» τα µηνύµατα στον προορισµό τους. Αντικατάσταση της πληµµύρας µε δοµηµένη δροµολόγηση. Εποµένως βλέπουµε πως η βελτιστοποίηση σε ένα ad hoc µπορεί να γίνει από πολλές διαφορετικές κατευθύνσεις, ωστόσο εµείς θα επικεντρωθούµε στο ζήτηµα της δροµολόγησης. 2.1.2 Χαρακτηριστικά στους αλγορίθµους δροµολόγησης Σε αυτό τον υπότιτλο θα παραθέσουµε συνοπτικά τα προβλήµατα που πρέπει να αντιµετωπίσει και τα επιθυµητά χαρακτηριστικά ενός αλγορίθµου δροµολόγησης. Θα αρχίσουµε εκθέτοντας τις ιδιαιτερότητες που υπάρχουν στα ad hoc: Απουσία σταθερής υποδοµής. Η δροµολόγηση µπορεί να γίνει µόνο µε ενδιάµεσα βήµατα. Λόγω της κινητικότητας η τοπολογία του δικτύου µπορεί να αλλάζει πολύ συχνά. Συνήθως περιορισµένο εύρος ζώνης. Μεγάλη πιθανότητα εσφαλµένης µετάδοσης λόγω της ασύρµατης επικοινωνίας. Αυξηµένη πιθανότητα δηµιουργίας collision. Αυστηροί περιορισµοί στην κατανάλωση ενέργειας (συνήθως οι κινητοί κόµβοι λειτουργούν µε µπαταρίες). Ζητήµατα ασφάλειας στην ασύρµατη µετάδοση. Όλα αυτά τα χαρακτηριστικά καθιστούν εξαιρετικά δύσκολη την δροµολόγηση σε ένα ad hoc δίκτυο, για αυτό και δεν υπάρχει (µέχρι στιγµής) κάποιος αλγόριθµός που να επιτυγχάνει την ικανοποίηση όλων αυτών των παραγόντων. Ωστόσο µπορούµε να εξάγουµε κάποιες βασικές απαιτήσεις για το πρωτόκολλο δροµολόγησης: Πρέπει να είναι κατανεµηµένο, διότι απουσιάζει κεντρική υποδοµή. Πρέπει να λαµβάνει αποφάσεις από την πληροφορία που υπάρχει στην «γειτονιά» των κόµβων, διότι λόγω της µεταβλητότητας της τοπολογίας του δικτύου είναι αδύνατη η διάτρεξη µεγάλης περιοχής του. Πρέπει να γίνεται αποδοτική χρήση της ενέργειας και του bandwidth των κόµβων. Λιβαθινός Νικόλαος 403 Σελίδα 25 από 80

Οι σύνδεσµοι µεταξύ των κόµβων γενικά πρέπει να θεωρούνται µονής κατεύθυνσης. Πρέπει να δηµιουργεί µονοπάτια που να συγκλίνουν στο συντοµότερο µονοπάτι. εν πρέπει να δηµιουργούνται βρόχοι (loops) στην δροµολόγηση. Πρέπει να ελαχιστοποιείται η επιβάρυνση που προκαλείται στο δίκτυο από µηνύµατα ελέγχου (µηνύµατα που χρησιµοποιεί το πρωτόκολλο για την εσωτερική λειτουργία του). Πρέπει να αντιµετωπίζει διάφορα πρότυπα κινητικότητας των κόµβων. Πρέπει να αντιµετωπίζει ζητήµατα ασφάλειας στην ασύρµατη µετάδοση των δεδοµένων. Επίσης µπορούµε να ορίσουµε και κάποια επιπρόσθετα επιθυµητά χαρακτηριστικά που θα βελτίωναν σηµαντικά την δροµολόγηση, όπως: ιαµοιρασµός των προς µετάδοση δεδοµένων και δροµολόγηση του κάθε τµήµατος από παράλληλα µονοπάτια, ώστε να κατανέµεται καλύτερα η επιβάρυνση στο δίκτυο. Πρόβλεψη της κατάστασης του δικτύου από το ιστορικό γειτονικότητας του κάθε κόµβου. Με όλα αυτά υπόψη θα µπορούσαµε να θεωρήσουµε ότι η εύρεση ενός αλγορίθµου δροµολόγησης είναι ένας συµβιβασµός µεταξύ 4 βασικών παραγόντων, 4 πόρων του συστήµατος. Του bandwidth του κάθε κόµβου, της επεξεργαστικής ισχύς, της µνήµης τους και της ενέργειάς του (µπαταρίας). ηλαδή έχουµε µια αλληλεπίδραση όπως περιγράφεται από το ακόλουθο σχήµα: ιάγραµµα 1: Βασικοί πόροι ενός κόµβου Εποµένως για να αναπτύξουµε έναν νέο αλγόριθµο δροµολόγησης πρέπει πρώτα να αποφασίσουµε για τη βαρύτητα που θα δώσουµε σε καθέναν από αυτούς τους παράγοντες. Λιβαθινός Νικόλαος 403 Σελίδα 26 από 80

2.2 Κατηγοριοποίηση των αλγορίθµων δροµολόγησης Στη συνέχεια θα παρουσιάσουµε τις βασικές κατηγορίες, ή αλλιώς τις βασικές ιδέες, που έχουν προταθεί για δροµολόγηση στα ad hoc δίκτυα. Γενικά θα µπορούσαµε να κατατάξουµε τους αλγορίθµους µε βάση δύο διαφορετικά κριτήρια. Το πρώτο κριτήριο είναι αν αυτοί είναι αναγκαστικοί (compulsory) ή µη αναγκαστικοί (non compulsory). Οι αναγκαστικοί αλγόριθµοι επιβάλλουν στους κόµβους να εκτελούν συγκεκριµένες κινήσεις για να εξασφαλίσουν τη σωστή λειτουργία του πρωτοκόλλου. Το δεύτερο είναι αν είναι προνοητικοί (proactive) ή αντιδραστικοί (reactive). Οι proactive αλγόριθµοι προσπαθούν να δηµιουργήσουν εκ των προτέρων τις προϋποθέσεις που θα τους επιτρέψουν αργότερα να κάνουν τη δροµολόγηση, ενώ οι reactive αρχίζουν να επιλύουν το πρόβληµα τη στιγµή που θα εµφανιστεί. Συνήθως οι proactive αλγόριθµοι βασίζονται σε πίνακες δροµολόγησης, ενώ οι reactive σε δροµολόγηση πηγής (source driven). Ένα άλλο κριτήριο ταξινόµησης των αλγορίθµων είναι το πώς ορίζεται η καλύτερη διαδροµή. Στα παραδείγµατα που έχουµε παρουσιάσει έως τώρα, θεωρούµε καλύτερη τη διαδροµή εκείνη που έχει τα λιγότερα hops. Ωστόσο άλλοι αλγόριθµοι ενδιαφέρονται να χρησιµοποιούν τα πιο σταθερά links, όπως προκύπτει από το ιστορικό γειτονικότητας ενός κόµβου ή τα links που έχουν το πιο ισχυρό σήµα (link state algorithms). Τέλος µπορούµε να κατατάξουµε τους αλγορίθµους σε ιεραρχικούς και µη ιεραρχικούς. Οι ιεραρχικοί αλγόριθµοι κατανείµουν τους κόµβους του δικτύου σε µια ιεραρχία επιπέδων. Οι κόµβοι που ανήκουν στα υψηλότερα επίπεδα ιεραρχίας λειτουργούν σαν base stations για την γειτονιά που βρίσκονται και έχουν αυξηµένες αρµοδιότητες δροµολόγησης. 2.3 Επιλεγµένοι αλγόριθµοι δροµολόγησης στα ad hoc Στη συνέχεια θα παρουσιάσουµε επιλεκτικά 3 αλγορίθµους δροµολόγησης. Τους DSDV, AODV και DSR. Ο DSDV ανήκει στην κατηγορία των proactive αλγορίθµων, ενώ οι AODV και DSR στους reactive. 2.3.1 Destination Sequenced Distance-Vector (DSDV) Ο DSDV δροµολογεί βασιζόµενος σε πίνακες δροµολόγησης. Κάθε κόµβος διαθέτει ένα πίνακα µε κόµβους προορισµούς και τα hops που πρέπει να ακολουθήσει για να φτάσει στον καθένα. Επίσης κάθε εγγραφή του πίνακα δροµολόγησης έχει έναν ακολουθιακό αριθµό που την προσδιορίζει µοναδικά. Λιβαθινός Νικόλαος 403 Σελίδα 27 από 80

Προκειµένου να είναι εφικτή η δροµολόγηση πρέπει οι κόµβοι να έχουν ενηµερωµένους τους πίνακες δροµολόγησής τους. Κατά συνέπεια απαιτείται η περιοδική ενηµέρωση των πινάκων, µια διαδικασία µε σηµαντική επιβάρυνση για το δίκτυο. Έτσι ο DSDV χρησιµοποιεί δύο τύπους ενηµερώσεων, την πλήρη ενηµέρωση (full dump) και την αυξητική (incremental) ενηµέρωση. Τις περισσότερες φορές χρησιµοποιείται η δεύτερη που απλά ενηµερώνει τις αλλαγές που συνέβησαν από το προηγούµενο full dump, έτσι περιορίζεται η επιβάρυνση. Για την επιλογή της διαδροµής προς τον κόµβο προορισµού, ο DSDV χρησιµοποιεί δύο κριτήρια. Τον χρόνο ανακάλυψης της διαδροµής και το µήκος της σε hops. Ο ακολουθιακός αριθµός της κάθε εγγραφής (διαδροµής) διακρίνει τις νεότερες (µεγαλύτερος αριθµός) από τις αρχαιότερες (µικρότερος αριθµός). Στην περίπτωση που σε έναν κόµβο φθάσουν διαδροµές µε τον ίδιο ακολουθιακό αριθµό θα επιλέξει εκείνη µε το µικρότερο µήκος. Τέλος πρέπει να αναφέρουµε ότι ο DSDV λαµβάνει υπόψη του τον χρόνο που απαιτείται προκειµένου να σταθεροποιηθεί µια διαδροµή. Οι κόµβοι καθυστερούν την µετάδοση µιας διαδροµής έως ότου παρέλθει ο χρόνος σταθεροποίησης, µε αυτόν τον τρόπο µειώνεται η επιβάρυνση στο δίκτυο καθώς αποφεύγεται η επαναµετάδοση καλύτερων διαδροµών που βρίσκονταν εντός πολύ σύντοµου χρονικού διαστήµατος (υποτίθεται µέχρι να σταθεροποιηθεί το δίκτυο). 2.3.2 Ad hoc on Demand Distance Vector (AODV) Ο AODV αποτελεί µια βελτίωση στον DSDV. Η ιδέα είναι να απαλλαχτούµε από την δαπανηρή διαδικασία της συντήρησης των πινάκων δροµολόγησης και οι διαδροµές να ανακαλύπτονται όταν ζητούνται. Για το σκοπό αυτό χρησιµοποιείται η τεχνική της πληµµύρας όπως περιγράφηκε στο πρώτο κεφάλαιο. Αρχικά ο κάθε κόµβος θα πρέπει να γνωρίζει τους άµεσους γείτονές του. Έτσι περιοδικά αποστέλλονται µηνύµατα χαιρετισµού (hello messages), ώστε να διατηρούνται ενηµερωµένοι οι πίνακες γειτνίασης των κόµβων. Για να δηµιουργηθεί µια διαδροµή προς τον προορισµό, η αφετηρία δηµιουργεί πακέτα αίτησης διαδροµής (route request RREQ). Κάθε κόµβος που παραλαµβάνει ένα RREQ πακέτο διατηρεί έναν πίσω-δείκτη προς τον κόµβο που του το απέστειλε και το προωθεί στους γείτονές του εφόσον δεν γνωρίζει τον προορισµό (πληµµύρα). Όταν τελικά το πακέτο φθάσει στον κόµβο προορισµό, αυτός θα δηµιουργήσει ένα πακέτο απάντησης διαδροµής (route reply RREP). Κατόπιν ακολουθώντας τους πίσω-δείκτες η απάντηση θα φθάσει στην αφετηρία και ταυτόχρονα οι ενδιάµεσοι κόµβοι θα δηµιουργήσουν τους εµπρός-δείκτες (προς τον προορισµό) για την µετάδοση των data πακέτων. Προκειµένου να αποφευχθεί η επαναπροώθηση του ίδιου πακέτου από έναν ενδιάµεσο κόµβο, τα πακέτα προσδιορίζονται µονοσήµαντα µέσω της IP διεύθυνσης της αφετηρίας και ενός id για την συγκεκριµένη ανακάλυψη διαδροµής. Φυσικά για να λειτουργήσει όλο αυτό το σχήµα θα πρέπει οι σύνδεσµοι να είναι διπλής κατεύθυνσης. Σηµειώνεται ότι οι δείκτες που χρησιµοποιούνται παραµένουν ενεργοί µόνο όσο διαρκεί η µετάδοση των δεδοµένων, µετά την παρέλευση ενός χρονικού διαστήµατος από το τέλος της µετάδοσης Λιβαθινός Νικόλαος 403 Σελίδα 28 από 80

διαγράφονται. Επίσης αν σε κάποιον κόµβο δεν υπάρχει η κατάλληλη καταχώριση στον πίνακα δροµολόγησής του, το RREQ πακέτο απορρίπτεται και αποστέλλεται στην αφετηρία ένα µήνυµα λάθους RRER. 2.3.3 Dynamic Source Routing (DSR) Ο DSR βελτιώνει ακόµη περισσότερο την ιδέα που χρησιµοποιείται στον AODV. Η διαφοροποίηση έγκειται στον τρόπο που χρησιµοποιούνται οι πίνακες δροµολόγησης (εµπρός/πίσω δείκτες). Έτσι αντί αυτές οι πληροφορίες να διαγράφονται µετά από κάθε επικοινωνία, διατηρούνται αποθηκευµένες στους ενδιάµεσους κόµβους σε µια προσωρινή µνήµη διαδροµών (route cache), για ένα συγκεκριµένο χρονικό διάστηµα. Με αυτόν τον τρόπο ο κάθε κόµβος έχει έναν πίνακα δροµολόγησης προς διάφορους προορισµούς τοπικά στην δική του cache, για όσο διάστηµα είναι ενεργή η κάθε εγγραφή. Το πλεονέκτηµα της cache είναι ότι µπορεί έτσι να συντοµεύσει τη διαδικασία αναζήτησης. Στον AODV ένα RREQ πακέτο πρέπει να φθάσει έως και τον τελικό προορισµό για να αποσταλεί το RREP στην αφετηρία. Τώρα όµως αν ένας ενδιάµεσος κόµβος διαθέτει µια εγγραφή στην cache προς τον συγκεκριµένο προορισµό, τότε δεν χρειάζεται να συνεχιστεί η αναζήτηση εφόσον γνωρίζουµε ήδη το τµήµα της διαδροµής από τον κόµβο αυτόν έως τον προορισµό. Έτσι επιστρέφεται άµεσα ένα RREP στην αφετηρία µε τη διαδροµή προς τον προορισµό. Αντιλαµβανόµαστε πως µε αυτό το σχήµα, µπορεί ακόµα και η ίδια η αφετηρία να γνωρίζει ένα δροµολόγιο προς τον προορισµό, για αυτό και η τεχνική ονοµάζεται δροµολόγηση πηγής (source routing). Προκειµένου να εκµεταλλευτούµε την cache των ενδιαµέσων κόµβων, κάθε RREQ πακέτο διατηρεί µια λίστα µε τα ενδιάµεσα βήµατα µέχρι τον τελικό προορισµό. Οι κόµβοι που γνωρίζουν πώς να δροµολογήσουν το πακέτο στον προορισµό του απλά αντιγράφουν το τµήµα της διαδροµής που γνωρίζουν στο τέλος της λίστας. Επίσης κάθε πακέτο προσδιορίζεται µοναδικά, έτσι ώστε αν ένας κόµβος το είχε παραλάβει και νωρίτερα να το απορρίπτει. Σχετικά µε την διαδικασία της επιστροφής στην αφετηρία RREP, o DSR υποστηρίζει τόσο τα συµµετρικά όσο και τα ασύµµετρα δίκτυα. Στην περίπτωση που οι σύνδεσµοι είναι µονής κατεύθυνσης ο προορισµός αρχικοποιεί µια αντίστοιχη διαδικασία αναζήτησης της αφετηρίας, διαφορετικά χρησιµοποιείται το µονοπάτι που ανακαλύφθηκε προς την αντίθετη κατεύθυνση. Μια ακόµη λειτουργία του DSR είναι η συντήρηση των δροµολογίων cache (route maintenance). Συγκεκριµένα όταν το data link επίπεδο του δικτύου εντοπίσει ένα σφάλµα µετάδοσης, τότε επιστρέφεται στην αφετηρία ένα µήνυµα λάθους RRER µε πληροφορία για το συγκεκριµένο hop που απέτυχε. Έτσι η αφετηρία µπορεί να εντοπίσει στην cache της τον κόµβο που δεν αποκρίνεται και να διαγράψει τα τµήµατα των διαδροµών από εκεί και κάτω. Τέλος µια ακόµα έξυπνη τεχνική του DSR είναι τα passive acknowledgements. Η ιδέα στηρίζεται στην εκµετάλλευση της broadcast φύσης του ασύρµατου δικτύου. Έστω ότι έχουµε µια ακολουθία από ενδιάµεσους κόµβους ->s1->s2->s3-> και έστω ότι είµαστε στην φάση που ο s1 προωθεί ένα RREQ πακέτο στον s2. Ο s1 γνωρίζει ότι ο s2 δεν είναι ο τελικός προορισµός, εποµένως αναµένει ότι Λιβαθινός Νικόλαος 403 Σελίδα 29 από 80

και εκείνος µε τη σειρά του θα το προωθήσει σε έναν επόµενο κόµβο (τον s3). Έτσι όταν ο s2 προωθήσει το πακέτο στον s3, το µήνυµα θα το «ακούσει» και ο s1. Έτσι ο s1 µπορεί να λάβει µια επιβεβαίωση για την προώθηση του πακέτου. 2.4 Συγκρίσεις αλγορίθµων Συµπεράσµατα Σε αυτό το κεφάλαιο εξετάσαµε 3 αλγορίθµους δροµολόγησης για ad hoc δίκτυα, τον DSDV, AODV, DSR. Θα συγκρίνουµε τις διαφορές µεταξύ proactive reactive πρωτοκόλλων και στη συνέχεια µεταξύ AODV και DSR. Αρχικά βλέπουµε µια θεµελιώδη διαφορά στην συµπεριφορά των proactive από τα reactive πρωτόκολλα. Proactive αλγόριθµοι όπως ο DSDV επιτυγχάνουν µικρότερη επιβάρυνση στο δίκτυο κατά τη φάση της αναζήτησης εφόσον η πληροφορία για τη δροµολόγηση υπάρχει ήδη αποθηκευµένη στους κόµβους, ωστόσο επιβαρύνουν το δίκτυο µε τα update µηνύµατα που απαιτούνται για την δηµιουργία / συντήρηση των πινάκων τους. Αυτό έχει επίσης ως αποτέλεσµα την αυξηµένη κατανάλωση ενέργειας. Από την άλλη πλευρά τα reactive πρωτόκολλα δηµιουργούν µεγαλύτερη επιβάρυνση κατά την αναζήτηση, αλλά αποφεύγουν την άσκοπη επιβάρυνση στο δίκτυο και την κατανάλωση ενέργειας καθώς αποφεύγουν οποιαδήποτε προετοιµασία. Σχετικά µε τις διαφορές µεταξύ των AODV DSR, παρατηρούµε ότι ο AODV είναι πιο απλός και τα µηνύµατά του µικρότερα σε µέγεθος, εφόσον περιέχουν µόνο το id του προορισµού και όχι όλων των ενδιάµεσων κόµβων. Ο DSR είναι πιο έξυπνος, χειρίζεται την πληροφορία που έχει ανακαλυφθεί µε πιο αποδοτικό τρόπο, αλλά παρουσιάζει µεγαλύτερες απαιτήσεις σε µνήµη στους κόµβους. Σε γενικές γραµµές ο DSR είναι αρκετά ευέλικτος για να διαχειρίζεται µεγαλύτερα µεγέθη δικτύων και περιορίζει την άσκοπη κατανάλωση bandwidth και ενέργειας. Επίσης µπορεί να λειτουργήσει τόσο σε δίκτυα µε συνδέσµους µιας κατεύθυνσης όσο και σε δίκτυα µε αµφίδροµους συνδέσµους. Εποµένως καταλήγουµε στο συµπέρασµα πως δεν µπορούµε να βρούµε έναν απόλυτο αλγόριθµο που να ικανοποιεί όλες τις απαιτήσεις µας. Η τελική απόδοση του κάθε αλγορίθµου εξαρτάται από τα χαρακτηριστικά του κάθε ad hoc δικτύου, από το φορτίο του και από την κινητικότητα των κόµβων. Λιβαθινός Νικόλαος 403 Σελίδα 30 από 80

3 Κύρια σηµεία από peer to peer (p2p) δίκτυα Όπως αναφέρθηκε και στην εισαγωγή της εργασίας, µας ενδιαφέρει να δούµε πως λειτουργούν διάφορα πρωτόκολλα από τα p2p δίκτυα λόγω των οµοιοτήτων που παρουσιάζουν µε τα ad hoc και λόγω των προηγµένων αλγορίθµων δροµολόγησης που χρησιµοποιούν. Στο κεφάλαιο αυτό θα εξετάσουµε την γενική φιλοσοφία που ακολουθούν τα p2p πρωτόκολλα, θα τα κατηγοριοποιήσουµε και θα εξετάσουµε επιλεκτικά ορισµένα από αυτά. 3.1 Γενικές πληροφορίες για τα p2p 3.1.1 Ιστορικό των p2p Στην σηµερινή του µορφή, το Internet θα µπορούσε να θεωρηθεί ως ένα σύνολο από servers που έχουν αποθηκευµένη την πληροφορία, και ένα σύνολο από clients που συνδέονται στους servers για να καταναλώσουν αυτή την πληροφορία. Ο βασικός στόχος των p2p δικτύων είναι να δώσουν τη δυνατότητα στους χρήστες του internet να επικοινωνούν µεταξύ τους άµεσα, και όχι µέσω ενός κεντρικού server. Ένας τέτοιος υπολογιστής θα ενσωµατώνει το ρόλο τόσο του server όσο και του client 5. Συνήθως ο τελικός στόχος ενός p2p δικτύου είναι η κοινόχρηστη διαµοίραση κάποιου πόρου, όπως αποθηκευτικός χώρος στον δίσκο, αρχεία, επεξεργαστική ισχύς, bandwidth κ.ά. 5 Μερικές φορές αυτός ο συνδυασµός server και client αναφέρεται ως servent. Λιβαθινός Νικόλαος 403 Σελίδα 31 από 80

Με αυτό το µοντέλο υπόψη άρχισαν σταδιακά να εµφανίζονται διάφορα συστήµατα που είχαν ως βασικό τους στόχο την διαµοίραση αρχείων µεταξύ των χρηστών του δικτύου. Ο κάθε χρήστης θα µπορούσε να συνεισφέρει ένα αρχείο κάνοντάς το διαθέσιµο σε όλους τους υπόλοιπους χρήστες, καθώς και να κατεβάσει από το δίκτυο αρχεία άλλων. Εφόσον λοιπόν το συνολικό περιεχόµενο του δικτύου είναι κατανεµηµένο στο σύνολο των χρηστών του, καθίσταται αναγκαία η ύπαρξη ενός αλγορίθµου που θα εντοπίζει τον χρήστη που έχει την ζητούµενη πληροφορία και θα επιστρέφει την διεύθυνσή του σε αυτόν που την αναζητά. Στη συνέχεια ο κόµβος που ζητά την πληροφορία µπορεί να συνάψει µια άµεση σύνδεση µε τον κόµβο που την κατέχει, χρησιµοποιώντας το υποκείµενο δίκτυο (internet). Ωστόσο πολλές φορές η ύπαρξη περιορισµών στην δικτυακή σύνδεση (π.χ. firewalls, NAT), καθιστά αδύνατη την άµεση επικοινωνία των δύο κόµβων. Το p2p πρωτόκολλο µπορεί να διαχειριστεί αυτή την κατάσταση αναθέτοντας σε τρίτους κόµβους, που έχουν τη δυνατότητα σύναψης άµεσων συνδέσεων, να λειτουργήσουν ως µεσολαβητές. 3.1.2 Κατηγορίες p2p πρωτοκόλλων Τα αρχικά p2p δίκτυα, κατάφεραν να ξεπεράσουν την κεντρικοποιηµένη λογική του client server και να υλοποιήσουν έναν κατανεµηµένο αλγόριθµο που δουλεύει στην πράξη. Ωστόσο παρέµειναν εντελώς αδόµητα, επρόκειτο απλώς για ένα σύνολο υπολογιστών που ο καθένας διατηρούσε δείκτες προς άλλους, που λογίζονταν ως γείτονές του. Στη συνέχεια η εντοπισµός της πληροφορίας γινόταν χρησιµοποιώντας έναν αλγόριθµο πληµµύρας, παρόµοιο µε αυτόν που εξετάσαµε στα ad hoc δίκτυα. Η επόµενη γενιά πρωτοκόλλων, οργανώνει το p2p δίκτυο σε µια τεράστια κατανεµηµένη δοµή. Η δοµή αυτή συνήθως είναι ένας κατανεµηµένος hash πίνακας (distributed hash table DHT). Στα DHT κάθε κόµβος του p2p αναγνωρίζεται από ένα µοναδικό αναγνωριστικό (id), που το λαµβάνει κατά την αρχική φάση της σύνδεσής του µε το δίκτυο (join), σύµφωνα µε το εκάστοτε πρωτόκολλο. Επίσης κάθε πόρος (resource) που διαµοιράζεται στο δίκτυο προσδιορίζεται από ένα µοναδικό κλειδί. Με αυτό τον τρόπο η αναζήτηση ενός πόρου ανάγεται στην αναζήτηση του αντίστοιχου κλειδιού. Η διαδικασία αναζήτησης καθοδηγείται από τα id των κόµβων και η µετάβαση από κόµβο σε κόµβο γίνεται µέσω πινάκων δροµολόγησης που διατηρεί ο κάθε κόµβος. Οι εγγραφές του πίνακα δροµολόγησης υπαγορεύονται από το εκάστοτε πρωτόκολλο και περιλαµβάνουν το id και την IP διεύθυνση του κόµβου. Συνήθως η αναζήτηση κοστίζει ένα λογαριθµικό πλήθος βηµάτων σε σχέση µε το µέγεθος του δικτύου. Στην βιβλιογραφία έχουν εµφανιστεί διάφοροι τύποι DHT συστηµάτων, µερικά βασίζονται σε κύκλους (π.χ. Chord, Koorde), άλλα σε πλέγµατα plaxton (π.χ. tapestry), άλλα σε κατανεµηµένα tries (p-grid, kademlia), άλλα σε υπερκύβους (π.χ. CAN), ενώ άλλα υλοποιούν πιο σύνθετες δοµές (π.χ. Viceroy, Cycloid). Μια υπο-κατηγορία DHT δικτύων είναι τα p2p που εξασφαλίζουν έναν σταθερό πλήθος γειτόνων ανά κόµβο (π.χ. Viceroy, Koorde, Broose, Cycloid). Μια ενδιαφέρουσα τεχνική που χρησιµοποιείται µερικές φορές ώστε να επιτευχθεί σταθερό πλήθος συνδέσµων είναι τα de Bruijn γραφήµατα. Λιβαθινός Νικόλαος 403 Σελίδα 32 από 80

3.2 Αδόµητα p2p δίκτυα - Gnutella Σε αυτόν τον υπότιτλο θα παρουσιάσουµε το αντιπροσωπευτικότερο παράδειγµα αδόµητου p2p δικτύου, το Gnutella. To Gnutella φτιάχτηκε ώστε να επιτρέπει σε χρήστες του Internet να ανταλλάσουν αρχεία µεταξύ τους. Το Gnutella διαθέτει 5 βασικούς τύπους µηνυµάτων: Ping. ήλωση διαθεσιµότητας και αναζήτηση ενός άλλου κόµβου. Pong. Απάντηση σε ένα ping µήνυµα. Query. Αίτηση αναζήτησης. QueryHit. Απόκριση όταν ένας κόµβος έχει την πληροφορία που ζητήθηκε. Push. Αίτηση download για κόµβους που βρίσκονται πίσω από firewall. Κάθε µήνυµα που µεταφέρεται από το Gnutella διαθέτει ένα πεδίο χρόνου ζωής (Time To Live TTL), που αρχικοποιείται κατά την δηµιουργία του µηνύµατος σε µια αρχική τιµή. Όταν ένας κόµβος παραλάβει ένα µήνυµα ελέγχει αν το βλέπει για πρώτη φορά και διαφορετικά το απορρίπτει, έτσι αποφεύγονται οι βρόχοι (loops). Επίσης το απορρίπτει αν το TTL πεδίο είναι µηδέν, διαφορετικά µειώνει το πεδίο κατά 1 και εξυπηρετεί το µήνυµα. Σε ένα τυπικό σενάριο λειτουργίας ένας χρήστης S πρέπει πρώτα να συνδεθεί στο δίκτυο, για αυτό απαιτείται να γνωρίζει την διεύθυνση ενός ήδη συνδεδεµένου κόµβου. Κατόπιν όταν ο S θέλει να αναζητήσει µια πληροφορία, αποστέλλει ένα query µήνυµα σε όλους τους γείτονές του, αυτοί µε τη σειρά τους προωθούν το µήνυµα στους δικούς τους γείτονες κ.ό.κ. Όταν τελικά βρεθεί ο κόµβος D που έχει την ζητούµενη πληροφορία απαντάει στον S µε ένα QueryHit µήνυµα που περιέχει την IP διεύθυνση του D. Κατόπιν ο S µπορεί να αρχικοποιήσει µια άµεση επικοινωνία µε τον D χρησιµοποιώντας ένα HTTP GET request. Στην περίπτωση που ο D βρίσκεται πίσω από firewall και ο S δεν µπορεί να δηµιουργήσει µια απ ευθείας σύνδεση µε τον D, χρησιµοποιούνται τα µηνύµατα Push. O S µπορεί να δροµολογήσει µια Push αίτηση για τον D. Όταν ο D παραλάβει το Push, θα προσπαθήσει να αποστείλει εκείνος το αρχείο στον S. Στην περίπτωση που και αυτή η προσπάθεια αποτύχει, αυτό σηµαίνει πως και ο ίδιος ο S βρίσκεται πίσω από firewall, οπότε η σύνδεση των S, D δεν είναι εφικτή. Τέλος είναι ενδιαφέρον να δώσουµε µια εκτίµηση για το κόστος της πληµµύρας στο Gnutella. Αν υποθέσουµε µια τυπική τιµή 7 για το TTL πεδίο, και ότι κατά µέσο όρο το κάθε µήνυµα προωθείται σε C κόµβους (δηλαδή ο καθένας το προωθεί σε άλλους C-1), τότε το συνολικό πλήθος µηνυµάτων που θα δηµιουργηθεί είναι: TTL i 2 * C *( C 1) = 26240 i= 0 Λιβαθινός Νικόλαος 403 Σελίδα 33 από 80

Πειραµατικές µετρήσεις έχουν δείξει ότι σε πραγµατικές συνθήκες η επιβάρυνση φθάνει τα 3.5Mbps. 3.3 DHT πρωτόκολλα P-Grid Σε αυτόν τον υπότιτλο θα παρουσιάσουµε ενδεικτικά ένα από τα πιο αξιόλογα DHT συστήµατα, το P- Grid. Η παρουσίασή του θα βοηθήσει τον αναγνώστη να πάρει µια ιδέα για την λογική που χρησιµοποιείται στα DHT συστήµατα. Το P-Grid δοµεί τους κόµβους σε ένα φυλλοπροσανατολιζόµενο δυαδικό δένδρο, όπως αυτό που φαίνεται στο ακόλουθο σχήµα: Σχήµα 12: Η δοµή του P-Grid Στα φύλλα του δένδρου βρίσκονται οι κόµβοι. Το id του κάθε κόµβου χτίζεται καθώς διατρέχουµε το µονοπάτι από τη ρίζα ως αυτόν, προσθέτοντας το 0 για ένα αριστερό σκέλος και το 1 για ένα δεξιό σκέλος. Για παράδειγµα ο κόµβος 4 έχει το id 10. Το id του κάθε κόµβου λειτουργεί ως prefix για τα keys που είναι υπεύθυνος να αποθηκεύσει. Επίσης για κάθε bit στο µονοπάτι του, ο κάθε κόµβος πρέπει να διατηρεί ένα σύνδεσµο προς την άλλη πλευρά του δένδρου στο ίδιο επίπεδο. Έτσι αν ένας κόµβος λάβει αίτηση για ένα κλειδί που δεν το έχει τοπικά, πρέπει να προωθήσει το µήνυµα στον πλησιέστερο κόµβο. Για παράδειγµα ο κόµβος 1 προωθεί τα µηνύµατα που αρχίζουν από 1 στον κόµβο 3. Αν όµως λάβει ένα µήνυµα που αρχίζει µε 00 τότε πρέπει να το εξυπηρετήσει ο ίδιος. Τέλος ένα µήνυµα που αρχίζει από 01 το προωθεί στον 2. Ο τρόπος που είναι κατασκευασµένο το P-Grid εγγυάται ότι όλα τα µηνύµατα µπορούν να φθάσουν στον τελικό τους προορισµό (τον κόµβο που έχει το αντίστοιχο κλειδί), ανεξάρτητα από τον αρχικό κόµβο αφετηρία. Το επόµενο σχήµα παρουσιάζει αυτή την ιδιότητα: Λιβαθινός Νικόλαος 403 Σελίδα 34 από 80