(57)【要約】【課題】  一の通信区分に属しているｎ個の通信ノードと、他の通信区分に属している１個の通信ノードとが可及的に小さな負荷で通信を行えるようにする。【解決手段】  通信制御装置３０は、通信ノード１００から、多重化制御対象のリクエストパケットを受信すると、パケットデータ部内のブロック番号（0x0014）を変換テーブル４０を用いてブロック番号（0x1001）に変換すると共に、アドレス部の送信元情報を通信制御装置３０の情報に置き換えてから、リクエストパケットを通信ノード４００に送信する。その後、通信ノード４００から、多重化制御対象のレスポンスパケットを受信すると、変換テーブル４０を参照して、パケットデータ部内のブロック番号を元の番号に再変換すると共に、アドレス部の送信先情報を通信ノード１００に置き換えてから、レスポンスパケットを通信ノード１００に送信する。【選択図】  図５
2006340003.tif 000002
【特許請求の範囲】
【請求項１】
通信ノードから受信した通信パケットが、多重化を行うものである場合に、その通信パケットから、個々の通信パケットを識別するための識別情報を取得する識別情報取得手段と、
前記識別番号取得手段により取得された識別情報が、第１の通信区分に属する通信ノードから受信した通信パケットに含まれていた場合には、その識別情報を一時的に待避してから書き換える第１の識別情報書き換え手段と、
前記識別番号取得手段により取得された識別情報が、第２の通信区分に属する通信ノードから受信した通信パケットに含まれていた場合には、その識別情報を前記待避した識別情報に書き換える第２の識別情報書き換え手段と、
前記第１の識別情報書き換え手段及び前記第２の識別情報書き換え手段により識別情報が書き換えられた通信パケットを送信する送信手段とを有することを特徴とする通信制御装置。
【請求項２】
前記第１の通信区分に属する通信ノードから受信した通信パケットが、多重化を行うものである場合、その通信パケットの送信元を示すアドレス情報を自身のアドレス情報に書き換える第１のアドレス情報書き換え手段と、
前記第２の通信区分に属する通信ノードから受信した通信パケットが、多重化を行うものである場合、その通信パケットの送信先を示すアドレス情報を、前記第１の通信区分に属する通信ノードのアドレス情報に書き換える第２のアドレス情報書き換え手段とを有し、
前記送信手段は、前記第１のアドレス情報書き換え手段及び前記第２のアドレス情報書き換え手段によりアドレス情報が書き換えられた通信パケットを送信することを特徴とする請求項１に記載の通信制御装置。
【請求項３】
前記通信ノードから受信した通信パケットが、多重化を行うものであるか否かを、前記通信パケットが特定の通信プロトコルが使用されているものか否かによって判別する判別手段を有することを特徴とする請求項１又は２に記載の通信制御装置。
【請求項４】
前記第１の識別情報書き換え手段により書き換えられる前の識別情報と、前記第１の識別情報書き換え手段により書き換えられた後の識別情報とが対応付けられて登録された変換テーブルを有し、
前記第１の識別情報書き換え手段は、前記第１の通信区分に属する通信ノードから受信した通信パケットに含まれている識別情報を前記変換テーブルに待避させた後、前記通信パケットにおける識別情報を、前記待避させた識別情報に対応付けられて登録されている識別情報に書き換え、
前記第２の識別情報書き換え手段は、前記第２の通信区分に属する通信ノードから受信した通信パケットに含まれている識別情報に対応付けられて登録されている識別情報を、前記変換テーブルから読み出し、前記通信パケットにおける識別情報を、前記読み出した識別情報に書き換えることを特徴とする請求項１〜３の何れか１項に記載の通信制御装置。
【請求項５】
前記第１の通信区分に属する通信ノードは、クライアント側の通信ノードであり、
前記第２の通信区分に属する通信ノードは、サーバ側の通信ノードであり、
前記変換テーブルを、前記クライアント側の通信ノード毎に割り当てる変換テーブル割り当て手段を有することを特徴とする請求項４に記載の通信制御装置。
【請求項６】
前記第１の通信区分に属する通信ノードは、クライアント側の通信ノードであり、
前記第２の通信区分に属する通信ノードは、サーバ側の通信ノードであり、
前記送信手段は、前記サーバ側の通信ノードから受信した通信パケットが、前記サーバ側の通信ノードから前記クライアント側の通信ノードへ任意のタイミングで配信されるイベント型の通信パケットであった場合には、前記第１の識別情報書き換え及び前記第２の識別情報書き換えにより識別情報が書き換えられていない通信パケットを、前記クライアント側の通信ノードへ送信することを特徴とする請求項１〜５の何れか１項に記載の通信制御装置。
【請求項７】
前記識別情報は、前記通信パケットのブロック番号を含むことを特徴とする請求項１〜６の何れか１項に記載の通信制御装置。
【請求項８】
前記請求項１〜７の何れか１項に記載の通信制御装置を含むことを特徴とする通信システム。
【請求項９】
通信ノードから受信した通信パケットが、多重化を行うものである場合に、その通信パケットから、個々の通信パケットを識別するための識別情報を取得する識別情報取得ステップと、
前記識別番号取得ステップにより取得された識別情報が、第１の通信区分に属する通信ノードから受信した通信パケットに含まれていた場合には、その識別情報を一時的に待避してから書き換える第１の識別情報書き換えステップと、
前記第１の識別情報書き換えステップにより識別情報が書き換えられた通信パケットを送信する第１の送信ステップと、
前記第１の送信ステップにより通信パケットが送信された後に、前記識別番号取得ステップにより取得された識別情報が、第２の通信区分に属する通信ノードから受信した通信パケットに含まれていた場合には、その識別情報を前記待避した識別情報に書き換える第２の識別情報書き換えステップと、
前記第２の識別情報書き換えステップにより識別情報が書き換えられた通信パケットを送信する第２の送信ステップとを有することを特徴とする通信制御方法。
【請求項１０】
通信ノードから受信した通信パケットが、多重化を行うものである場合に、その通信パケットから、個々の通信パケットを識別するための識別情報を取得する識別情報取得ステップと、
前記識別番号取得ステップにより取得された識別情報が、第１の通信区分に属する通信ノードから受信した通信パケットに含まれていた場合には、その識別情報を一時的に待避してから書き換える第１の識別情報書き換えステップと、
前記第１の識別情報書き換えステップにより識別情報が書き換えられた通信パケットを送信する第１の送信ステップと、
前記第１の送信ステップにより通信パケットが送信された後に、前記識別番号取得ステップにより取得された識別情報が、第２の通信区分に属する通信ノードから受信した通信パケットに含まれていた場合には、その識別情報を前記待避した識別情報に書き換える第２の識別情報書き換えステップと、
前記第２の識別情報書き換えステップにより識別情報が書き換えられた通信パケットを送信する第２の送信ステップとをコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御装置、通信システム、通信制御方法、及びコンピュータプログラムに関し、特に、一の通信区分に属している通信ノードと、他の通信区分に属している通信ノードとが、通信制御装置を介して通信を行うために用いて好適なものに関する。
【背景技術】
【０００２】
図８は、二つの通信区分に分かれた通信ノードが、通信制御装置を介して接続するシステムの従来の構成を示す図である。
通信区分８０１、８０２は、各通信ノード８０３〜８０６が属する、物理的あるいは論理的な境界で隔たれた領域である。例えば、通信区分８０１に属する通信ノード８０３〜８０５が、他の通信区分８０２の通信ノード８０６と通信する場合には、通信制御装置８０７を経由して通信することになる。
【０００３】
具体的な例としては、通信区分をコンピュータまたは周辺機器とし、通信ノードをコンピュータ上のプロセスまたは周辺機器上のプロセスとする形態が考えられる。また、通信区分をプライベートＩＰネットワークまたはグローバルＩＰネットワークとし、通信ノードをコンピュータなどの通信端末とする形態なども考えられる。
【０００４】
ここで、このような従来のシステムにおいて、通信区分８０１に属する通信ノード８０３〜８０５が、通信区分８０２に属する通信ノード８０６と通信する場合について説明する。
なお、ここでは、通信区分８０１をプライベートＩＰネットワークとし、通信区分８０２をグローバルＩＰネットワークとし、通信制御装置８０７をルータとし、通信ノード８０３〜８０５をそれぞれ第１〜第３のクライアントＰＣ（パーソナルコンピュータ）とし、通信ノード８０６をサーバＰＣとして説明を行う。
【０００５】
また、プライベートＩＰネットワーク８０１には、第１〜第３のクライアントＰＣ８０３〜８０５が接続され、グローバルＩＰネットワーク８０２には、サーバＰＣ８０６が接続されているものとする。
【０００６】
プライベートＩＰネットワーク８０２のネットワーク境界には、ルータ８０７が接続されている。このルータ８０７は、パケットの通信制御を行う。
前記パケットは、主にＩＰアドレス、ポート番号、及びデータを含んで構成される。
前記ＩＰアドレスは、送信元ＩＰアドレスと送信先ＩＰアドレスとを含んで構成される。
前記ポート番号は、送信元ポート番号と送信先ポート番号とを含んで構成される。
近年のルータは、ＩＰマスカレード（ＩＰ ｍａｓｑｕｅｒａｄｅ）機能やＮＡＴ（Ｎｅｔｗｏｒｋ Ａｄｄｒｅｓｓ Ｔｒａｎｓｌａｔｉｏｎ）機能を有していることが多い。ルータ８０７もこれらの機能を有しているものとする。
【０００７】
まず、ＮＡＴ機能の概略について説明する。
ＮＡＴ機能は、プライベートＩＰアドレスとグローバルＩＰアドレスとを一対一で相互変換する機能である。プライベートＩＰネットワーク８０１内のプライベートＩＰアドレスを有するクライアントＰＣ８０３が、グローバルＩＰネットワーク８０２にパケットを送信しようとした場合に、ルータ８０７において、パケットの送信元ＩＰアドレスは、クライアントＰＣ８０３用のグローバルＩＰアドレスに変換される。
【０００８】
クライアントＰＣ８０４、８０５についても同様に、ルータ８０７において、パケットの送信元ＩＰアドレスが、クライアントＰＣ８０４用のグローバルＩＰアドレス、クライアントＰＣ８０５用のグローバルＩＰアドレスにそれぞれ変換される。このようにして、プライベートＩＰネットワーク８０１内の複数のクライアントＰＣ８０３〜８０５がグローバルＩＰネットワーク８０２に同時に接続することが可能となる。
【０００９】
尚、このＮＡＴは主に１つのグローバルＩＰアドレスを複数のコンピュータで共有する場合に用いら、不足がちなグローバルＩＰアドレスを節約できるが、ＮＡＴではパケットヘッダにある発信元と宛先のＩＰアドレスだけを識別するため、プライベートアドレスとグローバルアドレスの対応は常に１対１でなければならない。このため１つのグローバルアドレスを使用して外部にアクセスできるノードは、ある時点で１つだけに制限される。
また、特許文献１には、このＮＡＴについての一般的動作の記載がある。
【００１０】
次に、ＩＰマスカレード機能の概略について説明する。
プライベートＩＰネットワーク８０１内のプライベートＩＰアドレスを有するクライアントＰＣ８０３〜８０５が、グローバルＩＰネットワーク８０２にパケットを送信しようとした場合に、パケットの複数の送信元プライベートＩＰアドレス（クライアントＰＣ毎に異なる）をひとつのグローバルＩＰアドレスに変換し、さらに送信元ポート番号も一定のルールに従って変換するものである。サーバＰＣ８０６から見た場合、クライアントＰＣ８０３〜８０５からそれぞれ送信されたパケットは、送信先ポート番号により区別される。このようにして、プライベートＩＰネットワーク８０１内の複数のクライアントＰＣ８０３〜８０５からグローバルＩＰネットワーク８０２への複数の同時接続要求が、ひとつのグローバルＩＰアドレスで可能となる。
【００１１】
このＩＰマスカレード機能は、別名ＮＡＰＴ（Ｎｅｔｗｏｒｋ Ａｄｄｒｅｓｓ Ｐｏｒｔ Ｔｒａｎｓｌａｔｉｏｎ）あるいはＮＡＴ＋とも呼ばれ、ＮＡＴを改良したものである。ＩＰアドレスだけでなくＴＣＰ／ＵＤＰのポート番号まで動的に変換する技術であり、１つのグローバルＩＰアドレスで複数のＰＣや機器から同時に接続することが可能である。ただし、ポート番号の変換が行なわれるため、外側のネットワーク（例えばインターネット）側から内部のネットワークのＰＣや機器に接続を開始するような使い方はできず、またＩＣＭＰも利用できないなどの制限がある。
また、特許文献２には、このＩＰマスカレードの一般的動作についての記載がある。
【００１２】
【特許文献１】特開平１１−１９６１３５号公報
【特許文献２】特開２０００−３４１３３７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
前記のように、通信制御装置（ルータ）８０７におけるアドレス変換処理により、物理的あるいは論理的に性質の異なる通信区分８０１、８０２に属する通信ノード８０３〜８０５、８０６間で、クライアント−サーバ間の通信が可能となる。
【００１４】
しかしながら、ＩＰマスカレード機能およびＮＡＴ機能を有する通信制御装置８０７を使用した形態では、いずれの場合でも、サーバ側の通信ノード（サーバＰＣ）８０６は、ネットワークレイヤ相当の部分において、通信相手が複数存在することを意識しなければならない。つまり、通信ノード（サーバＰＣ）８０６においては、クライアント側となる通信先の通信ノード８０３〜８０５の数だけ、仮想的な通信チャネル（コネクション）が張られることになり、１対ｎ（ｎは２以上の自然数）の通信を行う必要がある。
【００１５】
さらに、通信区分８０１、８０２が異なる場合、通信先の区分の性質あるいは構成によって、クライアント側の通信ノード８０３〜８０５の数が予想できないケースもある。そのような場合、多数の通信ノード８０３〜８０５との接続（仮想的な通信チャネル）を管理することになり、サーバ側の通信ノード８０６において、前記ネットワークレイヤ相当の負荷が大きくなってしまうという問題がある。
【００１６】
また、サーバ側の通信ノード８０６の制御において、実装上の制限など、何らかの制限事項によって、同時に接続することが可能なクライアント側の通信ノード８０３〜８０５の数が制限されている場合もある。そのような場合、前記従来の方法では、多数の通信ノード８０３〜８０５が同時に接続することは困難であることも多い。
【００１７】
本発明は、以上のような問題点に鑑みてなされたものであり、一の通信区分に属しているｎ個の通信ノードと、他の通信区分に属している１個の通信ノードとが可及的に小さな負荷で、通信を行うことができるようにすることを目的とする。
【課題を解決するための手段】
【００１８】
本発明の通信制御装置は、通信ノードから受信した通信パケットが、多重化を行うものである場合に、その通信パケットから、個々の通信パケットを識別するための識別情報を取得する識別情報取得手段と、前記識別番号取得手段により取得された識別情報が、第１の通信区分に属する通信ノードから受信した通信パケットに含まれていた場合には、その識別情報を一時的に待避してから書き換える第１の識別情報書き換え手段と、前記識別番号取得手段により取得された識別情報が、第２の通信区分に属する通信ノードから受信した通信パケットに含まれていた場合には、その識別情報を前記待避した識別情報に書き換える第２の識別情報書き換え手段と、前記第１の識別情報書き換え手段及び前記第２の識別情報書き換え手段により識別情報が書き換えられた通信パケットを送信する送信手段とを有することを特徴とする。
本発明の通信システムは、前記通信制御装置を含むことを特徴とする。
【００１９】
本発明の通信制御方法は、通信ノードから受信した通信パケットが、多重化を行うものである場合に、その通信パケットから、個々の通信パケットを識別するための識別情報を取得する識別情報取得ステップと、前記識別番号取得ステップにより取得された識別情報が、第１の通信区分に属する通信ノードから受信した通信パケットに含まれていた場合には、その識別情報を一時的に待避してから書き換える第１の識別情報書き換えステップと、前記第１の識別情報書き換えステップにより識別情報が書き換えられた通信パケットを送信する第１の送信ステップと、前記第１の送信ステップにより通信パケットが送信された後に、前記識別番号取得ステップにより取得された識別情報が、第２の通信区分に属する通信ノードから受信した通信パケットに含まれていた場合には、その識別情報を前記待避した識別情報に書き換える第２の識別情報書き換えステップと、前記第２の識別情報書き換えステップにより識別情報が書き換えられた通信パケットを送信する第２の送信ステップとを有することを特徴とする。
【００２０】
本発明のコンピュータプログラムは、通信ノードから受信した通信パケットが、多重化を行うものである場合に、その通信パケットから、個々の通信パケットを識別するための識別情報を取得する識別情報取得ステップと、前記識別番号取得ステップにより取得された識別情報が、第１の通信区分に属する通信ノードから受信した通信パケットに含まれていた場合には、その識別情報を一時的に待避してから書き換える第１の識別情報書き換えステップと、前記第１の識別情報書き換えステップにより識別情報が書き換えられた通信パケットを送信する第１の送信ステップと、前記第１の送信ステップにより通信パケットが送信された後に、前記識別番号取得ステップにより取得された識別情報が、第２の通信区分に属する通信ノードから受信した通信パケットに含まれていた場合には、その識別情報を前記待避した識別情報に書き換える第２の識別情報書き換えステップと、前記第２の識別情報書き換えステップにより識別情報が書き換えられた通信パケットを送信する第２の送信ステップとをコンピュータに実行させることを特徴とする。
【発明の効果】
【００２１】
本発明によれば、第２の通信区分に属する１個の通信ノードが、第１の通信区分に属するｎ（ｎは２以上の自然数）個の通信ノードと通信を行うに際し、あたかも第１の通信区分に属する単一の通信ノードと通信を行っているかのように第２の通信区分に属する通信ノードを振舞わせることが可能になる。これにより、第２の通信区分に属する通信ノードの負担を削減することが可能となる。
【発明を実施するための最良の形態】
【００２２】
次に、図面を参照しながら、本発明の一実施形態を詳細に説明する。
まず、本実施形態の通信システムの全体構成について説明する。
図１は、本実施形態の通信システムの構成の一例を示した図である。
図１において、１は、特定の性質を持った通信区分である。２は、通信区分１と異なった性質を持った通信区分である。通信区分１と通信区分２は、物理的あるいは論理的に異なった境界を挟んでいる。
【００２３】
３０は、通信区分１に属する通信ノード１００、２００、３００と、通信区分２に属する通信ノード４００とが通信を行う場合にパケットの制御を行う通信制御装置である。この通信制御装置３０は、パケットの通信制御に使用するブロック番号変換テーブル４０を有している。
【００２４】
次に、各通信ノード１００、２００、３００、４００の通信形態について説明する。
通信ノード１００、通信ノード２００および通信ノード３００は、通信ノード４００に対してのクライアントであり、通信ノード４００はサーバとなる。
通信ノード１００、通信ノード２００および通信ノード３００と通信ノード４００は、リクエスト−レスポンス方式の特定のプロトコルで通信を行っており、クライアント側の通信ノード１００、２００、３００からのリクエストパケットに対し、サーバ側の通信ノード４００がレスポンスパケットを返す。
【００２５】
このようなプロトコルでは、各リクエストおよび各レスポンスを識別するための、ブロック番号がパケットデータ内に含まれている。
通信制御装置３０が有しているブロック番号変換テーブル４０は、前記ブロック番号を変換する際に使用するテーブルであり、論理的に複数のテーブルが存在する。
【００２６】
次に、本実施形態における通信制御装置３０および通信制御ソフトウェアについて説明する。
本実施形態の通信制御装置３０では、通信制御ソフトウェアが実行可能なコンピュータなどのハードウェアを備えて構成されている。前記コンピュータは、例えば、ＣＰＵ、ＲＡＭ、及びＲＯＭを備えたマイクロコンピュータや、ハードディスクなどを備えている。
前記通信制御ソフトウェアは、例えば、フロッピー(登録商標)ディスクやＣＤ−ＲＯＭなどの記憶媒体に格納された形で通信制御装置３０に供給されたり、外部記憶装置やＬＡＮなどのインタフェース経由で通信制御装置３０にインストールされたりする。また、ブロック番号変換テーブル４０は、例えば前記ハードディスクに記憶される。
【００２７】
次に、通信制御装置３０で動作する通信制御ソフトウェアプログラムが、各通信ノード１００、２００、３００、４００からのパケットを制御する場合の動作手順について説明する。ここで、前記通信制御ソフトウェアは、通信ノード４００とただ一つの通信チャネルを使用して、通信区分１に属する複数の通信ノード１００、２００、３００と同時に通信することを実現させるため、通信チャネル上での多重化制御機能を有している。
【００２８】
以下、通信制御ソフトウェアの動作の一例について詳細を説明する。
まず、図２のフローチャートを参照しながら、通信ノード１００から通信ノード４００へ向けて送信されたパケットを通信制御装置３０が受信した場合の通信制御ソフトウェアの動作の一例について説明する。この動作は主に、通信ノード１００から通信ノード４００へ送信されるリクエストパケットの処理に関するものである。
【００２９】
まず、ステップＳ１０１において、通信ノード１００からのパケットを受信する。
次に、ステップＳ１０２において、受信したパケットのアドレス部を解析する。
次に、ステップＳ１０３において、前記アドレス部の解析結果をもとに、受信したパケットが多重化制御対象のパケットか否かを判別する。この判別の結果、多重化制御対象のパケットである場合にはステップＳ１０４に進む。一方、多重化制御対象のパケットでない場合には、後述するステップＳ１１０に進む。
【００３０】
ステップＳ１０４に進むと、受信したパケットのデータ部を解析する。
次に、ステップＳ１０５において、前記データ部の解析結果をもとに、受信したパケットが多重化制御対象のパケットか否かを判別する。例えば、受信したパケットが、プリントジョブデータや映像データなどのストリーム型データのリクエストに関連するパケットであった場合、多重化してしまうと、そのストリーム型データが不正なデータとなる事が多い。このため、このようなパケットは、多重化制御の対象外とする。この判別の結果、受信したパケットが多重化制御対象のパケットである場合にはステップＳ１０６に進む。一方、多重化対象のパケットでない場合には、後述するステップＳ１１０に進む。
【００３１】
ステップＳ１０６に進むと、ブロック番号変換テーブル４０が通信ノード１００用に割り当て済みか否かを判別する。論理的に複数用意されているブロック番号変換テーブル４０は、通信区分１内の通信ノード１００、２００、３００ごとに割り当てられる。このため、ブロック番号変換テーブル４０のひとつが、通信ノード１００用にすでに割り当て済みの場合にはステップＳ１０７を省略してステップＳ１０８に進む。一方、ブロック番号変換テーブル４０のひとつが、通信ノード１００用に割り当て済みでない場合にはステップＳ１０７に進む。
【００３２】
ステップＳ１０７に進むと、通信ノード１００用にブロック番号変換テーブル４０のひとつを割り当てる。
ステップＳ１０８において、通信ノード１００用のブロック番号変換テーブル４０を用いて、パケットデータ部内のブロック番号を変換する。変換処理は、図５に示すようにして行われる。
【００３３】
次に、ステップＳ１０９において、多重化制御対象の各パケットが、通信制御装置３０から送信されたように振舞うために、アドレス部の送信元情報を通信制御装置３０の情報に置き換える。
次に、ステップＳ１１０において、通信区分１と通信区分２のアドレス体系やパケットフォーマットが異なる場合には、通信区分２用のパケット構造に変換する。
最後に、ステップＳ１１１において、通信ノード４００へパケットを送信する。
【００３４】
なお、通信ノード２００もしくは通信ノード３００からパケットを受信した場合も、この図２のフローチャートを用いて説明したのと同様の処理を行う。
【００３５】
次に、図３のフローチャートを参照しながら、通信ノード４００から通信区分１に属する通信ノード１００、２００、３００へ向けて送信されたパケットを通信制御装置３０が受信した場合の通信制御ソフトウェアの動作の一例について説明する。この動作は主に、通信ノード４００から通信区分１に属する各通信ノード１００、２００、３００へのレスポンスパケットの処理に関するものである。
【００３６】
まず、ステップＳ２０１において、通信ノード４００からのパケットを受信する。
次に、ステップＳ２０２において、受信したパケットのアドレス部を解析する。
次に、ステップＳ２０３において、前記アドレス部の解析結果をもとに、受信したパケットが多重化制御対象のパケットか否かを判別する。この判別の結果、多重化制御対象のパケットである場合はステップＳ２０４に進む。一方、多重化制御対象のパケットでない場合は、後述するステップＳ２１７に進む。
【００３７】
ステップＳ２０４に進むと、受信したパケットのデータ部を解析する。
次に、ステップＳ２０５において、前記データ部の解析結果をもとに、受信したパケットが多重化制御対象のパケットか否かを判別する。この判別の結果、受信したパケットが多重化制御対象のパケットである場合はステップＳ２０６に進む。一方、多重化制御対象のパケットでない場合は、後述するステップＳ２１７に進む。
【００３８】
ステップＳ２０６に進むと、受信したパケットのデータ部からブロック番号を取得する。
次に、ステップＳ２０７において、各通信ノード１００、２００、３００に割り当て済みのブロック番号変換テーブル４０から、前記取得したブロック番号を検索する。
ステップＳ２０８において、どの通信ノード１００、２００、３００に割り当てられたブロック番号変換テーブル４０に前記取得したブロック番号が含まれていたかを判別する。この判別の結果、通信ノード１００用のブロック番号変換テーブル４０が該当した場合にはステップＳ２０９に進み、通信ノード２００用のブロック番号変換テーブル４０が該当した場合にはステップＳ２１３に進み、通信ノード３００用のブロック番号変換テーブル４０が該当した場合はステップＳ２１５に進む。
【００３９】
ステップＳ２０９に進むと、通信ノード１００用のブロック番号変換テーブル４０を用いて、パケットデータ部内のブロック番号を再変換する。この再変換処理により、通信ノード１００から通信ノード４００に送信されたリクエストパケットに含まれていたブロック番号と同じブロック番号が、レスポンスパケットで復元される。この再変換処理は、図５に示すようにして行われる。なお、ステップＳ２１３およびステップＳ２１５では、通信ノード２００および通信ノード３００のデータを用いて、このステップＳ２０９と同等の処理を行う。
【００４０】
次に、ステップＳ２１０において、受信したパケットのアドレス部の送信先情報を通信ノード１００の情報に置き換える。なお、ステップＳ２１４およびステップＳ２１６では、通信ノード２００および通信ノード３００のデータを用いて、このステップＳ２１０と同等の処理を行う。
次に、ステップＳ２１１において、通信区分１と通信区分２のアドレス体系やパケットフォーマットが異なる場合には、通信区分１用のパケット構造に変換する。
最後に、ステップＳ２１２において、通信先の通信ノード１００、２００、又は３００へパケットを送信する。
【００４１】
前記ステップＳ２０３とステップＳ２０５において、受信したパケットが多重化制御対象のパケットでないと判別された場合には、ステップＳ２１７にすすみ、受信したパケットが、サーバ側の通信ノード４００からのイベント型パケットであるかどうかを判別する。この判別の結果、受信したパケットがイベント型のパケットであった場合には、ステップＳ２１８に進み、そうでない場合には前述したステップＳ２１１に進む。
ステップＳ２１８に進むと、イベント型のパケットについてイベント処理を行い、処理を終了する。
なお、前記において、受信した通信パケットが、多重化を行うものであるか否かを判別することは、例えば、前記通信パケットが特定の通信プロトコルが使用されているものか否かの判断結果を用いて行うことができる。
【００４２】
ここで、図４のフローチャートを参照しながら、ステップＳ２１８のイベント処理の一例を詳細に説明する。
【００４３】
まず、ステップＳ３０１において、ブロック番号変換テーブル４０が割り当て済みのクライアント側の各通信ノード１００、２００、３００を列挙する。
次に、ステップＳ３０２において、イベント型パケットを未送信のクライアント側の通信ノード１００、２００、３００があるか否かを判別する。この判別の結果、イベント型パケットを未送信の通信ノード１００、２００、３００がある場合にはステップＳ３０３に進み、ない場合には本処理を終了する。
【００４４】
ステップＳ３０３に進むと、受信したパケットのアドレス部の送信先情報を、イベント型パケットを未送信の通信ノード１００、２００、３００のアドレス情報に置き換える。
次に、ステップＳ３０４において、通信区分１と通信区分２のアドレス体系やパケットフォーマットが異なる場合には、通信区分１用のパケット構造に変換する。
そして、ステップＳ３０５において、通信先の通信ノード１００、２００、３００へパケットを送信し、ステップＳ３０２の処理へ戻る。
【００４５】
以上のように本実施形態では、通信制御装置３０は、クライアント側の通信区分１に属する通信ノード（例えば通信ノード１００）から、多重化制御対象のリクエストパケットを受信すると、通信ノード１００用のブロック番号変換テーブル４０を用いて、変換前のパケットデータ部内のブロック番号（0x0014）を、ブロック番号（0x1001）に変換すると共に、アドレス部の送信元情報を通信制御装置３０の情報に置き換えるようにしてから、リクエストパケットをサーバ側の通信ノード４００に送信する。
【００４６】
その後、サーバ側の通信区分２に属する通信ノード４００から、多重化制御対象のレスポンスパケットを受信すると、ブロック番号変換テーブル４０を参照して、パケットデータ部内のブロック番号（0x1001）を、ブロック番号（0x0014）に再変換すると共に、アドレス部の送信先情報を通信ノード（例えば通信ノード１００）に置き換えるようにしてから、レスポンスパケットをクライアント側の通信ノード（例えば通信ノード１００）に送信する。
【００４７】
以上のようにすることで、サーバ側の通信ノード４００が、単一のクライアント側の通信ノードと通信を行っているように振舞うこととなる。これにより、サーバ側の通信ノード４００の負荷を削減することが可能となる。その結果、サーバ側の通信ノード４００で、同時に接続することが可能なクライアント側の通信ノード１００、２００、３００の数が制限されているような場合でも、クライアント側、サーバ側の各通信ノード１００、２００、３００、４００の実装を変更することなく、サーバ側の通信ノード４００が、クライアント側の複数の通信ノード１００、２００、３００と、１対ｎ（ｎは２以上の自然数）の通信を行えるクライアント−サーバ間の通信システムを構築することができる。
【００４８】
なお、本実施形態における通信システムを、図６に示すように、イーサネット(登録商標)等で接続されたコンピュータネットワークに適用することも可能である。また、図７に示すように、コンピュータとプリンタなどの周辺機器とが接続されたシステムに適用することも可能である。
【００４９】
（本発明の他の実施形態）
上述した実施形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置あるいはシステム内のコンピュータに対し、前記実施形態の機能を実現するためのソフトウェアのプログラムコードを供給し、そのシステムあるいは装置のコンピュータ（ＣＰＵあるいはＭＰＵ）に格納されたプログラムに従って前記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
【００５０】
また、この場合、前記ソフトウェアのプログラムコード自体が上述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそのプログラムコードをコンピュータに供給するための手段、例えば、かかるプログラムコードを格納した記録媒体は本発明を構成する。かかるプログラムコードを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００５１】
また、コンピュータが供給されたプログラムコードを実行することにより、上述の実施形態の機能が実現されるだけでなく、そのプログラムコードがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）あるいは他のアプリケーションソフト等と共同して上述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
【００５２】
さらに、供給されたプログラムコードがコンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
【図面の簡単な説明】
【００５３】
【図１】本発明の実施形態を示し、通信システムの構成の一例を示した図である。
【図２】本発明の実施形態を示し、クライアント側の通信ノードからサーバ側の通信ノードへ向けて送信されたパケットを通信制御装置が受信した場合の通信制御ソフトウェアの動作の一例について説明するフローチャートである。
【図３】本発明の実施形態を示し、サーバ側の通信ノードからクライアント側の通信ノードへ向けて送信されたパケットを通信制御装置が受信した場合の通信制御ソフトウェアの動作の一例について説明するフローチャートである。
【図４】本発明の実施形態を示し、イベント処理の一例を詳細に説明するフローチャートである。
【図５】本発明の実施形態を示し、ブロック番号変換テーブルを用いて、パケットデータ部内のブロック番号を変換する流れと、変換したブロック番号を復元する流れとを概念的に示した図である。
【図６】本発明の実施形態を示し、通信システムの構成の他の例を示した図である。
【図７】本発明の実施形態を示し、通信システムの構成のその他の例を示した図である。
【図８】従来の技術を示し、通信システムの構成を示した図である。
【符号の説明】
【００５４】
１、２  通信ノード
３０  通信制御装置
４０  ブロック番号変換テーブル
１００、２００、３００  クライアント側の通信ノード
４００  サーバ側の通信ノード
【図１】
2006340003.tif 000003
【図２】
2006340003.tif 000004
【図３】
2006340003.tif 000005
【図４】
2006340003.tif 000006
【図５】
2006340003.tif 000007
【図６】
2006340003.tif 000008
【図７】
2006340003.tif 000009
【図８】
2006340003.tif 000010