+-
WebRTC权威指南
作者: Alan B. Johnston / Daniel C. Burnett
原作名: WebRTC: APIs and RTCWEB Protocols of the HTML5 Real-Time Web
译者: 声网Agora.io
出版年: 2016-8
ISBN: 9787111547150

内容简介  · · · · · ·

WebRTC和标准主要作者联袂撰写,互联网实时通信技术的*威指南

全方位深入解读标准的方方面面,阐释WebRTC相关概念、技术及*佳实践,包含大量的演示应用、示例代码、各类数据和图表 ??

本书是互联网实时通信开发者和技术决策者的*威参考指南。作者Daniel C. Burnett博士是WebRTC标准的主要作者,在书中对标准的方方面面做了精确到位的介绍。Alan Johnston 博士则是今日通信业核心标准SIP的主要作者,多年的行业实践和全局视野让他能够深入浅出地给出WebRTC相关技术问题和发展方向的真知灼见。

本书循序渐进地介绍了WebRTC,阐述了诸如本地媒体、信令等概念,并通过独立可运行的演示程序来介绍对等连接。此外,还详细描述了浏览器媒体协商过程,如何使用Wireshark来监控WebRTC协议的注意事项以及例子捕捉等。书中给出了大量示...

(展开全部)

WebRTC和标准主要作者联袂撰写,互联网实时通信技术的*威指南

全方位深入解读标准的方方面面,阐释WebRTC相关概念、技术及*佳实践,包含大量的演示应用、示例代码、各类数据和图表 ??

本书是互联网实时通信开发者和技术决策者的*威参考指南。作者Daniel C. Burnett博士是WebRTC标准的主要作者,在书中对标准的方方面面做了精确到位的介绍。Alan Johnston 博士则是今日通信业核心标准SIP的主要作者,多年的行业实践和全局视野让他能够深入浅出地给出WebRTC相关技术问题和发展方向的真知灼见。

本书循序渐进地介绍了WebRTC,阐述了诸如本地媒体、信令等概念,并通过独立可运行的演示程序来介绍对等连接。此外,还详细描述了浏览器媒体协商过程,如何使用Wireshark来监控WebRTC协议的注意事项以及例子捕捉等。书中给出了大量示例代码、各类数据和图表,所有的代码都可以在http://webrtcbook.com/code3.html免费下载,你还可以在http://demo.webrtcbook.com上试用。

作者简介  · · · · · ·

Alan B. Johnston博士拥有超过13年的SIP、IP语音(Voice over IP,VoIP)和互联网通信经验,参与编著了SIP规范和许多其他IETF RFC,其中包括ZRTP媒体安全协议。他著有四本关于互联网通信、SIP和安全的技术类畅销书,还有一本科技惊险小说《Counting from Zero》,其中传授了互联网和计算机安全的基础知识。他是SIP论坛的董事会成员,拥有电气工程专业的学士和博士学位。Alan是IETF RTCWEB工作组的积极参与者。他目前是Avaya公司的杰出工程师和圣路易斯华盛顿大学的兼职讲师。他拥有很多摩托车,并酷爱骑行摩托,他还为一个机器人团队提供辅导,并乐享其中。

Daniel C. Burnett博士拥有10多年的计算机标准工作经验,曾编写和编辑了W3C的许多标准,这些标准为当今的大多数自动化交互式语音...

(展开全部)

Alan B. Johnston博士拥有超过13年的SIP、IP语音(Voice over IP,VoIP)和互联网通信经验,参与编著了SIP规范和许多其他IETF RFC,其中包括ZRTP媒体安全协议。他著有四本关于互联网通信、SIP和安全的技术类畅销书,还有一本科技惊险小说《Counting from Zero》,其中传授了互联网和计算机安全的基础知识。他是SIP论坛的董事会成员,拥有电气工程专业的学士和博士学位。Alan是IETF RTCWEB工作组的积极参与者。他目前是Avaya公司的杰出工程师和圣路易斯华盛顿大学的兼职讲师。他拥有很多摩托车,并酷爱骑行摩托,他还为一个机器人团队提供辅导,并乐享其中。

Daniel C. Burnett博士拥有10多年的计算机标准工作经验,曾编写和编辑了W3C的许多标准,这些标准为当今的大多数自动化交互式语音应答(Interactive Voice Response,IVR)系统奠定了基础。由于在自动语音识别(声音辨别)领域的标准制定方面贡献卓越,他曾两度荣获由《Speech Tech》杂志颁发的久负盛名的“语音杰出人物”奖。作为PeerConnection和getUserMedia W3C WEBRTC规范的编辑以及IETF的参与者,Daniel从一开始就投入到了这个令人振奋的新领域。他目前是Tropo的首席科学家和Voxeo(Aspect旗下的一家公司)的标准总监。闲暇时间,Daniel喜欢和家人及儿子的童子军团一起露营。

关注Alan和Daniel的推特账号@alanbjohnston和@danielcburnett,以及他们的Google+账号[email protected][email protected]

有关未来版本以及发布后的更新和变更的信息,请访问http://webrtcbook.com。

Facebook:http://www.facebook.com/webrtcbook

Google+:http://plus.google.com/102459027898040609362

致谢

我们要感谢技术审校者Alex Agranovsky、Carol Davids、Emil Ivov、David Kemp、Henry

Sinnreich、Harvey Waxman和Dan York。我们也要感谢Marina Burnett和Chris Comfort的校对和审校。同时我们也要感谢家人的鼓励和支持。

最后,我们要感谢在万维网联盟(W3C)的同事们和正在为制定WebRTC标准而不懈努力的国际互联网工程任务组(IETF)。

感谢声网(Agora.io)全体员工,特别是陈功、李伟和王骅的校对及评论。

目录  · · · · · ·

中文版序言
第3版序言
第2版序言
第1版序言
作者简介
致谢
· · · · · · ( 更多)
中文版序言
第3版序言
第2版序言
第1版序言
作者简介
致谢
第1章 Web实时通信技术介绍 1
1.1 WebRTC介绍 1
1.1.1 Web浏览模式 1
1.1.2 浏览器中的实时通信功能 2
1.1.3 WebRTC系统所含的元素 3
1.1.4 WebRTC三角形 3
1.1.5 WebRTC梯形 4
1.1.6 WebRTC和会话启动协议SIP 4
1.1.7 WebRTC与Jingle 5
1.1.8 WebRTC与公共交换电话网 5
1.2 WebRTC中的多种媒体流 6
1.3 WebRTC中的多方会话 6
1.4 WebRTC标准 8
1.5 WebRTC的新功能 8
1.6 重要的术语说明 9
1.7 参考资料 10
第2章 如何使用WebRTC 11
2.1 建立WebRTC会话 11
2.1.1 获取本地媒体 12
2.1.2 建立对等连接 12
2.1.3 交换媒体或数据 12
2.1.4 关闭连接 13
2.2 WebRTC联网和交互示例 13
2.2.1 在WebRTC三角形中建立会话 14
2.2.2 在WebRTC梯形中建立会话 15
2.2.3 与SIP终端建立WebRTC会话 16
2.2.4 与Jingle终端建立WebRTC会话 17
2.2.5 与PSTN建立WebRTC会话 17
2.2.6 与SIP和媒体网关建立WebRTC会话 18
2.3 WebRTC伪码示例 20
2.3.1 针对手机浏览器的伪码 21
2.3.2 针对笔记本电脑浏览器的伪码 25
2.4 参考资料 28
第3章 本地媒体 29
3.1 WebRTC中的媒体 29
3.1.1 轨道 29
3.1.2 流 30
3.2 捕获本地媒体 31
3.3 媒体选择和控制 31
3.4 媒体流示例 34
3.5 可运行的本地媒体代码示例 36
3.5.1 Web服务器 36
3.5.2 客户端WebRTC应用程序 41
第4章 信令 45
4.1 信令的作用 45
4.1.1 为何没有建立信令标准 45
4.1.2 媒体协商 46
4.1.3 标识和身份验证 47
4.1.4 控制媒体会话 47
4.1.5 双占用分解 47
4.2 信令传输 47
4.2.1 HTTP传输 48
4.2.2 WebSocket传输 48
4.2.3 数据通道传输 49
4.3 信令协议 50
4.3.1 信令状态机 50
4.3.2 信令标识 51
4.3.3 HTTP轮询 51
4.3.4 WebSocket代理 52
4.3.5 Google应用程序引擎通道API 53
4.3.6 WebSocket SIP 54
4.3.7 WebSocket Jingle 56
4.3.8 数据通道专有信令 58
4.3.9 使用叠加网络的数据通道 58
4.4 信令选项总结 59
4.5 可运行的信令通道代码示例 60
4.5.1 Web服务器 60
4.5.2 信令通道 65
4.5.3 客户端WebRTC应用程序 76
4.6 参考资料 86
第5章 对等媒体 87
5.1 WebRTC媒体流 87
5.1.1 不采用WebRTC时的媒体流 88
5.1.2 采用WebRTC时的媒体流 88
5.2 WebRTC和网络地址转换 89
5.2.1 通过多个NAT的对等媒体流 90
5.2.2 通过通用NAT的对等媒体流 90
5.2.3 私有地址和公共地址 92
5.3 STUN服务器 93
5.4 TURN服务器 94
5.5 候选项 95
第6章 对等连接和提议/应答协商 96
6.1 对等连接 96
6.2 提议/应答协商 97
6.3 JavaScript提议/应答控制 98
6.4 可运行的代码示例:对等连接和提议/应答协商 100
第7章 数据通道 113
7.1 数据通道简介 113
7.2 使用数据通道 114
7.3 可运行的数据通道代码示例 116
第8章 W3C文档 129
8.1 WebRTC API参考 129
8.2 WEBRTC建议 141
8.3 WEBRTC草案 141
8.3.1 WebRTC 1.0:浏览器之间的实时通信 141
8.3.2 媒体捕获和流 145
8.3.3 MediaStream捕获情形 148
8.4 相关工作 148
8.4.1 MediaStream录制API规范 148
8.4.2 图像捕获API 148
8.4.3 future 149
8.4.4 媒体隐私 149
8.4.5 MediaStream的非活动状态 149
8.5 参考资料 150
第9章 NAT和防火墙穿透 151
9.1 穿透简介 151
通过TURN服务器提供中继的媒体 152
9.2 交互式连接建立 152
9.2.1 收集候选传输地址 153
9.2.2 交换候选项 154
9.2.3 STUN连接检查 154
9.2.4 选择选定的对并启动媒体 155
9.2.5 长连接 155
9.2.6 ICE重新启动 156
9.3 WebRTC和防火墙 156
9.4 参考资料 158
第10章 协议 159
10.1 协议 159
10.2 WebRTC协议概述 160
10.2.1 HTTP协议 160
10.2.2 WebSocket协议 161
10.2.3 RTP协议和SRTP协议 162
10.2.4 SDP协议 164
10.2.5 STUN协议 165
10.2.6 TURN协议 169
10.2.7 ICE协议 171
10.2.8 TLS协议 174
10.2.9 TCP协议 175
10.2.10 DTLS协议 175
10.2.11 UDP协议 175
10.2.12 SCTP协议 176
10.2.13 IP协议 177
10.3 参考资料 178
第11章 IETF文档 179
11.1 意见征求书 179
11.2 Internet草案 179
11.3 RTCWEB工作组Internet草案 180
11.3.1 “概述:针对基于浏览器的应用程序的实时协议”[draft-ietf-rtcweb-overview] 180
11.3.2 “Web实时通信使用情形和要求”[RFC7478] 180
11.3.3 “Web实时通信(WebRTC):媒体传输和RTP的用法”[draft-ietf-rtcweb-rtp-usage] 181
11.3.4 “RTCWEB安全体系结构”[draft-ietf-rtcweb-security-arch] 181
11.3.5 “RTCWeb安全注意事项”[draft-ietf-rtcweb-security] 183
11.3.6 “RTCWeb数据通道”[draft-ietf-rtcweb-data-channel] 183
11.3.7 “WebRTC数据通道建立协议”[draft-ietfrtcweb-data-protocol] 184
11.3.8 “JavaScript会话建立协议”[draft-ietfrtcweb-jsep] 185
11.3.9 “WebRTC音频编解码器和处理要求”[draft-ietf-rtcweb-audio] 187
11.3.10 “使用STUN刷新许可”[draft-ietf-rtcweb-stunconsent-freshness] 187
11.3.11 “RTCWEB传输”[draft-ietf-rtcweb-transports] 188
11.4 个人Internet草案 188
11.4.1 “用于RTCWeb媒体约束的IANA注册表”[draftburnett-rtcweb-constraints-registry] 188
11.4.2 “关于NAT、防火墙和HTTP代理的RTCWEB注意事项”[draft-hutton-rtcweb-nat-firewall-considerations] 188
11.4.3 “适用于RTCWeb QoS的DSCP和其他数据包标记”[draftdhesikan-tsvwg-rtcweb-qos] 188
11.4.4 “适用于万维网实时通信的Google拥塞控制”[draft-alvestrand-rmcat-congestion] 188
11.5 其他工作组的RTCWEB文档 189
11.5.1 “缓慢型ICE:逐步为交互式连接建立协议增加候选项的配置”[draft-ietf-mmusic-trickle-ice] 189
11.5.2 “利用会话描述协议端口号进行多路协商”[draft-ietf-mmusic-sdp-bundle-negotiation] 191
11.5.3 “会话描述协议中的跨流标识”[draft-ietf-mmusic-msid] 191
11.5.4 “RTP会话中的多种媒体类型”[draft-ietf-avtcore-multi-media-rtp-session] 191
11.5.5 “多媒体拥塞控制:用于单播RTP会话的断路器”[draft-ietf-avtcore-rtp-circuit-breakers] 191
11.5.6 “在一个RTP会话中支持多个时钟速率”[draftietf-avtext-multiple-clock-rates] 192
11.5.7 “会话描述协议中基于流控制传输协议(SCTP)的媒体传输”[draft-ietf-mmusic-sctp-sdp] 192
11.5.8 “会话描述协议中的媒体源选择机制”[draft-lennox-mmusic-sdp-source-selection] 192
11.5.9 TRAM工作组对STUN和TURN进行的扩展 193
11.6 参考资料 194
第12章 与IETF相关的RFC文档 197
12.1 实时传输协议 197
12.1.1 “RTP:用于实时应用程序的传输协议”[RFC3550] 197
12.1.2 “用于音频和视频会议的RTP配置文件”[RFC3551] 197
12.1.3 “安全实时传输协议”[RFC3711] 198
12.1.4 “用于基于RTCP的反馈且经过扩展的安全RTP配置文件(RTP/SAVPF)”[RFC5124] 198
12.1.5 “通过一个端口多路传输RTP数据和控制数据包”[RFC5761] 198
12.1.6 “用于混合器到客户端音频级别指示的实时传输协议标头扩展项”[RFC6465] 199
12.1.7 “用于客户端到混合器音频级别指示的实时传输协议标头扩展项”[RFC6464] 199
12.1.8 “RTP流的快速同步”[RFC6051] 199
12.1.9 “RTP重新传输有效负载格式”[RFC4588] 199
12.1.10 “采用反馈RTP/AVPF的RTP音频–视频配置文件中的编解码器控制消”[RFC5104] 200
12.1.11 “TCP友好速率控制:协议规范”[RFC5348] 200
12.1.12 “用于RTP标头扩展项的常规机制”[RFC5285] 200
12.1.13 “结合使用可变位速率音频与安全RTP的指南”[RFC6562] 200
12.1.14 “支持缩减型实时传输控制协议:契机与后果”[RFC5506] 200
12.1.15 “安全实时传输协议中的标头扩展项加密”[RFC6904] 201
12.1.16 “RTP控制协议规范名称(CNAME)选择指南”[RFC7022] 201
12.2 会话描述协议 201
12.2.1 “SDP:会话描述协议”[RFC4566] 201
12.2.2 浏览器中的WebRTC SDP示例 201
12.2.3 “用于RTP控制协议带宽的会话描述协议带宽修饰符”[RFC3556] 210
12.2.4 “会话描述协议中特定于源的媒体属性”[RFC5576] 210
12.2.5 “在SDP中协商通用图像属性”[RFC6236] 210
12.3 NAT遍历RFC 211
12.3.1 “交互式连接建立:用于提议/应答协议的网络地址转换器遍历协议”[RFC5245] 211
12.3.2 “对称RTP/RTP控制协议(RTCP)”[RFC4961] 211
12.4 编解码器 212
12.4.1 “Opus音频编解码器的定义”[RFC6716] 212
12.4.2 “VP8数据格式和解码指南”[RFC6386] 212
12.5 信令 212
12.6 参考资料 212
第13章 安全和隐私 214
13.1 浏览器安全模型 214
13.1.1 WebRTC权限 215
13.1.2 网站身份 215
13.1.3 浏览器用户身份 216
13.2 新型WebRTC浏览器攻击 217
13.2.1 API攻击 217
13.2.2 协议攻击 217
13.2.3 信令通道攻击 218
13.3 通信安全 219
13.3.1 通信隐私 219
13.3.2 通过信令通道传输密钥 220
13.3.3 媒体路径中的密钥协议 220
13.3.4 身份验证 221
13.3.5 身份 221
13.4 WebRTC中的身份 221
13.5 企业问题 224
13.6 隐私 225
13.6.1 身份隐私 225
13.6.2 IP地址隐私 225
13.6.3 浏览器指纹识别 226
13.7 基于数据通道的ZRTP 226
13.8 总结 227
13.9 参考资料 227
第14章 实现和应用 229
14.1 浏览器 229
14.1.1 Apple Safari 229
14.1.2 Google Chrome 229
14.1.3 Mozilla Firefox 230
14.1.4 Microsoft Internet Explorer 230
14.1.5 Opera 230
14.2 其他浏览器 230
14.3 STUN 和TURN服务器实现 231
14.4 参考资料 231
附录A W3C标准流程 232
附录B IETF标准流程 235
附录C 术语表 238
附录D 补充阅读和信息资源 240
· · · · · · ( 收起)

> 更多短评 5 条