Wingate 4.x工作协议、原理、过程详解 于森 2001年 12期 前几日,一个网友匆忙跑来找我,说是他做一个局域网用来共享上网,用的是Wingate代理,局域网内部是通的,但只有主机可以上网,其他的机器则不能。细问之下,他是按照一本专门介绍LAN的杂志一步一步做的,但是最后怎么也不行。当我看到那本杂志,我明白了。类似的文章在网上多如牛毛,它们讲的是Wingate3.x的版本的使用方法。现在最新的Wingate已经是4.2版了,它的工作协议、原理、过程已经有了很大的发展,如果还是按照旧版本的设置,肯定会出麻烦。下面为大家介绍Wingate4.x版的工作原理、协议、过程。    以前说Wingate是一个代理软件,它可以使同一个局域网内的机器共享一个Internet账号。现在的Wingate远不止是一个代理软件,Wingate共提供了3种方式来实现网络“共享”:    1.Proxies,即大家所知的代理服务;    2.Wingate internet client,即Wingate internet客户端服务;    3.NAT-based general purposeinternet-sharing,基于地址翻译的网络共享服务。   #1 Proxies    在早期的Wingate版本上,必须要为每一个应用程序设置代理(当前的新版本可以不用设置)。    代理的工作过程如下,以浏览器为例:    ⑴客户端浏览器连接到Wingate服务器;    ⑵客户端向Wingate服务器发出代理请求,如“get:http://www.yesky.com”;    ⑶Wingate代理服务器检查这个请求,并且验证client是否有相应的权限;    ⑷Wingate代理服务器向远端web 服务器发出请求;    ⑸远端Web服务器将相应的文件发给Wingate代理服务器;    ⑹Wingate代理服务器将得到的文件发给发出代理请求的客户端浏览器。    整个代理过程大致如上所述,由于大多数人对代理比较熟悉,我就不讲了。它的设置方法可以参考《电脑报》以前的文章。我们的重点是第二种和第三种方式的原理及过程。   #1 Wingate internet client    即WGIC,它可以为我们提供WRP服务。WRP,即Winsock Redirection Protocol,Winsock重定向协议。Wingate服务器上运行有WRPServeice,这样安装有Wingateclient的客户机应用程序如同直接同Internet连接一样的工作。这可是一个好东东。在默认的情况下,我们不必再为安装有Wingate internet client的客户机的每一个应用程序设置代理了!而在以前的Wingate版本中,代理是是非设不可的,如下载软件,浏览器,邮件软件等。在此着重提出使用Sock代理的聊天软件,如OICQ,它的sock代理非常不好设置,但是相对而言,ICQ就容易设置,大概是OICQ本身的毛病,嘻嘻,不过现在这已经成为历史了,有了WRPServeice,让一切烦恼离我们而去吧!    WRP工作过程简述如下:当安装有WGIC的客户机上某一个应用程序发出连接请求时,正在客户机上运行的WinGate WRP client就会捕捉到这个请求,并且判断请求的类型。如果这个请求是连接到本局域网的,那么WinGate WRPclient就会让这个请求命令直接发出。但是当发出的请求是指向本地局域网之外的,例如web浏览请求,WinGate WRP Client就会把这个请求转给WinGate服务器,然后Wingate服务器去执行这个请求,最后Wingate服务器将远端Web服务器返回的结果发给WinGate WRPclient上的应用程序。这样客户机上的应用程序“自己感觉”就像直接连接Internet一样。WRPServeice的服务类型包括TCP和UDP两种,这样我们经常用到各种网络软件都可以正常运行了,爽吧!   #1 NAT-based general purposeinternet-sharing    首先解释一下NAT,它的全称是Networ kaddresstranslator,用以转换IP地址和在本地局域网与Internet间转发数据包的TCP/UDP端口号。(Win98SE、Win2000的连接共享用的就是这个)下面是一个具体的描述:    Wingate服务器的IP:192.168.0.1,上网后ISP分配的IP为a1.b1.c1.d1;有一Wingate client的IP:192.168.0.8。此Wingate client向a2.b2.c2.d2的Web服务器发出请求,数据包的部分格式如下:    目标IP:a2.b2.c2.d2    源IP:192.168.0.8    目标端口:TCP端口80    源端口:TCP端口1025    经过NAT的转换后变成如下格式:    目标IP:a2.b2.c2.d2    源IP:a1.b1.c1.d1    目标端口:TCP端口80    源端口:TCP端口5000    此时,在NAT的映射表有如下映射:    {192.168.0.8,TCP 1025}<=>{a1.b1.c1.d1,TCP 5000}    当远端Web服务器收到请求后,返回的数据包格式如下:    目标IP:a1.b1.c1.d1    源IP:a2.b2.c2.d2    目标端口:TCP端口5000    源端口:TCP端口80    经过NAT转换后的格式如下:    目标IP:192.168.0.8    源IP:a2.b2.c2.d2    目标端口:TCP 端口1025    源端口:TCP端口80    Wingate的工作原理已经的简要的介绍了,什么?不懂?!呵呵,研究一下TCP/IP协议吧!    了解了Wingate的工作原理,对于Wingate的设置也就简单了。我只结合我们的宿舍网简单的说一下。在局域网中需要首要面对的问题是IP地址的分配问题。一般有两种解决方式,自己指定或采用DHCP。DHCP,即动态主机配置协议,它能动态的配置IP地址和其他的相关信息,如DNS。虽然在Wingate的已经包含有DHCP服务了,但是我们的宿舍网除了上网是Serve/Client模式,其余的时间我们的宿舍网还是对等网,比如说联网玩星际争霸,在这种情况下,采用DHCP就不再合适了。所以我为每个机器指定了私有静态IP地址及DNS服务器,这样在平时是对等网,共享上网时为Serve/Client模式。安装时先在主机上安装Wingate serve,在客户机上安装Wingate client,在正常情况下安装client时,是应该能够自己找到Wingate serve的(即Wingate的GDP功能)。安装完后,主机拨号上网,客户机即可正常上网,包括运行各种软件,如下载软件,浏览器,邮件软件,聊天软件等。    呵呵,到此为止,搞定收工啦!如果有问题,来信商讨:qcbug@263.net,不准炸我!!!