代理服务器的概念及工作原理

      我的记事本 2005-12-25 22:1
代理服务器的概念及工作原理

一、代理服务器的概念及工作原理

一)代理服务器的概念

随着Internet技术的迅速发展,越来越多的计算机连入了Internet。很多公司也将自己公司的局域网接入了Internet。如何快速地访问Internet站点,提高网络的安全性,成为了当今的热门话题。在这种情况下,代理服务器便应运而生了。

1、代理服务器的概念

代理服务器(Proxy Server)是个人网络和Internet服务商之间的中间代理机构,它负责转发合法的网络信息,对转发进行控制和登记。代理服务器作为连接Internet与Intranet的桥梁,在实际应用中发挥着极其重要的作用,它可用于多个目的,最基本的功能是连接,此外还包括安全性,缓存,内容过滤,访问控制管理等功能。代理服务器,顾名思义就是局域上不能直接上网的机器将上网请求(比如说,浏览某个主页)发给能够直接上网的代理服务器,然后代理服务器代理完成这个上网请求,将它所要浏览的主页调入代理服务器的缓存;然后将这个页面传给请求者。这样局域网上的机器使用起来就像能够直接访问网络一样。并且,代理服务器还可以进行一些网站的过滤和控制的功能,这样就实现了我们控制和节省上网费用。

代理服务器能够让多台没有IP地址的电脑使用其代理功能高速、安全地访问互联网资源。当代理服务器客户端发出一个对外的资源访问请求,该请求先被代理服务器识别并由代理服务器代为向外请求资源。由于一般代理服务器拥有较大的带宽,较高的性能,并且能够智能地缓存已浏览或未浏览的网站内容,因此,在一定情况下,客户端通过代理服务器能更快速地访问网络资源。代理服务器应用的常见例子:拥有上百台电脑的局域网通过一台能够访问外部网络资源的代理服务器而也能访问外部互联网。

2、代理服务器的功能

(1)作为防火墙

代理服务器.可以保护局域网的安全,起防火墙的作用。通过设置防火墙,为公司内部的网络提供安全边界,防止外界的侵入。

(2)实现网络地址转换

网络地址转换(NAT,Network Address Translation)最主要的功能是实现IP地址的多个对应多个或者多个对应一个的映射,从而节约IP地址空间。基于这种功能,通过代理服务器访问Internet便可以解决合法的IP地址不够用的问题。公司内部网的用户通过代理服务器访问外界时,只映射一个IP地址,这样公司就不必租用多个IP地址了。

(3)网址过滤和访问权限限制

代理服务器可以设置IP地址过滤,对外界或内部的Internet地址进行过滤,限制不同用户的访问权限。例如代理服务器可以用来限制封锁IP地址,禁止用户对某些网页进行浏览。

(4)提高访问速度

代理服务器将远程服务器提供的数据保存在自己的硬盘上,如果有许多用户同时使用这一个代理服务器,他们对Internet站点所有的访问都会经由这台代理服务器来实现。当有人访问过某一站点后,所访问站点的内容便会被保存在代理服务器的硬盘上,如果下一次有人再要访问这个站点时,这些内容便会直接从代理服务器磁盘中取得,而不必再次连接到远程服务器上去取。因此,它可以节约带宽、提高访问速度。

二)代理服务器的工作原理

代理服务器(Proxy Server)的工作原理是:当客户在浏览器中设置好Proxy
Server后,你使用浏览器访问所有WWW站点的请求都不会直接发给目的主机,而是先发给代理服务器,代理服务器接受了客户的请求以后,由代理服务器向目的主机发出请求,并接受目的主机的数据,存于代理服务器的硬盘中,然后再由代理服务器将客户要求的数据发给客户。下面我们来详细说明其工作过程:

在网络上,当客户端向服务器端请求数据时,服务器端会随即将所需的数据传给客户端。但是这个服务器可能在很远的地方(例如在美国),数据传输需要较长的时间,如果需要同样数据的用户很多,则每次都要重复传送,如下图1所示:

图1 数据传输过程
1、代理服务器的角色

代理服务器是为了减少长距离的传送而诞生的。它不仅可以代理客户端向服务器端提出请求,也可以代理服务器传给客户端所需要的数据。其运行方式如图2所示:


图2 代理服务器的运行方式


当客户端对服务器端提出请求时,此请求会被送到代理服务器,然后代理服务器会检查本身是否有客户端所需要的数据。如果有,代理服务器便代替服务器将数据传给客户端。而代理服务器一般都是设置距自己传输距离较近的某台代理服务器,所以它传数据给客户端的速度会比从远程服务器传数据要快。

如果代理服务器没有客户端所请求的数据,它会去服务器获取所需的数据。在代理服务器从服务器端取得数据传给客户端时,自己保存一份,待下次如果有用户提出相同的请求时,便可以将数据直接传过去,而不需要再去服务器端获取了。可见,代理服务器改善网络数据传输阻塞的功能是显而易见的。

2、代理服务器的层次

除了客户端可以使用代理服务器外,代理服务器也可以再使用另一台代理服务器。各台代理服务器的关系如图3所示:

图3 简化的代理服务器层次构架


图3是一个简化的代理服务器层次构架,实际的上层(parent)与旁支(sibling)服务器可能更多(当然也可能都没有)。而上层与旁支代理服务器的差异在于运行上的不同:


当代理服务器收到客户端的请求时,它会查看自己的高速缓存(cache)中是否有客户端所要的数据。如果有,则会将数据送给客户端。若没有数据或数据已经过期,则会送出含有URL的数据包给上层和旁支的代理服务器请求协助。


当上层和旁支收到这个数据包后,它们也会去查看自己是否有这些数据。若有,则通知来获取,若无则回复无数据。


如果在一定的时间内没有上层或旁支回复有此数据,则此台代理服务器会找上最早回复没有数据的上层,并且由它将数据取回(不会请旁支将数据取回)。

三)代理服务器的分类

通常的代理服务器分类方法,是从实现的机理分为线路层代理,应用层代理,智能线路层代理(SOCKS)等等。一般的应用层代理服务器工作在应用层,并且针对不用的网络应用提供不同的处理方法,比如
HTTP,FTP,SMTP等,这样,一旦有新的网络应用出现时,应用层代理服务器就不能提供对该应用的代理,因此应用层代理服务器的可扩展性并不好;与应用层代理服务器不同的是,SOCKS代理服务器旨在提供一种广义的代理服务,它与具体的应用无关,不管再出现什么新的应用都能提供代理服务,因为SOCKS代理工作再线路层(即应用层和传输层之间),这和单纯工作在网络层或传输层的
IP欺骗(或者叫做网络地址转换 NAT
)又有所不同,因为SOCKS不能提供网络层网关服务,比如ICMP包转发等。目前的SOCKS版本是第五版,第五版同第四版的区别主要在于第五版提供多种不同的用户认证方法和
UDP 代理。这三种技术的比较如下表1所示:

按代理方式来分有透明代理和传统代理。目前采用Windows的居多,在Windows最著名的有 sygate 和 wingate
,而它们采用的方式是透明代理和传统代理。但是由于Windows本身的安全问题,使用此类代理不太适合对安全性要求比较高的公司企业上网.

标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commenttime}{commentauthor}

{CommentUrl}
{commentcontent}