发明内容
本申请的主要目的在于提供一种数据访问方法和入口服务器,以至少解决现有TCP代理服务器的转发端口是预先固定好的,只能通过使用者手动修改,不能动态的修改的问题。
根据本申请的一个方面,提供了一种数据访问方法,其包括:入口服务器接收待传输的访问请求信息,其中,访问请求信息用于访问目的服务器上的数据;入口服务器获取入口服务器与目的服务器之间的链路信息,其中,链路信息由配置系统根据包括入口服务器和目的服务器在内的网络服务器上报的自身至网络服务器集合中的其他网络服务器的延时信息和丢包率信息计算得到;入口服务器根据链路信息将访问请求信息发送给目的服务器。
作为一种可选方案,在入口服务器接收待传输的访问请求信息之前,数据访问方法还包括:包括入口服务器和目的服务器在内的网络服务器集合中的每个网络服务器每隔预定周期或在满足预定的条件下获取自身至网络服务器集合中的其他网络服务器的延时信息和丢包率信息;网络服务器将延时信息和丢包率信息发送给配置系统;入口服务器接收配置系统返回的入口服务器与目的服务器之间的链路信息;入口服务器获取入口服务器与目的服务器之间的链路信息包括:入口服务器从本地获取入口服务器与目的服务器之间的链路信息。
作为一种可选方案,预定的条件包括:网络服务器接收到配置系统发送的链路信息获取请求。
作为一种可选方案,入口服务器获取入口服务器与目的服务器之间的链路信息包括:配置系统接收入口服务器发送的用于获取链路信息的第一请求消息;配置系统响应于第一请求消息向包括入口服务器和目的服务器在内的网络服务器集合中的每个网络服务器发送用于获取链路信息的第二请求消息;配置系统接收网络服务器发送的自身至网络服务器集合中的其他网络服务器的延时信息和丢包率信息;配置系统根据延时信息和丢包率信息计算入口服务器与目的服务器之间的链路信息;配置系统将入口服务器与目的服务器之间的链路信息发送给入口服务器。
作为一种可选方案,入口服务器根据链路信息将访问请求信息发送给目的服务器包括:入口服务器通过链路信息指示的多个中间服务器将访问请求信息发送给与目的服务器连接的出口服务器;出口服务器将访问请求信息发送给目的服务器;其中,在多个中间服务器之间传输访问请求信息包括如下步骤:多个中间服务器中的第一中间服务器从链路信息中获取作为第一中间服务器下一跳的第二中间服务器的套接字;第一中间服务器根据第二中间服务器的套接字与第二中间服务器建立连接;若第一中间服务器与第二中间服务器建立连接成功,则第一中间服务器从链路信息中删除第一中间服务器的套接字,并将更新后的链路信息和访问请求信息发送给第二中间服务器;其中,套接字为IP地址和端口号或为IP地址。
作为一种可选方案,在多个中间服务器之间传输访问请求信息包括:若第一中间服务器与第二中间服务器建立连接失败,则第一中间服务器从链路信息中获取作为第二中间服务器下一跳的第三中间服务器的套接字;第一中间服务器根据第三中间服务器的套接字与第三中间服务器建立连接;若第一中间服务器与第三中间服务器建立连接成功,则第一中间服务器从链路信息中删除第一中间服务器和第二中间服务器的套接字,并将更新后的链路信息和访问请求信息发送给第三中间服务器。
根据本申请的另一方面,提供了一种入口服务器,其包括:第一传输单元,用于接收待传输的访问请求信息,其中,访问请求信息用于访问目的服务器上的数据;获取单元,用于获取入口服务器与目的服务器之间的链路信息,其中,链路信息由配置系统根据包括入口服务器和目的服务器在内的网络服务器上报的自身至网络服务器集合中的其他网络服务器的延时信息和丢包率信息计算得到;第二传输单元,用于根据链路信息将访问请求信息发送给目的服务器。
作为一种可选方案,该入口服务器包括:第三传输单元,用于在接收待传输的访问请求信息之前,每隔预定周期或在满足预定的条件下获取入口服务器至网络服务器集合中的其他网络服务器的延时信息和丢包率信息,其中,网络服务器集合包括入口服务器和目的服务器;将延时信息和丢包率信息发送给配置系统;第四传输单元,用于接收配置系统返回的入口服务器与目的服务器之间的链路信息;其中获取单元用于从本地获取入口服务器与目的服务器之间的链路信息。
作为一种可选方案,预定的条件包括:网络服务器接收到配置系统发送的链路信息获取请求。
作为一种可选方案,获取单元包括:第一传输模块,用于配置系统发送用于获取链路信息的第一请求消息;第二传输模块,用于接收配置系统响应于第一请求消息发送的用于获取链路信息的第二请求消息;第三传输模块,用于响应于第二请求消息向配置系统发送的入口服务器至网络服务器集合中的其他网络服务器的延时信息和丢包率信息,其中,网络服务器集合包括入口服务器和目的服务器;第四传输模块,用于接收配置系统发送的根据延时信息和丢包率信息计算得到的入口服务器与目的服务器之间的链路信息。
通过本申请的技术方案,能够达到以下有益效果:
1)从全局感知整条链路的信息,并根据获取到各个网络服务器感知的链路信息计算链路,从而可以更合理利用链路资源,做到全网的带宽利用最大化,增加链路利用率;
2)用于建立连接的套接字是从动态分配的链路信息中解析得到的,而不需要进行预先配置,从而减少了配置的复杂度,加快了数据的传输速度;
3)可以将入口服务器的IP带给目的服务器,使得目的服务器可以获取到网民IP。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
实施例1
如图1所示,在本实施例所示的传输网络中包括:入口服务器102-1和102-2、中间服务器106-1至106-3以及目的服务器104。入口服务器102-1和102-2可以通过中间服务器106-1至106-3中的一个或多个将数据访问请求发送到对应的目的服务器104。需要说明的是,图1所示的传输网络仅是一种示例,入口服务器、中间服务器以及目的服务器之间的网络拓扑结构还可以为其他连接方式,而且本实施例对中间服务器的数量不做限定,作为一种可选的实现方式,入口服务器还可以直接与目的服务器相连。
基于图1所示的传输网络,本实施例还提供了一种可选的数据访问方法,以下以入口服务器102-1为例进行叙述,如图2所示,该数据访问方法包括但不限于如下步骤:
S202,入口服务器102-1接收待传输的访问请求信息,其中,上述访问请求信息用于访问目的服务器104上的数据;
可选的,上述访问请求信息可以包括来自用户在终端上输入的网页地址,例如,www.baidu.com。此外,可以为不同的地域设置不同的入口服务器,例如,当广州的用户在终端上输入网页地址,则可以将该携带有该网页地址的访问请求信息路由到设置在广州的入口服务器102-1上。
S204,入口服务器102-1获取入口服务器102-1与目的服务器104之间的链路信息,其中,链路信息由配置系统根据包括入口服务器和目的服务器在内的网络服务器上报的自身至网络服务器集合中的其他网络服务器的延时信息和丢包率信息计算得到;
作为一种可选的方式,入口服务器102-1与目的服务器104之间的链路信息包括最优链路信息,可选的,上述最优链路信息可为跳数最少的链路。
作为一种可选的方式,链路信息获取可以包括如下步骤:获取到入口服务器102-1、中间服务器106-1至106-3以及目的服务器104的链路信息,并根据这些链路信息计算入口服务器102-1与目的服务器104之间的链路信息。这里,入口服务器102-1、中间服务器106-1至106-3以及目的服务器104的链路信息可以包括但不限于:各个服务器至其他网络服务器之间的延时信息和丢包率信息。
可选的,假设入口服务器102-1与目的服务器104之间的链路为:入口服务器102-1—中间服务器106-1—中间服务器106-2—目的服务器104。对于上述链路,上述链路信息可以包括但不限于:中间服务器106-1、中间服务器106-2和中间服务器106-2的套接字,这里,套接字包括:IP地址和端口号或IP地址。
S206,入口服务器102-1根据上述链路信息将上述访问请求信息发送给上述目的服务器104。
可选的,入口服务器102-1可以经过中间服务器106-1、中间服务器106-2传输到目的服务器104,或者,经过中间服务器106-1、中间服务器106-3传输到目的服务器104。需要说明的是,上述传输路径仅是一种示例,对于不同的网络拓扑结构,入口服务器102-1至目的服务器104之间可以存在不同的传输路径。
作为一种可选的方式,当完成上述访问请求后,由入口服务器102-1建立到目的服务器104之间的链路连接也将被拆除。
作为另一种可选的方式,入口服务器102-1在获取入口服务器102-1与目的服务器104之间的链路信息之后,入口服务器102-1会预先建立多个完整链路连接,并放到连接池之中,当访问请求访问时,入口服务器102-1可从连接池中取一个已经建立好的连接,进行数据的传输,这样,可以减少建立连接的时间,起到加速传输的效果;当完成上述访问请求后,由入口服务器102-1建立到目的服务器104之间的链路连接也将被拆除。而连接池中随即会有一个新的连接补充到连接池之中,供后续的访问请求使用。此外,连接都有超时时间,该超时时间由目的服务器104决定,在连接超时时间之内的连接都是可用的,而当连接超时,该连接将被主动从连接池中去除,连接池内始终保证连接是可用的。
通过上述实施例,从全局感知整条链路的信息,并根据获取到各个网络服务器感知的链路信息计算链路,从而可以更合理利用链路资源,做到全网的带宽利用最大化,增加链路利用率;此外,用于建立连接的套接字是从动态分配的链路信息中解析得到的,而不需要进行预先配置,从而减少了配置的复杂度,加快了数据的传输速度;进一步,可以将入口服务器的IP带给目的服务器,使得目的服务器可以获取到网民IP。
为了获取动态分配的链路信息,本实施例提供了以下几种实现方式:
1)作为一种可选的实现方式,如图3和图4所示,在上述入口服务器102-1和102-2接收待传输的访问请求信息之前,该数据访问方法还包括:
S402,入口服务器102-1和102-2每隔预定周期获取自身至网络服务器集合中其他网络服务器的延时信息和丢包率信息,并将延时信息和丢包率信息发送给配置系统302。可选的,网络服务器集合可以包括但不限于:入口服务器102-1和102-2、中间服务器106-1至106-3以及目的服务器104。
例如,入口服务器102-1每隔预定周期获取以下信息:
a)入口服务器102-1至中间服务器106-1的延时信息和丢包率信息;
b)入口服务器102-1至中间服务器106-2的延时信息和丢包率信息;
c)入口服务器102-1至中间服务器106-3的延时信息和丢包率信息;
d)入口服务器102-1至目的服务器104的延时信息和丢包率信息。
S404,中间服务器106-1至106-3和目的服务器104每隔预定周期获取自身至网络服务器集合中其他网络服务器的延时信息和丢包率信息,并将延时信息和丢包率信息发送给配置系统302。
S406,配置系统302根据接收到延时信息和丢包率信息计算得到入口服务器102-1至目的服务器104之间的链路信息以及入口服务器102-2至目的服务器104之间的链路信息;
S408,入口服务器102-1接收配置系统302返回的入口服务器102-1与目的服务器104之间的链路信息,入口服务器102-2接收配置系统302返回的入口服务器102-2与目的服务器104之间的链路信息。
可选的,上述S402与S404可以同时执行,或者,按顺序执行。
在本实施例中,上述入口服务器102-1和102-2在接收上述配置系统302返回的入口服务器102-1与目的服务器104之间的链路信息及入口服务器102-2与目的服务器104之间的链路信息之后,可以将该链路信息保存至本地的存储器中,以便于在接收到数据访问请求时,从本地的存储器中获取入口服务器102-1与目的服务器104之间的链路信息及入口服务器102-2与目的服务器104之间的链路信息。通过上述实施例,根据动态分配的链路信息,可以更快获取链路信息,提高访问速度,更合理地利用链路资源。
2)作为另一种可选方式,如图5所示,入口服务器102-1和102-2也可以在满足预定的条件下获取自身至其他网络服务器的延时信息和丢包率信息,包括:
S502,入口服务器102-1和102-2接收到配置系统302发送的链路信息获取请求,用于获取自身至网络服务器集合中其他网络服务器的延时信息和丢包率信息。可选的,网络服务器集合可以包括但不限于:入口服务器102-1和102-2、中间服务器106-1至106-3以及目的服务器104。
可选的,上述预定的条件包括:网络服务器集合中的每个网络服务器接收到上述配置系统302发送的链路信息获取请求,但本实施例不仅限于这一种方式,还可以包含其他的预定条件。
例如,入口服务器102-1满足预定的条件下包括接收到上述配置系统302发送的链路信息获取请求:获取以下信息:
a)入口服务器102-1至中间服务器106-1的延时信息和丢包率信息;
b)入口服务器102-1至中间服务器106-2的延时信息和丢包率信息;
c)入口服务器102-1至中间服务器106-3的延时信息和丢包率信息;
d)入口服务器102-1至目的服务器104的延时信息和丢包率信息。
S504,中间服务器106-1至106-3及目的服务器104接收到所述配置系统302发送的链路信息获取请求,用于获取自身至网络服务器集合中其他网络服务器的延时信息和丢包率信息。
例如,中间服务器106-1满足预定的条件下包括接收到上述配置系统302发送的链路信息获取请求:获取以下信息:
a)中间服务器106-1至入口服务器102-1的延时信息和丢包率信息;
b)中间服务器106-1至中间服务器106-2的延时信息和丢包率信息;
c)中间服务器106-1至中间服务器106-3的延时信息和丢包率信息;
d)中间服务器106-1至目的服务器104的延时信息和丢包率信息。
在本实施例中,包括入口服务器102-1及102-2在内的网络服务器接收到配置系统302发送的链路获取请求之后,获取自身至网络服务器集合中其他网络服务器的延时信息和丢包率信息。
通过上述实施例,配置系统及时从每个网络服务器获取其自身至网络服务器集合中其他网络服务器的延时信息和丢包率信息,由以上链路数据计算得到当时的链路信息,实现了从全局感知整条链路的信息,方便根据需求实现实时的数据访问。
3)作为又一种可选方式,结合图6所示,入口服务器102-1和102-2获取入口服务器102-1与目的服务器104之间的链路信息及入口服务器102-2与目的服务器104之间的链路信息包括:
S602,入口服务器102-1和102-2向配置系统302传输第一请求消息;可选的,入口服务器102-1和102-2实时传输第一请求消息,上述第一请求消息用于获取链路信息。
S604,配置系统302接收到第一传输请求后,响应于第一请求向入口服务器102-1和102-2传输第二请求消息。可选的,第二请求消息用于获取入口服务器102-1和102-2至网络服务器集合中其他网络服务器的延时信息和丢包率信息。
S606,配置系统302接收到第一传输请求后,响应于第一请求向中间服务器106-1至106-3及目的服务器104传输第二请求消息。可选的,第二请求消息用于获取中间服务器106-1至106-3及目的服务器104至网络服务器集合中其他网络服务器的延时信息和丢包率信息。
作为一种可选的方式,当完成上述访问请求后,由入口服务器102-1和102-2建立到目的服务器104之间的链路连接也将被拆除。
作为另一种可选的方式,入口服务器102-1在获取入口服务器102-1与目的服务器104之间的链路信息及入口服务器102-2在获取入口服务器102-2与目的服务器104之间的链路信息之后,入口服务器102-1和102-2会预先建立多个完整链路连接,并放到各自相应的连接池之中,当访问请求访问时,入口服务器102-1和102-2可从连接池中取一个已经建立好的连接,进行数据的传输,这样,可以减少建立连接的时间,起到加速传输的效果;当完成上述访问请求后,由入口服务器102-1和102-2建立到目的服务器104之间的链路连接也将被拆除。而连接池中随即会有一个新的连接补充到连接池之中,供后续的访问请求使用。此外,连接都有超时时间,该超时时间由目的服务器104决定,在连接超时时间之内的连接都是可用的,而当连接超时,该连接将被主动从连接池中去除,连接池内始终保证连接是可用的。通过上述实施例,入口服务器可以在接收到来自终端的数据访问请求时实时地请求获取链路信息,使得所得的链路信息可以实时更新,从而可以更合理利用链路资源,做到全网的带宽利用最大化,增加链路利用率。
以下结合图7-图8,以入口服务器102-1为例,来描述入口服务器102-1根据上述链路信息将上述访问请求信息发送给所述目的服务器104的方案。
假设链路信息指示入口服务器102-1至目的服务器104的链路为:入口服务器102-1、中间服务器106-1、中间服务器106-2、出口服务器702、目的服务器104。基于图7所示的传输网络可知,入口服务器102-1根据上述链路信息将上述访问请求信息发送给所述目的服务器104包括如下步骤:
S1:入口服务器102-1通过链路信息指示的中间服务器106-1和106-2将上述访问请求信息发送给与目的服务器104连接的出口服务器702;在本实施例中,出口服务器702可以视为是一个中间服务器。
S2:出口服务器702将上述访问请求信息发送给目的服务器104。
作为步骤S1的一种可选实现方案,入口服务器102-1从链路信息中获取中间服务器106-1的套接字,并根据中间服务器106-1的套接字与中间服务器106-1建立连接。当连接建立成功后,入口服务器102-1将链路信息和访问请求信息发送给中间服务器106-1。然后,中间服务器106-1从上述链路信息中获取作为中间服务器106-1下一跳的中间服务器106-2的套接字;中间服务器106-1根据中间服务器106-2的套接字与中间服务器106-2建立连接。
可选的,上述访问请求信息包括TCP头(TCP header)和TCP主体(TCP body),格式如表1所示:
表1
可选的,假设链路为入口服务器102-1——中间服务器106-1——中间服务器106-2——出口服务器702——目的服务器104,则链路信息包括如下格式:
^^^入口服务器102-1监听套接字+中间服务器106-1监听套接字+中间服务器106-2套接字+出口服务器702套接字#目的服务器104监听套接字@负载均衡方式$$$
例如:
^^^192.168.100.166:80+192.168.100.116:65330+192.168.100.180:65332+192.168.100.191:65331#192.168.100.194:80@cip$$$
可选的,建立服务器之间的连接的同时,将客户端IP和链路信息组装成元数据,该元数据以“^^^”作为开始标记,以“$$$”作为结束标记,用户IP后以“*”区分,中间套接字之间用“+”连接,出口服务器702和目的服务器104之间用“#”区分,“@”后接负载均衡方式。假设链路为中间服务器106-1——中间服务器106-2——出口服务器702——目的服务器104,元数据格式表示如下:
^^^用户IP*中间服务器106-1监听套接字+中间服务器106-2套接字+出口服务器702套接字#目的服务器104监听套接字@负载均衡方式$$$
例如:
^^^192.168.100.112*192.168.100.116:65330+192.168.100.180:65332+192.168.100.191:65331#192.168.100.194:80@cip$$$
可选的,入口服务器102-1将元数据插入到访问请求的TCP header和TCP body之间。例如,元数据为:
^^^192.168.100.112*192.168.100.116:65330+192.168.100.180:65332+192.168.100.191:65331#192.168.100.194:80@cip$$$
则元数据与TCP header和TCP body的关系可如下表2所示:
表2
如果入口服务器102-1的下一跳就是目的服务器104,那么就不需要再封装元数据。
可选的,若中间服务器106-1与中间服务器106-2建立连接成功,则中间服务器106-1从链路信息中删除中间服务器106-1的套接字,并将更新后的链路信息和上述访问请求信息发送给中间服务器106-2。在本实施例中,上述套接字可以包括但不限于:IP地址和端口号或IP地址。
例如,链路为中间服务器106-1——中间服务器106-2——出口服务器702——目的服务器104,传输的元数据格式如下:
^^^192.168.100.112*192.168.100.116:65330+192.168.100.180:65332+192.168.100.191:65331#192.168.100.194:80@cip$$$
若中间服务器106-1与中间服务器106-2建立连接成功,则修改元数据信息,去掉自身套接字,然后将元数据+客户端IP转发给后端服务器,中间服务器106-1发送的元数据信息格式如下:
^^^192.168.100.112*192.168.100.180:65332+192.168.100.191:65331#192.168.100.194:80@cip$$$
若中间服务器106-2与出口服务器702建立连接成功,则中间服务器106-2发送的元数据信息格式如下:
^^^192.168.100.112*192.168.100.191:65331#192.168.100.194:80@cip$$$
直至目的服务器104,链路信息将被删除,保留客户端IP发送到目的服务器104,
格式如下表3:
表3
可选的,若中间服务器106-1与中间服务器106-2建立连接失败,则中间服务器106-1从上述链路信息中获取作为中间服务器106-2下一跳的出口服务器702的套接字;中间服务器106-1根据出口服务器702的套接字与出口服务器702建立连接。
例如,中间服务器106-1通过中间服务器106-3与出口服务器702建立连接(如图8虚线所示)。可选的,若中间服务器106-1与106-3建立连接失败,则中间服务器106-1从上述链路信息中获取作为中间服务器106-3下一跳的出口服务器702的套接字;若中间服务器106-1与出口服务器702建立连接成功,则中间服务器106-1从上述链路信息中删除中间服务器106-1及中间服务器106-3的套接字,并将更新后的链路信息和上述访问请求信息发送给出口服务器702。在本实施例中,上述套接字可以包括但不限于:IP地址和端口号或IP地址。
例如,假设链路为:中间服务器106-1——中间服务器106-3——出口服务器702——目的服务器104,传输的元数据格式如下:
^^^192.168.100.112*192.168.100.116:65330+192.168.100.190:65333+192.168.100.191:65331#192.168.100.194:80@cip$$$
若中间服务器106-1与中间服务器106-3建立连接失败,则跳过中间服务器106-3的套接字,与下一跳套接字出口服务器702的套接字建立连接,中间服务器106-1将从上述链路信息中删除中间服务器106-1及中间服务器106-3的套接字,并将更新后的链路信息和上述访问请求信息发送给出口服务器702,传输的元数据格式如下:
^^^192.168.100.112*192.168.100.191:65331#192.168.100.194:80@cip$$$
在出口服务器702接收到更新后的链路信息和上述访问请求信息之后,从上述链路信息中获取作为出口服务器702下一跳的目的服务器104的套接字;出口服务器702根据目的服务器104的套接字与目的服务器104建立连接;若出口服务器702与目的服务器104的连接建立成功,则出口服务器702将访问请求信息发送给目的服务器104。也就是说,出口服务器702不会将用于网络传输的链路信息发送给目的服务器104。
通过上述实施例,用于建立连接的套接字是从动态分配的链路信息中解析得到的,而不需要进行预先配置,从而减少了配置的复杂度,加快了数据的传输速度;进一步,可以将入口服务器的IP带给目的服务器,使得目的服务器可以获取到网民IP。
实施例2
本实施例提供了一种入口服务器,以入口服务器102-1为例,如图9所示,本实施例中的入口服务器102-1包括:
1)第一传输单元802:用于接收待传输的访问请求信息,其中,上述访问请求信息用于访问目的服务器上的数据;
2)获取单元804:用于获取上述入口服务器与上述目的服务器之间的链路信息,其中,链路信息由配置系统根据包括入口服务器和目的服务器在内的网络服务器上报的自身至网络服务器集合中的其他网络服务器的延时信息和丢包率信息计算得到;
3)第二传输单元806:用于根据上述链路信息将上述访问请求信息发送给上述目的服务器。
作为一种可选的方式,以入口服务器102-1为例,当完成上述访问请求后,由入口服务器102-1建立到目的服务器104之间的链路连接也将被拆除。
作为另一种可选的方式,以入口服务器102-1为例,入口服务器102-1在获取入口服务器102-1与目的服务器104之间的链路信息之后,入口服务器102-1会预先建立多个完整链路连接,并放到连接池之中,当访问请求访问时,入口服务器102-1可从连接池中取一个已经建立好的连接,进行数据的传输,这样,可以减少建立连接的时间,起到加速传输的效果;当完成上述访问请求后,由入口服务器102-1建立到目的服务器104之间的链路连接也将被拆除。而连接池中随即会有一个新的连接补充到连接池之中,供后续的访问请求使用。此外,连接都有超时时间,该超时时间由目的服务器104决定,在连接超时时间之内的连接都是可用的,而当连接超时,该连接将被主动从连接池中去除,连接池内始终保证连接是可用的。
在本发明实施例中,入口服务器102-1通过第一传输单元802接收用于访问目的服务器104上的数据的访问请求信息,并由获取单元804获取由配置系统302动态分配的用于上述入口服务器102-1与上述目的服务器104之间的上述链路信息,然后,由第二传输单元806根据上述链路信息将上述访问请求信息发送给上述目的服务器104。可选的,上述链路信息可以包括但不限于:中间服务器106-1、中间服务器106-2和中间服务器106-2的套接字,这里,套接字包括:IP地址和端口号或IP地址。
通过上述实施例,由配置系统动态分配的链路信息,可以减少配置的复杂度,加快对动态内容的传输速度。
作为一种可选方式,仍以入口服务器102-1为例,如图10所示,上述入口服务器102-1还包括:
1)第三传输单元902,用于在接收上述待传输的访问请求信息之前,每隔预定周期或在满足预定的条件下获取上述入口服务器至网络服务器集合中的其他网络服务器的延时信息和丢包率信息,其中,上述网络服务器集合包括上述入口服务器和上述目的服务器;将上述延时信息和上述丢包率信息发送给上述配置系统;
2)第四传输单元904,用于接收上述配置系统返回的上述入口服务器与上述目的服务器之间的上述链路信息,其中,上述链路信息由上述配置系统根据上述延时信息和上述丢包率信息计算得到;
其中,上述获取单元用于从本地获取上述入口服务器与上述目的服务器之间的上述链路信息。
在本发明的实施例中,在接收上述待传输的访问请求信息之前,入口服务器102-1的第三传输单元902每隔预定周期获取或在满足预定的条件下获取上述入口服务器102-1至中间服务器106-1至106-3或目的服务器104的延时信息和丢包率信息;将所获取的上述延时信息和丢包率信息发送给配置系统302,第四传输单元904接收配置系统302根据上述数据计算得出链路信息,并发送给入口服务器102-1。
作为一种可选方式,上述预定的条件包括:上述网络服务器接收到上述配置系统302发送的链路信息获取请求。
在本发明的实施例中,入口服务器102-1也可在接收到配置系统302发送的链路信息请求,响应于该请求,向配置系统302发送上述延时信息和丢包率信息。
通过上述实施例,数据访问过程中,可以预先从全局定期或以预定条件感知整条链路的信息,配合链路探测及链路计算服务器,可以更合理利用链路资源,做到全网的带宽利用最大化,增加链路利用率。
作为一种可选方式,如图11所示,上述获取单元804,包括:
1)第一传输模块1002,用于上述配置系统发送用于获取上述链路信息的第一请求消息;
2)第二传输模块1004,用于接收上述配置系统响应于上述第一请求消息发送的用于获取链路信息的第二请求消息;
3)第三传输模块1006,用于响应于上述第二请求消息向上述配置系统发送的上述入口服务器至网络服务器集合中的其他网络服务器的延时信息和丢包率信息,其中,上述网络服务器集合包括上述入口服务器和上述目的服务器;
4)第四传输模块1008,用于接收上述配置系统发送的根据上述延时信息和上述丢包率信息计算得到的上述入口服务器与上述目的服务器之间的上述链路信息。
作为一种可选的方式,以入口服务器102-1为例,当完成上述访问请求后,由入口服务器102-1建立到目的服务器104之间的链路连接也将被拆除。
作为另一种可选的方式,以入口服务器102-1为例,入口服务器102-1在获取入口服务器102-1与目的服务器104之间的链路信息之后,入口服务器102-1会预先建立多个完整链路连接,并放到连接池之中,当访问请求访问时,入口服务器102-1可从连接池中取一个已经建立好的连接,进行数据的传输,这样,可以减少建立连接的时间,起到加速传输的效果;当完成上述访问请求后,由入口服务器102-1建立到目的服务器104之间的链路连接也将被拆除。而连接池中随即会有一个新的连接补充到连接池之中,供后续的访问请求使用。此外,连接都有超时时间,该超时时间由目的服务器104决定,在连接超时时间之内的连接都是可用的,而当连接超时,该连接将被主动从连接池中去除,连接池内始终保证连接是可用的。
在本发明实施例中,入口服务器102-1由第一传输模块1002向上述配置系统302发送第一请求消息,用于获取链路信息;上述入口服务器102-1由第二传输模块1004接收上述配置系统302响应于上述第一请求消息发送的用于获取链路信息的第二请求消息,用于获取链路信息;入口服务器102-1第三传输模块1006响应于第二请求消息,向上述配置系统302发送自身至包括第一中间服务器106-1至106-3或目的服务器104的网络服务器集合中的其他网络服务器的延时信息和丢包率信息;上述配置系统302根据上述获取的链路数据计算链路信息,并发送至入口服务器102-1,由第四传输模块1008接收。
可选的,上述访问请求信息包括TCP头(TCP header)和TCP主体(TCP body),格式如表4所示:
表4
可选的,假设链路为入口服务器102-1——中间服务器106-1——中间服务器106-2——出口服务器702——目的服务器104,则链路信息包括如下格式:
^^^入口服务器102-1监听套接字+中间服务器106-1监听套接字+中间服务器106-2套接字+出口服务器702套接字#目的服务器104监听套接字@负载均衡方式$$$
例如:
^^^192.168.100.166:80+192.168.100.116:65330+192.168.100.180:65332+192.168.100.191:65331#192.168.100.194:80@cip$$$
可选的,建立服务器之间的连接的同时,将客户端IP和链路信息组装成元数据,该元数据以“^^^”作为开始标记,以“$$$”作为结束标记,用户IP后以“*”区分,中间套接字之间用“+”连接,出口服务器702和目的服务器104之间用“#”区分,“@”后接负载均衡方式。假设链路为中间服务器106-1——中间服务器106-2——出口服务器702——目的服务器104,元数据格式表示如下:
^^^用户IP*中间服务器106-1监听套接字+中间服务器106-2套接字+出口服务器702套接字#目的服务器104监听套接字@负载均衡方式$$$
例如:
^^^192.168.100.112*192.168.100.116:65330+192.168.100.180:65332+192.168.100.191:65331#192.168.100.194:80@cip$$$
可选的,入口服务器102-1将元数据插入到访问请求的TCP header和TCP body之间。例如,元数据为:
^^^192.168.100.112*192.168.100.116:65330+192.168.100.180:65332+192.168.100.191:65331#192.168.100.194:80@cip$$$
则元数据与TCP header和TCP body的关系可如下表5所示:
表5
如果入口服务器102-1的下一跳就是目的服务器104,那么就不需要再封装元数据。
通过上述实施例,从全局感知整条链路的信息,并根据获取到各个网络服务器感知的链路信息计算链路,从而可以更合理利用链路资源,做到全网的带宽利用最大化,增加链路利用率;此外,用于建立连接的套接字是从动态分配的链路信息中解析得到的,而不需要进行预先配置,从而减少了配置的复杂度,加快了数据的传输速度;进一步,可以将入口服务器的IP带给目的服务器,使得目的服务器可以获取到网民IP。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。