SlideShare una empresa de Scribd logo
1 de 58
Descargar para leer sin conexión
ΑΤΕΙ ΜΕΣΟΛΟΓΓΙΟΥ
ΤΜΗΜΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ &
ΔΙΚΤΥΩΝ
ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ
«Σύγχρονος κλιμακούμενος διαμοιρασμός
βίντεο πραγματικού χρόνου με διομότιμα
συστήματα»
Τσακανίκας Γιαννακόπουλος
Ιωάννης Ελευθέριος
ΝΑΥΠΑΚΤΟΣ ΟΚΤΩΒΡΙΟΣ 2010
1
2
Ευχαριστίες
Θεωρούμε ειλικρινή υποχρέωση μας, να
εκφράσουμε τις ευχαριστίες μας, στον
επόπτη και καθηγητή μας Δρ. Νικόλαο
Ευθιμιόπουλο, για την ευκαιρία που μας
έδωσε να ασχοληθούμε με ένα τόσο
ενδιαφέρον θέμα το οποίο μας δίδαξε πόσο
αναγκαίο είναι το επάγγελμα μας καθώς
επίσης και για την πολύτιμη καθοδήγηση
και βοήθεια που μας προσέφερε όλο αυτό το
διάστημα, για την σωστή εκπόνηση της
παρούσας πτυχιακής εργασίας.
Τέλος θα θέλαμε να ευχαριστήσουμε και
τους λοιπούς καθηγητές μας, καθώς
συνέβαλαν και εκείνοι με τις γνώσεις που
μας έχουν μεταλαμπαδεύσει κατά τη
διάρκεια της φοίτησης μας, στην σωστή
διαμόρφωση του εν λόγω θέματος.
3
4
Περίληψη
Περιληπτικά, στη συγκεκριμένη εργασία μελετήθηκε με την μέθοδο των
προσομοιώσεων ένα διομότιμο σύστημα σύγχρονου διαμοιρασμού αντικειμένων.
Επιπλέον μελετήθηκε το περιβάλλον και οι συνθήκες λειτουργίας ενός τέτοιου
συστήματος. καθώς και τα χαρακτηριστικά του. Αποτέλεσμα της μελέτης αυτής είναι
η εξαγωγή συμπερασμάτων σχετικά με τις απαιτήσεις που πρέπει να πληρούνται κατά
τη δημιουργία ενός διομότιμου συστήματος σύγχρονου διαμοιρασμού αντικειμένων
και οι τεχνικοί στόχοι που πρέπει αυτό να ικανοποιεί. Με αυτά τα κριτήρια βγήκαν
και συμπεράσματα για την εύρυθμη λειτουργία ενός τέτοιου συστήματος.
Για την λειτουργία ενός τέτοιου συστήματος ορίζονται οι ακόλουθες απαιτήσεις:
 Μεγιστοποίηση της χρήσης από το σύστημα του διαθέσιμου εύρους ζώνης των
συμμετεχόντων κόμβων. Φυσικά, οι κόμβοι έχουν ετερογενείς τιμές του
διαθέσιμου εύρους ζώνης και, μάλιστα, με μεγάλη διασπορά.
 Ελαχιστοποίηση της καθυστέρησης από τη στιγμή δημιουργίας ενός αντικειμένου
μέχρι τον διαμοιρασμό του σε κάθε συμμετέχοντα κόμβο.
 Ομοιόμορφη διαρκής κατανομή του συνολικού εύρους ζώνης του συστήματος
στους συμμετέχοντες κόμβους.
 Ανεκτικότητα του συστήματος στη δυναμική συμπεριφορά των χρηστών που
προκαλείται από εισόδους και εξόδους των χρηστών στο σύστημα σε μη
προκαθορισμένες χρονικές στιγμές.
 Ικανότητα κλιμάκωσης του συστήματος σε αριθμό συμμετεχόντων χρηστών κάτι
που επάγει την κατανεμημένη διαχείριση του συστήματος.
 Προσαρμογή του σχεδιαζόμενου συστήματος στην κίνηση του δικτύου στο οποίο
αυτό επικάθεται και ανεκτικότητά του στις μεταβολές του εύρους ζώνης των
συμμετεχόντων κόμβων.
 Ελαχιστοποίηση του φορτίου το οποίο εισάγει η λειτουργία του συστήματος στο
δίκτυο.
5
6
Abstract
Peer-to-peer live streaming is a network application, where peers (users)
contribute their upload bandwidth for the real time distribution of a video stream. The
objective of this work is the optimization of this data diffusion with a distributed and
self-organized architecture. Peers have heterogeneous and dynamic uploading
bandwidth. This fact combined with the characteristics of the topology of the
underlying network and the dynamic traffic conditions e.g. latency create a volatile
and complex environment for P2P live streaming delivery, which strongly affect the
success of a P2P system measured by a number of performance metrics.
The first important factor is the uploading bandwidth utilization that corresponds
to the ability of the system to exploit as much as possible of the overall uploading
bandwidth of the participating peers. The maximization of the upload bandwidth
utilization increases the video playback delivery rate and ensures the stability of the
distribution. Equally important parameter is the setup time defined as the time interval
between the generation of a block from an origin server and its delivery to every peer
in the system.
Furthermore, a P2P live streaming system has to remain stable and its delivery rate
must remain high in a dynamic environment, where peers arrive and depart
randomly. .Finally, fairness among nodes indicates the ability of the system to
distribute continuously and uniformly the aggregate uploading bandwidth to the
participating peers. This ensures that every peer will acquire a percentage of blocks
above a critical threshold for an “affordable” video playback regardless the aggregate
uploading bandwidth is not sufficient for the complete delivery of the video stream.
7
8
Περιγραφή Εργασίας
Για τη λειτουργία του προτεινόμενου συστήματος απαιτείται η δημιουργία ενός
γράφου διασύνδεσης. Ως γράφος διασύνδεσης ορίζεται ο γράφος που προκύπτει αν
κάθε κόμβος συνδεθεί με ένα μικρό υποσύνολο των συμμετεχόντων κόμβων που
ονομάζονται και γείτονες του κόμβου. Για την ικανοποίηση των προαναφερθεισών
απαιτήσεων. μελετήθηκαν τα χαρακτηριστικά του γράφου διασύνδεσης και προέκυψε
ότι κάθε κόμβος: α) πρέπει να έχει γείτονες με όσο το δυνατόν μικρότερη δικτυακή
καθυστέρηση μεταξύ τους, β) πρέπει να έχει αριθμό εξερχόμενων συνδέσεων
ανάλογο με το εύρος ζώνης του, γ) οι συνδέσεις αυτές πρέπει να κατανέμονται
ομοιόμορφα στους συμμετέχοντες κόμβους για την ικανοποίηση των αναγκών όλων
των κόμβων, δ) οι κόμβοι με σχετικά μεγάλο εύρος ζώνης πρέπει να ομαδοποιούνται
στο γράφο με σκοπό την γρήγορη αρχικά διάχυση του αντικειμένου και ε) ο γράφος
διασύνδεσης πρέπει να αναδιατάσσεται δυναμικά έτσι ώστε να διατηρεί τις ιδιότητες
αυτές στο δυναμικό δικτυακό περιβάλλον που επικάθεται και για δυναμική
συμπεριφορά των συμμετεχόντων κόμβων.
Για την ικανοποίηση αυτών των τεχνικών στόχων αναπτύχθηκε μία δομή του
γράφου που ικανοποιεί αυτά τα χαρακτηριστικά. Η βελτιστοποίηση του γράφου
γίνεται μέσω αλγορίθμων κατά την λειτουργία των οποίων κάθε κόμβος επιλέγει
περιοδικά ένα τυχαίο κόμβο ο οποίος είναι γείτονάς του στον γράφο διασύνδεσης.
Μεταξύ των δύο αυτών κόμβων εκτελείται ανακατανομή των γειτόνων τους με σκοπό
την εξισορρόπηση του αριθμού των γειτόνων που κάθε ένας από αυτούς διαθέτει.
αλλά και την ελαχιστοποίηση της μέσης καθυστέρησης που έχουν αθροιστικά οι
κόμβοι από τους γείτονές τους. Οι αλλαγές στον γράφο διασύνδεσης που προκύπτουν
από κάθε εκτέλεση του αλγορίθμου αυτού μεταβάλλουν και τους γείτονες ενός
υποσυνόλου κόμβων εκτός των δύο συμμετεχόντων στον αλγόριθμο εναλλαγής. Οι
αλλαγές αυτές επιφέρουν άλλες αλλαγές με την σειρά τους και έτσι προκύπτει τελικά
ένας γράφος διασύνδεσης όπου κάθε κόμβος έχει τον προκαθορισμένο αριθμό
γειτόνων και. παράλληλα. ελαχιστοποιείται το άθροισμα των μέσων δικτυακών
καθυστερήσεων που έχουν οι συμμετέχοντες κόμβοι με τους γείτονές τους.
9
Για τον διαμοιρασμό του αντικειμένου ο δημιουργός του το τεμαχίζει σε τεμάχια
(μπλοκ). Τα τεμάχια προωθούνται σε ένα πολύ μικρό σύνολο κόμβων και αποτελούν
τις λογικές μονάδες δεδομένων που ανταλλάσσονται μεταξύ των κόμβων. Σκοπός
είναι ο διαμοιρασμός του κάθε τεμαχίου σε κάθε κόμβο μέσα σε ένα προκαθορισμένο
χρονικό διάστημα. Για την ανταλλαγή τεμαχίων μεταξύ των γειτόνων του γράφου
διασύνδεσης του προς διαμοιρασμού αντικειμένου μεταξύ των συμμετεχόντων
κόμβων αναπτύχθηκε ένας Κατανεμημένος Χρονοπρογραμματιστής Ανταλλαγής
Τεμαχίων (ΚΧΑΤ).
Τεχνικοί στόχοι της ανάπτυξης του ΚΧΑΜ αποτέλεσαν α) ο χρονισμός
διαπραγμάτευσης αποστολής τεμαχίων μεταξύ κάθε αποστολέα και παραλήπτη, β) η
γρήγορη διάδοση πρόσφατα παραγόμενων τεμαχίων και σπάνιων σε μία γειτονία του
γράφου διασύνδεσης (τεμάχια που δημιουργήθηκαν μεταγενέστερα από άλλα
ευνοούνται από το χρονοπρογραμματιστή αρχικά για την επιτυχή και γρήγορη
διάδοσή τους σε μία κρίσιμη μάζα από κόμβους), γ) η τροφοδότηση όλων των
κόμβων με ομοιόμορφο και σταθερό ρυθμό, δ) η προτεραιότητα σε κόμβους με
μεγάλο εύρος ζώνης, ε) η αποφυγή μετάδοσης του ίδιου τεμαχίου από δύο αποστολείς
προς τον ίδιο παραλήπτη και στ) η αποφυγή μιας κατάστασης όπου αποστολέας και
παραλήπτης δεν έχουν τεμάχια προς ανταλλαγή.
Ο χρονισμός του ΚΧΑΜ που αναπτύχθηκε αποτελείται από τρείς φάσεις. Στην
πρώτη φάση που εκτελείται περιοδικά από κάθε αποστολέα εκδίδεται και
αποστέλλεται στους πιθανούς παραλήπτες ένα σύνολο από «κουπόνια» μεγέθους
ανάλογου με το εύρος ζώνης του αποστολέα. Στη δεύτερη φάση ο εκάστοτε
παραλήπτης ζητά προκαταβολικά ένα τεμάχιο στην περίπτωση που επιλεγεί από τον
αποστολέα για μετάδοση τεμαχίου. Στην τρίτη φάση ο αποστολέας επιλέγει τον
παραλήπτη ακριβώς πριν την μετάδοση κάθε τεμαχίου και αποστέλλει το τεμάχιο που
έχει ζητηθεί.
Ο αλγόριθμος ο οποίος προτείνεται για τη δημιουργία κουπονιών έχει ως στόχο
τη μεγιστοποίηση της χρήσης του εύρους ζώνης όλων των κόμβων και την
ικανοποίηση των αναγκών κάθε συμμετέχοντα κόμβου. Είναι αυτός που, στην ουσία,
καθορίζει τις ροές δεδομένων μεταξύ των γειτόνων του γράφου διασύνδεσης. Η
χρησιμότητά του αναδεικνύεται σε περιπτώσεις όπου ο ρυθμός αναπαραγωγής του
προς διαμοιρασμό αντικειμένου είναι παρόμοιος με το μέσο εύρος ζώνης του
10
συστήματος. Οι απαιτήσεις του αλγορίθμου ζήτησης τεμαχίων μοντελοποιούνται
μέσω της γραμμικής βελτιστοποίησης και διασφαλίζεται η γρήγορη και
αποτελεσματική διάχυση των τεμαχίων ελαχιστοποιώντας την ύπαρξη ανενεργών
πόρων. Τέλος, ο αλγόριθμος επιλογής γείτονα είναι αυτός που ρυθμίζει την
ομοιόμορφη κατανομή του εύρους ζώνης στους συμμετέχοντες κόμβους, αλλά και
δίνει προτεραιότητα στους κόμβους με μεγάλο εύρος ζώνης έτσι ώστε να επιτευχθεί ο
γρήγορος διαμοιρασμός κάθε τεμαχίου και η ελαχιστοποίηση της καθυστέρησης του
συστήματος.
11
12
ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ
ΚΕΦΑΛΑΙΟ 1 Διομότιμα Συστήματα Peer to Peer 17
1.1. Eισαγωγή.......................................................................................................17
1.2. Οι πρώτες εφαρμογές Peer to Peer................................................................18
1.3. Σύγχρονες εφαρμογές Peer to Peer................................................................19
1.3.1. Napster.......................................................................................................20
1.3.2. SETI@home..............................................................................................21
1.3.3. Mixmaster Remailers.................................................................................22
1.3.4. Publius.......................................................................................................23
1.3.5. Gnutella......................................................................................................24
1.4. Συμπεράσματα...............................................................................................26
ΚΕΦΑΛΑΙΟ 2. ΠΡΟΣΟΜΟΙΩΣΗ ΔΙΚΤΥΩΝ ΣΤΟ OPNET Modeller. 29
2.1. Μοντέλο Δικτύου...............................................................................................30
2.2. Μοντέλο Κόμβων..............................................................................................33
2.3. Μοντέλο Επεξεργασίας.....................................................................................35
ΚΕΦΑΛΑΙΟ 3. Σύστημα κατανεμημένου Διαμοιρασμού ΣΚΔ 40
3.1. Η κατάσταση σήμερα στα ΣΚΔ.........................................................................43
3.2.Γράφος διασύνδεσης για ΣΚΔ............................................................................48
3.2.1. Εσωτερικός αλγόριθμος κατανεμημένης βελτιστοποίησης (ΕΣ-ΚΑΒ).........52
3.2.2. Εξωτερικός αλγόριθμος κατανεμημένης βελτιστοποίησης (ΕΞ-ΚΑΒ).........57
3.3. Αρχιτεκτονική κατανεμημένου χρονοπρογραμματιστή....................................59
3.3.1. Αλγόριθμος δημιουργίας κουπονιών..............................................................61
3.3.2. Προ- ενεργός αλγόριθμος ζήτησης μπλοκ......................................................63
3.3.3 Αλγόριθμος επιλογής γείτονα..........................................................................64
3.3.4 Ρόλος των παραμέτρων του χρονοπρογραμματιστή.......................................66
3.4. Αξιολόγηση του συστήματος.............................................................................66
3.5 Ελαχιστοποίηση κίνησης μεταξύ παρόχων. …………………………………..81
3.6. Σύγκριση με άλλα συστήματα………………………………………………...83
3.7. Συνοπτικά συμπεράσματα.................................................................................84
ΚΕΦΑΛΑΙΟ 4. Ευρήματα και μελλοντική εργασία 86
13
4.1 Ευρήματα............................................................................................................86
4.2 Μελλοντική εργασία συναφών προβλημάτων...................................................89
ΒΙΒΛΙΟΓΡΑΦΙΑ 92
14
ΠΙΝΑΚΑΣ ΓΡΑΦΗΜΑΤΩΝ
ΓΠ 3.1: Ενέργεια των συμμετασχόντων κόμβων.........................................................74
ΓΠ 3.2: Ταχύτητα ελαχιστοποίησης της ενέργειας......................................................74
ΓΠ 3.3. Αθροιστική ΣΠΠ και αριθμός γειτόνων..........................................................75
ΓΠ 3.4 Αθροιστική ΣΠΠ με ποσοστό επιτυχημένης παραλαβής μπλοκ.....................75
ΓΠ 3.5. Αθροιστική ΣΠΠ και ποσοστό διπλών μπλοκ................................................76
ΓΠ 3.6. Αθροιστική ΣΠΠ και αριθμός εισερχόμενων αιτήσεων κόμβων....................76
ΓΠ 3.7. Ποσοστό Επιτυχημένων μεταδόσεων με συχνότητα αιτήσεων......................77
ΓΠ 3.8. Μέσο ποσοστό διπλών μπλοκ και συχνότητα αιτήσεων................................77
ΓΠ 3.9. Μέσο ποσοστό μπλοκ και αριθμός γειτόνων στο γράφο................................78
ΓΠ 3.10. Μέσο ποσοστό επιτυχημένων μπλοκ και αριθμός κόμβων..........................78
ΓΠ 3.11. Αθροιστική ΣΠΠ και ποσοστό επιτυχημένων μεταδόσεων..........................79
ΓΠ 3.12. Δυναμικές συνθήκες και ποσοστό επιτυχημένων μεταδόσεων.....................79
ΓΠ 3.13. Αθροιστική ΣΠΠ και ποσοστό διπλών μπλοκ..............................................80
ΓΠ 3.14. Αθροιστική ΣΠΠ και ποσοστό κίνησης μεταξύ παρόχων............................82
15
16
ΚΕΦΑΛΑΙΟ 1 Διομότιμα Συστήματα Peer to Peer
Στο κεφάλαιο 1 παρουσιάζουμε την ιστορία των Peer to Peer δικτύων, τον λόγο
δημιουργίας τους και το τι υπήρχε πριν από αυτά. Γίνεται αναφορά σε δημοφιλή Peer
to Peer συστήματα που είτε υπάρχουν και λειτουργούν τώρα είτε όχι, καθώς και στις
δυσκολίες που συνάντησαν κατά την διάρκεια της ζωής τους. Εξηγείται τέλος το πώς
αυτά τα συστήματα επηρέασαν την μετέπειτα πορεία και ανάπτυξη των δικτύων Peer
to Peer.
Eισαγωγή
Ο όρος Peer to Peer δημιουργήθηκε για να περιγράψει τα δίκτυα εκείνα τα οποία
έχουν την απαίτηση οι χρήστες τους να μοιράζονται με τα υπόλοιπα μέλη του δικτύου
τα αρχεία τους, τους υπολογιστικούς τους πόρους ή οτιδήποτε άλλο απαιτηθεί για
κάποιο κοινό σχέδιο.
Πριν δημιουργηθεί αυτός ο όρος και εφαρμοστεί στην πράξη, οι χρήστες του
Internet αλληλεπιδρούσαν μεταξύ τους μεν αλλά με δύσχρηστους και αργούς τρόπους
όπως πχ με τα mail και μέσω ομάδων συζητήσεων( Usenet, newsgroups). Μπορούσαν
να στείλουν ο ένας στον άλλο αρχεία χωρίς να γίνεται έλεγχος των συναλλαγών
αυτών από κάποιον κεντρικό φορέα. Δεν μπορούσαν όμως να συζητήσουν σε
πραγματικό χρόνο πάνω σε αυτά, να τα οργανώσουν σε κατηγορίες ή να σημειώνουν
σχόλια πάνω σε αυτά. Η εισαγωγή αυτού του τρόπου αλληλεπίδρασης στο διαδίκτυο
θα βελτίωνε τον τρόπο με τον οποίο οι χρήστες επικοινωνούσαν μεταξύ τους.
Αν και ο όρος αυτός υπάρχει εδώ και λίγο καιρό ο τρόπος λειτουργίας του και η
αρχιτεκτονική του υπάρχουν εδώ και πολλά χρόνια. Στην πραγματικότητα η
αρχιτεκτονική αυτή είναι η παλαιότερη στον κόσμο των επικοινωνιών. Τα τηλέφωνα
και το τηλεφωνικό δίκτυο είναι Peer to Peer.
Το ίδιο ισχύει και για την αρχική υλοποίηση του Usenet και για το IP routing. Το
τελευταίο μάλιστα ακόμα και τώρα είναι Peer to Peer αν και δημιουργήθηκαν πολύ
μεγαλύτερα σημεία πρόσβασης σε σχέση με τα υπόλοιπα. Το Internet στην αρχική
του μορφή, δηλ. στην μορφή που είχε μέχρι και την δεκαετία του 1980 ήταν και αυτό
Peer to Peer αφού κάθε τελικός κόμβος στο δίκτυο ήταν και Client και Server σε
αντίθεση με το ιεραρχικό μοντέλο που επικρατεί στην δημοφιλέστερη σημερινή
εφαρμογή(www).
Οι αρχικές εφαρμογές Peer to Peer δημιουργήθηκαν για ένα αποκλειστικά πολιτικό
σκοπό: Την αποφυγή της λογοκρισίας. Οι δημιουργοί των εφαρμογών αυτών
βοήθησαν πολύ στην ανάπτυξη του. Η συνέχεια ήταν το να διαχωριστεί το φυσικό
17
στρώμα από το εικονικό. Το να μπορεί κάποιος να διαβάσει αρχεία χωρίς να γνωρίζει
το Domain Name του υπολογιστή που περιέχει το αρχείο αυτό.
Λόγω της ευρύτατης διάδοσής τους( κυρίως στον τομές του File Sharing) έχει γίνει
προφανές ότι με την αποκεντρωμένη δομή τους τα δίκτυα p2p μπορούν να οδηγήσουν
σε επαναστατικές εφαρμογές και να χρησιμοποιηθούν σε περιπτώσεις όπου η
ιεραρχική προσέγγιση είναι απλά αδύνατη.
Οι πρώτες εφαρμογές Peer to Peer
Όπως αναφέρθηκε και παραπάνω οι πρώτες εφαρμογές Peer to Peer ήταν το
Usenet και το DNS.
Το Usenet εισήγαγε το μη κεντρικό σύστημα διαχείρισης που κατά μεγάλο βαθμό
υιοθέτησαν οι σύγχρονες εφαρμογές Peer to Peer όπως το Gnutella και Freenet.
Επειδή μάλιστα το Usenet υπάρχει από το 1979 η αρχιτεκτονική του αποτελεί de
facto πρότυπο για πολλές εφαρμογές.
Συγκεκριμένα στο Usenet δεν υπάρχει μία κεντρική υπηρεσία που να ελέγχει το
σύστημα ειδήσεων. Η προσθήκη μίας νέας ομάδας συζητήσεων αποτελεί ευθύνη μίας
διαφανούς δημοκρατικής διαδικασίας.
Χρησιμοποιώντας την ομάδα συζητήσεων news.admin καθένας που έχει
λογαριασμό email μπορεί να στείλει με email την ψήφο του για το αν δέχεται την
εισαγωγή της νέας ομάδας η όχι. Στο Usenet όμως υπάρχει και μία θεμελιωμένη
μορφή αναρχίας. Αυτή είναι η ιεραρχία alt.* και η οποία μπορεί να παρακάμπτει την
διαδικασία που αναφέρθηκε παραπάνω για την εισαγωγή νέας ομάδας. Καθένας
μπορεί να εισάγει νέα ομάδα κάτω από αυτή την ιεραρχία χωρίς να πρέπει να γίνει
ψηφοφορία στο news.admin. Από την άλλη κάθε διαχειριστής που δεν επιθυμεί την
πρόσβαση στην ιεραρχία αυτή μπορεί να κόψει την πρόσβαση.
Στα πρώτα χρόνια λειτουργίας του Usenet μία νέα ομάδα συζητήσεων μπορούσε
να συνδεθεί με το υπόλοιπο δίκτυο με το να συνδεόταν με έναν τουλάχιστον server
ειδήσεων(-συζητήσεων). Έτσι κάθε server μπορούσε να έχει πρόσβαση σε όλα τα
μηνύματα αφού συνδεόταν με τους υπόλοιπους. Σήμερα όμως μιας και υπάρχει
τρομακτική αύξηση τόσο στις ομάδες όσο και στα μηνύματα οι servers δεν κρατάνε
όλα τα μηνύματα. Κάθε διαχειριστής αποφασίζει ποιες ομάδες θα έχει και για πόση
χρονική διάρκεια θα κρατάει τα μηνύματα στη μνήμη του σε αντίθεση για
παράδειγμα με το Freenet που θα δούμε αργότερα στο ίδιο κεφάλαιο στο οποίο οι
διαχειριστές δεν έχουν έλεγχο του περιεχομένου που διακινούν οι διακομιστές τους.
Οι εξυπηρετητές των ομάδων συζητήσεων συνδέονται μεταξύ τους με παρόμοιο
τρόπο με αυτόν τον Peer to Peer δικτύων. Ένας εξυπηρετητής συνδέεται με κάποιους
άλλους εξυπηρετητές. Αυτοί οι εξυπηρετητές συνδέονται με την σειρά τους με
18
κάποιους άλλους και αυτό συνεχίζεται σε όλο το δίκτυο των εξυπηρετητών. Όταν
ένας πελάτης συνδεδεμένος κάνει αίτηση για μήνυμα στον εξυπηρετητή που είναι
συνδεδεμένος, ο εξυπηρετητής ελέγχει αν έχει το μήνυμα στην μνήμη του. Αν δεν το
έχει τότε προωθεί την αίτηση στους άλλους εξυπηρετητές που είναι συνδεδεμένος. Αν
και αυτοί δεν έχουν το μήνυμα τότε η αίτηση προωθείται εκ νέου. Αυτό συνεχίζεται
μέχρι να βρεθεί το μήνυμα και το περιεχόμενό του.
Ένα σημαντικό πλεονέκτημα στο πρωτόκολλο ομάδων συζητήσεων NNTP που
πρέπει να ακολουθηθεί και από τα άλλα Peer to Peer συστήματα είναι το εξής. Τα
μηνύματα περιέχουν και μία επικεφαλίδα “Path” στην οποία περιέχουν τις μεταδόσεις
τους από ένα εξυπηρετητή σε άλλον.
Έτσι αν ένας εξυπηρετητής Β αιτείται ενός μηνύματος στον εξυπηρετητή Α και ο Α
διαπιστώσει πως το μήνυμα περιέχει στην επικεφαλίδα “Path” τον εξυπηρετητή Β,
τότε δεν στέλνει το μήνυμα στον Β. Με τον τρόπο αυτό αποφεύγεται η πλημμύρα που
προκαλείται από επαναλαμβανόμενα μηνύματα σε αντίθεση με το σύστημα Gnutella
το οποίο θα αναλυθεί αργότερα.
Ένα παράδειγμα του τρόπου σύνδεσης των διαφόρων εξυπηρετητών είναι αυτός
που φαίνεται στο επόμενο παράδειγμα:
Στην ομάδα συζητήσεων comp.lang.c++ στο νήμα(thread): “NULL” o χρήστης με
το ψευδώνυμο Agent Mulder έστειλε ένα μήνυμα του οποίου η επικεφαλίδα “Path”
περιέχει την εξής διαδρομή:
Path:news.ntua.gr!news.grnet.gr!irazu.switch.ch!switch.ch!news.tele.dk!
news.tele.dk!small.news.tele.dk!newsfeed.icl.net!newsfeed.fjserv.net!skynet.be!
skynet.be!newshub1.home.nl!home.nl!not-for-mail
Βλέπουμε πως κάποιος συνδεδεμένος στον εξυπηρετητή Νέων του Εθνικού
Μετσόβιου Πολυτεχνείου βλέπει μηνύματα που δεν περιέχονται σε αυτόν τον
εξυπηρετητή αλλά σε κάποιον του εξωτερικού. Είναι προφανής η λειτουργία και η
ομότιμη σύνδεση των διαφόρων εξυπηρετητών.
Σύγχρονες εφαρμογές Peer to Peer
Ο όρος Peer to Peer έχει έρθει για να εφαρμοστεί σε δίκτυα τα οποία περιμένουν
από τους τελικούς τους χρήστες να συνεισφέρουν αρχεία, υπολογιστικό χρόνο και
άλλους πόρους για κάποιο κοινό οργανωμένο σχέδιο (shared project). Ακόμα πιο
ενδιαφέρουσα από τα τεχνικά θεμέλια του συστήματος είναι οι κοινωνικές
προοπτικές: με διάφορους τρόπους επιστρέφουν περιεχόμενο, αποτελέσματα και
έλεγχο σε κανονικούς χρήστες. Στα ελληνικά ο όρος αποδίδεται συνήθως σαν
«διομότιμα υπολογιστικά συστήματα».
Βάσει του ορισμού αυτού από τις σύγχρονες εφαρμογές Peer to Peer είναι οι:
19
Napster(μέχρι τον τερματισμό της λειτουργίας του λόγω μηνύσεων από την RIAA-
ένωση δισκογραφικών εταιριών Αμερικής ), ICQ , Jabber, Popular Power,
SETI@Home, Mixmaster Remailer, Gnutella, Freenet, Red Power , Publius, Free
Haven. Αντίθετα γνωστές εφαρμογές που δεν ικανοποιούν τον ορισμό αυτό είναι τα
emails και τα Dynamic DNS.
Napster
Το Napster αποτέλεσε ένα φαινόμενο. Ήταν η πρώτη δημοφιλής εφαρμογή Peer to
Peer. Μέσα σε 16 μήνες λειτουργίας ξεπέρασε σε αριθμό χρηστών, από το Hotmail
μέχρι τον πρωτοπόρο των Peer to Peer εφαρμογών το ICQ. Ήταν η πρώτη εφαρμογή
που δημιουργήθηκε για να λύσει ένα πρόβλημα - το πρόβλημα του μοιράσματος
αρχείων – ενώ οι τεχνολογικές λύσεις που εφάρμοσε ήταν βγαλμένες μέσα από τις
ανάγκες της εφαρμογής και όχι το αντίθετο. Αυτές οι τεχνολογικές καινοτομίες και το
πώς αυτές οδήγησαν στην γρήγορη διάδοση και ανάπτυξή του θα γίνουν κατανοητές
στις επόμενες παραγράφους.
Αρχικά το Napster κατάφερε και ξεπέρασε τον σκόπελο που έβαλαν οι μεγάλες
φίρμες στην διάδοση των αρχείων μέσω του κλασσικού τρόπου από τα site.
Δημιούργησε ένα μη “ιστοσελιδικό” τρόπο διάδοσης των αρχείων. Το Napster
κατανόησε τα πλεονεκτήματα καθενός από τα κεντρικά και αποκεντρωμένα
συστήματα λειτουργίας. Αφενός η χρήση των κεντρικών συστημάτων βοηθάει στη
δημιουργία μηχανής αναζήτησης, καθώς και στην προσθήκη και διαγραφή αρχείων.
Αφετέρου η χρήση αποκεντρωμένων λύνει τα προβλήματα διατήρησης των αρχείων
αφού εισάγει τον τρόπο αποθήκευσης μέσα στους σκληρούς δίσκους των χρηστών
που συνδέονται με το δίκτυο. Το Napster διατηρεί στους κεντρικούς υπολογιστές τη
λίστα με τα αρχεία που έχει κάθε χρήστης που είναι συνδεδεμένος στο δίκτυό του.
Όταν ένας χρήστης συνδέεται στο δίκτυο τότε το πρόγραμμα-πελάτης που είναι
εγκατεστημένο στον υπολογιστή του ενημερώνει τον εξυπηρετητή για τα αρχεία δηλ.
τα τραγούδια που διατηρεί ο χρήστης.
Παρομοίως όταν ένας χρήστης φεύγει ο εξυπηρετητής ενημερώνεται κατάλληλα.
Όταν ένας χρήστης ζητήσει ένα αρχείο τότε ο εξυπηρετητής ψάχνει μέσω της
μηχανής αναζήτησης που διατηρεί για τους χρήστες που έχουν το συγκεκριμένο
αρχείο και ενημερώνει τον χρήστη. Από κει και πέρα τον έλεγχο αναλαμβάνει το
πρόγραμμα που είναι εγκατεστημένο στον χρήστη. Το πρόγραμμα αναλαμβάνει την
επικοινωνία με τους άλλους χρήστες για να αρχίσει η διαδικασία αντιγραφής του
αρχείου. Δηλ. το σύστημα ξεκινάει σαν κεντρικό στην πορεία όμως γίνεται
αποκεντρωμένο.
Το Napster με τον τρόπο που λειτουργεί οδηγεί στην πλήρη εκμετάλλευση των
πόρων των χρηστών. Αφενός το να παίρνει κάποιος αρχεία μουσικής ή άλλου είδους
από κάποιον άλλο δεν διαγράφει τα αρχεία από τον σκληρο δίσκο του χρήστη από
20
όπου προήλθαν τα αρχεία αλλά στην πραγματικότητα αυξάνει τους πόρους στο
δίκτυο του Napster αφού ο νέος χρήστης φιλοξενεί ένα εναλλακτικό αντίγραφο.
Ακόμα και αν ο χρήστης που παίρνει αρχεία δεν μοιράζεται τα δικά του η λήψη
αρχείων από αυτόν δεν έχει πρακτικό κόστος αφού το αρχείο δεν χάνεται.
Αφετέρου άλλοι σημαντικοί πόροι όπως το εύρος ζώνης του δικτύου και οι κύκλοι
λειτουργίας του επεξεργαστή δεν αντιγράφονται αλλά αναπληρώνονται. Αυτοί οι
πόροι δεν μπορούν ούτε να εξαντληθούν ούτε να διατηρηθούν για μελλοντική χρήση.
Αν δεν καταναλωθούν μέσα σε συγκεκριμένο χρονικό διάστημα χάνονται αλλά
αμέσως αναπληρώνονται. Εξαιτίας αυτών των οικονομικών χαρακτηριστικών, η
εκμετάλλευση του αχρησιμοποίητου εύρους και της ανενεργής μονάδας επεξεργασίας
για την διάδοση των αρχείων μουσικής σημαίνει για την πλευρά του χρήστη
δημιουργία πρόσθετης μουσικής με σχεδόν μηδαμινό κόστος γι αυτόν. Απασχολεί
τους πόρους που αναφέρθηκαν για τους οποίους ο χρήστης έχει ήδη πληρώσει αλλά
δεν χρησιμοποιεί πλήρως.
Από τον τρόπο λειτουργίας του το Napster έγινε το πρωταρχικό παράδειγμα στον
τρόπο που μπορεί να χρησιμοποιήσει κανείς την τεράστια δύναμη των υπολογιστών
που συνδέονται στο Internet τα τελευταία 5 χρόνια. Εκμεταλλεύτηκε τις ταχύτατες
συνδέσεις πολλών υπολογιστών στον κόσμο καθώς και την υπολογιστική τους ισχύ
για να διαδίδονται μουσικά αρχεία δωρεάν και χωρίς να τα χάνει ο χρήστης που τα
μοιράζεται.
SETI@home
Το SETI@home αποτελεί την πρώτη σπουδαία προσπάθεια του να εκμεταλλευθεί
η μεγάλη υπολογιστική ισχύς των υπολογιστών στον κόσμο όταν αυτοί παραμένουν
ανοιχτοί αλλά ανενεργοί.
Το SETI@home είναι ένα σχέδιο επιστημόνων ανακάλυψης εξωγήινης
νοημοσύνης. Δεν αποτελεί το πρώτο σχέδιο όμως. Υπάρχουν ήδη αρκετά στον κόσμο.
Όλα όμως έχουν μια ουσιαστική διαφορά από το SETI@home. Χρησιμοποιούν
πανάκριβους τόσο στην αγορά όσο και στην συντήρηση υπερυπολογιστές. Επίσης
απαιτούν την παρουσία πολλών και εξειδικευμένων ατόμων για την ανάλυση των
αποτελεσμάτων των υπολογιστών. Το SETI@home για οικονομικούς λόγους κυρίως
αποφάσισε να απευθυνθεί στον κόσμο. Συγκεκριμένα πολλοί χρήστες αφήνουν τους
υπολογιστές ανοικτούς για αρκετή ώρα χωρίς να λειτουργεί στο 100% ο κεντρικός
επεξεργαστής. Έτσι δημιούργησε ένα Screen Saver που όταν ο χρήστης σταματούσε
να εργάζεται, θα ετίθετο σε λειτουργία και θα επεξεργαζόταν διάφορα δεδομένα.
Τα δεδομένα αυτά είναι σήματα που λαμβάνονται από μία τεράστια κεραία-
τηλεσκόπιο η οποία ήδη χρησιμοποιούταν σε παρόμοιο πρόγραμμα και στη συνέχεια
αποθηκεύονται σε κασέτες χωρητικότητας 35Gb. Ο τρόπος δειγματοληψίας των
δεδομένων επέτρεπε σε μία κασέτα να χωράει δεδομένα 16 ωρών περίπου. Κάθε
21
βδομάδα 10 κασέτες περίπου αποστέλλονται στο Berkeley την έδρα του
SETI@home, και αφού κατηγοριοποιηθούν αποθηκεύονται. Στη συνέχεια τα
δεδομένα επεξεργάζονται από ένα ισχυρό υπολογιστή για να αποσταλούν στους
εγγεγραμμένους χρήστες. Τα δεδομένα χωρίζονται σε μικρά κομμάτια για να μπορούν
να τα λάβουν και χρήστες με μικρές ταχύτητες.
Το πρόγραμμα του χρήστη δηλ. το Screen Saver αφού λάβει τα δεδομένα κλείνει
την σύνδεση και τα επεξεργάζεται για όσο καιρό χρειαστεί-από λεπτά μέχρι μέρες.
Αφού τα επεξεργαστεί στη συνέχεια εγκαθιστά νέα σύνδεση, αποστέλλει τα
αποτελέσματα και λαμβάνει νέα δεδομένα για επεξεργασία. Η επεξεργασία
περιλαμβάνει τον έλεγχο κάποιων προϋποθέσεων στην συχνότητα του σήματος. Αν το
σήμα ξεπεράσει κάποια όρια τότε αποστέλλεται στον κεντρικό υπολογιστή για να
αποθηκευθούν σε βάση δεδομένων. Για διάφορους λόγους ο υπολογιστής ελέγχει την
ακρίβεια των αποτελεσμάτων.
Η καλή λειτουργία του σχεδίου δεν βασίστηκε μόνο στον εθελοντισμό των
χρηστών ανά τον κόσμο αλλά και στην ευγενική χορηγία διαφόρων μεγάλων εταιριών
που προμήθευσε το κεντρικό σύστημα με διάφορα μηχανήματα. Είναι προφανές πως
για ένα τόσο φιλόδοξο εγχείρημα χρειάζεται και η συνδρομή εταιριών. Παρόλα αυτά
το σύστημα που δημιουργήθηκε αποτελεί τον πιο ισχυρό υπολογιστή στον κόσμο με
μηδαμινό κόστος σε σύγκριση με τον 2ο ταχύτερο. Ο πιο ισχυρός υπερυπολογιστής
όταν ξεκίνησε το εγχείρημα ήταν ο ASCI White με κόστος 110 εκατομμύρια δολάρια
και επεξεργαστική ισχύ 12,3 TFLOPS. Αντίθετα το σύστημα του SETI@home
κοστίζει 500.000 δολάρια σαν αγορά και 200.000 δολάρια ανά έτος για την
συντήρηση. Οι υπολογιστές των χρηστών δεν λαμβάνονται υπόψη στο κόστος γιατί
αυτοί υπήρχαν ήδη πριν το πρόγραμμα και θα υπάρχουν και μετά. Η επεξεργαστική
ισχύς ανέρχεται στα 20 TFLOPS. Το πρόγραμμα ενώ προγραμματίστηκε να
λειτουργεί από το 1998 έως το 2000 τελικά είχε τόση επιτυχία που συνεχίζει μέχρι
σήμερα.
Το Seti@home είναι ιδιαίτερα ενδιαφέρον γιατί αποτελεί το πρώτο παράδειγμα
υπολογιστικού δικτύου P2P (P2P computing system).
Mixmaster Remailers
Οι Remailers είναι μία από τις παλιότερες εφαρμογές Peer to Peer αλλά αντέχουν
ακόμα. Αφενός γιατί συνεχώς βοηθούν τους δημιουργούς Peer to Peer καθώς
δημιουργούν νέες εφαρμογές και αφετέρου γιατί η παρουσία τους εξυπηρετεί τους
ανθρώπους οι οποίοι επιθυμούν την ανωνυμία των διαδικτυακών τους επικοινωνιών.
Ό,τι μήνυμα στέλνει κάποιος σε ομάδα συζητήσεων ή ότι email στέλνει σε
κάποιον/ους , αυτό διατηρεί στις επικεφαλίδες του όλους τους υπολογιστές από όπου
έχει περάσει. Λόγω του γεγονότος αυτού κάποιος θα μπορούσε να βρει ότι ένα email
το έστειλε ένας χρήστης που επιθυμεί την ανωνυμία του. Η χρήση καλών δικτύων
22
Remailer όμως κάνει την διαδικασία ανεύρεσης του χρήστη που έστειλε μήνυμα
μεγαλύτερη και δυσκολότερη, αφού το μήνυμα επαναπροωθείται ανώνυμα από τον
έναν Remailer στον άλλον μέχρι τον τελικό αποδέκτη.
Η πιο πρόσφατη έκδοση Remailers είναι οι Mixmaster Remailers που επίσης είναι
γνωστοι ως Type 2 Remailers. Αυτοί είναι μία αναβαθμισμένη έκδοση των type 1
Remailers οι οποίοι είχαν κάποια κενά ασφαλείας.
Οι Remailers εν συντομία λειτουργούν ως εξής. Αρχικά διατηρούν κάθε μήνυμα
που τους αποστέλλεται για κάποια ώρα για να αποφύγουν αυτούς που
παρακολουθούν την κίνηση των μηνυμάτων. Επίσης οι χρήστες κρυπτογραφούν τα
μηνύματα με τα δημόσια κλειδιά των παραληπτών για να αποφύγουν τον έλεγχο από
κακόβουλους διαχειριστές Remailers καθώς και για να είναι σίγουροι πως οι
ενδιάμεσοι υπολογιστές δεν διαβάζουν τα μηνύματα. Ο Remailer όμως μπορεί να
γνωρίζει τον αποστολέα και τον παραλήπτη. Για να μην γίνεται αυτό
χρησιμοποιούνται πολλοί Remailers μεταξύ του αποστολέα και του παραλήπτη με
παράλληλη κρυπτογράφηση με την τεχνική του Onion Routing. Αυτή η τεχνική
επιτρέπει σε κάθε Remailer να γνωρίζει μόνο τον προηγούμενο κόμβο στην διαδρομή
του μηνύματος. Επίσης όλα τα μηνύματα που φεύγουν από τον Remailer έχουν το
ίδιο μέγεθος για να μπερδεύουν τους επιτιθέμενους καθώς και διαφορετική σειρά
αναχώρησης από αυτή της άφιξης.
Publius
Η αρχιτεκτονική του Internet δεν επιτρέπει την ανώνυμη έκδοση κειμένων ή την
προστασία από την λογοκρισία. Τα εκδοθέντα κείμενα έχουν συνήθως ένα URL που
επιτρέπει σε κάποιον να βρει την αρχική διεύθυνση στο Internet που δημοσιεύτηκε
και κατά συνέπεια αυτόν που το δημοσίευσε. Υπάρχουν όμως κάποιοι λόγοι για τους
οποίους κάποιοι θα ήθελαν να δημοσιεύσουν τα κείμενα ανώνυμα. Ένας από αυτούς
είναι για παράδειγμα οι πολιτικές διαφωνίες ή ο φόβος για τις αποδοκιμασίες που
μπορεί να υποστεί ο συγγραφέας.
Το Publius είναι ένα σύστημα βασισμένο στο Web για την έκδοση κειμένων ή
άλλων αρχείων το οποίο είναι σχεδιασμένο έτσι ώστε να αποφεύγει τον έλεγχο και
την λογοκρισία. Ένα αρχείο δημοσιευμένο στο Publius αντιγράφεται σε πολλούς
διακομιστές έτσι ώστε να είναι δύσκολο σε κάποιον είτε άτομο είτε οργανωμένη
ομάδα να διαγράψει το αρχείο αυτό. Η αντιγραφή αυτή σε πολλαπλούς διακομιστές
προστατεύει και από μία διαδεδομένη μορφή επίθεσης σε διακομιστές την Distributed
denial of service που έχει χρησιμοποιηθεί κατά κόρον για να καταστεί ένα αρχείο μη
προσπελάσιμο. Ένα άλλο σημαντικό χαρακτηριστικό του Publius είναι πως δεν
απαιτεί από κάποιον που εκδίδει ένα αρχείο να βάλει δώσει στοιχεία που να συνδέουν
το αρχείο με κάποιον συγκεκριμένο υπολογιστή.
23
Ο σχεδιασμός του Publius είναι τέτοιος έτσι ώστε να διευκολύνει τους απλούς
χρήστες. Ιστοσελίδες γραμμένες σε Html, εικόνες ή οποιαδήποτε άλλα αρχεία
μπορούν να δημοσιευθούν στο σύστημα. Τα αρχεία που δημοσιεύονται με το Publius
μπορούν να προσπελασθούν από οποιονδήποτε browser σε συνδυασμό με την χρήση
ενός Http Proxy που τρέχει είτε τοπικά είτε απομακρυσμένα. Και αυτό διότι
αποκτούν URL που τοποθετείται στον browser ή ενσωματώνεται σε hyperlink.
To Publius δεν είναι 100% σύστημα Peer to Peer. Ωστόσο έχει κάποια
πλεονεκτήματα λόγω ακριβώς του γεγονότος αυτού, σε σχέση με συστήματα όπως το
Gnutella. Ένα από αυτά είναι το ότι αν κάποιος εκδότης ενημερώσει ήδη
δημοσιευμένο υλικό τότε όταν κάποιος προσπαθήσει να προσπελάσει αυτό το υλικό
σίγουρα θα προσπελάσει την νέα εκδοχή. Επίσης το σύστημα επιτρέπει μόνο στον
δημιουργό του υλικού να ανανεώσει το περιεχόμενο του υλικού ή να το διαγράψει.
Με αυτόν τον τρόπο αποκλείει την περίπτωση παραποίησης του υλικού.
Η αρχιτεκτονική του βασίζεται στην κρυπτογράφηση για να αποφευχθεί η
πρόσβαση από τους διαχειριστές και κατά συνέπεια η λογοκρισία να είναι λιγότερη
πιθανή. Η κρυπτογράφηση γίνεται με ένα κλειδί το οποίο χωρίζεται σε πολλά
κομμάτια. Η ανάγνωση του αρχείου μπορεί όμως να γίνει με λίγα από αυτά τα
κομμάτια και όχι απαραίτητα με όλα. Ο εκδότης δημοσιεύει το υλικό του σε πολλούς
διακομιστές αλλά με διαφορετικό κομμάτι του κλειδιού. Έτσι ακόμα και αν κλείσουν
πολλοί διακομιστές πάλι θα είναι προσβάσιμο. Ο εκδότης μόνο έχει την διεύθυνση
URL του υλικού του και αυτός αποφασίζει τι θα το κάνει. Μπορεί για παράδειγμα να
το δημοσιεύσει σε ομάδες συζητήσεων. Στη συνέχεια για την αποκρυπτογράφηση του
υλικού απαιτείται η πρόσβαση σε τόσους διακομιστές όσους έχει ορίσει ο
δημιουργός. Αν είναι προσβάσιμοι τότε μπορεί να αποκρυπτογραφηθεί. Αλλιώς δεν
γίνεται. Με αυτόν τον τρόπο εξασφαλίζεται τόσο η ύπαρξη του υλικού αφού είναι
δύσκολο να λογοκριθεί όσο και η απομόνωσή του όταν έχει περιεχόμενο πχ.
ρατσιστικό. Μπορούν οι διακομιστές δηλ. αν διαπιστώσουν ότι το περιεχόμενο δεν
είναι πρέπον να συμφωνήσουν να το διαγράψουν και να μην είναι δυνατή η
πρόσβαση.
Gnutella
Το Gnutella είναι και αυτό ένα δίκτυο Peer to Peer πλήρως σύμφωνο με τον
ορισμό που είχε δοθεί στις πρώτες σελίδες. Αυτό γίνεται γιατί η λειτουργία του δεν
βασίζεται στην τοπολογία των καλωδίων και των routers διότι η συμμετοχή τους
μπορεί να αλλάζει από λεπτό σε λεπτό. Το Gnutella δημιουργεί ένα εικονικό δίκτυο
πάνω από το πραγματικό.
Σε αντίθεση με το Internet όπου κάθε κόμβος έχει μια καλά ορισμένη διεύθυνση,
το Gnutella δεν δίνει ονόματα με σημασία στους κόμβους. Μάλιστα το Gnutella με
τις σύγχρονες εφαρμογές του κρύβει από τον χρήστη του, το στρώμα του Internet που
24
βρίσκεται από κάτω του. Καθένας μπορεί να βρει αυτό που θέλει πληκτρολογώντας
μία λέξη κλειδί και περιμένοντας τις απαντήσεις. Στο σχήμα 1.1 μπορούμε να δούμε
πώς συνδέονται κόμβοι στο δίκτυο.
Σχήμα1.1. Σύνδεση κόμβων στο δίκτυο
Το Gnutella διαφοροποιείται από το Napster σε πολύ σημαντικό βαθμό στο ότι δεν
βασίζεται σε κάποιο κεντρικό φορέα για την λειτουργία του. Το Napster αρχικά
λειτουργεί με το να συνδεθεί ο χρήστης στον κεντρικό υπολογιστή www.napster.com.
Αντίθετα ο χρήστης του Gnutella συνδέεται σε ένα κόμβο από αυτούς που διατηρεί
στην μνήμη του. Από την στιγμή που συνδέεται, είναι πια μέσα στο δίκτυο και μπορεί
να επικοινωνεί με άλλους κόμβους-χρήστες
Από την στιγμή που συνδέεται στο δίκτυο του Gnutella ο χρήστης μπορεί να ψάξει
για οτιδήποτε θέλει μέσα στους άλλους κόμβους που επικοινωνεί. Για παράδειγμα
μπορεί να ψάξει για μία συγκεκριμένη συνταγή. Βάζει τις λέξεις κλειδιά που τον
ενδιαφέρουν και περιμένει να του απαντήσουν οι άλλοι κόμβοι. Ανάμεσα στις
απαντήσεις που παίρνει, διαλέγει αυτή που θέλει και την κατεβάζει στον υπολογιστή
του. Στο επόμενο σχήμα μπορούμε ένα παράδειγμα λειτουργίας.
25
Σχήμα 1.2. Αίτηση και απάντηση σε δίκτυο Gnutella
Πρέπει να τονισθεί ότι το Gnutella δεν θέτει κάποιον περιορισμό ως προς το είδος
των αιτήσεων και των αποκρίσεων. Η αίτηση μπορεί να είναι πχ ένα όνομα αρχείου ή
ένα πρόγραμμα σε Java, οπότε η απόκριση θα είναι το αρχείο ή η έξοδος της
εκτέλεσης του προγράμματος αντίστοιχα. Συνεπώς το Gnutella δεν είναι απλή
εφαρμογή, αλλά πλατφόρμα πάνω στην οποία μπορούν να «χτισθούν» διάφορες
εφαρμογές p2p, μεταξύ των οποίων και εφαρμογές κατανεμημένων εφαρμογών.
Η αποκεντρωμένη λειτουργία του Gnutella έχει το σημαντικό πλεονέκτημα της
ανοχής του σε απώλειες κόμβων. Κάθε κόμβος του Gnutella μπορεί να δράσει ως
πύλη σύνδεσης με το δίκτυο και θεωρητικά κανένας δεν παίζει σημαντικότερο ρόλο
από τους άλλους. Δεν υπάρχει συνεπώς κάποιος κεντρικός κόμβος που αν πάψει να
λειτουργεί σταματάει να λειτουργεί και όλο το δίκτυο. Ωστόσο η δυναμική δομή έχει
και μειονεκτήματα, αφού είναι εντελώς απρόβλεπτο το πώς θα εξελιχθεί όσο
λειτουργεί το δίκτυο και νέοι κόμβοι προστίθενται ή αφαιρούνται σε τυχαία σημεία
του. Δεν είναι καθόλου σπάνιο ένας κόμβος να επιλέγεται ως πύλη στο δίκτυο από
πάρα πολλούς νεοεισερχόμενους ομότιμούς του, με αποτέλεσμα να δημιουργείται μια
κεντροποιημένη και αναποτελεσματική νησίδα στο δυναμικό δίκτυο.
26
Συμπεράσματα
Τα δίκτυα Peer to Peer Μπορούν να χωρισθούν σε 3 κατηγορίες. Τα κεντρικώς
ελεγχόμενα, τα ιεραρχικά και τα αποκεντρωμένα.
Στην πρώτη κατηγορία ανήκουν εφαρμογές όπως το Napster και το SETI@home.
Ο συγχρονισμός μεταξύ των κόμβων γίνεται μέσω κεντρικών Servers άσχετα αν στην
συνέχεια οι κόμβοι επικοινωνούν μεταξύ τους για την ανταλλαγή πληροφοριών.
Στο ιεραρχικό σύστημα ανήκει το DNS. Σε αυτό υπάρχουν διάφορα επίπεδα
συντονιστών. Αν κάποιοι κόμβοι που θέλουν να επικοινωνήσουν ανήκουν στo ίδιο
domain τότε μεσολαβεί ένας τοπικός συντονιστής που είναι υπεύθυνος για το domain
αυτό. Αν όμως ανήκουν σε διαφορετικά domain τότε μεσολαβεί συντονιστής
υψηλότερου επιπέδου.
Τέλος στο αποκεντρωμένο σύστημα ανήκει το Gnutella. Σε αυτό δεν μεσολαβεί
κανένας συντονιστής αλλά οι πελάτες αναλαμβάνουν τον συντονισμό και την
διαχείριση της επικοινωνίας τους. Αυτό σημαίνει πως αρκετές φορές κάποιοι κόμβοι
προωθούν μηνύματα σε κόμβους για λογαριασμό άλλων κόμβων.
Η παρούσα διπλωματική εργασία εστιάζει αποκλειστικά στα δυναμικά
αποκεντρωμένα ομότιμα υπολογιστικά συστήματα, όπου το φορτίο του δικτύου είναι
σχετικά υψηλό και οι πιθανότητες ένας κόμβος να συναλλαγή πολλές φορές με
κάποιον άλλον είναι σχετικά υψηλές.
27
28
ΚΕΦΑΛΑΙΟ 2. ΠΡΟΣΟΜΟΙΩΣΗ ΔΙΚΤΥΩΝ ΣΤΟ OPNET
Modeller.
To OPNET Modeller, αποτελεί ένα εξειδικευμένο εργαλείο στο χώρο των
επικοινωνιών, που προσφέρει τη δυνατότητα με τη βοήθεια ενός γραφικού
περιβάλλοντος να μοντελοποιηθούν και να προσομοιωθούν διάφορα είδη δικτύων.
Στην παρούσα εργασία χρησιμοποιείται το OPNET Modeller 14.0, το οποίο περιέχει
έτοιμα μοντέλα δικτύων . Η γλώσσα προγραμματισμού που χρησιμοποιείται (και για
την κατασκευή νέων μοντέλων) είναι η Proto C, μια παραλλαγή της γλώσσας C, η
οποία μπορεί να χρησιμοποιεί και έτοιμες συναρτήσεις από τον πυρήνα (Kernel) του
OPNET.
Για την κατασκευή της δομής ενός δικτύου, ακολουθείται αυστηρά η παρακάτω
ιεραρχία τριών επιπέδων:
 Μοντέλο Δικτύου (Project Editor)
 Μοντέλο Κόμβων (Node Editor)
 Μοντέλο Επεξεργασίας (Process Editor)
Τα αντικείμενα που ανήκουν στο μοντέλο δικτύου περιγράφονται από αντικείμενα
που ανήκουν στο μοντέλο κόμβων, ενώ αυτά που ανήκουν στο μοντέλο κόμβων
περιγράφονται από αντικείμενα που ανήκουν στο μοντέλο επεξεργασίας. Ένα
παράδειγμα αυτής της ιεραρχίας φαίνεται παρακάτω:
29
Σχήμα 2.1: Ιεραρχική δομή μοντελοποίησης στο OPNET
2.1. Μοντέλο Δικτύου
Το Μοντέλο Δικτύου (Project Editor), αποτελεί την κύρια πλατφόρμα εργασίας για
την κατασκευή και προσομοίωση ενός δικτύου. Από εδώ μπορούμε να κτίσουμε ένα
μοντέλο δικτύου, χρησιμοποιώντας τα έτοιμα μοντέλα (π.χ. ένα Τοπικό Δίκτυο
(LAN), ένα Μητροπολιτικό Δίκτυο (MAN) ή ένα δίκτυο με δύο υπολογιστές κ.τ.λ.)
που υπάρχουν στη βιβλιοθήκη του OPNET, να επιλέξουμε στατιστικά στοιχεία για το
δίκτυο, να τρέξουμε μια προσομοίωση και να δούμε τα αποτελέσματα. Επίσης
μπορούμε να φτιάξουμε τα μοντέλα δικτύου και επεξεργασίας, να κατασκευάσουμε
μοντέλα για πακέτα που στέλνονται, να κατασκευάσουμε φίλτρα και παραμέτρους
στα οποία μπορούμε να έχουμε πρόσβαση από το μοντέλο επεξεργασίας.
Πιο κάτω φαίνεται το προφίλ του μοντέλου δικτύου που εμείς χρησιμοποιήσαμε
για τις προσομοιώσεις μας:
30
Σχήμα 2.2. Μπάρα εργαλείων του Μοντέλου Δικτύου.
 Παλέτα αντικειμένων (object palette):
Ανοίγοντας την παλέτα αντικειμένων, μπορούμε να ανασύρουμε κάποιο έτοιμο
μοντέλο αντικειμένου του OPNET, π.χ. ένα server, ένα δίκτυο υπολογιστών, μια
σύνδεση καλωδίου μεταξύ δύο υπο δικτύων. Μπορούμε επίσης με την επιλογή
“διαμόρφωση παλέτας” (configure palette), να δημιουργήσουμε μια παλέτα που θα
περιέχει μόνο τα αντικείμενα που θα χρειαστούμε ή ακόμα και να τροποποιήσουμε
κάποια από αυτά έτσι ώστε να έχουν τα επιθυμητά χαρακτηριστικά.
 Επαλήθευση συνδέσεων (verify links):
Με αυτή την επιλογή, γίνεται έλεγχος αν οι συνδέσεις που υπάρχουν ανάμεσα στα
διάφορα αντικείμενα λειτουργούν σωστά. Αν κάποια σύνδεση δε λειτουργεί,
εμφανίζεται σχετικό μήνυμα για να μπορέσουμε να τη διορθώσουμε.
 Κατάργηση αντικειμένων (fail selected objects):
31
Επιλέγοντας κάποια αντικείμενα που υπάρχουν στην επιφάνεια εργασίας και με
την επιλογή αυτή, μπορούμε να καταργήσουμε τη λειτουργία τους, δηλαδή η
προσομοίωση θα “τρέξει” σαν αυτά να μην υπάρχουν καθόλου.
 Ανάκτηση αντικιμένων (recover selected objects):
Επαναφέρει αντικείμενα που είχαν καταργηθεί προηγουμένως.
 Επαναφορά στο υποδίκτυο του προηγούμενου επιπέδου (go to parent subnet):
Αν θελήσουμε να δούμε τα επιμέρους αντικείμενα ενός υπο δικτύου, μπορούμε με
διπλή επιλογή του (double click), να εισέλθουμε στο ακριβώς πιο κάτω επίπεδο. Για
παράδειγμα για ένα από τα τοπικά δίκτυα του σχήματος 3.1.2, με διπλή επιλογή
βλέπουμε τα αντικείμενα που το αποτελούν (router και office_lan). Στη συνέχεια με
την επιλογή “επαναφορά στο υπο δίκτυο του προηγούμενου επιπέδου”,
επανερχόμαστε στο προηγούμενο επίπεδο. Για να μπούμε πιο βαθιά στην ιεραρχική
δομή, με διπλή επιλογή κάποιου από τα αντικείμενα του δευτέρου επιπέδου στο
μοντέλο δικτύου (π.χ. Router), μπαίνουμε στο μοντέλο κόμβων και από εκεί στο
μοντέλο επεξεργασίας. Αυτά όμως λειτουργούν σε ξεχωριστά παράθυρα και η
επιλογή “επαναφορά στο υπο δίκτυο του προηγούμενου επιπέδου”, δεν ισχύει.
 Εστίαση σε ορθογώνιο (zoom to rectangle):
Με την επιλογή αυτή, η επιφάνεια εργασίας, εστιάζει σε ένα ορθογώνιο κομμάτι
που επιλέγουμε.
 Εστίαση στο προηγούμενο (zoom to previous):
Η εστίαση επαναφέρεται.
 Διαμόρφωση/τρέξιμο προσομοίωσης ξεχωριστών γεγονότων (configure/run
discrete event simulation, DES):
Με την επιλογή αυτή, ανοίγουμε ένα παράθυρο, όπου επιλέγουμε τις παραμέτρους
της προσομοίωσης, όπως είναι η διάρκεια, τα στατιστικά στοιχεία που θα συλλέξουμε
και ο σπόρος (seed) που αφορά την τυχαιότητα κάποιων συναρτήσεων. Από εδώ
μπορούμε επίσης να ορίσουμε τα είδη των εξερχόμενων στατιστικών (π.χ. report,
32
animation) και άλλα χαρακτηριστικά της προσομοίωσης. Με την επιλογή “τρέξιμο”
(run), η προσομοίωση αρχίζει.
 Παρατήρηση αποτελεσμάτων (view results):
Εδώ μπορούμε να ορίσουμε τα χαρακτηριστικά που μας ενδιαφέρει να δούμε με το
πέρας της προσομοίωσης, καθώς και σε ποιες συνδέσεις (π.χ. στο σχήμα 3.1.2 μπορεί
να μας ενδιαφέρουν τα χαρακτηριστικά μόνο μιας εκ των τεσσάρων συνδέσεων
μεταξύ των τοπικών δικτύων). Έτσι βλέπουμε γραφικές παραστάσεις που αφορούν τα
επιλεχθέντα χαρακτηριστικά. Επειδή μια προσομοίωση μπορεί να τρέξει παράλληλα
για διαφορετικά σενάρια, από εδώ επιλέγουμε για ποια από αυτά θέλουμε να δούμε
τα αποτελέσματα καθώς μπορεί να γίνει και σύγκρισή τους στην ίδια γραφική
παράσταση.
 Απόκρυψη/παρατήρηση γραφικών παραστάσεων (hide/show graph panels):
Με το πέρας της προσομοίωσης, αν ανοίξουμε μερικά παράθυρα γραφικών
παραστάσεων για να παρατηρήσουμε κάποια χαρακτηριστικά, με την επιλογή αυτή
μπορούμε να τα αποκρύψουμε και στη συνέχεια να τα επαναφέρουμε.
2.2. Μοντέλο Κόμβων
Τα αντικείμενα του Μοντέλου Κόμβων (Node Editor), περιγράφουν την
συμπεριφορά των αντίστοιχων κόμβων δικτύου και μοντελοποιούν τις εσωτερικές
τους λειτουργίες όπως δημιουργία δεδομένων, αποθήκευση κ.τ.λ. Η συμπεριφορά
κάθε αντικειμένου του δικτύου περιγράφεται από διάφορα “στοιχεία” (modules), τα
οποία συνδέονται μεταξύ τους με “συνδέσεις πακέτων” (packet streams) ή
“στατιστικά καλώδια” (statistic wires).
Στη μπάρα εργαλείων (toolbar), που βρίσκεται στο πάνω μέρος του παραθύρου,
όπως και στο μοντέλο δικτύου, υπάρχουν οι πιο κάτω επιλογές, τις οποίες επεξηγούμε
στη συνέχεια:
33
Σχήμα 2.3. Μπάρα εργαλείων του Μοντέλου Κόμβων
 Δημιουργία επεξεργαστή (create processor):
Σε αυτή την επιλογή μπορούμε να δημιουργήσουμε ένα επεξεργαστή στην
επιφάνεια εργασίας. Ο επεξεργαστής αποτελεί ένα “στοιχείο”, που μπορεί να
επιτελέσει διάφορους σκοπούς όπως για παράδειγμα δημιουργία και καταστροφή
πακέτων, επεξεργασία πακέτων κλπ.
 Δημιουργία “στοιχείου” ουράς (create queue):
Δημιουργούμε ένα “στοιχείο” ουράς, όπου μπορεί να αποθηκευτεί ένας αριθμός
πακέτων και να προγραμματιστεί η μετάδοσή τους. Επίσης μπορούν να οριστούν
τύποι πακέτων που το στοιχείο αυτό μπορεί να ανακτήσει, ενώ τα υπόλοιπα πακέτα
απορρίπτονται.
 Δημιουργία σύνδεσης πακέτων (create packet stream):
Με την επιλογή αυτή δημιουργούμε μια σύνδεση πακέτου μεταξύ δύο
“στοιχείων”. Η σύνδεση πακέτου αποτελεί τη διαδρομή που ακολουθεί το κάθε
πακέτο από “στοιχείο” σε “στοιχείο”, μέσα σε ένα αντικείμενο δικτύου, για
επεξεργασία.
 Δημιουργία στατιστικού καλωδίου (create statistic wire):
Ένα στατιστικό καλώδιο ακολουθεί την ίδια διαδρομή με μια σύνδεση πακέτων
αλλά κατά την αντίθετη κατεύθυνση. Ουσιαστικά, υλοποιεί την αμφίδρομη
επικοινωνία που υπάρχει σε ένα αντικείμενο δικτύου καθώς “τρέχει” τη στοίβα
πρωτοκόλλων από πάνω προς τα κάτω και αντίστροφα.
 Δημιουργία λογικού συνδέσμου πομπού/δέκτη (create logical Tx/Rx association):
Με αυτή την επιλογή, δημιουργούμε μια λογική σύνδεση μεταξύ δύο στοιχείων
πομπού (transmitter, Tx) και δέκτη (receiver, Rx). Κατά τη διάρκεια της
προσομοίωσης, πακέτα τα οποία στέλνονται σε κάποιο αντικείμενο δικτύου,
παραλαμβάνονται από το “στοιχείο” του δέκτη. Στη συνέχεια στέλνονται προς τα
πάνω, στα υπόλοιπα στοιχεία για επεξεργασία (στοίβα πρωτοκόλλων) και ακολούθως,
34
στην αντίθετη διαδρομή προς τα κάτω καταλήγοντας στο “στοιχείο” του πομπού.[50]
Αυτή η λογική σύνδεση μεταξύ πομπού και δέκτη, αναπαρίσταται με ένα λογικό
σύνδεσμο Tx/Rx.
 Δημιουργία δέκτη σημείου σε σημείο (create point-to-point receiver):
Δημιουργούμε ένα “στοιχείο” δέκτη, για συνδέσεις σημείο σε σημείο.
 Δημιουργία πομπού σημείου σε σημείο (create point-to-point transmitter):
Δημιουργούμε ένα “στοιχείο” πομπού, για συνδέσεις σημείο σε σημείο.
 Δημιουργία δέκτη για πολλαπλές συνδέσεις(create bus receiver):
Δημιουργούμε ένα “στοιχείο” δέκτη, για πολλαπλές συνδέσεις.
 Δημιουργία πομπού για πολλαπλές συνδέσεις(create bus transmitter):
Δημιουργούμε ένα “στοιχείο” πομπού, για πολλαπλές συνδέσεις.
 Δημιουργία “στοιχείου” εξωτερικού συστήματος (create external system module):
Με την επιλογή αυτή, μπορούμε να δημιουργήσουμε ένα “στοιχείο”, το οποίο δεν
ανήκει κατ’ ανάγκη στο συγκεκριμένο αντικείμενο δικτύου και μπορεί να λειτουργεί
ξεχωριστά.
2.3. Μοντέλο Επεξεργασίας
Το Μοντέλο Επεξεργασίας (Process Editor), αναπαρίσταται με διαγράμματα
πεπερασμένων καταστάσεων (finite state machines - FSMs) που ελέγχουν την
εσωτερική λειτουργικότητα των αντικειμένων στο μοντέλο κόμβων.Τα διαγράμματα
αυτά δημιουργούνται από εικόνες που αντιπροσωπεύουν καταστάσεις (states) και
γραμμές (transitions) που αντιπροσωπεύουν μεταβάσεις μεταξύ αυτών των
καταστάσεων. Κάθε κατάσταση χαρακτηρίζεται από τις λειτουργίες εισόδου (enter
execution) – οι οποίες περιγράφονται σε κώδικα της γλώσσας C και γράφονται στο
πάνω μισό κομμάτι της εικόνας μιας κατάστασης- και τις λειτουργίες εξόδου (exit
35
execution) – οι οποίες γράφονται στο κάτω μισό κομμάτι. “Αναδυόμενα” παράθυρα
εμφανίζονται με διπλή επιλογή για κάθε κομμάτι, όπου μπορούμε να γράψουμε τον
κώδικα.
Οι καταστάσεις επίσης χαρακτηρίζονται σε “εξαναγκασμένες” (forced, πράσινο
χρώμα) και “μη-εξαναγκασμένες” (unforced, κόκκινο χρώμα), ανάλογα με το αν
θέλουμε μια κατάσταση να μεταβαίνει στην επόμενη χωρίς κανένα περιορισμό ή όχι
αντίστοιχα. Συνθήκες μετάβασης μπορούν επίσης να οριστούν στις γραμμές
μετάβασης για να ορίσουν περιορισμούς για τη μετάβαση από την μια κατάσταση
στην άλλη.
Αυτά φαίνονται στο σχήμα που ακολουθεί:
Σχήμα 2.3. Μοντέλο Επεξεργασίας
36
Όπως και στα προηγούμενα μοντέλα, στη μπάρα εργαλείων (toolbar), που
βρίσκεται στο πάνω μέρος του παραθύρου, υπάρχουν οι πιο κάτω επιλογές, τις οποίες
επεξηγούμε στη συνέχεια:
Σχήμα 2.4: Μπάρα εργαλείων του Μοντέλου Επεξεργασίας
Δημιουργία κατάστασης (create state):
Με την επιλογή αυτή, μπορούμε να δημιουργήσουμε μια κατάσταση. Η
κατάσταση αυτή, αποτελεί ένα κομμάτι της όλης διαδικασίας που εκτελείται σε ένα
“στοιχείο” του Μοντέλου Κόμβων. Με επιλογή του δεξιού κουμπιού του “mouse”
του υπολογιστή, εμφανίζεται η επιλογή για να μετατρέψουμε μια κατάσταση από
“εξαναγκασμένη” σε “μη-εξαναγκασμένη” και το αντίθετο. Στο πάνω μισό κομμάτι
της κατάστασης, όπως αναφέραμε και προηγουμένως, γράφονται οι συναρτήσεις που
θα εκτελεστούν κατά την είσοδο στην κατάσταση ενώ στο κάτω μισό κομμάτι
γράφονται οι συναρτήσεις που θα εκτελεστούν κατά την έξοδο από την κατάσταση.
Οι συναρτήσεις αυτές μπορεί να γράφονται εξ’ ολοκλήρου μέσα στην κατάσταση ή
να καλούνται με συγκεκριμένες παραμέτρους, ανατρέχοντας στο “κομμάτι
συναρτήσεων” (function block), για να βρουν τον κώδικα της συγκεκριμένης
συνάρτησης.
Δημιουργία μετάβασης (create transition):
Από εδώ μπορούμε να δημιουργήσουμε μια γραμμή μετάβασης από μια
κατάσταση σε μια άλλη. Οι μεταβάσεις ακολουθούν συγκεκριμένη κατεύθυνση (δεν
είναι αμφίδρομες). Επίσης ορίζονται συνθήκες μετάβασης για το πότε και κάτω από
ποιες προϋποθέσεις μια συγκεκριμένη μετάβαση θα συμβεί.
Καθορισμός αρχικής κατάστασης (set initial state):
Κάθε διαδικασία που περιγράφεται στο μοντέλο επεξεργασίας, πρέπει να έχει μια
αρχική κατάσταση, δηλαδή μια κατάσταση που θα εκτελεστεί πρώτη κατά την έναρξη
37
της διαδικασίας. Στην αρχική κατάσταση, αρχικοποιούνται παράμετροι, δίνονται
αρχικές τιμές σε μεταβλητές που χρειάζεται να έχουν συγκεκριμένη τιμή σε κάθε
εκτέλεση της διαδικασίας καθώς ανακτώνται και παράμετροι από το προηγούμενο
επίπεδο (Μοντέλο Κόμβων), που θα χρησιμοποιηθούν.
Μορφοποίηση μεταβλητών της διαδικασίας (edit state variables):
Στο παράθυρο που “αναδύεται” με αυτή την επιλογή, δηλώνονται όλες οι
μεταβλητές που χρησιμοποιούνται στον κώδικα που περιγράφει τις διάφορες
συναρτήσεις της διαδικασίας. Για κάθε μεταβλητή, επιλέγεται
ένας συγκεκριμένος τύπος (π.χ. int, double, float, char) καθώς επίσης μπορούν να
γραφούν και σχόλια για το τι αντιπροσωπεύει η κάθε μία από αυτές. Οι μεταβλητές
που δηλώνονται εδώ κρατούν την τιμή τους κάθε φορά που “τρέχει” η διαδικασία.
Μορφοποίηση προσωρινών μεταβλητών (edit temporary variables):
Εδώ δηλώνονται βοηθητικές μεταβλητές, οι οποίες χάνουν την τιμή που έχουν
μετά το τέλος της διαδικασίας και την επόμενη φορά που αυτή θα “τρέξει” χρειάζεται
να αρχικοποιηθούν ξανά.
Μορφοποίηση κομματιού επικεφαλίδας (edit header block):
Στο παράθυρο που “αναδύεται” με αυτή την επιλογή, δηλώνονται όλα τα
εξωτερικά αρχεία που θα χρησιμοποιηθούν καθώς και οι έτοιμες βιβλιοθήκες της C
που χρειάζονται στον κώδικα (με include). Επίσης μπορούν να δηλωθούν μεταβλητές
με σταθερές τιμές καθώς και αναγνωριστικά διακοπών (interrupts) που θα συμβούν
στη διαδικασία (με define).
Μορφοποίηση κομματιού συναρτήσεων (edit function block):
Εδώ γράφονται όλες οι συναρτήσεις που θα χρησιμοποιηθούν στην εκτέλεση της
διαδικασίας. Οι μεταβλητές που αυτές χρησιμοποιούν, δηλώνονται είτε στην αρχή
κάθε συνάρτησης είτε στις μεταβλητές της διαδικασίας (state variables). Ο κώδικας
που γράφεται είναι σε γλώσσα C αλλά χρησιμοποιούνται και έτοιμες συναρτήσεις
που προσφέρει ο πυρήνας του OPNET. Αυτές οι συναρτήσεις αφορούν κυρίως
38
ανάκτηση και μεταφορά παραμέτρων ανάμεσα στα διάφορα επίπεδα, συλλογή
στατιστικών στοιχείων, διακοπές κ.ά..
Μορφοποίηση διαγνωστικού κομματιού (edit diagnostic block):
Εδώ συνήθως γράφονται συναρτήσεις που αφορούν την επικοινωνία της
προσομοίωσης με τον έξω κόσμο κατά τη διάρκεια που αυτή εκτελείται. Για
παράδειγμα οι συναρτήσεις αυτές τυπώνουν μηνύματα και τιμές παραμέτρων και
μεταβλητών.
Μορφοποίηση κομματιού τερματισμού (edit termination block):
Εδώ συνήθως γράφονται συναρτήσεις που αφορούν τον τερματισμό της
διαδικασίας.
Μετατροπή κώδικα μοντέλου επεξεργασίας (compile process model):
Με την επιλογή αυτή γίνεται το compilation του μοντέλου επεξεργασίας.
Συντακτικά λάθη που εμφανίζονται στον κώδικα, λανθασμένη χρησιμοποίηση
ονομάτων μεταβλητών ή μη σωστή ανάκληση μνήμης, οδηγούν σε σφάλμα κατά την
μετατροπή του κώδικα.
39
ΚΕΦΑΛΑΙΟ 3. Σύστημα κατανεμημένου Διαμοιρασμού
ΣΚΔ
Σε αυτό το κεφάλαιο περιγράφω το πρόβλημα του σύγχρονου κατανεμημένου
διαμοιρασμού βίντεο σε πραγματικό χρόνο. Αρχικά ορίζεται το πρόβλημα και οι
απαιτήσεις που υπάρχουν από ένα τέτοιο σύστημα. Έπειτα αναλύεται η
αρχιτεκτονική επίλυσής του και δίνονται οι τεχνικοί στόχοι που πρέπει να
επιτευχθούν για την δημιουργία ενός τέτοιου συστήματος.
Το κεφάλαιο αυτό χωρίζεται σε δύο ενότητες. Στην πρώτη περιγράφονται απαιτήσεις
από τον γράφο διαμοιρασμού, σχετική εργασία με το συγκριμένο πρόβλημα και
αναλύεται εκτενώς και αξιολογείται το σύστημα που αναπτύχθηκε. Στην δεύτερη
περιγράφεται το πρόβλημα δημιουργίας κατανεμημένου χρονοπρογραμματιστη
ανταλλαγής τεμαχίων δεδομένων (p2p block scheduler). Επίσης αναλύονται οι
τεχνικοί στόχοι που ένα τέτοιο σύστημα πρέπει να ικανοποιεί και περιγράφεται η
σχετική εργασία με το πρόβλημα αυτό. Τέλος αναλύεται εκτενώς ο
χρονοπρογραμματιστής που αναπτύχθηκε και αξιολογείται εκτενώς ενώ παράλληλα
αναλύονται οι επιδόσεις και τα χαρακτηριστικά συνολικά του προτεινόμενου
συστήματος.
Αρχικά κρίνω σημαντικό να ορισθεί το πρόβλημα του σύγχρονου διαμοιρασμού
πολυμέσων ανεξαρτήτως από την αρχιτεκτονική που θα ακολουθηθεί και από τεχνικά
χαρακτηριστικά του δικτύου ή/και των υπολογιστικών συσκευών. Σε πραγματικό
χρόνο σε ένα κόμβο του δικτύου δημιουργείται ένα αντικείμενο πολυμέσων που
μπορεί να είναι ένα βίντεο, ένα ηχητικό αντικείμενο κ.α. Σαν παραδείγματα θα
μπορούσαν να αναφερθούν η ζωντανή λήψη ενός αθλητικού γεγονότος, μιας
συναυλίας μουσικής, μιας συνέντευξης. Το αντικείμενο πληροφορίας αυτό επιθυμούν
να λαμβάνουν ένα σύνολο χρηστών που αντιστοιχούν σε δικτυακούς κόμβους. Οι
απαιτήσεις των χρηστών είναι:
 Δυναμική σύνδεση. Η εισαγωγή και αποχώρηση από την παραλαβή όποια
στιγμή αυτοί επιθυμούν.
40
 Μικρή καθυστέρηση. Η ελαχιστοποίηση του χρονικού διαστήματος από την
στιγμή δημιουργίας κάθε στιγμιότυπου του αντικειμένου πολυμέσων μέχρι
τον διαμοιρασμό του σε κάθε συμμετέχοντα χρήστη.
 Ποιοτική λήψη. Η μεγιστοποίηση της ποιότητας του αντικειμένου όσον
αφορά τα χαρακτηριστικά της εικόνας ή/και του ήχου που διαμοιράζεται.
 Σταθερότητα. Η αδιάλειπτη λειτουργία του συστήματος και η σταθερότητά
του.
 Ευελιξία παραγωγής υλικού. Η ικανότητα του χρήστη να μπορεί ο ίδιος να
αποτελεί αυτός διαμοιραστή υλικού.
 Κόστος συστήματος. Η ελαχιστοποίηση του κόστους του συστήματος.
Στο πρώτο κεφάλαιο αναφέρθηκαν αρχιτεκτονικές διαμοιρασμού περιεχομένου στο
διαδίκτυο στο κεφάλαιο αναλύεται η προτεινόμενη διομότιμη αρχιτεκτονική
διαμοιρασμού.
Σαν μια αρχική συνοπτική περιγραφή χωρίς βλάβη της γενικότητας σε κάθε σύστημα
κατανεμημένου σύγχρονου διαμοιρασμού πολυμέσων σε πραγματικό χρόνο (ΣΚΔ)1
μία πηγή (π.χ. ένας εξυπηρετητής) δημιουργεί ένα συρμό από τεμάχια ενός
αντικειμένου πολυμέσων το οποίο έχει ρυθμό παραγωγής δεδομένων μ bits ανά
δευτερόλεπτο. Κάθε δευτερόλεπτο διαιρείται σε ένα σύνολο από τεμάχια πλήθους
Nb. Έτσι λοιπόν τα τεμάχια δημιουργούνται με συχνότητα 1/Nb και το μέγεθος του
κάθε ενός είναι Lb=1/Nb bit. Αυτά στέλνονται σε ένα μικρό υποσύνολο των
συμμετεχόντων χρηστών (ακόμα και σε έναν). Συνεπώς κάθε χρήστης ανταλλάσει τα
τεμάχια αυτά με τους γείτονές του στον γράφο διαμοιρασμού με την χρήση ενός
δυναμικού κατανεμημένου χρονοπρογραμματιστή ανταλλαγής με σκοπό την λήψη
κάθε ενός από κάθε χρήστη- κόμβο μέσα σε ένα προκαθορισμένο χρονικό διάστημα
από την δημιουργία του.
1
Στην διεθνή βιβλιογραφία αναφέρεται σαν “p2p live streaming system” και από δω και στο εξής θα
αποκαλείται σύστημα κατανεμημένου διαμοιρασμού (ΣΚΔ) προς χάριν συντομίας.
41
Σχήμα 3.1 Στιγμιότυπο της κατάστασης του πίνακα περιεχομένων ενός
κόμβου
Για την επίτευξη αυτού του στόχου κάθε κόμβος διατηρεί και ανταλλάσει με τους
γείτονές του ένα πίνακα περιεχομένων τεμαχίων. Στο σημείο αυτό ορίζω σαν χρόνο
στησίματος (setup time) ts, και αποτελεί μία ακόμα παράμετρο του συστήματός, το
χρονικό διάστημα που μεσολαβεί από την δημιουργία ενός τεμα;χίου μέχρι τον
διαμοιρασμό του σε κάθε συμμετέχοντα κόμβο του συστήματος. Στον πίνακα
περιεχομένων τεμαχίων κάθε κόμβου βρίσκονται τα τεμάχια που δημιουργήθηκαν τα
τελευταία ts δευτερόλεπτα. Το πλήθος αυτών των τεμαχίων, και άρα το μέγεθος του
πίνακα, είναι Nb*ts. Κάθε τεμάχιο φυσικά μπορεί να βρίσκεται σε δύο καταστάσεις:
παρόν (που σημαίνει ότι έχει ληφθεί), απουσιάζον (που σημαίνει ότι δεν έχει
παραλειφθεί ακόμα). Για την ομαλή λειτουργία του χρονοπρογραμματιστή
ανταλλαγής κάθε κόμβος κάθε φορά που παραλαμβάνει ένα τεμάχιο ενημερώνει τους
κόμβους με τους οποίους συνδέεται στον γράφο διασύνδεσης για την κατάσταση του
πίνακα περιεχομένων τεμαχίων που διαθέτει. Στο Σχήμα 3.1 εικονίζεται ένα
στιγμιότυπο της κατάστασης του πίνακα περιεχομένων ενός κόμβου.
Συνοπτικά για την επίτευξη των απαιτήσεων στα ΣΚΔ όπως προαναφέρθηκαν οι
τεχνικοί στόχοι που πρέπει καλυφθούν είναι :η επίτευξη ενός υψηλού βαθμό χρήσης
του διαθέσιμου εύρους ζώνης των κόμβων που συμμετέχουν σε αυτό, ο γρήγορος
42
ΑΤΕΙ ΜΕΣΟΛΟΓΓΙΟΥΤΜΗΜΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ &ΔΙΚΤΥΩΝ.pdf
ΑΤΕΙ ΜΕΣΟΛΟΓΓΙΟΥΤΜΗΜΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ &ΔΙΚΤΥΩΝ.pdf
ΑΤΕΙ ΜΕΣΟΛΟΓΓΙΟΥΤΜΗΜΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ &ΔΙΚΤΥΩΝ.pdf
ΑΤΕΙ ΜΕΣΟΛΟΓΓΙΟΥΤΜΗΜΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ &ΔΙΚΤΥΩΝ.pdf
ΑΤΕΙ ΜΕΣΟΛΟΓΓΙΟΥΤΜΗΜΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ &ΔΙΚΤΥΩΝ.pdf
ΑΤΕΙ ΜΕΣΟΛΟΓΓΙΟΥΤΜΗΜΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ &ΔΙΚΤΥΩΝ.pdf
ΑΤΕΙ ΜΕΣΟΛΟΓΓΙΟΥΤΜΗΜΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ &ΔΙΚΤΥΩΝ.pdf
ΑΤΕΙ ΜΕΣΟΛΟΓΓΙΟΥΤΜΗΜΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ &ΔΙΚΤΥΩΝ.pdf
ΑΤΕΙ ΜΕΣΟΛΟΓΓΙΟΥΤΜΗΜΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ &ΔΙΚΤΥΩΝ.pdf
ΑΤΕΙ ΜΕΣΟΛΟΓΓΙΟΥΤΜΗΜΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ &ΔΙΚΤΥΩΝ.pdf
ΑΤΕΙ ΜΕΣΟΛΟΓΓΙΟΥΤΜΗΜΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ &ΔΙΚΤΥΩΝ.pdf
ΑΤΕΙ ΜΕΣΟΛΟΓΓΙΟΥΤΜΗΜΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ &ΔΙΚΤΥΩΝ.pdf
ΑΤΕΙ ΜΕΣΟΛΟΓΓΙΟΥΤΜΗΜΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ &ΔΙΚΤΥΩΝ.pdf
ΑΤΕΙ ΜΕΣΟΛΟΓΓΙΟΥΤΜΗΜΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ &ΔΙΚΤΥΩΝ.pdf
ΑΤΕΙ ΜΕΣΟΛΟΓΓΙΟΥΤΜΗΜΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ &ΔΙΚΤΥΩΝ.pdf
ΑΤΕΙ ΜΕΣΟΛΟΓΓΙΟΥΤΜΗΜΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ &ΔΙΚΤΥΩΝ.pdf

Más contenido relacionado

Similar a ΑΤΕΙ ΜΕΣΟΛΟΓΓΙΟΥΤΜΗΜΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ &ΔΙΚΤΥΩΝ.pdf

VET4SBO Level 3 module 1 - unit 2 - 1.0 gr
VET4SBO Level 3   module 1 - unit 2 - 1.0 grVET4SBO Level 3   module 1 - unit 2 - 1.0 gr
VET4SBO Level 3 module 1 - unit 2 - 1.0 grKarel Van Isacker
 
4. Δίκτυα.pdf
4. Δίκτυα.pdf4. Δίκτυα.pdf
4. Δίκτυα.pdfsdeflorinas
 
Κεφ 3 - Υλικό - Εφαρμογές Υπολογιστών
Κεφ 3 - Υλικό - Εφαρμογές ΥπολογιστώνΚεφ 3 - Υλικό - Εφαρμογές Υπολογιστών
Κεφ 3 - Υλικό - Εφαρμογές Υπολογιστώνleftos21
 
Angelos kaltsikis
Angelos kaltsikisAngelos kaltsikis
Angelos kaltsikisISSEL
 
Τεχνολογία Δικτύων Επικοινωνιών Θεωρία κεφ. 7
Τεχνολογία Δικτύων Επικοινωνιών Θεωρία κεφ. 7Τεχνολογία Δικτύων Επικοινωνιών Θεωρία κεφ. 7
Τεχνολογία Δικτύων Επικοινωνιών Θεωρία κεφ. 7Theodoros Leftheroudis
 
Christodoulou_Noise Loggers Application_30-10-08
Christodoulou_Noise Loggers Application_30-10-08Christodoulou_Noise Loggers Application_30-10-08
Christodoulou_Noise Loggers Application_30-10-08Chris Christodoulou
 
Δίκτυα - Κεφάλαιο 2
Δίκτυα - Κεφάλαιο 2Δίκτυα - Κεφάλαιο 2
Δίκτυα - Κεφάλαιο 2Katerina Drimili
 
Observing real smartphone aplplications over multipath tcp
Observing real smartphone aplplications over multipath tcpObserving real smartphone aplplications over multipath tcp
Observing real smartphone aplplications over multipath tcpEvangelosKliaris
 
Πρωτόκολλα και Αρχιτεκτονική δικτύου, το μοντέλο OSI
Πρωτόκολλα και Αρχιτεκτονική δικτύου, το μοντέλο OSIΠρωτόκολλα και Αρχιτεκτονική δικτύου, το μοντέλο OSI
Πρωτόκολλα και Αρχιτεκτονική δικτύου, το μοντέλο OSIΙωάννου Γιαννάκης
 
Ελευθέριος Χατζηπέτρου
Ελευθέριος ΧατζηπέτρουΕλευθέριος Χατζηπέτρου
Ελευθέριος ΧατζηπέτρουISSEL
 
Σωτήρης Μπέης
Σωτήρης ΜπέηςΣωτήρης Μπέης
Σωτήρης ΜπέηςISSEL
 
Kefalaio 1 arxes_diktywn_epikoinwniwn_epanalhpsh
Kefalaio 1 arxes_diktywn_epikoinwniwn_epanalhpshKefalaio 1 arxes_diktywn_epikoinwniwn_epanalhpsh
Kefalaio 1 arxes_diktywn_epikoinwniwn_epanalhpshElefterios Nathanailidis
 
Εισαγωγή στην Ποιότητα Υπηρεσιών (QoS) [Έγγραφο]
Εισαγωγή στην Ποιότητα Υπηρεσιών (QoS) [Έγγραφο]Εισαγωγή στην Ποιότητα Υπηρεσιών (QoS) [Έγγραφο]
Εισαγωγή στην Ποιότητα Υπηρεσιών (QoS) [Έγγραφο]Stavros Skamagkis
 
Virtualized Cognitive Network Architecture for 5G Cellular Networks
Virtualized Cognitive Network Architecture for 5G Cellular NetworksVirtualized Cognitive Network Architecture for 5G Cellular Networks
Virtualized Cognitive Network Architecture for 5G Cellular NetworksGeorge Stefanidis
 
Pantelidou Eirini: Design and development of a system for incremental static ...
Pantelidou Eirini: Design and development of a system for incremental static ...Pantelidou Eirini: Design and development of a system for incremental static ...
Pantelidou Eirini: Design and development of a system for incremental static ...Manos Tsardoulias
 
Panagiotis Doxopoulos
Panagiotis DoxopoulosPanagiotis Doxopoulos
Panagiotis DoxopoulosISSEL
 
Konstantinos Koukoutegos Diploma Thesis Presentation
Konstantinos Koukoutegos Diploma Thesis PresentationKonstantinos Koukoutegos Diploma Thesis Presentation
Konstantinos Koukoutegos Diploma Thesis PresentationISSEL
 

Similar a ΑΤΕΙ ΜΕΣΟΛΟΓΓΙΟΥΤΜΗΜΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ &ΔΙΚΤΥΩΝ.pdf (20)

VET4SBO Level 3 module 1 - unit 2 - 1.0 gr
VET4SBO Level 3   module 1 - unit 2 - 1.0 grVET4SBO Level 3   module 1 - unit 2 - 1.0 gr
VET4SBO Level 3 module 1 - unit 2 - 1.0 gr
 
4. Δίκτυα.pdf
4. Δίκτυα.pdf4. Δίκτυα.pdf
4. Δίκτυα.pdf
 
Architecture of LAN's
Architecture of LAN's Architecture of LAN's
Architecture of LAN's
 
Κεφ 3 - Υλικό - Εφαρμογές Υπολογιστών
Κεφ 3 - Υλικό - Εφαρμογές ΥπολογιστώνΚεφ 3 - Υλικό - Εφαρμογές Υπολογιστών
Κεφ 3 - Υλικό - Εφαρμογές Υπολογιστών
 
Angelos kaltsikis
Angelos kaltsikisAngelos kaltsikis
Angelos kaltsikis
 
Τεχνολογία Δικτύων Επικοινωνιών Θεωρία κεφ. 7
Τεχνολογία Δικτύων Επικοινωνιών Θεωρία κεφ. 7Τεχνολογία Δικτύων Επικοινωνιών Θεωρία κεφ. 7
Τεχνολογία Δικτύων Επικοινωνιών Θεωρία κεφ. 7
 
Christodoulou_Noise Loggers Application_30-10-08
Christodoulou_Noise Loggers Application_30-10-08Christodoulou_Noise Loggers Application_30-10-08
Christodoulou_Noise Loggers Application_30-10-08
 
Δίκτυα - Κεφάλαιο 2
Δίκτυα - Κεφάλαιο 2Δίκτυα - Κεφάλαιο 2
Δίκτυα - Κεφάλαιο 2
 
Observing real smartphone aplplications over multipath tcp
Observing real smartphone aplplications over multipath tcpObserving real smartphone aplplications over multipath tcp
Observing real smartphone aplplications over multipath tcp
 
Πρωτόκολλα και Αρχιτεκτονική δικτύου, το μοντέλο OSI
Πρωτόκολλα και Αρχιτεκτονική δικτύου, το μοντέλο OSIΠρωτόκολλα και Αρχιτεκτονική δικτύου, το μοντέλο OSI
Πρωτόκολλα και Αρχιτεκτονική δικτύου, το μοντέλο OSI
 
Ελευθέριος Χατζηπέτρου
Ελευθέριος ΧατζηπέτρουΕλευθέριος Χατζηπέτρου
Ελευθέριος Χατζηπέτρου
 
Σωτήρης Μπέης
Σωτήρης ΜπέηςΣωτήρης Μπέης
Σωτήρης Μπέης
 
Kefalaio 1 arxes_diktywn_epikoinwniwn_epanalhpsh
Kefalaio 1 arxes_diktywn_epikoinwniwn_epanalhpshKefalaio 1 arxes_diktywn_epikoinwniwn_epanalhpsh
Kefalaio 1 arxes_diktywn_epikoinwniwn_epanalhpsh
 
Εισαγωγή στην Ποιότητα Υπηρεσιών (QoS) [Έγγραφο]
Εισαγωγή στην Ποιότητα Υπηρεσιών (QoS) [Έγγραφο]Εισαγωγή στην Ποιότητα Υπηρεσιών (QoS) [Έγγραφο]
Εισαγωγή στην Ποιότητα Υπηρεσιών (QoS) [Έγγραφο]
 
Virtualized Cognitive Network Architecture for 5G Cellular Networks
Virtualized Cognitive Network Architecture for 5G Cellular NetworksVirtualized Cognitive Network Architecture for 5G Cellular Networks
Virtualized Cognitive Network Architecture for 5G Cellular Networks
 
Kef08
Kef08Kef08
Kef08
 
Pantelidou Eirini: Design and development of a system for incremental static ...
Pantelidou Eirini: Design and development of a system for incremental static ...Pantelidou Eirini: Design and development of a system for incremental static ...
Pantelidou Eirini: Design and development of a system for incremental static ...
 
Panagiotis Doxopoulos
Panagiotis DoxopoulosPanagiotis Doxopoulos
Panagiotis Doxopoulos
 
Konstantinos Koukoutegos Diploma Thesis Presentation
Konstantinos Koukoutegos Diploma Thesis PresentationKonstantinos Koukoutegos Diploma Thesis Presentation
Konstantinos Koukoutegos Diploma Thesis Presentation
 
Routing
RoutingRouting
Routing
 

Más de HanaTiti

TRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdf
TRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdfTRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdf
TRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdfHanaTiti
 
TRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdf
TRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdfTRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdf
TRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdfHanaTiti
 
IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...
IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...
IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...HanaTiti
 
THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...
THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...
THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...HanaTiti
 
Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...
Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...
Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...HanaTiti
 
Nhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdf
Nhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdfNhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdf
Nhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdfHanaTiti
 
Pháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdf
Pháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdfPháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdf
Pháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdfHanaTiti
 
Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...
Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...
Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...HanaTiti
 
The impact of education on unemployment incidence - micro evidence from Vietn...
The impact of education on unemployment incidence - micro evidence from Vietn...The impact of education on unemployment incidence - micro evidence from Vietn...
The impact of education on unemployment incidence - micro evidence from Vietn...HanaTiti
 
Deteminants of brand loyalty in the Vietnamese neer industry.pdf
Deteminants of brand loyalty in the Vietnamese neer industry.pdfDeteminants of brand loyalty in the Vietnamese neer industry.pdf
Deteminants of brand loyalty in the Vietnamese neer industry.pdfHanaTiti
 
Phát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdf
Phát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdfPhát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdf
Phát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdfHanaTiti
 
The current situation of English language teaching in the light of CLT to the...
The current situation of English language teaching in the light of CLT to the...The current situation of English language teaching in the light of CLT to the...
The current situation of English language teaching in the light of CLT to the...HanaTiti
 
Quản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdf
Quản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdfQuản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdf
Quản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdfHanaTiti
 
Sự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdf
Sự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdfSự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdf
Sự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdfHanaTiti
 
An Investigation into the Effect of Matching Exercises on the 10th form Stude...
An Investigation into the Effect of Matching Exercises on the 10th form Stude...An Investigation into the Effect of Matching Exercises on the 10th form Stude...
An Investigation into the Effect of Matching Exercises on the 10th form Stude...HanaTiti
 
Đánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdf
Đánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdfĐánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdf
Đánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdfHanaTiti
 
Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...
Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...
Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...HanaTiti
 
Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...
Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...
Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...HanaTiti
 
PHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdf
PHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdfPHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdf
PHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdfHanaTiti
 
ENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdf
ENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdfENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdf
ENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdfHanaTiti
 

Más de HanaTiti (20)

TRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdf
TRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdfTRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdf
TRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdf
 
TRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdf
TRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdfTRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdf
TRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdf
 
IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...
IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...
IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...
 
THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...
THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...
THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...
 
Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...
Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...
Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...
 
Nhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdf
Nhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdfNhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdf
Nhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdf
 
Pháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdf
Pháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdfPháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdf
Pháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdf
 
Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...
Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...
Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...
 
The impact of education on unemployment incidence - micro evidence from Vietn...
The impact of education on unemployment incidence - micro evidence from Vietn...The impact of education on unemployment incidence - micro evidence from Vietn...
The impact of education on unemployment incidence - micro evidence from Vietn...
 
Deteminants of brand loyalty in the Vietnamese neer industry.pdf
Deteminants of brand loyalty in the Vietnamese neer industry.pdfDeteminants of brand loyalty in the Vietnamese neer industry.pdf
Deteminants of brand loyalty in the Vietnamese neer industry.pdf
 
Phát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdf
Phát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdfPhát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdf
Phát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdf
 
The current situation of English language teaching in the light of CLT to the...
The current situation of English language teaching in the light of CLT to the...The current situation of English language teaching in the light of CLT to the...
The current situation of English language teaching in the light of CLT to the...
 
Quản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdf
Quản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdfQuản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdf
Quản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdf
 
Sự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdf
Sự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdfSự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdf
Sự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdf
 
An Investigation into the Effect of Matching Exercises on the 10th form Stude...
An Investigation into the Effect of Matching Exercises on the 10th form Stude...An Investigation into the Effect of Matching Exercises on the 10th form Stude...
An Investigation into the Effect of Matching Exercises on the 10th form Stude...
 
Đánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdf
Đánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdfĐánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdf
Đánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdf
 
Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...
Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...
Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...
 
Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...
Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...
Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...
 
PHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdf
PHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdfPHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdf
PHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdf
 
ENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdf
ENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdfENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdf
ENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdf
 

Último

ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 1ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ  ΜΕΡΟΣ 1ο ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ  ΜΕΡΟΣ 1ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 1ο Χρύσα Παπακωνσταντίνου
 
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣ
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣΗ ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣ
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣΘεόδωρος Μαραγκούλας
 
Μαθητικές καταλήψεις
Μαθητικές                                  καταλήψειςΜαθητικές                                  καταλήψεις
Μαθητικές καταλήψειςDimitra Mylonaki
 
-Διψήφιοι αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη
-Διψήφιοι  αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη-Διψήφιοι  αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη
-Διψήφιοι αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξηΟΛΓΑ ΤΣΕΧΕΛΙΔΟΥ
 
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptxAthina Tziaki
 
Μαθητικά συμβούλια .
Μαθητικά συμβούλια                                  .Μαθητικά συμβούλια                                  .
Μαθητικά συμβούλια .Dimitra Mylonaki
 
Σουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνηΣουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνηTheodora Chandrinou
 
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2οΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2οΧρύσα Παπακωνσταντίνου
 

Último (10)

ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΨΗ 2024
ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ  : ΕΠΑΝΑΛΗΨΗ 2024ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ  : ΕΠΑΝΑΛΗΨΗ 2024
ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΨΗ 2024
 
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 1ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ  ΜΕΡΟΣ 1ο ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ  ΜΕΡΟΣ 1ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 1ο
 
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣ
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣΗ ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣ
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ 2008 ΓΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟΥΣ
 
Σεβασμός .
Σεβασμός                                   .Σεβασμός                                   .
Σεβασμός .
 
Μαθητικές καταλήψεις
Μαθητικές                                  καταλήψειςΜαθητικές                                  καταλήψεις
Μαθητικές καταλήψεις
 
-Διψήφιοι αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη
-Διψήφιοι  αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη-Διψήφιοι  αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη
-Διψήφιοι αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη
 
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
 
Μαθητικά συμβούλια .
Μαθητικά συμβούλια                                  .Μαθητικά συμβούλια                                  .
Μαθητικά συμβούλια .
 
Σουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνηΣουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνη
 
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2οΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
 

ΑΤΕΙ ΜΕΣΟΛΟΓΓΙΟΥΤΜΗΜΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ &ΔΙΚΤΥΩΝ.pdf

  • 1. ΑΤΕΙ ΜΕΣΟΛΟΓΓΙΟΥ ΤΜΗΜΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ & ΔΙΚΤΥΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «Σύγχρονος κλιμακούμενος διαμοιρασμός βίντεο πραγματικού χρόνου με διομότιμα συστήματα» Τσακανίκας Γιαννακόπουλος Ιωάννης Ελευθέριος ΝΑΥΠΑΚΤΟΣ ΟΚΤΩΒΡΙΟΣ 2010 1
  • 2. 2
  • 3. Ευχαριστίες Θεωρούμε ειλικρινή υποχρέωση μας, να εκφράσουμε τις ευχαριστίες μας, στον επόπτη και καθηγητή μας Δρ. Νικόλαο Ευθιμιόπουλο, για την ευκαιρία που μας έδωσε να ασχοληθούμε με ένα τόσο ενδιαφέρον θέμα το οποίο μας δίδαξε πόσο αναγκαίο είναι το επάγγελμα μας καθώς επίσης και για την πολύτιμη καθοδήγηση και βοήθεια που μας προσέφερε όλο αυτό το διάστημα, για την σωστή εκπόνηση της παρούσας πτυχιακής εργασίας. Τέλος θα θέλαμε να ευχαριστήσουμε και τους λοιπούς καθηγητές μας, καθώς συνέβαλαν και εκείνοι με τις γνώσεις που μας έχουν μεταλαμπαδεύσει κατά τη διάρκεια της φοίτησης μας, στην σωστή διαμόρφωση του εν λόγω θέματος. 3
  • 4. 4
  • 5. Περίληψη Περιληπτικά, στη συγκεκριμένη εργασία μελετήθηκε με την μέθοδο των προσομοιώσεων ένα διομότιμο σύστημα σύγχρονου διαμοιρασμού αντικειμένων. Επιπλέον μελετήθηκε το περιβάλλον και οι συνθήκες λειτουργίας ενός τέτοιου συστήματος. καθώς και τα χαρακτηριστικά του. Αποτέλεσμα της μελέτης αυτής είναι η εξαγωγή συμπερασμάτων σχετικά με τις απαιτήσεις που πρέπει να πληρούνται κατά τη δημιουργία ενός διομότιμου συστήματος σύγχρονου διαμοιρασμού αντικειμένων και οι τεχνικοί στόχοι που πρέπει αυτό να ικανοποιεί. Με αυτά τα κριτήρια βγήκαν και συμπεράσματα για την εύρυθμη λειτουργία ενός τέτοιου συστήματος. Για την λειτουργία ενός τέτοιου συστήματος ορίζονται οι ακόλουθες απαιτήσεις:  Μεγιστοποίηση της χρήσης από το σύστημα του διαθέσιμου εύρους ζώνης των συμμετεχόντων κόμβων. Φυσικά, οι κόμβοι έχουν ετερογενείς τιμές του διαθέσιμου εύρους ζώνης και, μάλιστα, με μεγάλη διασπορά.  Ελαχιστοποίηση της καθυστέρησης από τη στιγμή δημιουργίας ενός αντικειμένου μέχρι τον διαμοιρασμό του σε κάθε συμμετέχοντα κόμβο.  Ομοιόμορφη διαρκής κατανομή του συνολικού εύρους ζώνης του συστήματος στους συμμετέχοντες κόμβους.  Ανεκτικότητα του συστήματος στη δυναμική συμπεριφορά των χρηστών που προκαλείται από εισόδους και εξόδους των χρηστών στο σύστημα σε μη προκαθορισμένες χρονικές στιγμές.  Ικανότητα κλιμάκωσης του συστήματος σε αριθμό συμμετεχόντων χρηστών κάτι που επάγει την κατανεμημένη διαχείριση του συστήματος.  Προσαρμογή του σχεδιαζόμενου συστήματος στην κίνηση του δικτύου στο οποίο αυτό επικάθεται και ανεκτικότητά του στις μεταβολές του εύρους ζώνης των συμμετεχόντων κόμβων.  Ελαχιστοποίηση του φορτίου το οποίο εισάγει η λειτουργία του συστήματος στο δίκτυο. 5
  • 6. 6
  • 7. Abstract Peer-to-peer live streaming is a network application, where peers (users) contribute their upload bandwidth for the real time distribution of a video stream. The objective of this work is the optimization of this data diffusion with a distributed and self-organized architecture. Peers have heterogeneous and dynamic uploading bandwidth. This fact combined with the characteristics of the topology of the underlying network and the dynamic traffic conditions e.g. latency create a volatile and complex environment for P2P live streaming delivery, which strongly affect the success of a P2P system measured by a number of performance metrics. The first important factor is the uploading bandwidth utilization that corresponds to the ability of the system to exploit as much as possible of the overall uploading bandwidth of the participating peers. The maximization of the upload bandwidth utilization increases the video playback delivery rate and ensures the stability of the distribution. Equally important parameter is the setup time defined as the time interval between the generation of a block from an origin server and its delivery to every peer in the system. Furthermore, a P2P live streaming system has to remain stable and its delivery rate must remain high in a dynamic environment, where peers arrive and depart randomly. .Finally, fairness among nodes indicates the ability of the system to distribute continuously and uniformly the aggregate uploading bandwidth to the participating peers. This ensures that every peer will acquire a percentage of blocks above a critical threshold for an “affordable” video playback regardless the aggregate uploading bandwidth is not sufficient for the complete delivery of the video stream. 7
  • 8. 8
  • 9. Περιγραφή Εργασίας Για τη λειτουργία του προτεινόμενου συστήματος απαιτείται η δημιουργία ενός γράφου διασύνδεσης. Ως γράφος διασύνδεσης ορίζεται ο γράφος που προκύπτει αν κάθε κόμβος συνδεθεί με ένα μικρό υποσύνολο των συμμετεχόντων κόμβων που ονομάζονται και γείτονες του κόμβου. Για την ικανοποίηση των προαναφερθεισών απαιτήσεων. μελετήθηκαν τα χαρακτηριστικά του γράφου διασύνδεσης και προέκυψε ότι κάθε κόμβος: α) πρέπει να έχει γείτονες με όσο το δυνατόν μικρότερη δικτυακή καθυστέρηση μεταξύ τους, β) πρέπει να έχει αριθμό εξερχόμενων συνδέσεων ανάλογο με το εύρος ζώνης του, γ) οι συνδέσεις αυτές πρέπει να κατανέμονται ομοιόμορφα στους συμμετέχοντες κόμβους για την ικανοποίηση των αναγκών όλων των κόμβων, δ) οι κόμβοι με σχετικά μεγάλο εύρος ζώνης πρέπει να ομαδοποιούνται στο γράφο με σκοπό την γρήγορη αρχικά διάχυση του αντικειμένου και ε) ο γράφος διασύνδεσης πρέπει να αναδιατάσσεται δυναμικά έτσι ώστε να διατηρεί τις ιδιότητες αυτές στο δυναμικό δικτυακό περιβάλλον που επικάθεται και για δυναμική συμπεριφορά των συμμετεχόντων κόμβων. Για την ικανοποίηση αυτών των τεχνικών στόχων αναπτύχθηκε μία δομή του γράφου που ικανοποιεί αυτά τα χαρακτηριστικά. Η βελτιστοποίηση του γράφου γίνεται μέσω αλγορίθμων κατά την λειτουργία των οποίων κάθε κόμβος επιλέγει περιοδικά ένα τυχαίο κόμβο ο οποίος είναι γείτονάς του στον γράφο διασύνδεσης. Μεταξύ των δύο αυτών κόμβων εκτελείται ανακατανομή των γειτόνων τους με σκοπό την εξισορρόπηση του αριθμού των γειτόνων που κάθε ένας από αυτούς διαθέτει. αλλά και την ελαχιστοποίηση της μέσης καθυστέρησης που έχουν αθροιστικά οι κόμβοι από τους γείτονές τους. Οι αλλαγές στον γράφο διασύνδεσης που προκύπτουν από κάθε εκτέλεση του αλγορίθμου αυτού μεταβάλλουν και τους γείτονες ενός υποσυνόλου κόμβων εκτός των δύο συμμετεχόντων στον αλγόριθμο εναλλαγής. Οι αλλαγές αυτές επιφέρουν άλλες αλλαγές με την σειρά τους και έτσι προκύπτει τελικά ένας γράφος διασύνδεσης όπου κάθε κόμβος έχει τον προκαθορισμένο αριθμό γειτόνων και. παράλληλα. ελαχιστοποιείται το άθροισμα των μέσων δικτυακών καθυστερήσεων που έχουν οι συμμετέχοντες κόμβοι με τους γείτονές τους. 9
  • 10. Για τον διαμοιρασμό του αντικειμένου ο δημιουργός του το τεμαχίζει σε τεμάχια (μπλοκ). Τα τεμάχια προωθούνται σε ένα πολύ μικρό σύνολο κόμβων και αποτελούν τις λογικές μονάδες δεδομένων που ανταλλάσσονται μεταξύ των κόμβων. Σκοπός είναι ο διαμοιρασμός του κάθε τεμαχίου σε κάθε κόμβο μέσα σε ένα προκαθορισμένο χρονικό διάστημα. Για την ανταλλαγή τεμαχίων μεταξύ των γειτόνων του γράφου διασύνδεσης του προς διαμοιρασμού αντικειμένου μεταξύ των συμμετεχόντων κόμβων αναπτύχθηκε ένας Κατανεμημένος Χρονοπρογραμματιστής Ανταλλαγής Τεμαχίων (ΚΧΑΤ). Τεχνικοί στόχοι της ανάπτυξης του ΚΧΑΜ αποτέλεσαν α) ο χρονισμός διαπραγμάτευσης αποστολής τεμαχίων μεταξύ κάθε αποστολέα και παραλήπτη, β) η γρήγορη διάδοση πρόσφατα παραγόμενων τεμαχίων και σπάνιων σε μία γειτονία του γράφου διασύνδεσης (τεμάχια που δημιουργήθηκαν μεταγενέστερα από άλλα ευνοούνται από το χρονοπρογραμματιστή αρχικά για την επιτυχή και γρήγορη διάδοσή τους σε μία κρίσιμη μάζα από κόμβους), γ) η τροφοδότηση όλων των κόμβων με ομοιόμορφο και σταθερό ρυθμό, δ) η προτεραιότητα σε κόμβους με μεγάλο εύρος ζώνης, ε) η αποφυγή μετάδοσης του ίδιου τεμαχίου από δύο αποστολείς προς τον ίδιο παραλήπτη και στ) η αποφυγή μιας κατάστασης όπου αποστολέας και παραλήπτης δεν έχουν τεμάχια προς ανταλλαγή. Ο χρονισμός του ΚΧΑΜ που αναπτύχθηκε αποτελείται από τρείς φάσεις. Στην πρώτη φάση που εκτελείται περιοδικά από κάθε αποστολέα εκδίδεται και αποστέλλεται στους πιθανούς παραλήπτες ένα σύνολο από «κουπόνια» μεγέθους ανάλογου με το εύρος ζώνης του αποστολέα. Στη δεύτερη φάση ο εκάστοτε παραλήπτης ζητά προκαταβολικά ένα τεμάχιο στην περίπτωση που επιλεγεί από τον αποστολέα για μετάδοση τεμαχίου. Στην τρίτη φάση ο αποστολέας επιλέγει τον παραλήπτη ακριβώς πριν την μετάδοση κάθε τεμαχίου και αποστέλλει το τεμάχιο που έχει ζητηθεί. Ο αλγόριθμος ο οποίος προτείνεται για τη δημιουργία κουπονιών έχει ως στόχο τη μεγιστοποίηση της χρήσης του εύρους ζώνης όλων των κόμβων και την ικανοποίηση των αναγκών κάθε συμμετέχοντα κόμβου. Είναι αυτός που, στην ουσία, καθορίζει τις ροές δεδομένων μεταξύ των γειτόνων του γράφου διασύνδεσης. Η χρησιμότητά του αναδεικνύεται σε περιπτώσεις όπου ο ρυθμός αναπαραγωγής του προς διαμοιρασμό αντικειμένου είναι παρόμοιος με το μέσο εύρος ζώνης του 10
  • 11. συστήματος. Οι απαιτήσεις του αλγορίθμου ζήτησης τεμαχίων μοντελοποιούνται μέσω της γραμμικής βελτιστοποίησης και διασφαλίζεται η γρήγορη και αποτελεσματική διάχυση των τεμαχίων ελαχιστοποιώντας την ύπαρξη ανενεργών πόρων. Τέλος, ο αλγόριθμος επιλογής γείτονα είναι αυτός που ρυθμίζει την ομοιόμορφη κατανομή του εύρους ζώνης στους συμμετέχοντες κόμβους, αλλά και δίνει προτεραιότητα στους κόμβους με μεγάλο εύρος ζώνης έτσι ώστε να επιτευχθεί ο γρήγορος διαμοιρασμός κάθε τεμαχίου και η ελαχιστοποίηση της καθυστέρησης του συστήματος. 11
  • 12. 12
  • 13. ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ΚΕΦΑΛΑΙΟ 1 Διομότιμα Συστήματα Peer to Peer 17 1.1. Eισαγωγή.......................................................................................................17 1.2. Οι πρώτες εφαρμογές Peer to Peer................................................................18 1.3. Σύγχρονες εφαρμογές Peer to Peer................................................................19 1.3.1. Napster.......................................................................................................20 1.3.2. SETI@home..............................................................................................21 1.3.3. Mixmaster Remailers.................................................................................22 1.3.4. Publius.......................................................................................................23 1.3.5. Gnutella......................................................................................................24 1.4. Συμπεράσματα...............................................................................................26 ΚΕΦΑΛΑΙΟ 2. ΠΡΟΣΟΜΟΙΩΣΗ ΔΙΚΤΥΩΝ ΣΤΟ OPNET Modeller. 29 2.1. Μοντέλο Δικτύου...............................................................................................30 2.2. Μοντέλο Κόμβων..............................................................................................33 2.3. Μοντέλο Επεξεργασίας.....................................................................................35 ΚΕΦΑΛΑΙΟ 3. Σύστημα κατανεμημένου Διαμοιρασμού ΣΚΔ 40 3.1. Η κατάσταση σήμερα στα ΣΚΔ.........................................................................43 3.2.Γράφος διασύνδεσης για ΣΚΔ............................................................................48 3.2.1. Εσωτερικός αλγόριθμος κατανεμημένης βελτιστοποίησης (ΕΣ-ΚΑΒ).........52 3.2.2. Εξωτερικός αλγόριθμος κατανεμημένης βελτιστοποίησης (ΕΞ-ΚΑΒ).........57 3.3. Αρχιτεκτονική κατανεμημένου χρονοπρογραμματιστή....................................59 3.3.1. Αλγόριθμος δημιουργίας κουπονιών..............................................................61 3.3.2. Προ- ενεργός αλγόριθμος ζήτησης μπλοκ......................................................63 3.3.3 Αλγόριθμος επιλογής γείτονα..........................................................................64 3.3.4 Ρόλος των παραμέτρων του χρονοπρογραμματιστή.......................................66 3.4. Αξιολόγηση του συστήματος.............................................................................66 3.5 Ελαχιστοποίηση κίνησης μεταξύ παρόχων. …………………………………..81 3.6. Σύγκριση με άλλα συστήματα………………………………………………...83 3.7. Συνοπτικά συμπεράσματα.................................................................................84 ΚΕΦΑΛΑΙΟ 4. Ευρήματα και μελλοντική εργασία 86 13
  • 14. 4.1 Ευρήματα............................................................................................................86 4.2 Μελλοντική εργασία συναφών προβλημάτων...................................................89 ΒΙΒΛΙΟΓΡΑΦΙΑ 92 14
  • 15. ΠΙΝΑΚΑΣ ΓΡΑΦΗΜΑΤΩΝ ΓΠ 3.1: Ενέργεια των συμμετασχόντων κόμβων.........................................................74 ΓΠ 3.2: Ταχύτητα ελαχιστοποίησης της ενέργειας......................................................74 ΓΠ 3.3. Αθροιστική ΣΠΠ και αριθμός γειτόνων..........................................................75 ΓΠ 3.4 Αθροιστική ΣΠΠ με ποσοστό επιτυχημένης παραλαβής μπλοκ.....................75 ΓΠ 3.5. Αθροιστική ΣΠΠ και ποσοστό διπλών μπλοκ................................................76 ΓΠ 3.6. Αθροιστική ΣΠΠ και αριθμός εισερχόμενων αιτήσεων κόμβων....................76 ΓΠ 3.7. Ποσοστό Επιτυχημένων μεταδόσεων με συχνότητα αιτήσεων......................77 ΓΠ 3.8. Μέσο ποσοστό διπλών μπλοκ και συχνότητα αιτήσεων................................77 ΓΠ 3.9. Μέσο ποσοστό μπλοκ και αριθμός γειτόνων στο γράφο................................78 ΓΠ 3.10. Μέσο ποσοστό επιτυχημένων μπλοκ και αριθμός κόμβων..........................78 ΓΠ 3.11. Αθροιστική ΣΠΠ και ποσοστό επιτυχημένων μεταδόσεων..........................79 ΓΠ 3.12. Δυναμικές συνθήκες και ποσοστό επιτυχημένων μεταδόσεων.....................79 ΓΠ 3.13. Αθροιστική ΣΠΠ και ποσοστό διπλών μπλοκ..............................................80 ΓΠ 3.14. Αθροιστική ΣΠΠ και ποσοστό κίνησης μεταξύ παρόχων............................82 15
  • 16. 16
  • 17. ΚΕΦΑΛΑΙΟ 1 Διομότιμα Συστήματα Peer to Peer Στο κεφάλαιο 1 παρουσιάζουμε την ιστορία των Peer to Peer δικτύων, τον λόγο δημιουργίας τους και το τι υπήρχε πριν από αυτά. Γίνεται αναφορά σε δημοφιλή Peer to Peer συστήματα που είτε υπάρχουν και λειτουργούν τώρα είτε όχι, καθώς και στις δυσκολίες που συνάντησαν κατά την διάρκεια της ζωής τους. Εξηγείται τέλος το πώς αυτά τα συστήματα επηρέασαν την μετέπειτα πορεία και ανάπτυξη των δικτύων Peer to Peer. Eισαγωγή Ο όρος Peer to Peer δημιουργήθηκε για να περιγράψει τα δίκτυα εκείνα τα οποία έχουν την απαίτηση οι χρήστες τους να μοιράζονται με τα υπόλοιπα μέλη του δικτύου τα αρχεία τους, τους υπολογιστικούς τους πόρους ή οτιδήποτε άλλο απαιτηθεί για κάποιο κοινό σχέδιο. Πριν δημιουργηθεί αυτός ο όρος και εφαρμοστεί στην πράξη, οι χρήστες του Internet αλληλεπιδρούσαν μεταξύ τους μεν αλλά με δύσχρηστους και αργούς τρόπους όπως πχ με τα mail και μέσω ομάδων συζητήσεων( Usenet, newsgroups). Μπορούσαν να στείλουν ο ένας στον άλλο αρχεία χωρίς να γίνεται έλεγχος των συναλλαγών αυτών από κάποιον κεντρικό φορέα. Δεν μπορούσαν όμως να συζητήσουν σε πραγματικό χρόνο πάνω σε αυτά, να τα οργανώσουν σε κατηγορίες ή να σημειώνουν σχόλια πάνω σε αυτά. Η εισαγωγή αυτού του τρόπου αλληλεπίδρασης στο διαδίκτυο θα βελτίωνε τον τρόπο με τον οποίο οι χρήστες επικοινωνούσαν μεταξύ τους. Αν και ο όρος αυτός υπάρχει εδώ και λίγο καιρό ο τρόπος λειτουργίας του και η αρχιτεκτονική του υπάρχουν εδώ και πολλά χρόνια. Στην πραγματικότητα η αρχιτεκτονική αυτή είναι η παλαιότερη στον κόσμο των επικοινωνιών. Τα τηλέφωνα και το τηλεφωνικό δίκτυο είναι Peer to Peer. Το ίδιο ισχύει και για την αρχική υλοποίηση του Usenet και για το IP routing. Το τελευταίο μάλιστα ακόμα και τώρα είναι Peer to Peer αν και δημιουργήθηκαν πολύ μεγαλύτερα σημεία πρόσβασης σε σχέση με τα υπόλοιπα. Το Internet στην αρχική του μορφή, δηλ. στην μορφή που είχε μέχρι και την δεκαετία του 1980 ήταν και αυτό Peer to Peer αφού κάθε τελικός κόμβος στο δίκτυο ήταν και Client και Server σε αντίθεση με το ιεραρχικό μοντέλο που επικρατεί στην δημοφιλέστερη σημερινή εφαρμογή(www). Οι αρχικές εφαρμογές Peer to Peer δημιουργήθηκαν για ένα αποκλειστικά πολιτικό σκοπό: Την αποφυγή της λογοκρισίας. Οι δημιουργοί των εφαρμογών αυτών βοήθησαν πολύ στην ανάπτυξη του. Η συνέχεια ήταν το να διαχωριστεί το φυσικό 17
  • 18. στρώμα από το εικονικό. Το να μπορεί κάποιος να διαβάσει αρχεία χωρίς να γνωρίζει το Domain Name του υπολογιστή που περιέχει το αρχείο αυτό. Λόγω της ευρύτατης διάδοσής τους( κυρίως στον τομές του File Sharing) έχει γίνει προφανές ότι με την αποκεντρωμένη δομή τους τα δίκτυα p2p μπορούν να οδηγήσουν σε επαναστατικές εφαρμογές και να χρησιμοποιηθούν σε περιπτώσεις όπου η ιεραρχική προσέγγιση είναι απλά αδύνατη. Οι πρώτες εφαρμογές Peer to Peer Όπως αναφέρθηκε και παραπάνω οι πρώτες εφαρμογές Peer to Peer ήταν το Usenet και το DNS. Το Usenet εισήγαγε το μη κεντρικό σύστημα διαχείρισης που κατά μεγάλο βαθμό υιοθέτησαν οι σύγχρονες εφαρμογές Peer to Peer όπως το Gnutella και Freenet. Επειδή μάλιστα το Usenet υπάρχει από το 1979 η αρχιτεκτονική του αποτελεί de facto πρότυπο για πολλές εφαρμογές. Συγκεκριμένα στο Usenet δεν υπάρχει μία κεντρική υπηρεσία που να ελέγχει το σύστημα ειδήσεων. Η προσθήκη μίας νέας ομάδας συζητήσεων αποτελεί ευθύνη μίας διαφανούς δημοκρατικής διαδικασίας. Χρησιμοποιώντας την ομάδα συζητήσεων news.admin καθένας που έχει λογαριασμό email μπορεί να στείλει με email την ψήφο του για το αν δέχεται την εισαγωγή της νέας ομάδας η όχι. Στο Usenet όμως υπάρχει και μία θεμελιωμένη μορφή αναρχίας. Αυτή είναι η ιεραρχία alt.* και η οποία μπορεί να παρακάμπτει την διαδικασία που αναφέρθηκε παραπάνω για την εισαγωγή νέας ομάδας. Καθένας μπορεί να εισάγει νέα ομάδα κάτω από αυτή την ιεραρχία χωρίς να πρέπει να γίνει ψηφοφορία στο news.admin. Από την άλλη κάθε διαχειριστής που δεν επιθυμεί την πρόσβαση στην ιεραρχία αυτή μπορεί να κόψει την πρόσβαση. Στα πρώτα χρόνια λειτουργίας του Usenet μία νέα ομάδα συζητήσεων μπορούσε να συνδεθεί με το υπόλοιπο δίκτυο με το να συνδεόταν με έναν τουλάχιστον server ειδήσεων(-συζητήσεων). Έτσι κάθε server μπορούσε να έχει πρόσβαση σε όλα τα μηνύματα αφού συνδεόταν με τους υπόλοιπους. Σήμερα όμως μιας και υπάρχει τρομακτική αύξηση τόσο στις ομάδες όσο και στα μηνύματα οι servers δεν κρατάνε όλα τα μηνύματα. Κάθε διαχειριστής αποφασίζει ποιες ομάδες θα έχει και για πόση χρονική διάρκεια θα κρατάει τα μηνύματα στη μνήμη του σε αντίθεση για παράδειγμα με το Freenet που θα δούμε αργότερα στο ίδιο κεφάλαιο στο οποίο οι διαχειριστές δεν έχουν έλεγχο του περιεχομένου που διακινούν οι διακομιστές τους. Οι εξυπηρετητές των ομάδων συζητήσεων συνδέονται μεταξύ τους με παρόμοιο τρόπο με αυτόν τον Peer to Peer δικτύων. Ένας εξυπηρετητής συνδέεται με κάποιους άλλους εξυπηρετητές. Αυτοί οι εξυπηρετητές συνδέονται με την σειρά τους με 18
  • 19. κάποιους άλλους και αυτό συνεχίζεται σε όλο το δίκτυο των εξυπηρετητών. Όταν ένας πελάτης συνδεδεμένος κάνει αίτηση για μήνυμα στον εξυπηρετητή που είναι συνδεδεμένος, ο εξυπηρετητής ελέγχει αν έχει το μήνυμα στην μνήμη του. Αν δεν το έχει τότε προωθεί την αίτηση στους άλλους εξυπηρετητές που είναι συνδεδεμένος. Αν και αυτοί δεν έχουν το μήνυμα τότε η αίτηση προωθείται εκ νέου. Αυτό συνεχίζεται μέχρι να βρεθεί το μήνυμα και το περιεχόμενό του. Ένα σημαντικό πλεονέκτημα στο πρωτόκολλο ομάδων συζητήσεων NNTP που πρέπει να ακολουθηθεί και από τα άλλα Peer to Peer συστήματα είναι το εξής. Τα μηνύματα περιέχουν και μία επικεφαλίδα “Path” στην οποία περιέχουν τις μεταδόσεις τους από ένα εξυπηρετητή σε άλλον. Έτσι αν ένας εξυπηρετητής Β αιτείται ενός μηνύματος στον εξυπηρετητή Α και ο Α διαπιστώσει πως το μήνυμα περιέχει στην επικεφαλίδα “Path” τον εξυπηρετητή Β, τότε δεν στέλνει το μήνυμα στον Β. Με τον τρόπο αυτό αποφεύγεται η πλημμύρα που προκαλείται από επαναλαμβανόμενα μηνύματα σε αντίθεση με το σύστημα Gnutella το οποίο θα αναλυθεί αργότερα. Ένα παράδειγμα του τρόπου σύνδεσης των διαφόρων εξυπηρετητών είναι αυτός που φαίνεται στο επόμενο παράδειγμα: Στην ομάδα συζητήσεων comp.lang.c++ στο νήμα(thread): “NULL” o χρήστης με το ψευδώνυμο Agent Mulder έστειλε ένα μήνυμα του οποίου η επικεφαλίδα “Path” περιέχει την εξής διαδρομή: Path:news.ntua.gr!news.grnet.gr!irazu.switch.ch!switch.ch!news.tele.dk! news.tele.dk!small.news.tele.dk!newsfeed.icl.net!newsfeed.fjserv.net!skynet.be! skynet.be!newshub1.home.nl!home.nl!not-for-mail Βλέπουμε πως κάποιος συνδεδεμένος στον εξυπηρετητή Νέων του Εθνικού Μετσόβιου Πολυτεχνείου βλέπει μηνύματα που δεν περιέχονται σε αυτόν τον εξυπηρετητή αλλά σε κάποιον του εξωτερικού. Είναι προφανής η λειτουργία και η ομότιμη σύνδεση των διαφόρων εξυπηρετητών. Σύγχρονες εφαρμογές Peer to Peer Ο όρος Peer to Peer έχει έρθει για να εφαρμοστεί σε δίκτυα τα οποία περιμένουν από τους τελικούς τους χρήστες να συνεισφέρουν αρχεία, υπολογιστικό χρόνο και άλλους πόρους για κάποιο κοινό οργανωμένο σχέδιο (shared project). Ακόμα πιο ενδιαφέρουσα από τα τεχνικά θεμέλια του συστήματος είναι οι κοινωνικές προοπτικές: με διάφορους τρόπους επιστρέφουν περιεχόμενο, αποτελέσματα και έλεγχο σε κανονικούς χρήστες. Στα ελληνικά ο όρος αποδίδεται συνήθως σαν «διομότιμα υπολογιστικά συστήματα». Βάσει του ορισμού αυτού από τις σύγχρονες εφαρμογές Peer to Peer είναι οι: 19
  • 20. Napster(μέχρι τον τερματισμό της λειτουργίας του λόγω μηνύσεων από την RIAA- ένωση δισκογραφικών εταιριών Αμερικής ), ICQ , Jabber, Popular Power, SETI@Home, Mixmaster Remailer, Gnutella, Freenet, Red Power , Publius, Free Haven. Αντίθετα γνωστές εφαρμογές που δεν ικανοποιούν τον ορισμό αυτό είναι τα emails και τα Dynamic DNS. Napster Το Napster αποτέλεσε ένα φαινόμενο. Ήταν η πρώτη δημοφιλής εφαρμογή Peer to Peer. Μέσα σε 16 μήνες λειτουργίας ξεπέρασε σε αριθμό χρηστών, από το Hotmail μέχρι τον πρωτοπόρο των Peer to Peer εφαρμογών το ICQ. Ήταν η πρώτη εφαρμογή που δημιουργήθηκε για να λύσει ένα πρόβλημα - το πρόβλημα του μοιράσματος αρχείων – ενώ οι τεχνολογικές λύσεις που εφάρμοσε ήταν βγαλμένες μέσα από τις ανάγκες της εφαρμογής και όχι το αντίθετο. Αυτές οι τεχνολογικές καινοτομίες και το πώς αυτές οδήγησαν στην γρήγορη διάδοση και ανάπτυξή του θα γίνουν κατανοητές στις επόμενες παραγράφους. Αρχικά το Napster κατάφερε και ξεπέρασε τον σκόπελο που έβαλαν οι μεγάλες φίρμες στην διάδοση των αρχείων μέσω του κλασσικού τρόπου από τα site. Δημιούργησε ένα μη “ιστοσελιδικό” τρόπο διάδοσης των αρχείων. Το Napster κατανόησε τα πλεονεκτήματα καθενός από τα κεντρικά και αποκεντρωμένα συστήματα λειτουργίας. Αφενός η χρήση των κεντρικών συστημάτων βοηθάει στη δημιουργία μηχανής αναζήτησης, καθώς και στην προσθήκη και διαγραφή αρχείων. Αφετέρου η χρήση αποκεντρωμένων λύνει τα προβλήματα διατήρησης των αρχείων αφού εισάγει τον τρόπο αποθήκευσης μέσα στους σκληρούς δίσκους των χρηστών που συνδέονται με το δίκτυο. Το Napster διατηρεί στους κεντρικούς υπολογιστές τη λίστα με τα αρχεία που έχει κάθε χρήστης που είναι συνδεδεμένος στο δίκτυό του. Όταν ένας χρήστης συνδέεται στο δίκτυο τότε το πρόγραμμα-πελάτης που είναι εγκατεστημένο στον υπολογιστή του ενημερώνει τον εξυπηρετητή για τα αρχεία δηλ. τα τραγούδια που διατηρεί ο χρήστης. Παρομοίως όταν ένας χρήστης φεύγει ο εξυπηρετητής ενημερώνεται κατάλληλα. Όταν ένας χρήστης ζητήσει ένα αρχείο τότε ο εξυπηρετητής ψάχνει μέσω της μηχανής αναζήτησης που διατηρεί για τους χρήστες που έχουν το συγκεκριμένο αρχείο και ενημερώνει τον χρήστη. Από κει και πέρα τον έλεγχο αναλαμβάνει το πρόγραμμα που είναι εγκατεστημένο στον χρήστη. Το πρόγραμμα αναλαμβάνει την επικοινωνία με τους άλλους χρήστες για να αρχίσει η διαδικασία αντιγραφής του αρχείου. Δηλ. το σύστημα ξεκινάει σαν κεντρικό στην πορεία όμως γίνεται αποκεντρωμένο. Το Napster με τον τρόπο που λειτουργεί οδηγεί στην πλήρη εκμετάλλευση των πόρων των χρηστών. Αφενός το να παίρνει κάποιος αρχεία μουσικής ή άλλου είδους από κάποιον άλλο δεν διαγράφει τα αρχεία από τον σκληρο δίσκο του χρήστη από 20
  • 21. όπου προήλθαν τα αρχεία αλλά στην πραγματικότητα αυξάνει τους πόρους στο δίκτυο του Napster αφού ο νέος χρήστης φιλοξενεί ένα εναλλακτικό αντίγραφο. Ακόμα και αν ο χρήστης που παίρνει αρχεία δεν μοιράζεται τα δικά του η λήψη αρχείων από αυτόν δεν έχει πρακτικό κόστος αφού το αρχείο δεν χάνεται. Αφετέρου άλλοι σημαντικοί πόροι όπως το εύρος ζώνης του δικτύου και οι κύκλοι λειτουργίας του επεξεργαστή δεν αντιγράφονται αλλά αναπληρώνονται. Αυτοί οι πόροι δεν μπορούν ούτε να εξαντληθούν ούτε να διατηρηθούν για μελλοντική χρήση. Αν δεν καταναλωθούν μέσα σε συγκεκριμένο χρονικό διάστημα χάνονται αλλά αμέσως αναπληρώνονται. Εξαιτίας αυτών των οικονομικών χαρακτηριστικών, η εκμετάλλευση του αχρησιμοποίητου εύρους και της ανενεργής μονάδας επεξεργασίας για την διάδοση των αρχείων μουσικής σημαίνει για την πλευρά του χρήστη δημιουργία πρόσθετης μουσικής με σχεδόν μηδαμινό κόστος γι αυτόν. Απασχολεί τους πόρους που αναφέρθηκαν για τους οποίους ο χρήστης έχει ήδη πληρώσει αλλά δεν χρησιμοποιεί πλήρως. Από τον τρόπο λειτουργίας του το Napster έγινε το πρωταρχικό παράδειγμα στον τρόπο που μπορεί να χρησιμοποιήσει κανείς την τεράστια δύναμη των υπολογιστών που συνδέονται στο Internet τα τελευταία 5 χρόνια. Εκμεταλλεύτηκε τις ταχύτατες συνδέσεις πολλών υπολογιστών στον κόσμο καθώς και την υπολογιστική τους ισχύ για να διαδίδονται μουσικά αρχεία δωρεάν και χωρίς να τα χάνει ο χρήστης που τα μοιράζεται. SETI@home Το SETI@home αποτελεί την πρώτη σπουδαία προσπάθεια του να εκμεταλλευθεί η μεγάλη υπολογιστική ισχύς των υπολογιστών στον κόσμο όταν αυτοί παραμένουν ανοιχτοί αλλά ανενεργοί. Το SETI@home είναι ένα σχέδιο επιστημόνων ανακάλυψης εξωγήινης νοημοσύνης. Δεν αποτελεί το πρώτο σχέδιο όμως. Υπάρχουν ήδη αρκετά στον κόσμο. Όλα όμως έχουν μια ουσιαστική διαφορά από το SETI@home. Χρησιμοποιούν πανάκριβους τόσο στην αγορά όσο και στην συντήρηση υπερυπολογιστές. Επίσης απαιτούν την παρουσία πολλών και εξειδικευμένων ατόμων για την ανάλυση των αποτελεσμάτων των υπολογιστών. Το SETI@home για οικονομικούς λόγους κυρίως αποφάσισε να απευθυνθεί στον κόσμο. Συγκεκριμένα πολλοί χρήστες αφήνουν τους υπολογιστές ανοικτούς για αρκετή ώρα χωρίς να λειτουργεί στο 100% ο κεντρικός επεξεργαστής. Έτσι δημιούργησε ένα Screen Saver που όταν ο χρήστης σταματούσε να εργάζεται, θα ετίθετο σε λειτουργία και θα επεξεργαζόταν διάφορα δεδομένα. Τα δεδομένα αυτά είναι σήματα που λαμβάνονται από μία τεράστια κεραία- τηλεσκόπιο η οποία ήδη χρησιμοποιούταν σε παρόμοιο πρόγραμμα και στη συνέχεια αποθηκεύονται σε κασέτες χωρητικότητας 35Gb. Ο τρόπος δειγματοληψίας των δεδομένων επέτρεπε σε μία κασέτα να χωράει δεδομένα 16 ωρών περίπου. Κάθε 21
  • 22. βδομάδα 10 κασέτες περίπου αποστέλλονται στο Berkeley την έδρα του SETI@home, και αφού κατηγοριοποιηθούν αποθηκεύονται. Στη συνέχεια τα δεδομένα επεξεργάζονται από ένα ισχυρό υπολογιστή για να αποσταλούν στους εγγεγραμμένους χρήστες. Τα δεδομένα χωρίζονται σε μικρά κομμάτια για να μπορούν να τα λάβουν και χρήστες με μικρές ταχύτητες. Το πρόγραμμα του χρήστη δηλ. το Screen Saver αφού λάβει τα δεδομένα κλείνει την σύνδεση και τα επεξεργάζεται για όσο καιρό χρειαστεί-από λεπτά μέχρι μέρες. Αφού τα επεξεργαστεί στη συνέχεια εγκαθιστά νέα σύνδεση, αποστέλλει τα αποτελέσματα και λαμβάνει νέα δεδομένα για επεξεργασία. Η επεξεργασία περιλαμβάνει τον έλεγχο κάποιων προϋποθέσεων στην συχνότητα του σήματος. Αν το σήμα ξεπεράσει κάποια όρια τότε αποστέλλεται στον κεντρικό υπολογιστή για να αποθηκευθούν σε βάση δεδομένων. Για διάφορους λόγους ο υπολογιστής ελέγχει την ακρίβεια των αποτελεσμάτων. Η καλή λειτουργία του σχεδίου δεν βασίστηκε μόνο στον εθελοντισμό των χρηστών ανά τον κόσμο αλλά και στην ευγενική χορηγία διαφόρων μεγάλων εταιριών που προμήθευσε το κεντρικό σύστημα με διάφορα μηχανήματα. Είναι προφανές πως για ένα τόσο φιλόδοξο εγχείρημα χρειάζεται και η συνδρομή εταιριών. Παρόλα αυτά το σύστημα που δημιουργήθηκε αποτελεί τον πιο ισχυρό υπολογιστή στον κόσμο με μηδαμινό κόστος σε σύγκριση με τον 2ο ταχύτερο. Ο πιο ισχυρός υπερυπολογιστής όταν ξεκίνησε το εγχείρημα ήταν ο ASCI White με κόστος 110 εκατομμύρια δολάρια και επεξεργαστική ισχύ 12,3 TFLOPS. Αντίθετα το σύστημα του SETI@home κοστίζει 500.000 δολάρια σαν αγορά και 200.000 δολάρια ανά έτος για την συντήρηση. Οι υπολογιστές των χρηστών δεν λαμβάνονται υπόψη στο κόστος γιατί αυτοί υπήρχαν ήδη πριν το πρόγραμμα και θα υπάρχουν και μετά. Η επεξεργαστική ισχύς ανέρχεται στα 20 TFLOPS. Το πρόγραμμα ενώ προγραμματίστηκε να λειτουργεί από το 1998 έως το 2000 τελικά είχε τόση επιτυχία που συνεχίζει μέχρι σήμερα. Το Seti@home είναι ιδιαίτερα ενδιαφέρον γιατί αποτελεί το πρώτο παράδειγμα υπολογιστικού δικτύου P2P (P2P computing system). Mixmaster Remailers Οι Remailers είναι μία από τις παλιότερες εφαρμογές Peer to Peer αλλά αντέχουν ακόμα. Αφενός γιατί συνεχώς βοηθούν τους δημιουργούς Peer to Peer καθώς δημιουργούν νέες εφαρμογές και αφετέρου γιατί η παρουσία τους εξυπηρετεί τους ανθρώπους οι οποίοι επιθυμούν την ανωνυμία των διαδικτυακών τους επικοινωνιών. Ό,τι μήνυμα στέλνει κάποιος σε ομάδα συζητήσεων ή ότι email στέλνει σε κάποιον/ους , αυτό διατηρεί στις επικεφαλίδες του όλους τους υπολογιστές από όπου έχει περάσει. Λόγω του γεγονότος αυτού κάποιος θα μπορούσε να βρει ότι ένα email το έστειλε ένας χρήστης που επιθυμεί την ανωνυμία του. Η χρήση καλών δικτύων 22
  • 23. Remailer όμως κάνει την διαδικασία ανεύρεσης του χρήστη που έστειλε μήνυμα μεγαλύτερη και δυσκολότερη, αφού το μήνυμα επαναπροωθείται ανώνυμα από τον έναν Remailer στον άλλον μέχρι τον τελικό αποδέκτη. Η πιο πρόσφατη έκδοση Remailers είναι οι Mixmaster Remailers που επίσης είναι γνωστοι ως Type 2 Remailers. Αυτοί είναι μία αναβαθμισμένη έκδοση των type 1 Remailers οι οποίοι είχαν κάποια κενά ασφαλείας. Οι Remailers εν συντομία λειτουργούν ως εξής. Αρχικά διατηρούν κάθε μήνυμα που τους αποστέλλεται για κάποια ώρα για να αποφύγουν αυτούς που παρακολουθούν την κίνηση των μηνυμάτων. Επίσης οι χρήστες κρυπτογραφούν τα μηνύματα με τα δημόσια κλειδιά των παραληπτών για να αποφύγουν τον έλεγχο από κακόβουλους διαχειριστές Remailers καθώς και για να είναι σίγουροι πως οι ενδιάμεσοι υπολογιστές δεν διαβάζουν τα μηνύματα. Ο Remailer όμως μπορεί να γνωρίζει τον αποστολέα και τον παραλήπτη. Για να μην γίνεται αυτό χρησιμοποιούνται πολλοί Remailers μεταξύ του αποστολέα και του παραλήπτη με παράλληλη κρυπτογράφηση με την τεχνική του Onion Routing. Αυτή η τεχνική επιτρέπει σε κάθε Remailer να γνωρίζει μόνο τον προηγούμενο κόμβο στην διαδρομή του μηνύματος. Επίσης όλα τα μηνύματα που φεύγουν από τον Remailer έχουν το ίδιο μέγεθος για να μπερδεύουν τους επιτιθέμενους καθώς και διαφορετική σειρά αναχώρησης από αυτή της άφιξης. Publius Η αρχιτεκτονική του Internet δεν επιτρέπει την ανώνυμη έκδοση κειμένων ή την προστασία από την λογοκρισία. Τα εκδοθέντα κείμενα έχουν συνήθως ένα URL που επιτρέπει σε κάποιον να βρει την αρχική διεύθυνση στο Internet που δημοσιεύτηκε και κατά συνέπεια αυτόν που το δημοσίευσε. Υπάρχουν όμως κάποιοι λόγοι για τους οποίους κάποιοι θα ήθελαν να δημοσιεύσουν τα κείμενα ανώνυμα. Ένας από αυτούς είναι για παράδειγμα οι πολιτικές διαφωνίες ή ο φόβος για τις αποδοκιμασίες που μπορεί να υποστεί ο συγγραφέας. Το Publius είναι ένα σύστημα βασισμένο στο Web για την έκδοση κειμένων ή άλλων αρχείων το οποίο είναι σχεδιασμένο έτσι ώστε να αποφεύγει τον έλεγχο και την λογοκρισία. Ένα αρχείο δημοσιευμένο στο Publius αντιγράφεται σε πολλούς διακομιστές έτσι ώστε να είναι δύσκολο σε κάποιον είτε άτομο είτε οργανωμένη ομάδα να διαγράψει το αρχείο αυτό. Η αντιγραφή αυτή σε πολλαπλούς διακομιστές προστατεύει και από μία διαδεδομένη μορφή επίθεσης σε διακομιστές την Distributed denial of service που έχει χρησιμοποιηθεί κατά κόρον για να καταστεί ένα αρχείο μη προσπελάσιμο. Ένα άλλο σημαντικό χαρακτηριστικό του Publius είναι πως δεν απαιτεί από κάποιον που εκδίδει ένα αρχείο να βάλει δώσει στοιχεία που να συνδέουν το αρχείο με κάποιον συγκεκριμένο υπολογιστή. 23
  • 24. Ο σχεδιασμός του Publius είναι τέτοιος έτσι ώστε να διευκολύνει τους απλούς χρήστες. Ιστοσελίδες γραμμένες σε Html, εικόνες ή οποιαδήποτε άλλα αρχεία μπορούν να δημοσιευθούν στο σύστημα. Τα αρχεία που δημοσιεύονται με το Publius μπορούν να προσπελασθούν από οποιονδήποτε browser σε συνδυασμό με την χρήση ενός Http Proxy που τρέχει είτε τοπικά είτε απομακρυσμένα. Και αυτό διότι αποκτούν URL που τοποθετείται στον browser ή ενσωματώνεται σε hyperlink. To Publius δεν είναι 100% σύστημα Peer to Peer. Ωστόσο έχει κάποια πλεονεκτήματα λόγω ακριβώς του γεγονότος αυτού, σε σχέση με συστήματα όπως το Gnutella. Ένα από αυτά είναι το ότι αν κάποιος εκδότης ενημερώσει ήδη δημοσιευμένο υλικό τότε όταν κάποιος προσπαθήσει να προσπελάσει αυτό το υλικό σίγουρα θα προσπελάσει την νέα εκδοχή. Επίσης το σύστημα επιτρέπει μόνο στον δημιουργό του υλικού να ανανεώσει το περιεχόμενο του υλικού ή να το διαγράψει. Με αυτόν τον τρόπο αποκλείει την περίπτωση παραποίησης του υλικού. Η αρχιτεκτονική του βασίζεται στην κρυπτογράφηση για να αποφευχθεί η πρόσβαση από τους διαχειριστές και κατά συνέπεια η λογοκρισία να είναι λιγότερη πιθανή. Η κρυπτογράφηση γίνεται με ένα κλειδί το οποίο χωρίζεται σε πολλά κομμάτια. Η ανάγνωση του αρχείου μπορεί όμως να γίνει με λίγα από αυτά τα κομμάτια και όχι απαραίτητα με όλα. Ο εκδότης δημοσιεύει το υλικό του σε πολλούς διακομιστές αλλά με διαφορετικό κομμάτι του κλειδιού. Έτσι ακόμα και αν κλείσουν πολλοί διακομιστές πάλι θα είναι προσβάσιμο. Ο εκδότης μόνο έχει την διεύθυνση URL του υλικού του και αυτός αποφασίζει τι θα το κάνει. Μπορεί για παράδειγμα να το δημοσιεύσει σε ομάδες συζητήσεων. Στη συνέχεια για την αποκρυπτογράφηση του υλικού απαιτείται η πρόσβαση σε τόσους διακομιστές όσους έχει ορίσει ο δημιουργός. Αν είναι προσβάσιμοι τότε μπορεί να αποκρυπτογραφηθεί. Αλλιώς δεν γίνεται. Με αυτόν τον τρόπο εξασφαλίζεται τόσο η ύπαρξη του υλικού αφού είναι δύσκολο να λογοκριθεί όσο και η απομόνωσή του όταν έχει περιεχόμενο πχ. ρατσιστικό. Μπορούν οι διακομιστές δηλ. αν διαπιστώσουν ότι το περιεχόμενο δεν είναι πρέπον να συμφωνήσουν να το διαγράψουν και να μην είναι δυνατή η πρόσβαση. Gnutella Το Gnutella είναι και αυτό ένα δίκτυο Peer to Peer πλήρως σύμφωνο με τον ορισμό που είχε δοθεί στις πρώτες σελίδες. Αυτό γίνεται γιατί η λειτουργία του δεν βασίζεται στην τοπολογία των καλωδίων και των routers διότι η συμμετοχή τους μπορεί να αλλάζει από λεπτό σε λεπτό. Το Gnutella δημιουργεί ένα εικονικό δίκτυο πάνω από το πραγματικό. Σε αντίθεση με το Internet όπου κάθε κόμβος έχει μια καλά ορισμένη διεύθυνση, το Gnutella δεν δίνει ονόματα με σημασία στους κόμβους. Μάλιστα το Gnutella με τις σύγχρονες εφαρμογές του κρύβει από τον χρήστη του, το στρώμα του Internet που 24
  • 25. βρίσκεται από κάτω του. Καθένας μπορεί να βρει αυτό που θέλει πληκτρολογώντας μία λέξη κλειδί και περιμένοντας τις απαντήσεις. Στο σχήμα 1.1 μπορούμε να δούμε πώς συνδέονται κόμβοι στο δίκτυο. Σχήμα1.1. Σύνδεση κόμβων στο δίκτυο Το Gnutella διαφοροποιείται από το Napster σε πολύ σημαντικό βαθμό στο ότι δεν βασίζεται σε κάποιο κεντρικό φορέα για την λειτουργία του. Το Napster αρχικά λειτουργεί με το να συνδεθεί ο χρήστης στον κεντρικό υπολογιστή www.napster.com. Αντίθετα ο χρήστης του Gnutella συνδέεται σε ένα κόμβο από αυτούς που διατηρεί στην μνήμη του. Από την στιγμή που συνδέεται, είναι πια μέσα στο δίκτυο και μπορεί να επικοινωνεί με άλλους κόμβους-χρήστες Από την στιγμή που συνδέεται στο δίκτυο του Gnutella ο χρήστης μπορεί να ψάξει για οτιδήποτε θέλει μέσα στους άλλους κόμβους που επικοινωνεί. Για παράδειγμα μπορεί να ψάξει για μία συγκεκριμένη συνταγή. Βάζει τις λέξεις κλειδιά που τον ενδιαφέρουν και περιμένει να του απαντήσουν οι άλλοι κόμβοι. Ανάμεσα στις απαντήσεις που παίρνει, διαλέγει αυτή που θέλει και την κατεβάζει στον υπολογιστή του. Στο επόμενο σχήμα μπορούμε ένα παράδειγμα λειτουργίας. 25
  • 26. Σχήμα 1.2. Αίτηση και απάντηση σε δίκτυο Gnutella Πρέπει να τονισθεί ότι το Gnutella δεν θέτει κάποιον περιορισμό ως προς το είδος των αιτήσεων και των αποκρίσεων. Η αίτηση μπορεί να είναι πχ ένα όνομα αρχείου ή ένα πρόγραμμα σε Java, οπότε η απόκριση θα είναι το αρχείο ή η έξοδος της εκτέλεσης του προγράμματος αντίστοιχα. Συνεπώς το Gnutella δεν είναι απλή εφαρμογή, αλλά πλατφόρμα πάνω στην οποία μπορούν να «χτισθούν» διάφορες εφαρμογές p2p, μεταξύ των οποίων και εφαρμογές κατανεμημένων εφαρμογών. Η αποκεντρωμένη λειτουργία του Gnutella έχει το σημαντικό πλεονέκτημα της ανοχής του σε απώλειες κόμβων. Κάθε κόμβος του Gnutella μπορεί να δράσει ως πύλη σύνδεσης με το δίκτυο και θεωρητικά κανένας δεν παίζει σημαντικότερο ρόλο από τους άλλους. Δεν υπάρχει συνεπώς κάποιος κεντρικός κόμβος που αν πάψει να λειτουργεί σταματάει να λειτουργεί και όλο το δίκτυο. Ωστόσο η δυναμική δομή έχει και μειονεκτήματα, αφού είναι εντελώς απρόβλεπτο το πώς θα εξελιχθεί όσο λειτουργεί το δίκτυο και νέοι κόμβοι προστίθενται ή αφαιρούνται σε τυχαία σημεία του. Δεν είναι καθόλου σπάνιο ένας κόμβος να επιλέγεται ως πύλη στο δίκτυο από πάρα πολλούς νεοεισερχόμενους ομότιμούς του, με αποτέλεσμα να δημιουργείται μια κεντροποιημένη και αναποτελεσματική νησίδα στο δυναμικό δίκτυο. 26
  • 27. Συμπεράσματα Τα δίκτυα Peer to Peer Μπορούν να χωρισθούν σε 3 κατηγορίες. Τα κεντρικώς ελεγχόμενα, τα ιεραρχικά και τα αποκεντρωμένα. Στην πρώτη κατηγορία ανήκουν εφαρμογές όπως το Napster και το SETI@home. Ο συγχρονισμός μεταξύ των κόμβων γίνεται μέσω κεντρικών Servers άσχετα αν στην συνέχεια οι κόμβοι επικοινωνούν μεταξύ τους για την ανταλλαγή πληροφοριών. Στο ιεραρχικό σύστημα ανήκει το DNS. Σε αυτό υπάρχουν διάφορα επίπεδα συντονιστών. Αν κάποιοι κόμβοι που θέλουν να επικοινωνήσουν ανήκουν στo ίδιο domain τότε μεσολαβεί ένας τοπικός συντονιστής που είναι υπεύθυνος για το domain αυτό. Αν όμως ανήκουν σε διαφορετικά domain τότε μεσολαβεί συντονιστής υψηλότερου επιπέδου. Τέλος στο αποκεντρωμένο σύστημα ανήκει το Gnutella. Σε αυτό δεν μεσολαβεί κανένας συντονιστής αλλά οι πελάτες αναλαμβάνουν τον συντονισμό και την διαχείριση της επικοινωνίας τους. Αυτό σημαίνει πως αρκετές φορές κάποιοι κόμβοι προωθούν μηνύματα σε κόμβους για λογαριασμό άλλων κόμβων. Η παρούσα διπλωματική εργασία εστιάζει αποκλειστικά στα δυναμικά αποκεντρωμένα ομότιμα υπολογιστικά συστήματα, όπου το φορτίο του δικτύου είναι σχετικά υψηλό και οι πιθανότητες ένας κόμβος να συναλλαγή πολλές φορές με κάποιον άλλον είναι σχετικά υψηλές. 27
  • 28. 28
  • 29. ΚΕΦΑΛΑΙΟ 2. ΠΡΟΣΟΜΟΙΩΣΗ ΔΙΚΤΥΩΝ ΣΤΟ OPNET Modeller. To OPNET Modeller, αποτελεί ένα εξειδικευμένο εργαλείο στο χώρο των επικοινωνιών, που προσφέρει τη δυνατότητα με τη βοήθεια ενός γραφικού περιβάλλοντος να μοντελοποιηθούν και να προσομοιωθούν διάφορα είδη δικτύων. Στην παρούσα εργασία χρησιμοποιείται το OPNET Modeller 14.0, το οποίο περιέχει έτοιμα μοντέλα δικτύων . Η γλώσσα προγραμματισμού που χρησιμοποιείται (και για την κατασκευή νέων μοντέλων) είναι η Proto C, μια παραλλαγή της γλώσσας C, η οποία μπορεί να χρησιμοποιεί και έτοιμες συναρτήσεις από τον πυρήνα (Kernel) του OPNET. Για την κατασκευή της δομής ενός δικτύου, ακολουθείται αυστηρά η παρακάτω ιεραρχία τριών επιπέδων:  Μοντέλο Δικτύου (Project Editor)  Μοντέλο Κόμβων (Node Editor)  Μοντέλο Επεξεργασίας (Process Editor) Τα αντικείμενα που ανήκουν στο μοντέλο δικτύου περιγράφονται από αντικείμενα που ανήκουν στο μοντέλο κόμβων, ενώ αυτά που ανήκουν στο μοντέλο κόμβων περιγράφονται από αντικείμενα που ανήκουν στο μοντέλο επεξεργασίας. Ένα παράδειγμα αυτής της ιεραρχίας φαίνεται παρακάτω: 29
  • 30. Σχήμα 2.1: Ιεραρχική δομή μοντελοποίησης στο OPNET 2.1. Μοντέλο Δικτύου Το Μοντέλο Δικτύου (Project Editor), αποτελεί την κύρια πλατφόρμα εργασίας για την κατασκευή και προσομοίωση ενός δικτύου. Από εδώ μπορούμε να κτίσουμε ένα μοντέλο δικτύου, χρησιμοποιώντας τα έτοιμα μοντέλα (π.χ. ένα Τοπικό Δίκτυο (LAN), ένα Μητροπολιτικό Δίκτυο (MAN) ή ένα δίκτυο με δύο υπολογιστές κ.τ.λ.) που υπάρχουν στη βιβλιοθήκη του OPNET, να επιλέξουμε στατιστικά στοιχεία για το δίκτυο, να τρέξουμε μια προσομοίωση και να δούμε τα αποτελέσματα. Επίσης μπορούμε να φτιάξουμε τα μοντέλα δικτύου και επεξεργασίας, να κατασκευάσουμε μοντέλα για πακέτα που στέλνονται, να κατασκευάσουμε φίλτρα και παραμέτρους στα οποία μπορούμε να έχουμε πρόσβαση από το μοντέλο επεξεργασίας. Πιο κάτω φαίνεται το προφίλ του μοντέλου δικτύου που εμείς χρησιμοποιήσαμε για τις προσομοιώσεις μας: 30
  • 31. Σχήμα 2.2. Μπάρα εργαλείων του Μοντέλου Δικτύου.  Παλέτα αντικειμένων (object palette): Ανοίγοντας την παλέτα αντικειμένων, μπορούμε να ανασύρουμε κάποιο έτοιμο μοντέλο αντικειμένου του OPNET, π.χ. ένα server, ένα δίκτυο υπολογιστών, μια σύνδεση καλωδίου μεταξύ δύο υπο δικτύων. Μπορούμε επίσης με την επιλογή “διαμόρφωση παλέτας” (configure palette), να δημιουργήσουμε μια παλέτα που θα περιέχει μόνο τα αντικείμενα που θα χρειαστούμε ή ακόμα και να τροποποιήσουμε κάποια από αυτά έτσι ώστε να έχουν τα επιθυμητά χαρακτηριστικά.  Επαλήθευση συνδέσεων (verify links): Με αυτή την επιλογή, γίνεται έλεγχος αν οι συνδέσεις που υπάρχουν ανάμεσα στα διάφορα αντικείμενα λειτουργούν σωστά. Αν κάποια σύνδεση δε λειτουργεί, εμφανίζεται σχετικό μήνυμα για να μπορέσουμε να τη διορθώσουμε.  Κατάργηση αντικειμένων (fail selected objects): 31
  • 32. Επιλέγοντας κάποια αντικείμενα που υπάρχουν στην επιφάνεια εργασίας και με την επιλογή αυτή, μπορούμε να καταργήσουμε τη λειτουργία τους, δηλαδή η προσομοίωση θα “τρέξει” σαν αυτά να μην υπάρχουν καθόλου.  Ανάκτηση αντικιμένων (recover selected objects): Επαναφέρει αντικείμενα που είχαν καταργηθεί προηγουμένως.  Επαναφορά στο υποδίκτυο του προηγούμενου επιπέδου (go to parent subnet): Αν θελήσουμε να δούμε τα επιμέρους αντικείμενα ενός υπο δικτύου, μπορούμε με διπλή επιλογή του (double click), να εισέλθουμε στο ακριβώς πιο κάτω επίπεδο. Για παράδειγμα για ένα από τα τοπικά δίκτυα του σχήματος 3.1.2, με διπλή επιλογή βλέπουμε τα αντικείμενα που το αποτελούν (router και office_lan). Στη συνέχεια με την επιλογή “επαναφορά στο υπο δίκτυο του προηγούμενου επιπέδου”, επανερχόμαστε στο προηγούμενο επίπεδο. Για να μπούμε πιο βαθιά στην ιεραρχική δομή, με διπλή επιλογή κάποιου από τα αντικείμενα του δευτέρου επιπέδου στο μοντέλο δικτύου (π.χ. Router), μπαίνουμε στο μοντέλο κόμβων και από εκεί στο μοντέλο επεξεργασίας. Αυτά όμως λειτουργούν σε ξεχωριστά παράθυρα και η επιλογή “επαναφορά στο υπο δίκτυο του προηγούμενου επιπέδου”, δεν ισχύει.  Εστίαση σε ορθογώνιο (zoom to rectangle): Με την επιλογή αυτή, η επιφάνεια εργασίας, εστιάζει σε ένα ορθογώνιο κομμάτι που επιλέγουμε.  Εστίαση στο προηγούμενο (zoom to previous): Η εστίαση επαναφέρεται.  Διαμόρφωση/τρέξιμο προσομοίωσης ξεχωριστών γεγονότων (configure/run discrete event simulation, DES): Με την επιλογή αυτή, ανοίγουμε ένα παράθυρο, όπου επιλέγουμε τις παραμέτρους της προσομοίωσης, όπως είναι η διάρκεια, τα στατιστικά στοιχεία που θα συλλέξουμε και ο σπόρος (seed) που αφορά την τυχαιότητα κάποιων συναρτήσεων. Από εδώ μπορούμε επίσης να ορίσουμε τα είδη των εξερχόμενων στατιστικών (π.χ. report, 32
  • 33. animation) και άλλα χαρακτηριστικά της προσομοίωσης. Με την επιλογή “τρέξιμο” (run), η προσομοίωση αρχίζει.  Παρατήρηση αποτελεσμάτων (view results): Εδώ μπορούμε να ορίσουμε τα χαρακτηριστικά που μας ενδιαφέρει να δούμε με το πέρας της προσομοίωσης, καθώς και σε ποιες συνδέσεις (π.χ. στο σχήμα 3.1.2 μπορεί να μας ενδιαφέρουν τα χαρακτηριστικά μόνο μιας εκ των τεσσάρων συνδέσεων μεταξύ των τοπικών δικτύων). Έτσι βλέπουμε γραφικές παραστάσεις που αφορούν τα επιλεχθέντα χαρακτηριστικά. Επειδή μια προσομοίωση μπορεί να τρέξει παράλληλα για διαφορετικά σενάρια, από εδώ επιλέγουμε για ποια από αυτά θέλουμε να δούμε τα αποτελέσματα καθώς μπορεί να γίνει και σύγκρισή τους στην ίδια γραφική παράσταση.  Απόκρυψη/παρατήρηση γραφικών παραστάσεων (hide/show graph panels): Με το πέρας της προσομοίωσης, αν ανοίξουμε μερικά παράθυρα γραφικών παραστάσεων για να παρατηρήσουμε κάποια χαρακτηριστικά, με την επιλογή αυτή μπορούμε να τα αποκρύψουμε και στη συνέχεια να τα επαναφέρουμε. 2.2. Μοντέλο Κόμβων Τα αντικείμενα του Μοντέλου Κόμβων (Node Editor), περιγράφουν την συμπεριφορά των αντίστοιχων κόμβων δικτύου και μοντελοποιούν τις εσωτερικές τους λειτουργίες όπως δημιουργία δεδομένων, αποθήκευση κ.τ.λ. Η συμπεριφορά κάθε αντικειμένου του δικτύου περιγράφεται από διάφορα “στοιχεία” (modules), τα οποία συνδέονται μεταξύ τους με “συνδέσεις πακέτων” (packet streams) ή “στατιστικά καλώδια” (statistic wires). Στη μπάρα εργαλείων (toolbar), που βρίσκεται στο πάνω μέρος του παραθύρου, όπως και στο μοντέλο δικτύου, υπάρχουν οι πιο κάτω επιλογές, τις οποίες επεξηγούμε στη συνέχεια: 33
  • 34. Σχήμα 2.3. Μπάρα εργαλείων του Μοντέλου Κόμβων  Δημιουργία επεξεργαστή (create processor): Σε αυτή την επιλογή μπορούμε να δημιουργήσουμε ένα επεξεργαστή στην επιφάνεια εργασίας. Ο επεξεργαστής αποτελεί ένα “στοιχείο”, που μπορεί να επιτελέσει διάφορους σκοπούς όπως για παράδειγμα δημιουργία και καταστροφή πακέτων, επεξεργασία πακέτων κλπ.  Δημιουργία “στοιχείου” ουράς (create queue): Δημιουργούμε ένα “στοιχείο” ουράς, όπου μπορεί να αποθηκευτεί ένας αριθμός πακέτων και να προγραμματιστεί η μετάδοσή τους. Επίσης μπορούν να οριστούν τύποι πακέτων που το στοιχείο αυτό μπορεί να ανακτήσει, ενώ τα υπόλοιπα πακέτα απορρίπτονται.  Δημιουργία σύνδεσης πακέτων (create packet stream): Με την επιλογή αυτή δημιουργούμε μια σύνδεση πακέτου μεταξύ δύο “στοιχείων”. Η σύνδεση πακέτου αποτελεί τη διαδρομή που ακολουθεί το κάθε πακέτο από “στοιχείο” σε “στοιχείο”, μέσα σε ένα αντικείμενο δικτύου, για επεξεργασία.  Δημιουργία στατιστικού καλωδίου (create statistic wire): Ένα στατιστικό καλώδιο ακολουθεί την ίδια διαδρομή με μια σύνδεση πακέτων αλλά κατά την αντίθετη κατεύθυνση. Ουσιαστικά, υλοποιεί την αμφίδρομη επικοινωνία που υπάρχει σε ένα αντικείμενο δικτύου καθώς “τρέχει” τη στοίβα πρωτοκόλλων από πάνω προς τα κάτω και αντίστροφα.  Δημιουργία λογικού συνδέσμου πομπού/δέκτη (create logical Tx/Rx association): Με αυτή την επιλογή, δημιουργούμε μια λογική σύνδεση μεταξύ δύο στοιχείων πομπού (transmitter, Tx) και δέκτη (receiver, Rx). Κατά τη διάρκεια της προσομοίωσης, πακέτα τα οποία στέλνονται σε κάποιο αντικείμενο δικτύου, παραλαμβάνονται από το “στοιχείο” του δέκτη. Στη συνέχεια στέλνονται προς τα πάνω, στα υπόλοιπα στοιχεία για επεξεργασία (στοίβα πρωτοκόλλων) και ακολούθως, 34
  • 35. στην αντίθετη διαδρομή προς τα κάτω καταλήγοντας στο “στοιχείο” του πομπού.[50] Αυτή η λογική σύνδεση μεταξύ πομπού και δέκτη, αναπαρίσταται με ένα λογικό σύνδεσμο Tx/Rx.  Δημιουργία δέκτη σημείου σε σημείο (create point-to-point receiver): Δημιουργούμε ένα “στοιχείο” δέκτη, για συνδέσεις σημείο σε σημείο.  Δημιουργία πομπού σημείου σε σημείο (create point-to-point transmitter): Δημιουργούμε ένα “στοιχείο” πομπού, για συνδέσεις σημείο σε σημείο.  Δημιουργία δέκτη για πολλαπλές συνδέσεις(create bus receiver): Δημιουργούμε ένα “στοιχείο” δέκτη, για πολλαπλές συνδέσεις.  Δημιουργία πομπού για πολλαπλές συνδέσεις(create bus transmitter): Δημιουργούμε ένα “στοιχείο” πομπού, για πολλαπλές συνδέσεις.  Δημιουργία “στοιχείου” εξωτερικού συστήματος (create external system module): Με την επιλογή αυτή, μπορούμε να δημιουργήσουμε ένα “στοιχείο”, το οποίο δεν ανήκει κατ’ ανάγκη στο συγκεκριμένο αντικείμενο δικτύου και μπορεί να λειτουργεί ξεχωριστά. 2.3. Μοντέλο Επεξεργασίας Το Μοντέλο Επεξεργασίας (Process Editor), αναπαρίσταται με διαγράμματα πεπερασμένων καταστάσεων (finite state machines - FSMs) που ελέγχουν την εσωτερική λειτουργικότητα των αντικειμένων στο μοντέλο κόμβων.Τα διαγράμματα αυτά δημιουργούνται από εικόνες που αντιπροσωπεύουν καταστάσεις (states) και γραμμές (transitions) που αντιπροσωπεύουν μεταβάσεις μεταξύ αυτών των καταστάσεων. Κάθε κατάσταση χαρακτηρίζεται από τις λειτουργίες εισόδου (enter execution) – οι οποίες περιγράφονται σε κώδικα της γλώσσας C και γράφονται στο πάνω μισό κομμάτι της εικόνας μιας κατάστασης- και τις λειτουργίες εξόδου (exit 35
  • 36. execution) – οι οποίες γράφονται στο κάτω μισό κομμάτι. “Αναδυόμενα” παράθυρα εμφανίζονται με διπλή επιλογή για κάθε κομμάτι, όπου μπορούμε να γράψουμε τον κώδικα. Οι καταστάσεις επίσης χαρακτηρίζονται σε “εξαναγκασμένες” (forced, πράσινο χρώμα) και “μη-εξαναγκασμένες” (unforced, κόκκινο χρώμα), ανάλογα με το αν θέλουμε μια κατάσταση να μεταβαίνει στην επόμενη χωρίς κανένα περιορισμό ή όχι αντίστοιχα. Συνθήκες μετάβασης μπορούν επίσης να οριστούν στις γραμμές μετάβασης για να ορίσουν περιορισμούς για τη μετάβαση από την μια κατάσταση στην άλλη. Αυτά φαίνονται στο σχήμα που ακολουθεί: Σχήμα 2.3. Μοντέλο Επεξεργασίας 36
  • 37. Όπως και στα προηγούμενα μοντέλα, στη μπάρα εργαλείων (toolbar), που βρίσκεται στο πάνω μέρος του παραθύρου, υπάρχουν οι πιο κάτω επιλογές, τις οποίες επεξηγούμε στη συνέχεια: Σχήμα 2.4: Μπάρα εργαλείων του Μοντέλου Επεξεργασίας Δημιουργία κατάστασης (create state): Με την επιλογή αυτή, μπορούμε να δημιουργήσουμε μια κατάσταση. Η κατάσταση αυτή, αποτελεί ένα κομμάτι της όλης διαδικασίας που εκτελείται σε ένα “στοιχείο” του Μοντέλου Κόμβων. Με επιλογή του δεξιού κουμπιού του “mouse” του υπολογιστή, εμφανίζεται η επιλογή για να μετατρέψουμε μια κατάσταση από “εξαναγκασμένη” σε “μη-εξαναγκασμένη” και το αντίθετο. Στο πάνω μισό κομμάτι της κατάστασης, όπως αναφέραμε και προηγουμένως, γράφονται οι συναρτήσεις που θα εκτελεστούν κατά την είσοδο στην κατάσταση ενώ στο κάτω μισό κομμάτι γράφονται οι συναρτήσεις που θα εκτελεστούν κατά την έξοδο από την κατάσταση. Οι συναρτήσεις αυτές μπορεί να γράφονται εξ’ ολοκλήρου μέσα στην κατάσταση ή να καλούνται με συγκεκριμένες παραμέτρους, ανατρέχοντας στο “κομμάτι συναρτήσεων” (function block), για να βρουν τον κώδικα της συγκεκριμένης συνάρτησης. Δημιουργία μετάβασης (create transition): Από εδώ μπορούμε να δημιουργήσουμε μια γραμμή μετάβασης από μια κατάσταση σε μια άλλη. Οι μεταβάσεις ακολουθούν συγκεκριμένη κατεύθυνση (δεν είναι αμφίδρομες). Επίσης ορίζονται συνθήκες μετάβασης για το πότε και κάτω από ποιες προϋποθέσεις μια συγκεκριμένη μετάβαση θα συμβεί. Καθορισμός αρχικής κατάστασης (set initial state): Κάθε διαδικασία που περιγράφεται στο μοντέλο επεξεργασίας, πρέπει να έχει μια αρχική κατάσταση, δηλαδή μια κατάσταση που θα εκτελεστεί πρώτη κατά την έναρξη 37
  • 38. της διαδικασίας. Στην αρχική κατάσταση, αρχικοποιούνται παράμετροι, δίνονται αρχικές τιμές σε μεταβλητές που χρειάζεται να έχουν συγκεκριμένη τιμή σε κάθε εκτέλεση της διαδικασίας καθώς ανακτώνται και παράμετροι από το προηγούμενο επίπεδο (Μοντέλο Κόμβων), που θα χρησιμοποιηθούν. Μορφοποίηση μεταβλητών της διαδικασίας (edit state variables): Στο παράθυρο που “αναδύεται” με αυτή την επιλογή, δηλώνονται όλες οι μεταβλητές που χρησιμοποιούνται στον κώδικα που περιγράφει τις διάφορες συναρτήσεις της διαδικασίας. Για κάθε μεταβλητή, επιλέγεται ένας συγκεκριμένος τύπος (π.χ. int, double, float, char) καθώς επίσης μπορούν να γραφούν και σχόλια για το τι αντιπροσωπεύει η κάθε μία από αυτές. Οι μεταβλητές που δηλώνονται εδώ κρατούν την τιμή τους κάθε φορά που “τρέχει” η διαδικασία. Μορφοποίηση προσωρινών μεταβλητών (edit temporary variables): Εδώ δηλώνονται βοηθητικές μεταβλητές, οι οποίες χάνουν την τιμή που έχουν μετά το τέλος της διαδικασίας και την επόμενη φορά που αυτή θα “τρέξει” χρειάζεται να αρχικοποιηθούν ξανά. Μορφοποίηση κομματιού επικεφαλίδας (edit header block): Στο παράθυρο που “αναδύεται” με αυτή την επιλογή, δηλώνονται όλα τα εξωτερικά αρχεία που θα χρησιμοποιηθούν καθώς και οι έτοιμες βιβλιοθήκες της C που χρειάζονται στον κώδικα (με include). Επίσης μπορούν να δηλωθούν μεταβλητές με σταθερές τιμές καθώς και αναγνωριστικά διακοπών (interrupts) που θα συμβούν στη διαδικασία (με define). Μορφοποίηση κομματιού συναρτήσεων (edit function block): Εδώ γράφονται όλες οι συναρτήσεις που θα χρησιμοποιηθούν στην εκτέλεση της διαδικασίας. Οι μεταβλητές που αυτές χρησιμοποιούν, δηλώνονται είτε στην αρχή κάθε συνάρτησης είτε στις μεταβλητές της διαδικασίας (state variables). Ο κώδικας που γράφεται είναι σε γλώσσα C αλλά χρησιμοποιούνται και έτοιμες συναρτήσεις που προσφέρει ο πυρήνας του OPNET. Αυτές οι συναρτήσεις αφορούν κυρίως 38
  • 39. ανάκτηση και μεταφορά παραμέτρων ανάμεσα στα διάφορα επίπεδα, συλλογή στατιστικών στοιχείων, διακοπές κ.ά.. Μορφοποίηση διαγνωστικού κομματιού (edit diagnostic block): Εδώ συνήθως γράφονται συναρτήσεις που αφορούν την επικοινωνία της προσομοίωσης με τον έξω κόσμο κατά τη διάρκεια που αυτή εκτελείται. Για παράδειγμα οι συναρτήσεις αυτές τυπώνουν μηνύματα και τιμές παραμέτρων και μεταβλητών. Μορφοποίηση κομματιού τερματισμού (edit termination block): Εδώ συνήθως γράφονται συναρτήσεις που αφορούν τον τερματισμό της διαδικασίας. Μετατροπή κώδικα μοντέλου επεξεργασίας (compile process model): Με την επιλογή αυτή γίνεται το compilation του μοντέλου επεξεργασίας. Συντακτικά λάθη που εμφανίζονται στον κώδικα, λανθασμένη χρησιμοποίηση ονομάτων μεταβλητών ή μη σωστή ανάκληση μνήμης, οδηγούν σε σφάλμα κατά την μετατροπή του κώδικα. 39
  • 40. ΚΕΦΑΛΑΙΟ 3. Σύστημα κατανεμημένου Διαμοιρασμού ΣΚΔ Σε αυτό το κεφάλαιο περιγράφω το πρόβλημα του σύγχρονου κατανεμημένου διαμοιρασμού βίντεο σε πραγματικό χρόνο. Αρχικά ορίζεται το πρόβλημα και οι απαιτήσεις που υπάρχουν από ένα τέτοιο σύστημα. Έπειτα αναλύεται η αρχιτεκτονική επίλυσής του και δίνονται οι τεχνικοί στόχοι που πρέπει να επιτευχθούν για την δημιουργία ενός τέτοιου συστήματος. Το κεφάλαιο αυτό χωρίζεται σε δύο ενότητες. Στην πρώτη περιγράφονται απαιτήσεις από τον γράφο διαμοιρασμού, σχετική εργασία με το συγκριμένο πρόβλημα και αναλύεται εκτενώς και αξιολογείται το σύστημα που αναπτύχθηκε. Στην δεύτερη περιγράφεται το πρόβλημα δημιουργίας κατανεμημένου χρονοπρογραμματιστη ανταλλαγής τεμαχίων δεδομένων (p2p block scheduler). Επίσης αναλύονται οι τεχνικοί στόχοι που ένα τέτοιο σύστημα πρέπει να ικανοποιεί και περιγράφεται η σχετική εργασία με το πρόβλημα αυτό. Τέλος αναλύεται εκτενώς ο χρονοπρογραμματιστής που αναπτύχθηκε και αξιολογείται εκτενώς ενώ παράλληλα αναλύονται οι επιδόσεις και τα χαρακτηριστικά συνολικά του προτεινόμενου συστήματος. Αρχικά κρίνω σημαντικό να ορισθεί το πρόβλημα του σύγχρονου διαμοιρασμού πολυμέσων ανεξαρτήτως από την αρχιτεκτονική που θα ακολουθηθεί και από τεχνικά χαρακτηριστικά του δικτύου ή/και των υπολογιστικών συσκευών. Σε πραγματικό χρόνο σε ένα κόμβο του δικτύου δημιουργείται ένα αντικείμενο πολυμέσων που μπορεί να είναι ένα βίντεο, ένα ηχητικό αντικείμενο κ.α. Σαν παραδείγματα θα μπορούσαν να αναφερθούν η ζωντανή λήψη ενός αθλητικού γεγονότος, μιας συναυλίας μουσικής, μιας συνέντευξης. Το αντικείμενο πληροφορίας αυτό επιθυμούν να λαμβάνουν ένα σύνολο χρηστών που αντιστοιχούν σε δικτυακούς κόμβους. Οι απαιτήσεις των χρηστών είναι:  Δυναμική σύνδεση. Η εισαγωγή και αποχώρηση από την παραλαβή όποια στιγμή αυτοί επιθυμούν. 40
  • 41.  Μικρή καθυστέρηση. Η ελαχιστοποίηση του χρονικού διαστήματος από την στιγμή δημιουργίας κάθε στιγμιότυπου του αντικειμένου πολυμέσων μέχρι τον διαμοιρασμό του σε κάθε συμμετέχοντα χρήστη.  Ποιοτική λήψη. Η μεγιστοποίηση της ποιότητας του αντικειμένου όσον αφορά τα χαρακτηριστικά της εικόνας ή/και του ήχου που διαμοιράζεται.  Σταθερότητα. Η αδιάλειπτη λειτουργία του συστήματος και η σταθερότητά του.  Ευελιξία παραγωγής υλικού. Η ικανότητα του χρήστη να μπορεί ο ίδιος να αποτελεί αυτός διαμοιραστή υλικού.  Κόστος συστήματος. Η ελαχιστοποίηση του κόστους του συστήματος. Στο πρώτο κεφάλαιο αναφέρθηκαν αρχιτεκτονικές διαμοιρασμού περιεχομένου στο διαδίκτυο στο κεφάλαιο αναλύεται η προτεινόμενη διομότιμη αρχιτεκτονική διαμοιρασμού. Σαν μια αρχική συνοπτική περιγραφή χωρίς βλάβη της γενικότητας σε κάθε σύστημα κατανεμημένου σύγχρονου διαμοιρασμού πολυμέσων σε πραγματικό χρόνο (ΣΚΔ)1 μία πηγή (π.χ. ένας εξυπηρετητής) δημιουργεί ένα συρμό από τεμάχια ενός αντικειμένου πολυμέσων το οποίο έχει ρυθμό παραγωγής δεδομένων μ bits ανά δευτερόλεπτο. Κάθε δευτερόλεπτο διαιρείται σε ένα σύνολο από τεμάχια πλήθους Nb. Έτσι λοιπόν τα τεμάχια δημιουργούνται με συχνότητα 1/Nb και το μέγεθος του κάθε ενός είναι Lb=1/Nb bit. Αυτά στέλνονται σε ένα μικρό υποσύνολο των συμμετεχόντων χρηστών (ακόμα και σε έναν). Συνεπώς κάθε χρήστης ανταλλάσει τα τεμάχια αυτά με τους γείτονές του στον γράφο διαμοιρασμού με την χρήση ενός δυναμικού κατανεμημένου χρονοπρογραμματιστή ανταλλαγής με σκοπό την λήψη κάθε ενός από κάθε χρήστη- κόμβο μέσα σε ένα προκαθορισμένο χρονικό διάστημα από την δημιουργία του. 1 Στην διεθνή βιβλιογραφία αναφέρεται σαν “p2p live streaming system” και από δω και στο εξής θα αποκαλείται σύστημα κατανεμημένου διαμοιρασμού (ΣΚΔ) προς χάριν συντομίας. 41
  • 42. Σχήμα 3.1 Στιγμιότυπο της κατάστασης του πίνακα περιεχομένων ενός κόμβου Για την επίτευξη αυτού του στόχου κάθε κόμβος διατηρεί και ανταλλάσει με τους γείτονές του ένα πίνακα περιεχομένων τεμαχίων. Στο σημείο αυτό ορίζω σαν χρόνο στησίματος (setup time) ts, και αποτελεί μία ακόμα παράμετρο του συστήματός, το χρονικό διάστημα που μεσολαβεί από την δημιουργία ενός τεμα;χίου μέχρι τον διαμοιρασμό του σε κάθε συμμετέχοντα κόμβο του συστήματος. Στον πίνακα περιεχομένων τεμαχίων κάθε κόμβου βρίσκονται τα τεμάχια που δημιουργήθηκαν τα τελευταία ts δευτερόλεπτα. Το πλήθος αυτών των τεμαχίων, και άρα το μέγεθος του πίνακα, είναι Nb*ts. Κάθε τεμάχιο φυσικά μπορεί να βρίσκεται σε δύο καταστάσεις: παρόν (που σημαίνει ότι έχει ληφθεί), απουσιάζον (που σημαίνει ότι δεν έχει παραλειφθεί ακόμα). Για την ομαλή λειτουργία του χρονοπρογραμματιστή ανταλλαγής κάθε κόμβος κάθε φορά που παραλαμβάνει ένα τεμάχιο ενημερώνει τους κόμβους με τους οποίους συνδέεται στον γράφο διασύνδεσης για την κατάσταση του πίνακα περιεχομένων τεμαχίων που διαθέτει. Στο Σχήμα 3.1 εικονίζεται ένα στιγμιότυπο της κατάστασης του πίνακα περιεχομένων ενός κόμβου. Συνοπτικά για την επίτευξη των απαιτήσεων στα ΣΚΔ όπως προαναφέρθηκαν οι τεχνικοί στόχοι που πρέπει καλυφθούν είναι :η επίτευξη ενός υψηλού βαθμό χρήσης του διαθέσιμου εύρους ζώνης των κόμβων που συμμετέχουν σε αυτό, ο γρήγορος 42