Αντιστοίχηση Κλειδιών σε Κόμβους

Σε κάθε κόμβο του δικτύου Pastry ανατίθεται ένα αναγνωριστικό κόμβου (nodeId) μήκους $ 128$ bit. Το αναγνωριστικό κόμβου ή απλά αναγνωριστικό χρησιμεύει στο να υποδεικνύει την θέση ενός κόμβου σε ένα κυκλικό χώρο που ορίζουν όλα τα δυνατά αναγνωριστικά και κυμαίνεται από 0 έως $ 2^{128} - 1$ . Το αναγνωριστικό ανατίθεται τυχαία όταν κάποιος κόμβος συμμετέχει στο σύστημα. Τα αναγνωριστικά παράγονται κατά τέτοιο τρόπο έτσι ώστε το σύνολο των αναγνωριστικών που απαρτίζουν το δίκτυο να είναι κατανεμημένο ομοιόμορφα στον χώρο των αναγνωριστικών. Για παράδειγμα, τα αναγνωριστικά μπορούν να παραχθούν από τον υπολογισμό του κρυπτογραφικού κατακερματισμού του δημόσιου κλειδιού του κόμβου ή της διεύθυνσης IP του. Το αποτέλεσμα αυτής της τυχαίας ανάθεσης αναγνωριστικών είναι ότι με μεγάλη πιθανότητα οι κόμβοι με γειτονικά αναγνωριστικά δεν είναι γειτονικοί όσον αφορά στην γεωγραφική τους θέση, ιδιοκτησία, δικαιοδοσία κ.λπ.

Υποθέτοντας ότι ένα δίκτυο αποτελείται από $ N$ κόμβους, το Pastry μπορεί να δρομολογήσει ένα δεδομένο κλειδί στον αριθμητικά κοντινότερο κόμβο σε λιγότερα από $ \lceil log_{2^b}N \rceil$ βήματα (το $ b$ είναι μία παράμετρος με τυπική τιμή $ 4$ ). Παρά τις ταυτόχρονες αποτυχίες κόμβων, η παράδοση ενός μηνύματος είναι εγγυημένη εκτός και αν $ \lfloor \vert L \vert / 2 \rfloor$ κόμβοι με γειτονικά αναγνωριστικά αποτύχουν ταυτόχρονα (το $ L$ είναι μία παράμετρος με τυπική τιμή $ 16$ ή $ 32$ ). Για μία οπτικοποιημένη άποψη αυτού του σχεδιασμού μπορείτε να ανατρέξετε στο Σχήμα 2.4, του δακτυλίου του Chord με το οποίο δεν διαφέρει σε τίποτα.



Charalampos Nikolaou 2008-04-02