CN109922003A - 一种数据发送方法、系统及相关组件 - Google Patents
一种数据发送方法、系统及相关组件 Download PDFInfo
- Publication number
- CN109922003A CN109922003A CN201910222154.8A CN201910222154A CN109922003A CN 109922003 A CN109922003 A CN 109922003A CN 201910222154 A CN201910222154 A CN 201910222154A CN 109922003 A CN109922003 A CN 109922003A
- Authority
- CN
- China
- Prior art keywords
- data
- data packet
- packet
- virtual machine
- queue
- 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.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种数据发送方法,所述数据发送方法包括确定第一虚拟机向第二虚拟机发送的目标数据,并将所述目标数据划分为N类数据包;根据数据包类别将每一数据包传输至交换设备对应的数据包队列;控制所述交换设备根据队列权重配置信息发送每一所述数据包队列中的数据包。本方法能够避免数据包阻塞,提高数据的传输效率。本申请还公开了一种数据发送系统、一种计算机可读存储介质及一种电子设备,具有以上有益效果。
Description
技术领域
本发明涉及数据传输技术领域,特别涉及一种数据发送方法、系统、一种计算机可读存储介质及一种电子设备。
背景技术
面向云计算的数据中心可以包括数以万计的计算服务器和存储服务器,这些服务器通过交换设备和路由设备相互连接。为了提高服务器的资源利用率,现在的数据中心中广泛采用虚拟化技术,因此服务器上可以运行多个VM(Virtual Machine,虚拟机)实例。租户可以请求一个或多个VM,用于执行计算任务。租户的VM可以位于单个服务器上,或者是分布在数据中心的多个服务器上,甚至是跨数据中心的多个服务器上。租户的VM可以配置为只与属于该租户的VM通信。租户的VM可以配置为与其它租户的VM通信以利用其它租户提供的服务,租户可能希望了解其VM之间的以及与其它租户的VM的最下通信带宽,使得租户可以确定其应用或服务的性能下限。
相关技术中,在网络端采用绝对优先级的队列管理机制实现虚拟机对之间的数据传输。但是,上述相关技术的方法将会导致高优先级队列中的数据包可能永久阻塞低优先级队列中的数据包,进而导致接收端严重的数据包的乱序到达行为,严重影响数据的通信效率。
因此,如何避免数据包阻塞,提高数据的传输效率是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种数据发送方法、系统、一种计算机可读存储介质及一种电子设备,能够避免数据包阻塞,提高数据的传输效率。
为解决上述技术问题,本申请提供一种数据发送方法,该数据发送方法包括:
确定第一虚拟机向第二虚拟机发送的目标数据,并将所述目标数据划分为N类数据包;
根据数据包类别将每一数据包传输至交换设备对应的数据包队列;
控制所述交换设备根据队列权重配置信息发送每一所述数据包队列中的数据包。
可选的,在控制所述交换设备根据队列权重配置信息发送每一所述数据包队列中的数据包之前,还包括:
获取所述队列权重配置信息,解析所述权重配置信息得到权重比例和权重参考项;其中,所述权重参考项包括数据包大小或数据包数量。
可选的,控制所述交换设备根据队列权重配置信息发送每一所述数据包队列中的数据包包括:
当所述权重参考项为数据包大小时,控制所述交换设备发送每一所述数据包队列中的数据包,以使每一所述数据包队列中已发送数据包的数据大小比例为所述权重比例;
当所述权重参考项为数据包数量时,控制所述交换设备发送每一所述数据包队列中的数据包,以使每一所述数据包队列中已发送数据包的数量比例为所述权重比例。
可选的,将所述目标数据划分为N类数据包包括:
获取所述第一虚拟机发送目标数据的目标发送速率,并根据所述目标发送速率将所述目标数据划分为N类数据包。
可选的,根据所述目标发送速率将所述目标数据划分为N类数据包包括:
判断所述目标发送速率是否大于预设带宽对应的预设速率;
若是,则将发送速率小于或等于所述预设速率的数据包标记为第一类数据包,并将发送速率大于所述预设速率的数据包标记为第二类数据包。
可选的,将发送速率小于或等于所述预设速率的数据包标记为第一类数据包,并将发送速率大于所述预设速率的数据包标记为第二类数据包包括:
将发送速率小于或等于所述预设速率的数据包的IP报文头的DiffServ域写入所述第一类数据包对应的标记值;
将发送速率大于所述预设速率的数据包的IP报文头的DiffServ域写入所述第二类数据包对应的标记值。
可选的,所述目标数据为所述第一虚拟机向第二虚拟机发送的数据;其中,所述第一虚拟机为第一服务器中运行的虚拟机,所述第二虚拟机为第二服务器中运行的虚拟机,所述交换设备为所述第一虚拟机与所述第二虚拟机的路由路径上的设备。
本申请还提供了一种数据发送系统,该数据发送系统包括:
划分模块,用于确定第一虚拟机向第二虚拟机发送的目标数据,并将所述目标数据划分为N类数据包;
传输模块,用于根据数据包类别将每一数据包传输至交换设备对应的数据包队列;
数据发送模块,用于控制所述交换设备根据队列权重配置信息发送每一所述数据包队列中的数据包。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述数据发送方法执行的步骤。
本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述数据发送方法执行的步骤。
本发明提供了一种数据发送方法,包括确定第一虚拟机向第二虚拟机发送的目标数据,并将所述目标数据划分为N类数据包;根据数据包类别将每一数据包传输至交换设备对应的数据包队列;控制所述交换设备根据队列权重配置信息发送每一所述数据包队列中的数据包。
本申请首先确定第一虚拟机发送目标数据并将目标数据划分为N类数据包,以便将每一类数据包转发至交换设备中相应的数据包队列。通过控制交换设备根据队列权重配置信息发送数据包能够保证交换设备发送的每一数据包队列中的数据包的数量或大小保持固定的比例,使得交换设备中每一数据包队列中的数据包均有机会被发送。因此,本申请能够避免数据包阻塞,提高数据的传输效率。本申请同时还提供了一种数据发送系统、一种计算机可读存储介质和一种电子设备,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种数据发送方法的流程图;
图2为数据中心结构示意图;
图3为本申请实施例所提供的一种目标数据划分方法的流程图;
图4为本申请实施例所提供的一种控制交换设备发送数据包方法的流程图;
图5为本申请实施例所提供的一种数据发送系统的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
相关技术中,主机端将虚拟机P和虚拟机Q之间的通信数据流划分为两部分,并将属于第一部分的数据包赋予高优先级,将属于第二部分的数据包赋予低优先级。对于高优先级数据包,通过速率限制机制限制其发送速率为虚拟机P和虚拟机Q之间的带宽保证值。对于低优先级数据包,根据网络的状态动态调整其发送速率。网络端,交换设备和路由设备的所有端口均配置为绝对优先级的工作方式。但是,这种在网络端采用绝对优先级的队列管理机制,将会导致高优先级队列中的数据包可能永久阻塞低优先级队列中的数据包,进而导致接收端严重的数据包的乱序到达行为,严重影响数据的通信效率,尤其是对于TCP之类的可靠的传输层协议。
针对于相关技术中存在的种种不足,本申请通过以下实施例提供新的数据发送方案,能够避免数据包阻塞,提高数据的传输效率。
下面请参见图1,图1为本申请实施例所提供的一种数据发送方法的流程图,具体步骤可以包括:
S101:确定第一虚拟机向第二虚拟机发送的目标数据,并将所述目标数据划分为N类数据包;
其中,数据中心中可以包含众多的服务器节点以及用于互连这些服务器节点的交换设备。服务器节点可以是计算节点,也可以是存储节点;互连服务器的交换设备可以是交换机,也可以是路由器。服务器中可以运行多个虚拟机,这些虚拟机可以属于同一个租户,也可以属于不同的租户。租户的虚拟机可以位于同一服务器,也可以分布在数据中心的多个服务器上,还可以分布在跨数据中心的多个服务器上。请参见图2,图2为数据中心结构示意图,虚拟机管理程序可以为服务器中运行的程序,用于管理同一服务器上的多个虚拟机。本实施例的执行主体可以是服务器,也可以是服务器中运行虚拟机管理程序的模块,此处不进行限定。
本实施例可以应用于跨服务器的虚拟机对之间的数据传输,即虚拟机对中的两个虚拟机分别属于不同的服务器,这两个虚拟机之间进行数据传输时需要经过交换设备的处理,存在对带宽的需求。具体的,本步骤中提到的目标数据可以为所述第一虚拟机向第二虚拟机发送的数据;其中,所述第一虚拟机为第一服务器中运行的虚拟机,所述第二虚拟机为第二服务器中运行的虚拟机,所述交换设备为所述第一虚拟机与所述第二虚拟机的路由路径上的设备,第一虚拟机和第二虚拟机合称虚拟机对。目标数据为第一虚拟机向第二虚拟机发送的全部数据,本步骤获取的是第一虚拟机发送全部数据的目标发送速率。
本步骤不限定将目标数据划分为多少数据包,作为一种可选的实施方式,将所述目标数据划分为N类数据包的过程可以为获取所述第一虚拟机发送目标数据的目标发送速率,并根据所述目标发送速率将所述目标数据划分为N类数据包。数据包的大小与目标发送速率具有对应关系,每一部分数据包对应一部分的发送速率。例如,目标数据包括数据包A、B、C,数据包A、B、C的发送速率分别为a、b、c,目标数据的目标发送速率为a+b+c。本步骤可以根据多种发送速率区间对目标数据进行划分,例如可以将小于虚拟机对带宽保证值的发送速率对应的数据包划分为一类数据包,将大于或等于虚拟机对带宽保证值的发送速率对应的数据包划分为另一类数据包。还可以根据目标发送速率的大小将目标数据划分为三类或更多类的数据包,此处不进行具体的限定。本步骤可以通过为数据包添加标签的方式将目标数据划分为N类数据包,N为大于0的正整数。
S102:根据数据包类别将每一数据包传输至交换设备对应的数据包队列;
其中,在交换设备中可以存在每一类数据包对应的数据包队列,数据包队列中可以存在多个虚拟机发送的数据包。具体的,可以按照不同的带宽将数据包发送至数据包队列中,例如为每一类数据包设置对应的发送速率,以便该类数据包以各自对应的发送速率进行发送,最终所有类别的数据包发送速率的总和与第一虚拟机发送目标数据包的目标发送速率一致。
S103:控制所述交换设备根据队列权重配置信息发送每一所述数据包队列中的数据包。
其中,本步骤建立在已经将划分后的每一类数据包发送至数据包队列的基础上,可以预先获取该交换设备的权重配置信息。权重配置信息可以为用户自行设置的交换设备发送策略参数,权重配置信息为描述交换设备中每一数据包队列的权重比,权重值越大的数据包队列发送的数据包数量或数据量越多。例如,根据权重配置信息确定交换设备的两个队列Q1和Q2的配置权重为2:1,则平均来讲在一段时间间隔内,交换设备发送的队列Q1中的数据包数量(或者大小)是队列Q2中数据包的数量(或者大小)的2倍。
可以理解的是,本步骤的目的为通过控制所述交换设备根据队列权重配置信息发送数据包,使得每一类数据包均有几率被发送。相对于相关技术中,交换设备的所有端口均配置为绝对优先级的工作方式,本实施例可以避免高优先级数据包影响低优先级数据包,使得接收端接收到数据包可以顺序到达。
本实施例首先确定第一虚拟机发送目标数据并将目标数据划分为N类数据包,以便将每一类数据包转发至交换设备中相应的数据包队列。通过控制交换设备根据队列权重配置信息发送数据包能够保证交换设备发送的每一数据包队列中的数据包的数量或大小保持固定的比例,使得交换设备中每一数据包队列中的数据包均有机会被发送。因此,本实施例能够避免数据包阻塞,提高数据的传输效率。
下面请参见图3,图3为本申请实施例所提供的一种目标数据划分方法的流程图;本实施例是对图1对应的实施例中S102的进一步描述,可以将本实施例与图1对应的实施例相结合得到更为优选的实施方式,具体步骤可以包括:
S201:判断所述目标发送速率是否大于预设带宽对应的预设速率;若是,则进入S202;若否,则将目标数据全部标记为第一类数据包;
其中,本步骤提到的预设带宽可以为保证带宽,保证带宽为对用户承诺的最小可用带宽,保证用户可以使用的网络带宽不低于其保证带宽。带宽保证的主要目的是为用户提供可预测的网络性能(即性能下限),从而满足用户的服务质量保证需求。当目标发送速率小于或等于预设带宽对应的预设速率时,说明发送目标数据所占用的带宽小于预设带宽,因此可以将目标数据全部标记为第一类数据包。
S202:将发送速率小于或等于所述预设速率的数据包标记为第一类数据包,并将发送速率大于所述预设速率的数据包标记为第二类数据包。
其中,可以将发送速率小于或等于所述预设速率的数据包的IP报文头的DiffServ域写入所述第一类数据包对应的标记值,以便将数据包标记为第一类数据包;还可以将发送速率大于所述预设速率的数据包的IP报文头的DiffServ域写入所述第二类数据包对应的标记值,以便将数据包标记为第二类数据包。
S203:按照所述预设带宽对应的预设速率将所述第一类数据包转发至交换设备的第一数据包队列;
S204:根据所述交换设备的当前空闲带宽确定转发速率,并按照所述转发速率将所述第二类数据包转发至交换设备的第二数据包队列。
其中,上述实施例将目标数据按照目标发送速率是否大于预设速率划分为第一类数据包和第二类数据包。本实施例按照所述预设带宽对应的预设速率将第一类数据包发送至交换设备的第一数据包队列,当预设带宽为虚拟机对(第一虚拟机和第二虚拟机)之间的带宽保证值时,本实施例能够将第一类数据包的发送速率固定的限制为带宽保证值,使得虚拟机对之间的数据交互满足用户的服务质量保证需求。虚拟机对之间的保证带宽可以由网络管理员手动设定,也可以通过数据中心资源管理系统进行分发。租户在申请资源时,需要同时指定其虚拟机通信对之间的带宽保证值。数据中心虚拟机放置组件根据租户所申请的虚拟机的数量和虚拟机通信对之间的带宽保证值,选择虚拟机所要放置的服务器位置以及满足虚拟机对之间带宽保证要求的路由路径,并完成虚拟机的部署。
进一步的,本实施例中的第二类数据包的发送速率根据当前空闲带宽确定,即:当网络中不存在拥塞时,可以动态的增加数据流的转发速率;当网络中存在拥塞时,则动态地减少数据流的转发速率。作为一种可选的实施方式,可以采用数据包丢包作为网络拥塞的标识,具体过程为:为第一虚拟机发送的每个数据包分配一个序列号,判断在第二虚拟机接收到的数据包的序列号是否连续;如果不连续,则说明网络中发生拥塞;也可以根据序号的连续情况,确定网络拥塞状况的程度。
相关技术中还存在通过资源预留的方式实现租户虚拟机之间的带宽保证的方案。假设租户虚拟机P和虚拟机Q之间的带宽保证为B,则在建立由虚拟机P到虚拟机Q的路由路径时,路由路径上的每个交换设备或路由设备为虚拟机P和虚拟机Q之间的通信预留指定的资源B,该部分资源是独占的,即:无论这部分资源是否被虚拟机P和虚拟机Q之间的通信所使用。其它虚拟机对之间的通信不能够使用这部分资源。相关技术中这种为虚拟机对之间的通信预留独占资源的方案导致独占资源无法被其它虚拟机对之间的通信所使用。由于数据中心的数据流通常具有突发特性,也就是说,在流量的突发阶段,数据流的带宽需求较高。但在非突发阶段,数据流的带宽需求较低。因此,采用带宽预留方案会导致数据中心带宽资源利用率较低。考虑到数据中心数据流的突发特性,某一虚拟机通信对之间通信通常无法充分利用通信路径上为该通信预留的带宽资源,且这部分通信资源无法被其它虚拟机通信对所使用,导致带宽资源的浪费。另一方面,假设虚拟机P和虚拟机Q之间的带宽保证为B,且虚拟机P和虚拟机Q之间通信的峰值带宽需求高于B,则即使虚拟机P和虚拟机Q之间的通信路径上存在空闲带宽,则虚拟机P和虚拟机Q也无法使用这部分空闲带宽,进一步加剧了带宽资源的浪费行为。
而本实施例针对上一段描述的相关技术,对于第二类数据包的发送速率根据当前空闲带宽确定,当交换设备存在空闲带宽时,第一虚拟机可以充分利用空闲带宽传输第二类数据包。由于发送第二类数据包所占用的带宽可以灵活调整,既不会影响其他虚拟机对的数据传输,也能够提升第一虚拟机和第二虚拟机之间的数据传输速率,实现了交换机的工作保持。工作保持指当存在数据发送需求时网络不能空闲。也就是说,只有在所有应用均没有数据包发送需求时,网络才能为空闲状态。工作保持的主要目的是提高网络资源利用率,即允许应用使用除保证带宽之外的额外空闲带宽。
下面请参见图4,图4为本申请实施例所提供的一种控制交换设备发送数据包方法的流程图;本实施例是对图1对应的实施例中S103的进一步描述,可以将本实施例与图1对应的实施例相结合得到更为优选的实施方式,具体步骤可以包括:
S301:获取所述队列权重配置信息,解析所述权重配置信息得到权重比例和权重参考项;
S302:当所述权重参考项为数据包大小时,控制所述交换设备发送每一所述数据包队列中的数据包,以使每一所述数据包队列中已发送数据包的数据大小比例为所述权重比例;
S303:当所述权重参考项为数据包数量时,控制所述交换设备发送每一所述数据包队列中的数据包,以使每一所述数据包队列中已发送数据包的数量比例为所述权重比例。
其中,本实施例中提到的队列权重配置信息可以是根据交换设备中各个数据包队列的数据包接收情况设置的。通过解析权重配置信息可以得到权重比例和权重参考项,权重参考项可以包括数据包大小或数据包数量,权重参考项指各个数据包队列发送数据包的参照项。当交换设备包括第一数据包队列和第二数据包队列且第一数据包队列和第二数据包队列的比值为a:b时,若权重参考项为数据包大小时,在预设时间内通过控制所述交换设备发送每一所述数据包队列中的数据包的数据大小比值为a:b;同理可知,若权重参考项为数据包数量时,在预设时间内通过控制所述交换设备发送每一所述数据包队列中的数据包的数量比例为a:b。由此可知,只要权重比例中不存在某一数据包队列的权重为0,那么交换设备中每一数据包队列中的数据包都存在被交换设备发送的机会。
根据队列中数据包数量还是大小作为调度可以根据具体的交换设备的实现所决定的。通常,交换设备按照队列中数据包的大小调度队列。对于接收到的数据包,交换设备根据数据包的标签分别将他们放入不同的队列。例如,对于具有第一权重标签的数据包,交换设备将他们放置在第一个端口队列;对于具有第二权重标签的数据包,交换设备将他们放置在第二个端口队列,并依此类推。
可以理解的是,本实施例中根据权重配置信息发送数据包的操作,相当于利用基于权重的公平队列(WFQ,Weighted-Fair Queuing)发送数据包的操作。作为一种可选的实施方式,可以将交换设备的所有端口均配置为WFQ队列的队列管理方式。每个端口包括两个或更多的队列,队列之间的权重配置信息可以根据用户的需求设定。WFQ队列的队列管理方式指的是根据配置的队列权重调度队列中的数据包。
传统的云数据中心只能为租户提供指定数量的虚拟机(计算)和存储资源,并提供一定程度的服务质量保证。但对于带宽资源,通常依赖于所使用的通信协议,以一种“尽力而为”的服务模式为租户虚拟机提供通信服务,导致租户虚拟机之间的通信带宽波动,进而导致租户应用的网络性能无法得到保证,下面将图1、图3和图4对应的实施例相结合可以得到更为优选的数据发送方法,具体过程可以包括以下步骤:
步骤1:确定第一虚拟机向第二虚拟机发送的目标数据,并获取所述第一虚拟机发送目标数据的目标发送速率;
步骤2:判断所述目标发送速率是否大于预设带宽对应的预设速率;若是,则进入步骤3;若否,则将所述目标数据标记为第一类数据包;
步骤3:将发送速率小于或等于所述预设速率的数据包的IP报文头的DiffServ域写入所述第一类数据包对应的标记值;将发送速率大于所述预设速率的数据包的IP报文头的DiffServ域写入所述第二类数据包对应的标记值。
步骤4:根据数据包类别将每一数据包传输至交换设备对应的数据包队列;
步骤5:获取所述队列权重配置信息,解析所述权重配置信息得到权重比例和权重参考项;其中,所述权重参考项包括数据包大小或数据包数量。
步骤6:当所述权重参考项为数据包大小时,控制所述交换设备发送每一所述数据包队列中的数据包,以使每一所述数据包队列中已发送数据包的数据大小比例为所述权重比例;当所述权重参考项为数据包数量时,控制所述交换设备发送每一所述数据包队列中的数据包,以使每一所述数据包队列中已发送数据包的数量比例为所述权重比例。
其中,本实施例可以应用于数据中心以便为服务质量提供保证,通过主机端(服务器端)的速率控制机制和网络端(交换设备)的基于权重的队列管理机制,为数据中心租户虚拟机之间的通信提供工作保持的带宽保证,为租户应用提供可用带宽的保证和可预测的网络性能,即网络性能的下限。本方案在终端将虚拟机对之间的通信数据流分为两部分,其中一部分用于实现带宽保证的目的,另一部分用于实现工作保证的目的以提高网络资源利用率。因此,与资源预留方案相比,本实施例在取得带宽保证的同时可以提高网络资源利用率。另外,由于本实施例在网络端采用基于权重的公平队列管理机制,使得两部分数据流均有机会被发送到接收端,从而克服了高优先级数据包可能永远阻塞低优先级数据包的缺陷。本实施例基于权重的公平队列(WFQ,Weighted-Fair Queuing)实现工作保持的带宽保证的方案。当其它虚拟机对未全部使用其之间的保证带宽时,允许特定虚拟机对之间的通信以高于其保证带宽的速率来发送数据包,从而避免带宽资源的浪费,达到工作保持和带宽保证的双重目的。
下面通过在实际应用中的实施例说明上述各个实施例描述的流程,请参见图2,数据中心可以包括多个服务器和多个交换设备。本实施例可以应用于服务器中运行虚拟机管理程序的模块中,运行虚拟机管理程序的模块可以包括速率限制模块和数据流管理模块。
数据流管理模块用于管理虚拟机通信对之间的数据流,包括监控数据流的创建和结束,数据流的划分等。数据流管理模块将虚拟机通信对之间的数据流分为两个或多个部分,并分别为它们分配第一权重标签、第二权重标签等。数据流管理模块可以使用多路径TCP协议或其它类型的协议,将虚拟机对中间的通信数据路划分为两个或更多的部分。数据流管理模块可以监控虚拟机数据对之间的数据流。对于特定虚拟机对之间的数据流,数据流管理模块可以基于该数据流的速率是否已经超过对应的带宽保证值将数据包划分到不同的部分。以采用两个部分为例,对于发送速率未超过相应带宽保证值的数据包,将其划分到第一个部分;对于发送速率超过相应带宽保证值的数据包,将其划分到第二个部分。速率限制模块将第一部分数据包的发送速率固定地限制为虚拟机对之间的保证带宽值。速率限制模块根据网络状态动态调整第二部分数据包的发送速率;具体地,当网络中未发生拥塞时,动态地增加第二部分数据包的发送速率,当网络中发生拥塞时,则动态地减少第二部分数据包的发送速率。
具体的,数据流管理模块可以包括流监视子模块、流比较子模块和数据包分类子模块三个主要部分。流监视子模块监视由该模块所在服务器上一个或多个VM发送到其它服务器所在VM的数据流,包括数据流的建立和数据流的消亡。当有新的数据流建立时,为该数据流建立新的流表项;流表项中包含该数据流的带宽保证信息等。当已有数据流消亡时,删除该数据流对应的表项。流比较子模块用于对特定VM到VM对确定该通信对的数据流的速率是否超过其对应的带宽保证值。只要对应数据流的速率小于其带宽保证值,数据包分类子模块根据第一权重为该数据流的数据包打标;当对应数据流的速率大于其带宽保证值,数据包分类模块根据第二权重为该数据流的数据包打标。
速率限制模块用于控制每个部分的速率。其中,第一个部分的数据流的速率固定为该虚拟机对的带宽保证值。对于其余部分的数据流,速率限制模块根据网络状态动态调整数据流的速率。速率限制模块可以对发出的每个数据包打标,交换设备可以根据数据包的标记将数据包放置到指定的队列。一种可选的方式是使用数据包的IP报文头的DiffServ域记录标记值。
由于本实施例通过为租户虚拟机之间的通信提供工作保持的带宽保证,为租户应用提供可用带宽的保证和可预测的网络性能(即网络性能的下限),可以提高网络资源利用率。本实施例通过主机端的速率控制机制和网络端的基于权重的队列管理机制,为数据中心租户虚拟机之间的通信提供工作保持的带宽保证,为租户应用提供可用带宽的保证和可预测的网络性能,即网络性能的下限
请参见图5,图5为本申请实施例所提供的一种数据发送系统的结构示意图;
该系统可以包括:
划分模块100,用于确定第一虚拟机向第二虚拟机发送的目标数据,并将所述目标数据划分为N类数据包;
传输模块200,用于根据数据包类别将每一数据包传输至交换设备对应的数据包队列;
数据发送模块300,用于控制所述交换设备根据队列权重配置信息发送每一所述数据包队列中的数据包。
本实施例首先确定第一虚拟机发送目标数据并将目标数据划分为N类数据包,以便将每一类数据包转发至交换设备中相应的数据包队列。通过控制交换设备根据队列权重配置信息发送数据包能够保证交换设备发送的每一数据包队列中的数据包的数量或大小保持固定的比例,使得交换设备中每一数据包队列中的数据包均有机会被发送。因此,本实施例能够避免数据包阻塞,提高数据的传输效率。
进一步的,还包括:
配置信息获取模块,由于获取所述队列权重配置信息,解析所述权重配置信息得到权重比例和权重参考项;其中,所述权重参考项包括数据包大小或数据包数量。
进一步的,数据发送模块300包括:
第一发送模块,用于当所述权重参考项为数据包大小时,控制所述交换设备发送每一所述数据包队列中的数据包,以使每一所述数据包队列中已发送数据包的数据大小比例为所述权重比例;
第二发送模块,用于当所述权重参考项为数据包数量时,控制所述交换设备发送每一所述数据包队列中的数据包,以使每一所述数据包队列中已发送数据包的数量比例为所述权重比例。
进一步的,划分模块100用于确定第一虚拟机向第二虚拟机发送的目标数据,获取所述第一虚拟机发送目标数据的目标发送速率,并根据所述目标发送速率将所述目标数据划分为N类数据包。
进一步的,划分模块100包括:
标记单元,用于判断所述目标发送速率是否大于预设带宽对应的预设速率;若是,则将发送速率小于或等于所述预设速率的数据包标记为第一类数据包,并将发送速率大于所述预设速率的数据包标记为第二类数据包。
进一步的,标记单元包括:
第一写入子单元,用于将发送速率小于或等于所述预设速率的数据包的IP报文头的DiffServ域写入所述第一类数据包对应的标记值;
第二写入子单元,用于将发送速率大于所述预设速率的数据包的IP报文头的DiffServ域写入所述第二类数据包对应的标记值。
进一步的,所述目标数据为所述第一虚拟机向第二虚拟机发送的数据;其中,所述第一虚拟机为第一服务器中运行的虚拟机,所述第二虚拟机为第二服务器中运行的虚拟机,所述交换设备为所述第一虚拟机与所述第二虚拟机的路由路径上的设备。
由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种数据发送方法,其特征在于,包括:
确定第一虚拟机向第二虚拟机发送的目标数据,并将所述目标数据划分为N类数据包;
根据数据包类别将每一所述数据包传输至交换设备对应的数据包队列;
控制所述交换设备根据队列权重配置信息发送每一所述数据包队列中的数据包。
2.根据权利要求1所述数据发送方法,其特征在于,在控制所述交换设备根据队列权重配置信息发送每一所述数据包队列中的数据包之前,还包括:
获取所述队列权重配置信息,解析所述权重配置信息得到权重比例和权重参考项;其中,所述权重参考项包括数据包大小或数据包数量。
3.根据权利要求2所述数据发送方法,其特征在于,控制所述交换设备根据队列权重配置信息发送每一所述数据包队列中的数据包包括:
当所述权重参考项为数据包大小时,控制所述交换设备发送每一所述数据包队列中的数据包,以使每一所述数据包队列中已发送数据包的数据大小比例为所述权重比例;
当所述权重参考项为数据包数量时,控制所述交换设备发送每一所述数据包队列中的数据包,以使每一所述数据包队列中已发送数据包的数量比例为所述权重比例。
4.根据权利要求1所述数据发送方法,其特征在于,将所述目标数据划分为N类数据包包括:
获取所述第一虚拟机发送目标数据的目标发送速率,并根据所述目标发送速率将所述目标数据划分为N类数据包。
5.根据权利要求4所述数据发送方法,其特征在于,根据所述目标发送速率将所述目标数据划分为N类数据包包括:
判断所述目标发送速率是否大于预设带宽对应的预设速率;
若是,则将发送速率小于或等于所述预设速率的数据包标记为第一类数据包,并将发送速率大于所述预设速率的数据包标记为第二类数据包。
6.根据权利要求5所述数据发送方法,其特征在于,所述将发送速率小于或等于所述预设速率的数据包标记为第一类数据包,并将发送速率大于所述预设速率的数据包标记为第二类数据包,包括:
将发送速率小于或等于所述预设速率的数据包的IP报文头的DiffServ域写入所述第一类数据包对应的标记值;
将发送速率大于所述预设速率的数据包的IP报文头的DiffServ域写入所述第二类数据包对应的标记值。
7.根据权利要求1至6任一项所述数据发送方法,其特征在于,所述目标数据为所述第一虚拟机向第二虚拟机发送的数据;其中,所述第一虚拟机为第一服务器中运行的虚拟机,所述第二虚拟机为第二服务器中运行的虚拟机,所述交换设备为所述第一虚拟机与所述第二虚拟机的路由路径上的设备。
8.一种数据发送系统,其特征在于,包括:
划分模块,用于确定第一虚拟机向第二虚拟机发送的目标数据,并将所述目标数据划分为N类数据包;
传输模块,用于根据数据包类别将每一所述数据包传输至交换设备对应的数据包队列;
数据发送模块,用于控制所述交换设备根据队列权重配置信息发送每一所述数据包队列中的数据包。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述数据发送方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数据发送方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910222154.8A CN109922003B (zh) | 2019-03-22 | 2019-03-22 | 一种数据发送方法、系统及相关组件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910222154.8A CN109922003B (zh) | 2019-03-22 | 2019-03-22 | 一种数据发送方法、系统及相关组件 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109922003A true CN109922003A (zh) | 2019-06-21 |
CN109922003B CN109922003B (zh) | 2022-12-30 |
Family
ID=66966342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910222154.8A Active CN109922003B (zh) | 2019-03-22 | 2019-03-22 | 一种数据发送方法、系统及相关组件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109922003B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111092858A (zh) * | 2019-11-25 | 2020-05-01 | 新华三半导体技术有限公司 | 报文处理方法、装置、器件和系统 |
CN113783798A (zh) * | 2021-09-24 | 2021-12-10 | 上海明胜品智人工智能科技有限公司 | 数据传输方法及系统、边缘服务设备 |
CN114389954A (zh) * | 2022-01-18 | 2022-04-22 | 中科边缘智慧信息科技(苏州)有限公司 | 一种基于固定带宽的数据传输控制方法及系统 |
CN113783798B (zh) * | 2021-09-24 | 2024-07-05 | 上海明胜品智人工智能科技有限公司 | 数据传输方法及系统、边缘服务设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103354527A (zh) * | 2013-07-02 | 2013-10-16 | 中国人民解放军信息工程大学 | 提高服务质量的方法、装置及系统 |
CN103581042A (zh) * | 2013-10-30 | 2014-02-12 | 华为技术有限公司 | 一种数据包发送的方法和设备 |
US20140301197A1 (en) * | 2013-04-05 | 2014-10-09 | International Business Machines Corporation | Virtual quantized congestion notification |
CN105871751A (zh) * | 2016-03-25 | 2016-08-17 | 中国科学院计算技术研究所 | 一种数据中心网络带宽保证方法及系统 |
CN107210972A (zh) * | 2015-01-20 | 2017-09-26 | 微软技术许可有限责任公司 | 控制公平带宽分配效率 |
-
2019
- 2019-03-22 CN CN201910222154.8A patent/CN109922003B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140301197A1 (en) * | 2013-04-05 | 2014-10-09 | International Business Machines Corporation | Virtual quantized congestion notification |
CN103354527A (zh) * | 2013-07-02 | 2013-10-16 | 中国人民解放军信息工程大学 | 提高服务质量的方法、装置及系统 |
CN103581042A (zh) * | 2013-10-30 | 2014-02-12 | 华为技术有限公司 | 一种数据包发送的方法和设备 |
CN107210972A (zh) * | 2015-01-20 | 2017-09-26 | 微软技术许可有限责任公司 | 控制公平带宽分配效率 |
CN105871751A (zh) * | 2016-03-25 | 2016-08-17 | 中国科学院计算技术研究所 | 一种数据中心网络带宽保证方法及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111092858A (zh) * | 2019-11-25 | 2020-05-01 | 新华三半导体技术有限公司 | 报文处理方法、装置、器件和系统 |
CN113783798A (zh) * | 2021-09-24 | 2021-12-10 | 上海明胜品智人工智能科技有限公司 | 数据传输方法及系统、边缘服务设备 |
CN113783798B (zh) * | 2021-09-24 | 2024-07-05 | 上海明胜品智人工智能科技有限公司 | 数据传输方法及系统、边缘服务设备 |
CN114389954A (zh) * | 2022-01-18 | 2022-04-22 | 中科边缘智慧信息科技(苏州)有限公司 | 一种基于固定带宽的数据传输控制方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109922003B (zh) | 2022-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hong et al. | Achieving high utilization with software-driven WAN | |
Stallings | Foundations of modern networking: SDN, NFV, QoE, IoT, and Cloud | |
CN102035732B (zh) | 业务调度方法及装置 | |
US20120275304A1 (en) | Hierarchical profiled scheduling and shaping | |
CN103384224A (zh) | 共享接入电缆网络中的绑定信道上的qos | |
US8867560B2 (en) | Managing crossbar oversubscription | |
RU2643666C2 (ru) | Способ и устройство для управления авторизацией виртуальной очереди вывода, а также компьютерный носитель информации | |
CN109831393B (zh) | 面向网络虚拟化的多粒度QoS控制方法 | |
US11929911B2 (en) | Shaping outgoing traffic of network packets in a network management system | |
CN105262703A (zh) | 一种基于双重优先级的路由带宽分配方法 | |
Wang et al. | Low complexity multi-resource fair queueing with bounded delay | |
Wang et al. | Resource allocation for elastic traffic: Architecture and mechanisms | |
CN109922003A (zh) | 一种数据发送方法、系统及相关组件 | |
JP3830937B2 (ja) | 高速パケット網のためのパケットスケジューリングシステム及び方法 | |
CN103685062A (zh) | 缓存管理方法及装置 | |
CN117793583A (zh) | 报文转发方法、装置、电子设备及计算机可读存储介质 | |
US8660001B2 (en) | Method and apparatus for providing per-subscriber-aware-flow QoS | |
US11012378B2 (en) | Methods and apparatus for shared buffer allocation in a transport node | |
US11463367B1 (en) | Methods and system for adaptively managing the distribution of network traffic | |
Bonald et al. | Scheduling network traffic | |
EP3065502A1 (en) | Access node device for managing upstream network traffic | |
Potter et al. | Request control-for provision of guaranteed band width within the dqdb framework | |
CN114448903A (zh) | 一种报文处理方法、装置和通信设备 | |
Yang et al. | Enterprise traffic with a differentiated service mechanism | |
CN103973590A (zh) | 一种QoS调度方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |