发布信息

基于业务功能链的报文转发方法、控制器以及存储介质与流程

作者:admin      2022-07-30 07:30:07     379



电子通信装置的制造及其应用技术1.本公开涉及sdn技术领域,尤其涉及一种基于业务功能链的报文转发方法、系统、控制器以及存储介质。背景技术:2.sfc(service function chaining,业务功能链)是一种部署增值业务的机制。目前,在同一个sfc中,不同的sfp(service function path,业务功能路径)之间可以通过spi(service path index,业务路径标识)来区分,每个spi对应一个sfp。sfc的业务节点的顺序使用si(service index,业务索引)值表示,si值每减1对应到下一跳的sf(service function,业务功能处理器)。但是,在移动的环境下,sfc业务节点的更新较快,需要一个sfp在短时间内灵活地插入一个sf;当一个sfp插入一个sf时,原有的si值不再对应原有的sf,当报文传输到sff时,sff将会查询到错误的下一跳sf信息;现有的解决方法是对整条路径上的全部sff进行sfc转发表更新,在移动场景下频繁更新sfc转发表,将使转发面具有很大的数据发送量。技术实现要素:3.有鉴于此,本发明要解决的一个技术问题是提供一种基于业务功能链的报文转发方法、系统、控制器以及存储介质。4.根据本公开的第一方面,提供一种基于业务功能链sfc的报文转发方法,包括:控制器生成与业务功能路径sfp中的全部业务功能处理器sf相对应的第一sfc转发表;其中,所述第一sfc转发表包括多条转发信息,所述转发信息包括业务路径标识spi、业务索引si值和sf信息;所述多条转发信息的多个si值被设置为不连续的多个数值;所述控制器如果确定在第一sf和第二sf之间插入第三sf,则基于所述第一sfc转发表确定分别与所述第一sf和所述第二sf相对应的第一转发信息和第二转发信息;所述控制器在所述第一sfc转发表中增加与所述第三sf相对应的第三转发信息,生成所述第二sfc转发表;其中,所述控制器在所述第一转发信息的si值和所述第二转发信息的si值之间确定一个数值,作为所述第三转发信息的si值。5.可选地,所述控制器在生成所述第一sfc转发表之后,将所述第一sfc转发表发送给所述sfp中的全部业务功能转发器sff。6.可选地,所述控制器在生成所述第二sfc转发表之后,确定分别与所述第一sf和所述第三sf相对应的第一sff和第三sff;所述控制器将所述第二sfc转发表发送给所述第一sff和所述第三sff,以使所述第一sff使用所述第二sfc转发表替换所述第一sfc转发表。7.可选地,所述控制器设置与所述sfp中的全部sf与全部sff相对应的业务处理对应关系信息;所述控制器将所述业务处理对应关系信息发送给所述sfp中的全部sff。8.可选地,在所述第一sf处理第一业务报文之后,所述第一sff基于所述第二sfc转发表确定下一个sf为所述第三sf,以及与所述第三sf相对应的si值和spi;所述第一sff基于所述业务处理对应关系信息确定与所述第三sf对应的第三sff;所述第一sff生成第三业务报文并发送给所述第三sff;其中,所述第三业务报文中携带有与所述第三sf相对应的si值和spi;所述第三sff根据所述第三业务报文携带的与所述第三sf相对应的si值和spi,并基于所述第二sfc转发表确定当前sf为所述第三sf,控制所述第三sf对所述第三业务报文进行处理。9.可选地,第二sff接收到所述第三sff发送的第二业务报文;所述第二sff基于所述第一sfc转发表并根据从所述第二业务报文中提取的si值和spi,确定当前sf为所述第二sf,控制所述第二sf处理所述第二业务报文。10.可选地,所述控制器如果确定删除了所述第三sf,则将所述第一sfc转发表发送给所述第一sff,以使所述第一sff使用所述第一sfc转发表替换所述第二sfc转发表,并控制所述第三sff删除所述第二sfc转发表。11.可选地,在所述第一sfc转发表中,任意相邻的两个转发信息的两个si值之间的差值大于预设的间隔阈值。12.可选地,在所述第一sfc转发表中,多个si值被设置为由大到小的多个数值,并且,任意相邻的两个转发信息的两个si值之间的差值都不相同。13.根据本公开的第二方面,提供一种控制器,包括:转发表生成模块,用于生成与业务功能路径sfp中的全部业务功能处理器sf相对应的第一sfc转发表;其中,所述第一sfc转发表包括多条转发信息,所述转发信息包括业务路径标识spi、业务索引si值和sf信息;所述多条转发信息的多个si值被设置为不连续的多个数值;转发表更新模块,用于如果确定在第一sf和第二sf之间插入第三sf,则基于所述第一sfc转发表确定分别与所述第一sf和所述第二sf相对应的第一转发信息和第二转发信息;在所述第一sfc转发表中增加与所述第三sf相对应的第三转发信息,生成所述第二sfc转发表;其中,在所述第一转发信息的si值和所述第二转发信息的si值之间确定一个数值,作为所述第三转发信息的si值。14.可选地,所述转发表生成模块,用于在生成所述第一sfc转发表之后,将所述第一sfc转发表发送给所述sfp中的全部业务功能转发器sff。15.可选地,所述转发表更新模块,还用于在生成所述第二sfc转发表之后,确定分别与所述第一sf和所述第三sf相对应的第一sff和第三sff;将所述第二sfc转发表发送给所述第一sff和所述第三sff,其中,所述第一sff使用所述第二sfc转发表替换所述第一sfc转发表。16.可选地,处理关系设置模块,用于设置与所述sfp中的全部sf与全部sff相对应的业务处理对应关系信息,将所述业务处理对应关系信息发送给所述sfp中的全部sff。17.可选地,所述转发表更新模块,用于如果确定删除了所述第三sf,则将所述第一sfc转发表发送给所述第一sff,以使所述第一sff使用所述第一sfc转发表替换所述第二sfc转发表,并控制所述第三sff删除所述第二sfc转发表。18.可选地,在所述第一sfc转发表中,任意相邻的两个转发信息的两个si值之间的差值大于预设的间隔阈值。19.可选地,在所述第一sfc转发表中,多个si值被设置为由大到小的多个数值,并且,任意相邻的两个转发信息的两个si值之间的差值都不相同。20.根据本公开的第三方面,提供一种基于业务功能链sfc的报文转发系统,包括:如上所述的控制器。21.可选地,包括:第一sff、第二sff和第三sff;所述第一sff,用于在第一sf处理第一业务报文之后,基于第二sfc转发表确定下一个sf为第三sf,以及与所述第三sf相对应的si值和spi;基于所述业务处理对应关系信息确定与所述第三sf对应的所述第三sff;生成第三业务报文并发送给所述第三sff;其中,所述第三业务报文中携带有与所述第三sf相对应的si值和spi;所述第三sff,用于根据所述第三业务报文携带的与所述第三sf相对应的si值和spi,并基于所述第二sfc转发表确定当前sf为所述第三sf,控制所述第三sf对所述第三业务报文进行处理。22.可选地,所述第二sff,用于接收所述第三sff发送的第二业务报文,基于所述第一sfc转发表并根据从所述第二业务报文中提取的si值和spi,确定当前sf为所述第二sf,控制所述第二sf处理所述第二业务报文。23.根据本公开的第四方面,提供一种控制器,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如上所述的方法。24.根据本公开的第五方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行如上的方法。25.本公开的基于业务功能链的报文转发方法、系统、控制器以及存储介质,通过非均匀递减的方式设置si值,用于给sf的插入提供空间,只需对更新的sf及其前一跳sf所对应的sff进行转发表的更新,解决了移动环境下因为sfp业务节点的改变而导致全部下游sff需进行转发表更新的问题,能够减少转发面的数据发送量,减少系统资源的占用量。附图说明26.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。27.图1a为现有技术中的业务报文转发示意图;28.图1b为根据本公开的基于业务功能链的报文转发方法的一个实施例的流程示意图;29.图2为根据本公开的基于业务功能链的报文转发方法的一个实施例中的发送第二sfc转发表的流程示意图;30.图3为根据本公开的基于业务功能链的报文转发方法的一个实施例中的对业务报文进行处理的流程示意图;31.图4为根据本公开的基于业务功能链的报文转发方法的另一个实施例的业务报文转发示意图;32.图5为根据本公开的控制器的一个实施例的模块示意图;33.图6为根据本公开的控制器的另一个实施例的模块示意图;34.图7为根据本公开的基于业务功能链的报文转发系统的一个实施例的模块示意图。具体实施方式35.下面参照附图对本公开进行更全面的描述,其中说明本公开的示例性实施例。下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。下面结合各个图和实施例对本公开的技术方案进行多方面的描述。36.下文中的“第一”、“第二”等仅用于描述上相区别,并没有其它特殊的含义。37.在现有技术中,如图1a所示,业务报文达到sff1之后,查找转发表(sfc转发表)确定si=255对应的sf为cgn(carrier-grade nat,运营商级的nat)处理器,简称cgn。sff1将业务报文转发给cgn进行处理,cgn处理业务报文并将si值减1后,将业务报文发送给sff1。sff1将报文进行nsh封装(spi=22,si=254),查找转发表确定si=254对应的sf是dpi(deep packet inspection,深度报文检测)处理器,简称dpi,确定dpi位于sff2,将业务报文转发给sff2。38.sff2接收到业务报文后将业务报文转给dpi处理,再将si-1=253,查找转发表确定253对应fw,sff2将业务报文转发给sff3处理。如果这时需要在dpi之后进行load balance的操作,则lb(新插入的sf)所对应的si应该是253,而转发表的253对应的是fw,出现差错。控制器需将sfc转发表进行更新,其中,将si=253对应于lb,并将si=252对应于fw,对路径中的sff2及其所有下游的sff进行转发表的更新。39.图1b为根据本公开的基于业务功能链的报文转发方法的一个实施例的流程示意图,如图1b所示:40.步骤101,控制器生成与业务功能路径sfp中的全部业务功能处理器sf相对应的第一sfc转发表。第一sfc转发表包括多条转发信息,转发信息包括业务路径标识spi、业务索引si值和sf信息等;多条转发信息的多个si值被设置为不连续的多个数值。41.在一个实施例中,在第一sfc转发表中,任意相邻的两个转发信息的两个si值之间的差值大于预设的间隔阈值,间隔阈值可以为2,3,4等。在第一sfc转发表中,多个si值被设置为由大到小的多个数值,并且,任意相邻的两个转发信息的两个si值之间的差值都不相同。控制器在生成第一sfc转发表之后,将第一sfc转发表发送给sfp中的全部业务功能转发器sff。42.步骤102,控制器如果确定在第一sf和第二sf之间插入第三sf,则基于第一sfc转发表确定分别与第一sf和第二sf相对应的第一转发信息和第二转发信息。43.步骤103,控制器在第一sfc转发表中增加与第三sf相对应的第三转发信息,生成第二sfc转发表;其中,控制器在第一转发信息的si值和第二转发信息的si值之间确定一个数值,作为第三转发信息的si值。44.图2为根据本公开的基于业务功能链的报文转发方法的一个实施例中的发送第二sfc转发表的流程示意图,如图2所示:45.步骤201,控制器在生成第二sfc转发表之后,确定分别与第一sf和第三sf相对应的第一sff和第三sff。46.步骤202,控制器将第二sfc转发表发送给第一sff和第三sff,以使第一sff使用第二sfc转发表替换第一sfc转发表。47.上述实施例中的基于业务功能链的报文转发方法,修改了si值单调减1的设置方式,通过非均匀递减的方式设置si值,用于给sf的插入和移出提供空间,只需对更新的sf及其前一跳sf所对应的sff进行转发表的更新,解决了移动环境下因为sfp业务节点的改变而导致全部下游sff需进行转发表更新的问题。48.在一个实施例中,控制器设置与sfp中的全部sf与全部sff相对应的业务处理对应关系信息,控制器将业务处理对应关系信息发送给sfp中的全部sff。例如,控制器设置的业务处理对应关系信息包括多条对应关系信息,每个对应关系信息都为sff与sf的对应关系信息;在转发业务报文时,sff通过查询业务处理对应关系信息确定下一跳sf对应的下游sff,将业务报文转发给查询出的下游sff。49.图3为根据本公开的基于业务功能链的报文转发方法的一个实施例中的对业务报文进行处理的流程示意图,如图3所示:50.步骤301,在第一sf处理第一业务报文之后,第一sff基于第二sfc转发表确定下一个sf为第三sf,以及与第三sf相对应的si值和spi。51.步骤302,第一sff基于业务处理对应关系信息确定与第三sf对应的第三sff。52.步骤303,第一sff生成第三业务报文并发送给第三sff;其中,第三业务报文中携带有与第三sf相对应的si值和spi。53.步骤304,第三sff根据第三业务报文携带的与第三sf相对应的si值和spi,并基于第二sfc转发表确定当前sf为第三sf,控制第三sf对第三业务报文进行处理。nsh(network service header,网络服务报头)是为业务链设计的封装格式,可以使用nsh格式生成业务报文。54.步骤305,第二sff接收到第三sff发送的第二业务报文。55.步骤306,第二sff基于第一sfc转发表并根据从第二业务报文中提取的si值和spi,确定当前sf为第二sf,控制第二sf处理第二业务报文。56.在一个实施例,控制器如果确定删除了第三sf,则将第一sfc转发表发送给第一sff,以使第一sff使用第一sfc转发表替换第二sfc转发表,并控制第三sff删除第二sfc转发表。第一sff和第三sff基于第一sfc转发表进行业务报文的处理以及转发。57.在一个实施例中,如图4所示,控制器生成与业务功能路径sfp中的4个sf相对应的第一sfc转发表(位于图4中左侧的转发表);其中,第一sfc转发表包括4条转发信息,转发信息包含spi、si值和sf信息;4条转发信息的4个si值被设置为不连续的4个数值:255,240,220,210。58.控制器生成第一sfc转发表时,使用不连续的si值,并根据具体业务设计si值之间的间隔,使得si值和si值之间有足够的空间可以插入或者移出sf,并将第一sfc转发表下发给sfp中所有的sff。控制器设置业务处理对应关系信息,业务处理对应关系信息包括多条对应关系信息,对应关系信息为sff与sf的对应信息。在转发业务报文时,sff通过查询业务处理对应关系信息确定sf对应的下游sff,将业务报文转发给查询出的下游sff。59.报文达到sff1之后,查找第一sfc转发表确定si=255对应的sf是cgn,将业务报文转发给cgn进行处理。这时临时需要在dpi和fw之间插入一个sf(load balance,位于sff5)。控制器生成第二sfc转发表,将si=235及其对应的lb加入第二sfc转发表(位于图4中右侧的转发表),其他的转发信息不变,并将第二sfc转发表下发给sff2(第一sff)和sff5(第三sff)。60.控制器基于lb与sff5的对应关系更新业务处理对应关系信息,并下发给全部sff。sff1对cgn处理后的业务报文进行nsh封装,并在业务报文中加入spi=22,si值=240;sff1通过查询业务处理对应关系信息确定与dpi对应的sff为sff2,将业务报文发送给sff2。61.sff2查找第二sfc转发表确定下一个si值是235,将dpi处理后的报文进行nsh封装并加入spi=22,si=235;sff2查询业务处理对应关系信息确定与lb对应的sff为sff5,将业务报文转发给sff5。基于相同的处理方式,sff5根据第二sfc转发表以及业务处理对应关系信息将业务报文转发给sff3(第二sff),业务报文包含spi=22,si=220。sff3收到业务报文后,查找第一sfc转发表,将业务报文转发给sff4,业务报文包含spi=22,si=210。sff4查找第一sfc转发表继续转发报文,所有的下游sff都使用旧的第一sfc转发表。62.在一个实施例中,如图5所示,本公开提供一种控制器50,包括:转发表生成模块51、转发表更新模块52和处理关系设置模块53。转发表生成模块51生成与业务功能路径sfp中的全部业务功能处理器sf相对应的第一sfc转发表。第一sfc转发表包括多条转发信息,转发信息包括业务路径标识spi、业务索引si值和sf信息;多条转发信息的多个si值被设置为不连续的多个数值;63.转发表更新模块52如果确定在第一sf和第二sf之间插入第三sf,则基于第一sfc转发表确定分别与第一sf和第二sf相对应的第一转发信息和第二转发信息。转发表更新模块52在第一sfc转发表中增加与第三sf相对应的第三转发信息,生成第二sfc转发表;其中,在第一转发信息的si值和第二转发信息的si值之间确定一个数值,作为第三转发信息的si值。64.在第一sfc转发表中,任意相邻的两个转发信息的两个si值之间的差值大于预设的间隔阈值。在第一sfc转发表中,多个si值被设置为由大到小的多个数值,并且,任意相邻的两个转发信息的两个si值之间的差值都不相同。65.转发表生成模块51在生成第一sfc转发表之后,将第一sfc转发表发送给sfp中的全部sff。转发表更新模块52在生成第二sfc转发表之后,确定分别与第一sf和第三sf相对应的第一sff和第三sff,将第二sfc转发表发送给第一sff和第三sff,其中,第一sff使用第二sfc转发表替换第一sfc转发表。66.在一个实施例中,处理关系设置模块53设置与sfp中的全部sf与全部sff相对应的业务处理对应关系信息,将业务处理对应关系信息发送给sfp中的全部sff。转发表更新模块52如果确定删除了第三sf,则将第一sfc转发表发送给第一sff,以使第一sff使用第一sfc转发表替换第二sfc转发表,并控制第三sff删除第二sfc转发表。67.在一个实施例中,图6为根据本公开的控制器的另一个实施例的模块示意图。如图6所示,该装置可包括存储器61、处理器62、通信接口63以及总线64。存储器61用于存储指令,处理器62耦合到存储器61,处理器62被配置为基于存储器61存储的指令执行实现上述的基于业务功能链的报文转发方法。68.存储器61可以为高速ram存储器、非易失性存储器(non-volatile memory)等,存储器61也可以是存储器阵列。存储器61还可能被分块,并且块可按一定的规则组合成虚拟卷。处理器62可以为中央处理器cpu,或专用集成电路asic(application specific integrated circuit),或者是被配置成实施本公开的基于业务功能链的报文转发方法的一个或多个集成电路。69.在一个实施例中,如图7所示,本公开提供一种基于业务功能链sfc的报文转发系统,包括如上任一个实施例中的控制器71、第一sff 72、第二sff 73和第三sff 74。第一sff 72在第一sf 75处理第一业务报文之后,基于第二sfc转发表确定下一个sf为第三sf 74,以及与第三sf 77相对应的si值和spi。第一sff 72基于业务处理对应关系信息确定与第三sf 77对应的第三sff 74。第一sff 72生成第三业务报文并发送给第三sff 74,其中,第三业务报文中携带有与第三sf相对应的si值和spi。70.第三sff 74根据第三业务报文携带的与第三sf相对应的si值和spi,并基于第二sfc转发表确定当前sf为第三sf 77,控制第三sf 77对第三业务报文进行处理。第二sff 73接收第三sff 74发送的第二业务报文,基于第一sfc转发表并根据从第二业务报文中提取的si值和spi,确定当前sf为第二sf 76,控制第二sf 76处理第二业务报文。71.在一个实施例中,本公开提供一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,指令被处理器执行时实现如上任一个实施例中的基于业务功能链的报文转发方法。72.上述实施例提供的基于业务功能链的报文转发方法、系统、控制器以及存储介质,通过非均匀递减的方式设置si值,用于给sf的插入提供空间,只需对更新的sf及其前一跳sf所对应的sff进行转发表的更新,解决了移动环境下因为sfp业务节点的改变而导致全部下游sff需进行转发表更新的问题,能够减少转发面的数据发送量,减少系统资源的占用量。73.可能以许多方式来实现本公开的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和系统。用于方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。74.本公开的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本公开限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本公开的原理和实际应用,并且使本领域的普通技术人员能够理解本公开从而设计适于特定用途的带有各种修改的各种实施例。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部