报文转发方法及装置制造方法及图纸

技术编号:17783990 阅读:38 留言:0更新日期:2018-04-22 15:17
本发明专利技术实施例公开了报文转发方法及装置,应用于网卡。方法包括:接收该网卡所在设备以外的设备发送的报文;根据预设分类规则,判断该报文是否为控制平面报文;若是,将该报文通过目标功能转发给该网卡对应的操作系统;其中,目标功能为该网卡通过虚拟化技术生成的功能,目标功能由操作系统的内核中的网卡的驱动进行管理。通过本方案可以提高报文的本地转发效率。

【技术实现步骤摘要】
报文转发方法及装置
本专利技术涉及计算机
,特别涉及报文转发方法及装置。
技术介绍
报文(packet)是网络中交换与传输的数据单元,即站点一次性要发送的数据块,一般可以分为数据平面报文和控制平面报文,主要通过网卡接收或发送。其中,网卡接收的报文中需交给用户态报文处理应用程序的报文称作数据平面报文,其他的需交给网卡对应的操作系统的报文称作控制平面报文。如何将网卡接收到的报文实现本地高效安全的转发是一项重要的议题。其中,常见的如基于用户态报文处理框架的系统中,用户态报文处理应用程序启动后,将网卡直接截获,如图1所示,网卡收到的所有报文,都通过用户态报文处理框架(例如英特尔DPDK,DataPlaneDevelopmentKit,数据平面开发套件)直接发送给用户态报文处理应用程序,用户态报文处理应用程序收到报文后,将需要由本地用户态应用程序或操作系统处理的控制平面报文通过操作系统中的内核TAP驱动接口转发给内核TCP/IP(TransmissionControlProtocol/InternetProtocol,传输控制协议/因特网互联协议)协议栈,这个过程涉及报文从用户态向内核态的拷贝,并引发系统调用,其中,TAP为系统的虚拟网卡;同时,当本地用户态应用程序需要发送报文时,报文从用户态拷贝到内核态,经由内核TCP/IP协议栈处理完毕后,发送给内核TAP驱动,此时,由于TAP驱动不能在接收到报文时主动进行转发,需要用户态报文处理应用程序对TAP驱动进行轮询,并从TAP驱动中,将报文拷贝到用户态,再调用用户态报文处理框架的API(ApplicationProgrammingInterface,应用程序编程接口),将报文通过网卡发送出去。不难看出,传统的基于TAP接口的方式,报文的本地转发需要经过多次的用户态与内核态间的数据拷贝,并触发多次用户态和内核态程序的调度,导致报文的本地转发效率较低。
技术实现思路
本专利技术实施例的目的在于提供报文转发方法及装置,以提高报文的本地转发效率。具体技术方案如下:第一方面,本专利技术实施例提供了一种报文转发方法,应用于网卡,所述方法包括:接收所述网卡所在设备以外的设备发送的报文;根据预设分类规则,判断所述报文是否为控制平面报文;若是,将所述报文通过目标功能转发给所述网卡对应的操作系统;其中,所述目标功能为所述网卡通过虚拟化技术生成的功能,所述目标功能由所述操作系统的内核中的所述网卡的驱动进行管理。可选地,所述根据预设分类规则,判断所述报文是否为控制平面报文,包括:判断所述报文的目的地址是否为本机地址;若是,判定所述报文为控制平面报文;可选地,所述虚拟化技术为单根虚拟化I/O技术。可选地,所述目标功能为物理功能。可选地,本专利技术实施例所提供的报文转发方法,还包括:若所述报文不是控制平面报文,将所述报文通过所述网卡的虚拟功能转发给用户态报文处理应用程序。可选地,所述接收所述网卡所在设备以外的设备发送的报文的步骤之前,所述方法还包括:利用所述单根虚拟化I/O技术,生成所述物理功能和所述虚拟功能;启动所述用户态报文处理应用程序;将所述用户态报文处理应用程序与所述虚拟功能进行绑定。可选地,所述将所述报文通过所述网卡的虚拟功能转发给用户态报文处理应用程序,包括:将所述报文通过所述虚拟功能转发给用户态报文处理框架,再通过所述用户态报文处理框架转发给所述用户态报文处理应用程序;其中,所述虚拟功能由所述用户态报文处理框架管理。第二方面,本专利技术实施例提供了一种报文转发方法,应用于网卡,所述方法包括:通过目标功能接收所述网卡对应的操作系统发送的第一类报文;其中,所述目标功能为所述网卡通过虚拟化技术生成的功能,所述目标功能由所述操作系统的内核中的所述网卡的驱动进行管理。通过所述目标功能转发所述第一类报文。可选地,所述虚拟化技术为单根虚拟化I/O技术。可选地,所述目标功能为物理功能。可选地,本专利技术实施例所提供的报文转发方法,还包括:通过所述网卡的虚拟功能接收用户态报文处理框架转发的第二类报文,并转发所述第二类报文;其中,所述虚拟功能由所述用户态报文处理框架管理。可选地,所述第二类报文为用户态报文处理应用程序发送的报文。可选地,所述通过目标功能接收操作系统发送的第一类报文的步骤之前,所述方法还包括:利用所述单根虚拟化I/O技术,生成所述物理功能和所述虚拟功能;启动所述用户态报文处理应用程序;将所述用户态报文处理应用程序与所述虚拟功能进行绑定。第三方面,本专利技术实施例提供了一种报文转发装置,应用于网卡,所述装置包括:第一报文接收模块,用于接收所述网卡所在设备以外的设备发送的报文;判断模块,用于根据预设分类规则,判断所述报文是否为控制平面报文;第一报文转发模块,用于在所述判断模块的结果为是的情况下,将所述报文通过目标功能转发给所述网卡对应的操作系统;其中,所述目标功能为所述网卡通过虚拟化技术生成的功能,所述目标功能由所述操作系统的内核中的所述网卡的驱动进行管理。可选地,所述判断模块,具体用于:判断所述报文的目的地址是否为本机地址;若是,判定所述报文为控制平面报文。可选地,所述虚拟化技术为单根虚拟化I/O技术。可选地,所述目标功能为物理功能。可选地,本专利技术实施例所提供的报文转发装置,还包括:第二报文转发模块,用于当所述报文为数据平面报文时,将所述报文通过所述网卡的虚拟功能转发给用户态报文处理应用程序。可选地,本专利技术实施例所提供的报文转发装置,还包括:第一功能生成模块,用于在所述第一报文接收模块接收所述网卡所在设备以外的设备发送的报文之前,利用所述单根虚拟化I/O技术,生成所述物理功能和所述虚拟功能;第一启动模块,用于启动所述用户态报文处理应用程序;第一绑定模块,用于将所述用户态报文处理应用程序与所述虚拟功能进行绑定。可选地,所述第二报文转发模块,具体用于:将所述报文通过所述虚拟功能转发给用户态报文处理框架,再通过所述用户态报文处理框架转发给所述用户态报文处理应用程序;其中,所述虚拟功能由所述用户态报文处理框架管理。第四方面,本专利技术是实施例提供了一种报文转发装置,应用于网卡,所述装置包括:第二报文接收模块,用于通过目标功能接收操作系统发送的第一类报文;其中,所述目标功能为所述网卡通过虚拟化技术生成的功能,所述目标功能由所述操作系统的内核中的所述网卡的驱动进行管理。第三报文转发模块,用于通过所述目标功能转发所述第一类报文。可选地,所述虚拟化技术为单根虚拟化I/O技术。可选地,所述目标功能为物理功能。可选地,本专利技术实施例所提供的报文转发装置,还包括:第四报文转发模块,用于通过所述网卡的虚拟功能接收用户态报文处理框架转发的第二类报文,并转发所述第二类报文;其中,所述虚拟功能由所述用户态报文处理框架管理。可选地,所述第二类报文为用户态报文处理应用程序发送的报文。可选地,本专利技术实施例所提供的报文转发装置,还包括:第二功能生成模块,用于在所述第二报文接收模块通过目标功能接收操作系统发送的第一类报文之前,利用所述单根虚拟化I/O技术,生成所述物理功能和所述虚拟功能;第二启动模块,用于启动所述用户态报文处理应用程序;第二绑定模块,用于将所述用户态报文处理应用程序与所述虚拟功能进行绑定。应用本专利技术实施例提供的技术方案,在网卡本文档来自技高网
...
报文转发方法及装置

【技术保护点】
一种报文转发方法,其特征在于,应用于网卡,所述方法包括:接收所述网卡所在设备以外的设备发送的报文;根据预设分类规则,判断所述报文是否为控制平面报文;若是,将所述报文通过目标功能转发给所述网卡对应的操作系统;其中,所述目标功能为所述网卡通过虚拟化技术生成的功能,所述目标功能由所述操作系统的内核中的所述网卡的驱动进行管理。

【技术特征摘要】
1.一种报文转发方法,其特征在于,应用于网卡,所述方法包括:接收所述网卡所在设备以外的设备发送的报文;根据预设分类规则,判断所述报文是否为控制平面报文;若是,将所述报文通过目标功能转发给所述网卡对应的操作系统;其中,所述目标功能为所述网卡通过虚拟化技术生成的功能,所述目标功能由所述操作系统的内核中的所述网卡的驱动进行管理。2.根据权利要求1所述的方法,其特征在于,所述根据预设分类规则,判断所述报文是否为控制平面报文,包括:判断所述报文的目的地址是否为本机地址;若是,判定所述报文为控制平面报文。3.根据权利要求1所述的方法,其特征在于,所述虚拟化技术为单根虚拟化I/O技术。4.根据权利要求3所述的方法,其特征在于,所述目标功能为物理功能。5.根据权利要求4所述的方法,其特征在于,还包括:若所述报文不是控制平面报文,将所述报文通过所述网卡的虚拟功能转发给用户态报文处理应用程序。6.根据权利要求5所述的方法,其特征在于,所述接收所述网卡所在设备以外的设备发送的报文的步骤之前,所述方法还包括:利用所述单根虚拟化I/O技术,生成所述物理功能和所述虚拟功能;启动所述用户态报文处理应用程序;将所述用户态报文处理应用程序与所述虚拟功能进行绑定。7.根据权利要求5所述的方法,其特征在于,所述将所述报文通过所述网卡的虚拟功能转发给用户态报文处理应用程序,包括:将所述报文通过所述虚拟功能转发给用户态报文处理框架,再通过所述用户态报文处理框架转发给所述用户态报文处理应用程序;其中,所述虚拟功能由所述用户态报文处理框架管理。8.一种报文转发方法,其特征在于,应用于网卡,所述方法包括:通过目标功能接收所述网卡对应的操作系统发送的第一类报文;其中,所述目标功能为所述网卡通过虚拟化技术生成的功能,所述目标功能由所述操作系统的内核中的所述网卡的驱动进行管理。通过所述目标功能转发所述第一类报文。9.根据权利要求8所述的方法,其特征在于,所述虚拟化技术为单根虚拟化I/O技术。10.根据权利要求9所述的方法,其特征在于,所述目标功能为物理功能。11.根据权利要求10所述的方法,其特征在于,还包括:通过所述网卡的虚拟功能接收用户态报文处理框架转发的第二类报文,并转发所述第二类报文;其中,所述虚拟功能由所述用户态报文处理框架管理。12.根据权利要求11所述的方法,其特征在于,所述第二类报文为用户态报文处理应用程序发送的报文。13.根据权利要求12所述的方法,其特征在于,所述通过目标功能接收操作系统发送的第一类报文的步骤之前,所述方法还包括:利用所述单根虚拟化I/O技术,生成所述物理功能和所述虚拟功能;启动所述用户态报文处理应用程序;将所述用户态报文处理应用程序与所述虚拟功能进行绑定。14.一种报文转发装置,其特征在于,应用于网卡,所述装置包括:第一报文接收模块,用于接收所述网卡所在设备以外的设备发送的报文...

【专利技术属性】
技术研发人员:刘涛
申请(专利权)人:北京金山云网络技术有限公司北京金山云科技有限公司
类型:发明
国别省市:北京,11

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

1