Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
MESSAGE TRAFFIC CONTROL METHOD AND RELATED DEVICE, AND CALCULATION NODE
Document Type and Number:
WIPO Patent Application WO/2015/101000
Kind Code:
A1
Abstract:
A message traffic control method and a related device, and a calculation node. The message traffic control method may comprise: based on the traffic control capability of a virtual machine, negotiating an executing party of a traffic control policy between the virtual machine and a host (Host); if it is determined and negotiated that the executing party of the traffic control policy is the virtual machine, conducting, by the virtual machine, forwarding processing on a message to be forwarded based on the traffic control policy; and if it is determined and negotiated that the executing party of the traffic control policy is the Host, sending, by the virtual machine, a message to be forwarded to the Host, so that the Host conducts forwarding processing on the received message based on the traffic control policy. The technical solution provided in the embodiments of the present invention is beneficial for reducing the Host address space occupied when the message traffic of a virtual machine in the outgoing direction is processed.

Inventors:
WANG FUHAI (CN)
HE GUANSEN (CN)
Application Number:
PCT/CN2014/081642
Publication Date:
July 09, 2015
Filing Date:
July 04, 2014
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECH CO LTD (CN)
International Classes:
H04L47/20
Domestic Patent References:
WO2013191972A12013-12-27
Foreign References:
CN103763403A2014-04-30
CN102413183A2012-04-11
CN103176833A2013-06-26
JP2013126062A2013-06-24
Other References:
See also references of EP 2905948A4
Attorney, Agent or Firm:
SHENPAT INTELLECTUAL PROPERTY AGENCY (CN)
深圳市深佳知识产权代理事务所(普通合伙) (CN)
Download PDF:
Claims:
权 利 要 求

1、 一种报文流量控制方法, 其特征在于, 包括:

基于虚拟机的流量控制能力在所述虚拟机与宿主机 Host之间协商流量控 制策略的执行方;

若确定协商出的流量控制策略执行方为所述虚拟机,则所述虚拟机基于所 述流量控制策略对待转发处理的报文进行转发处理;

若确定协商出的流量控制策略的执行方为所述 Host,则所述虚拟机将待转 发处理的报文发送给所述 Host, 以便于所述 Host基于所述流量控制策略对接收 到的所述报文进行转发处理。

2、 根据权利要求 1所述的方法, 其特征在于,

所述基于所述虚拟机的流量控制能力在所述虚拟机与宿主机 Host之间协 商流量控制策略的执行方, 包括:

虚拟机向 Host发送携带所述虚拟机的流量控制能力的描述信息的执行方 协商请求;

所述虚拟机若接收到所述 Host在根据所述流量控制能力的描述信息确定 所述虚拟机支持执行流量控制策略之后发送的协商确认指示,则所述虚拟机确 定协商出的流量控制策略执行方为所述虚拟机;

所述虚拟机若接收到所述 Host在根据所述流量控制能力的描述信息确定 所述虚拟机不支持执行流量控制策略之后发送的协商否认指示,则所述虚拟机 确定协商出的流量控制策略执行方为所述 Host;

或者,

所述基于所述虚拟机的流量控制能力在所述虚拟机与宿主机 Host之间协 商流量控制策略的执行方, 包括:

虚拟机向 Host发送携带所述虚拟机的流量控制能力的描述信息的执行方 协商请求, 其中, 所述流量控制能力的描述信息用于描述出所述虚拟机支持执 行的流量控制策略的版本;

所述虚拟机若接收到所述 Host在根据所述流量控制能力的描述信息确定 所述虚拟机支持执行当前最新版本或者预设版本的流量控制策略之后发送的 协商确认指示, 则所述虚拟机确定协商出的流量控制策略执行方为所述虚拟 机;

所述虚拟机若接收到所述 Host在根据所述流量控制能力的描述信息确定 所述虚拟机不支持执行当前最新版本或者预设版本的流量控制策略之后发送 的协商否认指示, 则所述虚拟机确定协商出的流量控制策略执行方为所述 Host;

或者,

所述基于所述虚拟机的流量控制能力在所述虚拟机与宿主机 Host之间协 商流量控制策略的执行方, 包括:

虚拟机向 Host发送携带所述虚拟机的流量控制能力的描述信息的执行方 协商请求;

所述虚拟机若接收到所述 Host在根据所述流量控制能力的描述信息确定 所述虚拟机支持执行流量控制策略之后发送的协商确认指示,则所述虚拟机确 定协商出的流量控制策略执行方为所述虚拟机;

所述虚拟机若在第一设定时长内未接收到所述 Host发送的用于响应所述 执行方协商请求的协商确认指示,则所述虚拟机确定协商出的流量控制策略执 行方为所述 Host;

或者,

所述基于所述虚拟机的流量控制能力在所述虚拟机与宿主机 Host之间协 商流量控制策略的执行方, 包括:

虚拟机向 Host发送携带所述虚拟机的流量控制能力的描述信息的执行方 协商请求, 其中, 所述流量控制能力的描述信息用于描述出所述虚拟机支持执 行的流量控制策略的版本;

所述虚拟机若接收到所述 Host在根据所述流量控制能力的描述信息确定 所述虚拟机支持执行当前最新版本或者预设版本的流量控制策略之后发送的 协商确认指示, 则所述虚拟机确定协商出的流量控制策略执行方为所述虚拟 机;

所述虚拟机若在第一设定时长内未接收到所述 Host发送的用于响应所述 执行方协商请求的协商确认指示,则所述虚拟机确定协商出的流量控制策略执 行方为所述 Host; 或者,

所述基于所述虚拟机的流量控制能力在所述虚拟机与宿主机 Host之间协 商流量控制策略的执行方, 包括:

虚拟机向 Host发送携带所述虚拟机的流量控制能力的描述信息的执行方 协商请求;

所述虚拟机若接收到所述 Host在根据所述流量控制能力的描述信息确定 所述虚拟机不支持执行流量控制策略之后发送的协商否认指示,则所述虚拟机 确定协商出的流量控制策略执行方为所述 Host;

所述虚拟机在第二设定时长内未接收到所述 Host发送的用于响应所述执 行方协商请求的协商否认指示,则所述虚拟机确定协商出的流量控制策略执行 方为所述虚拟机;

或者,

所述基于所述虚拟机的流量控制能力在所述虚拟机与宿主机 Host之间协 商流量控制策略的执行方, 包括:

虚拟机向 Host发送携带所述虚拟机的流量控制能力的描述信息的执行方 协商请求, 其中, 所述流量控制能力的描述信息用于描述出所述虚拟机支持执 行的流量控制策略的版本;

所述虚拟机若接收到所述 Host在根据所述流量控制能力的描述信息确定 所述虚拟机支持执行当前最新版本或者预设版本的流量控制策略之后发送的 协商否认指示, 则所述虚拟机确定协商出的流量控制策略执行方为所述 Host; 所述虚拟机若在第二设定时长内未接收到所述 Host发送的用于响应所述 执行方协商请求的协商否认指示,则所述虚拟机确定协商出的流量控制策略执 行方为所述虚拟机。

3、根据权利要求 2所述的方法, 其特征在于, 所述协商确认指示中包含所 述流量控制策略;

其中,所述虚拟机基于所述流量控制策略对待转发处理的报文进行转发处 理包括:所述虚拟机基于所述协商确认指示中包含的流量控制策略对待转发处 理的报文进行转发处理。

4、 根据权利要求 2或 3所述的方法, 其特征在于, 所述虚拟机向 Host发送携带所述虚拟机的流量控制能力的描述信息的执 行方协商请求包括:

虚拟机在接收到用户态进程发起的协商启动请求之后,向 Host发送携带所 述虚拟机的流量控制能力的描述信息的执行方协商请求; 或者,虚拟机在接收 到来自所述 Host的协商启动请求之后, 向所述 Host发送携带所述虚拟机的流量 控制能力的描述信息的执行方协商请求。

5、 根据权利要求 1至 4任一项所述的方法, 其特征在于, 所述基于所述虚 拟机的流量控制能力在所述虚拟机与宿主机 Host之间协商流量控制策略的执 行方包括:部署于虚拟机中的预载客户端与部署于 Host中的预载服务端之间的 连接建立完成之后,所述预载客户端基于建立的所述连接与所述预载服务端基 于所述虚拟机的流量控制能力在上述虚拟机与 Host之间协商流量控制策略的 执行方。

6、 根据权利要求 5所述的方法, 其特征在于,

所述方法还包括:

在确定协商出的流量控制策略执行方为所述虚拟机之后,所述预载客户端 基于所述连接周期性的向所述预载服务端发送心跳消息。

7、 根据权利要求 1至 6任一项所述的方法, 其特征在于,

所述流量控制策略为基于服务质量的流量控制策略和 /或基于访问控制列 表的流量控制策略。

8、 一种报文流量控制方法, 其特征在于, 包括:

基于虚拟机的流量控制能力在所述虚拟机与宿主机 Host之间协商流量控 制策略的执行方;

若确定协商出的流量控制策略执行方为所述 Host, 所述 Host在接收到来自 所述虚拟机的报文之后,基于所述流量控制策略对接收到的所述报文进行转发 处理。

9、 根据权利要求 8所述的方法, 其特征在于,

基于所述虚拟机的流量控制能力在所述虚拟机与宿主机 Host之间协商流 量控制策略的执行方, 包括:

Host接收虚拟机发送的携带所述虚拟机的流量控制能力的描述信息的执 行方协商请求;

若所述 Host根据所述流量控制能力的描述信息确定所述虚拟机支持执行 流量控制策略, 则向所述虚拟机发送协商确认指示, 所述协商确认指示用于表 示协商出的流量控制策略执行方为所述虚拟机;

若所述 Host根据所述流量控制能力的描述信息确定所述虚拟机不支持执 行流量控制策略, 则向所述虚拟机发送协商否认指示, 所述协商否认指示用于 表示协商出的流量控制策略执行方为所述 Host;

或者,

基于所述虚拟机的流量控制能力在所述虚拟机与宿主机 Host之间协商流 量控制策略的执行方, 包括:

Host接收虚拟机发送的携带所述虚拟机的流量控制能力的描述信息的执 行方协商请求, 其中, 所述流量控制能力的描述信息用于描述出所述虚拟机支 持执行的流量控制策略的版本;

若所述 Host根据所述流量控制能力的描述信息确定所述虚拟机支持执行 当前最新版本或者预设版本的流量控制策略,则向所述虚拟机发送协商确认指 示, 其中, 所述协商确认指示用于表示协商出的流量控制策略执行方为所述虚 拟机;

若所述 Host根据所述流量控制能力的描述信息确定所述虚拟机不支持执 行当前最新版本或者预设版本的流量控制策略,则向所述虚拟机发送协商否认 指示, 其中, 所述协商否认指示用于表示协商出的流量控制策略执行方为所述 Host。

10、 根据权利要求 8或 9所述的方法, 其特征在于,

所述基于所述虚拟机的流量控制能力在所述虚拟机与宿主机 Host之间协 商流量控制策略的执行方, 包括: 在 Host中的预载服务端与虚拟机中的预载客 户端之间的连接建立完成之后,所述预载服务端通过所述连接与所述预载客户 端基于所述虚拟机的流量控制能力,在所述虚拟机与宿主机 Host之间协商流量 控制策略的执行方。

11、 根据权利要求 8至 10任一项所述的方法, 其特征在于,

所述方法还包括: 在确定协商出的流量控制策略的执行方为所述虚拟机之后,若在设定时长 内未接收到来自所述虚拟机的心跳消息,则所述 Host向所述虚拟机发送用于指 示流量控制策略的执行方切换为所述 Host的指示消息。

12、 根据权利要求 8至 11任一项所述的方法, 其特征在于,

所述流量控制策略为基于服务质量的流量控制策略和 /或基于访问控制列 表的流量控制策略。

13、 一种虚拟机, 其特征在于, 包括:

第一协商单元,用于基于所述虚拟机的流量控制能力在所述虚拟机与宿主 机 Host之间协商流量控制策略的执行方;

报文处理单元, 用于若确定协商出的流量控制策略的执行方为所述虚拟 机, 则基于所述流量控制策略对待转发处理的报文进行转发处理; 若确定协商 出的流量控制策略的执行方为所述 Host, 则将待转发处理的报文发送给所述 Host, 以便于所述 Host基于所述流量控制策略对接收到的所述报文进行转发处 理。

14、 根据权利要求 13所述的虚拟机, 其特征在于,

所述第一协商单元具体用于,向 Host发送携带所述虚拟机的流量控制能力 的描述信息的执行方协商请求,若接收到所述 Host在根据所述流量控制能力的 描述信息确定所述虚拟机支持执行流量控制策略之后发送的协商确认指示,则 确定协商出的流量控制策略执行方为所述虚拟机;若接收到所述 Host在根据所 述流量控制能力的描述信息确定所述虚拟机不支持执行流量控制策略之后发 送的协商否认指示, 则确定协商出的流量控制策略执行方为所述 Host;

或者,

所述第一协商单元具体用于,向 Host发送携带所述虚拟机的流量控制能力 的描述信息的执行方协商请求, 其中, 所述流量控制能力的描述信息用于描述 出所述虚拟机支持执行的流量控制策略的版本,若接收到所述 Host在根据所述 流量控制能力的描述信息确定所述虚拟机支持执行当前最新版本或者预设版 本的流量控制策略之后发送的协商确认指示,则确定协商出的流量控制策略执 行方为所述虚拟机;若接收到所述 Host在根据所述流量控制能力的描述信息确 定所述虚拟机不支持执行当前最新版本或者预设版本的流量控制策略之后发 送的协商否认指示, 则确定协商出的流量控制策略执行方为所述 Host;

或者,

所述第一协商单元具体用于,向 Host发送携带所述虚拟机的流量控制能力 的描述信息的执行方协商请求,若接收到所述 Host在根据所述流量控制能力的 描述信息确定所述虚拟机支持执行流量控制策略之后发送的协商确认指示,则 确定协商出的流量控制策略执行方为所述虚拟机;若在第一设定时长内未接收 到所述 Host发送的用于响应所述执行方协商请求的协商确认指示,则确定协商 出的流量控制策略执行方为所述 Host;

或者,

所述第一协商单元具体用于,向 Host发送携带所述虚拟机的流量控制能力 的描述信息的执行方协商请求, 其中, 所述流量控制能力的描述信息用于描述 出所述虚拟机支持执行的流量控制策略的版本,若接收到所述 Host在根据所述 流量控制能力的描述信息确定所述虚拟机支持执行当前最新版本或者预设版 本的流量控制策略之后发送的协商确认指示,则确定协商出的流量控制策略执 行方为所述虚拟机;若在第一设定时长之内未接收到所述 Host发送的用于响应 所述执行方协商请求的协商确认指示,则确定协商出的流量控制策略执行方为 所述 Host;

或者,

所述第一协商单元具体用于,向 Host发送携带所述虚拟机的流量控制能力 的描述信息的执行方协商请求,若接收到所述 Host在根据所述流量控制能力的 描述信息确定所述虚拟机不支持执行流量控制策略之后发送的协商否认指示, 则确定协商出的流量控制策略执行方为所述 Host;若在第二设定时长内未接收 到所述 Host发送的用于响应所述执行方协商请求的协商否认指示,则确定协商 出的流量控制策略执行方为所述虚拟机;

或者,

所述第一协商单元具体用于,向 Host发送携带所述虚拟机的流量控制能力 的描述信息的执行方协商请求, 其中, 所述流量控制能力的描述信息用于描述 出所述虚拟机支持执行的流量控制策略的版本,若接收到所述 Host在根据所述 流量控制能力的描述信息确定所述虚拟机支持执行当前最新版本或者预设版 本的流量控制策略之后发送的协商否认指示,则确定协商出的流量控制策略执 行方为所述 Host; 若在第二设定时长之内未接收到所述 Host发送的用于响应所 述执行方协商请求的协商否认指示,则确定协商出的流量控制策略执行方为所 述虚拟机。

15、 根据权利要求 13至 14任一项所述的虚拟机, 其特征在于,

所述虚拟机还包括: 发送单元, 用于在确定协商出的流量控制策略的执行 方为所述虚拟机之后, 周期性的向所述 Host发送心跳消息。

16、 根据权利要求 13至 15任一项所述的虚拟机, 其特征在于,

所述流量控制策略为基于服务质量的流量控制策略和 /或基于访问控制列 表的流量控制策略。

17、 一种宿主机, 其特征在于, 包括:

第二协商单元,用于基于所述虚拟机的流量控制能力在所述虚拟机与所述 宿主机之间协商流量控制策略的执行方;

报文处理单元, 用于若确定协商出的流量控制策略的执行方为所述宿主 机,在接收到来自所述虚拟机的报文之后,基于所述流量控制策略对接收到的 所述报文进行转发处理。

18、 根据权利要求 17所述的宿主机, 其特征在于,

所述第二协商单元具体用于,接收虚拟机发送的携带所述虚拟机的流量控 制能力的描述信息的执行方协商请求,若根据所述流量控制能力的描述信息确 定所述虚拟机支持执行流量控制策略, 则向所述虚拟机发送协商确认指示, 所 述协商确认指示用于表示协商出的流量控制策略执行方为所述虚拟机;若根据 所述流量控制能力的描述信息确定所述虚拟机不支持执行流量控制策略,则向 所述虚拟机发送协商否认指示,所述协商否认指示用于表示协商出的流量控制 策略执行方为所述宿主机;

或者,

所述第二协商单元具体用于,接收虚拟机发送的携带有所述虚拟机的流量 控制能力的描述信息的执行方协商请求, 其中, 所述流量控制能力的描述信息 用于描述出所述虚拟机支持执行的流量控制策略的版本,若根据所述流量控制 能力的描述信息确定所述虚拟机支持执行当前最新版本或者预设版本的流量 控制策略, 则向所述虚拟机发送协商确认指示, 其中, 所述协商确认指示用于 表示协商出的流量控制策略执行方为所述虚拟机;若根据所述流量控制能力的 描述信息确定所述虚拟机不支持执行当前最新版本或者预设版本的流量控制 策略, 则向所述虚拟机发送协商否认指示, 其中, 所述协商否认指示用于表示 协商出的流量控制策略执行方为所述宿主机。

19、 根据权利要求 17至 18任一项所述的宿主机, 其特征在于, 所述报文处 理单元还用于,在确定协商出的流量控制策略的执行方为所述虚拟机之后, 若 在设定时长内未接收到来自所述虚拟机的心跳消息,则向所述虚拟机发送用于 指示流量控制策略执行方切换为所述 Host的指示消息。

20、 一种计算节点, 其特征在于, 包括, 硬件层、 运行在所述硬件层之上 的宿主机 Host、 以及运行在所述 Host之上的至少一个虚拟机,

所述虚拟机, 用于基于所述虚拟机的流量控制能力在所述虚拟机与所述 Host之间协商流量控制策略的执行方;若确定协商出的流量控制策略执行方为 所述虚拟机, 则基于所述流量控制策略对待转发处理的报文进行转发处理; 若 确定协商出的流量控制策略的执行方为所述 Host,则将待转发处理的报文发送 给所述 Host;

所述 Host用于若确定协商出的流量控制策略执行方为所述 Host, 则在接收 到来自所述虚拟机的报文之后,基于所述流量控制策略对接收到的所述报文进 行转发处理。

21、 根据权利要求 20所述的计算节点, 其特征在于,

在基于所述虚拟机的流量控制能力在所述虚拟机与所述 Host之间协商流 量控制策略的执行方的方面, 所述虚拟机具体用于, 向 Host发送携带所述虚拟 机的流量控制能力的描述信息的执行方协商请求,若接收到所述 Host在根据所 述流量控制能力的描述信息确定所述虚拟机支持执行流量控制策略之后发送 的协商确认指示, 则确定协商出的流量控制策略执行方为所述虚拟机; 若接收 到所述 Host在根据所述流量控制能力的描述信息确定所述虚拟机不支持执行 流量控制策略之后发送的协商否认指示,则确定协商出的流量控制策略执行方 为所述 Host;

或者, 在基于所述虚拟机的流量控制能力在所述虚拟机与所述 Host之间协商流 量控制策略的执行方的方面, 所述虚拟机具体用于, 向 Host发送携带所述虚拟 机的流量控制能力的描述信息的执行方协商请求, 其中, 所述流量控制能力的 描述信息用于描述出所述虚拟机支持执行的流量控制策略的版本,若接收到所 述 Host在根据所述流量控制能力的描述信息确定所述虚拟机支持执行当前最 新版本或者预设版本的流量控制策略之后发送的协商确认指示,则确定协商出 的流量控制策略执行方为所述虚拟机;若接收到所述 Host在根据所述流量控制 能力的描述信息确定所述虚拟机不支持执行当前最新版本或者预设版本的流 量控制策略之后发送的协商否认指示,则确定协商出的流量控制策略执行方为 所述 Host;

或者,

在基于所述虚拟机的流量控制能力在所述虚拟机与所述 Host之间协商流 量控制策略的执行方的方面, 所述虚拟机具体用于, 向 Host发送携带所述虚拟 机的流量控制能力的描述信息的执行方协商请求,若接收到所述 Host在根据所 述流量控制能力的描述信息确定所述虚拟机支持执行流量控制策略之后发送 的协商确认指示, 则确定协商出的流量控制策略执行方为所述虚拟机; 若在第 一设定时长内未接收到所述 Host发送的用于响应所述执行方协商请求的协商 确认指示, 则确定协商出的流量控制策略执行方为所述 Host;

或者,

在基于所述虚拟机的流量控制能力在所述虚拟机与所述 Host之间协商流 量控制策略的执行方的方面, 所述虚拟机具体用于, 向 Host发送携带所述虚拟 机的流量控制能力的描述信息的执行方协商请求, 其中, 所述流量控制能力的 描述信息用于描述出所述虚拟机支持执行的流量控制策略的版本,若接收到所 述 Host在根据所述流量控制能力的描述信息确定所述虚拟机支持执行当前最 新版本或者预设版本的流量控制策略之后发送的协商确认指示,则确定协商出 的流量控制策略执行方为所述虚拟机; 若在第一设定时长之内未接收到所述 Host发送的用于响应所述执行方协商请求的协商确认指示,则确定协商出的流 量控制策略执行方为所述 Host;

或者, 在基于所述虚拟机的流量控制能力在所述虚拟机与所述 Host之间协商流 量控制策略的执行方的方面, 所述虚拟机具体用于, 向 Host发送携带所述虚拟 机的流量控制能力的描述信息的执行方协商请求,若接收到所述 Host在根据所 述流量控制能力的描述信息确定所述虚拟机不支持执行流量控制策略之后发 送的协商否认指示, 则确定协商出的流量控制策略执行方为所述 Host; 若在第 二设定时长内未接收到所述 Host发送的用于响应所述执行方协商请求的协商 否认指示, 则确定协商出的流量控制策略执行方为所述虚拟机;

或者,

在基于所述虚拟机的流量控制能力在所述虚拟机与所述 Host之间协商流 量控制策略的执行方的方面, 所述虚拟机具体用于, 向 Host发送携带所述虚拟 机的流量控制能力的描述信息的执行方协商请求, 其中, 所述流量控制能力的 描述信息用于描述出所述虚拟机支持执行的流量控制策略的版本,若接收到所 述 Host在根据所述流量控制能力的描述信息确定所述虚拟机支持执行当前最 新版本或者预设版本的流量控制策略之后发送的协商否认指示,则确定协商出 的流量控制策略执行方为所述 Host; 若在第二设定时长之内未接收到所述 Host 发送的用于响应所述执行方协商请求的协商否认指示,则确定协商出的流量控 制策略执行方为所述虚拟机。

22、 根据权利要求 20或 21所述的计算节点, 其特征在于,

所述 Host还用于,在确定协商出的流量控制策略的执行方为所述虚拟机之 后, 若在设定时长内未接收到来自所述虚拟机的心跳消息, 则向所述虚拟机发 送用于指示流量控制策略执行方切换为所述 Host的指示消息。

23、 一种报文流量控制方法, 其特征在于, 包括:

处理器基于虚拟机的流量控制能力,在宿主机 Host和所述虚拟机之间协商 出流量控制策略的执行方;

若协商出的流量控制策略执行方为所述虚拟机,则所述处理器基于所述流 若协商出的流量控制策略的执行方为所述 Host,则所述处理器将所述虚拟 机待转发处理的报文从所述虚拟机发送给所述 Host;所述处理器基于所述流量 控制策略对所述 Host接收到的待转发处理的所述报文进行转发处理。 24、 根据权利要求 23所述的方法, 其特征在于,

所述处理器基于虚拟机的流量控制能力,在宿主机 Host和所述虚拟机之间 协商出流量控制策略的执行方包括:所述处理器向 Host发送所述虚拟机待向所 述 Host发送的执行方协商请求,所述执行方协商请求携带所述虚拟机的流量控 制能力的描述信息;

在所述 Host接收到所述执行方协商请求之后,所述处理器若根据所述流量 控制能力的描述信息确定所述虚拟机支持执行流量控制策略,则所述处理器向 所述虚拟机发送所述 Host待向所述虚拟机发送的协商确认指示, 其中, 所述协 商确认指示用于表示协商出的流量控制策略执行方为所述虚拟机; 和 /或, 所 述处理器若根据所述流量控制能力的描述信息确定所述虚拟机不支持执行流 量控制策略,则所述处理器向所述虚拟机发送所述 Host待向所述虚拟机发送的 协商否认指示,所述协商否认指示用于表示协商出的流量控制策略执行方为所 述 Host;

或者,

所述处理器基于虚拟机的流量控制能力,在宿主机 Host和所述虚拟机之间 协商出流量控制策略的执行方包括:所述处理器向 Host发送所述虚拟机待向所 述 Host发送的执行方协商请求,所述执行方协商请求携带所述虚拟机的流量控 制能力的描述信息,所述流量控制能力的描述信息用于描述出所述虚拟机支持 执行的流量控制策略的版本;

在所述 Host接收到所述执行方协商请求之后,所述处理器若根据所述流量 控制能力的描述信息,确定所述虚拟机支持执行当前最新版本或者预设版本的 流量控制策略,则所述处理器向所述虚拟机发送所述 Host待向所述虚拟机发送 的协商确认指示,所述协商确认指示用于表示协商出的流量控制策略执行方为 所述虚拟机; 和 /或所述处理器若根据所述流量控制能力的描述信息确定所述 虚拟机不支持执行当前最新版本或者预设版本的流量控制策略,则所述处理器 向所述虚拟机发送所述 Host待向所述虚拟机发送的协商否认指示, 其中, 所述 协商否认指示用于表示协商出的流量控制策略执行方为所述 Host。

25、 根据权利要求 24所述的方法, 其特征在于, 所述协商确认指示中包含 所述流量控制策略; 其中,所述基于所述流量控制策略对所述虚拟机待转发处理的报文进行转 发处理包括:基于所述协商确认指示中包含的所述流量控制策略对所述虚拟机 待转发处理的报文进行转发处理。

26、 根据权利要求 23至 25任意一项所述方法, 其特征在于,

所述方法还包括:

在协商出的流量控制策略的执行方为所述虚拟机之后,若所述 Host在设定 时长内未接收到来自所述虚拟机的心跳消息,所述处理器向所述虚拟机发送所 述 Host待向所述虚拟机发送的, 用于指示流量控制策略的执行方切换为所述 Host的指示消息。

27、 一种计算节点, 其特征在于, 包括:

存储器, 以及与所述存储器连接的处理器;

其中, 所述处理器用于:

基于虚拟机的流量控制能力,在宿主机 Host和所述虚拟机之间协商出流量 控制策略的执行方;

若协商出的流量控制策略执行方为所述虚拟机,则基于所述流量控制策略 对所述虚拟机待转发处理的报文进行转发处理;若协商出的流量控制策略的执

Host; 基于所述流量控制策略对所述 Host接收到的待转发处理的所述报文进行 转发处理。

28、 根据权利要求 27所述的计算节点, 其特征在于,

所述处理器用于, 向 Host发送所述虚拟机待向所述 Host发送的执行方协商 请求, 所述执行方协商请求携带所述虚拟机的流量控制能力的描述信息; 在所 述 Host接收到所述执行方协商请求之后,若根据所述流量控制能力的描述信息 确定所述虚拟机支持执行流量控制策略,则向所述虚拟机发送所述 Host待向所 述虚拟机发送的协商确认指示, 其中, 所述协商确认指示用于表示协商出的流 量控制策略执行方为所述虚拟机; 和 /或, 若根据所述流量控制能力的描述信 息确定所述虚拟机不支持执行流量控制策略, 则向所述虚拟机发送所述 Host 待向所述虚拟机发送的协商否认指示,所述协商否认指示用于表示协商出的流 量控制策略执行方为所述 Host; 或者,

所述处理器用于, 向 Host发送所述虚拟机待向所述 Host发送的执行方协商 请求, 所述执行方协商请求携带所述虚拟机的流量控制能力的描述信息, 所述 流量控制能力的描述信息用于描述出所述虚拟机支持执行的流量控制策略的 版本; 在所述 Host接收到所述执行方协商请求之后, 若根据所述流量控制能力 的描述信息,确定所述虚拟机支持执行当前最新版本或者预设版本的流量控制 策略, 则向所述虚拟机发送所述 Host待向所述虚拟机发送的协商确认指示, 所 述协商确认指示用于表示协商出的流量控制策略执行方为所述虚拟机; 和 /或 若根据所述流量控制能力的描述信息确定所述虚拟机不支持执行当前最新版 本或者预设版本的流量控制策略,则向所述虚拟机发送所述 Host待向所述虚拟 机发送的协商否认指示, 其中, 所述协商否认指示用于表示协商出的流量控制 策略执行方为所述 Host。

29、 根据权利要求 28所述的计算节点, 其特征在于, 所述协商确认指示中 包含所述流量控制策略;

其中, 所述处理器用于,基于所述协商确认指示中包含的所述流量控制策 略对所述虚拟机待转发处理的报文进行转发处理。

30、 根据权利要求 27至 29任意一项所述计算节点, 其特征在于, 所述处理 器还用于, 在协商出的流量控制策略的执行方为所述虚拟机之后, 若所述 Host 在设定时长内未接收到来自所述虚拟机的心跳消息, 向所述虚拟机发送所述 Host待向所述虚拟机发送的, 用于指示流量控制策略的执行方切换为所述 Host 的指示消息。

Description:
报文流量控制方法及相关装置和计算节点

本申请要求于 2013 年 12 月 30 日提交中国专利局、 申请号为 201310746701.5、 发明名称为 "报文流量控制方法及相关装置和计算节点" 的 中国专利申请的优先权, 其全部内容通过引用结合在本申请中。 技术领域

本发明涉及计算机技术领域,具体涉及一种报 文流量控制方法及相关装置 和计算节点。 背景技术

虚拟化技术是一种将底层硬件设备与上层操作 系统、应用程序分离的去耦 合技术, 如图 1所示, 引入虚拟机监控器(英文: virtual machine monitor, 缩 写: VMM )层直接管理底层硬件资源, 创建与底层硬件无关的虚拟机(英文: virtual machine, 缩写: VM )供上层操作系统和应用程序使用。

虚拟化技术作为当前流行的云计算(英文: cloud computing )平台的底层 重要支撑技术之一, 可以极大的提高物理设备的资源使用效率。 与传统的物理 服务器相比, 虚拟机具有更好的隔离性和封装性。

现有一些虚拟化场景下, 宿主机(英文: Host )对虚拟机出方向的流量做 带宽限制或基于其它策略的访问控制。 例如 VM发出报文之后, Host先将该报 文从 VM地址空间拷贝到 Host地址空间, Host判断该报文是否超过发送限制, 对于超过发送限制的报文通常直接丟弃或先进 行緩存,而对超过緩存限制的报 文通常就直接丟弃。

研究实践过程中发明人发现, 现有由 Host执行的流量控制机制有时候会 造成较大的处理延迟(例如在有些 VM数量较多的场景下或者 VM发包数量 较多的场景下), 造成 Host地址空间的大量占用。 发明内容

本发明实施例提供流量控制方法及相关装置和 计算节点,以减少处理虚拟 机出方向的报文流量对 Host地址空间的占用。

为解决上述技术问题, 本发明实施例提供以下技术方案:

本发明实施例第一方面提供一种报文流量控制 方法, 可包括: 基于虚拟机的流量控制能力在所述虚拟机与宿 主机 Host之间协商流量控 制策略的执行方;

若确定协商出的流量控制策略执行方为所述虚 拟机,则所述虚拟机基于所 述流量控制策略对待转发处理的报文进行转发 处理;

若确定协商出的流量控制策略的执行方为所述 Host,则所述虚拟机将待转 发处理的报文发送给所述 Host, 以便于所述 Host基于所述流量控制策略对接收 到的所述报文进行转发处理。

结合第一方面, 在第一种可能的实施方式中,

所述基于所述虚拟机的流量控制能力在所述虚 拟机与宿主机 Host之间协 商流量控制策略的执行方, 包括:

虚拟机向 Host发送携带所述虚拟机的流量控制能力的描 信息的执行方 协商请求;

所述虚拟机若接收到所述 Host在根据所述流量控制能力的描述信息确定 所述虚拟机支持执行流量控制策略之后发送的 协商确认指示,则所述虚拟机确 定协商出的流量控制策略执行方为所述虚拟机 ;

所述虚拟机若接收到所述 Host在根据所述流量控制能力的描述信息确定 所述虚拟机不支持执行流量控制策略之后发送 的协商否认指示,则所述虚拟机 确定协商出的流量控制策略执行方为所述 Host;

或者,

所述基于所述虚拟机的流量控制能力在所述虚 拟机与宿主机 Host之间协 商流量控制策略的执行方, 包括:

虚拟机向 Host发送携带所述虚拟机的流量控制能力的描 信息的执行方 协商请求, 其中, 所述流量控制能力的描述信息用于描述出所述 虚拟机支持执 行的流量控制策略的版本;

所述虚拟机若接收到所述 Host在根据所述流量控制能力的描述信息确定 所述虚拟机支持执行当前最新版本或者预设版 本的流量控制策略之后发送的 协商确认指示, 则所述虚拟机确定协商出的流量控制策略执行 方为所述虚拟 机;

所述虚拟机若接收到所述 Host在根据所述流量控制能力的描述信息确定 所述虚拟机不支持执行当前最新版本或者预设 版本的流量控制策略之后发送 的协商否认指示, 则所述虚拟机确定协商出的流量控制策略执行 方为所述 Host;

或者,

所述基于所述虚拟机的流量控制能力在所述虚 拟机与宿主机 Host之间协 商流量控制策略的执行方, 包括:

虚拟机向 Host发送携带所述虚拟机的流量控制能力的描 信息的执行方 协商请求;

所述虚拟机若接收到所述 Host在根据所述流量控制能力的描述信息确定 所述虚拟机支持执行流量控制策略之后发送的 协商确认指示,则所述虚拟机确 定协商出的流量控制策略执行方为所述虚拟机 ;

所述虚拟机若在第一设定时长内未接收到所述 Host发送的用于响应所述 执行方协商请求的协商确认指示,则所述虚拟 机确定协商出的流量控制策略执 行方为所述 Host;

或者,

所述基于所述虚拟机的流量控制能力在所述虚 拟机与宿主机 Host之间协 商流量控制策略的执行方, 包括:

虚拟机向 Host发送携带所述虚拟机的流量控制能力的描 信息的执行方 协商请求, 其中, 所述流量控制能力的描述信息用于描述出所述 虚拟机支持执 行的流量控制策略的版本;

所述虚拟机若接收到所述 Host在根据所述流量控制能力的描述信息确定 所述虚拟机支持执行当前最新版本或者预设版 本的流量控制策略之后发送的 协商确认指示, 则所述虚拟机确定协商出的流量控制策略执行 方为所述虚拟 机;

所述虚拟机若在第一设定时长内未接收到所述 Host发送的用于响应所述 执行方协商请求的协商确认指示,则所述虚拟 机确定协商出的流量控制策略执 行方为所述 Host;

或者,

所述基于所述虚拟机的流量控制能力在所述虚 拟机与宿主机 Host之间协 商流量控制策略的执行方, 包括:

虚拟机向 Host发送携带所述虚拟机的流量控制能力的描 信息的执行方 协商请求;

所述虚拟机若接收到所述 Host在根据所述流量控制能力的描述信息确定 所述虚拟机不支持执行流量控制策略之后发送 的协商否认指示,则所述虚拟机 确定协商出的流量控制策略执行方为所述 Host;

所述虚拟机在第二设定时长内未接收到所述 Host发送的用于响应所述执 行方协商请求的协商否认指示,则所述虚拟机 确定协商出的流量控制策略执行 方为所述虚拟机;

或者,

所述基于所述虚拟机的流量控制能力在所述虚 拟机与宿主机 Host之间协 商流量控制策略的执行方, 包括:

虚拟机向 Host发送携带所述虚拟机的流量控制能力的描 信息的执行方 协商请求, 其中, 所述流量控制能力的描述信息用于描述出所述 虚拟机支持执 行的流量控制策略的版本;

所述虚拟机若接收到所述 Host在根据所述流量控制能力的描述信息确定 所述虚拟机支持执行当前最新版本或者预设版 本的流量控制策略之后发送的 协商否认指示, 则所述虚拟机确定协商出的流量控制策略执行 方为所述 Host; 所述虚拟机若在第二设定时长内未接收到所述 Host发送的用于响应所述 执行方协商请求的协商否认指示,则所述虚拟 机确定协商出的流量控制策略执 行方为所述虚拟机。

结合第一方面的第一种可能的实施方式,在第 二种可能的实施方式中, 所 述协商确认指示中包含所述流量控制策略;

所述虚拟机基于所述流量控制策略对待转发处 理的报文进行转发处理,包 括:

所述虚拟机基于所述协商确认指示中包含的流 量控制策略对待转发处理 的报文进行转发处理。

结合第一方面的第一种可能的实施方式或第一 方面的第二种可能的实施 方式, 在第三种可能的实施方式中, 所述虚拟机向 Host发送携带所述虚拟机的 流量控制能力的描述信息的执行方协商请求包 括:

虚拟机在接收到用户态进程发起的协商启动请 求之后,向 Host发送携带所 述虚拟机的流量控制能力的描述信息的执行方 协商请求; 或者,虚拟机在接收 到来自所述 Host的协商启动请求之后, 向上述 Host发送携带所述虚拟机的流量 控制能力的描述信息的执行方协商请求。

结合第一方面或第一方面的第一种可能的实施 方式或第一方面的第二种 可能的实施方式或第一方面的第三种可能的实 施方式,在第四种可能的实施方 式中,所述基于所述虚拟机的流量控制能力在 所述虚拟机与宿主机 Host之间协 商流量控制策略的执行方包括: 部署于虚拟机中的预载客户端与部署于 Host 中的预载服务端之间的连接建立完成之后,所 述预载客户端基于建立的所述连 接与所述预载服务端基于所述虚拟机的流量控 制能力在上述虚拟机与 Host之 间协商流量控制策略的执行方。

结合第一方面的第四种可能的实施方式, 在第五种可能的实施方式中, 所述方法还包括:

在确定协商出的流量控制策略执行方为所述虚 拟机之后,所述预载客户端 基于所述连接周期性的向所述预载服务端发送 心跳消息。

结合第一方面或第一方面的第一种可能的实施 方式或第一方面的第二种 可能的实施方式或者第一方面的第三种可能的 实施方式或第一方面的第四种 可能的实施方式或第一方面的第五种可能的实 施方式,在第六种可能的实施方 式中, 所述流量控制策略为基于服务质量的流量控制 策略和 /或基于访问控制 列表的流量控制策略。

本发明实施例第二方面提供一种报文流量控制 方法, 可包括:

基于虚拟机的流量控制能力在所述虚拟机与宿 主机 Host之间协商流量控 制策略的执行方;

若确定协商出的流量控制策略执行方为所述 Host, 所述 Host在接收到来自 所述虚拟机的报文之后,基于所述流量控制策 略对接收到的所述报文进行转发 处理。。

结合第二方面, 在第一种可能的实施方式中, 所述宿主机 Host与虚拟机基 于所述虚拟机的流量控制能力在上述虚拟机与 Host之间协商流量控制策略的 执行方, 包括:

基于所述虚拟机的流量控制能力在所述虚拟机 与宿主机 Host之间协商流 量控制策略的执行方, 包括:

Host接收虚拟机发送的携带所述虚拟机的流量 制能力的描述信息的执 行方协商请求;

若所述 Host根据所述流量控制能力的描述信息确定所 虚拟机支持执行 流量控制策略, 则向所述虚拟机发送协商确认指示, 所述协商确认指示用于表 示协商出的流量控制策略执行方为所述虚拟机 ;

若所述 Host根据所述流量控制能力的描述信息确定所 虚拟机不支持执 行流量控制策略, 则向所述虚拟机发送协商否认指示, 所述协商否认指示用于 表示协商出的流量控制策略执行方为所述 Host;

或者,

基于所述虚拟机的流量控制能力在所述虚拟机 与宿主机 Host之间协商流 量控制策略的执行方, 包括:

Host接收虚拟机发送的携带所述虚拟机的流量 制能力的描述信息的执 行方协商请求, 其中, 所述流量控制能力的描述信息用于描述出所述 虚拟机支 持执行的流量控制策略的版本;

若所述 Host根据所述流量控制能力的描述信息确定所 虚拟机支持执行 当前最新版本或者预设版本的流量控制策略, 则向所述虚拟机发送协商确认指 示, 其中, 所述协商确认指示用于表示协商出的流量控制 策略执行方为所述虚 拟机;

若所述 Host根据所述流量控制能力的描述信息确定所 虚拟机不支持执 行当前最新版本或者预设版本的流量控制策略 ,则向所述虚拟机发送协商否认 指示, 其中, 所述协商否认指示用于表示协商出的流量控制 策略执行方为所述 Host。

结合第二方面或第二方面的第一种可能的实施 方式,在第二种可能的实施 方式中,所述基于所述虚拟机的流量控制能力 在所述虚拟机与宿主机 Host之间 协商流量控制策略的执行方, 包括: 在 Host中的预载服务端与虚拟机中的预载 客户端之间的连接建立完成之后,所述预载服 务端通过所述连接与所述预载客 户端基于所述虚拟机的流量控制能力,在所述 虚拟机与宿主机 Host之间协商流 量控制策略的执行方。

结合第二方面或第二方面的第一种可能的实施 方式或第二方面的第二种 可能的实施方式, 在第三种可能的实施方式中, 所述方法还包括:

在确定协商出的流量控制策略的执行方为所述 虚拟机之后,若在设定时长 内未接收到来自所述虚拟机的心跳消息,则所 述 Host向所述虚拟机发送用于指 示流量控制策略的执行方切换为所述 Host的指示消息。

结合第二方面或第二方面的第一种可能的实施 方式或第二方面的第二种 可能的实施方式或者第二方面的第三种可能的 实施方式,在第四种可能的实施 方式中, 所述流量控制策略为基于服务质量的流量控制 策略和 /或基于访问控 制列表的流量控制策略。

本发明第三方面提供一种报文流量控制方法, 可包括:

处理器基于虚拟机的流量控制能力,在宿主机 Host和所述虚拟机之间协商 出流量控制策略的执行方;

若协商出的流量控制策略执行方为所述虚拟机 ,则所述处理器基于所述流 若协商出的流量控制策略的执行方为所述 Host,则所述处理器将所述虚拟 机待转发处理的报文从所述虚拟机发送给所述 Host;所述处理器基于所述流量 控制策略对所述 Host接收到的待转发处理的所述报文进行转发 理。

结合第三方面, 在第一种可能的实施方式中,

所述处理器基于虚拟机的流量控制能力,在宿 主机 Host和所述虚拟机之间 协商出流量控制策略的执行方包括:所述处理 器向 Host发送所述虚拟机待向所 述 Host发送的执行方协商请求,所述执行方协商 求携带所述虚拟机的流量控 制能力的描述信息;

在所述 Host接收到所述执行方协商请求之后,所述处 器若根据所述流量 控制能力的描述信息确定所述虚拟机支持执行 流量控制策略,则所述处理器向 所述虚拟机发送所述 Host待向所述虚拟机发送的协商确认指示, 其中, 所述协 商确认指示用于表示协商出的流量控制策略执 行方为所述虚拟机; 和 /或, 所 述处理器若根据所述流量控制能力的描述信息 确定所述虚拟机不支持执行流 量控制策略,则所述处理器向所述虚拟机发送 所述 Host待向所述虚拟机发送的 协商否认指示,所述协商否认指示用于表示协 商出的流量控制策略执行方为所 述 Host;

或者,

所述处理器基于虚拟机的流量控制能力,在宿 主机 Host和所述虚拟机之间 协商出流量控制策略的执行方包括:所述处理 器向 Host发送所述虚拟机待向所 述 Host发送的执行方协商请求,所述执行方协商 求携带所述虚拟机的流量控 制能力的描述信息,所述流量控制能力的描述 信息用于描述出所述虚拟机支持 执行的流量控制策略的版本;

在所述 Host接收到所述执行方协商请求之后,所述处 器若根据所述流量 控制能力的描述信息,确定所述虚拟机支持执 行当前最新版本或者预设版本的 流量控制策略,则所述处理器向所述虚拟机发 送所述 Host待向所述虚拟机发送 的协商确认指示,所述协商确认指示用于表示 协商出的流量控制策略执行方为 所述虚拟机; 和 /或所述处理器若根据所述流量控制能力的描 信息确定所述 虚拟机不支持执行当前最新版本或者预设版本 的流量控制策略,则所述处理器 向所述虚拟机发送所述 Host待向所述虚拟机发送的协商否认指示, 其中, 所述 协商否认指示用于表示协商出的流量控制策略 执行方为所述 Host。

结合第三方面或第三方面的第一种可能的实施 方式,在第二种可能的实施 方式中, 所述协商确认指示中包含所述流量控制策略;

其中,所述基于所述流量控制策略对所述虚拟 机待转发处理的报文进行转 发处理包括:基于所述协商确认指示中包含的 所述流量控制策略对所述虚拟机 待转发处理的报文进行转发处理。

结合第三方面或第三方面的第一种可能的实施 方式或第三方面的第二种 可能的实施方式,在第三种可能的实施方式中 , 在协商出的流量控制策略的执 行方为所述虚拟机之后,若所述 Host在设定时长内未接收到来自所述虚拟机的 心跳消息, 所述处理器向所述虚拟机发送所述 Host待向所述虚拟机发送的, 用 于指示流量控制策略的执行方切换为所述 Host的指示消息。

结合第三方面或第三方面的第一种可能的实施 方式或第三方面的第二种 可能的实施方式或者第三方面的第三种可能的 实施方式,在第四种可能的实施 方式中,

所述流量控制策略为基于服务质量的流量控制 策略和 /或基于访问控制列 表的流量控制策略。

结合第三方面或第三方面的第一种可能的实施 方式或第三方面的第二种 可能的实施方式或者第三方面的第三种可能的 实施方式或者第三方面的第四 种可能的实施方式, 在第五种可能的实施方式中, 所述向 Host发送所述虚拟机 待向所述 Host发送的执行方协商请求包括:

在虚拟机在接收到用户态进程发起的协商启动 请求之后,向 Host发送所述 虚拟机待向所述 Host发送的执行方协商请求; 或者, 在虚拟机在接收到来自所 述 Host的协商启动请求之后, 向所述 Host发送所述虚拟机待向所述 Host发送的 执行方协商请求。

结合第三方面或者第三方面的第一种可能的实 施方式或第三方面的第二 种可能的实施方式或者第三方面的第三种可能 的实施方式或者第三方面的第 四种可能的实施方式或者第三方面的第五种可 能的实施方式,在第六种可能的 实施方式中, 基于虚拟机的流量控制能力, 在宿主机 Host和所述虚拟机之间协 商出流量控制策略的执行方包括: 在部署于虚拟机中的预载客户端与部署于 Host中的预载服务端之间的连接建立完成之后 通过建立的所述连接, 基于虚 拟机的流量控制能力,在宿主机 Host和所述虚拟机之间协商出流量控制策略的 执行。

本发明第四方面提供一种报文流量控制方法, 可包括:

处理器基于虚拟机的流量控制能力,在宿主机 Host和所述虚拟机之间协商 出流量控制策略的执行方;

若协商出的流量控制策略执行方为所述虚拟机 ,则所述处理器基于所述流 若协商出的流量控制策略的执行方为所述 Host,则所述处理器将所述虚拟 机待转发处理的报文发送给所述 Host;所述处理器基于所述流量控制策略对所 述 Host接收到的待转发处理的所述报文进行转发 理。

结合第四方面, 在第一种可能的实施方式中,

所述处理器基于虚拟机的流量控制能力,在宿 主机 Host和所述虚拟机之间 协商出流量控制策略的执行方包括:所述处理 器向 Host发送所述虚拟机待向所 述 Host发送的执行方协商请求,所述执行方协商 求携带所述虚拟机的流量控 制能力的描述信息;

在所述 Host接收到所述执行方协商请求之后,所述处 器若根据所述流量 控制能力的描述信息确定所述虚拟机支持执行 流量控制策略,则所述处理器向 所述虚拟机发送所述 Host待向所述虚拟机发送的协商确认指示, 其中, 所述协 商确认指示用于表示协商出的流量控制策略执 行方为所述虚拟机; 和 /或, 所 述处理器若根据所述流量控制能力的描述信息 ,确定所述虚拟机不支持执行流 量控制策略,则所述处理器向所述虚拟机发送 所述 Host待向所述虚拟机发送的 协商否认指示, 其中, 所述协商否认指示用于表示协商出的流量控制 策略执行 方为所述 Host;

或者,

所述处理器基于虚拟机的流量控制能力,在宿 主机 Host和所述虚拟机之间 协商出流量控制策略的执行方包括:所述处理 器向 Host发送所述虚拟机待向所 述 Host发送的执行方协商请求,所述执行方协商 求携带所述虚拟机的流量控 制能力的描述信息,所述流量控制能力的描述 信息用于描述出所述虚拟机支持 执行的流量控制策略的版本;

在所述 Host接收到所述执行方协商请求之后,所述处 器若根据所述流量 控制能力的描述信息,确定所述虚拟机支持执 行当前最新版本或者预设版本的 流量控制策略,则所述处理器向所述虚拟机发 送所述 Host待向所述虚拟机发送 的协商确认指示,所述协商确认指示用于表示 协商出的流量控制策略执行方为 所述虚拟机; 和 /或所述处理器若根据所述流量控制能力的描 信息确定所述 虚拟机不支持执行当前最新版本或者预设版本 的流量控制策略,则所述处理器 向所述虚拟机发送所述 Host待向所述虚拟机发送的协商否认指示, 其中, 所述 协商否认指示用于表示协商出的流量控制策略 执行方为所述 Host。

结合第四方面或第四方面的第一种可能的实施 方式,在第二种可能的实施 方式中, 所述协商确认指示中包含所述流量控制策略;

其中,所述处理器基于所述流量控制策略对所 述虚拟机待转发处理的报文 进行转发处理包括:所述处理器基于所述协商 确认指示中包含的所述流量控制 策略对所述虚拟机待转发处理的报文进行转发 处理。

结合第四方面或第四方面的第一种可能的实施 方式或第四方面的第二种 可能的实施方式, 在第三种可能的实施方式中, 所述方法还包括: 在协商出的 流量控制策略的执行方为所述虚拟机之后,若 所述 Host在设定时长内未接收到 来自所述虚拟机的心跳消息,所述处理器向所 述虚拟机发送所述 Host待向所述 虚拟机发送的, 用于指示流量控制策略的执行方切换为所述 Host的指示消息。

结合第四方面或第四方面的第一种可能的实施 方式或第四方面的第二种 可能的实施方式或者第四方面的第三种可能的 实施方式,在第四种可能的实施 方式中,

所述流量控制策略为基于服务质量的流量控制 策略和 /或基于访问控制列 表的流量控制策略。

结合第四方面或第四方面的第一种可能的实施 方式或第四方面的第二种 可能的实施方式或者第四方面的第三种可能的 实施方式或者第四方面的第四 种可能的实施方式, 在第五种可能的实施方式中, 所述处理器向 Host发送所述 虚拟机待向所述 Host发送的执行方协商请求包括:

在虚拟机在接收到用户态进程发起的协商启动 请求之后, 所述处理器向 Host发送所述虚拟机待向所述 Host发送的执行方协商请求; 或者, 在虚拟机在 接收到来自所述 Host的协商启动请求之后, 所述处理器向所述 Host发送所述虚 拟机待向所述 Host发送的执行方协商请求。

结合第四方面或者第四方面的第一种可能的实 施方式或第四方面的第二 种可能的实施方式或者第四方面的第三种可能 的实施方式或者第四方面的第 四种可能的实施方式或者第四方面的第五种可 能的实施方式,在第六种可能的 实施方式中, 所述基于虚拟机的流量控制能力, 在宿主机 Host和所述虚拟机之 间协商出流量控制策略的执行方, 包括: 在部署于虚拟机中的预载客户端与部 署于 Host中的预载服务端之间的连接建立完成之后 所述处理器通过建立的所 述连接, 基于虚拟机的流量控制能力, 在宿主机 Host和所述虚拟机之间协商出 流量控制策略的执行。

本发明第五方面提供一种虚拟机, 可包括:

第一协商单元,用于基于所述虚拟机的流量控 制能力在所述虚拟机与宿主 机 Host之间协商流量控制策略的执行方;

报文处理单元, 用于若确定协商出的流量控制策略的执行方为 所述虚拟 机, 则基于所述流量控制策略对待转发处理的报文 进行转发处理; 若确定协商 出的流量控制策略的执行方为所述 Host, 则将待转发处理的报文发送给所述 Host, 以便于所述 Host基于所述流量控制策略对接收到的所述报 进行转发处 理。

结合第五方面, 在第一种可能的实施方式中,

所述第一协商单元具体用于,向 Host发送携带所述虚拟机的流量控制能力 的描述信息的执行方协商请求,若接收到所述 Host在根据所述流量控制能力的 描述信息确定所述虚拟机支持执行流量控制策 略之后发送的协商确认指示,则 确定协商出的流量控制策略执行方为所述虚拟 机;若接收到所述 Host在根据所 述流量控制能力的描述信息确定所述虚拟机不 支持执行流量控制策略之后发 送的协商否认指示, 则确定协商出的流量控制策略执行方为所述 Host;

或者,

所述第一协商单元具体用于,向 Host发送携带所述虚拟机的流量控制能力 的描述信息的执行方协商请求, 其中, 所述流量控制能力的描述信息用于描述 出所述虚拟机支持执行的流量控制策略的版本 ,若接收到所述 Host在根据所述 流量控制能力的描述信息确定所述虚拟机支持 执行当前最新版本或者预设版 本的流量控制策略之后发送的协商确认指示, 则确定协商出的流量控制策略执 行方为所述虚拟机;若接收到所述 Host在根据所述流量控制能力的描述信息确 定所述虚拟机不支持执行当前最新版本或者预 设版本的流量控制策略之后发 送的协商否认指示, 则确定协商出的流量控制策略执行方为所述 Host;

或者,

所述第一协商单元具体用于,向 Host发送携带所述虚拟机的流量控制能力 的描述信息的执行方协商请求,若接收到所述 Host在根据所述流量控制能力的 描述信息确定所述虚拟机支持执行流量控制策 略之后发送的协商确认指示,则 确定协商出的流量控制策略执行方为所述虚拟 机;若在第一设定时长内未接收 到所述 Host发送的用于响应所述执行方协商请求的协 确认指示,则确定协商 出的流量控制策略执行方为所述 Host; 或者,

所述第一协商单元具体用于,向 Host发送携带所述虚拟机的流量控制能力 的描述信息的执行方协商请求, 其中, 所述流量控制能力的描述信息用于描述 出所述虚拟机支持执行的流量控制策略的版本 ,若接收到所述 Host在根据所述 流量控制能力的描述信息确定所述虚拟机支持 执行当前最新版本或者预设版 本的流量控制策略之后发送的协商确认指示, 则确定协商出的流量控制策略执 行方为所述虚拟机;若在第一设定时长之内未 接收到所述 Host发送的用于响应 所述执行方协商请求的协商确认指示,则确定 协商出的流量控制策略执行方为 所述 Host;

或者,

所述第一协商单元具体用于,向 Host发送携带所述虚拟机的流量控制能力 的描述信息的执行方协商请求,若接收到所述 Host在根据所述流量控制能力的 描述信息确定所述虚拟机不支持执行流量控制 策略之后发送的协商否认指示, 则确定协商出的流量控制策略执行方为所述 Host;若在第二设定时长内未接收 到所述 Host发送的用于响应所述执行方协商请求的协 否认指示,则确定协商 出的流量控制策略执行方为所述虚拟机;

或者,

所述第一协商单元具体用于,向 Host发送携带所述虚拟机的流量控制能力 的描述信息的执行方协商请求, 其中, 所述流量控制能力的描述信息用于描述 出所述虚拟机支持执行的流量控制策略的版本 ,若接收到所述 Host在根据所述 流量控制能力的描述信息确定所述虚拟机支持 执行当前最新版本或者预设版 本的流量控制策略之后发送的协商否认指示, 则确定协商出的流量控制策略执 行方为所述 Host; 若在第二设定时长之内未接收到所述 Host发送的用于响应所 述执行方协商请求的协商否认指示,则确定协 商出的流量控制策略执行方为所 述虚拟机。

结合第五方面或者第五方面的第一种可能的实 施方式,在第二种可能的实 施方式中, 所述虚拟机还包括:

发送单元, 用于在确定协商出的流量控制策略的执行方为 所述虚拟机之 后, 周期性的向所述 Host发送心跳消息。 结合第五方面或者第五方面的第一种可能的实 施方式或第五方面的第二 种可能的实施方式, 在第三种可能的实施方式中,

所述流量控制策略为基于服务质量的流量控制 策略和 /或基于访问控制列 表的流量控制策略。

结合第五方面的第一种可能的实施方式或者第 五方面的第二种可能的实 施方式或第五方面的第三种可能的实施方式, 在第四种可能的实施方式中,在 所述向 Host发送携带所述虚拟机的流量控制能力的描 信息的执行方协商请 求的方面, 所述协商单元具体用于,在接收到用户态进程 发起的协商启动请求 之后,向 Host发送携带所述虚拟机的流量控制能力的描 信息的执行方协商请 求; 或者在接收到来自所述 Host的协商启动请求之后, 向上述 Host发送携带所 述虚拟机的流量控制能力的描述信息的执行方 协商请求。

本发明第六方面提供一种宿主机, 包括:

第二协商单元,用于基于所述虚拟机的流量控 制能力在所述虚拟机与所述 宿主机之间协商流量控制策略的执行方;

报文处理单元, 用于若确定协商出的流量控制策略的执行方为 所述宿主 机,在接收到来自所述虚拟机的报文之后,基 于所述流量控制策略对接收到的 所述报文进行转发处理。

结合第六方面, 在第一种可能的实施方式中,

所述第二协商单元具体用于,接收虚拟机发送 的携带所述虚拟机的流量控 制能力的描述信息的执行方协商请求,若根据 所述流量控制能力的描述信息确 定所述虚拟机支持执行流量控制策略, 则向所述虚拟机发送协商确认指示, 所 述协商确认指示用于表示协商出的流量控制策 略执行方为所述虚拟机;若根据 所述流量控制能力的描述信息确定所述虚拟机 不支持执行流量控制策略,则向 所述虚拟机发送协商否认指示,所述协商否认 指示用于表示协商出的流量控制 策略执行方为所述宿主机;

或者,

所述第二协商单元具体用于,接收虚拟机发送 的携带有所述虚拟机的流量 控制能力的描述信息的执行方协商请求, 其中, 所述流量控制能力的描述信息 用于描述出所述虚拟机支持执行的流量控制策 略的版本,若根据所述流量控制 能力的描述信息确定所述虚拟机支持执行当前 最新版本或者预设版本的流量 控制策略, 则向所述虚拟机发送协商确认指示, 其中, 所述协商确认指示用于 表示协商出的流量控制策略执行方为所述虚拟 机;若根据所述流量控制能力的 描述信息确定所述虚拟机不支持执行当前最新 版本或者预设版本的流量控制 策略, 则向所述虚拟机发送协商否认指示, 其中, 所述协商否认指示用于表示 协商出的流量控制策略执行方为所述宿主机。

结合第六方面或者第六方面的第一种可能的实 施方式,在第二种可能的实 施方式中, 所述报文处理单元还用于,在确定协商出的流 量控制策略的执行方 为所述虚拟机之后, 若在设定时长内未接收到来自所述虚拟机的心 跳消息, 则 向所述虚拟机发送用于指示流量控制策略执行 方切换为所述 Host的指示消息。

结合第六方面或者第六方面的第一种可能的实 施方式或第六方面的第二 种可能的实施方式, 在第三种可能的实施方式中,

所述流量控制策略为基于服务质量的流量控制 策略和 /或基于访问控制列 表的流量控制策略。

本发明第七方面提供一种计算节点, 可包括, 硬件层、运行在所述硬件层 之上的宿主机 Host、 以及运行在所述 Host之上的至少一个虚拟机,

所述虚拟机, 用于基于所述虚拟机的流量控制能力在所述虚 拟机与所述 Host之间协商流量控制策略的执行方;若确定 商出的流量控制策略执行方为 所述虚拟机, 则基于所述流量控制策略对待转发处理的报文 进行转发处理; 若 确定协商出的流量控制策略的执行方为所述 Host,则将待转发处理的报文发送 给所述 Host;

所述 Host用于若确定协商出的流量控制策略执行方 所述 Host, 则在接收 到来自所述虚拟机的报文之后,基于所述流量 控制策略对接收到的所述报文进 行转发处理。

结合第七方面, 在第一种可能的实施方式中,

在基于所述虚拟机的流量控制能力在所述虚拟 机与所述 Host之间协商流 量控制策略的执行方的方面, 所述虚拟机具体用于, 向 Host发送携带所述虚拟 机的流量控制能力的描述信息的执行方协商请 求,若接收到所述 Host在根据所 述流量控制能力的描述信息确定所述虚拟机支 持执行流量控制策略之后发送 的协商确认指示, 则确定协商出的流量控制策略执行方为所述虚 拟机; 若接收 到所述 Host在根据所述流量控制能力的描述信息确定 述虚拟机不支持执行 流量控制策略之后发送的协商否认指示,则确 定协商出的流量控制策略执行方 为所述 Host;

或者,

在基于所述虚拟机的流量控制能力在所述虚拟 机与所述 Host之间协商流 量控制策略的执行方的方面, 所述虚拟机具体用于, 向 Host发送携带所述虚拟 机的流量控制能力的描述信息的执行方协商请 求, 其中, 所述流量控制能力的 描述信息用于描述出所述虚拟机支持执行的流 量控制策略的版本,若接收到所 述 Host在根据所述流量控制能力的描述信息确定 述虚拟机支持执行当前最 新版本或者预设版本的流量控制策略之后发送 的协商确认指示,则确定协商出 的流量控制策略执行方为所述虚拟机;若接收 到所述 Host在根据所述流量控制 能力的描述信息确定所述虚拟机不支持执行当 前最新版本或者预设版本的流 量控制策略之后发送的协商否认指示,则确定 协商出的流量控制策略执行方为 所述 Host;

或者,

在基于所述虚拟机的流量控制能力在所述虚拟 机与所述 Host之间协商流 量控制策略的执行方的方面, 所述虚拟机具体用于, 向 Host发送携带所述虚拟 机的流量控制能力的描述信息的执行方协商请 求,若接收到所述 Host在根据所 述流量控制能力的描述信息确定所述虚拟机支 持执行流量控制策略之后发送 的协商确认指示, 则确定协商出的流量控制策略执行方为所述虚 拟机; 若在第 一设定时长内未接收到所述 Host发送的用于响应所述执行方协商请求的协 确认指示, 则确定协商出的流量控制策略执行方为所述 Host;

或者,

在基于所述虚拟机的流量控制能力在所述虚拟 机与所述 Host之间协商流 量控制策略的执行方的方面, 所述虚拟机具体用于, 向 Host发送携带所述虚拟 机的流量控制能力的描述信息的执行方协商请 求, 其中, 所述流量控制能力的 描述信息用于描述出所述虚拟机支持执行的流 量控制策略的版本,若接收到所 述 Host在根据所述流量控制能力的描述信息确定 述虚拟机支持执行当前最 新版本或者预设版本的流量控制策略之后发送 的协商确认指示,则确定协商出 的流量控制策略执行方为所述虚拟机; 若在第一设定时长之内未接收到所述 Host发送的用于响应所述执行方协商请求的协 确认指示,则确定协商出的流 量控制策略执行方为所述 Host;

或者,

在基于所述虚拟机的流量控制能力在所述虚拟 机与所述 Host之间协商流 量控制策略的执行方的方面, 所述虚拟机具体用于, 向 Host发送携带所述虚拟 机的流量控制能力的描述信息的执行方协商请 求,若接收到所述 Host在根据所 述流量控制能力的描述信息确定所述虚拟机不 支持执行流量控制策略之后发 送的协商否认指示, 则确定协商出的流量控制策略执行方为所述 Host; 若在第 二设定时长内未接收到所述 Host发送的用于响应所述执行方协商请求的协 否认指示, 则确定协商出的流量控制策略执行方为所述虚 拟机;

或者,

在基于所述虚拟机的流量控制能力在所述虚拟 机与所述 Host之间协商流 量控制策略的执行方的方面, 所述虚拟机具体用于, 向 Host发送携带所述虚拟 机的流量控制能力的描述信息的执行方协商请 求, 其中, 所述流量控制能力的 描述信息用于描述出所述虚拟机支持执行的流 量控制策略的版本,若接收到所 述 Host在根据所述流量控制能力的描述信息确定 述虚拟机支持执行当前最 新版本或者预设版本的流量控制策略之后发送 的协商否认指示,则确定协商出 的流量控制策略执行方为所述 Host; 若在第二设定时长之内未接收到所述 Host 发送的用于响应所述执行方协商请求的协商否 认指示,则确定协商出的流量控 制策略执行方为所述虚拟机。

结合第七方面或者第七方面的第一种可能的实 施方式,在第二种可能的实 施方式中,

所述 Host还用于,在确定协商出的流量控制策略的 行方为所述虚拟机之 后, 若在设定时长内未接收到来自所述虚拟机的心 跳消息, 则向所述虚拟机发 送用于指示流量控制策略执行方切换为所述 Host的指示消息。

本发明第八方面提供一种计算节点, 包括:

存储器, 以及与所述存储器连接的处理器; 其中, 所述处理器用于, 基于虚拟机的流量控制能力, 在宿主机 Host和所 述虚拟机之间协商出流量控制策略的执行方; 若协商出的流量控制策略执行方 为所述虚拟机,则基于所述流量控制策略对所 述虚拟机待转发处理的报文进行 转发处理; 若协商出的流量控制策略的执行方为所述 Host, 则将所述虚拟机待 转发处理的报文从所述虚拟机发送给所述 Host;基于所述流量控制策略对所述 Host接收到的待转发处理的所述报文进行转发 理。

结合第八方面, 在第八方面的第一种可能的实施方式中,

所述处理器用于, 向 Host发送所述虚拟机待向所述 Host发送的执行方协商 请求, 所述执行方协商请求携带所述虚拟机的流量控 制能力的描述信息; 在所 述 Host接收到所述执行方协商请求之后,若根据 述流量控制能力的描述信息 确定所述虚拟机支持执行流量控制策略,则向 所述虚拟机发送所述 Host待向所 述虚拟机发送的协商确认指示, 其中, 所述协商确认指示用于表示协商出的流 量控制策略执行方为所述虚拟机; 和 /或, 若根据所述流量控制能力的描述信 息确定所述虚拟机不支持执行流量控制策略, 则向所述虚拟机发送所述 Host 待向所述虚拟机发送的协商否认指示,所述协 商否认指示用于表示协商出的流 量控制策略执行方为所述 Host;

或者,

所述处理器用于, 向 Host发送所述虚拟机待向所述 Host发送的执行方协商 请求, 所述执行方协商请求携带所述虚拟机的流量控 制能力的描述信息, 所述 流量控制能力的描述信息用于描述出所述虚拟 机支持执行的流量控制策略的 版本; 在所述 Host接收到所述执行方协商请求之后, 若根据所述流量控制能力 的描述信息,确定所述虚拟机支持执行当前最 新版本或者预设版本的流量控制 策略, 则向所述虚拟机发送所述 Host待向所述虚拟机发送的协商确认指示, 所 述协商确认指示用于表示协商出的流量控制策 略执行方为所述虚拟机; 和 /或 若根据所述流量控制能力的描述信息确定所述 虚拟机不支持执行当前最新版 本或者预设版本的流量控制策略,则向所述虚 拟机发送所述 Host待向所述虚拟 机发送的协商否认指示, 其中, 所述协商否认指示用于表示协商出的流量控制 策略执行方为所述 Host。

结合第八方面的第一种可能的实施方式,在第 八方面的第二种可能的实施 方式中, 所述协商确认指示中包含所述流量控制策略;

其中, 所述处理器用于,基于所述协商确认指示中包 含的所述流量控制策 略对所述虚拟机待转发处理的报文进行转发处 理。

结合第八方面或第八方面的第一种可能的实施 方式或第八方面的第二种 可能的实施方式,在第八方面的第三种可能的 实施方式中, 所述处理器还用于 在协商出的流量控制策略的执行方为所述虚拟 机之后,若所述 Host在设定时长 内未接收到来自所述虚拟机的心跳消息,向所 述虚拟机发送所述 Host待向所述 虚拟机发送的, 用于指示流量控制策略的执行方切换为所述 Host的指示消息。

可以看出, 在本发明实施例的一些技术方案中,基于上述 虚拟机的流量控 制能力在上述虚拟机与 Host之间协商流量控制策略的执行方;若确定 商出的 流量控制策略执行方为上述虚拟机,则上述虚 拟机基于上述流量控制策略对待 转发处理的报文进行转发处理;若确定协商出 的流量控制策略的执行方为上述 Host, 则上述虚拟机将待转发处理的报文发送给上述 Host, 以便上述 Host基于 上述流量控制策略对接收到的上述报文进行转 发处理。通过引入虚拟机与 Host 协商流量控制策略执行方的机制,使得虚拟机 与 Host都有机会成为流量控制策 略执行方, 这使得由执行虚拟机流量控制策略变得可能, 这样就有利于尽可能 早的对报文流进行流量控制, 进而有利于减少无效处理、减少无效报文流量 对 带宽和 Host地址空间的占用。 可见, 上述方案有利于减少处理虚拟机出方向的 报文流量对 Host地址空间的占用。并且由于是通过协商来 定流量控制策略执 行方, 流量控制策略执行方的执行能力得到一定程度 的保证, 因此有利于提高 流量控制策略执行的可靠性。 附图说明

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

图 1是本发明实施例提供的虚拟化架构示意图;

图 2是本发明实施例提供的另一种虚拟化架构示 图;

图 3是本发明实施例提供的一种报文流量控制方 的流程示意图; 图 4-a是本发明实施例提供的另一种报文转发控制 方法的流程示意图; 图 4-b是本发明实施例提供的另一种报文转发控制 方法的流程示意图; 图 5-a是本发明实施例提供的另一种报文转发控制 方法的流程示意图; 图 5-b是本发明实施例提供的一种计算节点的结构 示意图;

图 5-c是本发明实施例提供的一种报文流量控制的 效果示意图;

图 6-a是本发明实施例提供的另一种报文转发控制 方法的流程示意图; 图 6-b是本发明实施例提供的另一种报文流量控制 的效果示意图; 图 7是本发明实施例提供的另一种报文转发控制 法的流程示意图; 图 8是本发明实施例提供的另一种报文转发控制 法的流程示意图; 图 9是本发明实施例提供的一种虚拟机的结构示 图;

图 10是本发明实施例提供的一种宿主机的结构示 图;

图 11是本发明实施例提供的一种计算节点的结构 意图;

图 12是本发明实施例提供的另一种计算节点的结 示意图;

图 13是本发明实施例提供的另一种计算节点的结 示意图。

具体实施方式

本发明实施例提供流量控制方法及相关装置和 计算节点,以减少处理虚拟 机出方向的报文流量对 Host地址空间的占用。

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

为了方便理解本发明实施例,首先在此介绍本 发明实施例描述中会引入的 几个要素;

虚拟机 VM:

通过虚拟机软件可以在一台物理计算机上模拟 出一台或者多台虚拟的计 算机, 而这些虚拟机就像真正的计算机那样进行工作 ,虚拟机上可以安装操作 系统和应用程序,虚拟机还可访问网络资源。 对于在虚拟机中运行的应用程序 而言, 虚拟机就像是在真正的计算机中进行工作。 硬件层:

虚拟化环境运行的硬件平台。 其中, 硬件层可包括多种硬件, 例如某计算 节点的硬件层可包括 CPU和内存, 还可以包括网卡、 存储器等等高速 /低速输 入 /输出 (英文: input/output, 缩写: I/O )设备, 及具有特定处理功能的其它 设备,如输入输出内存管理单元(英文: Input/Output Memory Management Unit , 缩写: IOMMU ), 其中, IOMMU可用于虚拟机物理地址和 Host物理地址的转 换。

宿主机(Host ):

作为管理层, 用以完成硬件资源的管理、 分配; 为虚拟机呈现虚拟硬件平 台; 实现虚拟机的调度和隔离。 其中, Host可能是虚拟机监控器(VMM ); 此 夕卜, 有时 VMM和 1个特权虚拟机配合, 两者结合组成 Host。 其中, 虚拟硬件平 台对其上运行的各个虚拟机提供各种硬件资源 ,如提供虚拟中央处理器(英文: Central Processing Unit, 缩写: CPU )、 内存、 虚拟磁盘、 虚拟网卡等等。 其 中, 该虚拟磁盘可对应 Host的一个文件或者一个逻辑块设备。 虚拟机则运行在 Host为其准备的虚拟硬件平台上, Host上运行一个或多个虚拟机。

参见图 2和,图 2是本发明实施例提出的一种计算节点的虚拟 体系架构示 意图, 该体系架构主要包括三个层次: 硬件层、 Host和虚拟机( VM )。 硬件层 包括网卡。 Host中部署有与网卡对应的后端实例(英文: Back-End,缩写: BE ), VM中具有网卡对应的前端实例(英文: Front-End, 缩写: FE ); 其中, VM中 的 BE可以看成是网卡的前端驱动, Host中的 FE可以看成是网卡的后端驱动。 本发明流量控制方法的一个实施例,一种报文 流量控制方法包括: 基于虚 拟机的流量控制能力在上述虚拟机与 Host之间协商流量控制策略的执行方;若 确定协商出的流量控制策略执行方为上述虚拟 机,则上述虚拟机基于上述流量 控制策略对待转发处理的报文进行转发处理; 若确定协商出的流量控制策略的 执行方为上述 Host, 则上述虚拟机将待转发处理的报文发送给上述 Host, 以便 于上述 Host基于上述流量控制策略对接收到的上述报 进行转发处理。

请参见图 3,图 3为本发明的一个实施例提供的一种报文流量 制方法的流 程示意图。 其中, 如图 3所示, 本发明的一个实施例提供的一种报文流量控制 方法可包括以下内容:

301、 基于虚拟机的流量控制能力在上述虚拟机与 Host之间协商流量控制 策略的执行方。

在本发明一些实施例中,虚拟机与宿主机 Host可通过多种方式来基于上述 虚拟机的流量控制能力在上述虚拟机与 Host之间协商流量控制策略的执行方。

举例来说,上述基于虚拟机的流量控制能力在 上述虚拟机与 Host之间协商 流量控制策略的执行方, 包括: 虚拟机向 Host发送携带上述虚拟机的流量控制 能力的描述信息的执行方协商请求;上述虚拟 机若接收到上述 Host在根据上述 流量控制能力的描述信息确定上述虚拟机支持 执行流量控制策略之后发送的 协商确认指示, 则上述虚拟机确定协商出的流量控制策略执行 方为上述虚拟 机;上述虚拟机若接收到上述 Host在根据上述流量控制能力的描述信息确定 述虚拟机不支持执行流量控制策略之后发送的 协商否认指示,则上述虚拟机确 定协商出的流量控制策略执行方为上述 Host。

又举例来说,基于虚拟机的流量控制能力在上 述虚拟机与 Host之间协商流 量控制策略的执行方, 包括: 虚拟机向 Host发送携带上述虚拟机的流量控制能 力的描述信息的执行方协商请求, 其中, 上述流量控制能力的描述信息用于描 述出上述虚拟机支持执行的流量控制策略的版 本; 上述虚拟机若接收到上述 Host在根据上述流量控制能力的描述信息确定 述虚拟机支持执行当前最新 版本或者预设版本的流量控制策略之后发送的 协商确认指示,则上述虚拟机确 定协商出的流量控制策略执行方为上述虚拟机 。上述虚拟机若接收到上述 Host 在根据上述流量控制能力的描述信息确定上述 虚拟机不支持执行当前最新版 本或者预设版本的流量控制策略之后发送的协 商否认指示,则上述虚拟机确定 协商出的流量控制策略执行方为上述 Host;

又举例来说,基于上述虚拟机的流量控制能力 在上述虚拟机与 Host之间协 商流量控制策略的执行方, 包括: 虚拟机向 Host发送携带上述虚拟机的流量控 制能力的描述信息的执行方协商请求;上述虚 拟机若接收到上述 Host在根据上 述流量控制能力的描述信息确定上述虚拟机支 持执行流量控制策略之后发送 的协商确认指示,则上述虚拟机确定协商出的 流量控制策略执行方为上述虚拟 机;上述虚拟机若在第一设定时长内未接收到 上述 Host发送的用于响应上述执 行方协商请求的协商确认指示,则上述虚拟机 确定协商出的流量控制策略执行 方为上述 Host。

又举例来说,上述基于虚拟机的流量控制能力 在上述虚拟机与 Host之间协 商流量控制策略的执行方, 包括: 虚拟机向 Host发送携带上述虚拟机的流量控 制能力的描述信息的执行方协商请求, 其中, 上述流量控制能力的描述信息用 于描述出上述虚拟机支持执行的流量控制策略 的版本;上述虚拟机若接收到上 述 Host在根据上述流量控制能力的描述信息确定 述虚拟机支持执行当前最 新版本或者预设版本的流量控制策略之后发送 的协商确认指示,则上述虚拟机 确定协商出的流量控制策略执行方为上述虚拟 机;上述虚拟机若在第一设定时 长内未接收到上述 Host发送的用于响应上述执行方协商请求的协 确认指示, 则上述虚拟机确定协商出的流量控制策略执行 方为上述 Host。

又举例来说,上述基于虚拟机的流量控制能力 在上述虚拟机与 Host之间协 商流量控制策略的执行方, 包括: 虚拟机向 Host发送携带上述虚拟机的流量控 制能力的描述信息的执行方协商请求;上述虚 拟机若接收到上述 Host在根据上 述流量控制能力的描述信息确定上述虚拟机不 支持执行流量控制策略之后发 送的协商否认指示, 则上述虚拟机确定协商出的流量控制策略执行 方为上述 Host; 上述虚拟机在第二设定时长内未接收到上述 Host发送的用于响应上述执 行方协商请求的协商否认指示,则上述虚拟机 确定协商出的流量控制策略执行 方为上述虚拟机。

又举例来说,上述基于虚拟机的流量控制能力 在上述虚拟机与 Host之间协 商流量控制策略的执行方, 包括: 虚拟机向 Host发送携带上述虚拟机的流量控 制能力的描述信息的执行方协商请求, 其中, 上述流量控制能力的描述信息用 于描述出上述虚拟机支持执行的流量控制策略 的版本;上述虚拟机若接收到上 述 Host在根据上述流量控制能力的描述信息确定 述虚拟机支持执行当前最 新版本或者预设版本的流量控制策略之后发送 的协商否认指示,则上述虚拟机 确定协商出的流量控制策略执行方为上述 Host;上述虚拟机若在第二设定时长 内未接收到上述 Host发送的用于响应上述执行方协商请求的协 否认指示,则 上述虚拟机确定协商出的流量控制策略执行方 为上述虚拟机。

在本发明的一些实施例中,由于上述流量控制 能力的描述信息用于描述出 上述虚拟机支持执行的流量控制策略的版本, 因此, Host根据上述流量控制能 力的描述信息确定上述虚拟机是否支持执行当 前最新版本或者预设版本的流 量控制策略具体可包括:比较上述流量控制能 力的描述信息所描述出上述虚拟 机支持执行的流量控制策略的版本是否与流量 控制策略的当前最新版本或者 预设版本相同, 若是, 则可确定上述虚拟机支持执行当前最新版本或 者预设版 本的流量控制策略; 若否, 则可确定上述虚拟机不支持执行当前最新版本 或者 预设版本的流量控制策略。 又例如, Host根据上述流量控制能力的描述信息确 定上述虚拟机是否支持执行当前最新版本或者 预设版本的流量控制策略具体 可包括:比较上述流量控制能力的描述信息所 描述出上述虚拟机支持执行的流 量控制策略的 k个(其中, k为正整数)版本中的每个版本, 是否与流量控制策 略的当前最新版本或者预设版本相同,若比较 出上述 k个版本中的其中 1个版本 与流量控制策略的当前最新版本或者预设版本 相同,则可确定上述虚拟机支持 执行当前最新版本或者预设版本的流量控制策 略; 若比较出上述 k个版本中的 任意 1个版本与流量控制策略的当前最新版本或者 设版本均不同, 则可确定 上述虚拟机不支持执行当前最新版本或者预设 版本的流量控制策略。

可以理解,虚拟机与宿主机 Host基于上述虚拟机的流量控制能力在上述虚 拟机与 Host之间协商流量控制策略的执行方的具体方 并不限于上述举例。

302、 若确定出协商出的流量控制策略执行方为上述 虚拟机, 则上述虚拟 机可基于上述流量控制策略对待转发处理的报 文进行转发处理。

303、 若确定出协商出的流量控制策略的执行方为上 述 Host, 则上述虚拟 机将待转发处理的报文发送给上述 Host, 以便于上述 Host基于上述流量控制策 略对接收到的上述报文进行转发处理。

本实施例中提及的流量控制策略例如可为基于 服务质量的流量控制策略 和 /或基于访问控制列表的流量控制策略, 当然流量控制策略也可是参考其他 因素的流量控制策略。

其中,基于服务质量的流量控制策略主要基于 待转发处理报文对应的业务 优先级, 来确定该报文的具体转发处理方式(其中, 具体转发处理方式可以是 延迟发送报文、 无延迟的发送报文或丟弃报文等)。 例如, 当前緩存中存在多 个待转发处理的报文,则所对应业务优先级越 高的报文发送延迟可能越短甚至 无延迟, 所对应业务优先级越低的报文发送延迟可能越 长,甚至可以丟弃所对 的保障高优先级业务的服务质量。 即,基于服务质量的流量控制策略对待转发 处理的报文进行转发处理具体可包括:按照待 转发处理报文的业务优先级所对 应的转发处理方式对该待转发处理的报文进行 转发处理。

其中,基于访问控制列表的流量控制策略, 主要基于待转发处理报文所携 带信息与访问控制列表所包含记录之间是否匹 配,来确定报文的具体转发处理 方式。 例如, 访问控制列表为限制访问控制列表(类似黑名 单), 对于待转发 处理报文的源 /目的地址、 应用层协议类型、 传输层协议类型和 /或报文头所包 含的特定关键字等等信息, 若限制访问控制列表中有与之匹配的记录, 则该待 转发处理报文的转发处理方式可以是直接丟弃 ,反之,对于待转发处理报文的 源 /目的地址、 应用层协议类型、 传输层协议类型和 /或报文头所包含的关键字 等信息,若限制访问控制列表中没有与之匹配 的记录, 则该待转发处理报文的 转发处理方式可以是转发该报文。 又举例来说,假设访问控制列表为允许访问 控制列表(类似白名单), 则对于待转发处理报文的源 /目的地址、 应用层协议 类型、 传输层协议类型和 /或报文头所包含的特定关键字等信息, 若允许访问 控制列表中没有与之匹配的记录,则该待转发 处理报文的转发处理方式可为直 接丟弃, 而对于待转发处理报文的源 /目的地址、 应用层协议类型、 传输层协 议类型和 /或报文头所包含的关键字等信息, 若允许访问控制列表中有与之匹 配的记录, 则该待转发处理报文的转发处理方式可为转发 该报文。 其它情况以 此类推。

在本发明一些实施例中, 上述协商确认指示中包含上述流量控制策略; 上 述虚拟机基于上述流量控制策略对待转发处理 的报文进行转发处理包括:上述 虚拟机基于上述协商确认指示中包含的流量控 制策略对待转发处理的报文进 行转发处理。

当然, Host亦可通过其它方式将流量控制策略传递给 拟机, 以便于虚拟 机在确定协商出的流量控制策略执行方为上述 虚拟机之后,基于 Host传递过来 的流量控制策略对待转发处理的报文进行转发 处理。 当然,也可以在虚拟机中 预配置流量控制策略,当上述虚拟机确定协商 出的流量控制策略执行方为上述 虚拟机,上述虚拟机基于预配置的流量控制策 略对待转发处理的报文进行转发 处理。

在本发明一些实施例中,上述虚拟机向 Host发送携带上述虚拟机的流量控 制能力的描述信息的执行方协商请求包括:虚 拟机在接收到用户态进程发起的 协商启动请求(即可能又用户态应用或用户指 令触发)之后, 向 Host发送携带 上述虚拟机的流量控制能力的描述信息的执行 方协商请求;或者虚拟机可在接 收到来自上述 Host的协商启动请求之后, 向上述 Host发送携带上述虚拟机的流 量控制能力的描述信息的执行方协商请求。 当然,虚拟机亦可自主或在其它条 件的触发下,向 Host发送携带上述虚拟机的流量控制能力的描 信息的执行方 协商请求。

在本发明一些实施例中, 可在虚拟机中部署于预载客户端, 可 Host中部署 于预载服务端,可由预载客户端和预载服务端 来基于上述虚拟机的流量控制能 力在上述虚拟机与 Host之间协商流量控制策略的执行方。 例如, 上述基于上述 虚拟机的流量控制能力在上述虚拟机与 Host之间协商流量控制策略的执行方 可包括:部署于虚拟机中的预载客户端与部署 于 Host中的预载服务端之间的连 接建立完成之后,上述预载客户端基于建立的 上述连接与上述预载服务端基于 上述虚拟机的流量控制能力,在上述虚拟机与 Host之间协商流量控制策略的执 行方。

在本发明一些实施例中, 进一步的, 在确定协商出的流量控制策略执行方 为上述虚拟机之后,上述预载客户端基于上述 连接周期性的向上述预载服务端 发送心跳消息。其中,发送心跳消息的目的之 一是将虚拟机工作正常的状态通 知 Host, Host若在设定时长内未接收到来自上述虚拟机 心跳消息, 则 Host可 默认为虚拟机可能存在故障。例如 Host在确定协商出的流量控制策略的执行方 为上述虚拟机之后, 若在设定时长内未接收到来自上述虚拟机的心 跳消息, 则 上述 Host可将流量控制策略的执行方切换为上述 Host (即无论虚拟机是否基于 流量控制策略对待转发处理的报文进行转发处 理, Host也基于流量控制策略对 来自该虚拟机的报文进行转发处理,由于 Host和虚拟机中执行的流量控制策略 相同, 因此, 对于同一报文流, 若 Host和 /或虚拟机执行流量控制策略, 最终 报文输出情况是基本相同的), 可向或不向上述虚拟机发送用于指示流量控制 策略的执行方切换为上述 Host的指示消息。

在本发明一些实施例中,在确定协商出的流量 控制策略执行方为上述虚拟 机之后, 上述预载客户端亦可在虚拟机执行流量控制策 略故障时, 向预载服务 端发送用于指示虚拟机执行流量控制策略故障 的指示消息,而 Host在确定协商 出的流量控制策略的执行方为上述虚拟机之后 ,若接收到来自虚拟机的用于指 示虚拟机执行流量控制策略故障的指示消息, 则上述 Host可将流量控制策略的 执行方切换为上述 Host。

在本发明一些实施例中,在确定协商出的流量 控制策略执行方为上述虚拟 机之后,预载服务端亦可周期性的或非周期性 的向预载客户端发送用于查询虚 拟机执行流量控制策略是否正常的状态查询消 息,若在设定时长之内未接收到 来自虚拟机的用于响应上述状态查询消息的状 态指示消息,或接收到来自虚拟 机的用于指示虚拟机执行流量控制策略故障的 指示消息,则可确定虚拟机执行 流量控制策略故障。 当然,预载服务端亦可通过其它方式监测虚拟 机执行流量 控制策略是否故障。 若确定虚拟机执行流量控制策略故障, Host可将流量控制 策略的执行方切换为上述 Host。

可以看出, 本实施例的方案中,基于上述虚拟机的流量控 制能力在上述虚 拟机与 Host之间协商流量控制策略的执行方;若确定 商出的流量控制策略执 行方为上述虚拟机,则上述虚拟机基于上述流 量控制策略对待转发处理的报文 进行转发处理; 若确定协商出的流量控制策略的执行方为上述 Host, 则上述虚 拟机将待转发处理的报文发送给上述 Host, 以便上述 Host基于上述流量控制策 略对接收到的上述报文进行转发处理。通过引 入虚拟机与 Host协商流量控制策 略执行方的机制, 使得虚拟机与 Host都有机会成为流量控制策略执行方, 这使 得由执行虚拟机流量控制策略变得可能,这样 就有利于尽可能早的对报文流进 行流量控制, 进而有利于减少无效处理、 减少无效报文流量对带宽和 Host地址 空间的占用。可见, 上述方案有利于减少转发处理虚拟机出方向的 报文流量对 Host地址空间的占用。 并且由于是通过协商来确定流量控制策略执行 方, 因此 有利于提高流量控制策略执行的可靠性。

进一步的, 当虚拟机与 Host都支持执行流量控制策略时, 优先让虚拟机来 执行流量控制策略, 这样进一步有利于尽可能早的对报文进行流量 控制, 进而 进一步有利于减少无效处理和无效报文流量对 带宽的占用。 本发明流量控制方法的另一个实施例, 另一种报文流量控制方法包括: 基 于虚拟机的流量控制能力在上述虚拟机与 Host之间协商流量控制策略的执行 方; 上述 Host若确定协商出的流量控制策略执行方为上 Host, 上述 Host在接 收到来自上述虚拟机的报文之后,基于上述流 量控制策略对接收到的上述报文 进行转发处理。

请参见图 4-a, 图 4-a为本发明的另一个实施例提供的另一种报文 流量控制 方法的流程示意图。 其中, 如图 4-a所示, 本发明的另一个实施例提供的另一 种报文流量控制方法可包括以下内容:

401、 基于虚拟机的流量控制能力在上述虚拟机与 Host之间协商流量控制 策略的执行方。

在本发明一些实施例中, Host与虚拟机可通过多种方式来基于上述虚拟 的流量控制能力在上述虚拟机与 Host之间协商流量控制策略的执行方。

举例来说,上述宿主机 Host与虚拟机基于上述虚拟机的流量控制能力 上 述虚拟机与 Host之间协商流量控制策略的执行方, 可包括: Host接收虚拟机发 送的携带上述虚拟机的流量控制能力的描述信 息的执行方协商请求; 若上述 Host根据上述流量控制能力的描述信息确定上 虚拟机支持执行流量控制策 略, 则向上述虚拟机发送协商确认指示, 上述协商确认指示用于表示协商出的 流量控制策略执行方为上述虚拟机; 和 /或, 若上述 Host根据上述流量控制能 力的描述信息确定上述虚拟机不支持执行流量 控制策略,则向上述虚拟机发送 协商否认指示,上述协商否认指示用于表示协 商出的流量控制策略执行方为上 述 Host。

又举例来说,上述宿主机 Host与虚拟机基于上述虚拟机的流量控制能力 上述虚拟机与 Host之间协商流量控制策略的执行方, 可包括: Host接收虚拟机 发送的携带上述虚拟机的流量控制能力的描述 信息的执行方协商请求, 其中, 上述流量控制能力的描述信息用于描述出上述 虚拟机支持执行的流量控制策 略的版本;若上述 Host根据上述流量控制能力的描述信息确定上 虚拟机支持 执行当前最新版本或者预设版本的流量控制策 略,则向上述虚拟机发送协商确 认指示, 其中, 上述协商确认指示用于表示协商出的流量控制 策略执行方为上 述虚拟机; 和 /或若上述 Hos 艮据上述流量控制能力的描述信息确定上述虚 拟 机不支持执行当前最新版本或者预设版本的流 量控制策略,则向上述虚拟机发 送协商否认指示, 其中, 上述协商否认指示用于表示协商出的流量控制 策略执 行方为上述 Host。

可以理解,虚拟机与宿主机 Host基于上述虚拟机的流量控制能力在上述虚 拟机与 Host之间协商流量控制策略的执行方的具体方 并不限于上述举例。

402、 若确定协商出的流量控制策略执行方为上述 Host, 上述 Host在接收 到来自上述虚拟机的报文之后,基于上述流量 控制策略对接收到的上述报文进 行转发处理。

可以理解的是, 上面提到的 "双方"是指参与协商流量控制策略执行方的 对象双方, 而此处, 这对象双方即上述虚拟机与上述 Host。

此外, 若协商出的流量控制策略执行方为该虚拟机, 则上述虚拟机可基于 上述流量控制策略对待转发处理的报文进行转 发处理。

本实施例中提及的流量控制策略例如可为基于 服务质量的流量控制策略 和 /或基于访问控制列表的流量控制策略, 当然流量控制策略也可是参考其他 因素的流量控制策略。

其中,基于服务质量的流量控制策略主要基于 待转发处理报文对应的业务 优先级, 来确定该报文的具体转发处理方式(其中, 具体转发处理方式可以是 延迟发送报文、 无延迟的发送报文或丟弃报文等)。 例如, 当前緩存中存在多 个待转发处理的报文,则所对应业务优先级越 高的报文发送延迟可能越短甚至 无延迟, 所对应业务优先级越低的报文发送延迟可能越 长,甚至可以丟弃所对 的保障高优先级业务的服务质量。 即,基于服务质量的流量控制策略对待转发 处理的报文进行转发处理具体可包括:按照待 转发处理报文的业务优先级所对 应的转发处理方式对该待转发处理的报文进行 转发处理。

其中,基于访问控制列表的流量控制策略, 主要基于待转发处理报文所携 带信息与访问控制列表所包含记录之间是否匹 配,来确定报文的具体转发处理 方式。 例如, 访问控制列表为限制访问控制列表(类似黑名 单), 对于待转发 处理报文的源 /目的地址、 应用层协议类型、 传输层协议类型和 /或报文头所包 含的特定关键字等等信息, 若限制访问控制列表中有与之匹配的记录, 则该待 转发处理报文的转发处理方式可以是直接丟弃 ,反之,对于待转发处理报文的 源 /目的地址、 应用层协议类型、 传输层协议类型和 /或报文头所包含的关键字 等信息,若限制访问控制列表中没有与之匹配 的记录, 则该待转发处理报文的 转发处理方式可以是转发该报文。 又举例来说,假设访问控制列表为允许访问 控制列表(类似白名单), 则对于待转发处理报文的源 /目的地址、 应用层协议 类型、 传输层协议类型和 /或报文头所包含的特定关键字等信息, 若允许访问 控制列表中没有与之匹配的记录,则该待转发 处理报文的转发处理方式可为直 接丟弃, 而对于待转发处理报文的源 /目的地址、 应用层协议类型、 传输层协 议类型和 /或报文头所包含的关键字等信息, 若允许访问控制列表中有与之匹 配的记录, 则该待转发处理报文的转发处理方式可为转发 该报文。 其它情况以 此类推。

在本发明一些实施例中, 上述协商确认指示包含上述流量控制策略; 上述 虚拟机基于上述流量控制策略对待转发处理的 报文进行转发处理包括:上述虚 拟机基于上述协商确认指示中包含的流量控制 策略对待转发处理的报文进行 转发处理。

当然, Host亦可通过其它方式将流量控制策略传递给 拟机, 以便于虚拟 机在确定协商出的流量控制策略执行方为上述 虚拟机之后,基于 Host传递过来 的流量控制策略对待转发处理的报文进行转发 处理。 当然,也可以在虚拟机中 预配置流量控制策略,当上述虚拟机确定协商 出的流量控制策略执行方为上述 虚拟机,上述虚拟机基于预配置的流量控制策 略对待转发处理的报文进行转发 处理。

在本发明一些实施例中, 可在虚拟机中部署于预载客户端, 可 Host中部署 于预载服务端,可由预载客户端和预载服务端 来基于上述虚拟机的流量控制能 力在上述虚拟机与 Host之间协商流量控制策略的执行方。 例如, 上述虚拟机与 宿主机 Host基于上述虚拟机的流量控制能力在上述虚 机与 Host之间协商流 量控制策略的执行方可包括:部署于 Host中的预载服务端与部署于虚拟机中的 预载客户端之间的连接建立完成之后,上述预 载服务端基于建立的上述连接与 上述预载客户端基于上述虚拟机的流量控制能 力,在上述虚拟机与 Host之间协 商流量控制策略的执行方。

在本发明一些实施例中, 进一步的, 在确定协商出的流量控制策略执行方 为上述虚拟机之后,上述预载客户端可基于上 述连接周期性的向上述预载服务 端发送心跳消息。 发送心跳消息的目的之一是将虚拟机工作正常 的状态通知 Host, Host若在设定时长内未接收到来自上述虚拟机 心跳消息, 则 Host可默 认为虚拟机可能存在故障。 举例来说, Host在确定协商出的流量控制策略的执 行方为上述虚拟机之后, 若在设定时长内未接收到来自上述虚拟机的心 跳消 息, 则上述 Host可将流量控制策略的执行方切换为上述 Host (即无论虚拟机是 否基于流量控制策略对待转发处理的报文进行 转发处理, Host也基于流量控制 策略对来自该虚拟机的报文进行转发处理,由 于 Host和虚拟机中执行的流量控 制策略相同, 因此, 对于同一报文流而言, 若 Host和 /或虚拟机执行流量控制 策略, 最终报文输出情况是基本相同的), 可向或不向上述虚拟机发送用于指 示流量控制策略的执行方切换为上述 Host的指示消息。

可以看出, 本实施例的方案中, Host与虚拟机基于上述虚拟机的流量控制 能力在上述虚拟机与 Host之间协商流量控制策略的执行方; 上述 Host若确定协 商出的流量控制策略执行方为上述 Host, 上述 Host在接收到来自上述虚拟机的 报文之后,基于上述流量控制策略对接收到的 上述报文进行转发处理。通过引 入虚拟机与 Host协商流量控制策略执行方的机制, 使得虚拟机与 Host都有机会 成为流量控制策略执行方, 这使得由执行虚拟机流量控制策略变得可能, 这样 就有利于尽可能早的对报文流进行流量控制, 进而有利于减少无效处理、减少 无效报文流量对带宽和 Host地址空间的占用。 可见, 上述方案有利于减少转发 处理虚拟机出方向的报文流量对 Host地址空间的占用。 并且, 由于是通过协商 方式来确定流量控制策略执行方, 因此有利于提高流量控制策略执行的可靠 性。

进一步的, 当虚拟机与 Host都支持执行流量控制策略时, 优先让虚拟机来 执行流量控制策略, 这样进一步有利于尽可能早的对报文进行流量 控制, 进而 进一步有利于减少无效处理和无效报文流量对 带宽的占用。

本发明实施例还提供一种报文流量控制方法, 可包括: 基于虚拟机的流量 控制能力, 在宿主机 Host和所述虚拟机之间协商出流量控制策略的 行方; 若 协商出的流量控制策略执行方为所述虚拟机, 则基于所述流量控制策略对所述 虚拟机待转发处理的报文进行转发处理;若协 商出的流量控制策略的执行方为 所述 Host, 则将所述虚拟机待转发处理的报文发送给所述 Host; 基于所述流量 控制策略对所述 Host接收到的待转发处理的所述报文进行转发 理。

在本发明一些实施例中, 所述基于虚拟机的流量控制能力, 在宿主机 Host 和所述虚拟机之间协商出流量控制策略的执行 方包括:

向 Host发送所述虚拟机待向所述 Host发送的执行方协商请求, 所述执行方 协商请求携带所述虚拟机的流量控制能力的描 述信息;

在所述 Host接收到所述执行方协商请求之后,若根据 述流量控制能力的 描述信息确定所述虚拟机支持执行流量控制策 略, 则向所述虚拟机发送所述 Host待向所述虚拟机发送的协商确认指示, 其中, 所述协商确认指示用于表示 协商出的流量控制策略执行方为所述虚拟机; 和 /或, 若根据所述流量控制能 力的描述信息确定所述虚拟机不支持执行流量 控制策略,则向所述虚拟机发送 所述 Host待向所述虚拟机发送的协商否认指示,所 协商否认指示用于表示协 商出的流量控制策略执行方为所述 Host;

或者,

所述基于虚拟机的流量控制能力,在宿主机 Host和所述虚拟机之间协商出 流量控制策略的执行方包括:

向 Host发送所述虚拟机待向所述 Host发送的执行方协商请求, 所述执行方 协商请求携带所述虚拟机的流量控制能力的描 述信息,所述流量控制能力的描 述信息用于描述出所述虚拟机支持执行的流量 控制策略的版本;

在所述 Host接收到所述执行方协商请求之后,若根据 述流量控制能力的 描述信息,确定所述虚拟机支持执行当前最新 版本或者预设版本的流量控制策 略, 则向所述虚拟机发送所述 Host待向所述虚拟机发送的协商确认指示, 所述 协商确认指示用于表示协商出的流量控制策略 执行方为所述虚拟机; 和 /或若 根据所述流量控制能力的描述信息确定所述虚 拟机不支持执行当前最新版本 或者预设版本的流量控制策略,则向所述虚拟 机发送所述 Host待向所述虚拟机 发送的协商否认指示, 其中, 所述协商否认指示用于表示协商出的流量控制 策 略执行方为所述 Host。

在本发明一些实施例中, 所述协商确认指示中包含所述流量控制策略; 其中,所述基于所述流量控制策略对所述虚拟 机待转发处理的报文进行转 发处理包括:基于所述协商确认指示中包含的 所述流量控制策略对所述虚拟机 待转发处理的报文进行转发处理。

在本发明一些实施例中,在协商出的流量控制 策略的执行方为所述虚拟机 之后, 若所述 Host在设定时长内未接收到来自所述虚拟机的 跳消息, 向所述 虚拟机发送所述 Host待向所述虚拟机发送的,用于指示流量控 策略的执行方 切换为所述 Host的指示消息。

本实施例中提及的上述处理器处理待转发处理 的报文所基于的流量控制 策略例如可为基于服务质量的流量控制策略和 /或基于访问控制列表的流量控 制策略, 当然流量控制策略也可是参考其他因素的流量 控制策略。

其中,基于服务质量的流量控制策略主要基于 待转发处理报文对应的业务 优先级, 来确定该报文的具体转发处理方式(其中, 具体转发处理方式可以是 延迟发送报文、 无延迟的发送报文或丟弃报文等)。 例如, 当前緩存中存在多 个待转发处理的报文,则所对应业务优先级越 高的报文发送延迟可能越短甚至 无延迟, 所对应业务优先级越低的报文发送延迟可能越 长,甚至可以丟弃所对 的保障高优先级业务的服务质量。 即,基于服务质量的流量控制策略对待转发 处理的报文进行转发处理具体可包括:按照待 转发处理报文的业务优先级所对 应的转发处理方式对该待转发处理的报文进行 转发处理。

其中,基于访问控制列表的流量控制策略, 主要基于待转发处理报文所携 带信息与访问控制列表所包含记录之间是否匹 配,来确定报文的具体转发处理 方式。 例如, 访问控制列表为限制访问控制列表(类似黑名 单), 对于待转发 处理报文的源 /目的地址、 应用层协议类型、 传输层协议类型和 /或报文头所包 含的特定关键字等等信息, 若限制访问控制列表中有与之匹配的记录, 则该待 转发处理报文的转发处理方式可以是直接丟弃 ,反之,对于待转发处理报文的 源 /目的地址、 应用层协议类型、 传输层协议类型和 /或报文头所包含的关键字 等信息, 若限制访问控制列表中没有与之匹配的记录, 则该待转发处理报文的 转发处理方式可以是转发该报文。 又举例来说,假设访问控制列表为允许访问 控制列表(类似白名单), 则对于待转发处理报文的源 /目的地址、 应用层协议 类型、 传输层协议类型和 /或报文头所包含的特定关键字等信息, 若允许访问 控制列表中没有与之匹配的记录,则该待转发 处理报文的转发处理方式可为直 接丟弃, 而对于待转发处理报文的源 /目的地址、 应用层协议类型、 传输层协 议类型和 /或报文头所包含的关键字等信息, 若允许访问控制列表中有与之匹 配的记录, 则该待转发处理报文的转发处理方式可为转发 该报文。 其它情况以 此类推。

在本发明一些实施例中, 所述向 Host发送所述虚拟机待向所述 Host发送的 执行方协商请求包括: 在虚拟机在接收到用户态进程发起的协商启动 请求之 后, 向 Host发送所述虚拟机待向所述 Host发送的执行方协商请求; 或者, 在虚 拟机在接收到来自所述 Host的协商启动请求之后, 向所述 Host发送所述虚拟机 待向所述 Host发送的执行方协商请求。

在本发明一些实施例中, 基于虚拟机的流量控制能力, 在宿主机 Host和所 述虚拟机之间协商出流量控制策略的执行方包 括:在部署于虚拟机中的预载客 户端与部署于 Host中的预载服务端之间的连接建立完成之后 通过建立的所述 连接, 基于虚拟机的流量控制能力, 在宿主机 Host和所述虚拟机之间协商出流 量控制策略的执行。

其中, 本实施例上述步骤可由处理器或其它硬件来执 行。 请参见图 4-b, 图 4-b为本发明的另一个实施例提供的另一种报文 流量控制 方法的流程示意图。 其中, 如图 4-b所示, 本发明的另一个实施例提供的另一 种报文流量控制方法可包括以下内容:

s401、 处理器基于虚拟机的流量控制能力, 在宿主机 Host和上述虚拟机之 间协商出流量控制策略的执行方。

s402、 若协商出的流量控制策略执行方为上述虚拟机 , 则上述处理器基于 s403、 若协商出的流量控制策略的执行方为上述 Host, 则上述处理器将上 述虚拟机待转发处理的报文发送给上述 Host;上述处理器基于上述流量控制策 略对上述 Host接收到的待转发处理的上述报文进行转发 理。

在本发明一些实施例中, 上述处理器基于虚拟机的流量控制能力, 在宿主 机 Host和上述虚拟机之间协商出流量控制策略的 行方, 可包括:

上述处理器基于虚拟机的流量控制能力,在宿 主机 Host和上述虚拟机之间 协商出流量控制策略的执行方包括:上述处理 器向 Host发送上述虚拟机待向上 述 Host发送的执行方协商请求,上述执行方协商 求携带上述虚拟机的流量控 制能力的描述信息;

在上述 Host接收到上述执行方协商请求之后,上述处 器若根据上述流量 控制能力的描述信息确定上述虚拟机支持执行 流量控制策略,则上述处理器向 上述虚拟机发送上述 Host待向上述虚拟机发送的协商确认指示, 其中, 上述协 商确认指示用于表示协商出的流量控制策略执 行方为上述虚拟机; 和 /或, 上 述处理器若根据上述流量控制能力的描述信息 ,确定上述虚拟机不支持执行流 量控制策略,则上述处理器向上述虚拟机发送 上述 Host待向上述虚拟机发送的 协商否认指示, 其中, 上述协商否认指示用于表示协商出的流量控制 策略执行 方为上述 Host;

或者,

上述处理器基于虚拟机的流量控制能力,在宿 主机 Host和上述虚拟机之间 协商出流量控制策略的执行方包括:上述处理 器向 Host发送上述虚拟机待向上 述 Host发送的执行方协商请求,上述执行方协商 求携带上述虚拟机的流量控 制能力的描述信息,上述流量控制能力的描述 信息用于描述出上述虚拟机支持 执行的流量控制策略的版本;

在上述 Host接收到上述执行方协商请求之后,上述处 器若根据上述流量 控制能力的描述信息,确定上述虚拟机支持执 行当前最新版本或者预设版本的 流量控制策略,则上述处理器向上述虚拟机发 送上述 Host待向上述虚拟机发送 的协商确认指示,上述协商确认指示用于表示 协商出的流量控制策略执行方为 上述虚拟机; 和 /或上述处理器若根据上述流量控制能力的描 信息确定上述 虚拟机不支持执行当前最新版本或者预设版本 的流量控制策略,则上述处理器 向上述虚拟机发送上述 Host待向上述虚拟机发送的协商否认指示, 其中, 上述 协商否认指示用于表示协商出的流量控制策略 执行方为上述 Host。 在本发明一些实施例中, 上述协商确认指示中包含上述流量控制策略。 其中,上述处理器基于上述流量控制策略对上 述虚拟机待转发处理的报文 进行转发处理包括:上述处理器基于上述协商 确认指示中包含的上述流量控制 当然, Host亦可通过其它方式将流量控制策略传递给 拟机, 以便于在确 定协商出的流量控制策略执行方为上述虚拟机 之后,上述处理器基于 Host传递 过来的流量控制策略对虚拟机待转发处理的报 文进行转发处理。 当然,也可以 在虚拟机中预配置流量控制策略,当确定协商 出的流量控制策略执行方为上述 虚拟机,上述处理器基于预配置的流量控制策 略对上述虚拟机待转发处理的报 文进行转发处理。

在本发明的一些实施例中,在协商出的流量控 制策略的执行方为上述虚拟 机后, 若上述 Host在设定时长内未接收到来自上述虚拟机的 跳消息, 上述处 理器向上述虚拟机发送上述 Host待向上述虚拟机发送的,用于指示流量控 策 略的执行方切换为上述 Host的指示消息。

在本发明一些实施例中,上述流量控制策略为 基于服务质量的流量控制策 略和 /或基于访问控制列表的流量控制策略。

在本发明一些实施例中, 上述处理器向 Host发送上述虚拟机待向上述 Host 发送的执行方协商请求可包括:

在虚拟机在接收到用户态进程发起的协商启动 请求之后, 上述处理器向 Host发送上述虚拟机待向上述 Host发送的执行方协商请求; 或者, 在虚拟机在 接收到来自上述 Host的协商启动请求之后, 上述处理器向上述 Host发送上述虚 拟机待向上述 Host发送的执行方协商请求。

本实施例中提及的上述处理器处理待转发处理 的报文所基于的流量控制 策略例如可为基于服务质量的流量控制策略和 /或基于访问控制列表的流量控 制策略, 当然流量控制策略也可是参考其他因素的流量 控制策略。

其中,基于服务质量的流量控制策略主要基于 待转发处理报文对应的业务 优先级, 来确定该报文的具体转发处理方式(其中, 具体转发处理方式可以是 延迟发送报文、 无延迟的发送报文或丟弃报文等)。 例如, 当前緩存中存在多 个待转发处理的报文,则所对应业务优先级越 高的报文发送延迟可能越短甚至 无延迟, 所对应业务优先级越低的报文发送延迟可能越 长,甚至可以丟弃所对 的保障高优先级业务的服务质量。 即,基于服务质量的流量控制策略对待转发 处理的报文进行转发处理具体可包括:按照待 转发处理报文的业务优先级所对 应的转发处理方式对该待转发处理的报文进行 转发处理。

其中,基于访问控制列表的流量控制策略, 主要基于待转发处理报文所携 带信息与访问控制列表所包含记录之间是否匹 配,来确定报文的具体转发处理 方式。 例如, 访问控制列表为限制访问控制列表(类似黑名 单), 对于待转发 处理报文的源 /目的地址、 应用层协议类型、 传输层协议类型和 /或报文头所包 含的特定关键字等等信息, 若限制访问控制列表中有与之匹配的记录, 则该待 转发处理报文的转发处理方式可以是直接丟弃 ,反之,对于待转发处理报文的 源 /目的地址、 应用层协议类型、 传输层协议类型和 /或报文头所包含的关键字 等信息,若限制访问控制列表中没有与之匹配 的记录, 则该待转发处理报文的 转发处理方式可以是转发该报文。 又举例来说,假设访问控制列表为允许访问 控制列表(类似白名单), 则对于待转发处理报文的源 /目的地址、 应用层协议 类型、 传输层协议类型和 /或报文头所包含的特定关键字等信息, 若允许访问 控制列表中没有与之匹配的记录,则该待转发 处理报文的转发处理方式可为直 接丟弃, 而对于待转发处理报文的源 /目的地址、 应用层协议类型、 传输层协 议类型和 /或报文头所包含的关键字等信息, 若允许访问控制列表中有与之匹 配的记录, 则该待转发处理报文的转发处理方式可为转发 该报文。 其它情况以 此类推。

在本发明一些实施例中, 上述基于虚拟机的流量控制能力, 在宿主机 Host 和上述虚拟机之间协商出流量控制策略的执行 方, 可包括: 在部署于虚拟机中 的预载客户端与部署于 Host中的预载服务端之间的连接建立完成之后 上述处 理器通过建立的上述连接, 基于虚拟机的流量控制能力, 在宿主机 Host和上述 虚拟机之间协商出流量控制策略的执行。

可以看出, 本实施例的方案中, 在处理器的协助下, 虚拟机与宿主机 Host 基于上述虚拟机的流量控制能力在上述虚拟机 与 Host之间协商流量控制策略 的执行方; 若上述虚拟机确定协商出的流量控制策略执行 方为上述虚拟机, 则 上述虚拟机基于上述流量控制策略对待转发处 理的报文进行转发处理;若上述 虚拟机确定协商出的流量控制策略的执行方为 上述 Host,则上述虚拟机将待转 发处理的报文发送给上述 Host, 以便上述 Host基于上述流量控制策略对接收到 的上述报文进行转发处理。通过弓 I入虚拟机与 Host协商流量控制策略执行方的 机制, 使得虚拟机与 Host都有机会成为流量控制策略执行方, 这使得由执行虚 拟机流量控制策略变得可能, 这样就有利于尽可能早的对报文流进行流量控 制, 进而有利于减少无效处理、 减少无效报文流量对带宽和 Host地址空间的占 用。 可见, 上述方案有利于减少转发处理虚拟机出方向的 报文流量对 Host地址 空间的占用。 并且由于是通过协商来确定流量控制策略执行 方, 因此有利于提 高流量控制策略执行的可靠性。

进一步的, 当虚拟机与 Host都支持执行流量控制策略时, 优先让虚拟机来 执行流量控制策略, 这样进一步有利于尽可能早的对报文进行流量 控制, 进而 进一步有利于减少无效处理和无效报文流量对 带宽的占用。 为便于更好的理解和实施本发明实施例的上述 方案,下面通过一些具体例 子进行举例说明。

参见图 5-a和图 5-b, 其中, 图 5-a为本发明的另一个实施例提供的另一种报 文流量控制方法的流程示意图。 图 5-b为本发明实施例提供的一种可用于实施 如图 5-a所示流量控制方法的计算节点结构示意图。 图 5-b中举例部署于计算节 点中的 Host和虚拟机的一种具体内部逻辑架构, 当然 Host和虚拟机亦可具有区 别于图 5-b举例的其它内部逻辑架构。 本实施例中主要以在图 5-b所示架构下实 施流量控制方法为例进行描述。

如图 5-a所示, 本发明的另一个实施例提供的另一种报文流量 控制方法可 包括以下内容:

501、 虚拟机 VM-m中部署的预载客户端 (英文: preload client )与 Host中 部署的预载服务端 (英文: preload server )建立连接。 其中, 该连接传输控制 协议连接或其它类型的通信连接。

其中,虚拟机 VM-m中部署的 preload client与 Host中部署的 preload server之 间存在固有通信连接或可直接通信, 则步骤 501亦可省略之。 502、 虚拟机 VM-m中部署的 preload client接收 Host中部署的 preload server 发送的协商启动请求。

503、 虚拟机 VM-m中部署的 preload client, 向 Host中部署的 preload server 发送携带虚拟机 VM-m的流量控制能力的描述信息的执行方协商 求。

可以理解, 步骤 502中 Host中部署的 preload server向虚拟机 VM-m中部署的 preload client发送协商启动请求, 主要目的是为了触发虚拟机 VM-m中部署的 preload client发起协商流量控制策略执行方, 当然, 虚拟机 VM-m中部署的 preload client也可能在其它条件(举例来说, 接收到用户态进程发起的协商启 动请求(即可能由用户态应用或用户指令触发 )) 的触发下, 发起协商流量控 制策略执行方。 若虚拟机 VM-m中部署的 preload client自主发起流量控制策略 执行方的协商, 则步骤 502可以省略。

504、 Host中部署的 preload server接收携带虚拟机 VM-m的流量控制能力的 描述信息的执行方协商请求, 其中, 该执行方协商请求携带的上述流量控制能 力的描述信息用于指示出虚拟机 VM-m是否支持执行流量控制策略, 因此 Host 中部署的 preload server可根据上述流量控制能力的描述信息, 确定上述虚拟机

VM-m是否支持执行流量控制策略。

本实施例下面以 Host中部署的 preload server确定上述虚拟机 VM-m支持执 行流量控制策略为例。 因此, Host中部署的 preload server可向虚拟机 VM-m中 部署的 preload client发送协商确认指示, 其中, 上述协商确认指示用于表示协 商出的流量控制策略执行方为上述虚拟机 VM-m, 其中, 上述协商确认指示中 可携带流量控制策略。 其中, Host中部署的 preload server还通知 Host中部署的 预载内核 (英文: preload kernel ) 不执行流量控制策略。

505、 虚拟机 VM-m中部署的 preload client接收 Host中部署的 preload server 发送的协商确认指示之后, 确定协商出的流量控制策略执行方为上述虚拟 机 VM-m, 因此, 虚拟机 VM-m中部署的 preload client向虚拟机 VM-m中部署的网 卡对应的 FE发送上述协商确认指示中携带的流量控制策 , 以通知虚拟机 VM-m中部署的网卡对应的 FE执行流量控制策略。

其中, 通过执行步骤 503~505, 虚拟机 VM-m中部署的 preload client和 Host 中部署的 preload server双方协商出了流量控制策略的执行方。 506、 虚拟机 VM-m中部署的网卡对应的 FE接收到流量控制策略后, 基于 接收到的流量控制策略, 对来自虚拟机 VM-m中部署的用户态应用的待转发处 理报文进行转发处理。

本实施例中以流量控制策略为基于服务质量的 流量控制策略或基于访问 控制列表的流量控制策略为例。

其中,基于服务质量的流量控制策略主要基于 待转发处理报文对应的业务 优先级, 来确定该报文的具体转发处理方式(其中, 具体转发处理方式可以是 延迟发送报文、 无延迟的发送报文或丟弃报文等)。 例如, 当前緩存中存在多 个待转发处理的报文,则所对应业务优先级越 高的报文发送延迟可能越短甚至 无延迟, 所对应业务优先级越低的报文发送延迟可能越 长,甚至可以丟弃所对 的保障高优先级业务的服务质量。

其中,基于访问控制列表的流量控制策略, 主要基于待转发处理报文所携 带信息与访问控制列表所包含记录之间是否匹 配,来确定报文的具体转发处理 方式。 例如, 访问控制列表为限制访问控制列表(类似黑名 单), 对于待转发 处理报文的源 /目的地址、 应用层协议类型、 传输层协议类型和 /或报文头所包 含的特定关键字等等信息, 若限制访问控制列表中有与之匹配的记录, 则该待 转发处理报文的转发处理方式可以是直接丟弃 ,反之,对于待转发处理报文的 源 /目的地址、 应用层协议类型、 传输层协议类型和 /或报文头所包含的关键字 等信息, 若限制访问控制列表中没有与之匹配的记录, 则该待转发处理报文的 转发处理方式可以是转发该报文。 又举例来说,假设访问控制列表为允许访问 控制列表(类似白名单), 则对于待转发处理报文的源 /目的地址、 应用层协议 类型、 传输层协议类型和 /或报文头所包含的特定关键字等信息, 若允许访问 控制列表中没有与之匹配的记录,则该待转发 处理报文的转发处理方式可为直 接丟弃。 而对于待转发处理报文的源 /目的地址、 应用层协议类型、 传输层协 议类型和 /或报文头所包含的关键字等信息, 若允许访问控制列表中有与之匹 配的记录, 则该待转发处理报文的转发处理方式可为转发 该报文。 其它情况以 此类推。

因此, 虚拟机 VM-m中部署的网卡对应的 FE, 基于流量控制策略对来自虚 拟机 VM-m中部署的网卡对应的 FE丟弃来自虚拟机 VM-m中部署的用户态应用 的待转发处理的报文;或者,虚拟机 VM-m中部署的网卡对应的 FE,有延迟(延 迟程度可能与待转发处理报文的业务优先级和 当前待转发处理报文数量相关) 的发送来自虚拟机 VM-m中部署的用户态应用的待转发处理的报文 或虚拟机 VM-m中部署的网卡对应的 FE, 无延迟的发送来自虚拟机 VM-m中部署的用户 态应用的待转发处理的报文, 其它方式此处不再列举。

Host中部署的网卡对应的 BE若接收到来自虚拟机 VM-m中部署的网卡对 应的 FE的报文, 则向 Host中部署的 preload kernel转发接收到的报文。

由于 Host中部署的 preload kernel无需执行流量控制策略, 因此 Host中部署 的 preload kernel可直接通过网卡驱动向网卡转发接收到的 报文, 网卡则对接收 到的报文进行相应转发处理。

在本发明一些实施例中,在确定协商出的流量 控制策略执行方为上述虚拟 机 VM-m之后,上述 preload client可基于上述连接周期性的向上述 preload server 发送心跳消息。 其中, 发送心跳消息的目的之一是将虚拟机 VM-m工作正常的 状态通知上述 preload server, preload server若在设定时长内未接收到来自上述 preload client的心跳消息, 则上述 preload server可默认为 VM-m可能存在故障。 例如, 上述 preload server在确定协商出的流量控制策略的执行方为 上述虚拟机 VM-m之后, 若设定时长内未接收到来自上述 preload client的心跳消息, 则上 述 preload server可将流量控制策略的执行方切换为上述 Host (即无论虚拟机 VM-m中部署的网卡对应的 FE是否基于流量控制策略对待转发处理的报文 行转发处理, 上述 preload kernel都基于流量控制策略来对来自该虚拟机 VM-m 的报文进行转发处理, 由于 Host和虚拟机 VM-m中执行的流量控制策略相同, 因此, 对于同一报文流, 若上述 preload kernel和 /或虚拟机 VM-m中部署的网卡 对应的 FE执行同一个流量控制策略, preload kernel最终报文输出情况是基本相 同的),可向上述 preload client发送用于指示流量控制策略的执行方切换 为上述 Host的指示消息。

在本发明的一些实施例中,在确定协商出的流 量控制策略执行方为上述虚 拟机 VM-m之后,上述 preload client亦可在虚拟机 VM-m中部署的网卡对应的 FE 执行流量控制策略故障时, 向上述 preload server发送用于指示虚拟机 VM-m执 行流量控制策略故障的指示消息。 而上述 preload server在确定协商出的流量控 制策略的执行方为上述虚拟机之后, 若接收到来自上述 preload client的用于指 示虚拟机 VM-m执行流量控制策略故障的指示消息, 则上述 preload server可将 流量控制策略的执行方切换为 Host , 上述 preload server可通知上述 preload kernel执行流量控制策略。

在本发明的一些实施例中,在确定协商出的流 量控制策略执行方为上述虚 拟机 VM-m之后, 上述 preload server亦可周期性的或非周期性的向上述 preload client亦发送用于查询虚拟机 VM-m执行流量控制策略是否正常的状态查询消 息, 若在设定时长之内未接收到来自 preload client的用于响应上述状态查询消 息的状态指示消息, 或接收到来自 preload client的用于指示虚拟机 VM-m执行 流量控制策略故障的指示消息, 则可确定虚拟机 VM-m执行流量控制策略故 障。 当然, preload server亦可通过其它方式监测虚拟机 VM-m执行流量控制策 略是否故障。若确定虚拟机 VM-m执行流量控制策略故障,则上述 preload server 可将流量控制策略的执行方切换为 Host, 上述 preload server可通知上述 preload kernel执行流量控制策略。

在被通知执行流量控制策略之后, 上述 preload kernel则基于上述流量控制 策略对来自虚拟机 VM-m的待转发处理报文进行转发处理。

参见图 5-c, 图 5-c本发明实施例提供的一种流量控制效果示意 图, 图 5-c中 示出, 来自虚拟机 VM-m中的用户态应用的大带宽报文流量, 经过网卡对应的 FE执行流量控制策略之后, 报文流量的带宽变小了, 可见, 通过尽早进行流 量控制有利于减少资源消耗。

可以看出, 本实施例的方案中, 通过引入虚拟机与 Host协商流量控制策略 执行方的机制, 使得虚拟机与 Host都有机会成为流量控制策略执行方, 这使得 由执行虚拟机流量控制策略变得可能,这样就 有利于尽可能早的对报文流进行 流量控制, 进而有利于减少无效处理、 减少无效报文流量对带宽和 Host地址空 间的占用。 可见, 上述方案有利于减少转发处理虚拟机出方向的 报文流量对 Host地址空间的占用。 并且由于是通过协商方式来确定流量控制策略 执行方, 因此有利于提高流量控制策略执行的可靠性。 进一步的, 当虚拟机与 Host都支持执行流量控制策略时, 优先让虚拟机来 执行流量控制策略, 这样进一步有利于尽可能早的对报文进行流量 控制, 进而 进一步有利于减少无效处理和无效报文流量对 带宽的占用。

进一步的, 虚拟机与 Host釆用模块化架构设计, 有利于提升产品在复杂应 用环境下的适应性, 降低环境迁移的升级成本。 参见图 6-a, 其中, 图 6-a为本发明的另一个实施例提供的另一种报文 流量 控制方法的流程示意图。 图 5-b为本发明实施例提供的一种可用于实施如图 6所 示流量控制方法的计算节点结构示意图。 图 5-b中举例出了部署于计算节点中 的 Host和虚拟机的一种具体内部逻辑架构, 当然 Host和虚拟机亦可具有区别于 图 5-b举例的其它内部逻辑架构。 本实施例中主要以在图 5-b所示架构下实施流 量控制方法为例进行描述。

如图 6-a所示, 本发明的另一个实施例提供的另一种报文流量 控制方法可 包括以下内容:

601、 虚拟机 VM-m中部署的 preload client与 Host中部署的 preload server建 立连接。 其中, 该连接传输控制协议连接或其它类型的通信连 接。

其中,虚拟机 VM-m中部署的 preload client与 Host中部署的 preload server之 间存在固有通信连接或可直接通信, 则步骤 601亦可省略之。

602、 虚拟机 VM-m中部署的 preload client接收 Host中部署的 preload server 发送的协商启动请求。

603、 虚拟机 VM-m中部署的 preload client, 向 Host中部署的 preload server 发送携带虚拟机 VM-m的流量控制能力的描述信息的执行方协商 求。

可以理解, 步骤 601中 Host中部署的 preload server向虚拟机 VM-m中部署的 preload client发送协商启动请求, 主要目的是为了触发虚拟机 VM-m中部署的 preload client发起协商流量控制策略执行方, 当然, 虚拟机 VM-m中部署的 preload client也可能在其它条件(举例来说, 接收到用户态进程发起的协商启 动请求(即可能由用户态应用或用户指令触发 )) 的触发下, 发起协商流量控 制策略执行方。 若虚拟机 VM-m中部署的 preload client自主发起流量控制策略 执行方的协商, 则步骤 602可以省略。 604、 Host中部署的 preload server接收携带虚拟机 VM-m的流量控制能力的 描述信息的执行方协商请求, 其中, 该执行方协商请求携带的上述流量控制能 力的描述信息用于指示出虚拟机 VM-m是否支持执行流量控制策略, 因此 Host 中部署的 preload server可根据上述流量控制能力的描述信息, 确定上述虚拟机 VM-m是否支持执行流量控制策略。

本实施例下面以 Host中部署的 preload server确定上述虚拟机 VM-m不支持 执行流量控制策略为例。 因此, Host中部署的 preload server可向虚拟机 VM-m 中部署的 preload client发送协商否认指示, 其中, 上述协商否认指示用于表示 协商出的流量控制策略执行方为上述 Host。 其中, Host中部署的 preload server 还通知 Host中部署的预载内核 ( preload kernel )执行流量控制策略。

605、 虚拟机 VM-m中部署的 preload client接收 Host中部署的 preload server 发送的协商否认指示之后, 确定协商出的流量控制策略执行方为上述 Host, 因 此,虚拟机 VM-m中部署的 preload client通知虚拟机 VM-m中部署的网卡对应的 FE不执行流量控制策略。

其中, 通过执行步骤 603~605, 虚拟机 VM-m中部署的 preload client和 Host 中部署的 preload server双方协商出了流量控制策略的执行方。

虚拟机 VM-m中部署的网卡对应的 FE转发来自虚拟机 VM-m中部署的用户 态应用的待转发处理报文。 此处, 虚拟机 VM-m中部署的网卡对应的 FE不对待 转发处理报文进行流量控制。

606、 Host中部署的网卡对应的 BE若接收到来自虚拟机 VM-m中部署的网 卡对应的 FE的报文, 则向 Host中部署的 preload kernel转发接收到的报文。

其中, preload kernel基于流量控制策略对接收到的报文进行转 发处理。 本实施例中以流量控制策略为基于服务质量的 流量控制策略或基于访问 控制列表的流量控制策略为例。

其中,基于服务质量的流量控制策略主要基于 待转发处理报文对应的业务 优先级, 来确定该报文的具体转发处理方式(其中, 具体转发处理方式可以是 延迟发送报文、 无延迟的发送报文或丟弃报文等)。 例如, 当前緩存中存在多 个待转发处理的报文,则所对应业务优先级越 高的报文发送延迟可能越短甚至 无延迟, 所对应业务优先级越低的报文发送延迟可能越 长,甚至可以丟弃所对 的保障高优先级业务的服务质量。

其中,基于访问控制列表的流量控制策略, 主要基于待转发处理报文所携 带信息与访问控制列表所包含记录之间是否匹 配,来确定报文的具体转发处理 方式。 例如, 访问控制列表为限制访问控制列表(类似黑名 单), 对于待转发 处理报文的源 /目的地址、 应用层协议类型、 传输层协议类型和 /或报文头所包 含的特定关键字等等信息, 若限制访问控制列表中有与之匹配的记录, 则该待 转发处理报文的转发处理方式可以是直接丟弃 ,反之,对于待转发处理报文的 源 /目的地址、 应用层协议类型、 传输层协议类型和 /或报文头所包含的关键字 等信息,若限制访问控制列表中没有与之匹配 的记录, 则该待转发处理报文的 转发处理方式可以是转发该报文。 又举例来说,假设访问控制列表为允许访问 控制列表(类似白名单), 则对于待转发处理报文的源 /目的地址、 应用层协议 类型、 传输层协议类型和 /或报文头所包含的特定关键字等信息, 若允许访问 控制列表中没有与之匹配的记录,则该待转发 处理报文的转发处理方式可为直 接丟弃。 而对于待转发处理报文的源 /目的地址、 应用层协议类型、 传输层协 议类型和 /或报文头所包含的关键字等信息, 若允许访问控制列表中有与之匹 配的记录, 则该待转发处理报文的转发处理方式可为转发 该报文。 其它情况以 此类推。

因此, preload kernel基于流量控制策略对来自虚拟机 VM-m的待转发处理 的报文进行转发处理可包括: preload kernel丟弃来自虚拟机 VM-m的待转发处 理的报文; 或者, preload kernel有延迟(延迟程度可能与待转发处理报文 的业 务优先级和当前待转发处理报文数量相关 )的发送来自虚拟机 VM-m的待转发 处理的报文; 或 preload kernel无延迟的发送来自虚拟机 VM-m的待转发处理的 报文, 其它方式此处不再列举。

网卡若通过网卡驱动接收到 preload kernel发送的报文, 网卡则对接收到的 报文进行相应转发处理。

参见图 6-b, 图 6-b本发明实施例提供的另一种流量控制效果示 意图, 图 6-b 中示出, 虚拟机 VM-m中的用户态应用发出大带宽才艮文流量, 网卡对应的 FE未 执行流量控制策略之后, 由 Host中的 preload kernel执行流量控制策略之后报文 流量的带宽变小了。

可以看出, 本实施例的方案中, 通过引入虚拟机与 Host协商流量控制策略 执行方的机制, 使得虚拟机与 Host都有机会成为流量控制策略执行方, 这使得 由执行虚拟机流量控制策略变得可能,这样就 有利于尽可能早的对报文流进行 流量控制, 进而有利于减少无效处理、 减少无效报文流量对带宽和 Host地址空 间的占用。 可见, 上述方案有利于减少转发处理虚拟机出方向的 报文流量对 Host地址空间的占用。 并且由于是通过协商方式来确定流量控制策略 执行方, 因此有利于提高流量控制策略执行的可靠性。

进一步的, 当虚拟机与 Host都支持执行流量控制策略时, 优先让虚拟机来 执行流量控制策略, 这样进一步有利于尽可能早的对报文进行流量 控制, 进而 进一步有利于减少无效处理和无效报文流量对 带宽的占用。

进一步的, 虚拟机与 Host釆用模块化架构设计, 有利于提升产品在复杂应 用环境下的适应性, 降低环境迁移的升级成本。 参见图 7, 其中, 图 7为本发明的另一个实施例提供的另一种报文 量控制 方法的流程示意图。 图 5-b为本发明实施例提供的一种可用于实施如图 7所示流 量控制方法的计算节点结构示意图。 图 7中举例了部署于计算节点中的 Host和 虚拟机的一种具体内部逻辑架构, 当然 Host和虚拟机亦可具有区别于图 5-b举 例的其它内部逻辑架构。 本实施例中主要以在图 5-b所示架构下实施流量控制 方法为例进行描述。

如图 7所示, 本发明的另一个实施例提供的另一种报文流量 控制方法可包 括以下内容:

701、 虚拟机 VM-m中部署的 preload client与 Host中部署的 preload server建 立连接。 其中, 该连接传输控制协议连接或其它类型的通信连 接。

其中,虚拟机 VM-m中部署的 preload client与 Host中部署的 preload server之 间存在固有通信连接或可直接通信, 则步骤 501亦可省略之。

702、 虚拟机 VM-m中部署的 preload client接收 Host中部署的 preload server 发送的协商启动请求。

703、 虚拟机 VM-m中部署的 preload client, 向 Host中部署的 preload server 发送携带虚拟机 VM-m的流量控制能力的描述信息的执行方协商 求。

可以理解, 步骤 702中 Host中部署的 preload server向虚拟机 VM-m中部署的 preload client发送协商启动请求, 主要目的是为了触发虚拟机 VM-m中部署的 preload client发起协商流量控制策略执行方, 当然, 虚拟机 VM-m中部署的 preload client也可能在其它条件(举例来说, 接收到用户态进程发起的协商启 动请求(即可能由用户态应用或用户指令触发 )) 的触发下, 发起协商流量控 制策略执行方。 若虚拟机 VM-m中部署的 preload client自主发起流量控制策略 执行方的协商, 则步骤 702可以省略。

704、 Host中部署的 preload server接收携带虚拟机 VM-m的流量控制能力的 描述信息的执行方协商请求, 其中, 该执行方协商请求携带的上述流量控制能 力的描述信息用于指示出虚拟机 VM-m支持执行流量控制策略的版本, 因此 Host中部署的 preload server可才艮据上述流量控制能力的描述信息, 确定上述虚 拟机 VM-m是否支持执行当前最新版本或预设版本的 量控制策略。

在本发明的一些实施例中,由于上述流量控制 能力的描述信息用于描述出 上述虚拟机支持执行的流量控制策略的版本, 因此, preload server根据上述流 量控制能力的描述信息确定上述虚拟机是否支 持执行当前最新版本或者预设 版本的流量控制策略, 具体可包括: 比较上述流量控制能力的描述信息所描述 出上述虚拟机支持执行的流量控制策略的版本 是否与流量控制策略的当前最 新版本或者预设版本相同, 若是, 则可确定上述虚拟机支持执行当前最新版本 或者预设版本的流量控制策略; 若否, 则可确定上述虚拟机不支持执行当前最 新版本或者预设版本的流量控制策略。 又例如, preload server根据上述流量控 制能力的描述信息确定上述虚拟机是否支持执 行当前最新版本或者预设版本 的流量控制策略具体可包括:比较上述流量控 制能力的描述信息所描述出上述 虚拟机支持执行的流量控制策略的 k个(k为正整数)版本中的每个版本, 是否 与流量控制策略的当前最新版本或者预设版本 相同, 若比较出上述 k个版本中 的其中 1个版本与流量控制策略的当前最新版本或者 设版本相同, 则可确定 上述虚拟机支持执行当前最新版本或者预设版 本的流量控制策略;若比较出上 述 k个版本中的任意 1个版本与流量控制策略的当前最新版本或者 设版本均 不同,则可确定上述虚拟机不支持执行当前最 新版本或者预设版本的流量控制 策略。

其中, 本实施例下面以 Host中部署的 preload server确定上述虚拟机 VM-m 支持执行当前最新版本或者预设版本的流量控 制策略为例。 因此, Host中部署 的 preload server可向虚拟机 VM-m中部署的 preload client发送协商确认指示,其 中, 上述协商确认指示用于表示协商出的流量控制 策略执行方为上述虚拟机 VM-m, 其中, 上述协商确认指示中可携带当前最新版本或者 预设版本的流量 控制策略。 Host中部署的 preload server还通知 Host中部署的 preload kernel不执 行流量控制策略。

705、 虚拟机 VM-m中部署的 preload client接收 Host中部署的 preload server 发送的协商确认指示之后, 确定协商出的流量控制策略执行方为上述虚拟 机 VM-m, 因此, 虚拟机 VM-m中部署的 preload client向虚拟机 VM-m中部署的网 卡对应的 FE发送上述协商确认指示中携带的流量控制策 。

其中, 通过执行步骤 703~705, 虚拟机 VM-m中部署的 preload client和 Host 中部署的 preload server双方协商出了流量控制策略的执行方。

706、 虚拟机 VM-m中部署的网卡对应的 FE接收到流量控制策略后, 基于 接收到的流量控制策略, 对虚拟机 VM-m中部署的用户态应用发送的待转发处 理报文进行转发处理。

本实施例中以流量控制策略为基于服务质量的 流量控制策略或基于访问 控制列表的流量控制策略为例。

其中,基于服务质量的流量控制策略主要基于 待转发处理报文对应的业务 优先级, 来确定该报文的具体转发处理方式(其中, 具体转发处理方式可以是 延迟发送报文、 无延迟的发送报文或丟弃报文等)。 例如, 当前緩存中存在多 个待转发处理的报文,则所对应业务优先级越 高的报文发送延迟可能越短甚至 无延迟, 所对应业务优先级越低的报文发送延迟可能越 长,甚至可以丟弃所对 的保障高优先级业务的服务质量。

其中,基于访问控制列表的流量控制策略, 主要基于待转发处理报文所携 带信息与访问控制列表所包含记录之间是否匹 配,来确定报文的具体转发处理 方式。 例如, 访问控制列表为限制访问控制列表(类似黑名 单), 对于待转发 处理报文的源 /目的地址、 应用层协议类型、 传输层协议类型和 /或报文头所包 含的特定关键字等等信息, 若限制访问控制列表中有与之匹配的记录, 则该待 转发处理报文的转发处理方式可以是直接丟弃 ,反之,对于待转发处理报文的 源 /目的地址、 应用层协议类型、 传输层协议类型和 /或报文头所包含的关键字 等信息,若限制访问控制列表中没有与之匹配 的记录, 则该待转发处理报文的 转发处理方式可以是转发该报文。 又举例来说,假设访问控制列表为允许访问 控制列表(类似白名单), 则对于待转发处理报文的源 /目的地址、 应用层协议 类型、 传输层协议类型和 /或报文头所包含的特定关键字等信息, 若允许访问 控制列表中没有与之匹配的记录,则该待转发 处理报文的转发处理方式可为直 接丟弃。 而对于待转发处理报文的源 /目的地址、 应用层协议类型、 传输层协 议类型和 /或报文头所包含的关键字等信息, 若允许访问控制列表中有与之匹 配的记录, 则该待转发处理报文的转发处理方式可为转发 该报文。 其它情况以 此类推。

因此, 虚拟机 VM-m中部署的网卡对应的 FE, 基于流量控制策略对来自虚 拟机 VM-m中部署的网卡对应的 FE丟弃来自虚拟机 VM-m中部署的用户态应用 的待转发处理的报文;或者,虚拟机 VM-m中部署的网卡对应的 FE,有延迟(延 迟程度可能与待转发处理报文的业务优先级和 当前待转发处理报文数量相关) 的发送来自虚拟机 VM-m中部署的用户态应用的待转发处理的报文 或虚拟机 VM-m中部署的网卡对应的 FE, 无延迟的发送来自虚拟机 VM-m中部署的用户 态应用的待转发处理的报文, 其它方式此处不再列举。

Host中部署的网卡对应的 BE若接收到来自虚拟机 VM-m中部署的网卡对 应的 FE的报文, 则向 Host中部署的 preload kernel转发接收到的报文。

由于 Host中部署的 preload kernel无需执行流量控制策略, 因此 Host中部署 的 preload kernel可直接通过网卡驱动向网卡转发接收到的 报文, 网卡则对接收 到的报文进行相应转发处理。

在本发明一些实施例中,在确定协商出的流量 控制策略执行方为上述虚拟 机 VM-m之后,上述 preload client可基于上述连接周期性的向上述 preload server 发送心跳消息。 其中, 发送心跳消息的目的之一是将虚拟机 VM-m工作正常的 状态通知上述 preload server, preload server若在设定时长内未接收到来自上述 preload client的心跳消息, 则上述 preload server可默认为 VM-m可能存在故障。 例如, 上述 preload server在确定协商出的流量控制策略的执行方为 上述虚拟机 VM-m之后, 若设定时长内未接收到来自上述 preload client的心跳消息, 则上 述 preload server可将流量控制策略的执行方切换为上述 Host (即无论虚拟机 VM-m中部署的网卡对应的 FE是否基于流量控制策略对待转发处理的报文 行转发处理, 上述 preload kernel都基于流量控制策略来对来自该虚拟机 VM-m 的报文进行转发处理, 由于 Host和虚拟机 VM-m中执行的流量控制策略相同, 因此, 对于同一报文流, 若上述 preload kernel和 /或虚拟机 VM-m中部署的网卡 对应的 FE执行同一个流量控制策略, preload kernel最终报文输出情况是基本相 同的),可向上述 preload client发送用于指示流量控制策略的执行方切换 为上述 Host的指示消息。

在本发明的一些实施例中,在确定协商出的流 量控制策略执行方为上述虚 拟机 VM-m之后,上述 preload client亦可在虚拟机 VM-m中部署的网卡对应的 FE 执行流量控制策略故障时, 向上述 preload server发送用于指示虚拟机 VM-m执 行流量控制策略故障的指示消息。 而上述 preload server在确定协商出的流量控 制策略的执行方为上述虚拟机之后, 若接收到来自上述 preload client的用于指 示虚拟机 VM-m执行流量控制策略故障的指示消息, 则上述 preload server可将 流量控制策略的执行方切换为 Host, 上述 preload server可通知上述 preload kernel执行流量控制策略。

在本发明的一些实施例中,在确定协商出的流 量控制策略执行方为上述虚 拟机 VM-m之后, 上述 preload server亦可周期性的或非周期性的向上述 preload client亦发送用于查询虚拟机 VM-m执行流量控制策略是否正常的状态查询消 息, 若在设定时长之内未接收到来自 preload client的用于响应上述状态查询消 息的状态指示消息, 或接收到来自 preload client的用于指示虚拟机 VM-m执行 流量控制策略故障的指示消息, 则可确定虚拟机 VM-m执行流量控制策略故 障。 当然, preload server亦可通过其它方式监测虚拟机 VM-m执行流量控制策 略是否故障。若确定虚拟机 VM-m执行流量控制策略故障,则上述 preload server 可将流量控制策略的执行方切换为 Host, 上述 preload server可通知上述 preload kemel执行流量控制策略。

在被通知执行流量控制策略之后, 上述 preload kernel则基于上述流量控制 策略对来自虚拟机 VM-m的待转发处理报文进行转发处理。

可以看出, 本实施例的方案中, 通过引入虚拟机与 Host协商流量控制策略 执行方的机制, 使得虚拟机与 Host都有机会成为流量控制策略执行方, 这使得 由执行虚拟机流量控制策略变得可能,这样就 有利于尽可能早的对报文流进行 流量控制, 进而有利于减少无效处理、 减少无效报文流量对带宽和 Host地址空 间的占用。 可见, 上述方案有利于减少转发处理虚拟机出方向的 报文流量对 Host地址空间的占用。 并且由于是通过协商方式来确定流量控制策略 执行方, 因此有利于提高流量控制策略执行的可靠性。

进一步的, 当虚拟机与 Host都支持执行流量控制策略时, 优先让虚拟机来 执行流量控制策略, 这样进一步有利于尽可能早的对报文进行流量 控制, 进而 进一步有利于减少无效处理和无效报文流量对 带宽的占用。

进一步的, 虚拟机与 Host釆用模块化架构设计, 有利于提升产品在复杂应 用环境下的适应性, 降低环境迁移的升级成本。 参见图 8, 其中, 图 8为本发明的另一个实施例提供的另一种报文 量控制 方法的流程示意图。 图 5-b为本发明实施例提供的一种可用于实施如图 8所示流 量控制方法的计算节点结构示意图。 图 5 -b中举例出了部署于计算节点中的 Host和虚拟机的一种具体内部逻辑架构, 当然 Host和虚拟机亦可具有区别于图 5-b举例的其它内部逻辑架构。 本实施例中主要以在图 5-b所示架构下实施流量 控制方法为例进行描述。

如图 8所示, 本发明的另一个实施例提供的另一种报文流量 控制方法可包 括以下内容:

801、 虚拟机 VM-m中部署的 preload client与 Host中部署的 preload server建 立连接。 其中, 该连接传输控制协议连接或其它类型的通信连 接。

其中,虚拟机 VM-m中部署的 preload client与 Host中部署的 preload server之 间存在固有通信连接或可直接通信, 则步骤 601亦可省略之。

802、 虚拟机 VM-m中部署的 preload client接收 Host中部署的 preload server 发送的协商启动请求。

803、 虚拟机 VM-m中部署的 preload client, 向 Host中部署的 preload server 发送携带虚拟机 VM-m的流量控制能力的描述信息的执行方协商 求。

可以理解, 步骤 802中 Host中部署的 preload server向虚拟机 VM-m中部署的 preload client发送协商启动请求, 主要目的是为了触发虚拟机 VM-m中部署的 preload client发起协商流量控制策略执行方, 当然, 虚拟机 VM-m中部署的 preload client也可能在其它条件(举例来说, 接收到用户态进程发起的协商启 动请求(即可能由用户态应用或用户指令触发 )) 的触发下, 发起协商流量控 制策略执行方。 若虚拟机 VM-m中部署的 preload client自主发起流量控制策略 执行方的协商, 则步骤 802可以省略。

804、 Host中部署的 preload server接收携带虚拟机 VM-m的流量控制能力的 描述信息的执行方协商请求。其中, 该执行方协商请求携带的上述流量控制能 力的描述信息用于指示出虚拟机 VM-m支持执行流量控制策略的版本, 因此 Host中部署的 preload server可才艮据上述流量控制能力的描述信息, 确定上述虚 拟机 VM-m是否支持执行当前最新版本或预设版本的 量控制策略。

在本发明的一些实施例中,由于上述流量控制 能力的描述信息用于描述出 上述虚拟机支持执行的流量控制策略的版本, 因此, preload server根据上述流 量控制能力的描述信息确定上述虚拟机是否支 持执行当前最新版本或者预设 版本的流量控制策略, 具体可包括: 比较上述流量控制能力的描述信息所描述 出上述虚拟机支持执行的流量控制策略的版本 是否与流量控制策略的当前最 新版本或者预设版本相同, 若是, 则可确定上述虚拟机支持执行当前最新版本 或者预设版本的流量控制策略; 若否, 则可确定上述虚拟机不支持执行当前最 新版本或者预设版本的流量控制策略。 又例如, preload server根据上述流量控 制能力的描述信息确定上述虚拟机是否支持执 行当前最新版本或者预设版本 的流量控制策略具体可包括:比较上述流量控 制能力的描述信息所描述出上述 虚拟机支持执行的流量控制策略的 k个(k为正整数)版本中的每个版本, 是否 与流量控制策略的当前最新版本或者预设版本 相同, 若比较出上述 k个版本中 的其中 1个版本与流量控制策略的当前最新版本或者 设版本相同, 则可确定 上述虚拟机支持执行当前最新版本或者预设版 本的流量控制策略;若比较出上 述 k个版本中的任意 1个版本与流量控制策略的当前最新版本或者 设版本均 不同,则可确定上述虚拟机不支持执行当前最 新版本或者预设版本的流量控制 策略。

本实施例下面以 Host中部署的 preload server确定上述虚拟机 VM-m不支持 执行当前最新版本或者预设版本的流量控制策 略为例。 因此, Host中部署的 preload server可向虚拟机 VM-m中部署的 preload client发送协商否认指示, 其 中, 上述协商否认指示用于表示协商出的流量控制 策略执行方为上述 Host。 其 中, Host中部署的 preload server还通知 Host中部署的子贞载内核 ( reload kernel ) 执行流量控制策略。

805、 虚拟机 VM-m中部署的 preload client接收 Host中部署的 preload server 发送的协商否认指示之后, 确定协商出的流量控制策略执行方为上述 Host, 因 此,虚拟机 VM-m中部署的 preload client通知虚拟机 VM-m中部署的网卡对应的 FE不执行流量控制策略。

其中, 通过执行步骤 803~805, 虚拟机 VM-m中部署的 preload client和 Host 中部署的 preload server双方协商出了流量控制策略的执行方。

虚拟机 VM-m中部署的网卡对应的 FE转发来自虚拟机 VM-m中部署的用户 态应用的待转发处理报文。 此处, 虚拟机 VM-m中部署的网卡对应的 FE不对待 转发处理报文进行流量控制。

806、 Host中部署的网卡对应的 BE若接收到来自虚拟机 VM-m中部署的网 卡对应的 FE的报文, 则向 Host中部署的 preload kernel转发接收到的报文。

其中, preload kernel基于流量控制策略对接收到的报文进行转 发处理。 本实施例中以流量控制策略为基于服务质量的 流量控制策略或基于访问 控制列表的流量控制策略为例。

其中,基于服务质量的流量控制策略主要基于 待转发处理报文对应的业务 优先级, 来确定该报文的具体转发处理方式(其中, 具体转发处理方式可以是 延迟发送报文、 无延迟的发送报文或丟弃报文等)。 例如, 当前緩存中存在多 个待转发处理的报文,则所对应业务优先级越 高的报文发送延迟可能越短甚至 无延迟, 所对应业务优先级越低的报文发送延迟可能越 长,甚至可以丟弃所对 的保障高优先级业务的服务质量。

其中,基于访问控制列表的流量控制策略, 主要基于待转发处理报文所携 带信息与访问控制列表所包含记录之间是否匹 配,来确定报文的具体转发处理 方式。 例如, 访问控制列表为限制访问控制列表(类似黑名 单), 对于待转发 处理报文的源 /目的地址、 应用层协议类型、 传输层协议类型和 /或报文头所包 含的特定关键字等等信息, 若限制访问控制列表中有与之匹配的记录, 则该待 转发处理报文的转发处理方式可以是直接丟弃 ,反之,对于待转发处理报文的 源 /目的地址、 应用层协议类型、 传输层协议类型和 /或报文头所包含的关键字 等信息,若限制访问控制列表中没有与之匹配 的记录, 则该待转发处理报文的 转发处理方式可以是转发该报文。 又举例来说,假设访问控制列表为允许访问 控制列表(类似白名单), 则对于待转发处理报文的源 /目的地址、 应用层协议 类型、 传输层协议类型和 /或报文头所包含的特定关键字等信息, 若允许访问 控制列表中没有与之匹配的记录,则该待转发 处理报文的转发处理方式可为直 接丟弃。 而对于待转发处理报文的源 /目的地址、 应用层协议类型、 传输层协 议类型和 /或报文头所包含的关键字等信息, 若允许访问控制列表中有与之匹 配的记录, 则该待转发处理报文的转发处理方式可为转发 该报文。 其它情况以 此类推。

因此, preload kernel基于当前最新版本或者预设版本流量控制 策略对来自 虚拟机 VM-m的待转发处理的报文进行转发处理可包括 preload kernel丟弃来 自虚拟机 VM-m的待转发处理的报文; 或者, preload kernel有延迟(延迟程度 可能与待转发处理报文的业务优先级和当前待 转发处理报文数量相关)的发送 来自虚拟机 VM-m的待转发处理的报文; 或 preload kernel无延迟的发送来自虚 拟机 VM-m的待转发处理的报文, 其它方式此处不再列举。

网卡若通过网卡驱动接收到 preload kernel发送的报文, 网卡则对接收到的 报文进行相应转发处理。

可以看出, 本实施例的方案中, 通过引入虚拟机与 Host协商流量控制策略 执行方的机制, 使得虚拟机与 Host都有机会成为流量控制策略执行方, 这使得 由执行虚拟机流量控制策略变得可能,这样就 有利于尽可能早的对报文流进行 流量控制, 进而有利于减少无效处理、 减少无效报文流量对带宽和 Host地址空 间的占用。 可见, 上述方案有利于减少转发处理虚拟机出方向的 报文流量对 Host地址空间的占用。 并且由于是通过协商方式来确定流量控制策略 执行方, 因此有利于提高流量控制策略执行的可靠性。

进一步的, 当虚拟机与 Host都支持执行流量控制策略时, 优先让虚拟机来 执行流量控制策略, 这样进一步有利于尽可能早的对报文进行流量 控制, 进而 进一步有利于减少无效处理和无效报文流量对 带宽的占用。

进一步的, 虚拟机与 Host釆用模块化架构设计, 有利于提升产品在复杂应 用环境下的适应性, 降低环境迁移的升级成本。

为便于更好的实施本发明实施的上方案,下面 还提供用于实施上述方案的 相关装置。 参见图, 本发明实施例提供的一种虚拟机 900可包括: 第一协商单元 910 和报文处理单元 920。

其中, 第一协商单元 910, 用于基于上述虚拟机的流量控制能力在上述虚 拟机 900与 Host之间协商流量控制策略的执行方。

报文处理单元 920, 用于若确定协商出的流量控制策略的执行方为 上述虚 拟机, 则基于上述流量控制策略对待转发处理的报文 进行转发处理; 若确定协 商出的流量控制策略的执行方为上述 Host,则将待转发处理的报文发送给上述 Host, 以便于上述 Host基于上述流量控制策略对接收到的上述报 进行转发处 理。

在本发明的一些实施例中, 第一协商单元 910可具体用于, 向 Host发送携 带上述虚拟机的流量控制能力的描述信息的执 行方协商请求, 若接收到上述 Host在根据上述流量控制能力的描述信息确定 述虚拟机支持执行流量控制 策略之后发送的协商确认指示,则确定协商出 的流量控制策略执行方为上述虚 拟机;若接收到上述 Host在根据上述流量控制能力的描述信息确定 述虚拟机 不支持执行流量控制策略之后发送的协商否认 指示,则确定协商出的流量控制 策略执行方为上述 Host;

或者,

第一协商单元 910可具体用于, 向 Host发送携带上述虚拟机的流量控制能 力的描述信息的执行方协商请求, 其中, 上述流量控制能力的描述信息用于描 述出上述虚拟机支持执行的流量控制策略的版 本,若接收到上述 Host在根据上 述流量控制能力的描述信息确定上述虚拟机支 持执行当前最新版本或者预设 版本的流量控制策略之后发送的协商确认指示 ,则确定协商出的流量控制策略 执行方为上述虚拟机;若接收到上述 Host在根据上述流量控制能力的描述信息 确定上述虚拟机不支持执行当前最新版本或者 预设版本的流量控制策略之后 发送的协商否认指示, 则确定协商出的流量控制策略执行方为上述 Host;

或者,

第一协商单元 910可具体用于, 向 Host发送携带上述虚拟机的流量控制能 力的描述信息的执行方协商请求,若接收到上 述 Host在根据上述流量控制能力 的描述信息确定上述虚拟机支持执行流量控制 策略之后发送的协商确认指示, 则确定协商出的流量控制策略执行方为上述虚 拟机;若在第一设定时长内未接 收到上述 Host发送的用于响应上述执行方协商请求的协 确认指示,则确定协 商出的流量控制策略执行方为上述 Host;

或者,

第一协商单元 910可具体用于, 向 Host发送携带上述虚拟机的流量控制能 力的描述信息的执行方协商请求, 其中, 上述流量控制能力的描述信息用于描 述出上述虚拟机支持执行的流量控制策略的版 本,若接收到上述 Host在根据上 述流量控制能力的描述信息确定上述虚拟机支 持执行当前最新版本或者预设 版本的流量控制策略之后发送的协商确认指示 ,则确定协商出的流量控制策略 执行方为上述虚拟机;若在第一设定时长之内 未接收到上述 Host发送的用于响 应上述执行方协商请求的协商确认指示,则确 定协商出的流量控制策略执行方 为上述 Host;

或者,

第一协商单元 910可具体用于, 向 Host发送携带上述虚拟机的流量控制能 力的描述信息的执行方协商请求,若接收到上 述 Host在根据上述流量控制能力 的描述信息确定上述虚拟机不支持执行流量控 制策略之后发送的协商否认指 示, 则确定协商出的流量控制策略执行方为上述 Host; 若在第二设定时长内未 接收到上述 Host发送的用于响应上述执行方协商请求的协 否认指示,则确定 协商出的流量控制策略执行方为上述虚拟机;

或者,

第一协商单元 910可具体用于, 向 Host发送携带上述虚拟机的流量控制能 力的描述信息的执行方协商请求, 其中, 上述流量控制能力的描述信息用于描 述出上述虚拟机支持执行的流量控制策略的版 本,若接收到上述 Host在根据上 述流量控制能力的描述信息确定上述虚拟机支 持执行当前最新版本或者预设 版本的流量控制策略之后发送的协商否认指示 ,则确定协商出的流量控制策略 执行方为上述 Host; 若在第二设定时长之内未接收到上述 Host发送的用于响应 上述执行方协商请求的协商否认指示,则确定 协商出的流量控制策略执行方为 上述虚拟机。

在本发明的一些实施例中,若上述流量控制能 力的描述信息用于描述出上 述虚拟机 900支持执行的流量控制策略的版本, 则 Host可根据上述流量控制能 力的描述信息确定上述虚拟机 900是否支持执行当前最新版本或者预设版本的 流量控制策略, 具体可包括: 比较上述流量控制能力的描述信息所描述出上 述 虚拟机 900支持执行的流量控制策略的版本是否与流量 控制策略的当前最新版 本或者预设版本相同, 若是, 则可确定上述虚拟机 900支持执行当前最新版本 或者预设版本的流量控制策略; 若否, 则可确定上述虚拟机 900不支持执行当 前最新版本或者预设版本的流量控制策略。 又例如, Host可根据上述流量控制 能力的描述信息确定上述虚拟机 900是否支持执行当前最新版本或者预设版本 的流量控制策略具体可包括:比较上述流量控 制能力的描述信息所描述出上述 虚拟机 900支持执行的流量控制策略的 k个(k为正整数)版本中的每个版本, 是否与流量控制策略的当前最新版本或者预设 版本相同, 若比较出上述 k个版 本中的其中 1个版本与流量控制策略的当前最新版本或者 设版本相同, 则可 确定上述虚拟机 900支持执行当前最新版本或者预设版本的流量 控制策略; 若 比较出上述 k个版本中的任意 1个版本与流量控制策略的当前最新版本或者 设版本均不同, 则可确定上述虚拟机 900不支持执行当前最新版本或者预设版 本的流量控制策略。

在本发明的一些实施例中, 虚拟机 900还可包括:

发送单元(图 9之中未示出), 用于在确定协商出的流量控制策略的执行方 为上述虚拟机之后, 周期性的向上述 Host发送心跳消息。

本实施例中提及的流量控制策略例如可为基于 服务质量的流量控制策略 和 /或基于访问控制列表的流量控制策略, 当然流量控制策略也可是参考其他 因素的流量控制策略。

其中,基于服务质量的流量控制策略主要基于 待转发处理报文对应的业务 优先级, 来确定该报文的具体转发处理方式(其中, 具体转发处理方式可以是 延迟发送报文、 无延迟的发送报文或丟弃报文等)。 例如, 当前緩存中存在多 个待转发处理的报文,则所对应业务优先级越 高的报文发送延迟可能越短甚至 无延迟, 所对应业务优先级越低的报文发送延迟可能越 长,甚至可以丟弃所对 的保障高优先级业务的服务质量。 即,基于服务质量的流量控制策略对待转发 处理的报文进行转发处理具体可包括:按照待 转发处理报文的业务优先级所对 应的转发处理方式对该待转发处理的报文进行 转发处理。

其中,基于访问控制列表的流量控制策略, 主要基于待转发处理报文所携 带信息与访问控制列表所包含记录之间是否匹 配,来确定报文的具体转发处理 方式。 例如, 访问控制列表为限制访问控制列表(类似黑名 单), 对于待转发 处理报文的源 /目的地址、 应用层协议类型、 传输层协议类型和 /或报文头所包 含的特定关键字等等信息, 若限制访问控制列表中有与之匹配的记录, 则该待 转发处理报文的转发处理方式可以是直接丟弃 ,反之,对于待转发处理报文的 源 /目的地址、 应用层协议类型、 传输层协议类型和 /或报文头所包含的关键字 等信息,若限制访问控制列表中没有与之匹配 的记录, 则该待转发处理报文的 转发处理方式可以是转发该报文。 又举例来说,假设访问控制列表为允许访问 控制列表(类似白名单), 则对于待转发处理报文的源 /目的地址、 应用层协议 类型、 传输层协议类型和 /或报文头所包含的特定关键字等信息, 若允许访问 控制列表中没有与之匹配的记录,则该待转发 处理报文的转发处理方式可为直 接丟弃, 而对于待转发处理报文的源 /目的地址、 应用层协议类型、 传输层协 议类型和 /或报文头所包含的关键字等信息, 若允许访问控制列表中有与之匹 配的记录, 则该待转发处理报文的转发处理方式可为转发 该报文。 其它情况以 此类推。 可以理解的是, 本实施例中的虚拟机 900各个模块的功能可根据上述方法 实施例介绍的方法具体实现,其具体实现过程 可以参见上述实施例中的相关描 述, 在此不再赘述。

可以看出, 本实施例的方案中, 通过引入虚拟机与 Host协商流量控制策略 执行方的机制, 使得虚拟机与 Host都有机会成为流量控制策略执行方, 这使得 由执行虚拟机流量控制策略变得可能,这样就 有利于尽可能早的对报文流进行 流量控制, 进而有利于减少无效处理、 减少无效报文流量对带宽和 Host地址空 间的占用。 可见, 上述方案有利于减少转发处理虚拟机出方向的 报文流量对 Host地址空间的占用。 并且由于是通过协商方式来确定流量控制策略 执行方, 因此有利于提高流量控制策略执行的可靠性。

进一步的, 当虚拟机与 Host都支持执行流量控制策略时, 优先让虚拟机来 执行流量控制策略, 这样进一步有利于尽可能早的对报文进行流量 控制, 进而 进一步有利于减少无效处理和无效报文流量对 带宽的占用。

进一步的, 虚拟机与 Host釆用模块化架构设计, 有利于提升产品在复杂应 用环境下的适应性, 降低环境迁移的升级成本。 参见图 10、 本发明实施例还提供宿主机 1000, 可包括: 第二协商单元 1010 和报文处理单元 1020。

其中, 第二协商单元 1010, 用于基于上述虚拟机的流量控制能力在上述虚 拟机与宿主机 1000之间协商流量控制策略的执行方。

报文处理单元 1020,用于若确定协商出的流量控制策略的执 方为上述宿 主机,在接收到来自上述虚拟机的报文之后, 基于上述流量控制策略对接收到 的上述报文进行转发处理。

在本发明的一些实施例中, 第二协商单元 1010可具体用于,接收虚拟机发 送的携带上述虚拟机的流量控制能力的描述信 息的执行方协商请求,若根据上 述流量控制能力的描述信息确定上述虚拟机支 持执行流量控制策略,则向上述 虚拟机发送协商确认指示,上述协商确认指示 用于表示协商出的流量控制策略 执行方为上述虚拟机; 和 /或, 若根据上述流量控制能力的描述信息确定上述 虚拟机不支持执行流量控制策略, 则向上述虚拟机发送协商否认指示, 上述协 商否认指示用于表示协商出的流量控制策略执 行方为上述宿主机。 在本发明的另一些实施例中, 第二协商单元 1010可具体用于,接收虚拟机 发送的携带有上述虚拟机的流量控制能力的描 述信息的执行方协商请求, 其 中,上述流量控制能力的描述信息用于描述出 上述虚拟机支持执行的流量控制 策略的版本,若根据上述流量控制能力的描述 信息确定上述虚拟机支持执行当 前最新版本或者预设版本的流量控制策略, 则向上述虚拟机发送协商确认指 示, 其中, 上述协商确认指示用于表示协商出的流量控制 策略执行方为上述虚 拟机; 和 /或, 若根据上述流量控制能力的描述信息确定上述 虚拟机不支持执 行当前最新版本或者预设版本的流量控制策略 ,则向上述虚拟机发送协商否认 指示, 其中, 上述协商否认指示用于表示协商出的流量控制 策略执行方为上述 宿主机。

在本发明的一些实施例中,若上述流量控制能 力的描述信息用于描述出上 述虚拟机支持执行的流量控制策略的版本,则 第二协商单元 1010可根据上述流 量控制能力的描述信息确定上述虚拟机是否支 持执行当前最新版本或预设版 本的流量控制策略, 具体可包括: 比较上述流量控制能力的描述信息所描述出 上述虚拟机支持执行的流量控制策略的版本是 否与流量控制策略的当前最新 版本或者预设版本相同, 若是, 则可确定上述虚拟机支持执行当前最新版本或 者预设版本的流量控制策略; 若否, 则可确定上述虚拟机不支持执行当前最新 版本或者预设版本的流量控制策略。又例如第 二协商单元 1010可根据上述流量 控制能力的描述信息确定上述虚拟机是否支持 执行当前最新版本或预设版本 的流量控制策略具体可包括:比较上述流量控 制能力的描述信息所描述出上述 虚拟机支持执行的流量控制策略的 k个(k为正整数)版本中的每个版本, 是否 与流量控制策略的当前最新版本或者预设版本 相同, 若比较出上述 k个版本中 的其中 1个版本与流量控制策略的当前最新版本或者 设版本相同, 则可确定 上述虚拟机支持执行当前最新版本或者预设版 本的流量控制策略;若比较出上 述 k个版本中的任意 1个版本与流量控制策略的当前最新版本或者 设版本均 不同,则可确定上述虚拟机不支持执行当前最 新版本或者预设版本的流量控制 策略。

在本发明的一些实施例中,报文处理单元 1020还用于,在确定协商出的流 量控制策略的执行方为上述虚拟机之后,若在 设定时长内未接收到来自上述虚 拟机的心跳消息,则向上述虚拟机发送用于指 示流量控制策略执行方切换为上 述 Host的指示消息。 策略例如可为基于服务质量的流量控制策略和 /或基于访问控制列表的流量控 制策略, 当然流量控制策略也可是参考其他因素的流量 控制策略。

其中,基于服务质量的流量控制策略主要基于 待转发处理报文对应的业务 优先级, 来确定该报文的具体转发处理方式(其中, 具体转发处理方式可以是 延迟发送报文、 无延迟的发送报文或丟弃报文等)。 例如, 当前緩存中存在多 个待转发处理的报文,则所对应业务优先级越 高的报文发送延迟可能越短甚至 无延迟, 所对应业务优先级越低的报文发送延迟可能越 长,甚至可以丟弃所对 的保障高优先级业务的服务质量。 即,基于服务质量的流量控制策略对待转发 处理的报文进行转发处理具体可包括:按照待 转发处理报文的业务优先级所对 应的转发处理方式对该待转发处理的报文进行 转发处理。

其中,基于访问控制列表的流量控制策略, 主要基于待转发处理报文所携 带信息与访问控制列表所包含记录之间是否匹 配,来确定报文的具体转发处理 方式。 例如, 访问控制列表为限制访问控制列表(类似黑名 单), 对于待转发 处理报文的源 /目的地址、 应用层协议类型、 传输层协议类型和 /或报文头所包 含的特定关键字等等信息, 若限制访问控制列表中有与之匹配的记录, 则该待 转发处理报文的转发处理方式可以是直接丟弃 ,反之,对于待转发处理报文的 源 /目的地址、 应用层协议类型、 传输层协议类型和 /或报文头所包含的关键字 等信息, 若限制访问控制列表中没有与之匹配的记录, 则该待转发处理报文的 转发处理方式可以是转发该报文。 又举例来说,假设访问控制列表为允许访问 控制列表(类似白名单), 则对于待转发处理报文的源 /目的地址、 应用层协议 类型、 传输层协议类型和 /或报文头所包含的特定关键字等信息, 若允许访问 控制列表中没有与之匹配的记录,则该待转发 处理报文的转发处理方式可为直 接丟弃, 而对于待转发处理报文的源 /目的地址、 应用层协议类型、 传输层协 议类型和 /或报文头所包含的关键字等信息, 若允许访问控制列表中有与之匹 配的记录, 则该待转发处理报文的转发处理方式可为转发 该报文。 其它情况以 此类推。

可以理解的是, 本实施例中的 Host 1000各个模块的功能可根据上述方法 实施例介绍的方法具体实现,其具体实现过程 可以参见上述实施例中的相关描 述, 在此不再赘述。

可以看出, 本实施例的方案中, 通过引入虚拟机与 Host协商流量控制策略 执行方的机制, 使得虚拟机与 Host都有机会成为流量控制策略执行方, 这使得 由执行虚拟机流量控制策略变得可能,这样就 有利于尽可能早的对报文流进行 流量控制, 进而有利于减少无效处理、 减少无效报文流量对带宽和 Host地址空 间的占用。可见上述方案有利于减少转发处理 虚拟机出方向的报文流量对 Host 地址空间的占用。 并且由于是通过协商方式来确定流量控制策略 执行方, 因此 有利于提高流量控制策略执行的可靠性。

进一步的, 当虚拟机与 Host都支持执行流量控制策略时, 优先让虚拟机来 执行流量控制策略, 这样进一步有利于尽可能早的对报文进行流量 控制, 进而 进一步有利于减少无效处理和无效报文流量对 带宽的占用。

进一步的, 虚拟机与 Host釆用模块化架构设计, 有利于提升产品在复杂应 用环境下的适应性, 降低环境迁移的升级成本, 降低环境迁移的升级成本。 参见图 11, 本发明实施例还提供一种计算节点 1100, 可以包括: 硬件层 1110、运行在上述硬件层之上的宿主机 1102、 以及运行在上述宿主机 1102之上 的至少一个虚拟机 1103。

其中, 虚拟机 1103, 用于基于上述虚拟机 1103的流量控制能力在上述虚拟 机 1103与宿主机 1102之间协商流量控制策略的执行方;若确定 商出的流量控 制策略执行方为上述虚拟机,则基于上述流量 控制策略对待转发处理的报文进 行转发处理; 若确定协商出的流量控制策略的执行方为上述 宿主机 1102, 则将 待转发处理的报文发送给上述宿主机 1102;

上述宿主机 1102,用于若确定协商出的流量控制策略执行 为上述宿主机 1102, 则在接收到来自上述虚拟机的报文之后,基于 上述流量控制策略对接收 到的上述报文进行转发处理。 在本发明的一些实施例中,在基于上述虚拟机 1103的流量控制能力在上述 虚拟机 1103与宿主机 1102之间协商流量控制策略的执行方的方面, 述虚拟机 具体用于,向宿主机 1102发送携带上述虚拟机的流量控制能力的描 信息的执 行方协商请求,若接收到上述宿主机 1102在根据上述流量控制能力的描述信息 确定上述虚拟机支持执行流量控制策略之后发 送的协商确认指示,则确定协商 出的流量控制策略执行方为上述虚拟机;若接 收到上述宿主机 1102在根据上述 流量控制能力的描述信息确定上述虚拟机不支 持执行流量控制策略之后发送 的协商否认指示, 则确定协商出的流量控制策略执行方为上述宿 主机 1102; 或者,在基于上述虚拟机 1103的流量控制能力在上述虚拟机 1103与宿主机 1102之间协商流量控制策略的执行方的方面, 上述虚拟机具体用于, 向宿主机 1102发送携带上述虚拟机的流量控制能力的描 信息的执行方协商请求, 其 中,上述流量控制能力的描述信息用于描述出 上述虚拟机支持执行的流量控制 策略的版本,若接收到上述宿主机 1102在根据上述流量控制能力的描述信息确 定上述虚拟机支持执行当前最新版本或者预设 版本的流量控制策略之后发送 的协商确认指示, 则确定协商出的流量控制策略执行方为上述虚 拟机; 若接收 到上述宿主机 1102在根据上述流量控制能力的描述信息确定 述虚拟机不支 持执行当前最新版本或者预设版本的流量控制 策略之后发送的协商否认指示, 则确定协商出的流量控制策略执行方为上述宿 主机 1102;

或者,在基于上述虚拟机 1103的流量控制能力在上述虚拟机 1103与宿主机 1102之间协商流量控制策略的执行方的方面, 上述虚拟机具体用于, 向宿主机 1102发送携带上述虚拟机的流量控制能力的描 信息的执行方协商请求,若接 收到上述宿主机 1102在根据上述流量控制能力的描述信息确定 述虚拟机支 持执行流量控制策略之后发送的协商确认指示 ,则确定协商出的流量控制策略 执行方为上述虚拟机;若在第一设定时长内未 接收到上述宿主机 1102发送的用 于响应上述执行方协商请求的协商确认指示, 则确定协商出的流量控制策略执 行方为上述宿主机 1102;

或者,在基于上述虚拟机 1103的流量控制能力在上述虚拟机 1103与宿主机 1102之间协商流量控制策略的执行方的方面, 上述虚拟机具体用于, 向宿主机 1102发送携带上述虚拟机的流量控制能力的描 信息的执行方协商请求, 其 中,上述流量控制能力的描述信息用于描述出 上述虚拟机支持执行的流量控制 策略的版本,若接收到上述宿主机 1102在根据上述流量控制能力的描述信息确 定上述虚拟机支持执行当前最新版本或者预设 版本的流量控制策略之后发送 的协商确认指示, 则确定协商出的流量控制策略执行方为上述虚 拟机; 若在第 一设定时长之内未接收到上述宿主机 1102发送的用于响应上述执行方协商请 求的协商确认指示, 则确定协商出的流量控制策略执行方为上述宿 主机 1102; 或者,在基于上述虚拟机 1103的流量控制能力在上述虚拟机 1103与宿主机 1102之间协商流量控制策略的执行方的执行方 方面, 上述虚拟机具体用于, 向宿主机 1102发送携带上述虚拟机的流量控制能力的描 信息的执行方协商 请求,若接收到上述宿主机 1102在根据上述流量控制能力的描述信息确定 述 虚拟机不支持执行流量控制策略之后发送的协 商否认指示,则确定协商出的流 量控制策略执行方为上述宿主机 1102;若在第二设定时长内未接收到上述宿主 机 1102发送的用于响应上述执行方协商请求的协 否认指示,则确定协商出的 流量控制策略执行方为上述虚拟机;

或者,在基于上述虚拟机 1103的流量控制能力在上述虚拟机 1103与宿主机

1102之间协商流量控制策略的执行方的执行 的方面,上述虚拟机 1103具体用 于向宿主机 1102发送携带上述虚拟机的流量控制能力的描 信息的执行方协 商请求, 其中, 上述流量控制能力的描述信息用于描述出上述 虚拟机支持执行 的流量控制策略的版本,若接收到上述宿主机 1102在根据上述流量控制能力的 描述信息确定上述虚拟机支持执行当前最新版 本或者预设版本的流量控制策 略之后发送的协商否认指示,则确定协商出的 流量控制策略执行方为上述宿主 机 1102;若在第二设定时长之内未接收到上述宿主 1102发送的用于响应上述 执行方协商请求的协商否认指示,则确定协商 出的流量控制策略执行方为上述 虚拟机。

其中, 在本发明的一些实施例中, 宿主机 1102可接收虚拟机发送的携带上 述虚拟机的流量控制能力的描述信息的执行方 协商请求,若根据上述流量控制 能力的描述信息确定上述虚拟机支持执行流量 控制策略,则向上述虚拟机发送 协商确认指示,上述协商确认指示用于表示协 商出的流量控制策略执行方为上 述虚拟机; 和 /或, 若根据上述流量控制能力的描述信息确定上述 虚拟机不支 持执行流量控制策略, 则向上述虚拟机发送协商否认指示, 上述协商否认指示 用于表示协商出的流量控制策略执行方为上述 宿主机。

在本发明的另一些实施例中,宿主机 1102可接收虚拟机发送的携带有上述 虚拟机的流量控制能力的描述信息的执行方协 商请求,其中, 上述流量控制能 力的描述信息用于描述出上述虚拟机支持执行 的流量控制策略的版本,若根据 上述流量控制能力的描述信息确定上述虚拟机 支持执行当前最新版本或者预 设版本的流量控制策略, 则向上述虚拟机发送协商确认指示, 其中, 上述协商 确认指示用于表示协商出的流量控制策略执行 方为上述虚拟机; 和 /或, 若根 据上述流量控制能力的描述信息确定上述虚拟 机不支持执行当前最新版本或 者预设版本的流量控制策略, 则向上述虚拟机发送协商否认指示, 其中, 上述 协商否认指示用于表示协商出的流量控制策略 执行方为上述宿主机。

在本发明的一些实施例中,若上述流量控制能 力的描述信息用于描述出上 述虚拟机支持执行的流量控制策略的版本,则 宿主机 1102可根据上述流量控制 能力的描述信息确定上述虚拟机是否支持执行 当前最新版本或者预设版本的 流量控制策略, 具体可包括: 比较上述流量控制能力的描述信息所描述出上 述 虚拟机支持执行的流量控制策略的版本是否与 流量控制策略的当前最新版本 或者预设版本相同, 若是, 则可确定上述虚拟机支持执行当前最新版本或 者预 设版本的流量控制策略; 若否, 则可确定上述虚拟机不支持执行当前最新版本 或者预设版本的流量控制策略。 又例如, 宿主机 1102可根据上述流量控制能力 的描述信息确定上述虚拟机是否支持执行当前 最新版本或者预设版本的流量 控制策略具体可包括:比较上述流量控制能力 的描述信息所描述出上述虚拟机 支持执行的流量控制策略的 k个(k为正整数)版本中的每个版本, 是否与流量 控制策略的当前最新版本或者预设版本相同, 若比较出上述 k个版本中的其中 1 个版本与流量控制策略的当前最新版本或者预 设版本相同,则可确定上述虚拟 机支持执行当前最新版本或者预设版本的流量 控制策略; 若比较出上述 k个版 本中的任意 1个版本与流量控制策略的当前最新版本或者 设版本均不同, 则 可确定上述虚拟机不支持执行当前最新版本或 者预设版本的流量控制策略。

在本发明的一些实施例中, 上述宿主机 1102还用于, 在确定协商出的流量 控制策略的执行方为上述虚拟机之后,若在设 定时长内未接收到来自上述虚拟 机的心跳消息,则向上述虚拟机发送用于指示 流量控制策略执行方切换为上述 宿主机 1102的指示消息。

在本发明的一些实施例中,所述协商确认指示 中可以包含所述流量控制策 略; 其中, 在所述虚拟机基于所述流量控制策略对待转发 处理的报文进行转发 处理的方面, 所述虚拟机具体用于,基于所述协商确认指示 中包含的流量控制 策略对待转发处理的报文进行转发处理。

当然, 宿主机 1102亦可通过其它方式将流量控制策略传递给 拟机, 以便 于虚拟机 1103在确定协商出的流量控制策略执行方为上 虚拟机之后,基于宿 主机 1102传递过来的流量控制策略对待转发处理的 文进行转发处理。当然也 可以在虚拟机 1103中预配置流量控制策略, 当上述虚拟机 1103确定协商出的流 量控制策略执行方为上述虚拟机 1103,上述虚拟机 1103基于预配置的流量控制 策略对待转发处理的报文进行转发处理。

在本发明的一些实施例中,在所述虚拟机 1102向宿主机 1102发送携带虚拟 机 1102的流量控制能力的描述信息的执行方协商 求的方面,虚拟机 1102具体 用于在接收到用户态进程发起的协商启动请求 之后,向宿主机 1102发送携带虚 拟机 1102的流量控制能力的描述信息的执行方协商 求; 或者, 在接收到来自 宿主机 1102的协商启动请求之后,向宿主机 1102发送携带虚拟机 1102的流量控 制能力的描述信息的执行方协商请求。

其中,本实施例中宿主机 1102或虚拟机 1102处理待转发处理的报文所基于 的流量控制策略例如可以为基于服务质量的流 量控制策略和 /或基于访问控制 列表的流量控制策略, 当然, 上述流量控制策略也可是参考其他因素的流量 控 制策略。

其中,基于服务质量的流量控制策略主要基于 待转发处理报文对应的业务 优先级, 来确定该报文的具体转发处理方式(其中, 具体转发处理方式可以是 延迟发送报文、 无延迟的发送报文或丟弃报文等)。 例如, 当前緩存中存在多 个待转发处理的报文,则所对应业务优先级越 高的报文发送延迟可能越短甚至 无延迟, 所对应业务优先级越低的报文发送延迟可能越 长,甚至可以丟弃所对 的保障高优先级业务的服务质量。 即,基于服务质量的流量控制策略对待转发 处理的报文进行转发处理具体可包括:按照待 转发处理报文的业务优先级所对 应的转发处理方式对该待转发处理的报文进行 转发处理。

其中,基于访问控制列表的流量控制策略, 主要基于待转发处理报文所携 带信息与访问控制列表所包含记录之间是否匹 配,来确定报文的具体转发处理 方式。 例如, 访问控制列表为限制访问控制列表(类似黑名 单), 对于待转发 处理报文的源 /目的地址、 应用层协议类型、 传输层协议类型和 /或报文头所包 含的特定关键字等等信息, 若限制访问控制列表中有与之匹配的记录, 则该待 转发处理报文的转发处理方式可以是直接丟弃 ,反之,对于待转发处理报文的 源 /目的地址、 应用层协议类型、 传输层协议类型和 /或报文头所包含的关键字 等信息,若限制访问控制列表中没有与之匹配 的记录, 则该待转发处理报文的 转发处理方式可以是转发该报文。 又举例来说,假设访问控制列表为允许访问 控制列表(类似白名单), 则对于待转发处理报文的源 /目的地址、 应用层协议 类型、 传输层协议类型和 /或报文头所包含的特定关键字等信息, 若允许访问 控制列表中没有与之匹配的记录,则该待转发 处理报文的转发处理方式可为直 接丟弃, 而对于待转发处理报文的源 /目的地址、 应用层协议类型、 传输层协 议类型和 /或报文头所包含的关键字等信息, 若允许访问控制列表中有与之匹 配的记录, 则该待转发处理报文的转发处理方式可为转发 该报文。 其它情况以 此类推。

可以理解的是,本实施例中的计算节点 1100各个单元的功能可根据上述方 法实施例介绍的方法具体实现,其具体实现过 程可以参见上述实施例中的相关 描述, 在此不再赘述。

可以看出, 本实施例的方案中, 通过在计算节点 1100中引入虚拟机与 Host 协商流量控制策略执行方的机制,使得虚拟机 与 Host都有机会成为流量控制策 略执行方, 这使得由执行虚拟机流量控制策略变得可能, 这样就有利于尽可能 早的对报文流进行流量控制, 进而有利于减少无效处理、减少无效报文流量 对 带宽和 Host地址空间的占用。 可见, 上述方案有利于减少转发处理虚拟机出方 向的报文流量对 Host地址空间的占用。并且由于是通过协商方 来确定流量控 制策略执行方, 因此有利于提高流量控制策略执行的可靠性。

进一步的, 当虚拟机与 Host都支持执行流量控制策略时, 优先让虚拟机来 执行流量控制策略, 这样进一步有利于尽可能早的对报文进行流量 控制, 进而 进一步有利于减少无效处理和无效报文流量对 带宽的占用。

进一步的, 虚拟机与 Host釆用模块化架构设计, 有利于提升产品在复杂应 用环境下的适应性, 降低环境迁移的升级成本。 图 12描述了本发明实施例提供的一种计算节点 1200的结构, 该计算节点

1200包括: 至少一个处理器 1201, 例如 CPU, 至少一个网络接口 1204或者其他 用户接口 1203, 存储器 1205, 至少一个通信总线 1202。 通信总线 1202用于实现 这些组件之间的连接通信。该计算节点 1200可选的包含用户接口 1203, 包括显 示器, 键盘或者点击设备(例如, 鼠标, 轨迹球(trackball ) , 触感板或者触 感显示屏)。 存储器 1205可能包含高速 RAM存储器, 也可能还包括非不稳定的 存储器( non-volatile memory ), 例如至少一个磁盘存储器。 存储器 1205可选的 可以包含至少一个处于远离前述处理器 1201的存储装置。其中, 网络接口 1204 包括物理网卡等。

在一些实施方式中,存储器 1205存储了如下的元素, 可执行模块或者数据 结构, 或者他们的子集, 或者他们的扩展集: 宿主机 12051和至少一个虚拟机 12052。 其中, 受处理器 1201的调用, 宿主机 12051可具有如上述实施例所描述 宿主机的部分或全部功能, 受处理器 1201的调用, 虚拟机 12052可以具有如上 述实施例所描述虚拟机的部分或全部功能。

其中, 在本发明的实施例中, 受处理器 1201的调用, 虚拟机 12052用于基 于上述虚拟机的流量控制能力在上述虚拟机 12052与 Host 12051之间协商流量 控制策略的执行方; 若确定协商出的流量控制策略执行方为上述虚 拟机, 则基 于上述流量控制策略对待转发处理的报文进行 转发处理;若确定协商出的流量 控制策略的执行方为上述宿主机 12051, 则将待转发处理的报文发送给上述宿 主机 12051 ;

受处理器 1201的调用, 上述宿主机 12051用于若确定协商出的流量控制策 略执行方为上述宿主机 12051,在接收到来自虚拟机 12052的报文后,基于上述 流量控制策略对接收到的上述报文进行转发处 理。

在本发明一些实施例中,在基于上述虚拟机的 流量控制能力在上述虚拟机 12052与 Host 12051之间协商流量控制策略的执行方的方面, 受处理器 1201的 调用,虚拟机 12052具体用于, 向宿主机 12051发送携带上述虚拟机的流量控制 能力的描述信息的执行方协商请求, 若接收到上述宿主机 12051在根据上述流 量控制能力的描述信息确定上述虚拟机支持执 行流量控制策略之后发送的协 商确认指示, 则确定协商出的流量控制策略执行方为上述虚 拟机; 若接收到上 述宿主机 12051在根据上述流量控制能力的描述信息确定 述虚拟机不支持执 行流量控制策略之后发送的协商否认指示,则 确定协商出的流量控制策略执行 方为上述宿主机 12051;

或者, 在基于上述虚拟机的流量控制能力在上述虚拟 机 12052与 Host 12051之间协商流量控制策略的执行方的方面, 受处理器 1201的调用, 虚拟机 12052具体用于,向宿主机 12051发送携带上述虚拟机的流量控制能力的描 信 息的执行方协商请求, 其中, 上述流量控制能力的描述信息用于描述出上述 虚 拟机支持执行的流量控制策略的版本, 若接收到上述宿主机 12051在根据上述 流量控制能力的描述信息确定上述虚拟机支持 执行当前最新版本或者预设版 本的流量控制策略之后发送的协商确认指示, 则确定协商出的流量控制策略执 行方为上述虚拟机; 若接收到上述宿主机 12051在根据上述流量控制能力的描 述信息确定上述虚拟机不支持执行当前最新版 本或者预设版本的流量控制策 略之后发送的协商否认指示,则确定协商出的 流量控制策略执行方为上述宿主 机 12051 ;

或者, 在基于上述虚拟机的流量控制能力在上述虚拟 机 12052与 Host

12051之间协商流量控制策略的执行方的方面 受处理器 1201的调用, 虚拟机 12052具体用于,向宿主机 12051发送携带上述虚拟机的流量控制能力的描 信 息的执行方协商请求, 若接收到上述宿主机 12051在根据上述流量控制能力的 描述信息确定上述虚拟机支持执行流量控制策 略之后发送的协商确认指示,则 确定协商出的流量控制策略执行方为上述虚拟 机;若在第一设定时长内未接收 确定协商出的流量控制策略执行方为上述宿主 机 12051 ;

或者, 在基于上述虚拟机的流量控制能力在上述虚拟 机 12052与 Host 12051之间协商流量控制策略的执行方的方面, 受处理器 1201的调用, 虚拟机 12052具体用于,向宿主机 12051发送携带上述虚拟机的流量控制能力的描 信 息的执行方协商请求, 其中, 上述流量控制能力的描述信息用于描述出上述 虚 拟机支持执行的流量控制策略的版本, 若接收到上述宿主机 12051在根据上述 流量控制能力的描述信息确定上述虚拟机支持 执行当前最新版本或者预设版 本的流量控制策略之后发送的协商确认指示, 则确定协商出的流量控制策略执 行方为上述虚拟机; 若在第一设定时长之内未接收到上述宿主机 12051发送的 用于响应上述执行方协商请求的协商确认指示 ,则确定协商出的流量控制策略 执行方为上述宿主机 12051;

或者, 在基于上述虚拟机的流量控制能力在上述虚拟 机 12052与 Host 12051之间协商流量控制策略的执行方的方面, 受处理器 1201的调用, 虚拟机 12052具体用于,向宿主机 12051发送携带上述虚拟机的流量控制能力的描 信 息的执行方协商请求, 若接收到上述宿主机 12051在根据上述流量控制能力的 描述信息确定上述虚拟机不支持执行流量控制 策略之后发送的协商否认指示, 则确定协商出的流量控制策略执行方为上述宿 主机 12051; 若在第二设定时长 指示, 则确定协商出的流量控制策略执行方为上述虚 拟机;

或者, 在基于上述虚拟机的流量控制能力在上述虚拟 机 12052与 Host 12051之间协商流量控制策略的执行方的方面, 受处理器 1201的调用, 虚拟机 12052具体用于,向宿主机 12051发送携带上述虚拟机的流量控制能力的描 信 息的执行方协商请求, 其中, 上述流量控制能力的描述信息用于描述出上述 虚 拟机支持执行的流量控制策略的版本, 若接收到上述宿主机 12051在根据上述 流量控制能力的描述信息确定上述虚拟机支持 执行当前最新版本或者预设版 本的流量控制策略之后发送的协商否认指示, 则确定协商出的流量控制策略执 行方为上述宿主机 12051 ; 若在第二设定时长之内未接收到上述宿主机 12051 发送的用于响应上述执行方协商请求的协商否 认指示,则确定协商出的流量控 制策略执行方为上述虚拟机。

在本发明的一些实施例中,若上述流量控制能 力的描述信息用于描述出上 述虚拟机支持执行的流量控制策略的版本,受 处理器 1201的调用,宿主机 12051 可根据上述流量控制能力的描述信息确定上述 虚拟机是否支持执行当前最新 版本或者预设版本的流量控制策略, 具体可包括: 比较上述流量控制能力的描 述信息所描述出上述虚拟机支持执行的流量控 制策略的版本是否与流量控制 策略的当前最新版本或者预设版本相同, 若是, 则可确定上述虚拟机支持执行 当前最新版本或者预设版本的流量控制策略; 若否, 则可确定上述虚拟机不支 持执行当前最新版本或者预设版本的流量控制 策略。 又例如, 受处理器 1201 的调用, 宿主机 12051可根据上述流量控制能力的描述信息确定 述虚拟机是 否支持执行当前最新版本或者预设版本的流量 控制策略具体可包括:比较上述 流量控制能力的描述信息所描述出上述虚拟机 支持执行的流量控制策略的 k个 ( k为正整数)版本中的每个版本, 是否与流量控制策略的当前最新版本或者 预设版本相同,若比较出上述 k个版本中的其中 1个版本与流量控制策略的当前 最新版本或者预设版本相同,则可确定上述虚 拟机支持执行当前最新版本或者 预设版本的流量控制策略;若比较出上述 k个版本中的任意 1个版本与流量控制 策略的当前最新版本或者预设版本均不同,则 可确定上述虚拟机不支持执行当 前最新版本或者预设版本的流量控制策略。

在本发明的一些实施例中, 受处理器 1201的调用, 上述宿主机 12051还用 于,在确定协商出的流量控制策略的执行方为 上述虚拟机之后, 若在设定时长 内未接收到来自上述虚拟机的心跳消息,则向 上述虚拟机发送用于指示流量控 制策略执行方切换为上述宿主机 12051的指示消息。

在本发明的一些实施例中,所述协商确认指示 中可以包含所述流量控制策 略; 其中, 在所述虚拟机基于所述流量控制策略对待转发 处理的报文进行转发 处理的方面, 所述虚拟机 12052具体用于, 基于所述协商确认指示中包含的流 量控制策略对待转发处理的报文进行转发处理 。

当然宿主机 12051亦可通过其它方式将流量控制策略传递给 拟机, 以便 于虚拟机 12052在确定协商出的流量控制策略执行方为上 虚拟机之后, 基于 宿主机 12051传递过来的流量控制策略对待转发处理的 文进行转发处理。 当 然,也可以在虚拟机 12052中预配置流量控制策略, 当上述虚拟机 12052确定协 商出的流量控制策略执行方为上述虚拟机 12052,上述虚拟机 12052基于预配置 的流量控制策略对待转发处理的报文进行转发 处理。

在本发明的一些实施例中,在所述虚拟机 12051向宿主机 12051发送携带虚 拟机 12051的流量控制能力的描述信息的执行方协商 求的方面, 受处理器 1201的调用, 虚拟机 12051具体用于在接收到用户态进程发起的协商 动请求 之后,向宿主机 12051发送携带虚拟机 12051的流量控制能力的描述信息的执行 方协商请求; 或者在接收到来自宿主机 12051的协商启动请求之后, 向宿主机 12051发送携带虚拟机 12051的流量控制能力的描述信息的执行方协商 求。

其中,本实施例中宿主机 12051或虚拟机 12052处理待转发处理的报文所基 于的流量控制策略例如可以为基于服务质量的 流量控制策略和 /或基于访问控 制列表的流量控制策略, 当然, 上述流量控制策略也可是参考其他因素的流量 控制策略。

其中,基于服务质量的流量控制策略主要基于 待转发处理报文对应的业务 优先级, 来确定该报文的具体转发处理方式(其中, 具体转发处理方式可以是 延迟发送报文、 无延迟的发送报文或丟弃报文等)。 例如, 当前緩存中存在多 个待转发处理的报文,则所对应业务优先级越 高的报文发送延迟可能越短甚至 无延迟, 所对应业务优先级越低的报文发送延迟可能越 长,甚至可以丟弃所对 的保障高优先级业务的服务质量。 即,基于服务质量的流量控制策略对待转发 处理的报文进行转发处理具体可包括:按照待 转发处理报文的业务优先级所对 应的转发处理方式对该待转发处理的报文进行 转发处理。

其中,基于访问控制列表的流量控制策略, 主要基于待转发处理报文所携 带信息与访问控制列表所包含记录之间是否匹 配,来确定报文的具体转发处理 方式。 例如, 访问控制列表为限制访问控制列表(类似黑名 单), 对于待转发 处理报文的源 /目的地址、 应用层协议类型、 传输层协议类型和 /或报文头所包 含的特定关键字等等信息, 若限制访问控制列表中有与之匹配的记录, 则该待 转发处理报文的转发处理方式可以是直接丟弃 ,反之,对于待转发处理报文的 源 /目的地址、 应用层协议类型、 传输层协议类型和 /或报文头所包含的关键字 等信息, 若限制访问控制列表中没有与之匹配的记录, 则该待转发处理报文的 转发处理方式可以是转发该报文。 又举例来说,假设访问控制列表为允许访问 控制列表(类似白名单), 则对于待转发处理报文的源 /目的地址、 应用层协议 类型、 传输层协议类型和 /或报文头所包含的特定关键字等信息, 若允许访问 控制列表中没有与之匹配的记录,则该待转发 处理报文的转发处理方式可为直 接丟弃, 而对于待转发处理报文的源 /目的地址、 应用层协议类型、 传输层协 议类型和 /或报文头所包含的关键字等信息, 若允许访问控制列表中有与之匹 配的记录, 则该待转发处理报文的转发处理方式可为转发 该报文。 其它情况以 此类推。

可以理解的是,本实施例中的计算节点 1200各个单元的功能可根据上述方 法实施例介绍的方法具体实现,其具体实现过 程可以参见上述实施例中的相关 描述, 在此不再赘述。

可以看出, 本实施例的方案中, 通过在计算节点 1200中引入虚拟机与 Host 协商流量控制策略执行方的机制,使得虚拟机 与 Host都有机会成为流量控制策 略执行方, 这使得由执行虚拟机流量控制策略变得可能, 这样就有利于尽可能 早的对报文流进行流量控制, 进而有利于减少无效处理、减少无效报文流量 对 带宽和 Host地址空间的占用。 可见, 上述方案有利于减少转发处理虚拟机出方 向的报文流量对 Host地址空间的占用。并且由于是通过协商方 来确定流量控 制策略执行方, 因此有利于提高流量控制策略执行的可靠性。

进一步的, 当虚拟机与 Host都支持执行流量控制策略时, 优先让虚拟机来 执行流量控制策略, 这样进一步有利于尽可能早的对报文进行流量 控制, 进而 进一步有利于减少无效处理和无效报文流量对 带宽的占用。 图 13描述了本发明实施例提供的一种计算节点 1300的结构, 该计算节点 1300包括: 至少一个处理器 1301, 例如 CPU, 至少一个网络接口 1304, 存储器 1305, 至少一个通信总线 1302。通信总线 1302用于实现这些组件之间的连接通 信。 该计算节点 1300可选的包含用户接口 1303, 包括显示器, 键盘或者点击设 备(例如, 鼠标, 轨迹球(英文: trackball ) , 触感板或者触感显示屏)。 存储 器 1305可能包含高速 RAM存储器, 也可能还包括非不稳定的存储器 (英文: non- volatile memory ), 例如至少一个磁盘存储器。 存储器 1305可选的可以包含 至少一个处于远离前述处理器 1301的存储装置。 其中, 网络接口 1304包括物理 网卡等。

在一些实施方式中,存储器 1305存储了如下的元素, 可执行模块或者数据 结构, 或者他们的子集, 或者他们的扩展集: 宿主机 13051和至少一个虚拟机 13052。 其中, 受处理器 1301的调用, 宿主机 13051可具有如上述实施例所描述 宿主机的部分或全部功能, 受处理器 1301的调用, 虚拟机 13052可以具有如上 述实施例所描述虚拟机的部分或全部功能。

其中, 在本发明实施例中, 通过调用存储器 1305存储的程序或指令, 处理 器 1301可以用于,基于虚拟机 13052的流量控制能力,在宿主机 13051和上述虚 拟机 13052之间协商出流量控制策略的执行方。 若协商出的流量控制策略执行 方为上述虚拟机 13052,则基于上述流量控制策略对上述虚拟机 13052待转发处 理的报文进行转发处理; 若协商出的流量控制策略的执行方为上述宿主 机 于上述流量控制策略对上述宿主机 13051接收到的待转发处理的上述报文进行 转发处理。

在本发明的一些实施例中, 上述处理器 1301基于虚拟机 13052的流量控制 能力,在宿主机 13051和上述虚拟机 13052之间协商出流量控制策略的执行方可

13051发送的执行方协商请求,上述执行方协 请求携带上述虚拟机 13052的流 量控制能力的描述信息;

在上述宿主机 13051接收到上述执行方协商请求之后, 上述处理器 1301若 根据上述流量控制能力的描述信息确定上述虚 拟机 13052支持执行流量控制策 略,则上述处理器 1301向上述虚拟机 13052发送上述宿主机 13051待向上述虚拟 机 13052发送的协商确认指示, 其中, 上述协商确认指示用于表示协商出的流 量控制策略执行方为上述虚拟机 13052; 和 /或上述处理器 1301若根据上述流量 控制能力的描述信息, 确定上述虚拟机 13052不支持执行流量控制策略, 则上 述处理器 1301向上述虚拟机 13052发送上述宿主机 13051待向上述虚拟机 13052 发送的协商否认指示, 其中, 上述协商否认指示用于表示协商出的流量控制 策 略执行方为上述宿主机 13051;

或者, 上述处理器 1301基于虚拟机 13052的流量控制能力,在宿主机 13051 和上述虚拟机 13052之间协商出流量控制策略的执行方包括: 上述处理器 1301 求, 上述执行方协商请求携带虚拟机 13052的流量控制能力的描述信息, 上述 流量控制能力的描述信息用于描述出上述虚拟 机 13052支持执行的流量控制策 略的版本;

在上述宿主机 13051接收到上述执行方协商请求之后, 上述处理器 1301若 根据上述流量控制能力的描述信息, 确定上述虚拟机 13052支持执行当前最新 版本或者预设版本的流量控制策略, 则上述处理器 1301向上述虚拟机 13052发 指示用于表示协商出的流量控制策略执行方为 上述虚拟机 13052; 和 /或上述处 理器 1301若根据上述流量控制能力的描述信息确定 述虚拟机 13052不支持执 行当前最新版本或者预设版本的流量控制策略 ,则上述处理器 1301向上述虚拟 中, 上述协商否认指示用于表示协商出的流量控制 策略执行方为上述宿主机 13051。

在本发明的另一些实施例中, 上述处理器 1301基于虚拟机 13052的流量控 制能力,在宿主机 13051和上述虚拟机 13052之间协商出流量控制策略的执行方

13051发送的执行方协商请求,上述执行方协 请求携带上述虚拟机 13052的流 量控制能力的描述信息;若虚拟机 13052接收到上述宿主机 13051发送的用于响 应上述执行方协商请求的协商确认指示, 处理器 13051确定协商出的流量控制 策略执行方为上述虚拟机;若虚拟机 13052接收到上述宿主机 13051发送的用于 响应上述执行方协商请求的协商否认指示, 则处理器 13051确定协商出的流量 控制策略执行方为上述宿主机 13051。

或者, 上述处理器 1301基于虚拟机 13052的流量控制能力,在宿主机 13051 和上述虚拟机 13052之间协商出流量控制策略的执行方可包括 上述处理器 协商请求, 上述执行方协商请求携带上述虚拟机 13052的流量控制能力的描述 信息, 上述流量控制能力的描述信息用于描述出上述 虚拟机 13052支持执行的 流量控制策略的版本;若虚拟机 13052接收到上述宿主机 13051发送的用于响应 上述执行方协商请求的协商确认指示, 则处理器 13051确定协商出的流量控制 策略执行方为虚拟机 13052; 若虚拟机 13052接收到上述宿主机 13051在发送的 用于响应上述执行方协商请求的协商否认指示 ,则确定协商出的流量控制策略 执行方为上述宿主机 13051。

或者, 上述处理器 1301基于虚拟机 13052的流量控制能力,在宿主机 13051 和上述虚拟机 13052之间协商出流量控制策略的执行方可包括 上述处理器 协商请求, 上述执行方协商请求携带上述虚拟机 13052的流量控制能力的描述 请求的协商确认指示,则上述处理器 1301确定协商出的流量控制策略执行方为 上述虚拟机;若虚拟机 13052在第一设定时长内未接收到上述宿主机 13051发送 的用于响应上述执行方协商请求的协商确认指 示,则上述处理器 1301确定协商 出的流量控制策略执行方为上述宿主机 13051。

或者, 上述处理器 1301基于虚拟机 13052的流量控制能力,在宿主机 13051 和上述虚拟机 13052之间协商出流量控制策略的执行方可包括 上述处理器 协商请求, 上述执行方协商请求携带上述虚拟机 13052的流量控制能力的描述 信息, 其中, 上述流量控制能力的描述信息用于描述出上述 虚拟机支持执行的 流量控制策略的版本,若虚拟机 13052接收到上述宿主机 13051发送的用于响应 上述执行方协商请求的协商确认指示,则处理 器 1301确定协商出的流量控制策 略执行方为上述虚拟机; 若虚拟机 13052在第一设定时长之内未接收到上述宿 主机 13051发送的用于响应上述执行方协商请求的协 确认指示, 则处理器 1301可确定协商出的流量控制策略执行方为上 宿主机 13051。

或者, 上述处理器 1301基于虚拟机 13052的流量控制能力,在宿主机 13051 和上述虚拟机 13052之间协商出流量控制策略的执行方可包括 上述处理器 协商请求, 上述执行方协商请求携带上述虚拟机 13052的流量控制能力的描述 请求的协商否认指示,则处理器 1301确定协商出的流量控制策略执行方为上述 宿主机 13051 ; 若上述虚拟机 13052在第二设定时长内未接收到上述宿主机 13051发送的用于响应上述执行方协商请求的协 否认指示, 则上述处理器 1301确定协商出的流量控制策略执行方为上述 拟机;

或者, 上述处理器 1301基于虚拟机 13052的流量控制能力,在宿主机 13051 和上述虚拟机 13052之间协商出流量控制策略的执行方可包括 上述处理器 协商请求, 上述执行方协商请求携带上述虚拟机 13052的流量控制能力的描述 信息, 其中, 上述流量控制能力的描述信息用于描述出上述 虚拟机支持执行的 流量控制策略的版本,若虚拟机 13052接收到上述宿主机 13051发送的用于响应 上述执行方协商请求的协商否认指示,则处理 器 1301确定协商出的流量控制策 略执行方为上述宿主机 13051 ;若虚拟机 13052在第二设定时长之内未接收到上 器 1301确定协商出的流量控制策略执行方为上述 拟机。

在本发明一些实施例中, 上述协商确认指示中包含上述流量控制策略。 其中, 上述处理器 1301基于上述流量控制策略对上述虚拟机 13052待转发 处理的报文进行转发处理可以包括:上述处理 器 1301基于上述协商确认指示中 包含的上述流量控制策略, 对上述虚拟机 13052待转发处理的报文进行转发处 理。

当然, 宿主机 13051亦可通过其它方式将流量控制策略传递给 拟机 13052, 以便在确定协商出的流量控制策略执行方为上 述虚拟机 13052之后, 上 述处理器 1301基于宿主机 13051传递过来的流量控制策略对虚拟机 13052待转 发处理的报文进行转发处理。 当然, 也可以在虚拟机 13052中预配置流量控制 策略, 当确定协商出的流量控制策略执行方为上述虚 拟机 13052, 上述处理器 发处理。

在本发明的一些实施例中, 在上述宿主机 13051接收到上述执行方协商请 求之后,若上述流量控制能力的描述信息用于 描述出上述虚拟机支持执行的流 量控制策略的版本,处理器 1301可根据上述流量控制能力的描述信息确定 述 虚拟机是否支持执行当前最新版本或者预设版 本的流量控制策略, 具体可包 括:比较上述流量控制能力的描述信息所描述 出上述虚拟机支持执行的流量控 制策略的版本是否与流量控制策略的当前最新 版本或者预设版本相同, 若是, 则可确定上述虚拟机支持执行当前最新版本或 者预设版本的流量控制策略;若 否,则可确定上述虚拟机不支持执行当前最新 版本或者预设版本的流量控制策 略。 又例如, 处理器 1301可根据上述流量控制能力的描述信息确定 述虚拟机 是否支持执行当前最新版本或者预设版本的流 量控制策略具体可包括:比较上 述流量控制能力的描述信息所描述出上述虚拟 机支持执行的流量控制策略的 k 个(k为正整数)版本中的每个版本, 是否与流量控制策略的当前最新版本或 者预设版本相同,若比较出上述 k个版本中的其中 1个版本与流量控制策略的当 前最新版本或者预设版本相同,则可确定上述 虚拟机支持执行当前最新版本或 者预设版本的流量控制策略;若比较出上述 k个版本中的任意 1个版本与流量控 制策略的当前最新版本或者预设版本均不同, 则可确定上述虚拟机不支持执行 当前最新版本或者预设版本的流量控制策略。

在本发明一些实施例中, 上述处理器 1301还用于,在协商出的流量控制策 略的执行方为上述虚拟机 13052后,若上述宿主机 13051在设定时长内未接收到 来自上述虚拟机 13052的心跳消息, 向上述虚拟机 13052发送上述宿主机 13051 待向上述虚拟机 13052发送的, 用于指示流量控制策略的执行方切换为上述宿 主机 13051的指示消息。

其中,本实施例中处理器 1301处理宿主机 13052或虚拟机 13051待转发处理 的报文所基于的流量控制策略例如可以为基于 服务质量的流量控制策略和 /或 基于访问控制列表的流量控制策略, 当然, 上述流量控制策略也可是参考其他 因素的流量控制策略。

其中,基于服务质量的流量控制策略主要基于 待转发处理报文对应的业务 优先级, 来确定该报文的具体转发处理方式(其中, 具体转发处理方式可以是 延迟发送报文、 无延迟的发送报文或丟弃报文等)。 例如, 当前緩存中存在多 个待转发处理的报文,则所对应业务优先级越 高的报文发送延迟可能越短甚至 无延迟, 所对应业务优先级越低的报文发送延迟可能越 长,甚至可以丟弃所对 的保障高优先级业务的服务质量。 即,基于服务质量的流量控制策略对待转发 处理的报文进行转发处理具体可包括:按照待 转发处理报文的业务优先级所对 应的转发处理方式对该待转发处理的报文进行 转发处理。

其中,基于访问控制列表的流量控制策略, 主要基于待转发处理报文所携 带信息与访问控制列表所包含记录之间是否匹 配,来确定报文的具体转发处理 方式。 例如, 访问控制列表为限制访问控制列表(类似黑名 单), 对于待转发 处理报文的源 /目的地址、 应用层协议类型、 传输层协议类型和 /或报文头所包 含的特定关键字等等信息, 若限制访问控制列表中有与之匹配的记录, 则该待 转发处理报文的转发处理方式可以是直接丟弃 ,反之,对于待转发处理报文的 源 /目的地址、 应用层协议类型、 传输层协议类型和 /或报文头所包含的关键字 等信息,若限制访问控制列表中没有与之匹配 的记录, 则该待转发处理报文的 转发处理方式可以是转发该报文。 又举例来说,假设访问控制列表为允许访问 控制列表(类似白名单), 则对于待转发处理报文的源 /目的地址、 应用层协议 类型、 传输层协议类型和 /或报文头所包含的特定关键字等信息, 若允许访问 控制列表中没有与之匹配的记录,则该待转发 处理报文的转发处理方式可为直 接丟弃, 而对于待转发处理报文的源 /目的地址、 应用层协议类型、 传输层协 议类型和 /或报文头所包含的关键字等信息, 若允许访问控制列表中有与之匹 配的记录, 则该待转发处理报文的转发处理方式可为转发 该报文。 其它情况以 此类推。

在本发明一些实施例中, 上述处理器 1301向宿主机 13051发送上述虚拟机 13052待向上述宿主机 13051发送的执行方协商请求可包括:

在虚拟机 13052在接收到用户态进程发起的协商启动请求 后, 上述处理 方协商请求; 或者, 在虚拟机 13052在接收到来自上述宿主机 13051的协商启动 宿主机 13051发送的执行方协商请求。

在本发明一些实施例中, 上述基于虚拟机 13052的流量控制能力, 在宿主 机 13051和上述虚拟机 13052之间协商出流量控制策略的执行方, 可包括: 在部 署于虚拟机 13052中的预载客户端与部署于宿主机 13051中的预载服务端之间 的连接建立完成之后,上述处理器 1301通过建立的上述连接,基于虚拟机 13052 的流量控制能力,在宿主机 13051和上述虚拟机 13052之间协商出流量控制策略 的执行。

可以理解的是,本实施例中的计算节点 1300各个单元的功能可以根据上述 方法实施例介绍的方法具体实现,其具体实现 过程可以参见上述实施例中的相 关描述, 在此不再赘述。

可见, 釆用上述方案后, 在计算节点 1300中引入在虚拟机 13052与宿主机

13051之间协商流量控制策略执行方的机制, 在处理器 1301协助之下, 使得虚 拟机 13052与宿主机 13051都有机会成为流量控制策略执行方,这使 由执行虚 拟机 13052流量控制策略变得可能, 这样就有利于尽可能早的对报文流进行流 量控制, 进而有利于减少无效处理、 减少无效报文流量对带宽和宿主机 13051 地址空间的占用。 可见, 上述方案有利于减少转发处理虚拟机 13052出方向的 报文流量对宿主机 13051地址空间的占用。 并且由于是通过协商方式来确定流 量控制策略执行方, 因此有利于提高流量控制策略执行的可靠性。

进一步的, 当虚拟机 13052与宿主机 13051都支持执行流量控制策略时,优 先让虚拟机 13052来执行流量控制策略, 这样进一步有利于尽可能早的对报文 进行流量控制, 进而进一步有利于减少无效处理和无效报文流 量对带宽的占 用。

本发明实施例还提供一种计算机存储介质, 其中, 该计算机存储介质可存 储有程序,该程序执行时包括上述方法实施例 中记载的报文流量控制方法的部 分或全部步骤。

需要说明的是, 对于前述的各方法实施例, 为了简单描述, 故将其都表述 为一系列的动作组合,但是本领域技术人员应 该知悉, 本发明并不受所描述的 动作顺序的限制,因为依据本发明,某些步骤 可以釆用其他顺序或者同时进行。 其次, 本领域技术人员也应该知悉,说明书中所描述 的实施例均属于优选实施 例, 所涉及的动作和模块并不一定是本发明所必须 的。

在上述实施例中,对各个实施例的描述都各有 侧重, 某个实施例中没有详 述的部分, 可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中, 应该理解到, 所揭露的装置, 可通过其 它的方式实现。 例如, 以上所描述的装置实施例仅仅是示意性的, 例如上述单 元的划分, 仅仅为一种逻辑功能划分, 实际实现时可以有另外的划分方式, 例 如多个单元或组件可以结合或者可以集成到另 一个系统, 或一些特征可以忽 略, 或不执行。 另一点, 所显示或讨论的相互之间的耦合或直接辆合或 通信连 接可以是通过一些接口, 装置或单元的间接辆合或通信连接, 可以是电性或其 它的形式。 单元显示的部件可以是或者也可以不是物理单 元, 即可以处于一个地方, 或者 也可以分布到多个网络单元上。可以根据实际 的需要选择其中的部分或者全部 单元来实现本实施例方案的目的。

另外, 在本发明各个实施例中的各功能单元可以集成 在一个处理单元中, 也可以是各个单元单独物理存在,也可以两个 或两个以上单元集成在一个单元 中。上述集成的单元既可以釆用硬件的形式实 现,也可以釆用软件功能单元的 形式实现。

上述集成的单元如果以软件功能单元的形式实 现并作为独立的产品销售 或使用时, 可以存储在一个计算机可读取存储介质中。 基于这样的理解, 本发 明的技术方案本质上或者说对现有技术做出贡 献的部分或者该技术方案的全 部或部分可以以软件产品的形式体现出来,该 计算机软件产品存储在一个存储 介质中, 包括若干指令用以使得一台计算机设备(可为 个人计算机、 服务器或 者网络设备或者与内存连接的处理器等)执行 本发明各个实施例上述方法的全 部或部分步骤。 而前述的存储介质包括: U盘、 只读存储器(英文: read-only memory, 缩写: ROM )、 随机存取存储器 (英文: random access memory, 缩 写: RAM )、 移动硬盘、 磁碟或者光盘等各种可以存储程序代码的介质 。

以上所述, 以上实施例仅用以说明本发明的技术方案, 而非对其限制; 尽 管参照前述实施例对本发明进行了详细的说明 ,本领域的普通技术人员应当理 解: 其依然可以对前述各实施例所记载的技术方案 进行修改, 或者对其中部分 技术特征进行等同替换; 而这些修改或者替换, 并不使相应技术方案的本质脱 离本发明各实施例技术方案的范围。