本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
书名: | WebRTC权威指南(原书第3版)[图书]|4976497 |
图书定价: | 59元 |
图书作者: | (美)艾伦 B.约翰斯顿(Alan B. Johnston);(美)丹尼尔 C.伯内特(Daniel C. Burnett) |
出版社: | 机械工业出版社 |
出版日期: | 2016/9/1 0:00:00 |
ISBN号: | 9787111547150 |
开本: | 16开 |
页数: | 0 |
版次: | 1-1 |
作者简介 |
作者简介 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+账号alanbjohnston@gmail.com和danielcburnett@gmail.com。 有关未来版本以及发布后的更新和变更的信息,请访问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)全体员工,特别是陈功、李伟和王骅的校对及评论。 |
内容简介 |
本书的新内容体现在增强的演示应用程序,它展示了如何实现浏览器之间直接发送实时文本的数据通道功能。此外,还涉及浏览器媒体协商过程中的完整描述(Firefox和Chrome的SDP会话描述),如何使用Wireshark来监控WebRTC协议的注意事项以及例子捕捉。另外,支持NAT和防火墙穿透的TURN服务器也是本版新加入的内容。 |
目录 |
中文版序言 第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 提议/应答控制 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 “会话建立协议”[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 M****la 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 |
编辑推荐 |
WebRTC和标准主要作者联袂撰写,互联网实时通信技术的*威指南 全方位深入解读标准的方方面面,阐释WebRTC相关概念、技术及*佳实践,包含大量的演示应用、示例代码、各类数据和图表 ?? 本书是互联网实时通信开发者和技术决策者的*威参考指南。作者Daniel C. Burnett博士是WebRTC标准的主要作者,在书中对标准的方方面面做了精确到位的介绍。Alan Johnston 博士则是今日通信业核心标准SIP的主要作者,多年的行业实践和全局视野让他能够深入浅出地给出WebRTC相关技术问题和发展方向的真知灼见。 本书循序渐进地介绍了WebRTC,阐述了诸如本地媒体、信令等概念,并通过独立可运行的演示程序来介绍对等连接。此外,还详细描述了浏览器媒体协商过程,如何使用Wireshark来监控WebRTC协议的注意事项以及例子捕捉等。书中给出了大量示例代码、各类数据和图表,所有的代码都可以在http://webrtcbook.com/code3.html免费下载,你还可以在http://demo.webrtcbook.com上试用。 |