一种强制推出网页的方法
技术领域
本发明的可应用于计算机、通信领域,尤其是在涉及TCP/IP协议族的通信系统中。本发明为通信系统中的强制推出PORTAL的WEB服务器的网站页面提供一种解决方案。
背景技术
现有的WEB技术是基于用户输入正确的URL后,首先通过DNS服务器进行URL解析出WEB服务器网站的IP地址;然后根据DNS服务器返回的IP地址与对应的网站进行三次握手建立目的端口为80的TCP的连接后,用户发送HTTP协议请求包,网站返回HTTP协议应答包,这样就完成用户请求数据的传送,当用户关闭此浏览器窗口后,最后也进行三次握手关闭已建立的连接,释放相关资源。
现有的宽带接入系统中用户如果采用WEB认证的方式接入网络的话,就必须要求在用户还没有认证成功之前,必须在URL框中输入WEB_PORTAL服务器的URL或IP地址进入PORTAL服务器认证的网页进行用户名密码认证,即你如果没有认证成功之前,不允许用户访问除WEB PORTAL服务器网页的其它网站。在这种情况下,用户必须要输入WEB PORTAL服务器的URL或IP地址才能打开WEB PORTAL服务器的认证页面。这种认证方法不便于用户使用。
发明内容
本发明解决的技术问题是为了在WEB认证的模式下克服一旦宽带接入用户在DHCP分配IP地址后(分配IP地址在认证阶段之前)或设置静态IP地址后,必须输入WEB_PORTAL服务器的URL或IP地址才能进入WEB_PORTAL服务器的认证页面的问题。
本发明提出的强制推出网页的方法,包括以下几个步骤:
1. 客户端连接到宽带接入系统,但还没有进行WEB_PORTAL认证;
2. 用户在浏览器中输入URL后,客户端向AC(Access Controller:接入控制器)发送目的端口号80的TCP连接请求包,AC把此TCP连接请求包截下,由AC与客户端建立TCP连接;
3. 当客户端确认TCP连接已经建立,向AC发送HTTP协议请求包,AC将所述HTTP协议请求包截获,以URL网站的身份向客户端发送HTTP协议响应包即HTTP重定向包;
4. 当客户端收到AC以URL网站的名义(数据包的IP地址仍然为URL网站的IP地址)所发出的HTTP重定向包后,主动发出关闭TCP连接请求,此时AC仍然作为URL网站的代理响应该请求,在两个方向将TCP连接关闭;
5. 客户端在收到HTTP重定向包后,从所述HTTP重定向包的DATA内容中获得新的URL,即指定的WEB_PORTAL服务器的URL;
6. 根据新的URL,客户端获得IP地址,然后建立TCP连接和发送HTTP协议请求包;
7. 客户端的浏览器窗口显示WEB_PORTAL服务器的WEB页面。
所述步骤2)中客户端向AC发送HTTP协议请求包后还包括以下处理步骤:AC在IP层对所述HTTP协议请求包进行判断;如果判断后需要定向到指定的WEB PORTAL服务器的网站页面,则把此TCP连接请求包截获进行处理;如果不需要重定向,则转发。
采用本发明所述的强制推出网页的方法,具有以下优点:
1. 采取这种在用户输入任意的URL后强制推出某一固定网站的页面的方法,WLAN用户在采取WEB_PORTAL认证方式时用户输入任意的URL后可以直接进入WEB_PORTAL服务器的网页。
2. 利用AC作为代理的方法简单,易于实现,在告知客户端重定向后按照正常的三次握手关闭TCP连接,释放此连接的所有资源。
3. 现有技术采用DHCP服务器分配给用户的IP地址响应包中将DNS的IP地址设为AC的IP地址,这样在针对于客户端的所有URL的DNS解析包将PORTAL服务器的IP地址返回给客户端,从而使客户端定向到PORTAL服务器的网页。这种方法有几点不足:
● 如果用户在URL框中直接输入IP地址的话,就没有DNS解析过程,因此也无法实现重定向功能。
● 如果客户端属于静态用户类型,也无法实现重定向功能。
● 因为第一次返回的DNS服务器的IP地址是假的,所以有二次DHCP分配地址的过程,第二次返回的DNS服务器的IP地址是正常的,而且二次分配给用户的IP地址是不一样的,同时在二次DHCP分配IP地址之间有一段时间间隔,在这段时间中用户无法上网浏览网页。而本发明方法能够有效避免上述的不足,满足在任何情况下都能完成强制PORTAL页面推送功能。
附图说明
图1是现有技术中客户端访问网站的正常流程图。
图2是本发明中客户端访问网站的重定向流程图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步的描述:
图1是宽带接入用户正常访问网站的过程,没有采取重定向的模式。无法使用户一上网就强制WEB_PORTAL服务器的WEB页面。
图2是启用AC作为网站代理让客户端重定向URL的流程。从图中可以看出AC完全作为网站的代理,而客户端并不知道是与AC通讯,始终认为是与网站进行通讯(因为发给客户端的数据包的源IP地址仍然是网站的IP地址)。但AC完成与客户端进行HTTP的建链、传送数据和关闭连接的完整过程,而这套流程与AC的IP正常处理流程是分开的,不会影响到AC的协议栈正常运作,同时也确保了客户端的连接PORT资源的正常释放。
在WLAN(无线局域网)系统为例,可以采取本发明的方法完成强制PORTAL页面推送的功能。在WLAN用户采用WEB_PORTAL认证的方式时,在分配到IP地址后,还没有认证之前,系统给此用户分配全局控制结构,此结构与用户客户端一一对应,此结构中有一FLAG参数,初始化为0。
当客户端打开IE输入任意的URL后,AC在IP层根据用户结构中的FLAG来是否重定向,如为0需要重定向,1可以正常转发。如判断需要重定向,AC把目的端口号为80的TCP截获:
1.客户端向AC发送的TCP请求包,TCP包头的flag中的SYN置为1。
2.AC将1中的TCP请求包截获,取得源和目的IP地址、端口号,TCP包头的序列号,释放此数据包。申请新的数据包,将IP包头和TCP包头填入正确内容(注意源和目的IP地址、端口号与1中的包位置相反),包括校验位,对于发送的序列号,可以随即产生;而ACK序列号可以根据1中的包的序列号来产生);TCP包头的flag中的SYN和ACK位必须置为1。此包填充后发向客户端即可。
3.客户端收到2的数据包后,会发回一个TCP包头的flag中的ACK为1的包,此时AC截获后可以释放此数据包。
4.客户端在虚拟TCP连接建立后,立即向AC发送HTTP协议请求包(即HTTP的DATA部分:GET。。。格式),TCP包头的flag中的PSH和ACK置为1。
5.AC在截获3的包后,取得源和目的IP地址、端口号,TCP包头的序列号,释放此数据包。申请新的数据包,在做完2中的相同的步骤后,将TCP包头的flag中的PSH和ACK置为1,除此之外,将重定向的信息写入HTTP协议包的DATA部分中,处理完发向客户端。
6.客户端在获得5的数据包后,知道需要重定向,立刻发送关闭连接请求包,此包的TCP包头的flag中的FIN和ACK置为1。
7.AC在获得6的数据包后,取得源和目的IP地址、端口号,TCP包头的序列号,释放此数据包。申请新的数据包,在做完2中的相同的步骤后,将TCP包头的flag中的FIN和ACK置为1,处理完发向客户端。
8.客户端在获得7的数据包后,发送7中的数据包的ACK包,此包的TCP包头的flag中的ACK置为1。AC在截获此数据包立即释放。
9.至此AC代理模拟网站的TCP连接完整的过程就结束了。以后客户端根据获得WEB_PORTAL服务器的URL来与WEB_PORTAL服务器建立新的TCP连接,完成WEB_PORTAL服务器网页的正常访问,这样就完成重定向的全部功能。