一种基于Virtio-net的传输优化方法技术

技术编号:37997457 阅读:10 留言:0更新日期:2023-06-30 10:11
本发明专利技术公开了一种基于Virtio

【技术实现步骤摘要】
一种基于Virtio

net的传输优化方法


[0001]本专利技术属于数据通信
,具体涉及一种基于Virtio

net的传输优化方法。

技术介绍

[0002]数据中心是云计算时代最重要的基础设施之为云提供强大的计算和存储能力。数据中心网络作为联合数据中心内所有计算、存储单元的“交通枢纽”,是影响云服务能力的关键所在。然而,近年来业界对数据中心网络性能以及虚拟化能力的需求日益增长,给现有端系统中网络协议栈的处理带来了极大挑战。一方面,目前业界普遍的百G级带宽、微秒级延时的高性能网络设施需要端系统协议栈具备极高的处理速度,因此将协议栈的处理卸载(offload)到网卡ASIC(Application Specific Integrated Circuit,专用集成电路)芯片上实现是目前普遍采用的方式;另一方面,为应对层出不穷的虚拟化需求,网络协议栈所包含的处理功能也需要频繁更新,这又使将协议栈的处理卸载到网卡ASIC芯片上变得非常困难。在此背景下,智能网卡(SmartNIC)技术开始走进人们的视野并逐渐得到普及。不同于传统网卡,智能网卡同时具备高性能及可编程的能力,既能处理高速的网络数据流,又能对网卡进行编程,实现定制化的处理逻辑。
[0003]此外,从业务的角度看,随着Internet的日益普及,企业内部网用户访问Internet的需求在不断增加,企业需要对外提供诸如www页面浏览、FTP(File Transfer Protocol,文件传输协议)文件传输、DNS域名解析等服务,这些因素会导致网络流量的急剧增加。如果网络平台的吞吐量太小,就会成为网络瓶颈,给整个网络的传输效率带来负面影响。因此,在云计算里面,对网络进行性能测试的时候,吞吐量指标是技术指标里面的一个核心项,并且也是体现团队研发能力的一个有效展示。
[0004]根据RFC2544标准,以太网数据包的帧长采用64B、128B、256B、512B、1024B、1280B、1518B字节。目前大多数X86架构网络平台在处理256B、512B、1024B和1518B这样的中、大包时,吞吐量大都能近似线速,而处理64B和128B小包的时候,性能差异立即体现。但是,近年来普及的一些应用,包括MSN、QQ、视频、线上游戏等,都是以小包的形式在工作。因此,业界对网络平台的小包数据处理能力的关注程度越来越高。因此提升小包转发性能和降低时延对业界非常重要。

技术实现思路

[0005]本专利技术实施例的目的是提供一种基于Virtio

net的传输优化方法及装置,以提升小包转发性能和降低时延。
[0006]为了解决上述技术问题,本专利技术是这样实现的:
[0007]第一方面,本专利技术实施例提供了一种基于Virtio

net的传输优化方法,其特征在于,所述方法包括:
[0008]通过Virtio前端中的驱动程序模块查询待发送包,在存在待发送包的情况下,生成描述符并更新availidx,所述待发送包组成目标报文;
[0009]向后端设备发送notify信息,所述notify信息包括所述待发送包所在队列的ID信息和所述availidx;
[0010]通过所述后端设备根据所述notify信息得到所述描述符;
[0011]根据所述描述符得到所述待发送包,以将所述目标报文搬运到所述后端设备侧。
[0012]可选地,在所述通过Virtio前端中的驱动程序模块查询待发送包之后,在所述生成描述符之前,所述方法还包括:
[0013]将所述待发送包发送至skb对应的缓存中。
[0014]可选地,所述通过所述后端设备根据所述notify信息得到所述描述符包括:
[0015]通过所述后端设备根据所述notify信息计算所述描述符的数量;
[0016]通过所述后端设备的DMA引擎分N次获得所述描述符,所述N的值通过所述数量确定,N为正整数。
[0017]可选地,在所述根据所述描述符得到所述待发送包,以将所述目标报文搬运到所述后端设备侧之后,所述方法还包括:
[0018]通过所述DMA引擎将所述目标报文转发至网络侧。
[0019]可选地,在所述通过所述DMA引擎将所述目标报文转发至网络侧之后,所述方法还包括:
[0020]更新所述描述符的used信息,通过所述驱动程序模块根据所述used信息的属性回收所述描述符。
[0021]可选地,在所述更新所述描述符的used信息之后,所述方法还包括:
[0022]通过所述后端设备向所述Virtio前端发送MSIx中断信息。
[0023]可选地,所述notify信息包括多个子notify信息,在所述向后端设备发送notify信息之后,所述方法还包括:
[0024]通过轮询算法对所述notify信息处理,在所述多个子notify信息的数量达到预设值的情况下,通过所述后端设备根据所述notify信息得到所述描述符。
[0025]可选地,所述描述符的flag预留字段设有标识位,所述标识位指示报文的长度,在所述生成描述符之后,所述方法还包括:
[0026]根据所述目标报文的字节长度更新所述描述符的flag信息;
[0027]其中,在所述目标报文的字节长度大于等于预设值的情况下,将所述标志位的值更新为第一值;
[0028]在所述目标报文的字节长度小于预设值的情况下,将所述标志位的值更新为第二值。
[0029]可选地,在所述根据所述目标报文的字节长度更新所述描述符的flag信息之后,所述方法还包括:
[0030]在所述目标报文的字节长度大于等于预设值的情况下,将所述待发送包存储至所述描述符指向的内存;
[0031]在目标报文的字节长度小于预设值的情况下,将所述待发送包存储至所述描述符中的内存中。
[0032]可选地,所述根据所述描述符得到所述待发送包,包括:
[0033]在所述目标报文的字节长度大于等于预设值的情况下,根据所述描述符发送读请
求,以从所述描述符指向的内存中得到所述待发送包;
[0034]在目标报文的字节长度小于预设值的情况下,从所述描述符的内存中得到所述待发送包。
[0035]第二方面,本专利技术实施例提供了一种基于Virtio

net的传输优化装置,其特征在于,所述装置包括:
[0036]生成模块,用于通过Virtio前端中的驱动程序模块查询待发送包,在存在待发送包的情况下,生成描述符并更新availidx,所述待发送包组成目标报文;
[0037]第一发送模块,用于向后端设备发送notify信息,所述notify信息包括所述待发送包所在队列的ID信息和所述availidx;
[0038]第一获取模块,用于通过所述后端设备根据所述notify信息得到所述描述符;
[0039]搬运模块,用于根据所述描述符得本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Virtio

net的传输优化方法,其特征在于,所述方法包括:通过Virtio前端中的驱动程序模块查询待发送包,在存在待发送包的情况下,生成描述符并更新availidx,所述待发送包组成目标报文;向后端设备发送notify信息,所述notify信息包括所述待发送包所在队列的ID信息和所述availidx;通过所述后端设备根据所述notify信息得到所述描述符;根据所述描述符得到所述待发送包,以将所述目标报文搬运到所述后端设备侧。2.根据权利要求1所述的方法,其特征在于,在所述通过Virtio前端中的驱动程序模块查询待发送包之后,在所述生成描述符之前,所述方法还包括:将所述待发送包发送至skb对应的缓存中。3.根据权利要求1所述的方法,其特征在于,所述通过所述后端设备根据所述notify信息得到所述描述符包括:通过所述后端设备根据所述notify信息计算所述描述符的数量;通过所述后端设备的DMA引擎分N次获得所述描述符,所述N的值通过所述数量确定,N为正整数。4.根据权利要求3所述的方法,其特征在于,在所述根据所述描述符得到所述待发送包,以将所述目标报文搬运到所述后端设备侧之后,所述方法还包括:通过所述DMA引擎将所述目标报文转发至网络侧。5.根据权利要求4所述的方法,其特征在于,在所述通过所述DMA引擎将所述目标报文转发至网络侧之后,所述方法还包括:更新所述描述符的used信息,通过所述驱动程序模块根据所述used信息的属性回收所述描述符。6.根据权利要求5所述的方法,其特征在于,在所述更新所述描述...

【专利技术属性】
技术研发人员:刘禄仁曾健郑文明杨琰旭李小龙欧阳涛
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

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

1