CN103124265A - 访问网站的方法和网关设备 - Google Patents
访问网站的方法和网关设备 Download PDFInfo
- Publication number
- CN103124265A CN103124265A CN2013100388192A CN201310038819A CN103124265A CN 103124265 A CN103124265 A CN 103124265A CN 2013100388192 A CN2013100388192 A CN 2013100388192A CN 201310038819 A CN201310038819 A CN 201310038819A CN 103124265 A CN103124265 A CN 103124265A
- Authority
- CN
- China
- Prior art keywords
- client
- access
- address
- tcp
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明提供一种访问网站的方法和网关设备,旨在避免客户端访问网站时出现访问失败的现象,提高访问异常时的用户体验,包括:捕获DNS服务器根据客户端的访问域名的请求返回的DNS数据包,从DNS数据包中获取客户端所请求域名的IP地址列表;监视客户端访问其所选择的IP地址列表中的IP地址的访问情况,判断访问是否出现异常;当访问出现异常时,将客户端的访问重定向至IP地址列表中的其它IP地址。采用本发明所公开的方案,当某一个服务器出现异常的时候,用户可以在察觉不到访问出现异常的情况下继续正常访问网站,避免了客户端访问网站时出现访问失败的现象,提高了用户体验。
Description
技术领域
本发明涉及到互联网技术领域,特别涉及到一种访问网站的方法和网关设备。
背景技术
当前大型网站通常都会有几台甚至上百台的服务器,在客户端访问该网站的时候,首先通过DNS(Domain Name System,域名系统)服务器获得网站的IP地址。对于存在多个服务器的域名,一般DNS服务器会返回多个IP地址给客户端,而客户端只会取第一个IP地址来访问网站。如果网站没有部署负载均衡设备或者只采用了DNS负载均衡技术,在DNS对客户端的访问进行解析后,如果这时出现服务器死机的情况,客户端则需要等待服务器重启后才能完成访问,或者重新发起DNS请求,经过DNS将该请求解析到另外的IP地址才能正常访问。这样,客户端需要等待十几秒甚至几十秒才能正常访问网站,在等待的时间内即使不停刷新浏览器还是出现无法访问的错误提示,从而严重影响了用户体验。
发明内容
本发明的主要目的为提供一种访问网站的方法和网关设备,旨在避免客户端访问网站时出现访问失败的现象,从而提高访问异常时的客户体验。
本发明提供一种访问网站的方法,包括:
捕获DNS服务器根据客户端的访问域名的请求返回的DNS数据包,从所述DNS数据包中获取客户端所请求域名的IP地址列表;
监视客户端访问其所选择的所述IP地址列表中的IP地址的访问情况,判断访问是否出现异常;
当访问出现异常时,将客户端的访问重定向至所述IP地址列表中的其它IP地址。
优选地,所述监视客户端访问其所选择的所述IP地址列表中的IP地址的访问情况,判断访问是否出现异常包括:
在预置的响应时间阈值内,判断所述服务器是否返回对所述TCP连接中的握手信号SYN数据包的响应消息,若否,则判定所述访问的TCP连接无响应;
在预置的响应时间阈值内,判断所述服务器是否发送根据所述SYN数据包返回的请求拒绝RST包,若是,则判定所述访问的TCP连接被拒绝;
在所述服务器与客户端建立TCP连接后,判断所述服务器所发送的第一个HTTP回复消息是否包括错误代码,若是,则判定所述服务器内部出现连接错误。
优选地,在执行所述监视客户端访问其所选择的所述IP地址列表中的IP地址的访问情况之后,还包括:
记录所述客户端的TCP端口号和所述TCP连接的SYN数据包的序号。
优选地,所述将客户端的访问重定向至所述IP地址列表中的其它IP地址包括:
根据所获取的所述域名的IP地址列表,以及所述客户端的TCP端口号和所述TCP连接的SYN数据包的序号,按照预设的多个IP地址的优先级,向所述IP地址列表中高优先级的其它IP地址请求建立新的TCP连接;
将客户端发送的HTTP请求转发至所述其它IP地址对应的服务器,并将所述服务器回应的HTTP回复消息转发至所述客户端,供客户端访问所述网站。
本发明还提供一种网关设备,包括:
捕获及获取模块,用于捕获DNS服务器根据客户端的访问域名的请求返回的DNS数据包,从所述DNS数据包中获取客户端所请求域名的IP地址列表;
访问监视模块,用于监视客户端访问其所选择的所述IP地址列表中的IP地址的访问情况,判断访问是否出现异常;
重定向模块,用于当访问出现异常时,将客户端的访问重定向至所述IP地址列表中的其它IP地址。
优选地,所述访问监视模块用于:
在预置的响应时间阈值内,判断所述服务器是否返回对所述TCP连接中的握手信号SYN数据包的响应消息,若否,则判定所述访问的TCP连接无响应;
在预置的响应时间阈值内,判断所述服务器是否发送根据所述SYN数据包返回的请求拒绝RST包,若是,则判定所述访问的TCP连接被拒绝;
在所述服务器与客户端建立TCP连接后,判断所述服务器所发送的第一个HTTP回复消息是否包括错误代码,若是,则判定所述服务器内部出现连接错误。
优选地,网关设备还包括:
记录模块,用于记录所述客户端的TCP端口号和所述TCP连接的SYN数据包的序号。
优选地,所述重定向模块包括:
连接请求单元,用于根据所获取的所述域名的IP地址列表,以及所述客户端的TCP端口号和所述TCP连接的SYN数据包的序号,按照预设的多个IP地址的优先级,向所述IP地址列表中高优先级的其它IP地址请求建立新的TCP连接;
转发单元,用于将客户端发送的HTTP请求转发至所述其它IP地址对应的服务器,并将所述服务器回应的HTTP回复消息转发至所述客户端,供客户端访问所述网站。
本发明通过网关设备捕获DNS服务器返回的DNS数据包,获取客户端所请求的域名的IP地址列表,并在客户端与其中一个IP地址建立TCP连接之后,判断客户端的访问是否出现异常,若是,则将客户端的访问重定向至IP地址列表中的其它IP地址。采用将客户端的访问重定向到网站中其他服务器的方法,保证了用户在察觉不到访问出现异常的情况下能继续正常访问网站,从而避免了客户端访问网站时出现访问失败的现象,在很大程度上提高了用户体验。
附图说明
图1为本发明访问网站的方法第一实施例的流程示意图;
图2为本发明访问网站的方法中判断访问是否出现异常的流程示意图;
图3为本发明访问网站的方法第二实施例的流程示意图;
图4为本发明访问网站的方法中将客户端的访问重定向至新服务器的新IP地址的流程示意图;
图5a至图5f为本发明访问网站的方法中将客户端的访问重定向至新服务器的几种实施方式的信令图;
图6为本发明网关设备第一实施例的结构示意图;
图7为本发明网关设备第二实施例的结构示意图;
图8为本发明网关设备的重定向模块的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种访问网站的方法,当客户端访问网站,并且发起的与网站中的一个服务器的TCP连接出现故障时,采用将该连接重定向到网站中其他服务器的方法,保证用户在察觉不到访问出现异常的情况下能继续正常访问网站。
参照图1,图1为本发明访问网站的方法第一实施例的流程示意图。
本实施例所提供的访问网站的方法,包括:
步骤S10,捕获DNS服务器根据客户端的访问域名的请求返回的DNS数据包,从DNS数据包中获取客户端所请求域名的IP地址列表;
当客户端通过域名访问网站时,首先会向该网站中的域名服务系统DNS服务器发起DNS请求,而DNS服务器在接收到该DNS请求后,会返回包括网站中服务器的IP地址的DNS数据包给客户端,供客户端在其中选择一个服务器的IP地址建立TCP连接,进而访问网站的内容。由于目前的网站通常都有多台服务器,因此,当客户端所访问的域名对应的网站中存在多台服务器时,DNS服务器会根据客户端的访问请求,返回该网站中多台服务器所对应的多个IP地址。
当DNS服务器返回DNS数据包后,网关设备捕获该DNS数据包,并从该DNS数据包中获取客户端所访问的域名的IP地址列表,该IP地址列表中存储有该域名对应的网站中的服务器的IP地址;若与该域名对应的网站中存在多个服务器,则IP地址列表则存储有多个IP地址。
本实施例中,在网关设备中设置一域名IP地址采集模块,通过该域名IP地址采集模块分析并记录用户的访问信息,并收集DNS服务器所返回的IP地址列表;在该域名IP地址采集模块中还可设置淘汰机制,即当一个域名的IP地址在一段时间内都没有在DNS服务器回复的回复包中出现,则认为该IP地址已经失效,丢弃该域名,从而保证域名IP地址采集模块所采集到的IP地址都是可用的;同时,用户也可以自定义域名下的IP地址列表。
步骤S20,监视客户端访问其所选择的IP地址列表中的IP地址的访问情况;
步骤S30,判断访问是否出现异常;若是,则执行步骤S31;
步骤S31,当访问出现异常时,将客户端的访问重定向至IP地址列表中的其它IP地址。
在客户端与DNS数据包中的某一个服务器的IP地址建立TCP连接后,网关设备会监听客户端对该IP地址对应的服务器的访问情况,并进一步判断客户端的访问是否出现异常,当判断出访问出现异常时,并且当该网站中存在多个服务器时,根据所获取的IP地址列表,将客户端的访问重定向至该IP地址列表中的其他IP地址对应的服务器,以保证客户端可以正常访问网站内容。本实施例中,将访问重定向至其他IP地址对应的服务器可以通过两种方法实现:一是通过向网站中其他服务器的IP地址发起TCP连接的请求与其连接;二是通过HTTP重定向技术,向客户端返回一个HTTP重定向信息,使页面跳转到网站的其他服务器的IP地址的方式来实现。
本发明实施例,通过网关设备捕获DNS服务器返回的DNS数据包,获取客户端所请求的域名的IP地址列表,并在客户端与其中一个IP地址建立TCP连接之后,判断客户端的访问是否出现异常,若是,则将客户端的访问重定向至IP地址列表中的其它IP地址。采用将客户端的访问重定向到网站中其他服务器的方法,保证了用户在察觉不到访问出现异常的情况下能继续正常访问网站,从而避免了客户端访问网站时出现访问失败的现象,并且在很大程度上提高了用户体验。
参照图2,图2为本发明访问网站的方法中判断访问请求是否出现异常的流程示意图。
在上述实施例中,步骤S30包括:
步骤S301,在预置的响应时间阈值内,判断服务器是否返回对TCP连接中的握手信号SYN数据包的响应消息,若否,则判定访问的TCP连接无响应;
在客户端与服务器建立TCP连接之后,网关设备监听客户端的访问情况,并且在预置的响应时间阈值内,判断访问是否发生异常。本实施例中,预置的响应时间阈值是指网站服务端在接收到客户端的TCP连接请求之后,所发送连接成功的响应消息的时间极大值。如在该预置的响应时间阈值内没有收到服务器所返回的对TCP连接中的握手信号SYN数据包的响应消息,则判定访问的TCP连接无响应。
步骤S302,在预置的响应时间阈值内,判断服务器是否发送根据SYN数据包返回的请求拒绝RST包,若是,则判定访问的TCP连接被拒绝;
在预置的响应时间阈值内,如网关设备收到服务器根据TCP连接的SYN返回的请求拒绝RST包,则判定客户端访问的TCP连接被拒绝。此时,网关设备将该请求拒绝RST包丢弃,不转发至客户端。
步骤S303,在服务器与客户端建立TCP连接后,判断服务器所发送的第一个HTTP回复消息是否包括错误代码,若是,则判定服务器内部出现连接错误。
当服务器已与客户端建立了TCP连接后,网关设备监听该服务器所返回的HTTP回复消息,并判断第一个HTTP回复消息中是否包括错误代码,若是,则说明此时服务器在处理连接请求的过程中有错误或者异常状态发生,或者服务器意识到以自身当前的软硬件资源无法完成对连接请求的处理,从而进一步判定服务器内部出现连接错误。
通过在预置的响应时间阈值内,判断服务器是否返回对TCP连接中的握手信号SYN数据包的响应消息,若否,则判定访问的TCP连接无响应;判断服务器是否发送根据SYN返回的请求拒绝RST包,若是,则判定访问请求中的TCP连接被拒绝;以及在服务器与客户端建立TCP连接后,判断服务器所发送的第一个HTTP回复消息是否包括错误代码,若是,则判定服务器内部出现连接错误,判断访问请求是否出现异常,从而为后续将访问请求进行重定向提供了准确的方向。
参照图3,图3为本发明访问网站的方法第二实施例的流程示意图。
基于本发明访问网站的方法第一实施例,在执行步骤S20之后,该方法还包括:
步骤S40,记录客户端的TCP端口号和TCP连接的SYN数据包的序号。
将客户端发送的访问网站的访问请求中的TCP连接的握手信号SYN发送至与客户端所选择的IP地址对应的服务器,请求与其建立TCP连接之后,网关设备记录客户端的TCP端口号,以及其所发送的TCP连接的握手信号SYN数据包的序号,以便当TCP连接出现异常时,通过所记录的TCP端口号和SYN数据包的序号向网站的其他服务器发起新的TCP连接。进一步保证了能够使用户在察觉不到访问出现异常的情况下能继续正常访问网站。
参照图4,图4为本发明访问网站的方法中将访问请求重定向至新服务器的新IP地址的流程示意图。
基于上述本发明访问网站的方法第一实施例至第三实施例,步骤S30包括:
步骤S301,根据所获取的域名的IP地址列表,以及客户端的TCP端口号和TCP连接的SYN数据包的序号,按照预设的多个IP地址的优先级,向所述IP地址列表中高优先级的其它IP地址请求建立新的TCP连接;
步骤S302,将客户端发送的HTTP请求转发至其它IP地址对应的服务器,并将服务器回应的HTTP回复消息转发至客户端,供客户端访问网站。
本实施例中,将客户端的访问重定向至IP地址列表中的其它IP地址分为通过向网站中其他服务器的IP地址发起TCP连接的请求与其连接,以及通过HTTP重定向技术,向客户端返回一个HTTP重定向信息,使页面跳转到网站的其他服务器的IP地址这两种方式进行说明。
一、通过向网站中其他服务器的IP地址发起TCP连接的请求与其连接包括当访问请求中的TCP连接无响应或访问的TCP连接被拒绝时以及当服务器内部出现连接错误时三种情况。
参照图5a至图5c,图5a为当访问的TCP连接无响应时通过向网站中其他IP地址对应的服务器发起TCP连接请求的信令图;图5b为访问的TCP连接被拒绝时,通过向网站中其他IP地址对应的服务器发起TCP连接请求的信令图;图5c为当服务器内部出现连接错误时时通过向网站中其他IP地址对应的服务器发起TCP连接请求的信令图。
(一)、当访问的TCP连接无响应或访问的TCP连接被拒绝时:
在执行判断客户端的访问是否出现异常,并判定访问的TCP连接无响应或访问的TCP连接被拒绝时,网关设备首先根据所记录的客户端的TCP端口号和TCP连接所携带的握手信号数据包的序号向其他服务器发起新的TCP连接请求,请求建立连接。本实施例中,网关设备是根据所记录的域名与其对应的多个服务器的多个IP地址的优先级,选取优先级最高的IP地址对应的新服务器,请求与其建立TCP连接。
当新服务器接收到TCP连接,并在连接成功后,向网关设备回复重新连接成功的响应消息,网关设备在接收到该重新连接成功的响应消息后,对其中的响应数据包进行网络地址转换NAT,并将经过网络地址转换后的响应数据包发送至客户端,在接收到客户端发送的确认数据包后,同样对该确认数据包进行网络地址转换NAT,即对客户端和服务器发送的数据包均进行网络地址转换NAT后,再发送至对方。
网关设备对数据包进行NAT,即对新服务器发送的所有数据包进行源地址转换SANT,将源IP地址修改为TCP连接出现异常的服务器的IP地址,再转发至客户端;并且对客户端发送的确认数据包进行目的地址转换DNAT,将目的地址修改为新服务器目的地址,再转发至新服务器。
在进行了网络地址转换NAT后,将客户端发送的HTTP请求转发至新服务器,并将新服务器根据HTTP请求所回应的HTTP回复消息转发至客户端,供客户端正常访问网络。
(二)、当服务器内部出现连接错误时:
当新服务器接收到TCP连接,并在连接成功后,向网关设备回复重新连接成功的响应消息,网关设备在接收到该重新连接成功的响应消息后,对其中的响应数据包进行网络地址转换NAT,并将经过网络地址转换后的响应数据包发送至客户端,在接收到客户端发送的确认数据包后,同样对该确认数据包进行网络地址转换NAT,即对客户端和服务器发送的数据包均进行网络地址转换NAT后,再发送至对方。
网关设备对数据包进行NAT,即对新服务器发送的所有数据包进行源地址转换SANT,将源IP地址修改为TCP连接出现异常的服务器的IP地址,再转发至客户端;并且对客户端发送的确认数据包进行目的地址转换DNAT,将目的地址修改为新服务器目的地址,再转发至新服务器。
在进行了网络地址转换NAT后,将客户端发送的HTTP请求转发至新服务器,接收到新服务器根据HTTP请求所回应的HTTP回复消息后,由于新服务器的TCP序号与出现连接错误的服务器的TCP序号不一致,因此,需要将该HTTP回复消息中HTTP回复数据包的TCP序号转换为与出现连接错误的服务器的TCP序号。本实施例中,可根据如下公式计算TCP序号:
TCP序号 = 新服务器的数据包序号 - ( 新服务器的SYN序号 –出现连接错误的服务器的SYN序号 )。
将新服务器回应的HTTP回复消息中HTTP回复数据包的TCP序号转换为出现连接错误的服务器的TCP序号后,将经过转换后的HTTP回复数据包转发至客户端,供客户端正常访问网络。本实施例中,在客户端根据HTTP回复消息返回了确认消息后,同样需要对该确认消息的确认号进行修改,使其对应于新服务器。
本实施例中,通过HTTP重定向技术,向客户端返回一个HTTP重定向信息,使页面跳转到网站的其他服务器的IP地址同样包括当访问的TCP连接无响应或访问的TCP连接被拒绝时以及当服务器内部出现连接错误时三种情况。
参照图5d至图5f,图5d为当访问的TCP连接无响应时通过将客户端的HTTP请求重定向至网站中其他IP地址对应的服务器的信令图;图5e为访问的TCP连接被拒绝时通过将客户端的HTTP请求重定向至网站中其他IP地址对应的服务器的信令图;图5f为服务器内部出现连接错误时通过将客户端的HTTP请求重定向至网站中其他IP地址对应的服务器的信令图。
二、通过将客户端的HTTP请求重定向至网站中其他IP地址对应的服务器时:
在判定客户端的访问出现异常,通过将客户端的HTTP请求重定向至网站中其他IP地址对应的服务器,以请求与其建立连接时,网关设备首先虚拟一个携带有虚拟响应数据包的虚拟响应消息,并将该虚拟响应消息发送至客户端,请求与客户端建立TCP连接。
在客户端根据虚拟响应消息与网关设备建立TCP连接后,会回复确认消息,并且发起HTTP请求,在网关设备接收到客户端返回的确认消息和HTTP请求之后,根据该HTTP请求返回一HTTP回复消息至客户端。
本发明还提供一种网关设备。
参照图6,图6为本发明网关设备第一实施例的结构示意图。
本实施例所提供的网关设备,包括:
捕获及获取模块10,用于捕获DNS服务器根据客户端的访问域名的请求返回的DNS数据包,从DNS数据包中获取客户端所请求的域名的IP地址列表;
访问监视模块20,用于监视客户端访问其所选择的IP地址列表中的IP地址的访问情况,判断访问是否出现异常;
重定向模块30,用于当访问出现异常时,将客户端的访问重定向至IP地址列表中的其它IP地址。
当客户端通过域名访问网站时,首先会向该网站中的域名服务系统DNS服务器发起DNS请求,而DNS服务器在接收到该DNS请求后,会返回包括网站中服务器的IP地址的DNS数据包给客户端,供客户端在其中选择一个服务器的IP地址建立TCP连接,进而访问网站的内容。由于目前的网站通常都有多台服务器,因此, 当客户端所访问的域名对应的网站中存在多台服务器时,DNS服务器会根据客户端的访问请求,返回该网站中多台服务器所对应的多个IP地址。
当DNS服务器返回DNS数据包后,网关设备通过其捕获及获取模块10捕获该DNS数据包,并从该DNS数据包中获取客户端所访问的域名的IP地址列表,该IP地址列表中存储有该域名对应的网站中的服务器的IP地址;若与该域名对应的网站中存在多个服务器,则IP地址列表则存储有多个IP地址。
本实施例中,在网关设备中设置一域名IP地址采集模块,通过该域名IP地址采集模块分析并记录用户的访问信息,并收集DNS服务器所返回的IP地址列表;在该域名IP地址采集模块中还可设置淘汰机制,即当一个域名的IP地址在一段时间内都没有在DNS服务器回复的回复包中出现,则认为该IP地址已经失效,丢弃该域名,从而保证域名IP地址采集模块所采集到的IP地址都是可用的;同时,用户也可以自定义域名下的IP地址列表。
在客户端与DNS数据包中的某一个服务器的IP地址建立TCP连接后,网关设备的访问监视模块20会监听客户端对该IP地址对应的服务器的访问情况,并进一步判断客户端的访问是否出现异常,当判断出访问出现异常时,并且当该网站中存在多个服务器时,根据所获取的IP地址列表,通过重定向模块30将客户端的访问重定向至该IP地址列表中的其他IP地址对应的服务器,以保证客户端可以正常访问网站内容。本实施例中,将访问重定向至其他IP地址对应的服务器可以通过两种方法实现:一是通过向网站中其他服务器的IP地址发起TCP连接的请求与其连接;二是通过HTTP重定向技术,向客户端返回一个HTTP重定向信息,使页面跳转到网站的其他服务器的IP地址的方式来实现。
本发明实施例,通过网关设备捕获DNS服务器返回的DNS数据包,获取客户端所请求的域名的IP地址列表,并在客户端与其中一个IP地址建立TCP连接之后,判断客户端的访问是否出现异常,若是,则将客户端的访问重定向至IP地址列表中的其它IP地址。采用将客户端的访问重定向到网站中其他服务器的方法,保证了用户在察觉不到访问出现异常的情况下能继续正常访问网站,从而避免了客户端访问网站时出现访问失败的现象,并且在很大程度上提高了用户体验。
在上述实施例中,访问监视模块20具体用于:
在预置的响应时间阈值内,判断服务器是否返回对TCP连接中的握手信号SYN数据包的响应消息,若否,则判定访问的TCP连接无响应;
在预置的响应时间阈值内,判断服务器是否发送根据SYN数据包返回的请求拒绝RST包,若是,则判定访问的TCP连接被拒绝;
在服务器与客户端建立TCP连接后,判断服务器所发送的第一个HTTP回复消息是否包括错误代码,若是,则判定服务器内部出现连接错误。
在客户端与服务器建立TCP连接之后,网关设备的异常判断模块30监听客户端的访问情况,并且在预置的响应时间阈值内,判断访问是否发生异常。本实施例中,预置的响应时间阈值是指网站服务端在接收到客户端的TCP连接请求之后,所发送连接成功的响应消息的时间极大值。如在该预置的响应时间阈值内没有收到服务器所返回的对TCP连接中的握手信号SYN数据包的响应消息,则判定访问的TCP连接无响应。
在预置的响应时间阈值内,如网关设备收到服务器根据TCP连接的SYN返回的请求拒绝RST包,则判定客户端访问的TCP连接被拒绝。此时,网关设备将该请求拒绝RST包丢弃,不转发至客户端。
当服务器已与客户端建立了TCP连接后,网关设备监听该服务器所返回的HTTP回复消息,并判断第一个HTTP回复消息中是否包括错误代码,若是,则说明此时服务器在处理连接请求的过程中有错误或者异常状态发生,或者服务器意识到以自身当前的软硬件资源无法完成对连接请求的处理,从而进一步判定服务器内部出现连接错误。
通过在预置的响应时间阈值内,判断服务器是否返回对TCP连接中的握手信号SYN数据包的响应消息,若否,则判定访问的TCP连接无响应;判断服务器是否发送根据SYN返回的请求拒绝RST包,若是,则判定访问请求中的TCP连接被拒绝;以及在服务器与客户端建立TCP连接后,判断服务器所发送的第一个HTTP回复消息是否包括错误代码,若是,则判定服务器内部出现连接错误,判断访问请求是否出现异常,从而为后续将访问请求进行重定向提供了准确的方向。
参照图7,图7为本发明网关设备第二实施例的结构示意图。
基于本发明网关设备第一实施例,网关设备还包括:
记录模块40,用于记录客户端的TCP端口号和TCP连接的SYN数据包的序号。
将客户端发送的访问网站的访问请求中的TCP连接的握手信号SYN发送至与客户端所选择的IP地址对应的服务器,请求与其建立TCP连接之后,网关设备的第二记录模块40记录客户端的TCP端口号,以及其所发送的TCP连接的握手信号SYN数据包的序号,以便当TCP连接出现异常时,通过所记录的TCP端口号和SYN数据包的序号向网站的其他服务器发起新的TCP连接。进一步保证了能够使用户在察觉不到访问出现异常的情况下能继续正常访问网站。
参照图8,图8为本发明网关设备的重定向模块的结构示意图。
在本发明网关设备第一实施例中,重定向模块30包括:
连接请求单元31,用于根据所获取的所述域名的IP地址列表,以及客户端的TCP端口号和TCP连接的SYN数据包的序号,按照预设的多个IP地址的优先级,向IP地址列表中高优先级的其它IP地址请求建立新的TCP连接;
转发单元32,用于将客户端发送的HTTP请求转发至其它IP地址对应的服务器,并将服务器回应的HTTP回复消息转发至客户端,供客户端访问网站。
本实施例中,将客户端的访问重定向至IP地址列表中的其它IP地址分为通过向网站中其他服务器的IP地址发起TCP连接的请求与其连接,以及通过HTTP重定向技术,向客户端返回一个HTTP重定向信息,使页面跳转到网站的其他服务器的IP地址这两种方式进行说明。
一、通过向网站中其他服务器的IP地址发起TCP连接的请求与其连接包括当访问请求中的TCP连接无响应或访问的TCP连接被拒绝时以及当服务器内部出现连接错误时三种情况。
(一)、当访问的TCP连接无响应或访问的TCP连接被拒绝时:
在执行判断客户端的访问是否出现异常,并判定访问的TCP连接无响应或访问的TCP连接被拒绝时,网关设备首先根据所记录的客户端的TCP端口号和TCP连接所携带的握手信号数据包的序号向其他服务器发起新的TCP连接请求,请求建立连接。本实施例中,网关设备是根据所记录的域名与其对应的多个服务器的多个IP地址的优先级,选取优先级最高的IP地址对应的新服务器,请求与其建立TCP连接。
当新服务器接收到TCP连接,并在连接成功后,向网关设备回复重新连接成功的响应消息,网关设备在接收到该重新连接成功的响应消息后,对其中的响应数据包进行网络地址转换NAT,并将经过网络地址转换后的响应数据包发送至客户端,在接收到客户端发送的确认数据包后,同样对该确认数据包进行网络地址转换NAT,即对客户端和服务器发送的数据包均进行网络地址转换NAT后,再发送至对方。
网关设备对数据包进行NAT,即对新服务器发送的所有数据包进行源地址转换SANT,将源IP地址修改为TCP连接出现异常的服务器的IP地址,再转发至客户端;并且对客户端发送的确认数据包进行目的地址转换DNAT,将目的地址修改为新服务器目的地址,再转发至新服务器。
在进行了网络地址转换NAT后,将客户端发送的HTTP请求转发至新服务器,并将新服务器根据HTTP请求所回应的HTTP回复消息转发至客户端,供客户端正常访问网络。
(二)、当服务器内部出现连接错误时:
当新服务器接收到TCP连接,并在连接成功后,向网关设备回复重新连接成功的响应消息,网关设备在接收到该重新连接成功的响应消息后,对其中的响应数据包进行网络地址转换NAT,并将经过网络地址转换后的响应数据包发送至客户端,在接收到客户端发送的确认数据包后,同样对该确认数据包进行网络地址转换NAT,即对客户端和服务器发送的数据包均进行网络地址转换NAT后,再发送至对方。
网关设备对数据包进行NAT,即对新服务器发送的所有数据包进行源地址转换SANT,将源IP地址修改为TCP连接出现异常的服务器的IP地址,再转发至客户端;并且对客户端发送的确认数据包进行目的地址转换DNAT,将目的地址修改为新服务器目的地址,再转发至新服务器。
在进行了网络地址转换NAT后,将客户端发送的HTTP请求转发至新服务器,接收到新服务器根据HTTP请求所回应的HTTP回复消息后,由于新服务器的TCP序号与出现连接错误的服务器的TCP序号不一致,因此,需要将该HTTP回复消息中HTTP回复数据包的TCP序号转换为与出现连接错误的服务器的TCP序号。本实施例中,可根据如下公式计算TCP序号:
TCP序号 = 新服务器的数据包序号 - ( 新服务器的SYN序号 –出现连接错误的服务器的SYN序号 )。
将新服务器回应的HTTP回复消息中HTTP回复数据包的TCP序号转换为出现连接错误的服务器的TCP序号后,将经过转换后的HTTP回复数据包转发至客户端,供客户端正常访问网络。本实施例中,在客户端根据HTTP回复消息返回了确认消息后,同样需要对该确认消息的确认号进行修改,使其对应于新服务器。
本实施例中,通过HTTP重定向技术,向客户端返回一个HTTP重定向信息,使页面跳转到网站的其他服务器的IP地址同样包括当访问的TCP连接无响应或访问的TCP连接被拒绝时以及当服务器内部出现连接错误时三种情况。
二、通过将客户端的HTTP请求重定向至网站中其他IP地址对应的服务器时:
在判定客户端的访问出现异常,通过将客户端的HTTP请求重定向至网站中其他IP地址对应的服务器,以请求与其建立连接时,网关设备首先虚拟一个携带有虚拟响应数据包的虚拟响应消息,并将该虚拟响应消息发送至客户端,请求与客户端建立TCP连接。
在客户端根据虚拟响应消息与网关设备建立TCP连接后,会回复确认消息,并且发起HTTP请求,在网关设备接收到客户端返回的确认消息和HTTP请求之后,根据该HTTP请求返回一HTTP回复消息至客户端。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围。
Claims (8)
1.一种访问网站的方法,其特征在于,包括:
捕获DNS服务器根据客户端的访问域名的请求返回的DNS数据包,从所述DNS数据包中获取客户端所请求域名的IP地址列表;
监视客户端访问其所选择的所述IP地址列表中的IP地址的访问情况,判断访问是否出现异常;
当访问出现异常时,将客户端的访问重定向至所述IP地址列表中的其它IP地址。
2.根据权利要求1所述的访问网站的方法,其特征在于,所述监视客户端访问其所选择的所述IP地址列表中的IP地址的访问情况,判断访问是否出现异常包括:
在预置的响应时间阈值内,判断所述服务器是否返回对所述TCP连接中的握手信号SYN数据包的响应消息,若否,则判定所述访问的TCP连接无响应;
在预置的响应时间阈值内,判断所述服务器是否发送根据所述SYN数据包返回的请求拒绝RST包,若是,则判定所述访问的TCP连接被拒绝;
在所述服务器与客户端建立TCP连接后,判断所述服务器所发送的第一个HTTP回复消息是否包括错误代码,若是,则判定所述服务器内部出现连接错误。
3.根据权利要求2所述的访问网站的方法,其特征在于,在执行所述监视客户端访问其所选择的所述IP地址列表中的IP地址的访问情况之后,还包括:
记录所述客户端的TCP端口号和所述TCP连接的SYN数据包的序号。
4.根据权利要求1至3中任一项所述的访问网站的方法,其特征在于,所述将客户端的访问重定向至所述IP地址列表中的其它IP地址包括:
根据所获取的所述域名的IP地址列表,以及所述客户端的TCP端口号和所述TCP连接的SYN数据包的序号,按照预设的多个IP地址的优先级,向所述IP地址列表中高优先级的其它IP地址请求建立新的TCP连接;
将客户端发送的HTTP请求转发至所述其它IP地址对应的服务器,并将所述服务器回应的HTTP回复消息转发至所述客户端,供客户端访问所述网站。
5.一种网关设备,其特征在于,包括:
捕获及获取模块,用于捕获DNS服务器根据客户端的访问域名的请求返回的DNS数据包,从所述DNS数据包中获取客户端所请求域名的IP地址列表;
访问监视模块,用于监视客户端访问其所选择的所述IP地址列表中的IP地址的访问情况,判断访问是否出现异常;
重定向模块,用于当访问出现异常时,将客户端的访问重定向至所述IP地址列表中的其它IP地址。
6.根据权利要求5所述的网关设备,其特征在于,所述访问监视模块用于:
在预置的响应时间阈值内,判断所述服务器是否返回对所述TCP连接中的握手信号SYN数据包的响应消息,若否,则判定所述访问的TCP连接无响应;
在预置的响应时间阈值内,判断所述服务器是否发送根据所述SYN数据包返回的请求拒绝RST包,若是,则判定所述访问的TCP连接被拒绝;
在所述服务器与客户端建立TCP连接后,判断所述服务器所发送的第一个HTTP回复消息是否包括错误代码,若是,则判定所述服务器内部出现连接错误。
7.根据权利要求6所述的网关设备,其特征在于,还包括:
记录模块,用于记录所述客户端的TCP端口号和所述TCP连接的SYN数据包的序号。
8.根据权利要求5至7中任一项所述的网关设备,其特征在于,所述重定向模块包括:
连接请求单元,用于根据所获取的所述域名的IP地址列表,以及所述客户端的TCP端口号和所述TCP连接的SYN数据包的序号,按照预设的多个IP地址的优先级,向所述IP地址列表中高优先级的其它IP地址请求建立新的TCP连接;
转发单元,用于将客户端发送的HTTP请求转发至所述其它IP地址对应的服务器,并将所述服务器回应的HTTP回复消息转发至所述客户端,供客户端访问所述网站。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013100388192A CN103124265A (zh) | 2013-01-31 | 2013-01-31 | 访问网站的方法和网关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013100388192A CN103124265A (zh) | 2013-01-31 | 2013-01-31 | 访问网站的方法和网关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103124265A true CN103124265A (zh) | 2013-05-29 |
Family
ID=48455120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013100388192A Pending CN103124265A (zh) | 2013-01-31 | 2013-01-31 | 访问网站的方法和网关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103124265A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104426878A (zh) * | 2013-09-02 | 2015-03-18 | 博雅网络游戏开发(深圳)有限公司 | 服务器连接方法和装置 |
CN105354337A (zh) * | 2015-12-08 | 2016-02-24 | 北京奇虎科技有限公司 | 一种网络爬虫实现方法和网络爬虫系统 |
CN105991797A (zh) * | 2016-07-01 | 2016-10-05 | 北京奇虎科技有限公司 | 移动终端访问网络的方法及装置 |
CN105991798A (zh) * | 2016-07-01 | 2016-10-05 | 北京奇虎科技有限公司 | 移动终端访问网络的方法及装置 |
CN106937277A (zh) * | 2015-12-30 | 2017-07-07 | 阿里巴巴集团控股有限公司 | 地址更新方法和装置 |
CN107832329A (zh) * | 2017-09-26 | 2018-03-23 | 中国平安人寿保险股份有限公司 | 页面资源获取方法及终端设备 |
CN108011944A (zh) * | 2017-11-30 | 2018-05-08 | 北京酷我科技有限公司 | 一种Android上降低http请求失败的方法 |
CN108040085A (zh) * | 2017-11-20 | 2018-05-15 | 广州华多网络科技有限公司 | 网络接入方法、装置及服务器 |
CN109327392A (zh) * | 2017-07-24 | 2019-02-12 | 网宿科技股份有限公司 | 一种多路径传输中路径选择方法及装置 |
CN111371915A (zh) * | 2020-02-26 | 2020-07-03 | 北京天维信通科技有限公司 | Ip地址列表维护方法和装置及网关设备 |
CN114884920A (zh) * | 2022-07-07 | 2022-08-09 | 荣耀终端有限公司 | 一种通信方法、电子设备及存储介质 |
CN114938373A (zh) * | 2022-05-23 | 2022-08-23 | 睿云联(厦门)网络通讯技术有限公司 | 一种云平台tcp长连接服务的高可用连接方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030055979A1 (en) * | 2001-09-19 | 2003-03-20 | Cooley William Ray | Internet domain name resolver |
CN101452483A (zh) * | 2008-12-25 | 2009-06-10 | 阿里巴巴集团控股有限公司 | 网站访问方法及系统 |
CN101610222A (zh) * | 2009-07-20 | 2009-12-23 | 中兴通讯股份有限公司 | 基于客户端的服务器选择方法及装置 |
CN102118278A (zh) * | 2010-12-31 | 2011-07-06 | 网宿科技股份有限公司 | 网络状况测量方法、系统及网络覆盖监控方法 |
CN102480529A (zh) * | 2010-11-24 | 2012-05-30 | 北京无线恒远科技有限公司 | 实现广域网负载均衡的域名解析方法及域名解析服务器 |
CN102783119A (zh) * | 2012-05-25 | 2012-11-14 | 华为终端有限公司 | 访问控制方法、系统及接入终端 |
-
2013
- 2013-01-31 CN CN2013100388192A patent/CN103124265A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030055979A1 (en) * | 2001-09-19 | 2003-03-20 | Cooley William Ray | Internet domain name resolver |
CN101452483A (zh) * | 2008-12-25 | 2009-06-10 | 阿里巴巴集团控股有限公司 | 网站访问方法及系统 |
CN101610222A (zh) * | 2009-07-20 | 2009-12-23 | 中兴通讯股份有限公司 | 基于客户端的服务器选择方法及装置 |
CN102480529A (zh) * | 2010-11-24 | 2012-05-30 | 北京无线恒远科技有限公司 | 实现广域网负载均衡的域名解析方法及域名解析服务器 |
CN102118278A (zh) * | 2010-12-31 | 2011-07-06 | 网宿科技股份有限公司 | 网络状况测量方法、系统及网络覆盖监控方法 |
CN102783119A (zh) * | 2012-05-25 | 2012-11-14 | 华为终端有限公司 | 访问控制方法、系统及接入终端 |
Non-Patent Citations (1)
Title |
---|
王超: "《基于P2P技术的远程控制系统》", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104426878B (zh) * | 2013-09-02 | 2018-04-06 | 深圳市东方博雅科技有限公司 | 服务器连接方法和装置 |
CN104426878A (zh) * | 2013-09-02 | 2015-03-18 | 博雅网络游戏开发(深圳)有限公司 | 服务器连接方法和装置 |
CN105354337A (zh) * | 2015-12-08 | 2016-02-24 | 北京奇虎科技有限公司 | 一种网络爬虫实现方法和网络爬虫系统 |
CN112751950A (zh) * | 2015-12-30 | 2021-05-04 | 创新先进技术有限公司 | 地址更新方法和装置 |
CN112751950B (zh) * | 2015-12-30 | 2023-03-21 | 创新先进技术有限公司 | 地址更新方法和装置 |
CN106937277A (zh) * | 2015-12-30 | 2017-07-07 | 阿里巴巴集团控股有限公司 | 地址更新方法和装置 |
CN105991797B (zh) * | 2016-07-01 | 2019-10-15 | 北京奇虎科技有限公司 | 移动终端访问网络的方法及装置 |
CN105991798A (zh) * | 2016-07-01 | 2016-10-05 | 北京奇虎科技有限公司 | 移动终端访问网络的方法及装置 |
CN105991797A (zh) * | 2016-07-01 | 2016-10-05 | 北京奇虎科技有限公司 | 移动终端访问网络的方法及装置 |
CN109327392B (zh) * | 2017-07-24 | 2022-04-22 | 网宿科技股份有限公司 | 一种多路径传输中路径选择方法及装置 |
CN109327392A (zh) * | 2017-07-24 | 2019-02-12 | 网宿科技股份有限公司 | 一种多路径传输中路径选择方法及装置 |
CN107832329A (zh) * | 2017-09-26 | 2018-03-23 | 中国平安人寿保险股份有限公司 | 页面资源获取方法及终端设备 |
CN108040085A (zh) * | 2017-11-20 | 2018-05-15 | 广州华多网络科技有限公司 | 网络接入方法、装置及服务器 |
CN108011944A (zh) * | 2017-11-30 | 2018-05-08 | 北京酷我科技有限公司 | 一种Android上降低http请求失败的方法 |
CN111371915A (zh) * | 2020-02-26 | 2020-07-03 | 北京天维信通科技有限公司 | Ip地址列表维护方法和装置及网关设备 |
CN111371915B (zh) * | 2020-02-26 | 2022-05-20 | 北京天维信通科技有限公司 | Ip地址列表维护方法和装置及网关设备 |
CN114938373A (zh) * | 2022-05-23 | 2022-08-23 | 睿云联(厦门)网络通讯技术有限公司 | 一种云平台tcp长连接服务的高可用连接方法及系统 |
CN114938373B (zh) * | 2022-05-23 | 2023-11-03 | 睿云联(厦门)网络通讯技术有限公司 | 一种云平台tcp长连接服务的高可用连接方法及系统 |
CN114884920A (zh) * | 2022-07-07 | 2022-08-09 | 荣耀终端有限公司 | 一种通信方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103124265A (zh) | 访问网站的方法和网关设备 | |
US10904204B2 (en) | Incompatible network gateway provisioned through DNS | |
CN108173976B (zh) | 域名解析方法及装置 | |
US8166197B2 (en) | Multipath routing process | |
EP3398077B1 (en) | Method and system for automatically bypassing network proxies in the presence of interdependent traffic flows | |
EP2571228B1 (en) | Access control method and system, and access terminal | |
CN109067914A (zh) | Web服务的代理方法、装置、设备及存储介质 | |
US20170034174A1 (en) | Method for providing access to a web server | |
US20180109456A1 (en) | System, method, and device for network load balance processing | |
CN110839046B (zh) | 多协议的互通方法和系统 | |
CN102790808A (zh) | 一种域名解析方法和系统、一种客户端 | |
CN106161667A (zh) | 一种域名解析方法及装置 | |
KR101127246B1 (ko) | Ip 주소를 공유하는 단말을 검출하는 방법 및 그 장치 | |
CN104468265A (zh) | 局域网终端在线状态的检测方法和装置 | |
US9509777B2 (en) | Connection method and management server | |
CN114666245A (zh) | B/S系统的IPv6单栈支持度确定方法及相关设备 | |
US10021176B2 (en) | Method and server for managing traffic-overload on a server | |
CN105554116B (zh) | 一种UPnP设备远程互连方法及系统 | |
EP3140750B1 (en) | State-based intercept of interactive communications network connections for provision of targeted, status-based messaging | |
CN106470249A (zh) | Gateway-whois域名注册查询方法和装置 | |
JP6605149B2 (ja) | 共有端末の検出方法及びその装置 | |
KR101603692B1 (ko) | 공유 단말 식별 방법 및 그 시스템 | |
Cisco | Health Monitoring | |
JP6303302B2 (ja) | 通信制御システム、中継装置及び通信制御プログラム | |
CN109510864B (zh) | 一种缓存请求的转发方法、传输方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130529 |
|
RJ01 | Rejection of invention patent application after publication |