《P2P网络技术原理与系统开发案例》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:杨天路编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2007
  • ISBN:7115159777
  • 页数:313 页
图书介绍:本书分为3个部分:基础原理、P2P技术关键问题和系统设计与实现。基础理论部分介绍P2P网络的基本概念、网络结构、主流P2P应用系统架构,使读者掌握P2P相关基础理论。P2P技术关键问题部分论述了网络穿越、安全通信等P2P网络设计的关键问题,为后续的开发过程扫除障碍。系统设计与实现部分是全书的重点。详细讲解了常见的路由搜索算法,通过分析现有P2P系统的实现,详细讲解了Python语言的网络开发方法和JXTA框架的设计方法,并深入讲解了文件共享、即时通信和视频点播的P2P业务应用的开发方法,给出了丰富的开发实例。

基础理论篇 3

第1章 P2P基本概念 3

1.1 P2P网络的定义 3

1.2 P2P网络结构 4

1.2.1 集中式P2P网络 4

1.2.2 完全分布式非结构化P2P网络 5

1.2.3 完全分布式结构化P2P网络 6

1.2.4 混合式P2P网络 7

1.2.5 P2P网络和传统网络的对比 8

1.3 P2P网络的应用 9

1.4 P2P的发展 11

1.4.1 起步 11

1.4.2 发展 11

1.4.3 高峰 11

1.5 国内外P2P技术的研究现状 12

1.5.1 国外相关研究 12

1.5.2 国内研究现状 12

1.6 本章总结 13

1.7 练习题 13

第2章 主流P2P系统 15

2.1 文件共享类系统 15

2.1.1 Napster 15

2.1.2 Gnutella 17

2.1.3 BitTorrent 18

2.1.4 eMule 20

2.1.5 Maze 22

2.2 即时通信类系统 24

2.2.1 Skype 24

2.2.2 QQ 27

2.2.3 GTalk 28

2.3 流媒体类系统 29

2.3.1 AnySee 29

2.3.2 PPLive 31

2.4 共享存储类系统 32

2.4.1 OceanStore系统 32

2.4.2 Granary 33

2.5 对等计算类系统 35

2.6 本章总结 36

2.7 练习题 36

第3章 P2P网络的基础——搜索和路由算法 37

3.1 传统搜索技术 37

3.2 P2P搜索技术的发展 38

3.3 DHT网络(结构化P2P网络)的搜索技术 40

3.3.1 DHT路由原理 40

3.3.2 Chord 41

3.3.3 Pastry 45

3.3.4 CAN 47

3.3.5 Tapestry 49

3.3.6 小结 51

3.4 非结构化P2P网络的搜索技术 52

3.4.1 Flooding 52

3.4.2 Modified-BFS 53

3.4.3 Iterative Deepening 53

3.4.4 Random Walk 55

3.4.5 Query Routing 56

3.4.6 Gnutella2 57

3.4.7 移动Agent 58

3.4.8 小结 59

3.5 小世界(Small World)模型 59

3.5.1 小世界模型的引入 59

3.5.2 小世界网络拓扑 60

3.5.3 小世界网络的研究现状 61

3.6 P2P搜索技术研究的挑战 61

3.7 本章总结 62

3.8 练习题 62

第4章 P2P网络穿越 64

4.1 Middlebox与网络穿越 64

4.1.1 Middlebox概述 64

4.1.2 Middlebox的种类 65

4.2 穿越NAT网络 65

4.2.1 NAT网络概念 65

4.2.2 STUN协议与NAT穿越 71

4.2.3 UDP穿越NAT 74

4.2.4 TCP穿越NAT 75

4.2.5 NAT类型检测 76

4.2.6 常见NAT穿越解决方案 79

4.3 本章总结 81

4.4 练习题 81

第5章 P2P与网络安全 82

5.1 P2P网络引发的安全问题 82

5.1.1 P2P网络所引发的版权问题 82

5.1.2 P2P网络对现有网络应用的威胁 84

5.2 P2P网络面临的安全问题 84

5.2.1 P2P网络与传统网络在安全方面的区别 85

5.2.2 P2P网络病毒与蠕虫病毒 85

5.2.3 DHT安全 86

5.2.4 P2P网络安全技术 91

5.3 利用P2P网络解决安全问题 95

5.3.1 利用P2P网络的匿名通信系统 96

5.3.2 利用P2P网络防御DDoS攻击 99

5.4 Skype的安全性分析 101

5.4.1 Skype简介 101

5.4.2 Skype安全机制分析 106

5.4.3 Skype流量识别 110

5.5 本章总结 111

5.6 练习题 111

开发实践篇 115

第6章 Python语言开发基础 115

6.1 Python语言概述 115

6.1.1 Python的发展历史 115

6.1.2 Python的特性 116

6.1.3 Python的功能 116

6.2 安装和使用Python解释器 116

6.3 Python集成开发环境 118

6.4 基本数据类型和结构 119

6.4. 1列表 119

6.4.2 元组 120

6.4.3 字典 120

6.5 流程控制语句 121

6.5.1 if语句 121

6.5.2 for语句 121

6.5.3 while语句 122

6.5.4 break、continue和pass 122

6.6 函数的实现方法 123

6.7 类的使用 125

6.7.1 类的定义 125

6.7.2 类的继承 126

6.8 使用包组织程序 126

6.9 实现多线程程序 126

6.9.1 线程状态 127

6.9.2 线程对象 127

6.9.3 线程同步 128

6.10 网络编程实现与应用 131

6.10.1 Socket编程 131

6.10.2 网络编程库 133

6.11 用户界面编程基础 134

6.12 异常处理 135

6.13 文件处理 136

6.14 调试Python程序 137

6.14.1 使用IDLE调试程序 137

6.14.2 Pdb调试模块 139

6.14.3 使用print语句 141

6.15 本章总结 141

6.16 练习题 141

第7章 JXTA开发基础 142

7.1 JXTA简介 142

7.1.1 为什么选择JXTA 142

7.1.2 JXTA是什么 143

7.2 JXTA的平台结构 143

7.2.1 总体描述 143

7.2.2 JXTA的组件 144

7.2.3 JXTA结构的关键特征 144

7.3 JXTA的基本概念 145

7.3.1 对等点 145

7.3.2 点组 145

7.3.3 网络服务 146

7.3.4 模块 147

7.3.5 管道 148

7.3.6 双向可靠通信信道(JxtaSocket,JxtaBiDiPipe) 149

7.3.7 消息 150

7.3.8 通告 150

7.3.9 安全 154

7.3.10 ID 154

7.4 JXTA的网络架构 155

7.4.1 组织形式 155

7.4.2 分布式共享资源索引(SRDI) 155

7.4.3 查询过程 156

7.4.4 防火墙和NAT 157

7.4.5 JXTA协议 158

7.5 JXTA开发环境 160

7.5.1 安装JDK 160

7.5.2 安装NetBeans 163

7.5.3 安装JXTA开发库 164

7.6 JXTA开发入门 164

7.6.1 HelloWorld 164

7.6.2 创建和加入点组 172

7.6.3 使用管道进行通信 177

7.6.4 JXTA套接字 188

7.7 本章总结 195

7.8 练习题 196

第8章 P2P文件共享系统开发 197

8.1 P2P文件共享概述 197

8.2 BitTorrent文件共享系统实现分析 197

8.2.1 BitTorrent协议分析 198

8.2.2 BitTorrent下载部署 200

8.2.3 BitTorrent种子文件分析 205

8.2.4 Tracker服务器实现 208

8.2.5 BitTorrent客户端实现 209

8.3 使用Python实现P2P文件共享 210

8.3.1 系统设计 210

8.3.2 命令处理 210

8.3.3 共享文件列表 211

8.3.4 文件传输模块 211

8.3.5 实现代码分析 211

8.4 本章总结 216

8.5 练习题 217

第9章 P2P全文检索系统的设计与实现 218

9.1 系统目标 218

9.1.1 系统背景 218

9.1.2 系统建设目标及原则 219

9.1.3 软件支撑环境 219

9.1.4 功能性目标 220

9.1.5 性能性目标 221

9.2 系统原理 222

9.2.1 本地关键字处理 223

9.2.2 P2P网络路由 229

9.3 系统设计 234

9.3.1 静态模型 234

9.3.2 动态模型 238

9.3.3 接口设计 242

9.4 程序示例 242

9.4.1 虚节点路由表的接口函数 242

9.4.2 虚节点路由表的代码实现 243

9.5 系统分析 263

9.5.1 系统的扩展性 263

9.5.2 系统安全性分析 263

9.5.3 虚节点内部的路由机制问题 264

9.6 本章总结 265

9.7 练习题 266

第10章 使用JXTA设计P2P即时消息系统 267

10.1 即时通信系统简介 267

10.1.1 即时通信系统的起源及发展 267

10.1.2 即时通信系统结构分析 268

10.2 用JXTA开发即时通信系统 269

10.3 XCHAT系统设计 269

10.3.1 模块设计 269

10.3.2 协议设计 270

10.4 XCHAT系统实现 270

10.4.1 本地好友列表的实现 270

10.4.2 好友信息维护模块的实现 271

10.4.3 用户界面模块的实现 277

10.4.4 信息发送模块的实现 284

10.5 本章总结 288

10.6 练习题 288

第11章 P2P与多媒体通信 289

11.1 VoIP通信基础 289

11.1.1 VoIP系统概念 289

11.1.2 H.323协议 291

11.1.3 SIP协议 292

11.1.4 RTP协议 294

11.1.5 RTSP协议 294

11.2 P2P和SIP的结合 295

11.2.1 P2P和SIP结合方案分析 296

11.2.2 基于Pastry设计P2P-SIP系统 299

11.2.3 P2P-SIP系统的安全问题 302

11.3 P2P流媒体系统概念 304

11.3.1 流媒体内容发布网络技术 304

11.3.2 P2P流媒体系统概述 305

11.3.3 P2P流媒体系统架构 305

11.3.4 目前现有系统 306

11.4 流媒体技术 306

11.5 设计P2P音视频点播系统 307

11.5.1 多媒体数据压缩 307

11.5.2 应用层QoS 307

11.5.3 应用层多播技术 307

11.5.4 流媒体同步技术 308

11.5.5 PeerCast实现分析 308

11.5.6 改造BitTorrent成为流媒体系统 312

11.6 本章总结 312

11.7 练习题 312