Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD, APPARATUS, AND SYSTEM FOR CONTROLLING DATA TRANSMISSION
Document Type and Number:
WIPO Patent Application WO/2014/023003
Kind Code:
A1
Abstract:
Provided are a method, an apparatus, and a system for controlling data transmission, which can improve the access speed and reduce the burden of a load balancing processor. The method comprises: sending a first data packet from a client device to the load balancing processor; receiving control information sent by the load balancing processor, the control information being determined by the load balancing processor according to L3/4 information of the first data packet and/or L7 information of the first data packet, and comprising server information for indicating a target server of the first data packet; and after a second data packet is received, controlling transmission of the second data packet according to the control information. The load balancing processor determines control information according to the first data packet, and delivers the control information to a network card device; the network card device can transmit the second data packet according to the control information when receiving the second data packet, which reduces processing by the load balancing processor, thereby improving the access speed and reducing the burden of the load balancing processor.

Inventors:
LU SHENGWEN (CN)
Application Number:
PCT/CN2012/079887
Publication Date:
February 13, 2014
Filing Date:
August 09, 2012
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECH CO LTD (CN)
LU SHENGWEN (CN)
International Classes:
H04L29/08; H04L12/801
Foreign References:
CN101808118A2010-08-18
CN102131239A2011-07-20
CN101442493A2009-05-27
EP2159983A12010-03-03
Attorney, Agent or Firm:
LONGSUN LEAD IP LTD. (CN)
北京龙双利达知识产权代理有限公司 (CN)
Download PDF:
Claims:
权利要求

1、 一种控制数据传输的方法, 其特征在于, 所述方法包括:

向负载均衡处理器发送来自客户端设备的第一数据报文;

接收所述负载均衡处理器发送的控制信息, 其中, 所述控制信息是所述 负载均衡处理器根据所述第一数据报文的 L3/4层信息和 /或所述第一数据报 文的 L7层信息确定的, 所述控制信息包括用于指示所述第一数据报文的目 的服务器的服务器信息;

当接收到第二数据报文时, 根据所述控制信息, 控制所述第二数据报文 的传输。

2、 根据权利要求 1所述的方法, 其特征在于, 所述服务器信息用于指 示所述第一数据报文的目的服务器的内部网际协议 IP地址和内部端口。

3、 根据权利要求 2所述的方法, 其特征在于, 所述服务器信息是根据 所述第一数据报文的 L3/4层信息确定的, 贝' J

所述根据所述控制信息, 控制所述第二数据报文的传输, 具体为: 当所述第二数据报文的五元组与所述第一数据报文的五元组相同时,根 据所述服务器信息, 向所述第一数据报文的目的服务器发送所述第二数据报 文, 其中, 所述五元组为源 IP地址、 源端口、 目的 IP地址、 目的端口和传 输层协议号。

4、 根据权利要求 2所述的方法, 其特征在于, 所述服务器信息是根据 所述第一数据报文的 L3/4层信息和第一数据报文的 L7层信息确定的,或根 据所述第一数据报文的 L7层信息确定的,

且所述控制信息还包括 L7层解析指示标识, 贝' J

所述根据所述控制信息, 控制所述第二数据报文的传输, 具体为: 当所述第二数据报文的五元组与所述第一数据报文的五元组相同时,根 据所述 L7层解析指示标识,对所述第二数据报文进行 L7层信息解析, 以获 取用于指示所述第二数据报文的目的服务器的统一资源定位器 URL地址的

URL信息, 其中, 所述五元组为源 IP地址、 源端口、 目的 IP地址、 目的端 口和传输层协议号;

如果所述 URL信息不为空, 则向所述负载均衡处理器发送所述第二数 据报文和所述 URL信息, 以便于所述负载均衡处理器根据所述 URL信息, 确定所述第二数据报文的目的服务器, 并向所述第二数据报文的目的服务器 发送所述第二数据报文;

如果所述 URL信息为空, 则根据所述服务器信息, 向所述第一数据报 文的目的服务器发送所述第二数据报文。

5、 根据权利要求 3或 4所述的方法, 其特征在于, 所述服务器信息包 括第一控制信息表项,所述第一控制信息表项用于指示所述第一数据报文的 五元组与所述第一数据报文的目的服务器的内部 IP地址和内部端口的对应 关系。

6、 根据权利要求 5所述的方法, 其特征在于, 所述方法还包括: 在接收到所述第一控制信息表项后, 启动定时器, 并确定在所述定时器 超时之前未接收到所述第二数据报文; 或

确定在所述客户端设备与所述第一数据报文的目的服务器之间建立的 用于传输所述第一数据报文的通信连接结束;

删除所述第一控制信息表项。

7、 根据权利要求 2至 6中任一项所述的方法, 其特征在于, 所述服务 器信息还用于指示所述第一数据报文的目的服务器的外部 IP地址和外部端 口, 则

所述根据所述控制信息, 控制所述第二数据报文的传输, 具体为: 当所述第二数据报文的源 IP地址与所述目的服务器的内部 IP地址相同, 且所述第二数据报文的源端口与所述目的服务器的内部端口信息相同,且所 述第二数据报文的目的 IP地址与所述第一数据报文的源 IP地址相同, 且所 述第二数据报文的目的端口与所述第一数据报文的源端口相同,且所述第二 数据报文的传输层协议号与所述第一数据报文的传输层协议号相同时, 根 据所述第一数据报文的目的服务器的外部 IP地址和外部端口, 向所述客户 端设备发送所述第二数据报文。

8、 根据权利要求 7所述的方法, 其特征在于, 所述服务器信息包括第 二控制信息表项, 所述第二控制信息表项用于指示所述第一数据报文的目的 服务器的内部 IP地址、 所述第一数据报文的目的服务器的内部端口、 所述 第一数据报文的源 IP地址、 所述第一数据报文的源端口以及所述第一数据 报文的传输层协议号与所述第一数据报文的目的服务器的外部 IP地址和外 部端口的对应关系。

9、 根据权利要求 8所述的方法, 其特征在于, 所述方法还包括: 在接收到所述第二控制信息表项后, 启动定时器, 并确定在所述定时器 超时之前未接收到所述第二数据报文; 或

确定在所述客户端设备和所述第一数据报文的目的服务器之间建立的 用于传输所述第一数据报文的通信连接结束;

删除所述第二控制信息表项。

10、 一种控制数据传输的装置, 其特征在于, 所述装置包括:

发送单元, 用于向负载均衡处理器发送来自客户端设备的第一数据报 文; 以及根据处理单元的控制, 传输第二数据报文;

接收单元, 用于接收所述负载均衡处理器发送的控制信息, 其中, 所述 控制信息是所述负载均衡处理器根据所述第一数据报文的 L3/4层信息和 /或 所述第一数据报文的 L7层信息确定的, 所述控制信息包括用于指示所述第 一数据报文的目的服务器的服务器信息; 以及用于接收所述第二数据报文; 所述处理单元, 用于当所述接收单元接收所述第二数据报文时, 根据所 述控制信息, 控制所述发送单元传输所述第二数据报文。

11、 根据权利要求 10所述的装置, 其特征在于, 所述服务器信息用于 指示所述第一数据报文的目的服务器的内部网际协议 IP地址和内部端口。

12、 根据权利要求 11所述的装置, 其特征在于, 所述服务器信息是根 据所述第一数据报文的 L3/4层信息确定的, 贝' J

所述处理单元具体用于当所述第二数据报文的五元组与所述第一数据 报文的五元组相同时, 根据所述服务器信息, 控制所述发送单元向所述第一 数据报文的目的服务器发送所述第二数据报文, 其中, 所述五元组为源 IP 地址、 源端口、 目的 IP地址、 目的端口和传输层协议号。

13、 根据权利要求 11所述的装置, 其特征在于, 所述服务器信息是根 据所述第一数据报文的 L3/4层信息和 L7层信息确定的,或根据所述第一数 据报文的 L7层信息确定的,

且所述控制信息还包括 L7层解析指示标识, 贝' J

所述处理单元具体用于当所述第二数据报文的五元组与所述第一数据 报文的五元组相同时, 根据所述 L7层解析指示标识, 对所述第二数据报文 进行 L7层信息解析, 以获取用于指示所述第二数据报文的目的服务器的统 一资源定位器 URL地址的 URL信息, 其中, 所述五元组为源 IP地址、 源 端口、 目的 IP地址、 目的端口和传输层协议号; 用于如果所述 URL信息不为空, 则控制所述发送单元向所述负载均衡 处理器发送所述第二数据报文和所述 URL信息, 以便于所述负载均衡处理 器根据所述 URL信息, 确定所述第二数据报文的目的服务器, 并向所述第 二数据报文的目的服务器发送所述第二数据报文; 或

用于如果所述 URL信息为空, 则根据所述服务器信息, 控制所述发送 单元向所述第一数据报文的目的服务器发送所述第二数据报文。

14、 根据权利要求 12或 13所述的装置, 其特征在于, 所述服务器信息 包括第一控制信息表项,所述第一控制信息表项用于指示所述第一数据报文 的五元组与所述第一数据报文的目的服务器的内部 IP地址和内部端口的对 应关系。

15、 根据权利要求 14所述的装置, 其特征在于, 所述处理单元还用于 在确定所述接收单元接收到所述第一控制信息表项后, 启动定时器, 并确定 在所述定时器超时之前未接收到所述第二数据报文; 或

用于确定在所述客户端设备和所述第一数据报文的目的服务器之间建 立的用于传输所述第一数据报文的通信连接结束;

用于删除所述第一控制信息表项。

16、 根据权利要求 11至 15中任一项所述的装置, 其特征在于, 所述服 务器信息还用于指示所述第一数据报文的目的服务器的外部 IP地址和外部 端口, 则

所述处理单元具体用于当所述第二数据报文的源 IP地址与所述目的服 务器的内部 IP地址相同, 且所述第二数据报文的源端口与所述目的服务器 的内部端口信息相同, 且所述第二数据报文的目的 IP地址与所述第一数据 报文的源 IP地址相同, 且所述第二数据报文的目的端口与所述第一数据报 文的源端口相同,且所述第二数据报文的传输层协议号与所述第一数据报文 的传输层协议号相同时, 根据所述第一数据报文的目的服务器的外部 IP地 址和外部端口, 控制所述发送单元向所述客户端设备发送所述第二数据报 文。

17、 根据权利要求 16所述的装置, 其特征在于, 所述服务器信息包括 第二控制信息表项, 所述第二控制信息表项用于指示所述第一数据报文的目 的服务器的内部 IP地址、 所述第一数据报文的目的服务器的内部端口、 所 述第一数据报文的源 IP地址、 所述第一数据报文的源端口以及所述第一数 据报文的传输层协议号与所述第一数据报文的目的服务器的外部 IP地址和 外部端口的对应关系。

18、 根据权利要求 17所述的装置, 其特征在于, 所述处理单元还用于 在确定所述接收单元接收到所述第二控制信息表项后, 启动定时器, 并确定 在所述定时器超时之前未接收到所述第二数据报文; 或

用于确定在所述客户端设备和所述第一数据报文的目的服务器之间建 立的用于传输所述第一数据报文的通信连接结束;

用于删除所述第二控制信息表项。

19、 一种控制数据传输的系统, 其特征在于, 所述系统包括:

负载均衡处理模块, 用于从网卡模块获取第一数据报文, 并根据所述第 一数据报文的 L3/4层信息和 /或所述第一数据报文的 L7层信息,确定用于指 示所述第一数据报文的目的服务器的服务器信息, 向所述网卡模块发送包括 所述服务器信息的控制信息;

网卡模块, 用于向负载均衡处理模块发送来自用户设备的所述第一数据 报文, 以及从所述负载均衡处理模块获取所述控制信息, 当接收到第二数据 报文时, 根据所述控制信息, 控制所述第二数据报文的传输。

20、 根据权利要求 19所述的系统, 其特征在于, 所述服务器信息用于 指示所述第一数据报文的目的服务器的内部网际协议 IP地址和内部端口。

21、 根据权利要求 20所述的系统, 其特征在于, 所述服务器信息是所 述负载均衡处理模块根据所述第一数据报文的 L3/4层信息确定的, 贝' J

所述网卡模块具体用于当所述第二数据报文的五元组与所述第一数据 报文的五元组相同时, 根据所述服务器信息, 向所述第一数据报文的目的服 务器发送所述第二数据报文, 其中, 所述五元组为源 IP地址、 源端口、 目 的 IP地址、 目的端口和传输层协议号。

22、 根据权利要求 20所述的系统, 其特征在于, 所述服务器信息是所 述负载均衡处理模块根据所述第一数据报文的 L3/4层信息和 L7层信息确定 的, 或

所述服务器信息是所述负载均衡处理模块根据所述第一数据报文的 L7 层信息确定的,

且所述控制信息还包括 L7层解析指示标识, 贝' J

所述网卡模块具体用于当所述第二数据报文的五元组与所述第一数据 报文的五元组相同时, 根据所述 L7层解析指示标识, 对所述第二数据报文 进行 L7层信息解析, 以获取用于指示所述第二数据报文的目的服务器的统 一资源定位器 URL地址的 URL信息, 其中, 所述五元组为源 IP地址、 源 端口、 目的 IP地址、 目的端口和传输层协议号;

如果所述 URL信息不为空, 则向所述负载均衡处理器发送所述第二数 据报文和所述 URL信息, 以便于所述负载均衡处理器根据所述 URL信息, 确定所述第二数据报文的目的服务器, 并向所述第二数据报文的目的服务器 发送所述第二数据报文; 或

如果所述 URL信息为空, 则根据所述服务器信息, 向所述第一数据报 文的目的服务器发送所述第二数据报文。

23、 根据权利要求 21或 22所述的系统, 其特征在于, 所述服务器信息 包括第一控制信息表项,所述第一控制信息表项用于指示所述第一数据报文 的五元组与所述第一数据报文的目的服务器的内部 IP地址和内部端口的对 应关系。

24、 根据权利要求 23所述的系统, 其特征在于, 所述网卡模块还用于 在接收到所述第一控制信息表项后, 启动定时器, 并确定在所述定时器超时 之前未接收到所述第二数据报文; 或

用于确定在所述客户端设备和所述第一数据报文的目的服务器之间建 立的用于传输所述第一数据报文的通信连接结束;

用于删除所述第一控制信息表项。

25、 根据权利要求 20至 24中任一项所述的系统, 其特征在于, 所述服 务器信息还用于指示所述第一数据报文的目的服务器的外部 IP地址和外部 端口, 则

所述网卡模块具体用于当所述第二数据报文的源 IP地址与所述目的服 务器的内部 IP地址相同, 且所述第二数据报文的源端口与所述目的服务器 的内部端口信息相同, 且所述第二数据报文的目的 IP地址与所述第一数据 报文的源 IP地址相同, 且所述第二数据报文的目的端口与所述第一数据报 文的源端口相同,且所述第二数据报文的传输层协议号与所述第一数据报文 的传输层协议号相同时, 根据所述第一数据报文的目的服务器的外部 IP地 址和外部端口, 向所述客户端设备发送所述第二数据报文。

26、 根据权利要求 25所述的系统, 其特征在于, 所述服务器信息包括 第二控制信息表项, 所述第二控制信息表项用于指示所述第一数据报文的目 的服务器的内部 IP地址、 所述第一数据报文的目的服务器的内部端口、 所 述第一数据报文的源 IP地址、 所述第一数据报文的源端口以及所述第一数 据报文的传输层协议号与所述第一数据报文的目的服务器的外部 IP地址和 外部端口的对应关系。

27、 根据权利要求 26所述的系统, 其特征在于, 所述网卡模块还用于 在接收到所述第二控制信息表项后, 启动定时器, 并确定在所述定时器超时 之前未接收到所述第二数据报文; 或

用于确定在所述客户端设备和所述第一数据报文的目的服务器之间建 立的用于传输所述第一数据报文的通信连接结束;

用于删除所述第二控制信息表项。

Description:
控制数据传输的方法、 装置和系统 技术领域

本发明涉及通信领域, 并且更具体地, 涉及一种控制数据传输的方法、 装置和系统。 背景技术

目前, 可以将一组服务器构成一个提供可伸缩的、 高可用网络服务的服 务器集群(也称为虚拟服务器集群)。 具体地说, 一组服务器通过高速的局 域网或者地理分布的广域网相互连接, 在它们的前端有一个负载均衡器 ( Load Balancer )。 负载均衡器能无缝地将来自客户端设备的数据 报文调度 到真实服务器上, 从而, 对于客户端设备, 服务器集群的结构是透明的, 客 户端设备访问服务器集群提供的网络服务就像 访问一台高性能、 高可用的服 务器一样。 作为负载均衡器将数据报文调度到真实服务器 (目的服务器)的 方式, 已知有基于数据报文的地址信息( L3/4层)和基于内容请求( L7层) 分发的负载平衡调度解决方法。

负载均衡器包括用于接收业务的数据报文的网 关设备, 以及用于通过执 行各种程序以对该数据报文进行负载均衡的负 载均衡处理器, 在该技术中, 为了将数据报文调度到规定的服务器, 对于每一个数据报文, 均需要负载均 衡处理器解析出其 L3/4层信息(例如, 网际协议(IP, Internet Protocol )地 址和端口)或 L7层信息(统一资源定位器( URL , Uniform Resource Locator ) 地址), 这样, 例如, 对于发往同一目的服务器的多个数据报文(例 如, 同 一通信连接的多个数据报文), 尽管各数据报文的负载调度结果相同 (发往 同一目的服务器), 负载均衡处理器仍然需要对每个数据报文进行 解析, 增 加了负载均衡处理器的负担, 并影响访问速度。 发明内容

本发明实施例提供一种控制数据传输的方法、 装置和系统, 能够提高访 问速度, 减小负载均衡处理器的负担。

第一方面, 提供了一种控制数据传输的方法, 该方法包括: 向负载均衡 处理器发送来自客户端设备的第一数据报文; 接收该负载均衡处理器发送的 控制信息, 其中, 该控制信息是该负载均衡处理器根据该第一数 据报文的

L3/4层信息和 /或该第一数据报文的 L7层信息确定的,该控制信息包括用于 指示该第一数据报文的目的服务器的服务器信 息; 当接收到第二数据报文 时, 根据该控制信息, 控制该第二数据报文的传输。

在一种可能的实施方式中, 该服务器信息用于指示该第一数据报文的目 的服务器的内部网际协议 IP地址和内部端口。

结合第一方面和第一种可能的实施方式,在第 二种可能的实施方式中,, 该服务器信息是根据该第一数据报文的 L3/4层信息确定的, 则该根据该控 制信息, 控制该第二数据报文的传输, 具体为: 当该第二数据报文的五元组 与该第一数据报文的五元组相同时, 根据该服务器信息, 向该第一数据报文 的目的服务器发送该第二数据报文, 其中, 该五元组为源 IP地址、 源端口、 目的 IP地址、 目的端口和传输层协议号。

结合第一方面、 第一种可能的实施方式和第二种可能的实施方 式, 在第 三种可能的实施方式中, 该服务器信息是根据该第一数据报文的 L3/4层信 息和 L7层信息确定的,或该服务器信息是根据该第 数据报文的 L7层信息 确定的, 且该控制信息还包括 L7层解析指示标识, 则该根据该控制信息, 控制该第二数据报文的传输, 具体为: 当该第二数据报文的五元组与该第一 数据报文的五元组相同时, 根据该 L7层解析指示标识, 对该第二数据报文 进行 L7层信息解析, 以获取用于指示该第二数据报文的目的服务器 的统一 资源定位器 URL地址的 URL信息, 其中, 该五元组为源 IP地址、 源端口、 目的 IP地址、 目的端口和传输层协议号; 如果该 URL信息不为空, 则向该 负载均衡处理器发送该第二数据报文和该 URL信息, 以便于该负载均衡处 理器根据该 URL信息, 确定该第二数据报文的目的服务器, 并向该第二数 据报文的目的服务器发送该第二数据报文; 或如果该 URL信息为空, 则根 据该服务器信息, 向该第一数据报文的目的服务器发送该第二数 据报文。

结合第一方面、 第一种可能的实施方式、 第二种可能的实施方式和第三 种可能的实施方式, 在第四种可能的实施方式中, 该服务器信息包括第一控 制信息表项, 该第一控制信息表项用于指示该第一数据报文 的五元组与该第 一数据报文的目的服务器的内部 IP地址和内部端口的对应关系。

结合第一方面、 第一种可能的实施方式、 第二种可能的实施方式、 第三 种可能的实施方式和第四种可能的实施方式, 在第五种可能的实施方式中, 该方法还包括: 在接收到该第一控制信息表项后, 启动定时器, 并确定在该 定时器超时之前未接收到该第二数据报文; 或确定在该客户端设备与该第一 数据报文的目的服务器之间建立的用于传输该 第一数据报文的通信连接结 束; 删除该第一控制信息表项。

结合第一方面、 第一种可能的实施方式、 第二种可能的实施方式、 第三 种可能的实施方式、 第四种可能的实施方式和第五种可能的实施方 式, 在第 六种可能的实施方式中, 该服务器信息还用于指示该第一数据报文的目 的服 务器的外部 IP地址和外部端口, 则该根据该控制信息, 控制该第二数据报 文的传输, 具体为: 当该第二数据报文的源 IP地址与该目的服务器的内部 IP地址相同,且该第二数据报文的源端口与该 的服务器的内部端口信息相 同, 且该第二数据报文的目的 IP地址与该第一数据报文的源 IP地址相同, 且该第二数据报文的目的端口与该第一数据报 文的源端口相同,且该第二数 据报文的传输层协议号与该第一数据报文的传 输层协议号相同时, 根据该 第一数据报文的目的服务器的外部 IP地址和外部端口, 向该客户端设备发 送该第二数据报文。

结合第一方面、 第一种可能的实施方式、 第二种可能的实施方式、 第三 种可能的实施方式、 第四种可能的实施方式、 第五种可能的实施方式和第六 种可能的实施方式, 在第七种可能的实施方式中, 该服务器信息包括第二控 制信息表项, 该第二控制信息表项用于指示该第一数据报文 的目的服务器的 内部 IP地址、 该第一数据报文的目的服务器的内部端口、 该第一数据报文 的源 IP地址、 该第一数据报文的源端口以及该第一数据报文 的传输层协议 号与该第一数据报文的目的服务器的外部 IP地址和外部端口的对应关系。

结合第一方面、 第一种可能的实施方式、 第二种可能的实施方式、 第三 种可能的实施方式、 第四种可能的实施方式、 第五种可能的实施方式、 第六 种可能的实施方式和第七种可能的实施方式, 在第八种可能的实施方式中, 该方法还包括: 在接收到该第二控制信息表项后, 启动定时器, 并确定在该 定时器超时之前未接收到该第二数据报文; 或确定在该客户端设备和该第一 数据报文的目的服务器之间建立的用于传输该 第一数据报文的通信连接结 束; 删除该第二控制信息表项。

第二方面, 提供了一种控制数据传输的装置, 该装置包括: 发送单元, 用于向负载均衡处理器发送来自客户端设备的 第一数据报文; 接收单元, 用 于接收该负载均衡处理器发送的控制信息, 以及向处理单元传输该控制信 息, 其中, 该控制信息是该负载均衡处理器根据该第一数 据报文的 L3/4层 信息和 /或该第一数据报文的 L7层信息确定的, 该控制信息包括用于指示该 第一数据报文的目的服务器的服务器信息; 用于当接收到第二数据报文时, 向处理单元传输该第二数据报文; 处理单元, 用于从该接收单元获取该控制 信息和该第二数据报文, 并根据该控制信息, 控制该发送单元传输该第二数 据报文。

在一种可能的实施方式中, 该服务器信息用于指示该第一数据报文的目 的服务器的内部网际协议 IP地址和内部端口。

结合第二方面和第一种可能的实施方式, 在第二种可能的实施方式中, 该服务器信息是根据该第一数据报文的 L3/4层信息确定的, 则该处理单元 具体用于当该第二数据报文的五元组与该第一 数据报文的五元组相同时,根 据该服务器信息,控制该发送单元向该第一数 据报文的目的服务器发送该第 二数据 文, 其中, 该五元组为源 IP地址、 源端口、 目的 IP地址、 目的端 口和传输层协议号。

结合第二方面、 第一种可能的实施方式和第二种可能的实施方 式, 在第 三种可能的实施方式中, 该服务器信息是根据该第一数据报文的 L3/4层信 息和 L7层信息确定的,或该服务器信息是根据该第 数据报文的 L7层信息 确定的, 且该控制信息还包括 L7层解析指示标识, 则该处理单元具体用于 当该第二数据报文的五元组与该第一数据报文 的五元组相同时, 根据该 L7 层解析指示标识, 对该第二数据报文进行 L7层信息解析, 以获取用于指示 该第二数据报文的目的服务器的统一资源定位 器 URL地址的 URL信息, 其 中, 该五元组为源 IP地址、 源端口、 目的 IP地址、 目的端口和传输层协议 号; 用于如果该 URL信息不为空, 则控制该发送单元向该负载均衡处理器 发送该第二数据报文和该 URL信息, 以便于该负载均衡处理器根据该 URL 信息, 确定该第二数据报文的目的服务器, 并向该第二数据报文的目的服务 器发送该第二数据报文; 或用于如果该 URL信息为空, 则根据该服务器信 息, 控制该发送单元向该第一数据报文的目的服务 器发送该第二数据报文。

结合第二方面、 第一种可能的实施方式、 第二种可能的实施方式和第三 种可能的实施方式, 在第四种可能的实施方式中, 该服务器信息包括第一控 制信息表项, 该第一控制信息表项用于指示该第一数据报文 的五元组与该第 一数据报文的目的服务器的内部 IP地址和内部端口的对应关系。

结合第二方面、 第一种可能的实施方式、 第二种可能的实施方式、 第三 种可能的实施方式和第四种可能的实施方式, 在第五种可能的实施方式中, 该处理单元还用于在确定该接收单元接收到该 第一控制信息表项后, 启动定 时器, 并确定在该定时器超时之前未接收到该第二数 据报文; 或用于确定在 该客户端设备和该第一数据报文的目的服务器 之间建立的用于传输该第一 数据报文的通信连接结束; 用于删除该第一控制信息表项。

结合第二方面、 第一种可能的实施方式、 第二种可能的实施方式、 第三 种可能的实施方式、 第四种可能的实施方式和第五种可能的实施方 式, 在第 六种可能的实施方式中, 该服务器信息还用于指示该第一数据报文的目 的服 务器的外部 IP地址和外部端口, 则该处理单元具体用于当该第二数据报文 的源 IP地址与该目的服务器的内部 IP地址相同, 且该第二数据报文的源端 口与该目的服务器的内部端口信息相同, 且该第二数据报文的目的 IP地址 与该第一数据报文的源 IP地址相同, 且该第二数据报文的目的端口与该第 一数据报文的源端口相同,且该第二数据报文 的传输层协议号与该第一数据 报文的传输层协议号相同时, 根据该第一数据报文的目的服务器的外部 IP 地址和外部端口, 控制该发送单元向该客户端设备发送该第二数 据报文。

结合第二方面、 第一种可能的实施方式、 第二种可能的实施方式、 第三 种可能的实施方式、 第四种可能的实施方式、 第五种可能的实施方式和第六 种可能的实施方式, 在第七种可能的实施方式中, 该服务器信息包括第二控 制信息表项, 该第二控制信息表项用于指示该第一数据报文 的目的服务器的 内部 IP地址、 该第一数据报文的目的服务器的内部端口、 该第一数据报文 的源 IP地址、 该第一数据报文的源端口以及该第一数据报文 的传输层协议 号与该第一数据报文的目的服务器的外部 IP地址和外部端口的对应关系。

结合第二方面、 第一种可能的实施方式、 第二种可能的实施方式、 第三 种可能的实施方式、 第四种可能的实施方式、 第五种可能的实施方式、 第六 种可能的实施方式和第七种可能的实施方式, 在第八种可能的实施方式中, 该处理单元还用于在确定该接收单元接收到该 第二控制信息表项后, 启动定 时器, 并确定在该定时器超时之前未接收到该第二数 据报文; 或用于确定在 该客户端设备和该第一数据报文的目的服务器 之间建立的用于传输该第一 数据报文的通信连接结束; 用于删除该第二控制信息表项。 第三方面, 提供了一种控制数据传输的系统, 该系统包括: 负载均衡处 理模块, 用于从网卡模块获取第一数据报文, 并根据该第一数据报文的 L3/4 层信息和 /或该第一数据报文的 L7层信息, 确定用于指示该第一数据报文的 目的服务器的服务器信息, 向该网卡模块发送包括该服务器信息的控制信 息; 网卡模块, 用于向负载均衡处理模块发送来自用户设备的 该第一数据报 文,以及从该负载均衡处理模块获取该控制信 息,当接收到第二数据报文时, 根据该控制信息, 控制该第二数据报文的传输。

在一种可能的实施方式中, 该服务器信息用于指示该第一数据报文的目 的服务器的内部网际协议 IP地址和内部端口。

结合第三方面和第一种可能的实施方式, 在第二种可能的实施方式中, 该服务器信息是该负载均衡处理模块根据该第 一数据报文的 L3/4层信息确 定的, 则该网卡模块具体用于当该第二数据报文的五 元组与该第一数据报文 的五元组相同时, 根据该服务器信息, 向该第一数据报文的目的服务器发送 该第二数据 文, 其中, 该五元组为源 IP地址、 源端口、 目的 IP地址、 目 的端口和传输层协议号。

结合第三方面、 第一种可能的实施方式和第二种可能的实施方 式, 在第 三种可能的实施方式中, 该服务器信息是该负载均衡处理模块根据该第 一数 据报文的 L3/4层信息和 L7层信息确定的, 或该服务器信息是该负载均衡处 理模块根据该第一数据报文的 L7 层信息确定的, 且该控制信息还包括 L7 层解析指示标识, 则该网卡模块具体用于当该第二数据报文的五 元组与该第 一数据报文的五元组相同时, 根据该 L7层解析指示标识, 对该第二数据报 文进行 L7层信息解析, 以获取用于指示该第二数据报文的目的服务器 的统 一资源定位器 URL地址的 URL信息, 其中, 该五元组为源 IP地址、 源端 口、 目的 IP地址、 目的端口和传输层协议号;如果如果该 URL信息不为空, 则向该负载均衡处理器发送该第二数据报文和 该 URL信息, 以便于该负载 均衡处理器根据该 URL信息, 确定该第二数据报文的目的服务器, 并向该 第二数据报文的目的服务器发送该第二数据报 文; 或如果该 URL信息为空, 则根据该服务器信息, 向该第一数据报文的目的服务器发送该第二数 据报 文。

结合第一方面、 第一种可能的实施方式、 第二种可能的实施方式和第三 种可能的实施方式, 在第四种可能的实施方式中, 该服务器信息包括第一控 制信息表项, 该第一控制信息表项用于指示该第一数据报文 的五元组与该第 一数据报文的目的服务器的内部 IP地址和内部端口的对应关系。

结合第三方面、 第一种可能的实施方式、 第二种可能的实施方式、 第三 种可能的实施方式和第四种可能的实施方式, 在第五种可能的实施方式中, 该网卡模块还用于在接收到该第一控制信息表 项后, 启动定时器, 并确定在 该定时器超时之前未接收到该第二数据报文; 或用于确定在该客户端设备和 该第一数据报文的目的服务器之间建立的用于 传输该第一数据报文的通信 连接结束; 用于删除该第一控制信息表项。

结合第三方面、 第一种可能的实施方式、 第二种可能的实施方式、 第三 种可能的实施方式、 第四种可能的实施方式和第五种可能的实施方 式, 在第 六种可能的实施方式中,该服务器信息还用于 指示该第一数据报文的目的服 务器的外部 IP地址和外部端口, 以及该网卡模块具体用于当该第二数据报 文的源 IP地址与该目的服务器的内部 IP地址相同, 且该第二数据报文的源 端口与该目的服务器的内部端口信息相同, 且该第二数据报文的目的 IP地 址与该第一数据报文的源 IP地址相同, 且该第二数据报文的目的端口与该 第一数据报文的源端口相同,且该第二数据报 文的传输层协议号与该第一数 据报文的传输层协议号相同时,根据该第一数 据报文的目的服务器的外部 IP 地址和外部端口, 发送该第二数据>¾文。

结合第三方面、 第一种可能的实施方式、 第二种可能的实施方式、 第三 种可能的实施方式、 第四种可能的实施方式、 第五种可能的实施方式和第六 种可能的实施方式, 在第七种可能的实施方式中, 该服务器信息包括第二控 制信息表项, 该第二控制信息表项用于指示该第一数据报文 的目的服务器的 内部 IP地址、 该第一数据报文的目的服务器的内部端口、 该第一数据报文 的源 IP地址、 该第一数据报文的源端口以及该第一数据报文 的传输层协议 号与该第一数据报文的目的服务器的外部 IP地址和外部端口的对应关系。

结合第三方面、 第一种可能的实施方式、 第二种可能的实施方式、 第三 种可能的实施方式、 第四种可能的实施方式、 第五种可能的实施方式、 第六 种可能的实施方式和第七种可能的实施方式, 在第八种可能的实施方式中, 该网卡模块还用于在接收到该第二控制信息表 项后, 启动定时器, 并确定在 该定时器超时之前未接收到该第二数据报文; 或用于确定在该客户端设备和 该第一数据报文的目的服务器之间建立的用于 传输该第一数据报文的通信 连接结束; 用于删除该第二控制信息表项。

根据本发明实施例的控制数据传输的方法、 装置和系统, 通过负载均衡 处理器根据第一数据报文确定控制信息, 并向网卡设备下发该控制信息, 网 卡设备在接收到第二数据报文时能够根据该控 制信息传输该第二数据报文, 减少负载均衡处理器的处理, 从而, 能够提高访问速度, 减小负载均衡处理 器的负担。 附图说明

为了更清楚地说明本发明实施例的技术方案, 下面将对实施例或现有技 术描述中所需要使用的附图作筒单地介绍, 显而易见地, 下面描述中的附图 仅仅是本发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造 性劳动的前提下, 还可以根据这些附图获得其他的附图。

图 1是根据本发明实施例的控制数据传输的方法 示意性流程图。 图 2是根据本发明实施例的控制数据传输的装置 示意性框图。

图 3是根据本发明实施例的控制数据传输的系统 示意性框图。 具体实施方式

下面将结合本发明实施例中的附图,对本发明 实施例中的技术方案进行 清楚、 完整地描述, 显然, 所描述的实施例是本发明一部分实施例, 而不是 全部的实施例。 基于本发明中的实施例, 本领域普通技术人员在没有做出创 造性劳动前提下所获得的所有其他实施例, 都属于本发明保护的范围。

图 1示出了从网卡设备角度描述的,根据本发明 施例的控制数据传输 的方法 100的示意性流程图。 如图 1所示, 该方法 100包括:

S110, 向负载均衡处理器发送来自客户端设备的第一 数据报文; S120, 接收该负载均衡处理器发送的控制信息, 其中, 该控制信息是该 负载均衡处理器根据该第一数据报文的 L3/4层信息和 /或该第一数据报文的 L7 层信息确定的, 该控制信息包括用于指示该第一数据报文的目 的服务器 的服务器信息;

S130, 当接收到第二数据报文时, 根据该控制信息, 控制该第二数据报 文的传输;

具体地说, 在本发明实施例中, 客户端设备可以是计算机、 智能手机等 通信设备, 用户在通过该客户端设备访问业务时, 客户端设备向提供该业务 的服务器(以下, 称为目的服务器)发送数据报文。

服务器(包括上述目的服务器)可以是, 例如 Web服务器、 FTP服务 器、 企业关键应用服务器和其它关键任务服务器等 。 在本发明实施例中, 该 目的服务器与其他服务器构成服务器集群, 以扩展网络设备和服务器的带 宽、 增加吞吐量、 加强网络数据处理能力、 提高网络的灵活性和可用性。 在 服务器集群内部, 各服务器拥有不同的 IP地址(后述内部 IP地址)和端口 (后述内部端口)。并且,该服务器集群具有 个或多个统一的面向外部(例 如, 面向客户端设备 ) 的 IP地址(后述外部 IP地址)和端口 (后述外部端 口)。

负载均衡器(包括用于接收业务的数据报文的 网关设备, 以及用于通过 执行各种程序以对该数据报文进行负载均衡的 负载均衡处理器 )设置在该服 务器集群与客户端设备之间,可以将大量的并 发访问或数据流量分担到多个 服务器上分别处理, 减少客户端设备等待响应的时间, 还可以将单个重负载 的运算分担到多个服务器上做并行处理, 每个节点设备处理结束后, 将结果 汇总, 返回给客户端设备, 使系统处理能力得到大幅度提高。 并且, 负载均 衡器的面向外部的 IP地址和与其连接的服务器集群的面向外部的 IP地址相 同。

在本发明实施例中, 例如, 可以通过软件负载均衡解决方案实现负载均 衡, 该软件负载均衡解决方案是指在一个或多个服 务器的操作系统上安装一 个或多个附加应用程序来实现负载均衡,如域 名系统负载均衡( DNS( Domain Name System ) Load Balance )等,从而,该服务器的处理器通过执行该软 , 实现负载均衡, 相当于负载均衡处理器。

并且, 在本发明实施例中, 该负载均衡器也可以直接安装在服务器和外 部网络间之间, 独立于服务器的操作系统。

在本发明实施例中,作为负载均衡器的负载均 衡方式,可以列举,例如: 1. 网络地址转换( NAT, Network Address Translation )式负载均衡, 即, 负载均衡器重写来自客户端设备的数据报文的 目标地址 /源地址,根据预设的 负载均衡算法, 将该修改后的数据报文发送给各服务器; 并且, 来自服务器 的响应数据报文经过负载均衡器时, 负载均衡器重写该响应数据报文的源地 址 /目的地址, 再返回给客户, 完成整个负载调度过程。 2. 直接路由 (DR, Direct Rout ) 式负载均衡, 即, 负载均衡器通过改 写来自客户端设备数据报文的媒体接入控制层 ( MAC, Media Access Control ) 地址, 将数据报文发送到服务器, 而服务器将响应数据报文根据客户端设备 的 MAC地址直接返回给客户端设备。

3. IP隧道(TUN, TUNNEL ) 式负载均衡, 即, 负载均衡器将来自客 户端设备数据报文通过 IP 隧道转发给服务器, 而服务器将响应数据报文直 接返回给客户端设备。

在以上列举的各负载均衡方式中, 负载均衡器可以将一个外部地址映射 为多个内部地址(对应各服务器), 对每次通信连接动态地使用其中一个内 部地址, 达到负载均衡的目的。 应理解, 以上列举的各负载均衡方式仅为示 例性说明, 本发明并不限定于此, 其他用于负载均衡的方式均落入本发明的 保护范围。

因此, 在用户需要访问由服务器集群提供的业务时, 客户端设备可以根 据该服务器集群对外统一的 IP地址和端口 (即, 外部 IP地址和外部端口 ), 发送该业务的首个数据报文(第一数据报文 ), 首先到达负载均衡器(由网 卡设备接收)。

在 S110 中, 负载均衡器的网卡设备接收到该第一数据报文 , 并且, 该 网卡设备可以将该第一数据报文发送给负载均 衡器的负载均衡处理器 (以 下, 为了便于说明, 筒称处理器), 从而, 该处理器可以采用预先设置的负 载均衡算法, 通过上述任意负载均衡方式, 从服务器集群中, 确定该数据报 文的目的服务器。

在本发明实施例中, 处理器可以根据网络的不同层次(网络七层) 来进 行负载均衡,具体地说,可以根据数据报文的 L3/4层信息进行负载均衡(即, 下文所述的情况 1 ), 也可以根据数据报文的 L7层, 或者, L3/4层信息和 L7层信息 (即, 下文所述的情况 2 )进行负载均衡。

其中, 在本发明实施例中, L3/4层可以包括 L3层, 或 L4层, 或 L3层 和 L4 层。 L3 层信息可以包括开放式系统互联 ( OSI , Open System Interconnect ) 网络模型中的网络层的 IP地址信息, L4层信息可以包括 OSI 网络模型中的传输层的传输控制协议 /用户数据报协议(TCP/UDP, Transfer Control Protocol/ User Datagram Protocol )端口信息。 因此, L3/4层信息可以 包括传输该业务的业务服务器的外部 IP地址(与数据报文的目的 IP地址相 同)、 外部端口 (与数据报文的目的端口相同)等信息。 L7层信息可以包括 应用层信息, 具体地说, 是数据报文携带的 URL地址。

下面, 首先对处理器用于根据数据报文的 L3/4层信息进行负载均衡的 情况(情况 1 )进行说明。

情况 1

处理器接收到网卡设备发送的第一数据报文后 ,通过对数据报文的 L3/4 层进行解析, 例如, 对数据报文进行浅层报文探测 (SPI, Shallow Packet Inspection ), 从而获取该数据报文的 L3/4层信息 (例如, 源 IP地址、 目的 IP地址、 源端口和目的端口等), 在本发明实施例中, 处理器根据 L3/4层信 息进行负载均衡处理的方法与现有技术相同, 这里, 为避免赘述, 省略其说 明。 在本发明实施例中, 控制信息作为该负载均衡处理的结果, 例如, 可以 是指示目的服务器的服务器信息。 并且, 在本发明实施例中, 处理器可以根 据负载均衡处理的结果, 直接控制发送设备(例如, 可以是该网卡设备)将 该第一数据报文发送给与该负载均衡处理的结 果相对应的目的服务器。 并将 该服务器信息发送给网卡设备。

可选地, 在本发明实施例中, 该服务器信息可以用于指示该第一数据报 文的目的服务器的内部网际协议 IP地址和内部端口。

具体地说, 处理器可以将第一数据报文的目的服务器的内 部 IP地址和 内部端口下发给网卡设备。

在 S120中, 网卡设备可以从处理器获取该目的服务器的内 部 IP地址和 内部端口。 并且, 网卡设备可以接收发送端发送的第二数据报文 , 这里, 发 送端可以是上述客户端设备,也可以是服务器 ,本发明并未特别限定,例如, 在负载均衡器采用 DR式负载均衡或 IP TUN式负载均衡时, 服务器(目的 服务器)返回给客户端设备的报文不通过负载 均衡器, 因此, 该第二数据报 文的发送端为客户端设备; 例如, 在负载均衡器采用 NAT式负载均衡时, 由于服务器(目的服务器)返回给客户端设备 的报文需要通过负载均衡器, 因此, 该第二数据报文的发送端可以为客户端设备, 也可以为服务器(目的 服务器)。 以下, 以负载均衡器采用 NAT式负载均衡的情况为例进行说明。

在 S130, 在接收到第二数据报文后, 网卡设备可以根据该控制信息控 制该第二数据报文的传输。

可选地, 在本发明实施例中, 该服务器信息是根据该第一数据报文的 L3/4层信息确定的, 则

该根据该控制信息, 控制该第二数据报文的传输, 具体为:

当该第二数据报文的五元组与该第一数据报文 的五元组相同时,根据该 服务器信息, 向该第一数据报文的目的服务器发送该第二数 据报文, 其中, 该五元组为源 IP地址、 源端口、 目的 IP地址、 目的端口和传输层协议号。

具体地说, 一方面, 在发送端为客户端设备时, 如果该第二数据报文的 目的 IP地址、 源 IP地址、 目的端口、 源端口以及传输层协议号(TCP连接 或 UDP连接 )与该第一数据报文的目的 IP地址、 源 IP地址、 目的端口、 源 端口以及传输层协议号 ( TCP连接或 UDP连接)相同, 由于负载均衡处理 器基于 L3/4层信息进行负载均衡处理,对于第二数据 文的处理依据即 L3/4 层信息 (包括该第二数据报文的目的 IP地址、 源 IP地址、 目的端口、 源端 口以及传输层协议号)与对于第一数据报文的 处理依据相同,可以确定该第 二数据报文的目的服务器与第一数据报文的目 的服务器相同 (即, 第二数据 报文与第一数据报文属于该客户端设备与该目 的服务器之间的同一次通信 连接)。

从而, 网卡设备可以将该第二数据报文的目的 IP地址修改为该(第一 数据报文的) 目的服务器的内部 IP地址, 并将该第二数据报文的目的端口 修改为该(第一数据报文的) 目的服务器的内部端口, 以向该(第一数据报 文的) 目的服务器发送该第二数据报文。

以上, 列举了根据数据报文的五元组来确定第一数据 报文的目标服务器 与第二数据报文是否属于该客户端设备与该目 的服务器之间的同一次通信 连接的实施例, 但本发明并不限定于此, 例如, 如果负载均衡器仅与一个服 务器集群相连接, 且该服务器集群仅有一个统一的外部 IP地址, 则对于到 达该负载均衡器的数据报文, 目的 IP地址和目的端口相同, 因此, 可以仅 判定源 IP地址、 源端口和传输层协议号是否相同即可。 以下, 省略对相同 或相似情况的说明。

可选地, 在本发明实施例中, 该服务器信息包括第一控制信息表项, 该 第一控制信息表项用于指示该第一数据报文的 五元组与该第一数据报文的 目的月良务器的内部 IP地址和内部端口的对应关系。

具体地说, 处理器在根据第一数据报文的 L3/4层信息进行负载均衡处 理(对应 DR式负载均衡或 IP TUN式负载均衡) 并确定目的服务器后, 可 以根据该第一数据报文的 L3/4层信息, 仅生成正方向的控制信息表项。 这里, 正方向是指从客户端设备到服务器的方向, 具体地说, 正方向控 制信息表项可以包括, 例如, 第一数据报文的源 IP地址、 源端口、 目的 IP 地址、 目的端口以及第一数据报文的传输层协议号 (以下, 为了便于说明, 筒称第一五元组)与目的服务器信息 (例如, 包括该目的服务器的 IP地址 和端口) 的对应关系, 从而在 S130, 网卡设备可以根据第二数据报文的源 IP地址、 源端口、 目的 IP地址、 目的端口以及第二数据 文的传输层协议 号 (以下, 为了便于说明, 筒称第二五元组), 查找该控制信息表项, 在该 第二五元组与控制信息表项中记载的第一五元 组相同的情况下, 可以确定, 指示该第二数据报文的目的服务器的目的服务 器信息为与该第一五元组相 对应的服务器信息。 从而, 网卡设备可以将该第二数据报文的目的 IP地址 修改为该(与第一五元组相对应的控制信息指 示的) 目的服务器的 IP地址, 并将该第二数据报文的目的端口修改为该(与 第一五元组相对应的控制信息 指示的) 目的服务器的端口, 能够向该(与第一五元组相对应的控制信息指 示的) 目的服务器发送该第二数据报文。

可选地, 在本发明实施例中, 该服务器信息还用于指示该第一数据报文 的目的服务器的外部 IP地址和外部端口, 则

该根据该控制信息, 控制该第二数据报文的传输, 具体为:

当该第二数据报文的源 IP地址与该目的服务器的内部 IP地址相同, 且 该第二数据报文的源端口与该目的服务器的内 部端口信息相同,且该第二数 据报文的目的 IP地址与该第一数据报文的源 IP地址相同, 且该第二数据报 文的目的端口与该第一数据报文的源端口相同 ,且该第二数据报文的传输层 协议号与该第一数据报文的传输层协议号相同 时, 根据该第一数据报文的 目的服务器的外部 IP地址和外部端口, 控制该发送单元向该客户端设备发 送该第二数据报文。

具体地说, 在发送端为服务器时(对应 NAT式负载均衡), 如果该第二 数据报文的目的 IP地址与第一数据报文的源 IP地址相同, 该第二数据报文 的源 IP地址与处理器在对第一数据进行均衡处理后 定的目的服务器的内 部 IP地址相同, 该第二数据报文的目的端口与第一数据报文的 源 IP地址相 同, 该第二数据报文的源端口与处理器在对第一数 据进行均衡处理后确定的 目的服务器的内部端口相同,以及第二数据报 文传输层协议号与该第一数据 报文的传输层协议号相同, 由于负载均衡处理器基于 L3/4层信息进行负载 均衡处理, 可以确定该第二数据报文是目的服务器生成的 与该第一数据报文 相对应的响应数据报文(即, 第二数据报文与第一数据报文属于该客户端设 备与该目的服务器之间的同一次通信连接)。

从而, 网卡设备可以将该第二数据报文的源 IP地址修改为目的服务器 的外部 IP地址(与该第一数据报文的目的 IP地址相同 ),并将该第二数据报 文的源端口修改为目的服务器的外部端口(与 该第一数据报文的目的端口相 同 ), 以向该(发送第一数据报文的)客户端设备发 送该第二数据报文。

可选地, 在本发明实施例中, 该服务器信息包括第一控制信息表项, 该 第一控制信息表项用于指示该第一数据报文的 五元组与该第一数据报文的 目的月良务器的内部 IP地址和内部端口的对应关系。

该服务器信息包括第二控制信息表项,该第二 控制信息表项用于指示该 第一数据报文的目的服务器的内部 IP地址、 该第一数据报文的目的服务器 的内部端口、 该第一数据 文的源 IP地址、 该第一数据 ^艮文的源端口以及 该第一数据报文的传输层协议号与该第一数据 报文的目的服务器的外部 IP 地址和外部端口的对应关系。

具体地说, 处理器在根据第一数据报文的 L3/4层信息进行负载均衡处 理(NAT 式负载均衡) 并确定目的服务器后, 可以根据该第一数据报文的 L3/4层信息, 生成正反两个方向的控制信息表项。

这里, 正方向是指从客户端设备到服务器的方向, 具体地说, 正方向控 制信息表项可以包括, 例如, 第一数据报文的源 IP地址、 源端口、 目的 IP 地址、 目的端口以及第一数据报文的传输层协议号 (以下, 为了便于说明, 筒称第一五元组)与目的服务器信息 (例如, 包括该目的服务器的 IP地址 和端口) 的对应关系, 从而网卡设备可以根据第二数据 ^艮文的源 IP地址、 源端口、 目的 IP地址、 目的端口以及第二数据报文的传输层协议号( 以下, 为了便于说明, 筒称第二五元组), 查找该控制信息表项, 在该第二五元组 与控制信息表项中记载的第一五元组相同的情 况下, 可以确定, 指示该第二 数据报文的目的服务器的目的服务器信息为与 该第一五元组相对应的服务 器信息。从而, 网卡设备可以将该第二数据报文的目的 IP地址修改为该(与 第一五元组相对应的控制信息指示的) 目的服务器的 IP地址, 并将该第二 数据报文的目的端口修改为该(与第一五元组 相对应的控制信息指示的 ) 目 的服务器的端口, 能够向该(与第一五元组相对应的控制信息指 示的) 目的 服务器发送该第二数据报文。

这里, 反方向是指从服务器到客户端设备的方向, 具体地说, 反方向控 制信息表项可以包括, 例如, 目的服务器的内部 IP地址、 目的服务器的内 部端口、 第一数据报文的源 IP地址、 第一数据报文的源端口以及第一数据 报文的传输层协议号(以下, 为了便于说明, 筒称第三五元组)与第一数据 报文的目的 IP地址(与目的服务器的外部 IP地址相同)、第一数据报文的目 的端口 (与目的服务器的外部端口相同)的对应关系 , 从而, 网卡设备可以 根据第二数据 4艮文的源 IP地址、 源端口、 目的 IP地址、 目的端口以及第二 数据报文的传输层协议号 (上述第二五元组), 查找该控制信息表项, 在该 第二五元组与控制信息表项中记载的第三五元 组相同的情况下, 可以确定, 发送该第二数据报文的服务器为与该第一五元 组相对应的第一数据报文的 目的服务器。 从而, 网卡设备可以将该第二数据报文的源 IP地址修改为该 控制信息表项指示的与第三五元组相对应的第 一数据报文的目的 IP地址(与 目的服务器的外部 IP地址相同 ), 并将该第二数据报文的目的端口修改为该 控制信息表项指示的与第一五元组相对应的第 一数据报文的目的端口(与目 的服务器的外部端口相同), 从而能够向该 (发送第一数据报文的)客户端 设备发送该第二数据报文。

以上列举了根据第二数据报文的源 IP地址、 源端口、 目的 IP地址、 目 的端口以及第二数据报文的传输层协议号,确 定能够根据该控制信息控制该 第二数据报文的传输, 应理解, 本发明并不限定于此, 其他判定是否能够根 据该控制信息控制该第二数据报文的传输的方 法(例如, 确定第一数据报文 与第二数据报文属于同一客户端设备与同一服 务器之间的同一次通信连接 的方法), 均落入本发明的保护范围内。 以下, 省略对相同或相似情况的说 明。

可选地, 在本发明实施例中, 在接收到该控制信息表项后, 该方法还包 括:

在接收到该第一控制信息表项后, 启动定时器, 并确定在该定时器超时 之前未接收到该第二数据报文; 或

确定在该客户端设备和该第一数据报文的目的 服务器之间建立的用于 传输该第一数据报文的通信连接结束; 删除该第一控制信息表项。

并且, 该方法还包括:

在接收到该第二控制信息表项后, 启动定时器, 并确定在该定时器超时 之前未接收到该第二数据报文; 或

确定在该客户端设备和该第一数据报文的目的 服务器之间建立的用于 传输该第一数据报文的通信连接结束;

删除该第二控制信息表项。

具体地说, 网卡设备在从处理器获取控制信息表项(包括 第一控制信息 表项和第二控制信息表项)后, 在长时间 (定时器超时后, 例如, 30分钟) 未接收到能够根据该控制信息表项包括的控制 信息进行传输的数据报文(例 如, 上述第二数据报文), 可以认为第一数据报文所属通信连接已结束, 从 而可以删除该控制信息表项(包括第一控制信 息表项和第二控制信息表项)。

并且, 网卡设备在从处理器获取控制信息表项(包括 第一控制信息表项 和第二控制信息表项)后, 检测到指示通信连接结束的数据报文后, 可以认 为第一数据报文所属通信连接已结束, 从而可以删除该控制信息表项(包括 第一控制信息表项和第二控制信息表项)。 以下, 省略对相同或相似情况的 说明。

下面, 对处理器根据数据报文的 L7层信息, 或者, L3/4层信息和 L7 层信息进行负载均衡的情况(情况 2 )进行说明。

情况 2

处理器接收到网卡设备发送的第一数据报文后 ,通过对数据报文的 L3/4 层进行解析, 例如, 对数据报文进行浅层报文探测 (SPI, Shallow Packet Inspection ), 从而获取该数据报文的 L3/4层信息 (例如, 源 IP地址、 目的 IP地址、 源端口和目的端口等), 并且, 通过对数据 文的 L7层进行解析, 例如, 对数据 文进行深层 文探测 (DPI, Deep Packet Inspection ), 从而 获取该数据报文的 L7层信息 (例如, 该数据报文的 URL等)。

在本发明实施例中, 可能存在第一数据报文的 L7层信息为空 (即, 不 存在 URL等 )的情况, 此时, 处理器仅根据 L3/4层信息进行负载均衡处理, 并且该根据 L3/4层信息进行负载均衡处理的方法与现有技 相同, 这里, 为避免赘述, 省略其说明。

并且, 在第一数据报文的 L7层信息不为空(即, 存在 URL等)的情况 下,处理器可以根据 L7层信息进行负载均衡处理, 并且该根据 L7层信息进 行负载均衡处理的方法与现有技术相同, 这里, 为避免赘述, 省略其说明。

在本发明实施例中, 控制信息作为该负载均衡处理的结果, 例如, 可以 包括指示目的服务器的服务器信息, 以及指示网卡设备需要对后续数据报文 指示标识。并且,在本发明实施例中,处理器 可以根据负载均衡处理的结果, 直接控制发送设备 (例如, 可以是该网卡设备)将该第一数据报文发送给 与 该负载均衡处理的结果相对应的目的服务器。 并将该控制信息发送给网卡设 备。

可选地, 在本发明实施例中, 该服务器信息可以用于指示该目的服务器 的内部 IP地址和内部端口。

具体地说, 处理器可以将第一数据报文的目的服务器的内 部 IP地址和 内部端口下发给网卡设备。

在 S120' 中, 网卡设备可以从处理器获取该目的服务器的 IP地址、 端 口以及 L7层解析指示标识。 并且, 网卡设备可以接收发送端发送的第二数 据报文, 这里, 发送端可以是上述客户端设备, 也可以是服务器, 本发明并 未特别限定, 例如, 在负载均衡器采用 DR式负载均衡或 IP TUN式负载均 衡时, 服务器(目的服务器)返回给客户端设备的报 文不通过负载均衡器, 因此, 该第二数据报文的发送端为客户端设备; 例如, 在负载均衡器采用 NAT式负载均衡时, 由于服务器(目的服务器)返回给客户端设备 的报文需 要通过负载均衡器, 因此, 该第二数据报文的发送端可以为客户端设备, 也 可以为服务器(目的服务器)。 以下, 以负载均衡器采用 NAT式负载均衡的 情况为例进行说明。

在 S130' 中, 在接收到第二数据报文后, 网卡设备可以根据该控制信 息控制控制该第二数据报文的传输。

可选地, 在本发明实施例中, 该服务器信息是根据该第一数据报文的 L3/4层信息和 L7层信息确定的, 或

且该控制信息还包括 L7层解析指示标识, 贝' J

该根据该控制信息, 控制该第二数据报文的传输, 具体为:

当该第二数据报文的五元组与该第一数据报文 的五元组相同时,根据该

L7层解析指示标识, 对该第二数据报文进行 L7层信息解析, 以获取用于指 示该第二数据报文的目的服务器的统一资源定 位器 URL地址的 URL信息, 其中, 该五元组为源 IP地址、 源端口、 目的 IP地址、 目的端口和传输层协 议号;

如果该 URL信息不为空, 则向该负载均衡处理器发送该第二数据报文 和该 URL信息, 以便于该负载均衡处理器根据该 URL信息, 确定该第二数 据报文的目的服务器, 并向该第二数据报文的目的服务器发送该第二 数据报 文; 或

如果该 URL信息为空, 则根据该服务器信息, 向该第一数据报文的目 的服务器发送该第二数据报文。

具体地说, 一方面, 在发送端为客户端设备时, 如果该第二数据报文的 目的 IP地址、 源 IP地址、 目的端口、 源端口以及传输层协议号( TCP连接 或 UDP连接 )与该第一数据报文的目的 IP地址、 源 IP地址、 目的端口、 源 端口以及传输层协议号 ( TCP连接或 UDP连接)相同, 由于负载均衡处理 器基于 L3/4层信息进行负载均衡处理,对于第二数据 文的处理依据即 L3/4 层信息 (包括该第二数据报文的目的 IP地址、 源 IP地址、 目的端口、 源端 口以及传输层协议号)与对于第一数据报文的 处理依据相同,可以确定该第 二数据报文的目的服务器与第一数据报文的目 的服务器相同 (即, 第二数据 报文与第一数据报文属于该客户端设备与该目 的服务器之间的同一次通信 连接)。

从而, 网卡设备可以根据 L7层解析指示标识, 获取第二数据报文的 L7 层信息,即,第二数据报文的 URL地址。如果能够获取第二数据报文的 URL 地址, 则向处理器发送该第二数据报文以及该 URL地址, 从而, 处理器无 需对该第二数据报文进行 L7层解析,可以直接根据该 URL地址进行负载均 衡处理, 在本发明实施例中, 由于解析 URL的过程由网卡设备进行, 即通 过硬件解析, 与通过处理器利用软件解析的方式相比, 提高了解析速度, 并 降低了对处理器的负担。 处理器在根据 URL确定该第二数据报文的目的服 务器后(可能与第一数据报文的目的服务器相 同, 也可能与第一数据报文的 目的服务器相异), 可以通过发送设备(例如, 该网关设备), 发送该第二数 据报文。

另外, 如果不能获取第二数据报文的 URL地址(第二数据报文的 L7层 信息为空), 则可以根据该服务器信息, 发送该第二数据报文, 该过程与网 卡设备 S130中执行的过程相同, 这里省略其说明。

可选地, 在本发明实施例中, 该服务器信息包括第一控制信息表项, 该 第一控制信息表项用于指示该第一数据报文的 五元组与该第一数据报文的 目的月良务器的内部 IP地址和内部端口的对应关系。

具体地说, 处理器在根据第一数据报文的 L3/4层信息进行负载均衡处 理(对应 DR式负载均衡或 IP TUN式负载均衡) 并确定目的服务器后, 可 以根据该第一数据报文的 L3/4层信息, 仅生成上述正方向的控制信息表项。

可选地, 在本发明实施例中, 该服务器信息还用于指示该第一数据报文 的目的服务器的外部 IP地址和外部端口, 则

该根据该控制信息, 控制该第二数据报文的传输, 具体为:

当该第二数据报文的源 IP地址与该目的服务器的内部 IP地址相同, 且 该第二数据报文的源端口与该目的服务器的内 部端口信息相同,且该第二数 据报文的目的 IP地址与该第一数据报文的源 IP地址相同, 且该第二数据报 文的目的端口与该第一数据报文的源端口相同 ,且该第二数据报文的传输层 协议号与该第一数据报文的传输层协议号相同 时, 根据该第一数据报文的 目的服务器的外部 IP地址和外部端口, 控制该发送单元发送该第二数据报 文。

具体地说, 在发送端为服务器时(对应 NAT式负载均衡), 如果该第二 数据报文的目的 IP地址与第一数据报文的源 IP地址相同, 该第二数据报文 的源 IP地址与处理器在对第一数据进行均衡处理后 定的目的服务器的内 部 IP地址相同, 该第二数据报文的目的端口与第一数据报文的 源 IP地址相 同, 该第二数据报文的源端口与处理器在对第一数 据进行均衡处理后确定的 目的服务器的内部端口相同,以及第二数据报 文的传输层协议号与该第一数 据报文的传输层协议号相同, 由于负载均衡处理器基于 L3/4层信息进行负 载均衡处理, 可以确定该第二数据报文是目的服务器生成的 与该第一数据报 文相对应的响应数据报文(即, 第二数据报文与第一数据报文属于该客户端 设备与该目的服务器之间的同一次通信连接) 。

从而, 网卡设备可以将该第二数据报文的源 IP地址修改为目的服务器 的外部 IP地址(与该第一数据报文的目的 IP地址相同 ),并将该第二数据报 文的源端口修改为目的服务器的外部端口(与 该第一数据报文的目的端口相 同), 以向该(发送第一数据报文的)客户端设备发 送该第二数据报文。 可选地, 在本发明实施例中, 该服务器信息包括第一控制信息表项, 该 第一控制信息表项用于指示该第一数据报文的 五元组与该第一数据报文的 目的月良务器的内部 IP地址和内部端口的对应关系。

该服务器信息包括第二控制信息表项,该第二 控制信息表项用于指示该 第一数据报文的目的服务器的内部 IP地址、 该第一数据报文的目的服务器 的内部端口、 该第一数据 文的源 IP地址、 该第一数据 4艮文的源端口以及 该第一数据报文的传输层协议号与该第一数据 报文的目的服务器的外部 IP 地址和外部端口的对应关系。

具体地说, 处理器在根据第一数据报文的 L3/4层信息进行负载均衡处 理(NAT 式负载均衡) 并确定目的服务器后, 可以根据该第一数据报文的 L3/4层信息, 生成上述正反两个方向的控制信息表项。

可选地, 如上所述, 在本发明实施例中, 在接收到该控制信息表项后, 该方法还包括:

在接收到该第一控制信息表项后, 启动定时器, 并确定在该定时器超时 之前未接收到该第二数据报文; 或

确定在该客户端设备和该第一数据报文的目的 服务器之间建立的用于 传输该第一数据报文的通信连接结束;

删除该第一控制信息表项。

并且, 该方法还包括:

在接收到该第二控制信息表项后, 启动定时器, 并确定在该定时器超时 之前未接收到该第二数据报文; 或

确定在该客户端设备和该第一数据报文的目的 服务器之间建立的用于 传输该第一数据报文的通信连接结束;

删除该第二控制信息表项。

应理解, 在以上实施例中, 已对负载均衡器采用 NAT式负载均衡的实 施例进行了说明, 但本发明并不在于此, 例如, 负载均衡器还可以采用 DR 式负载均衡或 IP TUN式负载均衡, 此时, 服务器(目的服务器)返回给客 户端设备的报文不通过负载均衡器, 因此, 该第二数据报文的发送端为客户 端设备。

根据本发明实施例的控制数据传输的方法,通 过负载均衡处理器根据第 一数据报文确定控制信息, 并向网卡设备下发该控制信息, 网卡设备在接收 到第二数据报文并确定能够根据该控制信息传 输该第二数据报文后, 可以根 据该控制信息直接向目的服务器发送该第二数 据报文, 或者, 可以获取该第 二数据报文中 URL信息并通知负载均衡处理器以使负载均衡处 理器无需对 第二数据报文进行解析,从而,减少负载均衡 处理器的处理,提高访问速度, 减小负载均衡处理器的负担。

上文中, 结合图 1 , 详细描述了根据本发明实施例的控制数据传输 的方 法, 下面将结合图 2, 详细描述根据本发明实施例的控制数据传输的 装置。

图 2示出了根据本发明实施例的控制数据传输的 置 200 的示意性框 图。 如图 2所示, 该装置 200包括:

发送单元 210, 用于向负载均衡处理器发送来自客户端设备的 第一数据 报文;

接收单元 220, 用于接收该负载均衡处理器发送的控制信息, 以及向处 理单元 230传输该控制信息, 其中, 该控制信息是该负载均衡处理器根据该 第一数据报文的 L3/4层信息和 /或该第一数据报文的 L7层信息确定的,该控 制信息包括用于指示该第一数据报文的目的服 务器的服务器信息;

用于当接收到第二数据报文时, 向处理单元 230传输该第二数据报文; 处理单元 230, 用于从该接收单元 220获取该控制信息和该第二数据报 文, 并根据该控制信息, 控制该发送单元传输该第二数据报文;

用于根据该控制信息, 控制该发送单元 210传输该第二数据报文。

具体地说, 在用户需要访问由服务器集群提供的业务时, 客户端设备可 以根据该服务器集群对外统一的 IP地址和端口 (即, 外部 IP地址和外部端 口), 发送该业务的首个数据报文(第一数据报文) , 该数据报文首先到达负 载均衡器(由网卡设备接收)。 网卡设备的接收单元 220可以接收该第一数 据报文, 并且, 该网卡设备的发送单元 210可以将该第一数据报文发送给负 载均衡器的负载均衡处理器(以下, 为了便于说明, 筒称处理器), 从而, 该处理器可以采用预先设置的算法, 通过上述任意负载均衡方式, 从服务器 集群中, 确定该数据报文的目的服务器。

处理器可以根据网络的不同层次(网络七层) 来进行负载均衡, 具体地 说, 可以根据数据报文的 L3/4层进行负载均衡, 也可以根据数据报文的 L7 层进行负载均衡。

其中, 在本发明实施例中, L3/4层可以包括 L3层, 或 L4层, 或 L3层 和 L4层。 L3层信息可以包括 OSI网络模型中的网络层的 IP地址信息, L4 层信息可以包括 OSI网络模型中的 TCP/UDP端口信息。 因此, L3/4层信息 可以包括传输该业务的业务服务器的 IP地址、 端口等信息。 L7层信息可以 包括应用层信息, 具体地说, 是数据报文携带的 URL地址。

下面, 首先对处理器用于根据数据报文的 L3/4层信息进行负载均衡的 情况进行说明。

处理器接收到网卡设备发送的第一数据报文后 ,通过对数据报文的 L3/4 层进行解析, 例如, 对数据报文进行 SPI, 从而获取该数据报文的 L3/4层信 息 (例如, 源 IP地址、 目的 IP地址、 源端口和目的端口等), 在本发明实施 例中, 处理器根据 L3/4层信息进行负载均衡处理的方法与现有技 相同, 这里, 为避免赘述, 省略其说明。 在本发明实施例中, 作为该负载均衡处理 的结果, 例如, 控制信息可以是指示目的服务器的服务器信息 。 并且, 在本 发明实施例中,处理器可以根据负载均衡处理 的结果,直接控制发送设备(例 如, 可以是该网卡设备)将该第一数据报文发送给 与该负载均衡处理的结果 相对应的目的服务器。 并将该服务器信息发送给网卡设备。

在本发明实施例中, 该服务器信息用于指示该第一数据报文的目的 服务 器的内部网际协议 IP地址和内部端口。

并且, 可选地, 在本发明实施例中, 该服务器信息是根据该第一数据报 文的 L3/4层信息确定的则

该处理单元 230具体用于当该第二数据 文的五元组与该第一数据 4艮文 的五元组相同时, 根据该服务器信息, 控制该发送单元向该第一数据报文的 目的服务器发送该第二数据报文, 其中, 该五元组为源 IP地址、 源端口、 目的 IP地址、 目的端口和传输层协议号。

具体地说, 处理器可以将目的服务器的内部 IP地址和内部端口下发给 网卡设备。 内部的内部 IP地址和内部端口。 其后, 网卡设备的接收单元 220可以接收 发送端发送的第二数据报文, 这里, 发送端可以是上述客户端设备, 也可以 是服务器, 本发明并未特别限定, 例如, 在负载均衡器采用 DR式负载均衡 或 IP TUN式负载均衡时, 服务器(目的服务器)返回给客户端设备的报 文 不通过负载均衡器, 因此, 该第二数据报文的发送端为客户端设备; 例如, 在负载均衡器采用 NAT式负载均衡时, 由于服务器(目的服务器)返回给 客户端设备的报文需要通过负载均衡器, 因此, 该第二数据报文的发送端可 以为客户端设备, 也可以为服务器(目的服务器)。 以下, 以负载均衡器采 用 NAT式负载均衡的情况为例进行说明。 该第二数据报文的传输。

具体地说, 一方面, 如果该第二数据 文的目的 IP地址、 源 IP地址、 目的端口、 源端口以及传输层协议号 ( TCP连接或 UDP连接)与该第一数 据才艮文的目的 IP地址、源 IP地址、目的端口、源端口以及传输层协议号 TCP 连接或 UDP连接)相同, 由于负载均衡处理器基于 L3/4层信息进行负载均 衡处理, 对于第二数据报文的处理依据即 L3/4层信息 (包括该第二数据报 文的目的 IP地址、 源 IP地址、 目的端口、 源端口以及传输层协议号)与对 于第一数据报文的处理依据相同, 可以确定该第二数据报文的目的服务器与 第一数据报文的目的服务器相同 (即, 第二数据报文与第一数据报文属于该 客户端设备与该目的服务器之间的同一次通信 连接)。

从而, 网卡设备的处理单元 230可以控制发送单元 210将该第二数据报 文的目的 IP地址修改为该 (第一数据报文的) 目的服务器的 IP地址, 并将 该第二数据报文的目的端口修改为该(第一数 据报文的)目的服务器的端口, 能够向该(第一数据报文的) 目的服务器发送该第二数据报文。

可选地, 在本发明实施例中, 该服务器信息包括第一控制信息表项, 该 第一控制信息表项用于指示该第一数据报文的 五元组与该第一数据报文的 目的月良务器的内部 IP地址和内部端口的对应关系。

具体地说, 处理器在根据第一数据报文的 L3/4层信息进行负载均衡处 理(对应 DR式负载均衡或 IP TUN式负载均衡) 并确定目的服务器后, 可 以根据该第一数据报文的 L3/4层信息, 仅生成正方向的控制信息表项。

这里, 正方向是指从客户端设备到服务器的方向, 具体地说, 正方向控 制信息表项可以包括, 例如, 第一数据报文的源 IP地址、 源端口、 目的 IP 地址、 目的端口以及第一数据报文的传输层协议号 (以下, 为了便于说明, 筒称第一五元组)与目的服务器信息 (例如, 包括该目的服务器的 IP地址 和端口) 的对应关系, 从而处理单元 230可以根据第二数据报文的源 IP地 址、 源端口、 目的 IP地址、 目的端口以及第二数据报文的传输层协议号( 以 下, 为了便于说明, 筒称第二五元组), 查找该控制信息表项, 在该第二五 元组与控制信息表项中记载的第一五元组相同 的情况下, 可以确定, 指示该 第二数据报文的目的服务器的目的服务器信息 为与该第一五元组相对应的 服务器信息。 从而处理单元 230可以将该第二数据报文的目的 IP地址修改 为该(与第一五元组相对应的控制信息指示的 ) 目的服务器的 IP地址, 并 将该第二数据报文的目的端口修改为该(与第 一五元组相对应的控制信息指 示的) 目的服务器的端口, 能够向该(与第一五元组相对应的控制信息指 示 的) 目的服务器发送该第二数据报文。

可选地, 在本发明实施例中, 该服务器信息还用于指示该第一数据报文 的目的服务器的外部 IP地址和外部端口, 则

该处理单元具体用于当该第二数据报文的源 IP地址与该目的服务器的 内部 IP地址相同, 且该第二数据报文的源端口与该目的服务器的 内部端口 信息相同, 且该第二数据报文的目的 IP地址与该第一数据报文的源 IP地址 相同, 且该第二数据报文的目的端口与该第一数据报 文的源端口相同, 且该 第二数据报文的传输层协议号与该第一数据报 文的传输层协议号相同时, 根据该第一数据报文的目的服务器的外部 IP地址和外部端口, 控制该发送 单元向该客户端设备发送该第二数据报文。

具体地说, 在发送端为服务器时(对应 NAT式负载均衡), 如果该第二 数据报文的目的 IP地址与第一数据报文的源 IP地址相同, 该第二数据报文 的源 IP地址与处理器在对第一数据进行均衡处理后 定的目的服务器的内 部 IP地址相同, 该第二数据报文的目的端口与第一数据报文的 源 IP地址相 同, 该第二数据报文的源端口与处理器在对第一数 据进行均衡处理后确定的 目的服务器的内部端口相同,以及第二数据报 文的传输层协议号与该第一数 据报文的传输层协议号相同, 由于负载均衡处理器基于 L3/4层信息进行负 载均衡处理, 可以确定该第二数据报文是目的服务器生成的 与该第一数据报 文相对应的响应数据报文(即, 第二数据报文与第一数据报文属于该客户端 设备与该目的服务器之间的同一次通信连接) 。

从而, 发送单元 220可以将该第二数据报文的源 IP地址修改为第一数 据报文的目的服务器的外部 IP地址(与该第一数据报文的目的 IP地址相同), 并将该第二数据报文的源端口修改为第一数据 报文的目的服务器的外部端 口 (与该第一数据报文的目的端口相同), 从而能够向该 (发送第一数据报 文的)客户端设备发送该第二数据报文。

可选地, 在本发明实施例中, 该服务器信息包括第一控制信息表项, 该 第一控制信息表项用于指示该第一数据报文的 五元组与该第一数据报文的 目的月良务器的内部 IP地址和内部端口的对应关系。

并且, 该服务器信息包括第二控制信息表项, 该第二控制信息表项用于 指示该第一数据报文的目的服务器的内部 IP地址、 该第一数据报文的目的 服务器的内部端口、 该第一数据报文的源 IP地址、 该第一数据报文的源端 口以及该第一数据报文的传输层协议号与该第 一数据报文的目的服务器的 外部 IP地址和外部端口的对应关系。

具体地说, 处理器在根据第一数据报文的 L3/4层信息进行负载均衡处 理(NAT 式负载均衡) 并确定目的服务器后, 可以根据该第一数据报文的 L3/4层信息, 生成正反两个方向的控制信息表项。

这里, 正方向是指从客户端设备到服务器的方向, 具体地说, 正方向控 制信息表项可以包括, 例如, 第一数据报文的源 IP地址、 源端口、 目的 IP 地址、 目的端口以及第一数据报文的传输层协议号 (以下, 为了便于说明, 筒称第一五元组)与目的服务器信息 (例如, 包括该目的服务器的 IP地址 和端口) 的对应关系, 从而处理单元 230可以根据第二数据报文的源 IP地 址、 源端口、 目的 IP地址、 目的端口以及第二数据报文的传输层协议号( 以 下, 为了便于说明, 筒称第二五元组), 查找该控制信息表项, 在该第二五 元组与控制信息表项中记载的第一五元组相同 的情况下, 可以确定, 指示该 第二数据报文的目的服务器的目的服务器信息 为与该第一五元组相对应的 服务器信息。 从而发送单元 210可以将该第二数据报文的目的 IP地址修改 为该(与第一五元组相对应的控制信息指示的 ) 目的服务器的 IP地址, 并 将该第二数据报文的目的端口修改为该(与第 一五元组相对应的控制信息指 示的) 目的服务器的端口, 能够向该(与第一五元组相对应的控制信息指 示 的) 目的服务器发送该第二数据报文。

这里, 反方向是指从服务器到客户端设备的方向, 具体地说, 反方向控 制信息表项可以包括, 例如, 目的服务器的内部 IP地址、 目的服务器的内 部端口、 第一数据报文的源 IP地址、 第一数据报文的源端口以及第一数据 报文的传输层协议号(以下, 为了便于说明, 筒称第三五元组)与第一数据 报文的目的 IP地址(与目的服务器的外部 IP地址相同)、第一数据报文的目 的端口 (与目的服务器的外部端口相同)的对应关系 , 从而处理单元 230可 以根据第二数据 4艮文的源 IP地址、 源端口、 目的 IP地址、 目的端口以及第 二数据报文的传输层协议号 (上述第二五元组), 查找该控制信息表项, 在 该第二五元组与控制信息表项中记载的第三五 元组相同的情况下, 可以确 定,发送该第二数据报文的服务器为与该第一 元组相对应的第一数据报文 的目的服务器。 从而发送单元 210可以将该第二数据报文的源 IP地址修改 为该控制信息表项指示的与第三五元组相对应 的第一数据报文的目的 IP地 址(与目的服务器的外部 IP地址相同 ), 并将该第二数据报文的目的端口修 改为该控制信息表项指示的与第一五元组相对 应的第一数据报文的目的端 口 (与目的服务器的外部端口相同 ), 从而能够向该(发送第一数据报文的) 客户端设备发送该第二数据报文。

可选地, 在本发明实施例中, 该处理单元 230还用于在确定该接收单元 220接收到该第一控制信息表项后, 启动定时器, 并确定在该定时器超时之 前未接收到该第二数据报文; 或

用于确定在该客户端设备和该第一数据报文的 目的服务器之间建立的 用于传输该第一数据报文的通信连接结束;

用于删除该第一控制信息表项。

并且, 该处理单元 230还用于在确定该接收单元 220接收到该第二控制 信息表项后, 启动定时器, 并确定在该定时器超时之前未接收到该第二数 据 报文; 或

用于确定在该客户端设备和该第一数据报文的 目的服务器之间建立的 用于传输该第一数据报文的通信连接结束;

用于删除该第二控制信息表项。

具体地说, 处理单元 230在通过接收单元 220从处理器获取控制信息表 项(包括第一控制信息表项和第二控制信息表 项)后, 在长时间 (定时器超 时后, 例如, 30分钟)未接收到能够根据该控制信息表项包 的控制信息进 行传输的数据报文(例如, 上述第二数据报文), 可以认为第一数据报文所 属通信连接已结束, 从而可以删除该控制信息表项(包括第一控制 信息表项 和第二控制信息表项)。

并且,处理单元 230在通过接收单元 220从处理器获取控制信息表项(包 括第一控制信息表项和第二控制信息表项)后 , 检测到指示通信连接结束的 数据报文后, 可以认为第一数据报文所属通信连接已结束, 从而可以删除该 控制信息表项 (包括第一控制信息表项和第二控制信息表项 )。 以下, 省略 对相同或相似情况的说明。

以上列举了根据第二数据报文的源 IP地址、 源端口、 目的 IP地址、 目 的端口以及第二数据报文的传输层协议号,确 定能够根据该控制信息控制该 第二数据报文的传输, 应理解, 本发明并不限定于此, 其他判定是否能够根 据该控制信息控制该第二数据报文的传输的方 法(例如, 确定第一数据报文 与第二数据报文属于同一客户端设备与同一服 务器之间的同一次通信连接 的方法), 均落入本发明的保护范围内。

下面, 对处理器用于根据数据报文的 L7层信息, 或者, L3/4层信息和

L7层信息进行负载均衡的情况进行说明。

处理器接收到网卡设备的发送单元 210发送的第一数据报文后,通过对 数据报文的 L3/4层进行解析, 例如, 对数据报文进行 SPI, 从而获取该数据 报文的 L3/4层信息(例如,源 IP地址、目的 IP地址、源端口和目的端口等), 并且, 通过对数据报文的 L7层进行解析, 例如, 对数据报文进行 DPI, 从 而获取该数据报文的 L7层信息 (例如, 该数据报文的 URL等)。

在本发明实施例中, 可能存在第一数据报文的 L7层信息为空 (即, 不 存在 URL等 )的情况, 此时, 处理器仅根据 L3/4层信息进行负载均衡处理, 并且该根据 L3/4层信息进行负载均衡处理的方法与现有技 相同, 这里, 为避免赘述, 省略其说明。

并且, 在第一数据报文的 L7层信息不为空(即, 存在 URL等)的情况 下,处理器可以根据 L7层信息进行负载均衡处理, 并且该根据 L7层信息进 行负载均衡处理的方法与现有技术相同, 这里, 为避免赘述, 省略其说明。

在本发明实施例中, 作为该负载均衡处理的结果, 例如, 控制信息可以 是指示目的服务器的服务器信息, 以及指示网卡设备需要对后续数据报文 (主要是客户端设备发送给服务器的数据报文 进行 L7层解析的 L7层解析 指示标识。并且,在本发明实施例中,处理器 可以根据负载均衡处理的结果, 直接控制发送设备 (例如, 可以是该网卡设备)将该第一数据报文发送给 与 该负载均衡处理的结果相对应的目的服务器。 并将该控制信息发送给网卡设 备。

在本发明实施例中,该服务器信息用于指示该 目的服务器的内部地址和 内部端口。

具体地说处理器可以将目的服务器的内部 IP地址和内部端口以及 L7层 解析指示标识下发给网卡设备。

网卡设备的发送单元 210可以从处理器获取该目的服务器的在服务器 集 群内部的内部 IP地址、 内部端口以及 L7层解析指示标识。

网卡设备的发送单元 210可以接收发送端发送的第二数据报文, 这里, 发送端可以是上述客户端设备, 也可以是服务器, 本发明并未特别限定, 例 如,在负载均衡器采用 DR式负载均衡或 IP TUN式负载均衡时,服务器(目 的服务器)返回给客户端设备的报文不通过负 载均衡器, 因此, 该第二数据 报文的发送端为客户端设备; 例如, 在负载均衡器采用 NAT式负载均衡时, 由于服务器(目的服务器)返回给客户端设备 的报文需要通过负载均衡器, 因此, 该第二数据报文的发送端可以为客户端设备, 也可以为服务器(目的 服务器)。 以下, 以负载均衡器采用 NAT式负载均衡的情况为例进行说明。

网卡设备的处理单元 230 判定是否能够根据从处理器获取的服务器信 息, 发送该第二数据报文的传输。

可选地, 在本发明实施例中, 该服务器信息是根据该第一数据报文的 L3/4层信息和 L7层信息确定的, 或

该服务器信息是根据该第一数据报文的 L7层信息确定的,

该服务器信息用于指示该第一数据报文的目的 服务器的内部网际协议 IP地址和内部端口, 该控制信息还包括 L7层解析指示标识, 贝' J

该处理单元具体用于当该第二数据报文的五元 组与该第一数据报文的 五元组相同时,根据该 L7层解析指示标识,对该第二数据报文进行 L7层信 息解析, 以获取用于指示该第二数据报文的目的服务器 的统一资源定位器 URL地址的 URL信息, 其中, 该五元组为源 IP地址、 源端口、 目的 IP地 址、 目的端口和传输层协议号;

用于如果该 URL信息不为空, 则控制该发送单元向该负载均衡处理器 发送该第二数据报文和该 URL信息, 以便于该负载均衡处理器根据该 URL 信息, 确定该第二数据报文的目的服务器, 并向该第二数据报文的目的服务 器发送该第二数据报文; 或

用于如果该 URL信息为空, 则根据该服务器信息, 控制该发送单元向 该第一数据报文的目的服务器发送该第二数据 报文。 具体地说, 一方面, 在发送端为客户端设备时, 如果该第二数据报文的 目的 IP地址、 源 IP地址、 目的端口、 源端口以及传输层协议号( TCP连接 或 UDP连接 )与该第一数据报文的目的 IP地址、 源 IP地址、 目的端口、 源 端口以及传输层协议号( TCP连接或 UDP连接)相同,由于处理器基于 L3/4 层信息进行负载均衡处理,对于第二数据报文 的处理依据即 L3/4层信息(包 括该第二数据 文的目的 IP地址、 源 IP地址、 目的端口、 源端口以及传输 层协议号)与对于第一数据报文的处理依据相 同, 处理单元 230可以确定该 第二数据报文的目的服务器与第一数据报文的 目的服务器相同 (即, 第二数 据报文与第一数据报文属于该客户端设备与该 目的服务器之间的同一次通 信连接)。

其后, 网卡设备的处理单元 230可以根据 L7层解析指示标识, 获取第 二数据报文的 L7层信息, 即, 第二数据报文的 URL地址。

如果处理单元 230能够获取第二数据报文的 URL地址,则发送单元 210 向处理器发送该第二数据报文以及该 URL地址, 从而, 处理器无需对该第 二数据报文进行 L7层解析, 可以直接根据该 URL地址进行负载均衡处理, 在本发明实施例中, 由于解析 URL的过程由网卡设备进行, 即通过硬件解 析, 与通过处理器利用软件解析的方式相比, 提高了解析速度, 并降低了对 处理器的负担。处理器在根据 URL确定该第二数据报文的目的服务器后(可 能与第一数据报文的目的服务器相同,也可能 与第一数据报文的目的服务器 相异), 可以通过发送设备(例如, 该网关设备), 发送该第二数据报文。

另外, 如果处理单元 230不能获取第二数据报文的 URL地址(第二数 据报文的 L7层信息为空), 则可以根据该服务器信息, 控制发送单元 210发 送该第二数据报文。

可选地, 在本发明实施例中, 该服务器信息包括第一控制信息表项, 该 第一控制信息表项用于指示该第一数据报文的 五元组与该第一数据报文的 目的月良务器的内部 IP地址和内部端口的对应关系。

具体地说, 处理器在根据第一数据报文的 L7层信息进行负载均衡处理 (对应 DR式负载均衡或 IP TUN式负载均衡)并确定目的服务器后, 可以 根据该第一数据报文的 L3/4层信息, 仅生成上述正方向的控制信息表项。

可选地, 在本发明实施例中, 该服务器信息还用于指示该第一数据报文 的目的服务器的外部 IP地址和外部端口, 则 该处理单元 230具体用于当该第二数据报文的源 IP地址与该目的服务 器的内部 IP地址相同, 且该第二数据报文的源端口与该目的服务器的 内部 端口信息相同, 且该第二数据报文的目的 IP地址与该第一数据报文的源 IP 地址相同, 且该第二数据报文的目的端口与该第一数据报 文的源端口相同, 且该第二数据报文的传输层协议号与该第一数 据报文的传输层协议号相同 时, 根据该第一数据报文的目的服务器的外部 IP地址和外部端口, 控制该 发送单元向该客户端设备发送该第二数据报文 。

具体地说, 在发送端为服务器时(对应 NAT式负载均衡), 如果该第二 数据报文的目的 IP地址与第一数据报文的源 IP地址相同, 该第二数据报文 的源 IP地址与处理器在对第一数据进行均衡处理后 定的目的服务器的内 部 IP地址相同, 该第二数据报文的目的端口与第一数据报文的 源 IP地址相 同, 该第二数据报文的源端口与处理器在对第一数 据进行均衡处理后确定的 目的服务器的内部端口相同,以及第二数据报 文的传输层协议号与该第一数 据报文的传输层协议号相同, 由于负载均衡处理器基于 L3/4层信息进行负 载均衡处理, 可以确定该第二数据报文是目的服务器生成的 与该第一数据报 文相对应的响应数据报文(即, 第二数据报文与第一数据报文属于该客户端 设备与该目的服务器之间的同一次通信连接) 。

从而, 发送单元 220可以将该第二数据报文的源 IP地址修改为第一数 据报文的目的服务器的外部 IP地址(与该第一数据报文的目的 IP地址相同), 并将该第二数据报文的源端口修改为第一数据 报文的目的服务器的外部端 口 (与该第一数据报文的目的端口相同), 从而能够向该 (发送第一数据报 文的)客户端设备发送该第二数据报文。

可选地, 在本发明实施例中, 该服务器信息包括第一控制信息表项, 该 第一控制信息表项用于指示该第一数据报文的 五元组与该第一数据报文的 目的月良务器的内部 IP地址和内部端口的对应关系。

并且, 该服务器信息包括第二控制信息表项, 该第二控制信息表项用于 指示该第一数据报文的目的服务器的内部 IP地址、 该第一数据报文的目的 服务器的内部端口、 该第一数据报文的源 IP地址、 该第一数据报文的源端 口以及该第一数据报文的传输层协议号与该第 一数据报文的目的服务器的 外部 IP地址和外部端口的对应关系。

具体地说, 处理器在根据第一数据报文的 L3/4层信息进行负载均衡处 理(NAT 式负载均衡) 并确定目的服务器后, 可以根据该第一数据报文的 L3/4层信息, 生成上述正反两个方向的控制信息表项。

可选地, 如上所述, 在本发明实施例中, 该处理单元 230还用于在确定 该接收单元 220接收到该第一控制信息表项后, 启动定时器, 并确定在该定 时器超时之前未接收到该第二数据报文; 或

用于确定在该客户端设备和该第一数据报文的 目的服务器之间建立的 用于传输该第一数据报文的通信连接结束;

用于删除该第一控制信息表项。

并且, 该处理单元 230还用于在确定该接收单元 220接收到该第二控制 信息表项后, 启动定时器, 并确定在该定时器超时之前未接收到该第二数 据 报文; 或

用于确定在该客户端设备和该第一数据报文的 目的服务器之间建立的 用于传输该第一数据报文的通信连接结束;

用于删除该第二控制信息表项。

应理解, 在以上实施例中, 已对负载均衡器采用 NAT式负载均衡的实 施例进行了说明, 但本发明并不在于此, 例如, 负载均衡器还可以采用 DR 式负载均衡或 IP TUN式负载均衡, 此时, 服务器(目的服务器)返回给客 户端设备的报文不通过负载均衡器, 因此, 该第二数据报文的发送端为客户 端设备。 置 200中的各单元和上述其他操作和 /或功能分别为了实现图 1中的方法 100 的相应流程。

根据本发明实施例的控制数据传输的装置,通 过负载均衡处理器根据第 一数据报文确定控制信息, 并向网卡设备下发该控制信息, 网卡设备在接收 到第二数据报文并确定能够根据该控制信息传 输该第二数据报文后, 可以根 据该控制信息直接向目的服务器发送该第二数 据报文, 或者, 可以获取该第 二数据报文中 URL信息并通知负载均衡处理器以使负载均衡处 理器无需对 第二数据报文进行解析,从而,减少负载均衡 处理器的处理,提高访问速度, 减小负载均衡处理器的负担。

上文中, 结合图 1 , 详细描述了根据本发明实施例的控制数据传输 的方 法, 并结合图 2详细描述了根据本发明实施例的控制数据传 的装置, 下面 将结合图 3, 详细描述根据本发明实施例的控制数据传输的 系统。

图 3 示出了根据本发明实施例的控制数据传输的系 统 300 的示意性框 图。 如图 3所示, 该系统包括:

负载均衡处理模块 310, 用于从网卡模块 320获取第一数据报文, 并根 据该第一数据报文的 L3/4层信息和 /或该第一数据报文的 L7层信息,确定用 于指示该第一数据报文的目的服务器的服务器 信息, 向该网卡模块发送包括 该服务器信息的控制信息;

网卡模块 320, 用于向负载均衡处理模块 310发送来自用户设备的该第 一数据报文, 以及从该负载均衡处理模块 310获取该控制信息, 当接收到第 二数据报文时, 根据该控制信息, 控制该第二数据报文的传输。

具体地说, 在用户需要访问由服务器集群提供的业务时, 客户端设备可 以根据该服务器集群对外统一的 IP地址和端口 (即, 外部 IP地址和外部端 口), 发送该业务的首个数据报文(第一数据报文) , 该数据报文首先到达负 载均衡器(由网卡设备接收)。 该网卡模块 320可以将该第一数据报文发送 给负载均衡器的负载均衡处理模块 310, 从而, 该均衡处理模块 310可以采 用预先设置的算法, 通过上述任意负载均衡方式, 从服务器集群中, 确定该 数据报文的目的服务器。

在本发明实施例中, 均衡处理模块 310可以根据网络的不同层次(网络 七层) 来进行负载均衡, 具体地说, 可以根据数据报文的 L3/4层进行负载 均衡, 也可以根据数据报文的 L7层进行负载均衡。

其中, 在本发明实施例中, L3/4层可以包括 L3层, 或 L4层, 或 L3层 和 L4层。 L3层信息可以包括 OSI网络模型中的网络层的 IP地址信息, L4 层信息可以包括 OSI网络模型中的 TCP/UDP端口信息。 因此, L3/4层信息 可以包括传输该业务的业务服务器的 IP地址、 端口等信息。 L7层信息可以 包括应用层信息, 具体地说, 是数据报文携带的 URL地址。

下面, 首先对均衡处理模块 310用于根据数据报文的 L3/4层信息进行 负载均衡的情况进行说明。

均衡处理模块 310接收到网卡模块 320发送的第一数据报文后,通过对 数据报文的 L3/4层进行解析, 例如, 对数据报文进行 SPI, 从而获取该数据 报文的 L3/4层信息(例如,源 IP地址、目的 IP地址、源端口和目的端口等), 在本发明实施例中, 均衡处理模块 310根据 L3/4层信息进行负载均衡处理 的方法与现有技术相同, 这里, 为避免赘述, 省略其说明。 在本发明实施例 中, 作为该负载均衡处理的结果, 例如, 控制信息可以是指示目的服务器的 服务器信息。 并且, 在本发明实施例中, 均衡处理模块 310可以根据负载均 衡处理的结果, 直接控制发送设备(例如, 可以是该网卡模块 320 )将该第 一数据报文发送给与该负载均衡处理的结果相 对应的目的服务器。 并将该服 务器信息发送给网卡模块 320。

在本发明实施例中, 该服务器信息用于指示该第一数据报文的目的 服务 器的内部网际协议 IP地址和内部端口。

可选地, 在本发明实施例中, 该服务器信息是该负载均衡处理模块 310 根据该第一数据报文的 L3/4层信息确定的, 贝' J

该网卡模块 320具体用于当该第二数据报文的五元组与该第 一数据报文 的五元组相同时, 根据该服务器信息, 向该第一数据报文的目的服务器发送 该第二数据 文, 其中, 该五元组为源 IP地址、 源端口、 目的 IP地址、 目 的端口和传输层协议号。

具体地说, 均衡处理模块 310可以将目的服务器的在服务器集群内部的 内部 IP地址和内部端口下发给网卡模块 320。

其后, 网卡模块 320可以从均衡处理模块 310获取该目的服务器的在服 务器集群内部的内部 IP地址和内部端口。

其后, 网卡模块 320可以接收发送端发送的第二数据报文, 这里, 发送 端可以是上述客户端设备, 也可以是服务器, 本发明并未特别限定, 例如, 在负载均衡器采用 DR式负载均衡或 IP TUN式负载均衡时, 服务器(目的 服务器)返回给客户端设备的报文不通过负载 均衡器, 因此, 该第二数据报 文的发送端为客户端设备; 例如, 在负载均衡器采用 NAT式负载均衡时, 由于服务器(目的服务器)返回给客户端设备 的报文需要通过负载均衡器, 因此, 该第二数据报文的发送端可以为客户端设备, 也可以为服务器(目的 服务器)。 以下, 以负载均衡器采用 NAT式负载均衡的情况为例进行说明。

其后, 网卡模块 320根据从均衡处理模块 310获取的服务器信息, 控制 该第二数据报文的传输。

具体地说, 一方面, 在发送端为客户端设备时, 如果该第二数据报文的 目的 IP地址、 源 IP地址、 目的端口、 源端口以及传输层协议号( TCP连接 或 UDP连接 )与该第一数据报文的目的 IP地址、 源 IP地址、 目的端口、 源 端口以及传输层协议号 ( TCP连接或 UDP连接)相同, 由于负载均衡处理 器基于 L3/4层信息进行负载均衡处理,对于第二数据 文的处理依据即 L3/4 层信息 (包括该第二数据报文的目的 IP地址、 源 IP地址、 目的端口、 源端 口以及传输层协议号)与对于第一数据报文的 处理依据相同,可以确定该第 二数据报文的目的服务器与第一数据报文的目 的服务器相同 (即, 第二数据 报文与第一数据报文属于该客户端设备与该目 的服务器之间的同一次通信 连接)。

从而,网卡模块 320可以将该第二数据报文的目的 IP地址修改为该(第 一数据报文的) 目的服务器的 IP地址, 并将该第二数据报文的目的端口修 改为该 (第一数据报文的) 目的服务器的端口, 以向该 (第一数据报文的) 目的服务器发送该第二数据报文。

可选地, 在本发明实施例中, 该服务器信息包括第一控制信息表项, 该 第一控制信息表项用于指示该第一数据报文的 五元组与该第一数据报文的 目的月良务器的内部 IP地址和内部端口的对应关系。

具体地说, 负载均衡处理模块 310在根据第一数据报文的 L3/4层信息 进行负载均衡处理(对应 DR式负载均衡或 IP TUN式负载均衡) 并确定目 的服务器后, 可以根据该第一数据报文的 L3/4层信息, 仅生成正方向的控 制信息表项。

这里, 正方向是指从客户端设备到服务器的方向, 具体地说, 正方向控 制信息表项可以包括, 例如, 第一数据报文的源 IP地址、 源端口、 目的 IP 地址、 目的端口以及第一数据报文的传输层协议号 (以下, 为了便于说明, 筒称第一五元组)与目的服务器信息 (例如, 包括该目的服务器的 IP地址 和端口) 的对应关系, 从而网卡模块 320可以根据第二数据报文的源 IP地 址、 源端口、 目的 IP地址、 目的端口以及第二数据报文的传输层协议号( 以 下, 为了便于说明, 筒称第二五元组), 查找该控制信息表项, 在该第二五 元组与控制信息表项中记载的第一五元组相同 的情况下, 可以确定, 指示该 第二数据报文的目的服务器的目的服务器信息 为与该第一五元组相对应的 服务器信息。 从而, 网卡模块 320可以将该第二数据报文的目的 IP地址修 改为该 (与第一五元组相对应的控制信息指示的) 目的服务器的 IP地址, 并将该第二数据报文的目的端口修改为该(与 第一五元组相对应的控制信息 指示的) 目的服务器的端口, 能够向该(与第一五元组相对应的控制信息指 示的) 目的服务器发送该第二数据报文。

可选地, 在本发明实施例中, 该服务器信息还用于指示该第一数据报文 的目的服务器的外部 IP地址和外部端口, 则

该网卡模块具体用于当该第二数据报文的源 IP地址与该目的服务器的 内部 IP地址相同, 且该第二数据报文的源端口与该目的服务器的 内部端口 信息相同, 且该第二数据报文的目的 IP地址与该第一数据报文的源 IP地址 相同, 且该第二数据报文的目的端口与该第一数据报 文的源端口相同, 且该 第二数据报文的传输层协议号与该第一数据报 文的传输层协议号相同时, 根据该第一数据报文的目的服务器的外部 IP地址和外部端口, 发送该第二 数据报文。

具体地说, 在发送端为服务器时(对应 NAT式负载均衡), 如果该第二 数据报文的目的 IP地址与第一数据报文的源 IP地址相同, 该第二数据报文 的源 IP地址与处理器在对第一数据进行均衡处理后 定的目的服务器的内 部 IP地址相同, 该第二数据报文的目的端口与第一数据报文的 源 IP地址相 同, 该第二数据报文的源端口与处理器在对第一数 据进行均衡处理后确定的 目的服务器的内部端口相同,以及第二数据报 文传输层协议号与该第一数据 报文的传输层协议号相同, 由于负载均衡处理器基于 L3/4层信息进行负载 均衡处理, 可以确定该第二数据报文是目的服务器生成的 与该第一数据报文 相对应的响应数据报文(即, 第二数据报文与第一数据报文属于该客户端设 备与该目的服务器之间的同一次通信连接)。

从而, 网卡模块 320可以将该第二数据报文的源 IP地址修改为该第一 数据报文的目的服务器的外部 IP地址的目的 IP地址(与第一数据报文的目 的 IP相同 ), 并将该第二数据报文的源端口修改为该第一数 据报文的目的服 务器的外部端口 (与第一数据报文的目的端口相同), 从而能够向该 (发送 第一数据报文的 )客户端设备发送该第二数据报文。

可选地, 在本发明实施例中, 该服务器信息包括第一控制信息表项, 该 第一控制信息表项用于指示该第一数据报文的 五元组与该第一数据报文的 目的月良务器的内部 IP地址和内部端口的对应关系。

并且, 该服务器信息包括第二控制信息表项, 该第二控制信息表项用于 指示该第一数据报文的目的服务器的内部 IP地址、 该第一数据报文的目的 服务器的内部端口、 该第一数据报文的源 IP地址、 该第一数据报文的源端 口以及该第一数据报文的传输层协议号与该第 一数据报文的目的服务器的 外部 IP地址和外部端口的对应关系。

具体地说, 负载均衡处理模块 310在根据第一数据报文的 L3/4层信息 进行负载均衡处理(NAT式负载均衡)并确定目 的服务器后, 可以根据该第 一数据报文的 L3/4层信息, 生成正反两个方向的控制信息表项。

这里, 正方向是指从客户端设备到服务器的方向, 具体地说, 正方向控 制信息表项可以包括, 例如, 第一数据报文的源 IP地址、 源端口、 目的 IP 地址、 目的端口以及第一数据报文的传输层协议号 (以下, 为了便于说明, 筒称第一五元组)与目的服务器信息 (例如, 包括该目的服务器的 IP地址 和端口) 的对应关系, 从而网卡模块 320可以根据第二数据报文的源 IP地 址、 源端口、 目的 IP地址、 目的端口以及第二数据报文的传输层协议号( 以 下, 为了便于说明, 筒称第二五元组), 查找该控制信息表项, 在该第二五 元组与控制信息表项中记载的第一五元组相同 的情况下, 可以确定, 指示该 第二数据报文的目的服务器的目的服务器信息 为与该第一五元组相对应的 服务器信息。 从而, 网卡模块 320可以将该第二数据报文的目的 IP地址修 改为该 (与第一五元组相对应的控制信息指示的) 目的服务器的 IP地址, 并将该第二数据报文的目的端口修改为该(与 第一五元组相对应的控制信息 指示的) 目的服务器的端口, 能够向该(与第一五元组相对应的控制信息指 示的) 目的服务器发送该第二数据报文。

这里, 反方向是指从服务器到客户端设备的方向, 具体地说, 反方向控 制信息表项可以包括, 例如, 目的服务器的内部 IP地址、 目的服务器的内 部端口、 第一数据报文的源 IP地址、 第一数据报文的源端口以及第一数据 报文的传输层协议号(以下, 为了便于说明, 筒称第三五元组)与第一数据 报文的目的 IP地址(与目的服务器的外部 IP地址相同)、第一数据报文的目 的端口 (与目的服务器的外部端口相同)的对应关系 , 从而网卡模块 320可 以根据第二数据 4艮文的源 IP地址、 源端口、 目的 IP地址、 目的端口以及第 二数据报文的传输层协议号 (上述第二五元组), 查找该控制信息表项, 在 该第二五元组与控制信息表项中记载的第三五 元组相同的情况下, 可以确 定,发送该第二数据报文的服务器为与该第一 元组相对应的第一数据报文 的目的服务器。 从而, 网卡模块 320可以将该第二数据报文的源 IP地址修 改为该控制信息表项指示的与第三五元组相对 应的第一数据报文的目的 IP 地址(与目的服务器的外部 IP地址相同), 并将该第二数据报文的目的端口 修改为该控制信息表项指示的与第一五元组相 对应的第一数据报文的目的 端口 (与目的服务器的外部端口相同), 从而能够向该 (发送第一数据报文 的)客户端设备发送该第二数据报文。 以下,省略对相同或相似情况的说明。

可选地, 在本发明实施例中, 该网卡模块 320还用于在接收到该第一控 制信息表项后, 启动定时器, 并确定在该定时器超时之前未接收到该第二数 据报文; 或

用于确定在该客户端设备和该第一数据报文的 目的服务器之间建立的 用于传输该第一数据报文的通信连接结束;

用于删除该第一控制信息表项。

并且, 该网卡模块 320还用于在接收到该第二控制信息表项后, 启动定 时器, 并确定在该定时器超时之前未接收到该第二数 据报文; 或

用于确定在该客户端设备和该第一数据报文的 目的服务器之间建立的 用于传输该第一数据报文的通信连接结束;

用于删除该第二控制信息表项。

具体地说, 网卡模块 320在从负载均衡处理模块 310获取控制信息表项 (包括第一控制信息表项和第二控制信息表项 后, 在长时间 (定时器超时 后, 例如, 30分钟)未接收到能够根据该控制信息表项包 的控制信息进行 传输的数据报文(例如, 上述第二数据报文), 可以认为第一数据报文所属 通信连接已结束, 从而可以删除该控制信息表项(包括第一控制 信息表项和 第二控制信息表项)。

并且, 网卡模块 320在从负载均衡处理模块 310获取控制信息表项(包 括第一控制信息表项和第二控制信息表项 )后, 检测到指示通信连接结束的 数据报文后, 可以认为第一数据报文所属通信连接已结束, 从而可以删除该 控制信息表项 (包括第一控制信息表项和第二控制信息表项 )。 以下, 省略 对相同或相似情况的说明。

以上列举了根据第二数据报文的源 IP地址、 源端口、 目的 IP地址、 目 的端口以及第二数据报文的传输层协议号,确 定能够根据该控制信息控制该 第二数据报文的传输, 应理解, 本发明并不限定于此, 其他判定是否能够根 据该控制信息控制该第二数据报文的传输的方 法(例如, 确定第一数据报文 与第二数据报文属于同一客户端设备与同一服 务器之间的同一次通信连接 的方法), 均落入本发明的保护范围内。

下面, 对处理器用于根据数据报文的 L7层信息, 或者, L3/4层信息和 L7层信息进行负载均衡的情况进行说明。

负载均衡处理模块 310接收到网卡模块 320发送的第一数据报文后,通 过对数据报文的 L3/4层进行解析, 例如, 对数据报文进行 SPI, 从而获取该 数据 文的 L3/4层信息(例如, 源 IP地址、 目的 IP地址、 源端口和目的端 口等), 并且, 通过对数据报文的 L7 层进行解析, 例如, 对数据报文进行 DPI, 从而获取该数据报文的 L7层信息 (例如, 该数据报文的 URL等)。

在本发明实施例中, 可能存在第一数据报文的 L7层信息为空 (即, 不 存在 URL等) 的情况, 此时, 负载均衡处理模块 310仅根据 L3/4层信息进 行负载均衡处理, 并且该根据 L3/4层信息进行负载均衡处理的方法与现有 技术相同, 这里, 为避免赘述, 省略其说明。

并且, 在第一数据报文的 L7层信息不为空(即, 存在 URL等)的情况 下, 负载均衡处理模块 310可以根据 L7层信息进行负载均衡处理, 并且该 根据 L7层信息进行负载均衡处理的方法与现有技术 同, 这里, 为避免赘 述, 省略其说明。

在本发明实施例中, 控制信息作为该负载均衡处理的结果, 例如, 可以 包括指示目的服务器的服务器信息, 以及指示网卡模块 320需要对后续数据 报文(主要是客户端设备发送给服务器的数据 报文)进行 L7 层解析的 L7 层解析指示标识。 并且, 在本发明实施例中, 负载均衡处理模块 310可以根 据负载均衡处理的结果, 直接控制发送设备(例如, 可以是该网卡模块 320 ) 将该第一数据报文发送给与该负载均衡处理的 结果相对应的目的服务器。 并 将该控制信息发送给网卡模块 320。

在本发明实施例中, 该服务器信息用于指示该第一数据报文的目的 服务 器的内部网际协议 IP地址和内部端口。

可选地, 在本发明实施例中, 该服务器信息是该负载均衡处理模块根据 该第一数据报文的 L3/4层信息和 L7层信息确定的, 或

该服务器信息是该负载均衡处理模块根据该第 一数据报文的 L7层信息 确定的, 该控制信息还包括 L7层解析指示标识, 贝' J

该网卡模块具体用于当该第二数据报文的五元 组与该第一数据报文的 五元组相同时,根据该 L7层解析指示标识,对该第二数据报文进行 L7层信 息解析, 以获取用于指示该第二数据报文的目的服务器 的统一资源定位器

URL地址的 URL信息, 其中, 该五元组为源 IP地址、 源端口、 目的 IP地 址、 目的端口和传输层协议号;

如果该 URL信息不为空, 则向该负载均衡处理器发送该第二数据报文 和该 URL信息, 以便于该负载均衡处理器根据该 URL信息, 确定该第二数 据报文的目的服务器, 并向该第二数据报文的目的服务器发送该第二 数据报 文; 或

如果该 URL信息为空, 则根据该服务器信息, 向该第一数据报文的目 的服务器发送该第二数据报文。

具体地说负载均衡处理模块 310可以将目的服务器的在服务器集群内部 的内部 IP地址和内部端口下发给网卡模块 320。

网卡模块 320可以从负载均衡处理模块 310获取该目的服务器的在服务 器集群内部的内部 IP地址、 内部端口以及 L7层解析指示标识, 并且, 负载 均衡处理模块 310可以为该目的服务器的 IP地址、端口以及 L7层解析指示 标识。

网卡模块 320可以接收发送端发送的第二数据报文, 这里, 发送端可以 是上述客户端设备, 也可以是服务器, 本发明并未特别限定, 例如, 在负载 均衡器采用 DR式负载均衡或 IP TUN式负载均衡时, 服务器(目的服务器 ) 返回给客户端设备的报文不通过负载均衡器, 因此, 该第二数据报文的发送 端为客户端设备; 例如, 在负载均衡器采用 NAT式负载均衡时, 由于服务 器(目的服务器)返回给客户端设备的报文需 要通过负载均衡器, 因此, 该 第二数据报文的发送端可以为客户端设备, 也可以为服务器(目的服务器)。 以下, 以负载均衡器采用 NAT式负载均衡的情况为例进行说明。

网卡模块 320根据从负载均衡处理模块 310获取的服务器信息,发送该 第二数据报文的传输。

具体地说, 一方面, 在发送端为客户端设备时, 如果该第二数据报文的 目的 IP地址、 源 IP地址、 目的端口、 源端口以及传输层协议号(TCP连接 或 UDP连接 )与该第一数据报文的目的 IP地址、 源 IP地址、 目的端口、 源 端口以及传输层协议号 ( TCP连接或 UDP连接)相同, 由于负载均衡处理 模块 310基于 L3/4层信息进行负载均衡处理, 对于第二数据报文的处理依 据即 L3/4层信息(包括该第二数据报文的目的 IP地址、 源 IP地址、 目的端 口、 源端口以及传输层协议号)与对于第一数据报 文的处理依据相同, 网卡 模块 320可以确定该第二数据报文的目的服务器与第 一数据报文的目的服务 器相同 (即, 第二数据报文与第一数据报文属于该客户端设 备与该目的服务 器之间的同一次通信连接)。

其后, 网卡模块 320可以根据 L7层解析指示标识, 获取第二数据报文 的 L7层信息, 即, 第二数据报文的 URL地址。

如果网卡模块 320能够获取第二数据报文的 URL地址, 则向负载均衡 处理模块 310发送该第二数据报文以及该 URL地址, 从而, 负载均衡处理 模块 310无需对该第二数据报文进行 L7层解析,可以直接根据该 URL地址 进行负载均衡处理, 在本发明实施例中, 由于解析 URL的过程由网卡模块 320进行, 即通过硬件解析, 与通过负载均衡处理模块 310利用软件解析的 方式相比, 提高了解析速度, 并降低了对负载均衡处理模块 310的负担。 负 载均衡处理模块 310在根据 URL确定该第二数据报文的目的服务器后 (可 能与第一数据报文的目的服务器相同,也可能 与第一数据报文的目的服务器 相异), 可以通过发送设备(例如, 该网关设备), 发送该第二数据报文。。

另外, 如果网卡模块 320不能获取第二数据报文的 URL地址(第二数 据报文的 L7层信息为空 ),则可以根据该服务器信息,发送该第二数据 文。

可选地, 在本发明实施例中, 该服务器信息包括第一控制信息表项, 该 第一控制信息表项用于指示该第一数据报文的 五元组与该第一数据报文的 目的月良务器的内部 IP地址和内部端口的对应关系。

具体地说, 负载均衡处理模块 310在根据第一数据报文的 L7层信息进 行负载均衡处理(对应 DR式负载均衡或 IP TUN式负载均衡)并确定目的 服务器后, 可以根据该第一数据报文的 L3/4层信息, 仅生成上述正方向的 控制信息表项。

可选地, 在本发明实施例中, 该服务器信息还用于指示该第一数据报文 的目的服务器的外部 IP地址和外部端口, 则

该网卡模块具体用于当该第二数据报文的源 IP地址与该目的服务器的 内部 IP地址相同, 且该第二数据报文的源端口与该目的服务器的 内部端口 信息相同, 且该第二数据报文的目的 IP地址与该第一数据报文的源 IP地址 相同, 且该第二数据报文的目的端口与该第一数据报 文的源端口相同, 且该 第二数据报文的传输层协议号与该第一数据报 文的传输层协议号相同时, 根据该第一数据报文的目的服务器的外部 IP地址和外部端口, 发送该第二 数据报文。

具体地说, 在发送端为服务器时(对应 NAT式负载均衡), 如果该第二 数据报文的目的 IP地址与第一数据报文的源 IP地址相同, 该第二数据报文 的源 IP地址与负载均衡处理模块 310在对第一数据进行均衡处理后确定的 目的服务器的内部 IP地址相同, 该第二数据报文的目的端口与第一数据报 文的源 IP地址相同, 该第二数据报文的源端口与负载均衡处理模块 310在 对第一数据进行均衡处理后确定的目的服务器 的内部端口相同, 以及第二数 据报文传输层协议号与该第一数据报文的传输 层协议号相同, 由于负载均 衡处理模块 310基于 L3/4层信息进行负载均衡处理, 可以确定该第二数据 报文是目的服务器生成的与该第一数据报文相 对应的响应数据报文(即, 第 二数据报文与第一数据报文属于该客户端设备 与该目的服务器之间的同一 次通信连接)。

从而, 网卡模块 320可以将该第二数据报文的源 IP地址修改为该第一 数据报文的目的服务器的外部 IP地址的目的 IP地址(与第一数据报文的目 的 IP相同 ), 并将该第二数据报文的源端口修改为该第一数 据报文的目的服 务器的外部端口 (与第一数据报文的目的端口相同), 从而能够向该 (发送 第一数据报文的)客户端设备发送该第二数据 报文。

可选地, 在本发明实施例中, 该服务器信息包括第一控制信息表项, 该 第一控制信息表项用于指示该第一数据报文的 五元组与该第一数据报文的 目的月良务器的内部 IP地址和内部端口的对应关系。

并且, 该服务器信息包括第二控制信息表项, 该第二控制信息表项用于 指示该第一数据报文的目的服务器的内部 IP地址、 该第一数据报文的目的 服务器的内部端口、 该第一数据报文的源 IP地址、 该第一数据报文的源端 口以及该第一数据报文的传输层协议号与该第 一数据报文的目的服务器的 外部 IP地址和外部端口的对应关系。

具体地说, 负载均衡处理模块 310在根据第一数据报文的 L3/4层信息 进行负载均衡处理(NAT式负载均衡)并确定目 的服务器后, 可以根据该第 一数据报文的 L3/4层信息, 生成上述正反两个方向的控制信息表项。

可选地, 如上所述, 在本发明实施例中, 该网卡模块 320还用于在接收 到该第一控制信息表项后, 启动定时器, 并确定在该定时器超时之前未接收 到该第二数据报文; 或

用于确定在该客户端设备和该第一数据报文的 目的服务器之间建立的 用于传输该第一数据报文的通信连接结束;

用于删除该第一控制信息表项。

并且, 该网卡模块 320还用于在接收到该第二控制信息表项后, 启动定 时器, 并确定在该定时器超时之前未接收到该第二数 据报文; 或

用于确定在该客户端设备和该第一数据报文的 目的服务器之间建立的 用于传输该第一数据报文的通信连接结束;

用于删除该第二控制信息表项。

应理解, 在以上实施例中, 已对负载均衡器采用 NAT式负载均衡的实 施例进行了说明, 但本发明并不在于此, 例如, 负载均衡器还可以采用 DR 式负载均衡或 IP TUN式负载均衡, 此时, 服务器(目的服务器)返回给客 户端设备的报文不通过负载均衡器, 因此, 该第二数据报文的发送端为客户 端设备。 统 300中的各单元和上述其他操作和 /或功能分别为了实现图 1中的方法 100 的相应流程。

根据本发明实施例的控制数据传输的装置,通 过负载均衡处理器根据第 一数据报文确定控制信息, 并向网卡设备下发该控制信息, 网卡设备在接收 到第二数据报文并确定能够根据该控制信息传 输该第二数据报文后, 可以根 据该控制信息直接向目的服务器发送该第二数 据报文, 或者, 可以获取该第 二数据报文中 URL信息并通知负载均衡处理器以使负载均衡处 理器无需对 第二数据报文进行解析,从而,减少负载均衡 处理器的处理,提高访问速度, 减小负载均衡处理器的负担。

应理解, 本文中术语 "和 /或", 仅仅是一种描述关联对象的关联关系, 表示可以存在三种关系, 例如, A和 /或 B, 可以表示: 单独存在 A, 同时存 在 A和 B, 单独存在 B这三种情况。 另外, 本文中字符 "/" , 一般表示前后 关联对象是一种 "或" 的关系。

应理解, 在本发明的各种实施例中, 上述各过程的序号的大小并不意味 着执行顺序的先后, 各过程的执行顺序应以其功能和内在逻辑确定 , 而不应 对本发明实施例的实施过程构成任何限定。 本领域普通技术人员可以意识到, 结合本文中所公开的实施例描述的各 示例的单元及算法步骤, 能够以电子硬件、 或者计算机软件和电子硬件的结 合来实现。 这些功能究竟以硬件还是软件方式来执行, 取决于技术方案的特 定应用和设计约束条件。 专业技术人员可以对每个特定的应用来使用不 同方 法来实现所描述的功能, 但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到, 为描述的方便和筒洁, 上述描 述的系统、 装置和单元的具体工作过程, 可以参考前述方法实施例中的对应 过程, 在此不再赘述。

在本申请所提供的几个实施例中, 应该理解到, 所揭露的系统、 装置和 方法, 可以通过其它的方式实现。 例如, 以上所描述的装置实施例仅仅是示 意性的, 例如, 所述单元的划分, 仅仅为一种逻辑功能划分, 实际实现时可 以有另外的划分方式, 例如多个单元或组件可以结合或者可以集成到 另一个 系统, 或一些特征可以忽略, 或不执行。 另一点, 所显示或讨论的相互之间 的耦合或直接耦合或通信连接可以是通过一些 接口, 装置或单元的间接耦合 或通信连接, 可以是电性, 机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可 以不是物理上分开的,作 为单元显示的部件可以是或者也可以不是物理 单元, 即可以位于一个地方, 或者也可以分布到多个网络单元上。可以根据 实际的需要选择其中的部分或 者全部单元来实现本实施例方案的目的。

另外, 在本发明各个实施例中的各功能单元可以集成 在一个处理单元 中, 也可以是各个单元单独物理存在, 也可以两个或两个以上单元集成在一 个单元中。

所述功能如果以软件功能单元的形式实现并作 为独立的产品销售或使 用时, 可以存储在一个计算机可读取存储介质中。 基于这样的理解, 本发明 的技术方案本质上或者说对现有技术做出贡献 的部分或者该技术方案的部 分可以以软件产品的形式体现出来,该计算机 软件产品存储在一个存储介质 中, 包括若干指令用以使得一台计算机设备(可以 是个人计算机, 服务器, 或者网络设备等)执行本发明各个实施例所述 方法的全部或部分步骤。 而前 述的存储介质包括: U盘、移动硬盘、只读存储器( ROM, Read-Only Memory )、 随机存取存储器(RAM, Random Access Memory ), 磁碟或者光盘等各种可 以存储程序代码的介质。 以上所述, 仅为本发明的具体实施方式, 但本发明的保护范围并不局限 于此, 任何熟悉本技术领域的技术人员在本发明揭露 的技术范围内, 可轻易 想到变化或替换, 都应涵盖在本发明的保护范围之内。 因此, 本发明的保护 范围应以所述权利要求的保护范围为准。