future internet - webrtc
TRANSCRIPT
Truyền thông thời gian thực
WebRTCTopic: Future Internet
Nguyễn Văn Quyền
Nhữ Bảo Vũ
1
Nội dung trình bày
1
• Giới thiệu tổng quan
• Tính phổ biến và tiềm năng phát triển
• Tính cách mạng của WebRTC
2
• Kiến trúc và kỹ thuật bên trong WebRTC
• Quá trình tín hiệu WebRTC Signaling
• So sánh WebRTC với VoIP truyền thống
3
• Các nền tảng hỗ trợ WebRTC
• Mô hình ứng dụng và thử nghiệm
• Kết luận
2
Giới thiệu tổng quan
WebRTC (Web Real Time Communication) là tập hợp các
tiêu chuẩn và giao thức cho phép các trình duyệt Web thực
hiện trực tiếp các tính năng truyền thông đa phương tiện thời
gian thực như gọi điện, truyền hình, truyền dữ liệu, gửi tin
nhắn bằng các API JavaScript.
3
Giới thiệu tổng quan
Ý tưởng WebRTC được đưa ra bởi nhóm phát triển Google
Hangouts từ năm 2009.
Mục tiêu của dự án là kết nối máy tính, điện thoại, tivi, … và
thực hiện được các cuộc gọi thông qua 1 nền tảng chung.
Việc giao tiếp của chúng ta sẽ dễ hàng hơn và điều này có
thể thay thế các phương phức liên lạc hiện có.
Điểm đột phá của WebRTC là có thể tham gia ngay cuộc hội
thoại ngay trên trình duyệt. (no install + no plugins).
10/02/2015, WebRTC 1.0 chính thức được công bố.
4
Tính phổ biến và tiềm năng phát triển
Tính đến cuối 2013, đã có hơn 1 tỉ thiết bị được kích hoạt sử
dụng WebRTC
Dự báo tăng lên 4 tỷ vào năm 2016, trong đó có khoảng 1,5
tỷ người dùng thường xuyên. @disruptivedean
WebRTC có thể hoạt động trên bất cứ thiết bị nào có cài một
trong các trình duyệt hỗ trợ WebRTC.
Khảo sát: http://www.dialogic.com/en/landing/webrtcsurvey-results.aspx
5
Tính cách mạng của WebRTC
VoIP là một thị trường tương đối đóng, đặc biệt là khi so với
những gì đang diễn ra với các công nghệ trên nền web.
WebRTC làm đơn giản hóa rất nhiều công nghệ cho các nhà
phát triển. Mã nguồn mở và miễn phí.
Tiếp cận được với số đông các nhà phát triển web – một
nhóm lớn hơn nhiều so với các chuyên gia VoIP.
6
Tổng quan kiến trúc WebRTC7
WebRTC API
MediaStream (aka getUserMedia): truy cập audio, video
RTCPeerConnection: giao tiếp audio và video, trao đổi SDP,
chạy thuật toán vượt NAT.
RTCDataChannel: truyền dữ liệu tùy ý peer-to-peer.
8
Media Stream (aka getUserMedia)
<video> trong html5
Ràng buộc: {video: true, audio: true}
9
Media Stream (aka getUserMedia)10
Quá trình tín hiệu WebRTC Signaling
WebRTC sử dụng RTCPeerConnection để streaming dữ liệu qua các trình duyệt,
nhưng cần 1 cơ chế điều phối giao tiếp và gửi thông điệp điều khiển.
Quá trình tín hiệu được sử dụng và trao đổi 3 loại thông tin:
Session control messages: để khởi tạo, đóng phiên truyền thông và báo cáo lỗi.
Network configuration: thông tin mạng bên ngoài, bandwidth, ip và port ?
Media capabilities: chứa thông tin bộ mã hóa, độ phân giải có thể được xử lý bởi trình
duyệt gọi đi và trình duyệt gọi đến.
Việc trao đổi tín hiệu thông tin phải hoàn tất trước khi quá trình streaming peer-to-
peer bắt đầu.
11
Quá trình tín hiệu WebRTC Signaling12
Quá trình tín hiệu WebRTC Signaling13
Quá trình tín hiệu WebRTC Signaling
An RTCSessionDescription
Bản tin SDP
14
Ví dụ khởi tạo RTCPeerConnection15
Các phương pháp truyền tín hiệu
Người phát triển quyết định (*)
16
Kỹ thuật Ưu điểm Yêu cầu phía máy chủ
WebSocket Không yêu cầu 1 hạ tầng
tín hiệu
Máy chủ WebSocket được cài
đặt theo giao thức riêng
XHR Không yêu cầu 1 hạ tầng
tín hiệu
Máy chủ Web cài đặt theo giao
thức riêng
SIP over WebSocket Dễ dàng tương tác với
SIP
SIP Registrar/Proxy Server có
hỗ trợ SIP over WebSocket
XMPP/Jingle Dễ dàng tương thích với
XMPP clients
XMPP Server có hỗ trợ XMPP
WebSocket transport
Data Channel Độ trễ tín hiệu thấp và
nâng cao bảo mật
WebSocket hoặc WebServer
cài đặt thiết lập Data Channel
Kênh dữ liệu RTCDataChannel
Giao tiếp dữ liệu bất kỳ peer-to-peer
Same API as WebSockets
Ultra-low latency
Unreliable or reliable
Secure
17
Mô hình lý tưởng18
Mô hình thực tế có STUN và TURN19
Security
Bắt buộc mã hóa đối với media và data
Secure UI, explicit opt-in
Sandboxed, no plugins
20
So sánh WebRTC với VoIP truyền thống
Classic VoIP WebRTC
Signaling SIP, XMPP or H.323 in most cases Undefined
Media
transport
RTP/RTCP RTP/RTCP
Security SRTP in SIP,H.235 in H.323 SRTP
NAT
traversal
STUN/TURN/ICE in SIP,H.450.x in
H.323
STUN/TURN/ICE
Video
codecs
H.263, H.264 VP8, H.264
Voice
codecs
G.7xx series of codecs G.711, iLBC, iSAC
Network IPV4 / IPV6
21
Các nền tảng hỗ trợ WebRTC
Browsers:
Chrome
Chrome for Android
Firefox
Opera
Native Java and Objective-C bindings
Phones and more
sipML5 open source JavaScript SIP client
Phono open source JavaScript phone API
Zingaya embeddable phone widget
22
Network topologies
Peer to peer: one-to-one call
Fello.in – Tư vấn khách hàng, khám bệnh trực tuyến
23
Network topologies
Mesh: small N-way call
Room43.in – Phòng họp trực
tuyến
24
Network topologies
Star: medium N-way call
Meetingui.com phục vụ học trực tuyến
25
Network topologies
MCU: large N-way call
26
27
Kết luận
WebRTC sẽ trở lên phổ biến và thân thiện trong truyền thông trong
khoảng 10 năm tới
Nó đã sẵn sàng và đang được sử dụng (WebRTC 1.0, February 10, 2015)
“Khuynh hướng” tiếng nói và truyền hình được đưa vào Web và các ứng
dụng
Trao đổi dữ liệu thời gian thực
Là một hệ sinh thái mới cho các nhà phát triển, các công ty viễn thông,
nhà cung cấp dịch vụ cloud.
Chi phí thấp, truyền thông audio video chất lượng cao.
Đa dạng nền tảng, không chỉ chạy trên các trình duyệt. Hàng tỉ thiết bị và
hàng tỉ người dùng !
28
Tài liệu tham khảo
Twitter: @webrtc, @disruptivedean, @dialogic, @nhubaovu
WebRTC presentation at Google I/O 2013
http://io13webrtc.appspot.com/
Dialogic WebRTC Impact Survey, 2013
http://www.dialogic.com/en/landing/webrtcsurvey-results.aspx
Google Groups (discuss-webrtc)
https://groups.google.com/forum/#!forum/discuss-webrtc
The leading authority on WebRTC
https://bloggeek.me/webrtc/
Getting Started with WebRTC
http://www.html5rocks.com/en/tutorials/webrtc/basics/
29