报文转发方法、装置、系统和计算机可读存储介质

文档序号:1675560 发布日期:2019-12-31 浏览:26次 >En<

阅读说明:本技术 报文转发方法、装置、系统和计算机可读存储介质 (Message forwarding method, device, system and computer readable storage medium ) 是由 黄灿灿 伍佑明 陈华南 龚霞 朱永庆 于 2018-06-21 设计创作,主要内容包括:本发明公开了一种报文转发方法、装置、系统和计算机可读存储介质,涉及数据通信领域。报文转发方法包括:服务功能转发器SFF从服务功能链SFC报文的报头中获取熵字段中的熵值,其中,熵值是根据报文对应的流量的传输信息确定的;SFF根据熵值确定报文的转发路径;SFF将报文转发到确定的转发路径上。本发明的实施例可以令同一条流量的报文通过同一路径转发,而不同流量的报文实现负载分担,减少了对特定协议的依赖,提高了流量负载分担的应用广度。(The invention discloses a message forwarding method, a message forwarding device, a message forwarding system and a computer readable storage medium, and relates to the field of data communication. The message forwarding method comprises the following steps: the service function forwarder SFF acquires an entropy value in an entropy field from a header of a service function chain SFC message, wherein the entropy value is determined according to transmission information of flow corresponding to the message; the SFF determines a forwarding path of the message according to the entropy value; and the SFF forwards the message to the determined forwarding path. The embodiment of the invention can make the message with the same flow transmitted through the same path, and the message with different flows realize load sharing, thereby reducing the dependence on a specific protocol and improving the application range of the flow load sharing.)

报文转发方法、装置、系统和计算机可读存储介质

技术领域

本发明涉及数据通信领域,特别涉及一种报文转发方法、装置、系统和计算机可读存储介质。

背景技术

现有的SFC负载分担是通过MPLS的entropy(熵)标签来实现的。MPLS专门为熵值开辟了标签值空间以选择转发路径。但是这种使用MPLS熵标签来实现SFC负载均衡的方案有如下问题。

(1)entropy标签在MPLS网络中的应用(RFC6790)已经被RFC(7447)废止了。

(2)这种方案只适用于使用MPLS来承载SFC的场景,使用范围过小。

发明内容

本发明实施例所要解决的一个技术问题是:如何提高流量负载分担的应用广度。

根据本发明一些实施例的第一个方面,提供一种报文转发方法,包括:服务功能转发器SFF从服务功能链SFC报文的报头中获取熵字段中的熵值,其中,熵值是根据报文对应的流量的传输信息确定的;SFF根据熵值确定报文的转发路径;SFF将报文转发到确定的转发路径上。

在一些实施例中,SFF根据熵值确定报文的转发路径包括:SFF计算熵值对等价路径的个数取模后的余数;SFF将余数对应的路径确定为报文的转发路径。

在一些实施例中,传输信息包括IP五元组;和/或,SFC报文的报头为网络服务报头NSH报头。

在一些实施例中,报文转发方法还包括:SFC分类器对流量的传输信息进行哈希计算,获得熵值;SFC分类器将熵值添加到NSH报头的熵字段中,其中,NSH报头位于流量的报文中。

根据本发明一些实施例的第二个方面,提供一种服务功能转发器,包括:熵值获取模块,被配置为从服务功能链SFC报文的报头中获取熵字段中的熵值,其中,熵值是根据报文对应的流量的传输信息确定的;转发路径确定模块,被配置为根据熵值确定报文的转发路径;报文转发模块,被配置为将报文转发到确定的转发路径上。

在一些实施例中,转发路径确定模块进一步被配置为计算熵值对等价路径的个数取模后的余数,将余数对应的路径确定为报文的转发路径。

在一些实施例中,传输信息包括IP五元组;和/或,SFC报文的报头为网络服务报头NSH报头。

根据本发明一些实施例的第三个方面,提供一种报文转发系统,包括:前述任意一种服务功能转发器;和,SFC分类器,被配置为对流量的传输信息进行哈希计算,获得熵值,并将熵值添加到NSH报头的熵字段中,其中,NSH报头位于流量的报文中。

根据本发明一些实施例的第四个方面,提供一种服务功能转发器,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行前述任意一种报文转发方法。

根据本发明一些实施例的第五个方面,提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现前述任意一种报文转发方法。

上述发明中的一些实施例具有如下优点或有益效果:本发明的实施例可以令同一条流量的报文通过同一路径转发,而不同流量的报文实现负载分担,减少了对特定协议的依赖,提高了流量负载分担的应用广度。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为根据本发明一些实施例的报文转发方法的示例性流程图。

图2为根据本发明另一些实施例的报文转发方法的示例性流程图。

图3为根据本发明一些实施例的熵值添加方法的示例性流程图。

图4为根据本发明一些实施例的报文转发系统的示例性结构图。

图5为根据本发明一些实施例的SFF的示例性结构图。

图6为根据本发明另一些实施例的SFF的示例性结构图。

图7为根据本发明又一些实施例的SFF的示例性结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。

在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

图1为根据本发明一些实施例的报文转发方法的示例性流程图。如图1所示,该实施例的报文转发方法包括步骤S102~S

在步骤S102中,服务功能转发器(Service Function Forwarder,简称:SFF)从服务功能链(Service Function Chaining,简称:SFC)报文的报头中获取熵字段中的熵值,其中,熵值是根据报文对应的流量的传输信息确定的。同一条流量具有相同的传输信息。

在一些实施例中,传输信息例如可以包括IP五元组,即源IP地址、目的IP地址、源MAC地址、目的MAC地址、端口号。具有同样的IP五元组的报文可以被认为属于同一条流量。

在一些实施例中,熵值可以是报文的IP五元组的哈希值。

在一些实施例中,SFC报文的报头为网络服务报头(Network Service Head,简称:NSH)。

在步骤S104中,SFF根据熵值确定报文的转发路径。

在步骤S106中,SFF将报文转发到确定的转发路径上。

为了防止到达乱序,同一条流量的报文尽量避免通过多个不同路径转发。由于熵值是根据流量的传输信息确定的,因此SFF是间接根据流量的传输信息确定报文的转发路径,从而使同一条流量的报文在同一条路径上转发。而不同的流量由于传输信息不同,会被尽量分配到不同的转发路径上。

通过上述实施例的方法,可以令同一条流量的报文通过同一路径转发,而不同流量的报文实现负载分担,减少了对特定协议的依赖,提高了流量负载分担的应用广度。

在一些实施例中,SFF可以根据熵值和等价路径的个数来确定报文的转发路径。下面参考图2描述本发明报文转发方法的实施例。

图2为根据本发明另一些实施例的报文转发方法的示例性流程图。如图2所示,该实施例的报文转发方法包括步骤S202~S208。

在步骤S202中,SFF从服务功能链SFC报文的报头中获取熵字段中的熵值,其中,熵值是根据报文对应的流量的传输信息确定的。

在步骤S204中,SFF计算熵值对等价路径(Equal-Cost MultiPath Routing,简称:ECMP)的个数取模后的余数。等价路径的数量可以从SFF中获取。在一些实施例中,采用cost(开销)值来标记等价路径,具有相同cost值的路径是等价路径。一个路由器上同一个cost值的个数就是等价路径的个数。

在步骤S206中,SFF将余数对应的路径确定为报文的转发路径。例如,在熵值15、等价路径的个数为4的情况下,可以将15模4后的余数3对应的转发路径作为报文的转发路径。

在步骤S208中,SFF将报文转发到确定的转发路径上。

通过上述实施例的方法,可以通过取模的方式确定同一条流量对应的转发路径,提高了流量负载分担的应用广度。

在一些实施例中,可以由SFC分类器(classifier)将熵值添加到报文中。下面参考图3描述本发明熵值添加方法的实施例。

图3为根据本发明一些实施例的熵值添加方法的示例性流程图。如图3所示,该实施例的报文转发方法包括步骤S302~S308。

在步骤S302中,SFC分类器对流量的传输信息进行哈希计算,获得熵值。在一些实施例中,熵值可以由IP五元组进行哈希计算获得。

在步骤S304中,SFC分类器将熵值添加到NSH报头的熵字段中,其中,NSH报头位于流量的报文中。在一些实施例中,SFC分类器可以在NSH的报文头中增加一个熵字段来存储熵值,例如可以增加一个20bit的字段。

SFC分类器用于识别网络流量,并将网络流量分配到不同的SFC。SFC分类器可以运行在多种设备上,例如可以位于SFC的头结点。SFC分类器还可以为报文添加报头,报头的类型例如可以为NSH报头。从而可以利用SFC分类器添加报头的时机为报文添加熵值。

下面参考两条示例性的流量信息,描述本发明一些实施例中的报文转发过程。设流量1的IP五元组为{源IP地址1,目的IP地址1,源MAC地址1,目的IP地址1,端口号1},流量2的IP五元组为{源IP地址2,目的IP地址2,源MAC地址2,目的IP地址2,端口号2}。这两条不同的流量都需要通过SFC X=A-B-C来处理。

该SFC X具有两条负载分担路径,分别为:

SFC X1:A-B1-C

SFC X2:A-B2-C

当流量1或流量2的报文从分类器发出时,发现到达A并不存在负载分担的路径,因此流量1、流量2均到达A。当流量1或流量2的报文从A出发去往B时,SFF发现存在两条分担路径。因此,SFF将流量1的熵值对2取模,如果余数为0则令报文去往B1,如果余数为1则令报文去往B2。流量2的处理方式类似,这里不再赘述。当网络中的流量足够多时,B1和B2的负载将非常接近,从而实现了流量负载分担。

下面参考图4描述本发明报文转发系统的实施例。

图4为根据本发明一些实施例的报文转发系统的示例性结构图。如图4所示,该实施例的报文转发系统40包括SFF410和SFC分类器420。

SFC分类器420被配置为对流量的传输信息进行哈希计算,获得熵值,并将熵值添加到NSH报头的熵字段中,其中,NSH报头位于流量的报文中。

下面参考图5描述本发明SFF的实施例。

图5为根据本发明一些实施例的SFF的示例性结构图。如图5所示,该实施例的SFF500包括:熵值获取模块5100,被配置为从服务功能链SFC报文的报头中获取熵字段中的熵值,其中,熵值是根据报文对应的流量的传输信息确定的;转发路径确定模块5200,被配置为根据熵值确定报文的转发路径;报文转发模块5300,被配置为将报文转发到确定的转发路径上。

在一些实施例中,转发路径确定模块5200进一步被配置为计算熵值对等价路径的个数取模后的余数,将余数对应的路径确定为报文的转发路径。

在一些实施例中,传输信息包括IP五元组。

在一些实施例中,SFC报文的报头为网络服务报头NSH报头。

图6为根据本发明另一些实施例的SFF的示例性结构图。如图6所示,该实施例的SFF600包括:存储器610以及耦接至该存储器610的处理器620,处理器620被配置为基于存储在存储器610中的指令,执行前述任意一个实施例中的报文转发方法。

其中,存储器610例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。

图7为根据本发明又一些实施例的SFF的示例性结构图。如图7所示,该实施例的SFF700包括:存储器710以及处理器720,还可以包括输入输出接口730、网络接口740、存储接口750等。这些接口730,740,750以及存储器710和处理器720之间例如可以通过总线760连接。其中,输入输出接口730为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口740为各种联网设备提供连接接口。存储接口750为SD卡、U盘等外置存储设备提供连接接口。

本发明的实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现前述任意一种报文转发方法。

本领域内的技术人员应当明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种BGP报文处理方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!