文章插图
网路快取系统结构图什幺影响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的路径 。