1、 本 科 毕 业 论 文 Web 嗅探器 的设计与实现 系统 界面与 文件 下载模块 Design and Implementation of Web Sniffer User Interface and File Download Module 姓 名 : 学 号 : 学 院 : 软件学院 系 : 软件工程 专 业 : 软件工程 年 级 : 指导老师 : 年 月摘 要 自从 1969 年世界上第一个网络 ARPANET 诞生后,网络技术得到了迅速发展,网络的规模起来越大,新技术、新设备的广泛应用,使得网络 的结构日益复杂,这些极大地推动了社会的进步和发展,社会的各个领域都离不开网络。 发展至
2、今, 如今的网络已然成为与用户交互 、传输信息的 主要途径之一 , 视频、音乐等媒体文件也逐渐成为主流信息载体 。 但是,大多数相关网站目前只提供流媒体的在线观看,并未提供下载地址和下载功能。 Web 嗅探 器便是 我与另一位搭档共同参与, 为 了 满足用户 嗅探流媒体地址并且 下载流媒体的需要 而开发的软件。 本文在对目前的 web 嗅探 器 技术进行全面的综述 之后 ,将介绍 软件界面 的设计与 实现 ,并将 HTTP 文件 下载与 Java 多线程 技术 相结合 , 来实现 web 嗅探器的 网络文件下载模块, 论文主要研究以下 三 个方面的问题 : 第一、 实现系统界面,要求界面简洁美
3、观,方便易用。 第二、 对 HTTP 协议与 JAVA 多线程的工作原理进行研究,为实现服务器连接和文件下载做好准备。 第三、 实现 网络文件的下载,要求在服务器支持的前提下实现多线程下载和断点续传。 关键词 : FLV 视频 ;嗅探器; 文件下载。 Abstract Since 1969, when the worlds first network - ARPANET was born, the network technology has been developing rapidly, with the larger-scale networks, an increasingly com
4、plex network had been structured, which greatly promoted the social progress and development. Now, in all areas of society can not be separated from the network. Now the network has become one of the main ways to interactive with user and transfer information, video, music and other media files are
5、becoming the mainstream of information carriers. However, many relevant sites currently only available user to watch streaming media online, never provide a download address or download function for user. In order to available user to get streaming medias address and download the file, my partner an
6、d me designed and implemented a software named Web Sniffer. In the beginning of this thesis, I give a comprehensive overview of current web sniffer technology, after that, I introduce the design and implementation of user interface, then, I show the realization of the web sniffers file download modu
7、le with HTTP technology and Java multi-threading technology, this thesis research the following three major issues: First, implementation of user interface, compact, beautiful and user-friendly are required. Secondly, study and research the working principles of HTTP protocol and Java multi-threadin
8、g, to make preparations for the realization of server connection and file download. Third, the realization of network file download, Java multi-threading and resume broken transfer base on the support of server are required. Keywords: flv video; sniffer; file download. 目录 第一章 绪论 . 1 1.1 选题背景 及 意义 .
9、1 1.2 主要研究内容 . 2 1.2 论文 组织结构 . 2 第二章 系统关键技术 . 3 2.1 网络嗅探的发展与现状 . 3 2.2 现有的网络地址获取方法 . 4 2.3 Web 嗅探器的嗅探原理 . 5 2.4 HTTP 协议 . 6 2.5 Java 多线程机制 . 12 2.6 本章小结 . 16 第三章 Web 嗅探器的需求分析与总体设计 . 17 3.1 系统开发的需求及目的 . 17 3.2 系统总体设计 . 17 3.3 本章小结 . 20 第四章 系统界面的设计与实现 . 21 4.1 系统界面的总体设计 . 21 4.2 系统界面的实现 . 22 4.3 本章小结
10、. 25 第五章 文件下载模块的设计与实现 . 26 5.1 连接正确性和服务器状态判定的实现 . 26 5.2 多线程在本模块中的实现 . 32 5.3 断点续传在本模块中的实现 . 36 5.4 本章小结 . 38 第六章 Web 嗅探器的实现效果 . 39 6.1 文件下载 . 39 6.2 已完成任务显示 . 40 6.3 使用帮助 . 41 6.4 系统应用测试 . 42 6.5 本章小结 . 43 第七章 总结与展望 . 44 7.1 总结 . 44 7.2 展望 . 44 参考文献 . 45 致谢 . 46 Contents Chapter 1 Introduction . 1
11、1.1 Research Topics Background and Significance . 1 1.2 The Main Work of This Thesis . 2 1.3 The Structure of This Thesis . 2 Chapter 2 Key Technologies of Web Sniffer. 3 2.1 Development of Web Sniffer . 3 2.2 Methods to Get Network Files Address . 4 2.3 Principle of Web Sniffer . 5 2.4 HTTP Protoco
12、l . 6 2.5 Java Multi-Threading. 12 2.6 Summary of This Chapter . 16 Chapter 3 The Requirements Analysis and Overall Design . 17 3.1 Requirements Analysis . 17 3.2 Overall Design and Program Structure . 17 3.3 Summary of This Chapter . 20 Chapter 4 Design and Implementation of User Interface . 21 4.1
13、 Overall design of User Interface . 21 4.2 Implementation of User Interface . 22 4.3 Summary of This Chapter . 25 Chapter 5 The Detail Design and Implementation of File Download Module. 26 5.1 Check of Connection and Server . 26 5.2 Implementation of Java Multi-Threading . 32 5.3 Implementation of R
14、esume Broken Transfer . 36 5.4 Summary of This Chapter . 38 Chapter 6 The Achieved Effect of Web Sniffer . 39 6.1 File Download . 39 6.2 Download Records . 40 6.3 Helps . 41 6.4 System Test . 42 6.5 Summary of This Chapter . 43 Chapter 7 Conclusions and Future Work. 44 7.1 Conclusions . 44 7.2 Futur
15、e Work . 44 References . 45 Acknowledgements . 46 第一章 绪论 1 第一章 绪论 1.1 选题背景 及 意义 在 90 年代以前, Internet 的使用一直 仅 限于研究与学术领域,商业性机构进入 Internet 一直受到这样或那样的法规或传统问题的困扰。事实上,像美国国家科学基金会等曾经出资 Internet 的政府机构对 Internet 上的商业活动并不感兴趣 。 1991 年,美国的三家公司分别经营着自己的 CERFnet、 PSInet 及 Alternet 网络,可以在一定程度上向客户提供 Internet 联网服务。他们组成
16、了“商用 Internet协会 (CIEA),宣布用户可以把它们的 Internet 子网用于任何的商业用途。 Internet商业化服务提供商的出现,使工商企业终于可以堂堂正正地进入 Internet。商业机构一踏入 Internet 这一陌生的世界就发现了它的通讯、资料检索、客户服务等方面的巨大潜力。于是,其势一发不可收拾。世界各地无数的企业及个人纷纷涌入 Internet,带来 Internet 发展史上一个新的飞跃。 Internet 目前已经联系着超过 160 个国家和地区、 4 万多个子网、 500 多万台电脑主机,直接的用户超过 4000 万,成为世界上信息资源最丰富的电脑公共网
17、络。 随着技术的不断发展 ,在 Internet 上传输的信息越来越多的由原本单一的文字信息转变成 多媒体格式 ,包括视频、音频等。 截至 2004 年 ,在不到十年的时间内 ,多 媒体市场已显示其巨大的创益潜能 ,有一组数字为证 :多 媒体网络用户消费服务收入为 90 亿美元 ,内容提供商收入为 28亿美元 ,全球建成 1000 多个 多 媒体网站 ,2 亿多小时视频流 1。 但是,有些 网站只提供多 媒体 在线 浏览,没用提供下载功能 或下载地址 , 如优酷网、 56 网的视频和一些内嵌的音乐文件等, 这时对有下载需求的用户就无法满足了。 Web 嗅探器 就是为了实现该应用而开发的 。它将
18、允许用户在 Internet 上浏览 多 媒体 的同 时,实时的监听网络数据包,获取 多 媒体文件的网络地址,并提供下载功能。Web 嗅探器的设计与实现 系统界面与文件下载模块 2 1.2 主要 研究内容 本文的主要 工作 是在分析 当前网络嗅探器技术 的基础上, 介绍相关的技术背景,设计并实现 Web 嗅探器 的系统界面和网络文件的下载功能模块 。论文主要研究以下 3 部分的内容: (1) 对当前网络嗅探器的发展与相关技术的研究 ; (2) 实现以简洁易用为理念的系统界面 ; (3) 在服务器支持的前提下,实现网络文件的多线程下载和断点续传功能。 1.2 论文 组织 结构 本文后继章节安排如
19、下: 第二章 系统关键技术 : 作为核心内容的铺垫,详细的介绍论文的理论基础。首先论述当前主流在线视频网站的地址获取方法和原理 ,并详细介绍了本软件采用的嗅探原理 。然后重点介绍了 HTTP 协议、 HTTP 消息和交互过程。最后再介绍 Java 多线程机制 。 第三章 Web 嗅探器的需求分析及总体架构:介绍了系统开发的需求和系统的总体设计架构。 第 四 章 系统界面的设计与实现 : 是论文的核心部分 之一 。 介绍了系统界面开发的理念,以及依据该理念而设计并实现各个用户界面的过程 与 效果。 第 五 章 文件下载模块的设计与实现 :是论文的核心部分之一。详细介绍了Web 嗅探器 文件下载模
20、块的设计过程与实现方法,包括部分核心功能代码的解析。 第 六 章 Web 嗅探器的实现 效 果:说明了系统最终的实现效果与测试结果 。 第 七 章 总结与展望 : 对论文的研究进行总结,说明不足之处和未来展望。 第二章 系统关键技术 3 第 二 章 系统关键技术 本章主要介绍 网络嗅探 器 的原理与现状 ,为实现 文件 下载 程序打下基础。 网络嗅探是指利用计算机的网络接口截获目的地为其它计算机的数据报文的一种手段。 网络嗅探的基础是数据捕获,网络嗅探系统是并接在网络中来实现对于数据的捕获的,这种方式和入侵检测系统相同,因此被称为网络嗅探。网络嗅探是网络监 控系统的实现基础 。 2.1 网络嗅
21、探的发展与现状 网络嗅探需要用到网络嗅探器,其最早是为网络管理人员配备的工具,有了嗅探器网络管理员可以随时掌握网络的实际情况,查找网络漏洞和检测网络性能,当网络性能急剧下降的时候,可以通过嗅探器分析网络流量,找出网络阻塞的来源 2。嗅探器也是很多程序人员在编写网络程序时抓包测试的工具,因为我们知道网络程序都是以数据包的形式在网络中进行传输的,因此难免有协议头定义不对的 。这也正是软件要实现的功能之一,先嗅探出流媒体的网络下载地址,然后由下载模块完成下载功能。 一个 嗅探 程序能 使某人 “ 听 ” 到计算机网络的会话 , 不同的是,计算机的会话包括的显然就是随机的二进制数据 3。因此网络 嗅探
22、 程序也因为它的 “协议分析 ”特性而著名, “协议分析 ”就是对于计算机的通信进行解码并使它变得有意义 。依据不同的协议,数据包有各种不同的组织形式, 了解你所要获取的数据在网络上传输所依据的协议,然后制定相应的包解析程序, 才能够获取正确的数据 。 如之前所讲到的, 网络嗅探最早是为网络管理人员配备的工具 ,以帮助网络管理人员进行高效的网络管理。 其实,网络嗅探 程序长时间以来一直 广泛应用于各种网络中,用于 维护网络 安全 , 其典型 应用为 4: ( 1)、 将数据转换为人们可读的格式,因此人们能读出通信,这样可以进行基于内容的网络通信的检查 ; ( 2)、 为了发现网络上的问题而进行错误的分析,例如为什么计算机 A不能和计算机 B 进行通信 ; ( 3)、 为了发现网络通信中的瓶颈进行的性能分析 ;