第1章P2P网络简介
1.1什么是P2P网络
1.2P2P网络的发展历程
1.3为什么需要P2P网络
1.4P2P网络的特点
1.5P2P网络的各种应用
第2章第一代P2P网络: 混合式P2P体系
2.1Napster——P2P网络的先驱
2.1.1Napster出现的背景和它创造的奇迹
2.1.2Napster网络的工作原理
2.1.3Napster的性能分析
2.1.4Napster的陨落和它的现状
2.1.5Napster的缺陷和新的混合式P2P网络
2.2BitTorrent——分片优化的新一代混合式P2P网络
2.2.1BitTorrent的曲折历史
2.2.2BitTorrent体系原理
2.2.3BitTorrent分片机制
2.2.4BitTorrent阻塞算法
2.2.5BitTorrent性能分析
2.2.6BitTorrent体系总结
2.2.7关于BT的一个重要事实澄清: BT伤硬盘吗
2.3第一代P2P网络的特点
2.3.1拓扑结构
2.3.2查询与路由
2.3.3容错、自适应和匿名性
2.3.4增强机制
第3章第二代P2P网络: 无结构P2P体系
3.1Gnutella——纯分布式无结构P2P网络
3.1.1Gnutella出现的背景
3.1.2Gnutella体系的工作原理
3.1.3Gnutella网络的性能分析
3.1.4Napster与Gnutella的比较
3.1.5Gnutella协议0.6版
3.2KaZaA——基于超结点的无结构P2P网络
3.2.1KaZaA和FastTrack介绍
3.2.2KaZaA的工作原理
3.2.3KaZaA协议的语法和语义
3.2.4KaZaA技术细节
3.2.5KaZaA性能分析
3.2.6KaZaA网络总结
3.3eDonkey/eMule——分块下载的双层无结构P2P网络
3.3.1eDonkey、eMule和Overnet介绍
3.3.2eDonkey工作原理
3.3.3eDonkey文件分块
3.3.4eDonkey性能分析
3.3.5eDonkey网络总结
3.4Freenet——自由、安全、匿名的无结构P2P网络
3.4.1Freenet出现的背景和发展历史
3.4.2Freenet的密码学基础
3.4.3Freenet中数据的查询与获取
3.4.4Freenet中数据的存储与管理
3.4.5Freenet网络新结点加入
3.4.6Freenet协议细节
3.4.7Freenet性能分析
3.4.8Freenet的安全性和匿名性分析
3.4.9Freenet体系总结
3.5无结构P2P网络的特点
3.5.1覆盖网拓扑结构
3.5.2路由和定位方法
3.5.3容错性与自适应
3.5.4可扩展性
3.5.5安全性与匿名性
3.5.6增强机制——复制
3.5.7优势和缺陷
第4章第三代P2P网络: 结构化P2P体系
4.1Chord与CFS——简单、精确的环形P2P网络
4.1.1Chord介绍
4.1.2Chord基础工作原理
4.1.3Chord对象定位算法
4.1.4Chord结点加入算法
4.1.5Chord自适应算法
4.1.6Chord容错性和复制、缓存
4.1.7Chord实验分析
4.1.8Chord总结
4.1.9CFS介绍
4.1.10CFS文件系统结构
4.1.11CFS对Chord的改进: 前驱列表定位、服务器选择和结点ID认证
4.1.12CFS中的复制、缓存和负载均衡
4.1.13CFS总结
4.2CAN——简单、容错的多维空间P2P网络
4.2.1CAN介绍
4.2.2CAN网络构建
4.2.3CAN增强机制: 多维、多空间、多散列
4.2.4CAN的“区域超载”
4.2.5CAN中的复制与缓存
4.2.6CAN总结
4.3Tapestry与OceanStore——广域的超立方体结构P2P网络
4.3.1Tapestry简介
4.3.2Tapestry路由和定位
4.3.3Tapestry动态结点算法
4.3.4Tapestry体系架构
4.3.5Tapestry总结
4.3.6OceanStore简介
4.3.7OceanStore的命名机制和存取控制
4.3.8OceanStore的路由和定位算法
4.3.9OceanStore的更新模型
4.3.10OceanStore的深度归档存储
4.3.11OceanStore的内省优化
4.3.12OceanStore总结
4.4Pastry与PAST——容错的混合式结构P2P网络
4.4.1Pastry简介
4.4.2Pastry路由
4.4.3Pastry自组织和自适应
4.4.4Pastry的局部性
4.4.5Pastry实验分析
4.4.6Pastry总结
4.4.7PAST简介
4.4.8PAST操作
4.4.9PAST安全机制
4.4.10PAST存储管理
4.4.11PAST副本转移和文件转移
4.4.12PAST缓存管理
4.4.13PAST总结
4.5其他著名结构化P2P网络——Kademlia、SkipNet等
4.5.1其他著名结构化P2P网络简介
4.5.2Kademlia——基于异或度量的P2P信息系统
4.5.3SkipNet——基于跳表、提供显式局部性的P2P模型
4.6常数度P2P模型——Viceroy、Koorde和Cycloid等
4.6.1常数度P2P模型概要
4.6.2Viceroy——基于蝴蝶结构的常数度P2P模型
4.6.3Koorde——整合Chord、de Bruijn图的常数度P2P模型
4.6.4Cycloid——基于CCC的常数度P2P模型
4.7结构化P2P网络的特点与分析
4.7.1覆盖网拓扑结构
4.7.2分布式散列表
4.7.3路由和定位
4.7.4动态结点算法(自组织、自适应)
4.7.5容错性与安全性
4.7.6局部性
4.7.7增强机制: 复制、缓存和分片
4.7.8P2P网络各项属性总结
第5章P2P应用体系和应用软件
5.1P2P应用清单
5.2文件共享
5.2.1BitTorrent的使用
5.2.2eDonkey的使用
5.2.3百宝——优秀的国产P2P音乐共享软件
5.2.4Maze文件共享系统
5.2.5国产P2P文件共享软件评点
5.3多媒体传输
5.3.1Skype——优秀的网络语音传输工具
5.3.2PPLive——不错的国产P2P网络电视软件
5.3.3TvAnts——支持内网的P2P电视蚂蚁
5.3.4AnySee视频直播系统
5.4实时通信和协同工作
5.4.1P2P实时通信软件评点
5.4.2Groove虚拟办公室——优秀的P2P协同工作空间
5.5分布式数据存取
Granary广域存储服务系统
5.6分布式计算
5.6.1GPU——Gnutella全球处理单元
5.6.2SETI@Home——分布式计算缘起
5.7P2P搜索引擎
5.8其他应用介绍
5.8.1TinyP2P——15行代码的P2P软件
5.8.2JXTA——开放式P2P开发平台
第6章P2P核心机制
6.1覆盖网拓扑结构
6.2分布式散列表
6.2.1散列函数
6.2.2安全散列函数
6.2.3一致性散列函数
6.3路由和定位
6.3.1混合式P2P网络的路由和定位方法
6.3.2无结构P2P网络的路由和定位方法
6.3.3结构化P2P网络的路由和定位方法
6.3.4P2P网络定位至少需要多少跳
6.3.5结点度和网络直径的折中关系对路由算法的影响
6.4查询和搜索
6.4.1路由索引
6.4.2基于DHT的P2P网络复合查询
6.4.3前缀散列树
6.5动态结点算法
6.5.1混合式P2P网络的动态结点算法
6.5.2无结构P2P网络的动态结点算法
6.5.3结构化P2P网络的动态结点算法
6.6容错性
6.6.1为了保证容错,结点度至少需要多少
6.6.2容错的传统方法——冗余
6.6.3容错性的分类
6.6.4网络动态性的分类
6.6.5容错性的重要参数——崩溃点
6.6.6P2P覆盖网分割问题
第7章P2P增强机制
7.1P2P系统的性能
7.2复制与缓存
7.2.1关于复制的一个简单而有用的结论
7.2.2无结构P2P网络复制的理论模型
7.2.3结构化P2P网络中的复制和缓存
7.3分片
7.3.1实用的传统分片技术
7.3.2结构化P2P网络中的层次化数据分块
7.3.3冗余编码的数学原理
7.3.4冗余编码的优点
7.3.5冗余编码vs.复制
7.4负载均衡、异构性与热点问题
7.4.1负载均衡
7.4.2异构性
7.4.3Gia——异构性自适应的无结构P2P网络模型
7.4.4热点问题
7.4.5有用的引申——用P2P技术来解决C/S热点问题
7.5拓扑意识和一致性问题
7.5.1处理一致性问题的三种传统方法
7.5.2希尔伯特编码——邻近ID选择
7.5.3CFS的下一跳选择——邻近路由选择
7.5.4Pastry的路由表构造——邻近邻居选择
7.5.5LTM——动态邻近邻居选择
7.6匿名、声誉和信任
7.6.1匿名的各种方法
7.6.2Tarzan——P2P匿名网络层
7.6.3P2P声誉、信任涉及的问题和解决方法
7.6.4EigenTrust算法——完备的P2P声誉管理
7.7P2P安全问题
7.7.1P2P网络中的攻击方式和安全对策
7.7.2P2P面临的非技术性问题
第8章P2P模拟与仿真
8.1P2P模拟器的设计意义和准则
8.1.1P2P模拟器的设计意义
8.1.2P2P模拟器的设计准则
8.2经典的网络模拟器与拓扑产生器
8.2.1经典的网络模拟器NS2
8.2.2TransitStub模型与GTITM拓扑产生器
8.2.3通用拓扑产生器BRITE
8.3P2P模拟器
8.3.1通用P2P模拟器p2psim
8.3.2三层P2P模拟器3LS
8.3.3数据包层Gnutella模拟器GnutellaSim
8.3.4PeerSim模拟器简介
8.4全球网络服务仿真平台PlanetLab
第9章P2P的现状和未来
9.1P2P的主要研究组织
9.1.1世界计算机领域最有影响力的组织
9.1.2研究P2P的著名高校
9.1.3研究P2P的著名公司
9.1.4研究P2P的其他组织
9.2P2P的重要国际会议和刊物
9.2.1有关P2P的重要国际会议
9.2.2P2P的重要国际刊物
9.3P2P的主要商业模式
9.4P2P与其他领域的融合
9.4.1P2P与无线网络的融合
9.4.2P2P与网格计算的融合
9.5P2P的未来
9.5.1P2P未来的商业应用趋势
9.5.2P2P未来的学术研究趋势
9.5.3结束语: 探讨P2P的未来
参考文献
索引