




已阅读5页,还剩80页未读, 继续免费阅读
(计算机系统结构专业论文)集群web代理服务器的设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 “集群w e b 代理服务器”是根据北京市科委“基于i p v 6 的下一代互联网关 键技术研发及产业化推进”项目中“i p v 6 流媒体分发应用支撑系统的一个子系 统且已得到了实际的应用。由于增长的w e b 服务需求产生了用户体验与现有网 络带宽的矛盾。提供服务的因特网运营商在解决这一矛盾时,必须考虑用户体验, 且应尽可能地满足用户。本文所提出的一种新型架构的透明集群w e b 代理服务 器一般布置在运营商局域网的出口。通过实际测试,发现这种集群透明w e b 代 理服务器能有效地降低运营商出口流量,并节省约8 的成本。 本论文所提出的是一种新型透明集群代理服务器。透明代理,与玎( 网络 地址转换) 有许多地方很相似,通常是通过对t c p 报头的拦截并纂改其报头而得 以实现的。处于透明代理时,用户感觉不到代理的存在,减少了为通知用户正确 设置i p 所遇到的困难。因此,采用透明代理不但使运营商节省了费用,也节省了 用户的时间与精力。另外,采用集群一方面尽可能地提高了其代理服务器的i o 吞吐能力与服务能力,另一方面也减少了响应时间。 在本论文的开始,先对涉及一般代理服务器及虚拟服务器体系架构的术语及 相关协议进行了必要的介绍,对单节点代理服务器所涉及的关键技术及基于i p 地 址的r o u n d 。r o b i n 负载均衡等调度算法也做了介绍。由于集群中前端节点每秒会 对数万个t c p 包进行拦截与分析,并会向l b e 产生频繁的查询操作,所以采用 了e p o u 异步驱动机制,以提高其响应速度,减轻前端节点的压力。通过对不同的 服务架构与事件驱动机制的分析,本文构架了遵循h t t p 标准的高性能集群代理 服务器,并在l i n u x 平台上实现了其基本功能。系统各模块运行在一个基于异步 事件驱动的系统运行框架之上。根据l i n u x 2 6 内核特性,利用其提供统一的事件 的登记和回调接口,所有的操作都是通过登记事件,然后在检测到异步事件时回 调相应的处理函数,整个过程都是异步的。另外,为了获得高性能,在设计上采 用了h a s h 散列技术,内存池及线程池技术,提高了对磁盘文件的搜索与传输速 度。在论文的后半部分对详细设计与实现以及其实现的一些缺点也分别做了阐述。 通过测试,证明了设计是基本成功的,获得了预期的扩展性与i 0 性能。 关键词:集群,透明代理,负载均衡 a b s t r a ( 了r a b s t r a c t a st h es u b s y s t e mo f “d e v e l o p m e n to fs u p p o n i n gs y s t e mo fi p v 6s t r e a m d j s t r i b u t i o na p p l i c a t i o ns y s t e m ”,s p o n s o r e db yr e s e a r c hf h n do ft h e “i p v 6b a s e dn e x t g e n e r a t i o ni n t e m e tk e yt e c h n o l o g y a n di n d u s t r i a l i z a t i o np r o m o t i o n ”o f b e i j i n g m u n i c i p a ls d e n c ea n dt e c h n o l o g yc o m m i s s i o n ,t h en e wt y p eo fc l u s t e r b a s e dh 1 1 _ p p r o x ys e e r si sa p p l i e di nr e a l l i f et a s k 1 n c r e a s i n ga p p l i c a t i o n so fw e b s e r v i c e 百v e r i s et 0c o n t r a d i c t i o nb e t w e e nt h el i m i t e db a n d w i d t ha n du s e re x p e r i e n c e t h e r e f o r e , i s p ( i n t e m e ts e i c ep r o v i d e r ) o nt h eo n eh a n dh a v et os o l v et h ep r o b l e m ,o nt h eo t h e r h a n dh a v et os a t i s f yt h e i rs u b s c r i b e r ,t h u sc o m e st h ea g eo fc l u s t e 卜b a s e dh 1 t r pp m x y s e r v e r s b ys e t t l i n gt r a n s p a r e n tc l u s t e r b a s e dh 1 r 】pp r o x ys e e r sa tt h e o u t l e to fl a n , n e a r l y8 c o s t a r es a v e d t h i st h e s i sp r o p o s e san e wt y p eo ft r a n s p a r e n tc l u s t e r - b a s e dp r o x ys e r v e r s 1 y a n s p a r e n tp r o x y ,i sc o m m o n l yk n o w na st c ph i ja c k i n gp r o x y e r ,i nc o m m o nw i t h n e t w o r ka d d r e s s n a n s l a t i o n ( n a r ) i ns o m ea s p e c t s t t a n s p a r e n c em a k e s i t su s e r sn o t a w a r eo fi t ,t h u sf r e e si t su s e r sf r o mt h eh a s s l eo fs e t t i n gu pi n d i v i d u a lb r o w s e ra n d a v o i d st r y i n gt oc o n v j n c eu s e r st 0t y p et h ed i a m e t e r st h e ym a yn o tu n d e r s t a n da ta 1 1 b e s i d e s ,i tm a yh e l pi s ps a v ei t sc o s ta sw e l l t t a n s p a r e n c em e a n ss a v i n gt h et i m ea n d c o s tf o rb o t hu s e r sa l l di s p ,w h i l ed u s t e r i n gi m p r o v e st h ei op e r f o r m a n c eo ft h e s e r v e r s ,s h o n e n sr e s p o n s et i m e a tt h eb e g i n n i n go ft h et h e s i s ,s e r i e so ft e 咖i n o l o g j e sa n dp r o t o c o l sa r ei n t r o d u c e d w h j c ha r er e l a t e dt ot h ea r c h i t e c t u r eo fg e n e r i cp r o x ys e r v e ra n dv i i r t u a lc l u s t e rs e r v e r t h eb a l a n c ea l g o r i t h mo fr o u n d r o b i nb a s e do ni pa p p l i e di nl o a db a l a n c ee n g i n e t h e ni sa l s os u j e s t e d 1 oa l l e v i a t et h ep r e s s u r eo nf 如n tf i l t e rw h i c hi n t e r c e p t s t h o u s a n d so ft c pp a c k e t sp e rs e c o n d ,e p o u - d r i v e nm e c h a n i s mi nl 正;ei sa p p l i e d b y a i l a l y z i n g d i 仃e r e n tn e 觚o r ks e r v e r s a r c h i t e c t u r e sa n ds e v e r a le v e n t - d i s p a t c h m e c h a n i s m s ,ah i g hp e f f o 册a n c ea i l d s c a l a b l ed u s t e r - b a s e dh 下r ps e r v e rw h i c h f 0 l l o w so p e ns t a n d a r di so u t l i n e d n sd e v e l o p e do nt h eb a s eo fl i n u xo sa n dp o w e r e d b va s v n c h r o n o u se v e n td r i v e n 仃锄e w o r ka sf e a t u r e di nl i n l l x2 6k e m e li nw h i c h i t p m v i d e sa u n i f o 册i n t e r l h c ef o rf e 舀s t e r i n ge v e n ta n dh a n d l i n gt h ea s y n c l l r o n o u se v e n t a b s t r a c r c a u b a c k t bd e s i g na n da c h i e v eh i g hp e r f b m a n c e ,h a s hf u n c t i o n ,m e m p o o la n dt h r e a d p o o la r ea l s ou s e dt os p e e du pt h es e a r c h i n ga n dt r a n s m i t t i n gf i l e so nd i s k t h er e s to f t h e s i si n t r o d u c e st h ed e t a i l so fb o t hd e s i g i la n di m p l e m e n t a t i o n t h er e s u l t so ft e s t s s h o wt h ed e s i g n sh a v eo b t a i n e de x p e c t e ds c a l a b i l i t ya n di op e r f b n n a n c e a l s os o m e d r a w b a c k so fi t si m p l e m e n t a t i o na r em e n t i o n e di nt h el a s tc h a p t e r k e y w o r d s :c l u s t e r t r a n s p a r e n c yp r o x y ;l o a db a l a n c e i i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均己在论文中作了明 确的说明并表示谢意。 签名:么盔逮日期沪汐步年护歹月6 目 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:础导师签名: 日期:乒卵芳年口r 月以日 第一章引言 1 1 课题研究背景 第一章引言弟一早- i 百 当前互联网上的主要流量包括h t t p 下载、b t 【1j 下载。如何有效利用带宽来 节省成本,成为运营商和服务提供商共同关注的问题。其中h t t p 下载又包括网 页的下载和p 2 p ( p e e rt op e e r ) 文件的下载。对于网页的下载,可以使用w e b 代 理服务器,w e b 代理服务器以串行的方式工作在本地用户和数据源服务器之间, 可以检查和存储大量的w e b 页面,当本地用户请求某个缓存的页面时,该页面 快速地从本地驱动器或缓存区中发送出去,从而更快地访问w e b 页面,节约费 用并可以提高网络的安全性,及响应速度,从而达到高效率优化网络流量的目的。 另外,在传统的内容发布模式中,内容的发布由i c p ( i n t e m e tc o n t e n tp r o v i d e r , i n t e m e t 内容提供商) 的应用服务器完成,应用服务器通常处于网络的中心,客户 端主机处于网络的边缘,客户端需要登陆到应用服务器下载或浏览各种内容。在 这种发布模式下,网络只表现为一个透明的数据传输通道,客户端也只是一个浏 览工具或b t 下载工具;而由于i i l t e m e t 的i p 协议是“尽力而为”的,所以这种 内容发布的q o s 是依靠在用户和应用服务器之间端到端得提供充分的、远大于实 际所需的带宽来实现。网络访问对于带宽的要求呈现出端到端的形式,某段网络 带宽瓶颈的限制将造成整个网络的拥塞,尤其当大量用户同时访问同一台服务器 时,对连接服务器的链路带宽要求更高,不仅大量宝贵的骨干带宽被占用,i c p 的应用服务器的负载也变得非常重,而且不可预计。当发生一些热点事件会产生 局部热点效应( 通常称为n a s hc r o w d s 或s l a s h d o te f f e c t 【2 j ) ,比如在9 1 1 事件爆发 时,空前的w e b 流量阻塞了相关的新闻网站1 3 1 。 为了满足日益增加的访问请求并提高服务质量,服务器必须保证2 4 小时x 7 天的可靠性且足够强大,服务器的处理能力逐渐成为网络发展的瓶颈,为此必须 对服务器进行升级来提高性能,或采用多台服务器组成服务器集群来共同处理用 户请求,但是,单纯的升级服务器性能的代价非常昂贵,而采用服务器机群的方 法也难以进一步扩展。据中国互联网信息中心( c n n i c ) 的统计数据1 4 j ,截至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 ,而且这个增长的趋势还将继续。 因此,从上述的客户端访问需求的增长与服务器提供服务资源始终有限这一 矛盾来看,不可能无限地投资基础建设,但存在热点内容重复的问题,因此在许 多局域网或城域网的出口,可以采用代理缓存的方式,降低l c p 应用服务器的压 力,减小骨干网的流量。这样既提高了用户响应速度,又降低了费用。然而如果 单纯地采用中心结点的单一代理缓存服务器时,存在单点失效问题;如果采用非 透明代理缓存服务器,那么又存在客户端必须进行设置的问题,为用户带来了额 外的操作。那么怎么做才能得到一个比较理想的解决方案呢? 一个理想的w e b 代理服务器要达到什么的标准呢? 如果不考虑实际的状况应该具备: 1 1 0 0 命中率。即每次客户请求一个可缓存的w e b 对象时,它就在缓存中, 并且是它是有效的。 2 缓存网页迅速返回客户。数据从缓存返回客户比从源服务器取回要快。 3 没有不必要的w a n 流量。除非缓存系统中没有请求的页面,否则不会向外 发起请求。 4 不影响非w e b 流量。有些系统要截断w e b 和非w e b 流量。 5 实现客户、代理和中间系统( 如交换机,路由器) 的“零”管理。 显然,一个理想的系统是不能实现的。但一个系统越靠近这些目标,它就能 更好地为客户和管理人员服务。其实任何一个问题都是具体的,只有针对具体的 环境提出适当的解决方案。本文来源于北京市科委“基于i p v 6 的下一代互联网关 键技术研发及产业化推进”项目子课题“w e bc a c h e 系统研发计划”。课题主要 研究的是在运营商网络出口处,如何设计一个能够支撑大规模用户的高性能集群 代理缓存系统,以降低运营商接入骨干网的流量。本文主要是研究和设计系统中 的集群w e b 代理服务器。 1 2 对集群w e b 代理服务器的需求 特别是在大型的i s p ( i n t e m e t s e i c ep r o v i d e r ) 出口以及校园网或企业网的出 口处,都迫切需要高性能的缓存代理服务器,因此已有研究人员提出各种方法来 增强缓存服务器的性能。使用集群技术1 5 】来增强缓存服务器的处理能力是目前最 为有效的方法之一。集群缓存技术充分利用了集群技术的优势,将集群技术和缓 存技术结合起来,增强了单个缓存服务节点的性能。它利用现有的集群技术和缓 存服务器软件来构建一个具有单一系统映像的( s i n 百es y s t e mi i i l a g e ) 、可伸缩性的 2 第一章引言 ( s c a l a b l e ) 集群缓存系统,并在代理节点之间引入代理协作机制,使多个代理节点 相互协作。集群缓存系统能提高缓存命中率,同时分散热点数据,均衡各代理服 务器的负载,避免了单个代理失效的问题,因此能很好地解决上述瓶颈问题。目 前很多i s p 的出口处和合作缓存系统的高层节点都采用了集群缓存技术,充分发 挥高性能缓存的优势。在整个系统中,集群、e b 代理服务器是一个重要的组成 部分。前端过滤器( f r o n tf i l t e r 也是一个服务器) ,负载均衡器( l d a db a n l 锄c c e n 西n e ) ,代理缓存器( r e a l p r o x y ) 的稳定性、性能、并发能力,以及可伸缩性、 可扩展性等因素,是影响整个系统的关键。 1 3 国内外研究现状 国内关于集群w e b 代理服务器的专门研究较少,但对于集群服务器的研究而 言,目前已处于基本成熟的阶段,因此相关的成果可以被借鉴。例如,由章文嵩 博士发起的v s 撇,v s d r 等集群技术已运用于实际环境中,其中的负载调度 技术完全可运用于集群代理服务器中。在国外,思科公司针对透明集群服务器技 术提出了w c c p 协议,并设计出了能支持该协议的路由器及服务器,但因w c c p 属于私有协议,如果直接购买该类设备,运营商将会投入较为昂贵的费用。但 w c c p 协议只能支持w e b 服务,扩展性较差,因此在样的状况下,国内一些运 营商与研究机构在此领域做了深入的研究,并取得实际的成果。 1 4 本论文的工作和创新 本文的工作,是基于l i n u x 平台,设计并开发一种具有透明性、高性能、可 扩展性、能进行负载均衡调度的集群w e b 代理服务器。 本服务器的设计和开发工作,首先对于单个服务器而言,针对高网络i o 和高 磁盘i o 的特点,设计出一套基于事件驱动的网络服务运行框架,高效的运行框 架奠定了服务器效率的基础,然后根据这种运行框架,使用模块化的方式来设计 服务器。该集群w e b 代理服务器主要由前端过滤器( f f o n tf i l t e r 也是一个服务 器) ,负载均衡器( l o a db 孤l 粕c ce n 西n e ) ,代理缓存器( p r o x yc a c h e ) 等组成。 要求其具有稳定、高性能、高并发处理能力,以及可伸缩性、可扩展性等特征。 本文的主要创新点包括下列方面: 3 电子科技大学硕士学位论文 1 基于事件驱动的方式进行设计,避免了系统阻塞和大量线程带来的开销,是 系统运行高效的基础; 2 透明的前端与后端真实代理服务器之间的松散藕合。 3 基于高度模块化的设计,整个系统结构清晰,可通过添加模块来扩展功能; 4 采用提取文件特征值进行缓存,提高检索效率。 1 5 论文的结构及内容 本文的主要内容,是描述了l i n u x 平台下,基于异步事件驱动的,高效可扩 展的存储服务器的设计与实现过程。论文分为六个部分,以下是各部分的介绍: 1 第一章是引言对课题的相关背景进行了介绍。 2 第二章是集群w e b 代理技术及相关的协议介绍。 3 第三章是集群w e b 代理服务器的系统架构的介绍。首先对传统w e b 代理服 务器结构进行了介绍,然后对集群w e b 代理服务结构进了介绍,最后针对本 文即将要设计的透明集群w e b 代理服务器体系结构进行了介绍。 4 第四章是系统分析。系统地阐述了在设计集群w e b 代理服务器组件时,所涉 及的一些关键考虑因素:总体性能的考虑,i o 模型的选择,服务器架构及事 件驱动机制的选择,缓存管理及一致性问题。 5 第五章是系统设计。在第四的基础上,详细地描述了设计思路及数据结构、 框架。本集群主要由前端过滤器、负载均衡器、代理缓存节点这三个主要模 块的构成。 6 第六章是系统测试。 4 第二章集群w e b 代理技术的介绍 第二章集群w e b 代理技术的介绍 本章将主要介绍w e b 代理服务器所涉及一些基本协议如h t r p s 协议,以及 当前与集群代理技术紧密联系的w c c p 协议;对单节点的w e b 代理服务器所涉 及的常用技术、集群代理服务器所涉及负载调度等技术也均会做相应的介绍。通 过对这些基本概念的介绍,为在第三章从系统层次角度提出总体架构做准备。 2 1h t 丁p 协议及其它相关协议介绍 2 1 1h t t p 协议介绍 h t t p 是一个属于应用层的面向对象的协议,目前在w w w 中广泛使用的是 h 1 r p 1 0 【6 】和h t t p 1 1 门,而h 1 t r p 0 9 f 8 】仅是一个过渡标准。 h t r p 协议的主要特点可概括如下: 1 支持客户服务器模式。 2 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法 常用的有g e t 、h e a d 、p o s t 。每种方法规定了客户与服务器联系的类型不 同。由于h t r p 协议简单,使得h i t p 服务器的程序规模小,因而通信速度很 快。 3 灵活:h t r p 允许传输任意类型的数据对象。正在传输的类型由”c o n t e n t 。t y p e ” 加以标记。 4 无状态:h t r p 协议是无状态协议。无状态是指协议对于事务处理没有记忆能 力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可 能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时 它的应答就较快。 h 1 r r r p 消息由客户端到服务器的请求和由服务器到客户端的回应组成。完整的 请求( f u l l r e q u e s t ) 和完整的回应( f u l l r e s p 叫s e ) 都使用r f c 8 2 2 【9 1 ( 以及后来的 r f c l 9 4 5 与r f c 2 6 1 6 均有规定) 中实体传输部分规定的消息格式。两者的消息 都可能包括标题域( h e a d e r s ,可选) 、实体主体( e n t i t y b o d y ) 。实体主体与标题间通 过空行来分隔( 即c r l f 前没有内容的行) 。 5 电子科技大学硕士学位论文 h t r p 请求消息和回应消息的内容是有区别的,简单的来看:请求消息= 请求 行请求头+ 实体。回应消息= 状态行+ 回应头+ 实体。下面是这两种h t r p 消息的结 构示意: h t r p 请求消息: h t t p 请求内容 h 1 t r p 回应消息: h t t p 回应内容 w e b 代理服务器对h t t p 消息的处理主要的是解析请求和回应消息当中的请 求行( 或状态行) 和标题域,从而决定怎样替发起请求的客户转发请求、转发给谁 等。w e b 代理服务器在决定是否要将一个网页在本地缓存,以及可以保留多久, 采取怎样替换策略等等都和h t t p 消息的标题域有关。篇幅所限,具体h 1 t r p 协 议的内容就不在这里一一列举,可参见有关的r f c 文档。 2 1 2h t t p 1 0 幂口h t t p 1 1 的j e 要区另0 由于h t t p 1 o 协议具有上节述及的优点,因此得到了广泛的应用。在1 1 1 t e m e t 流量中很大部分是h 1 t r p 流量,但h t t p 1 0 也具有不少的缺陷。h t t p 1 0 是由 h t t p o 9 发展而来。有关h 1 t r p 1 0 的讨论和试验很多,但一直没有形成一个正 式的规范。i e t f 的h t r p 工作组发布了一份文档( r f c l 9 4 5 、) 中描述的是h t t p 1 o “公共的用法”。大约3 年后( 1 9 9 9 年) ,h 1 t r p 工作组发布了一个改进了的协议, 就是h t r p 1 1 。这二者之间有以下几点: 1 扩展性( e x t e n s i b i l i t y ) 在h t t p 1 1 的讨论过程中,己经有了许多实施的方案,这就产生了兼容性的 问题,在以后正式的标准出来以前,也会有同样的问题。而h t r p 说明了如果一 个实现收到一个它不认识h t t p 头,它就忽略它。这就允许了不同更改h t t p 的 版本号,就可以支持扩展。 6 第二章集群w e b 代理技术的介绍 2 缓存( c a c h e ) h t r p 1 o :源服务器在响应中使用e x p i r e s 来标识一个客户缓存的有效期。客 户可以通过“条件g e t ”向源服务器请求验证目标有无变化。而客户可以用请求 头中的“p r a g i i l a :n o c a c h e 来指定不要从缓存中获取目标。h 1 叩1 1 保留了 h t r p 1 0 的支持,澄清了其不明确之处,并进行了扩展。在响应中使用 “e t a g :e n t i t y t a g 来标识一个实体,消除了i :f - m o d i f i e d s i n c e 会由于主机间时间不 同步造成的问题;增加了一些新的条件请求头,有i f - n o n e m a t c h , i f u n m o d i f i e d s i n c e 和i f m a t c h ;增加了“c a c h e c o n t r o l ”,允许在请求和响应时显 示的指示缓存控制,为避免时间不一致的问题,使用了“m a ) 【a g e ”标识。用 “p r i v a t e ”和“n o s t o r e ”运行服务器和客户指示不让存储响应,用“n o t a n s f o r m ” 来组织代理对进行格式的转换( 如图像) ;使用“v a r y 响应头来更好的支持代理 缓存对响应的标识。 3 优化带宽( b a n d w i d t h o p t i m i z a t i o n ) h t r p 1 o 对带宽的浪费表现在服务器要把整个响应发给客户,即使它只需要 部分信息,还表现在如发送的消息太大( 如,p o s t 和p u t 请求所带的实体很长时) , 要在整个消息发送完了,才返回错误通知。h t t p 1 1 增加了“范围请求 ( r a n g e r e q u e s t ) 支持客户只需要部分信息的情况,而服务器以2 0 6 ( p a r t i a l c o n t e n t ) 状 态码表明响应是对象的一部分;对于请求的请求体大的情形,客户先把请求头发 给服务器,在收到“1 0 0 ( c o n t i n u e ) ”状态码的响应时再发送请求体;节约带宽的 一个有效的方法是数据压缩,h t t p 1 0 支持数据压缩,但没有提供一个压缩方法 的协商机制,不能区分端到端和跳到跳的压缩,h t r p 1 1 支持h 1 t r p 1 0 支持的 内容编码( c o n t e n t e n e o d i n g ,是用于端到端) ,还支持传输编码( t r a n s f e r - e n c o d i n g , 用于跳到跳的信息编码1 。 4 网络连接管理( n e 抑o r k c o n n e c t i o n m a n a g e m e n t ) h t t p 是基于t c p 来传输的,开始的设计是每个请求建立一个新的连接,这 就需要至少一个来回的时间和一些额外的数据报,而t c p 的“慢启动 更使这个 过程变长。为改变这种情形,h t r p 1 1 采用了“持久连接”( p e r s i s t e n t c o n n e c t i o n ) 和在一个永久连接上请求的“流水线操作 ( p i p e l i n i n 曲。首先哪1 1 引入了“跳 到跳 头的概念:消息头只在指定的连接上起作用( 而不是整个的路径) 。为支持 这个概念,引入了“连接”( c o n n e c t i o n ) 域。“持久连接”的支持:有一些h t r p 1 0 的实施通过“c o n n n e c t i o n :k 七e p a l i v e ”域来支持持久连接,但h t t p 1 1 缺省连接 为持久连接,传输结束后可以断开。因而一些应用因为扩展原因或资源的原因不 7 电子科技大学硕七学位论文 愿保持持久连接,可以通过“c o n n e c t i o n :c 1 0 s e ”来通知接收者不再复用此连接。 “流水线操作”的支持:客户在发出一个请求后不用等到响应的到来就可以发送 其它的请求,它避免了几个来回时间的等待,提高了t c p 的利用率。 5 消息的传输( m e s s a g e t r a n s m i s s i o n ) 对于某些服务器无法预知消息长度的情况( 如有c g i 产生的响应) ,通过设置 传输编码为“分块”( c h u n k e d ) 来完成,就不用服务器要将整个响应缓存后再发。 而对需要整个消息产生完才能做处理的情况( 如做c o n t e n t m d s ) ,h t t p 1 1 用“尾 部”( t a i l e r ) 头来实现,在分块的消息的最后一块要包含一个“尾部 头。 2 1 3h t t p s 协议 安全超文本传输协议( s e c u r e h y p e r t e x t t r a n s f e r p r o t o c o 卜h t t p s ) 【1 0 】是用于 w w w 中的计算机间加密数据传输。h t t p s 是利用s s l ( s e c u r e s o c k e t l a y e r 【1 1 】安全套 接字层) 提供一个和w e b 服务器进行安全的数据传输过程,常用于在网上交易等场 合。一个使用h t t p s 访问的例子如下,在访问该网站的网页中使用了: h t t p s e x a m p le l in k s s l 是n e t s c a p e 公司设计的主要用于w e b 的安全传输协议。这种协议在w e b 上获得了广泛的应用。做为一个介于应用层协议( h t t p ,s m t p ,f t p 和t e l n e t 等) 和传输层之间的一个可选层。它的原理大致如下: s s l 首先发起t c p 连接进程的安全“握手”,握手的结果是客户和服务器就它 们之间使用的安全层达成一致( 使用的会话密钥,和对方的证书) 。在握手后,s s l 将使用它的应用层协议( 如h t t p ) 的数据加密( 发送时) 和解密( 接收时) ,这 样h t t p 的请求和响应的数据就完全加密了。 2 1 4w c c p 协议 2 1 4 1 概述 虽然因特网网络传输的数据量巨大,但是其中部分传输来自用户在任一既定 地点上对相同内容的需求,这意味着广域网大部分基础设施传输着完全相同的内 容和完全相同的需求,w e b 上的大量通信流都是冗余的,网络缓冲技术就是将 这些被频繁访问的信息,总是放在靠近访问者一方的技术,使网络内容局域存储 8 第二章集群w e b 代理技术的介绍 从而更迅速地为用户服务,并减少广域网连接和网络服务器的传输数量。 w c c p ( w e bc a c h ec o m m u n i c a t i o np r o t o c 0 1 ) 1 1 2 】是一种高速缓存技术协议, 是路由器与缓存引擎c a c h ee n 西n e 之间的通信协议,其中缓存引擎是作为w e b 缓存的专用设备,用来管理存储w e b 页面。路由器通过与缓存引擎的协同工作 处理w e b 数据流,达到提高数据传输效率、缩短w e b 访问时间的目的,这些 w e b 数据流包括来自网络内部或外部的用户浏览w e b 服务器上页面和图形的 请求,以及w w w 服务器对这些请求的答复。当用户向i i l t e m e t 上的w w w 服 务器发出浏览某页面的请求时,路由器首先把请求发给缓存引擎,如果缓存引擎 已经保存了这个页面的拷贝,则由缓存引擎直接将这个页面发给用户,否则缓存 引擎就到w e b 服务器上取得这个页面和这个页面上的所有对象,自己保存一份 备份后再转发给用户,此后当用户对相同的网页提出访问请求时,就由网络缓存 引擎来满足其要求,将已存储该网页的拷贝发送给用户。 2 1 4 2w c c p 技术特点及应用 w c c p 协议定义了路由和缓存引擎之间透明重定向的机制,在网络缓存引擎 中实现负载分配的方法、转发方式的协商等等各个方面,这里只介绍w c c p 主 要的技术特点和应用。 1 支持动态服务与标准服务 w c c p 支持将多种t c p 端曰的数据流重定向到缓存引擎。w c c p 除了支持 把t c p 端口为8 0 的h t t p 数据流重定向到缓存引擎的标准服务外,还支持将把 t c p 端口为非8 0 的h 1 r p 数据流重定向到缓存引擎的动态服务。 2 支持多路由器 w c c p 允许系列缓存引擎连接到若干路由器上,提供冗余和分布式的结构。 w c c p 是这样实现路由器和缓存引擎之间的通信的:将若干路由器和系列缓存引 擎组成一个服务组s e n ,i c eg r o u p ,并且这些路由器和引擎都彼此知道对方的存在。 一旦建立了服务组,就专门指定一个缓存引擎来决定各个缓存引擎间的负载分配。 在一个服务组中,一般能够为所有路由器所见,并具有最小i p 地址的那个缓存 引擎成为首领缓存引擎,它的任务是为缓存引擎群分配数据流,其分配信息被传 送给整个服务组,这样每个路由器就可以正确地重定向数据分组,而缓存引擎群 可以更好地管理它们的负载。 3 实现透明地重定向 w c c p 路由器透明地实现用户浏览器对w e b 服务器的h t t p 请求的重定 向,最终用户并不知道所浏览的页面并不是直接来自w e b 服务器而是缓存引擎。 9 电子科技大学硕士学位论文 除此之外,缓存引擎的操作对网络也是透明的,对非重定向传输来说路由器完全 扮演了他的通常角色即正常的转发。 4 支持两种重定向方法 w c c p 支持两种重定向方法:g r e 封装重定向和l 2 重写重定向。g r e 封 装重定向方法,是在i p 报文的头部封装一个g r e 头,在i p 报文尾部封装一个 四字节的r e d i r e c t 头,形成一个新的i p 报文的方法。l 2 重写重定向方法,则不 封装i p 报文,而是由w c c p 路由器直接用目标缓存引擎的m a c 地址替换i p 报 文的目的m a c 地址即可。g r e 封装重定向方法允许目标缓存引擎与路由器之 间跨网络连接,而l 2 重写重定向方法要求目标缓存引擎与路由器在链路层 l a v e r 2 直接相连。 5 负载均衡 w c c p 在缓存引擎群之间的负载均衡方式有两种:散列方式和掩码变量值集 合方式。负载均衡的目的是为了将数据流负载均匀地分配给缓存引擎群集。通过 负载均衡的方法,w c c p 可将通信流重定向到缓存引擎,因此,当服务组中增加 或减少了缓存引擎时,w c c p 可重新在缓存引擎群之间分配负载。这样w c c p 支 持可伸缩的缓存引擎群集,使可用资源更有效地利,用同时为用户提供高质量的 服务。 6 报文退还 当缓存引擎把不能处理的报文退还给路由器时,该路由器将不再把该报文重 定向,而进行正常的转发。例如,缓存引擎已经过载没有空间缓存报文时,它将 拒绝任何重定向报文并把它们退还安全验证。 w c c p 技术可以有效地降低i i l t e m e t 网络流量,节省昂贵的广域网链路费用。 由于实现w c c p 协议的路由器透明地实现了用户浏览器对w e b 服务器的h t t p 请求的重定向,所以用户不用将浏览器配置成代理服务器模式。这对i s p 和大的 企业来说将是非常适宜的,因为他们要统一实现用户配置非常困难并且昂贵,不 易于管理和维护,利用w c c p 的特点,现在就不用将用户浏览器配置成统一的 代理服务器模式了,这无疑是非常令人感兴趣的。 另外,由于缓存引擎对用户和网络操作都是透明的,i s p 可以根据需要用分层 的形式将缓存引擎放在实际网络中的数个不同层次的网络地点。譬如在核心层放 置一个缓存引擎群集,在低层的p o p 服务器边放置一些缓存引擎,形成一个有 层次性的体系结构,就可以实现高质量服务,同时实现有效利用网络资源的目的。 1 0 第二章集群w e b 代理技术的介绍 2 2w e b 代理技术介绍 2 2 1 文件缓存技术 2 2 1 1 以文件m d 5 值做为标识 由于采用1 6 位( 或3 2 位) 返回值的m d 5 【1 3 】哈稀算法函数对返回的w e b 内容 做的m d 5 的运算所得到到的值产生冲突的可能性回常小而被认为是唯一的,因 此可以用来做为文件的标识符,而降低了文件管理的复杂性,也提高了查询效率。 2 2 1 2 进行文件系统的分层管理 在大部分缓存系统中,一般将文件缓存分为三部分。分别是: 1 索引部分 通常而言,索引关键字采用请求的u r i 与主机名+ 文件夹名+ 文件名一一映射 的关系,而对u r i 可以通过一个哈稀算法得到一个离散的哈稀值( 1 0 进制整数) , 然后再通过h a s h 查找获取文件位置。 2 内存中的文件系统 为了减小不必要的内存分配开销,在大部分内存文件系统中采用了内存池方 式进行预先分配一定块数的连续内存区域。这样一方面既可以有效地防止出现内 存泄漏,另外也因在使用过程避免了使用内存分配函数而提高了内存使用效率。 3 磁盘缓存 为了提高查找效率,对磁盘文件采用w e b 内容h a s h 值的前面若干字节做 为目录,并以1 6 位( 3 2 位) 的m d 5 哈稀值做为文件名进行存取。 2 2 2 缓存淘汰技术 对w e b 代理服务器的缓存替换算法的研究是比较热的,下面看看几个典型 的算法。 2 2 2 1 传统的替换算法 最近最少使用算法( l e a s t r e c e n t l y u s e d l r u ) 【1 4 1 是缓存替换算法中用的最多 的,它比其它简单的算法如f i f o 和随机算法要好得多。l r u 算法在w e b 服务 器,客户端应用和代理服务器都有广泛的使用。但u 乇u 的不足在于它没有考虑缓 存对象的大小和开销。最少使用频率( k a s t f r e q u e n t l y u s e d - l f u ) 它总是将替换具有 电子科技大学硕士学位论文 最少引用次数的对象。 2 2 2 2 基于关键值的算法 基于大小( s i z e ) :淘汰尺寸最大的缓存对象。u 己u m i n 算法:它是由l r u 算法 衍生而来的,它通过只对大小超过阀值的缓存对象采用u 之u 算法,从而减少淘汰 的缓存对象的数量。而这个阀值是适应性的:如果没有足够的空间,就降低它( 例 如,降低1 2 ) 。 l r u t h r e s h o f d 算法【1 5 】:和u 己u 类似,但比阀值大的对象不被缓存。 h v p e r - g 算法:是基于l f u 的,增加了最后一次使用的时间和目标大小的考 虑。 低延迟优先( h w e s t l a t e n c y f j r s t ) 算法:它的目标是减少平均延迟,首先替换最 低延迟( 从源服务器取回的时间) 的缓存对象。 2 2 2 3 基
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房屋合同范本简约模板
- 购房合同范本卖方有利
- 缴纳人防费合同范本
- 舞蹈服装合同范本
- 直播团队合作合同范本
- 小区车位转让合同范本
- 闪银借款合同范本
- 设备清理保洁合同范本
- 阳逻租房合同范本
- 安全检查合同
- 孕期健康方式课件
- 膏药生产现场管理制度
- 智人迁徙路径重构-洞察及研究
- 关于医院“十五五”发展规划(2026-2030)
- T/SHPTA 082-2024光伏组件封装用共挤EPE胶膜
- T/CCSAS 023-2022危险化学品企业紧急切断阀设置和使用规范
- 农庄鱼塘出租合同范本
- 城管执法理论知识培训课件讲义
- 河南郑州航空港发展投资集团有限公司招聘笔试真题2024
- 高中语文课程标准深度解读
- 制冷系统事故应急预案
评论
0/150
提交评论