CN1802638B - 用于路由提示的方法和设备 - Google Patents

用于路由提示的方法和设备 Download PDF

Info

Publication number
CN1802638B
CN1802638B CN03826817.5A CN03826817A CN1802638B CN 1802638 B CN1802638 B CN 1802638B CN 03826817 A CN03826817 A CN 03826817A CN 1802638 B CN1802638 B CN 1802638B
Authority
CN
China
Prior art keywords
session
message
hostid
equipment
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN03826817.5A
Other languages
English (en)
Other versions
CN1802638A (zh
Inventor
J·A·贝恩斯
J·M·乔伊
D·R·莫厄斯
C·帕雅
F·孙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/639,516 external-priority patent/US7882251B2/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Priority claimed from PCT/US2003/025747 external-priority patent/WO2005020085A1/en
Publication of CN1802638A publication Critical patent/CN1802638A/zh
Application granted granted Critical
Publication of CN1802638B publication Critical patent/CN1802638B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1019Random or heuristic server selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1027Persistence of sessions during load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/10015Access to distributed or replicated servers, e.g. using brokers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1017Server selection for load balancing based on a round robin mechanism
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Abstract

用于路由提示的方法和设备,其中的方法包括:使用主机标识符创建会话标识符;用所创建的会话标识符制定主机会话发起消息;从所述设备发送包括所创建的会话标识符的所制定的主机会话发起消息;接收客户机会话消息;确定所接收的客户机会话消息是否包括接收到的会话标识符;如果所接收的客户机会话消息被确定为不包括接收到的会话标识符,则执行所述创建和制定动作;如果所接收的客户机会话消息被确定为包括接收到的会话标识符,则执行以下动作:用所接收的会话标识符制定主机会话延续消息;以及发送包括所接收的会话标识符的所制定的主机会话延续消息。

Description

用于路由提示的方法和设备
技术领域
本发明一般涉及路由提示,具体地,作为示例而非局限,涉及来自主机的路由提示以在网关处使用这样的提示来便于内联网路由。 
背景技术
通信很大程度上受因特网的能力的影响。因特网使得信息能够使用分组在两个人或其它实体之间快速且相对容易地传递。因特网包括许多网络节点,它们链接在一起,使得包含信息的分组可以在它们之间和之中传输。某些网络节点可以是将分组从一条链路传播到另一条链路的路由器,其它网络节点可以是单独的客户机计算机,而另外一些网络节点可以是整个个人网络(例如,用于特定实体)等等。 
跨因特网在第一实体和第二实体之间的通信是通过在它们之间构造连接来实现的。这些连接有时候涉及会话。建立会话以提供在对应的一个或多个连接上发生的通信交换的上下文。会话建立通常涉及第一和第二实体之间的单向或双向信息交换。会话的建立阶段的复杂度和持续时间通常基于会话的类型而变化。 
每一会话建立使用处理资源,且消耗一段时间,该段时间被转换成用户感受到的延迟。在会话建立阶段之后,第一和第二实体依照所建立的会话上下文来通信。通信以及连接可在不终止会话的情况下停止。在某些情况下,当两个实体保留了先前在前一会话建立阶段期间在两个实体之间交换的信息时,这些现有的会话随后可使用这一信息来继续。 
换言之,先前交换的信息用于继续现有会话。由此,继续现有会话一般属于其中先前建立了会话的第一和第二实体试图继续该会话的情况。因此,如果第二实体未知和/或难以标识或联系,则当第一实体试图继续现有会话时会引发问题。 
因此,需要改进、简化和/或促进两个实体之间的会话延续的方案和/或技术。 
发明内容
根据本发明的一个方面,提供一种用于路由提示的方法,所述方法包括: 
使用主机标识符创建会话标识符; 
用所创建的会话标识符制定主机会话发起消息; 
从所述设备发送包括所创建的会话标识符的所制定的主机会话发起消息; 
接收客户机会话消息;确定所接收的客户机会话消息是否包括接收到的会话标识符; 
如果所接收的客户机会话消息被确定为不包括接收到的会话标识符,则执行所述创建和制定动作; 
如果所接收的客户机会话消息被确定为包括接收到的会话标识符,则执行以下动作: 
用所接收的会话标识符制定主机会话延续消息;以及 
发送包括所接收的会话标识符的所制定的主机会话延续消息。 
根据本发明的另一方面,提供一种用于路由提示的设备,包括: 
用响应于主机标识符创建的会话标识符制定主机会话消息的装置;以及 
从所述设备发送包括所述会话标识符的所制定的主机会话消息的装置。 
根据本发明的另一方面,提供一种用于路由提示的设备,包括: 
从主机接收主机会话发起消息的装置,所述主机会话发起消息具有包括主机标识符的会话标识符字段;以及 
向所述主机发送客户机会话延续消息的装置,所述客户机会话延续消息具有包括所述主机标识符的会话标识符字段。 
根据本发明的另一方面,提供一种用于路由提示的方法,所述方法包括: 
从客户机接收不包括接收到的会话标识符的会话消息; 
响应于所接收的会话消息,使用主机标识符创建会话标识符; 
建立向其分配所创建的会话标识符的会话;以及 
制定包括所创建的会话标识符的会话消息。 
根据本发明的另一方面,提供一种用于路由提示的设备,包括: 
主机标识符;以及 
适用于使用所述主机标识符来创建会话标识符的会话标识符创建器。 
根据本发明的另一方面,提供一种用于路由提示的设备,包括: 
接收具有包括主机标识符的会话标识符的会话消息的装置;以及 
响应于所述主机标识符路由所述会话消息的装置。 
根据本发明的另一方面,提供一种能够接受具有会话标识符字段的会话相关消息的网关;所述网关适用于从填充所述会话标识符字段的值中提取主机标识符,所述网关还适用于使用所述主机标识符为所述会话相关的消息执行路由操作。 
此处描述了其它方法、系统、途径、装置、应用程序编程接口(API)、设备、介质、过程、方案等实现。 
附图说明
在所有附图中,相同的标号引用相同和/或对应的方面、特征和组件。 
图1是示出建立会话的第一连接和继续该会话的第二连接的示例性通信环境。 
图2示出了对会话消息提供和使用路由提示的示例性方法。 
图3示出了可包括路由提示的一个示例性会话消息。 
图4是示出用于提供路由提示的一个示例性方法的流程图。 
图5示出了对会话消息提供和使用路由消息的另一示例性方法。 
图6A和6B是示出与路由提示一起使用的主机标识符和网络地址链接的示例性表。 
图7是示出使用路由提示的一个示例性方法的流程图。 
图8示出了能够(全部或部分地)实现此处所描述的路由提示的至少一个方面的示例性计算(或通用设备)操作环境。 
具体实施方式
图1是示出建立会话的第一连接114(1)和继续该会话的第二连接114(2)的示例性通信环境100。如图所示,示例性通信环境100包括多个客户机102(1)、102(2)、……、102(m),以及多个主机108(1)、108(2)、……、108(n),以及网络104和网关(NG)106。网关106充当网络104和内联网110之间的网关。主机108耦合到内联网110。 
在所描述的实现中,客户机102(1)、102(2)、……、102(m)分别对应于地址“C1”、“C2”、……、“Cm”。客户机102的每一个可以是能够进行网络通信的任何设备,诸如计算机、移动站、娱乐设备、另一网络等等。客户机102也可对应于操作客户机设备的人或其它实体。换言之,客户机102可包括作为用户和/或机器的逻辑客户机。 
网络104可以从诸如因特网、另一内联网、有线或无线电话网络、无线宽带网络等一个或多个网络中形成。用于客户机102的设备以及用于网络104的网络类型/拓扑结构的其它示例在下文参考图8来描述。各个客户机102能够通过网关106在网络104上与一个或多个主机108通信,反之亦然。 
主机108(1)、108(2)、……、108(n)分别对应于地址“H1”、“H2”、……、“Hn”。主机地址H1、H2、……、Hn在内联网110上存在。主机108通常承载一个或多个应用程序(未示出)。这些应用程序(i)提供了用于与客户机102的交互和/或通信的服务,(ii)由客户机102使用,等等。仅作为示例,这些应用程序可包括文件传送程序、网站管理/服务器程序、远程访问程序、电子邮件程序、数据库访问程序等等。 
每一主机108可对应于一个服务器和/或设备、多个服务器和/或多个设备、服务器的一部分和/或设备的一部分、其某一组合等等。用于主机108的特定示例性实现在后文参考图2、4和5进一步描述。此外,用于主机108的其它示例性设备实现在下文参考图8描述。 
网关106可在一个或多个地址“NGN”处通过网络104来到达或定位,且网关106也以至少一个地址“NGI”在因特网110上存在。被定向到网关106的地址NGN的来自客户机102(或其它节点)的通信在网关106处接收,并且之后被路由到多个主机108(1)、108(2)、……、108(n)中的主机108。网关106由一个或多个网关元件(未在图1中单独示出)组成。每一网关元件106可包括路由器、代理服务器、负载平衡器、防火墙设备、其某一组合等中的全部或一部分。用于网关元件106的示例性非特定设备实现也在下文参考图8描述。 
一般而言,连接114在客户机102和主机108之间通过网关106在网络104上构造。客户机102通常发起连接114,但是主机108可替换地可以是发起者。具体地在本示例中,客户机102(1)发起与主机108(2)的连接114(1)。然而,客户机102(1)对于主机108(2)的地址H2并非是私人的。相反,客户机102(1)将连接(例如,请求连接的分组)定向到网关106的地址NGN。 
网关106然后依照某一默认策略(例如,规则)对连接114(1)执行路由操作116(1)。结果,网关106在此例中通过内联网110将连接114(1)路由到主机108(2)。一般而言,网关106不能简单地照原样将连接114的分组从客户机102(1)发送到网络地址H2处的主机108(2),因为分组是被目的地定址到网关106的地址NGN的。相反,网关106通常采用以下示例性选项的一个或多个来通过内联网110路由分组:网络地址转换(NAT)、半NAT、隧道、其某一组合等等。 
在传输控制协议/网际协议(TCP/IP)环境中,NAT是通过(i)用网关106的IP地址NGI和NAT生成的端口号来覆盖源(即,客户机102(1))IP地址C1和端口号,以及(ii)用主机108(2)的IP地址H2来覆盖目的地IP地址NGN来执行的。半NAT是通过用主机108(2)的IP地址H2覆盖目的地IP地址NGN,使得源IP地址C1和端口号被保留来执行的。隧道是通过将每一分组封装在定址到主机108(2)的地址H2的新IP分组中,并将所封装的分组从网关106发送到可解封它们的主机108(2)来执行的。 
在连接114(1)期间,在客户机102(1)和主机108(2)之间建立会话。对于所建立的连接114(1)的会话,在主机108(2)处产生会话上下文112。通常在客户机102(1)处产生类似的、相似的和/或相互的会话上下文(未示出)。会话上下文112促进了客户机102(1)和主机108(2)之间的通信。 
由此,连接114(1)可以是或可以在其上建立许多不同类型的会话中的任意一 个或多个。示例性会话类型包括:(i)安全套接字层(SSL);(ii)传输层安全(TLS)会话;(iii)安全网际协议(IPsec)会话;(iv)基于超文本传输协议(HTTP)cookie的会话;(v)点对点隧道协议(PPTP)会话;(vi)IPSec/第2层隧道协议(L2TP)会话;(vi)专有会话;(viii)终端服务器会话;(ix)管理员定义的会话;(x)等等。这些不同会话类型的示例也阐明了可以如何建立和使用会话层。 
会话上下文112的内容可以至少部分地根据为其产生该上下文的会话的类型而改变。例如,特定的会话上下文112可包括以下的一个或多个:TCP 4元组(例如,用于用TCP连接建立的会话);会话标识符;维护对应的会话的持久状态的一个或多个数据库条目的位置;提供给主机108(2)的客户机102(1)的公钥;协商的私钥;其它安全相关参数;等等。TCP 4元组包括源IP地址、源TCP端口、目的地IP地址、以及目的地TCP端口。作为当前标准下的SSL会话的示例,会话标识符的长度可达32字节。 
如上所述,在构造了连接114(1)之后,在当前示例中在客户机102(1)和主机108(2)之间建立会话。客户机102(1)更具体地与驻留在和/或执行在主机108(2)上的至少一个应用程序建立会话。然而,为简明起见,这些应用程序一般可在参考主机108(2)时被包括在内。 
会话建立阶段产生或得到会话上下文112。会话上下文112为客户机102(1)和主机108(2)之间的通信交换提供了上下文。会话上下文112可包括实际上对这些通信交换是关键的、仅仅是有益的、或某种程度上与之有关的信息。 
假设客户机102(1)可以是逻辑客户机,会话上下文112可以与(i)特定的设备和/或特定的设备用户,以及(ii)主机108(2)之间的通信交换有关。因此,与用户客户机102(1)相关联的会话上下文112可继续与其相关联,即使用户客户机102(1)从不同的设备访问主机108。设备可以在客户机102(1)的本地层、在网络104层等上不同。这些不同设备情形的示例包括代理服务器情形(例如,某些互联网服务提供商(ISP)的情形)、终端服务器会话情形等等。 
会话上下文112储存在主机108(2)处,和/或可从其中访问。当连接114(1)完成或停止时,会话上下文112可以不被再次使用。相反,如果客户机102(1)试图对同样的、相似的或相关等的会话发起与主机108的另一连接,则会话上下文112可以再次有用。如果这一其它连接不被路由到储存会话上下文112的同一主机108(2),则客户机102(1)必须建立新的会话,这可能是耗时的、数据/处理密集的、 和/或令用户感到受挫的(尤其是对应于客户机102(1)的用户)。如果在网关106处没有某一会话亲缘性(affinity)保存机制,则第二连接也被路由到主机108(2)通常除了随机发生之外没有更高的可能性。 
会话亲缘性保存机制或功能适用于将连接(包括分组级和逻辑级请求)路由回到与要用该连接继续的现有会话的会话上下文112相关联的主机108。例如,会话亲缘性保存功能试图使得对客户机102(1)的连接114(2)能够被路由回到与会话上下文112相关联的主机108(2)。这一会话亲缘性保存机制可以依照一个或多个示例性策略来实现。尽管一般适用于网关106,然而这些示例性策略是从负载平衡实现的角度来描述的。 
第一策略涉及用“粘性”模式来进行负载平衡,在该模式中,从例如给定的IP地址传入的大多数(如果不是全部)请求被路由到单个主机108。然而,该策略依赖于给定IP地址表示单个客户机102的假设,这显然对于代理服务器不是真实的。代理服务器对负载平衡器来说看似为单个IP地址,但是它实际上表示了对于许多,可能上千台客户机102的请求。结果,将所有这些请求路由到单个主机108可能导致设备之间/之中非常不均衡的负载平衡。通常,接收来自代理服务器的传入请求的设备必然会被分配较大数量的客户机102。此外,使用该第一策略,来自具有改变的IP地址的客户机102的请求也被不正确地路由。IP地址可以在移动环境中、当地址临时从IP地址池分配时等情况下改变。 
第二策略涉及采用使用会话标识符的负载平衡试探。继续现有会话的请求被路由到先前使用特定的个别会话标识符来建立(例如,协商)该会话的主机108。在操作中,在特定的客户机102和特定的主机108之间建立的特定的会话之后,储存将该特定主机108链接到该特定会话的映射,该会话由一特定会话标识符来标识。当接收到来自客户机102的包括该特定会话标识符的请求时,该请求可以使用映射被路由回到该特定主机108。该第二策略因此允许会话亲缘性的保存。 
然而,第二策略从效率角度来看必然伴有相对的缺陷。首先,负载平衡器维护会话标识符和主机108之间的这些映射的表。该表的大小可以是巨大的,因为对每一现有会话都有一独立的条目。例如,如果每一主机108高速缓存10,000个会话,且有500个主机108,则该表使用五百万个条目来以优化的效率路由对这些会话的请求。其次,对于每一新建立的会话,负载平衡器监视会话建立阶段,直到检测到会话标识符且可以向表添加条目。第三,每次当接收到恢复会话的请求时,负载平衡器咨询(可能非常大的)表以执行路由。 
第四,由于会话具有生存期,且由于过度拥挤而迅速到达期限或从主机108的高速缓冲中丢弃,所以负载平衡器表也实现某一时效机制来反映各个主机108正在做什么或期望对其自己的高速缓存做什么。如果主机108和负载平衡器时效机制不同步,则负载平衡器可能过早地删除在主机108上仍有效的会话的状态信息,或者相反,它可能保留任何主机108上不再存在的会话的状态信息。 
会话亲缘性保存功能的第三种策略可通过对新建立的会话的会话标识符的选择性创建/确定在网关106处实现会话亲缘性保存,且没有对每一个别的会话需要一个条目的表。当确定会话标识符时,主机108在其中嵌入主机标识符。 
网关106从会话标识符中提取主机标识符,并对响应于该主机标识符向其分配了该会话标识符的会话路由通信量。该第三种策略因此可采用相对无状态的方法,它使用具有有界数量的条目(例如,等于主机108的数量的数量的条目)的表,和/或路由会话延续请求而不使用具有这样的每会话条目的表。该第三种策略的各方面将在此进一步描述。 
在通信环境100的示例中,在作为连接114(1)的一部分完成了会话建立阶段之后,在主机108(2)处产生会话上下文112。连接114(1)之后停止。当对连接114(2)的请求到达网关106时,在其上执行路由操作116(2)。这一连接114(2)被指示为用于按照分配给它的会话标识符而对应于会话上下文112的先前建立的会话的延续。该会话标识符包括依照第三策略的主机108(2)的标识符。对主机108(2)使用从会话延续请求的会话标识符中提取的主机标识符,连接114(2)在路由操作116(2)中被路由到与会话上下文112相关联的主机108(2)。 
项114(1)和114(2)也可表示发生在单个连接内的会话相关消息(例如,请求),以及在两个或多个连接期间发生的消息。此外,客户机102和主机108之间的某些通信在此被描述为消息。消息通常作为一个或多个分组从客户机102传播到主机108,反之亦然。客户机消息从客户机102发送,而主机消息从主机108发送。会话消息是涉及会话的消息(例如,涉及会话的建立、延续/恢复、拆卸等的消息)。一个示例性会话消息在下文参考图3进一步描述。 
会话发起消息是由客户机102和/或主机108发送的涉及发起会话的消息。会话延续消息是由客户机102和/或主机108发送的涉及继续现有会话的消息。会话发起消息和会话延续消息可具有明显不同的格式、类似的格式、相同的格式等等。然而,在所描述的实现中,会话发起消息和会话延续消息至少具有相似的格式,其中会话标识符的存在指示客户机会话消息是客户机会话延续消息,而会话标识符的 缺失指示客户机会话消息是客户机会话发起消息。 
尽管此处的描述不如此限制,但是以下描述的实现偶尔会强调或集中于网关106的负载平衡实现。同样,尽管其它协议和协议的组合是适用的,且可替换地使用,但为简明性起见,以下描述主要使用了TCP/IP连接和SSL/TLS会话。 
作为示例而非局限,客户机会话发起消息或客户机会话延续消息可以是依照TLS协议版本1.0规范(1999年1月)的“Client Hello(客户机问候)”消息。如果Client Hello消息包括会话标识符,则它可以是客户机会话延续消息,否则它可以是客户机会话发起消息。类似地,主机会话发起消息或主机会话延续消息可以是依照TLS协议版本1.0规范的“Server Hello(服务器问候)”消息。如果Server Hello消息包括由客户机在Server Hello消息所响应的Client Hello消息中提供的会话标识符,则它可以是主机会话延续消息。如果Server Hello消息是响应于不包括会话标识符的Client Hello消息,则它可以是主机会话发起消息。为主机会话发起消息创建会话标识符以及制定这一主机会话发起消息在下文中进一步描述。 
图2示出了对会话消息提供和使用路由提示的一个示例性方法。会话消息202、204和206通过网关元件106在网络104上从客户机102发送到主机108,或在相反方向发送。网关元件106表示网关106(图1)的元件。尽管消息202、204和206的每一个被示为由网关元件106路由,但每一个别的会话消息可以替换地由网关106的不同的个别元件路由。 
如图所示,主机108包括处理发送到客户机102以及从客户机102接收的消息的消息处理器208。消息处理器208包括传入消息处理器部分208IC和传出消息处理器部分208OG。主机108与主机标识符214相关联,主机标识符214储存在主机108上或可从其中访问。主机标识符214的示例在下文参考图3进一步描述。主机108还包括使用主机标识符214来创建会话标识符(例如,会话标识符210)的会话标识符创建器212。 
在所描述的实现中,客户机102具有地址“C”,而网关元件106具有地址NGN和NGI,其中地址C和NGN位于网络104上。主机108具有地址“H”,它连同地址NGI一起位于内联网110上。来自客户机102的会话消息通过网络104在网关元件106处接收。网关元件106然后用路由操作216通过内联网110将这些会话消息向前路由到主机108。在相反的路径上,来自主机108的会话消息通过内联网110被发送/传输到网关元件106,网关元件106用路由操作216将它们路由回到客户机102。 
具体地,客户机102通过网络104将客户机会话发起消息(SIM)202发送到网关元件106。客户机会话发起消息202不包括会话标识符,因为它包括了对新会话的请求。由于客户机会话发起消息202不是用于现有会话的,因此网关元件106使用通用策略在路由操作216(A)中将客户机会话发起消息202路由到主机108。例如,网关元件106可依照当前和/或相关的负载平衡策略(例如,传入新会话请求的循环分发)来路由客户机会话发起消息202。 
主机108通过内联网110在传入消息处理器部分208IC处接收客户机会话发起消息202。如果没有会话标识符,则传入消息处理器部分208IC将客户机会话发起消息202识别为用于新会话。激活会话标识符创建器212以为所请求的新会话创建新会话标识符。会话标识符创建器212确定/检索主机标识符214。 
会话标识符创建器212使用主机标识符214来创建会话标识符210。例如,会话标识符创建器212将主机标识符214插入到会话标识符210中。会话标识符210也可包括除主机标识符214的值之外的其它值。会话标识符210的其它值可以使用一种或多种技术的任一种来创建。这些技术包括但不限于,随机选择的值、来自递增计数器的值、安全相关的值、散列值、其某一组合等等。 
在所描述的实现中,会话标识符210的第一部分(即,主机标识符214)专用于表示当前拥有对应的会话的主机108。该第一部分在给定群集的所有主机108上是唯一的(即,没有一个主机108将其主机标识符214与同一群集中的任何其它主机108共享)。第一部分可以是主机108拥有的IP地址、由管理员分配的整数等等。会话标识符的第二部分可提高会话标识符210的唯一性(以及不可预测性)。可对该第二部分使用各种技术,诸如使用对每一新会话递增一(并能翻转到0)的全局计数器和使用伪随机和/或散列技术的组合。 
会话标识符创建器212向消息处理器208提供会话标识符210。传出消息处理器部分208OG准备/制定包括会话标识符210的主机会话发起消息204。主机会话发起消息204通过内联网110被发送到网关元件106。网关元件106然后使用路由返回路由操作216(B)通过网络104将主机会话发起消息204发送到客户机102。尽管未如此示出,但主机会话发起消息204可替换地沿不包括网关元件106的路径被路由返回,尤其是因为网关元件106能够路由随后的客户机消息而无需储存每一会话的状态信息。 
客户机102从主机会话发起消息204中提取会话标识符210,并保留会话标识符210以供将来的可能使用来继续所建立的会话(以及用于对所建立的会话的任何 当前使用)。在某一点处,对所建立的会话的实际使用停止(例如,终止连接)。为继续与主机108的所建立的且现有的会话,客户机102制定客户机会话延续消息(SCM)206。客户机102在客户机会话延续消息206中包括保留的会话标识符210。客户机会话延续消息206然后通过网络104从客户机102发送到网关元件106。 
当网关元件106接收到客户机会话延续消息206时,它检测到客户机102正在试图继续由所包括的会话标识符210所指示的现有会话。在路由操作216(C)中,网关元件106使用会话标识符210来路由客户机会话延续消息206。更具体地,网关元件106使用作为会话标识符210的一部分且从其中提取的主机标识符214来路由客户机会话延续消息206。 
主机标识符214标识它所相关联的主机108。因此,网关元件106在路由操作216(C)中使用由主机标识符214指示的主机108的标识来路由客户机会话延续消息206。客户机会话延续消息206因此通过内联网110从网关106发送到主机108。在主机108处,传入消息处理器部分208IC接收客户机会话延续消息206,且可使用储存的会话上下文(例如,图1所示的会话上下文112)来开始先前建立的会话的延续。 
主机标识符214可标识与其以多种方式相关联的主机108。例如,主机标识符214可包括主机108的(内联网)网络地址H。在这一情况下,网关元件106可将客户机会话延续消息206路由到主机108,而不使用会话相关表或主机标识符表。换言之,可以使用主机标识符214或至少其部分作为对客户机会话延续消息206放置在内联网110上的一个或多个分组的目的地地址,将客户机延续消息206转发到主机108。 
或者,主机标识符214可映射到主机108的地址H。尽管该映射方式涉及表(或计算),但表中的条目数“n”可等于服务器群集中、内联网110上、web场中等的主机108的数目。由此,该表具有有界的条目数,且不包括每一会话的状态信息。参考上文使用的示例,如果每一主机108高速缓存10,000个会话,且有500个主机108,则该表可使用500个条目(而非5百万个)以有效地为这些会话路由请求。 
以下表1是将通过主机108的地址将主机标识符214链接到主机108的示例性链接数据结构。 
Figure S03826817520060207D000101
表1用于将主机标识符214映射到主机地址H的数据结构 
在操作中,网关元件106从客户机102接收到的客户机延续消息206的会话标识符中提取主机标识符214(#)。网关元件106然后访问诸如表1的链接数据结构,使用主机标识符214(#)来确定链接到其上的主机地址H#。该主机地址H#对应于内联网110上的主机108(#)的地址,且用作目的地地址来将客户机会话延续消息206路由到主机108(#)。示例性主机标识符-网络地址链接表在下文中参考图6A和6B来描述。 
图3示出了可包括路由提示的示例性会话消息302。会话消息302是涉及一个或多个会话的消息。如图所示,会话消息302包括多个字段。这多个字段包括会话标识符210以及如由其它字段304表示的一个或多个其它字段。 
会话标识符210包括至少一个主机标识符214。主机标识符214包括设备标识符306以及可任选的应用程序标识符308。设备标识符306可包括网络地址310或键312(A)。或者,主机标识符214可包括键312(B)。 
在所描述的实现中,用于会话消息302的一个或多个格式是由诸如SSL/TLS等网络或通信标准或协议来定义的。会话标识符210可以位于会话消息302中的任何地方,尤其是如由适用的标准或协议所定义的。其它字段304可包括源和/或目的地地址、一般头部信息、安全类型信息、其它会话相关信息、数据、其某一组合等等。作为示例,会话消息302可以是如由TLS协议版本1.0标准所定义的ClientHello或Server Hello消息,且会话标识符210可对应于任一TLS Hello消息的“SessionID”字段。包括安全类型信息的字段304的一个示例是指示制定会话消息302的会话参与者(例如,客户机或主机)支持哪些密码选项的密码字段。 
会话标识符210包括主机标识符214和可任选的其它值,它们共同形成会话标识符。该会话标识符填充会话消息302的会话标识符字段210。主机标识符214可以位于会话标识符210的字段内的任何地方,包括在会话标识符210字段上划分、分散和/或散布。 
在为易于提取的所述实现中,会话标识符210中对应于主机标识符214的子 字段被实现为连续的字节序列。该连续的字节序列出现在离会话标识符210的最高字节的固定偏移量处。然而,固定偏移量可以改为是从最低字节开始的偏移。 
对于额外的灵活性,主机标识符214可以被外部地配置,而非由例如SSLTLS组件选择。例如,主机标识符214可以通过作为从注册表键中读取的值来外部配置。如上所述,管理员可诸如通过设置注册表键值或通过某一其它机制来确定主机标识符214。 
主机标识符214或者可以被嵌入与来自会话标识符210的字段不同的字段中。例如,可使用发送到客户机102且当请求恢复现有会话时可不改变地从该客户机102返回的特定字段。该替换在消息格式和底层协议准许或要求具有期望的会话上下文112的主机108为该特定字段创建/选择值时尤其适用。对于该替换,网关元件106至少使用该特定字段的部分内容来执行路由操作216。 
主机标识符214包括设备标识符306,且还可包括应用程序标识符308。设备标识符306对应于主机标识符214相关联的主机的设备/用于该主机的设备。如图所示,设备标识符306包括标识主机108的设备的网络地址310或键312(A)。 
网络地址310是用于主机108的设备在内联网110上的网络地址。由此,如果设备标识符306包括网络地址310,则网关元件106可将设备标识符306插入到将被转发给主机108的一个或多个分组的目的地地址中。 
键312(A)是映射到用于主机108的设备在内联网110上的网络地址的值。该映射可以通过在表中查找网络地址、通过执行计算(例如,遵循公式、实现算法等)等来执行。例如,键312(A)可以被链接到上文参考表1所描述的数据结构中的主机地址H。其中键312(A)被链接到网络地址310的一个示例性表在下文参考图6A描述。 
当主机标识符214包括设备标识符306和应用程序标识符308时,主机标识符214包括应用程序端点。应用程序标识符308标识了由设备标识符306标识的主机设备上的特定应用程序。由此,包括设备标识符306和应用程序标识符308的主机标识符214能够从在单个主机108上和/或跨多个主机108复制的多个应用程序中标识特定的应用程序。 
包括设备标识符306但不包括应用程序标识符308的主机标识符214也可包括应用程序端点。例如,当设备仅有一个应用程序时,当设备是多宿主时,当设备的NIC拥有两个IP地址时等等,这是尤其可能的。在任一情况下,主机标识符214用于标识特定的应用程序以及特定的主机108。因此,客户机会话延续消息206的 路由可以迅速地对与请求客户机102具有会话亲缘性的期望的应用程序执行。 
主机标识符214可替换地包括键312(B)。键312(B)是映射到(i)用于主机108的设备在内联网110上的网络地址,以及(ii)其上的特定应用程序的值。这一映射使得键312(B)能够映射到应用程序端点,而无需使用单独的应用程序标识符308。该映射可通过在表中查找网络地址/应用程序标识符对,通过执行计算(例如,遵循公式、实现算法等)等来执行。例如,键312(B)可以被链接到数据结构中的网络地址310和应用程序标识符308。其中键312(B)链接到网络地址310和应用程序标识符308的一个示例性表在下文参考图6B来描述。 
在另一替换实现中,代码可被嵌入在会话消息302的会话标识符210的字段中。该代码可占据部分或整个会话标识符210字段。该代码可用于将信息(例如,数据、命令等)从主机108传递到网关元件106和/或客户机102。会话消息302的会话标识符字段可以用代码本身和/或用使用该代码创建的会话标识符210来填充。客户机102和/或网关元件106可以在代码映射(例如,查找、计算等)之后提取代码并照原样使用所传递的信息等。 
图4是示出用于提供路由提示的示例性方法的流程图400。流程图400包括七个框402-414。尽管流程图400的动作可以在其它环境中并使用各种硬件体系结构和软件模式来执行,但是图1-3(以及5)尤其用于示出该方法的某些方面和示例。例如,主机108可以执行所描述的动作。 
在框402,接收客户机会话消息。例如,主机108可从客户机102接收客户机会话消息202或206(例如,在消息处理器208的传入消息处理器部分208IC)。在框404,确定所接收的客户机会话消息是否包括消息标识符。例如,可检查所接收的客户机会话消息202或206(例如,以诸如会话消息302等格式)以确定它是否在会话标识符字段中有会话标识符210。 
如果所接收的客户机会话消息包括会话标识符210,则所接收的客户机会话消息是客户机会话延续消息(SCM)206,且方法在框412继续。另一方面,如果所接收的客户机会话消息不包括会话标识符210,则所接收的客户机会话消息是客户机会话发起消息(SIM)202,且方法在框406继续。 
在框406,用主机标识符创建会话标识符。例如,主机108的主机标识符214由会话标识符创建器212用于创建会话标识符210。会话标识符创建器212可将主机标识符214连同它的其它值一起插入到会话标识符210中。 
在框408,用所创建的会话标识符制定主机会话发起消息。例如,传出消息处 理器部分208OG可以制定(例如,使用诸如会话消息302等的格式)用包括主机标识符214的会话标识符210填充的主机会话发起消息204。在框410,发送主机会话发起消息。例如,主机108可通过网关元件106经由网络104向客户机102发送主机会话发起消息204。 
另一方面,如果确定(在框404)所接收的客户机会话消息确实包括会话标识符,则在框412用所接收的会话标识符制定主机会话延续消息。例如,传出消息处理器部分208OG可制定(例如,使用诸如会话消息302等的格式)用所接收的会话标识符210(可包括先前嵌入的主机标识符214)填充的主机会话延续消息(未在图2中特别示出)。在框414,发送主机会话延续消息。例如,主机108可通过网关元件106经由网络104向客户机102发送主机会话延续消息。 
图5示出了对会话消息提供和使用路由提示的另一示例性方法。该示例性方法集中于在网关元件106处使用路由提示。如图所示,客户机102(1)、102(2)、……、102(m)通过网络104提交定址到NGN处的网关元件106的请求。 
网关元件106将这些请求路由到主机108(1)、108(2)、……、108(n)。每一主机108(1)、108(2)、……、108(n)与相应的主机标识符214(1)、214(2)、……、214(n)相关联。例如,主机标识符214可从特定种类的会话可能定向到的一组端点中唯一地标识应用程序端点。 
在所描述的实现中,网关元件106涉及网络负载平衡。与网络负载平衡一起(或具有路由功能的其它网关),可采用一个或多个路由策略508。例如,路由策略508可包括管理员可编写或设置以使网络负载平衡器路以所规定的方式路由传入分组和/或请求的路由策略。路由策略508也可包括可依赖于诸如主机108的健康和负载信息等实时参数的更灵活和/或更广泛的路由策略。 
网关元件106的网络负载平衡实现可用集成的网络负载平衡功能来实现。该实现参考客户机会话延续消息206(A)和路由操作216(C)来描述。网关元件106的网络负载平衡实现可用分离的网络负载平衡功能来实现。该实现参考客户机会话延续消息206(B)和路由操作512来描述。 
在分离的功能的该示例性网络负载平衡实现中,网关元件106包括转发器502、分类器504、主机标识符(HI)-网络地址(NA)链接表506。转发器502在客户机102和主机108之间分别使用网络104和内联网110转发分组。分类器504对分组、请求、连接等进行分类,以执行路由操作,来实现网络负载平衡功能和/或会话亲缘性保存功能。 
转发器502和分类器504可以驻留在网关106的不同设备上并在其上执行,或可以驻留在网关106的单个设备上或在其上执行。此外,转发器502和分类器504的每一个可以在一个以上设备上分布。此外,网关106中可以有多个转发器502组件和/或分类器504组件。如图所示,每一分类器504包括主机标识符-网络地址链接表506。或者,网关106可仅有一个主机标识符-网络地址链接表506。主机标识符-网络地址链接表506也可位于不同的功能组件上和/或与不同的功能组件相关联。 
在集成网络负载平衡实现的操作中,客户机102(1)通过网络104向地址NGN处的网关元件106发送客户机会话延续消息206(A)。客户机102(1)先前已经在主机108(1)处建立了会话,且保留了分配给先前建立的会话的会话标识符210(1)。该会话标识符210(1)包括与主机108(1)相关联的主机标识符214(1)。客户机会话延续消息206(A)包括会话标识符210(1)。 
在集成网络负载平衡功能的实现中,网关元件106为客户机会话延续消息206(A)执行路由操作216(C)。由于客户机会话延续消息206(A)具有包括主机标识符214(1)的会话标识符210(1),因此网关元件106使用会话标识符210(1)的主机标识符214(1)部分路由客户机会话延续消息206(A)。一般而言,网关元件106使用从会话标识符210(1)中提取的主机标识符214(1)将客户机会话延续消息206(A)路由到主机108(1)。 
具体地,网关元件106可将主机标识符214(1)插入到被路由到主机108(1)的客户机会话延续消息206(A)的分组的目的地地址字段中。该方法在主机标识符214(1)包括主机108(1)的网络地址H1时是有效的。 
或者,网关元件106也可执行从主机标识符214(1)到网络地址H1的映射。例如,可对这一映射执行计算操作或查找操作。对于计算操作,主机标识符214(1)通过某一公式、算法等被映射到网络地址H1。对于查找操作,主机标识符214(1)通过访问包括将主机标识符214(1)链接到网络地址H1的条目的主机标识符-网络地址表,诸如主机标识符-网络地址链接表506被映射到网络地址H1。这样的表的一个示例在下文中参考图6A进一步描述。 
在分离的网络负载平衡实现的操作中,客户机102(2)通过网络104向地址NGN处的网关元件106发送客户机会话延续消息206(B)。客户机102(2)先前已经在主机108(2)处建立了会话,且保留了分配给先前建立的会话的会话标识符210(2)。该会话标识符210(2)包括与主机108(2)相关联的主机标识符214(2)。客户机会话延续消 息206(B)包括会话标识符210(2)。 
在分离的网络负载平衡功能的实现中,转发器502接收客户机会话延续消息206(B)。由于客户机会话延续消息206(B)用于对转发器502未知的会话(以及可能用于新连接),因此转发器502在通信交换510将客户机会话延续消息206(B)发送给分类器504。客户机会话延续消息206(B)具有包括主机标识符214(2)的会话标识符210(2),因此分类器504在路由操作512使用会话标识符210(2)的主机标识符214(2)部分来分类客户机会话延续消息206(B)。同样在通信交换510中,客户机504向转发器502返回客户机会话延续消息206(B)和/或在转发器502处添加路由条目,以指示该会话的消息/分组要被转发给主机108(2)。 
由此,分类器504和转发器502使用从会话标识符210(2)中提取的主机标识符214(2)联合地将客户机会话延续消息206(B)路由到主机108(2)。如上文相对于路由操作216(C)所描述的,转发器502和分类器504(i)可以将主机标识符214(2)插入到目的地地址字段中,(ii)可以执行主机标识符214(2)到网络地址H2的映射(例如,计算、查找等),等等。 
主机标识符-网络地址链接表506被描述为分类器504的一部分或与分类器504相关联。尽管主机标识符-网络地址链接表506被示出为位于网关元件106处,但是它也可以在不同的设备(例如,代理服务器设备)上。当位于这样的代理服务器设备上时,具有分离或集成(例如,网络负载平衡相关)功能的网关元件106可以从其中访问主机标识符-网络地址链接表506。 
图6A和6B分别是示出用于路由提示的主机标识符214和网络地址310链接的示例性表506(A)和506(B)。主机标识符-网络地址链接表506(A)一般对应于其中主机标识符214映射到设备的实现。主机标识符-网络地址链接表506(B)一般对应于其中主机标识符214映射到应用程序端点的实现。然而,主机标识符-网络地址链接表506(A)也可映射到如上文参考图3所描述的应用程序端点, 
如图所示,主机标识符-网络地址链接表506(A)将相应的主机标识符214链接到相应的网络地址310。表506(A)包括多个条目602(1A)、602(2A)、……、602(nA)。每一条目602(1A)、602(2A)、……602(nA)各自包括相应的主机标识符214(1)、214(2)、……、214(n)以及链接到其上的相应的网络地址310(1)、310(2)、……、310(n)。 
在所描述的实现中,表506(A)包括“n”个条目,其中n等于主机108的数目,且每一主机标识符214(1)、214(2)、……、214(n)对应于键312(A)(见图3)。在这一实现中,网络地址310(1)、310(2)、310(n)分别对应于主机地址H1、H2、……、 Hn(例如,图5)。在操作中,网关元件106访问具有主机标识符214(#)的表506(A)以定位与其相关联的条目602(#A)。从该条目602(#A)中,提取链接到主机标识符214(#)的网络地址310(#),用于将客户机会话延续消息206(A)或206(B)路由到主机108(#)。 
如图所示,主机标识符-网络地址链接表506(B)将相应的主机标识符214链接到相应的网络地址310和应用程序标识符308。表506(B)包括多个条目602(1B)、602(2B)、602(3B)、……、602(wB)。每一条目602(1B)、602(2B)、602(3B)、……、602(wB)各自包括(i)相应的主机标识符214(1*)、214(2*)、214(3*)、……、214(w),以及(ii)链接到主机标识符214的相应的网络地址310(1)、310(2)、……、310(n)和相应的应用程序标识符308(1)、308(2)、308(3)、……、308(z)。 
在所描述的实现中,表506(B)包括“w”个条目,其中w等于主机108上应用程序端点的数目,且每一主机标识符214(1*)、214(2*)、214(3*)、……、214(w)对应于键315(B)(图3)。作为解释,且参考图5,所示的主机标识符-网络地址链接表506(B)可以在以下示例性情况中使用:主机108(1)与主机标识符214(1*)相关联,且具有对应于应用程序标识符308(1)的一个应用程序,且地址H1对应于网络地址310(1)。主机108(2)与主机标识符214(2*)和214(3*)相关联,且具有对应于应用程序标识符308(2)和308(3)的两个应用程序,且地址H2对应于网络地址310(2)。 
另外,主机108(n)与主机标识符214(w)相关联,且具有对应于应用程序标识符308(z)的一个应用程序,且地址Hn对应于网络地址310(n)。如果每一应用程序标识符308对于每一应用程序安装是唯一的,则变量“z”可以等于应用程序端点的数目w。另一方面,如果应用程序标识符308在同一应用程序类型的应用程序安装之间共享,则z可以小于w。 
图7是示出用于使用路由提示的示例性方法的流程图700。流程图700包括八个框702-716。尽管流程图700的动作可以在其它环境中且用各种硬件体系结构和软件方案来执行,但是特别地使用了图1-3和5-6来示出该方法的某些方面和示例。例如,一个或多个网关元件106可执行所描述的动作。 
在框702,接收客户机消息。例如,网关元件106可以通过网络104从客户机102接收客户机消息。在框704,检查所接收的客户机消息的内容。例如,网关元件106可以检查会话消息302的一个或多个字段,诸如会话标识符210的字段。 
在框706,确定所接收的客户机消息是否为会话相关的。例如,如果所接收的客户机消息包括具有会话标识符210的字段的会话消息302,则所接收的客户机消 息是会话相关的。另一方面,如果所接收的客户机消息没有会话标识符210的字段,则所接收的客户机消息不是会话相关的,且该方法在框708继续。 
在框708,使用默认策略路由所接收的客户机消息。例如,网关元件106可使用路由策略508的通用路由策略,诸如默认网络负载平衡策略来路由所接收的客户机消息。如由虚线箭头718A所指示的,网关元件106然后可等待下一客户机消息的接收。 
另一方面,如果确定(在框706)所接收的客户机消息是会话相关的,则在框710检查会话标识符字段。例如,网关元件106可检查所接收的客户机会话消息302的会话标识符字段。在框712,确定客户机是否使用会话标识符字段指定了会话标识符。例如,网关元件106可确定会话标识符210是否填充会话消息302的会话标识符字段。 
如果确定(在框712)没有指定任何会话标识符,则所接收到的客户机会话发起消息202可在框708使用默认策略来路由。另一方面,如果确定(在框712)客户机指定了会话标识符,则在框714从所指定的会话标识符中提取主机标识符。例如,网关元件106可从所接收的客户机会话延续消息206中所指定的会话标识符210中提取主机标识符214。 
在框716,使用所提取的主机标识符来路由所接收的客户机消息。例如,所接收的客户机会话延续消息206可以由网关元件106路由到与主机标识符214相关联的主机108。该路由可能需要将主机标识符214不经修改地插入到转发给主机108的一个或多个分组的目的地字段中,或可能将需要主机标识符214映射到至少一个网络地址310。映射可以通过使用主机标识符214在表506中查找网络地址310,通过在主机标识符214上执行导致网络地址310的计算(例如,遵循公式、实现算法等)等来实现。 
尤其是对于其中网关元件106是网络负载平衡器的实现,网关元件106可具有对涉及多个主机108的健康和/或负载信息的访问。该健康和/或负载信息可指示与所提取的主机标识符214相关联的目的地(例如,主机108和/或其应用程序端点)由于健康和/或负载原因而不适用于或不能处理会话延续。在这一情况下,网关元件106即使在客户机102指定了包括主机标识符214的会话标识符210的情况下,也可对默认的路由策略执行框708的动作。 
在框716的动作之后,如由虚线箭头718B所指示的,网关元件106可等待下一客户机消息的接收。网关元件106可根据所提取的主机标识符214的类型,以多 种方式使用所提取的主机标识符214来路由所接收的客户机会话延续消息206。 
例如,如果主机标识符214包括设备标识符306和应用程序标识符308,或者如果键312(B)映射到主机108的设备和应用程序,则网关元件106可将所接收的客户机会话延续消息206直接路由到预期的应用程序。另外,网关元件106可能能够使用主机标识符214的设备标识符306的网络地址310实现来将所接收的客户机会话延续消息206路由到有亲缘性的主机108,其中网络地址310用作所路由的一个或多个分组的目的地地址。 
或者,网关元件106可使用主机标识符214的设备标识符306的键312(A)实现来查找有亲缘性的主机108的设备的网络地址310。例如,键312(#)可用于访问将键312(A)映射到主机108的网络地址310的表506(A)(例如,数据结构)。具有键312(#)的条目602(#A)位于该数据结构中。提取链接到该定位的条目602(#A)中的键312(#)的网络地址310(#),并将其用于将客户机会话延续消息206路由到有亲缘性的主机108。 
此外,网关元件106可使用主机标识符214的设备标识符306和应用程序标识符308的应用程序端点专用键312(B)实现来查找具有亲缘性的主机108的设备的网络地址310及其应用程序的应用程序标识符308。例如,键312(#)可用于访问将键312(B)映射到主机108的应用程序端点的表506(B)(例如,数据结构)。具有键312(#)的条目602(#B)位于数据结构中。提取链接到该定位的条目602(#B)中的键312(#)的应用程序端点(例如,网络地址310(#)和应用程序标识符308(#)),并将其用于将客户机会话延续消息206路由到具有亲缘性的主机108的特定设备/用于主机108的特定设备上的特定应用程序。 
图1-7的动作、方面、特征、组件等是在被划分成多个框的图中示出的。然而,描述和/或示出图1-7的多个框的顺序、号码、位置、互连、布局等并不旨在被解释为限制,且可以用任何方式组合、重新排列、增加、省略等任意数量的框来实现用于路由提示的一个或多个系统、方法、设备、过程、介质、应用程序编程接口(API)、装置、排列等。此外,尽管此处的描述包括对特定实现(以及图8的示例性操作环境)的引用,但所示和/或描述的实现可以用任何合适的硬件、软件、固件或其组合,且使用任何合适的网络组织、传输/通信协议、客户机-服务器体系结构等来实现。 
图8示出了能够实现用于此处所描述的路由提示的至少一个系统、设备、装置、组件、安排、协议、途径、方法、过程、介质、API、其某一组合等的示例性 计算(或通用设备)操作环境800。操作环境800可以在下文描述的计算机和网络体系结构中或在单独的情况下使用。 
示例性操作环境800仅是环境的一个示例,且不旨在对适用的设备(包括计算机、网络节点、娱乐设备、移动装置、通用电子设备等)体系结构的使用范围或功能提出任何局限。也不应将操作环境800(或其设备)解释为对图8所示的组件的任一个或任何组合有任何依赖性和要求。 
其它路由提示可以用众多其它的通用或专用设备(包括计算系统)环境或配置来实现。适合使用的公知的设备、系统、环境和/或配置的示例包括但不限于,个人计算机、服务器计算机、瘦客户机、胖客户机、个人数字助理(PDA)或移动电话、手表、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子设备、视频游戏机、游戏控制台、便携式或手持式游戏装置、网络PC、小型机、大型机、网络节点、包括任意上述系统或设备的分布式计算环境、其某一组合等等。 
路由提示的实现可在处理器可执行指令的一般上下文环境中描述。一般而言,处理器可执行指令包括例程、程序、协议、对象、接口、组件、数据结构等等,它们执行和/或启用特定的任务和/或实现特定的抽象数据类型。此处某些实施例中所描述的路由提示也可以在分布式处理环境中实践,其中,任务由通过通信链路和/或网络链接的远程链接的处理设备来执行。尤其是在分布式计算环境中,处理器可执行指令可以位于单独的存储介质中、由不同的处理器执行、和/或通过传输介质传播。 
示例性操作环境800包括计算机802形式的通用计算设备,它可包括具有计算/处理能力的任何(例如,电子)设备。计算机802的组件可包括但不限于,一个或多个处理器或处理单元804、系统存储器806以及将包括处理器804的各类系统组件耦合至系统存储器806的系统总线808。 
处理器804不限于从其中形成处理器或其中采用处理机制的材料。例如,处理器804可以由半导体和/或晶体管(例如,电子集成电路(IC))构成。在这一上下文中,处理器可执行指令可以是电子可执行指令。或者,处理器804或用于处理器804的机制以及因此用于计算机802的机制可包括,但不限于,量子计算、光学计算、机械计算(例如,使用纳米技术)等等。 
系统总线808表示任何多种类型的有线或无线总线结构的一种或多种,包括存储器总线或存储器控制器、点对点连接、交换光纤、外围总线、加速图形端口、 以及使用各类总线体系结构的处理器或局部总线。作为示例,这类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线、外围部件互连(PCI)总线(也称为Mezzanine总线)、其某一组合等等。 
计算机802通常包括各种处理器可访问介质。这类介质可以是可由计算机802或另一(例如,电子)设备访问的任一可用介质,并包括易失性和非易失性介质、可移动和不可移动介质、以及存储和传输介质。 
系统存储器806包括诸如随机存取存储器(RAM)810等易失性存储器,和/或诸如只读存储器(ROM)812等非易失性存储器形式的计算机存储介质。基本输入/输出系统(BIOS)814包括如在启动时帮助在计算机802内的元件之间传输信息的基本例程,通常储存在ROM 812中。RAM 810通常包含处理单元804立即可访问和/或当前正在操作的数据和/或程序模块/指令。 
计算机802也可包括其它可移动/不可移动、和/或易失性/非易失性存储介质。作为示例,图8示出了(通常)对不可移动、非易失性磁介质(未单独示出)进行读写的硬盘驱动器或盘驱动器阵列816;(通常)对可移动、非易失性磁盘820(如,“软盘”)进行读写的磁盘驱动器818;以及(通常)对可移动、非易失性光盘824,如CD、DVD或其它光介质进行读写的光盘驱动器822。硬盘驱动器816、磁盘驱动器818和光盘驱动器822的每一个通过一个或多个存储介质接口826连接到系统总线808。或者,硬盘驱动器816、磁盘驱动器818和光盘驱动器822可通过一个或多个单独或组合的接口(未示出)连接到系统总线808。 
盘驱动器及其相关联的处理器可访问介质为计算机802提供了诸如数据结构、程序模块和其它数据等处理器可执行指令的非易失性存储。尽管示例性计算机802示出了硬盘816、可移动磁盘820和可移动光盘824,然而可以理解,其它类型的处理器可访问介质,如盒式磁带或其它磁存储设备、闪存、光盘(CD)、数字多功能盘(DVD)或其它光存储、RAM、ROM、电可擦除可编程只读存储器(EEPROM)等,也可储存可由设备访问的数据。这样的介质也可包括所谓的专用或硬布线的IC芯片。换言之,任何处理器可访问介质可用于实现示例性操作环境800的存储介质。 
任意数量的程序模块(或其它指令/代码单元或集合)可储存在硬盘816、磁盘820、光盘824、ROM 812和/或RAM 810中。作为一般的示例,这些程序模块可包括操作系统828、一个或多个应用程序830、其它程序模块832以及程序数据 834。 
用户可以通过诸如键盘836和定位设备838(如,“鼠标”)等输入设备向计算机802输入命令和信息。其它输入设备840(未具体示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、串行端口、扫描仪和/或其类似物。这些和其它输入设备通常通过耦合至系统总线808的输入/输出接口842连接到处理单元804。然而,输入设备和/或输出设备也可以通过其它接口和总线结构连接,如并行端口、游戏端口、通用串行总线(USB)端口、红外端口、IEEE 1394(“火线”)接口、IEEE 802.11无线接口、 (蓝牙)无线接口等。 
监视器/查看屏幕844或其它类型的显示设备也通过接口,如视频适配器846连接到系统总线808。视频适配器846(或另一组件)可以是或可以包括用于处理图形密集型操作和用于处理需要的显示要求的图形卡。通常,图形卡包括图形处理单元(GPU)、视频RAM(VRAM)等,以便于图形的迅速显示以及图形操作的执行。除监视器844之外,其它输出外围设备可包括诸如扬声器(未示出)和打印机848等组件,它们可通过输入/输出接口842连接到计算机802。 
计算机802可以使用到一个或多个远程计算机,如远程计算设备850的逻辑连接在网络化环境中操作。作为示例,远程计算设备850可以是个人计算机、便携式计算机(例如,膝上型计算机、平板计算机、PDA、移动站等)、手掌或口袋大小的计算机、手表、游戏设备、服务器、路由器、网络计算机、对等设备、另一网络节点、或上文列出的另一设备类型等等。然而,远程计算设备850被示出为可包括此处相对于计算机802所描述的许多或所有元件和特征的便携式计算机。 
计算机802和远程计算机850之间的逻辑连接被描述为局域网(LAN)852和通用广域网(WAN)854。这类网络环境常见于办公室、企业范围计算机网络、内联网、因特网、固定和移动电话网络、特别和基础结构无线网络、其它无线网络、游戏网络、其某一组合等等。这样的网络和通信连接是传输介质的示例。 
当在LAN网络环境中实现时,计算机802通过网络接口或适配器856连接至LAN 852。当在WAN网络环境中使用时,计算机802通常包括调制解调器858或用于通过WAN 854建立通信的其它装置。调制解调器858可以对计算机802是内置或外置的,可通过输入/输出接口842或其它适当的机制连接至系统总线808。可以理解,示出的网络连接是示例性的,也可以使用在计算机802和850之间建立通信链路的其它手段。 
此外,可采用为服务器特别设计的其它硬件。例如,SSL加速卡可用于卸载 SSL计算。另外,尤其是在网络负载平衡操作环境中,网络接口或适配器856上(例如,网络接口卡上)的TCP卸载硬件和/或分组分类器可被安装在服务器设备上并在其上使用。 
在诸如用操作环境800示出的网络化环境中,相对于计算机802描述的程序模块或其他指令可完全或部分地储存在远程介质存储设备中。作为示例,远程应用程序860驻留在远程计算机850的存储器组件中,但可用于计算机802或可通过计算机802来访问。同样,为说明目的,应用程序830和诸如操作系统828等其它处理器可执行指令在此处被示出为离散的框,但是可以认识到,这些程序和组件以及其它指令在不同的时刻驻留在计算设备802(和/或远程计算设备850)的不同存储组件中,并由计算机802(和/或远程计算设备850)的处理器804执行。 
尽管以对结构、逻辑、算法和功能特征专用的语言和/或图表描述了系统、介质、设备、方法、过程、装置、技术、方案、途径、程序、安排和其它实现,但是可以理解,所附权利要求书中所定义的本发明不必限于所描述的具体特征或图表。相反,这些具体特征和图表是作为实现要求保护的本发明的示例性形式来揭示的。 

Claims (73)

1.一种用于路由提示的方法,所述方法包括:
使用主机标识符创建会话标识符,所述创建的会话标识符包含至少一个主机标识符;
用所创建的会话标识符制定主机会话发起消息;
从所述设备发送包括所创建的会话标识符的所制定的主机会话发起消息;
接收客户机会话消息;确定所接收的客户机会话消息是否包括接收到的会话标识符;
如果所接收的客户机会话消息被确定为不包括接收到的会话标识符,则执行所述创建和制定动作;
如果所接收的客户机会话消息被确定为包括接收到的会话标识符,则执行以下动作:
用所接收的会话标识符制定主机会话延续消息;以及
发送包括所接收的会话标识符的所制定的主机会话延续消息。
2.如权利要求1所述的方法,其特征在于,所述制定动作包括以下动作:
将所创建的会话标识符插入到主机会话消息的会话标识符字段中,以生成所制定的主机会话发起消息。
3.如权利要求2所述的方法,其特征在于,所述制定动作还包括以下动作:
填充所述主机会话消息的多个其它字段,以生成所制定的主机会话发起消息。
4.如权利要求1所述的方法,其特征在于,所述主机标识符包括设备标识符。
5.如权利要求4所述的方法,其特征在于,所述设备标识符包括网络地址和映射到所述网络地址的键中的至少一个。
6.如权利要求1所述的方法,其特征在于,所述主机标识符包括设备标识符和应用程序标识符。
7.如权利要求1所述的方法,其特征在于,所述主机标识符包括映射到网络地址和应用程序标识符的键。
8.如权利要求1所述的方法,其特征在于,所述创建动作包括以下动作:
通过在离所创建的会话标识符的最高或最低部分的预定偏移量处插入所述主机标识符来创建所述会话标识符。
9.如权利要求1所述的方法,其特征在于,所述创建动作包括以下动作:
通过在所创建的会话标识符上分散和散布所述主机标识符两者中的至少一个动作来创建所述会话标识符。
10.如权利要求1所述的方法,其特征在于,所述消息包括多个字段,所述多个字段具有源地址字段和目的地地址字段。
11.如权利要求1所述的方法,其特征在于,所述消息包括多个字段,所述多个字段具有指示制定所述消息的会话参与者支持哪些密码选项的密码字段。
12.如权利要求1所述的方法,其特征在于,所述主机标识符包括设备标识符和应用程序标识符。
13.如权利要求12所述的方法,其特征在于,所述设备标识符包括网络地址。
14.如权利要求12所述的方法,其特征在于,所述设备标识符包括可映射到网络地址的键。
15.如权利要求1所述的方法,其特征在于,所述主机标识符位于离所述会话标识符字段的最高部分的预定偏移量处。
16.如权利要求1所述的方法,其特征在于,所述主机标识符包括设备标识符。
17.如权利要求16所述的方法,其特征在于,所述设备标识符包括网络地址。
18.如权利要求17所述的方法,其特征在于,所述网络地址包括内联网地址。
19.如权利要求16所述的方法,其特征在于,所述设备标识符包括可映射到网络地址的键。
20.如权利要求1所述的方法,其特征在于,所述主机标识符包括可映射到网络地址和应用程序标识符的键。
21.如权利要求1所述的方法,其特征在于,所述主机标识符是在所述会话标识符字段上分散和散布两者的至少一种。
22.如权利要求1所述的方法,其特征在于,所述消息包括客户机问候消息和服务器问候消息中的至少一个。
23.如权利要求1所述的方法,其特征在于还包括:
从会话消息的会话标识符字段中确定主机标识符;以及
响应于所确定的主机标识符路由所述会话消息。
24.如权利要求23所述的方法,其特征在于,所述确定动作包括以下动作:
从所述会话消息的会话标识符字段中提取所述主机标识符作为连续的块。
25.如权利要求23所述的方法,其特征在于,所述路由动作包括以下动作:
访问具有所确定的主机标识符的表,以定位包括所确定的主机标识符的条目;以及
确定链接到所定位的条目处的所确定的主机标识符的网络地址。
26.如权利要求23所述的方法,其特征在于,所述路由动作包括以下动作:
访问具有所确定的主机标识符的表,以定位包括所确定的主机标识符的条目;以及
确定链接到所定位的条目处的所确定的主机标识符的网络地址和应用程序标识符。
27.如权利要求23所述的方法,其特征在于,所述路由动作包括以下动作:
将所确定的主机标识符映射到至少一个网络地址。
28.如权利要求27所述的方法,其特征在于,所述映射动作包括以下动作:
使用所确定的主机标识符在表中查找所述网络地址。
29.如权利要求27所述的方法,其特征在于,所述映射动作包括以下动作:
从所确定的主机标识符中计算所述网络地址。
30.如权利要求29所述的方法,其特征在于,所述计算动作包括以下动作:
遵循一公式以从所确定的主机标识符中计算所述网络地址。
31.如权利要求29所述的方法,其特征在于,所述计算动作包括以下动作:
实现一算法来从所确定的主机标识符中计算所述网络地址。
32.一种用于路由提示的设备,包括:
响应于主机标识符创建会话标识符的装置,所述创建的会话标识符包含至少一个主机标识符;
用响应于主机标识符创建的会话标识符制定主机会话消息的装置;以及
从所述设备发送包括所述会话标识符的所制定的主机会话消息的装置。
33.如权利要求32所述的设备,其特征在于,所述主机会话消息包括主机会话发起消息。
34.如权利要求32所述的设备,其特征在于,所述主机会话消息包括主机会话延续消息。
35.如权利要求32所述的设备,其特征在于,所述主机标识符与所述设备相关联。
36.如权利要求32所述的设备,其特征在于,所述创建装置包括使用所述主机标识符和从由以下各项构成的组中选择的至少一个值来创建所述会话标识符:随机选择的值、来自递增计数器的值、安全性相关的值以及散列值。
37.如权利要求32所述的设备,其特征在于,所述发送装置包括从所述设备向客户机发送包括所述会话标识符的所制定的主机会话消息。
38.如权利要求32所述的设备,其特征在于,所述发送装置包括经由网关并通过所述设备所连接的内联网从所述设备向客户机发送包括所述会话标识符的所制定的主机会话消息。
39.如权利要求32所述的设备,其特征在于还包括:
接收客户机会话消息的装置;以及
确定所接收的客户机会话消息是否包括接收到的会话标识符的装置。
40.如权利要求39所述的设备,其特征在于,如果确定装置确定所接收的客户机会话消息不包括接收到的会话标识符,则由所述制定装置和所述发送装置执行所述制定和发送动作。
41.如权利要求39所述的设备,其特征在于,如果确定装置确定所接收的客户机会话消息包括接收到的会话标识符,则由所述制定装置和所述发送装置执行以下的制定和发送动作:
用所接收的会话标识符制定主机会话延续消息;以及
从所述设备发送包括所接收的会话标识符的所制定的主机会话延续消息。
42.如权利要求32所述的设备,其特征在于,所述制定装置包括将所述会话标识符插入到所述主机会话消息的会话标识符字段中,以生成所制定的主机会话消息。
43.如权利要求32所述的设备,其特征在于,所述设备包括主机设备和/或服务器设备。
44.如权利要求32所述的设备,其特征在于,所述主机标识符由一个或多个存储介质存储。
45.如权利要求32所述的设备,其特征在于,所制定的主机会话消息符合(i)安全套接字层(SSL)标准,以及(ii)传输层安全(TLS)标准中的至少一个。
46.一种用于路由提示的设备,包括:
从主机接收主机会话发起消息的装置,所述主机会话发起消息具有包括主机标识符的会话标识符字段;以及
向所述主机发送客户机会话延续消息的装置,所述客户机会话延续消息具有包括所述主机标识符的会话标识符字段。
47.如权利要求46所述的设备,其特征在于还包括:
在所述接收装置的接收动作之前向所述主机发送客户机会话发起消息的装置。
48.如权利要求46所述的设备,其特征在于,所述会话标识符字段是用包括所述主机标识符的会话标识符来填充的;以及所述设备还包括:
保留包括所述主机标识符的会话标识符的装置。
49.如权利要求48所述的设备,其特征在于,所述主机标识符的所保留的会话标识符由一个或多个存储介质存储。
50.如权利要求46所述的设备,其特征在于,所述设备包括客户机设备。
51.一种用于路由提示的方法,所述方法包括:
从客户机接收不包括接收到的会话标识符的会话消息;
响应于所接收的会话消息,使用主机标识符创建会话标识符,所述创建的会话标识符包含至少一个主机标识符;;
建立向其分配所创建的会话标识符的会话;以及
制定包括所创建的会话标识符的会话消息。
52.如权利要求51所述的方法,其特征在于,还包括:
通过网关向所述客户机发送包括所创建的会话标识符的所制定的会话消息。
53.如权利要求52所述的方法,其特征在于,还包括:
从所述客户机发送不包括所接收的会话标识符的会话消息;
在所述客户机处接收包括所创建的会话标识符的所制定的会话消息;
在所述客户机处保留所创建的会话标识符;以及
从所述客户机发送包括所创建和所保留的会话标识符的会话消息。
54.如权利要求52所述的方法,其特征在于,还包括:
从所述客户机接收包括所创建的会话标识符的会话消息;
恢复向其分配所创建和所接收的会话标识符的会话;
响应于所接收的包括所创建的会话标识符的会话消息,制定包括所创建和所接收的会话标识符的会话消息;以及
通过网关向所述客户机发送包括所创建和所接收的会话标识符的所制定的会话消息,以指示所述会话可被继续。
55.一种用于路由提示的设备,包括:
主机标识符;以及
适用于使用所述主机标识符来创建会话标识符的会话标识符创建器,所述创建的会话标识符包含至少一个主机标识符。
56.如权利要求55所述的设备,其特征在于,所述设备还包括:
消息处理器,所述消息处理器能够接受传入的会话消息,并确定所述传入会话消息是否包括用于现有会话的现有会话标识符,所述消息处理器适用于在所述传入会话消息被确定为缺少现有会话标识符时激活所述会话标识符创建器。
57.如权利要求56所述的设备,其特征在于,所述消息处理器还适用于通过将所创建的会话标识符插入到所述主机会话发起消息的会话标识符字段,至少部分地制定主机会话发起消息。
58.如权利要求55所述的设备,其特征在于,所述设备还包括:
向其分配所创建的会话标识符的会话上下文。
59.一种用于路由提示的设备,包括:
接收具有包括主机标识符的会话标识符的会话消息的装置;以及
响应于所述主机标识符路由所述会话消息的装置。
60.如权利要求59所述的设备,其特征在于,所述接收装置包括从客户机接收具有所述会话标识符的会话消息,所述会话消息涉及与主机相关联的会话上下文,所述主机与所述主机标识符相关联。
61.如权利要求59所述的设备,其特征在于还包括:
基于所述路由从所述设备向与所述主机标识符相关联的主机发送所述会话消息的装置。
62.如权利要求59所述的设备,其特征在于还包括:
基于所述路由从所述设备向内联网上的主机发送所述会话消息,所述主机与所述主机标识符相关联。
63.如权利要求59所述的设备,其特征在于还包括:
确定接收到的会话消息是否包括接收到的会话标识符的装置。
64.如权利要求63所述的设备,其特征在于还包括:
如果所接收的会话消息被确定为包括接收到的会话标识符,则响应于作为所接收的会话标识符的至少一部分包括在内的接收到的主机标识符路由所接收的会话消息的装置。
65.如权利要求63所述的设备,其特征在于还包括:
如果所接收的会话消息被确定为不包括接收到的会话标识符,则依照至少一个默认路由策略路由所接收的会话消息的装置。
66.如权利要求59所述的设备,其特征在于还包括将相应的主机标识符至少链接到相应的网络地址的一个或多个表;并且其中,所述路由是至少部分地通过访问所述一个或多个表来实现的。
67.如权利要求59所述的设备,其特征在于,所述设备包括多个设备。
68.一种能够接受具有会话标识符字段的会话相关消息的网关,所述会话标识符包含至少一个主机标识符,所述网关适用于从填充所述会话标识符字段的值中提取主机标识符,所述网关还适用于使用所述主机标识符为所述会话相关的消息执行路由操作。
69.如权利要求68所述的网关,其特征在于,填充所述会话标识符字段的值包括会话标识符。
70.如权利要求68所述的网关,其特征在于,所述网关包括路由器、防火墙设备、代理服务器和网络负载平衡设备中的至少一个。
71.如权利要求68所述的网关,其特征在于,所述网关还适用于使用至少一个主机标识符-网络地址链接表来执行所述路由操作。
72.如权利要求68所述的网关,其特征在于,所述网关还适用于用所述主机标识符到网络地址的映射来执行所述路由操作。
73.如权利要求68所述的网关,其特征在于,所述网关还适用于通过将所述主机标识符插入到一个或多个分组的目的地地址字段中来执行所述路由操作。
CN03826817.5A 2003-08-13 2003-08-18 用于路由提示的方法和设备 Expired - Fee Related CN1802638B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US10/639,727 US8266294B2 (en) 2003-08-13 2003-08-13 Routing hints
US10/639,516 US7882251B2 (en) 2003-08-13 2003-08-13 Routing hints
US10/639,516 2003-08-13
US10/639,727 2003-08-13
PCT/US2003/025747 WO2005020085A1 (en) 2003-08-13 2003-08-18 Routing hints

Publications (2)

Publication Number Publication Date
CN1802638A CN1802638A (zh) 2006-07-12
CN1802638B true CN1802638B (zh) 2012-10-03

Family

ID=34135937

Family Applications (1)

Application Number Title Priority Date Filing Date
CN03826817.5A Expired - Fee Related CN1802638B (zh) 2003-08-13 2003-08-18 用于路由提示的方法和设备

Country Status (3)

Country Link
US (1) US8266294B2 (zh)
CN (1) CN1802638B (zh)
ZA (1) ZA200600237B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11832339B2 (en) 2018-02-22 2023-11-28 Telefonaktiebolaget Lm Ericsson (Publ) Handling application protocol identity for a UE-associated logical connection

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7013158B1 (en) * 2002-11-25 2006-03-14 Sprint Spectrum L.P. Method and system for brokering frequencies to facilitate peer-to-peer communication
US8266294B2 (en) 2003-08-13 2012-09-11 Microsoft Corporation Routing hints
US7882251B2 (en) 2003-08-13 2011-02-01 Microsoft Corporation Routing hints
US7904929B1 (en) * 2003-10-30 2011-03-08 Microsoft Corporation Log entries
US8856239B1 (en) 2004-02-10 2014-10-07 Sonicwall, Inc. Message classification based on likelihood of spoofing
US7984149B1 (en) * 2004-08-04 2011-07-19 Cisco Technology, Inc. Method and apparatus for identifying a policy server
CA2518894C (en) * 2005-06-23 2014-06-10 Cognos Incorporated Request routing system for and method of request routing
JP2007079885A (ja) * 2005-09-14 2007-03-29 Hitachi Ltd データ入出力負荷分散方法、データ入出力負荷分散プログラム、計算機システムおよび管理サーバ
US8270413B2 (en) * 2005-11-28 2012-09-18 Cisco Technology, Inc. Method and apparatus for self-learning of VPNS from combination of unidirectional tunnels in MPLS/VPN networks
US8274979B2 (en) * 2005-12-30 2012-09-25 Telecom Italia S.P.A. Method and system for secure communication between a public network and a local network
CN101296176B (zh) * 2007-04-25 2010-12-22 阿里巴巴集团控股有限公司 一种基于群集的数据处理方法和装置
US20100268899A1 (en) * 2008-07-01 2010-10-21 Hiroki Etoh Memory controller, nonvolatile storage device, data processing device, nonvolatile storage device system, and method
US8447881B2 (en) * 2008-09-02 2013-05-21 Microsoft Corporation Load balancing for services
US8516126B2 (en) * 2008-09-24 2013-08-20 International Business Machines Corporation Processing SIP messages based on multiple cores
US8510409B1 (en) * 2009-12-23 2013-08-13 Emc Corporation Application-specific outbound source routing from a host in a data network
US9246882B2 (en) * 2011-08-30 2016-01-26 Nokia Technologies Oy Method and apparatus for providing a structured and partially regenerable identifier
US9160791B2 (en) * 2013-08-13 2015-10-13 International Business Machines Corporation Managing connection failover in a load balancer
US10554760B2 (en) * 2013-09-29 2020-02-04 Xiaomi Inc. Method and networking equipment for acquiring feature information
US10491580B2 (en) 2014-06-23 2019-11-26 Telefonaktiebolaget Lm Ericsson (Publ) Methods and apparatuses for enabling an establishment of a second secure session over a communication network
US10237236B2 (en) * 2015-06-25 2019-03-19 Microsoft Technology Licensing, Llc Media Session
US11516154B2 (en) 2017-07-13 2022-11-29 Apple Inc. Systems for managing messaging conversations
US11165681B2 (en) * 2019-09-27 2021-11-02 Juniper Networks, Inc. Inter-autonomous system trace route message
US11968250B2 (en) * 2022-01-18 2024-04-23 Dish Wireless L.L.C. Systems and methods for a distributed data platform
EP4351109A1 (en) * 2022-10-03 2024-04-10 Koninklijke Philips N.V. Accelerated session resumption on load-balanced network services

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6085247A (en) * 1998-06-08 2000-07-04 Microsoft Corporation Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions using different computers
CN1321935A (zh) * 2000-05-01 2001-11-14 国际商业机器公司 控制客户机与服务器群之间通信的方法及网络服务器设备
US6539494B1 (en) * 1999-06-17 2003-03-25 Art Technology Group, Inc. Internet server session backup apparatus

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1051459A (ja) 1996-07-31 1998-02-20 Oki Electric Ind Co Ltd Atm交換機およびatmネットワークならびにマルチキャスト設定方法
US6148000A (en) 1996-10-02 2000-11-14 International Business Machines Corporation Merging of data cells at network nodes
US5944823A (en) 1996-10-21 1999-08-31 International Business Machines Corporations Outside access to computer resources through a firewall
US5968119A (en) * 1996-12-09 1999-10-19 Wall Data Incorporated Method of accessing information of an SNA host computer from a client computer using a specific terminal emulation
US6331985B1 (en) 1997-08-21 2001-12-18 Adc Telecommunications, Inc. Telecommunication network with variable address learning, switching and routing
JP3733218B2 (ja) 1997-09-30 2006-01-11 キヤノン株式会社 中継装置及びその制御方法及び記憶媒体
US6065120A (en) * 1997-12-09 2000-05-16 Phone.Com, Inc. Method and system for self-provisioning a rendezvous to ensure secure access to information in a database from multiple devices
RU2232418C2 (ru) 1998-04-17 2004-07-10 Дайболд, Инкорпорейтед Устройство для осуществления финансовых транзакций
CN1260653A (zh) 1998-07-24 2000-07-19 休斯电子公司 多模式、多调制点对多点通信
TW495686B (en) 1998-10-19 2002-07-21 David S Chapman Approach for routing an integrated circuit
US7200632B1 (en) 1999-04-12 2007-04-03 Softricity, Inc. Method and system for serving software applications to client computers
US6996630B1 (en) 1999-06-18 2006-02-07 Mitsubishi Denki Kabushiki Kaisha Integrated network system
US6374300B2 (en) 1999-07-15 2002-04-16 F5 Networks, Inc. Method and system for storing load balancing information with an HTTP cookie
US6363065B1 (en) 1999-11-10 2002-03-26 Quintum Technologies, Inc. okApparatus for a voice over IP (voIP) telephony gateway and methods for use therein
US7171473B1 (en) 1999-11-17 2007-01-30 Planet Exchange, Inc. System using HTTP protocol for maintaining and updating on-line presence information of new user in user table and group table
JP2001265680A (ja) 2000-03-15 2001-09-28 Fujitsu Ltd 複数メディアのセッションを管理する装置および方法
US6813686B1 (en) 2000-06-27 2004-11-02 Emc Corporation Method and apparatus for identifying logical volumes in multiple element computer storage domains
US7193980B2 (en) 2000-07-06 2007-03-20 Nortel Networks Limited Continuation session attribute
US7441265B2 (en) * 2000-08-04 2008-10-21 Prismtech Gmbh Method and system for session based authorization and access control for networked application objects
US6928076B2 (en) * 2000-09-22 2005-08-09 Intel Corporation System and method for controlling signal processing in a voice over packet (VoP) environment
JP2002176432A (ja) 2000-12-05 2002-06-21 Sony Corp 通信中継装置、通信中継方法、および通信端末装置、並びにプログラム記憶媒体
JP2002189646A (ja) 2000-12-22 2002-07-05 Matsushita Electric Ind Co Ltd 中継装置
US7305697B2 (en) 2001-02-02 2007-12-04 Opentv, Inc. Service gateway for interactive television
JP3963690B2 (ja) 2001-03-27 2007-08-22 富士通株式会社 パケット中継処理装置
US7349425B2 (en) 2001-03-28 2008-03-25 Qualcomm Incorporated Method and apparatus for overhead messaging in a wireless communication system
US6539949B2 (en) 2001-03-29 2003-04-01 Peter N. Christensen Applicator for applying liquids to hair-covered skin
US20030078964A1 (en) 2001-06-04 2003-04-24 Nct Group, Inc. System and method for reducing the time to deliver information from a communications network to a user
US7406524B2 (en) 2001-07-26 2008-07-29 Avaya Communication Isael Ltd. Secret session supporting load balancer
US7111162B1 (en) * 2001-09-10 2006-09-19 Cisco Technology, Inc. Load balancing approach for scaling secure sockets layer performance
US7243366B2 (en) * 2001-11-15 2007-07-10 General Instrument Corporation Key management protocol and authentication system for secure internet protocol rights management architecture
KR100445422B1 (ko) 2001-11-20 2004-08-25 한국전자통신연구원 다이아메터 기반 에이에이에이 시스템에서 티엘에스를이용한 보안 전송 계층 연결 설정 방법
RU2207617C1 (ru) 2001-12-13 2003-06-27 Ашкиназий Яков Михайлович Способ защиты и контроля подлинности информации и электронный криптографический модуль для его осуществления
US7296074B2 (en) 2002-03-20 2007-11-13 Scientific-Atlanta, Inc. Media on demand session re-use
US7644434B2 (en) 2002-04-25 2010-01-05 Applied Identity, Inc. Computer security system
US8117328B2 (en) * 2002-06-25 2012-02-14 Microsoft Corporation System and method for automatically recovering from failed network connections in streaming media scenarios
US7774473B2 (en) * 2002-07-31 2010-08-10 Oracle America, Inc. System and method for sticky routing of requests within a server farm
US7373423B2 (en) 2002-09-11 2008-05-13 Trend Micro Incorporated Network infrastructure management and data routing framework and method thereof
US7493623B2 (en) * 2003-02-05 2009-02-17 Nokia Corporation System and method for identifying applications targeted for message receipt in devices utilizing message queues
US7882251B2 (en) 2003-08-13 2011-02-01 Microsoft Corporation Routing hints
CA2532185A1 (en) 2003-08-13 2005-03-03 Microsoft Corporation Routing hints
US8266294B2 (en) 2003-08-13 2012-09-11 Microsoft Corporation Routing hints
JP2008002385A (ja) 2006-06-23 2008-01-10 Nissan Motor Co Ltd バルブシート構造及び内燃機関の吸気ポート構造

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6085247A (en) * 1998-06-08 2000-07-04 Microsoft Corporation Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions using different computers
US6539494B1 (en) * 1999-06-17 2003-03-25 Art Technology Group, Inc. Internet server session backup apparatus
CN1321935A (zh) * 2000-05-01 2001-11-14 国际商业机器公司 控制客户机与服务器群之间通信的方法及网络服务器设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11832339B2 (en) 2018-02-22 2023-11-28 Telefonaktiebolaget Lm Ericsson (Publ) Handling application protocol identity for a UE-associated logical connection

Also Published As

Publication number Publication date
CN1802638A (zh) 2006-07-12
ZA200600237B (en) 2007-03-28
US20050038906A1 (en) 2005-02-17
US8266294B2 (en) 2012-09-11

Similar Documents

Publication Publication Date Title
CN1802638B (zh) 用于路由提示的方法和设备
US8918525B2 (en) Routing hints
CN103491065B (zh) 一种透明代理及其实现方法
CN1607781B (zh) 利用连接操作进行网络负载平衡
CN1578320B (zh) 利用主机状态信息进行网络负载平衡
CN111193653B (zh) 数据传输方法、装置、设备及存储介质
CN105578488B (zh) 网络数据采集系统及方法
JP4828619B2 (ja) ルーティングヒント
CN104160680B (zh) 用于透明代理缓存的欺骗技术
US20030145106A1 (en) System and method for directing wireless data packet traffic
JP6371592B2 (ja) コンテンツ中心ネットワークにおけるノードの通信方法及びそのノード
CN105743812A (zh) 在单个连接上多路复用许多客户端流
CN101800781B (zh) 一种穿越nat的隧道过渡方法及系统
CN1354578A (zh) 动态负载平衡器
CN102484656A (zh) 用于中继分组的方法和设备
CN106302630A (zh) 传送私有数据和数据对象
CN102710765A (zh) 一种cdn服务器实现透明代理的方法、装置及系统
CN107864101A (zh) 负载均衡方法和装置
CN104506450A (zh) 媒体资源反馈方法及装置
CN113691589A (zh) 报文传输方法、装置及系统
CN107181605A (zh) 报文检测方法及系统、内容提取装置、流量匹配装置
CN1420663A (zh) 用于在网络上传送数据的方法和装置
CN102201996A (zh) 网络地址转换环境中报文转发的方法及设备
CN105282231A (zh) 基于应用类型的数据引流方法、装置及系统
CN106713260A (zh) 一种用于虚拟专用拨号网中动态数据注入的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20060712

C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150429

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121003

Termination date: 20200818

CF01 Termination of patent right due to non-payment of annual fee