1、厦门大学本科毕业论文 1 本科毕业论文 (科研训练、毕业设计 ) 题 目: 基于 P2P 的电子杂志下载 器的设计与实现 姓 名: 学 院: 软件学院 系: 软件工程 专 业: 软件工程 年 级: 学 号: 指导教师: 职称: 年 月 厦门大学本科毕业论文 2 基于 P2P 的电子杂志下载器 的设计与实现 摘要 : 随着网络技术的迅猛发展,以 Internet 为代表的各种 IP 分组交换网已经开始对人们的日常工作与生活产生越来越深刻的影响。在当前网络中 , 用 户业务的种类和数据量都出现了急剧的增长 , 这就要求网络提供更高的服务容量和较强的可扩展性。然而 , 当前网络的应用模式主要是客户机
2、 /服务器 ,资源和服务全部由服务器提供,没有能 够有效利用网络带宽和客户端资源,可扩展性和容错性 不好。对等网络 (Peer-to-Peer, P2P)技术正是基于解决当前网络中存在的上述问题而提出的。 基于 P2P 技术产生的应用很多,其中有些 应用 已经比较成熟,如文件共享系统。通过一个 P2P 文件共享系统,用户以对等的方式直接交换文件,方便的实现了 共享,很好的克服了 C/S 模式下文件共享系统的可扩展性和网络流量均衡问题。而文件共享系统正是 P2P 技术最基础的应用,很好地体现出 P2P 技术的思想。 本文重点在阐述如何利用 P2P 思想来设计一款适合于电子 杂志 发行和传播的下载
3、器。 下载器采用了 第三代 P2P 架构,是最可靠、最安全并且最易用的客户端软件,并完全突破防火墙阻隔,让您在局域网内也下载无忧 ;设计了 最轻盈的界面构架:采用 Web 方式的客户端,与 IE 无缝集成,所有操作在 IE 内完成,为您带来最轻松、最亲切的使用体验 。 文章先后介绍了当前 P2P 技术的应用 背景,网络通信的基础知识,文件传输的基础知识, P2P 网络体系结构,最后给出了系统的详细设计。 关键词 : P2P 电子杂志 winsock 厦门大学本科毕业论文 3 The design and implementation of electronic magazine downloa
4、ding base on p2p Abstract: With the rapid development of internet technology, each kind of IP packet-switched network which takes the network as representative has the more and more profound influence for Peoples routine work and life. In the current network, the user service type and the data quant
5、ity all appeared the sudden growth, this request network provides the higher service capacity and the strong extendibility. However, the current network application pattern mainly is the C/S pattern, the resources and serves are provided completely by the server, and couldnt use the network band wid
6、th and the client side resources effectively.The extendibility and the fault-tolerant performance is not good. The technology of Peer-to-Peer is mainly introduced to solve the above question which exists in current network . The application based on the P2P technology is wide, in which some was quit
7、e mature, such as document sharing system.Through a P2P document sharing system, the user exchange document by the coordinated way directly , and realize sharing conveniently. under the C/S pattern ,the extendibility and network current capacity balanced question of document sharing system are conqu
8、ered.However the document sharing system is the most foundation application based on p2p,and is the very good terrain appears the P2P technology the thought. This article is mainly elaborating how to design a kind of downloading which fits for releasing and dissemination of electron magazine using t
9、he P2P thought. Downloading has used the third generation P2P construction, so is most reliable, safest client side software, and breaks through the firewall impediment completely, lets you also download in the local area network worrilessly.it has designed the lithest contact surface skeleton: the
10、client side using the Web method, with the IE seamless integration,and all of operations completes in IE,and brings ease, the kindest use experience for you. The article introduced successively the current P2P technology application background, the network correspondence elementary knowledge, the fi
11、le transfer elementary knowledge, the P2P network architecture, finally has given the system detailed design. Keywords: P2P Electronic magazine winsock 厦门大学本科毕业论文 4 目录 目录 . 4 CONTENTS. 6 第一章 引言 . 8 1.1 前言 . 8 1.2 研究背景 . 8 1.3 开发目的和开发工具 . 9 1.3.1 开发目的 . 9 1.3.2 开发工具 . 10 1.4 本文的创新和主要内容 . 10 第二章 下载器的网
12、络通信设计 . 12 2.1 WINSOCK 网络编程接口 . 12 2.1.1 SOCKET 套接字编程原理 . 12 2.1.2 Windows Socket 的 API 函数 . 13 2.1.3 阻塞方式和非阻塞方式的选择 . 15 2.2 基于 TCP 的通信 . 16 2.2.1 TCP 的直接通信 . 16 2.2.2 TCP 的倒连接和中转 . 16 2.3 UDP 穿透 TCP 通信 . 18 2.3.1 NAT 工作原理 . 18 2.3.2 NAT 的分类 . 18 2.3.3 本系统采用的穿透方法 . 19 2.4 系统的连接策略 . 22 第三章 下载器的设计思想 .
13、 23 3.1 分层的设计思想 . 23 3.2 制定的传输协议 . 24 3.3 通过日志文件和容器实现断点续传 . 24 厦门大学本科毕业论文 5 3.4 用 MD5 进行文件的完整性校验 . 25 第四章 下载器的 P2P 网络体系结构 . 27 4.1 P2P 概述 . 27 4.2 传统的 P2P 体系结构 . 28 4.3 本系统使用的 P2P 体系结构 . 29 第五章 下载器的设计实现 . 31 5.1 系统实现 . 31 5.2 系统的 UML 图 . 32 5.3 服务器模块的设计 . 32 5.3.1 服务器功能描述 . 32 5.3.2 功能模块设计 . 33 5.3.
14、3 客户端和服务器之间的消息的定义 . 33 5.3.4 消息处理模块的设计 . 34 5.3.5 数据管理模块设计 . 35 5.4 客户端模块的设计 . 36 5.4.1 客户端功能描述 . 36 5.4.2 功能模块设计 . 36 5.4.3 客户端和客户端之间的消息的定义 . 37 5.4.4 下载器的驱动模块 . 38 5.5 WEB 界面的设计 . 39 5.6 COM 组件的设计 . 42 5.6.1 组件对象模型( COM)介绍 . 42 5.6.2 COM 组件在本系统中的应用 . 42 结论 . 43 致谢语 . 44 参考文献 . 45 厦门大学本科毕业论文 6 Cont
15、ents CONTENTS.6 Chapter 1 Introduction .8 1.1 Preface .8 1.2 Background.8 1.3 Intent and Tools .9 1.3.1 Intent.9 1.3.2 Tools . 10 1.4 New and Main Contents. 10 Chapter 2 Net Communication Design. 12 2.1 WINSOCK Net Programming Interface . 12 2.1.1 SOCKET Programming Principle.错误 !未定义书签。 2.1.2 Window
16、s Socket API Function .错误 !未定义书签。 2.1.3 Block and Non-Block .错误 !未定义书签。 2.2 TCP Communication.错误 !未定义书签。 2.2.1 TCP Direct Communication .错误 !未定义书签。 2.2.2 TCP Back-Connection and Transfer.错误 !未定义书签。 2.3 UDP Penetrate TCP Communication .错误 !未定义书签。 2.3.1 NAT Work Principle .错误 !未定义书签。 2.3.2 NAT Sort.错误
17、 !未定义书签。 2.3.3 Penetrate Method .错误 !未定义书签。 2.4 Connect Strategy.错误 !未定义书签。 Chapter 3 Design Idea.错误 !未定义书签。 3.1 Layered Design Idea .错误 !未定义书签。 3.2 Transport Protocols .错误 !未定义书签。 3.3 Send-Continue .错误 !未定义书签。 3.4 Checkout With MD5.错误 !未定义书签。 厦门大学本科毕业论文 7 Chapter 4 P2P Net System Configuration.错误 !
18、未定义书签。 4.1 P2P Summarize.错误 !未定义书签。 4.2 Traditional P2P System Configuration.错误 !未定义书签。 4.3 The Use Of P2P System Configuration .错误 !未定义书签。 Chapter 5 Design Implement.错误 !未定义书签。 5.1 System Implement .错误 !未定义书签。 5.2 UML Map .错误 !未定义书签。 5.3 Server Module Design.错误 !未定义书签。 5.3.1 Server Function Describ
19、e .错误 !未定义书签。 5.3.2 Function Module Design .错误 !未定义书签。 5.3.3 Information Define .错误 !未定义书签。 5.3.4 Message Module Design.错误 !未定义书签。 5.3.5 Data Module Design .错误 !未定义书签。 5.4 Client Module Design .错误 !未定义书签。 5.4.1 Client Function Describe .错误 !未定义书签。 5.4.2 Function Module Design .错误 !未定义书签。 5.4.3 Infor
20、mation Define .错误 !未定义书签。 5.4.4 Drive Module .错误 !未定义书签。 5.5 WEB Interface Design .错误 !未定义书签。 5.6 COM Design.错误 !未定义书签。 5.6.1 COM Introduce .错误 !未定义书签。 5.6.2 COM Application .错误 !未定义书签。 Conclusion .错误 !未定义书签。 Acknowledgement .错误 !未定义书签。 References .错误 !未定义书签。 厦门大学本科毕业论文 8 第一章 引言 1.1 前言 “ 下载 ”被称为继 电子
21、邮箱、即时通讯、搜索引擎 后 的互联网第四大应用。游戏下载一直是下载领域的重头戏 , 软件下载 、 mp3 下载,也让人们依稀看到了当前和未来一段时期下载市场的潜在商机,而下载市场的边界还在不断生成和扩展之中。 网络多媒体电子杂志是在 Flash 技术 , p2p 技术和多媒体技术的基础上衍生出的新型媒体 。作为 Web2.0 时代下的传媒新产物,电子杂志也开始在探索前进的道路中找到了其发展和壮大的方向。为避让自身的劣势及不足,电子杂志积极参与跨媒体多方位竞合,以在媒介竞合中谋求多赢便 成为了电子杂志发展的新态势。而利用 P2P 平台发送电子杂志,对电子杂志的传播和发行有着重要的意义。传统的
22、FTP、 HTTP 是把文件由服务器端传送到客户端, 随着 用户数量的增多要求高带宽和服务器的高性能, 更严重 影响到服务器的稳定性,因此很多服务器都会有用户人数的限制、下载速度的限制。 而现在用得最多的下载器以迅雷和BTCOMENT 为代表,但这些软件都 不适合于电子杂志的 发行与 传播。因此开发一款适应于电子杂志的发行和传播的 P2P 下载器有着深远的意义。 1.2 研究背景 随着互联网 Web2.0 技术的进步和发展,第三代电子 杂志以时尚的形式走入了人们的视野。这类电子互动杂志糅合传统媒体图文质量较高和网络媒体表现丰富、互动性强的优势,集文字、图片、 flash 动画、音频、视频甚至
23、3D 特效等多媒体元素于一身,使其光鲜生动,迅速吸引了大量的网络读者。它为受众提供了多种多样的阅读模式,不仅可在线或离线阅读,也可通过发行方提供的阅读器阅读,还可移植 PDA、 MOBILE 及 TV(数字电视、机顶盒 )等多种个人终端阅读。第三代电子杂志在为读者展示丰富的多媒体内容,带来别样的阅读享受的同时,还为受众进行快捷检索、互动交流等提供了更为便利的人性化服务 。 P2P 技术 并非一种全新的技术,虽然 P2P 这个术语是现在才发明的,甚至可以说 P2P 是互联网整体架构的基础。互联网中最基本的协议 TCP/IP 并没有客户机和服务器的概念,所有的设备都是通信平等的一端,这也是 P2P
24、 原理的根本。我们身边并不乏 P2P应用的例子,比如对等形式的局域网。最初的 P2P 应用大约产生于 20 年前, P2P 本身的基本技术的存在时间至少和 USENET, FidoNet 这两种非常成功的分布式对等网络技术一样长。 P2P 源于 Napster,发展至今已经历厦门大学本科毕业论文 9 了三代。 Gnutella 和电驴代表了第二代 P2P 无中 心、纯分布式系统的特点,它不再是简单的点到点通信,而是更高效、更复杂的网络通信。电驴开始引入强制共享机制,一定程度上避免了第一代 P2P 纯个人服务器管理带来的随意性和低效率。 BT 开创了新一代 P2P 潮流,是为第三代 P2P 系统
25、。它批判地继承了前辈产品的优点,将中心目录服务器的稳定性同优化的分布式文件管理结合起来,从而在效率上远远超出了电驴这类产品。它要求提供一个或多个统一的 Web 发布服务器,供网友在此发布和搜寻资料。在客户端,它通过一个 IE 插件提供下载、上传管理。 BT 把一份大文件切割成碎片,给每一个碎片标上特殊标 识,用户无需到一个固定地点 (例如传统网络的中心服务器 )上下载完整的文件,系统会帮助你自动寻找、随机下载具有相同标识的文件碎片,将其加以整合成为完整的文件。BT 鼓励和强制人们在下载资源的同时,自动开启相应的上传服务以回馈其他用户。下载速度取决于上传速度,上传速度越快,给他人贡献就越大,就能
26、获得越高的下载速度,下载与 上 传双向互动、同时进行。资源提供者叫做“种子”,“种子”数量越多,表明资源越受欢迎,下载速度越快,这是一种良 性 循环,传统中心服务器环境下用户增加带来“动脉血栓”的致命顽疾得以根治。 1.3 开发 目的和开发工具 1.3.1 开发目的 该项目的目的是开发一个 基于 P2P 的电子杂志下载器 , 实现 的基本功能: 实现 基于 TCP 的 文件的异步传输和断点续传, 实现 UDP 穿透 NAT 的文件传输,实现基于 HTTP 的 WEB 下载, 实现外网向外网,内网向外网,不同内网间的资源共享。通过先进的连接策略,每个下载端进行最优的连接选择,同时控制连接数量,避
27、免对 PC 和网络的性能要求过高。 该系统中将设计出优秀友好的 客户端 WEB 界面,用户可以通过 WEB 界面查看当前的下载信息,下载完的电子杂志,并进行阅读,删除,订阅等 操作 。为了获取资源信息, 将搭建一个资源信息 管理服务器, 下载端要定时向服务器上传自己的资源信息,并从服务器获取自己所需资源的信息,在请求的资源没有其他下载点时,可以直接从服务器通过 HTTP 直接下载,服务器的所有资源信息保存在 HASH 表里,便于查找。 系统开发中体现面向对象的思想,同时遵守面向对象编程的有效性原则,对象的封装设计、易用性和可扩展性将使系统模块容易被重复引用, 设计一个穿透力极强,适合 电子杂志
28、的下载和传播是该项目的最根本目的,设计有效的算法、设计合理的资源利用方案也是该系统的重点 之一。系统的开发将遵守软件开发规厦门大学本科毕业论文 10 范、编码规范 和质量保证体系,软件发布之前经过国际化并编译形成发布版本。 1.3.2 开发工具 Visual Studio .NET 2003 是一个全面的开发工具,用于快速构建面向 Microsoft Windows 和 Web 并连接 Microsoft .NET 的应用程序,极大地提高了开发人员的效率,并为公司和企业带来了新的商机。 为解决今天最具挑战性的软件开发需要而构建的 Visual Studio .NET 2003 增强并进一步完善
29、了其前代产品的功能,并与前代产品高度兼容。 Visual Studio .NET 2003 包括来自 Modeler 的全套功能,可帮助构建最复杂的企业级应用程序和在最小的设备上部署应用程序。通过全世界各种规模的公司的使用,Visual Studio .NET 和 Microsoft Windows Windows NET Framework 提供了一个强大而完善的端到端工具,用以设计、开发、调试和部署用于 Microsoft Windows 和 Web 的安全的应用程序 这些应用程序强健而且易于使用。 开发人员可以使用 Visual Studio .NET 来: 构建功能强大 而且响应能力极
30、好的基于 Windows 的应用程序。 构建功能强大而且响应能力极好的 Pocket PC 应用程序。 构建完善而安全的 Web 应用程序。 构建对设备有智能感知能力的完善而安全的移动 Web 应用程序。 在以上任何一种应用程序中使用 XML Web services。 避免 “DLL 灾难 ” 。 消除代价高昂的应用程序部署和维护问题。 Visual Studio .NET 是唯一的从头至尾都是基于通过 XML Web service 进行集成这一思想而构建 的环境。通过允许应用程序通过 Internet 共享数据, XML Web services 使开发人员能够利用新的和现有的代码构建应用程序,而不用考虑平台、编程语言或对象模型。 1.4 本文的创新和主要内容 P2P 下载器 主要 要研究的 三 个大问题,一是 网络通信 ,提高 下载器的穿透力,提高下载速度 ;二是 文件传输,设计如何使代码更具健壮性,可重用性,可移植性 ;三是用户界面,设计出更友好的界面,以吸引更多的用户 。 本 下载器的主要特 点 : 1.最先进的下载技术:采用目前国际流行的第三代 P2P 架构,是最可靠、最安全并 且最易用的客户端软件,并完全突破防火墙阻隔,让您在局域网内也下