JP4828619B2 - Routing hint - Google Patents

Routing hint Download PDF

Info

Publication number
JP4828619B2
JP4828619B2 JP2009151291A JP2009151291A JP4828619B2 JP 4828619 B2 JP4828619 B2 JP 4828619B2 JP 2009151291 A JP2009151291 A JP 2009151291A JP 2009151291 A JP2009151291 A JP 2009151291A JP 4828619 B2 JP4828619 B2 JP 4828619B2
Authority
JP
Japan
Prior art keywords
session
host
identifier
message
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
JP2009151291A
Other languages
Japanese (ja)
Other versions
JP2009260988A (en
Inventor
エイ.バネス ジョン
エム.ジョイ ジョーゼフ
アール.モウアーズ デイヴィッド
パヤ セム
サン フォン
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 Corp
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
Priority claimed from US10/639,727 external-priority patent/US8266294B2/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2009260988A publication Critical patent/JP2009260988A/en
Application granted granted Critical
Publication of JP4828619B2 publication Critical patent/JP4828619B2/en
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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • 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
    • 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
    • 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/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/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
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

A first exemplary media implementation includes processor-executable instructions that direct a device to perform actions including: creating a session identifier (210) using a host identifier (214); and formulating a host session initiation message with the created session identifier. An exemplary device implementation includes: at least one processor; and one or more media including processor-executable instructions that direct the device to perform actions including: formulating a host session message with a session identifier that is created responsive to a host identifier; and sending the formulated host session message that includes the session identifier from the device. A second exemplary media implementation includes processor-executable instructions that direct an apparatus to perform actions including: ascertaining a host identifier from a session identifier field of a session message; and routing the session message responsive to the ascertained host identifier.

Description

この開示は、全般的にはルーティングヒントに関し、具体的には、制限ではなく例として、イントラネットルーティングを容易にするためにネットワークゲートウェイでそのようなルーティングヒントを使用するためにホストからルーティングヒントを供給することに関する。   This disclosure relates generally to routing hints, and specifically provides routing hints from hosts to use such routing hints at network gateways to facilitate intranet routing as an example rather than a limitation. About doing.

通信は、インターネットの機能によって大きく影響を受けてきた。インターネットは、パケットを使用して2人の人または他のエンティティの間ですばやく比較的簡単に情報を通信できるようにする。インターネットに、情報を含むパケットをそれらの間で転送できるように一緒にリンクされた多数のネットワークノードが含まれる。ネットワークノードには、あるリンクから別のリンクへパケットを伝搬させるルータと、個々のクライアントコンピュータと、完全にパーソナルなネットワーク(たとえば、特定のエンティティ用)などがある。   Communication has been greatly influenced by the capabilities of the Internet. The Internet makes it possible to communicate information quickly and relatively easily between two people or other entities using packets. The Internet includes a number of network nodes linked together so that packets containing information can be transferred between them. Network nodes include routers that propagate packets from one link to another, individual client computers, a completely personal network (eg, for a particular entity), and the like.

インターネットでの第1エンティティと第2エンティティの間の通信は、それらの間で接続を構成することによって実現される。これらの接続に、時々、セッションが含まれる。セッションは、対応する1つまたは複数の接続を介して行われる通信交換のコンテキストを提供するために確立される。セッション確立に、通常、第1エンティティと第2エンティティの間の1方向または両方向の情報交換が含まれる。セッションの確立フェーズの複雑さおよび持続時間は、通常、セッションのタイプに基づいて変化する。   Communication between the first entity and the second entity on the Internet is realized by configuring a connection between them. These connections sometimes include sessions. A session is established to provide a context for communication exchanges that take place over the corresponding connection or connections. Session establishment typically includes one-way or two-way information exchange between the first entity and the second entity. The complexity and duration of the session establishment phase usually varies based on the type of session.

各セッション確立は、処理リソースを使用し、ある時間期間を消費し、この時間期間が、ユーザが経験する遅延に変換される。セッション確立フェーズの後に、第1エンティティおよび第2エンティティは、確立されたセッションコンテキストに従って通信する。この通信ならびに接続は、セッションを終了せずに終わる場合がある。いくつかの場合に、そのような既存セッションが、その後、以前のセッション確立フェーズ中に2つのエンティティの間で前に交換された情報がこれらのエンティティによって保持されている場合に、その情報を使用して継続される場合がある。   Each session establishment uses processing resources and consumes a certain time period, which is converted into a delay experienced by the user. After the session establishment phase, the first entity and the second entity communicate according to the established session context. This communication and connection may end without ending the session. In some cases, such an existing session then uses that information if the information previously exchanged between the two entities during the previous session establishment phase is held by these entities May continue.

言い換えると、前に交換された情報が、既存セッションを継続するのに使用される。したがって、既存セッションの継続は、一般に、前にセッションを確立したのと同一の第1エンティティおよび第2エンティティが、そのセッションの継続を試みる状況に関する。その結果、第2エンティティが未知であり、かつ/または識別もしくは連絡が困難である場合に、第1エンティティが既存セッションの継続を試みる時に、問題が生じる可能性がある。   In other words, previously exchanged information is used to continue the existing session. Thus, continuation of an existing session generally relates to a situation where the same first and second entities that previously established the session attempt to continue that session. As a result, problems may arise when the first entity attempts to continue an existing session if the second entity is unknown and / or difficult to identify or contact.

したがって、2つのエンティティの間のセッション継続を改善し、単純化し、かつ/または容易にする方式および/または技法の必要がある。   Accordingly, there is a need for schemes and / or techniques that improve, simplify, and / or facilitate session continuity between two entities.

第1の例示的な媒体実装で、1つまたは複数のプロセッサアクセス可能媒体が、実行された時に、ホスト識別子を使用してセッション識別子を作成する動作と、前記作成されたセッション識別子を用いてホストセッション開始メッセージを定式化する動作とを実行するようにデバイスに指示するプロセッサ実行可能命令を含む。   In a first exemplary media implementation, when one or more processor-accessible media are executed, the host identifier is used to create a session identifier, and the created session identifier is used to host Processor executable instructions that instruct the device to perform operations that formulate a session initiation message.

第1の例示的なデバイス実装で、デバイスが、少なくとも1つのプロセッサと、前記少なくとも1つのプロセッサによって実行できるプロセッサ実行可能命令を含む1つまたは複数の媒体とを含み、前記プロセッサ実行可能命令は、ホスト識別子に応答して作成されるセッション識別子を用いてホストセッションメッセージを定式化する動作と、前記セッション識別子を含む前記定式化されたホストセッションメッセージを前記デバイスから送る動作とを実行するように前記デバイスに指示するように適合されている。   In a first exemplary device implementation, a device includes at least one processor and one or more media including processor executable instructions that can be executed by the at least one processor, the processor executable instructions comprising: Performing an operation of formulating a host session message using a session identifier created in response to the host identifier and an operation of sending the formulated host session message including the session identifier from the device. Adapted to instruct the device.

第2の例示的な媒体実装で、1つまたは複数のプロセッサアクセス可能媒体が、データ構造を含み、前記データ構造は、セッション識別子フィールドを含むメッセージであって、前記セッション識別子フィールドの少なくとも一部はホスト識別子を含む。   In a second exemplary media implementation, one or more processor-accessible media includes a data structure, the data structure being a message including a session identifier field, wherein at least a portion of the session identifier field is Contains the host identifier.

第2の例示的なデバイス実装で、デバイスが、ホスト識別子と、前記ホスト識別子を使用してセッション識別子を作成するように適合されたセッション識別子クリエータとを含む。   In a second exemplary device implementation, a device includes a host identifier and a session identifier creator adapted to create a session identifier using the host identifier.

例示的なネットワークゲートウェイ実装で、ネットワークゲートウェイが、セッション識別子フィールドを有するセッション関連メッセージを受け入れることができ、前記ネットワークゲートウェイは、前記セッション識別子フィールドに投入される値からホスト識別子を抽出するように適合されており、前記ネットワークゲートウェイは、さらに、前記ホスト識別子を使用して前記セッション関連メッセージのルーティング動作を実行するように適合されている。   In an exemplary network gateway implementation, a network gateway can accept a session related message having a session identifier field, and the network gateway is adapted to extract a host identifier from a value entered in the session identifier field. And the network gateway is further adapted to perform a routing operation of the session related message using the host identifier.

第3の例示的な媒体実装で、1つまたは複数のプロセッサアクセス可能媒体が、実行された時に、セッションメッセージのセッション識別子フィールドからホスト識別子を確認する動作と、前記確認されたホスト識別子に応答して前記セッションメッセージをルーティングする動作とを実行するように装置に指示するプロセッサ実行可能命令を含む。   In a third exemplary media implementation, one or more processor-accessible media, when executed, responds to the confirmed host identifier with an operation of confirming a host identifier from a session identifier field of a session message. Processor-executable instructions for instructing the device to perform operations to route the session message.

例示的な装置実装で、装置が、少なくとも1つのプロセッサと、前記少なくとも1つのプロセッサによって実行できるプロセッサ実行可能命令を含む1つまたは複数の媒体とを含み、前記プロセッサ実行可能命令は、ホスト識別子を含むセッション識別子を有するセッションメッセージを受け取る動作と、前記ホスト識別子に応答して前記セッションメッセージをルーティングする動作とを実行するように前記装置に指示するように適合されている。   In an exemplary apparatus implementation, an apparatus includes at least one processor and one or more media including processor-executable instructions that can be executed by the at least one processor, wherein the processor-executable instructions include a host identifier. The apparatus is adapted to instruct the apparatus to perform an operation of receiving a session message having a session identifier including and an operation of routing the session message in response to the host identifier.

他の方法、システム、手法、装置、アプリケーションプログラミングインターフェース(API)、デバイス、媒体、プロシージャ、配置などの実装を、本明細書で説明する。   Implementations of other methods, systems, techniques, devices, application programming interfaces (APIs), devices, media, procedures, arrangements, etc. are described herein.

同一の符号が、複数の図面を通じて、類似するおよび/または対応する態様、特徴、およびコンポーネントを参照するのに使用される。   The same numbers are used throughout the drawings to reference like and / or corresponding aspects, features, and components.

セッションを確立する第1接続およびそのセッションを継続する第2接続を示す例示的な通信環境を示す図である。FIG. 2 illustrates an exemplary communication environment showing a first connection that establishes a session and a second connection that continues the session. セッションメッセージと共にルーティングヒントを供給し、使用する例示的な手法を示す図である。FIG. 6 illustrates an exemplary technique for providing and using routing hints with session messages. ルーティングヒントを含めることができる例示的なセッションメッセージを示す図である。FIG. 4 illustrates an example session message that can include a routing hint. ルーティングヒントを供給する例示的な方法を示す流れ図である。2 is a flow diagram illustrating an exemplary method for providing routing hints. セッションメッセージと共にルーティングヒントを供給し、使用するもう1つの例示的な手法を示す図である。FIG. 6 illustrates another exemplary approach for providing and using routing hints with session messages. ルーティングヒントと共に使用されるホスト識別子とネットワークアドレスのリンキングを示す例示的なテーブルを示す図である。FIG. 6 illustrates an exemplary table showing host identifier and network address linking used with routing hints. ルーティングヒントと共に使用されるホスト識別子とネットワークアドレスのリンキングを示す例示的なテーブルを示す図である。FIG. 6 illustrates an exemplary table showing host identifier and network address linking used with routing hints. ルーティングヒントを使用する例示的な方法を示す流れ図である。5 is a flow diagram illustrating an exemplary method for using routing hints. 本明細書に記載のルーティングヒントの少なくとも1つの態様を実装する(全体をまたは部分的に)ことができる例示的なコンピューティング(または一般デバイス)オペレーティング環境を示す図である。FIG. 6 illustrates an example computing (or general device) operating environment in which at least one aspect of the routing hints described herein can be implemented (in whole or in part).

図1は、セッションを確立する第1接続114(1)およびそのセッションを継続する第2接続114(2)を示す例示的な通信環境100である。図からわかるように、例示的な通信環境100に、複数のクライアント102(1)、102(2)、…、102(m)および複数のホスト108(1)、108(2)、…、108(n)、ならびにネットワーク104およびネットワークゲートウェイ(NG)106が含まれる。ネットワークゲートウェイ106は、ネットワーク104とイントラネット110の間のゲートウェイとして働く。ホスト108は、イントラネット110に結合される。   FIG. 1 is an exemplary communication environment 100 showing a first connection 114 (1) establishing a session and a second connection 114 (2) continuing the session. As can be seen, the exemplary communication environment 100 includes a plurality of clients 102 (1), 102 (2),..., 102 (m) and a plurality of hosts 108 (1), 108 (2),. (N), and network 104 and network gateway (NG) 106 are included. Network gateway 106 serves as a gateway between network 104 and intranet 110. Host 108 is coupled to intranet 110.

説明される実装では、クライアント102(1)、102(2)、…、102(m)が、それぞれアドレス「C1」、「C2」、…、「Cm」に対応する。クライアント102のそれぞれは、コンピュータ、モバイルステーション、エンターテイメント機器、別のネットワークなど、ネットワーク通信が可能な任意のデバイスとすることができる。クライアント102は、クライアントデバイスを操作している人または他のエンティティに対応することもできる。言い換えると、クライアント102に、ユーザおよび/または機械である論理クライアントを含めることができる。   In the described implementation, clients 102 (1), 102 (2),..., 102 (m) correspond to addresses “C1”, “C2”,. Each of the clients 102 can be any device capable of network communication, such as a computer, mobile station, entertainment device, another network, and the like. Client 102 may also correspond to a person or other entity operating a client device. In other words, the client 102 can include logical clients that are users and / or machines.

ネットワーク104は、インターネット、もう1つのイントラネット、有線または無線の電話網、無線ブロードバンドネットワークなど、1つまたは複数のネットワークから形成することができる。クライアント102およびネットワーク104のネットワークタイプ/トポロジのデバイスの追加の例を、下で図8を参照して説明する。個々のクライアント102は、ネットワーク104を介し、ネットワークゲートウェイ106を介して、1つまたは複数のホスト108と通信でき、その逆を行うことができる。   The network 104 may be formed from one or more networks, such as the Internet, another intranet, a wired or wireless telephone network, a wireless broadband network. Additional examples of devices of network type / topology for client 102 and network 104 are described below with reference to FIG. Individual clients 102 can communicate with one or more hosts 108 via network 104 and network gateway 106, and vice versa.

ホスト108(1)、108(2)、…、108(n)は、それぞれアドレス「H1」、「H2」、…、「Hn」に対応する。ホストアドレスH1、H2、…、Hnは、イントラネット110上に存在する。ホスト108は、通常、1つまたは複数のアプリケーション(図示せず)をホスティングする。これらのアプリケーションは、(i)クライアント102との相互作用および/または通信に関するサービスを提供し、(ii)クライアント102などによる使用のためのものである。例のみとして、そのようなアプリケーションに、ファイル配送プログラム、ウェブサイト管理/サーバプログラム、リモートアクセスプログラム、電子メールプログラム、データベースアクセスプログラムなどを含めることができる。   The hosts 108 (1), 108 (2),..., 108 (n) correspond to the addresses “H1”, “H2”,. The host addresses H1, H2,..., Hn exist on the intranet 110. Host 108 typically hosts one or more applications (not shown). These applications (i) provide services related to interaction and / or communication with the client 102 and (ii) are for use by the client 102 and the like. By way of example only, such applications may include file delivery programs, website management / server programs, remote access programs, email programs, database access programs, and the like.

各ホスト108は、1つのサーバおよび/または1つのデバイス、複数のサーバおよび/または複数のデバイス、サーバの一部および/またはデバイスの一部、これらのある組合せなどの対応することができる。ホスト108の特定の例示的な実装を、さらに、下で図2、4、および5を参照して説明する。さらに、ホスト108の追加の例示的なデバイス実装を、下で図8を参照して説明する。   Each host 108 may correspond to one server and / or one device, multiple servers and / or multiple devices, part of a server and / or part of a device, some combination thereof, and the like. Certain exemplary implementations of the host 108 are further described below with reference to FIGS. 2, 4, and 5. In addition, an additional exemplary device implementation of the host 108 is described below with reference to FIG.

ネットワークゲートウェイ106は、1つまたは複数のアドレス「NGN」でネットワーク104を介して到達可能またはロケータブル(locatable)であり、ネットワークゲートウェイ106は、少なくとも1つのアドレス「NGI]を有するイントラネット110上のプレゼンスも有する。ネットワークゲートウェイ106のアドレスNGNに向けられたクライアント102(または他のノード)からの通信は、ネットワークゲートウェイ106で受け取られ、その後、ホスト108(1)、108(2)、…、108(n)のうちの1つのホスト108にルーティングされる。ネットワークゲートウェイ106は、1つまたは複数のネットワークゲートウェイ要素(図1には別々に図示せず)からなる。各ネットワークゲートウェイ要素106に、ルータ、プロキシ、ロードバランサ、ファイヤウォールデバイスのすべてまたは一部、これらのある組合せなどを含めることができる。ネットワークゲートウェイ要素106の例示的な固有でないデバイス実装を、下でも図8を参照して説明する。   The network gateway 106 is reachable or locable via the network 104 at one or more addresses “NGN”, and the network gateway 106 also has a presence on the intranet 110 having at least one address “NGI”. Communication from the client 102 (or other node) destined for the address NGN of the network gateway 106 is received at the network gateway 106 and then the hosts 108 (1), 108 (2), ..., 108 (n The network gateway 106 consists of one or more network gateway elements (not separately shown in FIG. 1). The gateway element 106 can include routers, proxies, load balancers, all or part of firewall devices, some combination thereof, etc. An exemplary non-specific device implementation of the network gateway element 106 is also illustrated below. Explanation will be made with reference to FIG.

一般に、接続114は、クライアント102とホスト108の間で、ネットワーク104上でネットワークゲートウェイ106を介して構成される。通常、クライアント102が接続114を開始するが、その代わりに、ホスト108がイニシエータになることができる。具体的には、この例で、クライアント102(1)が、ホスト108(2)との接続114(1)を開始する。しかし、クライアント102(1)は、ホスト108(2)のアドレスH2に関与しない。そうではなく、クライアント102(1)は、ネットワークゲートウェイ106のアドレスNGNにこの接続(たとえば、接続を要求するパケット)を向ける。   In general, the connection 114 is configured on the network 104 via the network gateway 106 between the client 102 and the host 108. Typically, the client 102 initiates the connection 114, but instead the host 108 can be the initiator. Specifically, in this example, the client 102 (1) starts the connection 114 (1) with the host 108 (2). However, the client 102 (1) is not involved in the address H2 of the host 108 (2). Rather, client 102 (1) directs this connection (eg, a packet requesting a connection) to address NGN of network gateway 106.

次に、ネットワークゲートウェイ106が、あるデフォルトポリシ(たとえば、ルール)に従って、接続114(1)に対してルーティング動作116(1)を実行する。その結果、ネットワークゲートウェイ106は、この例について、イントラネット110を介してホスト108(2)に接続114(1)をルーティングする。一般に、ネットワークゲートウェイ106は、接続114のパケットをクライアント102(1)からそのままネットワークアドレスH2のホスト108(2)に単純に送信することができない。というのは、このパケットが、ネットワークゲートウェイ106のアドレスNGNに宛先アドレスを指定されているからである。その代わりに、ネットワークゲートウェイ106は、通常、ネットワークアドレス変換(NAT)、half−NAT、トンネリング、これらのある組合せなどの例示的なオプションのうちの1つまたは複数を使用して、イントラネット110を介してパケットをルーティングする。   The network gateway 106 then performs a routing operation 116 (1) for the connection 114 (1) according to some default policy (eg, rule). As a result, the network gateway 106 routes the connection 114 (1) to the host 108 (2) via the intranet 110 for this example. In general, the network gateway 106 cannot simply transmit the packet of the connection 114 from the client 102 (1) as it is to the host 108 (2) of the network address H2. This is because the destination address of this packet is specified for the address NGN of the network gateway 106. Instead, the network gateway 106 typically passes over the intranet 110 using one or more of the exemplary options such as network address translation (NAT), half-NAT, tunneling, some combination thereof, and the like. Route the packet.

伝送制御プロトコル/インターネットプロトコル(TCP/IP)環境では、NATが、(i)ソース(すなわち、クライアント102(1))IPアドレスC1およびポート番号をネットワークゲートウェイ106のIPアドレスNGIおよびNATが生成したポート番号で上書きし、(ii)宛先IPアドレスNGNをホスト108(2)のIPアドレスH2で上書きすることによって実行される。half−NATは、宛先IPアドレスNGNをホスト108(2)のIPアドレスH2で上書きし、その結果、ソースIPアドレスC1およびポート番号が保存されるようにすることによって実行される。トンネリングは、各パケットをホスト108(2)のアドレスH2にアドレッシングされた新しいIPパケット内にカプセル化し、カプセル化されたパケットをネットワークゲートウェイ106からホスト108(2)に送信することによって実行され、ホスト108(2)で、このカプセル化されたパケットをカプセル化解除することができる。   In a Transmission Control Protocol / Internet Protocol (TCP / IP) environment, the NAT has (i) the source (ie, client 102 (1)) IP address C1 and port number generated by the IP address NGI and NAT of the network gateway 106. This is executed by overwriting with the number, and (ii) overwriting the destination IP address NGN with the IP address H2 of the host 108 (2). half-NAT is performed by overwriting the destination IP address NGN with the IP address H2 of the host 108 (2) so that the source IP address C1 and port number are saved. Tunneling is performed by encapsulating each packet in a new IP packet addressed to the address H2 of the host 108 (2) and sending the encapsulated packet from the network gateway 106 to the host 108 (2). At 108 (2), the encapsulated packet can be decapsulated.

接続114(1)中に、セッションが、クライアント102(1)とホスト108(2)の間で確立される。接続114(1)の確立されたセッションについて、セッションコンテキスト112が、ホスト108(2)で作られる。類似する、似た、および/または相互のセッションコンテキスト(図示せず)が、通常はクライアント102(1)でも作られる。セッションコンテキスト112は、クライアント102(1)とホスト108(2)の間の通信を容易にする。   During connection 114 (1), a session is established between client 102 (1) and host 108 (2). For the established session of connection 114 (1), a session context 112 is created at host 108 (2). Similar, similar, and / or mutual session contexts (not shown) are typically created at the client 102 (1). Session context 112 facilitates communication between client 102 (1) and host 108 (2).

したがって、接続114(1)は、その上で多数の異なるタイプのセッションのうちの1つまたは複数を確立されている場合とそうでない場合がある。セッションの例示的なタイプに、(i)Secure Sockets Layer(SSL)セッション、(ii)Transport Layer Security(TLS)セッション、(iii)セキュアインターネットプロトコル(IPsec)セッション、(iv)ハイパーテキスト転送プロトコル(HTTP)クッキーベースセッション、(v)point−to−pointトンネリングプロトコル(PPTP)セッション、(vi)IPSec/layer−2 tunneling protocol(L2TP)セッション、(vii)独自セッション、(viii)ターミナルサーバセッション、(ix)管理者定義のセッション、および(x)その他が含まれる。異なるセッションタイプのこれらの例は、セッションの複数の層がどのように確立され、使用されるかも示す。   Accordingly, connection 114 (1) may or may not have established one or more of a number of different types of sessions thereon. Exemplary types of sessions include: (i) Secure Sockets Layer (SSL) session, (ii) Transport Layer Security (TLS) session, (iii) Secure Internet Protocol (IPsec) session, (iv) Hypertext Transfer Protocol (HTTP) ) Cookie-based session, (v) point-to-point tunneling protocol (PPTP) session, (vi) IPSec / layer-2 tunneling protocol (L2TP) session, (vii) proprietary session, (viii) terminal server session, (ix) ) Administrator-defined sessions, and (x) others. These examples of different session types also show how multiple layers of sessions are established and used.

セッションコンテキスト112の内容は、少なくとも部分的に、それがそのために作られたセッションのタイプに依存して変化する可能性がある。たとえば、特定のセッションコンテキスト112に、TCP 4タプル(たとえば、TCP接続を用いて確立されたセッション用)、セッション識別子、対応するセッションの永続状態を維持する1つまたは複数のデータベースエントリの位置、ホスト108(2)に供給されるクライアント102(1)の公開鍵、ネゴシエートされた秘密暗号鍵、他のセキュリティ関連パラメータなどのうちの1つまたは複数を含めることができる。TCP 4タプルに、ソースIPアドレス、ソースTCPポート、宛先IPアドレス、および宛先TCPポートが含まれる。たとえば、現在の標準規格の下のSSLセッションについて、セッション識別子を、32バイトまでの長さとすることができる。   The content of the session context 112 can vary, at least in part, depending on the type of session it was created for. For example, a particular session context 112 may include a TCP 4 tuple (eg, for a session established using a TCP connection), a session identifier, the location of one or more database entries that maintain the persistent state of the corresponding session, host One or more of the public key of the client 102 (1) supplied to 108 (2), the negotiated secret encryption key, other security-related parameters, etc. may be included. The TCP 4 tuple includes a source IP address, a source TCP port, a destination IP address, and a destination TCP port. For example, for an SSL session under the current standard, the session identifier can be up to 32 bytes long.

上で説明したように、現在の例では、接続114(1)を構成した後に、セッションが、クライアント102(1)とホスト108(2)の間で確立される。クライアント102(1)は、より具体的には、ホスト108(2)に常駐し、かつ/またはホスト108(2)で実行される少なくとも1つのアプリケーションとのセッションを確立する。しかし、説明を明瞭にするために、そのようなアプリケーションは、一般に、ホスト108(2)に言及する時に含めることができる。   As explained above, in the current example, after configuring connection 114 (1), a session is established between client 102 (1) and host 108 (2). Client 102 (1) more specifically establishes a session with at least one application that resides on and / or runs on host 108 (2). However, for clarity of explanation, such applications can generally be included when referring to the host 108 (2).

セッション確立フェーズは、セッションコンテキスト112を作るかもたらす。セッションコンテキスト112は、クライアント102(1)とホスト108(2)の間の通信交換のコンテキストを提供する。セッションコンテキスト112に、これらの通信交換に実際にクリティカルな、単に有益な、またはともかくも他の形で関連する情報を含めることができる。   The session establishment phase creates or provides a session context 112. Session context 112 provides a context for communication exchange between client 102 (1) and host 108 (2). Session context 112 may include information that is actually critical to these communications exchanges, simply useful, or in any other way relevant.

クライアント102(1)を論理クライアントにすることができるならば、セッションコンテキスト112は、(1)特定のデバイスおよび/またはデバイスの特定のユーザと(ii)ホスト108(2)との間の通信交換に関するものとすることができる。その結果、ユーザクライアント102(1)に関連するセッションコンテキスト112は、ユーザクライアント102(1)が異なるデバイスからホスト108にアクセスする場合であっても、そのユーザクライアント102(1)に関連付けられ続けることができる。デバイスは、クライアント102(1)のローカルレベルで、ネットワーク104レベルで、などで異なるものとすることができる。そのような異なるデバイスシナリオの例に、プロキシシナリオ(たとえば、あるインターネットサービスプロバイダ(ISP)のプロキシシナリオ)、ターミナルサーバセッションシナリオなどが含まれる。   If the client 102 (1) can be a logical client, the session context 112 can (1) communicate with a particular device and / or a particular user of the device and (ii) a host 108 (2). Can be related. As a result, the session context 112 associated with the user client 102 (1) will continue to be associated with the user client 102 (1) even when the user client 102 (1) accesses the host 108 from a different device. Can do. The devices may be different at the local level of the client 102 (1), at the network 104 level, and so on. Examples of such different device scenarios include proxy scenarios (e.g., certain Internet service provider (ISP) proxy scenarios), terminal server session scenarios, and the like.

セッションコンテキスト112は、ホスト108(2)に保管され、かつ/またはホスト108(2)からアクセス可能である。接続114(1)が、完了するか他の形で停止した時に、セッションコンテキスト112は、もう一度使用されない可能性がある。逆に、セッションコンテキスト112は、クライアント102(1)が、同一のセッション、類似するセッション、または関連するセッションなどについてホスト108とのもう1つの接続を開始することを試みる場合に、もう一度有用になる可能性がある。このもう1つの接続が、セッションコンテキスト112を保管するのと同一のホスト108(2)にルーティングされない場合に、クライアント102(1)は、新しいセッションを確立しなければならず、これは、時間がかかり、データ/処理集中的であり、かつ/またはユーザ(特に、クライアント102(1)に対応するユーザ)をいらいらさせる可能性がある。あるセッションアフィニティ(session affinity)保存機構がネットワークゲートウェイ106にない場合に、通常、第2の接続がホスト108(2)にルーティングされる、ランダムな機会より高い可能性はない。   Session context 112 is stored on host 108 (2) and / or accessible from host 108 (2). When the connection 114 (1) is completed or otherwise stopped, the session context 112 may not be used again. Conversely, session context 112 becomes useful once again when client 102 (1) attempts to initiate another connection with host 108 for the same session, a similar session, or an associated session, etc. there is a possibility. If this other connection is not routed to the same host 108 (2) that stores the session context 112, the client 102 (1) must establish a new session, which It can be data, processing intensive and / or annoying to users (especially the user corresponding to client 102 (1)). If there is no session affinity storage mechanism in the network gateway 106, there is usually no higher possibility than a random opportunity where the second connection is routed to the host 108 (2).

セッションアフィニティ保存機構またはセッションアフィニティ保存機能性は、接続と共に継続される既存セッションのセッションコンテキスト112に関連するホスト108に接続(パケットレベル要求および論理レベル要求を含む)をルーティングするように適合されている。たとえば、セッションアフィニティ保存機能性は、クライアント102(1)の接続114(2)を、セッションコンテキスト112が関連するホスト108(2)にルーティングすることを可能にすることを試みる。そのようなセッションアフィニティ保存機構は、1つまたは複数の例示的な戦略に従って実装することができる。一般にネットワークゲートウェイ106に適用可能ではあるが、これらの例示的な戦略を、負荷分散実装の展望から説明する。   The session affinity storage mechanism or session affinity storage functionality is adapted to route connections (including packet level requests and logical level requests) to the host 108 associated with the session context 112 of the existing session that is continued with the connection. . For example, the session affinity storage functionality attempts to allow the connection 114 (2) of the client 102 (1) to be routed to the host 108 (2) with which the session context 112 is associated. Such a session affinity storage mechanism can be implemented according to one or more exemplary strategies. Although generally applicable to the network gateway 106, these exemplary strategies are described from the perspective of a load balancing implementation.

第1の戦略は、「スティッキィ(sticky)」モードを用いる負荷分散に関し、このモードでは、所与の、たとえばIPアドレスから来る、すべてではないにしてもほとんどの要求が、単一のホスト108にルーティングされる。しかし、この戦略は、所与のIPアドレスが、単一のクライアント102を表すという仮定に頼るが、この仮定は、プロキシに関して明らかに真でない。プロキシは、ロードバランサには単一のIPアドレスに見えるが、実際には、多数の、潜在的に数千個のクライアント102の要求を表す。その結果、これらの要求のすべてを単一のホスト108にルーティングすることは、デバイスの間の非常に不均一な負荷分散につながる可能性がある。通常、プロキシから着信要求を受け取るデバイスは、結果として、はるかに多数のクライアント102を割り当てられる。さらに、変化するIPアドレスを有するクライアント102からの要求も、この第1の戦略を使用すると不正にルーティングされる。IPアドレスは、モバイル環境で、アドレスがIPアドレスプールから一時的に割り当てられる時に、などに変化する可能性がある。   The first strategy relates to load balancing using a “sticky” mode, in which most, if not all requests coming from a given, eg, IP address, go to a single host 108. Routed. However, although this strategy relies on the assumption that a given IP address represents a single client 102, this assumption is clearly not true for proxies. A proxy appears to a load balancer as a single IP address, but actually represents a large number of potentially thousands of client 102 requests. As a result, routing all of these requests to a single host 108 can lead to very uneven load distribution among the devices. Typically, a device that receives an incoming request from a proxy is assigned a much larger number of clients 102 as a result. Furthermore, requests from clients 102 with changing IP addresses are also routed incorrectly using this first strategy. An IP address may change in a mobile environment, such as when an address is temporarily assigned from an IP address pool.

第2の戦略に、セッション識別子を使用する負荷分散ヒューリスティックを使用することが含まれる。既存セッションを継続する要求は、特定の個々のセッション識別子を使用して、そのセッションを前に確立した(たとえば、ネゴシエートした)ホスト108にルーティングされる。動作時に、特定のセッションが特定のクライアント102と特定のホスト108の間で確立された後に、その特定のホスト108をその特定のセッションにリンクするマッピングが、保管され、そのセッションは、特定のセッション識別子によって識別される。その特定のクライアント102からの特定のセッション識別子を含む要求が受け取られた時に、その要求を、このマッピングを使用してその特定のホスト108にルーティングすることができる。したがって、この第2の戦略は、セッションアフィニティの保存を可能にする。   The second strategy involves using a load balancing heuristic that uses session identifiers. A request to continue an existing session is routed to the host 108 that previously established (eg, negotiated) that session using the particular individual session identifier. In operation, after a particular session is established between a particular client 102 and a particular host 108, a mapping that links that particular host 108 to that particular session is stored and the session is stored in a particular session. Identified by an identifier. When a request is received that includes a particular session identifier from that particular client 102, the request can be routed to that particular host 108 using this mapping. This second strategy thus allows for the preservation of session affinity.

しかし、第2の戦略は、効率の展望から複数の相対的な欠点を伴う。第1に、ロードバランサは、セッション識別子とホスト108の間のこれらのマッピングのテーブルを維持する。このテーブルのサイズは、既存のセッションごとに別々のエントリがあるので、巨大になる可能性がある。たとえば、各ホスト108が、10000個のセッションをキャッシングし、500個のホスト108がある場合に、このテーブルは、最適の効率でこれらのセッションに関する要求をルーティングするために、500万個のエントリを使用する。第2に、新たに確立されるセッションごとに、ロードバランサは、セッション識別子が検出され、エントリをテーブルに追加できるようになるまで、セッション確立フェーズを監視する。第3に、セッションを再開する要求が受け取られるたびに、ロードバランサは、ルーティングを実行するためにこの(非常に大きい可能性が高い)テーブルに問い合わせる。   However, the second strategy has several relative drawbacks from an efficiency perspective. First, the load balancer maintains a table of these mappings between session identifiers and hosts 108. The size of this table can be huge because there is a separate entry for each existing session. For example, if each host 108 caches 10000 sessions and there are 500 hosts 108, this table will store 5 million entries to route requests for these sessions with optimal efficiency. use. Second, for each newly established session, the load balancer monitors the session establishment phase until a session identifier is detected and an entry can be added to the table. Third, each time a request to resume a session is received, the load balancer queries this (very likely) table to perform routing.

第4に、セッションが、寿命を有し、混雑に起因してホスト108のキャッシュから積極的にエージアウトすなわち追い出されるので、ロードバランサテーブルは、あるエージング機構も実装して、個々のホスト108がそれ自体のキャッシュに関して行っていることまたは行っていると期待されることをミラーリングする。ホスト108およびロードバランサのエージング機構が同期化されていない場合に、ロードバランサは、まだホスト108で有効なセッションに関する状態情報を早すぎる時に削除する可能性があり、あるいはその逆に、どのホスト108にももはや存在しないセッションの状態情報を保持する可能性がある。   Fourth, because the session has a lifetime and is actively aged out of the host 108 cache due to congestion, the load balancer table also implements some aging mechanism so that individual hosts 108 Mirror what you are doing or expected to do with your own cache. If the aging mechanism of the host 108 and the load balancer is not synchronized, the load balancer may delete state information about sessions that are still valid on the host 108 too early, or vice versa. May hold session state information that no longer exists.

セッションアフィニティ保存機能性に関する第3の戦略は、新たに確立されるセッションのセッション識別子の選択的な作成/判定を介して、個々のセッションごとにエントリを必要とするテーブルなしで、ネットワークゲートウェイ106でのセッションアフィニティ保存を達成することができる。セッション識別子を判定する時に、ホスト108は、その中にホスト識別子を埋め込む。   A third strategy for session affinity storage functionality is through the selective creation / determination of session identifiers for newly established sessions, without a table requiring an entry for each individual session, at the network gateway 106. Session affinity preservation can be achieved. When determining the session identifier, the host 108 embeds the host identifier therein.

ネットワークゲートウェイ106は、セッション識別子からホスト識別子を抽出し、そのホスト識別子に応答して、セッション識別子が割り当てられたセッションのトラフィックをルーティングする。したがって、第3の戦略は、有界の個数のエントリ(たとえば、ホスト108の個数と等しい個数のエントリ)を有するテーブルを使用してセッション継続要求をルーティングし、かつ/またはそのようなセッションごとのエントリを有するテーブルを使用せずにセッション継続要求をルーティングする、相対的にステートレスな手法を使用することができる。この第3の戦略の諸態様を、本明細書でさらに説明する。   The network gateway 106 extracts the host identifier from the session identifier, and routes the traffic of the session to which the session identifier is assigned in response to the host identifier. Thus, a third strategy uses a table with a bounded number of entries (eg, a number of entries equal to the number of hosts 108) to route session continuation requests and / or for each such session. A relatively stateless approach can be used to route session continuation requests without using a table with entries. Aspects of this third strategy are further described herein.

通信環境100の例で、セッション確立フェーズが接続114(1)の一部として完了した後に、セッションコンテキスト112が、ホスト108(2)で作られる。その後、接続114(1)が終了する。接続114(2)に関する要求がネットワークゲートウェイ106に到着した時に、それに対してルーティング動作116(2)が実行される。この接続114(2)は、それに割り当てられたセッション識別子によって、セッションコンテキスト112に対応する前に確立されたセッションの継続に関するものであることが示される。このセッション識別子には、第3の戦略に従ってホスト108(2)の識別子が含まれる。セッション継続要求のセッション識別子から抽出されたホスト108(2)のホスト識別子を使用することによって、接続114(2)が、ルーティング動作116(2)でホスト108(2)にルーティングされ、このホスト108(2)は、セッションコンテキスト112に関連する。   In the example communication environment 100, a session context 112 is created at the host 108 (2) after the session establishment phase is completed as part of the connection 114 (1). Thereafter, connection 114 (1) is terminated. When a request for connection 114 (2) arrives at network gateway 106, a routing operation 116 (2) is performed thereon. This connection 114 (2) is indicated by the session identifier assigned to it to relate to the continuation of the previously established session corresponding to the session context 112. This session identifier includes the identifier of host 108 (2) according to the third strategy. By using the host identifier of host 108 (2) extracted from the session identifier of the session continuation request, connection 114 (2) is routed to host 108 (2) in routing operation 116 (2), and this host 108 (2) relates to the session context 112.

アイテム114(1)および114(2)は、単一の接続内で発生するセッション関連メッセージ(たとえば要求)ならびに複数の接続中に発生するセッション関連メッセージも表すことができる。さらに、クライアント102とホスト108の間のある通信を、本明細書でメッセージとして説明する。メッセージは、通常、1つまたは複数のパケットとして、クライアント102からホスト108へおよびその逆に伝搬される。クライアントメッセージは、クライアント102から送られ、ホストメッセージは、ホスト108から送られる。セッションメッセージとは、セッションに関するメッセージ(たとえば、セッションの確立、継続/再開、破壊などに関するメッセージ)である。例示的なセッションメッセージを、さらに、下で図3を参照して説明する。   Items 114 (1) and 114 (2) can also represent session related messages (eg, requests) that occur within a single connection as well as session related messages that occur during multiple connections. Further, certain communications between the client 102 and the host 108 are described herein as messages. Messages are typically propagated from the client 102 to the host 108 and vice versa as one or more packets. Client messages are sent from the client 102, and host messages are sent from the host 108. A session message is a message related to a session (for example, a message related to session establishment, continuation / resumption, destruction, etc.). An exemplary session message is further described below with reference to FIG.

セッション開始メッセージは、セッションの開始に関する、クライアント102および/またはホスト108によって送られるメッセージである。セッション継続メッセージは、既存セッションの継続に関する、クライアント102および/またはホスト108によって送られるメッセージである。セッション開始メッセージおよびセッション継続メッセージは、明らかに異なるフォーマット、類似するフォーマット、同一のフォーマットなどを有することができる。しかし、説明される実装では、セッション開始メッセージおよびセッション継続メッセージが、少なくとも類似するフォーマットを有し、このフォーマットでは、セッション識別子の存在が、あるクライアントセッションメッセージがクライアントセッション継続メッセージであることを示し、セッション識別子の不在が、あるクライアントセッションメッセージがクライアントセッション開始メッセージであることを示す。   A session start message is a message sent by the client 102 and / or the host 108 regarding the start of a session. A session continuation message is a message sent by the client 102 and / or the host 108 regarding the continuation of an existing session. Session initiation messages and session continuation messages can have clearly different formats, similar formats, identical formats, and so on. However, in the described implementation, the session initiation message and the session continuation message have at least a similar format, in which the presence of a session identifier indicates that a client session message is a client session continuation message; The absence of a session identifier indicates that a client session message is a client session start message.

本明細書での説明は、それに制限されないが、下で説明する実装は、時々、ネットワークゲートウェイ106の負荷分散実装を協調するかこれに焦点を合わせたものである。また、他のプロトコルおよびプロトコルの組合せが、適用可能であり、代わりに使用することができるが、下の説明では、主に、説明を明瞭にするためにTCP/IP接続およびSSL/TLSセッションを使用する。   Although the description herein is not limited thereto, the implementation described below sometimes coordinates or focuses on the load balancing implementation of the network gateway 106. Also, other protocols and combinations of protocols are applicable and can be used instead, but in the description below, mainly TCP / IP connections and SSL / TLS sessions are used for clarity of explanation. use.

制限ではなく例として、クライアントセッション開始メッセージまたはクライアントセッション継続メッセージを、ある仕様(たとえば、「the TLS Protocol Version 1.0 Spec (January 1999)」非特許文献1)に従う「Client Hello」メッセージとすることができる。Client Helloメッセージにセッション識別子が含まれる場合に、このメッセージを、クライアントセッション継続メッセージとすることができ、そうでない場合に、このメッセージを、クライアントセッション開始メッセージとすることができる。同様に、ホストセッション開始メッセージまたはホストセッション継続メッセージを、ある仕様(たとえば、非特許文献1参照)に従う「Server Hello」メッセージとすることができる。Server Helloメッセージに、そのServer Helloメッセージが応答しているClient Helloメッセージ内でクライアントによって供給されたセッション識別子が含まれる場合に、このメッセージを、ホストセッション継続メッセージとすることができる。Server Helloメッセージが、セッション識別子を含まないClient Helloメッセージに応答するものである場合に、このメッセージを、ホストセッション開始メッセージとすることができる。そのようなホストセッション開始メッセージのセッション識別子の作成および定式化を、下でさらに説明する。   By way of example and not limitation, a client session start message or a client session continuation message may be a “Client Hello” message that conforms to a certain specification (eg, “the TLS Protocol Version 1.0 Spec (January 1999)”). . If the Client Hello message includes a session identifier, this message can be a client session continuation message; otherwise, this message can be a client session start message. Similarly, the host session start message or the host session continuation message may be a “Server Hello” message according to a certain specification (for example, see Non-Patent Document 1). If the Server Hello message includes the session identifier supplied by the client in the Client Hello message to which the Server Hello message is responding, this message can be a host session continuation message. If the Server Hello message is in response to a Client Hello message that does not include a session identifier, this message can be a host session start message. The creation and formulation of a session identifier for such a host session initiation message is further described below.

図2に、セッションメッセージと共にルーティングヒントを供給し、使用する例示的な手法を示す。セッションメッセージ202、204、および206は、ネットワーク104を介し、ネットワークゲートウェイ要素106を介して、クライアント102からホスト108へ、またはその逆に送られる。ネットワークゲートウェイ要素106は、ネットワークゲートウェイ106(図1の)の要素を表す。セッションメッセージ202、204、および206のそれぞれが、ネットワークゲートウェイ要素106によってルーティングされるものとして図示されているが、各個々のセッションメッセージを、その代わりに、ネットワークゲートウェイ106の異なる個々の要素によってルーティングすることができる。   FIG. 2 illustrates an exemplary approach for providing and using routing hints with session messages. Session messages 202, 204, and 206 are sent through the network 104, through the network gateway element 106, from the client 102 to the host 108, and vice versa. Network gateway element 106 represents an element of network gateway 106 (of FIG. 1). Although each of the session messages 202, 204, and 206 is illustrated as being routed by the network gateway element 106, each individual session message is instead routed by a different individual element of the network gateway 106. be able to.

図からわかるように、ホスト108に、クライアント102に送られるメッセージおよびクライアント102から受け取られているメッセージを処理するメッセージハンドラ208が含まれる。メッセージハンドラ208に、着信メッセージハンドラ部分208ICおよび発信メッセージハンドラ部分208OGが含まれる。ホスト108は、ホスト識別子214に関連し、ホスト識別子214は、ホスト108に保管されるか、他の形でホスト108からアクセス可能である。ホスト識別子214の例を、下で図3を参照してさらに説明する。ホスト108に、ホスト識別子214を使用してセッション識別子(たとえば、セッション識別子210)を作成するセッション識別子クリエータ212も含まれる。   As can be seen, the host 108 includes a message handler 208 that processes messages sent to and received from the client 102. Message handler 208 includes an incoming message handler portion 208IC and an outgoing message handler portion 208OG. The host 108 is associated with the host identifier 214, which is stored on the host 108 or otherwise accessible from the host 108. An example of the host identifier 214 is further described below with reference to FIG. The host 108 also includes a session identifier creator 212 that uses the host identifier 214 to create a session identifier (eg, session identifier 210).

説明される実装では、クライアント102が、アドレス「C」を有し、ネットワークゲートウェイ要素106が、アドレスNGNおよびNGIを有し、アドレスCおよびNGNは、ネットワーク104上に位置する。ホスト108は、アドレス「H」を有し、これは、アドレスNGIと共にイントラネット110上に位置する。クライアント102からのセッションメッセージは、ネットワーク104を介してネットワークゲートウェイ要素106で受け取られる。次に、ネットワークゲートウェイ要素106は、これらのセッションメッセージを、イントラネット110を介して、ルーティング動作216を用いてホスト108にルーティングする。逆のパスでは、ホスト108からのセッションメッセージが、イントラネット110を介してネットワークゲートウェイ要素106に送られ/送信され、ネットワークゲートウェイ要素106が、このメッセージをルーティング動作216を用いてクライアント102にルーティングする。   In the described implementation, client 102 has address “C”, network gateway element 106 has addresses NGN and NGI, and addresses C and NGN are located on network 104. Host 108 has an address “H”, which is located on intranet 110 along with address NGI. Session messages from the client 102 are received at the network gateway element 106 via the network 104. The network gateway element 106 then routes these session messages to the host 108 using the routing operation 216 via the intranet 110. In the reverse path, a session message from the host 108 is sent / sent via the intranet 110 to the network gateway element 106, which routes the message to the client 102 using a routing operation 216.

具体的に言うと、クライアント102は、クライアントセッション開始メッセージ(SIM)202を、ネットワーク104を介してネットワークゲートウェイ要素106に送る。クライアントセッション開始メッセージ202には、新しいセッションに関する要求が含まれる限り、セッション識別子が含まれない。クライアントセッション開始メッセージ202は、既存セッションに関するものでないので、ネットワークゲートウェイ要素106は、ルーティング動作216(A)で一般的なポリシを使用して、クライアントセッション開始メッセージ202をホスト108にルーティングする。たとえば、ネットワークゲートウェイ要素106は、現在のおよび/または関連する負荷分散ポリシ(たとえば、着信新規セッション要求のラウンドロビン分配)に従って、クライアントセッション開始メッセージ202をルーティングすることができる。   Specifically, the client 102 sends a client session initiation message (SIM) 202 to the network gateway element 106 over the network 104. The client session start message 202 does not include a session identifier as long as a request for a new session is included. Since the client session initiation message 202 is not related to an existing session, the network gateway element 106 routes the client session initiation message 202 to the host 108 using a general policy in the routing operation 216 (A). For example, the network gateway element 106 can route the client session initiation message 202 according to current and / or associated load balancing policies (eg, round robin distribution of incoming new session requests).

ホスト108は、イントラネット110を介して着信メッセージハンドラ部分208ICでクライアントセッション開始メッセージ202を受け取る。セッション識別子がない場合に、着信メッセージハンドラ部分208ICは、クライアントセッション開始メッセージ202を新規セッションに関するものと認識する。セッション識別子クリエータ212が、アクティブ化されて、要求された新規セッションの新しいセッション識別子を作成する。セッション識別子クリエータ212は、ホスト識別子214を確認し/取り出す。   The host 108 receives the client session start message 202 at the incoming message handler portion 208IC via the intranet 110. In the absence of a session identifier, the incoming message handler portion 208IC recognizes the client session start message 202 as relating to a new session. Session identifier creator 212 is activated to create a new session identifier for the requested new session. Session identifier creator 212 confirms / retrieves host identifier 214.

セッション識別子クリエータ212は、ホスト識別子214を使用して、セッション識別子210を作成する。たとえば、セッション識別子クリエータ212は、ホスト識別子214をセッション識別子210に挿入する。セッション識別子210に、ホスト識別子214以外の値を含めることもできる。セッション識別子210の追加の値は、1つまたは複数の技法のいずれかを使用して作成することができる。そのような技法に、ランダムに選択された値、増分するカウンタからの値、セキュリティ関連の値、ハッシュ化された値、これらのある組合せなどが含まれるが、これに制限はされない。   Session identifier creator 212 uses session identifier 214 to create session identifier 210. For example, session identifier creator 212 inserts host identifier 214 into session identifier 210. The session identifier 210 can include a value other than the host identifier 214. Additional values for session identifier 210 may be created using either one or more techniques. Such techniques include, but are not limited to, randomly selected values, values from incrementing counters, security related values, hashed values, some combination of these, and the like.

説明される実装では、セッション識別子210の第1部分(すなわち、ホスト識別子214)が、対応するセッションを現在所有しているホスト108の識別専用である。この第1部分は、所与のクラスタのホスト108にまたがって一意である(すなわち、ホスト108のどれもが、同一のクラスタ内の他のホスト108とホスト識別子214を共有しない)。この第1部分は、ホスト108が所有するIPアドレス、管理者によって割り当てられた整数などとすることができる。セッション識別子210の第2部分は、セッション識別子210の一意性(および予測不能性)を高めることができる。この第2部分について、新しいセッションごとに1回増分される(0へのロールオーバを有する)グローバルカウンタの使用の組合せならびに擬似乱数および/またはハッシュ化技法の使用の組合せなど、さまざまな技法を使用することができる。   In the described implementation, the first portion of session identifier 210 (ie, host identifier 214) is dedicated to identifying the host 108 that currently owns the corresponding session. This first part is unique across the hosts 108 of a given cluster (ie, none of the hosts 108 share a host identifier 214 with other hosts 108 in the same cluster). This first part can be an IP address owned by the host 108, an integer assigned by the administrator, or the like. The second part of the session identifier 210 can increase the uniqueness (and unpredictability) of the session identifier 210. For this second part, use various techniques such as a combination of using global counters (with rollover to 0) incremented once for each new session and using random numbers and / or hashing techniques can do.

セッション識別子クリエータ212は、セッション識別子210をメッセージハンドラ208に供給する。発信メッセージハンドラ部分208OGは、セッション識別子210を含むホストセッション開始メッセージ204を準備/定式化する。ホストセッション開始メッセージ204は、イントラネット110を介してネットワークゲートウェイ要素106に送られる。次に、ネットワークゲートウェイ要素106が、ルートバックルーティング動作216(B)を使用して、ネットワーク104を介してクライアント102にホストセッション開始メッセージ204を送る。そのように示されてはいないが、ホストセッション開始メッセージ204を、その代わりに、特にネットワークゲートウェイ要素106がセッションごとの状態情報を蓄積せずに後続クライアントメッセージをルーティングできる限り、ネットワークゲートウェイ要素106を含まないパスに沿ってルーティングすることができる。   Session identifier creator 212 provides session identifier 210 to message handler 208. The outgoing message handler portion 208 OG prepares / formulates a host session start message 204 that includes a session identifier 210. The host session start message 204 is sent to the network gateway element 106 via the intranet 110. Next, the network gateway element 106 sends a host session start message 204 to the client 102 via the network 104 using the route back routing operation 216 (B). Although not shown as such, the host session initiation message 204 is instead sent to the network gateway element 106 as long as the network gateway element 106 can route subsequent client messages without accumulating state information for each session. You can route along paths that do not include.

クライアント102は、ホストセッション開始メッセージ204からセッション識別子210を抽出し、確立されたセッションを継続するための将来の可能な使用(および確立されたセッションに関する現在の使用)のためにセッション識別子210を保存する。ある点で、確立されたセッションの実際の使用が終了する(たとえば、接続が終了する)。ホスト108との確立された既存セッションを継続するために、クライアント102は、クライアントセッション継続メッセージ(SCM)206を定式化する。クライアント102は、保存されたセッション識別子210をクライアントセッション継続メッセージ206に含める。次に、クライアントセッション継続メッセージ206が、ネットワーク104を介してクライアント102からネットワークゲートウェイ要素106に送られる。   The client 102 extracts the session identifier 210 from the host session initiation message 204 and saves the session identifier 210 for possible future use (and current use for the established session) to continue the established session. To do. At some point, the actual use of the established session is terminated (eg, the connection is terminated). In order to continue an established existing session with the host 108, the client 102 formulates a client session continuation message (SCM) 206. The client 102 includes the stored session identifier 210 in the client session continuation message 206. A client session continuation message 206 is then sent from the client 102 to the network gateway element 106 over the network 104.

ネットワークゲートウェイ要素106は、クライアントセッション継続メッセージ206を受け取った時に、クライアント102が、含まれるセッション識別子210によって示される既存セッションの継続を試みていることを検出する。ルーティング動作216(C)で、ネットワークゲートウェイ要素106は、セッション識別子210を使用してクライアントセッション継続メッセージ206をルーティングする。具体的に言うと、ネットワークゲートウェイ要素106は、セッション識別子210の一部であり、これから抽出されたホスト識別子214を使用して、クライアントセッション継続メッセージ206をルーティングする。   When the network gateway element 106 receives the client session continuation message 206, it detects that the client 102 is attempting to continue the existing session indicated by the included session identifier 210. At routing operation 216 (C), network gateway element 106 routes client session continuation message 206 using session identifier 210. Specifically, the network gateway element 106 is part of the session identifier 210 and uses the host identifier 214 extracted therefrom to route the client session continuation message 206.

ホスト識別子214は、それに関連するホスト108を識別する。したがって、ネットワークゲートウェイ要素106は、ホスト識別子214によって示されるホスト108の識別を使用して、ルーティング動作216(C)でクライアントセッション継続メッセージ206をルーティングする。したがって、クライアントセッション継続メッセージ206は、イントラネット110を介してネットワークゲートウェイ要素106からホスト108に送られる。ホスト108で、着信メッセージハンドラ部分208ICが、クライアントセッション継続メッセージ206を受け取り、保管されたセッションコンテキスト(たとえば、図1に示されたセッションコンテキスト112)を使用して、前に確立されたセッションの継続を開始することができる。   Host identifier 214 identifies the host 108 associated with it. Accordingly, the network gateway element 106 routes the client session continuation message 206 in a routing operation 216 (C) using the identity of the host 108 indicated by the host identifier 214. Accordingly, the client session continuation message 206 is sent from the network gateway element 106 to the host 108 via the intranet 110. At host 108, incoming message handler portion 208IC receives client session continuation message 206 and uses the stored session context (eg, session context 112 shown in FIG. 1) to continue the previously established session. Can start.

ホスト識別子214は、それに関連するホスト108を複数の形で識別することができる。たとえば、ホスト識別子214に、ホスト108の(イントラネット)ネットワークアドレスHを含めることができる。この場合に、ネットワークゲートウェイ要素106は、セッション関連テーブルまたはホスト識別子テーブルを使用せずに、クライアントセッション継続メッセージ206をホスト108にルーティングすることができる。言い換えると、クライアントセッション継続メッセージ206に関する、イントラネット110に置かれる1つまたは複数のパケットの宛先アドレスとして、ホスト識別子214または少なくともその一部を使用することによって、クライアントセッション継続メッセージ206をホスト108に転送することができる。   The host identifier 214 can identify the host 108 associated therewith in a number of ways. For example, the host identifier 214 can include the (intranet) network address H of the host 108. In this case, the network gateway element 106 can route the client session continuation message 206 to the host 108 without using the session association table or the host identifier table. In other words, the client session continuation message 206 is forwarded to the host 108 by using the host identifier 214 or at least a portion thereof as the destination address of one or more packets placed on the intranet 110 with respect to the client session continuation message 206. can do.

その代わりに、ホスト識別子214を、ホスト108のアドレスHにマッピングすることができる。このマッピングの形は、テーブル(または計算)を伴うが、このテーブルのエントリの個数「n」は、サーバクラスタ内、イントラネット110上、ウェブファーム内などのホスト108の個数と同一にすることができる。したがって、このテーブルは、有界の個数のエントリを有し、セッションごとの状態情報を含まない。上で使用した例を参照すると、各ホスト108が10000個のセッションをキャッシングし、500個のホスト108がある場合に、このテーブルは、これらのセッションの要求を効率的にルーティングするために、500個のエントリ(500万個ではなく)を使用することができる。   Instead, the host identifier 214 can be mapped to the address H of the host 108. This form of mapping involves a table (or calculation), but the number of entries “n” in this table can be the same as the number of hosts 108 in the server cluster, on the intranet 110, in a web farm, etc. . Therefore, this table has a bounded number of entries and does not include state information for each session. Referring to the example used above, if each host 108 caches 10000 sessions and there are 500 hosts 108, this table is used to efficiently route requests for these sessions. Entries (rather than 5 million) can be used.

下の表1は、ホスト108のアドレスによってホスト識別子214をホスト108にリンクする、例示的なリンキングデータ構造である。   Table 1 below is an exemplary linking data structure that links host identifier 214 to host 108 by host 108 address.

Figure 0004828619
Figure 0004828619

動作中に、ネットワークゲートウェイ要素106は、クライアント102から受け取られた時に、クライアントセッション継続メッセージ206のセッション識別子210からホスト識別子214(#)を抽出する。次に、ネットワークゲートウェイ要素106は、ホスト識別子214(#)を使用することによって表1のリンキングデータ構造などのリンキングデータ構造にアクセスして、それにリンクされたホストアドレスH#を確認する。このホストアドレスH#は、イントラネット110上のホスト108(#)のアドレスに対応し、クライアントセッション継続メッセージ206をホスト108(#)にルーティングするための宛先アドレスとして使用される。例示的なホスト識別子対ネットワークアドレスリンキングテーブルを、さらに、下で図6Aおよび6Bを参照して説明する。   In operation, the network gateway element 106 extracts the host identifier 214 (#) from the session identifier 210 of the client session continuation message 206 when received from the client 102. The network gateway element 106 then accesses a linking data structure, such as the linking data structure of Table 1, by using the host identifier 214 (#) and identifies the host address H # linked thereto. This host address H # corresponds to the address of the host 108 (#) on the intranet 110 and is used as a destination address for routing the client session continuation message 206 to the host 108 (#). An exemplary host identifier to network address linking table is further described below with reference to FIGS. 6A and 6B.

図3に、ルーティングヒントを含めることができる例示的なセッションメッセージ302を示す。セッションメッセージ302は、1つまたは複数のセッションに関連するメッセージである。図からわかるように、セッションメッセージ302に、複数のフィールドが含まれる。この複数のフィールドに、セッション識別子210と、他のフィールド304によって表される1つまたは複数の他のフィールドが含まれる。   FIG. 3 illustrates an exemplary session message 302 that can include a routing hint. Session message 302 is a message associated with one or more sessions. As can be seen, the session message 302 includes a plurality of fields. The plurality of fields includes a session identifier 210 and one or more other fields represented by other fields 304.

セッション識別子210に、少なくとも1つのホスト識別子214が含まれる。ホスト識別子214に、デバイス識別子306および任意選択としてアプリケーション識別子308が含まれる。デバイス識別子306に、ネットワークアドレス310またはキー312(A)を含めることができる。代替案では、ホスト識別子214にキー312(B)を含めることができる。   The session identifier 210 includes at least one host identifier 214. The host identifier 214 includes a device identifier 306 and optionally an application identifier 308. The device identifier 306 can include the network address 310 or the key 312 (A). Alternatively, the host identifier 214 can include the key 312 (B).

説明される実装では、セッションメッセージ302の1つまたは複数のフォーマットが、SSL/TLSなど、ネットワークまたは通信の標準規格またはプロトコルによって定義される。セッション識別子210は、特に適用可能な標準規格またはプロトコルによって定義されるように、セッションメッセージ302内のどこにでも置くことができる。他のフィールド304に、ソースアドレスおよび/または宛先アドレス、一般的なヘッダ情報、セキュリティタイプ情報、他のセッション関連情報、データ、これらのある組合せなどを含めることができる。たとえば、セッションメッセージ302を、TLS Protocol Version 1.0標準規格によって定義されたClient HelloメッセージまたはServer Helloメッセージとすることができ、セッション識別子210が、いずれかのTLS Helloメッセージの「SessionID」フィールドに対応することができる。セキュリティタイプ情報を含むフィールド304の例が、セッションメッセージ302を定式化しているセッション参加者(たとえば、クライアントまたはホスト)によってどの暗号オプションがサポートされるかを示す暗号フィールドである。   In the described implementation, one or more formats of the session message 302 are defined by a network or communication standard or protocol, such as SSL / TLS. Session identifier 210 can be placed anywhere within session message 302 as defined by an applicable standard or protocol. Other fields 304 may include source and / or destination addresses, general header information, security type information, other session related information, data, some combination thereof, and the like. For example, the session message 302 can be a Client Hello message or a Server Hello message defined by the TLS Protocol Version 1.0 standard, and the session identifier 210 corresponds to the “SessionID” field of any TLS Hello message. can do. An example of a field 304 that includes security type information is a cryptographic field that indicates which cryptographic options are supported by the session participant (eg, client or host) formulating the session message 302.

セッション識別子210に、ホスト識別子214および任意選択として一緒にセッション識別子を形成する他の値が含まれる。このセッション識別子は、セッションメッセージ302のセッション識別子210フィールドに投入される。ホスト識別子214は、セッション識別子210フィールドで分割され、散乱され、かつ/または散布されることを含めて、セッション識別子210用のフィールド内のどこにでも置くことができる。   Session identifier 210 includes host identifier 214 and optionally other values that together form a session identifier. This session identifier is entered in the session identifier 210 field of the session message 302. The host identifier 214 can be placed anywhere in the field for the session identifier 210, including being split, scattered and / or scattered in the session identifier 210 field.

説明される実装では、抽出を簡単にするために、セッション識別子210の、ホスト識別子214に対応するサブフィールドが、バイトの連続するシーケンスとして実現される。このバイトの連続するシーケンスは、セッション識別子210の最上位バイトから固定オフセットの場所に現れる。しかし、固定オフセットを、その代わりに最下位バイトからとすることができる。   In the described implementation, the subfield of session identifier 210 corresponding to host identifier 214 is implemented as a continuous sequence of bytes to simplify extraction. This consecutive sequence of bytes appears at a fixed offset from the most significant byte of session identifier 210. However, the fixed offset can instead be from the least significant byte.

追加の柔軟性のために、ホスト識別子214を、たとえばSSL/TLSコンポーネントによって選択されるのではなく、外部から構成可能にすることができる。たとえば、ホスト識別子214を、レジストリキーからの値として読み取ることによって、外部から構成することができる。上で注記したように、管理者は、レジストリキー値を設定することによってまたはある他の機構を介するなど、ホスト識別子214を決定することができる。   For additional flexibility, the host identifier 214 can be made configurable externally rather than being selected by, for example, an SSL / TLS component. For example, the host identifier 214 can be configured externally by reading it as a value from a registry key. As noted above, the administrator can determine the host identifier 214, such as by setting a registry key value or via some other mechanism.

ホスト識別子214を、その代わりに、セッション識別子210のフィールドと異なるフィールドに埋め込むことができる。たとえば、クライアント102に送られ、そのクライアント102が既存セッションの再開を要求している時に無変更で返される特定のフィールドを使用することができる。この代替案は、メッセージフォーマットおよび基礎になるプロトコルが、所望のセッションコンテキスト112を有するホスト108がこの特定のフィールドの値を作成/選択していることを許可するか要求する場合に、特に適用可能である。この代替案について、ネットワークゲートウェイ要素106は、この特定のフィールドの内容の少なくとも一部を使用して、ルーティング動作216を実行する。   The host identifier 214 can instead be embedded in a field that is different from the field of the session identifier 210. For example, certain fields that are sent to the client 102 and returned unchanged when the client 102 requests to resume an existing session can be used. This alternative is particularly applicable when the message format and the underlying protocol require or allow the host 108 with the desired session context 112 to create / select the value of this particular field. It is. For this alternative, the network gateway element 106 performs a routing operation 216 using at least a portion of the contents of this particular field.

ホスト識別子214に、デバイス識別子306が含まれ、アプリケーション識別子308も含めることができる。デバイス識別子306は、ホスト識別子214がホストするホスト108の/のためのデバイスに対応する。図からわかるように、デバイス識別子306に、ホスト108のデバイスを識別するネットワークアドレス310またはキー312(A)が含まれる。   The host identifier 214 includes a device identifier 306 and can also include an application identifier 308. Device identifier 306 corresponds to the device for / for host 108 hosted by host identifier 214. As can be seen, the device identifier 306 includes a network address 310 or key 312 (A) that identifies the device of the host 108.

ネットワークアドレス310は、ホスト108のデバイスのイントラネット110上のネットワークアドレスである。したがって、デバイス識別子306にネットワークアドレス310が含まれる場合に、ネットワークゲートウェイ要素106は、ホスト108に転送される1つまたは複数のパケットの宛先フィールドにデバイス識別子306を挿入することができる。   The network address 310 is a network address on the intranet 110 of the device of the host 108. Thus, when the device identifier 306 includes the network address 310, the network gateway element 106 can insert the device identifier 306 in the destination field of one or more packets that are forwarded to the host 108.

キー312(A)は、ホスト108のデバイスのイントラネット110上のネットワークアドレスにマッピングされる値である。このマッピングは、テーブル内でネットワークアドレスをルックアップすること、計算を実行すること(たとえば、式に従う、アルゴリズムを実装するなど)などによって実現することができる。たとえば、キー312(A)を、上で表1を参照して説明したものなどのデータ構造でホストアドレスHにリンクすることができる。キー312(A)がネットワークアドレス310にリンクされる例示的なテーブルを、さらに、下で図6Aを参照して説明する。   The key 312 (A) is a value mapped to the network address on the intranet 110 of the device of the host 108. This mapping can be achieved by looking up a network address in a table, performing a calculation (eg, following an equation, implementing an algorithm, etc.), and the like. For example, the key 312 (A) can be linked to the host address H with a data structure such as that described above with reference to Table 1. An exemplary table in which the key 312 (A) is linked to the network address 310 is further described below with reference to FIG. 6A.

ホスト識別子214にデバイス識別子306およびアプリケーション識別子308が含まれる場合に、ホスト識別子214に、アプリケーションエンドポイントが含まれる。アプリケーション識別子308は、デバイス識別子306によって識別されるホストデバイス上の特定のアプリケーションを識別する。したがって、デバイス識別子306およびアプリケーション識別子308を含むホスト識別子214は、単一のホスト108上にあり、かつ/または複数のホスト108にまたがって複製された複数のアプリケーションの中から特定のアプリケーションを識別することができる。   When the host identifier 214 includes the device identifier 306 and the application identifier 308, the host identifier 214 includes the application endpoint. Application identifier 308 identifies a particular application on the host device identified by device identifier 306. Accordingly, the host identifier 214 including the device identifier 306 and the application identifier 308 identifies a particular application among multiple applications that are on a single host 108 and / or replicated across multiple hosts 108. be able to.

デバイス識別子306を含むがアプリケーション識別子308を含まないホスト識別子214に、アプリケーションエンドポイントを含めることもできる。たとえば、これは、デバイスが1つのアプリケーションだけを有する時、デバイスがマルチホームである時、デバイスのNICが2つのIPアドレスを有する時などに、特に可能性が高い。どの場合でも、ホスト識別子214は、特定のアプリケーションならびに特定のホスト108を識別するように働く。その結果、クライアントセッション継続メッセージ206のルーティングを、要求するクライアント102とのセッションアフィニティを有する所望のアプリケーションに向けて迅速に実行することができる。   An application endpoint can also be included in the host identifier 214 that includes the device identifier 306 but not the application identifier 308. For example, this is particularly likely when the device has only one application, when the device is multihomed, when the device's NIC has two IP addresses, and so on. In any case, the host identifier 214 serves to identify a particular application as well as a particular host 108. As a result, routing of the client session continuation message 206 can be quickly performed toward a desired application having session affinity with the requesting client 102.

ホスト識別子214に、その代わりにキー312(B)を含めることができる。キー312(B)は、(i)ホスト108のデバイスのイントラネット110上のネットワークアドレスに、および(ii)その上の特定のアプリケーションにマッピングされる値である。そのようなマッピングは、別々のアプリケーション識別子308を使用せずに、キー312(B)をアプリケーションエンドポイントにマッピングすることを可能にする。このマッピングは、テーブル内のネットワークアドレス/アプリケーション識別子対をルックアップすること、計算を実行すること(たとえば、式に従う、アルゴリズムを実装するなど)などによって実現することができる。たとえば、キー312(B)を、あるデータ構造でネットワークアドレス310およびアプリケーション識別子308にリンクすることができる。キー312(B)がネットワークアドレス310およびアプリケーション識別子308にリンクされる例示的なテーブルを、さらに、下で図6Bを参照して説明する。   The host identifier 214 can include a key 312 (B) instead. The key 312 (B) is a value that is mapped to (i) the network address on the intranet 110 of the device of the host 108, and (ii) to a specific application thereon. Such a mapping allows the key 312 (B) to be mapped to an application endpoint without using a separate application identifier 308. This mapping can be achieved by looking up a network address / application identifier pair in the table, performing a calculation (eg, following an equation, implementing an algorithm, etc.), etc. For example, key 312 (B) can be linked to network address 310 and application identifier 308 in a data structure. An exemplary table in which key 312 (B) is linked to network address 310 and application identifier 308 is further described below with reference to FIG. 6B.

もう1つの代替実装では、コードを、セッションメッセージ302のセッション識別子210のフィールドに埋め込むことができる。このコードは、セッション識別子210フィールド全体の一部を占めることができる。このコードは、ホスト108からネットワークゲートウェイ要素106および/またはクライアント102に情報(たとえば、データ、コマンドなど)を通信するのに使用することができる。セッションメッセージ302のセッション識別子フィールドに、コード自体および/またはコードを使用して作成されたセッション識別子210を投入することができる。クライアント102および/またはネットワークゲートウェイ要素106は、このコードを抽出し、そのままで、コードのマッピング(たとえば、ルックアップ、計算など)の後になど、通信された情報を利用することができる。   In another alternative implementation, the code can be embedded in the session identifier 210 field of the session message 302. This code can occupy part of the entire session identifier 210 field. This code can be used to communicate information (eg, data, commands, etc.) from the host 108 to the network gateway element 106 and / or the client 102. The session identifier field of the session message 302 can be populated with the code itself and / or a session identifier 210 created using the code. Client 102 and / or network gateway element 106 can extract this code and utilize the communicated information as is, such as after code mapping (eg, lookup, calculation, etc.).

図4は、ルーティングヒントを供給する例示的な方法を示す流れ図400である。流れ図400に、7つのブロック402〜414が含まれる。流れ図400の動作を、他の環境でならびにさまざまなハードウェアアーキテクチャおよびソフトウェア方式と共に実行することができるが、図1〜3(および5)が、この方法のある態様および例を示すのに特に使用される。たとえば、ホスト108が、説明される動作を実行することができる。   FIG. 4 is a flow diagram 400 illustrating an exemplary method for providing routing hints. The flowchart 400 includes seven blocks 402-414. Although the operations of flowchart 400 can be performed in other environments and with various hardware architectures and software schemes, FIGS. 1-3 (and 5) are particularly used to illustrate certain aspects and examples of this method. Is done. For example, the host 108 can perform the operations described.

ブロック402で、クライアントセッションメッセージを受け取る。たとえば、ホスト108が、クライアント102からクライアントセッションメッセージ202または206を受け取ることができる(たとえば、メッセージハンドラ208の着信メッセージハンドラ部分208ICで)。ブロック404で、受け取られたクライアントセッションメッセージにセッション識別子が含まれるかどうかを判定する。たとえば、受け取られたクライアントセッションメッセージ202または206(たとえば、セッションメッセージ302などのフォーマットの)を検査して、それがセッション識別子フィールドにセッション識別子210を有するかどうかを判定することができる。   At block 402, a client session message is received. For example, the host 108 can receive a client session message 202 or 206 from the client 102 (eg, at the incoming message handler portion 208IC of the message handler 208). At block 404, it is determined whether the received client session message includes a session identifier. For example, a received client session message 202 or 206 (eg, in a format such as session message 302) can be examined to determine if it has a session identifier 210 in the session identifier field.

受け取られたクライアントセッションメッセージにセッション識別子210が含まれる場合に、その受け取られたクライアントセッションメッセージは、クライアントセッション継続メッセージ(SCM)206であり、この方法は、ブロック412で継続される。その一方で、受け取られたクライアントセッションメッセージにセッション識別子210が含まれない場合には、受け取られたクライアントセッションメッセージは、クライアントセッション開始メッセージ(SIM)202であり、この方法は、ブロック406で継続される。   If the received client session message includes a session identifier 210, the received client session message is a client session continuation message (SCM) 206 and the method continues at block 412. On the other hand, if the session identifier 210 is not included in the received client session message, the received client session message is a client session start message (SIM) 202 and the method continues at block 406. The

ブロック406で、ホスト識別子を用いてセッション識別子を作成する。たとえば、ホスト108のホスト識別子214が、セッション識別子クリエータ212によって、セッション識別子210を作成するのに使用される。セッション識別子クリエータ212は、他の値と共に、ホスト識別子214をセッション識別子210に挿入することができる。   At block 406, a session identifier is created using the host identifier. For example, the host identifier 214 of the host 108 is used by the session identifier creator 212 to create the session identifier 210. Session identifier creator 212 can insert host identifier 214 into session identifier 210 along with other values.

ブロック408で、作成されたセッション識別子を用いてホストセッション開始メッセージを定式化する。たとえば、発信メッセージハンドラ部分208OGが、ホスト識別子214を含むセッション識別子210を投入されたホストセッション開始メッセージ204を定式化することができる(たとえば、セッションメッセージ302のフォーマットなどのフォーマットを使用して)。ブロック410で、ホストセッション開始メッセージを送る。たとえば、ホスト108が、ネットワーク104を介し、ネットワークゲートウェイ要素106を介してクライアント102にホストセッション開始メッセージ204を送ることができる。   At block 408, a host session start message is formulated using the created session identifier. For example, the outgoing message handler portion 208OG can formulate a host session start message 204 populated with a session identifier 210 that includes a host identifier 214 (eg, using a format such as the format of the session message 302). At block 410, a host session start message is sent. For example, the host 108 can send a host session start message 204 to the client 102 via the network 104 and via the network gateway element 106.

その一方で、受け取られたクライアントセッションメッセージにセッション識別子が含まれると判定された(ブロック404で)場合に、ブロック412で、受け取られたセッション識別子を用いてホストセッション継続メッセージを定式化する。たとえば、発信メッセージハンドラ部分208OGが、受け取られたセッション識別子210(前に埋め込まれたホスト識別子214を含む可能性がある)を投入されたホストセッション継続メッセージ(図2には具体的に図示せず)を定式化することができる(たとえば、セッションメッセージ302のフォーマットなどのフォーマットを使用して)。ブロック414で、ホストセッション継続メッセージを送る。たとえば、ホスト108が、ネットワーク104を介し、ネットワークゲートウェイ要素106を介してクライアント102にホストセッション継続メッセージを送ることができる。   On the other hand, if it is determined (at block 404) that the received client session message includes a session identifier, at block 412 a host session continuation message is formulated using the received session identifier. For example, a host session continuation message (not specifically shown in FIG. 2) in which the outgoing message handler portion 208OG is populated with a received session identifier 210 (which may include a previously embedded host identifier 214). ) Can be formulated (eg, using a format such as the format of session message 302). At block 414, a host session continuation message is sent. For example, the host 108 can send a host session continuation message to the client 102 via the network 104 and via the network gateway element 106.

図5に、セッションメッセージと共にルーティングヒントを供給し、使用するもう1つの例示的な手法を示す。この例示的な手法は、ネットワークゲートウェイ要素106でのルーティングヒントの使用に焦点を合わせたものである。図からわかるように、クライアント102(1)、102(2)、…、102(m)が、ネットワーク104を介して、NGNのネットワークゲートウェイ要素106にアドレッシングされたメッセージをサブミットする。   FIG. 5 illustrates another exemplary technique for providing and using routing hints with session messages. This exemplary approach focuses on the use of routing hints at the network gateway element 106. As can be seen, clients 102 (1), 102 (2),..., 102 (m) submit messages addressed to NGN network gateway element 106 via network 104.

ネットワークゲートウェイ要素106は、これらの要求をホスト108(1)、108(2)、…、108(n)にルーティングする。各ホスト108(1)、108(2)、…、108(n)は、それぞれのホスト識別子214(1)、214(2)、…、214(n)に関連する。ホスト識別子214は、たとえば、特定の種類のセッションが潜在的に向けられる可能性があるエンドポイントのセットの中から1つのアプリケーションエンドポイントを一意に識別することができる。   The network gateway element 106 routes these requests to the hosts 108 (1), 108 (2),... 108 (n). Each host 108 (1), 108 (2),..., 108 (n) is associated with a respective host identifier 214 (1), 214 (2),. The host identifier 214 can uniquely identify one application endpoint from a set of endpoints to which a particular type of session can potentially be directed, for example.

説明される実装では、ネットワークゲートウェイ要素106が、ネットワーク負荷分散に関する。ネットワーク負荷分散(またはルーティング機能性を有する他のネットワークゲートウェイ)と共に、1つまたは複数のルーティングポリシ508を使用することができる。ルーティングポリシ508に、たとえば、ネットワークロードバランサに着信パケットおよび/または要求を指定された形でルーティングさせるために管理者がスクリプトを作成するかセットすることができるルーティングポリシを含めることができる。ルーティングポリシ508に、ホスト108のヘルスおよび負荷情報などのリアルタイムパラメータに頼る、より柔軟なおよび/または拡張的なルーティングポリシを含めることもできる。   In the described implementation, the network gateway element 106 relates to network load balancing. One or more routing policies 508 can be used with network load balancing (or other network gateways with routing functionality). The routing policy 508 can include, for example, a routing policy that allows an administrator to create or set a script to cause the network load balancer to route incoming packets and / or requests in a specified manner. Routing policy 508 may also include more flexible and / or extended routing policies that rely on real-time parameters such as host 108 health and load information.

ネットワークゲートウェイ要素106のネットワーク負荷分散実装は、統合されたネットワーク負荷分散機能性を用いて実現することができる。この実装を、クライアントセッション継続メッセージ206(A)およびルーティング動作216(C)に関して説明する。ネットワークゲートウェイ要素106のネットワーク負荷分散実装は、分離されたネットワーク負荷分散機能性を用いて実現することもできる。この実装を、クライアントセッション継続メッセージ206(B)およびルーティング動作512に関して説明する。   A network load balancing implementation of the network gateway element 106 can be realized using integrated network load balancing functionality. This implementation is described with respect to client session continuation message 206 (A) and routing operation 216 (C). A network load balancing implementation of the network gateway element 106 can also be realized using a separate network load balancing functionality. This implementation is described with respect to client session continuation message 206 (B) and routing operation 512.

分離された機能性を有するこの例示的なネットワーク負荷分散実装では、ネットワークゲートウェイ要素106に、フォワーダ502、クラシファイヤ504、およびホスト識別子(HI)対ネットワークアドレス(NA)リンキングテーブル506が含まれる。フォワーダ502は、それぞれネットワーク104およびイントラネット110を使用して、クライアント102とホスト108の間でパケットを転送する。クラシファイヤ504は、ネットワーク負荷分散機能性および/またはセッションアフィニティ保存機能性を実現するために、パケット、要求、接続などを分類して、ルーティング動作を実行する。   In this exemplary network load balancing implementation with isolated functionality, network gateway element 106 includes forwarder 502, classifier 504, and host identifier (HI) to network address (NA) linking table 506. Forwarder 502 forwards packets between client 102 and host 108 using network 104 and intranet 110, respectively. The classifier 504 performs routing operations by classifying packets, requests, connections, etc. in order to achieve network load balancing functionality and / or session affinity preservation functionality.

フォワーダ502およびクラシファイヤ504は、ネットワークゲートウェイ106の異なるデバイスまたはその単一のデバイスに常駐し、実行中であることができる。さらに、フォワーダ502およびクラシファイヤ504のそれぞれを、複数のデバイスに分散させることができる。さらに、1つのネットワークゲートウェイ106に複数のフォワーダ502コンポーネントおよび/またはクラシファイヤ504コンポーネントを置くことができる。図からわかるように、各クラシファイヤ504に、ホスト識別子対ネットワークアドレスリンキングテーブル506が含まれる。代替案では、ネットワークゲートウェイ106が、1つのホスト識別子対ネットワークアドレスリンキングテーブル506だけを有することができる。ホスト識別子対ネットワークアドレスリンキングテーブル506は、異なる機能コンポーネントに置き、かつ/またはこれらに関連付けることができる。   Forwarder 502 and classifier 504 may reside and be running on different devices of network gateway 106 or on that single device. Furthermore, each of forwarder 502 and classifier 504 can be distributed across multiple devices. In addition, multiple forwarder 502 components and / or classifier 504 components may be placed on a single network gateway 106. As can be seen, each classifier 504 includes a host identifier-to-network address linking table 506. Alternatively, the network gateway 106 may have only one host identifier to network address linking table 506. The host identifier-to-network address linking table 506 can be located at and / or associated with different functional components.

統合されたネットワーク負荷分散実装の動作では、クライアント102(1)が、ネットワーク104を介してアドレスNGNのネットワークゲートウェイ要素106にクライアントセッション継続メッセージ206(A)を送る。クライアント102(1)は、ホスト108(1)で前にセッションを確立しており、その、前に確立されたセッションに割り当てられたセッション識別子210(1)を保存している。このセッション識別子210(1)に、ホスト108(1)に関連するホスト識別子214(1)が含まれる。クライアントセッション継続メッセージ206(A)に、セッション識別子210(1)が含まれる。   In operation of an integrated network load balancing implementation, client 102 (1) sends a client session continuation message 206 (A) over network 104 to network gateway element 106 at address NGN. Client 102 (1) has previously established a session with host 108 (1) and stores session identifier 210 (1) assigned to the previously established session. The session identifier 210 (1) includes the host identifier 214 (1) associated with the host 108 (1). The session identifier 210 (1) is included in the client session continuation message 206 (A).

統合されたネットワーク負荷分散機能性を有する実装では、ネットワークゲートウェイ要素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)にルーティングする。   In implementations with integrated network load balancing functionality, the network gateway element 106 performs a routing operation 216 (C) for the client session continuation message 206 (A). Since the client session continuation message 206 (A) has a session identifier 210 (1) that includes a host identifier 214 (1), the network gateway element 106 uses the host identifier 214 (1) portion of the session identifier 210 (1). Then, the client session continuation message 206 (A) is routed. In general, network gateway element 106 routes client session continuation message 206 (A) to host 108 (1) using host identifier 214 (1) extracted from session identifier 210 (1).

具体的に言うと、ネットワークゲートウェイ要素106は、ホスト108(1)にルーティングされるクライアントセッション継続メッセージ206(A)のパケットの宛先アドレスフィールドにホスト識別子214(1)を挿入することができる。この手法は、ホスト識別子214(1)にホスト108(1)のネットワークアドレスH1が含まれる時に効果的である。   Specifically, the network gateway element 106 can insert the host identifier 214 (1) in the destination address field of the packet of the client session continuation message 206 (A) routed to the host 108 (1). This technique is effective when the host identifier 214 (1) includes the network address H1 of the host 108 (1).

代替案では、ネットワークゲートウェイ要素106が、ネットワークアドレスH1へのホスト識別子214(1)のマッピングも実行することができる。たとえば、計算動作またはルックアップ動作を、そのようなマッピングのために実行することができる。計算動作について、ホスト識別子214(1)は、ある式、アルゴリズムなどを介してネットワークアドレスH1にマッピングされる。ルックアップ動作について、ホスト識別子214(1)は、ホスト識別子対ネットワークアドレスリンキングテーブル506など、ホスト識別子214(1)をネットワークアドレスH1にリンクするエントリを含むホスト識別子対ネットワークアドレステーブルにアクセスすることによって、ネットワークアドレスH1にマッピングされる。そのようなテーブルの例を、さらに、下で図6Aを参照して説明する。   Alternatively, network gateway element 106 can also perform mapping of host identifier 214 (1) to network address H1. For example, a calculation operation or a lookup operation can be performed for such a mapping. For computing operations, the host identifier 214 (1) is mapped to the network address H1 via some formula, algorithm, etc. For lookup operations, the host identifier 214 (1) accesses the host identifier vs. network address table that includes an entry that links the host identifier 214 (1) to the network address H1, such as the host identifier vs. network address linking table 506. , Mapped to the network address H1. An example of such a table is further described below with reference to FIG. 6A.

分離されたネットワーク負荷分散実装の動作では、クライアント102(2)が、ネットワーク104を介してアドレスNGNのネットワークゲートウェイ要素106にクライアントセッション継続メッセージ206(B)を送る。クライアント102(2)は、前にホスト108(2)でセッションを確立しており、その、前に確立されたセッションに割り当てられたセッション識別子210(2)を保存している。このセッション識別子210(2)に、ホスト108(2)に関連するホスト識別子214(2)が含まれる。クライアントセッション継続メッセージ206(B)に、セッション識別子210(2)が含まれる。   In operation of the isolated network load balancing implementation, the client 102 (2) sends a client session continuation message 206 (B) via the network 104 to the network gateway element 106 at address NGN. Client 102 (2) has previously established a session with host 108 (2) and stores a session identifier 210 (2) assigned to the previously established session. The session identifier 210 (2) includes a host identifier 214 (2) associated with the host 108 (2). The session identifier 210 (2) is included in the client session continuation message 206 (B).

分離されたネットワーク負荷分散実装機能性を有する実装では、フォワーダ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は、クライアントセッション継続メッセージ206(B)をフォワーダ502に転送し、かつ/またはフォワーダ502でルーティングエントリを追加して、このセッションのメッセージ/パケットがホスト108(2)に転送されなければならないことを示す。   In implementations with isolated network load balancing implementation functionality, forwarder 502 receives client session continuation message 206 (B). Since client session continuation message 206 (B) relates to an unknown session to forwarder 502 (and possibly also to a new connection), forwarder 502 forwards client session continuation message 206 (B) to classifier 504 in communication exchange 510. To do. The client session continuation message 206 (B) has a session identifier 210 (2) that includes a host identifier 214 (2), so that the classifier 504 is the host identifier 214 of the session identifier 210 (2) in the routing operation 512. (2) The portion is used to classify the client session continuation message 206 (B). Also, in communication exchange 510, classifier 504 forwards client session continuation message 206 (B) to forwarder 502 and / or adds a routing entry at forwarder 502, and the message / packet for this session is sent to host 108 ( 2) indicates that it must be transferred.

したがって、クラシファイヤ504およびフォワーダ502は、セッション識別子210(2)から抽出されたホスト識別子214(2)を使用して、クライアントセッション継続メッセージ206(B)をホスト108(2)に共同でルーティングする。ルーティング動作216(C)に関して上で説明したように、フォワーダ502およびクラシファイヤ504は、(i)宛先アドレスフィールドにホスト識別子214(2)を挿入することができ、(ii)ネットワークアドレスH2へのホスト識別子214(2)のマッピング(たとえば、計算、ルックアップなど)などを実行することができる。   Accordingly, classifier 504 and forwarder 502 jointly route client session continuation message 206 (B) to host 108 (2) using host identifier 214 (2) extracted from session identifier 210 (2). . As described above with respect to routing operation 216 (C), forwarder 502 and classifier 504 may (i) insert host identifier 214 (2) in the destination address field and (ii) address network address H2. A mapping (eg, calculation, lookup, etc.) of the host identifier 214 (2) may be performed.

ホスト識別子対ネットワークアドレスリンキングテーブル506を、クラシファイヤ504の一部または他の形でこれに関連するものとして説明した。ホスト識別子対ネットワークアドレスリンキングテーブル506は、ネットワークゲートウェイ要素106に置かれるものとして図示されているが、その代わりに異なるデバイス(たとえば、プロキシデバイス)に常駐することができる。そのようなプロキシデバイスに置かれる時に、分離されたまたは統合された(たとえば、ネットワーク負荷分散関連の)機能性を有するネットワークゲートウェイ要素106は、そこからホスト識別子対ネットワークアドレスリンキングテーブル506にアクセスすることができる。   Host identifier-to-network address linking table 506 has been described as part of classifier 504 or otherwise associated with it. Although the host identifier-to-network address linking table 506 is illustrated as being located at the network gateway element 106, it can instead reside on a different device (eg, a proxy device). A network gateway element 106 having isolated or integrated (eg, network load balancing related) functionality when placed on such a proxy device has access to a host identifier-to-network address linking table 506 therefrom. Can do.

図6Aおよび6Bは、ルーティングヒントと共に使用されるホスト識別子214とネットワークアドレス310のリンキングを示す例示的なテーブル506(A)および506(B)である。ホスト識別子対ネットワークアドレスリンキングテーブル506(A)は、全般的に、ホスト識別子214がデバイスにマッピングされる実装に対応する。ホスト識別子対ネットワークアドレスリンキングテーブル506(B)は、全般的に、ホスト識別子214がアプリケーションエンドポイントにマッピングされる実装に対応する。しかし、ホスト識別子対ネットワークアドレスリンキングテーブル506(A)を、上で図3を参照して説明したように、アプリケーションエンドポイントにマッピングすることもできる。   6A and 6B are exemplary tables 506 (A) and 506 (B) showing the linking of the host identifier 214 and network address 310 used with routing hints. The host identifier to network address linking table 506 (A) generally corresponds to an implementation in which the host identifier 214 is mapped to a device. Host identifier to network address linking table 506 (B) generally corresponds to an implementation in which host identifier 214 is mapped to an application endpoint. However, the host identifier-to-network address linking table 506 (A) can also be mapped to application endpoints as described above with reference to FIG.

図からわかるように、ホスト識別子対ネットワークアドレスリンキングテーブル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)が含まれる。   As can be seen, the host identifier to network address linking table 506 (A) links each host identifier 214 to each network address 310. The table 506 (A) includes a plurality of entries 602 (1A), 602 (2A),..., 602 (nA). Each entry 602 (1A), 602 (2A),..., 602 (nA) has a respective host identifier 214 (1), 214 (2),. Addresses 310 (1), 310 (2),..., 310 (n) are included.

説明される実装では、テーブル506(A)に、「n」個のエントリが含まれ、このnは、ホスト108の個数と等しく、各ホスト識別子214(1)、214(2)、…、214(n)は、キー315(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(#)にルーティングするのに使用するために抽出される。   In the described implementation, table 506 (A) includes “n” entries, where n is equal to the number of hosts 108 and each host identifier 214 (1), 214 (2),. (N) corresponds to the key 315 (A) (in FIG. 3). In such an implementation, network addresses 310 (1), 310 (2),..., 310 (n) correspond to host addresses H1, H2,. In operation, the network gateway element 106 accesses the table 506 (A) using the host identifier 214 (#) to locate the associated entry 602 (#A). From the entry 602 (#A), the network address 310 (#) linked to the host identifier 214 (#) routes the client session continuation message 206 (A) or 206 (B) to the host 108 (#). Extracted for use.

図からわかるように、ホスト識別子対ネットワークアドレスリンキングテーブル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(2)、…、310(n)ならびにそれぞれのアプリケーション識別子308(1)、308(2)、308(3)、…、308(z)が含まれる。   As can be seen, the host identifier-to-network address linking table 506 (B) links each host identifier 214 to each network address 310 and application identifier 308. The table 506 (B) includes a plurality of entries 602 (1B), 602 (2B), 602 (3B),..., 602 (wB). In each respective entry 602 (1B), 602 (2B), 602 (3B),..., 602 (wB), (i) the respective host identifier 214 (1 *), 214 (2 *), 214 (3 *) ),..., 214 (w), and (ii) the respective network addresses 310 (1), 310 (2), 310 (2),. 308 (1), 308 (2), 308 (3),..., 308 (z) are included.

説明される実装では、テーブル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)に対応する1つのアプリケーションを有し、アドレスH1がネットワークアドレス310(1)に対応する。ホスト108(2)は、ホスト識別子214(2*)および214(3*)に対応し、アプリケーション識別子308(2)および308(3)に対応する2つのアプリケーションを有し、アドレスH2は、ネットワークアドレス310(2)に対応する。   In the described implementation, table 506 (B) contains “w” entries, where w is equal to the number of application endpoints on host 108 and each host identifier 214 (1 *), 214 (2 * ), 214 (3 *),..., 214 (w) correspond to the key 315 (B) (FIG. 3). For illustration purposes, referring to FIG. 5, the illustrated host identifier to network address linking table 506 (B) may be utilized in the following exemplary situation. Host 108 (1) is associated with host identifier 214 (1 *), has one application corresponding to application identifier 308 (1), and address H1 corresponds to network address 310 (1). Host 108 (2) corresponds to host identifiers 214 (2 *) and 214 (3 *), has two applications corresponding to application identifiers 308 (2) and 308 (3), and address H2 is a network Corresponds to address 310 (2).

さらに、ホスト108(n)は、ホスト識別子214(w)に対応し、アプリケーション識別子308(z)に対応する1つのアプリケーションを有し、アドレスHnは、ネットワークアドレス310(n)に対応する。変数「z」は、各アプリケーション識別子308が各アプリケーションインストレーションに一意である場合に、アプリケーションエンドポイントの個数wと等しくすることができる。その一方で、アプリケーション識別子308が、同一のアプリケーションのアプリケーションインストレーションの間で共有される場合には、zがwより小さくなる可能性がある。   Further, the host 108 (n) corresponds to the host identifier 214 (w), has one application corresponding to the application identifier 308 (z), and the address Hn corresponds to the network address 310 (n). The variable “z” may be equal to the number w of application endpoints where each application identifier 308 is unique to each application installation. On the other hand, if the application identifier 308 is shared between application installations of the same application, z may be less than w.

図7は、ルーティングヒントを使用する例示的な方法を示す流れ図700である。流れ図700に、8つのブロック702〜716が含まれる。流れ図700の動作を、他の環境でならびにさまざまなハードウェアアーキテクチャおよびソフトウェア方式を用いて実行することができるが、図1〜3および5〜6が、この方法のある態様および例を示すのに特に使用される。たとえば、1つまたは複数のネットワークゲートウェイ要素106が、説明される動作を実行することができる。   FIG. 7 is a flow diagram 700 illustrating an exemplary method for using routing hints. The flow diagram 700 includes eight blocks 702-716. Although the operations of flowchart 700 can be performed in other environments and using various hardware architectures and software schemes, FIGS. 1-3 and 5-6 illustrate certain aspects and examples of this method. Especially used. For example, one or more network gateway elements 106 may perform the operations described.

ブロック702で、クライアントメッセージを受け取る。たとえば、ネットワークゲートウェイ要素106が、ネットワーク104を介してクライアント102からクライアントメッセージを受け取ることができる。ブロック704で、受け取られたクライアントメッセージの内容を検査する。たとえば、ネットワークゲートウェイ要素106が、セッション識別子210のフィールドなど、セッションメッセージ302の1つまたは複数のフィールドを検査することができる。   At block 702, a client message is received. For example, the network gateway element 106 can receive a client message from the client 102 over the network 104. At block 704, the contents of the received client message are examined. For example, the network gateway element 106 can inspect one or more fields of the session message 302, such as the session identifier 210 field.

ブロック706で、受け取られたクライアントメッセージがセッション関連であるかどうかを判定する。たとえば、受け取られたクライアントメッセージに、セッション識別子210のフィールドを有するセッションメッセージ302が含まれる場合に、その受け取られたクライアントメッセージは、セッション関連である。その一方で、受け取られたクライアントメッセージが、セッション識別子210のフィールドを有しない場合に、その受け取られたクライアントメッセージは、セッション関連ではなく、この方法は、ブロック708で継続される。   At block 706, it is determined whether the received client message is session related. For example, if the received client message includes a session message 302 having a field for session identifier 210, the received client message is session related. On the other hand, if the received client message does not have a field for session identifier 210, the received client message is not session related and the method continues at block 708.

ブロック708で、受け取られたクライアントメッセージを、デフォルトポリシを使用してルーティングする。たとえば、ネットワークゲートウェイ要素106は、デフォルトネットワーク負荷分散ポリシなどのルーティングポリシ508の一般的なルーティングポリシを使用して、受け取られたクライアントメッセージをルーティングすることができる。破線の矢印718Aによって示されているように、ネットワークゲートウェイ要素106は、その後、次のクライアントメッセージの受け取りを待つことができる。   At block 708, the received client message is routed using the default policy. For example, the network gateway element 106 may route received client messages using a general routing policy of a routing policy 508, such as a default network load balancing policy. As indicated by dashed arrow 718A, network gateway element 106 can then wait for receipt of the next client message.

その一方で、受け取られたクライアントメッセージがセッション関連であると判定される(ブロック706で)場合に、ブロック710で、セッション識別子フィールドを検査する。たとえば、ネットワークゲートウェイ要素106が、受け取られたクライアントセッションメッセージ302のセッション識別子フィールドを検査することができる。ブロック712で、クライアントがセッション識別子フィールドを使用してセッション識別子を指定したかどうかを判定する。たとえば、ネットワークゲートウェイ要素106は、セッション識別子210がセッションメッセージ302のセッション識別子フィールドに投入されたかどうかを判定することができる。   On the other hand, if the received client message is determined to be session related (at block 706), at block 710, the session identifier field is examined. For example, the network gateway element 106 can examine the session identifier field of the received client session message 302. At block 712, it is determined whether the client has specified a session identifier using the session identifier field. For example, the network gateway element 106 can determine whether the session identifier 210 has been entered in the session identifier field of the session message 302.

セッション識別子が指定されなかったと判定される(ブロック712で)場合に、ブロック708で、受け取られたクライアントセッション開始メッセージ202をデフォルトポリシを使用してルーティングすることができる。その一方で、セッション識別子がクライアントによって指定されたと判定される(ブロック712で)場合に、ブロック714で、指定されたセッション識別子からホスト識別子を抽出する。たとえば、ネットワークゲートウェイ要素106が、受け取られたクライアントセッション継続メッセージ206で指定されたセッション識別子210からホスト識別子214を抽出することができる。   If it is determined that the session identifier was not specified (at block 712), then at block 708, the received client session initiation message 202 can be routed using the default policy. On the other hand, if it is determined that the session identifier was specified by the client (at block 712), at block 714, the host identifier is extracted from the specified session identifier. For example, the network gateway element 106 can extract the host identifier 214 from the session identifier 210 specified in the received client session continuation message 206.

ブロック716で、抽出されたホスト識別子を使用して、受け取られたクライアントメッセージをルーティングする。たとえば、受け取られたクライアントセッション継続メッセージ206を、ネットワークゲートウェイ要素106によって、ホスト識別子214に関連するホスト108にルーティングすることができる。このルーティングに、ホスト108に転送される1つまたは複数のパケットの宛先フィールドへのホスト識別子214の変更されない挿入または少なくとも1つのネットワークアドレス310へのホスト識別子214のマッピングを含めることができる。このマッピングは、ホスト識別子214を使用してテーブル506内でネットワークアドレス310をルックアップすること、ネットワークアドレス310をもたらすホスト識別子214に対する計算(たとえば、式に従う、アルゴリズムを実装するなど)を実行することなどによって実現することができる。   At block 716, the received client message is routed using the extracted host identifier. For example, the received client session continuation message 206 can be routed by the network gateway element 106 to the host 108 associated with the host identifier 214. This routing can include unaltered insertion of the host identifier 214 into the destination field of one or more packets forwarded to the host 108 or mapping of the host identifier 214 to at least one network address 310. This mapping uses the host identifier 214 to look up the network address 310 in the table 506 and perform calculations on the host identifier 214 that yields the network address 310 (eg, according to an equation, implementing an algorithm, etc.) Etc. can be realized.

特にネットワークゲートウェイ要素106がネットワークロードバランサである実装について、ネットワークゲートウェイ要素106は、複数のホスト108に関するヘルス情報および/または負荷情報へのアクセスを有することができる。このヘルス情報および/または負荷情報は、ヘルスおよび/または負荷の理由のゆえに抽出されたホスト識別子214に関連する宛先(たとえば、ホスト108および/またはそのアプリケーションエンドポイント)がセッション継続を処理するのに適さないかそれができないことを示すことができる。その場合に、ネットワークゲートウェイ要素106は、クライアント102がホスト識別子214を含むセッション識別子210を指定した時であっても、デフォルトルーティングポリシに関するブロック708の動作を実行することができる。   Particularly for implementations in which the network gateway element 106 is a network load balancer, the network gateway element 106 may have access to health information and / or load information for multiple hosts 108. This health information and / or load information is used by the destination (eg, host 108 and / or its application endpoint) associated with the extracted host identifier 214 for health and / or load reasons to handle session continuation. You can show that it's not suitable or can't. In that case, the network gateway element 106 may perform the operation of block 708 for default routing policy even when the client 102 specifies a session identifier 210 that includes a host identifier 214.

ブロック716の動作の後に、破線の矢印718Bによって示されているように、ネットワークゲートウェイ要素106は、次のクライアントメッセージの受け取りを待つことができる。ネットワークゲートウェイ要素106は、抽出されたホスト識別子214のタイプに依存する複数の形で、抽出されたホスト識別子214を使用して、受け取られたクライアントセッション継続メッセージ206をルーティングすることができる。   After the operation of block 716, the network gateway element 106 may wait for receipt of the next client message, as indicated by the dashed arrow 718B. The network gateway element 106 can route the received client session continuation message 206 using the extracted host identifier 214 in a number of ways depending on the type of the extracted host identifier 214.

たとえば、ネットワークゲートウェイ要素106は、ホスト識別子214にデバイス識別子306およびアプリケーション識別子308が含まれる場合、またはキー312(B)がホスト108のデバイスおよびアプリケーションにマッピングされる場合に、受け取られたクライアントセッション継続メッセージ206を所期のアプリケーションに直接にルーティングすることができる。さらに、ネットワークゲートウェイ要素106は、ホスト識別子214のデバイス識別子306のネットワークアドレス310実装を使用して、受け取られたクライアントセッション継続メッセージ206をアフィニタイズ(affinitize)されたホスト108にルーティングすることができるものとすることができ、ここで、ネットワークアドレス310は、1つまたは複数のルーティングされるパケットの宛先アドレスとして使用される。   For example, the network gateway element 106 may receive a client session continuation if the host identifier 214 includes a device identifier 306 and an application identifier 308, or if the key 312 (B) is mapped to a device and application on the host 108. The message 206 can be routed directly to the intended application. In addition, the network gateway element 106 can route the received client session continuation message 206 to the affineized host 108 using the network address 310 implementation of the device identifier 306 of the host identifier 214. Where the network address 310 is used as the destination address of one or more routed packets.

代替案では、ネットワークゲートウェイ要素106が、ホスト識別子214のデバイス識別子306のキー312(A)実装を使用して、アフィニタイズされたホスト108のデバイスのネットワークアドレス310をルックアップすることができる。たとえば、キー312(#)を使用して、キー312(A)をホスト108のネットワークアドレス310にマッピングするテーブル506(A)(たとえば、データ構造)にアクセスすることができる。キー312(#)を有するエントリ602(#A)が、このデータ構造内で突き止められる。突き止められたエントリ602(#A)内のキー312(#)にリンクされたネットワークアドレス310(#)が、抽出され、アフィニタイズされたホスト108にクライアントセッション継続メッセージ206をルーティングするのに使用される。   Alternatively, the network gateway element 106 may use the key 312 (A) implementation of the device identifier 306 of the host identifier 214 to look up the network address 310 of the device of the host 108 that has been definitized. For example, key 312 (#) can be used to access table 506 (A) (eg, a data structure) that maps key 312 (A) to host 108 network address 310. An entry 602 (#A) having a key 312 (#) is located in this data structure. The network address 310 (#) linked to the key 312 (#) in the located entry 602 (#A) is extracted and used to route the client session continuation message 206 to the affiliated host 108. .

さらに、ネットワークゲートウェイ要素106は、ホスト識別子214のデバイス識別子306およびアプリケーション識別子308のアプリケーションエンドポイント固有のキー312(B)実装を使用して、アフィニタイズされたホスト108のデバイスのネットワークアドレス310およびそのアプリケーションのアプリケーション識別子308をルックアップすることができる。たとえば、キー312(#)を使用して、キー312(B)をホスト108のアプリケーションエンドポイントにマッピングするテーブル506(B)(たとえば、データ構造)にアクセスすることができる。キー312(#)を有するエントリ602(#B)が、このデータ構造内で突き止められる。突き止められたエントリ602(#B)内のキー312(#)にリンクされたアプリケーションエンドポイント(たとえば、ネットワークアドレス310(#)およびアプリケーション識別子308(#))が、抽出され、アフィニタイズされたホスト108の/のための特定のデバイス上の特定のアプリケーションにクライアントセッション継続メッセージ206をルーティングするのに使用される。   Further, the network gateway element 106 uses the device identifier 306 of the host identifier 214 and the application endpoint specific key 312 (B) implementation of the application identifier 308 to identify the network address 310 of the device of the host 108 that has been affiliated and its application. Application identifier 308 can be looked up. For example, the key 312 (#) can be used to access a table 506 (B) (eg, a data structure) that maps the key 312 (B) to an application endpoint of the host 108. An entry 602 (#B) with a key 312 (#) is located in this data structure. The application endpoint (eg, network address 310 (#) and application identifier 308 (#)) linked to the key 312 (#) in the located entry 602 (#B) is extracted and affiliated host 108. Used to route client session continuation message 206 to a specific application on / for a specific device.

図1〜7の動作、態様、特徴、コンポーネントなどは、複数のブロックに分割された図に示されている。しかし、図1〜7のこれらの複数のブロックが説明され、かつ/または図示された順序、個数、配置、相互接続、レイアウトなどは、制限として解釈されることを意図されたものではなく、任意の個数のブロックを任意の形で組み合わせ、再配置し、増補し、省略するなどを行って、ルーティングヒントの1つまたは複数のシステム、方法、デバイス、プロシージャ、媒体、アプリケーションプログラミングインターフェース(API)、装置、配置などを実装することができる。さらに、本明細書の説明に、特定の実装(および図8の例示的なオペレーティング環境)への言及が含まれるが、図示され、かつ/または説明された実装を、任意の適当なハードウェア、ソフトウェア、ファームウェア、またはこれらの組合せで、任意の適当なネットワーク編成、トランスポート/通信プロトコル、クライアント−サーバアーキテクチャなどを使用して実装することができる。   The operations, aspects, features, components, etc. of FIGS. 1-7 are shown in a diagram divided into a plurality of blocks. However, the order, number, arrangement, interconnections, layout, etc., illustrated and / or illustrated in these blocks of FIGS. 1-7 are not intended to be construed as limitations and are arbitrary. One or more systems, methods, devices, procedures, media, application programming interfaces (APIs) of routing hints, in any number of combinations, rearrangements, augmentations, omissions, etc. Device, arrangement, etc. can be implemented. Further, although the description herein includes references to a particular implementation (and the exemplary operating environment of FIG. 8), the illustrated and / or described implementation may be replaced with any suitable hardware, It can be implemented in software, firmware, or a combination thereof using any suitable network organization, transport / communication protocol, client-server architecture, etc.

図8に、本明細書に記載のルーティングヒントの少なくとも1つのシステム、デバイス、装置、コンポーネント、配置、プロトコル、手法、方法、プロシージャ、媒体、API、これらの組合せなどを実装する(全体をまたは部分的に)ことができる例示的なコンピューティング(または一般デバイス)オペレーティング環境800を示す。オペレーティング環境800は、下で説明するコンピュータおよびネットワークのアーキテクチャで、または独立の状況で利用することができる。   FIG. 8 implements (in whole or in part) at least one system, device, apparatus, component, arrangement, protocol, technique, method, procedure, medium, API, combinations thereof, etc. of the routing hints described herein. 2 illustrates an exemplary computing (or general device) operating environment 800 that can be automatically). The operating environment 800 can be utilized in the computer and network architecture described below, or in an independent context.

例示的なオペレーティング環境800は、環境の1例にすぎず、適用可能なデバイス(コンピュータ、ネットワークノード、エンターテイメントデバイス、モバイル機器、一般的な電子デバイスなど)アーキテクチャの使用または機能性の範囲に関する制限を提案することを意図されたものではない。オペレーティング環境800(またはそのデバイス)を、図8に示されたコンポーネントのいずれかまたはその組合せに対する依存性または要件を有すると解釈してもならない。   The exemplary operating environment 800 is only one example of an environment and limits the scope of use or functionality of the applicable device (computer, network node, entertainment device, mobile device, general electronic device, etc.) architecture. It is not intended to be proposed. Neither should the operating environment 800 (or its device) be interpreted as having any dependency or requirement on any of the components illustrated in FIG.

さらに、ルーティングヒントを、多数の他の汎用デバイスまたは特殊目的デバイス(コンピューティングシステムを含む)の環境またはコンフィギュレーションを用いて実装することができる。使用するのに適する可能性がある周知のデバイス、システム、環境、および/またはコンフィギュレーションの例に、パーソナルコンピュータ、サーバコンピュータ、シンクライアント、シッククライアント、携帯情報端末(PDA)または携帯電話機、腕時計、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブルコンシューマエレクトロニクス、ビデオゲーム機、ゲーム機、ポータブルまたはハンドヘルドのゲーミングユニット、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、ネットワークノード、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境またはマルチプロセッシングコンピューティング環境、これらのある組合せなどが含まれるが、これらに制限はされない。   Furthermore, routing hints can be implemented using the environment or configuration of many other general purpose or special purpose devices (including computing systems). Examples of well-known devices, systems, environments and / or configurations that may be suitable for use include personal computers, server computers, thin clients, thick clients, personal digital assistants (PDAs) or mobile phones, watches, Handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, video game consoles, game consoles, portable or handheld gaming units, network PCs, minicomputers, mainframe computers, networks Node, distributed computing environment or multi-processing machine containing any of the above systems or devices Computing environment, etc. some combination thereof, these limitations are not.

ルーティングヒントの実装を、プロセッサ実行可能命令の全般的な文脈で説明することができる。一般に、プロセッサ実行可能命令には、特定のタスクを実行し、かつ/または可能にし、かつ/または特定の抽象データ型を実装する、ルーチン、プログラム、プロトコル、オブジェクト、インターフェース、コンポーネント、データ構造などが含まれる。本明細書で、ある実装で説明されたルーティングヒントは、通信リンクおよび/または通信ネットワークを介して接続されたリモートリンクされた処理デバイスによってタスクが実行される分散処理環境で実践することもできる。特に分散コンピューティング環境で、プロセッサ実行可能命令を、別々の記憶媒体に置き、異なるプロセッサによって実行し、かつ/または伝送媒体を介して伝搬することができる。   Routing hint implementations can be described in the general context of processor-executable instructions. Generally, processor-executable instructions include routines, programs, protocols, objects, interfaces, components, data structures, etc. that perform and / or enable specific tasks and / or implement specific abstract data types. included. The routing hints described herein in an implementation may also be practiced in distributed processing environments where tasks are performed by remote linked processing devices that are connected through a communication link and / or a communication network. In particular, in a distributed computing environment, processor-executable instructions can be located on separate storage media, executed by different processors, and / or propagated through a transmission medium.

例示的なオペレーティング環境800に、コンピュータ802の形の汎用コンピューティングデバイスが含まれ、コンピュータ802に、計算/処理能力を有するすべての(たとえば電子)デバイスを含めることができる。コンピュータ802のコンポーネントに、1つまたは複数のプロセッサまたは処理ユニット804、システムメモリ806、およびプロセッサ804を含むさまざまなシステムコンポーネントをシステムメモリ806に結合するシステムバス808を含めることができるが、これに制限はされない。   The exemplary operating environment 800 includes a general purpose computing device in the form of a computer 802, and the computer 802 may include all (eg, electronic) devices that have computing / processing capabilities. The components of computer 802 can include, but are not limited to, one or more processors or processing units 804, system memory 806, and system bus 808 that couples various system components including processor 804 to system memory 806. Not done.

プロセッサ804は、それを形成する材料またはその中で使用される処理機構によって制限されない。たとえば、プロセッサ804は、半導体および/またはトランジスタ(たとえば、電子集積回路(IC))からなるものとすることができる。その文脈で、プロセッサ実行可能命令は、電子的に実行可能な命令とすることができる。代替案では、プロセッサ804の、したがってコンピュータ802の機構に、量子コンピューティング、光コンピューティング、機械コンピューティング(たとえば、ナノテクノロジを使用する)などを含めることができるが、これに制限はされない。   The processor 804 is not limited by the material that forms it or the processing mechanisms used therein. For example, the processor 804 can comprise a semiconductor and / or a transistor (eg, an electronic integrated circuit (IC)). In that context, the processor-executable instructions can be electronically executable instructions. In the alternative, the mechanisms of processor 804 and thus of computer 802 may include, but are not limited to, quantum computing, optical computing, mechanical computing (eg, using nanotechnology), and the like.

システムバス808は、メモリバスまたはメモリコントローラ、ポイントツーポイント接続、スイッチングファブリック、周辺バス、accelerated graphics port、およびさまざまなバスアーキテクチャのいずれかを使用するプロセッサバスまたはローカルバスを含む多数のタイプの有線または無線のバス構造のいずれかの1つまたは複数を表す。たとえば、そのようなアーキテクチャに、Industry Standard Architecture(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカルバス、メザニンバスとも称するPeripheral Component Interconnects(PCI)バス、これらのある組合せなどを含めることができる。   The system bus 808 can include many types of wired or wired, including a memory bus or memory controller, a point-to-point connection, a switching fabric, a peripheral bus, an accelerated graphics port, and a processor bus or local bus that uses any of a variety of bus architectures. Represents one or more of any wireless bus structures. For example, such architectures include the Industry Standard Architecture (ISA) bus, the Micro Channel Architecture (MCA) bus, the Enhanced ISA (EISA) bus, the Video Electronics Standards Association (VESA) local PC, and the Mezzanine bus. ) Buses, certain combinations of these, and the like.

コンピュータ802に、通常はさまざまなプロセッサアクセス可能媒体が含まれる。そのような媒体は、コンピュータ802または別の(たとえば電子)デバイスによってアクセス可能なすべての使用可能な媒体とすることができ、揮発性および不揮発性の媒体、リムーバブルおよび固定式の媒体、ならびに記憶媒体および伝送媒体の両方を含む。   Computer 802 typically includes a variety of processor accessible media. Such media can be any available media that can be accessed by computer 802 or another (eg, electronic) device, such as volatile and nonvolatile media, removable and non-removable media, and storage media And transmission media.

システムメモリ806に、ランダムアクセスメモリ(RAM)810などの揮発性メモリおよび/または読取専用メモリ(ROM)812などの不揮発性メモリの形のプロセッサアクセス可能記憶媒体が含まれる。スタートアップ中などにコンピュータ802内の要素の間で情報を転送するのを助ける基本ルーチンを含む基本入出力システム(BIOS)814が、通常はROM 812に保管される。RAM 810に、通常は、処理ユニット804によって即座にアクセス可能および/または現在操作されつつあるデータおよび/またはプログラムモジュール/命令が含まれる。   System memory 806 includes processor-accessible storage media in the form of volatile memory, such as random access memory (RAM) 810, and / or non-volatile memory, such as read only memory (ROM) 812. A basic input / output system (BIOS) 814 that contains basic routines that help to transfer information between elements within computer 802, such as during startup, is typically stored in ROM 812. RAM 810 typically contains data and / or program modules / instructions that are immediately accessible and / or currently being manipulated by processing unit 804.

コンピュータ802に、他のリムーバブル/固定式および/または揮発性/不揮発性の記憶媒体を含めることもできる。たとえば、図8に、(通常は)固定式の不揮発性磁気媒体(別々には図示せず)から読み取り、これに書き込むハードディスクドライブまたはディスクドライブアレイ816、(通常は)リムーバブルの不揮発性磁気ディスク820(たとえば、「フロッピディスク」)から読み取り、これに書き込む磁気ディスクドライブ818、およびCD、DVD、または他の光学媒体などの(通常は)リムーバブルの不揮発性光学ディスク824から読み取り、かつ/またはこれに書き込む光学ディスクドライブ822が示されている。ハードディスクドライブ816、磁気ディスクドライブ818、および光学ディスクドライブ822は、それぞれ、1つまたは複数の記憶媒体インターフェース826によってシステムバス808に接続されている。その代わりに、ハードディスクドライブ816、磁気ディスクドライブ818、および光学ディスクドライブ822を、1つまたは複数の他の別々のまたは組み合わされたインターフェース(図示せず)によってシステムバス808に接続することができる。   The computer 802 may also include other removable / non-removable and / or volatile / nonvolatile storage media. For example, FIG. 8 shows a (usually) hard disk drive or disk drive array 816 that reads from and writes to a fixed non-volatile magnetic medium (not shown separately), and (usually) a removable non-volatile magnetic disk 820. Read from and / or write to (usually) a removable non-volatile optical disk 824 such as a magnetic disk drive 818 and a CD, DVD or other optical media (e.g., a "floppy disk") A writing optical disk drive 822 is shown. The hard disk drive 816, magnetic disk drive 818, and optical disk drive 822 are each connected to the system bus 808 by one or more storage media interfaces 826. Alternatively, the hard disk drive 816, magnetic disk drive 818, and optical disk drive 822 can be connected to the system bus 808 by one or more other separate or combined interfaces (not shown).

ディスクドライブおよびそれに関連するプロセッサアクセス可能媒体は、データ構造、プログラムモジュール、および他のデータなどのプロセッサ実行可能命令の不揮発性ストレージをコンピュータ802に提供する。例示的なコンピュータ802には、ハードディスク816、リムーバブル磁気ディスク820、およびリムーバブル光学ディスク824が示されているが、磁気カセットまたは他の磁気記憶デバイス、フラッシュメモリ、コンパクトディスク(CD)、ディジタル多用途ディスク(DVD)、または他の光学ストレージ、RAM、ROM、電気的消去可能プログラマブル読取専用メモリ(EEPROM)などの、他のタイプのプロセッサアクセス可能媒体に、デバイスによってアクセス可能な命令を保管できることを諒解されたい。そのような媒体に、いわゆる特殊目的ICチップまたはハードワイヤドICチップを含めることもできる。言い換えると、例示的なオペレーティング環境800の記憶媒体を実現するのに、どのプロセッサアクセス可能媒体でも利用することができる。   The disk drive and associated processor-accessible medium provide computer 802 with non-volatile storage of processor-executable instructions, such as data structures, program modules, and other data. An exemplary computer 802 shows a hard disk 816, a removable magnetic disk 820, and a removable optical disk 824, but a magnetic cassette or other magnetic storage device, flash memory, compact disk (CD), digital versatile disk. (DVD) or other optical storage, RAM, ROM, other types of processor accessible media such as electrically erasable programmable read only memory (EEPROM) can be understood to store instructions accessible by the device. I want. Such media can also include so-called special purpose IC chips or hardwired IC chips. In other words, any processor-accessible medium can be utilized to implement the storage medium of the exemplary operating environment 800.

任意の個数のプログラムモジュール(または命令/コードの他のユニットもしくはセット)を、ハードディスク816、磁気ディスク820、光学ディスク824、ROM 812、および/またはRAM 810に保管することができる。これらのプログラムモジュールに、一般的な例として、オペレーティングシステム828、1つまたは複数のアプリケーションプログラム830、他のプログラムモジュール832、およびプログラムデータ834を含めることができる。   Any number of program modules (or other units or sets of instructions / code) may be stored on the hard disk 816, magnetic disk 820, optical disk 824, ROM 812, and / or RAM 810. These program modules may include an operating system 828, one or more application programs 830, other program modules 832, and program data 834 as general examples.

ユーザは、キーボード836およびポインティングデバイス838(たとえば、「マウス」)などの入力デバイスを介してコンピュータ802にコマンドおよび/または情報を入力することができる。他の入力デバイス840(具体的には図示せず)に、マイクロホン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、シリアルポート、スキャナ、および/または類似物を含めることができる。これらおよび他の入力デバイスは、システムバス808に結合された入出力インターフェース842を介して処理ユニット804に接続される。しかし、入力デバイスおよび/または出力デバイスを、その代わりに、パラレルポート、ゲームポート、universal serial bus(USB)ポート、赤外線ポート、IEEE 1394(「Firewire」)インターフェース、IEEE 802.11無線インターフェース、Bluetooth(登録商標)インターフェースなどの他のインターフェースおよびバス構造によって接続することができる。   A user can enter commands and / or information into computer 802 via input devices such as a keyboard 836 and a pointing device 838 (eg, a “mouse”). Other input devices 840 (not specifically shown) may include a microphone, joystick, game pad, satellite dish, serial port, scanner, and / or the like. These and other input devices are connected to the processing unit 804 via an input / output interface 842 coupled to the system bus 808. However, input devices and / or output devices may instead be connected to a parallel port, game port, universal serial bus (USB) port, infrared port, IEEE 1394 (“Firewire”) interface, IEEE 802.11 wireless interface, Bluetooth ( It can be connected by other interfaces such as a registered trademark interface and bus structure.

モニタ/ビュースクリーン844または他のタイプのディスプレイデバイスも、ビデオアダプタ846などのインターフェースを介してシステムバス808に接続することができる。ビデオアダプタ846(または別のコンポーネント)に、グラフィックス集中型計算を処理し、要求の厳しいディスプレイ要求を処理するグラフィックスカードを含めても含めなくてもよい。通常、グラフィックスカードに、グラフィックスの迅速な表示およびグラフィックス動作の実行を容易にするために、グラフィックス処理ユニット(GPU)、ビデオRAM(VRAM)などが含まれる。モニタ844の他に、他の出力周辺デバイスに、入出力インターフェース842を介してコンピュータ802に接続することができる、スピーカ(図示せず)およびプリンタ848などのコンポーネントを含めることができる。   A monitor / view screen 844 or other type of display device can also be connected to the system bus 808 via an interface, such as a video adapter 846. Video adapter 846 (or another component) may or may not include a graphics card that handles graphics intensive calculations and handles demanding display requirements. Typically, a graphics card includes a graphics processing unit (GPU), video RAM (VRAM), etc. to facilitate rapid display of graphics and execution of graphics operations. In addition to the monitor 844, other output peripheral devices can include components such as speakers (not shown) and a printer 848 that can be connected to the computer 802 via the input / output interface 842.

コンピュータ802は、リモートコンピューティングデバイス850などの1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク化された環境で動作することができる。たとえば、リモートコンピューティングデバイス850を、パーソナルコンピュータ、ポータブルコンピュータ(たとえば、ラップトップコンピュータ、タブレットコンピュータ、PDA、モバイルステーションなど)、パームサイズまたはポケットサイズのコンピュータ、腕時計、ゲーム機、サーバ、ルータ、ネットワークコンピュータ、ピアデバイス、別のネットワークノード、または上にリストしたもう1つのデバイスタイプなどとすることができる。しかし、リモートコンピューティングデバイス850は、コンピュータ802に関して本明細書で説明した要素および特徴の多くまたはすべてを含めることができるポータブルコンピュータとして図示されている。   Computer 802 can operate in a networked environment using logical connections to one or more remote computers, such as remote computing device 850. For example, the remote computing device 850 can be a personal computer, portable computer (eg, laptop computer, tablet computer, PDA, mobile station, etc.), palm-sized or pocket-sized computer, watch, game console, server, router, network computer. , A peer device, another network node, or another device type listed above. However, remote computing device 850 is illustrated as a portable computer that can include many or all of the elements and features described herein relative to computer 802.

コンピュータ802とリモートコンピュータ850の間の論理接続は、ローカルエリアネットワーク(LAN)852および一般的な広域ネットワーク(WAN)854として図示されている。そのようなネットワーキング環境は、オフィス、会社全体のコンピュータネットワーク、イントラネット、インターネット、固定電話網および携帯電話網、アドホック無線ネットワークおよびインフラストラクチャ無線ネットワーク、他の無線ネットワーク、ゲーミングネットワーク、これらのある組合せなどでありふれたものである。そのようなネットワークおよび通信接続が、伝送媒体の例である。   The logical connections between the computer 802 and the remote computer 850 are illustrated as a local area network (LAN) 852 and a general wide area network (WAN) 854. Such networking environments include offices, company-wide computer networks, intranets, the Internet, landline and mobile phone networks, ad hoc and infrastructure wireless networks, other wireless networks, gaming networks, certain combinations of these, etc. It is commonplace. Such networks and communication connections are examples of transmission media.

LANネットワーキング環境で実装される時に、コンピュータ802は、通常、ネットワークインターフェースまたはネットワークアダプタ856を介してLAN 852に接続される。WANネットワーキング環境で実装される時に、コンピュータ802に、通常、WAN 854を介する通信を確立する、モデム858または他の手段が含まれる。モデム858は、コンピュータ802に内蔵するか外付けとすることができるが、入出力インターフェース842または他の適当な機構を介してシステムバス808に接続することができる。図示のネットワーク接続が、例示的であることと、コンピュータ802と850の間の通信リンクを確立する他の手段を使用できることを諒解されたい。   When implemented in a LAN networking environment, the computer 802 is typically connected to the LAN 852 via a network interface or network adapter 856. When implemented in a WAN networking environment, computer 802 typically includes a modem 858 or other means for establishing communications via WAN 854. The modem 858 can be internal to the computer 802 or external, but can be connected to the system bus 808 via the input / output interface 842 or other suitable mechanism. It should be appreciated that the network connections shown are exemplary and other means of establishing a communications link between computers 802 and 850 can be used.

さらに、特にサーバ用に設計された他のハードウェアを使用することができる。たとえば、SSLアクセラレーションカードを使用して、SSL計算をオフロードすることができる。さらに、特にネットワーク負荷分散オペレーティング環境で、ネットワークインターフェースまたはネットワークアダプタ856上(たとえば、ネットワークインターフェースカード上)のTPCオフロードハードウェアおよび/またはパケットクラシファイヤをサーバデバイスにインストールし、使用することができる。   In addition, other hardware specifically designed for the server can be used. For example, an SSL acceleration card can be used to offload SSL calculations. In addition, TPC offload hardware and / or packet classifiers on a network interface or network adapter 856 (eg, on a network interface card) can be installed and used on a server device, particularly in a network load balancing operating environment.

オペレーティング環境800と共に図示されたものなどのネットワーク化された環境で、コンピュータ802に関して図示されたプログラムモジュールもしくは他の命令またはその一部を、リモート媒体ストレージデバイスに全体的にまたは部分的に保管することができる。たとえば、リモートアプリケーションプログラム860が、リモートコンピュータ850のメモリコンポーネントに常駐するが、コンピュータ802を介して使用可能または他の形でアクセス可能とすることができる。また、例示のために、アプリケーションプログラム830と、オペレーティングシステム828などの他のプロセッサ実行可能命令が、本明細書では別個のブロックとして示されているが、そのようなプログラム、コンポーネント、おおび他の命令が、さまざまな時にコンピューティングデバイス802(および/またはリモートコンピューティングデバイス850)の異なるストレージコンポーネントに常駐し、コンピュータ802(および/またはリモートコンピューティングデバイス850)のプロセッサ804によって実行されることを諒解されたい。   In a networked environment, such as that illustrated with operating environment 800, the program modules or other instructions illustrated for computer 802, or portions thereof, may be stored in whole or in part on a remote media storage device. Can do. For example, the remote application program 860 may reside in a memory component of the remote computer 850, but be usable or otherwise accessible via the computer 802. Also, for illustration purposes, application program 830 and other processor-executable instructions, such as operating system 828, are shown as separate blocks herein, but such programs, components, and other It is understood that the instructions reside at different storage components of computing device 802 (and / or remote computing device 850) at various times and are executed by processor 804 of computer 802 (and / or remote computing device 850). I want to be.

システム、媒体、デバイス、方法、プロシージャ、装置、技法、方式、手法、プロシージャ、配置、および他の実装を、構造的、論理的、アルゴリズム的、および機能的な特徴および/または図に固有の言葉で説明したが、請求項で定義される本発明が、説明された特定の特徴または図面に必ずしも制限されないことを理解されたい。そうではなく、特定の特徴および図面は、請求される発明を実装する例示的な形として開示されたものである。   System, media, device, method, procedure, apparatus, technique, scheme, approach, procedure, arrangement, and other implementation, structural, logical, algorithmic, and functional features and / or diagrams specific terms However, it is to be understood that the invention as defined in the claims is not necessarily limited to the specific features or drawings described. Rather, the specific features and drawings are disclosed as exemplary forms of implementing the claimed invention.

Claims (8)

実行された時に、
セッションメッセージのセッション識別子フィールドからホスト識別子を確認する動作であって、前記ホスト識別子は、ホストのネットワークアドレスを含む動作と、
前記セッションメッセージを含むパケット、前記パケットの宛先フィールドに前記ネットワークアドレスを挿入することによりルーティングする動作と
を実行するように装置に指示するプロセッサ実行可能命令を含むことを特徴とするプロセッサアクセス可能な記録媒体。
When executed
An operation of confirming a host identifier from a session identifier field of a session message, the host identifier including an operation including a network address of the host ;
A processor-accessible instruction for instructing a device to perform the operation of routing the packet containing the session message by inserting the network address in a destination field of the packet. recoding media.
確認する前記動作は、
前記セッションメッセージの前記セッション識別子フィールドから前記ホスト識別子を連続するブロックとして抽出する動作
を含むことを特徴とする請求項1に記載のプロセッサアクセス可能な記録媒体。
The operation to check is
The processor-accessible recording medium according to claim 1, further comprising: an operation of extracting the host identifier as a continuous block from the session identifier field of the session message.
装置であって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサによって実行できるプロセッサ実行可能命令を含む媒体と
を含み、前記プロセッサ実行可能命令は、
ホスト識別子を含むセッション識別子を有するセッションメッセージを受け取る動作であって、前記ホスト識別子は、ホストのネットワークアドレスを含む動作と、
前記セッションメッセージを含むパケット、前記パケットの宛先フィールドに前記ネットワークアドレスを挿入することによりルーティングする動作と
を実行するように前記装置に指示するように適合されている
ことを特徴とする装置。
A device,
At least one processor;
A medium containing processor-executable instructions that can be executed by the at least one processor, the processor-executable instructions comprising:
Receiving a session message having a session identifier including a host identifier , wherein the host identifier includes a network address of the host ;
An apparatus adapted to instruct the apparatus to perform an operation of routing a packet containing the session message by inserting the network address in a destination field of the packet .
受け取る前記動作は、
前記セッション識別子を有する前記セッションメッセージをクライアントから受け取る動作であって、前記セッションメッセージは、ホストに関連するセッションコンテキストに関連し、前記ホストは、前記ホスト識別子に関連する、動作
を含むことを特徴とする請求項に記載の装置。
The action to receive is
Receiving the session message having the session identifier from a client, wherein the session message is associated with a session context associated with a host, and the host is associated with the host identifier. The apparatus according to claim 3 .
前記プロセッサ実行可能命令は、
前記ホスト識別子に関連するホストへの前記ルーティングに基づいて前記セッションメッセージを前記装置から送るさらなる動作
を実行するように前記装置に指示するように適合されていることを特徴とする請求項に記載の装置。
The processor executable instructions are:
4. The apparatus of claim 3 , wherein the apparatus is adapted to instruct the apparatus to perform a further action of sending the session message from the apparatus based on the routing to a host associated with the host identifier. Equipment.
前記プロセッサ実行可能命令は、
受け取られたセッションメッセージは受け取られたセッション識別子を含むかどうかを判定する動作、及び、
前記受け取られたセッションメッセージは受け取られたセッション識別子を含まないと判定された場合に、少なくとも1つのデフォルトルーティングポリシに従って前記受け取られたセッションメッセージをルーティングする動作、
をさらに実行するように前記装置に指示するように適合されていることを特徴とする請求項に記載の装置。
The processor executable instructions are:
An operation of determining whether the received session message includes a received session identifier; and
Routing the received session message according to at least one default routing policy if it is determined that the received session message does not include a received session identifier;
4. The apparatus of claim 3 , wherein the apparatus is adapted to instruct the apparatus to further perform.
セッション識別子フィールドを有するセッションメッセージを受け入れることができるネットワークゲートウェイであって、前記ネットワークゲートウェイは、前記セッション識別子フィールドに投入される値からホスト識別子を抽出するように適合されており、前記ホスト識別子は、ホストのネットワークアドレスを含み、前記ネットワークゲートウェイは、さらに、パケットの宛先フィールドに前記ネットワークアドレスを挿入することにより前記セッションメッセージを含む前記パケットのルーティング動作を実行するように適合されていることを特徴とするネットワークゲートウェイ。 A network gateway capable of accepting a session message having a session identifier field, wherein the network gateway is adapted to extract a host identifier from a value entered in the session identifier field, wherein the host identifier is Including a network address of a host, wherein the network gateway is further adapted to perform a routing operation of the packet including the session message by inserting the network address in a destination field of the packet. Network gateway. 実行された時に、
セッションメッセージのセッション識別子フィールドからホスト識別子を確認する動作であって、前記ホスト識別子は、ホストのネットワークアドレスを含む動作と、
前記セッションメッセージを含むパケット、前記パケットの宛先フィールドに前記ネットワークアドレスを挿入することによりルーティングする動作と
を実行するように装置に指示するプロセッサ実行可能命令を含み、
前記セッション識別子フィールドに投入されるセッション識別子は、前記ホスト識別子を含む第1の部分と、前記セッション識別子の一意性を高める第2の部分を含み、
前記第1の部分は、所与のクラスタのホストにまたがって一意であることを特徴とするプロセッサアクセス可能な記録媒体。
When executed
An operation of confirming a host identifier from a session identifier field of a session message, the host identifier including an operation including a network address of the host ;
A processor-executable instruction for instructing a device to perform the operation of routing the packet containing the session message by inserting the network address in a destination field of the packet ;
The session identifier entered in the session identifier field includes a first portion including the host identifier and a second portion that increases the uniqueness of the session identifier;
The processor-accessible recording medium, wherein the first part is unique across hosts of a given cluster .
JP2009151291A 2003-08-13 2009-06-25 Routing hint Expired - Fee Related JP4828619B2 (en)

Applications Claiming Priority (4)

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

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2005508267A Division JP2007521684A (en) 2003-08-13 2003-08-18 Routing hint

Publications (2)

Publication Number Publication Date
JP2009260988A JP2009260988A (en) 2009-11-05
JP4828619B2 true JP4828619B2 (en) 2011-11-30

Family

ID=34221832

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2005508267A Pending JP2007521684A (en) 2003-08-13 2003-08-18 Routing hint
JP2009151291A Expired - Fee Related JP4828619B2 (en) 2003-08-13 2009-06-25 Routing hint

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2005508267A Pending JP2007521684A (en) 2003-08-13 2003-08-18 Routing hint

Country Status (14)

Country Link
EP (1) EP1654665A4 (en)
JP (2) JP2007521684A (en)
KR (1) KR101026600B1 (en)
AU (1) AU2003263873B2 (en)
BR (1) BR0318416A (en)
CA (1) CA2532185A1 (en)
IL (1) IL173157A (en)
MX (1) MXPA06001530A (en)
MY (1) MY144263A (en)
NO (1) NO20060471L (en)
NZ (1) NZ544663A (en)
RU (1) RU2365046C2 (en)
TW (1) TWI337822B (en)
WO (1) WO2005020085A1 (en)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266294B2 (en) 2003-08-13 2012-09-11 Microsoft Corporation Routing hints
US7882251B2 (en) 2003-08-13 2011-02-01 Microsoft Corporation Routing hints
US7340744B2 (en) * 2005-04-08 2008-03-04 Cisco Technology, Inc. System and method for optimizing sessions and network resources in a loadbalancing environment
KR100825724B1 (en) * 2005-12-08 2008-04-29 한국전자통신연구원 Object-based storage system using PMEM useful for high speed transmission with DMA and method thereof
KR100892609B1 (en) 2007-03-22 2009-04-09 주식회사 올앳 System and method for secure communication, and a medium having computer readable program executing the method
CN101296176B (en) * 2007-04-25 2010-12-22 阿里巴巴集团控股有限公司 Data processing method and apparatus based on cluster
US8447881B2 (en) * 2008-09-02 2013-05-21 Microsoft Corporation Load balancing for services
JP5218323B2 (en) * 2009-08-07 2013-06-26 富士通株式会社 Information processing method and program related to relay device and transfer rule
TWI396089B (en) * 2009-10-16 2013-05-11 Moxa Inc System for using multi-channels to transmit serial data according to arguments and method thereof
PL2501107T3 (en) * 2011-03-15 2014-08-29 Amadeus Sas Method and system for providing a session in a heterogeneous environment
JP2013239045A (en) * 2012-05-15 2013-11-28 Hitachi Ltd Thin client system and remote access method
KR102043658B1 (en) * 2013-08-30 2019-11-12 한국전력공사 Apparatus and method for transferring data only in one direction
CN111385377B (en) * 2020-03-03 2022-08-09 深信服科技股份有限公司 IP address conflict processing method, equipment and storage medium

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05327704A (en) * 1992-05-15 1993-12-10 Oki Electric Ind Co Ltd Broadcast system and message generating device
JPH1051459A (en) * 1996-07-31 1998-02-20 Oki Electric Ind Co Ltd Atm exchange, atm network and multi-cast setting method
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
US6374300B2 (en) 1999-07-15 2002-04-16 F5 Networks, Inc. Method and system for storing load balancing information with an HTTP cookie
JP2001265680A (en) * 2000-03-15 2001-09-28 Fujitsu Ltd Device and method for managing session of plural media
US6947992B1 (en) * 2000-05-01 2005-09-20 International Business Machines Corporation Maintaining HTTP session affinity in a cluster environment
US7193980B2 (en) * 2000-07-06 2007-03-20 Nortel Networks Limited Continuation session attribute
JP2002176432A (en) * 2000-12-05 2002-06-21 Sony Corp Communication relay system, communication relay method, and communication terminal, and program storage medium
JP2002189646A (en) * 2000-12-22 2002-07-05 Matsushita Electric Ind Co Ltd Repeating installation
JP3963690B2 (en) * 2001-03-27 2007-08-22 富士通株式会社 Packet relay processor
JP2002351760A (en) * 2001-05-30 2002-12-06 Mitsubishi Electric Corp Device and method for decentralizing server load, and program making computer implement the same method
US7406524B2 (en) * 2001-07-26 2008-07-29 Avaya Communication Isael Ltd. Secret session supporting load balancer
US7243366B2 (en) 2001-11-15 2007-07-10 General Instrument Corporation Key management protocol and authentication system for secure internet protocol rights management architecture
US7644434B2 (en) * 2002-04-25 2010-01-05 Applied Identity, Inc. Computer security system
US7373423B2 (en) * 2002-09-11 2008-05-13 Trend Micro Incorporated Network infrastructure management and data routing framework and method thereof

Also Published As

Publication number Publication date
KR20060070529A (en) 2006-06-23
IL173157A (en) 2011-10-31
AU2003263873A1 (en) 2005-03-10
JP2007521684A (en) 2007-08-02
TWI337822B (en) 2011-02-21
BR0318416A (en) 2006-08-01
KR101026600B1 (en) 2011-04-04
NO20060471L (en) 2006-03-16
WO2005020085A1 (en) 2005-03-03
TW200507548A (en) 2005-02-16
EP1654665A1 (en) 2006-05-10
IL173157A0 (en) 2006-06-11
MY144263A (en) 2011-08-29
MXPA06001530A (en) 2006-05-15
EP1654665A4 (en) 2010-06-30
AU2003263873B2 (en) 2010-04-08
NZ544663A (en) 2008-09-26
RU2006104109A (en) 2006-07-27
JP2009260988A (en) 2009-11-05
RU2365046C2 (en) 2009-08-20
CA2532185A1 (en) 2005-03-03

Similar Documents

Publication Publication Date Title
JP4828619B2 (en) Routing hint
US7882251B2 (en) Routing hints
US8266294B2 (en) Routing hints
US8897299B2 (en) Method and systems for routing packets from a gateway to an endpoint
US8244881B2 (en) Service virtualization over content-centric networks
KR20050002608A (en) Network load balancing with connection manipulation
JP4429059B2 (en) Communication control method and program, communication control system, and communication control related apparatus
US10412122B1 (en) Dynamic per-session NAT-behavior selection
US11818104B2 (en) Anonymous proxying
US20230412690A1 (en) Non-translated port oversubscribing for a proxy device

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110308

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110608

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110701

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110909

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110914

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140922

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees