第1章 引言 1
1.1 写本书的意图 1
1.2 结构和内容 2
1.3 教学材料和书籍网站 4
1.4 致谢 4
第1部分 P2P:概念、领域、历史和未来 7
第2章 对等端到对等端(P2P) 9
2.1 定义 10
2.1.1 Internet通信中体制的转换 11
2.2 在P2P系统和应用中的研究挑战 11
2.2.1 非结构化的P2P系统 14
2.2.2 结构化的P2P系统 14
2.3 小结 15
第3章 P2P的过去和未来 16
3.1 现状:P2P流量充满了网络 16
3.2 所有这些是如何开始的:从ARPANET到P2P 17
3.3 Napster的故事 18
3.4 Gnutella和其近似物:完全非中心化架构 19
3.5 P2P背后的驱动力 21
第4章 应用领域 23
4.1 信息 23
4.2 文件 24
4.3 带宽 26
4.4 存储空间 27
4.5 处理器周期 28
第2部分 非结构化P2P系统 31
第5章 第一代和第二代P2P系统 33
5.1 早期P2P系统的一般特征 33
5.2 中心化的P2P网络 35
5.2.1 基本特征 35
5.2.2 信令特征 36
5.2.3 讨论 38
5.3 纯粹P2P网络 39
5.3.1 基本特征 39
5.3.2 信令特征 41
5.3.3 讨论 42
5.4 混合P2P网络 45
5.4.1 基本特征 45
5.4.2 信令特征 47
5.4.3 讨论 48
第6章 随机图、小世界和规模无关网络 51
6.1 引言 51
6.2 定义 52
6.3 谜——真实网络的分析 54
6.4 随机图、小世界和规模无关网络的族类和模型 55
6.4.1 随机图 55
6.4.2 小世界——谜的第一个解 57
6.4.3 规模无关网络:富人是如何变得更富的 59
6.5 应用到P2P系统 61
6.5.1 在小世界中航行 61
6.5.2 P2P系统中的小世界重叠网 63
6.5.3 P2P系统中的规模无关重叠网 66
6.6 小结 67
第3部分 结构化P2P系统 69
第7章 分布式散列表 71
7.1 数据的分布式管理和检索 71
7.1.1 数据检索策略的比较 72
7.1.2 中心式服务器 72
7.1.3 洪泛搜索 73
7.1.4 分布式索引——分布式散列表 74
7.1.5 查找概念的比较 76
7.2 分布式散列表的基础知识 77
7.2.1 数据的分布式管理 77
7.2.2 在分布式散列表中寻址 77
7.2.3 路由 79
7.2.4 数据存储 79
7.3 DHT机制 80
7.3.1 综述 80
7.3.2 节点到达 80
7.3.3 节点失效 81
7.3.4 节点离开 82
7.4 DHT接口 82
7.4.1 路由接口 82
7.4.2 存储接口 82
7.4.3 客户接口 83
7.5 小结 83
第8章 DHT算法选讲 85
8.1 Chord 85
8.1.1 标识符空间 85
8.1.2 路由 86
8.1.3 自组织 87
8.2 Pastry 89
8.2.1 标识符空间 89
8.2.2 路由信息 89
8.2.3 路由过程 91
8.2.4 自组织 91
8.2.5 路由性能 94
8.3 内容寻址网络 95
8.3.1 标识符空间 95
8.3.2 路由信息 96
8.3.3 路由过程 96
8.3.4 自组织 96
8.3.5 路由性能 98
8.4 Symphony 99
8.5 Viceroy 100
8.6 Kademlia 102
8.7 小结 103
第9章 分布式散列表中的可靠性和负载均衡 105
9.1 分布式散列表中数据的存储负载均衡 105
9.1.1 定义 106
9.1.2 统计分析 107
9.1.3 DHT中负载均衡的算法 109
9.1.4 负载均衡方法的比较 114
9.2 分布式散列表中的数据可靠性 115
9.2.1 冗余 115
9.2.2 复制 116
9.3 小结 118
第10章 P-Grid:结构化P2P系统中自组织过程的动态性 120
10.1 自组织的概念 120
10.2 非结构化P2P系统中自组织的一个示例 121
10.3 结构化P2P系统中的自组织 122
10.3.1 P-Grid重叠网的结构 123
10.3.2 P-Grid重叠网的动态性 125
10.3.3 启动一个P-Grid重叠网 125
10.3.4 路由表维护 128
10.3.5 维护机制的分析 130
10.4 小结 132
第4部分 基于P2P的应用 135
第11章 应用层组播 137
11.1 在应用层上组播的原因 137
11.2 设计的各方面及其分类 138
11.3 非结构化重叠网 139
11.3.1 中心化系统 139
11.3.2 完全的分布式系统 140
11.4 结构化的重叠网 142
11.4.1 基于洪泛的复制 143
11.4.2 基于树的复制 144
11.4.3 性能/开销评估 146
11.5 热点话题 147
11.6 小结 148
第12章 ePOST 149
12.1 有限范围的重叠网 150
12.1.1 设计 151
12.1.2 环结构 151
12.1.3 网关节点 152
12.1.4 路由 152
12.1.5 全局查询 153
12.2 POST设计 153
12.2.1 数据类型 154
12.2.2 用户账号 155
12.2.3 单拷贝存储 155
12.2.4 事件通知 156
12.2.5 元数据 156
12.2.6 垃圾收集 157
12.2.7 POST安全 158
12.3 ePOST设计 159
12.3.1 电子邮件存储 159
12.3.2 电子邮件分发 160
12.3.3 电子邮件夹 160
12.3.4 增量式部署 161
12.3.5 管理 161
12.4 相关故障 162
12.4.1 故障模型 163
12.4.2 Glacier 163
12.4.3 Glacier中的维护 164
12.4.4 故障后的恢复 165
12.4.5 对象聚集 165
12.5 初步经验 166
第13章 分布式计算——GRID计算 167
13.1 简介 167
13.2 GRID架构 168
13.3 Globus项目 169
13.4 定义GRID:全球GRID论坛倡议 170
13.4.1 开放GRID服务架构 171
13.4.2 GRID服务:GRID的构造块 172
13.4.3 有状态的Web服务:OGSI和WS资源的框架 173
13.5 GRID和P2P计算 173
13.5.1 GRID和P2P的比较:共性和差异 174
13.5.2 GRID和P2P:融合的概念 175
13.6 小结 176
第14章 Web服务和P2P 178
14.1 介绍 178
14.2 架构和重要的标准 180
14.2.1 XML和XML Schema 181
14.2.2 WSDL 182
14.2.3 SOAP 185
14.2.4 HTTP 186
14.2.5 UDDI 186
14.2.6 WS-* 187
14.3 服务和谐组合 188
14.4 P2P和Web服务的比较 188
14.4.1 P2P能够从Web服务借鉴到的方法 188
14.4.2 Web服务从P2P中借鉴到的方法 189
14.4.3 加入Web服务和P2P时产生的副作用 190
14.5 产生的架构 191
第5部分 自组织 193
第15章 自组织的特征 195
15.1 引言 195
15.2 基本定义 196
15.2.1 系统 196
15.2.2 复杂性 196
15.2.3 反馈 198
15.2.4 呈展性 198
15.2.5 复杂系统 199
15.2.6 临界性 199
15.2.7 层次结构和非层次结构 200
15.2.8 激发工作 201
15.2.9 扰乱 202
15.3 自组织的特征 202
15.3.1 自确定的边界 202
15.3.2 运行封闭性和能量开放性 202
15.3.3 身份和结构的独立性 203
15.3.4 维护 203
15.3.5 反馈和非正统结构 203
15.3.6 反馈 204
15.3.7 临界性 204
15.3.8 呈展性 204
15.3.9 对扰乱的自判定反应 205
15.3.10 复杂性的降低 205
15.4 在计算机科学中的应用 205
15.4.1 小世界和规模无关网络 205
15.4.2 分群 208
15.4.3 元胞自动机 208
15.5 小结 210
第16章 P2P系统中的自组织 212
16.1 介绍 212
16.2 P2P系统评估 213
16.2.1 标准 213
16.2.2 非结构化网络 215
16.2.3 结构化P2P系统 218
16.2.4 P2P评估小结 222
16.3 在P2P重叠网中迈向更多的自组织性 222
16.3.1 主动虚拟对等端 222
16.3.2 P2P重叠网控制的目标和需求 223
16.3.3 AVP概念的实现 224
16.3.4 相关工作 226
16.4 小结 227
第6部分 搜索和检索 229
第17章 P2P搜索和规模扩展性 231
17.1 重叠网中的P2P搜索和查找 231
17.1.1 问题陈述和本章概述 232
17.1.2 搜索和查找——功能性选项 232
17.1.3 设计空间 233
17.1.4 重叠网拓扑要求 235
17.1.5 重叠网拓扑参数 236
17.2 P2P系统中的扩展性 237
17.2.1 P2P扩展性定义 237
17.2.2 效率和规模 238
17.2.3 扩展性度量和表示 240
17.3 P2P查找和搜索重叠网扩展性的一种评估方案 241
17.3.1 查找和搜索的额外负荷 242
17.3.2 查找和搜索额外负荷维度及定量驱动因子 242
17.3.3 评估方案 244
17.4 使用SHARK的可扩展搜索 244
17.5 小结 246
第18章 重叠网的算法特征 247
18.1 背景和动机 247
18.2 模型定义 250
18.3 沿一条路径收集信息 251
18.3.1 基本算法 252
18.3.2 collect-rec 254
18.4 加权的collect-rec算法 257
18.4.1 算法描述 257
18.4.2 详细的算法描述 258
18.4.3 加权的collect-rec算法的复杂性分析 260
18.5 从一棵树中收集信息 262
18.5.1 详细的算法描述 264
18.5.2 在树上加权的收集算法的复杂性分析 265
18.6 从一般图中收集信息 268
18.7 全局函数 269
18.8 性能评估 270
18.8.1 加权的collect-rec算法的性能 270
18.8.2 在树上的加权收集算法的性能 272
第19章 基于纲要的P2P系统 274
19.1 引言 274
19.2 基于纲要的P2P系统的设计维度 276
19.2.1 数据模型和查询语言 276
19.2.2 数据放置 277
19.2.3 拓扑和路由 277
19.3 案例研究:语义Web的P2P网络 279
19.3.1 语义Web数据模型和查询语言 279
19.3.2 基于纲要的路由索引 281
19.4 高级话题 283
19.4.1 纲要映射 283
19.4.2 分布式查询计划 283
19.4.3 Top-k查询处理 284
19.5 小结 285
第20章 在P2P系统中支持信息检索 287
20.1 P2P应用中的内容搜索 287
20.1.1 通过元数据搜索而交换媒体文件 287
20.1.2 P2P信息检索的问题 288
20.1.3 分布式信息检索中的相关工作 290
20.2 P2P基础设施中查询路由的索引结构 292
20.2.1 信息检索的分布式散列表 292
20.2.2 信息检索的路由索引 294
20.2.3 基于局部性的路由索引 295
20.3 在P2P系统中支持有效的信息检索 296
20.3.1 提供集合范围的信息 296
20.3.2 估计文档重叠 297
20.3.3 使用类型分类法的预结构化集合 298
20.4 小结 299
第21章 混合P2P系统 301
21.1 引言 301
21.2 重叠网设计维度 302
21.3 混合架构 304
21.3.1 JXTA 304
21.3.2 Brocade(锦缎) 305
21.3.3 SHARK 306
21.3.4 Omicron 307
21.4 混合路由 309
21.4.1 OceanStore 309
21.4.2 混合PIER 310
21.5 与非混合系统的比较 310
21.6 小结 311
第7部分 P2P流量和性能评估 313
第22章 P2P重负载之下的ISP平台 315
22.1 引言 315
22.2 P2P流量特征 316
22.2.1 IP平台上的混合流量 316
22.2.2 日流量概要 316
22.2.3 流量增长和预知 318
22.2.4 非对称和对称接入线路 319
22.3 跨层方面 319
22.3.1 应用和IP层上的路由 319
22.3.2 网络和传输层分析 320
22.3.3 应用层模式 320
22.3.4 eDonkey文件共享源的分布 321
22.3.5 缓存P2P数据 322
22.4 多服务IP网络中QoS的含义 323
22.5 小结 324
第23章 P2P系统的流量特征和性能评估 325
23.1 引言 325
23.2 P2P性能的概念 325
23.3 P2P系统的流量特征 327
23.3.1 Gnutella 327
23.3.2 eDonkey 328
23.4 P2P资源协调机制的评估 332
23.5 移动环境中P2P资源访问机制的评估 334
23.6 小结 336
第8部分 移动和泛在环境中的P2P 337
第24章 移动环境中的P2P 339
24.1 P2P技术对移动用户和移动服务有益 339
24.1.1 场景1:出租车定位器 340
24.1.2 场景2:大学校园 340
24.2 移动通信系统简介 341
24.3 移动网络中P2P技术的挑战 342
24.3.1 移动自组织网络中的P2P系统 343
24.4 移动和无线网络中P2P的解决方案 344
24.4.1 基于非结构化P2P网络的解决方案 344
24.4.2 基于结构化P2P网络的解决方案 348
24.5 小结 351
第25章 移动P2P网络中的自发协作 353
25.1 引言和动机 353
25.1.1 移动P2P网络和移动自组织网络 354
25.1.2 单跳P2P设计空间 355
25.1.3 综述 356
25.2 应用领域和示例 356
25.2.1 Shark 356
25.2.2 MobiTip 357
25.2.3 SpotMe 357
25.2.4 Socialight 357
25.2.5 AdPASS 358
25.3 移动P2P网络的构造块 359
25.4 iClouds项目 361
25.4.1 多跳信息传播 361
25.4.2 数据结构和通信语义 362
25.4.3 架构 363
25.5 小结 364
第26章 用于移动P2P查找服务的流行性数据传播 365
26.1 动机和背景 365
26.2 被动分布式索引 366
26.2.1 综述 366
26.2.2 基本概念 367
26.2.3 扩展无线范围的选择性转发 368
26.3 一致性问题 369
26.3.1 处理弱连接和节点故障的可配置值的超时 369
26.3.2 在源节点处理数据修改的懒惰失效缓存 370
26.4 性能研究 372
26.4.1 仿真环境 372
26.4.2 对系统特征的敏感性 375
26.4.3 对应用特征的敏感性 378
26.4.4 一致性机制的影响 379
26.5 小结 381
第27章 P2P和泛在计算 382
27.1 泛在计算引言 382
27.2 泛在计算应用的特征 383
27.2.1 信息 383
27.2.2 网络 384
27.2.3 协作 384
27.2.4 共享资源 384
27.2.5 环境信息 384
27.3 泛在计算架构中的通信 385
27.4 泛在计算中间件 385
27.4.1 对异构设备的支持 385
27.4.2 资源约束 386
27.4.3 移动性支持 386
27.4.4 联网支持 387
27.4.5 性能问题 387
27.5 P2P和泛在计算 388
27.6 泛在P2P计算中的研究挑战 389
27.6.1 异构设备 389
27.6.2 有效算法 390
27.6.3 安全性和隐私性 390
27.6.4 可扩展架构 390
27.6.5 下一代P2P中间件 391
27.7 小结 391
第9部分 商务应用和市场 393
第28章 商务应用和收益模型 395
28.1 引言 395
28.2 定义 396
28.2.1 P2P应用和服务风格 396
28.2.2 P2P交互方式的参考视图 396
28.2.3 商务模型和收益模型 397
28.3 P2P商务应用/服务方式的收益模型 398
28.3.1 即时消息 398
28.3.2 数字内容共享 401
28.3.3 网格计算 404
28.3.4 协作 406
28.4 讨论 407
第29章 P2P市场管理 409
29.1 要求 409
29.1.1 主要问题 410
29.1.2 功能性要求 410
29.1.3 非功能性要求 411
29.2 架构 412
29.2.1 市场模型 412
29.2.2 服务使用模型 414
29.2.3 对等端模型 415
29.2.4 主要单元和机制 415
29.3 案例研究 417
29.3.1 P2P中间件 417
29.3.2 PeerMart:P2P拍卖 419
29.4 小结 422
第30章 电子市场的一个P2P框架 423
30.1 P2P系统的市场 423
30.1.1 服务和分布基础 424
30.1.2 SESAM项目结构 425
30.2 面向服务的一个P2P架构 426
30.2.1 服务导向 427
30.2.2 ServiceNet 428
30.2.3 对等端架构 430
30.3 安全性、鲁棒性和隐私性挑战 431
30.3.1 攻击分类/威胁分析 432
30.3.2 P2P相关的挑战 432
30.3.3 经选择的问题 434
30.4 小结 436
第10部分 高级问题 437
第31章 P2P网络中安全相关的问题 439
31.1 引言 439
31.2 在应用层上的安全担忧 439
31.2.1 文件共享应用 440
31.2.2 数据备份服务 440
31.2.3 文件存储服务 441
31.3 联网层的安全担忧 441
31.3.1 无效查找 442
31.3.2 无效路由更新 442
31.3.3 分割 442
31.3.4 Sybil攻击 443
31.3.5 拓扑隐含内容的考虑 444
31.4 精选系统的安全概念 444
31.4.1 Groove 445
31.4.2 Freenet 448
31.4.3 更进一步的P2P匿名化解决方案 450
31.5 小结 451
第32章 P2P系统中的记账 453
32.1 记账的目的 453
32.2 在P2P中为何不直接记账 454
32.3 方案空间——P2P记账机制的分类 454
32.3.1 信息收集 455
32.3.2 信息存储 457
32.4 建议的记账机制 458
32.4.1 基于纯数字的系统 458
32.4.2 基于收据的系统 459
32.4.3 基于令牌的系统 460
32.4.4 基于工作证据的系统 460
32.5 基于令牌的记账机制 460
32.5.1 前提 460
32.5.2 综述 461
32.5.3 令牌结构 461
32.5.4 令牌聚合 462
32.5.5 检查双重开销 463
32.5.6 交易 463
32.5.7 信任和安全考虑 465
32.5.8 性能分析 467
32.5.9 小结 468
第33章 PlanetLab平台 470
33.1 简介和历史 470
33.2 架构原则 472
33.2.1 应用中心接口 473
33.2.2 分布式虚拟化 474
33.2.3 非绑定的管理 475
33.3 PlanetLab方法论 476
33.3.1 使用PlanetLab 476
33.3.2 再现能力 477
33.3.3 代表性 478
33.3.4 量化结果 479
33.3.5 定性的经验 479
33.4 对Internet的影响 480
33.4.1 多到多连接 480
33.4.2 许多替代路由 480
33.4.3 重叠网和流量相关 481
33.5 长期目标 481
参考文献 483