本発明は、複数のネットワーク間で遣り取りされるデータを中継するための中継装置に、関する。
周知のように、プライベートネットワークでは、外部ネットワークとは別個の独自のアドレス体系が設定されているので、複数のプライベートネットワークで同一のネットワークアドレスが重複利用される可能性がある。このため、複数のプライベートネットワークを、ルータ等の一般的な中継装置やそのような機能を持つコンピュータを介して接続することは、許されていない。以下、具体的に説明する。
図13は、従来の一般的な中継装置90の構成図である。図13に示すように、従来の中継装置90は、複数のネットワークインターフェース90e,90f,CPU[Central Processing Unit]90g,DRAM[Dynamic Random Access Memory]90h,及び、ストレージ90iを、内蔵しており、ストレージ90iは、DRAM90hに展開される幾つかのプログラムを記憶している。そのプログラムには、他の端末装置のアプリケーションとの間でデータの送受信を行うアプリケーション(プログラム)91,及び、ネットワークインターフェースでのパケットの入出力やパケットの生成やデータの再生を制御するプロトコルモジュール(プログラム)92が、含まれている。
ここで、図13に示されるように、ネットワークインターフェース90e,90fのうち、ネットワークインターフェース90eが、ルータE0を介して二台の端末装置E1,E2に接続され、もう一つのネットワークインターフェース90fが、ルータF0を介して端末装置F1に接続されているとすると、プロトコルモジュール92がパケットの送り先を判定するのに利用する経路管理テーブルには、端末装置E1のネットワークアドレスとルータE0のネットワークアドレスを対応づけたレコード,端末装置E2のネットワークアドレスとルータE0のネットワークアドレスを対応づけたレコード,端末装置F1のネットワークアドレスとルータF0のネットワークアドレスを対応づけたレコードが、格納されることとなる。
そして、このような従来の中継装置90が接続している一対のネットワークE,Fが何れもプライベートネットワークであるとすると、前述したように、端末装置E2と端末装置F1とに同じネットワークアドレスが設定されてしまう可能性がある。そう設定された場合において、端末装置E1が、端末装置F1へデータを送ろうとしたとしても、プロトコルモジュール92が、宛先と指定されたネットワークアドレスをキーに、経路管理テーブルを上から順に参照していったときに、レコードの順が図13に示されているようであると、端末装置E2のネットワークアドレスが端末装置F1のものよりも先に検出されてしまうため、ルータE0経由で端末装置E2にデータが送られ、端末装置F1にデータが届かなくなってしまう。
このような不合理が生ずるため、複数のプライベートネットワークE,Fを、ルータ等の一般的な中継装置90やそのような機能を持つコンピュータを介して接続することは、許されていない。
以上のような制約から、複数のプライベートネットワークに属する端末装置同士で通信を行えるようにする場合、それらプライベートネットワーク間にインターネット等のネットワークを仲介役として介在させるとともに、その仲介ネットワークとプライベートネットワークとの間でアドレス変換を行うNAT/IPマスカレードといった機能を用意せねばならかなった。
しかし、このような接続形態では、送信先のプライベートネットワークの特定の一つの端末装置としか、通信できないため、多数の端末装置へデータを提供するマルチキャストのようなサービスが運用できないとの問題があった。また、プライベートネットワークの通信速度が高くとも、仲介ネットワークの通信速度が低いと、データを高速に通信できなくなってしまうという問題もあった。このため、需要者からは、プライベートネットワーク間に別のネットワークを介在させることなく、これらプライベートネットワーク同士を接続することが望まれていた。
本発明は、前述したような従来技術の有する問題に鑑みてなされたものであり、その課題は、複数のプライベートネットワーク間に他の仲介ネットワークを介在させることなく、異なるプライベートネットワークに属するコンピュータが相互に通信を行えるようにすることにある。
上記の課題を解決するために案出された中継装置は、互いに独自のアドレス体系が設定されている複数のプライベートネットワークのそれぞれについて、そのプライベートネットワークにおけるサービス提供先を特定する情報とそのサービス提供先である装置のアドレスとを対応付けて記憶するための、プライベートネットワークにおけるサービス提供先を特定する情報として、そのプライベートネットワークとは別のプライベートネットワークにおいて未使用であってそのサービス提供先に仮想的に割り当てられたアドレスを記憶する記憶部,前記複数のプライベートネットワークのそれぞれに対し、そのプライベートネットワーク内のルータを介して接続される複数のネットワークインターフェース,前記複数のネットワークインターフェースのうちの何れかを通じて、そのネットワークインターフェースに接続されるプライベートネットワークの中の装置から、そのプライベートネットワークとは別のプライベートネットワークにおけるサービス提供先を特定する情報を含む、ユニキャストデータの送信を要求するサービス要求情報を、受信する受信部,及び、前記受信部が受信したサービス要求情報に含まれるアドレスが、別のプライベートアドレスのサービス提供先に仮想的に割り当てられたアドレスであった場合に、その仮想的なアドレスに対応するサービス提供先のアドレスを前記記憶部から読み出し、その読み出したアドレスを宛先として、前記サービス要求情報を、その宛先のアドレスが設定されているプライベートネットワークに接続された前記ネットワークインターフェースを通じて送信する送信部であって、前記受信部が受信したサービス要求情報に含まれるアドレスが、別のプライベートアドレスのサービス提供先に仮想的に割り当てられたアドレスであり、かつ、そのサービス要求情報が所定の情報を含んでいた場合には、そのサービス要求情報を、そのサービス提供先のアドレスとは別のアドレス宛に送信する送信部を備えることを、特徴としている。
このように構成されると、何れかのプライベートネットワーク上のコンピュータから、それとは別のプライベートネットワーク上のコンピュータに向けて、サービス要求情報が送られる途中で、受信部がそのサービス要求情報を受信すると、そのサービス要求情報に含まれるサービス提供先を特定する情報に対応するアドレスが、記憶部から読み出され、その読み出されたサービス要求情報が、送信元のプライベートネットワークへ送り返されることなく、その読み出されたアドレス宛に、自動的に、送信される。
従って、本発明によれば、複数のプライベートネットワーク間に他の仲介ネットワークを介在させることなく、異なるプライベートネットワークに属するコンピュータが相互に通信を行えるようになる。
次に、本発明を実施するための二つの最良の形態について、添付図面を参照しながら詳細に説明する。
実施形態1
図1は、第1の実施形態のコンピュータネットワークシステムの構成図である。
第1の実施形態のコンピュータネットワークシステムは、プライベートネットワークA,プライベートネットワークB,及び、中継装置10からなる。
プライベートネットワークAは、複数のコンピュータを通信自在に接続してなるネットワークであり、これら各コンピュータには、外部のネットワークから独立したアドレス体系が設定されている。第1の実施形態では、説明のため、このプライベートネットワークAは、少なくとも、二台の配信サーバ装置21a,22aと、ルータ23aとからなるものとしている。なお、二台の配信サーバ装置21a,22aは、何れも、PIM−SM[Protocol Independent Multicast-Sparse Mode]に従ってマルチキャストパケットを配信するためのコンピュータであり、ルータ23aは、ランデブーポイント(RP)として機能するコンピュータである。ここでは、説明のため、配信サーバ装置21aには、 230.1.1.1 という送信元アドレス(DA)と 10.1.1.1 という宛先グループアドレス(SA)とが設定され、配信サーバ装置22aには、 230.2.1.1 という送信元アドレス(DA)と 10.2.1.1 という宛先グループアドレス(SA)とが設定され、ルータ23aには、 10.3.1.1 というIP[Internet Protocol]アドレスが設定されているものとする。
一方、プライベートネットワークBも、複数のコンピュータを通信自在に接続してなるネットワークであり、これら各コンピュータにも、外部のネットワークから独立したアドレス体系が設定されている。第1の実施形態では、説明のため、このプライベートネットワークBは、少なくとも、三台の端末装置31b,32b,33bと、ルータ34bとからなるものとしている。三台の端末装置31b,32b,33bは、何れも、一般に市販されているパーソナルコンピュータであり、ルータ34bは、IPパケットを中継するためのコンピュータである。ここでは、説明のため、三台の端末装置31b,32b,33bには、それぞれ 10.1.1.1 , 10.2.1.1 , 10.3.1.1 というIPアドレスが設定され、ルータ34bには、 10.4.1.1 というIPアドレスが設定されているものとする。
そして、第1の実施形態のコンピュータネットワークシステムでは、プライベートネットワークAのルータ23aとプライベートネットワークBのルータ34bとを中継装置10にそれぞれ接続することによって、二つの異なるプライベートネットワークA,Bが、インターネット等の別のネットワークを介さずに直接接続されている。
図2は、中継装置10の構成図である。
中継装置10は、プライベートネットワークA上の装置とプライベートネットワークB上の装置との間でPIM−SMに従って遣り取りされるマルチキャストパケットを、両ネットワークA,Bの間で中継するコンピュータである。
この中継装置10は、A用ネットワークインターフェース(IF)10a,B用ネットワークインターフェース(IF)10b,CPU[Central Processing Unit]10c,DRAM[Dynamic Random Access Memory]10d,及び、ストレージ10eを、内蔵している。
このうち、A用IF10aは、プライベートネットワークAのルータ23aに接続され、B用IF10bは、プライベートネットワークBのルータ34bに接続されている。また、ストレージ10eは、CPU10cによってDRAM10dに展開される幾つかのプログラムを、記憶している。
ストレージ10eが記憶するプログラムには、プライベートネットワークAからのマルチキャストパケットの行き先を管理するアプリケーション11a,プライベートネットワークBからのマルチキャストパケットの行き先を管理するアプリケーション11b,A用IF10aでのパケットの入出力を制御するA用プロトコルモジュール13a,B用IF10bでのパケットの入出力を制御するB用プロトコルモジュール13bが、含まれている。
また、二つのマルチキャスト管理アプリケーション11a,11bは、何れも、マルチキャストパケットの行き先を管理するために、転送先管理テーブル12a,12bを利用する。
図3は、B用の転送先管理テーブル12bのデータ構造の一例を示す図である。
B用の転送先管理テーブル12bは、プライベートネットワークA内に設定されている宛先グループアドレスと同じ数のレコードを、有している。各レコードは、「宛先グループアドレス」と「A側転送先アドレス」のフィールドを、有している。「宛先グループアドレス」フィールドには、各宛先グループアドレスが記録されるフィールドである。「A側転送先アドレス」フィールドには、その宛先グループアドレスが宛先と指定されている場合のパケットの転送先とすべき上流のコンピュータ(ルータ又は配信サーバ装置)のIPアドレスが記録されるフィールドである。
なお、A用の転送先管理テーブル12aは図示していないが、「宛先グループアドレス」フィールドにプライベートネットワークB内に設定されている宛先グループアドレス(図1に示した例には無い)を記録するとともに、「A側転送先アドレス」フィールドの名称の中の「A」を「B」に置換してこのフィールドの内容を適宜変更すれば良いので、ここでは詳細に説明しない。
従って、以上に説明した転送先管理テーブル12a,12bを記憶したDRAM10d及びストレージ10eは、前述した記憶部に相当している。
ところで、ストレージ10e内のプログラムは、この中継装置10の主電源が投入されたときに、CPU10cによって起動されるようになっている。但し、プロトコルモジュール13a,13bに含まれるJoinメッセージ送受信用ソケットインターフェースプログラムは、主電源の投入では、起動されない。ここで、Joinメッセージとは、配信サーバ装置22a又は配信サーバ装置22bからマルチキャスト配信されるデータの受取先になろうとする端末装置が、ランデブーポイントへ送信するメッセージ,或いは、ランデブーポイントとして立候補しようとするPIM対応ルータが、別のランデブーポイント又はブートストラップルータへ送信するメッセージであり、具体的なメッセージフォーマットは、RFC2362[Request for Comments 2362]に規定されている。
図4は、B用のマルチキャスト管理アプリケーション11bに従ってCPU10cが実行する処理の流れを示す図である。
図4に係る処理の開始後、CPU10cは、B用のプロトコルモジュール13bに対し、Joinメッセージ受信用ソケットインターフェースプログラムを起動させる(ステップS101)。これにより、プライベートネットワークBから来るJoinメッセージの受信用ソケットがオープンとなる。
続いて、CPU10cは、Joinメッセージの受信用ソケットがJoinメッセージを受信するまで、待機する(ステップS102;NO)。従って、このステップS102を実行すCPU10cは、前述した受信部に相当している。
その後、Joinメッセージの受信用ソケットがJoinメッセージを受信すると(ステップS102;YES)、CPU10cは、そのJoinメッセージのヘッダにおけるマルチキャストグループアドレス[Encoded-Multicast Group Address]フィールド内の宛先グループアドレスをキーとして、図3の転送先管理テーブル12bを検索する(ステップS103)。
CPU10cは、図3の転送先管理テーブル12bから宛先グループアドレスが検出できなかった場合(ステップS104;NO)、Joinメッセージを廃棄して(ステップS105)、Joinメッセージの受信用ソケットがJoinメッセージを受信するのを待機する状態に戻る(ステップS102;NO)。
一方、CPU10cは、図3の転送先管理テーブル12bから宛先グループアドレスが検出できた場合(ステップS104;YES)、A用のプロトコルモジュール13aに対し、Joinメッセージ受信用ソケットインターフェースプログラムを起動させる(ステップS106)。これにより、プライベートネットワークAへ送るJoinメッセージの送信用ソケットがオープンとなる。
続いて、CPU10cは、図3の転送先管理テーブル12bから検出されたレコードの転送先アドレス宛へ、Joinメッセージ送信用ソケットを通じて、Joinメッセージを送信する処理を行う(ステップS107)。
従って、ステップS103,S104,S107を実行するCPU10cは、前述した送信部に相当している。
そして、その送信の後、CPU10cは、Joinメッセージの受信用ソケットがJoinメッセージを受信するまで、待機する(ステップS108;NO)。従って、このステップS108は、前述した受信部に相当している。
その後、Joinメッセージの受信用ソケットがJoinメッセージを受信すると(ステップS108;YES)、CPU10cは、ステップS103と同様に、そのJoinメッセージ中の宛先グループアドレスで図3の転送先管理テーブル12bを検索する(ステップS109)。
その後、図3の転送先管理テーブル12bから宛先グループアドレスが検出できなかった場合(ステップS110;NO)、CPU10cは、Joinメッセージを廃棄して(ステップS111)、Joinメッセージの受信用ソケットがJoinメッセージを受信するのを待機する状態に戻る(ステップS108;NO)。
一方、図3の転送先管理テーブル12bから宛先グループアドレスが検出できた場合(ステップS110;YES)、CPU10cは、図3の転送先管理テーブル12bから検出されたレコードの転送先アドレス宛へ、Joinメッセージ送信用ソケットを通じて、Joinメッセージを送信する処理を行い(ステップS112)、Joinメッセージの受信用ソケットがJoinメッセージを受信するのを待機する状態に戻る(ステップS108;NO)。
従って、ステップS109,S110,S112を実行するCPU10cは、前述した送信部に相当している。
なお、この図4に係る処理によりオープンされた送受信用ソケットは、中継装置10の主電源が切断される際、或いは、再起動が掛けられる際に、クローズされる。
このような処理が、中継装置10で行われるようになっているため、プライベートネットワークB上のコンピュータ31b〜34bの何れかからプライベートネットワークA内のランデブーポイントに向けてJoinメッセージが送られる途中で、B用プロトコルモジュール13bによるJoinメッセージ受信用ソケットが、Joinメッセージを受け取ると(ステップS102;YES)、その宛先グループアドレスが適正であれば(ステップS103,S104;YES)、A用プロトコルモジュール13aによるJoinメッセージ送信用ソケットがオープンされ(ステップS106)、プライベートネットワークBからプライベートネットワークAへのJoinメッセージの通信路が、この中継装置10上に確立されることとなる。そして、これ以降、適正な宛先グループアドレス宛のJoinメッセージが、プライベートネットワークBから中継装置10に送られてきたときには、この中継装置10は、そのJoinメッセージを、プライベートネットワークBへ返すことなく、自動的に、プライベートネットワークAへ送出することとなる(ステップS108;YES,S109,S110;YES,S112)。
従って、第1の実施形態の中継装置10によれば、異なる二つのプライベートネットワークA,Bで同一のネットワークアドレスが使用されていると否とに拘わらず、それらプライベートネットワークA,Bが相互通信自在に接続できるようになる。
実施形態2
図5は、第2の実施形態のコンピュータネットワークシステムの構成図である。
第2の実施形態のコンピュータネットワークシステムは、プライベートネットワークC,プライベートネットワークD,及び、中継装置60からなる。
プライベートネットワークCは、複数のコンピュータを通信自在に接続してなるネットワークであり、これら各コンピュータには、外部のネットワークから独立したアドレス体系が設定されている。第2の実施形態では、説明のため、このプライベートネットワークCは、少なくとも、二台のウェブサーバ装置71c,72cと、ルータ73cとからなるものとしている。なお、二台のウェブサーバ装置71c,72cは、何れも、HTTP[HyperText Transfer Protocol]に従ってウェブページデータをウェブクライアント装置へ送信するためのコンピュータであり、ルータ73cは、IPパケットを中継するためのコンピュータである。ここでは、説明のため、二台のウェブサーバ装置71c,72cには、それぞれ 10.1.1.1 , 10.2.1.1 というIPアドレスが設定され、ルータ73cには、 10.3.1.1 というIPアドレスが設定されているものとする。
一方、プライベートネットワークDも、複数のコンピュータを通信自在に接続してなるネットワークであり、これら各コンピュータにも、外部のネットワークから独立したアドレス体系が設定されている。第2の実施形態では、説明のため、このプライベートネットワークDは、少なくとも、三台のウェブクライアント装置81d,82d,83dと、ルータ84dとからなるものとしている。三台のウェブクライアント装置81d,82d,83dは、何れも、一般に市販されているパーソナルコンピュータにウェブブラウザをインストールしてなる装置であり、ルータ84dは、IPパケットを中継するためのコンピュータである。ここでは、説明のため、三台のウェブクライアント装置81d,82d,83dには、それぞれ 10.1.1.1 , 10.2.1.1 , 10.3.1.1 というIPアドレスが設定され、ルータ84dには、 10.4.1.1 というIPアドレスが設定されているものとする。
そして、第2の実施形態のコンピュータネットワークシステムでは、プライベートネットワークCのルータ73cとプライベートネットワークDのルータ84dとを中継装置60にそれぞれ接続することによって、二つの異なるプライベートネットワークC,Dが、インターネット等の別のネットワークを介さずに直接接続されている。
図6は、中継装置60の構成図である。
中継装置60は、プライベートネットワークC上の装置とプライベートネットワークD上の装置との間でユニキャストされたHTTPメッセージを、両ネットワークC,Dの間で中継するコンピュータである。
この中継装置60は、C用ネットワークインターフェース(IF)60c,D用ネットワークインターフェース(IF)60d,CPU60e,DRAM60f,及び、ストレージ60gを、内蔵している。
このうち、C用IF60cは、プライベートネットワークCのルータ73cに接続され、D用IF60dは、プライベートネットワークDのルータ84dに接続されている。また、ストレージ60gは、CPU60eによってDRAM60fに展開される幾つかのプログラムを、記憶している。
ストレージ60gが記憶するプログラムには、プライベートネットワークC,D間のユニキャストパケットの行き先を管理するアプリケーション61,C用IF60cでのパケットの入出力を制御するD用プロトコルモジュール63c,D用IF60dでのパケットの入出力を制御するD用プロトコルモジュール63dが、含まれている。
また、ユニキャスト管理アプリケーション61は、プライベートネットワークCからプライベートネットワークDへのHTTPメッセージの行き先を管理するために、C用転送先管理テーブル62cを利用する。さらに、このユニキャスト管理アプリケーション61は、プライベートネットワークDからプライベートネットワークCへのHTTPメッセージの行き先を管理するために、D用転送先管理テーブル62dを利用する。
図7は、D用転送先管理テーブル62dのデータ構造の一例を示す図である。
D用転送先管理テーブル62dの各レコードは、「要求先アドレス」と「第1パス」と「C側転送先アドレス」のフィールドを、有している。「要求先アドレス」フィールドには、プライベートネットワークD内で未使用(未設定)のIPアドレスのうち、プライベートネットワークC内のウェブサーバ装置71c、72c又はウェブクライアント装置(図5に示した例には無い)に対して仮想的に割り当てたIPアドレスが記録されるフィールドである。なお、第2の実施形態では、説明のため、ウェブサーバ装置71cには、プライベートネットワークD内で未使用の 10.5.1.1 というIPアドレスが仮想的に割り当てられ、且つ、ウェブサーバ装置72cには、プライベートネットワークD内で未使用の 10.5.1.2 というIPアドレスが仮想的に割り当てられているとしている。これにより、プライベートネットワークD内のウェブクライアント装置81d〜83dは、プライベートネットワークCのウェブサーバ装置71c,72cへウェブページを要求する際、 10.5.1.1 や 10.5.1.2 宛にリクエストメッセージを送らねばならない。「第1パス」フィールドは、ウェブサーバ装置71c,72cの各ウェブページに設定されているURL[Uniform Resource Locator]において第1のパスとして組み込まれているパス情報が記録されるフィールドである。但し、ウェブクライアント装置(図5に示した例には無い)には、ウェブページが無いので、このような装置のレコードについては、「第1パス」フィールドは空欄となる。「C側転送先アドレス」フィールドには、プライベートネットワークC内のウェブサーバ装置71c,72cのIPアドレス(プライベートネットワークC内のIPアドレス)が記録されるフィールドである。
なお、C用の転送先管理テーブル62cは図示していないが、そのテーブル62cの「要求先アドレス」フィールドには、プライベートネットワークC内で未使用のIPアドレスであってプライベートネットワークD内の各ウェブクライアント装置81d〜83dに仮想的に割り当てたものを記録するとともに、「C側転送先アドレス」フィールドの名称の中の「C」を「D」に置換してこのフィールドと「第1パス」フィールドの内容を適宜変更すれば良いので、ここでは詳細に説明しない。
従って、以上に説明した転送先管理テーブル62c,62dを記憶したDRAM60f及びストレージ60gは、前述した記憶部に相当している。
ところで、ストレージ60g内のプログラムは、この中継装置60の主電源が投入されたときに、CPU60eによって起動されるようになっている。但し、プロトコルモジュール63c,63dに含まれるHTTPメッセージ送受信用ソケットインターフェースプログラムは、第1の実施形態と同様に、主電源の投入では、起動されない。
図8及び図9は、ユニキャスト管理アプリケーション61に従ってCPU60eが実行する処理の流れを示す図である。
図8及び図9に係る処理の開始後、CPU60eは、C用のプロトコルモジュール63cに対し、HTTPメッセージ受信用ソケットインターフェースプログラムを起動させる(ステップS201)。これにより、プライベートネットワークCから来るHTTPメッセージの受信用ソケットがオープンとなる。
また、CPU60eは、D用のプロトコルモジュール63dに対し、HTTPメッセージ受信用ソケットインターフェースプログラムを起動させる(ステップS201)。これにより、プライベートネットワークDから来るHTTPメッセージの受信用ソケットがオープンとなる。
続いて、CPU60eは、C用又はD用のプロトコルモジュール63c,63dの受信用ソケットがHTTPメッセージを受信するまで、待機する(ステップS202;NO)。従って、このステップS202を実行するCPU60eは、前述した受信部に相当している。
その後、C用又はD用の受信用ソケットがHTTPメッセージを受信すると(ステップS202;YES)、CPU60eは、そのHTTPメッセージがプライベートネットワークCとプライベートネットワークDの何れから来たものであるか(C用の受信用ソケットとC用の受信用ソケットの何れが受信したか)を、判別する(ステップS203)。
そして、そのHTTPメッセージがプライベートネットワークDから来たものであった場合(ステップS203;YES)、CPU60eは、そのHTTPメッセージを受信したD用プロトコルモジュール63dから取得される送信先のIPアドレスと、そのHTTPメッセージがリクエストメッセージであった場合には更にGETメソッドに第1のパスとして含まれるパス情報とをキーとして、D用転送先管理テーブル62dを検索する(ステップS204)。
そして、条件に合致するレコードがD用転送先管理テーブル62dから検出できなかった場合(ステップS205;NO)、CPU60eは、プライベートネットワークD内の送信元へ、図10に示されるようなエラーメッセージを送信する処理を行い(ステップS206)、C用又はD用の受信用ソケットがHTTPメッセージを受信するのを待機する状態に戻る(ステップS202;NO)。
一方、条件に合致するレコードがD用転送先管理テーブル62dから検出できた場合(ステップS205;YES)、CPU60eは、C用のプロトコルモジュール63cに対し、HTTPメッセージの受信用ソケットインターフェースプログラムを起動させる(ステップS207)。これにより、プライベートネットワークCへ送るHTTPメッセージの送信用ソケットがオープンとなる。
続いて、CPU60eは、D用の転送先管理テーブル62dから検出されたレコードの転送先アドレス宛へ、C用のメッセージ送信用ソケットを通じて、HTTPメッセージを送信する処理を行う(ステップS208)。なお、このHTTPメッセージが図11に示されるようなリクエストメッセージである場合、CPU60eは、ステップS208において、HTTPメッセージを送信する前に、図12のように、このHTTPメッセージのGETメソッド内のパスやHost情報を書き換える処理も行う。
従って、ステップS204,S205,S208を実行するCPU60eは、前述した送信部に相当している。
そして、その送信の後、CPU60eは、C用又はD用の受信用ソケットがHTTPメッセージを受信するのを待機する状態になる(ステップS213;NO)。
また、ステップS202で受信したHTTPメッセージがプライベートネットワークCから来たものであった場合(ステップS203;NO)、CPU60eは、そのHTTPメッセージを受信したC用プロトコルモジュール63cから取得される送信先のIPアドレスと、そのHTTPメッセージがリクエストメッセージであった場合には更にGETメソッドに第1のパスとして含まれるパス情報とをキーとして、C用転送先管理テーブル62cを検索する(ステップS209)。
そして、条件に合致するレコードがC用転送先管理テーブル62cから検出できなかった場合(ステップS210;NO)、CPU60eは、プライベートネットワークC内の送信元へ、図10に示されるようなエラーメッセージを送信する処理を行い(ステップS206)、C用又はD用の受信用ソケットがHTTPメッセージを受信するのを待機する状態に戻る(ステップS202;NO)。
一方、条件に合致するレコードがC用転送先管理テーブル62cから検出できた場合(ステップS210;YES)、CPU60eは、D用のプロトコルモジュール63dに対し、HTTPメッセージの受信用ソケットインターフェースプログラムを起動させる(ステップS211)。これにより、プライベートネットワークDへ送るHTTPメッセージの送信用ソケットがオープンとなる。
続いて、CPU60eは、C用の転送先管理テーブル62cから検出されたレコードの転送先アドレス宛へ、D用のメッセージ送信用ソケットを通じて、HTTPメッセージを送信する処理を行う(ステップS212)。なお、ステップS208と同様に、このステップS212でも、CPU60eは、HTTPメッセージがリクエストメッセージであったときには、HTTPメッセージを送信する前に、HTTPメッセージのGETメソッド内のパスやHost情報を書き換える処理を行う。
従って、ステップS209,S210,S212を実行するCPU60eは、前述した送信部に相当している。
そして、その送信の後、CPU60eは、C用又はD用の受信用ソケットがHTTPメッセージを受信するのを待機する状態になる(ステップS213;NO)。
ステップS213においてHTTPメッセージ受信の待機中(この処理の実行主体は受信部に相当)、C用又はD用の受信用ソケットがHTTPメッセージを受信すると(ステップS213;YES)、CPU60eは、そのHTTPメッセージがプライベートネットワークCとプライベートネットワークDの何れから来たものであるか(C用の受信用ソケットとC用の受信用ソケットの何れが受信したか)を、判別する(ステップS214)。
そして、そのHTTPメッセージがプライベートネットワークDから来たものであった場合(ステップS214;YES)、CPU60eは、そのHTTPメッセージを受信したD用プロトコルモジュール63dから取得される送信先のIPアドレスと、そのHTTPメッセージがリクエストメッセージであった場合には更にGETメソッドに第1のパスとして含まれるパス情報とをキーとして、D用転送先管理テーブル62dを検索する(ステップS215)。
そして、条件に合致するレコードがD用転送先管理テーブル62dから検出できなかった場合(ステップS216;NO)、CPU60eは、プライベートネットワークD内の送信元へ、図10に示されるようなエラーメッセージを送信する処理を行い(ステップS217)、C用又はD用の受信用ソケットがHTTPメッセージを受信するのを待機する状態に戻る(ステップS213;NO)。
一方、条件に合致するレコードがD用転送先管理テーブル62dから検出できた場合(ステップS216;YES)、CPU60eは、D用の転送先管理テーブル62dから検出されたレコードの転送先アドレス宛へ、C用のメッセージ送信用ソケットを通じて、HTTPメッセージを送信する処理を行う(ステップS218)。なお、ステップS208と同様に、このステップS218でも、CPU60eは、HTTPメッセージがリクエストメッセージであったときには、HTTPメッセージを送信する前に、HTTPメッセージのGETメソッド内のパスやHost情報を書き換える処理を行う。
従って、ステップS215,S216,S218を実行するCPU60eは、前述した送信部に相当している。
そして、その送信の後、CPU60eは、C用又はD用の受信用ソケットがHTTPメッセージを受信するのを待機する状態になる(ステップS213;NO)。
また、ステップS213で受信したHTTPメッセージがプライベートネットワークCから来たものであった場合(ステップS214;NO)、CPU60eは、そのHTTPメッセージを受信したC用プロトコルモジュール63cから取得される送信先のIPアドレスと、そのHTTPメッセージがリクエストメッセージであった場合には更にGETメソッドに第1のパスとして含まれるパス情報とをキーとして、C用転送先管理テーブル62cを検索する(ステップS219)。
そして、条件に合致するレコードがC用転送先管理テーブル62cから検出できなかった場合(ステップS220;NO)、CPU60eは、プライベートネットワークC内の送信元へ、図10に示されるようなエラーメッセージを送信する処理を行い(ステップS217)、C用又はD用の受信用ソケットがHTTPメッセージを受信するのを待機する状態に戻る(ステップS213;NO)。
一方、条件に合致するレコードがC用転送先管理テーブル62cから検出できた場合(ステップS220;YES)、CPU60eは、C用の転送先管理テーブル62cから検出されたレコードの転送先アドレス宛へ、D用のメッセージ送信用ソケットを通じて、HTTPメッセージを送信する処理を行う(ステップS221)。なお、ステップS208と同様に、このステップS221でも、CPU60eは、HTTPメッセージがリクエストメッセージであったときには、HTTPメッセージを送信する前に、HTTPメッセージのGETメソッド内のパスやHost情報を書き換える処理を行う。
従って、ステップS219,S220,S221を実行するCPU60eは、前述した送信部に相当している。
そして、その送信の後、CPU60eは、C用又はD用の受信用ソケットがHTTPメッセージを受信するのを待機する状態になる(ステップS213;NO)。
なお、この図8及び図9に係る処理によりオープンされた送受信用ソケットは、中継装置10の主電源が切断される際、或いは、再起動が掛けられる際に、クローズされる。
このような処理が、中継装置60で行われるようになっているため、プライベートネットワークD上のウェブクライアント装置81d〜83dの何れかからプライベートネットワークC内のウェブサーバ装置71c,72cに向けてHTTPメッセージが送られる途中で、D用プロトコルモジュール63dによるHTTPメッセージ受信用ソケットが、HTTPメッセージを受け取ると(ステップS202;YES)、その宛先がD用の転送先管理テーブル62dに登録されていれば(ステップS204,S205;YES)、C用プロトコルモジュール63cによるHTTPメッセージ送信用ソケットがオープンされ(ステップS207)、プライベートネットワークDからプライベートネットワークCへのHTTPメッセージの通信路が、この中継装置60上に確立されることとなる。そして、これ以降、D用の転送先管理テーブル62dに登録されているIPアドレス宛のHTTPメッセージが、プライベートネットワークDから中継装置60に送られてきたときには、この中継装置60は、そのHTTPメッセージを、プライベートネットワークDへ返すことなく、自動的に、プライベートネットワークCへ送出することとなる(ステップS213;YES,S215,S216;YES,S218)。
従って、第2の実施形態の中継装置60によっても、異なる二つのプライベートネットワークC,Dで同一のネットワークアドレスが使用されていると否とに拘わらず、それらプライベートネットワークC,Dが相互通信自在に接続できるようになる。
なお、第2の実施形態では、図7に示されるD用転送先管理テーブル62dが、プライベートネットワークCのウェブサーバ装置71c,72cのために、ウェブサーバ装置71c,72cの実アドレスと、プライベートネットワークDに用意された仮想的なアドレスとを、対応付けて記録するものとして説明したが、このD用転送先管理テーブル62dの用途はこれに限られない。
例えば、「第1パス」フィールドにパス情報が記録されているレコードにおいて、「C側転送先アドレス」フィールドに、「要求先アドレス」フィールド内の仮想アドレスに対応するプライベートネットワークC内の実アドレスとは異なるアドレスを記録しておけば、プライベートネットワークD内のウェブクライアント装置81d〜83dに対し、上記パス情報を第1のパスに含むURLへのアクセス制限を、課すことができる。
(付記1)
互いに独自のアドレス体系が設定されている複数のプライベートネットワークのそれぞれについて、そのプライベートネットワークにおけるサービス提供先を特定する情報とそのサービス提供先である装置のアドレスとを対応付けて記憶する記憶部,
前記複数のプライベートネットワークのそれぞれに対し、そのプライベートネットワーク内のルータを介して接続される複数のネットワークインターフェース,
前記複数のネットワークインターフェースのうちの何れかを通じて、そのネットワークインターフェースに接続されるプライベートネットワークの中の装置から、そのプライベートネットワークとは別のプライベートネットワークにおけるサービス提供先を特定する情報を含むサービス要求情報を、受信する受信部,及び、
前記受信部がサービス要求情報を受信すると、その受信したサービス要求情報に含まれるサービス提供先を特定する情報に対応するアドレスを前記記憶部から読み出し、その読み出したアドレスを宛先として、前記サービス要求情報を、その宛先のアドレスが設定されているプライベートネットワークに接続された前記ネットワークインターフェースを通じて送信する送信部
を備えることを特徴とする中継装置。
(付記2)
前記サービス要求情報が、マルチキャストデータの送信を要求する情報である
ことを特徴とする付記1記載の中継装置。
(付記3)
前記サービス提供先を特定する情報が、PIM−SMにおけるJoinメッセージに含まれる宛先グループアドレスである
ことを特徴とする付記2記載の中継装置。
(付記4)
前記サービス要求情報が、ユニキャストデータの送信を要求する情報である
ことを特徴とする付記1記載の中継装置。
(付記5)
前記記憶部は、プライベートネットワークにおけるサービス提供先を特定する情報として、そのプライベートネットワークとは別のプライベートネットワークにおいて未使用であってそのサービス提供先に仮想的に割り当てられたアドレスを、記憶し、
前記送信部は、前記受信部が受信したサービス要求情報に含まれるアドレスが、別のプライベートアドレスのサービス提供先に仮想的に割り当てられたアドレスであった場合に、その仮想的なアドレスに対応するサービス提供先のアドレスを前記記憶部から読み出し、その読み出したアドレスを宛先として、前記サービス要求情報を、その宛先のアドレスが設定されているプライベートネットワークに接続された前記ネットワークインターフェースを通じて送信する
ことを特徴とする付記4記載の中継装置。
(付記6)
前記送信部は、前記受信部が受信したサービス要求情報に含まれるアドレスが、別のプライベートアドレスのサービス提供先に仮想的に割り当てられたアドレスであった場合であって、そのサービス要求情報が所定の情報を含むときには、そのサービス要求情報を、そのサービス提供先のアドレスとは別のアドレス宛に、そのサービス要求情報を送信する
ことを特徴とする付記5記載の中継装置。
(付記7)
コンピュータを、
互いに独自のアドレス体系が設定されている複数のプライベートネットワークのそれぞれについて、そのプライベートネットワークにおけるサービス提供先を特定する情報とそのサービス提供先である装置のアドレスとを対応付けて記憶装置に記憶する記憶手段,
前記複数のプライベートネットワークのそれぞれに対し、そのプライベートネットワーク内のルータを介して接続される複数のネットワークインターフェースのうち、何れかのネットワークインターフェースを通じて、そのネットワークインターフェースに接続されるプライベートネットワークの中の装置から、そのプライベートネットワークとは別のプライベートネットワークにおけるサービス提供先を特定する情報を含むサービス要求情報を、受信する受信手段,及び、
前記受信手段がサービス要求情報を受信すると、その受信したサービス要求情報に含まれるサービス提供先を特定する情報に対応するアドレスを前記記憶装置から読み出し、その読み出したアドレスを宛先として、前記サービス要求情報を、その宛先のアドレスが設定されているプライベートネットワークに接続された前記ネットワークインターフェースを通じて送信する送信手段
として機能させる
ことを特徴とする中継用プログラム。
第1の実施形態のコンピュータネットワークシステムの構成図
中継装置の構成図
B用の転送先管理テーブルのデータ構造の一例を示す図
B用のマルチキャスト管理アプリケーションによる処理の流れを示す図
第2の実施形態のコンピュータネットワークシステムの構成図
中継装置の構成図
D用転送先管理テーブルのデータ構造の一例を示す図
ユニキャスト管理アプリケーションによる処理の流れを示す図
ユニキャスト管理アプリケーションによる処理の流れを示す図
エラーメッセージの例示図
送信元ネットワークの仮想アドレス宛のリクエストメッセージの例示図
送信先ネットワークの実アドレス宛のリクエストメッセージの例示図
従来の一般的な中継装置の構成図
符号の説明
10 中継装置
10a A用ネットワークインターフェース
10b B用ネットワークインターフェース
10c CPU
10d DRAM
11a A用マルチキャスト管理アプリケーション
11b B用マルチキャスト管理アプリケーション
12a A用転送先管理テーブル
12b B用転送先管理テーブル
13a A用プロトコルモジュール
13b B用プロトコルモジュール
21a 配信サーバ装置
22a 配信サーバ装置
23a ルータ
31b 端末装置
32b 端末装置
33b 端末装置
34b ルータ