一种报文处理方法、装置、交换机设备及存储介质制造方法及图纸

技术编号:20627861 阅读:31 留言:0更新日期:2019-03-20 17:27
本发明专利技术实施例提供了一种报文处理方法、装置、交换机设备及存储介质,所述方法应用于虚拟交换机VSwitch中运行的第一线程,所述VSwitch中运行有至少两个线程,所述至少两个线程包括所述第一线程,所述方法包括:获取待处理的目标报文;基于所述目标报文携带的数据流标识信息,确定所述第一线程是否为所述目标报文的处理线程,其中,所述数据流标识信息用于标识所述目标报文所属的数据流,以区分不同数据流的报文;如果确定所述第一线程为所述目标报文的处理线程,对所述目标报文进行报文处理。通过本发明专利技术实施例提供的技术方案,可以保证同一数据流的多个报文由同一线程来处理,提高了数据处理效率。

A Message Processing Method, Device, Switch Equipment and Storage Media

The embodiment of the present invention provides a message processing method, device, switch device and storage medium. The method is applied to the first thread running in the VSwitch of a virtual switch. The VSwitch has at least two threads. The at least two threads include the first thread. The method includes: acquiring the target message to be processed; carrying the target message based on the said target message. The data flow identification information determines whether the first thread is the processing thread of the target message, in which the data flow identification information is used to identify the data flow to which the target message belongs in order to distinguish the messages of different data streams; if the first thread is determined to be the processing thread of the target message, the target message is processed. The technical scheme provided by the embodiment of the present invention can ensure that multiple messages of the same data stream are processed by the same thread and improve the data processing efficiency.

【技术实现步骤摘要】
一种报文处理方法、装置、交换机设备及存储介质
本专利技术涉及通信
,特别是涉及一种报文处理方法、装置、交换机设备及存储介质。
技术介绍
VSwitch(VirtualSwitch,虚拟交换机)工作在二层数据网络,通过软件方式实现物理交换机的二层(或部分三层)网络功能。VSwitch运行于宿主机中,用于实现报文的转发处理。具体的,VSwitch接收宿主机的物理网卡或安装在宿主机中的虚拟机转发的报文,并通过其自身中运行的线程对所接收到的报文进行封装处理,并将封装处理后的报文转发至作为接收方的目的虚拟机或者目的物理网卡中,其中,报文头相同的报文属于同一数据流。现有技术中,物理网卡或虚拟机分发报文时,可能将属于同一数据流的多个报文分配至VSwitch中的不同线程。当属于同一数据流的多个报文被分配至不同的线程时,不利于数据转发过程中的数据命中等操作,影响数据处理速率。
技术实现思路
本专利技术实施例的目的在于提供一种报文处理方法、装置、交换机设备及存储介质,有效提高数据处理效率。具体技术方案如下:第一方面,本专利技术实施例提供了一种报文处理方法,应用于虚拟交换机VSwitch中运行的第一线程,所述VSwitch中运行有至少两个线程,所述至少两个线程包括所述第一线程,所述方法包括:获取待处理的目标报文;基于所述目标报文携带的数据流标识信息,确定所述第一线程是否为所述目标报文的处理线程,其中,所述数据流标识信息用于标识所述目标报文所属的数据流,以区分不同数据流的报文;如果确定所述第一线程为所述目标报文的处理线程,对所述目标报文进行报文处理。可选的,在所述基于所述目标报文携带的数据流标识信息,确定所述第一线程是否为所述目标报文的处理线程的步骤之后,所述方法还包括:如果确定所述第一线程不为所述目标报文的处理线程,将所述目标报文存入所述目标报文的处理线程对应的缓存队列,以使得所述目标报文的处理线程对所述目标报文进行报文处理,其中,所述目标报文的处理线程为所述至少两个线程中除所述第一线程以外的线程。可选的,不同的线程对应不同的哈希值;所述基于所述目标报文携带的数据流标识信息,确定所述第一线程是否为所述目标报文的处理线程的步骤,包括:计算所述目标报文携带的数据流标识信息的哈希值;基于预设的线程与哈希值的对应关系,确定所述目标报文携带的数据流标识信息的哈希值是否为所述第一线程对应的哈希值;如果所述目标报文携带的数据流标识信息的哈希值为所述第一线程对应的哈希值,确定所述第一线程为所述目标报文的处理线程。可选的,在所述获取待处理的目标报文的步骤之后,在所述基于所述目标报文携带的数据流标识信息,确定所述第一线程是否为所述目标报文的处理线程的步骤之前,所述方法还包括:确定所述目标报文是否为所述至少两个线程中所述第一线程以外的线程所存入所述第一线程对应的缓存队列中的报文;如果所述目标报文为所述至少两个线程中所述第一线程以外的线程所存入所述第一线程对应的缓存队列中的报文,对所述目标报文进行报文处理;所述基于所述目标报文携带的数据流标识信息,确定所述第一线程是否为所述目标报文的处理线程的步骤,包括:如果所述目标报文不为所述至少两个线程中所述第一线程以外的线程所存入所述第一线程对应的缓存队列中的报文,基于所述目标报文携带的数据流标识信息,确定所述第一线程是否为所述目标报文的处理线程。可选的,所述数据流标识信息包括:源IP地址和目的IP地址;或者,所述数据流标识信息包括:源IP地址,源端口,目的IP地址,目的端口,和传输层协议。第二方面,本专利技术实施例还提供了一种报文处理装置,应用于虚拟交换机VSwitch中运行的第一线程,所述VSwitch中运行有至少两个线程,所述至少两个线程包括所述第一线程,所述装置包括:报文获取模块,用于获取待处理的目标报文;线程确定模块,用于基于所述目标报文携带的数据流标识信息,确定所述第一线程是否为所述目标报文的处理线程,其中,所述数据流标识信息用于标识所述目标报文所属的数据流,以区分不同数据流的报文;报文处理模块,用于如果所述线程确定模块确定所述第一线程为所述目标报文的处理线程,对所述目标报文进行报文处理。可选的,所述装置还包括:报文存放模块,用于如果所述线程确定模块确定所述第一线程不为所述目标报文的处理线程,将所述目标报文存入所述目标报文的处理线程对应的缓存队列,以使得所述目标报文的处理线程对所述目标报文进行报文处理,其中,所述目标报文的处理线程为所述至少两个线程中除所述第一线程以外的线程。可选的,不同的线程对应不同的哈希值;所述线程确定模块,具体用于:计算所述目标报文携带的数据流标识信息的哈希值;基于预设的线程与哈希值的对应关系,确定所述目标报文携带的数据流标识信息的哈希值是否为所述第一线程对应的哈希值;如果所述目标报文携带的数据流标识信息的哈希值为所述第一线程对应的哈希值,确定所述第一线程为所述目标报文的处理线程。可选的,所述装置还包括:报文确定模块,用于在所述报文获取模块获取待处理的目标报文之后,在所述线程确定模块基于所述目标报文携带的数据流标识信息,确定所述第一线程是否为所述目标报文的处理线程之前,确定所述目标报文是否为所述至少两个线程中所述第一线程以外的线程所存入所述第一线程对应的缓存队列中的报文;如果所述目标报文为所述至少两个线程中所述第一线程以外的线程所存入所述第一线程对应的缓存队列中的报文,触发所述报文处理模块对所述目标报文进行报文处理;如果所述目标报文不为所述至少两个线程中所述第一线程以外的线程所存入所述第一线程对应的缓存队列中的报文,触发所述线程确定模块基于所述目标报文携带的数据流标识信息,确定所述第一线程是否为所述目标报文的处理线程。可选的,所述数据流标识信息包括:源IP地址和目的IP地址;或者,所述数据流标识信息包括:源IP地址,源端口,目的IP地址,目的端口,和传输层协议。第三方面,本专利技术实施例提供了一种交换机设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现了第一方面所述的报文处理方法。第四方面,本专利技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现了第一方面所述的报文处理方法。本专利技术实施例中,通过虚拟交换机VSwitch中运行的第一线程获取目标报文;基于目标报文携带的数据流标识信息,确定第一线程是否为目标报文的处理线程;其中,数据流标识信息用于标识目标报文所属的数据流,以区分不同数据流的报文;如果确定第一线程为目标报文的处理线程,则第一线程对目标报文进行报文处理。由于属于同一数据流的报文携带的数据流标识信息相同,因此,通过本专利技术实施例提供的方案,处理同一数据流的报文的线程相同,从而可以避免将属于同一数据流的多个报文分配至VSwitch中的不同线程,即可以保证属于同一数据流的多个报文由同一线程来处理,提高了数据处理效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本本文档来自技高网...

【技术保护点】
1.一种报文处理方法,其特征在于,应用于虚拟交换机VSwitch中运行的第一线程,所述VSwitch中运行有至少两个线程,所述至少两个线程包括所述第一线程,所述方法包括:获取待处理的目标报文;基于所述目标报文携带的数据流标识信息,确定所述第一线程是否为所述目标报文的处理线程,其中,所述数据流标识信息用于标识所述目标报文所属的数据流,以区分不同数据流的报文;如果确定所述第一线程为所述目标报文的处理线程,对所述目标报文进行报文处理。

【技术特征摘要】
1.一种报文处理方法,其特征在于,应用于虚拟交换机VSwitch中运行的第一线程,所述VSwitch中运行有至少两个线程,所述至少两个线程包括所述第一线程,所述方法包括:获取待处理的目标报文;基于所述目标报文携带的数据流标识信息,确定所述第一线程是否为所述目标报文的处理线程,其中,所述数据流标识信息用于标识所述目标报文所属的数据流,以区分不同数据流的报文;如果确定所述第一线程为所述目标报文的处理线程,对所述目标报文进行报文处理。2.根据权利要求1所述的方法,其特征在于,在所述基于所述目标报文携带的数据流标识信息,确定所述第一线程是否为所述目标报文的处理线程的步骤之后,所述方法还包括:如果确定所述第一线程不为所述目标报文的处理线程,将所述目标报文存入所述目标报文的处理线程对应的缓存队列,以使得所述目标报文的处理线程对所述目标报文进行报文处理,其中,所述目标报文的处理线程为所述至少两个线程中除所述第一线程以外的线程。3.根据权利要求1所述的方法,其特征在于,不同的线程对应不同的哈希值;所述基于所述目标报文携带的数据流标识信息,确定所述第一线程是否为所述目标报文的处理线程的步骤,包括:计算所述目标报文携带的数据流标识信息的哈希值;基于预设的线程与哈希值的对应关系,确定所述目标报文携带的数据流标识信息的哈希值是否为所述第一线程对应的哈希值;如果所述目标报文携带的数据流标识信息的哈希值为所述第一线程对应的哈希值,确定所述第一线程为所述目标报文的处理线程。4.根据权利要求1所述的方法,其特征在于,在所述获取待处理的目标报文的步骤之后,在所述基于所述目标报文携带的数据流标识信息,确定所述第一线程是否为所述目标报文的处理线程的步骤之前,所述方法还包括:确定所述目标报文是否为所述至少两个线程中所述第一线程以外的线程所存入所述第一线程对应的缓存队列中的报文;如果所述目标报文为所述至少两个线程中所述第一线程以外的线程所存入所述第一线程对应的缓存队列中的报文,对所述目标报文进行报文处理;所述基于所述目标报文携带的数据流标识信息,确定所述第一线程是否为所述目标报文的处理线程的步骤,包括:如果所述目标报文不为所述至少两个线程中所述第一线程以外的线程所存入所述第一线程对应的缓存队列中的报文,基于所述目标报文携带的数据流标识信息,确定所述第一线程是否为所述目标报文的处理线程。5.根据权利要求1至4任一项所述的方法,其特征在于,所述数据流标识信息包括:源IP地址和目的IP地址;或者,所述数据流标识信息包括:源IP地址,源端口,目的IP地址,目的端口,和传输层协议。6.一种报文处理装置,其特征在于,应用于虚拟交换机VSwitch中运行的第一线程,所述VSwitch中运行有至少两个线程,所述至少两个线程包括所述...

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

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

1