Διαδικτυακή διανομή πολυμεσικού περιεχομένου Γιώργος Τζιρίτας Τμήμα Επιστήμης Υπολογιστών http://www.csd.uoc.gr/~tziritas 1
Διανομή πολυμεσικού περιεχομένου Τεράστιο μέγεθος : Ένα αντικείμενο πολυμέσων έχει υψηλό ρυθμό δεδομένων και μακρά διάρκεια, σε συνδυασμό τεράστιο όγκο δεδομένων. Εντατική χρήση εύρους ζώνης : Η ροή απαιτεί συνεχείς αναγνώσεις από το δίσκο και σημαντικό εύρος ζώνης δικτύου, επί μακρό χρονικό διάστημα. Πλούσια διαδραστικότητα BBC, Ολυμπιακοί Αγώνες 2012 Μέγιστος ρυθμός 700 Gbps Μέγιστος ημερήσιος όγκος 2.8 Petabyte 2
Προσωρινή αποθήκευση Αποθήκευση δεδομένων που χρησιμοποιούνται συχνά σε διαθέτες μεσολάβησης κοντά στη ζήτηση Ενισχύει τη διαθεσιμότητα των αντικειμένων Διαφορετικό από τα συμβατικά αντικείμενα του Ιστού: Ένα ηχητικό / βίντεο αντικείμενο σπάνια ενημερώνεται Η προσωρινή εξ ολοκλήρου αποθήκευση κάθε αντικειμένου πολυμέσων σε ένα μεσολαβητή δεν είναι πρακτική 3
Προσωρινή αποθήκευση 4
Αποθήκευση σε ολισθαίνοντα διαστήματα Αποθήκευση ενός αντικειμένου σε ολισθαίνοντα διαστήματα για να διευκολύνει διαδοχικές προσπελάσεις και να μειώσει σημαντικά την κατανάλωση εύρους ζώνης του δικτύου και την καθυστέρηση εκκίνησης για τις επόμενες προσπελάσεις Υψηλές απαιτήσεις εύρους ζώνης για το δίσκο 5
Αποθήκευση προθέματος / τμήματος Αποθήκευση του αρχικού τμήματος ενός αντικειμένου, του προθέματος Ακολουθεί η κατάληξη, το επίθεμα. Μείωση της καθυστέρησης εκκίνησης Γενίκευση με τμηματοποίηση των αντικειμένων Καλή επιλογή η αποθήκευση τμημάτων-ορόσημα, γιατί παρέχουν ταυτόχρονα σύνοψη του περιεχομένου 6
Διαίρεση του ρυθμού Όλοι οι παραπάνω αλγόριθμοι προσωρινής αποθήκευσης συνεπάγονται διαμέριση στο χρόνο των αντικειμένων πολυμέσων. Η αποθήκευση με διαίρεση του ρυθμού διαμερίζει το ρυθμό Είναι ελκυστική για ροές μεταβλητού ρυθμού Μέσω του δικτύου κορμού πρέπει να παραδοθεί σχεδόν σταθερός ρυθμός Βελτίωση της αξιοποίησης του δικτύου κορμού με την κράτηση των πόρων 7
Προεξομάλυνση Χρήση ενταμιευτή στο δέκτη Μέγεθος πλαισίων Σταλθέντα Συνθήκη για ενταμιευτή Προγραμματισμός για γνωστά μεγέθη πλαισίων 8
Σύγκριση αλγορίθμων προσωρινής αποθήκευσης Z.-N. Li, M. Drew, J. Liu, Fundamentals of Multimedia 9
Δίκτυα διανομής περιεχομένου (CDN) Βήμα 1. Ο χρήστης ζητά περιεχόμενο από τον πάροχο, καθορίζοντας τη διεύθυνση URL και η αίτηση απευθύνεται στο διακομιστή προέλευσής του. Βήμα 2. Όταν ο διακομιστής προέλευσης λαμβάνει την αίτηση, αποφασίζει για την παροχή μόνο το βασικού περιεχομένου. Βήμα 3. Για την εξυπηρέτηση περιεχομένου με υψηλές απαιτήσεις σε εύρος ζώνης και συχνά ζητούμενο, ο διακομιστής προέλευσης ανακατευθύνει το αίτημα του χρήστη στον πάροχο CDN. Βήμα 4. Χρησιμοποιώντας τον αλγόριθμο χαρτογράφησης, ο πάροχος CDN επιλέγει το διακομιστή ρεπλίκα. Βήμα 5. Ο επιλεγμένος διακομιστή εξυπηρετεί το χρήστη, παρέχοντας αντίγραφο του αιτουμένου αντικειμένου. 10
Ευρυεκπομπή / πολυεκπομπή για ετερογενείς χρήστες Η εγγενής ανομοιογένεια του Διαδικτύου αποτελεί άλλη μία πρόκληση για πολυεκπομπή πολυμέσων. Σε παραδοσιακά συστήματα προσαρμογής : ο αποστολέας προσαρμόζει το ρυθμό μετάδοσής του σύμφωνα με κάποιες αναφορές από το δέκτη. Σε ένα περιβάλλον ευρυεκπομπής / πολυεκπομπής : η παραδοσιακή λύση απέχει από το βέλτιστο, επειδή δεν υπάρχει ένας ρυθμός-στόχος για μια ομάδα ετερογενών χρηστών. Επομένως, είναι απαραίτητο να χρησιμοποιηθεί πολυεκπομπή με πολλαπλούς ρυθμούς. Από την άποψη της πηγής των πολυμέσων, οι ροές πολλαπλών ρυθμών μπορεί να παραχθούν με δύο μεθόδους : αντιγραφής πληροφοριών, αποσύνθεσης πληροφοριών. Αντιγραφή και αποσύνθεση μπορεί να υλοποιηθούν μέσω μετακωδικοποίησης και κλιμακούμενης κωδικοποίησης ήχου / βίντεο, αντίστοιχα. 11
Αντίγραφα ροών Εξισορρόπηση μεταξύ της πολυεκπομπής με ενιαίο ρυθμό και πολλαπλών μία-προς-μία συνδέσεων. Η σκοπιμότητα είναι απολύτως δικαιολογημένη σε ένα τυπικό περιβάλλον πολυεκπομπής, όπου το εύρος ζώνης των δεκτών μπορεί να ομαδοποιηθεί, λόγω τυπικών διεπαφών πρόσβασης στο Διαδίκτυο. Πρωτόκολλο Ομαδοποίησης Αποστολών (Destination Set Grouping) Κάθε χρήστης εγγράφεται για τη ροή που ταιριάζει καλύτερα με το εύρος ζώνης του. Παρακολουθεί περιοδικά τη λήψη βίντεο και στέλνει αναφορές στον αποστολέα. Η ροή στη συνέχεια ελέγχεται εντός προκαθορισμένων ορίων. Λόγω απλότητας, τα αντίγραφα ροών έχουν υποστηριχθεί από πολλά εμπορικά προϊόντα. 12
YouTube Βίντεο H.264/MPEG-4 AVC Στερεοφωνικός ήχος AAC 13
Πολυεκπομπή πολλών στρωμάτων Σε κλιμακούμενο βίντεο, ο δέκτης καθοδηγεί την επιλογή στρώματος Receiver-driven Layered Multicast (RLM) Ο αποστολέας μεταδίδει κάθε στρώμα βίντεο πάνω από μια ξεχωριστή ομάδα πολυεκπομπής. Ο αριθμός των στρωμάτων, καθώς και ο ρυθμός τους είναι προκαθορισμένα. Η προσαρμογή πραγματοποιείται από το χρήστη σε διερευνητική βάση. Ο χρήστης εγγράφεται σε τακτά χρονικά διαστήματα στην ομάδα σε υψηλότερο στρώμα για να διερευνήσει το διαθέσιμο εύρος ζώνης. Εάν η απώλεια πακέτων υπερβεί ένα ανεκτό όριο (συμφόρηση), ο χρήστης θα πρέπει να αποχωρήσει από την ομάδα, αλλιώς θα μείνει στο νέο επίπεδο συνδρομής. 14
Πολυεκπομπή πολλών στρωμάτων Ένα μειονέκτημα του RLM είναι ότι ένας πειραματιζόμενος χρήστης μπορεί να προκαλέσει απώλειες πακέτων σε άλλους που μοιράζονται την ίδια στενή σύνδεση. Αυτές οι απώλειες συμβαίνουν συχνά, εάν οι χρήστες εκτελούν ασυντόνιστα πειράματα. Το RLM ενσωματώνει ένα κοινό μηχανισμό μάθησης για να λύσει αυτό το συχνά εμφανιζόμενο πρόβλημα. Σε κοινόχρηστη μάθηση, ένας χρήστης ενημερώνει όλους τους άλλους συμμετέχοντες για τη διεξαγωγή διερευνητικού πειράματος, και άλλοι αποφεύγουν τη διεξαγωγή πειραμάτων στο ενδιάμεσο χρονικό διάστημα. Αυτό αποφεύγει την παρερμηνεία της κυκλοφοριακής συμφόρησης, αλλά μπορεί να μειώσει την επεκτασιμότητα του RLM και να αυξήσει σημαντικά το χρόνο σύγκλισης. 15
Πρωτόκολλο ελέγχου συμφόρησης Receiver-driven Layered Congestion Control (RLC) Τα κοινά πειράματα μεταξύ των δεκτών συγχρονίζονται και ο ρυθμοί των στρωμάτων βρίσκονται σε ένα προς δύο σχέση. Αυτό οδηγεί σε μια εκθετική μείωση του εύρους ζώνης σε περίπτωση απωλειών (πριονωτή συμπεριφορά). Συνδυάζεται καλύτερα με το πρωτόκολλο TCP-Friendly Rate Control (TFRC). 16
Πολυεκπομπή μέσω δικτύου επικάλυψης Τα τελικά συστήματα συμμετέχουν στην πολυεκπομπή μέσω ενός δικτύου επικάλυψης. Το δίκτυο πρέπει να οργανωθεί ώστε να ικανοποιεί τα ακόλουθα κριτήρια: Αποτελεσματικότητα επικάλυψης (εύρος ζώνης, καθυστέρηση) Κλιμακωσικότητα (μικρή επιβάρυνση από μεγάλη κλίμακα) Αυτο-οργάνωση (προσαρμογή σε αλλαγές και αυτο-βελτίωση) Περιορισμοί κόμβων 17
Πολυεκπομπή τελικών συστημάτων End-System Multicast Χρησιμοποιείται ένα πρωτόκολλο επικάλυψης βασισμένο σε δομή δένδρου. Η ρίζα βρίσκεται στην πηγή. Βελτιστοποίηση ως προς το εύρος ζώνης πρωτίστως και δευτερευόντως ως προς την καθυστέρηση. Διαχείριση ομάδας Κάθε κόμβος διατηρεί πληροφορίες σχετικά με ένα μικρό τυχαίο υποσύνολο μελών, και πληροφορίες σχετικά με τη διαδρομή από την πηγή στον εαυτό του. Δυναμική συμμετοχής μελών Βαθμιαία αποχώρηση κόμβων Προσαρμογή απόδοσης Παρακολούθηση του ρυθμού ως προς αυτόν της πηγής Επιλογή γονέα Όταν ένας κόμβος συνδέεται, ή αλλάζει γονέα, δοκιμάζει ένα τυχαίο υποσύνολο των κόμβων για (1) τη δυναμικότητα και την καθυστέρηση από την πηγή (2) αν είναι κορεσμένος και (3) αν είναι απόγονός του. 18
Πολυδενδρική δομή πολυεκπομπής 19
Ομότιμοι κόμβοι Πρωτόκολλα ροής δεδομένων με ομότιμους κόμβους και τυχαίες τοπολογίες πλέγματος Σε αντίθεση με την πολυεκπομπή σε δομή δένδρου δεν κατασκευάζεται μια σαφής δομή για τη μετάδοση των δεδομένων. Αλγόριθμος διαδόσεων Κάθε κόμβος διατηρεί ένα σύνολο συνεργατών που περιοδικά ανταλλάσσουν πληροφορίες για τη διαθεσιμότητα των δεδομένων. Ο κόμβος μπορεί στη συνέχεια να ανακτήσει τα διαθέσιμα δεδομένα από έναν ή περισσότερους εταίρους, ή να προμηθεύσει τα διαθέσιμα στοιχεία στους εταίρους. Ο κόμβος τραβάει δεδομένα μόνο αν δεν έχει ήδη. Επειδή τα δεδομένα μπορεί να είναι διαθέσιμα σε πολλούς εταίρους, αποφεύγονται αστοχίες λόγω αποχώρησης ενός κόμβου. Οι τυχαιοποιημένες συνεργασίες επιτυγχάνουν πλήρη αξιοποίηση του διαθέσιμου εύρους ζώνης. Ανταπόκριση στην κλίμακα μεγέθους ομάδας, καθώς η μεγαλύτερη ζήτηση παράγει επίσης περισσότερους πόρους. 20
Ομότιμοι κόμβοι : CoolStreaming Το πρώτο σύστημα μετάδοσης με ομότιμους κόμβους 21
CoolStreaming : χάρτης ενταμίευσης Η ροή βίντεο διαιρείται σε τμήματα ίδιου μήκους, και η διαθεσιμότητα καταγράφεται στο χάρτη ενταμίευσης. Κάθε κόμβος κοινοποιεί τη διαθεσιμότητα στους εταίρους, ώστε να μπορεί να προγραμματισθεί η ανταλλαγή. Συγχρονισμός της αναπαραγωγής BitTorrent CoolStreaming 22
CoolStreaming : προγραματισμός Περιορισμοί αλγορίθμου προγραμματισμού : Προθεσμία αναπαραγωγής για κάθε τμήμα. Ετερογένεια εύρους ζώνης ροής από τους εταίρους. Υπολογισμός του αριθμού των πιθανών προμηθευτών για κάθε τμήμα. Καθορισμός του προμηθευτή κάθε τμήματος αρχίζοντας από εκείνα με ένα μόνο δυνητικό προμηθευτή, μετά αυτά με δύο, και ούτω καθεξής. Μεταξύ των πολλών δυνητικών προμηθευτών, επιλέγεται εκείνος με το υψηλότερο εύρος ζώνης και αρκετό διαθέσιμο χρόνο. Ανίχνευση αποχώρησης κόμβων και θεραπεία, αναζήτηση νέων μελών Κάθε κόμβος διατηρεί ένα σταθερό αριθμό των εταίρων Κάθε κόμβος διερευνά τους εταίρους καλύτερης ποιότητας 23
Μετάδοση με HTTP Κρίσιμα ζητήματα σε συστήματα ομότιμων κόμβων: Απαιτείται η εγκατάσταση εξειδικευμένου λογισμικού. Δυσκολία για τους παρόχους περιεχομένου να ελέγχουν τα πνευματικά δικαιώματα. Απαιτείται η συνεισφορά σε πόρους όλων των συμμετεχόντων. Υπάρχουν θέματα ασφάλειας και εμποδίων από τείχη προστασίας. Το HTTP μπορεί να αντιμετωπίσει αυτά τα προβλήματα, αν και δεν είναι σχεδιασμένο για μετάδοση ροής. Το κλειδί για την υποστήριξη της ροής από το HTTP είναι η τμηματοποίηση της συνολική ροής πολυμέσων σε μια σειρά από μικρά αρχεία. 24
Μετάδοση μέ HTTP HTTP δεν διατηρεί την κατάσταση της συνεδρίας στο διακομιστή, δεν επιβάλλει σημαντικό κόστος για τους πόρους του διακομιστή, πολύ διαφορετική από ροή RTP / RTCP / RTSP. Χρήση TCP. Ο χρήστης μπορεί να κρατήσει ένα αρχείο της προόδου της αναπαραγωγής του. Η προοδευτική λήψη επιτρέπει στο χρήστη να αναζητήσει μια συγκεκριμένη θέση στη ροή με τη λήψη του αντίστοιχου αρχείου. HTTP ροής έχει εφαρμοστεί σε εμπορικά προϊόντα. Netflix, Youtube, Hulu Η χρήση ροής HTTP επωφελείται από την ταχεία επέκταση παραγωγής CDNs και από την πτώση των τιμών τους. 25
DASH (Dynamic Adaptive Streaming) Το πρότυπο Δυναμικής Προσαρμογής Ροής μέσω HTTP έχει αναπτυχθεί από την ομάδα MPEG για λόγους διαλειτουργικότητας. Σε ετερογενή δίκτυα και συσκευές απαιτείται επίσης η ροή να είναι δυναμική και προσαρμοζόμενη. Οι εργασίες σχετικά με το DASH ξεκίνησαν το 2010 και το πρότυπο δημοσιεύθηκε επίσημα τον Απρίλιο του 2012. Στο DASH, η ροή βίντεο κωδικοποιείται και διαιρείται σε πολλαπλά τμήματα: τμήματα αρχικοποίησης που περιέχουν τις απαιτούμενες πληροφορίες για τον αποκωδικοποιητή, τμήματα των μέσων με τα δεδομένα και το σημείο πρόσβασης στη ροή. Η Περιγραφή της Παρουσίασης (MPD) δίνει τη σχέση των τμημάτων και πώς διαμορφώνουν μια παρουσίαση βίντεο, το οποίο διευκολύνει την προσκόμιση τμημάτων για συνεχή αναπαραγωγή. 26
MPEG-DASH 27
MPEG-DASH 28
DASH Περιγραφή παρουσίασης 29
DASH Περιγραφή παρουσίασης <MPD> <BaseURL>http://www.baseurl_1.com</BaseURL>//Destination URL(s) <Period> <AdaptationSet>//Video Set <Representation bandwidth= 4190760" height= 1080" width= 1920"> <SegmentInfo>... </SegmentInfo>//Quality_1 </Representation> <Representation bandwidth= 2073921" height= 720" width= 1280"> <SegmentInfo>... </SegmentInfo>//Quality_2 </Representation> </AdaptationSet> <AdaptationSet>//Audio Set <Representation bandwidth= 127234" samplerate= 44100"> <SegmentInfo>... </SegmentInfo>//Quality_1 </Representation> </AdaptationSet> </Period> </MPD> 30
DASH Ο χρήστης μπορεί να χρησιμοποιήσει έναν αλγόριθμο προσαρμογής για να επιλέξει τα κατάλληλο επίπεδο ήχου και βίντεο. Type Server Client Adobe Dynamic streaming Flash media server Flash media player Apple HTTP Live streaming Generic HTTP servers QuickTime/iOS player Microsoft Live smooth streaming Internet information services (IIS) Silverlight player 31
DASH Πρόσθετες λειτουργίες Επιλογή ροής (ήχος από διαφορετικές γλώσσες, βίντεο από διαφορετικές οπτικές γωνίες, υπότιτλοι από διαθέσιμες γλώσσες, εναλλαγή ρυθμού) Τμήματα μεταβλητής διάρκειας Πολλαπλές διευθύνσεις URL : το ίδιο περιεχόμενο μπορεί να είναι διαθέσιμο σε πολλές διευθύνσεις URL, ώστε ο χρήστης να μπορεί να μεγιστοποιήσει το διαθέσιμο εύρος ζώνης Υποστήριξη Κλιμακώσιμης Κωδικοποίησης Βίντεο (SVC) και Βίντεο Πολλών Όψεων (MVC) Ένα ευέλικτο σύνολο περιγραφέων: για την περιγραφή της διαβάθμισης του περιεχομένου, χαρακτηριστικά προσβασιμότητας, οπτικές γωνίες κάμερας, κ.α. Μετρήσεις ποιότητας για αποστολή αναφοράς στο διακομιστή 32