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

使用多路径协议管理网络服务的制作方法

2022-05-08 09:45:49 来源:中国专利 TAG:


1.本技术总体涉及网络流量管理,并且更具体地涉及在网络流量使用多路径协议时管理网络服务。


背景技术:

2.软件应用可以跨不同的计算装置分布或划分。例如,客户端-服务器架构可以在客户端装置(诸如膝上型计算机或移动装置)与通过互连网络(诸如互联网)连接并由计算服务/或计算资源的提供者管理的一个或多个应用服务器计算机之间划分任务。应用服务器计算机可以执行软件应用以向客户端装置提供虚拟资源、软件服务和/或内容。例如,客户端装置可以通过在互连网络上向应用服务器计算机发送请求来发起与应用服务器计算机的通信会话,并且服务器可以对所述请求做出响应。随着寻求访问应用服务器计算机的客户端装置的数量的增加,可以在客户端装置与应用服务器计算机之间添加中间计算装置,诸如网络流量管理计算装置。网络流量管理计算装置可以对客户端-服务器架构执行安全、处理和/或路由功能,诸如对客户端与应用服务器之间的流量进行加密和/或解密。例如,网络流量管理计算装置可以潜在地提高客户端-服务器架构的可扩展性、可用性、安全性和/或性能。然而,随着应用的复杂性的增加和互连的装置的数量的增加,在实施包括中间计算装置的高性能、高可用性和安全的客户端-服务器架构方面可能存在许多挑战。


技术实现要素:

3.通常,一个或多个计算机的系统可以被配置为通过在所述系统上安装软件、固件、硬件或它们的组合来执行特定操作或动作,所述软件、固件、硬件或它们的组合在操作中使所述系统执行所述动作。一个或多个计算机程序可以被配置为通过包括指令来执行特定操作或动作,所述指令在由数据处理设备执行时使所述设备执行所述动作。一个示例包括一种与网络流量管理系统协作实施的方法,所述网络流量管理系统包括一个或多个网络流量管理模块、联网模块或服务器模块,所述方法包括:拦截来自请求主机的针对连接到服务的多路径协议请求,其中所述多路径协议请求被中间服务器拦截。所述方法还包括选择与所述中间服务器不同的目标主机来提供所述服务。所述方法还包括从所述中间服务器向所述请求主机发送多路径协议数据包。所述多路径协议数据包使用所述目标主机的地址添加所述连接的子流。所述子流使得所述请求主机与所述目标主机之间的路径不遍历所述中间服务器。
4.包含该示例的其他实施例包括对应计算机系统、设备和记录在一个或多个非暂时性计算机可读介质(例如,计算机存储装置)上的计算机程序,每个都被配置为执行所述方法的动作。一种示例性计算机系统包括:一个或多个网络流量管理模块、联网模块或服务器模块;存储器,所述存储器包括存储在其上的编程指令;以及一个或多个处理器,所述一个或多个处理器被配置为能够执行存储的编程指令以执行所述方法的动作。一种示例性非暂时性计算机可读介质,其上存储有用于使用多路径协议管理网络服务的指令,所述指令包
括可执行代码,所述可执行代码在由一个或多个处理器执行时使处理器执行所述方法的动作。一种示例性网络流量管理设备包括存储器,所述存储器包括存储在其上的编程指令;以及一个或多个处理器,所述一个或多个处理器被配置为能够执行存储的编程指令以执行所述方法的动作。
附图说明
5.图1是包括使用多路径协议的中间服务器计算机的示例性客户端-服务器架构的框图。
6.图2示出了包含多路径协议的示例性网络堆栈。
7.图3示出了示例性多路径协议数据包格式。
8.图4是用于提供网络服务的示例性服务链的框图。
9.图5是诸如可以用于使用多路径协议提供网络服务的示例性中间服务器计算机的框图。
10.图6是用于使用多路径协议管理网络服务的示例性方法的流程图。
11.图7是用于诸如当使用服务链实施服务时使用多路径协议管理网络服务的示例性方法的流程图。
12.图8是包括用于使用多路径协议管理网络服务的逻辑的示例性客户端-服务器架构的框图。
13.图9是诸如可以用于服务器计算机的示例性计算环境的框图。
具体实施方式
14.介绍
15.如上所述,软件应用可以诸如通过使用客户端-服务器、对等或其他网络计算架构而跨不同的计算装置分布或划分。具体地,用于实施应用的计算、通信和存储资源可以在不同的代理和/或装置之间划分。例如,应用的任务可以被划分为网络服务,并且分布在通过互连网络进行通信的不同服务器计算机之间。作为一个示例,网络服务可以是可通过网络访问并使用应用层协议访问的分布式应用的组成部分。例如,网络服务可以在客户端-服务器或对等架构中实施,并且可以响应于针对服务的请求而提供计算和/或存储功能性。另外,网络服务可以执行网络架构的维护、安全、优化和其他任务。例如,网络服务可以用于对机密信息进行加密和解密、防止网络攻击、维护网络的正确操作等等。
16.一种网络架构是客户端-服务器架构。例如,客户端装置可以为应用的用户提供用户界面并允许用户与软件应用交互。使用用户界面,用户可以输入数据和/或命令,所述数据和/或命令使客户端装置诸如通过网络向应用服务器计算机发送请求而发起与应用服务器计算机的通信会话。应用服务器可以用可以在客户端装置处的用户界面上呈现的内容来对所述请求做出响应。作为一个示例,执行浏览器的客户端装置可以从web服务器请求web页并且可以在客户端装置的显示器上的浏览器窗口内显示所述web页。另一种网络架构是对等架构。在对等架构中,对等方(peer)可以具有相同或相似的权限,并且可以执行相似类型的任务。例如,用于预测天气的应用可以在不同的对等计算机之间划分,其中每个计算机都执行计算的一部分。每个网络架构还可以包括执行除客户端、服务器或对等功能之外的
任务的中间代理。例如,中间代理可以包括用于在对等方、客户端和/或服务器之间传输通信的网络装置。通常,网络架构内的代理可以称为节点或主机。例如,主机可以指代对等方、客户端、服务器或中间代理。用于指定主机的一种方法是提供标识主机的一个或多个地址,其中每个地址都可以与给定的网络和/或协议相关联。多宿主机(multi-homed host)可以有与主机关联的多个地址。
17.中间服务器计算机可以通过处理经过中间服务器计算机的数据包来执行各种代理和其他服务。例如,中间服务器计算机可以执行例如负载平衡、速率监控、高速缓存、加密/解密、会话管理(包括密钥生成)、地址转换、拒绝服务(dos)保护和/或访问控制。中间服务器计算机可以充当应用服务器的代理。代理是位于客户端与服务器(例如,应用服务器)之间的通信路径中的代理(例如,计算机),所述代理可以拦截客户端与服务器之间的通信(例如,网络数据包、帧、数据报、片段和消息)。代理可以执行各种服务,诸如例如负载平衡、速率监控、高速缓存、加密/解密、地址转换和访问控制。
18.代理可以用作虚拟服务器,所述虚拟服务器将代理的网络地址呈现为服务器应用的网络地址。例如,客户端可以通过发送以服务器应用为目的地的请求(例如,使用虚拟服务器的网络地址作为目的地地址)来请求服务器的服务。虚拟服务器的网络地址也可以称为虚拟地址。代理可以代表服务器应用拦截请求。如果客户端被授权访问服务器应用,则代理可以将请求转发到服务器。在转发之前,代理可以通过将目的地地址更改为服务器计算机的网络地址来修改来自客户端的请求。应用服务器计算机可以经由代理对来自客户端的请求做出响应。具体地,代理可以拦截来自服务器的响应,并通过将响应的源地址更改为虚拟服务器的网络地址来修改响应。然后可以将响应转发给客户端。通过这种方式,代理可以对客户端和服务器相对透明。
19.代理可以在客户端装置与服务器计算机之间添加一层控件,以潜在地提高客户端-服务器架构的可用性、安全性和/或性能。例如,代理可以拦截所有以服务器计算机为目的地的客户端流量,并且仅在客户端经过认证和/或授权以访问服务器后才允许转发流量。然而,代理可能会给客户端与服务器之间的事务增加延时。增加的延时可能导致基于网络的应用运行缓慢,从而对用户的应用体验产生负面影响。例如,当客户端位于西雅图,中介位于丹佛,而服务器位于洛杉矶时,遍历西雅图-丹佛-洛杉矶路径的通信可能导致基于网络的应用出现非期望的延时。
20.多路径通信协议是一种联网协议,其属性使得网络流的网络数据包能够针对给定的发送器和接收器遍历跨一种或多种网络的多个不同路径。网络流是一组相关数据包。相关数据包可以共享公共发送器和接收器,并且可以共享诸如源端口、目的地端口和/或协议标识符之类的数据包报头字段的公共值。多路径协议可以将网络流划分为可以遍历不同网络路径的不同子流。作为一个示例,多路径协议可以使用多宿主机的不同地址沿着不同的网络路径发送数据包。具体地,接收器可以具有多个地址,并且发送器可以沿着一个网络路径向接收器的第一地址发送第一多路径协议数据包并且沿着不同的网络路径向接收器的第二地址发送第二多路径协议数据包。
21.多路径协议可以是无连接或面向连接的通信协议。非多路径面向连接的通信协议的一个示例是传输控制协议(tcp)。在源(例如,客户端)与目的地(例如,服务器)之间发送数据之前,tcp可以用于在源与目的地之间建立虚拟连接。连接是使用源与目的地之间的网
络数据包的握手形成的,然后在连接形成后可以发送数据。多路径协议的示例是多路径传输控制协议(mptcp)。mptcp在可从互联网工程任务组(ietf)获得的请求注释(rfc)6824和rfc 6897中进行描述。mptcp可以使用tcp作为多路径协议堆栈中的较低层。具体地,mptcp网络流可以通过在发送器与接收器之间使用不同的tcp连接划分为不同的子流,其中每个子流都使用不同的tcp连接。非多路径无连接通信协议的示例是用户数据报协议(udp)。udp可以用于在不建立连接的情况下发送数据。类似于mptcp,多路径协议可以使用udp或另一种无连接协议作为无连接多路径协议堆栈中的较低层。
22.如本文所述,可以使用中间服务器和多路径协议来管理网络服务的网络流量。例如,中间服务器可以用作虚拟服务器,所述虚拟服务器将中间服务器的网络地址呈现为网络服务的网络地址。请求主机(例如,客户端装置)可以向网络服务的虚拟地址发送请求连接到网络服务的多路径协议请求。中间服务器可以拦截多路径协议请求并为网络服务执行各种功能。例如,中间服务器可以为服务执行认证、授权和记帐(aaa)功能,诸如确证来自请求主机的凭证并授权访问网络服务。中间服务器可以与请求主机执行握手以创建与网络服务的多路径连接。网络服务可以使用多个服务器计算机来实施,诸如用于增加服务的用户数量和/或用于在不同服务器之间划分服务的任务。中间服务器可以选择一个或多个目标主机来执行服务。例如,所述选择可以基于服务器的负载或者基于用于提供服务的服务链。中间服务器可以为要在请求主机与网络服务的目标主机之间传输的数据包的子流提供路径。中间服务器可以代表网络服务执行任务,诸如加密/解密、压缩/解压缩和/或附加任务。中间服务器可以从中间服务器向请求主机发送多路径协议数据包,所述多路径协议数据包使用目标主机的地址添加连接的子流。具体地,中间服务器可以发送多路径协议数据包,所述多路径协议数据包使得将请求主机连接到目标主机的连接的子流能够绕过中间服务器。通过中间服务器的子流和绕过中间服务器的子流两者可以处于操作,使得在请求主机与目标主机之间传输的数据包可以采用多个路径。还可以使用多路径协议数据包移除通过中间服务器的子流,使得可以消除与遍历中间服务器相关的延时。使用上面的示例,在客户端位于西雅图、中介位于丹佛、而服务器位于洛杉矶的情况下,通过在西雅图与洛杉矶之间发送数据包并跳过丹佛中介,可以减少与遍历西雅图-丹佛-洛杉矶路径相关联的延时。因此,可以使用中间服务器来卸载任务以释放目标服务器的资源和/或可以绕过中间服务器以减少请求主机与目标主机之间的延时。通过使用多路径协议数据包管理不同的子流,可以在跨不同计算机分布网络服务功能与减少延时之间进行权衡。
23.使用多路径协议管理网络服务的示例性架构
24.图1是包括使用多路径协议的中间服务器计算机110的示例性客户端-服务器架构100的框图。具体地,图1示出了客户端装置140可以如何连接到托管在一个或多个应用服务器计算机120a-n上的网络服务122以及可以如何使用多路径协议来管理客户端装置140与应用服务器计算机120a-n之间的网络流量。客户端-服务器架构100可以包括中间服务器计算机110、应用服务器120a-n、通信网络(未示出)和客户端装置140。通信网络可以包括公共和/或专用网络。信息可以使用数据包通过通信网络发送,所述信息可以被分类为请求、响应和/或其他类型的消息。客户端-服务器架构100可以使用如参考图8更详细描述的客户端-服务器架构来实施,其中客户端-服务器架构的不同部件(110、120、140)可以使用如参考图9更详细描述的计算环境来实施。
25.客户端装置140可以是能够通过通信网络发送和接收多路径协议网络流量的计算装置。例如,客户端装置140可以是移动计算装置、台式计算装置、膝上型计算装置、平板计算装置、在基于云的计算环境上执行的虚拟机等等。客户端装置140可以执行请求由应用服务器120a-n提供的网络服务122的代理(例如,浏览器或其他软件应用)。代理可以生成由客户端装置140使用多路径协议传输的请求。多路径协议可以是无连接通信协议或面向连接的通信协议。如参考图2更详细地描述的,多路径协议可以层叠在诸如udp或tcp之类的单路径通信协议之上。
26.应用服务器计算机120a-n可以提供用于实施网络服务122的资源池。应用服务器计算机120a-n中的每一者可以是能够通过通信网络发送网络流量并处理客户端装置(诸如客户端装置140)的请求的计算装置。可以使用各个应用服务器计算机120a-n的相应地址来访问应用服务器计算机120a-n中的每一者。例如,可以使用节点地址a124a访问应用服务器计算机120a,可以使用节点地址n 124n访问应用服务器计算机120n,等等。服务器计算机120a-n中的每一者可以包括多个硬件和/或软件服务器资源、在基于云的计算环境上执行的虚拟机等等。应用服务器计算机120a-n中的每一者可以执行网络服务122的一个或多个实例。例如,应用服务器计算机120a可以执行网络服务122a,应用服务器计算机120n可以执行网络服务122n,等等。网络服务的不同实例可以执行相同的软件应用,但是可能具有与正访问服务的不同客户端相关联的不同状态。网络服务122可以包括各种服务器软件应用,诸如例如http服务器应用或安全外壳(ssh)服务器应用。
27.中间服务器计算机110可以是能够使用多路径协议通过通信网络发送网络流量的计算装置。例如,中间服务器计算机110可以充当网络流量管理器、应用交付控制器(adc)和/或应用服务器计算机120a-n的代理,以使网络服务122可从诸如互联网之类的公共网络获得。中间服务器计算机110可以与网络服务122的虚拟地址112相关联。具体地,中间服务器计算机110可以拦截使用虚拟地址112寻址到网络服务122的网络流量。中间服务器计算机110可以代表网络服务122和/或与网络服务协调执行各种功能。例如,中间服务器计算机110可以执行各种代理和其他服务,诸如速率监控、高速缓存、拒绝服务保护、加密/解密、会话管理(包括密钥生成)和/或地址转换。作为另一个示例,中间服务器计算机110可以为网络服务122执行认证、授权和/或记帐(aaa)功能。作为另一个示例,中间服务器计算机110可以管理应用服务器计算机120a-n的资源,诸如通过平衡应用服务器计算机120a-n中的每一者上的计算和/或网络负载。
28.客户端装置140和应用服务器计算机120a-n可以经由一种或多种通信网络和/或中间服务器计算机110进行通信。来自客户端装置140的请求可以由中间服务器计算机110处理和/或通过中间服务器计算机转发到应用服务器计算机120a-n中的一者或多者。例如,客户端装置140可以通过将针对连接到网络服务122的多路径请求160寻址到网络服务122的虚拟地址112来发送所述请求。中间服务器计算机110可以拦截针对网络服务122的连接请求并且可以与客户端装置140执行握手以在客户端装置140与网络服务122之间创建连接。中间服务器计算机110可以选择应用服务器计算机120a-n中的一者来为客户端140提供网络服务122。初始连接可以包括通过中间服务器计算机110的子流;具体地,子流可以包括客户端装置140、中间服务器计算机110和从应用服务器计算机120a-n中选择的节点(例如,应用服务器计算机120a)。中间服务器计算机110可以向选定的应用服务器计算机120a提供
连接信息162,所述连接信息是在中间服务器计算机110与客户端装置140之间的握手期间确定的。该信息162可以包括一个或多个加密密钥、共享秘密、令牌(也称为连接标识符)等等。选定节点可以向中间服务器计算机110发送确认170,所述确认指示选定的应用服务器计算机120a接收到连接信息162。在形成初始连接之后,中间服务器计算机110可以向客户端装置140发送多路径数据包172,所述多路径数据包在客户端装置140与选定的应用服务器计算机120a之间添加另一个子流。具体地,添加的子流可以诸如通过向客户端装置140提供节点地址a 124a而省略中间服务器计算机110。客户端装置140可以向选定的应用服务器120a发送多路径子流连接请求180。客户端装置140和选定的应用服务器120a可以执行握手以完成子流连接。当建立了两个子流时,客户端装置140可以通过任一子流向选定的应用服务器计算机120a发送多路径协议数据包。作为一个示例,可以移除包括中间服务器计算机110的初始子流,使得可以从路径中移除与遍历中间服务器计算机110相关联的延时。作为另一个示例,子流可以被加权,使得通过中间服务器计算机110的较高延时路径的使用率小于省略中间服务器计算机110的较低延时路径。例如,可以通过从选定的应用服务器计算机120a发送tcp窗口通告来实现加权。作为特定示例,省略中间服务器计算机的子流可以在tcp窗口通告比包括中间服务器的子流大十倍,使得大约十倍的流量通过省略中间服务器计算机110的子流。通过保留少量流量通过中间服务器计算机110,中间服务器计算机110可以计算网络流量的记帐、性能或其他度量。
29.可以使用用于多路径协议通信的网络协议堆栈和/或数据包格式来指定多路径协议的通信。图2示出了可以用于实施多路径协议、具体地在网络堆栈的传输层中实施的多路径协议的示例性网络协议堆栈。图3示出了示例性多路径协议数据包格式。通常,网络协议堆栈指定如何在实施网络协议堆栈的装置之间(例如,跨网络)传达信息。网络协议堆栈可以划分为指定通信系统的不同方面(例如,通信协议)的不同层。通过将数据封装在网络数据包中并将网络数据包从一个装置通过网络转发到另一个装置,可以在计算装置之间发送数据。网络流量是流过网络的一个或多个网络数据包。网络数据包可以根据可以由网络协议堆栈的不同层指定的一种或多种通信协议进行格式化。
30.作为一个示例,网络数据包内的层可以使用开放系统互连(osi)模型来描述,所述osi模型将通信系统的不同功能划分为相应的抽象层。具体地,osi模型将通信系统划分为七层。特定层提供与和特定层相邻的层(例如,所述特定层上方的层和下方的层)的通信路径。最低层是物理层(也称为第1层或l1),所述物理层定义通过物理传输介质进行通信的电气和物理规范。具体地,物理层可以定义电压电平、信号定时、传输介质(例如,电缆、光纤电缆、射频)等等。物理层可以提供与数据链路层或链路层(也称为第2层或l2)的通信路径。链路层定义在两个节点之间传递数据的协议。另外,链路层可以定义用于在节点之间建立和终止连接、管理流控制、以及检测和/或修正物理层上发生的错误的协议。以太网是链路层协议的示例。链路层可以提供与网络层(也称为第3层或l3)的通信路径。示例性网络层协议是互联网协议(ip)(包括ipv4和ipv6)。osi模型的其他层包括传输层(也称为第4层或l4)、会话层(也称为第5层或l5)、表示层(也称为第6层或l6)和应用层(也称为第7层或l7)。应当注意,网络数据包(或简称为数据包)通常包括用于将数据包寻址到另一个实体的数据包层处(例如,另一种服务、远程节点或另一个代理)的报头和具有离散信息量的有效载荷。当原始数据包经过通信层时,对在一层处的代理寻址的数据包可以被封装在较低层处数据包的
有效载荷中。链路层的数据包也可以称为帧。传输层的数据包也可以称为数据报或片段。osi模型是参考,并且一些联网协议可能没有严格遵守osi模型的七层。例如,在一些实施例中,链路层和物理层的功能可以混合成单个链路层。
31.图2示出了可以用于实施多路径协议、具体地在网络堆栈200的传输层270中实施的多路径协议的示例性网络协议堆栈200。网络协议堆栈200包括应用层210,所述应用层指定用于在于应用层处执行的两个不同主机之间传达信息的协议。例如,一个主机可以是从网络服务请求数据的客户端,而另一主机可以是对来自客户端的请求做出响应的网络服务的服务器。
32.传输层270可以指定协议以实现主机之间的服务质量和数据交付的准确性。如图所示,传输层270可以包括多路径传输层220和一个或多个单路径传输层230a-b。例如,多路径传输层220可以实施mptcp协议。mptcp连接可以提供两个主机之间的双向通信信道。mptcp连接可以在多个子流之间对信道进行划分。mptcp可以用于诸如通过创建、移除和利用mptcp连接的不同子流来管理mptcp连接。如图所示,mptcp连接在两个不同的子流230a-b之间划分,其中每个子流都使用tcp来实施。在其他示例中,可以使用不同数量的子流并且子流可以通过不同的协议来实施。通过使用在mptcp层下方的tcp层,协议堆栈200的较低层(例如,240a-b、250a-b和260a-b)可以与单路径通信协议向后兼容。mptcp连接可以使得主机能够使用不同路径(例如,子流)与不同网络地址(例如,ip地址)来通过mptcp连接交换数据。子流中的每一者都可以使用自己的tcp连接在主机之间传达数据。如参考图3更详细地描述的,可以使用tcp报头的选项类型来标识子流中的每一者。
33.应当注意,虽然多路径协议被示为在图2中的传输层中实施,但是多路径协议可以在协议堆栈内的不同层处实施。还应当注意,虽然多路径协议在图2中被示为面向连接的协议,但是多路径协议也可以被实施为无连接协议。
34.图3示出了示例性多路径协议数据包格式300。具体地,多路径协议数据包格式300示出了多路径协议数据包的传输层。数据包的更高层(例如,应用层)可以被封装在数据包的有效载荷310内。数据包的较低层可以封装报头字段320和有效载荷310。报头字段320包括与tcp兼容的字段。可以在mptcp选项字段330中提供多路径协议信息。mptcp选项字段330可以进一步划分为种类字段331、长度字段332、子类型字段333和子类型特定数据334。mptcp选项字段330可以被填充有指示数据包300是mptcp数据包的值。例如,互联网编号授权委员会(iana)组织已指定种类字段331中的值30可以用于指示数据包是mptcp数据包。长度字段332可以用于指示子类型特定数据334的长度。子类型特定数据334可以用于提供基于子类型字段333中的值而变化的补充多路径信息。
35.子类型字段333可以用于指示多路径协议数据包的功能。例如,子类型字段333中的值0可以指示数据包具有多路径能力(诸如在发起连接时);子类型字段333中的值1可以指示数据包正请求加入连接(诸如当为连接启动新的子流时);子类型字段333中的值2可以指示数据包包括用于允许数据可靠且有序地重组(诸如用于将来自多个子流的数据组合成单个数据流)的数据序列信号;子类型字段333中的值3可以指示数据包包括要为主机添加的地址;子类型字段333中的值4可以指示数据包包括要为主机移除的地址;子类型字段333中的值5可以指示数据包包括针对改变子流的优先级的请求;子类型字段333中的值6可以指示数据包包括针对通过移除子流或回落到tcp来回退的请求;并且子类型字段333中的值
7可以指示数据包包括针对关闭多路径连接内的子流的请求。关于mptcp的附加详细信息在可从ietf获得的rfc 6824中进行描述。rfc 6824通过引用整体并入本文。
36.应当注意,为了便于说明,多路径协议数据包格式300并未严格按比例绘制。例如,有效载荷310、mptcp选项330和子类型特定数据334在长度上可以基于数据包的各种属性而变化。另外,虽然mptcp已用于说明多路径协议,但是mptcp只是多路径协议的一个示例,并且其他多路径协议可以用于实施本文描述的实施例。
37.图4是用于向客户端装置140提供网络服务的示例性服务链400的框图。可以使用预处理器网络服务420、目标网络服务410和后处理器网络服务430来实施网络服务。作为一个示例,三个服务410、420、430可以被流水线化,使得所有三个服务410、420、430同时处于活动状态。作为另一个示例,三个服务410、420、430可以依次操作,使得一个服务在前一个服务结束后开始。预处理器网络服务420和后处理器网络服务430对于客户端装置140可以是透明的。例如,客户端装置140可能正请求目标网络服务410,并且中间服务链管理器110可以确定分别在目标网络服务410之前和/或之后要访问预处理器网络服务420和/或后处理器网络服务430。应当理解,虽然服务链400被示出为使用三个服务,但是服务链中可以包括更多或更少的服务。
38.中间服务链管理器110(也称为仅服务链管理器)可以用于协调客户端装置140与三个服务410、420、430之间的通信。具体地,服务链管理器110可以引导客户端装置与不同服务410、420、430之间的网络流量。服务链管理器110可以用于在不同服务410、420、430之间转发数据。例如,可以通过使用服务链管理器110作为通信的中介在预处理器网络服务420与目标网络服务410之间转发数据。类似地,可以通过使用服务链管理器110作为通信的中介在目标网络服务410与后处理器网络服务430之间转发数据。服务链管理器110可以呈现网络服务的虚拟地址,使得客户端装置140最初将经由服务链管理器110连接到网络服务。
39.作为一个示例,三个服务410、420、430可以被流水线化,使得所有三个服务410、420、430同时处于活动状态。例如,预处理器网络服务420可以提供防火墙功能性,目标网络服务410可以是视频服务器,而后处理器网络服务430可以是用于压缩视频的压缩引擎。客户端装置140可以通过在通信信道440上向服务链管理器110发送请求来请求与网络服务的多路径协议连接。例如,服务链管理器110可以管理网络服务的虚拟服务器的网络地址,并且针对访问网络服务的请求可以被寻址到网络服务的虚拟地址。可以在客户端装置140与服务链管理器110之间形成多路径协议连接(例如,mptcp连接)。服务链管理器110可以确定预处理器网络服务420是服务链中要访问以向客户端提供网络服务的第一服务。使用信道442,服务链管理器110可以在预处理器网络服务420与服务链管理器110之间创建多路径协议连接,使得来自客户端装置140的针对网络服务的请求可以通过信道440和442引导到预处理器网络服务420。服务链管理器110可以向预处理器网络服务420提供与客户端装置140与服务链管理器110之间的多路径协议连接相关联的连接信息(例如,令牌、共享秘密和/或加密密钥)。服务链管理器110可以向客户端装置140发送多路径协议数据包,从而添加预处理器网络服务420的地址。客户端装置140可以向网络服务请求添加子流到多路径协议连接,其中子流在客户端装置140与预处理器网络服务420之间的信道444上创建路径,所述路径省略了服务链管理器110。包括通过服务链管理器110的路径的子流可以被移除和/或降
低优先级,使得可以潜在地减少客户端装置140与预处理器网络服务420之间的网络流量的延时。
40.来自客户端装置140的请求可以由预处理器网络服务420处理。预处理器网络服务420可以生成要由目标网络服务410处理的数据。最初,预处理器网络服务420可能不具有到目标网络服务410的直接通信信道。预处理器网络服务420可以通过向中间服务链管理器110发送请求来请求连接到目标网络服务410。可以使用信道442在预处理器网络服务420与中间服务链管理器110之间形成多路径协议连接。服务链管理器110可以通过在信道450上向目标网络服务410发送请求来创建与目标网络服务410的连接。可以使用多路径协议连接以及信道442和450将数据从预处理器网络服务420传达到目标网络服务410。中间服务链管理器110可以向目标网络服务410提供连接信息。中间服务链管理器110可以将目标网络服务410的地址添加到预处理器网络服务420与服务链管理器110之间的多路径协议连接。预处理器网络服务420可以向目标网络服务410请求添加通过信道452的多路径协议连接的子流,所述子流省略了服务链管理器110。包括通过服务链管理器110的路径的子流可以被移除和/或降低优先级,使得可以潜在地减少预处理器网络服务420与目标网络服务410之间的网络流量的延时。
41.目标网络服务410可以生成要由后处理器网络服务430处理的数据。最初,目标网络服务410可能不具有到后处理器网络服务430的直接通信信道。目标网络服务410可以通过向服务链管理器110发送请求来请求连接到后处理器网络服务430。可以使用信道450在目标网络服务410与服务链管理器110之间形成多路径协议连接。服务链管理器110可以通过在信道460上向后处理器网络服务430发送请求来创建与后处理器网络服务430的连接。可以使用多路径协议连接以及信道450和460将数据从目标网络服务410传达到后处理器网络服务430。服务链管理器110可以向后处理器网络服务430提供连接信息。服务链管理器110可以将后处理器网络服务430的地址添加到目标网络服务410与服务链管理器110之间的多路径协议连接。目标网络服务410可以向后处理器网络服务430请求添加通过信道462的多路径协议连接的子流,所述子流省略了服务链管理器110。包括通过服务链管理器110的路径的子流可以被移除和/或降低优先级,使得可以潜在地减少目标网络服务410与后处理器网络服务430之间的网络流量的延时。
42.后处理器网络服务430可以生成要发送到客户端装置140的数据。最初,后处理器网络服务430可能不具有到客户端装置140的直接通信信道。后处理器网络服务430可以通过向服务链管理器110发送请求来请求连接到客户端装置140。可以使用信道460在后处理器网络服务430与服务链管理器110之间形成多路径协议连接。服务链管理器110可以通过在信道440上向客户端装置140发送请求来创建与客户端装置140的连接。可以使用多路径协议连接以及信道460和440将数据从后处理器网络服务430传达到客户端装置140。服务链管理器110可以向客户端装置140提供连接信息。服务链管理器110可以将客户端装置140的地址添加到后处理器网络服务430与服务链管理器110之间的多路径协议连接。后处理器网络服务430可以向客户端装置140请求添加通过信道464的多路径协议连接的子流,所述子流省略了服务链管理器110。包括通过服务链管理器110的路径的子流可以被移除和/或降低优先级,使得可以潜在地减少后处理器网络服务430与客户端装置140之间的网络流量的延时。
43.作为另一个示例,三个服务410、420、430可以依次操作,使得一个服务在前一个服务结束后开始。例如,预处理器网络服务420可以提供认证和授权服务,目标网络服务410可以提供由客户端装置140请求的主要服务,并且后处理器网络服务430可以提供主要服务的记帐服务。客户端装置140可以通过在通信信道440上向服务链管理器110发送请求来请求与网络服务的多路径协议连接。例如,服务链管理器110可以管理网络服务的虚拟服务器的网络地址,并且针对访问网络服务的请求可以被寻址到网络服务的虚拟地址。可以在客户端装置140与服务链管理器110之间形成多路径协议连接(例如,mptcp连接)。服务链管理器110可以确定预处理器网络服务420是服务链中要访问以向客户端提供网络服务的第一服务。使用信道442,服务链管理器110可以在预处理器网络服务420与服务链管理器110之间创建多路径协议连接,使得来自客户端装置140的针对网络服务的请求可以通过信道440和442引导到预处理器网络服务420。服务链管理器110可以向预处理器网络服务420提供与客户端装置140与服务链管理器110之间的多路径协议连接相关联的连接信息(例如,令牌、共享秘密和/或加密密钥)。服务链管理器110可以向客户端装置140发送多路径协议数据包,从而添加预处理器网络服务420的地址。客户端装置140可以向网络服务请求添加子流到多路径协议连接,其中子流在客户端装置140与预处理器网络服务420之间的信道444上创建路径,所述路径省略了服务链管理器110。包括通过服务链管理器110的路径的子流可以被移除和/或降低优先级,使得可以潜在地减少客户端装置140与预处理器网络服务420之间的网络流量的延时。
44.预处理器网络服务420可以完成其功能并将控制传递给目标网络服务410。具体地,预处理器网络服务420可以通知服务链管理器110控制将被传递到目标网络服务410。服务链管理器110可以通过在信道450上向目标网络服务410发送请求来创建与目标网络服务410的连接。可以使用多路径协议连接以及信道450和440在客户端装置140与目标网络服务410之间传达数据。服务链管理器110可以向目标网络服务410提供连接信息。服务链管理器110可以将目标网络服务410的地址添加到客户端装置140与服务链管理器110之间的多路径协议连接。客户端装置140可以向目标网络服务410请求添加通过信道454的多路径协议连接的子流,所述子流省略了服务链管理器110。包括通过服务链管理器110的路径的子流可以被移除和/或降低优先级,使得可以潜在地减少客户端装置140与目标网络服务410之间的网络流量的延时。
45.目标网络服务410可以完成其功能并将控制传递给后处理器网络服务430。具体地,目标网络服务410可以通知服务链管理器110控制将被传递到后处理器网络服务430。包括客户端装置140与服务链管理器110之间的路径的子流可以被重新添加和/或重新优先化到多路径协议连接。服务链管理器110可以通过在信道460上向后处理器网络服务430发送请求来创建与后处理器网络服务430的连接。可以使用多路径协议连接以及信道460和440在客户端装置140与后处理器网络服务430之间传达数据。服务链管理器110可以向后处理器网络服务410提供连接信息。网络服务410或服务链管理器110可以从与客户端装置140的多路径协议连接中移除信道454上的子流。服务链管理器110可以将后处理器网络服务430的地址添加到客户端装置140与服务链管理器110之间的多路径协议连接。客户端装置140可以向后处理器网络服务430请求添加通过信道464的多路径协议连接的子流,所述子流省略了服务链管理器110。包括通过服务链管理器110的路径的子流可以被移除和/或降低优
先级,使得可以潜在地减少客户端装置140与后处理器网络服务430之间的网络流量的延时。
46.图5是诸如可以用于使用多路径协议提供网络服务的示例性中间服务器计算机110的框图。例如,中间服务器计算机设备110可以是负载平衡器、应用交付控制器、网络流量管理系统或被配置为在客户端-服务器架构的客户端(例如,图1的客户端140)与应用服务器(例如,图1的应用服务器120a-n)之间的通信路径中的另一个部件。中间服务器计算机设备110可以使用参考图9更详细描述的计算环境来实施。
47.中间服务器计算机设备110可以包括一个或多个处理器510、一个或多个通信接口520、一个或多个任选的外围接口512、和存储器530。处理器510、通信接口520、外围接口512和存储器530可以通过互连件(未示出)耦合在一起,使得计算机设备110的部件可以使用互连件彼此通信。通信接口520可以用于发送和接收与其他计算装置(诸如客户端和应用服务器)的通信(例如,网络数据包)。外围接口512可以用于与中间服务器计算机设备110的本地外围(诸如任选的硬件安全模块xxx)进行通信。处理器510可以用于执行存储在存储器530和/或存储资源(未示出)中的计算机可执行指令。计算机可执行指令可以被组织成包括可执行代码的软件例程(也称为模块或部件)以执行各种计算任务。应当注意,虽然图5示出了例程的一种组织,但是其他组织也是可能的。例如,所示例程可以被细分为更小的例程和/或组合为更大的例程。存储器530还可以包括由软件例程使用来执行计算任务的结构化和/或非结构化数据。
48.操作系统(os)内核532可以包括不同的软件例程,以用于管理程序执行的不同方面以及用于与中间服务器计算机设备110的硬件对接。例如,os内核532可以管理软件应用和其他例程到计算机设备110的存储器530的加载和移除;os内核532可以管理计算机设备110的存储资源;os内核532可以管理在处理器510上执行的进程和/或线程;os内核532可以管理计算机设备110的功率状态;os内核532可以为应用和其他例程提供接口以使用通信接口520发送和接收通信(例如,网络数据包);os内核532可以管理进出外围接口512的信息传递;并且os内核532可以实现在计算机设备110上执行的不同例程之间的进程间通信。
49.流量管理逻辑540可以包括不同的软件例程和/或硬件电路以用于通过执行各种代理和其他服务来控制经过中间服务器计算机110的网络流量,所述其他服务诸如例如负载平衡、速率监控、高速缓存、加密/解密、tls会话管理(包括密钥生成)、地址转换、流量转发、流量缓冲和/或访问控制。例如,流量管理逻辑114可以缓冲要处理和/或通过专用或公共网络转发到客户端、服务器或其他主机的网络流量(诸如在数据包数据缓冲器534中)。流量管理逻辑540可以包括计算机硬件、软件或其组合。如图所示,流量管理逻辑540被实施为软件(例如,完全或部分存储在存储器530中的可执行软件)。作为一个示例,流量管理逻辑540可以包括多线程实时软件例程。例如,流量管理逻辑540可以包括由中间服务器计算机110的处理器执行的软件守护进程。守护进程是作为后台进程运行的软件例程。实时软件例程是以时间约束处理信息的例程。实时系统可以基于时间约束来调度任务(例如,线程)并且可以基于完成任务的优先级来先占或中断任务。作为另一个示例,流量管理逻辑540可以包括硬件协处理器,所述协处理器被调谐用于执行如本文公开的处理数据包的操作。计算机硬件可以包括为单一目的制造的电路和/或可编程的可配置电路,诸如现场可编程门阵列(fpga)。
50.流量管理逻辑540可以通过各种不同的方式组织。如图所示,流量管理逻辑540可以包括代理和负载平衡逻辑550、多路径协议连接管理逻辑560以及任选的服务链管理逻辑542、aaa逻辑544和加密逻辑546。
51.代理和负载平衡逻辑550可以代表网络服务执行操作。例如,代理逻辑550可以呈现网络服务的虚拟地址112并且可以拦截针对网络服务的请求。具体地,针对网络服务的请求可以寻址到虚拟地址112并且代理逻辑550可以接收和处理所述请求。代理和负载平衡逻辑550可以维护和/或访问跟踪执行网络服务的操作的应用服务器的各种性能标准的数据库。例如,可以为应用服务器中的每一者测量和跟踪客户端连接的数量、处理器负载的量、可用网络带宽的量和/或其他性能标准。代理和负载平衡逻辑550可以为传入请求选择应用服务器中的一者。例如,代理和负载平衡逻辑550可以根据性能标准来选择负载较轻或负载低于其他应用服务器的应用服务器。换言之,对应用服务器的选择可以基于性能标准的度量。代理和负载平衡逻辑550可以从应用服务器接收响应并将响应转发到客户端装置。代理和负载平衡逻辑550可以代表应用服务器和/或客户端执行各种其他任务,诸如加密和/或解密、内容高速缓存、压缩和/或解压缩、访问控制、地址转换等等。
52.多路径协议连接管理逻辑560可以用于管理请求和提供网络服务的主机与充当请求者和提供者之间的中介的主机之间的多路径协议连接。通常,多路径协议连接管理逻辑560可以用于创建和移除多路径协议连接并且可以管理(例如,添加、移除和改变)所述连接内的子流。例如,多路径协议连接管理逻辑560可以接收针对创建连接的请求并且可以与请求者执行握手以创建连接。初始连接可以在中间服务器计算机110与客户端装置之间。多路径协议连接管理逻辑560可以以透明和/或非透明方式向所述连接添加应用服务器。例如,客户端与服务器之间的所有通信最初可以通过中间服务器计算机110,因此客户端可能不知道提供网络服务的应用服务器的身份。多路径协议连接管理逻辑560向所述连接添加子流,其在客户端与服务器之间创建省略中间服务器计算机110的子流。多路径协议连接管理逻辑560可以删除通过中间服务器计算机110的子流和/或降低其优先级,使得可以减少和/或消除与通过中间服务器计算机110相关联的延时。
53.服务链管理逻辑542可以用于编排组成网络服务的服务链以创建更全面的网络服务,诸如上文参考图4更详细地描述的。通常,服务链管理逻辑542可以维护组成服务的地址目录并且可以充当组成服务中的每一者的代理。因此,组成服务中的任一者可以通过向服务链管理逻辑542发送请求来访问不同的组成服务,并且服务链管理逻辑542可以充当服务之间的中介。例如,服务链管理逻辑542还可以管理服务之间的子流,诸如在服务链管理逻辑542不在子流中的情况下在服务之间创建更直接的路径。
54.aaa逻辑544可以为网络服务执行认证、授权和记帐功能。认证是验证实体身份是真实的过程。授权是验证实体(例如,经认证的实体)是否有权访问受保护资源的过程。可以使用aaa逻辑544和/或附加服务来执行认证和/或授权。例如,执行认证的一种方式是从寻求访问计算机系统的实体请求凭证,诸如用户标识符(例如,用户名或电子邮件地址)和口令。aaa逻辑544可以从主机请求凭证并将凭证或凭证的加密变换(例如,加密哈希值)与网络服务的真实凭证列表进行比较。作为另一个示例,aaa逻辑544可以将主机重定向到身份提供者服务,所述身份提供者服务可以执行主机的认证。在一个实施例中,aaa逻辑544可以创建与请求主机的多路径协议连接,然后将所述连接的子流添加到身份提供者服务。记帐
功能性可以包括限制和/或记录由主机使用的带宽量、主机的访问次数等等。
55.加密逻辑546可以包括用于执行加密操作的逻辑。例如,加密操作可以用于加密、解密和密钥生成。专门的安全硬件电路可以潜在地提高计算成本高昂的加密操作的性能。作为一个示例,加密操作可以结合诸如硬件安全模块(hsm)590之类的安全硬件电路来执行。hsm是计算机硬件和/或软件(例如,计算装置),其被配置为存储加密密钥、执行加密操作(诸如生成密钥、对数据加密和对数据解密)、并执行用于使用和/或访问加密密钥的安全策略。例如,hsm可以包括用于对各种加密算法进行流水线化和/或加速的电子电路。hsm可以包括物理外壳,所述物理外壳降低观察和/或篡改敏感数据(诸如服务器的私钥)的可能性。例如,外壳可以覆盖潜在的电气探针点并如果外壳被篡改,则显示可见的损坏。hsm可以根据安全策略来启用和/或拒绝对密钥的访问。例如,安全策略可以规定特定密钥只能在经授权的帐户凭证呈现给hsm时才使用和/或访问。因此,使用hsm可以潜在地提高存储在hsm上的信息的机密性和安全性,并且可以潜在地提高使用hsm的系统的性能。中间服务器计算机110可以是hsm 590的主要接口或唯一接口,使得密钥(例如,密钥592a-n)和其他加密数据被隔离,因此与在整个分布式计算系统中分布加密数据相比受到更多保护。
56.硬件安全模块可以使用各种不同的计算机架构来实施。例如,hsm 590可以被实施为对接到中间服务器计算机110的输入/输出或外围接口512(诸如外围部件互连快速(pcie)接口)的插入式电路卡并且可以包括连接器以用于连接到中间服务器计算机110的底板或其他连接器。作为另一个示例,hsm可以被实施为通过计算机网络连接的计算机设备(基于网络的hsm也可以称为nethsm)。作为另一个示例,hsm可以被实施为云计算基础设施内的虚拟化资源(基于云的hsm也可以称为cloudhsm)。hsm可以具有不同的存储容量和/或加速能力。例如,物理hsm可以被划分为多个逻辑hsm,其中每个逻辑hsm都可以具有不同的能力并且可以使用不同的帐户凭证进行访问。逻辑hsm也可以称为物理hsm的分区或令牌。hsm的分区可以彼此隔离,使得一个分区上的密钥和数据在不同分区中是不可见的。分区可以共享硬件和其他资源,或者分区可以使用特定的非共享硬件和资源。hsm可以使用各种存储技术,诸如随机存取存储器(ram)、非易失性ram、闪速存储器、硬盘驱动器、固态驱动器或其他存储实现方式。
57.使用多路径协议管理网络服务的示例性方法
58.图6是用于使用多路径协议管理网络服务的示例性方法600的流程图。方法600可以使用诸如上面参考图1至图5描述的架构100来实施。作为一个示例,用于执行方法600的计算机可执行指令可以存储在计算机可读存储器(例如,存储器530)中并且所述指令可以由一个或多个处理器(例如,处理器510)执行以执行方法600。
59.在610处,可以从请求主机拦截针对连接到服务的多路径协议请求。例如,多路径协议请求可以被分配了服务的虚拟地址的中间服务器拦截。中间服务器可以与请求主机执行握手以创建与服务的连接。在握手期间,可以协商连接的各种参数,诸如是否要使用加密、要使用何种加密密钥(如果使用加密)、共享秘密值、会话标识符的值等等。通过拦截在请求主机与服务之间流动的网络流量,中间服务器可以成为服务的代理。
60.在620处,可以选择与中间服务器不同的目标主机来提供服务。例如,可以从主机池中选择目标主机。可以维护主机的操作标准,诸如中央处理单元(cpu)负载、网络使用情况、客户端连接次数等等。可以基于操作标准从主机池中选择目标主机。例如,可以选择主
机以便将负载(例如,cpu负载、网络负载或客户端负载)分布在不同主机之间。中间服务器可以向目标主机发送连接信息,使得目标主机可以接受来自请求主机的子流连接。目标主机可以通过向中间服务器发送确认来确认接收到连接信息。附加的服务器可以被配置为允许请求主机与目标主机之间更直接的连接。例如,可以通知对主机池执行安全操作的防火墙服务器:允许请求主机在无需遍历中间服务器的情况下访问主机池中的一个或多个主机(例如,目标主机)。
61.在630处,可以从中间服务器向请求主机发送多路径协议数据包。所述多路径协议数据包可以使用所述目标主机的地址添加所述连接的子流。具体地,子流可以使得请求主机与目标主机之间的路径不会遍历中间服务器。可以在请求主机与目标主机之间执行握手,以将子流添加到与服务的连接中。
62.在任选640处,可以在不遍历中间服务器的子流与遍历中间服务器的子流之间分割连接上的网络流量。可以对子流进行加权,使得可以管理通过子流中的每一者的网络流量。例如,子流可以被加权,使得通过中间服务器的较高延时路径的使用率小于省略中间服务器的较低延时路径。作为一个示例,当所使用的多路径协议是mptcp时,可以通过从目标主机发送tcp窗口通告来实现加权。可以选择为每个子流通告的窗口,以创建通过每个子流的所需流量比率。保留预定义比率的流量通过遍历中间服务器的子流可以潜在地帮助基于来自服务的网络流量的量的计帐功能,同时减少服务的延时量,因为大多数流量可以流过省略中间服务器的子流。
63.在任选的650处,可以使用从中间服务器发送到请求主机的另一个多路径协议数据包从所述连接中移除服务的虚拟地址。通过从连接中移除服务的虚拟地址,可以从连接中移除遍历中间服务器的连接的子流。例如,这可以仅在请求主机与目标主机之间留下更直接的子流,从而可以减少提供服务的目标主机与请求主机之间的延时。
64.图7是用于诸如当使用服务链实施服务时使用多路径协议管理网络服务的示例性方法700的流程图。方法700可以使用诸如上文参考图4以及图1至图3、图5和图6描述的架构400来实施。作为一个示例,用于执行方法700的计算机可执行指令可以存储在计算机可读存储器(例如,存储器530)中并且所述指令可以由一个或多个处理器(例如,处理器510)执行以执行方法700。
65.在710处,可以从请求主机拦截针对连接到服务链的组成服务的多路径协议请求。服务链可以包括多种组成服务,所述组成服务彼此通信以实施更高级服务。例如,组成服务可以被流水线化使得服务同时操作。作为另一个示例,组成服务可以被定序,使得一个服务在另一个服务完成后开始。多路径协议请求可以被分配了组成服务的虚拟地址的中间服务器拦截。中间服务器可以与请求主机执行握手以创建与组成服务的连接。在握手期间,可以协商连接的各种参数,诸如是否要使用加密、要使用何种加密密钥(如果使用加密)、共享秘密值、会话标识符的值等等。通过拦截在请求主机与组成服务之间流动的网络流量,中间服务器可以成为组成服务的代理。
66.在720处,可以选择与中间服务器不同的目标主机来提供组成服务。例如,可以从主机池中选择目标主机。可以维护主机的操作标准,诸如中央处理单元(cpu)负载、网络使用情况、客户端连接次数等等。可以基于操作标准从主机池中选择目标主机。例如,可以选择主机以便将负载(例如,cpu负载、网络负载或客户端负载)分布在不同主机之间。中间服
务器可以向目标主机发送连接信息,使得目标主机可以接受来自请求主机的子流连接。目标主机可以通过向中间服务器发送确认来确认接收到连接信息。
67.在730处,可以创建与服务链的组成服务的连接。例如,可以在请求主机与中间服务器之间的握手结束时创建与组成服务的连接。所述连接可以包括通过中间服务器的子流(例如,使用组成服务的虚拟地址)。例如,当使用连接的子流发送从请求主机到目标主机的网络流量时,所述流量可以遍历中间服务器。
68.在740处,可以将使用目标主机地址的子流添加到与组成服务的连接。例如,可以从中间服务器向请求主机发送添加连接子流的多路径协议数据包。所述子流可以使得所述请求主机与所述目标主机之间的路径不遍历所述中间服务器。可以在请求主机与目标主机之间执行握手,以将子流添加到与组成服务的连接中。
69.在任选750处,可以在不遍历中间服务器的子流与遍历中间服务器的子流之间分割连接上的网络流量。可以对子流进行加权,使得可以管理通过子流中的每一者的网络流量。例如,子流可以被加权,使得通过中间服务器的较高延时路径的使用率小于省略中间服务器的较低延时路径。作为一个示例,当所使用的多路径协议是mptcp时,可以通过从目标主机发送tcp窗口通告来实现加权。可以选择为每个子流通告的窗口,以创建通过每个子流的所需流量比率。保留预定义比率的流量通过遍历中间服务器的子流可以潜在地帮助基于来自组成服务的网络流量的量的计帐功能,同时减少服务的延时量,因为大多数流量可以流过省略中间服务器的子流。
70.在任选的760处,可以使用从中间服务器发送到请求主机的另一个多路径协议数据包从所述连接中移除组成服务的虚拟地址。通过从连接中移除组成服务的虚拟地址,可以从连接中移除遍历中间服务器的连接的子流。例如,这可以仅在请求主机与目标主机之间留下更直接的子流,从而可以减少提供组成服务的目标主机与请求主机之间的延时。
71.示例性计算环境
72.图8示出了示例性客户端-服务器架构800(也称为网络流量管理系统),其包含可以用于使用多路径协议管理网络服务的网络流量管理设备810。客户端-服务器架构800包括网络流量管理设备810,其经由一种或多种通信网络(诸如通信网络840a和840b)耦合到一个或多个服务器计算机(诸如应用服务器计算机820a-n和任选的防火墙服务器计算机850)和一个或多个客户端装置(诸如客户端计算装置830a-n)。服务器计算机820a-n和850可以与可经由通信网络840a访问的一个或多个附加服务器计算机进行通信。作为一个示例,通信网络840a可以包括公共网络(例如,互联网)并且可以使用公共网络地址访问附接到网络840a的装置;通信网络840b可以包括专用网络并且可以使用专用网络地址访问附接到网络840b的装置。
73.通信网络840a-b可以包括各种有线和/或无线通信技术,诸如局域网(lan)、广域网(wan)、内联网、互联网、公共交换电话网络(pstn)等等。连接到通信网络840a-b的装置可以使用各种通信协议彼此通信,所述通信协议诸如以太网上的传输控制协议与互联网协议(tcp/ip)和/或其他定制或行业标准协议。通信协议可以用于使用基于数据包的消息(例如,基于以太网的数据包数据网络)和/或其他应用编程接口(api)在网络840a-b上传输信息。api是用于在不同模块之间进行通信的编程接口(例如,一组方法和/或协议)。通信网络840a-b可以包括各种网络装置,诸如例如交换机(多层或单层)、路由器、中继器、网关、网
桥、集线器、协议转换器、网桥路由器、代理服务器、防火墙、网络地址转换器、多路复用器、网络接口控制器、无线网络接口控制器、调制解调器、线路驱动器和无线接入点。如图所示,网络流量管理设备810内嵌地位于客户端计算装置830a-n与服务器计算机820a-n之间,使得网络流量管理设备810可以拦截在不同网络840a和840b之间流动的网络流量。在其他示例中,网络流量管理设备810、服务器计算机820a-n和850以及客户端装置830a-n可以经由其他拓扑耦合在一起。作为一个具体示例,服务器计算机820a-n可以集成在网络流量管理系统800内(例如,服务器计算机功能可以在网络流量管理设备810的一个或多个装置内的软件中实施)。受益于本公开的本领域普通技术人员应当理解,图8中所示的网络拓扑结构已经被简化并且可以利用多个网络和联网装置来互连本文公开的各种计算系统。另外,这些示例中的客户端-服务器架构800的装置中的一者或多者可以在相同或不同的通信网络中,所述通信网络包括例如一个或多个公共、专用或云网络。
74.通常,服务器计算机820a-n和850、客户端装置830a-n以及网络流量管理系统800可以执行使用计算环境(诸如关于图9更详细描述的计算环境)实施的各种计算任务。计算环境可以包括计算机硬件、计算机软件及其组合。作为特定示例,计算环境可以包括通用和/或专用处理器、可配置和/或硬连线电子电路、通信接口和用于存储计算机可执行指令的计算机可读存储器,以使得处理器能够执行给定的计算任务。用于执行给定任务的逻辑可以在单个模块中指定或者可以散布在多个模块中。如本文中所使用的术语“模块”和“部件”可以指代一个或多个专用硬件装置或设备(例如,计算机)内的实现方式,和/或由可以托管一个或多个其他软件应用或实现方式的一个或多个硬件装置或设备托管的软件内的实现方式。
75.客户端装置830a-n可以包括可以交换网络数据的任何类型的计算装置,诸如移动通信装置、膝上型计算机、台式计算机、平板计算机、在基于云计算机的环境内执行的虚拟机等等。客户端装置830a-n可以运行接口应用,诸如web浏览器或独立客户端应用,其可以提供接口以经由通信网络840a和840b与服务器计算机820a-n和850中的一者或多者进行通信(例如,请求和接收存储在所述一者或多者上的内容)。客户端装置830a-n还可以包括输出装置(诸如显示屏或触摸屏(未示出))和/或输入装置(诸如键盘(未示出))。另外,客户端装置830a-n中的一者或多者可以被配置为执行软件代码(例如,web浏览器内的javascript代码)以便记录客户端侧数据并将记录的数据提供给网络流量管理设备810或服务器计算机820a-n。
76.服务器计算机820a-n和850可以包括可以交换网络数据的任何类型的计算装置。例如,服务器计算机820a-n和850可以与客户端装置830a-n并且与彼此交换网络数据。作为另一个示例,服务器计算机820a-n可以沿着由应用逻辑指定的通信路径交换通信以便促进客户端-服务器应用与客户端装置830a-n交互。服务器计算机820a-n的示例可以包括应用服务器、数据库服务器、访问控制服务器和加密服务器。因此,在一些示例中,服务器计算机820a-n中的一者或多者处理登录和经由通信网络840a和840b根据超文本传输协议(http)或超文本传输协议安全(https)应用层协议从客户端装置830a-n接收到的其它请求。web应用可以在服务器计算机820a-n中的一者或多者上操作并且响应于来自客户端装置830a-n的请求而将数据(例如,文件或web页)传输到客户端装置830a-n(例如,经由网络流量管理设备810)。服务器计算机820a-n可以是硬件和/或软件并且可以表示可以包括内部或外部
网络的池中具有多个服务器的系统。
77.任选的防火墙服务器计算机850可以执行防火墙应用。防火墙是实施安全策略的网络安全系统,所述安全策略指定如何监控和/或控制通过防火墙的网络流量。防火墙可以分析来自网络堆栈的不同层的网络数据包中的字段,并基于来自网络数据包中的字段做出访问控制决策。例如,传统防火墙可以分析来自网络和传输层(开放系统互连(osi)模型的第3层和第4层)的数据包字段,而web应用防火墙(waf)可以分析来自应用层(osi模型的第7层)的数据包字段并基于分析的字段做出访问控制决策。作为一个示例,防火墙可以基于在防火墙上配置的策略和/或规则来控制(例如,允许或阻止)流量。具体地,防火墙可以允许与许可列表上的规则匹配的流量,并可以阻止与拒绝列表上的规则匹配的流量。
78.虽然服务器计算机820a-n和850被示为单一装置,但是服务器计算机820a-n和850中的每一者的一个或多个动作可以跨一起包括服务器计算机820a-n和850中的一者或多者的一个或多个不同的网络计算装置分布。此外,服务器计算机820a-n和850不限于特定配置。因此,服务器计算机820a-n和850可以包含使用协调方法操作的网络计算装置,由此服务器计算机820a-n和850的网络计算装置中的一者操作以管理或以其他方式协调另一个网络计算装置的操作。服务器计算机820a-n和850中的每一者都可以作为例如集群架构内的联网计算装置、对等架构内的计算装置、虚拟机、或基于云的计算机架构内的资源来操作。因此,本文公开的技术不应被解释为限于单个环境,并且还设想了其他配置和架构。例如,服务器计算机820a-n和850中的一者或多者可以在网络流量管理设备810本身内操作,而不是作为经由通信网络840b与网络流量管理设备810进行通信的独立服务器装置来操作。在该示例中,服务器计算机820a-n和850中的一者或多者在网络流量管理设备810的存储器内操作。
79.网络流量管理设备810可以包括可以用于管理网络流量的任何类型的计算装置。网络流量管理设备810可以执行多种功能,包括例如提供网络安全、访问控制、对服务器计算机820a-n上的网络流量进行负载平衡、和/或加速与由服务器计算机820a-n中的一者或多者托管的应用相关联的网络流量。功能中的每一者都可以由服务执行。服务可以被并入由网络流量管理设备810执行的工作负载中。例如,网络流量管理设备810可以包括用于代表服务器820a-n执行代理和其他服务并管理客户端830a-n与服务器820a-n之间的流量的工作负载。另外,网络流量管理设备810可以包括其他网络装置,诸如例如一个或多个路由器或交换机。
80.网络流量管理设备810可以包括如上文参考图5以及图1至图4和图6至图7描述的代理和负载平衡逻辑550以及多路径协议连接管理逻辑560。例如,多路径协议连接管理逻辑560可以用于管理请求网络服务的主机(例如,客户端装置830a-n)和提供网络服务的主机(例如,应用服务器计算机820a-n)和充当请求者与提供者之间的中介的主机(例如,网络流量管理器810)之间的多路径协议连接。通常,多路径协议连接管理逻辑560可以用于创建和移除多路径协议连接并且可以管理(例如,添加、移除和改变)所述连接内的子流。
81.作为特定示例,客户端装置830a可以将请求寻址到网络服务的虚拟地址112,其中所述请求正请求连接到网络服务。网络流量管理器810可以选择应用服务器计算机820n来提供网络服务。网络流量管理器810可以使用遍历网络流量管理器810的子流在客户端装置830a与网络服务之间创建多路径连接。例如,子流可以与网络服务的虚拟地址112相关联。
网络流量管理器810可以向应用服务器计算机820n和防火墙服务器计算机850提供连接信息。例如,网络流量管理器810可以请求将客户端装置830a添加到防火墙服务器计算机850的许可列表中,使得客户端装置830a可以与防火墙的另一侧的服务器820a-n进行通信。网络流量管理器810可以向多路径连接添加附加子流,其中附加子流不会遍历网络流量管理器810。例如,附加子流可以使用应用服务器计算机820n的地址来与客户端装置830a更直接通信。可以移除通过网络流量管理器810的初始子流,使得仅保留附加子流,并且可以移除与遍历网络流量管理器810相关联的延时。
82.虽然网络流量管理设备810在该示例中被示为包括单个装置,但是其他示例中的网络流量管理设备810可以包括多个装置或刀片,每个装置或刀片具有实施本技术的一个或多个部件的一个或多个处理器(每个处理器具有一个或多个处理核)。在这些示例中,装置中的一者或多者可以具有专用通信接口或存储器。替代地,装置中的一者或多者可以利用包括在网络流量管理设备810中的一个或多个其他装置的存储器、通信接口或其他硬件或软件部件。另外,网络流量管理设备810和/或由网络流量管理设备810执行的应用可以在基于云的计算环境中操作。应用可以执行于可以在基于云的计算环境中管理的虚拟机或虚拟服务器中或作为所述虚拟机或虚拟服务器执行。例如,应用、甚至网络流量管理设备810本身可以位于在基于云的计算环境中运行而不是绑定到一个或多个特定物理网络计算装置的虚拟服务器中。而且,应用可以在执行于网络流量管理设备810上的一个或多个虚拟机(vm)中运行。另外,在本技术的一个或多个示例中,在网络流量管理设备810上运行的虚拟机可以由管理程序管理或监督。另外,一起包括网络流量管理设备810的部件中的一者或多者可以是独立装置或与一个或多个其他装置或设备集成,诸如例如与服务器计算机820a-n中的一者或多者集成。
83.另外,在客户端-服务器架构800中描绘的部件中的一者或多者(诸如例如网络流量管理设备810、服务器计算机820a-n、防火墙服务器计算机850或客户端计算装置830a-n)可以被配置为在同一物理机器上作为虚拟实例来操作。换言之,网络流量管理设备810、服务器计算机820a-n、防火墙服务器计算机850或客户端计算装置830a-n中的一者或多者可以在同一物理装置上操作,而不是作为通过通信网络840a和840b进行通信的单独装置来操作。另外,可能存在比图8中所示更多或更少的网络流量管理设备、客户端计算装置或服务器计算机。
84.图9示出了可以用于实施本文描述的示例、技术(technique/technology)的合适的计算环境900的通用示例的框图。例如,计算环境900可以用于实施包括中间服务器的网络流量管理设备,所述中间服务器执行用于使用多路径通信协议来管理网络服务的所公开技术。
85.计算环境900包括至少一个处理单元910和计算机可读存储器920,它们通过互连件930耦合在一起。处理单元910执行计算机可执行指令。处理单元910可以包括通用处理器、专用处理器及其组合。例如,处理单元910可以包括通用中央处理单元(cpu)、图形处理器、专用集成电路(asic)中的处理器、被配置为使用可编程逻辑(诸如在现场可编程门阵列(fpga)中)操作的处理器、和/或任何其他类型的处理器。在多处理系统中,可以使用多个处理单元来执行计算机可执行指令以提高处理能力。
86.存储器920存储软件940,所述软件以适合由处理单元910执行的计算机可执行指
令的形式实施本文描述的一项或多项创新。具体地,存储器920可以用于存储计算机可执行指令、数据结构、输入数据、输出数据和其他信息。存储器920可以包括易失性存储器(例如,寄存器、高速缓存、随机存取存储器(ram))、非易失性存储器(例如,只读存储器(rom)、电可擦除可编程rom(eeprom)和闪速存储器)、和/或其组合。存储器920可以包括操作系统软件(未示出)。操作系统软件可以为在计算环境900中执行的其他软件提供操作环境并且可以协调计算环境900的部件的活动。
87.互连件930用于将计算环境900的不同部件连接在一起,使得处理单元910可以与不同部件进行通信和/或使得不同部件可以彼此进行通信。例如,互连件930可以包括总线、控制器和/或网络。作为一个示例,互连件930可以包括用于将处理单元910连接到相对高速部件(诸如存储器920)的主机桥(也称为北桥)和用于将处理单元连接到计算环境900内的相对低速部件(诸如通信接口950)的输入/输出桥(也称为南桥)。在一些示例中,计算环境900的一个或多个部件可以集成在处理单元910内或直接连接到所述处理单元。
88.计算环境900可以包括用于使用通信介质(例如,物理层)与另一个计算实体进行通信的通信接口950。通信接口950可以实施网络协议堆栈的全部或一部分。网络协议堆栈定义用于在连接到网络的不同装置之间进行通信的通信格式和规则。例如,网络协议堆栈可以使用开放系统互连(osi)模型或另一种模型定义用于通信的模块化层。osi模型将通信系统标准化并划分为七层,包括物理层(称为第1层)和应用层(称为第7层)。应用层可以用于定义应用如何访问通信子系统。物理层定义通过通信介质(也称为物理传输介质)进行通信的电气和物理规范。通信介质可以用于在调制数据信号中传送信息,诸如计算机可执行指令或其他数据。调制数据信号是如下信号:其特性中的一个或多个经过调整以便对信号中的信息进行编码。通信接口950可以包括电子和/或光学电路以接收和传输使用电气、光学、射频(rf)或另一种载波信号进行编码(例如,根据网络堆栈的物理层规范进行编码)的通信信号。因此,通信接口950可以用于通过有线连接(例如,双绞线对、同轴电缆和光纤连接)和/或无线技术(例如,蓝牙、wifi(ieee802.11)和蜂窝)进行通信。作为参考图8的特定示例,网络流量管理设备810的通信接口可操作地耦合到通信网络840a和840b并与其通信,使得网络流量管理设备810耦合到服务器计算机820a-n和客户端计算装置830a-n并且可以与其通信。
89.计算环境900可以包括用于存储软件940的指令、数据结构和数据的存储装置960,所述指令、数据结构和数据可以用于实施本文描述的技术。存储装置960可以包括用于使用耦合到处理器的磁、光学或其他读和写系统来读取和/或写入到可移动或不可移动存储介质的电子电路。存储装置960可以包括只读存储介质和/或可读和可写存储介质,诸如磁盘、固态驱动器、磁带或盒式磁带、cd-rom、cd-rw、dvd、或可以用于存储信息并且可以在计算环境900内访问的任何其他介质。
90.计算环境900可以包括输入装置970。例如,输入装置970可以提供与计算环境900的用户的和/或用于从物理环境接收输入的输入接口。输入装置970可以包括触觉输入装置(例如,键盘、鼠标或触摸屏)、传声器、相机、传感器或向计算环境900提供输入的另一个装置。
91.计算环境900可以包括输出装置980。例如,输出装置980可以提供与计算环境900的用户的和/或用于生成在物理环境中可观察的输出的输出接口。输出装置980可以包括发
光二极管、显示器、打印机、扬声器、cd写录机或提供来自计算环境900的输出的另一个装置。在一些示例中,输入装置970和输出装置980可以一起使用以向计算环境900的用户提供用户界面。
92.计算环境900不意图对技术的使用范围或功能性提出限制,因为所述技术可以在不同的通用和/或专用计算环境中实施。例如,所公开的技术可以在本地、分布式和/或支持网络的计算环境中实践。在分布式计算环境中,任务由多个处理装置执行。因此,还可以根据需要实施分布式处理的原理和优点,诸如冗余、并行化和复制,以提高示例的装置和系统的稳健性和性能。示例还可以在使用任何合适的接口机制和流量技术跨任何合适的网络扩展的计算机系统上实施,所述网络包括(仅作为示例)无线流量网络、蜂窝流量网络、分组数据网络(pdn)、互联网、内联网及其组合。作为特定示例,分布式计算环境可以包括处理单元910和通过通信网络链接的网络可访问计算环境890。在分布式计算环境中,程序模块840(包括用于使用多路径通信协议管理网络服务的可执行指令)可以位于本地和远程存储器存储装置两者中。
93.术语计算机可读介质包括用于数据存储的非暂时性介质,诸如存储器920和存储装置960,并且不包括诸如调制数据信号和载波之类的传输介质。任何公开的方法都可以被实施为存储在一个或多个计算机可读介质上并在计算机(例如,任何市售计算机)上执行的计算机可执行指令。用于实施所公开技术的任何计算机可执行指令以及在所公开实施例的实施期间创建和使用的任何数据结构和数据都可以存储在一个或多个计算机可读存储介质上。例如,计算机可执行指令可以是专用软件应用或经由web浏览器或其他软件应用(诸如远程计算应用)访问或下载的软件应用的一部分。例如,此类软件可以在单个本地计算机(例如,任何合适的市售计算机)上或在网络环境中(例如,经由互联网、广域网、局域网、客户端-服务器网络或其他此类网络)使用一个或多个网络附接计算机来执行。
94.本公开在不意图具有限制性的代表性示例的上下文中阐述。因此,本公开是针对各种所公开示例的所有新颖和非明显的特征和方面,它们是单独的以及彼此的各种组合和子组合。用于实施示例的特定硬件和软件的许多变化都是可能的,如相关领域的技术人员在本公开的受益下将理解的。所公开系统、方法和设备不限于任何特定方面或特征或其组合,所公开技术也不要求存在任何一个或多个特定优点或解决问题。本文中参考所公开技术而提出的操作理论、科学原理或其他理论描述的提供是为了更好地解释并且不意图限制范围。所附权利要求中的设备和方法不限于以由此类操作理论描述的方式起作用的那些设备和方法。
95.如在本技术所使用的单数形式“一(a/an)”和“所述”包括复数形式,除非上下文另外清楚表明。术语“耦合”包含机械、电气、磁、光学方式以及将项目耦合或链接在一起的其他实践方式,并且不排除所耦合项目之间存在中间元件。术语“和/或”是指短语中的任何一个项目或项目组合。
96.因此,所列举的处理元件或序列的顺序、或者数字、字母或其他名称的使用并不意图将要求保护的过程限制为任何顺序。虽然为了方便呈现而以特定的、连续的顺序描述了一些所公开方法的操作,但是应当理解,这种描述方式包含重新排列,除非下面阐述的特定权利要求语言要求特定的顺序。例如,依次描述的操作在一些情况下可以被重新布置或同时执行。此外,为了简单起见,附图可能未示出所公开方法可以与其他方法结合使用的所有
各种方式。
97.还应当充分理解,本文描述的任何软件功能性可以至少部分地由一个或多个硬件逻辑部件而不是软件来执行。例如但不限于,可以使用的硬件逻辑部件的说明性类型包括现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统系统(soc)、复杂可编程逻辑装置(cpld)等等。
98.为了清楚起见,仅描述了基于软件的实现方式的某些选定方面。省略了本领域公知的其他细节。例如,应当理解,所公开技术不限于任何特定的计算机语言或程序。例如,所公开技术可以通过用c、c 、java或任何其他合适的编程语言编写的软件来实施。同样,所公开技术不限于任何特定的计算机或硬件类型。合适的计算机和硬件的某些细节是公知的并且不需要在本公开中详细阐述。
99.在已经因此描述了可以应用本发明的原理的许多可能的实施例,本领域技术人员将认识到,前述详细公开仅意图通过示例的方式呈现,而不是限制性的。虽然在本文没有明确说明,但是各种改变、改进和修改将会发生并且意图供本领域技术人员使用。这些改变、改进和修改意图在此提出,并且在本发明的精神和范围内。因此,所要求保护的主题的范围由所附权利要求限定。我们因此要求我们的发明全部落入这些权利要求的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献