当前位置:文档之家› 网络缓存及其作用

网络缓存及其作用

World Wide Web(WWW)正在演绎一种新的人类生活,Internet在以前所未有的势头推进,一方面,人们为五彩缤纷的网络世界所陶醉,另一方面又为日渐变慢的访问速度所苦恼……
什么影响Internet访问速度
访问网站的过程是通过建立在TCP/IP协议之上的HTTP协议来完成的。从客户端发出一个HTTP请求开始,用户所经历的等待时间主要决定于DNS和网站的响应时间。网站域名首先必须被DNS服务器解析为IP地址,HTTP的延时则由在客户端和服务器间的若干个往返时间所决定。
往返时间是指客户端等待每次请求的响应时间,平均往返时间取决于三个方面:
1. 网站服务器的延时
网站服务器造成的延时在往返时间中占主要比例。当某个服务器收到多个并发HTTP请求时,会产生排队延时。由于响应一个HTTP请求,往往需要多次访问本地硬盘,所以即使是一台负载并不大的服务器,也可能产生几十或几百微秒的延时。
2. 由路由器、网关、代理服务器和防火墙引入的延时
通常在客户端和服务器之间的路径上会存在多个网络设备,如路由器、网关、代理和防火墙等。它们对经过的IP包都要做存储/转发的操作,于是会引入排队延时和处理延时。在网络拥塞时,这些设备甚至会丢包,此时会寄希望于客户端和服务器通过端到端的协议来恢复通信。
3. 不同通信链路上的数据传输速度
在广域网中,从一个网络设备到另一个网络设备间的数据传输速度是决定往返时间的一个重要因素。但基本带宽的作用并不是像人们想象的那么重要,一项测试表明,当网站采用T3速率接入Internet时,也仅有2%的网页或对象能以64kbps的速度提供给客户端,这显然表明,带宽在网络性能上不是最关键的因素。
今天Internet在向世界的每一个角落延伸,用户向一个服务器发出的 请求可能会经过8000公里到1.6万公里的距离,光速带来的延时和网络设备的延时是网络如此缓慢的最根本原因。
网络缓存解决根本问题
既然影响网络速度的原因是由距离和光速引起,那么加速Web访问的唯一途径就是缩短客户端与网站之间的距离。通过将用户频繁访问的页面和对象存放在离用户更近的地方,才能减少光速引入的延时,同时由于减少了路由中的环节,也相应地减少了路由器、防火墙和代理等引入的延时。
传统的解决办法是建立镜像服务器来达到缩短距离的目的。但这个办法存在很大的不足,对于某个站点而言,不可能在离每个用户群较近的地方都建立镜像站点,若对大多数网站都用这样的办法就更不经济,同时管理和维

护镜像站点是一项非常困难的工作。
 
 网络缓存是一种降低Internet流量和提高终端用户响应时间的新兴网络技术。它的观念来自于计算机和网络的其他领域,如目前流行的Intel架构的CPU中就存在缓存,用于提高内存存取的速度;各种操作系统在进行磁盘存取时也会利用缓存来提高速度;分布式文件系统通常也通过缓存来提高客户机和服务器之间的速度。
1.缓存的类型
网络缓存可以在客户端,也可以在网络上,由此我们将缓存分为两类:浏览器缓存和代理缓存。
几乎目前所有的浏览器都有一个内置的缓存,它们通常利用客户端本地的内存和硬盘来完成缓存工作,同时允许用户对缓存的内容大小作控制。浏览器缓存是网络缓存的一个极端的情况,因为缓存设在客户机本地。通常一个客户端只有一个用户或几个共享计算机用户,浏览器缓存要求的硬盘空间通常在5MB到50MB的范围内。但是浏览器缓存在用户之间难以共享,不同客户端的缓存无法实现交流,因而缓存的内容与效果相当有限。
代理缓存则是一种独立的应用层网络服务,它更像E-mail、Web、DNS等服务。许多用户不仅可以共享缓存,而且可以同时访问缓存中的内容。企业级代理缓存一般需要配置高端的处理器和存储系统,采用专用的软件,要求的硬盘空间在5MB到 50GB左右,内存为64MB到512MB。
代理处于客户端与网站服务器之间,在某些情况下,这种连接是不允许的,如网站在防火墙内,这时客户端必须与代理建立TCP连接,然后由代理建立与网站服务器的TCP连接。代理在服务器和客户端之间起到了数据接力的作用。代理发出的HTTP请求与一般的HTTP请求有细小的不同,主要在于它包含了完整的URL,而不只是URL的路径。
2.代理缓存的工作原理
当代理缓存收到客户端的请求时,它首先检查所请求的内容是否已经被缓存。如果没有找到,缓存必须以客户端的名义转发请求,并在收到服务器发出的文件时,将它以一定的形式保存在本地硬盘,并将其发送给客户端。
如果客户端请求的内容已被缓存,还存在两种可能:其一,缓存的内容已经过时,即缓存中保存的内容超过了预先设定的时限,或网站服务器的网页已经更新,这时缓存会要求原服务器验证缓存中的内容,要么更新内容,要么返回“未修改”的消息;其二,缓存的内容是新的,即与原网站的内容保持同步,此时称为缓存命中,这时缓存会立即将已保存的内容送给客户端。
在客户端的请求没有命中时,反而增加了缓存存储和转发的处理时间。在这种情况下,

代理缓存是否仍有意义呢?实际上,代理缓存能够同时与网站服务器建立多个并
发的TCP/IP连接,并行获取网站上的内容。缓存的存在从整体上降低了对网站访问的次数,也就降低了单位时间内服务器端的排队数目,因而这时并发连接的排队延时要小得多。优秀的缓存甚至能实现对网页内相关链接内容的预取以加快连接的速度。
3.代理缓存的策略
当原服务器的文件修改或被删除后,缓存又如何知道它保存的拷贝已经作废呢?HTTP协议为缓存服务提供了基本的支持,它使缓存能向原服务器查询,某个文件是否更改,如果缓存的拷贝过时则进行有条件下载。仅当原服务器文件超过指定的日期时,才会发出新的文件。
但是这些询问操作对网络服务器造成的负载几乎和获取该文件差不多,因此不可能在客户端向缓存发起请求时都执行这样的操作。HTTP协议使得服务器可以有选择地为每个文档指定生存时间,即清楚地指出某个文件的有效生命周期,生存时间很短即意味着“不要对其缓存”。拷贝的保留时间可以是固定的,也可以是通过这个文件的大小、来源、生存时间或内容计算出来的。[4]

相关主题
文本预览
相关文档 最新文档