以下、本発明を図示する実施形態に基づいて説明する。なお、ここで述べる実施形態は、PCT/JP2016/055960に基づく優先権主張を伴う国際出願PCT/JP2017/006131(以下、先願となる国際出願と呼ぶ)に記載された発明(以下、先願基本発明と呼ぶ)を基礎として、この先願基本発明に、グローバルIPアドレスおよびプライベートIPアドレスを選択的に用いて通信開始要求を行う機能を付加することにより、「ルータを介してネットワークに接続された端末装置間についても効率的な通信を行うことが可能になる」という固有の付加的な作用効果が得られるようにしたものである。
このような事情から、ここでは、先願基本発明を基礎とした本発明の実施形態を、本発明の好ましい一実施形態として述べることにする。そこで、以下の§1~§4において、まず、先願基本発明の説明を行い、§5以降において、本発明に固有の特徴について述べることにする。したがって、以下の§1~§4で述べる内容(図1~図20に示す内容)は、実質的に先願となる国際出願PCT/JP2017/006131に記載された実施形態と同じものである。
<<< §1. 先願基本発明の第1の実施形態 >>>
<1-1. 先願基本発明の第1の実施形態の構成>
図1は、先願基本発明の第1の実施形態に係るネットワーク通信システムの全体構成を示すブロック図である。図示のとおり、このネットワーク通信システムは、接続仲介装置100と複数の端末装置200A~200Dによって構成されており、これらの各装置はいずれもネットワークN(この例では、インターネット)を介して相互に接続することが可能である。
図では、説明の便宜上、4台の端末装置200A~200Dを用いた例を示すことにするが、実用上は、より多数の端末装置を利用するのが一般的である。各端末装置200A~200Dは、共通の構成を有する同一の装置である。そこで、ここでは、この共通の端末装置について言及する場合は符号200を用いて示し、相互に区別する必要がある場合には、符号末尾にA~Dを付して示すことにする。端末装置200の内部構成要素を示す各符号についても同様である。
結局、このネットワーク通信システムは、ネットワークNを介して相互に接続可能な複数の端末装置200A~200Dと、これら複数の端末装置間の接続を仲介する接続仲介装置100と、を備えたシステムということになる。端末装置200としては、パソコン、携帯電話、タブレット型端末など、ネットワークNに接続して通信を行う機能を有する様々な電子機器を利用することができる。一方、接続仲介装置100は、これら各端末装置200A~200DからネットワークNを介してアクセスを受けるサーバコンピュータによって構成されている。
各端末装置200A~200Dには、個々の端末装置を相互に識別するための端末IDがそれぞれ付与されており、接続仲介装置100は、この端末IDを利用して通信元となる端末装置と通信先となる端末装置との間の接続を仲介する処理を実行する。ここでは、図示のとおり、端末装置200A,200B,200C,200Dには、それぞれ「0010」,「0020」,「0030」,「0040」なる端末IDが付与されているものとする。
なお、先願基本発明を実施する上で、端末IDは、個々の端末装置を相互に識別することができる情報であれば、どのような情報であってもかまわない。図示の例では、4台の端末装置しか用いられていないため、「0010」のような4桁の数字を端末IDとして用いれば十分であるが、各端末装置を相互に識別するためには、ユニークなIDを用いる必要があるので、実用上は、より桁数の多い数字もしくは数字とアルファベットの組み合わせを用いるのが好ましい。具体的には、個々の端末装置に内蔵されているCPUのシリアル番号、通信インターフェイスに付与されたMACアドレス、携帯電話を端末装置として用いる場合は電話番号やSIMカードのシリアル番号、などを端末IDとして用いることが可能である。
各端末装置200A~200Dには、それぞれ自己のネットワーク上での所在を示す所在アドレスが付与されている。図示の例の場合、端末装置200A,200B,200C,200Dには、それぞれAD1,AD2,AD3,AD4なる所在アドレスが付与されている。所在アドレスとしては、ネットワーク上で当該端末装置の所在を一義的に決定できるアドレスであれば、どのようなアドレスを用いてもよい。図示の例のように、ネットワークNとしてインターネットを用い、通信プロトコルとしてIPを利用する場合は、個々の端末装置200のネットワークN上での所在を示す所在アドレスとして、グローバルIPアドレスもしくはNAT-IDを用いるのが好ましい。
端末IDが、個々の端末装置を相互に識別するために必要な情報であるのに対して、所在アドレスは、ネットワークNを介して個々の端末装置をアクセスするために必要な情報である。しかも多くの端末装置の場合、所在アドレスは常に一定ではなく、時事刻々と変化する。たとえば、携帯電話やモバイルパソコンなどの携帯型端末装置の場合、移動とともに交信相手となる基地局が変化するため、所在アドレスも時間的に変化する。また、デスクトップ型パソコンのような定点設置型の端末装置の場合も、プロバイダから付与されるIPアドレスなどが更新されるため、やはり所在アドレスが時間的に変化するのが一般的である。
後述するように、先願基本発明に用いる端末装置200は、自己のネットワーク上での所在を示す所在アドレスを、ネットワークNを介して接続仲介装置100に通知する機能を有している。このため、接続仲介装置100は、各端末装置200A~200Dの最新アドレスを常に把握することができ、必要に応じて、各端末装置200A~200Dにアクセスすることが可能である。
図示のとおり、接続仲介装置100には、アドレステーブル格納部110、アドレステーブル更新部120、通信先アドレス返信部130が設けられている。前述したとおり、この接続仲介装置100は、実際には、サーバコンピュータなどのコンピュータによって構成される。したがって、図に個々のブロックとして示されている各構成要素は、実際には、コンピュータに専用のプログラムを組み込むことにより構築されることになる。
アドレステーブル格納部110には、各端末装置200A~200Dのそれぞれについて、端末IDと所在アドレスとを対応づけたアドレステーブルTが格納されており、アドレステーブル更新部120は、各端末装置200A~200Dからの通知に基づいて、このアドレステーブルTの内容を更新する処理を行う。また、通信先アドレス返信部130は、各端末装置200A~200Dから接続仲介依頼があると、アドレステーブルTを参照することにより、通信先アドレスを返信する処理を行う。
図には、アドレステーブルTとして、4台の端末装置200A~200Dのそれぞれについて、端末IDと所在アドレスとの対応関係を示す情報が格納されている。具体的には、端末装置200Aについては端末ID「0010」と所在アドレス「AD1」とが対応づけられ、端末装置200Bについては端末ID「0020」と所在アドレス「AD2」とが対応づけられ、端末装置200Cについては端末ID「0030」と所在アドレス「AD3」とが対応づけられ、端末装置200Dについては端末ID「0040」と所在アドレス「AD4」とが対応づけられている。
続いて、図2を参照しながら、端末装置200の詳細構成および個々の構成要素の具体的な処理動作を説明する。図示のとおり、端末装置200には、接続仲介依頼部210、通信要求受付部220、通信先セッション確立部230、通信開始要求部240、自己アドレス通知部250、通信元セッション確立部260が設けられている。
この端末装置200も、実際には、種々のコンピュータ(携帯電話などの機器も含む)によって構成され、図に個々のブロックとして示されている各構成要素は、実際には、コンピュータに専用のプログラムを組み込むことにより構築される。なお、実際の端末装置200には、この他にも種々の構成要素が組み込まれている。たとえば、端末装置200がスマートフォンであれば、様々なアプリケーションプログラムを組み込むことにより、様々な処理機能をもった構成要素が付加されることになるが、ここでは、先願基本発明に直接関係する構成要素のみを図にブロックとして示すことにし、その他の構成要素についての説明は省略する。もちろん、端末装置200には、ユーザからの指示入力や文字入力を行う入力インターフェイスや、ユーザに情報を提示するためのディスプレイなどの構成要素も備わっているが、これらの構成要素についての説明も省略する。
結局、図2において、端末装置200内に6つのブロックとして描かれている構成要素は、先願基本発明に係る端末装置200において必須の機能要素ということになる。このブロック図には、各ブロック間の信号の流れを示す矢印として、太線矢印、細線矢印、白抜矢印の3通りの矢印が用いられている。ここで、太線矢印は、端末装置200と接続仲介装置100との間でやりとりされる、通信セッション確立前の信号の流れを示しており、細線矢印は、一対の端末装置200の間でやりとりされる、通信セッション確立前の信号の流れを示している。そして、白抜矢印は、一対の端末装置200の間でやりとりされる、通信セッション確立後の信号の流れを示している。
また、図2では、端末装置200内の6つの構成要素が、楕円、矩形、二重矩形という3通りのブロックを用いて描かれているが、これは、各構成要素の役割分担を示すための便宜である。具体的には、楕円ブロックで示されている構成要素は、端末装置200が「アドレス通知」の処理を実行するための構成要素であり、矩形ブロックで示されている構成要素は、端末装置200が「通信元」として機能する場合に必要な処理を実行する構成要素であり、二重矩形ブロックで示されている構成要素は、端末装置200が「通信先」として機能する場合に必要な処理を実行する構成要素である。
本願において、「通信元」および「通信先」という用語は、2台の端末装置が相互に通信を行う場合に、これら2台を区別するために用いる用語であり、自発的に通信を開始するための処理を行う側を「通信元」と呼び、この「通信元」からの働きかけに応じて、当該「通信元」と通信を行うために必要な処理を行う側を「通信先」と呼んでいる。たとえば,2台の端末装置を電話として使う場合、発呼側の装置が「通信元」であり、着呼側の装置が「通信先」になる。「通信元」の端末装置は、特定の「通信先」を指定して、自発的に通信を開始するための処理を行うことになる。
もちろん、端末装置200は、「通信元」になったり「通信先」になったりする。「通信元」になったときには、図2に矩形ブロックで示されている構成要素による処理が行われ、「通信先」になったときには、図2に二重矩形ブロックで示されている構成要素による処理が行われる。以下、端末装置200の6つの構成要素の各機能を順に説明する。
上述したように、楕円ブロックで示されている自己アドレス通知部250は、「アドレス通知」の処理を実行するための構成要素であり、自己のネットワーク上での所在を示す所在アドレスを、接続仲介装置100に対して通知する処理を実行する。所在アドレスとしてIPアドレスを用いるのであれば、自己アドレス通知部250は、現時点で自己に付与されたIPアドレスをネットワークNを介して接続仲介装置100に通知する処理を行うことになる。
通常、インターネットに接続可能な端末装置200には、インターネットプロバイダから所定のグローバルIPアドレスが付与されるので、自己アドレス通知部250は、端末装置200に付与されたグローバルIPアドレスを、所在アドレスとして接続仲介装置100に対して通知すればよい。また、ルータのNAT機能を利用して、プライベートIPアドレスが付与されている場合には、NAT-IDを所在アドレスとして接続仲介装置100に対して通知すればよい。所在アドレスを通知する際には、端末IDを同時に送信するようにする。
図1に示すアドレステーブル更新部120は、このような通知を受けて、アドレステーブルTの更新を行う。たとえば、端末装置200Aから接続仲介装置100に対して、端末ID「0010」と所在アドレス「AD1」とが通知された場合、アドレステーブル更新部120は、端末ID「0010」と所在アドレス「AD1」とを対応づけてアドレステーブルTに格納する処理を行う。
前述したとおり、一般的な端末装置200の場合、所在アドレスが時間的に変化する。したがって、実用上は、自己アドレス通知部250には、所定周期で繰り返して、現時点の自己(端末装置200)の所在アドレスを通知する機能をもたせておくのが好ましい。たとえば、自己アドレス通知部250が1分おきに繰り返し通知を行うようにすれば、アドレステーブルTは1分おきに最新の情報に更新されることになる。
あるいは、自己アドレス通知部250には、自己(端末装置200)の所在アドレスが変更になったときに、現時点の所在アドレスを通知する機能をもたせておくようにしてもよい。すなわち、初めて所在アドレスが付与された段階で、当該所在アドレスを初期状態のアドレスとして通知させ、その後は、所在アドレスが変更になるたびに新たな所在アドレスを通知させるようにすればよい。もちろん、所定周期で繰り返し通知する運用と、所在アドレスが変更になったときに通知する運用とを組み合わせてもかまわない。
次に、図2に矩形ブロックで示されている4つの構成要素について説明する。上述したように、これら4つの構成要素は、端末装置200が「通信元」として機能する場合に必要な処理を実行する。
まず、通信要求受付部220は、自己を通信元として、通信先の別な端末装置に対する通信要求を受け付ける処理を行う。たとえば、端末装置200(通信元)のユーザが、特定の相手に電話をかけたい場合、当該相手が所持する別な端末装置(通信先)に対して通信を行いたい旨の通信要求を行うことになる。この通信要求は、たとえば、図示されていない入力インターフェイスを介したユーザの操作入力(たとえば、タッチパネル上での操作)として与えられ、相手先の端末装置を特定するための何らかの情報を含むものになる。
接続仲介依頼部210は、通信要求受付部220によって通信要求が受け付けられたときに、接続仲介装置100に対して、通信先の別な端末装置の端末IDを特定するための通信先特定情報を含む接続仲介依頼を送信する。ここで、接続仲介依頼に含まれる通信先特定情報は、通信先の別な端末装置の端末IDであってもよいし、当該端末IDを特定することが可能な別な情報であってもかまわない(詳細は、§3-1で述べる)。
こうして、接続仲介依頼部210から送信された接続仲介依頼は、ネットワークNを介して接続仲介装置100へと伝達される(前述したように、図における太線矢印は、端末装置200と接続仲介装置100との間でやりとりされる、通信セッション確立前の信号の流れを示している)。すると、接続仲介装置100からは、図に太線矢印で示すように、通信先となる別な端末装置のネットワーク上での所在を示す通信先アドレスが返信されてくる。これは、図1に示す通信先アドレス返信部130の機能によるものである。
すなわち、通信先アドレス返信部130は、端末装置200の接続仲介依頼部210から、接続仲介依頼が送信されてきたときに、アドレステーブルTを参照して、接続仲介依頼に含まれている通信先特定情報によって特定される端末IDに対応づけられている所在アドレスを通信先アドレスとして返信する処理を行う。もちろん、返信の相手先は、接続仲介依頼を行った端末装置200である。要するに、通信先アドレス返信部130は、通信元の端末装置から通信先を特定した接続仲介依頼があると、アドレステーブルTを用いて、当該通信先の現時点での所在アドレスを検索し、これを通信元の端末装置に返信する処理を行うことになる。
このように、接続仲介依頼部210によって接続仲介依頼を行うと、接続仲介装置100からは、通信先の別な端末装置のネットワーク上での所在を示す通信先アドレスが返信されてくる。こうして返信されてきた通信先アドレスは、通信開始要求部240によって受信される。通信開始要求部240は、この通信先アドレスにネットワークNを介してアクセスして通信開始要求を行う。図に細線矢印で示すとおり、この通信開始要求は、1台の端末装置200(通信元)から別な1台の端末装置200(通信先)に宛てた信号ということになる。
このように、通信開始要求部240によって、通信先の別な端末装置に対して通信開始要求を送信すると、当該通信先の別な端末装置からは、この通信開始要求に応じて、通信開始受諾確認が返信されてくる(図の右側の細線矢印:この返信処理については、通信先の別な端末装置の通信先セッション確立部230の処理として後述する)。こうして返信されてきた通信開始受諾確認は、通信元セッション確立部260によって受信される。通信元セッション確立部260は、この通信開始受諾確認を受信したら、当該通信先の別な端末装置との間に通信セッションを確立して通信を開始する。図2の右端に描かれた白抜矢印は、このようにして通信セッションが確立した後の両端末間の信号(通信パケット)の流れを示している。
以上、図2に矩形ブロックで示されている4つの構成要素、すなわち、端末装置200が「通信元」として機能する場合に処理を実行する構成要素について説明したが、続いて、図2に二重矩形ブロックで示されている構成要素、すなわち、端末装置200が「通信先」として機能する場合に処理を実行する構成要素について説明する。
図2において、二重矩形ブロックで示されている構成要素は、通信先セッション確立部230である。この通信先セッション確立部230は、通信元の別な端末装置から、自己を通信先とする通信開始要求がなされたら(図の左側の下向き細線矢印)、当該通信元の別な端末装置に対して通信開始受諾確認を送信し(図の左側の上向き細線矢印)、当該通信元の別な端末装置との間に通信セッションを確立して通信を開始する。図2の左端に描かれた白抜矢印は、このようにして通信セッションが確立した後の両端末間の信号(通信パケット)の流れを示している。
結局、通信元端末装置と通信先端末装置との間の通信セッション確立後の通信は、通信元端末装置の通信元セッション確立部260と通信先端末装置の通信先セッション確立部230との間で行われることになる。別言すれば、図2の右端の白抜矢印は、ネットワークNを介して、図2の左端の白抜矢印に連なることになる。
<1-2. 第1の実施形態における具体的な通信手順>
これまで、図1および図2を参照しながら、先願基本発明の第1の実施形態に係るネットワーク通信システムの構成要素である接続仲介装置100および端末装置200の各構成要素およびその機能を説明した。ここでは、この第1の実施形態に係るネットワーク通信システムにおける通信手順を、具体例に即して説明することにする。
図3は、図2に示す端末装置における自己アドレス通知部250の機能を示すブロック図である。図の上段には接続仲介装置100が示され、図の下段には2組の端末装置200A,200Bが示されている。ここでは、端末装置200C,200Dの図示は省略するが、自己アドレス通知部250の機能は同じである。なお、前述したとおり、接続仲介装置100と各端末装置200A,200Bとの間の情報のやりとり(太線矢印で示す)は、実際にはネットワークNを介して行われるが、ここでは説明の便宜上、ネットワークNの図示は省略する。
図3に示す端末装置200A,200Bは、図2に示す端末装置200と同様に6つの構成要素を有している。すなわち、端末装置200Aは、構成要素210A~260Aを有し、端末装置200Bは、構成要素210B~260Bを有しており、これら各構成要素は、図2に示す構成要素210~260と同一のものである(符号末尾のA,Bは、いずれの端末装置の構成要素であるかを区別するために付したものである)。なお、この図3は、端末装置200A,200Bの自己アドレス通知機能を説明するための図であるので、自己アドレス通知部250A,250B以外の構成要素のブロックは破線で示してある。
自己アドレス通知部250A,250Bは、自己のネットワーク上での所在を示す所在アドレスを、接続仲介装置100内のアドレステーブル更新部120に対して通知する処理を行う。図3には、自己アドレス通知部250Aからアドレステーブル更新部120への通知として、「0010:AD1」なるデータが送信されている例が示されているが、これは、自己の端末ID「0010」とともに自己の現時点での所在アドレス「AD1」を送信していることを示している。同様に、自己アドレス通知部250Bからアドレステーブル更新部120への通知として、「0020:AD2」なるデータが送信されている例が示されているが、これは、自己の端末ID「0020」とともに自己の現時点での所在アドレス「AD2」を送信していることを示している。
各端末装置200A,200Bの自己アドレス通知部250A,250Bから、このような通知を受けたアドレステーブル更新部120が、当該通知に基づいて、アドレステーブルTの内容を更新する処理を行う点は、既に§1-1で述べたとおりである。また、自己アドレス通知部250A,250Bが、所定周期で繰り返して、もしくは、所在アドレスが変更になったときに、現時点の所在アドレスを通知する処理を行う点も§1-1で述べたとおりである。
このように、自己アドレス通知部250が行う所在アドレスの通知処理は、端末装置間の通信を開始するための直接的な処理ではないが、いつでも通信を開始できるようにするための準備処理ということができる。この通知処理を行うことにより、接続仲介装置100内のアドレステーブルTを最新の状態に保つことができ、実際に、特定の端末装置間で通信を行う必要が生じたときに、接続仲介装置100による正しい仲介処理が実現できるのである。
続いて、特定の端末装置間で実際に通信を開始する際の処理手順を説明する。図4は、図1に示すネットワーク通信システムにおいて、通信元端末装置200Aと通信先端末装置200Bとの間の通信セッション確立の手順を示すブロック図である。この図4においても、図の上段には接続仲介装置100が示され、図の下段には2組の端末装置200A,200Bが示されている。ここでも、接続仲介装置100と端末装置200Aとの間の情報のやりとり(太線矢印で示す)や、端末装置200A,200B間の情報のやりとり(細線矢印で示す)は、実際にはネットワークNを介して行われるが、説明の便宜上、ネットワークNの図示は省略する。
また、ここでは、説明の便宜上、端末装置200Aを通信元、端末装置200Bを通信先とした場合の手順を説明する。このため、図4では、通信元端末装置200A内の構成要素については、通信元として必要な処理を実行する構成要素(矩形ブロックの構成要素)のみを実線で示し、通信先端末装置200B内の構成要素については、通信先として必要な処理を実行する構成要素(二重矩形ブロックの構成要素)のみを実線で示すことにし、それ以外の構成要素のブロックは破線で示してある。
一方、図5は、図4のブロック図に示されている通信セッション確立手順を時系列で説明する流れ図である。以下、図4のブロック図を参照しながら、図5の流れ図に従って、第1の実施形態における具体的な通信手順を説明する。なお、図4のブロック図において、各矢印に付された符号S1~S7は、図5の流れ図における各ステップS1~S7に対応するものである。逆に、図5の流れ図の各ステップにおいて、括弧書きで示された符号は、図4のブロック図における特定のブロックに対応するものであり、当該ステップの内容に関連する特定の構成要素を示すものである。
まず、ステップS1において、通信要求受付処理が行われる。これは、図4に示す通信要求受付部220Aによって行われる処理であり、たとえば、通信元端末装置200AのユーザAが、通信先端末装置200BのユーザBに対して電話をしたい、という場合に、ユーザAの操作入力に基づいて行われる処理である。たとえば、各端末装置200A,200Bが携帯電話であり、端末IDとして、それぞれの電話番号を用いている場合は、ユーザAは端末装置200Aに対して、端末装置200Bの端末ID(電話番号)を入力する操作を伴う通信要求S1を行えばよい。すなわち、端末装置200Aの通信要求受付部220Aは、自己を通信元として、通信先の別な端末装置200Bに対する通信要求S1を受け付ける処理を行うことになる。
なお、通信要求受付部220Aが通信要求S1を受け付けるのは、必ずしもユーザAが電話をかけるための操作入力を行った場合に限られるわけではない。たとえば、ユーザA,Bが通信対戦型のゲームをプレイしている場合は、当該ゲーム用のアプリケーションプログラムから通信要求受付部220Aに対して通信要求S1が与えられることになる。あるいは、端末装置200A,200Bが何らかのビジネス処理を行うパソコンであり、パソコン200Aに組み込まれたビジネス処理用のアプリケーションプログラムが、パソコン200Bに対して自動的に定時報告を行うような場合、当該アプリケーションプログラムから通信要求受付部220Aに対して通信要求S1が与えられることになる。このように、先願基本発明における通信要求は、必ずしもユーザによって与えられるものではなく、端末装置に組み込まれているプログラムによって与えられる場合もある。
こうして、ステップS1において通信要求受付が行われると、続くステップS2において、接続仲介依頼が行われる。これは、図4に示す接続仲介依頼部210Aによって行われる処理であり、既に述べたとおり、接続仲介装置100に対して、通信先の別な端末装置200Bの端末IDを特定するための通信先特定情報を含む接続仲介依頼S2を送信する処理である。
なお、一般に、ネットワークを介して接続された二者間で情報の送受を行う場合、情報の送信側は自分のアドレスを受信側に伝達し、受信側は当該送信側アドレス宛にアクノレッジ信号を返信する処理を行う。したがって、接続仲介依頼部210Aから接続仲介依頼S2を送信する際には、自己の所在アドレス「AD1」が接続仲介装置100側に伝達されることになる。後述するステップS4における返信処理は、この所在アドレス「AD1」宛に行われる。
こうして、通信元端末装置200Aの接続仲介依頼部210Aから、接続仲介装置100へ接続仲介依頼が送信されてくると、ステップS3において、この接続仲介依頼を受けた通信先アドレス返信部130が、アドレステーブル格納部110に格納されているアドレステーブルを参照して、当該接続仲介依頼に含まれている通信先特定情報によって特定される端末ID(この例では、「0020」)に対応づけられている所在アドレスを通信先アドレスとして認識する。たとえば、その時点におけるアドレステーブルTが、図1に示すようなものであったとすると、端末ID「0020」に対応づけられているアドレス「AD2」が通信先アドレスとして認識される。
そこで、ステップS4において、通信先アドレス返信部130が、ステップS3で認識した通信先アドレス「AD2」を返信する処理を行う。もちろん、返信相手は、ステップS2において接続仲介依頼を行った通信元端末装置200Aである。前述したとおり、接続仲介依頼S2には通信元端末装置200Aの所在アドレス「AD1」の情報が含まれているので、通信先アドレス返信部130は、当該所在アドレス「AD1」宛に、通信先アドレス「AD2」を返信することができる。
こうして、通信先アドレス返信部130から通信先アドレス返信S4(通信先アドレス「AD2」を伝達する情報)が送信されてくると、当該通信先アドレス返信S4は、通信開始要求部240Aによって受信される。結局、通信元端末装置200Aが、接続仲介装置100に対して接続仲介依頼S2を行うと、この接続仲介依頼S2に応じて、接続仲介装置100から、通信先端末装置200Bのネットワーク上での所在を示す通信先アドレス「AD2」が返信されてくることになる。接続仲介装置100に用意されているアドレステーブルTは、常に最新の状態に更新されているので、返信されてきた通信先アドレス「AD2」は、通信先端末装置200Bの最新の所在アドレスということになる。
そこで、この通信先アドレス返信S4により、通信先アドレス「AD2」を取得した通信開始要求部240Aは、ステップS5において、通信先端末装置200Bに対して通信開始要求S5を行う。すなわち、ネットワークNを介して、通信先アドレス「AD2」宛にアクセスを行い、相手方に通信開始の要求を伝える。このとき、自己の所在アドレス(通信元アドレス「AD1」)も併せて伝達されることになる。
通信先アドレス「AD2」宛に行われた通信開始要求S5は、通信先端末装置200Bの通信先セッション確立部230Bによって受信される。通信先セッション確立部230Bは、通信元端末装置200Aから、自己(端末装置200B)を通信先とする通信開始要求S5がなされたら、まず、ステップS6において、ネットワークNを介して通信元端末装置200Aに対して通信開始受諾確認S6を送信する。そして、続くステップS7において、通信元端末装置200Aとの間に通信セッションを確立して通信S7を開始する。
一方、通信元端末装置200A宛に送信されてきた通信開始受諾確認S6は、通信元セッション確立部260Aによって受信される。そして、ステップS7では、この通信開始受諾確認S6を受信した通信元セッション確立部260Aが、通信先端末装置200Bとの間に通信セッションを確立して通信S7を開始する処理も行われる。要するに、通信元端末装置200A側では、通信開始要求S5に応じて、通信先端末装置200Bから通信開始受諾確認S6が返信されてきたら、当該通信先端末装置200Bとの間に通信セッションを確立して通信を開始する処理を行うことになる。
かくして、通信元端末装置200Aと通信先端末装置200Bとの間に通信セッションが確立され、両者間での通信S7が行われることになる。この図5に示す流れ図において、接続仲介装置100が行った処理は、ステップS3のアドレステーブル参照処理とステップS4の通信先アドレス返信処理だけである。すなわち、接続仲介装置100が行う仲介処理は、通信元端末装置200Aからの接続仲介依頼S2を受けて、アドレステーブルTを参照し(ステップS3)、得られた通信先アドレスを通信元端末装置200Aに対して返信する(ステップS4)だけである。接続仲介装置100がこのような仲介処理を行うだけで、通信元端末装置200Aと通信先端末装置200Bとの間に通信セッションが確立され、両者間での通信が開始することになる。
このように、先願基本発明の第1の実施形態に係るネットワーク通信システムでは、接続仲介装置100の処理負荷は極めて軽くなる。前述したように、SIPを利用して両端末間の接続仲介処理を行うシステムでは、従来型の中継処理に比べれば、その処理負荷は軽減されることになるが、両端末間にセッションが確立するまで関与する必要があり、多数の端末装置からの仲介依頼が集中すると、その処理負荷はかなり重くなってくる。これに対して、先願基本発明の第1の実施形態に係るシステムの場合、接続仲介装置100は、両端末間に通信セッションが確立するまで関与する必要はなく、通信元端末装置に対して通信先アドレスを伝達する処理を行えば足りる。このため、一対の端末装置間の接続を仲介する際の処理負荷を、より軽減することが可能になる。
このように、先願基本発明の第1の実施形態に係るネットワーク通信システムでは、接続仲介装置100が通信セッション確立まで関与しないため、接続仲介装置100は、両端末装置間に通信セッションが確立し、支障なく通信が行われているか否かを把握することはできない。そこで、もし必要があれば、通信セッション確立後に、通信元セッション確立部260Aもしくは通信先セッション確立部230Bから接続仲介装置100に対して、支障なく通信セッションが確立した旨の報告を行うようにしてもよい。
なお、上述の実施例では、通信先セッション確立部230Bが、通信元端末装置200Aから、自己を通信先とする通信開始要求S5がなされた時に、ステップS6において、当該通信元端末装置200Aに対して通信開始受諾確認を送信する、という説明を行ったが、場合によっては、通信開始要求S5を受諾せずに拒絶し、通信開始受諾確認を送信しないようにしてもよい(あるいは、通信開始受諾確認の代わりに、通信開始拒絶通知を送信するようにしてもよい)。すなわち、通信先セッション確立部230Bに何らかの条件判断機能をもたせておき、通信開始要求S5がなされた場合、所定の条件を満たしている場合に限り、通信開始受諾確認を送信する処理を行わせるようにすればよい。
たとえば、通信先端末装置200BのユーザBが、通信先セッション確立部230に対して、着信拒否の設定を行えるようにし、「着信拒否の設定がなされていない」という条件を満たす場合にのみ、通信開始受諾確認を送信する処理が行われるようにすればよい。また、通信開始要求S5に、通信元端末装置200Aを特定するための何らかの通信元特定情報(たとえば、端末ID)を含ませるようにしておけば、通信先セッション確立部230Bは、通信開始要求S5を行った通信元に応じて、当該要求を受諾したり拒絶したりする処理が可能になる。
たとえば、通信先セッション確立部230Bに、通信開始要求S5を常に拒絶する通信元リスト(いわゆるブラックリスト)や通信開始要求S5を常に受諾する通信元リスト(いわゆるホワイトリスト)を用意しておけば、通信先セッション確立部230Bは、当該リストを参照することにより、通信開始要求S5を受諾するか拒絶するかの判断を行うことができる。
また、§3-3で述べるように、セキュリティを向上させる変形例を採用する場合は、通信開始要求S5に何らかのセキュリティ上の問題が存在する場合には、これを拒絶する運用を採用することも可能である。
<<< §2.先願基本発明の第2の実施形態 >>>
<2-1. 先願基本発明の第2の実施形態の構成>
続いて、先願基本発明の第2の実施形態を説明する。図6は、この第2の実施形態に係るネットワーク通信システムの全体構成を示すブロック図である。図示のとおり、このネットワーク通信システムは、接続仲介装置300と複数の端末装置400A~400Dによって構成されており、これらの各装置はいずれもネットワークN(この例では、インターネット)を介して相互に接続することが可能である。
ここでも、説明の便宜上、4台の端末装置400A~400Dを用いた例を示すことにするが、実用上は、より多数の端末装置を利用するのが一般的である。各端末装置400A~400Dは、共通の構成を有する同一の装置であり、この共通の端末装置について言及する場合は符号400を用いて示し、相互に区別する必要がある場合には、符号末尾にA~Dを付して示すことにする。端末装置400の内部構成要素を示す各符号についても同様である。
この図6に示すネットワーク通信システムは、ネットワークNを介して相互に接続可能な複数の端末装置400A~400Dと、これら複数の端末装置間の接続を仲介する接続仲介装置300と、を備えたシステムということになる。やはり端末装置400としては、パソコン、携帯電話、タブレット型端末など、ネットワークNに接続して通信を行う機能を有する様々な電子機器を利用することができる。また、接続仲介装置300は、これら各端末装置400A~400DからネットワークNを介してアクセスを受けるサーバコンピュータによって構成されている。
各端末装置400A~400Dには、個々の端末装置を相互に識別するための端末IDがそれぞれ付与されており、接続仲介装置300は、この端末IDを利用して通信元となる端末装置と通信先となる端末装置との間の接続を仲介する処理を実行する。端末IDとしては、前述したとおり、個々の端末装置を相互に識別することができる情報であれば、どのような情報を利用してもかまわない。ここでは、前述した第1の実施形態の場合と同様に、端末装置400A,400B,400C,400Dには、それぞれ「0010」,「0020」,「0030」,「0040」なる端末IDが付与されているものとする。
また、各端末装置400A~400Dには、それぞれ自己のネットワーク上での所在を示す所在アドレスが付与されている。ここでも、前述した第1の実施形態の場合と同様に、端末装置400A,400B,400C,400Dに、それぞれAD1,AD2,AD3,AD4なる所在アドレスが付与されているものとする。この所在アドレスは、ネットワーク上で当該端末装置の所在を一義的に決定できるアドレスであれば、どのようなアドレスを用いてもよいが、実用上は、グローバルIPアドレスもしくはNAT-IDを用いればよい。前述したとおり、この所在アドレスは、時間的に変化する。
図示のとおり、接続仲介装置300には、アドレステーブル格納部310、アドレステーブル更新部320、通信元アドレス送信部330が設けられている。この接続仲介装置300は、実際には、サーバコンピュータなどのコンピュータによって構成される。したがって、図に個々のブロックとして示されている各構成要素は、実際には、コンピュータに専用のプログラムを組み込むことにより構築されることになる。
アドレステーブル格納部310は、図1に示すアドレステーブル格納部110と同じ構成要素であり、各端末装置400A~400Dのそれぞれについて、端末IDと所在アドレスとを対応づけたアドレステーブルTを格納する機能を有する。図6に示すアドレステーブルTは、図1に示すアドレステーブルTと全く同じものである。アドレステーブル更新部320は、図1に示すアドレステーブル更新部120と同じ構成要素であり、各端末装置400A~400Dからの通知に基づいて、アドレステーブルTの内容を更新する処理を行う。このように、図6に示す構成要素310,320は、実質的に図1に示す構成要素110,120と同じものであるため、ここでは詳細な説明は省略する。
一方、通信元アドレス送信部330は、図1に示す通信先アドレス返信部130に類似した機能を有する構成要素であるが、若干異なる動作を行う。すなわち、通信元アドレス送信部330は、各端末装置400A~400Dから接続仲介依頼があると、アドレステーブルTを参照することにより通信先アドレスを認識し、当該通信先アドレス宛に、通信元アドレスを送信する処理を行う。この処理のより詳細な説明は後述する。
続いて、図7を参照しながら、端末装置400の詳細構成および個々の構成要素の具体的な処理動作を説明する。図示のとおり、端末装置400には、接続仲介依頼部410、通信要求受付部420、通信元セッション確立部430、通信開始要求部440、自己アドレス通知部450、通信先セッション確立部460が設けられている。
この端末装置400も、実際には、種々のコンピュータ(携帯電話などの機器も含む)によって構成され、図に個々のブロックとして示されている各構成要素は、実際には、コンピュータに専用のプログラムを組み込むことにより構築される。もちろん、この端末装置400にも、必要に応じて、図示されていない種々の構成要素や入出力インターフェイスが組み込まれているが、ここでは、先願基本発明に直接関係する構成要素のみを図にブロックとして示すことにし、その他の構成要素についての説明は省略する。
この図7においても、図2と同様に、各ブロック間の信号の流れを示す太線矢印は、端末装置400と接続仲介装置300との間でやりとりされる、通信セッション確立前の信号の流れを示しており、細線矢印は、一対の端末装置400の間でやりとりされる、通信セッション確立前の信号の流れを示している。そして、白抜矢印は、一対の端末装置400の間でやりとりされる、通信セッション確立後の信号の流れを示している。
また、図2と同様に、図7に楕円ブロックで示されている構成要素は、端末装置400が「アドレス通知」の処理を実行するための構成要素であり、矩形ブロックで示されている構成要素は、端末装置400が「通信元」として機能する場合に必要な処理を実行する構成要素であり、二重矩形ブロックで示されている構成要素は、端末装置400が「通信先」として機能する場合に必要な処理を実行する構成要素である。端末装置400が、「通信元」になったときには、図7に矩形ブロックで示されている構成要素による処理が行われ、「通信先」になったときには、図7に二重矩形ブロックで示されている構成要素による処理が行われる。以下、図7に示す端末装置400の6つの構成要素の各機能を順に説明する。
まず、楕円ブロックで示されている自己アドレス通知部450は、「アドレス通知」の処理を実行するための構成要素であり、自己のネットワーク上での所在を示す所在アドレスを、接続仲介装置300に対して通知する処理を実行する。この自己アドレス通知部450の機能は、図2に示す自己アドレス通知部250の機能と全く同じであるため、ここでは詳しい説明は省略する。図6に示すアドレステーブル更新部320は、この通知を受けて、アドレステーブルTの更新を行う。
次に、図7に矩形ブロックもしくは二重矩形ブロックで示されている5つの構成要素について説明する。上述したように、矩形ブロックで示されている3つの構成要素は、端末装置400が「通信元」として機能する場合に必要な処理を実行し、二重矩形ブロックで示されている2つの構成要素は、端末装置400が「通信先」として機能する場合に必要な処理を実行する。
まず、通信要求受付部420は、自己を通信元として、通信先の別な端末装置に対する通信要求を受け付ける処理を行う構成要素であり、図2に示す通信要求受付部220と全く同じ機能をもつ構成要素である。また、接続仲介依頼部410は、通信要求受付部420によって通信要求が受け付けられたときに、接続仲介装置300に対して、通信先の別な端末装置の端末IDを特定するための通信先特定情報を含む接続仲介依頼を送信する構成要素であり、図2に示す接続仲介依頼部210と全く同じ機能をもつ構成要素である。
こうして、接続仲介依頼部410から送信された接続仲介依頼は、ネットワークNを介して接続仲介装置300へと伝達される(図における太線矢印は、端末装置400と接続仲介装置300との間でやりとりされる、通信セッション確立前の信号の流れを示している)。すると、接続仲介装置300からは、図に太線矢印で示すように、通信元アドレスが送信されてくる。この通信元アドレスは、通信開始要求部440によって受信される。
ここで留意すべき点は、接続仲介装置300からの通信元アドレスの送信先は、接続仲介依頼を行った通信元の端末装置ではなく、通信先となる別な端末装置である点である。すなわち、図7に示す例において、矩形ブロックで示す接続仲介依頼部410は、通信元端末装置内の構成要素であるのに対して、二重矩形ブロックで示す通信開始要求部440は、別な通信先端末装置内の構成要素ということになる。したがって、上述の説明において、接続仲介依頼を発する接続仲介依頼部410と、これに応じて接続仲介装置300から送信されてくる通信元アドレスを受信する通信開始要求部440とは、それぞれ異なる端末装置400に所属していることになる。
要するに、図6に示されている通信元アドレス送信部330は、ある端末装置400の接続仲介依頼部から接続仲介依頼が送信されてきたときに、アドレステーブルTを参照して、当該接続仲介依頼に含まれている通信先特定情報によって特定される端末IDに対応づけられている所在アドレスに対して、当該接続仲介依頼を送信した通信元の端末装置の端末IDに対応づけられている所在アドレスを通信元アドレスとして送信する処理を行うことになる。
この通信元アドレス送信部330の処理機能をより明確にするため、ここでは、図6に示す端末装置400Bを通信元、端末装置400Aを通信先とした具体例(たとえば、端末装置400BのユーザBが発呼側となり、端末装置400AのユーザAを着呼側として電話をかけたような場合)について、上記手順を説明しよう。
この場合、通信元端末装置400Bから接続仲介装置300に対して、端末装置400Aを通信先として指定する接続仲介依頼が送信されることになる。当該接続仲介依頼を受けた通信元アドレス送信部330は、アドレステーブルTを参照することにより、通信先として指定された端末装置400Aの所在アドレス「AD1」を認識する。前述した第1の実施形態における通信先アドレス返信部130は、こうして認識した通信先の所在アドレスを通信元(接続仲介依頼の送信元)に返信する処理を行っていた。これに対して、図6に示す第2の実施形態における通信元アドレス送信部330は、認識した通信先の所在アドレス「AD1」に宛てて、通信元端末装置400Bの所在を示す通信元アドレス「AD2」(これは、接続仲介依頼の送信元のアドレスとして認識できる)を送信する。
結局、上例の場合、通信元端末装置400Bから接続仲介装置300に対して接続仲介依頼を行うと、接続仲介装置300から通信先端末装置400Aに対して通信元アドレス(通信元端末装置400Bの所在アドレス「AD2」)が送信されることになる。ここが、前述した第1の実施形態と大きく異なる点である。
こうして送信されてきた通信元アドレスは、図7に示すとおり、通信先端末装置400A内の通信開始要求部440によって受信される。通信開始要求部440は、この通信元アドレス(通信元端末装置400Bのアドレス)に対して通信開始要求を行う。すなわち、通信開始要求部440は、接続仲介装置300から、通信元の別な端末装置のネットワーク上での所在を示す通信元アドレスが送信されてきたときに、ネットワークNを介して、当該通信元アドレスにアクセスして通信開始要求を行うことになる。図に細線矢印で示すとおり、この通信開始要求は、1台の端末装置400(通信先)から別な1台の端末装置400(通信元)に宛てた信号ということになる。
一方、通信先の別な端末装置(上例の場合、端末装置400A)から通信開始要求がなされた端末装置(上例の場合、端末装置400B)は、当該通信開始要求を通信元セッション確立部430で受信する(図の左側の下向き細線矢印)。そして、この通信元セッション確立部430は、通信先の別な端末装置(上例の場合、端末装置400A)に対して通信開始受諾確認を返信し(図の左側の上向き細線矢印)、当該通信先の別な端末装置との間に通信セッションを確立して通信を開始する。図7の左端に描かれた白抜矢印は、このようにして通信セッションが確立した後の両端末間の信号(通信パケット)の流れを示している。
こうして、通信元端末装置400Bから通信先端末装置400Aに対して返信された通信開始受諾確認は、通信先端末装置400Aの通信先セッション確立部460によって受信される(図の右側の細線矢印)。通信先セッション確立部460は、この通信開始受諾確認を受信したら、通信元の別な端末装置400Bとの間に通信セッションを確立して通信を開始する。図7の右端に描かれた白抜矢印は、このようにして通信セッションが確立した後の両端末間の信号(通信パケット)の流れを示している。
かくして、通信元端末装置と通信先端末装置との間の通信セッション確立後の通信は、通信元端末装置の通信元セッション確立部430と通信先端末装置の通信先セッション確立部460との間で行われることになる。別言すれば、図7の左端の白抜矢印は、ネットワークNを介して、図7の右端の白抜矢印に連なることになる。
<2-2. 第2の実施形態における具体的な通信手順>
これまで、図6および図7を参照しながら、先願基本発明の第2の実施形態に係るネットワーク通信システムの構成要素である接続仲介装置300および端末装置400の各構成要素およびその機能を説明した。ここでは、この第2の実施形態に係るネットワーク通信システムにおける通信手順を、具体例に即して説明することにする。
まず、図7に示す端末装置における自己アドレス通知部450の機能であるが、これは図3を用いて説明した自己アドレス通知部250A,250Bの機能と全く同じであるため、ここでは説明を省略する。
そこで以下、特定の端末装置間で実際に通信を開始する際の処理手順を説明する。図8は、図6に示すネットワーク通信システムにおいて、通信元端末装置400Bと通信先端末装置400Aとの間の通信セッション確立の手順を示すブロック図である。この図8では、図の上段に接続仲介装置300が示され、図の下段に2組の端末装置400A,400Bが示されている。ここでも、接続仲介装置300と各端末装置400A,400Bとの間の情報のやりとり(太線矢印で示す)や、端末装置400A,400B間の情報のやりとり(細線矢印で示す)は、実際にはネットワークNを介して行われるが、説明の便宜上、ネットワークNの図示は省略する。
また、ここでは、説明の便宜上、端末装置400Bを通信元、端末装置400Aを通信先とした場合の手順を説明する。このため、図8では、通信元端末装置400B内の構成要素については、通信元として必要な処理を実行する構成要素(矩形ブロックの構成要素)のみを実線で示し、通信先端末装置400A内の構成要素については、通信先として必要な処理を実行する構成要素(二重矩形ブロックの構成要素)のみを実線で示すことにし、それ以外の構成要素のブロックは破線で示してある。
一方、図9は、図8のブロック図に示されている通信セッション確立手順を時系列で説明する流れ図である。以下、図8のブロック図を参照しながら、図9の流れ図に従って、第2の実施形態における具体的な通信手順を説明する。なお、図8のブロック図において、各矢印に付された符号S11~S17は、図9の流れ図における各ステップS11~S17に対応するものである。逆に、図9の流れ図の各ステップにおいて、括弧書きで示された符号は、図8のブロック図における特定のブロックに対応するものであり、当該ステップの内容に関連する特定の構成要素を示すものである。
まず、ステップS11において、通信要求受付処理が行われる。これは、図8に示す通信要求受付部420Bによって通信要求を受け付ける処理であり、図5のステップS1で述べた処理と同様であるため説明は省略する。続くステップS12では、この通信要求に基づいて、接続仲介依頼S12が行われる。これは、図8に示す接続仲介依頼部410Bによって行われる処理であり、図5のステップS2で述べた処理と同様であるため説明は省略する。
こうして、通信元端末装置400Bの接続仲介依頼部410Bから、接続仲介装置300へ接続仲介依頼S12(図示の例では、通信先特定情報として、通信先端末装置400Aの端末ID「0010」が含まれている)が送信されてくると、ステップS13において、この接続仲介依頼S12を受けた通信元アドレス送信部330が、アドレステーブル格納部310に格納されているアドレステーブルを参照して、当該接続仲介依頼に含まれている通信先特定情報によって特定される端末ID(この例では、「0010」)に対応づけられている所在アドレスを通信先アドレスとして認識する(S13)。たとえば、その時点におけるアドレステーブルTが、図6に示すようなものであったとすると、端末ID「0010」に対応づけられているアドレス「AD1」が通信先アドレスとして認識される。
そこで、ステップS14において、通信元アドレス返信部330が、ステップS13で認識した通信先アドレス「AD1」宛に、接続仲介依頼S12を送信した通信元端末装置400Bの端末ID「0020」に対応づけられている所在アドレス「AD2」を通信元アドレスとして送信する(S14)。
前述したとおり、一般に、ネットワークを介して接続された二者間で情報の送受を行う場合、情報の送信側は自分のアドレスを受信側に伝達し、受信側は当該送信側のアドレス宛にアクノレッジ信号を返信する処理を行う。したがって、通信元アドレス送信部330は、接続仲介依頼S12を受信した時点で、その送信元である端末装置400Bの所在アドレス「AD2」を認識することができるので、通信元アドレス送信S14を行う際には、この認識した所在アドレス「AD2」をデータとして送信すればよい。
このように、通信元端末装置400Bが、接続仲介装置300に対して接続仲介依頼S12を行うと、この接続仲介依頼S12に応じて、接続仲介装置300から、通信先端末装置400A宛に(アドレステーブルTで検索した所在アドレス「AD1」宛に)、通信元端末装置400Bの所在を示す通信元アドレス「AD2」が送信されることになる。接続仲介装置300に用意されているアドレステーブルTは、常に最新の状態に更新されているので、通信元アドレス送信S14は、常に通信先端末装置400Aの最新の所在アドレスに対して行われることになる。
こうして、通信元アドレス送信部330から通信元アドレス送信S14(通信元アドレス「AD2」を伝達する情報)が送信されてくると、当該通信元アドレス送信S14は、通信先端末装置400Aの通信開始要求部440Aによって受信される。
この通信元アドレス送信S14により、通信元アドレス「AD2」を取得した通信開始要求部440Aは、ステップS15において、通信元端末装置400Bに対して通信開始要求S15を行う。すなわち、ネットワークNを介して、通信元アドレス「AD2」宛にアクセスを行い、相手方に通信開始の要求を伝える。このとき、自己の所在アドレス(通信元アドレス「AD1」)も併せて伝達されることになる。
通信元アドレス「AD2」宛に行われた通信開始要求S15は、通信元端末装置400Bの通信元セッション確立部430Bによって受信される。通信元セッション確立部430Bは、通信先端末装置400Aから、自己(端末装置400B)を通信元とする通信開始要求S15がなされたら、まず、ステップS16において、ネットワークNを介して通信先端末装置400Aに対して通信開始受諾確認S16を送信する。そして、続くステップS17において、通信先端末装置400Aとの間に通信セッションを確立して通信S17を開始する。
一方、通信先端末装置400A宛に送信されてきた通信開始受諾確認S16は、通信先セッション確立部460Aによって受信される。そして、ステップS17では、この通信開始受諾確認S16を受信した通信先セッション確立部460Aが、通信元端末装置400Bとの間に通信セッションを確立して通信S17を開始する処理も行われる。要するに、通信先端末装置400A側では、通信開始要求S15に応じて、通信元端末装置400Bから通信開始受諾確認S16が返信されてきたら、当該通信元端末装置400Bとの間に通信セッションを確立して通信を開始する処理を行うことになる。
かくして、通信元端末装置400Bと通信先端末装置400Aとの間に通信セッションが確立され、両者間での通信S17が行われることになる。この図9に示す流れ図において、接続仲介装置300が行った処理は、ステップS13のアドレステーブル参照処理とステップS14の通信元アドレス送信処理だけである。すなわち、接続仲介装置300が行う仲介処理は、通信元端末装置400Bからの接続仲介依頼S12を受けて、アドレステーブルTを参照し(ステップS13)、得られた通信先アドレスに宛てて、通信元アドレスのデータを送信する(ステップS14)だけである。接続仲介装置300がこのような仲介処理を行うだけで、通信元端末装置400Bと通信先端末装置400Aとの間に通信セッションが確立され、両者間での通信が開始することになる。
このように、先願基本発明の第2の実施形態に係るネットワーク通信システムでは、第1の実施形態に係るネットワーク通信システムと同様に、接続仲介装置300の処理負荷は極めて軽くなる。前述したように、SIPを利用して両端末間の接続仲介処理を行うシステムでは、従来型の中継処理に比べれば、その処理負荷は軽減されることになるが、両端末間にセッションが確立するまで関与する必要があり、多数の端末装置からの仲介依頼が集中すると、その処理負荷はかなり重くなってくる。これに対して、先願基本発明の第2の実施形態に係るシステムの場合、接続仲介装置300は、両端末間に通信セッションが確立するまで関与する必要はなく、通信先端末装置に対して通信元アドレスを伝達する処理を行えば足りる。このため、一対の端末装置間の接続を仲介する際の処理負荷を、より軽減することが可能になる。
このように、先願基本発明の第2の実施形態に係るネットワーク通信システムでは、接続仲介装置300が通信セッション確立まで関与しないため、接続仲介装置300は、両端末装置間に通信セッションが確立し、支障なく通信が行われているか否かを把握することはできない。そこで、もし必要があれば、通信セッション確立後に、通信元セッション確立部430Bもしくは通信先セッション確立部460Aから接続仲介装置300に対して、支障なく通信セッションが確立した旨の報告を行うようにしてもよい。
なお、上述の実施例では、通信先端末装置400Aの通信開始要求部440Aが、接続仲介装置300からの通信元アドレス送信S14を受信したときに、ステップS15において、自動的に通信開始要求S15を送信しているが、場合によっては、通信開始要求部440Aに何らかの条件判断機能をもたせておき、通信元アドレス送信S14を受信したときに、所定の条件を満たしている場合に限り、通信開始要求S15を送信するようにしてもよい。あるいは、所定の条件を満たしていない場合には、通信開始要求S15の代わりに、通信開始拒絶通知を送信するようにしてもよい。
たとえば、通信開始要求部440Aに、通信開始を常に拒絶する通信元リスト(いわゆるブラックリスト)や通信開始を常に許可する通信元リスト(いわゆるホワイトリスト)を用意しておけば、通信開始要求部440Aは、当該リストを参照することにより、通信元アドレス送信S14によって送信されてきた通信元アドレスが、ブラックリストに掲載されていた場合には、通信開始要求S15の送信を行わない処理をするか、通信開始拒絶通知を送信する運用を行うことができる。あるいは、通信元アドレスが、ホワイトリストに掲載されていた場合にのみ、通信開始要求S15を送信するような運用を行うことも可能である。
また、上述の実施例では、通信元セッション確立部430Bが、通信先端末装置400Aから、自己を通信元とする通信開始要求S15がなされた時に、ステップS16において、当該通信先端末装置400Aに対して通信開始受諾確認を送信する、という説明を行ったが、場合によっては、通信開始要求S15を受諾せずに拒絶し、通信開始受諾確認を送信しないようにしてもよい(あるいは、通信開始受諾確認の代わりに、通信開始拒絶通知を送信するようにしてもよい)。
たとえば、§3-4で述べるように、セキュリティを向上させる変形例を採用する場合は、通信開始要求S15に何らかのセキュリティ上の問題が存在する場合には、これを拒絶する運用を採用することも可能である。
<<< §3. 先願基本発明の第1および第2の実施形態の変形例 >>>
ここでは、§1で述べた先願基本発明の第1の実施形態および§2で述べた先願基本発明の第2の実施形態について、いくつかの変形例を述べる。
<3-1. 端末IDに関する変形例>
これまで述べてきたように、図1の接続仲介装置100内のアドレステーブル格納部110には、アドレステーブルTが格納されている。図6の接続仲介装置300内のアドレステーブル格納部310も同様である。このアドレステーブルTは、個々の端末装置のそれぞれについて、端末IDと所在アドレスとを対応づけたテーブルであり、通信先アドレス返信部130もしくは通信元アドレス送信部330は、受信した接続仲介依頼に含まれている通信先特定情報に基づいてアドレステーブルTを参照し、通信先の所在アドレスを取得する。
たとえば、図4に示す第1の実施形態の場合、接続仲介依頼S2には、通信先端末装置200Bの端末ID「0020」が通信先特定情報として含まれており、通信先アドレス返信部130は、アドレステーブルTを参照することにより、端末ID「0020」に対応する所在アドレス「AD2」を取得することができる。同様に、図8に示す第2の実施形態の場合、接続仲介依頼S12には、通信先端末装置400Aの端末ID「0010」が通信先特定情報として含まれており、通信元アドレス送信部330は、アドレステーブルTを参照することにより、端末ID「0010」に対応する所在アドレス「AD1」を取得することができる。
このように、これまで述べてきた実施形態では、接続仲介依頼に含ませる通信先特定情報として、通信先端末装置の端末IDを用いていた。この端末IDは、個々の端末装置を相互に識別するための情報であり、具体的には、個々の端末装置に内蔵されているCPUのシリアル番号、通信インターフェイスに付与されたMACアドレス、携帯電話として機能する端末装置の場合は電話番号やSIMカードのシリアル番号、などを端末IDとして用いることができる。
ただ、一般に、ユーザが、他のユーザの端末装置についての端末IDを記憶することは困難である。したがって、通信要求を行う際に、これらの端末IDを、ユーザ自身に直接入力させることは好ましくない。そこで、実用上は、通信要求を行う際に、端末IDで通信先を指定する代わりに、ユーザIDで通信先を指定させるようにするのが好ましい。端末IDが個々の端末装置を識別するためのIDであるのに対して、ユーザIDは個々のユーザを識別するためのIDである。一般的には、ユーザ名やニックネームをユーザIDとして用いることができる。
端末IDの代わりにユーザIDを用いて通信要求を行うことができるようにするには、通信要求受付部220,420内に、ユーザIDと端末IDとの対応表を用意しておけばよい。そして、ユーザが特定のユーザID(たとえば、ユーザ名)を指定して通信要求を行ったときに、通信要求受付部220,420が、用意されている対応表を利用してユーザIDを端末IDに変換して接続仲介依頼部210,410へ引き渡すようにすればよい。そうすれば、接続仲介依頼部210,410は、端末IDを含む接続仲介依頼を送信することができる。このようなユーザID(たとえば、ユーザ名)から端末ID(たとえば、電話番号)への変換処理機能は、一般的な携帯電話に「電話番号登録機能」として備わっている公知の機能であるため、ここでは詳しい説明は省略する。
端末IDの代わりにユーザIDを利用できるようにする別な方法として、ユーザIDと端末IDとの対応表を接続仲介装置100,300側に用意する方法を採ることもできる。たとえば、アドレステーブル格納部110,310内に、図1や図6に示すアドレステーブルTの代わりに、図10に示すようなアドレステーブルT1を格納しておくようにする。このアドレステーブルT1は、個々の端末装置のそれぞれについて、当該端末装置のユーザを特定するユーザIDと、当該端末装置の端末IDと、を対応づける情報を含むテーブルである。
図10では、説明の便宜上、ユーザIDとして、「John」,「Mary」のようなユーザ名を用いた例を示すが、実際には、テーブルに収録されている個々のユーザを相互に識別できるように、各ユーザのフルネームをユーザIDとして登録しておくようにし、もし同姓同名のユーザがいた場合には、相互に区別できるようなユーザIDを登録するようにする。実際には、端末装置200,400の自己アドレス通知部250,450に、このようなユーザIDを接続仲介装置100,300側に申告する機能を設けておき、アドレステーブル更新部120,320に、申告を受けたユーザIDをアドレステーブルT1に登録する機能を設けておけば、図10に示すようなアドレステーブルT1を用意することが可能になる。
アドレステーブルT1を用意しておけば、通信元となる端末装置側では、通信先となる端末装置の端末IDを認識する必要はない。たとえば、図4に示す例において、通信元端末装置200Aから通信先端末装置200Bに対して発呼する場合、通信元端末装置200AのユーザA(John)は、通信先端末装置200BのユーザBのユーザ名「Mary」(ユーザID)を通信先として指定した通信要求を行えばよい。この場合、端末ID「0020」の代わりに、「Mary」なるユーザIDを通信先特定情報として含む接続仲介依頼S2が、接続仲介依頼部210Aから接続仲介装置100へ送信されることになる。
このような接続仲介依頼S2を受信した通信先アドレス返信部130は、図10に示すアドレステーブルT1を参照することにより、通信先特定情報として含まれていたユーザ名「Mary」に対応する端末ID「0020」を認識することができ、更に、この端末ID「0020」をもつ通信先端末装置200Bの所在アドレス「AD2」を認識することができる。
図11は、ユーザIDの代わりにアカウントIDを用いたアドレステーブルT2を示す図である。ユーザIDが、個々のユーザを特定する情報であるのに対して、アカウントIDは、個々のユーザが開設したユーザアカウントを特定する情報である。たとえば、図示の例における「U11111」なるアカウントIDは、ユーザ「John」が開設したユーザアカウントを示すIDであり、「U22222」なるアカウントIDは、ユーザ「Mary」が開設したユーザアカウントを示すIDである。もちろん、個々のユーザは、必要があれば複数のアカウントを開設することが可能である。
端末装置200,400の自己アドレス通知部250,450に、このようなアカウントを開設するための申込機能を設けておき、アドレステーブル更新部120,320に、当該申込に応じて、所定のユーザアカウントを設定し、アカウントIDをアドレステーブルT2に登録する機能を設けておけば、図11に示すようなアドレステーブルT2を用意することが可能になる。
図4に示す例において、アドレステーブル格納部110内に図11に示すようなアドレステーブルT2を用意しておけば、接続仲介依頼部210Aは、端末ID「0020」の代わりに、「U22222」なるアカウントIDを通信先特定情報として含む接続仲介依頼S2を接続仲介装置100へ送信すればよい。
このように、先願基本発明において、接続仲介依頼部から送信される接続仲介依頼には、通信先となる別な端末装置の端末IDを特定する役割を果たす何らかの「通信先特定情報」が含まれていれば足りる。この「通信先特定情報」は、端末ID自身であってもよいし、上例のように、ユーザIDやアカウントIDであってもかまわない。
結局、この§3-1で述べた変形例を§1で述べた第1の実施形態に適用する場合は、図4に示す構成において、アドレステーブル格納部110に、個々の端末装置のそれぞれについて、当該端末装置のユーザを特定するユーザIDもしくはユーザアカウントを特定するアカウントIDと、当該端末装置の端末IDと、を対応づける情報を含むアドレステーブルT1(図10)もしくはT2(図11)を格納しておくようにする。また、接続仲介依頼部210Aは、通信先特定情報として、通信先の端末装置のユーザを特定するユーザIDもしくはユーザアカウントを特定するアカウントIDを用いた接続仲介依頼S2を送信するようにする。そして、通信先アドレス返信部130は、接続仲介依頼部210Aから接続仲介依頼S2が送信されてきたときに、アドレステーブルT1もしくはT2を参照して、接続仲介依頼S2に含まれていたユーザIDもしくはアカウントIDに対応づけられている端末IDを決定し、決定された端末IDに対応づけられている所在アドレスを通信先アドレスとして返信する処理を行うようにすればよい。
一方、この§3-1で述べた変形例を§2で述べた第2の実施形態に適用する場合は、図8に示す構成において、アドレステーブル格納部310に、個々の端末装置のそれぞれについて、当該端末装置のユーザを特定するユーザIDもしくはユーザアカウントを特定するアカウントIDと、当該端末装置の端末IDと、を対応づける情報を含むアドレステーブルT1(図10)もしくはT2(図11)を格納しておくようにする。また、接続仲介依頼部410Bは、通信先特定情報として、通信先の端末装置のユーザを特定するユーザIDもしくはユーザアカウントを特定するアカウントIDを用いた接続仲介依頼S12を送信するようにする。そして、通信元アドレス送信部330は、接続仲介依頼部410Bから接続仲介依頼S12が送信されてきたときに、アドレステーブルT1もしくはT2を参照して、接続仲介依頼S12に含まれていたユーザIDもしくはアカウントIDに対応づけられている端末IDを決定し、決定された端末IDに対応づけられている所在アドレス宛に、通信元アドレスを送信する処理を行うようにすればよい。
<3-2. 代替端末を利用する変形例>
前述したとおり、先願基本発明に利用可能な端末装置は、パソコン、携帯電話、タブレット型端末など多岐にわたり、最近は、同一のユーザが複数の端末装置を使い分けることも珍しくなくなってきている。ここでは、そのような状況を考慮して、特定の端末装置に対する着呼があったときに、当該着呼を同一ユーザの別な端末装置へ誘導する仕組をもった変形例を述べることにする。
ここで述べる変形例を実施する際には、予め、図12に示すようなアドレステーブルT3を用意しておく。このアドレステーブルT3の場合、4組のユーザID「John」,「Mary」,「Frank」,「Susie」について、それぞれ端末IDおよび所在アドレスが登録されているが、ユーザID「John」については2つの端末ID「0010」,「0011」が登録され、ユーザID「Frank」については3つの端末ID「0030」,「0031」,「0032」が登録されている。これは、ユーザJohnが、このネットワーク通信システムに利用可能な2台の端末装置を所有し、ユーザFrankが、3台の端末装置を所有しているためである。
ここで、同一のユーザIDに対応づけられて登録されている複数の端末IDを、1つのグループに所属する端末IDとして把握し、同じグループに所属する1つの端末IDを別な1つの端末IDについての代替端末IDと呼ぶことにすれば、図12に示すアドレステーブルT3は、特定の端末IDについて、1つもしくは複数の代替端末IDを登録したアドレステーブルということができる。要するに、同一のユーザ名で複数の端末IDの登録があった場合には、これらの端末IDを同一のグループに所属するものとして把握し、相互に代替端末IDとして認識する取り扱いを行うようにすればよい。
たとえば、図12に示す例の場合、端末ID「0010」については1つの代替端末ID「0011」が登録されており、逆に、端末ID「0011」については1つの代替端末ID「0010」が登録されていることになる。一方、端末ID「0030」については2つの代替端末ID「0031」,「0032」が登録されており、端末ID「0031」については2つの代替端末ID「0030」,「0032」が登録されており、端末ID「0032」については2つの代替端末ID「0030」,「0031」が登録されていることになる。
ここで述べる変形例に係るシステムでは、このような代替端末IDを登録しておくことにより、利用不都合な状態にある端末装置宛に発呼があったときに、当該発呼を代替となる別な端末装置宛に転送させることができる。
たとえば、ユーザJohnが、スマートフォンからなる第1の端末装置(端末ID「0010」)とパソコンからなる第2の端末装置(端末ID「0011」)とを所有しており、通常は、いずれの端末装置も利用可能な状態になっているものとしよう。ところが、ある日、スマートフォンからなる第1の端末装置について、バッテリ切れで一時的に利用できない状態になったとする。この場合、もし、ユーザMaryが、自己の端末装置を通信元として、ユーザJohnのスマートフォンを通信先とする通信要求を行ったとしても、ユーザJohnのスマートフォンに対する正常な接続を行うことはできない。
ここで述べる変形例に係るシステムでは、このような場合、接続仲介装置が、ユーザJohnのスマートフォンの代わりに、その代替となるユーザJohnのパソコンに代替接続する処理を実行することができる。
この§3-2で述べる変形例を§1で述べた先願基本発明の第1の実施形態に適用する場合は、図4に示す構成に対して、次のような変更を施せばよい。
まず、アドレステーブル格納部110には、特定の端末IDについて、1つもしくは複数の代替端末IDを登録したアドレステーブル(たとえば、図12に示すアドレステーブルT3)を格納しておく。そして、通信先アドレス返信部130には、個々の端末装置について利用不都合な状態にあるか否かを判定する機能を付加しておく。具体的には、たとえば、判定対象となる端末装置に対して試験アクセスを行い、正常な返信があった場合には問題なしと判断するが、正常な返信が得られなかった場合には利用不都合な状態にあるとの判断を行うようにすればよい。
通信先アドレス返信部130は、接続仲介依頼S2が送信されてきたときに、通信先特定情報で特定される本来の端末IDが付与された端末装置について、利用不都合な状態にあるか否かを判定する処理を行う。そして、もし、本来の端末IDが付与された端末装置が利用不都合な状態にある場合には、当該本来の端末IDに代えて代替端末IDに対応づけられている所在アドレスを通信先アドレスとして返信する処理を行うようにする。
たとえば、図12に示すアドレステーブルT3が用意されている状態において、通信先特定情報として本来の端末ID「0010」(ユーザJohnのスマートフォン)を含む接続仲介依頼が送信されてきた場合、通信先アドレス返信部130は、まず、端末ID「0010」に対応する所在アドレス「AD1」に試験アクセスを行い、正常な返信があった場合には問題なしと判断し、通常の手順に従って、所在アドレス「AD1」を通信先アドレスとして返信する処理を行えばよい。この場合、通信元端末装置は、本来の端末ID「0010」が付与されたユーザJohnのスマートフォンを通信先として通信を行うことができる。
ところが、試験アクセスに対して正常な返信が得られなかった場合には、本来の端末ID「0010」が付与された端末装置(ユーザJohnのスマートフォン)が利用不都合な状態にあると判断し、本来の端末ID「0010」に代えて、アドレステーブルT3において端末ID「0010」についての代替端末IDとして登録されている端末ID「0011」に対応づけられている所在アドレス「AD5」を通信先アドレスとして返信する処理を行うようにする。この場合、通信元端末装置は、本来の端末ID「0010」が付与されたユーザJohnのスマートフォンではなく、代替端末ID「0011」が付与されたユーザJohnのパソコンを通信先として通信を行うことができる。
一方、この§3-2で述べる変形例を§2で述べた先願基本発明の第2の実施形態に適用する場合は、図8に示す構成に対して、次のような変更を施せばよい。
まず、アドレステーブル格納部310には、特定の端末IDについて、1つもしくは複数の代替端末IDを登録したアドレステーブル(たとえば、図12に示すアドレステーブルT3)を格納しておく。そして、通信元アドレス送信部330には、個々の端末装置について利用不都合な状態にあるか否かを判定する機能を付加しておく。具体的には、上述したように、判定対象となる端末装置に対して試験アクセスを行い、正常な返信があった場合には問題なしと判断するが、正常な返信が得られなかった場合には利用不都合な状態にあるとの判断を行うようにすればよい。
通信元アドレス送信部330は、接続仲介依頼S12が送信されてきたときに、通信先特定情報で特定される本来の端末IDが付与された端末装置について、利用不都合な状態にあるか否かを判定する処理を行う。そして、もし、本来の端末IDが付与された端末装置が利用不都合な状態にある場合には、当該本来の端末IDに代えて代替端末IDに対応づけられている所在アドレスに対して、接続仲介依頼S12を送信した通信元端末装置の所在アドレスを通信元アドレスとして送信する処理を行うようにする。
たとえば、図12に示すアドレステーブルT3が用意されている状態において、通信先特定情報として本来の端末ID「0010」(ユーザJohnのスマートフォン)を含む接続仲介依頼が送信されてきた場合、通信元アドレス送信部330は、まず、端末ID「0010」に対応する所在アドレス「AD1」に試験アクセスを行い、正常な返信があった場合には問題なしと判断し、通常の手順に従って、所在アドレス「AD1」宛に通信元アドレスの送信を行えばよい。この場合、通信元端末装置は、本来の端末ID「0010」が付与されたユーザJohnのスマートフォンを通信先として通信を行うことができる。
ところが、試験アクセスに対して正常な返信が得られなかった場合には、本来の端末ID「0010」が付与された端末装置(ユーザJohnのスマートフォン)が利用不都合な状態にあると判断し、本来の端末ID「0010」に代えて、アドレステーブルT3において端末ID「0010」についての代替端末IDとして登録されている端末ID「0011」に対応づけられている所在アドレス「AD5」宛に通信元アドレスの送信を行うようにする。この場合、通信元端末装置は、本来の端末ID「0010」が付与されたユーザJohnのスマートフォンではなく、代替端末ID「0011」が付与されたユーザJohnのパソコンを通信先として通信を行うことができる。なお、図12に示すユーザFrankのように、複数の代替端末IDが登録されている場合は、予め優先順位を定めておき、優先順位の高い順に実際に利用する代替端末IDを決定すればよい。
なお、上述の実施例では、通信先アドレス返信部130や通信元アドレス送信部330は、接続仲介依頼を受信した時点で、本来の通信先に対する試験アクセスを行い、利用不都合な状態にあるか否かを判定する処理を行っているが、その代わりに、個々の端末装置に対して定期的な試験アクセスを行うようにし、利用不都合な状態にある端末装置については、その時点でアドレステーブルにその旨の記録を行うようにしてもよい。この場合、各端末装置は、接続仲介依頼の有無にかかわらず、定期的に試験アクセスを受け、利用不都合な状態にあるか否かのチェックを受けることになり、チェック結果がアドレステーブルに記録されることになる。したがって、実際に接続仲介依頼があった場合は、このアドレステーブルの記録に基づいて利用不都合な状態にあるか否かを判定することができる。
なお、この変形例にいう「利用不都合な状態」とは、バッテリ切れの状態やネットワークへの接続障害が生じた状態のように「利用不能な状態」のみを意味するものではない。たとえば、端末装置の機能としては正常に利用可能な状態ではあるが、ユーザが恣意的に利用したくないと考え、そのような設定を行った状態も含むものである。たとえば、ユーザが自分の意思で「着信拒否」を設定した場合、当該端末装置は「利用不都合な状態」になる。したがって、上例の場合、ユーザJohnが所持するスマートフォンおよびパソコンがいずれも正常動作可能な状態であっても、もしユーザJohnが、スマートフォンに対して「着信拒否」を設定した場合、当該スマートフォンは「利用不都合な状態」になる。
この「着信拒否」の設定(「利用不都合な状態」の設定)は、個々の端末装置内にのみ記録しておいてもよいが、接続仲介装置内のアドレステーブルに記録するようにしてもよい。アドレステーブルに記録しておけば、各端末装置への試験アクセスを行うことなしに、「利用不都合な状態」にあることを認識できる。
<3-3. セキュリティを向上させる変形例(その1)>
ここでは、よりセキュリティを向上させたネットワーク通信システムを構築するための変形例を述べる。一般に、電子機器間でネットワークを介して情報のやりとりを行う場合、相手方の真正性を担保することは重要である。真正性が担保されない相手との交信は、クラッカーの攻撃を招くおそれがあり、セキュリティ上問題である。先願基本発明に係るネットワーク通信システムの場合、個々の端末装置と接続仲介装置との間の交信や、通信元端末装置と通信先端末装置との間の交信が不可欠であり、実用上、これら装置間通信におけるセキュリティ確保は重要である。
図13は、図4に示す第1の実施形態に係るネットワーク通信システムについて、セキュリティを向上させた変形例を示すブロック図である。この変形例では、第1の実施形態に係るネットワーク通信システムに対して、セキュリティを向上させるための2つの対策が施されている。
第1の対策は、相互認証処理の付加であり、図に破線の矢印で示されている情報を送受する際に、両者間で相手方の真正性を確認するための相互認証処理が行われる。具体的には、まず、通信元端末装置200Aから接続仲介装置100に対して接続仲介依頼S2を送信するときに、通信元端末装置200Aと接続仲介装置100との間で、相互に相手方の装置の真正性を確認するための相互認証処理が行われる。接続仲介依頼S2を示す矢印が破線になっているのは、この相互認証処理が行われることを示している。したがって、各端末装置200および接続仲介装置100には、このような認証処理機能が備わっていることになる。
なお、図示の例の場合、接続仲介装置100から通信元端末装置200Aに対して通信先アドレス返信S4を行う際の相互認証処理は省略されている(通信先アドレス返信S4を示す矢印は実線で描かれている)。これは、接続仲介依頼S2を送信するときに、通信元端末装置200Aと接続仲介装置100との間の相互認証処理が既に完了しており、相手方の装置の真正性が確認済みとなっているためである。もちろん、通信先アドレス返信S4を行う際にも、再び相互認証処理を実行するようにしてもかまわない。
また、図13に示すシステムの場合、通信元端末装置200Aから通信先端末装置200Bに対して通信開始要求S5を送信するときにも、通信元端末装置200Aと通信先端末装置200Bとの間で、相互に相手方の装置の真正性を確認するための相互認証処理が行われる。通信開始要求S5を示す矢印が破線になっているのは、この相互認証処理が行われることを示している。したがって、各端末装置200には、このような認証処理機能が備わっていることになる。
なお、図示の例の場合、通信先端末装置200Bから通信元端末装置200Aに対して通信開始受諾確認S6を行う際の相互認証処理は省略されている(通信開始受諾確認S6を示す矢印は実線で描かれている)。これは、通信開始要求S5を送信するときに、通信元端末装置200Aと通信先端末装置200Bとの間の相互認証処理が既に完了しており、相手方の装置の真正性が確認済みとなっているためである。もちろん、通信開始受諾確認S6を行う際にも、再び相互認証処理を実行するようにしてもかまわない。
ネットワークを介して接続された一対の装置間において、相手方の真正性を確認するための相互認証処理としては、既に種々の方法が知られているため、ここでは詳しい説明は省略する。一般的には、相手方の暗号鍵を利用した相互認証処理が利用されることが多い。たとえば、公開鍵暗号方式を利用した相互認証処理では、一方の装置で特定の平文データを相手方装置の公開鍵を用いて暗号化し、得られた暗号文データを相手方に送信し、これを受信した他方の装置では、当該暗号文データを自己の暗号鍵を用いて復号し、元の平文データが復元できることを確認する、といった処理手順を採ることができる。この処理手順を双方で行えば、相互に相手方の真正性を確認することができる。
なお、通信元端末装置200Aと通信先端末装置200Bとの間の相互認証処理を、それぞれの暗号鍵を用いて行った場合は、当該暗号鍵を利用して、通信セッション確立後の両者間の通信S7を暗号化通信によって行うようにすれば、セキュリティを更に向上させることができる。具体的には、通信開始要求S5を送信するときの相互認証処理を、通信元端末装置200Aについての暗号鍵および通信先端末装置200Bについての暗号鍵を用いた処理によって行うようにし、通信元端末装置200Aと通信先端末装置200Bとの間における通信セッション確立後の通信S7が、上記相互認証処理で用いた暗号鍵を用いて暗号化されたパケットを送受するパケット通信によって行われるようにすればよい。
図13に示すシステムにおいて、セキュリティを向上させるために施された第2の対策は、接続仲介装置100による仲介証明書の発行である。図示の例の場合、接続仲介装置100は、通信元端末装置200Aと通信先端末装置200Bとの間の接続を仲介する役割を果たす。仲介証明書は「そのような仲介を確かに行った」という事実を証明するために接続仲介装置100が発行する証明書である。通信先端末装置200Bは、この仲介証明書により、接続仲介装置100による仲介が正しく行われていることを確認することができる。以下、その仕組を順に説明する。
まず、接続仲介依頼部210Aから通信先アドレス返信部130に対して、接続仲介依頼S2があると、通信先アドレス返信部130は、この接続仲介依頼S2の送信を受けて、通信元となる特定の端末装置200Aから通信先となる特定の端末装置200Bへの仲介処理を実行したことを示す仲介証明書を発行する。そして、通信先アドレス返信S4を行う際に、通信先アドレス「AD2」とともにこの仲介証明書を、通信元端末装置200Aに返信する。
したがって、通信開始要求部240Aは、通信先アドレス「AD2」とともに、この仲介証明書を受信することになる。そこで、通信開始要求部240Aは、当該通信先アドレス「AD2」に対して通信開始要求S5を行う際に、この仲介証明書を併せて送信する。そうすると、通信先セッション確立部230Bは、通信開始要求S5とともに仲介証明書を受信することになる。
通信先セッション確立部230Bは、通信元の別な端末装置200Aから、自己を通信先とする通信開始要求S5とともに仲介証明書が送信されてきたら、この仲介証明書の正当性が確認されることを条件として、当該通信元の別な端末装置200Aに対して通信開始受諾確認S6を送信し、当該通信元の別な端末装置200Aとの間に通信セッションを確立して通信S7を開始するようにする。もちろん、仲介証明書の正当性が確認されない場合は、通信開始受諾確認S6の送信を行わず、通信S7も開始しない。
前述したとおり、上例の場合の仲介証明書は、接続仲介装置100が「端末装置200Aから端末装置200Bへの仲介処理を実行した」ことを証明するものであるから、通信先セッション確立部230Bは、通信開始要求S5の内容が、当該仲介証明書の証明内容に合致しているか否かを判定することにより、当該仲介証明書の正当性確認を行うことができる。上例の場合、通信開始要求S5は端末装置200Aから送信されてきており、自分自信は端末装置200Bであるから、「端末装置200Aから端末装置200Bへの仲介処理を実行した」との仲介証明書は正しいと判断することができる。
通信先端末装置200B内の通信先セッション確立部230Bは、通信元端末装置200Aからの通信開始要求S5を受信して、通信元端末装置200Aに対して通信開始受諾確認S6を送信し、通信セッションを確立して通信S7を行う。このとき、受信した通信開始要求S5が正規の信号であれば問題ないが、クラッカーによる偽装信号であった場合、不正行為の被害に遭うおそれがある。また、通信元端末装置200Aがマルウェアに感染していた場合、クラッカーに乗っ取られた状態になり、接続仲介装置100を経由した正規の手順を踏まずに、不正な方法により通信開始要求S5がなされる可能性もある。上述した仲介証明書を発行する対策を講じておけば、このようなクラッカーによる不正行為を防止する上で効果的である。
仲介証明書のこのような役割を考慮すると、通信先アドレス返信部130は、たとえば次のような方法で仲介証明書を作成すればよい。まず、接続仲介依頼S2に基づいて、通信元となる特定の端末装置200Aの所在アドレス(図示の例では「AD1」)および通信先となる特定の端末装置200Bの所在アドレス(図示の例では「AD2」)を認識する。そして、これら両所在アドレスを含む仲介証明用データを作成する。たとえば、両所在アドレスの文字列をそのまま連結して「AD1」+「AD2」のような文字列を仲介証明用データとしてもよいし、更に、別な秘密文字列「HAPPY」を付加して、「AD1」+「AD2」+「HAPPY」のような文字列を仲介証明用データとしてもよい。
続いて、こうして作成した仲介証明用データに対して、所定の暗号鍵を利用した一方向性関数を作用させることにより得られたデータを仲介証明書とすればよい。たとえば、一方向性関数としては、通信元端末装置200Aについての暗号鍵もしくは通信先端末装置200Bについての暗号鍵、または、これら双方の暗号鍵を利用したハッシュ関数を用いることができる。
たとえば、仲介証明用データが、「AD1」+「AD2」+「HAPPY」という文字列によって構成され、当該文字列に、通信先端末装置200Bの公開鍵を利用したハッシュ関数を作用させることにより仲介証明書を作成した場合を例にとってみよう。こうして作成された仲介証明書は、仲介証明用データのハッシュ値ということになる。
一方、通信開始要求S5とともに、上記仲介証明書を受信した通信先セッション確立部230Bは、次のような手順で、当該仲介証明書の正当性を確認することができる。まず、通信開始要求S5の送信元のアドレスとして、通信元端末装置200Aの所在アドレス「AD1」を認識することができる。また、自分自身の所在アドレス「AD2」も認識することができる。そして、予め取り決めがなされていた上記秘密文字列「HAPPY」(この秘密文字列は、当該ネットワーク通信システムの各構成装置のみが知り得るように管理されている)を用いることにより、「AD1」+「AD2」+「HAPPY」という文字列からなる仲介証明用データを作成する。
続いて、この仲介証明用データに対して自分自身の公開鍵を用いたハッシュ関数を作用させることにより仲介証明書を作成する。そして最後に、こうして作成した仲介証明書が通信開始要求S5とともに送信されてきた仲介証明書と一致することを確認すればよい。両者が一致すれば、仲介証明書の正当性が確認されたことになる。もちろん、不一致であれば、正当性は確認できないので、何らかの不正が行われている可能性があると判断できる。すなわち、仲介証明書の正当性が確認できない場合は、通信先セッション確立部230Bが受信した通信開始要求S5は、接続仲介装置100による正規の仲介処理に基づいてなされたものではない、と判断することができる。そのような場合、通信先セッション確立部230Bは、通信開始受諾確認S6の送信を行わず、通信セッションの確立を拒絶することになる。
なお、上例では、「AD1」+「AD2」+「HAPPY」なる仲介証明用データについてのハッシュ値を仲介証明書として用いているが、もちろん、上記仲介証明用データそのものを仲介証明書として用いることも可能である。ただ、十分なセキュリティを確保する上では、仲介証明用データそのものではなく、そのハッシュ値を仲介証明書として用いるのが好ましい。仲介証明用データには、「AD1」や「AD2」といった所在アドレスが含まれているので、クラッカーによる改竄を受けやすい。したがって、実用上は、上例のように、何らかの暗号鍵を利用した一方向性関数を作用させて仲介証明書を作成するのが好ましい。
ハッシュ関数などの一方向性関数を用いて仲介証明書を作成すれば、元の仲介証明用データを復元することはできないので、仲介証明書がクラッカーの手に渡ったとしても、不正な改竄を受ける可能性を低減することができる。不正な改竄を防止するという点では、上例の「HAPPY」のような秘密文字列を付加して仲介証明用データを作成することは有効である。もちろん、仲介証明書を発行した日付、時間、曜日などの変動要素を秘密文字列として用いることも可能である。
<3-4. セキュリティを向上させる変形例(その2)>
上述した§3-3では、§1で述べた先願基本発明の第1の実施形態についてセキュリティを向上させた変形例を述べた。ここでは、§2で述べた先願基本発明の第2の実施形態について、同様の方法でセキュリティを向上させた変形例を述べることにする。
図14は、図8に示す第2の実施形態に係るネットワーク通信システムについて、セキュリティを向上させた変形例を示すブロック図である。この変形例では、第2の実施形態に係るネットワーク通信システムに対して、セキュリティを向上させるための2つの対策が施されている。
第1の対策は、相互認証処理の付加であり、図に破線の矢印で示されている情報を送受する際に、両者間で相手方の真正性を確認するための相互認証処理が行われる。具体的には、まず、通信元端末装置400Bから接続仲介装置300に対して接続仲介依頼S12を送信するときに、通信元端末装置400Bと接続仲介装置300との間で、相互に相手方の装置の真正性を確認するための相互認証処理が行われる。接続仲介依頼S12を示す矢印が破線になっているのは、この相互認証処理が行われることを示している。
同様に、接続仲介装置300から通信先端末装置400Aに対して通信元アドレス送信S14を行うときにも、接続仲介装置300と通信先端末装置400Aとの間で、相互に相手方の装置の真正性を確認するための相互認証処理が行われる。接続仲介依頼S14を示す矢印が破線になっているのは、この相互認証処理が行われることを示している。したがって、各端末装置400および接続仲介装置300には、上述した認証処理機能が備わっていることになる。
また、図14に示すシステムの場合、通信先端末装置400Aから通信元端末装置400Bに対して通信開始要求S15を送信するときにも、通信先端末装置400Aと通信元端末装置400Bとの間で、相互に相手方の装置の真正性を確認するための相互認証処理が行われる。通信開始要求S15を示す矢印が破線になっているのは、この相互認証処理が行われることを示している。したがって、各端末装置400には、このような認証処理機能が備わっていることになる。
なお、図示の例の場合、通信元端末装置400Bから通信先端末装置400Aに対して通信開始受諾確認S16を行う際の相互認証処理は省略されている(通信開始受諾確認S16を示す矢印は実線で描かれている)。これは、通信開始要求S15を送信するときに、通信先端末装置400Aと通信元端末装置400Bとの間の相互認証処理が既に完了しており、相手方の装置の真正性が確認済みとなっているためである。もちろん、通信開始受諾確認S16を行う際にも、再び相互認証処理を実行するようにしてもかまわない。
相互認証処理の具体的な方法は、既に§3-3で述べたとおりである。また、この図14に示す変形例の場合も、相互認証処理に用いた暗号鍵を利用して、通信セッション確立後の両端末装置間の通信S17を暗号化通信によって行うようにしてもよい。
図14に示すシステムにおいて、セキュリティを向上させるために施された第2の対策は、接続仲介装置300による仲介証明書の発行である。図示の例の場合、接続仲介装置300は、通信元端末装置400Bと通信先端末装置400Aとの間の接続を仲介する役割を果たす。仲介証明書は「そのような仲介を確かに行った」という事実を証明するために接続仲介装置300が発行する証明書である。通信元端末装置400Bは、この仲介証明書により、接続仲介装置300による仲介が正しく行われていることを確認することができる。以下、その仕組を順に説明する。
まず、接続仲介依頼部410Bから通信元アドレス送信部330に対して、接続仲介依頼S12があると、通信元アドレス送信部330は、この接続仲介依頼S12の送信を受けて、通信元となる特定の端末装置400Bから通信先となる特定の端末装置400Aへの仲介処理を実行したことを示す仲介証明書を発行する。そして、通信元アドレス返信S14を行う際に、通信元アドレス「AD2」とともにこの仲介証明書を、通信先端末装置400Aに返信する。
したがって、通信開始要求部440Aは、通信元アドレス「AD2」とともに、この仲介証明書を受信することになる。そこで、通信開始要求部440Aは、当該通信元アドレス「AD2」に対して通信開始要求S15を行う際に、この仲介証明書を併せて送信する。そうすると、通信元セッション確立部430Bは、通信開始要求S15とともに仲介証明書を受信することになる。
通信元セッション確立部430Bは、通信先の別な端末装置400Aから、自己を通信元とする通信開始要求S15とともに仲介証明書が送信されてきたら、この仲介証明書の正当性が確認されることを条件として、当該通信先の別な端末装置400Aに対して通信開始受諾確認S16を送信し、当該通信先の別な端末装置400Aとの間に通信セッションを確立して通信S17を開始するようにする。もちろん、仲介証明書の正当性が確認されない場合は、通信開始受諾確認S16の送信を行わず、通信S17も開始しない。
前述したとおり、上例の場合の仲介証明書は、接続仲介装置300が「端末装置400Bから端末装置400Aへの仲介処理を実行した」ことを証明するものであるから、通信元セッション確立部430Bは、通信開始要求S15の内容が、当該仲介証明書の証明内容に合致しているか否かを判定することにより、当該仲介証明書の正当性確認を行うことができる。上例の場合、通信開始要求S15は端末装置400Aから送信されてきており、自分自信は端末装置400Bであるから、「端末装置400Bから端末装置400Aへの仲介処理を実行した」との仲介証明書は正しいと判断することができる。
通信元端末装置400B内の通信元セッション確立部430Bは、通信先端末装置400Aからの通信開始要求S15を受信して、通信先端末装置400Aに対して通信開始受諾確認S16を送信し、通信セッションを確立して通信S17を行う。このとき、受信した通信開始要求S15が正規の信号であれば問題ないが、クラッカーによる偽装信号であった場合、不正行為の被害に遭うおそれがある。また、通信先端末装置400Aがマルウェアに感染していた場合、クラッカーに乗っ取られた状態になり、接続仲介装置300を経由した正規の手順を踏まずに、不正な方法により通信開始要求S15がなされる可能性もある。上述した仲介証明書を発行する対策を講じておけば、このようなクラッカーによる不正行為を防止する上で効果的である。
仲介証明書の具体的な作成方法は、§3-3で述べたとおりである。すなわち、この図14に示す変形例の場合も、通信元アドレス送信部330は、通信元となる特定の端末装置400Bの所在アドレス「AD2」および通信先となる特定の端末装置400Aの所在アドレス「AD1」を含む仲介証明用データ(必要に応じて、その他の秘密文字列を付加してもよい)に対して、所定の暗号鍵を利用した一方向性関数を作用させることにより仲介証明書を作成すればよい。一方向性関数としては、通信元についての暗号鍵もしくは通信先についての暗号鍵、または、これら双方の暗号鍵を利用したハッシュ関数を用いることができる。このような仲介証明書を用いた正当性確認の具体的な手順は、既に§3-3で述べたとおりであり、ここでは説明を省略する。
<<< §4. ルータを用いた実用的な実施形態 >>>
これまで述べてきた先願基本発明の第1の実施形態や第2の実施形態では、各発明の基本原理を示す便宜上、各端末装置200A~200D,400A~400DがネットワークN(インターネット)に直接接続されている状態を示す図(図1,図6参照)を用いて説明を行ってきた。しかしながら、通常、各端末装置は、ルータを介してネットワークN(インターネット)に接続される。そこで、ここでは、先願基本発明について、端末装置をルータを介してネットワークに接続した実用的な実施形態を説明する。
<4-1. ルータを用いた基本的な実施例>
図15は、端末装置をルータを介してネットワークNに接続した先願基本発明の一実施形態を示すブロック図である。具体的には、この図15には、3台の端末装置200E,200F,200Gが、同一のルータRを介してネットワークN(インターネット)に接続された状態が示されている。
既に述べたとおり、先願基本発明における端末装置200は、パソコン、携帯電話、タブレット型端末など、ネットワークNに接続して通信を行う機能を有する電子機器であれば、どのような装置であってもかまわない。最近は、企業内LANや家庭内LANが普及し、パソコンやタブレット型端末は、通常、企業や家庭に設置されたルータ経由でインターネットへ接続される。また、最近の携帯電話通信網では、ルータの機能を有する基地局が利用されてきており、携帯電話は、このルータ機能を有する基地局経由でインターネットに接続することができる。
したがって、先願基本発明に利用される各端末装置は、実用上は、図15に例示するように、ルータRを介してインターネットに接続されることになる。ルータRは、LANを構築する機能を有し、図示の例の場合、ルータRより左側に描かれた部分が1つのサブネットを構成しており、クラスCのプライベートIPアドレスが付与されている。具体的には、各端末装置には、「192.168」なるネットワーク部と「0.11」,「0.12」,「0.13」なるホスト部とを有するIPアドレスが付与されている。このサブネット内の装置同士の交信は、ルータRを介さずに行うことができるが、サブネット外の装置にアクセスする場合は、ルータRを介した交信が必要になる。
図示の例の場合、端末装置200E(端末ID:0050)には、「192.168.0.11」なるプライベートIPアドレスが付与され、端末装置200F(端末ID:0060)には、「192.168.0.12」なるプライベートIPアドレスが付与され、端末装置200G(端末ID:0070)には、「192.168.0.13」なるプライベートIPアドレスが付与されている。また、実際の通信には、これらのIPアドレスとともにポート番号が利用される。図には、端末装置200Eの1本の通信路にポート番号P1、端末装置200Fの2本の通信路にポート番号P2,P3、端末装置200Gの4本の通信路にポート番号P4~P7が付与された例が示されている。
ポート番号は、2バイトのデータからなり、通信のエンドポイントを特定するために利用される。たとえば、図に示す端末装置200Fには、所定のOSプログラムの下で動作する2組のアプリケーションプログラムAPP1,APP2がインストールされており、APP1についての通信路にはポート番号P2が割り当てられ、APP2についての通信路にはポート番号P3が割り当てられている。したがって、同じIPアドレス「192.168.0.12」を用いた通信であっても、ポート番号P2/P3の違いにより、APP1についての通信か、APP2についての通信かを区別することができる。
一方、図に示す端末装置200Gには、やはり2組のアプリケーションプログラムAPP1,APP2がインストールされているが、APP1については2組のポート番号P4,P5が割り当てられ、APP2については2組のポート番号P6,P7が割り当てられている。このように、同一のアプリケーションプログラムに複数のポート番号を割り当てて、複数の通信路を相互に区別することも可能である。たとえば、アプリケーションプログラムAPP1がWebブラウザプログラムであった場合、第1のWebページについての通信にはポート番号P4を割り当て、第2のWebページについての通信にはポート番号P5を割り当てる、という運用を行えば、それぞれ別のWebサーバに対して別個独立した通信が可能になる。このように、ポート番号は、個々のアプリケーションプログラムの都合に応じて任意に割り当てることができる。
ここでは、図示されているアプリケーションプログラムAPP2が、先願基本発明に係るネットワーク通信システムとしての機能を果たすための専用の通信アプリケーションプログラムであるものとして以下の説明を続ける。別言すれば、図示の端末装置200F,200Gは、所定のOSプログラムの管理下で動作する汎用のパソコン、スマートフォン、タブレット型端末などの装置であり、当該装置に専用の通信アプリケーションプログラムAPP2をインストールすることにより、これらの装置が先願基本発明に係る端末装置として機能することになる。
この場合、図2に示す端末装置200の構成要素である自己アドレス通知部250、通信要求受付部220、接続仲介依頼部210、通信開始要求部240、通信元セッション確立部260、通信先セッション確立部230による処理機能は、この通信アプリケーションプログラムAPP2を実行することにより実現される(一部の処理機能は、OSプログラムの実行により実現されるようにしてもよい)。同様に、図7に示す端末装置400の構成要素である自己アドレス通知部450、通信要求受付部420、接続仲介依頼部410、通信開始要求部440、通信元セッション確立部430、通信先セッション確立部460による処理機能は、この通信アプリケーションプログラムAPP2を実行することにより実現される(一部の処理機能は、OSプログラムの実行により実現されるようにしてもよい)。
図15には、このアプリケーションプログラムAPP2を示すブロックおよびその通信路を太線で示してある。各端末装置200E,200F,200Gとサブネット外の装置との間の通信は、ルータRを介して行われる。ルータRは、ネットワークアドレス変換機能(NAT(Network Address Translation)機能)を有しており、内側(図におけるルータRの左側)に接続された通信路について付与されたプライベートIPアドレスを、外側(図におけるルータRの右側)に接続された通信路について付与されたグローバルIPアドレスに変換するとともに、その逆の変換も行う。
図示の例の場合、ルータRの内側について付与された「192.168.0.11」~「192.168.0.13」なるプライベートIPアドレスと、ルータRの外側について付与された「xx.73.5.111」なるグローバルIPアドレス(以下、ADxと記す)との間のアドレス変換が行われている。なお、上記グローバルIPアドレス内のxxは、任意の1バイトデータを示す(本願では、固有のグローバルIPアドレスの特定を避けるため、グローバルIPアドレスについては、その一部をxx,yy,zz等の記号で示すことにする)。また、上記アドレス変換の際には、一般にNAPT(Network Address Port Translation)と呼ばれている機能により、ポート番号についての変換も行われる。
たとえば、端末装置200Fの通信アプリケーションプログラムAPP2からの通信路に付与されたプライベートIPアドレスとポート番号との組み合わせ「192.168.0.12(P3)」は、グローバルIPアドレスADxとポート番号との組み合わせ「xx.73.5.111(P13)」に変換されている。したがって、ネットワーク(インターネット)Nを介して接続された外部装置に対して、端末装置200FのAPP2は、「xx.73.5.111(P13)」なる所在アドレス(IPアドレスにポート番号を付加した情報)で特定されることになる。同様に、端末装置200GのAPP2は、「xx.73.5.111(P16)」もしくは「xx.73.5.111(P17)」なる所在アドレスで特定されることになる。
図示の例の場合、ルータRの外側の複数の通信路には、いずれも同じグローバルIPアドレスADx(具体的には、「xx.73.5.111」)が付与されているが、ポート番号がそれぞれ異なるため、相互に区別することができる。ルータRの外側の装置から内側の装置に対するアクセスがあった場合には、逆に、グローバルIPアドレスADxをプライベートIPアドレスに変換する処理が行われる。たとえば、外部装置から「xx.73.5.111(P16)」なる所在アドレス宛のアクセスがあった場合、当該所在アドレスは、「192.168.0.13(P6)」に変換され、端末装置200Gの通信アプリケーションプログラムAPP2の第1番目の通信路宛のアクセスとして処理される。このようなNAPT機能は、広く利用されている既存の技術であるため、ここでは詳しい説明は省略する。
さて、先願基本発明に係るネットワーク通信システムの構成要素となる端末装置200には、図2に示すとおり、自己アドレス通知部250が含まれており、この自己アドレス通知部250により、自己のネットワーク上での所在を示す所在アドレスを、接続仲介装置100に対して通知する処理が行われる。前述したとおり、この通知処理は、実際には端末装置200にインストールされている通信アプリケーションプログラムAPP2によって実行される。
したがって、図15に示す実施例の場合も、通信アプリケーションプログラムAPP2によって、接続仲介装置100宛に所在アドレスの通知が行われ、これを受けて、接続仲介装置100内のアドレステーブル更新部120が、各端末装置のそれぞれについて、端末IDと所在アドレスとを対応づけた情報を、アドレステーブル格納部110内のアドレステーブルTに書き込む処理を実行する。
図15に示す実施例の場合、端末装置200F,200Gは、ルータRを介してネットワークNに接続されているため、自己アドレス通知部250は、ルータRが管理するLAN(サブネット)内のプライベートIPアドレスを所在アドレスとして通知する処理を行う。ただ、このプライベートIPアドレスは、ルータRによるNAT機能によりグローバルIPアドレスADxに変換されてネットワークNに送信される。したがって、接続仲介装置100に届くアドレスは、プライベートIPアドレスではなく、グローバルIPアドレスADxということになり、アドレステーブル更新部120は、このグローバルIPアドレスADxを、所在アドレスとしてアドレステーブルTに格納する処理を行う。
また、図15に示す実施例の場合、各端末装置のネットワーク上での所在を示す所在アドレスとして、IPアドレスにポート番号を付加した情報が用いられている。このため、自己アドレス通知部250は、プライベートIPアドレスにポート番号を付加した情報を所在アドレスとして通知する処理を行い、当該情報がルータRによって、グローバルIPアドレスにポート番号を付加した情報に変換され、接続仲介装置100に届くことになる。したがって、アドレステーブルTには、グローバルIPアドレスにポート番号を付加した情報が所在アドレスとして書き込まれることになる。
図16は、図15に示す実施形態において、IPアドレスにポート番号を付加した情報を所在アドレスとして用いる場合のアドレステーブルの例を示す図である。図16(a) に示すアドレステーブルT41は、図15に示す端末装置200F(端末ID:0060)内の自己アドレス通知部250(通信アプリケーションプログラムAPP2)からの通知に基づいて、「端末ID:0060」に対応する所在アドレス(IPアドレスADxとポート番号P13との組み合わせ)の書き込みを行うとともに、端末装置200G(端末ID:0070)内の自己アドレス通知部250(通信アプリケーションプログラムAPP2)からの通知に基づいて、「端末ID:0070」に対応する所在アドレス(IPアドレスADxとポート番号P16との組み合わせ、及びIPアドレスADxとポート番号P17との組み合わせ)の書き込みを行った例である。
図15に示す例の場合、各端末装置200F,200G内の自己アドレス通知部250(通信アプリケーションプログラムAPP2)は、プライベートIPアドレスにポート番号を付加した情報を所在アドレスとして送信する処理を行うが、ルータRによって、グローバルIPアドレスにポート番号を付加した情報に変換されるため、実際にアドレステーブルT41に格納される所在アドレスは、図示のとおり、グローバルIPアドレスADxと変換後のポート番号との組み合わせになる。
たとえば、端末装置200Fの自己アドレス通知部250からは、送信元である自己の所在を示す所在アドレスとして「192.168.0.12」なるプライベートIPアドレスにポート番号「P3」を付加した情報が、端末ID「0060」を示す情報とともに送信されてくるが、ルータRを通過する際に、送信元である自己の所在を示す所在アドレスが、「xx.73.5.111」なるグローバルIPアドレスにポート番号「P13」を付加した情報に変換されることになる。したがって、アドレステーブルT41には、端末ID「0060」に対応する所属アドレスとして、「xx.73.5.111」なるグローバルIPアドレスADxと「P13」なるポート番号との組み合わせが書き込まれることになる。
図16(b) に示すアドレステーブルT42は、図16(a) に示すアドレステーブルT41の所在アドレス欄の情報を具体的なデータとして例示したものである。前述したとおり、図15に示す例の場合、ルータRの外側の通信路には、「xx.73.5.111」なるグローバルIPアドレスが付与されているため、図16(b) に示すアドレステーブルT42のIPアドレス欄には、いずれも「xx.73.5.111」なるデータが格納されている。一方、ルータRの外側の通信路に付与されるポート番号は、ルータRによって相互に重複しないように発生された2バイトの番号であり、図16(b) に示す例では、62801~62803なるデータが格納されている。
結局、図15に示す接続仲介装置100には、端末装置200F,200Gについて、図16(b) に示すようなアドレステーブルT42が格納されることになる。そこで、図示されていない外部の通信元から、通信先特定情報として端末ID「0060」を含む接続仲介依頼があると、接続仲介装置100内の通信先アドレス返信部130は、アドレステーブルT42を参照することにより、端末ID「0060」に対応した所在アドレス(IPアドレス「xx.73.5.111」にポート番号「62801」を付加した情報)を通信先アドレスとして返信する。そこで、通信元となる端末装置は、IPアドレス「xx.73.5.111」およびポート番号「62801」で特定される通信先に対して、通信開始要求を行うことができる。
以上、主として図1に示す第1の実施形態(接続仲介装置100と端末装置200を用いる実施形態)においてルータRを用いた例を述べたが、図7に示す第2の実施形態(接続仲介装置300と端末装置400を用いる実施形態)においてルータRを用いた場合も同様である。
なお、接続仲介装置100,300内のアドレステーブル更新部120,320は、各端末装置の自己アドレス通知部250,450から所在アドレスの通知を受けるたびに、図16に例示したアドレステーブルを更新する処理を行う。前述したとおり、図15に示す実施例の場合、端末装置200F,200Gの自己アドレス通知部の処理機能は、所定のOSプログラムの管理下で動作する通信アプリケーションプログラムAPP2を実行することにより実現される。
そこで、実用上は、自己アドレス通知部250,450による自己アドレスの通知処理は、図17の表に示すタイミングで行うのが好ましい。図示の表におけるタイミング(1) は、通信アプリケーションプログラムAPP2に対するユーザによる操作入力時である。たとえば、通信アプリケーションプログラムAPP2を起動した後、「通信準備を行いますか(Yes/No)?」のようなメッセージを表示し、ユーザが「Yes」を指示する操作入力を行った時点で、自己アドレスの通知処理を行うようにすればよい。通常、通信アプリケーションプログラムAPP2が起動された時点では、既に端末装置のプライベートIPアドレスや、これに対応するグローバルIPアドレスが定まっており、自己アドレスの通知処理を行う環境が整っている。
図示の表におけるタイミング(2) は、通信アプリケーションプログラムAPP2の起動時である。このタイミング(2) を採用した場合、上述したメッセージの表示やユーザによる操作入力を待たずして、自動的に自己アドレスの通知処理が実行されることになる。実際には、プログラムAPP2の起動ルーチンに自己アドレス通知部250,450としての処理機能を組み込んでおけばよい。
図示の表におけるタイミング(3) は、OSプログラムの起動時であり、実質的には、端末装置の起動時ということになる。このタイミング(3) を採用する場合、OSプログラムの起動ルーチンに自己アドレス通知部250,450としての処理機能を組み込んでおけばよい。通常、OSプログラムの起動ルーチンにおいて、端末装置のプライベートIPアドレスや、これに対応するグローバルIPアドレスを決定する処理が行われるため、その後に、自己アドレス通知処理を自動的に行うようにしておけばよい。
<4-2. VPNを利用した実施例>
続いて、先願基本発明に係るネットワーク通信システムにおいて、VPN(Virtual Private Network)を利用した実施例を述べる。図15には、ルータRを介して端末装置をネットワークNに接続した実施例を例示した。この例の場合、ルータRの内側(図の左側)に構築されたローカルネットワークが1つのプライベートネットワークを構成しており、各端末装置200E,200F,200Gには、いずれも「192.168」なるネットワーク部で始まるプライベートIPアドレスが付与されている。このようなプライベートネットワークを、インターネットNなどの公衆ネットワークを跨いで拡張する方法として、VPNの技術が普及している。
図18は、先願基本発明に係るネットワーク通信システムにおいて、VPNを利用した実施形態の全体構成を示すブロック図である。ここでは、説明の便宜上、ある企業の東京本社に設定された3台の端末装置200H,200I,200J(端末IDは、それぞれ0081,0082,0083)と、パリ支社に設置された1台の端末装置200K(端末IDは、0091)という合計4台の端末装置によって、VPNを構築した単純な例を示すことにする。また、東京本社に設置された3台の端末装置200H,200I,200Jを第1グループに所属する第1の端末装置と呼び、パリ支社に設置された1台の端末装置200Kを第2グループに所属する第2の端末装置と呼ぶことにする。
図示のとおり、第1の端末装置200H,200I,200Jは、第1のルータR1を介してネットワーク(インターネット)Nに接続されており、第2の端末装置200Kは、第2のルータR2を介してネットワーク(インターネット)Nに接続されている。したがって、基本的には、図において第1のルータR1より上方に配置されている第1の端末装置200H,200I,200Jは、第1のルータR1が管理する第1のLAN内のホストということになり、図において第2のルータR2より下方に配置されている第2の端末装置200Kは、第2のルータR2が管理する第2のLAN内のホストということになる。
このため、第1の端末装置200H,200I,200Jには、第1のルータR1が管理する第1のLAN内のプライベートIPアドレスが付与され、第2の端末装置200Kには、第2のルータR2が管理する第2のLAN内のプライベートIPアドレスが付与されている。また、図15に示す例と同様に、IPアドレスとともにポート番号も付与されている。
図示の例の場合、第1のLANについては、クラスBのプライベートIPアドレスが付与されており、第1の端末装置200H,200I,200Jには、それぞれ「172.16.6.11(P1)」,「172.16.6.12(P2)」,「172.16.6.13(P3)」なるIPアドレスおよびポート番号が付与されている(ポート番号P1,P2,P3等は、実際には2バイトのデータである)。これらの情報は、第1のルータR1によって、それぞれ「yy.88.105.19(P11)」,「yy.88.105.19(P12)」,「yy.88.105.19(P13)」なるグローバルIPアドレスADyとポート番号との組み合わせに変換された後、インターネットNへ接続される。一方、図示の例の場合、第2のLANについては、クラスCのプライベートIPアドレスが付与されており、第2の端末装置200Kには、「192.168.99.11(P4)」なるIPアドレスおよびポート番号が付与されている。この情報は、第2のルータR2によって、「zz.99.214.28(P21)」なるグローバルIPアドレスADzとポート番号との組み合わせに変換された後、インターネットNへ接続される。
このままの状態では、第1グループに所属する第1の端末装置200H,200I,200Jが所属する第1のLANと、第2グループに所属する第2の端末装置200Kが所属する第2のLANとは、それぞれ別個独立したプライベートネットワークになるが、図示する実施例の場合、第1のLANの範囲をインターネットNを跨いで拡張するためのVPNが構築されている。すなわち、第2の端末装置200Kには、第2のルータR2が管理する第2のLAN内のプライベートIPアドレスおよびポート番号「192.168.99.11(P4)」が付与されるとともに、第1のルータR1が管理する第1のLAN内のプライベートIPアドレスおよびポート番号「172.16.6.14(P5)」が、VIPアドレスとして仮想的に付与されており、第1の端末装置200H,200I,200Jと第2の端末装置200Kとの間には、このVIPアドレスを用いて相互に交信することが可能となるようにVPNの設定がなされている。
したがって、図に破線で示すように、パリ支社に設置された端末装置200Kは、東京本社に設置された端末装置200H,200I,200Jと同様に、第1のルータR1が管理する第1のLAN内の端末装置として取り扱うことができる。図19は、図18に示す実施形態におけるVNP通信の原理を示す図である。図示の例は、東京本社に設置された端末装置200Hとパリ支社に設置された端末装置200Kとの間のVPN通信を示している。
図19に示すように、端末装置200HにはVPN通信部201Hが、端末装置200KにはVPN通信部201Kが、それぞれ設けられており、両者間にVPN暗号通信路が開設される。両者間でやりとりされるデータは暗号化されるため、実際には、インターネットNなどの公衆ネットワークを介して情報が伝達されるにもかかわらず、あたかもプライベートネットワークを介した利便性・安全性をもった情報の送受が可能になる。VPN通信部201H,201Kは、実際には、各端末装置にインストールされた専用のVPN用アプリケーションプログラムによって構築される。このようなVPNの具体的な仕組は公知の技術であるため、ここでは詳しい説明は省略する。
さて、このようなVPNの仕組を先願基本発明に係るネットワーク通信システムにおいて利用する場合は、接続仲介装置100内に格納されるアドレステーブルTに、VIPアドレスを格納しておくようにすると便利である。図20は、図18に示す実施形態に用いるために、VIPアドレスを追加したアドレステーブルの例を示す図である。図20(a) に示すアドレステーブルT51は、VPNの構成メンバーである端末装置200H~200K内の自己アドレス通知部250からの通知に基づいて、各端末IDに対応する所在アドレス(IPアドレスとポート番号)を格納したものである。
ここで、端末装置200H~200J(端末ID:0081~0083)は、東京本社に構築された第1のLANに所属する装置であるが、端末装置200K(端末ID:0091)は、パリ支社に構築された第2のLANに所属する装置である。ただ、上述したVPNの仕組により、第1のLANは端末装置200Kまで仮想的に拡張されており、端末装置200Kには、「VIP(200K)」なるVIPアドレスが付与されている。このため、図20(a) に示すアドレステーブルT51の端末ID「0091」については、更に、VIP欄に「VIP(200K)」なるVIPアドレスが格納されている。
図20(b) に示すアドレステーブルT52は、図20(a) に示すアドレステーブルT51の所在アドレス欄およびVIP欄の情報を具体的なデータとして例示したものである。図18に示す例の場合、第1のルータR1の外側の各通信路には、「yy.88.105.19」なるグローバルIPアドレスADyに、ポート番号P11~P13を付加した情報が所在アドレスとして付与されているため、図20(b) に示すアドレステーブルT52の端末ID「0081~0083」のIPアドレス欄には、いずれも「yy.88.105.19」なるデータが格納されており、ポート番号欄には、第1のルータR1によって発生された2バイトの番号「54701~54703」が格納されている。
一方、第2のルータR2の外側の各通信路には、「zz.99.214.28」なるグローバルIPアドレスADzに、ポート番号P21を付加した情報が所在アドレスとして付与されているため、図20(b) に示すアドレステーブルT52の端末ID「0091」のIPアドレス欄には、「zz.99.214.28」なるデータが格納されており、ポート番号欄には、第2のルータR2によって発生された2バイトの番号「61999」が格納されている。そして、更に、端末ID「0091」のVIP欄には、「172.16.6.14」なるVIPアドレス(VPNの設定により、端末装置200Kに対して付与された第1のLANについての仮想的なプライベートアドレス)が格納されている。
このように、アドレステーブルT52のVIP欄に「172.16.6.14」なるVIPアドレスを格納するには、第2の端末装置200Kの自己アドレス通知部250に、接続仲介装置100に対して、VPNの設定により付与されたVIPアドレスを通知する機能をもたせておき、アドレステーブル更新部120に、このVIPアドレスを第2の端末装置200Kの所在アドレスと対応づけてアドレステーブルT52に格納する機能をもたせておけばよい。
このように、アドレステーブルT52に第2の端末装置200KのVIPアドレスを格納しておくようにすれば、たとえば、第1の端末装置200Hが第2の端末装置200Kを通信先として通信を行う際に、第1の端末装置200Hの接続仲介依頼部210が、第2の端末装置200KのVIPアドレス「VIP(200K)」を通信先特定情報として用いて通信先の特定を行うことができる。
具体的には、端末装置200Hの接続仲介依頼部210が、通信先特定情報として「172.16.6.14」なるVIPアドレスを含む接続仲介依頼を行うようにすれば、接続仲介装置100内の通信先アドレス返信部130は、図20(b) に示すアドレステーブルT52を参照することにより、VIPアドレス「172.16.6.14」に対応する所在アドレス「zz.99.214.28(61999)」を通信先アドレスとして返信することができる。通常、VPNの設定を行った場合、アプリケーションプログラムのレイヤーでは、端末装置200Kは、「172.16.6.14」なるVIPアドレスをもった装置として認識されているので、このVIPアドレスを用いて接続仲介依頼を行うことができれば便利である。
もちろん、必要があれば、VIPアドレス「172.16.6.14」とともに、ポート番号「P5」を格納しておくようにしてもよい。そうすれば、「172.16.6.14(P5)」なる情報を用いて、特定のポート番号の指定を含む接続仲介依頼を行うことができる。
以上、図1に示す先願基本発明の第1の実施形態(接続仲介装置100と端末装置200を用いる実施形態)においてVPNの設定を行い、プライベートネットワークの範囲を仮想的に拡張する例を述べたが、図7に示す先願基本発明の第2の実施形態(接続仲介装置300と端末装置400を用いる実施形態)においてVPNの設定を行う場合も同様である。
<<< §5. 本発明により解決される技術的な問題 >>>
これまで、国際出願PCT/JP2017/006131に記載されている先願基本発明に係るネットワーク通信システムを説明してきた。特に、§4-1では、ルータを用いた基本的な実施例を示した。前述したとおり、個々の端末装置は、通常、ルータを介してネットワークに接続されることが多い。この場合、図15に示す例のように、各端末装置にはルータによってプライベートIPアドレス(本願では、PIPという省略形を用いる)が付与されるが、ルータのNAT機能によりグローバルIPアドレス(本願では、GIPという省略形を用いる)への変換が行われ、接続仲介装置100に対してはグローバルIPアドレスが通知されることになる。したがって、接続仲介装置100内のアドレステーブルTには、図16に例示するように、所在アドレスとしてグローバルIPアドレス(およびポート番号)が格納される。
このように、先願基本発明の第1の実施形態に係るネットワーク通信システムの場合、接続仲介装置100は、通信元の端末装置からの接続仲介依頼に応じて、通信先となる端末装置のグローバルIPアドレスを返信する。そして、通信元の端末装置は、このグローバルIPアドレスを用いて、通信先の端末装置に対して通信開始要求を行うことになる。ところが、ネットワーク環境によっては、グローバルIPアドレスを用いた通信開始要求が好ましくない場合がある。以下、その理由と解決方法を説明する。
<5-1. 問題の所在>
図21は、ルータを介してネットワークN(インターネット)に接続されている端末装置を含む、先願基本発明の第1の実施形態に係るネットワーク通信システムの全体構成を示すブロック図である。ここでは説明の便宜上、4台の端末装置200A~200DがネットワークNに接続されているものとする(実際には、各ルータRA,RBには、より多数の端末装置が接続されているが、ここでは図示を省略する)。図示のとおり、端末装置200Aおよび200Bは、ルータRAを介してネットワークNに接続されており、端末装置200Cは、ルータRBを介してネットワークNに接続されており、端末装置200Dは、ルータを介さずにネットワークNに直接接続されている。また、接続仲介装置100もネットワークNに直接接続されている。
なお、図21に括弧書きで示されている符号400A~400D,300は、上述した先願基本発明の第1の実施形態を、先願基本発明の第2の実施形態に置き換えた場合の符号である。以下、便宜上、先願基本発明の第1の実施形態についての問題の所在を説明するが、このような問題は、先願基本発明の第2の実施形態についても同様に発生する。
ここで、各端末装置200A~200Dの所在アドレスをそれぞれAD1~AD4とすれば、これまで述べてきた先願基本発明では、所在アドレスAD1~AD4として、いずれもグローバルIPアドレス(およびポート番号、以下同様)を用い、接続仲介装置100内のアドレステーブルTには、このグローバルIPアドレスが格納されることになる。すなわち、端末装置200Aの所在アドレスAD1としてはグローバルIPアドレスGIP1が、端末装置200Bの所在アドレスAD2としてはグローバルIPアドレスGIP2が、端末装置200Cの所在アドレスAD3としてはグローバルIPアドレスGIP3が、端末装置200Dの所在アドレスAD4としてはグローバルIPアドレスGIP4が、それぞれ接続仲介装置100に通知され、アドレステーブルTに格納される。なお、図では、各GIPのうしろにポート番号P1~P3を括弧書きで示してある。
一方、ルータRA,RBを介してネットワークNに接続されている端末装置200A,200B,200Cには、ルータRAもしくはRBから、それぞれプライベートIPアドレスPIP1,PIP2,PIP3が付与されている。図21では、説明の便宜上、GIP1~GIP4およびPIP1~PIP3についての実アドレスが例示されている。
具体的には、ルータRAは、「192.168.2.0/24」で示されるプライベートIPアドレスが付与されたサブネットを構築しており、このサブネット内において、端末装置200Aに対してはPIP1=「192.168.2.1」なるプライベートIPアドレスが付与され、端末装置200Bに対してはPIP2=「192.168.2.2」なるプライベートIPアドレスが付与されている。また、このルータRAには、「xx.5.1.1」なるグローバルIPアドレスが付与されており、ネットワークNに対しては、当該グローバルIPアドレスおよびポート番号が各端末装置200A,200Bの所在アドレスとして利用される。したがって、ネットワークNから各端末装置200A,200Bに対してアクセスする際には、このグローバルIPアドレス「xx.5.1.1」と所定のポート番号が所在アドレスとして用いられることになる。
図示の例の場合、端末装置200Aに対してはGIP1=「xx.5.1.1(P1)」なるグローバルIPアドレスおよびポート番号が付与され、端末装置200Bに対してはGIP2=「xx.5.1.1(P2)」なるグローバルIPアドレスおよびポート番号が付与されている。両者には、同じグローバルIPアドレス「xx.5.1.1」が付与されるが、ポート番号「P1」,「P2」によって区別されることになる。実際には、ルータRAのNAT機能により、グローバルIPアドレスとプライベートIPアドレスとの変換が行われる点は、既に§4で述べたとおりである。
一方、ルータRBは、「192.168.10.0/24」で示されるプライベートIPアドレスが付与されたサブネットを構築しており、このサブネット内において、端末装置200Cに対してはPIP3=「192.168.10.1」なるプライベートIPアドレスが付与されている。また、このルータRBには、「xx.5.7.1」なるグローバルIPアドレスが付与されており、ネットワークNに対しては、当該グローバルIPアドレスおよびポート番号が端末装置200Cの所在アドレスとして利用される。図示の例の場合、端末装置200Cに対してはGIP3=「xx.5.7.1(P3)」なるグローバルIPアドレスおよびポート番号が付与されている。
なお、端末装置200Dは、ルータを介さずにネットワークNに直接接続されているため、プライベートIPアドレスは付与されておらず、グローバルIPアドレスとしてGIP4=「xx.5.8.100」が付与されている。
これまで述べてきた先願基本発明に係るネットワーク通信システムの場合、各端末装置200A~200Dの自己アドレス通知機能によって、接続仲介装置100には、それぞれのグローバルIPアドレスが通知され、アドレステーブルTに格納される。
さて、この図21に示す例において、端末装置200Aを通信元、端末装置200Cを通信先として、両端末装置間で通信を行う場合を考えてみる。図22は、図21に示すネットワーク通信システムにおける端末装置200A-200C間の通信形態を示すブロック図である。図に示す細線矢印L1は、一対の端末装置200A,200Cの間で通信セッション確立前にやりとりされる信号の流れを示し、白抜矢印L2は、一対の端末装置200A,200Cの間で通信セッション確立後にやりとりされる信号の流れを示している。実際には、この2種類の矢印L1,L2で示される信号の流れは、いずれもルータRA,RBおよびネットワークNを通ることになる。
上述したとおり、各端末装置200A,200CにはプライベートIPアドレスPIP1,PIP3が付与されているが、信号がルータRA,RBを通ってインターネットNへ向かう際に、それぞれグローバルIPアドレスGIP1,GIP3に変換される。図示の例の場合、端末装置200Aには、PIP1=「192.168.2.1」が付与されているが、信号がルータRAを通る際に、PIP1=「192.168.2.1」は、グローバルIPアドレスGIP1=「xx.5.1.1(P1)」に変換されている。同様に、端末装置200Cには、PIP3=「192.168.10.1」が付与されているが、信号がルータRBを通る際に、PIP3=「192.168.10.1」は、グローバルIPアドレスGIP3=「xx.5.7.1(P3)」に変換されている。
図4に示すとおり、通信元である端末装置200Aが通信を開始するには、まず、接続仲介装置100に対して接続仲介依頼S2を行う。この接続仲介依頼S2を受けた接続仲介装置100は、アドレステーブルTを参照することにより、通信先となる端末装置のグローバルIPアドレスを把握し、この通信先アドレスを通信元である端末装置200Aに返信する。図22に示す例の場合、通信先となる端末装置200CのグローバルIPアドレスGIP3「xx.5.7.1(P3)」が、通信元の端末装置200Aに返信される。そこで、通信元の端末装置200Aは、このGIP3「xx.5.7.1(P3)」を用いて通信先となる端末装置200Cに対して通信開始要求(図4のS5)を行うことになる。
その後、通信先となる端末装置200C内の通信先セッション確立部230と、通信元となる端末装置200A内の通信元セッション確立部230と、の間で、通信開始受諾確認(S6)の送受が行われる。この通信開始要求(S5)および通信開始受諾確認(S6)は、図22の矢印L1で示される信号経路を介して行われる。そして、最後に、両端末装置間で通信(S7)が行われる。この通信(S7)は、図22の矢印L2で示される信号経路を介して行われる。
ここで、信号経路L1,L2は、いずれもルータRA,RBおよびネットワークNを通る経路であり、このような経路を前提とすれば、端末装置200Aの所在アドレスとしてグローバルIPアドレスGIP1「xx.5.1.1(P1)」を用い、端末装置200Cの所在アドレスとしてグローバルIPアドレスGIP3「xx.5.7.1(P3)」を用いることは理にかなっている。すなわち、信号経路L1,L2を経る信号(データパケット)は、ルータRA,RBを通って外部のインターネットNに出るため、相手方の所在アドレスとしてグローバルIPアドレスが必要になる。
次に、図21に示す例において、端末装置200Aを通信元、端末装置200Bを通信先として、両端末装置間で通信を行う場合を考えてみる。図23は、図21に示すネットワーク通信システムにおける端末装置200A-200B間の通信形態を示すブロック図である。図22に示す一対の端末装置200A,200Cは、互いに異なるルータRA,RBを介してネットワークNに接続されていたが、図23に示す一対の端末装置200A,200Bは、同一のルータRAを介してネットワークNに接続されている。別言すれば、図23に示す例は、同一のサブネットに所属する一対の端末装置間の通信ということになる。
この図23においても、細線矢印L3,L5は、一対の端末装置200A,200Bの間で通信セッション確立前にやりとりされる信号の流れを示し、白抜矢印L4,L6は、一対の端末装置200A,200Bの間で通信セッション確立後にやりとりされる信号の流れを示している。ただ、矢印L3,L4で示される信号の流れは、いずれもルータRAおよびネットワークNを通る信号経路をとるものになるのに対して、矢印L5,L6で示される信号の流れは、いずれもルータRAによるサブネット内の信号経路をとるものになる。別言すれば、前者はサブネットからルータRAの外側(インターネットN)に出て、再びルータRAを経てサブネット内に戻る経路をとるのに対して、後者はルータRAの外側(インターネットN)に出ることなしに、ルータRAの内側(サブネット)のみを通る経路をとることになる。
上述したとおり、各端末装置200A,200Bには、それぞれプライベートIPアドレスPIP1「192.168.2.1」,PIP2「192.168.2.2」が付与されているが、信号がルータRAを通ってインターネットNへ向かう際には、それぞれグローバルIPアドレスGIP1「xx.5.1.1(P1)」,GIP2「xx.5.1.1(P2)」に変換される。
これまで述べてきた先願基本発明に係るネットワーク通信システムの場合、通信元となる端末装置200Aが通信先となる端末装置200Bにアクセスするために、接続仲介装置100に対して接続仲介依頼を行うと、接続仲介装置100は、通信先となる端末装置200BのグローバルIPアドレスGIP2「xx.5.1.1(P2)」を通信先アドレスとして返信してくることになる。したがって、通信元となる端末装置200Aは、このグローバルIPアドレスGIP2「xx.5.1.1(P2)」を用いて、通信先となる端末装置200Bに対して通信開始要求(S5)を行う。
その後、通信先となる端末装置200B内の通信先セッション確立部230と、通信元となる端末装置200A内の通信元セッション確立部230と、の間で、通信開始受諾確認(S6)の送受が行われる。この通信開始要求(S5)および通信開始受諾確認(S6)は、図23の矢印L3で示される信号経路を介して行われる。そして、最後に、両端末装置間で通信(S7)が行われる。この通信(S7)は、図23の矢印L4で示される信号経路を介して行われる。
しかしながら、この矢印L3,L4で示される信号経路は、効率的な通信を行うという観点からは問題である。すなわち、図23に示す例では、通信元端末装置200Aと通信先端末装置200Bとが同一のサブネットに所属している。したがって、両者間でやりとりする信号は、一旦、ルータRAの外側へ出てインターネットNを通って再びルータRAの内側に戻ってくる経路をとる必要はない。別言すれば、この図23に示す例では、矢印L3,L4で示される信号経路をとる代わりに、矢印L5,L6で示される信号経路をとった方が効率的である。
このような問題は、単に、通信経路の効率性を低下させるだけでなく、通信に支障が生じる問題に発展する可能性がある。これは、ルータによっては、同一のネットワークに所属する端末装置間の通信にグローバルIPアドレスを利用すると、接続を拒絶する設定を採用するものが存在するためである。もし、図23に示すルータRAに、このような設定がなされていた場合、ルータRAの内側から外側へと通過した信号が、再びルータRAの内側に戻ってくることは禁止される。
したがって、たとえば、通信元端末装置200Aから通信先端末装置200B宛に通信開始要求(S5)を送信する際に、通信先端末装置200Bの所在アドレスとしてグローバルIPアドレスGIP2「xx.5.1.1(P2)」を用いた場合(これまで述べてきた先願基本発明に係る方法を採る場合)、当該通信開始要求(S5)の送信は失敗することになる。すなわち、当該通信開始要求(S5)の信号(データパケット)は、矢印L3の信号経路をとることになるので、ルータRAを通って一旦インターネットNへ出ることになり、その後、再びルータRAの内側へ戻ろうとするが、上記設定がなされているルータRAは、このような出戻り信号を拒絶することになる。これにより、出戻り信号(通信開始要求(S5))はルータRAの内側に戻ることができず、通信先端末装置200Bには届かないことになる。
このように、図23に示す例の場合、両端末装置200A,200B間の信号のやりとりに、信号経路L3,L4(一旦、ルータRAの外側に出てから内側に戻る経路)を用いた場合、通信効率の低下を招くとともに、ルータRAの設定によっては、一旦外側に出た信号が再び内側に戻ることを拒絶され、通信に失敗する可能性もある。このような問題に対処するには、信号経路L3,L4を用いる代わりに、信号経路L5,L6を用いる必要がある。信号経路L5,L6を用いれば、両端末装置200A,200B間の信号(データパケット)は、ルータRAの内側(ルータRAによって構築されたサブネット内)のみを通ることになり、ルータRAの外側に出ることはない。よって、通信効率を向上させることができ、また、ルータRAの設定に起因した通信障害を防ぐこともできる。
<5-2. 第1の実施形態についての問題の解決方法>
図22に示す例のように、異なるサブネットに所属する端末装置200A-200C間の通信は、通信経路L1,L2に示すように、一旦ルータの外側に出てから別なルータの内側に入る経路を採らざるを得ない。これに対して、図23に示す例のように、同じサブネットに所属する端末装置200A-200B間の通信は、通信経路L3,L4に示すように、一旦ルータの外側に出てから同じルータの内側に戻るような経路を採るよりも、通信経路L5,L6に示すように、ルータの内側のみを通る経路を採る方が好ましいことになる。
結局、先願基本発明に係るネットワーク通信システムにおいて、ルータを介してネットワークに接続されている端末装置間について効率的な通信を行うには、基本的には、信号をルータの外側へ出して、ネットワークNを介して通信が行われるような方法を採用しつつ、同一のルータによって構築された同一のサブネットに所属する端末装置間の通信に関しては、信号をルータの外側に出さず、サブネット内の経路のみを利用した通信が行われるような方法を採用すればよい。そのためには、基本的には、グローバルIPアドレス(GIP)を用いて相手方の端末装置にアクセスする方法を採用しつつ、同一のルータによって構築された同一のサブネットに所属する端末装置間の通信に関しては、プライベートIPアドレス(PIP)を用いて相手方の端末装置にアクセスする方法を採用すればよい。
§1で述べた先願基本発明の第1の実施形態に係るネットワーク通信システムは、図4のブロック図に示すとおり、ネットワークNを介して相互に接続可能な複数の端末装置200A,200Bと、これら複数の端末装置間の接続を仲介する接続仲介装置100と、を備えている。そして、各端末装置200A,200Bには、個々の端末装置を相互に識別するための端末IDがそれぞれ付与されており、接続仲介装置100は、この端末IDを利用して通信元となる端末装置200Aと通信先となる端末装置200Bとの間の接続を仲介する処理を実行する。
図2に示すとおり、各端末装置200は、接続仲介依頼部210、通信要求受付部220、通信先セッション確立部230、通信開始要求部240、自己アドレス通知部250、通信元セッション確立部260を有しており、これら各構成要素の機能は、既に§1で述べたとおりである。一方、図4に示すとおり、接続仲介装置100は、アドレステーブル格納部110、アドレステーブル更新部120、通信先アドレス返信部130を有しており、これら各構成要素の機能も、既に§1で述べたとおりである。
この先願基本発明の第1の実施形態に本発明を適用するには、上記各構成要素のいくつかに、付加的な機能を設けるようにすればよい。具体的には、以下に述べる各構成要素に付加機能を追加すればよい。
まず、自己アドレス通知部250については、端末装置200がルータを介してネットワークNに接続されていた場合に、自己の所在アドレスとして、ネットワーク上のグローバルIPアドレス(GIP)とともに、当該ルータから付与されたプライベートIPアドレス(PIP)を接続仲介装置100に対して通知する付加機能を追加する。たとえば、図21に示す例の場合、端末装置200A内の自己アドレス通知部250Aは、GIP1「xx.5.1.1(P1)」とともにPIP1「192.168.2.1」を接続仲介装置100に通知し、端末装置200B内の自己アドレス通知部250Bは、GIP2「xx.5.1.1(P2)」とともにPIP2「192.168.2.2」を接続仲介装置100に通知し、端末装置200C内の自己アドレス通知部250Cは、GIP3「xx.5.7.1(P3)」とともにPIP3「192.168.10.1」を接続仲介装置100に通知する。ネットワークNに直接接続されている端末装置200Dに関しては、プライベートIPアドレスは付与されていないので、GIP4「xx.5.8.100」のみが通知される。
実用上、グローバルIPアドレス(GIP)の通知は、接続仲介装置100に対して何らかのデータパケットを送信すればよい。通信プロトコルとしてIPを採用してデータパケットを送信すれば、受信側では、当該データパケットの送信元のグローバルIPアドレスを自動的に認識できる仕様になっている。たとえば、端末装置200Aから接続仲介装置100に対して、何らかのデータパケットを送信すれば、接続仲介装置100は、当該データパケットの送信元の所在アドレスが、GIP1「xx.5.1.1(P1)」であることを認識できる。したがって、端末装置200A内の自己アドレス通知部250Aは、自己の端末ID「0010」と自己に付与されているPIP1「192.168.2.1」をデータパケットに記載し、これを自己アドレスとして接続仲介装置100に送信すればよい。
一方、このような自己アドレス通知を受けた接続仲介装置100内のアドレステーブル更新部120は、端末ID「0010」,GIP1「xx.5.1.1(P1)」,PIP1「192.168.2.1」を対応づけてアドレステーブルTに格納する更新処理を実行する。したがって、図4に示す先願基本発明の第1の実施形態に本発明を適用するには、アドレステーブル格納部110に、所在アドレスとして、各端末装置のグローバルIPアドレス(GIP)を端末IDに対応づけて格納するとともに、プライベートIPアドレス(PIP)が通知された端末装置については、更に当該プライベートIPアドレス(PIP)を端末IDに対応づけて格納する付加機能をもたせておけばよい。
図24は、図21に示すネットワーク通信システムにおいて、各端末装置のグローバルIPアドレス(GIP)とプライベートIPアドレス(PIP)の双方をアドレステーブルに格納した例を示す図である。図24(a) に示すアドレステーブルT61は、各アドレスを符号で表したものであり、端末ID「0010」~「0040」(図21に示す端末装置200A~200DのID)に対応させて、グローバルIPアドレスGIP1~GIP4と、ポート番号P1~P3と、プライベートIPアドレスPIP1~PIP3と、がそれぞれ格納されている。なお、端末ID「0040」をもつ端末装置200Dは、ルータを介さずにネットワークNに直接接続されているため、ポート番号およびPIPの情報はない。
図24(b) に示すアドレステーブルT62は、図24(a) に示すアドレステーブルT61における各アドレスを具体的な数値例で表したものであり、端末ID「0010」~「0040」に対応させて、グローバルIPアドレス「xx.5.1.1」,「xx.5.1.1」,「xx.5.7.1」,「xx.5.8.100」と、ポート番号「54701」,「54702」,「61999」と、プライベートIPアドレス「192.168.2.1」,「192.168.2.2」,「192.168.10.1」と、がそれぞれ格納されている。
§1で述べたとおり、接続仲介装置100内の通信先アドレス返信部130は、アドレステーブルを参照して通信先アドレスを確認し、通信元の端末装置に対して通信先アドレスを返信する処理を行う。このとき、§1で述べた実施形態の場合、返信される通信先アドレスは、通信先となる端末装置のグローバルIPアドレスである。これに対して本発明の場合、図24のアドレステーブルT61,T62に示すように、ルータを介して接続された端末装置については、所在アドレスとしてグローバルIPアドレス(GIP)とともにプライベートIPアドレス(PIP)も格納されている。そこで、本発明に係る通信先アドレス返信部130には、このアドレステーブルT61,T62の内容に応じて、グローバルIPアドレス(GIP)もしくはプライベートIPアドレス(PIP)、またはその両方を通信先アドレスとして返信する付加機能をもたせるようにする。
こうすることにより、端末装置200内の通信開始要求部240は、通信先についてのグローバルIPアドレス(GIP)もしくはプライベートIPアドレス(PIP)、またはその両方を通信先アドレスとして受け取ることができる。そこで、本発明に係る通信開始要求部240には、グローバルIPアドレス(GIP)もしくはプライベートIPアドレス(PIP)、またはその両方を用いて通信開始要求S5を行う付加機能をもたせるようにする。そうすれば、通信開始要求部240は、自己と通信先との間のネットワーク環境に応じて、適宜、グローバルIPアドレス(GIP)およびプライベートIPアドレス(PIP)を選択的に利用して、通信先に対して通信開始要求S5を行うことができるようになる。
グローバルIPアドレス(GIP)か、プライベートIPアドレス(PIP)か、のいずれを利用して通信開始要求S5を行うかの判断は、通信元と通信先のグローバルIPアドレスを比較することによって行うことができる。具体的には、通信元となる端末装置200の通信開始要求部240は、自己のグローバルIPアドレスと通信先となる端末装置のグローバルIPアドレスとが同一のIPアドレスである場合には、プライベートIPアドレス(PIP)を用いて通信開始要求S5を行い、異なるIPアドレスである場合には、グローバルIPアドレス(GIP)を用いて通信開始要求S5を行うようにすればよい。
このような運用を行った場合の具体的な通信形態を、図21に示す例について考えてみよう。この例の場合、接続仲介装置100内には、図24(b) に示すようなアドレステーブルT62が格納されている。そこで、まず、端末装置200Aが通信元となって、別なサブネットに所属する端末装置200Cを通信先とする通信を行う場合を考える。この場合、図24(b) のアドレステーブルT62を参照すると、端末装置200A(端末ID「0010」)のグローバルIPアドレス「GIP1」は「xx.5.1.1」であるのに対して、相手方の端末装置200C(端末ID「0030」)のグローバルIPアドレス「GIP3」は「xx.5.7.1」であり、両者は異なっている。そこで、通信元となる端末装置200Aの通信開始要求部240Aは、グローバルIPアドレス(GIP3)である「xx.5.7.1」に対して通信開始要求S5を行うことになる。
もちろん、通信元の端末装置200Aの通信開始要求部240Aが、グローバルIPアドレス(GIP)を用いて通信開始要求S5を行った場合は、以後、通信先の端末装置200Cの通信先セッション確立部230Cと通信元の端末装置200Aの通信元セッション確立部260Aとの間の相互アクセスはグローバルIPアドレス(GIP)を用いて行われる。その結果、図22の通信経路L1,L2を用いた通信(ネットワークNを経由した通信)が行われることになる。
続いて、端末装置200Aが通信元となって、同じサブネットに所属する端末装置200Bを通信先とする通信を行う場合を考える。この場合、図24(b) のアドレステーブルT62を参照すると、端末装置200A(端末ID「0010」)のグローバルIPアドレス「GIP1」は「xx.5.1.1」であり、相手方の端末装置200B(端末ID「0020」)のグローバルIPアドレス「GIP2」も「xx.5.1.1」であり、両者は同一である。そこで、通信元となる端末装置200Aの通信開始要求部240Aは、通信先となる端末装置BのプライベートIPアドレス(PIP2)である「192.168.2.2」に対して通信開始要求S5を行うことになる。その結果、図23の通信経路L5,L6を用いた通信(ネットワークNを経由しない通信)が行われる。
もちろん、通信元の端末装置200Aの通信開始要求部240Aが、プライベートIPアドレス(PIP)を用いて通信開始要求S5を行った場合は、以後、通信先の端末装置200Bの通信先セッション確立部230Bと通信元の端末装置200Aの通信元セッション確立部260Aとの間の相互アクセスはプライベートIPアドレス(PIP)を用いて行われる。その結果、図23の通信経路L5,L6を用いた通信が行われることになる。
要するに、本発明では、異なるサブネットに所属する端末装置間の通信にはグローバルIPアドレスを利用し、同一のサブネットに所属する端末装置間の通信にはプライベートIPアドレスを利用することになる。したがって、後者の場合には、無駄な通信経路を省くことができ、通信効率を向上させることができる。また、上述のように信号の出戻りを拒絶する設定がなされているルータが存在した場合でも、支障なく通信を行うことができる。
結局、先願基本発明の第1の実施形態に本発明を適用したネットワーク通信システムの基本構成は、図4のブロック図に示すものと同様であるが、いくつかの構成要素に上述した付加機能が加えられることになる。もちろん、これらの各構成要素は、コンピュータに専用のプログラムを組み込むことによって構成することができる。また、商業上は、個々の端末装置200を単独で販売したり、接続仲介装置100を単独で販売したりすることが可能であり、更に、端末装置200に組み込むためのプログラムや、接続仲介装置100に組み込むためのプログラムを単独で販売することも可能である。
<5-3. 第2の実施形態についての問題の解決方法>
§5-2では、§1で述べた先願基本発明の第1の実施形態に係るネットワーク通信システムに本発明を適用するための方法を述べた。ここでは、§2で述べた先願基本発明の第2の実施形態に係るネットワーク通信システムに本発明を適用するための方法を述べる。
§2で述べた先願基本発明の第2の実施形態に係るネットワーク通信システムは、図8のブロック図に示すとおり、ネットワークNを介して相互に接続可能な複数の端末装置400A,400Bと、これら複数の端末装置間の接続を仲介する接続仲介装置300と、を備えている。そして、各端末装置400A,400Bには、個々の端末装置を相互に識別するための端末IDがそれぞれ付与されており、接続仲介装置300は、この端末IDを利用して通信元となる端末装置400Bと通信先となる端末装置400Aとの間の接続を仲介する処理を実行する。
図7に示すとおり、各端末装置400は、接続仲介依頼部410、通信要求受付部420、通信元セッション確立部430、通信開始要求部440、自己アドレス通知部450、通信先セッション確立部460を有しており、これら各構成要素の機能は、既に§2で述べたとおりである。一方、図8に示すとおり、接続仲介装置300は、アドレステーブル格納部310、アドレステーブル更新部320、通信元アドレス送信部330を有しており、これら各構成要素の機能も、既に§2で述べたとおりである。
この先願基本発明の第2の実施形態に本発明を適用するには、上記各構成要素のいくつかに、付加的な機能を設けるようにすればよい。具体的には、以下に述べる各構成要素に付加機能を追加すればよい。
まず、自己アドレス通知部450については、端末装置400がルータを介してネットワークNに接続されていた場合に、自己の所在アドレスとして、ネットワーク上のグローバルIPアドレス(GIP)とともに、当該ルータから付与されたプライベートIPアドレス(PIP)を接続仲介装置300に対して通知する付加機能を追加する。この付加機能は、§5-2で述べた自己アドレス通知部250についての付加機能と同様である。
一方、このような自己アドレス通知を受けた接続仲介装置300内のアドレステーブル更新部320は、端末IDに、グローバルIPアドレス(GIP)とプライベートIPアドレス(PIP)とを対応づけてアドレステーブルTに格納する更新処理を実行する。したがって、図8に示す先願基本発明の第2の実施形態に本発明を適用するには、アドレステーブル格納部310に、所在アドレスとして、各端末装置のグローバルIPアドレス(GIP)を端末IDに対応づけて格納するとともに、プライベートIPアドレス(PIP)が通知された端末装置については、更に当該プライベートIPアドレス(PIP)を端末IDに対応づけて格納する付加機能をもたせておけばよい。このようなアドレステーブルの実例は、既に図24を用いて説明したとおりである。
§2で述べたとおり、接続仲介装置300内の通信元アドレス送信部330は、アドレステーブルを参照して通信先アドレスを確認し、この通信先の端末装置に対して通信元アドレスを送信する処理を行う。このとき、§2で述べた実施形態の場合、送信される通信元アドレスは、通信元となる端末装置のグローバルIPアドレスである。これに対して本発明の場合、図24のアドレステーブルT61,T62に示すように、ルータを介して接続された端末装置については、所在アドレスとしてグローバルIPアドレス(GIP)とともにプライベートIPアドレス(PIP)も格納されている。そこで、本発明に係る通信元アドレス送信部330には、このアドレステーブルT61,T62の内容に応じて、グローバルIPアドレス(GIP)もしくはプライベートIPアドレス(PIP)、またはその両方を通信元アドレスとして送信する付加機能をもたせるようにする。
こうすることにより、端末装置400内の通信開始要求部440は、通信元についてのグローバルIPアドレス(GIP)もしくはプライベートIPアドレス(PIP)、またはその両方を通信元アドレスとして受け取ることができる。そこで、本発明に係る通信開始要求部440には、グローバルIPアドレス(GIP)もしくはプライベートIPアドレス(PIP)、またはその両方を用いて通信開始要求S15を行う付加機能をもたせるようにする。そうすれば、通信開始要求部440は、自己と通信元との間のネットワーク環境に応じて、適宜、グローバルIPアドレス(GIP)およびプライベートIPアドレス(PIP)を選択的に利用して、通信元に対して通信開始要求S15を行うことができるようになる。
グローバルIPアドレス(GIP)か、プライベートIPアドレス(PIP)か、のいずれを利用して通信開始要求S15を行うかの判断は、§5-2で述べた例と同様に、通信元と通信先のグローバルIPアドレスを比較することによって行うことができる。具体的には、通信先となる端末装置400の通信開始要求部440は、自己のグローバルIPアドレスと通信元となる端末装置のグローバルIPアドレスとが同一のIPアドレスである場合には、プライベートIPアドレス(PIP)を用いて通信開始要求S15を行い、異なるIPアドレスである場合には、グローバルIPアドレス(GIP)を用いて通信開始要求S15を行うようにすればよい。
このような運用を行った場合の具体的な通信形態は、§5-2で図21に示す例について述べたものと同様である。具体的には、図21に示す第1の実施形態に係る各端末装置200A~200Dを、それぞれ第2の実施形態に係る端末装置400A~400Dに置き換え、第1の実施形態に係る接続仲介装置100を、第2の実施形態に係る接続仲介装置300に置き換えればよい。括弧書きの符号は、このような置き換えを行ったものである。接続仲介装置300内には、図24(b) に示すようなアドレステーブルT62が格納されることになる。
まず、端末装置400B(図21の200Bを置き換えたもの)が通信元となって、別なサブネットに所属する端末装置400C(図21の200Cを置き換えたもの)を通信先とする通信を行う場合を考える。この場合、図24(b) のアドレステーブルT62を参照すると、端末装置400B(端末ID「0020」)のグローバルIPアドレス「GIP2」は「xx.5.1.1」であるのに対して、相手方の端末装置400C(端末ID「0030」)のグローバルIPアドレス「GIP3」は「xx.5.7.1」であり、両者は異なっている。そこで、通信先となる端末装置400Cの通信開始要求部440は、通信元となる端末装置400BのグローバルIPアドレス(GIP2)である「xx.5.1.1(P2)」に対して通信開始要求S15を行うことになる。
もちろん、通信先の端末装置400Cの通信開始要求部440が、グローバルIPアドレス(GIP)を用いて通信開始要求S15を行った場合は、以後、通信先の端末装置400Cの通信先セッション確立部460Cと通信元の端末装置400Bの通信元セッション確立部430Bとの間の相互アクセスはグローバルIPアドレス(GIP)を用いて行われる。その結果、図22の通信経路L1,L2の例と同様に、ネットワークNを経由した通信が行われることになる。
続いて、端末装置400B(図21の200Bを置き換えたもの)が通信元となって、同じサブネットに所属する端末装置400A(図21の200Aを置き換えたもの)を通信先とする通信を行う場合を考える。この場合、図24(b) のアドレステーブルT62を参照すると、端末装置400B(端末ID「0020」)のグローバルIPアドレス「GIP2」は「xx.5.1.1」であり、相手方の端末装置400A(端末ID「0010」)のグローバルIPアドレス「GIP1」も「xx.5.1.1」であり、両者は同一である。そこで、通信先となる端末装置400Aの通信開始要求部440Aは、プライベートIPアドレス(PIP2)である「192.168.2.2」に対して通信開始要求S15を行うことになる。その結果、図23の通信経路L5,L6の例と同様に、ネットワークNを経由しない通信が行われることになる。
もちろん、通信先の端末装置400Aの通信開始要求部440Aが、プライベートIPアドレス(PIP)を用いて通信開始要求S15を行った場合は、以後、通信元の端末装置400Bの通信元セッション確立部430Bと通信先の端末装置400Aの通信先セッション確立部460Aとの間の相互アクセスはプライベートIPアドレス(PIP)を用いて行われる。その結果、図23の通信経路L5,L6を用いた通信(ネットワークNを経由しない通信)が行われることになる。
このように、本発明を先願基本発明の第2の実施形態に適用した場合も、異なるサブネットに所属する端末装置間の通信にはグローバルIPアドレスを利用し、同一のサブネットに所属する端末装置間の通信にはプライベートIPアドレスを利用することになる。したがって、後者の場合には、無駄な通信経路を省くことができ、通信効率を向上させることができる。また、上述のように信号の出戻りを拒絶する設定がなされているルータが存在した場合でも、支障なく通信を行うことができる。
結局、先願基本発明の第2の実施形態に本発明を適用したネットワーク通信システムの基本構成は、図8のブロック図に示すものと同様であるが、いくつかの構成要素に上述した付加機能が加えられることになる。もちろん、これらの各構成要素は、コンピュータに専用のプログラムを組み込むことによって構成することができる。また、商業上は、個々の端末装置400を単独で販売したり、接続仲介装置300を単独で販売したりすることが可能であり、更に、端末装置400に組み込むためのプログラムや、接続仲介装置300に組み込むためのプログラムを単独で販売することも可能である。
<5-4. 本発明を適用するためのアプローチ>
前述したとおり、本発明において端末装置間の通信に、GIP/PIPいずれのアドレスを利用するかという点に関する基本概念は、異なるサブネットに所属する端末装置間の通信にはグローバルIPアドレス(GIP)を利用し、同一のサブネットに所属する端末装置間の通信にはプライベートIPアドレス(PIP)を利用する、というものである。ここでは、このような基本概念を実際に適用するための具体的なアプローチをいくつか述べる。
まず、第1のアプローチは、「接続仲介装置がGIP/PIPの選択を行うアプローチ」である。接続仲介装置は、接続仲介依頼があったときに、アドレステーブルを参照して通信先アドレスもしくは通信元アドレスを端末装置に送信することになるが、このとき、アドレステーブルの内容に応じて、GIP/PIPのいずれを送信するかを選択すればよい。たとえば、図24(b) に示すようなアドレステーブルT62を参照して、通信元と通信先のグローバルIPアドレスが同じか否かを判断し、同じ場合には、プライベートIPアドレス(PIP)を送信し、異なる場合には、グローバルIPアドレス(GIP)を送信するようにする。そして、端末装置は、送信を受けたアドレスをそのまま用いて、通信開始要求を行うようにする。
要するに、この第1のアプローチでは、通信開始要求に用いるアドレスとして、GIP/PIPのいずれを選択するかの判断を接続仲介装置に委ね、接続仲介装置が、選択したいずれか一方のアドレスのみを端末装置に送信するようにする。端末装置は、送信のあったアドレスをそのまま用いて通信開始要求を行うことになる。この第1のアプローチの具体的な手順については、後述する§6において、実施例1,2として詳述する。
第2のアプローチは、「端末装置がGIP/PIPの選択を行うアプローチ」である。接続仲介装置は、接続仲介依頼があったときに、アドレステーブルを参照して通信先アドレスもしくは通信元アドレスを端末装置に送信することになるが、このとき、送信対象となるアドレスについて、アドレステーブルにGIPのみが格納されていた場合には、GIPのみを送信し、GIPとPIPの両方が格納されていた場合には、これら両方を送信すればよい。別言すれば、接続仲介装置は、GIP/PIPのいずれを選択するかの判断を行わず、アドレステーブルに格納されている送信対象アドレスをそのまま端末装置に送信することになる。
端末装置は、送信を受けたアドレスがGIPのみであった場合には、当該GIPを用いて通信開始要求を行うが、GIPとPIPの両方の送信を受けた場合には、自己のGIPと送信を受けたGIP(相手方のGIP)とを比較して、いずれを用いて通信開始要求を行うかを選択することになる。すなわち、自己のGIPと送信を受けたGIPとが同じ場合には、相手先は自己と同じサブネットに存在するものと判断し、相手方のプライベートIPアドレス(PIP)を用いて通信開始要求を行うようにする。これに対して、自己のGIPと送信を受けたGIPとが異なる場合には、相手先は自己とは異なるサブネットに存在するものと判断し、相手方のグローバルIPアドレス(GIP)を用いて通信開始要求を行うようにする。
要するに、この第2のアプローチでは、通信開始要求に用いるアドレスとして、GIP/PIPのいずれを選択するかの判断を端末装置に委ね、端末装置が、選択したいずれか一方のアドレスを用いて相手方に対する通信開始要求を行うようにする。この第2のアプローチの具体的な手順については、後述する§7において、実施例3,4として詳述する。
第3のアプローチは、「PIP失敗時にGIPでトライするアプローチ」である。第3のアプローチでは、通信開始要求に用いるアドレスとしてGIP/PIPのいずれを選択するかの判断は行われない。接続仲介装置は、接続仲介依頼があったときに、アドレステーブルを参照して通信先アドレスもしくは通信元アドレスを端末装置に送信することになるが、このとき、送信対象となるアドレスについて、アドレステーブルにGIPのみが格納されていた場合には、GIPのみを送信し、GIPとPIPの両方が格納されていた場合には、これら両方を送信すればよい。すなわち、上述した第2のアプローチと同様に、接続仲介装置は、GIP/PIPのいずれを選択するかの判断を行わず、アドレステーブルに格納されている送信対象アドレスをそのまま端末装置に送信することになる。
端末装置は、送信を受けたアドレスがGIPのみであった場合には、当該GIPを用いて通信開始要求を行う。一方、端末装置は、送信を受けたアドレスがGIPとPIPの両方であった場合には、まず、PIPを用いて通信開始要求をトライし、このPIPを用いた通信開始要求に失敗したと判断される場合もしくは失敗が予想される場合には、GIPを用いて通信開始要求を行う。
要するに、この第3のアプローチでは、通信開始要求に用いるアドレスとして、GIP/PIPのいずれを選択するかの判断を行わず、端末装置がGIP/PIPの両方の送信を受けた場合には、まずPIPを試し、失敗したら、もしくは失敗が予想されたらGIPを試すという手順をとることになる。この第3のアプローチの具体的な手順については、後述する§8において、実施例5,6として詳述する。
<<< §6. 接続仲介装置がGIP/PIPの選択を行うアプローチ >>>
この§6で述べる実施形態は、前述したとおり、通信開始要求に用いるアドレスとして、GIP/PIPのいずれを選択するかの判断を接続仲介装置に委ねるアプローチを採るものである。このアプローチを採る場合、接続仲介装置は、選択したいずれか一方のアドレスのみを端末装置に送信するようにし、端末装置は、送信のあったアドレスをそのまま用いて通信開始要求を行うことになる。以下、このアプローチを、§1に示す先願基本発明の第1の実施形態(図4)に適用した例を実施例1として説明し、§2に示す先願基本発明の第2の実施形態(図8)に適用した例を実施例2として説明する。もちろん、以下に述べる実施例1,2については、§3や§4で述べた各種変形例を適用することも可能である。
<6-1. 実施例1>
ここでは、本発明の実施例1を説明する。この実施例1は、§1で述べた先願基本発明の第1の実施形態の構成要素のいくつかに付加機能を追加したものであり、接続仲介装置がGIP/PIPの選択を行うアプローチを採用するものである。この実施例1に係るネットワーク通信システムの構成は、基本的には、図4に示す先願基本発明の第1の実施形態の構成と同じであるが、§5-2で述べたとおり、いくつかの構成要素に付加機能が追加されている。
具体的には、各端末装置200の自己アドレス通知部250には、ルータを介してネットワークNに接続されている場合に、自己の所在アドレスとして、ネットワーク上のグローバルIPアドレス(GIP)とともに、ルータから付与されたプライベートIPアドレス(PIP)を接続仲介装置100に対して通知する付加機能が追加されている。また、接続仲介装置100内のアドレステーブル格納部110には、図24に示すように、グローバルIPアドレス(GIP)とともにプライベートIPアドレス(PIP)を端末IDに対応づけたアドレステーブルT61が格納されている。
また、この実施例1の場合、図4に示す通信先アドレス返信部130は、通信元の端末装置200Aから接続仲介依頼S2が送信されてきたときに、アドレステーブル格納部110に格納されているアドレステーブルを参照して、接続仲介依頼S2を送信した通信元の端末装置200Aの端末ID「0010」に対応づけられているグローバルIPアドレス(GIP)と、接続仲介依頼S2に含まれている通信先特定情報によって特定される端末ID「0020」に対応づけられているグローバルIPアドレス(GIP)と、が同一のIPアドレスであるか否かを判断し、判断対象となる両者が同一のIPアドレスである場合には、プライベートIPアドレス(PIP)を選択通信先アドレスとして返信し、判断対象となる両者が異なるIPアドレスである場合には、グローバルIPアドレス(GIP)を選択通信先アドレスとして返信する。そして、このような返信を受けた通信開始要求部240Aは、返信されてきた選択通信先アドレスをそのまま用いて通信開始要求S5を行う。
たとえば、図21に示すようなネットワーク環境が構成されていた場合、アドレステーブル格納部110には、図24(b) に示すようなアドレステーブルT62が格納されることになる。この場合、端末装置200Aを通信元として、端末装置200Cを通信先とする接続仲介依頼S2がなされたとすると、通信元(端末ID「0010」)と通信先(端末ID「0030」)のグローバルIPアドレス(GIP)は異なっているので、通信先アドレス返信部130は、通信先のグローバルIPアドレス「xx.5.7.1」を選択通信先アドレスとして返信する(実際には、ポート番号も一緒に返信される。以下の各実施例でも同様。)。その結果、通信元端末装置200Aは、この選択通信先アドレス「xx.5.7.1」を用いて、通信先端末装置200Cに対して通信開始要求S5を行うことになる。かくして、端末装置200A-200C間において、ネットワークNを介した通信が行われる。
これに対して、端末装置200Aを通信元として、端末装置200Bを通信先とする接続仲介依頼S2がなされたとすると、通信元(端末ID「0010」)と通信先(端末ID「0020」)のグローバルIPアドレス(GIP)は同一なので、通信先アドレス返信部130は、通信先のプライベートIPアドレス「192.168.2.2」を選択通信先アドレスとして返信する。その結果、通信元端末装置200Aは、この選択通信先アドレス「192.168.2.2」を用いて、通信先端末装置200Bに対して通信開始要求S5を行うことになる。かくして、端末装置200A-200B間において、ネットワークNを介さずに、同一サブネット内での通信が行われる。
図25は、実施例1についての装置間信号の流れを示すダイアグラムである。図21には、4台の端末装置200A~200Dがそれぞれ固有のネットワーク環境で接続されている例が示されているが、ここでは、より一般化した説明を行うために、通信元の端末装置を200X、通信先の端末装置を200Yと呼ぶことにし、両者ともにルータを介してネットワークNに接続されているものとする。図25において、左端に配置された縦線は通信元端末装置200Xを示し、中央に配置された縦線は接続仲介装置100を示し、右端に配置された縦線は通信先端末装置200Yを示す。また、各縦線は、上から下へ向かう時間軸を示しており、以下、この時間軸に沿って、各信号の流れを順に説明する。なお、以下の説明では、グローバルIPアドレスを「GIP」と省略して記載し、プライベートIPアドレスを「PIP」と省略して記載する。
まず、準備段階の処理として、通信元端末装置200Xから接続仲介装置100に対して自己アドレス通知S0Xが行われる。これは、通信元端末装置200X内の自己アドレス通知部250によって行われる処理であり、前述したとおり、通信元端末装置200XのGIPとPIPの両方が通知される。同様に、通信先端末装置200Yから接続仲介装置100に対して自己アドレス通知S0Yが行われる。これは、通信先端末装置200Y内の自己アドレス通知部250によって行われる処理であり、前述したとおり、通信先端末装置200YのGIPとPIPの両方が通知される。
図25には、説明の便宜上、通信元端末装置200Xからの自己アドレス通知S0Xが行われた後に、通信先端末装置200Yからの自己アドレス通知S0Yが行われた例が示されているが、もちろん、各端末装置からの自己アドレス通知は、それぞれ所定のタイミングで行われるものであり、自己アドレス通知S0X,S0Yの順序は逆になる場合もあるし、同時の場合もある。また、この準備段階では、まだ、いずれが通信元になり、いずれが通信先になるかは定まっていない。この準備段階により、接続仲介装置100内のアドレステーブルには、両端末装置200X,200YのGIPとPIPの両方が格納されることになる。
さて、続く通信段階において、端末装置200Xに対して、端末装置200Yを通信先とする通信要求S1がなされたものとしよう。これにより、端末装置200Xを通信元とし、端末装置200Yを通信先とする通信を行うための手順が開始される。まず、通信元端末装置200Xから接続仲介装置100に対して、通信先端末装置200Yの端末IDを含む接続仲介依頼S2がなされる。この接続仲介依頼S2を受けた接続仲介装置100は、アドレステーブルを参照する処理S3を行い、通信先端末装置200Yの所在アドレスを通信先アドレスとして把握する。
ただ、アドレステーブルに格納されている通信先端末装置200Yの所在アドレスには、GIPとPIPが含まれている。そこで、接続仲介装置100内の通信先アドレス返信部130は、GIP/PIPのいずれか一方を選択通信先アドレスとして選択し、この選択通信先アドレスを通信元端末装置200Xに通知する通信先アドレス返信S4を行う。この通信先アドレス返信S4には、通信先端末装置200YのGIPかPIPか、いずれか一方のアドレスが選択通信先アドレスとして含まれている。このように、実施例1では、接続仲介装置100がGIP/PIPの選択を行うアプローチが採用されている。
通信先アドレス返信部130が、GIP/PIPの選択を行うアルゴリズムは、既に述べたとおりである。すなわち、通信先アドレス返信部130は、アドレステーブルを参照することにより、通信元と通信先のGIPが同一のIPアドレスであるか否かを判断し、判断対象となる両者が同一のIPアドレスである場合には、PIPを選択通信先アドレスとして返信し、判断対象となる両者が異なるIPアドレスである場合には、GIPを選択通信先アドレスとして返信する。
この選択通信先アドレスの返信を受けた通信元端末装置200X内の通信開始要求部240は、返信されてきた選択通信先アドレスをそのまま用いて、通信先端末装置200Yに対して通信開始要求S5を行う。すなわち、GIPが返信されてきたらGIPを用いて通信開始要求S5を行い、PIPが返信されてきたらPIPを用いて通信開始要求S5を行う。この通信開始要求S5を受けた通信先端末装置200Y内の通信先セッション確立部230は、通信元端末装置200Xに対して、通信開始要求S5がGIPで行われた場合には同じくGIPを用いて通信開始受諾確認S6を行い、通信開始要求S5がPIPで行われた場合には同じくPIPを用いて通信開始受諾確認S6を行う。かくして、端末装置200X-200Y間における通信S7が、通信開始要求S5がGIPで行われた場合には同じくGIPを用いて行われ、通信開始要求S5がPIPで行われた場合には同じくPIPを用いて行われることになる。
<6-2. 実施例2>
続いて、本発明の実施例2を説明する。この実施例2は、§2で述べた先願基本発明の第2の実施形態の構成要素のいくつかに付加機能を追加したものであり、接続仲介装置がGIP/PIPの選択を行うアプローチを採用するものである。この実施例2に係るネットワーク通信システムの構成は、基本的には、図8に示す先願基本発明の第2の実施形態の構成と同じであるが、§5-3で述べたとおり、いくつかの構成要素に付加機能が追加されている。
具体的には、各端末装置400の自己アドレス通知部450には、ルータを介してネットワークNに接続されている場合に、自己の所在アドレスとして、ネットワーク上のグローバルIPアドレス(GIP)とともに、ルータから付与されたプライベートIPアドレス(PIP)を接続仲介装置300に対して通知する付加機能が追加されている。また、接続仲介装置300内のアドレステーブル格納部310には、図24に示すように、グローバルIPアドレス(GIP)とともにプライベートIPアドレス(PIP)を端末IDに対応づけたアドレステーブルT61が格納されている。
また、この実施例2の場合、図8に示す通信元アドレス送信部330は、通信元の端末装置400Bから接続仲介依頼S12が送信されてきたときに、アドレステーブル格納部310に格納されているアドレステーブルを参照して、接続仲介依頼S12を送信した通信元の端末装置400Bの端末ID「0020」に対応づけられているグローバルIPアドレス(GIP)と、接続仲介依頼S12に含まれている通信先特定情報によって特定される端末ID「0010」に対応づけられているグローバルIPアドレス(GIP)と、が同一のIPアドレスであるか否かを判断し、判断対象となる両者が同一のIPアドレスである場合には、プライベートIPアドレス(PIP)を選択通信元アドレスとして送信し、判断対象となる両者が異なるIPアドレスである場合には、グローバルIPアドレス(GIP)を選択通信元アドレスとして送信する。そして、このような送信を受けた通信開始要求部440Aは、送信されてきた選択通信元アドレスをそのまま用いて通信開始要求S15を行う。
たとえば、図21に示す第1の実施形態に係る各端末装置200A~200Dを、それぞれ第2の実施形態に係る端末装置400A~400Dに置き換え、第1の実施形態に係る接続仲介装置100を、第2の実施形態に係る接続仲介装置300に置き換えた例を考えた場合(置き換えた符号を図21では括弧書きで示してある)、接続仲介装置300内には、図24(b) に示すようなアドレステーブルT62が格納されることになる。
この場合、端末装置400Bを通信元として、端末装置400Cを通信先とする接続仲介依頼S12がなされたとすると、通信元(端末ID「0020」)と通信先(端末ID「0030」)のグローバルIPアドレス(GIP)は異なっているので、通信元アドレス送信部330は、通信元のグローバルIPアドレス「xx.5.1.1」を選択通信元アドレスとして送信する。その結果、通信先端末装置400Cは、この選択通信元アドレス「xx.5.1.1」を用いて、通信元端末装置400Bに対して通信開始要求S15を行うことになる。かくして、端末装置400B-400C間において、ネットワークNを介した通信が行われる。
これに対して、端末装置400Bを通信元として、端末装置400Aを通信先とする接続仲介依頼S12がなされたとすると、通信元(端末ID「0020」)と通信先(端末ID「0010」)のグローバルIPアドレス(GIP)は同一なので、通信元アドレス送信部330は、通信元のプライベートIPアドレス「192.168.2.2」を選択通信元アドレスとして送信する。その結果、通信先端末装置400Aは、この選択通信元アドレス「192.168.2.2」を用いて、通信元端末装置400Bに対して通信開始要求S15を行うことになる。かくして、端末装置400A-400B間において、ネットワークNを介さずに、同一サブネット内での通信が行われる。
図26は、実施例2についての装置間信号の流れを示すダイアグラムである。ここでも、より一般化した説明を行うために、通信元の端末装置を400X、通信先の端末装置を400Yと呼ぶことにし、両者ともにルータを介してネットワークNに接続されているももとする。図26において、左端に配置された縦線は通信元端末装置400Xを示し、中央に配置された縦線は接続仲介装置300を示し、右端に配置された縦線は通信先端末装置400Yを示す。また、各縦線は、上から下へ向かう時間軸を示しており、以下、この時間軸に沿って、各信号の流れを順に説明する。なお、以下の説明では、グローバルIPアドレスを「GIP」と省略して記載し、プライベートIPアドレスを「PIP」と省略して記載する。
まず、準備段階の処理として、通信元端末装置400Xから接続仲介装置300に対して自己アドレス通知S0Xが行われる。これは、通信元端末装置400X内の自己アドレス通知部450によって行われる処理であり、前述したとおり、通信元端末装置400XのGIPとPIPの両方が通知される。同様に、通信先端末装置400Yから接続仲介装置300に対して自己アドレス通知S0Yが行われる。これは、通信先端末装置400Y内の自己アドレス通知部450によって行われる処理であり、前述したとおり、通信先端末装置400YのGIPとPIPの両方が通知される。
図25に示すダイアグラムと同様に、各端末装置からの自己アドレス通知は、それぞれ所定のタイミングで行われるものであり、自己アドレス通知S0X,S0Yの順序は逆になる場合もあるし、同時の場合もある。また、この準備段階では、まだ、いずれが通信元になり、いずれが通信先になるかは定まっていない。この準備段階により、接続仲介装置300内のアドレステーブルには、両端末装置400X,400YのGIPとPIPの両方が格納されることになる。
さて、続く通信段階において、端末装置400Xに対して、端末装置400Yを通信先とする通信要求S11がなされたものとしよう。これにより、端末装置400Xを通信元とし、端末装置400Yを通信先とする通信を行うための手順が開始される。まず、通信元端末装置400Xから接続仲介装置300に対して、通信先端末装置400Yの端末IDを含む接続仲介依頼S12がなされる。この接続仲介依頼S12を受けた接続仲介装置300は、アドレステーブルを参照する処理S13を行い、通信先端末装置400Yの所在アドレスを通信先アドレスとして把握し、通信元端末装置400Xの所在アドレスを通信元アドレスとして把握する。
ただ、アドレステーブルに格納されている通信元端末装置400Xの所在アドレスには、GIPとPIPが含まれている。そこで、接続仲介装置300内の通信元アドレス送信部330は、GIP/PIPのいずれか一方を選択通信元アドレスとして選択し、この選択通信元アドレスを通信先端末装置400Yに通知する通信元アドレス送信S14を行う。この通信元アドレス送信S14には、通信元端末装置400XのGIPかPIPか、いずれか一方のアドレスが選択通信元アドレスとして含まれている。このように、実施例2では、接続仲介装置300がGIP/PIPの選択を行うアプローチが採用されている。
通信元アドレス送信部330が、GIP/PIPの選択を行うアルゴリズムは、既に述べたとおりである。すなわち、通信元アドレス送信部330は、アドレステーブルを参照することにより、通信元と通信先のGIPが同一のIPアドレスであるか否かを判断し、判断対象となる両者が同一のIPアドレスである場合には、PIPを選択通信元アドレスとして送信し、判断対象となる両者が異なるIPアドレスである場合には、GIPを選択通信元アドレスとして送信する。
この選択通信元アドレスの送信を受けた通信先端末装置400Y内の通信開始要求部440は、送信されてきた選択通信元アドレスをそのまま用いて、通信元端末装置400Xに対して通信開始要求S15を行う。すなわち、GIPが送信されてきたらGIPを用いて通信開始要求S15を行い、PIPが送信されてきたらPIPを用いて通信開始要求S15を行う。この通信開始要求S15を受けた通信元端末装置400X内の通信元セッション確立部430は、通信先端末装置400Yに対して、通信開始要求S15がGIPで行われた場合には同じくGIPを用いて通信開始受諾確認S16を行い、通信開始要求S15がPIPで行われた場合には同じくPIPを用いて通信開始受諾確認S16を行う。かくして、端末装置400X-400Y間における通信S17が、通信開始要求S15がGIPで行われた場合には同じくGIPを用いて行われ、通信開始要求S15がPIPで行われた場合には同じくPIPを用いて行われることになる。
<<< §7. 端末装置がGIP/PIPの選択を行うアプローチ >>>
§6では、通信開始要求に用いるアドレスとして、GIP/PIPのいずれを選択するかの判断を接続仲介装置に委ねるアプローチを採る実施例1,2を説明した。この§7では、この判断を端末装置に委ねるアプローチを採る実施例について説明する。このようなアプローチを採る場合、接続仲介装置は、GIP/PIPの両方を有する所在アドレスについては、この両方を端末装置に送信するようにし、端末装置側において、いずれか一方を選択して通信開始要求を行うことになる。以下、このアプローチを、§1に示す先願基本発明の第1の実施形態(図4)に適用した例を実施例3として説明し、§2に示す先願基本発明の第2の実施形態(図8)に適用した例を実施例4として説明する。もちろん、以下に述べる実施例3,4については、§3や§4で述べた各種変形例を適用することも可能である。
<7-1. 実施例3>
ここでは、本発明の実施例3を説明する。この実施例3は、§1で述べた先願基本発明の第1の実施形態の構成要素のいくつかに付加機能を追加したものであり、端末装置がGIP/PIPの選択を行うアプローチを採用するものである。この実施例3に係るネットワーク通信システムの構成は、基本的には、図4に示す先願基本発明の第1の実施形態の構成と同じであるが、§5-2で述べたとおり、いくつかの構成要素に付加機能が追加されている。
具体的には、各端末装置200の自己アドレス通知部250には、ルータを介してネットワークNに接続されている場合に、自己の所在アドレスとして、ネットワーク上のグローバルIPアドレス(GIP)とともに、ルータから付与されたプライベートIPアドレス(PIP)を接続仲介装置100に対して通知する付加機能が追加されている。また、接続仲介装置100内のアドレステーブル格納部110には、図24に示すように、グローバルIPアドレス(GIP)とともにプライベートIPアドレス(PIP)を端末IDに対応づけたアドレステーブルT61が格納されている。
また、この実施例3の場合、図4に示す通信先アドレス返信部130は、通信元の端末装置200Aから接続仲介依頼S2が送信されてきたときに、返信対象となる所在アドレスとしてグローバルIPアドレス(GIP)およびプライベートIPアドレス(PIP)の両アドレスがアドレステーブルに格納されていた場合に、これら両アドレスを通信先アドレスとして返信する。
そして、通信開始要求部240Aは、上記両アドレスの返信があったときに、通信先アドレスとして返信されてきたグローバルIPアドレス(GIP)と、通信元である自己のグローバルIPアドレス(GIP)と、が同一のIPアドレスであるか否かを判断し、判断対象となる両者が同一のIPアドレスである場合には、プライベートIPアドレス(PIP)を用いて通信開始要求S5を行い、判断対象となる両者が異なるIPアドレスである場合には、グローバルIPアドレス(GIP)を用いて通信開始要求S5を行う。もちろん、GIPのみしか返信されてこなかった場合は、当該GIPを用いて通信開始要求S5を行えばよい。
たとえば、図21に示すようなネットワーク環境が構成されていた場合、アドレステーブル格納部110には、図24(b) に示すようなアドレステーブルT62が格納されることになる。この場合、端末装置200Aを通信元として、端末装置200Cを通信先とする接続仲介依頼S2がなされたとすると、通信先アドレス返信部130は、通信先端末装置200Cについて、グローバルIPアドレス「xx.5.7.1(P3)」(ポート番号付きのアドレス)とプライベートIPアドレス「192.168.10.1」との両アドレスを通信先アドレスとして返信する。
このような両アドレスの返信を受けた通信元端末装置200Aの通信開始要求部240Aは、返信されてきた通信先端末装置200CのグローバルIPアドレス「xx.5.7.1」と、通信元である自己のグローバルIPアドレス「xx.5.1.1」と、が同一のIPアドレスであるか否かを判断する。自己のグローバルIPアドレス「xx.5.1.1」については、通信開始要求部240Aが予めルータRAに問い合わせを行い、これを保存しておくようにすればよい。上例の場合、通信元のグローバルIPアドレス「xx.5.1.1」と通信先のグローバルIPアドレス「xx.5.7.1」とは異なっているので、通信開始要求部240Aは、グローバルIPアドレス「xx.5.7.1(P3)」を用いて通信先端末装置200Cに対して通信開始要求S5を行う。かくして、端末装置200A-200C間において、ネットワークNを介した通信が行われる。
これに対して、端末装置200Aを通信元として、端末装置200Bを通信先とする接続仲介依頼S2がなされたとすると、通信先アドレス返信部130は、通信先端末装置200Bについて、グローバルIPアドレス「xx.5.1.1(P2)」(ポート番号付きのアドレス)とプライベートIPアドレス「192.168.2.2」との両アドレスを通信先アドレスとして返信する。
このような両アドレスの返信を受けた通信元端末装置200Aの通信開始要求部240Aは、返信されてきた通信先端末装置200BのグローバルIPアドレス「xx.5.1.1」と、通信元である自己のグローバルIPアドレス「xx.5.1.1」と、が同一のIPアドレスであるとの判断を行い、プライベートIPアドレス「192.168.2.2」を用いて通信先端末装置200Bに対して通信開始要求S5を行う。かくして、端末装置200A-200B間において、ネットワークNを介さずに、同一サブネット内での通信が行われる。
図27は、実施例3についての装置間信号の流れを示すダイアグラムである。このダイアグラムの形式は、図25に示すダイアグラムの形式と同様である。まず、準備段階の処理として、通信元端末装置200Xから接続仲介装置100に対して自己アドレス通知S0Xが行われ、GIPとPIPの両方が通知される。同様に、通信先端末装置200Yから接続仲介装置100に対して自己アドレス通知S0Yが行われ、GIPとPIPの両方が通知される。この準備段階の処理は、図25に示すダイアグラムの準備段階の処理と全く同じであり、この準備段階により、接続仲介装置100内のアドレステーブルには、両端末装置200X,200YのGIPとPIPの両方が格納されることになる。なお、図21の端末装置200Dのように、ルータを介さずにネットワークNに直接接続されている端末装置については、GIPのみがアドレステーブルに格納されるが、以下、両端末装置200X,200Yについて、GIPとPIPの両方が格納されている場合を基本とした説明を行う。
ここでは、続く通信段階において、端末装置200Xに対して、端末装置200Yを通信先とする通信要求S1がなされたものとしよう。これにより、端末装置200Xを通信元とし、端末装置200Yを通信先とする通信を行うための手順が開始される。まず、通信元端末装置200Xから接続仲介装置100に対して、通信先端末装置200Yの端末IDを含む接続仲介依頼S2がなされる。この接続仲介依頼S2を受けた接続仲介装置100は、アドレステーブルを参照する処理S3を行い、通信先端末装置200Yの所在アドレスを通信先アドレスとして把握する。
ただ、アドレステーブルに格納されている通信先端末装置200Yの所在アドレスには、GIPとPIPが含まれている。そこで、接続仲介装置100内の通信先アドレス返信部130は、GIPおよびPIPの両方を通信先アドレスとして通信元端末装置200Xに通知する通信先アドレス返信S4を行う(もちろん、アドレステーブルにGIPのみしか含まれていない端末装置については、GIPのみを返信する)。このように、実施例3では、接続仲介装置100は、GIP/PIPの選択を行わない。
こうして、GIPおよびPIPの両方を含む通信先アドレスの返信を受けた通信元端末装置200X内の通信開始要求部240は、通信開始要求S5に用いるアドレスとして、GIPかPIPのいずれか一方を選ぶアドレス選択S4′を行う(もちろん、GIPのみ返信された場合には、選択は不要である)。通信開始要求部240が、GIP/PIPの選択を行うアルゴリズムは、既に述べたとおりである。すなわち、通信開始要求部240は、通信先アドレスとして返信されてきたGIPと自己のGIPとが同一のIPアドレスであるか否かを判断し、両者が同一のIPアドレスである場合には、PIPを用いて通信開始要求S5を行い、両者が異なるIPアドレスである場合には、GIPを用いて通信開始要求S5を行う。
この通信開始要求S5を受けた通信先端末装置200Y内の通信先セッション確立部230は、通信元端末装置200Xに対して、通信開始要求S5がGIPで行われた場合には同じくGIPを用いて通信開始受諾確認S6を行い、通信開始要求S5がPIPで行われた場合には同じくPIPを用いて通信開始受諾確認S6を行う。かくして、端末装置200X-200Y間における通信S7が、通信開始要求S5がGIPで行われた場合には同じくGIPを用いて行われ、通信開始要求S5がPIPで行われた場合には同じくPIPを用いて行われることになる。
<7-2. 実施例4>
続いて、本発明の実施例4を説明する。この実施例4は、§2で述べた先願基本発明の第2の実施形態の構成要素のいくつかに付加機能を追加したものであり、端末装置がGIP/PIPの選択を行うアプローチを採用するものである。この実施例4に係るネットワーク通信システムの構成は、基本的には、図8に示す先願基本発明の第2の実施形態の構成と同じであるが、§5-3で述べたとおり、いくつかの構成要素に付加機能が追加されている。
具体的には、各端末装置400の自己アドレス通知部450には、ルータを介してネットワークNに接続されている場合に、自己の所在アドレスとして、ネットワーク上のグローバルIPアドレス(GIP)とともに、ルータから付与されたプライベートIPアドレス(PIP)を接続仲介装置300に対して通知する付加機能が追加されている。また、接続仲介装置300内のアドレステーブル格納部310には、図24に示すように、グローバルIPアドレス(GIP)とともにプライベートIPアドレス(PIP)を端末IDに対応づけたアドレステーブルT61が格納されている。
また、この実施例4の場合、図8に示す通信元アドレス送信部330は、通信元の端末装置400Bから接続仲介依頼S12が送信されてきたときに、アドレステーブル格納部310に格納されているアドレステーブルを参照して、送信対象となる所在アドレスとしてグローバルIPアドレス(GIP)およびプライベートIPアドレス(PIP)の両アドレスがアドレステーブルに格納されていた場合に、これら両アドレスを通信元アドレスとして送信する。
そして、通信開始要求部440Aは、上記両アドレスの送信があったときに、通信元アドレスとして送信されてきたグローバルIPアドレス(GIP)と、通信先である自己のグローバルIPアドレス(GIP)と、が同一のIPアドレスであるか否かを判断し、判断対象となる両者が同一のIPアドレスである場合には、プライベートIPアドレス(PIP)を用いて通信開始要求S15を行い、判断対象となる両者が異なるIPアドレスである場合には、グローバルIPアドレス(GIP)を用いて通信開始要求S15を行う。もちろん、GIPのみしか送信されてこなかった場合は、当該GIPを用いて通信開始要求S5を行えばよい。
たとえば、図21に示す第1の実施形態に係る各端末装置200A~200Dを、それぞれ第2の実施形態に係る端末装置400A~400Dに置き換え、第1の実施形態に係る接続仲介装置100を、第2の実施形態に係る接続仲介装置300に置き換えた例を考えた場合(置き換えた符号を図21では括弧書きで示してある)、接続仲介装置300内には、図24(b) に示すようなアドレステーブルT62が格納されることになる。
この場合、端末装置400Bを通信元として、端末装置400Cを通信先とする接続仲介依頼S12がなされたとすると、通信元アドレス送信部330は、通信元端末装置400BのグローバルIPアドレス「xx.5.1.1(P2)」(ポート番号付きのアドレス)とプライベートIPアドレス「192.168.2.2」との両アドレスを通信元アドレスとして、通信先端末装置400Cに送信する。
このような両アドレスの送信を受けた通信先端末装置400Cの通信開始要求部440は、送信されてきた通信元端末装置400BのグローバルIPアドレス「xx.5.1.1」と、通信先である自己のグローバルIPアドレス「xx.5.7.1」と、が同一のIPアドレスであるか否かを判断する。自己のグローバルIPアドレス「xx.5.7.1」については、通信開始要求部440が予めルータRBに問い合わせを行い、これを保存しておくようにすればよい。上例の場合、通信元のグローバルIPアドレス「xx.5.1.1」と通信先のグローバルIPアドレス「xx.5.7.1」とは異なっているので、通信先端末装置400Cの通信開始要求部440は、グローバルIPアドレス「xx.5.1.1(P2)」を用いて通信元端末装置200Bに対して通信開始要求S15を行う。かくして、端末装置400B-400C間において、ネットワークNを介した通信が行われる。
これに対して、端末装置400Bを通信元として、端末装置400Aを通信先とする接続仲介依頼S12がなされたとすると、通信元アドレス送信部330は、通信元端末装置400BのグローバルIPアドレス「xx.5.1.1(P2)」(ポート番号付きのアドレス)とプライベートIPアドレス「192.168.2.2」との両アドレスを通信元アドレスとして、通信先端末装置400Aに送信する。
このような両アドレスの送信を受けた通信先端末装置400Aの通信開始要求部440は、送信されてきた通信元端末装置400BのグローバルIPアドレス「xx.5.1.1」と、通信先である自己のグローバルIPアドレス「xx.5.1.1」と、が同一のIPアドレスであるか否かを判断する。自己のグローバルIPアドレス「xx.5.1.1」については、通信開始要求部440が予めルータRAに問い合わせを行い、これを保存しておくようにすればよい。上例の場合、通信元のグローバルIPアドレス「xx.5.1.1」と通信先のグローバルIPアドレス「xx.5.1.1」とは同一なので、通信開始要求部440は、プライベートIPアドレス「192.168.2.2」を用いて通信元端末装置400Bに対して通信開始要求S15を行う。かくして、端末装置400A-400B間において、ネットワークNを介さずに、同一サブネット内での通信が行われる。
図28は、実施例4についての装置間信号の流れを示すダイアグラムである。このダイアグラムの形式は、図26に示すダイアグラムの形式と同様である。まず、準備段階の処理として、通信元端末装置400Xから接続仲介装置300に対して自己アドレス通知S0Xが行われ、GIPとPIPの両方が通知される。同様に、通信先端末装置400Yから接続仲介装置300に対して自己アドレス通知S0Yが行われ、GIPとPIPの両方が通知される。この準備段階の処理は、図26に示すダイアグラムの準備段階の処理と全く同じであり、この準備段階により、接続仲介装置300内のアドレステーブルには、両端末装置400X,400YのGIPとPIPの両方が格納されることになる。なお、図21の端末装置400Dのように、ルータを介さずにネットワークNに直接接続されている端末装置については、GIPのみがアドレステーブルに格納されるが、以下、両端末装置400X,400Yについて、GIPとPIPの両方が格納されている場合を基本とした説明を行う。
さて、続く通信段階において、端末装置400Xに対して、端末装置400Yを通信先とする通信要求S11がなされたものとしよう。これにより、端末装置400Xを通信元とし、端末装置400Yを通信先とする通信を行うための手順が開始される。まず、通信元端末装置400Xから接続仲介装置300に対して、通信先端末装置400Yの端末IDを含む接続仲介依頼S12がなされる。この接続仲介依頼S12を受けた接続仲介装置300は、アドレステーブルを参照する処理S13を行い、通信先端末装置400Yの所在アドレスを通信先アドレスとして把握し、通信元端末装置400Xの所在アドレスを通信元アドレスとして把握する。
アドレステーブルに格納されている通信元端末装置400Xの所在アドレスには、GIPとPIPが含まれている。そこで、接続仲介装置300内の通信元アドレス送信部330は、GIPおよびPIPの両方を通信元アドレスとして、これを通信先端末装置400Yに通知する通信元アドレス返信S14を行う(もちろん、アドレステーブルにGIPのみしか含まれていない端末装置については、GIPのみを送信する)。この通信元アドレス返信S14には、通信元端末装置400XのGIPとPIPの両方のアドレスが通信元アドレスとして含まれている。このように、実施例4では、接続仲介装置300は、GIP/PIPの選択を行わない。
こうして、GIPおよびPIPの両方を含む通信元アドレスの送信を受けた通信先端末装置400Y内の通信開始要求部440は、通信開始要求S15に用いるアドレスとして、GIPかPIPのいずれか一方を選ぶアドレス選択S14′を行う(もちろん、GIPのみ送信された場合には、選択は不要である)。通信開始要求部440が、GIP/PIPの選択を行うアルゴリズムは、既に述べたとおりである。すなわち、通信開始要求部440は、通信元アドレスとして送信されてきたGIPと自己のGIPとが同一のIPアドレスであるか否かを判断し、両者が同一のIPアドレスである場合には、PIPを用いて通信開始要求S15を行い、両者が異なるIPアドレスである場合には、GIPを用いて通信開始要求S15を行う。
この通信開始要求S15を受けた通信元端末装置400X内の通信元セッション確立部430は、通信先端末装置400Yに対して、通信開始要求S15がGIPで行われた場合には同じくGIPを用いて通信開始受諾確認S16を行い、通信開始要求S15がPIPで行われた場合には同じくPIPを用いて通信開始受諾確認S16を行う。かくして、端末装置400X-400Y間における通信S17が、通信開始要求S15がGIPで行われた場合には同じくGIPを用いて行われ、通信開始要求S15がPIPで行われた場合には同じくPIPを用いて行われることになる。
<<< §8. PIP失敗時にGIPでトライするアプローチ >>>
§6では、通信開始要求に用いるアドレスとして、GIP/PIPのいずれを選択するかの判断を接続仲介装置に委ねるアプローチを採る実施例1,2を説明し、§7では、当該判断を端末装置に委ねるアプローチを採る実施例3,4を説明した。そこで、この§8では、GIP/PIPを選択するための判断を行わないアプローチを採る実施例を説明する。このアプローチを採る場合、接続仲介装置は、GIP/PIPの両方を有する所在アドレスについては、この両方を端末装置に送信するようにする。そして、端末装置側では、GIP/PIPの両方が送信されてきた場合には、通信開始要求を行う際に、まずPIPを試し、失敗したらGIPを試すという手順をとる。以下、このアプローチを、§1に示す先願基本発明の第1の実施形態(図4)に適用した例を実施例5として説明し、§2に示す先願基本発明の第2の実施形態(図8)に適用した例を実施例6として説明する。もちろん、以下に述べる実施例5,6については、§3や§4で述べた各種変形例を適用することも可能である。
<8-1. 実施例5>
ここでは、本発明の実施例5を説明する。この実施例5は、§1で述べた先願基本発明の第1の実施形態の構成要素のいくつかに付加機能を追加したものであり、端末装置が通信開始要求を行う際に、まずPIPを試し、失敗したらGIPを試すというアプローチを採用するものである。この実施例5に係るネットワーク通信システムの構成は、基本的には、図4に示す先願基本発明の第1の実施形態の構成と同じであるが、§5-2で述べたとおり、いくつかの構成要素に付加機能が追加されている。
具体的には、各端末装置200の自己アドレス通知部250には、ルータを介してネットワークNに接続されている場合に、自己の所在アドレスとして、ネットワーク上のグローバルIPアドレス(GIP)とともに、ルータから付与されたプライベートIPアドレス(PIP)を接続仲介装置100に対して通知する付加機能が追加されている。また、接続仲介装置100内のアドレステーブル格納部110には、図24に示すように、グローバルIPアドレス(GIP)とともにプライベートIPアドレス(PIP)を端末IDに対応づけたアドレステーブルT61が格納されている。
また、この実施例5の場合、図4に示す通信先アドレス返信部130は、通信元の端末装置200Aから接続仲介依頼S2が送信されてきたときに、返信対象となる所在アドレスとしてグローバルIPアドレス(GIP)およびプライベートIPアドレス(PIP)の両アドレスがアドレステーブルに格納されていた場合に、これら両アドレスを通信先アドレスとして返信する。もちろん、アドレステーブルにGIPのみしか含まれていない端末装置については、GIPのみを返信する。
そして、通信開始要求部240Aは、上記両アドレスの返信があったときに、まず、プライベートIPアドレス(PIP)を用いて通信開始要求S5をトライし、この通信開始要求S5に失敗したと判断される場合もしくは失敗が予想される場合には、グローバルIPアドレス(GIP)を用いた通信開始要求S5′を行う。もちろん、GIPのみしか返信されてこなかった場合は、最初からGIPを用いた通信開始要求S5を行えばよい。
プライベートIPアドレス(PIP)を用いた通信開始要求S5に失敗したか否かを判断する方法としては、たとえば、通信開始要求部240が、プライベートIPアドレス(PIP)を用いて通信開始要求S5を行った後、所定のタイムアウト時間内に通信先の端末装置200から通信開始受諾確認S6が送信されてこなかったときに、PIPを用いた通信開始要求S5に失敗したと判断する方法を採ることができる。
あるいは、PIPを用いた通信開始要求S5を行っても失敗することが予め予想される場合には、実際にPIPを用いた通信開始要求S5を行う前に、PIPを用いた通信開始要求S5を断念して、GIPを用いた通信開始要求S5′を行うようにしてもよい。PIPを用いた通信開始要求S5の失敗予想は、通信開始要求S5を行うために用いるPIPが、自己が接続されているサブネットに割り当てられているプライベートアドレスの範囲内に入っているか否かを調べることにより行うことができる。すなわち、通信開始要求S5を行うために用いるPIPが、サブネットのアドレス範囲外であれば、実際にPIPを用いた通信開始要求S5を行う前に失敗を予想することができる。
たとえば、図21に示すようなネットワーク環境が構成されていた場合、アドレステーブル格納部110には、図24(b) に示すようなアドレステーブルT62が格納されることになる。この場合、端末装置200Aを通信元として、端末装置200Cを通信先とする接続仲介依頼S2がなされたとすると、通信先アドレス返信部130は、通信先端末装置200Cについて、グローバルIPアドレス「xx.5.7.1(P3)」(ポート番号付きのアドレス)とプライベートIPアドレス「192.168.10.1」との両アドレスを通信先アドレスとして返信する。
このような両アドレスの返信を受けた通信元端末装置200Aの通信開始要求部240Aは、まず、プライベートIPアドレス「192.168.10.1」を用いて、通信先端末装置200Cに対する通信開始要求S5をトライする。しかしながら、図21に示すとおり、通信元端末装置200Aは、ルータRAによって構築されたサブネットに接続されており、当該サブネットで用いられるプライベートIPアドレスは、「192.168.2.0/24」で示される範囲内のものであるので、この範囲外のプライベートIPアドレス「192.168.10.1」を用いた通信開始要求S5は失敗する。当該失敗は、通信開始要求S5を行った後、所定のタイムアウト時間内に通信先の端末装置200Cから通信開始受諾確認S6が送信されてこないことにより認識できる。
あるいは、実際に通信開始要求S5を行う前に、失敗を予測することもできる。すなわち、上例の場合、通信開始要求S5を行うために用いるPIP「192.168.10.1」は、通信元端末装置200Aが所属するサブネットのプライベートアドレス「192.168.2.0/24」の範囲外であるので、実際にPIPを用いた通信開始要求S5を行う前に失敗を予想することができる。
こうして、プライベートIPアドレス「192.168.10.1」を用いた通信開始要求S5に失敗したと判断される場合もしくは失敗が予想される場合には、通信開始要求部240Aは、グローバルIPアドレス「xx.5.7.1(P3)」(ポート番号付きのアドレス)を用いて、通信先端末装置200Cに対する通信開始要求S5′を行う。当該通信開始要求S5′は、ルータRA、ネットワークN、ルータRBを通って通信先端末装置200Cに届くことになる。かくして、端末装置200A-200C間において、ネットワークNを介した通信が行われる。
なお、図21に示す例の場合、ルータRAが構築するサブネットのアドレス範囲「192.168.2.0/24」とルータRBが構築するサブネットのアドレス範囲「192.168.10.0/24」とが異なるため、上述したとおり、通信元端末装置200Aから通信先端末装置200Cに向けて、PIP「192.168.10.1」を用いた通信開始要求S5を行っても失敗することが事前に予想できる。しかしながら、場合によっては、ルータRAとルータRBが構築するサブネットのアドレス範囲が同一のケースもあり得る。たとえば、図21に示す例において、ルータRBが構築するサブネットのアドレス範囲が「192.168.2.0/24」になっており、通信先端末装置200Cに付与されたPIPが「192.168.2.8」であったとすると、当該PIPを用いた通信開始要求S5の失敗は事前に予想できない。
すなわち、上例の場合、通信先端末装置200CのPIP「192.168.2.8」は、通信元端末装置200Aが所属するサブネットのアドレス範囲「192.168.2.0/24」内のものであるから、PIP「192.168.2.8」に宛てた通信開始要求S5は、同一サブネット宛の有効な通信とみなされ、事前に失敗予想を行うことはできない。ここで、ルータRAによって構築されたサブネット内に、PIP「192.168.2.8」が付与された端末装置が存在しなければ、上記通信開始要求S5は失敗することになり、通信元端末装置200Aによって事後に失敗が認識される。
一方、上例の場合において、ルータRAによって構築されたサブネット内に、たまたまPIP「192.168.2.8」が付与された端末装置(正規の相手方である通信先端末装置200Cとは全く別の端末装置)が存在すると、上記通信開始要求S5は当該別の端末装置に届くことになる。しかしながら、上記通信開始要求S5に、正規の相手方の端末IDとして通信先端末装置200Cの端末ID「0030」を含ませておき、通信先セッション確立部230に、通信開始要求S5を受信した場合にこの端末IDを確認して、自分が正規の相手方であるか否かを判断する機能を設けておけば、上記別の端末装置は、自分が正規の相手方ではない旨を認識できるので、通信開始受諾確認S6の返信を行わない措置をとることができる。したがって、このような場合も、やはり上記通信開始要求S5は失敗することになり、通信元端末装置200Aによって事後に失敗が認識される。
次に、端末装置200Aを通信元として、端末装置200Bを通信先とする接続仲介依頼S2がなされた場合を考える。この場合、通信先アドレス返信部130は、通信先端末装置200BのグローバルIPアドレス「xx.5.1.1(P2)」(ポート番号付きのアドレス)とプライベートIPアドレス「192.168.2.2」との両アドレスを、通信元端末装置200Aに通信先アドレスとして返信する。
このような両アドレスの返信を受けた通信元端末装置200Aの通信開始要求部240Aは、まず、プライベートIPアドレス「192.168.2.2」を用いて、通信先端末装置200Bに対する通信開始要求S5をトライする。図21に示すとおり、通信元端末装置200Aと通信先端末装置200Bとは、ルータRAによって構築された同一のサブネットに所属しているため、プライベートIPアドレス「192.168.2.2」を用いた通信開始要求S5は、このサブネットを通って通信先端末装置200Bに無事に届く。かくして、端末装置200A-200B間において、ネットワークNを介さずに、同一サブネット内での通信が行われる。
図29は、実施例5についての装置間信号の流れを示すダイアグラムである。このダイアグラムの形式は、図25に示すダイアグラムの形式と同様である。まず、準備段階の処理として、通信元端末装置200Xから接続仲介装置100に対して自己アドレス通知S0Xが行われ、GIPとPIPの両方が通知される。同様に、通信先端末装置200Yから接続仲介装置100に対して自己アドレス通知S0Yが行われ、GIPとPIPの両方が通知される。この準備段階の処理は、図25に示すダイアグラムの準備段階の処理と全く同じであり、この準備段階により、接続仲介装置100内のアドレステーブルには、両端末装置200X,200YのGIPとPIPの両方が格納されることになる。なお、図21の端末装置200Dのように、ルータを介さずにネットワークNに直接接続されている端末装置については、GIPのみがアドレステーブルに格納されるが、以下、図29のダイアグラムでは、両端末装置200X,200Yについて、GIPとPIPの両方が格納されている場合を基本とした説明を行う。
ここでは、続く通信段階において、端末装置200Xに対して、端末装置200Yを通信先とする通信要求S1がなされたものとしよう。これにより、端末装置200Xを通信元とし、端末装置200Yを通信先とする通信を行うための手順が開始される。まず、通信元端末装置200Xから接続仲介装置100に対して、通信先端末装置200Yの端末IDを含む接続仲介依頼S2がなされる。この接続仲介依頼S2を受けた接続仲介装置100は、アドレステーブルを参照する処理S3を行い、通信先端末装置200Yの所在アドレスを通信先アドレスとして把握する。
ただ、アドレステーブルに格納されている通信先端末装置200Yの所在アドレスには、GIPとPIPが含まれている。そこで、接続仲介装置100内の通信先アドレス返信部130は、GIPおよびPIPの両方を通信先アドレスとして通信元端末装置200Xに通知する通信先アドレス返信S4を行う(もちろん、アドレステーブルにGIPのみしか含まれていない端末装置については、GIPのみを返信する)。このように、実施例5では、接続仲介装置100は、GIP/PIPの選択を行わない。
こうして、GIPおよびPIPの両方を含む通信先アドレスの返信を受けた通信元端末装置200X内の通信開始要求部240は、まず、PIPを用いた通信開始要求S5にトライする。図には、実際にPIPを用いた通信開始要求S5が行われた例が示されている。
この通信開始要求S5を受けた通信先端末装置200Y内の通信先セッション確立部230は、通信元端末装置200Xに対して、同じくPIPを用いて通信開始受諾確認S6を行う。このようにして、通信開始要求S5に成功すると、通信開始受諾確認S6が返信されることになる。この場合、ダイアグラムの「成功?」の分岐ブロックから「YES」の分岐に従って一番下へとジャンプし、端末装置200X-200Y間における通信S7が、PIPを用いて行われることになり、ネットワークNを介さずに、同一サブネット内での通信が行われる。
一方、PIPを用いた通信開始要求S5にトライした結果、この通信開始要求S5に失敗したと判断される場合には、ダイアグラムの通信開始要求S5および通信開始受諾確認S6が正常に行われないことになる。この場合、ダイアグラムの「成功?」の分岐ブロックから「NO」の分岐に従って、GIPを用いた通信開始要求S5′が行われる。この通信開始要求S5′を受けた通信先端末装置200Y内の通信先セッション確立部230は、通信元端末装置200Xに対して、同じくGIPを用いて通信開始受諾確認S6′を行う。これにより、ダイアグラムの一番下に示すとおり、端末装置200X-200Y間における通信S7が、GIPを用いて行われることになり、ネットワークNを介した通信が行われる。
以上、図29のダイアグラムでは、接続仲介装置100からGIPとPIPの両アドレスの返信を受けた場合の手順を示したが、接続仲介装置100からGIPのみの返信を受けた場合には、当然ながら、PIPを用いた通信開始要求S5をトライする代わりに、最初からGIPを用いた通信開始要求S5′を行うことになる。
<8-2. 実施例6>
続いて、本発明の実施例6を説明する。この実施例6は、§2で述べた先願基本発明の第2の実施形態の構成要素のいくつかに付加機能を追加したものであり、端末装置が通信開始要求を行う際に、まずPIPを試し、失敗したらGIPを試すというアプローチを採用するものである。この実施例6に係るネットワーク通信システムの構成は、基本的には、図8に示す先願基本発明の第2の実施形態の構成と同じであるが、§5-3で述べたとおり、いくつかの構成要素に付加機能が追加されている。
具体的には、各端末装置400の自己アドレス通知部450には、ルータを介してネットワークNに接続されている場合に、自己の所在アドレスとして、ネットワーク上のグローバルIPアドレス(GIP)とともに、ルータから付与されたプライベートIPアドレス(PIP)を接続仲介装置300に対して通知する付加機能が追加されている。また、接続仲介装置300内のアドレステーブル格納部310には、図24に示すように、グローバルIPアドレス(GIP)とともにプライベートIPアドレス(PIP)を端末IDに対応づけたアドレステーブルT61が格納されている。
また、この実施例6の場合、図8に示す通信元アドレス送信部330は、通信元の端末装置400Bから接続仲介依頼S12が送信されてきたときに、アドレステーブル格納部310に格納されているアドレステーブルを参照して、送信対象となる所在アドレスとしてグローバルIPアドレス(GIP)およびプライベートIPアドレス(PIP)の両アドレスがアドレステーブルに格納されていた場合に、これら両アドレスを通信元アドレスとして送信する。
そして、通信開始要求部440Aは、上記両アドレスの送信があったときに、まず、プライベートIPアドレス(PIP)を用いて通信開始要求S15をトライし、この通信開始要求S15に失敗したと判断される場合もしくは失敗が予想される場合には、グローバルIPアドレス(GIP)を用いた通信開始要求S15′を行う。もちろん、GIPのみしか送信されてこなかった場合は、最初からGIPを用いた通信開始要求S15を行えばよい。
プライベートIPアドレス(PIP)を用いた通信開始要求S15に失敗したか否かを判断する方法としては、たとえば、通信開始要求部440が、プライベートIPアドレス(PIP)を用いて通信開始要求S15を行った後、所定のタイムアウト時間内に通信元の端末装置400から通信開始受諾確認S16が送信されてこなかったときに、PIPを用いた通信開始要求S15に失敗したと判断する方法を採ることができる。
あるいは、PIPを用いた通信開始要求S15を行っても失敗することが予め予想される場合には、実際にPIPを用いた通信開始要求S15を行う前に、PIPを用いた通信開始要求S15を断念して、GIPを用いた通信開始要求S15′を行うようにしてもよい。PIPを用いた通信開始要求S15の失敗予想は、通信開始要求S15を行うために用いるPIPが、自己が接続されているサブネットに割り当てられているプライベートアドレスの範囲内に入っているか否かを調べることにより行うことができる。すなわち、通信開始要求S15を行うために用いるPIPが、サブネットのアドレス範囲外であれば、実際にPIPを用いた通信開始要求S15を行う前に失敗を予想することができる。
たとえば、図21に示す第1の実施形態に係る各端末装置200A~200Dを、それぞれ第2の実施形態に係る端末装置400A~400Dに置き換え、第1の実施形態に係る接続仲介装置100を、第2の実施形態に係る接続仲介装置300に置き換えた例を考えた場合(置き換えた符号を図21では括弧書きで示してある)、接続仲介装置300内には、図24(b) に示すようなアドレステーブルT62が格納されることになる。
この場合、端末装置400Bを通信元として、端末装置400Cを通信先とする接続仲介依頼S12がなされたとすると、通信元アドレス送信部330は、通信元端末装置400BのグローバルIPアドレス「xx.5.1.1(P2)」(ポート番号付きのアドレス)とプライベートIPアドレス「192.168.2.2」との両アドレスを通信元アドレスとして、通信先端末装置400Cに送信する。
このような両アドレスの送信を受けた通信先端末装置400Cの通信開始要求部440は、まず、プライベートIPアドレス「192.168.2.2」を用いて、通信元端末装置400Bに対する通信開始要求S15をトライする。しかしながら、図21に示すとおり、通信先端末装置400Cは、ルータRBによって構築されたサブネットに接続されており、当該サブネットで用いられるプライベートIPアドレスは、「192.168.10.0/24」で示される範囲内のものであるので、この範囲外のプライベートIPアドレス「192.168.2.2」を用いた通信開始要求S15は失敗する。当該失敗は、通信開始要求S15を行った後、所定のタイムアウト時間内に通信元の端末装置400Bから通信開始受諾確認S16が送信されてこないことにより認識できる。
あるいは、実際に通信開始要求S15を行う前に、失敗を予測することもできる。すなわち、上例の場合、通信開始要求S15を行うために用いるPIP「192.168.2.2」は、通信先端末装置400Cが所属するサブネットのプライベートアドレス「192.168.10.0/24」の範囲外であるので、実際にPIPを用いた通信開始要求S15を行う前に失敗を予想することができる。
こうして、プライベートIPアドレス「192.168.2.2」を用いた通信開始要求S15に失敗したと判断される場合もしくは失敗が予想される場合には、通信先端末装置400Cの通信開始要求部440は、グローバルIPアドレス「xx.5.1.1(P2)」(ポート番号付きのアドレス)を用いて、通信元端末装置400Bに対する通信開始要求S15′を行う。当該通信開始要求S15′は、ルータRB、ネットワークN、ルータRAを通って通信元端末装置200Bに届くことになる。かくして、端末装置400B-400C間において、ネットワークNを介した通信が行われる。
なお、図21に示す例の場合、ルータRAが構築するサブネットのアドレス範囲「192.168.2.0/24」とルータRBが構築するサブネットのアドレス範囲「192.168.10.0/24」とが異なるため、上述したとおり、通信先端末装置400Cから通信元端末装置400Bに向けて、PIP「192.168.2.2」を用いた通信開始要求S15を行っても失敗することが事前に予想できる。しかしながら、場合によっては、ルータRAとルータRBが構築するサブネットのアドレス範囲が同一のケースもあり得る。たとえば、図21に示す例において、ルータRBが構築するサブネットのアドレス範囲が「192.168.2.0/24」になっており、通信先端末装置200Cに付与されたPIPが「192.168.2.8」であったとすると、当該PIPを用いた通信開始要求S15の失敗は事前に予想できない。
すなわち、上例の場合、通信元端末装置400BのPIP「192.168.2.2」は、通信先端末装置400Cが所属するサブネットのアドレス範囲「192.168.2.0/24」内のものであるから、PIP「192.168.2.2」に宛てた通信開始要求S15は、同一サブネット宛の有効な通信とみなされ、事前に失敗予想を行うことはできない。ここで、ルータRBによって構築されたサブネット内に、PIP「192.168.2.2」が付与された端末装置が存在しなければ、上記通信開始要求S15は失敗することになり、通信先端末装置400Cによって事後に失敗が認識される。
一方、上例の場合において、ルータRBによって構築されたサブネット内に、たまたまPIP「192.168.2.2」が付与された端末装置(正規の相手方である通信先端末装置400Bとは全く別の端末装置)が存在すると、上記通信開始要求S15は当該別の端末装置に届くことになる。しかしながら、上記通信開始要求S15に、正規の相手方の端末IDとして通信元端末装置400Bの端末ID「0020」を含ませておき、通信元セッション確立部430に、通信開始要求S15を受信した場合にこの端末IDを確認して、自分が正規の相手方であるか否かを判断する機能を設けておけば、上記別の端末装置は、自分が正規の相手方ではない旨を認識できるので、通信開始受諾確認S16の返信を行わない措置をとることができる。したがって、このような場合も、やはり上記通信開始要求S15は失敗することになり、通信先端末装置400Cによって事後に失敗が認識される。
次に、端末装置400Bを通信元として、端末装置400Aを通信先とする接続仲介依頼S12がなされた場合を考える。この場合、通信元アドレス送信部330は、通信元端末装置400BのグローバルIPアドレス「xx.5.1.1(P2)」(ポート番号付きのアドレス)とプライベートIPアドレス「192.168.2.2」との両アドレスを通信元アドレスとして、通信先端末装置400Aに送信する。
このような両アドレスの送信を受けた通信先端末装置400Aの通信開始要求部440は、まず、プライベートIPアドレス「192.168.2.2」を用いて、通信元端末装置400Bに対する通信開始要求S15をトライする。図21に示すとおり、通信元端末装置400Bと通信先端末装置400Aとは、ルータRAによって構築された同一のサブネットに所属しているため、プライベートIPアドレス「192.168.2.2」を用いた通信開始要求S15は、このサブネットを通って通信元端末装置400Bに無事に届く。かくして、端末装置400A-400B間において、ネットワークNを介さずに、同一サブネット内での通信が行われる。
図30は、実施例6についての装置間信号の流れを示すダイアグラムである。このダイアグラムの形式は、図26に示すダイアグラムの形式と同様である。まず、準備段階の処理として、通信元端末装置400Xから接続仲介装置300に対して自己アドレス通知S0Xが行われ、GIPとPIPの両方が通知される。同様に、通信先端末装置400Yから接続仲介装置300に対して自己アドレス通知S0Yが行われ、GIPとPIPの両方が通知される。この準備段階の処理は、図26に示すダイアグラムの準備段階の処理と全く同じであり、この準備段階により、接続仲介装置300内のアドレステーブルには、両端末装置400X,400YのGIPとPIPの両方が格納されることになる。なお、図21の端末装置400Dのように、ルータを介さずにネットワークNに直接接続されている端末装置については、GIPのみがアドレステーブルに格納されるが、以下、図30のダイアグラムでは、両端末装置400X,400Yについて、GIPとPIPの両方が格納されている場合を基本とした説明を行う。
ここでは、続く通信段階において、端末装置400Xに対して、端末装置400Yを通信先とする通信要求S11がなされたものとしよう。これにより、端末装置400Xを通信元とし、端末装置400Yを通信先とする通信を行うための手順が開始される。まず、通信元端末装置400Xから接続仲介装置300に対して、通信先端末装置400Yの端末IDを含む接続仲介依頼S12がなされる。この接続仲介依頼S12を受けた接続仲介装置300は、アドレステーブルを参照する処理S13を行い、通信先端末装置400Yの所在アドレスを通信先アドレスとして把握し、通信元端末装置400Xの所在アドレスを通信元アドレスとして把握する。
アドレステーブルに格納されている通信元端末装置400Xの所在アドレスには、GIPとPIPが含まれている。そこで、接続仲介装置300内の通信元アドレス送信部330は、GIPおよびPIPの両方を通信元アドレスとして、これを通信先端末装置400Yに通知する通信元アドレス返信S14を行う(もちろん、アドレステーブルにGIPのみしか含まれていない端末装置については、GIPのみを送信する)。この通信元アドレス送信S14には、通信元端末装置400XのGIPとPIPの両方のアドレスが通信元アドレスとして含まれている。このように、実施例6では、接続仲介装置300は、GIP/PIPの選択を行わない。
こうして、GIPおよびPIPの両方を含む通信先アドレスの返信を受けた通信先端末装置400Y内の通信開始要求部440は、まず、PIPを用いた通信開始要求S15にトライする。図には、実際にPIPを用いた通信開始要求S15が行われた例が示されている。
この通信開始要求S15を受けた通信元端末装置400X内の通信元セッション確立部430は、通信先端末装置400Yに対して、同じくPIPを用いて通信開始受諾確認S16を行う。このようにして、通信開始要求S15に成功すると、通信開始受諾確認S16が返信されることになる。この場合、ダイアグラムの「成功?」の分岐ブロックから「YES」の分岐に従って一番下へとジャンプし、端末装置400X-400Y間における通信S17が、PIPを用いて行われることになり、ネットワークNを介さずに、同一サブネット内での通信が行われる。
一方、PIPを用いた通信開始要求S15にトライした結果、この通信開始要求S15に失敗したと判断される場合には、ダイアグラムの通信開始要求S15および通信開始受諾確認S16が正常に行われないことになる。この場合、ダイアグラムの「成功?」の分岐ブロックから「NO」の分岐に従って、GIPを用いた通信開始要求S15′が行われる。この通信開始要求S15′を受けた通信元端末装置200X内の通信先セッション確立部460は、通信先端末装置400Yに対して、同じくGIPを用いて通信開始受諾確認S16′を行う。これにより、ダイアグラムの一番下に示すとおり、端末装置400X-400Y間における通信S17が、GIPを用いて行われることになり、ネットワークNを介した通信が行われる。
以上、図30のダイアグラムでは、接続仲介装置300からGIPとPIPの両アドレスの送信を受けた場合の手順を示したが、接続仲介装置300からGIPのみの送信を受けた場合には、当然ながら、PIPを用いた通信開始要求S15をトライする代わりに、最初からGIPを用いた通信開始要求S15′を行うことになる。
<8-3. 多層ルータへの対処>
§8-1で述べた実施例5や、§8-2で述べた実施例6は、PIP失敗時にGIPでトライするアプローチを採用するものであるが、ここでは、このようなアプローチの利点として、多層ルータへの対処が可能になる点を説明しておく。
図21には、ルータRAを介してネットワークNに接続された端末装置200A,200B、ルータRBを介してネットワークNに接続された端末装置200C、ルータを介さずに直接ネットワークNに接続された端末装置200D、という4台の端末装置を有するネットワーク通信システムの例を示した。この例の場合、2台のルータRA,RBは、並列的に設けられており、それぞれ独立した別個のサブネットを構築している。これに対して、複数のルータが多層構造をもって設置される場合もある。
図31は、多層構造をもって設置されたルータを介してネットワークNに接続されている端末装置を含むネットワーク通信システムの全体構成を示すブロック図である。この図31には、2台のルータRA,RCと、4台の端末装置200A,200B,200D,200Eとが、ネットワークNに接続された状態が示されている。ただ、2台のルータRA,RCは、並列的ではなく、階層構造をもって設定されている。すなわち、ルータRCは、ルータRAによって構築されたサブネットの下位階層に設置されている。
要するに、この図31に示すシステムは、図21に示すシステムにおいて、ルータRBおよび端末装置200Cの部分の枝を、そっくり切り取ってルータRAの配下に移動させ、それぞれルータRCおよび端末装置200Eと命名したものに相当する。したがって、図31におけるルータRA,端末装置200A,200B,200Dは、いずれも図21に示す同符号の構成要素と全く同じものである。
一方、図31に示すルータRCは、ルータRAによって構築されたサブネットに接続されており、このルータRAのサブネット上において「192.168.2.3」なるプライベートIPアドレス(PIP)が付与されている。また、ルータRCは、「192.168.10.0/24」で示されるプライベートIPアドレスが付与された別なサブネットを構築しており、端末ID「0050」が与えられた端末装置200Eは、このルータRCのサブネットに接続されている。図示のとおり、このルータRCのサブネット内において、端末装置200Eに対しては、PIP5=「192.168.10.1」なるプライベートIPアドレスが付与されている。ただ、この端末装置200Eは、ネットワークNに対しては、最終的にルータRAを介して接続されているため、所在アドレスAD5として「xx.5.1.1(P5)」なるポート番号付きのグローバルIPアドレスも付与されることになる。
この図31に示す例のように、多層構造をもって設置されたルータを含むシステムに本発明を適用する場合、§8-1で述べた実施例5や、§8-2で述べた実施例6を採用するのが好ましい。これは、多層構造をもって設置されたルータを含む複雑なシステムの場合、PIP失敗時にGIPでトライするアプローチが効果的になるためである。以下にその理由を説明する。
この図31に示すシステムの場合も、各端末装置200A,200B,200D,200Eから接続仲介装置100に対して、自己アドレス通知がなされる。ルータRAやRCを介してネットワークNに接続されている端末装置200A,200B,200Eについては、グローバルIPアドレス(GIP)とともにプライベートIPアドレス(PIP)も通知される。
図32は、図31に示すネットワーク通信システムにおいて、各端末装置のグローバルIPアドレス(GIP)とプライベートIPアドレス(PIP)の双方をアドレステーブルに格納した例を示す図である。図32(a) に示すアドレステーブルT71は、各アドレスを符号で表したものであり、端末ID「0010」,「0020」,「0050」,「0040」(図31に示す各端末装置のID)に対応させて、グローバルIPアドレスGIP1,GIP2,GIP5,GIP4と、ポート番号P1,P2,P5と、プライベートIPアドレスPIP1,PIP2,PIP5と、がそれぞれ格納されている。なお、端末ID「0040」をもつ端末装置200Dは、ルータを介さずにネットワークNに直接接続されているため、ポート番号およびPIPの情報はない。
図32(b) に示すアドレステーブルT72は、図32(a) に示すアドレステーブルT71における各アドレスを具体的な数値例で表したものであり、端末ID「0010」,「0020」,「0050」,「0040」に対応させて、グローバルIPアドレス「xx.5.1.1」,「xx.5.1.1」,「xx.5.1.1」,「xx.5.8.100」と、ポート番号「54701」,「54702」,「54703」と、プライベートIPアドレス「192.168.2.1」,「192.168.2.2」,「192.168.10.1」と、がそれぞれ格納されている。ここで、端末装置200E(端末ID「0050」)の欄をみると、PIPとしては「192.168.10.1」というルータRCのサブネットアドレスが格納されているものの、GIPとしては「xx.5.1.1」というルータRAのグローバルIPアドレスが格納されていることがわかる。すなわち、3台の端末装置200A,200B,200Eは、GIPに関しては同一のIPアドレスを有している。
いま、図31において、前述した実施例1,3,5を前提として、端末装置200Aを通信元、端末装置200Eを通信先とする通信を開始する場合を考えてみよう。この場合、通信元端末装置200Aから通信先端末装置200Eに対して、通信開始要求S5を行うことになるが、この通信開始要求S5を通信先端末装置200EのPIPを用いて行った場合、これまでの説明とは異なる事態が発生するため、実施例によっては通信に障害が生じることがある。
たとえば、実施例1の場合、接続仲介装置100がGIP/PIPの選択を行うアプローチが採用されるが、図32(b) に示すアドレステーブルT72を参照すると、通信元端末装置200A(端末ID「0010」)のGIPと通信先端末装置200E(端末ID「0050」)のGIPは、いずれも「xx.5.1.1」であり、両者は同一である。したがって、接続仲介装置100は、通信元端末装置200Aに対して、通信先端末装置200EのPIP5「192.168.10.1」を選択通信先アドレスとして返信する。これは、接続仲介装置100が、「通信元と通信先とが同一のサブネットに所属する端末装置であるから、PIPによる相互通信を行うのが好ましい」と判断したためである。
しかしながら、実際には、図31に示すとおり、通信元はルータRAのサブネットに所属するのに対して、通信先はルータRCのサブネットに所属しており、両者は同一のサブネットに所属する端末装置ではない。このため、通信元端末装置200Aが、通信先端末装置200Eに対して、PIP5「192.168.10.1」を用いて通信開始要求S5を行うと失敗することになる。前述した実施例1は、このような失敗を想定していないため、図31に示すシステムに実施例1を適用した場合は通信障害が生じる。説明は省略するが、このような通信障害は、図31に示すシステムに実施例2を適用した場合にも生じる(端末装置200Eを通信元、端末装置200Aを通信先とする通信に障害が生じる)。
一方、実施例3の場合、端末装置200がGIP/PIPの選択を行うアプローチが採用され、通信元端末装置200Aには、通信先端末装置200EのGIPとPIPの両方が返信される。上例の場合、通信元端末装置200Aには、通信先アドレスとして、通信先端末装置200EのGIP5「xx.5.1.1(P5)」とPIP5「192.168.10.1」の両方が返信されてくる。そこで、通信元端末装置200Aは、返信されてきたGIP5「xx.5.1.1(P5)」と自己のGIP「xx.5.1.1(P1)」とが同一のIPアドレスであるため、通信先端末装置200Eに対して、PIP5「192.168.10.1」を用いて通信開始要求S5を行うことになり、当該通信開始要求S5は失敗することになる。前述した実施例3は、このような失敗を想定していないため、図31に示すシステムに実施例3を適用した場合は通信障害が生じる。説明は省略するが、このような通信障害は、図31に示すシステムに実施例4を適用した場合にも生じる(端末装置200Eを通信元、端末装置200Aを通信先とする通信に障害が生じる)。
これに対して、実施例5の場合、もともと、PIP失敗時にGIPでトライするアプローチを採用するものであるから、図31に示すシステムに適用した場合にも通信に障害が生じることはない。すなわち、上例の場合、通信元端末装置200Aには、通信先アドレスとして、通信先端末装置200EのGIP5「xx.5.1.1(P5)」とPIP5「192.168.10.1」の両方が返信されてくる。通信元端末装置200Aは、まず、通信先端末装置200Eに対して、PIP5「192.168.10.1」を用いて通信開始要求S5を行うが、上述したとおり、当該通信開始要求S5は失敗する。そこで、今度は、通信先端末装置200Eに対して、GIP5「xx.5.1.1(P5)」を用いて通信開始要求S5′を行う。通常(ルータRAに出戻りを拒絶する設定がなされていない場合)、GIP5を用いた通信開始要求S5′は成功することになり、通信障害を防ぐことができる。説明は省略するが、図31に示すシステムに実施例6を適用した場合も、同様の理由で通信障害を防ぐことができる(端末装置200Eを通信元、端末装置200Aを通信先とする通信に障害は生じない)。
このように、§8-1で述べた実施例5や、§8-2で述べた実施例6は、PIP失敗時にGIPでトライするアプローチを採用しているため、図31に示すような多層ルータを含むシステムについても対処が可能になる。
<8-4. 実施例3,4への失敗時のアプローチ追加>
上述した§8-3では、図31に示すような多層ルータを含むシステムについて、実施例3,4(端末装置がGIP/PIPの選択を行う行うアプローチを採るもの)を適用した場合、通信障害が生じるケースがあることを述べた。このような通信障害は、実施例3,4に、「PIP失敗時にGIPでトライするアプローチ」を追加することにより回避することができる。
すなわち、実施例3では、通信元端末装置にGIP/PIPの両アドレスが返信され、当該通信元端末装置の判断において、いずれか一方を選択して、通信先端末装置に対する通信開始要求S5を行うことになる。ここで、通信元端末装置がPIPを選択して、PIPを用いた通信開始要求S5に失敗したと判断される場合もしくは失敗が予想される場合には、GIP用いた通信開始要求S5′を行うようにすればよい。
同様に、実施例4では、通信先端末装置にGIP/PIPの両アドレスが送信され、当該通信先端末装置の判断において、いずれか一方を選択して、通信元端末装置に対する通信開始要求S15を行うことになる。ここで、通信先端末装置がPIPを選択して、PIPを用いた通信開始要求S15に失敗したと判断される場合もしくは失敗が予想される場合には、GIP用いた通信開始要求S15′を行うようにすればよい。
このように、実施例3,4に対して、「PIPを用いた通信開始要求に失敗したときにはGIP用いた通信開始要求を行う」という失敗時のアプローチを追加することにより、§8-3で述べた通信障害の問題を解決することができる。
<<< §9. プライベートIPアドレスの照会を行う変形例 >>>
最後に、プライベートIPアドレスをアドレステーブルに格納する代わりに、接続仲介装置から照会を行う変形例を述べる。これまで§6~§8において述べてきた実施例1~6では、準備段階として各端末装置から接続仲介装置に対して自発的に自己アドレスを通知する際に、PIPが付与されている端末装置についてはGIPとともにPIPを通知し、アドレステーブルに格納しておくことが前提であった。このような前提では、図24や図32に示す例のように、PIPが付与されている端末装置については、準備段階においてアドレステーブルにGIPとPIPの両方が格納されることになり、接続仲介装置は、通信段階で必要なときに、このアドレステーブルを参照することにより、各端末装置のGIPとPIPの両方を認識することができる。
ここで述べる変形例は、実施例1~6において、準備段階として各端末装置から接続仲介装置に対して自発的に自己アドレスを通知する際には、GIPのみを通知し、アドレステーブルにGIPのみを格納しておくようにする。そして、接続仲介装置は、通信段階で必要なときに、各端末装置に対してPIPを照会し、その回答を得ることにより必要なPIPを認識する、という方法を採用する。
要するに、これまで述べてきた実施例1~6と、ここで述べるその変形例との相違点は、前者では、準備段階で自発的に通知されたGIP/PIPをアドレステーブルに記録しておき、接続仲介装置が、通信段階でこのアドレステーブルを参照することによりGIPとPIPの双方を認識して利用できるようにしているのに対して、後者では、準備段階で自発的に通知するのはGIPのみとし、アドレステーブルにはGIPのみを記録しておき、接続仲介装置が、通信段階でPIPが必要になった場合には、その都度、端末装置に対する照会を行ってPIPを認識して利用する、という点である。
具体的には、実施例1,3,5(先願基本発明の第1の実施形態を基礎とした実施例)については、次の2点を変更することにより、ここで述べる変形例を適用することができる。
第1の変更点は、端末装置200の自己アドレス通知部250に、自己の所在アドレスとして、ネットワーク上のグローバルIPアドレス(GIP)を接続仲介装置100に対して自発的に通知する自発通知機能と、接続仲介装置100から照会を受けたときに、ネットワークNへの接続に用いられているルータから付与されたプライベートIPアドレス(PIP)を回答する回答通知機能と、をもたせるようにする点である。上記自発通知機能は、§1で述べた先願基本発明の第1の実施形態の自己アドレス通知部250に備わっている機能であるから、ここで述べる変形例を実施する際には、この先願基本発明の第1の実施形態の自己アドレス通知部250に、上記回答通知機能を追加すればよい。アドレステーブル格納部110には、所在アドレスとして、自発通知機能によって通知された各端末装置のグローバルIPアドレス(GIP)およびポート番号を端末IDに対応づけて格納しておけばよい。
第2の変更点は、接続仲介装置100の通信先アドレス返信部130が、アドレステーブルの参照によって必要と判断される場合には、通信先となる端末装置に対してプライベートIPアドレス(PIP)の照会を行い、グローバルIPアドレス(GIP)もしくは上記照会によって得られたプライベートIPアドレス(PIP)、またはその両方を通信先アドレスとして、通信元の端末装置に返信するようにする点である。これまで述べた実施例1,3,5では、アドレステーブルを参照することによりPIPを得ていたが、この変形例では、必要なときに、端末装置に対して照会を行うことにより、PIPを得ることになる。
実際には、図4に示す例の場合、接続仲介装置100の通信先アドレス返信部130は、アドレステーブルを参照して、通信元となる端末装置200AのグローバルIPアドレスと通信先となる端末装置200BのグローバルIPアドレスとが同一のIPアドレスである場合に、通信先となる端末装置200Bに対してプライベートIPアドレスの照会を行えばよい。これは、両者のグローバルIPアドレスが同一の場合は、基本的には、両者が同じサブネットに所属していると判断でき、PIPを用いた通信開始要求が可能と判断できるためである(もちろん、図31に示す例のように、多層ルータが設けられている場合は例外になる)。逆言すれば、両者のグローバルIPアドレスが異なる場合は、PIPを用いた通信開始要求はできないので、PIPアドレスは不要であり、照会の必要はないことになる。
もちろん、この変形例においても、通信元端末装置の通信開始要求部240が、グローバルIPアドレス(GIP)もしくはプライベートIPアドレス(PIP)、またはその両方を用いて通信開始要求S5を行う点に変わりはない。たとえば、図4に示す例の場合、通信開始要求部240Aは、通信元となる端末装置200AのグローバルIPアドレスと通信先となる端末装置200BのグローバルIPアドレスとが同一の場合には、プライベートIPアドレスを用いて通信開始要求S5を行い、異なる場合には、グローバルIPアドレスを用いて通信開始要求S5を行うことになる。
一方、実施例2,4,6(先願基本発明の第2の実施形態を基礎とした実施例)については、次の2点を変更することにより、ここで述べる変形例を適用することができる。
第1の変更点は、端末装置400の自己アドレス通知部450に、自己の所在アドレスとして、ネットワーク上のグローバルIPアドレス(GIP)を接続仲介装置300に対して自発的に通知する自発通知機能と、接続仲介装置300から照会を受けたときに、ネットワークNへの接続に用いられているルータから付与されたプライベートIPアドレス(PIP)を回答する回答通知機能と、をもたせるようにする点である。上記自発通知機能は、§2で述べた先願基本発明の第2の実施形態の自己アドレス通知部450に備わっている機能であるから、ここで述べる変形例を実施する際には、この先願基本発明の第2の実施形態の自己アドレス通知部450に、上記回答通知機能を追加すればよい。アドレステーブル格納部310には、所在アドレスとして、自発通知機能によって通知された各端末装置のグローバルIPアドレス(GIP)およびポート番号を端末IDに対応づけて格納しておけばよい。
第2の変更点は、接続仲介装置300の通信元アドレス送信部330が、アドレステーブルの参照によって必要と判断される場合には、通信元となる端末装置に対してプライベートIPアドレス(PIP)の照会を行い、グローバルIPアドレス(GIP)もしくは上記照会によって得られたプライベートIPアドレス(PIP)、またはその両方を通信元アドレスとして、通信先の端末装置に送信するようにする点である。これまで述べた実施例2,4,6では、アドレステーブルを参照することによりPIPを得ていたが、この変形例では、必要なときに、端末装置に対して照会を行うことにより、PIPを得ることになる。
実際には、図8に示す例の場合、接続仲介装置300の通信元アドレス送信部330は、アドレステーブルを参照して、通信元となる端末装置400BのグローバルIPアドレスと通信先となる端末装置400AのグローバルIPアドレスとが同一のIPアドレスである場合に、通信元となる端末装置400Bに対してプライベートIPアドレスの照会を行えばよい。これは、両者のグローバルIPアドレスが同一の場合は、基本的には、両者が同じサブネットに所属していると判断でき、PIPを用いた通信開始要求が可能と判断できるためである(もちろん、図31に示す例のように、多層ルータが設けられている場合は例外になる)。逆言すれば、両者のグローバルIPアドレスが異なる場合は、PIPを用いた通信開始要求はできないので、PIPアドレスは不要であり、照会の必要はないことになる。
もちろん、この変形例においても、通信先端末装置の通信開始要求部440が、グローバルIPアドレス(GIP)もしくはプライベートIPアドレス(PIP)、またはその両方を用いて通信開始要求S15を行う点に変わりはない。たとえば、図8に示す例の場合、通信開始要求部440Aは、通信元となる端末装置400BのグローバルIPアドレスと通信先となる端末装置400AのグローバルIPアドレスとが同一の場合には、プライベートIPアドレスを用いて通信開始要求S15を行い、異なる場合には、グローバルIPアドレスを用いて通信開始要求S15を行うことになる。
以下、実施例1~実施例6の変形例について、それぞれ図33~図38のダイアグラムを用いながら、具体的な装置間信号の流れを説明する。以下に述べる変形例では、準備段階でPIPを通知する必要はないので、図33~図38のダイアグラムの準備段階における自己アドレス通知S0X,S0Yでは、GIPのみが通知されている。もちろん、これら実施例1~6の変形例についても、§3や§4で述べた各種変形例を適用することが可能である。
<9-1. 実施例1の変形例>
図33は、図25に示す実施例1において、PIPをその都度照会する形態を採用した変形例についての装置間信号の流れを示すダイアグラムである。図25に示すダイアグラムと図33に示すダイアグラムとの通信段階の違いは、前者における「アドレステーブル参照(S3)アドレス選択」のブロックが、後者では、「照会?」の分岐ブロックおよびPIP照会(S3a)/PIP回答(S3b)の装置間信号に置き換わった点のみである。そこで、以下、この相違点についてのみ説明を行う。
まず、図33に示すダイアグラムにおける「照会?」の分岐ブロックでは、通信先アドレス返信部130が、アドレステーブルを参照して、接続仲介依頼S2を送信した通信元の端末装置200Xの端末IDに対応づけられているグローバルIPアドレス(GIP)と、接続仲介依頼S2に含まれている通信先特定情報によって特定される端末ID(通信先の端末装置200Yの端末ID)に対応づけられているグローバルIPアドレス(GIP)と、が同一のIPアドレスであるか否かを判断し、判断対象となる両者が異なるIPアドレスである場合には、照会不要と判断する。この場合、ダイアグラムの「照会?」の分岐ブロックから「NO」の分岐に従ってジャンプし、グローバルIPアドレス(GIP)を選択通信先アドレスとして通信元端末装置Xに返信する通信先アドレス返信S4を実行する。
一方、上記判断対象となる両者が同一のIPアドレスである場合には、ダイアグラムの「照会?」の分岐ブロックから「YES」の分岐に従って、通信先となる端末装置200Yに対してプライベートIPアドレスを問い合わせるPIP照会S3aを行い、これに応じたPIP回答S3bを得る。そして、この照会によって得られたプライベートIPアドレス(PIP)を選択通信先アドレスとして通信元端末装置Xに返信する通信先アドレス返信S4を実行する。
この後、通信元端末装置Xの通信開始要求部240が、返信されてきた選択通信先アドレスを用いて通信開始要求S5を行う点は、実施例1と変わりない。
<9-2. 実施例2の変形例>
図34は、図26に示す実施例2において、PIPをその都度照会する形態を採用した変形例についての装置間信号の流れを示すダイアグラムである。図26に示すダイアグラムと図34に示すダイアグラムとの通信段階の違いは、前者における「アドレステーブル参照(S13)アドレス選択」のブロックが、後者では、「照会?」の分岐ブロックおよびPIP照会(S13a)/PIP回答(S13b)の装置間信号に置き換わった点のみである。そこで、以下、この相違点についてのみ説明を行う。
まず、図34に示すダイアグラムにおける「照会?」の分岐ブロックでは、通信元アドレス送信部330が、アドレステーブルを参照して、接続仲介依頼S12を送信した通信元の端末装置400Xの端末IDに対応づけられているグローバルIPアドレス(GIP)と、接続仲介依頼S12に含まれている通信先特定情報によって特定される端末ID(通信先の端末装置400Yの端末ID)に対応づけられているグローバルIPアドレス(GIP)と、が同一のIPアドレスであるか否かを判断し、判断対象となる両者が異なるIPアドレスである場合には、照会不要と判断する。この場合、ダイアグラムの「照会?」の分岐ブロックから「NO」の分岐に従ってジャンプし、グローバルIPアドレス(GIP)を選択通信元アドレスとして通信先端末装置Yに送信する通信元アドレス送信S14を実行する。
一方、上記判断対象となる両者が同一のIPアドレスである場合には、ダイアグラムの「照会?」の分岐ブロックから「YES」の分岐に従って、通信元となる端末装置400Xに対してプライベートIPアドレスを問い合わせるPIP照会S13aを行い、これに応じたPIP回答S13bを得る。そして、この照会によって得られたプライベートIPアドレス(PIP)を選択通信元アドレスとして通信先端末装置Yに返信する通信先アドレス返信S14を実行する。
この後、通信先端末装置Yの通信開始要求部440が、送信されてきた選択通信元アドレスを用いて通信開始要求S15を行う点は、実施例1と変わりない。
<9-3. 実施例3の変形例>
図35は、図27に示す実施例3において、PIPをその都度照会する形態を採用した変形例についての装置間信号の流れを示すダイアグラムである。図27に示すダイアグラムと図35に示すダイアグラムとの通信段階の違いは、前者における「アドレステーブル参照(S3)」のブロックが、後者では、「照会?」の分岐ブロックおよびPIP照会(S3a)/PIP回答(S3b)の装置間信号に置き換わった点のみである。そこで、以下、この相違点についてのみ説明を行う。
まず、図35に示すダイアグラムにおける「照会?」の分岐ブロックでは、通信先アドレス返信部130が、アドレステーブルを参照して、接続仲介依頼S2を送信した通信元の端末装置200Xの端末IDに対応づけられているグローバルIPアドレス(GIP)と、接続仲介依頼S2に含まれている通信先特定情報によって特定される端末ID(通信先の端末装置200Yの端末ID)に対応づけられているグローバルIPアドレス(GIP)と、が同一のIPアドレスであるか否かを判断し、判断対象となる両者が異なるIPアドレスである場合には、照会不要と判断する。この場合、ダイアグラムの「照会?」の分岐ブロックから「NO」の分岐に従ってジャンプし、グローバルIPアドレス(GIP)のみを通信先アドレスとして通信元端末装置Xに返信する通信先アドレス返信S4を実行する。
一方、上記判断対象となる両者が同一のIPアドレスである場合には、ダイアグラムの「照会?」の分岐ブロックから「YES」の分岐に従って、通信先となる端末装置200Yに対してプライベートIPアドレスを問い合わせるPIP照会S3aを行い、これに応じたPIP回答S3bを得る。そして、アドレステーブルに格納されていた通信先端末装置200YのグローバルIPアドレス(GIP)と、照会によって得られたプライベートIPアドレス(PIP)と、の両アドレスを、通信先アドレスとして通信元端末装置Xに返信する通信先アドレス返信S4を実行する。
この後、通信元端末装置Xの通信開始要求部240は、グローバルIPアドレス(GIP)のみの返信があった場合には、返信されてきたグローバルIPアドレス(GIP)を用いて通信開始要求S5を行い、両アドレスの返信があった場合には、返信されてきたプライベートIPアドレス(PIP)を用いて通信開始要求S5を行えばよい。なお、実施例3では、端末装置が、送信元のGIPと送信先のGIPが同一か否かを調べることによってGIP/PIPの選択判断を行うことになっているが、この変形例では、実質的に接続仲介装置において当該選択判断が行われているので(照会するか否かの判断において、GIPの同一性が調べられている)、端末装置において改めてGIPの同一性を調べてGIP/PIPの選択判断を行う必要はない。
また、§8-4で述べたように、実施例3に「PIP失敗時にGIPでトライするアプローチ」を追加する運用を行う際には、通信元端末装置Xの通信開始要求部240が、プライベートIPアドレス(PIP)を用いた通信開始要求S5に失敗したと判断される場合もしくは失敗が予想される場合に、グローバルIPアドレス(GIP)を用いた通信開始要求S5′を行うようにすればよい。
この場合、通信開始要求部240は、プライベートIPアドレス(PIP)を用いて通信開始要求S5を行った後、所定のタイムアウト時間内に通信先の端末装置200Yから通信開始受諾確認S6が送信されてこなかったときに、通信開始要求S5に失敗したと判断することができる。
<9-4. 実施例4の変形例>
図36は、図28に示す実施例4において、PIPをその都度照会する形態を採用した変形例についての装置間信号の流れを示すダイアグラムである。図28に示すダイアグラムと図36に示すダイアグラムとの通信段階の違いは、前者における「アドレステーブル参照(S13)」のブロックが、後者では、「照会?」の分岐ブロックおよびPIP照会(S13a)/PIP回答(S13b)の装置間信号に置き換わった点のみである。そこで、以下、この相違点についてのみ説明を行う。
まず、図36に示すダイアグラムにおける「照会?」の分岐ブロックでは、通信元アドレス送信部330が、アドレステーブルを参照して、接続仲介依頼S12を送信した通信元の端末装置400Xの端末IDに対応づけられているグローバルIPアドレス(GIP)と、接続仲介依頼S12に含まれている通信先特定情報によって特定される端末ID(通信先の端末装置400Yの端末ID)に対応づけられているグローバルIPアドレス(GIP)と、が同一のIPアドレスであるか否かを判断し、判断対象となる両者が異なるIPアドレスである場合には、照会不要と判断する。この場合、ダイアグラムの「照会?」の分岐ブロックから「NO」の分岐に従ってジャンプし、グローバルIPアドレス(GIP)のみを通信元アドレスとして通信先端末装置Yに送信する通信元アドレス送信S14を実行する。
一方、上記判断対象となる両者が同一のIPアドレスである場合には、ダイアグラムの「照会?」の分岐ブロックから「YES」の分岐に従って、通信元となる端末装置400Xに対してプライベートIPアドレスを問い合わせるPIP照会S13aを行い、これに応じたPIP回答S13bを得る。そして、アドレステーブルに格納されていた通信元端末装置400XのグローバルIPアドレス(GIP)と、照会によって得られたプライベートIPアドレス(PIP)と、の両アドレスを、通信元アドレスとして通信先端末装置Yに送信する通信元アドレス送信S14を実行する。
この後、通信先端末装置Yの通信開始要求部440は、グローバルIPアドレス(GIP)のみの送信があった場合には、送信されてきたグローバルIPアドレス(GIP)を用いて通信開始要求S15を行い、両アドレスの送信があった場合には、送信されてきたプライベートIPアドレス(PIP)を用いて通信開始要求S15を行えばよい。なお、実施例4では、端末装置が、送信元のGIPと送信先のGIPが同一か否かを調べることによってGIP/PIPの選択判断を行うことになっているが、この変形例では、実質的に接続仲介装置において当該選択判断が行われているので(照会するか否かの判断において、GIPの同一性が調べられている)、端末装置において改めてGIPの同一性を調べてGIP/PIPの選択判断を行う必要はない。
また、§8-4で述べたように、実施例4に「PIP失敗時にGIPでトライするアプローチ」を追加する運用を行う際には、通信先端末装置Yの通信開始要求部440が、プライベートIPアドレス(PIP)を用いた通信開始要求S15に失敗したと判断される場合もしくは失敗が予想される場合に、グローバルIPアドレス(GIP)を用いた通信開始要求S15′を行うようにすればよい。
この場合、通信開始要求部440は、プライベートIPアドレス(PIP)を用いて通信開始要求S15を行った後、所定のタイムアウト時間内に通信元の端末装置400Xから通信開始受諾確認S16が送信されてこなかったときに、通信開始要求S15に失敗したと判断することができる。
<9-5. 実施例5の変形例>
図37は、図29に示す実施例5において、PIPをその都度照会する形態を採用した変形例についての装置間信号の流れを示すダイアグラムである。図29に示すダイアグラムと図37に示すダイアグラムとの通信段階の違いは、前者における「アドレステーブル参照(S3)」のブロックが、後者では、「照会?」の分岐ブロックおよびPIP照会(S3a)/PIP回答(S3b)の装置間信号に置き換わった点のみである。そこで、以下、この相違点についてのみ説明を行う。
まず、図37に示すダイアグラムにおける「照会?」の分岐ブロックでは、通信先アドレス返信部130が、アドレステーブルを参照して、接続仲介依頼S2を送信した通信元の端末装置200Xの端末IDに対応づけられているグローバルIPアドレス(GIP)と、接続仲介依頼S2に含まれている通信先特定情報によって特定される端末ID(通信先の端末装置200Yの端末ID)に対応づけられているグローバルIPアドレス(GIP)と、が同一のIPアドレスであるか否かを判断し、判断対象となる両者が異なるIPアドレスである場合には、照会不要と判断する。この場合、ダイアグラムの「照会?」の分岐ブロックから「NO」の分岐に従ってジャンプし、グローバルIPアドレス(GIP)のみを通信先アドレスとして通信元端末装置Xに返信する通信先アドレス返信S4を実行する。
一方、上記判断対象となる両者が同一のIPアドレスである場合には、ダイアグラムの「照会?」の分岐ブロックから「YES」の分岐に従って、通信先となる端末装置200Yに対してプライベートIPアドレスを問い合わせるPIP照会S3aを行い、これに応じたPIP回答S3bを得る。そして、アドレステーブルに格納されていた通信先端末装置200YのグローバルIPアドレス(GIP)と、照会によって得られたプライベートIPアドレス(PIP)と、の両アドレスを、通信先アドレスとして通信元端末装置Xに返信する通信先アドレス返信S4を実行する。
この後、通信元端末装置Xの通信開始要求部240が、両アドレスの返信があった場合には、まず、返信されてきたプライベートIPアドレス(PIP)を用いて通信開始要求S5をトライし、この通信開始要求S5に失敗したと判断される場合もしくは失敗が予想される場合には、グローバルIPアドレス(GIP)を用いた通信開始要求S5′を行い、グローバルIPアドレス(GIP)のみの返信があった場合には、返信されてきたグローバルIPアドレス(GIP)を用いて通信開始要求S5′を行う点は、実施例5と変わりない。
この場合、通信開始要求部240は、プライベートIPアドレス(PIP)を用いて通信開始要求S5を行った後、所定のタイムアウト時間内に通信先の端末装置200Yから通信開始受諾確認S6が送信されてこなかったときに、通信開始要求S5に失敗したと判断することができる。
<9-6. 実施例6の変形例>
図38は、図30に示す実施例6において、PIPをその都度照会する形態を採用した変形例についての装置間信号の流れを示すダイアグラムである。図30に示すダイアグラムと図38に示すダイアグラムとの通信段階の違いは、前者における「アドレステーブル参照(S13)」のブロックが、後者では、「照会?」の分岐ブロックおよびPIP照会(S13a)/PIP回答(S13b)の装置間信号に置き換わった点のみである。そこで、以下、この相違点についてのみ説明を行う。
まず、図38に示すダイアグラムにおける「照会?」の分岐ブロックでは、通信元アドレス送信部330が、アドレステーブルを参照して、接続仲介依頼S12を送信した通信元の端末装置400Xの端末IDに対応づけられているグローバルIPアドレス(GIP)と、接続仲介依頼S12に含まれている通信先特定情報によって特定される端末ID(通信先の端末装置400Yの端末ID)に対応づけられているグローバルIPアドレス(GIP)と、が同一のIPアドレスであるか否かを判断し、判断対象となる両者が異なるIPアドレスである場合には、照会不要と判断する。この場合、ダイアグラムの「照会?」の分岐ブロックから「NO」の分岐に従ってジャンプし、グローバルIPアドレス(GIP)のみを通信元アドレスとして通信先端末装置Yに送信する通信元アドレス送信S14を実行する。
一方、上記判断対象となる両者が同一のIPアドレスである場合には、ダイアグラムの「照会?」の分岐ブロックから「YES」の分岐に従って、通信元となる端末装置400Xに対してプライベートIPアドレスを問い合わせるPIP照会S13aを行い、これに応じたPIP回答S13bを得る。そして、アドレステーブルに格納されていた通信元端末装置400XのグローバルIPアドレス(GIP)と、照会によって得られたプライベートIPアドレス(PIP)と、の両アドレスを、通信元アドレスとして通信先端末装置Yに送信する通信元アドレス送信S14を実行する。
この後、通信先端末装置Yの通信開始要求部440が、両アドレスの返信があった場合には、まず、返信されてきたプライベートIPアドレス(PIP)を用いて通信開始要求S15をトライし、この通信開始要求S15に失敗したと判断される場合もしくは失敗が予想される場合には、グローバルIPアドレス(GIP)を用いた通信開始要求S15′を行い、グローバルIPアドレス(GIP)のみの返信があった場合には、返信されてきたグローバルIPアドレス(GIP)を用いて通信開始要求S15′を行う点は、実施例6と変わりない。
この場合、通信開始要求部440は、プライベートIPアドレス(PIP)を用いて通信開始要求S15を行った後、所定のタイムアウト時間内に通信元の端末装置400Xから通信開始受諾確認S16が送信されてこなかったときに、通信開始要求S15に失敗したと判断することができる。