CN111064671B - 数据包转发方法、装置及电子设备 - Google Patents
数据包转发方法、装置及电子设备 Download PDFInfo
- Publication number
- CN111064671B CN111064671B CN201911256650.1A CN201911256650A CN111064671B CN 111064671 B CN111064671 B CN 111064671B CN 201911256650 A CN201911256650 A CN 201911256650A CN 111064671 B CN111064671 B CN 111064671B
- Authority
- CN
- China
- Prior art keywords
- port
- virtual switch
- flow
- receiving
- information
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种数据包转发方法、装置及电子设备,涉及互联网技术领域,该方法应用于OpenvSwitch虚拟交换机,该方法包括:通过OpenvSwitch虚拟交换机的接收端口接收网卡发送的数据包;从OpenvSwitch虚拟交换机的指定数据库中获取接收端口对应的流向端口信息;基于流向端口信息将数据包发送至OpenvSwitch虚拟交换机的流向端口,以使OpenvSwitch虚拟交换机中的应用程序从流向端口获取数据包;其中,接收端口与流向端口信息的对应关系是预先在OpenvSwitch虚拟交换机的指定数据库中创建的。本发明提升了OpenvSwitch虚拟交换机的数据处理速度。
Description
技术领域
本发明涉及互联网技术领域,尤其是涉及一种数据包转发方法、装置及电子设备。
背景技术
目前,OpenvSwitch(简称,OVS)虚拟交换机在进行数据包转发时,需要基于OpenFlow网络通信协议在OVS上配置OpenFlow流表,以实现端口数据包的转发。OVS在转发数据包时,会对每个数据包的五元组信息进行hash匹配OpenFlow的流表规则,然后将满足条件的数据包发送至相匹配的流向端口,由于OpenFlow流表的匹配过程计算量大,所需计算时间长,导致现有的OpenvSwitch虚拟交换机还存在数据处理速度较低的问题。
发明内容
本发明实施例的目的在于提供一种数据包转发方法、装置及电子设备,提升了OpenvSwitch虚拟交换机的数据处理速度。
第一方面,本发明实施例提供了一种数据包转发方法,所述方法应用于OpenvSwitch虚拟交换机,所述方法包括:通过所述OpenvSwitch虚拟交换机的接收端口接收网卡发送的数据包;从所述OpenvSwitch虚拟交换机的指定数据库中获取所述接收端口对应的流向端口信息;基于所述流向端口信息将所述数据包发送至所述OpenvSwitch虚拟交换机的流向端口,以使所述OpenvSwitch虚拟交换机中的应用程序从所述流向端口获取所述数据包;其中,所述接收端口与所述流向端口信息的对应关系是预先在所述OpenvSwitch虚拟交换机的指定数据库中创建的;所述数据包的接收端口和流向端口是基于所述接收端口与所述流向端口信息的对应关系预先创建的。
在可选的实施方式中,所述流向端口信息包括流向端口的标识信息;所述流向端口包括接收队列;所述基于所述流向端口信息将所述数据包发送至所述OpenvSwitch虚拟交换机的流向端口的步骤,包括:将所述数据包发送至与所述流向端口的标识信息相对应的接收队列中,以使所述OpenvSwitch虚拟交换机中的应用程序从所述接收队列读取所述数据包。
在可选的实施方式中,通过所述OpenvSwitch虚拟交换机的接收端口接收网卡发送的数据包的步骤之前,所述方法还包括:基于所述接收端口与所述流向端口信息的对应关系,在所述OpenvSwitch虚拟交换机的数据包转发进程中创建所述数据包的接收端口和流向端口。
在可选的实施方式中,基于所述接收端口与所述流向端口信息的对应关系,在所述OpenvSwitch虚拟交换机的数据包转发进程中创建所述数据包的接收端口和流向端口的步骤,包括:从所述OpenvSwitch虚拟交换机的指定数据库中获取网桥配置信息及所述接收端口与所述流向端口信息的对应关系;所述接收端口与所述流向端口信息的对应关系包括各个数据包的接收端口信息和所述接收端口对应的流向端口信息;根据所述网桥配置信息在所述OpenvSwitch虚拟交换机的数据包转发进程中创建网桥;基于创建的所述网桥、所述接收端口信息和所述接收端口对应的流向端口信息,在所述OpenvSwitch虚拟交换机的数据包转发进程中创建所述数据包的接收端口和流向端口。
在可选的实施方式中,所述方法还包括:当所述OpenvSwitch虚拟交换机的指定数据库中未配置所述接收端口与所述流向端口信息的对应关系时,将所述数据包的五元组信息与预先配置的OpenFlow流表规则进行哈希匹配,并将所述数据包发送至相匹配的流向端口。
第二方面,本发明实施例提供了一种数据包转发装置,所述装置设置于OpenvSwitch虚拟交换机,所述装置包括:数据包接收模块,用于通过所述OpenvSwitch虚拟交换机的接收端口接收网卡发送的数据包;端口信息获取模块,用于从所述OpenvSwitch虚拟交换机的指定数据库中获取所述接收端口对应的流向端口信息;数据包转发模块,用于基于所述流向端口信息将所述数据包发送至所述OpenvSwitch虚拟交换机的流向端口,以使所述OpenvSwitch虚拟交换机中的应用程序从所述流向端口获取所述数据包;其中,所述接收端口与所述流向端口信息的对应关系是预先在所述OpenvSwitch虚拟交换机的指定数据库中创建的;所述数据包的接收端口和流向端口是基于所述接收端口与所述流向端口信息的对应关系预先创建的。
在可选的实施方式中,所述流向端口信息包括流向端口的标识信息;所述流向端口包括接收队列;所述数据包转发模块,进一步用于将所述数据包发送至与所述流向端口的标识信息相对应的接收队列中,以使所述OpenvSwitch虚拟交换机中的应用程序从所述接收队列读取所述数据包。
在可选的实施方式中,所述装置还包括:端口创建模块,用于基于所述接收端口与所述流向端口信息的对应关系,在所述OpenvSwitch虚拟交换机的数据包转发进程中创建所述数据包的接收端口和流向端口。
第三方面,本发明实施例提供了一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如第一方面所述的方法的步骤。
第四方面,本发明实施例提供了一种计算机可读介质,其中,所述计算机可读介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,所述计算机可执行指令促使所述处理器实现如第一方面所述的方法。
本发明实施例提供了一种数据包转发方法、装置及电子设备,该方法应用于OpenvSwitch虚拟交换机,该方法包括:首先通过OpenvSwitch虚拟交换机的接收端口接收网卡发送的数据包;然后从OpenvSwitch虚拟交换机的指定数据库中获取接收端口对应的流向端口信息;最后基于流向端口信息将数据包发送至OpenvSwitch虚拟交换机的流向端口,以使OpenvSwitch虚拟交换机中的应用程序从流向端口获取数据包;其中,接收端口与流向端口信息的对应关系是预先在OpenvSwitch虚拟交换机的指定数据库中创建的;数据包的接收端口和流向端口是基于接收端口与流向端口信息的对应关系预先创建的。在该方法中,通过从OpenvSwitch虚拟交换机的指定数据库中获取接收端口对应的流向端口信息,无需进行流表匹配就可以将数据包发送至OpenvSwitch虚拟交换机的流向端口,提升了数据包的转发速度,进而提升了OpenvSwitch虚拟交换机的数据处理速度。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据包转发方法流程图;
图2为本发明实施例提供的一种数据包流向示意图;
图3为本发明实施例提供的一种OpenvSwitch虚拟交换机数据包转发流程图;
图4为本发明实施例提供的一种数据包转发装置结构示意图;
图5为本发明实施例提供的另一种数据包转发装置结构示意图;
图6为本发明实施例提供的另一种数据包转发装置结构示意图;
图7为本发明实施例提供的一种电子设备结构示意图。
具体实施方式
下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
考虑到目前的OpenvSwitch虚拟交换机还存在数据处理速度较低的问题,本发明实施例提供了一种数据包转发方法、装置及电子设备,可以应用于提升OpenvSwitch虚拟交换机的数据处理速度。
本发明实施例提供了一种数据包转发方法,参见如图1所示的数据包转发方法流程图,该方法可以由OpenvSwitch虚拟交换机执行,该方法包括以下步骤S102~步骤S106:
步骤S102:通过OpenvSwitch虚拟交换机的接收端口接收网卡发送的数据包。
上述OpenvSwitch虚拟交换机的接收端口是预先在数据包转发进程(也可以称为数据包转发程序)中创建的,OpenvSwitch虚拟交换机的接收端口接收网卡发送的流量数据包,或者OpenvSwitch虚拟交换机的接收端口可以从网卡内存中获取流量数据包,以使OpenvSwitch虚拟交换机进行网络流量数据处理。
步骤S104:从OpenvSwitch虚拟交换机的指定数据库中获取接收端口对应的流向端口信息。
上述OpenvSwitch虚拟交换机的指定数据库中存储有接收端口与流向端口信息的对应关系,为了实现数据包的转发,在接收端口接收到数据包时,需要从OpenvSwitch虚拟交换机的指定数据库中获取与接收端口相对应的流向端口信息,以便将数据包转发至流向端口,从而实现数据包的转发。
步骤S106:基于流向端口信息将数据包发送至OpenvSwitch虚拟交换机的流向端口,以使OpenvSwitch虚拟交换机中的应用程序从流向端口获取数据包;其中,接收端口与流向端口信息的对应关系是预先在OpenvSwitch虚拟交换机的指定数据库中创建的;数据包的接收端口和流向端口是基于接收端口与流向端口信息的对应关系预先创建的。
OpenvSwitch虚拟交换机在转发数据包时,是基于OpenvSwitch虚拟交换机的指定数据库中接收端口与流向端口信息的对应关系转发的,通过查阅接收端口与流向端口信息的对应关系,OpenvSwitch虚拟交换机将接收端口接收到的数据包转发至上述接收端口相对应的流向端口,该流向端口可以包括一个或多个,该流向端口的数量可以根据实际需求设置。
在一种具体的实施方式中,上述接收端口与流向端口信息的对应关系的内容可以为:ovs input:端口1,output:端口2。该接收端口与流向端口信息的对应关系的内容表示OpenvSwitch虚拟交换机的端口1是接收端口,该交换机的端口2为流向端口。参见如图2所示的数据包流向示意图,接收端口在接收到网卡发送的数据包后,通过查阅上述接收端口与流向端口信息的对应关系,可以将接收端口接收到的数据包直接转发至与接收端口相对应的流向端口,以使OpenvSwitch虚拟交换机中的应用程序从流向端口获取数据包,实现了数据包的快速转发。
本实施例提供的上述数据包转发方法,通过从OpenvSwitch虚拟交换机的指定数据库中获取接收端口对应的流向端口信息,无需进行流表匹配就可以将数据包发送至OpenvSwitch虚拟交换机的流向端口,提升了数据包的转发速度,进而提升了OpenvSwitch虚拟交换机的数据处理速度。
为了提升数据包转发的准确率,本实施例提供了基于流向端口信息将数据包发送至OpenvSwitch虚拟交换机的流向端口的具体实施方式:
其中,上述流向端口信息包括流向端口的标识信息;流向端口包括接收队列。将数据包发送至与流向端口的标识信息相对应的接收队列中,以使OpenvSwitch虚拟交换机中的应用程序从接收队列读取数据包。上述流向端口的标识信息也即OpenvSwitch虚拟交换机的端口标识信息,OpenvSwitch虚拟交换机的每一个端口都有唯一的端口标识信息(也可以称为端口号),可以用数字标识来区分不同的端口,诸如交换机的端口1或端口2。OpenvSwitch虚拟交换机的每一个端口都包括接收队列和发送队列,该接收队列和发送队列的数量可以根据实际需求设置。OpenvSwitch虚拟交换机中的应用程序从流向端口的接收队列获取数据包,从而进行后续的数据包处理工作。
为了提升数据包转发进程的效率,本实施例提供了创建数据包的接收端口和流向端口的具体实施方式:
在通过OpenvSwitch虚拟交换机的接收端口接收网卡发送的数据包的步骤之前,基于接收端口与流向端口信息的对应关系,在OpenvSwitch虚拟交换机的数据包转发进程中创建数据包的接收端口和流向端口。具体可参照如下步骤(1)~步骤(3)执行:
步骤(1):从OpenvSwitch虚拟交换机的指定数据库中获取网桥配置信息及接收端口与流向端口信息的对应关系;接收端口与流向端口信息的对应关系包括各个数据包的接收端口信息和接收端口对应的流向端口信息。
上述网桥配置信息及接收端口与流向端口信息的对应关系是通过OpenvSwitch虚拟交换机的数据库配置命令,将网桥配置信息及接收端口与流向端口信息的对应关系保存在OpenvSwitch虚拟交换机的指定数据库中的信息。其中,上述OpenvSwitch虚拟交换机的指定数据库中还保存有虚拟交换机的各个端口信息(包括端口数量和端口标识信息)及虚拟交换机的版本信息。上述接收端口信息为OpenvSwitch虚拟交换机中接收端口的端口标识信息,上述接收端口对应的流向端口信息通过为查阅接收端口与流向端口信息的对应关系得到的表示数据包转发流向的流向端口的端口标识信息。
步骤(2):根据网桥配置信息在OpenvSwitch虚拟交换机的数据包转发进程中创建网桥。
当OpenvSwitch虚拟交换机的指定数据库中保存网桥配置信息及接收端口与流向端口信息后,启动OpenvSwitch虚拟交换机的数据包转发进程(程序),在OpenvSwitch虚拟交换机的数据包转发进程中创建与OpenvSwitch虚拟交换机的指定数据库中保存的网桥配置信息相对应的网桥。
步骤(3):基于创建的网桥、接收端口信息和接收端口对应的流向端口信息,在OpenvSwitch虚拟交换机的数据包转发进程中创建数据包的接收端口和流向端口。
在上述步骤(2)创建的网桥的基础上,创建OpenvSwitch虚拟交换机的具有端口标识信息的接收端口和流向端口,其中,该接收端口与流向端口的端口数量与端口标识信息,与OpenvSwitch虚拟交换机的指定数据库中保存的端口信息或接收端口与流向端口信息的对应关系中的端口数量与端口标识信息相对应。
考虑到OpenvSwitch虚拟交换机的指定数据库中存在未配置接收端口与流向端口信息的对应关系的情况,本实施例提供的数据包转发方法还包括:当OpenvSwitch虚拟交换机的指定数据库中未配置接收端口与流向端口信息的对应关系时,将数据包的五元组信息与预先配置的OpenFlow流表规则进行哈希匹配,并将数据包发送至相匹配的流向端口。上述OpenFlow是一种网络通信协议,能够控制网上交换器或路由器的转发平面,借此改变网络数据包所走的网络路径,在OpenFlow交换机的运行过程中,其数据转发的依据就是流表。OpenFlow流表规则可被视作是OpenFlow对网络设备的数据转发功能的一种抽象,在它的表项中整合了网络中各个层次的网络配置信息,从而在进行数据转发时可以使用更丰富的规则。OpenFlow流表规则的每个流表项都由3部分组成:用于数据包匹配的包头域,用于统计匹配数据包个数的计数器,以及用于展示匹配的数据包如何处理的动作。
上述OpenFlow流表规则是保存在OpenvSwitch虚拟交换机所在物理机内存中的,当OpenvSwitch虚拟交换机关闭重启时,端口流向信息已经不存在,需要重新配置流表信息,即每次启动OpenvSwitch虚拟交换机后,都需要进行OpenFlow流表规则配置。
在实际应用中,为了提升OpenvSwitch虚拟交换机的数据处理速度,提升收包速率,可以采用以下方式进行数据包转发,参见如图3所示的OpenvSwitch虚拟交换机数据包转发流程图,具体可参照如下步骤S302~步骤S308执行:
步骤S302:启动OpenvSwitch虚拟交换机的数据包转发进程。
步骤S304:通过OpenvSwitch虚拟交换机的数据包转发进程中预先创建的接收端口,接收网卡发送的数据包。
步骤S306:当OpenvSwitch虚拟交换机配置有接收端口与流向端口信息的对应关系时,将接收端口接收到的数据包直接转发至于接收端口相对应的流向端口的接收队列。
上述接收端口和流向端口是通过启动OpenvSwitch虚拟交换机的数据库,并在OpenvSwitch虚拟交换机的数据库中添加网桥配置信息、端口配置信息及接收端口与流向端口信息的对应关系,然后基于上述网桥配置信息、端口配置信息及接收端口与流向端口信息的对应关系在OpenvSwitch虚拟交换机的数据包转发进程中创建得到的。当接收端口接收到数据包时,通过保存在数据库中的端口配置信息中的流向端口信息,获取接收端口的流向端口,将数据包转发至接收端口的流向端口。
步骤S308:当OpenvSwitch虚拟交换机未配置接收端口与流向端口信息的对应关系时,将接收端口接收到的数据包的五元组信息与预先配置的OpenFlow流表规则进行哈希匹配,并将数据包发送至相匹配的流向端口。
本实施例提供的上述数据包转发方法,通过提升数据包的转发效率,避免数据包因未及时接收而丢弃的现象,提升了收包速率;并且,由于OpenvSwitch虚拟交换机的指定数据库中保存有接收端口与流向端口信息的对应关系,通过在OpenvSwitch虚拟交换机的数据包转发进程中预先创建数据包的接收端口和流向端口,可以使OpenvSwitch虚拟交换机的数据包转发进程每次启动后数据包流向端口信息依旧存在,实现了数据包流向端口信息的持久化。
对应于上述数据包转发方法,本发明实施例提供了一种数据包转发装置,该装置可以设置于OpenvSwitch虚拟交换机,参见如图4所示的数据包转发装置结构示意图,该装置包括:
数据包接收模块41,用于通过OpenvSwitch虚拟交换机的接收端口接收网卡发送的数据包。
端口信息获取模块42,用于从OpenvSwitch虚拟交换机的指定数据库中获取接收端口对应的流向端口信息。
数据包转发模块43,用于基于流向端口信息将数据包发送至OpenvSwitch虚拟交换机的流向端口,以使OpenvSwitch虚拟交换机中的应用程序从流向端口获取数据包;其中,接收端口与流向端口信息的对应关系是预先在OpenvSwitch虚拟交换机的指定数据库中创建的;数据包的接收端口和流向端口是基于接收端口与流向端口信息的对应关系预先创建的。
本实施例提供的上述数据包转发装置,通过从OpenvSwitch虚拟交换机的指定数据库中获取接收端口对应的流向端口信息,无需进行流表匹配就可以将数据包发送至OpenvSwitch虚拟交换机的流向端口,提升了数据包的转发速度,进而提升了OpenvSwitch虚拟交换机的数据处理速度。
在一种实施方式中,上述流向端口信息包括流向端口的标识信息;流向端口包括接收队列;上述数据包转发模块43,进一步用于将数据包发送至与流向端口的标识信息相对应的接收队列中,以使OpenvSwitch虚拟交换机中的应用程序从接收队列读取数据包。
在一种实施方式中,参见如图5所示的另一种数据包转发装置结构示意图,上述装置还包括:
端口创建模块54,用于基于接收端口与流向端口信息的对应关系,在OpenvSwitch虚拟交换机的数据包转发进程中创建数据包的接收端口和流向端口。
在一种实施方式中,上述端口创建模块54,进一步用于从OpenvSwitch虚拟交换机的指定数据库中获取网桥配置信息及接收端口与流向端口信息的对应关系;接收端口与流向端口信息的对应关系包括各个数据包的接收端口信息和接收端口对应的流向端口信息;根据网桥配置信息在OpenvSwitch虚拟交换机的数据包转发进程中创建网桥;基于创建的网桥、接收端口信息和接收端口对应的流向端口信息,在OpenvSwitch虚拟交换机的数据包转发进程中创建数据包的接收端口和流向端口。
在一种实施方式中,参见如图6所示的另一种数据包转发装置结构示意图,上述装置还包括:
流表匹配模块65,用于在OpenvSwitch虚拟交换机的指定数据库中未配置接收端口与流向端口信息的对应关系时,将数据包的五元组信息与预先配置的OpenFlow流表规则进行哈希匹配,并将数据包发送至相匹配的流向端口。
本实施例提供的上述数据包转发装置,通过提升数据包的转发效率,避免数据包因未及时接收而丢弃的现象,提升了收包速率;并且,由于OpenvSwitch虚拟交换机的指定数据库中保存有接收端口与流向端口信息的对应关系,通过在OpenvSwitch虚拟交换机的数据包转发进程中预先创建数据包的接收端口和流向端口,可以使OpenvSwitch虚拟交换机的数据包转发进程每次启动后数据包流向端口信息依旧存在,实现了数据包流向端口信息的持久化。
本实施例所提供的装置,其实现原理及产生的技术效果和前述实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
本发明实施例提供了一种电子设备,如图7所示的电子设备结构示意图,电子设备包括处理器71、存储器72,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例提供的方法的步骤。
参见图7,电子设备还包括:总线74和通信接口73,处理器71、通信接口73和存储器72通过总线74连接。处理器71用于执行存储器72中存储的可执行模块,例如计算机程序。
其中,存储器72可能包含高速随机存取存储器(RAM,Random AccessMemory),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口73(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线74可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器72用于存储程序,所述处理器71在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器71中,或者由处理器71实现。
处理器71可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器71中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器71可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等。还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器72,处理器71读取存储器72中的信息,结合其硬件完成上述方法的步骤。
本发明实施例提供了一种计算机可读介质,其中,所述计算机可读介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,所述计算机可执行指令促使所述处理器实现上述实施例所述的方法。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (8)
1.一种数据包转发方法,其特征在于,所述方法应用于OpenvSwitch虚拟交换机,所述方法包括:
通过所述OpenvSwitch虚拟交换机的接收端口接收网卡发送的数据包;
从所述OpenvSwitch虚拟交换机的指定数据库中获取所述接收端口对应的流向端口信息;
基于所述流向端口信息将所述数据包发送至所述OpenvSwitch虚拟交换机的流向端口,以使所述OpenvSwitch虚拟交换机中的应用程序从所述流向端口获取所述数据包;其中,所述接收端口与所述流向端口信息的对应关系是预先在所述OpenvSwitch虚拟交换机的指定数据库中创建的;所述数据包的接收端口和流向端口是基于存储在所述OpenvSwitch虚拟交换机的指定数据库中的网桥配置信息、端口配置信息及所述接收端口与所述流向端口信息的对应关系,在所述OpenvSwitch虚拟交换机的数据包转发进程中预先创建的;
所述流向端口信息包括流向端口的标识信息;所述流向端口包括接收队列;
所述基于所述流向端口信息将所述数据包发送至所述OpenvSwitch虚拟交换机的流向端口的步骤,包括:
将所述数据包发送至与所述流向端口的标识信息相对应的接收队列中,以使所述OpenvSwitch虚拟交换机中的应用程序从所述接收队列读取所述数据包。
2.根据权利要求1所述的方法,其特征在于,通过所述OpenvSwitch虚拟交换机的接收端口接收网卡发送的数据包的步骤之前,所述方法还包括:
基于所述接收端口与所述流向端口信息的对应关系,在所述OpenvSwitch虚拟交换机的数据包转发进程中创建所述数据包的接收端口和流向端口。
3.根据权利要求2所述的方法,其特征在于,基于所述接收端口与所述流向端口信息的对应关系,在所述OpenvSwitch虚拟交换机的数据包转发进程中创建所述数据包的接收端口和流向端口的步骤,包括:
从所述OpenvSwitch虚拟交换机的指定数据库中获取网桥配置信息及所述接收端口与所述流向端口信息的对应关系;所述接收端口与所述流向端口信息的对应关系包括各个数据包的接收端口信息和所述接收端口对应的流向端口信息;
根据所述网桥配置信息在所述OpenvSwitch虚拟交换机的数据包转发进程中创建网桥;
基于创建的所述网桥、所述接收端口信息和所述接收端口对应的流向端口信息,在所述OpenvSwitch虚拟交换机的数据包转发进程中创建所述数据包的接收端口和流向端口。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述OpenvSwitch虚拟交换机的指定数据库中未配置所述接收端口与所述流向端口信息的对应关系时,将所述数据包的五元组信息与预先配置的OpenFlow流表规则进行哈希匹配,并将所述数据包发送至相匹配的流向端口。
5.一种数据包转发装置,其特征在于,所述装置设置于OpenvSwitch虚拟交换机,所述装置包括:
数据包接收模块,用于通过所述OpenvSwitch虚拟交换机的接收端口接收网卡发送的数据包;
端口信息获取模块,用于从所述OpenvSwitch虚拟交换机的指定数据库中获取所述接收端口对应的流向端口信息;
数据包转发模块,用于基于所述流向端口信息将所述数据包发送至所述OpenvSwitch虚拟交换机的流向端口,以使所述OpenvSwitch虚拟交换机中的应用程序从所述流向端口获取所述数据包;其中,所述接收端口与所述流向端口信息的对应关系是预先在所述OpenvSwitch虚拟交换机的指定数据库中创建的;所述数据包的接收端口和流向端口是基于存储在所述OpenvSwitch虚拟交换机的指定数据库中的网桥配置信息、端口配置信息及所述接收端口与所述流向端口信息的对应关系,在所述OpenvSwitch虚拟交换机的数据包转发进程中预先创建的;
所述流向端口信息包括流向端口的标识信息;所述流向端口包括接收队列;
所述数据包转发模块,进一步用于将所述数据包发送至与所述流向端口的标识信息相对应的接收队列中,以使所述OpenvSwitch虚拟交换机中的应用程序从所述接收队列读取所述数据包。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
端口创建模块,用于基于所述接收端口与所述流向端口信息的对应关系,在所述OpenvSwitch虚拟交换机的数据包转发进程中创建所述数据包的接收端口和流向端口。
7.一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1-4任一项所述的方法。
8.一种计算机可读介质,其特征在于,所述计算机可读介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,所述计算机可执行指令促使所述处理器实现权利要求1-4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911256650.1A CN111064671B (zh) | 2019-12-09 | 2019-12-09 | 数据包转发方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911256650.1A CN111064671B (zh) | 2019-12-09 | 2019-12-09 | 数据包转发方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111064671A CN111064671A (zh) | 2020-04-24 |
CN111064671B true CN111064671B (zh) | 2022-05-06 |
Family
ID=70300187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911256650.1A Active CN111064671B (zh) | 2019-12-09 | 2019-12-09 | 数据包转发方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111064671B (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8644194B2 (en) * | 2010-10-15 | 2014-02-04 | International Business Machines Corporation | Virtual switching ports on high-bandwidth links |
CN102946354B (zh) * | 2012-11-15 | 2016-11-23 | 华为技术有限公司 | 一种报文转发的方法、装置及网络设备 |
CN103346981B (zh) * | 2013-06-28 | 2016-08-10 | 华为技术有限公司 | 虚拟交换方法、相关装置和计算机系统 |
CN105392171B (zh) * | 2015-10-29 | 2018-11-06 | 京信通信系统(中国)有限公司 | 一种报文转发方法及其转发设备 |
CN113162853A (zh) * | 2016-05-27 | 2021-07-23 | 华为技术有限公司 | 转发数据的方法和设备 |
CN108900384A (zh) * | 2018-07-20 | 2018-11-27 | 新华三云计算技术有限公司 | 网络流量监控方法、装置及系统、计算机可读存储介质 |
US11494212B2 (en) * | 2018-09-27 | 2022-11-08 | Intel Corporation | Technologies for adaptive platform resource assignment |
CN109379269A (zh) * | 2018-11-29 | 2019-02-22 | 南京中孚信息技术有限公司 | 虚拟交换设备数据转发方法、装置和计算机设备 |
-
2019
- 2019-12-09 CN CN201911256650.1A patent/CN111064671B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111064671A (zh) | 2020-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111131074B (zh) | 一种数据处理方法、装置、系统、服务器及可读存储介质 | |
CN110324210B (zh) | 基于icmp协议进行隐蔽信道通信的检测方法及装置 | |
US20170111259A1 (en) | Flow entry configuration method, apparatus, and system | |
WO2018023499A1 (zh) | 网络接口卡、计算设备以及数据包处理方法 | |
US8638793B1 (en) | Enhanced parsing and classification in a packet processor | |
WO2018023498A1 (zh) | 网络接口卡、计算设备以及数据包处理方法 | |
US11606448B2 (en) | Efficient capture and streaming of data packets | |
US11689501B2 (en) | Data transfer method and virtual switch | |
CN105474602A (zh) | 软件定义网络中识别攻击流的方法、装置以及设备 | |
CN112953949B (zh) | 一种网络报文的报文头处理方法、装置、设备及存储介质 | |
CN107294856B (zh) | 确定拓扑变化的方法、设备及系统 | |
WO2015161409A1 (zh) | 一种负载均衡的实现方法及设备、系统 | |
CN113783789A (zh) | 一种报文限速方法及装置 | |
CN111026324A (zh) | 转发表项的更新方法及装置 | |
US20190036827A1 (en) | Traffic control method and device in software defined network | |
CN111064671B (zh) | 数据包转发方法、装置及电子设备 | |
US11258702B2 (en) | Routing path analysis method and device | |
CN116016687B (zh) | 一种基于dpdk的报文分流方法及系统 | |
EP3012736A1 (en) | Data stream processing method, device and system | |
WO2015176212A1 (zh) | 一种基于tcam和fpga的报文处理方法及装置 | |
CN109995606B (zh) | 虚拟化深度包检测vDPI流量控制方法及网元设备 | |
CN109787922B (zh) | 一种获取队列长度的方法、设备及计算机可读存储介质 | |
WO2022100511A1 (zh) | 转发表项的处理方法和装置 | |
CN114301620B (zh) | 一种基于acl时间域的快速匹配方法 | |
CN109818882B (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 |