一种发送报文的方法和装置制造方法及图纸

技术编号:33925946 阅读:11 留言:0更新日期:2022-06-25 21:44
本申请实施例提供了一种发送报文的方法和装置。该方法包括:从物理网卡的多个物理端口中确定负载情况满足预设条件的目标端口;基于多个物理端口与多个队列的映射关系,确定目标端口对应的目标队列,该多个队列中的一个或多个队列对应于该多个物理端口中的一个物理端口,该多个队列用于缓存待发送的报文;通过目标端口发送目标队列中的报文。通过排除重载的物理端口,确定出轻载的物理端口对应的队列,从轻载的物理端口对应的队列中取出报文经由轻载的物理端口发送,从而实现了物理端口的负载均衡。负载均衡。负载均衡。

【技术实现步骤摘要】
一种发送报文的方法和装置


[0001]本申请涉及计算机领域,并且更具体地,涉及一种发送报文的方法和装置。

技术介绍

[0002]随着计算机技术的不断发展,越来越多的用户利用虚拟机(virtual machine,VM)中的虚拟网卡来发送报文。在发送报文时,虚拟网卡从虚拟机内存中用于暂存报文的队列中取出报文,将报文发送到物理网卡,经由物理网卡的多个物理端口中的某个物理端口到达物理网络。
[0003]目前,虚拟网卡在从队列中取出报文后,会将取出的报文放在虚拟网卡的缓存区,通过报文所携带的五元组来计算哈希值,根据哈希值确定报文从物理网卡的哪个物理端口发出。然而,由于虚拟网卡对队列中的报文是盲取,可能导致报文被送往重载的物理端口,使得重载的物理端口延迟增大,流量拥堵;而轻载的物理端口,则可能还未达到带宽上限,物理端口的负载不均衡。
[0004]因此,如何实现物理端口的负载均衡,成为一项亟待解决的技术问题。

技术实现思路

[0005]本申请提供了一种发送报文的方法和装置,以期能够实现物理端口的负载均衡。
[0006]第一方面,本申请提供了一种发送报文的方法,该方法包括:从物理网卡的多个物理端口中确定满足预设条件的目标端口;基于多个物理端口与多个队列的映射关系,确定目标端口对应的目标队列,该多个队列中的一个或多个队列对应于该多个物理端口中的一个物理端口,该多个队列用于缓存待发送的报文;通过目标端口发送目标队列中的报文。
[0007]基于上述方案,虚拟网卡需要发送报文时,可根据物理网卡各个端口的负载情况及预设条件,从多个物理端口中排除重载的物理端口,确定出轻载的物理端口作为目标端口,并根据多个物理端口与多个队列的映射关系确定出目标端口对应的目标队列,从目标队列中取出报文经由目标端口发送。由于优先确定出轻载的物理端口,且物理端口与队列存在映射关系,虚拟网卡可以基于确定出的轻载的物理端口,从相应的队列中取报文来发送。一方面可以加大轻载的物理端口的流量,提高其传输速率,达到带宽上限。另一方面,可以暂缓通过重载的物理端口发送报文,避免了传输延迟和拥塞的进一步加剧。综上,每个物理端口的带宽均可达到上限,且缓解了传输延迟和拥塞,实现了物理端口之间的负载均衡。
[0008]可选地,该预设条件包括:堆积的报文数量小于预设门限。
[0009]可选地,该预设条件包括:单位时间内,报文进入物理端口的速率高于报文从物理端口发出的速率。
[0010]可选地,该方法还包括:获取多个物理端口与多个队列的映射关系。
[0011]可选地,该方法还包括:根据多个队列中每个队列中的报文数量,调整多个物理端口与多个队列的映射关系。
[0012]第二方面,本申请提供了一种发送报文的装置,包括用于实现第一方面以及第一
方面任一种可能实现方式中的方法的模块或单元。应理解,各个模块或单元可通过执行计算机程序来实现相应的功能。
[0013]第三方面,本申请提供了一种发送报文的装置,该装置包括处理器,该处理器与存储器耦合,可用于执行存储器中的计算机程序,以实现第一方面以及第一方面中任一种可能实现方式中的方法。
[0014]可选地,所述发送报文的装置还可以包括存储器,用于存储计算机可读指令,所述处理器读取所述计算机可读指令使得所述发送报文的装置可以实现上述第一方面以及第一方面任一种可能实现方式中的方法。
[0015]可选地,所述发送报文的装置还可以包括通信接口,所述通信接口用于与该装置与其它设备进行通信,示例性地,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口。
[0016]第四方面,本申请提供了一种芯片系统,该芯片系统包括至少一个处理器,用于支持实现上述第一方面以及第一方面任一种可能实现方式中所涉及的功能,例如处理上述方法中所涉及的目标端口和目标队列的确定。
[0017]在一种可能的设计中,所述芯片系统还包括存储器,所述存储器用于保存程序指令和数据,存储器位于处理器之内或处理器之外。
[0018]该芯片系统可以由芯片构成,也可以包含芯片和其它分立器件。
[0019]第五方面,本申请提供了一种电子设备,该电子设备包括:处理器、存储器及存储在该存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述第一方面以及第一方面任一种可能实现方式中的方法。
[0020]第六方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当计算机程序被处理器执行时,使处理器实现上述第一方面以及第一方面任一种可能实现方式中的方法。
[0021]应当理解的是,本申请的第二方面至第六方面与本申请的第一方面的技术方案相对应,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
附图说明
[0022]图1是本申请实施例提供的网络架构示意图;
[0023]图2是本申请实施例提供的发送报文的方法的示意性流程图;
[0024]图3是本申请实施例提供的发送报文的装置的示意性框图;
[0025]图4是本申请实施例提供的发送报文的装置的另一示意图框图。
具体实施方式
[0026]下面将结合附图,对本申请中的技术方案进行描述。
[0027]为便于理解本申请实施例,下面先对本申请涉及到的相关术语进行简单解释。
[0028]1、虚拟机,指通过软件模拟具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。虚拟机使得每一个云计算用户均认为自己拥有一套独立的硬件环境。一个云服务器上可以构建一个或多个虚拟机。每个虚拟机上可基于用户的不同需求,安装不同的操作系统和应用层软件。
[0029]2、虚拟交换机(virtual switch),广泛应用在基于基础架构即服务(infrastructure as a service)的互联网服务中。通过运行在虚拟化平台上的虚拟交换机,为构建在服务器上的虚拟机提供二层网络接入和部分三层网络功能。虚拟机通过虚拟交换机来连接网络,虚拟交换机则通过物理主机上的物理网卡作为上行链路与外界网络的连接。每个虚拟交换机包含一定数量的端口,可用于与虚拟网卡或物理网卡连接。
[0030]3、虚拟机监测器(hypervisor),为安装在物理硬件上的软件层,可以将物理机通过虚拟机化分成许多虚拟机。这样多个操作系统可以在一个物理硬件上同时运行。hypervisor可负责管理和分配系统资源给虚拟机。
[0031]4、物理网卡,俗称网卡,是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件。网卡是工作在物理层的网路组件,是局域网中连接计算机和传输介质的接口,不仅能实现与局域网传输介质之间的物理连接和电信号匹配,还涉及帧的发送与接收、帧的封装与拆封、介质访问控制、数据的编码与解码以及数据缓存的功能等。网卡上面安装有处理器(central processing unit,CPU)和存本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种发送报文的方法,其特征在于,所述方法包括:从物理网卡的多个物理端口中确定负载情况满足预设条件的目标端口;基于所述多个物理端口与多个队列的映射关系,确定所述目标端口对应的目标队列,所述多个队列中的一个或多个队列对应于所述多个物理端口中的一个物理端口,所述多个队列用于缓存待发送的报文;通过所述目标端口发送所述目标队列中的报文。2.如权利要求1所述的方法,其特征在于,所述预设条件包括:堆积的报文数量小于预设门限。3.如权利要求1所述的方法,其特征在于,所述预设条件包括:单位时间内,报文进入物理端口的速率高于报文从所述物理端口发出的速率。4.如权利要求1至3中任一项所述的方法,其特征在于,在所述基于所述多个物理端口与多个队列的映射关系,确定所述目标端口对应的目标队列之前,所述方法还包括:获取所述多个物理端口与所述多个队列的映射关系。5.如权利要求4所述的方法,其特征在于,所述方法还包括:根据所述多个队列中每个队列中的报文数量,调整所述多个物理端口与所述多个队列的映射关系。6.一种发送报文的装置,其特征在于,所...

【专利技术属性】
技术研发人员:梁晨
申请(专利权)人:阿里巴巴中国有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1