ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ"

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ Υλοποίηση μηχανισμού αποθήκευσης (caching) σε επίπεδο πακέτων για δίκτυα βασισμένα στο περιεχόμενο ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ του ΔΗΜΗΤΡΗ ΓΕΩΡΓΙΟΥ Επιβλέποντες : Λέανδρος Τασιούλας Καθηγητής Τ.Μ.Η.Υ.Τ.Δ Δημήτριος Κατσαρός Λέκτορας Τ.Μ.Η.Υ.Τ.Δ Βόλος, Φλεβάρης 2012

2 ii

3 ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ Υλοποίηση μηχανισμού αποθήκευσης (caching) σε επίπεδο πακέτων για δίκτυα βασισμένα στο περιεχόμενο ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ του ΔΗΜΗΤΡΗ ΓΕΩΡΓΙΟΥ Επιβλέποντες : Λέανδρος Τασιούλας Καθηγητής Τ.Μ.Η.Υ.Τ.Δ Δημήτριος Κατσαρός Λέκτορας Τ.Μ.Η.Υ.Τ.Δ Βόλος, Φλεβάρης 2012

4 2

5 Ευχαριστίες Θερμές ευχαριστίες εκφράζω στους καθηγητές μου κύριο Λέανδρο Τασιούλα και κύριο Δημήτριο Κατσαρό στην εμπιστοσύνη που έδειξαν στην επίβλεψη της διπλωματικής μου εργασίας. Ιδιαίτερα θέλω να ευχαριστήσω τον Πάρη Φλέγκα για την όλη καθοδήγηση του, για τις συμβουλές και την βοήθεια που μου παρείχε στην εκπόνησης της εργασίας αυτής. Επίσης θέλω να ευχαριστήσω τον Δημήτρη Συρίβελη για την σημαντική υποστήριξη και βοήθεια που μου παρείχε σε θέματα σχετικά με την εργασία αυτή. Θέλω να ευχαριστήσω τους συγκατοίκους μου Αδάμου Γιώργο, Ανδρέου Σταύρο και Βαγιανού Πόλυ καθώς και τους φίλους μου Χριστοφή Μάριο και Γιωργαλλίδη Ανδρέα για το ενδιαφέρον που έδειχναν με την κάθε εξέλιξη της διπλωματικής μου εργασίας μέχρι και την ολοκλήρωση της. Τέλος θέλω να ευχαριστήσω και να αφιερώσω την διπλωματική μου εργασία στην οικογένεια μου για την όλη συμπαράσταση και βοήθεια που μου παρείχε στα χρόνια της φοιτητικής μου ζωής. Δημήτρης Γεωργίου Βόλος,

6 Περίληψη Ο κύριος στόχος της διπλωματικής εργασίας είναι η δημιουργία ενός μηχανισμού αποθήκευσης (caching) σε επίπεδο πακέτων που θα ενσωματώνεται σε δίκτυα βασισμένα στο περιεχόμενο. Η βασική λειτουργία του μηχανισμού αποθήκευσης είναι να τρέχει σε κάθε κόμβο του δικτύου και να παρέχει μια ενδιάμεση αποθήκευση για τα πακέτα δεδομένων τα οποία περνούν από τον κόμβο. Έτσι τα δεδομένα που είναι αποθηκευμένα θα μπορούν ανά πάσα στιγμή να ανακτηθούν από αιτήσεις που πιθανόν να περνούν από τους κόμβους αυτούς. Με τη δημιουργία αυτή του μηχανισμού μας δίνεται η δυνατότητα να δούμε την συνεισφορά που θα έχει η χρήση των ενδιάμεσων μνημών cache πάνω στα δίκτυα τα οποία βασίζονται στο περιεχόμενο ως προς τον χρόνο που ανακτάται ένα πακέτο από έναν ενδιάμεσο κόμβο παρά από τον αρχικό κόμβο που είναι η πηγή του. Επιπλέον μας δίνεται η δυνατότητα να δούμε την συνολική μείωση στο φόρτο του δικτύου. Για τον σκοπό αυτό πραγματοποιήθηκαν πειράματα στο διεθνές δίκτυο planetlab για διάφορες τοπολογίες δικτύων. Η υλοποίηση του μηχανισμού εφαρμόστηκε και ενσωματώθηκε στο υπό ανέγερση project Blackadder το οποίο αναπτύσσεται στα πλαίσια ερευνητικών υλοποιήσεων και μέσω διάφορων demo εφαρμογών εκτελεί πλήρη λειτουργικότητα των δικτύων βασισμένων στο περιεχόμενο. Συγκεκριμένα για την υλοποίηση του μηχανισμού αποθήκευσης παρουσιάσαμε κάποιες νέες ιδέες. Μερικές στηριχτήκαν στην προηγούμενη μορφή λειτουρίας του Blackadder, αλλά κάποιες από αυτές μας ανάγκασαν να κάνουμε επέκταση της λειτουργίας του Blackadder. Υλοποιήθηκαν τρεις αλγόριθμοι για την απόρριψη των πακέτων, FIFO, LRU και LFU. Η αρχική αυτή υλοποίηση είναι δυνατόν να γίνει πρόκληση για την πραγματοποίηση ολοκληρωμένων εφαρμογών που θα μπορούν να κρατούν αρχεία και δεδομένα μεγάλου όγκου καθώς επίσης να αποτελέσει κίνητρο για μελλοντική επέκταση του μηχανισμού. 4

7 Περιεχόμενα Περίληψη...4 Ι.Εισαγωγη Κίνητρο Ορισμός του Προβλήματος Δομή της Εργασίας Σχετικές Εργασίες Δίκτυα Βασισμένα στο Περιεχόμενο Αρχιτεκτονική RTFM Λειτουργικό μέρος Forwarding Λειτουργικό μέρος Topology Λειτουργικό μέρος Rendezvous Blackadder Σχεδιαστικές ιδιότητες Σχεδίαση του κόμβου Βασικές λειτουργίες Εξυπηρετικό μοντέλο (Service model) Στρατηγικές διάδοσης (Dissemination strategies) Συνοπτική περιγραφή λειτουργίας publish/subscribe Silicon Bloom Filters και zfilters Κρυφή Αποθήκευση (Caching) Στρατηγικές αντικαταστάσεις Στρατηγικές που βασίζονται στο πιο πρόσφατο (Recent-Based Strategies) Στρατηγικές που βασίζονται στην συχνότητα (Frequent-Based Strategies) Στρατηγική πρώτο μπαίνει - πρώτο βγαίνει (First In - First Out) Click Modular Router Caching στον Blackadder Σχεδίαση Γενικά Συμβάσεις στο προηγούμενο μοντέλο Μοντέλο από push σε pull Διαχωρισμός RIDs δεδομένων από RIDs αιτημάτων Αλλαγές στους clients του Blackadder Δομή πακέτου αίτησης Δημιουργία ανάποδου μονοπατιού (Reverse FID ) Ενσωμάτωση του μηχανισμού μέσα στο Blackadder

8 3.2. Δομή του Μηχανισμού Αποθήκευσης Γενική περιγραφή Λειτουργίες Ι. Εισαγωγή Ταξινόμηση Διαγραφή Αναζήτηση Εντοπισμός και προώθηση δεδομένων Υλοποίηση Element Cache Element Forwarder Element GlobalConf Clients (Ταυτόχρονη λειτουργία publish και subscribe) Πειράματα Συνδεσμολογία 6 Κόμβων Συνδεσμολογία 10 Κόμβων Συμπέρασμα Μελλοντικές Ιδέες Παραπομπές

9 1. Εισαγωγή Η ραγδαία ανάπτυξη που παρουσιάζεται στο διαδίκτυο, δημιούργησε την ανάγκη για δημιουργία νέων αρχιτεκτονικών δικτύων. Οι αρχιτεκτονικές θα πρέπει να έχουν την ικανότητα να διαχειριστούν το μεγάλο φόρτο που παρουσιάζεται σήμερα στο διαδίκτυο παρέχοντας παράλληλα αξιοπιστία και ασφάλεια στα δεδομένα των χρηστών. Μια σύγκλιση που προέκυψε μέσα από τις έρευνες, είναι η δημιουργία δικτύων που θα έχουν ως βασικό συστατικό το περιεχόμενο της πληροφορίας που είναι κατανεμημένη στο διαδίκτυο. Τα δίκτυα βασισμένα στο περιεχόμενο (Content-Based Networks - CBN ή αλλιώς Information-Centric Networks - ICN) είναι μια νεοεμφανιζόμενη αρχιτεκτονική δικτύου η οποία καταλαμβάνει ολοένα και μεγαλύτερο έδαφος στον χώρο της δικτύωσης. Κάποιες από τις αρχιτεκτονικές που υποστηρίζουν δίκτυα βασισμένα στο περιεχόμενο βασίζονται στην τεχνική του publish/subscribe. Το λογισμικό Blackadder εφαρμόζει μια υλοποίηση των δικτύων βασισμένων στο περιεχόμενο και στηρίζεται στην τεχνική του publish/subscribe. Ο Blackadder είναι ένα υπό ανάπτυξη λογισμικό και μέσω διάφορων βοηθητικών εφαρμογών(application) εκτελεί παράδοση και παραλαβή δεδομένων μέσω νέων χαρακτηριστικών ιδιοτήτων. Πολλές από αυτές τις νέες χαρακτηριστικές ιδιότητες παραμένουν αναλλοίωτες για όλες τις αρχιτεκτονικές που υποστηρίζουν δίκτυα βασισμένα στο περιεχόμενο. Επίσης οι ιδιότητες αυτές, όσο άφορα τον τρόπο ανταλλαγής των δεδομένων και πιο γενικά οποιασδήποτε επικοινωνίας απέχουν κατά πολύ από τα μέχρι στιγμής γνωστά δίκτυα IP/TCP. Επομένως τα δίκτυα βασισμένα στο περιεχόμενο γενικά σαν μια νέα αρχιτεκτονική καθώς και συγκεκριμένα το νέο λογισμικό του Blackadder είναι ευπρόσδεκτα σε οποιεσδήποτε βελτιστοποίησης παρέχονται από τους ερευνητές. Εμείς την παρούσα διπλωματική εργασία καλούμαστε να συνεφέρουμε στο νέο λογισμικό του Blacakdder. Η συνεισφορά μας θα είναι κάποιες προσθήκες που ευελπιστούμε ότι θα παρέχουν βελτίωση σε συγκριμένα θέματα πάνω στο λογισμικό Blackadder Κίνητρο Το σημαντικότερο κίνητρο που μας ώθησε να ασχοληθούμε με το συγκεκριμένο θέμα είναι ότι με την αποθήκευση διαδικτυακού περιεχομένου μέσα στο ίδιο δίκτυο θα πετύχουμε την μείωση του χρόνου παράδοσης των δεδομένων που ζητούν οι χρηστές. Επίσης πετυχαίνουμε μείωση στο συνολικό φόρτο στο δίκτυο. Με την αποθήκευση λοιπόν του διαδικτυακού περιεχομένου σε κρυφές μνήμες, ο χρήστης έχει τη δυνατότητα να βρει τα δεδομένα σε ενδιάμεσους κόμβους οι οποίοι είναι πιο κοντά σε αυτούς παρά από τον αρχικό που είναι η πηγή τους. Με τη χρήση κρυφών μνημών μειώνεται παράλληλα και ο φόρτος του αρχικού κόμβου ο οποίος είναι η πηγή των δεδομένων, αφού δεν δέχεται πλέον όλες τις αιτήσεις. Η τεχνική των κρυφών μνημών από πλευράς 7

10 στρατηγικών αντικατάστασης, μπορεί να διαφοροποιηθεί σε πολλά μοντέλα είτε βάσει αλγορίθμου είτε βάσει της πληροφορίας των δεδομένων. Για το λόγο ότι τα δίκτυα που βασίζονται στο περιεχόμενο αποτελούν μια νεοεμφανιζόμενη αρχιτεκτονική δικτύου, δεν περιέχουν μέχρι στιγμής κάποιο είδος μηχανισμού αποθήκευσης (caching). Επομένως στην παρούσα διπλωματική εργασία, έχουμε σαν στόχο την δημιουργία κάποιου μηχανισμού αποθήκευσης. Τελειώνοντας λοιπόν αυτήν την διπλωματική εργασία θα είμαστε σε θέση να στηρίξουμε την άποψη, ότι η χρήση μηχανισμών αποθήκευσης στα δίκτυα που βασίζονται στο περιεχόμενο θα επιφέρει μεγάλα ωφελήματα στο χώρο της δικτύωσης Ορισμός του Προβλήματος Το πρόβλημα το οποίο μας απασχολεί στην συγκεκριμένη διπλωματική εργασία είναι η δημιουργία ενός μηχανισμού αποθήκευσης που να μπορεί να αποθηκεύσει πακέτα δεδομένων σε δίκτυα που βασίζονται στο περιεχόμενο. Επιπλέον ο συγκεκριμένος μηχανισμός αποθήκευσης μας ενδιαφέρει να έχει την δυνατότητα να ενσωματώνεται στο λογισμικό Blackadder, το οποίο τρέχει σε κάθε δρομολογητή του δικτύου. Επίσης να είναι σε θέση να παραλαμβάνει και να επεξεργάζεται πακέτα δεδομένων και πακέτα αιτήσεων δεδομένων. Τα πακέτα που πρέπει να επεξεργάζεται προέρχονται από το δίκτυο ή και από εφαρμογές που τρέχουν στον ίδιο κόμβο. Ακόμη να είναι σε θέση να στέλνει δεδομένα στο δίκτυο και σε εφαρμογές που τρέχουν στον ίδιο κόμβο. Επίσης να αποθηκεύει μόνο πακέτα δεδομένων και όχι οποιαδήποτε άλλα πακέτα του πρωτοκόλλου επικοινωνίας. Εκτός απ' αυτό θέλουμε να είναι σε θέση να επεξεργάζεται αιτήσεις για δεδομένα. Με αυτό εννοούμε ότι κάθε αίτηση που λαμβάνει ο δρομολογητής για δεδομένα, ο μηχανισμός αποθήκευσης να μπορεί να ελέγχει αν η αίτηση απευθύνεται σε κάποια δεδομένα που είναι αποθηκευμένα στην μνήμη του. Έτσι είναι δυνατόν να εξυπηρετήσει τον χρήστη που έστειλε την αίτηση, στέλνοντας τα δεδομένα από τον δρομολογητή σε αυτόν. Αλλιώς να την προωθεί στον επόμενο κόμβο Δομή της Εργασίας Η διπλωματική εργασία ακολουθεί μια δομή που αποτελείται από 5 κεφάλαια. Το πρώτο κεφάλαιο αποτελεί την «Εισαγωγή» και περιλαμβάνει τα κίνητρα και τους στόχους που μας ώθησαν στην ανάπτυξη του μηχανισμού αποθήκευσης. Επίσης περιγράφει τον ορισμό του προβλήματος που καλείται να λύσει. Επιπλέον σε αυτό το κεφάλαιο αναφέρονται οι λόγοι που οδήγησαν στη συγγραφή αυτής της διπλωματικής και αναλυτικά τους στόχους που έχει να επιτύχει κατά την ολοκλήρωσή της. Στο δεύτερο κεφάλαιο γίνεται λόγος για σχετικές εργασίες που αποτέλεσαν τις βασικές ιδέες και τα κίνητρα ώστε να δημιουργηθεί η 8

11 ανάγκη της ύπαρξης αυτού του μηχανισμού αποθήκευσης. Στο κεφαλαίο 3 αναπτύσσουμε την σχεδίαση εξολοκλήρου του μηχανισμού αποθήκευσης από τη σχεδίαση και το πώς λειτούργει μέχρι και την ενσωμάτωση του στο προηγούμενο λογισμικό. Στο κεφάλαιο 4 παρουσιάζουμε πειράματα που κάναμε στο διαδίκτυο, έτσι βλέπουμε στην πράξη τα πλεονεκτήματα που έχει ο μηχανισμός αποθήκευσης στους χρήστες αλλά και γενικά στο δίκτυο. Τέλος στο κεφάλαιο 5 όπου ολοκληρώνεται η διπλωματική εργασία γράφουμε τα γενικά μας συμπεράσματα στα οποία καταλήξαμε. Επιπλέον δίνουμε μελλοντικές ιδέες που είναι δυνατόν να αποτελέσουν νεότερα θέματα για άλλες εργασίες που θα βασίζονται στην ύπαρξης αυτής της διπλωματικής. 9

12 2. Σχετικές Εργασίες Σε αυτό το κεφάλαιο συγκεντρώνονται πληροφορίες από διάφορες εργασίες που σχετίζονται με την παρούσα διπλωματική εργασία. Αρχικά κάνουμε μια γενική εισαγωγή στα δίκτυα βασισμένα στο περιεχόμενο. Στην συνέχεια περιγράφουμε την αρχιτεκτονική RTFM που είναι σχεδιασμένη να λειτούργει αποκλειστικά για δίκτυα που επικεντρώνονται στο περιεχόμενο και βασίζεται στην τεχνική του publish/su bscribe. Στη συνέχεια παρουσιάζουμε αναλυτικά την γενική λειτουργία του Blackadder, που είναι το λογισμικό όπου θα ενσωματωθεί ο μηχανισμός αποθήκευσης. Βλέπουμε ιδέες όπως τα zfilters που βασίζονται στα Silicon Bloom-Filters και χρησιμοποιούνται στην δρομολόγηση των πακέτων διαμέσω των συνδέσεων του δικτύου. Κάνουμε μια εισαγωγή για τις στρατηγικές απόρριψης πακέτων από μνήμες cache. Στο τέλος περιγράφουμε συνοπτικά τον Click Modular Router που είναι το εργαλείο που τρέχει το λογισμικό του Blackadder. Γενικά το συγκεκριμένο κεφάλαιο περιλαμβάνει τις βασικές ιδέες, που αποτελούν τα κλειδιά για την υλοποίηση του μηχανισμού αποθήκευσης. Επίσης μας βοηθούν να συνθέσουμε νέες δικές μας ιδέες για το μοντέλο μας. H ακρίβεια των στοιχείων που συλλέξαμε κρίθηκε απαραίτητη ώστε να οδηγηθούμε στην σωστή υλοποίηση του μηχανισμού αποθήκευσης Δίκτυα Βασισμένα στο Περιεχόμενο Η παρούσα αρχιτεκτονική δικτύου (TCP/IP) επιτρέπει την επικοινωνία μεταξύ ακριβώς δυο κόμβων ένας κόμβος θεωρείται ένα μηχάνημα. Π.χ.: ένας υπολογιστής, ένας εξυπηρετητής, ένας δρομολογητής, κ.ο.κ. Όταν ένας κόμβος αιτείται έναν πόρο που βρίσκεται σε κάποιον άλλο κόμβο, τότε ο δεύτερος που δέχεται την αίτηση παρέχει στον πρώτο πρόσβαση ώστε να παραλάβει τον πόρο. Οποιαδήποτε επικοινωνία μεταξύ δυο κόμβων απαιτεί πακέτα της μορφής IP, που περιέχουν τις IP διευθύνσεις και των δυο μηχανημάτων, πηγής και προορισμού, ώστε να επιτευχθεί η επικοινωνία. Έτσι οι χρήστες αναγκάζονται πρώτα να προσδιορίσουν την τοποθεσία κάποιου κόμβου που έχει την πληροφορία που ζητούν και στην συνέχεια να την παραλάβουν. Είναι προφανές ότι οι χρήστες χρησιμοποιούν το διαδίκτυο τόσο για το τι περιέχει, αλλά στην πραγματικότητα με την παρούσα υλοποίηση του IP/TCP δικτύου γίνεται πρώτα η επικοινωνία με τον κόμβο που έχει την πληροφορία που ζητούν. Αν δούμε το μοντέλο διευθύνσεων σε βήματα. Το πρώτο βήμα είναι να βρούμε ποιός "WHO" έχει την πληροφορία και το δεύτερο βήμα είναι να παραλάβουμε τι "WHAT" πληροφορία θέλουμε. Τα δίκτυα βασισμένα στο περιεχόμενο έρχονται να προσπεράσουν το πρώτο στάδιο που είναι το ποιός έχει την πληροφορία και στοχεύουν απευθείας στο τι πληροφορία θέλουμε. Στο Σχήμα 1 βλέπουμε την βασική ιδέα της λειτουργίας των δικτύων που βασίζονται στο περιεχόμενο, όπου μια εφαρμογή ζητά από το δίκτυο μια πληροφορία και το 10

13 δίκτυο είναι υπεύθυνο να βρει την πληροφορία αυτή και να την παράδοση στην εφαρμογή. Αρρ ication (]_) want information with name ("YYY") INTERNET (2) Information ( YYY") Σχήμα 1: Ο τρόπος λειτουργίας των δικτύων που βασίζονται στο περιεχόμενο. Μια εφαρμογή ζητά από το δίκτυο τι πληροφορία Κέλει να παραλάβει και το δίκτυο είναι υπεύκυνο να βρει και να της παραδώσει την πληροφορία αυτή. Παρόμοια στα παραδοσιακά μοντέλα δικτύων που επικεντρώνονται στις διευθύνσεις Address-Based Network (ABN), τα Δίκτυα Βασισμένα στο περιεχόμενο (CBN) περιλαμβάνουν ένα σύνολο από κόμβους και δρομολογητές που ενώνουν τους κόμβους αυτούς μέσω συνδέσεων. Η κύρια διαφορά μεταξύ των δύο τύπων δικτύων είναι το ότι στα CBN δεν αναγνωρίζονται οι κόμβοι με μοναδικό όνομα δικτύου, αλλά οι συνδέσεις μεταξύ των κόμβων. Για αυτό τον λόγο στα CBN τα μηνύματα δεν δρομολογούνται σε συγκεκριμένους κόμβους αλλά στις συνδέσεις που συνδέουν τους κόμβους. Τα μηνύματα που στέλνονται περιλαμβάνουν τις ονομασίες των πληροφοριών που ενδιαφέρεται ο χρήστης. Η κύρια αυτής προσέγγισης έχει ως στόχο να γίνεται η εύρεση των δεδομένων ανεξαρτήτως του που βρίσκονται αποθηκευμένα. Το μοντέλο δικτύου που βασίζεται στο περιεχόμενο μεταφέρει τον έλεγχο αποστολής δεδομένων από τον αποστολέα στον παραλήπτη. Αυτό επιτυγχάνεται με την αλλαγή της αρχιτεκτονικής δικτύου από το μοντέλο push στο μοντέλο pull. Δηλαδή το δίκτυο να μπορεί να παραδώσει τα δεδομένα σε κάποιον που ενδιαφέρεται να τα λάβει, παρά να ξέρει ποιος θα είναι ο αποστολέας των δεδομένων εκ των προτέρων. Οι πιο πολλές αρχιτεκτονικές δικτύων που βασίζονται στο περιεχόμενο βασίζονται στην τεχνική του publish/subscribe. Ένα μεγάλο μέρος του πλήθους των εφαρμογών που παρέχονται στο διαδίκτυο σήμερα βασίζονται στην τεχνική του publish/subscribe. Σε γενικές γραμμές η τεχνική publish/subscribe είναι μια μέθοδος διάδοσης των δεδομένων που παρέχει αποσύνδεση σε χρόνο, χώρο και συγχρονισμό στην επικοινωνία μεταξύ των παραγωγών και των καταναλωτών. Βασικά χαρακτηριστικά που εκφράζουν την τεχνική αυτή είναι ο χειρισμός των δεδομένων με βάση την ονομασία τους (data-oriented naming), προσωρινή αποθήκευση για να διακόπτεται η σύνδεση μεταξύ παραγωγών και καταναλωτών (network caching), αποδοτική πολύ-εκπομπή (efficient multicast) για την διάδοση των δεδομένων. Στο Σχήμα 2 βλέπουμε διάφορες εφαρμογές που δρουν ως publisher είτε ως 11

14 subscriber είτε ως publisher και subscriber μαζί, όπου στέλνουν τα αιτήματα τους "publish" ή/και "subscribe" στο δίκτυο. Publisher/Subscriber Subscriber Publisher Publisher/Subscriber publishi^n^utacribe" publish"^" ubscribe.publisher Publisher INTERNET publish" & "subscribe publish" & "subscribe" X \ Subscriber \ Publisher/Subscriber publish" & "subscribe Subscriber Publisher Σχήμα 2: Αιτήσεις "publish" και "subscribe" των χρηστών σε Δίκτυο Βασισμένο στο Περιεχόμενο. Δ ίφ ο ρ α εpευνητικά προγράμματα στόχευαν στην ανάπτυξη κιοο εξολοκλήpου αρχιτεκτονικής που να βασίζεται στην τεχνική publish/subscribe. Περασμένα ερευνητικά προγράμματα, όπως PSIRP, CCNx και 4WARD, εστιάζονται σε προσεγγίσεις που βασίζονται στο περιεχόμενο. Πρόσφατα άρχισαν τα προγράμματα, όπως το NDN και το PURSUIT που έχουν ως στόχο την ίδια κατεύθυνση. Μια από αυτές τις νέες αρχιτεκτονικές που προέκυψαν είναι η αρχιτεκτονική RTFM, που εξολοκλήρου βασίζεται στην τεχνική publish/subscribe και πάνω σε αυτήν θα βασιστούμε στην παρούσα διπλωματική Αρχιτεκτονική RTFM Η αρχιτεκτονική RTFM περιγράφει τα βασικά στοιχεία που είναι απαραίτητα για τη λειτουργία της τεχνικής publish/subscribe στα δίκτυα που βασίζονται στο περιεχόμενο. Η τεχνική του publish/subscribe δίνει την δυνατότητα σε κάθε κόμβο του δικτύου να έχει μόνο δύο πρότυπες λειτουργίες: Τη δημοσίευση (publish) και εγγραφή σε μια δημοσίευση (subscribe). Η Αρχιτεκτονική RTFM 12

15 γενικά περιγράφει το πως ένας κόμβος εντάσσεται στο δίκτυο, πως δημοσιεύει δεδομένα και πως εγγράφεται σε κάποιες δημοσιεύσεις. Επιπλέον περιγράφει και τις απαιτήσεις των publish/subscribe δρομολογητών (sprouters), στο πως θα βρεθεί ένα μονοπάτι προς μια δημοσίευση από μια εγγραφή και τι συμβαίνει όταν ένας κόμβος αποφασίζει να δημοσιεύσει δεδομένα. Η Αρχιτεκτονική αποτελείται από τρία λειτουργικά μέρη: Rendezvous, Topology και Forwarding (και τα physical Media). Από τα αρχικά αυτών των λειτουργικών μερών πήρε και το όνομα της, RTFM. Μια γενική εικόνα της αρχιτεκτονικής RTFM απεικονίζεται στο Σχήμα 3. Σχήμα 3: Η αρχιτεκτονική RTFM Λειτουργικό μέρος Forwarding Χρησιμοποιείται για να παραδώσει δεδομένα από μια τοποθεσία σε μια άλλη. Συγκεκριμένα βασίζεται σε διευθυντικές ετικέτες που φέρουν τα πακέτα. Μια ετικέτα είναι ένας δυαδικός αριθμός τον οποίο χρησιμοποιούν οι δρομολογητές ώστε να αποφασίσουν προς τα που να προωθήσουν το πακέτο. Στον πίνακα φαίνεται ένας πίνακας προώθησης κάποιου δρομολογητή. Εξερχόμενες θύρες, είναι η αρίθμηση των διάφορων συνδέσεων προς κόμβους που είναι ενωμένες με τον δρομολογητή και είναι αυτές οι συνδέσεις στις οποίες μπορεί το πακέτο να προωθηθεί. (Για παράδειγμα από την πρώτη γραμμή του πίνακα, το πακέτο με ετικέτα "X" θα προωθηθεί προς την θύρα 1 και θα προστεθεί στο πεδίο που είχε την ετικέτα "X", η ετικέτα "AX". Ενώ αν έρθει κάποιο πακέτο που έχει ως πρόθεμα την ετικέτα "Z", θα προωθηθεί προς την θύρα 3 και θα του προστεθεί η ετικέτα "*", που σημαίνει ότι στην συνέχεια θα μπορεί να προωθηθεί προς όλες τις θύρες του επόμενου κόμβου.) 13

16 Εισερχόμενη Ετικέτα Εξερχόμενες Θύρες Εξερχόμενε ς Ετικέτες X 1 AX Y 1 Y 2 Y Z* 3 * Πίνακας 1: Πίνακας προώθησης που χρησιμοποιεί το λειτουργικό μέρος Forwarding Λειτουργικό μέρος Topology Το λειτουργικό μέρος Topology έχει ως στόχο την δημιουργία και την διατήρηση δέντρων παράδοσης. Τα δέντρα παράδοσης χρειάζονται για την δρομολόγηση της κίνησης των πακέτων στο δίκτυο για κάποια συγκεκριμένη πληροφορία. Τα δέντρα που δημιουργούνται τα χρησιμοποιεί το λειτουργικό μέρος Forwarding για να προωθεί τα πακέτα προς τον προορισμό τους. Το Topology δρα με δύο τρόπους: Είτε άμεσα είτε αντιδραστικά. Η άμεση ενέργεια του δημιουργεί τα δέντρα παράδοσης που χρειάζονται για την παράδοση της πληροφορίας. Η αντιδραστική ενέργεια του δημιουργεί νέα δέντρα παράδοσης, όταν τα υπάρχοντα δέντρα παράδοσης δεν παρέχουν την κατάλληλη συνδεσιμότητα ή όταν ένας σύνδεσμος χαλάσει, ή όταν το παρόν δέντρο παράδοσης είναι μη βέλτιστο. Και αυτό γιατί μπορεί να έγιναν αλλαγές στους παραλήπτες των δεδομένων. Ένα παράδειγμα φαίνεται στο Σχήμα 4, όπου το δέντρο παράδοσης Α χρησιμοποιεί το δέντρο παράδοσης B, ώστε να επιτευχθεί η παράδοση των δεδομένων από τον κόμβο ρίζα RA προς στους κόμβους φύλλα, Α1,..., Α4. Από την παράδοση φαίνεται ότι το δέντρο Α χρησιμοποιεί το δέντρο Β καθώς επίσης και μια μη βέλτιστη λύση αφού ο κόμβος Β3 παραλαμβάνει δεδομένα που δεν ενδιαφέρεται να πάρει. Αυτό μπορεί να βελτιωθεί από το λειτουργικό μέρος Topology και έτσι να δημιουργηθεί ένα βέλτιστο δέντρο παράδοσης που δεν θα χρησιμοποιεί τον κόμβο Β3. 14

17 Σχήμα 4: Δέντρο παράδοσης πληροφορίας που φτιάχνει το λειτουργικό μέρος Topology Λειτουργικό μέρος Rendezvous Όταν ένας κόμβος γίνεται συνδρομητής σε μια δημοσίευση, το δίκτυο πρέπει να βρει ένα αντίγραφο και να του το παραδώσει. Το λειτουργικό μέρος Rendezvous είναι μια κατανεμημένη δομή που παρέχει αυτήν την υπηρεσία. Μπορεί να είναι ένας κατανεμημένος πίνακας κατακερματισμού ή μια διαφορετική κατανεμημένη δομή. Χρησιμοποιεί την κατανεμημένη δομή συγκεντρώνοντας αρκετές πληροφορίες για τους εγγραφείς σε μια δημοσίευση (subscribers) και για αυτούς που την δημοσιεύουν (publishers). Τις πληροφορίες τις παραδίδει στο λειτουργικό μέρος Topology. 15

18 Blackadder Ο Blackadder είναι μια υλοποίηση της αρχιτεκτονικής υποδομής δικτύου που βασίζεται στις αρχιτεκτονικές σταθερές που προτείνονται στο πλαίσιο του λειτουργικού μοντέλου PURSUIT. Ο Blackadder εξάγει ένα απλό και πλήρη λειτουργικό εξυπηρετικό μοντέλο των δικτύων βασισμένων στο περιεχόμενο και βασίζεται στην χωρίς συγχρονισμό επικοινωνία τεχνική publish/subscribe Σχεδιαστικές ιδιότητες Ο Blackadder βασίζεται σε πέντε σχεδιαστικές ιδιότητες. Οι σχεδιαστικές ιδιότητες αυτές ανήκουν στο σύνολο των αναλλοίωτων προδιαγραφών οι οποίες παραμένουν αμετάβλητες για όλες τις υπό ανάπτυξη αρχιτεκτονικές που έχουν ως στόχο τα δίκτυα που βασίζονται στο περιεχόμενο. 1. (Identifying individual information items) Η πρώτη ιδιότητα είναι η έννοια του μοναδικού χαρακτηρισμού των στοιχείων πληροφορίας (information item s) που αποτελεί το μέσο για τον εντοπισμό τους. Κάθε στοιχείο πληροφορίας αναγνωρίζεται χρησιμοποιώντας μια μοναδική αναγνωριστική ετικέτα. Η αναγνώριση μπορεί να λάβει χώρο σε ένα σχήμα ιεραρχικής ονομασίας. 2. (Scoping) Η δεύτερη ιδιότητα τοποθετεί τα στοιχειά πληροφορίας μέσα σε πλαίσια που καλούνται πεδία εφαρμογής (sco p e s). Έτσι, ένα scope ορίζει ένα σύνολο από πληροφορίες και είναι και το ίδιο από μόνο του ένα στοιχείο πληροφορίας και αναγνωρίζεται με ένα μοναδικό αναγνωριστικό. Σαν στοιχειά πληροφορίας, τα scopes μπορούν να τοποθετηθούν κάτω από άλλα scope, επιτρέποντας να δομούνται σύνθετα κατευθυνόμενα α-κύκλα γραφήματα από πληροφορίες που καλούνται πληροφοριακές δομές (data structure) ή αλλιώς γράφοι πληροφορίας. Οι γράφοι πληροφορίας μπορούν να χρησιμοποιηθούν από κατανεμημένες υπολογιστικές διεργασίες για κάθε σκοπό. 3. (Service model) Η Τρίτη ιδιότητα είναι το μοντέλο εξυπηρέτησης (service m odel) που λειτούργει σε κάθε πληροφοριακή δομή. Κατανεμημένες υπολογιστικές διεργασίες πραγματοποιούνται διαμέσω της ροής πληροφοριών μεταξύ οντοτήτων που χρησιμοποιούν το εκτεθειμένο εξυπηρετικό μοντέλο. Στον Blackadder προτείνεται το εξυπηρετικό μοντέλο publish/subscribe, που επίσης μπορεί να υποστηρίξει άλλα μοντέλα, όπως το pull ή το request/response. 4. (Rendezvous, topology management and formation, forwarding) Η τέταρτη ιδιότητα είναι οι κύριες λειτουργίες της αρχιτεκτονικής. Αυτές οι 16

19 λειτουργίες αναλαμβάνουν την διάδοση της πληροφορίας διαμέσω των scopes μέσα στην πληροφοριακή δομή. Η πρώτη λειτουργία είναι η rendezvous, που ο ρόλος της είναι να ταιριάζει την διαθέσιμη πληροφορία σε αυτούς που ενδιαφέρονται για αυτήν. Τα αποτελέσματα αυτής της διαδικασίας είναι σαν μια μορφή τοποθεσιών που χρησιμοποιείται για την δέσμευση των θέσεων των πελατών που σχετίζονται με την συγκεκριμένη πληροφορία στο δίκτυο. Τα αποτελέσματα που παραδίδει η rendezvous λειτουργία χρησιμοποιούνται από την δεύτερη κύρια λειτουργία, topology m anagem ent and form ation, για να ορίσει την κατάλληλη σχέση παράδοσης για την μεταφορά της πληροφορίας. Η μεταφορά εκτελείται από την τρίτη βασική λειτουργία, forwarding. Η ακριβής φύση και η εφαρμογή αυτών των λειτουργιών καθορίζεται από τη στρατηγική διάδοσης του scopes για την οποία πραγματοποιούνται αυτές οι λειτουργίες. 5. (dissemination strategy) Η Πέμπτη ιδιότητα διευθύνει τις μεθόδους που χρησιμοποιούνται για την εφαρμογή των πιο πάνω κύριων λειτουργιών. Επίσης διευθύνει και ιδιαίτερα θέματα που αφορούν την διαχείριση των πληροφοριών σε κάποια τμήματα της πληροφοριακής δομής. Για τον λόγο αυτό ορίζονται στρατηγικές διάδοσης της πληροφοριακής δομής ή σε τμήματα της πληροφοριακής δομής. Μαζί με τα scoping σε κάποια υπό πεδία πληροφορίας, οι στρατηγικές αυτές ορίζουν υπό-χώρούς που εφαρμόζουν functional scoping (λειτουργικά πεδία εφαρμογής). Διαμέσω αυτών των διακριτών λειτουργιών μπορεί να βελτιστοποιηθεί η συγκεκριμένη υπολογιστική διαδικασία που χρησιμοποίει αυτό το είδος επικοινωνίας. Στο Σχήμα 5 παρουσιάζεται μια πληροφοριακή δομή (data structure) και φαίνεται πως ένα scope τοποθετείται κάτω από ένα άλλο scope, καθώς επίσης και πως ένα στοιχειό πληροφορίας τοποθετείται κάτω από ένα scope. Στην υλοποίηση αυτή κάθε κόμβος του γραφήματος αναγνωρίζεται με το πλήρες μονοπάτι που αρχίζει από το scope που βρίσκεται στην ρίζα του γραφήματος. (Για παράδειγμα το δεξιότερο στοιχείο του γραφήματος αναγνωρίζεται ως /Sid2/SId2/R Id3). Επίσης, όπως φαίνεται και στο σχήμα, ένα scope ή ένα στοιχείο πληροφορίας μπορεί να αναγνωριστεί από διάφορα μονοπάτια όταν δημοσιεύεται κάτω από περισσότερα από ένα scope ή όταν ένα από γονικά του scopes δημοσιεύεται κάτω από περισσότερα του ενός scope. Ένας publisher μπορεί να δημιουργήσει μια πληροφοριακή δομή (information structure) για παράδειγμα σαν αυτή που φαίνεται στο Σχήμα 5, ή να προσθέσει και άλλα scopes ή να διαφημίσει στοιχεία πληροφορίας σε μια άλλη δομή πληροφοριών που δημιουργήθηκε από κάποιον άλλο publisher. 17

20 Σχήμα 5: Μια απλή πληροφοριακή δομή σε μορφή γραφήματος. 2.Ι.2.2. Σχεδίαση του κόμβου Ο Blackadder βασίζεται στην αρχιτεκτονική του εργαλείου Click Modular Router και από άλλες συμπληρωματικές εφαρμογές. Το κύριο μέρος του λειτουργεί σαν λογισμικό ενός δρομολογητή κι τρέχει σε κάθε κόμβο του δικτύου. Κάθε Click element παρέχει και μια λειτουργία, που πιο συγκεκριμένα είναι εκτελεί μια επεξεργασία πακέτου. Επίσης οι βασικές λειτουργίες που αναφέραμε πιο πάνω, επίσης υλοποιούνται μέσα από elements του εργαλείου Click Router. Κάθε πακέτο που φθάνει στον δρομολογητή, ανάλογα με την φύση του, ακολουθεί μια διαδρομή διαμέσου των κατάλληλων elements. Στο Σχήμα 6 βλέπουμε πως είναι συνδεδεμένα τα elements μεταξύ τους και μπορούμε να διακρίνουμε πως μπορεί ένας δρομολογητής να επεξεργαστεί ένα πακέτο περνώντας διαμέσω των elements. Πιο κάτω αναλύουμε την λειτουργία αυτών των Elements που υλοποιούν τις βασικές λειτουργίες του Blackadder. 18

21 A p p l App2 App3 App4 AppN Service Model Application Interface Topology Manager Component X Core Rendezvous Forwarding Communication Elements Network Σχήμα 6: Η αρχιτεκτονική κόμβου του Blackadder. 2.Ι.2.3. Βασικές λειτουργίες Για να επιτευχθεί η όλη λειτουργία του Blackadder, φυσικά είναι αναγκαίο να συμβάλουν όλα τα Click elements. Όπως προαναφέραμε βασικές λειτουργίες της αρχιτεκτονικής είναι τρεις (3) και εκτελούνται μέσα από μεμονωμένα Click elements. Από την ονομασία που έχει κάθε element, καταλαβαίνουμε και ποια βασική λειτουργία εκτελεί. Αυτά είναι Elements Rendezvous, Element Forwarder και Elem ent TopologyManager. Πιο κάτω αναλύουμε τις βασικές λειτουργιές. 1. (Rendezvous) Η λειτουργία Rendezvous λαμβάνει και επεξεργάζεται όλες τις αιτήσεις που δημοσιεύονται από τις εφαρμογές που εκτελούνται τοπικά ή από άλλους κόμβους. Τέτοιου είδους δημοσιεύσεις δημιουργήθηκαν διαμέσου της σημασιολογίας του εξαγόμενου εξυπηρετικού μοντέλου. Μετά την λήψη των αιτημάτων η λειτουργία Rendezvous ταιριάζει τους δυνητικούς στους publishers και subscribers των στοιχείων πληροφορίας, προκειμένου να διευκολύνει την ανταλλαγή πληροφοριών μεταξύ τους. Οι πράξεις της λειτουργίας Rendezvous ορίζονται μέσω της στρατηγικής διάδοσης που κρύβεται πίσω από την πληροφοριακή δομή. Οι πράξεις της λειτουργίας Rendezvous μπορεί να απαιτούν την επιβολή καθολικής (παγκόσμιας) 19

22 μοναδικότητας αναγνωριστικών. Επιπλέον ανάλογα με την στρατηγική διάδοσης μπορεί να ελαχιστοποιηθεί η λειτουργία της Rendezvous. 2. (Topology management and formation - ΤΜ) Η λειτουργία TM πραγματοποιεί την διαχείριση της συνολικής τοπολογίας παράδοσης και την διαμόρφωση συγκεκριμένων γραφημάτων παράδοσης για τις σχέσεις μεταξύ Publishers και Subscribers. Για αυτό, η TM ενημερώνει την τοπολογία συμφώνα με το κατά πόσο ένας κόμβος μπαίνει ή φεύγει από το δίκτυο και δημιουργεί την απαραίτητη πληροφορία προώθησης όταν της ζητηθεί. 3. (Forwarding) Η λειτουργία forwarding λαμβάνει δημοσιεύσεις και τις προωθεί στο δίκτυο ή στον τοπικό κόμβο. Για να το κάνει αυτό, κρατάει όλες τις απαραίτητες καταστάσεις σε ένα πινάκας προώθησης και για να επιτύχει την λειτουργία της μπορεί να συντονιστεί με τη λειτουργία Topology m anagem ent and formation Εξυπηρετικό μοντέλο (Service model) Όπως φαίνεται στο Σχήμα 6, οι εφαρμογές που ανήκουν στον ίδιο κόμβο αλληλεπιδρούν μεταξύ τους σαν εσωτερικά στοιχειά της όλης εφαρμογής ενώ στο δίκτυο αλληλεπιδρούν διάμεσο του εξυπηρετικού μοντέλου, που δείχνει σαν εσωτερική εφαρμογή. Το εξυπηρετικό μοντέλο επιτρέπει τον χειρισμό μια πληροφοριακής ροής με άπλες publish/subscribe σημασιολογικές ρουτίνες. Οι περισσότερες από ρουτίνες αυτές απευθύνονται στην λειτουργία rendezvous ώστε να συνθέτει τον πληροφοριακό γράφο και κατ' επέκταση να διευθύνει την επικοινωνία. Κάποιες απευθύνονται από κόμβους σε άλλους κόμβους, αλλά και πάλι διευθύνονται από την λειτουργία rendezvous. Στη συνεχεία παρουσιάζουμε αυτές τις πράξεις και περιγραφούμε τι ακριβώς λειτουργία εκτελούν. Για την κατανόηση των ρουτινών, εξηγούμε τις παραμέτρους που λαμβάνουν ώστε να γίνεται κατανοητή η παρουσίαση τους. To id είναι το τελευταίο αναγνωριστικό κομμάτι ενός μονοπατιού που απευθύνεται σε ένα στοιχείο πληροφορίας, το prefix είναι το υπάρχον μονοπάτι στον γράφο πληροφορίας και αποτελείται από τα scopes και το s είναι η στρατηγική διάδοσης που χρησιμοποιείται. (Publishing & Unpublishing Scopes) Ένας publisher μπορεί να δημιουργήσει ένα scope στην πληροφοριακή δομή εκδίδοντας το αίτημα: pubtishscope(sth ng id, string prefix, stra teg y s) Μέτα την δημοσίευση ενός scope, η rendezvous λειτουργία, ενημερώνει όλους τους subscribers που είναι εγγεγραμμένοι (subscribed) στο scope που είναι πατέρας του νέου scope που δημοσιεύτηκε. 20

23 Για να σταματήσει την δημοσίευση σε ένα scope μπορεί να το κάνει εκτελώντας το αίτημα: unpublishscopefstring id, string prefix, stra teg y s) Μετά από αυτό το αίτημα, η rendezvous λειτουργία θα σταματήσει για τον publisher την δημοσίευση όλων των στοιχείων πληροφορίας που είναι παιδιά αυτού του scope. Αν το επιτύχει αυτό και δεν υπάρχει κάποιο άλλο scope κάτω από το scope που είναι στο αίτημα, τότε διαγράφεται. Εάν το scope ήταν δημοσιευμένο κάτω από πολλαπλά scopes, τότε διαγράφεται μόνο ένας συγκεκριμένος ο κλάδος του γραφήματος. Όλοι οι subscribers που είναι εγγεγραμμένοι σε scope(s) που είχαν πατέρα αυτό το scope θα ενημερωθούν. (Publishing & Unpublishing Information Items) Ένας publisher μπορεί να διαφημίζει στοιχειά πληροφορίας διάμεσου του αιτήματος: publishinfo(stnng id, stnng prefix, strategy s) Τα στοιχειά πληροφορίας τοποθετούνται κάτω από ένα ή περισσότερα scopes. Επίσης μπορεί να σταματήσει την διαφήμιση ενός στοιχείου πληροφορίας εκτελώντας το αίτημα: unpublishinfofstnng id, stnng prefix, strategy s) Σαν αποτέλεσμα αυτής της πράξης, ο publisher που εκτέλεσε το αίτημα αυτό, διαγράφεται από τον ρόλο του publisher για το συγκεκριμένο στοιχείο πληροφορίας στον γράφο πληροφορίας. Αν δεν υπάρχουν άλλοι publishers ή subscribers τότε το συγκεκριμένο στοιχειό πληροφορίας διαγράφεται εντελώς από τον γράφο πληροφορίας. Εάν παραμένουν publisher και subscribers για το συγκεκριμένο στοιχείο πληροφορίας, η λειτουργία rendezvous θα λάβει χώρο ώστε να βρεθούν ένας ή περισσότεροι publishers για να δημοσιεύουν δεδομένα για το συγκεκριμένο στοιχείο πληροφορίας. Εάν το στοιχείο πληροφορίας διαφημίζεται κάτω από πολλαπλά scope τότε το στοιχείο, διαγράφεται από το scope που δηλώνεται στο prefix του αιτήματος (θεωρώντας ότι δεν υπάρχουν publisher ή subscribers για το αναγνωριστικό αυτό). (Subscribing to & Unsubscribing from Scopes) Ένα subscription σε ένα scope γίνεται διάμεσο του αιτήματος: subscribescopefstnng id, stnng prefix, strategy s) Κατ την παραλάβει του αιτήματος αυτού από την λειτουργία rendezvous, αν δεν υπάρχει το scope που υπάρχει στην αίτηση τότε δημιουργεί ένα νέο scope. Κάνοντας subscribe σε ένα scope, ένας subscriber δηλώνει τον ενδιαφέρον του αυτόματα και για όλα τα scope και όλα τα στοιχεία πληροφορίας που διαμένουν από κάτω του scope αυτού. Για αυτό τον λόγο, η λειτουργία rendezvous ελέγχει όλα τα scope και τα στοιχεία πληροφορίας που είναι δημοσιευμένα κάτω από το scope αυτό και δρα ως ακολούθως: για κάθε scope, θα στείλει μια ενημερώσει 21

24 για την υπάρξει του. Για κάθε στοιχείο πληροφορίας, ένας ή περισσότεροι publisher που προηγμένως διαφήμιζαν θα ενημερωθούν. Ένα δεν υπάρχει κοπής publisher ή subscriber για ένα στοιχείο πληροφορίας ή ένα scope κάτω από αυτό το scope, τότε το scope διαγράφεται από τον γράφο πληροφορίας. (Subscribing to & Unsubscribing from Information Items) Ένα subscription σε ένα στοιχείο πληροφορίας γίνεται με το αίτημα: subscribeinfo(string id, string prefix, stra teg y s) Εάν ένας publisher διαφήμισε προηγουμένως το στοιχείο πληροφορίας αυτό, τότε η λειτουργία rendezvous ταιριάζει τον publisher με αυτόν με τον subscriber που έστειλε το αίτημα. (Publishing Data) Ένας publisher στέλνει δεδομένα για ένα συγκεκριμένο στοιχείο πληροφορίας εκτελώντας το αίτημα: publishdatafsthng id, strategy s, char *data) Το id, είναι το RID του στοιχείου πληροφορίας αρχίζοντας από την ρίζα του γράφου πληροφορίας. Ένας publisher στέλνει τέτοια αιτήματα εάν πρώτα λάβει χώρο η λειτουργία rendezvous και ξέρει που θα προωθηθούν τα δεδομένα. (Asynchronous Upcalls) Στις περισσότερες περιπτώσεις τα αιτήματα που στέλνονται από τις εφαρμογές στο δίκτυο έχουν σαν αποτέλεσμα να καταλήξουν στην rendezvous ή στην TM λειτουργία. Αυτά τα αιτήματα μπορεί να έχουν σαν τελικό σκοπό την ενημερώσει άλλων εφαρμογών του δικτύου. Αυτά τα αιτήματα παρέχουν την ασύγχρονη επικοινωνία. Αυτά είναι: New scope notification. Στέλνεται σε ένα subscriber όταν ένα νέο scope έχει δημιουργηθεί. Στην ενημέρωση περιλαμβάνεται το αναγνωριστικό του scope. Deleted scope notification. Όταν ένα scope σταματήσει να δημοσιεύεται (unpublished) και διαγράφεται από τον γράφο πληροφορίας, οι subscribers στα scopes που είναι γονικά αυτού, ενημερώνονται για την διαγραφή του. Στην ενημέρωση περιλαμβάνεται το αναγνωριστικό του scope. Starts publish notification. Στέλνεται σε μια εφαρμογή, που προηγουμένως είχε διαφημίσει ένα στοιχείο πληροφορίας. Ώστε να αρχίσει την αποστολή δεδομένων για το συγκεκριμένο στοιχείο πληροφορίας. Περιλαμβάνει το αναγνωριστικό της πληροφορίας που πρόκειται να δημοσιευτεί. Stops publish notification. Στέλνεται σε μια εφαρμογή όταν δεν υπάρχουν διαθέσιμοι subscribers για κάποιο συγκεκριμένο στοιχείο πληροφορίας, όπου για αυτό το στοιχείο πληροφορίας προηγουμένως έχει σταλεί ένα μήνυμα 22

25 start publish. Published data notification. Στέλνεται σε μια εφαρμογή (subscriber) όταν έχουν φθάσει δεδομένα για μια συγκεκριμένη δημοσίευση. Η ενημέρωση περιλαμβάνει το ID του στοιχείου πληροφορίας για τα δεδομένα αυτά. 2.Ι.2.5. Στρατηγικές διάδοσης (Dissemination strategies) Κάθε scope ανατίθεται με μια στρατηγική διάδοσης. Υπάρχουν τρεις στρατηγικές διάδοσης: στρατηγική domain-local, στρατηγική node-local και η στρατηγική link-local. 1. (domain-local) Στην στρατηγική domain-local όλες οι λειτουργίες είναι σε πλήρη λειτουργικότητα. Η λειτουργία rendezvous δρα σε μόνο ένα ή περισσότερους κόμβους του δικτύου. Επίσης η λειτουργία Topology management and formation δρα μόνο σε ένα ή περισσότερους κόμβους, επικεντρώνεται στην παρακολούθηση του δικτύου, δημιουργώντας δέντρα πολύ-εκπομπής για σύνολα από publishers σε σύνολα προς subscribers, χρησιμοποιώντας αλγορίθμους εύρεσης συντομότερου μονοπατιού. Τέτοια δέντρα πολύ-εκπομπής σχηματίζονται από υπολογισμούς που βασίζονται στα Bloom Filters, τα οποία χρησιμοποιούν τα μοναδικά αναγνωριστικά κάθε ζεύξης. Βασιζόμενο σε αυτά τα μοναδικά αναγνωριστικά των ζεύξεων, η λειτουργία Forwarder προωθεί αποτελεσματικά κάθε πακέτο στον προορισμό του εκτελώντας την δυαδική πράξη AND στο Bloom Filter που φέρει το πακέτο, το αποτέλεσμα είναι ένα δέντρο πολύ-εκπομπής. 2. (node-local) Η στρατηγική node-local επιτρέπει την δημιουργία του γραφήματος πληροφορίας εντός του κόμβου. H λειτουργία rendezvous διατηρεί τον γράφο πληροφορίας έτσι ώστε να είναι ορατό στις εφαρμογές και στα Click Elements που τρέχουν μόνο στον κόμβο. Η λειτουργία Topology management and formation είναι απλή και περιορισμένη, γιατί πρέπει να βρει τους ενδιαφερόμενους publishers και subscribers τοπικά. Τέλος η λειτουργία Forwarding προωθεί επίσης μόνο τοπικά σε εφαρμογές και Click elem ents. 3. (link-local) Η στρατηγική link-local επιτρέπει σε ένα κόμβο του δικτύου να διαδίδει πληροφορίες μόνο στους άμεσα συνδεδεμένους μέσω φυσικής ζεύξης γείτονες του. Η λειτουργία της rendezvous είναι περιορισμένη γιατί δεν έχει να διατηρήσει γράφο πληροφορίας. Αντί αυτού οι subscribers εγγράφονται έμμεσα σε συγκεκριμένα στοιχεία πληροφορίας. Ένας publisher μπορεί να δημοσιεύσει στοιχεία πληροφορίας σε συγκεκριμένες ζεύξεις ή σε όλες. Αν ένας subscriber υπάρχει στην ζεύξη, η πληροφορία προωθείται στην ενδιαφερομένη εφαρμογή. Η λειτουργία του Topology management and formation είναι και πάλι περιορισμένη, επειδή το μόνο που έχει να κάνει είναι να βρει την κατάλληλη ζεύξη. 23

26 2.Ι.2.6. Συνοπτική περιγραφή λειτουργίας publish/subscribe Όταν μια εφαρμογή έχει έτοιμα δεδομένα προς δημοσίευση, στέλνει ενημέρωση στην λειτουργία rendezvous του δικτύου του ότι θα είναι publisher στα δεδομένα αυτά, τα οποία σηματοδοτεί με ένα συγκεκριμένο μοναδικό αναγνωριστικό RID (Rendezvous ID ). Η ενημέρωση γίνεται μέσω των ρουτινών publishscope() και publishinfo(), ανάλογα ώστε να ενημερώσει το γράφημα πληροφορίας ποιες πληροφορίας θέλει να δημοσιεύει. Συμπληρωματικά, όταν μια εφαρμογή θέλει να λαμβάνει κάποια συγκεκριμένα δεδομένα, επίσης ενημερώνει την λειτουργία Rendezvous του δικτύου του ότι θα είναι subscriber (συνδρομητής) στα δεδομένα αυτά, τα οποία σηματοδοτεί με ένα συγκεκριμένο μοναδικό αναγνωριστικό RID (Rendezvous ID ). Η ενημερώσει γίνεται μέσω τον ρουτινών subscribescope() ή subscribeinfo(). Η εφαρμογή μπορεί να καλέσει subscribescope() αν θέλει όλες τις πληροφορίες που διαμένουν κάτω από κάποιο scope. Με την κλήση της ρουτίνας subscribeinfo() η εφαρμογή δηλώνει την επιθυμία να παραλάβει μια συγκεκριμένη πληροφορία, δηλαδή επιθυμεί ένα στοιχείο πληροφορίας το οποίο αντιστοιχεί σε συγκεκριμένα δεδομένα. Όπως προαναφέραμε η λειτουργία Rendezvous είναι υπεύθυνη για να λαμβάνει τις δημοσιεύσεις (publication) και της συνδρομές σε δημοσιεύσεις (subscription) από τους διάφορες εφαρμογές του δικτύου της. Στην συνέχεια κάνει την σύγκριση των RIDs που έφτασαν από publishers μεταξύ των RIDs που έφτασαν από subscribers. Στην περίπτωση που βρεθεί κάποια αντιστοιχία των RIDs τότε η λειτουργία Rendezvous ενημερώνει την λειτουργία Topology management and formation ώστε να φτιάξει ένα μονοπάτι από ένα1 publisher προς τον/τους subscriber/s που βρέθηκαν να είναι εγγεγραμμένοι στην δημοσίευση με το ίδιο RID. Στην συνέχεια o publisher ενημερώνεται από την Rendezvous ώστε να αρχίσει να στέλνει δεδομένα μέσω του αιτήματος "start publish". Ο publisher όταν παραλάβει την ενημέρωση "start publish" αρχίζει να αποστέλλει τα δεδομένα που αντιστοιχούν στο RID που έκανε publish. Στην περίπτωση που μια εφαρμογή είναι publisher και κάνει δημοσιεύσει κάποια πληροφορία που δεν βρεθεί άμεσα κάποιος subscriber, τότε στην εφαρμογή publisher αποστέλλεται από την λειτουργία Rendezvous το μήνυμα "stop publish". Έτσι ενημερώνεται ότι δεν έχει άμεσα κάποιο subscriber εγγραμμένο στην δημοσίευση με το συγκεκριμένο RID και παραμένει σε αναμονή μέχρι να βρεθεί κάποιος subscriber. Καθώς επίσης όταν βρεθεί κάποιος subscriber στο δίκτυο, ο publisher θα παραλάβει εκείνη την στιγμή το μήνυμα start_publish και θα εκτελέσει την διαδικασία αποστολής δεδομένων που περιγράψαμε πιο πριν. Στο Σχήμα 7 παρουσιάζονται οι βασικές ενημερώσεις ώστε να γίνει η παράδοση δεδομένων από ένα publisher προς ένα subscriber. 1 Θα επιλεχτεί ένας, πιθανόν να υπάρχουν περισσότεροι που δημοσιεύουν τα ίδια δεδομένα. 24

27 Publisher Rendezvoous & Topology Manager Subscriber "publish" ( ID) A r ~ ~ - ~ "subscribe" (RID) "start publish" (RID) "publish data" (RID) ^ _ ~ ~ Σχήμα 7: Ανταλλαγή ενημερώσεων που έχει ως αποτέλεσμα την παράδοση δεδομένων από τον publisher προς τον subscriber. Στο Σχήμα 8 μέσω ενός παραδείγματος περιγράφουμε την όλη λειτουργία. Ένας publisher κάνει publish ένα πληροφοριακό στοιχειό με όνομα "/DDDD/0001" κάτω από ένα scope με όνομα "/DDDD". Παράλληλα ένας subscriber κάνει subscribe ένα πληροφοριακό στοιχειό με όνομα "/DDDD/0001" κάτω από το scope "/DDDD". Ο Rendezvous επιστρέφει στον publisher το μονοπάτι προς τον subscriber και έτσι ο publisher αρχίζει την αποστολή των δεδομένων. 25

28 Rendezvous TopologyManager (2) "publish1 ( 1 ) "subscribe" (3) Start Publish1 Publisher. Subscriber publishscope('7dddd ) publish! nfo(7d D D D/000r ) (4) Publish Data" subscribescopep/dddd") subscribe! nfo(n/dddd/0001 ) DDDD DDDD Σχήμα 8: Σχηματικό παράδειγμα λειτουργίας του Blackadder. 26

29 Silicon Bloom Filters και zfilters Για να υποστηριχτεί αποτελεσματικά η τεχνική του publish/subscribe σε δίκτυα μεγάλης κλίμακας, απαιτείται αποδοτική επικοινωνία πολύ-εκπομπής (m ulticast), ώστε να προωθείται η πληροφορία με το λιγότερο υπολογιστικό φόρτο στους διάφορους πόρους του δικτύου. Με μια αποδοτική προωθητική μέθοδο μπορούμε σε κάθε κόμβο να έχουμε μικρούς πίνακες δρομολόγησης και απλές πράξεις στις αποφάσεις δρομολόγησης. Ένας τέτοιου είδους μηχανισμός βασίζεται στην μοναδική αναγνώριση των συνδέσεων μεταξύ των κόμβων και χρησιμοποιώντας τα Silicon Bloom Filters ώστε να κωδικοποιεί και να ενσωματώνει την πληροφορία δρομολόγησης μέσα στην κεφαλίδα κάθε πακέτου. Οι αποφάσεις δρομολόγησης είναι απλές και οι πίνακες δρομολόγησης είναι μικροί, οπότε μπορούμε να έχουμε πιο γρήγορους, πιο μικρούς και πιο αποδοτικούς δρομολογητές. Η πιο πάνω μέθοδος λαμβάνει το πλεονέκτημα της, αναστρέφοντας το σκεπτικό των Bloom Filters. Αντί να κρατάει δηλαδή τα Bloom Filters μέσα στους κόμβους του δικτύου και να ελέγχει εάν κάποιο εισερχόμενο πακέτο περιλαμβάνεται σε κάποιο σύνολο εξερχόμενων συνδέσεων που ορίζονται από Bloom Filters, τοποθετεί τα Bloom Filters μέσα στο πακέτο και επιτρέπει στους κόμβους διαμέσου του μονοπατιού να αποφασίσουν σε ποιες εξωτερικές συνδέσεις θα πρέπει να προωθηθεί το πακέτο. O προωθητικός μηχανισμός δεν χρησιμοποιεί την μέθοδο διευθυνσιοδότησης άκρου προς άκρο (end to end addresses) και αντί να ονομάζονται οι κόμβοι, ονομάζονται όλες οι συνδέσεις μεταξύ των κόμβων. Για να προωθούνται τα πακέτα διάμεσω του δικτύου χρησιμοποιεί την προσέγγιση των υβριδικών Bloom-filter-based. Η λειτουργία του Topology δημιουργεί αναγνωριστικά προώθησης (forwarding identifier) κωδικοποιώντας τα αναγνωριστικά των συνδέσμων κατά κάποιο τρόπο δρομολόγησης. Για κάθε σύνδεσμο που ενώνει δύο κόμβους, εφαρμόζονται δυο αναγνωριστικά. Τα αναγνωριστικά αυτά λέγονται Link ID s, ένα για κάθε κατεύθυνση. Για παράδειγμα ένα από τον κόμβο Α προς τον κόμβο Β και ένα από τον κόμβο Β προς τον κόμβο Α. Βασικά, ένα Link ID αποτελείται από ένα δυαδικό αριθμό αποτελούμενο από m-bits με k-bits από αυτά τα είναι ίσα με ένα '1'. Επιλέγοντας k<<m και m σχετικά μεγάλο μπορούμε να κάνουμε τα Link ID μοναδικά γιατί μπορούν να γίνουν πάρα πολλοί συνδυασμοί τέτοιων Link ID s. (για παράδειγμα, με m = 248, k = 5, αριθμός των Link IDs ~ m!/(m -k)! ^ 9 *1 0 Λ 11). Η λειτουργία Topology δημιουργεί ένα γράφημα του δικτύου και χρησιμοποιεί τα Link IDs για την συνδεσιμότητα. Όταν πάρει ένα αίτημα για να καθορίσει το δέντρο για μια δημοσίευση, πρώτα δημιουργεί ένα εννοιολογικό δέντρο παράδοσης χρησιμοποιώντας το γράφημα του δικτύου και τις τοποθεσίες των publishers και των subscribers. Από τη στιγμή που έχει μια τέτοια εσωτερική αναπαράσταση του δέντρου, ξέρει από ποια Links θα περάσει το πακέτο. Βασικά κωδικοποιούν όλα τα Link IDs του δέντρου μέσα σε Bloom Filters και τοποθετούνται στην κεφαλίδα του πακέτου. Έτσι όταν όλα τα Link IDs τοποθετηθούν στο φίλτρο, γίνεται μια χαρτογράφηση σε Bloom Filters του 27

30 αναγνωριστικού των δεδομένων, από τον κόμβο που δρα ως η πηγή στο δέντρο παράδοσης. Στην αναπαράσταση των δέντρων παράδοσης σε κεφαλίδες των πακέτων έχει σημαντικό ρόλο η πηγή των δεδομένων, αφού από ίδιες πήγες πολύ πιθανόν να χρησιμοποιηθούν διαφορετικά Bloom Filters για το ίδιο σύνολο των subscribers. Για την διάκριση των Bloom Filters της κεφαλίδας του πακέτου από τα άλλα Bloom Filters, αναφέρονται τα Bloom Filters πακέτου σαν zfilters. Ο πυρήνας του μηχανισμού προώθησης, που είναι η απόφαση προώθησης, βασίζεται στο δυαδικό AND και σε πράξεις σύγκρισης. Και οι δυο αυτές πράξεις είναι πολύ απλές να υλοποιηθούν σε hardware. Σε κάθε κόμβο ο μηχανισμός δρα ως ακολούθως: για κάθε σύνδεσμο, το εξερχόμενο Link ID γίνεται AND με το zfilter του πακέτου. Εάν το αποτέλεσμα είναι ίσο με το Link ID, τότε θεωρείται ότι το Link ID τοποθετήθηκε στο zfilter και έτσι το πακέτο θα πρέπει να προωθηθεί προς αυτόν τον σύνδεσμο. Ο βασικός αλγόριθμος που χρησιμοποιείται παρουσιάζεται στην πιο κάτω εικόνα. Input: Link IDs o f the outgoing links; zfilters in the packet header foreach Link ID o f outgoing interface do if zfitler & Link ID == Link ID then end end Forward packet on the link Αλγόριθμος 1: Αλγόριθμος προώθησης που εκτελεί η λειτουργία Forwarding σε κάθε πακέτο που φθάνει στον κόμβο, ώστε να προωθηθεί στην κατάλληλη σύνδεση. Ένα στιγμιότυπο δρομολόγησης ενός πακέτου που βασίζει την δρομολόγηση του σε zfilter που διαθέτει, φαίνεται στο Σχήμα 9. Το πακέτο ξεκινώντας από τον publisher, με βάση το zfilter που φαίνεται και τον αλγόριθμο που παρουσιάζεται πιο πάνω μπορούμε να διακρίνουμε πιο μονοπάτι θα ακολουθήσει. 28

31 Publisher :ch and forward Interface IF P-l Link D 00 I I 0000 I Publicavon DATA Match and forw ard IF 2-1 N o d e 2 Subscriber IF i r p j - ^flf 2- J N o d e I Match and forward Interface Link ID IF 2-1 I IF Γ N o d e 3 l F Interface Link ID IF Σχήμα 9: Προώθηση ενός πακέτου με βάση το zfilter που διακέτει Κρυφή Αποθήκευση (Caching) Στο Διαδίκτυο, ένα μεγάλο μέρος του περιεχομένου μεταφέρεται επανειλημμένα. Τις περισσότερες φορές το περιεχόμενο αναμεταδίδεται από την πηγή για να εξυπηρετήσει διάφορες αιτήσεις που έρχονται από το δίκτυο. Το Caching είναι μια από τις πολλές τεχνικές που στοχεύει στην μείωση του φόρτου γενικά στο διαδίκτυο και του φόρτου στους κόμβους που διαθέτουν την πληροφορία. Τρία χαρακτηριστικά του Web caching το καθιστούν ελκυστικό για όλους τους συμμετέχοντες στο διαδίκτυο. Σε αυτούς συμπεριλαμβάνονται οι χρηστές, οι διαχειριστές του δικτύου και οι δημιουργοί του περιεχομένου. Αυτά είναι: 1. Μειώνει το συνολικό bandwidth του δικτύου. 2. Μειώνει την καθυστέρηση που αντιλαμβάνεται ο χρήστης. 3. Μειώνει το φόρτο στους διακομιστές προέλευσης της πληροφορίας Στρατηγικές αντικαταστάσεις Το κεντρικό θέμα στο caching είναι η στρατηγική αντικατάστασης. Στρατηγική αντικατάσταση της cache είναι η διαδικασία που λαμβάνει χώρα όταν η μνήμη γεμίσει και κάποιο παλιό αντικείμενο πρέπει να αφαιρεθεί ώστε να κάνει χώρο για εισαγωγή νέου αντικειμένου. Πιο κάτω αναφέρουμε τις βασικές στρατηγικές αντικατάστασης. Βλέπουμε τα ωφελήματα που προσφέρει η κάθε μια. Έχουμε αναλύσει τις ακόλουθες κατηγορίες στρατηγικών αντικατάστασης, στρατηγικές που βασίζονται στο πιο πρόσφατο, στρατηγικές που βασίζονται στην συχνότητα και στρατηγική πρώτο μπαίνει - πρώτο βγαίνει (F IF O ). 29

32 Στρατηγικές που βασίζονται στο πιο πρόσφατο (Recent- Based Strategies) Οι στρατηγικές αυτές χρησιμοποιούν την πιο πρόσφατη αναφορά ως κύριο παράγοντα. Οι περισσότερες από αυτές είναι περισσότερο ή λιγότερο επεκτάσιμες της γνωστής στρατηγικής LRU (Last Recently Used). Η στρατηγική LRU εφαρμόζεται με επιτυχία σε πολλούς διαφορετικούς τομείς των υπολογιστών. Η LRU βασίζεται στην τοπικότητα αναφοράς που φαίνεται σε αιτήματα. Η τοπικότητα της αναφοράς χαρακτηρίζει την ικανότητα να προβλέπει τις μελλοντικές προσβάσεις σε κάποια αντικείμενα, βασιζόμενη σε προσβάσεις από το παρελθόν. Υπάρχουν δύο κύριοι τύποι της τοπικότητας: χρονικές και χωρικές. Η χρονική τοπικότητα αναφέρεται σε επαναλαμβανόμενες προσβάσεις στο ίδιο αντικείμενο σε σύντομα χρονικά διαστήματα. Αυτό σημαίνει ότι εφόσον έχει τώρα πρόσφατές προσβάσεις το ίδιο αντικείμενο, είναι πιθανό να προσπελαστεί ξανά στο μέλλον. Η χωρική τοπικότητα αναφέρεται σε πρότυπα πρόσβασης. Όπου προσβάσεις σε κάποιο αντικείμενο συνεπάγεται προσβάσεις σε κάποια άλλα αντικείμενα. Συνεπάγεται επίσης ότι οι αναφορές σε κάποια αντικείμενα μπορεί να γίνουν μέσω πρόβλεψης των μελλοντικών αναφορών σε άλλα αντικείμενα Στρατηγικές που βασίζονται στην συχνότητα (Frequent- Based Strategies) Οι στρατηγικές αυτές χρησιμοποιούν την συχνότητα ως κύριο παράγοντα. Οι στρατηγικές που βασίζονται στην συχνότητα είναι περισσότερο ή λιγότερο επεκτάσιμες της γνωστής στρατηγικής LFU (Last Frequency Used). Συγκεκριμένα βασίζονται στο γεγονός ότι διαφορετικά αντικείμενα έχουν διαφορετικές τιμές δημοσιότητας και αυτές οι τιμές δημοσιότητας αντιστοιχούν σε διαφορετικές τιμές συχνότητας. Οι στρατηγικές που βασίζονται στην συχνότητα, παρακολουθούν αυτές τις τιμές και τις χρησιμοποιούν μελλοντικές σε αποφάσεις. Η LFU (και οι επεκτάσεις της) μπορεί να εφαρμοστούν σε δύο διαφορετικές μορφές: Τέλεια LFU (Perfect LFU) και LFU σε μνήμες (In-Cache LFU). Τέλεια LFU μετράει όλα τα αιτήματα για ένα αντικείμενο. Οι αιτήσεις εμμένουν και μετά τις αντικαταστάσεις των αντικειμένων. Από τη μία πλευρά, αυτό εξασφαλίζει ότι οι μετρήσεις αιτημάτων αντιπροσωπεύουν όλες τις αιτήσεις από το παρελθόν. Από την άλλη πλευρά, οι στατιστικές αυτές πρέπει να τηρούνται για όλα τα αντικείμενα που είδαν στο παρελθόν (αυτό επιφέρει επιβάρυνση χώρου). Στις LFU σε μνήμες, οι μετρήσεις καθορίζονται μόνο για τα αντικείμενα που είναι αποθηκευμένα. Αν και αυτό δεν αντιπροσωπεύει το σύνολο των αιτήσεων του παρελθόντος, εξασφαλίζει μια απλούστερη διαχείριση (επιφέρει λιγότερη επιβάρυνση χώρου). 30

33 Στρατηγική πρώτο μπαίνει - πρώτο βγαίνει (First In - First Out) Πρόκειται για την πιο απλή στρατηγική αντικατάστασης, που βρίσκει εφαρμογή σε πολλές περιπτώσεις στον τομέα των υπολογιστών και ειδικά σε ουρές αναμονής. Η στρατηγική FIFO λέει απλά ότι σε περίπτωση που γεμίσει η μνήμη και έρθει ένα νέο αντικείμενο όπου πρέπει να αποθηκευτεί, τότε θα διαγράφει από την μνήμη αυτό που αποθηκεύτηκε αρχικά πρώτο Click Modular Router Ο Click Modular Router είναι μια αρχιτεκτονική για την δημιουργία ευέλικτων και ρυθμιζόμενων δρομολογητών. Ο Click Router αποτελείται από οντότητες επεξεργασίας πακέτων που λέγονται Elements (στοιχεία). Μεμονωμένα elements υλοποιούν μια απλή λειτουργία δρομολογητή όπως για παράδειγμα διαχωρισμό πακέτων, queueing, scheduling, αλληλεπίδραση με συσκευές δικτύου και διάφορα άλλα. Η διαμόρφωση του δρομολογητή είναι ένας κατευθυνόμενος γράφος με elements στις κορυφές του. Τα πακέτα περνούν από τις ακμές του γράφου. Οι ρυθμίσεις γράφονται σε δηλωτική (declarative) γλώσσα που καθορίζει ο χρήστης. Η γλώσσα αυτή είναι αναγνώσιμη τόσο από τον άνθρωπο όσο και από το εργαλείο του Click Router. Βάσει της αρχιτεκτονικής και της γλώσσας του, οι Click Router ρυθμίσεις είναι αρθρωτές (Modular) και εύκολα επεκτάσιμες. Κάθε element είναι ένα λογισμικό που αναπαριστά μια οντότητα επεξεργασίας του δρομολογητή. Γράφοντας το δικό μας λογισμικό μπορούμε να φτιάξουμε δικά μας elements ή να τροποποιήσουμε τα ήδη υπάρχοντα. Για την δημιουργία νέου element πρέπει να γραφτεί μια κλάση σε κώδικα C++ και να ενσωματωθεί στο εργαλείο Click Router. Τα elements έχουν πέντε σημαντικές ιδιότητες: element class, ports, configuration strings, method interfaces, and handlers. (Element class) Καθορίζει την διάταξη δεδομένων στο Elem ent. και την συμπεριφορά των (Ports) Κάθε Element έχει κάποιο αριθμό εισερχόμενων και εξερχόμενων θυρών. (Configurations Strings) Προαιρετικά αλφαριθμητικά διαμόρφωσης που παρέχουν επιπλέον ορίσματα στο Element κατά την αρχικοποίηση του δρομολογητή. 31

34 (Method Interface) Κάθε Element έχει εξάγει μεθόδους που μπορεί να έχει πρόσβαση σε άλλα Elem ents. (Handlers) Είναι μέθοδοι που μπορούν να εξάγουν δεδομένα στον χρήστη και όχι αλλά Elem ents. Στο Σχήμα 10 διακρίνονται οι σημαντικές ιδιότητες πάνω σε ένα Click elem ent. Σχήμα 10: Σχηματικά, απεικονίζονται οι ιδιότητες των Click elements. Στο Σχήμα 11 φαίνεται μια συνδεσμολογία Click elements εκτελεί μια λειτουργία. connections Σχήμα 11: Μια απλή συνδεσμολογία από elements του Click Router. 32

35 3. Caching στον Blackadder Σε αυτό το κεφάλαιο παρουσιάζουμε αναλυτικά την σχεδίαση του μηχανισμού αποθήκευσης πακέτων καθώς και την ενσωμάτωση του στον Blackadder. Αρχικά παρουσιάζουμε κάποιες νέες συμβάσεις και επεκτάσεις που χρειάστηκαν να γίνουν στον Blackadder ώστε να επιτευχθεί η ορθή του λειτουργία. Για παράδειγμα συμβάσεις κατά τις οποίες μια εφαρμογή publisher γίνεται και subscriber σε κάποια δεδομένα καθώς επίσης και το αντίστοιχο. Δηλαδή όπου μια εφαρμογή subscriber γίνεται και publisher σε κάποια δεδομένα. Σκοπός είναι να δημιουργηθεί μονοπάτι από τον subscriber στον publisher, όπου θα αποστέλλεται δια μέσω αυτού αίτημα δεδομένων. Στην συνέχεια παρουσιάζουμε ένα αλγόριθμο δημιουργίας ανάποδου μονοπατιού από τον κόμβο που βρεθούν τα δεδομένα μέχρι τον subscriber, που είναι ο αιτών. Καθώς και την ενσωμάτωση του μηχανισμού αποθήκευσης μέσα στα Click element του Blackadder. Επίσης παρουσιάζουμε την εσωτερική βασική σχεδίαση της λειτουργίας του μηχανισμού και τις απαραίτητες λειτουργίες, όπως εισαγωγής, αναζήτησης, ταξινόμησης και διαγραφής πακέτου. Στο τέλος του κεφαλαίου δείχνουμε συγκεκριμένα σε ποια elements υλοποιήσαμε τις λειτουργιές που προαναφέρουμε στην σχεδίαση του μηχανισμού. Καθώς επίσης παρουσιάζουμε και τον τρόπο που τροποποιήσαμε εφαρμογές (clients) για να είναι συμβατές σύμφωνα με το μοντέλο μας Σχεδίαση Γενικά Η λειτουργία του μηχανισμού αποθήκευσης που παρουσιάζουμε ενσωματώνεται στο λογισμικό του Blackadder που τρέχει σε δρομολογητές. Έτσι επεκτείνουμε την λειτουργία του Blackadder ώστε να έχει την δυνατότητα να κάνει αποθήκευση πακέτα δεδομένων. Πιο κάτω αναλύουμε αυτή την διαδικασία. Μέχρι στιγμής στην υλοποίηση του Blackadder ξέρουμε ότι ο κάθε publisher κάνει publish σε κάποια scopes και σε κάποια στοιχεία πληροφορίας (information item s). Ενώ ένας subscriber κάνει subscribe σε κάποια scopes και σε κάποια στοιχεία πληροφορίας. Έτσι δεν υπάρχει κάποιου είδους μήνυμα που να ζητά δεδομένα από κόμβους του δικτύου, παρά μόνο μηνύματα που στέλνονται στον Rendezvous. Δηλαδή, σε μια παράδοση δεδομένων υπάρχει μια έμμεση επικοινωνία μεταξύ των publishers και των subscribers δια μέσω της λειτουργίας Rendezvous. Συγκεκριμένα, οι subscribers κάνουν subscribe κάποιο RID στην λειτουργία Rendezvous. Αν υπάρχει κάποιος publisher που έκανε publish στο ίδιο RID, τότε ο publisher ενημερώνεται από την Rendezvous ώστε να αρχίσει να στέλνει δεδομένα στον subscriber. Μαζί με την ενημέρωση που έρχεται στον publisher 33

36 για να αρχίσει να στέλνει τα δεδομένα περιέχεται και το μονοπάτι από τον publisher προς τον/τους subscriber/s, μονοπάτι το οποίο το έφτιαξε η λειτουργία Topology m anagem ent and formation (TM). Ο Μηχανισμός αποθήκευσης λειτούργει σε κάθε κόμβο του δικτύου και επιλεγεί να αποθηκεύει μόνο πακέτα που περιέχουν δεδομένα και όχι άλλου είδους πακέτα (π.χ. του πρωτοκόλλου). Κατά την αποστολή δεδομένων, οι ενδιάμεσοι κόμβοι που περιέχονται στο μονοπάτι/α, από τον publisher προς τον/τους subscriber/s, έχουν την δυνατότητα να αποθηκεύσουν τα πακέτα δεδομένων που περνάνε από αυτούς. Στο Σχήμα 12 απεικονίζεται ένα τέτοιο στιγμιότυπο όπου στέλνονται δεδομένα από τον publisher προς τους subscribers. Βλέπουμε ότι στους κόμβους όπου περνούν τα δεδομένα, αυτά αποθηκεύονται από στον μηχανισμό αποθήκευσης. Publisher I CATA I I Cache DATA CATA Cache DATA DATA I Cache DATA CATA Subscri ber Cache DATA CATA Subscriber Σχήμα 12: Αποστολή δεδομένων απο τον Publisher προς τους Subscribers και παραλληλα η αποθήκευση των δεδομένων στους ενδιάμεσους κόμβους Συμβάσεις στο προηγούμενο μοντέλο Ξέρουμε από την μέχρι στιγμής λειτουργία του Blackadder ότι οι εφαρμογές αλληλεπιδρούν με βάσει κάποιων ρουτινών που συνιστούν το εξυπηρετικό του μοντέλο. Ρουτίνες οποίες απευθύνονται στην λειτουργία Rendezvous, δηλώνουν ποιο ρόλο θα έχουν οι εφαρμογές που τις εκτελούν, είτε ως publishers είτε ως subscribers. Συγκεκριμένα κάνουμε τις εξής συμβάσεις που υποστηρίζονται από το προηγούμενο μοντέλο του Blackadder: 1. Για μια εφαρμογή που έχει δεδομένα προς δημοσίευση στέλνει ενημέρωση μέσω των ρουτινών publishscope() και publishinfo(), έτσι ενημερώνει την Rendezvous ότι θα είναι publisher για κάποια συγκεκριμένα RIDs πληροφορίας πάνω στον γράφο πληροφορίας. Αυτά τα RIDs αντιστοιχούν στα δεδομένα που έχει προς δημοσίευση. Παράλληλα στέλνει ενημέρωση μέσω των ρουτινών subscribescope() και subscribeinfo() που με αυτά θα 34

37 ενημερώσει την λειτουργία Rendezvous ότι θα είναι subscriber για κάποια συγκεκριμένα RID s, αυτά τα RIDs τα ονομάζουμε RequestRIDs και αντιστοιχούν σε πληροφορίες που περιέχουν αιτήσεις για τα δεδομένα που έγινε προηγουμένως publisher. Κατ' αντιστοιχία ένα RequestRID περιέχει αίτηση δεδομένων για ένα RID δεδομένων. 2. Για μια εφαρμογή που θέλει να εγγράφει ώστε να παραλαμβάνει δεδομένα στέλνει ενημέρωση στην λειτουργία Rendezvous μέσω της ρουτίνας subscribeinfo() για κάποια RIDs που αντιστοιχούν σε δεδομένα τα οποία ζητά. Παράλληλα στέλνει ενημέρωση μέσω της ρουτίνας publishinfo() και δηλώνει ότι θέλει να είναι publisher για κάποια RIDs που αντιστοιχούν σε RequestRIDs τα οποία αντιπροσωπεύουν πληροφορίες που περιέχουν αιτήσεις για τα συγκεκριμένα δεδομένα που έγινε προηγουμένως subscriber. Κατ' αντιστοιχία και πάλι ένα RequestRID περιέχει αίτηση δεδομένων για ένα RID δεδομένων. Στο Σχήμα 13 βλέπουμε την αναπαράσταση των πιο πάνω συμβάσεων με την μορφή ενός παραδείγματος. Υπάρχει ο publisher που κάνει publish μια πληροφορία με RID="DDDD/0001" και subscribe στο RequestRID="AAAA/0001", ενώ ο subscriber κάνει subscribe μια πληροφορία με RID="DDDD/0001" και publish το RequestRID="AAAA/0001". Rendezvous TopologyManager Publisher: RID Subscriber: RequestRID Subscriber: RID Publisher RequestRID Publish RID Subscribe RequestRID Subscribe RID Publish requestrid DDDD ΑΑΑΑ DDDD ΑΑΑΑ Σχήμα 13: Σχηματικό παράδειγμα Publish και Subscribe και από τους δύο κόμβους (πελάτες). 35

38 Μοντέλο από push σε pull Ο πρώτος σκοπός αυτής της σύμβασης που επινοήσαμε είναι να δώσουμε την δυνατότητα στον subscriber να λάβει και αυτός από την λειτουργία TM του δικτύου, ένα μονοπάτι από τον ίδιον προς έναν publisher που περιέχει τα δεδομένα. Εδώ υφίσταται και η έννοια της αίτησης δεδομένων που δημιουργήσαμε και κατ' επέκταση του μηχανισμού αποθήκευσης. Όταν ο subscriber θα έχει το μονοπάτι προς τον publisher θα μπορεί να υπάρξει μια άμεση επικοινωνία μεταξύ αυτών των δύο κόμβων. Δηλαδή θα μπορεί να του στείλει ένα αίτημα για δεδομένα που ζήτα από αυτόν. Στην αποστολή του αιτήματος, ο publisher είναι και ο τελικός προορισμός και παράλληλα αυτός που έχει σίγουρα τα δεδομένα. Σε συνέχεια με το προηγούμενο σχήμα βλέπουμε στο Σχήμα 14 ένα subscriber που έχει το ανάποδο μονοπάτι προς τον publisher και το πιθανό δρομολόγιο της αίτησης. Σχήμα 14: Αποστολή του αιτήματος για δεδομένα από τον Subscriber με προορισμό τον Publisher και παράλληλα ο τερματισμός προώθησης του αιτήματος από κόμβο που περιέχει τα δεδομένα. Κατά την διάρκεια της προώθησης της αίτησης δεδομένων προς τον publisher υπάρχουν και οι ενδιάμεσοι κόμβοι στους οποίους είναι πιθανόν από προηγούμενες ανταλλαγές δεδομένων, να υπάρχουν αποθηκευμένα τα ίδια δεδομένα που αναζητά ο subscriber. Έτσι, αν βρεθούν σε κάποιο ενδιάμεσο κόμβο, να είναι δυνατόν να του επιστραφούν πριν φθάσει το αίτημα του στον publisher (τον τελικό προορισμό). Κάθε ενδιάμεσος κόμβος όταν λαμβάνει το αίτημα δεδομένων θα ελέγχει το δικό του μηχανισμό αποθήκευσης για τα δεδομένα που ζητά το αίτημα. Σε περίπτωση που βρεθούν τα δεδομένα σε έναν ενδιάμεσο κόμβο, τότε αυτός τα στέλνει πίσω στον subscriber. Στην περίπτωση που δεν βρεθεί ενδιάμεσος κόμβος που να περιέχει τα δεδομένα, το αίτημα δεδομένων θα φθάσει στον publisher που έχει σίγουρα τα δεδομένα και έτσι τα στέλνει στον subscriber με τον κλασσικό τρόπο που θα τα έστελνε χωρίς την 36

39 λειτουργία του μηχανισμού αποθήκευσης. Στο Σχήμα 15 μας δείχνει ένα στιγμιότυπο όπου βρέθηκαν τα δεδομένα στον δεύτερο κόμβο. Οπότε αποστέλλονται στον subscriber, επίσης αποθηκευτήκαν σε κόμβο που δεν τα είχε προηγουμένως. Σχήμα 15: Αποστολή των δεδομένων που αιτήθηκε ο Subscriber από ενδιάμεσο κόμβο που περιείχε τα δεδομένα και παράλληλα η αποθήκευση των δεδομένων αυτών στον ενδιάμεσο κόμβο που βρίσκεται στο μονοπάτι που ακολουθούν προς τον Subscriber. 3.Ι.2.2. Διαχωρισμός RIDs δεδομένων από RIDs αιτημάτων Ο δεύτερος σκοπός της πιο πάνω σύμβασης ήταν αναγνώρισης των RIDs των δεδομένων από τα RIDs των αιτημάτων. Οπότε για να ξεχωρίσουμε τα RIDs των δεδομένων από τα RIDs των αιτημάτων, ορίσαμε δυο συγκεκριμένα scopes τα οποία θα μπαίνουν ως πρόθεμα στην κάθε περίπτωση, δεδομένων ή αιτημάτων. Το υπόλοιπο RID εκτός από το πρόθεμα παραμένει το ίδιο. Στο Σχήμα 16 βλέπουμε ένα γράφημα πληροφορίας που αναπαριστά τη πιο πάνω σύμβαση, ώστε να ξεχωρίζει τα RIDs. Βλέπουμε ότι τα RIDs που αντιστοιχούν σε δεδομένα αρχίζουν από το scope "DDDD", ενώ τα RIDs που αντιστοιχούν σε αιτήματα για τα αντίστοιχα δεδομένα αρχίζουν με το πρόθεμα "AAAA". Για παράδειγμα το RID δεδομένων που αναγνωρίζεται από το αναγνωριστικό "/DDDD/BBBB/0001", θα αναζητείται από μια αίτηση που έχει ως RID το αναγνωριστικό "/AAAA/BBBB/0001". 37

40 Σχήμα 16: Ένα γράφημα πληροφορίας που ξεχωρίζει τα RIDs των δεδομένων από τα RIDs των αιτημάτων για τα αντίστοιχα δεδομένα Αλλαγές στους clients του Blackadder Για τους σκοπούς της υλοποίηση μας τροποποιούμε κατάλληλα τους clients του Blackadder. Ο publisher πρέπει να αρχίσει την αποστολή δεδομένων προς τον subscriber μόνο και μόνο όταν λάβει την αίτηση από αυτόν. Δηλαδή, αγνοεί την ενημέρωση "start publish" που λαμβάνει από την Rendezvous που του λέει να αρχίσει να στέλνει δεδομένα. Ο subscriber που ζητεί δεδομένα αφού είναι και publisher στα αιτήματα των δεδομένων που γίνεται subscriber τότε θα λάβει από την Rendezvous, το μήνυμα "start publish" (που περιέχει και το μονοπάτι προς τον publisher) και του λέει να αρχίσει να στέλνει δεδομένα, τότε ο subscriber στέλνει το αίτημα για τα δεδομένα "se n d request" Δομή πακέτου αίτησης Για τις ανάγκες φτιάξαμε το πακέτο αίτησης και επιλέξαμε να τοποθετήσουμε τόσα πεδία όσα είναι το λιγότερο δυνατό ώστε να μην επιφέρουμε φόρτο στο δίκτυο. Το πακέτο αίτησης περιέχει αναγκαία τα εξής: 1ο ένα FID ώστε να βρει το μονοπάτι προς τον προορισμό του, 2ο ένα RID που είναι το αναγνωριστικό του Rendezvous, 3ο ένα RID το οποίο είναι το αναγνωριστικό του Rendezvous για τα 38

41 δεδομένα που αναζητά και 4 ένα πεδίο στο οποίο θα δομείτε το ανάποδο FID της διαδρομής (Reverse FID ). Στο Σχήμα 17 φαίνεται η δομή του πακέτου αίτησης. HEADER (IP or ETHERNET) FID RID Data RID Reverse FI D Σχήμα 17: Η Δομή του πακέτου αίτησης (Request Packet) Δημιουργία ανάποδου μονοπατιού (Reverse FID ) Όταν μια αίτηση δεδομένων που φθάνει σε ένα κόμβο και βρει επιτυχώς τα δεδομένα στον μηχανισμό αποθήκευσης, τα δεδομένα αυτά θα πρέπει να επιστραφούν στο αποστολέα της αίτησης. Εδώ γεννάται το ερώτημα, «πως θα βρουν τον μονοπάτι να επιστραφούν πίσω στον αποστολέα της αίτησης;». Στην σχεδίαση μας σκεφτήκαμε ότι καθώς μια αίτηση προωθείται κόμβο προς κόμβο μέσα στο δίκτυο από τον αποστολέα προς τον παραλήπτη, θα μπορεί να κωδικοποιεί το ανάποδο μονοπάτι, από τον μέχρι στιγμής κόμβο που θα βρίσκεται προς στον αποστολέα της. Το ανάποδο μονοπάτι είναι ένα FID (Forward ID ) και το καλούμε ReverseFID. Αυτό το ReverseFID θα μπαίνει στην θέση του FID για το νέο πακέτο δεδομένων που θα δημιουργεί ο μηχανισμός αποθήκευσης στην περίπτωση που βρεθούν τα δεδομένα. Έτσι το πακέτο δεδομένων που θα δημιουργηθεί θα χρησιμοποιείται κανονικά από την λειτουργία Forwarder κάθε κόμβου για την δρομολόγησή του. Έτσι στο πακέτο αίτησης προσθέτουμε ένα πεδίο μεγέθους FID (σε bytes), επιλέγουμε να το τοποθετήσουμε στο τέλος του πακέτου. Αυτό το πεδίο θα ενημερώνεται κατάλληλα σε κάθε κόμβο που θα φθάνει. Η ενημέρωση του πακέτου γίνεται από τη λειτουργία Forwarder και βασίζεται στην δυαδική πράξη OR. Σε κάθε ενδιάμεσο κόμβο που φθάνει το πακέτο αίτησης, θα πρέπει να κωδικοποιείται στο πεδίο ReverseFID το αναγνωριστικό της σύνδεσης (Link ID ) που συνδέει τον κόμβο που είναι παρόν με τον κόμβο που βρισκόταν πριν. Αναγκαία πεδία για την κωδικοποίηση του ανάποδου μονοπατιού είναι ο πίνακας προωθήσεως του κόμβου και το πακέτο αίτησης. Σε κάθε κόμβο που φθάνει το πακέτο αίτησης το ReverseFID ισούται με το OR αυτού μαζί με τον Link ID που ενώνει τον κόμβο που είναι παρόν και τον κόμβο που βρισκόταν πριν. Στην περίπτωση της λειτουργίας του Blackadder, όπου οι εφαρμογές και το λογισμικό του δρομολογητή τρέχουν στον ίδιο κόμβο, γίνεται η αρχική πράξη OR με τον εσωτερικό σύνδεσμο του κόμβου(intemal Link ID ). Αυτή την προσέγγιση που ακολουθήσαμε για την εύρεση και κωδικοποίηση ανάποδου μονοπατιού την αναπαριστούμε αλγοριθμικά στον αλγόριθμό που φαίνεται πιο κάτω. 39

42 Input of node: Source Address (srclink), Destination Address (dstlink) and Link IDs (linkid) o f the outgoing links; internal Link ID (internallink) if needed; Input of packet: Source Address (srcpkt), Destination Address (dstpkt) and Reverse FID (reversefid); If (Subscriber is in this node) then end reversefid = internallink For each: Link ID o f outgoing interface do If (src_link == dst_ pkt) && (dst_link == src_ pkt) then reversefid = reversefid link End End Αλγόριθμος 2: Ο αλγόριθμος για την κωδικοποίηση του ανάποδου μονοπατιού στο πεδίο ReverseFID του πακέτου αίτησης. Στο Σχήμα 18 που ακολουθεί δίνεται ένα παράδειγμα κωδικοποίησης ενός ανάποδου μονοπατιού στο πεδίο ReverseFID του πακέτου, κατά την διάρκεια της αποστολής μιας αίτησης από τον subscriber προς τον publisher. Το πεδίο ReverseFID φαίνεται στο πακέτο αίτησης (request packet) σε δυαδική αναπαράσταση. Για κάθε άφιξη του πακέτου σε κάθε κόμβο γίνεται αναβάθμιση του πεδίου ReverseFID. Συγκεκριμένα η αναβάθμιση γίνεται στην λειτουργία Forwarder που κρατά στην μνήμη της τον πινάκα προωθήσεως του κόμβου. Έτσι με βάση τον αλγόριθμο που παρουσιάζεται πιο πάνω που έχει ως κύριο συστατικό στοιχείο την δυαδική πράξη OR, κωδικοποιείται το ανάποδο μονοπάτι. 40

43 NODE 1 Source Interface Destination Interface Link ID IF 1-1 IF 2-1 X G X X 1 C X G NODE 1 Source Interface Destination nterface Link ID IF 4-1 IF 3-1 c i c x x x x : Internal Link Interna I Link X G X X G 1 X G Request Subscriber f i d r id d a t a r i d aoooooooiooo IF 4-1 Request I FID I RID I DATA RID I FID RID DATA RID NODE 3 Source Interface Destination Interface Link ID IF 3-1 IF 4-1 x : i: x x x c IF 3-2 IF 2-2 x i x x x x : MODE 2 Source Interface Destination Interface Link ID IF 2-1 IF 1-1 X 'G X G I X X G if F 3-2 X G X 1 G X X G IF 2-3 IF X-X Internal Link INTERNET X GC X X X I GC G Internal Lmk X G X X X G 1 G Σχήμα 18: Σχηματικό παράδειγμα κωδικοποίησης ενός ανάποδου μονοπατιού στο πεδίο (Reverse FID) του πακέτου αίτησης, καθώς προωθείται από τον Subscriber προς τον Publisher. 41

44 Ενσωμάτωση του μηχανισμού μέσα στο Blackadder Τα πακέτα που εισέρχονται του κόμβο από το δίκτυο δέχονται επεξεργασία από το λογισμικό του Blackadder, το οποίο τρέχει μέσα από το εργαλείο Click Router. Έτσι κάθε πακέτο περνάει από διάφορα elements του Click και ανάλογα με το τι περιέχει, με το τι πακέτο είναι, για ποιο/ποιούς προορίζεται και διάφορα άλλα, το λογισμικό του Blackadder κάνει τις απαραίτητες λειτουργιές. Έτσι για τους σκοπούς της υλοποίησης δημιουργήσαμε το δικό μας Click element. Του δώσαμε το όνομα Cache και εκτελεί την βασική λειτουργία του μηχανισμού αποθήκευσης. Σ υ λλο γ ισ μ ό ς: Ο μηχανισμός αποθήκευσης που τρέχει σε κάθε κόμβο, πρέπει να είναι σε θέση να μπορεί να παραλαμβάνει πακέτα δεδομένων και πακέτα αιτήσεων που προέρχονται από το δίκτυο ή/και τις εφαρμογές που τρέχουν στον ίδιο τον κόμβο. Επίσης, να είναι σε θέση να στέλνει δεδομένα στο δίκτυο ή σε εφαρμογές που τρέχουν στον ίδιο τον κόμβο. Άρα θα πρέπει να μπει στην κατάλληλη θέση ώστε να αλληλεπιδρά με τις υπόλοιπες λειτουργίες και να παρέχει το επιθυμητό αποτέλεσμα. Με βάση τον πιο πάνω συλλογισμό, συμπεραίνουμε ότι πρέπει μέσα στα Click elements του Blackadder να επιλέγει η κατάλληλη τοποθεσία όπου θα ενσωματωθεί το δικό μας element Cache. Η τοποθεσία είναι οι κατάλληλες συνδέσεις που συνδέουν το δικό μας element με τα ήδη υπάρχοντα elements του Blackadder. Στο Σχήμα 19 φαίνεται η ενσωμάτωση και η συνδεσμολογία του μηχανισμού αποθήκευσης (elem ent C ache), μέσα στα Click elem ents του Blackadder. 42

45 A p pl App2 App3 App4 AppN Service Model Application Interface Topology M anager Component X Core Rendezvous Forwarding Cache Communication E ements Network Σχήμα 19: Ενσωμάτωση του μηχανισμού αποθήκευσης (Cache) μέσα στην αρχιτεκτονική κόμβου του Blackadder. To element Cache που υλοποιεί τον μηχανισμό αποθήκευσης λειτούργει κατά την είσοδο και την έξοδο κάποιου πακέτου από τον κόμβο. Συγκεκριμένα το element Cache έχει αμφίδρομη επικοινωνία με τα Elements Forwarder και Communication Element. Επίσης έχει και μια δεύτερη εξερχομένη θύρα που επικοινωνεί πάλι με το element Forwarder. Ελέγχει τα πακέτα που εισέρχονται από το Communication element και/που εισέρχονται από το Element Forwarder. Σε περίπτωση που για κάποιο εισερχόμενο πακέτο αίτησης βρει δεδομένα να στείλει, τότε ετοιμάζει το πακέτο δεδομένων. Στη συνέχεια του βάζει το κατάλληλο FID (Reverse FID) και τα δεδομένα και το προωθεί πίσω στο Element Forwarder διαμέσου της θύρας 2. Στο Forwarder με βάση το FID θα γίνει η απόφαση για το που θα σταλεί, και έτσι θα τοποθετηθούν τα κατάλληλα header στο πακέτο και κατ' επέκταση να οδηγηθεί στον κόμβο που έστειλε την αίτηση. 43

46 3.2. Δομή του Μηχανισμού Αποθήκευσης Γενική περιγραφή Η σχεδίαση της μνήμης cache όπου λειτουργεί μέσα στον δρομολογητή περιλαμβάνει δυο δομές δεδομένων που είναι και τα βασικά αποθηκευτικά στοιχεία του μηχανισμού: μια διπλά συνδεμένη λίστα αποθήκευσης πακέτου (Packet Store) και ένα πίνακα κατακερματισμού (Index Table). Οι πληροφορίες και τα δεδομένα των πακέτων αποθηκεύονται σε διαφορετικούς κόμβους της λίστας Packet Store. Ο Index Table περιλαμβάνει πληροφορίες για να βρίσκει ένα πακέτο στην λίστα Packet Store. Δηλαδή στον πίνακα Index Table αποθηκεύονται οι διευθύνσεις των κόμβων της λίστας. Το μέγεθος της λίστας Packet Store είναι δυναμικό και μπορεί να μεγαλώσει ανάλογα όσο θέλουμε. Μια γενική εικόνα της δομής του μηχανισμού αποθήκευσης παρουσιάζεται στο Σχήμα 20. Packet Store RID [11 RID (n - l). RID (n: TAIL Pocket Content Pocket Content Packet Content H EAD Frequency Frequency Frequency Index Tab e Node address, RID n H(RID n} Node address, RID 1 H( RID 11 Node address, RID n-l H(RID n - lj Σχήμα 20: Δομές δεδομένων που αποτελούν την βασική δομή του μηχανισμού αποθήκευσης. Ένας πίνακας κατακερματισμού (Index Table) και μια διπλά συνδεδεμένη λίστα (Packet Store) Λειτουργίες Οι βασικές λειτουργίες που είναι απαραίτητες σε ένα μηχανισμό αποθήκευσης (cache) είναι απαραίτητα οι πράξεις της εισαγωγής, διαγραφής και της αναζήτησης ενός στοιχείου. Περεταίρω για την υλοποίηση αλγορίθμων απόρριψης στοιχείων γίνεται αναγκαία και η πράξη της ταξινόμησης, ώστε να 44

47 έχουμε ταξινομημένα τα στοιχεία ως προς μια παράμετρο. Έτσι ξέρουμε ποιο να διαγράψουμε ανάλογα με τον αλγόριθμο που τρέχει κάθε φόρα στον μηχανισμό Ι. Εισαγωγή Στο μοντέλο αποθηκεύουμε μόνο πακέτα δεδομένων που εισέρχονται στον δρομολογητή. Για κάθε νέα εισαγωγή πακέτου δεδομένων αποθηκεύονται και στις δυο δομές δεδομένων οι κατάλληλες πληροφορίες. Συγκεκριμένα ο πίνακας κατακερματισμού Index Table αποθηκεύει το RID του πακέτου και μια διεύθυνση κόμβου της λίστας Packet Store. Κάθε κόμβος της λίστας Packet Store αποθηκεύει το RID του πακέτου, τα δεδομένα του, το μέγεθος σε bytes των δεδομένων και την συχνότητα που περνάει το πακέτο δεδομένων από τον δρομολογητή. Στο Σχήμα 20 φαίνεται πως συνδέονται οι δύο βασικές δομές δεδομένων. Εφόσον ο πίνακας Index Table είναι ένας πίνακας κατακερματισμού, ο κατακερματισμός του RID, H (RID ), καθορίζει την θέση εγγραφής στον πίνακα Index Table. Κάθε νεοεισερχόμενο πακέτο αποθηκεύεται στην ουρά της λίστας ανεξαρτήτως αλγόριθμου Ταξινόμηση Στην υλοποίηση λαμβάνουν χώρο τρεις(3) διαφορετικοί αλγόριθμοι ώστε να κάνουν την κατάλληλη ταξινόμηση της λίστας (packet store). Οι αλγόριθμοι είναι οι εξής: FIFO, LRU και LFU. Για κάθε πακέτο που εισέρχεται στον δρομολογητή, γίνεται με βάση αλγορίθμου και η κατάλληλη ταξινόμηση του στην λίστα. Για τον απλό αλγόριθμο FIFO δεν γίνεται ταξινόμηση. Για τον αλγόριθμο LRU γίνεται ταξινόμηση με βάση την τελευταία φορά που χρησιμοποιήθηκε το πακέτο. Έτσι κάθε πακέτο που έρχεται στον δρομολογητή μπαίνει πρώτο, δηλαδή στην κεφαλή της λίστας. Για τον αλγόριθμο LFU γίνεται ταξινόμηση με βάση την συχνότητα του πακέτου. Κάθε φορά που περνάει ένα πακέτο από τον δρομολογητή το οποίο είναι ήδη αποθηκευμένο στον μηχανισμό, τότε αυξάνεται κατά μια ακέραια μονάδα το πεδίο συχνότητας που βρίσκεται στον κόμβο του αντιστοίχου πακέτου. Επομένως ένα πακέτο μπαίνει στην κατάλληλη θέση προτεραιότητας στην λίστα ανάλογα με το πόσες φορές πέρασε από τον δρομολογητή Διαγραφή Κάθε πακέτο που αποθηκεύεται στον δρομολογητή θεωρούμε ότι παραμένει αποθηκευμένο στον μηχανισμό, ανεξαρτήτως του χρόνου παραμονής του. Στην 45

48 περίπτωση που γεμίσει η μνήμη και θέλουμε να κάνουμε νέα αποθήκευση, διαγράφουμε το τελευταίο πακέτο, δηλαδή αυτό που βρίσκεται στην ουρά της λίστας Αναζήτηση Καθώς φθάνει ένα πακέτο αίτησης (request packet) δεδομένων στον δρομολογητή, ο μηχανισμός κάνει κατακερματισμό του Data RID που μεταφέρει η αίτηση, H (R ID ), έτσι ελέγχει αν υπάρχει ίδιο RID στον πίνακα Index Table. Αν βρεθεί ότι το πακέτο είναι αποθηκευμένο στον δρομολογητή, τότε από τον Index Table βρίσκουμε την διεύθυνση του κόμβου όπου είναι αποθηκευμένα τα δεδομένα του πακέτου στην λίστα Packet Store. Αφού βρεθούν τα δεδομένα τότε δημιουργείται ένα νέο πακέτο δεδομένων το οποίο περιέχει τα δεδομένα που αιτήθηκαν και προορίζεται προς τον subscriber. Στην περίπτωση που βρεθεί ότι δεν υπάρχουν τα δεδομένα στον μηχανισμό, τότε δρομολογητής προωθεί την αίτηση στον επόμενο κόμβο Εντοπισμός και προώθηση δεδομένων Όπως είπαμε και πιο πριν, ο subscriber αφού έχει την διαδρομή από αυτόν προς τον publisher, στέλνει αυτός την αίτηση δεδομένων. Μαζί με την αίτηση εκτός από το Data RID των δεδομένων που ψάχνει, υπάρχει και το πεδίο ReverseFID όπου είναι κωδικοποιημένο το ανάποδο μονοπάτι από τον μέχρι στιγμής κόμβο που φθάνει η αίτηση προς τα πίσω στον subscriber. Έτσι σε κάθε κόμβο εκτελείται μια διαδικασία που χτίζεται κάθε φορά το νέο μονοπάτι. Στην περίπτωση που βρεθούν τα δεδομένα σε έναν ενδιάμεσο κόμβο, τότε δημιουργείται ένα νέο πακέτο δεδομένων. Στην θέση του FID τοποθετείται το ReverseFID. Στην θέση του RID τοποθετείται το Data RID που μεταφέρεται μαζί με την αίτηση. Στην θέση των δεδομένων τοποθετούνται τα δεδομένα που ανακτούνται από τον κόμβο της λίστας packet store. Έτσι δημιουργείται ένα έτοιμο πακέτο δεδομένων το ποιο προωθείται προς τον subscriber Υλοποίηση Συγκεκριμένα για την υλοποίηση του μηχανισμού αποθήκευσης, δημιουργήσαμε ένα Click Element και τροποποιήσαμε κάποια αλλά υπάρχοντα Elements. Το Element που δημιουργήσαμε είναι το Element Cache και τροποποιήσαμε τα Elements Forwarder και GlobalConf. Επίσης δημιουργήσαμε και τους κατάλληλους Clients, που συμπεριφέρονται ταυτόχρονα ως Publisher και Subscriber. 46

49 Element Cache To element Cache είναι ο πυρήνας της παρούσας διπλωματικής εργασίας. Για την υλοποίηση του element Cache γράψαμε μια κλάση σε κώδικα C++ στα δύο αρχεία που δημιουργήσαμε, cache.cc και cache.hh. Είναι το στοιχειό που εκτελεί την λειτουργία αποθήκευσης που περιγράψαμε στο προηγούμενο υποκεφάλαιο. Συγκεκριμένα, αποθηκεύει πακέτα δεδομένων και επεξεργάζεται και αιτήσεις που ζητούν δεδομένα. Στην περίπτωση που βρεθούν δεδομένα, τότε ανακτούνται και στέλνονται σε αυτόν που τα αιτήθηκε. Όπως φαίνεται στο Σχήμα 21 το element Cache έχει (2) θύρες εισόδου και (3) θύρες εξόδου. Είναι αμφίπλευρα συνδεδεμένο με το element Forwarder για να στέλνει και να παραλαμβάνει πακέτα από τον κόμβο. Επίσης είναι αμφίπλευρα συνδεδεμένο με το element Communications για να παραλαμβάνει πακέτα που εισέρχονται και εξέρχονται από τον κόμβου. Επιπλέον έχει και μια τρίτη θύρα που επικοινωνεί και πάλι με το element Forwarder, όπου είναι η θύρα η όποια σε περίπτωση που βρεθούν δεδομένα για μια αίτηση στέλνονται μέσω αυτής στον Forwarder. Σχήμα 21: Οι συνδέσεις του Element Cache με τα άλλα Elements. 47

50 Κάθε πακέτο που εισέρχεται στον κόμβο, και πιο συγκεκριμένα έρχεται από τα Communication elements και προωθείται προς τον κόμβο, θα περάσει από το element Cache, συγκεκριμένα θα εισέλθει από την θύρα εισόδου (1 ). Διακρίνονται τρεις (3) διαφορετικές περιπτώσεις πακέτων και κατά συνέπεια τρεις (3) διαφορετικές αντιδράσεις του μηχανισμού: 1. Αν είναι πακέτο δεδομένων αποθηκεύεται το περιεχόμενο του πακέτου μέσα στον μηχανισμό ή αν ήδη υπάρχει το πακέτο δεδομένων αποθηκευμένο, τότε εκτελούνται οι κατάλληλες λειτουργίες των αλγορίθμων ταξινόμησης. Στην συνέχεια προωθείται από την θύρα εξόδου (1) προς το elem ent Forwarder. 2. Αν είναι πακέτο πρωτοκόλλου δεν γίνεται καμία επεξεργασία στον μηχανισμό και προωθείται από την θύρα εξόδου (1) προς το element Forwarder. 3. Αν είναι πακέτο αίτησης δεν γίνεται καμία επεξεργασία στον μηχανισμό και προωθείται από την θύρα εξόδου (1) προς το elem ent Forwarder. Κάθε πακέτο που εξέρχεται από τον κόμβο και πιο συγκεκριμένα έρχεται από το Element Forwarder και προωθείται προς το δίκτυο, θα περάσει από το element Cache, συγκεκριμένα θα εισέλθει από την θύρα εισόδου (0 ). Διακρίνονται και πάλι τρεις (3) διαφορετικές περιπτώσεις πακέτων και κατά συνέπεια τρεις (3) διαφορετικές αντιδράσεις του μηχανισμού: 1. Αν είναι πακέτο δεδομένων αποθηκεύεται το περιεχόμενο του πακέτου μέσα στον μηχανισμό ή αν ειδή υπάρχει το πακέτο δεδομένων αποθηκευμένο, τότε εκτελούνται οι κατάλληλες λειτουργίες των αλγορίθμων ταξινόμησης. Στην συνέχεια προωθείται από την θύρα εξόδου (0) προς τα Communication elem ents. 2. Αν είναι πακέτο πρωτοκόλλου δεν γίνεται καμία επεξεργασία στον μηχανισμό και προωθείται από την θύρα εξόδου (0) προς τα Communication elem ents. 3. Αν είναι πακέτο αίτησης τότε ο μηχανισμός ελέγχει το DATA R ID (RID των δεδομένων) του πακέτου. Αν βρεθούν τα δεδομένα τότε δημιουργείται ένα νέο πακέτο δεδομένων. Στο νέο πακέτο τοποθετούνται τα δεδομένα που ζητά η αίτηση, στην θέση του FID τοποθετείται το ReverseFID που επίσης φέρει το πακέτο αίτησης. Η αίτηση τερματίζεται να προωθείται άλλο στο δίκτυο. Στη συνέχεια στέλνεται από την θύρα εξόδου (2) στην θύρα εισόδου (2) του Element Forwarder2. Στην περίπτωση που δεν εξυπηρετηθεί η αίτηση τότε το πακέτο αίτησης προωθείται από την θύρα εξόδου (0) στο δίκτυο. Πιο κάτω δίνουμε ένα ψευδοκώδικα του Element Cache. Μέσα στον ψευδοκώδικα αναλύουμε την περιγραφή της πιο πάνω λειτουργίας του element Cache. 2 Εκεί βάσει του νέου FID που έχει το πακέτο θα τοποθετηθούν και τα κατάλληλα headers είτε IP είτε ETHERNET. 48

51 struct index table{ char *RID; struct pakcet store address; struct packet store{ char *RID; char *data; int data_len; }; void Cache::push(int port, Packet *p){ if(p is protocol_packet){ } output(port).push(p); else if((port == 1) &&(p is a request packet)){ } output(port).push(p); /* Έλεγχος μόνο κατά την έξοδο του πακέτου από τον κόμβο (port = 0) */ else if((port == 0) &&(p is a request packet)) { if (hash table index.find(p->rid))/* Αν βρεθεί το πακέτο στον πίνακα index table */ { /* Εύρεση του κόμβου που περιέχει τα δεδομένα για το συγκεκριμένο RID στον πίνακα packet store */ node = fnd address packet store(p->rid); node->frequency++; /* Λειτουργία αλγορίθμων */ if(lru){ list move node front(node); } else if(lfu){ list sort node(node); } else( } //FIFO /* Δημιουργία ένος νέου πακέτου στο όποιο τοποθετούνται τα δεδομένα που βρέθηκαν */ node->data len); >RID.length()); WritablePacket *newpacket = Packet::make(FID LEN + RID LEN + memcpy(newpacket, p->reversefid, FID LEN); memcpy(newpacket + FID LEN p->rid.length(), p->rid, p- 49

52 memcpy(newpacket->data() + FID LEN p->rid.length(), node- >data, node->data len); p->kill(); /* Προώθηση του πακέτου δεδομένων που μόλις δημίουργήθηκε προς το ELement Forwarder μέσω της θύρας 2 */ } output(2).push(newpacket); else /* Αν δεν βρει το πακέτο στον index table */ { /* Προώθησης της αίτησης στο επόμενο Element. Ανάλογα με την θύρα που προέρχεται */ } } output(port).push(p); else (p is packet data) { /* Αν υπάρχει το πακέτο στον πίνακα index table */ if (hash table index.find(p->rid)) { /* Εύρεση του κόμβου που περιέχει τα δεδομένα γία το συγκεκριμένο RID στον πίνακα packet store */ node = fnd address packet store(p->rid); node->frequency++; /* Λειτουργία αλγορίθμων */ if(lru){ list move node front(node); } else if(lfu){ list sort node(node); } else( } //FIFO } else /* Αν το πακέτο δεν είναι αποθηκευμένο */ Cache */ ( if(current cache size == cache size)/* Αν είναι γεμάτη η ( /* Ευρεση του κόμβου μέτα την TAIL */ node = store tail->nxt; hash table index.erase(node->rid); node->nxt->prv = store tail; store tail->nxt = node->nxt; free(node); 50

53 current cache size--; } /* Δημιουργία ενός νέου κόμβου struct packet store */ node = new (struct packet store); node->data len = p->data length; node- frequency = 1; memcpy(node->data, p->data(), p->data length); memcpy(node->rid, p->rid, p->rid.length()); /* Αποθήκευση στον index table */ struct index table index node; index_node->rid = node->rid; index_node->address_node = node; hash table index.insert(p->rid, index node); /* Λειτουργία αλγορίθμων */ if(lru) { list add node end(node); } else if(lfu){ list add node begin(node); list sort node(node); } else{ list add node end(node); }/*FIFO*/ current_cache_size++; } output(port).push(p); } To element Cache, έχει την δυνατότητα να πάρει διάφορες παραμέτρους κατά την εκκίνηση του Click, ανάλογα με την συμβολοσειρά διαμόρφωσης (Configuration String) που θα του δοθεί σαν είσοδος κατά την εκκίνηση του λογισμικού Blackadder στον δρομολογητή. Το Element Cache μπορεί να πάρει σαν είσοδο του: Τον αριθμό πακέτων που μπορεί να κάνει αποθήκευση, «MAXSIZE». Υπάρχει προεπιλεγμένη τιμή που είναι ίση με Τον αλγόριθμο που θα τρέχει, «ALGORITHM». Υπάρχουν 3 αλγόριθμοι, FIFO, LRU και LFU. Ο προεπιλεγμένος είναι ο LRU. Μια παράμετρος Boolean που μας λέει αν είναι ενεργοποιημένος ο μηχανισμός ή όχι «ACTIVE». Η προεπιλεγμένη τιμή είναι true, άρα θα είναι 51

54 ενεργοποιημένος. To Global Configuration του κόμβου για την λειτουργία του blackadder «GC», το οποίο είναι αναγκαίο πεδίο και δεν έχει προεπιλεγμένη τιμή. Η μoρφή configuration string είναι η ακόλoυθη: Cache(MAXSIZE maxsize, GC globalconf, ALGORITHM algorithm, ACTIVE bool); Για παράδειγμα, ένα στιγμιότυπο μπορεί να είναι: Cache (MAXSIZE 100, GC globalconf, ALGORITHM LFU, ACTIVE 1); Element Forwarder Το element Forwarder είναι υπεύθυνο για την δρομολόγηση των πακέτων στο δίκτυο. Το τροποποιήσαμε προσθέτοντας κώδικα C++ στο αρχείο forwarder.cc Ο σκοπός που επιλέξαμε το element Forwarder να κάνουμε τις κατάλληλες προσθήκες είναι επειδή μέσα στο element αυτό υπάρχει ο πινάκας προωθήσεως του κόμβου. Έτσι λιγοστέψαμε τον κώδικα από πλευράς υλοποίησης, παρά να δημιουργούσαμε πάλι τον πίνακα προώθησης στο element Cache. Ο πινάκας προωθήσεως στην υλοποίηση μας χρησιμεύει σε δυο διαφορετικές περιπτώσεις. Πρώτο σχετίζεται με την δημιουργία του ανάποδου μονοπατιού και δεύτερο χρησιμοποιείται από τα πακέτα δεδομένων που ανακτώνται από την Cache ώστε με βάση το ReverseFID που διαθέτουν να προωθηθούν πίσω σε αυτόν που έστειλε την αίτηση. Για την δημιουργία του ανάποδου μονοπατιού, αναγκαία προϋπόθεση είναι: 1) Ο πινάκας προωθήσεως (forwarding table) που είναι αποθηκευμένος στην μνήμη του elem ent Forwarder. 2) ^ πακέτο αίτησης. Έτσι κάθε φορά που εισέρχεται ένα πακέτο αίτησης στο Element Forwarder τότε να τρέχει ο αλγόριθμος που υλοποιήσαμε και κωδικοποιεί το ανάποδο μονοπάτι στο πεδίο ReverseFID που μεταφέρει η αίτηση. Προσθέσαμε στο element Forwarder και μια τρίτη θύρα εισόδου, που θα είναι συνδεδεμένη με την τρίτη θύρα εξόδου του element Cache. Από εκεί εισέρχονται τα πακέτα δεδομένων που δημιουργούνται μετά από επιτυχημένη αναζήτηση κάποιου αιτήματος που έφτασε στην Cache. Σε περίπτωση που παραλάβει πακέτο3 από την Cache θα πρέπει να το δρομολογήσει στον κατάλληλο προορισμό. Επομένως με βάση τον πινάκα δρομολόγησης παίρνει την κατάλληλη απόφαση και έτσι τοποθετεί τα κατάλληλα headers IP ή ETHERNET. Υπάρχει η περίπτωση η αίτηση να έρχεται 3 Το πακέτο έρχεται χωρίς κάποια headers (IP ή ETHERNET) αλλά μόνο με το ReverseFID. 52

55 από εφαρμογή που τρέχει στον ίδιο τον κόμβο. Σε αυτήν την περίπτωση ο Forwarder την προωθεί τοπικά στον κόμβο του και όχι στο δίκτυο Element GlobalConf Στο element GlobalConf είναι οι καθολικές ρυθμίσεις για κάθε κόμβο ξεχωριστά. Προσθέσαμε κώδικα C++ στα αρχεία globalconf.cc και globalconf.hh. Προσθέσαμε επίσης ένα προκαθορισμένο scope και το ονομάσαμε requestscope. Κάθε RID αίτησης θα αναρτάται κάτω από αυτό το requestscope. Δηλαδή τα RID των αιτήσεων θα έχουν ως πρόθεμα το requestscope. Το ορίσαμε στο αρχείο globalconf.hh ως: String requestscope; Και στο αρχείο globalconf.cc του δώσαμε την τιμή: requestscope = "AAAAAAAAAAAAAAAA" κατά σύμβαση κάθε RID δεδομένων θα αναρτάται κάτω από το scope με RID="DDDDDDDDDDDDDDDD". Έτσι κάθε πακέτο δεδομένων θα έχει ως πρόθεμα του το «DDDDDDDDDDDDDDDD» Clients (Ταυτόχρονη λειτουργία publish και subscribe) Οι υπάρχοντες Clients του Blackadder κάνουν μέχρι στιγμής μόνο μια από τις δυο βασικές λειτουργιές του μοντέλου publish/subscribe, δηλαδή κάνουν είτε publish είτε subscribe. Εμείς για τις ανάγκες του μοντέλου και την υλοποίηση του μηχανισμού αποθήκευσης, τροποποιήσαμε κατάλληλα τους clients ώστε να είναι και publisher και subscriber ταυτόχρονα. Έτσι δημιουργήσαμε 2 διαφορετικά ειδή εφαρμογών clients: Η μια εφαρμογή client είναι αυτή που περιέχει την πληροφορία και θα είναι publisher στο RID της πληροφορίας και subcriber στο RequestRID το αιτήματα της πληροφορίας. Την εφαρμογή αυτή την υλοποιήσαμε στο 53

56 αρχείο pubd_subr.cpp. Η δεύτερη εφαρμογή client είναι αυτή που ζητά την πληροφορία και θα είναι subscriber στο RID της πληροφορίας και publisher στο RequestRID στο αίτημα της πληροφορίας. Την εφαρμογή αυτή την υλοποιήσαμε στο αρχείο subd_pubr.cpp. Στην περίπτωση της αποστολής της αίτησης δημιουργήσαμε μια νέα συνάρτηση στους clients που είναι παρόμοια με την ήδη υπάρχουσα publish_data(). Η συνάρτηση λέγεται sent_request(). Η συνάρτηση αυτή στέλνει την αίτηση προς το δίκτυο και συγκεκριμένα με δρομολόγιο προς τον Publisher. void sent_request(string &id, char strategy, char * LID, string &data_rid); Στα σχήματα που ακολουθούν, Σχήμα 22 και Σχήμα 23 δείχνουμε τον τρόπο που ανταλλάσσονται οι ενημερώσεις διαμέσω της Rendezvous λειτουργίας, ώστε να επιτευχθεί η παράδοση των δεδομένων. Στο Σχήμα 22 βλέπουμε τα δεδομένα να στέλνονται κανονικά από την εφαρμογή publisher μόλις παραλάβει το αίτημα (request). Ενώ στο Σχήμα 23 βλέπουμε πως τα δεδομένα ανακτούνται από έναν ενδιάμεσο κόμβο που παραλαμβάνει το αίτημα (req uest). Publisher: RID Subscriber: RequestRID Rendezvoous & Topology Manager Subscriber: RID Publisher: RequestRID "publish (RID) subscribe1' (RequestRID) a - - " _ *" *" "subscribe" (RID) "publish" (RequestRID) "start publish" (RID)_ ^start publish" (RequestRID) ignore this 4 ' " " -A,, - ' ' ^ "send request" (RequestRID) "publish data" (RID) 4 - " " ~ Σχήμα 22: Αποστολή και παραλαβή των δεδομένων, μέσω ενημερώσεων. Τα δεδομένα ανακτούνται από την εφαρμογή που τα κάνει "publish". 54

57 Publisher RID Subscriber: RequestRID intermediate node Rendezvoous & Topology Manager Subscriber: RID Publisher RequestRID publish" (RID) subscribe" (RequestRID) ignore this -4 - " ' ' ' ~ ~ ~ 4 ' '. ' ' 4r ' " "start publish" (RID) 1 ~~ 4 ' ' publish data" (RID) "start publish0 (RequestRID) "subscribe" (RID) "publish" (RequestRID) send request" (Request RID) Σχήμα 23: Αποστολή και παραλαβή των δεδομένων, μέσω ενημερώσεων. Τα δεδομένα ανακτούνται από κάποιον ενδιάμεσο κόμβο που τα είχε αποθηκευμένα στον μηχανισμό αποθήκευσης του. 55

58 4. Πειράματα Για να κάνουμε πράξη την παρούσα διπλωματική εργασία, κάναμε διάφορα πειράματα για να δούμε την λειτουργία του μηχανισμού αποθήκευσης. Κάναμε πειράματα για διάφορες τοπολογίες δικτύων στο planetlab και καταγράψαμε διάφορες μετρήσεις για χρόνους. Συγκεκριμένα λάβαμε μετρήσεις για τους τρεις αλγορίθμους ξεχωριστά FIFO, LFU και LRU καθώς και χωρίς την χρήση του μηχανισμού αποθήκευσης. Για όλες τις τοπολογίες δικτύων, υπήρχε μια εφαρμογή publisher και ένας αριθμός από εφαρμογές subscriber. Κατά την εκτέλεση των πειραμάτων αυξομειώναμε τον αριθμό της χωρητικότητα του μηχανισμού αποθήκευσης. Συγκρίναμε τα αποτελέσματα μεταξύ τους και βγάλαμε διάφορα συμπεράσματα μέσω των γραφικών παραστάσεων που προέκυψαν. Για τα πειράματα χρησιμοποιήσαμε σαν κίνηση στο δίκτυο 5 διαφορετικά αντικείμενα τα οποία αποτελούνταν το κάθε ένα από 5 πακέτα. Έτσι συνολικά κάθε εφαρμογή που ζητούσε δεδομένα, ζητούσε συνολικά 25 πακέτα. Οι εφαρμογές που ζητούσαν πακέτα ξεκινούσαν ταυτόχρονα την εκτέλεση τους ώστε να γίνεται μείξη των πακέτων στους δρομολογητές. Πιο κάτω παρουσιάζονται τα αποτελέσματα των πειραμάτων σε γραφικές παραστάσεις και για τις δύο τοπολογίες δικτύων. Να αναφέρουμε ότι για κάθε τοπολογία παρουσιάζονται 4 γραφικές παραστάσεις. Στις οποίες σε κάθε μια, η κάθε εφαρμογή ζητάει σταθερό αριθμό πακέτων ίσο με 25, ενώ το μέγεθος της χωρητικότητας της μνήμης αυξάνεται σε 4 διαφορετικούς αριθμούς, όσες και οι γραφικές παραστάσεις. Συγκεκριμένα ο αριθμός χωρητικότητας πακέτων αυξάνεται ως εξής: 5, 10, 15 και 20 πακέτα. 56

59 4.1 Συνδεσμολογία 6 Κόμβων Σχήμα 24: Τοπολογία με 6 κόμβους, 1 publisher και 5 subscribers, 1 σε κάκε κόμβο (Node). Μέγεθος Cache 5 πακέτα Πακέτα που παραλαμβανει κάθε εφαργμογή 25 NO CACHE FIFO LFU LRU Node2 Node3 Node4 Node5 Node6 Μέσος Χρόνος Μεθόδου Μέγεθος Cache 10 πακέτα Πακέτα ποσ παραλαμβανει κάθε εφαργμογή X Node2 Node3 Node4 Node5 Node6 Μέσος Χρόνος Μεθόδου Ε NO CACHE FIFO LFU LRU 57

60 Μέγεθος Cache 15 πακέτα Πακέτα που παραλαμβανει κάθε εφαργμογή ο I Node2 Node3 Node4 Node5 Node6 Μέσος Χρόνος Μεθόδου NO CACHE FIFO LFU LRU Μέγεθος Cache 20 πακέτα Πακέτα ποσ παραλαμβανει κάθε εφαργμογή 25 μ Node2 Node3 Node4 Node5 Node6 Μέσος Χρόνος Μεθόδου NO CACHE FIFO LFU LRU Αρχικά μπορούμε να πούμε ότι η τοπολογία των 6 κόμβων που φαίνεται στο Σχήμα 24 επαληθεύεται μέσω των χρόνων παραλαβής των πακέτων χωρίς την λειτουργία μηχανισμού αποθήκευσης (NO CACHE), που παρουσιάζεται με μπλε χρώμα στις γραφικές παραστάσεις. Βλέπουμε ότι οι χρόνοι παραλαβής των πακέτων από τις εφαρμογές που τρέχουν στους κόμβους είναι συμβατοί με βάση την τοπολογία. Για παράδειγμα οι εφαρμογές στους κόμβοι 5 και 6 λαμβάνουν σίγουρα σε μεγαλύτερους χρόνους τα πακέτα από τις εφαρμογές που τρέχουν στους κόμβους 2 και 4. Τα αποτελέσματα των πειραμάτων είναι πολύ ενθαρρυντικά. Βλέπουμε ότι με βάση την τοπολογία στην περίπτωση που υπάρχει μηχανισμός αποθήκευσης οι χρόνοι παραλαβής των πακέτων είναι πολύ μικρότεροι σε σχέση με την μη χρησιμοποίηση μηχανισμού αποθήκευσης. Αυτό ισχύει για όλα τα μεγέθη της cache και βελτιώνεται όσο αυξάνεται η χωρητικότητα. 58

61 4.2 Συνδεσμολογία 10 Κόμβων (3)Sub sc riber (5)Subscriber (7)Subscriber (9)Subscriber Σχήμα 25: Τοπολογία με 10 κόμβους, 1 publisher και 9 subscribers, 1 σε κάκε κόμβο (Node). Μέγεθος Cache 5 πακέτα Πακέτα που παραλαμβανει κάθε εφαργμογή W 3 Ο α 2 I L. L i T i n i 1 I I NO CACHE FIFO LFU 1 1 LRU 0 1 Node2 Node3 Node4 Node5 Node6 Node7 Node8 Node9 Node10 Μέσος Χρόνος Μεθόδου Μέγεθος Cache 10 πακέτα Πακέτα π ου παραλαμβανει κάθε εφαργμογή W L f 3 O a 2 1 NO CACHE FIFO LFU LRU 0 Node2 Node3 Node4 Node5 Node6 Node7 Node8 Node9 Node10 Μέσος Χρόνος Μεθόδου 59

62 Μέγεθος Cache 15 πακέτα Πακέτα που παραλαμβανει κάθε εφαργμογή W 3 ο α 2 1 NO CACHE FIFO LFU LRU 0 Node2 Node3 Node4 Node5 Node6 Node7 Node8 Node9 Node10 Μέσος Χρόνος Μεθόδου Μέγεθος Cache 20 πακέτα Πακέτα ποσ παραλαμβανει κάθε εφαργμογή W 3 ο α ι I I. l. i ί. Ι Ι ί ί. L. m ι π ι ι ι ι ι ι ι ι ι 11 Node2 Node3 Node4 Node5 Node6 Node7 Node8 Node9 Node10 Μέσος Χρόνος Μεθόδου Ι, NO CACHE FIFO LFU LRU Τα αποτελέσματα των πειραμάτων για την τοπολογία 10 κόμβων είναι πάρα πολύ ενθαρρυντικά. Αρχικά βλέπουμε ότι και σε αυτήν την περίπτωση πάλι επαληθεύεται η τοπολογία που δημιουργήσαμε. Επίσης βλέπουμε στην περίπτωση που δεν υπάρχει μηχανισμός αποθήκευσης οι χρόνοι παραλαβής των πακέτων είναι πολύ πιο μεγαλύτερη σε σχέση με την χρήση μηχανισμού αποθήκευσης. Η μείωση του χρόνου επιτυγχάνεται σε όλες τις στρατηγικές αντικατάστασης. 60

63 5. Συμπέρασμα Αντικείμενο της παρούσας διπλωματικής εργασίας ήταν η υλοποίηση μηχανισμού αποθήκευσης σε επίπεδο πακέτων για δίκτυα βασισμένα στο περιεχόμενο και πιο συγκεκριμένα η ενσωμάτωση του μηχανισμού στο λογισμικό του Blackadder. Σκοπός της υλοποίησης μηχανισμού αποθήκευσης ήταν η μείωση του χρόνου ανάκτησης δεδομένων που ζητά κάποιος χρήστης, σε σχέση με την ανάκτηση δεδομένων χωρίς χρήση μηχανισμού αποθήκευσης. Το λογισμικό Blackadder λειτούργει μέσα από το εργαλείο Click Modular Router, για τον λόγο αυτό κληθήκαμε να υλοποιήσουμε κάποιο Click element και να τροποποιήσουμε κάποια υπάρχοντα elements. Σκοπός της δημιουργίας και τροποποίησης των elements ήταν η ενσωμάτωση του μηχανισμού μέσα στο λογισμικό Blackadder. Συγκεκριμένα έγινε η κατάλληλη συνδεσμολογία του νέου element Cache με τα ήδη υπάρχοντα. Επιπλέον με κάποιες νέες ιδέες που προτείναμε και κάποιες επεκτάσεις πάνω στο προηγούμενο μοντέλο πετύχαμε την ενσωμάτωση του μηχανισμού και τη ορθή ως προς την σχεδίαση λειτουργία του. Καταλήγοντας είμαστε σε θέση να πούμε ότι επιτελέσαμε τον στόχο της διπλωματικής εργασίας. Ο μηχανισμός αποθήκευσης είναι φτιαγμένος σύμφωνα με τις προδιαγραφές που ορίζονται από τις αρχιτεκτονικές που στηρίζεται ο Blackadder. Επίσης είναι ένα ολοκληρωμένο Click element εύκολο ως προς τη διαχείριση του. Με το τέλος της εργασίας μπορούμε να πούμε ότι πετύχαμε την βέλτιστη συγγραφή κώδικα, τόσο από πλευράς μνήμης όσο και από πλευράς ταχύτητα. Η συνεισφορά που έδωσε αυτός ο μηχανισμός αποθήκευσης στον χώρο της δικτύωσης φάνηκε από τα αποτελέσματα των πειραμάτων. Τα αποτελέσματα των πειραμάτων που πήραμε έδειξαν πολύ ξεκάθαρα την δυνατότητα του μηχανισμού. Βλέποντας ότι και για την πιο μικρή χωρητικότητα στους δρομολογητές πετυχαίνουμε καλυτέρα αποτελέσματα στον χρόνο παράδοσης της πληροφορίας στους χρήστες και ειδικά στον μέσο χρόνο παράδοσης των πακέτων προς όλους τους χρήστες. Από τα περάματα φαίνεται καθαρά ότι η χρήση μηχανισμού αποθήκευσης στο λογισμικό του Blackadder επιφέρει πολύ μεγάλο όφελος στους χρήστες (εφαρμογές) και γενικά στο δίκτυο Μελλοντικές Ιδέες Το πεδίο εφαρμογής της παρούσας διπλωματικής εργασίας, που είναι η αποθήκευση δεδομένων σε ενδιάμεσους κόμβους πάνω σε δίκτυα βασισμένα στο περιεχόμενο, είναι ένα ανοιχτό πεδίο έρευνας και μπορεί να ξεχωρίσει σε διάφορες συνιστώσες. Είτε μπορεί κάποιος να επεκτείνει τον παρόν μηχανισμό αποθήκευσης είτε να αλλάξει κάποιες από τις βασικές σχεδιαστικές που προτείναμε και να πετύχει την δημιουργία παραπλήσιου μηχανισμού με επιπλέον δυνατότητες. 61

64 Μια μελλοντική επέκταση που μπορεί να γίνει στον Blackadder βασιζόμενη στον μηχανισμό που υλοποιήσαμε είναι να βρεθεί κάποιος τρόπος ώστε να ακυρώνονται τα δεδομένα που έχουν παλαιωθεί σε δρομολογητές του δικτύου. Επιπλέον μια δεύτερη βελτίωση του μηχανισμού είναι η αποφυγή του RequestRID. Για παράδειγμα να υπάρχει μια ενημέρωση (notification) που να ενσωματωθεί στον μηχανισμό του Blackadder. Μια ενημέρωση παραπλήσια με την "Start Publish". Έτσι να ξέρει το λογισμικό του Blackader ότι φθάνει ένα πακέτο αιτήματος το οποίο ζητάει δεδομένα για το συγκεκριμένο RID. Με αυτό τον τρόπο υπάρχει περίπτωση να μην χρειάζεται το RequestRID, έτσι αποφεύγεται κάποιο μέρος της πληροφορίας στο πακέτο αίτησης. Επιπλέον μια τρίτη βελτίωση του μηχανισμού είναι η ιδέα κάποιο αίτημα να ζητά πληροφορία για συγκεκριμένο scope παρά για κάθε συγκεκριμένο στοιχειό πληροφορίας. Για παράδειγμα ένας ενδιάμεσος κόμβος να στείλει όλα τα στοιχεία πληροφορίας που έχει αποθηκευμένα κάτω από το συγκεκριμένο scope. Έτσι θα μειώνεται και το συνολικό πλήθος των πακέτων αιτημάτων που θα στέλνονται στο δίκτυο. 62

65 6. Παραπομπές [1] George Parisis and Dirk Trossen. "Towards an implementation of an information-centric network". Euro-NF International Workshop on Traffic and Congestion Control for the Future Internet, Volos, Greece, March 2011 [2] Mikko Sarela, Teemu Rinta-alho, Sasu Tarkoma. "RTFM: Publish/Subscribe Internetworking Architecture", ICT Mobile Summit, 2008 [3] Petri Jokela, Andras Zahemszky, Christian Eseve Rothenberg, Somaya Arianfar, Pekka Nikander. "LIPSIN: Line Speed Publish/Subscribe Iner-Networking", ACM SIGCOM, August [4] Somaya Arianfar, Pekka Nikander, Jorg Ott. "On Content-Centric Router Design and Im plications". In ReArch 2010 [5] Somaya Arianfar, Pekka Nikander. "Packet-level Caching for Information-centric Networking". ICT-SHO K Future Internet, June, 2010 [6] Eddie kohler. "The Click Modular Router". At [7] Stefan Podliping, Laszio Boszormenyi. "A Survey of Web Cache Replacement Strategies". ACM Computing Surveys, Vol.35, No. 4, December 2003, pp [8] "Blackadder" project, at id = 338, 2012 [9] "Click Modular Router", at [10] "PATS Click Modular Router lessons", at

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

Πρωτόκολλα Διαδικτύου Μέρος 2ο. Επικοινωνίες Δεδομένων Μάθημα 3 ο Πρωτόκολλα Διαδικτύου Μέρος 2ο Επικοινωνίες Δεδομένων Μάθημα 3 ο Internet Protocol (IP) Στο επίπεδο δικτύου της τεχνολογίας TCP/IP, συναντάμε το πρωτόκολλο IP. Η λειτουργία του IP βασίζεται αποκλειστικά

Διαβάστε περισσότερα

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1 Επικοινωνία με μηνύματα Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Επικοινωνία με ανταλλαγή μηνυμάτων Η επικοινωνία με μηνύματα είναι ο πιο ευέλικτος τρόπος αλληλεπίδρασης σε κατανεμημένα συστήματα πιο

Διαβάστε περισσότερα

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

Δρομολόγηση (Routing) Δρομολόγηση (Routing) Περίληψη Flooding Η Αρχή του Βέλτιστου και Δυναμικός Προγραμματισμός ijkstra s Algorithm Αλγόριθμοi Δρομολόγησης Link State istance Vector Δρομολόγηση σε Κινητά Δίκτυα Δρομολόγηση

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΤΙΤΛΟΣ : «Υλοποίηση πολιτικών προσωρινής αποθήκευσης σε δίκτυα βασισμένα στο περιεχόμενο» Επίβλεψη

Διαβάστε περισσότερα

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

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ Ημέχρι τώρα περιγραφή των πρωτοκόλλων TCP/IP αποδεικνύει, ότι το πρωτόκολλο IP είναι υπεύθυνο για τη μεταφορά των αυτοδύναμων πακέτων στον προορισμό, που δηλώνεται από τη διεύθυνση προορισμού, αλλά δεν

Διαβάστε περισσότερα

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1 Επικοινωνία με μηνύματα Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Επικοινωνία με ανταλλαγή μηνυμάτων Η επικοινωνία με μηνύματα είναι ο πιο ευέλικτος τρόπος αλληλεπίδρασης σε κατανεμημένα συστήματα πιο

Διαβάστε περισσότερα

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

7.9 ροµολόγηση. Ερωτήσεις 7.9 ροµολόγηση Ερωτήσεις 1. Να δώσετε τον ορισµό της δροµολόγησης; 2. Από τι εξαρτάται η χρονική στιγµή στην οποία λαµβάνονται οι αποφάσεις δροµολόγησης; Να αναφέρετε ποια είναι αυτή στην περίπτωση των

Διαβάστε περισσότερα

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

Δροµολόγηση (Routing) Δροµολόγηση (Routing) Περίληψη Flooding Η Αρχή του Βέλτιστου και Δυναµικός Προγραµµατισµός Dijkstra s Algorithm Αλγόριθµοi Δροµολόγησης Link State Distance Vector Δροµολόγηση σε Κινητά Δίκτυα Δροµολόγηση

Διαβάστε περισσότερα

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

Δίκτυα ΙΙ. Κεφάλαιο 7 Δίκτυα ΙΙ Κεφάλαιο 7 Στο κεφάλαιο αυτό παρουσιάζεται ο τρόπος επικοινωνίας σε ένα δίκτυο υπολογιστών. Το κεφάλαιο εστιάζεται στο Επίπεδο Δικτύου του OSI (το οποίο είδατε στο μάθημα της Β Τάξης). Οι βασικές

Διαβάστε περισσότερα

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

T.E.I. ΗΠΕΙΡΟΥ ΤΜΗΜΑ ΤΗΛΕΠΛΗΡΟΦΟΡΙΚΗΣ & ΔΙΟΙΚΗΣΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ T.E.I. ΗΠΕΙΡΟΥ ΤΜΗΜΑ ΤΗΛΕΠΛΗΡΟΦΟΡΙΚΗΣ & ΔΙΟΙΚΗΣΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ: ΜΕΛΕΤΗ & ΡΥΘΜΙΣΕΙΣ ΠΡΩΤΟΚΟΛΛΟΥ ΔΡΟΜΟΛΟΓΗΣΗΣ RIP ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: ΣΤΕΡΓΙΟΥ ΕΛΕΥΘΕΡΙΟΣ ΣΠΟΥΔΑΣΤΡΙΑ: ΤΣΙΜΠΙΔΑ ΙΩΑΝΝΑ- ΠΑΡΑΣΚΕΥΗ

Διαβάστε περισσότερα

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο 2016-2017 Δέυτερη Προγραμματιστική Εργασία Προθεσμία παράδοσης: 19/6/2017 1. Γενική Περιγραφή Στην δεύτερη προγραμματιστική εργασία καλείστε να υλοποιήσετε

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Δίκτυα Υπολογιστών I Δίκτυα Υπολογιστών I Βασικές Αρχές Δικτύωσης Ευάγγελος Παπαπέτρου Τμ. Μηχ. Η/Υ & Πληροφορικής, Παν. Ιωαννίνων Ε.Παπαπέτρου (Τμ.Μηχ. Η/Υ & Πληροφορικής) MYY703: Δίκτυα Υπολογιστών I 1 / 22 Διάρθρωση 1 Βασικές

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 4. Τεχνική Ανίχνευσης του. Πτυχιακή Εργασία Σελίδα 95

ΚΕΦΑΛΑΙΟ 4. Τεχνική Ανίχνευσης του. Πτυχιακή Εργασία Σελίδα 95 ΚΕΦΑΛΑΙΟ 4 Τεχνική Ανίχνευσης του ICMP Echo Spoofing Πτυχιακή Εργασία Σελίδα 95 Περιεχόμενα ΕΙΣΑΓΩΓΗ 98 ΜΕΡΟΣ Α: Έλεγχος του Icmp Echo Reply Πακέτου 103 A.1. Ανίχνευση του spoofed Icmp Echo Request Πακέτου.

Διαβάστε περισσότερα

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

Διάρθρωση. Δίκτυα Υπολογιστών I Βασικές Αρχές Δικτύωσης. Διάρθρωση. Δίκτυο Υπολογιστών: ένας απλός ορισμός. Ευάγγελος Παπαπέτρου Δίκτυα Υπολογιστών I Βασικές Αρχές Δικτύωσης Ευάγγελος Παπαπέτρου Τμ. Μηχ. Η/Υ & Πληροφορικής, Παν. Ιωαννίνων Ε.Παπαπέτρου (Τμ.Μηχ. Η/Υ & Πληροφορικής) MYY703: Δίκτυα Υπολογιστών I 1 / 22 Ε.Παπαπέτρου

Διαβάστε περισσότερα

7.7 Πρωτόκολλο ARP. 1. Το πρωτόκολλο ARP μετατρέπει τις διευθύνσεις IP στις αντίστοιχες φυσικές. Σ Λ

7.7 Πρωτόκολλο ARP. 1. Το πρωτόκολλο ARP μετατρέπει τις διευθύνσεις IP στις αντίστοιχες φυσικές. Σ Λ 7.7 Πρωτόκολλο ARP & Ερωτήσεις 1. Ποιος ο ρόλος του Πρωτοκόλλου Μετατροπής Διεύθυνσης (ARP); 2. Τι είναι ο πίνακας ARP, τι πληροφορία περιλαμβάνει και με ποιο τρόπο ενημερώνεται και ποιος ο χρόνος ζωής

Διαβάστε περισσότερα

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Λαμπαδαρίδης Αντώνιος el04148@mail.ntua.gr Διπλωματική εργασία στο Εργαστήριο Συστημάτων Βάσεων Γνώσεων και Δεδομένων Επιβλέπων: Καθηγητής Τ. Σελλής Περίληψη

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων Εισαγωγή ΚΕΦΑΛΑΙΟ 1: Τα είδη των Δικτύων 1.1. Εισαγωγή Γενικότερα δεν υπάρχει κάποια ταξινόμηση των πιθανών δικτύων κάτω από την οποία να ταιριάζουν όλα τα δίκτυα. Παρόλα αυτά η ταξινόμηση τους είθισται να γίνεται

Διαβάστε περισσότερα

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

Ερώτηση 1 η μεταγωγής κυκλώματος? : Ποια είναι τα κύρια χαρακτηριστικά της. Ερώτηση 2 η : Ποια είναι τα κύρια χαρακτηριστικά της μεταγωγής μηνύματος? Μετάδοση Δεδομένων Δίκτυα Υπολογιστών 68 Ερώτηση 1 η μεταγωγής κυκλώματος? : Ποια είναι τα κύρια χαρακτηριστικά της Απάντηση : Στα δίκτυα μεταγωγής κυκλώματος (circuit switching networks), η μετάδοση των

Διαβάστε περισσότερα

Πρωτόκολλα Διαδικτύου

Πρωτόκολλα Διαδικτύου Πρωτόκολλα Διαδικτύου Ερωτήσεις Ασκήσεις Επικοινωνίες Δεδομένων Μάθημα 3 ο Ερωτήσεις 1. Τι είναι το intranet και ποια τα πλεονεκτήματα που προσφέρει; 2. Τι δηλώνει ο όρος «TCP/IP»; 3. Να αναφέρετε τα πρωτόκολλα

Διαβάστε περισσότερα

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

ΔΙΚΤΥΑ (18-19) Π. Φουληράς ΔΙΚΤΥΑ (18-19) Π. Φουληράς IP: Διευθύνσεις του Πρωτοκόλλου Διαδικτύου Οι διευθύνσεις IP είναι αφηρημένες (εικονικές κατά κάποιον τρόπο) και οπωσδήποτε διαφορετικές από τις φυσικές Οι χρήστες, εφαρμογές

Διαβάστε περισσότερα

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

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ Ερωτήσεις 7.3 Πρωτόκολλο TCP 1. Τι είναι το τµήµα (segment) στο πρωτόκολλο TCP; Από ποια µέρη αποτελείται; 2. Για ποιο σκοπό χρησιµοποιείται ο Αριθµός ειράς στην επικεφαλίδα ενός segment TCP; 3. την περίπτωση

Διαβάστε περισσότερα

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Δρομολόγηση

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Δρομολόγηση Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Δρομολόγηση Δρ. Απόστολος Γκάμας Διδάσκων 407/80 gkamas@uop.gr Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών Διαφάνεια 1 Δρομολόγηση Εισαγωγή Ιεραρχική δρομολόγηση

Διαβάστε περισσότερα

Συσκευές Τηλεπικοινωνιών και Δικτύωσης. Επικοινωνίες Δεδομένων Μάθημα 9 ο

Συσκευές Τηλεπικοινωνιών και Δικτύωσης. Επικοινωνίες Δεδομένων Μάθημα 9 ο Συσκευές Τηλεπικοινωνιών και Δικτύωσης Επικοινωνίες Δεδομένων Μάθημα 9 ο Εισαγωγή Ένα δίκτυο αποτελείται από ενεργά και παθητικά στοιχεία. Στα παθητικά στοιχεία εντάσσονται τα καλώδια και τα εξαρτήματα

Διαβάστε περισσότερα

4.1.1 Πρωτόκολλο TCP - Δομή πακέτου

4.1.1 Πρωτόκολλο TCP - Δομή πακέτου 4.1.1 Πρωτόκολλο TCP - Δομή πακέτου 1 / 38 Παράδειγμα Έστω ότι θέλουμε να αποστείλουμε ένα μήνυμα μέσω ηλεκτρονικού ταχυδρομείου. Αρχικά η εφαρμογή χρησιμοποιώντας τα πρωτόκολλα του επιπέδου εφαρμογής

Διαβάστε περισσότερα

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ Κεφάλαιο 4 SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ 1 4.1 ΕΙΣΑΓΩΓΗ...3 4.2 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ...3 4.2.1 Η ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...3 4.2.1.1 ΣΤΑΘΜΟΣ ΔΙΑΧΕΙΡΙΣΗΣ ΔΙΚΤΥΟΥ...4 4.2.1.2 ΔΙΑΧΕΙΡΙΖΟΜΕΝΟΙ

Διαβάστε περισσότερα

a. b. c. d ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

a. b. c. d ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7.7 Πρωτόκολλο Μέχρι τώρα έχουμε αναφέρει, ότι, για να μεταδοθούν τα αυτοδύναμα πακέτα στο φυσικό μέσο, πρέπει αυτά να μετατραπούν σε πακέτα φυσικού δικτύου (π.χ. Ethernet). Όμως, δεν έχει ειπωθεί τίποτε

Διαβάστε περισσότερα

7.5 Πρωτόκολλο IP. & Ερωτήσεις

7.5 Πρωτόκολλο IP. & Ερωτήσεις 7.5 Πρωτόκολλο IP & Ερωτήσεις 1. ε ποιο επίπεδο του μοντέλου TCP/IP ανήκει το IP πρωτόκολλο; Εξασφαλίζει αξιόπιστη μετάδοση, και αν όχι ποιο πρωτόκολλο είναι υπεύθυνο για την αξιοπιστία; 2. Τι χρειάζεται

Διαβάστε περισσότερα

Συνοπτική Μεθοδολογία Ασκήσεων Κεφαλαίου 7. Ασκήσεις στο IP Fragmentation

Συνοπτική Μεθοδολογία Ασκήσεων Κεφαλαίου 7. Ασκήσεις στο IP Fragmentation Συνοπτική Μεθοδολογία Ασκήσεων Κεφαλαίου 7 Οι σημειώσεις που ακολουθούν περιγράφουν τις ασκήσεις που θα συναντήσετε στο κεφάλαιο 7. Η πιο συνηθισμένη και βασική άσκηση αναφέρεται στο IP Fragmentation,

Διαβάστε περισσότερα

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

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο Αρχές Δικτύων Επικοινωνιών Επικοινωνίες Δεδομένων Μάθημα 4 ο Τα επικοινωνιακά δίκτυα και οι ανάγκες που εξυπηρετούν Για την επικοινωνία δύο συσκευών απαιτείται να υπάρχει μεταξύ τους σύνδεση από σημείο

Διαβάστε περισσότερα

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

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET Κεφάλαιο 4: Τεχνικές Μετάδοσης ΜΕΤΑΓΩΓΗ Τεχνική µεταγωγής ονομάζεται ο τρόπος µε τον οποίο αποκαθίσταται η επικοινωνία ανάµεσα σε δύο κόµβους με σκοπό την

Διαβάστε περισσότερα

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

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Version 2.00 Επιμέλεια Σημειώσεων: Δημήτρης Κόγιας Πατρικάκης Χαράλαμπος Πίνακας περιεχομένων TELNET... 2 PING...

Διαβάστε περισσότερα

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

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που 7.7 Πρωτόκολλο ARP 1 ύο είδη διευθύνσεων: MAC - IP Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που µπορεί

Διαβάστε περισσότερα

ΔΙΚΤΥΑ Η/Υ ΙΙ. Γέφυρες

ΔΙΚΤΥΑ Η/Υ ΙΙ. Γέφυρες ΔΙΚΤΥΑ Η/Υ ΙΙ Γέφυρες Γενικά Οι γέφυρες (bridges) είναι συσκευές που επιτυγχάνουν τη διασύνδεση ενός απλού τοπικού δικτύου με άλλα παρόμοια τοπικά δίκτυα. Μια γενικότερη συσκευή και για τη διασύνδεση με

Διαβάστε περισσότερα

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

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I. Μάθημα 5: To Μοντέλο Αναφοράς O.S.I. 5.1 Γενικά Τα πρώτα δίκτυα χαρακτηρίζονταν από την «κλειστή» αρχιτεκτονική τους με την έννοια ότι αυτή ήταν γνωστή μόνο στην εταιρία που την είχε σχεδιάσει. Με τον

Διαβάστε περισσότερα

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

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου ΚΕΦΑΛΑΙΟ 1.7 Πρωτόκολλα και Αρχιτεκτονική Δικτύου Επικοινωνία δύο σταθμών Ύπαρξη διαδρομής Αποκατάσταση σύνδεσης Ο σταθμός-πηγή πρέπει να ξέρει πότε ο σταθμός-προορισμός είναι έτοιμος να λάβει δεδομένα.

Διαβάστε περισσότερα

Α2. Να γράψετε τους αριθμούς 1-5 από τη Στήλη Α και δίπλα το γράμμα της Στήλης Β που δίνει τη σωστή αντιστοίχηση.

Α2. Να γράψετε τους αριθμούς 1-5 από τη Στήλη Α και δίπλα το γράμμα της Στήλης Β που δίνει τη σωστή αντιστοίχηση. ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ / Γ- ΕΠΑ.Λ. ΗΜΕΡΟΜΗΝΙΑ: 21-02- 2016 ΕΠΙΜΕΛΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ: Ι. ΜΙΧΑΛΕΑΚΟΣ-Α.ΚΑΤΡΑΚΗ ΘΕΜΑ Α. A1. Να γράψετε το γράμμα καθεμιάς από τις παρακάτω προτάσεις και δίπλα τη

Διαβάστε περισσότερα

Πρωτόκολλα Διαδικτύου

Πρωτόκολλα Διαδικτύου Πρωτόκολλα Διαδικτύου Μέρος 1ο Επικοινωνίες Δεδομένων Μάθημα 3 ο Εισαγωγή στην Τεχνολογία TCP/IP To TCP/IP σημαίνει Transmission Control Protocol / Internet Protocol και θα μπορούσε να θεωρηθεί ότι πρόκειται

Διαβάστε περισσότερα

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

Δίκτυα Υπολογιστών I Δίκτυα Υπολογιστών I Σχεδίαση και Αρχιτεκτονική Δικτύων Ευάγγελος Παπαπέτρου Τμ. Μηχ. Η/Υ & Πληροφορικής, Παν. Ιωαννίνων Ε.Παπαπέτρου (Τμ.Μηχ. Η/Υ & Πληροφορικής) MYY703: Δίκτυα Υπολογιστών I 1 / 19 Διάρθρωση

Διαβάστε περισσότερα

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

Διάρθρωση. Δίκτυα Υπολογιστών I Δίκτυα Μεταγωγής και Διαδίκτυα: Μέρος Β. Διάρθρωση. Αναγκαιότητα της διευθυνσιοδότησης. Ευάγγελος Παπαπέτρου Δίκτυα Υπολογιστών I Δίκτυα Μεταγωγής και Διαδίκτυα: Μέρος Β Ευάγγελος Παπαπέτρου Τμ. Μηχ. Η/Υ & Πληροφορικής, Παν. Ιωαννίνων 2 Ε.Παπαπέτρου (Τμ.Μηχ. Η/Υ & Πληροφορικής) MYY703: Δίκτυα Υπολογιστών I 1

Διαβάστε περισσότερα

ΒΑΣΙΚΕΣ ΥΠΗΡΕΣΙΕΣ Βελώνης Γεώργιος ΤΟΥ ΔΙΑΔΙΚΤΥΟΥ. Μάθημα 2ο. Βελώνης Γεώργιος - 1ο Τ.Ε.Ε. Κατερίνης. Καθηγητής Πληροφορικής ΠΕ20 2-1

ΒΑΣΙΚΕΣ ΥΠΗΡΕΣΙΕΣ Βελώνης Γεώργιος ΤΟΥ ΔΙΑΔΙΚΤΥΟΥ. Μάθημα 2ο. Βελώνης Γεώργιος - 1ο Τ.Ε.Ε. Κατερίνης. Καθηγητής Πληροφορικής ΠΕ20 2-1 ΒΑΣΙΚΕΣ ΥΠΗΡΕΣΙΕΣ Βελών ΤΟΥ ΔΙΑΔΙΚΤΥΟΥ Μάθημα 2ο Βελών - 1ο Τ.Ε.Ε. Κατερίν Καθηγητής Πληροφορικής ΠΕ20 2-1 Τεχνολογίες Μεταγωγής Δεδομένων Δίκτυα Μεταγωγής Βελών Βελών Δίκτυα Μεταγωγής Δίκτυα Μεταγωγής

Διαβάστε περισσότερα

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

Δίκτυα Υπολογιστών I Δίκτυα Υπολογιστών I Δίκτυα Μεταγωγής και Διαδίκτυα: Μέρος Β Ευάγγελος Παπαπέτρου Τμ. Μηχ. Η/Υ & Πληροφορικής, Παν. Ιωαννίνων Ε.Παπαπέτρου (Τμ.Μηχ. Η/Υ & Πληροφορικής) MYY703: Δίκτυα Υπολογιστών I 1 /

Διαβάστε περισσότερα

ίκτυα - Internet Μάθηµα 3ο Ενότητα Β: Το Πρότυπο ΤCP/IP Eισαγωγή - Επικοινωνία µεταξύ δύο Υπολογιστών Παρασκευή 10 NOE 2006 ιευθύνσεις

ίκτυα - Internet Μάθηµα 3ο Ενότητα Β: Το Πρότυπο ΤCP/IP Eισαγωγή - Επικοινωνία µεταξύ δύο Υπολογιστών Παρασκευή 10 NOE 2006 ιευθύνσεις Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας-Βιβλιοθηκονοµίας, Κέρκυρα Παρασκευή 10 NOE 2006 ίκτυα - Internet Μάθηµα 3ο Ενότητα Β: Το Πρότυπο ΤCP/IP Eισαγωγή - Επικοινωνία µεταξύ δύο Υπολογιστών Α Ίδιο τοπικό

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Παναγιώτα Παναγοπούλου Χριστίνα Σπυροπούλου 8η Διάλεξη 8 Δεκεμβρίου 2016 1 Ασύγχρονη κατασκευή BFS δέντρου Στα σύγχρονα συστήματα ο αλγόριθμος της πλημμύρας είναι ένας απλός αλλά

Διαβάστε περισσότερα

Σκοπιµότητα των firewalls

Σκοπιµότητα των firewalls Σκοπιµότητα των firewalls Παρέχουν προστασία των εσωτερικών δικτύων από απειλές όπως: Μη εξουσιοδοτηµένη προσπέλαση των δικτυακών πόρων: όταν επίδοξοι εισβολείς προσπαθούν να εισχωρήσουν στο δίκτυο και

Διαβάστε περισσότερα

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

Δίκτυα Υπολογιστών I Δίκτυα Υπολογιστών I Βασικές Αρχές Δικτύωσης Ευάγγελος Παπαπέτρου Τμ. Μηχ. Η/Υ & Πληροφορικής, Παν. Ιωαννίνων Ε.Παπαπέτρου (Τμ.Μηχ. Η/Υ & Πληροφορικής) MYY703: Δίκτυα Υπολογιστών I 1 / 20 Διάρθρωση 1 Βασικές

Διαβάστε περισσότερα

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

Δίκτυα Υψηλών Ταχυτήτων Ενότητα 9: MPLS Δίκτυα Υψηλών Ταχυτήτων Ενότητα 9: MPLS Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

Διαβάστε περισσότερα

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

ΔΙΑΣΥΝΔΕΣΗ ΔΙΚΤΥΩΝ (INTERNETWORKING) ΔΙΑΣΥΝΔΕΣΗ ΔΙΚΤΥΩΝ (INTERNETWORKING) Α. Α. Οικονομίδης Πανεπιστήμιο Μακεδονίας Διασυνδεδεμένο δίκτυο διασύνδεση δικτύων που το καθένα διατηρεί την ταυτότητά του χρησιμοποιώντας ειδικούς μηχανισμούς διασύνδεσης

Διαβάστε περισσότερα

Μάθημα 4: Πρότυπα, Πρωτόκολλα & Υπηρεσίες

Μάθημα 4: Πρότυπα, Πρωτόκολλα & Υπηρεσίες Μάθημα 4: Πρότυπα, Πρωτόκολλα & Υπηρεσίες 4.1 Γενικά Σκοπός ενός δικτύου υπολογιστών είναι οι χρήστες να έχουν τη δυνατότητα να διαμοιράζονται πληροφορίες και συσκευές του δικτύου. Η σχεδίαση και η ανάπτυξη

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ 1 o ΔΙΑΓΩΝΙΣΜΑ ΘΕΜΑ 1 ο Α) Ποια είναι τα βασικά στοιχεία, τα οποία χαρακτηρίζουν το ISDN; Η ψηφιακή μετάδοση. Όλα τα σήματα μεταδίδονται σε ψηφιακή μορφή απ' άκρη σ' άκρη του δικτύου,

Διαβάστε περισσότερα

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

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ Τεχνολογία ικτύων Επικοινωνιών ΙΙ 7.5 Πρωτόκολλο IP 38. Τι είναι το πρωτόκολλο ιαδικτύου (Internet Protocol, IP); Είναι το βασικό πρωτόκολλο του επιπέδου δικτύου της τεχνολογίας TCP/IP. Βασίζεται στα αυτοδύναµα

Διαβάστε περισσότερα

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

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 1 ο ΚΕΦΑΛΑΙΟ ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 1 ο ΚΕΦΑΛΑΙΟ ΕΡΩΤΗΣΕΙΣ - ΑΣΚΗΣΕΙΣ 1. Έστω ότι θέλετε να συνδέσετε 20 υπολογιστές με συνδέσεις από σημείο σε σημείο (point-to-point), ώστε να είναι δυνατή η επικοινωνία όλων

Διαβάστε περισσότερα

7.9.2 Άμεση δρομολόγηση 1

7.9.2 Άμεση δρομολόγηση 1 7.9.2 Άμεση δρομολόγηση 1 Διαδικασία Άμεση 1. Αρχικά, εξάγονται από την επικεφαλίδα του ΙΡ πακέτου οι διευθύνσεις ΙΡ πηγής και 2. Έπειτα, σε επίπεδο ΙΡ ουσιαστικά δεν πραγματοποιείται καμία ενέργεια! (ίσα

Διαβάστε περισσότερα

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

1.2.1 Το μοντέλο αναφοράς για τη Διασύνδεση Ανοικτών Συστημάτων (OSI) 1 / 19 1.2.1 Το μοντέλο αναφοράς για τη Διασύνδεση Ανοικτών Συστημάτων (OSI) 1 / 19 2 / 19 Το Φυσικό Επίπεδο Το Φυσικό Επίπεδο ή στρώμα (Physical layer) ασχολείται με τη μετάδοση των bit (1 0) που απαρτίζουν

Διαβάστε περισσότερα

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

Διαβάστε περισσότερα

7.1 Επίπεδο δικτύου. Ερωτήσεις. λέξεις κλειδιά:

7.1 Επίπεδο δικτύου. Ερωτήσεις. λέξεις κλειδιά: 7.1 Επίπεδο δικτύου Ερωτήσεις 1. Με ποιες ενέργειες ασχολείται το επίπεδο δικτύου; Ποιες συσκευές συμμετέχουν σε αυτές τις ενέργειες; 2. Ποιο είναι το χαμηλότερο επίπεδο στο μοντέλο OSI που ασχολείται

Διαβάστε περισσότερα

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

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι Ιατρική Πληροφορική Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Σημειώσεις μαθήματος: Χρήσιμοι Σύνδεσμοι http://medisp.bme.teiath.gr/eclass/courses/tio103/ https://eclass.teiath.gr/courses/tio100/

Διαβάστε περισσότερα

Κεφάλαιο 7 Διαδικτύωση-Internet. 7.2 Τεχνολογία TCP/IP

Κεφάλαιο 7 Διαδικτύωση-Internet. 7.2 Τεχνολογία TCP/IP Κεφάλαιο 7 Διαδικτύωση-Internet 7.2 Τεχνολογία TCP/IP Τι δηλώνει ο όρος «TCP/IP»; Ο όρος TCP/IP αναφέρεται σε μια ομάδα ομοειδών πρωτοκόλλων που χρησιμοποιούνται για την επικοινωνία των δικτύων υπολογιστών

Διαβάστε περισσότερα

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

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη 16 Νοεμβρίου 2013 ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο 2013-2014 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη 16 Νοεμβρίου 2013 Λύσεις Πρώτης Προόδου (συνολικά 100 μονάδες) 1. Αντιπαραθέσετε

Διαβάστε περισσότερα

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

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ Τεχνολογία ικτύων Επικοινωνιών ΙΙ 7.1.1. Γενικές Αρχές 1. Τι ονοµάζεται επικοινωνιακό υποδίκτυο και ποιο είναι το έργο του; Το σύνολο όλων των ενδιάµεσων κόµβων που εξασφαλίζουν την επικοινωνία µεταξύ

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών. Δίκτυα υπολογιστών και το Διαδίκτυο Εισαγωγή. Κ. Βασιλάκης

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

Διαβάστε περισσότερα

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

3.6 Δρομολόγηση 1 22 / 3.6 Δρομολόγηση 1 / 22 Το επίπεδο Διαδικτύου (στο μοντέλο TCP/IP), εκτός από τη διευθυνσιοδότηση, είναι επιφορτισμένο και με τη δρομολόγηση των αυτοδύναμων πακέτων (datagrams) ώστε να εξασφαλίσει την επικοινωνία

Διαβάστε περισσότερα

Κεφάλαιο 7.3. Πρωτόκολλο TCP

Κεφάλαιο 7.3. Πρωτόκολλο TCP Κεφάλαιο 7.3 Πρωτόκολλο TCP Πρωτόκολλο TCP Το πρωτόκολλο Ελέγχου Μετάδοσης (Transmission Control Protocol, TCP) είναι το βασικό πρωτόκολο του Επιπέδου Μεταφοράς του μοντέλου TCP/IP. Παρέχει υπηρεσίες προσανατολισμένες

Διαβάστε περισσότερα

Παράλληλη Επεξεργασία Κεφάλαιο 7 ο Αρχιτεκτονική Συστημάτων Κατανεμημένης Μνήμης

Παράλληλη Επεξεργασία Κεφάλαιο 7 ο Αρχιτεκτονική Συστημάτων Κατανεμημένης Μνήμης Παράλληλη Επεξεργασία Κεφάλαιο 7 ο Αρχιτεκτονική Συστημάτων Κατανεμημένης Μνήμης Κωνσταντίνος Μαργαρίτης Καθηγητής Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας kmarg@uom.gr http://eos.uom.gr/~kmarg

Διαβάστε περισσότερα

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

Δίκτυα ΙΙ Τομέας Πληροφορικής, Δίκτυα ΙΙ Τομέας Πληροφορικής, Γ τάξης ΕΠΑ.Λ. Απαντήσεις στις ερωτήσεις του σχ. βιβλίου ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Γ ΤΑΞΗ ΕΠΑ.Λ. Δίκτυα ΙΙ Τομέας Πληροφορικής, Γ τάξης ΕΠΑ.Λ. ΑΠΑΝΤΗΣΕΙΣ 6ου Κεφαλαίου Δίκτυα Η/Υ

Διαβάστε περισσότερα

SGA Διαχείριση Ηλεκτρονικού Πρωτόκολλου

SGA Διαχείριση Ηλεκτρονικού Πρωτόκολλου SGA Διαχείριση Ηλεκτρονικού Πρωτόκολλου Σελίδα 1 από 40 SGA Διαχείριση Ηλεκτρονικού Πρωτόκολλου 1. SGA Διαχείριση Ηλεκτρονικού Πρωτοκόλλου... 4 1.1. Γενικές αρχές του προσφερόμενου συστήματος... 4 1.2.

Διαβάστε περισσότερα

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

Επαναληπτικές Ασκήσεις Μαθήματος Επαναληπτικές Ασκήσεις Μαθήματος Ερώτηση: EAM1. Ποιο από τα παρακάτω χαρακτηριστικά δεν αποτελεί κριτήριο κατηγοριοποίησης δικτύων. Κλίμακα Τεχνολογία μετάδοσης Πλήθος τερματικών εντός του δικτύου Ερώτηση:

Διαβάστε περισσότερα

SGA Διαχείριση Πρωτόκολλου

SGA Διαχείριση Πρωτόκολλου SGA Διαχείριση Πρωτόκολλου SGA Διαχείριση Πρωτόκολλου 1. SGA Διαχείριση Πρωτοκόλλου... 2 1.1. Καινοτομία του προσφερόμενου προϊόντος... 2 1.2. Γενικές αρχές του προσφερόμενου συστήματος... 2 1.3. Ευκολία

Διαβάστε περισσότερα

Κάθε διεύθυνση IP αποτελείται από δυο τμήματα.

Κάθε διεύθυνση IP αποτελείται από δυο τμήματα. 3.1.2 Κλάσεις (τάξεις) δικτύων - διευθύνσεων Κάθε διεύθυνση IP αποτελείται από δυο τμήματα. Το πρώτο τμήμα είναι αναγνωριστικό του δικτύου (Network ID) ή πρόθεμα (prefix) στο οποίο ανήκει ο υπολογιστής

Διαβάστε περισσότερα

2η Σειρά Ασκήσεων ΗΥ-335α Network layer Παράδοση Παρασκευή 27/11/ :55

2η Σειρά Ασκήσεων ΗΥ-335α Network layer Παράδοση Παρασκευή 27/11/ :55 2η Σειρά Ασκήσεων ΗΥ-335α Network layer Παράδοση Παρασκευή 27/11/2015 23:55 Ευριπίδης Τζαμούσης (tzamusis@csd.uoc.gr) Μαρία Πλακιά (plakia@csd.uoc.gr) Ερώτηση 1 (5 μονάδες) Ποια είναι η διαφορά μεταξύ

Διαβάστε περισσότερα

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

Ειδικά Θέματα Δικτύων ΙΙ Ειδικά Θέματα Δικτύων ΙΙ Ενότητα 9: Shortest Path First - SPF Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

Διαβάστε περισσότερα

Ethernet Ethernet ΙΕΕΕ CSMA/CD

Ethernet Ethernet ΙΕΕΕ CSMA/CD Ethernet Τα τοπικά δίκτυα είναι συνήθως τύπου Ethernet ή λέμε ότι ακολουθούν το πρότυπο ΙΕΕΕ 802.3 Ακολουθούν το μηχανισμό CSMA/CD (Πολλαπλή πρόσβαση με Ακρόαση Φέροντος και Ανίχνευση Συγκρούσεων). Πολλαπλή

Διαβάστε περισσότερα

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

Επίπεδο Δικτύου: Διαδικτύωση Επίπεδο Δικτύου: Διαδικτύωση Μάθημα «Δίκτυα Υπολογιστών» Τμήμα Πληροφορικής Οικονομικό Πανεπιστήμιο Αθηνών Εαρινό Εξάμηνο 2013-14 Γεώργιος Ξυλωμένος Γεώργιος Δ. Σταμούλης Βασίλειος Σύρης Εισαγωγή Υπάρχει

Διαβάστε περισσότερα

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

Κεφάλαιο 3.3: Δίκτυα. Επιστήμη ΗΥ Κεφ. 3.3 Καραμαούνας Πολύκαρπος Κεφάλαιο 3.3: Δίκτυα 1 3.3.1 Τι είναι ένα Δίκτυο Υπολογιστών Δίκτυο Υπολογιστών/Επικοινωνιών: ένα σύνολο συνδεδεμένων μεταξύ τους συσκευών με φυσικές συνδέσεις οι οποίες μπορούν να παράγουν, να στέλνουν,

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ανάπτυξη μιας προσαρμοστικής πολιτικής αντικατάστασης αρχείων, με χρήση

Διαβάστε περισσότερα

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

2 η Σειρά Ασκήσεων Data Link Layer HY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο 2017-2018 Διδάσκουσα: Μαρία Παπαδοπούλη Τμήμα Επιστήμης Υπολογιστών, Πανεπιστημίου Κρήτης 2 η Σειρά Ασκήσεων Data Link Layer Άσκηση 1 Αναφέρεται τα 4 επιθυμητά

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών. Δίκτυα υπολογιστών και το Διαδίκτυο Εισαγωγή. Κ. Βασιλάκης

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

Διαβάστε περισσότερα

ΔΙΚΤΥΑ Η/Υ ΙΙ. Διαδικτύωση

ΔΙΚΤΥΑ Η/Υ ΙΙ. Διαδικτύωση ΔΙΚΤΥΑ Η/Υ ΙΙ Διαδικτύωση Γενικά Διαδικτύωση είναι η διασύνδεση υπολογιστικών συστημάτων μέσω τηλεπικοινωνιακών δικτύων με σκοπό το διαμοιρασμό των πόρων και των υπηρεσιών τους. Τοπικά δίκτυα (LANs) Ευρείας

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Ι. Σημειώσεις Θεωρίας

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Ι. Σημειώσεις Θεωρίας Ινστιτούτα Επαγγελματική Κατάρτισης ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Ι Σημειώσεις Θεωρίας Επιμέλεια: Ματθές Δημήτριος Αθήνα 2017 Μάθημα 1: Βασικές Έννοιες στα Δίκτυα Υπολογιστών 1.1 Δίκτυο Υπολογιστών Ένα δίκτυο είναι

Διαβάστε περισσότερα

Δίκτυα Θεωρία

Δίκτυα Θεωρία Δίκτυα Θεωρία 2016-17 Κεφάλαιο 4 1. Γιατί η μεταφορά των δεδομένων δεν καλύπτεται επαρκώς από το Επίπεδο Δικτύου; Επειδή το επίπεδο δικτύου από τη φύση του είναι αναξιόπιστο, τα πακέτα φθάνουν καθυστερημένα,

Διαβάστε περισσότερα

2η Σειρά Ασκήσεων ΗΥ-335α Network layer Παράδοση Παρασκευή 27/11/ :55

2η Σειρά Ασκήσεων ΗΥ-335α Network layer Παράδοση Παρασκευή 27/11/ :55 2η Σειρά Ασκήσεων ΗΥ-335α Network layer Παράδοση Παρασκευή 27/11/2015 23:55 Ευριπίδης Τζαμούσης (tzamusis@csd.uoc.gr) Μαρία Πλακιά (plakia@csd.uoc.gr) Ερώτηση 1 (5 μονάδες) Ποια είναι η διαφορά μεταξύ

Διαβάστε περισσότερα

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

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7ο ΚΕΦΑΛΑΙΟ ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7ο ΚΕΦΑΛΑΙΟ ΕΡΩΤΗΣΕΙΣ - ΑΣΚΗΣΕΙΣ 1. Για να διεκπεραιωθεί η μεταφορά των πακέτων από την πηγή στον προορισμό μεταξύ των κόμβων του επικοινωνιακού υποδικτύου απαιτείται η

Διαβάστε περισσότερα

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

8 η ιάλεξη: σε δίκτυα δεδομένων Εργαστήριο ικτύων Υπολογιστών 8 η ιάλεξη: Βασικές αρχές δρομολόγησης Βασικές αρχές δρομολόγησης σε δίκτυα δεδομένων ρομολόγηση (Routing) Μεταφορά μηνυμάτων μέσω του διαδικτύου από μία πηγή σε ένα προορισμό

Διαβάστε περισσότερα

ΔΙΑΓΩΝΙΣΜΑ ΤΕΛΙΚΗΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΙΣ ΕΝΟΤΗΤΕΣ

ΔΙΑΓΩΝΙΣΜΑ ΤΕΛΙΚΗΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΙΣ ΕΝΟΤΗΤΕΣ ΕΠΑ.Λ. Άμφισσας Σχολικό Έτος : 2011-2012 Τάξη : Γ Τομέας : Πληροφορικής Μάθημα : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ Διδάσκων : Χρήστος Ρέτσας Η-τάξη : tiny.cc/retsas-diktya2 ΔΙΑΓΩΝΙΣΜΑ ΤΕΛΙΚΗΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΙΣ ΕΝΟΤΗΤΕΣ

Διαβάστε περισσότερα

WIRELESS SENSOR NETWORKS (WSN)

WIRELESS SENSOR NETWORKS (WSN) WIRELESS SENSOR NETWORKS (WSN) Δρ. Ιωάννης Παναγόπουλος Εργαστήριο Υπολογιστικών Συστημάτων Καθ. Γεώργιος Παπακωνσταντίνου Αθήνα 2008 ΕΙΣΑΓΩΓΗ ΣΤΑ WSN Σε συγκεκριμένες εφαρμογές, επιθυμείται η μέτρηση

Διαβάστε περισσότερα

Εισαγωγή - ορολογία. Προώθηση (forwarding): Δρομολόγηση (routing):

Εισαγωγή - ορολογία. Προώθηση (forwarding): Δρομολόγηση (routing): Δρομολόγηση Ι Εισαγωγή - ορολογία Προώθηση (forwarding): Οι συσκευές διαδικτύωσης (γέφυρες, δρομολογητές, κ.τ.λ.) προωθούν πακέτα δεδομένων στα κατάλληλα μονοπάτια βάσει των πινάκων δρομολόγησης (routing

Διαβάστε περισσότερα

Κατανόηση των βασικών σημείων των διευθύνσεων TCP/IP και της

Κατανόηση των βασικών σημείων των διευθύνσεων TCP/IP και της Page 1 of 8 Αναγν. άρθρου: 164015 - Τελευταία αναθεώρηση: Τρίτη, 29 Μαΐου 2007 - Αναθεώρηση: 4.2 Κατανόηση των βασικών σημείων των διευθύνσεων TCP/IP και της δημιουργίας υποδικτύων Συμβουλή συστήματος

Διαβάστε περισσότερα

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη Εσωτερική Μνήμη Κρυφή Μνήμη (Cache) μεγαλύτερη χωρητικότητα Καταχωρητές (Registers) Κεντρική Μονάδα (CPU) μεγαλύτερη ταχύτητα Πολλές σημαντικές εφαρμογές διαχειρίζονται

Διαβάστε περισσότερα

Κεφάλαιο 3 Πολυπλεξία

Κεφάλαιο 3 Πολυπλεξία Κεφάλαιο 3 Πολυπλεξία Μάθημα 3.1: Μάθημα 3.2: Μάθημα 3.3: Πολυπλεξία επιμερισμού συχνότητας χρόνου Συγκριτική αξιολόγηση τεχνικών πολυπλεξίας Στατιστική πολυπλεξία Μετάδοση Δεδομένων Δίκτυα Υπολογιστών

Διαβάστε περισσότερα

ΜΗΧΑΝΙΣΜΟΙ ΠΟΙΟΤΗΤΑΣ ΥΠΗΡΕΣΙΑΣ ΣΕ ΔΙΚΤΥΑ

ΜΗΧΑΝΙΣΜΟΙ ΠΟΙΟΤΗΤΑΣ ΥΠΗΡΕΣΙΑΣ ΣΕ ΔΙΚΤΥΑ ΜΗΧΑΝΙΣΜΟΙ ΠΟΙΟΤΗΤΑΣ ΥΠΗΡΕΣΙΑΣ ΣΕ ΔΙΚΤΥΑ Ενότητα # 3: Integrated Services (IntServ) II Καθηγητής Χρήστος Ι. Μπούρας Τμήμα Μηχανικών Η/Υ & Πληροφορικής, Πανεπιστήμιο Πατρών email: bouras@cti.gr, site: http://ru6.cti.gr/ru6/bouras

Διαβάστε περισσότερα

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή 1 Πίνακας Περιεχομένων 1. Εισαγωγή... 4 1.1 Περιβάλλον Moodle...4 1.2 Χρήση ονόματος χρήστη και κωδικού...4 1.3 Δημιουργία νέου μαθήματος...4 1.3.1

Διαβάστε περισσότερα

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

ΔΙΚΤΥΑ (13) Π. Φουληράς ΔΙΚΤΥΑ (13) Π. Φουληράς Τεχνολογίες WAN και Δρομολόγηση LAN Επεκτείνεται μόνον σε ένα κτίριο ή ομάδα κτιρίων WAN (Wide Area Network) Επεκτείνονται σε μεγάλες περιοχές MAN Ενδιάμεσο ως προς το μέγεθος της

Διαβάστε περισσότερα

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15. Δίκτυα υπολογιστών. (και το Διαδίκτυο) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Δίκτυα υπολογιστών (και το Διαδίκτυο) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι ένα δίκτυο υπολογιστών;

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Εκλογή αρχηγού και κατασκευή BFS δένδρου σε σύγχρονο γενικό δίκτυο Παναγιώτα Παναγοπούλου Περίληψη Εκλογή αρχηγού σε γενικά δίκτυα Ορισμός του προβλήματος Ο αλγόριθμος FloodMax

Διαβάστε περισσότερα

Εγγυημένη ποιότητα υπηρεσίας

Εγγυημένη ποιότητα υπηρεσίας Εγγυημένη ποιότητα υπηρεσίας Απαιτήσεις ποιότητας υπηρεσίας Μηχανισμοί κατηγοριοποίησης Χρονοπρογραμματισμός Μηχανισμοί αστυνόμευσης Ενοποιημένες υπηρεσίες Διαφοροποιημένες υπηρεσίες Τεχνολογία Πολυμέσων

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών. Δίκτυα υπολογιστών και το Διαδίκτυο Ο πυρήνας του δικτύου. Κ. Βασιλάκης

Δίκτυα Υπολογιστών. Δίκτυα υπολογιστών και το Διαδίκτυο Ο πυρήνας του δικτύου. Κ. Βασιλάκης Δίκτυα Υπολογιστών Δίκτυα υπολογιστών και το Διαδίκτυο Ο πυρήνας του δικτύου Κ. Βασιλάκης Περιεχόμενα ενότητες που εξετάζονται Τι είναι το διαδίκτυο Στοιχεία που το συνθέτουν Τρόποι παροχής υπηρεσιών Τι

Διαβάστε περισσότερα