Peer-To-Peer Network Analysis
Το παρόν αποτελεί απόδοση στα ελληνικά της δημοσίευσης An Analysis of the Skype Peer-to-Peer Internet Telephony Protocol, Salman A. Baset and Henning G. Schulzrinne, 25th IEEE International Conference on Computer Communications (INFOCOM 2006), 2006, pp. 1-11.
A PRODUCTION OF ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΣΠΟΥΔΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ
Produced By Παπίκας Ιωάννης Α.Μ. 48/06 Χατζηκυριάκου Ηλίας Α.Μ. 144/06 Φοιτητές 6 ου Εξαμήνου
Directed By Παπίκας Ιωάννης Α.Μ. 48/06 Χατζηκυριάκου Ηλίας Α.Μ. 144/06 Φοιτητές 6 ου Εξαμήνου
Επιμέλεια Ελληνικής Έκδοσης Παπίκας Ιωάννης Α.Μ. 48/06 Χατζηκυριάκου Ηλίας Α.Μ. 144/06 Φοιτητές 6 ου Εξαμήνου
ΠΕΡΙΕΧΟΜΕΝΑ (1/3) ΕΙΣΑΓΩΓΗ «ΚΛΕΙΔΙΑ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ» ΤΟΥ SKYPE ΠΟΡΤΕΣ (PORTS) HOST CACHE ΚΩΔΙΚΟΠΟΙΗΤΕΣ (CODECS) ΛΙΣΤΑ ΦΙΛΩΝ (BUDDY LIST) ΚΡΥΠΤΟΓΡΑΦΙΑ ΝΑΤ & FIREWALL ΠΕΙΡΑΜΑΤΙΚΕΣ ΕΓΚΑΤΑΣΤΑΣΕΙΣ ΕΚΔΟΣΗ 1.4.0.84 ΕΚΔΟΣΗ 1.2.0.18
ΠΕΡΙΕΧΟΜΕΝΑ (2/3) ΣΥΝΑΡΤΗΣΕΙΣ ΤΟΥ SKYPE ΕΚΚΙΝΗΣΗ ΣΥΝΔΕΣΗ ΔΙΑΔΙΚΑΣΙΑ ΣΥΝΔΕΣΗΣ LOGIN SERVER ΕΝΑΛΛΑΚΤΙΚΟΙ ΥΠΕΡ-ΚΟΜΒΟΙ (BOOTSTRAP SUPER NODES) ΠΡΟΣΔΙΟΡΙΣΜΟΣ ΝΑΤ & FIREWALL ΤΕΛΕΥΤΑΙΑ ΕΚΔΟΣΗ ΤΟΥ SKYPE ΧΡΟΝΟΣ ΕΠΕΞΕΡΓΑΣΙΑΣ ΕΙΣΟΔΟΥ ΑΝΑΖΗΤΗΣΗ ΧΡΗΣΤΩΝ ΑΠΟΘΗΚΕΥΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΑΝΑΖΗΤΗΣΗΣ ΠΡΑΓΜΑΤΟΠΟΙΗΣΗ ΚΑΙ ΤΕΡΜΑΤΙΣΜΟΣ ΚΛΗΣΗΣ ΜΕΤΑΦΟΡΑ ΠΟΛΥΜΕΣΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΚΩΔΙΚΟΠΟΙΗΤΕΣ ΚΑΤΑΣΤΟΛΗ ΗΣΥΧΙΑΣ ΚΛΗΣΗ ΣΕ ΑΝΑΜΟΝΗ ΕΥΡΟΣ ΣΥΧΝΟΤΗΤΑΣ ΚΩΔΙΚΟΠΟΙΗΤΩΝ ΣΥΜΦΟΡΗΣΗ KEEP-ALIVE MESSAGES
ΠΕΡΙΕΧΟΜΕΝΑ (3/3) ΣΥΝΕΔΡΙΑΣΗ ΑΛΛΑ ΠΕΙΡΑΜΑΤΑ ΣΥΓΚΡΙΣΗ ΜΕ YAHOO, MSN, GOOGLE TALK SKYPE SUPER NODE MAP ΣΥΜΠΕΡΑΣΜΑΤΑ
ΕΙΣΑΓΩΓΗ
ΕΙΣΑΓΩΓΗ Peer-To-Peer Πρόγραμμα Σύγκριση με MSN, Yahoo, Google Talk Κόμβοι,Υπέρ-κόμβοι Login Servers Διαφορετικές εκδόσεις (Windows Linux) Νέες τεχνολογίες αναζήτησης Κωδικοποιητές
«ΚΛΕΙΔΙΑ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ» ΤΟΥ ΛΟΓΙΣΜΙΚΟΥ
6 Βασικά Χαρακτηριστικά (1/2) Πόρτες (Ports) Γίνεται τυχαία επιλογή κατά την εγκατάσταση Χρησιμοποιούνται για την ανταλλαγή δεδομένων Οι πόρτες 80 και 443 είναι προεπιλεγμένες και ανοιχτές για HTTP και HTTP-over-TLS αντίστοιχα Host Cache Είναι ένα σημαντικό κομμάτι στο λογισμικό Περιέχει την λίστα των ΙΡ διευθύνσεων μαζί με τις πόρτες που ακούνε Αποθηκεύεται στο αρχείο Shared.xml Κωδικοποιητές (Codecs) Χρησιμοποιούνται για ανταλλαγή πολυμεσικών δεδομένων (φωνή) Υπάρχουν κατάλληλοι κωδικοποιητές ευρείας μπάντας
6 Βασικά Χαρακτηριστικά (2/2) Λίστα Φίλων (Buddy List) Γνωστά ονόματα χρηστών για έναν συγκεκριμένο χρήστη Αποθηκεύονται στο αρχείο config.xml <skypebuddy1>2f1b8360:2</skypebuddy1> <skypebuddy2>d0450f12:2</skypebuddy2 > Κρυπτογραφία Χρήση του AES (Advanced Standard Encryption)/ a.k.a. Rijndael Clients -> 256-bit -> 1.1*10^77 υποψήφια κλειδιά Skype Login Server -> RSA -> 1526-bit 2048-bit NAT Firewall
ΠΕΙΡΑΜΑΤΙΚΗ ΕΓΚΑΤΑΣΤΑΣΗ
3 Τύποι Δικτύων 2 πελάτες με δημόσια ΙΡ διεύθυνση 1 πελάτης πίσω από ΝΑΤ με περιορισμό πόρτας (Port-Restricted) και ο άλλος με δημόσια ΙΡ διεύθυνση 2 πελάτες πίσω απο ΝΑΤ με περιορισμό πόρτας και Firewall με περιορισμό UDP πρωτοκόλλου (UDP-Restricted).
2 Βασικές Εκδόσεις Έκδοση 1.4.0.84 Windows Πειράματα με: Traffic Analysis Ethereal (WireShark) Net Peeker Έκδοση 1.2.0.18 Linux Πειράματα με: Κοινές βιβλιοθήκες Κλήσεις συστήματος Υπερφόρτωση συναρτήσεων Χρήση X-Win 32
ΣΥΝΑΡΤΗΣΕΙΣ ΤΟΥ SKYPE
Περιληπτικά ΕΚΚΙΝΗΣΗ ΣΥΝΔΕΣΗ ΔΙΑΔΙΚΑΣΙΑ ΣΥΝΔΕΣΗΣ LOGIN SERVER ΕΝΑΛΛΑΚΤΙΚΟΙ ΥΠΕΡ-ΚΟΜΒΟΙ (BOOTSTRAP SUPER NODES) ΠΡΟΣΔΙΟΡΙΣΜΟΣ ΝΑΤ & FIREWALL ΤΕΛΕΥΤΑΙΑ ΕΚΔΟΣΗ ΤΟΥ SKYPE ΧΡΟΝΟΣ ΕΠΕΞΕΡΓΑΣΙΑΣ ΕΙΣΟΔΟΥ ΑΝΑΖΗΤΗΣΗ ΧΡΗΣΤΩΝ ΑΠΟΘΗΚΕΥΣΗ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΑΝΑΖΗΤΗΣΗΣ ΠΡΑΓΜΑΤΟΠΟΙΗΣΗ ΚΑΙ ΤΕΡΜΑΤΙΣΜΟΣ ΚΛΗΣΗΣ ΜΕΤΑΦΟΡΑ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΚΩΔΙΚΟΠΟΙΗΤΕΣ ΚΑΤΑΣΤΟΛΗ ΗΣΥΧΙΑΣ ΚΛΗΣΗ ΣΕ ΑΝΑΜΟΝΗ ΕΥΡΟΣ ΣΥΧΝΟΤΗΤΑΣ ΚΩΔΙΚΟΠΟΙΗΤΩΝ ΣΥΜΦΟΡΕΣΗ KEEP-ALIVE MESSAGES
Εκκίνηση Εκκίνηση για πρώτη φορά Αίτηση HTTP 1.1 GET Περιέχεται η λέξη κλειδί installed
Σύνδεση... Διαδικασία Σύνδεσης Πείραμα: Υπερφόρτωση connect(), sendto() ώστε να επιστρέφουν σφάλμα. Αποτέλεσμα: Πακέτα UDP 18 Bytes στις 7 εναλλακτικές στην πόρτα 33033. Πακέτα TCP στις 7 εναλλακτικές στην πόρτα 33033. Συμπέρασμα: Σύνδεση χωρίς αναφορά σφάλματος.
...Διαδικασία Σύνδεσης... Πείραμα: Διαγραφή της Host Cache Αποτέλεσμα: Επιτυχία σύνδεσης στις ίδιες ΙΡ διευθύνσεις. Πείραμα 2: Εισαγωγή μη έγκυρης ΙΡ διεύθυνσης στην Host Cache. Αποτέλεσμα 2: Επιτυχία σύνδεσης στις ίδιες ΙΡ διευθύνσεις. Συμπέρασμα: ΙΡ διευθύνσεις καταχωρημένες στον πυρήνα του εκτελέσιμου αρχείου.
...Διαδικασία Σύνδεσης... Πείραμα: Παρέμβαση σε επίπεδο πακέτων. Έρευνα: Ίδια επικεφαλίδα για τα μηνύματα. 22 3 1 0 και 23 3 1 0. SSL μηνύματα 22,23 -> τιμή κλειδιού για αναγνώριση των clients 3 1 -> 3.1 -> έκδοση του πρωτοκόλλου SSL. Πείραμα 2: Προσπάθεια σύνδεσης με λάθος κωδικό μήνυμα σφάλματος με επικεφαλίδα 23 3 1 0 0.
...Διαδικασία Σύνδεσης... Παρέμβαση στην connect() και στην send(). Πείραμα: Μπλοκάρισμα και των 6 ΙΡ διευθύνσεων στην connect() που εμφανιζόταν στα προηγούμενα πειράματα Αποτέλεσμα: Επιτυχία σύνδεσης σε αυτές τις ΙΡ Πείραμα 2: Μπλοκάρισμα στην send() των πακέτων με επικεφαλίδες 22 3 1 0 και 23 3 1 0. Αποτέλεσμα 2: Αποτυχία σύνδεσης οποιουδήποτε χρήστη.
...Διαδικασία Σύνδεσης Έκδοση 1.4 Κατανόηση συμπεριφοράς κατά την σύνδεση. 3 περιπτώσεις δικτύου (προαναφέρθηκαν). Αποστολή πακέτων σε 4 Ηπείρους. Ανταλλαγή μηνυμάτων με 22 διαφορετικούς κόμβους.
Login Server Κεντρικό τμήμα του Ρ2Ρ δικτύου Skype. Αποθήκευση πληροφοριών χρηστών Όνομα χρήστη, κωδικός πρόσβασης 2 Login Servers Ολλανδία 212.72.49.141 ns07.customer.eu.level3.net Δανία 195.215.8.141 ns3.dk.net
Εναλλακτικοί Υπερ-κόμβοι
ΝΑΤ & Firewall 2 τρόποι αντίληψης. Χρήση του πρωτοκόλλου STUN Ανταλλαγή δεδομένων με άλλους κόμβους μετά την σύνδεση με τον υπερ-κόμβο. Χρήση πάλι του πρωτοκόλλου STUN Η πληροφορία αποθηκεύεται Στο αρχείο shared.xml
Τελευταία έκδοση Skype Έλεγχος τελευταίας έκδοσης Αποστολή μιας αίτησης HTTP 1.1 GET Skype.com Περιέχει την λέξη κλειδί getlatestversion
Αναζήτηση Χρηστών (1 ος ) 1 ος Τύπος Δικτύου Πείραμα Χρήση νέων τεχνολογιών 3G P2P & Global Indexing Εύρεση χρήστη που έχει συνδεθεί τις τελευταίες 72 ώρες. (Αποδείχθηκε Πειραματικά) Παρατήρηση μόνο των μηνυμάτων που στέλνονται. Αδυναμία παρακολούθησης πακέτου μετά τον υπερ-κόμβο. Την πρώτη φορά ο υπερ-κόμβος επέστρεψε 8 IPs 8 πακέτα στάλθηκαν μετά την απάντηση του υπερ-κόμβου. 16 IPs την δεύτερη φορά. Συνέχεια της διαδικασίας (+=8) μέχρι να βρεθεί ο χρήστης ή μέχρι να βγει το συμπέρασμα ότι δεν υπάρχει Αποτέλεσμα: Μέσος όρος πλήθους κόμβων 22 Συμπέρασμα: Χρόνος εύρεσης 3-4
Αναζήτηση Χρηστών (2 ος ) 2 ος Τύπος Δικτύου Γίνεται ανταλλαγή μηνυμάτων Με υπερ-κόμβους Με απλούς κόμβους που ανταποκρίθηκαν στα UDP πακέτα Διάρκεια Αναζήτησης 5-6
Αναζήτηση Χρηστών (3 ος ) 3 ος Τύπος Δικτύου Γίνεται αποστολή της αίτησης στον υπερκόμβο Αναζήτηση του χρήστη από τον υπερ-κόμβο Δεν γίνεται αποστολή άλλων πακέτων Γνωστό ότι είναι πίσω από ΝΑΤ ή Firewall Λήψη της απάντησης Διάρκεια Αναζήτησης 10-15
Αποθήκευση Αποτελεσμάτων Έστω : 2 χρήστες Α και Β Α NAT & Firewall Β Δημόσια IP διεύθυνση Πείραμα: Ο Β αναζητάει τον Α Διάρκεια πρώτης αναζήτησης 10-11 Διάρκεια επόμενων αναζητήσεων μέσα στις επόμενες μέρες 3-4 Συμπέρασμα : Αποθήκευση προηγούμενων αποτελεσμάτων αναζητήσεων.
Πραγματοποίηση Κλήσης - Τερματισμός Έρευνα και για τους 3 τύπους δικτύων Δημιουργία TCP καναλιού μεταξύ των χρηστών ΚλήσημεχρήστηεκτόςτηςΛίσταςΦίλων Παρόμοια με την αναζήτηση και ακολουθεί κλήση. Χρήστες με δημόσια ΙΡ Χρήση TCP καναλιού από άκρο σε άκρο. Ο ένας χρήστης πίσω από NAT Πραγματοποίηση σύνδεσης μέσω ενδιάμεσου κόμβου με TCP Απευθείας ανταλλαγή μηνυμάτων μέσω UDP Και οι 2 πίσω από ΝΑΤ και Firewall Πραγματοποίηση σύνδεσης μέσω ενδιάμεσου κόμβου με TCP Ανταλλαγή μηνυμάτων μέσω UDP μέσω του ενδιάμεσου κόμβου
Μεταφορά Πολυμεσικών Δεδομένων - Κωδικοποιητές Περίπτωση Δημόσιας ΙΡ και για τους 2 Μεταφορά πακέτων μέσω UDP Παρατηρήθηκαν: 85 πακέτα/s σε δίκτυο χωρίς συμφόρεση Συνολικό εύρος 5 ΚΒ/s Κατά Skype, το εύρος είναι 3-16ΚΒ/s Περίπτωση ΝΑΤ Μεταφορά πακέτων μέσω TCP Μεταφορά με αναμεταδόσεις Μέσω ενδιάμεσου κόμβου Συνολικό εύρος 5.5ΚΒ/s Αν το Firewall το επιτρέπει, τα UDP πακέτα προτιμούνται έναντι των TCP. Χρήση του κωδικοποιητή isac
Μεταφορά Πολυμεσικών Δεδομένων - Κωδικοποιητές Καταστολή Ησυχίας Δεν υποστηρίζεται απο το Skype Όταν κανένας από τους 2 χρήστες δεν μιλάει Γίνεται μεταφορά πακέτων φωνής 2 Πλεονεκτήματα Δυνατότητα ήχου στο παρασκήνιο Διατήρηση του μεγέθους του παραθύρου της σύνδεσης Κλήση σε Αναμονή Επιτρέπεται Αποστολή ενός πακέτου UDP ανά 3 Χρησιμοποιείται για προώθηση TCP πακέτων ως media proxy
Μεταφορά Πολυμεσικών Δεδομένων - Κωδικοποιητές Εύρος Συχνότητας Κωδικοποιητών Χρήση του ΝCH Tone Generator Παρατηρήθηκε το εύρος 50-8.000 Hz Συμφόρηση (Congestion) Έλεγχος ποιότητας σε χαμηλό εύρος Ελάχιστο εύρος για ευδιάκριτη ποιότητα δεδομένων 2 ΚΒ/s Φωνή ακατανόητη 1.5 ΚΒ/s
Keep-Alive Messages Ειδοποίηση της ύπαρξης κόμβου στον υπερ-κόμβο Ένα μήνυμα κάθε 120s
ΣΥΝΕΔΡΙΑΣΗ
Συνεδρίαση 3 χρήστες A, B, C ΚλήσητουΒαπότονΑ Αναμονή του Β και κλήση του C από τον Α Έναρξη συνεδρίασης Ανάληψη της προώθησης από τον Β στον C και το αντίστροφο από τον Α Δοκιμή και στους 3 τύπου δικτύου Ίδια αποτελέσματα, ίδιος οικοδεσπότης Το πιο ισχυρό μηχάνημα γινόταν οικοδεσπότης της συνομιλίας
ΑΛΛΑ ΠΕΙΡΑΜΑΤΑ
Άλλα πειράματα Πολλαπλή σύνδεση από πολλά μηχανήματα ταυτόχρονα Σε αντίθεση με MSN, Yahoo, Google Talk Επιλογή του υπερ-κόμβου σύμφωνα με κανόνες του Skype Όλες οι εφαρμογές Skype έχουν το ιδιο κλειδί κρυπτογράφησης και αποκρυπτογράφησης Χρήση της καλύτερης διαδρομής για την επικοινωνία μεταξύ 2 χρηστών Χρήση του τοπικού δικτύου Χρήση πακέτων ARP για την ανίχνευση διαδικτυακής δραστηριότητας
Σύγκριση με MSN, Yahoo, Google Talk Καθυστέρηση «στόμα-σε-αυτί» Fast Fourier Transform (FFT) Χρήση προγραμμάτων Adelay Cool Edit Pro Αποτελέσματα (μέσοι όροι):
Skype Super Node Map Μηχανισμός επιλογής υπέρ-κόμβου Client πίσω από NAT Δεν γίνεται ποτέ υπέρ-κόμβος Συνδέεται μόνο σε έναν ίδιο υπέρ-κόμβο Ποτέ στον ίδιο Εφαρμογή AutoIT Εργαλείο script για αυτοματοποίηση της εισόδου στο Skype 30 λειτουργίας και 10 μέχρι την επόμενη εκκίνηση Διάρκεια πειράματος 96 ώρες Θεωρητικά αναμενόμενα αποτελέσματα: 8640 προσπάθειες για σύνδεση Πρακτικά αποτελέσματα: 8175 προσπάθειες για σύνδεση 898 μοναδικοί υπερ-κόμβοι σε όλο τον κόσμο
Skype Super Node Map Κατανομή συνδέσεων 83.7% Η.Π.Α. 8.9% Ασία 7.1% Ευρώπη 2855/8153 είχαν πρόθεμα.edu 102 Πανεπιστήμια 20 πρώτοι από τους 894 έλαβαν το 43.8% των συνδέσεων 100 πρώτοι από τους 894 έλαβαν το 70.5% των συνδέσεων
MAP
ΣΥΜΠΕΡΑΣΜΑΤΑ
Συμπεράσματα Αντίληψη ΝΑΤ ή Firewall Χρήση του STUN πρωτόκολλο Παρόμοιες τεχνικές με δικτυακά παιχνίδια Χρήση του TCP πρωτοκόλλου για: Voice streaming protocol Κωδικοποιητές από την GlobalIPSound Κρυπτογραφημένη επικοινωνία Αναζήτηση Ακόμα άγνωστος ο μηχανισμός Χρήση κατακερματισμού και periodic controlled flooding Επικοινωνία με τον login server για κάθε επιτυχημένη/αποτυχημένη αναζήτηση Άγνωστες οι πληροφορίες στον login server λόγω κρυπτογράφησης Εγωιστική εφαρμογή Χρήση όλων των πόρων κατά την διάρκεια κλήσης Εξαναγκασμός μετατροπής της προτεραιότητάς του, σαν διεργασία, σε High Αδυναμία εξαναγκασμού μετατροπής σε υπερ-κόμβο Αδυναμία εμπόδισης μετατροπής σε υπερ-κόμβο
TO BE CONTINUED