用于隐式会话路由的方法

文档序号:10476201阅读:228来源:国知局
用于隐式会话路由的方法
【专利摘要】在一个示例实施例中提供了一种示例方法,包括:在服务链的服务区域从前一跳路由器接收会话的分组;记录会话的前一跳路由器;使用负载均衡确定服务区域中为分组服务的设备;记录设备身份,用于在服务区域中为会话服务;使用负载均衡确定分组在服务链中的下一跳路由器;以及记录会话的下一跳路由器。
【专利说明】
用于隐式会话路由的方法
技术领域
[0001]本公开一般地涉及数据网络,并且更具体地涉及一种用于服务链中的隐式会话路由的方法、系统和装置。
【背景技术】
[0002]在服务路由网络中,服务路由器的网络维护用于服务区间通信的聚合路由信息。这些服务路由器交换路由前缀和服务路由器信息,以允许服务路由器在一系列服务区域之间转发分组。服务路由器可以是虚拟的,每个区域由容宿在提供实际服务的虚拟机上的一个或多个设备支持。服务路由器充当区域间通信的桥梁,并且通过设备来进行分组路由/交换。示例性的虚拟服务区域路由器在虚拟机中运行,但是作为替代,物理服务区域路由器也可以被实现。所有的服务区域、它们的设备、虚拟服务路由器、以及分组在这些区域之间的路由被称为服务链架构。
[0003]可以根据虚拟路由转发(VRF)功能以及会话路由转发(SRF)功能定义服务链。VRF用于维护服务区域之间的区域间连通性,并且列出了服务类型的聚合路由线路和相关联的隧道机制,同时SRF列出了哪些会话(S卩,5元组流)由区域中的什么设备服务。如果处理实体(例如,数据中心刀片)主持多种服务类型,则相等数目的VRF/SRF组合在服务路由器上是可用的。上述方法维护了 SRF中的设备会话路由线路和VRF邻接性,但是没有提供用于管理SRF中的会话状态的机制。
【附图说明】
[0004]为了提供对于本公开、及其特征和优点的更完整的理解,结合附图参考下面的描述,其中相似的参考标号表不相似的部分,其中:
[0005]图1是示出根据本公开的示例实施例的网络中的服务链的简化框图;
[0006]图2是示出根据示例实施例的在服务区域中执行的会话路由和转发的简化框图;
[0007]图3是根据示例实施例的路由器的简化框图;
[0008]图4A是示出根据示例实施例的可以与用于隐式会话路由的处理相关联的操作的流程图;
[0009]图4B是示出根据示例实施例的可以与用于隐式会话路由的处理相关联的进一步操作的流程图;
[0010]图5A是示出根据示例实施例的可以与服务链中的设备的移除/故障相关联的操作的流程图;
[0011]图5B是示出根据进一步的示例实施例的可以与服务链中的设备的移除/故障相关联的操作的流程图;
[0012]图6A是示出根据示例实施例的可以与服务链中的移动后的设备相关联的操作的流程图;以及
[0013]图6B是示出根据示例实施例的可以与服务链中的服务路由器故障相关联的操作的流程图。
【具体实施方式】
[0014]挺述
[0015]公开了用于在网络中的服务链中提供隐式会话管理的方法、系统和装置。在该方法、系统和装置中,会话的机械负载均衡被应用在服务链中的适当点处,以通过服务链路由会话的第一分组。一旦该分组被路由通过整个服务链的每个区域,用于该会话的每个服务区域中的独立的虚拟路由功能和虚拟服务功能(VRF/SRF)即记录了用于该特定会话的前一跳、服务设备以及后一跳,并且会话流量流中的后续分组遵循相同的路径。该方法、系统和装置可以被用来实现解决服务路由器和设备的配置在服务链中的添加、移除、改变、以及故障的机制。
[0016]在一个示例实施例中,第一会话分组在服务链的服务区域X中的服务路由器(当前跳路由器)的虚拟路由功能VRF (X)处被从前一跳路由器的虚拟路由功能(VRF (y))接收。VRF(X)记录VRF(y)作为会话的前一跳路由器。当前跳服务路由器的服务路由功能(SRF(x))随后通过应用负载均衡函数来确定服务区域X中为分组服务的设备。该设备的身份被记录在当前跳路由器的SRF(X)中,并且会话分组被发送到该设备并且被提供服务。VRF(X)通过在VRF(X)中应用负载均衡函数来确定下一跳路由器的下一跳虚拟路由功能VRF(Z),该下一跳虚拟路由功能VRF(Z)将分组发送到下一服务区域中的可用VRF外。VRF(X)随后记录VRF(Z)作为会话的下一跳路由器,并且将分组转发到VRF(Z)。该处理随后可以在区域z以及服务链中的后续服务区域中重复。一旦会话分组已经被路由通过整个服务链的每个区域,用于会话的每个服务区域中的每个独立的VRF/SRF即记录了该特定会话的前一跳、服务设备以及下一跳。这些会话路由条目记录会话的会话分组将遵循的路径。在服务链中的各个点处使用的负载均衡函数可以是相同的函数或者不同的函数。
[0017]示例实施例
[0018]现在将使用示例性实施例描述该方法和装置。出于说明性的目的,在本公开中给出了示例性实施例,但是这些示例性实施例不用于限制或者限定本公开或者这里给出的权利要求的范围。
[0019]示例实施例公开了被实现如下的自动化技术:在无需通过机械路由(S卩,通过功能)在服务区域的服务路由功能(SRF)之间传送显性信令的条件下,通过由服务区域及相关联的设备管理的一系列服务来路由会话。不需要信令向服务路由器及它们的SRF通知哪些设备服务什么会话。会话通过服务链在可用设备上被机械地负载均衡。先前的负载均衡决定被缓存并维护在针对每个服务路由器维护的会话路由表中。仅需要附加信令在会话路由器故障时恢复丢失的会话路由状态,并且仅需要少量信令来识别服务区域中的新设备。
[0020]实施例提供了相对于用于管理会话状态的其他方法的优势。例如,用于维护SRF会话状态的一种已知的实现方式在系统中出现新会话时,通过会话路由状态信息在服务区域中的所有SRF之间的显性分发被执行。每当SRF接收到指示服务区域中的新TCP会话的传输控制协议(TCP)SYN分组时,这种实施方式可能需要在服务区域中用信令显性发送所有的SRF实例。类似地,在会话结束时,TCP FIN分组的接收创建了向服务区域中的所有SRF通知会话被终止的附加信令。
[0021]本公开提供了实现完全分散的会话路由和服务链系统的实施例。相比例如,使用中央控制器来映射通过一系列服务路由器的会话路由线路,分散的本地决策提供了不需要中央实体的益处。中央实体或控制器可能会遭受信令过载的影响,并且会产生单个故障点。
[0022]现在参考图1,图1示出了可以是任意长度的服务链的示例架构。图1示出了包括服务区域100、120和130(也可以分别表示为区域“y”、区域“X”和区域“z”)的服务链。服务区域是逻辑构造,而不是物理构造。服务区域y 100包括在线应用服务110,服务区域X 120包括在线应用服务125,服务区域z 130包括在线应用服务135。例如,服务110可以是防火墙,月艮务125和135中的每个服务可以是超文本传输协议(HTTP)服务、深度包检测(DPI)功能、TCP优化器等。另外,每个区域中可能存在相同服务的多个实例。例如,区域y 100中存在相同服务110的多个实例,区域X 120中存在相同服务125的多个实例,区域z 130中存在服务135的多个实例。另外,这些服务110、125和135可以是运行在数据中心中的设备上的虚拟机。该设备可以被实现为任意类型的硬件/软件,其通过根据服务处理会话分组来为会话服务。给定服务区域中运行有相同服务的数百个实例。
[0023]例如,区域y 100中存在多个路由器112、114和116,区域X 120中存在多个路由器122、124和126。给定服务区域中的路由器通过服务区域y 100,x 120以及z 130中的参考标号118、128以及138处分别示出的连接电路连接到服务。图1中示出的路由器可以被配置为促使流量通过它们各自服务区域中的服务(或者服务实例)。图2的各个区域的路由器之间存在多个隧道和信令连接。来自一个服务区域中的路由器的流量可以被路由到另一服务区域中的若干路由器中的任意一个路由器。例如,参考标号142示出了通过服务区域的路由器之间的MPLS隧道的数据信道。尽管术语“路由器”被示出并被用在图1的示例配置中,但是本公开中所使用的“路由器”意欲包括可以执行用于这里公开的隐性路由的功能的任意类型的网络节点或交换设备。
[0024]在图1的实施例中,使用数据信道142的示例,路由器116接收来自另一服务区域(逻辑上在服务100上,但是没有在图1中示出)的流量,并且促使该流量通过服务110(或者服务110的若干实例之一),然后在服务110进行处理后沿隧道142将流量转发到服务区域X120中的路由器124。类似地,服务区域X 120中的路由器124经由隧道142从路由器116接收流量,促使其到达服务125(或者服务125的若干实例之一),然后将该流量继续转发到服务区域z 130中的路由器134。相同的流动可以在传入流量去往服务区域z 130、服务区域X120、以及服务区域y 100的相反方向中发生,然后前进到另一服务区域或目的地。
[0025]尽管图1的示例将数据信道142示出为处于特定路由器之间,但是来自一个服务区域中的路由器的流量可以被路由到另一个服务区域中的若干路由器中的任意一个路由器。例如,路由器116可以选择通过数据信道将流量转发到服务区域X 120中的路由器126而不是路由器124,并且路由器126可以选择通过数据信道将流量转发到服务域区z的路由器132,等等。在这些场景中,数据信道142将被示出为从路由器116到路由器126,然后到路由器132。状态(邻接性信息)在该服务区域内的路由器之间、以及在不同服务区域中的路由器之间被适当复制,或者存在决定映射的协调协议。在示例实施例中,在服务区域的每个路由器做出的、关于流量将被转发到下一个服务区域的哪个路由器的决策通过应用负载均衡函数被做出。该负载均衡函数可以是例如,等价多路径(ECMP)算法之类的函数。
[0026]为每个服务区域指派路由目标。另外,路由目标被指派给唯一的服务区域,以充当经由控制协议的路由器之间的路由入口和出口的社区价值(community value)。通过服务区域的路由器处的路由目标,利用目的地网络前缀的适当入口和出口创建服务链。区域y100输入来自区域X 120的路由目标,类似地,区域X 120输入来自区域y 100的路由目标,用于返回/默认路径。区域X 120输入来自区域z 130的路由目标,类似地,区域z 130输入来自区域X 120的路由目标,用于返回/默认路径。图1中示出的每个路由器装配有适当的服务区域路由目标,并且输入和输出适当地址。这包括从下一服务区域接收一组地址,将服务区域路由目标改变为其自身的服务区域出口路由目标,并且为前一服务区域重新产生这些地址,从而使得链被建立起来。实现此目的所必需的所有信令可以由诸如,BGP或者任何其他互联网网关协议的控制协议执行。服务区域中的路由器之间的广告在与服务区域之间的流量流相反的方向被发送。例如,如果流量从第二服务区域上游的第一服务区域流出,则路由广告可以被从第二服务区域发送到第一服务区域。区域中的每个路由器维护用于服务区域间流量的虚拟路由转发(VRF)功能、以及用于在服务区域内将分组引导至适当的服务实例的服务路由转发(SRF)功能。SRF维护服务实例与应用会话之间的映射,同时VRF通过IP-1n-1P或MPLS隧道被链接到后续路由器,并且维护到服务实例的连接电路。在本公开的实施例中,SRF和VRF二者维护每个会话的路由信息。SRF通过存储会话的服务实例信息来维护每个会话的路由信息,VRF通过存储会话的下一跳和前一跳信息来维护每个会话的路由信息。SRF和VRF可以被整合在单个数据结构中。
[0027]现在参考图2,图2是示出根据本公开的示例实施例的为了管理隐性会话路由而在服务区域中执行的会话路由和转发的简化框图。参考标号200是服务区域,图2中示出的元件是可以被实现在数据中心中的服务区域的元件。数据中心包括诸如刀片服务器210之类的多个刀片服务器,这些刀片服务器分别具有一个或多个处理器核并且能够运行多个虚拟机。虚拟路由器208在刀片服务器210上的虚拟机中运行,并且操作网络接口卡(NIC)206。虚拟路由器208相当于结合图2提到的前述服务路由器。刀片服务器210还存储虚拟路由功能VRF 220(1)和VRF220(2)的数据结构。在示例实施例中,数据中心中存在单独的处理器核224(1)-224(2),这些处理器核分别运行虚拟机中的服务。每个处理器核上都运行有服务。例如,处理器核224(1)运行服务226(也称为SVC(Q)),处理器核224(2)运行相同服务225的另一实例。服务路由功能SRF 222(1)与VRF 220(1)相关联,SRF 222(2)与VRF 220(2)相关联。服务225和226与SRF/VRF之间连接有多个连接电路。例如,连接电路250 (I)将流量从VRF220(1)和SRF 222(1)连接到处理器核224(1)和224(2)中的SVC(Q)。连接电路250(2)将流量从处理器核224(1)和224(2)中的SVC(Q)连接到VRF 220(2)和SRF 222(2)(在SVC(Q)进行处理后)。刀片服务器210存储VRF和SRF中的每个的数据结构。每个VRF包含有关于如何将分组切换到服务中的信息。另外,VRF 220(1)和VRF 220(2)是针对通过服务区域的每个方向中的流量流的同伴VRF。尽管虚拟路由功能VRF 220(1)和VRF 220(2)、以及服务路由功能SRF222(I)和222(2)在图2中被作为两个功能块单独示出,但是在本公开的其他部分提到VRF和SRF (例如,提到服务区域y时的VRF (y )、或者提到服务区域X中的VRF和SRF时的VRF (Xn)和SRF(Xn))意欲包括由图2的两个功能块执行的功能。
[0028]还应该理解的是,图2示出了单个服务区域,但是任意给定的服务区域可以是其他服务区链的部分。虚拟路由器208将通过隧道(例如,MPLS隧道)从第三方接收被封装有头部的IP分组。头部中是指代刀片服务器210中存储的VRF数据结构中的特定VRF的标签。例如,考虑到到达数据中心的分组,其经由与服务链X相关联的虚拟路由器208进入VRF 220(1)。VRF 220(1)查看分组的IP地址,并且将分组转发到适当的服务(例如,SVC(Q))。指示哪些SVC(Q)实例(在处理器核224(1)上、或者在处理器核224(2)上)正在服务该分组的IP地址的信息被存储。VRF 220(2)在分组已经被SVC(Q)处理后接收该分组,并且将其适当地转发到服务区域外。
[0029]随着VRF220(2)在链X上学习到其具有对于特定下游网络的可达性,会发生两件事。首先,VRF 220(2)将该信息泄露给其同伴VRF 220(1),该VRF 220(I)随后可以重新产生该网络地址。其次,在每个SRF中,有关如何针对服务链双向路由各自的流量流的状态被保持。指示每个SRF应该基于流量的特定分组流(例如,流量会话或分组会话的IP地址)将流量转发至哪个服务的更一般的信息被存储。该操作在服务区域中被称为会话路由。根据本公开的示例实施例,分发会话路由状态的方法是通过在区域中的一系列SRF上实现机械的负载均衡会话实现的。
[0030]如关于图1和图2所讨论的,在服务链的服务区域模型中,服务区域可以包括一个或多个服务路由器,每个服务路由器都装配有连接到容宿在处理实体上的实际设备的SRF并且具有通过服务VRF从先前的服务区域到接下来的服务区域的连通性。
[0031 ]作为连通性的示例,再次参考图1,如果我们通过服务路由器126连接的刀片B(1)上的设备X(I)支持服务区域X 120(其中,服务路由器126容宿有用于一般邻接性的VRF(X
(1))和维护去往设备X(I)的会话路由信息的SRF(Xd))),则位于服务X前面的服务区域Y100保存VRF(Y)作为VRF(Xd))。另外,如果服务区域X中存在通过具有VRF(X(2) WPSRFU
(2))的服务路由器124容宿在刀片B(2)上并且与服务区域Y相邻的第二装置x(2)^lJVRF(Y)是指VRF(X(1))和VRF(X(2)) 二者。独立服务路由器上可以存在很多指代服务区域X中的VRF的VRF(Y)实例。为了提供机械的隐式会话路由,本公开的示例实施例在促使VRF(Y)做出有关如何路由新会话的负载均衡决策时,使能“前一”跳。当VRF(Y)确定如何将新会话的第一分组发送至VRF (X (I))或VRF (X (2))时,其对第一会话分组应用负载均衡函数(例如,ECMP或者其他),并且该函数的结果决定了接下来的路径。负载均衡可以包括促使所有“下一跳”设备被大致均衡地加载或者以下一跳设备的均衡负载为目标的任意类型的数据处理功能。在一种实施方式中,VRF (Y)可以使用外部刺激(例如,负载参数)来做出负载均衡决策。在替代实施方式中,决策是独立于外部刺激做出的。负载均衡函数在所有“下一跳”设备上进行操作,以确定适当的路由功能。为了确保会话路由器在每次接收到会话流中的分组时做出相同的决定,函数结果在路由决定被做出时被记录在前一跳的VRF中。该会话路由条目记录了会话存在的情况下会话分组将遵循的路径。
[0032]现在参考图4A和4B,图4A和4B是示出根据本公开的示例实施例的与用于隐性会话路由的处理相关联的操作的流程图。将参考图1,使用涉及用于会话分组在服务链内的路由的图1的特定路由器和数据信道的示例场景描述图4A和4B。用于描述的示例场景仅是诸如图1的示例实施例中示出的、用于在服务链中路由会话分组的很多可能场景中的一种,并且示例场景仅出于说明性目的被示出。
[0033]在402,服务区域y的可以被包括在路由器116中的VRF(Y)将通过服务链发送会话的第一分组。在404,VRF(Y)应用负载均衡函数来从服务链中的下一区域(区域X)的可能VRF中确定“下一跳”路由器。在406,VRF(Y)记录函数结果,S卩,在其针对会话的会话路由表中记录所选择的VRF(Xn)作为下一跳路由器。本公开中使用的术语“记录”可以包括将适当信息存储在任意存储器中(该信息可以被保存并被访问,供随后使用)的任意处理。一旦VRF(Y)确定了向哪里转发分组,其经由信道142上的VRF-VRF隧道将分组发送到VRF(Xn),在图1的示例场景中VRF(Xn)可以被包括在下一跳服务路由器124中。在408,VRF(Xn)接收会话分组,重新应用负载均衡函数来确定为会话服务的设备,并且在与VRF(Xn)相关联的SRF(Xn)中记录哪个设备为会话服务。在410,VRF(Xn)还记录会话返回作为前一服务区域(区域y)中的发送会话分组的前一跳路由器的VRF(Y)的返回路径。重要的是,对于一些或者所有设备来说转发路径和反向路径是等同的,因为这些设备一般作为中间人进行操作,并且要求所有转发分组和反向分组适当操作。接下来,参考图4B和操作412,会话分组经由VRF(Xn)的适当连接电路被注入到区域X 120中的适当服务设备,并且在414,VRF(Xn)从服务设备接收所服务的分组。
[0034]在分组已经在适当的服务设备处被服务后,在416,VRF(Xn)应用负载均衡函数来确定会话分组可以在服务链中被路由到的区域z 130的可能VRF中的下一跳VRF。在418,VRF(Xn)记录函数结果,S卩,在其针对会话的会话路由表中记录VRF(Zn)作为下一跳路由器。一旦VRF(Xn)已经确定向哪里转发分组,其可以经由信道142上的VRF-VRF隧道将分组发送至VRF (Zn ),在图1的示例场景中,VRF (Zn)被包括在下一跳服务路由器134中。
[0035]在420,分别用VRF(Zn)代替VRF(Xn),用SRF(Zn)代替SRF(Xn)作为当前跳路由器,并且用VRF(Xn)代替VRF(Y)作为前一跳路由器,针对服务区域z 130重复操作408-418。如果服务链包括超过三个服务区域(如服务区域V、x、z所表示的服务区域)的额外服务区域,则每个服务区域可以在分组流过完整的服务链时重复该处理。一旦会话开始分组被路由通过整个服务链,每个区域中用于会话的每个独立VRF/SRF即记录了该特定会话的下一跳和前一跳。在422,会话中的后续分组通过所记录的路径被路由通过服务链。
[0036]现在参考图3,图3是示出根据示例实施例的被配置为执行这里描述的服务路由器实现VRF和SRF功能的操作的路由器的示例框图。路由器300示出了图1中示出的一个或多个路由器的示例实施方式。应该理解的是,虚拟路由器可以是图3中所示的路由器的软件仿真的或者虚拟化的版本。参考标号300处示出的路由器包括多个端口 302(l)-302(n)、路由器专用集成电路(ASIC)304、处理器或者中央处理单元(CPU)306以及存储器308。端口 302(1)-302 (η)从路由器接收输入分组,并且输出输出分组。路由器ASIC 304根据来自处理器306的控制和路由逻辑,将输入分组引导至输出端口。处理器306是例如,微处理器或者微控制器,并且执行存储器308中存储的隐性会话路由固件/软件310中包括的指令。隐性会话路由固件/软件310包括在被处理器306执行时使得处理器执行与隐性会话路由有关的操作的指令,包括本公开的示例实施例的VRF和SRF功能。
[0037]存储器308可以包括只读存储器(R0M)、随机存取存储器(RAM)、磁盘存储介质设备、光存储介质设备、闪存设备、电、光、或者其他物理/有形存储器存储设备。一般,存储器308可以包括编码有软件的一个或多个有形(非瞬态)计算机可读存储介质(例如,存储器设备),其中该软件包括计算机可执行指令,当该软件被处理器306执行时,处理器306可操作以执行这里描述的操作。
[0038]实施例的隐性会话路由相对于显性会话路由,需要的服务路由网络中的会话路由信令较少。例如,在实施例中,只有服务链中的配置改变需要在服务路由器之间用信令传输。配置改变需要被用信令传输的速度相对于会话被创建并拆毁的速度小,并且需要在显性会话路由中被用信令传输。
[0039]当设备被添加到区域中的服务的设备混合中时,可以想到机械功能在设备的混合上建立相对于其早先的分配而言的不同会话。通过将更早的会话路由决策的记录保存在VRF/SRF表中,当新设备被添加到系统中时已经建立的会话不受影响。
[0040]当设备被移除时,会发生两件事。首先,类似于设备被添加到组合时,机械功能有可能产生不同的映射结果。可以类似于设备被添加到系统时进行处理。由于会话被显性记录在VRF和SRF中,所以正在进行的会话不受影响。但是,如果携带实时会话的设备被移除,则这些会话需要被从服务路由器的整个链中移除。另外,当设备故障时,可以像设备被从服务器集合中移除一样处理该故障。
[0041]现在参考图5A,图5A是示出根据示例实施例的与服务链中的设备的移除或故障相关联的操作的流程图500。在502,设备的移除或故障被检测到。在504,向前一跳和当前跳路由器通知该移除/故障。在506,前一跳路由器从其VRF和SRF会话表中移除会话条目,并且在508,显性信令被用来向后追溯会话的先前的服务路由器,以从每个先前的服务路由器移除会话路由条目。在510,当前跳路由器从其VRF和SRF表中移除会话条目,并且在512,显性信令被用来向前追溯会话的每个下一跳路由器,以从每个下一跳路由器移除会话路由条目。
[0042]图5B是示出根据替代示例实施例的可以与服务链中的设备的移除/故障相关联的操作的流程图514。在516,设备的移除或者故障被检测到。在518,当会话条目将被移除时,系统等待会话中断和超时。
[0043]移动设备仅考虑被移动的设备管理的正在进行的会话。参考图6A,图6A是示出根据本公开的示例实施例的可以与服务链中的移动后的设备相关联的操作的流程图。在这种情况下,显性信令可以被用来更新VRF和SRF会话表。在602,设备被移动。在604,向前一跳通知到服务路由器的设备新附接点。前一跳随后可以更新适当会话的转发信息。在606,还向下一跳通知到服务路由器的设备新附接点。下一跳随后可以更新适当会话的转发信息。
[0044]现在参考图6B,图6B是示出根据本公开的示例实施例的与服务链中的服务路由器故障相关联的操作的流程图610。在612,服务路由器发生故障。在614,通过从下一跳和前一跳请求会话路由信息,请求向服务路由器的转发状态。在615,向服务设备查询有关哪些会话被路由到哪些服务实例的服务实例信息。在616,会话转发状态被重建。
[0045]在本公开的架构方面,路由器、处理器核、刀片服务器、服务元件、以及任何节点、主机、或者服务器是可以有助于这里讨论的网络通信动作的网络元件(与“装置”和“节点”是同义的)。如本说明书中所使用的,术语“网络元件”覆盖了路由器、交换机、机顶盒、网关、网桥、负载均衡器、蜂窝和WiMAX接入集中器、防火墙、在线服务节点、代理服务器、服务器、处理器、模块、端点、用户设备、任意种类的手持设备、或者能够在网络环境中交换信息的任何其他的适当设备、组件、元件、专用设备、或者对象。这些网络元件可以包括有助于它们的操作的任何适当的硬件、软件、组件、模块、接口、或者对象,也可以包括允许数据或信息的有效交换的适当算法、通信协议、以及接口。
[0046]在一种实施方式中,路由器、处理器核、刀片服务器、服务元件等包括实现(或者促进)这里讨论的网络通信动作的软件。这可以包括例如,如图3中所示的隐性会话路由固件和软件310的实例的实施方式,其中这些模块相互交互、执行往复功能、和/或通过网络适当地与对等方协商它们的动作等。
[0047]例如,隐性会话路由固件和软件310的实例可以被提供在路由器、服务器等中。另夕卜,这些元件中的每个元件可以具有有助于这里描述的任意操作的内部结构(例如,处理器、存储器元件等)。在其他实施例中,这些网络通信动作可以在这些元件外部被执行,或者可以被包括在一些其他网络元件中,以实现期望的功能。替代地,前述网络元件中的任意网络元件可以包括可以与其他网络元件协作,以实现这里描述的网络通信动作的软件(或者往返软件)。在其他实施例中,一个或多个设备(例如,服务器)可以包括任何适当的算法、硬件、软件、组件、模块、接口、或者有助于这里针对隐性会话路由动作讨论的操作的对象等。
[0048]另外,网络元件实施例还可以包括用于在网络环境中接收、发送、和/或传送数据或信息的适当接口。另外,与各种节点相关联的一些处理器和存储器元件可以被移除或者合并,从而使得单个处理器和单个存储器元件负责某些动作。在一般意义上,附图中描绘的布置可以在它们的表示方面更具逻辑性,物理架构可以包括这些元件的各种排列、组合和/或混合。还要注意的是,无数种可能的设计配置可以被用来实现这里概述的操作目标。因此,相关架构具有各种各样的适当布置、设计选择、设备可能、硬件配置、软件实施方式、设备选项等。
[0049]在一些示例实施例中,一个或多个存储器元件可以存储用于这里描述的操作的数据。这包括能够将指令(例如,软件、逻辑、代码等)存储在非瞬态介质中,从而使得这些指令被执行以实现本说明书中描述的动作的存储器元件。处理器可以执行与数据相关联的任意类型的指令,以实现本说明书中详细描述的操作。在另一示例中,这里概述的动作可以利用固定逻辑或者可编程逻辑(例如,由处理器执行的软件/计算机指令)被实现,并且这里识别的元件可以是某些类型的可编程处理器、可编程数字逻辑(例如,现场可编程门阵列(FPGA)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))、包括数字逻辑的ASIC、软件、代码、电子指令、闪存、光盘、CD-R0M、DVD ROM、磁或光卡、适于存储电子指令的其他类型的机器可读介质、或者它们的任意适当组合。
[0050]这些节点可以在适当的情况下基于特定需求,将信息保存在任何适当类型的非瞬态存储介质(例如,随机存取存储器(RAM)、只读存储器(ROM)、现场可编程门阵列(FPGA)、可擦除可编程只读存储器(EPR0M)、电可擦除可编程ROM(EEPROM)等)、软件、硬件、或者任何其他适当的组件、期间、元件、或对象中。在通信网络中被追踪、发送、接收、或者存储的信息可以基于特定需求和实施方式,被提供在任意数据库、寄存器、表格、高速缓存、队列、控制列表、或者存储结构中,所有这些可以在任何适当的时间帧中被参考。这里讨论的任意存储器条目应该被理解为被广义术语“存储器”或者“存储器元件”覆盖。类似地,本说明书中描述的任意潜在的处理元件、模块和机器应该被理解为被广义术语“处理器”覆盖。
[0051]同样重要的是,参考前述附图描述的操作仅示出了可以由系统或者在系统中执行的一些可能的场景。这些操作中的一些操作在适当的情况下可以被删除或者移除,或者可以被改变、修改、或者显著改变,而不会脱离所讨论的概念的范围。另外,这些操作相互之间的时序可以被显著修改,并且仍可实现本公开中教导的结果。出于示例和讨论的目的,给出了前述操作流。系统所提供的实质的灵活性在于,在不脱离所讨论的概念的教导的条件下,可以提供任何适当的布置、时间顺序、配置、以及定时机制。
[0052]注意,在本说明书中,对于包括在“一个实施例”、“示例实施例”、“实施例”、“另一实施例”、“一些实施例”、“各种实施例”、“其他实施例”、“替代实施例”等中的各种特征(例如,元件、结构、模块、组件、步骤、操作、特性等)的引用意欲表示,这些特征中的任意特征被包括在本公开的一个或多个实施例中,但是不一定被结合在相同实施例中。还应该注意,本说明书中使用的“应用”可以包括包含有可以被计算机理解并在计算机上被处理的指令的可执行文件,并且可以进一步包括在执行期间加载的库模块、对象文件、系统文件、硬件逻辑、软件逻辑、或者任何其他可执行模块。
[0053]尽管已经参考特定布置和配置详细描述了本公开,但是这些示例配置和布置可以在不偏离本公开的范围的条件下被显著改变。另外,尽管已经参考有助于通信处理的特定元件和操作示出了通信网络,但是这些元件和操作可以被实现通信网络的预期功能的任何适当的架构或处理代替。
[0054]本领域技术人员将明确很多其他改变、替代、变形、修改、和修正,并且期望本公开覆盖落入所附权利要求的范围内的所有这些改变、替代、变形、修改、和修正。为了帮助美国专利商标局(USPTO)以及本申请上公开的任意专利的任意读者理解所附权利要求,
【申请人】希望找出:(a)除非词语“用于…的装置”、或者“用于…的步骤”被专门用在特定权利要求中,否则不希望任何所附权利要求从其递交之日起激发35U.S.C.112节第六段;以及(b)不希望在说明书中用任何声明以所附权利要求以外的方式限制本公开。
【主权项】
1.一种方法,包括: 在服务链的服务区域从前一跳路由器接收会话的分组; 记录所述会话的所述前一跳路由器; 使用负载均衡确定所述服务区域中为所述分组服务的设备; 记录设备身份,用于在所述服务区域中为所述会话服务; 使用负载均衡确定所述分组在所述服务链中的下一跳路由器;以及 记录所述会话的所述下一跳路由器。2.如权利要求1所述的方法,其中,所述会话的所述分组包括所述会话的第一分组,并且在所述服务区域中接收的所述会话的后续分组被发送至所记录的服务设备,并且被路由至所记录的下一跳路由器。3.如权利要求1所述的方法,其中,所述分组包括所述会话的第一分组,所述服务链包括多个服务区域,所述多个服务区域分别具有一个或多个服务路由器,并且其中,所述方法在所述第一分组被路由通过所述服务链时在每个服务区域中的服务路由器处被执行。4.如权利要求1所述的方法,其中,用于确定所述设备以及用于确定所述下一跳路由器的所述负载均衡包括应用等价多路径负载均衡函数。5.如权利要求1所述的方法,其中,所述接收包括在第二路由功能从第一路由功能接收所述会话的分组,并且所述记录所述前一跳包括在所述第二路由功能记录所述第一路由功能作为所述会话在所述服务链中的前一跳。6.如权利要求5所述的方法,其中,所述确定所述设备包括在服务路由功能中确定为所述分组服务的设备,并且记录所述设备包括在所述服务路由功能中记录所述设备。7.如权利要求6所述的方法,其中,所述确定下一跳路由器包括在所述第二路由功能中确定第三路由功能作为所述会话在所述服务链中的所述下一跳,并且记录所述下一跳路由器包括在所述第二路由功能中记录所述第三路由功能。8.如权利要求1所述的方法,其中,所述方法被实现在所述服务链中的多个服务路由器中,所述多个服务路由器分别具有包括所述会话的前一跳、下一跳以及设备信息的会话条目,其中所述分组在当前跳路由器被接收,并且所述方法还包括: 检测到所述设备不再为所述会话服务; 移除所述当前跳路由器的会话条目; 向后追溯所述会话,以移除前一跳路由器的会话条目;以及 向前追溯所述会话,以移除下一跳路由器的会话条目。9.如权利要求1所述的方法,还包括: 检测到所述设备已经移动; 向所述前一跳路由器通知到服务路由器的新附接点;以及 向所述下一跳路由器通知到服务路由器的新附接点。10.如权利要求1所述的方法,其中,所述分组在当前跳路由器被接收,并且所述方法还包括: 检测到所述当前跳路由器发生故障; 从所述前一跳路由器和下一跳路由器请求会话路由信息; 从至少一个服务设备请求服务实例信息;以及 重建所述会话转发状态。11.一种装置,包括: 一个或多个处理器;以及 包括指令的存储器,所述指令在被所述一个或多个处理器执行时使得所述装置: 在服务链的服务区域从前一跳路由器接收会话的分组; 记录所述会话的所述前一跳路由器; 使用负载均衡确定所述服务区域中为所述分组服务的设备; 记录所述设备,用于在所述服务区域中为所述会话服务; 使用负载均衡确定所述分组在所述服务链中的下一跳路由器;以及 记录所述会话的所述下一跳路由器。12.如权利要求11所述的装置,其中,所述会话的所述分组包括所述会话的第一分组,所述一个或多个处理器使得所述装置接收所述会话的后续分组,发送所述后续分组至所记录的服务设备,并且路由所述后续分组至所记录的下一跳路由器。13.如权利要求11所述的装置,其中,所述一个或多个处理器被配置为提供虚拟路由功能,该虚拟路由功能使得所述装置接收会话的所述分组,并且记录所述会话在所述服务链中的所述前一跳。14.如权利要求13所述的装置,其中,所述一个或多个处理器被配置为提供服务路由功能,该服务路由功能使得所述装置确定为所述分组服务的设备并且记录所述设备,用于为所述会话服务。15.如权利要求11所述的装置,其中,确定设备以及确定下一跳路由器的所述负载均衡包括应用等价多路径负载均衡函数。16.如权利要求11所述的装置,其中,所述一个或多个处理器被配置为提供第一虚拟路由功能,该第一虚拟路由功能使得所述装置从第二虚拟路由功能接收会话的所述分组,并且记录所述第二虚拟路由功能作为所述会话在所述服务链中的所述前一跳。17.—个或多个非瞬态有形介质,包括用于执行的代码,所述代码在被处理器执行时可操作以执行以下操作: 在服务链的服务区域从前一跳路由器接收会话的分组; 记录所述会话的所述前一跳路由器; 使用负载均衡确定所述服务区域中为所述分组服务的设备; 记录设备身份,用于在所述服务区域中为所述会话服务; 使用负载均衡确定所述分组在所述服务链中的下一跳路由器;以及 记录所述会话的所述下一跳路由器。18.如权利要求17所述的介质,其中,所述会话的所述分组包括所述会话的第一分组,并且所述操作还包括接收所述会话的后续分组,发送所述后续分组至所记录的服务设备,并且路由所述后续分组至所记录的下一跳路由器。19.如权利要求17所述的介质,其中,所述操作还包括:提供接收会话的所述分组并且记录所述会话在所述服务链中的所述前一跳的虚拟路由功能。20.如权利要求19所述的介质,其中,所述操作还包括提供用于确定为所述分组服务的设备并记录所述设备用于为所述会话服务的服务路由功能。
【文档编号】H04L12/715GK105830404SQ201480068787
【公开日】2016年8月3日
【申请日】2014年11月20日
【发明人】亨德里克斯·G·P·博世, 詹姆斯·N·吉查德, 戴维·D·瓦尔德, 阿里桑德罗·杜米娜寇, 里克斯·E·费尔南多, 保罗·奎恩
【申请人】思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1