数据传输方法、装置、系统、计算机设备和存储介质与流程

文档序号:37869526发布日期:2024-05-09 21:13阅读:9来源:国知局
数据传输方法、装置、系统、计算机设备和存储介质与流程

本公开涉及计算机,特别是涉及一种数据传输方法、装置、系统、计算机设备和存储介质。


背景技术:

1、基于openstack架构下的宿主机网络虚拟化实现方案中,通常采用virtio-net(虚拟化输入输出网络)技术通过virtqueue(虚拟传输队列)实现前端和后端之间的数据传输。前端是指实现在客户机内核中用于与外部virtio-pci设备(虚拟化输入输出总线设备)交互的virtio前端驱动程序,后端是指宿主机中的virtio后端设备。前后端使用共享内存的虚拟传输队列进行数据交互:一端往虚拟传输队列中按接收顺序写入数据包,通过注入中断的方式通知另一端有数据包要处理,另一端以先进先出的方式读出数据包。

2、然而,现有的客户机和宿主机进行数据传输的过程中,在多应用程序的多任务并发时,数据传输按接收顺序进行,对于有高效传输需求的应用程序而言,存在通信耗时长、网络性能不佳等问题。


技术实现思路

1、基于此,有必要针对上述技术问题,提供一种提高网络性能的数据传输方法、装置、系统计算机设备和存储介质。

2、在第一方面,本公开实施例提供了一种数据传输方法,应用于openstack网络架构中的宿主机,该方法包括:

3、接收多个应用程序的报文数据,其中每个报文数据携带有与应用程序对应的属性信息;

4、根据属性信息,确定每个报文数据的传输优先级;

5、将报文数据按照传输优先级从高到低的顺序,发送至先进先出的待提取队列;

6、根据待提取队列中的待提取报文数据的传输优先级和目标vcpu的工作状态信息,控制目标vcpu按照预设的工作模式向客户机发送中断通知,以使客户机根据中断通知提取对应的待提取报文数据。

7、在一些实施例中,根据属性信息,确定每个报文数据的传输优先级,包括:

8、根据属性信息,确定应用程序id;

9、根据预设的应用程序id与传输优先级的映射关系,确定每个报文数据的传输优先级。

10、在一些实施例中,属性信息包括报文数据的源ip地址信息、目标ip地址信息、源端口信息、目标端口信息和传输协议信息;

11、根据属性信息,确定应用程序id,包括:对源ip地址信息、目标ip地址信息、源端口信息、目标端口信息和传输协议信息进行函数运算,根据运算值确定应用程序id。

12、在一些实施例中,该方法还包括:在报文数据发送至先进先出待提取队列后,

13、根据待提取队列中的待提取报文数据,生成待提取信息;

14、将待提取信息发送至宿主机的kvm模块;

15、kvm模块根据待提取信息确定待提取报文数据的传输优先级和目标vcpu;

16、待提取信息包括待提取队列编号、待提取报文数据对应的应用程序id和中断号,其中中断号与待提取报文数据的应用程序id相对应。

17、在一些实施例中,根据待提取信息确定待提取报文数据的传输优先级和目标vcpu,包括:

18、根据待提取信息中的应用程序id确定待提取报文数据的传输优先级;

19、根据待提取队列编号、应用程序id和中断号,构建中断重映射表,确定目标vcpu。

20、在一些实施例中,根据待提取队列编号、应用程序id和中断号,构建中断重映射表,确定目标vcpu,包括:

21、根据中断重映射表,更新中断路由表;

22、kvm模块中的i/o高级可编程中断控制器根据中断路由表确定目标本地高级可编程中断控制器;

23、根据本地高级可编程中断控制器确定目标vcpu,本地高级可编程中断控制器与vcpu一一对应。

24、在一些实施例中,中断重映射表包括待提取报文数据对应的待提取队列编号、中断号、应用程序id以及属性信息的运算值,其中中断号与本地高级可编程中断控制器存在对应关系。

25、在一些实施例中,kvm模块采用热插拔模式加载到宿主机的内核模块。

26、在一些实施例中,宿主机中包括用于报文数据暂存的多个不同队列等级的优先级队列,

27、将报文数据按照传输优先级从高到低的顺序,发送至先进先出的待提取队列,包括:

28、将报文数据根据传输优先级暂存至对应队列等级的多个目标优先级队列;

29、按队列等级从高到低的顺序,将目标优先级队列中的报文数据,发送至待提取队列。

30、在一些实施例中,该方法还包括:在根据属性信息,确定每个报文数据的传输优先级后,

31、确定报文数据的数据包类型,其中数据包类型包括首包数据和非首包数据;

32、将报文数据根据传输优先级暂存至对应队列等级的多个目标优先级队列,包括:

33、在第一目标报文数据的数据类型为首包数据时,将第一目标报文数据暂存至与其传输优先级对应的第一优先级队列;

34、根据第一目标报文数据的属性信息的运算值与第一优先级队列的编号信息,生成暂存对应关系表;

35、其中,第一优先级队列为空队列。

36、在一些实施例中,将报文数据根据传输优先级暂存至对应队列等级的多个目标优先级队列,包括:

37、在确定第二目标报文数据的数据类型为非首包数据时,根据暂存对应关系表和第二目标报文数据的属性信息的运算值,确定目标编号信息;

38、将第二目标报文数据暂存至目标编号信息对应的目标优先级队列。

39、在一些实施例中,根据待提取队列中的待提取报文数据的传输优先级和目标vcpu状态信息,控制目标vcpu按照预设的工作模式向客户机发送中断通知,包括:

40、在传输优先级为高优先级,且目标vcpu处于运行状态时,控制目标vcpu向客户机中与目标vcpu对应的cpu注入第一类中断通知,以使客户机根据第一类中断通知立即提取对应的报文数据。

41、在一些实施例中,根据待提取队列中的待提取报文数据的传输优先级和目标vcpu状态信息,控制目标vcpu按照预设的工作模式向客户机发送中断通知,包括:

42、在传输优先级为高优先级,且目标vcpu处于非运行状态时,将中断通知信息写入目标vcpu对应的vmcs结构中,并触发目标vcpu切换运行状态;

43、在目标vcpu状态切换为运行状态时,向客户机中与目标vcpu对应的cpu注入第一类中断通知,以使客户机根据第一类中断通知立即提取对应的报文数据。

44、在一些实施例中,根据待提取队列中的待提取报文数据的传输优先级和目标vcpu状态信息,控制目标vcpu按照预设的工作模式向客户机发送中断通知,包括:

45、在传输优先级为低优先级,且目标vcpu处于运行状态时,

46、控制目标vcpu向客户机中与目标vcpu对应的cpu注入第二类中断通知,以使客户机根据第二类中断通知,利用中断处理程序自行调度处理;和/或,

47、在传输优先级为低优先级,且目标vcpu处于非运行状态时,

48、将中断通知信息写入目标vcpu对应的vmcs结构中,等待vcpu状态切换为运行状态时,向客户机中与目标vcpu对应的cpu注入第二类中断通知,以使客户机根据第二类中断通知,利用中断处理程序自行调度处理。

49、在一些实施例中,该方法还包括:

50、将待提取队列中的待提取报文拷贝至共享内存中;

51、客户机用于根据中断通知从共享内存中提取待提取报文数据。

52、在一些实施例中,应用程序包括视频播放程序、实时会话程序、备份程序中的至少一种。

53、在第二方面,本公开实施例提供了一种数据传输装置,应用于openstack网络架构中的宿主机,该装置包括:

54、报文接收模块,用于接收多个应用程序的报文数据,其中每个报文数据携带有与应用程序对应的属性信息;

55、优先级确定模块,用于根据属性信息,确定每个报文数据的传输优先级;

56、报文中转模块,用于将报文数据按照传输优先级从高到低的顺序,发送至先进先出的待提取队列;

57、中断注入模块,用于根据待提取队列中的待提取报文数据的传输优先级和目标vcpu的工作状态信息,控制目标vcpu按照预设的工作模式向客户机发送中断通知,以使客户机根据中断通知提取对应的待提取报文数据。

58、在第三方面,本公开实施例提供了一种数据传输系统,该系统包括应用openstack网络架构的宿主机和客户机;

59、其中,宿主机用于实现本公开第一方面任一实施例中的数据传输方法的步骤,客户机用于根据中断通知提取对应的待提取报文数据。

60、在一些实施例中,宿主机还用于将待提取队列中的待提取报文拷贝至共享内存中;

61、客户机还用于根据中断通知,触发中断处理程序调用虚拟队列处理函数根据待提取队列编号从共享内存中提取待提取报文数据。

62、在第四方面,本公开实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现本公开第一方面任一实施例中的数据传输方法。

63、在第五方面,本公开实施例提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现本公开第一方面任一实施例中的数据传输方法的步骤。

64、上述数据传输方法、装置、计算机设备和存储介质,宿主机在收到多个应用程序的报文数据时,会根据报文数据的传输优先级顺序,将传输优先级高的报文数据先发送至待提取队列中,并根据传输优先级和目标vcpu的工作状态信息,采取不同的工作模式向客户机发送中断通知,以使传输优先级高的报文数据被客户机优先提取,能够在多应用程序的多任务并发的场景下,有高效传输需求的应用程序发出的报文数据被优先传输,提升了高优先级应用程序数据流量的中断注入及响应速度,减少了高优先级数据流量的处理时延,进而提升了virtio-net网络的加速能力。

65、即使目标vcpu处于非运行状态,通过触发vcpu切换运行状态,注入第一类中断通知,客户机也能够在第一时间提取待提取报文数据,减少处理时延,能够根据不同应用程序的传输需求,将报文数据按不同优先情况传输处理,提高了网络性能。

66、通过确定报文数据的数据包类型,进一步将属性信息运算值相同的报文数据暂存至同一优先级队列中,能够使同一应用程序的同一业务流量产生的报文数据由同一个vcpu处理,能够保证网络应用程序的数据流量保序处理,避免了网络中的其他干扰报文占用cpu,能够使同一业务流量持续可靠输出。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1