内容简介
基础理论篇
第1章 P2P基本概念
1.1 P2P网络的定义
1.2 P2P网络结构
1.2.1 集中式P2P网络
1.2.2 完全分布式非结构化P2P网络
1.2.3 完全分布式结构化P2P网络
1.2.4 混合式P2P网络
1.2.5 P2P网络和传统网络的对比
1.3 P2P网络的应用
1.4 P2P的发展
1.4.1 起步
1.4.2 发展
1.4.3 高峰
1.5 国内外P2P技术的研究现状
1.5.1 国外相关研究
1.5.2 国内研究现状
1.6 本章总结
1.7 练习题
第2章 主流P2P系统
2.1 文件共享类系统
2.1.1 Napster
2.1.2 Gnutella
2.1.3 BitTorrent
2.1.4 eMule
2.1.5 Maze
2.2 即时通信类系统
2.2.1 Skype
2.2.2 QQ
2.2.3 GTalk
2.3 流媒体类系统
2.3.1 AnySee
2.3.2 PPLive
2.4 共享存储类系统
2.4.1 OceanStore系统
2.4.2 Granary
2.5 对等计算类系统
2.6 本章总结
2.7 练习题
第3章 P2P网络的基础——搜索和路由算法
3.1 传统搜索技术
3.2 P2P搜索技术的发展
3.3 DHT网络(结构化P2P网络)的搜索技术
3.3.1 DHT路由原理
3.3.2 Chord
3.3.3 Pastry
3.3.4 CAN
3.3.5 Tapestry
3.3.6 小结
3.4 非结构化P2P网络的搜索技术
3.4.1 Flooding
3.4.2 Modified-BFS
3.4.3 Iterative Deepening
3.4.4 Random Walk
3.4.5 Query Routing
3.4.6 Gnutella2
3.4.7 移动Agent
3.4.8 小结
3.5 小世界(Small World)模型
3.5.1 小世界模型的引入
3.5.2 小世界网络拓扑
3.5.3 小世界网络的研究现状
3.6 P2P搜索技术研究的挑战
3.7 本章总结
3.8 练习题
第4章 P2P网络穿越
4.1 Middlebox与网络穿越
4.1.1 Middlebox概述
4.1.2 Middlebox的种类
4.2 穿越NAT网络
4.2.1 NAT网络概念
4.2.2 STUN协议与NAT穿越
4.2.3 UDP穿越NAT
4.2.4 TCP穿越NAT
4.2.5 NAT类型检测
4.2.6 常见NAT穿越解决方案
4.3 本章总结
4.4 练习题
第5章 P2P与网络安全
5.1 P2P网络引发的安全问题
5.1.1 P2P网络所引发的版权问题
5.1.2 P2P网络对现有网络应用的威胁
5.2 P2P网络面临的安全问题
5.2.1 P2P网络与传统网络在安全方面的区别
5.2.2 P2P网络病毒与蠕虫病毒
5.2.3 DHT安全
5.2.4 P2P网络安全技术
5.3 利用P2P网络解决安全问题
5.3.1 利用P2P网络的匿名通信系统
5.3.2 利用P2P网络防御DDoS攻击
5.4 Skype的安全性分析
5.4.1 Skype简介
5.4.2 Skype安全机制分析
5.4.3 Skype流量识别
5.5 本章总结
5.6 练习题
开发实践篇
第6章 Python语言开发基础
6.1 Python语言概述
6.1.1 Python的发展历史
6.1.2 Python的特性
6.1.3 Python的功能
6.2 安装和使用Python解释器
6.3 Python集成开发环境
6.4 基本数据类型和结构
6.4. 1列表
6.4.2 元组
6.4.3 字典
6.5 流程控制语句
6.5.1 if语句
6.5.2 for语句
6.5.3 while语句
6.5.4 break、continue和pass
6.6 函数的实现方法
6.7 类的使用
6.7.1 类的定义
6.7.2 类的继承
6.8 使用包组织程序
6.9 实现多线程程序
6.9.1 线程状态
6.9.2 线程对象
6.9.3 线程同步
6.10 网络编程实现与应用
6.10.1 Socket编程
6.10.2 网络编程库
6.11 用户界面编程基础
6.12 异常处理
6.13 文件处理
6.14 调试Python程序
6.14.1 使用IDLE调试程序
6.14.2 Pdb调试模块
6.14.3 使用print语句
6.15 本章总结
6.16 练习题
第7章 JXTA开发基础
7.1 JXTA简介
7.1.1 为什么选择JXTA
7.1.2 JXTA是什么
7.2 JXTA的平台结构
7.2.1 总体描述
7.2.2 JXTA的组件
7.2.3 JXTA结构的关键特征
7.3 JXTA的基本概念
7.3.1 对等点
7.3.2 点组
7.3.3 网络服务
7.3.4 模块
7.3.5 管道
7.3.6 双向可靠通信信道(JxtaSocket,JxtaBiDiPipe)
7.3.7 消息
7.3.8 通告
7.3.9 安全
7.3.10 ID
7.4 JXTA的网络架构
7.4.1 组织形式
7.4.2 分布式共享资源索引(SRDI)
7.4.3 查询过程
7.4.4 防火墙和NAT
7.4.5 JXTA协议
7.5 JXTA开发环境
7.5.1 安装JDK
7.5.2 安装NetBeans
7.5.3 安装JXTA开发库
7.6 JXTA开发入门
7.6.1 HelloWorld
7.6.2 创建和加入点组
7.6.3 使用管道进行通信
7.6.4 JXTA套接字
7.7 本章总结
7.8 练习题
第8章 P2P文件共享系统开发
8.1 P2P文件共享概述
8.2 BitTorrent文件共享系统实现分析
8.2.1 BitTorrent协议分析
8.2.2 BitTorrent下载部署
8.2.3 BitTorrent种子文件分析
8.2.4 Tracker服务器实现
8.2.5 BitTorrent客户端实现
8.3 使用Python实现P2P文件共享
8.3.1 系统设计
8.3.2 命令处理
8.3.3 共享文件列表
8.3.4 文件传输模块
8.3.5 实现代码分析
8.4 本章总结
8.5 练习题
第9章 P2P全文检索系统的设计与实现
9.1 系统目标
9.1.1 系统背景
9.1.2 系统建设目标及原则
9.1.3 软件支撑环境
9.1.4 功能性目标
9.1.5 性能性目标
9.2 系统原理
9.2.1 本地关键字处理
9.2.2 P2P网络路由
9.3 系统设计
9.3.1 静态模型
9.3.2 动态模型
9.3.3 接口设计
9.4 程序示例
9.4.1 虚节点路由表的接口函数
9.4.2 虚节点路由表的代码实现
9.5 系统分析
9.5.1 系统的扩展性
9.5.2 系统安全性分析
9.5.3 虚节点内部的路由机制问题
9.6 本章总结
9.7 练习题
第10章 使用JXTA设计P2P即时消息系统
10.1 即时通信系统简介
10.1.1 即时通信系统的起源及发展
10.1.2 即时通信系统结构分析
10.2 用JXTA开发即时通信系统
10.3 XCHAT系统设计
10.3.1 模块设计
10.3.2 协议设计
10.4 XCHAT系统实现
10.4.1 本地好友列表的实现
10.4.2 好友信息维护模块的实现
10.4.3 用户界面模块的实现
10.4.4 信息发送模块的实现
10.5 本章总结
10.6 练习题
第11章 P2P与多媒体通信
11.1 VoIP通信基础
11.1.1 VoIP系统概念
11.1.2 H.323协议
11.1.3 SIP协议
11.1.4 RTP协议
11.1.5 RTSP协议
11.2 P2P和SIP的结合
11.2.1 P2P和SIP结合方案分析
11.2.2 基于Pastry设计P2P-SIP系统
11.2.3 P2P-SIP系统的安全问题
11.3 P2P流媒体系统概念
11.3.1 流媒体内容发布网络技术
11.3.2 P2P流媒体系统概述
11.3.3 P2P流媒体系统架构
11.3.4 目前现有系统
11.4 流媒体技术
11.5 设计P2P音视频点播系统
11.5.1 多媒体数据压缩
11.5.2 应用层QoS
11.5.3 应用层多播技术
11.5.4 流媒体同步技术
11.5.5 PeerCast实现分析
11.5.6 改造BitTorrent成为流媒体系统
11.6 本章总结
11.7 练习题