报文传输方法、业务链系统以及计算机可读存储介质与流程

文档序号:16401888发布日期:2018-12-25 20:10阅读:197来源:国知局
报文传输方法、业务链系统以及计算机可读存储介质与流程

本发明涉及移动通信技术领域,尤其涉及一种报文传输方法、业务链系统以及计算机可读存储介质。

背景技术

增值业务(value-addedservice,vas)越来越丰富。为了解决增值业务的灵活部署,引入了业务链(servicefunctionchain,sfc)的技术。在一个业务链系统中,存在多个业务链,每一个业务链是一系列顺序的sf(servicefunction,业务功能)序列。各个业务链上的sf个数,种类,顺序可以是不同的,不同的流走不同业务链。

当部署了业务链的时候,报文要在业务链上不支持nsh(networkserviceheader,网络业务头)的sf,业务功能代理节点(sfcproxy)之间进行多次转发,增加了网络带宽的消耗和转发时延,造成服务质量下降。



技术实现要素:

本发明的主要目的在于提供一种报文传输方法、业务链系统以及计算机可读存储介质,旨在解决报文要在业务链上不支持nsh的业务功能节点,业务功能代理节点之间进行多次转发,增加了网络带宽的消耗和转发时延,造成服务质量下降的技术问题。

为实现上述目的,本发明提供一种报文传输方法,所述报文传输方法包括步骤:

当业务功能代理节点接收到分类器发送的网络流报文时,检测所述网络流报文是否为网络流的第一个报文;

若所述网络流报文不是所述网络流的第一个报文,则获取所述网络流对应记录的标识信息,并判断所述标识信息是否为第一标识;

若所述标识信息是第一标识,则获取业务链控制器发送的业务链路径信息中的优化传输路径,按照所述优化传输路径在业务链中传输所述网络流报文;

其中,所述优化传输路径为当所述网络流报文需要传输给所述业务链的下一跳时,所述业务功能代理节点将所述网络流报文发送给下一跳的业务功能节点。

优选地,所述当业务功能代理节点接收到网络流报文时,检测所述网络流报文是否为网络流的第一个报文的步骤之后,还包括:

若所述网络流报文为所述网络流的第一个报文,则将所述第一个报文记为上行第一报文;

建立与所述上行第一报文对应网络流的记录,并为所述记录添加第二标识;

将所述上行第一报文按照所述业务链路径信息中的默认传输路径发送给目的网络,以供所述目的网络返回与所述上行第一报文对应的下行第一报文;

当接收到所述下行第一报文时,将所述记录的第二标识更改为第一标识;

其中,所述第二标识表示未接收到所述下行第一报文,所述第一标识表示已接收到所述下行第一报文;所述默认传输路径为当所述网络流报文需要传输给所述业务链的下一跳时,所述业务功能代理节点将所述网络流报文发送给下一跳的业务功能代理节点。

优选地,所述建立与所述上行第一报文对应网络流的记录,并为所述记录添加第二标识的步骤包括:

获取所述上行第一报文中的ip五元组信息和网络业务头nsh的头信息;

根据所述ip五元组信息和所述nsh的头信息得到所述上行第一报文对应网络流的记录,并为所述记录添加第二标识。

优选地,所述nsh的头信息包括业务路径标识和业务标识,通过所述业务路径标识和业务标识确定所述业务链中各个业务功能节点和业务功能代理节点之间的对应关系。

优选地,所述将所述上行第一报文按照所述业务链路径信息中的默认传输路径发送给目的网络,以供所述目的网络返回与所述上行第一报文对应的下行第一报文的步骤包括:

解除所述上行第一报文的网络业务头nsh封装,并将解除封装后的所述上行第一报文发送给与所述业务功能代理节点对应的业务功能节点,以供所述业务功能节点按照预设功能处理所述上行第一报文,并将处理后的所述上行第一报文返回给所述业务功能代理节点;

当接收到处理后的所述上行第一报文时,对处理后的所述上行第一报文进行nsh封装,得到封装后的所述上行第一报文,并发送给下一跳的所述业务功能代理节点,直到所述业务链中最后一跳的业务功能代理节点将所述上行第一报文发送给目的网络,以供所述目的网络返回与所述上行第一报文对应的下行第一报文。

优选地,所述若所述网络流报文不是所述网络流的第一个报文,则获取所述网络流对应记录的标识信息,并判断所述标识信息是否为第一标识的步骤之后,还包括:

若所述记录的标识信息不是第一标识,则按照所述业务链路径信息中的默认传输路径传输所述网络流报文。

优选地,所述当业务功能代理节点接收到分类器发送的网络流报文时,检测所述网络流报文是否为网络流的第一个报文的步骤包括:

当业务功能代理节点接收到分类器发送的网络流报文时,获取所述网络流报文中的ip五元组,并检测是否存在与所述ip五元组一致的预存ip五元组;

若未存在与所述ip五元组一致的预存ip五元组,则确定所述网络流报文为所述网络流的第一个报文;

若存在与所述ip五元组一致的预存ip五元组,则确定所述网络流报文不是所述网络流的第一个报文。

优选地,所述业务链中至少存在一个业务功能节点,每一业务功能节点对应着一个业务功能代理节点。

此外,为实现上述目的,本发明还提供一种业务链系统,所述业务链系统包括业务功能代理节点、分类器、业务链控制器、业务功能节点、存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的报文传输程序,所述报文传输程序被所述处理器执行时实现如下步骤:

当所述业务功能代理节点接收到所述分类器发送的网络流报文时,检测所述网络流报文是否为网络流的第一个报文;

若所述网络流报文不是所述网络流的第一个报文,则获取所述网络流对应记录的标识信息,并判断所述标识信息是否为第一标识;

若所述标识信息是第一标识,则获取所述业务链控制器发送的业务链路径信息中的优化传输路径,按照所述优化传输路径在所述业务链中传输所述网络流报文;

其中,所述优化传输路径为当所述网络流报文需要传输给所述业务链的下一跳时,所述业务功能代理节点将所述网络流报文发送给下一跳的所述业务功能节点。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有报文传输程序,所述报文传输程序被处理器执行时实现如下步骤:

当接收到分类器发送的网络流报文时,检测所述网络流报文是否为网络流的第一个报文;

若所述网络流报文不是所述网络流的第一个报文,则获取所述网络流对应记录的标识信息,并判断所述标识信息是否为第一标识;

若所述标识信息是第一标识,则获取业务链控制器发送的业务链路径信息中的优化传输路径,按照所述优化传输路径在所述业务链中传输所述网络流报文;

其中,所述优化传输路径为当所述网络流报文需要传输给所述业务链的下一跳时,将所述网络流报文发送给下一跳的业务功能节点。

本发明通过当业务功能代理节点接收到分类器发送的网络流报文时,检测所述网络流报文是否为网络流的第一个报文;若所述网络流报文不是所述网络流的第一个报文,则获取所述网络流对应记录的标识信息,并判断所述标识信息是否为第一标识;若所述标识信息是第一标识,则获取业务链控制器发送的业务链路径信息中的优化传输路径,按照所述优化传输路径在业务链中传输所述网络流报文;其中,所述优化传输路径为当所述网络流报文需要传输给所述业务链的下一跳时,所述业务功能代理节点将所述网络流报文发送给下一跳的业务功能节点。相对于现有技术当需要将报文发送给业务链的下一跳时,发送给下一跳的业务功能代理节点,本发明中当需要将报文发送给业务链的下一跳时,直接将报文发送给下一跳的业务功能节点,对于业务链的第一跳或者最后一跳的业务功能代理节点而言,数据转发量可降低25%,对于业务链中除第一跳或者最后一跳的业务功能代理节点而言,数据转发量可降低50%。因此,本发明减少了报文在业务链上不支持nsh的业务功能节点和业务功能代理节点之间的转发次数,缩短了报文在业务链中的传输路径,以及减小转发时延,提高了业务服务质量。

附图说明

图1是本发明实施例方案涉及的业务链系统的网络架构图;

图2为本发明报文传输方法第一实施例的流程示意图;

图3为本发明实施例中网络流报文按照优化传输路径在业务链中传输的一种示意图;

图4为本发明报文传输方法第二实施例的流程示意图;

图5为本发明实施例中网络流报文按照默认传输路径在业务链中传输的一种示意图;

图6为本发明实施例中网络流报文在业务链中传输的系统示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例的解决方案主要是:当业务功能代理节点接收到分类器发送的网络流报文时,检测所述网络流报文是否为网络流的第一个报文;若所述网络流报文不是所述网络流的第一个报文,则获取所述网络流对应记录的标识信息,并判断所述标识信息是否为第一标识;若所述标识信息是第一标识,则获取业务链控制器发送的业务链路径信息中的优化传输路径,按照所述优化传输路径在业务链中传输所述网络流报文;其中,所述优化传输路径为当所述网络流报文需要传输给所述业务链的下一跳时,所述业务功能代理节点将所述网络流报文发送给下一跳的业务功能节点。以解决报文要在业务链上不支持nsh的业务功能节点,业务功能代理节点之间进行多次转发,增加了网络带宽的消耗和转发时延,造成服务质量下降的问题。

如图1所示,图1是本发明实施例方案涉及的业务链系统的网络架构图。

本发明实施例中的业务链系统包括多个sfc功能节点,具体地,参照图1,业务链系统包括的sfc功能节点有:分类器105(classifier),业务功能转发器104(servicefunctionforwarder,sff),不支持nsh的业务功能节点101(servicefunction,sf)和支持nsh的业务功能节点103,业务功能代理节点102(sfcproxy),业务链控制器106(sfc-controller)。在一个业务链系统中,分类器105、业务功能节点和业务功能转发器104可有一个或者多个实例,业务功能代理节点102可有0个、1个或者多个实例。在一个业务链系统中,存在多个业务链,每一个业务链是一系列顺序的业务功能节点序列。各个业务链上的业务功能节点个数,种类,顺序可以相同,也可以不同,不同的网络流与不同业务链相关联。每个业务链中至少存在一个业务功能节点,每一业务功能节点对应着一个业务功能代理节点102。

在本发明实施例中,为了使报文能够在各个sfc功能节点之间转发而不需要改动基础网络设备,定义了网络业务头nsh用于封装报文。在将报文封装在nsh后,由于不需要依赖于报文的目的地址进行转发,因此可以在不改动基础网络设备的基础上,在sfc功能节点之间传输报文。

网络流是指在一段时间内,一个源ip(internetprotocol,网络之间互连的协议)地址和目的ip地址之间传输的单向报文流,所有报文具有相同的源端口号、目的端口号、传输层协议、源ip地址和目的ip地址,即ip五元组内容相同。由此可知,同一网络流中的各个报文的ip五元组是相同的。

业务功能节点101和业务功能节点103是按照特定功能要求对网络流报文进行处理的功能单元,业务功能节点从一个或者多个业务功能转发器104接收网络流报文,在处理该网络流报文后,向一个或者多个业务功能转发器104发送处理后的网络流报文。

业务功能代理节点102作为不支持nsh的业务功能节点101的代理,对需要发送给业务功能节点101的网络流报文,为业务功能节点101解除掉nsh封装,对从业务功能节点101接收到的网络流报文进行nsh封装,然后将封装后的网络流报文发送给其它节点,如发送给业务功能转发器104。

业务功能转发器104用于根据nsh的头信息中的业务路径标识(servicepathidentifier,spi)和业务标识(serviceindex,si)转发网络流报文。业务功能节点和业务功能转发器104一起构成了sfc的数据平面。

分类器105用于识别网络流,并将网络流与业务链进行关联,将网络流发送到与其关联的业务链上。

业务链控制器106是业务链中控制面功能,用于根据业务链的拓扑生成对应的报文传输路径,并将业务传输路径发送给分类器105、业务功能转发器104和业务功能节点等。

需要说明的是,nsh是一个数据面传输协议,服务平面根据nsh的头信息完成网络流报文的转发控制和服务(实现sfc控制面下发的策略),一个nsh的头信息包含三部分:①nsh基本头信息;②服务路径信息;③元数据metadata信息。其中,服务路径信息包括业务路径标识和业务标识,业务路径标识用于表示一个业务功能代理节点102,业务标识用于表示业务功能代理节点102对应的业务功能节点所在位置。

本领域技术人员可以理解,图1中示出的业务链系统结构并不构成对业务链系统的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

在业务链系统中,还包括处理器,存储器和通信总线。其中,通信总线用于实现这些组件之间的连接通信。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器可选的还可以是独立于前述处理器的存储装置。

在本发明实施例中,作为一种计算机存储介质的存储器中可以包括操作系统以及报文传输程序。其中,操作系统是管理和控制业务链系统硬件和软件资源的程序,支持报文传输程序以及其它软件和/或程序的运行。

在业务链系统中,处理器可以用于调用存储器中存储的报文传输程序,并执行以下步骤:

当业务功能代理节点102接收到分类器105发送的网络流报文时,检测所述网络流报文是否为网络流的第一个报文;

若所述网络流报文不是所述网络流的第一个报文,则获取所述网络流对应记录的标识信息,并判断所述标识信息是否为第一标识;

若所述标识信息是第一标识,则获取业务链控制器106发送的业务链路径信息中的优化传输路径,按照所述优化传输路径在业务链中传输所述网络流报文;

其中,所述优化传输路径为当所述网络流报文需要传输给所述业务链的下一跳时,所述业务功能代理节点102将所述网络流报文发送给下一跳的业务功能节点101。

进一步地,所述当业务功能代理节点102接收到网络流报文时,检测所述网络流报文是否为网络流的第一个报文的步骤之后,处理器还可以用于调用存储器中存储的报文传输程序,执行以下步骤:

若所述网络流报文为所述网络流的第一个报文,则将所述第一个报文记为上行第一报文;

建立与所述上行第一报文对应网络流的记录,并为所述记录添加第二标识;

将所述上行第一报文按照所述业务链路径信息中的默认传输路径发送给目的网络,以供所述目的网络返回与所述上行第一报文对应的下行第一报文;

当接收到所述下行第一报文时,将所述记录的第二标识更改为第一标识;

其中,所述第二标识表示未接收到所述下行第一报文,所述第一标识表示已接收到所述下行第一报文;所述默认传输路径为当所述网络流报文需要传输给所述业务链的下一跳时,所述业务功能代理节点102将所述网络流报文发送给下一跳的业务功能代理节点102。

进一步地,所述建立与所述上行第一报文对应网络流的记录,并为所述记录添加第二标识的步骤包括:

获取所述上行第一报文中的ip五元组信息和网络业务头nsh的头信息;

根据所述ip五元组信息和所述nsh的头信息得到所述上行第一报文对应网络流的记录,并为所述记录添加第二标识。

进一步地,所述nsh的头信息包括业务路径标识和业务标识,通过所述业务路径标识和业务标识确定所述业务链中各个业务功能节点101和业务功能代理节点102之间的对应关系。

进一步地,所述将所述上行第一报文按照所述业务链路径信息中的默认传输路径发送给目的网络,以供所述目的网络返回与所述上行第一报文对应的下行第一报文的步骤包括:

解除所述上行第一报文的网络业务头nsh封装,并将解除封装后的所述上行第一报文发送给与所述业务功能代理节点102对应的业务功能节点101,以供所述业务功能节点101按照预设功能处理所述上行第一报文,并将处理后的所述上行第一报文返回给所述业务功能代理节点102;

当接收到处理后的所述上行第一报文时,对处理后的所述上行第一报文进行nsh封装,得到封装后的所述上行第一报文,并发送给下一跳的所述业务功能代理节点102,直到所述业务链中最后一跳的业务功能代理节点102将所述上行第一报文发送给目的网络,以供所述目的网络返回与所述上行第一报文对应的下行第一报文。

进一步地,所述若所述网络流报文不是所述网络流的第一个报文,则获取所述网络流对应记录的标识信息,并判断所述标识信息是否为第一标识的步骤之后,处理器还可以用于调用存储器中存储的报文传输程序,执行以下步骤:

若所述记录的标识信息不是第一标识,则按照所述业务链路径信息中的默认传输路径传输所述网络流报文。

进一步地,所述当业务功能代理节点102接收到分类器105发送的网络流报文时,检测所述网络流报文是否为网络流的第一个报文的步骤包括:

当业务功能代理节点102接收到分类器105发送的网络流报文时,获取所述网络流报文中的ip五元组,并检测是否存在与所述ip五元组一致的预存ip五元组;

若未存在与所述ip五元组一致的预存ip五元组,则确定所述网络流报文为所述网络流的第一个报文;

若存在与所述ip五元组一致的预存ip五元组,则确定所述网络流报文不是所述网络流的第一个报文。

进一步地,所述业务链中至少存在一个业务功能节点101,每一业务功能节点101对应着一个业务功能代理节点102。

基于上述的结构,提出报文传输方法的各个实施例。

参照图2,图2为本发明报文传输方法第一实施例的流程示意图。

在本实施例中,提供了报文传输方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

在本发明实施例中,报文传输方法是在ietf(theinternetengineeringtaskforce,互联网工程任务组)相关协议定义的sfc架构基础实现的。需要说明的是,由于本发明所要解决的技术问题是在业务链中不支持nsh的业务功能节点101,业务功能代理节点102之间多次转发报文,增加了网络带宽的消耗和转发时延,造成服务质量下降的问题。由此可知,本发明实施例中的业务功能节为不支持nsh的业务功能节点101。

所述报文传输方法包括:

步骤s10,当业务功能代理节点102接收到分类器105发送的网络流报文时,检测所述网络流报文是否为网络流的第一个报文。

当业务功能代理节点102接收到分类器105发送的网络流报文时,检测所接收的网络流报文是否为其所接收该网络流的第一个报文。

进一步地,步骤s10包括:

步骤a,当业务功能代理节点102接收到分类器105发送的网络流报文时,获取所述网络流报文中的ip五元组,并检测是否存在与所述ip五元组一致的预存ip五元组。

步骤b,若未存在与所述ip五元组一致的预存ip五元组,则确定所述网络流报文为所述网络流的第一个报文。

步骤c,若存在与所述ip五元组一致的预存ip五元组,则确定所述网络流报文不是所述网络流的第一个报文。

业务功能代理节点102检测网络流报文是否为该网络流的第一个报文的具体过程为:当业务功能代理节点102接收到分类器105发送的网络流报文时,获取网络流报文中的ip五元组,并检测业务链系统的存储器中是否存在与该ip五元组一致的预存ip五元组。需要说明的是,ip五元组指的是源ip地址,源端口,目的ip地址,目的端口和传输层协议。在本发明实施例中,当业务功能代理节点102第一次接收到某个网络流的报文时,获取该网络流报文的ip五元组,并将所获取的ip五元组存储至存储器中。当存储器中存在某个网络流报文的ip五元组时,表明该业务功能代理节点102已接收过该网络流的报文;当存储器中未存在某个网络流报文的ip五元组时,表明该业务功能代理节点102未接收过该网络流的报文。

当业务链系统的存储器中未存在与该ip五元组一致的预存ip五元组时,业务功能代理节点102确定当前所接收的网络流报文为当前网络流的第一个报文;当存储器中存在与该ip五元组一致的预存ip五元组时,业务功能代理节点102确定当前所接收的网络流报文不是当前网络流的第一个报文。

步骤s20,若所述网络流报文不是所述网络流的第一个报文,则获取所述网络流对应记录的标识信息,并判断所述标识信息是否为第一标识。

若当前所接收的网络流报文不是该网络流的第一个报文,业务功能代理节点102则获取与该网络流对应记录的标识信息,并判断所获取记录的标识信息是否为第一标识。

步骤s30,若所述标识信息是第一标识,则获取业务链控制器106发送的业务链路径信息中的优化传输路径,按照所述优化传输路径在业务链中传输所述网络流报文。

其中,所述优化传输路径为当所述网络流报文需要传输给所述业务链的下一跳时,所述业务功能代理节点102将所述网络流报文发送给下一跳的业务功能节点101。

若该记录的标识信息为第一标识,业务功能代理节点102则获取业务链控制器106发送的业务链路径信息,从业务链路径信息中提取优化传输路径,并按照优化传输路径在业务链中传输该网络流报文。其中,优化传输路径为当网络流报文需要传输给业务链的下一跳时,业务功能代理节点102直接将网络流报文发送给下一跳的业务功能节点101,而不是发送给下一跳的业务功能代理节点102。

在网络流报文进入业务链系统之前,业务链控制器106会下发业务链路径信息给业务链中的各个业务功能代理节点102,通过该业务链路径信息可知道网络流报文需要经过业务功能节点101的个数,以及经过各个业务功能节点101的顺序和各个业务功能节点101对应的业务功能代理节点102等。业务链控制器106下发业务链路径信息的下发方式包括但不限于restful和netconf。

为了更好地理解本发明,下面以业务链中存在三个不支持nsh的业务功能节点101为例进行说明的,这三个业务功能节点101分别为sf1、sf2和sf3,对应地,在该业务链中,存在三个业务功能代理节点102,分别为sfcproxy1,sfcproxy2和sfcproxy3。为了方便描述,在该业务链中,定义上行方向(uplink)业务功能节点101的顺序为sf1,sf2,sf3,对应的下行方向(downlink)为业务功能节点101的顺序为sf3,sf2,sf1。在上行方向,sfcproxy1为业务链第一跳的业务功能代理节点102,sf1为业务链第一跳的业务功能节点101;sfcproxy2为业务链第二跳的业务功能代理节点102,sf2为业务链第二跳的业务功能节点101;sfcproxy3为业务链第三跳的业务功能代理节点102,sf3为业务链第三跳的业务功能节点101。相反地,在下行方向,sfcproxy3为业务链第一跳的业务功能代理节点102,sf3为业务链第一跳的业务功能节点101;sfcproxy2为业务链第二跳的业务功能代理节点102,sf2为业务链第二跳的业务功能节点101;sfcproxy1为业务链第三跳的业务功能代理节点102,sf1为业务链第三跳的业务功能节点101。

可以理解的是,本发明实施例中的上行方向和下行方向只是为了便于区别业务链中的2个方向,在其它实施例中,上行方向与下行方向中业务功能节点101的顺序可以互换。

在网络流报文进入业务链系统时,业务链控制器106会向sfcproxy1,sfcproxy2和sfcproxy3下发各自下一跳的业务功能节点101信息,业务功能节点101信息至少包括下一跳接收该网络流报文的业务功能节点101的ip地址,以便于当前业务功能代理节点102将网络流报文发送给业务链的下一跳。具体地,参照图6,在图6中,sfpinfo表示业务链控制器106向业务链中的业务功能代理节点102下发业务功能节点101信息的过程。当业务功能代理节点102接收到业务链控制器106下发的业务功能节点101信息时,存储所接收的业务功能节点101信息,以便于后续在传输该网络流中其它报文时使用。

进一步地,业务链控制器106也可向sfcproxy1,sfcproxy2和sfcproxy3下发业务链中所有的业务功能节点101信息。当sfcproxy1,sfcproxy2和sfcproxy3接收到业务链控制器106下发的业务链中所有业务功能节点101信息时,sfcproxy1,sfcproxy2和sfcproxy3在所接收的业务功能节点101信息中找到各自所需的业务功能节点101信息,并存储。

具体地,参照图3和图6,在图6中,packet2..n表示除网络流的第一个报文的其它报文。如图3中的虚线所示,当网络流报文为上行报文时,网络流报文按照优化传输路径在业务链中传输的具体过程为:分类器105将网络流数据发送给sfcproxy1,sfcproxy1将网络流报文通过业务功能转发器104发送给sf1,sf1处理后再通过业务功能转发器104将处理后的网络流报文发送给sfcproxy1;sfcproxy1通过业务功能转发器104将网络流报文发送给sf2,sf2处理后再通过业务功能转发器104将处理后的网络流报文发送给sfcproxy2;sfcproxy2通过业务功能转发器104将网络流报文发送给sf3,sf3处理后再通过业务功能转发器104将处理后的网络流报文发送给sfcproxy3,sfcproxy3将所接收的网络流报文发送给目的网络destnetwork。整个过程为:classifier→sfcproxy1→sf1→sfcproxy1→sf2→sfcproxy2→sf3→sfcproxy3→destnetwork。

如图3中实线所示,当网络流报文为下行报文时,网络流报文按照优化传输路径在业务链中传输的具体过程为:destnetwork→sfcproxy3→sf3→sfcproxy3→sf2→sfcproxy2→sf1→sfcproxy1→classifier。

需要说明的是,当目的网络接收到上行报文时,会响应该上行报文,得到与上行报文对应的下行报文,并将该下行报文按照原路返回给分类器105。一个上行报文可对应着一个或者多个下行报文。

进一步地,报文传输方法还包括:

步骤s40,若所述记录的标识信息不是第一标识,则按照所述业务链路径信息中的默认传输路径传输所述网络流报文。

当业务功能代理节点102接收到网络报文不是当前网络流的第一个报文,但务功能代理节点对应记录的标识信息不是第一标识,是第二标识时,业务功能代理节点102按照业务链路径信息中的默认传输路径信息在业务链中传输网络流报文。默认传输路径为当网络流报文需要传输给业务链的下一跳时,业务功能代理节点102将网络流报文发送给下一跳的业务功能代理节点102。

本实施例通过当业务功能代理节点102接收到分类器105发送的网络流报文时,检测所述网络流报文是否为网络流的第一个报文;若所述网络流报文不是所述网络流的第一个报文,则获取所述网络流对应记录的标识信息,并判断所述标识信息是否为第一标识;若所述标识信息是第一标识,则获取业务链控制器106发送的业务链路径信息中的优化传输路径,按照所述优化传输路径在业务链中传输所述网络流报文;其中,所述优化传输路径为当所述网络流报文需要传输给所述业务链的下一跳时,所述业务功能代理节点102将所述网络流报文发送给下一跳的业务功能节点101。相对于现有技术当需要将报文发送给业务链的下一跳时,发送给下一跳的业务功能代理节点102,本发明中当需要将报文发送给业务链的下一跳时,直接将报文发送给下一跳的业务功能节点101,对于业务链的第一跳或者最后一跳的业务功能代理节点102而言,数据转发量可降低25%,对于业务链中除第一跳或者最后一跳的业务功能代理节点102而言,数据转发量可降低50%。因此,本发明减少了报文在业务链上不支持nsh的业务功能节点101和业务功能代理节点102之间的转发次数,缩短了报文在业务链中的传输路径,以及减小转发时延,提高了业务服务质量。

进一步地,提出本发明报文传输方法第二实施例。

所述报文传输方法第二实施例与所述报文传输方法第一实施例的区别在于,参照图4,报文传输方法还包括:

步骤s50,若所述网络流报文为所述网络流的第一个报文,则将所述第一个报文记为上行第一报文。

步骤s60,建立与所述上行第一报文对应网络流的记录,并为所述记录添加第二标识。

步骤s70,将所述上行第一报文按照所述业务链路径信息中的默认传输路径发送给目的网络,以供所述目的网络返回与所述上行第一报文对应的下行第一报文。

当业务功能代理节点102所接收的网络流报文为当前网络流的第一个报文时,将当前网络流的第一个报文记为上行第一报文,建立与上行第一报文对应网络流的记录,并将上行第一报文按照业务链路径信息中默认传输路径发送给目的网络,以供目的网络返回与上行第一报文对应的下行第一报文。其中,默认传输路径为当网络流报文需要传输给业务链的下一跳时,业务功能代理节点102将网络流报文发送给下一跳的业务功能代理节点102。

进一步地,步骤s60包括:

步骤d,获取所述上行第一报文中的ip五元组信息和网络业务头nsh的头信息。

步骤e,根据所述ip五元组信息和所述nsh的头信息得到所述上行第一报文对应网络流的记录,并为所述记录添加第二标识。

其中,所述nsh的头信息包括业务路径标识和业务标识,通过所述业务路径标识和业务标识确定所述业务链中各个业务功能节点101和业务功能代理节点102之间的对应关系。

业务功能代理节点102建立与上行第一报文对应网络流的记录的过程为:业务功能代理节点102获取上行第一报文中的ip五元组信息和nsh的头信息,根据所获取的ip五元组信息和nsh的头信息得到上行第一报文对应网络流的记录,并为该记录添加第二标识。具体地,可将ip五元组信息和nsh的头信息拼接成字符串,形成一条记录,或者采用其它方法将ip五元组信息和nsh的头信息形成一条记录。其中,nsh的头信息包括业务路径标识和业务标识,通过业务路径标识和业务标识确定业务链中各个业务功能节点101和业务功能代理节点102之间的对应关系。

进一步地,步骤s70包括:

步骤f,解除所述上行第一报文的网络业务头nsh封装,并将解除封装后的所述上行第一报文发送给与所述业务功能代理节点102对应的业务功能节点101,以供所述业务功能节点101按照预设功能处理所述上行第一报文,并将处理后的所述上行第一报文返回给所述业务功能代理节点102;

步骤g,当接收到处理后的所述上行第一报文时,对处理后的所述上行第一报文进行nsh封装,得到封装后的所述上行第一报文,并发送给下一跳的所述业务功能代理节点102,直到所述业务链中最后一跳的业务功能代理节点102将所述上行第一报文发送给目的网络,以供所述目的网络返回与所述上行第一报文对应的下行第一报文。

当业务功能代理节点102接收到上行第一报文时,解除上行第一报文的nsh封装,并将解除封装后的上行第一报文发送给与业务功能代理节点102对应的业务功能节点101,以供业务功能节点101按照预设功能处理上行第一报文,并将处理后的上行第一报文返回给业务功能代理节点102。当业务功能代理节点102接收到处理后的上行第一报文时,对处理后的上行第一报文进行nsh封装,得到重新封装后的上行第一报文,并将重新封装后的上行第一报文发送给下一跳的业务功能代理节点102,直到业务链中最后一跳的业务功能代理节点102将上行第一报文发送给目的网络。当目的网络接收到上行第一报文时,响应该上行第一报文,得到与该上行第一报文对应的下行第一报文,并将下行第一报文发送给业务链中的业务功能代理节点102。

需要说明的是,不同的业务功能节点101具备不同的功能,预设功能可为过滤非法url(uniformresourcelocator,统一资源定位符),优化视频数据或者图片数据等。业务链中所传输的网络流报文种类的不同,业务功能节点101对应的预设功能也不一样。在业务功能代理节点102和业务功能节点101之间通过业务功能转发器104传输网络流报文过程中,业务功能代理节点102都需要解除网络流报文的nsh封装和对业务功能节点101所转发的网络流报文重新进行nsh封装。如在sfcproxy1和sf1之间传输网络流报文、以及在sfcproxy1和sf2之间传输网络流报文过程中,都需要对网络流报文进行解nsh封装和重新进行nsh封装的操作。

步骤s80,当接收到所述下行第一报文时,将所述记录的第二标识更改为第一标识,其中,所述第二标识表示未接收到所述下行第一报文,所述第一标识表示已接收到所述下行第一报文。

当业务功能代理节点102接收到下行第一报文时,将对应记录的第二标识信息更改为第一标识,其中,第二标识表示业务功能代理节点102未接收到下行第一报文,第一标识表示业务功能代理节点102已接收到下行第一报文。在本实施例中,第一标识和第二标识可根据具体需要而设置,如当记录的标识信息为rd时,若业务功能代理节点102已接收到下行第一报文,将标识信息rd设置为“是”;若业务功能代理节点102未接收到下行第一报文,将标识信息rd设置为“否”,即第一标识信息为“是”,第二标识信息为“否”。在其它实施例中,也可将第一标识信息设置为“1”,第二标识信息设置为“0”。

参照5和图6,在图6中,packet1-u表示上行第一报文,packet1-d表示下行第一报文。由图5中的虚线可知,上行第一报文按照默认传输路径在业务链中传输的具体过程为:classifier→sfcproxy1→sf1→sfcproxy1→sfcproxy2→sf2→sfcproxy2→sfcproxy3→sf3→sfcproxy3→destnetwork。由图5中的实线可知,下行第一报文按照默认传输路径在业务链中传输的具体过程为:destnetwork→sfcproxy3→sf3→sfcproxy3→sfcproxy2→sf2→sfcproxy2→sfcproxy1→sf1→sfcproxy1→classifier。

本实施例通过当业务功能代理节点102所接收的网络流报文为当前网络流的第一个报文时,按照业务链路径信息中的默认传输路径在业务链中传输网络流的上行第一报文和下行第一报文,并在业务功能代理节点102接收到下行第一报文时,更新对应记录的标识信息,避免了网络流中的第一个报文在业务链传输过程中丢失,业务链中的传输路径没有成功建立的情况出现。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有报文传输程序,所述报文传输程序被处理器执行时实现如下步骤:

当接收到分类器105发送的网络流报文时,检测所述网络流报文是否为网络流的第一个报文;

若所述网络流报文不是所述网络流的第一个报文,则获取所述网络流对应记录的标识信息,并判断所述标识信息是否为第一标识;

若所述标识信息是第一标识,则获取业务链控制器106发送的业务链路径信息中的优化传输路径,按照所述优化传输路径在所述业务链中传输所述网络流报文;

其中,所述优化传输路径为当所述网络流报文需要传输给所述业务链的下一跳时,将所述网络流报文发送给下一跳的业务功能节点101。

进一步地,所述当接收到网络流报文时,检测所述网络流报文是否为网络流的第一个报文的步骤之后,所述报文传输程序被处理器执行时实现如下步骤:

若所述网络流报文为所述网络流的第一个报文,则将所述第一个报文记为上行第一报文;

建立与所述上行第一报文对应网络流的记录,并为所述记录添加第二标识;

将所述上行第一报文按照所述业务链路径信息中的默认传输路径发送给目的网络,以供所述目的网络返回与所述上行第一报文对应的下行第一报文;

当接收到所述下行第一报文时,将所述记录的第二标识更改为第一标识;

其中,所述第二标识表示未接收到所述下行第一报文,所述第一标识表示已接收到所述下行第一报文;所述默认传输路径为当所述网络流报文需要传输给所述业务链的下一跳时,将所述网络流报文发送给下一跳的业务功能代理节点102。

进一步地,所述建立与所述上行第一报文对应网络流的记录,并为所述记录添加第二标识的步骤包括:

获取所述上行第一报文中的ip五元组信息和网络业务头nsh的头信息;

根据所述ip五元组信息和所述nsh的头信息得到所述上行第一报文对应网络流的记录,并为所述记录添加第二标识。

进一步地,所述nsh的头信息包括业务路径标识和业务标识,通过所述业务路径标识和业务标识确定所述业务链中各个业务功能节点101和业务功能代理节点102之间的对应关系。

进一步地,所述将所述上行第一报文按照所述业务链路径信息中的默认传输路径发送给目的网络,以供所述目的网络返回与所述上行第一报文对应的下行第一报文的步骤包括:

解除所述上行第一报文的网络业务头nsh封装,并将解除封装后的所述上行第一报文发送给与所述业务功能代理节点102对应的业务功能节点101,以供所述业务功能节点101按照预设功能处理所述上行第一报文,并将处理后的所述上行第一报文返回给所述业务功能代理节点102;

当接收到处理后的所述上行第一报文时,对处理后的所述上行第一报文进行nsh封装,得到封装后的所述上行第一报文,并发送给下一跳的所述业务功能代理节点102,直到所述业务链中最后一跳的业务功能代理节点102将所述上行第一报文发送给目的网络,以供所述目的网络返回与所述上行第一报文对应的下行第一报文。

进一步地,所述若所述网络流报文不是所述网络流的第一个报文,则获取所述网络流对应记录的标识信息,并判断所述标识信息是否为第一标识的步骤之后,所述报文传输程序被处理器执行时实现如下步骤:

若所述记录的标识信息不是第一标识,则按照所述业务链路径信息中的默认传输路径传输所述网络流报文。

进一步地,所述当接收到分类器105发送的网络流报文时,检测所述网络流报文是否为网络流的第一个报文的步骤包括:

当接收到分类器105发送的网络流报文时,获取所述网络流报文中的ip五元组,并检测是否存在与所述ip五元组一致的预存ip五元组;

若未存在与所述ip五元组一致的预存ip五元组,则确定所述网络流报文为所述网络流的第一个报文;

若存在与所述ip五元组一致的预存ip五元组,则确定所述网络流报文不是所述网络流的第一个报文。

进一步地,所述业务链中至少存在一个业务功能节点101,每一业务功能节点101对应着一个业务功能代理节点102。

本发明计算机可读存储介质具体实施方式与上述报文传输方法各实施例基本相同,在此不再赘述。

此外,本发明实施例还提出一种报文传输装置,该报文传输装置应用于业务链系统中,具体地,报文传输装置包括:

检测模块,用于当接收到分类器105发送的网络流报文时,检测所述网络流报文是否为网络流的第一个报文;

获取模块,用于若所述网络流报文不是所述网络流的第一个报文,则获取所述网络流对应记录的标识信息;

判断模块,用于判断所述标识信息是否为第一标识;

所述获取模块还用于若所述标识信息是第一标识,则获取业务链控制器106发送的业务链路径信息中的优化传输路径;

传输模块,用于按照所述优化传输路径在业务链中传输所述网络流报文;

其中,所述优化传输路径为当所述网络流报文需要传输给所述业务链的下一跳时,将所述网络流报文发送给下一跳的业务功能节点101。

进一步地,报文传输装置还包括:

标记模块,用于若所述网络流报文为所述网络流的第一个报文,则将所述第一个报文记为上行第一报文;

建立模块,用于建立与所述上行第一报文对应网络流的记录,并为所述记录添加第二标识;

发送模块,用于将所述上行第一报文按照所述业务链路径信息中的默认传输路径发送给目的网络,以供所述目的网络返回与所述上行第一报文对应的下行第一报文;

更改模块,用于当接收到所述下行第一报文时,将所述记录的第二标识更改为第一标识;

其中,所述第二标识表示未接收到所述下行第一报文,所述第一标识表示已接收到所述下行第一报文;所述默认传输路径为当所述网络流报文需要传输给所述业务链的下一跳时,将所述网络流报文发送给下一跳的业务功能代理节点102。

进一步地,建立模块包括:

第一获取单元,用于获取所述上行第一报文中的ip五元组信息和网络业务头nsh的头信息;

处理单元,用于根据所述ip五元组信息和所述nsh的头信息得到所述上行第一报文对应网络流的记录,并为所述记录添加第二标识。

进一步地,所述nsh的头信息包括业务路径标识和业务标识,通过所述业务路径标识和业务标识确定所述业务链中各个业务功能节点101和业务功能代理节点102之间的对应关系。

进一步地,发送模块包括:

解封装单元,用于解除所述上行第一报文的网络业务头nsh封装;

发送单元,用于将解除封装后的所述上行第一报文发送给与所述业务功能代理节点102对应的业务功能节点101,以供所述业务功能节点101按照预设功能处理所述上行第一报文,并将处理后的所述上行第一报文返回给所述业务功能代理节点102;

封装单元,用于当接收到处理后的所述上行第一报文时,对处理后的所述上行第一报文进行nsh封装,得到封装后的所述上行第一报文;

所述发送单元还用于将封装后的所述上行第一报文发送给下一跳的所述业务功能代理节点102,直到所述业务链中最后一跳的业务功能代理节点102将所述上行第一报文发送给目的网络,以供所述目的网络返回与所述上行第一报文对应的下行第一报文。

进一步地,所述传输模块还用于若所述记录的标识信息不是第一标识,则按照所述业务链路径信息中的默认传输路径传输所述网络流报文。

进一步地,检测模块包括:

第二获取单元,用于当接收到分类器105发送的网络流报文时,获取所述网络流报文中的ip五元组;

检测单元,用于检测是否存在与所述ip五元组一致的预存ip五元组;

确定单元,用于若未存在与所述ip五元组一致的预存ip五元组,则确定所述网络流报文为所述网络流的第一个报文;若存在与所述ip五元组一致的预存ip五元组,则确定所述网络流报文不是所述网络流的第一个报文。

进一步地,所述业务链中至少存在一个业务功能节点101,每一业务功能节点101对应着一个业务功能代理节点102。

本发明报文传输装置具体实施方式与上述报文传输方法各实施例基本相同,在此不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1