《用于多核虚拟分组引擎装置中的半虚拟化驱动程序的系统和方法.pdf》由会员分享,可在线阅读,更多相关《用于多核虚拟分组引擎装置中的半虚拟化驱动程序的系统和方法.pdf(93页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103155520 A(43)申请公布日 2013.06.12CN103155520A*CN103155520A*(21)申请号 201180048120.3(22)申请日 2011.08.0561/371,309 2010.08.06 USH04L 29/08(2006.01)G06F 9/54(2006.01)(71)申请人思杰系统有限公司地址美国佛罗里达州(72)发明人 D格尔(74)专利代理机构北京泛华伟业知识产权代理有限公司 11280代理人王勇(54) 发明名称用于多核虚拟分组引擎装置中的半虚拟化驱动程序的系统和方法(57) 摘要本发明涉及用于在多核装置的。
2、网络接口硬件和由多核装置的一个或多个核执行的多个虚拟化分组处理器之间传递分组的方法和系统。装置上的第一虚拟化域可经由网络接口硬件接收(1201)分组。第一虚拟化域可包括具有访问该硬件的权限的特权域。系统可将分组传递(1203)到来自多个虚拟化分组处理器并且在核上的第二虚拟化域内执行的虚拟化分组处理器的队列。第二虚拟化域可能没有直接访问网络接口硬件的权限。分组处理器可确定(1205)该队列包括从队列读取的多个分组和写入队列的多个分组之间的差异。分组处理器可响应于该确定处理(1207)来自该队列的分组。(30)优先权数据(85)PCT申请进入国家阶段日2013.04.03(86)PCT申请的申请数。
3、据PCT/US2011/046776 2011.08.05(87)PCT申 请的公布数据WO2012/019114 EN 2012.02.09(51)Int.Cl.权利要求书2页 说明书62页 附图28页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书62页 附图28页(10)申请公布号 CN 103155520 ACN 103155520 A1/2页21.一种用于在多核装置的网络接口硬件和由多核装置的一个或多个核执行的多个虚拟化分组处理器之间传递分组的方法,所述方法包括:(a)由在多核装置上执行的第一虚拟化域经由所述多核装置的网络接口硬件接收分组,所述第一虚拟化。
4、域包括具有直接访问所述网络接口硬件的权限的特权域;(b)将所述分组传递到虚拟化分组处理器的队列,所述虚拟化分组处理器来自于多个虚拟化分组处理器并且在所述多核装置的核上的第二虚拟化域中执行,所述第二虚拟化域来自于没有直接访问所述网络接口硬件的权限的多个虚拟化域;(c)由所述虚拟化分组处理器确定所述队列包括从所述队列读取的多个分组与写入所述队列的多个分组之间的区别;以及(d)由所述虚拟化分组处理器响应于该确定处理所述队列中的分组。2.根据权利要求1所述的方法,还包括在所述第一虚拟化域中执行驱动程序的第一部分,用于接收来自于所述网络接口硬件的分组,以及在所述第二虚拟化域中执行所述驱动程序的第二部分,。
5、用于接收来自所述队列的分组。3.根据权利要求1所述的方法,还包括在所述多核装置的内核存储空间中建立所述队列,其中所述第一虚拟化域和所述第二虚拟化域能够访问所述队列。4.根据权利要求1所述的方法,还包括为多个虚拟化分组处理器中的每一个分配所述多核装置的内核存储空间中的相应的队列。5.根据权利要求1所述的方法,还包括在所述多核装置的用户存储空间中执行所述虚拟化分组处理器。6.根据权利要求1所述的方法,还包括由所述虚拟化分组处理器响应于识别从所述队列读取的分组数量与写入所述队列的分组数量之间的区别,生成系统调用或管理程序调用,以将所述分组从所述队列传输到所述第二虚拟化域。7.根据权利要求1所述的方法。
6、,其中(d)还包括将所述分组从所述队列中的第一格式转换为第二格式,用于由所述虚拟化分组处理器进行处理。8.根据权利要求1所述的方法,还包括将多个分组从所述队列传输到驻留在用户存储空间中的所述虚拟化分组处理器的接收队列。9.根据权利要求1所述的方法,还包括在将所述分组传递到所述虚拟化分组处理器的队列之前,由所述第一虚拟化域将所述分组发送到驻留在所述多核装置的内核空间中的共享队列中。10.根据权利要求1所述的方法,还包括将所述分组从内核存储空间中的队列传递到所述多核装置的用户存储空间中的第二虚拟化域的接收队列。11.一种用于在多核装置的网络接口硬件和由多核装置的一个或多个核执行的多个虚拟化分组处理。
7、器之间传递分组的方法,所述方法包括:(a)由在多核装置的核上的第一虚拟化域中执行的虚拟化分组处理器将分组缓冲到所述第一虚拟化域的发送队列中,所述第一虚拟化域来自于没有直接访问所述多核装置的网络接口硬件的权限的多个虚拟化域;(b)由所述虚拟化分组处理器确定所述发送队列具有要发送的一个或多个分组;(c)响应于该确定,将一个或多个分组从所述发送队列发送到驻留在所述多核装置的内核存储空间上的、能够由第二虚拟化域访问的共享队列,所述第二虚拟化域包括具有直权 利 要 求 书CN 103155520 A2/2页3接访问所述网络接口硬件的权限的特权域;以及(d)响应于来自所述第一虚拟化域的通知,由所述第二虚拟。
8、化域访问所述共享队列中的一个或多个分组,该一个或多个分组用于经由所述网络接口硬件发送到网络。12.根据权利要求11所述的方法,还包括在所述第一虚拟化域中执行驱动程序的第一部分,以将所述分组缓冲到所述发送队列,以及在所述第二虚拟化域中执行所述驱动程序的第二部分,以访问所述共享队列中的分组。13.根据权利要求11所述的方法,其中所述共享队列驻留在管理程序的内核空间中,所述管理程序提供所述第一和第二虚拟化域。14.根据权利要求11所述的方法,还包括在所述多核装置的内核空间中建立所述共享队列,其中所述第一虚拟化域能够访问所述共享队列。15.根据权利要求11所述的方法,还包括由所述虚拟化分组处理器响应于。
9、将一个或多个分组缓冲到所述发送队列来生成系统调用,以发起向内核存储空间中的所述共享队列传递所述发送队列上的一个或多个分组。16.根据权利要求11所述的方法,还包括由所述虚拟化分组处理器在内核存储空间中生成管理程序调用,以发起向内核存储空间中的所述共享队列传递所述发送队列上的一个或多个分组。17.根据权利要求11所述的方法,其中(a)还包括在将分组缓冲到所述发送队列之前,将所述分组从与所述虚拟化分组处理器关联的第一格式转换为第二格式。18.一种用于在多核装置的网络接口硬件和由多核装置的一个或多个核执行的多个虚拟化分组处理器之间传递分组的系统,所述系统包括:第一虚拟化域,所述第一虚拟化域在多核装置。
10、的第一核上执行、包括具有直接访问所述多核装置的网络接口硬件的权限的特权域、经由所述网络接口硬件接收分组、并且将接收的分组传递到所述多核装置的内核模式中的队列;以及第二虚拟化域,所述第二虚拟化域来自于没有直接访问所述网络接口硬件的权限的多个虚拟化域、在所述多核装置的第二核上执行、并且包括虚拟化分组处理器,所述虚拟化分组处理器响应于确定所述队列具有从所述队列读取的多个分组和写入所述队列的多个分组之间的区别,来访问所述队列中的分组。19.根据权利要求18所述的系统,其中所述第一虚拟化域还包括驱动程序的第一部分,用于从所述网络接口硬件接收分组,并且所述第二虚拟化域还包括所述驱动程序的第二部分,用于接收。
11、来自所述队列的分组。20.根据权利要求18所述的系统,其中所述第二虚拟化域响应于该确定,在内核存储空间中生成系统调用或管理程序调用,以访问所述队列上的分组。权 利 要 求 书CN 103155520 A1/62页4用于多核虚拟分组引擎装置中的半虚拟化驱动程序的系统和方法0001 相关申请0002 本申请要求在2010年8月6日提交的、标题为“SYSTEMS AND METHODS FOR A PARA-VIRTUALIZED DRIVER IN A MULTI-CORE VIRTUAL PACKET ENGINE DEVICE”的美国临时专利申请NO.61/371309的优先权,该美国临时专利。
12、申请通过引用被全部包含于此。技术领域0003 本申请总的涉及多核装置中的数据通信网络。本申请尤其涉及用于在运行多个虚拟化分组引擎的多核装置中提供半虚拟化(para-virtualized)驱动程序的系统和方法。背景技术0004 在多核系统中,任一核可以执行相同功能或不同功能。多核系统可部署接收侧调节器(scaler),例如微软的接收侧调节技术,该接收侧调节器用于将从网络接口卡接收的分组分发到任一核以进行处理。该接收侧调节器可能不知道在任何核上执行的功能。当接收侧调节器从网络接口卡接收网络分组时,其基于预定功能将该网络分组转发到核。该网络分组可以是某一上下文中的事务的一部分或一系列的多个网络分组。
13、的部分。由于接收侧调节器的分发功能,这些网络分组中的一些可能去往不同的核。此外,可以在每个核上运行虚拟化环境。这些虚拟化环境可共享物理网络接口卡。这可能导致在基于上下文或数据流来处理和协调跨核及虚拟化环境的网络分组时出现问题。发明内容0005 多核系统可平衡该多核系统中一个或多个核上的网络流量。这些多核系统可包括任意数量的核或处理器。在一些实施例中,多核系统根据流分布模型来分发网络流量,该流分布模型例如是功能并行性,其中将多核系统的每个核分配给不同的功能,或者是数据并行性,其中将多核系统中的每个核分配给不同的装置或模块。0006 在一些实例中,在一个或多个核上分发网络流量需要从网络接口卡获得网。
14、络流量并且将该网络流量存储在所选择的核上。很多网络接口卡包括发送和接收队列,其中,可以在将数据分组穿过内部系统进行转发之前或者将数据分组通过网络发送出去之前,在该发送和接收队列中存储该最新接收的数据分组。通常,核不与特定的网络接口卡相关联,且因而核没有访问通常包含在网络接口卡中的发送和接收队列的权限。相反地,在一些实施例中,多核系统中的每个核共享公用网络接口卡。0007 在一些情况下,核可以运行虚拟化环境,其中在管理程序上操作分组引擎。每个核可通过管理程序来运行客户操作系统,称作域。该客户操作系统可具有不同的特权。一个核可能具有直接访问装置的硬件和驱动程序(例如物理NIC卡)以及与装置的硬件和。
15、驱动程序直接相接的特权。该核可直接访问核共享的硬件的公用网络接口和虚拟化环境。其他核可能不具有这样的特权,并且经由管理程序的接口以及通过与具有访问NIC的特权的核进说 明 书CN 103155520 A2/62页5行通信来访问NIC的网络流量。0008 在一些方面,本解决方案针对设计和实现半虚拟化网络驱动程序,用于处理在多核系统的相应核上运行的多个虚拟化分组处理引擎之间的网络通信。运行虚拟化环境的第一域的第一核从多核装置的NIC接收分组。第一核的第一域可建立与第二核的第二域的通知通道。第一域将这些分组通过由管理程序的共享存储接口提供的RX环发送到第二域。第一域经由通知通道向第二域发送通知。第二。
16、域在网络I/O处理期间可以检查读取和写入描述符之间的区别。基于该区别,第二域可从RX环读取分组。第二域将来自RX环的这些分组转换为由分组处理引擎处理的形式。0009 第二域的分组处理引擎可具有经由物理NIC发送的网络分组。第二域可将网络分组转换为用于发送到存储缓冲区的形式。第二域将这些存储缓冲区存储到共享TX环。第二域还向第一域发送通知,指示分组存储到共享的TX环。在网络I/O操作期间,第一域基于对共享环的读取和写入描述符之间的区别从TX共享环读取。基于该区别,第一域从共享TX环读取存储缓冲区,将分组转换为用于分组处理引擎经由物理NIC发送的形式。接着将这些分组由第一域经由物理NIC进行发送。。
17、0010 在一个方面,本解决方案涉及用于在多核装置的网络接口硬件和由多核装置的一个或多个核执行的多个虚拟化分组处理器之间传递分组的方法。在多核装置上执行的第一虚拟化域可经由多核装置的网络接口硬件接收分组。第一虚拟化域可包括具有直接访问网络接口硬件的权限的特权域。系统可将分组传递到虚拟化分组处理器的队列。该虚拟化分组处理器可来自于多个虚拟化分组处理器并且在多核装置的核上的第二虚拟化域中执行。第二虚拟化域可来自于多个虚拟化域,该多个虚拟化域没有直接访问网络接口硬件的权限。虚拟化分组处理器可确定队列包括从队列读取的多个分组和写入队列的多个分组之间的区别。虚拟化分组处理器可响应于该确定处理来自队列的分。
18、组。0011 在一些实施例中,系统可以在多核装置的用户存储空间中执行虚拟化分组处理器。系统可在多核装置的内核存储空间中建立可由第一虚拟化域和第二虚拟化域访问的队列。系统可以为多个虚拟化分组处理器的每一个分配多核装置的内核存储空间中的相应的队列。第一虚拟化域可以在将分组传递到虚拟化分组处理器的队列之前,将该分组发送到驻留在多核装置的内核空间中的共享队列中。虚拟化分组处理器可响应于识别从队列读取的分组数量和写入队列的分组数量之间的区别来生成系统调用或管理程序调用,从而将分组从队列传输到第二虚拟化域。0012 在某些实施例中,系统将分组从队列中的第一格式转换为第二格式,用于由虚拟化分组处理器进行处理。
19、。系统可将多个分组从队列传输到驻留在用户存储空间中的虚拟化分组处理器的接收队列。系统可将分组从内核存储空间中的队列传递到多核装置的用户存储空间中的第二虚拟化域的接收队列。在一些实施例中,系统可以在第一虚拟化域中执行驱动程序的第一部分,用于从网络接口硬件接收分组;并且在第二虚拟化域中执行驱动程序的第二部分,用于从队列接收分组。0013 在一个方面,本解决方案涉及用于在多核装置的网络接口硬件和由多核装置的一个或多个核执行的多个虚拟化分组处理器之间传递分组的方法。在多核装置的核上的第一虚拟化域中执行的虚拟化分组处理器可将分组缓冲到第一虚拟化域的发送队列。第一虚拟化域可来自于没有直接访问多核装置的网络。
20、接口硬件的权限的多个虚拟化域。虚拟化分组说 明 书CN 103155520 A3/62页6处理器可确定发送队列具有要发送的一个或多个分组。系统可响应于该确定,将一个或多个分组从发送队列发送到驻留在多核装置的内核存储空间上的、可由第二虚拟化域访问的共享队列。第二虚拟化域可包括具有直接访问网络接口硬件的权限的特权域。第二虚拟化域可响应于来自第一虚拟化域的通知访问共享队列中的一个或多个分组,该一个或多个分组用于经由网络接口硬件发送到网络。0014 在一些实施例中,共享队列可驻留在管理程序的内核空间中,该管理程序提供第一和第二虚拟化域。系统可以在多核装置的内核空间中建立可由第一虚拟化域访问的共享队列。。
21、虚拟化分组处理器可响应于将一个或多个分组缓冲到发送队列上来生成系统调用,以发起发送队列上一个或多个分组到内核存储空间中的共享队列的传递。0015 在某些实施例中,虚拟化分组处理器可在内核存储空间中生成管理程序调用以发起发送队列上的一个或多个分组到内核存储空间中的共享队列的传递。系统可以在将分组缓冲到发送队列之前,将分组从与虚拟化分组处理器关联的第一格式转换为第二格式。系统可在第一虚拟化域中执行驱动程序的第一部分,以将分组缓冲到发送队列中,并且在第二虚拟化域中执行驱动程序的第二部分,以访问共享队列中的分组。0016 在附图和下文的描述中详细阐述本发明的各种实施例的细节。附图说明0017 此处所述。
22、的方法和系统的前述和其它目的、方面、特征和优点通过参考下述结合附图的细节描述将会更加明显并更易于理解,其中:0018 图1A是客户机经由设备访问服务器的网络环境的实施例的框图;0019 图1B是通过设备从服务器传送计算环境到客户机的环境的实施例的框图;0020 图1C是经由设备从服务器传送计算环境到客户机的环境的另一个实施例的框图;0021 图1D是通过设备从服务器传送计算环境到客户机的环境的另一个实施例的框图;0022 图1E-1H是计算装置的实施例的框图;0023 图2A是用于处理客户机和服务器之间的通信的设备的实施例的框图;0024 图2B是用于优化、加速、负载平衡和路由客户端和服务器之。
23、间的通信的设备的另一个实施例的框图;0025 图3是用于经由设备与服务器通信的客户机的实施例的框图;0026 图4A是虚拟化环境的实施例的框图;0027 图4B是虚拟化环境的另一个实施例的框图;0028 图4C是虚拟化设备的实施例的框图;0029 图5A是在多核系统中实现并行的方法实施例的框图;0030 图5B是使用多核系统的系统的实施例的框图;0031 图5C是多核系统的一个方面的另一个实施例的框图;0032 图6是多核系统的实施例的框图;0033 图7A-7D是用于在多核系统中跨逻辑队列分发数据分组的方法的实施例的流程图;说 明 书CN 103155520 A4/62页70034 图8是用。
24、于基于哈希跨多核系统分发数据分组的方法的实施例的流程图;0035 图9是用于经由核到核的信息传送跨多核系统分发数据分组的方法的实施例的流程图;0036 图10是用于发送存储在多核系统中的核上的逻辑发送队列中的数据分组的方法的实施例的流程图;0037 图11是用于将数据分组分发到多核系统中的核上的逻辑接收队列的方法的实施例的流程图;0038 图12A是在系统的实施例中的半虚拟化驱动程序的实施例的框图;0039 图12B是在多核系统的实施例中的半虚拟化驱动程序的实施例的框图;0040 图12C是用于在多核装置的网络接口硬件和虚拟化分组处理器之间传递分组的方法的实施例的流程图;以及0041 图12D。
25、是用于在多核装置的网络接口硬件和虚拟化分组处理器之间传递分组的方法的另一个实施例的流程图。0042 从下面结合附图所提出的详细描述,此处所述方法和系统的特征和优点将更明显,其中,相同的参考标记在全文中表示相应的元件。在附图中,同样的附图标记通常表示相同的、功能上相似的和/或结构上相似的元素。具体实施方式0043 为了阅读下文各种实施例的描述,下述对于说明书的部分以及它们各自内容的描述是有用的:0044 A部分描述有益于实施本文描述的实施例的网络环境和计算环境;0045 B部分描述用于将计算环境传送到远程用户的系统和方法的实施例;0046 C部分描述用于加速客户机和服务器间通信的系统和方法的实施。
26、例;0047 D部分描述用于对应用传送控制器进行虚拟化的系统和方法的实施例。0048 E部分描述用于提供多核架构和环境的系统和方法的实施例;0049 F部分描述用于跨多核架构和环境分发数据分组的系统和方法的实施例;以及0050 G部分描述用于半虚拟化驱动程序的系统和方法的实施例。0051 A.网络和计算环境0052 在讨论设备和/或客户机的系统和方法的实施例的细节之前,讨论可在其中部署这些实施例的网络和计算环境是有帮助的。现在参见图1A,描述了网络环境的实施例。概括来讲,网络环境包括经由一个或多个网络104、104(总的称为网络104)与一个或多个服务器106a106n(同样总的称为服务器10。
27、6,或远程机器106)通信的一个或多个客户机102a102n(同样总的称为本地机器102,或客户机102)。在一些实施例中,客户机102通过设备200与服务器106通信。0053 虽然图1A示出了在客户机102和服务器106之间的网络104和网络104,客户机102和服务器106可以位于同一个的网络104上。网络104和104可以是相同类型的网络或不同类型的网络。网络104和/或104可为局域网(LAN)例如公司内网,城域网(MAN),或者广域网(WAN)例如因特网或万维网。在一个实施例中,网络104可为专用网络并且网络104可为公网。在一些实施例中,网络104可为专用网并且网络104可为公网。
28、。在又说 明 书CN 103155520 A5/62页8一个实施例中,网络104和104可都为专用网。在一些实施例中,客户机102可位于公司企业的分支机构中,通过网络104上的WAN连接与位于公司数据中心的服务器106通信。0054 网络104和/或104可以是任何类型和/或形式的网络,并且可包括任何下述网络:点对点网络,广播网络,广域网,局域网,电信网络,数据通信网络,计算机网络,ATM(异步传输模式)网络,SONET(同步光纤网络)网络,SDH(同步数字体系)网络,无线网络和有线网络。在一些实施例中,网络104可以包括无线链路,诸如红外信道或者卫星频带。网络104和/或104的拓扑可为总线。
29、型、星型或环型网络拓扑。网络104和/或104以及网络拓扑可以是对于本领域普通技术人员所熟知的、可以支持此处描述的操作的任何这样的网络或网络拓扑。0055 如图1A所示,设备200被显示在网络104和104之间,设备200也可被称为接口单元200或者网关200。在一些实施例中,设备200可位于网络104上。例如,公司的分支机构可在分支机构中部署设备200。在其他实施例中,设备200可以位于网络104上。例如,设备200可位于公司的数据中心。在又一个实施例中,多个设备200可在网络104上部署。在一些实施例中,多个设备200可部署在网络104上。在一个实施例中,第一设备200与第二设备200通信。
30、。在其他实施例中,设备200可为位于与客户机102同一或不同网络104、104的任一客户机102或服务器106的一部分。一个或多个设备200可位于客户机102和服务器106之间的网络或网络通信路径中的任一点。0056 在一些实施例中,设备200包括由位于佛罗里达州Ft.Lauderdale的Citrix Systems公司制造的被称为Citrix NetScaler设备的任何网络设备。在其他实施例中,设备200包括由位于华盛顿州西雅图的F5Networks公司制造的被称为WebAccelerator和BigIP的任何一个产品实施例。在又一个实施例中,设备205包括由位于加利福尼亚州Sunnyv。
31、ale的Juniper Networks公司制造的DX加速设备平台和/或诸如SA700、SA2000、SA4000和SA6000的SSL VPN系列设备中的任何一个。在又一个实施例中,设备200包括由位于加利福尼亚州San Jose的Cisco Systems公司制造的任何应用加速和/或安全相关的设备和/或软件,例如Cisco ACE应用控制引擎模块服务(Application Control Engine Module service)软件和网络模块以及Cisco AVS系列应用速度系统(Application Velocity System)。0057 在一个实施例中,系统可包括多个逻辑分。
32、组的服务器106。在这些实施例中,服务器的逻辑分组可以被称为服务器群38。在其中一些实施例中,服务器106可为地理上分散的。在一些情况中,群38可以作为单个实体被管理。在其他实施例中,服务器群38包括多个服务器群38。在一个实施例中,服务器群代表一个或多个客户机102执行一个或多个应用程序。0058 在每个群38中的服务器106可为不同种类。一个或多个服务器106可根据一种类型的操作系统平台(例如,由华盛顿州Redmond的Microsoft公司制造的WINDOWS NT)操作,而一个或多个其它服务器106可根据另一类型的操作系统平台(例如,Unix或Linux)操作。每个群38的服务器106。
33、不需要与同一群38内的另一个服务器106物理上接近。因此,被逻辑分组为群38的服务器106组可使用广域网(WAN)连接或城域网(MAN)连接互联。例如,群38可包括物理上位于不同大陆或大陆的不同区域、国家、州、城市、校园或房间的服务器106。如果使用局域网(LAN)连接或一些直连形式来连接服务器106,则可增加群38说 明 书CN 103155520 A6/62页9中的服务器106间的数据传送速度。0059 服务器106可被称为文件服务器、应用服务器、web服务器、代理服务器或者网关服务器。在一些实施例中,服务器106可以有作为应用服务器或者作为主应用服务器工作的能力。在一个实施例中,服务器1。
34、06可包括活动目录。客户机102也可称为客户端节点或端点。在一些实施例中,客户机102可以有作为客户机节点寻求访问服务器上的应用的能力,也可以有作为应用服务器为其它客户机102a-102n提供对寄载的应用的访问的能力。0060 在一些实施例中,客户机102与服务器106通信。在一个实施例中,客户机102与群38中的服务器106的其中一个直接通信。在又一个实施例中,客户机102执行程序邻近应用(program neighborhood application)以与群38内的服务器106通信。在又一个实施例中,服务器106提供主节点的功能。在一些实施例中,客户机102通过网络104与群38中的服务。
35、器106通信。通过网络104,客户机102例如可以请求执行群38中的服务器106a-106n寄载的各种应用,并接收应用执行结果的输出进行显示。在一些实施例中,只有主节点提供识别和提供与寄载所请求的应用的服务器106相关的地址信息所需的功能。0061 在一个实施例中,服务器106提供web服务器的功能。在又一个实施例中,服务器106a接收来自客户机102的请求,将该请求转发到第二服务器106b,并使用来自服务器106b对该请求的响应来对客户机102的请求进行响应。在又一个实施例中,服务器106获得客户机102可用的应用的列举以及与由该应用的列举所识别的应用的服务器106相关的地址信息。在又一个实。
36、施例中,服务器106使用web接口将对请求的响应提供给客户机102。在一个实施例中,客户机102直接与服务器106通信以访问所识别的应用。在又一个实施例中,客户机102接收由执行服务器106上所识别的应用而产生的诸如显示数据的应用输出数据。0062 现参考图1B,描述了部署多个设备200的网络环境的实施例。第一设备200可以部署在第一网络104上,而第二设备200部署在第二网络104上。例如,公司可以在分支机构部署第一设备200,而在数据中心部署第二设备200。在又一个实施例中,第一设备200和第二设备200被部署在同一个网络104或网络104上。例如,第一设备200可以被部署用于第一服务器群。
37、38,而第二设备200可以被部署用于第二服务器群38。在另一个实例中,第一设备200可以被部署在第一分支机构,而第二设备200被部署在第二分支机构。在一些实施例中,第一设备200和第二设备200彼此协同或联合工作,以加速客户机和服务器之间的网络流量或应用和数据的传送。0063 现参考图1C,描述了网络环境的又一个实施例,在该网络环境中,将设备200和一个或多个其它类型的设备部署在一起,例如,部署在一个或多个WAN优化设备205,205之间。例如,第一WAN优化设备205显示在网络104和104之间,而第二WAN优化设备205可以部署在设备200和一个或多个服务器106之间。例如,公司可以在分支。
38、机构部署第一WAN优化设备205,而在数据中心部署第二WAN优化设备205。在一些实施例中,设备205可以位于网络104上。在其他实施例中,设备205可以位于网络104上。在一些实施例中,设备205可以位于网络104或网络104“上。在一个实施例中,设备205和205在同一个网络上。在又一个实施例中,设备205和205在不同的网络上。在另一个实例中,第一WAN优化设备205可以被部署用于第一服务器群38,而第二WAN优化设备205可以被部署用于第二服务器群38。说 明 书CN 103155520 A7/62页100064 在一个实施例中,设备205是用于加速、优化或者以其他方式改善任何类型和形。
39、式的网络流量(例如去往和/或来自WAN连接的流量)的性能、操作或服务质量的装置。在一些实施例中,设备205是一个性能增强代理。在其他实施例中,设备205是任何类型和形式的WAN优化或加速装置,有时也被称为WAN优化控制器。在一个实施例中,设备205是由位于佛罗里达州Ft.Lauderdale的Citrix Systems公司出品的被称为WANScaler的产品实施例中的任何一种。在其他实施例中,设备205包括由位于华盛顿州Seattle的F5Networks公司出品的被称为BIG-IP链路控制器和WANjet的产品实施例中的任何一种。在又一个实施例中,设备205包括由位于加利福尼亚州Sunny。
40、vale的Juniper NetWorks公司出品的WX和WXC WAN加速装置平台中的任何一种。在一些实施例中,设备205包括由加利福尼亚州San Francisco的Riverbed Technology公司出品的虹鳟(steelhead)系列WAN优化设备中的任何一种。在其他实施例中,设备205包括由位于新泽西州Roseland的Expand Networks公司出品的WAN相关装置中的任何一种。在一个实施例中,设备205包括由位于加利福尼亚州Cupertino的Packeteer公司出品的任何一种WAN相关设备,例如由Packeteer提供的PacketShaper、iShared和S。
41、kyX产品实施例。在又一个实施例中,设备205包括由位于加利福尼亚州San Jose的Cisco Systems公司出品的任何WAN相关设备和/或软件,例如Cisco广域网应用服务软件和网络模块以及广域网引擎设备。0065 在一个实施例中,设备205为分支机构或远程办公室提供应用和数据加速服务。在一个实施例中,设备205包括广域文件服务(WAFS)的优化。在又一个实施例中,设备205加速文件的传送,例如经由通用互联网文件系统(CIFS)协议。在其他实施例中,设备205在存储器和/或存储装置中提供高速缓存来加速应用和数据的传送。在一个实施例中,设备205在任何级别的网络堆栈或在任何的协议或网络层。
42、中提供网络流量的压缩。在又一个实施例中,设备205提供传输层协议优化、流量控制、性能增强或修改和/或管理,以加速WAN连接上的应用和数据的传送。例如,在一个实施例中,设备205提供传输控制协议(TCP)优化。在其他实施例中,设备205提供对于任何会话或应用层协议的优化、流量控制、性能增强或修改和/或管理。0066 在又一个实施例中,设备205将任何类型和形式的数据或信息编码成网络分组的定制的或标准的TCP和/或IP的报头字段或可选字段,以将其存在、功能或能力通告给另一个设备205。在又一个实施例中,设备205可以使用在TCP和/或IP报头字段或选项中编码的数据来与另一个设备205进行通信。例如。
43、,设备可以使用TCP选项或IP报头字段或选项来传达在执行诸如WAN加速的功能时或者为了彼此联合工作而由设备205,205所使用的一个或多个参数。0067 在一些实施例中,设备200保存在设备205和205之间传达的TCP和/或IP报头和/或可选字段中编码的任何信息。例如,设备200可以终止经过设备200的传输层连接,例如经过设备205和205的在客户机和服务器之间的一个传输层连接。在一个实施例中,设备200识别并保存由第一设备205通过第一传输层连接发送的传输层分组中的任何编码信息,并经由第二传输层连接来将具有编码信息的传输层分组传达到第二设备205。0068 现参考图1D,描述了用于传送和/或操作客户机102上的计算环境的网络环境。在一些实施例中,服务器106包括用于向一个或多个客户机102传送计算环境或应用和/或数据文件的应用传送系统190。总的来说,客户机10通过网络104、104和设备200与服说 明 书CN 103155520 A10。