(57)【特許請求の範囲】
【請求項１】
ローカルネットワークと接続される第１の通信インタフェースと、
インターネットと接続される複数のアクセスルータと接続される１または複数の第２の通信インタフェースと、
前記第１の通信インタフェースと前記１または複数の第２の通信インタフェースのうちの１つとを用いて中継され、前記ローカルネットワーク上の１台の端末と前記インターネット上の１台の端末との間で構成されるコネクションにおいて、前記コネクションの接続開始からの時間の情報を用いて、前記コネクションとは別のコネクションが、前記コネクションの確立に用いられたものと同じ前記第２の通信インタフェースを中継経路とするか、を決定する経路決定部と、
を備えたことを特徴とする通信装置。
【請求項２】
請求項１に記載の経路決定部は、経路を決定できる通信時間の情報として前記コネクションのうち前記先頭パケットが前記第１の通信インタフェースで受信される第１のインタフェース側からのコネクションの接続開始からの経過時間を用い、１つの前記第１のインタフェース側からのコネクションの接続開始から一定時間以内に接続を開始する、別の１または複数の前記第１のインタフェース側からのコネクションの中継経路を、最初の前記第１のインタフェース側からのコネクションの中継経路と同一となるように、前記第２の通信インタフェースを決定すること
を特徴とする請求項１に記載の通信装置。
【請求項３】
請求項２に記載の経路決定部は、経路を決定できる通信時間の情報として前記第１のインタフェース側からのコネクションの接続開始から次の前記第１のインタフェース側からのコネクションの接続開始までの経過時間が一定時間以内の場合、後から接続開始した前記第１のインタフェース側からのコネクションは、１つ前の前記第１のインタフェース側からのコネクションの中継経路と同一となるように前記第２の通信インタフェースを決定すること
を特徴とする請求項２に記載の通信装置。
【請求項４】
前記複数のアクセスルータのうちいずれかと対応する前記第２の通信インタフェースとポート番号またはＩＰアドレスとの対応を示す経路割り当てテーブルとを備え、
請求項１から３のいずれかに記載の経路決定部は、前記経路割り当てテーブルに登録されたポート番号またはＩＰアドレスと一致する前記第１のインタフェース側からのコネクションの中継経路として、通信の時間の情報に関係なく前記経路割り当てテーブルにポート番号またはＩＰアドレスに対して登録された前記第２の通信インタフェースを中継経路として決定すること
を特徴とする請求項１または３のいずれかに記載の通信装置。
【請求項５】
前記コネクションの接続開始を示す前記先頭パケットは、ＴＣＰのＳＹＮパケットであることを特徴とする請求項２から４のいずれかに記載の通信装置。
【請求項６】
前記複数の第２の通信インタフェースの各々の単位時間当たりの通信量を測定し、その値により新たに通信を開始した最初の前記第１のインタフェース側からのコネクションが使用する前記第２の通信インタフェースを決定することを特徴とする請求項１から５のいずれかに記載の通信装置。
【請求項７】
宛先ＩＰアドレスおよび送信元ＩＰアドレスと宛先ポート番号と送信元ポート番号と、一つの前記アクセスルータと接続された複数の第２の通信インタフェースの一つとが対応づけられたルーティングテーブルとを備え、
前記第１の通信インタフェースが、ＴＣＰのＳＹＮパケットを受信した場合、または前記ルーティングテーブルに未登録のＵＤＰパケットを受信した場合に経路を決定し、宛先ＩＰアドレスおよび送信元ＩＰアドレスと宛先ポート番号と送信元ポート番号と、接続された第２の通信インタフェースとの情報がルーティングテーブルに記憶されることを特徴とする請求項１から６のいずれかに記載の通信装置。
【請求項８】
ローカルネットワークと接続される第１の通信インタフェースと、インターネットに接続される複数のアクセスルータと１または複数の第２の通信インタフェースのうちの１つと、を用いて中継され、前記ローカルネットワーク上の１台の端末と前記インターネット上の１台の端末との間で構成されるコネクションにおいて、前記コネクションの接続開始からの時間の情報を用いて、前記コネクションとは別のコネクションが、前記コネクションの確立に用いられたものと同じ前記第２の通信インタフェースを中継経路とするか、を決定することを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は通信装置及び通信方法に関するものである。
【背景技術】
【０００２】
従来の通信装置は、ＨＴＴＰなどのレイヤ７プロトコル中のユーザ識別情報をキーとしてユーザセッションを識別し、ユーザセッション毎に同一の経路を経由するように振り分けることで、複数の通信インタフェースや経路が存在する場合の負荷分散を実現していた（例えば、特許文献１）。
また、複数の通信インタフェースのうちの１つで受信パケットを受信したとき、送信元アドレスと通信インタフェースを記憶しておき、そのアドレス宛のパケットを他の通信インタフェースから受信した場合は、アドレスを記憶している通信インタフェースから送信することにより、最初に受信したパケットに対応する逆向きのパケットが同一の経路で中継されるようにする方法も提案されている（例えば、特許文献２）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特ＷＯ２００３−００７１６０号公報
【特許文献２】特開２０１１−９７４５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の通信装置は、パケットのユーザセッションを判別するためには、上位レイヤのプロトコルを解析するため、多数存在するプロトコルごとに中継パケットの内容を精査する別々の処理が必要であった。そのため、このような中継時のパケット精査処理量が大きく、自動車に搭載したり、家庭内で使ったりする普及版の中継装置をソフトウェアで実現する場合、中継遅延の原因となるとともに、中継性能の低下をまねいていた。更に、パケット精査は上位レイヤのプロトコルごとに精査方法が異なるため、詳細を開示していないプロトコルや、将来の新しいプロトコルには対応できないという問題点があった。【０００５】
この発明は上記のような問題点を解決するためになされたもので、上位レイヤに依存せずにユーザセッションを構成するパケットの中継を同一経路で実施することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、第１の通信インタフェースと、インターネットと接続される複数のアクセスルータと接続される第２の通信インタフェースと、第１の通信インタフェースと１または複数の第２の通信インタフェースのうちの１つを用いて中継されるコネクションにおいて、コネクションの接続開始を示す先頭パケットを受信したときに経路を決定できる通信の時間または接続の情報を用いて複数のアクセスルータのうちいずれかと対応する第２の通信インタフェースを中継経路として決定する経路決定部と、を備えたことを特徴とする。
【発明の効果】
【０００７】
本発明にかかる装置は、上記の構成を備えるため、上位レイヤのプロトコルを解析することなしに、負荷分散をすると同時に同一のユーザセッションを構成するコネクションを同一のアクセスルータを介して通信するようにすることができる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１における通信ネットワークを示すシステム構成図。
【図２】実施の形態１における通信装置１のハードウェア構成を示す構成図。
【図３】実施の形態１における通信装置１のソフトウェア構成図。
【図４】実施の形態１における経路決定時の動作を示すシーケンス図。
【図５】実施の形態１におけるルーティングテーブル２７の例。
【図６】実施の形態１における第２の通信インタフェース管理テーブル２８の例。
【図７】実施の形態１におけるタイマ管理テーブル２６の例。
【図８】実施の形態１におけるルータソフト２５の処理を示すフロー図。
【図９】実施の形態１における経路決定ソフト２３の処理を示すフロー図
【図１０】実施の形態１におけるタイマソフト２４の処理を示すフロー図。
【図１１】実施の形態２における経路決定ソフト２３の処理を示すフロー図。
【図１２】実施の形態３における通信装置１のソフトウェア構成図。
【図１３】実施の形態３の経路割当テーブル３０を示す図。
【図１４】実施の形態３における経路決定ソフト２３の処理を示すフロー図。
【発明を実施するための形態】
【０００９】
以下に、本発明にかかる通信装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１０】
実施の形態１．
図１は実施の形態１における通信ネットワークを示すシステム構成図である。
図１のネットワークは、通信装置１と、通信装置１と接続されるローカルネットワーク５において有線または無線にて接続される通信端末２と、ローカルネットワーク５とは別に通信装置１と有線または無線にて接続されるアクセスルータ３と、アクセスルータ３とインターネット６を介して接続されるサーバ４とから構成されている。
【００１１】
通信装置１は、ローカルネットワーク５に含まれる通信端末２ａ、２ｂと遠隔地のサーバ４ａ、４ｂの通信を、複数のアクセスルータ３ａ、３ｂを経由する複数の経路に振り分けて中継し、通信の負荷分散を行う機能を持つ機能を有する。
通信端末２ａ、２ｂは、ローカルネットワーク５に属し、通信装置１およびアクセスルータ３ａ、３ｂ、インターネット６を介して、遠隔地のサーバ４ａ、４ｂと通信する機能を有する。
尚、図１においては、通信端末２は２台である例を示しているが、端末は1台でもよいし反対に３台以上であってもよい。
【００１２】
アクセスルータ３ａ、３ｂは、ＮＡＴ（Network Address Translation）、ＮＡＰＴ（Network Address Port Translation）などの機能を用いてインターネット６との通信を提供するアクセスルータである。
尚、図１においては、アクセスルータ３は２台である例を示しているが、アクセスルータは３台以上であってもよい。
【００１３】
サーバ４ａ、４ｂは、インターネット６を介して通信端末２と通信を行い、各種サービスを提供するものである。
尚、図１においては、サーバ４ａ、４ｂは２台である例を示しているが、１台のサーバ４でもよいし、反対に３台以上であってもよい。
また、図１において通信端末２ａ、２ｂにサービスを提供するものとしてクライアント-サーバシステムを例に記載しているが、これをクラウドサービスで実現してもよい。
【００１４】
ローカルネットワーク５は、通信端末２ａ、２ｂおよび通信装置１で構成される、例えば、個人住宅や自動車といったプライベートで小規模なローカル環境のネットワークである。
インターネット６は、ローカルネットワーク５を構成する通信端末２と遠隔地にあるサーバ間のパケット通信を提供する、広域公衆網である。
以降、実施の形態１は、1台以上の通信端末２からインターネット６上にある１台以上のサーバ４等と通信する際に複数のアクセスルータ３と接続するためにレイヤに依存せずに通信する方法について説明する。
【００１５】
次に、通信装置１の詳細について説明する。
図２は、実施の形態１における通信装置１のハードウェア構成を示す構成図である。
図２において、第１のインタフェース１１は、ローカルネットワーク５を経由して通信端末２と通信を行うための通信部である。たとえば、ローカルネットワーク５は、無線LANやEthernet、Bluetoothなどを用いて構成され、そのための通信インタフェースとして、専用のＬＳＩやＦＰＧＡ等用いて実現することができる。
【００１６】
第２の通信インタフェース１２ａ、１２ｂは、図１におけるアクセスルータ３ａ、３ｂと通信を行うためのインタフェース部である。たとえば、通信装置１とアクセスルータ３ａ、３ｂ間の通信は、USB、無線LAN、Ethernet(登録商標)、Bluetooth(登録商標)を用いて行われ、そのための通信インタフェースとして、専用のＬＳＩやＦＰＧＡ等用いて実現することができる。本実施の形態においては、第２の通信インタフェース１２ａとアクセスルータ３ａとが接続されるとともに、第２の通信インタフェース１２ｂとアクセスルータ３ｂとが接続される例について示しているが、アクセスルータ２台が１つの第２の通信インタフェース２で接続し、以下に説明する機能を担保できるのであれば、第２の通信インタフェース２は１台でもよい。
【００１７】
ＣＰＵ１３は、通信装置１の動作をソフトウェアにより処理するＣＰＵ（Central Processing Unit）である。
Random Access MemoryであるＲＡＭ１４は、ＣＰＵ１３が実行するソフトウェアを、Read Only MemoryであるＲＯＭ１６からロードし、また第１の通信インタフェース１１や第２の通信インタフェース１２ａ、１２ｂから受信した通信データを一時的に格納する通信バッファとして用いる。
タイマ１５はＣＰＵ１３が設定した時間間隔でタイムアウトを発生して、ＣＰＵ１３に通知するものである。
ＲＯＭ１６は、ＣＰＵ１３で動作するソフトウェアなどが格納されるものである。
【００１８】
次に、通信装置１のソフトウェア構成の例を示す。
図３は、実施の形態１における通信装置１のソフトウェア構成図である。
第１の通信制御ソフト２１は、第１のインタフェース１１を制御してローカルネットワーク５と送受信する、通信制御処理のためのソフトウェアである。第１の通信制御ソフト２１の処理（第１の通信制御部）は、ＣＰＵ１３または、第１のインタフェース１１内の処理回路またはＦＰＧＡによって行われる。
第２の通信制御処理ソフト２２ａ、２２ｂは、第２の通信インタフェース１２ａ、１２ｂを制御して、それぞれ接続されているアクセスルータ３ａ、３と送受信する、通信制御処理のためのソフトウェアである。第２の通信制御処理ソフト２２の処理（第２の通信制御部）は、ＣＰＵ１３または、第１のインタフェース１２内の処理回路またはＦＰＧＡによって行われる。
尚、第２の通信インタフェース１２が1台で構成可能な場合、アクセスルータ３の台数に応じて第２の通信インタフェース１２に含まれる第２の通信制御処理ソフト２２の数が決定される。
【００１９】
経路決定ソフト２３は、新規のコネクションについて、インターネット６上のサーバ４と通信する際に用いる経路、すなわち通信に用いる第２の通信インタフェース１２a、１２ｂのうちいずれとなるかを決定する。経路決定ソフト２３の処理（経路決定部）は、ＣＰＵ１３によって行われる。尚、ＵＤＰ（User Datagram Protocol）はコネクションレス型プロトコルであるが、説明の便宜上、ＵＤＰの一連の通信の開始から終了までをＴＣＰ（Transmission Control Protocol）と同様に、ここでは、コネクションと記述する。
【００２０】
タイマソフト２４は、経路決定ソフト２３の処理により起動され、指定時間経過を経路決定処理ソフト２３の処理のために通知するソフトウェアである。タイマソフト２４の処理（タイマ処理部）は、タイマ１５及びＣＰＵ１３によって行われる。
ルータソフト２５は、ルーティングテーブル２７の内容に従い、第１の通信制御ソフト２１の処理から出力され受信したパケットを第２の通信制御ソフト２２ａ、２２ｂのいずれかに処理されるために中継させるとともに、第２の通信制御ソフト２２ａ、２２ｂの処理で受信されたパケットを第１の通信制御ソフト２１の処理のために出力する。ルータソフト２５の処理（ルータ処理部）は、ＣＰＵ１３によって行われる。
【００２１】
タイマ管理テーブル２６は、タイマの起動状態などを管理するテーブルである。
ルーティングテーブル２７は、ＴＣＰまたはＵＤＰコネクション毎にサーバ４との通信に用いる第２の通信インタフェース１２ａ、１２ｂを記載したテーブルである。タイマ管理テーブル２６は、主にＲＡＭ１４に記憶されている。
【００２２】
第２の通信インタフェース管理テーブル２８は、第２の通信インタフェース１２ａ、１２ｂのそれぞれを、通信経路として使用中のコネクションおよびその通信量を記載したテーブルである。第２の通信インタフェース管理テーブル２８は、主にＲＡＭ１４に記憶されている。
通信量テーブル２９は、ウェルノウンポート（well-known port：TCP/IPの主要なプロトコルで使用されているポート）番号とそれに対応する通信量を記載したテーブルで、通信装置１にあらかじめ登録しておいてあるテーブルである。通信量テーブル２９は、ＲＡＭ１４またはＲＯＭ１６に記憶されている。
【００２３】
次に本実施例における動作をしめす。
図４は、実施の形態１における経路決定時の動作を示すシーケンス図である。
図４において、通信装置１、通信端末２ａ、アクセスルータ３ａ、３ｂ、サーバ４ａ、４ｂ、ローカルネットワーク５は、図１と同じである。パケットシーケンスＮｏ．１〜５は、各コネクションの最初の１パケットを示している。尚、図４では、わかりやすくするために各コネクションの最初の１パケットのみを図示している。
図４の詳細は別途動作説明時に説明する。
【００２４】
図５は、実施の形態１におけるルーティングテーブル２７の例である。
プロトコル種別５１は、ＴＣＰまたはＵＤＰのいずれかを示す。
ローカルＩＰアドレス５２は、コネクションのローカルネットワーク側の端末のＩＰアドレスである。
ローカルポート番号５３はこのコネクションが使用するローカルネットワーク側の端末のＴＣＰまたはＵＤＰのポート番号である。
リモートＩＰアドレス５４は、このコネクションのサーバのＩＰアドレスである。リモートポート番号５５は、このコネクションでサーバが利用するＴＣＰまたはＵＤＰのポート番号である。
通信量５６は、コネクションの単位時間当たりの通信量を示す。この通信量は、第２のインタフェース１２からアクセスルータ３、アクセスルータ３からインターネット６の回線の状況によって変動するものである。
インタフェースＩＤ５７は、このコネクションのパケットをサーバに送信するときに用いるインタフェースを示す識別子である。
【００２５】
図６は、実施の形態１における第２の通信インタフェース管理テーブル２８の例である。
第２の通信インタフェースＩＤ６１は、第２の通信インタフェースを識別するための識別子である。
タイプ６２は、アクセスルータ３ａ、３ｂ、がインターネット６と通信するために使用する通信手段を示す。
通信速度６３は、アクセスルータ３ａ、３ｂとインターネット６との間の通信速度を示す。
空き通信量６４は、通信速度６３から現在このインタフェースを使用しているコネクションが必要とする通信量を引いた、インタフェースの空き通信量の概算である。
【００２６】
また、図７は実施の形態１におけるタイマ管理テーブル２６の一例である。
タイマ起動状態７１は、タイマ１５の動作状態を示し、起動中または停止中のいずれかである。
選択インタフェースＩＤは、サーバ宛パケットの通信経路として選択されている通信インタフェースＩＤ（すなわち本実施の形態の場合、第２の通信インタフェース１２ａなのか１２ｂなのか）を示す。
【００２７】
次に、動作の詳細を示す。
図８は、実施の形態１におけるルータソフト２５の処理を示すフロー図である。
図９は、実施の形態１における経路決定ソフト２３の処理を示すフロー図である。
図１０は、実施の形態１におけるタイマソフト２４の処理を示すフロー図である。
【００２８】
最初に図４におけるパケットＮｏ．１についての動作を説明する。
まず通信端末２ａからローカルネットワーク５を経由して通信装置１の第１の通信インタフェース１１でパケットＮｏ．１を受信すると、第１の通信制御ソフト２１の処理によってルータソフト２５の処理にパケットＮｏ．１を渡す。ここで図４中に記載のＴＣＰ  ＳＹＮは、ＴＣＰで接続を確立するためのパケットで、パケットＮｏ．１は、ＴＣＰで接続を確立するために通信端末２ａからアクセスルータ３ａを経由してサーバ４ａへ送信されるパケットである。
通信装置１内のルータソフト２５の処理は、図８のフローに従って、パケットＮｏ．１の処理を実施する。
【００２９】
ルータソフト２５の処理は、まずパケットを受け取ると、ステップ８０１でパケットのＩＰアドレスを精査してプロトコルがＴＣＰまたはＵＤＰか、それともそれ以外かを判断する。
ＴＣＰまたはＵＤＰの場合は、ステップ８０２において、ルーティングテーブル２７を参照し、プロトコル種別５１、ローカルＩＰアドレス５２、ローカルポート番号５３、リモートＩＰアドレス５４、リモートポート番号５５が一致するものと検索する。
ステップ８０３で一致するものがなかった場合、ステップ８０４でパケットを経路決定ソフト２３の処理に渡す。
【００３０】
経路決定ソフト２３の処理について、図９のフローに従って説明する。
経路決定ソフト２３の処理は、パケットＮｏ．１を受け取ると、ステップ９０１でパケットＮｏ．１が受信されたインタフェースが第１のインタフェース１１か、確認する。
パケットＮｏ．１は第１のインタフェース１１側で受信されているので、ステップ９０２において、タイマ管理テーブル２６のタイマ起動状態７１が起動中であるか、確認する。
【００３１】
通信装置１が最初にパケットを受信するとき、タイマ１５は停止中であるので、パケットＮｏ．１を処理する場合、タイマ１５は停止中である。そのため、ステップ９０３に進み、サーバ４ａに送信するための経路を決定する。具体的には、第２の通信インタフェース管理テーブル２８の空き通信量６４が最も大きいインタフェースを選択する。
次に、ステップ９０４でタイマ１５を規定時間後にタイムアウトするように起動する。  尚、規定時間とは、ユーザセッション開始時に確立される複数のコネクションの先頭パケットをすべて受信するのに十分な時間である。
そして、ステップ９０５で、タイマ管理テーブル２６のタイマ起動状態７１を起動中に変更し、選択インタフェースＩＤ７２に、ステップ９０３で選択した第２の通信インタフェースＩＤ６１の値を記載する。
【００３２】
次に、ステップ９０６で、ルーティングテーブル２７にパケットＮｏ．１のコネクションを追加する。まず、パケットＮｏ．１のＩＰヘッダを精査し、プロトコル種別５１にはＴＣＰまたはＵＤＰを記載し、ローカルＩＰアドレス５２、ローカルポート番号５３、リモートＩＰアドレス５４、リモートポート番号５５を記録する。尚、パケットＮｏ．１の場合、プロトコル種別５１にはＴＣＰを記載し、また、パケットＮｏ．１は第１の通信インタフェース１１で受信されたパケットなので、ローカルＩＰアドレス５２、ローカルポート番号５３には、それぞれ送信元ＩＰアドレスと送信元ポート番号を記載し、リモートＩＰアドレス５４とリモートポート番号５５にはそれぞれ宛先ＩＰアドレスおよび宛先ポート番号を記載する。通信量５６には、通信量テーブル２９をパケットＮｏ．１のポート番号で検索し、該当する通信量を記載する。尚、該当するものが見つからない場合は、あらかじめ決められた固定値を記載する。
インタフェースＩＤ５７には、タイマ管理テーブル２６の選択インタフェースＩＤ７２を記載する。以後、このコネクションに属するパケットは、このルーティングテーブル２７に登録された情報に従い、中継されるようになる。
次に、ステップ９０７で、第２の通信インタフェース管理テーブル２８の空き通信量６４から、ルーティングテーブル２７の通信量５６を減算する。
次に、ステップ９０８で、パケットＮｏ．１を選択インタフェースＩＤ７２に対応する第２の通信制御ソフト２２の処理にパケットＮｏ．１を渡す。ここでは例として、第２の通信制御ソフト２２ａに渡すものとする。
【００３３】
最後に、第２の通信制御ソフト２２ａは、アクセスルータ３ａに、サーバ４ａに中継してもらうために、パケットを送信する。
パケットＮｏ．１がサーバ４ａに到達すると、サーバ４ａは応答パケットを送信する。この応答パケットは、アクセスルータ３ａを経由して、通信装置１の第２の通信インタフェース１２ａで受信される。第２の通信制御ソフト２２ａの処理はパケットをルータソフト２５の処理に渡す。
【００３４】
ルータソフト２５の処理は、図８に示すフローに従って実施される。
ルータソフト２５の処理は、応答パケットを受け取ると、パケットＮｏ．１の処理と同様、ステップ８０１でパケットのＩＰアドレスを精査してプロトコルがＴＣＰまたはＵＤＰか、それともそれ以外かを判断する。
次にステップ８０２においてルーティングテーブル２７で、プロトコル種別５１、ローカルＩＰアドレス５２、ローカルポート番号５３、リモートＩＰアドレス５４、リモートポート番号５５が一致するものと検索する。
ステッ８０３では、既にパケットＮｏ．１で該当するコネクションが登録されているので、ステップ８０５で、応答パケットを受信した通信インタフェースを確認する。
応答パケットは第２の通信インタフェース側で受信しているので、ステップ８０６で第１の通信インタフェース１１のための第１の通信制御ソフト２１の処理に応答パケットを渡す。
最後に、第１の通信制御ソフト２１の処理は応答パケットをパケットの宛先ＩＰアドレスに従って第１の通信インタフェース１１から通信端末２ａに送信する。
【００３５】
次に、通信端末２ａがこのコネクションに属するパケットを送信すると、そのパケットは通信装置１の第１の通信インタフェース１１で受信される。そして、第１の通信インタフェース１１の第１の通信制御ソフト２１の処理において、ルータソフト２５の処理にパケットを渡す。
ルータソフト２５の処理は、図８のフローに従１って、パケットの処理を実施する。
ルータソフト２５の処理はパケットを受け取ると、パケットＮｏ．１の処理と同様、ステップ８０１でパケットのＩＰアドレスを精査してプロトコルがＴＣＰまたはＵＤＰか、それともそれ以外かを判断し、ステップ８０２においてルーティングテーブル２７で、プロトコル種別５１、ローカルＩＰアドレス５２、ローカルポート番号５３、リモートＩＰアドレス５４、リモートポート番号５５が一致するものと検索する。
ステップ８０３では、既にパケットＮｏ．１で該当するコネクションが登録されているので、ステップ８０５でパケットを受信した通信インタフェースを確認する。パケットは第１の通信インタフェース側で受信しているので、ステップ807でルーティングテーブル２７のインタフェースＩＤ５７に対応する第２の通信制御ソフト２２の処理、この場合は第２の通信制御ソフト２２ａの処理にパケットを渡す。
最後に、通信制御ソフト２２ａの処理は、アクセスルータ3ａに、サーバ４ａへ中継してもらうために、パケットを送信する。
以後、このコネクションに属するパケットは、同様の処理により、アクセスルータ3ａを介する経路で通信される。
【００３６】
次に、図４に示す、パケットＮｏ．１のコネクションと同一のサービスを実現するために確立される、宛先アドレスであるサーバ４ｂへ中継してもらうためのパケットＮｏ．２のコネクションの処理について、説明する。
複数のコネクションを用いてサービスを実現するアプリケーションの場合、サービス開始時に複数のコネクションを一斉に確立する。そのため、パケットＮｏ．１と同一のサービスに使用されるパケットＮｏ．２は、パケットＮｏ．１から短時間のうちに通信装置１の第１の通信インタフェース１１で受信される。
第１の通信インタフェース１１のための第１の通信制御ソフトの処理は、パケットＮｏ．１の場合と同様に、ルータソフト２５の処理にパケットＮｏ．２を渡す。
ルータソフト２５の処理は、Ｎｏ．１と全く同様の処理を、図８のフローに従って行い、パケットＮｏ．２を経路決定ソフト２３の処理に渡す。
【００３７】
経路決定ソフト２３の処理は、図９のフローに従ってパケットを処理する。
経路決定ソフト２３の処理は、パケットＮｏ．２を受け取ると、ステップ９０１でパケットが受信されたインタフェースが第１の通信インタフェース１１側か、確認する。
パケットＮｏ．２は通信インタフェース１１側で受信されているので、ステップ９０２において、図７のタイマ管理テーブル２６のタイマ起動状態７１が起動中であるか、確認する。
【００３８】
ここで、すでにパケットＮｏ．１の処理でタイマ１５は起動中であるので、パケットＮｏ．１と異なりステップ９０３〜９０５の処理を実施せずに、ステップ９０６に進み、以後、パケットＮｏ．１と全く同様の処理を行う。
その結果、パケットＮｏ．２のためのルーティングテーブル２７の選択インタフェースIDには、パケットＮｏ．１と同じインタフェースＩＤが設定され、パケットＮｏ．２はパケットＮｏ．１と同じアクセスルータ３ａを介してサーバ４ｂに送信される。
以後、パケットＮｏ．２と同じコネクションに属するパケットは、パケットＮｏ．１の場合と全く同じように処理され、結果として、パケットＮｏ．１のコネクションに属するパケットと同様に、アクセスルータ３ａを介してすべて通信される。
このようにして、パケットＮｏ．１とユーザセッションに属するコネクションは、タイマ１５がタイムアウトするより前に通信を開始するので、すべてパケットＮｏ．１と同じアクセスルータ３ａを介して通信されるようになる。
【００３９】
次にタイマ１５がタイムアウトした時の処理について説明する。タイマ１５がタイムアウトすると、タイマソフト２４の処理は、図１０のステップ１００１に従いタイマ管理テーブル２６のタイマ起動状態７１を停止中にする。
タイマ１５のタイムアウト後、新しいサービスのためのコネクション、すなわち図４のパケットＮｏ．４が通信装置１に受信されると、パケットＮｏ．１と全く同じように経路決定ソフト２３の処理によって新たに経路を決定してタイマ１５を起動する。新しい経路は第２の通信インタフェース管理テーブル２８の空き通信量６４に従って、より通信量に余裕のある経路が選ばれるため、パケットＮｏ．１と同じ経路、すなわち同じアクセスルータが選ばれる場合もあるし、別の経路、すなわち別のアクセスルータが選ばれる場合もある。
【００４０】
ＴＣＰおよびＵＤＰ以外のプロトコルのパケットが通信装置１で受信された場合、第１の通信制御ソフト２１の処理、または第２の通信制御ソフト２２ａ、２２ｂ、の処理によって、パケットをルータソフト２５の処理に渡すと、ルータソフト２５の処理は、図８のフローに従い、ステップ８０１でＴＣＰまたはＵＤＰ以外と判断し、ステップ８０８に進む。そして、ステップ８０８ではパケットが受信された通信インタフェースを確認し、第１の通信インタフェース１１で受信されていた場合は、ステップ８０９において第２の通信インタフェース管理テーブル２８の先頭に登録された第２のインタフェースＩＤ６１に対応する第２の通信制御ソフト２２の処理を介して、その第２の通信インタフェース１２ａ、１２ｂに接続されているアクセスルータ３ａ、３ｂにパケットを送信する。第２の通信インタフェース１２で受信されていた場合は、ステップ８１０において第１の通信インタフェースの第１の通信制御ソフトの処理にパケットを介して宛先ＩＰアドレスの示す情報端末２ａ、２ｂにパケットを送信する。
【００４１】
また、図４においては、コネクションを開始するパケットは通信端末２ａが送信しているが、サーバ４ａが送信した場合について説明する。
例えば、サーバ４ａがコネクションを開始するパケットをアクセスルータ３ａ経由で通信端末２ａに送信した場合、その応答パケットは必ずアクセスルータ３ａ経由でサーバ４ａに送信する必要がある。なぜなら、アクセスルータ３ａはＮＡＴ（Network Address Translation）またはＮＡＰＴ（Network Address Port Translation）でアドレス変換を行うため、応答パケットが別のアクセスルータ（図１でいうアクセスルータ３ｂ）を経由すると、サーバ４ａは、自分が送信したパケットの応答であると認識できないためである。
【００４２】
そのため、経路決定ソフト２３の処理にてルーティングテーブル２７にコネクションを登録する際に、図９において、パケットＮｏ．１やパケットＮｏ．２と異なり、受信した第２の通信インタフェース１２をインタフェースＩＤ５７として登録する（ステップ９０９）。そして、ステップ９１０でパケットを第１の通信制御ソフト２１の処理に渡して、第１の通信制御ソフト２１の処理は、パケットの宛先ＩＰアドレスの示す通信端末（この場合は通信端末２ａ）にパケットを送信する。
【００４３】
以上のように、本発明では、第１の通信インタフェース１１とインターネット６と接続される複数のアクセスルータ３と接続される第２の通信インタフェース１２と、第１の通信インタフェース１１から第２の通信インタフェース１２へ経由するパケットに対し、パケットの宛先とのコネクションの接続開始からの時間に応じて第２の通信インタフェース１２を決定する経路決定部と、を備え、経路を決定できる通信時間の情報としてコネクションのうち先頭パケットが第１のインタフェース１１で受信される第１のインタフェース１１側からのコネクションの接続開始からの経過時間を用い、１つの第１のインタフェース１１側からのコネクションの接続開始から一定時間以内に接続を開始する別の１または複数の前記第１のインタフェース１１側からのコネクションの中継経路を、最初の第１のインタフェース１１側からのコネクションの中継経路と同一となるようにしたので、一定時間内に開始されるコネクションを一つのユーザセッションを構成するコネクションとしているので、上位レイヤのプロトコルを解析せずに、同一のユーザセッションを構成する全てのコネクションを同一のアクセスルータを介して通信するようにすることができる。
【００４４】
尚、以上の説明では、通信量テーブル２９によりあらかじめ設定されたコネクション毎の推定通信量により、負荷分散を実施していたが、実際の通信量を単位時間ごとに中継するパケットごとに計測して、空き通信量を求め、使用する経路を決定しても同様の効果が得られる。
【００４５】
実施の形態２
以上の実施の形態１では、ユーザセッションを構成する複数のコネクションの確立が開始されてからすべての確立が終了するまでの時間をタイマで区切ることで、同一ユーザセッションを構成するコネクションのすべてが同一の経路で中継されるようにしたものであるが、次に、コネクションの確立が開始される間隔を計測することで、同一のユーザセッションに属する全てのコネクションの確立の終了を判断する場合の実施形態を示す。
【００４６】
実施の形態２は、実施の形態１と同じ構成、を有しており、以下に示す以外の処理についても実施の形態１と同じである。
経路決定ソフト２３の処理が実施の形態１と異なるため、実施の形態１と異なる部分について説明する。
図１１に実施の形態２における経路決定ソフト２３の処理のフローを示す。尚、図１１中ステップ９０１からステップ９０３、ステップ９０５からステップ９１０は、実施の形態１と同一の処理を行う。
【００４７】
動作について説明する。
ユーザセッションが開始されると、まず、図４のパケットＮｏ．１が実施の形態１と同様に通信装置１に受信されると、図８のルータソフト２５の処理を経て実施の形態１の場合の図９に対応する図１１の経路決定ソフト２３の処理に渡される。ここまでの動作は実施の形態１と全く同一である。
【００４８】
経路決定ソフト２３の処理は、実施の形態１と同様、ステップ９０１でパケットＮｏ．１が第１の通信インタフェース１１で受信されたことを確認すると、ステップ９０２でタイマ１５が起動中であるか確認する。パケットＮｏ．１の場合は停止中であるので、ステップ９０３で経路決定する。次にステップ１１０１においてタイマ１５を起動するが、この際、実施の形態１と異なり、規定値として、同一ユーザセッションに属するコネクションの確立が終了したと判断できる、コネクションの先頭パケットが受信されない時間を設定する。以後は、実施の形態１と同様に処理をする。
【００４９】
次に、パケットＮｏ．２が通信装置１で受信されると、実施の形態１と同様に経路決定ソフト２３の処理に渡される。経路決定ソフト２３の処理は、実施の形態１と同様にステップ９０１において第１の通信インタフェース１１で受信されたことを確認すると、ステップ９０２でタイマ１５の起動状態を確認する。タイマ１５は起動中なので、ステップ１１０２でタイマ１５をステップ１１０１と同じ時間で再起動する。つまり、タイマ１５のタイムアウト時間が延長される。もしくは、タイマ１５をステップ１１０１と同じ時間ではなく、異なる時間で再起動してもよい。以後は、実施の形態１と同様の処理を実施する。
その他の処理は、全て実施の形態１と同じである。
【００５０】
以上のように、本発明では、第１の通信インタフェース１１とインターネット６と接続される複数のアクセスルータ３と接続される第２の通信インタフェース１２と、第１の通信インタフェース１１から第２の通信インタフェース１２へ経由するパケットに対し、パケットの宛先とのコネクションの接続開始からの時間に応じて第２の通信インタフェース１２を決定する経路決定部と、を備え、コネクションの接続開始から一定時間以内に別のコネクションの先頭パケットが第１の通信インタフェース１１から第２の通信インタフェース１２へ経由する場合、最初のコネクションの確立開始から全てのコネクションの確立開始が終了するまでの計測時間を延長するようにして、一定時間内に新規のコネクションの確立開始が行われなかった場合、１つのユーザセッションのためのコネクションの確立が終了したと判断するようにしているので、上位レイヤのプロトコルを解析せずに、同一のユーザセッションを構成する全コネクションを同一のアクセスルータを介して通信するようにすることができる。
すなわち、経路決定部は、経路を決定できる通信時間の情報として第１のインタフェース１１側からのコネクションの接続開始から次の第１のインタフェース１１側からのコネクションの接続開始までの経過時間が一定時間以内の場合、後から接続開始した第１のインタフェース１１側からのコネクションは、１つ前の第１のインタフェース１１側からのコネクションの中継経路と同一となるように第２の通信インタフェースを決定することで上位レイヤのプロトコルを解析せずに、同一のユーザセッションを構成する全コネクションを同一のアクセスルータを介して通信するようにすることができる。
【００５１】
実施の形態３．
以上の実施の形態１及び実施の形態２では、コネクションの確立開始のタイミングでユーザセッションを判別し、負荷分散を行っていたが、次に、コネクションの確立開始のタイミングでユーザセッションを判別することに加え、アプリケーションごとに負荷分散を行う形態について説明する。尚、基本は実施の形態１と同じ構成、動作を可能とするが、なんらかの切替によりアプリケーションごとに負荷分散を行う動作の処理に関し、追加となる部分についてのみ説明する。
【００５２】
実施の形態３のハードウェア構成は、実施の形態１と同一である。
図１２に実施の形態３のソフトウェア構成図を示す。実施の形態１に対して経路割当テーブル３０が追加されている。
経路割当テーブル３０は、コネクションのウェルノウンポート番号毎に使用する第２の通信インタフェース１２をあらかじめ記載したテーブルである。
【００５３】
図１３は、実施の形態３の経路割当テーブル３０を示す図である。ポート番号１３１は、ＴＣＰまたはＵＤＰで用いる、ウェルノウンポート番号を記載する。選択インタフェースＩＤ１３２には、ポート番号１３１を用いたコネクションが使用すべき第２の通信インタフェース１２のインタフェースＩＤである。尚、この経路割当テーブル３０には、予め値をパラメータとして与えられるものとする。
【００５４】
次に動作について説明する。
図１４は、実施の形態３における経路決定ソフト処理２３の処理を示すフロー図である。
ユーザセッションが開始されると、まず、図４のパケットＮｏ．１が実施の形態１と同様に通信装置１に受信され、ルータソフト２５の処理により経路決定ソフト２３の処理に渡される。ここまでの動作は実施の形態１と全く同一である。
【００５５】
経路決定ソフト２３の処理は、ステップ１４１でパケットＮｏ．１が第１の通信インタフェース１１で受信されたことを確認すると、ステップ１４２で宛先および送信元のポート番号を経路割当テーブル３０で検索し、一致するものがないか確認する。ステップ１４３において経路割当テーブル３０に一致するものがあった場合、ステップ１４４においてそのテーブルの選択インタフェースＩＤを中継先として、ルーティングテーブル２７に登録する。一方、ステップ１４３において経路割当テーブル３０に一致するものがなかった場合、ステップ１４５において第２の通信インタフェース管理テーブル２８の先頭の第２の通信インタフェース１２を中継先として、ルーティングテーブル２７に登録する。そして、ステップ１４６において、ルーティングテーブル２７に登録したインタフェースIDに対応する第２の通信制御ソフト２２の処理にパケットを渡して、以後、実施の形態１と同様に処理する。
その他の処理は、タイムアウト処理を行わない以外は、全て実施の形態１と同じである。
【００５６】
以上のように、本発明では、第１の通信インタフェース１１とインターネット６と接続される複数のアクセスルータ３と接続される第２の通信インタフェース１２と、複数のアクセスルータ３のうちいずれかと対応する第２の通信インタフェース１２とポート番号との対応を示す経路割当テーブル３０と、経路割当テーブル３０に登録されたポート番号またはＩＰアドレスと一致する第１のインタフェース１１側からのコネクションの中継経路として、通信の時間の情報に関係なく経路割当テーブル３０にポート番号またはＩＰアドレス毎に登録された第２の通信インタフェース１２を中継経路として決定する経路決定部を備えたので、予め登録されたポート番号を使用しているコネクションについては、予め負荷分散を考慮して決められたインタフェースを用いるとともに、登録されていない未知のポート番号を使用するコネクションについては、全て１つのインタフェースを用いるようにしているので、上位レイヤのプロトコルを解析することなしに、負荷分散をすると同時に同一のユーザセッションを構成するコネクションを同一のアクセスルータを介して通信するようにすることができる。
【００５７】
以上のように、実施の形態１から３を総合すると、上位レイヤの情報を用いずに、第１の通信インタフェース１１から第２の通信インタフェース１２へ経由するパケットに対し経路を決定できる通信の時間または接続の情報を用いて複数のアクセスルータ３のうちいずれかと対応する第２の通信インタフェースをできればよい。
実施の形態１〜３においては、セッションの開始時間または、ポート番号を用いたが、
たとえば、上位レイヤの情報を用いずに、経路を決定できる情報として、実施の形態３のポート番号をＩＰアドレスに変更することでも同様の効果は奏する。また、実施の形態１ではコネクション開始後一定の時間の間、空き通信量に基づいて第２の通信インタフェースを決定していたが、基本は実施の形態１を基本としつつ、空き通信量が所定以下となる場合にポート番号またはＩＰアドレスに基づく経路選択をするようにしてもよい。
【００５８】
したがって、本発明では、第１の通信インタフェース１１とインターネット６と接続される複数のアクセスルータ３と接続される第２の通信インタフェース１２と、第１の通信インタフェース１１と第２の通信インタフェース１２のうちの１つを用いて中継されるコネクションにおいて、コネクションの接続開始を示す先頭パケットを受信したときに経路を決定できる通信の時間または接続の情報を用いて複数のアクセスルータ３のうちいずれかと対応する第２の通信インタフェース１２を中継経路として決定する経路決定部を備えたので、上位レイヤのプロトコルを解析することなしに、負荷分散をすると同時に同一のユーザセッションを構成するコネクションを同一のアクセスルータを介して通信するようにすることができる。
【符号の説明】
【００５９】
１  通信装置
２ａ  通信端末
２ｂ  通信端末
３ａ  アクセスルータ
３ｂ  アクセスルータ
４ａ  サーバ
４ｂ  サーバ
５  ローカルネットワーク
６  インターネット
１１  第１の通信インタフェース
１２ａ  第２の通信インタフェース
１２ｂ  第２の通信インタフェース
１３  ＣＰＵ
１４  ＲＡＭ
１５  タイマ
１６  ＲＯＭ
２１  第１の通信制御ソフト
２２ａ  第２の通信制御ソフト
２２ｂ  第２の通信制御ソフト  
２３  経路決定ソフト
２４  タイマソフト
２５  ルータソフト
２６  タイマ管理テーブル
２７  ルーティングテーブル
２８  第２の通信インタフェース管理テーブル
２９  通信量テーブル
３０  経路割当テーブル
５１  プロトコル種別
５２  ローカルＩＰアドレス
５３  ローカルポート番号
５４  リモートＩＰアドレス
５５  リモートポート番号
５６  通信量
５７  インタフェースＩＤ
６１  第２の通信インタフェースＩＤ
６２  タイプ
６３  通信速度
６４  空き通信量
７１  タイマ起動状態
７２  選択インタフェースＩＤ
１３１  ポート番号
１３２  選択インタフェースＩＤ
【要約】
通信装置１は、第１の通信インタフェース１１とインターネット６と接続される複数のアクセスルータ３と接続される第２の通信インタフェース１２と、第１の通信インタフェース１１から第２の通信インタフェース１２へ経由するパケットに対し、パケットの宛先とのコネクションの接続開始からの時間に応じて第２の通信インタフェース１２を決定する経路決定部と、を備えたので、一定時間内に開始されるコネクションを一つのユーザセッションを構成するコネクションとしているので、レイヤのプロトコルを解析せずに、同一のユーザセッションを構成するコネクションを同一のアクセスルータを介して通信するようにすることができる。【図１】
0005994957.tif 000002
【図２】
0005994957.tif 000003
【図３】
0005994957.tif 000004
【図４】
0005994957.tif 000005
【図５】
0005994957.tif 000006
【図６】
0005994957.tif 000007
【図７】
0005994957.tif 000008
【図８】
0005994957.tif 000009
【図９】
0005994957.tif 000010
【図１０】
0005994957.tif 000011
【図１１】
0005994957.tif 000012
【図１２】
0005994957.tif 000013
【図１３】
0005994957.tif 000014
【図１４】
0005994957.tif 000015