CN113364676A - 一种数据流处理的方法及装置 - Google Patents
一种数据流处理的方法及装置 Download PDFInfo
- Publication number
- CN113364676A CN113364676A CN202010148537.8A CN202010148537A CN113364676A CN 113364676 A CN113364676 A CN 113364676A CN 202010148537 A CN202010148537 A CN 202010148537A CN 113364676 A CN113364676 A CN 113364676A
- Authority
- CN
- China
- Prior art keywords
- data flow
- resource module
- processing
- uplink data
- flow message
- 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.)
- Granted
Links
Images
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/02—Topology update or discovery
- H04L45/08—Learning-based routing, e.g. using neural networks or artificial intelligence
-
- 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/02—Topology update or discovery
- H04L45/036—Updating the topology between route computation elements, e.g. between OpenFlow controllers
- H04L45/037—Routes obligatorily traversing service-related nodes
- H04L45/0377—Routes obligatorily traversing service-related nodes for service chaining
-
- 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/34—Source routing
-
- 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/02—Topology update or discovery
-
- 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/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- 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/302—Route determination based on requested QoS
- H04L45/306—Route determination based on the nature of the carried application
-
- 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
-
- 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)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种数据流处理的方法及装置。该方法包括:接收上行数据流报文;确定用于处理上行数据流报文的资源模块以及所述资源模块的标识;根据资源模块的标识修改上行数据流报文,并将修改后的上行数据流报文进行转发。接收下行数据流报文后,根据下行数据流报文中的资源模块的标识,确定用于处理下行数据流报文的资源模块,所述下行数据流报文中的资源模块的标识,是在学习所述上行数据流报文中的资源模块的标识后添加的。该方法进行下行数据流报文传输时,根据学习到的上行数据流报文中的资源模块的标识,确定进行下行数据流报文传输的资源模块,通过相同的资源模块进行上行数据流报文和下行数据流报文的传输,有效提升了通信传输的成功率。
Description
技术领域
本申请涉及IP(Internet Protocol,互联网协议)领域,尤其涉及一种数据流处理的方法及装置。
背景技术
在数据流的上行报文处理过程中,经常会存在一些特殊的有状态的业务功能(Service Function,SF),如网络地址转换(Network Address Translation,NAT)、防火墙(Firewall)等。其中,为了顺利完成数据流的上行报文处理,例如地址转化或合法性检查,会创建和保存用户的状态信息。而为了减少系统内的通信和存储开销,提高处理性能,只将所述状态信息保存在执行处理的资源模块本地。因此,要求业务功能转发器(ServiceFunction Forwarder,SFF)将同一数据流的上下行报文送至SF的同一个资源模块处理,从而才能获取到所述状态信息,顺利进行地址转化或合法性检查等。
目前随着虚拟化、云原生技术的发展和成熟,被业务链串接的业务功能逐步从物理网络功能(Physical Network Function,PNF)演进为虚拟网络功能(VirtualizedNetwork Function,VNF)或云原生网络功能(Cloud-Native Network Function,CNF),实现了SF的资源模块更灵活的随业务变化而迁移或扩缩容。
但是,由于SF的资源模块可以随业务变化进行扩缩容,从而可能会使上行传输与下行传输时对应的SF的资源模块发生变化,而目前因上下行传输过程中SF的资源模块发生变化,无法有效保证同一数据流的上下行报文送至SF的同一个资源模块处理,导致通信传输失败率较高。
发明内容
本申请提供一种数据流处理的方法及设备,用以提升通信传输成功率。
第一方面,本申请实施例提供一种数据流处理的方法,包括:
接收上行数据流报文;确定用于处理所述上行数据流报文的资源模块以及所述用于处理所述上行数据流报文的资源模块的标识;根据所述资源模块的标识修改所述上行数据流报文,修改后的所述上行数据流报文包括所述用于处理所述上行数据流报文的资源模块的标识;发送修改后的所述上行数据流报文。
基于该方案,进行上行数据传输过程中,将用于传输所述上行数据流报文的资源模块标识记录到所述上行数据流报文中,从而在下行数据流传输过程中,从报文中获取所述标识,根据所述标识确定用于进行上行数据流传输的资源模块,继续使用该资源模块进行下行数据流报文的传输,从而使用相同的模块处理上、下行数据流,有效提升了通信传输的成功率。
在一种可能的实现方式中,根据接收到的所述上行数据流报文,确定处理所述上行数据流报文的目的地址;从所述目的地址对应的资源模块中确定用于处理所述上行数据流报文的资源模块以及所述用于处理所述上行数据流报文的资源模块的标识。
基于该方案,提供了更详细的确定资源模块以及资源模块唯一标识的方法。
在一种可能的实现方式中,修改后的所述上行数据流报文中携带所述资源模块的标识与SF的对应关系。
基于该方案,在进行上行数据流报文传输后,确定用于传输所述上行数据流报文的资源模块的唯一标识与用于传输所述上行数据流报文的SF的对应关系,并将所述对应关系添加到所述上行数据流报文中,从而可以在进行下行数据流报文传输过程中,根据所述对应关系确定上行数据流传输的资源模块,并根据所述资源模块进行传输下行数据流报文,有效提升了通信传输的成功率。
在一种可能的实现方式中,将所述对应关系添加到所述上行数据流报文的SRH中。
基于该方案,提供了一种添加对应关系的方法,适用性更强。
在一种可能的实现方式中,将所述对应关系添加到所述SRH中的段列表中的段路由标识(Segment Routing Identifier,SID);或将所述对应关系添加到所述SRH中的可选的类型长度值(Type length value,TLV)字段。
基于该方案,提供了多种将所述对应关系添加到所述上行数据流报文中的方法,适用性更强。
在一种可能的实现方式中,根据所述目的地址查找转发表项,所述转发表项包括所述目的地址对应的资源模块以及所述目的地址对应的资源模块的标识;从所述转发表项中获取用于处理所述上行数据流报文的资源模块以及所述用于处理所述上行数据流报文的所述资源模块的标识。
在一种可能的实现方式中,所述方法还包括:接收协议报文,所述协议报文中携带所述目的地址与所述目的地址对应的资源模块;根据所述协议报文生成所述转发表项。
在一种可能的实现方式中,所述协议报文中还携带下列中的部分或全部:服务SID类型;资源数量ResourceWeight;SRv6服务功能Service Function。
在一种可能的实现方式中,学习所述上行数据流报文传输过程中,用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系。
基于该方案,业务链中的节点在完成自身对应的上行数据流处理后,可以通过学习获取所述对应关系,并将所述对应关系封装到所述下行数据流报文中,从而使下行数据流报文进行传输过程中,业务链中的节点根据所述下行数据流报文中的所述对应关系,获取用于处理所述上行数据流报文的资源模块,并根据所述资源模块进行下行数据流报文的处理,有效提升了通信传输的成功率。
在一种可能的实现方式中,所述资源模块的标识为所述资源模块在全局的唯一标识,所述全局用于表示数据流处理过程中的所有业务功能SF;和/或所述资源模块的标识为所述资源模块在SF内的唯一标识。
在一种可能的实现方式中,还包括:接收下行数据流报文,其中,所述下行数据流报文中携带用于处理所述上行数据流报文的资源模块的标识,所述下行数据流报文的目的地址是所述上行数据流报文的源地址,所述下行数据流报文的源地址是所述上行数据流报文的目的地址;根据所述用于处理所述上行数据流报文的资源模块的标识确定用于处理所述下行数据流报文的资源模块,用于处理所述下行数据流报文的资源模块与用于处理所述上行数据流报文的资源模块相同。
在一种可能的实现方式中,根据接收到的所述下行数据流报文,确定处理所述下行数据流报文的目的地址;根据所述目的地址以及用于处理所述上行数据流报文的资源模块的标识,确定用于处理所述下行数据流报文的资源模块。
在一种可能的实现方式中,将用于处理所述上行数据流报文的资源模块的标识与业务功能SF的对应关系添加到所述下行数据流报文的段路由报头SRH中。
第二方面,本申请实施例还提供一种数据流处理的方法,包括:
接收下行数据流报文,其中,所述下行数据报文中携带用于处理所述下行数据流报文对应的上行数据流报文的资源模块的标识;根据用于处理所述上行数据流报文的资源模块的标识确定用于处理所述下行数据流报文的资源模块,用于处理所述下行数据流报文的资源模块与用于处理所述上行数据流报文的资源模块相同。
基于该方案,通过使下行数据流报文中携带资源模块的标识,从而在进行下行数据流报文传输时,可以根据所述资源模块的标识,确定用于处理所述下行数据流报文的资源模块,提升通信传输的成功率。
在一种可能的实现方式中,接收上行数据流报文,所述上行数据流报文携带用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的业务功能SF的对应关系;根据所述上行数据流报文,生成学习记录,所述学习记录包含所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的SF的对应关系。
在一种可能的实现方式中,接收下行数据流报文后,根据上行数据流报文与下行数据流报文的对应关系,确定所述下行数据流报文对应的学习记录;将所述学习记录中包含的所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的SF的对应关系添加到所述下行数据流报文中。
在一种可能的实现方式中,将用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,添加到所述下行数据流报文的段路由报头SRH中。
在一种可能的实现方式中,将用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,添加到所述SRH中的段列表中的段路由标识SID;或将用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,添加到所述SRH中的可选的类型长度值TLV字段。
在一种可能的实现方式中,根据目的地址,确定SF对应的资源模块;根据所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,从所述SF对应的资源模块中确定用于处理所述下行数据流报文的资源模块。
在一种可能的实现方式中,还包括:确定所述用于处理所述上行数据流报文的资源模块的标识对应的资源模块故障后,从所述SF对应的剩余资源模块中重新选择一个资源模块用于处理所述下行数据流报文。
在一种可能的实现方式中,所述用于处理所述上行数据流报文的资源模块的标识为用于处理所述上行数据流报文的资源模块的在全局的唯一标识,所述全局用于表示数据流处理过程中的所有业务功能SF;和/或所述资源模块的标识为用于处理所述上行数据流报文的资源模块在SF内的唯一标识。
第三方面,本申请实施例提供了一种数据流处理的装置,该装置可以用来执行上述第一方面及第一方面的任意可能的实现方式中的操作。例如,装置可以包括用于执行上述第一方面或第一方面的任意可能的实现方式中的各个操作的模块单元;和/或,该装置可以用来执行上述第二方面及第二方面的任意可能的实现方式中的操作,例如,装置可以包括用于执行上述第二方面或第二方面的任意可能的实现方式中的各个操作的模块单元。
第四方面,本申请实施例提供了一种数据流处理的装置,该装置包括:处理器、收发器,可选的还包括存储器。其中,处理器、收发器和存储器之间通过内部连接通路互相通信。存储器用于存储指令,处理器用于执行所述存储器存储的指令。当处理器执行存储器存储的指令时,上述执行使得装置执行上述第一方面或第一方面的任意可能的实现方式中的任一方法;和/或,使得装置执行上述第二方面或第二方面的任意可能的实现方式中的任一方法。
第五方面,本申请实施例提供一种数据流处理的系统,该系统包括第一节点、第二节点等。
其中,所述第一节点用于执行上述第一方面或第一方面中任意一种方法;所述第二节点用于执行上述第二方面或第二方面中任意一种方法。
第六方面,本申请实施例提供了一种芯片系统,包括处理器,可选的还包括存储器;其中,存储器用于存储计算机程序,处理器用于从存储器中调用并运行计算机程序,使得安装有芯片系统的通信设备执行上述第一方面或第一方面的任意可能的实现方式中的任一方法;和/或,使得安装有芯片系统的通信设备执行上述第二方面或第二方面的任意可能的实现方式中的任一方法。
第七方面,本申请实施例提供了一种计算机程序产品,计算机程序产品包括:计算机程序代码,当计算机程序代码被通信设备的通信单元、处理单元或收发器、处理器运行时,使得通信设备执行上述第一方面或第一方面的任意可能的实现方式中的任一方法;和/或,使得通信设备执行上述第二方面或第二方面的任意可能的实现方式中的任一方法。
第八方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有程序,程序使得装置执行上述第一方面或第一方面的任意可能的实现方式中的任一方法;和/或,使得装置执行上述第二方面或第二方面的任意可能的实现方式中的任一方法。
第九方面,本申请实施例提供了一种计算机程序,计算机程序在某一计算机上执行时,将会使得计算机实现上述第一方面或第一方面的任意可能的实现方式中的任一方法;和/或,使得计算机实现上述第二方面或第二方面的任意可能的实现方式中的任一方法。
附图说明
图1为本申请提供的SFF将上下行报文送至SF的同一个资源模块处理示意图;
图2为本申请提供的一种数据流传输场景示意图;
图3为本申请提供的一种数据流处理的方法示意图;
图4为本申请提供的第一种上行数据报文处理示意图;
图5为本申请提供的第一种下行数据报文处理示意图;
图6为本申请提供的第一种数据流处理的流程示意图;
图7为本申请提供的第二种上行数据报文处理示意图;
图8为本申请提供的第二种下行数据报文处理示意图;
图9为本申请提供的第二种数据流处理的流程示意图;
图10为本申请提供的第一种数据流处理的装置示意图;
图11为本申请提供的第二种数据流处理的装置示意图;
图12为本申请提供的第三种数据流处理的装置示意图;
图13为本申请提供的第四种数据流处理的装置示意图。
具体实施方式
进行数据流处理时,通过为SF分配任播(Anycast)类型的服务(Service)SID,用动态路由协议发布Service SID,由业务链的转发器动态生成负载分担表项,实现数据流在多个资源模块之间动态负载分担。其中,对于某些特殊的有状态SF,如NAT、Firewall等,在数据流的上行报文处理过程中,创建和保存了用户的状态信息,用于对数据流下行报文的处理,如地址转化或合法性检查等。而为了减少系统内的通信和存储开销,提高处理性能,这些状态数据只保存在执行处理的资源模块本地。因此,要求SFF将同一数据流的上下行报文送至SF的同一个资源模块处理。
示例性的,如图1所示,上行数据报文在Access-Leaf节点执行负载分担,选择资源模块2,下行数据报文在Border-Leaf节点执行负载分担,也必须选择资源模块2。
进一步的,目前随着虚拟化、云原生技术的发展和成熟,被业务链串接的业务功能逐步从PNF演进为VNF或云原生网络功能CNF,使SF的资源模块可以随业务变化进行扩缩容。
但是,随着SF的资源模块可以随业务变化灵活的进行扩缩容的同时,会无法有效保证同一数据流的上下行报文送至SF的同一个资源模块处理,从而导致通信传输失败率较高。
为解决该问题,本申请实施例提供一种数据流处理的方法。可应用于任何数据流发送场景中。本申请实施例的基础思想就是在进行数据流上行转发的过程中,记录进行处理的资源模块的信息,并将记录的所述资源模块的信息随数据流一起发送,从而当数据流进行下行转发时,可以根据所述数据流携带的所述资源模块的信息,确定相同的资源模块进行转发。
如图2所示,为本申请提供的一个数据流传输场景示意图,假设进行数据传输的业务链包括Access-Leaf、SFF1、SFF2、SFF3和Border-Leaf,以及Access-Leaf、SFF1、SFF2、SFF3和Border-Leaf的SRv6 Locator分别为B0::/64、B1::/64、B2::/64、B3::/64和B4::/64。其中,SF1、SF2和SF3分别由3个、2个和1个资源模块组成。上行数据流业务链的头端(Head-end)和尾端(Tail-end)分别为Access-Leaf和Border-Leaf;下行数据流业务链的Head-end和Tail-end分别为Border-Leaf和Access-Leaf。其中,为方便描述,本申请实施例中将所述业务链中进行上行数据流报文传输的节点统称为第一节点,将所述业务链中进行下行数据流报文传输的节点统称为第二节点。本申请实施例中所述第一节点与所述第二节点可以相同也可以不同。
其中,本发明实施例可以应用于SRv6业务链场景中,对于SF支持SRv6的场景适用,例如,SFF不作为业务链(Service Function Chain,SFC)代理(Proxy);对于SF不支持SRv6的场景也适用,例如,SFF兼做SFC Proxy。
需要说明的是,本申请实施例上述图2仅为便于理解而示例的简化示意图,描述的传输场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
以下,对本申请实施例中的相关名词进行解释说明,以便于理解。
1)数据流(data stream),是指一组有序,有起点和终点的字节的数据序列,包括输入流和输出流。
2)SRv6,是指直接在互联网协议第6版(Internet Protocol Version 6,IPv6)的网络之间互连的协议(Internet Protocol,IP)扩展头中进行新的扩展,这个扩展部分称为段路由报头(Segment Routing Header,SRH),而这部分扩展没有破坏标准的IP头,因此可以认为SRv6是一种本地的(native)的IPv6技术。
3)本申请实施例中的术语“系统”和“网络”可被互换使用。“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“以是一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)下或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
除非有相反的说明,本申请实施例提及“第一”、“第二”等序数词是用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或者重要程度。例如,第一优先级准则和第二优先级准则,只是为了区分不同的准则,而并不是表示这两种准则的内容、优先级或者重要程度等的不同。
此外,本申请实施例和权利要求书及附图中的术语“包括”和“具有”不是排他的。例如,包括了一系列步骤或模块的过程、方法、系统、产品或设备,不限定于已列出的步骤或模块,还可以包括没有列出的步骤或模块。
如图3所示,本申请实施例提供了一种数据流处理的方法,该方法包括:
S300,节点A接收上行数据流报文。
其中,假设所述节点A为进行上行数据流报文处理的头节点,当所述节点A接收到上行数据流报文后,根据进行上行数据流报文处理的业务链策略中获取SID-List。
另外,该S300中还可以包括:所述头节点接收协议报文,所述协议报文中携带目的地址与SF的对应关系。
S301,所述节点A将所述上行数据流报文发送给节点B。
假设,所述节点B为上行数据流报文传输业务链中的节点。
其中,所述节点A可以根据所述SID-List中的目的地址确定接收所述上行数据流报文的节点B,然后,将所述上行数据流报文转发给所述节点B。
S302,所述节点B确定用于处理所述上行数据流报文的资源模块以及所述用于处理所述上行数据流报文的资源模块的标识。
其中,本申请实施例中一种可选的方式,所述节点B根据所述目的地址查找转发表项;从所述转发表项对应的至少一个表项中选取一个表项,并将所述选取的表项对应的资源模块作为处理所述上行数据流报文的资源模块,以及将所述资源模块的标识记录在所述转发表项中。
进一步的,本申请实施例中可根据所述上行数据流报文的关键字使用Hash算法选择从所述至少一个表项中选取一个表项。
本领域技术人员应理解,本申请实施例中所述节点B根据所述SID-List中的目的地址,确定转发表项,可以理解为所述节点B根据所述SID-List中的目的地址,确定对应的SF,所述SF中包含至少一个资源模块。
进一步的,所述节点B在根据所述目的地址,确定至少一个资源模块后,从所述至少一个资源模块中选取一个资源,作为处理所述上行数据流报文的资源模块,并记录所选取的资源模块的标识。
示例性的,所述节点B根据所述目的地址,确定所述目的地址对应的SF为SF1,且所述SF1中包含3个资源模块,所述3个资源模块的标识分别为,资源模块标识1、资源模块标识2以及资源模块标识3。然后,所述节点B从所述3个资源模块中选取一个资源模块,例如,所述节点B选取的为资源模块标识3对应的资源模块,则所述资源模块标识3对应的资源模块作为处理所述上行数据流报文的资源模块。最后,所述节点B将用于处理所述上行数据流报文的资源模块的标识记录下来,即所述资源模块标识3。
需要说明的是,当所述业务链中的头节点(即节点A)为SFF时,上述S300中所述节点A的具体执行方式可参见所述S302中节点B的执行方式,为简洁描述,在此不进行赘述。
S303,所述节点B根据所述资源模块的标识修改所述上行数据流报文。
其中,本申请实施例中一种可选的方式,所述节点B在确定用于处理所述上行数据流报文的资源模块后,例如,所述节点B选取的用于处理所述上行数据流报文的资源模块的标识为资源模块标识3,则所述节点B将所述资源模块的标识(即资源模块标识3)添加到所述上行数据流报文中。从而使修改后的所述上行数据报文包括所述用于处理所述上行数据流报文的资源模块的标识。
需要说明是,本申请实施例中所述节点B可以在确定完用于处理所述上行数据流报文的资源模块后,但还没有通过所述资源模块处理所述上行数据流报文之前,根据所选取的资源模块的标识修改所述上行数据流报文;或者,所述节点B可以在确定完用于处理所述上行数据流报文的资源模块后,并成功通过该资源模块执行完本地转发后,根据所选取的资源模块的标识修改所述上行数据流报文。也就是说,本申请实施例中并不限定根据所述选取的资源模块的标识修改所述上行数据流报文的时机,任何适用于本申请实施例的修改方式以及时机,都属于本申请实施例的保护范围。
本申请实施例中一种可选的方式,若所述SF具有修改段列表(Segment List)中SID的能力,则可以由所述SF根据所述资源模块的标识(例如,资源模块标识3)修改所述上行数据流报文;若所述SF不具有修改段列表(Segment List)中SID的能力,则可以由所述节点B根据所述资源模块的标识(例如,资源模块标识3)修改所述上行数据流报文。
S304,所述节点B发送修改后的所述上行数据流报文。
其中,本申请实施例中一种可选的方式,所述节点B根据所述SID-List中的目的地址将修改后的所述上行数据流报文发送给所述业务链对应的下一节点。
进一步的,所述节点B根据数据流键值与SID-List确定发送的下一节点。
其中,后续接收到所述上行数据流报文的节点重复执行S302~S304,在此不进行赘述,直到所述业务链完成所述上行数据流报文处理,即进行上行数据流报文处理的业务链的尾节点(例如节点N)接收到所述上行数据流报文。
需要说明的是,在上行数据流报文的处理过程中,查询目的地址以及选择资源模块的节点与修改上行数据报文的节点可以相同也可以不同,本申请实施例仅是举例说明,并不进行限定。
S305,所述节点N接收到所述上行数据流报文后,根据所述上行数据流报文学习用于处理所述上行数据流报文的资源模块的标识与SF的对应关系,并生成学习记录。
其中,本申请实施例中通过上述步骤的执行,使得所述上行数据流报文中携带用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的SF的对应关系。从而,可以使接收到所述上行数据流报文的节点,通过学习,获得所述上行数据流报文中所述携带的内容,以及通过学习,生成对应的学习记录。
本申请实施例中另一种可选的方式,进行上行数据流报文处理的每个节点在接收到上行数据流报文后,可以获取并学习所述上行数据流报文中的用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系;或者进行上行数据流报文处理的每个节点都可以在完成数据流处理后,根据上行数据流报文学习数据流传输过程中,用于处理所述上行数据流报文的资源模块的标识与SF的对应关系。
需要说明的是,当节点不是尾节点时,可以不用执行学习所述对应关系。
S306,进行下行数据流报文处理的头节点(例如,节点N)接收下行数据流报文。
其中,本申请实施例中,图3所示的流程中,假设进行上行数据流报文处理的尾节点为进行下行数据流报文处理的头节点,则所述进行下行数据流处理的头节点为节点N。
另外,本申请实施例中所述节点N在接收到所述下行数据流报文后,从业务链策略中获取SID-List。
S307,所述节点N将所述学习记录中包含的所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的SF的对应关系,添加到所述下行数据流报文中。
具体的,确定下行数据流到来后,所述进行下行数据流处理的头节点根据上行数据流报文与下行数据流报文的对应关系,确定所述下行数据流报文对应的学习记录;其中,所述学习记录包含用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系;根据所述学习记录修改所述下行数据流报文。
示例性的,假设所述上行数据流报文在传输过程中,用于传输所述上行数据流报文的SF1中存在3个资源模块,所述三个资源模块的标识分别为HashID1、HashID2和HashID3。其中,选择了所述SF1中的标识为HashID2的资源模块处理所述上行数据流报文,则记录所述SF1与所述标识为HashID2的资源模块的对应关系。当下行数据流到来后,学习所述对应关系,并修改所述下行数据流报文,即在所述下行数据流报文中记载通过SF1处理所述下行数据流报文时,使用标识为HashID2的资源模块。
其中,本申请实施例中一种可选的方式,所述下行数据流报文的目的地址是所述上行数据流报文的源地址,所述下行数据流报文的源地址是所述上行数据流报文的目的地址;或者所述上行数据流报文的协议与所述下行数据流报文的协议相同。
另外,本申请实施例中所述上行数据流报文的源端口和目的端口,与所述下行数据流报文的源端口和目的端口可能是相反的,也可能不同,具体本申请实施例中并不进行限定。
需要说明的是,本申请实施例中对于所述上行数据流报文的目的地址以及源地址,与所述下行数据流报文的源地址以及目的地址不对应的情况,依旧适用本申请所述方法;对于所述上行数据流报文的协议与所述下行数据流报文的协议不相同的情况,也同样适用本申请所述方法。并且,该步骤中,可以仅当节点是进行下行数据流报文传输的头节点时,学习并将学习到的所述对应关系添加到所述下行数据流报文中,所述业务链中进行下行数据流报文传输的其他节点可以直接使用已添加所述对应关系的报文,无需进行学习。
S308,所述节点N根据用于处理所述上行数据流报文的资源模块的标识确定用于处理所述下行数据流报文的资源模块。
本申请实施例中,所述用于处理所述下行数据流报文的资源模块与所述用于处理所述上行数据流报文的资源模块相同。
其中,所述节点N通过上述S307的学习以及修改下行数据流报文的过程,使得所述下行数据流报文中携带用于处理所述下行数据流报文对应的上行数据流报文的资源模块的标识。
假设,所述节点N根据SID-List中的目的地址以及所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的SF的对应关系,将所述下行数据流报文转发给进行下行数据流报文处理的业务链中对应的节点C。
本申请实施例中一种可选的方式,进行下行数据流报文传输的业务链中的节点根据所述下行数据流报文携带的用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的SF的对应关系,从转发表项对应的至少一个表项中确定选取哪个表项对应的资源模块作为处理所述下行数据流报文的资源模块。
其中,后续接收到所述下行数据流报文的节点重复执行该步骤,直到所述进行下行数据流报文处理的业务链完成所述下行数据流报文处理,即进行下行数据流报文处理的业务链的尾节点接收到所述下行数据流报文。
需要说的是,本申请实施例一种可选的方式,在进行下行数据流传输时,若节点确定当前目的地址下,所述下行数据流报文携带的所述资源模块的标识对应的资源模块故障后,可从所述目的地址对应的剩余资源模块中重新选择一个资源模块处理所述下行数据流报文。本申请实施例一种可选的方式,本申请实施例中所述资源模块的标识可以通过HashID进行表示,所述SID由定位器(Locator),功能(Function)和参数(Arguments)三部分组成,其中本申请实施例中通过Arguments部分表示SF资源模块的HashID,所述Arguments部分还可以包含数据流、业务或者任何其他被Function所需要的信息。
示例性的,本实施例为SF分配格式为Locator:Function:1的SID,则表示指定所述SF中标识为1的资源模块执行该功能。其中,Arguments为0表示未指定执行该功能的资源模块。
其中,因为在进行数据传输过程中,可能会存在多个SF,每个SF中可能会存在多个资源模块,为了有效的确定用于进行传输的资源模块,所述资源模块的标识还可用于标识全网内的一个资源模块,或者所述资源模块的标识可用于标识SF内的一个资源模块,下面根据标识情况的不同,分别进行介绍。
标识情况1:所述资源模块的标识用于标识SF内的一个资源模块。
示例性的,基于图2所示的业务链,为SF的资源模块分配HashID,其中,分配的HashID在SF内唯一。在相连的SFF上配置SF的Service SID、与SF资源模块相连的接口以及HashID。各SFF通过动态路由协议发布Service SID,携带SF资源模块的HashID。各SFF学习到各SF的Service SID后生成Service SID的转发表项,部分举例如表1~表4所示。
Prefix前缀 | HashID | Transit Node传输节点 | Type类型 |
A1::1:0/120 | 1 | B1::1 | NNI网络侧接口 |
2 | B1::1 | NNI | |
3 | B2::1 | NNI |
表1 Access-Leaf生成Service SID转发表项举例
Prefix前缀 | HashID | Transit Node传输节点 | Type类型 |
A1::1:0/120 | 1 | - | UNI用户侧接口 |
2 | - | UNI | |
3 | B2::1 | NNI网络侧接口 | |
A1::2:0/120 | 1 | - | UNI |
2 | B2::1 | NNI |
表2 SFF1生成Service SID转发表项举例
Prefix前缀 | HashID | Transit Node传输节点 | Type类型 |
A1::2:0/120 | 1 | B1::1 | NNI网络侧接口 |
2 | - | UNI用户侧接口 | |
A1::3:0/120 | 1 | B3::1 | NNI |
表3 SFF2生成Service SID转发表项举例
Prefix前缀 | HashID | Transit Node传输节点 | Type类型 |
A3::2:0/120 | 1 | - | UNI用户侧接口 |
表4 SFF3生成Service SID转发表项举例
标识情况2:所述资源模块的标识用于标识全网内的一个资源模块。
示例性的,基于图2所示的业务链,为SF的资源模块分配HashID,各网络节点生成Service SID的ECMP转发表项,包括本地静态表项和远端动态表项,各表项中记录对应HashID,部分举例如表5~表6所示。
Prefix前缀 | HashID | SID-List列表 | Type类型 |
A1::1/128 | 1 | <B1::100> | NNI网络侧接口 |
2 | <B1::101> | NNI | |
4 | <B2::100> | NNI |
表5 Access-Leaf生成各SF Service SID表项举例
Prefix前缀 | HashID | SID-List列表 | Type列表 |
A2::1/128 | 3 | <B1::102> | UNI用户侧接口 |
5 | <B2::101> | NNI网络侧接口 |
表6 SFF1生成各SF Service SID表项举例
进一步的,本申请实施例在确定用于处理所述上行数据流报文的资源模块以及所述资源模块的标识后,还确定所述资源模块的标识与SF的对应关系,从而根据唯一标识与SF的对应关系修改所述上行数据流报文。
其中,本申请实施例根据唯一标识与SF的对应关系修改所述上行数据流报文过程中,可以通过下列方式进行修改:
示例性的,本申请实施例将所述对应关系添加到所述上行数据流报文的SRH中。
进一步的,本申请实施例提供了多种将所述对应关系添加到所述SRH的方式,具体并不限于下述几种:
修改方式1:将所述对应关系添加到所述SRH中的段列表中的SID。
也就是说,所述修改方式1是在控制平面对动态路由协议进行拓展。
示例性的,如表7所示,新增Service SID sub-TLV和Service属性(Attribute)Sub-sub-TLV。
表7新增Service SID sub-TLV和Service Attribute Sub-sub-TLV
修改方式2:将所述对应关系添加到所述SRH中的可选的TLV字段。
也就是说,所述修改方式2是在控制平面和数据平面分别对动态路由协议进行扩展。
示例性的,如表8所示,对控制平面修改如下:
表8控制平面修改表
如表9所示,对数据平面修改如下:
表9数据平面修改表
为更清楚的对本申请实施例进行介绍,下面基于对数据流报文的不同修改情况,选取两个例子进行详细介绍。
情况1:上行数据流经SF的资源模块处理后,如图4所示,修改SRH Segment List中对应SID的Arguments字段,记录处理该数据流的资源模块。然后,在Border-Leaf学习上行数据流的关键字与SRH中Segment List的对应关系,并在封装下行数据流报文时,使用从上行数据流报文中学习到的含有效Arguments的SID。网络节点转发下行数据流报文时,如图5所示,识别SID的Arguments字段为HashID,使用Locator:Function和HashID的联合键值查找转发表。
如图6所示,本申请实施例基于上述情况1提供了一种数据流处理的方法,具体步骤如下:
S600,上行数据报文进入Access-Leaf,从业务链策略中获得SID-List。
其中,假设SID-List为{A1::1:0,A2::1:0,A3::1:0,B4::1},所述B4::1为业务链尾节点Border-Leaf的SID。
S601,根据策略封装数据报文。
封装后的报文为(B0::1,A1::1:0)(B4::1,A3::1:0,A2::1:0,A1::1:0;SL=3)。
S602,Access-Leaf在转发表中查询当前目的地址A1::1:0,根据数据流关键字哈希选择HashID为1的表项转发,获得Transit Node B1::1,执行插入(T.Insert)操作,插入SRH(A1::1:0,B1::1;SL=1),最后查目的地址B1::1转发数据报文(B0::1,B1::1)(A1::1:0,B1::1;SL=1)(B4::1,A3::1:0,A2::1:0,A1::1:0;SL=3)。
本申请实施例一种可选的方式中,所述数据流关键字可以为五元组(源IP,目的IP,协议号,源端口号,目的端口号)或者三元组(源IP,目的IP,Flow Label流标签)等。
S603,SFF1接收上行数据报文,根据A1::1:0执行本地转发,选择HashID为1的表项将报文(B0::1,A1::1:0)(A1::1:0,B1::1;SL=0)(B4::1,A3::1:0,A2::1:0,A1::1:0;SL=3)送至SF1的资源模块1。
其中,需要说明的是,本申请实施例中还可选择HashID为2的表项,将所述报文发送至SF1的资源模块2。
S604,SF1的资源模块1接收到上行数据报文,执行对应业务功能后,解除外层SRH封装,同时修改内层SRH[SL]的Arguments段,并返回所述SFF1。
需要说明的是,本申请实施例中,如果SF无修改Segment List中的SID能力,S604也可由SFF1完成。
S605,SFF1根据下一个SID转发报文(B0::1,A2::1:0)(B4::1,A3::1:0,A2::1:0,A1::1:1;SL=2)。
S606,SFF2接收上行数据报文,根据A2::1:0执行本地转发,选择HashID为2的表项将报文(B0::1,A2::1:0)(A2::1:0,B2::1;SL=0)(B4::1,A3::1:0,A2::1:2,A1::1:1;SL=2)送至SF2的资源模块2。
S607,SF2的资源模块2接收到上行数据报文,执行对应业务功能后,解除外层SRH封装,同时修改内层SRH[SL]的Arguments段,并返回所述SFF2。
需要说明的是,本申请实施例中,如果SF无修改Segment List中的SID能力,S606也可由SFF2完成。
S608,SFF2根据下一个SID转发报文(B0::1,A3::1:0)(B4::1,A3::1:0,A2::1:2,A1::1:1;SL=1)。
S609,SFF3接收上行数据报文,根据A3::1:0执行本地转发,选择HashID为1的表项将报文(B0::1,A3::1:0)(A3::1:0,B3::1;SL=0)(B4::1,A3::1:1,A2::1:2,A1::1:1;SL=1)送至SF3的资源模块1。
S610,SF3的资源模块1接收到上行数据报文,执行对应业务功能后,解除外层SRH封装,同时修改内层SRH[SL]的Arguments段,并返回SFF3。
需要说明的是,本申请实施例中,如果SF无修改Segment List中的SID能力,S608也可由SFF3完成。
S611,SFF3根据下一个SID转发报文(B0::1,B4::1)(B4::1,A3::1:1,A2::1:2,A1::1:1;SL=0)。
S612,Border-Leaf接收上行数据报文,进行数据流键值与SID-List的对应关系{Flow Key,<A1::1:1,A2::1:2,A3::1:1>}的学习。
S613,下行数据流报文进入Border-Leaf,从业务链策略中获得SID-List{A3::1:0,A2::1:0,A1::1:0,B0::1},其中B0::1为业务链尾节点Access-Leaf的SID。
S614,Border-Leaf根据上下行数据流Flow Key的对应关系查找到在S609中学习到的记录{Flow Key,<A1::1:1,A2::1:2,A3::1:1>},以含有Arguments的SID填入SRH,并根据目的地址A3::1:0和HashID 1为关键字查转发表转发报文(B4::1,A3::1:1)(B0::1,A1::1:1,A2::1:2,A3::1:1;SL=3)。
S615,SFF3接收下行数据报文,根据目的地址A2::1:0和HashID 2为关键字查转发表转发报文(B4::1,A2::1:2)(B0::1,A1::1:1,A2::1:2,A3::1:1;SL=2)。
S616,SFF2接收下行数据报文,根据目的地址A1::1:0和HashID 1为关键字查转发表转发报文(B4::1,A1::1:1)(B0::1,A1::1:1,A2::1:2,A3::1:1;SL=1)。
S617,SFF1接收下行数据报文,根据目的地址B0::1为关键字查转发表转发报文(B4::1,B0::1)(B0::1,A1::1:1,A2::1:2,A3::1:1;SL=0)。
S618,Access-Leaf接收下行数据报文,解SRH封装后,根据内层Payload的IP或者MAC头转发。
其中,作为业务链的Tail-end可选择学习或者不学习下行数据流的Flow Key与各SF的HashID的对应关系。
本申请实施例一种可选的方式中,当SF的资源模块处理故障时,SFF通过检测机制快速感知后可进行本地的保护切换。如上行流量到达SFF1,而SFF1感知SF1的HashID为1的资源模块故障,可切换至其它ECMP表项,将报文转发给HashID为2的资源模块或经SFF2送到HashID为3的资源模块处理。若下行数据流到达SFF2时,SFF2感知报文中指定HashID的资源模块故障,SFF2可以根据本地策略决定丢弃报文或选择其它可达表项转发报文。
情况2:上行数据流经SF的资源模块处理后,如图7所示,各网络节点在转发上行数据流报文时,将执行处理的资源模块HashID写入SRH的Optional TLV,并逐跳携带到业务链尾节点。尾节点动态学习数据流与处理该流的SF资源模块的对应关系。数据流下行报文进入业务链后,如图8所示,查找处理该数据流上行报文的SF资源模块HashID,并封装在SRHOptional TLV中,网络节点根据SRH中的Service SID和HashID查表转发。
如图9所示,本申请实施例基于上述情况2提供了一种数据流处理的方法,其中,选取业务代理的情况进行介绍,具体步骤如下:
S900,上行数据报文进入Access-Leaf,从业务链策略中获得SID-List。
其中,假设SID-List为{A1::1,A2::1,A3::1,B4::1},所述B4::1为业务链尾节点Border-Leaf的SID。
S901,根据策略封装数据报文。
封装后的报文为(B0::1,A1::1)(B4::1,A3::1,A2::1,A1::1;SL=3)。
S902,Access-Leaf在转发表中查询当前目的地址A1::1,根据数据流关键字哈希选择HashID为1的表项转发报文(B0::1,B1::100)(B4::1,A3::1,A2::1,A1::1;SL=3)。
本申请实施例中一种可选的方式,因表项中SID-List仅包含唯一的SID,若无其它属性需要指定可省略SRH,直接修改IPv6首部的目的地址。
S903,SFF1接收上行数据报文,根据报文的目的地址B1::100执行业务链代理操作。
S904,完成业务代理操作后,恢复所述数据流的SRv6封装,在SRH中填写执行处理的资源模块的资源模块HashID。
例如,在SRH中填写执行SF1处理的资源模块HashID。
其中,当前报文为(B0::1,A2::1)(B4::1,A3::1,A2::1,A1::1;SL=2;<index=3,HashID=1>)。
需要特殊说明的是,填写该HashID的处理除了由SFF1完成之外,也可以由Access-Leaf完成。两者的区别在于,后者填写HashID之后,SFF1因指定资源模块故障,将流量快切到其它资源模块时,需要修改该HashID。前者可避免反复修改HashID。
S905,SFF1根据当前目的地址A2::1第二次转发报文,SFF1哈希到HashID为5的表项转发。
其中,当前报文为(B0::1,B2::101)(B4::1,A3::1,A2::1,A1::1;SL=2;<index=3,HashID=1>)。
S906,SFF2接收上行数据报文,根据报文的目的地址B2::101执行业务链代理操作。
S907,完成业务代理操作后,恢复所述数据流的SRv6封装,在SRH中填写执行处理的资源模块的资源模块HashID。
例如,在SRH中填写执行SF2处理的资源模块HashID。
其中,当前报文为(B0::1,A3::1)(B4::1,A3::1,A2::1,A1::1;SL=1;<index=3,HashID=1>,<index=2,HashID=5>)。
S908,SFF2根据当前目的地址A3::1第三次转发报文,SFF2哈希到HashID为6的表项转发。
其中,当前报文为(B0::1,B3::100)(B4::1,A3::1,A2::1,A1::1;SL=1;<index=3,HashID=1>,<index=2,HashID=5>)。
S909,SFF3接收上行数据报文,根据报文的目的地址B3::100执行业务链代理操作。
S910,完成业务代理操作后,恢复所述数据流的SRv6封装,在SRH中填写执行处理的资源模块的资源模块HashID。
例如,在SRH中填写执行SF3处理的资源模块HashID。
其中,当前报文为(B0::1,B4::1)(B4::1,A3::1,A2::1,A1::1;SL=0;<index=3,HashID=1>,<index=2,HashID=5>,<index=1,HashID=6>)。
S911,SFF3根据当前目的地址B4::1第三次转发报文。
最终SFF3转发如下数据报文:
(B0::1,B4::1)(B4::1,A3::1,A2::1,A1::1;SL=0;<index=3,HashID=1>,<index=2,HashID=5>,<index=1,HashID=6>)。
S912,Border-Leaf接收上行数据报文,剥去SRH同时学习数据流关键值与SRH中记录的SF HashID的对应关系{Flow Key,<A1::1,1>,<A2::1,5>,<A3::1,6>}。
S913,下行数据报文进入Border-Leaf,从业务链策略中获得SID-List{A3::1,A2::1,A1::1,B0::1},其中B0::1为业务链尾节点Access-Leaf的SID。
S914,Border-Leaf根据上下行数据流Flow Key的对应关系查找到在S911中学习到的记录{Flow Key,<A1::1,1>,<A2::1,5>,<A3::1,6>},将SF Service SID的HashID封装在SRH中:
(B4::1,A3::1)(B0::1,A1::1,A2::1,A3::1;SL=3;<index=3,HashID=1>,<index=2,HashID=5>,<index=1,HashID=6>)。
S915,Border-Leaf在转发表中以目的地址A3::1和HashID 6为复合键值查询转发表转发报文:
(B4::1,B3::100)(B0::1,A1::1,A2::1,A3::1;SL=3;<index=3,HashID=1>,<index=2,HashID=5>,<index=1,HashID=6>)。
S916,SFF3接收下行数据报文,根据报文目的地址B3::100执行业务链代理操作。
其中,所述下行数据流报文从所述目的地址B3::100返回后(例如,所述下行数据流报文从SF3返回),恢复其SRv6封装:
(B4::1,A2::1)(B0::1,A1::1,A2::1,A3::1;SL=2;<index=3,HashID=1>,<index=2,HashID=5>,<index=1,HashID=6>)。
S917,SFF3从报文中获得目的地址A2::100及HashID 5,并以二者为复合键值查询转发报文:
(B4::1,B2::101)(B0::1,A1::1,A2::1,A3::1;SL=2;<index=3,HashID=1>,<index=2,HashID=5>,<index=1,HashID=6>)。
S918,SFF2接收下行数据报文,根据报文目的地址B2::101执行业务链代理操作。
其中,所述下行数据流报文从所述目的地址B2::101返回后(例如,所述下行数据流报文从SF2返回),恢复其SRv6封装:
(B4::1,A1::1)(B0::1,A1::1,A2::1,A3::1;SL=1;<index=3,HashID=1>,<index=2,HashID=5>,<index=1,HashID=6>)。
S919,SFF2从报文中获得目的地址A1::100及HashID 1,并以二者为复合键值查询转发报文:
(B4::1,B1::100)(B0::1,A1::1,A2::1,A3::1;SL=0;<index=3,HashID=1>,<index=2,HashID=5>,<index=1,HashID=6>)。
S920,SFF1接收下行数据报文,根据报文目的地址B1::100执行业务链代理操作。
其中,所述下行数据流报文从所述目的地址B1::100返回后(例如,所述下行数据流报文从SF1返回),恢复其SRv6封装:
(B4::1,B0::1)(B0::1,A1::1,A2::1,A3::1;SL=0;<index=3,HashID=1>,<index=2,HashID=5>,<index=1,HashID=6>)。
S921,SFF1从报文中获得目的地址B0::1,并转发报文:
(B4::1,B0::1)(B0::1,A1::1,A2::1,A3::1;SL=0;<index=3,HashID=1>,<index=2,HashID=5>,<index=1,HashID=6>)。
S922,Access-Leaf接收下行数据报文,解SRH封装后,根据内层Payload的IP或者MAC头转发。
其中,所述Access-Leaf作为业务链的Tail-end可选择学习或者不学习下行数据流的Flow Key与各SF的HashID的对应关系。
本申请实施例一种可选的方式中,当SF的资源模块处理故障时,SFF/SFC Proxy通过检测机制快速感知后可进行本地的保护切换。如上行流量到达SFF1,而SFF1感知SF1的HashID为1的资源模块故障,可继续查询本地FIB,将报文转发给HashID为2的资源模块或经SFF2送到HashID为4的资源模块处理。若下行数据流到达SFF2时,SFF2感知SF2HashID为5的资源模块故障,SFF2可以根据本地策略决定丢弃报文或选择本地其它可达表项转发报文。
通过上述对本申请方案的介绍,可以理解的是,上述实现各设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
如图10所示,本申请一种数据流处理的装置,该装置包括处理器1000、存储器1010和收发机1020;
处理器1000负责管理总线架构和通常的处理,存储器1010可以存储处理器1000在执行操作时所使用的数据。收发机1020用于在处理器1000的控制下接收和发送数据。
总线架构可以包括任意数量的互联的总线和桥,具体由处理器1000代表的一个或多个处理器和存储器1010代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。处理器1000负责管理总线架构和通常的处理,存储器1010可以存储处理器1000在执行操作时所使用的数据。
本发明实施例揭示的流程,可以应用于处理器1000中,或者由处理器1000实现。在实现过程中,信号处理流程的各步骤可以通过处理器1000中的硬件的集成逻辑电路或者软件形式的指令完成。处理器1000可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1010,处理器1000读取存储器1010中的信息,结合其硬件完成信号处理流程的步骤。
具体地,处理器1000,用于读取存储器1001中的程序并执行如图3所示的S300-S308中的方法流程;或执行例如图6所示的S600-S618中的方法流程;或执行例如图9所示的S900-S922中的方法流程。
如图11所示,本发明提供一种数据流处理的装置,该装置包括:
通信单元1100,用于接收上行数据流报文;
处理单元1101,确定用于处理所述上行数据流报文的资源模块以及所述资源模块的标识;根据所述资源模块的标识修改所述上行数据流报文,修改后的所述上行数据流报文包括用于处理所述上行数据流报文的资源模块的标识;
通信单元1100,还用于发送修改后的所述上行数据流报文。
可选地,当所述装置运行时,所述处理单元可以执行如图3所示的S300-S305中进行上行数据流报文传输业务链中的节点对所述上行数据流报文进行处理的方法流程,所述通信单元可以执行如图3所示的S300~S305中进行上行数据流报文传输业务链中的节点对所述上行数据流报文进行接收和/或转发的方法流程;或所述处理单元可以执行如图6所示的S600-S612中进行上行数据流报文传输业务链中的节点对所述上行数据流报文进行处理的方法流程,所述通信单元可以执行如图6所示的S600~S612中进行上行数据流报文传输业务链中的节点对所述上行数据流报文进行接收和/或转发的方法流程;或所述处理单元可以执行如图9所示的S900-S912中进行上行数据流报文传输业务链中的节点对所述上行数据流报文进行处理的方法流程,所述通信单元可以执行如图9所示的S900~S912中进行上行数据流报文传输业务链中的节点对所述上行数据流报文进行接收和/或转发的方法流程。
一种可选的实施方式,所述处理单元1101具体用于:
根据接收到的所述上行数据流报文,确定处理所述上行数据流报文的目的地址;从所述目的地址对应的资源模块中确定用于处理所述上行数据流报文的资源模块以及用于处理所述上行数据流报文的资源模块的标识。
一种可选的实施方式,修改后的所述上行数据流报文中携带所述资源模块的标识与业务功能SF的对应关系。
一种可选的实施方式,所述处理单元1101具体用于:
将所述对应关系添加到所述上行数据流报文的SRH中。
一种可选的实施方式,所述处理单元1101具体用于:
将所述对应关系添加到所述SRH中的段列表中的SID;或将所述对应关系添加到所述SRH中的可选的TLV字段。
一种可选的实施方式,所述处理单元1101具体用于:
根据所述目的地址查找转发表项,所述转发表项包括所述目的地址对应的资源模块以及所述目的地址对应的资源模块的标识;
从所述转发表项中获取用于处理所述上行数据流报文的资源模块以及所述用于处理所述上行数据流报文的所述资源模块的标识。
一种可选的实施方式,所述处理单元1101还用于:
接收协议报文,所述协议报文中携带所述目的地址与所述目的地址对应的资源模块;
根据所述协议报文生成所述转发表项。
一种可选的实施方式,所述协议报文中还携带下列中的部分或全部:
服务段标识SID类型;资源数量ResourceWeight;段路由互联网协议第6版SRv6服务功能Service Function。
一种可选的实施方式,所述资源模块的标识为所述资源模块在全局的唯一标识,所述全局用于表示数据流处理过程中的所有业务功能SF;和/或所述资源模块的标识为所述资源模块在SF内的唯一标识。
一种可选的实施方式,所述处理单元1101还用于:
接收下行数据流报文,其中,所述下行数据流报文中携带所述用于处理所述上行数据流报文的资源模块的标识,所述下行数据流报文的目的地址是所述上行数据流报文的源地址,所述下行数据流报文的源地址是所述上行数据流报文的目的地址;根据所述用于处理所述上行数据流报文的资源模块的标识确定用于处理所述下行数据流报文的资源模块,所述用于处理所述下行数据流报文的资源模块与所述用于处理所述上行数据流报文的资源模块相同。
一种可选的实施方式,所述处理单元1101具体用于:
根据接收到的所述下行数据流报文,确定处理所述下行数据流报文的目的地址;
根据所述目的地址以及所述用于处理所述上行数据流报文的资源模块的标识,确定用于处理所述下行数据流报文的资源模块。
一种可选的实施方式,所述处理单元1101还用于:
将所述用于处理所述上行数据流报文的资源模块的标识与业务功能SF的对应关系添加到所述下行数据流报文的段路由报头SRH中。
上述图11所示的通信单元1100和处理单元1101的功能可以由处理器1000运行存储器1010中的程序执行,或者由处理器1000单独执行。
如图12所示,本申请一种数据流处理的装置,该装置包括处理器1200、存储器1210和收发机1220;
处理器1200负责管理总线架构和通常的处理,存储器1210可以存储处理器1200在执行操作时所使用的数据。收发机1220用于在处理器1200的控制下接收和发送数据。
总线架构可以包括任意数量的互联的总线和桥,具体由处理器1200代表的一个或多个处理器和存储器1210代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。处理器1200负责管理总线架构和通常的处理,存储器1210可以存储处理器1200在执行操作时所使用的数据。
本发明实施例揭示的流程,可以应用于处理器1200中,或者由处理器1200实现。在实现过程中,信号处理流程的各步骤可以通过处理器1200中的硬件的集成逻辑电路或者软件形式的指令完成。处理器1200可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1210,处理器1200读取存储器1210中的信息,结合其硬件完成信号处理流程的步骤。
具体地,处理器1200,用于读取存储器1201中的程序并执行如图3所示的S300-S308中的方法流程;或执行例如图6所示的S600-S618中的方法流程;或执行例如图9所示的S900-S922中的方法流程。
如图13所示,本发明提供一种数据流处理的装置,该装置包括:
通信单元1300,用于接收下行数据流报文,其中,所述下行数据报文中携带用于处理所述下行数据流报文对应的上行数据流报文的资源模块的标识;
处理单元1301,用于根据所述用于处理所述上行数据流报文的资源模块的标识确定用于处理所述下行数据流报文的资源模块,所述用于处理所述下行数据流报文的资源模块与所述用于处理所述上行数据流报文的资源模块相同。
可选地,当所述装置运行时,所述处理单元可以执行如图3所示的S306-S308中进行下行数据流报文传输业务链中的节点对所述下行数据流报文进行处理的方法流程,所述通信单元可以执行如图3所示的S306~S308中进行下行数据流报文传输业务链中的节点对所述下行数据流报文进行接收和/或转发的方法流程;或所述处理单元可以执行如图6所示的S613-S618中进行下行数据流报文传输业务链中的节点对所述下行数据流报文进行处理的方法流程,所述通信单元可以执行如图6所示的S613~S618中进行下行数据流报文传输业务链中的节点对所述下行数据流报文进行接收和/或转发的方法流程;或所述处理单元可以执行如图9所示的S913-S922中进行下行数据流报文传输业务链中的节点对所述下行数据流报文进行处理的方法流程,所述通信单元可以执行如图9所示的S913~S922中进行下行数据流报文传输业务链中的节点对所述下行数据流报文进行接收和/或转发的方法流程。
一种可选的实施方式,所述处理单元1301还用于:
接收上行数据流报文,所述上行数据流报文携带用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的业务功能SF的对应关系;
根据所述上行数据流报文,生成学习记录,所述学习记录包含所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的SF的对应关系。
一种可选的实施方式,所述处理单元1301之前还用于:
根据所述上行数据流报文与所述下行数据流报文的对应关系,确定所述学习记录;
将所述学习记录中包含的所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的SF的对应关系添加到所述下行数据流报文中。
一种可选的实施方式,所述处理单元1301具体用于:
将所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,添加到所述下行数据流报文的段路由报头SRH中。
一种可选的实施方式,所述处理单元1301具体用于:
将所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,添加到所述SRH中的段列表中的段路由标识SID;或,
将所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,添加到所述SRH中的可选的类型长度值TLV字段。
一种可选的实施方式,所述处理单元1301具体用于:
根据目的地址,确定SF对应的资源模块;根据所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,从所述SF对应的资源模块中确定用于处理所述下行数据流报文的资源模块。
一种可选的实施方式,所述处理单元1301还用于:
确定所述用于处理所述上行数据流报文的资源模块的标识对应的资源模块故障后,从所述SF对应的剩余资源模块中重新选择一个资源模块用于处理所述下行数据流报文。
一种可选的实施方式,所述用于处理所述上行数据流报文的资源模块的标识为用于处理所述上行数据流报文的资源模块的在全局的唯一标识,所述全局用于表示数据流处理过程中的所有业务功能SF;和/或所述资源模块的标识为用于处理所述上行数据流报文的资源模块在SF内的唯一标识。
上述图13所示的通信单元1300和处理单元1301的功能可以由处理器1200运行存储器1210中的程序执行,或者由处理器1200单独执行。
本申请实施例还提供一种数据流处理的系统,该系统包括:第一节点、第二节点等;
所述第一节点可以是如图3或图6,再或者图9所示的进行上行数据流报文传输的节点;所述第二节点可以是如图3或图6,再或者图9所示的进行下行数据流报文传输的节点。
当所述系统运行时,所述第一节点可以执行例如图3所示的S300-S308中进行上行数据流报文传输时节点执行的方法流程;或执行例如图6所示的S600-S618中进行上行数据流报文传输时节点执行的方法流程;或执行例如图9所示的S900-S922中进行上行数据流报文传输时节点执行的方法流程,在此不进行赘述。
所述第二节点可以执行如图3所示的S300-S308中进行下行数据流报文传输时节点执行的方法流程;或执行例如图6所示的S600-S618中进行下行数据流报文传输时节点执行的方法流程;或执行例如图9所示的S900-S922中进行下行数据流报文传输时节点执行的方法流程,在此不进行赘述。
在一些可能的实施方式中,本发明实施例提供的数据流处理的方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序代码在计算机设备上运行时,所述程序代码用于使所述计算机设备执行本说明书中描述的根据本发明各种示例性实施方式的数据流处理的方法中的步骤。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
根据本发明的实施方式的用于数据流处理的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在服务器设备上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被数据流处理装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由周期网络动作系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备。
本申请实施例针对数据流处理的方法还提供一种计算设备可读存储介质,即断电后内容不丢失。该存储介质中存储软件程序,包括程序代码,当所述程序代码在计算设备上运行时,该软件程序在被一个或多个处理器读取并执行时可实现本申请实施例上面任何一种数据流处理的方案。
以上参照示出根据本申请实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本申请。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。
相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本申请。更进一步地,本申请可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本申请上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包括这些改动和变型在内。
Claims (40)
1.一种数据流处理方法,其特征在于,包括:
接收上行数据流报文;
确定用于处理所述上行数据流报文的资源模块以及所述用于处理所述上行数据流报文的资源模块的标识;
根据所述资源模块的标识修改所述上行数据流报文,修改后的所述上行数据报文包括所述用于处理所述上行数据流报文的资源模块的标识;
发送修改后的所述上行数据流报文。
2.如权利要求1所述的方法,其特征在于,所述确定用于处理所述上行数据流报文的资源模块以及所述用于处理所述上行数据流报文的资源模块的标识,包括:
根据接收到的所述上行数据流报文,确定处理所述上行数据流报文的目的地址;
从所述目的地址对应的资源模块中确定所述用于处理所述上行数据流报文的资源模块以及所述用于处理所述上行数据流报文的资源模块的标识。
3.如权利要求1或2所述的方法,其特征在于,修改后的所述上行数据流报文中携带所述资源模块的标识与业务功能SF的对应关系。
4.如权利要求3所述的方法,其特征在于,所述修改所述上行数据流报文,包括:
将所述对应关系添加到所述上行数据流报文的段路由报头SRH中。
5.如权利要求4所述的方法,其特征在于,所述将所述对应关系添加到所述上行数据流报文的SRH中,包括:
将所述对应关系添加到所述SRH中的段列表中的段路由标识SID;或
将所述对应关系添加到所述SRH中的可选的类型长度值TLV字段。
6.如权利要求2~5任一项所述的方法,其特征在于,所述从所述目的地址对应的资源模块中确定所述用于处理所述上行数据流报文的资源模块以及所述用于处理所述上行数据流报文的资源模块的标识,包括:
根据所述目的地址查找转发表项,所述转发表项包括所述目的地址对应的资源模块以及所述目的地址对应的资源模块的标识;
从所述转发表项中获取用于处理所述上行数据流报文的资源模块以及所述用于处理所述上行数据流报文的所述资源模块的标识。
7.如权利要求6所述的方法,其特征在于,还包括:
接收协议报文,所述协议报文中携带所述目的地址与所述目的地址对应的资源模块;
根据所述协议报文生成所述转发表项。
8.如权利要求1~7任一项所述的方法,其特征在于,所述资源模块的标识用于在所述资源模块所属的业务功能SF内唯一标识所述资源模块,或者,所述资源模块的标识用于在处理数据流的所有SF内唯一标识所述资源模块。
9.如权利要求1~8任一项所述的方法,其特征在于,所述将修改后的所述上行数据流报文进行转发之后,所述方法还包括:
接收下行数据流报文,其中,所述下行数据流报文中携带所述用于处理所述上行数据流报文的资源模块的标识,所述下行数据流报文的目的地址是所述上行数据流报文的源地址,所述下行数据流报文的源地址是所述上行数据流报文的目的地址;
根据所述用于处理所述上行数据流报文的资源模块的标识确定用于处理所述下行数据流报文的资源模块,所述用于处理所述下行数据流报文的资源模块与所述用于处理所述上行数据流报文的资源模块相同。
10.如权利要求9所述的方法,其特征在于,根据所述资源模块的标识确定用于处理所述下行数据流报文的资源模块,包括:
根据接收到的所述下行数据流报文,确定处理所述下行数据流报文的目的地址;
根据所述目的地址以及所述用于处理所述上行数据流报文的资源模块的标识,确定用于处理所述下行数据流报文的资源模块。
11.如权利要求9所述的方法,其特征在于,根据用于处理所述上行数据流报文的资源模块的标识确定用于处理所述下行数据流报文的资源模块之前,还包括:
将所述用于处理所述上行数据流报文的资源模块的标识与业务功能SF的对应关系添加到所述下行数据流报文的段路由报头SRH中。
12.一种数据流处理方法,其特征在于,包括:
接收下行数据流报文,其中,所述下行数据流报文中携带用于处理所述下行数据流报文对应的上行数据流报文的资源模块的标识;
根据用于处理所述上行数据流报文的资源模块的标识确定用于处理所述下行数据流报文的资源模块,所述用于处理所述下行数据流报文的资源模块与所述用于处理所述上行数据流报文的资源模块相同。
13.如权利要求12所述的方法,其特征在于,所述接收下行数据流报文之前,所述方法还包括:
接收上行数据流报文,所述上行数据流报文携带用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的业务功能SF的对应关系;
根据所述上行数据流报文,生成学习记录,所述学习记录包含所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的SF的对应关系。
14.如权利要求13所述的方法,其特征在于,所述接收所述下行数据流报文之后,所述方法还包括:
根据所述上行数据流报文与所述下行数据流报文的对应关系,确定所述学习记录;
将所述学习记录中包含的所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的SF的对应关系添加到所述下行数据流报文中。
15.如权利要求14所述的方法,其特征在于,将用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的SF的对应关系添加到所述下行数据流报文中,包括:
将所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,添加到所述下行数据流报文的段路由报头SRH中。
16.如权利要求15所述的方法,其特征在于,将所述对应关系添加到所述下行数据流报文的SRH中,包括:
将所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,添加到所述SRH中的段列表中的段路由标识SID;或
将所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,添加到所述SRH中的可选的类型长度值TLV字段。
17.如权利要求13~16任一项所述的方法,其特征在于,根据用于处理所述上行数据流报文的资源模块的标识确定用于处理所述下行数据流报文的资源模块,包括:
根据目的地址,确定SF对应的资源模块;
根据所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,从所述SF对应的资源模块中确定用于处理所述下行数据流报文的资源模块。
18.如权利要求17所述的方法,其特征在于,所述方法还包括:
确定所述用于处理所述上行数据流报文的资源模块的标识对应的资源模块故障后,从所述SF对应的剩余资源模块中重新选择一个资源模块用于处理所述下行数据流报文。
19.如权利要求12~18任一项所述的方法,其特征在于,所述用于处理所述上行数据流报文的资源模块的标识为用于处理所述上行数据流报文的资源模块的在全局的唯一标识,所述全局用于表示数据流处理过程中的所有业务功能SF;和/或所述资源模块的标识为用于处理所述上行数据流报文的资源模块在SF内的唯一标识。
20.一种数据流处理的装置,其特征在于,包括:处理单元和通信单元;
所述通信单元,用于接收上行数据流报文;
所述处理单元,确定用于处理所述上行数据流报文的资源模块以及所述用于处理所述上行数据流报文的资源模块的标识;根据所述资源模块的标识修改所述上行数据流报文,修改后的所述上行数据流报文包括所述用于处理所述上行数据流报文的资源模块的标识;
所述通信单元,还用于发送修改后的所述上行数据流报文。
21.如权利要求20所述的装置,其特征在于,所述处理单元具体用于:
根据接收到的所述上行数据流报文,确定用于处理所述上行数据流报文的目的地址;
从所述目的地址对应的资源模块中确定用于处理所述上行数据流报文的资源模块以及所述用于处理所述上行数据流报文的资源模块的标识。
22.如权利要求20或21所述的装置,其特征在于,修改后的所述上行数据流报文中携带所述资源模块的标识与业务功能SF的对应关系。
23.如权利要求22所述的装置,其特征在于,所述处理单元具体用于:
将所述对应关系添加到所述上行数据流报文的段路由报头SRH中。
24.如权利要求23所述的装置,其特征在于,所述处理单元具体用于:
将所述对应关系添加到所述SRH中的段列表中的段路由标识SID;或
将所述对应关系添加到所述SRH中的可选的类型长度值TLV字段。
25.如权利要求21~24任一项所述的装置,其特征在于,所述处理单元具体用于:
根据所述目的地址确定转发表项,所述转发表项包括所述目的地址对应的资源模块以及所述目的地址对应的资源模块的标识;
从所述转发表项中获取用于处理所述上行数据流报文的资源模块以及所述用于处理所述上行数据流报文的所述资源模块的标识。
26.如权利要求25所述的装置,其特征在于,所述处理单元还用于:
接收协议报文,所述协议报文中携带所述目的地址与所述目的地址对应的资源模块;
根据所述协议报文生成所述转发表项。
27.如权利要求21~26任一项所述的装置,其特征在于,所述资源模块的标识为所述资源模块在全局的唯一标识,所述全局用于表示数据流处理过程中的所有业务功能SF;和/或所述资源模块的标识为所述资源模块在SF内的唯一标识。
28.如权利要求21~27任一项所述的装置,其特征在于,所述处理单元还用于:
接收下行数据流报文,其中,所述下行数据流报文中携带用于处理所述上行数据流报文的资源模块的标识,所述下行数据流报文的目的地址是所述上行数据流报文的源地址,所述下行数据流报文的源地址是所述上行数据流报文的目的地址;
根据所述用于处理所述上行数据流报文的资源模块的标识确定用于处理所述下行数据流报文的资源模块,所述用于处理所述下行数据流报文的资源模块与所述用于处理所述上行数据流报文的资源模块相同。
29.如权利要求28所述的装置,其特征在于,所述处理单元具体用于:
根据接收到的所述下行数据流报文,确定处理所述下行数据流报文的目的地址;
根据所述目的地址以及所述用于处理所述上行数据流报文的资源模块的标识,确定用于处理所述下行数据流报文的资源模块。
30.如权利要求28所述的装置,其特征在于,所述处理单元还用于:
将所述用于处理所述上行数据流报文的资源模块的标识与业务功能SF的对应关系添加到所述下行数据流报文的段路由报头SRH中。
31.一种数据流处理的装置,其特征在于,包括:处理单元和通信单元;
所述通信单元,用于接收下行数据流报文,其中,所述下行数据报文中携带用于处理所述下行数据流报文对应的上行数据流报文的资源模块的标识;
所述处理单元,用于根据所述用于处理所述上行数据流报文的资源模块的标识确定用于处理所述下行数据流报文的资源模块,所述用于处理所述下行数据流报文的资源模块与所述用于处理所述上行数据流报文的资源模块相同。
32.如权利要求31所述的装置,其特征在于,所述接收下行数据流报文之前,所述处理单元还用于:
接收上行数据流报文,所述上行数据流报文携带用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的业务功能SF的对应关系;
根据所述上行数据流报文,生成学习记录,所述学习记录包含所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的SF的对应关系。
33.如权利要求32所述的装置,其特征在于,所述处理单元还用于:
根据所述上行数据流报文与所述下行数据流报文的对应关系,确定所述学习记录;
将所述学习记录中包含的所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流报文经过的SF的对应关系,添加到所述下行数据流报文中。
34.如权利要求33所述的装置,所述处理单元具体用于:
将所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,添加到所述下行数据流报文的段路由报头SRH中。
35.如权利要求34所述的装置,所述处理单元具体用于:
将所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,添加到所述SRH中的段列表中的段路由标识SID;或
将所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系添加到所述SRH中的可选的类型长度值TLV字段。
36.如权利要求32~35任一项所述的装置,其特征在于,所述处理单元具体用于:
根据目的地址,确定SF对应的资源模块;
根据所述用于处理所述上行数据流报文的资源模块的标识与所述上行数据流经过的SF的对应关系,从所述SF对应的资源模块中确定用于处理所述下行数据流报文的资源模块。
37.如权利要求36所述的装置,其特征在于,所述处理单元还用于:
确定所述用于处理所述上行数据流报文的资源模块的标识对应的资源模块故障后,从所述SF对应的剩余资源模块中重新选择一个资源模块用于处理所述下行数据流报文。
38.如权利要求31~37任一项所述的装置,其特征在于,所述用于处理所述上行数据流报文的资源模块的标识为用于处理所述上行数据流报文的资源模块的在全局的唯一标识,所述全局用于表示数据流处理过程中的所有业务功能SF;和/或所述资源模块的标识为用于处理所述上行数据流报文的资源模块在SF内的唯一标识。
39.一种数据流处理的系统,其特征在于,包括:第一节点和第二节点;
所述第一节点是如权利要求20-30任一项所述的装置,所述第二节点是如权利要求31-38任一项所述的装置。
40.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在装置上运行时,使得第一节点执行如权利要求1~11中任一所述的方法步骤;或使得第二节点执行如权利要求12~19中任一所述的方法步骤。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010148537.8A CN113364676B (zh) | 2020-03-05 | 2020-03-05 | 一种数据流处理的方法及装置 |
PCT/CN2020/141750 WO2021174986A1 (zh) | 2020-03-05 | 2020-12-30 | 一种数据流处理的方法及装置 |
EP20923270.1A EP4102784A4 (en) | 2020-03-05 | 2020-12-30 | DATA FLOW PROCESSING METHOD AND DEVICE |
US17/902,182 US20230006921A1 (en) | 2020-03-05 | 2022-09-02 | Data stream processing method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010148537.8A CN113364676B (zh) | 2020-03-05 | 2020-03-05 | 一种数据流处理的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113364676A true CN113364676A (zh) | 2021-09-07 |
CN113364676B CN113364676B (zh) | 2023-05-02 |
Family
ID=77523781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010148537.8A Active CN113364676B (zh) | 2020-03-05 | 2020-03-05 | 一种数据流处理的方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230006921A1 (zh) |
EP (1) | EP4102784A4 (zh) |
CN (1) | CN113364676B (zh) |
WO (1) | WO2021174986A1 (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571613A (zh) * | 2012-03-09 | 2012-07-11 | 华为技术有限公司 | 一种转发报文的方法及网络设备 |
CN103748842A (zh) * | 2013-06-26 | 2014-04-23 | 华为技术有限公司 | 一种转发数据包的方法、装置和路由设备 |
CN103916719A (zh) * | 2013-01-06 | 2014-07-09 | 中兴通讯股份有限公司 | 操作管理维护消息优先发送方法、装置及系统 |
CN104469845A (zh) * | 2013-09-18 | 2015-03-25 | 华为技术有限公司 | 一种报文处理方法、系统及设备 |
WO2016150020A1 (zh) * | 2015-03-20 | 2016-09-29 | 中兴通讯股份有限公司 | 基于调度流标识的报文调度方法和装置 |
WO2018024253A1 (en) * | 2016-08-05 | 2018-02-08 | Huawei Technologies Co., Ltd. | Service-based traffic forwarding in virtual networks |
CN107925624A (zh) * | 2016-07-01 | 2018-04-17 | 华为技术有限公司 | 基于业务功能链sfc的报文转发方法、装置和系统 |
CN108353409A (zh) * | 2015-12-29 | 2018-07-31 | 华为技术有限公司 | 终端设备、网络设备、数据传输方法和无线通信系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170093698A1 (en) * | 2015-09-30 | 2017-03-30 | Huawei Technologies Co., Ltd. | Method and apparatus for supporting service function chaining in a communication network |
US10164875B2 (en) * | 2016-02-22 | 2018-12-25 | Cisco Technology, Inc. | SR app-segment integration with service function chaining (SFC) header metadata |
-
2020
- 2020-03-05 CN CN202010148537.8A patent/CN113364676B/zh active Active
- 2020-12-30 EP EP20923270.1A patent/EP4102784A4/en active Pending
- 2020-12-30 WO PCT/CN2020/141750 patent/WO2021174986A1/zh unknown
-
2022
- 2022-09-02 US US17/902,182 patent/US20230006921A1/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571613A (zh) * | 2012-03-09 | 2012-07-11 | 华为技术有限公司 | 一种转发报文的方法及网络设备 |
CN103916719A (zh) * | 2013-01-06 | 2014-07-09 | 中兴通讯股份有限公司 | 操作管理维护消息优先发送方法、装置及系统 |
CN103748842A (zh) * | 2013-06-26 | 2014-04-23 | 华为技术有限公司 | 一种转发数据包的方法、装置和路由设备 |
CN104469845A (zh) * | 2013-09-18 | 2015-03-25 | 华为技术有限公司 | 一种报文处理方法、系统及设备 |
WO2016150020A1 (zh) * | 2015-03-20 | 2016-09-29 | 中兴通讯股份有限公司 | 基于调度流标识的报文调度方法和装置 |
CN108353409A (zh) * | 2015-12-29 | 2018-07-31 | 华为技术有限公司 | 终端设备、网络设备、数据传输方法和无线通信系统 |
CN107925624A (zh) * | 2016-07-01 | 2018-04-17 | 华为技术有限公司 | 基于业务功能链sfc的报文转发方法、装置和系统 |
WO2018024253A1 (en) * | 2016-08-05 | 2018-02-08 | Huawei Technologies Co., Ltd. | Service-based traffic forwarding in virtual networks |
Non-Patent Citations (3)
Title |
---|
A. FARREL等: "An MPLS-Based Forwarding Plane for Service Function Chaining draft-ietf-mpls-sfc-05", 《IETF 》 * |
刘益岑,等: ""动态服务功能链(SFC)技术研究进展"", 《计算机工程与应用》 * |
杨柯: ""数据中心网络中服务功能链的部署与路由"", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
EP4102784A1 (en) | 2022-12-14 |
WO2021174986A1 (zh) | 2021-09-10 |
US20230006921A1 (en) | 2023-01-05 |
EP4102784A4 (en) | 2023-07-19 |
CN113364676B (zh) | 2023-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10764181B2 (en) | Pipelined evaluations for algorithmic forwarding route lookup | |
CN102104541B (zh) | 报头处理引擎 | |
CN101411136B (zh) | 利用超过cam关键字长度的表索引执行查表操作的方法 | |
US11924099B2 (en) | Method for forwarding packet in hybrid network, device, and system | |
CN110177082B (zh) | 一种数据处理方法、设备、介质以及装置 | |
CN106878194B (zh) | 一种报文处理方法和装置 | |
CN108574638B (zh) | 一种数据报文的转发方法和设备 | |
CN113824638A (zh) | 一种转发报文的方法、设备和系统 | |
EP3322135A1 (en) | Packet transmission method and device | |
JP2022550343A (ja) | Srネットワークでパケットを転送する方法、デバイス、及びシステム | |
US20200228448A1 (en) | Packet processing method and apparatus | |
CN113746749A (zh) | 网络连接设备 | |
CN110169019B (zh) | 数据库功能定义的网络交换机和数据库系统 | |
CN108650178B (zh) | 一种业务报文处理方法、装置及系统 | |
EP3542518B1 (en) | Enabling connections in a content centric network | |
CN115065637A (zh) | 传输算力资源信息的方法、装置和电子设备 | |
Geissler et al. | Tablevisor 2.0: Towards full-featured, scalable and hardware-independent multi table processing | |
US10754666B1 (en) | Hardware micro-services platform | |
CN114285907B (zh) | 数据传输方法、装置、电子设备及存储介质 | |
EP3166273B1 (en) | Method and system for processing service node ability | |
CN113364676B (zh) | 一种数据流处理的方法及装置 | |
US8755386B2 (en) | Traceback packet transport protocol | |
CN114079634B (zh) | 一种报文转发方法、装置及计算机可读存储介质 | |
CN114666259A (zh) | 报文传输的方法、装置、设备、存储介质及系统 | |
JP5144225B2 (ja) | 情報検索装置、及び情報検索装置へのエントリ情報の登録方法 |
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 |