一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

使用会话建立度量的会话监测的制作方法

2022-12-03 12:37:31 来源:中国专利 TAG:

使用会话建立度量的会话监测
1.本技术要求于2020年4月23日提交的美国临时申请第63/014,477号的权益,其全部内容通过引用并入本文。
技术领域
2.本公开总体上涉及计算机网络,并且更具体地,涉及计算机网络内的路由分组。


背景技术:

3.计算机网络是能够交换数据和共享资源的互连计算设备的集合。示例计算设备包括在开放系统互连(osi)参考模型的第2层(即数据链路层)内操作的路由器、交换机和其他第2层(l2)网络设备,以及在osi参考模型的第3层(即网络层)内操作的第3层(l3)网络设备。计算机网络内的网络设备通常包括为网络设备提供控制平面功能的控制单元和用于路由或交换数据单元的转发组件。
4.计算设备可以建立“网络会话”(本文也称为“会话”),以实现计算机网络上的设备之间的通信。会话可以是双向的,因为会话包括在第一设备和第二设备之间在两个方向上行进的分组。例如,会话包括从第一设备发起并去往第二设备的正向分组流和从第二设备发起并去往第一设备的反向分组流。会话的正向和反向分组流相互关联,因为正向分组流的源地址和源端口与反向分组流的目的地地址和目的地端口相同,并且正向分组流的目的地地址和目的地端口与反向分组流的源地址和源端口相同。为了建立会话,计算设备可以使用一个或多个通信会话协议,包括传输控制协议(tcp)、传输层安全(tls)、用户数据报协议(udp)、互联网控制消息协议(icmp)等。


技术实现要素:

5.一般而言,本公开描述了使用会话的会话建立度量来监测会话的技术。客户端设备可以建立会话以访问由网络服务实例(本文也被称为“服务实例”)实例化的网络服务。在会话建立之后,沿着客户端设备和服务实例之间的正向路径和反向路径转发业务。在一些示例中,会话可能无法建立、现有会话可能不再建立、或者根据会话性能要求(例如,由软件许可协议(sla)定义的要求)会话可能性能不佳。即使例如在客户端设备和网络服务实例之间的中间网络上的路径或路由器接口不存在操作问题,这种情况也可能发生。例如,客户端设备可以尝试与第一网络服务实例建立第一通信会话(例如,tls会话)。第一网络服务实例可以成功完成tls握手的密钥交换阶段和服务器参数阶段,但无法完成tls握手的认证阶段。因此,即使在客户端设备和第一网络服务实例之间的链路、网络或传输级别(例如,osi参考模型第2、3或4层)上不存在问题,客户端设备和第一网络服务实例之间的第一tls会话也无法建立。通常,路由器可能不能在会话级别(例如,osi参考模型第5层)检测到问题,因此可能在到服务实例104的路径和接口正在正确操作的情况下,在会话级别不能重新路由网络业务。此外,在第2、3或4层重新路由业务可能中断与有问题的会话共享路由器接口或类似路径但仍可操作的其他会话。
6.根据本公开的技术,路由器生成会话的一个或多个会话建立度量。例如,本文描述的路由器可以获取会话建立的度量(本文也称为“会话建立度量”),并且使用这样的度量来确定在客户端设备和网络服务实例之间是否已经建立(或未能建立)会话和/或所建立的会话是否不满足会话性能要求(本文也称为“会话要求”)。路由器可以使用会话度量和会话性能要求来确定是否将客户端设备和网络服务实例之间的会话的网络业务从第一路径切换到第二路径,以便确保符合会话性能要求,而不会中断穿过第一路径的其他可操作会话。
7.例如,中间网络包括多个路由器,并且位于客户端设备和由服务器托管的网络服务实例之间。中间网络内的第一路由器经由第一路径和不同于第一路径的第二路径被连接到网络服务实例。例如,第一路径和第二路径可以各自包括至少一个不同的路由器或相同路由器的至少一个不同的接口等。第一路由器沿着第一路径转发客户端设备和网络服务实例之间的会话的网络业务。
8.在一些示例中,第一路由器被配置为针对客户端设备和网络服务实例之间的会话执行基于会话的路由。例如,第一路由器修改会话的正向分组流和反向分组流中的至少一个的第一分组,以包括报头以及指定会话的会话标识符的元数据的部分,该报头包括沿着第一路径的第一路由器的源地址和第二路由器的目的地地址。
9.第一路由器获取客户端设备与网络服务实例之间的会话的一个或多个会话建立度量。会话建立度量可以描述与一个或多个会话的成功或不成功建立相关的数据。例如,会话建立度量可以包括例如,建立会话所经过的时间、会话成功建立的数目、会话由于超时而未能建立的数目、会话由于目的地不可达而未能建立的数目、会话在会话建立之前关闭的数目等。第一路由器可以通过监测在建立之前、期间或之后的第一会话的状态来导出会话建立度量。
10.第一路由器接收客户端设备和网络服务实例之间的会话的一个或多个会话性能要求,其可以包括会话的sla要求。第一路由器将度量与会话性能要求进行比较。响应于确定会话的一个或多个会话建立度量不满足会话的一个或多个会话性能要求,第一路由器沿着第二路径转发客户端设备和网络服务实例之间的会话的网络业务。在一些示例中,第一路由器修改会话的正向分组流和反向分组流中的至少一个的第二分组,以包括报头以及指定会话的会话标识符的元数据的部分,该报头包括沿着第二路径的第一路由器的源地址和第三路由器的目的地地址。
11.在一些示例中,第一路由器将第一路径从会话负载均衡器中移除,该会话负载均衡器沿着不同路径对与网络服务相关联的客户业务进行负载均衡。附加地,本文描述的路由器可以使用这样的度量来选择一个或多个会话、检测业务的黑洞化、确定会话不满足sla要求、或者跨不同路径对与网络服务相关联的客户业务进行负载均衡。
12.本公开的技术可以对具有实际应用的计算机网络和路径选择的计算机相关领域提供具体的改进。例如,本公开的技术可以使路由器能够监测会话的状态以确定会话是否已被建立,并且生成与会话是否已被建立有关的度量。与可能仅能够在链路、网络或传输级别(例如,osi参考模型第2、3或4层)执行路径选择和路由的其他路由器不同,本文描述的路由器可以使用这样的度量来在会话级别(例如,osi参考模型第5层)执行路径选择和路由。因此,这样的路由器可以在网络内提供对客户业务的更有效且更细粒度的路由。
13.此外,本文描述的路由器可以使用会话建立度量来确定会话是否满足sla要求,并
且作为响应,选择不同的路径或接口用于传输与该会话相关联的网络业务,以便确保符合sla。因此,即使在链路、网络或传输级别(例如,osi参考模型第2、3或4层),接口或路径不存在问题的情况下,本文描述的这种路由器也可以在会话级别(例如,osi参考模型第5层)检测网络问题,并且执行动作以确保符合会话级别sla要求。
14.此外,本公开的技术可以使本文描述的路由器能够从使用第一接口或路径来转发与性能不佳的会话相关联的网络业务切换到使用第二接口或路径来转发与性能不佳的会话相关联的网络业务,而无需拆除第一路径或停用第一接口。因此,本公开的技术可以使路由器能够重新路由性能不佳的会话的业务,而不会不利地影响根据sla要求执行但例如与性能不佳的会话共享路径或者使用与性能不佳的会话相同的接口的其他会话。因此,本文描述的路由器可以在可能需要拆除路径或停用与性能不佳的会话相关联的接口的其他路由器上提供客户业务的更细粒度且更有效的路由。
15.在一个示例中,本公开描述了一种方法,该方法包括:由网络的多个路由器中的第一路由器,接收所述客户端设备和所述网络服务实例之间的会话的一个或多个会话性能要求,所述网络将所述客户端设备连接到由服务器托管的所述网络服务实例,所述会话包括正向分组流和反向分组流,其中所述第一路由器经由所述网络上的第一路径和所述网络上的第二路径被连接到所述网络服务实例,所述第二路径不同于所述第一路径;由所述第一路由器并且沿着所述第一路径,转发所述客户端设备和所述网络服务实例之间的所述会话的网络业务,所述转发包括修改所述会话的所述正向分组流和所述反向分组流中的至少一个的第一分组以包括:包括沿着所述第一路径的所述多个路由器中的所述第一路由器的源地址和第二路由器的目的地地址的报头;以及指定所述会话的会话标识符的元数据的部分;由所述第一路由器获取所述会话的一个或多个会话建立度量;由所述第一路由器确定所述会话的所述一个或多个会话建立度量不满足所述会话的所述一个或多个会话性能要求;以及响应于确定所述会话的所述一个或多个会话建立度量不满足所述会话的所述一个或多个会话性能要求,由所述第一路由器并且沿着所述第二路径,转发所述客户端设备和所述网络服务实例之间的所述会话的所述网络业务,所述转发包括修改所述会话的所述正向分组流和所述反向分组流中的至少一个的第二分组以包括:包括沿着所述第二路径的所述多个路由器中的所述第一路由器的源地址和第三路由器的目的地地址的报头;以及指定所述会话的所述会话标识符元数据的所述部分。
16.在另一示例中,本公开描述了网络的多个路由器中的第一路由器,该第一路由器包括:处理电路装置;以及存储器,该存储器可操作地被耦合到所述处理电路装置,并且包括指令,所述指令被配置为使所述处理电路装置:接收客户端设备和服务器托管的网络服务实例之间的会话的一个或多个会话性能要求,所述会话包括正向分组流和反向分组流,其中所述第一路由器经由所述网络上的第一路径和所述网络上的第二路径被连接到所述网络服务实例,所述第二路径不同于所述第一路径,并且其中所述网络将所述客户端设备连接到所述网络服务实例;沿着所述第一路径,转发所述客户端设备和所述网络服务实例之间的所述会话的网络业务,所述转发包括修改所述会话的所述正向分组流和所述反向分组流中的至少一个的第一分组以包括:包括沿着所述第一路径的所述多个路由器中的所述第一路由器的源地址和第二路由器的目的地地址的报头;以及指定所述会话的会话标识符的元数据的部分;由所述第一路由器获取所述会话的一个或多个会话建立度量;确定所述
会话的所述一个或多个会话建立度量不满足所述会话的所述一个或多个会话性能要求;以及响应于确定所述会话的所述一个或多个会话建立度量不满足所述会话的所述一个或多个会话性能要求,沿着所述第二路径,转发所述客户端设备和所述网络服务实例之间的所述会话的所述网络业务,所述转发包括修改所述会话的所述正向分组流和所述反向分组流中的至少一个的第二分组以包括:包括沿着所述第二路径的所述多个路由器中的所述第一路由器的源地址和第三路由器的目的地地址的报头;以及指定所述会话的所述会话标识符元数据的所述部分。
17.在另一示例中,本公开描述了一种包括指令的非暂态计算机可读介质,所述指令当被执行时,被配置为使网络的多个路由器中的第一路由器的处理电路装置:接收客户端设备和服务器托管的网络服务实例之间的会话的一个或多个会话性能要求,所述会话包括正向分组流和反向分组流,其中所述第一路由器经由所述网络上的第一路径和所述网络上的第二路径被连接到所述网络服务实例,所述第二路径不同于所述第一路径,并且其中所述网络将所述客户端设备连接到所述网络服务实例;沿着所述第一路径,转发所述客户端设备和所述网络服务实例之间的所述会话的网络业务,所述转发包括修改所述会话的所述正向分组流和所述反向分组流中的至少一个的第一分组以包括:包括沿着所述第一路径的所述多个路由器中的所述第一路由器的源地址和第二路由器的目的地地址的报头;以及指定所述会话的会话标识符的元数据的部分;由所述第一路由器获取所述会话的一个或多个会话建立度量;确定所述会话的所述一个或多个会话建立度量不满足所述会话的所述一个或多个会话性能要求;以及响应于确定所述会话的所述一个或多个会话建立度量不满足所述会话的所述一个或多个会话性能要求,沿着所述第二路径,转发所述客户端设备和所述网络服务实例之间的所述会话的所述网络业务,所述转发包括修改所述会话的所述正向分组流和所述反向分组流中的至少一个的第二分组以包括:包括沿着所述第二路径的所述多个路由器中的所述第一路由器的源地址和第三路由器的目的地地址的报头;以及指定所述会话的所述会话标识符元数据的所述部分。
18.本公开的技术的一个或多个示例的细节在附图和下面的描述中阐述。本技术的其他特征、目的和优点将从说明书和附图中以及从权利要求书中显而易见。
附图说明
19.图1是示出根据本公开的技术的示例计算机网络系统的框图。
20.图2是示出根据本公开的技术的示例路由器的框图。
21.图3a和3b是示出根据本公开的技术的基于会话建立度量执行路径选择的示例计算机网络系统的框图。
22.图4是示出根据本公开的技术的示例操作的流程图。
23.在整个附图和说明书中,相同的附图标记指代相同的元件。
具体实施方式
24.图1是示出根据本公开的技术的示例计算机网络系统2的框图。在图1的示例中,计算机网络系统2包括服务提供商网络150a-150d(统称为“服务提供商网络150”),其被配置为提供到不同客户网络140a-140b(“客户网络140”)的广域网(wan)连接。服务提供商网络
150的路由器110a-110i(统称为“路由器110”)向与客户网络140相关联的客户端设备100和服务器103提供经由客户边缘设备102a-102b(统称为“ce设备102”)对服务提供商网络150的访问。在一些示例中,客户网络140a是企业网络。在一些示例中,客户网络140b是云服务提供商(csp)网络,其以服务器103托管的服务实例104的形式向客户端设备100提供网络服务。为了便于说明,客户网络140a被示出为具有单个客户端设备100。通常,客户网络140a包括许多客户端设备100,每个客户端设备100可以访问csp网络140b以访问一个或多个网络服务。通信链路16a-16g(统称为链路“16”)可以是以太网、atm或任何其他适合的网络连接。
25.在图1的示例中,ce设备102和路由器110被示为路由器。然而,本公开的技术可以使用任何路由器来实现,例如可以发送和接收网络业务的交换机、路由器、网关或其他适合的路由器。例如,客户网络140可以是用于企业的地理上分离的地点的网络。每个客户网络140可以包括附加的客户设备,例如一个或多个非边缘交换机、路由器、集线器、网关、诸如防火墙、入侵检测和/或入侵防御设备的安全设备、服务器、计算机终端、膝上型计算机、打印机、数据库、诸如蜂窝电话或个人数字助理的无线移动设备、无线接入点、网桥、电缆调制解调器、应用加速器或图1中未示出的其他路由器。图1所示的计算机网络系统2的配置仅是示例。例如,计算机网络系统2可以包括任意数目的客户网络140。然而,为了便于描述,图1中仅示出了客户网络140a-140b。
26.服务提供商网络150表示由一个或多个服务提供商拥有和运营的一个或多个可公开访问的计算机网络。尽管在图1的示例中,计算机网络系统2被示为包括多个互连的服务提供商网络150,但是在其他示例中,计算机网络系统2可以备选地包括提供客户网络140之间的连接的单个服务提供商网络。服务提供商通常是大型电信实体或公司。每个服务提供商网络150通常是大型第三层(l3)计算机网络,其中对层后面跟数字的引用是指开放系统互连(osi)模型中的对应层。每个服务提供商网络150在其本地支持如osi模型中所描述的l3操作的意义上是l3网络。常见的l3操作包括根据l3协议(例如网际协议(ip))执行的操作。在osi模型中,l3也被称为“网络层”,并且在本公开中,术语l3可以与短语“网络层”互换使用。
27.尽管未示出,但每个服务提供商网络150可以耦合到由其他提供商管理的一个或多个网络,并且可以因此形成大规模公共网络基础设施(例如互联网)的一部分。因此,客户网络140可以被视为互联网的边缘网络。每个服务提供商网络150可以向客户网络140内的计算设备(例如,客户端设备100和目的地设备103)提供对互联网的访问,并且可以允许客户网络140内的计算设备彼此通信。
28.虽然为便于解释而未示出附加路由器,但应当理解,系统2可以包括附加网络和/或计算设备,例如一个或多个附加交换机、路由器、集线器、网关、诸如防火墙、入侵检测和/或入侵防御设备的安全设备、服务器、计算机终端、膝上型计算机、打印机、数据库、诸如蜂窝电话或个人数字助理的无线移动设备、无线接入点、网桥、电缆调制解调器、应用加速器或其他路由器。此外,尽管系统2的元件被示为直接耦合,但是应当理解,可以沿着任何网络链路16包括一个或多个附加网络元件,使得系统2的网络元件不是直接耦合的。
29.每个服务提供商网络150通常为客户网络140提供多个住宅和企业服务,包括住宅和企业级数据服务(其通常被称为“互联网服务”,因为这些数据服务允许访问被称为互联网的公共可访问网络的集合)、住宅和企业级电话和/或语音服务、以及住宅和企业级电视
服务。
30.基于会话的路由
31.在一些示例中,路由器110可以实现使每个路由器110能够独立地执行路径选择和流量工程的有状态的、基于会话的路由方案。使用基于会话的路由可以使路由器110能够避免使用集中式控制器(诸如软件定义网络(sdn)控制器)来执行路径选择和流量工程。以此方式,对于使用sdn控制器将不可行的大型网络,路由器110可以更有效并且可伸缩。此外,使用基于会话的路由可以使路由器110能够避免使用隧道,从而通过消除在隧道端点处执行封装和解封装的需要而节省相当大的网络资源。在一些示例中,路由器110将基于会话的路由实现为由瞻博网络公司(juniper network,inc.)提供的安全矢量路由(svr)。
32.在图1的示例中,系统2的客户端设备100建立与服务实例104的会话40。路由器110通过在客户端设备100和服务实例104之间传输网络业务来促进会话40的建立。在一些示例中,客户端设备100可以被认为是“源”设备,因为客户端设备100发起客户端设备100和服务实例104之间的会话40,例如,客户端设备100是会话的转发流的第一分组的“源”。会话40包括从客户端设备100发起并去往由服务器103托管的服务实例104的正向分组流,以及从服务实例104发起并去往客户端设备100的反向分组流。会话40的正向流穿过第一路径,第一路径包括例如,客户端设备100、ce设备102a、路由器110a、110d和110e-110i、ce设备102b和服务器103。如下文更详细描述的,在确定会话40的会话建立度量不能满足会话性能要求之后,路由器110可以动态地选择第二路径来转发会话40(在图1中表示为会话40’)的网络业务。会话40’的正向流穿过第二路径,第二路径包括例如,客户端设备100、ce设备102a、路由器110a、110c和110e-110i、ce设备102b和服务器103。如图1的示例所示,第一路径和第二路径的至少一部分是相同的(例如,第一和第二路径两者都包括路由器110a和110e-110i)。然而,第一和第二路径的不同之处在于,第一路径穿过路由器110d,而第二路径穿过路由器110c。
33.客户端设备100可以根据包括tcp、tls、udp或icmp等的一个或多个通信会话协议来建立会话40。例如,为了根据tcp建立会话40以使得可以根据tcp来交换数据,客户端设备100和服务实例104执行三次握手。客户端设备100向服务实例104发送包括“syn”标志的第一分组。服务实例104通过利用包括“syn-ack”标志的第二分组响应客户端设备100,来确认第一分组的接收。客户端设备100通过利用包括“ack”标志的第三分组响应服务实例104,来确认第二分组的接收。在发送第三分组之后,根据tcp建立会话40,并且客户端设备100和服务实例104可以经由会话40彼此交换数据。关于tcp的附加示例信息在如下文献中进行了描述:“transmission control protocol”(传输控制协议),请求注解(rfc)793,互联网工程任务组(ietf),1981年9月,可从https://tools.ietf.org/html/rfc793获得,其全部内容通过引用并入本文。
34.为了根据tls会话建立会话40,客户端设备100和服务实例104执行tls握手以在传输数据之前建立安全连接。tls握手分三个阶段发生:密钥交换阶段、服务器参数阶段和认证阶段。在密钥交换阶段,客户端设备100发送包括密码和密钥信息的clienthello(客户端问候)消息。服务实例104利用serverhello(服务器问候)消息进行响应,其指示协商的连接参数。clienthello和serverhello的组合确定共享密钥。在服务器参数阶段期间,服务实例104发送encryptedextensions(加密扩展)消息,随后发送certificaterequest(证书请求)
消息以建立服务器参数。最后,在认证阶段,客户端设备100和服务实例104交换认证消息。具体地,服务实例104发送可选certificate(证书)消息、certificateverify(证书验证)消息和finished(完成)消息。在接收到来自服务实例104的消息时,客户端设备100利用其authentication(认证)消息来响应,例如certificate(证书)消息、certificateverify(证书验证)消息(如果被请求的话)和finished(完成)消息。在客户端设备100发送finished(完成)消息之后,握手完成,并且客户端设备100和服务实例104可以根据tls经由会话40彼此交换数据。关于tls的附加示例信息在如下文献中进行了描述:“the transport layer security(tls)protocol version 1.2”(传输层安全(tls)协议版本1.2),rfc 5246,ietf,2008年8月,可在https://tools.ietf.org/html/rfc5246获得;以及“the transport layer security(tls)protocol version 1.3”(传输层安全(tls)协议版本1.3),rfc 8446,ietf,2018年8月,可在https://tools.ietf.org/html/rfc8446获得,其每一个的全部内容通过引用并入本文。
35.udp是无连接协议,因为客户端设备100在发送数据之前不验证服务实例104能够接收数据。为了根据udp建立会话40,客户端设备100向服务实例104发送第一分组。在客户端设备100接收到来自服务实例104的任何分组时,会话40可以被认为是根据udp“建立的”,这意味着服务实例104成功地接收来自客户端设备100的第一分组,响应,并且客户端设备100能够接收来自服务实例104的响应。关于udp的附加示例信息在如下文献中进行了描述:“user datagram protocol”(用户数据报协议),rfc 768,ietf,1980年8月28日,可从https://tools.ietf.org/html/rfc768获得,其全部内容通过引用并入本文。
36.与传输协议tcp、tls或udp不同,icmp是一种控制协议。icmp分组不携带应用数据,而是用于诊断、控制或错误消息。与udp一样,icmp是无连接协议,因为客户端设备100在发送icmp消息之前不验证服务实例104能够接收数据。为了根据icmp建立会话40,客户端设备100向服务实例104发送第一分组。在客户端设备100接收到来自服务实例104的任何分组时,会话40可以被认为是根据icmp“建立的”,这意味着服务实例104成功地接收来自客户端设备100的第一分组,响应,并且客户端设备100能够接收来自服务实例104的响应。关于icmp的附加示例信息在如下文献中进行了描述:“internet control message protocol”(互联网控制消息协议),rfc 792,1981年9月,可从https://tools.ietf.org/html/rfc792获得,其全部内容通过引用并入本文。
37.在图1的示例中,当路由器110a接收到从客户端设备100发起并去往服务器103的正向分组流的分组时,路由器110a确定该分组是否属于新会话(例如,是会话40的“第一”分组或“引导”分组)。在一些示例中,路由器110a确定第一分组的源地址、源端口、目的地地址、目的地端口和协议是否与会话表中的条目匹配。
38.如果不存在这样的条目,则路由器110a确定该分组属于新会话,并在会话表中创建条目。此外,如果该分组属于新会话,则路由器110a可以为会话40生成会话标识符。会话标识符可以包括例如,客户端设备100的源地址和源端口、服务器103的目的地地址和目的地端口、以及第一分组使用的协议。路由器110a可以使用会话标识符来将后续分组标识为属于同一会话。
39.在一些示例中,路由器110执行会话40的状态路由。这意味着路由器110沿着相同的正向网络路径顺序地转发会话40的正向分组流的每个分组。如上所述,“相同”的正向路
径指的是在发起分组的设备和分组去往的设备之间形成一段或至少一部分(而不一定是发起分组的设备和分组去往的设备之间的整个网络路径)的相同路由器110。此外,路由器110沿着相同的返回网络路径顺序地转发会话40的返回流的每个分组。会话40的正向分组流的正向网络路径和会话40的返回流的返回网络路径可以是相同的路径,也可以是不同的路径。通过确保沿着相同路径顺序地转发流的每个分组,路由器110在每个路由器110处维护整个流的状态,从而使得能够使用有状态分组服务,例如深度分组检测(dpi)。
40.在图1的示例中,可以建立从入口路由器110a通过中间路由器110c-110h到出口路由器110i的有状态路由会话。在该示例中,路由器110a确定第一分组是未修改的分组和新会话40的第一分组。路由器110a修改第一分组以包括指定会话标识符的元数据(例如,原始源地址、源端口、目的地地址和目的地端口)。路由器110a替换修改后的第一分组的报头,以指定作为路由器110a的地址的源地址、作为路由器110a向服务器103转发修改后的第一分组的端口的源端口、作为路由器110a将第一分组转发到的下一跳的地址(例如,路由器110d的地址)的目的地地址、以及作为路由器110a将第一分组转发到的下一跳的端口(例如,路由器110d的端口)的目的地端口。
41.路由器110a还可以标识与会话40相关联的网络服务。例如,路由器110a可以将会话的源地址、源端口、目的地地址或目的地端口中的一个或多个与服务地址和端口信息的表进行比较,以标识与该会话相关联的服务。网络服务的示例包括超文本传输协议(http)、防火墙服务、代理服务、分组监测或度量服务等。例如,路由器110a可以确定会话40的正向分组流指定分配给服务器103的服务实例104的目的地地址和目的地端口,其是特定网络服务的实例。此后,路由器110a可以存储会话40与所标识的网络服务之间的关联。作为另一示例,如果会话40的源端口和/或目的地端口是80,则路由器110a可以确定会话40与http服务相关联。在其他示例中,路由器110a可以确定会话40的源地址、源端口、目的地地址或目的地端口中的一个或多个属于指示特定服务与会话40相关联的地址或端口的块。
42.在一些示例中,路由器110a使用为会话40确定的网络服务来选择正向路径,用于向服务器103转发会话40的正向分组流的第一分组和每个后续分组。以此方式,路由器110a可以执行服务特定路径选择,以选择最适合服务要求的网络路径。与使用sdn控制器执行路径选择的网络拓扑不同,每个路由器110执行路径选择。此外,与仅能够在流级别做出路由决策的传统路由器不同,使用基于会话的路由使得每个路由器110能够在服务级别或应用级别做出路由决策。
43.路由器110a将修改后的第一分组转发到路由器110d。此外,路由器110a存储会话40的会话标识符,使得当接收到会话40的后续分组时,路由器110a可以将后续分组标识为属于同一会话40,并且沿着与第一分组相同的路径转发后续分组。
44.中间路由器110d接收修改后的第一分组,并且确定修改后的第一分组是否包括指定会话标识符的元数据。响应于确定修改后的第一分组包括指定会话标识符的元数据,中间路由器110d确定路由器110d不是入口设备,使得路由器110d不附带指定会话标识符的元数据。
45.如上所述,关于路由器110a,路由器110d通过确定第一分组的源地址、源端口、目的地地址、目的地端口和协议是否与会话表中的条目匹配来确定该分组是否属于新会话(例如,是会话的“第一”分组或“引导”分组)。如果不存在这样的条目,则路由器110d确定该
分组属于新会话,并且在会话表中创建条目。此外,如果该分组属于新会话,则路由器110d为该会话生成会话标识符。路由器110d用来标识第一分组的会话的会话标识符可以不同于路由器110a用来标识第一分组的相同会话的会话标识符,因为每个路由器110a、110d使用第一分组的报头源地址、源端口、目的地地址和目的地端口来生成会话标识符,并且当每个路由器110沿着正向路径转发第一分组时,该报头信息可以由每个在前路由器110修改。此外,每个路由器110可以存储该报头信息,以标识前一个路由器110(或“路点”)和下一个路由器110(或“路点”),使得每个路由器110可以为会话的每个后续分组重建相同的正向路径和反向路径。
46.路由器110d替换修改后的第一分组的报头,以指定作为路由器110d的地址的源地址、作为路由器110d向服务器103转发修改后的第一分组的端口的源端口、作为路由器110d将第一分组转发到的下一跳的地址(例如,沿着第一路径的会话40的路由器110e的地址)的目的地地址、以及作为路由器110d将第一分组转发到的下一跳的端口(例如,路由器110e的端口)的目的地端口。路由器110d将修改后的第一分组转发到路由器110d。此外,路由器110d存储会话的会话标识符,使得当接收到会话的后续分组时,路由器110d可以将后续分组标识为属于同一会话,并且沿着与第一分组相同的路径转发后续分组。
47.后续中间路由器110e-110h以与路由器110a和110d类似的方式处理修改后的第一分组,使得路由器110沿着与第一分组相同的路径转发会话的后续分组。此外,每个路由器110存储会话的会话标识符,其可以包括沿着网络路径的先前路由器110的标识。因此,每个路由器110可以使用会话标识符沿着相同的网络路径将会话的反向分组流的分组转发回客户端设备100。
48.可以将会话的正向分组流的分组转发到分组流的目的地的路由器110是出口路由器,或者称为“终端”路由器。在前述示例中,路由器110i是终端路由器,因为路由器110i可以将分组转发到ce设备102b以转发到服务器103。路由器110i接收修改后的第一分组,该分组包括指定会话标识符的元数据(例如,原始源地址、源端口、目的地地址和目的地端口)。路由器110i通过确定修改后的引导分组的元数据中指定的目的地源地址和目的地源端口对应于路由器110i可到达的目的地(例如,经由ce设备102b可到达服务器103),来将修改后的第一分组标识为去往在路由器110i处终止的服务。路由器110i通过从修改后的第一分组中移除元数据并且使用元数据来修改第一分组的报头以指定原始源地址、源端口、目的地地址和目的地端口来恢复原始第一分组。路由器110i将恢复的第一分组转发到ce设备102b,用于转发到服务器103。因此,基于会话的路由的使用可以形成通过路径“段”(例如,每个路点之间的端到端路由向量)互连的一系列路点(例如,路由器110)。
49.关于基于会话的路由和svr的附加信息如下文献中进行了描述:美国专利第9,729,439号,题为“computer network packet flow controller”(计算机网络分组流控制器),于2017年8月8日授权;美国专利第9,729,682号,题为“network device and method for processing a session using a packet signature”(使用分组签名处理会话的网络设备和方法),于2017年8月8日授权;美国专利第9,762,485号,题为“network packet flow controller with extended session management”(具有扩展会话管理的网络分组流控制器),于2017年9月12日授权;美国专利号9,871,748,题为“router with optimized statistical functionality”(具有优化统计功能的路由器),于2018年1月16日授权;美国
专利9,985,883,题为“name-based routing system and method”(基于名称的路由系统和方法),于2018年5月29日授权;美国专利号10,200,264,题为“link status monitoring based on packet loss detection”(基于分组丢失检测的链路状态监测),于2019年2月5日授权;美国专利第10,277,506号,题为“stateful load balancing in a stateless network”(无状态网络中的有状态负载均衡),于2019年4月30日授权;美国专利第10,432,522号,题为“network packet flow controller with extended session management”(具有扩展会话管理的网络分组流控制器),于2019年10月1日授权;以及美国专利申请公开第2020/0403890号,题为“in-line performance monitoring”(内嵌性能监测),于2020年12月24日公开,其每一个的全部内容通过引用整体并入本文。
50.交换服务和拓扑状态信息
51.在一些示例中,为了实现基于会话的路由,每个路由器110维护每个其他路由器110的服务和拓扑状态信息的本地存储库。服务和拓扑状态信息包括从每个路由器110可到达的服务,以及来自每个路由器的用于到达这些服务的网络拓扑。每个路由器110可以将从路由器110可到达的服务的改变和/或用于到达服务的网络拓扑的改变从路由器发送到中央存储库,例如服务器。此外,每个路由器110可以从中央存储库接收系统2中的每个其他路由器110的服务和拓扑状态信息。
52.在前述示例中,路由器110a接收分组,为包括该分组的正向分组流确定会话40,确定与会话40相关联的服务,并且选择用于转发该分组的网络路径。路由器110a可以使用其每个路由器110的服务和拓扑状态信息的本地副本来选择用于转发分组的网络路径。例如,路由器110a可以使用与分组相关联的所标识的服务和用于到达所标识的服务的网络拓扑,来选择符合服务的sla要求或其他会话性能要求的网络路径。路由器110a然后可以沿着所选择的路径转发该分组和会话40的正向分组流的后续分组。以此方式,路由器110a可以执行服务特定路径选择,因为路由器110可以使用特定于与分组相关联服务的标准来选择最适合服务要求的网络路径。
53.在一些示例中,路由器110的接口可以被分配给一个或多个“邻域”。“邻域”被定义为应用于路由器110的接口的标签。同一邻域内的路由器110能够彼此形成对等关系。例如,具有应用了邻域标签的接口的每个路由器110通过第三层网络可到达具有应用了相同邻域标签的接口的每个其他路由器110。在一些示例中,一个或多个邻域可以被聚集成“地区(district)”。地区是一个或多个邻域的逻辑分组。通常,自治系统(as)(本文也称为“授权机构”)可以被划分为一个或多个地区,每个地区包括一个或多个邻域。
54.在一些示例中,每个路由器110仅为相同邻域内的那些其他路由器110维护服务和拓扑状态信息的本地存储库。在一些示例中,每个路由器110仅维护相同邻域地区内的那些其他路由器110的服务和拓扑状态信息的本地存储库。作为示例,每个服务提供商网络150可以被认为是不同的“地区”,其中每个服务提供商网络150内的每个子域可以被认为是该地区内的邻域。在该示例中,服务提供商网络150a内的每个路由器110a和110b可以仅维护彼此的服务和拓扑状态信息,而不维护路由器110c-110i的服务和拓扑状态信息。类似地,服务提供商网络150b内的每个路由器110d和110c可以仅维护彼此的服务和拓扑状态信息,而不维护路由器110a-110b或110e-110i的服务和拓扑状态信息。在其他示例中,管理员可以将一个或多个服务提供商网络150分配到适合网络系统2的需要的一个或多个地区、一个
或多个邻域、或地区和邻域的组合。
55.关于服务和拓扑状态信息的交换的附加信息在如下文献中进行了描述:美国专利申请公开第2020/0366590号,题为“central authority for service and topology exchange”(服务和拓扑交换的中央授权机构),于2020年11月19日公开;美国专利申请公开第2020/0366599号,题为“source-based routing”(基于源的路由),于2020年11月19日公开;美国专利申请公开第2020/0366598号,题为“service and topology exchange protocol”(服务和拓扑交换协议),于2020年11月19日公开;美国专利申请公开第2020/0366589,题为“routing using segment-based metrics”(使用基于段的度量的路由),于2020年11月19日公开;以及美国专利申请第16/050,722号,题为“network neighborhoods for establishing communication relationships between communication interfaces in administrative domain”(用于在管理域中的通信接口之间建立通信关系的网络邻域),于2018年7月31日提交,其每一个的全部内容通过引用整体并入本文。
56.使用会话建立度量的会话监测。
57.根据本公开的技术,一个或多个路由器110使用会话40的一个或多个会话建立度量沿着客户端设备100和服务实例104之间的第一路径监测会话40。第一路径包括例如,路由器110a、110d和110e-110i。客户端设备100可以尝试与服务实例104建立会话40以访问由服务实例104实例化的网络服务。在该示例中,会话40包括从客户端设备100发起并去往服务实例104的正向流,以及从服务实例104发起并去往客户端设备100的反向流。此外,路由器110经由穿越路由器110a、110d和110e-110i的第一路径传输会话40。在建立会话40之后,路由器110可以沿着客户端设备100和服务实例104之间的正向路径和反向路径转发业务。为了建立会话40,路由器110可以使用通信会话协议,诸如tcp、tls、udp或icmp。
58.在一些示例中,路由器110a被配置为对客户端设备100和服务实例104之间的会话40执行基于会话的路由。例如,路由器110a修改会话40的正向分组流和反向分组流中的至少一个的第一分组,以包括报头以及指定会话40的会话标识符的元数据的部分,该报头包括沿着第一路径的路由器110a的源地址和路由器110d的目的地地址,如上所述。对于会话40,路由器110d修改第一分组以包括报头以及指定会话40的会话标识符的元数据的部分,该报头包括沿着第一路径的路由器110d的源地址和路由器110e的目的地地址,以此类推。
59.在一些示例中,根据会话性能要求(例如,sla要求),会话40可能无法建立,会话40可能最初被建立但停止建立,或者会话40可能性能不佳。即使在路由器110a不能标识其对等网络设备的问题(例如,链路16a、16b以及ce设备102a和路由器110d以及路由器110的接口正常工作)的情况下,也可能发生这种情况。
60.作为其中会话40是tls会话的图示,客户端设备100可以尝试与服务实例104建立tls会话40。服务实例104可以成功地完成tls握手的密钥交换阶段和服务器参数阶段,但由于路由器110d和110e之间的链路16d的不稳定性而无法完成tls握手的认证阶段。因此,即使路由器110a不能标识与其对等网络设备的链路、网络或传输级别(例如,osi参考模型第2、3或4层)的问题(例如,链路16a、16b,以及ce设备102a和路由器110d以及路由器110的接口正常工作),客户端设备100和服务实例104之间的会话40也无法建立。通常,路由器可能无法在会话级别(例如,osi参考模型第5层)检测到问题,因此可能无法在到下一跳的链路和接口正常操作的会话级别重新路由网络业务。此外,在第2、3或4层重新路由业务,例如通
过终止到路由器110d的路径16b,可能会扰乱与会话40共享路径16b(或路由器110a的相同接口)但保持可操作的其他会话。
61.根据本公开的技术,路由器110a生成会话40的一个或多个会话建立度量。路由器110a获取会话建立度量,并且使用这些度量来确定会话40是否不满足会话性能要求。此外,路由器110a可以使用会话度量和会话性能要求来确定是否将客户端设备100和服务实例104之间的会话40的网络业务从第一路径切换到第二路径,以便确保符合会话性能要求,而不会中断与性能不佳的会话40共享相同接口或路径的其他可操作会话。
62.例如,路由器110a获取客户端设备100和服务实例104之间的会话40的会话建立度量。会话建立度量描述与会话40的成功或不成功建立相关的数据。度量可以描述例如与会话40的成功或不成功建立相关的数据。例如,会话建立度量可以包括建立会话40所经过的时间、会话40成功建立的次数、会话40由于超时而未能建立的次数、会话40由于目的地不可达而未能建立的次数、会话40在tcp会话建立之前关闭的次数、或者会话40在tls会话建立之前关闭的次数等。在一些示例中,会话建立度量包括滑动时间窗口上的度量,滑动窗口的长度可由管理员配置。例如,路由器110a可以监测会话40的状态以确定是否完成了tcp或tls会话握手,或者是否针对udp或icmp会话发送了返回流的第一返回分组。路由器110i可以通过在建立之前、期间或之后监测会话40的性能和/或状态来导出会话建立度量,如下面更详细地描述的。在一些示例中,路由器110a获取客户端设备100和服务实例104之间的多个会话的会话建立度量。参照图2提供关于监测会话40的状态的附加描述。
63.在一些示例中,路由器110a可以接收会话40的会话性能要求。在一些示例中,会话性能要求可以是会话40的一个或多个sla要求。在一些示例中,一个或多个会话性能要求指定以下中的一个或多个:建立会话所允许的最大时间;对于建立会话的预定尝试次数,会话成功建立需要的最小次数;在预定时间上会话可能由于超时而未能建立的最大次数;在预定时间上会话可能由于目的地不可达而未能建立的最大次数;在预定时间上会话可能在tcp会话建立之前关闭的最大次数;或者在预定时间上会话可能在tls会话建立之前关闭的最大次数等等。
64.路由器110a将会话40的会话建立度量与会话40的会话性能要求进行比较。响应于确定度量不满足会话40的会话性能要求,路由器110a选择包括路由器110a、110c和110e-110i的第二路径,用于转发客户端设备和网络服务实例之间的会话40的网络业务(在图1中被示为会话40’)。在会话40成功建立但不符合sla要求的一些示例中,路由器110a可以在将会话40作为会话40’转移到第二路径之前,继续使用第一路径转发客户端设备100和网络服务实例104之间的会话40的网络业务。在切换到使用第二路径之后,路由器110a转发客户端设备100和网络服务实例104b之间的会话40’的网络业务。
65.在一些示例中,路由器110a被配置为针对客户端设备100和服务实例104之间的会话40’执行基于会话的路由。例如,路由器110a修改会话40’的正向分组流和反向分组流中的至少一个的第二分组,以包括报头以及指定会话40’的会话标识符的元数据的部分,该报头包括沿着第二路径的路由器110a的源地址和路由器110d的目的地地址,如上所述。对于会话40’,路由器110c修改第二分组以包括报头以及指定会话40’的会话标识符的一部分元数据,该报头包括沿着第二路径的路由器110c的源地址和路由器110e的目的地地址,依此类推。
66.如图1的示例所示,单个服务实例104由服务器103托管。在图1中未示出的其他示例中,多个服务器103中的每一个可以托管相同或不同服务类型的多个服务实例。在一些示例中,与会话40穿过的第一路径相关联的正向路径、反向路径或路由器110的接口中的至少一个不同于与会话40’穿过的第二路径相关联的正向路径、反向路径或路由器110的接口中的至少一个。
67.在图1的示例中,入口路由器110a基于这样的会话建立度量来生成会话建立度量并且执行流量工程,如上所述。然而,在其他示例中,其他路由器,诸如中间路由器110d-110h或出口路由器110i,可以根据本公开的技术,附加地或备选地生成会话建立度量并且基于会话建立度量执行流量工程和路径选择。
68.在一些示例中,路由器110a将传输会话40的网络业务的第一路径从会话负载均衡器中移除,该会话负载均衡器将与网络服务相关联的客户业务负载均衡到不同路径。例如,会话负载均衡器可以包括入口网络设备110a和出口网络设备110i之间的多条路径。在从客户端接收到向客户端提供对由服务实例104实例化的网络服务的访问的请求后,会话负载均衡器选择通过(多个)服务提供商网络150的可用路径来将客户端设备100连接到服务实例104。通过将第一路径从会话负载均衡器中移除,路由器110a可以避免将客户端设备100分配给不满足会话40的sla要求的路径。在一些示例中,路由器110a可以使用会话建立度量来选择一个或多个会话、检测业务的黑洞化、确定会话不满足sla要求、或者跨不同会话对与网络服务相关联的客户业务进行负载均衡。
69.本公开的技术可以使路由器110a能够监测会话40的状态并且生成与会话40的建立相关的度量。与可能仅能够在链路、网络或传输级别(例如,osi参考模型第2、3或4层)执行路径选择和路由的其他路由器不同,路由器110a可以使用这样的度量来在会话级别(例如,osi参考模型第5层)执行路径选择和路由。因此,路由器110a可以在网络系统2内提供客户业务的更有效且更细粒度的路由。
70.此外,路由器110a可以使用会话建立度量来确定会话40是否满足sla要求,并且作为响应,选择不同的路径或接口用于传输与会话40(例如,会话40’)相关联的网络业务,以便确保符合sla。因此,即使在路由器110a不能在链路、网络或传输级别(例如,osi参考模型第2、3或4层)检测接口或路径的问题的情况下,路由器110a也可以在会话级别(例如,osi参考模型第5层)检测网络问题,并执行动作以确保符合会话级sla要求。
71.图2是示出根据本公开的技术的示例性路由器110的框图。一般而言,路由器110可以是图1的路由器110之一的示例。在该示例中,路由器110包括接口卡226a-226n(“ifc 226”),其经由入站链路228a-228n(“入站链路228”)接收分组并且经由出站链路230a-230n(“出站链路230”)发送分组。ifc 226通常通过多个接口端口耦合到链路228、230。路由器110还包括控制单元202,该控制单元202确定接收到的分组的路由,并且相应地经由ifc 226转发分组。
72.控制单元202可以包括路由引擎204和分组转发引擎222。路由引擎204用作路由器110的控制平面,并且包括提供用于执行多个并发进程的多任务操作环境的操作系统。路由引擎204与其他路由器(例如,图1的路由器110)通信,以建立和维护计算机网络,例如图1的计算机网络系统2,用于在一个或多个客户设备之间传输网络业务。路由引擎204的路由协议守护进程(rpd)208执行软件指令以实现一个或多个控制平面网络协议212。例如,协议
212可以包括一个或多个路由协议,诸如边界网关协议(bgp)220,用于与其他路由设备交换路由信息并且用于更新路由信息库(rib)206、多协议标签交换(mpls)协议214和互联网组管理协议(igmp)221。协议212还可以包括一个或多个通信协议,诸如tcp、udp、tls或icmp。
73.rib 206可以描述路由器110所驻留的计算机网络的拓扑,并且还可以包括通过计算机网络中的共享树的路由。rib 206描述了计算机网络内的各种路由以及每个路由的适当的下一跳,即沿着每个路由的相邻路由设备。路由引擎204分析存储在rib 206中的信息,并为转发引擎222生成转发信息,该转发信息存储在转发信息库(fib)224中。例如,fib 224可以将网络目的地与特定的下一跳和对应的ifc 226以及输出链路230的物理输出端口相关联。fib 224可以是编程到专用转发芯片中的基数树、一系列表、复杂数据库、链表、基数树、数据库、平面文件或各种其他数据结构。
74.fib 224还可以包括查找结构。在给定诸如地址的关键字的情况下,查找结构可以提供一个或多个值。在一些示例中,一个或多个值可以是一个或多个下一跳。下一跳可以被实现为微码,其在被执行时执行一个或多个操作。一个或多个下一跳可以是“链接的”,使得链接的下一跳的集合在被执行时为相应的不同的下一跳执行操作集合。这种操作的示例可以包括将一个或多个服务应用于分组、丢弃分组、和/或使用接口和/或由一个或多个下一跳标识的接口转发分组。
75.会话表235存储用于标识会话的信息。例如,服务表232包括指定会话标识符的一个或多个条目。在一些示例中,会话标识符包括源地址、源端口、目的地地址、目的地端口或者与会话的正向流和/或反向流相关联的协议中的一个或多个。如上所述,当路由引擎204接收到从客户端设备100发起并去往图1的服务器103的正向分组流的分组时,路由引擎204确定该分组是否属于新会话(例如,是会话40的“第一”分组或“引导”分组)。为了确定分组是否属于新会话,路由引擎204确定会话表235是否包括对应于第一分组的源地址、源端口、目的地地址、目的地端口和协议的条目。如果存在条目,则该会话不是新会话。如果不存在条目,则该会话是新的,并且路由引擎204为该会话生成会话标识符并且将该会话标识符存储在会话表235中。此后,路由引擎204可以使用会话表235中存储的会话的会话标识符来将后续分组标识为属于同一会话。
76.服务表232存储路由引擎204可以用来标识与会话相关联的服务的信息。例如,服务表232包括一个或多个条目,其指定服务标识符以及与服务相关联的源地址、源端口、目的地地址、目的地端口或协议中的一个或多个。在一些示例中,路由引擎204可以利用接收到的分组的会话的源地址、源端口、目的地地址、目的地端口或协议中的一个或多个来查询服务表232,以确定与会话相关联的服务。例如,路由引擎204可以基于服务表232中的源地址、源端口、目的地地址、目的地端口或协议与会话标识符所指定的源地址、源端口、目的地地址、目的地端口或协议的对应关系来确定服务标识符。路由引擎204基于与分组相关联的服务来检索与所标识的服务相对应的一个或多个服务策略234。服务策略可以包括例如,路径故障转移策略、动态主机配置协议(dhcp)标记策略、流量工程策略、与会话相关联的网络业务的优先级等。路由引擎204将对应于与分组相关联的服务的一个或多个服务策略234应用于分组。
77.根据本公开的技术,路由引擎204生成用于在图1的客户端设备100和图1的服务器103的一个或多个服务实例104之间建立会话的度量236。路由引擎204可以使用用于会话建
立度量236来选择一个或多个会话、检测业务的黑洞化、确定会话不满足sla要求、跨不同路径对与网络服务相关联的客户业务进行负载均衡、或者执行路径选择等。
78.例如,路由引擎204接收针对客户端设备100和网络服务实例104之间的图1的会话40的会话性能要求238。在一些示例中,会话性能要求238可以包括会话40的一个或多个sla要求。在一些示例中,路由引擎204从管理员或协调设备(例如,软件定义网络(sdn)控制器)接收会话性能要求238。
79.在一些示例中,一个或多个会话性能要求指定以下中的一个或多个:建立会话所允许的最大时间;对于建立会话的预定尝试次数,会话成功建立需要的最小次数;在预定时间上会话可能由于超时而未能建立的最大次数;在预定时间上会话可能由于目的地不可达而未能建立的最大次数;在预定时间上会话可能在tcp会话建立之前关闭的最大次数;或者在预定时间上会话可能在tls会话建立之前关闭的最大次数等等。
80.路由引擎204经由ifc 226a沿着第一路径转发与客户端设备100和网络服务实例104之间的会话40相关联的网络业务。会话的示例包括tcp会话、tls会话、udp会话、icmp会话等。路由引擎204获取会话40的建立的度量236。在一些示例中,路由引擎204的会话状态监控器242监测会话40的状态,以确定会话40是否成功建立。例如,会话状态监控器242可以监测会话40的状态,以确定tcp或tls会话握手是否完成,或者是否针对udp或icmp会话发送了返回流的第一返回分组。在一些示例中,路由引擎204可以通过经由会话状态监控器242监测会话40在建立之前、期间或之后的性能和/或状态来导出会话建立度量。
81.这些度量可以描述例如与会话40的成功或不成功建立有关的数据、和/或会话的性能(例如,时延、抖动、分组丢失等)。例如,会话建立度量可以包括建立会话40所经过的时间、会话40成功建立的次数、会话40由于超时而未能建立的次数、会话40由于目的地不可达而未能建立的次数、会话40在tcp会话建立之前关闭的次数、或者会话40在tls会话建立之前关闭的次数等。在一些示例中,会话建立度量包括滑动时间窗口上的度量,滑动窗口的长度可由管理员配置。
82.服务实例性能的关键指示符是在例如客户端设备100和托管服务实例104的服务器103之间建立tcp会话所需的时间。该会话建立度量实际上是客户端设备100或服务实例104在会话建立之后接收第一数据分组所需的时间。该度量可以为路由决策提供比分组传输速率更有用的信息,因为建立tcp会话所需的时间既是定向的,也是端到端的。重要的是,路由引擎204可以使用该信息作为sla遵从性的度量,以影响路由引擎204的路径选择。
83.路由引擎204在每服务、每接口、每目的地和/或每业务类别的基础上创建和收集会话建立度量。这种粒度级别提供了关于路由引擎204的网络处理和性能如何影响应用行为的更准确的信息。在一些示例中,路由引擎204在诸如tcp、udp、icmp和tls的基于协议的桶中收集会话建立度量。如上所述,每个协议自己确定会话变为建立需要满足哪些资格。接着,路由引擎204对这些类型的会话中的每一个应用特定于协议和/或特定于应用的处理,这些类型的会话被认为是建立的。
84.根据本公开的技术,路由引擎204的会话状态监控器242根据会话的协议来监测每个会话的状态。例如,会话状态监控器242能够根据相关协议的状态机来确定每个会话的状态,以确定会话是否已经建立。路由引擎204基于与会话建立(或会话建立失败)相关的各种数据来生成会话建立度量。
85.例如,如上所述,为了建立tcp会话,使得可以根据tcp交换数据,客户端设备100和服务实例104例如执行三次tcp握手。客户端设备100向服务实例104发送第一分组(由路由器110传输),该第一分组包括“syn”标志。服务实例104通过利用包括syn-ack标志的第二分组(由路由器110传输的)来响应客户端设备100,以确认第一分组的接收。客户端设备100通过利用包括“ack”标志的第三分组来响应服务实例104,以确认第二分组的接收。在发送第三分组之后,tcp会话被建立,使得客户端设备100和服务实例104可以经由该tcp会话彼此交换数据。进一步根据tcp,响应于从客户端设备100发送到服务实例104的每个分组,服务实例104利用确认分组进行响应(反之亦然)。会话状态监控器242监测由客户端设备100和服务实例104执行的tcp握手的状态,以监测tcp握手的进度。在会话状态监控器242确定客户端设备100和服务实例104已经完成会话的tcp握手之后,当会话状态监控器242检测到包含来自例如客户端设备100和服务实例104之一的数据有效载荷的第一分组的确认时,会话状态监控器242确定tcp会话被建立。在客户端设备100和服务实例104已经完成会话的tcp握手之后,检测到包含数据有效载荷的第一分组的确认所需的时间在本文中被称为tcp会话的“到第一数据分组的时间”。
86.在一些示例中,会话状态监控器242对tcp协议的状态机进行建模,以监测tcp会话的建立进度。在一些示例中,会话状态监控器242确定以下中的一个或多个:tcp会话的到第一数据分组的时间、tcp会话的到达建立状态的最小时间、tcp会话的到达建立状态的最大时间、tcp会话的到达建立状态的平均时间、到达建立状态的tcp会话的数目的计数、由于超时而未能建立的tcp会话的数目的计数、由于目的地不可达而未能建立的tcp会话的数目的计数、或者在建立之前关闭的tcp会话的数目的计数。
87.作为另一示例,为了建立tls会话以使得可以根据tls交换数据,客户端设备100和服务实例104执行三次tls握手,包括密钥交换阶段、服务器参数阶段和认证阶段。会话状态监控器242监测由客户端设备100和服务实例104执行的tls握手的状态,以监测tls握手的进度。在会话状态监控器242确定客户端设备100和服务实例104已经完成会话的tls握手之后,当会话状态监控器242检测到包含来自例如客户端设备100和服务实例104之一的数据有效载荷的第一分组的确认时,会话状态监控器242确定tls会话被建立(例如,“到第一数据分组的时间”)。在客户端设备100和服务实例104已经完成会话的tls握手之后,检测到包含数据有效载荷的第一分组的确认所需的时间在本文中被称为tls会话的“到第一数据分组的时间”。
88.在一些示例中,会话状态监控器242对tls协议的状态机进行建模,以监测tls会话的建立进度。在一些示例中,会话状态监控器242确定以下中的一个或多个:tls会话的到第一数据分组的时间、tls会话的到达建立状态的最小时间、tls会话的到达建立状态的最大时间、tls会话的到达建立状态的平均时间、到达建立状态的tls会话的数目的计数、由于超时而未能建立的tls会话的数目的计数、由于目的地不可达而未能建立的tls会话的数目的计数、或者在建立之前关闭的tls会话的数目的计数。
89.作为另一示例,对于客户端设备100和服务实例104之间的udp会话,会话状态监控器242标识从客户端设备100发起并去往服务实例104的会话的第一udp分组。会话状态监控器242可以响应于检测到沿反向路径(例如,从服务实例104发起并去往客户端设备100)发送的会话的分组而认为udp会话被建立。沿反向路径的业务的存在意味着服务实例104成功
地接收到来自客户端设备100的第一udp分组并作出响应。
90.在一些示例中,会话状态监控器242对udp协议的状态机进行建模,以监测udp会话的建立进度。在一些示例中,会话状态监控器242确定以下中的一个或多个:udp会话的到第一数据分组的时间、udp会话的到达建立状态的最小时间、udp会话的到达建立状态的最大时间、udp会话的到达建立状态的平均时间、到达建立状态的udp会话的数目的计数、由于超时而未能建立的udp会话的数目的计数、或者由于目的地不可达而未能建立的udp会话的数目的计数。
91.作为另一示例,对于客户端设备100和服务实例104之间的icmp会话,会话状态监控器242标识从客户端设备100发起并去往服务实例104的会话的第一icmp分组。会话状态监控器242可以响应于检测到沿反向路径(例如,从服务实例104发起并去往客户端设备100)发送的会话的分组而认为icmp会话被建立。沿反向路径的业务的存在意味着服务实例104成功地接收到来自客户端设备100的第一icmp分组并作出响应。
92.在一些示例中,会话状态监控器242对icmp协议的状态机进行建模,以监测icmp会话的建立进度。在一些示例中,会话状态监控器242确定以下中的一个或多个:icmp会话的到第一数据分组的时间、icmp会话的到达建立状态的最小时间、icmp会话的到达建立状态的最大时间、icmp会话的到达建立状态的平均时间、到达建立状态的icmp会话的数目的计数、由于超时而未能建立的icmp会话的数目的计数、或者由于目的地不可达而未能建立的icmp会话的数目的计数。
93.在一些示例中,由路由引擎204生成的会话建立度量包括会话的到第一数据分组的时间。例如,对于tcp会话,该度量指定客户端设备100或服务实例104在tcp握手完成之后接收到第一数据分组的确认所需的时间。作为另一示例,对于tls会话,该度量指定客户端设备100或服务实例104在tls握手完成之后接收到第一数据分组的确认所需的时间。对于udp会话,该度量指定客户端设备100或服务实例104沿着udp会话的返回路径接收到第一数据分组所需的时间。对于icmp会话,该度量指定客户端设备100或服务实例104沿着icmp会话的返回路径接收到第一数据分组所需的时间。
94.在一些示例中,由路由引擎204生成的会话建立度量包括建立会话的时间。该度量可以包括建立会话的最小时间、建立会话的最大时间和建立会话的平均时间。如上所述,从会话开始到会话到达建立状态的时间是按协议定义的。在一些示例中,对于tls会话,从tcp建立开始时间而不是从会话开始时间计算建立会话的时间。
95.由路由引擎204生成并且指定建立会话的时间的会话建立度量的示例如下所示:
96.admin@t116-dut1.t116#显示统计信息高速公路目的地-可达性tcp建立时间
97.2020-03-31周二20:33:26utc
98.检索统计数据...
[0099][0100][0101]
0.02秒完成。
[0102]
由路由引擎204生成并且指定建立会话的最大时间的会话建立度量的示例如下所示:
[0103]
admin@t116-dut1.t116#显示统计信息高速公路目的地-可达性tcp建立时间最大值
[0104]
2020-03-31周二20:39:12utc
[0105]
检索统计数据...
[0106][0107]
0.02秒完成。
[0108]
由路由引擎204生成并且指定建立会话的最小时间的会话建立度量的示例如下所示:
[0109]
admin@t116-dut1.t116#显示统计信息高速公路目的地-可达性tcp建立时间最小值
[0110]
2020-03-31周二20:39:25utc
[0111]
检索统计数据...
[0112][0113]
0.02秒完成。
[0114]
在一些示例中,由路由引擎204生成的会话建立度量包括到达建立的多个会话。到达建立的会话数目是到达建立状态的会话数目的计数,如上所述在每个协议的基础上定义。在一些示例中,到达建立的会话的数目是在预定时间量上到达建立的会话的数目。
[0115]
由路由引擎204生成并且指定到达建立的会话数目的会话建立度量的示例如下所示:
[0116]
admin@t116-dut1.t116#显示统计信息高速公路目的地-可达性tcp建立
[0117]
2020-03-31周二20:38:29utc
[0118]
检索统计数据...
[0119][0120]
在一些示例中,由路由引擎204生成的会话建立度量包括在建立之前超时的会话数目。在建立之前超时的会话数目是在未到达建立的情况下超时的会话数目的计数,如上所述在每个协议的基础上定义。在一些示例中,在建立之前超时的会话数目是在预定时间量上在建立之前超时的会话数目。在一些示例中,仅当已到达tcp建立状态时但在已到达tls建立状态之前,才递增该度量的tls桶。
[0121]
由路由引擎204生成并且指定在建立之前超时的会话数目的会话建立度量的示例如下所示:
[0122]
admin@t116-dut1.t116#显示统计信息高速公路目的地-可达性tcp建立前超时
[0123]
2020-03-31周二20:40:21utc
[0124]
检索统计数据...
[0125][0126][0127]
0.02秒完成。
[0128]
在一些示例中,由路由引擎204生成的会话建立度量包括由于目的地不可达而未能建立的会话数目。由于目的地不可达而未能建立的会话数目是由于目的地不可达而无法完成的会话数目的计数。在一些示例中,路由引擎204响应于接收到对于会话不可达的icmp目的地消息,确定目的地不可达。在一些示例中,在建立之前超时的会话数目是在预定时间量上由于目的地不可达而未能建立的会话数目。
[0129]
在一些示例中,该度量可能不适用于跨越udp、icmp、tcp、tls,因此可以指定该度量的特定协议或应用名称。由路由引擎204生成并且指定由于目的地不可达而未能建立的tcp会话的数目的会话建立度量的示例如下所示:
[0130]
admin@t116-dut1.t116#显示统计信息高速公路目的地-可达性tcp不可达
[0131]
2020-03-31周二20:41:06utc
[0132]
检索统计数据...
[0133][0134]
0.02秒完成。
[0135]
在一些示例中,由路由引擎204生成的会话建立度量包括在tcp会话建立之前关闭的会话的数目。该度量可以包括在会话已完成tcp握手并且数据已被确认之前由重置或fin消息关闭的会话的数目。这可能是由于服务器103利用终止服务器103无法完成的会话的重置或代理消息来响应来自客户端设备100的syn而发生的。在一些示例中,在建立tcp会话之前关闭的会话的数目是在预定时间量上在建立tcp会话之前关闭的会话的数目。
[0136]
由路由引擎204生成并且指定在tcp会话建立之前关闭的会话数目的会话建立度量的示例如下所示:
[0137]
admin@t116-dut1.t116#显示统计信息高速公路目的地-可达性tcp建立前关闭
[0138]
2020-03-31周二20:41:56utc
[0139]
检索统计数据...
[0140][0141]
0.02秒完成。
[0142]
在一些示例中,由路由引擎204生成的会话建立度量包括在tls会话建立之前关闭的会话的数目。该度量可以包括在tcp建立之后但是在会话已经完成tls握手并且数据已经被确认之前,由重置或fin消息关闭的会话的数目。在一些示例中,在tls会话建立之前关闭的会话的数目是在预定时间量上在tls会话建立之前关闭的会话的数目。
[0143]
由路由引擎204生成并且指定在tls会话建立之前关闭的会话数目的会话建立度量的示例如下所示:
[0144]
admin@t116-dut1.t116#显示统计信息高速公路目的地-可达性tls建立前关闭
[0145]
2020-03-31周二20:42:30utc
[0146]
检索统计数据...
[0147][0148][0149]
0.02秒完成。
[0150]
在一些示例中,为了开始如上所述的服务建立度量的收集,管理员利用被配置为启用可达性检测的服务路由来配置路由引擎204。实现可达性检测的这种服务路由的示例如下所示:
[0151][0152]
在一些示例中,管理员将路由引擎204配置为根据目的地前缀和业务类别来过滤可达性。这种配置的示例如下所示:
[0153]
admin@t116-dut1.t116#显示统计信息高速公路目的地-可达性目的地前缀
[0154]
192.168.56.51业务类别尽力服务
[0155]
2020-03-31周二20:44:47utc
[0156]
检索统计数据...
[0157]
[0158][0159]
0.03秒完成。
[0160]
路由引擎204将会话40的会话建立度量236与会话40的会话性能要求238进行比较。响应于确定会话40的会话建立度量236不满足会话40的会话性能要求238,路由引擎204经由ifc 226b,沿着第二路径转发与客户端设备100和网络服务实例104之间的会话40相关联的网络业务,作为会话40’。在会话40成功建立但不符合会话性能要求238的一些示例中,
在切换到经由ifc 226b转发客户端设备100和网络服务实例104之间的网络业务之前,路由引擎204可以继续使用ifc 226a来转发客户端设备100和网络服务实例104之间的网络业务。
[0161]
在一些示例中,路由引擎204可以使用会话40的会话建立度量236来确定与会话40相关联的网络业务的时延是否超过会话性能要求238,或者与会话40相关联的网络业务的黑洞化是否正在发生。例如,如果路由引擎204确定与会话40相关联的网络业务的时延很高,则即使会话40超过会话性能要求238,路由引擎204也可以维持转发会话40的网络业务的第一路径的使用。作为另一示例,如果路由引擎204确定与会话40相关联的网络业务的黑洞化正在发生,则路由引擎204可以停止在第一路径上转发与会话40相关联的网络业务,并且切换到使用第二路径来转发与客户端设备100和网络服务实例104之间的会话40’相关联的网络业务。
[0162]
在一些示例中,路由引擎204可以使用会话40的会话建立度量236来确定是包括还是排除来自会话负载均衡器240的路径。会话负载均衡器240操作以在多个路径的不同路径上对与网络服务相关联的客户业务进行负载均衡,多个路径诸如转发图1的相应会话40和40’的网络业务的第一路径和第二路径。通过执行负载均衡,会话负载均衡器240可以跨路径和接口均匀地分配客户端设备100的客户业务,从而降低特定会话40或特定路由器110可能变得过度利用从而导致网络拥塞,或利用不足从而允许可用网络资源不被使用的可能性。例如,如果路由引擎204确定会话40的会话建立度量236不满足会话40的会话性能要求238,则路由引擎204可以确定会话40被过度利用。路由引擎204可以从会话负载均衡器240移除转发与会话40相关联的网络业务的第一路径,以避免转发客户业务的第一路径,从而降低客户业务可能不满足sla要求的可能性。
[0163]
图3a和3b是示出根据本公开的技术的基于会话建立度量执行路径选择的示例计算机网络系统300的框图。为了方便起见,参照图1和图2描述图3a和3b。例如,系统300可以是图1的系统2的示例。路由器110a、110c和110d可以是图1的110a、110c和110d,或者图2的路由器110的示例。路由器110a包括ifc 226a-226c(统称为“ifc 226”)。
[0164]
在图3a-3b的示例中,服务器103托管实例化第一网络服务的服务实例104a。服务器103还托管实例化第二网络服务的服务实例104b。在一些示例中,第一网络服务包括经由服务器103的端口80访问的tcp会话上的http服务。在一些示例中,第二网络服务包括经由服务器103的端口443访问的tls会话。
[0165]
路由器110a经由包括链路316b、路由器110d和链路316d的第一路径和包括链路316c、路由器110c和链路316e的第二路径连接到服务器103。在一些示例中,第一路径包括跨越宽带网络的路径。在一些示例中,第二路径包括跨越移动网络的路径。
[0166]
会话340a包括在客户端设备100和由服务器103托管的网络服务实例104a之间的沿着第一正向路径(例如,第一路径包括链路316b、路由器110d和链路316d)的第一正向分组流和沿着第一反向路径(例如,链路316d、路由器110d和链路316b)的第一反向分组流。会话340b包括在客户端设备100和由服务器103托管的网络服务实例104b之间的沿着第一路径(例如,链路316a、路由器110a、链路316b、路由器110d和链路316d)的第二正向分组流和沿着第一路径的反向的第二反向分组流。会话340a和会话340b两者都经由路由器110a的ifc 226a入站并且经由路由器110a的ifc226b出站。
[0167]
路由器110a沿着包括链路316a、路由器110a、链路326b、路由器110d和链路316d的第一路径转发会话340a的网络业务。在一些示例中,路由器110a为客户端设备100和网络服务实例104a之间的会话340a执行基于会话的路由。例如,路由器110a修改会话340a的正向分组流和反向分组流中的至少一个的第一分组,以包括报头以及指定会话340a的会话标识符的元数据的部分,该报头包括沿着第一路径的路由器110a的源地址和路由器110d的目的地地址。
[0168]
在图3a的示例中,路由器110a接收会话340a的一个或多个会话性能要求。在一些示例中,一个或多个会话性能要求包括一个或多个sla要求。在一些示例中,一个或多个会话性能要求指定以下一个或多个:建立会话340a所允许的最大时间;对于建立会话340a的预定尝试次数,会话340a成功建立需要的最小次数;在预定时间上会话340a可能由于超时而未能建立的最大次数;在预定时间上会话340a可能由于目的地不可达而未能建立的最大次数;在预定时间上会话340a可能在tcp会话建立之前关闭的最大次数;或者在预定时间上会话340a可能在tls会话建立之前关闭的最大次数等等。
[0169]
路由器110a获取会话340a的一个或多个会话建立度量。例如,会话建立度量可以包括例如建立会话340a所经过的时间、会话340a成功建立的次数、会话340a由于超时而未能建立的次数、会话340a由于目的地不可达而未能建立的次数、会话340a在tcp会话建立之前关闭的次数、或者会话340a在tls会话建立之前关闭的次数等等。路由器110a可以通过在建立之前、期间或之后监测第一会话的性能和/或状态来导出会话建立度量。
[0170]
路由器110a确定会话340a的一个或多个会话建立度量不满足会话340a的一个或多个会话性能要求。例如,路由器110a可以确定建立会话340a所经过的时间超过了由会话340a的sla要求设置的建立会话340a所允许的最大时间。作为另一示例,路由器110a可以确定会话340a由于超时而未能建立的次数超过了由会话340a的sla要求设置的在预定时间上由于超时而允许会话340a建立的最大次数。
[0171]
在一些示例中,响应于确定会话340a的一个或多个会话建立度量不满足会话340a的一个或多个会话性能要求,路由器110a从会话负载均衡器(例如,图2的会话负载均衡器240)排除转发会话340a的网络业务所沿的第一路径。例如,路由器110a将指定服务实例104经由包括链路316a、路由器110a、链路316b、路由器110d和链路316d的第一路径可到达的路由从会话负载均衡器240中移除。随后,当在客户端设备100和第一网络服务的服务实例104之间建立会话时,会话负载均衡器240可以从路由器110a可以用来向客户端设备100提供对服务器103的服务实例104a的访问的路径集合中排除第一路径。
[0172]
如图3b的示例所示,响应于确定会话340a的一个或多个会话建立度量不满足会话340a的一个或多个会话性能要求,路由器110a从跨第一路径(例如,链路316a、路由器110a、链路316b、路由器110d和链路316d)转发与会话340a相关联的网络业务切换到跨第二路径(例如,链路316a、路由器110a、链路316c、路由器110c和链路316e)转发与会话340a相关联的网络业务(在图3b中表示为会话340a’)。会话340a’的网络业务经由路由器110a的ifc 226a入站,但经由ifc 226c出站。路由器110a在客户端设备100和网络服务实例104a之间从沿着第一路径转发与会话340a相关联的网络业务切换到沿着第二路径转发与会话340a’相关联的网络业务。在一些示例中,由于不符合一个或多个会话性能要求,路由器110a停止使用第一路径。
[0173]
在一些示例中,路由器110a为客户端设备100和网络服务实例104a之间的会话340a’执行基于会话的路由。例如,路由器110a修改会话340a的正向分组流和反向分组流中的至少一个的第二分组,以包括报头以及指定会话340a的会话标识符的元数据的部分,该报头包括沿着第二路径的路由器110a的源地址和路由器110c的目的地地址。
[0174]
路由器110a还接收会话340b的一个或多个会话性能要求以及会话340b的一个或多个会话建立度量。路由器110a确定会话340b的一个或多个会话建立度量满足会话340b的一个或多个会话性能要求。因此,因为会话340b符合会话340b的会话性能要求,所以当路由器110a从针对会话340a的网络业务使用第一路径切换到针对会话340a’的网络业务使用第二路径时,路由器110a可以避免中断通过第一路径对与会话340b相关联的网络业务的转发(例如,通过避免禁用ifc 226b或拆除链路316b)。
[0175]
因此,在会话340a性能不佳的情况下,本公开的技术可以使路由器110a能够从使用转发会话340a的第一路径切换到使用不同的路径或接口(例如,链路316c和/或ifc 226c),而无需拆除路径316b或停用与性能不佳的会话340a相关联的ifc 226b。因此,路由器110a可以为性能不佳的会话340a的网络业务选择不同的路径,而不会不利地影响会话340b,会话340b根据sla要求执行,但是与性能不佳的会话340a共享链路316b和/或使用与性能不佳的会话340a相关联的相同ifc 226b。因此,与可能需要拆除路径或停用与性能不佳的会话相关联的接口的其他路由器相比,路由器110a可以提供客户业务的更细粒度且更有效的路由。
[0176]
图4是示出根据本公开的技术的示例操作的流程图。具体地,图4示出了使用会话的会话建立度量来监测会话的示例。为了方便起见,参照图3a-3b的路由器110a来描述图4。然而,图4中示出的操作可以另外由图1的系统2的路由器110或图2的路由器110来实现。会话340a包括在客户端设备100和由服务器103托管的网络服务实例104之间沿着第一正向路径的第一正向分组流和沿着第一反向路径的第一反向分组流。
[0177]
在图4的示例中,路由器110a接收客户端设备100与服务器103托管的网络服务实例104之间的会话340a的一个或多个会话性能要求(402)。在一些示例中,一个或多个会话性能要求包括一个或多个sla要求。在一些示例中,一个或多个会话性能要求指定以下一个或多个:建立会话340a所允许的最大时间;对于建立会话340a的预定尝试次数,会话340a成功建立需要的最小次数;在预定时间上会话340a可能由于超时而未能建立的最大次数;在预定时间上会话340a可能由于目的地不可达而未能建立的最大次数;在预定时间上会话340a可能在tcp会话建立之前关闭的最大次数;或者在预定时间上会话340a可能在tls会话建立之前关闭的最大次数等等。
[0178]
路由器110a沿着包括链路316a、路由器110a、链路326b、路由器110d和链路316d的第一路径转发会话340a的网络业务(404)。在一些示例中,路由器110a为客户端设备100和网络服务实例104a之间的会话340a执行基于会话的路由。例如,路由器110a修改会话340a的正向分组流和反向分组流中的至少一个的第一分组,以包括报头以及指定会话340a的会话标识符的元数据的部分,该报头包括沿着第一路径的路由器110a的源地址和路由器110d的目的地地址。
[0179]
路由器110a获取会话340a的一个或多个会话建立度量(406)。例如,会话建立度量可以包括例如建立会话340a所经过的时间、会话340a成功建立的次数、会话340a由于超时
而未能建立的次数、会话340a由于目的地不可达而未能建立的次数、会话340a在tcp会话建立之前关闭的次数、或者会话340a在tls会话建立之前关闭的次数等等。路由器110a可以通过在建立之前、期间或之后监测第一会话的性能和/或状态来导出会话建立度量。
[0180]
路由器110a确定会话340a的一个或多个会话建立度量不满足会话340a的一个或多个会话性能要求(408)。例如,路由器110a可以确定建立会话340a所经过的时间超过了由会话340a的sla要求设置的建立会话340a所允许的最大时间。作为另一示例,路由器110a可以确定会话340a由于超时而未能建立的次数超过了由会话340a的sla要求设置的在预定时间上由于超时而允许会话340a建立的最大次数。
[0181]
响应于确定会话340a的一个或多个会话建立度量不满足会话340a的一个或多个会话性能要求,路由器110沿着包括链路316a、路由器110a、链路326c、路由器110c和链路316e的第二路径转发会话340a的网络业务(在图3a-3b中示出为会话340a’)(410)。在一些示例中,路由器110a为客户端设备100和网络服务实例104a之间的会话340a’执行基于会话的路由。例如,路由器110a修改会话340a的正向分组流和反向分组流中的至少一个的第二分组,以包括报头以及指定会话340a的会话标识符的元数据的部分,该报头包括沿着第二路径的路由器110a的源地址和路由器110c的目的地地址。
[0182]
在一些示例中,响应于确定会话340a的一个或多个会话建立度量不满足会话340a的一个或多个会话性能要求,路由器110a可选地从会话负载均衡器(例如,图2的会话负载均衡器240)排除第一路径。例如,路由器110a将第一路径从会话负载均衡器240中移除。随后,当为客户端设备100和服务实例104之间的会话选择路径时,会话负载均衡器240可以从路由器110a可以用来经由服务实例104向客户端设备100提供对网络服务的访问的路径集合中排除包括链路316a、路由器110a、链路326b、路由器110d和链路316d的第一路径。
[0183]
本公开中描述的技术可以至少部分地以硬件、软件、固件或其任意组合来实现。例如,所描述的技术的各个方面可以在一个或多个处理器内实现,包括一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、或任何其他等效的集成或离散逻辑电路、以及这些组件的任何组合。术语“处理器”或“处理电路装置”通常可以指任何前述逻辑电路,单独地或与其他逻辑电路组合,或者任何其他等效电路。包括硬件的控制单元也可以执行本公开的一种或多种技术。
[0184]
这样的硬件、软件和固件可以在同一设备内或者在分离的设备内实现,以支持本公开中描述的各种操作和功能。此外,任何所描述的单元、模块或组件可以一起或分离地实现为离散但可互操作的逻辑设备。将不同的特征示出为模块或单元旨在突出显示不同的功能方面,并不一定意味着这些模块或单元必须由分离的硬件或软件组件来实现。相反,与一个或多个模块或单元相关联的功能可以由分离的硬件或软件组件执行,或者集成在共同或分离的硬件或软件组件内。
[0185]
本公开中描述的技术还可以在包含指令的计算机可读介质(诸如计算机可读存储介质)中实现或编码。嵌入或编码在计算机可读存储介质中的指令可以使可编程处理器或其他处理器例如在指令被执行时执行该方法。计算机可读存储介质可以包括随机存取存储器(ram)、只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、闪存、硬盘、cd-rom、软盘、盒式磁带、磁介质、光介质或其他计算机可读介质。
[0186]
已经描述了各种示例。这些和其他示例在所附权利要求的范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献