《对等网络:结构、应用与设计》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:陈贵海,李振华著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2007
  • ISBN:9787302158929
  • 页数:337 页
图书介绍:本书介绍对等网络的概念,历史和特点,重点讲述三代P2P网络及其应用系统和软件。

第1章 P2P网络简介 1

1.1 什么是P2P网络 1

1.2 P2P网络的发展历程 6

1.3 为什么需要P2P网络 11

1.4 P2P网络的特点 14

1.5 P2P网络的各种应用 19

第2章 第一代P2P网络:混合式P2P体系 26

2.1 Napster——P2P网络的先驱 26

2.1.1 Napster出现的背景和它创造的奇迹 26

2.1.2 Napster网络的工作原理 27

2.1.3 Napster的性能分析 28

2.1.4 Napster的陨落和它的现状 29

2.1.5 Napster的缺陷和新的混合式P2P网络 32

2.2 BitTorrent——分片优化的新一代混合式P2P网络 33

2.2.1 BitTorrent的曲折历史 33

2.2.2 BitTorrent体系原理 35

2.2.3 BitTorrent分片机制 37

2.2.4 BitTorrent阻塞算法 39

2.2.5 BitTorrent性能分析 40

2.2.6 BitTorrent体系总结 42

2.2.7 关于BT的一个重要事实澄清:BT伤硬盘吗 43

2.3 第一代P2P网络的特点 44

2.3.1 拓扑结构 44

2.3.2 查询与路由 44

2.3.3 容错、自适应和匿名性 44

2.3.4 增强机制 44

第3章 第二代P2P网络:无结构P2P体系 45

3.1 Gnutella——纯分布式无结构P2P网络 45

3.1.1 Gnutella出现的背景 45

3.1.2 Gnutella体系的工作原理 46

3.1.3 Gnutella网络的性能分析 49

3.1.4 Napster与Gnutella的比较 51

3.1.5 Gnutella协议0.6版 52

3.2 KaZaA——基于超结点的无结构P2P网络 53

3.2.1 KaZaA和FastTrack介绍 53

3.2.2 KaZaA的工作原理 54

3.2.3 KaZaA协议的语法和语义 55

3.2.4 KaZaA技术细节 56

3.2.5 KaZaA性能分析 58

3.2.6 KaZaA网络总结 58

3.3 eDonkey/eMule——分块下载的双层无结构P2P网络 59

3.3.1 eDonkey、eMule和Overnet介绍 59

3.3.2 eDonkey工作原理 60

3.3.3 eDonkey文件分块 61

3.3.4 eDonkey性能分析 62

3.3.5 eDonkey网络总结 63

3.4 Freenet——自由、安全、匿名的无结构P2P网络 63

3.4.1 Freenet出现的背景和发展历史 63

3.4.2 Freenet的密码学基础 65

3.4.3 Freenet中数据的查询与获取 68

3.4.4 Freenet中数据的存储与管理 69

3.4.5 Freenet网络新结点加入 70

3.4.6 Freenet协议细节 71

3.4.7 Freenet性能分析 72

3.4.8 Freenet的安全性和匿名性分析 74

3.4.9 Freenet体系总结 75

3.5 无结构P2P网络的特点 76

3.5.1 覆盖网拓扑结构 76

3.5.2 路由和定位方法 77

3.5.3 容错性与自适应 80

3.5.4 可扩展性 80

3.5.5 安全性与匿名性 80

3.5.6 增强机制——复制 80

3.5.7 优势和缺陷 81

第4章 第三代P2P网络:结构化P2P体系 82

4.1 Chord与CFS——简单、精确的环形P2P网络 83

4.1.1 Chord介绍 83

4.1.2 Chord基础工作原理 84

4.1.3 Chord对象定位算法 87

4.1.4 Chord结点加入算法 88

4.1.5 Chord自适应算法 90

4.1.6 Chord容错性和复制、缓存 91

4.1.7 Chord实验分析 91

4.1.8 Chord总结 93

4.1.9 CFS介绍 94

4.1.10 CFS文件系统结构 95

4.1.11 CFS对Chord的改进:前驱列表定位、服务器选择和结点ID认证 96

4.1.12 CFS中的复制、缓存和负载均衡 97

4.1.13 CFS总结 99

4.2 CAN——简单、容错的多维空间P2P网络 99

4.2.1 CAN介绍 99

4.2.2 CAN网络构建 100

4.2.3 CAN增强机制:多维、多空间、多散列 102

4.2.4 CAN的“区域超载” 103

4.2.5 CAN中的复制与缓存 104

4.2.6 CAN总结 104

4.3 Tapestry与OceanStore——广域的超立方体结构P2P网络 104

4.3.1 Tapestry简介 104

4.3.2 Tapestry路由和定位 106

4.3.3 Tapestry动态结点算法 108

4.3.4 Tapestry体系架构 110

4.3.5 Tapestry总结 111

4.3.6 OceanStore简介 111

4.3.7 OceanStore的命名机制和存取控制 113

4.3.8 OceanStore的路由和定位算法 116

4.3.9 OceanStore的更新模型 117

4.3.10 OceanStore的深度归档存储 119

4.3.11 OceanStore的内省优化 119

4.3.12 OceanStore总结 121

4.4 Pastry与PAST——容错的混合式结构P2P网络 122

4.4.1 Pastry简介 122

4.4.2 Pastry路由 124

4.4.3 Pastry自组织和自适应 126

4.4.4 Pastry的局部性 128

4.4.5 Pastry实验分析 129

4.4.6 Pastry总结 130

4.4.7 PAST简介 131

4.4.8 PAST操作 131

4.4.9 PAST安全机制 132

4.4.10 PAST存储管理 133

4.4.11 PAST副本转移和文件转移 133

4.4.12 PAST缓存管理 134

4.4.13 PAST总结 134

4.5 其他著名结构化P2P网络——Kademlia、SkipNet等 135

4.5.1 其他著名结构化P2P网络简介 135

4.5.2 Kademlia——基于异或度量的P2P信息系统 136

4.5.3 SkipNet——基于跳表、提供显式局部性的P2P模型 139

4.6 常数度P2P模型——Viceroy、Koorde和Cycloid等 147

4.6.1 常数度P2P模型概要 147

4.6.2 Viceroy——基于蝴蝶结构的常数度P2P模型 148

4.6.3 Koorde——整合Chord、de Bruijn图的常数度P2P模型 151

4.6.4 Cycloid——基于CCC的常数度P2P模型 154

4.7 结构化P2P网络的特点与分析 159

4.7.1 覆盖网拓扑结构 159

4.7.2 分布式散列表 160

4.7.3 路由和定位 160

4.7.4 动态结点算法(自组织、自适应) 163

4.7.5 容错性与安全性 163

4.7.6 局部性 164

4.7.7 增强机制:复制、缓存和分片 165

4.7.8 P2P网络各项属性总结 165

第5章 P2P应用体系和应用软件 167

5.1 P2P应用清单 167

5.2 文件共享 174

5.2.1 BitTorrent的使用 174

5.2.2 eDonkey的使用 180

5.2.3 百宝——优秀的国产P2P音乐共享软件 184

5.2.4 Maze文件共享系统 185

5.2.5 国产P2P文件共享软件评点 186

5.3 多媒体传输 188

5.3.1 Skype——优秀的网络语音传输工具 188

5.3.2 PPLive——不错的国产P2P网络电视软件 190

5.3.3 TvAnts——支持内网的P2P电视蚂蚁 191

5.3.4 AnySee视频直播系统 193

5.4 实时通信和协同工作 193

5.4.1 P2P实时通信软件评点 193

5.4.2 Groove虚拟办公室——优秀的P2P协同工作空间 194

5.5 分布式数据存取 196

Granary广域存储服务系统 197

5.6 分布式计算 198

5.6.1 GPU——Gnutella全球处理单元 198

5.6.2 SETI@Home——分布式计算缘起 199

5.7 P2P搜索引擎 201

5.8 其他应用介绍 201

5.8.1 TinyP2P——15行代码的P2P软件 202

5.8.2 JXTA——开放式P2P开发平台 203

第6章 P2P核心机制 207

6.1 覆盖网拓扑结构 209

6.2 分布式散列表 211

6.2.1 散列函数 213

6.2.2 安全散列函数 213

6.2.3 一致性散列函数 214

6.3 路由和定位 215

6.3.1 混合式P2P网络的路由和定位方法 215

6.3.2 无结构P2P网络的路由和定位方法 216

6.3.3 结构化P2P网络的路由和定位方法 217

6.3.4 P2P网络定位至少需要多少跳 217

6.3.5 结点度和网络直径的折中关系对路由算法的影响 218

6.4 查询和搜索 219

6.4.1 路由索引 220

6.4.2 基于DHT的P2P网络复合查询 222

6.4.3 前缀散列树 224

6.5 动态结点算法 228

6.5.1 混合式P2P网络的动态结点算法 228

6.5.2 无结构P2P网络的动态结点算法 228

6.5.3 结构化P2P网络的动态结点算法 230

6.6 容错性 231

6.6.1 为了保证容错,结点度至少需要多少 232

6.6.2 容错的传统方法——冗余 233

6.6.3 容错性的分类 233

6.6.4 网络动态性的分类 234

6.6.5 容错性的重要参数——崩溃点 235

6.6.6 P2P覆盖网分割问题 238

第7章 P2P增强机制 242

7.1 P2P系统的性能 245

7.2 复制与缓存 246

7.2.1 关于复制的一个简单而有用的结论 246

7.2.2 无结构P2P网络复制的理论模型 247

7.2.3 结构化P2P网络中的复制和缓存 249

7.3 分片 251

7.3.1 实用的传统分片技术 251

7.3.2 结构化P2P网络中的层次化数据分块 252

7.3.3 冗余编码的数学原理 252

7.3.4 冗余编码的优点 255

7.3.5 冗余编码vs.复制 256

7.4 负载均衡、异构性与热点问题 258

7.4.1 负载均衡 259

7.4.2 异构性 259

7.4.3 Gia——异构性自适应的无结构P2P网络模型 260

7.4.4 热点问题 262

7.4.5 有用的引申——用P2P技术来解决C/S热点问题 263

7.5 拓扑意识和一致性问题 266

7.5.1 处理一致性问题的三种传统方法 266

7.5.2 希尔伯特编码——邻近ID选择 267

7.5.3 CFS的下一跳选择——邻近路由选择 268

7.5.4 Pastry的路由表构造——邻近邻居选择 269

7.5.5 LTM——动态邻近邻居选择 270

7.6 匿名、声誉和信任 272

7.6.1 匿名的各种方法 272

7.6.2 Tarzan——P2P匿名网络层 273

7.6.3 P2P声誉、信任涉及的问题和解决方法 275

7.6.4 EigenTrust算法——完备的P2P声誉管理 277

7.7 P2P安全问题 280

7.7.1 P2P网络中的攻击方式和安全对策 280

7.7.2 P2P面临的非技术性问题 283

第8章 P2P模拟与仿真 285

8.1 P2P模拟器的设计意义和准则 286

8.1.1 P2P模拟器的设计意义 286

8.1.2 P2P模拟器的设计准则 287

8.2 经典的网络模拟器与拓扑产生器 288

8.2.1 经典的网络模拟器NS-2 288

8.2.2 Transit-Stub模型与GT-ITM拓扑产生器 289

8.2.3 通用拓扑产生器BRITE 291

8.3 P2P模拟器 292

8.3.1 通用P2P模拟器p2psim 292

8.3.2 三层P2P模拟器3LS 297

8.3.3 数据包层Gnutella模拟器GnutellaSim 298

8.3.4 PeerSim模拟器简介 300

8.4 全球网络服务仿真平台PlanetLab 300

第9章 P2P的现状和未来 302

9.1 P2P的主要研究组织 303

9.1.1 世界计算机领域最有影响力的组织 303

9.1.2 研究P2P的著名高校 306

9.1.3 研究P2P的著名公司 307

9.1.4 研究P2P的其他组织 308

9.2 P2P的重要国际会议和刊物 309

9.2.1 有关P2P的重要国际会议 309

9.2.2 P2P的重要国际刊物 312

9.3 P2P的主要商业模式 312

9.4 P2P与其他领域的融合 315

9.4.1 P2P与无线网络的融合 315

9.4.2 P2P与网格计算的融合 319

9.5 P2P的未来 320

9.5.1 P2P未来的商业应用趋势 320

9.5.2 P2P未来的学术研究趋势 320

9.5.3 结束语:探讨P2P的未来 321

参考文献 322

索引 330