《WebRTC权威指南 原书第3版》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:(美)艾伦 B.约翰斯顿(Alan B Johnston)
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2016
  • ISBN:9787111547150
  • 页数:240 页
图书介绍:本书的新内容体现在增强的演示应用程序,它展示了如何实现浏览器之间直接发送实时文本的数据通道功能。此外,还涉及浏览器媒体协商过程中的完整描述(Firefox和Chrome的SDP会话描述),如何使用Wireshark来监控WebRTC协议的注意事项以及例子捕捉。另外,支持NAT和防火墙穿透的TURN 服务器也是本版新加入的内容。

第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 “RTC Web安全注意事项”[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