已阅读5页,还剩80页未读, 继续免费阅读
(计算机应用技术专业论文)linux下多协议下载工具的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 网络文件下载,也可称为文件资源共享,一直是网络发展最重要的推动力之 一。为了提高文件的传输的速度、质量和容量,人们设计和制作了各种各样的网 络协议和下载工具。下载工具从较早的以多线程h t r p f t p 下载为亮点的f l a s h g e t 、 n e t a n t ,到后来以p 2 p 多源传输为亮点的b i t t o r r e n t 、e d o n k e y e m u l e ,到最近开始 流行的吸收上述下载方式优点、号称p 2 s p 技术的迅雷下载,网络文件下载的方式 已经经历了很大的改变。 在对各种下载方式进行充分研究基础上,本文首先简要介绍了结合h t t p 、 f t p 、b t 三种下载技术的基本网络结构,即c s 结构和p 2 p 多源文件传输结构,并 分析了结合这几种技术的p 2 s p 下载方式的基本模型。 之后,本文更详细的介绍了h t t p 、f t p 的工作原理和流程,以及l i n u x 环境下 实现多线程并发下载所需的基本技术,并重点介绍了b i t t o r r e n t 的基本工作原理和 方式。 然后本文对l i n u x 中几种现有的下载工具进行了分析和比较,重点分析了 b i t t o r r e n t 的一种客户端源程序。在此基础上,本文提出- $ l i n u x 下多协议下载工具, 最p m d o w n l o a d e r 的基本框架和设计。 最后,本文描述t m d o w n l o a d e r 对h t r p f t p 多线程下载、b t 下载及p 2 s p 方 式客户端的关键部分的实现方案,并将描述内容的重点放在对l i n u x 环境下原有下 载工具的几点改进上,主要包括对文件多线程分块下载的改进,对p 2 s p 方式客户 端功能的支持,以及对b t 协议中块选择策略实现方式、结点选择策略实现方式和 硬盘缓冲管理方式的改进。 关键词:b t ,f t p ,h 1 v r p ,下载工具,p 2 s p a b s t r a c t a b s t r a c t n e t w o r kf i l ed o w n l o a d ,w h i c hi sa l s oc a l l e dn e tf i l e s h a r i n g , i sa l w a y so n eo f p r i m a r yi m p e t u s e so ft h ed e v e l o p m e n to fn e t w o r k p e o p l eh a v ed e s i g n e dm a n yn e t w o r k p r o t o c o l sa n dd e v e l o p e dv a r i o u sd o w n l o a dt o o l s ,j u s tf o r t h eh i g h e rp e r f o r m a n c eo ff i l e t r a n s f e ri ns p e e d ,q u a l i t y , a n dc a p a c i t y t h ee a r l yf l a s h g e ta n dn e t a n t 、析mt h ef e a t u r e o fm u l t i t h r e a dh t t p f t pd o w n l o a d , a n dt h ef o l l o w i n gb i t t o r r e n ta n de d o n k e y e m u l e f e a t u r e db ym u l t i - s o u l c et r a n s f e r , a n dt h e nt h er e c e n t l yp o p u l a rt h u n d e rw h i c hh a st h e a d v a n t a g e so ft h et o o l sa b o v ea n di sk n o w na st h ep 2 s pt e c h n o l o g y - d o w n l o a dt o o l s a n dm e t h o d sh a se x p e r i e n c e dg r e a tr e f o r m b a s e do nt h ee n o u g hs t u d yo fv a r i o u sd o w n l o a dt o o l s ,t h i sp a p e ri n t r o d u c e st h e c o n f i g u r a t i o n so fc sa n dp 2 pm f t pn e t w o r k , w h i c hi su s e db yh r r p f t po rb t d o w n l o a dt e c h n o l o g y a n dt h e nab r i e fa n a l y s i so fp 2 s pb a s i cm o d e li sg i v e n , w h i c hi s ac o m b i n a t i o no ff t p , h ma n db t t h e nt h i sp a p e ri n t r o d u c e si nd e t a i lt h ew o r k i n gp r i n c i p l ea n dp r o c e s so f h t t p f t p ,a n dt h eb a s a lt e c h n i q u eo fr e a l i z em u l t i t h r e a dc o n c u n - e n ti nl i n u x a n d t h e nt h eb a s i cw o r k i n gp r i n c i p l ea n dm o d eo fb i t t o r r e n ti sf o c u s e d a n dt h e na n a l y s e sa n dc o m p a r i s o n sa r em a d ef o rs e v e r a le x i s t i n gd o w n l o a dt o o l s , t h ee m p h a s i si sak i n do fb i t t o r r e n tc l i e n ts o u r c ep r o g r a m o nt h i sb a s i s ,ab a s i cf r a m e a n dd e s i g no fam u l t i p r o t o c o lf i l ed o w n l o a dt o o lu n d e rl i n u xi sb r o u g h tf o r w a r d ,w h i c h i sc a l l e dm d o w n l o a d e f i nt h ee n d ,t h i sp a p e rd e s c r i b e st h ep i v o t a lp a r t so fi m p l e m e n t a t i o no fh t t p 胛p a n db td o w n l o a dm o d ei nm d o w n l o a d e r a n dt h ee m p h a s i si sg i v e nt os e v e r a l i m p r o v e m e n t so ft h ee x i s t i n gd o w n l o a dt o o l s ,w h i c hi su s e di nm d o w n l o a d e ra n d m a i n l yi n c l u d e s t h ec l i e n ts u p p o r t i n gp 2 s pm o d e ,t h ei m p r o v e dm e t h o do ff i l e m u l t i t h r e a dp a r t i t i o nd o w n l o a d ,a n dt h ei m p r o v e di m p l e m e n t a t i o no fp i e c es e l e c t i o n , p e e rs e l e c t i o na n dh a r dd i s kb u f f e rm a n a g e m e n to fb td o w n l o a d k e yw o r d s :b t ,f t p ,h t r p ,d o w n l o a dt o o l ,p 2 s p 图表目录 图目录 图2 1c s 模式下的网络文件下载一4 图2 2n a p s t e r 网络构架5 图2 3m f t p 协议下p 2 p 网络的文件下载6 图2 4 迅雷下载的网络结构7 图3 1h r r p 通信过程。8 图3 2t c p i p 协议套及f t p 的地位9 图3 3f t p 的双信道连接15 图3 4 单线程进程和多线程进程的模型。18 图3 5 线程库的位置1 9 图4 - 1b i t t o r r e n t 的网络结构2 4 图4 2b t 协议中的节点( p e e r ) 间通信3 2 图6 1 多协议下载器各模块的层次结构。4 2 图6 2b t 协议相关模块的层次结构图4 3 图6 3 多协议下载工具m d o w n l o a d e r 的主要数据流图4 5 图6 4 多线程管理模块的i p o 图。4 5 图6 5h t t p f t p 下载模块的i p o 图4 6 图6 6h r r p 伊1 1 p 下载流程图4 6 图6 7 主函数完成b t 下载功能的流程图4 7 图6 8b t d o w n l o a d e r o i 函数流程图4 8 图6 - 9p 2 s p 下载方式的实现结构4 9 图7 1 文件分块存储结构5 4 图7 2 下载中的h t t p 任务( 5 线程) 5 7 图7 3 定位一个文件块正在向哪些p e e r 进行请求5 9 图7 4 为一个p e e r 配置文件块请求队列的流程6 2 图7 5 文件块请求分布表的新元素加入方式6 3 图7 6p e e r l i s t :u n c h o k e c h e c k 0 数流程图6 6 图7 7 块选择算法1 流程图6 7 图7 8 块选择算法2 流程图6 8 图7 9 用缓冲队列管理硬盘下载缓冲区7 0 图表目录 图7 - 1 0 利用“本地数据地图 ( l o c a l d a t a m a p ) 对文件块的定位。7 2 图7 11 下载中的b i t t o r r e n t 任务7 4 表目录 表3 1f t p 应答代码第一位数字的含义1 6 表3 2f t p 应答代码第二位数字的含义1 6 表4 1t o r r e n t 文件中的字段。2 9 表4 2 单一文件的洫f o 字段内容2 9 表4 3 文件目录的i n f o 字段内容3 0 表4 4n a m e 字段的内容3 0 表4 5p e e r 与t r a c k e r 的h 1 t r p 通信所包含的参数3 0 表4 6t r a c k e r 给p e e r 的返回信息3 1 表4 7t r a c k e r 返回信息中p e e r 字段的内容3 l 表4 8p e e r 之间通信的消息格式3 3 表5 1l i n u x 下的w e b 下载工具3 6 表5 2b t p e e r 类的主要功能函数3 8 表5 3p e e r l i s t 类的主要功能函数3 9 表5 _ 4ms h a k e 位填充情况40buffer68 表5 5b t c o n t e n t 类的主要功能函数4 1 表7 1h t t p f t p 下载模块的主要功能函数5 1 表7 2b t 功能模块包含的c + + 类5 2 表7 3 用4 种下载工具同时进行h t t p 下载的相关数据5 7 表7 - 4 用三种工具同时进行b t 下载的相关数据7 4 表7 5 用3 台主机测试p 2 s p 模式相关数据7 5 表7 6m d o w n l o a d e l 与c t o r r e n t 的硬盘读取次数7 5 v 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他入已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名l 座莹逡 日期:年月日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:邋导师签名:匝 日期:年月 日 第一章引言 第一章引言 1 1网络下载技术的发展状况 网络下载技术,也可以称为网络文件共享技术,它一直是网络发展的重要推 动力之一。原先的信息资源共享主要通过w e d 技术实现,即先把共享的文件放到服 务器上,然后客户机便可以通过h t r p 和f t p 等协议从服务器下载这些文件,这就 是所谓的c s 结构。随着网络应用及网络用户的大量增加,w e d 服务器需要对非常 多的用户访问提供支持,这使得w e d 服务器的性能成为了这类下载技术的最大瓶 颈。 这种情况下,以资源分散、负载均衡和非中心化为特点的p 2 p 技术在文件共享 领域得到了巨大的发展,它将共享的文件存储在客户机结点上,用户之间可以直 接共享和传输文件而不需要通过中央服务器,例如n a p s t e r 、g n u t e l l a 、k a z a a 等。 此外,p 2 p 技术还可以充分利用参与结点的带宽,通过大量结点之间互相传递数据、 合作下载的方式来提高网络中传送大容量文件的效率,例女i b i t t o r r e n t 、 e d o n k e y e m u l e 等。 虽然p 2 p 技术以完全脱离中心服务器为研究的重点,但目前在网络下载的实际 应用中,服务器模式还仍然发挥着不可替代的作用,所以就发展出了一种所谓的 p 2 s p 技术,也就是p e e rt os e r v e ra n dp e e r 技术。其实不过是传统c s 方式和一些p 2 p 技术的结合,可以认为是一个n a p s t e r l 网络、b i t t o r r e n t 网络和传统w e d 网络的混合 体,实际上仍然属于一种中心非结构化的p 2 p 网络。p 2 s p 技术利用一个中心服务器 来存放大量的下载资源链接信息( u r l ) ,当客户请求下载某个资源时,中心服务器 就将相关的下载链接和一个p e e r 的列表返回给客户,让客户从多个服务器下载资源 的同时也将获得的资源上传给其他p e e r s 。p 2 s p 在国内以迅雷的代表取得了巨大成 功,类似的还有o r b i t 、p p g o u 、t u o t u 等 对应以上网络技术的发展,就国内最普遍的应用而言,可以分为三个阶段: 第一个阶段,以h t r p 、f t p 为主,并发展出了多线程下载方式,以f l a s h g e t 、 n e t a n t s 为代表。这种下载模式由于受到服务器带宽的限制会严重影响下载的速度。 第二个阶段,以b t 和e m u l e 为代表的p 2 p 方式,其主要特征是下载源分布在众 多个人终端电脑上,这种方式避免了单一带宽对下载速度的影响,然而由于下载 电子科技大学项士学位论文 源头是个人电脑,其稳定性受到了一定酏制约。 第三个阶段,以迅雷、超级旋风、脆兔等为代表。整合了网络搜索、h t t p 下 载、f t p 下载和p 2 p ( b t 、e m u l e ) 下载等多种技术,这种方式将多个w e b 服务器和客 户一起组成p 2 p 网络,保证了下载的速度和稳定性。 1 2l i n u x 下的下载工具 w i n d o w s 中有很多用来提高下载速度和质量的工具,女n f l a s h g e t ,n e t a n t 等都 已经被大家广泛的运用。f l a s h g e t 和n e ”m t 实际上都是属于多线程下载工具。 随着l i n u x 的发展,l i n u x 的应用领域越来越广泛,而越来越多的软件工作者也 投入至l j l i n u x 环境下各种应用工具开发工作中。那么l i n u x 下的下载工具究竟如何 呢,实际上有很多软件工作者都从事这茎工具的研发,l i n u x 环境下比较常用的w e b 下载工具有下面几种: k g e t - 是k d e 默认的断点续传工具,通旨无需安装。它界面简洁,操作方便,高 效的拖拽下载功能最令人称道。比较遗憾的是它不支持代理服务器及s o c k s 5 代 理功能。 g w g e t - 是g n o m e 下常用的一个图形化下载工具。它是命令行下常用下载工具 w g e t 的g t k 图形化前端,具有w g e t 的全部功能,如断点续传、代理下载等 w g e t - 是一个十分常用命令行下载工具,多数l i n u x 发行版本都自带这个工具。 c u r l :也是l i n u x 下不错的命令行下载工具,小巧、高速,但不支持多线程下载。 d o w n l o a d e rf o rx :( 文中简称为d 4 x ) 是l i n u x 下功能强大的图形化下载工具。 支持h t i p 与f t p 协议,具有类似n e t a n t 和f l a s h g e t 等多线程、断点续传下载等功能。 d 4 x 还具有连接超时断点续传、记录下载日志、模拟下载、链接拖拽下载、自动 复制剪贴板链接到下载地址栏中等功能。 m y g e t :目标设计成一个可扩展的,拥有丰富界面的多线程下载工具,它支持h t t p 、 f t p 、h t t p s 、m m s 、r t s p 等协议。 a r i a :是个小巧的多线程下载工具,简单易用的界面用起来得心应手。 w x d f a s t :一个图形化的下载工具,支持多线程、断点续传等功能,下载速度快。 p r o z i l l a :一个十分流行的命令行下载工具,支持多线程下载和断点续传功能。 a x e l :是命令行下的多线程下载工具,支持断点续传,下载速度快。 l i n u x 环境中支持其他协议的下载工具则比较少,不过b i t t o r r e n t 和e m u l e 都有 l i n u x 版本,b t 下载还有c t o r r e n t ,但还没有迅雷这样的使用p 2 s p 技术的下载工具。 2 第一章引言 1 3本文的主要工作 本文主要研究了p 2 s p 下载方式及其相关下载技术,并研究了这些下载方式 l m u x 下的编程实现方法。用c + + 的方法实现t h t t p f t p 协议多线程下载以及b t 客户端功能,并在此基础上研究和实现了p 2 s p 方式的客户端功能,具体包括: 研究了h t r p 、f t p 和b t 协议的基本概念、工作原理和一些基本格式,分析了 它们的结合方式,也就是目前所谓的p 2 s p 下载网络的构建。并介绍l i n u x 下的线程 管理原理和多线程编程方法,对l i n u x 中现有的几种下载工具进行了分析,重点分 析了c t o r r e n t 中对b t 客户端软件的c + + 实现方法。 最后提出了l m u x 下多协议下载器m d o w n l o a d e r 的基本结构和设计方案,重点 针对原有下载工具中h t t p f t p 多线程分块,以及b t 的块选择和硬盘缓冲区管理做 出了改进。并在实现上述下载协议的基础上,实现了p 2 s p 的客户端功能。 1 4 本文的章节结构 本文以流行网络下载方式发展的先后阶段为依据来安排章节,从传统的w e b 服务器下载方式,到最新的p 2 s p 方式: 第一章介绍了网络下载技术的几个发展阶段和l m u x 下的一些下载工具;并借 此引出了自己的工作,即对l i n u x 下h t t p f t p 和b t 下载客户端的实现。 第二章简要的介绍了h t i i ,f t p 和b t 下载方式的网络结构,即c s 和p 2 p 多源文 件传输结构,并引出和简要的分析t p 2 s p 技术的基本构架。 第三章主要介绍h t t p f t p 多线程并发下载所需的基本技术,主要包括h t r p 和f t p 的基本原理及其报文或命令的基本格式,以及l m u x 中多线程管理的基本原 理和编程实现的方法。 第四章主要是描述b i t t o r r e n t 协议的基本构架、思想和算法,并说明了 b i t t o r r e n t 协议中的特殊编码和消息的格式。 第五章主要分析了l i n u x 平台中的几种现有下载工具,重点分析了b t 客户端 c t o r r e n t 。 第六章主要介绍t l i n u x 下多协议下载工具m d o w n l o a d e r 的基本结构和数据 流程图等概要的设计方案。 第七章是讲解m d o w n l o a d e r 关键部分的实现方案,包括对支持p 2 s p 方式的客 户端的实现,以及对l i n u x 下原有下载工具的改进,主要是对h t t p f t p 多线程下载 中的文件分块,和b t 下载中块选择策略和硬盘上传缓冲区管理做出的改良。 电子科技大学硕士学位论文 第二章网络下载的几种基本构架 传统的c s 网络发展出了h t t p 厄1 1 p 下载,并在客户端发展出了多线程下载方 式;而p 2 p 网络则发展出了b t 、e m u l e 这样的多源文件传输方式。传统c s 方式的 带宽是其最大的瓶颈,而b t 、e m u l e 的问题则是文件来源凌乱且不稳定。 p 2 s p ,即p e e rt os e r v e ra n dp e e r ,是最近流行起来的一种网络文件下载的概念, 迅雷( t h u n d e r ) 就是其中的典型代表。p 2 s p 的目的是利用服务器的强大功能来整合 零散的p 2 p 资源和c s 资源,提供一个统一的下载平台,使用户既可以得到c s 模式 下稳定可靠的文件传输,又可以获得p 2 p 方式下充分的带宽利用率。其实p 2 s p 本身 还是属于一种p 2 p 技术,可以认为是网络服务商提供的一种服务,它离不开服务商 提供的服务器,它是传统c s 结构、p 2 p 技术,再加上服务商提供的网络资源搜索 数据库三者的结合。目前在l i n u x 平台下还没有p 2 s p 的下载方式,为了能够在l i n u x 平台下实现这几种下载模式,本章就对它们进行一个简要分析。 2 1c s 与p 2 p 架构 传统的h t t p f t p 下载方式都是属于c s 架构,即客户端h i 务器架构。这种模 式的基本方法是将共享文件上传服务器上,而需要这些文件的用户再向服务器索 取和下载共享文件,也就意味着来自各个客户端的大量的上传下载数据都必须经 过服务器这个中转站。 而b t 协议则是属于p 2 p 架构,虽p p e e rt op e e r ,国内也翻译为对等网络或者点对 点网络。虽然对于p 2 p 并没有一个统一的定义或标准,但p 2 p 都有一个共同点就是 充分利用各结点的资源,形成一个自组织网络,在网络中每个结点都是对等的, 既享受别人的服务也为别人提供服务,传输文件数据时不再需要经过服务器【3 。 下载服务器 轳端客阜蔗飞曼轳端 d茴 轳端 第二章网络下载的几种基本构架 2 2 n a p s t e r 网络模型 n a p s t e r 是最早诞生的实用p 2 p 文件共享系统,诞生于1 9 9 9 年,它最初是为了实 现网络 m p 3 音乐文件共享而设计的。通过n a p s t e r 可以看出p 2 s p 的雏形它也 采用一个中心服务器来提供文件索引服务。 这个中心服务器被称为目录服务器,结点加入系统时,首先要连接目录服务 器并告知自身的地址及共享文件列表。当用户需要某个文件时,首先要向目录服 务器提交搜索请求,目录服务器返回符合搜索要求的所有文件的存储地址,之后 用户便根据这个地址直接从包含文件的结点进行文件下载,并不再与服务器进行 交互。也就是说目录服务器只提供索引服务,而文件存储和下载服务在n a p s t e r m 户之间进行,因此它支持上万结点同时在线【3 2 1 。 图2 - 2n a p s t e r 网络构架 2 3多源文件传输协议m f t p 目录映射 + 目录查询 匕= = 下载文件数据 多源文件传输协议即m u l t if i l et r a n s f e rp r o t o c o l ,b i t t o r r e n t 便是m f t p 协议最 早和最成功的应用之一。m y t p 主要是为了在p 2 p 网络中传输文件数据而设计,是 p 2 p 技术中的亮点之一。 m f t p 的基本思想是让p 2 p 网络用户在下载的时候同时提供上传,这样用户就 可以从多个地方下载文件,同时也必须向多个其他用户上传文件。这种方式充分 的利用;p 2 p 网络中每个结点的带宽,与最早n a p s t e i 网络相比,它大大提高了网络 下载的效率。从图2 3 中可以看出m f t p 方式的优势,该图中的每个p e e r 都为另外2 个p e e r 提供上传,因此每个p e e r 都获得了两路上传数据【2 9 】。 电子科技大学硕士学位论文 图2 3m f t p 协议下p 2 p 网络的文件下载 2 4 p 2 s p 基本架构 在了解了传统c s 下载模式、n a p s t e r 下载模式和m f t p 协议的下载模式之后, 分析p 2 s p 的下载方式就非常容易了。 首先,p 2 s p 下载中拥有一个中心服务器,可以称之为网络资源检索服务器。 客户可以利用这个服务器来搜索网络文件资源,但这些资源并不是存放在检索服 务器中,检索服务器只是存放了这些资源的网络地址,这类似- 于n a p s t e r n 络的目 录服务器功能。 第二,p 2 s p 下载的每个客户可以从多个下载服务器获得文件数据,也就是通 过多线程多源h t t p f t p 下载方式下载同一文件,这样可以缓解下载任务过于集 中,单个服务器压力过大的问题。 第三,p 2 s p 下载中每个客户在下载资源的同时,也为其他客户上传文件数据, 客户之间依据p 2 p 网络m f t p 协议的工作方式和原理来提高下载效率,同b t 协议一 样,客户( p e e r ) 之间在一个被组织的网络系统中共享同一个的文件,并主要关注的 是将此共享文件快速、有效地分布和复制到所有其它系统结点中。客户之间的p 2 p 传输缓解了源服务器的压力。 简单点说,将n a p s t e r 网络中目录服务器功能,以及b t 网络中种子文件发布和 t r a e k e r 服务器功能加起来,再加上对包含相同文件的下载服务器地址的整合功能, 便是p 2 s p 的中心服务器。 将h t r p f t p 多线程下载功能加上多源下载,再加上b t 网络中客户端的功能, 便是p 2 s p 的客户端。 将若干个b t 网络加上w e b 网络,再加上一个拥有带扩展功能的中心服务器的 6 第二章网络下载的几种基本构架 n a p s t e r n 络,便是p 2 s p 网络。 p 2 s p 模式将传统w e b 技术引入至t j p 2 p 下载技术中,克服了b t 下载资源凌乱、 种子来源不稳定和w e b 下载带宽严重不足的缺陷。p 2 s p 的缺点则是其性能过度的 依赖于其中心服务器的功能,因此对中心服务器的要求很高,另外在共享资源的 版权上也存在问题,例如迅雷和华军软件网的纠纷。 2 5 本章小结 图2 4 迅雷下载的网络结构 其他下载服务器 器 通过对几种网络结构的了解,可以发现p 2 s p 下载技术的原理并不算太难,只 要对在b t 下载的基础上,加入h t t p f t p 功能就可以实现,难点是在于需要一个强 大的服务器作为其后盾,这也是在l i n u x 平台下尚未拥有这种下载方式的原因之一。 在后面的章节中,将描述在l i n u x 平台下如何去实现c s 模式下载、p 2 p 多源文 件传输模式下载和p 2 s p 模式下载的客户端,文中将其称为m d o w n l o a d e r 。它包含 多线程h t t p f t p 下载功能,同时包含以b t 协议为基础的p 2 p 多源文件传输功能, 在有了服务器端的相应支持后,便可以实现p 2 s p 方式的文件下载。 7 电子科技大学硕士学位论文 第三章h t t p f t p 多线程下载的基本技术 本章主要说明实现h 1 即、f 口协议和l i n u x 中多线程管理的基本技术。 3 1 f t p 和h t t p 简介 h t t p 是一个应用层的面向对象的协议,由于其简捷、快速的方式,适用于分 布式超媒体信息系统。它于1 9 9 0 年提出,经过儿年的使用与发展,得到不断地完 善和扩展。目前在w w w 中使用的是h t t m 0 和h t t p 1 1 版本,而且h t t p n g ( n e x t g e n e r a t i o no f h t t p ) 的建议已经提出。h ,】w 是在w e b 服务器和w e b 浏览器之间通信 的协议,用来交互具有m i m e 格式的请求和响应报文。由于它规定了发送和处理请 求的标准方式,规定了浏览器和服务器之问传输的报文格式及各种控制信息,允 许不同种类的客户端相互通信而不存在;簧容性问题。从而定义了所有w e b 通信的基 本框架。从功能上来讲,w e b 服务器监听用户端的服务请求,根据用户请求的类型 提供相应的服务。用户端使用w e b 浏览器和w e b 服务器进行通信。w e b 服务器在接 收到客户端的请求后,处理用户请求并返回需要的数据。这些数据通常以格式固 定、含有文木和图片的页而出现在用户端浏览器。浏览器处理数据并提供给用户。 图3 一l 介绍了上述通信过程【2 4 1 。 h i t p 浏览器i n t e r a c t 网络h t t p 服务器 图3 - 1h 1 r r r p 通信过程 h t t p 协议的主要特点: 1 支持客户服务器( c s ) 模式。 2 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常 用的有g e t 、h e a d 、p o s t 。每种方法规定了客户与服务器联系的类型不同。 第三章h t y p f r p 多线程下载的基本技术 由于h t t p 协议简单,使得h t r p 服务器的程序规模小,因而通信速度很快。 3 灵活:h r r p 允许传输任意类型的数据对象。正在传输的类型i 主l c o n t e n t t y p e 加以标记。 4 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完成客户 的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 5 无状态:h t t p 协议是无状态协议。无状态是指协议对于事务处理没有记忆能 力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能 导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的 应答就较快。 f t p 协议是为了向用户提供文件传输服务而设计的,它是基于t c p i p 协议的网 络协议之一,基于t c p 安全可靠的虚电路连接方法来实现客户端于服务器之间的文 件传送,比基于u d p 数据报的普通文件传输( 椰) 具有更强的安全、可靠、便捷 性。t c p i p 协议是在物理层上基于软件的一组完整的网络通信协议,向上层基于 t c p i p 协议的其它协议提供传输控制服务和网络层的服务。图3 2 列出了t c p i p 系 统中的基本单元及f t p 在其中的地位【l 】。 文件传输协议 远程登陆 简单邮件传输协议 网际网协议 网络文件服务器 普通文件传输协议 网际控制报文协议 传输控制协议 u s e r f t p t e l e n t s m t p n f s t :f r p p r o g ra l 、! m 便 t c pu d p p i c m 田 hardwarenterface 图3 - 2t c p i p 协议套及f t p 的地位 3 2h t t p 报文结构 9 s 口 旧 p 差耋 邢 踟 唧 n , 日 限 m 一 一 p 电子科技大学硕士学位论文 在h r r p 协议中,客户端和服务器之问通信的格式称为h t r p 报文 9 1 。 3 2 1报文类型 h t t p 报文包括从客户端发送到服务器的请求报文( r e q u e s t ) 和从服务器发送到 客户端的响应报文( r e s p o n s e ) 。用b n f ( 巴科斯范式) 表示如下: h t t p m e s s a g e = r e q u e s tr e s p o n s e :h t t pm e s s a g e s 请求和响应报文采用r f c 8 2 2 规定的通用报文格式来传输实体( 报文载荷) ,两 种报文都包含起始行、零个或多个报文头域、一个表示头域结束的空白行( 只有回 车换行c r l f 的一行) 、以及可能存在的报文主体,用b n f 表示如下: g e n e r i c - m e s s a g e = s t a r t - l i n e 木( m e s s a g e - h e a d e rc r l f ) c r l f m e s s a g e - b o d y s t a r t - l i n e = r e q u e s t l i n e s t a t u s - l i n e 基于健壮性考虑,服务器应该忽略任何请求行之前的空白行。 3 2 2报文头 与r f c 8 2 2 中规定的通用格式相同,h t t p 报文头包含通用头g e n e r a l h e a d e r 、请 求头r e q u e s t h e a d e r 、响应头r e s p o n s e - h e a d e r 以及实体头e n t i t y - h e a d e r 几个域。每个头 域包含一个域名,紧跟着一个冒号( “:”) ,然后是一个域值。域名是不区分大小写 的,域值之前可以出现一个或多个空格。应用程序应该遵守头域的通用格式,通 用格式的b n f 如下: m e s s a g e h e a d e r = f i e l d - n a m e “:” f i e l d - v a l u e 】 f i e l d n a m e = t o k e n f i e l d - v a l u e = 奉( f i e l d c o n t e n tl w s ) f i e l d c o n t e n t = l w s - c r l f 】i * ( s p i h t ) 头域的内容部分不包含任何位于句首或句尾的l w s ,位于句首或句尾的l w s 可以忽略掉,不会影响域值的表达。位于域值中间的l w s 在域值被解析或向下传 递之前可以用空格来取代。虽然头域中的域名接受顺序是没有要求的,但是最好 l o 第三章h t t p f t p 多线程下载的基本技术 是先传送通用头,后面跟请求或响应头,最后以实体头结束。 具有相同域名的多个报文头域可以出现在一个报文中当且仅当该头域的整个 域值定义为逗号“,分隔的列表。必须能够通过把后面的域值附加到第一个域 值后面,中间用逗号分隔开,使得这具有相同域名的多个头域变成一个“域名:域 值 对。因此具有相同域名的多个域的传递顺序不能乱,代理服务器在转送报文 时也不能改变这些头域的顺序。 3 2 3报文体 h r r p 报文体m e s s a g e b o d y 用来携带与请求或响应相关的实体主体e n t i t y - b o d y , m e s s a g e - b o d y 和e n t i t y - b o d y 只有在应用了传输编码进行报文传输时才有区别。关系 如下: m e s s a g e b o d y = e n t i t y b o d yl 为了确保安全正确地传输报文,必须用传输编码来指明报文所采用的传输编 码方案。传输编码是报文的属性而非实体,所以在请求响应链中传递报文时传输 编码可以被方便地加上或删去。 什么时候报文中允许包含报文体,这个规则对于请求和响应是不同的。请求 中报文体的出现是用请求头域中包含内容长度c o n t e n t l e n g t h 或传输编码 t r a n s f e r - e n c o d i n g 来标明的。如果规范中规定某种请求方法不允许在请求中发送实 体主体,则该请求中一定不能包含报文体。服务器应该读取并处理报文体及任何 请求,如果接收到的请求语义中不包含实体主体的话,则在处理请求时应该忽略 收到的报文体。 对响应来说,是否报文中应该包含报文体取决于请求方式以及状态代码,所 有针对h e a d 请求方式的响应一定不能包含报文体,即使这时实体头域中规定可以 包含。所有l x x ( 通知) ,2 0 4 ( 无内容) ,和3 0 4 ( 没有修改) 响应都一定不能包含报文体。 所有其它响应都包含报文体,尽管其长度有可能为0 。 3 2 4 h t t p 请求 从客户端发送到服务器的请求报文包括请求行,一系列的通用头、请求头、 实体头,以及可能存在的请求报文体请求报文的b n f 表示如下: r e q u e s t = r e q u e s t - l i n e 掌( ( g e n e r a l - h e a d e r 电子科技大学:页士学位论文 ir e q u e s t - h e a d e r ie n t i t y - h e a d e r ) c r l f ) c r l f m e s s a g e - b o d y h t t p 请求行 h r r p 请求行以请求方式开始,后而接用来指定请求资源的请求u r i ,然后是 r r p 协议版本,最后以c r l f 结束请求行,各个元素之间以空格s p 分开。表示如下: r e q u e s t - l i n e = m e t h o ds pr e q u e s t u r is ph t t p - v e r s i o nc r l f h 1 阳请求方式 请求方式的标记用来表明针对u r i 指定资源的请求方式,请求方式b n f 如下: m e t h o d = “o p i i o n s l “g e t ” i “h e a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 远程桌面用的协议书
- 两人合伙开公司协议书
- 2025饲料、兽药、养殖设备购销合同范文
- 美国国际征税协议书
- 2025北京购房合同示范文本
- 2025装饰房屋合同书范本
- 2025至2030浮潜面罩行业产业运行态势及投资规划深度研究报告
- 公路安全员题库案例题及答案解析
- 2025至2030全球及中国自主技术行业发展趋势分析与未来投资战略咨询研究报告
- 2025中介合同协议书模板
- 《动物营养学》全套教学课件
- 职业病化学中毒考试试题及答案
- 医保法律法规培训
- 挫而不折破茧成蝶高一主题班会课件
- 《狼来了》寓言故事演讲课件
- 人教版数学九年级上册期末考试卷附答案
- 功能科提高动态心电图检查人次PDCA
- 冀少版七年级生物上册《第二单元生物的多样性》单元测试卷及答案
- 小学家委会工作职责
- 北京市海淀区2022-2023学年高三上学期期中英语试题(解析版)
- 2023-2024学年安徽省九年级语文上学期期中质量检测试卷附答案解析
评论
0/150
提交评论