书籍介绍
P2P网络技术原理与系统开发案例 |
| |
作 者: 杨天路 刘宇宏 张文 原毅强 龙紫薇 魏小康 | ||
出 版 社: 人民邮电出版社 | ||
书 号: 9787115159779 | ||
页 数: 313 页 | ||
出版日期: 2007-6-30 | ||
定 价: ¥39 元 | ||
P2P网络技术原理与系统开发案例简介
基础理论篇
第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 18 2.1.4 eMule 20 2.1.5 Maze 22 2.2 即时通信类系统 24 2.2.1 Skype 24 2.2.2 QQ 27 2.2.3 GTalk 28 2.3 流媒体类系统 29 2.3.1 AnySee 29 2.3.2 PPLive 31 2.4 共享存储类系统 32 2.4.1 OceanStore系统 32 2.4.2 Granary 33 2.5 对等计算类系统 35 2.6 本章总结 36 2.7 练习题 36 第3章 P2P网络的基础——搜索和路由算法 37 3.1 传统搜索技术 37 3.2 P2P搜索技术的发展 38 3.3 DHT网络(结构化P2P网络)的搜索技术 40 3.3.1 DHT路由原理 40 3.3.2 Chord 41 3.3.3 Pastry 45 3.3.4 CAN 47 3.3.5 Tapestry 49 3.3.6 小结 51 3.4 非结构化P2P网络的搜索技术 52 3.4.1 Flooding 52 3.4.2 Modified-BFS 53 3.4.3 Iterative Deepening 53 3.4.4 Random Walk 55 3.4.5 Query Routing 56 3.4.6 Gnutella2 57 3.4.7 移动Agent 58 3.4.8 小结 59 3.5 小世界(Small World)模型 59 3.5.1 小世界模型的引入 59 3.5.2 小世界网络拓扑 60 3.5.3 小世界网络的研究现状 61 3.6 P2P搜索技术研究的挑战 61 3.7 本章总结 62 3.8 练习题 62 第4章 P2P网络穿越 64 4.1 Middlebox与网络穿越 64 4.1.1 Middlebox概述 64 4.1.2 Middlebox的种类 65 4.2 穿越NAT网络 65 4.2.1 NAT网络概念 65 4.2.2 STUN协议与NAT穿越 71 4.2.3 UDP穿越NAT 74 4.2.4 TCP穿越NAT 75 4.2.5 NAT类型检测 76 4.2.6 常见NAT穿越解决方案 79 4.3 本章总结 81 4.4 练习题 81 第5章 P2P与网络安全 82 5.1 P2P网络引发的安全问题 82 5.1.1 P2P网络所引发的版权问题 82 5.1.2 P2P网络对现有网络应用的威胁 84 5.2 P2P网络面临的安全问题 84 5.2.1 P2P网络与传统网络在安全方面的区别 85 5.2.2 P2P网络病毒与蠕虫病毒 85 5.2.3 DHT安全 86 5.2.4 P2P网络安全技术 91 5.3 利用P2P网络解决安全问题 95 5.3.1 利用P2P网络的匿名通信系统 96 5.3.2 利用P2P网络防御DDoS攻击 99 5.4 Skype的安全性分析 101 5.4.1 Skype简介 101 5.4.2 Skype安全机制分析 106 5.4.3 Skype流量识别 110 5.5 本章总结 111 5.6 练习题 111 开发实践篇 第6章 Python语言开发基础 115 6.1 Python语言概述 115 6.1.1 Python的发展历史 115 6.1.2 Python的特性 116 6.1.3 Python的功能 116 6.2 安装和使用Python解释器 116 6.3 Python集成开发环境 118 6.4 基本数据类型和结构 119 6.4.1 列表 119 6.4.2 元组 120 6.4.3 字典 120 6.5 流程控制语句 121 6.5.1 if语句 121 6.5.2 for语句 121 6.5.3 while语句 122 6.5.4 break、continue和pass 122 6.6 函数的实现方法 123 6.7 类的使用 125 6.7.1 类的定义 125 6.7.2 类的继承 126 6.8 使用包组织程序 126 6.9 实现多线程程序 126 6.9.1 线程状态 127 6.9.2 线程对象 127 6.9.3 线程同步 128 6.10 网络编程实现与应用 131 6.10.1 Socket编程 131 6.10.2 网络编程库 133 6.11 用户界面编程基础 134 6.12 异常处理 135 6.13 文件处理 136 6.14 调试Python程序 137 6.14.1 使用IDLE调试程序 137 6.14.2 Pdb调试模块 139 6.14.3 使用print语句 141 6.15 本章总结 141 6.16 练习题 141 第7章 JXTA开发基础 142 7.1 JXTA简介 142 7.1.1 为什么选择JXTA 142 7.1.2 JXTA是什么 143 7.2 JXTA的平台结构 143 7.2.1 总体描述 143 7.2.2 JXTA的组件 144 7.2.3 JXTA结构的关键特征 144 7.3 JXTA的基本概念 145 7.3.1 对等点 145 7.3.2 点组 145 7.3.3 网络服务 146 7.3.4 模块 147 7.3.5 管道 148 7.3.6 双向可靠通信信道(JxtaSocket,JxtaBiDiPipe) 149 7.3.7 消息 150 7.3.8 通告 150 7.3.9 安全 154 7.3.10 ID 154 7.4 JXTA的网络架构 155 7.4.1 组织形式 155 7.4.2 分布式共享资源索引(SRDI) 155 7.4.3 查询过程 156 7.4.4 防火墙和NAT 157 7.4.5 JXTA协议 158 7.5 JXTA开发环境 160 7.5.1 安装JDK 160 7.5.2 安装NetBeans 163 7.5.3 安装JXTA开发库 164 7.6 JXTA开发入门 164 7.6.1 HelloWorld 164 7.6.2 创建和加入点组 172 7.6.3 使用管道进行通信 177 7.6.4 JXTA套接字 188 7.7 本章总结 195 7.8 练习题 196 第8章 P2P文件共享系统开发 197 8.1 P2P文件共享概述 197 8.2 BitTorrent文件共享系统实现分析 197 8.2.1 BitTorrent协议分析 198 8.2.2 BitTorrent下载部署 200 8.2.3 BitTorrent种子文件分析 205 8.2.4 Tracker服务器实现 208 8.2.5 BitTorrent客户端实现 209 8.3 使用Python实现P2P文件共享 210 8.3.1 系统设计 210 8.3.2 命令处理 210 8.3.3 共享文件列表 211 8.3.4 文件传输模块 211 8.3.5 实现代码分析 211 8.4 本章总结 216 8.5 练习题 217 第9章 P2P全文检索系统的设计与实现 218 9.1 系统目标 218 9.1.1 系统背景 218 9.1.2 系统建设目标及原则 219 9.1.3 软件支撑环境 219 9.1.4 功能性目标 220 9.1.5 性能性目标 221 9.2 系统原理 222 9.2.1 本地关键字处理 223 9.2.2 P2P网络路由 229 9.3 系统设计 234 9.3.1 静态模型 234 9.3.2 动态模型 238 9.3.3 接口设计 242 9.4 程序示例 242 9.4.1 虚节点路由表的接口函数 242 9.4.2 虚节点路由表的代码实现 243 9.5 系统分析 263 9.5.1 系统的扩展性 263 9.5.2 系统安全性分析 263 9.5.3 虚节点内部的路由机制问题 264 9.6 本章总结 265 9.7 练习题 266 第10章 使用JXTA设计P2P即时消息系统 267 10.1 即时通信系统简介 267 10.1.1 即时通信系统的起源及发展 267 10.1.2 即时通信系统结构分析 268 10.2 用JXTA开发即时通信系统 269 10.3 XCHAT系统设计 269 10.3.1 模块设计 269 10.3.2 协议设计 270 10.4 XCHAT系统实现 270 10.4.1 本地好友列表的实现 270 10.4.2 好友信息维护模块的实现 271 10.4.3 用户界面模块的实现 277 10.4.4 信息发送模块的实现 284 10.5 本章总结 288 10.6 练习题 288 第11章 P2P与多媒体通信 289 11.1 VoIP通信基础 289 11.1.1 VoIP系统概念 289 11.1.2 H.323协议 291 11.1.3 SIP协议 292 11.1.4 RTP协议 294 11.1.5 RTSP协议 294 11.2 P2P和SIP的结合 295 11.2.1 P2P和SIP结合方案分析 296 11.2.2 基于Pastry设计P2P-SIP系统 299 11.2.3 P2P-SIP系统的安全问题 302 11.3 P2P流媒体系统概念 304 11.3.1 流媒体内容发布网络技术 304 11.3.2 P2P流媒体系统概述 305 11.3.3 P2P流媒体系统架构 305 11.3.4 目前现有系统 306 11.4 流媒体技术 306 11.5 设计P2P音视频点播系统 307 11.5.1 多媒体数据压缩 307 11.5.2 应用层QoS 307 11.5.3 应用层多播技术 307 11.5.4 流媒体同步技术 308 11.5.5 PeerCast实现分析 308 11.5.6 改造BitTorrent成为流媒体系统 312 11.6 本章总结 312 11.7 练习题 312 |