WebRTC Web Real Time Communications WebRTC is a new front in the long war for an open and unencumbered web. --Brendan Eich, inventor of JavaScript MATHE GIA JAVASCRIPT API , HTML 5, SIP, WEBSOCKET, ARXITEKTONIKI DIKTYOY, VOIP
Τι είναι το webRTC?? Νεά τεχνολογία στις επικοινωνίες μέσω IP, VoIP στους browsers Η ΑΠΑΝΤΗΣΗ ΤΗΣ GOOGLE ΣΤΟ SKYPE Βίντεο, φωνή, ανταλλαγή αρχείων 3 Javascript APIs ενσωματωμένα στους browsers Peer-to-peer τεχνολογία Θα πεις για peer to peer javascript, λίγο ιστορικά, σύγκριση με skype
Γιατί να το προτιμήσουμε? Δεν απαιτούνται plug-ins Δεν απαιτείται κατέβασμα εφαρμογής Οικονομία μνήμης, δεν επιβαρύνουμε τους υπολογιστές μας! Εύχρηστο και φιλικό το περιβάλλον του browser Ασφαλές Απλά σερφάρουμε στη διεύθυνση που θέλουμε!
VoIP Vs WebRTC
Bασικές λειτουργίες Πρόσβαση στα δεδομένα Ανταλλαγή αρχείων βίντεο και ήχου σε πραγματικό χρόνο Ανταλλαγή άλλων δεδομένων MediaStream( ή αλλιώς getUserMedia) RTCPeerConnection RTCDataChannel Πως επιτυγχάνονται? JavaScript APIS !
Αρχιτεκτονική webRTC
MediaStream API Αφηρημένη αναπαράσταση των ροών των δεδομένων ήχου και βίντεο Local media stream Remote media stream Δίνει τη δυνατότητα του χειρισμού αυτών μέσω των video και audio engines Κάνε print screen ένα κομμάτι κώδικα που αφορά mediastream api, Εδώ θα πεις για codecs, echo cancellations, συγχρονισμό πχ ήχου και εικόνας σε ένα βίντεο, μείωση θορύβου, καθάρισμα εικόνας, μετατροπή σε κατάλληλη μορφή για μεταφορά τους, κάνε print screen κώδικα
Video and Audio Engines Κάλυψη χαμένων πακέτων δεδομένων Jitter buffering Απόρριψη θορύβου Συγχρονισμός Codecs
Codecs
VP8 video codec Yψηλή ποιότητα παραγόμενου video Υψηλή συμπίεση Χαμηλή πολυπλοκότητα (χρήση CPU) Δυνατότητα ενσωμάτωσης σε hardware “Open source” και δωρεάν Ευρείας αποδοχής
G.711 audio codec Απόλυτη ποιότητα ήχου. Ελάχιστες απαιτήσεις υπολογιστικής ισχύος για την αποκωδικοποίηση. Για full duplex ομιλία απαιτεί τουλάχιστον 128 kbps εύρους ζώνης.
Mεταφορά Δεδομένων
TCP VS UDP Αξιόπιστο ordering Έλεγχος σφαλμάτων Επαναποστολή Χαμηλή ταχύτητα Μη αξιόπιστο Ταχύτατη μετάδοση TCP socket UDP socket
TCP VS UDP
Navigator.getUserMedia
RTCPeerConnection API Signaling (!!!) Eπικοινωνία μεταξύ των peers Ασφάλεια Διαχείριση του bandwidth Εύρεση καναλιών Διάσχιση τειχών προστασίας …..
Signaling Η σημαντικότερη λειτουργία που πραγματοποιεί το RTCPeerConnection API Εύρεση του επιθυμητού peer Πραγματοποίηση διασύνδεσης Έλεγχος επικοινωνίας ΔΕΝ υπάρχουν standards (ευελιξία στη χρήση πρωτοκόλλων, webSocket, SIP) Περιγραφή του Session (Session Description Protocol) Θα πεις για Sip, πραγματοποίηση διασυνδεσης μέσω καναλιού που δίνεται από τον κώδικα στον webserver mesw websocket h xmlhttp request
Signaling
Signaling Eχουμε ανταλλαγή πληροφόριών σε 2 επίπεδα! Χαρακτηριστικά του δικτύου για πραγματοποίηση peer to peer διασύνδεσης Χαρακτηριστικά των μεταφερόμενων δεδομένων Υποστηριζόμενα formats Είδος ροών που θα σταλούν
Offer/Answer
RTCPeerConnection
NAT Network Address Translator Επιτρέπει διασύνδεση μεταξύ ιδιωτικών και δημόσιων δικτύων
Διάσχιση των NAT Διεύθυνση IP δημόσια ή ιδιωτική?? Χρηση των διακομιστών STUN ΑΠΟΤΥΧΙΑ? ΤURN διακομιστή! ICE framework για διασύνδεση Χρήση πακέτων UDP ΤCP Stun einai server kai exei I google tetoios, nat einai network adress translator pairnei tis idiwtikes dieuthinseis ip kai tis kanei dimosies, etsi mporoyn polloi ypologistes na syndethoun sto diktyo mesw mono mias dieuthinsis
Διάσχιση των ΝΑΤ Κάθε υπολογιστής ή συσκευή που ανήκει σε ένα δίκτυο, σε αναλογία με την διεύθυνση του σπιτιού μας , αναγνωρίζεται από μια διεύθυνση ip (internet protocol) . Το θέμα είναι ότι συνήθως αυτή η διεύθυνση είναι ιδιωτική, δεν είναι ορατή στον έξω κόσμο, οπότε πρέπει με κάποιο τρόπο να σπάσει αυτό το τείχος προστασίας.Οι δημόσιες διευθύνσεις γίνονται γνωστές στο δίκτυο μέσω των router Το τείχος προστασίας ουστιαστικά network address translator μεταφράζει τη διεύθυνση μας σε μια δημόσια, έτσι όταν κά
STUN VS TURN Simple Traversal of UDP through NAT Άμεση διασύνδεση των peers Reflexive Καλύπτει τα κενά του stun server Απαιτείται τεράστιο bandwidth! Relay STUN SERVER TURN SERVER
STUN VS TURN
Συνολικό διάγραμμα διασύνδεσης Edw mathe gia sdp, turn kai stun
RTCDataChannel API Διεπαφή για μεταφορά αρχείων Peer to peer Yψηλός ρυθμός μετάδοσης και λίγα σφάλματα Datachannel vs websocket gia metafora arxeiwn,
RTCDataChannel API
Σημαντικοί παράγοντες Μέγεθος Αρχείου Ταχύτητα ή αξιοπιστία UDP VS TCP Μέγεθος των “chunks” Συνηθέστερα 16 kB
Ζητήματα Ασφαλείας Πρωτόκολλα ασφάλειας DTLS,SRTP, ΗTTPS Kρυπτογράφηση όλων των στοιχείων που περνούν από το κανάλι
WebRTC Leaks!! Ανίχνευση τοπικής διεύθυνσης IP !!!! Μπορεί να οδηγήσει πιθανούς hackers στα δεδομένα μας!
Mozzilla Firefox Hello (μια εφαρμογή του webRTC) Hello!!:D
Mozilla Firefox Hello!
Mozilla Firefox Hello Tελευταία Εκδοση του Firefox browser Συμβατό με τους πιο διαδεδομένους browsers Δυνατότητα λίστας επαφών Diagrafi pliroforiwn me teramtismo klisis, den einai anagi I dimiourgia logariasmou, topiki apothikeysi twn epafwn
Εφαρμογές WebRTC στο μέλλον Αναγνώριση απόστασης χρήστη από την οθόνη και βελτίωση εικόνας Online gaming Live support σε ιστοσελίδες
Ευχαριστω για την προσοχη σας!