CN103763403B - 报文流量控制方法及相关装置和计算节点 - Google Patents

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

Info

Publication number
CN103763403B
CN103763403B CN201310746701.5A CN201310746701A CN103763403B CN 103763403 B CN103763403 B CN 103763403B CN 201310746701 A CN201310746701 A CN 201310746701A CN 103763403 B CN103763403 B CN 103763403B
Authority
CN
China
Prior art keywords
virtual machine
flow control
host
control policy
execution side
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310746701.5A
Other languages
English (en)
Other versions
CN103763403A (zh
Inventor
王福海
何冠森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310746701.5A priority Critical patent/CN103763403B/zh
Publication of CN103763403A publication Critical patent/CN103763403A/zh
Priority to EP14812400.1A priority patent/EP2905948B1/en
Priority to JP2016543577A priority patent/JP6336602B2/ja
Priority to PCT/CN2014/081642 priority patent/WO2015101000A1/zh
Priority to KR1020167020644A priority patent/KR101875710B1/ko
Priority to US14/586,121 priority patent/US9921867B2/en
Application granted granted Critical
Publication of CN103763403B publication Critical patent/CN103763403B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例公开了报文流量控制方法及相关装置和计算节点。其中一种报文流量控制方法可以包括:基于虚拟机的流量控制能力在虚拟机与宿主机Host之间协商流量控制策略的执行方;若确定协商出的流量控制策略执行方为虚拟机,则虚拟机基于流量控制策略对待转发处理的报文进行转发处理;若确定协商出的流量控制策略的执行方为Host,则虚拟机将待转发处理的报文发送给Host,以便Host基于流量控制策略对接收到的报文进行转发处理。本发明实施例提供的技术方案有利于减少处理虚拟机出方向的报文流量对Host地址空间的占用。

Description

报文流量控制方法及相关装置和计算节点
技术领域
本发明涉及计算机技术领域,具体涉及一种报文流量控制方法及相关装置和计算节点。
背景技术
虚拟化技术是一种将底层硬件设备与上层操作系统、应用程序分离的去耦合技术,如图1所示,引入虚拟机监控器(VMM,Virtual Machine Monitor)层直接管理底层硬件资源,创建与底层硬件无关的虚拟机(VM,Virtual Machine)供上层操作系统和应用程序使用。
虚拟化技术作为当前流行的云计算(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地址空间的占用。并且由于是通过协商来确定流量控制策略执行方,流量控制策略执行方的执行能力得到一定程度的保证,因此有利于提高流量控制策略执行的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图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和内存,还可以包括网卡、存储器等等高速/低速输入/输出(I/O,Input/Output)设备,及具有特定处理功能的其它设备,如输入输出内存管理单元(IOMMU,Input/Output Memory Management Unit),其中IOMMU可用于虚拟机物理地址和Host物理地址的转换。
宿主机(Host):
作为管理层,用以完成硬件资源的管理、分配;为虚拟机呈现虚拟硬件平台;实现虚拟机的调度和隔离。其中,Host可能是虚拟机监控器(VMM);此外,有时VMM和1个特权虚拟机配合,两者结合组成Host。其中,虚拟硬件平台对其上运行的各个虚拟机提供各种硬件资源,如提供虚拟CPU、内存、虚拟磁盘、虚拟网卡等等。其中,该虚拟磁盘可对应Host的一个文件或者一个逻辑块设备。虚拟机则运行在Host为其准备的虚拟硬件平台上,Host上运行一个或多个虚拟机。
参见图2和,图2是本发明实施例提出的一种计算节点的虚拟化体系架构示意图,该体系架构主要包括三个层次:硬件层、Host和虚拟机(VM)。硬件层包括网卡。Host中部署有与网卡对应的后端实例(BE,Back-End),VM中具有网卡对应的前端实例(FE,Front-End);其中,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根据上述流量控制能力的描述信息确定上述虚拟机支持执行当前最新版本或者预设版本的流量控制策略,则向上述虚拟机发送协商确认指示,其中,上述协商确认指示用于表示协商出的流量控制策略执行方为上述虚拟机;和/或若上述Host根据上述流量控制能力的描述信息确定上述虚拟机不支持执行当前最新版本或者预设版本的流量控制策略,则向上述虚拟机发送协商否认指示,其中,上述协商否认指示用于表示协商出的流量控制策略执行方为上述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基于上述流量控制策略对接收到的上述报文进行转发处理。通过引入虚拟机与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中部署的preloadclient发起协商流量控制策略执行方,当然,虚拟机VM-m中部署的preload client也可能在其它条件(举例来说,接收到用户态进程发起的协商启动请求(即可能由用户态应用或用户指令触发))的触发下,发起协商流量控制策略执行方。若虚拟机VM-m中部署的preloadclient自主发起流量控制策略执行方的协商,则步骤502可以省略。
504、Host中部署的preload server接收携带虚拟机VM-m的流量控制能力的描述信息的执行方协商请求,其中,该执行方协商请求携带的上述流量控制能力的描述信息用于指示出虚拟机VM-m是否支持执行流量控制策略,因此Host中部署的preload server可根据上述流量控制能力的描述信息,确定上述虚拟机VM-m是否支持执行流量控制策略。
本实施例下面以Host中部署的preload server确定上述虚拟机VM-m支持执行流量控制策略为例。因此,Host中部署的preload server可向虚拟机VM-m中部署的preloadclient发送协商确认指示,其中,上述协商确认指示用于表示协商出的流量控制策略执行方为上述虚拟机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中部署的用户态应用的待转发处理的报文进行转发处理可包括:虚拟机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工作正常的状态通知上述preloadserver,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,上述preloadserver可通知上述preload kernel执行流量控制策略。
在本发明的一些实施例中,在确定协商出的流量控制策略执行方为上述虚拟机VM-m之后,上述preload server亦可周期性的或非周期性的向上述preload client亦发送用于查询虚拟机VM-m执行流量控制策略是否正常的状态查询消息,若在设定时长之内未接收到来自preload client的用于响应上述状态查询消息的状态指示消息,或接收到来自preload client的用于指示虚拟机VM-m执行流量控制策略故障的指示消息,则可确定虚拟机VM-m执行流量控制策略故障。当然,preload server亦可通过其它方式监测虚拟机VM-m执行流量控制策略是否故障。若确定虚拟机VM-m执行流量控制策略故障,则上述preloadserver可将流量控制策略的执行方切换为Host,上述preload server可通知上述preloadkernel执行流量控制策略。
在被通知执行流量控制策略之后,上述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中部署的preloadclient发起协商流量控制策略执行方,当然,虚拟机VM-m中部署的preload client也可能在其它条件(举例来说,接收到用户态进程发起的协商启动请求(即可能由用户态应用或用户指令触发))的触发下,发起协商流量控制策略执行方。若虚拟机VM-m中部署的preloadclient自主发起流量控制策略执行方的协商,则步骤602可以省略。
604、Host中部署的preload server接收携带虚拟机VM-m的流量控制能力的描述信息的执行方协商请求,其中,该执行方协商请求携带的上述流量控制能力的描述信息用于指示出虚拟机VM-m是否支持执行流量控制策略,因此Host中部署的preload server可根据上述流量控制能力的描述信息,确定上述虚拟机VM-m是否支持执行流量控制策略。
本实施例下面以Host中部署的preload server确定上述虚拟机VM-m不支持执行流量控制策略为例。因此,Host中部署的preload server可向虚拟机VM-m中部署的preloadclient发送协商否认指示,其中,上述协商否认指示用于表示协商出的流量控制策略执行方为上述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中部署的preloadclient发起协商流量控制策略执行方,当然,虚拟机VM-m中部署的preload client也可能在其它条件(举例来说,接收到用户态进程发起的协商启动请求(即可能由用户态应用或用户指令触发))的触发下,发起协商流量控制策略执行方。若虚拟机VM-m中部署的preloadclient自主发起流量控制策略执行方的协商,则步骤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中部署的用户态应用的待转发处理的报文进行转发处理可包括:虚拟机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工作正常的状态通知上述preloadserver,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,上述preloadserver可通知上述preload kernel执行流量控制策略。
在本发明的一些实施例中,在确定协商出的流量控制策略执行方为上述虚拟机VM-m之后,上述preload server亦可周期性的或非周期性的向上述preload client亦发送用于查询虚拟机VM-m执行流量控制策略是否正常的状态查询消息,若在设定时长之内未接收到来自preload client的用于响应上述状态查询消息的状态指示消息,或接收到来自preload client的用于指示虚拟机VM-m执行流量控制策略故障的指示消息,则可确定虚拟机VM-m执行流量控制策略故障。当然,preload server亦可通过其它方式监测虚拟机VM-m执行流量控制策略是否故障。若确定虚拟机VM-m执行流量控制策略故障,则上述preloadserver可将流量控制策略的执行方切换为Host,上述preload server可通知上述preloadkernel执行流量控制策略。
在被通知执行流量控制策略之后,上述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中部署的preloadclient发起协商流量控制策略执行方,当然,虚拟机VM-m中部署的preload client也可能在其它条件(举例来说,接收到用户态进程发起的协商启动请求(即可能由用户态应用或用户指令触发))的触发下,发起协商流量控制策略执行方。若虚拟机VM-m中部署的preloadclient自主发起流量控制策略执行方的协商,则步骤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中部署的预载内核(preload 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的指示消息。
本实施例中报文处理单元1020处理待转发处理的报文所基于的流量控制策略例如可为基于服务质量的流量控制策略和/或基于访问控制列表的流量控制策略,当然流量控制策略也可是参考其他因素的流量控制策略。
其中,基于服务质量的流量控制策略主要基于待转发处理报文对应的业务优先级,来确定该报文的具体转发处理方式(其中,具体转发处理方式可以是延迟发送报文、无延迟的发送报文或丢弃报文等)。例如,当前缓存中存在多个待转发处理的报文,则所对应业务优先级越高的报文发送延迟可能越短甚至无延迟,所对应业务优先级越低的报文发送延迟可能越长,甚至可以丢弃所对应业务优先级低于设定的优先级阈值的待转发处理报文,这样就有利于尽可能的保障高优先级业务的服务质量。即,基于服务质量的流量控制策略对待转发处理的报文进行转发处理具体可包括:按照待转发处理报文的业务优先级所对应的转发处理方式对该待转发处理的报文进行转发处理。
其中,基于访问控制列表的流量控制策略,主要基于待转发处理报文所携带信息与访问控制列表所包含记录之间是否匹配,来确定报文的具体转发处理方式。例如,访问控制列表为限制访问控制列表(类似黑名单),对于待转发处理报文的源/目的地址、应用层协议类型、传输层协议类型和/或报文头所包含的特定关键字等等信息,若限制访问控制列表中有与之匹配的记录,则该待转发处理报文的转发处理方式可以是直接丢弃,反之,对于待转发处理报文的源/目的地址、应用层协议类型、传输层协议类型和/或报文头所包含的关键字等信息,若限制访问控制列表中没有与之匹配的记录,则该待转发处理报文的转发处理方式可以是转发该报文。又举例来说,假设访问控制列表为允许访问控制列表(类似白名单),则对于待转发处理报文的源/目的地址、应用层协议类型、传输层协议类型和/或报文头所包含的特定关键字等信息,若允许访问控制列表中没有与之匹配的记录,则该待转发处理报文的转发处理方式可为直接丢弃,而对于待转发处理报文的源/目的地址、应用层协议类型、传输层协议类型和/或报文头所包含的关键字等信息,若允许访问控制列表中有与之匹配的记录,则该待转发处理报文的转发处理方式可为转发该报文。其它情况以此类推。
可以理解的是,本实施例中的Host1000各个模块的功能可根据上述方法实施例介绍的方法具体实现,其具体实现过程可以参见上述实施例中的相关描述,在此不再赘述。
可以看出,本实施例的方案中,通过引入虚拟机与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与Host12051之间协商流量控制策略的执行方;若确定协商出的流量控制策略执行方为上述虚拟机,则基于上述流量控制策略对待转发处理的报文进行转发处理;若确定协商出的流量控制策略的执行方为上述宿主机12051,则将待转发处理的报文发送给上述宿主机12051;
受处理器1201的调用,上述宿主机12051用于若确定协商出的流量控制策略执行方为上述宿主机12051,在接收到来自虚拟机12052的报文后,基于上述流量控制策略对接收到的上述报文进行转发处理。
在本发明一些实施例中,在基于上述虚拟机的流量控制能力在上述虚拟机12052与Host12051之间协商流量控制策略的执行方的方面,受处理器1201的调用,虚拟机12052具体用于,向宿主机12051发送携带上述虚拟机的流量控制能力的描述信息的执行方协商请求,若接收到上述宿主机12051在根据上述流量控制能力的描述信息确定上述虚拟机支持执行流量控制策略之后发送的协商确认指示,则确定协商出的流量控制策略执行方为上述虚拟机;若接收到上述宿主机12051在根据上述流量控制能力的描述信息确定上述虚拟机不支持执行流量控制策略之后发送的协商否认指示,则确定协商出的流量控制策略执行方为上述宿主机12051;
或者,在基于上述虚拟机的流量控制能力在上述虚拟机12052与Host12051之间协商流量控制策略的执行方的方面,受处理器1201的调用,虚拟机12052具体用于,向宿主机12051发送携带上述虚拟机的流量控制能力的描述信息的执行方协商请求,其中,上述流量控制能力的描述信息用于描述出上述虚拟机支持执行的流量控制策略的版本,若接收到上述宿主机12051在根据上述流量控制能力的描述信息确定上述虚拟机支持执行当前最新版本或者预设版本的流量控制策略之后发送的协商确认指示,则确定协商出的流量控制策略执行方为上述虚拟机;若接收到上述宿主机12051在根据上述流量控制能力的描述信息确定上述虚拟机不支持执行当前最新版本或者预设版本的流量控制策略之后发送的协商否认指示,则确定协商出的流量控制策略执行方为上述宿主机12051;
或者,在基于上述虚拟机的流量控制能力在上述虚拟机12052与Host12051之间协商流量控制策略的执行方的方面,受处理器1201的调用,虚拟机12052具体用于,向宿主机12051发送携带上述虚拟机的流量控制能力的描述信息的执行方协商请求,若接收到上述宿主机12051在根据上述流量控制能力的描述信息确定上述虚拟机支持执行流量控制策略之后发送的协商确认指示,则确定协商出的流量控制策略执行方为上述虚拟机;若在第一设定时长内未接收到上述宿主机12051发送的用于响应上述执行方协商请求的协商确认指示,则确定协商出的流量控制策略执行方为上述宿主机12051;
或者,在基于上述虚拟机的流量控制能力在上述虚拟机12052与Host12051之间协商流量控制策略的执行方的方面,受处理器1201的调用,虚拟机12052具体用于,向宿主机12051发送携带上述虚拟机的流量控制能力的描述信息的执行方协商请求,其中,上述流量控制能力的描述信息用于描述出上述虚拟机支持执行的流量控制策略的版本,若接收到上述宿主机12051在根据上述流量控制能力的描述信息确定上述虚拟机支持执行当前最新版本或者预设版本的流量控制策略之后发送的协商确认指示,则确定协商出的流量控制策略执行方为上述虚拟机;若在第一设定时长之内未接收到上述宿主机12051发送的用于响应上述执行方协商请求的协商确认指示,则确定协商出的流量控制策略执行方为上述宿主机12051;
或者,在基于上述虚拟机的流量控制能力在上述虚拟机12052与Host12051之间协商流量控制策略的执行方的方面,受处理器1201的调用,虚拟机12052具体用于,向宿主机12051发送携带上述虚拟机的流量控制能力的描述信息的执行方协商请求,若接收到上述宿主机12051在根据上述流量控制能力的描述信息确定上述虚拟机不支持执行流量控制策略之后发送的协商否认指示,则确定协商出的流量控制策略执行方为上述宿主机12051;若在第二设定时长内未接收到上述宿主机12051发送的用于响应上述执行方协商请求的协商否认指示,则确定协商出的流量控制策略执行方为上述虚拟机;
或者,在基于上述虚拟机的流量控制能力在上述虚拟机12052与Host12051之间协商流量控制策略的执行方的方面,受处理器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或者其他用户接口1303,存储器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,则将上述虚拟机13052待转发处理的报文发送给上述宿主机13051;基于上述流量控制策略对上述宿主机13051接收到的待转发处理的上述报文进行转发处理。
在本发明的一些实施例中,上述处理器1301基于虚拟机13052的流量控制能力,在宿主机13051和上述虚拟机13052之间协商出流量控制策略的执行方可包括:上述处理器1301向宿主机13051发送上述虚拟机13052待向上述宿主机13051发送的执行方协商请求,上述执行方协商请求携带上述虚拟机13052的流量控制能力的描述信息;
在上述宿主机13051接收到上述执行方协商请求之后,上述处理器1301若根据上述流量控制能力的描述信息确定上述虚拟机13052支持执行流量控制策略,则上述处理器1301向上述虚拟机13052发送上述宿主机13051待向上述虚拟机13052发送的协商确认指示,其中,上述协商确认指示用于表示协商出的流量控制策略执行方为上述虚拟机13052;和/或上述处理器1301若根据上述流量控制能力的描述信息,确定上述虚拟机13052不支持执行流量控制策略,则上述处理器1301向上述虚拟机13052发送上述宿主机13051待向上述虚拟机13052发送的协商否认指示,其中,上述协商否认指示用于表示协商出的流量控制策略执行方为上述宿主机13051;
或者,上述处理器1301基于虚拟机13052的流量控制能力,在宿主机13051和上述虚拟机13052之间协商出流量控制策略的执行方包括:上述处理器1301向宿主机13051发送虚拟机13052待向上述宿主机13051发送的执行方协商请求,上述执行方协商请求携带虚拟机13052的流量控制能力的描述信息,上述流量控制能力的描述信息用于描述出上述虚拟机13052支持执行的流量控制策略的版本;
在上述宿主机13051接收到上述执行方协商请求之后,上述处理器1301若根据上述流量控制能力的描述信息,确定上述虚拟机13052支持执行当前最新版本或者预设版本的流量控制策略,则上述处理器1301向上述虚拟机13052发送上述宿主机13051待向上述虚拟机13052发送的协商确认指示,上述协商确认指示用于表示协商出的流量控制策略执行方为上述虚拟机13052;和/或上述处理器1301若根据上述流量控制能力的描述信息确定上述虚拟机13052不支持执行当前最新版本或者预设版本的流量控制策略,则上述处理器1301向上述虚拟机13052发送上述宿主机13051待向上述虚拟机13052发送的协商否认指示,其中,上述协商否认指示用于表示协商出的流量控制策略执行方为上述宿主机13051。
在本发明的另一些实施例中,上述处理器1301基于虚拟机13052的流量控制能力,在宿主机13051和上述虚拟机13052之间协商出流量控制策略的执行方可包括:上述处理器1301向宿主机13051发送上述虚拟机13052待向上述宿主机13051发送的执行方协商请求,上述执行方协商请求携带上述虚拟机13052的流量控制能力的描述信息;若虚拟机13052接收到上述宿主机13051发送的用于响应上述执行方协商请求的协商确认指示,处理器13051确定协商出的流量控制策略执行方为上述虚拟机;若虚拟机13052接收到上述宿主机13051发送的用于响应上述执行方协商请求的协商否认指示,则处理器13051确定协商出的流量控制策略执行方为上述宿主机13051。
或者,上述处理器1301基于虚拟机13052的流量控制能力,在宿主机13051和上述虚拟机13052之间协商出流量控制策略的执行方可包括:上述处理器1301向宿主机13051发送上述虚拟机13052待向上述宿主机13051发送的执行方协商请求,上述执行方协商请求携带上述虚拟机13052的流量控制能力的描述信息,上述流量控制能力的描述信息用于描述出上述虚拟机13052支持执行的流量控制策略的版本;若虚拟机13052接收到上述宿主机13051发送的用于响应上述执行方协商请求的协商确认指示,则处理器13051确定协商出的流量控制策略执行方为虚拟机13052;若虚拟机13052接收到上述宿主机13051在发送的用于响应上述执行方协商请求的协商否认指示,则确定协商出的流量控制策略执行方为上述宿主机13051。
或者,上述处理器1301基于虚拟机13052的流量控制能力,在宿主机13051和上述虚拟机13052之间协商出流量控制策略的执行方可包括:上述处理器1301向宿主机13051发送上述虚拟机13052待向上述宿主机13051发送的执行方协商请求,上述执行方协商请求携带上述虚拟机13052的流量控制能力的描述信息;若虚拟机13052接收到上述宿主机13051发送的用于响应上述执行方协商请求的协商确认指示,则上述处理器1301确定协商出的流量控制策略执行方为上述虚拟机;若虚拟机13052在第一设定时长内未接收到上述宿主机13051发送的用于响应上述执行方协商请求的协商确认指示,则上述处理器1301确定协商出的流量控制策略执行方为上述宿主机13051。
或者,上述处理器1301基于虚拟机13052的流量控制能力,在宿主机13051和上述虚拟机13052之间协商出流量控制策略的执行方可包括:上述处理器1301向宿主机13051发送上述虚拟机13052待向上述宿主机13051发送的执行方协商请求,上述执行方协商请求携带上述虚拟机13052的流量控制能力的描述信息,其中,上述流量控制能力的描述信息用于描述出上述虚拟机支持执行的流量控制策略的版本,若虚拟机13052接收到上述宿主机13051发送的用于响应上述执行方协商请求的协商确认指示,则处理器1301确定协商出的流量控制策略执行方为上述虚拟机;若虚拟机13052在第一设定时长之内未接收到上述宿主机13051发送的用于响应上述执行方协商请求的协商确认指示,则处理器1301可确定协商出的流量控制策略执行方为上述宿主机13051。
或者,上述处理器1301基于虚拟机13052的流量控制能力,在宿主机13051和上述虚拟机13052之间协商出流量控制策略的执行方可包括:上述处理器1301向宿主机13051发送上述虚拟机13052待向上述宿主机13051发送的执行方协商请求,上述执行方协商请求携带上述虚拟机13052的流量控制能力的描述信息,若虚拟机13052接收到上述宿主机13051发送的用于响应上述执行方协商请求的协商否认指示,则处理器1301确定协商出的流量控制策略执行方为上述宿主机13051;若上述虚拟机13052在第二设定时长内未接收到上述宿主机13051发送的用于响应上述执行方协商请求的协商否认指示,则上述处理器1301确定协商出的流量控制策略执行方为上述虚拟机;
或者,上述处理器1301基于虚拟机13052的流量控制能力,在宿主机13051和上述虚拟机13052之间协商出流量控制策略的执行方可包括:上述处理器1301向宿主机13051发送上述虚拟机13052待向上述宿主机13051发送的执行方协商请求,上述执行方协商请求携带上述虚拟机13052的流量控制能力的描述信息,其中,上述流量控制能力的描述信息用于描述出上述虚拟机支持执行的流量控制策略的版本,若虚拟机13052接收到上述宿主机13051发送的用于响应上述执行方协商请求的协商否认指示,则处理器1301确定协商出的流量控制策略执行方为上述宿主机13051;若虚拟机13052在第二设定时长之内未接收到上述宿主机13051发送的用于响应上述执行方协商请求的协商否认指示,则处理器1301确定协商出的流量控制策略执行方为上述虚拟机。
在本发明一些实施例中,上述协商确认指示中包含上述流量控制策略。
其中,上述处理器1301基于上述流量控制策略对上述虚拟机13052待转发处理的报文进行转发处理可以包括:上述处理器1301基于上述协商确认指示中包含的上述流量控制策略,对上述虚拟机13052待转发处理的报文进行转发处理。
当然,宿主机13051亦可通过其它方式将流量控制策略传递给虚拟机13052,以便在确定协商出的流量控制策略执行方为上述虚拟机13052之后,上述处理器1301基于宿主机13051传递过来的流量控制策略对虚拟机13052待转发处理的报文进行转发处理。当然,也可以在虚拟机13052中预配置流量控制策略,当确定协商出的流量控制策略执行方为上述虚拟机13052,上述处理器1301基于预配置的流量控制策略对上述虚拟机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在接收到用户态进程发起的协商启动请求之后,上述处理器1301向宿主机13051发送上述虚拟机13052待向上述宿主机13051发送的执行方协商请求;或者,在虚拟机13052在接收到来自上述宿主机13051的协商启动请求之后,上述处理器1301向上述宿主机13051发送上述虚拟机13052待向上述宿主机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盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (26)

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.根据权利要求3所述的方法,其特征在于,
所述虚拟机向Host发送携带所述虚拟机的流量控制能力的描述信息的执行方协商请求包括:
虚拟机在接收到用户态进程发起的协商启动请求之后,向Host发送携带所述虚拟机的流量控制能力的描述信息的执行方协商请求;或者,虚拟机在接收到来自所述Host的协商启动请求之后,向所述Host发送携带所述虚拟机的流量控制能力的描述信息的执行方协商请求。
5.根据权利要求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.根据权利要求9所述的方法,其特征在于,
所述基于所述虚拟机的流量控制能力在所述虚拟机与宿主机Host之间协商流量控制策略的执行方,包括:在Host中的预载服务端与虚拟机中的预载客户端之间的连接建立完成之后,所述预载服务端通过所述连接与所述预载客户端基于所述虚拟机的流量控制能力,在所述虚拟机与宿主机Host之间协商流量控制策略的执行方。
11.根据权利要求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.根据权利要求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的指示消息。
CN201310746701.5A 2013-12-30 2013-12-30 报文流量控制方法及相关装置和计算节点 Active CN103763403B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201310746701.5A CN103763403B (zh) 2013-12-30 2013-12-30 报文流量控制方法及相关装置和计算节点
EP14812400.1A EP2905948B1 (en) 2013-12-30 2014-07-04 Message traffic control method and related device, and calculation node
JP2016543577A JP6336602B2 (ja) 2013-12-30 2014-07-04 パケットフロー制御方法、関連装置、及びコンピューティングノード
PCT/CN2014/081642 WO2015101000A1 (zh) 2013-12-30 2014-07-04 报文流量控制方法及相关装置和计算节点
KR1020167020644A KR101875710B1 (ko) 2013-12-30 2014-07-04 패킷 흐름 제어 방법, 관련 장치, 및 컴퓨팅 노드
US14/586,121 US9921867B2 (en) 2013-12-30 2014-12-30 Negotiation between virtual machine and host to determine executor of packet flow control policy with reduced address space

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310746701.5A CN103763403B (zh) 2013-12-30 2013-12-30 报文流量控制方法及相关装置和计算节点

Publications (2)

Publication Number Publication Date
CN103763403A CN103763403A (zh) 2014-04-30
CN103763403B true CN103763403B (zh) 2017-03-15

Family

ID=50530561

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310746701.5A Active CN103763403B (zh) 2013-12-30 2013-12-30 报文流量控制方法及相关装置和计算节点

Country Status (5)

Country Link
EP (1) EP2905948B1 (zh)
JP (1) JP6336602B2 (zh)
KR (1) KR101875710B1 (zh)
CN (1) CN103763403B (zh)
WO (1) WO2015101000A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9921867B2 (en) 2013-12-30 2018-03-20 Huawei Technologies Co., Ltd. Negotiation between virtual machine and host to determine executor of packet flow control policy with reduced address space
CN103763403B (zh) * 2013-12-30 2017-03-15 华为技术有限公司 报文流量控制方法及相关装置和计算节点
CN104168205B (zh) * 2014-08-06 2017-08-08 新华三技术有限公司 报文处理方法及装置
CN105099821B (zh) * 2015-07-30 2020-05-12 奇安信科技集团股份有限公司 基于云的虚拟环境下流量监控的方法和装置
KR102137651B1 (ko) * 2019-06-10 2020-07-24 국방과학연구소 서비스 플로우 기반 패킷 스케줄링 장치 및 방법
CN117478612B (zh) * 2023-12-27 2024-03-15 成都新希望金融信息有限公司 流量分配方法、装置及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102132511A (zh) * 2008-08-27 2011-07-20 思科技术公司 用于虚拟机的虚拟交换机服务质量
CN102594707A (zh) * 2012-03-21 2012-07-18 北京天地云箱科技有限公司 网络控制系统及网络交换适配器

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0517304D0 (en) * 2005-08-23 2005-10-05 Netronome Systems Inc A system and method for processing and forwarding transmitted information
WO2012011218A1 (en) * 2010-07-21 2012-01-26 Nec Corporation Computer system and offloading method in computer system
CN102413183B (zh) * 2011-11-22 2014-07-16 中国联合网络通信集团有限公司 云智能交换机及其处理方法、系统
JP5783632B2 (ja) * 2011-12-14 2015-09-24 Kddi株式会社 ネットワークトラヒック制御装置、制御方法、およびプログラム
JP5871233B2 (ja) * 2012-03-22 2016-03-01 株式会社日立製作所 計算機及び帯域制御方法
US9092269B2 (en) * 2012-06-21 2015-07-28 Microsoft Technology Licensing, Llc Offloading virtual machine flows to physical queues
CN103176833B (zh) * 2013-03-11 2016-12-28 华为技术有限公司 一种基于虚拟机的数据发送方法、接收方法及系统
CN103763403B (zh) * 2013-12-30 2017-03-15 华为技术有限公司 报文流量控制方法及相关装置和计算节点

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102132511A (zh) * 2008-08-27 2011-07-20 思科技术公司 用于虚拟机的虚拟交换机服务质量
CN102594707A (zh) * 2012-03-21 2012-07-18 北京天地云箱科技有限公司 网络控制系统及网络交换适配器

Also Published As

Publication number Publication date
EP2905948A4 (en) 2015-09-09
EP2905948B1 (en) 2016-06-01
KR20160103114A (ko) 2016-08-31
JP2017503420A (ja) 2017-01-26
EP2905948A1 (en) 2015-08-12
KR101875710B1 (ko) 2018-08-02
CN103763403A (zh) 2014-04-30
JP6336602B2 (ja) 2018-06-06
WO2015101000A1 (zh) 2015-07-09

Similar Documents

Publication Publication Date Title
CN103763403B (zh) 报文流量控制方法及相关装置和计算节点
Marty et al. Snap: A microkernel approach to host networking
Varghese et al. Challenges and opportunities in edge computing
CN101706757B (zh) 面向多核平台和分布式虚拟化环境的i/o系统及工作方法
EP3073373B1 (en) Method for interruption affinity binding of virtual network interface card, and computer device
JP5644150B2 (ja) サービス提供システム、仮想マシンサーバ、サービス提供方法及びサービス提供プログラム
US11204798B2 (en) Apparatus and method for virtual machine scheduling in non-uniform memory access architecture
CN106844007A (zh) 一种基于空间复用的虚拟化方法与系统
WO2014029219A1 (zh) 虚拟化集群整合方法、装置及虚拟化集群系统
CN103346981A (zh) 虚拟交换方法、相关装置和计算机系统
WO2012100544A1 (zh) 基于网络数据流向的虚拟机迁移方法、设备和集群系统
CN105024842A (zh) 服务器的扩容方法及装置
CN103763173A (zh) 数据传输方法和计算节点
CN107251486A (zh) 一种扩展联动的方法、装置及系统
Zhou et al. Optimizations for high performance network virtualization
KR20130051820A (ko) 모바일 환경에서의 소프트웨어 마이그레이션 장치 및 방법
Smolyar et al. Ioctopus: Outsmarting nonuniform dma
JP2015156150A (ja) ネットワーク制御装置、通信システム、ネットワーク制御方法、および、ネットワーク制御プログラム
WO2014101502A1 (zh) 基于内存芯片互连的内存访问处理方法、内存芯片及系统
CN108351802B (zh) 计算机数据处理系统和用于虚拟机通信的基于通信流量的优化的方法
Sarddar et al. Central controller framework for mobile cloud computing
CN101539973B (zh) 完整性度量技术在可信虚拟域无缝运行的方法
JP6795536B2 (ja) Vm性能保証システムおよびvm性能保証方法
Aucinas et al. Energy efficient mobile M2M communications
JP5876425B2 (ja) 仮想マシンのライブマイグレーションスケジューリング方法及び仮想マシンシステム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant