CN105337881B - 一种数据报文的处理方法、业务节点以及引流点 - Google Patents
一种数据报文的处理方法、业务节点以及引流点 Download PDFInfo
- Publication number
- CN105337881B CN105337881B CN201410301535.2A CN201410301535A CN105337881B CN 105337881 B CN105337881 B CN 105337881B CN 201410301535 A CN201410301535 A CN 201410301535A CN 105337881 B CN105337881 B CN 105337881B
- Authority
- CN
- China
- Prior art keywords
- service node
- uplink data
- data messages
- drainage point
- point
- 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/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/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据报文的处理方法、业务节点以及引流点,用于提高数据报文的处理效率。第二业务节点接收第一业务节点发送的第一上行数据报文;所述第二业务节点对所述第一上行数据报文进行业务处理,得到第二上行数据报文;当所述第二业务节点根据业务节点信息确定所述第二业务节点为所述业务链中上行方向上的最后一个业务节点时,所述第二业务节点将所述业务节点信息从所述第二上行数据报文中删除,得到第三上行数据报文;所述第二业务节点将所述第三上行数据报文发送给第二引流点,所述第二引流点为所述业务链的上行出口引流点。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种数据报文的处理方法、业务节点以及引流点。
背景技术
随着互联网经济的发展,电子商务、企业信息系统外包以及移动互联网等新的业务日益增加。这些业务促进了对数据中心(英文:data center)的市场需求,使得数据中心技术获得了快速的发展,新技术层出不穷。
数据中心通常是指在一个物理空间内实现数据信息的集中处理、存储、传输、交换、管理的一整套集成信息技术(英文:Information Technology,缩写:IT)应用环境。数据中心机房的关键设备包括计算机设备、服务器设备、网络设备、存储设备等。随着用户需求的发展,数据中心的规模和组网复杂性不断增加,多样化的IT应用对数据中心网络提出了更高要求。
在当前的数据中心网络中部署有多种增值业务设备,现有技术中通过业务链(英文:service chaining)方案解决在数据中心网络中灵活部署增值业务设备的问题。请参阅图1,在现有的service chaining方案中,包括有控制器(controller)、引流点(英文:deliver node)、业务节点(英文:service node),其中,业务节点为增值业务设备,引流点部署在服务器1和服务器2的前端,业务节点1和业务节点2直接与引流点连接。引流点和业务节点都由控制器集中配置。引流点确定来自客户端或者服务器的哪些数据流需要送至业务节点处理,以及需要送至哪些业务节点处理。在数据中心中对于每次访问过程都存在双向流的问题,例如从客户端到服务器方向的上行流,以及从服务器到客户端的下行流。因为业务节点上业务处理的需要,通常要求在业务链中对双向流进行对称处理。
现有技术中上行数据流经过业务链的处理过程如下:控制器首先将业务链配置参数发送给引流点,当客户端发起对服务器2的访问时,引流点接收客户端发送的匹配该业务链配置参数的第一数据报文,将所述第一数据报文先发送到业务节点1处理,业务节点1处理完所述第一数据报文后,将处理得到的第二数据报文发送到引流点,然后,引流点将该第二数据报文发送到业务节点2,业务节点2对所述第二数据报文进行处理后,将处理得到的第三报文发送回引流点,最后,引流点将所述第三数据报文发送给服务器2。下行数据流经过业务链的处理过程与上行数据流类似。
本发明的发明人在实现本发明的过程中发现:现有技术中每做一次业务处理,经过业务节点处理的数据报文都要先返回引流点,再由引流点发送到下一个业务节点,即由引流点实现对数据流向的集中控制。但是由于数据报文需要多次的反复经过引流点,如果业务链包括较多业务节点时,数据报文的处理效率很低。
发明内容
本发明提供了一种数据报文的处理方法、业务节点以及引流点,用于提高数据报文的处理效率。
为解决上述技术问题,本发明实施例提供以下技术方案:
第一方面,本发明提供一种数据报文的处理方法,包括:
第二业务节点接收第一业务节点发送的第一上行数据报文,所述第一上行数据报文携带第一引流点确定的业务链对应的业务节点信息,所述第一业务节点是所述业务链中与所述第二业务节点相邻的上一跳业务节点,所述第一引流点为所述业务链的上行入口引流点;
所述第二业务节点对所述第一上行数据报文进行业务处理,得到第二上行数据报文;
当所述第二业务节点根据所述业务节点信息确定所述第二业务节点为所述业务链中上行方向上的最后一个业务节点时,所述第二业务节点将所述业务节点信息从所述第二上行数据报文中删除,得到第三上行数据报文;
所述第二业务节点将所述第三上行数据报文发送给第二引流点,所述第二引流点为所述业务链的上行出口引流点。
结合第一方面,在第一方面的第一种可能的实现方式中,
所述第二业务节点将所述第三上行数据报文发送给第二引流点之前,所述方法还包括:
所述第二业务节点根据双向流表查询所述第三上行数据报文的上行出口引流点;
若没有查询到上行出口引流点,所述第二业务节点将所述第三上行数据报文发送给第二引流点,具体为:所述第二业务节点按照转发路由将所述第三上行数据报文发送至所述第二引流点;
若查询到上行出口引流点为所述第二引流点,所述第二业务节点将所述第三上行数据报文发送给第二引流点,具体为:所述第二业务节点按照所述双向流表将所述第三上行数据报文发送至所述第二引流点。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,
所述第二业务节点将所述第三上行数据报文发送给第二引流点之前,所述方法还包括:
所述第二业务节点将所述第二业务节点的业务节点信息封装到所述第三上行数据报文中;
所述第二业务节点将所述第三上行数据报文发送给第二引流点包括:
所述第二业务节点将封装了所述第二业务节点的业务节点信息的所述第三上行数据报文发送给所述第二引流点。
结合第一方面,在第一方面的第三种可能的实现方式中,
所述第二业务节点将所述第三上行数据报文发送给第二引流点之后,所述方法还包括:
所述第二业务节点接收所述第二引流点发送的第一下行数据报文;
所述第二业务节点对所述第一下行数据报文进行业务处理,得到第二下行数据报文;
所述第二业务节点根据双向流表确定所述第二下行数据报文为所述业务链的下行数据报文;
所述第二业务节点将所述业务链的业务节点信息封装到所述第二下行数据报文中,得到第三下行数据报文;
所述第二业务节点将所述第三下行数据报文发送给所述第一业务节点。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,
所述第二业务节点根据双向流表确定所述第二下行数据报文为所述业务链的下行数据报文之后,所述方法还包括:
所述第二业务节点将所述第二引流点的引流点信息保存到所述双向流表中。
第二方面,本发明提供一种数据报文的处理方法,包括:
第二引流点接收第二业务节点发送的第三上行数据报文,所述第二业务节点是第一引流点确定的业务链中上行方向上的最后一个业务节点,所述第二引流点为所述业务链的上行出口引流点,所述第三上行数据报文为所述第二业务节点收到第一业务节点发送的第一上行数据报文后,对所述第一上行数据报文进行业务处理得到第二上行数据报文,并从所述第二上行数据报文中删除所述业务链的业务节点信息后得到的;
所述第二引流点将所述第三上行数据报文发送给目的设备,所述第二引流点部署在所述目的设备的前端。
结合第二方面,在第二方面的第一种可能的实现方式中,
所述第二引流点接收第二业务节点发送的第三上行数据报文之后,所述方法还包括:
所述第二引流点从所述第三上行数据报文中解析出所述第二业务节点的业务节点信息;
所述第二引流点将所述第二业务节点的业务节点信息保存到双向流表中。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,
当所述第二业务节点的业务节点信息具体为第二业务节点的设备索引时,所述第二引流点从所述第三上行数据报文中解析出所述第二业务节点的业务节点信息之后,所述方法还包括:
所述第二引流点根据控制器设置的映射关系表查询所述第二业务节点的设备索引对应的互联网协议IP地址;
所述第二引流点将所述第二业务节点的业务节点信息保存到双向流表中,具体为:
所述第二引流点将所述第二业务节点的设备索引对应的IP地址保存到双向流表中。
结合第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现方式中,
所述第二引流点从所述第三上行数据报文中解析出所述第二业务节点的业务节点信息之后,所述方法还包括:
所述第二引流点将所述第二业务节点的业务节点信息发送给第三引流点,所述第三引流点为对所述业务链中除所述第二引流点以外的另一个上行出口引流点。
结合第二方面,在第二方面的第四种可能的实现方式中,
所述第二引流点将所述第三上行数据报文发送给目的设备之后,所述方法还包括:
所述第二引流点接收所述目的设备根据所述第三上行数据报文返回的第一下行数据报文;
所述第二引流点将所述第一下行数据报文发送给所述第二业务节点。
结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述第二引流点将所述第一下行数据报文发送给所述第二业务节点,具体为:
所述第二引流点按照双向流表将所述第一下行数据报文发送给所述第二业务节点。
第三方面,本发明实施例提供一种业务节点,所述业务节点具体为第二业务节点,所述第二业务节点,包括:
接收模块,用于接收第一业务节点发送的第一上行数据报文,所述第一上行数据报文携带第一引流点确定的业务链对应的业务节点信息,所述第一业务节点是所述业务链中与所述第二业务节点相邻的上一跳业务节点,所述第一引流点为所述业务链的上行入口引流点;
业务处理模块,用于对所述第一上行数据报文进行业务处理,得到第二上行数据报文;
解封装模块,用于当所述第二业务节点根据所述业务节点信息确定所述第二业务节点为所述业务链中上行方向上的最后一个业务节点时,将所述业务节点信息从所述第二上行数据报文中删除,得到第三上行数据报文;
发送模块,用于将所述第三上行数据报文发送给第二引流点,所述第二引流点为对所述所述业务链的上行出口引流点。
结合第三方面,在第三方面的第一种可能的实现方式中,
所述第二业务节点,还包括:查询模块,其中,
所述查询模块,用于所述发送模块将所述第三上行数据报文发送给第二引流点之前,根据双向流表查询所述第三上行数据报文的上行出口引流点;
若没有查询到上行出口引流点,所述发送模块,具体用于按照转发路由将所述第三上行数据报文发送至所述第二引流点;
若查询到上行出口引流点为所述第二引流点,所述发送模块,具体用于按照所述双向流表将所述第三上行数据报文发送至所述第二引流点。
结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,
所述第二业务节点,还包括:第一封装模块,其中,
所述第一封装模块,用于所述发送模块将所述第三上行数据报文发送给第二引流点之前,将所述第二业务节点的业务节点信息封装到所述第三上行数据报文中;
所述发送模块,具体用于将封装了所述第二业务节点的业务节点信息的所述第三上行数据报文发送给所述第二引流点。
结合第三方面,在第三方面的第三种可能的实现方式中,
所述第二业务节点,还包括:第二封装模块,其中,
所述接收模块,还用于所述发送模块将所述第三上行数据报文发送给第二引流点之后,接收所述第二引流点发送的第一下行数据报文;
所述业务处理模块,还用于对所述第一下行数据报文进行业务处理,得到第二下行数据报文;
所述第二封装模块,用于将所述业务链的业务节点信息封装到所述第二下行数据报文中,得到第三下行数据报文;
所述发送模块,还用于将所述第三下行数据报文发送给所述第一业务节点。
结合第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,
所述第二业务节点,还包括:保存模块,用于所述发送模块根据双向流表确定所述第二下行数据报文为所述业务链的下行数据报文之后,将所述第二引流点的引流点信息保存到所述双向流表中。
第四方面,本发明提供一种引流点,所述引流点具体为第二引流点,所述第二引流点,包括:
接收模块,用于接收第二业务节点发送的第三上行数据报文,所述第二业务节点是第一引流点确定的业务链中上行方向上的最后一个业务节点,所述第二引流点为对所述所述业务链的上行出口引流点,所述第三上行数据报文为所述第二业务节点收到第一业务节点发送的第一上行数据报文后,对所述第一上行数据报文进行业务处理得到第二上行数据报文,并从所述第二上行数据报文中删除所述业务链的业务节点信息后得到的;
发送模块,用于将所述第三上行数据报文发送给目的设备,所述第二引流点部署在所述目的设备的前端。
结合第四方面,在第四方面的第一种可能的实现方式中,
所述第二引流点,还包括:解析模块和保存模块,其中,
所述解析模块,用于所述接收模块接收第二业务节点发送的第三上行数据报文之后,从所述第三上行数据报文中解析出所述第二业务节点的业务节点信息;
所述保存模块,用于将所述第二业务节点的业务节点信息保存到双向流表中。
结合第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,
当所述第二业务节点的业务节点信息具体为第二业务节点的设备索引时,所述第二引流点,还包括:查询模块,其中,
所述查询模块,用于所述解析模块从所述第三上行数据报文中解析出第二业务节点的业务节点信息之后,根据控制器设置的映射关系表查询所述第二业务节点的设备索引对应的互联网协议IP地址;
所述保存模块,具体用于将所述第二业务节点的设备索引对应的IP地址保存到双向流表中。
结合第四方面的第一种可能的实现方式,在第四方面的第三种可能的实现方式中,
所述发送模块,还用于所述解析模块从所述第三上行数据报文中解析出第二业务节点的业务节点信息之后,将所述第二业务节点的业务节点信息发送给第三引流点,所述第三引流点为对所述业务链中除所述第二引流点以外的另一个上行出口引流点。
结合第四方面,在第四方面的第四种可能的实现方式中,
所述接收模块,还用于所述发送模块将所述第三上行数据报文发送给目的设备之后,接收所述目的设备根据所述第三上行数据报文返回的第一下行数据报文;
所述发送模块,还用于将所述第一下行数据报文发送给所述第二业务节点。
结合第四方面的第四种可能的实现方式,在第四方面的第五种可能的实现方式中,
所述发送模块,具体用于按照双向流表将所述第一下行数据报文发送给所述第二业务节点。
从以上技术方案可以看出,本发明实施例具有以下优点:
在本发明实施例中,第一业务节点将第一上行数据报文按照业务链对应的业务节点信息向下一跳业务节点发送第一上行数据报文,并使第一上行数据报文到达业务链中上行方向上的最后一个业务节点(即第二业务节点),最后一个业务节点对所述第一上行数据报文进行业务处理,得到第二上行数据报文,然后将业务节点信息从第二上行数据报文中删除掉,将删除掉业务节点信息得到的第三上行数据报文发送给第二引流点;第二引流点作为所述业务链的上行出口引流点,接收到第三上行数据报文之后将第三上行数据报文发送给目的设备。由于在数据报文的处理系统中对上行数据报文进行业务处理时采用了第一引流点、第二引流点分别作为上行数据报文的上行入口引流点和上行出口引流点,即数据报文中心系统中对引流点进行分布式设计,通过两个引流点对上行数据报文进行入口引流和出口引流,使上行数据报文在第一引流点和第二引流点中只需要经过一次,能够提高数据报文的处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。
图1为现有技术提供的一种数据报文的处理过程示意图;
图2为本发明实施例提供的一种数据报文的处理方法的流程示意图;
图3为本发明实施例提供的控制器配置业务链的实现方式示意图;
图4本发明实施例提供的另一种数据报文的处理方法的流程示意图;
图5为本发明实施例提供的另一种数据报文的处理方法的流程示意图;
图6为本发明实施例提供的另一种数据报文的处理方法的流程示意图;
图7为本发明实施例提供的多出口引流点的实现方式示意图;
图8为本发明实施例提供的双向数据流经过分布式引流点的处理示意图;
图9-a为上行数据报文的处理过程示意图;
图9-b为下行数据报文的处理过程示意图;
图10为本发明实施例提供的对双向数据报文进行处理的引流点和业务节点之间的交互过程示意图;
图11-a为本发明实施例提供的一种业务节点的结构示意图;
图11-b为本发明实施例提供的另一种业务节点的结构示意图;
图11-c为本发明实施例提供的另一种业务节点的结构示意图;
图11-d为本发明实施例提供的另一种业务节点的结构示意图;
图11-e为本发明实施例提供的另一种业务节点的结构示意图;
图12-a为本发明实施例提供的一种引流点的结构示意图;
图12-b为本发明实施例提供的另一种引流点的结构示意图;
图12-c为本发明实施例提供的另一种引流点的结构示意图;
图13为本发明实施例提供的另一种业务节点的结构示意图;
图14为本发明实施例提供的另一种引流点的结构示意图。
具体实施方式
本发明实施例提供了一种数据报文的处理方法、引流点以及业务节点,用于提高数据报文的处理效率。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不是用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本发明的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的对于这些过程、方法、产品或设备而言是固有的其它单元。
以下分别对本发明各实施例进行详细说明。
本发明数据报文的处理方法的一个实施例,可应用于数据报文的处理系统中,请参阅图2所示,本发明一个实施例提供的数据报文的处理方法,可以包括:
201、第一引流点接收源设备发送的上行数据报文。
其中,上述第一引流点为上行数据报文对应的业务链的上行入口引流点,其中,上述业务链包括:需要对上行数据报文依次进行业务处理的多个业务节点。
在本发明实施例中,可以由控制器对引流点和业务节点进行集中配置,当数据报文的处理系统中有多个引流点和多个业务节点时,控制器需要对所有的引流点和业务节点进行集中配置,控制器、引流点、业务节点都在一个互通的基础网络中。引流点按照控制器配置的策略确定哪些数据报文需要送至业务节点处理,以及需要送至哪些业务节点处理。在本发明的一些应用场景中,本发明实施例提供的业务节点也可以称之为增值业务节点。
在本发明实施例中,第一引流点作为上行入口引流点,第一引流点首先通过外网从源设备接收上行数据报文,本发明实施例中第一引流点只作为上行数据报文的入口引流点,上行数据报文从第一引流点发送出去后,不需要再回到所述第一引流点。
需要说明的是,在本发明实施例中将主动发起访问的一端称之为“源设备”,将被访问的一端称之为“目的设备”,并且为了区分源设备和目的设备分别发送的数据报文,将由源设备发送出去的数据报文称之为“上行数据报文”,并且将对上行数据报文进行引流的入口引流点称之为“上行入口引流点”,将对上行数据报文进行引流的出口引流点称之为“上行出口引流点”,将由目的设备发送出去的数据报文称之为“下行数据报文”,并且将对下行数据报文进行引流的入口引流点称之为“下行入口引流点”,将对下行数据报文进行引流的出口引流点称之为“下行出口引流点”,第一引流点和第二引流点对上行数据报文、下行数据报文的引流构成了对双向流的引流,第一业务节点、中间业务节点、第二业务节点对上行数据报文、下行数据报文的业务处理构成了对双向流的业务处理。所述中间业务节点可以是0个(即不存在),1个或多个。
另外需要说明的是,本发明实施例中提供的数据报文的处理系统中部署有多个引流点,由多个引流点中的两个引流点相互配合以完成对数据报文的引流,本发明实施例中将接收到源设备发送的上行数据报文的引流点称之为“第一引流点”,而将与第一引流点配合用以完成对上行数据报文进行引流的出口引流点称之为“第二引流点”。详见后续实施例中对第二引流点的描述。另外,本发明实施例中,用“第一”、“第二”、“第三”等对数据报文的处理系统中的多个引流点加以区分,“第一”、“第二”、“第三”并不代表时序或者逻辑上的先后顺序,同样的,本发明实施例中,用“第一”、“第二”、“第三”等对数据报文的处理系统中的多个业务节点加以区分,“第一”、“第二”、“第三”并不代表时序或者逻辑上的先后顺序。
在本发明实施例中,控制器在入口引流点配置了引流策略,引流策略包括由哪个引流点对数据报文进行引流,以及数据报文对应的业务链,第一引流点从源设备接收到上行数据报文之后,根据控制器配置的引流策略就可以确定该上行数据报文需要进入哪条业务链。上行数据报文经由入口引流点进入由第一引流点确定的一条业务链,当所述业务链中的各个业务节点都对数据报文进行业务处理之后,数据报文再从所述业务链中流出,到达出口引流点,每个方向的数据报文只需要经过一次入口引流点和出口引流点,而无需反复多次的进出同一个引流点,故本发明实施例可以提高对数据报文的处理效率。
请参阅如图3所示的控制器配置业务链的实现方式示意图,其中,数据中心网络包括:控制器、引流点1、引流点2、引流点3、引流点4、业务节点1、业务节点2、业务节点3。服务器1和服务器2的前端部署的是引流点3,服务器3和服务器4的前端部署的是引流点4,其中,控制器按照业务处理的需要共配置了3条业务链,这3条业务链分别为业务链1、业务链2、业务链3。以业务链1的实现为例进行说明,在客户端1发起到服务器2的访问过程中,客户端1作为源设备,服务器2作为目的设备,引流点1作为上行入口引流点,引流点3作为上行出口引流点,引流点1为客户端1发送的上行数据报文匹配出的业务链就是业务链1,业务节点1和业务节点2需要依次对上行数据报文进行业务处理;对于服务器2发送的下行数据报文,引流点3作为下行入口引流点,业务节点2和业务节点1需要依次对下行数据报文进行业务处理,引流点2作为下行出口引流点。同样的,对于业务链2,客户端1发起到服务器4的访问过程中,需要上行数据报文依次经过引流点1->业务节点1->业务节点3->引流点4,到达服务器4。对于业务链3,服务器2和服务器3之间的切换操作中,服务器2发送出去的上行数据报文就会匹配到业务链3。
举例说明,对于进入引流点1的数据报文,如果符合引流点1上已经配置的引流策略,数据报文会被转发到该引流策略对应的业务链中进行业务处理。例如对于策略Policy1,对应的业务链1是业务节点1->业务节点2,即命中Policy1的上行数据报文由引流点1发送至业务节点1进行业务处理,然后送至业务节点2进行业务处理;对应的下行数据报文先要送至业务节点2进行业务处理,然后送至业务节点1进行业务处理。如果命中策略Policy2,对应的业务链2是业务节点1->业务节点3,即命中Policy2的上行数据报文由引流点1发送至业务节点1进行业务处理,然后送至业务节点3进行业务处理;相应的下行数据报文先要送至业务节点3进行业务处理,然后送至业务节点1进行业务处理。
在本发明的一些实施例中,源设备可以是客户端(英文称为Client),目的设备可以是服务器(英文称为Server),例如前述图3中描述的客户端1和服务器2;源设备可以是服务器,目的设备可以是客户端,例如前述图3中描述的服务器4和客户端1,另外,对于数据报文的处理系统的内部相互访问,源设备和目的设备都可以是服务器,例如前述图3中描述的服务器2和服务器3。在数据报文的处理系统的实际应用中,网络较为复杂,Server可能部署在虚拟机上,此时与Server关联的引流点通常为虚拟交换机,南向对Server的网络接口,北向对数据报文的处理系统外网的网络接口,并且在数据报文的处理系统中部署有多个引流点。
202、第一引流点将所述业务链的业务节点信息封装到上行数据报文中。
在本发明实施例中,第一引流点根据引流策略确定了上行数据报文应该进入哪条业务链之后,第一引流点将确定出的业务链的业务节点信息封装到上行数据报文中。其中,业务链的业务节点信息指的是业务链中包括的多个业务节点的业务节点信息,具体的,业务节点信息具体可以指的是业务节点的互联网协议(英文:Internet Protocol,缩写:IP)地址,在本发明实施例中,业务节点信息还可以是业务节点的特定标识,例如,业务节点信息可以是业务节点的设备索引。
在本发明的一些实施例中,当业务节点信息具体为IP地址时,步骤202第一引流点将业务链的业务节点信息封装到上行数据报文中,具体可以包括如下步骤:
第一引流点将业务链中所有业务节点的IP地址按照业务处理的顺序依次封装到上行数据报文中。
其中,用业务节点的IP地址表示业务节点信息时,当第一引流点确定了一个业务链之后,第一引流点就可以将该业务链的所有业务节点的IP地址都封装到上行数据报文中,则第一引流点封装到上行数据报文中的多个IP地址就可以构成业务链的路由信息,用于指示业务链中的上一跳业务节点如何转发数据报文到下一跳的业务节点。
在本发明的另一些实施例中,当业务节点信息具体为业务节点的设备索引时,步骤202第一引流点将业务链的业务节点信息封装到上行数据报文中,具体可以包括如下步骤:
第一引流点将业务链中所有业务节点的设备索引按照业务处理的顺序依次封装到上行数据报文中。
其中,用业务节点的设备索引表示业务节点信息时,当第一引流点确定了一个业务链之后,第一引流点就可以将该业务链的所有业务节点的设备索引都封装到上行数据报文中,则第一引流点封装到上行数据报文中的多个设备索引可以用于指示该上行数据报文应该由哪些业务节点来进行业务处理,业务链中的上一跳业务节点也可以根据设备索引与IP地址的映射关系确定出上行数据报文应该被转发到的下一跳业务节点。
在本发明的一些实施例中,第一引流点将业务节点信息封装到上行数据报文中,例如,第一引流点可以将业务节点信息封装到上行数据报文的报文头部中,具体的,第一引流点可以修改上行数据报文的IP选项(英文:Option)字段,在其中增加业务节点信息。需要说明的是,本发明实施例中第一引流点在上行数据报文中封装的业务节点信息是为了业务节点能够解析使用,故第一引流点只需要按照和业务节点的约定的方式来封装业务节点信息即可。
203、第一引流点将封装有业务节点信息的上行数据报文发送给第一业务节点。
其中,上述第一业务节点是业务链中第一个对上行数据报文进行业务处理的业务节点。
在本发明实施例中,第一引流点确定了使用哪条业务链对上行数据报文进行转发之后,在上行数据报文中封装所确定的业务链的业务节点信息,并将封装了业务链的业务节点信息的上行数据报文发送给业务链中的第一业务节点。
在本发明实施例中,上行数据报文经由上行入口引流点(即第一引流点)进入业务链到达第一业务节点之后,该上行数据报文不会再返回第一引流点,即一个流向的数据报文只需要经过一次引流点,当业务链中的各个业务节点都对上行数据报文进行业务处理之后,上行数据报文再从所述业务链中流出,到达出口引流点,每个方向的数据报文只需要经过一次入口引流点和出口引流点,能够提高对数据报文的处理效率。
前述实施例对上行数据报文的引流过程进行了说明,接下来对下行数据报文的引流过程进行说明。在本发明实施例中,数据报文的处理过程可以为双向数据流的处理,以超文本转移协议(英文:Hypertext Transfer Protocol,缩写:HTTP)为基础的网络(英文:Web)业务为例,每次访问过程都存在双向数据流:从Client到Server方向的上行数据流,以及从Server回复Client的下行数据流。对于部分应用场景,比如文件传输协议(英文:FileTransfer Protocol,缩写:FTP)的主动模式,也可能存在Server先发起向Client的上行数据流,Client回复Server的下行数据流的情况。
本发明实施例中对于第一引流点对下行数据报文的引流方法,请参阅如下实施例的说明。
在本发明的一些实施例中,步骤203之后,所述方法还可以包括如下步骤:
A1、第一引流点接收第一业务节点发送的下行数据报文,其中,下行数据报文携带所述业务链的业务节点信息,此时,第一引流点为对下行数据报文进行引流的下行出口引流点;
A2、第一引流点将业务节点信息从下行数据报文中删除;
A3、第一引流点将删除业务节点信息的下行数据报文发送给源设备。
其中,下行数据报文是由目的设备根据上行数据报文返回的数据报文,下行数据报文转发过程与上行数据报文恰好相反,下行数据报文在业务链中按照与上行数据报文相反的业务处理流程进行对称处理,当下行数据报文到达第一业务节点之后,由第一业务节点将下行数据报文发送给第一引流点,由于下行数据报文在进入业务链到达第一个对下行数据报文进行处理的业务节点时由该业务节点对下行数据报文封装了业务节点信息,第一引流点接收到下行数据报文之后,第一引流点需要将封装的业务节点信息删除掉删除掉业务节点信息之后第一引流点将数据报文发送给源设备,从而完成对数据报文的双向流的对称处理。下行数据报文从业务链中流出,到达下行出口引流点(即第一引流点),故每个方向的数据报文只需要经过一次出口引流点,能够提高对数据报文的处理效率。并且在本发明实施例提供的数据报文的处理系统中可以实现双向数据流的自动关联处理,降低了控制器配置的难度,提高了系统的处理性能。
通过以上实施例对本发明的描述可知,源设备发送上行数据报文到第一引流点,第一引流点将业务链的业务节点信息封装到上行数据报文中,然后第一引流点将封装有业务节点信息的上行数据报文发送给业务链中的第一业务节点;第一业务节点将第一上行数据报文按照业务链对应的业务节点信息向下一跳业务节点发送第一上行数据报文,并使第一上行数据报文到达业务链中上行方向上的最后一个业务节点(即第二业务节点),最后一个业务节点对所述第一上行数据报文进行业务处理,得到第二上行数据报文,然后将业务节点信息从第二上行数据报文中删除掉,将删除掉业务节点信息得到的第三上行数据报文发送给第二引流点;第二引流点作为所述业务链的上行出口引流点,接收到第三上行数据报文之后将第三上行数据报文发送给目的设备。由于在数据报文的处理系统中对上行数据报文进行业务处理时采用了第一引流点、第二引流点分别作为上行数据报文的上行入口引流点和上行出口引流点,即数据报文中心系统中对引流点进行分布式设计,通过两个引流点对上行数据报文进行入口引流和出口引流,使上行数据报文在第一引流点和第二引流点中只需要经过一次,能够提高数据报文的处理效率。
上述实施例从数据报文的处理系统中的第一引流点的角度对本发明实施例提供的数据报文的处理方法进行了说明,接下来从第一业务节点的角度对本发明实施例提供的数据报文的处理方法进行说明,请参阅图4所示,本发明一个实施例提供的数据报文的处理方法,可以包括:
401、第一业务节点接收第一引流点发送的上行数据报文。
其中,上行数据报文携带第一引流点确定的业务链的业务节点信息。
在本发明实施例中,数据报文的处理系统中的第一引流点将上行数据报文引流到由第一引流点确定的业务链中第一个对上行数据报文进行业务处理的业务节点,其中,第一引流点和第一业务点都处在互通的同一内部网络中,第一业务节点首先接收第一引流点发送的上行数据报文,由于第一引流点在上行数据报文携带业务节点信息,第一业务节点通过对上行数据报文的解析,可以从中获取到业务节点信息。具体的,业务节点信息具体可以指的是业务节点的IP地址,在本发明实施例中,业务节点信息还可以指的是业务节点的特定标识,例如,业务节点信息可以是业务节点的设备索引。
402、第一业务节点对上行数据报文进行业务处理。
在本发明实施例中,第一业务节点接收到上行数据报文之后,第一业务节点对上行数据报文进行业务处理,并且在本发明实施例提供的数据报文的处理系统中,业务链中包括的每个业务节点都需要对数据报文进行业务处理,但是不同的业务节点对数据报文所做的业务处理的内容是不同的,例如有的业务节点是进行反病毒(英文:Anti-Virus,缩写:AV)处理,有的业务节点是进行入侵防御系统(英文:Intrusion Prevention System,缩写:IPS)处理,控制器在对各个业务节点进行配置时,各个业务链中分别包括有需要由哪几个业务节点进行什么样的业务处理,并且各个业务节点之间进行业务处理的先后顺序等,并且在不同的应用场景中,业务链中各个业务节点可以分别进行多种业务处理,业务节点对数据报文进行的业务处理可结合具体的场景来具体实现,此处仅作说明。
403、第一业务节点根据业务节点信息将业务处理后的上行数据报文发送到中间业务节点或者第二业务节点。
其中,中间业务节点是业务链中与第一业务节点相邻的下一跳业务节点,若在业务链中第一业务节点和第二业务节点之间没有中间业务节点,第一业务节点直接将上行数据报文发送给第二业务节点。
在本发明实施例中,第一业务节点对上行数据报文按照本业务节点的业务模式处理完成之后,第一业务节点可以根据业务节点信息将业务处理后的上行数据报文发送到中间业务节点,由于第一业务节点是业务链中第一个对上行数据报文进行业务处理的业务节点,第一业务节点在完成对数据报文的业务处理之后,第一业务节点需要按照业务链的业务节点信息向下一跳的业务节点发送上行数据报文,中间业务节点是业务链中与第一业务节点相邻的下一跳业务节点,中间业务节点按照本业务节点的业务模式对上行数据报文进行业务处理,并按照业务节点信息继续向中间业务节点的下一跳业务节点发送上行数据报文。另外,在本发明的一些实施例中,每个业务节点还可以根据上行数据报文携带的业务节点信息判断本业务节点是否是第一引流点确定的业务链中最后一个对上行数据报文进行业务处理的业务节点,只要本业务节点不是业务链中最后一个对上行数据报文进行业务处理的业务节点,本业务节点都需要根据业务节点继续向本业务节点的下一跳业务节点继续发送上行数据报文。
根据前述对业务节点信息的说明可知,若业务节点信息具体为业务节点的IP地址时,第一业务节点可以直接根据该IP地址将上行数据报文转发到中间业务节点,当业务节点信息具体为业务节点的设备索引时,步骤402第一业务节点对上行数据报文进行业务处理之后,本发明实施例提供的数据报文的处理方法还可以包括如下步骤:
第一业务节点根据控制器设置的映射关系表查询中间业务节点的设备索引对应的IP地址。
也就是说,当第一引流点在上行数据报文中封装的业务节点信息不是业务节点的IP地址,而是业务节点的设备索引值时,第一业务节点在解析上行数据报文之后,第一业务节点需要根据设备索引信息查询控制器配置的映射关系表,获取到中间业务节点对应的IP地址,从而第一业务节点可以根据查询到的IP地址发送上行数据报文至中间业务节点。
前述实施例中说明了第一业务节点对上行数据报文进行业务处理的实现流程,接下来对下行数据报文的业务处理过程进行说明。在本发明实施例中,数据报文的处理过程可以为双向数据流的处理,以HTTP为基础的Web业务为例,每次访问过程都存在双向数据流的问题:从Client到Server方向的上行数据流,以及从Server回复Client的下行数据流。对于部分应用,比如FTP的主动模式,也可能存在Server先发起向Client的上行数据流,Client回复Server的下行数据流的情况。因为业务节点上对业务处理的需要,通常要求双向数据流在业务链中进行对称处理。
本发明实施例中对于第一业务节点对下行数据报文的业务处理方法,请参阅如下实施例的说明。在本发明的一些实施例中,步骤403第一业务节点根据业务节点信息将业务处理后的上行数据报文发送到中间业务节点之后,还可以包括如下步骤:
B1、第一业务节点接收中间业务节点发送的下行数据报文,其中,下行数据报文携带第一引流点确定的业务链的业务节点信息;
B2、第一业务节点对下行数据报文进行业务处理;
B3、当第一业务节点根据业务节点信息确定第一业务节点为业务链中上行方向上的最后一个业务节点时,第一业务节点将业务处理后的下行数据报文发送给第一引流点,其中,第一引流点为对数据报文进行引流的下行出口引流点。
其中,下行数据报文是由目的设备根据上行数据报文返回的数据报文,下行数据报文转发过程与上行数据报文恰好相反,下行数据报文在业务链中按照与上行数据报文相反的业务处理流程进行对称处理,当下行数据报文到达中间业务节点之后,第一业务节点作为业务链中对下行数据报文进行业务处理时中间业务节点的下一跳业务节点,中间业务节点将下行数据报文发送到第一业务节点,步骤B1中若在业务链中第一业务节点和第二业务节点之间没有中间业务节点,则第一业务节点可以从第二业务节点接收到下行数据报文。由于下行数据报文在进入业务链到达第一个对下行数据报文进行处理的业务节点时由该业务节点对下行数据报文封装了业务节点信息,中间业务节点可以根据该业务节点信息发送下行数据报文到第一业务节点。
通过以上实施例对本发明的描述可知,源设备发送上行数据报文到第一引流点,第一引流点将业务链的业务节点信息封装到上行数据报文中,然后第一引流点将封装有业务节点信息的上行数据报文发送给业务链中的第一业务节点;第一业务节点将第一上行数据报文按照业务链对应的业务节点信息向下一跳业务节点发送第一上行数据报文,并使第一上行数据报文到达业务链中上行方向上的最后一个业务节点(即第二业务节点),最后一个业务节点对所述第一上行数据报文进行业务处理,得到第二上行数据报文,然后将业务节点信息从第二上行数据报文中删除掉,将删除掉业务节点信息得到的第三上行数据报文发送给第二引流点;第二引流点作为所述业务链的上行出口引流点,接收到第三上行数据报文之后将第三上行数据报文发送给目的设备。由于在数据报文的处理系统中对上行数据报文进行业务处理时采用了第一引流点、第二引流点分别作为上行数据报文的上行入口引流点和上行出口引流点,即数据报文中心系统中对引流点进行分布式设计,通过两个引流点对上行数据报文进行入口引流和出口引流,使上行数据报文在第一引流点和第二引流点中只需要经过一次,能够提高数据报文的处理效率。
上述实施例从数据报文的处理系统中的第一业务节点的角度对本发明实施例提供的数据报文的处理方法进行了说明,若业务链中在第一业务节点和第二业务节点之间还存在中间业务节点,则中间业务节点接收第一业务节点发送的上行数据报文,中间业务节点具体可以执行的数据报文的处理方法可以如下:
首先,中间业务节点接收第一业务节点发送的第一上行数据报文。
其中,第一上行数据报文携带第一引流点确定的业务链对应的业务节点信息,第一业务节点是业务链中与中间业务节点相邻的上一跳业务节点,第一引流点为所述业务链的上行入口引流点。
在本发明实施例中,对于数据报文的上行方向而言,若存在中间业务节点,中间业务节点是业务链中与第二业务节点相邻的上一跳业务节点,第一业务节点根据本业务节点的业务模式对上行数据报文进行业务处理之后将第一上行数据报文发送给中间业务节点,中间业务节点接收第一业务节点发送的第一上行数据报文,由于第一引流点在第一上行数据报文中封装了业务节点信息,中间业务节点通过对第一上行数据报文的解析,可以从中获取到业务节点信息。
具体的,业务节点信息具体可以指的是业务节点的IP地址,在本发明实施例中,业务节点信息还可以指的是业务节点的特定标识,例如,业务节点信息可以是业务节点的设备索引。
其次,中间业务节点对第一上行数据报文进行业务处理,得到业务处理后的第一上行数据报文。
在本发明实施例中,中间业务节点接收到第一业务节点发送的上行数据报文之后,中间业务节点就可以对第一上行数据报文进行业务处理了。
在本发明实施例中,中间业务节点接收到第一上行数据报文之后,中间业务节点对第一上行数据报文进行业务处理,中间业务节点对第一上行数据报文进行业务处理,并且在本发明实施例提供的数据报文的处理系统中,业务链中包括的每个业务节点都需要对数据报文进行业务处理,但是不同的业务节点对数据报文所做的业务处理的内容是不同的,例如有的业务节点是进行反病毒处理,有的业务节点是进行入侵防御系统处理,控制器在对各个业务节点进行配置时,各个业务链中分别包括有需要由哪几个业务节点进行什么样的业务处理,并且各个业务节点之间进行业务处理的先后顺序等,并且在不同的应用场景中,业务链中各个业务节点可以分别进行多种业务处理,业务节点对数据报文进行的业务处理可结合具体的场景来具体实现,此处仅作说明。
最后,中间业务节点将业务处理后的第一上行数据报文发送给第二业务节点。
在本发明实施例中,数据报文的处理系统中的每个业务节点在从上一跳的业务节点接收到上行数据报文之后,每个业务节点还可以根据上行数据报文携带的业务节点信息判断本业务节点是否是第一引流点确定的业务链中最后一个对上行数据报文进行业务处理的业务节点,只要本业务节点不是业务链中最后一个对上行数据报文进行业务处理的业务节点,本业务节点都需要根据业务节点信息继续向本业务节点的下一跳业务节点继续发送上行数据报文。每个中间业务节点从上行数据报文中解析出业务节点信息之后,中间业务节点也需要根据业务节点信息判断本业务节点是否是业务链中上行方向上的最后一个业务节点,本发明实施例中只有第二业务节点通过对业务节点信息的判断确定本业务节点是业务链中最后一个对上行数据报文进行业务处理的业务节点,则对于第二业务节点而言,在业务链中就不存在第二业务节点的下一跳业务节点。
基于前述对第一引流点和第一业务节点执行的数据报文处理方法,通过以上实施例对本发明的描述可知,第一业务节点将第一上行数据报文按照业务链对应的业务节点信息向下一跳业务节点发送第一上行数据报文,并使第一上行数据报文到达业务链中上行方向上的最后一个业务节点(即第二业务节点),最后一个业务节点对所述第一上行数据报文进行业务处理,得到第二上行数据报文,然后将业务节点信息从第二上行数据报文中删除掉,将删除掉业务节点信息得到的第三上行数据报文发送给第二引流点;第二引流点作为所述业务链的上行出口引流点,接收到第三上行数据报文之后将第三上行数据报文发送给目的设备。
通过以上对中间业务节点的描述可知,中间业务节点对接收到的上行数据报文进行业务处理,然后中间业务节点按照业务链对应的业务节点信息向中间业务节点的下一跳业务节点发送上行数据报文。由于在数据报文的处理系统中对上行数据报文进行业务处理时采用了第一引流点、第二引流点分别作为上行数据报文的上行入口引流点和上行出口引流点,即数据报文中心系统中对引流点进行分布式设计,通过两个引流点对上行数据报文进行入口引流和出口引流,使上行数据报文在第一引流点和第二引流点中只需要经过一次,能够提高数据报文的处理效率。
在本发明的另一些应用场景中,若业务链中在第一业务节点和第二业务节点之间不存在中间业务节点,即第一业务处理节点对上行数据报文处理之后直接发送给第二业务节点,在这种实现场景下,从第二业务节点的角度对本发明实施例提供的数据报文的处理方法进行说明。
请参阅图5所示,本发明一个实施例提供的数据报文的处理方法,可以包括:
501、第二业务节点接收第一业务节点发送的第一上行数据报文。
其中,第一上行数据报文携带第一引流点确定的业务链对应的业务节点信息,第一业务节点是业务链中与第二业务节点相邻的上一跳业务节点,第一引流点为所述业务链的上行入口引流点。
在本发明实施例中,对于数据报文的上行方向而言,第二业务节点是业务链中与第二业务节点相邻的上一跳业务节点,第一业务节点根据本业务节点的业务模式对上行数据报文进行业务处理之后将第一上行数据报文发送给第二业务节点,第二业务节点接收第一业务节点发送的第一上行数据报文,由于第一引流点在第一上行数据报文中封装了业务节点信息,第二业务节点通过对第一上行数据报文的解析,可以从中获取到业务节点信息。
具体的,业务节点信息具体可以指的是业务节点的IP地址,在本发明实施例中,业务节点信息还可以指的是业务节点的特定标识,例如,业务节点信息可以是业务节点的设备索引。
502、第二业务节点对第一上行数据报文进行业务处理,得到第二上行数据报文。
在本发明实施例中,第二业务节点接收到第一业务节点发送的第一上行数据报文之后,第二业务节点就可以对第一上行数据报文进行业务处理了。
在本发明实施例中,第二业务节点接收到第一上行数据报文之后,第二业务节点对第一上行数据报文进行业务处理,具体业务处理的方式可参阅前述实施例中的描述,在本发明实施例提供的数据报文的处理系统中,业务链中包括的每个业务节点都需要对数据报文进行业务处理,但是不同的业务节点对数据报文所做的业务处理的内容是不同的。
503、当第二业务节点根据业务节点信息确定第二业务节点为业务链中上行方向上的最后一个业务节点时,第二业务节点将业务节点信息从第二上行数据报文中删除,得到第三上行数据报文。
在本发明实施例中,数据报文的处理系统中的每个业务节点在从上一跳的业务节点接收到上行数据报文之后,每个业务节点还可以根据上行数据报文携带的业务节点信息判断本业务节点是否是第一引流点确定的业务链中最后一个对上行数据报文进行业务处理的业务节点,只要本业务节点不是业务链中最后一个对上行数据报文进行业务处理的业务节点,本业务节点都需要根据业务节点信息继续向本业务节点的下一跳业务节点继续发送上行数据报文。同样的,第二业务节点从上行数据报文中解析出业务节点信息之后,第二业务节点也需要根据业务节点信息判断本业务节点是否是业务链中上行方向上的最后一个业务节点,本发明实施例中第二业务节点通过对业务节点信息的判断确定本业务节点是业务链中最后一个对上行数据报文进行业务处理的业务节点,则对于第二业务节点而言,在业务链中就不存在第二业务节点的下一跳业务节点。
在本发明实施例中,第二业务节点确定本业务节点是业务链中上行方向上的最后一个业务节点,则对于第二业务节点而言,在业务链中就不存在需要对第二上行数据报文继续进行业务处理的下一跳业务节点,故第二业务节点在第二对上行数据报文进行业务处理后可以将业务节点信息从第二上行数据报文中删除,得到第三上行数据报文。
504、第二业务节点将第三上行数据报文发送给第二引流点。
其中,第二引流点为对业务链的上行出口引流点。
在本发明实施例中,第二业务节点作为业务链中上行方向上的最后一个业务节点,当第二业务节点对第二上行数据报文删除业务节点信息后得到第三上行数据报文,第三上行数据报文从业务链中流出,由第二业务节点将第三上行数据报文发送到上行出口引流点,本发明实施例中将对第三上行数据报文进行引流的上行出口引流点定义为“第二引流点”。
在本发明的一些实施例中,步骤504第二业务节点将第三上行数据报文发送给第二引流点之前,本发明实施例提供的数据报文的处理方法还可以包括如下步骤:
第二业务节点根据双向流表查询第三上行数据报文的上行出口引流点;
在这种应用场景下,第二业务节点查询双向流表,得到的结果可以包括两种情况:第一种是通过双向流表可以查询到第三上行数据报文的上行出口引流点,第二种是通过双向流表没有查询到第三上行数据报文的上行出口引流点。则对于第一种情况,若没有查询到出上行出口引流点,则步骤504第二业务节点将所述第三上行数据报文发送给第二引流点,具体为:第二业务节点按照转发路由将所述第三上行数据报文发送至所述第二引流点。对于第二种,若查询到上行出口引流点为第二引流点,则步骤504第二业务节点将所述第三上行数据报文发送给第二引流点,具体为:第二业务节点按照所述双向流表将所述第三上行数据报文发送至所述第二引流点。
也就是说,在本发明的一些实施例中,第二业务节点作为业务链中上行方向上的最后一个业务节点,第二业务节点可以建立双向流表,以记录数据报文转发的目的地址,第二业务节点将第三上行数据报文从业务链中发送出去之前,第二业务节点可以查询该双向流表,若通过双向流表查询到了上行出口引流点,则第二业务节点可以按照双向流表转发第三上行数据报文到上行出口引流点(即本发明实施例定义的第二引流点),若通过双向流表没有查询到上行出口引流点,则第二业务节点根据转发路由将第三上行数据报文发送到部署在目的设备前端的引流点(也就是本发明实施例中与目的设备连接的第二引流点)。对于经过第一引流点确定的业务链第一次发送的第三上行数据报文,第二业务节点中并没有在双向流表中记录下出口引流点的引流点信息,但是在与第一次发送的第三上行数据报文相对应的第一下行数据报文到达第二业务节点时,第二业务节点可以记录下第三上行数据报文的出口引流点信息,则对于以后的上行数据报文在查询双向流表时,就可以查询到上行数据报文的出口引流点,从而可按照双向流表来转发上行数据报文到上行出口引流点。
需要说明的是,在本发明实施例中,双向流表具体可以包括上行流表和下行流表,分别用于在业务链的上行方向上和下行方向上的数据报文流向的信息,其中,流表中具体可以包括五元组信息,例如,流表中记录有数据报文携带的源IP地址,源端口,目的IP地址,目的端口和传输层协议号,对于业务链的上行方向,第二业务节点将第三上行数据报文携带的源IP地址、源端口、目的IP地址保存到下行流表中,以使第二业务节点在处理业务链的下行数据报文时使用该下行流表进行转发控制。另外,前述的引流点信息可以指的是引流点的IP地址,例如,第二引流点的引流点信息具体为第二引流点的IP地址,除此之外,引流点信息还可以指的是引流点的特定标识,例如,引流点信息可以是引流点的设备索引。
需要说明的是,在本发明的一些实施例中,第二业务节点中建立双向流表以供查询第三上行数据报文的上行出口引流点只是第二业务节点发送第三上行数据报文的一种实现方式,在本发明的另一些实施例中,步骤504第二业务节点将第三上行数据报文发送给第二引流点之前,本发明实施例提供的数据报文的处理方法还可以包括如下步骤:
第二业务节点将第二业务节点的业务节点信息封装到第三上行数据报文中。
在这种实现场景下,步骤504具体为:第二业务节点将封装了第二业务节点的业务节点信息的所述第三上行数据报文发送给所述第二引流点。
也就是说,第二业务节点为了使与第三上行数据报文相对应的第一下行数据报文能够从第一下行数据报文的入口引流点发送至第二业务节点,第二业务节点可以将第二业务节点的业务节点信息封装到第三上行数据报文中,当第一下行数据报文的入口引流点接收到第三上行数据报文之后,第一下行数据报文的入口引流点就可以记录下该第二业务节点的业务节点信息,保存到第一下行数据报文的入口引流点建立的双向流表中,从而第一下行数据报文的入口引流点就可以按照第二业务节点的业务节点信息将第一下行数据报文发送至第二业务节点,可以实现双向数据流的自动关联处理,简化配置,提高数据报文的处理系统的处理性能。具体的,第二业务节点的业务节点信息具体可以指的是第二业务节点的IP地址,在本发明实施例中,第二业务节点的业务节点信息还可以指的是第二业务节点的特定标识,例如,第二业务节点的业务节点信息可以是第二业务节点的设备索引。
前述实施例中说明了第二业务节点对第三上行数据报文进行业务处理的实现流程,接下来对下行数据报文的业务处理过程进行说明。在本发明实施例中,数据报文的处理过程可以为双向数据流的处理,以HTTP为基础的Web业务为例,每次访问过程都存在双向数据流的问题:从Client到Server方向的上行数据流,以及从Server回复Client的下行数据流。对于部分应用场景,比如FTP的主动模式,也可能存在Server先发起向Client的上行数据流,Client回复Server的下行数据流的情况。因为业务节点上对业务处理的需要,通常要求双向数据流在业务链中进行对称处理。
本发明实施例中对于第二业务节点对第一下行数据报文的业务处理方法,请参阅如下实施例的说明。在本发明的一些实施例中,步骤504第二业务节点将第三上行数据报文发送给第二引流点之后,还可以包括如下步骤:
C1、第二业务节点接收第二引流点发送的第一下行数据报文,其中,第二引流点为对第一下行数据报文进行引流的下行入口引流点;
C2、第二业务节点对第一下行数据报文进行业务处理,得到第二下行数据报文;
C3、第二业务节点根据双向流表确定第二下行数据报文为业务链的下行数据报文;
C4、第二业务节点将业务链的业务节点信息封装到第二下行数据报文中,得到第三下行数据报文;
C5、第二业务节点将第三下行数据报文发送给第一业务节点。
其中,第一下行数据报文是由目的设备根据第三上行数据报文返回的数据报文,第一下行数据报文转发过程与前述的第一上行数据报文恰好相反,第一下行数据报文在业务链中按照与第一上行数据报文相反的业务处理流程进行对称处理,当第一下行数据报文由目的设备发送到第二引流点之后,第二引流点作为业务链中对下行数据报文进行业务处理的下行入口引流点,第二引流点可以将第一下行数据报文引流到第二业务节点中,由于本发明实施例中对上行数据报文和下行数据报文进行的是对称处理,在对上行数据报文的处理过程中第二业务节点是业务链中上行方向上的最后一个业务节点,那么在下行数据报文的处理过程中第二业务节点就是业务链中下行方向上的第一个业务节点。
第二业务节点接收到第二引流点发送的第一下行数据报文之后,第二业务节点对接收到的第一下行数据报文进行判断,第二业务节点根据双向流表确定第一下行数据报文是业务链的下行数据报文,即第二业务节点确定从第二引流点接收到的第一下行数据报文是与第一上行数据报文的处理流向相反的下行数据报文,故第一下行数据报文需要执行第一上行数据报文在业务链中相反的业务流向处理,由于第二业务节点是业务链中第一个对下行数据报文进行业务处理的业务节点,为了使第一下行数据报文能够依次进入业务链中的各个业务节点进行业务处理,第二业务节点可以将第一引流点确定的业务链的业务节点信息封装到第一下行数据报文中,其中,业务链的业务节点信息指的是业务链中包括的多个业务节点的业务节点信息,具体的,业务节点信息具体可以指的是业务节点的IP地址,在本发明实施例中,业务节点信息还可以指的是业务节点的特定标识,例如,业务节点信息可以是业务节点的设备索引。在对下行数据报文的处理过程中,第一业务节点作为业务链中与第二业务节点相邻的下一跳业务节点,第二业务节点将第三下行数据报文发送给第一业务节点。
在本发明的一些实施例中,步骤C2第二业务节点根据双向流表确定地儿下行数据报文为所述业务链的下行数据报文之后,所述方法还包括:
第二业务节点将第二引流点的引流点信息保存到双向流表中。
其中,第二业务节点建立的双向流表可包括上行流表和下行流表,第三上行数据报文到达第二业务节点之后,第二业务节点将第三上行数据报文的信息记录在下行流表中,则第二业务节点接收到第一下行数据报文之后就可以通过下行流表判定该第一下行数据报文是与第三上行数据报文处理流向相反的数据报文,第二业务节点接收到第一下行数据报文之后,将发送第一下行数据报文的第二引流点的引流点信息保存到上行流表中,以便于第二业务节点再接收到第三上行数据报文之后可以查询该上行流表。其中,第二业务节点保存的第二引流点的引流点信息可以是第二引流点的IP地址,也可以是第二引流点的特定标识,例如第二引流点的设备索引等。
通过以上实施例对本发明的描述可知,第一业务节点将第一上行数据报文按照业务链对应的业务节点信息向下一跳业务节点发送第一上行数据报文,并使第一上行数据报文到达业务链中上行方向上的最后一个业务节点(即第二业务节点),最后一个业务节点对所述第一上行数据报文进行业务处理,得到第二上行数据报文,然后将业务节点信息从第二上行数据报文中删除掉,将删除掉业务节点信息得到的第三上行数据报文发送给第二引流点;第二引流点作为所述业务链的上行出口引流点,接收到第三上行数据报文之后将第三上行数据报文发送给目的设备。由于在数据报文的处理系统中对上行数据报文进行业务处理时采用了第一引流点、第二引流点分别作为上行数据报文的上行入口引流点和上行出口引流点,即数据报文中心系统中对引流点进行分布式设计,通过两个引流点对上行数据报文进行入口引流和出口引流,使上行数据报文在第一引流点和第二引流点中只需要经过一次,能够提高数据报文的处理效率。
上述实施例从数据报文的处理系统中的第二业务节点的角度对本发明实施例提供的数据报文的处理方法进行了说明,接下来从第二引流点的角度对本发明实施例提供的数据报文的处理方法进行说明,请参阅图6所示,本发明一个实施例提供的数据报文的处理方法,可以包括:
601、第二引流点接收第二业务节点发送的第三上行数据报文。
其中,所述第二业务节点是第一引流点确定的业务链中上行方向上的最后一个业务节点,所述第二引流点为所述业务链的上行出口引流点,所述第三上行数据报文为所述第二业务节点收到第一业务节点发送的第一上行数据报文后,对所述第一上行数据报文进行业务处理得到第二上行数据报文,并从所述第二上行数据报文中删除所述业务链的业务节点信息后得到的;
在本发明实施例中,基于前述实施例对第二业务节点的描述可知,第二业务节点是业务链中上行方向上的最后一个业务节点,第三上行数据报文从第二业务节点中流出之后,第三上行数据报文进入对该第三上行业务报文进行引流的上行出口引流点,通过前述实施例对第一引流点、第一业务节点、第二业务节点对上行数据报文的处理流程可知,上行数据报文只经过了第一引流点一次,而不会反复多次的返回一个引流点再从该引流点发送出去,从而可以极大的提高数据报文的处理系统对数据报文的处理效率。
602、第二引流点将第三上行数据报文发送给目的设备。
其中,第二引流点部署在目的设备的前端。
在本发明实施例中,第二引流点是部署在目前设备前端的引流点,当第二引流点接收到来自业务链的第三上行数据报文之后,第二引流点可以将该第三上行数据报文引流到目的设备中,从而完成数据报文的处理系统对上行数据报文的处理过程。
在本发明的一些实施例中,第二业务节点还可以将第二业务节点的业务节点信息封装到第三上行数据报文中,则步骤601第二引流点接收第二业务节点发送的第三上行数据报文之后,本发明实施例提供的数据报文的处理方法还可以包括如下步骤:
D1、第二引流点从第三上行数据报文中解析出第二业务节点的业务节点信息;
D2、第二引流点将第二业务节点的业务节点信息保存到双向流表中。
也就是说,第二引流点中建立有双向流表,第二引流点从第三上行数据报文中解析出业务链中最后一个业务节点的业务节点信息(即第二业务节点信息)之后,第二引流点对该第二业务节点信息保存,保存到第二引流点建立的双向流表中,以使第二引流点在接收到目的设备发送的第一下行数据报文之后可以将该第一下行数据报文向业务链中第一个对该下行数据报文进行业务处理的业务节点(即第二业务节点)发送,从而可以实现双向数据流的自动关联处理,提高数据报文的处理系统的处理性能。具体的,第二业务节点的业务节点信息具体可以指的是第二业务节点的IP地址,在本发明实施例中,第二业务节点的业务节点信息还可以指的是第二业务节点的特定标识,例如,第二业务节点的第二业务节点信息可以是第二业务节点的设备索引。
需要说明的是,在本发明实施例中,双向流表具体可以包括上行流表和下行流表,分别用于在业务链的上行方向上和下行方向上的数据报文流向的信息,其中,流表中具体可以包括五元组信息,例如,流表中记录有数据报文携带的源IP地址,源端口,目的IP地址,目的端口和传输层协议号,对于业务链的上行方向,第二引流点从第二业务节点接收第三上行数据报文之后,将第三上行数据报文携带的源IP地址、源端口、目的IP地址保存到下行流表中,以使第二引流点在处理业务链的下行数据报文时使用该下行流表进行转发控制。
需要说明的是,在本发明实施例中,对于经过第一引流点确定的业务链第一次发送的上行数据报文,第二业务节点才会在第三上行数据报文中封装上第二业务节点的业务节点信息,但是对于以后的第三上行数据报文由于第二引流点已经在双向流表中记录有了第二业务节点的业务节点信息,故第二业务节点也就无需再次对第三上行数据报文封装第二业务节点的业务节点信息,第二引流点也就无需再次执行步骤D1和步骤D2,也就是说,只有在第二业务节点第一次使用业务链传输第三上行数据报文时,第二引流点才需要执行D1和D2。
需要说明的是,在本发明的一些实施例中,当第二业务节点的业务节点信息具体为第二业务节点的设备索引时,步骤D1第二引流点从第三上行数据报文中解析出第二业务节点的业务节点信息之后,本发明实施例提供的数据报文的处理方法还可以包括如下步骤:
第二引流点根据控制器设置的映射关系表查询第二业务节点的设备索引对应的IP地址;
在这种实现场景下,步骤D2第二引流点将第二业务节点的业务节点信息保存到双向流表中,具体为:
第二引流点将第二业务节点的设备索引对应的IP地址保存到双向流表中。
也就是说,当第二业务节点在第三上行数据报文中封装的业务节点信息不是第二业务节点的IP地址,而是第二业务节点的设备索引值时,第二引流点在解析第三上行数据报文之后,第二引流点需要根据设备索引信息查询控制器配置的映射关系表,获取到第二业务节点对应的IP地址,从而第二引流点可以根据查询到的第二业务节点的IP地址保存在双向流表中。
在本发明的一些实施例中,对于一个业务链可能存在多出口引流点时,可能存在下行数据报文的入口引流点与上行数据报文的出口引流点不同的场景,结合前述的实现场景,当第二引流点从上行数据报文中解析出第二业务节点信息之后,本发明实施例提供的数据报文的处理方法还可以进一步的包括如下步骤:
第二引流点将第二业务节点的业务节点信息发送给第三引流点,其中,第三引流点为业务链中除第二引流点以外的另一个上行出口引流点。
也就是说,业务链存在两个出口引流点,分别为是第二引流点和第三引流点,若第三上行数据报文通过第二引流点从业务链中流出,那么与第三上行数据报文相对应的第一下行数据报文可能通过第三引流点进入业务链,为了使第三引流点能够将第一下行数据报文送入业务链,第二引流点可以将业务链中最后一个业务节点的业务节点信息(即第二业务节点的业务节点信息)发送给第三引流点,从而可以保持引流点之间业务节点信息的同步。
举例说明如下,请参阅如图7所示,为本发明实施例提供的多出口引流点的实现方式示意图,其中,从服务器1到客户端2的上行数据报文,经引流点1流出,但是从客户端2到服务器1的下行数据报文,可能经引流点2流入。在出口引流点1处理上行数据报文的时候,需要将对应的业务节点1的业务节点信息(也可以称之为尾业务节点信息)同步至引流点2。这种场景一般应用在路由多出口的组网中,如图7所示,第一步:上行数据报文从引流点1流出,第二步:引流点1将上行数据报文的尾业务节点信息同步至引流点2,第三步:下行数据报文从引流点2流入,引流点2查询双向流表获取尾业务节点信息。从客户端2访问服务器1的下行数据报文,可以由引流点1进入内网,也可能由引流点2进入内网,当然本发明实施例中也可以认为引流点1和引流点2是同一个逻辑引流点内的不同引流单元,即在同一个逻辑引流点内部,实现不同的引流单元之间的业务节点信息同步,适用于业务链有多出口引流点的应用场景中。
前述实施例中说明了第二引流点对上行数据报文进行业务处理的实现流程,接下来对下行数据报文的业务处理过程进行说明。在本发明实施例中,数据报文的处理过程可以为双向数据流的处理,以HTTP为基础的Web业务为例,每次访问过程都存在双向数据流的问题:从Client到Server方向的上行数据流,以及从Server回复Client的下行数据流。对于部分应用,比如FTP的主动模式,也可能存在Server先发起向Client的上行数据流,Client回复Server的下行数据流的情况。因为业务节点上对业务处理的需要,通常要求双向数据流在业务链中进行对称处理。
本发明实施例中对于第二引流点对下行数据报文的业务处理方法,请参阅如下实施例的说明。在本发明的一些实施例中,步骤602第二引流点将三上行数据报文发送给目的设备之后,本发明实施例提供的数据报文的处理方法还可以进一步的包括如下步骤:
E1、第二引流点接收目的设备根据第三上行数据报文返回的第一下行数据报文,其中,第二引流点为对下行数据报文进行引流的下行入口引流点;
E2、第二引流点将第一下行数据报文发送给第二业务节点,其中,第二业务节点为业务链中下行方向上的第一业务节点。
其中,第一下行数据报文是由目的设备根据第三上行数据报文返回的数据报文,第一下行数据报文转发过程与第一上行数据报文恰好相反,第一下行数据报文在业务链中按照与第一上行数据报文相反的业务处理流程进行对称处理,当目的设备接收到第三上行数据报文之后,目的设备根据该第三上行数据报文生成第一下行数据报文,并将第一下行数据报文发送到该目的设备前端的引流点(即第二引流点),第二业务节点作为业务链中第一个对下行数据报文进行业务处理的业务节点,第二引流点将第一下行数据报文发送到第二业务节点,其中,第二业务节点对第一下行数据报文的处理过程可参阅前述实施例中对第二业务节点的描述,此处不再赘述。
进一步的,步骤E2第二引流点将第一下行数据报文发送给第二业务节点,具体为:
第二引流点按照双向流表将第一下行数据报文发送给第二业务节点。
通过前述说明可知,第二引流点建立有双向流表,当第二引流点在接收到第三上行数据报文之后,从第三上行数据报文中提取出源IP地址、源端口和目的IP地址、目的端口保存到了下行流表中,即在下行流表中记录有源IP地址为第二业务节点,故第二引流点在查询下行流表时,对于上行来说源IP地址为第二业务节点,那么下行来说目的IP地址就是第二业务节点,根据此下行流表记录的信息第二引流点可以将第一下行数据报文发送到第二业务节点,第二业务节点作为业务链中下行方向上的第一个业务节点,可以从第二引流点接收到第一下行数据报文。
在本发明实施例中,第二引流点作为上行出口引流点,第三上行数据报文从第二引流点中只经过一次就到达目的设备,而无需多次反复的返回第二引流点再从第二引流点发送出去,同样的,目的设备发送出去的第一下行数据报文也只经过第二引流点一次就到达第二业务节点,而无需多次反复的返回第二引流点再从第二引流点发送出去,故本发明实施例对数据报文的处理效率相对于现有技术提高很多。
通过以上实施例对本发明的描述可知,第一业务节点将删除掉业务节点信息得到的第三上行数据报文发送给第二引流点;第二引流点作为所述业务链的上行出口引流点,接收到第三上行数据报文之后将第三上行数据报文发送给目的设备。由于在数据报文的处理系统中对上行数据报文进行业务处理时采用了第一引流点、第二引流点分别作为上行数据报文的上行入口引流点和上行出口引流点,即数据报文中心系统中对引流点进行分布式设计,通过两个引流点对上行数据报文进行入口引流和出口引流,使上行数据报文在第一引流点和第二引流点中只需要经过一次,能够提高数据报文的处理效率。
为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。
本发明实施例提供的数据报文的处理方法应用在Service Chaining技术分布式引流点的场景下,只需要在入口引流点配置引流策略,实现双向数据流的自动关联处理,简化配置,提高数据报文的处理系统对数据报文的处理性能。
请参阅如图8所示,为本发明实施例提供的双向数据流经过分布式引流点的处理示意图,由成对的引流点实现业务链中双向流量的处理,由控制器配置引流点和业务节点,由引流点和业务节点实现流量转发控制。接下来对本发明实施例中数据报文的处理原理进行示意说明,其中,控制器、引流点1、引流点2、引流点3、引流点4、业务节点1、业务节点2、业务节点3都在一互通的基础网络中,客户端1到服务器2的上行数据报文由引流点1引流到业务链处理,业务链处理完毕之后转发到引流点3,引流点3再转发至服务器2。对应的下行数据报文,由引流点3引流到业务链处理,业务链处理完毕之后转发到引流点1,引流点1再转发至客户端1。
接下来分别对上行数据报文的处理方法和下行数据报文的处理方法进行举例说明,请参阅如图9-a和图9-b所示,分别为上行数据报文的处理过程示意图和下行数据报文的处理过程示意图。
首先描述上行数据报文的处理过程,请参阅如图9-a所示:
第一步:上行数据报文到达入口引流点。
第二步:引流点1根据配置的引流策略,确定业务链的全部业务节点,送至相应的业务链处理。
在本发明实施例中,为了能够使用隧道技术,本发明实施例提供的方法还可以包括如下步骤:
引流点1将隧道头部封装到上行数据报文中;
也就是说,在本发明实施例中,引流点1和业务节点1之间通过隧道技术来发送上行数据报文,在使用隧道技术之前,引流点1先在上行数据报文中封装隧道头部,隧道头部中携带有隧道协议的信息,被封装的正向数据报文在隧道的两个端点(即引流点1和业务节点1)之间通过基础路由网络进行转发。具体的,可以使用通用路由封装(英文:GenericRouting Encapsulation,缩写:GRE)隧道来实现,也可以使用其他的隧道技术来实现,比如网络虚拟通用路由封装(英文:Network Virtual GRE,缩写:NVGRE)、虚拟可扩展局域网(英文:Virtual eXtensible Local Area Network,缩写:VXLAN)等来实现。
在引流点上,对进入某业务链处理的上行数据报文,需要明确业务链包含的业务节点。引流点与业务节点之间、业务节点与业务节点之间都可以通过隧道技术(比如GRE隧道)实现报文的点到点直接发送。入口引流点修改上行数据报文的报文头部,增加特定字段,将需要经过的业务节点的路由信息包含在上行数据报文中,则每一个业务节点都可以通过解析上行数据报文的特定字段,获取下一跳的业务节点的业务节点信息。
第三步:业务链的最后一个业务节点,将本业务节点信息增加在上行数据报文头部,发送上行数据报文。
通常情况下,对于入口引流点的上行数据报文,在业务链的入口引流点要明确其出口引流点通常是很困难的。例如图9-a中,首先引流点1需要存储引流点3和引流点4对应关联的服务器列表;其次,数据报文的处理系统中可能需要进行虚拟机切换的操作,比如引流点3下服务器2上的业务,需要切换到引流点4下的服务器3上处理,那么引流点1还需要实时刷新其他引流点和对应服务器的关联列表。本发明实施例可以在入口引流点只配置业务链中的业务节点,而不配置出口引流点。由入口引流点修改上行数据报文,封装业务节点信息,通过隧道将报文发送到下一跳的业务节点。业务节点解析上行数据报文,获取下一跳的业务节点信息,通过隧道将上行数据报文发送到下一跳的业务节点。
业务链中的最后一个业务节点(即业务节点2),将自身的业务节点信息,比如自身IP地址或者自身的设备索引,增加到上行数据报文的报文头部,直接将上行数据报文发送出去。最后一个业务节点在转发上行数据报文首包的时候,并不知道出口引流点的引流点信息。上行数据报文通过正常的路由转发,到达出口引流点。
第四步:上行数据报文到达业务联的出口引流点,出口引流点创建双向流表,双向流表中记录最后一个业务节点的业务节点信息。
出口引流点收到业务链最后一个业务节点发送过来的上行数据报文,建立双向流表。通过解析上行数据报文,获取业务链最后一个业务节点的业务节点信息,存放在双向流表中。这里如果解析上行数据报文获取的是设备索引,可通过控制器配置的映射关系表,获取设备索引值对应的IP地址。
通过以上实施例对本发明的描述可知,客户端1发送上行数据报文到引流点1,引流点1根据控制器配置的引流策略确定上行数据报文对应的业务链,然后引流点1将上述业务链的业务节点信息封装到上行数据报文中,然后引流点1将封装有业务节点信息的上行数据报文发送给业务链中的业务节点1;业务节点1对接收到的上行数据报文进行业务处理,根据业务节点信息业务节点1将业务处理后的上行数据报文发送到业务节点2,业务节点2接收到业务节点1发送的上行数据报文之后,根据业务节点信息确定业务节点2为业务链中最后一个对上行数据报文进行业务处理的业务节点,然后业务节点2对上行数据报文进行业务处理,接下来业务节点2将业务节点信息从业务处理后的上行数据报文中删除掉,业务节点2将删除掉业务节点信息的上行数据报文发送给引流点3;引流点3作为对上行数据报文进行引流的上行出口引流点,接收到上行数据报文之后将该数据报文发送给服务器2。由于在数据报文的处理系统中对上行数据报文进行业务处理时采用了引流点1、引流点3分别作为上行数据报文的上行入口引流点和上行出口引流点,即数据报文中心系统中对引流点进行分布式设计,通过两个引流点对上行数据报文进行入口引流和出口引流,上行数据报文在引流点1和引流点3中只需要经过一次,数据报文的处理效率可以得到有效提高。
接下来描述下行数据报文的处理过程,请参阅如图9-b所示:
第一步:下行数据报文到达关联的入口引流点。
第二步:入口引流点查询双向流表,从双向流表中记录的业务节点信息,获取上行数据报文的最后一个业务节点(即下行数据报文的第一个业务节点)的业务节点信息,发送下行数据报文。
下行报文到达上行数据报文的出口引流点,即下行数据报文的入口引流点,命中双向流表,按照双向流表中的业务节点2的业务节点信息作为转发的目的地址,通过隧道发送,就实现了正方双向流的自动关联处理。
第三步:业务链处理下行数据报文,业务节点之间通过隧道发送下行数据报文。
第四步:下行数据报文的出口引流点,解析下行数据报文,发送下行数据报文出去。
通过以上实施例对本发明的描述可知,客户端1发送上行数据报文到引流点1,引流点1根据控制器配置的引流策略确定上行数据报文对应的业务链,然后引流点1将上述业务链的业务节点信息封装到上行数据报文中,然后引流点1将封装有业务节点信息的上行数据报文发送给业务链中的业务节点1;业务节点1对接收到的上行数据报文进行业务处理,根据业务节点信息业务节点1将业务处理后的上行数据报文发送到业务节点2,业务节点2接收到业务节点1发送的上行数据报文之后,根据业务节点信息确定业务节点2为业务链中最后一个对上行数据报文进行业务处理的业务节点,然后业务节点2对上行数据报文进行业务处理,接下来业务节点2将业务节点信息从业务处理后的上行数据报文中删除掉,业务节点2将删除掉业务节点信息的上行数据报文发送给引流点3;引流点3作为对上行数据报文进行引流的上行出口引流点,接收到上行数据报文之后将该数据报文发送给服务器2。由于在数据报文的处理系统中对上行数据报文进行业务处理时采用了引流点1、引流点3分别作为上行数据报文的上行入口引流点和上行出口引流点,即数据报文中心系统中对引流点进行分布式设计,通过两个引流点对上行数据报文进行入口引流和出口引流,上行数据报文在引流点1和引流点3中只需要经过一次,数据报文的处理效率可以得到有效提高。
接下来以另一个应用场景对本发明实施例提供的数据报文的处理方法进行说明,请参阅如图10所示,为本发明实施例提供的对双向数据报文进行处理的引流点和业务节点之间的交互过程示意图。
数据报文的处理系统中包括:控制器、引流点1、引流点2、引流点3、引流点4、业务节点1、业务节点2、业务节点3,服务器1和服务器2的前端部署的是引流点3,服务器3和服务器4的前端部署的是引流点4,其中,所有的引流点、所有的业务节点都由控制器进行配置,控制器、所有的引流点、所有的业务节点都处在一个互通的基础网络中,以业务链1的实现为例进行说明,在客户端1发起到服务器2的访问过程中,客户端1作为源设备,向数据报文匹配出的业务链为业务链1,引流点1作为上行入口引流点,业务节点1和业务节点2需要依次对上行数据报文进行业务处理,引流点3作为上行出口引流点,服务器2就是目的设备,业务节点1和业务节点2的业务节点信息对应于业务链1,对于服务器2发送出去的下行数据报文,引流点3作为下行入口引流点,业务节点2和业务节点1需要依次对下行数据报文进行业务处理,引流点2作为下行出口引流点。
接下来对双向数据报文进行处理的引流点和业务节点之间的交互过程进行详细说明:
本发明实施例包括上行流处理和下行流处理两大部分,详细描述如下:
首先对客户端1发送出去的上行数据报文1进行说明,主要包括如下步骤:
S11、引流点1接收上行数据报文1。
上行数据报文1作为首包到达入口网关处,入口网关可作为入口引流点。客户端1访问服务器2的上行数据报文,到达引流点1处。
S12、引流点1查询引流策略,获取上行数据报文1对应的业务链,为上行数据报文1封装所述业务链的业务节点信息,通过隧道,将封装了业务节点信息的上行数据报文1发送至业务节点1。
引流点1根据控制器的配置,实现如下功能:将匹配引流策略的上行数据报文1送至关联该引流策略的业务链。如果引流策略是从客户端1到服务器2的上行数据报文,需要依次经过业务节点1和业务节点2的业务处理。引流点1修改相应的上行数据报文,封装业务节点1和业务节点2的业务节点信息到报文头部,并将封装了业务节点1和业务节点2的业务节点信息的上行数据报文通过隧道发送至业务节点1。请参阅如下表1所示,为引流点1在上行数据报文的报文头部中封装业务节点信息的实现方式,其中,在上行数据报文的报文头部分别封装业务节点1和业务节点2的业务节点信息,并分别对封装的数据长度、类型进行定义。
S13、业务节点1解析上行数据报文1,获取下一跳的业务节点信息,本地业务处理,通过隧道,发送至业务节点2。
业务链的中间业务节点,解析上行数据报文之后,获取原始报文,并作相应的业务处理,由解析上行数据报文获取的业务节点信息,通过隧道将上行数据报文发送至下一跳的业务节点。业务链中的业务节点,根据上行数据报文的业务节点信息头部中的数据,可以判断本业务节点对于该流上行数据报文,是否是业务链上行方向上的最后一个业务节点,即尾业务节点。
S14、业务节点2作为业务链的尾业务节点,建立双向流表,增加尾业务节点信息,发送上行数据报文1。
业务链的最后一个业务节点,作为隧道的终结点,首先删除上行数据报文外层隧道信息,其次需删除入口引流点增加的业务节点信息。业务链的最后一个业务节点需要建立双向流表,记录业务链的路由信息。对于上行数据报文的首包,业务链尾业务节点并不明确其出口引流点的IP信息,无法通过隧道直接发送至出口引流点。业务链尾业务节点修改上行数据报文,增加本地信息头部,不通过隧道,将报文正常发送出去。增加本地信息头部的目的是通知出口引流点本条上行数据报文的尾业务节点信息。对于上行数据报文的后续包,如果不能从双向流表中查询到出口引流点的地址信息,处理流程同首包流程;如果可以从双向流表中查询到出口引流点的地址信息,则不需要增加尾业务节点信息头部,直接通过隧道发送到出口引流点。尾业务节点在处理上行数据报文首包的时候创建,双向流表中记录的出口引流点的地址信息,双向流表创建的时候初始化为零,其合法值由下行数据报文的处理流程中,从出口引流点回来的下行数据报文获取。请参阅如下表2所示,为业务节点2在上行数据报文的报文头部中封装业务节点信息的实现方式,其中,在上行数据报文的报文头部分别封装业务链中最后一个业务节点的业务节点信息,并分别对封装的数据长度、类型进行定义。
S15、引流点2识别是尾业务节点发送过来的上行数据报文,建立双向流表,记录尾节点业务节点信息,发送上行数据报文到目的设备。
出口引流点根据上行数据报文的头部信息,可识别收到的是业务链尾业务节点发送过来的上行数据报文。对于此类报文,出口引流点建立双向流表,并在下行流表中记录尾业务节点的信息,实现双向流的自动关联。删除上行数据报文的尾业务节点信息头部,正常发送上行数据报文到对应的目的设备。
前述举例说明了对上行数据报文1的处理过程,同样的,本发明实施例中对于上行数据报文N(N是一个大于1的自然数)的处理过程,主要可以还包括如下步骤:
SN1、引流点1接收上行数据报文N。
SN2、引流点1查询双向流表的记录,获取所述数据报文对应的业务链,封装业务节点信息,通过隧道,发送至业务节点1。
SN3、业务节点1解析上行数据报文N,获取下一跳的业务节点信息,本地业务处理,通过隧道,发送至业务节点2。
SN4、业务节点2作为业务链的尾业务节点,查询双向流表,若没有出口引流点信息,增加尾业务节点信息,发送上行数据报文N。
SN5、引流点2识别是尾业务节点发送过来的上行数据报文,查询双向流表,发送上行数据报文到目的设备。
接下来对服务器2发送出去的下行数据报文M(M为一个非0自然数)进行说明,主要包括如下步骤:
SM1、引流点2接收下行数据报文M。
SM2、引流点2查询到双向流表,识别是下行数据报文,获取双向流表中记录的尾业务节点信息,通过隧道,发送至业务节点2。
下行数据报文由目的设备发送到达引流点2,引流点2根据下行数据报文查询双向流表。根据流表信息,可识别出是上行数据报文M相对应的下行数据报文。根据双向流表中记录的尾业务节点信息,引流点2将下行数据报文M通过隧道发送至尾业务节点(即业务节点2)。
SM3、业务节点2作为业务链的上行数据报文的尾业务节点,刷新双向流表中记录的出口引流点信息。
下行数据报文M到达首业务节点(即上行数据报文的尾业务节点),业务节点2查询双向流表,识别其是下行数据报文。首先刷新本地双向流表的信息,在上行流表中,记录下行数据报文的入口引流点(即上行数据报文的出口引流点)的信息,后续上行数据报文命中该上行流表,可直接获取出口引流点信息;其次,在下行数据报文中增加业务节点信息,通过隧道发送至下一跳业务节点,进行业务链的处理流程。
SM4、业务链处理下行数据报文。
业务链的中间业务节点,查询双向流表,可识别其是下行数据报文。在做完业务处理之后,由解析数据报文获取业务节点信息,通过隧道将下行数据报文发送至下一跳的业务节点。
SM5、引流点1发送下行数据报文M。
下行数据报文的尾业务节点,可通过查询本地双向流表,获取下一跳的出口隧道,将下行数据报文发送至出口引流点。出口引流点解析隧道,删除隧道头部,同时删除业务节点信息头部,将下行数据报文正常转发到源设备。
通过以上实施例对本发明的举例说明可知,业务链的尾业务节点在数据报文的头部增加标识,携带尾业务节点信息,正常发送至出口引流点。出口引流点建立双向流表,识别并在双向流表中记录数据报文中的尾业务节点信息,实现双向数据流的自动关联。在数据报文的处理系统中可以实现双向数据流的自动关联处理,降低配置的难度,提高系统的处理性能。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。
请参阅图11-a所示,本发明实施例提供的一种业务节点1100,业务节点具体为第二业务节点,所述第二业务节点,包括:接收模块1101、业务处理模块1102、解封装模块1103、发送模块1104,其中,
接收模块1101,用于接收第一业务节点发送的第一上行数据报文,所述第一上行数据报文携带第一引流点确定的业务链对应的业务节点信息,所述第一业务节点是所述业务链中与所述第二业务节点相邻的上一跳业务节点,所述第一引流点为所述业务链的上行入口引流点;
业务处理模块1102,用于对所述第一上行数据报文进行业务处理,得到第二上行数据报文;
解封装模块1103,用于当所述第二业务节点根据所述业务节点信息确定所述第二业务节点为所述业务链中上行方向上的最后一个业务节点时,将所述业务节点信息从所述第二上行数据报文中删除,得到第三上行数据报文;
发送模块1104,用于将所述第三上行数据报文发送给第二引流点,所述第二引流点为对所述所述业务链的上行出口引流点。
请参阅如图11-b所示,在本发明的一些实施例中,相对于如图11-a所示的业务节点,所述第二业务节点1100,还包括:查询模块1105,其中,
所述查询模块1105,用于所述发送模块将所述第三上行数据报文发送给第二引流点之前,根据双向流表查询所述第三上行数据报文的上行出口引流点;
若没有查询到出上行出口引流点,所述发送模块1104,具体用于按照转发路由将所述第三上行数据报文发送至所述第二引流点;
若查询到上行出口引流点为第二引流点,所述发送模块1104,具体用于按照所述双向流表将所述第三上行数据报文发送至所述第二引流点。
请参阅如图11-c所示,在本发明的一些实施例中,相对于如图11-a所示的业务节点,所述第二业务节点1100,还包括:第一封装模块1106,其中,
所述第一封装模块1106,用于所述发送模块1104将所述第三上行数据报文发送给第二引流点之前,将所述第二业务节点的业务节点信息封装到所述第三上行数据报文中;
所述发送模块1104,具体用于将封装了所述第二业务节点的业务节点信息的所述第三上行数据报文发送给所述第二引流点。
请参阅如图11-d所示,在本发明的一些实施例中,相对于如图11-a所示的业务节点,所述第二业务节点1100,还包括:第二封装模块1107,其中,
所述接收模块1101,还用于所述发送模块将所述第三上行数据报文发送给第二引流点之后,接收所述第二引流点发送的第一下行数据报文;
所述业务处理模块1102,还用于对所述第一下行数据报文进行业务处理,得到第二下行数据报文;
所述第二封装模块1107,用于将所述业务链的业务节点信息封装到所述第二下行数据报文中,得到第三下行数据报文;
所述发送模块1104,还用于将所述第三下行数据报文发送给所述第一业务节点。
请参阅如图11-e所示,在本发明的一些实施例中,相对于如图11-d所示的业务节点,所述第二业务节点1100,还包括:保存模块1108,用于所述发送模块根据双向流表确定所述第二下行数据报文为所述业务链的下行数据报文之后,将所述第二引流点的引流点信息保存到所述双向流表中。
通过以上实施例对本发明的描述可知,第一业务节点将第一上行数据报文按照业务链对应的业务节点信息向下一跳业务节点发送第一上行数据报文,并使第一上行数据报文到达业务链中上行方向上的最后一个业务节点(即第二业务节点),最后一个业务节点对所述第一上行数据报文进行业务处理,得到第二上行数据报文,然后将业务节点信息从第二上行数据报文中删除掉,将删除掉业务节点信息得到的第三上行数据报文发送给第二引流点;第二引流点作为所述业务链的上行出口引流点,接收到第三上行数据报文之后将第三上行数据报文发送给目的设备。由于在数据报文的处理系统中对上行数据报文进行业务处理时采用了第一引流点、第二引流点分别作为上行数据报文的上行入口引流点和上行出口引流点,即数据报文中心系统中对引流点进行分布式设计,通过两个引流点对上行数据报文进行入口引流和出口引流,使上行数据报文在第一引流点和第二引流点中只需要经过一次,能够提高数据报文的处理效率。
请参阅图12-a所示,本发明实施例提供的一种引流点1200,引流点具体为第二引流点,所述第二引流点,包括:接收模块1201、发送模块1202,其中,
接收模块1201,用于接收第二业务节点发送的第三上行数据报文,所述第二业务节点是第一引流点确定的业务链中上行方向上的最后一个业务节点,所述第二引流点为对所述所述业务链的上行出口引流点,所述第三上行数据报文为所述第二业务节点收到第一业务节点发送的第一上行数据报文后,对所述第一上行数据报文进行业务处理得到第二上行数据报文,并从所述第二上行数据报文中删除所述业务链的业务节点信息后得到的;
发送模块1202,用于将所述第三上行数据报文发送给目的设备,所述第二引流点部署在所述目的设备的前端。
请参阅如图12-b所示,在本发明的一些实施例中,相对于如图12-a所示的引流点,所述第二引流点1200,还包括:解析模块1203和保存模块1204,其中,
所述解析模块1203,用于所述接收模块接收第二业务节点发送的第三上行数据报文之后,从所述第三上行数据报文中解析出所述第二业务节点的业务节点信息;
所述保存模块1204,用于将所述第二业务节点的业务节点信息保存到双向流表中。
请参阅如图12-c所示,在本发明的一些实施例中,相对于如图12-b所示的引流点,当所述第二业务节点的业务节点信息具体为第二业务节点的设备索引时,所述第二引流点1200,还包括:查询模块1205,其中,
所述查询模块1205,用于所述解析模块从所述第三上行数据报文中解析出第二业务节点的业务节点信息之后,根据控制器设置的映射关系表查询所述第二业务节点的设备索引对应的互联网协议IP地址;
所述保存模块1204,具体用于将所述第二业务节点的设备索引对应的IP地址保存到双向流表中。
在本发明的一些实施例中,所述发送模块1202,还用于所述解析模块从所述第三上行数据报文中解析出第二业务节点的业务节点信息之后,将所述第二业务节点的业务节点信息发送给第三引流点,所述第三引流点为对所述业务链中除所述第二引流点以外的另一个上行出口引流点。
在本发明的一些实施例中,所述接收模块1201,还用于所述发送模块将所述第三上行数据报文发送给目的设备之后,接收所述目的设备根据所述第三上行数据报文返回的第一下行数据报文;
所述发送模块1202,还用于将所述第一下行数据报文发送给所述第二业务节点。
进一步的,所述发送模块1202,具体用于按照双向流表将所述第一下行数据报文发送给所述第二业务节点。
通过以上实施例对本发明的描述可知,第一业务节点将第一上行数据报文按照业务链对应的业务节点信息向下一跳业务节点发送第一上行数据报文,并使第一上行数据报文到达业务链中上行方向上的最后一个业务节点(即第二业务节点),最后一个业务节点对所述第一上行数据报文进行业务处理,得到第二上行数据报文,然后将业务节点信息从第二上行数据报文中删除掉,将删除掉业务节点信息得到的第三上行数据报文发送给第二引流点;第二引流点作为所述业务链的上行出口引流点,接收到第三上行数据报文之后将第三上行数据报文发送给目的设备。由于在数据报文的处理系统中对上行数据报文进行业务处理时采用了第一引流点、第二引流点分别作为上行数据报文的上行入口引流点和上行出口引流点,即数据报文中心系统中对引流点进行分布式设计,通过两个引流点对上行数据报文进行入口引流和出口引流,使上行数据报文在第一引流点和第二引流点中只需要经过一次,能够提高数据报文的处理效率。
本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质存储有程序,该程序执行包括上述方法实施例中记载的部分或全部步骤。
接下来介绍本发明实施例提供的另一种业务节点,该业务节点具体为第二业务节点,,请参阅图13所示,第二业务节点1300包括:
输入装置1301、输出装置1302、处理器1303和存储器1304(其中第二业务节点1300中的处理器1303的数量可以一个或多个,图13中以一个处理器为例)。在本发明的一些实施例中,输入装置1301、输出装置1302、处理器1303和存储器1304可通过总线或其它方式连接,其中,图13中以通过总线连接为例。
其中,处理器1303,用于执行如下步骤:
接收第一业务节点发送的第一上行数据报文,所述第一上行数据报文携带第一引流点确定的业务链对应的业务节点信息,所述第一业务节点是所述业务链中与所述第二业务节点相邻的上一跳业务节点,所述第一引流点为所述业务链的上行入口引流点;
对所述第一上行数据报文进行业务处理,得到第二上行数据报文;
当所述第二业务节点根据所述业务节点信息确定所述第二业务节点为所述业务链中上行方向上的最后一个业务节点时,将所述业务节点信息从所述第二上行数据报文中删除,得到第三上行数据报文;
将所述第三上行数据报文发送给第二引流点,所述第二引流点为所述业务链的上行出口引流点。
在本发明的一些实施例中,处理器1303,还用于执行如下步骤:
将所述第三上行数据报文发送给第二引流点之前,根据双向流表查询所述第三上行数据报文的上行出口引流点;
若没有查询到上行出口引流点,处理器1303,具体用于执行如下步骤:按照转发路由将所述第三上行数据报文发送至所述第二引流点;
若查询到上行出口引流点为所述第二引流点,处理器1303,具体用于执行如下步骤:按照所述双向流表将所述第三上行数据报文发送至所述第二引流点。
在本发明的一些实施例中,处理器1303,还用于执行如下步骤:
将所述第三上行数据报文发送给第二引流点之前,将所述第二业务节点的业务节点信息封装到所述第三上行数据报文中;
处理器1303,具体用于执行如下步骤:
将封装了所述第二业务节点的业务节点信息的所述第三上行数据报文发送给所述第二引流点。
在本发明的一些实施例中,处理器1303,还用于执行如下步骤:
将所述第三上行数据报文发送给第二引流点之后,接收所述第二引流点发送的第一下行数据报文;
对所述第一下行数据报文进行业务处理,得到第二下行数据报文;
根据双向流表确定所述第二下行数据报文为所述业务链的下行数据报文;
将所述业务链的业务节点信息封装到所述第二下行数据报文中,得到第三下行数据报文;
将所述第三下行数据报文发送给所述第一业务节点。
在这种情况下,处理器1303,还用于执行如下步骤:
根据双向流表确定所述第二下行数据报文为所述业务链的下行数据报文之后,将所述第二引流点的引流点信息保存到所述双向流表中。
通过以上实施例对本发明的描述可知,第一业务节点将第一上行数据报文按照业务链对应的业务节点信息向下一跳业务节点发送第一上行数据报文,并使第一上行数据报文到达业务链中上行方向上的最后一个业务节点(即第二业务节点),最后一个业务节点对所述第一上行数据报文进行业务处理,得到第二上行数据报文,然后将业务节点信息从第二上行数据报文中删除掉,将删除掉业务节点信息得到的第三上行数据报文发送给第二引流点;第二引流点作为所述业务链的上行出口引流点,接收到第三上行数据报文之后将第三上行数据报文发送给目的设备。由于在数据报文的处理系统中对上行数据报文进行业务处理时采用了第一引流点、第二引流点分别作为上行数据报文的上行入口引流点和上行出口引流点,即数据报文中心系统中对引流点进行分布式设计,通过两个引流点对上行数据报文进行入口引流和出口引流,使上行数据报文在第一引流点和第二引流点中只需要经过一次,能够提高数据报文的处理效率。
接下来介绍本发明实施例提供的另一种引流点,该引流点具体为第二引流点,请参阅图14所示,第二引流点1400包括:
输入装置1401、输出装置1402、处理器1403和存储器1404(其中第二引流点1400中的处理器1403的数量可以一个或多个,图14中以一个处理器为例)。在本发明的一些实施例中,输入装置1401、输出装置1402、处理器1403和存储器1404可通过总线或其它方式连接,其中,图14中以通过总线连接为例。
其中,处理器1403,用于执行如下步骤:
接收第二业务节点发送的第三上行数据报文,所述第二业务节点是第一引流点确定的业务链中上行方向上的最后一个业务节点,所述第二引流点为所述业务链的上行出口引流点,所述第三上行数据报文为所述第二业务节点收到第一业务节点发送的第一上行数据报文后,对所述第一上行数据报文进行业务处理得到第二上行数据报文,并从所述第二上行数据报文中删除所述业务链的业务节点信息后得到的;
将所述第三上行数据报文发送给目的设备,所述第二引流点部署在所述目的设备的前端。
在本发明的一些实施例中,处理器1403,还用于执行如下步骤:
接收第二业务节点发送的第三上行数据报文之后,从所述第三上行数据报文中解析出所述第二业务节点的业务节点信息;
将所述第二业务节点的业务节点信息保存到双向流表中。
在本发明的一些实施例中,处理器1403,还用于执行如下步骤:当所述第二业务节点的业务节点信息具体为第二业务节点的设备索引时,从所述第三上行数据报文中解析出所述第二业务节点的业务节点信息之后,根据控制器设置的映射关系表查询所述第二业务节点的设备索引对应的互联网协议IP地址;
在本发明的一些实施例中,处理器1403,具体用于执行如下步骤:将所述第二业务节点的设备索引对应的IP地址保存到双向流表中。
在本发明的一些实施例中,处理器1403,还用于执行如下步骤:
从所述第三上行数据报文中解析出所述第二业务节点的业务节点信息之后,将所述第二业务节点的业务节点信息发送给第三引流点,所述第三引流点为对所述业务链中除所述第二引流点以外的另一个上行出口引流点。
在本发明的一些实施例中,处理器1403,还用于执行如下步骤:
将所述第三上行数据报文发送给目的设备之后,接收所述目的设备根据所述第三上行数据报文返回的第一下行数据报文;
将所述第一下行数据报文发送给所述第二业务节点。
在本发明的一些实施例中,处理器1403,具体用于执行如下步骤:
按照双向流表将所述第一下行数据报文发送给所述第二业务节点。
通过以上实施例对本发明的描述可知,第一业务节点将第一上行数据报文按照业务链对应的业务节点信息向下一跳业务节点发送第一上行数据报文,并使第一上行数据报文到达业务链中上行方向上的最后一个业务节点(即第二业务节点),最后一个业务节点对所述第一上行数据报文进行业务处理,得到第二上行数据报文,然后将业务节点信息从第二上行数据报文中删除掉,将删除掉业务节点信息得到的第三上行数据报文发送给第二引流点;第二引流点作为所述业务链的上行出口引流点,接收到第三上行数据报文之后将第三上行数据报文发送给目的设备。由于在数据报文的处理系统中对上行数据报文进行业务处理时采用了第一引流点、第二引流点分别作为上行数据报文的上行入口引流点和上行出口引流点,即数据报文中心系统中对引流点进行分布式设计,通过两个引流点对上行数据报文进行入口引流和出口引流,使上行数据报文在第一引流点和第二引流点中只需要经过一次,能够提高数据报文的处理效率。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (20)
1.一种数据报文的处理方法,其特征在于,包括:
第二业务节点接收第一业务节点发送的第一上行数据报文,所述第一上行数据报文携带第一引流点确定的业务链对应的业务节点信息,所述第一业务节点是所述业务链中与所述第二业务节点相邻的上一跳业务节点,所述第一引流点为所述业务链的上行入口引流点;
所述第二业务节点对所述第一上行数据报文进行业务处理,得到第二上行数据报文;
当所述第二业务节点根据所述业务节点信息确定所述第二业务节点为所述业务链中上行方向上的最后一个业务节点时,所述第二业务节点将所述业务节点信息从所述第二上行数据报文中删除,得到第三上行数据报文;
所述第二业务节点将所述第三上行数据报文发送给第二引流点,所述第二引流点为所述业务链的上行出口引流点;
所述第二业务节点将所述第三上行数据报文发送给第二引流点之前,所述方法还包括:
所述第二业务节点将所述第二业务节点的业务节点信息封装到所述第三上行数据报文中;
所述第二业务节点将所述第三上行数据报文发送给第二引流点包括:
所述第二业务节点将封装了所述第二业务节点的业务节点信息的所述第三上行数据报文发送给所述第二引流点。
2.根据权利要求1所述的方法,其特征在于,所述第二业务节点将所述第三上行数据报文发送给第二引流点之前,所述方法还包括:
所述第二业务节点根据双向流表查询所述第三上行数据报文的上行出口引流点;
若没有查询到上行出口引流点,所述第二业务节点将所述第三上行数据报文发送给第二引流点,具体为:所述第二业务节点按照转发路由将所述第三上行数据报文发送至所述第二引流点;
若查询到上行出口引流点为所述第二引流点,所述第二业务节点将所述第三上行数据报文发送给第二引流点,具体为:所述第二业务节点按照所述双向流表将所述第三上行数据报文发送至所述第二引流点。
3.根据权利要求1所述的方法,其特征在于,所述第二业务节点将所述第三上行数据报文发送给第二引流点之后,所述方法还包括:
所述第二业务节点接收所述第二引流点发送的第一下行数据报文;
所述第二业务节点对所述第一下行数据报文进行业务处理,得到第二下行数据报文;
所述第二业务节点根据双向流表确定所述第二下行数据报文为所述业务链的下行数据报文;
所述第二业务节点将所述业务链的业务节点信息封装到所述第二下行数据报文中,得到第三下行数据报文;
所述第二业务节点将所述第三下行数据报文发送给所述第一业务节点。
4.根据权利要求3所述的方法,其特征在于,所述第二业务节点根据双向流表确定所述第二下行数据报文为所述业务链的下行数据报文之后,所述方法还包括:
所述第二业务节点将所述第二引流点的引流点信息保存到所述双向流表中。
5.一种数据报文的处理方法,其特征在于,包括:
第二引流点接收第二业务节点发送的第三上行数据报文,所述第二业务节点是第一引流点确定的业务链中上行方向上的最后一个业务节点,所述第二引流点为所述业务链的上行出口引流点,所述第三上行数据报文为所述第二业务节点收到第一业务节点发送的第一上行数据报文后,对所述第一上行数据报文进行业务处理得到第二上行数据报文,并从所述第二上行数据报文中删除所述业务链的业务节点信息后得到的;
所述第二引流点从所述第三上行数据报文中解析出所述第二业务节点的业务节点信息;
所述第二引流点将所述第三上行数据报文发送给目的设备,所述第二引流点部署在所述目的设备的前端。
6.根据权利要求5所述的方法,其特征在于,所述第二引流点从所述第三上行数据报文中解析出所述第二业务节点的业务节点信息之后,所述方法还包括:
所述第二引流点将所述第二业务节点的业务节点信息保存到双向流表中。
7.根据权利要求6所述的方法,其特征在于,当所述第二业务节点的业务节点信息具体为第二业务节点的设备索引时,所述第二引流点从所述第三上行数据报文中解析出所述第二业务节点的业务节点信息之后,所述方法还包括:
所述第二引流点根据控制器设置的映射关系表查询所述第二业务节点的设备索引对应的互联网协议IP地址;
所述第二引流点将所述第二业务节点的业务节点信息保存到双向流表中,具体为:
所述第二引流点将所述第二业务节点的设备索引对应的IP地址保存到双向流表中。
8.根据权利要求6所述的方法,其特征在于,所述第二引流点从所述第三上行数据报文中解析出所述第二业务节点的业务节点信息之后,所述方法还包括:
所述第二引流点将所述第二业务节点的业务节点信息发送给第三引流点,所述第三引流点为对所述业务链中除所述第二引流点以外的另一个上行出口引流点。
9.根据权利要求5所述的方法,其特征在于,所述第二引流点将所述第三上行数据报文发送给目的设备之后,所述方法还包括:
所述第二引流点接收所述目的设备根据所述第三上行数据报文返回的第一下行数据报文;
所述第二引流点将所述第一下行数据报文发送给所述第二业务节点。
10.根据权利要求9所述的方法,其特征在于,所述第二引流点将所述第一下行数据报文发送给所述第二业务节点,具体为:
所述第二引流点按照双向流表将所述第一下行数据报文发送给所述第二业务节点。
11.一种业务节点,其特征在于,所述业务节点具体为第二业务节点,包括:
接收模块,用于接收第一业务节点发送的第一上行数据报文,所述第一上行数据报文携带第一引流点确定的业务链对应的业务节点信息,所述第一业务节点是所述业务链中与所述第二业务节点相邻的上一跳业务节点,所述第一引流点为所述业务链的上行入口引流点;
业务处理模块,用于对所述第一上行数据报文进行业务处理,得到第二上行数据报文;
解封装模块,用于当所述第二业务节点根据所述业务节点信息确定所述第二业务节点为所述业务链中上行方向上的最后一个业务节点时,将所述业务节点信息从所述第二上行数据报文中删除,得到第三上行数据报文;
发送模块,用于将所述第三上行数据报文发送给第二引流点,所述第二引流点为对所述业务链的上行出口引流点;
第一封装模块,用于所述发送模块将所述第三上行数据报文发送给第二引流点之前,将所述第二业务节点的业务节点信息封装到所述第三上行数据报文中;
所述发送模块,具体用于将封装了所述第二业务节点的业务节点信息的所述第三上行数据报文发送给所述第二引流点。
12.根据权利要求11所述的业务节点,其特征在于,还包括:查询模块,其中,
所述查询模块,用于所述发送模块将所述第三上行数据报文发送给第二引流点之前,根据双向流表查询所述第三上行数据报文的上行出口引流点;
若没有查询到上行出口引流点,所述发送模块,具体用于按照转发路由将所述第三上行数据报文发送至所述第二引流点;
若查询到上行出口引流点为所述第二引流点,所述发送模块,具体用于按照所述双向流表将所述第三上行数据报文发送至所述第二引流点。
13.根据权利要求11所述的业务节点,其特征在于,还包括:第二封装模块,其中,
所述接收模块,还用于所述发送模块将所述第三上行数据报文发送给第二引流点之后,接收所述第二引流点发送的第一下行数据报文;
所述业务处理模块,还用于对所述第一下行数据报文进行业务处理,得到第二下行数据报文;
所述第二封装模块,用于将所述业务链的业务节点信息封装到所述第二下行数据报文中,得到第三下行数据报文;
所述发送模块,还用于将所述第三下行数据报文发送给所述第一业务节点。
14.根据权利要求13所述的业务节点,其特征在于,还包括:保存模块,用于所述发送模块根据双向流表确定所述第二下行数据报文为所述业务链的下行数据报文之后,将所述第二引流点的引流点信息保存到所述双向流表中。
15.一种引流点,其特征在于,所述引流点具体为第二引流点,包括:
接收模块,用于接收第二业务节点发送的第三上行数据报文,所述第二业务节点是第一引流点确定的业务链中上行方向上的最后一个业务节点,所述第二引流点为对所述业务链的上行出口引流点,所述第三上行数据报文为所述第二业务节点收到第一业务节点发送的第一上行数据报文后,对所述第一上行数据报文进行业务处理得到第二上行数据报文,并从所述第二上行数据报文中删除所述业务链的业务节点信息后得到的;
解析模块,用于所述接收模块接收第二业务节点发送的第三上行数据报文之后,从所述第三上行数据报文中解析出所述第二业务节点的业务节点信息;
发送模块,用于将所述第三上行数据报文发送给目的设备,所述第二引流点部署在所述目的设备的前端。
16.根据权利要求15所述的引流点,其特征在于,还包括:保存模块,其中,
所述保存模块,用于将所述第二业务节点的业务节点信息保存到双向流表中。
17.根据权利要求16所述的引流点,其特征在于,当所述第二业务节点的业务节点信息具体为第二业务节点的设备索引时,所述第二引流点,还包括:查询模块,用于在所述解析模块从所述第三上行数据报文中解析出第二业务节点的业务节点信息之后,根据控制器设置的映射关系表查询所述第二业务节点的设备索引对应的互联网协议IP地址;
所述保存模块,具体用于将所述第二业务节点的设备索引对应的IP地址保存到双向流表中。
18.根据权利要求16所述的引流点,其特征在于,所述发送模块,还用于在所述解析模块从所述第三上行数据报文中解析出第二业务节点的业务节点信息之后,将所述第二业务节点的业务节点信息发送给第三引流点,所述第三引流点为对所述业务链中除所述第二引流点以外的另一个上行出口引流点。
19.根据权利要求15所述的引流点,其特征在于,所述接收模块,还用于在所述发送模块将所述第三上行数据报文发送给目的设备之后,接收所述目的设备根据所述第三上行数据报文返回的第一下行数据报文;
所述发送模块,还用于将所述第一下行数据报文发送给所述第二业务节点。
20.根据权利要求19所述的引流点,其特征在于,所述发送模块,具体用于按照双向流表将所述第一下行数据报文发送给所述第二业务节点。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410301535.2A CN105337881B (zh) | 2014-06-27 | 2014-06-27 | 一种数据报文的处理方法、业务节点以及引流点 |
ES15811011T ES2739204T3 (es) | 2014-06-27 | 2015-04-16 | Método de procesamiento de paquete de datos, nodo de servicio y nodo de entrega |
PCT/CN2015/076778 WO2015196849A1 (zh) | 2014-06-27 | 2015-04-16 | 一种数据报文的处理方法、业务节点以及引流点 |
EP15811011.4A EP3145131B1 (en) | 2014-06-27 | 2015-04-16 | Data packet processing method, service node and delivery node |
US15/385,470 US10439931B2 (en) | 2014-06-27 | 2016-12-20 | Data packet processing method, service node, and delivery node |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410301535.2A CN105337881B (zh) | 2014-06-27 | 2014-06-27 | 一种数据报文的处理方法、业务节点以及引流点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105337881A CN105337881A (zh) | 2016-02-17 |
CN105337881B true CN105337881B (zh) | 2019-10-01 |
Family
ID=54936720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410301535.2A Active CN105337881B (zh) | 2014-06-27 | 2014-06-27 | 一种数据报文的处理方法、业务节点以及引流点 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10439931B2 (zh) |
EP (1) | EP3145131B1 (zh) |
CN (1) | CN105337881B (zh) |
ES (1) | ES2739204T3 (zh) |
WO (1) | WO2015196849A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10516605B2 (en) | 2015-06-03 | 2019-12-24 | Vid Scale, Inc. | Enhancing performance of multi-path communications |
US10003498B2 (en) | 2015-06-29 | 2018-06-19 | Ca, Inc. | Efficient management of network configuration-dependent network functionality |
US10084657B2 (en) * | 2015-06-29 | 2018-09-25 | Ca, Inc. | Normalized software-defined networking interface |
US10103976B2 (en) * | 2015-07-09 | 2018-10-16 | Cisco Technology, Inc. | Service bitmask-based service application in service function chaining |
KR20170052002A (ko) * | 2015-11-03 | 2017-05-12 | 한국전자통신연구원 | 가상 네트워크 기능 체이닝 시스템 및 방법 |
CN107493235A (zh) * | 2016-06-13 | 2017-12-19 | 中兴通讯股份有限公司 | 一种快速转发报文的方法和装置 |
CN107800626B (zh) * | 2016-08-31 | 2020-10-09 | 阿里巴巴集团控股有限公司 | 数据报文的处理方法、装置及设备 |
CN108075991B (zh) * | 2016-11-18 | 2020-09-08 | 新华三技术有限公司 | 报文转发方法及装置 |
US10397144B2 (en) * | 2016-12-22 | 2019-08-27 | Intel Corporation | Receive buffer architecture method and apparatus |
US20180234535A1 (en) * | 2017-02-10 | 2018-08-16 | Mediatek Inc. | Method and apparatus for communication |
CN108762742A (zh) * | 2018-05-18 | 2018-11-06 | 深圳壹账通智能科技有限公司 | 数据流向及业务流向的分析方法、装置、设备及介质 |
WO2020150878A1 (zh) * | 2019-01-22 | 2020-07-30 | 华为技术有限公司 | 数据报文传输方法及节点 |
CN110365577B (zh) * | 2019-07-24 | 2021-10-15 | 绿盟科技集团股份有限公司 | 一种安全资源池的引流系统及安全检查方法 |
CN110865965B (zh) * | 2019-11-13 | 2023-09-19 | 苏州盛科科技有限公司 | 一种基于硬件实现流表双向数据同步的方法及装置 |
US11949589B2 (en) * | 2021-05-20 | 2024-04-02 | Pensando Systems Inc. | Methods and systems for service state replication using original data packets |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7490153B1 (en) * | 2004-07-23 | 2009-02-10 | International Business Machines Corporation | Smart nodes for providing interoperability among a plurality of web services in a chain and dynamically orchestrating associated processes |
CN101772918A (zh) * | 2007-08-03 | 2010-07-07 | 思科技术公司 | 服务链的操作、管理和维护(oam) |
CN103581018A (zh) * | 2013-07-26 | 2014-02-12 | 北京华为数字技术有限公司 | 报文发送方法、路由器以及业务交换器 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6901258B2 (en) * | 2001-12-13 | 2005-05-31 | Samsung Electronics Co., Ltd. | System and method for avoiding triangulation delay in a telecommunications network |
US8031366B2 (en) * | 2007-07-31 | 2011-10-04 | Canon Kabushiki Kaisha | Control apparatus, controlling method, program and recording medium |
US7860100B2 (en) * | 2008-10-01 | 2010-12-28 | Cisco Technology, Inc. | Service path selection in a service network |
CN101997759B (zh) * | 2009-08-10 | 2013-06-05 | 中兴通讯股份有限公司 | 一种业务实现方法及业务系统 |
US8332517B2 (en) * | 2010-03-31 | 2012-12-11 | Incnetworks, Inc. | Method, computer program, and algorithm for computing network service value pricing based on communication service experiences delivered to consumers and merchants over a smart multi-services (SMS) communication network |
US8743885B2 (en) * | 2011-05-03 | 2014-06-03 | Cisco Technology, Inc. | Mobile service routing in a network environment |
US9326182B2 (en) * | 2012-10-02 | 2016-04-26 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system for radio service optimization using active probing over transport networks |
CN108632098B (zh) * | 2013-04-28 | 2021-08-13 | 华为技术有限公司 | 流分类器、业务路由触发器、报文处理的方法和系统 |
US9178812B2 (en) * | 2013-06-05 | 2015-11-03 | Cisco Technology, Inc. | Stacking metadata contexts for service chains |
US9444675B2 (en) * | 2013-06-07 | 2016-09-13 | Cisco Technology, Inc. | Determining the operations performed along a service path/service chain |
US9935827B2 (en) * | 2014-09-30 | 2018-04-03 | Nicira, Inc. | Method and apparatus for distributing load among a plurality of service nodes |
-
2014
- 2014-06-27 CN CN201410301535.2A patent/CN105337881B/zh active Active
-
2015
- 2015-04-16 ES ES15811011T patent/ES2739204T3/es active Active
- 2015-04-16 WO PCT/CN2015/076778 patent/WO2015196849A1/zh active Application Filing
- 2015-04-16 EP EP15811011.4A patent/EP3145131B1/en active Active
-
2016
- 2016-12-20 US US15/385,470 patent/US10439931B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7490153B1 (en) * | 2004-07-23 | 2009-02-10 | International Business Machines Corporation | Smart nodes for providing interoperability among a plurality of web services in a chain and dynamically orchestrating associated processes |
CN101772918A (zh) * | 2007-08-03 | 2010-07-07 | 思科技术公司 | 服务链的操作、管理和维护(oam) |
CN103581018A (zh) * | 2013-07-26 | 2014-02-12 | 北京华为数字技术有限公司 | 报文发送方法、路由器以及业务交换器 |
Also Published As
Publication number | Publication date |
---|---|
CN105337881A (zh) | 2016-02-17 |
EP3145131A1 (en) | 2017-03-22 |
ES2739204T3 (es) | 2020-01-29 |
WO2015196849A1 (zh) | 2015-12-30 |
EP3145131A4 (en) | 2017-07-19 |
EP3145131B1 (en) | 2019-06-12 |
US20170104671A1 (en) | 2017-04-13 |
US10439931B2 (en) | 2019-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105337881B (zh) | 一种数据报文的处理方法、业务节点以及引流点 | |
CN106656801B (zh) | 业务流的转发路径的重定向方法、装置和业务流转发系统 | |
CN107005472B (zh) | 一种用于提供域间服务功能链接的方法及装置 | |
CN105591978B (zh) | 基于网络的服务功能链接 | |
CN104333511B (zh) | 确定业务传输路径的方法、装置及系统 | |
CN107911258A (zh) | 一种基于sdn网络的安全资源池的实现方法及系统 | |
CN106105165B (zh) | 具有网络地址转换检测的动态服务链 | |
CN105072038B (zh) | 一种数据报文转发方法及装置 | |
CN107920023A (zh) | 一种安全资源池的实现方法及系统 | |
CN106063202B (zh) | 取决于状态的数据转发方法、控制器和存储介质 | |
CN107517157A (zh) | 一种路径确定方法、装置和系统 | |
CN104704779A (zh) | 用于加速软件定义网络中的转发的方法和设备 | |
CN106464522A (zh) | 用于网络功能布局的方法和系统 | |
JP2017529011A (ja) | 通信ネットワークにおけるネットワークサービスファンクションのチェーン化 | |
CN106059923B (zh) | 一种报文转发方法及装置 | |
CN105765946A (zh) | 支持数据网络中的服务链接的方法和系统 | |
CN110290093A (zh) | Sd-wan网络架构及组网方法、报文转发方法 | |
CN106921579A (zh) | 基于业务功能链sfc的通信方法和装置 | |
CN110351286A (zh) | 一种软件定义网络中链路洪泛攻击检测响应机制 | |
CN102780779A (zh) | 一种园区网出口p2p流量优化方法、装置及网关设备 | |
CN106603413A (zh) | 通过指定路径传输流量的方法和装置 | |
CN110380959A (zh) | 转发报文方法和装置 | |
CN107483338A (zh) | 一种确定跨域标签交换路径隧道的方法、设备和系统 | |
CN106341423A (zh) | 一种报文处理方法和装置 | |
CN105637806B (zh) | 网络拓扑确定方法和装置、集中式网络状态信息存储设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |