Δίκτυα Ομότιμων Κόμβων (P2P Networks)

Τα δίκτυα ομότιμων κόμβων δεν διαφέρουν τοπολογικά από τα δίκτυα που χρησιμοποιούνται ευρέως στην καθημερινότητα, όπως τα τοπικά δίκτυα ή το δίκτυο του Παγκόσμιου Ιστού. Διαφέρουν, όμως, ριζικά, ως προς τις σχέσεις και την ιεραρχία των κόμβων που αποτελούν αυτό το δίκτυο. Οι κόμβοι (peers) ενός τέτοιου δικτύου βρίσκονται συνήθως στο ίδιο επίπεδο ιεραρχίας, όσον αφορά στις αρμοδιότητες τους και είναι αυτόνομοι. Αυτό σημαίνει, ότι η λειτουργία ενός κόμβου δεν επηρεάζεται από την κατάσταση στην οποία βρίσκεται ένας άλλος κόμβος, όπως αντίθετα συμβαίνει στα δίκτυα της μορφής πελάτη-εξυπηρετητή. Αυτό το χαρακτηριστικό είναι που τα κάνει σήμερα τα δημοφιλέστερα δίκτυα παροχής υπηρεσιών διαμοιρασμού δεδομένων (π.χ. αρχείων κειμένου, τραγουδιών, ταινιών, εκτελέσιμων προγραμμάτων). Γνωστά συστήματα2.1, όπως το Napster, το Gnutella, το FreeNet, το KaZaA, το Morpheus και πιο πρόσφατα τα δίκτυα Bit Torrent προσφέρουν τέτοιες υπηρεσίες διαμοιρασμού δεδομένων κάνοντας αυτό το μοντέλο δικτύου δημοφιλές. Παρ' όλα αυτά, τέτοια δίκτυα δεν προορίζονται μονάχα για υπηρεσίες διαμοιρασμού δεδομένων, αλλά και για άλλες κατανεμημένες εφαρμογές, όπως υπολογισμοί σε Πλέγμα (Grid Computation) (π.χ. οι εφαρμογές SETIHome και DataSynapse), τα συνεργαζόμενα δίκτυα (collaboration networks), (π.χ. Groove) ακόμη και για νέους τρόπους σχεδιασμού της υποδομής του διαδικτύου ώστε να υποστηρίζει εξελιγμένα πρότυπα επικοινωνίας [35].

Αν θέλαμε να αποδώσουμε έναν ορισμό στην έννοια των δικτύων ομότιμων κόμβων, σίγουρα θα καταφεύγαμε στον χονδρικό, αλλά περιεκτικό και διορατικό, ορισμό του Clay Shirkey (The Accelerator Group) [2]:

Οι ομότιμοι κόμβοι είναι μία κλάση εφαρμογών που εκμεταλλεύονται στο έπακρο την αποθήκευση πόρων, τους κύκλους, το περιεχόμενο και την ανθρώπινη παρουσία στις ακμές του Παγκόσμιου Ιστού. Επειδή η πρόσβαση σε αυτούς τους κατανεμημένους πόρους σημαίνει την λειτουργία σε ένα περιβάλλον ασταθούς συνδεσιμότητας και αβέβαιων διευθύνσεων IP (Internet Protocol), οι ομότιμοι κόμβοι πρέπει να λειτουργούν έξω από τα πλαίσια ενός Συστήματος Πεδίου Ονομάτων (Domain Name System, DNS) και να έχουν σημαντικό ή ολοκληρωτικό βαθμό αυτονομίας, όμοια αυτής των κεντρικών εξυπηρετητών.

Σύμφωνα με αυτόν τον ορισμό, θα λέγαμε ότι οι ομότιμοι κόμβοι αποτελούν ένα επίπεδο εφαρμογών που λειτουργούν πάνω στο επίπεδο του Διαδικτύου, ή αλλιώς, ένα δίκτυο επικάλυψης (overlay network) κόμβων. Ένα δίκτυο επικάλυψης είναι ένα εικονικό δίκτυο από κόμβους και λογικές συνδέσεις, το οποίο είναι κτισμένο στην κορυφή ενός υπάρχοντος δικτύου με στόχο την υλοποίηση μίας δικτυακής υπηρεσίας η οποία δεν είναι διαθέσιμη στο υπάρχον δίκτυο. Επιπρόσθετα, τέτοιοι κόμβοι θα πρέπει να ικανοποιούν τις παρακάτω αρχές [16]:

  1. Η αρχή του διαμοιρασμού πόρων: όλα τα συστήματα ομότιμων κόμβων περικλείουν μία άποψη διαμοιρασμού πόρων, όπου αυτοί μπορεί να είναι φυσικοί πόροι, όπως αποθηκευτικός χώρος σε κάποιον σκληρό δίσκο, καθώς επίσης και λογικοί πόροι, όπως παροχή υπηρεσιών ή διάφορες άλλες μορφές γνώσης και πληροφορίας. Με αυτή την έννοια του διαμοιρασμού πόρων γίνεται εύκολα κατανοητό ότι η χρήση της τεχνολογίας πελάτη-εξυπηρετητή είναι απαγορευτική για αυτόν τον σκοπό. Αυτό υπήρξε το ερέθισμα προς την επινόηση και κατασκευή των συστημάτων και δικτύων ομότιμων κόμβων όπως το Napster.
  2. Η αρχή της αποκέντρωσης: αυτή η αρχή είναι μία άμεση συνέπεια του διαμοιρασμού πόρων. Μέρη του συστήματος ή ακόμα και ολόκληρο το σύστημα δεν λειτουργούν κεντρικά. Η αποκέντρωση είναι ενδιαφέρουσα και ζωτικής σημασίας για την αποφυγή μονόπλευρων αποτυχιών ή άλλων ανασχετικών παραγόντων της απόδοσης του συστήματος. Απλούστερα, η αποκέντρωση έχει ως στόχο την κατανομή ίσων αρμοδιοτήτων και πόρων σε πολλούς κόμβους, οι οποίοι αποτελούν το σύστημα. Με αυτόν τον τρόπο ενισχύεται η απόδοση του συστήματος και η αδιάκοπη λειτουργία του. Ζωντανά παραδείγματα τέτοιων αποκεντρωμένων συστημάτων είναι το Gnutella και το FreeNet.
  3. Η αρχή της αυτο-οργάνωσης: όταν ένα σύστημα ομότιμων κόμβων γίνεται ολοκληρωτικά αποκεντρωμένο παύει να υπάρχει κάποιος κόμβος που να μπορεί να οργανώνει και να ρυθμίζει τις δραστηριότητές του ή μία βάση δεδομένων κεντρικά, χρησιμοποιώντας καθολικές πληροφορίες του συστήματος. Ως εκ τούτου οι κόμβοι πρέπει να αυτο-οργανώνονται βασιζόμενοι σε οποιαδήποτε πληροφορία είναι διαθέσιμη τοπικά και να αλληλεπιδρούν με τοπικά γειτονικούς κόμβους (γείτονες, neighbours). Έτσι, η καθολική συμπεριφορά του συστήματος αναδύεται από τη συνισταμένη των επιμέρους τοπικών συμπεριφορών των κόμβων.



Subsections

Charalampos Nikolaou 2008-04-02