[go: nahoru, domu]

JP4217538B2 - Communication apparatus and communication method - Google Patents

Communication apparatus and communication method Download PDF

Info

Publication number
JP4217538B2
JP4217538B2 JP2003155759A JP2003155759A JP4217538B2 JP 4217538 B2 JP4217538 B2 JP 4217538B2 JP 2003155759 A JP2003155759 A JP 2003155759A JP 2003155759 A JP2003155759 A JP 2003155759A JP 4217538 B2 JP4217538 B2 JP 4217538B2
Authority
JP
Japan
Prior art keywords
communication
node
address
switching
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.)
Expired - Fee Related
Application number
JP2003155759A
Other languages
Japanese (ja)
Other versions
JP2004357252A (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.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
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 NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2003155759A priority Critical patent/JP4217538B2/en
Publication of JP2004357252A publication Critical patent/JP2004357252A/en
Application granted granted Critical
Publication of JP4217538B2 publication Critical patent/JP4217538B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、通信装置及び通信方法に関する。
【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)
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a communication device and a communication method.
[0002]
[Prior art]
When a mobile communication node moves between subnetworks having different address systems, the address is changed. Therefore, a technique for continuing communication even when the address of a mobile communication node is changed due to movement has been proposed. For example, in an IP (Internet Protocol) network, there is a mobile IP defined by RFC (Request for Comments) 2002.
[0003]
In mobile IP, a home address unique to a mobile communication node, which does not change regardless of which network exists, is given to the mobile communication node. A communication system using mobile IP communicates with a home agent in a mobile communication node, a home agent installed in a subnetwork including a home address, and a subnetwork to which the mobile communication node is moved. With a foreign agent.
[0004]
In a sub-network including a home address, the mobile communication node communicates with the counterpart node using the home address. Then, when the mobile communication node moves from the subnetwork including the home address to another subnetwork, the mobile communication node registers the location information of the destination in the home agent. The home agent receives data addressed to the home address of the mobile communication node from the partner node as a proxy for the mobile communication node. The home agent encapsulates and transmits the received data to the foreign agent installed in the subnetwork to which the mobile communication node is moving. The foreign agent extracts the data from the encapsulated data and transmits it to the mobile communication node. The mobile communication node uses the source address as its home address, and sends a direct reply to the partner node without going through the home agent.
[0005]
In this way, even when the address of the mobile communication node is changed to an address according to the address system of the destination subnetwork due to movement, the home agent knows the destination of the mobile communication node. As a result, data can be transferred to the destination foreign agent. Therefore, even if the mobile communication node moves, the counterpart node can continue communication with the mobile communication node only by sending data to the home address. That is, even if the address of the mobile communication node is changed during the communication, the mobile communication node and the partner node can continue the communication session. Note that the mobile communication node itself may have this foreign agent function.
[0006]
In addition, there is a mobile communication node that includes a plurality of communication interfaces and switches a communication interface to be used when moving between subnetworks having different address systems. At this time, since the address of each communication interface is different, it appears to the other node that the address of the mobile communication node has been changed. Also in this case, by adopting the mobile IP technology, communication with the counterpart node can be continued even if the communication interface is changed (see, for example, Patent Document 1).
[0007]
There has also been proposed a technique for concealing an address change due to switching of a communication interface to be used from an upper layer (see, for example, Patent Document 2). Specifically, the network address conversion unit converts the logical IP address of the upper layer and the physical IP address of the communication interface for the packet address. Thereby, the upper layer can communicate using only the logical IP address.
[0008]
[Patent Document 1]
Japanese Patent Laid-Open No. 2002-290445
[0009]
[Patent Document 2]
JP 2000-332776 A
[0010]
[Problems to be solved by the invention]
However, when switching the communication interface used by the mobile communication node, if the mobile IP technology is adopted, a third communication node such as a home agent or foreign agent can be used in addition to the end node that performs communication such as the mobile communication node and the counterpart node. I need it. As a result, the communication path of the data becomes redundant by passing through the home agent, the communication using the mobile IP cannot be performed due to the failure of the home agent or the foreign agent, and the fault tolerance of the entire communication system is reduced. Since the data is encapsulated between the home agent and the foreign agent, there is a problem that an overhead corresponding to the header used for the encapsulation is generated, and the network is heavily loaded due to the redundancy of the route and the occurrence of the overhead.
[0011]
Regarding the point that the communication path becomes redundant, mobile IPv6 has been improved, and in Mobile IPv6, a binding cache option for performing end-to-end communication without a home agent or foreign agent is provided. However, even in Mobile IPv6, it is necessary to go through the home agent at the start of communication, and the problem of fault tolerance still exists. In addition, there is a new problem that extra overhead is generated by adding route information about the communication node as an option to the header.
[0012]
In addition, there are the following problems in the technique of concealing the change of the address by switching the communication interface to be used from the upper layer. When the address of the mobile communication node is changed by switching the communication interface to be used, the counterpart node cannot confirm whether or not it is the same mobile communication node before and after the switching. For this reason, there is a risk that a session being communicated between the mobile communication node and the partner apparatus may be easily hijacked or data may be altered due to spoofing by a third party. That is, there is a problem that the security when switching the communication interface to be used is low.
[0013]
Further, there is one communication interface that can be used by a plurality of applications executed in the upper layer each time the communication interface is switched. That is, when the communication interface is switched, all applications performed in the upper layer communicate using the switched single communication interface. Therefore, when the communication interface suitable for each application is different, a communication environment suitable for each application cannot be provided.
[0014]
Accordingly, a first object of the present invention is to provide a communication device capable of continuing communication without using a third node, such as mobile IP, when switching the communication interface to be used, and improving security at that time. It is to provide a communication method. In addition, the second object of the present invention is to provide a communication environment suitable for each higher-layer application, in which communication can be continued without using a third node like mobile IP when the communication interface to be used is switched. An object of the present invention is to provide a communication device and a communication method that can be used.
[0015]
[Means for Solving the Problems]
The communication apparatus according to the present invention selects and switches a communication interface used for data transmission / reception (hereinafter referred to as “used communication interface”) from among a plurality of communication interfaces that transmit / receive data to / from a partner apparatus and a plurality of communication interfaces. The switching means and the virtual interface that obtains the data to be transmitted to the partner device from the upper layer than the network layer and provides the data transmitted from the partner device to the upper layer, and the address of the communication device added to the data Certifying information that proves that the communication device is the same before and after the switching when switching the used communication interface and the conversion means for converting between the address of the used communication interface and the address of the virtual interface And proof information providing means for providing.
[0016]
According to such a communication apparatus, the switching unit selects and switches the used communication interface from among the plurality of communication interfaces. The virtual interface acquires data to be transmitted to the counterpart device from the upper layer than the network layer, and provides the data transmitted from the counterpart device to the upper layer. Then, the converting means converts the address of the communication device added to the data between the address of the used communication interface and the address of the virtual interface. Therefore, the communication device can switch the used communication interface. Moreover, the communication device can conceal the switching of the used communication interface from the upper layer, and the upper layer can communicate using the address of the virtual interface that does not always change. Therefore, in the upper layer of the communication device, communication can be continued without using the third node as in the mobile IP even when the communication interface to be used is switched.
[0017]
Furthermore, the proof information providing means provides proof information for certifying that the communication device itself is the same before and after the switching when the communication interface to be used is switched. Therefore, when the communication interface used by the communication device is switched and the address of the communication device viewed from the partner device is changed, the partner device is the same communication device before and after switching based on the certification information. You can authenticate whether or not there is. Therefore, the communication apparatus can improve the security at the time of switching the used communication interface.
[0018]
Further, it is preferable that the certification information providing means generates shared information to be shared with the counterpart device as certification information before switching. According to this, the partner apparatus can authenticate the communication apparatus based on the shared information generated in advance between the communication apparatus and the partner apparatus before the communication apparatus switches the communication interface to be used. Therefore, the communication device can further increase security when switching the used communication interface.
[0019]
Further, when the partner device includes a plurality of communication interfaces, the partner device proves that the partner device is the same before and after switching when the partner device switches the communication interface used by the partner device. It is preferable to provide authentication means for acquiring certification information and authenticating the counterpart device based on the acquired counterpart device certification information.
[0020]
According to this, when the partner device also has a plurality of communication interfaces and performs switching, the communication device determines whether the partner device is the same partner device before and after switching based on the partner device certification information. Can be authenticated. Therefore, the communication device can improve security when the partner device switches the communication interface to be used.
[0021]
In addition, when another communication device switches a communication interface to be used from another device having a plurality of communication interfaces for transmitting and receiving data, the other device proves that the other device is the same before and after switching. An authentication unit is provided for acquiring certification information and authenticating the counterpart device based on the acquired counterpart device certification information.
[0022]
According to this, when the communication interface used by the partner device is switched and the address of the partner device viewed from the communication device is changed, the communication device determines whether the partner device is before or after switching based on the partner device certification information. It is possible to authenticate whether or not they are the same counterpart device. Therefore, the communication apparatus can improve the security at the time of switching the used communication interface.
[0023]
In addition, other communication devices can select and switch the communication interface to be used for each application performed in a layer higher than the network layer from among a plurality of communication interfaces that transmit and receive data to and from the partner device and a plurality of communication interfaces. Means for acquiring data to be transmitted to the partner device from the upper layer, providing the data transmitted from the partner device to the upper layer, and the address of the communication device added to the data for each application. It is characterized by comprising conversion means for converting between the address of the used communication interface and the address of the virtual interface.
[0024]
According to such a communication apparatus, the switching means selects and switches the used communication interface for each application from among a plurality of communication interfaces. The virtual interface acquires data to be transmitted to the counterpart device from the upper layer, and provides the data transmitted from the counterpart device to the upper layer. Then, the conversion means converts the address added to the data between the address of the used communication interface and the address of the virtual interface for each application.
[0025]
Therefore, the communication device can switch the used communication interface for each application. Therefore, each application performed in the upper layer can communicate using a communication interface suitable for each application. As a result, the communication device can provide a communication environment suitable for each application. In addition, the communication device can conceal the switching of the used communication interface for each application from the upper layer, and the upper layer can always communicate using the address of the virtual interface that does not change. Therefore, in the upper layer of the communication device, communication can be continued without using the third node as in the mobile IP even when the communication interface to be used is switched.
[0026]
Furthermore, it is preferable that the communication device includes a notification unit that notifies the partner device of switching of the communication interface used for each application performed by the switching unit. According to this, the communication device can notify the partner device in advance of switching of the communication interface used for each application. Therefore, the counterpart device can appropriately perform the process associated with the change of the communication interface used in the communication device.
[0027]
Moreover, it is preferable that the conversion means converts the address of the communication device added to the data between the address of the communication interface used for each session used in the application and the address of the virtual interface. According to this, the communication device can switch the used communication interface for each session. Therefore, each application performed in the upper layer can communicate using a communication interface suitable for each session. As a result, the communication apparatus can provide a communication environment suitable for each application session. A session refers to a series of processes from establishment of a communication path to release of the communication path.
[0028]
In addition, the other communication device includes the address of the partner device having a plurality of communication interfaces added to the data, the address of the communication device used after the partner device switches the communication interface to be used, and the communication used at the start of communication. It is characterized in that it is provided with counterpart address conversion means for converting between addresses of the interface. According to such a communication apparatus, even if the partner apparatus switches the communication interface to be used, it can be seen that the address does not always change. Therefore, in the communication apparatus, even if the partner apparatus switches the communication interface to be used, communication can be continued without using the third node like the mobile IP.
[0029]
The communication method according to the present invention acquires a plurality of communication interfaces for transmitting / receiving data to / from a partner device, data to be transmitted to the partner device from a higher layer than the network layer, and transmits the data transmitted from the partner device to a higher layer. The communication device provided with the virtual interface provided to the device selects and switches the used communication interface from the plurality of communication interfaces, and the communication device is the same before and after switching to the partner device when switching. Providing certification information for certifying, the counterpart device authenticates the communication device based on the certification information acquired from the communication device, the communication device that has received the authentication, the address of the communication device added to the data, The conversion is performed between the address of the used communication interface and the address of the virtual interface.
[0030]
Another communication method is a virtual interface that obtains data to be transmitted to a partner device from a plurality of communication interfaces that transmit / receive data to / from the partner device and an upper layer, and provides the data transmitted from the partner device to the upper layer. A communication device having an interface selects a communication interface to be used from among a plurality of communication interfaces for each application performed in an upper layer and switches the address of the communication device added to the data for each application. The conversion is performed between the address of the interface and the address of the virtual interface.
[0031]
DETAILED DESCRIPTION OF THE INVENTION
[First Embodiment]
The communication system includes a node A100 illustrated in FIG. 1 and a node B200 illustrated in FIG. The node A 100 and the node B 200 are communication devices that transmit and receive data. The node A100 is a counterpart device for the node B200, and the node B200 is a counterpart device for the node A100. In order to simplify the description, description will be made using two nodes A100 and B200, but the communication system includes a large number of nodes.
[0032]
[Node A]
The node A 100 is a mobile communication node that performs mobile communication. As shown in FIG. 1, the node A 100 includes a plurality of communication interfaces (# 1) 11 to a communication interface (#N) 1n, a communication interface switching manager 20, a session manager 30, an address conversion function unit 40, and a plurality of Application unit (# 1) 51 to application unit (#N) 5n.
[0033]
The communication interface (# 1) 11 to the communication interface (#N) 1n transmit / receive data to / from the node B 200 that is the counterpart device. The communication interface (# 1) 11 to the communication interface (#N) 1n each have a communicable network. The communication interface (# 1) 11 to the communication interface (#N) 1n communicate with the Node B 200 via a corresponding communicable network. Each communication interface (# 1) 11 to communication interface (#N) 1n is assigned an address. The communication interface (# 1) 11 has “add_A1” as an address, the communication interface (# 2) 12 has “add_A2” as an address, and the communication interface (#N) 1n has “add_An” as an address. Has been granted.
[0034]
The communication interface (# 1) 11 to the communication interface (#N) 1n acquire data to be transmitted to the node B 200 from the address conversion function unit 40. The communication interface (# 1) 11 to the communication interface (#N) 1n input the data received from the node B 200 to the address conversion function unit 40. Further, the communication interface (# 1) 11 to the communication interface (#N) 1n receive input of information necessary for control from the session manager 30, and transmit to the node B 200, or receive information necessary for control from the node B 200. Or input to the session manager 30.
[0035]
The application unit (# 1) 51 to the application unit (#N) 5n perform applications in an application layer higher than the network layer. Each application part (# 1) 51 to application part (#N) 5n execute the respective applications. The application unit (# 1) 51 performs the application (# 1), the application unit (# 2) 52 performs the application (# 2), and the application unit (#N) 5n performs the application (#N). .
[0036]
The application unit (# 1) 51 to the application unit (#N) 5n input data to be transmitted to the node B 200 to the address conversion function unit 40. The application unit (# 1) 51 to the application unit (#N) 5n acquire the data transmitted from the node B 200 from the address conversion function unit 40.
[0037]
The communication interface switching manager 20, the session manager 30, and the address translation function unit 40 perform processing in the network layer in the protocol stack. The communication interface switching manager 20, the session manager 30, and the address conversion function unit 40 include, for example, middleware that the node A100 functions as the communication interface switching manager 20, the session manager 30, and the address conversion function unit 40 in the network layer. Implemented and executed by executing the middleware.
The communication interface switching manager 20 is switching means for selecting and switching a communication interface to be used for data transmission / reception from among a plurality of communication interfaces (# 1) 11 to communication interfaces (#N) 1n. The communication interface switching manager 20 includes a switching determination unit 21, a memory 22, and a switching instruction unit 23.
[0038]
The switching determination unit 21 monitors by constantly detecting the states of the plurality of communication interfaces (# 1) 11 to communication interface (#N) 1n. The switching determination unit 21 changes the communication environment such as the radio wave intensity and the location status of the communication interface (# 1) 11 to the communication interface (#N) 1n from the communication interface (# 1) 11 to the communication interface (#N) 1n. The status of the communication interface (# 1) 11 to the communication interface (#N) 1n are detected based on the acquired status of the communication environment, the status of the failure, and the like.
[0039]
As shown in FIG. 3, the switching determination unit 21 has three types of states of “communication”, “communication standby”, and “communication impossible” as shown in FIG. Classify into: “During communication” is a state in which the communication interface is used for data transmission / reception, and is a state in which data is input to the communication interface for communication. “Communication standby” is a state in which the communication interface is in a communicable state but is not used for data transmission / reception. That is, “communication standby” is a state in which the communication interface is in a communicable state but is not actually communicating. “Unable to communicate” is a state in which the communication interface cannot be used due to physical reasons such as the radio wave does not reach the communication interface, the node A 100 exists outside the service area, or the communication interface is broken. That is, “communication impossible” indicates a state in which the communication interface cannot physically communicate.
[0040]
“Communicating” and “communication standby” are distinguished by a switching policy which is a selection criterion for selecting a communication interface to be used. Further, “communication standby” and “communication impossible” are distinguished by communication environment conditions such as radio wave intensity and in-zone conditions, failure conditions, and the like. Furthermore, the transition from “communication” to “communication impossible” is determined as follows. Data transmission / reception may be suddenly interrupted during communication. First, the switching determination unit 21 immediately determines that “communication is impossible” when it is determined that the cause is a communication interface failure based on the failure state. When the switching determination unit 21 determines that the failure is not caused by the communication interface failure, the time during which data transmission / reception is interrupted such that data cannot be transmitted to the partner device Node B 200 or data cannot be received from the Node B 200 ( (Hereinafter referred to as “cutting time”).
[0041]
The switching determination unit 21 determines whether or not the communication has been disconnected based on the communication environment status such as the radio field intensity and the location status of the communication interface (# 1) 11 to the communication interface (#N) 1n and the disconnection time. To do. The node user and the switching determination unit 21 set the reference value of the radio wave intensity and the disconnection time, which are the criteria for determining whether or not the communication has been disconnected, and the determination criteria for determining whether or not the communication has been disconnected based on the location status. Alternatively, default values and conditions are set in advance. For example, the switching determination unit 21 can determine that the communication has been disconnected when the radio wave intensity is smaller than the reference value, or when the disconnection time is longer than the reference value and the service area is out of service area.
[0042]
When the switching determination unit 21 determines that the communication has been disconnected, the switching determination unit 21 determines whether or not the cause is the node A 100 based on the state of the communication environment such as the radio wave intensity and the location status. The switching determination unit 21 is, for example, when the radio field strength of the communication interface (# 1) 11 to the communication interface (#N) 1n is small, or the communication interface (# 1) 11 to the communication interface (#N) 1n is in its service area. If it exists outside, it is determined that the cause is the node A100. When it is determined that the cause is the node A 100, the switching determination unit 21 determines that the state of the communication interface has changed from “communication” to “communication impossible”.
[0043]
On the other hand, the switching determination unit 21 is, for example, when the radio field strength of the communication interface (# 1) 11 to the communication interface (#N) 1n is large or the communication interface (# 1) 11 to the communication interface (#N) 1n If it exists in the service area, it is determined that the cause is not in the node A 100 but in the node B 200 as the counterpart device. When the switching determination unit 21 determines that the communication is not disconnected, or determines that the cause is not in the node A 100, the state remains “in communication”.
[0044]
The switching determination unit 21 changes the communication environment such as the location status and radio wave intensity of the communication interface (# 1) 11 to the communication interface (#N) 1n at the start of communication or due to movement of the node A100. # 1) When a state change of 11 to 11 (communication interface (#N) 1n is detected, the communication interface to be used is selected.
[0045]
The switching determination unit 21 selects a communication interface to be used based on the switching policy. The switching policy may be set for each of a plurality of applications performed in a layer higher than the network layer. In that case, the switching determination unit 21 selects a communication interface to be used for each application based on the switching policy for each application. The switching policy can be set based on items prioritized in the mobile node A100 and items prioritized in each application, such as communication cost, communication speed, security, and continuity of communication when the node A100 moves.
[0046]
As the switching policy, for example, as shown in FIG. 4, it is possible to set a condition that gives priority to use to the communication interface (# 1) 11 to the communication interface (#N) 1n. In addition, the switching policy can set conditions for assigning priorities to use to the communication interface (# 1) 11 to the communication interface (#N) 1n for each of a plurality of applications (# 1) to applications (#N). .
[0047]
For example, the user of the node A 100 can set the priority by directly determining the priority of each communication interface (# 1) 11 to communication interface (#N) 1n. Alternatively, first, the user determines items to be prioritized in the mobile node A 100 and items to be prioritized in each application, such as communication cost, communication speed, security, and continuity of communication during movement, and inputs them to the switching determination unit 21. . And the switching determination part 21 can set a priority by determining the priority of a communication interface based on the input item. That is, the switching determination unit 21 automatically determines the priority order based on the items that the user prioritizes and the state and performance of each communication interface (# 1) 11 to communication interface (#N) 1n.
[0048]
The switching policy can be set by the user of the node A 100 as described above, can be automatically set by the switching determination unit 21, or default conditions can be set in advance. The memory 22 holds the switching policy. In this way, the communication interface switching manager 20 sets and stores the switching policy, and controls the switching policy.
[0049]
When the selected used communication interface is the same as the currently used communication interface, the switching determination unit 21 determines that the used communication interface is not switched. On the other hand, when the selected used communication interface is different from the currently used communication interface, the switch determining unit 21 determines to switch the used communication interface. At this time, the switching determination unit 21 may determine switching of the used communication interface for each application.
[0050]
When the status change is “transition” to “communication impossible”, the switching determination unit 21 determines whether there is a usable communication interface whose status is “communication standby”. To do. The switching determination unit 21 determines that switching is performed when there is a usable communication interface, and selects a used communication interface. On the other hand, when there is no usable communication interface, the node A 100 cannot communicate. Therefore, the switching determination unit 21 determines that communication is interrupted without switching.
[0051]
When it is determined that the used communication interface is to be switched, the switching determination unit 21 notifies the session manager 30 of the execution of the switching and the content of the switching. The contents of the switching include the communication interface currently being used as a switching target and the newly selected switching destination communication interface. In this way, the switching determination unit 21 instructs the session manager 30 to perform processing associated with switching the communication interface in use. Further, the switching determination unit 21 notifies the session manager 30 of the selected communication interface at the start of communication. When selecting a communication interface to be used for each application or switching, the switching determination unit 21 notifies the execution of switching and the content of switching for each application, or notifies the selected communication interface. To do. That is, the switching determination unit 21 specifies the application and instructs the session manager 30 to perform processing associated with switching the used communication interface.
[0052]
Further, when the switching determination unit 21 determines to interrupt communication, the switching determination unit 21 notifies the session manager 30 of communication interruption. Further, when the switching determination unit 21 determines that the communication is disconnected and determines that the cause is the node B 200 as the counterpart device, the switching determination unit 21 notifies the session manager 30 of the communication disconnection.
[0053]
Further, the switching determination unit 21 notifies the switching instruction unit 23 of the execution of switching and the content of the switching, and instructs to switch the communication interface used. On the other hand, when it is determined that the communication interface to be used is not switched, the switching determination unit 21 does not perform processing related to switching. When the state change has shifted from “in communication” to “communication impossible” and switching is not performed, the switching determination unit 21 notifies the switching instruction unit 23 that “communication is impossible”. Notify the determined communication interface. Further, at the start of communication, the switching determination unit 21 notifies the switching instruction unit 23 of the selected communication interface and instructs to start communication using the communication interface. Further, the switching determination unit 21 instructs the switching instruction unit 23 based on the notification from the session manager 30.
[0054]
The switching instruction unit 23 switches the used communication interface. Specifically, the switching instruction unit 23 performs switching based on the content of switching notified from the switching determination unit 21. The switching instruction unit 23 activates the newly selected switching destination communication interface and changes the state to “in communication”. The currently used communication interface to be switched is terminated, and the communication interface capable of communication is changed to “communication standby”. Even when switching is not performed, the switching instruction unit 23 ends the communication interface determined to be “communication impossible”. Further, the switching instruction unit 23 activates the selected communication interface at the start of communication and changes it to “during communication”. Further, the switching instruction unit 23 activates or terminates the communication interface (# 1) 11 to the communication interface (#N) 1n according to an instruction based on the notification from the session manager 30.
[0055]
The address conversion function unit 40 includes a virtual interface 41, an address switching unit 42, and a buffer 43. The virtual interface 41 acquires data to be transmitted to the node B 200 that is the counterpart device from an upper layer than the network layer, and provides the data transmitted from the node B 200 that is the counterpart device to the upper layer. The virtual interface 41 acquires data to be transmitted to the node B 200 from the application unit (# 1) 51 to the application unit (#N) 5n, and uses the data transmitted from the node B 200 as the application unit (# 1) 51 to the application. Part (#N) 5n.
[0056]
An address is given to the virtual interface 41. The virtual interface 41 is given a fixed virtual address “add_V” that does not depend on the used communication interface. Note that the upper layer from which the virtual interface 41 acquires and provides data is not limited to the application layer, and may be any of a transport layer, a session layer, and a presentation layer that are higher than the network layer.
[0057]
The address switching unit 42 is a conversion unit that converts the address added to the data between the address of the used communication interface and the virtual address of the virtual interface 41. The address switching unit 42 changes the address of the used communication interface to be converted between the addresses “add_A1” to “add_An” of the communication interface (# 1) 11 to the communication interface (#N) 1n in accordance with the switching of the used communication interface. Switch. In other words, when the used communication interface is switched, the address switching unit 42 changes the address of the used communication interface that is the conversion partner of the virtual address of the virtual interface 41 to the address of the switching destination communication interface.
[0058]
The address switching unit 42 holds the addresses “add_A1” to “add_An” of the plurality of communication interfaces (# 1) 11 to communication interfaces (#N) 1n. The address switching unit 42 selects the address of the communication interface to be used from the held addresses of the communication interfaces, and performs conversion with the virtual address of the virtual interface 41. When the communication interface switching manager 20 selects or switches the used communication interface for each application, the address switching unit 42 sets the used communication interface address and the virtual address of the virtual interface 41 for each application. Convert between.
[0059]
Further, the address switching unit 42 converts communication parameters other than the address that needs to be changed in accordance with the conversion of the address of the communication interface used and the virtual address of the virtual interface 41. The address switching unit 42 also converts communication parameters other than the addresses that need to be changed when the used communication interface is switched even when the used communication interface is switched. Note that the address switching unit 42 does not convert the address of the node B 200. The address switching unit 42 acquires data from the virtual interface 41 and the buffer 43 and converts communication parameters. The address switching unit 42 inputs data obtained by converting communication parameters to the buffer 43 and the virtual interface 41.
[0060]
In this way, the address conversion function unit 40 provides the virtual interface 41, and includes a communication parameter including the address of the used communication interface that changes due to switching, and a communication parameter including the virtual address of the virtual interface 41 that does not change due to switching. , So that communication can be performed in the network layer. For this reason, the address conversion function unit 40 makes it appear to the application unit (# 1) 51 to the application unit (#N) 5n, which are higher layers, that communication is always performed using the virtual address of the virtual interface 41 that does not change. be able to. Therefore, the address conversion function unit 40 guarantees the communication performed between the upper layer of the node A 100 and the upper layer of the node B 200 in the network layer, that is, the maintenance of the session between the upper layers.
[0061]
The buffer 43 receives the data transmitted from the application unit (# 1) 51 to the application unit (#N) 5n to the node B 200 from the address switching unit 42 and holds the data. The buffer 43 receives and holds the data received by the communication interface (# 1) 11 to the communication interface (#N) 1n from the communication interface (# 1) 11 to the communication interface (#N) 1n.
[0062]
The session manager 30 controls processing associated with switching of the used communication interface. Furthermore, the session manager 30 controls address conversion in the address conversion function unit 40. For this purpose, the session manager 30 grasps the detailed operation contents regarding the address conversion performed by the address conversion function unit 40 and the switching of the address of the used communication interface to be converted, and the address conversion function unit 40 when switching the used communication interface. Control the processing.
[0063]
The session manager 30 includes a switching instruction unit 31, an agent 32, and a timer 33. The switching instruction unit 31 receives notification of execution of switching and details of the switching from the switching determination unit 21 of the communication interface switching manager 20. The switching instruction unit 31 receives a notification of the selected communication interface from the switching determination unit 21 at the start of communication. Then, the switching instruction unit 31 notifies the agent 32 of the contents of switching and the selected communication interface, and instructs to perform processing at the time of switching the used communication interface or starting communication.
[0064]
Further, the switching instruction unit 31 controls the maintenance of a session between the upper layer of the node A 100 and the upper layer of the node B 200. Specifically, the switching instruction unit 31 instructs the agent 32 to disconnect the session when the switching determination unit 21 is notified of the interruption of communication. Further, the switching instruction unit 31 is notified of the disconnection of communication from the switching determination unit 21, that is, when the switching determination unit 21 determines that the communication is disconnected, and the cause is the partner device. If it is determined that the node B 200 exists, the timer 33 is started. The timer 33 measures the session maintenance time for maintaining the session.
[0065]
In addition, the switching instruction unit 31 receives a notification of reception of new data from the agent 32. The switching instruction unit 31 determines that the session is maintained before the timer value of the timer 33 expires, that is, when a notification of reception of new data is received from the agent 32 within the session maintenance time. On the other hand, when the timer 33 has expired, the switching instruction unit 31 does not receive a notification of new data reception from the agent 32, that is, receives new data from the agent 32 within the session maintenance time. If no notification is received, it is determined that the session is disconnected and communication is interrupted. Then, the switching instruction unit 31 instructs the agent 32 to disconnect the session.
[0066]
The agent 32 receives notification of switching contents and a selected communication interface from the switching instruction unit 31. Then, the agent 32 performs processing at the time of switching the used communication interface or starting communication.
[0067]
First, the agent 32 switches to a new used communication interface as a switching destination in terms of security and performs negotiation with the node B 200 to continue the communication so far. The agent 32 generates a certificate certifying a session between the upper layer of the node A 100 and the upper layer of the node B 200 at the start of communication before switching. The session certificate proves that the same node A 100 and node B 200 handle the same session even if the communication interface used is switched. Therefore, the session certificate becomes certification information for certifying that the communication device is the same before and after switching, and partner device certification information for certifying that the partner device is the same.
[0068]
The agent 32 generates a session certificate as shared information shared with the Node B 200. The agent 32 generates shared information that only the node A 100 and the node B 200 can know. The agent 32 holds the generated shared information. The agent 32 uses the shared information as proof information that proves that the node A 100 itself is the same. When the used communication interface is switched, the agent 32 provides shared information to the Node B 200 via the new used communication interface of the switching destination. Then, the agent 32 receives authentication of the node B 200 and continues communication. As described above, the agent 32 functions as certification information providing means for providing certification information that proves that the node A 100 itself is the same before and after the switching to the node B 200 as the counterpart device when switching the communication interface to be used. To do.
[0069]
At the start of communication, the agent 32 notifies the address conversion function unit 40 of the address of the communication interface used as the virtual address conversion partner of the virtual interface 41, and instructs the conversion. When the used communication interface is switched, the agent 32 instructs the address translation function unit 40 to change the address of the used communication interface that is the virtual address translation partner to the address of the new switching destination communication interface. When the communication interface switching manager 20 selects or switches the communication interface to be used for each application, the agent 32 switches between the used communication interface address for each application and the virtual address of the virtual interface 41. Instruct the conversion of.
[0070]
The agent 32 also functions as a notification means for notifying the node B 200, which is the counterpart device, of the switching of the used communication interface performed by the communication interface switching manager 20. When the communication interface switching manager 20 selects or switches the used communication interface for each application, the agent 32 notifies the node B 200 of switching of the used communication interface for each application. Specifically, the agent 32 requests the node B 200 to switch and notifies the address of the new communication interface of the switching destination. Further, the agent 32 requests the node B 200 to continue data in place of the application unit (# 1) 51 to the application unit (#N) 5n at the time of switching.
[0071]
The agent 32 manages the buffer 43 of the address translation function unit 40. The agent 32 keeps track of the data held in the buffer 43. Then, the agent 32 requests the node B 200 to continue the data held in the buffer 43. Further, when new data arrives in the buffer 43, the agent 32 notifies the switching instruction unit 31 of reception of data from the node B 200.
[0072]
The agent 32 is instructed by the switching instruction unit 31 to disconnect the session between the upper layer of the node A 100 and the upper layer of the node B 200. The agent 32 instructs the address switching function unit 40 to end the processing related to the session, and disconnects the session. The agent 32 notifies the switching instruction unit 31 that new data has been received. The agent 32 transmits / receives information necessary for control to / from the node B 200 via the communication interface (# 1) 11 to the communication interface (#N) 1n when generating or providing shared information or requesting the continuation of data. To do.
[0073]
[Node B]
Node B 200 is a fixed node such as a server. As shown in FIG. 2, the node B includes a communication interface 60, a session manager 70, an address conversion function unit 80, and a plurality of application units (# 1) 91 to application units (#N) 9n.
[0074]
The Node B 200 includes a single communication interface 60. Therefore, unlike the node A 100, the communication interface switching manager 20 is not provided. The communication interface 60 transmits and receives data to and from the node A100 that is the counterpart device. An address “add_B” is assigned to the communication interface 60. The communication interface 60 acquires data to be transmitted to the node A 100 from the address conversion function unit 80. The communication interface 60 inputs the data received from the node A 100 to the address conversion function unit 80. Further, the communication interface 60 receives information necessary for control from the session manager 70 and transmits it to the node A 100, receives information necessary for control from the node A 100, and inputs it to the session manager 70.
[0075]
The application unit (# 1) 91 to the application unit (#N) 9n perform applications in the application layer. The application units (# 1) 91 to the application units (#N) 9n execute the respective applications (# 1) to (#N). The application unit (# 1) 91 to the application unit (#N) 9n input data to be transmitted to the node A100 to the address conversion function unit 80. The application unit (# 1) 91 to the application unit (#N) 9n acquire the data transmitted from the node A100 from the address conversion function unit 80.
[0076]
The session manager 70 and the address translation function unit 80 perform processing in the network layer in the protocol stack. The session manager 70 and the address translation function unit 80 are realized by, for example, the node B 200 mounting middleware functioning as the session manager 70 and the address translation function unit 80 in the network layer and executing the middleware.
[0077]
The address conversion function unit 80 includes a virtual interface 81 and an address switching unit 82. The virtual interface 81 acquires data to be transmitted to the node A100, which is the counterpart device, from the upper layer than the network layer, and provides the data transmitted from the node A100, which is the counterpart device, to the upper layer. The virtual interface 81 acquires data to be transmitted to the node A100 from the application unit (# 1) 91 to the application unit (#N) 9n, and uses the data transmitted from the node A100 as the application unit (# 1) 91 to the application. Part (#N) 9n.
[0078]
An address is assigned to the virtual interface 81. Since the node B 200 has only a single communication interface 60, the number of communication interfaces used is always one. Therefore, there is no need to give the virtual interface 81 a fixed virtual address that does not depend on the used communication interface. Therefore, the same address “add_B” as that of the communication interface 60 is assigned to the virtual interface 81. Note that the upper layer from which the virtual interface 81 acquires and provides data is not limited to the application layer, and may be any one of a transport layer, a session layer, and a presentation layer that are higher than the network layer.
[0079]
The address switching unit 82 communicates the address of the node A100, which is the counterpart device added to the data, with the address of the used communication interface after the node A100 switches the used communication interface (hereinafter referred to as “switching destination address”). This is a partner address conversion means for converting between addresses of communication interfaces used by the node A 100 at the time of start (hereinafter referred to as “start time address”).
[0080]
The address switching unit 82 changes the switching destination address to be converted in accordance with the switching of the used communication interface performed by the node A100. That is, when the used communication interface of the node A 100 is switched, the address switching unit 82 changes the switching destination address, which is the conversion partner of the start address, from the switching destination communication interface (# 1) 11 to the communication interface (#N) 1n. Change to the address. Note that when the node A 100 switches the communication interface used for each application, the address switching unit 82 performs conversion between the switching destination address for each application and the start address for each application.
[0081]
Further, the address switching unit 82 converts communication parameters other than the address that needs to be changed in accordance with the conversion of the switching destination address and the start address. Further, the address switching unit 42 converts communication parameters other than the addresses that need to be changed when the communication interface used by the node A 100 is switched a plurality of times and the switching destination address is switched. The address switching unit 42 acquires data from the communication interface 60 and the virtual interface 81 and converts communication parameters. The address switching unit 82 inputs data obtained by converting communication parameters to the communication interface 60 and the virtual interface 81.
[0082]
Note that the address switching unit 82 does not convert the address of the node B 200. Further, the address switching unit 82 does not convert the address of the node A 100 while the node A 100 does not switch the communication interface to be used. In the meantime, the address switching unit 82 only exchanges data between the virtual interface 81 and the communication interface 60. As described above, in a communication apparatus that does not include a plurality of communication interfaces, the control load can be reduced by using the same address as that of the communication interface 60 as the address of the virtual interface 81 and not converting the own address.
[0083]
In this way, the address conversion function unit 80 provides the virtual interface 81, and the communication parameter including the switching destination address that changes when the node A100, which is the counterpart device, switches the communication interface to be used, and the start address. The included communication parameters are converted so that communication can be performed in the network layer. For this reason, the address conversion function unit 80 can make the address of the node A 100 not always change to the application unit (# 1) 81 to the application unit (#N) 8n which are higher layers. Therefore, the address translation function unit 80 guarantees communication performed between the upper layer of the node A 100 and the upper layer of the node B 200 in the network layer, that is, maintenance of a session between the upper layers. That is, the node B 200 can continue communication with the node A 100 by using the start address as a fixed virtual address that does not depend on switching of the communication interface used by the node A 100.
[0084]
The session manager 70 controls processing associated with switching of the communication interface used by the node A100. Further, the session manager 70 controls address conversion in the address conversion function unit 80. The session manager 70 includes a control unit 71, an agent 72, and a timer 73.
[0085]
The control unit 71 controls the maintenance of a session between the upper layer of the node B 200 and the upper layer of the node A 100. Specifically, the control unit 71 determines disconnection of communication. When the control unit 71 determines that transmission / reception of data is suddenly interrupted during communication and the failure of the communication interface 60 is not the cause, the control unit 71 measures the disconnection time. When the communication interface 60 is wireless, the communication interface 60 also acquires the communication environment status such as the radio field intensity and the location status of the communication interface 60. The control unit 71 determines whether communication is disconnected based on the disconnection time. When the communication interface 60 is wireless, it is determined whether or not the communication is disconnected based on the status of the communication environment and the disconnection time.
[0086]
When the control unit 71 determines that the communication is disconnected, the control unit 71 starts the timer 73. The timer 73 measures the session maintenance time. In addition, the control unit 71 receives from the agent 72 notification regarding negotiation and reception of new data. The control unit 71 stops the timer 73 when receiving a reception notification from the agent 72 before the timer value of the timer 73 expires. On the other hand, even if the timer value of the timer 73 expires, the control unit 71 determines that the session is to be disconnected if no reception notification is received from the agent 72. Then, the control unit 71 instructs the agent 72 to disconnect the session.
[0087]
The agent 72 performs processing when the communication device used by the node A100, which is the counterpart device, is switched or when communication is started. First, the agent 72 switches to the new used communication interface of the switching destination safely for security, and performs negotiation with the node A100 for continuing the communication so far. The agent 72 generates a certificate certifying a session between the upper layer of the node B 200 and the upper layer of the node A 100 at the start of communication before switching. The agent 72 generates a session certificate as shared information shared with the node A 100. The agent 72 generates shared information that only the node B 200 and the node A 100 can know. The agent 72 holds the generated shared information. The agent 72 uses the shared information as counterpart device certification information that proves that the counterpart device Node A 100 itself is the same.
[0088]
The agent 72 receives a notification of switching the used communication interface from the node A 100. The agent 72 requests shared information from the node A 100. Then, the agent 72 acquires shared information from the node A 100 via the communication interface 60, and authenticates the node A 100 based on the acquired shared information. In this way, when the node A100, which is the counterpart device, switches the communication interface to be used, the agent 72 acquires the counterpart device certification information that proves that the node A100 itself is the same before and after the switching, and the acquired counterpart device. It functions as an authentication means for authenticating the node A 100 based on the certification information.
[0089]
When the agent 72 receives a notification of switching the used communication interface from the node A 100, the agent 72 instructs the address conversion function unit 80 to convert the switching destination address and the start address. When the used communication interface of the node A 100 is switched a plurality of times, the agent 72 instructs to change the switching destination address. Note that when the node A 100 switches the communication interface to be used for each application, the agent 72 instructs conversion between the switching destination address for each application and the start address for each application.
[0090]
The agent 72 is instructed by the control unit 71 to disconnect the session between the upper layer of the node B 200 and the upper layer of the node A 100. The agent 72 instructs the address switching function unit 80 to end the processing related to the session, and disconnects the session. Note that the agent 72 notifies the switching instruction unit 71 of reception of information related to negotiation and new data. In addition, the agent 72 transmits and receives information necessary for control to and from the node A 100 via the communication interface 60 when generating, requesting, and acquiring shared information, or when receiving notification of switching of the used communication interface.
[0091]
Next, communication methods performed by the node A 100 and the node B 200 will be described separately when communication is started, when a communication interface to be used is switched, and when communication is disconnected.
[0092]
[When communication starts]
The switching determination unit 21 of the node A 100 uses the communication interface (# 1) 11 to the communication interface (#N) 1n whose status is “communication standby” based on the switching policy held by the memory 22. Select. A case where the communication interface (# 1) 11 is selected will be described as an example. Upon receiving notification of the used communication interface from the switching determination unit 21, the switching instruction unit 23 activates the selected communication interface (# 1) 11 to “communication”.
[0093]
Further, the switching instruction unit 31 that has received the notification of the used communication interface from the switching determination unit 21 notifies the agent 32 of the selected communication interface (# 1) 11. Then, negotiation is performed between the agent 32 of the node A 100 and the agent 72 of the node B 200 to generate a certificate of a session between the node A 100 and the node B 200 as shared information. Hereinafter, the negotiation performed at the start of communication is referred to as “option 1”. At this time, the node A 100 communicates using the communication interface (# 1) 11.
[0094]
As shown in FIG. 5, first, key exchange is performed in order to perform encrypted communication between the node A100 and the node B200. Specifically, the node A 100 that starts communication requests the start, establishes a communication path with the node B 200 by a three-way handshake, and starts a session. The agent 32 of the node A 100 requests the node B 200 for key exchange. At this time, the agent 32 proposes a parameter for key exchange (hereinafter referred to as “key exchange parameter”), and notifies the node identifier of the node A 100 to the node B 200 (S101).
[0095]
The agent 72 of the node B 200 determines whether to generate shared information. Since the node B 200 has a function of processing option 1, it determines to generate shared information. In the case of a node that does not have the function of processing option 1, it is determined that shared information is not generated, and the node A 100 is notified that the processing of option 1 is to be stopped. The agent 72 of the node B 200 selects a key exchange parameter from the key exchange parameters proposed by the node A 100. The agent 72 transmits the selected key exchange parameter and information disclosed to the node A 100 that matches the key exchange parameter to the node A 100 (S102).
[0096]
The agent 32 of the node A 100 transmits information disclosed to the node B 200 that matches the key exchange parameter selected by the node B 200 to the node B 200 (S103). Then, the agent 32 of the node A 100 and the agent 72 of the node B 200 generate a shared key using a key exchange algorithm based on the information disclosed to each other (S104).
[0097]
The processing of option 1 after generation of the shared key, steps (S105) to (S109) are performed by encrypted communication using the generated shared key. The agent 32 of the node A 100 transmits information used for generating a certificate that is shared information (hereinafter referred to as “generation source information”) to the node B 200. The source information includes communication device identification information for identifying a communication device, partner device identification information for identifying a partner device, communication device user identification information for identifying a user of the communication device, and partner device user identification for identifying a user of the partner device. Information, communication interface address of communication device, virtual address of communication device virtual interface, communication interface address of partner device, virtual address of partner device virtual interface, data identification information for identifying data, or communication device and partner At least one of the shared keys with the device can be used.
[0098]
Therefore, for example, the agent 32 of the node A 100 has a node identifier such as the domain name of the node A 100 as communication device identification information, an IP address such as an address of the communication interface used by the node A 100 and a virtual address of the virtual interface 41, and data identification information. At least one of the start sequence number of the packet transmitted by the node A100 and the shared key is selected and transmitted to the node B200 as generation source information (S105).
[0099]
Similarly to the node A100, the agent 72 of the node B200 also transmits the generation source information to the node A100. For example, the agent 72 of the node B 200 selects at least one of the node identifier of the node B 200, which is the partner device identification information, the address of the communication interface 60 of the node B 200, the start sequence number of the packet transmitted by the node B 200, and the shared key. Then, it is transmitted to the node A 100 as the generation source information (S106). Note that the agent 32 of the node A 100 and the agent 72 of the node B 200 may select the generation source information by negotiation and transmit the selected generation source information.
[0100]
The agent 32 of the node A 100 generates a session certificate using the generation source information of the node A 100 transmitted to the node B 200 and the generation source information of the node B 200 received from the node B 200. Specifically, the agent 32 inputs the generation source information of the node A100 and the generation source information of the node B200 as input values to the one-way function, and obtains an output value. The obtained output value becomes a certificate, that is, shared information. As the one-way function, for example, a hash function can be used. The agent 32 of the node A 100 transmits the obtained output value to the node B 200 as shared information (S107).
[0101]
Similarly, the agent 72 of the node B 200 generates a session certificate using the generation source information of the node B 200 transmitted to the node A 100 and the generation source information of the node A 100 received from the node A 100. The agent 72 uses the generation source information of the node A100 and the generation source information of the node B200 as input values, and transmits an output value obtained by inputting to the one-way function to the node A100 as shared information (S108). In this way, the agent 32 of the node A 100 and the agent 72 of the node B 200 generate shared information with each other and exchange the generated shared information. Then, the agent 32 of the node A 100 and the agent 72 of the node B 200 confirm that the shared information generated by each other matches and there is no error. Finally, the agents 32 and 72 set an expiration date for the shared information (S109). With the above processing, option 1 ends.
[0102]
The agents 32 and 72 hold the generated shared information. The agent 72 holds the generated shared information with the node A100 in association with the node identifier of the node A100 notified in step (S101).
[0103]
As described above, when the shared information generated between the node A 100 and the node B 200 is exchanged, the communication between the node A 100 and the node B 200 is encrypted with the shared key generated in advance using the key exchange algorithm. Then, the node A 100 and the node B 200 exchange shared information on the communication path.
[0104]
The agents 32 and 72 determine whether or not to perform encrypted communication as it is for communication after completion of option 1. The agents 32 and 72 decide whether to use the same shared key as it is or to generate a stronger shared key and exchange it between the node A 100 and the node B 200 when performing encrypted communication as it is. .
[0105]
Then, after option 1 is completed, as shown in FIG. 6, data transmission / reception is started between the communication interface (# 1) 11 of the node A 100 and the communication interface 60 of the node B 200, and the application unit ( # 1) A session is executed between the application unit (#N) 5n and the application unit (# 1) 91 to the application unit (#N) 9n of the node B 200.
[0106]
The virtual interface 41 acquires data to be transmitted to the node B 200 from the application unit (# 1) 51 to the application unit (#N) 5n. The virtual interface 41 uses the virtual address “add_V” of the virtual interface 41 as the address of the node A 100 (hereinafter referred to as “node A address”) and the address “of the virtual interface 81 as the address of the node B 200 (hereinafter referred to as“ node B address ”). A packet 1 a is created by adding a header using “add_B” to the data and input to the address switching unit 42.
[0107]
The agent 32 notifies the address switching unit 42 that the communication interface in use is the communication interface (# 1) 11. The address switching unit 42 acquires the packet 1a, converts the node A address from the virtual address “add_V” to the address “add_A1” of the communication interface (# 1) 11 notified from the agent 32, and converts it into the packet 1b. To do. The address switching unit 42 inputs the packet 1b obtained by converting the address to the buffer 43. The communication interface (# 1) 11 that is the used communication interface acquires the packet 1b from the buffer 43 and transmits it to the Node B 200.
[0108]
The communication interface 60 of the node B 200 receives the packet 1b and inputs it to the address switching unit 82. The address switching unit 82 inputs the packet 1b acquired from the communication interface 60 to the virtual interface 81 as it is. The virtual interface 81 extracts data from the packet 1b and provides it to the application unit (# 1) 91 to the application unit (#N) 9n.
[0109]
The virtual interface 81 acquires data to be transmitted to the node A 100 from the application unit (# 1) 91 to the application unit (#N) 9n. The virtual interface 81 uses the node A address “add_A1” included in the packet received from the node A100 as the node A address, and adds a header using the address “add_B” of the virtual interface 81 as the node B address to the data. The packet 1b is created and input to the address switching unit 82. The node A address “add_A1” included in the packet 1b from the node A100 received at the start of communication is the start address.
[0110]
The address switching unit 82 inputs the acquired packet 1b to the communication interface 60 as it is. The communication interface 60 transmits the packet 1b to the node A100. The communication interface (# 1) 11 of the node A 100 receives the packet 1 b and inputs it to the buffer 43. The address switching unit 42 acquires the packet 1b from the buffer 43, converts the node A address of the packet 1b from “add_A1” to the virtual address “add_V”, and converts it into the packet 1a. The address switching unit 42 inputs the packet 1a to the virtual interface 41. The virtual interface 41 extracts data from the packet 1a and provides it to the application unit (# 1) 51 to the application unit (#N) 5n.
[0111]
When the expiration date of the shared information elapses while communication is continued, the node A 100 and the node B 200 perform negotiation for updating the shared information according to the procedure shown in FIG. Hereinafter, the negotiation performed when updating the shared information is referred to as “option 2”. When the expiration date of the shared information elapses, the agent 32 of the node A 100 requests an update of the session certificate that is the shared information (S201). Upon receiving the request, the agent 72 of the node B 200 notifies the key exchange parameter for generating a new shared key, and transmits information disclosed to the node A 100 that matches the key exchange parameter to the node A 100 (S202). ).
[0112]
The agent 32 of the node A 100 transmits information disclosed to the node B 200 that matches the new key exchange parameter notified from the node B 200 to the node B 200 (S203). Then, the agent 32 of the node A 100 and the agent 72 of the node B 200 generate a new shared key using a key exchange algorithm based on the information newly disclosed to each other (S204).
[0113]
The processing of option 2 after the generation of a new shared key, steps (S205) to (S209) are performed by encrypted communication using the generated new shared key. The agent 32 of the node A 100 and the agent 72 of the node B 200 perform the processing of steps (S205) to (S209) in the same manner as the steps (S105) to (S109) of option 1 shown in FIG.
[0114]
That is, the agent 32 of the node A 100 and the agent 72 of the node B 200 exchange generation information with each other. Then, the agents 32 and 72 input the generation source information of the node A100 and the generation source information of the node B200 as input values to the one-way function to obtain an output value. The obtained output value becomes a new certificate, that is, new shared information. The agent 32 of the node A 100 and the agent 72 of the node B 200 exchange new generated shared information, and confirm that the generated shared information matches and there is no error. Finally, the agents 32 and 72 set an expiration date for the new shared information.
[0115]
The agents 32 and 72 hold newly generated shared information. The agent 72 holds the newly generated shared information with the node A100 in association with the node identifier of the node A100 notified at the start of communication.
[0116]
With the above processing, option 2 ends. As in the case after the end of option 1, the agents 32 and 72 determine whether or not to perform the encrypted communication as it is for the communication after the end of option 2, and the shared key to be used. Then, the node A 100 and the node B 200 resume communication (S210). In FIG. 7, the case where the node A 100 requests update is described as an example, but the request may be made by either the node A 100 or the node B 200. When the node A 100 selects a communication interface to be used for each application, the node A 100 performs processing such as selection of the communication interface to be used, activation of the communication interface, option 1, data transmission / reception, option 2, and the like. Do it every time.
[0117]
[When switching communication interface]
For example, when the user of the node A 100 moves with the node A 100 after starting communication, the node A 100 moves. Due to the movement of the node A100, the communication environment such as the location status and radio wave intensity of the communication interface (# 1) 11 to the communication interface (#N) 1n changes. Therefore, a communication interface whose state changes from “communication impossible” to “communication standby” and a communication interface whose state changes from “communication standby” or “during communication” to “communication impossible” occur. The switching determination unit 21 of the node A 100 detects a change in the state of the communication interface (# 1) 11 to the communication interface (#N) 1n, and the state becomes “communication standby”, and detects a newly available communication interface. When the communication interface (# 1) 11 “in communication” becomes “communication impossible” or when it is predicted that “communication impossible” occurs, the communication interface to be used is selected. The case of “communication impossible” will be described when communication disconnection occurs, and here, a case where a newly available communication interface is detected or a case where it is predicted that “communication impossible” will be described.
[0118]
The switching determination unit 21 selects a communication interface to be used based on a switching policy held by the memory 22 from among the communication interfaces (# 1) 11 to 11n whose status is “communication standby”. . When the selected used communication interface is the same as the currently used communication interface (# 1) 11, the switching determination unit 21 determines that the used communication interface is not switched. Then, the node A 100 continues the communication using the communication interface (# 1) 11 as it is.
[0119]
On the other hand, when the selected used communication interface is different from the currently used communication interface (# 1) 11, the switching determination unit 21 determines to switch the used communication interface. Here, a case where the switching determination unit 21 selects the communication interface (# 2) 12 and determines to switch the used communication interface will be described as an example. The switching determination unit 21 notifies the session manager 30 and the switching instruction unit 23 that the switching is performed and the switching target is the communication interface (# 1) 11 and the switching destination is the communication interface (# 2) 12. To do.
[0120]
Upon receiving the notification, as shown in FIG. 8, the switching instruction unit 23 activates the switching destination communication interface (# 2) 12. Then, the agent 32 of the node A 100 requests the node B 200 to switch the used communication interface. The agent 72 of the node B 200 that has received the request requests the node A 100 for shared information. Then, the agent 32 of the node A 100 provides the shared information generated and held to the node B 200 via the switching destination communication interface (# 2) 12 when the communication is started or when the shared information is updated.
[0121]
Specifically, the agent 32 adds a header using the address “add_A2” of the communication interface (# 2) 12 as the node A address and the address “add_B” of the communication interface 60 as the node B address to the shared information. The packet 1c is created and input to the communication interface (# 2) 12. The communication interface (# 2) 12 transmits the packet 1c to the Node B 200. In this way, by setting the node A address in the packet 1c providing the shared information as the address of the switching destination communication interface (# 2) 12, the agent 32 can set the address of the switching destination communication interface (# 2) 12. The node B 200 is notified of “add_A2”.
[0122]
The communication interface 60 of the node B 200 receives the packet 1 c and inputs it to the agent 72. The agent 72 authenticates the node A100 based on the acquired shared information. Further, the agent 72 acquires the address “add_A2” of the switching destination communication interface (# 2) 12 from the packet 1c.
[0123]
Even during the authentication using the shared information between the agents 32 and 72, the communication interface (# 1) 11 which is the currently used communication interface of the node A 100 and the communication interface 60 of the node B 200 are as shown in FIG. Similarly, the packet 1b including data is transmitted / received.
[0124]
As described above, when the communication interface to be used is switched, negotiation for authentication using the shared information is performed between the agents 32 and 72. Hereinafter, the negotiation performed when the used communication interface is switched is referred to as “option 3”. Option 3 is performed in detail according to the procedure shown in FIG. The switching instruction unit 23 of the node A 100 activates the communication interface (# 2) 12 that becomes a new used communication interface (S301). The agent 32 of the node A 100 requests the node B 200 to switch the communication interface used during communication. At this time, the agent 32 transmits a request together with the node identifier of the node A100 (S302).
[0125]
The agent 72 of the node B 200 detects the corresponding session based on the notified node identifier and grasps the communication partner. Then, a certificate for the session, which is shared information, is requested (S303). The agent 32 of the node A 100 encrypts the session certificate, which is the shared information, with the shared key generated in option 1 if the shared information is not updated, and in option 2 if the shared information is updated, and the node B 200 (S304).
[0126]
The agent 72 of the node B 200 decrypts the shared information received from the node A 100 with the shared key. Then, the agent 72 determines whether or not the shared information that the agent 72 holds in association with the node identifier notified in step (S302) matches the shared information obtained by decryption. . When the two match, the agent 72 determines that the node A 100 itself is the same before and after switching the communication interface in use, and the communication interface (# 2) 12 is a valid communication partner. Then, the agent 72 permits communication using the new communication interface (# 2) 12. The agent 72 notifies the node A 100 of permission to switch the communication interface in use to the communication interface (# 2) 12 as an authentication result (S305). Step (S305) is also performed by encrypted communication.
[0127]
With the above processing, option 3 ends. After option 3 is completed, the communication interface to be used is switched (S306), and communication using the switching destination communication interface (# 2) 12 is started (S307). In step (S305), the agent 72 cannot decrypt the provided shared information with the shared key. If the provided shared information does not match the shared information held by the agent 72, the new communication interface (# 2) Do not allow communication using 12. In this case, the agent 72 notifies the node A 100 as an authentication result that switching of the used communication interface cannot be permitted. In this way, switching is performed only when the communication partner is valid.
[0128]
Information used in option 1 to option 3 is described in the option field of the IP header. All packets with descriptions in the option field are addressed to the agents 32 and 72. As a result, the communication interface (# 1) 11 to the communication interface (#N) 1n and the communication interface 60 refer to the option field to determine whether the packet is addressed to the agents 32 and 72 or the application unit (# 1) 51, It is determined whether the packet is addressed to 91-application part (#N) 5n, 9n.
[0129]
As a result of the authentication, the agent 32 of the node A 100 notifies the switching instruction unit 31 when the node B 200 receives permission for switching. The switching instruction unit 31 notifies the switching determination unit 21 of switching permission. Further, the switching determination unit 21 notifies the switching instruction unit 23 of the switching permission. When the switching instruction unit 23 receives permission for switching, the switching instruction unit 23 terminates the communication interface (# 1) that is currently in use, and changes it to “waiting for communication”. As a result, data transmission / reception is temporarily stopped. Further, the switching instruction unit 23 changes the communication interface (# 2) 12 to be switched to “during communication”.
[0130]
As shown in FIG. 10, while the transmission / reception of data is temporarily stopped, the address switching unit 42 takes out the packet 1 b received so far and held in the buffer 43. Then, the address switching unit 42 converts the node A address from the address “add_A1” of the communication interface (# 1) to the virtual address “add_V” of the virtual interface 41, and converts it into the packet 1a. Then, the virtual interface 41 extracts the data from the packet 1a and provides the data to the application unit (# 1) 51 to the application unit (#N) 5n. As described above, the address switching unit 42 provides the data in the buffer 43 to the upper layer while data transmission / reception is temporarily stopped.
[0131]
When the transmission / reception of data is temporarily stopped, the agent 32 of the node A 100 replaces the application unit (# 1) 51 to the application unit (#N) 5n with the application unit (# 1) 91 to the application of the node B 200. Request the part (#N) 9n to continue the data. The agent 32 requests the node B 200 to continue the data held in the buffer 43.
[0132]
Furthermore, when the node A 100 temporarily stops data transmission / reception, in the node B 200, the agent 72 instructs the address switching unit 82 to convert the switching destination address and the start address. The agent 72 acquires the address “add_A2” of the communication interface (# 2) 12 as the switching destination address from the packet 1c that provides the shared information at the time of authentication. Therefore, the agent 72 instructs the address switching unit 82 to convert the switching destination address “add_A2” and the starting address “add_A1”.
[0133]
Specifically, the agent 32 requests data for a header using the address “add_A2” of the communication interface (# 2) 12 as the node A address and the address “add_B” of the communication interface 60 as the node B address. A packet 1d is created by adding to the control information and input to the communication interface (# 2) 12. The communication interface (# 2) 12 transmits the packet 1d to the Node B 200.
[0134]
The communication interface 60 of the node B 200 receives the packet 1d and inputs it to the address switching unit 82. The address switching unit 82 converts the acquired node A address of the packet 1d from the switching destination address “add_A2” to the start address “add_A1” in accordance with an instruction from the agent 72, and converts it into the packet 1e. The address switching unit 82 inputs the packet 1e to the virtual interface 81. The virtual interface 81 extracts control information for requesting data from the packet 1e and provides the control information to the application unit (# 1) 91 to the application unit (#N) 9n.
[0135]
In this way, in the node B 200 that is the counterpart device, by converting the switching destination address and the start address, the application unit (# 1) 91 to the application unit (#N) 9n of the upper layer of the node B 200 The switching of the used communication interface in the node A100 can be concealed. As a result, the application unit (# 1) 91 to the application unit (#N) 9n of the node B 200 can recognize that the continuation of data is requested from the same node A 100 in the same session.
[0136]
The node B 200 that has received the data request transmits the continuation of the data, so that the communication between the node A 100 and the node B 200 is resumed. As illustrated in FIG. 11, the application unit (# 1) 91 to the application unit (# 9n) input subsequent data to be transmitted to the node A100 to the virtual interface 81 in response to a request. The virtual interface 81 uses the start address “add_A1” as the node A address and “add_B” as the node B address in the data transmitted to the node A100 acquired from the application unit (# 1) 91 to the application unit (# 9n). A packet 1b is created by adding a header using. The virtual interface 81 inputs the created packet 1b to the address switching unit 82.
[0137]
The address switching unit 82 converts the acquired node A address of the packet 1b from the start address “add_A1” to the switching destination address “add_A2”, and converts it into the packet 1f. The address switching unit 82 inputs the packet 1 f to the communication interface 60. The communication interface 60 transmits the packet 1f to the node A100.
[0138]
In the node A100, the communication interface (# 2) 12 that has been switched to be the communication interface in use receives the packet 1f. The communication interface (# 2) 12 inputs the packet 1 f to the buffer 43. When the communication interface (# 2) 12 receives the packet 1f, the agent 32 gives the address switching unit 42 the address of the communication interface to be used as the virtual address translation partner of the new switching destination communication interface (# 2) 12. An instruction is given to change the address to “add_A2”.
[0139]
Then, the address switching unit 42 acquires the packet 1f from the buffer 43, converts the node A address of the packet 1f from “add_A2” to the virtual address “add_V”, and converts it into the packet 1a. The address switching unit 42 inputs the packet 1a to the virtual interface 41. The virtual interface 41 extracts data from the packet 1a and provides it to the application unit (# 1) 51 to the application unit (#N) 5n. Note that the node A 100 temporarily stores the received packet in the buffer 43, thereby guaranteeing data continuity when the communication interface to be used is switched.
[0140]
When the node A 100 switches the used communication interface for each application, the node A 100 selects the used communication interface of the switching destination, starts the switching destination communication interface, provides option 3, and data in the buffer 43. , Request for data continuation, and conversion of the address and virtual address of the communication interface used for each application. The node B 200 also converts the switching destination address and the start address for each application in accordance with the switching of the used communication interface for each application performed by the node A 100.
[0141]
[When communication disconnection occurs]
When the communication is disconnected and the communication interface that has been “communication” becomes “communication impossible”, the node A 100 determines whether there is a communication interface that can be used and whose status is “communication standby”. to decide. The node A 100 disconnects the session because no communication is possible when there is no usable communication interface.
[0142]
On the other hand, when there is a usable communication interface whose state is “communication standby”, the switching determination unit 21 sets the communication interface (# 1) 11 to the communication interface (#N) 1n which is “communication standby”. Select the communication interface to be used. The switching instruction unit 23 activates the selected communication interface. Then, the node A 100 executes option 3 using the selected communication interface.
[0143]
As a result of authentication, when switching permission is received, the switching instruction unit 23 sets the state of the communication interface to “in communication”. Then, the address switching unit 42 of the node A 100 changes the address of the communication interface to be used as the virtual address conversion partner of the virtual interface 41 to the address of the newly selected communication interface. Further, the address switching unit 82 of the node B uses the newly selected communication interface address as the switching destination address, and starts conversion from the start address. Then, the agent 32 of the node A 100 requests the node B 200 to continue the data received until the communication is disconnected. Then, data is transmitted from the Node B 200, and communication is resumed.
[0144]
When the control unit 71 of the node B 200 determines that the communication is disconnected, the control unit 71 starts the timer 73. Then, while maintaining the session, the node B 200 waits for a request for switching the communication interface used in option 3 from the node A 100 and new data. When the node B 200 receives a request for switching the used communication interface within the session maintenance time before the timer value of the timer 73 expires, the node B 200 performs processing of option A with the node A 100. If the node B 200 can authenticate that the node A 100 is the same before and after the switching, the node B 200 resumes communication while maintaining the session. In addition, when the node B 200 receives new data within the session maintenance time, that is, when the node A 100 does not switch the communication interface to be used, the node B 200 resumes communication as it is. On the other hand, if the timer value of the timer 73 expires and the session maintenance time is exceeded, the node B 200 disconnects the session if no request for switching the communication interface to be used or new data is received from the node A 100. To do.
[0145]
Note that when the node A 100 switches the communication interface to be used for each application, the node A 100 and the node B 200 also perform the response when the communication disconnection occurs for each application.
[0146]
[Conversion of communication parameters]
Next, communication parameter conversion that needs to be changed along with address conversion will be described in detail with reference to FIG. Communication parameters to be converted include an address, a packet identifier, and a checksum. In FIG. 12, specifically, the virtual address “add_V” is “10.0.0.1”, the address “add_A1” of the communication interface (# 1) 11 is “10.0.1.1”, the communication interface ( # 2) The address “add_A2” of 12 is indicated as “10.0.2.1”, and the address “add_B” of the communication interface 60 is indicated as “10.1.0.1”. The case of IPv4 will be described as an example.
[0147]
When the communication interface used by the node A100 is the communication interface (# 1) 11, the node A100 receives the packet 1b from the node B200. The address switching unit 42 changes the destination address included in the IP header from the address “10.0.1.1” of the communication interface (# 1) 11 that is the used communication interface to the virtual address “10.0 of the virtual interface 41. .0.1 ". The address switching unit 42 converts the checksum calculated using the address “10.0.1.1” of the communication interface (# 1) 11 included in the IP header into the virtual address “10.0.0 after conversion. .1 "and convert to the recalculated value. The address switching unit 42 recalculates the checksum created using the converted virtual address “10.0.0.1”, and converts the checksum of the TCP header into the recalculated value. The address switching unit 41 uses the packet identifier and payload including the data included in the IP header without conversion. In this way, the address switching unit 42 converts the communication parameter that needs to be changed along with the conversion of the address of the communication interface used and the virtual address of the virtual interface 41, and converts the packet 1b into the packet 1a. .
[0148]
When switching the communication interface used by the node A 100 from the communication interface (# 1) 11 to the communication interface (# 2) 12, the application unit (# 1) 11 to the application unit (#N) 1n and the application unit (# 1) In order to maintain a session with the application unit (#N) 9n, first, the communication interface (# 2) 12 of the node A 100 is connected between the agent 32 of the node A 100 and the agent 72 of the node B 200. A communication path with the communication interface 60 of the node B 200 is established. The agent 32 releases the communication path between the communication interface (# 1) 11 and the communication interface 60, which is surrounded by an alternate long and short dash line in FIG. 12, and between the communication interface (# 2) 12 and the communication interface 60. Processes control information for establishing a communication path. As described above, the application unit (# 1) 11 to the application unit (#N) 1n and the application unit (# 1) 91 are also established by establishing a communication path between new communication interfaces between the agents 32 and 72. The application unit (#N) 9n can conceal the switching of the used communication interface.
[0149]
When the communication interface used by the node A100 is switched from the communication interface (# 1) 11 to the communication interface (# 2) 12, the node A100 receives the packet 1f from the node B200. The address switching unit 42 converts the packet identifier included in the IP header to be the same before and after switching. The packet identifier “999” of the packet 1f after switching is converted to the packet identifier “100” of the packet 1b before switching. The address switching unit 42 converts the destination address included in the IP header from the address “10.0.2.1” of the switching destination communication interface (# 2) 12 to the virtual address “10.0.0.1”. To do.
[0150]
The address switching unit 42 converts the checksum calculated using the address “10.0.2.1” of the switching destination communication interface (# 2) 12 included in the IP header into the virtual address “10. Recalculate using “0.0.1” and convert to the recalculated value. The address switching unit 42 recalculates the checksum created using the converted virtual address “10.0.0.1”, and converts the checksum of the TCP header into the recalculated value. The address switching unit 41 uses the payload including data without conversion. In this way, the address switching unit 42 changes in accordance with the conversion of the communication parameters that need to be changed as the used communication interface is switched, the address of the used communication interface, and the virtual address of the virtual interface 41. The necessary communication parameters are converted, and the packet 1f is converted into the packet 1a.
[0151]
Similarly, in the node B 200, when the communication interface used by the node A 100 is switched from the communication interface (# 1) 11 to the communication interface (# 2) 12, the address switching unit 82 switches the switching destination address “10.0. Along with the conversion of “2.1” and the starting address “10.0.1.1”, communication parameters such as an address that needs to be changed, a packet identifier, and a checksum are converted. Further, even when the communication interface used by the node A 100 is switched a plurality of times and the switching destination address is switched, the communication parameter that needs to be changed is converted accordingly. In this way, the node A 100 and the node B 200 convert the communication parameters so that the session can be continued even after the used communication interface is switched.
[0152]
〔effect〕
According to the node A100, the node B200, and the communication method, the communication interface switching manager 20 of the node A100 selects a communication interface to be used from the plurality of communication interfaces (# 1) 11 to communication interfaces (#N) 1n. Select and switch. The virtual interface 41 acquires data to be transmitted to the node B 200 from the application unit (# 1) 51 to the application unit (# 1n) 5n in the upper layer than the network layer, and the data transmitted from the node B 200 is transmitted to the upper layer. Application unit (# 1) 51 to application unit (# 1n) 5n.
[0153]
Then, the address switching unit 42 converts the address of the node A 100 added to the data between the address of the used communication interface and the virtual address of the virtual interface 41. Therefore, the node A 100 can switch the used communication interface. In addition, the node A 100 can conceal the switching of the used communication interface from the upper layer application unit (# 1) 51 to the application unit (# 1n) 5n, and the upper layer application unit (# 1) 51. The application unit (# 1n) 5n can communicate using the virtual address of the virtual interface 41 that is not always changed.
[0154]
Therefore, in the upper layer of the node A100, even if the communication interface to be used is switched, communication can be continued without using the third node like the mobile IP. That is, even if the address used by the node A 100 is changed due to a change in the communication environment, the node A 100 and the node B 200 are connected to the application unit (# 1) 51 to the application unit (# 1n) 5n and the application unit (# 1) It is possible to maintain a session with 91 to application unit (# 1n) 9n and continue communication.
[0155]
Furthermore, when the used communication interface is switched, the agent 32 of the node A 100 provides the node B 200 with a session certificate that proves that the node itself is the same before and after the switching. On the other hand, the agent 72 of the node B 200 acquires a session certificate from the node A 100 that is the counterpart device when switching the communication interface to be used, and authenticates the node A 100 based on the acquired session certificate.
[0156]
Therefore, when the communication interface used by the node A100 is switched and the address of the node A100 as viewed from the node B200 is changed, the node B200 determines that the node A100 is the same node before and after the switching based on the session certificate. It can be authenticated whether or not. Therefore, the node A 100 and the node B 200 can easily take over a session in communication between the node A 100 and the node B 200 by tampering with a third party when the communication interface to be used is switched, or tamper with data. Can be prevented. As a result, the node A 100 and the node B 200 can increase security when switching the used communication interface.
[0157]
Further, before switching, the agent 32 of the node A 100 and the agent 72 of the node B 200 generate shared information shared between them as certification information, and exchange them with each other. Then, confirm that the shared information matches each other. Therefore, the node B 200 can authenticate the node A 100 based on reliable shared information generated in advance between the node A 100 and the node B 200 before the node A 100 switches the communication interface to be used. Therefore, the node A 100 can further increase the security when switching the used communication interface.
[0158]
Further, the communication interface switching manager 20 can select and switch the used communication interface for each application from among the plurality of communication interfaces (# 1) 11 to communication interface (#N) 1n. The address switching unit 42 can convert the address of the node A 100 added to the data between the address of the used communication interface and the virtual address of the virtual interface 41 for each application.
[0159]
Therefore, the node A 100 can switch the used communication interface for each application. Therefore, the application unit (# 1) 51 to the application unit (#N) 5n can communicate each application (# 1) to application (#N) performed in the upper layer using a communication interface suitable for each application. . As a result, even if the items to be emphasized differ from application to application, such as applications that place importance on communication speed, applications that place importance on security, and applications that place importance on continuity of communication when moving node A100, The node A 100 can provide a good communication path suitable for each application.
[0160]
For example, according to the node A100, as a result of switching the used communication interface in units of communication devices as in the past, the characteristics of the used communication interface at the switching destination are more specific than the used communication interface before switching for a specific application. It does not cause a situation that is not preferable in terms of security strength and mobility support. Therefore, according to the node A100, the used communication interface can be switched only for an application that is preferably switched.
[0161]
As a result, even when the communication environment changes due to movement, the node A 100 can provide a communication environment suitable not only for the entire node A 100 but also for every application.
[0162]
Further, the agent 32 of the node A 100 notifies the node B 200 of the switching of the used communication interface performed by the communication interface switching manager 20. When the switching is performed for each application, the agent 32 notifies the switching of the used communication interface for each application. Therefore, the node A 100 can notify the node B 200 in advance of the switching of the used communication interface. Therefore, the node B 200 can appropriately perform the process associated with the change of the used communication interface in the node A 100.
[0163]
The address switching unit 82 of the node B 200 converts the address of the node A 200 added to the data between the switching destination address and the start address. Therefore, even if the node A100, which is the counterpart device, switches the communication interface used by the node B200, the address of the node A100 is always set to the application unit (# 1) 91 to the application unit (#N) 9n that are higher layers. You can make it look the same. Therefore, in the node B 200, even if the node A 100 switches the communication interface to be used, communication can be continued without using the third node as in the mobile IP.
[0164]
[Second Embodiment]
The communication system includes a node C300 illustrated in FIG. 13 and a node B200 illustrated in FIG. The node C300 is a communication device that transmits and receives data. The node C300 is a partner device for the node B200, and the node B200 is a partner device for the node C300. In order to simplify the description, the description will be made using two nodes C300 and B200, but the communication system includes a large number of nodes.
[0165]
[Node C]
Node C300 is a mobile communication node. As illustrated in FIG. 13, the node C300 includes a plurality of communication interfaces (# 1) 11 to a communication interface (#N) 1n, a communication interface switching manager 320, a session manager 330, an address conversion function unit 340, and a plurality of nodes. Application unit (# 1) 51 to application unit (#N) 5n.
[0166]
The communication interface (# 1) 11 to the communication interface (#N) 1n and the application unit (# 1) 51 to the application unit (#N) 5n include the communication interface (# 1) 11 to the communication interface (# shown in FIG. N) 1n and the application part (# 1) 51 to the application part (#N) 5n.
[0167]
The communication interface switching manager 320, the session manager 330, and the address translation function unit 340 perform processing in the network layer in the protocol stack. The communication interface switching manager 320, the session manager 330, and the address conversion function unit 340 include, for example, a node C300 that includes middleware that functions as the communication interface switching manager 320, the session manager 330, and the address conversion function unit 340 in the network layer. Implemented and executed by executing the middleware.
[0168]
The communication interface switching manager 320 selects and switches the used communication interface for each application from among a plurality of communication interfaces (# 1) 11 to communication interfaces (#N) 1n. The communication interface switching manager 320 includes a switching determination unit 321, a memory 322, and a switching instruction unit 323.
[0169]
The switching determination unit 321 is based on a switching policy that defines the priority to be used for each of a plurality of applications (# 1) to applications (#N) in the communication interface (# 1) 11 to communication interface (#N) 1n. Select the communication interface to be used for each application. The switching policy can be set based on items prioritized in each application, such as communication cost, communication speed, security, and communication continuity when the node C 300 moves.
[0170]
Hereinafter, a case will be described as an example where each application (# 1) to application (#N) uses one session. Further, the communication interface (# 1) 11 to the communication interface (#N) 1n include a communication interface corresponding to IMT-2000 (International Mobile Telecommunications-2000), a communication interface corresponding to PHS (Personal Handy Phone System), A case will be described as an example where the communication interface is classified into one of three types of communication interfaces corresponding to a wireless LAN (Local Area Network).
[0171]
In the application (# 1), a higher priority is assigned in the order of the communication interface corresponding to the wireless LAN, the communication interface corresponding to PHS, and the communication interface corresponding to IMT-2000. In the application (# 2), a higher priority is assigned in the order of a communication interface compatible with IMT-2000, a communication interface compatible with PHS, and a communication interface compatible with a wireless LAN. In the application (# 3), a higher priority is assigned in the order of a communication interface compatible with PHS, a communication interface compatible with IMT-2000, and a communication interface compatible with a wireless LAN.
[0172]
For example, the user of the node C300 can set the priority by directly determining the priority of each communication interface (# 1) 11 to communication interface (#N) 1n for each application. Alternatively, first, the user determines items to be prioritized in each application, such as communication cost, communication speed, security, and continuity of communication during movement, and inputs them to the switching determination unit 321. Then, the switching determination unit 321 can set the priority order by determining the priority order of the communication interfaces based on the input items. The memory 232 holds the switching policy shown in FIG.
[0173]
The switching determination unit 321 determines switching of the used communication interface for each application. When it is determined that the communication interface to be used is to be switched, the switching determination unit 321 notifies the session manager 330 of the execution of the switching and the content of the switching for each application that is determined to be switched. That is, the switching determination unit 321 instructs the session manager 330 to perform processing associated with switching the communication interface in use by specifying an application. In addition, the switching determination unit 321 notifies the session manager 330 of the communication interface for each selected application at the start of communication of each session for each selected application.
[0174]
Furthermore, the switching determination unit 321 notifies the switching instruction unit 323 of the execution of switching and the content of the switching for each application, and instructs to switch the communication interface used for each application. The switching determination unit 321 notifies the switching instruction unit 323 of the communication interface selected for each application at the start of communication for each session, and instructs the application to start communication using the communication interface for each application.
[0175]
The switching instruction unit 323 switches the used communication interface for each application. The switching instruction unit 323 activates the newly selected switching destination communication interface and changes the state to “in communication”. At this time, if the selected communication interface is already used in another session, the activation is not necessary. The switching instruction unit 323 ends the currently used communication interface to be switched, and changes the state of the communicable communication interface to “communication standby”. At this time, if the selected communication interface is used in another session, the termination is not necessary. Further, the switching instruction unit 323 activates the selected communication interface at the start of communication of each session, and changes it to “in communication”.
[0176]
The switching instruction unit 323 detects the state change of the communication interface (# 1) 11 to the communication interface (#N) 1n and outputs an instruction according to the instruction when the switching determination unit 321 detects the change in the state of the communication interface (# 1) 11 to the communication interface (#N) 1n. Switch. Therefore, the switching instruction unit 323 does not need to grasp the correspondence relationship between the application or session and the communication interface (# 1) 11 to the communication interface (#N) 1n. Except for these points, the switching determination unit 321 and the switching instruction unit 323 are the same as the switching determination unit 21 and the switching instruction unit 23 illustrated in FIG. Thus, the communication interface switching manager 320 is not aware of the session.
[0177]
The address translation function unit 340 includes a session (# 1) virtual interface 411, a session (# 2) virtual interface 412 to a session (#N) virtual interface 41n, a session (# 1) address switching unit 421, and a session (# 2). An address switching unit 422 to a session (#N) address switching unit 42n, a buffer 343, and a session table management unit 344 are provided.
[0178]
In the node C300, since a plurality of application units (# 1) 51 to application unit (#N) 5n communicate simultaneously, a plurality of sessions used by the plurality of application units (# 1) 51 to application unit (#N) 5n. Session (# 1) virtual interface 411 to session (#N) virtual interface 41n corresponding to (# 1) to session (#N) are provided.
[0179]
The session (# 1) virtual interface 411 acquires data to be transmitted to the node B 200 in the session (# 1) of the application unit (# 1) 51 from the application unit (# 1) 51, and in the session (# 1). The data transmitted from the node B 200 is provided to the application unit (# 1) 51. The session (# 2) virtual interface 412 acquires data to be transmitted to the node B 200 from the application unit (# 2) 52 in the session (# 2) of the application unit (# 2) 52, and in the session (# 2) The data transmitted from the node B 200 is provided to the application unit (# 2) 52. The session (#N) virtual interface 41n acquires the data to be transmitted to the node B 200 in the session (#N) of the application unit (#N) 5n from the application unit (#N) 5n, and in the session (#N) The data transmitted from the node B 200 is provided to the application unit (#N) 5n.
[0180]
The session (# 1) virtual interface 411 is assigned a fixed virtual address “add_V1” that does not depend on the communication interface used. The session (# 2) virtual interface 412 is assigned a fixed virtual address “add_V2” that does not depend on the communication interface used. The session (#N) virtual interface 41n is given a fixed virtual address “add_Vn” that does not depend on the communication interface used. Except for these points, the session (# 1) virtual interface 411 to the session (#N) virtual interface 41n are the same as the virtual interface 41 shown in FIG.
[0181]
The buffer 343 includes application-specific buffers for each application (# 1) to application (#N). Session IDs “# 1” to “#N” of sessions used by the applications (# 1) to applications (#N) are assigned to the application-specific buffers. The session ID is identification information for identifying a session.
[0182]
The buffer for each application transmits data transmitted from the application unit (# 1) 51 to the application unit (#N) 5n to the node B 200 from the session (# 1) address switching unit 421 to the session (#N) address switching unit 42n. Input and held for each application (# 1) to application (#N). Each buffer for each application receives data received by the communication interface (# 1) 11 to communication interface (#N) 1n from the communication interface (# 1) 11 to communication interface (#N) 1n, and receives the application (# 1). )-Held for each application (#N).
[0183]
The buffer 343 includes a plurality of session tables (# 1) 431 to session tables (#N) 43n. Session IDs “# 1” to “#N” are assigned to the session table (# 1) 431 to the session table (#N) 43n. Each session table (# 1) 431 to session table (#N) 43n holds information on each session (# 1) to session (#N), respectively. FIG. 15 shows an example of a session table. In the session table, for example, transmission of each session (# 1) to session (#N) indicated by using the virtual address of the session (# 1) virtual interface 411 to the session (#N) virtual interface 41n as information on the session. The communication parameters of each session (# 1) to session (#N) such as an original IP address, a transmission destination address, a transmission source port number, a transmission destination port number, and options included in the IP header are held.
[0184]
The session table management unit 344 converts each session (# 1) to session (#N) used by each application unit (# 1) 51 to application unit (#N) 5n into session table (# 1) 431 to session table ( #N) Management is performed using 43n. The session table management unit 344 receives the transmission source IP address, the application unit (# 1) 51 to the application unit (#N) 5n via the session (# 1) virtual interface 411 to the session (#N) virtual interface 41n, Communication parameters of each application (# 1) to application (#N) such as a transmission destination IP address, a transmission source port number and a transmission destination port number are acquired. And the session table management part 344 stores the information regarding each session (# 1)-session (#N) in each session table (# 1) 431-session table (#N) 43n.
[0185]
The session table management unit 344 acquires information on each session (# 1) to session (#N) held by the session table (# 1) 431 to the session table (#N) 43n from the buffer 343, and the session manager 330 To provide. In addition, the session table management unit 344 creates an application-specific buffer for each application (# 1) to application (#N). The session table management unit 344 creates an application-specific buffer according to an instruction from the session manager 330. The session table management unit 344 assigns session IDs “# 1” to “#N” to the created application-specific buffer unit.
[0186]
In the node C300, since a plurality of application units (# 1) 51 to application unit (#N) 5n communicate simultaneously, a plurality of sessions used by the plurality of application units (# 1) 51 to application unit (#N) 5n. The session (# 1) address switching unit 421 to the session (#N) address switching unit 42n corresponding to (# 1) to session (#N) are provided. Thereby, the node C300 can convert an address in session units.
[0187]
The session (# 1) address switching unit 421 to the session (#N) address switching unit 42n include the address added to the data, the address of the communication interface used for each session, and the session (# 1) virtual interface for each session. 411 to Session (#N) The virtual interface 41n converts the virtual address. In other words, the session (# 1) address switching unit 421 to the session (#N) address switching unit 42n perform address conversion for each session.
[0188]
When the communication interface to be used is switched in each session, the session (# 1) address switching unit 421 to the session (#N) address switching unit 42n are connected to the session (# 1) virtual interface 411 to the session (#N) virtual interface 41n. The address of the communication interface used as the virtual address conversion partner is changed to the address of the communication interface to which each session is switched. The session (# 1) address switching unit 421 to the session (#N) address switching unit 42n change the address of the communication interface to be used as a conversion partner in accordance with an instruction designating a session from the session manager 330. Except for these points, the session (# 1) address switching unit 421 to the session (#N) address switching unit 42n are the same as the address switching unit 42 shown in FIG.
[0189]
The session manager 330 includes a switching instruction unit 331, an agent 332, and a timer 33. The switching instructing unit 331 receives each of the application unit (# 1) 51 to the application unit (#N) 5n, such as a transmission source IP address, a transmission destination IP address, a transmission source port number, a transmission destination port number, and the like. Communication parameters of application (# 1) to application (#N) are acquired. In addition, the switching instruction unit 331 receives information from the session table management unit 344 as information about each session (# 1) to session (#N) held in the session table (# 1) 431 to session table (#N) 43n. Communication parameters of session (# 1) to session (#N) and session IDs “# 1” to “#N” are acquired.
[0190]
The switching instruction unit 331 compares the acquired communication parameters of each application (# 1) to application (#N) with the communication parameters of each session (# 1) to session (#N), and the communication parameters match. Corresponding application (# 1) to application (#N) to session (# 1) to session (#N). Then, the switching instruction unit 331 performs mapping that associates the session IDs “# 1” to “#N” with the applications (# 1) to (#N) that use the session with the session ID. In this way, the switching instruction unit 331 grasps which application unit (# 1) 51 to application unit (#N) 5n uses which session (# 1) to session (#N). Thereby, the session manager 330 can perform mapping between the session ID and the application.
[0191]
The switching instruction unit 331 receives notification from the switching determination unit 321 of the execution of switching and the content of the switching for each application including a session that is determined to be switched. That is, the switching instruction unit 331 receives an instruction designating an application from the switching determination unit 321. In addition, the switching instruction unit 331 receives a notification of the selected communication interface from the switching determination unit 321 for each application at the start of communication of each session. The switching instruction unit 331 refers to the mapping between the session ID and the application, and determines which session the instruction from the switching determination unit 321 is. Then, the switching instruction unit 331 converts the instruction specifying the application from the switching determination unit 321 into an instruction specifying the session.
[0192]
Then, the switching instruction unit 331 notifies the agent 332 of the details of switching and the selected communication interface, and instructs each session to perform processing when switching the used communication interface or starting communication of the session. Further, the switching instruction unit 331 notifies the agent 332 of the mapping between the session ID and the application. In this way, the session manager 330 also manages the session. In addition, the switching instruction unit 331 instructs the session table management unit 344 to create a buffer for each application for each application (# 1) to application (#N).
[0193]
The agent 332 receives, from the switching instruction unit 331, notification of switching contents and a selected communication interface for each session. Then, the agent 332 performs processing at the time of switching the used communication interface or starting communication of the session for each session. When the communication of the session is started, the agent 332 sends the address of the communication interface to be used for each session, which is a conversion partner of the virtual addresses of the session (# 1) virtual interface 411 to the session (#N) virtual interface 41n, to the address conversion function unit 340. And instruct conversion. When switching the used communication interface, the agent 332 instructs the address translation function unit 340 to change the address of the used communication interface that is the virtual address translation partner to the address of the new communication destination communication interface for each session. To do.
[0194]
In addition, the agent 332 notifies the node B 200, which is the counterpart device, of the switching of the used communication interface for each session performed by the communication interface switching manager 320. Further, the agent 332 requests the node B 200 for data continuation for each session instead of the application unit (# 1) 51 to the application unit (#N) 5n at the time of switching.
[0195]
The agent 332 manages the buffer 343. The agent 332 grasps the data held in the application-specific buffer in the buffer 343 for each session by referring to the mapping between the session ID and the application. Then, the agent 332 requests the node B 200 for the continuation of the data held in the application-specific buffer for each session. Except for these points, the switching instruction unit 331, the agent 332, and the timer 33 are the same as the switching instruction unit 31, the agent 32, and the timer 33 shown in FIG.
[0196]
Next, the case where the status becomes “communication standby” and a newly available communication interface is detected, and the case where the “communication” communication interface shifts to “communication impossible” will be described in detail.
[0197]
[Detection of newly available communication interfaces]
When the state becomes “communication standby” and a newly available communication interface is detected, the switching determination unit 321 determines switching for each application. When the priority of the newly available communication interface is higher than the “used” interface, the switching determination unit 321 selects the newly available communication interface as the used communication interface. Therefore, the switching determination unit 321 determines to perform switching. If the priority order of the newly available communication interface is lower than the used communication interface “in communication”, the switching determination unit 321 selects the used communication interface in “communication” as the used communication interface again. To do. Therefore, the switching determination unit 321 determines not to perform switching.
[0198]
For example, the application unit (# 1) 51 to the application unit (#N) 5n of the node C300 are moving using a communication interface corresponding to “wireless LAN”. At this time, the switching determination unit 321 detects that the communication interface corresponding to “IMT-2000” has entered the “communication standby” state. The switching determination unit 321 selects a communication interface to be used for each application based on the switching policy held in the memory 322. As shown in FIG. 14, in the application (# 2) and the application (# 3), the priority of “IMT-2000” is higher than the priority of “wireless LAN”. Therefore, the switching determination unit 321 selects a communication interface corresponding to “IMT-2000” as a communication interface used by the application (# 2) and the application (# 3), and determines to perform switching.
[0199]
Then, the switching determination unit 321 notifies the switching instruction unit 323 of the execution of switching and the content of switching. Further, the switching determination unit 321 designates the application (# 2) and the application (# 3) to the switching instruction unit 331 of the session manager 330, notifies the switching execution and switching contents, and gives instructions. The switching instruction unit 323 activates a communication interface corresponding to “IMT-2000” and changes it to “in communication”.
[0200]
The switching instruction unit 331 of the session manager 330 refers to the mapping between the session ID and the application, and determines which session the instruction from the switching determination unit 321 is. Then, the switching instruction unit 331 converts the instruction specifying the application from the switching determination unit 321 into an instruction specifying the session.
[0201]
Then, the switching instruction unit 331 instructs the agent 332 to perform switching in association with the session ID. The agent 332 receives a switching instruction associated with the session ID from the switching instruction unit 331. Then, the agent 332 designates the session ID to the address conversion function unit 340 so as to change the address of the communication interface used as the virtual address conversion partner to the address of the new communication interface of each session. Instruct. As a result, the address conversion function unit 340 is not aware of the application. In the address conversion function unit 340, the address switching unit that performs address conversion of the specified session ID among the session (# 1) address switching unit 421 to the session (#N) address switching unit 42n sets the address of the communication interface to be used. The address is changed to the address of the used communication interface at the switching destination, and conversion between the address of the used communication interface and the virtual address is performed.
[0202]
[Migration of “Communication” communication interface to “Communication impossible”]
The switching determination unit 321 detects a communication interface whose status is “communication” or “communication standby” when it is predicted that the communication interface in use is “communication impossible”. When there is only one communication interface whose status is “communication” or “communication standby” other than the used communication interface predicted to shift to “communication impossible”, the switching determination unit 321 It is determined that the switching is executed.
[0203]
On the other hand, when there are a plurality of communication interfaces whose status is “communication” or “communication standby”, the switching determination unit 321 selects a communication interface with a high priority for each application based on the switching policy. Then, select the communication interface used for each application. Then, the switching determination unit 321 determines to perform switching to the communication interface used for each selected application.
[0204]
For example, when it is predicted that the state of all communication interfaces is “communication” or “communication standby” and the communication interface corresponding to “wireless LAN” shifts to “communication impossible”, “IMT-2000” or “ A communication interface having a high priority is selected for each application from communication interfaces corresponding to “PHS”. Then, the switching determination unit 321 determines to perform switching to the selected communication interface.
[0205]
Similarly, when the communication interface in use “communication” suddenly changes to “communication impossible”, the switching determination unit 321 detects a communication interface whose state is “communication” or “communication standby”. . Then, if there is a communication interface more suitable for each application among the communication interfaces whose status is “communication” or “communication standby”, the switching determination unit 320 selects and switches the communication interface to be used for each application. Is determined to be executed. On the other hand, when all the communication interfaces are in the “communication impossible” state, the switching determination unit 321 determines that communication is interrupted.
[0206]
When the switching determination unit 321 determines to execute switching, the switching determination unit 321 instructs the switching instruction unit 323 and the session manager 330 to execute switching. Then, the used communication interface is switched.
[0207]
〔effect〕
According to such a node C300 and a communication method using the node C300, the communication interface switching manager 320 selects and switches the used communication interface for each application. Then, the session (# 1) switching unit 421 to the session (#N) switching unit 42n specify the address of the node C300 added to the data, the address of the communication interface used for each session, and the session (# 1) for each session. ) Conversion between the virtual interface and the address of the session (#N) virtual interface 41n.
[0208]
Therefore, the node C300 can switch the communication interface used for each session. Therefore, each application (# 1) to application (#N) performed in the upper layer can communicate using a communication interface suitable for each session (# 1) to session (#N). As a result, the node C300 can provide a communication environment suitable for each application session.
[0209]
[Example of change]
The present invention is not limited to the first and second embodiments, and various modifications can be made. In FIG. 13, the session ID is held in the buffer 343, but the session table management unit 344 does not hold the session ID in the buffer 343, but the session table management unit 344 executes the session table (# 1) 431 to the session table (#N) 43 n. May be maintained and managed. Further, the buffer 343 has a function of distributing the data input to the buffer 343 to each session (# 1) address switching unit 421 to each session (#N) address switching unit 42n according to an instruction from the session table management unit 344. It may be.
[0210]
Further, the buffer 343 may be provided for each session or for each application. In that case, a virtual interface, an address switching unit, and a buffer are provided for each session or each application, and a session table corresponding to them is created.
[0211]
In FIG. 13, a virtual interface is provided for each session, but it is not necessary to provide for each session. For example, one node may have one virtual interface and use one virtual address. In this case, the means for allocating data to each session (# 1) address switching unit 421 to session (#N) address switching unit 42n is the virtual interface and session (# 1) address switching unit 421 to session (#N) address switching. It may be provided with the unit 42n, and data may be distributed according to an instruction from the session table management unit 344.
[0212]
In addition, the session manager 330 includes a session table management unit, and the session table management unit uses the session ID “# 1” to “#N” and the application (# 1) to application using the session with the session ID. Mapping that associates (#N) may be performed.
[0213]
There is a case where the partner device does not implement the session manager 70 and the middleware functioning as the address translation function unit 80 and does not support switching of the communication interface used by the node A 100 and the node C 300 unlike the node B 200. is there. In this case, the node A 100 and the node C 300 disconnect the session that is being executed when the used communication interface is switched. Then, the node A 100 and the node C 300 resume communication with the counterpart device in a new session. Even in this case, the node A 100 and the node C 300 can continuously transmit / receive the continuation of the data before the session disconnection with the counterpart device according to the application of the counterpart device.
[0214]
In addition, communication devices including a plurality of communication interfaces, such as the nodes A100, the nodes C300, and the nodes A100 and C300, may communicate with each other. In this case, when the communication device attempts to switch the used communication interface almost simultaneously, priority is given to the change of the used communication interface that requested the switch first. For example, a communication device that has requested switching first transmits a switching request and then rejects the switching request from the counterpart device. Then, the communication device to which the request for switching is rejected switches the communication interface used after the partner device switching process is completed.
[0215]
When communication devices having a plurality of communication interfaces communicate with each other, both communication devices have a function of a certification information providing unit of the agent 32 of the node A 100 and a function of an authentication unit of the agent 72 of the node B 200. There is a need. When both communication devices switch the communication interface used by the other device from the other device, the communication device proves that the other device is the same before and after the switch. To acquire the counterpart device certification information, and authenticate the counterpart device based on the acquired counterpart device certification information.
[0216]
According to this, when the partner device also has a plurality of communication interfaces and performs switching, the communication device determines whether the partner device is the same partner device before and after switching based on the partner device certification information. Can be authenticated. Therefore, the communication device can improve security when the partner device switches the communication interface to be used.
[0217]
In addition, when both the communication device and the counterpart device have the function of the authentication means in this way, when switching the communication interface to be used, the generated shared information can be exchanged with each other and the contents can be verified with each other. it can. Thereby, the communication apparatus can mutually authenticate the other apparatus.
[0218]
Furthermore, although the case where each application uses one session has been described in the second embodiment, the node C300 can also be used when each application uses a plurality of sessions. In this case, the switching instruction unit 331 of the session manager 330 associates a plurality of sessions with each application. That is, the switching instruction unit 331 performs mapping that associates one application with a plurality of session IDs. Then, when switching the communication interface to be used, the switching instruction unit 331 refers to the mapping between each application and a plurality of session IDs, and converts it into a switching instruction for each session, as in the second embodiment. . In addition, the agent 332 may instruct the address conversion function unit 340 to collectively switch the plurality of sessions of each application.
[0219]
Even if each application uses a plurality of sessions, the address switching unit may include the same number of applications. Then, the address switching unit of each application may change the communication interface used as a virtual address translation partner for each application session. As described above, even when each application uses a plurality of sessions, the node C300 can switch the communication interface to be used for each session.
[0220]
Further, not the session manager 330 but the address conversion function unit 340 may associate the application with the session ID. In this case, the session manager 330 gives an instruction specifying an application. Then, the address conversion function unit 340 may convert the session into an instruction specifying the session.
[0221]
Furthermore, a switching unit such as the communication interface switching manager 320 may select and switch the used communication interface for each session based on the switching policy for each session.
[0222]
【The invention's effect】
As described above, according to the present invention, when a communication interface to be used is switched, communication can be continued without using a third node like mobile IP, and security at that time can be increased, A communication environment suitable for each application can be provided.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a node A according to a first exemplary embodiment of the present invention.
FIG. 2 is a block diagram showing a configuration of a Node B according to the first embodiment of the present invention.
FIG. 3 is a diagram showing a state of a communication interface according to the first embodiment of the present invention.
FIG. 4 is a diagram showing a switching policy according to the first embodiment of the present invention.
FIG. 5 is a flowchart showing a procedure of option 1 according to the first embodiment of the present invention.
FIG. 6 is a diagram showing a state of communication at the start of communication according to the first embodiment of the present invention.
FIG. 7 is a flowchart showing a procedure of option 2 according to the first embodiment of the present invention.
FIG. 8 is a diagram illustrating a state when it is determined to perform switching according to the first embodiment of the present invention.
FIG. 9 is a flowchart showing a procedure of option 3 according to the first embodiment of the present invention.
FIG. 10 is a diagram showing a state when requesting continuation of data according to the first embodiment of the present invention.
FIG. 11 is a diagram showing a state when data transmission / reception is restarted according to the first embodiment of the present invention;
FIG. 12 is a diagram showing communication parameter conversion according to the first embodiment of the present invention.
FIG. 13 is a block diagram showing a configuration of a node C according to the second embodiment of the present invention.
FIG. 14 is a diagram showing a switching policy according to the second embodiment of the present invention.
FIG. 15 is a diagram showing a session table according to the second embodiment of the present invention.
[Explanation of symbols]
11, 12, 1n Communication interface (# 1), Communication interface (# 2), Communication interface (#N)
20,320 Communication interface switching manager
21, 321 switching judgment part
22,322 memory
23,323 switching instruction section
30,330 Session Manager
31,331 switching instruction section
32,332 agents
33 Timer
40,340 Address conversion function part
41 Virtual interface
42 Address switching part
43,343 buffers
51, 52, 5n Application part (# 1), application part (# 2), application part (#N)
60 Communication interface
70 Session Manager
71 Control unit
72 agents
73 timer
80 Address conversion function part
81 Virtual interface
82 Address switching part
91, 92, 9n Application part (# 1), application (# 2), application part (#N)
100 Node A
200 Node B
300 Node C
344 Session Table Management Department
411, 412, 41n session (# 1) virtual interface, session (# 2) virtual interface, session (#N) virtual interface
421, 422, 42n Session (# 1) address switching unit, Session (# 2) address switching unit, Session (#N) address switching unit
431, 43n Session table (# 1), Session table (#N)

Claims (9)

データを相手装置と送受信する複数の通信インタフェースと、
該複数の通信インタフェースの中から、前記データの送受信に用いる使用通信インタフェースを選択して切り替える切り替え手段と、
ネットワーク層よりも上位層から、前記相手装置に送信するデータを取得し、前記相手装置から送信されたデータを、前記上位層に提供する仮想インタフェースと、
前記データに付加されている通信装置のアドレスを、前記使用通信インタフェースのアドレスと前記仮想インタフェースのアドレスとの間で変換する変換手段と、
前記使用通信インタフェースを切り替える際に、前記相手装置に、切り替えの前後で通信装置は同一であることを証明する証明情報を提供する証明情報提供手段と
を備えることを特徴とする通信装置。
A plurality of communication interfaces for transmitting and receiving data to and from the partner device;
Switching means for selecting and switching the communication interface used for transmission / reception of the data from the plurality of communication interfaces;
A virtual interface that obtains data to be transmitted to the counterpart device from a higher layer than the network layer, and provides the data transmitted from the counterpart device to the upper layer;
Conversion means for converting the address of the communication device added to the data between the address of the used communication interface and the address of the virtual interface;
A communication apparatus comprising: proof information providing means for providing proof information certifying that the communication apparatus is the same before and after the switching to the partner apparatus when the communication interface to be used is switched.
前記証明情報提供手段は、前記切り替えの前に、前記証明情報として、前記相手装置と共有する共有情報を生成することを特徴とする請求項1に記載の通信装置。  The communication apparatus according to claim 1, wherein the proof information providing unit generates shared information shared with the partner apparatus as the proof information before the switching. 前記相手装置が複数の通信インタフェースを備える場合に、前記相手装置から、該相手装置が前記使用通信インタフェースを切り替える際に、切り替えの前後で前記相手装置は同一であることを証明する相手装置証明情報を取得し、該取得した相手装置証明情報に基づいて前記相手装置を認証する認証手段を備えることを特徴とする請求項1又は2に記載の通信装置。  When the counterpart device includes a plurality of communication interfaces, when the counterpart device switches the used communication interface from the counterpart device, the counterpart device certification information proves that the counterpart device is the same before and after switching. 3. The communication apparatus according to claim 1, further comprising an authentication unit configured to acquire the communication apparatus and authenticate the partner apparatus based on the acquired partner apparatus certification information. データを相手装置と送受信する複数の通信インタフェースと、
該複数の通信インタフェースの中から、前記データの送受信に用いる使用通信インタフェースを、ネットワーク層よりも上位層で行うアプリケーション毎に選択して切り替える切り替え手段と、
前記上位層から、前記相手装置に送信するデータを取得し、前記相手装置から送信されたデータを、前記上位層に提供する仮想インタフェースと、
前記データに付加されている通信装置のアドレスを、前記アプリケーション毎の使用通信インタフェースのアドレスと前記仮想インタフェースのアドレスとの間で変換する変換手段と
を備えることを特徴とする通信装置。
A plurality of communication interfaces for transmitting and receiving data to and from the partner device;
A switching means for selecting and switching a communication interface to be used for data transmission / reception among the plurality of communication interfaces for each application performed in a layer higher than the network layer;
A virtual interface that obtains data to be transmitted to the counterpart device from the upper layer and provides the data transmitted from the counterpart device to the upper layer;
A communication apparatus comprising: a conversion unit configured to convert an address of a communication apparatus added to the data between an address of a communication interface used for each application and an address of the virtual interface.
前記切り替え手段が行う前記アプリケーション毎の使用通信インタフェースの切り替えを、前記相手装置に通知する通知手段を備えることを特徴とする請求項に記載の通信装置。The communication apparatus according to claim 4 , further comprising a notification unit that notifies the partner apparatus of switching of a communication interface used for each application performed by the switching unit. 前記変換手段は、前記データに付加されている通信装置のアドレスを、前記アプリケーションで用いるセッション毎の使用通信インタフェースのアドレスと前記仮想インタフェースのアドレスとの間で変換することを特徴とする請求項又はに記載の通信装置。And the converting means, according to claim 4, characterized in that converting the address of the communication device is added to the data, with the address of the virtual interface and use the address of the communication interface for each session to be used by the application Or the communication apparatus of 5 . 前記相手装置が複数の通信インタフェースを備える場合に、前記相手装置のアドレスを、前記相手装置が前記データの送受信に用いる使用通信インタフェースを切り替えた後の前記使用通信インタフェースのアドレスと、通信開始時の前記使用通信インタフェースのアドレスとの間で変換する相手アドレス変換手段を備えることを特徴とする請求項4乃至6のいずれかに通信装置。 When the counterpart device includes a plurality of communication interfaces, the address of the counterpart device, the address of the communication interface used after the partner device switches the communication interface used for transmission / reception of the data, and the communication start time 7. The communication apparatus according to claim 4, further comprising counterpart address conversion means for converting between addresses of the used communication interface. データを相手装置と送受信する複数の通信インタフェースと、ネットワーク層よりも上位層から、前記相手装置に送信するデータを取得し、前記相手装置から送信されたデータを、前記上位層に提供する仮想インタフェースとを備える通信装置が、前記複数の通信インタフェースの中から、前記データの送受信に用いる使用通信インタフェースを選択して切り替え、
該切り替えの際に、前記相手装置に、切り替えの前後で前記通信装置は同一であることを証明する証明情報を提供し、
前記相手装置が、前記通信装置から取得した前記証明情報に基づいて前記通信装置を認証し、
該認証を受けた通信装置は、前記データに付加されている前記通信装置のアドレスを、前記使用通信インタフェースのアドレスと前記仮想インタフェースのアドレスとの間で変換することを特徴とする通信方法。
A plurality of communication interfaces for transmitting / receiving data to / from the counterpart device, and a virtual interface for acquiring data to be transmitted to the counterpart device from an upper layer than the network layer and providing the data transmitted from the counterpart device to the upper layer A communication device comprising: selecting and switching a communication interface to be used for data transmission / reception from among the plurality of communication interfaces;
At the time of switching, providing the partner device with certification information that proves that the communication device is the same before and after the switching,
The counterpart device authenticates the communication device based on the certification information acquired from the communication device,
The communication apparatus that has received the authentication converts the address of the communication apparatus added to the data between the address of the used communication interface and the address of the virtual interface.
データを相手装置と送受信する複数の通信インタフェースと、ネットワーク層よりも上位層から、前記相手装置に送信するデータを取得し、前記相手装置から送信されたデータを、前記上位層に提供する仮想インタフェースとを備える通信装置が、前記複数の通信インタフェースの中から、前記データの送受信に用いる使用通信インタフェースを、前記上位層で行うアプリケーション毎に選択して切り替え、
前記データに付加されている前記通信装置のアドレスを、前記アプリケーション毎の使用通信インタフェースのアドレスと前記仮想インタフェースのアドレスとの間で変換することを特徴とする通信方法。
A plurality of communication interfaces for transmitting and receiving data to and from the counterpart device, and a virtual interface for acquiring data to be transmitted to the counterpart device from a higher layer than the network layer and providing the data transmitted from the counterpart device to the upper layer A communication device comprising: a communication interface to be used for transmission / reception of data among the plurality of communication interfaces is selected and switched for each application performed in the upper layer;
A communication method comprising: converting an address of the communication device added to the data between an address of a communication interface used for each application and an address of the virtual interface.
JP2003155759A 2003-05-30 2003-05-30 Communication apparatus and communication method Expired - Fee Related JP4217538B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003155759A JP4217538B2 (en) 2003-05-30 2003-05-30 Communication apparatus and communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003155759A JP4217538B2 (en) 2003-05-30 2003-05-30 Communication apparatus and communication method

Publications (2)

Publication Number Publication Date
JP2004357252A JP2004357252A (en) 2004-12-16
JP4217538B2 true JP4217538B2 (en) 2009-02-04

Family

ID=34050063

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003155759A Expired - Fee Related JP4217538B2 (en) 2003-05-30 2003-05-30 Communication apparatus and communication method

Country Status (1)

Country Link
JP (1) JP4217538B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4781897B2 (en) * 2006-04-26 2011-09-28 富士通株式会社 Sensor event control device
JP2008042460A (en) * 2006-08-04 2008-02-21 Ricoh Co Ltd Communication control method and image forming apparatus
JP4980335B2 (en) * 2008-11-28 2012-07-18 日本電信電話株式会社 Communication system, communication apparatus, communication method, or program
WO2011087085A1 (en) * 2010-01-14 2011-07-21 日本電気株式会社 Calculator, network connection switching method, and program

Also Published As

Publication number Publication date
JP2004357252A (en) 2004-12-16

Similar Documents

Publication Publication Date Title
US10848412B2 (en) Optimization of packet transmission paths
JP4727126B2 (en) Providing secure network access for short-range wireless computing devices
JP4091428B2 (en) Handover method between heterogeneous communication networks
US6970445B2 (en) Methods and apparatus for supporting session signaling and mobility management in a communications system
US7908475B2 (en) Method and apparatus for transferring a communicaton session
US7042879B2 (en) Method and apparatus for transferring a communication session
US8020203B2 (en) Techniques for high availability of virtual private networks (VPN's)
US8451840B2 (en) Mobility in IP without mobile IP
US20070195765A1 (en) Method and system for a communication node with a plurality of network interfaces
US20010054158A1 (en) Computer systems, in particular virtual private 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
EP1588535B1 (en) Establishing communication tunnels
US20030088765A1 (en) Method and apparatus for transferring a communication session
JP2004528761A (en) Method and system for enabling seamless roaming of mobile devices between wireless networks
JP4352048B2 (en) Interdomain handover
US20140108668A1 (en) Secured wireless session initiate framework
CA2612017A1 (en) Methods and apparatus for network address change for mobile devices
US20040090941A1 (en) Dynamic re-routing of mobile node support in home servers
WO2006137037A1 (en) Adaptive ipsec processing in mobile-enhanced virtual private networks
JP2009501454A (en) Link management system
JP4253569B2 (en) Connection control system, connection control device, and connection management device
US20230370848A1 (en) Methods for configuring a user apparatus, negotiating with a network entity, and managing a connection, and associated devices
JP2006185194A (en) Server device, communication control method, and program
US20110067089A1 (en) method for switching a mobile terminal from a first access router to a second access router
JP4217538B2 (en) Communication apparatus and communication method

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