第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 19
2.1.4 eMule 20
2.1.5 Maze 22
2.2 即时通信类系统 24
2.2.1 Skype 24
2.2.2 QQ 26
2.2.3 GTalk 27
2.3 流媒体类系统 28
2.3.1 AnySee 28
2.3.2 PPLive 29
2.4 共享存储类系统 30
2.4.1 OceanStore 30
2.4.2 Granary 32
2.5 对等计算类系统 34
2.6 本章总结 35
2.7 练习题 35
第3章 P2P网络的基础——搜索和路由算法 36
3.1 传统搜索技术 36
3.2 P2P搜索技术的发展 37
3.3 DHT网络(结构化P2P网络)的搜索技术 39
3.3.1 DHT路由原理 39
3.3.2 Chord 40
3.3.3 Pastry 44
3.3.4 CAN 46
3.3.5 Tapestry 48
3.3.6 Kademlia 50
3.3.7 小结 53
3.4 非结构化P2P网络的搜索技术 53
3.4.1 Flooding 54
3.4.2 Modified-BFS 55
3.4.3 IterativeDeepening 55
3.4.4 Random Walk 56
3.4.5 Query Routing 57
3.4.6 Gnutella2. 59
3.4.7 移动Agent 59
3.4.8 小结 60
3.5 小世界(SmallWorld)模型 61
3.5.1 小世界模型概述 61
3.5.2 聚类分布(CD)算法 62
3.5.3 小世界网络的研究现状 66
3.6 P2P搜索技术研究的挑战 66
3.7 本章总结 67
3.8 练习题 67
第4章 P2P应用与安全 69
4.1 P2P应用面临的安全问题 69
4.1.1 P2P应用引发的版权问题 69
4.1.2 P2P应用对现有网络应用的威胁 71
4.1.3 P2P网络病毒与蠕虫 71
4.1.4 结构化P2P网络的隐患 72
4.2 P2P应用与安全技术 76
4.2.1 P2P应用中的密码学技术 76
4.2.2 P2P应用中的网络安全技术 78
4.2.3 利用P2P网络解决安全问题 82
4.3 P2P实例系统——Skype的安全性分析 88
4.3.1 Skype简介 89
4.3.2 Skype安全机制分析 93
4.3.3 Skype流量识别 96
4.4 本章总结 98
4.5 练习题 98
第5章 P2P应用的相关技术 100
5.1 P2P与网络穿越 100
5.1.1 NAT网络概念 100
5.1.2 STUN协议与NAT穿越 103
5.1.3 UDP穿越NAT 106
5.1.4 TCP穿越NAT 107
5.1.5 NAT类型检测 108
5.1.6 常见NAT穿越解决方案 111
5.2 P2P与IMS结合 112
5.2.1 什么是IMS 112
5.2.2 P2P与IMS的网络融合 112
5.3 VoIP通信基础 113
5.3.1 VoIP系统概念 113
5.3.2 H.323协议 115
5.3.3 SIP 115
5.3.4 RTP 117
5.3.5 RTSP 118
5.4 P2P和SIP的结合 119
5.4.1 P2P和SIP结合方案分析 120
5.4.2 基于Pastry设计P2P-SIP系统 122
5.5 本章总结 125
5.6 练习题 126
第6章 P2P应用开发平台 129
6.1 WindowsPeer-to-Peer Networking平台 129
6.1.1 WindowsPeer-to-Peer Networking平台简介 129
6.1.2 WindowsPeer-to-Peer Networking平台结构 130
6.1.3 WindowsPeer-to-Peer Networking平台工作机制 132
6.1.4 WindowsPeer-to-peer Networking平台开发环境 136
6.1.5 WindowsPeer-to-Peer Networking平台开发入门 139
6.2 JXTA 161
6.2.1 JXTA简介 161
6.2.2 JXTA的平台结构 162
6.2.3 JXTA的基本概念 163
6.2.4 JXTA的网络架构 166
6.2.5 JXTA开发环境 171
6.3 本章总结 175
6.4 练习题 175
第7章 P2P文件共享系统开发实例一——eMule的设计与实现 176
7.1 eMule系统概述 176
7.1.1 P2P文件共享系统的背景 176
7.1.2 eMule的设计目标 177
7.2 eMule系统原理 178
7.2.1 eMule协议原理 178
7.2.2 Kad协议原理 185
7.3 eMule系统设计 186
7.3.1 eMule系统结构概述 187
7.3.2 文件基础设施 187
7.3.3 网络基础设施 189
7.3.4 eMule通信协议 190
7.3.5 任务处理机制 191
7.3.6 Kad系统结构概述 195
7.4 eMule程序代码分析 199
7.5 eMule系统部署 223
7.5.1 系统编译和运行 224
7.5.2 系统安装与配置 225
7.5.3 文件搜索和下载 226
7.5.4 文件上传 227
7.6 eMule系统分析 228
7.7 本章总结 228
7.8 练习题 228
第8章 P2P文件共享系统开发实例二——BT的设计与实现 230
8.1 BitTorrent系统概述 23
8.2 BitTorrent系统原理 230
8.2.1 BitTorrent协议原理 231
8.2.2 BitTorrentTracker服务器原理 234
8.3 BitTorrent系统设计 236
8.3.1 Arctic客户端系统结构概述 236
8.3.2 LibTorrent库系统结构概述 237
8.4 BitTorrent程序代码分析 238
8.4.1 Arctic客户端代码分析 238
8.4.2 LibTorrent库代码分析 260
8.5 BitTorrent系统部署 270
8.5.1 BitTorrent服务器的部署 271
8.5.2 BitTonent客户端的部署 271
8.6 BitTorrent系统分析 271
8.7 本章总结 272
8.8 练习题 272
第9章 P2P即时通信系统开发实例——Hermes的设计与实现 273
9.1 Hermes系统概述 273
9.1.1 P2P即时通信系统的背景 273
9.1.2 Hermes系统设计目标 274
9.2 Hermes系统原理 274
9.2.1 登录认证机制 275
9.2.2 语音提取与播放机制 277
9.3 Hermes系统设计 279
9.4 Hermes程序代码分析 280
9.4.1 语音处理模块代码分析 280
9.4.2 通信模块代码分析 295
9.5 Hermes系统分析 302
9.6 本章总结 302
9.7 练习题 302
第10章 P2P流媒体系统开发实例——PeerCast的设计与实现 303
10.1 P2P流媒体系统概念 303
10.1.1 流媒体内容发布网络技术 303
10.1.2 P2P流媒体系统概述 304
10.1.3 P2P流媒体系统架构 304
10.1.4 现有系统 305
10.2 流媒体技术 305
10.3 设计P2P音视频点播系统 306
10.3.1 多媒体数据压缩 306
10.3.2 应用层QoS 306
10.3.3 应用层多播技术 306
10.3.4 流媒体同步技术 307
10.3.5 PeerCast实现分析 307
10.3.6 改造BitTorrent成为流媒体系统 311
10.4 本章总结 311
10.5 练习题 311
第11章 P2P视频点播系统开发实例——Myseelite的设计与实现 313
11.1 Myseelite系统概述 313
11.1.1 P2P视频点播系统的背景 313
11.1.2 Myseelite的设计目标 314
11.2 Myseelite系统原理 315
11.2.1 基本概念 315
11.2.2 工作机制 316
11.2.3 ACE简介 317
11.2.4 wxwidgets简介 320
11.3 Myseelite系统设计 320
11.3.1 Capture子系统 320
11.3.2 SuperPeer子系统 321
11.3.3 Tracker子系统 322
11.3.4 Client子系统 324
11.4 Myseelite程序代码分析 329
11.5 Myseelite系统部署 353
11.5.1 系统编译 353
11.5.2 系统运行 353
11.5.3 轮播流程 354
11.5.4 直播流程 357
11.6 Myseelite系统分析 359
11.7 本章总结 359
11.8 练习题 359