Web rtc 핵심 기술에 대한 이해

  • Published on
    28-Jul-2015

  • View
    104

  • Download
    8

Embed Size (px)

Transcript

<p> 1. WebRTC Web Real-Time Communication 2. WebRTC &amp; VOIP 3. WebRTC &amp; VOIP NOT NEW! 4. WebRTC Service Companies Veckon NOW 5. History On Web 6. P2P WebRTC &amp; JINGLE Extensible Messaging and Presence Protocol Voice Streaming Video Streaming File-Sharing Session Initiate &amp; maintain peer to peer connection RTP Real-time Transport Protocol ICE Interactive Connectivity Establishment SDP Session Description Protocol 7. WebRTC &amp; ORTC WebRTC (Shim ) SIP/SDP API Layer 8. WebRTC Roadmap FPWD : First Public Working Draft CR : Candidate Recommendations PR : Proposed Recommenedations Rec : Recommendations 9. Support Web Browser Mobile 29+ 24+ WebVie w 5.x 23+ 22+ 18+ ??? Not Yet AppRTC ???20+ AppRTC Browser 10. Support 11. KEYWORDs P2P SDP ICE NAT TURN STUN Signaling RTP SCTP DTLS 12. Architect 13. P2P 14. P2P Find (+Discovery) Connection (Communication) 15. P2P Super Node Super Node Super Node 16. P2P Server 17. Signaling 18. Signaling 19. ICE ICE Framework (Interactive Connectivity Establishment) A framework for connecting peers Tries to find the best path for each call 20. Session description v= (protocol version number, currently only 0) o= (originator and session identifier : username, id, version number, network address) s= (session name : mandatory with at least one UTF-8-encoded character) i=* (session title or short information) u=* (URI of description) e=* (zero or more email address with optional name of contacts) p=* (zero or more phone number with optional name of contacts) c=* (connection informationnot required if included in all media) b=* (zero or more bandwidth information lines) Time description (mandatory) t= (time the session is active) r=* (zero or more repeat times) z=* (time zone adjustments) k=* (encryption key) a=* (zero or more session attribute lines) Media description (if present) m= (media name and transport address) i=* (media title or information field) c=* (connection information optional if included at session level) b=* (zero or more bandwidth information lines) k=* (encryption key) a=* (zero or more media attribute lines overriding the Session attribute lines) SDP 21. SDP v=0 o=- 7614219274584779017 2 IN IP4 127.0.0.1 s=- t=0 0 a=group:BUNDLE audio video a=msid-semantic: WMS m=audio 1 RTP/SAVPF 111 103 104 0 8 107 106 105 13 126 c=IN IP4 0.0.0.0 a=rtcp:1 IN IP4 0.0.0.0 a=ice-ufrag:W2TGCZw2NZHuwlnf a=ice-pwd:xdQEccP40E+P0L5qTyzDgfmW a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=mid:audio a=rtcp-mux a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:9c1AHz27dZ9xPI91YNfSlI67/EMkjHHIHORiClQe a=rtpmap:111 opus/48000/2 ... 22. v=0 o=- 7614219274584779017 2 IN IP4 127.0.0.1 s=- t=0 0 a=group:BUNDLE audio video a=msid-semantic: WMS m=audio 1 RTP/SAVPF 111 103 104 0 8 107 106 105 13 126 c=IN IP4 0.0.0.0 a=rtcp:1 IN IP4 0.0.0.0 a=ice-ufrag:W2TGCZw2NZHuwlnf a=ice-pwd:xdQEccP40E+P0L5qTyzDgfmW a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=mid:audio a=rtcp-mux a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:9c1AHz27dZ9xPI91YNfSlI67/EMkjHHIHORiClQe a=rtpmap:111 opus/48000/2 ... SDP Session description a=* (zero or more session attribute lines) 23. v=0 o=- 7614219274584779017 2 IN IP4 127.0.0.1 s=- t=0 0 a=group:BUNDLE audio video a=msid-semantic: WMS m=audio 1 RTP/SAVPF 111 103 104 0 8 107 106 105 13 126 c=IN IP4 0.0.0.0 a=rtcp:1 IN IP4 0.0.0.0 a=ice-ufrag:W2TGCZw2NZHuwlnf a=ice-pwd:xdQEccP40E+P0L5qTyzDgfmW a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=mid:audio a=rtcp-mux a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:9c1AHz27dZ9xPI91YNfSlI67/EMkjHHIHORiClQe a=rtpmap:111 opus/48000/2 ... SDP Session description Media description (if present) m= (media name and transport address) 24. Ideal Network Environments 25. Real Network Environments 26. NAT ( Network Address Translation ) Corn NAT Semmetric NAT 27. STUN (Session Traversal Utilities for NAT) 28. TURN (Traversal Using Relays around NAT) 29. UDP : User Datagram Protocol DTLS (Datagram Transport Layer Security) No 3-Way HandShake Simple Header 30. UDP + TCP SCTP (Stream Control Transmission Protocol) 4-Way HandShake Stream Oriented Stream ID Stream Sequence Number Multi Association DATA UP DATA UP MULTI HOMING MULTI Streaming 31. RTP ( Real-time Transport Protocol ) network protocol for delivering audio and video over IP networks RTP IP TCP RTP IP TCP Network RTP Security SRTP 32. WebRTC Connection Sequence Diagram 33. WebRTC Target VOICE VIDEO File Sharing Media Data 34. WebRTC APIs Main APIs MediaStream (aka getUserMedia) RTCPeerConnection RTCDataChannel 35. MediaStream ( getUserMedia ) var constraints = {video: true}; // {video:true, audio:true} function successCallback(stream) { var video = document.querySelector("video"); video.src = window.URL.createObjectURL(stream); } function errorCallback(error) { console.log("navigator.getUserMedia error: ", error); } navigator.getUserMedia(constraints, successCallback, errorCallback); </p>