1. Παραγγελία μηνυμάτων και παράδοση:
* Αξιόπιστη παράδοση: Το DCMP πρέπει να εγγυάται ότι τα μηνύματα παραδίδονται σε όλους τους συμμετέχοντες κόμβους, ακόμη και ενόψει των αποτυχιών του κόμβου ή των διαμερισμάτων δικτύου. Αυτό συνήθως περιλαμβάνει μηχανισμούς όπως αναγνωρίσεις, αναμετάδοσες και ενδεχομένως μια μορφή εμμονής μηνυμάτων.
* Συνολική παραγγελία: Για πολλές εφαρμογές, η συνολική παραγγελία μηνυμάτων σε όλους τους κόμβους είναι ζωτικής σημασίας. Αυτό σημαίνει ότι όλοι οι κόμβοι συμφωνούν για την ίδια ακολουθία μηνυμάτων, ανεξάρτητα από τη σειρά με την οποία ελήφθησαν. Αυτή είναι συχνά η πιο δύσκολη πτυχή της εφαρμογής DCMP.
* Διατήρηση αιτιότητας: Το πρωτόκολλο πρέπει να διατηρήσει την αιτιώδη σειρά μηνυμάτων. Εάν το μήνυμα Α προκαλεί το μήνυμα Β (π.χ., Acriggers b), τότε το Β πρέπει να παραδοθεί μετά από Α σε όλους τους κόμβους.
* ανοχή σφάλματος: Το πρωτόκολλο πρέπει να συνεχίσει να λειτουργεί σωστά, ακόμη και αν ορισμένοι κόμβοι αποτύχουν ή εγκαταλείψουν το δίκτυο. Αυτό μπορεί να περιλαμβάνει μηχανισμούς για την ανίχνευση και χειρισμού αποτυχιών κόμβου και ενδεχομένως εκλογή νέων ηγετών ή συντονιστών.
2. Συναίνεση και συμφωνία:
* Συμφωνία: Όλοι οι ειλικρινείς κόμβοι πρέπει τελικά να συμφωνήσουν για το ίδιο σύνολο παραδοθέντων μηνυμάτων. Αυτός είναι ο θεμελιώδης στόχος ενός πρωτοκόλλου συναίνεσης.
* συνέπεια: Η συμφωνηθείσα ακολουθία μηνυμάτων πρέπει να είναι σύμφωνη με την αιτιώδη σειρά και τις συνολικές απαιτήσεις παραγγελίας.
* Τερματισμός: Η διαδικασία συναίνεσης πρέπει τελικά να τερματιστεί, ακόμη και αν ορισμένοι κόμβοι είναι ελαττωματικοί.
3. Διαχείριση μελών:
* Ανακάλυψη κόμβου: Το πρωτόκολλο χρειάζεται έναν μηχανισμό για τους κόμβους για να ανακαλύψουν και να συνδεθούν με άλλους κόμβους στο δίκτυο. Αυτό θα μπορούσε να περιλαμβάνει τεχνικές όπως κουτσομπολιό ή κατανεμημένους πίνακες κατακερματισμού (DHTS).
* Δυναμική συμμετοχή: Το πρωτόκολλο θα πρέπει να χειρίζεται δυναμικά την προσθήκη και την απομάκρυνση των κόμβων, χωρίς να διαταράξει τη διαδικασία συναίνεσης. Αυτό μπορεί να περιλαμβάνει μηχανισμούς για την ανίχνευση του κόμβου ενώνει και τα φύλλα και την ενημέρωση της τοπολογίας του δικτύου ανάλογα.
4. Ασφάλεια:
* έλεγχος ταυτότητας: Το πρωτόκολλο θα πρέπει να επαληθεύει την αυθεντικότητα των μηνυμάτων για να αποτρέψει την μη εξουσιοδοτημένη έγχυση ή τροποποίηση μηνυμάτων. Οι ψηφιακές υπογραφές ή άλλες κρυπτογραφικές τεχνικές χρησιμοποιούνται συνήθως.
* Ακεραιότητα: Το πρωτόκολλο πρέπει να διασφαλίζει την ακεραιότητα των μηνυμάτων, εμποδίζοντας τους να τροποποιηθούν κατά τη διάρκεια της μετάδοσης. Μπορούν να χρησιμοποιηθούν οι checksums ή οι κωδικοί ελέγχου ταυτότητας μηνυμάτων (MACs).
* Εμπιστευτικότητα (προαιρετική): Ανάλογα με την εφαρμογή, το πρωτόκολλο ενδέχεται να χρειαστεί να παρέχει εμπιστευτικότητα για την προστασία του περιεχομένου των μηνυμάτων από μη εξουσιοδοτημένη πρόσβαση. Η κρυπτογράφηση μπορεί να χρησιμοποιηθεί για να επιτευχθεί αυτό.
5. Αποδοτικότητα:
* Χαμηλή λανθάνουσα κατάσταση: Το πρωτόκολλο πρέπει να παρέχει μηνύματα με χαμηλή λανθάνουσα κατάσταση για να ελαχιστοποιήσει τις καθυστερήσεις στην εφαρμογή.
* Χαμηλή κατανάλωση εύρους ζώνης: Το πρωτόκολλο θα πρέπει να ελαχιστοποιεί την ποσότητα του εύρους ζώνης δικτύου που καταναλώνεται.
* Επιμελητικότητα: Το πρωτόκολλο θα πρέπει να είναι σε θέση να κλιμακωθεί σε μεγάλο αριθμό κόμβων χωρίς σημαντική υποβάθμιση της απόδοσης.
Αυτές είναι οι βασικές λειτουργικές απαιτήσεις. Οι συγκεκριμένες λεπτομέρειες εφαρμογής θα εξαρτηθούν από τον επιλεγμένο αλγόριθμο συναίνεσης (π.χ. Paxos, Raft, PBFT) και άλλες επιλογές σχεδιασμού. Η επιλογή του αλγορίθμου θα επηρεάσει σε μεγάλο βαθμό τις συμβιβασμούς μεταξύ των διαφόρων απαιτήσεων, ιδιαίτερα της επεκτασιμότητας και της ανοχής σφάλματος. Για παράδειγμα, το PBFT είναι εξαιρετικά ανθεκτικό σε σφάλματα, αλλά δεν κλιμακώνεται καλά, ενώ το Raft και το Paxos προσφέρουν καλύτερη επεκτασιμότητα, αλλά με ελαφρώς λιγότερη ανοχή σφάλματος σε ορισμένα σενάρια.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα