JP3672534B2 - Routing control method, routing control device, recording medium, and control program - Google Patents

Routing control method, routing control device, recording medium, and control program Download PDF

Info

Publication number
JP3672534B2
JP3672534B2 JP2002036024A JP2002036024A JP3672534B2 JP 3672534 B2 JP3672534 B2 JP 3672534B2 JP 2002036024 A JP2002036024 A JP 2002036024A JP 2002036024 A JP2002036024 A JP 2002036024A JP 3672534 B2 JP3672534 B2 JP 3672534B2
Authority
JP
Japan
Prior art keywords
node
proxy
communication
message
information
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
JP2002036024A
Other languages
Japanese (ja)
Other versions
JP2003244210A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2002036024A priority Critical patent/JP3672534B2/en
Publication of JP2003244210A publication Critical patent/JP2003244210A/en
Application granted granted Critical
Publication of JP3672534B2 publication Critical patent/JP3672534B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ノードを構成する各通信装置にアプリケーションプログラム及び通信を中継するプロキシの少なくとも一方が設けられ、アプリケーションプログラムを備える複数のノードが複数のプロキシ及び所定のネットワークを介して互いに接続される通信システムにおいて、プロキシが配置された各ノードの制御に用いられるルーチング制御方法及びルーチング制御装置に関する。
【0002】
【従来の技術】
利用者が通信を行っているアプリケーション(プログラム)の利用をやめて他のアプリケーションで通信を行おうとする場合には、通信を中断してから、他のアプリケーションで通信を再開する必要がある。しかしながら、この場合は通信が切断されてしまうので、相手のアプリケーションとの通信手続きを最初からやり直す必要がある。すなわち、あるアプリケーションに対する通信サービスを途中から他のアプリケーションに切り替えることはできない。
【0003】
例えば、ノートパソコンやPDAのような移動端末は持ち運びができるため様々な場所で利用される可能性があるし、移動しながら利用される場合もある。このような移動端末をオンラインで利用する場合には、例えばイーサネット(登録商標),構内無線LAN(Local Area Network),公衆無線通信(例えばPHS(Personal Handy-phone System))等に対応する通信アダプタを用いて移動端末をネットワークに接続する必要がある。
【0004】
移動端末が利用される様々な場所においては、1つ又は複数の通信媒体を利用して移動端末をネットワークに接続することが可能である。予め複数種類の通信媒体に対応する複数の通信アダプタを搭載しておけば、1台の移動端末を様々な場所で、必要に応じて通信方式を切り替えてネットワークに接続することができる。
【0005】
実際に複数の端末同士がサーバアプリケーション及びクライアントアプリケーションにより通信する場合には、まず端末のハードウェアをネットワークに接続し、サービスを提供するサーバアプリケーションと前記サービスを利用するクライアントアプリケーションとの間に通信コネクションを確立する必要がある。
また、例えば障害などによって一時的に通信が途絶えた場合でも通信の継続を可能にするために、サーバアプリケーションとクライアントアプリケーションとの間にプロキシと呼ばれる中継装置を介在するように通信経路を構築するのが一般的である。
【0006】
このような従来の通信システムにおいては、サーバアプリケーションとクライアントアプリケーションとの間の通信を開始する際にその通信経路が決定される。従って、通信の途中では利用するサーバアプリケーション,クライアントアプリケーション及びプロキシの組み合わせを変更することはできない。
サーバアプリケーション,クライアントアプリケーション又はプロキシを変更する場合には、通信を一旦終了し、通信コネクションを解放し、サーバアプリケーションとクライアントアプリケーションとの間の各通信コネクションをつなぎ直す必要がある。
【0007】
しかしながら、移動端末が移動しながら通信する場合には、移動に伴ってサーバアプリケーション,クライアントアプリケーション及びプロキシの位置関係が変わるため、冗長な通信経路が形成される可能性がある。例えば、不必要なプロキシを中継して通信を継続する場合が生じる。
また、例えば通信中の端末に障害が発生した場合には、通信を一旦終了し、通信コネクションを解放し、障害が生じた端末のアプリケーションやプロキシの機能を他の端末で置き換えるように通信経路を再構築して最初から通信をやり直す必要がある。
【0008】
また、例えばユーザが利用する端末を画面の小さい移動端末から画面の大きい固定端末(例えばデスクトップパソコン)に切り替えようとする場合にも、移動端末の通信を終了し、通信コネクションを解放し、固定端末を用いて新たな通信経路を構築し、通信を最初からやり直す必要がある。
ところで、IP(Internet Protocol)ネットワークにおける通信経路の決定(ルーチング)においては、一般的に物理的なネットワークの構成を意識している。
【0009】
そのため、いくつかのローカルネットワークの固まりであるドメイン内でのルーチングとドメイン間でのルーチングといったように階層構造が形成されている。そして、階層構造を保持することを前提としてルーチングテーブルの容量を制限することが可能になっている。
【0010】
一方、階層構造を持たないフラットなネットワークとしてアドホックネットワークが知られている。アドホックネットワークにおいては、無線ノード間で直接通信することでネットワークを構成する。
アドホックネットワークでは、無線通信を利用するため同報通信を容易に行うことができ、ルーチングに必要な情報を近隣のホストに通知する際に、ネットワーク上のリソース消費を最小限に抑制できる。
【0011】
【発明が解決しようとする課題】
IPネットワークにおける従来のルーチングでは、階層構造を維持管理するために、ネットワーク内の一部のノードにルーチングの機能が集中するのは避けられない。
また、アドホックネットワークで採用されているルーチングの方式では、近隣への同報通信が最小限のリソース消費で行えないネットワークにおいて効率が大きく低下する。従って、アドホックネットワークのルーチングをIPネットワークで利用することはできない。
【0012】
また、従来のルーチング制御では、下位層が特定のデータリンクより外に転送することのないリンク層であるため、ネットワーク内のノード間では上位層のルーチングのプロトコルを具備していないと通信できない。
また、多くの企業や機関ではネットワーク層(IPレベル)の通信を遮断するファイアウォール(ネットワークの防護壁)が設置されているが、エンド−エンドのアプリケーションがネットワーク層で提供される通信機能で完結する通信はこのファイアウォールを超えて動作することができない。
【0013】
本発明は、階層構造を持たないフラットな仮想ネットワークについてルーチングを行う場合に下位のネットワークにおける各ノード間の接続性は確保されてことを前提として、リソース消費の低減及び効率の改善が可能なルーチング制御方法及びルーチング制御装置を提供するとともに、プロキシで構成される通信ネットワークを用いることにより、ファイアウォールを超える通信を可能にすることを目的とする。
【0014】
【課題を解決するための手段】
請求項1は、ノードを構成する各通信装置にアプリケーションプログラム及び通信を中継するプロキシの少なくとも一方が設けられ、アプリケーションプログラムを備える複数のノードが複数のプロキシ及び所定のネットワークを介して互いに接続される通信システムにおいて、プロキシが配置された各ノードの制御に用いるルーチング制御方法であって、各々のアプリケーションプログラム及び各々のプロキシを特定するサービスアドレス、並びに各々の通信を表すセッションを管理し、各々のアプリケーションプログラムの所在及び各々のプロキシの所在をリソーステーブルとして管理し、宛先のアプリケーションプログラムを表す第1のサービスアドレスと、前記宛先に接続されている通信経路上で自プロキシの次ホップに位置する他のプロキシを表す第2のサービスアドレスとの対応関係をプロキシルーチングテーブルとして管理し、各ノードに存在する通信デバイスのネットワークアドレスをロケーションテーブルとして管理し、自ノードで管理されている情報が更新された場合、もしくは自ノードに存在しない情報の検索が必要になった場合に、前記リソーステーブルもしくはロケーションテーブルで管理されている他のノードに対してメッセージを送信し、自ノードが他ノードからの検索を要求するメッセージを受信し、要求された情報が自ノードに存在する場合には、検索の結果をメッセージの発信元に送信し、自ノードが他ノードからの検索を要求するメッセージを受信し要求された情報が自ノードに存在しない場合、もしくは情報の更新を示すメッセージを受信した場合には、メッセージの発信元からのホップ数が制限値を超えていなければ、受信したメッセージの内容を前記リソーステーブルもしくはロケーションテーブルで管理されている他のノードに対して転送することを特徴とする。
【0015】
請求項1においては、プロキシルーチングテーブルを参照することにより宛先のアプリケーションプログラムと、次ホップの他のプロキシとの対応関係を把握できるので、次ホップの他のプロキシと宛先のアプリケーションプログラムとの間でネットワークの構成が変化した場合であっても、再接続すべきプロキシを自動的に認識しサービスを継続することができる。
【0016】
また、リソーステーブルに基づいて各々のアプリケーションプログラムの所在及び各々のプロキシの所在を認識でき、ロケーションテーブルに基づいて各ノードに存在する通信デバイスのネットワークアドレスを認識できる。
また、ネットワークの変化によって自ノードの各テーブルで管理されている情報が更新された場合には、その変化をメッセージとして他のノードに通知することによりネットワークの変化を各ノードで把握できる。
【0017】
また、自ノードに存在しない情報の検索が必要になった場合には他のノードに対して検索を要求するメッセージを送ることにより、他のノードで管理されている情報を利用できる。
一方、ネットワークの変化などに伴って大量のメッセージをネットワーク上に送出すると、ネットワークの利用効率が低下する。また、各ノードの処理能力やノード上のテーブルに蓄積できる情報量には限りがある。
【0018】
しかし、請求項1では各ノードが受信したメッセージを転送する場合の発信元からのホップ数を制限値に抑制するので、ネットワーク上に送出されるメッセージの量を抑制でき、各ノードのテーブルに追加される情報量も抑制できる。
請求項2は、請求項1のルーチング制御方法において、他のノードが発信した同一のメッセージを複数受信した場合には、1つのメッセージに対してのみ処理を実施し、残りのメッセージは無視することを特徴とする。
【0019】
ネットワーク上に送出されるメッセージについては、複数の経路を経由して同一のノードに同一のメッセージが複数回届く可能性がある。請求項2においては、同一のメッセージを複数受信した場合に1つのメッセージに対してのみ処理を実施するので、各ノードにおけるメッセージに対する処理量を減らすとともにネットワーク上に送出される無駄なメッセージを減らすことができる。
【0020】
請求項3は、請求項1のルーチング制御方法において、受信したメッセージを各ノードが他のノードに転送する場合の転送先のノード数を所定数に制限することを特徴とする。
請求項3においては、各ノードが送出するメッセージの転送先ノード数が抑制されるので、ネットワーク上に現れるメッセージの総数を減らし、ネットワークの利用効率を改善することができる。
【0021】
請求項4は、請求項1のルーチング制御方法において、複数のノード間を転送される前記メッセージが通過したノード、並びに同じメッセージが既に送信されたノードに関する履歴情報を前記メッセージに含め、各ノードが受信したメッセージを転送する場合には、履歴情報を調べてそれに含まれるノードを転送先のノードから除外することを特徴とする。
【0022】
請求項4においては、履歴情報に基づいてメッセージが既に通過したノード並びに同じメッセージが既に送信されたノードに対しては同じメッセージを送出しないように制御するので、同一のノードに同じメッセージが繰り返し届くのを防止してネットワークの効率を改善することができる。
請求項5は、請求項1のルーチング制御方法において、自ノードが管理している他のノードのそれぞれについて、自ノードと他のノードとの間の通信頻度及び管理している情報の類似度の少なくとも一方を表す情報を管理し、各ノードが受信したメッセージを転送する場合には、通信頻度の高いノード又は類似度の高いノードを優先的に転送先として選択することを特徴とする。
【0023】
請求項5においては、通信頻度の高いノード又は類似度の高いノードを優先的に転送先として選択するので、情報の検索を行う場合には目的とする情報が存在する確率の高いノードに対して検索を要求し、効率的に検索を行うことができる。また、情報の更新を行う場合には、その情報を必要とする確率の高いノードに対してメッセージを送信することができる。
【0024】
従って、比較的少ないメッセージをネットワークに送出するだけでルーチングに必要な情報の検索及び情報の更新を行うことができる。
請求項6は、請求項1のルーチング制御方法において、自ノードが管理している他のノードのそれぞれについて、自ノードと他のノードとの間の通信頻度を表す重要度の情報を管理し、各テーブルで管理されている情報の容量が制限値を超えた場合には、前記重要度が低いノードに関する情報を優先的にテーブルから削除することを特徴とする。
【0025】
請求項6においては、各テーブルで管理されている情報の容量が制限値を超えた場合には、ノード間の通信頻度が小さいノードに関する情報を優先的にテーブルから削除するので、重要な情報だけをテーブルに残すことができ、テーブルの記憶容量が小さいノードであっても効率的なルーチングが可能になる。
請求項7は、ノードを構成する各通信装置にアプリケーションプログラム及び通信を中継するプロキシの少なくとも一方が設けられ、アプリケーションプログラムを備える複数のノードが複数のプロキシ及び所定のネットワークを介して互いに接続される通信システムにおいて、プロキシが配置された各ノードの制御に用いるルーチング制御装置であって、各々のアプリケーションプログラム及び各々のプロキシを特定するサービスアドレス、並びに各々の通信を表すセッションを管理するセッション管理手段と、各々のアプリケーションプログラムの所在及び各々のプロキシの所在を管理するリソーステーブルと、宛先のアプリケーションプログラムを表す第1のサービスアドレスと、前記宛先に接続されている通信経路上で自プロキシの次ホップに位置する他のプロキシを表す第2のサービスアドレスとの対応関係を管理するプロキシルーチングテーブルと、各ノードに存在する通信デバイスのネットワークアドレスを管理するロケーションテーブルと、自ノードで管理されている情報が更新された場合、もしくは自ノードに存在しない情報の検索が必要になった場合に、前記リソーステーブルもしくはロケーションテーブルで管理されている他のノードに対してメッセージを送信するメッセージ送信手段と、自ノードが他ノードからの検索を要求するメッセージを受信し、要求された情報が自ノードに存在する場合には、検索の結果をメッセージの発信元に送信する検索結果送信手段と、自ノードが他ノードからの検索を要求するメッセージを受信し要求された情報が自ノードに存在しない場合、もしくは情報の更新を示すメッセージを受信した場合には、メッセージの発信元からのホップ数が制限値を超えていなければ、受信したメッセージの内容を前記リソーステーブルもしくはロケーションテーブルで管理されている他のノードに対して転送するメッセージ転送手段とを設けたことを特徴とする。
【0026】
請求項7のルーチング制御装置を用いることにより請求項1のルーチング制御方法を実現できる。
請求項8は、請求項7のルーチング制御装置において、前記検索結果送信手段及びメッセージ転送手段は、他のノードが発信した同一のメッセージを複数受信した場合には、1つのメッセージに対してのみ処理を実施し、残りのメッセージは無視することを特徴とする。
【0027】
請求項8のルーチング制御装置を用いることにより請求項2のルーチング制御方法を実現できる。
請求項9は、請求項7のルーチング制御装置において、受信したメッセージを各ノードが他のノードに転送する場合の転送先のノード数を所定数に制限する転送先ノード数制限手段を更に設けたことを特徴とする。
【0028】
請求項9のルーチング制御装置を用いることにより請求項3のルーチング制御方法を実現できる。
請求項10は、請求項7のルーチング制御装置において、複数のノード間を転送される前記メッセージに通過したノードの履歴情報が含まれる場合に、各ノードが受信したメッセージを転送する場合には、履歴情報を調べてそれに含まれるノードを転送先のノードから除外する履歴識別手段を更に設けたことを特徴とする。
【0029】
請求項10のルーチング制御装置を用いることにより請求項4のルーチング制御方法を実現できる。
請求項11は、請求項7のルーチング制御装置において、自ノードが管理している他のノードのそれぞれについて、自ノードと他のノードとの間の通信頻度及び管理している情報の類似度の少なくとも一方を表す情報を管理する通信頻度管理手段と、各ノードが受信したメッセージを転送する場合には、通信頻度の高いノード又は類似度の高いノードを優先的に転送先として選択する転送先選択手段とを更に設けたことを特徴とする。
【0030】
請求項11のルーチング制御装置を用いることにより請求項5のルーチング制御方法を実現できる。
請求項12は、請求項7のルーチング制御装置において、自ノードが管理している他のノードのそれぞれについて、自ノードと他のノードとの間の通信頻度を表す重要度の情報を管理する重要度管理手段と、各テーブルで管理されている情報の容量が制限値を超えた場合には、前記重要度が低いノードに関する情報を優先的にテーブルから削除するテーブル情報削除手段とを更に設けたことを特徴とする。
【0031】
請求項12のルーチング制御装置を用いることにより請求項6のルーチング制御方法を実現できる。
請求項13は、ノードを構成する各通信装置にアプリケーションプログラム及び通信を中継するプロキシの少なくとも一方が設けられ、アプリケーションプログラムを備える複数のノードが複数のプロキシ及び所定のネットワークを介して互いに接続される通信システムに適用され、プロキシが配置された各ノードをルーチング制御するためのコンピュータで実行可能な制御プログラムを記録した記録媒体であって、前記制御プログラムには、各々のアプリケーションプログラム及び各々のプロキシを特定するサービスアドレス、並びに各々の通信を表すセッションを管理する手順と、各々のアプリケーションプログラムの所在及び各々のプロキシの所在をリソーステーブルとして管理する手順と、宛先のアプリケーションプログラムを表す第1のサービスアドレスと、前記宛先に接続されている通信経路上で自プロキシの次ホップに位置する他のプロキシを表す第2のサービスアドレスとの対応関係をプロキシルーチングテーブルとして管理する手順と、各ノードに存在する通信デバイスのネットワークアドレスをロケーションテーブルとして管理する手順と、自ノードで管理されている情報が更新された場合、もしくは自ノードに存在しない情報の検索が必要になった場合に、前記リソーステーブルもしくはロケーションテーブルで管理されている他のノードに対してメッセージを送信する手順と、自ノードが他ノードからの検索を要求するメッセージを受信し、要求された情報が自ノードに存在する場合には、検索の結果をメッセージの発信元に送信する手順と、自ノードが他ノードからの検索を要求するメッセージを受信し要求された情報が自ノードに存在しない場合、もしくは情報の更新を示すメッセージを受信した場合には、メッセージの発信元からのホップ数が制限値を超えていなければ、受信したメッセージの内容を前記リソーステーブルもしくはロケーションテーブルで管理されている他のノードに対して転送する手順とを設けたことを特徴とする。
【0032】
請求項13の記録媒体に記録された制御プログラムを実行することにより、請求項1の方法を実施できる。
請求項14は、ノードを構成する各通信装置にアプリケーションプログラム及び通信を中継するプロキシの少なくとも一方が設けられ、アプリケーションプログラムを備える複数のノードが複数のプロキシ及び所定のネットワークを介して互いに接続される通信システムに適用され、プロキシが配置された各ノードをルーチング制御するためのコンピュータで実行可能な制御プログラムであって、各々のアプリケーションプログラム及び各々のプロキシを特定するサービスアドレス、並びに各々の通信を表すセッションを管理する手順と、各々のアプリケーションプログラムの所在及び各々のプロキシの所在をリソーステーブルとして管理する手順と、宛先のアプリケーションプログラムを表す第1のサービスアドレスと、前記宛先に接続されている通信経路上で自プロキシの次ホップに位置する他のプロキシを表す第2のサービスアドレスとの対応関係をプロキシルーチングテーブルとして管理する手順と、各ノードに存在する通信デバイスのネットワークアドレスをロケーションテーブルとして管理する手順と、自ノードで管理されている情報が更新された場合、もしくは自ノードに存在しない情報の検索が必要になった場合に、前記リソーステーブルもしくはロケーションテーブルで管理されている他のノードに対してメッセージを送信する手順と、自ノードが他ノードからの検索を要求するメッセージを受信し、要求された情報が自ノードに存在する場合には、検索の結果をメッセージの発信元に送信する手順と、自ノードが他ノードからの検索を要求するメッセージを受信し要求された情報が自ノードに存在しない場合、もしくは情報の更新を示すメッセージを受信した場合には、メッセージの発信元からのホップ数が制限値を超えていなければ、受信したメッセージの内容を前記リソーステーブルもしくはロケーションテーブルで管理されている他のノードに対して転送する手順とを設けたことを特徴とする。
【0033】
請求項14の制御プログラムを実行することにより、請求項1の方法を実施できる。
【0034】
【発明の実施の形態】
本発明の実施の形態について以下に説明する。この形態は全ての請求項に対応する。
【0035】
この形態では、請求項7のセッション管理手段,リソーステーブル,プロキシルーチングテーブル,ロケーションテーブル,メッセージ送信手段,検索結果送信手段及びメッセージ転送手段は、それぞれセッション管理部502,リソーステーブルRST,プロキシルーチングテーブルPRT,ロケーションテーブルLCT,ステップS316,ステップS306及びステップS305(S316)に対応する。
【0036】
また、請求項9の転送先ノード数制限手段はステップS305(S316)に対応する。請求項10の履歴識別手段はステップS305(S316)に対応する。請求項11の通信頻度管理手段はステップS324〜S327に対応し、請求項11の転送先選択手段はステップS305(S316)に対応する。請求項12の重要度管理手段はステップS324〜S327に対応し、請求項12のテーブル情報削除手段はステップS322に対応する。
【0037】
本発明の特徴的な説明に入る前に、本発明を実施する際に必要とされる基本技術について説明する。
(第1の基本技術)
図30〜図49を参照して説明する。
図30はプロキシ及びアプリケーションを切り替える場合の制御シーケンスを示すシーケンス図である。図31はプロキシ及びアプリケーションを切り替える場合の通信経路の例を示すブロック図である。図32はセッションにプロキシを追加する場合の制御シーケンスを示すシーケンス図である。図33はセッションにプロキシを追加する場合の通信経路の例を示すブロック図である。
【0038】
図34はセッションからプロキシを削除する場合の制御シーケンスを示すシーケンス図である。図35はセッションからプロキシを削除する場合の通信経路の例を示すブロック図である。図36はセッション上のプロキシを置換する場合の制御シーケンスを示すシーケンス図である。図37はセッション上のプロキシを置換する場合の通信経路の例を示すブロック図である。
【0039】
図38は通信システムの構成例を示すブロック図である。図39は移動端末の構成例を示すブロック図である。図40はサービス管理部SRが保持する情報の例を示す模式図である。図41は位置管理部LRが保持する情報の例を示す模式図である。図42はセッション管理部SMが保持する情報の例を示す模式図である。
【0040】
図43は通信システムの構成例を示すブロック図である。図44はネットワークの構成例を示すブロック図である。図45はノード及びサービスの移動モデルを示すブロック図である。図46は端末の移動時の位置情報更新手順を示すシーケンス図である。
この形態では、例えば図38に示すような通信システムを利用する場合を想定している。図38の例では、3種類のサブネットワーク51,52,53が広域ネットワーク54を介して互いに接続されている。
【0041】
サブネットワーク51においては、イーサネット(登録商標)の規格に沿って構成された通信インタフェースを介して、有線で多数の端末(55,56)を互いに通信可能な状態で接続することができる。
サブネットワーク52は無線LANを構成している。この規格に適合する無線通信インタフェースを備える移動端末59,60は、基地局57,58との間で無線通信が可能であり、無線でサブネットワーク52と接続される。勿論、特定の通信可能エリアの外では基地局57,58との通信はできない。
【0042】
サブネットワーク53は、公衆無線通信システムであるPHSのネットワークである。図38の例では、サブネットワーク53には移動端末61,固定端末62及びTAP(PIAFS用ターミナルアダプタ)63が接続され、TAP63には基地局64,65が接続されている。PHSの通信規格に沿って構成された無線通信インタフェースを備える移動端末66,67は、基地局64,65との間で無線通信が可能である。勿論、特定の通信可能エリアの外では基地局64,65との通信はできない。
【0043】
例えば、図38に示す移動端末59が移動端末55の近傍に移動した場合には、移動端末59は基地局57との無線通信ができなくなる可能性がある。しかし、その位置では移動端末59を有線でサブネットワーク51に接続することができる。
【0044】
一般的なシステムの場合、端末が通信のために利用するネットワークをサブネットワーク51,52,53の間で切り替える場合には、アプリケーションの通信を一旦終了して通信経路を再構築する必要があるため手間がかかる。
ここで説明する技術を用いることにより、端末が通信のために利用するネットワークをサブネットワーク51,52,53の間で切り替える場合であっても、アプリケーションの通信を終了することなく自動的に切替を行うことができる。
【0045】
また、例えば移動端末55及び固定端末56に同一のアプリケーションプログラムが存在する場合には、一人のユーザが移動端末55上のアプリケーションプログラムを利用して通信している途中で、固定端末56上のアプリケーションプログラムに切り替えて継続的に通信を行うこともできる。
ここで用いる各端末(この例では移動端末)は、図39のように構成される。図39の移動端末は、サブネットワーク51との接続を可能にするためにイーサネット(登録商標)通信アダプタ21を備え、サブネットワーク52との接続を可能にするために無線LANアダプタ22を備え、サブネットワーク53との接続を可能にするためにPHS通信アダプタ23を備えている。
【0046】
また、図39の移動端末はソフトウェア10としてサーバアプリケーション11,クライアントアプリケーション12,プロキシ13,エージェント14,リンク切替部15,リンク16,17,18,位置管理部LR,セッション管理部SM及びサービス管理部SRを備えている。
サーバアプリケーション11は、特定のアプリケーションのサービスを提供するためのプログラムである。クライアントアプリケーション12は、特定のアプリケーションについてサーバが提供するサービスを利用するためのプログラムである。
【0047】
プロキシ13は、ある送信元からある受信先への通信の中継を行うとともに通信の内容をそれ自身の記憶装置に蓄積する。例えば、一時的にプロキシ13と受信先との間の通信が不能になった場合であっても、送信元からプロキシ13に入力される通信の内容はプロキシ13に蓄積されるので、プロキシ13と受信先との間の通信が回復した場合には、プロキシ13に蓄積された情報を受信先に送信し通信を継続することができる。
【0048】
図39のプロキシ13は、サーバアプリケーション11の通信又はクライアントアプリケーション12の通信を中継することができる。
リンク切替部15は他の端末との間の通信に利用するリンク16,17,18を切り替える。リンク16はイーサネット(登録商標)通信アダプタ21と接続され、リンク17は無線LANアダプタ22と接続され、リンク18はPHS通信アダプタ23と接続されている。
【0049】
リンク16及びイーサネット(登録商標)通信アダプタ21を利用して通信する場合には、サブネットワーク51を介して通信することができ、リンク17及び無線LANアダプタ22を介して通信する場合には、サブネットワーク52を介して通信することができ、リンク18及びPHS通信アダプタ23を利用する場合には、サブネットワーク53を介して通信することができる。
【0050】
つまり、リンク切替部15で使用するリンク16,17,18を切り替えることにより通信方式を切り替えて、サブネットワーク51,52,53のいずれかに接続することができる。
通信を行う各端末には、それぞれIP(Internet Protocol)アドレスが割り当てられる。また、端末が通信方式を切り替える際には、アドレスの割り当て単位であるサブネットの境界を超えて端末がネットワーク上を移動することになるため、切替のたびに新たなアドレスを用いる。
【0051】
サービス管理部SRは各端末に備わっているサーバアプリケーション11,クライアントアプリケーション12及びプロキシ13の種類や機能の情報を管理している。
【0052】
実際には、例えば図40に示す内容がサービス管理部SRに保持される。図40の例では、端末A11はアプリケーションプログラムとしてサーバB11を保持し、プロキシC11を備えている。また、端末A12はアプリケーションプログラムとしてサーバB12を保持し、プロキシC12を備えている。更に、端末A13はアプリケーションプログラムとしてクライアントB13を保持し、プロキシC13を備えている。
【0053】
位置管理部LRは端末毎にIPアドレスを管理する。位置管理部LRは、それを備えた端末だけでなく、多数の端末のIPアドレスを管理することができる。但し、位置管理の効率向上のため、ならびにリソースの少ない端末でも位置の管理ができるようにするため、端末の移動量及び位置管理に関する記憶可能容量の管理も行う。更に、管理する端末の範囲を限定するために複数の端末をグループで区分して管理する。
【0054】
実際には、例えば図41に示すように、端末の識別名E10,グループ名E11,IPアドレスE12,各IPアドレスの状態(利用可否)E13,移動量E14,LRの記憶容量及び更新時刻の情報が管理している特定グループの端末毎に保持される。
また、端末の移動などに伴って通信デバイスを切り替えた場合にはその端末のIPアドレスが変化するので、この場合には位置管理部LRの保持する内容を更新する。同時に、通信相手が存在する場合には、その通信相手に対して位置情報の更新命令を送信する。すなわち、図46に示す更新手順を実行する。
【0055】
また、各端末が位置情報の更新命令を送信する場合には、所定の優先順位を考慮して命令を送信する順序を決定する。例えば、固定端末(デスクトップパソコンなど)56のように移動量の少ない端末については高い優先順位を与える。また、位置情報の記憶容量(E15)が大きい端末についても高い優先順位を与える。
【0056】
位置管理部LRの管理に用いられる各々のグループには、サブネットの境界を超える範囲に存在する複数の端末を含めることができる。また、1つのサブネット内には複数のグループを共存させることができる。
新たにグループに加入しようとする端末(X1)は、そのIPアドレスを取得し、グループ検索要求をサブネットワーク内にブロードキャストするか、又は既知の特定の端末(X2)に対してグループ検索要求を送信する。
【0057】
その後、端末(X1)はグループ検索要求を受け取った端末(X2)からの応答を受信すると、その内容からグループの情報を取得し、加入するグループを選択する。
また、端末(X1)は端末(X2)に対して選択したグループへの登録要求を送信する。端末(X2)はこの登録要求を送信した端末(X1)の位置情報を取得する。
【0058】
また、登録要求を受信した端末(X2)がそれに含まれる位置管理部LRの情報を端末(X1)に送信し、加入した端末(X1)の位置情報を位置管理部LRの内容に追加することによりグループへの加入手続きが完了する。
各端末に関する位置情報の検索を行う場合には、その端末自身に含まれる位置管理部LRの保持している情報から位置情報の検索を行う。検索できなかった場合には、位置管理部LRの保持している情報に含まれる任意の端末に対して検索要求を送出する。この検索要求に対して結果が返ってきたら、その位置情報を位置管理部LRに追加する。
【0059】
また、サブネット内の同じグループに属している端末を検索する場合には、ブロードキャストパケットを送信し、それに対する応答に基づいて位置管理部LRに位置情報を登録する。
位置管理部LRには、次に示す機能が含まれている。
(1)端末位置の移動などに伴うIPアドレスの変更
(2)ノードの離脱,回線断,障害などに伴うIPアドレスの状態の変更
(3)エージェント14に対する変更の通知
(4)グループへの参加及び離脱
(5)グループ内のノードの位置管理部LRとの間の位置情報の送受信
図39のセッション管理部SMは、各々の通信についてその通信経路の全体をセッションとして管理している。例えば、図44においては、セッション103を用いてアプリケーション101とアプリケーション102との間で通信することができる。この場合、セッション103にはプロキシ104,105,106が含まれている。
【0060】
また、セッション103は通信コネクション107,108,109,110を利用する。通信コネクション107は、アプリケーション102とプロキシ104との間に確立された通信路である。通信コネクション108は、プロキシ104,105の間に確立された通信路である。通信コネクション109は、プロキシ105,106の間に確立された通信路である。通信コネクション110は、アプリケーション101とプロキシ106との間に確立された通信路である。
【0061】
実際のセッション管理部SMは、例えば図42に示すような情報G11〜G18を保持している。情報G11は、複数のセッションを区別するための識別子である。情報G12は、利用するサーバアプリケーションが存在するノード(端末)の名称を表す。情報G13は、利用するサーバアプリケーションに与えられたポート番号を表す。
【0062】
また、情報G14は利用するクライアントアプリケーションが存在するノードの名称を表す。情報G15は、利用するクライアントアプリケーションに与えられたポート番号を表す。情報G16は、利用するプロキシが存在するノードの名称を表す。情報G17は、利用するプロキシに与えられたポートの番号を表す。また、複数のプロキシを中継するように1つのセッションの通信経路を構成している場合には、利用する複数プロキシのそれぞれのノード名,ポート番号及び複数プロキシの接続状態が1つのセッションID(G11)に関連付けられてセッション管理部SMに保持される。
【0063】
セッション管理部SMが実行する機能としては、各セッションに対するプロキシの追加,プロキシの削除,プロキシの切替や、他の端末に存在するセッション管理部SMとの間の通信がある。
図39のエージェント(アプリケーションとは異なる)14は、位置管理部LR,セッション管理部SM,サービス管理部SRが保持している様々な情報を仲介し、それらの情報の総合的な判断により、プロキシ13及びリンク切替部15を制御する。
【0064】
例えば、所定の通信サービスを継続した状態でそのサービスを現在提供しているサーバアプリケーションを終了させたい場合には、それと同じ種類の代わりのサーバアプリケーションについてサービス管理部SRを用いて検索することができる。
また、位置管理部LRには端末の識別名及びそのIPアドレスが保持されているので、切替先のサーバアプリケーションが存在する端末の位置を特定できる。更に、セッション管理部SMで管理されている特定のセッションの情報を利用して後述する処理を行うことにより、サーバアプリケーションを切り替えて通信サービスを継続することができる。
【0065】
エージェント14は、リンク切替部15に対してリンク切替を命令するとともに、リンク切替後、プロキシに通信コネクションの再開処理を依頼する。リンク切替部15は、新しいリンクへの接続,リンクの切断,ルーティング管理などの機能を有している。また、プロキシは、コネクション下のリンクの切断や変更を隠蔽する機能を有している(図45参照)。
【0066】
ある移動元からある移動先にサービスを移動する場合には、そのサービスの通信で利用しているセッションから、移動先のアプリケーション又はプロキシ上に構築されるサービスに対して移動元のサービスの状態を転送することで実現することができる。転送すべきサービスの状態としては、セッションを構成しているアプリケーション及びプロキシの接続状態,送受信しているデータのバイト数,フレーム数などがある。
【0067】
例えば、携帯型の移動端末を用い、無線回線及びネットワークを介して特定のサーバアプリケーションからストリームデータを受信し閲覧している場合には、端末の表示能力が低いため品質の高いサービスを受けることができない。しかし、ユーザが移動端末から画面の大きい固定端末にサービスを移動すれば、品質の高いサービスを受けることができる。このような移動の場合でも、継続的にサービスを利用することができる。
【0068】
また、同じサーバアプリケーションが複数の端末に存在する場合には、サーバ側の端末及びアプリケーションを切り替えるようにサービスの提供に利用される通信経路を切り替えることもできる。端末の切替により、サービスの通信速度を改善することも可能である。
サービスの提供に利用される通信経路を切り替える場合や、サーバアプリケーション又はクライアントアプリケーションを切り替える場合の具体例について以下に説明する。ここでは、図43に示すような通信システムを想定する。
【0069】
図43においては移動端末30(1)〜30(5)のそれぞれの機能を簡略化して表してある。実際には、移動端末30(1)〜30(5)のそれぞれは図39に示す移動端末と同様の機能を有している。
但し、サーバアプリケーション11は移動端末30(1)だけに設けてあり、クライアントアプリケーション12は移動端末30(2)及び30(3)だけに設けてある。また、移動端末30(5)にはセッション管理部SMが備わっていない。なお、移動端末30(5)のプロキシ13を利用する場合には、移動端末30(5)以外の移動端末30に備わったセッション管理部SMを利用して制御を行えばよい。
【0070】
まず、プロキシ及びアプリケーションを切り替える場合について説明する。具体的には、切替前の状態では図31において移動端末30(1)のサーバアプリケーション11(1)とプロキシ13(1)との間に通信コネクション201が確立され、プロキシ13(1)とプロキシ13(2)との間に通信コネクション202が確立され、クライアントアプリケーション12(2)とプロキシ13(2)との間に通信コネクション203が確立され、サーバアプリケーション11(1)−プロキシ13(1)−プロキシ13(2)−クライアントアプリケーション12(2)の通信経路を通るようにセッションが形成されている場合を想定している。
【0071】
ここで、移動端末30(2)上のクライアントアプリケーション12(2)の代わりに移動端末30(3)上のクライアントアプリケーション12(3)を利用して継続的にサーバアプリケーション11(1)のサービスを受けようとする場合には、セッション管理部SM(2)の機能を利用して、図30に示す制御シーケンスを実行する。すなわち、プロキシ13(2)からプロキシ13(3)に切り替える。
【0072】
ユーザの利用状態及び端末間の接続状態を管理している端末のエージェント14は、必要に応じて(例えばユーザの指示により)アプリケーション(AP)の切替要求を発生する。
この切替要求は、例えばセッション管理部SM(2)に通知される。この場合、セッション管理部SM(2)は図30のステップS11を実行する。すなわち、切替先のクライアントアプリケーション12(3)との間で通信コネクション204が確立された切替先のプロキシ13(3)に切り替えるために、プロキシ13(3)に対して切替に関する問い合わせを行う。この問い合わせの際には、該当するセッションのセッションIDやプロキシの接続状態の情報もパラメータとしてセッション管理部SM(2)からプロキシ13(3)に送信する。
【0073】
このパラメータには、切替元のプロキシ13(2)が転送を中継しているファイルのファイル名及び転送を終了したバイト数(ファイル上の現在の転送位置)も含まれている。
【0074】
問い合わせを受けたプロキシ13(3)は、受信したパラメータに基づいて、必要なプロセス等を起動し、ステップS12で通信の中継をするための準備を行う。このプロキシ13(3)は、受信したパラメータに基づいて切替元のプロキシ13(2)の状態を継承する。
また、この準備においては、必要なアプリケーション12(3)が起動していない場合には、そのアプリケーション12(3)をプロキシ13(3)が起動する。また、アプリケーション12(3)とプロキシ13(3)との間の通信コネクション204が確立していない場合には、通信コネクション204を確立する。
【0075】
準備が完了したら、ステップS13でプロキシ13(3)はセッション管理部SM(2)に対して準備完了通知を送信する。
セッション管理部SM(2)は、準備完了通知を受信するとステップS14で、切替元のプロキシ13(2)との間で通信コネクション202を確立していたプロキシ13(1)に対して切替要求を送信する。この切替要求には、パラメータとして切替先のプロキシ13(3)に関するノード名(G16)及びポート番号(G17)が含まれている。
【0076】
プロキシ13(1)は、切替要求を受信した場合には、切替要求のパラメータ及びセッションIDを利用して、プロキシ13(3)の接続ポイント(端末のIPアドレスとプロキシ13(3)のポート番号)に対して通信コネクション205を確立する(S15)。
プロキシ13(3)はプロキシ13(1)との間で通信コネクション205が確立すると、通信コネクション205の確立の際に受信したセッションIDで定まる特定のセッションについて、通信コネクション204及びクライアントアプリケーション12(3)を関連付ける(S16)。これにより、通信コネクション205と通信コネクション204との間の通信を中継(蓄積転送)するためのプロキシ13(3)の準備が完了する。
【0077】
また、プロキシ13(1)はそれまでに通信コネクション202を介して行っていた全ての通信を通信コネクション205に切り替える(S17)。この切替が完了した後、プロキシ13(1)はセッション管理部SM(2)に対して切替の完了通知を送信する(S18)。
セッション管理部SM(2)は、完了通知を受信すると管理しているテーブルの内容を更新する(S19)。すなわち、セッションIDで定まる特定のセッション(今回の処理で切替を行ったセッション)について、切替後のクライアントアプリケーション12(3)及びプロキシ13(3)のノード名及びポート番号ならびにそれらの接続関係を反映するように情報を更新する。
【0078】
また、セッション管理部SM(2)は、変更を行ったセッションの情報を管理している他のセッション管理部SM(1),SM(3),SM(4)に対して変更した情報を通知する(S21)。
以上の制御シーケンスの結果、図31に示すようにサーバアプリケーション11(1)とクライアントアプリケーション12(2)との間の通信で提供していたサービスが、サーバアプリケーション11(1)とクライアントアプリケーション12(3)との間の通信に切り替わるようにセッション(通信経路)の内容が変更される。
【0079】
次に、セッションにプロキシを追加する場合について説明する。具体的には、追加前の状態では図33に示すようにサーバアプリケーション11(1)とプロキシ13(1)との間に通信コネクション211が確立され、プロキシ13(1),13(2)の間に通信コネクション212が確立され、プロキシ13(2)とクライアントアプリケーション12(2)との間に通信コネクション213が確立され、2つのプロキシ13(1),13(2)がサーバアプリケーション11(1)とクライアントアプリケーション12(2)との間の通信をを中継するようにセッションが構築されている。
【0080】
その状態から、通信を継続したままプロキシ13(1)とプロキシ13(2)との間にプロキシ13(3)を追加する場合には、セッション管理部SM(2)の機能を利用して、図32に示す制御シーケンスを実行する。
【0081】
端末のエージェント14は、必要に応じて(例えばユーザの指示により)プロキシの追加要求を発生する。この追加要求は、例えばセッション管理部SM(2)に通知される。この場合、セッション管理部SM(2)は図32のステップS31を実行する。
すなわち、追加すべきプロキシ13(3)に追加の準備をさせるために、セッション管理部SM(2)は追加の問い合わせを行う。この問い合わせの際には、該当するセッションのセッションIDやプロキシの接続状態の情報もパラメータとしてセッション管理部SM(2)からプロキシ13(3)に送信する。
【0082】
このパラメータには、プロキシ13(2)が転送を中継しているファイルのファイル名及び転送を終了したバイト数(ファイル上の現在の転送位置)も含まれている。
問い合わせを受けたプロキシ13(3)は、受信したパラメータに基づいて、必要なプロセス等を起動し、ステップS32で通信の中継をするための準備を行う。このプロキシ13(3)は、受信したパラメータに基づいてプロキシ13(2)の状態を継承する。準備が完了したら、ステップS33でプロキシ13(3)はセッション管理部SM(2)に対して準備完了通知を送信する。
【0083】
セッション管理部SM(2)は、準備完了通知を受信すると、ステップS34,S35で、追加するプロキシ13(3)と接続すべきプロキシ13(1),13(2)に対して切替要求を送信する。この切替要求には、パラメータとして追加するプロキシ13(3)に関するノード名(G16)及びポート番号(G17)が含まれる。
プロキシ13(1)及び13(2)は、切替要求を受信すると、切替要求のパラメータ及びセッションIDを利用して、プロキシ13(3)の接続ポイント(端末のIPアドレスとプロキシ13(3)のポート番号)に対して通信コネクション214又は215を確立する(S36,S37)。
【0084】
プロキシ13(3)は通信コネクション214,215が確立すると、それらのコネクションの確立の際に受信したセッションIDで定まる特定のセッションについて、通信コネクション214と通信コネクション215とを関連付ける(S38)。これにより、通信コネクション214と通信コネクション215との間の通信を中継(蓄積転送)するためのプロキシ13(3)の準備が完了する。
【0085】
一方、プロキシ13(1)はそれまでに通信コネクション212を介して行っていた全ての通信を通信コネクション214に切り替える(S41)。この切替が完了した後、プロキシ13(1)はセッション管理部SM(2)に対して切替の完了通知を送信する(S44)。
同様に、プロキシ13(2)はそれまでに通信コネクション212を介して行っていた全ての通信を通信コネクション215に切り替える(S40)。この切替が完了した後、プロキシ13(2)はセッション管理部SM(2)に対して切替の完了通知を送信する(S42)。
【0086】
セッション管理部SM(2)は、完了通知を受信すると管理しているテーブルの内容を更新する(S45)。すなわち、セッションIDで定まる特定のセッション(今回の処理でプロキシの追加を行ったセッション)について、追加したプロキシ13(3)のノード名及びポート番号ならびにプロキシ間の接続関係を反映するように情報を更新する。
【0087】
また、セッション管理部SM(2)は、変更を行ったセッションの情報を管理している他のセッション管理部SM(1),SM(3),SM(4)に対して変更した情報を通知する(S46)。
以上の制御シーケンスの結果、図33に示すようにサーバアプリケーション11(1)とクライアントアプリケーション12(2)との間の通信がプロキシ13(1)−プロキシ13(3)−プロキシ13(2)の経路で中継されるようにセッションの内容が変更される。
【0088】
次に、セッションからそれまで利用していたプロキシを削除する場合について説明する。具体的には、追加前の状態では図35に示すようにサーバアプリケーション11(1)とプロキシ13(1)との間に通信コネクション221が確立され、プロキシ13(1),13(3)の間に通信コネクション222が確立され、プロキシ13(3),13(2)の間に通信コネクション223が確立され、プロキシ13(2)とクライアントアプリケーション12(2)との間に通信コネクション224が確立され、3つのプロキシ13(1),13(3),13(2)がサーバアプリケーション11(1)とクライアントアプリケーション12(2)との間の通信をを中継するようにセッションが構築されている。
【0089】
その状態から、通信を継続したままプロキシ13(1)とプロキシ13(2)との間のプロキシ13(3)を削除(セッションから除外)する場合には、セッション管理部SM(2)の機能を利用して、図34に示す制御シーケンスを実行する。
端末のエージェント14は、必要に応じて(例えばユーザの指示により)プロキシの削除要求を発生する。この削除要求は、例えばセッション管理部SM(2)に通知される。この場合、セッション管理部SM(2)は図34のステップS51から順に処理を実行する。
【0090】
セッション管理部SM(2)は、削除対象のプロキシ13(3)との間で通信コネクション222,223を確立しているプロキシ13(1)及び13(2)のそれぞれに対して、プロキシ13(3)に関する削除要求を送信する(S51,S52)。
プロキシ13(2)は、削除要求を受信すると、セッションIDを利用して、プロキシ13(2)とプロキシ13(1)との間の通信コネクション225を確立する(S53)。
【0091】
更に、プロキシ13(2)はそれまでに通信コネクション223を介して行っていた全ての通信を通信コネクション225に切り替える(S54)。この切替が完了した後、プロキシ13(2)はセッション管理部SM(2)に対して切替の完了通知を送信する(S58)。プロキシ13(2)とプロキシ13(3)との間の通信コネクション223はプロキシ13(2)によって切断される(S56)。
【0092】
同様に、プロキシ13(1)はそれまでに通信コネクション222を介して行っていた全ての通信を通信コネクション225に切り替える(S55)。この切替が完了した後、プロキシ13(1)はセッション管理部SM(2)に対して切替の完了通知を送信する(S59)。プロキシ13(1)とプロキシ13(3)との間の通信コネクション222はプロキシ13(1)によって切断される(S57)。
【0093】
セッション管理部SM(2)は、完了通知を受信すると管理しているテーブルの内容を更新する(S60)。すなわち、セッションIDで定まる特定のセッション(今回の処理でプロキシの削除を行ったセッション)について、プロキシ間の接続関係に削除の結果を反映するように情報を更新する。
また、セッション管理部SM(2)は、変更を行ったセッションの情報を管理している他のセッション管理部SM(1),SM(3),SM(4)に対して変更した情報を通知する(S61)。
【0094】
以上の制御シーケンスの結果、図35に示すようにサーバアプリケーション11(1)とクライアントアプリケーション12(2)との間の通信がプロキシ13(1)−プロキシ13(2)の経路で中継されるようにセッションの内容が変更される。
次に、特定のセッション上で利用しているプロキシを他のプロキシに置き換える場合について説明する。具体的には、追加前の状態では図37に示すようにサーバアプリケーション11(1)とプロキシ13(1)との間に通信コネクション231が確立され、プロキシ13(1),13(4)の間に通信コネクション232が確立され、プロキシ13(4),13(2)の間に通信コネクション233が確立され、プロキシ13(2)とクライアントアプリケーション12(2)との間に通信コネクション234が確立され、3つのプロキシ13(1),13(4),13(2)がサーバアプリケーション11(1)とクライアントアプリケーション12(2)との間の通信をを中継するようにセッションが構築されている。
【0095】
その状態から、通信を継続したまま利用しているプロキシ13(4)をプロキシ13(5)に置換する場合には、セッション管理部SM(2)の機能を利用して、図36に示す制御シーケンスを実行する。
端末のエージェント14は、必要に応じて(例えばユーザの指示により)プロキシの置換要求を発生する。この置換要求は、例えばセッション管理部SM(2)に通知される。この場合、セッション管理部SM(2)は図36のステップS71を実行する。
【0096】
すなわち、置換先のプロキシ13(5)に中継の準備をさせるために、セッション管理部SM(2)は置換の問い合わせを行う。この問い合わせの際には、該当するセッションのセッションIDやプロキシの接続状態の情報もパラメータとしてセッション管理部SM(2)からプロキシ13(5)に送信する。
このパラメータには、置換元のプロキシ13(4)が転送を中継しているファイルのファイル名及び転送を終了したバイト数(ファイル上の現在の転送位置)も含まれている。
【0097】
問い合わせを受けたプロキシ13(5)は、受信したパラメータに基づいて、必要なプロセス等を起動し、ステップS72で通信の中継をするための準備を行う。このプロキシ13(5)は、受信したパラメータに基づいて置換元のプロキシ13(4)の状態を継承する。準備が完了したら、ステップS73でプロキシ13(5)はセッション管理部SM(2)に対して準備完了通知を送信する。
【0098】
セッション管理部SM(2)は、準備完了通知を受信すると、ステップS74,S75で、置換元のプロキシ13(4)との間に通信コネクション232,233を確立しているプロキシ13(1),13(2)に対して切替要求を送信する。この切替要求には、パラメータとして置換先のプロキシ13(5)に関するノード名(G16)及びポート番号(G17)が含まれる。
【0099】
プロキシ13(1)及び13(2)は、切替要求を受信すると、切替要求のパラメータ及びセッションIDを利用して、プロキシ13(5)の接続ポイント(端末のIPアドレスとプロキシ13(3)のポート番号)に対して通信コネクション235又は236を確立する(S76,S77)。
【0100】
置換先のプロキシ13(5)は、通信コネクション235,236が確立すると、それらのコネクションの確立の際に受信したセッションIDで定まる特定のセッションについて、通信コネクション235と通信コネクション236とを関連付ける(S78)。これにより、通信コネクション235と通信コネクション236との間の通信を中継(蓄積転送)するためのプロキシ13(5)の準備が完了する。
【0101】
一方、プロキシ13(2)はそれまでに通信コネクション233を介して行っていた全ての通信を通信コネクション236に切り替える(S80)。この切替が完了した後、プロキシ13(2)はセッション管理部SM(2)に対して切替の完了通知を送信する(S82)。
同様に、プロキシ13(1)はそれまでに通信コネクション232を介して行っていた全ての通信を通信コネクション235に切り替える(S81)。この切替が完了した後、プロキシ13(1)はセッション管理部SM(2)に対して切替の完了通知を送信する(S83)。
【0102】
通信コネクション232,233から通信コネクション235,236への切替が終了した後で、不要になった通信コネクション232,233は切断される(S84,S85)。
セッション管理部SM(2)は、完了通知を受信すると管理しているテーブルの内容を更新する(S86)。すなわち、セッションIDで定まる特定のセッション(今回の処理でプロキシの置換を行ったセッション)について、プロキシ間の接続関係に置換の結果を反映するように情報を更新する。
【0103】
また、セッション管理部SM(2)は、変更を行ったセッションの情報を管理している他のセッション管理部SM(1),SM(3),SM(4)に対して変更した情報を通知する(S87)。
【0104】
以上の制御シーケンスの結果、図37に示すようにサーバアプリケーション11(1)とクライアントアプリケーション12(2)との間の通信がプロキシ13(1)−プロキシ13(5)−プロキシ13(2)の経路で中継されるようにセッションの内容が変更される。
なお、サーバアプリケーション11とクライアントアプリケーション12との間で行われる通信には、セッション毎に異なる固有のセッションIDが割り当てられる。また、プロキシの接続ポイントは、ネットワーク上での位置と接続要求の受付ポートを表す。プロトコルとしてTCP/IPを想定する場合には、接続ポイントはIPアドレスとプロキシがリッスンしているポート番号になる。
【0105】
また、例えばセッションの通信経路を切り替えるために通信コネクションを切り替える際には一時的に通信ができなくなるが、そのセッションに含まれている少なくとも1つのプロキシがアプリケーションの送出する通信内容を蓄積し、通信が可能になったときには蓄積された情報を送信して通信回復作業を自動的に行う。従って、通信の途中で通信経路を切り替える場合であっても、ユーザが特別な操作を行うことなくそのまま通信を継続することができる。
【0106】
ここで説明している機能の概略は、図45に示す移動モデルで表すことができる。すなわち、ユーザが使用する端末が移動して通信方式が切り替わった場合や、ユーザが使用する端末を切り替えた場合でも、同じサービスを継続的に同じユーザに提供することができる。
ここで扱うサービスとは、各セッションを通してアプリケーション間で送受信される通信内容,それに付随する通信プロトコル(http等)及び表現方法(再生,ブラウジング等)を意味する。
【0107】
サービスを移動する場合には、同じセッションIDで示される移動元のセッションから移動先のセッションに対してサービスの状態を転送することにより、同じ状態でサービスを継続することができる。
【0108】
各端末(ノード)は、図45に示すようにリンク層のアドレス空間にマッピングされる。従って、ノードの移動はノードとアドレスとの対応関係を変更することで実現できる。また、各端末は複数の通信デバイスをもつことが可能であり、それぞれが固有のアドレスを保持することができる。
このような通信システムにおける位置管理の方式について性能を評価するために、計算機を用いてシミュレーションを実施した。シミュレーションの条件は次の通りである。
【0109】
(1)端末の移動間隔:グループを構成している多数の端末のうち(1/3)は平均移動時間が30分、残りの(2/3)の端末は平均移動時間を10分とする。
(2)端末の通信待機時間は20分とし、通信時間は50分とする。
(3)位置管理部LRの記憶容量:多数の端末のうち(1/3)のLRは全ての端末の位置情報を保持可能、他の(1/3)の端末のLRは(1/2)の端末の位置情報を保持可能、残りの(1/3)の端末のLRは(1/4)の端末の位置情報を保持可能と仮定する。
【0110】
(4)1200分間に発行された位置情報更新命令の数及び位置管理部LRの検索成功率を400試行分測定した。但し、最初の100分間については統計から除外。
(5)位置管理部LRが位置情報更新命令を送出する際には、自らが保持している全ての位置情報を送信する。受信側のLRでは、位置情報のタイムスタンプにより取捨選択して保持している位置情報を更新する。
【0111】
(6)位置情報更新命令を発行する際の端末の優先順位については2種類の方式を評価する。「Method A」の方式では位置管理部LRが自らの保持する位置情報を更新した場合に全ての端末に対して位置情報更新命令を発行する。「Method B」の方式では、移動間隔が30分でかつ全ての端末の位置情報を保持可能な記憶容量を有する端末のLRのみが全ての端末に対して位置情報更新命令を発行し、残りの端末の位置管理部LRについては、移動間隔が30分でかつ全ての端末の位置情報を保持可能な記憶容量を有する端末のみに対して位置情報更新命令を発行する。
【0112】
なお、「Method A」の方式では各端末の位置が更新されるたびに全ての端末に位置更新命令が発行されるので通信量は多くなるが、優れた位置管理能力が得られる。
上記シミュレーションの結果が図47〜図49に示されている。図47は、位置情報更新命令の発行数を示している。また、図48及び図49は位置検索成功率を示している。図48の位置検索成功率は、特定の端末の位置管理部LRが保持している位置情報の検索及び他の端末の位置管理部LRの検索によって相手端末の位置情報の取得に成功した割合である。また、図49の位置検索成功率は、特定の端末の位置管理部LRが保持している位置情報のみを検索して相手端末の位置情報の取得に成功した割合である。
【0113】
図47,図48を参照すると、「Method A」に比べて「Method B」の方が通信コストが低減(60〜80%減)され、位置検索能力の劣化も許容できる範囲であることが分かる。また、この効果はグループを構成している端末数が大きいほど顕著であり、位置検索成功率の差も小さくなる。従って、各端末の移動量や位置管理部LRの記憶容量を考慮して位置情報更新命令の発行対象となる端末を制限することにより、各端末の位置管理の負荷を分担するとともに通信量を抑制することができる。
【0114】
また、図49から分かるように、他の端末に存在する位置情報を検索しなくても、25〜45%の端末の位置を正しく検出することができる。従って、端末が一時的にネットワークから離脱している場合であっても、それ自身の位置管理部LRが保持する位置情報のみの検索により、ネットワークへの再接続の手がかりを得ることが可能である。
【0115】
(第2の基本技術)
次に図51及び図52を参照して説明する。
この形態では、HTTPの通信を行うことを想定しているので、アプリケーションとしてブラウザ5及びWebサーバ7を用いる。
図51の例では、ノード8(A),8(B)にはクライアントアプリケーションとして動作するブラウザ5が配置されているので、ノード8(A),8(B)はクライアントノードとして機能する。また、ノード8(C)にはサーバアプリケーションとして動作するWebサーバ7が配置されているので、ノード8(C)はサーバノードとして機能する。
【0116】
また、図52の例では、ノード8(A)にはクライアントアプリケーションとして動作するブラウザ5(A),5(B)が配置されているので、ノード8(A)はクライアントノードとして機能する。また、図52のノード8(C)にはサーバアプリケーションとして動作するWebサーバ7が配置されているので、ノード8(C)はサーバノードとして機能する。
【0117】
図51の例について動作を説明する。
まず、ブラウザ5(A)からプロキシ6(A),6(B)を介してWebサーバ7に要求を行う(C11)。この要求に対するWebサーバ7の応答が、プロキシ6(C),6(A)を介してブラウザ5(A)に伝送される(C12)。このとき、セッションが成立する。また、セッション毎にそれを区別するためのセッションIDが割り当てられる。
【0118】
この後で、プロキシ6(C)がサービス移動要求を受け付ける(C13)。その場合、プロキシ6(C)は通信を中断し(C14)、移動先のノード8(B)のプロキシ6(B1)に接続する(C15)。
この場合、移動先のプロキシ6(B1)は該当するセッションのセッションIDを含むURLを引数として、ブラウザ5(B)を起動する(C16)。
【0119】
起動されたブラウザ5(B)は、起動の際に指定されたURLを用いてプロキシ6(B2)に接続する(C17)。このプロキシ6(B2)は、セッションIDに基づいて、ブラウザ5(B)の通信とサーバノードであるノード8(C)のプロキシ6(C)とを結び付けてデータの転送を行う(C18)。
このようにして、サービスの連続性を確保したまま、クライアントノード簡をサービスが移動する。
【0120】
次に、図52の例について動作を説明する。
まず、ブラウザ5(A)からプロキシ6(A),6(C)を介してWebサーバ7に要求を行う(C21)。それに対するWebサーバ7の応答が、プロキシ6(C),6(A)を介してブラウザ5(A)に転送される(C22)。このとき、セッションが設立する。また、セッション毎にそれを区別するためのセッションIDが割り当てられる。
【0121】
この後で、プロキシ6(A)がサービス移動要求を受け付ける(C23)。その場合、プロキシ6(A)は該当するセッションのセッションIDを含むURLを引数として、ブラウザ5(B)を起動する(C24)。
起動されたブラウザ5(B)は、起動の際に指定されたURLを用いてプロキシ6(B2)に接続する(C25)。このプロキシ6(B2)は、セッションIDに基づいて、ブラウザ5(B)の通信とサーバノードであるノード8(C)のプロキシ6(C)とを結び付けてデータの転送を行う(C26)。
【0122】
このようにして、サービスの連続性を確保したまま、クライアントノード簡をサービスが移動する。
(第3の基本技術)
次に図53〜図55を参照して説明する。
図53は、セッションにプロキシを追加する場合の簡略化された制御シーケンスを示すシーケンス図である。図54は、セッションからプロキシを削除する場合の簡略化された制御シーケンスを示すシーケンス図である。図55は、セッション上のプロキシを置換する場合の簡略化された制御シーケンスを示すシーケンス図である。
【0123】
この形態は、前記第1の基本技術の変形例であり、制御シーケンスの内容が第1の実施の形態よりも簡略化されている。また、この形態においても図39に示すような構成の移動端末を用いることを想定している。但し、図39に示す位置管理部LR,サービス管理部SR,リンク切替部15については必ずしも必要とはしない。
【0124】
図53〜図55に示す動作の内容については第1の基本技術と同様であるが、各図の制御の内容について以下に説明する。
まず、図33の場合と同様にセッションにプロキシ13(3)を追加する場合について、図53を参照して説明する。
この例では、図33において、クライアントアプリケーション12(2),プロキシ13(2),プロキシ13(1),サーバアプリケーション11(1)の順に通信コネクションが確立され、クライアントアプリケーション12(2)とサーバアプリケーション11(1)との間にセッションが構築されている状態から、クライアントアプリケーション12(2),プロキシ13(2),プロキシ13(3),プロキシ13(1),サーバアプリケーション11(1)の順に通信コネクションが確立されて、クライアントアプリケーション12(2)とサーバアプリケーション11(1)との間のセッションの経路が変更される場合を想定している。
【0125】
すなわち、プロキシ13(2)とプロキシ13(1)との間にもう1つのプロキシ13(3)を追加するための動作を表している。
エージェントソフトウェア(図39の14)は、ユーザ又は端末間の接続状態に関する命令や管理を制御している。このエージェントソフトウェアからのプロキシ切替要求を移動端末30(2)が受信すると、移動端末30(2)はそれをセッション管理部SM(2)に通知する。
【0126】
この場合、セッション管理部SM(2)は、追加されるプロキシ13(3)に接続されるプロキシ13(1),13(2)に対して、プロキシ13(3)の名前と接続ポイントをパラメータとして切替要求を送信する(S34,S35)。切替要求を受信したプロキシ13(1),13(2)は、受信したパラメータとセッション識別子(ID)を用いてプロキシ13(3)の接続ポイントに対して、セッション識別子に対応する通信コネクションを確立する(S36,S37)。
【0127】
その後、プロキシ13(1)はプロキシ13(2)との間の通信コネクションで行っていた通信を全てプロキシ13(3)の通信コネクションに切り替える(S40,S41)。
追加されるプロキシ13(3)には2つの通信コネクションが確立される。このプロキシ13(3)は、通信コネクションの確立時に受信したセッション識別子に基づいて、2つの通信コネクションを関連付け、蓄積転送が可能な状態にする。
【0128】
次に、図35の場合と同様にセッションからプロキシ13(3)を削除する場合について、図54を参照して説明する。
この例では、図35において、クライアントアプリケーション12(2),プロキシ13(2),プロキシ13(3),プロキシ13(1),サーバアプリケーション11(1)の順に通信コネクションが確立され、クライアントアプリケーション12(2)とサーバアプリケーション11(1)との間のセッションが構築されている状態から、クライアントアプリケーション12(2),プロキシ13(2),プロキシ13(1),サーバアプリケーション11(1)の順に通信コネクションが確立されて、クライアントアプリケーション12(2)とサーバアプリケーション11(1)との間にセッションの経路が変更される場合を想定している。
【0129】
すなわち、セッションからプロキシ13(3)を削除するための動作を表している。
エージェントソフトウェアからのプロキシ削除要求を移動端末30(2)が受信すると、移動端末30(2)はそれをセッション管理部SM(2)に通知する。
この場合、セッション管理部SM(2)は、プロキシ13(1),13(2)に対して削除要求を送信する(S51,S52)。
【0130】
プロキシ13(2)は、削除要求を受信すると、セッション識別子を用いてプロキシ13(1)との間でコネクションを確立する。また、プロキシ13(3)との間で行われていた通信を全てプロキシ13(1)との間の通信コネクションに切り替える。
また、プロキシ13(1)が削除要求を受信するとともにプロキシ13(2)から通信コネクションを確立された場合には、プロキシ13(1)はプロキシ13(3)との間の通信コネクションで行われていた通信を全てプロキシ13(2)との間の通信コネクションに切り替える。
【0131】
次に、図37の場合と同様にセッション上のプロキシ13(4),13(5)を置換する場合について、図55を参照して説明する。
この例では、図37において、クライアントアプリケーション12(2),プロキシ13(2),プロキシ13(4),プロキシ13(1),サーバアプリケーション11(1)の順に通信コネクションが確立され、クライアントアプリケーション12(2)とサーバアプリケーション11(1)との間にセッションが構築されている状態から、クライアントアプリケーション12(2),プロキシ13(2),プロキシ13(5),プロキシ13(1),サーバアプリケーション11(1)の順に通信コネクションが確立されて、クライアントアプリケーション12(2)とサーバアプリケーション11(1)との間のセッションの経路が変更される場合を想定している。
【0132】
すなわち、セッション上のプロキシ13(4)をプロキシ13(5)に置換するための動作を表している。
エージェントソフトウェアからのプロキシ置き換え要求を移動端末30(2)が受信すると、移動端末30(2)はそれをセッション管理部SM(2)に通知する。
【0133】
この場合、セッション管理部SM(2)は、通信コネクションを持っているプロキシ13(1),13(2)に対してプロキシ13(5)の名前及び接続ポイントをパラメータとして含む切替要求を送信する(S74,S75)。
切替要求を受信したプロキシ13(1),13(2)は、受信したパラメータに基づいて、プロキシ13(5)の接続ポイントに対してセッション識別子に対応する通信コネクションを確立する。
【0134】
その後、プロキシ13(1)はプロキシ13(4)との間の通信コネクションで行っていた通信を全てプロキシ13(5)との間の通信コネクションに切り替える。
同様に、プロキシ13(2)はプロキシ13(4)との間の通信コネクションで行っていた通信を全てプロキシ13(5)との間の通信コネクションに切り替える。
【0135】
セッションに追加されるプロキシ13(5)は、2つの通信コネクションが確立された後で、コネクション確立時に受信したセッション識別子に基づいて2つの通信コネクションを関連付け、蓄積転送が可能な状態にする。
(実施例)
次に、本発明の特徴を含む具体的な実施例について図1〜図29を参照して説明する。
【0136】
図1はマスター,シャドーエージェントが存在する場合のプロキシの動作を示すフローチャートである。図2はマスター,シャドーエージェントの動作を示すフローチャートである。図3はマスター,シャドーエージェントが利用するサービステーブルの構成例を示す模式図である。図4はシャドーエージェント生成シーケンスの例を示すシーケンス図である。図5はシャドーエージェント生成シーケンスの例を示すシーケンス図である。
【0137】
図6はメッセージ転送シーケンスの例を示すシーケンス図である。図7はマルチキャストに関するプロキシの動作(1)を示すフローチャートである。図8はマルチキャストに関するプロキシの動作(2)を示すフローチャートである。図9はルーチングに関するプロキシの動作(1)を示すフローチャートである。図10はルーチングに関するプロキシの動作(2)を示すフローチャートである。図11はルーチングに関するプロキシの動作(3)を示すフローチャートである。
【0138】
図12はネットワークの構成例を示すブロック図である。図13は各ノードにおけるテーブルの構成例(1)を示す模式図である。図14は各ノードにおけるテーブルの構成例(2)を示す模式図である。図15はサービス提供のための基本通信シーケンスを示すシーケンス図である。図16はサービスの動的な変化例を示すブロック図である。
【0139】
図17はマスター,シャドーエージェントが存在する場合の通信シーケンスを示すシーケンス図である。図18はマルチキャストの通信シーケンスを示すシーケンス図である。図19は分岐テーブルを用いた通信経路の構成例を示すブロック図である。図20はプロキシの基本動作(1)を示すフローチャートである。図21はプロキシの基本動作(2)を示すフローチャートである。図22はプロキシの基本動作(3)を示すフローチャートである。
【0140】
図23はプロキシの機能構成を示すブロック図である。図24はコネクション管理を示すブロック図である。図25はコネクション管理における変化を示す模式図である。図26はノード上の各テーブルの構成を示す模式図である。図27はプロキシ間フレームの構成を示す模式図である。図28は制御コマンドの構成を示す模式図である。図29はプロキシ間メッセージの構成を示す模式図である。
【0141】
ここで想定しているネットワークは、前述のように動的に変化するネットワークであり、サービスを提供している途中でネットワークアドレスが変更されたり通信するノード(通信装置)が変化する可能性がある。
なお、以下の説明で使用される各用語は次のように定義される。
セッションIDはセッションをノードで一意に識別するための識別名であり、ノードIDとノード内番号との組で構成される。また、同一セッションでもノードが異なればセッションIDは異なる。
【0142】
サービスアドレスはプロキシ,アプリケーションを一意に識別する名前である。
ノードIDは、ノードを一意に識別する名前である。
ネットワークアドレスは、ノード間で通信コネクションを形成するのに必要なアドレス(TCP/IPを想定するとIPアドレス)である。
セッションはアプリケーション間で構成される通信を表す。
【0143】
コネクションは、プロキシ間又はアプリケーションとプロキシとの間の通信を表す。
プロキシ間フレームは、サービスに伴いプロキシ間でコネクションを通して送受信されるデータフレームを表す。
プロキシ間メッセージは、テーブルの内容の更新又は検索のためにプロキシ間でやり取りされるメッセージを表す。
【0144】
ここで想定している通信システムの基本的な構成及び動作は次の通りである。
(1)物理的なネットワークの上に、仮想的なネットワークを構成する。
(2)通信はアプリケーション間で行われる。
(3)構成要素はアプリケーション及びプロキシである。アプリケーションはノード上のソフトウェアとして構成されている。
【0145】
(4)セッションはアプリケーション間の通信で構成され、アプリケーション間の通信は複数のプロキシによって中継される。
(5)セッションを構成しているアプリケーションやプロキシはいつでも他のアプリケーション又はプロキシと交換可能であり、その構成は自由に変化する。さらにその際セッションは維持される。
【0146】
(6)プロキシ間での通信はシーケンス番号により送受信が管理されており、プロキシ間の接続(コネクション)が変化した場合(図24,図25のCASE1,CASE2,CASE3の場合)、それまでに受信したシーケンス番号を確認しシーケンス番号が不連続にならないように次に送るべきシーケンス番号をコネクション接続先のプロキシに要求し再送してもらう。これにより、データの欠損なくサービスが継続される。
【0147】
この形態では、図24,図25に示すCASE1,CASE2,CASE3の3種類の移動がネットワーク上で生じる場合を想定している。
具体的なネットワークとしては、図12に示すような構成が想定される。図12の例では7つのノードが互いに接続されている。各々のノードには互いに異なるノードIDが割り当ててある。
【0148】
各ノードに備わったアプリケーション及びプロキシは次の通りである。
ノードID:1001のノード:アプリケーションPA,プロキシPF
ノードID:1002のノード:アプリケーションPC,プロキシPG
ノードID:1003のノード:アプリケーションPB,プロキシPH
ノードID:1004のノード:アプリケーションPD,プロキシPI
ノードID:1005のノード:アプリケーションPL,プロキシPJ
ノードID:1006のノード:アプリケーションPE
ノードID:1007のノード:プロキシPK
各ノードには図26に示すような様々なテーブルが備わっている。代表的なテーブルの内容の概略は次の通りである。
【0149】
1.セッションテーブルSST:セッションIDとサービスアドレスの対応。
2.プロキシルーチングテーブルPRT:サービスアドレスと次ホップのサービスアドレスとの対応、並びにマスターエージェントとシャドーシャドーエージェントとの対応。
3.リソーステーブルRST:ノードIDとサービスアドレスとの対応。
【0150】
4.ロケーションテーブルLCT:ノードIDとネットワークアドレスの対応。
5.分岐テーブルJCT:受信サービスアドレスと送信サービスアドレスの対応。
プロキシ間で転送される各フレームは図27に示すように構成される。すなわち、コマンド,送信元ノードID,送信元セッションID,送信先ノードID,送信先セッションID,送信シーケンス番号,受信シーケンス番号,データ長及びデータが各フレームに含まれている。
【0151】
また、通信を制御するための制御コマンドとして、図28に示す切替要求及び切断要求がある。これらの制御コマンドはプロキシに与えられる。
また、プロキシ間で転送されるメッセージは図29に示すように構成される。すなわち、コマンド,メッセージ長,ホップ数,検索方法及びパラメータがメッセージに含まれている。
【0152】
図23に示すように、各プロキシには主要な構成要素として、プロキシ制御部501,セッション管理部502,キャッシュ管理部503,コネクション管理部504,セッションテーブルSST,プロキシルーチングテーブルPRT,リソーステーブルRST,ロケーションテーブルLCT及び分岐テーブルJCTが備わっている。
【0153】
図23におけるキャッシュ管理部503は、接続コネクション毎にキャッシュを構築する。各キャッシュは、未送信のデータを送信が完了するか又はキャッシュ解放の命令が来るまで蓄積する。各キャッシュは、プロキシに接続されている接続コネクション毎に存在し管理される。特に、マルチキャスト通信では接続コネクション毎に複数のキャッシュが存在することが考えられ、受信したデータは分岐テーブルJCTの記述に従って各キャッシュに分配され送信される。これらのキャッシュは独立に動作するため、送信できない通信コネクションが存在した場合には、その通信コネクションに割り当てられたキャッシュは蓄積状態を維持し、他の送信可能な通信コネクションのキャッシュに蓄積されたデータは読み出されて送信される。
【0154】
図12のネットワークに示された各ノードに備わっている主要な各テーブルの内容の具体例は図13及び図14に示されている。
前述の各基本技術に対応する機能を実現するために、各ノードに設けられるプロキシは図20,図21,図22に示す基本動作を実行する。図20〜図22に示すプロキシの基本動作について以下に説明する。
【0155】
プロキシは、接続フレーム(図27参照)を受信した場合には図20のステップS111からS112の処理に進み、サービス不能フレームを受信した場合にはステップS116からS117に進む。
受信した接続フレームの送信先のセッションID(SID)がヌル(NULL)の場合には初めての接続なのでステップS112からS113に進み、それ自身が属するノード上で一意なセッションIDを生成する。また、次のステップS114でセッションID及び宛先のサービスアドレス(SA)をセッションテーブルSSTに追加する。そして次のステップS115で「接続処理」を実行する。この「接続処理」の内容は図21に示されている。
【0156】
一方、受信した接続フレームの送信先のセッションID(SID)がヌルでなければ、ステップS112からS119に進む。
また、サービス不能フレームを受信した場合には、ステップS117で受信したプロキシとの間のコネクションを切断する。更に、ステップS118で受信したサービス不能フレーム内のサービスアドレスをキーとしてプロキシルーチングテーブルPRTを検索し、該当するサービスアドレスの記載部分に利用不可フラグを立てる。すなわち、そのサービスアドレスのプロキシ又はアプリケーションが利用できない状態にあることを把握する。
【0157】
ステップS119では、送信先セッションIDをキーにセッションテーブルSSTの現宛先サービスアドレス(エンド,エンドのSA)を検索する。
ステップS120では、セッション現宛先SAと接続フレーム宛先SAとを比較する。両者が等しい場合には、接続先の変更はないのでステップS120からS115に進み、異なる場合には接続先が変更されているのでセッションテーブルSSTの宛先SAを新しい宛先SAに変更してからステップS115に進む。
【0158】
図21に示す「接続処理」について説明する。
ステップS131では、宛先SAをキーにプロキシルーチングテーブルPRTを検索し、次ホップのプロキシ(又はアプリケーション)のSAを複数取得する。例えば、図12のネットワークに示すアプリケーションPAが他のアプリケーションPEに対して接続しようとする場合のプロキシPFの動作を想定すると、プロキシPFの次ホップはプロキシPIになる。従ってプロキシPIのSAをステップS131で取得する。
【0159】
また、ステップS131では取得したSAの中にコネクション確立済みのプロキシが存在するか否かを識別する。コネクション確立済みのプロキシが存在する場合にはステップS131からS132に進み、存在しない場合にはステップS133に進む。
ステップS132では、接続フレームを送ってきたプロキシと次のプロキシとの間でデータフレームの中継転送を開始する。
【0160】
ステップS133では、ステップS131で取得したSAの中に自プロキシのSAがあり既に宛先SAのアプリケーションへのコネクションがあるか否かを識別する。yesであればステップS133からS134に進み、noであればS135に進む。
【0161】
ステップS134では、接続フレームを送ってきたプロキシと次の宛先のアプリケーションとの間でデータフレームの中継転送を開始する。
ステップS135では、既に次ホップとは違うコネクションが存在するか否かを識別する。存在する場合には、次のステップS136でそのコネクションを切断する。
【0162】
接続が完了しない場合には、図21におけるステップS137以降の処理は全ての次ホップSAについて繰り返し実行される。
ステップS139では、未処理の次ホップSAを1つ選択する。ステップS140では選択されたSAを自ノードのプロキシのSAと比較する。一致する場合にはステップS140からS142に進み、一致しなければS141に進む。
【0163】
ステップS141では「プロキシへの接続処理」を実行し、ステップS142では「アプリケーションへの接続処理」を実行する。これらの処理の内容は図22に示されている。
また、全ての次ホップSAについて接続を試みた後でも依然として接続が完了しない場合には、ステップS137からS138に進み、サービス不能フレームを到来したフレームとは逆方向のコネクションに向かって通知する。
【0164】
次に、図22を参照して説明する。
「プロキシへの接続処理」においては、最初のステップS151で次ホップのSAをキーにリソーステーブルRSTを検索し、次ホップ先のノードIDを取得する。
次のステップS152では、次ホップのプロキシのあるノードIDをキーにロケーションテーブルLCTを検索し、接続先のIPアドレスを取得する。また、ステップS153ではロケーションテーブルLCTから自ノードのIPアドレスを取得する。
【0165】
ステップS154では、得られたIPアドレスを用いて次ホップSAのプロキシに接続フレームを送信して接続する。
「アプリケーションへの接続処理」においては、最初のステップS156でリソーステーブルRSTを宛先SAをキーとして検索しノードIDを取得する。
次のステップS157では、ノードIDをキーとしてロケーションテーブルLCTを検索し、接続先のIPアドレスを取得する。また、ステップS158ではロケーションテーブルLCTから自ノードのIPアドレスを取得する。
【0166】
ステップS159では、得られたIPアドレスを用いて宛先SAに接続する。
次に、図15に示す基本通信シーケンスについて説明する。図15に示すPA,PF,PI,PD,PK,PH,PBは、図12に示された各ノードのアプリケーション又はプロキシを表している。これらのアプリケーション及びプロキシはサービスアドレスにより特定される。
【0167】
図15の例では、最初にアプリケーションPAがプロキシPFに接続し、プロキシPFが接続フレームを次ホップのプロキシPIに送信している。これにより、プロキシPIはアプリケーションPDに接続する。
従って、アプリケーションPAとアプリケーションPDとの間にセッションが形成され、そのセッションを用いてサービス提供が開始される。この場合、通信経路上のプロキシPF,PIは通信を中継する。
【0168】
例えば、ノードの移動,ノードのネットワークからの離脱などが発生すると、ノードのネットワークアドレスの変化又は通信デバイスの利用可否の変化が生じる。これは図24,図25に示すCASE3に該当するので、図25に示すようにプロキシのSA又はノードIDとネットワークアドレスとの対応が変わり、コネクションを構成するリンクが変わる。
【0169】
従って、図15に示すCASE3の切替要求に対しては、プロキシPF,PIの間で通信路の変更が生じるが、変更の後でもプロキシPF,PIを中継してアプリケーションPAとアプリケーションPDとの間でサービス提供が継続される。
一方、ユーザが利用しているノードを変更すると、利用するアプリケーションが変わる。これは図24,図25に示すCASE1に該当するので、図25に示すようにセッションIDとエンド−エンドのアプリケーション(AP)のSAとの対応が変わる。
【0170】
図15においては、プロキシPFに対する切替要求(CASE1)に対して、プロキシPFが接続フレームをプロキシPKに送信し、それを受信したプロキシPKはプロキシPHに対して接続フレームを転送している。
従って、プロキシPHがアプリケーションPBに接続し、アプリケーションPAとアプリケーションPBとの間にセッションが形成され、そのセッションを用いてサービス提供が継続される。
【0171】
次に、シームレスなサービス提供のためにネットワークの形態の変化に応じて動的に生成されるアプリケーションプログラム(サーバ)の複製がネットワーク上に配置される場合について説明する。
ここでは、アプリケーションプログラムのモジュールをアプリケーションエージェントと呼ぶ。また、1つのアプリケーションエージェントからその複製を作成した場合に、複製により新たに生成されたアプリケーションエージェントをシャドーエージェントと呼び、複製元のアプリケーションエージェントをマスターエージェントと呼ぶ。
【0172】
また、1つのマスターエージェントから複製されたシャドーエージェントは、マスターエージェントのサービス提供機能の一部分もしくは全てを備えるように構成される。また、1つのマスターエージェント及びそこから複製された全てのシャドーエージェントを1つのグループとして管理する。そのグループをサービスグループと呼ぶ。
【0173】
更に、この形態ではマスターエージェント,シャドーエージェントについて次のように扱う。
(1)シャドウエージェントはマスターエージェントのサービスの全て又は一部を行うことができるように構成する。
(2)マスターエージェントがネットワークの状態やリソースの競合によって利用できない場合には、シャドーエージェントを利用してマスターエージェントと同じサービスを提供する。また、マスターエージェントとシャドーエージェントとの切り替えは、通信中であっても動的に行う。
【0174】
(3)アプリケーションエージェントとシャドーエージェント、マスターエージェント間の通信もプロキシによる中継によって行う。ノードの変更が発生した場合には、プロキシを介して各エージェントを切り替え、継続的にサービスを提供する。
(4)シャドーエージェントは自エージェントで十分にサービスを達成できない場合には、他のシャドーエージェント又はマスターエージェントに対して接続し自エージェントでは中継を行う。これにより、あたかも自エージェントでサービスを行っているように見せることができる。また、シャドーエージェントと他のシャドーエージェント又はマスターエージェント間の通信はプロキシにより中継する場合もあり、ネットワークアドレスの変更や、ノードの変更が発生した場合においても、継続的にサービスを提供する。このような機能を実現するために、サービスの一部しか行うことのできないシャドーエージェントについては、自分の提供できるサービスと同じサービスグループに属する他のエージェントに接続しないと提供できないサービスとを識別するためにサービステーブルASTを保持する。
【0175】
(5)マスターエージェントとシャドーエージェントの対応関係は各ノードのプロキシルーチングテーブルPRTに保持する。
(6)シャドーエージェントが作成された場合、マスターエージェント又はシャドーエージェント又は双方のエージェントが存在するノードのロケーションテーブルLCT、プロキシルーチングテーブルPRT、リソーステーブルRSTに、相手のエージェントのノードID,ネットワークアドレス,エージェントのサービスアドレス,シャドー/マスターの対応関係を記述する。
【0176】
(7)マスタエージェントが存在するノードのネットワークアドレスが変更された場合には、同じサービスグループに存在するシャドーエージェントをプロキシルーチングテーブルPRTから得た後、そのシャドーエージェントの属するノードにネットワークアドレスの変更を通知する。通知されたノードはロケーションテーブルLCTを変更する。これにより、マスターエージェントの位置が変化した場合においても把握できる。
【0177】
(8)シャドーエージェントが存在するノードのネットワークアドレスが変更された場合には、同じサービスグループに存在するマスターエージェントをプロキシルーチングテーブルPRTから得た後、そのマスターエージェントの属するノードにネットワークアドレスの変更を通知する。通知されたノードはロケーションテーブルを変更する。これによりシャドーエージェントの位置が変化した場合においても把握できる。
【0178】
図26に示すようにプロキシルーチングテーブルPRTにはマスターサービスアドレス(マスターエージェントのSA)とシャドーサービスアドレス(シャドーエージェントのSA)との対応関係が記述されている。
例えば、図13に示すノードID:1001のプロキシルーチングテーブルPRTに記述されている「PE:PD(S)」及び「PE:PB(S)」は、それぞれ図12に示されたアプリケーションPD及びPBがマスターエージェントである同じアプリケーションPEから複製されたシャドーエージェントであることを表している。
【0179】
従って、プロキシルーチングテーブルPRTを検索することにより、同じサービスグループに属するマスターエージェントとシャドーエージェントとの関係を調べることができる。
【0180】
一方、サービステーブルASTには例えば図3に示すような情報が記述される。この例では、同じサービスグループに属するマスターエージェントは
http://hogehoge.com/undoukai.mpg
http://hogehoge.com/ensoku.mpg
http://hogehoge.com/yuuenchi.mpg
のURLでそれぞれ特定される3つの映像サービスを提供する機能を備え、このサービステーブルASTを参照するシャドーエージェントは「yes」で示された2つの映像サービスだけを提供できる場合を表している。このシャドーエージェントは「no」で示された
http://hogehoge.com/ensoku.mpg
の映像サービスを提供できないが、この映像サービスについては同じサービスグループに属する他のシャドーエージェント又はマスターエージェントを利用すれば提供できる。
【0181】
ネットワーク上にマスターエージェント及びシャドーエージェントが存在する場合には、プロキシは図1に示す動作を実行する。プロキシの基本的な動作は既に説明した図20〜図22と同じであるが、図21のステップS131が図1のステップS131Bのように変更されている。
図1のステップS131Bにおいては、宛先SAのマスターエージェント又はシャドーエージェントが存在する場合には、該当するエージェントのSAをキーにプロキシルーチングテーブルPRTを検索し、次ホップのサービスを得る。但し、宛先はキーとしたエージェントのSAとする。なお、利用不可フラグが立っている情報については参照しない。
【0182】
これ以外のプロキシの動作は図20〜図22と同じである。
一方、マスターエージェント及びシャドーエージェントは図2に示す処理を実行する。図2の処理について説明する。
【0183】
ステップS151で自エージェント(マスターエージェント又はシャドーエージェント)がユーザからのデータを受信すると、次のステップS152でサービステーブルASTを参照し、受信したデータに該当するサービスを提供する機能が自エージェントに備わっているか否かを調べる。
サービスを提供する機能が自エージェントに備わっている場合には、ステップS152からS153に進み、自エージェントがサービスを提供するための処理を実施する。
【0184】
サービスを提供する機能が自エージェントに備わっていない場合には、ステップS152からS154に進む。ステップS154では、プロキシルーチングテーブルPRTを参照し同じサービスグループに属する他のマスターエージェント又はシャドーエージェントを検索する。
検索に成功した場合にはステップS154からS155に進み、見つかった他のエージェントに接続する。また、該当するエージェントが見つからない場合にはステップS156に進みサービス不能を通知する。
【0185】
ステップS157では、ユーザから受信したデータフレームをステップS155で接続した他のエージェントに対して転送する。
ステップS155で接続した他のエージェントに該当するサービスを提供する機能が備わっている場合には、そのエージェントの処理によってユーザに対するサービスが提供されるので、ステップS158からS159に進む。
【0186】
ステップS155で接続した他のエージェントに該当するサービスを提供する機能が備わっていない場合には、サービスは提供されないのでステップS158からS154に進み再びその他のエージェントをプロキシルーチングテーブルPRTから検索する。
ステップS159では、データフレームの中継伝送を実施する。すなわち、ユーザのデータを中継するプロキシとステップS155で接続した他のエージェントとの間でデータフレームを中継する。
【0187】
これにより、自エージェント自身はデータフレームの中継を行うだけであるが、接続した他のエージェントがサービスを提供するので、サービスの提供を受けるユーザからみると自エージェントがサービスを提供しているように見える。
新たなシャドーエージェントを生成する場合には、図4及び図5に示すような様々なシーケンスを実行することができる。
【0188】
すなわち、複製を生成した直後に、複製元のマスターエージェント及び/又は複製されたシャドーエージェントがプロキシルーチングテーブルPRTにマスターエージェントとシャドーエージェントとの対応関係を記述する。
これにより、プロキシルーチングテーブルPRTを参照することにより、生成されたシャドーエージェントとマスターエージェントとの関係を把握できるので、シャドーエージェントを利用できる。
【0189】
また、複製元のマスターエージェント及び/又は複製されたシャドーエージェントが自ノードのロケーションテーブルLCT及びリソーステーブルRSTに相手ノードのネットワークアドレス(NA),ノードID,エージェントのサービスアドレス(SA)を記述する。
これにより、生成されたシャドーエージェントがマスターエージェントと異なるノードに配置された場合であっても、シャドーエージェントを検索して利用することができる。
【0190】
一方、マスターエージェント又はシャドーエージェントが動作しているノードにおいてネットワークアドレス(NA)が変化した場合には、図6に示すようなメッセージ転送シーケンスを実行する。
すなわち、マスターエージェントが動作しているノードにおいてネットワークアドレスが変化した場合には、ステップS471でシャドーエージェントを検索し、同じサービスグループの全てのシャドーエージェントに対してNA更新メッセージを送信する。メッセージを受信した各シャドーエージェントは、メッセージに従ってロケーションテーブルLCTの内容を変更する。
【0191】
また、シャドーエージェントが動作しているノードにおいてネットワークアドレスが変化した場合には、ステップS481でマスターエージェントを検索し、同じサービスグループのマスターエージェントに対してNA更新メッセージを送信する。メッセージを受信したマスターエージェントは、メッセージに従ってロケーションテーブルLCTの内容を変更する。
【0192】
マスターエージェント及びシャドーエージェントを利用することにより、ネットワークの動的な変化に対して例えば図16に示すように通信経路の構成を変更し、サービスの提供を継続することができる。
ネットワーク上にマスターエージェント及びシャドーエージェントが存在する場合には、例えば図17に示すような通信シーケンスが実行される。
【0193】
図17の例では、ステップS701でアプリケーションPAとアプリケーション(マスターエージェント又はシャドーエージェント)PDとの間でサービス提供の通信を行っている状態からアプリケーションPDがサービス提供不能になると、アプリケーションPDがプロキシPIに接続し、プロキシPIが接続フレームをプロキシPJに送信し、プロキシPJはアプリケーション(マスターエージェント又はシャドーエージェント)PLに接続するので、アプリケーションPD−PL間が接続され、アプリケーションPLによってサービスが提供される。
【0194】
また、ステップS702でアプリケーションPAとアプリケーションPLとの間でサービス提供の通信を行っている状態からアプリケーションPLがサービス提供不能になると、アプリケーションPDがプロキシPIに接続し、プロキシPIが接続フレームをプロキシPJに送信し、プロキシPJはアプリケーション(マスターエージェント又はシャドーエージェント)PEに接続するので、アプリケーションPD−PE間が接続され、アプリケーションPEによってサービスが提供される。
【0195】
なお、次のような条件の検出によってサービス提供不可能な状態を認識できる。例えば、サービス提供先にアクセスしたが応答なしの場合、サービス提供先からの通知(明示的なものやTCPレイヤの接続終了メッセージなどを含む)を検出した場合、要求したサービスがサービステーブルでサービス可能になっていなかった場合などがある。
【0196】
ステップS703では、サービス提供を継続したままアプリケーションPDはノードを離脱することができる。
また、プロキシPF,PI,PJを経由してアプリケーションPA,PEの間でサービスを提供している途中で、プロキシPIが離脱するようなネットワークの変化が発生すると(S705)、プロキシPFがプロキシPJに対して切替通知を送信する。この切替通知によってプロキシPFとプロキシPJとの間の通信経路からプロキシPIが離脱し、そのままアプリケーションPA,PEの間のサービス提供が継続される。
【0197】
更に、サービスを提供している途中でプロキシPFに切替要求が発生すると(S706)、プロキシPFの送信した接続フレームがプロキシPKに転送され、プロキシPKの送信した接続フレームがプロキシPHに転送され、プロキシPHはアプリケーションPBと接続する。従って、アプリケーションPAとアプリケーションPBとの間にプロキシPF,PK,PHを介して通信経路が形成され、アプリケーションPAとアプリケーションPBとの間の通信にサービスが移動する。
【0198】
すなわち、アプリケーションPAとアプリケーションPEとの間に形成されたセッション(アプリケーション間の1つの通信サービス)を、アプリケーションPAとアプリケーションPBとの間に形成されたセッションに切り替える。この場合、切替を行うプロキシPFは、アプリケーションPEで行われていた通信サービスが中断された地点(データ転送なら転送したバイト数)の状態を切替先のアプリケーションPBに通知する。これにより、アプリケーションPBは中断されたアプリケーションPEの通信サービスを引き継ぐことができる。
【0199】
また、切替を行うプロキシPFは、切替元のアプリケーションPEにつながるコネクションの連鎖の中でプロキシPFに隣接して接続されているプロキシPJ(途中に他のプロキシが存在しない場合にはアプリケーションPE)との間に形成されている通信コネクションを、切替先のアプリケーションPBにつながるコネクションの連鎖の中でプロキシPFに隣接して接続されているプロキシPK(途中に他のプロキシが存在しない場合にはアプリケーションPB)との間に形成されている通信コネクションに切り替える。更に、切り替えた通信コネクションをアプリケーションPA(途中に他のプロキシが介在する場合にはPFに隣接するプロキシ)と直接接続されている通信コネクションと結び付け、各通信コネクションの間で通信を中継する。これによりサービスを継続できる。
【0200】
また、通信サービスの提供に利用している経路上に存在する2つのプロキシ(例えばPK,PH)の間を接続するリンクが、例えば無線LANから有線LANに切り替わったような場合には、2つのプロキシPK,PHの間の通信コネクションを再構築する(各テーブルの内容を更新したりネットワークアドレスなどを変更する)ことで通信サービスを継続できる。
【0201】
次に、プロキシがマルチキャストのデータ配信を制御する場合について説明する。
プロキシが備わったノードには、図13,図14,図23,図26に示すような分岐テーブルJCTが備わっている。この分岐テーブルJCTには、図26に示すようにセッションID毎に区別して入力側サービスアドレス(SA)と出力側サービスアドレスとの対応関係が記述される。
【0202】
すなわち、プロキシは入力側サービスアドレスから入力されたデータフレームを出力側サービスアドレスのプロキシ又はアプリケーションに転送するようにデータの入出力を制御する。
なお、分岐テーブルJCTには入力側サービスアドレス及び出力側サービスアドレスを複数記述することができる。
【0203】
分岐テーブルJCTを用いてマルチキャストの通信経路を制御する場合の具体例について、図19を参照して説明する。図19に示す各分岐テーブルJCTは、矢印の左側及び右側が、それぞれ入力側サービスアドレス及び出力側サービスアドレスを表している。
図19(a)におけるプロキシPGは、分岐テーブルJCTに従ってプロキシPDから入力されたデータフレームをプロキシPEに出力し、プロキシPDから入力されたデータフレームをプロキシPFに出力し、プロキシPEから入力されたデータフレームをプロキシPDに出力し、プロキシPFから入力されたデータフレームをプロキシPDに出力する。
【0204】
このため、図19(a)の例ではアプリケーションPAから送出されたマルチキャストのデータフレームはプロキシPDを介してプロキシPGに入力され、プロキシPGの部分で2系統に分岐され、プロキシPE,PFにそれぞれ送出される。これにより、アプリケーションPAから送出されたデータフレームは2つのアプリケーションPB,PCにそれぞれ届けられる。
【0205】
一方、アプリケーションPBから送出されたデータフレームはアプリケーションPAのみに届き、アプリケーションPCから送出されたデータフレームもアプリケーションPAのみに届く。
また、図19(b)におけるプロキシPGは、分岐テーブルJCTに従ってプロキシPDから入力されたデータフレームをプロキシPEに出力し、プロキシPDから入力されたデータフレームをプロキシPFに出力し、プロキシPEから入力されたデータフレームをプロキシPDに出力し、プロキシPFから入力されたデータフレームをプロキシPDに出力し、プロキシPEから入力されたデータフレームをプロキシPFに出力し、プロキシPFから入力されたデータフレームをプロキシPEに出力する。
【0206】
このため、図19(b)の例ではアプリケーションPAから送出されたマルチキャストのデータフレームはプロキシPDを介してプロキシPGに入力され、プロキシPGの部分で2系統に分岐され、プロキシPE,PFにそれぞれ送出される。
また、アプリケーションPBから送出されたマルチキャストのデータフレームはプロキシPEを介してプロキシPGに入力され、プロキシPGの部分で2系統に分岐され、プロキシPD,PFにそれぞれ送出される。
【0207】
また、アプリケーションPCから送出されたマルチキャストのデータフレームはプロキシPFを介してプロキシPGに入力され、プロキシPGの部分で2系統に分岐され、プロキシPD,PEにそれぞれ送出される。
従って、プロキシが配置された各ノードの分岐テーブルJCTの内容を書き換えるだけで、マルチキャストのデータ配信先を制御することができる。
【0208】
また、例えばプロキシPG,PDの間の通信リンクが一定時間途切れた場合には、プロキシPGは分岐テーブルに基づいて中継する際に、プロキシPDへの送信データは内部のキャッシュに蓄積しておき、アプリケーションPBとアプリケーションPCとの間の通信のみを中継する。プロキシPG,PDの間のリンクが再構築され、通信コネクションが再構築された場合には、プロキシPGは内部のキャッシュに蓄積されているデータを読み出して送信し、3つのアプリケーションPA,PB,PCの間のマルチキャスト通信サービスを継続する。
【0209】
また、通信の途切れたプロキシPDの代わりとなる他のプロキシPxが存在する場合には、プロキシPGはプロキシPDとの間の通信コネクションをプロキシPxへの通信コネクションに変更し、プロキシPxを介してアプリケーションPAとの間の通信路を確保する。この場合、プロキシPGはプロキシPxとの間の通信コネクションを、アプリケーションPB又はそれに続く通信コネクションの連鎖の中でプロキシPGと直接接続されているプロキシPEとの通信コネクション、並びにアプリケーションPC又はそれに続く通信コネクションの連鎖の中でプロキシPGと直接接続されているプロキシPFとの通信コネクションと結び付け、分岐テーブルに基づいて通信の中継を行う。
【0210】
図19(a)のような通信経路を形成することにより、アプリケーションPAを放送型サーバとする通信サービスを提供することが可能になる。また、図19(b)のような通信経路を形成することにより、チャット通信のようなサービスの提供が可能になる。
分岐テーブルJCTを用いてマルチキャストを制御する場合のプロキシの動作は図7及び図8に示す通りである。まず図7を参照してマルチキャストに特有な動作を説明する。
【0211】
ステップS201でマルチキャストの接続フレームを受信すると、ステップS202に進み複数の宛先SAが含まれているか否かを識別する。複数の宛先SAが含まれているマルチキャストの接続フレームを受信した場合には、所定の処理を行った後、ステップS206以降の処理に進む。ステップS206以降では、マルチキャストの接続フレームで指定された複数の宛先SAのそれぞれについて接続処理を実行する。
【0212】
この接続処理の内容は図8に示されている。図8の処理について説明する。
ステップS221では、宛先SAをキーにプロキシルーチングテーブルPRTを検索し、次ホップのSAを複数取得する。
ステップS222では取得したSAの中にコネクションが確立済みのプロキシが存在するか否かを識別する。
【0213】
それが存在する場合には、ステップS224で分岐テーブルJCTに前ホップSA(入力側サービスアドレス)及び次ホップSA(出力側サービスアドレス)を追加する。
【0214】
また、次のステップS225では接続フレームを送ってきたプロキシと次のプロキシとの間でデータフレームの中継転送を開始する。ステップS226では、現在処理している宛先SAを含むマルチキャスト接続フレームを送信する。
一方、ステップS223ではステップS221で得られたSAの中に自プロキシのSAがあり宛先SAのアプリケーションへのコネクションがあるか否かを識別する。yesであればステップS227に進み、分岐テーブルJCTに前ホップSA(入力側サービスアドレス)及び次ホップSA(出力側サービスアドレス)を追加する。
【0215】
次のステップS228では、接続フレームを送ってきたプロキシと次の宛先のアプリケーションとの間でデータフレームの中継転送を開始する。
ステップS221で得られたSAの中で、コネクションが確立していない宛先SAについては、ステップS229以降の処理において「プロキシへの接続」もしくは「アプリケーションへの接続」を実行してコネクションを確立する。
【0216】
また、接続に成功した場合には、ステップS234で分岐テーブルJCTに前ホップSA(入力側サービスアドレス)及び次ホップSA(出力側サービスアドレス)を追加する。
マルチキャストを処理する場合には、例えば図18に示す通信シーケンスが実行される。すなわち、アプリケーションPCとアプリケーションPDとの通信にもう1つのアプリケーションPAが加わる場合には、サービスの途中でアプリケーションPAがプロキシPFに接続し、プロキシPFがプロキシPIに接続フレームを送る。これにより、プロキシPIのノード上の分岐テーブルJCTが変更され、プロキシPIの分岐処理によってアプリケーションPAにもデータが配信される。
【0217】
また、アプリケーションPDが2つのアプリケーションPA,PCに接続する場合には、アプリケーションPDがプロキシPIに接続し、プロキシPIが2つのプロキシPF,PGにそれぞれ接続フレームを送り、プロキシPFはアプリケーションPAに接続し、プロキシPGはアプリケーションPCに接続する。これにより、3つのアプリケーションPD,PA,PCの間でマルチキャストのデータ配信サービスを行うことができる。
【0218】
次に、ルーチングに関する具体的な制御について説明する。この形態では各ノードにプロキシルーチングテーブルPRT,リソーステーブルRST,ロケーションテーブルLCTが備わっているが、ネットワークの変化に対応するために、自ノードのテーブルで取得できない情報については他のノードに備わったテーブルを利用して検索する。また、自ノードのネットワークアドレスなどが変化した場合には、それに伴うテーブルの更新を他のノードに通知する。
【0219】
プロキシは図9,図10及び図11に示す動作を行う。具体的な動作は次の通りである。
他ノードのテーブルを検索する場合には、リソーステーブルRST,ロケーションテーブルLCTに記述されているノードIDを持つノード間で検索を実行する。
【0220】
他ノードのテーブルを検索する場合には、プロキシはリソーステーブルRST又はロケーションテーブルLCTに記載されているノードに対し、検索メッセージを発行する(S305)。
検索メッセージを発行する場合又は検索メッセージを受信したが、該当する検索結果を持っていなかった場合には、ステップS304以降の処理を行う。
【0221】
検索メッセージに該当する結果を持っていた場合には、検索メッセージを発行したノードに対してステップS306で検索の結果を通知する。
また、同一の検索メッセージを複数受信した場合には最初の検索メッセージに対してのみ処理をおこない、残りは無視する。
【0222】
実際の検索や情報の通知の方法には次に示すようにいくつかの種類がある。転送されるメッセージには、検索あるいは通知の方法を指定するための情報が含まれているので、メッセージを受信したプロキシは、ステップS305又はS316においてメッセージ内で指定された方法に従ってメッセージの転送を行う。
(方法(1))ホップ数制限による検索,通知:メッセージを発行するノードは最大のホップ数を定める。メッセージを受信したノードはホップ数を1つ減じ、ホップ数が0でなかったら、リソーステーブルRST又はロケーションテーブルLCTに記載されているノードに対しさらにメッセージを送信する。
【0223】
(方法(2))ホップ致制限と送信ノード制限による検索,通知:方法(1)に加え、各ノードで同一メッセージを送信するノードを一定数以内に制限する。
(方法(3))ホップ数制限と検索済みノード情報による検索,通知:方法(1)に加え、メッセージが通ってきたノードの履歴をそのメッセージに含めて送信する。メッセージを受信したノードは、そのメッセージが既に通過したノードに対してはメッセージの転送を行わない。
【0224】
(方法(4)) ホップ数制限とノード間の類似度又は重要度情報を用いた検索,通知:方法(1)に加え、リソーステーブルRST又はロケーションテーブルLCTに、重要度又は類似度に関する項目を加え、重要度,類似度の高いノードに対してだけメッセージを送信する。この場合の重要度は、該当するノードとの通信頻度によって増減する。増減する割合は増減率による。類似度は、各ノード間リソーステーブルRST又はロケーションテーブルLCTに記載のノードがどのぐらいの割合で重複しているかを表す。
【0225】
一方、各ノードを構成する通信装置における各テーブルの記憶容量には限りがある。また、大容量の記憶装置を備えると通信装置のコストが高くなる。従って、ルーチングの効率が低下しないように配慮しながら各テーブルに保持する情報の容量を制限する必要がある。
【0226】
そこで、この形態ではリソーステーブルRST又はロケーションテーブルLCTに重要度及び増減率の項目を加える。この重要度は該当するノードとの通信頻度によって増減する(S325,S327)。増減する割合は増減率による。
そして、テーブルの容量が各ノードによって予め決められた容量を超えた場合には、ステップS322で重要度の低いノードの情報から優先的に削除し、テーブル容量が規定以内におさまるように管理する。
【0227】
この形態では、ルーチングにおけるノード間の距離は物理的な距離とは異なり、特定のノードと他の特定のノードとがしばしば通信を行うといった、ユーザの利用頻度や使いやすさといった尺度が非常に重要になる。
ところで、現在、多くの企業や機関ではネットワーク層(IPレベル)の通信を遮断するファイアウォールが設置されているが、本発明のプロキシで構成される通信ネットワークは、このファイアウォールを超えて通信することが可能である。
【0228】
ファイアウォールを超える通信を可能にするための具体的な方法は次の通りである。
(1)プロキシをファイアウォールとともに設置する。
(2)ファイアウォールを超えることができる設定になっているHTTPなどのトランスポートプロトコルを用いてHTTPプロキシ等(本発明のプロキシとは全く別のもの)を通過することで、プロキシ間の通信を実現する。
【0229】
【発明の効果】
本発明によれば、プロキシルーチングテーブルを保持することによりネットワークの構成が変化した場合においても、ユーザが意識することなく自動的に再接続すべきプロキシを認識することができる。
また、重要度の低い情報を削除することにより小型ノードのように記憶容量の少ないノードであってもネットワーク上で通信を行うことが可能になる。また、検索要求を送信するノード数自体を抑制することでネットワーク上で効率的に情報を管理することができる。
【0230】
また、現在、多くの企業や機関ではネットワーク層(IPレベル)の通信を遮断するファイアウォールが設置されているが、本発明のようなプロキシで構成される通信ネットワークでは、ファイアウォールを超えて動作することが可能である。また、このファイアウォールがプロキシで構成されるネットワークの通信を許したとしても、ネットワーク層の通信に比べて通信方法や手順が限定されるため、一定のセキュリティを確保しつつ、ユーザの利便性を向上させることができる。
【図面の簡単な説明】
【図1】マスター,シャドーエージェントが存在する場合のプロキシの動作を示すフローチャートである。
【図2】マスター,シャドーエージェントの動作を示すフローチャートである。
【図3】マスター,シャドーエージェントが利用するサービステーブルの構成例を示す模式図である。
【図4】シャドーエージェント生成シーケンスの例を示すシーケンス図である。
【図5】シャドーエージェント生成シーケンスの例を示すシーケンス図である。
【図6】メッセージ転送シーケンスの例を示すシーケンス図である。
【図7】マルチキャストに関するプロキシの動作(1)を示すフローチャートである。
【図8】マルチキャストに関するプロキシの動作(2)を示すフローチャートである。
【図9】ルーチングに関するプロキシの動作(1)を示すフローチャートである。
【図10】ルーチングに関するプロキシの動作(2)を示すフローチャートである。
【図11】ルーチングに関するプロキシの動作(3)を示すフローチャートである。
【図12】ネットワークの構成例を示すブロック図である。
【図13】各ノードにおけるテーブルの構成例(1)を示す模式図である。
【図14】各ノードにおけるテーブルの構成例(2)を示す模式図である。
【図15】サービス提供のための基本通信シーケンスを示すシーケンス図である。
【図16】サービスの動的な変化例を示すブロック図である。
【図17】マスター,シャドーエージェントが存在する場合の通信シーケンスを示すシーケンス図である。
【図18】マルチキャストの通信シーケンスを示すシーケンス図である。
【図19】分岐テーブルを用いた通信経路の構成例を示すブロック図である。
【図20】プロキシの基本動作(1)を示すフローチャートである。
【図21】プロキシの基本動作(2)を示すフローチャートである。
【図22】プロキシの基本動作(3)を示すフローチャートである。
【図23】プロキシの機能構成を示すブロック図である。
【図24】コネクション管理を示すブロック図である。
【図25】コネクション管理における変化を示す模式図である。
【図26】ノード上の各テーブルの構成を示す模式図である。
【図27】プロキシ間フレームの構成を示す模式図である。
【図28】制御コマンドの構成を示す模式図である。
【図29】プロキシ間メッセージの構成を示す模式図である。
【図30】プロキシ及びアプリケーションを切り替える場合の制御シーケンスを示すシーケンス図である。
【図31】プロキシ及びアプリケーションを切り替える場合の通信経路の例を示すブロック図である。
【図32】セッションにプロキシを追加する場合の制御シーケンスを示すシーケンス図である。
【図33】セッションにプロキシを追加する場合の通信経路の例を示すブロック図である。
【図34】セッションからプロキシを削除する場合の制御シーケンスを示すシーケンス図である。
【図35】セッションからプロキシを削除する場合の通信経路の例を示すブロック図である。
【図36】セッション上のプロキシを置換する場合の制御シーケンスを示すシーケンス図である。
【図37】セッション上のプロキシを置換する場合の通信経路の例を示すブロック図である。
【図38】通信システムの構成例を示すブロック図である。
【図39】移動端末の構成例を示すブロック図である。
【図40】サービス管理部SRが保持する情報の例を示す模式図である。
【図41】位置管理部LRが保持する情報の例を示す模式図である。
【図42】セッション管理部SMが保持する情報の例を示す模式図である。
【図43】通信システムの構成例を示すブロック図である。
【図44】ネットワークの構成例を示すブロック図である。
【図45】ノード及びサービスの移動モデルを示すブロック図である。
【図46】端末の移動時の位置情報更新手順を示すシーケンス図である。
【図47】位置情報更新命令の発行数を示すグラフである。
【図48】位置検索成功率を示すグラフである。
【図49】位置検索成功率を示すグラフである。
【図50】ネットワークの構成例を示すブロック図である。
【図51】サービスの移動例(1)を示すシーケンス図である。
【図52】サービスの移動例(2)を示すシーケンス図である。
【図53】セッションにプロキシを追加する場合の簡略化された制御シーケンスを示すシーケンス図である。
【図54】セッションからプロキシを削除する場合の簡略化された制御シーケンスを示すシーケンス図である。
【図55】セッション上のプロキシを置換する場合の簡略化された制御シーケンスを示すシーケンス図である。
【符号の説明】
1,3 アプリケーション
2 プロキシ
4 ノード
5 ブラウザ
6 プロキシ
7 Webサーバ
8 ノード
9 データベース
10 ソフトウェア
11 サーバアプリケーション
12 クライアントアプリケーション
13 プロキシ
14 エージェント
15 リンク切替部
16,17,18 リンク
21 イーサネット(登録商標)通信アダプタ
22 無線LANアダプタ
23 PHS通信アダプタ
30 移動端末
40 ネットワーク
51,52,53 サブネットワーク
54 広域ネットワーク
55,59,60,61,66,67 移動端末
56,62 固定端末
57,58,64,65 基地局
63 TAP
101,102 アプリケーション
103 セッション
104,105,106 プロキシ
107,108,109,110 通信コネクション
LR 位置管理部
SM セッション管理部
SR サービス管理部
501 プロキシ制御部
502 セッション管理部
503 キャッシュ管理部
504 コネクション管理部
505 パス管理部
506 リンク管理部
507 通信デバイス
PRT プロキシルーチングテーブル
RST リソーステーブル
LCT ロケーションテーブル
JCT 分岐テーブル
SST セッションテーブル
AST サービステーブル
[0001]
BACKGROUND OF THE INVENTION
The present invention provides communication in which at least one of an application program and a proxy that relays communication is provided in each communication device that constitutes a node, and a plurality of nodes including the application program are connected to each other via a plurality of proxies and a predetermined network The present invention relates to a routing control method and a routing control device used for controlling each node where a proxy is arranged in a system.
[0002]
[Prior art]
When a user wants to stop using an application (program) with which communication is performed and try to perform communication with another application, it is necessary to interrupt communication and then restart communication with another application. However, in this case, since communication is disconnected, it is necessary to start the communication procedure with the partner application from the beginning. That is, the communication service for a certain application cannot be switched to another application from the middle.
[0003]
For example, a mobile terminal such as a notebook personal computer or PDA can be carried so that it may be used in various places, and may be used while moving. When such a mobile terminal is used online, for example, a communication adapter corresponding to Ethernet (registered trademark), local wireless LAN (Local Area Network), public wireless communication (for example, PHS (Personal Handy-phone System)), etc. It is necessary to connect the mobile terminal to the network using.
[0004]
In various places where a mobile terminal is used, it is possible to connect the mobile terminal to a network using one or more communication media. If a plurality of communication adapters corresponding to a plurality of types of communication media are installed in advance, one mobile terminal can be connected to a network at various locations by switching the communication method as necessary.
[0005]
When a plurality of terminals actually communicate with each other using a server application and a client application, first, the terminal hardware is connected to the network, and a communication connection is established between the server application that provides the service and the client application that uses the service. Need to be established.
Also, in order to allow communication to continue even if communication is temporarily interrupted due to a failure, for example, a communication path is constructed so that a relay device called a proxy is interposed between the server application and the client application. Is common.
[0006]
In such a conventional communication system, the communication path is determined when communication between the server application and the client application is started. Therefore, the combination of the server application, client application, and proxy to be used cannot be changed during communication.
When changing the server application, the client application, or the proxy, it is necessary to once terminate communication, release the communication connection, and reconnect each communication connection between the server application and the client application.
[0007]
However, when the mobile terminal communicates while moving, the positional relationship among the server application, the client application, and the proxy changes with movement, so that a redundant communication path may be formed. For example, there is a case where communication is continued by relaying an unnecessary proxy.
Also, for example, when a failure occurs in a communicating terminal, communication is temporarily terminated, the communication connection is released, and the communication path is changed so that the application or proxy function of the failed terminal is replaced with another terminal. It is necessary to rebuild and start communication from the beginning.
[0008]
Further, for example, when switching a terminal used by a user from a mobile terminal having a small screen to a fixed terminal having a large screen (for example, a desktop personal computer), the communication of the mobile terminal is terminated, the communication connection is released, and the fixed terminal It is necessary to construct a new communication path using and to start communication from the beginning.
By the way, communication path determination (routing) in an IP (Internet Protocol) network is generally conscious of the configuration of a physical network.
[0009]
Therefore, a hierarchical structure is formed such as routing within a domain, which is a cluster of several local networks, and routing between domains. Then, it is possible to limit the capacity of the routing table on the assumption that the hierarchical structure is maintained.
[0010]
On the other hand, an ad hoc network is known as a flat network having no hierarchical structure. In an ad hoc network, a network is configured by directly communicating between wireless nodes.
In an ad hoc network, since wireless communication is used, broadcast communication can be easily performed, and resource information on the network can be suppressed to a minimum when notifying neighboring hosts of information necessary for routing.
[0011]
[Problems to be solved by the invention]
In the conventional routing in the IP network, it is inevitable that the routing functions are concentrated on some nodes in the network in order to maintain and manage the hierarchical structure.
In addition, the routing method adopted in the ad hoc network greatly reduces the efficiency in a network in which broadcast communication to the neighborhood cannot be performed with minimum resource consumption. Therefore, the ad hoc network routing cannot be used in the IP network.
[0012]
In the conventional routing control, since the lower layer is a link layer that does not transfer outside a specific data link, communication between nodes in the network is not possible unless an upper layer routing protocol is provided.
Many companies and institutions have a firewall (network protection wall) that blocks communication at the network layer (IP level), but end-to-end applications are completed with communication functions provided at the network layer. Communication cannot operate beyond this firewall.
[0013]
The present invention is a routing capable of reducing resource consumption and improving efficiency on the assumption that connectivity between nodes in a lower network is ensured when routing is performed on a flat virtual network having no hierarchical structure. An object of the present invention is to provide a control method and a routing control device, and to enable communication beyond a firewall by using a communication network composed of proxies.
[0014]
[Means for Solving the Problems]
According to a first aspect of the present invention, at least one of an application program and a proxy that relays communication is provided in each communication device that constitutes a node, and a plurality of nodes including the application program are connected to each other via a plurality of proxies and a predetermined network. A routing control method used for controlling each node in which a proxy is arranged in a communication system, which manages each application program, a service address that identifies each proxy, and a session representing each communication, and each application The location of the program and the location of each proxy are managed as a resource table, the first service address representing the destination application program, and the other hops of the own proxy on the communication path connected to the destination When the correspondence relationship with the second service address representing the proxy is managed as a proxy routing table, the network address of the communication device existing in each node is managed as a location table, and the information managed in the own node is updated Or, when it is necessary to search for information that does not exist in its own node, a message is sent to the other node managed in the resource table or location table, and the local node requests a search from another node If the requested information exists in the local node, the search result is sent to the message originator, and the local node receives a request for a search from another node and is requested. If the information does not exist on the local node or if a message indicating information update is received If the number of hops from the message source does not exceed the limit value, the content of the received message is transferred to another node managed in the resource table or the location table. And
[0015]
In claim 1, since the correspondence relation between the destination application program and the other proxy of the next hop can be grasped by referring to the proxy routing table, between the other proxy of the next hop and the destination application program Even when the network configuration changes, it is possible to automatically recognize the proxy to be reconnected and continue the service.
[0016]
Further, the location of each application program and the location of each proxy can be recognized based on the resource table, and the network address of the communication device existing in each node can be recognized based on the location table.
Further, when information managed in each table of the own node is updated due to a change in the network, the change in the network can be grasped in each node by notifying other nodes of the change as a message.
[0017]
In addition, when it is necessary to search for information that does not exist in the own node, information managed by the other node can be used by sending a message requesting the search to the other node.
On the other hand, when a large number of messages are sent over the network due to changes in the network or the like, the network utilization efficiency decreases. Further, the processing capacity of each node and the amount of information that can be stored in a table on the node are limited.
[0018]
However, in claim 1, since the number of hops from the transmission source when a message received by each node is transferred is suppressed to the limit value, the amount of messages transmitted on the network can be suppressed and added to the table of each node. The amount of information that is used can also be suppressed.
According to claim 2, in the routing control method according to claim 1, when a plurality of the same messages transmitted by other nodes are received, only one message is processed, and the remaining messages are ignored. It is characterized by.
[0019]
As for a message transmitted on the network, the same message may reach the same node a plurality of times via a plurality of routes. According to the second aspect of the present invention, when a plurality of the same messages are received, only one message is processed, so that the processing amount for the message at each node is reduced and the useless messages transmitted on the network are reduced. Can do.
[0020]
According to a third aspect of the present invention, in the routing control method of the first aspect, the number of transfer destination nodes when each node transfers a received message to another node is limited to a predetermined number.
According to the third aspect of the present invention, since the number of transfer destination nodes of messages sent from each node is suppressed, the total number of messages appearing on the network can be reduced, and the network utilization efficiency can be improved.
[0021]
According to a fourth aspect of the present invention, in the routing control method of the first aspect, history information regarding a node through which the message transferred between a plurality of nodes has passed and a node to which the same message has already been transmitted is included in the message. When a received message is transferred, the history information is examined and nodes included therein are excluded from transfer destination nodes.
[0022]
According to the fourth aspect of the present invention, control is performed so that the same message is not sent to the node to which the message has already passed and the node to which the same message has already been transmitted based on the history information, so that the same message repeatedly reaches the same node. Network efficiency can be improved.
In the routing control method according to claim 1, in the routing control method according to claim 1, for each of the other nodes managed by the own node, the communication frequency between the own node and the other node and the similarity of the managed information are determined. When information representing at least one is managed and a message received by each node is transferred, a node having a high communication frequency or a node having a high similarity is preferentially selected as a transfer destination.
[0023]
In claim 5, since a node with high communication frequency or a node with high similarity is preferentially selected as a transfer destination, when searching for information, a node with a high probability that the target information exists Search can be requested and search can be performed efficiently. Further, when updating information, a message can be transmitted to a node having a high probability of requiring the information.
[0024]
Therefore, it is possible to search for information necessary for routing and update information by sending relatively few messages to the network.
Claim 6 is the routing control method according to claim 1, wherein, for each of the other nodes managed by the own node, information on importance indicating the communication frequency between the own node and the other node is managed. When the capacity of the information managed in each table exceeds a limit value, the information regarding the node having the low importance is preferentially deleted from the table.
[0025]
In claim 6, when the capacity of the information managed in each table exceeds the limit value, the information regarding the node having a low communication frequency between the nodes is preferentially deleted from the table. Can be left in the table, and efficient routing is possible even for a node having a small storage capacity of the table.
According to a seventh aspect of the present invention, at least one of an application program and a proxy that relays communication is provided in each communication device that constitutes a node, and a plurality of nodes including the application program are connected to each other via a plurality of proxies and a predetermined network. In a communication system, a routing control device used for controlling each node in which a proxy is arranged, and a session management means for managing each application program, a service address for identifying each proxy, and a session representing each communication A resource table for managing the location of each application program and the location of each proxy, a first service address representing the destination application program, and the proxy of the local proxy on the communication path connected to the destination Managed by the own node, a proxy routing table that manages the correspondence with the second service address representing another proxy located at the hop, a location table that manages the network address of the communication device that exists in each node, and A message sending means for sending a message to another node managed in the resource table or the location table when the information is updated or when it is necessary to search for information that does not exist in the own node; When the local node receives a message requesting a search from another node and the requested information exists in the local node, a search result transmitting means for transmitting the search result to the message source, and the local node A message requesting a search from another node is received and the requested information is If the message does not exist or if a message indicating information update is received, the content of the received message is managed in the resource table or location table if the number of hops from the message source does not exceed the limit value And a message transfer means for transferring the message to another node.
[0026]
By using the routing control device of claim 7, the routing control method of claim 1 can be realized.
According to an eighth aspect of the present invention, in the routing control device according to the seventh aspect, the search result transmitting unit and the message transfer unit process only one message when a plurality of the same messages transmitted from other nodes are received. And the rest of the message is ignored.
[0027]
By using the routing control device of claim 8, the routing control method of claim 2 can be realized.
According to a ninth aspect of the present invention, in the routing control device according to the seventh aspect, there is further provided a transfer destination node number limiting means for limiting the number of transfer destination nodes to a predetermined number when each node transfers the received message to another node. It is characterized by that.
[0028]
By using the routing control device of claim 9, the routing control method of claim 3 can be realized.
In the routing control device according to claim 7, when the history information of the passed node is included in the message transferred between a plurality of nodes, the message received by each node is transferred. A history identifying means for examining the history information and excluding nodes included in the history information from the transfer destination node is further provided.
[0029]
By using the routing control device of claim 10, the routing control method of claim 4 can be realized.
Claim 11 is the routing control device of claim 7, wherein for each of the other nodes managed by the own node, the communication frequency between the own node and the other node and the similarity of the information managed A communication frequency management means for managing information representing at least one and a transfer destination selection for preferentially selecting a node having a high communication frequency or a node having a high similarity when transferring a message received by each node. And a means.
[0030]
By using the routing control device of claim 11, the routing control method of claim 5 can be realized.
Claim 12 is the routing control device according to claim 7, wherein, for each of the other nodes managed by the own node, importance information for managing the communication frequency between the own node and the other node is managed. And a table information deleting unit that preferentially deletes information related to the low importance node from the table when the capacity of information managed in each table exceeds a limit value. It is characterized by that.
[0031]
By using the routing control device of claim 12, the routing control method of claim 6 can be realized.
According to a thirteenth aspect, at least one of an application program and a proxy that relays communication is provided in each communication device that constitutes a node, and a plurality of nodes including the application program are connected to each other via a plurality of proxies and a predetermined network. A recording medium recorded with a computer-executable control program for routing control of each node where a proxy is arranged, applied to a communication system, wherein each control program includes each application program and each proxy. Represents a service address to be identified, a procedure for managing a session representing each communication, a procedure for managing the location of each application program and the location of each proxy as a resource table, and a destination application program A procedure for managing a correspondence relationship between one service address and a second service address representing another proxy located at the next hop of the local proxy on a communication path connected to the destination as a proxy routing table; The procedure for managing the network address of the communication device existing in the node as a location table, and when the information managed in the own node is updated, or when it is necessary to search for information that does not exist in the own node, When sending a message to another node managed in the resource table or location table and when the local node receives a message requesting a search from another node, and the requested information exists in the local node Includes a procedure for sending search results to the message originator and If a message requesting a search from a node is received and the requested information does not exist in the local node, or if a message indicating information update is received, the number of hops from the message source exceeds the limit value. If not, a procedure for transferring the content of the received message to another node managed by the resource table or the location table is provided.
[0032]
By executing the control program recorded on the recording medium of claim 13, the method of claim 1 can be implemented.
According to a fourteenth aspect of the present invention, at least one of an application program and a proxy that relays communication is provided in each communication device that configures a node, and a plurality of nodes including the application program are connected to each other via a plurality of proxies and a predetermined network. A control program that is applied to a communication system and that can be executed by a computer for routing control of each node in which a proxy is arranged, and represents each application program and a service address that identifies each proxy, and each communication A procedure for managing a session, a procedure for managing the location of each application program and the location of each proxy as a resource table, a first service address representing a destination application program, and a connection to the destination A procedure for managing, as a proxy routing table, a correspondence relationship with a second service address representing another proxy located at the next hop of the local proxy on a communication route, and a network address of a communication device existing in each node Other procedures managed in the resource table or location table when the information managed in the local node is updated, or when information that does not exist in the local node needs to be searched The procedure for sending a message to the other node, and when the local node receives a message requesting a search from another node and the requested information exists in the local node, the search result is sent to the message originator. And a message requesting a search from another node. If the requested information does not exist in the local node, or if a message indicating the update of information is received, the content of the received message is displayed if the number of hops from the message source does not exceed the limit. And a transfer procedure to another node managed by the resource table or the location table.
[0033]
By executing the control program of claim 14, the method of claim 1 can be implemented.
[0034]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below. This form corresponds to all the claims.
[0035]
In this form, the session management means, resource table, proxy routing table, location table, message transmission means, search result transmission means and message transfer means of claim 7 are the session management unit 502, resource table RST, proxy routing table PRT, respectively. , Location table LCT, step S316, step S306 and step S305 (S316).
[0036]
The transfer destination node number limiting means according to claim 9 corresponds to step S305 (S316). The history identifying means of claim 10 corresponds to step S305 (S316). The communication frequency management means of claim 11 corresponds to steps S324 to S327, and the transfer destination selection means of claim 11 corresponds to step S305 (S316). The importance level management means of claim 12 corresponds to steps S324 to S327, and the table information deletion means of claim 12 corresponds to step S322.
[0037]
Before entering into a characteristic description of the present invention, basic techniques required for implementing the present invention will be described.
(First basic technology)
This will be described with reference to FIGS.
FIG. 30 is a sequence diagram showing a control sequence when switching between a proxy and an application. FIG. 31 is a block diagram illustrating an example of a communication path when switching between a proxy and an application. FIG. 32 is a sequence diagram showing a control sequence when a proxy is added to a session. FIG. 33 is a block diagram illustrating an example of a communication path when a proxy is added to a session.
[0038]
FIG. 34 is a sequence diagram showing a control sequence for deleting a proxy from a session. FIG. 35 is a block diagram illustrating an example of a communication path when a proxy is deleted from a session. FIG. 36 is a sequence diagram showing a control sequence for replacing a proxy on a session. FIG. 37 is a block diagram illustrating an example of a communication path when a proxy on a session is replaced.
[0039]
FIG. 38 is a block diagram illustrating a configuration example of a communication system. FIG. 39 is a block diagram illustrating a configuration example of a mobile terminal. FIG. 40 is a schematic diagram illustrating an example of information held by the service management unit SR. FIG. 41 is a schematic diagram illustrating an example of information held by the position management unit LR. FIG. 42 is a schematic diagram illustrating an example of information held by the session management unit SM.
[0040]
FIG. 43 is a block diagram illustrating a configuration example of a communication system. FIG. 44 is a block diagram illustrating a configuration example of a network. FIG. 45 is a block diagram showing a movement model of nodes and services. FIG. 46 is a sequence diagram showing a procedure for updating position information when the terminal moves.
In this form, for example, a case where a communication system as shown in FIG. 38 is used is assumed. In the example of FIG. 38, three types of sub-networks 51, 52, and 53 are connected to each other via a wide area network.
[0041]
In the sub-network 51, a large number of terminals (55, 56) can be connected in a communicable state via a communication interface configured in accordance with the Ethernet (registered trademark) standard.
The sub network 52 constitutes a wireless LAN. Mobile terminals 59 and 60 having a wireless communication interface conforming to this standard can perform wireless communication with the base stations 57 and 58 and are connected to the sub-network 52 wirelessly. Of course, communication with the base stations 57 and 58 is not possible outside a specific communicable area.
[0042]
The sub-network 53 is a PHS network that is a public wireless communication system. In the example of FIG. 38, a mobile terminal 61, a fixed terminal 62, and a TAP (PIAFS terminal adapter) 63 are connected to the subnetwork 53, and base stations 64 and 65 are connected to the TAP 63. Mobile terminals 66 and 67 having a wireless communication interface configured in accordance with the PHS communication standard can perform wireless communication with the base stations 64 and 65. Of course, communication with the base stations 64 and 65 is not possible outside a specific communicable area.
[0043]
For example, when the mobile terminal 59 shown in FIG. 38 moves to the vicinity of the mobile terminal 55, the mobile terminal 59 may not be able to perform wireless communication with the base station 57. However, at that position, the mobile terminal 59 can be connected to the sub-network 51 by wire.
[0044]
In the case of a general system, when the network used for communication by the terminal is switched between the sub-networks 51, 52, and 53, it is necessary to once terminate communication of the application and reconstruct the communication path. It takes time and effort.
By using the technique described here, even when the network used by the terminal for communication is switched between the sub-networks 51, 52, and 53, the switching is automatically performed without terminating the communication of the application. It can be carried out.
[0045]
Further, for example, when the same application program exists in the mobile terminal 55 and the fixed terminal 56, the application on the fixed terminal 56 is in progress while one user is communicating using the application program on the mobile terminal 55. You can also switch to the program and continue to communicate.
Each terminal (mobile terminal in this example) used here is configured as shown in FIG. The mobile terminal in FIG. 39 includes an Ethernet (registered trademark) communication adapter 21 to enable connection to the subnetwork 51, and includes a wireless LAN adapter 22 to enable connection to the subnetwork 52. A PHS communication adapter 23 is provided to enable connection with the network 53.
[0046]
The mobile terminal shown in FIG. 39 includes a server application 11, a client application 12, a proxy 13, an agent 14, a link switching unit 15, links 16, 17, 18, a location management unit LR, a session management unit SM, and a service management unit as software 10. SR is provided.
The server application 11 is a program for providing a specific application service. The client application 12 is a program for using a service provided by the server for a specific application.
[0047]
The proxy 13 relays communication from a certain transmission source to a certain reception destination, and accumulates communication contents in its own storage device. For example, even if communication between the proxy 13 and the destination is temporarily disabled, the contents of communication input from the transmission source to the proxy 13 are accumulated in the proxy 13. When communication with the receiver is restored, the information stored in the proxy 13 can be transmitted to the receiver and communication can be continued.
[0048]
The proxy 13 in FIG. 39 can relay the communication of the server application 11 or the communication of the client application 12.
The link switching unit 15 switches the links 16, 17, and 18 used for communication with other terminals. The link 16 is connected to the Ethernet (registered trademark) communication adapter 21, the link 17 is connected to the wireless LAN adapter 22, and the link 18 is connected to the PHS communication adapter 23.
[0049]
When communicating using the link 16 and the Ethernet (registered trademark) communication adapter 21, communication is possible via the sub-network 51, and when communicating via the link 17 and the wireless LAN adapter 22, the sub-network 51 is communicated. Communication can be performed via the network 52, and communication can be performed via the sub-network 53 when the link 18 and the PHS communication adapter 23 are used.
[0050]
That is, the communication method can be switched by switching the links 16, 17, and 18 used by the link switching unit 15 to connect to any of the sub-networks 51, 52, and 53.
Each terminal that performs communication is assigned an IP (Internet Protocol) address. Further, when the terminal switches the communication method, the terminal moves on the network beyond the subnet boundary, which is an address allocation unit. Therefore, a new address is used every time switching is performed.
[0051]
The service management unit SR manages information on the types and functions of the server application 11, the client application 12, and the proxy 13 provided in each terminal.
[0052]
Actually, for example, the content shown in FIG. 40 is held in the service management unit SR. In the example of FIG. 40, the terminal A11 holds a server B11 as an application program and includes a proxy C11. The terminal A12 holds a server B12 as an application program and includes a proxy C12. Further, the terminal A13 holds a client B13 as an application program and includes a proxy C13.
[0053]
The location management unit LR manages the IP address for each terminal. The location management unit LR can manage the IP addresses of a large number of terminals as well as terminals equipped with the position management unit LR. However, in order to improve the efficiency of location management and to enable location management even for a terminal with few resources, the amount of movement of the terminal and the storage capacity relating to location management are also managed. Further, in order to limit the range of terminals to be managed, a plurality of terminals are divided into groups and managed.
[0054]
Actually, as shown in FIG. 41, for example, terminal identification name E10, group name E11, IP address E12, status (usability) E13 of each IP address, movement amount E14, storage capacity of LR and information on update time Is held for each terminal of a specific group managed by the.
Further, when the communication device is switched along with the movement of the terminal or the like, the IP address of the terminal changes. In this case, the content held by the location management unit LR is updated. At the same time, if there is a communication partner, a position information update command is transmitted to the communication partner. That is, the update procedure shown in FIG. 46 is executed.
[0055]
Further, when each terminal transmits a position information update command, the order in which the commands are transmitted is determined in consideration of a predetermined priority. For example, a high priority is given to a terminal with a small amount of movement such as a fixed terminal (desktop personal computer or the like) 56. Also, a high priority is given to a terminal having a large storage capacity (E15) of position information.
[0056]
Each group used for management of the location management unit LR can include a plurality of terminals existing in a range exceeding the boundary of the subnet. A plurality of groups can coexist in one subnet.
The terminal (X1) newly joining the group acquires its IP address and broadcasts a group search request in the subnetwork or transmits a group search request to a known specific terminal (X2). To do.
[0057]
Thereafter, when the terminal (X1) receives a response from the terminal (X2) that has received the group search request, the terminal (X1) acquires group information from the content and selects a group to join.
The terminal (X1) transmits a registration request for the selected group to the terminal (X2). The terminal (X2) acquires the position information of the terminal (X1) that transmitted this registration request.
[0058]
Also, the terminal (X2) that has received the registration request transmits the information of the location management unit LR included therein to the terminal (X1), and adds the location information of the subscribed terminal (X1) to the contents of the location management unit LR. This completes the procedure for joining the group.
When searching for location information regarding each terminal, the location information is searched from information held by the location management unit LR included in the terminal itself. If the search cannot be performed, a search request is sent to an arbitrary terminal included in the information held by the location management unit LR. When a result is returned in response to this search request, the position information is added to the position management unit LR.
[0059]
When searching for terminals belonging to the same group in the subnet, a broadcast packet is transmitted, and location information is registered in the location management unit LR based on a response to the broadcast packet.
The location management unit LR includes the following functions.
(1) IP address change due to movement of terminal location
(2) IP address status change due to node disconnection, line disconnection, failure, etc.
(3) Notification of change to agent 14
(4) Joining and leaving the group
(5) Transmission / reception of position information to / from the position management unit LR of the node in the group
The session management unit SM in FIG. 39 manages the entire communication path as a session for each communication. For example, in FIG. 44, communication can be performed between the application 101 and the application 102 using the session 103. In this case, the session 103 includes proxies 104, 105, and 106.
[0060]
The session 103 uses communication connections 107, 108, 109 and 110. A communication connection 107 is a communication path established between the application 102 and the proxy 104. The communication connection 108 is a communication path established between the proxies 104 and 105. The communication connection 109 is a communication path established between the proxies 105 and 106. The communication connection 110 is a communication path established between the application 101 and the proxy 106.
[0061]
The actual session management unit SM holds information G11 to G18 as shown in FIG. Information G11 is an identifier for distinguishing a plurality of sessions. The information G12 represents the name of the node (terminal) where the server application to be used exists. Information G13 represents a port number given to the server application to be used.
[0062]
Information G14 represents the name of the node where the client application to be used exists. Information G15 represents a port number given to the client application to be used. Information G16 represents the name of the node where the proxy to be used exists. Information G17 represents the port number given to the proxy to be used. When a communication path of one session is configured to relay a plurality of proxies, each node name, port number, and connection state of the plurality of proxies to be used are one session ID (G11 ) And stored in the session management unit SM.
[0063]
Functions performed by the session management unit SM include addition of a proxy to each session, deletion of a proxy, switching of a proxy, and communication with the session management unit SM existing in another terminal.
The agent (different from the application) 14 in FIG. 39 mediates various information held by the location management unit LR, the session management unit SM, and the service management unit SR, and determines the proxy based on comprehensive judgment of the information. 13 and the link switching unit 15 are controlled.
[0064]
For example, when it is desired to terminate a server application that currently provides a predetermined communication service while continuing a predetermined communication service, it is possible to search for an alternative server application of the same type using the service management unit SR. .
Further, since the location management unit LR holds the terminal identification name and its IP address, the location of the terminal where the switching destination server application exists can be specified. Furthermore, by performing processing described later using information on a specific session managed by the session management unit SM, it is possible to switch the server application and continue the communication service.
[0065]
The agent 14 instructs the link switching unit 15 to switch the link, and requests the proxy to restart the communication connection after the link is switched. The link switching unit 15 has functions such as connection to a new link, link disconnection, and routing management. Further, the proxy has a function of concealing the disconnection or change of the link under the connection (see FIG. 45).
[0066]
When a service is moved from a certain source to a certain destination, the status of the source service is changed from the session used for communication of the service to the service built on the destination application or proxy. It can be realized by transferring. The status of the service to be transferred includes the connection status of the applications and proxies constituting the session, the number of bytes of data being transmitted and received, the number of frames, and the like.
[0067]
For example, when a portable mobile terminal is used to receive and browse stream data from a specific server application via a wireless line and a network, a high-quality service can be received because the display capability of the terminal is low. Can not. However, if a user moves a service from a mobile terminal to a fixed terminal having a large screen, a high quality service can be received. Even in the case of such movement, the service can be continuously used.
[0068]
Further, when the same server application exists in a plurality of terminals, the communication path used for providing the service can be switched so as to switch the terminal and the application on the server side. It is also possible to improve the communication speed of the service by switching terminals.
A specific example of switching the communication path used for providing the service or switching the server application or the client application will be described below. Here, a communication system as shown in FIG. 43 is assumed.
[0069]
In FIG. 43, the functions of the mobile terminals 30 (1) to 30 (5) are simplified. Actually, each of the mobile terminals 30 (1) to 30 (5) has the same function as the mobile terminal shown in FIG.
However, the server application 11 is provided only in the mobile terminal 30 (1), and the client application 12 is provided only in the mobile terminals 30 (2) and 30 (3). Further, the mobile terminal 30 (5) is not provided with the session management unit SM. When the proxy 13 of the mobile terminal 30 (5) is used, control may be performed using the session management unit SM provided in the mobile terminal 30 other than the mobile terminal 30 (5).
[0070]
First, a case where proxy and application are switched will be described. Specifically, in the state before switching, the communication connection 201 is established between the server application 11 (1) of the mobile terminal 30 (1) and the proxy 13 (1) in FIG. 31, and the proxy 13 (1) and the proxy 13 The communication connection 202 is established between the client application 12 (2) and the proxy 13 (2), and the server application 11 (1) -proxy 13 (1) is established. It is assumed that the session is formed so as to pass through the communication path of the proxy 13 (2) -client application 12 (2).
[0071]
Here, instead of the client application 12 (2) on the mobile terminal 30 (2), the client application 12 (3) on the mobile terminal 30 (3) is used to continuously provide the service of the server application 11 (1). In the case of receiving, the control sequence shown in FIG. 30 is executed using the function of the session management unit SM (2). That is, the proxy 13 (2) is switched to the proxy 13 (3).
[0072]
The agent 14 of the terminal that manages the usage state of the user and the connection state between the terminals generates an application (AP) switching request as necessary (for example, according to a user instruction).
This switching request is notified to, for example, the session management unit SM (2). In this case, the session management unit SM (2) executes step S11 of FIG. That is, in order to switch to the switching destination proxy 13 (3) in which the communication connection 204 has been established with the switching destination client application 12 (3), an inquiry about switching is made to the proxy 13 (3). When making this inquiry, the session ID of the corresponding session and information on the connection status of the proxy are also transmitted as parameters from the session management unit SM (2) to the proxy 13 (3).
[0073]
This parameter also includes the file name of the file being relayed by the switching source proxy 13 (2) and the number of bytes that have been transferred (current transfer position on the file).
[0074]
Upon receiving the inquiry, the proxy 13 (3) activates necessary processes and the like based on the received parameters, and prepares for relaying communication in step S12. The proxy 13 (3) inherits the state of the switching source proxy 13 (2) based on the received parameters.
In this preparation, when the necessary application 12 (3) is not activated, the proxy 13 (3) activates the application 12 (3). If the communication connection 204 between the application 12 (3) and the proxy 13 (3) has not been established, the communication connection 204 is established.
[0075]
When the preparation is completed, in step S13, the proxy 13 (3) transmits a preparation completion notification to the session management unit SM (2).
When the session management unit SM (2) receives the preparation completion notification, in step S14, the session management unit SM (2) issues a switching request to the proxy 13 (1) that has established the communication connection 202 with the switching source proxy 13 (2). Send. This switching request includes a node name (G16) and a port number (G17) related to the proxy 13 (3) to be switched as parameters.
[0076]
When the proxy 13 (1) receives the switching request, the proxy 13 (1) uses the switching request parameter and the session ID to connect the proxy 13 (3) connection point (the IP address of the terminal and the port number of the proxy 13 (3)). ) Is established (S15).
When the communication connection 205 is established between the proxy 13 (3) and the proxy 13 (1), the communication connection 204 and the client application 12 (3) for the specific session determined by the session ID received when the communication connection 205 is established. ) Are associated (S16). Thus, the preparation of the proxy 13 (3) for relaying (accumulating and transferring) communication between the communication connection 205 and the communication connection 204 is completed.
[0077]
Further, the proxy 13 (1) switches all the communications that have been performed through the communication connection 202 to the communication connection 205 (S17). After the switching is completed, the proxy 13 (1) transmits a switching completion notification to the session management unit SM (2) (S18).
When the session management unit SM (2) receives the completion notification, the session management unit SM (2) updates the contents of the managed table (S19). In other words, the node name and port number of the client application 12 (3) and the proxy 13 (3) after switching and the connection relationship thereof are reflected with respect to a specific session determined by the session ID (session switched in this processing). Update the information as you do.
[0078]
Also, the session management unit SM (2) notifies the changed information to the other session management units SM (1), SM (3), SM (4) that manage the information of the changed session. (S21).
As a result of the above control sequence, as shown in FIG. 31, the service provided by the communication between the server application 11 (1) and the client application 12 (2) is the server application 11 (1) and the client application 12 ( The content of the session (communication path) is changed so that the communication with 3) is switched to.
[0079]
Next, a case where a proxy is added to a session will be described. Specifically, in the state before the addition, as shown in FIG. 33, a communication connection 211 is established between the server application 11 (1) and the proxy 13 (1), and the proxy 13 (1), 13 (2) A communication connection 212 is established between them, a communication connection 213 is established between the proxy 13 (2) and the client application 12 (2), and the two proxies 13 (1) and 13 (2) are connected to the server application 11 (1 ) And the client application 12 (2), the session is constructed so as to relay the communication.
[0080]
In this state, when adding the proxy 13 (3) between the proxy 13 (1) and the proxy 13 (2) while continuing communication, the function of the session management unit SM (2) is used. The control sequence shown in FIG. 32 is executed.
[0081]
The terminal agent 14 generates a proxy addition request as required (for example, according to a user instruction). This addition request is notified to, for example, the session management unit SM (2). In this case, the session management unit SM (2) executes step S31 of FIG.
That is, in order to make the proxy 13 (3) to be added prepare for addition, the session management unit SM (2) makes an additional inquiry. When making this inquiry, the session ID of the corresponding session and information on the connection status of the proxy are also transmitted as parameters from the session management unit SM (2) to the proxy 13 (3).
[0082]
This parameter includes the file name of the file relayed by the proxy 13 (2) and the number of bytes that have been transferred (current transfer position on the file).
Upon receiving the inquiry, the proxy 13 (3) activates necessary processes and the like based on the received parameters, and prepares for relaying communication in step S32. The proxy 13 (3) inherits the state of the proxy 13 (2) based on the received parameter. When the preparation is completed, in step S33, the proxy 13 (3) transmits a preparation completion notification to the session management unit SM (2).
[0083]
Upon receiving the preparation completion notification, the session management unit SM (2) transmits a switching request to the proxies 13 (1) and 13 (2) to be connected to the proxy 13 (3) to be added in steps S34 and S35. To do. This switching request includes the node name (G16) and port number (G17) related to the proxy 13 (3) to be added as parameters.
When the proxy 13 (1) and 13 (2) receive the switching request, the proxy 13 (3) connection point (the IP address of the terminal and the proxy 13 (3) Communication connection 214 or 215 is established for (port number) (S36, S37).
[0084]
When the communication connections 214 and 215 are established, the proxy 13 (3) associates the communication connection 214 and the communication connection 215 with respect to a specific session determined by the session ID received when these connections are established (S38). Thereby, the preparation of the proxy 13 (3) for relaying (accumulating and transferring) the communication between the communication connection 214 and the communication connection 215 is completed.
[0085]
On the other hand, the proxy 13 (1) switches all communications that have been performed through the communication connection 212 to the communication connection 214 (S41). After the switching is completed, the proxy 13 (1) transmits a switching completion notification to the session management unit SM (2) (S44).
Similarly, the proxy 13 (2) switches all communications that have been performed through the communication connection 212 to the communication connection 215 (S40). After the switching is completed, the proxy 13 (2) transmits a switching completion notification to the session management unit SM (2) (S42).
[0086]
When the session management unit SM (2) receives the completion notification, the session management unit SM (2) updates the contents of the managed table (S45). That is, for a specific session determined by the session ID (the session in which the proxy is added in this process), information is added to reflect the node name and port number of the added proxy 13 (3) and the connection relationship between the proxies. Update.
[0087]
Also, the session management unit SM (2) notifies the changed information to the other session management units SM (1), SM (3), SM (4) that manage the information of the changed session. (S46).
As a result of the above control sequence, as shown in FIG. 33, the communication between the server application 11 (1) and the client application 12 (2) is proxy 13 (1) -proxy 13 (3) -proxy 13 (2). The content of the session is changed so that it is relayed on the route.
[0088]
Next, the case where the proxy used until then is deleted from the session will be described. Specifically, in the state before the addition, as shown in FIG. 35, a communication connection 221 is established between the server application 11 (1) and the proxy 13 (1), and the proxy 13 (1), 13 (3) A communication connection 222 is established, a communication connection 223 is established between the proxies 13 (3) and 13 (2), and a communication connection 224 is established between the proxy 13 (2) and the client application 12 (2). The session is constructed so that the three proxies 13 (1), 13 (3), and 13 (2) relay the communication between the server application 11 (1) and the client application 12 (2). .
[0089]
When the proxy 13 (3) between the proxy 13 (1) and the proxy 13 (2) is deleted (excluded from the session) while communication is continued from that state, the function of the session management unit SM (2) Is used to execute the control sequence shown in FIG.
The terminal agent 14 generates a proxy deletion request as required (for example, according to a user instruction). This deletion request is notified to the session management unit SM (2), for example. In this case, the session management unit SM (2) executes processing in order from step S51 of FIG.
[0090]
The session management unit SM (2) sends a proxy 13 (1) and 13 (2) to each of the proxies 13 (1) and 13 (2) that establish communication connections 222 and 223 with the proxy 13 (3) to be deleted. A deletion request relating to 3) is transmitted (S51, S52).
Upon receiving the deletion request, the proxy 13 (2) establishes a communication connection 225 between the proxy 13 (2) and the proxy 13 (1) using the session ID (S53).
[0091]
Furthermore, the proxy 13 (2) switches all communications that have been performed through the communication connection 223 to the communication connection 225 (S54). After the switching is completed, the proxy 13 (2) transmits a switching completion notification to the session management unit SM (2) (S58). The communication connection 223 between the proxy 13 (2) and the proxy 13 (3) is disconnected by the proxy 13 (2) (S56).
[0092]
Similarly, the proxy 13 (1) switches all communications that have been performed through the communication connection 222 to the communication connection 225 (S55). After the switching is completed, the proxy 13 (1) transmits a switching completion notification to the session management unit SM (2) (S59). The communication connection 222 between the proxy 13 (1) and the proxy 13 (3) is disconnected by the proxy 13 (1) (S57).
[0093]
When the session management unit SM (2) receives the completion notification, the session management unit SM (2) updates the contents of the managed table (S60). That is, for a specific session determined by the session ID (the session in which the proxy is deleted in the current process), the information is updated to reflect the deletion result in the connection relationship between the proxies.
Also, the session management unit SM (2) notifies the changed information to the other session management units SM (1), SM (3), SM (4) that manage the information of the changed session. (S61).
[0094]
As a result of the above control sequence, as shown in FIG. 35, communication between the server application 11 (1) and the client application 12 (2) is relayed through the route of the proxy 13 (1) -proxy 13 (2). The contents of the session are changed.
Next, a case where a proxy used on a specific session is replaced with another proxy will be described. Specifically, in the state before the addition, as shown in FIG. 37, the communication connection 231 is established between the server application 11 (1) and the proxy 13 (1), and the proxy 13 (1), 13 (4) A communication connection 232 is established between them, a communication connection 233 is established between the proxies 13 (4) and 13 (2), and a communication connection 234 is established between the proxy 13 (2) and the client application 12 (2). The session is constructed so that the three proxies 13 (1), 13 (4), and 13 (2) relay the communication between the server application 11 (1) and the client application 12 (2). .
[0095]
In this state, when replacing the proxy 13 (4) that is used while continuing communication with the proxy 13 (5), the function shown in FIG. 36 is used by using the function of the session management unit SM (2). Run the sequence.
The terminal agent 14 generates a proxy replacement request as required (for example, according to a user instruction). This replacement request is notified to the session management unit SM (2), for example. In this case, the session management unit SM (2) executes step S71 of FIG.
[0096]
In other words, the session management unit SM (2) makes a replacement inquiry in order to prepare the replacement destination proxy 13 (5) for relaying. At the time of this inquiry, the session ID of the corresponding session and the connection state information of the proxy are also transmitted as parameters from the session management unit SM (2) to the proxy 13 (5).
This parameter includes the file name of the file being relayed by the proxy 13 (4) as the replacement source, and the number of bytes that have been transferred (current transfer position on the file).
[0097]
Upon receiving the inquiry, the proxy 13 (5) activates necessary processes and the like based on the received parameters, and prepares to relay communication in step S72. The proxy 13 (5) inherits the state of the replacement source proxy 13 (4) based on the received parameters. When the preparation is completed, in step S73, the proxy 13 (5) transmits a preparation completion notification to the session management unit SM (2).
[0098]
When the session management unit SM (2) receives the preparation completion notification, the proxy 13 (1), having established the communication connections 232, 233 with the replacement source proxy 13 (4) in steps S74 and S75. A switching request is transmitted to 13 (2). This switching request includes the node name (G16) and port number (G17) related to the proxy 13 (5) to be replaced as parameters.
[0099]
When the proxy 13 (1) and 13 (2) receive the switching request, the proxy 13 (5) connection point (the IP address of the terminal and the proxy 13 (3) Communication connection 235 or 236 is established for (port number) (S76, S77).
[0100]
When the communication connections 235 and 236 are established, the replacement proxy 13 (5) associates the communication connection 235 and the communication connection 236 with respect to a specific session determined by the session ID received when these connections are established (S78). ). Thereby, the preparation of the proxy 13 (5) for relaying (accumulating and transferring) the communication between the communication connection 235 and the communication connection 236 is completed.
[0101]
On the other hand, the proxy 13 (2) switches all communications that have been performed through the communication connection 233 to the communication connection 236 (S80). After the switching is completed, the proxy 13 (2) transmits a switching completion notification to the session management unit SM (2) (S82).
Similarly, the proxy 13 (1) switches all communications that have been performed through the communication connection 232 to the communication connection 235 (S81). After the switching is completed, the proxy 13 (1) transmits a switching completion notification to the session management unit SM (2) (S83).
[0102]
After the switching from the communication connections 232 and 233 to the communication connections 235 and 236 is completed, the unnecessary communication connections 232 and 233 are disconnected (S84, S85).
When the session management unit SM (2) receives the completion notification, the session management unit SM (2) updates the contents of the managed table (S86). That is, for a specific session determined by the session ID (the session in which proxy replacement is performed in the current process), information is updated so that the result of replacement is reflected in the connection relationship between proxies.
[0103]
Also, the session management unit SM (2) notifies the changed information to the other session management units SM (1), SM (3), SM (4) that manage the information of the changed session. (S87).
[0104]
As a result of the above control sequence, as shown in FIG. 37, the communication between the server application 11 (1) and the client application 12 (2) is proxy 13 (1) -proxy 13 (5) -proxy 13 (2). The content of the session is changed so that it is relayed on the route.
A unique session ID that is different for each session is assigned to the communication performed between the server application 11 and the client application 12. The proxy connection point represents a position on the network and a connection request receiving port. When TCP / IP is assumed as the protocol, the connection point is an IP address and a port number on which the proxy is listening.
[0105]
In addition, for example, when switching a communication connection in order to switch the communication path of a session, communication is temporarily disabled. However, at least one proxy included in the session accumulates communication contents transmitted by the application and performs communication. When it becomes possible, the stored information is transmitted to automatically perform communication recovery work. Therefore, even when the communication path is switched in the middle of communication, the user can continue the communication without performing any special operation.
[0106]
The outline of the functions described here can be expressed by a movement model shown in FIG. That is, the same service can be continuously provided to the same user even when the terminal used by the user moves and the communication method is switched or when the terminal used by the user is switched.
The service handled here means communication contents transmitted / received between applications through each session, a communication protocol (such as http) associated therewith, and an expression method (reproduction, browsing, etc.).
[0107]
When the service is moved, the service can be continued in the same state by transferring the service state from the movement source session indicated by the same session ID to the movement destination session.
[0108]
Each terminal (node) is mapped to a link layer address space as shown in FIG. Therefore, the movement of the node can be realized by changing the correspondence between the node and the address. Each terminal can have a plurality of communication devices, and each terminal can hold a unique address.
In order to evaluate the performance of the position management method in such a communication system, a simulation was performed using a computer. The simulation conditions are as follows.
[0109]
(1) Terminal movement interval: Among a large number of terminals constituting a group, (1/3) has an average movement time of 30 minutes, and the remaining (2/3) terminals have an average movement time of 10 minutes. .
(2) The communication standby time of the terminal is 20 minutes, and the communication time is 50 minutes.
(3) Storage capacity of location management unit LR: Among a large number of terminals, (1/3) LRs can hold location information of all terminals, and other (1/3) terminals have LRs of (1/2 ) Terminal position information can be held, and the remaining (1/3) terminal LRs can hold (1/4) terminal position information.
[0110]
(4) The number of location information update commands issued during 1200 minutes and the search success rate of the location management unit LR were measured for 400 trials. However, the first 100 minutes are excluded from the statistics.
(5) When the position management unit LR sends a position information update command, all position information held by itself is transmitted. In the LR on the receiving side, the position information that is selected and held by the time stamp of the position information is updated.
[0111]
(6) Two kinds of methods are evaluated for the priority order of the terminal when issuing the location information update command. In the “Method A” method, when the location management unit LR updates the location information held by itself, the location management unit LR issues a location information update command to all terminals. In the method of “Method B”, only the LR of the terminal having a storage capacity that can hold the position information of all terminals with a movement interval of 30 minutes issues a position information update command to all the terminals, and the remaining For the location management unit LR of the terminal, the location information update command is issued only to the terminal having a storage interval of 30 minutes and capable of holding the location information of all the terminals.
[0112]
In the “Method A” method, a location update command is issued to all terminals each time the location of each terminal is updated, so the communication volume increases, but excellent location management capability is obtained.
The simulation results are shown in FIGS. FIG. 47 shows the number of issued position information update instructions. 48 and 49 show the position search success rate. The location search success rate in FIG. 48 is a rate at which the location information of the other terminal is successfully acquired by the search of the location information held by the location management unit LR of the specific terminal and the search of the location management unit LR of other terminals. is there. Further, the location search success rate in FIG. 49 is a rate at which only the location information held by the location management unit LR of a specific terminal is searched to successfully acquire the location information of the counterpart terminal.
[0113]
47 and 48, it can be seen that “Method B” has a communication cost reduced (60 to 80% reduction) and “Position search capability” is also acceptable in comparison with “Method A”. . In addition, this effect becomes more prominent as the number of terminals constituting the group increases, and the difference in the location search success rate also decreases. Therefore, by limiting the terminals to which location information update commands are issued in consideration of the movement amount of each terminal and the storage capacity of the location management unit LR, the location management load of each terminal is shared and the communication volume is suppressed. can do.
[0114]
Further, as can be seen from FIG. 49, it is possible to correctly detect the positions of 25 to 45% of terminals without searching for position information existing in other terminals. Therefore, even when the terminal is temporarily disconnected from the network, it is possible to obtain a clue for reconnection to the network by searching only the position information held by its own position management unit LR. .
[0115]
(Second basic technology)
Next, a description will be given with reference to FIGS.
In this embodiment, since it is assumed that HTTP communication is performed, the browser 5 and the Web server 7 are used as applications.
In the example of FIG. 51, since the browsers 5 that operate as client applications are arranged in the nodes 8 (A) and 8 (B), the nodes 8 (A) and 8 (B) function as client nodes. Further, since the Web server 7 that operates as a server application is arranged in the node 8 (C), the node 8 (C) functions as a server node.
[0116]
In the example of FIG. 52, since the browsers 5 (A) and 5 (B) that operate as client applications are arranged in the node 8 (A), the node 8 (A) functions as a client node. In addition, since the Web server 7 that operates as a server application is arranged in the node 8 (C) of FIG. 52, the node 8 (C) functions as a server node.
[0117]
The operation of the example of FIG. 51 will be described.
First, a request is sent from the browser 5 (A) to the Web server 7 via the proxy 6 (A), 6 (B) (C11). The response of the Web server 7 to this request is transmitted to the browser 5 (A) via the proxies 6 (C) and 6 (A) (C12). At this time, a session is established. In addition, a session ID for distinguishing each session is assigned.
[0118]
Thereafter, the proxy 6 (C) accepts the service movement request (C13). In this case, the proxy 6 (C) interrupts communication (C14) and connects to the proxy 6 (B1) of the destination node 8 (B) (C15).
In this case, the destination proxy 6 (B1) starts the browser 5 (B) with the URL including the session ID of the corresponding session as an argument (C16).
[0119]
The activated browser 5 (B) connects to the proxy 6 (B2) using the URL specified at the time of activation (C17). Based on the session ID, the proxy 6 (B2) links the communication of the browser 5 (B) and the proxy 6 (C) of the node 8 (C) that is the server node to transfer data (C18).
In this way, the service moves through the client node while maintaining the continuity of the service.
[0120]
Next, the operation of the example of FIG. 52 will be described.
First, a request is made from the browser 5 (A) to the Web server 7 via the proxy 6 (A), 6 (C) (C21). The response of the Web server 7 is transferred to the browser 5 (A) via the proxies 6 (C) and 6 (A) (C22). At this time, a session is established. In addition, a session ID for distinguishing each session is assigned.
[0121]
Thereafter, the proxy 6 (A) accepts the service movement request (C23). In that case, the proxy 6 (A) starts the browser 5 (B) with the URL including the session ID of the corresponding session as an argument (C24).
The activated browser 5 (B) connects to the proxy 6 (B2) using the URL specified at the time of activation (C25). Based on the session ID, the proxy 6 (B2) links the communication of the browser 5 (B) and the proxy 6 (C) of the node 8 (C), which is the server node, to transfer data (C26).
[0122]
In this way, the service moves through the client node while maintaining the continuity of the service.
(Third basic technology)
Next, a description will be given with reference to FIGS.
FIG. 53 is a sequence diagram showing a simplified control sequence when a proxy is added to a session. FIG. 54 is a sequence diagram showing a simplified control sequence in the case of deleting a proxy from a session. FIG. 55 is a sequence diagram showing a simplified control sequence in the case of replacing a proxy on a session.
[0123]
This form is a modification of the first basic technique, and the contents of the control sequence are simplified as compared with the first embodiment. Also in this embodiment, it is assumed that a mobile terminal having a configuration as shown in FIG. 39 is used. However, the location management unit LR, service management unit SR, and link switching unit 15 shown in FIG. 39 are not necessarily required.
[0124]
The contents of the operations shown in FIGS. 53 to 55 are the same as those of the first basic technique, but the contents of the control in each figure will be described below.
First, the case of adding the proxy 13 (3) to the session as in the case of FIG. 33 will be described with reference to FIG.
In this example, in FIG. 33, communication connections are established in the order of the client application 12 (2), the proxy 13 (2), the proxy 13 (1), and the server application 11 (1), and the client application 12 (2) and the server application From the state in which a session is established with 11 (1), client application 12 (2), proxy 13 (2), proxy 13 (3), proxy 13 (1), and server application 11 (1) are in this order. It is assumed that a session connection between the client application 12 (2) and the server application 11 (1) is changed after a communication connection is established.
[0125]
That is, it represents an operation for adding another proxy 13 (3) between the proxy 13 (2) and the proxy 13 (1).
The agent software (14 in FIG. 39) controls commands and management related to the connection status between users or terminals. When the mobile terminal 30 (2) receives the proxy switching request from the agent software, the mobile terminal 30 (2) notifies the session management unit SM (2) of it.
[0126]
In this case, the session management unit SM (2) sets the name and connection point of the proxy 13 (3) as parameters for the proxies 13 (1) and 13 (2) connected to the added proxy 13 (3). The switching request is transmitted as (S34, S35). The proxy 13 (1), 13 (2) having received the switching request establishes a communication connection corresponding to the session identifier to the connection point of the proxy 13 (3) using the received parameter and the session identifier (ID). (S36, S37).
[0127]
After that, the proxy 13 (1) switches all the communication that has been performed through the communication connection with the proxy 13 (2) to the communication connection of the proxy 13 (3) (S40, S41).
Two communication connections are established in the added proxy 13 (3). The proxy 13 (3) associates two communication connections based on the session identifier received when the communication connection is established, and makes a state in which accumulation and transfer are possible.
[0128]
Next, the case of deleting the proxy 13 (3) from the session as in the case of FIG. 35 will be described with reference to FIG.
In this example, in FIG. 35, communication connections are established in the order of the client application 12 (2), proxy 13 (2), proxy 13 (3), proxy 13 (1), and server application 11 (1). From the state in which the session between (2) and the server application 11 (1) is established, the client application 12 (2), the proxy 13 (2), the proxy 13 (1), and the server application 11 (1) in this order. It is assumed that a communication connection is established and the session path is changed between the client application 12 (2) and the server application 11 (1).
[0129]
That is, it represents an operation for deleting the proxy 13 (3) from the session.
When the mobile terminal 30 (2) receives the proxy deletion request from the agent software, the mobile terminal 30 (2) notifies the session management unit SM (2) of it.
In this case, the session management unit SM (2) transmits a deletion request to the proxies 13 (1) and 13 (2) (S51, S52).
[0130]
When the proxy 13 (2) receives the deletion request, the proxy 13 (2) establishes a connection with the proxy 13 (1) using the session identifier. In addition, all the communication performed with the proxy 13 (3) is switched to the communication connection with the proxy 13 (1).
In addition, when the proxy 13 (1) receives the deletion request and establishes a communication connection from the proxy 13 (2), the proxy 13 (1) is performed through a communication connection with the proxy 13 (3). All the communication that has been made is switched to the communication connection with the proxy 13 (2).
[0131]
Next, the case where the proxy 13 (4), 13 (5) on the session is replaced as in the case of FIG. 37 will be described with reference to FIG.
In this example, in FIG. 37, the communication connection is established in the order of the client application 12 (2), the proxy 13 (2), the proxy 13 (4), the proxy 13 (1), and the server application 11 (1). From the state in which a session is established between (2) and the server application 11 (1), the client application 12 (2), the proxy 13 (2), the proxy 13 (5), the proxy 13 (1), and the server application It is assumed that the communication connection is established in the order of 11 (1) and the session path between the client application 12 (2) and the server application 11 (1) is changed.
[0132]
That is, it represents an operation for replacing the proxy 13 (4) on the session with the proxy 13 (5).
When the mobile terminal 30 (2) receives the proxy replacement request from the agent software, the mobile terminal 30 (2) notifies the session management unit SM (2) of it.
[0133]
In this case, the session management unit SM (2) transmits a switching request including the name of the proxy 13 (5) and the connection point as parameters to the proxies 13 (1) and 13 (2) having the communication connection. (S74, S75).
The proxy 13 (1), 13 (2) that has received the switching request establishes a communication connection corresponding to the session identifier with respect to the connection point of the proxy 13 (5) based on the received parameter.
[0134]
After that, the proxy 13 (1) switches all the communication performed in the communication connection with the proxy 13 (4) to the communication connection with the proxy 13 (5).
Similarly, the proxy 13 (2) switches all communication performed in the communication connection with the proxy 13 (4) to the communication connection with the proxy 13 (5).
[0135]
After the two communication connections are established, the proxy 13 (5) added to the session associates the two communication connections based on the session identifier received at the time of establishing the connection, and makes the state capable of storing and transferring.
(Example)
Next, specific examples including the features of the present invention will be described with reference to FIGS.
[0136]
FIG. 1 is a flowchart showing the operation of a proxy when a master and a shadow agent exist. FIG. 2 is a flowchart showing the operation of the master and shadow agent. FIG. 3 is a schematic diagram showing a configuration example of a service table used by the master and shadow agents. FIG. 4 is a sequence diagram illustrating an example of a shadow agent generation sequence. FIG. 5 is a sequence diagram showing an example of a shadow agent generation sequence.
[0137]
FIG. 6 is a sequence diagram showing an example of a message transfer sequence. FIG. 7 is a flowchart showing the proxy operation (1) for multicast. FIG. 8 is a flowchart showing the proxy operation (2) for multicast. FIG. 9 is a flowchart showing the proxy operation (1) for routing. FIG. 10 is a flowchart showing the proxy operation (2) for routing. FIG. 11 is a flowchart showing the proxy operation (3) for routing.
[0138]
FIG. 12 is a block diagram illustrating a configuration example of a network. FIG. 13 is a schematic diagram showing a configuration example (1) of a table in each node. FIG. 14 is a schematic diagram showing a configuration example (2) of a table in each node. FIG. 15 is a sequence diagram showing a basic communication sequence for providing a service. FIG. 16 is a block diagram showing an example of dynamic change of services.
[0139]
FIG. 17 is a sequence diagram showing a communication sequence when a master and a shadow agent exist. FIG. 18 is a sequence diagram showing a multicast communication sequence. FIG. 19 is a block diagram illustrating a configuration example of a communication path using a branch table. FIG. 20 is a flowchart showing the basic operation (1) of the proxy. FIG. 21 is a flowchart showing the basic operation (2) of the proxy. FIG. 22 is a flowchart showing the basic operation (3) of the proxy.
[0140]
FIG. 23 is a block diagram showing a functional configuration of the proxy. FIG. 24 is a block diagram showing connection management. FIG. 25 is a schematic diagram showing changes in connection management. FIG. 26 is a schematic diagram showing the configuration of each table on the node. FIG. 27 is a schematic diagram showing the configuration of an inter-proxy frame. FIG. 28 is a schematic diagram showing the configuration of the control command. FIG. 29 is a schematic diagram showing a configuration of an inter-proxy message.
[0141]
The network assumed here is a network that dynamically changes as described above, and there is a possibility that the node (communication device) that changes the network address or communicates while the service is being provided. .
Each term used in the following description is defined as follows.
The session ID is an identification name for uniquely identifying a session by a node, and is composed of a set of a node ID and an in-node number. Also, the session ID is different if the node is different even in the same session.
[0142]
The service address is a name that uniquely identifies the proxy and application.
The node ID is a name that uniquely identifies the node.
The network address is an address (IP address when TCP / IP is assumed) necessary for forming a communication connection between nodes.
A session represents communication configured between applications.
[0143]
A connection represents communication between proxies or between an application and a proxy.
The inter-proxy frame represents a data frame transmitted / received through a connection between proxies with a service.
The inter-proxy message represents a message exchanged between proxies for updating or searching the contents of the table.
[0144]
The basic configuration and operation of the communication system assumed here are as follows.
(1) A virtual network is configured on a physical network.
(2) Communication is performed between applications.
(3) The components are an application and a proxy. The application is configured as software on the node.
[0145]
(4) A session is configured by communication between applications, and communication between applications is relayed by a plurality of proxies.
(5) Applications and proxies constituting a session can be exchanged with other applications or proxies at any time, and the configuration can be freely changed. In addition, the session is maintained at that time.
[0146]
(6) Communication between proxies is managed by transmission / reception based on the sequence number, and when the connection (connection) between proxies has changed (in the case of CASE1, CASE2, and CASE3 in FIGS. 24 and 25), the communication has been received by that time. The requested sequence number is confirmed, and the sequence number to be sent next is requested from the proxy of the connection destination so that the sequence number does not become discontinuous, and is retransmitted. Thereby, the service is continued without data loss.
[0147]
In this embodiment, it is assumed that three types of movements CASE1, CASE2, and CASE3 shown in FIGS. 24 and 25 occur on the network.
As a specific network, a configuration as shown in FIG. 12 is assumed. In the example of FIG. 12, seven nodes are connected to each other. Different node IDs are assigned to the respective nodes.
[0148]
The applications and proxies provided in each node are as follows.
Node ID: 1001 Node: Application PA, Proxy PF
Node ID: 1002 Node: Application PC, Proxy PG
Node ID: 1003 Node: Application PB, Proxy PH
Node ID: 1004 Node: Application PD, Proxy PI
Node ID: 1005 Node: Application PL, Proxy PJ
Node ID: 1006 Node: Application PE
Node ID: 1007 Node: Proxy PK
Each node has various tables as shown in FIG. The outline of the contents of a typical table is as follows.
[0149]
1. Session table SST: Correspondence between session ID and service address.
2. Proxy routing table PRT: Correspondence between service address and next hop service address, and correspondence between master agent and shadow shadow agent.
3. Resource table RST: Correspondence between node ID and service address.
[0150]
4). Location table LCT: Correspondence between node ID and network address.
5. Branch table JCT: Correspondence between reception service address and transmission service address.
Each frame transferred between proxies is configured as shown in FIG. That is, a command, a transmission source node ID, a transmission source session ID, a transmission destination node ID, a transmission destination session ID, a transmission sequence number, a reception sequence number, a data length, and data are included in each frame.
[0151]
Further, there are a switching request and a disconnection request shown in FIG. 28 as control commands for controlling communication. These control commands are given to the proxy.
A message transferred between proxies is configured as shown in FIG. That is, the command, message length, hop count, search method, and parameters are included in the message.
[0152]
As shown in FIG. 23, each proxy includes a proxy control unit 501, a session management unit 502, a cache management unit 503, a connection management unit 504, a session table SST, a proxy routing table PRT, a resource table RST, A location table LCT and a branch table JCT are provided.
[0153]
The cache management unit 503 in FIG. 23 constructs a cache for each connection connection. Each cache stores unsent data until transmission is completed or a cache release command is received. Each cache exists and is managed for each connection connection connected to the proxy. In particular, in multicast communication, there may be a plurality of caches for each connection, and received data is distributed and transmitted to each cache according to the description of the branch table JCT. Since these caches operate independently, if there is a communication connection that cannot be transmitted, the cache assigned to that communication connection maintains the accumulated state, and the data stored in the cache of other communication connections that can be transmitted Is read and transmitted.
[0154]
Specific examples of contents of main tables provided in each node shown in the network of FIG. 12 are shown in FIGS. 13 and 14.
In order to realize the functions corresponding to each of the basic technologies described above, the proxy provided in each node executes the basic operations shown in FIGS. The basic operation of the proxy shown in FIGS. 20 to 22 will be described below.
[0155]
When the proxy receives the connection frame (see FIG. 27), the process proceeds from step S111 to step S112 in FIG. 20, and when the proxy receives a non-serviceable frame, the process proceeds from step S116 to S117.
When the session ID (SID) of the destination of the received connection frame is null (NULL), it is the first connection, so the process proceeds from step S112 to S113, and a unique session ID is generated on the node to which it belongs. In the next step S114, the session ID and the destination service address (SA) are added to the session table SST. In the next step S115, “connection processing” is executed. The contents of this “connection process” are shown in FIG.
[0156]
On the other hand, if the session ID (SID) of the transmission destination of the received connection frame is not null, the process proceeds from step S112 to S119.
If a service disable frame is received, the connection with the proxy received in step S117 is disconnected. Further, the proxy routing table PRT is searched using the service address in the service disable frame received in step S118 as a key, and an unusable flag is set in the description portion of the corresponding service address. That is, it grasps that the proxy or application of the service address is not available.
[0157]
In step S119, the current destination service address (end, end SA) of the session table SST is searched using the destination session ID as a key.
In step S120, the session current destination SA and the connection frame destination SA are compared. If they are equal, the connection destination is not changed, and the process advances from step S120 to step S115. If they are different, the connection destination is changed, so the destination SA in the session table SST is changed to a new destination SA, and then step S115. Proceed to
[0158]
The “connection process” shown in FIG. 21 will be described.
In step S131, the proxy routing table PRT is searched using the destination SA as a key, and a plurality of SAs of the next hop proxy (or application) are acquired. For example, assuming the operation of the proxy PF when the application PA shown in the network of FIG. 12 tries to connect to another application PE, the next hop of the proxy PF becomes the proxy PI. Therefore, the SA of the proxy PI is acquired in step S131.
[0159]
In step S131, it is determined whether or not a proxy for which a connection has been established exists in the acquired SA. If there is a proxy for which a connection has been established, the process proceeds from step S131 to S132, and if not, the process proceeds to step S133.
In step S132, the relay transfer of the data frame is started between the proxy that has sent the connection frame and the next proxy.
[0160]
In step S133, it is identified whether the SA acquired in step S131 includes the local proxy SA and there is already a connection to the destination SA application. If yes, the process proceeds from step S133 to S134, and if no, the process proceeds to S135.
[0161]
In step S134, relay transfer of the data frame is started between the proxy that has sent the connection frame and the next destination application.
In step S135, it is identified whether or not a connection different from the next hop already exists. If it exists, the connection is disconnected in the next step S136.
[0162]
If the connection is not completed, the processing after step S137 in FIG. 21 is repeatedly executed for all the next hops SA.
In step S139, one unprocessed next hop SA is selected. In step S140, the selected SA is compared with the SA of the proxy of the own node. If they match, the process proceeds from step S140 to S142, and if they do not match, the process proceeds to S141.
[0163]
In step S141, “proxy connection processing” is executed, and in step S142, “application connection processing” is executed. The contents of these processes are shown in FIG.
Further, if the connection is not yet completed even after all the next hop SAs have been connected, the process proceeds from step S137 to S138, and a service-disabled frame is notified toward the connection in the direction opposite to the frame that has arrived.
[0164]
Next, a description will be given with reference to FIG.
In the “proxy connection process”, in the first step S151, the resource table RST is searched using the SA of the next hop as a key, and the node ID of the next hop destination is acquired.
In the next step S152, the location table LCT is searched using the node ID with the next-hop proxy as a key, and the IP address of the connection destination is acquired. In step S153, the IP address of the own node is acquired from the location table LCT.
[0165]
In step S154, a connection frame is transmitted and connected to the proxy of the next hop SA using the obtained IP address.
In the “application connection process”, in the first step S156, the resource table RST is searched using the destination SA as a key to obtain the node ID.
In the next step S157, the location table LCT is searched using the node ID as a key, and the IP address of the connection destination is acquired. In step S158, the IP address of the own node is acquired from the location table LCT.
[0166]
In step S159, the obtained IP address is used to connect to the destination SA.
Next, the basic communication sequence shown in FIG. 15 will be described. PA, PF, PI, PD, PK, PH, and PB shown in FIG. 15 represent applications or proxies of the respective nodes shown in FIG. These applications and proxies are specified by service addresses.
[0167]
In the example of FIG. 15, the application PA first connects to the proxy PF, and the proxy PF transmits the connection frame to the proxy PI of the next hop. As a result, the proxy PI connects to the application PD.
Accordingly, a session is formed between the application PA and the application PD, and service provision is started using the session. In this case, the proxy PF, PI on the communication path relays communication.
[0168]
For example, when a node moves or a node leaves the network, a change in the network address of the node or a change in availability of the communication device occurs. Since this corresponds to CASE3 shown in FIGS. 24 and 25, the correspondence between the SA or node ID of the proxy and the network address is changed as shown in FIG. 25, and the link constituting the connection is changed.
[0169]
Accordingly, in response to the CASE3 switching request shown in FIG. 15, the communication path is changed between the proxy PF and PI, but even after the change, the proxy PF and PI are relayed between the application PA and the application PD. Service provision will continue.
On the other hand, when the node used by the user is changed, the application used is changed. Since this corresponds to CASE1 shown in FIGS. 24 and 25, the correspondence between the session ID and the SA of the end-to-end application (AP) changes as shown in FIG.
[0170]
In FIG. 15, in response to the switching request (CASE 1) for the proxy PF, the proxy PF transmits a connection frame to the proxy PK, and the proxy PK that has received the connection frame transfers the connection frame to the proxy PH.
Accordingly, the proxy PH connects to the application PB, a session is formed between the application PA and the application PB, and service provision is continued using the session.
[0171]
Next, a case will be described in which a copy of an application program (server) that is dynamically generated according to a change in the network form for seamless service provision is arranged on the network.
Here, the module of the application program is called an application agent. When a copy is created from one application agent, the application agent newly generated by the copy is called a shadow agent, and the copy source application agent is called a master agent.
[0172]
A shadow agent copied from one master agent is configured to have a part or all of the service providing function of the master agent. Also, one master agent and all shadow agents replicated therefrom are managed as one group. This group is called a service group.
[0173]
Further, in this embodiment, the master agent and shadow agent are handled as follows.
(1) The shadow agent is configured to be able to perform all or part of the service of the master agent.
(2) If the master agent cannot be used due to network conditions or resource conflicts, the shadow agent is used to provide the same service as the master agent. In addition, the switching between the master agent and the shadow agent is performed dynamically even during communication.
[0174]
(3) Communication between the application agent, the shadow agent, and the master agent is also performed by proxy relay. When a node change occurs, each agent is switched through a proxy to continuously provide a service.
(4) If the shadow agent cannot sufficiently achieve the service, the shadow agent connects to another shadow agent or master agent and relays at the own agent. This makes it appear as if the service is being performed by the own agent. Communication between a shadow agent and another shadow agent or master agent may be relayed by a proxy, and the service is continuously provided even when a network address change or a node change occurs. In order to realize such functions, for shadow agents that can perform only a part of services, to identify services that can be provided only by connecting to other agents belonging to the same service group as the services that can be provided Holds a service table AST.
[0175]
(5) The correspondence between the master agent and the shadow agent is held in the proxy routing table PRT of each node.
(6) When a shadow agent is created, the node ID, network address, and agent of the partner agent are added to the location table LCT, proxy routing table PRT, and resource table RST of the node where the master agent or shadow agent or both agents exist. Describe the service address and shadow / master correspondence.
[0176]
(7) When the network address of the node where the master agent exists is changed, after obtaining the shadow agent existing in the same service group from the proxy routing table PRT, change the network address to the node to which the shadow agent belongs. Notice. The notified node changes the location table LCT. Thereby, even when the position of the master agent changes, it can be grasped.
[0177]
(8) When the network address of the node where the shadow agent exists is changed, after obtaining the master agent existing in the same service group from the proxy routing table PRT, change the network address to the node to which the master agent belongs. Notice. The notified node changes the location table. This makes it possible to grasp even when the position of the shadow agent changes.
[0178]
As shown in FIG. 26, the proxy routing table PRT describes the correspondence between the master service address (master agent SA) and the shadow service address (shadow agent SA).
For example, “PE: PD (S)” and “PE: PB (S)” described in the proxy routing table PRT of the node ID: 1001 shown in FIG. 13 are the applications PD and PB shown in FIG. 12, respectively. Represents a shadow agent copied from the same application PE that is a master agent.
[0179]
Therefore, by searching the proxy routing table PRT, the relationship between the master agent and the shadow agent belonging to the same service group can be checked.
[0180]
On the other hand, for example, information as shown in FIG. 3 is described in the service table AST. In this example, master agents that belong to the same service group
http://hogehoge.com/undoukai.mpg
http://hogehoge.com/ensoku.mpg
http://hogehoge.com/yuuenchi.mpg
This is a case where the shadow agent referring to the service table AST can provide only two video services indicated by “yes”. This shadow agent is marked "no"
http://hogehoge.com/ensoku.mpg
However, the video service can be provided by using another shadow agent or master agent belonging to the same service group.
[0181]
When a master agent and a shadow agent exist on the network, the proxy performs the operation shown in FIG. The basic operation of the proxy is the same as that in FIGS. 20 to 22 described above, but step S131 in FIG. 21 is changed to step S131B in FIG.
In step S131B of FIG. 1, when the master agent or shadow agent of the destination SA exists, the proxy routing table PRT is searched using the SA of the corresponding agent as a key to obtain the next hop service. However, the destination is the SA of the agent used as a key. Note that the information on which the unusable flag is set is not referred to.
[0182]
The other operations of the proxy are the same as those in FIGS.
On the other hand, the master agent and the shadow agent execute the processing shown in FIG. The process of FIG. 2 will be described.
[0183]
When the own agent (master agent or shadow agent) receives data from the user in step S151, the own agent has a function of referring to the service table AST in the next step S152 and providing a service corresponding to the received data. Check whether there is any.
If the self-agent has a service providing function, the process proceeds from step S152 to S153, and the self-agent performs a process for providing the service.
[0184]
If the self-agent does not have a function for providing a service, the process proceeds from step S152 to S154. In step S154, the proxy routing table PRT is referred to search for other master agents or shadow agents belonging to the same service group.
If the search is successful, the process proceeds from step S154 to S155 to connect to another agent found. If no corresponding agent is found, the process proceeds to step S156 to notify service failure.
[0185]
In step S157, the data frame received from the user is transferred to the other agent connected in step S155.
If a function for providing a service corresponding to another agent connected in step S155 is provided, a service for the user is provided by the processing of the agent, and the process advances from step S158 to S159.
[0186]
If the function for providing the service corresponding to the other agent connected in step S155 is not provided, the service is not provided, so the process proceeds from step S158 to S154, and another agent is searched again from the proxy routing table PRT.
In step S159, data frame relay transmission is performed. That is, a data frame is relayed between a proxy that relays user data and another agent connected in step S155.
[0187]
As a result, the local agent itself only relays data frames, but other connected agents provide the service, so that the local agent provides the service from the perspective of the user receiving the service. appear.
When a new shadow agent is generated, various sequences as shown in FIGS. 4 and 5 can be executed.
[0188]
That is, immediately after generating a copy, the master agent of the copy source and / or the copied shadow agent describe the correspondence between the master agent and the shadow agent in the proxy routing table PRT.
Accordingly, the relationship between the generated shadow agent and the master agent can be grasped by referring to the proxy routing table PRT, so that the shadow agent can be used.
[0189]
Further, the replication source master agent and / or the replicated shadow agent describe the network address (NA), node ID, and agent service address (SA) of the partner node in the location table LCT and resource table RST of the local node.
As a result, even if the generated shadow agent is arranged on a different node from the master agent, the shadow agent can be searched and used.
[0190]
On the other hand, when the network address (NA) changes in the node where the master agent or shadow agent is operating, a message transfer sequence as shown in FIG. 6 is executed.
That is, when the network address changes in the node where the master agent is operating, the shadow agent is searched in step S471, and the NA update message is transmitted to all shadow agents in the same service group. Each shadow agent that has received the message changes the contents of the location table LCT according to the message.
[0191]
If the network address changes in the node where the shadow agent is operating, the master agent is searched in step S481, and an NA update message is transmitted to the master agent of the same service group. The master agent that has received the message changes the contents of the location table LCT according to the message.
[0192]
By using the master agent and the shadow agent, the configuration of the communication path can be changed, for example, as shown in FIG.
When a master agent and a shadow agent exist on the network, for example, a communication sequence as shown in FIG. 17 is executed.
[0193]
In the example of FIG. 17, when the application PD becomes unserviceable from the state in which service provision communication is performed between the application PA and the application (master agent or shadow agent) PD in step S701, the application PD becomes a proxy PI. The proxy PI sends a connection frame to the proxy PJ, and the proxy PJ connects to the application (master agent or shadow agent) PL. Therefore, the application PD and the PL are connected, and the service is provided by the application PL.
[0194]
Also, if the application PL becomes unable to provide the service from the state in which service provision communication is performed between the application PA and the application PL in step S702, the application PD connects to the proxy PI, and the proxy PI transmits the connection frame to the proxy PJ. Since the proxy PJ connects to the application (master agent or shadow agent) PE, the application PD and PE are connected, and the service is provided by the application PE.
[0195]
In addition, it is possible to recognize a state in which the service cannot be provided by detecting the following conditions. For example, when a service provider is accessed but no response is received, if a notification from the service provider (including an explicit message or a TCP layer connection termination message) is detected, the requested service can be serviced in the service table. There are cases where it was not.
[0196]
In step S703, the application PD can leave the node while continuing to provide the service.
Further, when a network change occurs in which the proxy PI is disconnected while the service is being provided between the applications PA and PE via the proxy PF, PI, and PJ (S705), the proxy PF becomes the proxy PJ. A switch notification is sent to. By this switching notification, the proxy PI leaves the communication path between the proxy PF and the proxy PJ, and the service provision between the applications PA and PE is continued as it is.
[0197]
Further, when a switching request is generated in the proxy PF while providing the service (S706), the connection frame transmitted by the proxy PF is transferred to the proxy PK, and the connection frame transmitted by the proxy PK is transferred to the proxy PH. The proxy PH connects with the application PB. Therefore, a communication path is formed between the application PA and the application PB via the proxies PF, PK, and PH, and the service moves to communication between the application PA and the application PB.
[0198]
That is, the session (one communication service between applications) formed between the application PA and the application PE is switched to the session formed between the application PA and the application PB. In this case, the proxy PF that performs switching notifies the switching destination application PB of the state where the communication service performed by the application PE is interrupted (the number of transferred bytes if data transfer is performed). Thereby, the application PB can take over the communication service of the suspended application PE.
[0199]
Further, the proxy PF that performs switching is the proxy PJ connected adjacent to the proxy PF in the chain of connections connected to the switching source application PE (the application PE if there is no other proxy on the way). The proxy PK connected adjacent to the proxy PF in the chain of connections leading to the switching destination application PB (if there is no other proxy on the way, the application PB ) To the communication connection formed between. Further, the switched communication connection is linked to a communication connection directly connected to the application PA (a proxy adjacent to the PF when another proxy is present in the middle), and communication is relayed between the communication connections. This allows service to continue.
[0200]
Further, when the link connecting two proxies (for example, PK and PH) existing on the route used for providing the communication service is switched from a wireless LAN to a wired LAN, for example, The communication service can be continued by reconstructing the communication connection between the proxies PK and PH (updating the contents of each table or changing the network address or the like).
[0201]
Next, a case where the proxy controls multicast data distribution will be described.
A node having a proxy is provided with a branch table JCT as shown in FIG. 13, FIG. 14, FIG. 23, and FIG. In the branch table JCT, as shown in FIG. 26, the correspondence between the input service address (SA) and the output service address is described for each session ID.
[0202]
That is, the proxy controls the input / output of data so as to transfer the data frame input from the input side service address to the proxy or application of the output side service address.
In the branch table JCT, a plurality of input side service addresses and output side service addresses can be described.
[0203]
A specific example of controlling the multicast communication path using the branch table JCT will be described with reference to FIG. In each branch table JCT shown in FIG. 19, the left side and the right side of the arrow represent the input side service address and the output side service address, respectively.
The proxy PG in FIG. 19A outputs the data frame input from the proxy PD to the proxy PE according to the branch table JCT, outputs the data frame input from the proxy PD to the proxy PF, and is input from the proxy PE. The data frame is output to the proxy PD, and the data frame input from the proxy PF is output to the proxy PD.
[0204]
For this reason, in the example of FIG. 19A, the multicast data frame sent from the application PA is input to the proxy PG via the proxy PD, branched into two systems at the proxy PG portion, and respectively sent to the proxy PE and PF. Sent out. Thereby, the data frame transmitted from the application PA is delivered to the two applications PB and PC, respectively.
[0205]
On the other hand, the data frame transmitted from the application PB reaches only the application PA, and the data frame transmitted from the application PC also reaches only the application PA.
Further, the proxy PG in FIG. 19B outputs the data frame input from the proxy PD to the proxy PE according to the branch table JCT, outputs the data frame input from the proxy PD to the proxy PF, and inputs from the proxy PE. The output data frame is output to the proxy PD, the data frame input from the proxy PF is output to the proxy PD, the data frame input from the proxy PE is output to the proxy PF, and the data frame input from the proxy PF is output. Output to proxy PE.
[0206]
For this reason, in the example of FIG. 19B, the multicast data frame sent from the application PA is input to the proxy PG via the proxy PD, branched into two systems at the proxy PG portion, and sent to the proxy PE and PF, respectively. Sent out.
The multicast data frame sent from the application PB is input to the proxy PG via the proxy PE, branched into two systems at the proxy PG portion, and sent to the proxy PD and PF, respectively.
[0207]
A multicast data frame sent from the application PC is input to the proxy PG via the proxy PF, branched into two systems at the proxy PG, and sent to the proxy PD and PE, respectively.
Therefore, the multicast data distribution destination can be controlled simply by rewriting the contents of the branch table JCT of each node where the proxy is arranged.
[0208]
For example, when the communication link between the proxy PG and PD is interrupted for a certain period of time, when the proxy PG relays based on the branch table, the transmission data to the proxy PD is stored in an internal cache, Only the communication between the application PB and the application PC is relayed. When the link between the proxy PG and PD is reestablished and the communication connection is reestablished, the proxy PG reads out and transmits data stored in the internal cache, and the three applications PA, PB, and PC Multicast communication service during
[0209]
If there is another proxy Px that can replace the proxy PD that has been disconnected, the proxy PG changes the communication connection with the proxy PD to a communication connection to the proxy Px, and the proxy Px passes through the proxy Px. A communication path with the application PA is secured. In this case, the proxy PG establishes a communication connection with the proxy Px, a communication connection with the application PB or a proxy PE directly connected to the proxy PG in a chain of subsequent communication connections, and an application PC or subsequent communication. In the chain of connections, the communication is connected to the proxy PF directly connected to the proxy PG, and communication is relayed based on the branch table.
[0210]
By forming a communication path as shown in FIG. 19A, it is possible to provide a communication service using the application PA as a broadcast server. Further, by forming a communication path as shown in FIG. 19B, it becomes possible to provide a service such as chat communication.
The operation of the proxy when controlling the multicast using the branch table JCT is as shown in FIGS. First, operations unique to multicast will be described with reference to FIG.
[0211]
When a multicast connection frame is received in step S201, the process advances to step S202 to identify whether or not a plurality of destination SAs are included. When a multicast connection frame including a plurality of destination SAs is received, after performing a predetermined process, the process proceeds to step S206 and subsequent steps. In step S206 and subsequent steps, connection processing is executed for each of a plurality of destination SAs specified in the multicast connection frame.
[0212]
The contents of this connection process are shown in FIG. The process of FIG. 8 will be described.
In step S221, the proxy routing table PRT is searched using the destination SA as a key, and a plurality of next-hop SAs are acquired.
In step S222, it is identified whether or not a proxy for which a connection has been established exists in the acquired SA.
[0213]
If it exists, the previous hop SA (input side service address) and the next hop SA (output side service address) are added to the branch table JCT in step S224.
[0214]
In the next step S225, the relay transfer of the data frame is started between the proxy that has sent the connection frame and the next proxy. In step S226, a multicast connection frame including the currently processed destination SA is transmitted.
On the other hand, in step S223, it is identified whether or not the SA obtained in step S221 includes the local proxy SA and the connection to the destination SA application. If yes, the process proceeds to step S227, and the previous hop SA (input side service address) and the next hop SA (output side service address) are added to the branch table JCT.
[0215]
In the next step S228, relay transfer of the data frame is started between the proxy that has sent the connection frame and the next destination application.
Among the SAs obtained in step S221, for the destination SA for which no connection has been established, “connection to proxy” or “connection to application” is executed in the processing after step S229 to establish the connection.
[0216]
If the connection is successful, the previous hop SA (input service address) and the next hop SA (output service address) are added to the branch table JCT in step S234.
When processing multicast, for example, a communication sequence shown in FIG. 18 is executed. That is, when another application PA is added to the communication between the application PC and the application PD, the application PA connects to the proxy PF during the service, and the proxy PF sends a connection frame to the proxy PI. Thereby, the branch table JCT on the node of the proxy PI is changed, and the data is also distributed to the application PA by the branch process of the proxy PI.
[0217]
When the application PD connects to the two applications PA and PC, the application PD connects to the proxy PI, the proxy PI sends a connection frame to each of the two proxies PF and PG, and the proxy PF connects to the application PA. The proxy PG connects to the application PC. Thereby, a multicast data distribution service can be performed among the three applications PD, PA, and PC.
[0218]
Next, specific control related to routing will be described. In this mode, each node is provided with a proxy routing table PRT, a resource table RST, and a location table LCT. However, in order to cope with a change in the network, information that cannot be acquired from the own node table is provided in other nodes. Search using. Also, when the network address of the own node changes, the update of the table accompanying it is notified to other nodes.
[0219]
The proxy performs the operations shown in FIG. 9, FIG. 10, and FIG. The specific operation is as follows.
When searching a table of another node, the search is executed between nodes having node IDs described in the resource table RST and the location table LCT.
[0220]
When searching the table of another node, the proxy issues a search message to the node described in the resource table RST or the location table LCT (S305).
When a search message is issued or when a search message is received, but does not have a corresponding search result, the processing after step S304 is performed.
[0221]
If it has a result corresponding to the search message, the result of the search is notified to the node that issued the search message in step S306.
When a plurality of the same search messages are received, only the first search message is processed, and the rest are ignored.
[0222]
There are several types of actual search and information notification methods as shown below. Since the forwarded message includes information for designating the search or notification method, the proxy that has received the message forwards the message according to the method designated in the message in step S305 or S316. .
(Method (1)) Search and notification by limiting the number of hops: A node that issues a message determines the maximum number of hops. The node that has received the message decrements the hop count by one, and if the hop count is not zero, transmits a further message to the node described in the resource table RST or the location table LCT.
[0223]
(Method (2)) Search and notification by hop match limit and sending node limit: In addition to method (1), the number of nodes that transmit the same message is limited to a certain number in each node.
(Method (3)) Search and notification by hop number limit and searched node information: In addition to method (1), the history of the node through which the message has passed is included in the message and transmitted. The node that has received the message does not transfer the message to the node that has already passed the message.
[0224]
(Method (4)) Search and notification using hop number limit and similarity or importance information between nodes: In addition to method (1), items related to importance or similarity are added to the resource table RST or location table LCT. In addition, messages are sent only to nodes with high importance and similarity. The importance in this case increases or decreases depending on the communication frequency with the corresponding node. The rate of change depends on the rate of change. The similarity degree indicates how much nodes described in the inter-node resource table RST or the location table LCT are duplicated.
[0225]
On the other hand, the storage capacity of each table in the communication device constituting each node is limited. In addition, if a large-capacity storage device is provided, the cost of the communication device increases. Therefore, it is necessary to limit the capacity of information held in each table while taking care not to reduce the routing efficiency.
[0226]
Therefore, in this embodiment, items of importance and increase / decrease rate are added to the resource table RST or the location table LCT. This importance level increases or decreases depending on the communication frequency with the corresponding node (S325, S327). The rate of change depends on the rate of change.
If the capacity of the table exceeds the capacity determined in advance by each node, in step S322, the information of the less important node is preferentially deleted, and management is performed so that the table capacity falls within the specified range.
[0227]
In this form, the distance between nodes in routing is different from the physical distance, and measures such as user frequency and ease of use, in which specific nodes often communicate with other specific nodes, are very important. become.
By the way, many companies and institutions currently have a firewall that blocks communication at the network layer (IP level). However, a communication network composed of the proxy of the present invention can communicate beyond this firewall. Is possible.
[0228]
A specific method for enabling communication beyond the firewall is as follows.
(1) Install a proxy with a firewall.
(2) Communication between proxies is realized by passing through an HTTP proxy or the like (which is completely different from the proxy of the present invention) using a transport protocol such as HTTP that is set to be able to exceed the firewall. To do.
[0229]
【The invention's effect】
According to the present invention, it is possible to recognize a proxy to be automatically reconnected without being aware of the user even when the network configuration is changed by holding the proxy routing table.
Further, by deleting information with low importance, even a node having a small storage capacity such as a small node can perform communication on the network. In addition, information can be efficiently managed on the network by suppressing the number of nodes that transmit search requests.
[0230]
At present, many companies and institutions have a firewall that blocks communication at the network layer (IP level). However, a communication network composed of proxies like the present invention operates beyond the firewall. Is possible. Even if this firewall allows proxy network communication, communication methods and procedures are limited compared to network layer communication, improving user convenience while ensuring a certain level of security. Can be made.
[Brief description of the drawings]
FIG. 1 is a flowchart showing an operation of a proxy when a master and a shadow agent exist.
FIG. 2 is a flowchart showing operations of a master and a shadow agent.
FIG. 3 is a schematic diagram illustrating a configuration example of a service table used by a master and a shadow agent.
FIG. 4 is a sequence diagram illustrating an example of a shadow agent generation sequence.
FIG. 5 is a sequence diagram illustrating an example of a shadow agent generation sequence.
FIG. 6 is a sequence diagram illustrating an example of a message transfer sequence.
FIG. 7 is a flowchart showing proxy operation (1) related to multicast;
FIG. 8 is a flowchart showing a proxy operation (2) related to multicast;
FIG. 9 is a flowchart showing a proxy operation (1) related to routing;
FIG. 10 is a flowchart showing a proxy operation (2) related to routing.
FIG. 11 is a flowchart showing a proxy operation (3) related to routing;
FIG. 12 is a block diagram illustrating a configuration example of a network.
FIG. 13 is a schematic diagram showing a configuration example (1) of a table in each node.
FIG. 14 is a schematic diagram showing a configuration example (2) of a table in each node.
FIG. 15 is a sequence diagram showing a basic communication sequence for providing a service.
FIG. 16 is a block diagram illustrating a dynamic change example of a service.
FIG. 17 is a sequence diagram showing a communication sequence when a master and a shadow agent exist.
FIG. 18 is a sequence diagram showing a multicast communication sequence.
FIG. 19 is a block diagram illustrating a configuration example of a communication path using a branch table.
FIG. 20 is a flowchart showing a basic operation (1) of a proxy.
FIG. 21 is a flowchart showing basic operation (2) of the proxy;
FIG. 22 is a flowchart showing basic operation (3) of the proxy;
FIG. 23 is a block diagram illustrating a functional configuration of a proxy.
FIG. 24 is a block diagram showing connection management.
FIG. 25 is a schematic diagram showing changes in connection management;
FIG. 26 is a schematic diagram showing the configuration of each table on a node.
FIG. 27 is a schematic diagram illustrating a configuration of an inter-proxy frame.
FIG. 28 is a schematic diagram showing a configuration of a control command.
FIG. 29 is a schematic diagram showing a configuration of an inter-proxy message.
FIG. 30 is a sequence diagram illustrating a control sequence when switching between a proxy and an application.
FIG. 31 is a block diagram illustrating an example of a communication path when switching between a proxy and an application.
FIG. 32 is a sequence diagram illustrating a control sequence when a proxy is added to a session.
FIG. 33 is a block diagram illustrating an example of a communication path when a proxy is added to a session.
FIG. 34 is a sequence diagram showing a control sequence for deleting a proxy from a session.
FIG. 35 is a block diagram illustrating an example of a communication path when a proxy is deleted from a session.
FIG. 36 is a sequence diagram showing a control sequence when a proxy on a session is replaced.
FIG. 37 is a block diagram illustrating an example of a communication path when a proxy on a session is replaced.
FIG. 38 is a block diagram illustrating a configuration example of a communication system.
FIG. 39 is a block diagram illustrating a configuration example of a mobile terminal.
FIG. 40 is a schematic diagram illustrating an example of information held by a service management unit SR.
FIG. 41 is a schematic diagram illustrating an example of information held by the position management unit LR.
FIG. 42 is a schematic diagram illustrating an example of information held by the session management unit SM.
FIG. 43 is a block diagram illustrating a configuration example of a communication system.
FIG. 44 is a block diagram illustrating a configuration example of a network.
FIG. 45 is a block diagram showing a movement model of nodes and services.
FIG. 46 is a sequence diagram showing a location information update procedure when the terminal is moving.
47 is a graph showing the number of issued position information update instructions. FIG.
FIG. 48 is a graph showing a location search success rate.
FIG. 49 is a graph showing a location search success rate.
FIG. 50 is a block diagram illustrating a configuration example of a network.
FIG. 51 is a sequence diagram showing a service movement example (1).
FIG. 52 is a sequence diagram showing a service movement example (2).
FIG. 53 is a sequence diagram showing a simplified control sequence when a proxy is added to a session.
FIG. 54 is a sequence diagram showing a simplified control sequence when deleting a proxy from a session.
FIG. 55 is a sequence diagram showing a simplified control sequence when replacing a proxy on a session.
[Explanation of symbols]
1,3 application
2 proxy
4 nodes
5 Browser
6 Proxy
7 Web server
8 nodes
9 Database
10 software
11 Server application
12 Client application
13 Proxy
14 Agent
15 Link switching unit
16, 17, 18 links
21 Ethernet (registered trademark) communication adapter
22 Wireless LAN adapter
23 PHS communication adapter
30 Mobile terminal
40 network
51, 52, 53 Subnetwork
54 Wide area network
55, 59, 60, 61, 66, 67 Mobile terminal
56,62 fixed terminal
57, 58, 64, 65 base station
63 TAP
101,102 application
103 sessions
104, 105, 106 proxy
107, 108, 109, 110 Communication connection
LR Location Management Department
SM Session Management Department
SR Service Management Department
501 Proxy control unit
502 Session Management Department
503 Cache Management Department
504 Connection Management Department
505 Path management department
506 Link Management Department
507 Communication device
PRT proxy routing table
RST resource table
LCT location table
JCT branch table
SST session table
AST service table

Claims (14)

ノードを構成する各通信装置にアプリケーションプログラム及び通信を中継するプロキシの少なくとも一方が設けられ、アプリケーションプログラムを備える複数のノードが複数のプロキシ及び所定のネットワークを介して互いに接続される通信システムにおいて、プロキシが配置された各ノードの制御に用いるルーチング制御方法であって、
各々のアプリケーションプログラム及び各々のプロキシを特定するサービスアドレス、並びに各々の通信を表すセッションを管理し、
各々のアプリケーションプログラムの所在及び各々のプロキシの所在をリソーステーブルとして管理し、
宛先のアプリケーションプログラムを表す第1のサービスアドレスと、前記宛先に接続されている通信経路上で自プロキシの次ホップに位置する他のプロキシを表す第2のサービスアドレスとの対応関係をプロキシルーチングテーブルとして管理し、
各ノードに存在する通信デバイスのネットワークアドレスをロケーションテーブルとして管理し、
自ノードで管理されている情報が更新された場合、もしくは自ノードに存在しない情報の検索が必要になった場合に、前記リソーステーブルもしくはロケーションテーブルで管理されている他のノードに対してメッセージを送信し、
自ノードが他ノードからの検索を要求するメッセージを受信し、要求された情報が自ノードに存在する場合には、検索の結果をメッセージの発信元に送信し、自ノードが他ノードからの検索を要求するメッセージを受信し要求された情報が自ノードに存在しない場合、もしくは情報の更新を示すメッセージを受信した場合には、メッセージの発信元からのホップ数が制限値を超えていなければ、受信したメッセージの内容を前記リソーステーブルもしくはロケーションテーブルで管理されている他のノードに対して転送する
ことを特徴とするルーチング制御方法。
In a communication system in which at least one of an application program and a proxy that relays communication is provided in each communication device that configures a node, and a plurality of nodes including the application program are connected to each other via a plurality of proxies and a predetermined network. Is a routing control method used to control each node where
Manage the service address identifying each application program and each proxy, and the session representing each communication;
Manage the location of each application program and the location of each proxy as a resource table,
The proxy routing table shows the correspondence between the first service address representing the destination application program and the second service address representing another proxy located at the next hop of the local proxy on the communication path connected to the destination. Manage as
Manage the network address of the communication device that exists in each node as a location table,
When the information managed in the local node is updated or when it is necessary to search for information that does not exist in the local node, a message is sent to other nodes managed in the resource table or location table. Send
When the local node receives a message requesting a search from another node, and the requested information exists in the local node, the search result is sent to the message originator, and the local node searches from the other node. If the requested information does not exist in the local node, or if a message indicating information update is received, if the number of hops from the message source does not exceed the limit value, A routing control method, wherein the content of a received message is transferred to another node managed in the resource table or location table.
請求項1のルーチング制御方法において、他のノードが発信した同一のメッセージを複数受信した場合には、1つのメッセージに対してのみ処理を実施し、残りのメッセージは無視することを特徴とするルーチング制御方法。2. The routing control method according to claim 1, wherein when a plurality of identical messages transmitted by other nodes are received, only one message is processed, and the remaining messages are ignored. Control method. 請求項1のルーチング制御方法において、受信したメッセージを各ノードが他のノードに転送する場合の転送先のノード数を所定数に制限することを特徴とするルーチング制御方法。2. The routing control method according to claim 1, wherein the number of transfer destination nodes when each node transfers a received message to another node is limited to a predetermined number. 請求項1のルーチング制御方法において、
複数のノード間を転送される前記メッセージが通過したノード、並びに同じメッセージが既に送信されたノードに関する履歴情報を前記メッセージに含め、各ノードが受信したメッセージを転送する場合には、履歴情報を調べてそれに含まれるノードを転送先のノードから除外する
ことを特徴とするルーチング制御方法。
In the routing control method of Claim 1,
The history information about the node through which the message transferred between a plurality of nodes has passed and the node to which the same message has already been transmitted is included in the message, and when the message received by each node is transferred, the history information is examined. A routing control method, wherein nodes included in the node are excluded from transfer destination nodes.
請求項1のルーチング制御方法において、
自ノードが管理している他のノードのそれぞれについて、自ノードと他のノードとの間の通信頻度及び管理している情報の類似度の少なくとも一方を表す情報を管理し、
各ノードが受信したメッセージを転送する場合には、通信頻度の高いノード又は類似度の高いノードを優先的に転送先として選択する
ことを特徴とするルーチング制御方法。
In the routing control method of Claim 1,
For each of the other nodes managed by the own node, manage information representing at least one of the communication frequency between the own node and the other node and the similarity of the managed information,
A routing control method, wherein when a message received by each node is transferred, a node having a high communication frequency or a node having a high degree of similarity is preferentially selected as a transfer destination.
請求項1のルーチング制御方法において、
自ノードが管理している他のノードのそれぞれについて、自ノードと他のノードとの間の通信頻度を表す重要度の情報を管理し、
各テーブルで管理されている情報の容量が制限値を超えた場合には、前記重要度が低いノードに関する情報を優先的にテーブルから削除する
ことを特徴とするルーチング制御方法。
In the routing control method of Claim 1,
For each of the other nodes managed by the own node, manage the importance information indicating the communication frequency between the own node and the other nodes,
A routing control method characterized in that, when the capacity of information managed in each table exceeds a limit value, information related to the node having low importance is preferentially deleted from the table.
ノードを構成する各通信装置にアプリケーションプログラム及び通信を中継するプロキシの少なくとも一方が設けられ、アプリケーションプログラムを備える複数のノードが複数のプロキシ及び所定のネットワークを介して互いに接続される通信システムにおいて、プロキシが配置された各ノードの制御に用いるルーチング制御装置であって、
各々のアプリケーションプログラム及び各々のプロキシを特定するサービスアドレス、並びに各々の通信を表すセッションを管理するセッション管理手段と、各々のアプリケーションプログラムの所在及び各々のプロキシの所在を管理するリソーステーブルと、
宛先のアプリケーションプログラムを表す第1のサービスアドレスと、前記宛先に接続されている通信経路上で自プロキシの次ホップに位置する他のプロキシを表す第2のサービスアドレスとの対応関係を管理するプロキシルーチングテーブルと、
各ノードに存在する通信デバイスのネットワークアドレスを管理するロケーションテーブルと、
自ノードで管理されている情報が更新された場合、もしくは自ノードに存在しない情報の検索が必要になった場合に、前記リソーステーブルもしくはロケーションテーブルで管理されている他のノードに対してメッセージを送信するメッセージ送信手段と、
自ノードが他ノードからの検索を要求するメッセージを受信し、要求された情報が自ノードに存在する場合には、検索の結果をメッセージの発信元に送信する検索結果送信手段と、
自ノードが他ノードからの検索を要求するメッセージを受信し要求された情報が自ノードに存在しない場合、もしくは情報の更新を示すメッセージを受信した場合には、メッセージの発信元からのホップ数が制限値を超えていなければ、受信したメッセージの内容を前記リソーステーブルもしくはロケーションテーブルで管理されている他のノードに対して転送するメッセージ転送手段と
を設けたことを特徴とするルーチング制御装置。
In a communication system in which at least one of an application program and a proxy that relays communication is provided in each communication device that configures a node, and a plurality of nodes including the application program are connected to each other via a plurality of proxies and a predetermined network. Is a routing control device used to control each node where
A service address that identifies each application program and each proxy; a session management means that manages a session that represents each communication; a resource table that manages the location of each application program and the location of each proxy;
A proxy that manages the correspondence between a first service address that represents a destination application program and a second service address that represents another proxy located at the next hop of the local proxy on the communication path connected to the destination A routing table;
A location table for managing network addresses of communication devices existing in each node;
When the information managed in the local node is updated or when it is necessary to search for information that does not exist in the local node, a message is sent to other nodes managed in the resource table or location table. Message sending means for sending;
A search result transmission means for receiving a message requesting a search from another node by the own node and transmitting the result of the search to the sender of the message when the requested information exists in the own node;
When the local node receives a message requesting a search from another node and the requested information does not exist in the local node, or when a message indicating an update of the information is received, the hop count from the message source is A routing control device comprising message transfer means for transferring the content of a received message to another node managed in the resource table or location table if the limit value is not exceeded.
請求項7のルーチング制御装置において、前記検索結果送信手段及びメッセージ転送手段は、他のノードが発信した同一のメッセージを複数受信した場合には、1つのメッセージに対してのみ処理を実施し、残りのメッセージは無視することを特徴とするルーチング制御装置。8. The routing control device according to claim 7, wherein when the search result transmission means and the message transfer means receive a plurality of the same messages transmitted by other nodes, the search result transmission means and the message transfer means perform processing only for one message, and the rest A routing controller characterized by ignoring the message. 請求項7のルーチング制御装置において、
受信したメッセージを各ノードが他のノードに転送する場合の転送先のノード数を所定数に制限する転送先ノード数制限手段
を更に設けたことを特徴とするルーチング制御装置。
The routing control device according to claim 7,
A routing control device, further comprising transfer destination node number limiting means for limiting the number of transfer destination nodes to a predetermined number when each node transfers a received message to another node.
請求項7のルーチング制御装置において、
複数のノード間を転送される前記メッセージに通過したノードの履歴情報が含まれる場合に、各ノードが受信したメッセージを転送する場合には、履歴情報を調べてそれに含まれるノードを転送先のノードから除外する履歴識別手段
を更に設けたことを特徴とするルーチング制御装置。
The routing control device according to claim 7,
When the message transferred between a plurality of nodes includes the history information of the passed node, when transferring the message received by each node, the history information is checked and the node included in the message is transferred to the destination node. A routing control device, further comprising history identifying means for excluding from the above.
請求項7のルーチング制御装置において、
自ノードが管理している他のノードのそれぞれについて、自ノードと他のノードとの間の通信頻度及び管理している情報の類似度の少なくとも一方を表す情報を管理する通信頻度管理手段と、
各ノードが受信したメッセージを転送する場合には、通信頻度の高いノード又は類似度の高いノードを優先的に転送先として選択する転送先選択手段と
を更に設けたことを特徴とするルーチング制御装置。
The routing control device according to claim 7,
Communication frequency management means for managing information representing at least one of the communication frequency between the own node and the other node and the similarity of the managed information for each of the other nodes managed by the own node;
A routing control device, further comprising a transfer destination selection means for preferentially selecting a node having a high communication frequency or a node having a high similarity as a transfer destination when transferring a message received by each node. .
請求項7のルーチング制御装置において、
自ノードが管理している他のノードのそれぞれについて、自ノードと他のノードとの間の通信頻度を表す重要度の情報を管理する重要度管理手段と、
各テーブルで管理されている情報の容量が制限値を超えた場合には、前記重要度が低いノードに関する情報を優先的にテーブルから削除するテーブル情報削除手段と
を更に設けたことを特徴とするルーチング制御装置。
The routing control device according to claim 7,
For each of the other nodes managed by the own node, importance management means for managing importance information indicating the communication frequency between the own node and the other nodes;
And a table information deleting unit that preferentially deletes information about the node having low importance from the table when the capacity of information managed in each table exceeds a limit value. Routing control device.
ノードを構成する各通信装置にアプリケーションプログラム及び通信を中継するプロキシの少なくとも一方が設けられ、アプリケーションプログラムを備える複数のノードが複数のプロキシ及び所定のネットワークを介して互いに接続される通信システムに適用され、プロキシが配置された各ノードをルーチング制御するためのコンピュータで実行可能な制御プログラムを記録した記録媒体であって、前記制御プログラムには、
各々のアプリケーションプログラム及び各々のプロキシを特定するサービスアドレス、並びに各々の通信を表すセッションを管理する手順と、
各々のアプリケーションプログラムの所在及び各々のプロキシの所在をリソーステーブルとして管理する手順と、
宛先のアプリケーションプログラムを表す第1のサービスアドレスと、前記宛先に接続されている通信経路上で自プロキシの次ホップに位置する他のプロキシを表す第2のサービスアドレスとの対応関係をプロキシルーチングテーブルとして管理する手順と、
各ノードに存在する通信デバイスのネットワークアドレスをロケーションテーブルとして管理する手順と、
自ノードで管理されている情報が更新された場合、もしくは自ノードに存在しない情報の検索が必要になった場合に、前記リソーステーブルもしくはロケーションテーブルで管理されている他のノードに対してメッセージを送信する手順と、
自ノードが他ノードからの検索を要求するメッセージを受信し、要求された情報が自ノードに存在する場合には、検索の結果をメッセージの発信元に送信する手順と、
自ノードが他ノードからの検索を要求するメッセージを受信し要求された情報が自ノードに存在しない場合、もしくは情報の更新を示すメッセージを受信した場合には、メッセージの発信元からのホップ数が制限値を超えていなければ、受信したメッセージの内容を前記リソーステーブルもしくはロケーションテーブルで管理されている他のノードに対して転送する手順と
を設けたことを特徴とする記録媒体。
Applicable to a communication system in which at least one of an application program and a proxy that relays communication is provided in each communication device that constitutes a node, and a plurality of nodes including the application program are connected to each other via a plurality of proxies and a predetermined network , A recording medium storing a computer-executable control program for routing control of each node where the proxy is arranged, and the control program includes:
A service address for identifying each application program and each proxy, and a procedure for managing a session representing each communication;
A procedure for managing the location of each application program and the location of each proxy as a resource table;
The proxy routing table shows the correspondence between the first service address representing the destination application program and the second service address representing another proxy located at the next hop of the local proxy on the communication path connected to the destination. As a procedure to manage as
A procedure for managing network addresses of communication devices existing in each node as a location table;
When the information managed in the local node is updated or when it is necessary to search for information that does not exist in the local node, a message is sent to other nodes managed in the resource table or location table. The steps to send,
When the local node receives a message requesting a search from another node and the requested information exists in the local node, a procedure for transmitting the search result to the message originator;
If the local node receives a message requesting a search from another node and the requested information does not exist in the local node, or if a message indicating an update of the information is received, the hop count from the message source is A recording medium comprising: a procedure for transferring the content of a received message to another node managed by the resource table or the location table if the limit value is not exceeded.
ノードを構成する各通信装置にアプリケーションプログラム及び通信を中継するプロキシの少なくとも一方が設けられ、アプリケーションプログラムを備える複数のノードが複数のプロキシ及び所定のネットワークを介して互いに接続される通信システムに適用され、プロキシが配置された各ノードをルーチング制御するためのコンピュータで実行可能な制御プログラムであって、
各々のアプリケーションプログラム及び各々のプロキシを特定するサービスアドレス、並びに各々の通信を表すセッションを管理する手順と、
各々のアプリケーションプログラムの所在及び各々のプロキシの所在をリソーステーブルとして管理する手順と、
宛先のアプリケーションプログラムを表す第1のサービスアドレスと、前記宛先に接続されている通信経路上で自プロキシの次ホップに位置する他のプロキシを表す第2のサービスアドレスとの対応関係をプロキシルーチングテーブルとして管理する手順と、
各ノードに存在する通信デバイスのネットワークアドレスをロケーションテーブルとして管理する手順と、
自ノードで管理されている情報が更新された場合、もしくは自ノードに存在しない情報の検索が必要になった場合に、前記リソーステーブルもしくはロケーションテーブルで管理されている他のノードに対してメッセージを送信する手順と、
自ノードが他ノードからの検索を要求するメッセージを受信し、要求された情報が自ノードに存在する場合には、検索の結果をメッセージの発信元に送信する手順と、
自ノードが他ノードからの検索を要求するメッセージを受信し要求された情報が自ノードに存在しない場合、もしくは情報の更新を示すメッセージを受信した場合には、メッセージの発信元からのホップ数が制限値を超えていなければ、受信したメッセージの内容を前記リソーステーブルもしくはロケーションテーブルで管理されている他のノードに対して転送する手順と
を設けたことを特徴とする制御プログラム。
Applicable to a communication system in which at least one of an application program and a proxy that relays communication is provided in each communication device that constitutes a node, and a plurality of nodes including the application program are connected to each other via a plurality of proxies and a predetermined network A computer-executable control program for routing control of each node where the proxy is arranged,
A service address for identifying each application program and each proxy, and a procedure for managing a session representing each communication;
A procedure for managing the location of each application program and the location of each proxy as a resource table;
The proxy routing table shows the correspondence between the first service address representing the destination application program and the second service address representing another proxy located at the next hop of the local proxy on the communication path connected to the destination. As a procedure to manage as
A procedure for managing network addresses of communication devices existing in each node as a location table;
When the information managed in the local node is updated or when it is necessary to search for information that does not exist in the local node, a message is sent to other nodes managed in the resource table or location table. The steps to send,
When the local node receives a message requesting a search from another node and the requested information exists in the local node, a procedure for transmitting the search result to the message originator;
If the local node receives a message requesting a search from another node and the requested information does not exist in the local node, or if a message indicating an update of the information is received, the hop count from the message source is A control program comprising: a procedure for transferring the content of a received message to another node managed in the resource table or location table if the limit value is not exceeded.
JP2002036024A 2002-02-13 2002-02-13 Routing control method, routing control device, recording medium, and control program Expired - Fee Related JP3672534B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002036024A JP3672534B2 (en) 2002-02-13 2002-02-13 Routing control method, routing control device, recording medium, and control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002036024A JP3672534B2 (en) 2002-02-13 2002-02-13 Routing control method, routing control device, recording medium, and control program

Publications (2)

Publication Number Publication Date
JP2003244210A JP2003244210A (en) 2003-08-29
JP3672534B2 true JP3672534B2 (en) 2005-07-20

Family

ID=27778045

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002036024A Expired - Fee Related JP3672534B2 (en) 2002-02-13 2002-02-13 Routing control method, routing control device, recording medium, and control program

Country Status (1)

Country Link
JP (1) JP3672534B2 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4784876B2 (en) * 2005-06-07 2011-10-05 テレフオンアクチーボラゲット エル エム エリクソン(パブル) Communication path allocation entity and method
JP2007200203A (en) 2006-01-30 2007-08-09 Brother Ind Ltd Information distribution system, re-registration message transmission method, node device, and node processing program
JP4932272B2 (en) * 2006-02-13 2012-05-16 Necエンジニアリング株式会社 Chat system
JP4890105B2 (en) * 2006-05-31 2012-03-07 三菱電機株式会社 Authentication device, authentication agent device, and user authentication method
JP2011164755A (en) * 2010-02-05 2011-08-25 Fujitsu Ltd Data conversion device, data conversion method, and program
JP6206493B2 (en) * 2013-05-30 2017-10-04 日本電気株式会社 CONTROL DEVICE, COMMUNICATION SYSTEM, RELAY DEVICE CONTROL METHOD, AND PROGRAM
CN112543488A (en) * 2019-09-20 2021-03-23 瑞达凯特科技(加拿大)有限公司 Relay routing method and device
EP4040856B1 (en) * 2019-09-30 2024-04-24 Daikin Industries, Ltd. Node, communication system, and communication method
CN114531393B (en) * 2021-12-30 2023-11-28 百果园技术(新加坡)有限公司 Method, device, equipment and medium for issuing segment routing strategy

Also Published As

Publication number Publication date
JP2003244210A (en) 2003-08-29

Similar Documents

Publication Publication Date Title
JP5113684B2 (en) Access gateway device control method and communication system
US5572528A (en) Mobile networking method and apparatus
JP2005051754A (en) Distance-aware service discovery mechanism for determining availability of remote service in wireless personal area network
JP2003289327A (en) System for management of cacheable streaming content in packet based communication network with mobile host
CA2656660C (en) Client/bridge and method and system for using same
JP3785101B2 (en) Communication connection establishment method, communication control device, recording medium, and control program
JP2006201896A (en) Network system and mobile communication node
JP3732745B2 (en) Communication connection establishment method
JP3672534B2 (en) Routing control method, routing control device, recording medium, and control program
WO2009105983A1 (en) Method and system for neighbor migration in border gateway protocol distributed system
CN102204209B (en) Method, system and network device for quality of service (qos) negotiation in cross-medium networks
JP2005109539A (en) System, method, and program for retrieving and distributing contents
CN104243303B (en) The method and apparatus for updating message are sent in a kind of autonomous system loop networking
JP2007524258A (en) Mobile peer-to-peer network construction
CN104038427A (en) Router renewing method and device
JP4373060B2 (en) Distributed processing system and proxy node, user side node and method in distributed processing system
JPH10112740A (en) Information processor, communication method and storage medium
JPH0879269A (en) Communication controller and communication control method
CN110493733A (en) A kind of Mesh network system based on Bluetooth Low Energy mobile device
JP3712983B2 (en) Multicast communication control method, communication control apparatus, recording medium, and control program
US9167543B2 (en) Synchronization of mobile client multicast
CN107736002B (en) Proximity-based service information distributed caching method and device and communication network
JP4209752B2 (en) Mobile communication system, mobile terminal, node device, and mobile communication method
CN114785695A (en) High-performance network communication library realized based on zeroC ICE
WO2013037318A1 (en) Data processing method and data processing node

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041012

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041019

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: 20050412

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050419

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: 20090428

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090428

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100428

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100428

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110428

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees