(计算机系统结构专业论文)高性能网络流量控制系统的研究与设计.pdf_第1页
(计算机系统结构专业论文)高性能网络流量控制系统的研究与设计.pdf_第2页
(计算机系统结构专业论文)高性能网络流量控制系统的研究与设计.pdf_第3页
(计算机系统结构专业论文)高性能网络流量控制系统的研究与设计.pdf_第4页
(计算机系统结构专业论文)高性能网络流量控制系统的研究与设计.pdf_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 互联网技术的发展使得网络成了一种新的传媒载体,而媒体的急速增长又给 互联网带来了很大冲击。尤其是网络视频、个人媒体、传统电视等媒体向互联网 的渗入使得网络中的流量急剧上升,这使得运营商的运营和管理成本大幅度增长。 运营商可以采用限流的方法来控制网络流量,但这同时也限制了网络媒体的发展, 最终不利于互联网的进一步发展。于是开发一种新的技术来控制网络流量成了一 个研究热点。 目前,互联网上的流量主要由p 2 p 和h t t p 产生,据估计这两种流量已经占 到全部流量的7 0 以上,并且仍然呈现出上升趋势。因此流量控制的重点是p 2 p 和h t t p ,降低这两种协议产生的流量将有效降低网络整体流量。本文介绍的流量 控制系统即是专门针对p 2 p 和h t t p 开发的一套系统。将系统部署在网络出口来 缓存p 2 p 和h t t p 流量,对同一资源的后续请求将由缓存来响应,从而降低网络 流量、节省带宽并提高用户体验。 系统基于l i n u x 平台,采用设计模式的技术进行设计。由于系统部署在运营商 的网络出口,所以会面临很大的服务压力,因此高性能是系统的关键需求。设计 系统时采用了若干措施来提高性能。首先是并发度,由于系统会在短时间内收到 大量请求,而传统的一个连接一个线程的模式并不能应付这种高并发的情况。为 此系统采用了反应器的模式,该模式基于l i n u x 2 6 内核的e p o l l 调用,因此系统的 并发度就只受操作系统中文件描述符数的限制( 理论值为6 5 5 3 6 ) 。其次是磁盘i o , 在系统中磁盘i o 是一个热点,系统采用了线程池模式来提高磁盘的吞吐能力。该 模式将磁盘i o 和通信机制独立开来,降低了系统的实现复杂度。同时线程池内有 若干个线程在同时处理磁盘i o ,从而大大提高了磁盘的吞吐能力。最后是数据的 组织与检索,数据在系统中以文件的形式存储,系统采用三级目录的形式来存储 文件。为了加快检索速度,系统在内存中为所有文件建立一个索引,通过该索引 可快速定位到一个文件。 本系统己被广泛部署,从实际使用中得到的数据表明该系统并发能力强,磁 盘吞吐率高,能够有效降低网络流量。 关键词:缓存,反应器,线程池,e p o l l ,h t t p ,p 2 p a b s t r a c t a b s t r a c t t h ed e v e l o p m e n to fi n t e r n e tt e c h n o l o g ym a d et h en e t w o r kb e c o m ean e wc a r r i e ro f m e d i u m ,a n dt h er a p i dg r o w t ho ft h em e d i u mh a sb r o u g h t ag r e a ti m p a c tt ot h ei n t e r n e t v i c ev e r s a e s p e c i a l l yt h ei n f i l t r a t i o no fv i d e o ,p e r s o n a lm e d i u m ,t r a d i t i o n a lt e l e v i s i o n a n do t h e rf o r m so fm e d i u mi n t ot h ei n t e r n e tm a d et h en e t w o r kt r a f f i ci n c r e a s e d d r a m a t i c a l l y , w h i c hc a u s et h eo p e r a t i n ga n dm a n a g i n g c o s to fl s pg r o wr a p i d l y i s ph a s u s e ds o m em e t h o d so ft r a f f i c 1 i m i t i n gt oc o n t r o lt h en e t w o r kt r a f f i c ,b u tt h e s em e t h o d s l i m i t e dt h ed e v e l o p m e n to fm e d i aa l s o ,a n dw e r en o tb e n e f i tt ot h ef u r t h e rd e v e l o p m e n t o ft h ei n t e r n e t s oi n v e n t i n go fan e wt e c h n o l o g yt oc o n t r o ln e t w o r kt r a f f i ch a sb e c o m e af o c u so fr e s e a r c h a tp r e s e n t ,t h ei n t e r a c tt r a f f i cw a sm a i n l yg e n e r a t e db yp 2 pa n dh t t p i tw a s e s t i m a t e dt h a tt h e s et w ok i n d so ft r 疆i ch a v ea c c o u n t e df o rm o r et h a n7 0 o ft c i t a l t r a f f i c ,a n ds t i l ls h o w e dar i s i n gt r e n d s oi ti si m p o r t a n tt oc o n t r o lt h et r a f f i cg e n e r a t e d b yp 2 pa n dh t ,i pw h e nr e d u c i n gt h et r a f f i cg e n e r a t e db yp 2 pa n dh t t p t h eo v e r a l l n e t w o r kt r a f f i cw i l lb ee f f e c t i v e l yr e d u c e d t h et r a f f i cc o n t r o ls y s t e md e s c r i b e db yt h i s t h e s i sw a ss p e c i f i ct op 2 pa n dh t t p t h i ss y s t e mw a sd e p l o y e da tt h eo u t l e to fn e t w o r k t oc a c h et h ep 2 pa n dh t t pt r a f f i c b yr e s p o n d i n gt h ef o l l o w i n gr e q u e s t sf o rt h es a m e r e s o u r c ew i t ht h ec a c h e dr e s o u r c e t h en e t w o r kt r a f f i ca n db a n d w i d t hw i l lb er e d u c e d , a n dt h eu s e re x p e r i e n c ew i l lb ei m p r o v e d t h i ss y s t e mw a sb a s e do nt h el i n u xp l a t f o r m ,a n du s e dm a n yd e s i g np a t t e r n si n t h ep r o c e s so fd e s i g n t h eh i g h p e r f o r m a n c ew a st h ek e yd e m a n do ft h es y s t e m , b e c a u s et h es y s t e mw a sd e p l o y e da tt h eo u t l e to fn e t w o r k ,w h i c hw o u l df a c eh e a v y s t r e s so fs e r v i c e s e v e r a lm e a s u r e sw e r ea d o p t e dt oi m p r o v et h ep e r f o r m a n c e f i r s tw a s t h ec o n c u r r e n c y b e c a u s et h es y s t e mw o d dr e c e i v eal a r g en u m b e ro fr e q u e s t si nas h o r t t i m e ,t h et r a d i t i o n a lm o d e lo fo n ec o n n e c t i o np e rt h r e a dc o u l dn o tc o p ew i t hs u c hah i g h c o n c u r r e n c ys i t u a t i o n f o rt h i sr e a s o n ,t h ep a t t e r no f r e a c t o rw h i c hb a s e do nl i n u x 2 6 s e p o l ls y s t e mc a l lw a sa d o p t e d ,s o t h a tt h ed e g r e eo fc o n c u r r e n tw a so n l ys u b j e c tt ot h e n u m b e ro ff i l ed e s c r i p t o r ( t h e o r e t i c a lu p p e rl i m i tw a s6 5 5 3 6 ) i nt h eo p e r a t i n gs y s t e m s e c o n dw a st h ed i s ki o t h ed i s ki ow a sah o ts p o ti nt h es y s t e m t oi m p r o v et h e n 垒呈翌墨叁里_ 一一 c a p a c i t yo ft h r o u g h p u to ft h ed i s kt h ep a r e mo ft h r e a dp o o lw a su s e d t h ec o m p l e x i t y o fi m p l e m e n t a t i o nw a sr e d u c e db e c a u s et h i s p a t t e r ns e p a r a t e dt h ed i s ki o 舶m c o m m u m c a u o nm e c h a n i s m s ;a n dt h ec a p a c i t yo f t h r o u g h p u to ft h ed i s kw a si m p r o v e d b e c a u s et h e r ew e r em a n yt h r e a d s i nt h et h r e a dp o o l d e a l i n gw i t h t h ed i s kf o s i m u l t a n e o u s l y f i n a l l yw a st h eo r g a n i z i n ga n di n d e x i n go ft h ed a t a t h ed a t aw a s s t o r e di nt h ef o r mo ff i l e sw h i c hw e r eo r g a n i z e d i n t ot h r e el e v e ld i r e c t o r i e s i no r d e rt o s p e e du pt h es p e e do fr e t r i e v a l ,t h es y s t e mc o n s t r u c t e da ni n d e xi nt h em e m o r yf o ra l l t h ef i l e s t h r o u g ht h i si n d e xaf i l ec o u l db el o c a t e dq u i c k l v t h i ss y s t e mh a sb e e nd e p l o y e dw i d e l y t h ed a t ao b t a i n e df r o map r a c t i c a lu s e s h o wt h a tt h es y s t e mh a ds t r o n gc o n c u r r e n c y , h i g hd i s kt h r o u g h p u ta n dc o u l dr e d u c e n e t w o r kt r a f f i ce f f e c t i v e l y k e y w o r d s :c a c h e ,r e a c t o r , t h r e a dp o o l ,e p o l l ,h t t p , p 2 p i i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的 地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不 包含为获得电子科技大学或其它教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示谢意。 签名:妇盗盘日期缈1 年b 月弓日 , 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论 文的规定,有权保留并向国家有关部门或机构送交论文的复印件和 磁盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位 论文的全部或部分内容编入有关数据库进行检索,可以采用影印、 缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:玉蜚壹 导师签名: 日期:舻7 年参月3 e l 第一章引言 1 1 课题研究背景 第一章引言 i n t e r n e t 自诞生以来就不断发展,尤其是近年来随着网络基础设施的不断发展, 网络的带宽不断提高。目前i n t e m e t 在中国的大中城市已普及,并不断向县城和农 村发展。据中国互联网信息中心( c n n i c ) 的统计数据显示【l 】,到2 0 0 6 年6 月3 0 日为止,中国总上网人数己达到1 2 3 亿人,联网计算机数达到5 4 5 0 万台,国际总 出口带宽达到2 1 4 1 7 5 m 。较之于半年前( 截至2 0 0 5 年1 2 月3 1 日) 的统计数据, 半年的增长率分别约为1 0 8 、1 0 1 和5 7 4 。其中国际出口带宽的增长速度非 常惊人,如果以年为单位进行比较,即与2 0 0 5 年6 月3 0 日相比,增长率更加惊 人,为1 5 9 2 。并且,这个激增的趋势还将继续。基于这些优势,i n t e m e t 已逐渐 从一个内容传输系统发展成为一个新的传媒载体。各种各样的新媒体不断向互联 网渗透【2 】。在中国以土豆( 日上传量达4 0 0 0 余个视频作品,日播放量近3 0 0 万) 为 代表的一大批个人媒体运营商正在高速地发展。2 0 0 6 年中国观看过网络视频的用 户有6 3 0 0 万人,占中国网民的4 7 。与此同时,传统电视也不断向互联网方向发 展,中央电视台、北京电视台、湖南卫视、凤凰卫视等电视台已经进入到互联网。 互联网技术的发展使得网络成了一种新的传媒载体,而媒体的急速增长又给 互联网带来了很大冲击。尤其是网络视频、个人媒体、传统电视等媒体进入互联 网使得网络中的流量急剧上升。据权威部门统计,当前视频流量已经占到整个互 联网流量的7 0 左右,并且正在以每年3 5 0 的速度增长【3 】。视频流量消耗了巨大 的网络带宽,使得网络基础设施不堪重负,运营商的运营和管理成本大幅度增长。 因此运营商急需采取一定的技术来管理网络流量,降低带宽消耗。为此运营商采 取了精密的流量分析技术来准确识别出各种流量,在此基础上运营商可以阻断一 些大量消耗带宽的协议,从而达到降低网络流量的目的,但这同时也限制了一些 网络媒体应用的发展,最终不利于互联网的进一步发展【4 】。于是开发一种新的技术 来控制网络流量成了一个研究热点。 电子科技大学硕士学位论文 1 2 技术现状和趋势 目前,国内的视频数据流已占到整个网络流量的6 0 7 0 以上,预计在未来几 年内视频流量将会占到全球网络流量的7 0 以上【引。进一步分析发现视频数据流一 半由h t t p 产生,一半由p 2 p 协议产生【5 j 。这两种协议采用的架构是不同的。h t t p 采用c s 方式,数据由中心服务器流向客户端,这种流量易于管理,不管是采用 限流还是缓存,只需控制服务器的流量就能达到目的。而p 2 p 协议则采用对等的 方式,其特征之一就是弱化了服务器的作用,甚至取消服务器,运行p 2 p 协议的 任何p c 机都是客户端同时也是服务器,所有p c 都处于同等地位。在p 2 p 方式下, 任意两台p c 机之间都可以传输数据,数据的传输变的毫无规则,因此这种流量很 难管理。 为了控制网络流量,运行商采用了精密的流控设备【6 】,通过部署7 层流量分析 控制设备在p o p 点或网络出口处,对p 2 p 等应用进行分析和阻断、限速等控制, 这是目前运营商主要采用的管理措施。7 层流量分析控制设备通过分析、识别、控 制的方式逐包检测网络出口的每一个包,然后用匹配策略进行策略管理控制。7 层 流量分析控制设备的优势是不仅可以管理可识别出的p 2 p 应用,还可以保证关键 业务的q o s 。但是这种流量管理方式的局限性也十分明显。当前的流控设备还不 支持大流量网络端口,目前几乎所有的7 层流量分析控制设备可管理的流量都是 g e 级别的流量,不支持p o s 接口。主流运营商的网络接口多为2 5 gp o s 或1 0 g p o s 接口。显然,目前主流的7 层流量分析控制设备不能满足运营商网络环境的 需求。同时流控设备采用串联的方式接入,在网络出口的关键位置增加了可能有 源故障节点。最主要的是采用封堵的做法只是控制了p 2 p 流量,并且也只是缓解 而不是根治。封堵的做法控制了流量但同时也大幅降低了用户体验,导致了抱怨、 投诉甚至转网,进而影响了运营商的正常业务和运营收入。总之,只堵不疏的办 法遏制了p 2 p 应用的正常发展,使得p 2 p 应用失去了发展成为一种增值应用的可 能,运营商会失去很多潜在的商机,因此这种做法只是权宜之计。 采用限流的方法来控制流量是治标不治本的做法,在降低网络流量的同时也 限制了部分应用的发展。经过流量统计我们发现,部分热点内容占用了网络的绝 大部带宽,反应到用户下载行为也就是有大量用户分别在不同时间下载了相同的 内容。而每下载一次都要消耗出口带宽,我们完全可以将这些内容放在内网里重 复利用,不需要每次都到外网去下载,从而减少出口流量。基于这样的思想,我 们开发了代理技术,即内网代理服务器代替客户端向原始服务器发起请求;代理 2 第一章引言 服务器收到原始服务器的响应后将响应存储在本地,然后发回给客户端;以后客 户端对相同内容的请求都将由代理服务器直接响应。采用代理缓存技术后,对相 同内容的多个请求只有第一个请求会消耗出口带宽,后续请求直接由代理服务器 响应,由于代理服务器在内网,所以响应并不经过网络出口,也就没有消耗出口 带宽。 对于h t t p 来讲,其经过多年的发展已经非常完善,是目前i n t e m e t 中广泛使 用的协议之一,w e b 的广泛发展即得益于h t t p 。h t t p 已由原来的1 0 版本发展 到现在的1 1 版本,h t t p 1 1 t7 】的一个显著特点就是增加了对缓存的支持,整个 h t t p 1 1 有1 4 的篇幅是专门针对缓存的。到目前为止已经开发出很多专业的代 理服务器,有商业的也有开源的,最著名的开源代理服务器要数s q u i d t 引。但这些 代理服务器都是通用型的,可以有效处理一些小数据,比如网页。对于目前的音 视频文件动辄几十兆几百兆,传输一个文件需要几十分钟甚至数个小时,当前的 服务器无论是并发度还是磁盘i o 都不能很好地应付这些大文件。因为代理服务器 在传输这些大文件时需要将连接长时间地保持,当前的这些服务器只能并发处理 数百个连接,于是当服务器变得繁忙时将会有很多客户端的请求被拒绝。同时当 前这些服务器的文件系统都被设计为处理小文件,处理大文件时将变得非常低效。 于是急需对现有系统从并发度和磁盘i o 两方面进行改造,或者专门针对音视频文 件设计新的代理服务器。 对于p 2 p 来讲,现有的p 2 p 管理方案都是以封堵为主,这样的解决方案必然 会降低p 2 p 用户的应用体验。在运营商间竞争激烈的今天,运营商首先要关注的 又是用户体验,这就使得运营商对于p 2 p 应用的管理陷入两难境地:管,影响用 户体验;不管,对网络服务及品质影响巨大。因此,单纯对p 2 p 进行限流已不能 满足网络的发展趋势。在此背景下,已出现了一些新的p 2 p 智能管理解决方案, 其核心思想是“疏堵结合、为我所用”。在运营商的网络内部部署p 2 p 代理缓存系 统,缓存外网的p 2 p 内容,主动引导本地内网p 2 p 用户优先交换内容,为内网用 户提供服务。这样既可以为内网用户提供可管理的p 2 p 服务,保证用户的p 2 p 应 用体验;又可以缓解p 2 p 应用对网络出口的压力,减少p 2 p 流量对网络质量和网 络服务的影响。通过建设p p c a c h e 9 】系统,也是在建设未来的内容服务平台,将 p 2 p 应用转化成一种增值服务。目前,基于“疏堵结合”解决方案是业内能同时兼 顾运营商利益和广大用户权益的p 2 p 应用智能优化管理解决方案。 电子科技大学硕士学位论文 1 3 本文的工作和创新 在整个系统中,代理服务器处于重要地位,它负责存储数据并且同时对大量 客户端提供服务。高的网络并发度和高效磁盘i o 是代理服务器支持多用户并发请 求的两个关键指标,也直接影响系统的性价比,决定其能否达到大规模应用的需 求。 本文的工作是基于l i n u x 平台设计并开发了一个高性能的代理缓存服务器。本 服务器的设计和开发工作,首先是高并发,所有的网络i o 都利用l i n u x 的e p o l l 调用来驱动。相对于多线程或s e l e c t ,e p o l l 在同时处理大量套接字时效率非常高, 基于e p o l l 的网络i o 为高并发提供了保证。其次是高效的磁盘i o ,采用线程池的 方式将磁盘i o 和业务逻辑、通信机制独立开来,从而在整体逻辑上实现了磁盘i o 的异步处理。在线程池内同时存在若干线程来处理磁盘读写,提高了磁盘的吞吐 能力。最后,在设计系统时采用了若干设计模式,例如采用反应器模式来处理网 络通信、采用线程池来处理磁盘i o 等。采用这些设计模式,大大提高了系统的结 构化程度和可扩展性,同时也简化了系统的设计。 综上,本文的主要创新点在下列方面: 1 ) 采用基于e p o l l 的事件驱动模型来处理网络通信,避免了系统阻塞和大量 线程带来的开销,保证了高并发能力。 2 ) 采用线程池来处理磁盘i o ,实现了磁盘i o 的异步处理,提高了磁盘i o 的总并发能力。 3 ) 将设计模式用于服务器的设计,提高了系统的结构化程度和可扩展性,降 低了系统复杂度。 1 4 本文的内容和组织 本文详细叙述了用于缓存音视频等文件的代理缓存服务器的设计与实现。该 服务器基于l i n u x 平台,高性能和高结构化程度是系统的主要特点。论文共分为五 个部分: 第一章是引言,对课题的相关背景进行了介绍。 第二章是相关协议介绍,对p 2 p 协议和h t t p 协议进行简单介绍。 第三章是设计模式,详细介绍了设计服务器时使用的设计模式。 第四章是高性能代理缓存服务器的设计与实现,详细介绍了服务器的磁盘i o 4 第一章引言 处理,如何实现高并发网络处理,以及业务逻辑。同时对基本功能模块进行了详 细描述。 第五章是测试分析,通过实际使用取得的数据来证明服务器的有效性。 第六章是结论和展望,对本文所设计的服务器的特点进行了总结,提出了今 后的研究发展方向。 电子科技大学硕士学位论文 2 1p 2 p 协议 2 1 1p 2 p 简介 第二章相关协议介绍 p 2 p ( p e e r - t o p e e r ) 即对等计算或对等网络,网络中的各个节点处于平等地位, 每个节点既是服务器也是客户端。当前对p 2 p 计算并没有严格的定义,多数定义 突出了p 2 p 模式与c s 模式的主要区别,即p 2 p 网络中通常没有专门的服务器, 计算节点在功能上是对等的。传统的c s 计算模式采取集中控制的方式,由单一 的服务器提供服务并对客户端进行控制;而p 2 p 网络中各个节点在逻辑上是对等 的,各个节点之间可以直接进行数据通信而不需要通过中间的服务器,每个节点 同时充当其他节点的服务器和客户端。通常认为p 2 p 和c s 是实现分布式计算的 两种不同方式【1 0 1 。 下面是关于p 2 p 计算的一些著名的定义,每个定义从不同方面揭示出p 2 p 的 特征: 1 ) o r e l l y 的c l a ys h i r k y 对p 2 p 计算的定义剐1 1 】:“p 2 p 是一类利用各种 i n t e m e t 边缘资源的应用程序,边缘资源包括存储、计算、内容、人力等资源:访 问这些分散资源意味着在不可预测的p 地址和不稳定的网络连接环境中进行,所 以p 2 p 节点必须独立于d n s 系统和中心服务器,完全或高度的自治和自组织”。 2 ) p 2 p 工作组( p 2 pw o r k g r o u p ) 对p 2 p 计算的定义是“系统之间通过直接交 换来共享计算机资源和服务【1 2 】”。 3 ) a l e xw e y t s e l 对p 2 p 计算定义是“以非客户方的方式使用i n t e m e t 的外围设 备【1 3 1 。 定义一说明p 2 p 节点必须独立于d n s 域名系统和中心服务器,各节点完全或 高度自治。根据系统中所有节点的自治程度和覆盖网的拓扑结构可以将p 2 p 系统 分成两类: 1 ) “集中定位 方式 采用这种方式时,p 2 p 网络中仍然存在服务器,其他节点的加入或退出需要和 服务器进行联系,普通节点需要向服务器注册它所提供的服务内容及相关节点信 6 第二章相关协议介绍 息,服务器对这些内容或信息进行索引或管理,以供别的节点进行查询、检索等 操作。普通节点在服务器上搜索到所需的服务或信息的具体位置后,即可直接和 目标节点建立联系并进行后续的对等交互,此后不需要服务器的参与。n a p s t e r 1 4 】 和b i t t o r r e n t 1 5 都属于此类。 2 ) “完全对等方式 采用这种方式时,p 2 p 网络中彻底消除了管理服务器的存在,整个系统只是通 过节点之间的邻居关系来维系。众多节点之间靠一定的协议和策略来组织和协作, 各个节点在资源的发布和搜索以及后续的交互中,都处于同样的地位发挥的作用。 采用广播策略的g n u t e l l a 1 6 以及f r e e n e t ,还有后来的d h t 系统都属于此种类型。 采用“完全对等”方式的p 2 p 系统根据节点拓扑结构的不同又可以分成两类。 一种是无结构的,各个节点之间的邻居关系完全是在新节点进入时随机确定的, 没有一定的策略安排,g n u t e l l a 及f r e e n e t 即属于此类。另一种是结构化的,新节 点加入时会按照一定的策略被放置在网络中特定的位置上,c h o r d 1 7 且p 属于此类。 目前采用p 2 p 思想设计的协议有多种,例如b i t t o r r e n t 、e m u l e 、x u n l e i 等协议。 下面几节对影响最广、使用最多的b i t t o r r e n t 协议( 简称b t ) 进行一个较详细的介 绍。 2 1 2b t 体系结构 b t ( b i t t o r r e n t 1 5 j ) 是在多用户参与的前提下,为充分利用带宽而设计的文件 传输协议,主体设计思想是将文件分散为多个块,然后将分散的文件块分发给不 同的用户,用户之间再互相交换文件块。改变过去多个用户从一台服务器读取文 件的思想,用户之间直接进行文件交换,大大提高了下载传输的速度。b t 这种下 载方式实际上是下载者之间“互相协助”,一个下载者不再是简单的“下载”者,它既 要下载又要充当服务器把自己已经下载的文件或者某些已经下载的部分提供给其 他用户使用。 整个b t 系统的结构见图2 1 。下面对系统的各个部件进行具体的介绍。 ( 1 ) 普通w e b 服务器:提供了b t 发布的统一管理,用来进行b t 发布,并提 供t o r r e n t 文件的下载 ( 2 ) 静态元信息文件( 扩展名为t o r r e n t 的文件) :纪录了发布服务器的位置 ( a n n o u n c e 后跟的就是t r a c k e r 的位置) ,让b t 知道是哪个t r a c k e r 服务器发布的, 然后是一些文件信息:文件名,目录名,长度等等,最后是片段长度和片段 电子科技大学硕士学位论文 的s h a 1 校验码。 w e b 服务器t r a c k e r t o r r e n t 丘e w e b p a g e p e e r sl i s t 人 锯接别 b r r e 丑t 文件 t o r r e n t 一,三一吣 、 : l p i e c e s 一 c n 攀 p e e r ( 1 e e c h e 。心 p i x b 图2 1b t 系统结构 p e e r ( 1 e e c h e r ) ( 3 ) b t 跟踪器( t r a c k e r ) :是整个系统的中心管理器,用来维护一个文件到当 前正在下载该文件的客户端的动态列表。列表的每一项代表一个客户端( p e e r ) , 其中包含用户的i p ,i n f oh a s h 等信息。用户在开始下载一个文件时先联系t r a c k e r , t r a c k e r 然后给用户返回一个当前正在下载该文件的客户端的列表,这样用户就可 以向该列表中的客户端请求数据。 ( 4 ) 具有w e b 浏览器和b t 下载软件的客户端( 1 e e c h e r ) :b t 客户端一般装有 w e b 浏览器和b t 下载的源程序,通过w e b 浏览器连接到服务器,然后下载得到 t o r r e n t 文件,再通过h t t p 协议和t r a c k e r s 服务器取得联系。t r a c k e r 服务器可以 提供给b t 客户端其他在线的用户,并与这些用户连接起来,从他们那里取得需要 下载的文件。客户端还要向t r a c k e r 实时的报告下载的状态,其中包括在线的种子 数目、下载人数、文件下载量、下载速度、文件上传量、上传速度、出错情况等 信息。 ( 5 ) 具有完整文件的原始客户端( s e e d ) :在最开始,必须有一个客户端有完整 的文件,这样其它客户端才能开始下载。在下载过程中逐渐会有客户端得到完整 的文件,这时它们就成为了种子,区别于原始种子,它们是在下载过程中动态产 生的。 8 第二章相关协议介绍 2 1 3b t 下载流程 b t 作为一种文件传送协议,并不使用客户服务器的方式,而是采用各节点对 等( p e e r t op e e r ) 的传输方式。其中的w e b 服务器和t r a c k e r 与传统意义上的服务 器不同,它们不提供要下载的源文件,而是提供一些客户端之间能够进行联系的 信息,正是利用这些信息客户端才能相互找到对方,从而才能开始下载。 b t 的下载流程如图2 2 所示:当一个新用户( 新p e e r ) 要通过b t 来下载文 件时,首先向w e b 服务器提出申请,这个用来发布b t 种子的w e b 服务器便会向 用户提供一个t o r r e n t 文件。t o r r e n t 文件中记录了t r a c k e r 服务器的地址,以及要下 载文件的相关信息。新用户的b t 软件会分析t o r r e n t 文件,得到t r a c k e r 服务器的 地址,并通过h t t p 协议与t r a c k e r 服务器建立连接。t r a c k e r 服务器搜索当前正在 下载同一文件的在线用户,并将他们的i p 地址等信息加入到自己的列表( p e e r l i s t ) 中,然后t r a c k e r 服务器会从自己的列表中通过随机算法选择多个客户端( p e e r s ) , 并把他们的i p 地址等信息返回给新用户。同时t r a c k e r 服务器会将新用户的i p 地 址、端口等信息加入到自己的列表中,以便其他用户可以找到自己。 里鬯 旷1 口 图2 2b t 下载流程 这样新用户通过t r a c k e r 服务器提供的信息,与其他用户建立起点到点的双向 连接方式,同时也建立了属于自己的集群( 当前正在下载该文件的若干p e e r ) ,然 后通过p e e r 交换协议开始进行文件传输与交换。 9 电子科技大学硕士学位论文 2 1 4p e e r 交互协议 本节介绍b i t t o r r e n t 的p e e rw i r e 协议。该协议主要描述的是p e e r 与p e e r 之间 的传输规定。 ( 1 ) 连接状态 客户端必须为每个连接维持状态信息,p e e rw i r e 协议定义了两种状态,c h o k e d 表示不允许下载,i n t e r e s t e d 表示允许下载。但在实现时用四个字段来表示,例如 采用下列形式: a l t lc h o k i n g = 1 ,该客户端阻塞p e e r a i di n t e r e s t e d = 0 , 该客户端希望从p e e r 下载数据 一p e e r c h o k i n g = 1 ,p e e r 阻塞该客户端 p e e ri n t e r e s t e d = 0 ,p e e r 希望从该客户端下载数据 只有当用户希望下载而对方不阻止的时候,才能下载信息;当对方希望下载 而用户又不阻止的情况下,才能上传信息。因此确定连接的状态非常重要。 ( 2 ) 握手( h a n d s h a k e ) 过程 两个p e e r 在进行数据传输时,首先发送的是握手消息,其格式如下: p s m e n :p s t r 的字符串长。( p s t r l e n = 1 9 ) 一p s t r - 协议的字符串标识符。( p s t r = ”b i t t o r r e n tp r o t o c o l ”) 一r e s e r v e d :保留的8 个字节位。 i n f oh a s h :2 0 个字节的s h a lh a s h 校验码,与t r a c k e rg e t 请求中的 i n f oh a s h 相同。 - p e e ri d :用户的唯一标识i d ,2 0 字节长。 图2 3 以顺序图的形式给出握手过程。如图所示,两个p e e r 建立连接时,首 先发送握手消息,握手信号中带有i n f oh a s h 和p e e ri d 信息,对方如果有相同的 i n f oh a s h 和与之匹配的p e e ri d ,就回复用户响应,进行消息( m e s s a g e ) 交换。否 则,如果没有匹配的i n f oh a s h 和p e e ri d ,则对方会断掉连接。 1 0 第二章相关协议介绍 甲 1 :握手请求,包含j n f o - h a s h 和p e e l i d甲 旷:囊:i :嘉:二9 口口 i ; 图2 - 3p e e r 握手过程 ( 3 ) 交换消息 握手过程完成后,p e e r 之间开始交换消息( m e s s a g e s ) ,并开始下载数据。p e e r 交互协议中消息( m e s s a g e ) 的表示格式是: 一1 e n g t hp r e f i x :表示信息的长度。 m e s s a g ei d :一个十进制的数。 p a y l o a d :信息的承载内容。 信息( m e s s a g e ) 的有多种用途的消息,其语法和语义如下: k e e p a l i v e : k e e p a l i y e 是0 字节的信息。 一c h o k e : t m c h o k e : i n t e r e s t e d n o ti n t e r e s t ed : - h a v e : 通常在位图发送给对方用户后,用户还会下载新的文件块。h a v e 消息用来表 示用户新下载的块,p i e c ei n d e x 表示块的索引号。 - b it f i e l d : 在握手序列完成后,其他信息未发送前,会立即发送b i l f i e l d 信息告诉对方自 己所拥有的文件块。如果用户没有数据块,就没有必要发送此信息。b i t f i e l d 信息 表示用户所有块的位图。位图是变长的,x 的值就是它的长度。关键字b i t f i e l d 表 示拥有的文件块的内容。 一r e q u e s t : 电子科技大学硕士学位论文 对方请求下载的信息,表示希望下载的文件块的内容是什么。i n d e x 表示希望 下载的文件块的标号,b e g i n 表示文件块的起始位置,l e n g t h 表示文件块的长度, 通常必须小于2 的1 7 次方字节,典型的值是2 的1 5 次方。 - p i e c e : 文件块信息,是用户下载的数据内容。它是变长的,x 是分片的长度。i n d e x 表示文件块的标号,b e g i n 表示文件块的起始位置,p i e c e s e c t i o n 表示文件块的内 容。 一c a n c e l : 该消息是定长消息,用于取消一个块的下载请求。其有效载荷和“r e q u e s t 消 息一样。 2 2 1h t t p 简介 超文本传输协议( h t t p ,h y p e r t e x tt r a n s f e rp r o t o c 0 1 ) 是因特网上应用最为 广泛的一种网络协议。所有的w w w 文件都必须遵守这个标准。设计h t t p 最初 的目的是为了提供一种发布和接收h t m l 页面的方法。h t t p 的发展是万维网协 会( w o r l dw i d ew e bc o n s o r t i u m ) 和i n t e m e t 工作小组( i n t e m e te n g i n e e r i n gt a s k f o r c e ) 合作的结果,( 他们) 最终发布了一系列的r f c ,其中最著名的就是r f c 2 6 1 6 。r f c2 6 1 6 7 j 定义了h t t p 协议的我们今天普遍使用的一个版本- h t t p 1 1 。 h t t p 是一个客户端和服务器端请求和应答的标准。客户端是终端用户,服务 器端是网站。通过使用w e b 浏览器、网络爬虫或者其它的工具,客户端发起一个 到服务器上指定端口( 默认端口为8 0 ) 的h t t p 请求。( 我们称这个客户端) 叫用 户代理( u s e r a g e n t ) 。应答的服务器上存储着( 一些) 资源,比如h t m l 文件和图 像。( 我们称) 这个应答服务器为源服务器( o r i g i ns e r v e r ) 。在用户代理和源服务 器中间可能存在多个中间层,比如代理,网关,或者隧道( t u n n e l s ) 。尽管t c p i p 协议是互联网上最流行的应用,h t t p 协议并没有规定必须使用它和( 基于) 它支 持的层。事实上,h t t p 可以在任何其他互联网协议上,或者在其他网络上实现。 h t t p 只假定( 其下层协议提供) 可靠的传输,任何能够提供这种保证的协议都可 以被其使用。 如图2 4 所示,h t t p 事务由请求和响应组成。通常,由h t t p 客户端发起一 1 2 第二章相关协议介绍 个请求,建立一个到服务器指定端口( 默认是8 0 端口) 的t c p 连接。h t t p 服务 器则在那个端口监听客户端发送过来的请求。旦收到请求,服务器( 向客户端) 发回一个状态行,比如”h t t p 1 12 0 0o k ”,和( 响应的) 消息,消息的消息体可 能是请求的文件、错误消息、或者其它一些信息。 h a r d w a r e c o m 图2 4h t t p 事务 2 2 2h t t p 的消息格式 h t t p 规范1 0 r f c l 9 4 5 乘i1 1 r f c2 6 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论