JP2004357252A - 通信装置及び通信方法 - Google Patents
通信装置及び通信方法 Download PDFInfo
- Publication number
- JP2004357252A JP2004357252A JP2003155759A JP2003155759A JP2004357252A JP 2004357252 A JP2004357252 A JP 2004357252A JP 2003155759 A JP2003155759 A JP 2003155759A JP 2003155759 A JP2003155759 A JP 2003155759A JP 2004357252 A JP2004357252 A JP 2004357252A
- Authority
- JP
- Japan
- Prior art keywords
- communication
- switching
- address
- node
- communication interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
【解決手段】通信インタフェース切り替えマネージャ20が、複数の通信インタフェースの中から、アプリケーション毎に使用通信インタフェースを選択して切り替える。仮想インタフェース41は、アプリケーション部からノードBに送信するデータを取得し、ノードBから送信されたデータをアプリケーション部に提供する。アドレス切り替え部42は、データに付加されているノードAのアドレスを、アプリケーション毎の使用通信インタフェースのアドレスと仮想アドレスとの間で変換する。更に、エージェント32は、切り替え時にノードBに、切り替えの前後でノード自体は同一であることを証明する共有情報を提供する。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、通信装置及び通信方法に関する。
【0002】
【従来の技術】
移動通信ノードが、異なるアドレス体系を持つサブネットワーク間を移動すると、そのアドレスは変更されてしまう。そのため、移動通信ノードのアドレスが移動により変更されても、通信を継続する技術が提案されている。例えば、IP(Internet Protocol)ネットワークでは、RFC(Request for Comments)2002で規定されているモバイルIPがある。
【0003】
モバイルIPでは、どのネットワークに存在していても変わらない、移動通信ノードに固有のホームアドレスを、移動通信ノードに付与する。又、モバイルIPを用いた通信システムは、移動通信ノードと、ホームアドレスを含んでいるサブネットワーク内に設置されるホームエージェントと、移動通信ノードの移動先のサブネットワークにおいて、ホームエージェントと通信を行うフォーリンエージェントとを備える。
【0004】
移動通信ノードは、ホームアドレスを含むサブネットワークでは、相手ノードとホームアドレスを用いて通信を行う。そして、移動通信ノードは、ホームアドレスを含むサブネットワークから、別のサブネットワークに移動した場合、ホームエージェントに移動先の位置情報を登録する。ホームエージェントは、相手ノードから、移動通信ノードのホームアドレス宛のデータを、移動通信ノードの代理として受信する。ホームエージェントは、移動通信ノードの移動先のサブネットワークに設置されたフォーリンエージェントに、受信したデータをカプセル化して送信する。フォーリンエージェントは、カプセル化されたデータからデータを取りだし、移動通信ノードに送信する。移動通信ノードは、送信元アドレスを自身のホームアドレスとして、ホームエージェントを経由することなく、相手ノード宛てに直接返信する。
【0005】
このように、移動通信ノードのアドレスが、移動により、移動先のサブネットワークのアドレス体系に従ったアドレスに変更された場合であっても、ホームエージェントが移動通信ノードの移動先を把握しておくことにより、移動先のフォーリンエージェントにデータを転送できる。よって、相手ノードは、移動通信ノードが移動してもホームアドレス宛にデータを送っているだけで、移動通信ノードとの通信を継続できる。即ち、通信途中で移動通信ノードのアドレスが変更されても、移動通信ノードと相手ノードは、通信中のセッションを継続できる。尚、このフォーリンエージェントの機能を移動通信ノード自身が備えてもよい。
【0006】
又、複数の通信インタフェースを備え、異なるアドレス体系を持つサブネットワーク間を移動した場合に、使用する通信インタフェースを切り替える移動通信ノードがある。このとき、各通信インタフェースのアドレスが異なることから、相手ノードからは、移動通信ノードのアドレスが変更されてしまったように見える。この場合にも、上記モバイルIPの技術を採用することにより、通信インタフェースが変更されても、相手ノードとの通信の継続を可能にできる(例えば、特許文献1参照)。
【0007】
この使用する通信インタフェースの切り替えによるアドレスの変更を、上位層に対して隠蔽する技術も提案されている(例えば、特許文献2参照)。具体的には、ネットワークアドレス変換部が、パケットのアドレスについて、上位層の持つ論理IPアドレスと、通信インタフェースが持つ物理IPアドレスとを変換する。これにより、上位層は論理IPアドレスだけを用いて通信できる。
【0008】
【特許文献1】
特開2002−290445号公報
【0009】
【特許文献2】
特開2000−332776号公報
【0010】
【発明が解決しようとする課題】
しかしながら、移動通信ノードが使用する通信インタフェースを切り替える場合に、モバイルIPの技術を採用すると、移動通信ノードと相手ノードといった通信を行うエンドノード以外に、ホームエージェント、フォーリンエージェントといった第三の通信ノードが必要になる。その結果、ホームエージェントを経由することでデータの通信経路が冗長になる、ホームエージェントやフォーリンエージェントの故障により、モバイルIPを利用した通信ができなくなるため、通信システム全体の耐障害性が低下する、ホームエージェント、フォーリンエージェント間でデータをカプセル化することから、カプセル化に用いるヘッダ分のオーバーヘッドが発生する、経路の冗長化やオーバーヘッドの発生により、ネットワークに大きな負荷がかかるといった問題点があった。
【0011】
通信経路が冗長になる点については、モバイルIPv6において改良が行われ、モバイルIPv6では、ホームエージェントやフォーリンエージェントを介在しないエンドツーエンドで通信を行うBinding cacheオプションが設けられている。しかし、モバイルIPv6でも、通信開始時はホームエージェントを経由する必要があり、耐障害性の問題は依然として存在していた。又、通信ノードに関する経路情報をヘッダにオプションとして加えることにより、余計なオーバーヘッドが発生するという新たな問題があった。
【0012】
又、使用する通信インタフェースの切り替えによるアドレスの変更を、上位層に対して隠蔽する技術においても、以下のような問題点があった。使用する通信インタフェースの切り替えにより移動通信ノードのアドレスが変更された場合に、相手ノードは、切り替えの前後で同一の移動通信ノードであるか否かを確かめることができなかった。そのため、第三者によるなりすましによって、移動通信ノードと相手装置との間で通信中のセッションを容易に乗っ取られてしまったり、データを改ざんされてしまったりするおそれがあった。即ち、使用する通信インタフェースを切り替える際のセキュリティが低いという問題があった。
【0013】
更に、上位層で行われる複数のアプリケーションが通信インタフェースの切り替えの度に使用できる通信インタフェースは、1つであった。即ち、通信インタフェースを切り替えると、上位層で行われる全てのアプリケーションは、切り替えられた単一の通信インタフェースを用いて通信を行っていた。そのため、アプリケーション毎に適した通信インタフェースが異なる場合には、各アプリケーションに適した通信環境を提供できなかった。
【0014】
そこで、本発明の第一の目的は、使用する通信インタフェースを切り替える場合に、モバイルIPのように第三のノードを用いずに通信を継続でき、その際のセキュリティを高めることができる通信装置及び通信方法を提供することにある。又、本発明の第二の目的は、使用する通信インタフェースを切り替える場合に、モバイルIPのように第三のノードを用いずに通信を継続でき、上位層のアプリケーション毎に適した通信環境を提供できる通信装置及び通信方法を提供することにある。
【0015】
【課題を解決するための手段】
本発明に係る通信装置は、データを相手装置と送受信する複数の通信インタフェースと、複数の通信インタフェースの中から、データの送受信に用いる通信インタフェース(以下「使用通信インタフェース」という)を選択して切り替える切り替え手段と、ネットワーク層よりも上位層から、相手装置に送信するデータを取得し、相手装置から送信されたデータを、上位層に提供する仮想インタフェースと、データに付加されている通信装置のアドレスを、使用通信インタフェースのアドレスと仮想インタフェースのアドレスとの間で変換する変換手段と、使用通信インタフェースを切り替える際に、相手装置に、切り替えの前後で通信装置は同一であることを証明する証明情報を提供する証明情報提供手段とを備えることを特徴とする。
【0016】
このような通信装置によれば、切り替え手段が、複数の通信インタフェースの中から、使用通信インタフェースを選択して切り替える。仮想インタフェースは、ネットワーク層よりも上位層から、相手装置に送信するデータを取得し、相手装置から送信されたデータを上位層に提供する。そして、変換手段が、データに付加されている通信装置のアドレスを、使用通信インタフェースのアドレスと仮想インタフェースのアドレスとの間で変換する。そのため、通信装置は、使用通信インタフェースを切り替えることができる。しかも、通信装置は、使用通信インタフェースの切り替えを上位層に対して隠蔽することができ、上位層は、常に変わらない仮想インタフェースのアドレスを用いて通信できる。よって、通信装置の上位層では、使用通信インタフェースを切り替えても、モバイルIPのように第三のノードを用いずに通信を継続できる。
【0017】
更に、証明情報提供手段は、使用通信インタフェースを切り替える際に、相手装置に、切り替えの前後で通信装置自体は同一であることを証明する証明情報を提供する。そのため、通信装置の使用通信インタフェースが切り替えられ、相手装置から見た通信装置のアドレスが変更されたときに、相手装置は、証明情報に基づいて、通信装置が切り替えの前後で同一の通信装置であるか否かを認証できる。よって、通信装置は、使用通信インタフェースを切り替える際のセキュリティを高めることができる。
【0018】
又、証明情報提供手段は、切り替えの前に、証明情報として、相手装置と共有する共有情報を生成することが好ましい。これによれば、相手装置は、通信装置が使用通信インタフェースを切り替える前に、予め通信装置と相手装置との間で生成した共有情報に基づいて、通信装置を認証できる。よって、通信装置は、使用通信インタフェースを切り替える場合のセキュリティを、より高めることができる。
【0019】
更に、通信装置は、相手装置が複数の通信インタフェースを備える場合に、相手装置から、その相手装置が使用通信インタフェースを切り替える際に、切り替えの前後で相手装置は同一であることを証明する相手装置証明情報を取得し、その取得した相手装置証明情報に基づいて相手装置を認証する認証手段を備えることが好ましい。
【0020】
これによれば、相手装置も複数の通信インタフェースを備え、その切り替えを行う場合に、通信装置は、相手装置証明情報に基づいて、相手装置が切り替えの前後で同一の相手装置であるか否かを認証できる。よって、通信装置は、相手装置が使用通信インタフェースを切り替える場合のセキュリティについても、高めることができる。
【0021】
又、他の通信装置は、データを送受信する複数の通信インタフェースを備える相手装置から、その相手装置が使用通信インタフェースを切り替える際に、切り替えの前後で相手装置は同一であることを証明する相手装置証明情報を取得し、その取得した相手装置証明情報に基づいて相手装置を認証する認証手段を備えることを特徴とする。
【0022】
これによれば、相手装置の使用通信インタフェースが切り替えられ、通信装置から見た相手装置のアドレスが変更されたときに、通信装置は、相手装置証明情報に基づいて、相手装置が切り替えの前後で同一の相手装置であるか否かを認証できる。よって、通信装置は、使用通信インタフェースを切り替える際のセキュリティを高めることができる。
【0023】
更に、他の通信装置は、データを相手装置と送受信する複数の通信インタフェースと、複数の通信インタフェースの中から、使用通信インタフェースを、ネットワーク層よりも上位層で行うアプリケーション毎に選択して切り替える切り替え手段と、上位層から、相手装置に送信するデータを取得し、相手装置から送信されたデータを、上位層に提供する仮想インタフェースと、データに付加されている通信装置のアドレスを、アプリケーション毎の使用通信インタフェースのアドレスと仮想インタフェースのアドレスとの間で変換する変換手段とを備えることを特徴とする。
【0024】
このような通信装置によれば、切り替え手段が、複数の通信インタフェースの中から、アプリケーション毎に使用通信インタフェースを選択して切り替える。仮想インタフェースは、上位層から、相手装置に送信するデータを取得し、相手装置から送信されたデータを上位層に提供する。そして、変換手段が、データに付加されているアドレスを、アプリケーション毎の使用通信インタフェースのアドレスと仮想インタフェースのアドレスとの間で変換する。
【0025】
そのため、通信装置は、アプリケーション毎に使用通信インタフェースを切り替えることができる。よって、上位層で行われる各アプリケーションは、各アプリケーションに適した通信インタフェースを用いて通信できる。その結果、通信装置は、アプリケーション毎に適した通信環境を提供できる。しかも、通信装置は、アプリケーション毎の使用通信インタフェースの切り替えを上位層に対して隠蔽することができ、上位層は、常に変わらない仮想インタフェースのアドレスを用いて通信できる。よって、通信装置の上位層では、使用通信インタフェースを切り替えても、モバイルIPのように第三のノードを用いずに通信を継続できる。
【0026】
更に、通信装置は、切り替え手段が行うアプリケーション毎の使用通信インタフェースの切り替えを、相手装置に通知する通知手段を備えることが好ましい。
これによれば、通信装置は、相手装置に対して、アプリケーション毎の使用通信インタフェースの切り替えを事前に通知できる。そのため、相手装置では、通信装置における使用通信インタフェースの変更に伴う処理を適切に行うことができる。
【0027】
又、変換手段は、データに付加されている通信装置のアドレスを、アプリケーションで用いるセッション毎の使用通信インタフェースのアドレスと仮想インタフェースのアドレスとの間で変換することが好ましい。これによれば、通信装置は、セッション毎に使用通信インタフェースを切り替えることができる。よって、上位層で行われる各アプリケーションは、各セッションに適した通信インタフェースを用いて通信できる。その結果、通信装置は、各アプリケーションのセッション毎に適した通信環境を提供できる。尚、セッションとは、通信路を確立してから、その通信路を解放するまでの一連の処理をいう。
【0028】
又、他の通信装置は、データに付加されている複数の通信インタフェースを備える相手装置のアドレスを、相手装置が使用通信インタフェースを切り替えた後の使用通信インタフェースのアドレスと、通信開始時の使用通信インタフェースのアドレスとの間で変換する相手アドレス変換手段を備えることを特徴とする。
このような通信装置によれば、相手装置が使用通信インタフェースを切り替えても、そのアドレスが常に変わらないように見せることができる。よって、通信装置では、相手装置が使用通信インタフェースを切り替えても、モバイルIPのように第三のノードを用いずに通信を継続できる。
【0029】
本発明に係る通信方法は、データを相手装置と送受信する複数の通信インタフェースと、ネットワーク層よりも上位層から、相手装置に送信するデータを取得し、相手装置から送信されたデータを、上位層に提供する仮想インタフェースとを備える通信装置が、複数の通信インタフェースの中から、使用通信インタフェースを選択して切り替え、その切り替えの際に、相手装置に、切り替えの前後で通信装置は同一であることを証明する証明情報を提供し、相手装置が、通信装置から取得した証明情報に基づいて通信装置を認証し、その認証を受けた通信装置は、データに付加されている通信装置のアドレスを、使用通信インタフェースのアドレスと仮想インタフェースのアドレスとの間で変換することを特徴とする。
【0030】
又、他の通信方法は、データを相手装置と送受信する複数の通信インタフェースと、上位層から、相手装置に送信するデータを取得し、相手装置から送信されたデータを、上位層に提供する仮想インタフェースとを備える通信装置が、複数の通信インタフェースの中から、使用通信インタフェースを、上位層で行うアプリケーション毎に選択して切り替え、データに付加されている通信装置のアドレスを、アプリケーション毎の使用通信インタフェースのアドレスと仮想インタフェースのアドレスとの間で変換することを特徴とする。
【0031】
【発明の実施の形態】
[第1の実施の形態]
通信システムは、図1に示すノードA100と、図2に示すノードB200とを備える。ノードA100、ノードB200は、データを送受信する通信装置である。ノードA100は、ノードB200にとっての相手装置となり、ノードB200は、ノードA100にとっての相手装置となる。尚、説明を簡単にするために、2つのノードA100とノードB200を用いて説明するが、通信システムには多数のノードが含まれる。
【0032】
〔ノードA〕
ノードA100は、移動通信を行う移動通信ノードである。図1に示すように、ノードA100は、複数の通信インタフェース(#1)11〜通信インタフェース(#N)1nと、通信インタフェース切り替えマネージャ20と、セッションマネージャ30と、アドレス変換ファンクション部40と、複数のアプリケーション部(#1)51〜アプリケーション部(#N)5nとを備える。
【0033】
通信インタフェース(#1)11〜通信インタフェース(#N)1nは、データを相手装置であるノードB200と送受信する。通信インタフェース(#1)11〜通信インタフェース(#N)1nには、それぞれ通信可能なネットワークが存在する。通信インタフェース(#1)11〜通信インタフェース(#N)1nは、対応する通信可能なネットワークを介してノードB200と通信する。各通信インタフェース(#1)11〜通信インタフェース(#N)1nには、アドレスが付与されている。通信インタフェース(#1)11には、アドレスとして「add_A1」が、通信インタフェース(#2)12には、アドレスとして「add_A2」が、通信インタフェース(#N)1nには、アドレスとして「add_An」が付与されている。
【0034】
通信インタフェース(#1)11〜通信インタフェース(#N)1nは、ノードB200に送信するデータを、アドレス変換ファンクション部40から取得する。通信インタフェース(#1)11〜通信インタフェース(#N)1nは、ノードB200から受信したデータを、アドレス変換ファンクション部40に入力する。又、通信インタフェース(#1)11〜通信インタフェース(#N)1nは、セッションマネージャ30から制御に必要な情報の入力を受け、ノードB200に送信したり、制御に必要な情報をノードB200から受信し、セッションマネージャ30に入力したりする。
【0035】
アプリケーション部(#1)51〜アプリケーション部(#N)5nは、ネットワーク層よりも上位層のアプリケーション層において、アプリケーションを行う。各アプリケーション部(#1)51〜アプリケーション部(#N)5nは、それぞれのアプリケーションを行う。アプリケーション部(#1)51は、アプリケーション(#1)を行い、アプリケーション部(#2)52は、アプリケーション(#2)を行い、アプリケーション部(#N)5nは、アプリケーション(#N)を行う。
【0036】
アプリケーション部(#1)51〜アプリケーション部(#N)5nは、ノードB200に送信するデータを、アドレス変換ファンクション部40に入力する。アプリケーション部(#1)51〜アプリケーション部(#N)5nは、ノードB200から送信されたデータを、アドレス変換ファンクション部40から取得する。
【0037】
通信インタフェース切り替えマネージャ20と、セッションマネージャ30と、アドレス変換ファンクション部40は、プロトコルスタック中のネットワーク層において処理を行う。通信インタフェース切り替えマネージャ20と、セッションマネージャ30と、アドレス変換ファンクション部40は、例えば、ノードA100が、通信インタフェース切り替えマネージャ20と、セッションマネージャ30と、アドレス変換ファンクション部40として機能するミドルウェアをネットワーク層に実装し、そのミドルウェアを実行することにより実現される。
通信インタフェース切り替えマネージャ20は、複数の通信インタフェース(#1)11〜通信インタフェース(#N)1nの中から、データの送受信に用いる使用通信インタフェースを選択して切り替える切り替え手段である。通信インタフェース切り替えマネージャ20は、切り替え判断部21と、メモリ22と、切り替え指示部23とを備える。
【0038】
切り替え判断部21は、複数の通信インタフェース(#1)11〜通信インタフェース(#N)1nの状態を常に検出することにより、監視する。切り替え判断部21は、通信インタフェース(#1)11〜通信インタフェース(#N)1nから、通信インタフェース(#1)11〜通信インタフェース(#N)1nの電波強度や在圏状況などの通信環境の状況、故障状況などを取得し、取得した通信環境の状況、故障状況などに基づいて、通信インタフェース(#1)11〜通信インタフェース(#N)1nの状態を検出する。
【0039】
切り替え判断部21は、通信インタフェース(#1)11〜通信インタフェース(#N)1nの状態を、図3に示すように、「通信中」、「通信待機」、「通信不可能」の3種類に分類する。「通信中」は、通信インタフェースをデータの送受信に使用している状態であり、通信インタフェースにデータを入力して通信している状態である。「通信待機」は、通信インタフェースは通信可能な状態にあるが、データの送受信に使用していない状態である。即ち、「通信待機」は、通信インタフェースは通信可能な状態にあるが、実際には通信を行っていない状態である。「通信不可能」は、通信インタフェースまで電波が届かない、ノードA100がサービスエリア外に存在する、通信インタフェースが故障しているなど、物理的な理由によって、通信インタフェースを使用できない状態である。即ち、「通信不可能」は、通信インタフェースが物理的に通信できない状態を示す。
【0040】
「通信中」と「通信待機」は、使用通信インタフェースを選択する選択基準である切り替えポリシーによって区別される。又、「通信待機」と「通信不可能」は、電波強度や在圏状況などの通信環境の状況、故障状況などによって区別される。更に、「通信中」から「通信不可能」への移行は、以下のようにして判断する。通信中にデータの送受信が突然途切れる場合がある。切り替え判断部21は、まず、故障状況に基づいて、通信インタフェースの故障が原因と判断した場合には、直ちに「通信不可能」と判断する。切り替え判断部21は、通信インタフェースの故障が原因ではないと判断した場合には、相手装置であるノードB200にデータを送信できない、ノードB200からデータを受信できないといったデータの送受信が途切れている時間(以下「切断時間」という)を計測する。
【0041】
切り替え判断部21は、通信インタフェース(#1)11〜通信インタフェース(#N)1nの電波強度や在圏状況などの通信環境の状況と切断時間に基づいて、通信が切断されたか否かを判断する。通信が切断されたか否かを判断する基準となる電波強度や切断時間の基準値や、在圏状況に基づく切断されたか否かの判断基準を、ノードのユーザや切り替え判断部21が設定する。あるいは、予めデフォルトの値や条件を設定しておく。例えば、切り替え判断部21は、電波強度が、基準値よりも小さい場合や、切断時間が基準値よりも長い場合、サービスエリア外となった場合に、通信が切断されたと判断できる。
【0042】
切り替え判断部21は、通信が切断されたと判断した場合には、電波強度や在圏状況などの通信環境の状況に基づいて、その原因がノードA100にあるか否かを判断する。切り替え判断部21は、例えば、通信インタフェース(#1)11〜通信インタフェース(#N)1nの電波強度が小さい場合や、通信インタフェース(#1)11〜通信インタフェース(#N)1nがそのサービスエリア外に存在する場合には、その原因がノードA100にあると判断する。原因がノードA100にあると判断した場合には、切り替え判断部21は、その通信インタフェースの状態が「通信中」から「通信不可能」になったと判断する。
【0043】
一方、切り替え判断部21は、例えば、通信インタフェース(#1)11〜通信インタフェース(#N)1nの電波強度が大きい場合や、通信インタフェース(#1)11〜通信インタフェース(#N)1nがそのサービスエリア内に存在する場合には、その原因がノードA100にはなく、相手装置であるノードB200にあると判断する。切り替え判断部21は、通信が切断されていないと判断した場合や、その原因がノードA100にないと判断した場合には、状態は「通信中」のままとする。
【0044】
切り替え判断部21は、通信開始時や、ノードA100の移動により、通信インタフェース(#1)11〜通信インタフェース(#N)1nの在圏状況や電波強度などの通信環境が変化し、通信インタフェース(#1)11〜通信インタフェース(#N)1nの状態変化を検出した時に、使用通信インタフェースを選択する。
【0045】
切り替え判断部21は、切り替えポリシーに基づいて、使用通信インタフェースを選択する。切り替えポリシーは、ネットワーク層よりも上位層で行う複数のアプリケーション毎に設定してもよい。その場合、切り替え判断部21は、アプリケーション毎の切り替えポリシーに基づいて、アプリケーション毎に使用通信インタフェースを選択する。切り替えポリシーは、例えば、通信コスト、通信速度、セキュリティ、ノードA100の移動時における通信の連続性など、移動ノードA100において優先する項目や、各アプリケーションにおいて優先する項目に基づいて、設定できる。
【0046】
切り替えポリシーとしては、例えば、図4に示すように、通信インタフェース(#1)11〜通信インタフェース(#N)1nに、使用する優先順位を付与した条件を設定できる。又、切り替えポリシーは、複数のアプリケーション(#1)〜アプリケーション(#N)毎に、通信インタフェース(#1)11〜通信インタフェース(#N)1nに、使用する優先順位を付与した条件を設定できる。
【0047】
例えば、ノードA100のユーザが、各通信インタフェース(#1)11〜通信インタフェース(#N)1nの優先順位を直接決定することにより、優先順位を設定できる。あるいは、まず、ユーザが、通信コスト、通信速度、セキュリティ、移動時における通信の連続性など、移動ノードA100において優先する項目や、各アプリケーションにおいて優先する項目を決定して切り替え判断部21に入力する。そして、切り替え判断部21が、入力された項目に基づいて、通信インタフェースの優先順位を決定することにより、優先順位を設定できる。即ち、切り替え判断部21が、ユーザが優先する項目と、各通信インタフェース(#1)11〜通信インタフェース(#N)1nの状態や性能に基づいて、自動的に優先順位を決定する。
【0048】
切り替えポリシーは、上記したようにノードA100のユーザが設定したり、切り替え判断部21が自動的に設定したり、あるいは、予めデフォルトの条件を設定しておいたりできる。メモリ22が、切り替えポリシーを保持する。このようにして、通信インタフェース切り替えマネージャ20は、切り替えポリシーの設定、記憶を行い、切り替えポリシーを制御する。
【0049】
切り替え判断部21は、選択した使用通信インタフェースが、現在使用している通信中の通信インタフェースと同一の場合には、使用通信インタフェースの切り替えを行わないと判断する。一方、切り替え判断部21は、選択した使用通信インタフェースが、現在使用している通信中の通信インタフェースと異なる場合には、使用通信インタフェースの切り替えを行うと判断する。このとき、切り替え判断部21は、アプリケーション毎に使用通信インタフェースの切り替えを判断してもよい。
【0050】
尚、状態変化が「通信中」から「通信不可能」への移行の場合には、切り替え判断部21は、状態が「通信待機」である使用可能な通信インタフェースが存在するか否かを判断する。切り替え判断部21は、使用可能な通信インタフェースが存在する場合には切り替えを行うと判断し、使用通信インタフェースを選択する。一方、使用可能な通信インタフェースが存在しない場合には、ノードA100は通信不可能である。そのため、切り替え判断部21は、切り替えを行わずに、通信を中断すると判断する。
【0051】
使用通信インタフェースの切り替えを行うと判断した場合、切り替え判断部21は、セッションマネージャ30に、切り替えの実行と、その切り替えの内容を通知する。切り替えの内容には、切り替えの対象となる現在使用中の通信インタフェースと、新しく選択した切り替え先の通信インタフェースが含まれる。このようにして、切り替え判断部21は、使用通信インタフェースを切り替えることに伴う処理を行うように、セッションマネージャ30に指示する。又、切り替え判断部21は、通信開始時に、選択した通信インタフェースをセッションマネージャ30に通知する。アプリケーション毎に使用通信インタフェースを選択したり、切り替えを行ったりする場合には、切り替え判断部21は、アプリケーション毎に、切り替えの実行と切り替えの内容を通知したり、選択した通信インタフェースを通知したりする。即ち、切り替え判断部21は、アプリケーションを特定して、使用通信インタフェースを切り替えることに伴う処理を行うように、セッションマネージャ30に指示する。
【0052】
更に、切り替え判断部21は、通信を中断すると判断した場合には、セッションマネージャ30に通信の中断を通知する。又、切り替え判断部21は、通信が切断されたと判断した場合であって、その原因が相手装置であるノードB200にあると判断した場合には、セッションマネージャ30に通信の切断を通知する。
【0053】
更に、切り替え判断部21は、切り替え指示部23に、切り替えの実行と、その切り替えの内容を通知し、使用通信インタフェースを切り替えるように指示する。一方、使用通信インタフェースの切り替えを行わないと判断した場合、切り替え判断部21は、切り替えに関する処理は行わない。尚、切り替え判断部21は、状態変化が「通信中」から「通信不可能」への移行した場合であって、切り替えを行わない場合には、切り替え指示部23に、「通信不可能」と判断した通信インタフェースを通知する。又、切り替え判断部21は、通信開始時には、切り替え指示部23に、選択した通信インタフェースを通知し、その通信インタフェースを用いて通信を開始するように指示する。更に、切り替え判断部21は、セッションマネージャ30からの通知に基づいて、切り替え指示部23に指示する。
【0054】
切り替え指示部23は、使用通信インタフェースの切り替えを行う。具体的には、切り替え指示部23は、切り替え判断部21から通知された切り替えの内容に基づいて切り替えを行う。切り替え指示部23は、新しく選択した切り替え先の通信インタフェースを起動し、状態を「通信中」に変更する。切り替えの対象となる現在使用中の通信インタフェースを終了させ、通信可能な通信インタフェースについては状態を「通信待機」に変更する。尚、切り替えを行わない場合でも、切り替え指示部23は、「通信不可能」と判断された通信インタフェースについては終了する。又、切り替え指示部23は、通信開始時には、選択した通信インタフェースを起動し、「通信中」に変更する。更に、切り替え指示部23は、セッションマネージャ30からの通知に基づく指示により、通信インタフェース(#1)11〜通信インタフェース(#N)1nを起動したり、終了したりする。
【0055】
アドレス変換ファンクション部40は、仮想インタフェース41と、アドレス切り替え部42と、バッファ43とを備える。仮想インタフェース41は、ネットワーク層よりも上位層から、相手装置であるノードB200に送信するデータを取得し、相手装置であるノードB200から送信されたデータを上位層に提供する。仮想インタフェース41は、アプリケーション部(#1)51〜アプリケーション部(#N)5nから、ノードB200に送信するデータを取得し、ノードB200から送信されたデータを、アプリケーション部(#1)51〜アプリケーション部(#N)5nに提供する。
【0056】
仮想インタフェース41には、アドレスが付与されている。仮想インタフェース41には、使用通信インタフェースに依存しない固定の仮想アドレス「add_V」が付与されている。尚、仮想インタフェース41が、データの取得、提供を行う上位層はアプリケーション層に限られず、ネットワーク層よりも上位層のトランスポート層、セション層、プレゼンテーション層のいずれであってもよい。
【0057】
アドレス切り替え部42は、データに付加されているアドレスを、使用通信インタフェースのアドレスと、仮想インタフェース41の仮想アドレスとの間で変換する変換手段である。アドレス切り替え部42は、使用通信インタフェースの切り替えにあわせて、変換する使用通信インタフェースのアドレスを、通信インタフェース(#1)11〜通信インタフェース(#N)1nのアドレス「add_A1」〜「add_An」間で切り替える。即ち、使用通信インタフェースが切り替えられると、アドレス切り替え部42は、仮想インタフェース41の仮想アドレスの変換相手となる使用通信インタフェースのアドレスを、切り替え先の通信インタフェースのアドレスに変更する。
【0058】
アドレス切り替え部42は、複数の通信インタフェース(#1)11〜通信インタフェース(#N)1nのアドレス「add_A1」〜「add_An」を保持する。アドレス切り替え部42は、保持している各通信インタフェースのアドレスの中から、使用通信インタフェースのアドレスを選択し、仮想インタフェース41の仮想アドレスとの変換を行う。尚、アドレス切り替え部42は、通信インタフェース切り替えマネージャ20がアプリケーション毎に使用通信インタフェースを選択したり、切り替えを行ったりする場合には、アプリケーション毎の使用通信インタフェースのアドレスと仮想インタフェース41の仮想アドレスとの間で変換を行う。
【0059】
更に、アドレス切り替え部42は、使用通信インタフェースのアドレスと仮想インタフェース41の仮想アドレスとを変換することに伴って、変更が必要なアドレス以外の通信パラメータも変換する。又、アドレス切り替え部42は、使用通信インタフェースが切り替えられた場合にも、使用通信インタフェースが切り替えられることに伴って変更が必要なアドレス以外の通信パラメータを変換する。尚、アドレス切り替え部42は、ノードB200のアドレスについては変換しない。アドレス切り替え部42は、仮想インタフェース41やバッファ43からデータを取得して、通信パラメータを変換する。アドレス切り替え部42は、通信パラメータを変換したデータをバッファ43や仮想インタフェース41に入力する。
【0060】
このようにして、アドレス変換ファンクション部40は、仮想インタフェース41を提供し、切り替えにより変化する使用通信インタフェースのアドレスを含む通信パラメータと、切り替えにより変化しない仮想インタフェース41の仮想アドレスを含む通信パラメータとを、ネットワーク層において通信ができるように変換する。そのため、アドレス変換ファンクション部40は、上位層であるアプリケーション部(#1)51〜アプリケーション部(#N)5nに対して、常に変わらない仮想インタフェース41の仮想アドレスで通信を行っているように見せることができる。よって、アドレス変換ファンクション部40は、ネットワーク層において、ノードA100の上位層とノードB200の上位層との間で行っている通信、即ち、上位層間のセッションの維持を保証する。
【0061】
バッファ43は、アプリケーション部(#1)51〜アプリケーション部(#N)5nがノードB200に送信するデータを、アドレス切り替え部42から入力され、保持する。バッファ43は、通信インタフェース(#1)11〜通信インタフェース(#N)1nが受信したデータを、通信インタフェース(#1)11〜通信インタフェース(#N)1nから入力され、保持する。
【0062】
セッションマネージャ30は、使用通信インタフェースの切り替えに伴う処理を制御する。更に、セッションマネージャ30は、アドレス変換ファンクション部40におけるアドレスの変換を制御する。そのために、セッションマネージャ30は、アドレス変換ファンクション部40が行うアドレスの変換や、変換する使用通信インタフェースのアドレスの切り替えに関する詳細な動作内容を把握し、使用通信インタフェースを切り替えるときのアドレス変換ファンクション部40の処理を制御する。
【0063】
セッションマネージャ30は、切り替え指示部31と、エージェント32と、タイマ33とを備える。切り替え指示部31は、通信インタフェース切り替えマネージャ20の切り替え判断部21から、切り替えの実行とその切り替えの内容の通知を受ける。又、切り替え指示部31は、通信開始時に、切り替え判断部21から、選択した通信インタフェースの通知を受ける。そして、切り替え指示部31は、エージェント32に、切り替えの内容や選択した通信インタフェースを通知し、使用通信インタフェースの切り替え時や通信開始時の処理を行うように指示する。
【0064】
又、切り替え指示部31は、ノードA100の上位層とノードB200の上位層との間のセッションの維持を制御する。具体的には、切り替え指示部31は、切り替え判断部21から、通信の中断を通知された場合には、エージェント32にセッションの切断を指示する。又、切り替え指示部31は、切り替え判断部21から、通信の切断を通知された場合、即ち、切り替え判断部21が、通信が切断されたと判断した場合であって、その原因が相手装置であるノードB200にあると判断した場合には、タイマ33を起動する。タイマ33は、セッションを維持するセッション維持時間を計測する。
【0065】
又、切り替え指示部31は、エージェント32から、新たなデータの受信の通知を受ける。切り替え指示部31は、タイマ33のタイマ値が満了する以前に、即ち、セッション維持時間内に、エージェント32から新たなデータの受信の通知を受けた場合には、セッションを維持すると判断する。一方、切り替え指示部31は、タイマ33のタイマ値が満了しても、エージェント32から新たなデータの受信の通知を受けなかった場合、即ち、セッション維持時間内にエージェント32から新たなデータの受信の通知を受けなかった場合、セッションを切断し、通信を中断すると判断する。そして、切り替え指示部31は、エージェント32にセッションの切断を指示する。
【0066】
エージェント32は、切り替え指示部31から、切り替えの内容や選択した通信インタフェースの通知を受ける。そして、エージェント32は、使用通信インタフェースの切り替え時や通信開始時の処理を行う。
【0067】
まず、エージェント32は、切り替え先の新しい使用通信インタフェースにセキュリティ上安全に切り替え、これまでの通信を継続するためのネゴシエーションをノードB200と行う。エージェント32は、切り替え前である通信開始時に、ノードA100の上位層とノードB200の上位層との間のセッションを証明する証明書を生成する。セッションの証明書は、使用通信インタフェースを切り替えても、同一のセッションを扱う同一のノードA100、ノードB200であることを証明する。よって、セッションの証明書は、切り替えの前後で通信装置は同一であることを証明する証明情報や、相手装置が同一であることを証明する相手装置証明情報となる。
【0068】
エージェント32は、セッションの証明書を、ノードB200と共有する共有情報として生成する。エージェント32は、ノードA100とノードB200のみが知り得る共有情報を生成する。エージェント32は、生成した共有情報を保持する。エージェント32は、共有情報をノードA100自体は同一であることを証明する証明情報として用いる。エージェント32は、使用通信インタフェースを切り替える際に、切り替え先の新しい使用通信インタフェースを経由して、ノードB200に共有情報を提供する。そして、エージェント32は、ノードB200の認証を受け、通信を継続する。このように、エージェント32は、使用通信インタフェースを切り替える際に、相手装置であるノードB200に、切り替えの前後でノードA100自体は同一であることを証明する証明情報を提供する証明情報提供手段として機能する。
【0069】
エージェント32は、通信開始時に、アドレス変換ファンクション部40に、仮想インタフェース41の仮想アドレスの変換相手となる使用通信インタフェースのアドレスを通知し、変換を指示する。エージェント32は、使用通信インタフェースを切り替える際に、アドレス変換ファンクション部40に、仮想アドレスの変換相手となる使用通信インタフェースのアドレスを、新しい切り替え先の通信インタフェースのアドレスに変更するように指示する。尚、エージェント32は、通信インタフェース切り替えマネージャ20がアプリケーション毎に使用通信インタフェースを選択したり、切り替えを行ったりする場合には、アプリケーション毎の使用通信インタフェースのアドレスと仮想インタフェース41の仮想アドレスとの間の変換を指示する。
【0070】
又、エージェント32は、通信インタフェース切り替えマネージャ20が行う使用通信インタフェースの切り替えを、相手装置であるノードB200に通知する通知手段としても機能する。エージェント32は、通信インタフェース切り替えマネージャ20がアプリケーション毎に使用通信インタフェースを選択したり、切り替えを行ったりする場合には、アプリケーション毎の使用通信インタフェースの切り替えを、ノードB200に通知する。具体的には、エージェント32は、切り替えをノードB200に要求し、新しい切り替え先の通信インタフェースのアドレスを通知する。更に、エージェント32は、切り替えの際に、アプリケーション部(#1)51〜アプリケーション部(#N)5nに代わって、ノードB200にデータの続きを要求する。
【0071】
エージェント32は、アドレス変換ファンクション部40のバッファ43を管理する。エージェント32は、バッファ43が保持しているデータを把握しておく。そして、エージェント32は、バッファ43に保持されているデータの続きをノードB200に要求する。又、エージェント32は、バッファ43に新しいデータが到着すると、切り替え指示部31に、ノードB200からのデータの受信を通知する。
【0072】
エージェント32は、切り替え指示部31より、ノードA100の上位層とノードB200の上位層との間のセッションの切断を指示される。エージェント32は、アドレス切り替えファンクション部40に、そのセッションに関する処理を終了するように指示して、セッションを切断する。尚、エージェント32は、切り替え指示部31に、新たなデータの受信を通知する。エージェント32は、共有情報の生成や提供、データの続きの要求を行う際に、制御に必要な情報を通信インタフェース(#1)11〜通信インタフェース(#N)1nを介して、ノードB200と送受信する。
【0073】
〔ノードB〕
ノードB200は、サーバなどの固定ノードである。図2に示すように、ノードBは、通信インタフェース60と、セッションマネージャ70と、アドレス変換ファンクション部80と、複数のアプリケーション部(#1)91〜アプリケーション部(#N)9nとを備える。
【0074】
ノードB200は、単一の通信インタフェース60を備える。そのため、ノードA100と異なり、通信インタフェース切り替えマネージャ20を備えない。通信インタフェース60は、データを相手装置であるノードA100と送受信する。通信インタフェース60には、アドレス「add_B」が付与されている。通信インタフェース60は、ノードA100に送信するデータを、アドレス変換ファンクション部80から取得する。通信インタフェース60は、ノードA100から受信したデータを、アドレス変換ファンクション部80に入力する。又、通信インタフェース60は、セッションマネージャ70から制御に必要な情報の入力を受け、ノードA100に送信したり、制御に必要な情報をノードA100から受信し、セッションマネージャ70に入力したりする。
【0075】
アプリケーション部(#1)91〜アプリケーション部(#N)9nは、アプリケーション層においてアプリケーションを行う。各アプリケーション部(#1)91〜アプリケーション部(#N)9nは、それぞれのアプリケーション(#1)〜(#N)を行う。アプリケーション部(#1)91〜アプリケーション部(#N)9nは、ノードA100に送信するデータを、アドレス変換ファンクション部80に入力する。アプリケーション部(#1)91〜アプリケーション部(#N)9nは、ノードA100から送信されたデータを、アドレス変換ファンクション部80から取得する。
【0076】
セッションマネージャ70と、アドレス変換ファンクション部80は、プロトコルスタック中のネットワーク層において処理を行う。セッションマネージャ70と、アドレス変換ファンクション部80は、例えば、ノードB200が、セッションマネージャ70と、アドレス変換ファンクション部80として機能するミドルウェアをネットワーク層に実装し、そのミドルウェアを実行することにより実現される。
【0077】
アドレス変換ファンクション部80は、仮想インタフェース81と、アドレス切り替え部82とを備える。仮想インタフェース81は、ネットワーク層よりも上位層から、相手装置であるノードA100に送信するデータを取得し、相手装置であるノードA100から送信されたデータを上位層に提供する。仮想インタフェース81は、アプリケーション部(#1)91〜アプリケーション部(#N)9nから、ノードA100に送信するデータを取得し、ノードA100から送信されたデータを、アプリケーション部(#1)91〜アプリケーション部(#N)9nに提供する。
【0078】
仮想インタフェース81には、アドレスが付与されている。ノードB200は、単一の通信インタフェース60しか持たないため、使用通信インタフェースは常に一つである。そのため、仮想インタフェース81に、使用通信インタフェースに依存しない固定の仮想アドレスを付与する必要がない。よって、仮想インタフェース81には、通信インタフェース60と同一のアドレス「add_B」が付与されている。尚、仮想インタフェース81が、データの取得、提供を行う上位層はアプリケーション層に限られず、ネットワーク層よりも上位層のトランスポート層、セション層、プレゼンテーション層のいずれであってもよい。
【0079】
アドレス切り替え部82は、データに付加されている相手装置であるノードA100のアドレスを、ノードA100が使用通信インタフェースを切り替えた後の使用通信インタフェースのアドレス(以下「切り替え先アドレス」という)と、通信開始時のノードA100の使用通信インタフェースのアドレス(以下「開始時アドレス」という)との間で変換する相手アドレス変換手段である。
【0080】
アドレス切り替え部82は、ノードA100が行う使用通信インタフェースの切り替えにあわせて、変換する切り替え先アドレスを変更する。即ち、ノードA100の使用通信インタフェースが切り替えられると、アドレス切り替え部82は、開始時アドレスの変換相手となる切り替え先アドレスを、切り替え先の通信インタフェース(#1)11〜通信インタフェース(#N)1nのアドレスに変更する。尚、アドレス切り替え部82は、ノードA100がアプリケーション毎に使用通信インタフェースを切り替える場合には、アプリケーション毎の切り替え先アドレスとアプリケーション毎の開始時アドレスとの間の変換を行う。
【0081】
更に、アドレス切り替え部82は、切り替え先アドレスと開始時アドレスとを変換することに伴って、変更が必要なアドレス以外の通信パラメータも変換する。又、アドレス切り替え部42は、ノードA100の使用通信インタフェースが複数回切り替えられ、切り替え先アドレスが切り替えられることに伴って変更が必要なアドレス以外の通信パラメータを変換する。アドレス切り替え部42は、通信インタフェース60や仮想インタフェース81からデータを取得して、通信パラメータを変換する。アドレス切り替え部82は、通信パラメータを変換したデータを通信インタフェース60や仮想インタフェース81に入力する。
【0082】
尚、アドレス切り替え部82は、ノードB200のアドレスについては変換しない。又、アドレス切り替え部82は、ノードA100が使用通信インタフェースを切り替えない間は、ノードA100のアドレスについても変換しない。その間は、アドレス切り替え部82は、仮想インタフェース81と通信インタフェース60との間で、データの受け渡しを行うだけとなる。このように複数の通信インタフェースを備えない通信装置では、仮想インタフェース81のアドレスとして、通信インタフェース60と同一のアドレスを用い、自身のアドレスについては変換を行わないことにより、制御負荷を軽減できる。
【0083】
このようにして、アドレス変換ファンクション部80は、仮想インタフェース81を提供し、相手装置であるノードA100が使用通信インタフェースの切り替えを行うことにより変化する切り替え先アドレスを含む通信パラメータと、開始時アドレスを含む通信パラメータとを、ネットワーク層において通信ができるように変換する。そのため、アドレス変換ファンクション部80は、上位層であるアプリケーション部(#1)81〜アプリケーション部(#N)8nに対して、ノードA100のアドレスが常に変わらないように見せることができる。よって、アドレス変換ファンクション部80は、ネットワーク層において、ノードA100の上位層とノードB200の上位層との間で行っている通信、即ち、上位層間のセッションの維持を保証する。即ち、ノードB200は、開始時アドレスを、ノードA100の使用通信インタフェースの切り替えに依存しない固定の仮想アドレスとして用いることにより、ノードA100との通信を継続できる。
【0084】
セッションマネージャ70は、ノードA100が行う使用通信インタフェースの切り替えに伴う処理を制御する。更に、セッションマネージャ70は、アドレス変換ファンクション部80におけるアドレスの変換を制御する。セッションマネージャ70は、制御部71と、エージェント72と、タイマ73とを備える。
【0085】
制御部71は、ノードB200の上位層とノードA100の上位層との間のセッションの維持を制御する。具体的には、制御部71は、通信の切断を判断する。制御部71は、通信中にデータの送受信が突然途切れ、通信インタフェース60の故障が原因ではないと判断した場合、制御部71は、切断時間を計測する。又、通信インタフェース60が無線の場合には、通信インタフェース60の電波強度や在圏状況などの通信環境の状況も通信インタフェース60から取得する。制御部71は、切断時間に基づいて通信が切断されたか否かを判断する。通信インタフェース60が無線の場合には、通信環境の状況と切断時間に基づいて、通信が切断されたか否かを判断する。
【0086】
制御部71は、通信が切断されたと判断すると、タイマ73を起動する。タイマ73は、セッション維持時間を計測する。又、制御部71は、エージェント72からネゴシエーションに関する情報や新たなデータの受信の通知を受ける。制御部71は、タイマ73のタイマ値が満了する以前に、エージェント72から受信の通知を受けた場合には、タイマ73を停止する。一方、制御部71は、タイマ73のタイマ値が満了しても、エージェント72から受信の通知を受けなかった場合、セッションを切断すると判断する。そして、制御部71は、エージェント72にセッションの切断を指示する。
【0087】
エージェント72は、相手装置であるノードA100が使用通信インタフェースを切り替えた時や通信開始時の処理を行う。まず、エージェント72は、切り替え先の新しい使用通信インタフェースにセキュリティ上安全に切り替え、これまでの通信を継続するためのネゴシエーションをノードA100と行う。エージェント72は、切り替え前である通信開始時に、ノードB200の上位層とノードA100の上位層との間のセッションを証明する証明書を生成する。エージェント72は、セッションの証明書を、ノードA100と共有する共有情報として生成する。エージェント72は、ノードB200とノードA100のみが知り得る共有情報を生成する。エージェント72は、生成した共有情報を保持する。エージェント72は、共有情報を相手装置であるノードA100自体は同一であることを証明する相手装置証明情報として用いる。
【0088】
エージェント72は、ノードA100から、使用通信インタフェースの切り替えの通知を受ける。エージェント72は、ノードA100に対して共有情報を要求する。そして、エージェント72は、通信インタフェース60を介して、ノードA100から共有情報を取得し、取得した共有情報に基づいてノードA100を認証する。このように、エージェント72は、相手装置であるノードA100が使用通信インタフェースを切り替える際に、切り替えの前後でノードA100自体は同一であることを証明する相手装置証明情報を取得し、取得した相手装置証明情報に基づいてノードA100を認証する認証手段として機能する。
【0089】
エージェント72は、ノードA100から、使用通信インタフェースの切り替えの通知を受けた際に、アドレス変換ファンクション部80に、切り替え先アドレスと開始時アドレスとの変換を指示する。エージェント72は、ノードA100の使用通信インタフェースが複数回切り替えられる場合には、切り替え先アドレスの変更を指示する。尚、エージェント72は、ノードA100がアプリケーション毎に使用通信インタフェースを切り替える場合には、アプリケーション毎の切り替え先アドレスとアプリケーション毎の開始時アドレスとの間の変換を指示する。
【0090】
エージェント72は、制御部71より、ノードB200の上位層とノードA100の上位層との間のセッションの切断を指示される。エージェント72は、アドレス切り替えファンクション部80に、そのセッションに関する処理を終了するように指示して、セッションを切断する。尚、エージェント72は、切り替え指示部71に、ネゴシエーションに関する情報や新たなデータの受信を通知する。又、エージェント72は、共有情報の生成や要求、取得を行う際や、使用通信インタフェースの切り替えの通知を受ける際など、制御に必要な情報を通信インタフェース60を介して、ノードA100と送受信する。
【0091】
次に、ノードA100とノードB200とが行う通信方法について、通信開始時、使用通信インタフェース切り替え時、通信切断発生時に分けて説明する。
【0092】
〔通信開始時〕
ノードA100の切り替え判断部21は、状態が「通信待機」である通信インタフェース(#1)11〜通信インタフェース(#N)1nの中から、メモリ22が保持する切り替えポリシーに基づいて、使用通信インタフェースを選択する。通信インタフェース(#1)11が選択された場合を例にとって説明する。切り替え判断部21から、使用通信インタフェースの通知を受けた切り替え指示部23は、選択された通信インタフェース(#1)11を起動し、「通信中」にする。
【0093】
又、切り替え判断部21から、使用通信インタフェースの通知を受けた切り替え指示部31は、エージェント32に選択された通信インタフェース(#1)11を通知する。そして、ノードA100のエージェント32と、ノードB200のエージェント72との間で、共有情報として、ノードA100とノードB200との間のセッションの証明書を生成するネゴシエーションを行う。以下、通信開始時に行うネゴシエーションを「オプション1」という。このとき、ノードA100は、通信インタフェース(#1)11を用いて通信する。
【0094】
図5に示すように、まず、ノードA100、ノードB200間において暗号化通信を行うために、鍵交換を行う。具体的には、通信を開始させるノードA100が開始を要求し、3ウェイハンドシェークによりノードB200との間に通信路を確立し、セッションを開始する。ノードA100のエージェント32は、ノードB200に鍵交換を要求する。このとき、エージェント32は、鍵交換のためのパラメータ(以下「鍵交換パラメータ」という)を提案し、ノードA100のノード識別子をノードB200に通知する(S101)。
【0095】
ノードB200のエージェント72は、共有情報を生成するか否かを判断する。ノードB200は、オプション1を処理する機能を備えるため、共有情報を生成すると判断する。尚、オプション1を処理する機能を備えないノードの場合には、共有情報を生成しないと判断し、オプション1の処理を中止することをノードA100に通知する。ノードB200のエージェント72は、ノードA100から提案された鍵交換パラメータの中から鍵交換パラメータを選択する。エージェント72は、選択した鍵交換パラメータと、その鍵交換パラメータに合致するノードA100に公開する情報を、ノードA100に送信する(S102)。
【0096】
ノードA100のエージェント32は、ノードB200が選択した鍵交換パラメータに合致するノードB200に公開する情報を、ノードB200に送信する(S103)。そして、ノードA100のエージェント32と、ノードB200のエージェント72は、お互いに公開した情報に基づいて、鍵交換アルゴリズムを用いて共有鍵を生成する(S104)。
【0097】
共有鍵生成後のオプション1の処理、ステップ(S105)〜(S109)は、生成した共有鍵を用いた暗号化通信により行われる。ノードA100のエージェント32は、共有情報である証明書の生成に用いる情報(以下「生成元情報」という)を、ノードB200に送信する。生成元情報としては、通信装置を識別する通信装置識別情報、相手装置を識別する相手装置識別情報、通信装置のユーザを識別する通信装置ユーザ識別情報、相手装置のユーザを識別する相手装置ユーザ識別情報、通信装置の通信インタフェースのアドレス、通信装置の仮想インタフェースの仮想アドレス、相手装置の通信インタフェースのアドレス、相手装置の仮想インタフェースの仮想アドレス、データを識別するデータ識別情報、又は、通信装置と相手装置との共有鍵の少なくとも1つを用いることができる。
【0098】
そのため、例えば、ノードA100のエージェント32は、通信装置識別情報であるノードA100のドメイン名などのノード識別子、ノードA100の使用通信インタフェースのアドレスや仮想インタフェース41の仮想アドレスなどのIPアドレス、データ識別情報であるノードA100が送信するパケットの開始シーケンスナンバー、共有鍵の少なくとも1つを選択し、生成元情報としてノードB200に送信する(S105)。
【0099】
ノードB200のエージェント72も、ノードA100と同様に生成元情報をノードA100に送信する。例えば、ノードB200のエージェント72は、相手装置識別情報であるノードB200のノード識別子、ノードB200の通信インタフェース60のアドレス、ノードB200が送信するパケットの開始シーケンスナンバー、共有鍵の少なくとも1つを選択し、生成元情報としてノードA100に送信する(S106)。尚、ノードA100のエージェント32と、ノードB200のエージェント72は、ネゴシエーションにより生成元情報を選択し、選択した生成元情報を送信しあうようにしてもよい。
【0100】
ノードA100のエージェント32は、ノードB200に送信したノードA100の生成元情報と、ノードB200から受信したノードB200の生成元情報を用いてセッションの証明書を生成する。具体的には、エージェント32は、ノードA100の生成元情報とノードB200の生成元情報を入力値として、一方向関数に入力し、出力値を得る。得られた出力値が証明書、即ち、共有情報となる。一方向関数としては、例えば、ハッシュ関数などを用いることができる。ノードA100のエージェント32は、得られた出力値を共有情報としてノードB200に送信する(S107)。
【0101】
同様に、ノードB200のエージェント72は、ノードA100に送信したノードB200の生成元情報と、ノードA100から受信したノードA100の生成元情報を用いてセッションの証明書を生成する。エージェント72は、ノードA100の生成元情報とノードB200の生成元情報を入力値として、一方向関数に入力して得た出力値を、共有情報としてノードA100に送信する(S108)。このようにして、ノードA100のエージェント32と、ノードB200のエージェント72は、お互いに共有情報を生成し、生成した共有情報を交換しあう。そして、ノードA100のエージェント32と、ノードB200のエージェント72は、お互いに生成した共有情報が一致し、誤りがないことを確認する。最後に、エージェント32,72は、共有情報に有効期限を設定する(S109)。以上の処理により、オプション1が終了する。
【0102】
エージェント32,72は、生成した共有情報を保持しておく。エージェント72は、生成したノードA100との共有情報を、ステップ(S101)において通知されたノードA100のノード識別子と対応付けて保持しておく。
【0103】
このように、ノードA100、ノードB200間で生成した共有情報を交換する際には、予め鍵交換アルゴリズムを用いて生成した共有鍵で、ノードA100、ノードB200間の通信を暗号化する。そして、ノードA100、ノードB200は、共有情報をその通信路上で交換する。
【0104】
エージェント32,72は、オプション1終了後の通信について、そのまま暗号化通信を行うか、否かを決定する。エージェント32,72は、そのまま暗号化通信を行う場合には、同じ共有鍵をそのまま使用するか、更に強力な共有鍵を生成し、ノードA100、ノードB200間で交換して使うかについても決定する。
【0105】
そして、オプション1終了後、図6に示すようにして、ノードA100の通信インタフェース(#1)11と、ノードB200の通信インタフェース60との間でデータの送受信を開始し、ノードA100のアプリケーション部(#1)51〜アプリケーション部(#N)5nと、ノードB200のアプリケーション部(#1)91〜アプリケーション部(#N)9nとの間でセッションを実行する。
【0106】
仮想インタフェース41は、アプリケーション部(#1)51〜アプリケーション部(#N)5nから、ノードB200に送信するデータを取得する。仮想インタフェース41は、ノードA100のアドレス(以下「ノードAアドレス」という)として仮想インタフェース41の仮想アドレス「add_V」を、ノードB200のアドレス(以下「ノードBアドレス」という)として仮想インタフェース81のアドレス「add_B」を用いたヘッダをデータに付加してパケット1aを作成し、アドレス切り替え部42に入力する。
【0107】
エージェント32は、使用通信インタフェースが通信インタフェース(#1)11であることをアドレス切り替え部42に通知する。アドレス切り替え部42は、パケット1aを取得し、ノードAアドレスを、仮想アドレス「add_V」から、エージェント32から通知された通信インタフェース(#1)11のアドレス「add_A1」に変換し、パケット1bに変換する。アドレス切り替え部42は、アドレスを変換したパケット1bをバッファ43に入力する。使用通信インタフェースである通信インタフェース(#1)11は、バッファ43からパケット1bを取得し、ノードB200に送信する。
【0108】
ノードB200の通信インタフェース60は、パケット1bを受信し、アドレス切り替え部82に入力する。アドレス切り替え部82は、通信インタフェース60から取得したパケット1bを、そのまま仮想インタフェース81に入力する。仮想インタフェース81は、パケット1bからデータを取りだし、アプリケーション部(#1)91〜アプリケーション部(#N)9nに提供する。
【0109】
又、仮想インタフェース81は、アプリケーション部(#1)91〜アプリケーション部(#N)9nから、ノードA100に送信するデータを取得する。仮想インタフェース81は、ノードAアドレスとして、ノードA100から受信したパケットに含まれているノードAアドレス「add_A1」を用い、ノードBアドレスとして仮想インタフェース81のアドレス「add_B」を用いたヘッダをデータに付加してパケット1bを作成し、アドレス切り替え部82に入力する。この通信開始時に受信したノードA100からのパケット1bに含まれるノードAアドレス「add_A1」が、開始時アドレスとなる。
【0110】
アドレス切り替え部82は、取得したパケット1bをそのまま通信インタフェース60に入力する。通信インタフェース60は、パケット1bをノードA100に送信する。ノードA100の通信インタフェース(#1)11は、パケット1bを受信し、バッファ43に入力する。アドレス切り替え部42は、バッファ43からパケット1bを取得し、パケット1bのノードAアドレスを、「add_A1」から仮想アドレス「add_V」に変換し、パケット1aに変換する。
アドレス切り替え部42は、パケット1aを仮想インタフェース41に入力する。仮想インタフェース41は、パケット1aからデータを取りだし、アプリケーション部(#1)51〜アプリケーション部(#N)5nに提供する。
【0111】
通信継続中に、共有情報の有効期限が経過すると、ノードA100、ノードB200は、図7に示す手順に従い、共有情報を更新するネゴシエーションを行う。以下、共有情報更新時に行うネゴシエーションを「オプション2」という。ノードA100のエージェント32は、共有情報の有効期限が経過すると、共有情報であるセッションの証明書の更新を要求する(S201)。要求を受けたノードB200のエージェント72は、新たな共有鍵を生成するための鍵交換パラメータを通知すると共に、その鍵交換パラメータに合致するノードA100に公開する情報を、ノードA100に送信する(S202)。
【0112】
ノードA100のエージェント32は、ノードB200より通知された新たな鍵交換パラメータに合致するノードB200に公開する情報を、ノードB200に送信する(S203)。そして、ノードA100のエージェント32と、ノードB200のエージェント72は、お互いに新たに公開した情報に基づいて、鍵交換アルゴリズムを用いて新たな共有鍵を生成する(S204)。
【0113】
新たな共有鍵生成後のオプション2の処理、ステップ(S205)〜(S209)は、生成した新たな共有鍵を用いた暗号化通信により行われる。ノードA100のエージェント32と、ノードB200のエージェント72は、図5に示したオプション1のステップ(S105)〜(S109)と同様にして、ステップ(S205)〜(S209)の処理を行う。
【0114】
即ち、ノードA100のエージェント32と、ノードB200のエージェント72は、お互いに生成元情報を交換する。そして、エージェント32,72は、ノードA100の生成元情報とノードB200の生成元情報を入力値として、一方向関数に入力し、出力値を得る。得られた出力値が新たな証明書、即ち、新たな共有情報となる。ノードA100のエージェント32と、ノードB200のエージェント72は、生成した新たな共有情報を交換しあい、お互いに生成した共有情報が一致し、誤りがないことを確認する。最後に、エージェント32,72は、新たな共有情報に有効期限を設定する。
【0115】
エージェント32,72は、新たに生成した共有情報を保持しておく。エージェント72は、新たに生成したノードA100との共有情報を、通信開始時に通知されたノードA100のノード識別子と対応付けて保持しておく。
【0116】
以上の処理により、オプション2が終了する。エージェント32,72は、オプション1終了後の場合と同様に、オプション2終了後の通信について、そのまま暗号化通信を行うか否かや、用いる共有鍵について決定する。そして、ノードA100とノードB200は通信を再開する(S210)。尚、図7では、ノードA100が更新を要求する場合を例にとって説明したが、要求はノードA100、ノードB200のいずれが行ってもよい。尚、ノードA100がアプリケーション毎に使用通信インタフェースを選択する場合には、ノードA100は、これらの使用通信インタフェースの選択、通信インタフェースの起動、オプション1、データの送受信、オプション2などの処理を、アプリケーション毎に行う。
【0117】
〔使用通信インタフェース切り替え時〕
通信開始後、例えば、ノードA100のユーザが、ノードA100を持って移動することで、ノードA100が移動する。ノードA100の移動により、通信インタフェース(#1)11〜通信インタフェース(#N)1nの在圏状況や電波強度などの通信環境が変化する。そのため、状態が「通信不可能」から「通信待機」に変化する通信インタフェースや、状態が「通信待機」や「通信中」から「通信不可能」に変化する通信インタフェースが発生する。ノードA100の切り替え判断部21は、通信インタフェース(#1)11〜通信インタフェース(#N)1nの状態変化を検出し、状態が「通信待機」になり、新たに利用可能な通信インタフェースを検出した場合や、「通信中」の通信インタフェース(#1)11が「通信不可能」になった場合や、「通信不可能」になると予測した場合には、使用通信インタフェースを選択する。「通信不可能」になった場合については、通信切断発生時において説明し、ここでは、新たに利用可能な通信インタフェースが検出された場合や「通信不可能」になると予測した場合について説明する。
【0118】
切り替え判断部21は、状態が「通信待機」である通信インタフェース(#1)11〜通信インタフェース(#N)1nの中から、メモリ22が保持する切り替えポリシーに基づいて、使用通信インタフェースを選択する。切り替え判断部21は、選択した使用通信インタフェースが、現在使用している通信中の通信インタフェース(#1)11と同一の場合には、使用通信インタフェースの切り替えを行わないと判断する。そして、ノードA100は、通信インタフェース(#1)11を使用した通信をそのまま継続する。
【0119】
一方、切り替え判断部21は、選択した使用通信インタフェースが、現在使用している通信中の通信インタフェース(#1)11と異なる場合には、使用通信インタフェースの切り替えを行うと判断する。ここでは、切り替え判断部21が、通信インタフェース(#2)12を選択し、使用通信インタフェースの切り替えを行うと判断した場合を例にとって説明する。切り替え判断部21は、セッションマネージャ30と切り替え指示部23に、切り替えの実行と、切り替えの対象が通信インタフェース(#1)11であり、切り替え先が通信インタフェース(#2)12であることを通知する。
【0120】
通知を受けると、図8に示すように、切り替え指示部23は、切り替え先の通信インタフェース(#2)12を起動する。そして、ノードA100のエージェント32が、ノードB200に使用通信インタフェースの切り替えを要求する。
要求を受けたノードB200のエージェント72は、ノードA100に共有情報を要求する。そして、ノードA100のエージェント32が、切り替え先の通信インタフェース(#2)12を経由して、ノードB200に、通信開始時や共有情報更新時に生成し、保持している共有情報を提供する。
【0121】
具体的には、エージェント32は、ノードAアドレスとして、通信インタフェース(#2)12のアドレス「add_A2」を、ノードBアドレスとして通信インタフェース60のアドレス「add_B」を用いたヘッダを共有情報に付加してパケット1cを作成し、通信インタフェース(#2)12に入力する。通信インタフェース(#2)12は、ノードB200にパケット1cを送信する。このように、共有情報を提供するパケット1cにおけるノードAアドレスを、切り替え先の通信インタフェース(#2)12のアドレスとすることにより、エージェント32は、切り替え先の通信インタフェース(#2)12のアドレス「add_A2」を、ノードB200に通知する。
【0122】
ノードB200の通信インタフェース60は、パケット1cを受信し、エージェント72に入力する。エージェント72は、取得した共有情報に基づいてノードA100を認証する。又、エージェント72は、パケット1cから、切り替え先の通信インタフェース(#2)12のアドレス「add_A2」を取得する。
【0123】
このエージェント32,72間で共有情報を用いた認証を行っている間も、ノードA100の現在の使用通信インタフェースである通信インタフェース(#1)11と、ノードB200の通信インタフェース60は、図6と同様にして、データを含むパケット1bの送受信を行う。
【0124】
このように、使用通信インタフェースを切り替える際には、共有情報を用いて認証するネゴシエーションをエージェント32,72間で行う。以下、使用通信インタフェース切り替え時に行うネゴシエーションを「オプション3」という。オプション3は、詳細には図9に示す手順に従って行う。ノードA100の切り替え指示部23が新しい使用通信インタフェースとなる通信インタフェース(#2)12を起動させる(S301)。ノードA100のエージェント32は、通信中の使用通信インタフェースの切り替えをノードB200に要求する。このとき、エージェント32は、ノードA100のノード識別子と共に要求を送信する(S302)。
【0125】
ノードB200のエージェント72は、通知されたノード識別子によって該当するセッションを検知し、通信相手を把握する。そして、共有情報であるセッションの証明書を要求する(S303)。ノードA100のエージェント32は、共有情報の更新前であればオプション1、共有情報の更新後であればオプション2において生成した共有鍵で、共有情報であるセッションの証明書を暗号化して、ノードB200に送信する(S304)。
【0126】
ノードB200のエージェント72は、ノードA100から受信した共有情報を共有鍵で復号する。そして、エージェント72は、エージェント72が、ステップ(S302)において通知されたノード識別子と対応付けて保持している共有情報と、復号して得られた共有情報とが一致するか否かを判断する。エージェント72は、両者が一致する場合、使用通信インタフェースの切り替えの前後でノードA100自体は同一であり、通信インタフェース(#2)12は、正当な通信相手であると判断する。そして、エージェント72は、新しい通信インタフェース(#2)12を用いた通信を許可する。エージェント72は、使用通信インタフェースを通信インタフェース(#2)12に切り替えることの許可を、認証結果としてノードA100に通知する(S305)。ステップ(S305)も暗号化通信により行われる。
【0127】
以上の処理により、オプション3が終了する。オプション3終了後、使用通信インタフェースの切り替え処理が行われ(S306)、切り替え先の通信インタフェース(#2)12を用いた通信が開始される(S307)。尚、ステップ(S305)において、エージェント72は、提供された共有情報を共有鍵で復号できない場合、提供された共有情報がエージェント72が保持する共有情報と一致しない場合には、新しい通信インタフェース(#2)12を用いた通信を許可しない。この場合、エージェント72は、使用通信インタフェースの切り替えを許可できないことを、認証結果としてノードA100に通知する。このように、正当な通信相手である場合にのみ切り替えが行われる。
【0128】
尚、オプション1〜オプション3で用いる情報は、IPヘッダのオプションフィールドに記述する。そして、オプションフィールドに記述があるパケットは、全てエージェント32,72宛とする。これにより、通信インタフェース(#1)11〜通信インタフェース(#N)1n、通信インタフェース60は、オプションフィールドを参照して、エージェント32,72宛のパケットであるか、アプリケーション部(#1)51,91〜アプリケーション部(#N)5n,9n宛のパケットであるかを判断する。
【0129】
認証の結果、ノードA100のエージェント32は、ノードB200により切り替えの許可を受けると、切り替え指示部31に通知する。切り替え指示部31は、切り替え判断部21に切り替えの許可を通知する。更に、切り替え判断部21が、切り替え指示部23に切り替えの許可を通知する。切り替え指示部23は、切り替えの許可を受けると、現在使用中の通信インタフェース(#1)を終了させ、「通信待機」に変更する。これにより、データの送受信が一時的に停止する。又、切り替え指示部23は、切り替え先の通信インタフェース(#2)12を、「通信中」に変更する。
【0130】
図10に示すように、データの送受信が一時的に停止している間は、アドレス切り替え部42は、これまでに受信し、バッファ43内に保持されているパケット1bを取り出す。そして、アドレス切り替え部42は、ノードAアドレスを通信インタフェース(#1)のアドレス「add_A1」から、仮想インタフェース41の仮想アドレス「add_V」に変換し、パケット1aに変換する。そして、仮想インタフェース41が、パケット1aからデータを取りだして、アプリケーション部(#1)51〜アプリケーション部(#N)5nに提供する。このように、アドレス切り替え部42は、データの送受信が一時的に停止している間は、バッファ43内のデータを上位層に対して提供する。
【0131】
又、データの送受信が一時的に停止すると、ノードA100のエージェント32が、アプリケーション部(#1)51〜アプリケーション部(#N)5nに代わって、ノードB200のアプリケーション部(#1)91〜アプリケーション部(#N)9nにデータの続きを要求する。エージェント32は、バッファ43に保持されているデータの続きをノードB200に要求する。
【0132】
更に、ノードA100がデータの送受信を一時的に停止させた時に、ノードB200では、エージェント72が、アドレス切り替え部82に、切り替え先アドレスと開始時アドレスとの変換を指示する。エージェント72は、認証の際に、共有情報を提供するパケット1cから切り替え先アドレスとして、通信インタフェース(#2)12のアドレス「add_A2」を取得している。そのため、エージェント72は、切り替え先アドレス「add_A2」と開始時アドレス「add_A1」とを変換するように、アドレス切り替え部82に指示する。
【0133】
具体的には、エージェント32は、ノードAアドレスとして、通信インタフェース(#2)12のアドレス「add_A2」を、ノードBアドレスとして通信インタフェース60のアドレス「add_B」を用いたヘッダを、データを要求する制御情報に付加してパケット1dを作成し、通信インタフェース(#2)12に入力する。通信インタフェース(#2)12は、ノードB200にパケット1dを送信する。
【0134】
ノードB200の通信インタフェース60は、パケット1dを受信し、アドレス切り替え部82に入力する。アドレス切り替え部82は、取得したパケット1dのノードAアドレスを、エージェント72からの指示に従い、切り替え先アドレス「add_A2」から、開始時アドレス「add_A1」に変換し、パケット1eに変換する。アドレス切り替え部82は、パケット1eを仮想インタフェース81に入力する。仮想インタフェース81は、パケット1eからデータを要求する制御情報を取りだし、アプリケーション部(#1)91〜アプリケーション部(#N)9nに提供する。
【0135】
このように、相手装置であるノードB200において、切り替え先アドレスと開始時アドレスとを変換することにより、ノードB200の上位層のアプリケーション部(#1)91〜アプリケーション部(#N)9nに対して、ノードA100における使用通信インタフェースの切り替えを隠蔽することができる。これにより、ノードB200のアプリケーション部(#1)91〜アプリケーション部(#N)9nに対して、同一のセッションにおいて同一のノードA100から、データの続きを要求されたと認識させることができる。
【0136】
データの要求を受けたノードB200がデータの続きを送信することで、ノードA100とノードB200との間の通信が再開される。図11に示すように、アプリケーション部(#1)91〜アプリケーション部(#9n)が、要求に応じて、ノードA100に送信する続きのデータを仮想インタフェース81に入力する。仮想インタフェース81は、アプリケーション部(#1)91〜アプリケーション部(#9n)から取得したノードA100に送信するデータに、ノードAアドレスとして、開始時アドレス「add_A1」を、ノードBアドレスとして「add_B」を用いたヘッダを付加してパケット1bを作成する。仮想インタフェース81は、作成したパケット1bをアドレス切り替え部82に入力する。
【0137】
アドレス切り替え部82は、取得したパケット1bのノードAアドレスを、開始時アドレス「add_A1」から切り替え先アドレス「add_A2」に変換し、パケット1fに変換する。アドレス切り替え部82は、パケット1fを通信インタフェース60に入力する。通信インタフェース60は、パケット1fをノードA100に送信する。
【0138】
ノードA100では、切り替えられて使用通信インタフェースとなっている通信インタフェース(#2)12が、パケット1fを受信する。通信インタフェース(#2)12は、パケット1fをバッファ43に入力する。エージェント32は、通信インタフェース(#2)12がパケット1fを受信すると、アドレス切り替え部42に、仮想アドレスの変換相手となる使用通信インタフェースのアドレスを、新しい切り替え先の通信インタフェース(#2)12のアドレス「add_A2」に変更するように指示する。
【0139】
そして、アドレス切り替え部42は、バッファ43からパケット1fを取得し、パケット1fのノードAアドレスを、「add_A2」から仮想アドレス「add_V」に変換し、パケット1aに変換する。アドレス切り替え部42は、パケット1aを仮想インタフェース41に入力する。仮想インタフェース41は、パケット1aからデータを取りだし、アプリケーション部(#1)51〜アプリケーション部(#N)5nに提供する。尚、ノードA100は、受信したパケットをバッファ43に一時的に保存しておくことで、使用通信インタフェースを切り替える際のデータの連続性を保証する。
【0140】
尚、ノードA100がアプリケーション毎に使用通信インタフェースを切り替える場合には、ノードA100は、これらの切り替え先の使用通信インタフェースの選択、切り替え先の通信インタフェースの起動、オプション3、バッファ43内のデータの提供、データの続きの要求、使用通信インタフェースのアドレスと仮想アドレスとの変換を、アプリケーション毎に行う。又、ノードB200も、ノードA100が行うアプリケーション毎の使用通信インタフェースの切り替えにあわせて、アプリケーション毎に、切り替え先アドレスと開始時アドレスとの変換を行う。
【0141】
〔通信切断発生時〕
ノードA100は、通信が切断され、「通信中」であった使用通信インタフェースが「通信不可能」になった場合、状態が「通信待機」である使用可能な通信インタフェースが存在するか否かを判断する。ノードA100は、使用可能な通信インタフェースが存在しない場合には通信不可能であるため、セッションを切断する。
【0142】
一方、状態が「通信待機」である使用可能な通信インタフェースが存在する場合には、切り替え判断部21は、「通信待機」である通信インタフェース(#1)11〜通信インタフェース(#N)1nの中から、使用通信インタフェースを選択する。切り替え指示部23は、選択された通信インタフェースを起動する。
そして、ノードA100は、選択された通信インタフェースを用いてオプション3を実行する。
【0143】
認証の結果、切り替えの許可を受けると、切り替え指示部23が、その通信インタフェースの状態を「通信中」にする。そして、ノードA100のアドレス切り替え部42は、仮想インタフェース41の仮想アドレスの変換相手となる使用通信インタフェースのアドレスを、新たに選択した通信インタフェースのアドレスに変更する。又、ノードBのアドレス切り替え部82は、新たに選択した通信インタフェースのアドレスを切り替え先アドレスとし、開始時アドレスとの変換を開始する。そして、ノードA100のエージェント32が、通信が切断するまでに受信したデータの続きをノードB200に要求する。そして、ノードB200からデータが送信され、通信が再開される。
【0144】
ノードB200の制御部71は、通信が切断されたと判断した場合、タイマ73を起動する。そして、ノードB200は、セッションを維持したまま、ノードA100からのオプション3における使用通信インタフェースの切り替えの要求や、新たなデータを待つ。ノードB200は、タイマ73のタイマ値が満了する以前のセッション維持時間内に、使用通信インタフェースの切り替えの要求を受信した場合には、ノードA100とオプション3の処理を行う。ノードB200は、切り替えの前後でノードA100が同一であることを認証できた場合には、セッションを維持したまま通信を再開する。又、ノードB200は、セッション維持時間内に、新たなデータを受信した場合、即ち、ノードA100が使用通信インタフェースを切り替えなかった場合には、そのまま通信を再開する。一方、ノードB200は、タイマ73のタイマ値が満了し、セッション維持時間を超えても、ノードA100から使用通信インタフェースの切り替えの要求や、新たなデータを受信しなかった場合には、セッションを切断する。
【0145】
尚、ノードA100がアプリケーション毎に使用通信インタフェースを切り替える場合には、ノードA100、ノードB200は、これらの通信切断発生時の対応についても、アプリケーション毎に行う。
【0146】
〔通信パラメータの変換〕
次に、アドレス変換に伴って変更が必要な通信パラメータの変換について、図12を用いて詳細に説明する。変換する通信パラメータには、アドレス、パケットの識別子、チェックサムなどがある。図12では、具体的に、仮想アドレス「add_V」を「10.0.0.1」、通信インタフェース(#1)11のアドレス「add_A1」を「10.0.1.1」、通信インタフェース(#2)12のアドレス「add_A2」を「10.0.2.1」、通信インタフェース60のアドレス「add_B」を「10.1.0.1」と示している。又、IPv4の場合を例にとって説明する。
【0147】
ノードA100の使用通信インタフェースが通信インタフェース(#1)11の場合に、ノードA100はノードB200からパケット1bを受信する。アドレス切り替え部42は、IPヘッダに含まれる宛先アドレスを、使用通信インタフェースである通信インタフェース(#1)11のアドレス「10.0.1.1」から、仮想インタフェース41の仮想アドレス「10.0.0.1」に変換する。アドレス切り替え部42は、IPヘッダに含まれる通信インタフェース(#1)11のアドレス「10.0.1.1」を用いて計算されたチェックサムを、変換後の仮想アドレス「10.0.0.1」を用いて再計算し、その再計算した値に変換する。アドレス切り替え部42は、変換後の仮想アドレス「10.0.0.1」を用いて作成されたチェックサムを再計算し、TCPヘッダのチェックサムをその再計算した値に変換する。アドレス切り替え部41は、IPヘッダに含まれるパケットの識別子、データを含むペイロードについては変換せずにそのまま用いる。このようにして、アドレス切り替え部42は、使用通信インタフェースのアドレスと仮想インタフェース41の仮想アドレスとを変換することに伴って、変更が必要な通信パラメータを変換し、パケット1bをパケット1aに変換する。
【0148】
ノードA100の使用通信インタフェースを通信インタフェース(#1)11から、通信インタフェース(#2)12に切り替える場合、アプリケーション部(#1)11〜アプリケーション部(#N)1nと、アプリケーション部(#1)91〜アプリケーション部(#N)9nとの間のセッションを維持するために、まず、ノードA100のエージェント32と、ノードB200のエージェント72との間で、ノードA100の通信インタフェース(#2)12とノードB200の通信インタフェース60との間の通信路を確立する。エージェント32は、図12中一点鎖線で囲まれた、通信インタフェース(#1)11と通信インタフェース60との間の通信路を解放し、通信インタフェース(#2)12と通信インタフェース60との間の通信路を確立するための制御情報を処理する。このように、エージェント32,72間で、新たな通信インタフェース間の通信路の確立を行うことによっても、アプリケーション部(#1)11〜アプリケーション部(#N)1n、アプリケーション部(#1)91〜アプリケーション部(#N)9nに、使用通信インタフェースの切り替えを隠蔽できる。
【0149】
そして、ノードA100の使用通信インタフェースが、通信インタフェース(#1)11から、通信インタフェース(#2)12に切り替えられると、ノードA100はノードB200からパケット1fを受信する。アドレス切り替え部42は、IPヘッダに含まれるパケットの識別子を、切り替えの前後で同一となるように変換する。切り替え後のパケット1fのパケットの識別子「999」を、切り替え前のパケット1bのパケットの識別子「100」に変換する。アドレス切り替え部42は、IPヘッダに含まれる宛先アドレスを、切り替え先の通信インタフェース(#2)12のアドレス「10.0.2.1」から仮想アドレス「10.0.0.1」に変換する。
【0150】
アドレス切り替え部42は、IPヘッダに含まれる切り替え先の通信インタフェース(#2)12のアドレス「10.0.2.1」を用いて計算されたチェックサムを、変換後の仮想アドレス「10.0.0.1」を用いて再計算し、その再計算した値に変換する。アドレス切り替え部42は、変換後の仮想アドレス「10.0.0.1」を用いて作成されたチェックサムを再計算し、TCPヘッダのチェックサムをその再計算した値に変換する。アドレス切り替え部41は、データを含むペイロードについては変換せずにそのまま用いる。このようにして、アドレス切り替え部42は、使用通信インタフェースが切り替えられることに伴って変更が必要な通信パラメータと、使用通信インタフェースのアドレスと仮想インタフェース41の仮想アドレスとを変換することに伴って変更が必要な通信パラメータを変換し、パケット1fをパケット1aに変換する。
【0151】
ノードB200においても同様に、ノードA100の使用通信インタフェースが、通信インタフェース(#1)11から、通信インタフェース(#2)12に切り替えられると、アドレス切り替え部82は、切り替え先アドレス「10.0.2.1」と開始時アドレス「10.0.1.1」とを変換することに伴って、変更が必要なアドレス、パケットの識別子、チェックサムなどの通信パラメータを変換する。又、ノードA100の使用通信インタフェースが複数回切り替えられ、切り替え先アドレスが切り替えられた場合にも、それに伴って変更が必要な通信パラメータを変換する。ノードA100,ノードB200は、このように、使用通信インタフェースが切り替えられた後もセッションが継続できるように、通信パラメータを変換する。
【0152】
〔効果〕
このようなノードA100、ノードB200及び通信方法によれば、ノードA100の通信インタフェース切り替えマネージャ20が、複数の通信インタフェース(#1)11〜通信インタフェース(#N)1nの中から、使用通信インタフェースを選択して切り替える。仮想インタフェース41は、ネットワーク層よりも上位層のアプリケーション部(#1)51〜アプリケーション部(#1n)5nから、ノードB200に送信するデータを取得し、ノードB200から送信されたデータを上位層のアプリケーション部(#1)51〜アプリケーション部(#1n)5nに提供する。
【0153】
そして、アドレス切り替え部42が、データに付加されているノードA100のアドレスを、使用通信インタフェースのアドレスと仮想インタフェース41の仮想アドレスとの間で変換する。そのため、ノードA100は、使用通信インタフェースを切り替えることができる。しかも、ノードA100置は、使用通信インタフェースの切り替えを上位層のアプリケーション部(#1)51〜アプリケーション部(#1n)5nに対して隠蔽することができ、上位層のアプリケーション部(#1)51〜アプリケーション部(#1n)5nは、常に変わらない仮想インタフェース41の仮想アドレスを用いて通信できる。
【0154】
よって、ノードA100の上位層では、使用通信インタフェースを切り替えても、モバイルIPのように第三のノードを用いずに通信を継続できる。即ち、通信環境の変化などにより、ノードA100が使用するアドレスに変更があっても、ノードA100とノードB200は、アプリケーション部(#1)51〜アプリケーション部(#1n)5nと、アプリケーション部(#1)91〜アプリケーション部(#1n)9nとの間でのセッションを維持し、通信を継続できる。
【0155】
更に、ノードA100のエージェント32は、使用通信インタフェースを切り替える際に、ノードB200に、切り替えの前後でノード自体は同一であることを証明するセッションの証明書を提供する。一方、ノードB200のエージェント72は、相手装置であるノードA100から、使用通信インタフェースを切り替える際に、セッションの証明書を取得し、取得したセッションの証明書に基づいてノードA100を認証する。
【0156】
そのため、ノードA100の使用通信インタフェースが切り替えられ、ノードB200から見たノードA100のアドレスが変更されたときに、ノードB200は、セッションの証明書に基づいて、ノードA100が切り替えの前後で同一のノードであるか否かを認証できる。よって、ノードA100、ノードB200は、使用通信インタフェースの切り替えの際に、第三者によるなりすましによって、ノードA100とノードB200との間で通信中のセッションを容易に乗っ取られてしまったり、データを改ざんされてしまったりすることを防止できる。
その結果、ノードA100とノードB200は、使用通信インタフェースを切り替える際のセキュリティを高めることができる。
【0157】
又、ノードA100のエージェント32と、ノードB200のエージェント72は、切り替えの前に、証明情報として両者で共有する共有情報を生成し、お互いに交換する。そして、お互いの共有情報が一致することを確認しておく。そのため、ノードB200は、ノードA100が使用通信インタフェースを切り替える前に、予めノードA100とノードB200との間で生成した確かな共有情報に基づいて、ノードA100を認証できる。よって、ノードA100は、使用通信インタフェースを切り替える場合のセキュリティを、より高めることができる。
【0158】
又、通信インタフェース切り替えマネージャ20は、複数の通信インタフェース(#1)11〜通信インタフェース(#N)1nの中から、アプリケーション毎に使用通信インタフェースを選択して切り替えることができる。そして、アドレス切り替え部42は、データに付加されているノードA100のアドレスを、アプリケーション毎の使用通信インタフェースのアドレスと仮想インタフェース41の仮想アドレスとの間で変換できる。
【0159】
そのため、ノードA100は、アプリケーション毎に使用通信インタフェースを切り替えることができる。よって、アプリケーション部(#1)51〜アプリケーション部(#N)5nは、上位層で行われる各アプリケーション(#1)〜アプリケーション(#N)を、各アプリケーションに適した通信インタフェースを用いて通信できる。その結果、利用形態などによって通信速度を重視するアプリケーション、セキュリティを重視するアプリケーション、ノードA100の移動時の通信の連続性を重視するアプリケーションなど、重視したい項目がアプリケーション毎に異なる場合であっても、ノードA100は、アプリケーション毎に適した良好な通信路を提供できる。
【0160】
例えば、ノードA100によれば、従来のように、通信装置単位で使用通信インタフェースの切り替えを行う結果、切り替え先の使用通信インタフェースの特性が、特定のアプリケーションにとっては、切り替え前の使用通信インタフェースよりも、セキュリティ強度やモビリティサポート上好ましくないといった状況を招くことがない。そのため、ノードA100によれば、切り替えを行うことが好ましいアプリケーションに関してのみ使用通信インタフェースを切り替えることができる。
【0161】
その結果、ノードA100は、移動による通信環境の変化においても、ノードA100全体だけでなく、全てのアプリケーション毎に適した通信環境を提供できる。
【0162】
更に、ノードA100のエージェント32は、通信インタフェース切り替えマネージャ20が行う使用通信インタフェースの切り替えを、ノードB200に通知する。エージェント32は、切り替えがアプリケーション毎の場合には、使用通信インタフェースのアプリケーション毎の切り替えを通知する。そのため、ノードA100は、ノードB200に対して、使用通信インタフェースの切り替えを事前に通知できる。そのため、ノードB200では、ノードA100における使用通信インタフェースの変更に伴う処理を適切に行うことができる。
【0163】
又、ノードB200のアドレス切り替え部82は、データに付加されているノードA200のアドレスを、切り替え先アドレスと、開始時アドレスとの間で変換する。そのため、ノードB200は、相手装置であるノードA100が使用通信インタフェースを切り替えても、上位層であるアプリケーション部(#1)91〜アプリケーション部(#N)9nに対して、ノードA100のアドレスが常に変わらないように見せることができる。よって、ノードB200では、ノードA100が使用通信インタフェースを切り替えても、モバイルIPのように第三のノードを用いずに通信を継続できる。
【0164】
[第2の実施の形態]
通信システムは、図13に示すノードC300と、図2に示すノードB200とを備える。ノードC300は、データを送受信する通信装置である。ノードC300は、ノードB200にとっての相手装置となり、ノードB200は、ノードC300にとっての相手装置となる。尚、説明を簡単にするために、2つのノードC300とノードB200を用いて説明するが、通信システムには多数のノードが含まれる。
【0165】
〔ノードC〕
ノードC300は、移動通信ノードである。図13に示すように、ノードC300は、複数の通信インタフェース(#1)11〜通信インタフェース(#N)1nと、通信インタフェース切り替えマネージャ320と、セッションマネージャ330と、アドレス変換ファンクション部340と、複数のアプリケーション部(#1)51〜アプリケーション部(#N)5nとを備える。
【0166】
通信インタフェース(#1)11〜通信インタフェース(#N)1nと、アプリケーション部(#1)51〜アプリケーション部(#N)5nは、図1に示す通信インタフェース(#1)11〜通信インタフェース(#N)1nと、アプリケーション部(#1)51〜アプリケーション部(#N)5nと同様である。
【0167】
通信インタフェース切り替えマネージャ320と、セッションマネージャ330と、アドレス変換ファンクション部340は、プロトコルスタック中のネットワーク層において処理を行う。通信インタフェース切り替えマネージャ320と、セッションマネージャ330と、アドレス変換ファンクション部340は、例えば、ノードC300が、通信インタフェース切り替えマネージャ320と、セッションマネージャ330と、アドレス変換ファンクション部340として機能するミドルウェアをネットワーク層に実装し、そのミドルウェアを実行することにより実現される。
【0168】
通信インタフェース切り替えマネージャ320は、複数の通信インタフェース(#1)11〜通信インタフェース(#N)1nの中から、使用通信インタフェースを、アプリケーション毎に選択して切り替える。通信インタフェース切り替えマネージャ320は、切り替え判断部321と、メモリ322と、切り替え指示部323とを備える。
【0169】
切り替え判断部321は、通信インタフェース(#1)11〜通信インタフェース(#N)1nに、複数のアプリケーション(#1)〜アプリケーション(#N)毎に、使用する優先順位を定めた切り替えポリシーに基づいて、アプリケーション毎に使用通信インタフェースを選択する。切り替えポリシーは、例えば、通信コスト、通信速度、セキュリティ、ノードC300の移動時における通信の連続性など、各アプリケーションにおいて優先する項目に基づいて、設定できる。
【0170】
以下、各アプリケーション(#1)〜アプリケーション(#N)がそれぞれ、1つのセッションを用いる場合を例にとって説明する。又、通信インタフェース(#1)11〜通信インタフェース(#N)1nが、IMT−2000(International Mobile Telecommunications−2000)に対応した通信インタフェースと、PHS(Personal Handy Phone System)に対応した通信インタフェースと、無線LAN(Local Area Network)に対応した通信インタフェースの三種類のいずれかに分類される場合を例にとって説明する。
【0171】
アプリケーション(#1)では、無線LANに対応した通信インタフェース、PHSに対応した通信インタフェース、IMT−2000に対応した通信インタフェースの順に、高い優先順位が付与されている。アプリケーション(#2)では、IMT−2000に対応した通信インタフェース、PHSに対応した通信インタフェース、無線LANに対応した通信インタフェースの順に、高い優先順位が付与されている。アプリケーション(#3)では、PHSに対応した通信インタフェース、IMT−2000に対応した通信インタフェース、無線LANに対応した通信インタフェースの順に、高い優先順位が付与されている。
【0172】
例えば、ノードC300のユーザが、各通信インタフェース(#1)11〜通信インタフェース(#N)1nの優先順位を、アプリケーション毎に直接決定することにより、優先順位を設定できる。あるいは、まず、ユーザが、通信コスト、通信速度、セキュリティ、移動時における通信の連続性など、各アプリケーションにおいて優先する項目を決定して切り替え判断部321に入力する。そして、切り替え判断部321が、入力された項目に基づいて通信インタフェースの優先順位を決定することにより、優先順位を設定できる。メモリ232が、図14に示す切り替えポリシーを保持する。
【0173】
切り替え判断部321は、アプリケーション毎に使用通信インタフェースの切り替えを判断する。使用通信インタフェースの切り替えを行うと判断した場合、切り替え判断部321は、セッションマネージャ330に、切り替えの実行と、その切り替えの内容を、切り替えを実行すると判断したアプリケーション毎に通知する。即ち、切り替え判断部321は、アプリケーションを指定して、使用通信インタフェースを切り替えることに伴う処理を行うように、セッションマネージャ330に指示する。又、切り替え判断部321は、各セッションの通信開始時に、選択したアプリケーション毎の通信インタフェースを、選択したアプリケーション毎に、セッションマネージャ330に通知する。
【0174】
更に、切り替え判断部321は、切り替え指示部323に、切り替えの実行とその切り替えの内容をアプリケーション毎に通知し、アプリケーション毎に使用通信インタフェースを切り替えるように指示する。又、切り替え判断部321は、各セッションの通信開始時には、切り替え指示部323に、アプリケーション毎に選択した通信インタフェースを通知し、アプリケーション毎にその通信インタフェースを用いて通信を開始するように指示する。
【0175】
切り替え指示部323は、アプリケーション毎に使用通信インタフェースの切り替えを行う。切り替え指示部323は、新しく選択した切り替え先の通信インタフェースを起動し、状態を「通信中」に変更する。このとき、選択した通信インタフェースが、既に他のセッションで使用されている場合には、その起動は不要である。切り替え指示部323は、切り替えの対象となる現在使用中の通信インタフェースを終了させ、通信可能な通信インタフェースについては状態を「通信待機」に変更する。このとき、選択した通信インタフェースが、他のセッションで使用されている場合には、その終了は不要である。又、切り替え指示部323は、各セッションの通信開始時には、選択した通信インタフェースを起動し、「通信中」に変更する。
【0176】
尚、切り替え指示部323は、切り替え判断部321が、通信インタフェース(#1)11〜通信インタフェース(#N)1nの状態変化を検出し、指示を出した場合に、その指示に従って使用通信インタフェースの切り替えを行う。そのため、切り替え指示部323は、アプリケーション又はセッションと、通信インタフェース(#1)11〜通信インタフェース(#N)1nの対応関係を把握する必要がない。これらの点以外は、切り替え判断部321、切り替え指示部323は、図1に示した切り替え判断部21、切り替え指示部23と同様である。このように、通信インタフェース切り替えマネージャ320は、セッションを意識しない。
【0177】
アドレス変換ファンクション部340は、セッション(#1)仮想インタフェース411、セッション(#2)仮想インタフェース412〜セッション(#N)仮想インタフェース41nと、セッション(#1)アドレス切り替え部421、セッション(#2)アドレス切り替え部422〜セッション(#N)アドレス切り替え部42nと、バッファ343と、セッションテーブル管理部344とを備える。
【0178】
ノードC300では、複数のアプリケーション部(#1)51〜アプリケーション部(#N)5nが同時に通信を行うため、複数のアプリケーション部(#1)51〜アプリケーション部(#N)5nが用いる複数のセッション(#1)〜セッション(#N)に対応するセッション(#1)仮想インタフェース411〜セッション(#N)仮想インタフェース41nを備える。
【0179】
セッション(#1)仮想インタフェース411は、アプリケーション部(#1)51から、アプリケーション部(#1)51のセッション(#1)において、ノードB200に送信するデータを取得し、セッション(#1)においてノードB200から送信されたデータを、アプリケーション部(#1)51に提供する。セッション(#2)仮想インタフェース412は、アプリケーション部(#2)52から、アプリケーション部(#2)52のセッション(#2)において、ノードB200に送信するデータを取得し、セッション(#2)においてノードB200から送信されたデータを、アプリケーション部(#2)52に提供する。セッション(#N)仮想インタフェース41nは、アプリケーション部(#N)5nから、アプリケーション部(#N)5nのセッション(#N)において、ノードB200に送信するデータを取得し、セッション(#N)においてノードB200から送信されたデータを、アプリケーション部(#N)5nに提供する。
【0180】
セッション(#1)仮想インタフェース411には、使用通信インタフェースに依存しない固定の仮想アドレス「add_V1」が付与されている。セッション(#2)仮想インタフェース412には、使用通信インタフェースに依存しない固定の仮想アドレス「add_V2」が付与されている。セッション(#N)仮想インタフェース41nには、使用通信インタフェースに依存しない固定の仮想アドレス「add_Vn」が付与されている。これらの点以外は、セッション(#1)仮想インタフェース411〜セッション(#N)仮想インタフェース41nは、図1に示した仮想インタフェース41と同様である。
【0181】
バッファ343は、アプリケーション(#1)〜アプリケーション(#N)毎のアプリケーション別バッファを備える。アプリケーション別バッファには、各アプリケーション(#1)〜アプリケーション(#N)が用いるセッションのセッションID「#1」〜「#N」が付与される。セッションIDは、セッションを識別する識別情報である。
【0182】
各アプリケーション別バッファは、アプリケーション部(#1)51〜アプリケーション部(#N)5nがノードB200に送信するデータを、セッション(#1)アドレス切り替え部421〜セッション(#N)アドレス切り替え部42nから入力され、アプリケーション(#1)〜アプリケーション(#N)毎に保持する。各アプリケーション別バッファは、通信インタフェース(#1)11〜通信インタフェース(#N)1nが受信したデータを、通信インタフェース(#1)11〜通信インタフェース(#N)1nから入力され、アプリケーション(#1)〜アプリケーション(#N)毎に保持する。
【0183】
バッファ343は、複数のセッションテーブル(#1)431〜セッションテーブル(#N)43nを備える。セッションテーブル(#1)431〜セッションテーブル(#N)43n毎に、セッションID「#1」〜「#N」が付与される。各セッションテーブル(#1)431〜セッションテーブル(#N)43nはそれぞれ、各セッション(#1)〜セッション(#N)に関する情報を保持する。図15にセッションテーブルの例を示す。セッションテーブルは、セッションに関する情報として、例えば、セッション(#1)仮想インタフェース411〜セッション(#N)仮想インタフェース41nの仮想アドレスを用いて示される各セッション(#1)〜セッション(#N)の送信元IPアドレス、送信先アドレス、送信元ポート番号、送信先ポート番号、IPヘッダに含まれるオプションなど、各セッション(#1)〜セッション(#N)の通信パラメータを保持する。
【0184】
セッションテーブル管理部344は、各アプリケーション部(#1)51〜アプリケーション部(#N)5nが用いる各セッション(#1)〜セッション(#N)を、セッションテーブル(#1)431〜セッションテーブル(#N)43nを用いて管理する。セッションテーブル管理部344は、セッション(#1)仮想インタフェース411〜セッション(#N)仮想インタフェース41nを介して、アプリケーション部(#1)51〜アプリケーション部(#N)5nから、送信元IPアドレス、送信先IPアドレス、使用している送信元ポート番号、送信先ポート番号など、各アプリケーション(#1)〜アプリケーション(#N)の通信パラメータを取得する。そして、セッションテーブル管理部344は、各セッションテーブル(#1)431〜セッションテーブル(#N)43nに、各セッション(#1)〜セッション(#N)に関する情報を格納する。
【0185】
セッションテーブル管理部344は、バッファ343から、セッションテーブル(#1)431〜セッションテーブル(#N)43nが保持する各セッション(#1)〜セッション(#N)に関する情報を取得し、セッションマネージャ330に提供する。又、セッションテーブル管理部344は、アプリケーション(#1)〜アプリケーション(#N)毎に、アプリケーション別バッファを作成する。セッションテーブル管理部344は、セッションマネージャ330からの指示により、アプリケーション別バッファを作成する。セッションテーブル管理部344は、作成したアプリケーション別バッファ部に、セッションID「#1」〜「#N」を付与する。
【0186】
ノードC300では、複数のアプリケーション部(#1)51〜アプリケーション部(#N)5nが同時に通信を行うため、複数のアプリケーション部(#1)51〜アプリケーション部(#N)5nが用いる複数のセッション(#1)〜セッション(#N)に対応するセッション(#1)アドレス切り替え部421〜セッション(#N)アドレス切り替え部42nを備える。これにより、ノードC300は、セッション単位にアドレスを変換できる。
【0187】
セッション(#1)アドレス切り替え部421〜セッション(#N)アドレス切り替え部42nは、データに付加されているアドレスを、セッション毎の使用通信インタフェースのアドレスと、セッション毎のセッション(#1)仮想インタフェース411〜セッション(#N)仮想インタフェース41nの仮想アドレスとの間で変換する。即ち、セッション(#1)アドレス切り替え部421〜セッション(#N)アドレス切り替え部42nは、セッション毎にアドレスの変換を行う。
【0188】
各セッションにおいて使用通信インタフェースが切り替えられると、セッション(#1)アドレス切り替え部421〜セッション(#N)アドレス切り替え部42nは、セッション(#1)仮想インタフェース411〜セッション(#N)仮想インタフェース41nの仮想アドレスの変換相手となる使用通信インタフェースのアドレスを、各セッションの切り替え先の通信インタフェースのアドレスに変更する。セッション(#1)アドレス切り替え部421〜セッション(#N)アドレス切り替え部42nは、セッションマネージャ330からのセッションを指定した指示に従って、変換相手となる使用通信インタフェースのアドレスを変更する。これらの点以外は、セッション(#1)アドレス切り替え部421〜セッション(#N)アドレス切り替え部42nは、図1に示したアドレス切り替え部42と同様である。
【0189】
セッションマネージャ330は、切り替え指示部331と、エージェント332と、タイマ33とを備える。切り替え指示部331は、各アプリケーション部(#1)51〜アプリケーション部(#N)5nから、送信元IPアドレス、送信先IPアドレス、使用している送信元ポート番号、送信先ポート番号など、各アプリケーション(#1)〜アプリケーション(#N)の通信パラメータを取得する。又、切り替え指示部331は、セッションテーブル管理部344から、セッションテーブル(#1)431〜セッションテーブル(#N)43nが保持する各セッション(#1)〜セッション(#N)に関する情報として、各セッション(#1)〜セッション(#N)の通信パラメータと、セッションID「#1」〜「#N」を取得する。
【0190】
切り替え指示部331は、取得した各アプリケーション(#1)〜アプリケーション(#N)の通信パラメータと、各セッション(#1)〜セッション(#N)の通信パラメータとを比較して、通信パラメータが一致するアプリケーション(#1)〜アプリケーション(#N)とセッション(#1)〜セッション(#N)とを対応付ける。そして、切り替え指示部331は、セッションID「#1」〜「#N」と、そのセッションIDのセッションを用いるアプリケーション(#1)〜アプリケーション(#N)とを対応付けるマッピングを行う。このようにして、切り替え指示部331は、どのアプリケーション部(#1)51〜アプリケーション部(#N)5nが、どのセッション(#1)〜セッション(#N)を用いるかを把握する。これにより、セッションマネージャ330は、セッションIDとアプリケーションのマッピングを行うことができる。
【0191】
切り替え指示部331は、切り替え判断部321から、切り替えの実行と、その切り替えの内容を、切り替えを実行すると判断したセッションを含むアプリケーション毎に通知を受ける。即ち、切り替え指示部331は、切り替え判断部321から、アプリケーションを指定した指示を受ける。又、切り替え指示部331は、各セッションの通信開始時に、切り替え判断部321から、選択した通信インタフェースの通知をアプリケーション毎に受ける。切り替え指示部331は、セッションIDとアプリケーションとのマッピングを参照し、切り替え判断部321からの指示が、どのセッションに関する指示であるかを判断する。そして、切り替え指示部331は、切り替え判断部321からのアプリケーションを指定した指示を、セッションを指定した指示に変換する。
【0192】
そして、切り替え指示部331は、エージェント332に、切り替えの内容や選択した通信インタフェースを通知し、使用通信インタフェースの切り替え時やセッションの通信開始時の処理を行うように、セッション毎に指示する。又、切り替え指示部331は、セッションIDとアプリケーションとのマッピングをエージェント332に通知する。このようにして、セッションマネージャ330においても、セッションを管理する。又、切り替え指示部331は、セッションテーブル管理部344に、アプリケーション(#1)〜アプリケーション(#N)毎に、アプリケーション別バッファを作成するように指示する。
【0193】
エージェント332は、切り替え指示部331から、切り替えの内容や選択した通信インタフェースの通知を、セッション毎に受ける。そして、エージェント332は、使用通信インタフェースの切り替え時やセッションの通信開始時の処理を、セッション毎に行う。エージェント332は、セッションの通信開始時に、アドレス変換ファンクション部340に、セッション(#1)仮想インタフェース411〜セッション(#N)仮想インタフェース41nの仮想アドレスの変換相手となるセッション毎の使用通信インタフェースのアドレスを通知し、変換を指示する。エージェント332は、使用通信インタフェースを切り替える際に、アドレス変換ファンクション部340に、仮想アドレスの変換相手となる使用通信インタフェースのアドレスを、セッション毎の新しい切り替え先の通信インタフェースのアドレスに変更するように指示する。
【0194】
又、エージェント332は、通信インタフェース切り替えマネージャ320が行うセッション毎の使用通信インタフェースの切り替えを、相手装置であるノードB200に通知する。更に、エージェント332は、切り替えの際に、アプリケーション部(#1)51〜アプリケーション部(#N)5nに代わって、ノードB200にデータの続きをセッション毎に要求する。
【0195】
エージェント332は、バッファ343を管理する。エージェント332は、バッファ343内のアプリケーション別バッファが保持しているデータを、セッションIDとアプリケーションとのマッピングを参照して、セッション毎に把握しておく。そして、エージェント332は、アプリケーション別バッファに保持されているデータの続きを、セッション毎にノードB200に要求する。これらの点以外は、切り替え指示部331、エージェント332、タイマ33は、図1に示した切り替え指示部31、エージェント32、タイマ33と同様である。
【0196】
次に、状態が「通信待機」になり、新たに利用可能な通信インタフェースを検出した場合と、「通信中」の通信インタフェースが「通信不可能」に移行する場合について、詳細に説明する。
【0197】
〔新たに利用可能な通信インタフェースの検出〕
切り替え判断部321は、状態が「通信待機」となり、新たに利用可能な通信インタフェースを検出した場合、アプリケーション毎に切り替えの判断を行う。
切り替え判断部321は、新たに利用可能な通信インタフェースの優先順位が、「通信中」の使用インタフェースよりも高い場合には、新たに利用可能な通信インタフェースを使用通信インタフェースに選択する。そのため、切り替え判断部321は、切り替えを実行すると判断する。切り替え判断部321は、新たに利用可能な通信インタフェースの優先順位が、「通信中」の使用通信インタフェースよりも低い場合には、「通信中」の使用通信インタフェースを、再度、使用通信インタフェースに選択する。そのため、切り替え判断部321は、切り替えを実行しないと判断する。
【0198】
例えば、ノードC300のアプリケーション部(#1)51〜アプリケーション部(#N)5nが、「無線LAN」に対応した通信インタフェースを使用して移動している。このとき、切り替え判断部321が、「IMT−2000」に対応した通信インタフェースが「通信待機」状態となったことを検出する。切り替え判断部321は、メモリ322に保持された切り替えポリシーに基づいて、アプリケーション毎に使用通信インタフェースを選択する。図14に示すように、アプリケーション(#2)とアプリケーション(#3)では、「IMT−2000」の優先順位が「無線LAN」の優先順位よりも高い。そのため、切り替え判断部321は、アプリケーション(#2)、アプリケーション(#3)の使用通信インタフェースとして、「IMT−2000」に対応した通信インタフェースを選択し、切り替えを実行すると判断する。
【0199】
そして、切り替え判断部321は、切り替え指示部323に、切り替えの実行と切り替えの内容を通知する。又、切り替え判断部321は、セッションマネージャ330の切り替え指示部331に、アプリケーション(#2)、アプリケーション(#3)を指定して、切り替えの実行と切り替えの内容を通知し、指示する。切り替え指示部323は、「IMT−2000」に対応した通信インタフェースを起動して、「通信中」に変更する。
【0200】
セッションマネージャ330の切り替え指示部331は、セッションIDとアプリケーションとのマッピングを参照し、切り替え判断部321からの指示がどのセッションに関する指示であるかを判断する。そして、切り替え指示部331は、切り替え判断部321からのアプリケーションを指定した指示を、セッションを指定した指示に変換する。
【0201】
そして、切り替え指示部331は、エージェント332にセッションIDと対応付けて切り替えを指示する。エージェント332は、切り替え指示部331から、セッションIDと対応付けられた切り替えの指示を受ける。そして、エージェント332は、アドレス変換ファンクション部340に、仮想アドレスの変換相手となる使用通信インタフェースのアドレスを、セッション毎の新しい切り替え先の通信インタフェースのアドレスに変更するように、セッションIDを指定して指示する。この結果、アドレス変換ファンクション部340は、アプリケーションを意識することはない。アドレス変換ファンクション部340では、セッション(#1)アドレス切り替え部421〜セッション(#N)アドレス切り替え部42nのうち、指定されたセッションIDのアドレス変換を行うアドレス切り替え部が、使用通信インタフェースのアドレスを切り替え先の使用通信インタフェースのアドレスに変更して、使用通信インタフェースのアドレスと仮想アドレスとの間の変換を行う。
【0202】
〔「通信中」の通信インタフェースの「通信不可能」への移行〕
切り替え判断部321は、「通信中」の使用通信インタフェースが、「通信不可能」に移行すると予測した場合、状態が「通信中」又は「通信待機」の通信インタフェースを検出する。状態が「通信中」又は「通信待機」の通信インタフェースが、「通信不可能」に移行すると予測した使用通信インタフェース以外に1つしかない場合には、切り替え判断部321は、その通信インタフェースへの切り替えを実行すると判断する。
【0203】
一方、状態が「通信中」又は「通信待機」の通信インタフェースが複数ある場合、切り替え判断部321は、それらの中から、切り替えポリシーに基づいて、各アプリケーションについて優先順位の高い使用通信インタフェースを選択し、各アプリケーションの使用通信インタフェースを選択する。そして、切り替え判断部321は、選択した各アプリケーションの使用通信インタフェースへの切り替えを実行すると判断する。
【0204】
例えば、全ての通信インタフェースの状態が「通信中」又は「通信待機」であり、「無線LAN」に対応した通信インタフェースが「通信不可能」に移行すると予測した場合、「IMT−2000」又は「PHS」に対応した通信インタフェースの中から、アプリケーション毎に優先順位の高い通信インタフェースを選択する。そして、切り替え判断部321は、選択した通信インタフェースへの切り替えを実行すると判断する。
【0205】
又、「通信中」の使用通信インタフェースが、突然「通信不可能」に移行した場合も同様に、切り替え判断部321は、状態が「通信中」又は「通信待機」である通信インタフェースを検出する。そして、切り替え判断部320は、状態が「通信中」又は「通信待機」である通信インタフェースの中に、各アプリケーションにとってより適切な通信インタフェースがあれば、各アプリケーションの使用通信インタフェースとして選択し、切り替えを実行すると判断する。一方、全ての通信インタフェースの状態が「通信不可能」の場合には、切り替え判断部321は、通信を中断すると判断する。
【0206】
切り替え判断部321は、切り替えを実行すると判断した場合、切り替え指示部323、セッションマネージャ330に切り替えの実行を指示する。そして、使用通信インタフェースの切り替えが行われる。
【0207】
〔効果〕
このようなノードC300及び、ノードC300を用いた通信方法によれば、通信インタフェース切り替えマネージャ320が、使用通信インタフェースを、アプリケーション毎に選択して切り替える。そして、セッション(#1)切り替え部421〜セッション(#N)切り替え部42nは、データに付加されているノードC300のアドレスを、セッション毎の使用通信インタフェースのアドレスと、セッション毎のセッション(#1)仮想インタフェース〜セッション(#N)仮想インタフェース41nのアドレスとの間で変換する。
【0208】
よって、ノードC300は、セッション毎に使用通信インタフェースを切り替えることができる。そのため、上位層で行われる各アプリケーション(#1)〜アプリケーション(#N)は、各セッション(#1)〜セッション(#N)に適した通信インタフェースを用いて通信できる。その結果、ノードC300は、各アプリケーションのセッション毎に適した通信環境を提供できる。
【0209】
[変更例]
本発明は、上記第1、第2の実施の形態に限定されるものではなく、種々の変更が可能である。図13では、バッファ343においてセッションIDを保持しているが、バッファ343においてセッションIDを保持するのではなく、セッションテーブル管理部344が、セッションテーブル(#1)431〜セッションテーブル(#N)43nを保持し、管理してもよい。又、バッファ343に入力されたデータをセッションテーブル管理部344の指示により、各セッション(#1)アドレス切り替え部421〜各セッション(#N)アドレス切り替え部42nに振り分ける機能を、バッファ343が備えるようにしてもよい。
【0210】
更に、バッファ343をセッション毎や、アプリケーション毎に設けるようにしてもよい。その場合には、セッション毎又はアプリケーション毎に仮想インタフェース、アドレス切り替え部、バッファを設け、それらに対応したセッションテーブルを作成する。
【0211】
又、図13では、仮想インタフェースがセッション毎に設けられているが、セッション毎に設ける必要はない。例えば、1つのノードが、1つの仮想インタフェースを備え、1つの仮想アドレスを用いるようにしてもよい。この場合、各セッション(#1)アドレス切り替え部421〜セッション(#N)アドレス切り替え部42nにデータを振り分ける手段を、仮想インタフェースとセッション(#1)アドレス切り替え部421〜セッション(#N)アドレス切り替え部42nとの間に設け、セッションテーブル管理部344の指示により、データを振り分けるようにしてもよい。
【0212】
又、セッションマネージャ330が、セッションテーブル管理部を備えるようにし、そのセッションテーブル管理部が、セッションID「#1」〜「#N」と、そのセッションIDのセッションを用いるアプリケーション(#1)〜アプリケーション(#N)とを対応付けるマッピングを行ってもよい。
【0213】
相手装置が、ノードB200のように、セッションマネージャ70と、アドレス変換ファンクション部80として機能するミドルウェアを実装しておらず、ノードA100、ノードC300が行う使用通信インタフェースの切り替えに対応していない場合がある。この場合、ノードA100、ノードC300は、使用通信インタフェースを切り替える際に、実行中のセッションを切断する。そして、ノードA100、ノードC300は、新たなセッションにおいて、相手装置との通信を再開する。この場合であっても、ノードA100、ノードC300は、相手装置のアプリケーションに応じて、相手装置と、セッション切断前のデータの続きを、継続して送受信することができる。
【0214】
又、ノードA100同士、ノードC300同士、ノードA100とノードC300など、複数の通信インタフェースを備える通信装置同士が通信を行う場合がある。この場合、通信装置が、ほぼ同時に使用通信インタフェースの切り替えを実行しようとした際には、先に切り替えを要求した方の使用通信インタフェースの切り替えを優先して処理する。例えば、先に切り替えを要求した通信装置が、切り替えの要求を送信後、相手装置からの切り替えの要求を拒否する。そして、切り替えの要求を拒否された方の通信装置は、相手装置の切り替え処理終了後、自身の使用通信インタフェースの切り替えを実行する。
【0215】
又、複数の通信インタフェースを備える通信装置同士が通信を行う場合、双方の通信装置は、ノードA100のエージェント32の証明情報提供手段の機能と、ノードB200のエージェント72の認証手段の機能とを備える必要がある。
そして、双方の通信装置は、自身の相手装置から、その相手装置が使用通信インタフェースを切り替える際に、セッションの証明書のような共有情報を、切り替えの前後で相手装置は同一であることを証明する相手装置証明情報として取得し、その取得した相手装置証明情報に基づいて相手装置を認証する。
【0216】
これによれば、相手装置も複数の通信インタフェースを備え、その切り替えを行う場合に、通信装置は、相手装置証明情報に基づいて、相手装置が切り替えの前後で同一の相手装置であるか否かを認証できる。よって、通信装置は、相手装置が使用通信インタフェースを切り替える場合のセキュリティについても、高めることができる。
【0217】
又、このように通信装置と相手装置の双方が認証手段の機能を備える場合には、使用通信インタフェースを切り替える際に、生成した共有情報をお互いに交換し、お互いにその内容を検証することができる。これにより、通信装置は、お互いに相手装置の認証を行うことができる。
【0218】
更に、第2の実施の形態では、各アプリケーションが1つのセッションを用いる場合について説明したが、ノードC300は、各アプリケーションが複数のセッションを用いる場合にも利用できる。この場合、セッションマネージャ330の切り替え指示部331は、各アプリケーションに対して複数のセッションを対応付けておく。即ち、切り替え指示部331は、1つのアプリケーションと複数のセッションIDとを対応付けるマッピングを行う。そして、使用通信インタフェースを切り替える際に、切り替え指示部331は、第2の実施の形態と同様に、各アプリケーションと複数のセッションIDとのマッピングを参照して、セッション毎の切り替えの指示に変換する。又、エージェント332が、アドレス変換ファンクション部340に対して、各アプリケーションの複数のセッションについて、まとめて切り替えを指示してもよい。
【0219】
各アプリケーションが複数のセッションを用いる場合であっても、アドレス切り替え部は、複数のアプリケーションの数だけ備えるようにしてもよい。そして、各アプリケーションのアドレス切り替え部が、各アプリケーションのセッション毎に仮想アドレスの変換相手である使用通信インタフェースの変更を行ってもよい。このように、ノードC300は、各アプリケーションが複数のセッションを用いる場合であっても、そのセッション毎に使用通信インタフェースを切り替えることができる。
【0220】
又、セッションマネージャ330ではなく、アドレス変換ファンクション部340が、アプリケーションとセッションIDとの対応付けを行ってもよい。この場合、セッションマネージャ330は、アプリケーションを指定した指示を行う。そして、アドレス変換ファンクション部340が、セッションを指定した指示に変換するようにしてもよい。
【0221】
更に、通信インタフェース切り替えマネージャ320のような切り替え手段が、セッション毎の切り替えポリシーに基づいて、使用通信インタフェースをセッション毎に選択して切り替えてもよい。
【0222】
【発明の効果】
以上説明したように、本発明によれば、使用する通信インタフェースを切り替える場合に、モバイルIPのように第三のノードを用いずに通信を継続でき、その際のセキュリティを高めたり、上位層のアプリケーション毎に適した通信環境を提供したりできる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係るノードAの構成を示すブロック図である。
【図2】本発明の第1の実施の形態に係るノードBの構成を示すブロック図である。
【図3】本発明の第1の実施の形態に係る通信インタフェースの状態を示す図である。
【図4】本発明の第1の実施の形態に係る切り替えポリシーを示す図である。
【図5】本発明の第1の実施の形態に係るオプション1の手順を示すフロー図である。
【図6】本発明の第1の実施の形態に係る通信開始時の通信の様子を示す図である。
【図7】本発明の第1の実施の形態に係るオプション2の手順を示すフロー図である。
【図8】本発明の第1の実施の形態に係る切り替えを実行すると判断した時の様子を示す図である。
【図9】本発明の第1の実施の形態に係るオプション3の手順を示すフロー図である。
【図10】本発明の第1の実施の形態に係るデータの続きを要求する際の様子を示す図である。
【図11】本発明の第1の実施の形態に係るデータの送受信を再開した時の様子を示す図である。
【図12】本発明の第1の実施の形態に係る通信パラメータの変換を示す図である。
【図13】本発明の第2の実施の形態に係るノードCの構成を示すブロック図である。
【図14】本発明の第2の実施の形態に係る切り替えポリシーを示す図である。
【図15】本発明の第2の実施の形態に係るセッションテーブルを示す図である。
【符号の説明】
11,12,1n 通信インタフェース(#1)、通信インタフェース(#2)、通信インタフェース(#N)
20,320 通信インタフェース切り替えマネージャ
21,321 切り替え判断部
22,322 メモリ
23,323 切り替え指示部
30,330 セッションマネージャ
31,331 切り替え指示部
32,332 エージェント
33 タイマ
40,340 アドレス変換ファンクション部
41 仮想インタフェース
42 アドレス切り替え部
43,343 バッファ
51,52,5n アプリケーション部(#1)、アプリケーション部(#2)、アプリケーション部(#N)
60 通信インタフェース
70 セッションマネージャ
71 制御部
72 エージェント
73 タイマ
80 アドレス変換ファンクション部
81 仮想インタフェース
82 アドレス切り替え部
91,92,9n アプリケーション部(#1)、アプリケーション(#2)、アプリケーション部(#N)
100 ノードA
200 ノードB
300 ノードC
344 セッションテーブル管理部
411,412,41n セッション(#1)仮想インタフェース、セッション(#2)仮想インタフェース、セッション(#N)仮想インタフェース
421,422,42n セッション(#1)アドレス切り替え部、セッション(#2)アドレス切り替え部、セッション(#N)アドレス切り替え部
431,43n セッションテーブル(#1)、セッションテーブル(#N)
Claims (10)
- データを相手装置と送受信する複数の通信インタフェースと、
該複数の通信インタフェースの中から、前記データの送受信に用いる使用通信インタフェースを選択して切り替える切り替え手段と、
ネットワーク層よりも上位層から、前記相手装置に送信するデータを取得し、前記相手装置から送信されたデータを、前記上位層に提供する仮想インタフェースと、
前記データに付加されている通信装置のアドレスを、前記使用通信インタフェースのアドレスと前記仮想インタフェースのアドレスとの間で変換する変換手段と、
前記使用通信インタフェースを切り替える際に、前記相手装置に、切り替えの前後で通信装置は同一であることを証明する証明情報を提供する証明情報提供手段とを備えることを特徴とする通信装置。 - 前記証明情報提供手段は、前記切り替えの前に、前記証明情報として、前記相手装置と共有する共有情報を生成することを特徴とする請求項1に記載の通信装置。
- 前記相手装置が複数の通信インタフェースを備える場合に、前記相手装置から、該相手装置が前記使用通信インタフェースを切り替える際に、切り替えの前後で前記相手装置は同一であることを証明する相手装置証明情報を取得し、該取得した相手装置証明情報に基づいて前記相手装置を認証する認証手段を備えることを特徴とする請求項1又は2に記載の通信装置。
- データを送受信する複数の通信インタフェースを備える相手装置から、該相手装置が前記データの送受信に用いる使用通信インタフェースを切り替える際に、切り替えの前後で前記相手装置は同一であることを証明する相手装置証明情報を取得し、該取得した相手装置証明情報に基づいて前記相手装置を認証する認証手段を備えることを特徴とする通信装置。
- データを相手装置と送受信する複数の通信インタフェースと、
該複数の通信インタフェースの中から、前記データの送受信に用いる使用通信インタフェースを、ネットワーク層よりも上位層で行うアプリケーション毎に選択して切り替える切り替え手段と、
前記上位層から、前記相手装置に送信するデータを取得し、前記相手装置から送信されたデータを、前記上位層に提供する仮想インタフェースと、
前記データに付加されている通信装置のアドレスを、前記アプリケーション毎の使用通信インタフェースのアドレスと前記仮想インタフェースのアドレスとの間で変換する変換手段とを備えることを特徴とする通信装置。 - 前記切り替え手段が行う前記アプリケーション毎の使用通信インタフェースの切り替えを、前記相手装置に通知する通知手段を備えることを特徴とする請求項5に記載の通信装置。
- 前記変換手段は、前記データに付加されている通信装置のアドレスを、前記アプリケーションで用いるセッション毎の使用通信インタフェースのアドレスと前記仮想インタフェースのアドレスとの間で変換することを特徴とする請求項5又は6に記載の通信装置。
- データに付加されている該データを送受信する複数の通信インタフェースを備える相手装置のアドレスを、前記相手装置が前記データの送受信に用いる使用通信インタフェースを切り替えた後の前記使用通信インタフェースのアドレスと、通信開始時の前記使用通信インタフェースのアドレスとの間で変換する相手アドレス変換手段を備えることを特徴とする通信装置。
- データを相手装置と送受信する複数の通信インタフェースと、
ネットワーク層よりも上位層から、前記相手装置に送信するデータを取得し、前記相手装置から送信されたデータを、前記上位層に提供する仮想インタフェースとを備える通信装置が、前記複数の通信インタフェースの中から、前記データの送受信に用いる使用通信インタフェースを選択して切り替え、
該切り替えの際に、前記相手装置に、切り替えの前後で前記通信装置は同一であることを証明する証明情報を提供し、
前記相手装置が、前記通信装置から取得した前記証明情報に基づいて前記通信装置を認証し、
該認証を受けた通信装置は、前記データに付加されている前記通信装置のアドレスを、前記使用通信インタフェースのアドレスと前記仮想インタフェースのアドレスとの間で変換することを特徴とする通信方法。 - データを相手装置と送受信する複数の通信インタフェースと、ネットワーク層よりも上位層から、前記相手装置に送信するデータを取得し、前記相手装置から送信されたデータを、前記上位層に提供する仮想インタフェースとを備える通信装置が、前記複数の通信インタフェースの中から、前記データの送受信に用いる使用通信インタフェースを、前記上位層で行うアプリケーション毎に選択して切り替え、
前記データに付加されている前記通信装置のアドレスを、前記アプリケーション毎の使用通信インタフェースのアドレスと前記仮想インタフェースのアドレスとの間で変換することを特徴とする通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003155759A JP4217538B2 (ja) | 2003-05-30 | 2003-05-30 | 通信装置及び通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003155759A JP4217538B2 (ja) | 2003-05-30 | 2003-05-30 | 通信装置及び通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004357252A true JP2004357252A (ja) | 2004-12-16 |
JP4217538B2 JP4217538B2 (ja) | 2009-02-04 |
Family
ID=34050063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003155759A Expired - Fee Related JP4217538B2 (ja) | 2003-05-30 | 2003-05-30 | 通信装置及び通信方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4217538B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007293695A (ja) * | 2006-04-26 | 2007-11-08 | Fujitsu Ltd | センサイベント制御装置 |
JP2008042460A (ja) * | 2006-08-04 | 2008-02-21 | Ricoh Co Ltd | 通信制御方法及び画像形成装置 |
JP2010130524A (ja) * | 2008-11-28 | 2010-06-10 | Nippon Telegr & Teleph Corp <Ntt> | 通信システム、通信装置、通信方法、又はプログラム |
WO2011087085A1 (ja) * | 2010-01-14 | 2011-07-21 | 日本電気株式会社 | 計算機、ネットワーク接続切替え方法およびプログラム |
-
2003
- 2003-05-30 JP JP2003155759A patent/JP4217538B2/ja not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007293695A (ja) * | 2006-04-26 | 2007-11-08 | Fujitsu Ltd | センサイベント制御装置 |
JP2008042460A (ja) * | 2006-08-04 | 2008-02-21 | Ricoh Co Ltd | 通信制御方法及び画像形成装置 |
JP2010130524A (ja) * | 2008-11-28 | 2010-06-10 | Nippon Telegr & Teleph Corp <Ntt> | 通信システム、通信装置、通信方法、又はプログラム |
WO2011087085A1 (ja) * | 2010-01-14 | 2011-07-21 | 日本電気株式会社 | 計算機、ネットワーク接続切替え方法およびプログラム |
JP5664557B2 (ja) * | 2010-01-14 | 2015-02-04 | 日本電気株式会社 | 計算機、ネットワーク接続切替え方法およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP4217538B2 (ja) | 2009-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4727126B2 (ja) | 近距離無線コンピューティング装置用のセキュア・ネットワーク・アクセスの提供 | |
US6970445B2 (en) | Methods and apparatus for supporting session signaling and mobility management in a communications system | |
US7228414B2 (en) | Method and apparatus for transferring a communication session | |
CA2413944C (en) | A zero-configuration secure mobility networking technique with web-base authentication method for large wlan networks | |
US7042879B2 (en) | Method and apparatus for transferring a communication session | |
JP4091428B2 (ja) | 異種通信ネットワーク間のハンドオーバ方法 | |
US8272046B2 (en) | Network mobility over a multi-path virtual private network | |
US7228415B2 (en) | Method and apparatus for transferring a communication session | |
US20070195765A1 (en) | Method and system for a communication node with a plurality of network interfaces | |
US8385269B2 (en) | Enabling IPv6 mobility with sensing features for AD-HOC networks derived from long term evolution networks | |
US20040264465A1 (en) | Data transfer from a host server via a tunnel server to a wireless device, and associating a temporary ipv6 address with a temporary ipv4 address for communicating in an ipv4 wireless network with the device | |
JP4352048B2 (ja) | ドメイン間ハンドオーバ | |
US8451840B2 (en) | Mobility in IP without mobile IP | |
JP4410070B2 (ja) | 無線ネットワークシステムおよび通信方法、通信装置、無線端末、通信制御プログラム、端末制御プログラム | |
JP2004166270A (ja) | 無線ネットワークのハンドオフ暗号鍵 | |
US20140108668A1 (en) | Secured wireless session initiate framework | |
WO2010127610A1 (zh) | 一种虚拟专用网节点信息的处理方法、设备及系统 | |
JP2004180155A (ja) | 通信制御装置、ファイアウォール装置、通信制御システム、及び、データ通信方法 | |
US20040148430A1 (en) | Establishing communication tunnels | |
KR20110021945A (ko) | 네트워크 인증을 위한 방법, 장치, 시스템 및 서버 | |
CN112671763B (zh) | 组网环境下的数据同步方法、装置、计算机设备及存储介质 | |
JP2009501454A (ja) | リンク管理システム | |
JP4253569B2 (ja) | 接続制御システム、接続制御装置、及び接続管理装置 | |
EP2456156B1 (en) | Attachment method and system with identifier and location splitting in next generation network | |
US20110067089A1 (en) | method for switching a mobile terminal from a first access router to a second access router |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060403 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080711 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080805 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081006 |
|
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: 20081104 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081110 |
|
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: 20111114 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121114 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121114 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131114 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |