CN116074250B - 流表处理方法、系统、设备和存储介质 - Google Patents
流表处理方法、系统、设备和存储介质 Download PDFInfo
- Publication number
- CN116074250B CN116074250B CN202310195735.3A CN202310195735A CN116074250B CN 116074250 B CN116074250 B CN 116074250B CN 202310195735 A CN202310195735 A CN 202310195735A CN 116074250 B CN116074250 B CN 116074250B
- Authority
- CN
- China
- Prior art keywords
- flow table
- added
- target address
- flow
- item
- 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
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种流表处理方法、系统、设备和存储介质,该方法包括:确定添加消息中的待添加流表项对应的目标地址。若第一设备中第一流表的目标地址上没有存储流表项,则可以利用第一设备和第二设备之间的通信连接将待添加流表项写入第一流表的目标地址中。否则可以通过接口调用的方式将待添加流表项写入第三设备的第二流表中,避免出现写入冲突。其中,第一设备和第三设备提供核心网的用户面功能,第二设备提供控制面功能。按照上述的方式,当存在大量待添加流表项时,相比于通过接口调用方式直接大量写入流表项,引入通信连接进行流表项的写入能够减少调用第三设备接口写入流表项的频次,以提高流表项的写入速度也即是流表的获取速度。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种流表处理方法、系统、设备和存储介质。
背景技术
随着第五代移动通信技术(5th Generation Mobile CommunicationTechnology,简称5G)的不断发展,5G通信网络可以在满足低时延、高吞吐、高并发等要求的前提下应用到多种场景从而为用户提供多种服务。比如直播服务、扩展现实(ExtendedReality,简称XR)服务、自动驾驶服务、对工业流水线上智能制造装备的控制服务等等。
5G通信网络中的网络设备可以利用接收到的流表中记录的数据处理方式对用户设备(User Equipment,简称UE)产生的数据包进行转发或处理,以使UE能够正常使用上述各种服务。则基于上述描述,如何提高流表的获取速度就成为一个亟待解决的问题。
发明内容
有鉴于此,本发明实施例提供一种流表处理方法、系统、设备和存储介质,用以提高流表的获取速度。
第一方面,本发明实施例提供一种流表处理方法,应用于用于实现核心网控制面功能的第二设备,包括:
响应于添加消息的接收,确定所述添加消息中待添加流表项对应的第一目标地址;
若第一流表的第一目标地址中未存储有流表项,则利用第一设备与所述第二设备之间的通信连接,将所述待添加流表项写入所述第一流表的第一目标地址,所述第一流表存储于所述第一设备中;
若所述第一流表的第一目标地址中存储有流表项,则调用第三设备的接口将所述待添加流表项写入所述第三设备的第二流表,所述第一设备和所述第三设备用于实现所述核心网的用户面功能。
第二方面,本发明实施例提供一种流表处理方法,应用于用于实现核心网的控制面功能的第二设备,所述核心网部署于专用网络中,包括:
响应于添加消息的接收,确定所述添加消息中待添加流表项对应的第一目标地址;
若第一流表的第一目标地址中未存储有流表项,则利用第一设备与所述第二设备之间的通信连接,将所述待添加流表项写入所述第一流表的第一目标地址,所述第一流表存储于所述第一设备中;
若所述第一流表的第一目标地址中存储有流表项,则调用第三设备的接口将所述待添加流表项写入所述第三设备的第二流表,所述第一设备和所述第三设备用于实现核心网的用户面功能。
第三方面,本发明实施例提供一种流表处理系统,包括:第二设备以及与所述第二设备通信连接的第一设备、第三设备;
所述第二设备用以实现核心网的控制面功能,所述第一设备和所述第三设备用以实现所述核心网的用户面功能;
所述第二设备,用于响应于添加消息的接收,确定所述添加消息中待添加流表项对应的第一目标地址;
若第一流表的第一目标地址中未存储有流表项,则利用第一设备与第二设备之间的通信连接,将所述待添加流表项写入所述第一流表的第一目标地址,所述第一流表存储于所述第一设备中;
若所述第一流表的第一目标地址中存储有流表项,则调用第三设备的接口,将所述待添加流表项写入所述第三设备的第二流表。
第四方面,本发明实施例提供一种电子设备,包括处理器和存储器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现上述第一方面或第二方面中的流表处理方法。该电子设备还可以包括通信接口,用于与其他设备或通信系统通信。
第五方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现如上述第一方面或第二方面中的流表处理方法。
本发明实施例提供的流表处理方法中,第二设备响应于添加消息的接收,获取该消息中的待添加流表项及其对应的目标地址。然后,确定第一设备中第一流表的目标地址上是否存储有流表项,若没有存储流表项,则可以直接利用第一设备和第二设备之间的通信连接将待添加流表项写入第一流表的目标地址。若存储有流表项,此时,直接将待添加流表项写入第一流表会发生写入冲突,则可以通过接口调用的方式将待添加流表项写入第三设备的第二流表。其中,第二设备用于实现核心网的控制面功能,第一设备和第三设备用于实现核心网的用户面功能。
按照上述的方式,不发生写入冲突的流表项可以借助通信连接写入第一流表,发生写入冲突的流表项可以通过接口调用写入第二流表。当有大量待添加流表项时,由于通信连接写入速度快的特性,因此,相比于直接通过接口调用方式进行大量写入,借助通信连接将一部分流表项可以写入流表能够减少调用第三设备接口写入流表项的频次,能够整体提高流表项整体的写入速度。又由于流表项的写入是受第二设备的控制的,则流表项的写入过程也可以认为是使第一设备或者第三设备获取包含流表项的流表的过程,因此,上述提高流表项的写入速度实际上也是提高流表的获取速度。同时,大量待添加流表项可以分别写入不同的流表,这也能够改善流表项的写入冲突问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种流表处理系统的结构示意图;
图2为本发明实施例提供的一种流表处理方法的流程图;
图3为本发明实施例提供的流表处理系统应用在5G通信网络中的结构示意图;
图4为本发明实施例提供的另一种流表处理方法的流程图;
图5为本发明实施例提供的又一种流表处理方法的流程图;
图6为本发明实施例提供的一种查询表格和链表的关系示意图;
图7为本发明实施例提供的又一种流表处理方法的流程图;
图8为本发明实施例提供的流表项添加或者删除的执行示意图;
图9为本发明实施例提供的又一种流表处理方法的流程图;
图10为本发明实施例提供的流表处理过程中交互界面的示意图;
图11为本发明实施例提供的又一种流表处理系统的结构示意图;
图12为将本发明实施例提供的流表处理方法和系统应用到5G通信网络中的示意图;
图13为本发明实施例提供的一种电子设备的结构示意图;
图14为本发明实施例提供的另一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于识别”。类似地,取决于语境,短语“如果确定”或“如果识别(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当识别(陈述的条件或事件)时”或“响应于识别(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
下面可以结合附图对本发明的一些实施方式作详细说明。在各实施例之间不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
在对本发明下述各实施例进行详细描述之前,可以先对本下述各实施例涉及到的相关概念进行解释:
流表:数据包的处理规则和转发规则的集合。其中,数据包可以是基于OpenFlow协议以流形式传输的。
流表项:流表中记录的一条规则。一个流表项具体又包括包头和动作。其中,包头可以包括数据包的源地址、目的地址、源端口号、目的端口号、协议类型等至少一种属性信息。动作可以包括数据包的处理方式,处理方式具体可以包括转发(forward)、丢弃(drop)、修改数据包内容(modify-field)、将数据包加入缓存队列(enqueue)等等。
本发明各实施例中对流表的处理方式可以包括流表项的添加、删除和查询等等,上述各种处理过程可以结合本发明下述各实施例中的描述进行理解。并且为了便于理解,下面可以先从系统的角度概述流表的处理过程。
则图1为本发明实施例提供的一种流表处理系统的结构示意图。如图1所示,该系统可以包括第一设备、第二设备以及第三设备
其中,对流表项的添加和删除可以由系统中的第二设备完成,对流表项的查询可以由系统中的第三设备执行。
其中,第二设备可以分别与第一设备和第三设备之间建立通信连接。第一设备可以与第三设备之间建立通信连接。可选地,第二设备可以以集中部署的方式部署在网络中心,第二设备和第三设备可以以分布部署的方式部署在网络边缘,可选地,第二设备和第三设备可以是一一对应或多对一的关系。
可选地,第三设备具体可以包括可编程专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)。后续各实施例中第三设备所执行的流程均可以由上述的ASIC执行。可选地,可编程ASIC可以包括多种可编程逻辑器件(Programmable LogicDevice,简称PLD)。可编程ASIC还可以包括静态随机存取存储器(Static Random-AccessMemory,简称SRAM)。
可选地,在5G通信网络中,第一设备和第三设备可以共同用于提供5G核心网的用户面功能,二者可以共同构成用户面设备。该用户面设备可以认为是5G核心网中表现为硬件形式的用户面功能网元(User Plane Function,简称UPF)。第二设备可以用于提供5G核心网的控制面功能,也即是控制面设备。该控制面设备可以认为是5G核心网中表现为硬件形式的、与UPF网元有数据交互的任一控制面功能网元,比如接入和移动管理功能(Accessand Mobility Management Function,简称AMF)网元、会话管理功能(Session ManagementFunction,简称SMF)网元等等。
基于上述描述,可选地,对于流表项的添加过程:
流表处理系统中的第二设备可以接收添加消息,并从此添加消息中解析出待添加流表项。之后,再判断此待添加流表项的写入位置,以采用相应的写入方式完成流表项的写入。具体地,第二设备可以判断将待添加流表项写入第一设备的第一流表中是否存在写入冲突。若不存在冲突,则可以采用自身与第一设备之间的通信连接直接将待添加流表项写入第一流表。若存在冲突,则可以调用第三设备的接口,将待添加流表项写入第三设备的第二流表。其中,添加消息可以由UE生成,而添加消息的生成、写入冲突的判断以及流表项的写入过程可以参见下述各实施例中的相关描述。可选地,第三设备具体可以包括可编程ASIC,该可编程ASIC又包括SRAM,则调用的接口具体可以为可编程ASIC的接口,第二流表具体可以存储于可编程ASIC的SRAM中。
需要说明的有,由于流表项是受第二设备的控制写入第一设备或者第三设备中的,因此,上述写入流表项的过程也可以认为是使第一设备或者第三设备获取到写入流表项的流表的过程,也可以认为是将流表由第二设备下发至第一设备或者第三设备的过程。并且在某一时刻,第二设备有可能会接收到大量的添加消息,此时,第二设备依旧可以按照上述方式快速完成流表项的大量写入,实现大量流表的快速下发,使得系统对添加消息有高并发处理能力。而大量待添加消息的生成过程也可以参见下述各实施例中的相关描述。
本实施例中,根据判断结果,第二设备可以通过接口调用将待添加流表项写入第二流表或者可以借助通信连接将待添加流表项写入第一流表。由于通信连接写入速度快的特性,因此,相比于直接通过接口调用方式进行大量写入,借助通信连接将一部分流表项可以写入流表能够减少调用第三设备接口写入流表项的频次,能够整体提高流表项整体的写入速度,也即是能够提高第二设备的流表下发速度,提高第一设备和第三设备获取流表的速度,使得流表处理系统对添加消息有高并发处理能力。
另一方面,在实际中,第三设备的接口每秒支持的流表下发速率是有限的,因此,当待添加流表项的数量超过接口支持的最大流表下发速率时,通过接口调用的方式直接同样不能实现流表的快速下发。而采用图1所示实施例提供的系统,两种写入方式的结合使用可以提高流表处理系统支持的最大流表下发速率。同时,大量的待添加流表项可以分别写入不同的流表,这也能够改善流表项的写入冲突问题。
可选地,对于流表项的删除过程:
第二设备可以接收包含待删除流表项的删除消息。第二设备可以在第一流表和第二流表中进行查询。若在任一流表中查询到包含待删除流表项,则将此待删除流表项从相应流表中删除。可选地,删除消息可以由UE生成,也可以由第一设备生成,而删除消息的具体生成方式以及待删除流表项的具体删除过程可以参见下述相关实施例中的描述。
本实施例中,与流表项写入类似的,第二设备同样可以借助接口调用或者通信连接删除流表中的待删除流表项。当有大量需要删除的流表项时,使用通信连接同样也能够提高流表项的删除速度,也即是使系统对删除消息有高并发处理能力。
可选地,对于流表项的查询过程:
第三设备可以接收UE产生的待处理数据包,之后,可以根据待处理数据包中的属性信息在流表中进行查询。若在流表中查询到某一流表项的包头与待处理数据包的属性信息相同,则可以根据查询到的包头对应的动作对此待处理数据包进行处理,其中,查询到的包头及其对应的动作可以构成流表中的一个流表项。并且第三设备可以先查询第二设备下发到本地的第二流表,再查询第一设备中的第一流表。具体待处理数据包的生成过程以及流表项的查询过程可以参见下述相关实施例中的描述。
本实施例中,第三设备先查询本地的流表再查询外部的流表,以根据查询到的流表项中包含的动作,对待处理数据包进行处理。由于待处理数据包是第三设备接收到的,因此这种先本地查询再外部查询的方式更能够提高查询效率。
在从流表处理系统角度进行概括描述后,下面还可以从方法角度对流表项的写入过程进行详细描述。图2为本发明实施例提供的一种流表处理方法的流程图。本发明实施例提供的该流表处理方法可以由图1所示流表处理系统中的第二设备执行。如图2所示,该方法可以包括如下步骤:
S101,响应于添加消息的接收,确定添加消息中待添加流表项对应的第一目标地址。
S102,若第一流表的第一目标地址中未存储有流表项,则利用第一设备与第二设备之间的通信连接,将待添加流表项写入第一流表的第一目标地址,第一流表存储于第一设备中。
S103,若第一流表的第一目标地址中存储有流表项,则调用第三设备的接口将待添加流表项写入第三设备的第二流表。
第一设备可以接收并从添加消息中解析出待添加表项,从而进一步得到该待添加表项对应的第一目标地址。第一目标地址即为第二设备在第一流表中确定出的可能能够写入待添加流表项的一个地址。
一种情况,若第一流表的第一目标地址中存储有流表项,此时,如果还将待添加流表项写入该第一目标地址,则会造成流表项的写入冲突。因此,第二设备可以调用第三设备的接口,将待添加流表项写入第三设备的第二流表。另一种情况,若第一流表的第一目标地址中未存储有流表项,此时,待添加流表项的写入不会造成写入冲突,则第二设备可以直接根据自身与第一设备之间的通信连接,将待添加流表项写入第一设备的第一流表。
对于是否会发生写入冲突的判断过程,一种可选地方式,第二设备可以借助通信连接访问第一设备以得到第一流表,并顺序将第一流表中的每个地址确定为第一目标地址,以顺序利用每个第一目标地址确定是否会发生写入冲突。
上述过程中,第二设备实际上是通过线性查询的方式顺序地将第一流表中的每个地址确定为第一目标地址,并依次判断该地址是否能够写入待添加流表项。如果会发送写入冲突再将待添加流表项写入第二流表。因此,两个流表的共同使用能够改善流表项的写入冲突问题。
并且根据图1所示实施例中的描述可知,在某一时刻,第二设备还可能接收到大量的添加消息,此时,第二设备执行上述步骤也能够快速完成流表项的大量写入,即实现将大量流表快速下发至第一设备或者第三设备,使得第二设备对添加消息有高并发处理能力。
而对于大量添加消息的生成,可选地,其可以由不同的UE在产生访问动作时生成。访问动作具体可以是访问5G通信网络中的一设备。举例来说,该被访问的设备比如可以是5G通信网络中由某一网站提供方维护的服务器,该服务器可以具体部署于5G通信网络的数据网(Data Network,简称DN)中。当产生突发事件时,则可能会有大量UE在该同一时刻访问该网站对应的服务器。此时,第二设备则可以接收到由不同UE产生的、大量的待添加消息,并按照上述方式快速进行流表项的写入以及流表的下发,从而使UE在该网站的服务器上成功注册。之后,第一设备和第三设备便可以利用第二设备下发的流表使UE正常访问该网站。在此种情况下,承接图1所示实施例中的描述,第一设备和第三设备可以构成5G核心网中的用户面设备即UPF网元,第二设备可以是5G核心网的控制面设备,即5G核心网中与UPF网元具有数据交互的任一控制面功能网元。则上述举例的场景可以结合图3理解,其中,5G通信网络中UE和核心网之间的接入网未示出。
本实施例中,响应于添加消息的接收,获取该消息中的待添加流表项及其对应的目标地址。然后,确定第一设备中第一流表的目标地址上是否存储有流表项,若没有存储流表项,则可以直接利用第一设备和第二设备之间的通信连接将待添加流表项写入第一流表的目标地址中,以得到流表。若存储有流表项,此时,直接将待添加流表项写入第一流表会发生写入冲突,则可以通过接口调用的方式将待添加流表项写入第三设备的第二流表中,以得到流表。
按照上述的方式,不发生写入冲突的流表项可以借助通信连接写入第一流表,发生写入冲突的流表项可以通过接口调用的方式写入第二流表。当有大量待添加流表项时,由于通信连接写入速度快的特性,因此,相比于直接通过接口调用方式进行大量写入,借助通信连接将一部分流表项可以写入流表能够减少调用第三设备接口写入流表项的频次,从而能够提高流表项整体的写入速度。又由于流表项的写入是否是受第二设备的控制的,则流表项的写入过程也可以认为是将包含流表项的流表由第二设备下发至第一设备或者第三设备的过程,也可以认为是第一设备或第三设备获取到流表的过程,因此,上述提高流表项的写入速度实际上也即是提高第二设备流表的下发速度,以及第一设备或第三设备的流表获取过程。同时,大量待添加流表项可以分别写入不同的流表,这也能够改善流表项的写入冲突问题。
根据图2所示实施例可知,第二设备需要判断第一流表中的第一目标地址上是否已经存储有流表项,则一种可选地方式,第二设备可以直接访问第一设备以得到第一设备本地的第一流表,并在此第一流表中进行查询以实现判断。为了进一步提高判断速度,另一种可选地方式,第二设备还可以在本地进行查询来实现上述判断过程。则图4为本发明实施例提供的另一种流表处理方法的流程图。如图4所示,该方法可以包括如下步骤:
S201,响应于添加消息的接收,确定添加消息中待添加流表项对应的第一目标地址。
正如图2所示实施例中描述的,添加消息可以由UE在产生访问动作时生成,由于添加消息中包含的待添加流表项最终能够使UE注册到服务器上,因此,UE产生的访问动作也可以认为是UE对服务器的注册动作。因此,第二设备可以是响应于UE的注册,接收到添加消息,并通过解析的方式从添加消息中获取到待添加流表项。此时,第二设备可以将第一流表中的各地址确定为第一目标地址,具体内容可以参见图2所示实施例中相关步骤的具体描述,在此不再赘述。
S202,若第二设备中查询表格的第一目标地址上存储有数据,则确定第一流表的第一目标地址中存储有流表项,其中,第一流表存储于第一设备中。
S203,调用第三设备的接口将待添加流表项写入第三设备的第二流表。
S204,若第二设备中查询表格的第一目标地址上未存储有数据,则确定第一流表的第一目标地址中未存储有流表项。
S205,利用第一设备与第二设备之间的通信连接,将待添加流表项写入第一流表的第一目标地址。
当第二设备得到一条最新的待添加流表项时,第二设备可以通过查询本地的表格即可确定出第一流表中的第一目标地址是否存储有数据。相比于借助通信连接访问第一设备以得到第一设备本地的第一流表,再利用此第一流表进行判断,直接使用第二设备本地的查询表格能够提高判断速度。其中,查询表格可以在流表项的写入过程中同时生成。
一种可选地表格生成方式,对于在历史时段内得到的历史流表项,第二设备可以按照图2所示实施例的方式将其写入第一流表,在写入的同时,第二设备还可以将历史流表项写入本地的一个表格即查询表格中。此时,第二设备本地的查询表格与第一设备本地的第一流表存储有相同的内容,即该表格和第一流表中都记录的是包含包头和动作的流表项,所以查询表格本质上也是一个流表。
另一种可选地表格生成方式,第二设备可以按照图2所示实施例的方式将历史流表项写入第一流表,在写入的同时,第二设备还可以将历史流表项中的包头写入本地的一个表格中即查询表格。此时,第二设备本地的查询表格与第一流表在相同的地址上存储有相同的包头。此种方式,由于本地的查询表格中包含的是历史流表项的包头部分,查询表格中的数据量更少,因此,第二设备通过查询本地的、小数据量的查询表格来判断第一流表中的第一目标地址上是否存储有数据,判断速度能够进一步提高。
其中,按照上述流程写入第一流表的流表项也要同时写入查询表格中。并且根据查询表格的生成方式,需要将整条流表项或者流表项的包头写入查询表格中。
另外,上述步骤S203和步骤S205的具体实现过程可以参见图2所示实施例中相关步骤的具体描述,在此不再赘述。
本实施例中,第二设备在得到待添加流表项后,通过本地存储的查询表格直接即可直接判断出是否能将待添加流表项写入第一设备的第一流表中,而无需通过通信连接实时访问外部的第一设备进行判断,从而减小了判断过程中所需的通信开销,提高判断速度并最终提高第二设备的流表下发速度,也即是第一设备和第三设备的流表获取速度。另外,本实施例中未详细描述的内容以及所能达到的技术效果可以参见上述实施例中的描述,在此不再赘述。
上述图2所示的实施例中,第二设备可以通过线性查询的方式判断将待添加流表项写入第一设备的第一流表中是否存在写入冲突。按照此种方式,第二设备可以将第一流表中的至少一个地址作为第一目标地址进行至少一次判断,才能确定待添加流表项是否存在写入冲突。最复杂的情况,第二设备可以对第一流表中的每个地址进行一次判断才能确定是存在写入冲突。
为了提高判断的速度,可选地,第二设备还可以借助哈希函数实现是否写入冲突的判断,即第二设备在获取到待添加流表项后,可以对其中的包头进行哈希计算并将哈希计算结果确定为第一目标地址,以在第一流表中确定是否存在写入冲突。此时,相比于上述线性查询的方式,借助哈希函数,第二设备判断一次即可确定是否存在写入冲突。
另外,本实施例中使用的哈希函数可以是已知的任一种函数,并且使用的哈希函数需要满足以下条件:
1、对任意key1,key2,如果key1= key2,那么Hash(key1)= Hash(key2)
2、对任意key,有1≤Hash(key) ≤N
3、对任意key1,key2,如果key1和key2不同,那么Hash(key1)=Hash(key2)的概率趋近于1/N
其中,key表示待添加流表项的包头, Hash(key)表示包头的哈希计算结果,N表示使用哈希函数计算后所能得到的最大哈希计算结果。
在实际中,由于哈希计算实际上是一种压缩映射,因此,通过哈希计算后,不同的输入可能会得到相同的哈希计算结果,此时也即是发生哈希冲突。此时,为了减少出现哈希冲突的可能性,以使得更多的待添加流表项借助通信连接写入第一流表,则图5为本发明实施例提供的又一种流表处理方法的流程图。如图5所示,该方法可以包括如下步骤:
S301,响应于添加消息的接收,确定添加消息中待添加流表项。
S302, 对待添加流表项的包头进行哈希计算,将哈希计算结果确定为第一目标地址。
S303,若第一流表的第一目标地址中未存储有流表项,则利用第一设备与第二设备之间的通信连接,将待添加流表项写入第一流表的第一目标地址,第一流表存储于第一设备中。
上述步骤S301~步骤S303的具体实现过程可以参见上述各实施例中相关步骤的具体描述,在此不再赘述。
S304,若第一流表的第一目标地址上存储有流表项,则按照预设步长确定第一目标地址对应的第一关联地址,第一关联地址与第一目标地址之间的间隔小于或者等于预设阈值。
S305,若第一流表的第一关联地址上存储有流表项,则调用第三设备的接口将待添加流表项写入第二流表。
在步骤S303的情况下没有发生哈希冲突,则可以直接通过通信连接的方式实现流表项的快速写入。
在步骤S304的情况下发生了哈希冲突,此时,第二设备可以进一步按照预设步长K确定第一目标地址对应的第一关联地址。其中,第一关联地址的数量可以是至少一个,并且第一关联地址与第一目标地址之间的间隔小于或等于预设阈值thre。预设步长为正整数,可选地,预设步长最小可以为1。此时,第一关联地址可以认为是以第一目标地址为中心,预设阈值thre为边界所构成的一个连续的地址段。但需要说明的有,此地址段内不包含此第一目标地址。在实际中,一种更常见的设置方式是:将第一目标地址之后的至少一个地址设置为第一关联地址。可选地,预设步长也可以大于1,此时,在第一关联地址即为第一目标地址为中心,预设阈值thre为边界所构成的间断的地址集合,该集合中相邻地址之间的间隔即为上述的预设步长。
之后,第二设备可以按照线性查询的方式,依次确定第一关联地址上是否存储有流表项。若第一关联地址上未存储有流表项,则第二设备可以通过通信连接的方式,将待添加流表项写入第一流表中第一目标地址对应的的第一关联地址上。若第一关联地址和第一目标关联地址上都存储有流表项,表明待添加流表项无法写入第一流表,则第二设备可以调用第三设备的接口将待添加流表项写入第二流表。
根据上述描述可知,关联地址的使用可以使更多的流表项借助通信连接写入第一流表,提高流表项的写入速度也即是提高流表的下发速度。并且在实际中,通过最大哈希结果N和预设阈值thre的合理设置,能够最大限度地减小哈希冲突的出现几率,使得更多流表项都通过通信连接写入第一流表中。其中,N越大、thre越大,出现哈希冲突的几率越小。
则当出现大量的待添加流表项时,借助合适的N和thre,能够使绝大部分的待添加流表项不会发生哈希冲突,则第二设备可以借助通信连接将其写入第一设备的第一流表中;而少部分待添加会发生哈希冲突,第二设备通过调用第三设备的接口将其写入第三设备的第二流表中。由于大部分待添加流表都是借助通信连接写入的,因此,能够减少调用第三设备接口实现流表项写入的频次,保证整体的流表项的写入速度即保证流表的下发速度。
本实施例中,第二设备可以通过哈希计算得到待添加流表项的第一目标地址,之后,先判断待添加流表项能否写入第一目标地址中,若不能则进一步判断待添加流表项是否能够写入第一目标地址对应的第一关联地址中。对于写入第一关联地址或者第一目标地址的待添加流表项,则第二设备都是借助通信连接实现写入的。对于不能写入第一关联地址以及第一目标地址的待添加流表项,第二设备可以将待添加流表项写入第三设备中的第二流表。
也即是在本实施例中,第二设备通过1次哈希计算和thre次查询即可快速确定待添加流表项的写入位置,同时判断过程是借助第二设备本地存储的查询表格实现的,无需通过通信连接实时访问外部的第一设备进行判断,减小了判断过程中所需的通信开销,因此,能够提高第二设备的流表下发速度,以及第一设备和第三设备的流表获取速度。
上述过程中,第二设备可以通过多次判断(判断能否写入第一目标地址以及判断能够写入第一关联地址)来确定待添加流表项的写入位置。而对于多次判断的具体实现,可选地,第二设备可以访问外部的第一设备中的第一流表来实现,也可以使用本地存储的查询表格实现。根据图4所示实施例中的描述可知,第二设备使用本地存储的查询表格,由于无需实时访问外部的第一设备,因此能够具有更快的判断速度。可选地,查询表格的生成方式以及存储内容也可以参见图4所示实施例中的相关描述,在此不再赘述。
在步骤S305完成待添加流表项的写入之后,可选地,第二设备还可以执行以下步骤:若第一流表的第一目标地址和第一关联地址中存储有流表项,则以查询表格中的第一目标地址为表头,生成查询表格中第一目标地址对应的链表。后续第二设备在进行流表项删除时,可以通过查询此链表来完成流表项的删除。其中,查询表格和查询表格中各地址对应的链表可以共同构成邻接表。可选地,第二设备可以将待添加流表项写入此链表中,此时,此链表的本质还是流表。可选地,第二设备还可以将待添加流表项的包头写入第一目标地址对应的链表。相比于前一种方式,写入包头的链表所包含的数据更少,因此,也能提高链表的查询速度。可选地,在实际中,第一流表中的任一地址都有可能具有对应的链表。其中,查询表格与链表之间的关系可以如图6所示。在图6中,假设表格的地址中存储的是流表项的包头,假设第一目标地址为1,预设阈值thre为2,则第一目标地址对应的第一关联地址为2和3,第一目标地址可以作为表头,利用指针指向其对应的链表。
综合上述各实施例可知,流表项的写入具体可以包括确定写入位置的过程以及按照写入位置进行流表项写入的过程。借助通信连接能够实现流表项的快速写入,也即是提高流表的下发速度。同时,借助第二设备本地的表格能够快速确定写入位置,这样也能够提高第二设备的流表下发速度。其中,第二设备本地的查询表格中可以记录有写入第一流表的流表项,第二设备本地的链表中可以记录有写入第二流表的流表项。
另外,当存在大量待添加流表项时,借助哈希函数、最大哈希计算结果N以及预设阈值thre,又能够使大多数待添加流表项可以借助通信连接写入第一设备的第一流表中,少量的待添加流表项可以通过接口调用写入第三设备的第二流表中。而更多的流表项采用通信连接的方式写入能够减少调用ASIC接口实现流表项写入的频次,保证整体的流表项的写入速度即保证第二设备的流表下发速度,即第一设备和第三设备的流表获取速度,使得第二设备具有大量待添加流表项的高并发处理能力。
第二设备通过执行图2~图5所示实施例提供的方法能够实现流表项的添加。另外,第二设备还可以实现流表项的删除,则图7本发明实施例提供的又一种流表处理方法的流程图。如图7示,该方法可以包括如下步骤:
S401,响应于删除消息的接收,确定删除消息中待删除流表项对应的第二目标地址。
第二设备响应于删除消息的接收,可以从删除消息中解析出待删除流表项。可选地,删除消息可以由UE生成,也可以由第一设备或者可编程的ASIC生成。
可选地,UE可以主动向第二设备发送删除消息,承接上述5G通信网络的举例,UE从服务器注销时可以主动产生删除消息。可选地,第一设备以及第三设备可以实时监测本地流表中各流表项的使用情况,并根据使用情况生成删除消息。举例来说,若在预设时长内,UE产生的待传数据包没有使用该流表项中的动作进行处理,即第一流表中的某一流表项在预设时长内未被使用,则可以认为该流表项对应的UE已经在服务器上注销,此时,第一设备可以生成删除消息。第三设备生成删除消息的情况也是类似的。
可选地,第二目标地址可以为第二设备在第一流表中确定出的可能能够写入待添加流表项的一个地址。此时,第二设备可以通过线性查询的方式顺序地将第一流表和第二流表中的每个地址确定为第二目标地址,并判断该地址中是否存储有待删除流表项。
可选地,第二目标地址还可以是对待删除流表项中包头的哈希计算结果。此时,第二设备还可以进一步执行下述各步骤实现流表项的删除。
S402, 若第一流表的第二目标地址中存储有待删除流表项,则将待删除表项从第二目标地址中删除。
S403,若第一流表的第二目标地址中未存储有待删除流表项,则按照预设步长确定第二目标地址对应的第二关联地址,第二关联地址与第二目标地址之间的间隔小于或者等于预设阈值。
S404,若第一流表的第二关联地址中存储有待删除流表项,则通过第一设备和第二设备之间的通信连接,将待删除流表项从第二关联地址中删除。
S405,若第二目标地址和第二关联地址未存储待删除流表项,则确定待删除流表项是否存储于第二流表中。
S406,若待删除流表项存储于第二流表中,则通过调用第三设备的接口,将待删除流表项从第二流表中删除。
在得到第二目标地址后,第二设备可以先后判断待删除流表项是否存储于第一流表或者第二流表中,从而根据判断结果进行流表项的删除。其中,由于图5所示实施例中提到的,当出现哈希冲突时,流表项在流表的存储地址与该流表项包头的哈希计算结果不同,流表项会存储于与哈希计算结果对应的关联地址中,因此,第二设备判断待删除流表项是否存储于第一流表的过程具体又可以包括;先判断待删除流表项是否存储于第二目标地址,再判断待删除流表项是否存储于第二目标地址对应的第二关联地址。
需要说明的有,流表项删除过程中使用的是第二目标地址以及在流表项添加过程中使用的是第一目标地址,二者可以是相同或者不同的地址。二者的命名不同是为了区分在流表项添加和流表项删除两个过程。其中,第二关联地址的确定方式与第一关联地址类似,在此不再赘述。因此,若第一目标地址和第二目标地址相同,则第一关联地址和第二关联地址也相同。
对于上述提及的判断过程,具体地,第二设备可以先判断第一流表的第二目标地址中是否存储有待删除流表项。若存储有待删除流表项,则直接从第二目标地址中将其删除;若未存储该待删除流表项,则第二设备可以进一步判断第二目标地址对应的第二关联地址中是否存储有待删除流表项。
若第二关联地址中存储有待删除流表项,则直接从第二关联地址中删除待删除流表项。若第二目标地址和第二关联地址都未存储有待删除流表项,表明第一流表中未存储有待删除流表项,则第二设备可以进一步确定待删除流表项是否存储于第二流表中。
若待删除流表项存储于第二流表中,则第二设备通过调用第三设备的接口,将待删除流表项从第二流表中删除。若待删除流表项也未存储于第二流表中,表明待删除流表并未在第一流表和第二流表中,则第二设备可以向第一设备反馈删除失败的消息。
本实施例中,第二设备先后判断待删除流表项是否存储于第一流表和第二流表,并根据判断结果选择使用通信连接或者调用第三设备的接口来实现流表项的删除。与流表项写入类似的,通信连接的使用能够减少调用ASIC接口实现流表项删除的频次,保证整体的流表项的删除速度即保证流表的下发速度。与流表项写入类似的,上述删除流表项的过程可以认为是第二设备将待删除流表项删除之后的流表下发至第一设备或者第三设备的过程。并且在某一时刻,第二设备也有可能会接收到大量的删除消息,此时,通信连接的引入使得第二设备可以按照上述方式快速完成流表项的大量删除,实现大量流表的快速下发,使得第二设备对删除消息有高并发处理能力,则第一设备和第三设备也可以快速得到流表项删除后的流表。另外,本实施例中未详细描述的内容以及所能达到的技术效果可以参见上述实施例中的描述,在此不再赘述。
需要说明的还有,图7示实施例提供的流表项的删除流程与图2~图5所示各实施例提供的流表项的添加流程是并列的两种情况,因此,图7示实施例与实施例中的各步骤之间没有严格的时序关系。
在图7示实施例中,第二设备可以通过多次判断(判断是否存储于第二目标地址、判断是否存储于第二关联地址以及判断是否存储于第二流表)确定待删除流表项的位置并进一步进行删除。
对于判断是否存储于第二目标地址和第二关联地址中,可选地,第二设备可以访问外部的第一设备的第一流表来实现,也可以使用本地存储的查询表格实现。并且根据图4所示实施例中的描述可知,第二设备使用本地存储的查询表格即可完成判断,而无需通过通信连接实时访问外部的第一设备进行判断,从而减小了判断过程中所需的通信开销,提高判断速度并最终提高流表项的删除速度。可选地,查询表格的生成方式以及存储内容也可以参见图4所示实施例中的相关描述,在此不再赘述。当利用查询表格确定出待删除流表项的位置时,第二设备除了要将待删除流表项从第一流表中删除,第二设备还要将待删除流表项从查询表格中删除。
对于判断是否存储于第二流表中,可选地,第二设备可以通过接口调用的方式访问外部的第三设备中的第二流表来实现,也可以使用本地存储的链表来实现。其中,链表的生成过程可以参见上述相关实施例中的描述,在此不再赘述。当利用链表确定出待删除流表项的位置时,除了要将待删除流表项从第二流表中删除,第二设备还要将待删除流表项从链表中删除。
上述实施例中描述流表项的添加和删除过程还可以结合图8理解。
对于流表项添加过程中,如图8的(a)所示,第二设备接收到添加消息后,可以在本地的查询表格中查询,以根据查询结果确定待添加流表项能否写入第一流表或者第二流表。其中,存在查询结果则表明在第一流表或者第二流表中,待添加流表项对应的目标地址中是否已经存储有流表项,否则则表明两流表的目标地址中未存储流表项。并且当查询表格中包含的流表项的包头时,第二设备在写入待添加流表项的同时,还会将此待添加流表项的包头也写入查询表格或者链表。
对于流表项删除过程,如图8的(b)所示,第二设备接收到删除消息后,可以分别在本地的查询表格和链表中查询,以查询结果进行流表项的删除。其中,存在查询结果表明待删除流表项存储于第一流表或者第二流表中。
可选地,在按照上述方式实现流表项的添加后,第二设备还可以展示表示流表项是否添加成功的添加结果。类似的,在按照上述方式实现流表项的删除后,第二设备也可以展示表示流表项是否删除成功的删除结果。结果可以以弹窗等任一种形式展示。
可选地,上述的添加结果和删除结果也可以根据流表项写入或者删除的位置发送至相应的第一设备或者第三设备,以由第一设备或者第三设备显示。
可选地,第二设备还可以向用户展示在预设时间段内接收到的添加消息的数量,消息的数量能够反映该预设时间段内流表项写入的频率。用户可以将其作为依据,用以估计未来一段时间内待添加流表项的数量。若预设时间段接收到的添加消息的数量较多,则用户可以认为未来一段时间也会接收到大量的添加流表项。此时,用户可以触发相应的调整操作,以调整第一流表和/或第二流表的存储容量,也即是进行流表的缩扩容。上述的交互过程还可以在第二设备提供的如图9所示的交互界面上进行。
由于构成邻接表的查询表格和链表中也存储有流表项或者流表项的包头,因此,在调整第一流表存储容量的同时也调整查询表格的存储容量,和/或,在调整第二流表存储容量的同时也调整链表的存储容量,也即是进行邻接表的缩扩容。
可选地,除了响应于用户操作,流表的缩扩容还可以由第二设备自动执行,第二设备还可以进一步控制第一设备和第三设备进行查询表格和链表的扩缩容。
上述各实施例中提供的、用于提供核心网用户面功能的第一设备和第三设备,以及用于提供核心网控制面功能的第二设备,其还可以具体部署于专用网络中,即核心网部署于专用网络中,该专用网络又可以具体表现为云网络,即上述提及的流表处理系统可以应用于云专网中。
此时,图10本发明实施例提供的又一种流表处理方法的流程图。该方法可以由部署在云专网中的流表处理系统包含的第二设备执行。如图10示,该方法可以包括如下步骤:
S501,响应于添加消息的接收,确定添加消息中待添加流表项对应的第一目标地址。
S502,若第一流表的第一目标地址中未存储有流表项,则利用第一设备与第二设备之间的通信连接,将待添加流表项写入第一流表的第一目标地址,第一流表存储于第一设备中。
S503,若第一流表的第一目标地址中存储有流表项,则调用第三设备的接口将待添加流表项写入第三设备的第二流表,第一设备和第三设备用于实现核心网的用户面功能。
本实施例中各步骤的具体实现方式以及所能实现的技术效果可以参见上述各实施例中的相关描述,在此不再赘述。
可选地,部署有第一设备、第二设备和第三设备的云专网可以提供至少一种的服务,不同的UE可以使用一种或者多种服务。在一服务的使用过程中,UE可以生成待处理数据包。第三设备可以使用第二设备下发的流表进行查询,再根据查询结果处理UE在此种服务下产生的待处理数据包。对不同UE在不同服务下产生的待处理数据包所需的处理实时性不同,因此,第二设备下发流表的实时性也与服务相关。
具体来说,云专网可以部署于工业园区内中,其可以为园区提供智能制造设备的控制服务,该控制服务对智能制造设备发送控制指令,以控制设备正常工作或者故障重启等。工业园区内的云专网也可以提供智能制造设备的运行数据采集服务等等。相比于采集服务,在控制服务下产生的待传数据包的处理及时性要求更高。则第二设备在得到至少一个服务对应的添加消息包含的待添加流表项后,可以根据待添加流表项各自的优先级,将待添加流表项写入第一流表或者第二流表。可选地,优先级越高,表明在该待添加流表项对应的服务下产生的待处理数据包所需的处理实时性更高。
也即是,处理实时性要求越高的服务,该服务对应的待添加流表项越优先地写入流表中。
图1所示实施例中描述,流表处理系统对流表项的处理可以包括添加、删除和查询。其中,流表项的添加和删除可以由系统中的第二设备按照上述各实施例所示的方法实现。同时还可以从系统角度对流表项的添加过程进行描述。如图1所示的系统,该系统中的第二设备响应于添加消息的接收,确定添加消息中待添加流表项对应的第一目标地址。
此时,一种情况,若第一流表的第一目标地址中未存储有流表项,则利用第一设备与第二设备之间的通信连接,将待添加流表项写入第一流表的第一目标地址,第一流表存储于第一设备中。另一种情况,若第一流表的第一目标地址中存储有流表项,则调用第三设备的接口,将待添加流表项写入第三设备的第二流表。
可选地,系统中的第二设备同样可以实现流表项的删除。
上述写入和删除过程中未详细描述以及所能达到的技术效果均可以参见上述图2~图7所示实施例中的相关描述。
图11为本发明实施例提供的另一种流表处理系统的结构示意图。如图11所示,在图1所示系统的基础上,该系统可以包括还可以包括UE,系统中的第三设备除了可以包括用于存储第二流表的SRAM,还可以包括处理模块。
正如图1所示实施例中的描述可知,第三设备可以包括可编程ASIC,则上述存储第二流表的SRAM具体可以部署于该可编程ASIC上。
在实际中,UE可以生成待处理数据包。继续承接上述UE访问服务器的举例,UE在正常使用服务器提供的各种功能的过程中可以产生待处理数据包。该待处理数据包在被第三设备获取后,第三设备可以解析待处理数据包的属性信息,并将此属性信息与第二流表中的包头进行比对。其中,正如图1所示实施例中描述的,数据包的属性信息可以包括源地址、目的地址、源端口号、目的端口号、协议类型等至少一种。目标包头和目标动作构成第二流表中的一条流表项。
一种情况,若第二流表中存在与属性信息相同的目标包头,则第三设备可以发送目标动作至第三设备中的处理模块,以由处理模块处理待处理数据包。
另一种情况,若第二流表中不存在与属性信息相同的目标包头,则一种可选地方式,第三设备可以通过线性查询的方式从第一流表中进行查询,并根据第一流表中目标包头对应的目标动作处理待处理数据包。另一种可选地方式,第三设备可以对目标包头进行哈希计算,并将哈希计算结果确定为目标地址,再进一步确定此目标地址的关联地址。第三设备可以通过通信连接访问第一设备,以获取第一流表中目标地址以及关联地址中存储的流表项。第三设备可以在获取到的流表项中确定出目标包头对应的目标动作,并根据此目标动作处理待处理数据包。
可选地,从目标地址和关联地址中确定出目标包头对应的目标动作的过程也可以由第一设备执行,但考虑到第一设备的数据处理能力,前述确定过程通常由第三设备执行。
本实施例中,当接收到UE发送的待处理数据包后,第三设备可以先从本地的第二流表中进行查询,再从外部第一设备的第一流表中查询,以快速查询到目标动作,并按照此目标动作处理待处理数据包。
下面可以5G通信网络为具体应用场景,对上述各实施例提供的流表处理方法和系统的具体实现过程进行描述。下述过程也可以结合图12理解。
5G通信网络可以包括用户使用的至少一个UE,提供核心网控制面功能的第二设备、共同提供核心网用户面功能的第三设备以及第一设备以及为用户提供搜索服务的搜索服务器。
其中,第三设备在流表项添加和删除过程中所执行的逻辑可以由可编程ASIC来执行。第一设备和可编程ASIC可以认为是硬件形式的UPF网元,第二设备可以认为是硬件形式的AMF网元或者SMF网元。
当某一时刻出现突发事件时,大量用户可以使用各自的UE触发搜索服务器的访问动作,此时,大量UE可以各自生成添加消息,每个添加消息中都包含待添加流表项。大量的添加消息可以被提供核心网控制面功能的第二设备获取到。第二设备可以分别对待添加流表项中的包头进行哈希计算,并将哈希计算结果作为目标地址,利用第二设备本地存储的查询表格确定该待添加流表项是否能够写入第一流表中。若可以写入,则直接利用通信连接将待添加流表项写入第一流表。若无法写入,则通过调用可编程ASIC的接口将待添加流表项写入第二流表。流表项的成功写入也意味着UE完成了在服务器上的注册,用户可以正常在服务器上搜索上述的突然事件。另外,在将待添加流表项写入流表的同时,第二设备还可以将待添加流表项的包头写入查询表格或者链表中,以作为后续其他流表项写入或删除时的查询基础。
在实际中,通过设置合理的最大哈希计算结果N以及预设阈值thre,对于大量的待添加流表项,绝大部分的待添加流表项可以借助通信连接写入第一流表,少部分待添加流表项可以通过接口调用写入可编程ASIC的第二流表中。同时,待添加流表项的写入位置还会记录到第二设备本地的查询表格和链表中。
上述过程中,一方面,通信连接的使用以及N和thre的合理设置能够从不同角度减少调用ASIC接口实现流表项写入的频次,从而可以保证整体的流表项写入速率即流表的下发速度。另一方面,在确定流表项写入位置时,第二设备可以利用本地存储的表格来确定,无需对外部的第一设备进行实时访问,减小了二者之间的通信开销,也能够提升流表的下发速率。
其中,流表项写入过程的具体描述可以参见上述相关实施例中的描述,在此不再赘述。
在UE完成注册正常使用搜索服务器的过程中,UE可以产生待处理数据包,此待处理数据包括可以被可编程ASIC接收到。可编程ASIC可以分别从本地的第二流表和第一设备的第一流表中查询是否存储一条目标流表项,该目标流表项的目标包头与待处理数据包中的属性信息相同。若存在此目标流表项,则可编程ASIC可以按照目标流表项中的目标动作处理待处理数据包,其中,目标动作可以是转发,则可编程ASIC可以将待处理数据包转发至搜索服务器,以使搜索服务器能够为UE反馈相应的搜索结果。
在突发事件热度过后,第二设备还有可能收到大量UE各自产生的删除消息,第二设备可以分别对待删除流表项中的包头进行哈希计算,并将哈希计算结果作为目标地址,利用第二设备本地存储的查询表格和链表查询该待添加流表项是否已经写入第一流表或者第二流表中。若待删除流表项已经存在,则第二设备可以从相应的流表中将其删除。同时,当查询表格和链表中存储的是流表项的包头时,第二设备还可以相应地将待删除流表项的包头从查询表格或链表中删除。此时也即是完成了UE在服务器上的注销。
在一个可能的设计中,上述各实施例提供的流表处理方法可以应用在一电子设备中,如图13所示,该电子设备提供核心网的控制面功能,该电子设备可以包括:第一处理器21和第一存储器22。其中,第一存储器22用于存储支持该电子设备执行上述图1~图7所示实施例中提供的流表处理方法的程序,第一处理器21被配置为用于执行第一存储器22中存储的程序。
程序包括一条或多条计算机指令,其中,一条或多条计算机指令被第一处理器21执行时能够实现如下步骤:
响应于添加消息的接收,确定所述添加消息中待添加流表项对应的第一目标地址;
若第一流表的第一目标地址中未存储有流表项,则利用第一设备与所述第二设备之间的通信连接,将所述待添加流表项写入所述第一流表的第一目标地址,所述第一流表存储于所述第一设备中;
若所述第一流表的第一目标地址中存储有流表项,则调用第三设备的接口将所述待添加流表项写入所述第三设备的第二流表,所述第一设备和所述第三设备用于实现所述核心网的用户面功能。
可选地,第一处理器21还用于执行前述图1~图7所示实施例中的全部或部分步骤。
其中,电子设备的结构中还可以包括第一通信接口23,用于该电子设备与其他设备或通信系统通信。
另外,本发明实施例提供了一种计算机存储介质,用于储存上述电子设备所用的计算机软件指令,其包含用于执行上述图1~图7所示的流表处理方法所涉及的程序。
在一个可能的设计中,上述各实施例提供的流表处理方法可以应用在一电子设备中,如图14所示,该电子设备部署于云专网中,用以提供核心网控制面功能。该电子设备可以包括:第二处理器31和第二存储器32。其中,第二存储器32用于存储支持该电子设备执行上述图9所示实施例中提供的流表处理方法的程序,第二处理器31被配置为用于执行第二存储器32中存储的程序。
程序包括一条或多条计算机指令,其中,一条或多条计算机指令被第二处理器31执行时能够实现如下步骤:
响应于添加消息的接收,确定所述添加消息中待添加流表项对应的第一目标地址;
若第一流表的第一目标地址中未存储有流表项,则利用第一设备与所述第二设备之间的通信连接,将所述待添加流表项写入所述第一流表的第一目标地址,所述第一流表存储于所述第一设备中;
若所述第一流表的第一目标地址中存储有流表项,则调用第三设备的接口将所述待添加流表项写入所述第三设备的第二流表,所述第一设备和所述第三设备用于实现所述核心网的用户面功能。
可选地,第二处理器31还用于执行前述图9所示实施例中的全部或部分步骤。
其中,电子设备的结构中还可以包括第二通信接口33,用于该电子设备与其他设备或通信系统通信。
另外,本发明实施例提供了一种计算机存储介质,用于储存上述电子设备所用的计算机软件指令,其包含用于执行上述图9所示的流表处理方法所涉及的程序。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (14)
1.一种流表处理方法,其特征在于,应用于用于实现核心网的控制面功能的第二设备,包括:
响应于添加消息的接收,确定所述添加消息中待添加流表项对应的第一目标地址;
若第一流表的第一目标地址中未存储有流表项,则利用第一设备与所述第二设备之间的通信连接,将所述待添加流表项写入所述第一流表的第一目标地址,所述第一流表存储于所述第一设备中;
若所述第一流表的第一目标地址中存储有流表项,则调用第三设备的接口将所述待添加流表项写入所述第三设备的第二流表,所述第一设备和所述第三设备用于实现所述核心网的用户面功能。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述第二设备中查询表格的所述第一目标地址上存储有数据,则确定所述第一流表的第一目标地址中存储有流表项,其中,所述查询表格存储有流表项的包头,所述第一流表中存储有流表项的包头和动作,所述查询表格和所述第一流表中相同的地址上存储有相同的包头。
3.根据权利要求2所述的方法,其特征在于,所述响应于添加消息的接收,确定所述添加消息中待添加流表项对应的第一目标地址,包括:
响应于用户设备的注册,接收所述用户设备生成的所述添加消息;
从所述添加消息中解析出所述待添加流表项;
对所述待添加流表项的包头进行哈希计算,将哈希计算结果确定为所述第一目标地址。
4.根据权利要求3所述的方法,其特征在于,所述若所述第一流表的第一目标地址中存储有流表项,则调用第三设备的接口将所述待添加流表项写入所述第三设备的第二流表,包括:
若所述第一流表的第一目标地址上存储有流表项,则按照预设步长确定所述第一目标地址对应的第一关联地址,所述第一关联地址与所述第一目标地址之间的间隔小于或者等于预设阈值;
若所述第一流表的第一关联地址上存储有流表项,则调用所述第三设备的接口将所述待添加流表项写入所述第二流表。
5.根据权利要求4述的方法,其特征在于,所述方法还包括:
若所述第一流表的第一目标地址和所述第一关联地址中存储有流表项,则以所述查询表格中的所述第一目标地址为表头,生成所述查询表格中所述第一目标地址对应的链表;
将所述待添加流表项的包头写入所述链表,所述查询表格和所述链表构成邻接表。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
响应于删除消息的接收,确定所述删除消息中待删除流表项对应的第二目标地址;
若所述第一流表的第二目标地址中未存储有所述待删除流表项,则按照所述预设步长确定所述第二目标地址对应的第二关联地址,所述第二关联地址与所述第二目标地址之间的间隔小于或者等于预设阈值;
若所述第一流表的第二关联地址中存储有所述待删除流表项,则通过所述第一设备和所述第二设备之间的通信连接,将所述待删除流表项从所述第二关联地址中删除。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若所述第二目标地址和所述第二关联地址未存储所述待删除流表项,则确定所述待删除流表项是否存储于所述第二流表中;
若所述待删除流表项存储于所述第二流表中,则通过调用所述第三设备的接口,将所述待删除流表项从所述第二流表中删除。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
展示反映所述待添加流表项是否添加成功的添加结果;
发送所述添加结果至所述第一设备或者所述第三设备。
9.根据权利要求1或7所述的方法,其特征在于,所述方法还包括:
展示预设时间段内接收到的所述添加消息和/或删除消息的数量;
响应于用户根据所述数量触发的调整操作,调整第一流表和/或第二流表的存储容量。
10.一种流表处理方法,其特征在于,应用于用于实现核心网的控制面功能的第二设备,所述核心网部署于专用网络中,所述专用网络表现为云网络,包括:
响应于添加消息的接收,确定所述添加消息中待添加流表项对应的第一目标地址;
若第一流表的第一目标地址中未存储有流表项,则利用第一设备与所述第二设备之间的通信连接,将所述待添加流表项写入所述第一流表的第一目标地址,所述第一流表存储于所述第一设备中;
若所述第一流表的第一目标地址中存储有流表项,则调用第三设备的接口将所述待添加流表项写入所述第三设备的第二流表,所述第一设备和所述第三设备用于实现核心网的用户面功能。
11.根据权利要求10所述的方法,其特征在于,所述专用网络提供至少一种服务;所述方法还包括:
获取所述至少一个服务对应的所述添加消息各自包含的所述待添加流表项;
按照多个所述待添加流表项各自的优先级,将所述待添加流表项写入所述第一流表或者所述第二流表。
12.一种流表处理系统,其特征在于,包括:第二设备以及与所述第二设备通信连接的第一设备、第三设备;
所述第二设备用以实现核心网的控制面功能,所述第一设备和所述第三设备用以实现所述核心网的用户面功能;
所述第二设备,用于响应于添加消息的接收,确定所述添加消息中待添加流表项对应的第一目标地址;
若第一流表的第一目标地址中未存储有流表项,则利用第一设备与第二设备之间的通信连接,将所述待添加流表项写入所述第一流表的第一目标地址,所述第一流表存储于所述第一设备中;
若所述第一流表的第一目标地址中存储有流表项,则调用第三设备的接口,将所述待添加流表项写入所述第三设备的第二流表。
13.一种电子设备,其特征在于,包括:存储器、处理器;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1~11中任一项所述的流表处理方法。
14.一种非暂时性机器可读存储介质,其特征在于,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1~11中任一项所述的流表处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310195735.3A CN116074250B (zh) | 2023-02-23 | 2023-02-23 | 流表处理方法、系统、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310195735.3A CN116074250B (zh) | 2023-02-23 | 2023-02-23 | 流表处理方法、系统、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116074250A CN116074250A (zh) | 2023-05-05 |
CN116074250B true CN116074250B (zh) | 2023-08-22 |
Family
ID=86173213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310195735.3A Active CN116074250B (zh) | 2023-02-23 | 2023-02-23 | 流表处理方法、系统、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116074250B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104052685A (zh) * | 2013-03-14 | 2014-09-17 | 日立(中国)研究开发有限公司 | 流表更新方法和流表更新装置 |
CN104871497A (zh) * | 2013-11-20 | 2015-08-26 | 华为技术有限公司 | 流表处理方法和装置 |
CN105515992A (zh) * | 2014-09-26 | 2016-04-20 | 杭州华三通信技术有限公司 | Vxlan网络中的流表项处理方法及装置 |
CN105681305A (zh) * | 2016-01-15 | 2016-06-15 | 北京工业大学 | 一种sdn防火墙系统及实现方法 |
CN106100997A (zh) * | 2016-06-03 | 2016-11-09 | 杭州华三通信技术有限公司 | 一种网络流量信息处理方法及装置 |
CN107005433B (zh) * | 2015-07-20 | 2020-05-19 | 华为技术有限公司 | 一种流表项的定时处理方法及装置 |
CN114553762A (zh) * | 2022-01-30 | 2022-05-27 | 阿里巴巴(中国)有限公司 | 一种对流表中的流表项处理的方法及装置 |
CN114629842A (zh) * | 2022-03-30 | 2022-06-14 | 阿里巴巴(中国)有限公司 | 流表处理方法、电子设备、可读存储介质及产品 |
CN115002016A (zh) * | 2022-05-17 | 2022-09-02 | 阿里云计算有限公司 | 报文处理系统、方法、设备和存储介质 |
CN115208810A (zh) * | 2021-04-12 | 2022-10-18 | 益思芯科技(上海)有限公司 | 一种转发流表加速方法及装置、电子设备和存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102377640B (zh) * | 2010-08-11 | 2014-12-31 | 杭州华三通信技术有限公司 | 一种报文处理装置和报文处理方法、及预处理器 |
JP6164056B2 (ja) * | 2013-11-12 | 2017-07-19 | 富士通株式会社 | 通信システム、送信装置、中継装置及び通信方法 |
WO2017152396A1 (zh) * | 2016-03-09 | 2017-09-14 | 华为技术有限公司 | 流表处理方法及装置 |
-
2023
- 2023-02-23 CN CN202310195735.3A patent/CN116074250B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104052685A (zh) * | 2013-03-14 | 2014-09-17 | 日立(中国)研究开发有限公司 | 流表更新方法和流表更新装置 |
CN104871497A (zh) * | 2013-11-20 | 2015-08-26 | 华为技术有限公司 | 流表处理方法和装置 |
CN105515992A (zh) * | 2014-09-26 | 2016-04-20 | 杭州华三通信技术有限公司 | Vxlan网络中的流表项处理方法及装置 |
CN107005433B (zh) * | 2015-07-20 | 2020-05-19 | 华为技术有限公司 | 一种流表项的定时处理方法及装置 |
CN105681305A (zh) * | 2016-01-15 | 2016-06-15 | 北京工业大学 | 一种sdn防火墙系统及实现方法 |
CN106100997A (zh) * | 2016-06-03 | 2016-11-09 | 杭州华三通信技术有限公司 | 一种网络流量信息处理方法及装置 |
CN115208810A (zh) * | 2021-04-12 | 2022-10-18 | 益思芯科技(上海)有限公司 | 一种转发流表加速方法及装置、电子设备和存储介质 |
CN114553762A (zh) * | 2022-01-30 | 2022-05-27 | 阿里巴巴(中国)有限公司 | 一种对流表中的流表项处理的方法及装置 |
CN114629842A (zh) * | 2022-03-30 | 2022-06-14 | 阿里巴巴(中国)有限公司 | 流表处理方法、电子设备、可读存储介质及产品 |
CN115002016A (zh) * | 2022-05-17 | 2022-09-02 | 阿里云计算有限公司 | 报文处理系统、方法、设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
Luca Carafoli ; Federica Mandreoli ; Riccardo Martoglia ; Wilma Penzo.Streaming Tables: Native Support to Streaming Data in DBMSs.《IEEE Transactions on Systems, Man, and Cybernetics: Systems ( Volume: 47, Issue: 10, October 2017)》.2017,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN116074250A (zh) | 2023-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11689606B2 (en) | Communication method, system and apparatus | |
WO2018107681A1 (zh) | 一种队列操作中的处理方法、装置及计算机存储介质 | |
US8266274B2 (en) | Method and apparatus for data processing | |
CN110191428B (zh) | 一种基于智能云平台的数据分配方法 | |
US20220303217A1 (en) | Data Forwarding Method, Data Buffering Method, Apparatus, and Related Device | |
WO2014101777A1 (zh) | 流表匹配方法和装置以及交换机 | |
US9854062B2 (en) | Data relay apparatus and method, server apparatus, and data sending method | |
WO2019101118A1 (zh) | 指定转发者选举 | |
WO2019024727A1 (zh) | 消息处理方法以及基站 | |
US20140222960A1 (en) | Method and Apparatus for Rapid Data Distribution | |
CN114500633B (zh) | 数据转发方法、相关装置、程序产品及数据传输系统 | |
US11316916B2 (en) | Packet processing method, related device, and computer storage medium | |
WO2024183410A1 (zh) | 硬件流表老化方法、软件流表老化方法、装置及电子设备 | |
EP2903233B1 (en) | Network storage method, switch device, and controller | |
KR101920630B1 (ko) | 단말을 서버에 할당하고 단말로의 효율적인 메시징을 위한 시스템 및 방법 | |
CN114422437A (zh) | 一种异构报文的转发方法及装置 | |
US7292593B1 (en) | Arrangement in a channel adapter for segregating transmit packet data in transmit buffers based on respective virtual lanes | |
CN116074250B (zh) | 流表处理方法、系统、设备和存储介质 | |
CN112052104A (zh) | 基于多机房实现的消息队列的管理方法及电子设备 | |
CN116546557B (zh) | 数据包处理方法、系统、设备和存储介质 | |
CN112866106B (zh) | 一种兴趣包缓存方法、装置、设备及存储介质 | |
CN114793234B (zh) | 消息处理方法、装置、设备和存储介质 | |
CN115988574B (zh) | 基于流表的数据处理方法、系统、设备和存储介质 | |
JPWO2020081224A5 (zh) | ||
CN117955907B (zh) | 报文处理方法、虚拟交换机、装置和存储介质 |
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 |