JP2004274142A - ルーチング方法及びルーチング装置並びにプログラム及び記録媒体 - Google Patents
ルーチング方法及びルーチング装置並びにプログラム及び記録媒体 Download PDFInfo
- Publication number
- JP2004274142A JP2004274142A JP2003058530A JP2003058530A JP2004274142A JP 2004274142 A JP2004274142 A JP 2004274142A JP 2003058530 A JP2003058530 A JP 2003058530A JP 2003058530 A JP2003058530 A JP 2003058530A JP 2004274142 A JP2004274142 A JP 2004274142A
- Authority
- JP
- Japan
- Prior art keywords
- proxy
- route
- information
- advertisement
- cost
- 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.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【解決手段】通信を行う複数のアプリケーション間で送受信されるデータを複数のプロキシを含むネットワークを経由して転送する通信システムが前記データの転送経路を制御するためのルーチング方法において、各プロキシでは、宛先の識別子と隣接プロキシの識別子とコスト情報を含む経路情報を作成して広告として配信し、経路広告を受信したプロキシはコストの再評価を行ってから経路情報を保存し他のプロキシに経路広告を送信し、各プロキシは経路選択の際にルーチングテーブルのコスト情報を反映する。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、ノードを構成する各通信装置にアプリケーションプログラム及び通信を中継するプロキシの少なくとも一方が設けられ、アプリケーションプログラムを備える複数のノードが複数のプロキシ及び所定のネットワークを介して互いに接続される通信システムにおいて、プロキシが配置された各ノードの制御に用いられるルーチング方法及びルーチング装置並びにプログラム及び記録媒体に関する。
【0002】
【従来の技術】
例えばTCP(Transmission Control Protocol)のようにトランスポート層よりも下位に分類されるネットワークの通信制御系においては、セッションを構成するエンド−エンドの端末,端末のインタフェース及びアプリケーション(プログラム)がセッションの構築時に固定される。
【0003】
このため、利用者が第1のアプリケーションを用いて特定の通信相手と通信を行っている状態から、第1のアプリケーションの利用をやめて第2のアプリケーションで前記通信相手と通信を行おうとする場合には、通信を一旦中断し、セッションを再構築してから第2のアプリケーションで通信を再開する必要がある。
しかしながら、実際には通信が切断されてしまうので、第2のアプリケーションで同じ通信相手と通信する場合であっても、通信手続きを最初からやり直す必要がある。
【0004】
つまり、通信サービスの対象となるアプリケーションを通信の途中で他のアプリケーションに切り替えることはできない。
非特許文献1には、プロキシ間の経路を変化させた場合に、サービスを継続させるための機能が開示されている。
【0005】
しかしながら、どのような経路を経由して通信するかを指定するためには、各プロキシに設けられる設定ファイルに予め記述しておくか、あるいはユーザからのコマンド入力によって指定する必要があった。経路の指定は、例えば通信経路上で特定のプロキシと他の特定のプロキシとを接続することや、通信に用いるインタフェースを切り替えることを意味する。
【0006】
従って、適切な経路を指定するためには、ネットワーク上に存在する各プロキシやそれらが利用可能なインタフェースを把握したうえで、各プロキシの資源(リソース)を有効に利用しかつ遅延の少ない通信をするためにはどのように経路を指定すればよいかを判断する必要があるので、経路を指定するユーザの負担は大きい。
【0007】
本出願人が既に出願した技術(特許文献1)においては、宛先のプロキシとその宛先プロキシへ到達するための次ホップのプロキシとの対応関係をプロキシルーチングテーブルとして保持しているので、このプロキシルーチングテーブルを用いて宛先のプロキシとのセッションを確立することが可能である。
また、この技術ではアプリケーション間で通信中に経路上のプロキシを変更したり、アプリケーションそのものを変更することが可能であり、しかもこれらの変更の際に、通信において行われているサービスを中断する必要がなく、連続的にサービスを提供することができる。
【特許文献1】
特願2002−36024(出願時には未公知)
【非特許文献1】
高杉耕一,中村元紀,田中聡,久保田稔:動的なネットワーク環境上でユーザに追従するシームレスサービスプラットフォーム,DICOMO 2002,pp.297−300,情報処理学会,2002。
【0008】
【発明が解決しようとする課題】
しかしながら、特許文献1のプロキシルーチングテーブルを用いる場合であっても、複数のエンドプロキシが候補にある場合や次ホップの隣接プロキシが複数ある場合には、どのプロキシに接続するのがより適しているのか判断できない。
また、あるプロキシを通信の中継に加えるように経路を変更したい場合や、あるインタフェースを優先的に利用したい場合、あるいはそのような要求が発生した場合であっても、特定のプロキシやインタフェースを優先的に利用するように指定することはできない。
【0009】
従って、エンドプロキシ間のセッションの確立が可能な場合であっても、そのセッションはユーザやネットワーク上のプロキシが意図する経路と同じである可能性が非常に低い。
本発明は、通信経路の候補が複数種類存在する場合であっても、適切な経路を自動的に選択して通信することが可能なルーチング方法及びルーチング装置並びにプログラム及び記録媒体を提供することを目的とする。
【0010】
【課題を解決するための手段】
請求項1は、通信を行う複数のアプリケーション間で送受信されるデータを、複数のプロキシを含むネットワークを経由して転送する通信システムが前記データの転送経路を制御するためのルーチング方法において、各プロキシでは、少なくとも宛先のプロキシを表す第1のプロキシ識別子と、隣接するプロキシを表す第2のプロキシ識別子と、コスト情報とを含む経路情報を作成するとともに、前記第1のプロキシ識別子及び第2のプロキシ識別子には自プロキシに隣接するプロキシのプロキシ識別子を割り当て、前記コスト情報には自プロキシが隣接するプロキシにアプリケーションデータを転送する際にかかるコストを反映した情報を割り当てて、作成された経路情報を広告として他のプロキシに送信し、各プロキシでは、他のプロキシから送信された経路情報の広告を受信した場合に、受信した経路情報の広告に含まれるコスト情報に基づいて、自プロキシにおけるコストの再評価を行い、経路情報の第2のプロキシ識別子には広告の送信元のプロキシのプロキシ識別子を割り当て、経路情報のコスト情報には再評価の結果を割り当て、作成された経路情報を広告として他のプロキシに送信するとともに、経路情報をルーチングテーブルに保存し、各プロキシは、経路選択の際に前記ルーチングテーブルのコスト情報を反映することを特徴とする。
【0011】
請求項1においては、コスト情報を含む経路情報を広告としてプロキシ間でやりとりするので、通信のための経路を確保しようとする場合に、複数種類を経路を選択できる場合には、各プロキシは各々の経路のコストを把握することができ、よりコストの小さい経路を自動的に選択し効率的な通信を実現できる。
コストは、通信にかかる負担の大きさを表し、例えば各プロキシにおけるハードウェアなどの資源(リソース)の消費量や実際の通信回線の利用にかかる費用などに相当する。
【0012】
実際には、アプリケーションに接続しているプロキシ、すなわちエンドプロキシは、プロキシ間の隣接関係をたどることにより、他のエンドプロキシと接続し、エンドプロキシ間の接続関係を示すセッションを構成することができる。これにより、エンドプロキシ間は互いに隣接関係にある複数のプロキシの連鎖的なつながりにより経路として結ばれるので、この経路に沿ってアプリケーションのデータはエンドプロキシ間を行きかうことになる。
【0013】
また、必要に応じて各プロキシにおけるコスト値に変更を加えれば、セッションとして構築される通信経路を切り替えることもできる。
請求項2は、通信を行う複数のアプリケーション間で送受信されるデータを、複数のプロキシを含むネットワークを経由して転送する通信システムが前記データの転送経路を制御するためのルーチング方法において、各プロキシでは、少なくとも宛先のプロキシを表す第1のプロキシ識別子と、隣接するプロキシを表す第2のプロキシ識別子と、コスト情報とを含む経路情報を作成するとともに、前記第1のプロキシ識別子及び第2のプロキシ識別子には自プロキシに隣接するプロキシのプロキシ識別子を割り当て、前記コスト情報には自プロキシが隣接するプロキシにアプリケーションデータを転送する際にかかるコストを反映した情報を割り当てて、作成された経路情報を広告として他のプロキシに送信し、他のプロキシから送信された経路情報の広告を受信したプロキシでは、受信した経路情報の広告に含まれるコスト情報に基づいて、自プロキシにおけるコストの再評価を行い、経路情報の第2のプロキシ識別子には広告の送信元のプロキシのプロキシ識別子を割り当て、経路情報のコスト情報には再評価の結果を割り当て、作成された経路情報を広告として他のプロキシに送信するとともに、経路情報をルーチングテーブルに保存し、アプリケーションと接続しているプロキシでは、宛先のプロキシが決定した場合に、前記ルーチングテーブルに基づいて宛先のプロキシまでの経路を探索するとともに、ルーチングテーブルのコスト情報に基づいて最もコストの小さい経路を自動的に選択することを特徴とする。
【0014】
請求項2においては、請求項1と同様に、コスト情報を含む経路情報を広告としてプロキシ間でやりとりするので、通信のための経路を確保しようとする場合に、複数種類を経路を選択できる場合には、各プロキシは各々の経路のコストを把握することができ、よりコストの小さい経路を自動的に選択し効率的な通信を実現できる。
【0015】
請求項3は、請求項1又は請求項2のルーチング方法において、プロキシが広告する前記経路情報に、プロキシが利用する下位のトランスポートネットワークのインタフェース情報を含め、経路情報の広告を受信したプロキシは、インタフェースの違いをコストの再評価に反映することを特徴とする。
請求項3においては、利用するインタフェース毎に独立したコスト値を割り当てることができるので、最適なインタフェースを通る経路を選択できる。
【0016】
トランスポートネットワークのインタフェース情報とは、例えばTCP/IPにおけるIPアドレス及びポート番号に相当し、HTTPにおけるURLに相当する。
請求項4は、請求項1又は請求項2のルーチング方法において、プロキシが広告する前記経路情報に、経由する各プロキシを表す通過プロキシ識別情報を含め、経路情報の広告を受信したプロキシは、経由するプロキシの違いをコストの再評価に反映することを特徴とする。
【0017】
請求項4においては、プロキシは受信した経路情報の広告に基づいてそれが通過したプロキシを認識できる。
請求項5は、請求項2のルーチング方法において、宛先のアプリケーションと接続されたプロキシを表す接続先エンドプロキシが複数存在する場合には、セッションを構築する接続元のプロキシは、複数の接続先エンドプロキシの識別子に基づいて前記ルーチングテーブルを検索し、複数の接続先エンドプロキシの中で最もコストの小さい接続先エンドプロキシを通る経路を選択し、前記ルーチングテーブルの変更を検出した場合、もしくはアプリケーションと接続されたプロキシが切り替わったことを検出した場合には、接続元のアプリケーションと接続されたプロキシは前記ルーチングテーブルに基づいて経路の選択をやり直すことを特徴とする。
【0018】
請求項5においては、複数の接続先エンドプロキシが存在する場合に、最適な接続先エンドプロキシと接続するように経路を選択することができる。また、各プロキシのコスト値やプロキシ間の隣接関係が変化したような場合には、ルーチングテーブルが変化するので、経路の選択をやり直すことができる。
請求項6は、請求項1又は請求項2のルーチング方法において、各プロキシは、経路を特定する情報のうち、優先的な割り当てを必要とする要素を表す優先度情報を広告として他のプロキシに送信し、各プロキシが経路を選択する際に、広告として受信した優先度情報が存在する場合には、前記優先度情報によって優先指定された要素を、前記コストよりも優先的に評価し経路を決定することを特徴とする。
【0019】
請求項6においては、例えばユーザの意志や要求、サービス固有の要求を反映した優先度情報を広告することができるので、コスト的に不利な経路であってもユーザの指示に従って優先的に選択することができる。
【0020】
請求項7は、通信を行う複数のアプリケーション間で送受信されるデータを、複数のプロキシを含むネットワークを経由して転送する通信システムが前記データの転送経路を制御するために用いるルーチング装置において、各プロキシが、少なくとも宛先のプロキシを表す第1のプロキシ識別子と、隣接するプロキシを表す第2のプロキシ識別子と、コスト情報とを含む経路情報を作成するとともに、前記第1のプロキシ識別子及び第2のプロキシ識別子には自プロキシに隣接するプロキシのプロキシ識別子を割り当て、前記コスト情報には自プロキシが隣接するプロキシにアプリケーションデータを転送する際にかかるコストを反映した情報を割り当てて、作成された経路情報を広告として他のプロキシに送信する経路広告送信手段と、各プロキシが、他のプロキシから送信された経路情報の広告を受信した場合に、受信した経路情報の広告に含まれるコスト情報に基づいて、自プロキシにおけるコストの再評価を行い、経路情報の第2のプロキシ識別子には広告の送信元のプロキシのプロキシ識別子を割り当て、経路情報のコスト情報には再評価の結果を割り当て、作成された経路情報を広告として他のプロキシに送信するとともに、経路情報をルーチングテーブルに保存する経路広告受信手段と、各プロキシが、経路を選択する際に前記ルーチングテーブルのコスト情報を反映する経路選択手段とを設けたことを特徴とする。
【0021】
請求項7のルーチング装置を用いることにより、請求項1と同様の結果が得られる。
請求項8は、通信を行う複数のアプリケーション間で送受信されるデータを、複数のプロキシを含むネットワークを経由して転送する通信システムが前記データの転送経路を制御するために用いるルーチング装置において、各プロキシが、少なくとも宛先のプロキシを表す第1のプロキシ識別子と、隣接するプロキシを表す第2のプロキシ識別子と、コスト情報とを含む経路情報を作成するとともに、前記第1のプロキシ識別子及び第2のプロキシ識別子には自プロキシに隣接するプロキシのプロキシ識別子を割り当て、前記コスト情報には自プロキシが隣接するプロキシにアプリケーションデータを転送する際にかかるコストを反映した情報を割り当てて、作成された経路情報を広告として他のプロキシに送信する経路広告送信手段と、他のプロキシから送信された経路情報の広告を受信したプロキシが、受信した経路情報の広告に含まれるコスト情報に基づいて、自プロキシにおけるコストの再評価を行い、経路情報の第2のプロキシ識別子には広告の送信元のプロキシのプロキシ識別子を割り当て、経路情報のコスト情報には再評価の結果を割り当て、作成された経路情報を広告として他のプロキシに送信するとともに、経路情報をルーチングテーブルに保存する経路広告受信手段と、アプリケーションと接続しているプロキシが、宛先のプロキシが決定した場合に、前記ルーチングテーブルに基づいて宛先のプロキシまでの経路を探索するとともに、ルーチングテーブルのコスト情報に基づいて最もコストの小さい経路を自動的に選択する経路選択手段とを設けたことを特徴とする。
【0022】
請求項8のルーチング装置を用いることにより、請求項2と同様の結果が得られる。
請求項9は、請求項7又は請求項8のルーチング装置において、プロキシが広告する前記経路情報に、プロキシが利用する下位のトランスポートネットワークのインタフェース情報を含め、経路情報の広告を受信したプロキシは、インタフェースの違いをコストの再評価に反映することを特徴とする。
【0023】
請求項9のルーチング装置を用いることにより、請求項3と同様の結果が得られる。
請求項10は、請求項7又は請求項8のルーチング装置において、プロキシが広告する前記経路情報に、経由する各プロキシを表す通過プロキシ識別情報を含め、経路情報の広告を受信したプロキシは、経由するプロキシの違いをコストの再評価に反映することを特徴とする。
【0024】
請求項10のルーチング装置を用いることにより、請求項4と同様の結果が得られる。
請求項11は、請求項8のルーチング装置において、宛先のアプリケーションと接続されたプロキシを表す接続先エンドプロキシが複数存在する場合には、セッションを構築する接続元のプロキシは、複数の接続先エンドプロキシの識別子に基づいて前記ルーチングテーブルを検索し、複数の接続先エンドプロキシの中で最もコストの小さい接続先エンドプロキシを通る経路を選択し、前記ルーチングテーブルの変更を検出した場合、もしくはアプリケーションと接続されたプロキシが切り替わったことを検出した場合には、接続元のアプリケーションと接続されたプロキシは前記ルーチングテーブルに基づいて経路の選択をやり直すことを特徴とする。
【0025】
請求項11のルーチング装置を用いることにより、請求項5と同様の結果が得られる。
請求項12は、請求項7又は請求項8のルーチング装置において、各プロキシは、経路を特定する情報のうち、優先的な割り当てを必要とする要素を表す優先度情報を広告として他のプロキシに送信し、各プロキシが経路を選択する際に、広告として受信した優先度情報が存在する場合には、前記優先度情報によって優先指定された要素を、前記コストよりも優先的に評価し経路を決定することを特徴とする。
【0026】
請求項12のルーチング装置を用いることにより、請求項6と同様の結果が得られる。
請求項13は、通信を行う複数のアプリケーション間で送受信されるデータを、複数のプロキシを含むネットワークを経由して転送する通信システム上で前記データの転送経路を制御する各プロキシのコンピュータが実行可能なプログラムであって、各プロキシが、少なくとも宛先のプロキシを表す第1のプロキシ識別子と、隣接するプロキシを表す第2のプロキシ識別子と、コスト情報とを含む経路情報を作成するとともに、前記第1のプロキシ識別子及び第2のプロキシ識別子には自プロキシに隣接するプロキシのプロキシ識別子を割り当て、前記コスト情報には自プロキシが隣接するプロキシにアプリケーションデータを転送する際にかかるコストを反映した情報を割り当てて、作成された経路情報を広告として他のプロキシに送信する経路広告送信手順と、各プロキシが、他のプロキシから送信された経路情報の広告を受信した場合に、受信した経路情報の広告に含まれるコスト情報に基づいて、自プロキシにおけるコストの再評価を行い、経路情報の第2のプロキシ識別子には広告の送信元のプロキシのプロキシ識別子を割り当て、経路情報のコスト情報には再評価の結果を割り当て、作成された経路情報を広告として他のプロキシに送信するとともに、経路情報をルーチングテーブルに保存する経路広告受信手順と、各プロキシが、経路を選択する際に前記ルーチングテーブルのコスト情報を反映する経路選択手順とを設けたことを特徴とする。
【0027】
請求項13のプログラムを各プロキシのコンピュータで実行することにより、請求項1と同様の結果が得られる。
請求項14は、通信を行う複数のアプリケーション間で送受信されるデータを、複数のプロキシを含むネットワークを経由して転送する通信システム上で前記データの転送経路を制御する各プロキシのコンピュータが実行可能なプログラムであって、各プロキシが、少なくとも宛先のプロキシを表す第1のプロキシ識別子と、隣接するプロキシを表す第2のプロキシ識別子と、コスト情報とを含む経路情報を作成するとともに、前記第1のプロキシ識別子及び第2のプロキシ識別子には自プロキシに隣接するプロキシのプロキシ識別子を割り当て、前記コスト情報には自プロキシが隣接するプロキシにアプリケーションデータを転送する際にかかるコストを反映した情報を割り当てて、作成された経路情報を広告として他のプロキシに送信する経路広告送信手順と、各プロキシが、他のプロキシから送信された経路情報の広告を受信した場合に、受信した経路情報の広告に含まれるコスト情報に基づいて、自プロキシにおけるコストの再評価を行い、経路情報の第2のプロキシ識別子には広告の送信元のプロキシのプロキシ識別子を割り当て、経路情報のコスト情報には再評価の結果を割り当て、作成された経路情報を広告として他のプロキシに送信するとともに、経路情報をルーチングテーブルに保存する経路広告受信手順と、アプリケーションと接続しているプロキシが、宛先のプロキシが決定した場合に、前記ルーチングテーブルに基づいて宛先のプロキシまでの経路を探索するとともに、ルーチングテーブルのコスト情報に基づいて最もコストの小さい経路を自動的に選択する経路選択手順とを設けたことを特徴とする。
【0028】
請求項14のプログラムを各プロキシのコンピュータで実行することにより、請求項2と同様の結果が得られる。
請求項15は、請求項13のプログラムにおいて、前記経路広告送信手順では、プロキシが広告する前記経路情報に、プロキシが利用する下位のトランスポートネットワークのインタフェース情報を含め、前記経路選択手順では、経路情報の広告を受信した場合に、インタフェースの違いをコストの再評価に反映することを特徴とする。
【0029】
請求項15のプログラムを各プロキシのコンピュータで実行することにより、請求項3と同様の結果が得られる。
請求項16は、請求項13のプログラムにおいて、前記経路広告送信手順では、プロキシが広告する前記経路情報に、経由する各プロキシを表す通過プロキシ識別情報を含め、前記経路選択手順では、経路情報の広告を受信した場合に、経由するプロキシの違いをコストの再評価に反映することを特徴とする。
【0030】
請求項16のプログラムを各プロキシのコンピュータで実行することにより、請求項4と同様の結果が得られる。
請求項17は、請求項13のプログラムにおいて、前記経路選択手順では、宛先のアプリケーションと接続されたプロキシを表す接続先エンドプロキシが複数存在する場合には、セッションを構築する接続元のプロキシが複数の接続先エンドプロキシの識別子に基づいて前記ルーチングテーブルを検索し、複数の接続先エンドプロキシの中で最もコストの小さい接続先エンドプロキシを通る経路を選択し、前記ルーチングテーブルの変更を検出した場合、もしくはアプリケーションと接続されたプロキシが切り替わったことを検出した場合には、接続元のアプリケーションと接続されたプロキシは前記ルーチングテーブルに基づいて経路の選択をやり直すことを特徴とする。
【0031】
請求項17のプログラムを各プロキシのコンピュータで実行することにより、請求項5と同様の結果が得られる。
請求項18は、請求項13のプログラムにおいて、各プロキシが経路を特定する情報のうち、優先的な割り当てを必要とする要素を表す優先度情報を広告として他のプロキシに送信する優先度広告送信手順を設け、前記経路選択手順では、広告として受信した優先度情報が存在する場合には、前記優先度情報によって優先指定された要素を、前記コストよりも優先的に評価し経路を決定することを特徴とする。
【0032】
請求項18のプログラムを各プロキシのコンピュータで実行することにより、請求項6と同様の結果が得られる。
請求項19は、請求項13,請求項14,請求項15,請求項16,請求項17及び請求項18の何れかのプログラムを記録したコンピュータで読み取り可能な記録媒体である。
【0033】
請求項19の記録媒体から読み出したプログラムを各プロキシのコンピュータで実行することにより、請求項1〜請求項6と同様の結果が得られる。
【0034】
【発明の実施の形態】
本発明の1つの実施の形態について図1〜図23を参照して説明する。この形態は全ての請求項に相当する。
【0035】
図1は接続元のエンドプロキシの経路選択動作を示すフローチャートである。図2は広告の配信動作例を示すシーケンス図である。図3は経路情報の作成の処理を示すフローチャートである。図4は経路広告の受信処理を示すフローチャートである。図5はプロキシの構成を示すブロック図である。
図6はセッション構築例を示すブロック図である。図7はインタフェースの例を示すブロック図である。図8は動的な隣接関係構築の動作を示すシーケンス図である。図9は静的な隣接関係構築の動作を示すシーケンス図である。図10はインタフェース情報広告フォーマットを示す模式図である。
【0036】
図11はエンドプロキシ間の経路の例を示すブロック図である。図12は経路情報広告フォーマットを示す模式図である。図13はコスト値変更処理を示すブロック図である。図14はシステムの構成例を示すブロック図である。図15はルーチングテーブルの構成例を示す模式図である。図16はコスト増減の結果を表すルーチングテーブルの模式図である。
【0037】
図17はコスト増減テーブルの構成例を示す模式図である。図18は優先度要素の定義を示す模式図である。図19は優先度の指定例を示す模式図である。図20は経路の評価例(1)を示す模式図である。図21は経路の評価例(2)を示す模式図である。図22はコマンドの一覧(1)を示す模式図である。図23はコマンドの一覧(2)を示す模式図である。
【0038】
この形態では、請求項7及び請求項8の経路広告送信手段及び経路広告受信手段はそれぞれステップS21及びS23に対応し、請求項7の経路選択手段及び請求項8の経路選択手段はS14〜S18に対応する。
(1)プロキシ及びアプリケーションの定義:
プロキシは、通信の中継を行うためのノード(通信装置)上に存在する機能であり、一般的にはコンピュータ上のプログラムで実現される。各プロキシは、それに予め割り当てられたプロキシID(識別子)によって一意に識別される。
【0039】
アプリケーションは通信の両端にそれぞれ接続されるプログラムであり、サービスを行ったりサービスを享受するために用いられる。アプリケーションには、表示や操作といったユーザインタフェースが含まれる。
アプリケーション間でやりとりされるデータ、すなわちアプリケーションデータは、複数のプロキシによって中継される。プロキシの中で、特にアプリケーションと直接接続しているものをエンドプロキシと呼ぶ。
【0040】
アプリケーションが通信確立を要求すると、この要求をエンドプロキシが受け取る。エンドプロキシは、受け取った通信確立の要求をエンドプロキシ間のセッション確立要求に置き換える。
アプリケーションからの通信確立の要求を受け、セッション確立を開始するエンドプロキシを接続元エンドプロキシと呼ぶ。また、接続元エンドプロキシとセッションを確立し、別のアプリケーションに接続するエンドプロキシを接続先エンドプロキシと呼ぶ。
【0041】
セッションは、例えば図6の例に示されるように、アプリケーション及びプロキシのつながりの全体を意味する。同一のセッションにおいては、アプリケーション間である完結した通信のやり取りがされる。
例えば、1つのクライアントアプリケーションがサーバアプリケーションから1つの動画ファイルをダウンロードして動画を再生する場合に形成される通信経路を1つのセッションとすることができる。
【0042】
このように、通信のやり取りの単位であるセッションは、アプリケーションのコンテキストやアプリケーションプロトコルの完結性に依存し、プロキシではセッションの開始と終了を検知して処理するのみである。
つまり、プロキシはセッションの開始を検知したら経路を構築し、セッションが終了したら経路を解放する。同一のセッションを構成するアプリケーション及びプロキシは適宜変更できる。このような経路の変更は、ユーザの指定や各プロキシにおける経路管理によって行われる。
【0043】
各プロキシは、各セッションをそれらに割り当てたセッションIDによって識別する。セッションIDは各プロキシ内で一意性を保っていれば十分であり、同一セッションでも異なるプロキシ上では異なるセッションIDを割り当てても構わない。
【0044】
プロキシは、自プロキシで管理されているセッションと同一のセッションが他のプロキシでどのようなセッションIDとして管理されているかを、セッション構築時やプロキシの追加時に情報交換によって知ることができるので、この情報を保持しておくことにより、プロキシ間のセッションIDの対応関係を把握できる。
【0045】
エンドプロキシ間は直接接続されるか、又は1つ以上のプロキシ(中継プロキシ)によって結ばれる。このような一方のエンドプロキシ,中継プロキシ,他方のエンドプロキシのつながりを経路と呼ぶ。
なお、エンドプロキシ,接続元エンドプロキシ,接続先エンドプロキシ,中継プロキシのそれぞれは、ある時点の1つのセッションに注目した場合の各プロキシの役割を表しているにすぎない。例えば、あるセッションにおける中継プロキシは、別のセッションにおけるエンドプロキシに割り当てられる場合もある。
【0046】
(2)プロキシの構成:
本発明で用いる各プロキシは、図5のように構成され、プロキシ制御部11,キャッシュ管理部12,キャッシュメモリ13,セッション管理部14,コネクション管理部15,経路管理部16,サービス管理部17サービス情報保持部18及びテーブル保持部20を備えている。また、テーブル保持部20にはルーチングテーブル21,優先度情報テーブル22及び隣接管理テーブル23が備わっている。
【0047】
通信データはキャッシュメモリ13に蓄えられ、他のプロキシ又はアプリケーションに転送される。
コネクション管理部15は、接続先のサービス情報を見つけ、その接続先のサービスに接続している接続先エンドプロキシまでの経路をルーチングテーブル21を参照して発見し、接続元エンドプロキシと接続先エンドプロキシとの間のコネクションを管理する。
【0048】
セッション管理部14は、ネットワークが動的に変化した場合や、ユーザから変更の指示があった場合に、コネクション管理部15に経路の再構築をさせ、セッションを維持する。
プロキシ制御部11は、ユーザから入力されるコマンド又は他のプログラムから入力されるコマンドに応じて各機能ブロックに対して指示を出し各コマンドを実行する。プロキシ制御部11の実行可能なコマンドの一覧が図22,図23に示されている。
【0049】
このような構成のプロキシを用いることにより、ユーザがあるサービスを享受しているときに、自分の周辺にある複数の通信装置(ノード)の中から特定の通信装置を選択的に指定して、その通信装置からサービスの経路を再構築させることができる。つまり、サービスを受ける通信装置を切り替える場合でもサービスを連続的に享受することができる。
【0050】
例えば、ユーザが屋外から屋内に移動したような場合には、通信装置を携帯端末から屋内に設置された大型の固定端末に切り替えたいという状況が発生するし、ユーザが屋内から屋外に移動しようとする時には、屋外で利用できない固定端末から携帯端末に切り替えたいという状況が発生する。このような状況に対しては、プロキシの制御により要求を実現できる。
【0051】
(3)サービス及びサービス広告:
プロキシのサービス管理部17はサービス広告の処理を行う。サービスとはサーバアプリケーションとしての一機能を提供することを意味する。例えば、ストリーミングサービスでは、ストリーミングデータを送信することで1サービスが完了する。
【0052】
サービス管理部17は、プロキシに接続しているアプリケーションにより提供できるサービスにサービスIDを割り当て、その全てをサービステーブルに登録し、そのテーブルをサービス情報保持部18に保持する。
【0053】
また、サービステーブルの情報は、そのサービスを行っているプロキシのプロキシIDとともに、サービス管理部17の制御によりサービス広告としてネットワーク上に広告される。
接続元エンドプロキシは、アプリケーションが要求したサービスを受けるために、必要な情報(接続先エンドプロキシのプロキシID)をネットワーク上に広告されたサービス広告を発見することにより得る。
【0054】
このような広告や発見に関する基本的な技術は、P2P(Peer to peer)アーキテクチャとして知られており、既存のソフトウェアJxta(http://www.jxta.org)を用いて実現することができる。
サービスIDの具体例を示す。例えば、端末hogeがサービスの主な発生元であり、h.mpgがサービスの種類であり、サービス提供のプロトコルがHTTPの場合には、(http://hoge/h.mpg)のサービスIDを割り当てることが考えられる。
【0055】
次に経路を構築するための動作について説明する。
(4)プロキシの経路管理部16が扱うインタフェース:
ここでは、インタフェースはプロキシ間の通信に用いるトランスポート層以下のデータの送受信ポートを意味する。
例えば、TCP/IP(Transmission Control Protocol/Internet Protocol)ではIPアドレスとポート番号、HTTP(Hyper Text Transfer Protocol)ではURL(Uniform Resource Locator)がインタフェースを表す。
【0056】
隣接プロキシからは、自ノードの持つインタフェース宛にデータが送信される。プロキシは、インタフェースを統一的に扱うために、インタフェースをURI形式で表現する。
同一ノードに複数のネットワークインタフェースが存在したり、ネットワークインタフェースのアドレスそのものも変化したりする可能性もあるので、プロキシとインタフェースの関係は1対多でかつ動的に変化が起こる可能性がある。
【0057】
図7に示す例について説明する。プロキシ(A)とプロキシ(B)とは隣接関係にあり、プロキシ(A)は2つ、プロキシ(B)は3つのインタフェースを持っている。プロキシ(A)のインタフェースは、URI表現で(http://hogehoge.com:903)と(tcp://hogehoge2.com:245)という識別子で表現される。これらの識別子をインタフェースIDと呼ぶ。
【0058】
(5)プロキシの経路管理部16が扱う隣接関係:
通信ネットワーク上で互いに隣接した状態で接続されている複数のプロキシは隣接関係にあり、あるプロキシからみて隣接関係にあるプロキシを隣接プロキシと呼ぶ。
例えば、図6においてプロキシ(A)とプロキシ(B)とは隣接関係にある。隣接関係にあるプロキシ間では、経路情報をやりとりする。また、エンドプロキシ間の中継は隣接関係にあるプロキシのつながりで行われる。
【0059】
隣接関係には動的なものと静的なものとがある。動的な隣接プロキシは、ブロードキャストやマルチキャストを用いてインタフェース情報を交換し、これにより自律的に隣接関係の構築及び削除が実行される。この場合には、例えば図8に示すようなシーケンスが実行される。
静的な隣接関係については、予め定めた設定ファイルの内容や、ユーザからのコマンド入力に従って、静的に構築及び削除される。この場合には、例えば図9に示すようなシーケンスが実行される。
【0060】
このような隣接関係は、各プロキシ上の隣接管理テーブル23に記録される。隣接管理テーブル23に記録される情報には、隣接プロキシID,動的/静的の区別,隣接関係の状態(アクティブ/非アクティブ)が含まれている。
この隣接関係については、各プロキシの経路管理部16の制御により、例えば一定の周期でプロキシ間でインタフェース情報の交換を行い、隣接関係が維持されているかどうかを確認する。
【0061】
隣接関係が維持されなくなった場合には、動的な隣接関係の場合なら隣接管理テーブル23から削除され、静的な隣接関係の場合には非アクティブ状態に遷移する。非アクティブな状態とは、隣接管理テーブル23に隣接関係に関する情報は保持しているが、現時点では隣接関係にない状態を表す。
(6)プロキシの経路管理部16が扱う経路情報:
経路情報は、各プロキシのルーチングテーブル21に記録される。経路情報として管理される情報の要素には、各プロキシからみた、送信元インタフェース,隣接側インタフェース,隣接プロキシ,通過プロキシ,接続先インタフェース,接続先エンドプロキシを表す識別子(ID)並びにコスト値が含まれている。
【0062】
例えば、図11に示すように接続元エンドプロキシ(A)と接続先エンドプロキシ(D)との間をいくつかの他のプロキシ(B),・・(C),・・を経由して接続する場合には、接続元エンドプロキシ(A)とその隣接プロキシ(B)とを、接続元エンドプロキシ(A)の送信元インタフェースと隣接プロキシ(B)の隣接側インタフェースを用いて接続し、さらに隣接プロキシ(B)が通過プロキシ(C)を経由して接続先エンドプロキシ(D)と接続しているので、これらのプロキシ及びインタフェースを特定する情報を経路情報として管理する。
【0063】
また、コスト値はこのような経路を利用して通信する際にかかるコストを定量的に表す情報である。なお、隣接プロキシID,接続先エンドプロキシID及びコスト値は必須要素であるが、他の要素は省略することもできる。
(7)経路管理部16が経路情報をプロキシ間でやりとりする方法:
プロキシ間でやりとりする経路情報は、図12に示すようなフォーマットで構成され、経路広告として配信される。
【0064】
図2のようにプロキシ(A)とそれに隣接する3つのプロキシ(B),(C),(D)が存在する場合を想定して各プロキシの動作の概要を説明する。
プロキシ(B)は、経路情報を作成してそれをルーチングテーブル21に記憶する(S21)。さらに、プロキシ(B)はルーチングテーブル21に記憶した経路情報を経路広告として隣接プロキシ(A)へ送信する(S22)。但し、経路のループを防ぐため、広告先の隣接プロキシを含む経路情報を経路広告しない。
【0065】
経路広告を受信したプロキシ(A)は、受信した経路情報の隣接プロキシIDを経路広告してきた隣接プロキシ(B)のプロキシIDに書き換えてルーチングテーブル21に記憶する(S23)。
また、隣接プロキシとの接続がなくなった場合には、隣接管理テーブル23の関連する要素は隣接関係から削除され、静的な隣接関係なら隣接管理テーブル23の状態を非アクティブに変更し、隣接プロキシに関連する経路情報をルーチングテーブル21から削除する。
【0066】
各プロキシが実行する経路情報の作成(S21の内容)では、実際には図3のような処理が実行される。また、各プロキシが実行する経路広告の受信処理(S23)では図4のような処理が実行される。
図3の内容について説明する。ステップS41では、宛先プロキシID及び隣接プロキシIDに隣接プロキシIDを割り当て、ホップ数に初期値の1を割り当て、コスト値を初期化し、隣接側インタフェースID及び送信元インタフェースIDを割り当てる。
【0067】
例えば、図14におけるプロキシID(002)のプロキシが、プロキシID(005)の隣接プロキシとの間の経路情報を作成する場合には、宛先プロキシIDに(005)、隣接プロキシIDに(005)、ホップ数に1、隣接側インタフェースIDに(tcp://192.168.3.1)、送信元インタフェースIDに(tcp://192.168.4.1)をそれぞれ割り当てる。
【0068】
また、ステップS42では自プロキシにおけるインタフェースのコスト及び隣接プロキシにおけるインタフェースのコストを経路情報のコスト値に加算する。ステップS43では、経路情報をルーチングテーブル21に保存する。
ステップS44ではコスト増減テーブルに基づいて経路情報のコスト値を変更し、ステップS45では作成された経路情報を隣接プロキシに経路広告として送信する。
【0069】
図4の内容について説明する。ステップS51で隣接プロキシからの経路広告を受信すると、次のステップS52で相手プロキシのインタフェースのコスト及び自プロキシのインタフェースのコストを経路情報のコスト値に加算する。
ステップS53では、次のようにして経路情報を書き換える。すなわち、経路情報の隣接プロキシIDを広告元プロキシのプロキシIDに書き換え、ホップ数に1を加算して、経路情報の隣接側インタフェースIDを広告元プロキシのプロキシID、経路情報の送信元インタフェースIDを自プロキシのインタフェースIDに書き換え、経路情報の通過プロキシIDとして自プロキシ又は隣接プロキシのプロキシIDにそれぞれ書き加える。
【0070】
ステップS54では書き換えた経路情報をルーチングテーブル21に保存し、ステップS55ではコスト増減テーブルに基づいて経路情報のコスト値を変更し、ステップS56では経路情報を隣接プロキシに経路広告として配信する。
(8)プロキシの経路管理部16が行うコスト値の計算の詳細:
プロキシではいくつかの要素に対し、コスト値の増減を行うことができる。この増減により、自ノード(プロキシ及びインタフェースを含む通信装置)を通過する際にかかるコストの情報を周囲のプロキシに伝達する。自ノードが伝達したコスト値は、他のプロキシの経路評価に影響を与える。
【0071】
この形態では、各プロキシは以下に示す要素に対するコストを相対的に変更する。
(a)接続先エンドプロキシに対するコスト(特定の接続先エンドプロキシに向けて自プロキシを通過する通信の経路に対するコスト)。
【0072】
(b)送信元インタフェースに対するコスト(自ノードの特定送信元インタフェースを利用する経路に対するコスト)。
(c)隣接プロキシに対するコスト(特定の隣接プロキシを隣接として通過する経路に対するコスト)。
実際のコストの変更量については、ユーザからの入力により直接指定することもできるし、ネットワークのリソースを管理するプログラムを用いて実際のリソース消費量を検出し、その結果を反映するように指定することもできる。
【0073】
例えば、図15に示すルーチングテーブルを持つプロキシ(プロキシID:001)において、接続先エンドプロキシのプロキシID(006)に対するコストを「5」増加させるコマンド(setCost −destination 006 5)が入力された場合には、図17に示すようなコスト増減テーブルを作成し、ルーチングテーブルの項目「4」,「5」を参照し、評価及び広告をする際に、コスト値を「5」だけ増加させる。
【0074】
これにより、ルーチングテーブルの項目「4」のコスト値は「32」から「37」に変更され、項目「5」のコスト値は「27」から「32」に変更される。つまり、図15に示すルーチングテーブルを図17のコスト増減テーブルを利用して参照,評価,広告する場合には、結果的にルーチングテーブルの内容は図16に示すように変更される。
【0075】
コスト値は1つである。コスト値の増減は図13に示すような流れで処理される。例えば、プロキシのコスト増減テーブルにおいて接続先エンドプロキシのプロキシID(0001)に対するコストを10増加させるように指定されている場合には、ルーチングテーブルを参照,評価,広告する時に、ルーチングテーブルの接続先エンドプロキシのプロキシIDが(0001)になっている全ての経路に対してコスト値に10を加算して利用する。
【0076】
このコスト増減テーブルの内容は、図13に示すように参照,評価時及び経路広告の送信時に参照され、該当する経路のコスト変更に反映される。
具体例について説明する。プロキシ(プロキシID:002)が隣接プロキシ(005)に対する経路情報を作成するときには、宛先プロキシIDを「005」とし、隣接プロキシIDを「005」とし、ホップ数を「1」として経路情報を作成する。この場合、インタフェースを2つ通過し、それぞれのインタフェースのコスト値が「5」だと仮定すると全体のコスト値として「10」を割り当てる。なお、インタフェースのデフォルトのコスト値はシステム全体で保持しており、特に指定がない場合にはデフォルトのコスト値を採用する。
【0077】
経路情報を作成したプロキシ(002)は、この経路情報をルーチングテーブルに保存する。また、コスト増減テーブルの増減要素である接続先エンドプロキシの値が「005」でコストの増減値が「10」であれば、これを加算してコスト値を「20」にする。そして、このルーチングテーブルの内容を経路広告として隣接プロキシに送信する。この場合の経路広告先は、プロキシID001やプロキシID003になる。
【0078】
一方、経路広告を受信する場合の動作は次のようになる。図14に示すプロキシ(003)が経路広告を受信した場合に、経路広告の内容が(宛先プロキシID:005,隣接プロキシID:005,ホップ数:1,コスト値:20)であった場合には、次のようにして経路情報(経路広告)の内容を書き換える。
すなわち、隣接プロキシIDを「002」に変更し、ホップ数を「2」に変更(1を加算)する。また、インタフェースを2つ通過するので、インタフェースのコスト値が「5」であれば経路情報のコスト値に「10」を加算する。従って経路情報のコスト値は「30」になる。
【0079】
経路広告を受信したプロキシ(003)は、書き換えた経路情報をルーチングテーブルに保存する。また、コスト増減テーブルに関連するものがなければ、この経路情報を経路広告として他の隣接プロキシに送信する。この場合の経路広告先は、プロキシID004やプロキシID006になる。
【0080】
また、上記のようにプロキシ(002)が経路情報を作成する際には、隣接側インタフェースは(tcp://192.168.3.2)であり、送信側インタフェースは(tcp://192.168.4.1)である。
また、プロキシ(003)が経路広告を受信した場合には、隣接側インタフェースは(tcp://192.168.4.1)であり、送信側インタフェースは(tcp://192.168.5.1)である。もしも、複数のインタフェースが存在する場合には、それぞれのインタフェースの組だけ、インタフェース情報のみが異なる経路情報を作成する。
【0081】
また、経路広告としてやりとりされる経路情報には、図12に示すように経路上の任意のノードを通過プロキシIDとして加えることができる。例えば、図14のプロキシ(003)が経路広告を受信した場合には、経路上の自プロキシID(003)や隣接プロキシID(002)を通過プロキシIDに割り当てることができる。なお、通過プロキシIDを含む経路情報とそれを含まない経路情報との2種類を作成しそれそれを広告することもできる。
【0082】
(9)経路管理部16で処理される優先度の指定:
各プロキシは、優先度をアプリケーションの要求やユーザの要求によりコマンドで指定される。つまり、自ノードの優先度情報の各項目を要求により書き換えることができる。例えば、プロキシID001に図19の1番目の項目を追加することができる。
【0083】
この形態では、指定可能な優先度として図18に示すような要素が存在する。また、実際の優先度は図19に示すような形式で指定される。図19の項目1,3は自ノードで指定した優先度の項目を表し、項目2はプロキシID004で指定した優先度の広告に相当する。
絶対指定については、指定されたものを絶対に使用する必要がある。相対指定については、指定されたものを優先的に使用する必要がある。すなわち、経路選択の評価において、絶対指定された要素の値を持つルーチングテーブルの項目を必ず選択し、相対指定された要素の値を持つルーチングテーブルの項目は優先的に選択する。
【0084】
優先度は、隣接関係にあるプロキシ間で優先度広告により伝達される。優先度広告を受け取ったプロキシは、それを優先度情報として保持し、他の隣接プロキシに対して優先度広告として送信する。
優先度広告を行う場合には、図2のステップS26〜S34に示すような動作が実施される。
【0085】
ステップS26でプロキシ(B)は優先度情報を作成し、次のステップS27でそれを記憶し、ステップS28で優先度広告として優先度情報を隣接関係にあるプロキシ(A)に送信する。
この優先度広告を受信したプロキシ(A)は、ステップS29,S32で優先度情報を記憶し、ステップS30で他の隣接関係にあるプロキシ(C),(D)に対して優先度広告を送信する。
【0086】
優先度広告を受信したプロキシ(C),(D)はそれぞれステップS31,S33で優先度情報を記憶する。
例えば、図14に示すプロキシ(プロキシID:004)で優先度情報が作成された場合には、それと隣接関係にあるプロキシ(003)に優先度広告が送信される。この場合、プロキシ(003)は他のプロキシ(002),(006)に優先度広告を転送し、その後プロキシ(002)は他のプロキシ(001),(005)に優先度広告を転送する。
【0087】
このようにして、全てのプロキシに対して優先度情報を伝えることができる。但し、優先度は経路を評価する接続元のプロキシが保持していればいいので、全ての優先度を広告する必要はない。例えば、接続元のプロキシに関する優先度は優先度広告する必要はない。
【0088】
(10)経路管理部16が行う経路の評価:
接続元エンドプロキシにおけるコネクション管理部15は、サービス管理部17に所望のサービスを提供している接続先エンドプロキシの情報を問い合わせ、その結果を経路管理部16に通知することで、経路管理部16に対して経路評価を要求する。
【0089】
この場合、セッションの構築が開始され、図1に示すステップS11からS14に進んで経路評価を実行する。同様に、ルーチングテーブルの変更を検出した場合にはステップS12からS14に進み、エンドプロキシの切替を検出した場合にはステップS13からS14に進む。そして、この経路評価の結果に基づいてプロキシ間の通信路を構築する。
【0090】
ステップS14では、サービス(サーバサービスの一機能)を提供している接続先のエンドプロキシ(複数存在する場合には全て)までの全経路の情報を集める。
ステップS15では、全経路をコスト値の大小に応じて整列させる。例えば、コスト値の小さな経路を上位に配置する。
【0091】
ステップS16では、エンドプロキシから優先度要素を絶対指定されている場合には、その要素を含む経路のみを残す。何も残らない場合には経路選択は失敗として通知する。
ステップS17では、相対指定されている要素を持つ経路を上位に並べ替える。相対指定されている要素を持つ経路同士については、コスト値の小さなものを上位に配置する。
【0092】
ステップS18では、上位の経路から順に選択する。
具体例について説明する。ここでは、図14に示すようなネットワークにおいて、サービスID(http://hoge/h.mpg)で図15に示す内容のルーチングテーブルと図19に示す内容の優先度指定と、図17に示す内容のコスト増減テーブルが存在する場合を想定して説明する。
【0093】
(S14)サービスID(http://hoge/h.mpg)でサービス管理部17にサービス検索を依頼した際に、サービスを提供している接続先エンドプロキシのプロキシIDが(004,006)であれば、ルーチングテーブルの全ての項目(1〜5)を集める。
(S15)ルーチングテーブルの内容(図15)を図20に示すようにコスト値の大きさに応じて並べ替える。
【0094】
(S16)全ての項目の隣接プロキシIDが(002)なので、全ての項目を残す。
(S17)送信元インタフェース(tcp://192.168.1.1)と接続先インタフェース(tcp://192.168.6.1)が相対指定されているので、上位に並べ替える。項目1,4は優先度指定と矛盾しないので上位に配置し、コスト値に従って並べる。この結果、図21に示す内容の評価結果が得られる。
【0095】
(S18)項目1,4,2,3,5の順に経路を選択し接続する。
なお、接続先エンドプロキシは複数存在する場合もある。また、接続元エンドプロキシ自体はユーザの要求によって変化し、経路の再構築のトリガーとなる。
(11)セッション管理部14,コネクション管理部15が処理するエンドプロキシの変更:
プロキシのセッション管理部14ではセッションの識別子を管理し、コネクション管理部15はエンドプロキシの変更動作を制御しその結果をセッション管理部14に通知する。コネクション管理部15においてどの接続先エンドプロキシ及び経路を用いるかについては、図1に示す処理の評価結果に基づいて決定される。
【0096】
接続元のプロキシから送信された通信データを接続先のプロキシに転送するプロキシは、接続元プロキシで決定された経路の情報を取得し、この経路に記載の通過プロキシを順番にたどることにより、次に転送すべきプロキシを決定する(方法1)か、接続元プロキシで決定された経路の宛先のプロキシIDを取得しこの宛先プロキシIDを元に、自ノードのルーチングテーブルを検索し、コスト値を評価することにより、その先の経路を決定し、次に転送すべきプロキシを決定する(方法2)。
【0097】
なお、(方法1)の場合には全ての転送プロキシを経路として記載する必要があり、経路情報は膨大になる。また、(方法2)の場合には接続先の優先度指定は反映されない。
どのような場合にエンドプロキシが変更されるのかについて説明する。エンドプロキシの変更により、サーバアプリケーションの切り替え又はクライアントアプリケーションの切り替えが行われる。サーバアプリケーションの機能の一部は、サービスという単位で管理され、このサービスにアクセスしてもらうために、サービスの情報はネットワーク内に広告される。
【0098】
また、複数のサーバアプリケーションが同一のサービスを提供するため、サービスの複製を作成し、これを同一のサービスIDとしてサービス広告する。これにより、ユーザはあるサーバアプリケーションで提供されているサービスが利用不能になった場合でも、他のサーバアプリケーションに切り替えることができる。更に、ユーザはクライアントアプリケーションの変更をプロキシに命令することにより、ユーザは利用端末を変更することができる。
【0099】
【発明の効果】
本発明によれば、ネットワーク上で中継を行うプロキシ及びアプリケーションに接続されているプロキシの双方の要求を反映したルーチングが可能である。つまり、ルーチングテーブルの各項目はコスト値で重み付けがされており、コスト値が少ない経路を選択することが可能である。
【0100】
また、各プロキシでこのコスト値を増減し、隣接のプロキシに広告することで、ネットワーク上で中継を行う各プロキシの意図する重み付けを行うことが可能である。例えば、自ノードのトラヒックが高いのでこれ以上プロキシの中継を受け付けたくなければ、自ノードを通過する経路情報のコスト値を増加させる。
また、エンドプロキシの候補が複数ある場合においても、コスト値の低いエンドプロキシを選択することができる。更に、あるプロキシやあるインタフェースを優先的に利用したい場合、又は利用してほしいと場合においても優先度を指定することで、コスト値の重み付けにかかわらず、優先的に利用することが可能である。
【0101】
これにより、アプリケーションに接続されているプロキシは通信の内容を変換する変換機能をもった特定のプロキシを優先度の指定により経由させることで、例えば日本語/英語の変換や、小型端末に対する動画の解像度の変換などを行わせることができる。つまり、アプリケーションの強い要求を優先させることが可能である。
【0102】
また、アプリケーションに接続されているプロキシは利用可能な複数の異なるネットワークアドレスをもったインタフェース(例えば有線LANと無線LAN等)が存在する場合、例えば、通信速度の高速な有線LANを優先的に利用する等、特定のインタフェースを優先的に利用したり、利用されたりすることが可能である。つまり、ユーザやアプリケーションの都合を優先させることが可能である。
【図面の簡単な説明】
【図1】接続元のエンドプロキシの経路選択動作を示すフローチャートである。
【図2】広告の配信動作例を示すシーケンス図である。
【図3】経路情報の作成の処理を示すフローチャートである。
【図4】経路広告の受信処理を示すフローチャートである。
【図5】プロキシの構成を示すブロック図である。
【図6】セッション構築例を示すブロック図である。
【図7】インタフェースの例を示すブロック図である。
【図8】動的な隣接関係構築の動作を示すシーケンス図である。
【図9】静的な隣接関係構築の動作を示すシーケンス図である。
【図10】インタフェース情報広告フォーマットを示す模式図である。
【図11】エンドプロキシ間の経路の例を示すブロック図である。
【図12】経路情報広告フォーマットを示す模式図である。
【図13】コスト値変更処理を示すブロック図である。
【図14】システムの構成例を示すブロック図である。
【図15】ルーチングテーブルの構成例を示す模式図である。
【図16】コスト増減の結果を表すルーチングテーブルの模式図である。
【図17】コスト増減テーブルの構成例を示す模式図である。
【図18】優先度要素の定義を示す模式図である。
【図19】優先度の指定例を示す模式図である。
【図20】経路の評価例(1)を示す模式図である。
【図21】経路の評価例(2)を示す模式図である。
【図22】コマンドの一覧(1)を示す模式図である。
【図23】コマンドの一覧(2)を示す模式図である。
【符号の説明】
11 プロキシ制御部
12 キャッシュ管理部
13 キャッシュメモリ
14 セッション管理部
15 コネクション管理部
16 経路管理部
17 サービス管理部
18 サービス情報保持部
20 テーブル保持部
21 ルーチングテーブル
22 優先度情報テーブル
23 隣接管理テーブル
Claims (19)
- 通信を行う複数のアプリケーション間で送受信されるデータを、複数のプロキシを含むネットワークを経由して転送する通信システムが前記データの転送経路を制御するためのルーチング方法において、
各プロキシでは、少なくとも宛先のプロキシを表す第1のプロキシ識別子と、隣接するプロキシを表す第2のプロキシ識別子と、コスト情報とを含む経路情報を作成するとともに、前記第1のプロキシ識別子及び第2のプロキシ識別子には自プロキシに隣接するプロキシのプロキシ識別子を割り当て、前記コスト情報には自プロキシが隣接するプロキシにアプリケーションデータを転送する際にかかるコストを反映した情報を割り当てて、作成された経路情報を広告として他のプロキシに送信し、
各プロキシでは、他のプロキシから送信された経路情報の広告を受信した場合に、受信した経路情報の広告に含まれるコスト情報に基づいて、自プロキシにおけるコストの再評価を行い、経路情報の第2のプロキシ識別子には広告の送信元のプロキシのプロキシ識別子を割り当て、経路情報のコスト情報には再評価の結果を割り当て、作成された経路情報を広告として他のプロキシに送信するとともに、経路情報をルーチングテーブルに保存し、
各プロキシは、経路選択の際に前記ルーチングテーブルのコスト情報を反映する
ことを特徴とするルーチング方法。 - 通信を行う複数のアプリケーション間で送受信されるデータを、複数のプロキシを含むネットワークを経由して転送する通信システムが前記データの転送経路を制御するためのルーチング方法において、
各プロキシでは、少なくとも宛先のプロキシを表す第1のプロキシ識別子と、隣接するプロキシを表す第2のプロキシ識別子と、コスト情報とを含む経路情報を作成するとともに、前記第1のプロキシ識別子及び第2のプロキシ識別子には自プロキシに隣接するプロキシのプロキシ識別子を割り当て、前記コスト情報には自プロキシが隣接するプロキシにアプリケーションデータを転送する際にかかるコストを反映した情報を割り当てて、作成された経路情報を広告として他のプロキシに送信し、
他のプロキシから送信された経路情報の広告を受信したプロキシでは、受信した経路情報の広告に含まれるコスト情報に基づいて、自プロキシにおけるコストの再評価を行い、経路情報の第2のプロキシ識別子には広告の送信元のプロキシのプロキシ識別子を割り当て、経路情報のコスト情報には再評価の結果を割り当て、作成された経路情報を広告として他のプロキシに送信するとともに、経路情報をルーチングテーブルに保存し、
アプリケーションと接続しているプロキシでは、宛先のプロキシが決定した場合に、前記ルーチングテーブルに基づいて宛先のプロキシまでの経路を探索するとともに、ルーチングテーブルのコスト情報に基づいて最もコストの小さい経路を自動的に選択する
ことを特徴とするルーチング方法。 - 請求項1又は請求項2のルーチング方法において、プロキシが広告する前記経路情報に、プロキシが利用する下位のトランスポートネットワークのインタフェース情報を含め、経路情報の広告を受信したプロキシは、インタフェースの違いをコストの再評価に反映することを特徴とするルーチング方法。
- 請求項1又は請求項2のルーチング方法において、プロキシが広告する前記経路情報に、経由する各プロキシを表す通過プロキシ識別情報を含め、経路情報の広告を受信したプロキシは、経由するプロキシの違いをコストの再評価に反映することを特徴とするルーチング方法。
- 請求項2のルーチング方法において、
宛先のアプリケーションと接続されたプロキシを表す接続先エンドプロキシが複数存在する場合には、セッションを構築する接続元のプロキシは、複数の接続先エンドプロキシの識別子に基づいて前記ルーチングテーブルを検索し、複数の接続先エンドプロキシの中で最もコストの小さい接続先エンドプロキシを通る経路を選択し、
前記ルーチングテーブルの変更を検出した場合、もしくはアプリケーションと接続されたプロキシが切り替わったことを検出した場合には、接続元のアプリケーションと接続されたプロキシは前記ルーチングテーブルに基づいて経路の選択をやり直す
ことを特徴とするルーチング方法。 - 請求項1又は請求項2のルーチング方法において、
各プロキシは、経路を特定する情報のうち、優先的な割り当てを必要とする要素を表す優先度情報を広告として他のプロキシに送信し、
各プロキシが経路を選択する際に、広告として受信した優先度情報が存在する場合には、前記優先度情報によって優先指定された要素を、前記コストよりも優先的に評価し経路を決定する
ことを特徴とするルーチング方法。 - 通信を行う複数のアプリケーション間で送受信されるデータを、複数のプロキシを含むネットワークを経由して転送する通信システムが前記データの転送経路を制御するために用いるルーチング装置において、
各プロキシが、少なくとも宛先のプロキシを表す第1のプロキシ識別子と、隣接するプロキシを表す第2のプロキシ識別子と、コスト情報とを含む経路情報を作成するとともに、前記第1のプロキシ識別子及び第2のプロキシ識別子には自プロキシに隣接するプロキシのプロキシ識別子を割り当て、前記コスト情報には自プロキシが隣接するプロキシにアプリケーションデータを転送する際にかかるコストを反映した情報を割り当てて、作成された経路情報を広告として他のプロキシに送信する経路広告送信手段と、
各プロキシが、他のプロキシから送信された経路情報の広告を受信した場合に、受信した経路情報の広告に含まれるコスト情報に基づいて、自プロキシにおけるコストの再評価を行い、経路情報の第2のプロキシ識別子には広告の送信元のプロキシのプロキシ識別子を割り当て、経路情報のコスト情報には再評価の結果を割り当て、作成された経路情報を広告として他のプロキシに送信するとともに、経路情報をルーチングテーブルに保存する経路広告受信手段と、
各プロキシが、経路を選択する際に前記ルーチングテーブルのコスト情報を反映する経路選択手段と
を設けたことを特徴とするルーチング装置。 - 通信を行う複数のアプリケーション間で送受信されるデータを、複数のプロキシを含むネットワークを経由して転送する通信システムが前記データの転送経路を制御するために用いるルーチング装置において、
各プロキシが、少なくとも宛先のプロキシを表す第1のプロキシ識別子と、隣接するプロキシを表す第2のプロキシ識別子と、コスト情報とを含む経路情報を作成するとともに、前記第1のプロキシ識別子及び第2のプロキシ識別子には自プロキシに隣接するプロキシのプロキシ識別子を割り当て、前記コスト情報には自プロキシが隣接するプロキシにアプリケーションデータを転送する際にかかるコストを反映した情報を割り当てて、作成された経路情報を広告として他のプロキシに送信する経路広告送信手段と、
他のプロキシから送信された経路情報の広告を受信したプロキシが、受信した経路情報の広告に含まれるコスト情報に基づいて、自プロキシにおけるコストの再評価を行い、経路情報の第2のプロキシ識別子には広告の送信元のプロキシのプロキシ識別子を割り当て、経路情報のコスト情報には再評価の結果を割り当て、作成された経路情報を広告として他のプロキシに送信するとともに、経路情報をルーチングテーブルに保存する経路広告受信手段と、
アプリケーションと接続しているプロキシが、宛先のプロキシが決定した場合に、前記ルーチングテーブルに基づいて宛先のプロキシまでの経路を探索するとともに、ルーチングテーブルのコスト情報に基づいて最もコストの小さい経路を自動的に選択する経路選択手段と
を設けたことを特徴とするルーチング装置。 - 請求項7又は請求項8のルーチング装置において、プロキシが広告する前記経路情報に、プロキシが利用する下位のトランスポートネットワークのインタフェース情報を含め、経路情報の広告を受信したプロキシは、インタフェースの違いをコストの再評価に反映することを特徴とするルーチング装置。
- 請求項7又は請求項8のルーチング装置において、プロキシが広告する前記経路情報に、経由する各プロキシを表す通過プロキシ識別情報を含め、経路情報の広告を受信したプロキシは、経由するプロキシの違いをコストの再評価に反映することを特徴とするルーチング装置。
- 請求項8のルーチング装置において、
宛先のアプリケーションと接続されたプロキシを表す接続先エンドプロキシが複数存在する場合には、セッションを構築する接続元のプロキシは、複数の接続先エンドプロキシの識別子に基づいて前記ルーチングテーブルを検索し、複数の接続先エンドプロキシの中で最もコストの小さい接続先エンドプロキシを通る経路を選択し、
前記ルーチングテーブルの変更を検出した場合、もしくはアプリケーションと接続されたプロキシが切り替わったことを検出した場合には、接続元のアプリケーションと接続されたプロキシは前記ルーチングテーブルに基づいて経路の選択をやり直す
ことを特徴とするルーチング装置。 - 請求項7又は請求項8のルーチング装置において、
各プロキシは、経路を特定する情報のうち、優先的な割り当てを必要とする要素を表す優先度情報を広告として他のプロキシに送信し、
各プロキシが経路を選択する際に、広告として受信した優先度情報が存在する場合には、前記優先度情報によって優先指定された要素を、前記コストよりも優先的に評価し経路を決定する
ことを特徴とするルーチング装置。 - 通信を行う複数のアプリケーション間で送受信されるデータを、複数のプロキシを含むネットワークを経由して転送する通信システム上で前記データの転送経路を制御する各プロキシのコンピュータが実行可能なプログラムであって、
各プロキシが、少なくとも宛先のプロキシを表す第1のプロキシ識別子と、隣接するプロキシを表す第2のプロキシ識別子と、コスト情報とを含む経路情報を作成するとともに、前記第1のプロキシ識別子及び第2のプロキシ識別子には自プロキシに隣接するプロキシのプロキシ識別子を割り当て、前記コスト情報には自プロキシが隣接するプロキシにアプリケーションデータを転送する際にかかるコストを反映した情報を割り当てて、作成された経路情報を広告として他のプロキシに送信する経路広告送信手順と、
各プロキシが、他のプロキシから送信された経路情報の広告を受信した場合に、受信した経路情報の広告に含まれるコスト情報に基づいて、自プロキシにおけるコストの再評価を行い、経路情報の第2のプロキシ識別子には広告の送信元のプロキシのプロキシ識別子を割り当て、経路情報のコスト情報には再評価の結果を割り当て、作成された経路情報を広告として他のプロキシに送信するとともに、経路情報をルーチングテーブルに保存する経路広告受信手順と、
各プロキシが、経路を選択する際に前記ルーチングテーブルのコスト情報を反映する経路選択手順と
を設けたことを特徴とするプログラム。 - 通信を行う複数のアプリケーション間で送受信されるデータを、複数のプロキシを含むネットワークを経由して転送する通信システム上で前記データの転送経路を制御する各プロキシのコンピュータが実行可能なプログラムであって、
各プロキシが、少なくとも宛先のプロキシを表す第1のプロキシ識別子と、隣接するプロキシを表す第2のプロキシ識別子と、コスト情報とを含む経路情報を作成するとともに、前記第1のプロキシ識別子及び第2のプロキシ識別子には自プロキシに隣接するプロキシのプロキシ識別子を割り当て、前記コスト情報には自プロキシが隣接するプロキシにアプリケーションデータを転送する際にかかるコストを反映した情報を割り当てて、作成された経路情報を広告として他のプロキシに送信する経路広告送信手順と、
各プロキシが、他のプロキシから送信された経路情報の広告を受信した場合に、受信した経路情報の広告に含まれるコスト情報に基づいて、自プロキシにおけるコストの再評価を行い、経路情報の第2のプロキシ識別子には広告の送信元のプロキシのプロキシ識別子を割り当て、経路情報のコスト情報には再評価の結果を割り当て、作成された経路情報を広告として他のプロキシに送信するとともに、経路情報をルーチングテーブルに保存する経路広告受信手順と、
アプリケーションと接続しているプロキシが、宛先のプロキシが決定した場合に、前記ルーチングテーブルに基づいて宛先のプロキシまでの経路を探索するとともに、ルーチングテーブルのコスト情報に基づいて最もコストの小さい経路を自動的に選択する経路選択手順と
を設けたことを特徴とするプログラム。 - 請求項13のプログラムにおいて、前記経路広告送信手順では、プロキシが広告する前記経路情報に、プロキシが利用する下位のトランスポートネットワークのインタフェース情報を含め、前記経路選択手順では、経路情報の広告を受信した場合に、インタフェースの違いをコストの再評価に反映することを特徴とするプログラム。
- 請求項13のプログラムにおいて、
前記経路広告送信手順では、プロキシが広告する前記経路情報に、経由する各プロキシを表す通過プロキシ識別情報を含め、前記経路選択手順では、経路情報の広告を受信した場合に、経由するプロキシの違いをコストの再評価に反映することを特徴とするプログラム。 - 請求項13のプログラムにおいて、前記経路選択手順では、宛先のアプリケーションと接続されたプロキシを表す接続先エンドプロキシが複数存在する場合には、セッションを構築する接続元のプロキシが複数の接続先エンドプロキシの識別子に基づいて前記ルーチングテーブルを検索し、複数の接続先エンドプロキシの中で最もコストの小さい接続先エンドプロキシを通る経路を選択し、前記ルーチングテーブルの変更を検出した場合、もしくはアプリケーションと接続されたプロキシが切り替わったことを検出した場合には、接続元のアプリケーションと接続されたプロキシは前記ルーチングテーブルに基づいて経路の選択をやり直すことを特徴とするプログラム。
- 請求項13のプログラムにおいて、各プロキシが経路を特定する情報のうち、優先的な割り当てを必要とする要素を表す優先度情報を広告として他のプロキシに送信する優先度広告送信手順を設け、前記経路選択手順では、広告として受信した優先度情報が存在する場合には、前記優先度情報によって優先指定された要素を、前記コストよりも優先的に評価し経路を決定することを特徴とするプログラム。
- 請求項13,請求項14,請求項15,請求項16,請求項17及び請求項18の何れかのプログラムを記録したコンピュータで読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003058530A JP3964808B2 (ja) | 2003-03-05 | 2003-03-05 | ルーチング方法及びルーチング装置並びにプログラム及び記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003058530A JP3964808B2 (ja) | 2003-03-05 | 2003-03-05 | ルーチング方法及びルーチング装置並びにプログラム及び記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004274142A true JP2004274142A (ja) | 2004-09-30 |
JP3964808B2 JP3964808B2 (ja) | 2007-08-22 |
Family
ID=33121618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003058530A Expired - Fee Related JP3964808B2 (ja) | 2003-03-05 | 2003-03-05 | ルーチング方法及びルーチング装置並びにプログラム及び記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3964808B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008525868A (ja) * | 2004-12-07 | 2008-07-17 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | オーバーレイネットワークにおけるサービス問い合わせのルーティング |
JP2008543238A (ja) * | 2005-06-07 | 2008-11-27 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | 通信経路割り当てエンティティ及び方法 |
JP2012070182A (ja) * | 2010-09-22 | 2012-04-05 | Fujitsu Ltd | 通信装置および通信方法 |
-
2003
- 2003-03-05 JP JP2003058530A patent/JP3964808B2/ja not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008525868A (ja) * | 2004-12-07 | 2008-07-17 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | オーバーレイネットワークにおけるサービス問い合わせのルーティング |
JP2008543238A (ja) * | 2005-06-07 | 2008-11-27 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | 通信経路割り当てエンティティ及び方法 |
US8265015B2 (en) | 2005-06-07 | 2012-09-11 | Telefonaktiebolaget Lm Ericsson (Publ) | Communication path allocating entity and method |
JP2012070182A (ja) * | 2010-09-22 | 2012-04-05 | Fujitsu Ltd | 通信装置および通信方法 |
Also Published As
Publication number | Publication date |
---|---|
JP3964808B2 (ja) | 2007-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112840332B (zh) | 网络路由环境中的独立数据存储区 | |
US9686194B2 (en) | Adaptive multi-interface use for content networking | |
JP4274231B2 (ja) | 中継サーバおよび中継通信システム | |
JP5265674B2 (ja) | 通信ネットワークにおける移動性管理及び効率的な情報検索のための方法、装置、及びシステム | |
JP4915848B2 (ja) | オーバーレイネットワークでピア・ツー・ピアのファイル送受信を行うコンピュータプログラム | |
US20150046591A1 (en) | Dynamic edge server allocation | |
CN105340244A (zh) | 基于来自暂态准则的上下文的动态内容分发网络选择 | |
CN114070854B (zh) | 算力网络中算力感知和路由方法、系统、设备及介质 | |
WO2007144611A1 (en) | Self-managed distributed mediation networks | |
JP5847185B2 (ja) | コンテンツ中心のネットワーク環境でグループ変更に関する情報を用いるコンテンツ共有方法及び装置 | |
JP2006229740A (ja) | マルチキャストルーティングプログラム、マルチキャストルーティング方法、およびマルチキャストルータ | |
CN105164990A (zh) | 将客户端设备从第一网关重定向到第二网关以用于访问网络节点功能 | |
US20090213862A1 (en) | Method and system for migrating a peer in a distributed bgp system | |
JP4954328B2 (ja) | 通信ネットワークにおけるデータ管理のための方法およびシステム | |
JP4472001B2 (ja) | ゾーンベースのピアツーピア通信 | |
US20210203717A1 (en) | Delegated Services Platform System and Method | |
JP3964808B2 (ja) | ルーチング方法及びルーチング装置並びにプログラム及び記録媒体 | |
JP4146373B2 (ja) | 動的なネットワークにおけるサービス選択方法およびサービス選択システム | |
Mahmood et al. | Autonomous pull-push community construction technology for high-assurance | |
JP7332869B2 (ja) | 通信プログラム、通信方法および通信装置 | |
JP4432626B2 (ja) | マルチキャストツリー構築システム及び方法、ネットワークノード装置並びにサーバ装置 | |
JP2009044371A (ja) | オーバーレイネットワーク形成方法とオーバーレイノードおよびオーバーレイネットワークとプログラム | |
EP2913979B1 (en) | A method and system to process traffic optimization requests | |
JP5060775B2 (ja) | 分散ストレージシステム上でコンテンツを送受信する方法及び装置 | |
KR101506157B1 (ko) | 피투피 통신 제어 방법, 이를 위한 싱크홀 라우팅 장치 및 정보 수집 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050128 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061205 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070202 |
|
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: 20070522 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070524 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100601 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110601 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120601 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |