Κινητά και Διάχυτα Συστήματα. Ενότητα # 7: Κατανεμημένος καταμερισμός αρχείων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής



Σχετικά έγγραφα
Κινητά και Διάχυτα Συστήματα. Ενότητα # 6: Εφαρμογές DHT Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 17: Πρωτόκολλα μετάδοσης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κινητά και Διάχυτα Συστήματα. Ενότητα # 8: Εκλογή αρχηγού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένα Συστήματα. Ενότητα # 11: Μηνυματοστρεφές ενδιάμεσο λογισμικό Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένα Συστήματα. Ενότητα # 2: Εκλογή αρχηγού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 16: Πολυεκπομπή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένα Συστήματα με Java. Ενότητα # 4: Αμοιβαίος αποκλεισμός Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 2: Εφαρμογές πολυμέσων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 3: Συστήματα πολυμέσων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 19: Τηλεδιάσκεψη Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 20: Υπηρεσίες καλύτερης προσπάθειας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένα Συστήματα με Java. Ενότητα # 14: Κατανεμημένα συστήματα αποθήκευσης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 7: Θεωρία πληροφορίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 12: Κωδικοποίηση βίντεο: H.26x Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένα Συστήματα με Java. Ενότητα # 18: Υπηρεσίες Ιστού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κινητά και Διάχυτα Συστήματα. Ενότητα # 10: Κατανομή φόρτου Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 15: Συγχρονισμός πολυμέσων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 21: Εγγυημένη ποιότητα υπηρεσίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κινητά και Διάχυτα Συστήματα. Ενότητα # 5: Κατανεμημένοι πίνακες κατακερματισμού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 6: Κατανομή φόρτου Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 5: Ανοχή βλαβών Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Συνεχής ροή πολυµέσων

Δομές Δεδομένων. Ενότητα 11: Τεχνικές Κατακερματισμού. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.

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

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

Τεχνολογία Πολυμέσων. Ενότητα # 8: Αρχές κωδικοποίησης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

Τεχνολογία Πολυμέσων. Ενότητα # 11: Κωδικοποίηση εικόνων: JPEG Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

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

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

Κινητά και Διάχυτα Συστήματα. Ενότητα # 4: Απομακρυσμένα αντικείμενα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

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

Τεχνολογία Πολυμέσων. Ενότητα # 18: Ροή πολυμέσων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Μοντελοποίηση Λογικών Κυκλωμάτων

Τεχνολογία Πολυμέσων. Ενότητα # 14: Κωδικοποίηση βίντεο: Η.264 Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

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

ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

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

Εισαγωγή στην Πληροφορική

Τεχνολογία Πολυμέσων. Ενότητα # 9: Κωδικοποίηση εντροπίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Τεχνολογία Πολυμέσων. Ενότητα # 22: Δίκτυα ATM Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

6.1 Επεκτείνοντας το δίκτυο 6.2 Επιλεγόμενες τηλεφωνικές γραμμές modems Πλεονεκτήματα Μειονεκτήματα Βασική χρήση

Εξοικείωση με τις εντολές ipconfig και ping

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

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

Δομημένος Προγραμματισμός

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 3: Καθολικά κατηγορήματα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems

Εισαγωγή στις Τηλεπικοινωνίες

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

Αποµακρυσµένη κλήση διαδικασιών

Εισαγωγή στις Τηλεπικοινωνίες / Εργαστήριο

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η

7.1.1 Επίπεδο δικτύου Γενικές Αρχές

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

Ειδικά Θέματα Δικτύων ΙΙ. Ενότητα 8: Δρομολόγηση κατάστασης ζεύξης (Μέρος 2) Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Τεχνολογία Πολυμέσων. Ενότητα # 4: Ήχος Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

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

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

Δίκτυα Υπολογιστών Ενότητα 10: Ethernet και ARP

Μετακινούμενος Κώδικας (Mobile Code) Κατανεμημένα Συστήματα 1

ΟΔΗΓΙΕΣ ΧΡΗΣΤΗ ΓΙΑ ΤΟ ΠΡΟΓΡΑΜΜΑ ΗΛΕΚΤΡΟΝΙΚΗΣ ΤΑΞΗΣ

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

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

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

ΕΠΑΝΑΛΗΠΤΙΚΟ ΤΕΣΤ ΣΤΙΣ ΕΝΟΤΗΤΕΣ

Συστήματα Αναμονής. Ενότητα 1: Εισαγωγή. Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Ειδικά Θέματα Δικτύων ΙΙ. Ενότητα 7: Δρομολόγηση κατάστασης ζεύξης (Μέρος 1) Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Τεχνολογία Πολυμέσων. Ενότητα # 10: Κωδικοποίηση ήχου Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Στατιστική Επιχειρήσεων ΙΙ

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο Κατανεµηµένα συστήµατα αρχείων. Μέρη κατανεµηµένου συστήµατος αρχείων

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

Εγχειρίδιο Φοιτητή. Course Management Platform. Εισαγωγή. for Universities Ομάδα Ασύγχρονης Τηλεκπαίδευσης Παν. Μακεδονίας Σεπτέμβριος 2004

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

Στατιστική Επιχειρήσεων Ι

Τεχνολογίες & Εφαρμογές Πληροφορικής Ενότητα 10: Ασφάλεια στο Διαδίκτυο

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

Κατανεμημένα Συστήματα με Java. Ενότητα # 16: Κατανεμημένα συστήματα αντικειμένων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Κατανεμημένα Συστήματα. Ενότητα # 4: Μηχανισμοί Επικοινωνίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένα Συστήματα με Java. Ενότητα # 2: Διάταξη συμβάντων, καθολικές καταστάσεις Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

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

Κατακερματισμός (Hashing)

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems Εισαγωγή

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

Σύστημα peer-to-peer για αποτελεσματική μεταφορά αρχείων

Ειδικά Θέματα Προγραμματισμού

ΠΕΡΙΓΡΑΦΙΚΗ και ΕΠΑΓΩΓΙΚΗ ΣΤΑΤΙΣΤΙΚΗ

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

ιαδίκτυα & Ενδοδίκτυα Η/Υ

Σχεδίαση Δικτύων Υπολογιστών

Transcript:

Κινητά και Διάχυτα Συστήματα Ενότητα # 7: Κατανεμημένος καταμερισμός αρχείων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Οικονομικό Πανεπιστήμιο Αθηνών» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 2

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Οι εικόνες προέρχονται από το βιβλίο «Κατανεμημένα Συστήματα με Java», Ι. Κάβουρας, Ι. Μήλης, Γ. Ξυλωμένος, Α. Ρουκουνάκη, 3 η έκδοση, 2011, Εκδόσεις Κλειδάριθμος. 3

Σκοποί ενότητας Κατανόηση των βασικών ζητημάτων στην αναζήτηση αρχείων σε ομότιμα συστήματα. Εξοικείωση με τις βασικές τεχνικές αναζήτησης αρχείων στα ομότιμα συστήματα (εξυπηρετητές, πλημμύρα, ημιδομημένα δίκτυα). Κατανόηση του προβλήματος της ανταλλαγή αρχείων στα ομότιμα συστήματα και εξοικείωση με το σύστημα BitTorrent. 4

Περιεχόμενα ενότητας Αναζήτηση αρχείων Αναζήτηση μέσω εξυπηρετητών Αναζήτηση μέσω πλημμύρας Αναζήτηση σε ημιδομημένα δίκτυα Ανταλλαγή αρχείων Το σύστημα BitTorrent 5

Εισαγωγή Μάθημα: Κινητά και Διάχυτα Συστήματα, Ενότητα # 7: Κατανεμημένος καταμερισμός αρχείων Διδάσκων: Γιώργος Ξυλωμένος, Τμήμα: Πληροφορικής

Καταμερισμός αρχείων Εφαρμογές καταμερισμού αρχείων Κλασική εφαρμογή συστημάτων ομοτίμων Κάθε κόμβος συνεισφέρει ορισμένα αρχεία Λειτουργεί ως εξυπηρετητής: ανεβάζει αρχεία Κάθε κόμβος ενδιαφέρεται για αρχεία άλλων Λειτουργεί ως πελάτης: κατεβάζει αρχεία Αναζήτηση αρχείων με βάση τις ιδιότητές τους 7

Δομημένα συστήματα (1 από 2) Υλοποίηση με δομημένα συστήματα Μετασχηματισμός ονόματος σε κλειδί Υποβολή ερωτήματος στο σύστημα Χρήση εξωτερικής υπηρεσίας ονομάτων Αντιστοίχιση ερωτήματος σε όνομα Χρήση ενιαίας κωδικοποίησης ονομάτων Παράδειγμα: καλλιτέχνης_δίσκος_όνομα_bps 8

Δομημένα συστήματα (2 από 2) Αν γνωρίζουμε μόνο ορισμένες ιδιότητες; Υποβολή ερωτημάτων με διαφορετικές τιμές Εφικτό για το ρυθμό bit, πιο δύσκολο για το όνομα Το πλήθος των αναζητήσεων είναι τεράστιο Το πρόβλημα είναι ο κατακερματισμός! Παρόμοιες αναζητήσεις -> διαφορετικά σημεία Βασική ιδιότητα των DHT 9

Αδόμητα συστήματα Υλοποίηση με μη δομημένα συστήματα Υποβολή προσεγγιστικών ερωτημάτων Όσες ιδιότητες του αρχείου γνωρίζουμε Προώθηση του ερωτήματος με τυχαίο τρόπο Κάθε κόμβος αποφασίζει αν έχει το αρχείο Μπορεί να επιστρέψει πολλά αποτελέσματα Οι απαντήσεις είναι και αυτές προσεγγιστικές Προέρχονται από τους κόμβους που ρωτήθηκαν 10

Αναζήτηση και ανταλλαγή (1 από 2) Ο καταμερισμός συνδυάζει δύο λειτουργίες Αναζήτηση αρχείων Ανταλλαγή αρχείων Αναζήτηση αρχείων Γενικά δύσκολη σε μεγάλα συστήματα Aκόμη περισσότερο στα ομότιμα συστήματα Συνεχείς προσχωρήσεις και αποχωρήσεις κόμβων Μικρή αξιοπιστία κόμβων 11

Αναζήτηση και ανταλλαγή (2 από 2) Ανταλλαγή αρχείων Θεωρητικά απλή όταν ξέρουμε τη θέση τους Είναι όμως οι κόμβοι συνεργάσιμοι; Κάθε κόμβος προωθεί το συμφέρον του Μπορεί να θέλει να λαμβάνει χωρίς να στέλνει Μπορεί να στέλνει ψευδή στοιχεία Πώς αναγκάζονται να συνεργαστούν; 12

Αναζήτηση μέσω εξυπηρετητών Μάθημα: Κινητά και Διάχυτα Συστήματα, Ενότητα # 7: Κατανεμημένος καταμερισμός αρχείων Διδάσκων: Γιώργος Ξυλωμένος, Τμήμα: Πληροφορικής

Το σύστημα Napster (1 από 2) Πρωτοπόρο σύστημα ανταλλαγής αρχείων Βασιζόταν σε αρχεία mp3 Ο χρήστης διαφημίζει τα αρχεία ενός ευρετηρίου Αναζήτηση αρχείων με βάση ιδιότητες Ορίζονται από τον χρήστη Όνομα, καλλιτέχνης, ρυθμός bit, Το σύστημα επιστρέφει μία λίστα αρχείων Για κάθε αρχείο δίνεται όνομα, ιδιότητες και κόμβος 14

Το σύστημα Napster (2 από 2) Ο χρήστης επιλέγει κάποιο από τα αρχεία Το αρχείο κατεβαίνει Φτάνει ο άλλος χρήστης να μην αποσυνδεθεί Δεν είναι πραγματικά ομότιμο σύστημα Ανταλλαγή απευθείας μεταξύ χρηστών Αναζήτηση μέσω εξυπηρετητών της εταιρείας Ο χρήστης εγγράφεται στην υπηρεσία Εξυπηρετητές σε ευρέως γνωστή διεύθυνση 15

Σύνδεση στο Napster (1 από 2) Λειτουργία εφαρμογής Napster Σύνδεση με συστοιχία εξυπηρετητών Αποστολή μηνύματος με στοιχεία χρήστη Θύρα λήψης εφαρμογής Η διεύθυνση φαίνεται στο μήνυμα Έκδοση εφαρμογής Τύπος σύνδεσης στο δίκτυο (PSTN, ADSL, T1) Χρήστης Συνθηματικό Θύρα Πληροφορίες Σύνδεση (α) Όνομα αρχείου MD5 Μέγεθος Ρυθμός Δειγματοληψία Διάρκεια 16

Σύνδεση στο Napster (2 από 2) Λειτουργία εφαρμογής Napster Αποστολή μηνύματος για κάθε αρχείο Όνομα αρχείου Τιμή κατακερματισμού (MD5) Μέγεθος και χρονική διάρκεια Ρυθμός κωδικοποίησης και δειγματοληψίας Χρήστης Συνθηματικό Θύρα Πληροφορίες Σύνδεση Ο εξυπηρετητής προσθέτει τα στοιχεία στη βάση (α) Όνομα αρχείου MD5 Μέγεθος Ρυθμός Δειγματοληψία Διάρκεια (β) 17

Αναζήτηση στο Napster (1 από 3) Εντοπισμός αρχείου Αποστολή μηνύματος από πελάτη Όνομα καλλιτέχνη και κομματιού (ή μέρος) Μέγιστο πλήθος απαντήσεων Φίλτρα της μορφής τελεστής (<, =, >) και τιμή Τύπος σύνδεσης άλλου άκρου Ρυθμός κωδικοποίησης και δειγματοληψίας Καλλιτέχνης Πλήθος Όνομα Σύνδεση Ρυθμός Δειγματοληψία (α) 18

Αναζήτηση στο Napster (2 από 3) Εντοπισμός αρχείου Ο εξυπηρετητής ελέγχει τη βάση Τα ερωτήματα συγκρίνονται με τα ονόματα αρχείων Ουσιαστικά έχουμε δομημένα ονόματα Επιστρέφεται ένα μήνυμα ανά αρχείο Στοιχεία αρχείου (περιέχεται και τιμή κατακερματισμού) Καλλιτέχνης Πλήθος Όνομα Σύνδεση Ρυθμός Όνομα χρήστη, IP, τύπος σύνδεσης (α) Δειγματοληψία Στοιχεία αρχείου Χρήστης Διεύθυνση Σύνδεση (β) 19

Αναζήτηση στο Napster (3 από 3) Επιλογή αρχείου Τα πανομοιότυπα αφαιρούνται Εντοπίζονται μέσω τιμής κατακερματισμού Ο χρήστης επιλέγει ένα από τα αρχεία Ο πελάτης στέλνει αίτηση στον εξυπηρετητή Περιέχει όνομα χρήστη και όνομα αρχείου Ο εξυπηρετητές επιστρέφει και τη θύρα TCP Ο πελάτης ζητά το αρχείο από τον άλλο πελάτη 20

Αξιολόγηση του Napster (1 από 3) Γιατί έγινε τόσο δημοφιλές το Napster; Κυκλοφόρησε την κατάλληλη στιγμή Το mp3 υποδεκαπλασίασε το μέγεθος ADSL/Cable υπερδεκαπλασίασαν την ταχύτητα Οι χρήστες δεν χρειαζόταν να γνωρίζονται Το Napster τους έφερνε σε επαφή Μεγάλη ταχύτητα κατεβάσματος Χωρίς υποδομή εξυπηρετών στο Napster 21

Αξιολόγηση του Napster (2 από 3) Το Napster δεν ήταν ομότιμο σύστημα Η αναζήτηση χρησιμοποιούσε κεντρική βάση Διευκόλυνση προσεγγιστικών ερωτημάτων Δημιουργία σημείου συμφόρησης Ανάγκη για μεγάλες συστοιχίες εξυπηρετητών Αλγόριθμοι για εξισορρόπηση φόρτου Η κεντρική βάση ήταν το ευαίσθητο σημείο Για αυτό την αποφεύγουν τα ομότιμα συστήματα 22

Αξιολόγηση του Napster (3 από 3) Το Napster έκλεισε με δικαστική εντολή Οι κάτοχοι πνευματικών δικαιωμάτων το κυνήγησαν Τα δικαστήρια διέταξαν τη διακοπή λειτουργίας του Δεν λειτουργούσε χωρίς τους εξυπηρετητές Το Napster όμως έδειξε το δρόμο Τεράστιο ενδιαφέρον για παρόμοια υπηρεσία Ανάγκη για πλήρως αποκεντρωμένη λειτουργία Έτσι ώστε να μην μπορεί να κλείσει 23

Αναζήτηση μέσω πλημμύρας Μάθημα: Κινητά και Διάχυτα Συστήματα, Ενότητα # 7: Κατανεμημένος καταμερισμός αρχείων Διδάσκων: Γιώργος Ξυλωμένος, Τμήμα: Πληροφορικής

Το σύστημα Gnutella 1 Το σύστημα Gnutella Ανταλλαγή αρχείων σε ομότιμο περιβάλλον Βασίζεται μόνο στους ομότιμους κόμβους Πρώτη γενιά Gnutella Μη δομημένο υπερκείμενο δίκτυο Περιορισμένη κλιμακωσιμότητα Λόγω χρήσης πλημμύρας στην αναζήτηση 25

Σύνδεση στο Gnutella 1 Κάθε κόμβος προσπαθεί να συνδεθεί με άλλους Ευρέως γνωστοί κόμβοι διάσπαρτοι στο δίκτυο Επικοινωνία με κόμβους που ήδη γνωρίζουμε Ανταλλαγή εκδόσεων πρωτοκόλλου με άλλο κόμβο Αν συμφωνεί η έκδοση, οι κόμβοι συνδέονται Δεν υπάρχουν ονόματα, συνθηματικά ή εγγραφές Σύνδεση με τρεις τουλάχιστον κόμβους Εναλλακτικές διαδρομές σύνδεσης με το δίκτυο 26

Μηνύματα στο Gnutella 1 Μορφή μηνυμάτων στο Gnutella Μοναδικό αναγνωριστικό ανά αποστολέα Επιτρεπόμενο πλήθος αλμάτων Πλήθος αλμάτων που έχουν γίνει Οι κόμβοι διατηρούν τα μηνύματα Εντοπισμός πολλαπλών λήψεων Αναμενόμενο σε συστήματα πλημμύρας Απόρριψη επαναλήψεων 27

Συντήρηση στο Gnutella 1 Περιοδικό μήνυμα ping στους γείτονες Επιτρέπονται μέχρι 7 άλματα Όποιος γείτονας δεν το έχει ξαναδεί το προωθεί Διάδοση με περιορισμένη πλημμύρα (flooding) Απάντηση με μήνυμα pong Διεύθυνση κόμβου και πλήθος / όγκος αρχείων Ακολουθεί την αντίστροφη διαδρομή από το pong Χρήση των αποθηκευμένων μηνυμάτων ping 28

Αναζήτηση στο Gnutella 1 (1 από 2) 0 0 1 2 4 3 1 2 4 3 5 6 5 6 7 7 (α) (β) Μήνυμα query για αναζήτηση αρχείου Προωθείται ακριβώς όπως το ping Περιορισμένη πλημμύρα Αποθήκευση μηνυμάτων Περιέχει λίστα με λέξεις-κλειδιά Επιπλέον, ελάχιστη ταχύτητα σύνδεσης 29

Αναζήτηση στο Gnutella 1 (2 από 2) 0 0 1 2 4 3 1 2 4 3 5 6 5 6 7 7 (α) (β) Απάντηση με μήνυμα query-hit Προωθείται ανάποδα από το query (όπως το pong) Στοιχεία επικοινωνίας κόμβου και πλήθος αρχείων Λίστα με τα αρχεία (όνομα, μέγεθος, MD5) Ανταλλαγή αρχείων Απευθείας μεταξύ των κόμβων μέσω IP 30

Προβλήματα του Gnutella 1 (1 από 2) Η πλημμύρα δεν κλιμακώνεται Όσο μεγαλώνει το σύστημα, μεγαλώνει ο φόρτος Η αναζήτηση καλύπτει όλο και μικρότερο μέρος Αύξηση αλμάτων / γειτόνων αυξάνει το φόρτο Πολλά μηνύματα είναι περιττά Επανέρχονται στους ίδιους κόμβους Απορρίπτονται όταν εντοπιστούν 31

Προβλήματα του Gnutella 1 (2 από 2) Υπερκείμενο <> υποκείμενο δίκτυο Κάθε άλμα μπορεί να διατρέχει όλο το Διαδίκτυο Το κόστος αναζητήσεων είναι πολύ μεγάλο Πάρα πολλά μηνύματα λόγω πλημμύρας Τα μηνύματα καλύπτουν μεγάλες αποστάσεις Οι αναζητήσεις είναι αργές Οι αναζητήσεις δεν βρίσκουν τα πάντα 32

Αναζήτηση σε ημιδομημένα δίκτυα Μάθημα: Κινητά και Διάχυτα Συστήματα, Ενότητα # 7: Κατανεμημένος καταμερισμός αρχείων Διδάσκων: Γιώργος Ξυλωμένος, Τμήμα: Πληροφορικής

Το σύστημα Gnutella 2 (1 από 2) Ημιδομημένη αρχιτεκτονική Δύο είδη κόμβων Υπερομότιμοι κόμβοι (super-peers) Συνδέονται με ομότιμους και υπερομότιμους Εκπροσωπούν τους ομότιμους στο σύστημα (Απλοί) ομότιμοι κόμβοι Συνδέονται μόνο σε υπερομότιμους 34

Το σύστημα Gnutella 2 (2 από 2) Επιλογή υπερομότιμων από το σύστημα Στόχος: σταθερό πλήθος ομότιμων / υπερομότιμο Προαγωγή κόμβου Ξεκινά από κάποιον φορτωμένο υπερομότιμο Επιλέγει έναν απλό ομότιμο Πρέπει να είναι αρκετή ώρα στο σύστημα Πρέπει να έχει μεγάλο εύρος ζώνης Προβιβάζεται σε υπερομότιμο Μοιράζεται τους ομότιμους με τον παλιό 35

Συντήρηση δικτύου στο Gnutella 2 Μηνύματα ping και pong σε δύο επίπεδα Υπερομότιμοι: ανταλλάσσουν μεταξύ τους Απλοί ομότιμοι: στέλνουν ping στο γονέα τους Λαμβάνουν σαν απάντηση τα pong που έχει λάβει Μαθαίνουν έτσι για το υπόλοιπο δίκτυο Το ping τους δεν προωθείται στο δίκτυο 36

Αρχική σύνδεση στο Gnutella 2 Ο κόμβος αρχικά είναι απλός ομότιμος Προσπαθεί να συνδεθεί σε υπερομότιμους Αποστολή λίστας με τιμές κατακερματισμού Σε κάθε υπερομότιμο που συνδέεται Για κάθε λέξη-κλειδί που περιγράφει κάθε αρχείο Για τις λέξεις-κλειδιά που περιγράφουν τα αρχεία του Ο υπερομότιμος διατηρεί πίνακα Τιμή κατακερματισμού και αντίστοιχο παιδί 37

Αναζήτηση στο Gnutella 2 (1 από 3) Ο ομότιμος στέλνει query στο γονέα του Ο υπερομότιμος ελέγχει τον πίνακά του Αν βρει ταίριασμα Tο στέλνει στο αντίστοιχο παιδί Το ταίριασμα δεν σημαίνει ότι υπάρχει το αρχείο Ο υπερομότιμος γνωρίζει τιμές κατακερματισμού Απλά προωθεί το μήνυμα σε πιθανούς κόμβους Προωθεί το query σε άλλους υπερομότιμους Επανάληψη μέχρι να εξαντληθεί το όριο αλμάτων 38

Αναζήτηση στο Gnutella 2 (2 από 3) Οι κόμβοι απαντούν με μήνυμα query-hit Μόνο αν έχουν τη ζητούμενη λέξη-κλειδί Μπορεί απλά να ταιριάζει το hash Στέλνεται στον κόμβο που ξεκίνησε το query Χωρίς παρέμβαση του υπερομότιμου Μείωση επιβάρυνσης ενδιάμεσων κόμβων Μείωση απόστασης που καλύπτει κάθε μήνυμα 39

Αναζήτηση στο Gnutella 2 (3 από 3) 2 2 1 A 3 1 A 3 C C 6 6 B B 5 4 5 4 (α) Παράδειγμα αναζήτησης στο Gnutella 2 Ο κόμβος 3 στέλνει query στον υπερομότιμο C Αν ο C εντοπίσει ταίριασμα με 2, θα το στείλει στον 2 Επιπλέον το μήνυμα στέλνεται στους A και B Σε κάθε άλμα εξετάζονται όλοι οι ομότιμοι Μέσω του υπερομότιμου που τους εκπροσωπεί (β) 40

Το σύστημα KaZaa (1 από 2) Ο κώδικας δεν είναι δημόσια διαθέσιμος Κρυπτογραφημένα μηνύματα μεταξύ κόμβων Παρατήρηση της συμπεριφοράς των κόμβων Πολλές παράλληλες μεταφορές αρχείων Κατέβασμα τμημάτων από πολλούς κόμβους Ανάκαμψη από αποτυχίες Μείωση χρόνου αναμονής 41

Το σύστημα KaZaa (2 από 2) Έλεγχος πλήθους αποκρίσεων Μείωση πόρων για την αναζήτηση Υλοποιείται από τον υπερομότιμο Αν γνωρίζει αρκετές απαντήσεις δεν προωθεί Αλλιώς μιλάει με ορισμένους γείτονες Αν δεν έχει αρκετές, μιλάει και με άλλους Η αναζήτηση επεκτείνεται μόνο αν χρειάζεται 42

Ανταλλαγή αρχείων Μάθημα: Κινητά και Διάχυτα Συστήματα, Ενότητα # 7: Κατανεμημένος καταμερισμός αρχείων Διδάσκων: Γιώργος Ξυλωμένος, Τμήμα: Πληροφορικής

Ανταλλαγή αρχείων με ομότιμους Προαπαιτεί την αναζήτηση Εντοπισμός κόμβων που διαθέτουν το αρχείο Επιλογή ενός κόμβου και κατέβασμα αρχείου Ανάλογα με τις προτιμήσεις του ομότιμου Δυναμικό και αποκεντρωμένο σύστημα Οι κόμβοι μπορεί να αποχωρούν απρόβλεπτα Οι κόμβοι μπορεί να συμπεριφέρονται περίεργα 44

Ανταλλαγή τμημάτων Το αρχείο χωρίζεται σε κομμάτια (pieces) Κατέβασμα από πολλούς κόμβους ταυτόχρονα Δεν πειράζει αν ορισμένοι είναι αργοί Στα επόμενα κομμάτια θα επιλέξουμε άλλους Αντοχή σε αποχωρήσεις ή αποτυχίες κόμβων Απαιτεί παρακολούθηση πολλών κόμβων Απαιτεί παρακολούθηση των κομματιών 45

Επιλογή κόμβων Επιλογή κόμβων για κατέβασμα Έχει νόημα όταν έχουμε πολλά κομμάτια Κάθε κομμάτι μπορεί να έρχεται από αλλού Ρυθμός μετάδοσης προς τοπικό κόμβο Βασικό κριτήριο επιλογής Ταχύτητα πρόσβασης στο δίκτυο Μέτρηση με δοκιμαστικά πακέτα Συμπεριφορά σε προηγούμενα κομμάτια 46

Αποφυγή τζαμπατζήδων Κατέβασμα χωρίς ανέβασμα Το ανέβασμα πρέπει να ενθαρρύνεται! Αλλιώς το σύστημα σταδιακά θα απαξιωθεί Επιβράβευση κόμβων που ανεβάζουν Ή τιμωρία κόμβων που δεν ανεβάζουν Τεχνική ένα σου και ένα μου (tit for tat) Επιβεβαίωση εγκυρότητας κομματιών Τιμή κατακερματισμού περιεχομένων 47

Το σύστημα BitTorrent Μάθημα: Κινητά και Διάχυτα Συστήματα, Ενότητα # 7: Κατανεμημένος καταμερισμός αρχείων Διδάσκων: Γιώργος Ξυλωμένος, Τμήμα: Πληροφορικής

Έννοιες του BitTorrent (1 από 5) Ανταλλαγή αρχείων με το BitTorrent Μη δομημένο υπερκείμενο δίκτυο Ανταλλαγή ανάμεσα στους ομότιμους Ευρέως γνωστό πρωτόκολλο Πρότυπη συμπεριφορά Δεν ασχολείται με την αναζήτηση αρχείων Βασίζεται σε άλλα συστήματα για την αναζήτηση 49

Έννοιες του BitTorrent (2 από 5) Σμήνος: κόμβοι που ανταλλάσσουν ένα αρχείο Κάθε αρχείο έχει ανεξάρτητο σμήνος Δότες: διαθέτουν ολόκληρο το αρχείο Ανεβάζουν δεδομένα Εκμεταλλευτές: διαθέτουν μέρος του αρχείου Ανεβάζουν και κατεβάζουν δεδομένα Γίνονται δότες όταν ολοκληρώσουν το κατέβασμα Στην αρχή χρειάζεται ένας τουλάχιστον δότης Αργότερα μπορεί να αρκούν μόνο οι εκμεταλλευτές 50

Έννοιες του BitTorrent (3 από 5) Ιχνηλάτης Διευκολύνει την ανταλλαγή αλλά δεν συμμετέχει Καταγράφει στοιχεία κόμβων του σμήνους Πιθανόν πολλοί ιχνηλάτες ανά αρχείο Ανταλλαγή κομματιών του αρχείου Ισομεγέθη κομμάτια Εκτός ίσως από το τελευταίο Συνήθως 32 KByte έως 4 Mbyte 51

Έννοιες του BitTorrent (4 από 5) Μετα-αρχείο με τα στοιχεία του αρχείου Συνήθως κατάληξη.torrent Όνομα και μέγεθος αρχείου Μέγεθος κομματιών Τιμή κατακερματισμού περιεχομένων (MD5) Τιμές κατακερματισμού των κομματιών (SHA-1) Λίστα διευθύνσεων ιχνηλατών (URL) Προαιρετικά περιγραφικά στοιχεία 52

Έννοιες του BitTorrent (5 από 5) Παρακολούθηση κομματιών Χάρτης δυφίων (bitmap ή bitfield) Ένα δυφίο ανά κομμάτι, αρχικά όλα μηδενικά Τα κομμάτια υποδιαιρούνται σε ομάδες Συνήθως 16 KByte Οι ομάδες παρακολουθούνται μόνο εσωτερικά Χάρτης δυφίων 0 1 1... 0 Κομμάτι 1 Κομμάτι 2 Κομμάτι 3... Κομμάτι n Oμάδα 1 Oμάδα 2 Oμάδα 3... Oμάδα n 53

Εκκίνηση ανταλλαγής Κατεβάζουμε το μετα-αρχείο από ιστοσελίδα Συνδεόμαστε με τους ιχνηλάτες Οι ιχνηλάτες επιστρέφουν μία λίστα με κόμβους Επικοινωνούμε με άλλους κόμβους του σμήνους Η μόνη σχέση εμπιστοσύνης είναι με την ιστοσελίδα Πρέπει να εμπιστευόμαστε τις τιμές κατακερματισμού Εξυπηρετητής Ιστού 1 2 3 Κόμβος 0 4 Ιχνηλάτης Κόμβος 1 Κόμβος 2... Κόμβος n 54

Επικοινωνία με ιχνηλάτη (1 από 5) Επικοινωνία με ιχνηλάτες Μπορεί να έχουμε πολλούς ιχνηλάτες Οι ιχνηλάτες δεν συγχρονίζονται μεταξύ τους Κάθε κόμβος μπορεί να επικοινωνεί με πολλούς Χρήση μεθόδου GET του πρωτοκόλλου HTTP Οι παράμετροι κωδικοποιούνται ως επιλογές 55

Επικοινωνία με ιχνηλάτη (2 από 5) Αίτηση προς ιχνηλάτη Κατακερματισμός μετα-αρχείου (SHA-1) Λέγεται και info-hash του αρχείου Αναγνωριστικό του κόμβου Όνομα / έκδοση λογισμικού και τυχαίος αριθμός Θύρα επικοινωνίας Μέγιστο πλήθος κόμβων ανά απάντηση Στατιστικά στοιχεία κόμβου Δυφιοσυλλαβές που έχει ανεβάσει / κατεβάσει / αναζητά Αναγνωριστικό Κόμβος Θύρα Πλήθος Στατιστικά (α) 56

Επικοινωνία με ιχνηλάτη (3 από 5) Απάντηση ιχνηλάτη Τυχαίο υποσύνολο κόμβων του σμήνους Διασφαλίζει ότι το σμήνος θα παραμείνει συνδεδεμένο Πλήθος κόμβων Για κάθε κόμβο Αναγνωριστικό, διεύθυνση, θύρα Στατιστικά ιχνηλάτη Πλήθος δοτών / εκμεταλλευτών Αναγνωριστικό Κόμβος Θύρα Πλήθος Τα στοιχεία συλλέγονται από τις ίδιες τις αιτήσεις (α) Στατιστικά Πλήθος Κόμβος/Διεύθυνση/Θύρα... Κόμβος/Διεύθυνση/Θύρα Στατιστικά (β) 57

Επικοινωνία με ιχνηλάτη (4 από 5) Κατασκευή εικόνας του σμήνους Τα στοιχεία δεν είναι αξιόπιστα Αποχωρήσεις και αποτυχίες κόμβων Ορισμένα δεν επιβεβαιώνονται καν Επικοινωνία με ιχνηλάτη κάθε 30 λεπτά Ενημερώνεται η εικόνα του κόμβου στον ιχνηλάτη Επιπλέον, όταν μείνουν κάτω από 20 κόμβοι Στόχος: να έχουμε πάντα αρκετούς για σύνδεση 58

Επικοινωνία με ιχνηλάτη (5 από 5) Κατανεμημένος πίνακας κατακερματισμού Αντικαθιστά τον ιχνηλάτη Συνδέονται κόμβοι από όλα τα σμήνη Έτσι ώστε να υπάρχουν αρκετοί στον πίνακα Αναζήτηση με βάση το info-hash Ο πλησιέστερος κόμβος λειτουργεί ως ιχνηλάτης Ελαφρά διαφορετικό πρωτόκολλο επικοινωνίας 59

Επικοινωνία κόμβων (1 από 7) Συνδέσεις με κόμβους μέσω TCP Μέχρι 40 εξερχόμενες και 40 εισερχόμενες Μηνύματα Handshake Όνομα πρωτοκόλλου, info-hash, αναγνωριστικό κόμβου Μηνύματα Bitfield Χάρτης δυφίων του κόμβου Μηνύματα Keep Alive Ανά 2 λεπτά αν δεν σταλεί κάτι άλλο Handshake Τοπικός Κόμβος Bitfield... Keepalive Απομακρυσμένος Κόμβος 60

Επικοινωνία κόμβων (2 από 7) Δύο κριτήρια για ανταλλαγή δεδομένων Ενδιαφέρεται ο τοπικός κόμβος; Εξετάζει το χάρτη δυφίων του άλλου άκρου Αν έχει κομμάτια που του λείπουν, ενδιαφέρεται Αποστολή ρητού μηνύματος Interested Αλλιώς υπονοείται ότι δεν ενδιαφέρεται Η κατάσταση αλλάζει με νέο μήνυμα Interested ή Not Interested 61

Επικοινωνία κόμβων (3 από 7) Είναι απεμπλεγμένος ο τοπικός κόμβος; Αρχικά ο κόμβος είναι εμπλεγμένος (choked) Ρητή αλλαγή κατάστασης Απεμπλοκή με μήνυμα Unchoke Εμπλοκή με μήνυμα Choke Κατέβασμα δεδομένων Ενδιαφέρομαι για τον απομακρυσμένο κόμβο; Με έχει απεμπλέξει ο απομακρυσμένος κόμβος; 62

Επικοινωνία κόμβων (4 από 7) Τα δεδομένα ζητούνται με το Request Θέση κομματιού στο αρχείο Θέση ομάδας στο κομμάτι και μέγεθος ομάδας Τα δεδομένα επιστρέφονται με το Piece Θέση κομματιού και ομάδας Δεδομένα ομάδας Request Τοπικός Κόμβος Piece Request Απομακρυσμένος Κόμβος 63

Επικοινωνία κόμβων (5 από 7) Σωλήνωση (pipelining) αιτήσεων Μπορεί να εκκρεμούν k μηνύματα Request Μετά από κάθε Piece στέλνουμε νέο Request Καλύτερη αξιοποίηση καναλιού επικοινωνίας Αν ο κόμβος εμπλακεί; Τα εκκρεμή Request πάνε χαμένα Ζητάμε ομάδες από πολλά κομμάτια Ταυτόχρονο κατέβασμα ομάδων 64

Επικοινωνία κόμβων (6 από 7) Κατάσταση τέλους παιχνιδιού Όταν έχουν ζητηθεί όλες οι ομάδες Ζητάμε την ίδια ομάδα από πολλούς κόμβους Όταν φτάσει, ακύρωση αιτήσεων με Cancel Έλεγχος ορθότητας κομματιών Χρήση κατακερματισμού από το μετα-αρχείο Αρκεί να εμπιστευόμαστε το μετα-αρχείο Δηλαδή, την ιστοσελίδα από όπου το κατεβάσαμε! 65

Επικοινωνία κόμβων (7 από 7) Ενημέρωση κόμβων για κατάστασή μας Μόλις λάβουμε ένα έγκυρο κομμάτι Ενημερώνουμε όσους έχουμε σύνδεση Μήνυμα Have με τη θέση του κομματιού Οι άλλοι κόμβοι ενημερώνουν χάρτη δυφίων Μπορεί να αρχίσουν να ενδιαφέρονται για εμάς Ρητή αποστολή μηνύματος Interested 66

Πολιτικές BitTorrent (1 από 8) Πολιτικές του BitTorrent Μηχανισμοί: κωδικοποιούνται στο πρωτόκολλο Πολιτικές: κωδικοποιούνται στην υλοποίηση Αλγόριθμος επιλογής κομματιών Ποιο κομμάτι θα ζητήσουμε στη συνέχεια; Έχουμε ζητήσει όλες τις ομάδες των προηγούμενων Εκκρεμούν λιγότερα από k μηνύματα Request 67

Πολιτικές BitTorrent (2 από 8) Επιλογή κομματιών κατά την εκκίνηση Τα πρώτα 4 επιλέγονται τυχαία (random first) Από κόμβους που μας ενδιαφέρουν Και μας έχουν απεμπλέξει Στόχος: γρήγορο κατέβασμα πρώτων κομματιών Για να μπορούμε να ανταποδώσουμε στις ανταλλαγές Επιλογή κομματιών στη συνέχεια Σπανιότερο διαθέσιμο κομμάτι (rarest first) Επιλογή ανάμεσα στα n σπανιότερα Για να μην ζητάνε όλοι οι κόμβοι το ίδιο κομμάτι! 68

Πολιτικές BitTorrent (3 από 8) Γιατί το σπανιότερο κομμάτι; Το κομμάτι αυτό είναι πιο πιθανό να ζητηθεί Όλοι ζητούν τα σπάνια κομμάτια Μειώνεται η πιθανότητα αποτυχίας Τα σπάνια αναπαράγονται κατά προτεραιότητα Αυστηρή προτεραιότητα κομματιών Κάθε κομμάτι που ζητείται έχει προτεραιότητα Πρέπει να ζητηθούν όλες οι ομάδες του πρώτα Έχει προτεραιότητα και μετά από διακοπές Μπορεί να εμπλακούμε στη μέση ενός κομματιού 69

Πολιτικές BitTorrent (4 από 8) Αλγόριθμος απεμπλοκής Επιλογή κόμβων στους οποίους κατεβάζουμε Περιορισμένο πλήθος απεμπλεγμένων κόμβων Συνήθως 4 απεμπλεγμένοι κόμβοι Περιορισμένος ρυθμός αλλαγής καταστάσεων Βελτιστοποίηση απόδοσης του TCP Καλείται τουλάχιστον κάθε 10 sec Ή όταν αλλάξει η κατάσταση απεμπλεγμένου κόμβου 70

Πολιτικές BitTorrent (5 από 8) Αλγόριθμος στους εκμεταλλευτές Βασίζεται στην ανταπόδοση (reciprocation) Δηλαδή στο ένα σου και ένα μου (tit for tat) Ταξινόμηση κόμβων με ταχύτητα κατεβάσματος Πρέπει να έστειλαν δεδομένα τα τελευταία 30 sec Επιλέγονται οι ταχύτεροι για απεμπλοκή Στέλνονται μηνύματα Choke / Unchoke Μόνο σε όσους άλλαξαν κατάσταση 71

Πολιτικές BitTorrent (6 από 8) Αισιόδοξη απεμπλοκή (optimistic unchoke) Κάθε 3 γύρους επιλέγεται τυχαίος κόμβος Αρκεί να ενδιαφέρεται για εμάς Ανακάλυψη καλύτερων κόμβων Με μεγαλύτερο ρυθμό κατεβάσματος Επιτρέπει στους νέους κόμβους να κατεβάσουν Έτσι μπορούν να μπουν στην ανταλλαγή Δεν λαμβάνεται υπόψη αν μας ενδιαφέρει ο κόμβος! 72

Πολιτικές BitTorrent (7 από 8) Λειτουργία της ανταπόδοσης Όχι απόλυτα συμμετρική! Η απεμπλοκή δεν οδηγεί πάντα σε απεμπλοκή Κάθε κόμβος λαμβάνει τις δικές του αποφάσεις Προτιμώνται οι κόμβοι με υψηλή ταχύτητα Υποβοήθηση νέων κόμβων Με την αισιόδοξη απεμπλοκή 73

Πολιτικές BitTorrent (8 από 8) Αλγόριθμος στους δότες Οι κόμβοι κατατάσσονται σε λίστα Αρχικά οι πιο πρόσφατα απεμπλεγμένοι Μετά όλοι οι απεμπλεγμένοι Με βάση την ταχύτητα ανεβάσματος Κάθε τρεις γύρους απεμπλέκονται οι πρώτοι Κάθε δύο στους τρεις γύρους Απεμπλέκεται και ένας τυχαία 74

Αποδοτικότητα BitTorrent (1 από 2) Αντοχή στις αποτυχίες κόμβων Τα κομμάτια μπορεί να κατέβουν από πολλούς Ανάκαμψη σε επίπεδο ομάδων Οι πολλαπλές μεταφορές αυξάνουν την ταχύτητα Η επιλογή του σπανιότερου είναι σημαντική Βοηθάει την επιβίωση του σμήνους Τα σπάνια αναπαράγονται κατά προτεραιότητα Στην αρχή βέβαια δεχόμαστε οποιοδήποτε κομμάτι 75

Αποδοτικότητα BitTorrent (2 από 2) Αντοχή στους τζαμπατζήδες Επιβραβεύεται όποιος κατεβάζει (με απεμπλοκή) Προτιμάται όποιος κατεβάζει πιο γρήγορα Οι πιο αργοί κόμβοι αδικούνται όμως Τζαμπατζήδες: μόνο αισιόδοξη απεμπλοκή Ικανοποιητική για το ξεκίνημα ενός κόμβου Πολύ αργή για το κατέβασμα μεγάλων αρχείων Πρέπει να συνεισφέρουν για να έχουν ταχύτητα 76

Τέλος Ενότητας #7 Μάθημα: Κινητά και Διάχυτα Συστήματα, Ενότητα # 7: Κατανεμημένος καταμερισμός αρχείων Διδάσκων: Γιώργος Ξυλωμένος, Τμήμα: Πληροφορικής