ルータおよび通信プログラム
【課題】VPN通信が実行される場合でも、他のアプリケーションを安定動作させてサービス品質を確保することができるルータおよび通信プログラムを提供する。
【解決手段】ルータでは、受信した通知信号が通信路設定通知である場合(S1、S3:YES)、他のルータとの間でVPNの通信路が設定される(S5)。ステップS5で設定された通信路の数量に基づいて、通信路単位の送信速度上限が決定される(S7)。ステップS5の通信路設定が有効化されると(S9)、各通信路ではステップS7で決定された送信速度上限を超えない送信速度で通信制御が実行される。
【解決手段】ルータでは、受信した通知信号が通信路設定通知である場合(S1、S3:YES)、他のルータとの間でVPNの通信路が設定される(S5)。ステップS5で設定された通信路の数量に基づいて、通信路単位の送信速度上限が決定される(S7)。ステップS5の通信路設定が有効化されると(S9)、各通信路ではステップS7で決定された送信速度上限を超えない送信速度で通信制御が実行される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークに接続された端末装置間の通信制御をおこなうルータおよび通信プログラムに関し、詳細にはVPN(Virtual Private Network)通信を実行可能なルータおよび通信プログラムに関する。
【背景技術】
【0002】
近年、ルータの高機能化や多機能化が進んでおり、例えばVPN機能や電話機能などを備えたVOIP(Voice Over Internet Protocol)ルータが知られている。VPNでは、公衆回線網の一部を仮想的な専用線として利用する。VPNセッションが確立されたルータ間では、セキュリティ性の高い通信が行われる。近年では、インターネット上にVPNを構築することが提案されている。例えば、複数の端末装置を、それぞれVPN機能を有するルータを介してインターネットに接続する。各端末装置に接続されたルータが、既定のプロトコルで暗号化通信を行うことで、インターネット上でVPNが実現される。
【0003】
上記のようなVPN通信では、ルータでデータの暗号化・復号化を行うため、通常の通信制御と比べてルータのCPU負荷が大きい。そのため、VPN通信時の通信速度が大きくなりすぎるとルータのCPUが過負荷となり、ルータ上で動作している他のアプリケーション(例えば、電話機能)を実行するために必要なCPUの処理能力が不足することがあった。この場合、電話機能などのリアルタイム性が要求されるアプリケーションの動作が遅延しやすくなり、サービス品質に悪影響を及ぼすおそれがあった。
【0004】
そのため、従来では、CPU負荷をリアルタイムに測定し、現時点のCPU負荷に応じて動的に通信速度を制御することで、CPUが過負荷になることを抑制可能なVOIPシステムが知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2003−46563号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、ルータ上で動作しているアプリケーションは、現時点の処理内容や動作状況に応じて、急に多大なCPUの処理能力を必要とする場合がある。特許文献1に記載のVOIPシステムでは、現時点のCPU負荷に応じて通信速度が決定されるため、アプリケーションが急に多大なCPUの処理能力を必要とした場合に、ルータが対応できないおそれがあった。そうすると、ルータ上のアプリケーションの動作が遅延しやすくなり、サービス品質に悪影響を及ぼすおそれがあった。
【0007】
本発明は、上述した課題を解決するためになされたものであり、VPN通信が実行される場合でも、他のアプリケーションを安定動作させてサービス品質を確保することができるルータおよび通信プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の第一態様に係るルータは、ローカル接続された一の端末装置と、ネットワークを介して接続された他の端末装置との通信制御と、前記通信制御とは異なるアプリケーション制御とを並行して実行可能なCPUを備えたルータであって、前記一の端末装置と前記他の端末装置とを結ぶVPN(Virtual Private Network)セッションの確立要求を受信した場合に、前記他の端末装置に接続されている他の前記ルータとの間で通信路を設定する通信路設定手段と、前記通信路の数量に基づいて、前記通信路単位の速度上限を決定する速度上限決定手段と、少なくとも前記速度上限決定手段によって決定された前記速度上限を超えない通信速度で、前記CPUに前記通信路毎の通信制御を実行させる通信制御手段とを備え、前記速度上限決定手段は、少なくとも前記アプリケーション制御に必要な前記CPUの処理能力が確保される前記通信速度を、前記速度上限に決定することを特徴とする。
【0009】
これによれば、VPNセッションの確立要求に応じて通信路が設定され、通信路の数量に基づいて通信路単位の速度上限が決定される。各通信路では、決定された速度上限を超えない通信速度で通信制御が実行される。速度上限は、少なくともアプリケーション制御に必要なCPUの処理能力が確保される通信速度が決定される。したがって、通信路の数量が増加しても、アプリケーション制御に必要なCPU処理能力が確保される。ひいては、VPN通信が実行される場合でも、他のアプリケーションを安定動作させてサービス品質を確保することができる。
【0010】
第一態様において、前記速度上限決定手段によって決定された前記速度上限を、前記通信路に接続された前記他のルータに送信する速度上限送信手段と、前記通信路に接続された前記他のルータから、前記速度上限を受信する速度上限受信手段と、前記速度上限決定手段によって決定された前記速度上限と、前記速度上限受信手段によって受信された前記速度上限とのうちで小さいものを選択する速度上限選択手段とを備え、前記通信制御手段は、前記速度上限選択手段によって選択された前記速度上限を超えない通信速度で、前記CPUに前記通信路毎の通信制御を実行させてもよい。
【0011】
この場合、ルータで決定された速度上限と、通信路が設定された他のルータで決定された速度上限のうちで小さいものが、通信路の速度上限として選択される。したがって、通信路が設定された各ルータのCPU処理能力が異なる場合でも、各ルータでアプリケーション制御に必要なCPU処理能力を確保することができる。
【0012】
第一態様において、前記速度上限送信手段は、前記通信路が複数である場合、複数の前記通信路にそれぞれ接続されている前記他のルータに前記速度上限を送信し、前記速度上限受信手段は、前記通信路が複数である場合、複数の前記通信路にそれぞれ接続されている前記他のルータから前記速度上限を受信し、前記速度上限選択手段は、前記速度上限決定手段によって決定された前記速度上限と、前記速度上限受信手段によって受信された全ての前記速度上限とのうちで最も小さいものを選択し、前記通信制御手段は、前記速度上限選択手段によって選択された前記速度上限を超えない通信速度で、前記CPUに全ての前記通信路の通信制御を実行させてもよい。
【0013】
この場合、ルータで決定された速度上限と、複数の通信路にそれぞれ設定された他のルータで決定された速度上限のうちで最も小さいものが、通信路の速度上限として選択される。したがって、複数の通信路に対して一つの速度上限のみが適用されるので、通信路に応じて異なる速度上限を適用する必要がなく、データ通信に関する処理負担を軽減することができる。
【0014】
第一態様において、前記速度上限決定手段は、前記通信路の数量が大きいほど、全ての前記通信路の速度上限の総計が小さくなるように、前記通信路単位の速度上限を決定してもよい。この場合、通信路の数量が大きいほどCPUの処理負担が大きくなる現象(いわゆる、オーバーヘッド)を考慮して、より最適な速度上限を決定することができる。
【0015】
本発明の第二態様に係る通信プログラムは、ローカル接続された一の端末装置と、ネットワークを介して接続された他の端末装置との通信制御と、前記通信制御とは異なるアプリケーション制御とを並行して実行可能なCPUを備えたルータであるコンピュータに、前記一の端末装置と前記他の端末装置とを結ぶVPN(Virtual Private Network)セッションの確立要求を受信した場合に、前記他の端末装置に接続されている他の前記ルータとの間で通信路を設定する通信路設定ステップと、前記通信路の数量に基づいて、前記通信路単位の速度上限を決定する速度上限決定ステップと、少なくとも前記速度上限決定ステップによって決定された前記速度上限を超えない通信速度で、前記CPUに前記通信路毎の通信制御を実行させる通信制御ステップとを備え、前記速度上限決定ステップは、少なくとも前記アプリケーション制御に必要な前記CPUの処理能力が確保される前記通信速度を、前記速度上限に決定することを特徴とする。
【0016】
これによれば、VPNセッションの確立要求に応じて通信路が設定され、通信路の数量に基づいて通信路単位の速度上限が決定される。各通信路では、決定された速度上限を超えない通信速度で通信制御が実行される。速度上限は、少なくともアプリケーション制御に必要なCPUの処理能力が確保される通信速度が決定される。したがって、通信路の数量が増加しても、アプリケーション制御に必要なCPU処理能力が確保される。ひいては、VPN通信が実行される場合でも、他のアプリケーションを安定動作させてサービス品質を確保することができる。
【図面の簡単な説明】
【0017】
【図1】ルータ1を含む通信システムの全体構成を示す図である。
【図2】ルータ1の電気的構成を示すブロック図である。
【図3】速度上限テーブル20のデータ構成を示す図である。
【図4】第1実施形態における送信速度上限の決定方法を説明するための図である。
【図5】第1実施形態におけるメイン処理のフローチャートである。
【図6】バッファ処理のフローチャートである。
【図7】データ送信処理のフローチャートである。
【図8】上限合意テーブル30のデータ構成を示す図である。
【図9】第2実施形態における送信速度上限の決定方法を説明するための図である。
【図10】第2実施形態におけるメイン処理のフローチャートである。
【図11】変形例における速度上限テーブル20のデータ構成を示す図である。
【発明を実施するための形態】
【0018】
本発明を具体化した実施の形態について、図面を参照して説明する。参照する図面は、本発明が採用しうる技術的特徴を説明するために用いられるものであり、単なる説明例である。
【0019】
図1〜図7を参照して、本発明の第一実施形態について説明する。図1を参照して、本発明に係るルータ1を含む通信システムの全体構成について説明する。この通信システムは、各拠点に設置されたルータ1および通信端末(図1の例では、PC2および複合機3)を含んでいる。各拠点では、PC2および複合機3が、それぞれルータ1にローカル接続されている。各拠点のルータ1は、インターネット9を介して相互に接続されている。したがって、自拠点に設置されたPC2および複合機3は、自拠点のルータ1および他拠点のルータ1を介して、他拠点のPC2および複合機3と通信を行うことができる。以下の説明では、自拠点のルータ1、PC2、複合機3について説明するが、他拠点のルータ1、PC2、複合機3についても、同様である。
【0020】
ルータ1は、VPN機能や電話機能などを備えたVOIPルータである。PC2は、汎用のパーソナル・コンピュータであり、CPU、ROM、RAM、HDD等を備える。PC2のHDDには、自拠点のルータ1の通信設定を行うためのプログラムが記憶されている。複合機3は、公知の複合機と同様の構成であり、FAX、プリンタ、アナログ電話などの機能を有する。
【0021】
本実施形態では、各拠点のルータ1間にVPNの通信路を設定することで、各拠点のルータ1を結ぶVPNセッションを確立する。これにより、各拠点のユーザはPC2を使用して、セキュリティ性の高い通信を行うことができる。また、各拠点のルータ1の電話機能によって、各拠点のユーザは複合機3を用いてアナログ電話による音声通話を行うことができる。
【0022】
図2を参照して、ルータ1の電気的構成について説明する。ルータ1は、CPU11、ROM12、RAM13、フラッシュメモリ14、表示部15、アナログ電話インタフェイス16、イーサネット(登録商標)スイッチ17を備え、これらの構成がバスを介して電気的に接続されている。アナログ電話インタフェイス16は、アナログ電話(本実施形態では、複合機3)と接続するための通信インタフェイスである。イーサネット(登録商標)スイッチ17は、PC2およびインターネット9と接続するための通信インタフェイスである。
【0023】
ROM12には、ルータ1に接続された自拠点の通信端末と、インターネット9を介して接続された他拠点の通信端末との通信制御を実行するための通信制御プログラムが記憶されている。さらに、ROM12には、通信制御以外のサービスを実行するためのアプリケーションプログラムが記憶されている。ルータ1では、通信制御プログラムによる通信制御と、アプリケーションプログラムによるサービス提供制御(以下、アプリケーション制御という)とを並行して実行することができる。
【0024】
本実施形態では、インターネット9を介してアナログ電話で音声通話を実行する電話制御アプリケーションが、ROM12に記憶されている。電話制御アプリケーションは、ルータ1に接続された自拠点のアナログ電話から入力されるアナログ音声をデジタル信号に変換して、インターネット9を介して他拠点のアナログ電話に向けて送信する。また、インターネット9を介して他拠点のアナログ電話から受信したデジタル信号をアナログ音声に変換して、自拠点のアナログ電話に出力する。このアナログ電話制御によって、従来のアナログ電話を使用して、インターネット9を介した音声通話を実現することができる。
【0025】
RAM13には、自拠点の通信端末から受信した他拠点の通信端末宛てのデータを一時的に記憶する送信バッファ(図示外)と、他拠点の通信端末から受信した自拠点の通信端末宛てのデータを一時的に記憶する受信バッファ(図示外)とが設けられている。送信バッファおよび受信バッファは、所定のデータ量まで一時的に記憶することができる。
【0026】
フラッシュメモリ14には、VPNの通信路毎に、通信先となる他拠点のルータ1のアドレス情報を記憶する通信制御テーブル(図示外)が記憶されている。通信制御テーブル(図示外)に登録されている他拠点のルータ1との間で、1つの通信路が形成される。ルータ1は、通信制御テーブル(図示外)に記憶されているアドレス情報に基づいて、他拠点のルータ1とVPN通信を実行する。さらに、フラッシュメモリ14には、後述の速度上限テーブル20(図3参照)が記憶されている。
【0027】
図3および図4を参照して、速度上限テーブル20について説明する。図3に示すように、速度上限テーブル20には、ルータ1に設定されているVPNの通信路の数量(通信路数)に応じて、各通信路における送信速度上限が定義されている。送信速度上限は、少なくともアプリケーション制御に必要なCPU11の処理能力が確保される送信速度の上限値である。本実施形態では、ルータ1に設定されている通信路数に関係なく、アナログ電話制御に必要なCPU11の処理能力が確保されるような送信速度上限が、速度上限テーブル20に設定されている。
【0028】
ルータ1の通信速度上限(本実施形態では、100Mbps)は一定であるが、通信路単位での通信速度上限は通信路数に応じて変化する。例えば、通信路数が「1」である場合、その通信路の通信速度上限は、ルータ1の通信速度上限と一致する。また、通信路では送信データと受信データの両方が通信されるため、通信路における送信速度上限および受信速度上限の合計値は、ルータ1の通信速度上限を超えない値である必要がある。本実施形態では、ルータ1の通信速度上限が送信速度上限と受信速度上限とに均等に割り振られる。そのため、速度上限テーブル20には、通信路数「1」に対応する通信路単位の送信速度上限に「50Mbps」が定義されている。
【0029】
一方、通信路数が複数である場合、各通信路でデータが送受信されるため、各通信路の通信速度上限の合計値は、ルータ1の通信速度上限を超えない値である必要がある。本実施形態では、ルータ1の通信速度上限が各通信路の通信速度上限に均等に割り振られるため、通信路数が増加するのに伴って通信路単位の通信速度上限(ひいては、送信速度上限)が小さくなる。そのため、速度上限テーブル20には、通信路数が増加するのに伴って送信速度上限が小さくなるように定義されている。
【0030】
例えば、図5に示すように、通信路数が「2」である場合、各通信路の通信速度上限は「50Mbps」となる。通信路毎に送信データと受信データの両方が通信されるため、各通信路における送信速度上限は「25Mbps」となる。したがって、速度上限テーブル20には、通信路数「2」に対応する通信路単位の送信速度上限に「25Mbps」が定義されている。
【0031】
図5〜図7を参照して、第一実施形態において、ルータ1でそれぞれ実行される通信制御のうち、先述した通信路の設定に関する処理について説明する。図5〜図7に示す処理は、ROM12に記憶されている通信制御プログラムに基づいて、CPU11によって並列的に実行される。
【0032】
図5を参照して、ルータ1で実行されるメイン処理について説明する。メイン処理では、まず通知ありか否かが判断される(S1)。例えば、イーサネット(登録商標)スイッチ17が、ルータ1に対する通知信号を受信した場合、通知ありと判断される(S1:YES)。この場合、受信した通知信号が、通信路設定通知であるか否かが判断される(S3)。通信路設定通知は、自拠点の通信端末から送信される、VPNセッションの確立(すなわち、通信路の設定)を要求する信号であり、VPNセッションの確立先となる他拠点のルータ1を示す情報を含む。
【0033】
本実施形態では、自拠点のPC2において、通信設定を行うためのプログラムが起動されると、ルータ1の通信設定を行うための設定用画面(インターフェイス)が表示される。設定用画面でVPNセッションの確立先となる他拠点のルータ1が指定されると、通信路設定通知がPC2に接続されているルータ1に送信される。なお、設定用画面では、VPNセッションの確立先である他拠点のルータ1を複数指定することができる。
【0034】
通知信号が通信路設定通知である場合(S3:YES)、通信路の設定が実行される(S5)。ステップS5では、通信路設定通知が指示するVPNセッションの確立先に基づいて、通信路を設定する必要がある他のルータ1が特定される。特定された他のルータ1のアドレス情報が、通信制御テーブル(図示外)に登録される。ステップS5の実行後、送信速度上限が決定される(S7)。ステップS7では、ステップS5で特定された他のルータ1の数量(つまり、通信路数)に対応する送信速度上限が、速度上限テーブル20(図3参照)に基づいて決定される。ステップS7で決定された送信速度上限は、RAM13の所定記憶エリアにセットされる。
【0035】
ステップS7の実行後、通信路設定が有効化される(S9)。つまり、ステップS5で通信制御テーブル(図示外)に設定された通信路が、ルータ1の通信制御に反映される。詳細には、ルータ1は、自拠点のPC2から他拠点のPC2宛てのデータを受信した場合、他拠点のPC2が接続されている他のルータ1に、受信データをVPN通信で送信する。一方、ルータ1は、他のルータ1から自拠点のPC2宛てのデータをVPN通信で受信して、自拠点のPC2に送信する。
【0036】
通知信号が通信路設定通知でない場合(S3:NO)、通知信号に応じたその他の処理が実行される(S11)。通知がない場合(S1:NO)、あるいは、ステップS9またはS11の実行後、処理はステップS1に戻る。
【0037】
図6を参照して、ルータ1で実行されるバッファ処理について説明する。バッファ処理では、まずデータ送信要求ありか否かが判断される(S31)。具体的には、自拠点のPC2から他拠点のPC2宛てのデータを受信した場合、データ送信要求ありと判断される(S31:YES)。この場合、RAM13の送信バッファ(図示外)に空きありか否かが判断される(S33)。ステップS31で受信されたデータ量が、送信バッファの空き容量以下である場合、送信バッファに空きありと判断される(S33:YES)。この場合、ステップS31で受信されたデータが、送信バッファ(図示外)に書き込まれる(S35)。一方、送信バッファに空きがない場合(S33:NO)、ステップS31で受信されたデータが破棄される(S37)。データ送信要求がない場合(S31:NO)、あるいは、ステップS35またはS37の実行後、処理はステップS31に戻る。
【0038】
図7を参照して、ルータ1で実行されるデータ送信処理について説明する。データ送信処理では、まずRAM13の送信バッファ(図示外)にデータありか否かが判断される(S51)。送信バッファ(図示外)にデータがある場合(S51:YES)、RAM31にセットされている送信速度上限が読み出される(S53)。そして、送信バッファ(図示外)に記憶されているデータが、ステップS53で読み出された送信速度上限内で送信可能であるか否かが判断される(S55)。ステップS55では、公知のトークンバケツフィルタアルゴリズムによって、送信速度上限内で送信可能であるか否かが判断されればよい。
【0039】
送信速度上限内で送信可能であると判断された場合(S55:YES)、送信バッファ(図示外)に記憶されているデータが、先述のデータ送信要求に示される通信端末(本実施形態では、他拠点のPC2)に送信される(S57)。ステップS57で送信されたデータが送信バッファ(図示外)から削除される(S59)。ステップS57の実行後、または送信バッファ(図示外)にデータがない場合(S51:NO)、あるいは送信速度上限内で送信可能でない場合(S55:NO)、処理はステップS51に戻る。
【0040】
以上説明したように、第一実施形態に係るルータ1では、通信路設定通知に応じて通信路が設定され、通信路の数量に基づいて通信路単位の送信速度上限が決定される。各通信路では、決定された送信速度上限を超えない送信速度で通信制御が実行される。送信速度上限は、アナログ電話制御に必要なCPU11の処理能力が確保される送信速度が決定される。したがって、通信路の数量が増加しても、アナログ電話制御に必要なCPU11の処理能力が確保される。ひいては、VPN通信が実行される場合でも、アナログ電話アプリケーションを安定動作させて、アナログ電話の通話品質を確保することができる。
【0041】
図8〜図10を参照して、本発明の第二実施形態について説明する。第一実施形態に係るルータ1は、自端末のみで最適な送信速度上限を決定したのに対し、第二実施形態に係るルータ1は、他のルータ1との間で最適な送信速度上限を合意決定する点で異なる。この相違点に関連する処理および構成以外は、例えば通信システムおよびルータ1の構成等は、第一の実施形態と同じである。従って、第一の実施形態と同一の構成については、同一の番号を付して説明を省略する。
【0042】
本実施形態では、フラッシュメモリ14に、通信制御テーブル(図示外)および速度上限テーブル20(図3参照)に加えて、上限合意テーブル30が記憶されている。図8および図9を参照して、上限合意テーブル30について説明する。図8に示すように、上限合意テーブル30には、各通信路の送信速度上限が設定されている。ただし、ルータ1に設定されていない通信路(図8の例では、通信路3、4)には「未接続」が設定されている。
【0043】
ルータ1に設定される各通信路の送信速度上限は、ルータ1に固有の通信速度上限や、ルータ1に設定されている通信路数などに応じて変化する。図9に示す例では、通信速度上限が等しい5つのルータ1(ルータ「A」〜「E」とする。)が設けられている。ルータ「A」およびルータ「B」は通信路「1」で接続され、ルータ「A」およびルータ「C」は通信路「2」で接続されている。さらに、ルータ「B」は、ルータ「D」およびルータ「E」とも通信路で接続されている。以下の説明では、ルータ「A」を自拠点のルータ1とし、ルータ「A」〜「E」の通信速度上限は「100Mbps」とする。
【0044】
速度上限テーブル20(図3参照)によれば、ルータ「A」には2つの通信路が設定されているため、通信路単位の送信速度上限は「25Mbps」となる。ルータ「B」には3つの通信路が設定されているため、通信路単位の送信速度上限は「16.6Mbps」となる。ルータ「C」には1つの通信路が設定されているため、通信路単位の送信速度上限は「50Mbps」となる。つまり、通信路に接続されているルータ1間で送信速度上限が異なっている。
【0045】
本実施形態では、ルータ1の送信速度上限と受信速度上限は等しい。そのため、通信路における送信速度上限がルータ1ごとに異なる場合、通信路に接続されているルータ1のうちの一方が、受信データを十分に処理できずに遅延やエラーを生じるおそれがある。図9に示す通信路「1」では、ルータ「A」の送信速度上限「25Mbps」は、ルータ「B」の送信速度上限「16.6Mbps」よりも大きい。そのため、通信路「1」において、ルータ「A」からルータ「B」に「25Mbps」でデータ送信された場合、送信速度がルータ「B」の受信速度上限「16.6Mbps」を超えるため、ルータ「B」で処理遅延等が生じるおそれがある。
【0046】
よって、通信路に接続されているルータ1間で送信速度上限が異なっている場合には、通信路の送信速度上限は、各ルータ1の送信速度上限のうちで小さいほうであることが好ましい。具体的に、図9に示す通信路「1」では、送信速度上限は「16.6Mbps」であることが好ましい。これにより、通信路に接続されているルータ1は、いずれも受信データを十分に処理することができる。上限合意テーブル30(図8)は、このような最適な送信速度上限を、後述の処理によって決定する際に用いられるテーブルである。
【0047】
図10を参照して、第二実施形態において、ルータ1でそれぞれ実行される通信制御のうち、先述した通信路の設定に関する処理について説明する。第二実施形態では、ルータ1のメイン処理の詳細が、第一実施形態(図5参照)と異なる。
【0048】
図10に示すように、第二実施形態のメイン処理について説明する。まず、ステップS1〜S7と同様に、通知ありか否かが判断され(S101)、通信路設定通知であるか否かが判断され(S103)、通信路が設定され(S105)、送信速度上限が決定される(S107)。ただし、ステップS107で決定された送信速度上限を、値Dとする。上限合意テーブル30(図8)では、ルータ1に設定されている全ての通信路の送信速度上限が、ステップS107で決定された値Dに設定される。
【0049】
ステップS107の実行後、値Dを示す上限通知が全接続先に送信される(S109)。すなわち、通信情報テーブル(図示外)に登録されている全てのルータ1に対して、値Dを示す上限通知が送信される。上限通知は、通知元のルータ1で決定された、通知先のルータ1との間で設定された通信路の送信速度上限を示す通知信号である。ステップS109の実行後、ステップS9と同様に、通信路設定が有効化される(S111)。
【0050】
図9に示す例では、先述のように、ルータ「A」における通信路単位の送信速度上限は、「25Mbps」である。よって、通信路「1」、「2」の送信速度上限として、「25Mbps」が上限合意テーブル30に設定される(S105、S107)。値D「25Mbps」を示す上限通知が、ルータ「B」、「C」に送信される(S109)。通信路設定が有効化されると(S111)、通信路「1」、「2」では、送信速度上限「25Mbps」でVPN通信を実行可能となる。
【0051】
図10に戻る。通知信号が通信路設定通知でない場合(S103:NO)、通知信号が上限通知であるか否かが判断される(S113)。通知信号が上限通知である場合(S113:YES)、通知元のルータ1に対して設定されている通信路の送信速度上限が、上限合意テーブル30から読み出される(S115)。S113の上限通知が示す送信速度上限を、値Aとする。ステップS115で読み出された送信速度上限を、値Bとする。値Aが値Bよりも大きいか否かが判断される(S117)。値Aが値Bよりも大きい場合(S117:YES)、値Bを示す上限通知が、通知元のルータ1に送信される(S119)。値Aが値B以下である場合(S117:NO)、上限合意テーブル30において、通知元のルータ1に対して設定されている通信路の送信速度上限に、値Aが設定される(S121)。
【0052】
図9に示す例では、ルータ「B」では、ルータ「A」から上限通知を受信すると、上限合意テーブル30から通信路「1」の送信速度上限(値B)「16.6Mbps」が読み出される(S113:YES、S115)。上限通知が示す値A「25Mbps」は値B「16.6Mbps」よりも大きいため、値B「16.6Mbps」を示す上限通知がルータ「A」に送信される(S117:YES、S119)。一方、ルータ「A」では、ルータ「B」から上限通知を受信すると、上限合意テーブル30から通信路「1」の送信速度上限(値B)「25Mbps」が読み出される(S113:YES、S115)。上限通知が示す値A「16.6Mbps」は値B「25Mbps」以下であるため、上限合意テーブル30において通信路「1」の送信速度上限に値A「16.6Mbps」が設定される(S117:NO、S121)。これにより、ルータ「A」、「B」では、いずれも通信路「1」の送信速度上限が「16.6Mbps」に設定される。
【0053】
ルータ「C」では、ルータ「A」から上限通知を受信すると、上限合意テーブル30から通信路「2」の送信速度上限(値B)「50Mbps」が読み出される(S113:YES、S115)。上限通知が示す値A「25Mbps」は値B「50Mbps」以下であるため、上限合意テーブル30において通信路「1」の送信速度上限に値A「25Mbps」が設定される(S117:NO、S121)。これにより、ルータ「A」、「C」では、いずれも通信路「2」の送信速度上限が「25Mbps」に設定される。
【0054】
図10に戻る。通知信号が上限通知でない場合(S113:NO)、通知信号に応じたその他の処理が実行される(S123)。通知がない場合(S101:NO)、または、ステップS111、S119、S121、S123のいずれかの実行後、処理はステップS101に戻る。
【0055】
第二実施形態におけるバッファ処理およびデータ処理は、第一実施形態(図6、図7)と同様である。ただし、本実施形態では、ステップS53において、上限合意テーブル30に設定されている全ての送信速度上限のうちで最も小さい送信速度上限が読み出される。そして、ルータ1に設定されている全ての通信路について、ステップS53で読み出された送信速度上限を共通に用いて、送信速度内で送信可能であるか否かが判断される(S55)。よって、ステップS57において、ルータ1に設定されているいずれの通信路でデータ送信される場合でも、そのデータ送信速度はステップS53で読み出された送信速度上限以下となる。例えば、図8に示す上限合意テーブル30の例では、ステップS53で最も小さい送信速度上限「16.6Mbps」が読み出される(S53)。そして、通信路「1」「2」のいずれにデータ送信を行う場合でも、そのデータ送信速度は「16.6Mbps」以下である(S55、S57)。
【0056】
以上説明したように、第二実施形態に係るルータ1では、第一実施形態と同様に、アナログ電話制御に必要なCPU11の処理能力が確保される送信速度上限が決定される。したがって、VPN通信が実行される場合でも、アナログ電話アプリケーションを安定動作させて、アナログ電話の通話品質を確保することができる。さらに、ルータ1で決定された送信速度上限と、通信路が設定された他のルータ1で決定された送信速度上限のうちで小さいものが、通信路の送信速度上限として適用される。したがって、通信路が設定された各ルータ1のCPU11の処理能力が異なる場合でも、各ルータ1でアナログ電話制御に必要なCPU11の処理能力を確保することができる。
【0057】
特に、ルータ1に複数の通信路が設定されている場合には、ルータ1で決定された送信速度上限と、複数の通信路にそれぞれ設定された他のルータ1で決定された送信速度上限のうちで最も小さいものが、通信路の送信速度上限として適用される。したがって、複数の通信路に対して一つの送信速度上限のみが設定されるので、通信路に応じて異なる送信速度上限を適用する必要がなく、データ通信に関する処理負担を軽減することができる。
【0058】
上記実施形態において、ステップS5、S105を実行するCPU11が、本発明の「通信路設定手段」に相当する。ステップS7、S107を実行するCPU11が、本発明の「速度上限決定手段」に相当する。データ送信処理(図7)を実行するCPU11が、本発明の「通信制御手段」に相当する。ステップS109、S119を実行するCPU11が、本発明の「速度上限送信手段」に相当する。ステップS113を実行するCPU11が、本発明の「速度上限受信手段」に相当する。ステップS117〜S121を実行するCPU11が、本発明の「速度上限選択手段」に相当する。ステップS5、S105が、本発明の「通信路設定ステップ」に相当する。ステップS7、S107が、本発明の「速度上限決定ステップ」に相当する。データ送信処理(図7)が、本発明の「通信制御ステップ」に相当する。
【0059】
なお、本発明は上記実施形態に限定されるものではなく、発明の要旨を変更しない範囲での変更が可能である。例えば、速度上限テーブル20のデータ構成は、図3に例示するものに限定されない。一例として、図11に示す速度上限テーブル20では、ルータ1に設定される通信路数が大きいほど、全ての通信路の通信速度上限の総計が小さくなるように、通信路単位の送信速度上限が設定されている。この場合、通信路数が大きいほどCPU11の処理負担が大きくなる現象(いわゆる、オーバーヘッド)を考慮して、より最適な送信速度上限を決定することができる。
【0060】
また、上記実施形態では、ルータ1が実行可能なアプリケーション制御として、アナログ電話機能を例示した。これに代えて、ファックス機能や音声伝言機能などを、ルータ1が実行可能なアプリケーション制御としてもよい。そして、ルータ1に設定されている通信路数に関係なく、サービス品質を確保したいアプリケーション制御に必要なCPU11の処理能力が確保されるような送信速度上限が、上記のように決定されればよい。さらに、上記実施形態では、ルータ1の通信制御および他のアプリケーション制御をプログラム(つまり、ソフトウエア)で実行している。これに代えて、通信制御および他のアプリケーション制御をマイコン等(つまり、ハードウエア)で実行してもよい。
【0061】
また、第二実施形態では、ルータ1に複数の通信路が設定されている場合には、ルータ1で決定された送信速度上限と、複数の通信路にそれぞれ設定された他のルータ1で決定された送信速度上限のうちで最も小さいものが、通信路の送信速度上限として適用される。これに代えて、ルータ1に複数の通信路が設定されている場合に、各通信路について、その通信路に設定されたルータ1で決定された送信速度上限のうちでそれぞれ最も小さいものを、その通信路に固有の送信速度上限として適用してもよい。
【符号の説明】
【0062】
1 ルータ
2 PC
3 複合機
9 インターネット
11 CPU
12 ROM
13 RAM
14 フラッシュメモリ
16 アナログ電話インタフェイス
17 イーサネット(登録商標)スイッチ
20 速度上限テーブル
24 フラッシュメモリ
30 上限合意テーブル
【技術分野】
【0001】
本発明は、ネットワークに接続された端末装置間の通信制御をおこなうルータおよび通信プログラムに関し、詳細にはVPN(Virtual Private Network)通信を実行可能なルータおよび通信プログラムに関する。
【背景技術】
【0002】
近年、ルータの高機能化や多機能化が進んでおり、例えばVPN機能や電話機能などを備えたVOIP(Voice Over Internet Protocol)ルータが知られている。VPNでは、公衆回線網の一部を仮想的な専用線として利用する。VPNセッションが確立されたルータ間では、セキュリティ性の高い通信が行われる。近年では、インターネット上にVPNを構築することが提案されている。例えば、複数の端末装置を、それぞれVPN機能を有するルータを介してインターネットに接続する。各端末装置に接続されたルータが、既定のプロトコルで暗号化通信を行うことで、インターネット上でVPNが実現される。
【0003】
上記のようなVPN通信では、ルータでデータの暗号化・復号化を行うため、通常の通信制御と比べてルータのCPU負荷が大きい。そのため、VPN通信時の通信速度が大きくなりすぎるとルータのCPUが過負荷となり、ルータ上で動作している他のアプリケーション(例えば、電話機能)を実行するために必要なCPUの処理能力が不足することがあった。この場合、電話機能などのリアルタイム性が要求されるアプリケーションの動作が遅延しやすくなり、サービス品質に悪影響を及ぼすおそれがあった。
【0004】
そのため、従来では、CPU負荷をリアルタイムに測定し、現時点のCPU負荷に応じて動的に通信速度を制御することで、CPUが過負荷になることを抑制可能なVOIPシステムが知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2003−46563号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、ルータ上で動作しているアプリケーションは、現時点の処理内容や動作状況に応じて、急に多大なCPUの処理能力を必要とする場合がある。特許文献1に記載のVOIPシステムでは、現時点のCPU負荷に応じて通信速度が決定されるため、アプリケーションが急に多大なCPUの処理能力を必要とした場合に、ルータが対応できないおそれがあった。そうすると、ルータ上のアプリケーションの動作が遅延しやすくなり、サービス品質に悪影響を及ぼすおそれがあった。
【0007】
本発明は、上述した課題を解決するためになされたものであり、VPN通信が実行される場合でも、他のアプリケーションを安定動作させてサービス品質を確保することができるルータおよび通信プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の第一態様に係るルータは、ローカル接続された一の端末装置と、ネットワークを介して接続された他の端末装置との通信制御と、前記通信制御とは異なるアプリケーション制御とを並行して実行可能なCPUを備えたルータであって、前記一の端末装置と前記他の端末装置とを結ぶVPN(Virtual Private Network)セッションの確立要求を受信した場合に、前記他の端末装置に接続されている他の前記ルータとの間で通信路を設定する通信路設定手段と、前記通信路の数量に基づいて、前記通信路単位の速度上限を決定する速度上限決定手段と、少なくとも前記速度上限決定手段によって決定された前記速度上限を超えない通信速度で、前記CPUに前記通信路毎の通信制御を実行させる通信制御手段とを備え、前記速度上限決定手段は、少なくとも前記アプリケーション制御に必要な前記CPUの処理能力が確保される前記通信速度を、前記速度上限に決定することを特徴とする。
【0009】
これによれば、VPNセッションの確立要求に応じて通信路が設定され、通信路の数量に基づいて通信路単位の速度上限が決定される。各通信路では、決定された速度上限を超えない通信速度で通信制御が実行される。速度上限は、少なくともアプリケーション制御に必要なCPUの処理能力が確保される通信速度が決定される。したがって、通信路の数量が増加しても、アプリケーション制御に必要なCPU処理能力が確保される。ひいては、VPN通信が実行される場合でも、他のアプリケーションを安定動作させてサービス品質を確保することができる。
【0010】
第一態様において、前記速度上限決定手段によって決定された前記速度上限を、前記通信路に接続された前記他のルータに送信する速度上限送信手段と、前記通信路に接続された前記他のルータから、前記速度上限を受信する速度上限受信手段と、前記速度上限決定手段によって決定された前記速度上限と、前記速度上限受信手段によって受信された前記速度上限とのうちで小さいものを選択する速度上限選択手段とを備え、前記通信制御手段は、前記速度上限選択手段によって選択された前記速度上限を超えない通信速度で、前記CPUに前記通信路毎の通信制御を実行させてもよい。
【0011】
この場合、ルータで決定された速度上限と、通信路が設定された他のルータで決定された速度上限のうちで小さいものが、通信路の速度上限として選択される。したがって、通信路が設定された各ルータのCPU処理能力が異なる場合でも、各ルータでアプリケーション制御に必要なCPU処理能力を確保することができる。
【0012】
第一態様において、前記速度上限送信手段は、前記通信路が複数である場合、複数の前記通信路にそれぞれ接続されている前記他のルータに前記速度上限を送信し、前記速度上限受信手段は、前記通信路が複数である場合、複数の前記通信路にそれぞれ接続されている前記他のルータから前記速度上限を受信し、前記速度上限選択手段は、前記速度上限決定手段によって決定された前記速度上限と、前記速度上限受信手段によって受信された全ての前記速度上限とのうちで最も小さいものを選択し、前記通信制御手段は、前記速度上限選択手段によって選択された前記速度上限を超えない通信速度で、前記CPUに全ての前記通信路の通信制御を実行させてもよい。
【0013】
この場合、ルータで決定された速度上限と、複数の通信路にそれぞれ設定された他のルータで決定された速度上限のうちで最も小さいものが、通信路の速度上限として選択される。したがって、複数の通信路に対して一つの速度上限のみが適用されるので、通信路に応じて異なる速度上限を適用する必要がなく、データ通信に関する処理負担を軽減することができる。
【0014】
第一態様において、前記速度上限決定手段は、前記通信路の数量が大きいほど、全ての前記通信路の速度上限の総計が小さくなるように、前記通信路単位の速度上限を決定してもよい。この場合、通信路の数量が大きいほどCPUの処理負担が大きくなる現象(いわゆる、オーバーヘッド)を考慮して、より最適な速度上限を決定することができる。
【0015】
本発明の第二態様に係る通信プログラムは、ローカル接続された一の端末装置と、ネットワークを介して接続された他の端末装置との通信制御と、前記通信制御とは異なるアプリケーション制御とを並行して実行可能なCPUを備えたルータであるコンピュータに、前記一の端末装置と前記他の端末装置とを結ぶVPN(Virtual Private Network)セッションの確立要求を受信した場合に、前記他の端末装置に接続されている他の前記ルータとの間で通信路を設定する通信路設定ステップと、前記通信路の数量に基づいて、前記通信路単位の速度上限を決定する速度上限決定ステップと、少なくとも前記速度上限決定ステップによって決定された前記速度上限を超えない通信速度で、前記CPUに前記通信路毎の通信制御を実行させる通信制御ステップとを備え、前記速度上限決定ステップは、少なくとも前記アプリケーション制御に必要な前記CPUの処理能力が確保される前記通信速度を、前記速度上限に決定することを特徴とする。
【0016】
これによれば、VPNセッションの確立要求に応じて通信路が設定され、通信路の数量に基づいて通信路単位の速度上限が決定される。各通信路では、決定された速度上限を超えない通信速度で通信制御が実行される。速度上限は、少なくともアプリケーション制御に必要なCPUの処理能力が確保される通信速度が決定される。したがって、通信路の数量が増加しても、アプリケーション制御に必要なCPU処理能力が確保される。ひいては、VPN通信が実行される場合でも、他のアプリケーションを安定動作させてサービス品質を確保することができる。
【図面の簡単な説明】
【0017】
【図1】ルータ1を含む通信システムの全体構成を示す図である。
【図2】ルータ1の電気的構成を示すブロック図である。
【図3】速度上限テーブル20のデータ構成を示す図である。
【図4】第1実施形態における送信速度上限の決定方法を説明するための図である。
【図5】第1実施形態におけるメイン処理のフローチャートである。
【図6】バッファ処理のフローチャートである。
【図7】データ送信処理のフローチャートである。
【図8】上限合意テーブル30のデータ構成を示す図である。
【図9】第2実施形態における送信速度上限の決定方法を説明するための図である。
【図10】第2実施形態におけるメイン処理のフローチャートである。
【図11】変形例における速度上限テーブル20のデータ構成を示す図である。
【発明を実施するための形態】
【0018】
本発明を具体化した実施の形態について、図面を参照して説明する。参照する図面は、本発明が採用しうる技術的特徴を説明するために用いられるものであり、単なる説明例である。
【0019】
図1〜図7を参照して、本発明の第一実施形態について説明する。図1を参照して、本発明に係るルータ1を含む通信システムの全体構成について説明する。この通信システムは、各拠点に設置されたルータ1および通信端末(図1の例では、PC2および複合機3)を含んでいる。各拠点では、PC2および複合機3が、それぞれルータ1にローカル接続されている。各拠点のルータ1は、インターネット9を介して相互に接続されている。したがって、自拠点に設置されたPC2および複合機3は、自拠点のルータ1および他拠点のルータ1を介して、他拠点のPC2および複合機3と通信を行うことができる。以下の説明では、自拠点のルータ1、PC2、複合機3について説明するが、他拠点のルータ1、PC2、複合機3についても、同様である。
【0020】
ルータ1は、VPN機能や電話機能などを備えたVOIPルータである。PC2は、汎用のパーソナル・コンピュータであり、CPU、ROM、RAM、HDD等を備える。PC2のHDDには、自拠点のルータ1の通信設定を行うためのプログラムが記憶されている。複合機3は、公知の複合機と同様の構成であり、FAX、プリンタ、アナログ電話などの機能を有する。
【0021】
本実施形態では、各拠点のルータ1間にVPNの通信路を設定することで、各拠点のルータ1を結ぶVPNセッションを確立する。これにより、各拠点のユーザはPC2を使用して、セキュリティ性の高い通信を行うことができる。また、各拠点のルータ1の電話機能によって、各拠点のユーザは複合機3を用いてアナログ電話による音声通話を行うことができる。
【0022】
図2を参照して、ルータ1の電気的構成について説明する。ルータ1は、CPU11、ROM12、RAM13、フラッシュメモリ14、表示部15、アナログ電話インタフェイス16、イーサネット(登録商標)スイッチ17を備え、これらの構成がバスを介して電気的に接続されている。アナログ電話インタフェイス16は、アナログ電話(本実施形態では、複合機3)と接続するための通信インタフェイスである。イーサネット(登録商標)スイッチ17は、PC2およびインターネット9と接続するための通信インタフェイスである。
【0023】
ROM12には、ルータ1に接続された自拠点の通信端末と、インターネット9を介して接続された他拠点の通信端末との通信制御を実行するための通信制御プログラムが記憶されている。さらに、ROM12には、通信制御以外のサービスを実行するためのアプリケーションプログラムが記憶されている。ルータ1では、通信制御プログラムによる通信制御と、アプリケーションプログラムによるサービス提供制御(以下、アプリケーション制御という)とを並行して実行することができる。
【0024】
本実施形態では、インターネット9を介してアナログ電話で音声通話を実行する電話制御アプリケーションが、ROM12に記憶されている。電話制御アプリケーションは、ルータ1に接続された自拠点のアナログ電話から入力されるアナログ音声をデジタル信号に変換して、インターネット9を介して他拠点のアナログ電話に向けて送信する。また、インターネット9を介して他拠点のアナログ電話から受信したデジタル信号をアナログ音声に変換して、自拠点のアナログ電話に出力する。このアナログ電話制御によって、従来のアナログ電話を使用して、インターネット9を介した音声通話を実現することができる。
【0025】
RAM13には、自拠点の通信端末から受信した他拠点の通信端末宛てのデータを一時的に記憶する送信バッファ(図示外)と、他拠点の通信端末から受信した自拠点の通信端末宛てのデータを一時的に記憶する受信バッファ(図示外)とが設けられている。送信バッファおよび受信バッファは、所定のデータ量まで一時的に記憶することができる。
【0026】
フラッシュメモリ14には、VPNの通信路毎に、通信先となる他拠点のルータ1のアドレス情報を記憶する通信制御テーブル(図示外)が記憶されている。通信制御テーブル(図示外)に登録されている他拠点のルータ1との間で、1つの通信路が形成される。ルータ1は、通信制御テーブル(図示外)に記憶されているアドレス情報に基づいて、他拠点のルータ1とVPN通信を実行する。さらに、フラッシュメモリ14には、後述の速度上限テーブル20(図3参照)が記憶されている。
【0027】
図3および図4を参照して、速度上限テーブル20について説明する。図3に示すように、速度上限テーブル20には、ルータ1に設定されているVPNの通信路の数量(通信路数)に応じて、各通信路における送信速度上限が定義されている。送信速度上限は、少なくともアプリケーション制御に必要なCPU11の処理能力が確保される送信速度の上限値である。本実施形態では、ルータ1に設定されている通信路数に関係なく、アナログ電話制御に必要なCPU11の処理能力が確保されるような送信速度上限が、速度上限テーブル20に設定されている。
【0028】
ルータ1の通信速度上限(本実施形態では、100Mbps)は一定であるが、通信路単位での通信速度上限は通信路数に応じて変化する。例えば、通信路数が「1」である場合、その通信路の通信速度上限は、ルータ1の通信速度上限と一致する。また、通信路では送信データと受信データの両方が通信されるため、通信路における送信速度上限および受信速度上限の合計値は、ルータ1の通信速度上限を超えない値である必要がある。本実施形態では、ルータ1の通信速度上限が送信速度上限と受信速度上限とに均等に割り振られる。そのため、速度上限テーブル20には、通信路数「1」に対応する通信路単位の送信速度上限に「50Mbps」が定義されている。
【0029】
一方、通信路数が複数である場合、各通信路でデータが送受信されるため、各通信路の通信速度上限の合計値は、ルータ1の通信速度上限を超えない値である必要がある。本実施形態では、ルータ1の通信速度上限が各通信路の通信速度上限に均等に割り振られるため、通信路数が増加するのに伴って通信路単位の通信速度上限(ひいては、送信速度上限)が小さくなる。そのため、速度上限テーブル20には、通信路数が増加するのに伴って送信速度上限が小さくなるように定義されている。
【0030】
例えば、図5に示すように、通信路数が「2」である場合、各通信路の通信速度上限は「50Mbps」となる。通信路毎に送信データと受信データの両方が通信されるため、各通信路における送信速度上限は「25Mbps」となる。したがって、速度上限テーブル20には、通信路数「2」に対応する通信路単位の送信速度上限に「25Mbps」が定義されている。
【0031】
図5〜図7を参照して、第一実施形態において、ルータ1でそれぞれ実行される通信制御のうち、先述した通信路の設定に関する処理について説明する。図5〜図7に示す処理は、ROM12に記憶されている通信制御プログラムに基づいて、CPU11によって並列的に実行される。
【0032】
図5を参照して、ルータ1で実行されるメイン処理について説明する。メイン処理では、まず通知ありか否かが判断される(S1)。例えば、イーサネット(登録商標)スイッチ17が、ルータ1に対する通知信号を受信した場合、通知ありと判断される(S1:YES)。この場合、受信した通知信号が、通信路設定通知であるか否かが判断される(S3)。通信路設定通知は、自拠点の通信端末から送信される、VPNセッションの確立(すなわち、通信路の設定)を要求する信号であり、VPNセッションの確立先となる他拠点のルータ1を示す情報を含む。
【0033】
本実施形態では、自拠点のPC2において、通信設定を行うためのプログラムが起動されると、ルータ1の通信設定を行うための設定用画面(インターフェイス)が表示される。設定用画面でVPNセッションの確立先となる他拠点のルータ1が指定されると、通信路設定通知がPC2に接続されているルータ1に送信される。なお、設定用画面では、VPNセッションの確立先である他拠点のルータ1を複数指定することができる。
【0034】
通知信号が通信路設定通知である場合(S3:YES)、通信路の設定が実行される(S5)。ステップS5では、通信路設定通知が指示するVPNセッションの確立先に基づいて、通信路を設定する必要がある他のルータ1が特定される。特定された他のルータ1のアドレス情報が、通信制御テーブル(図示外)に登録される。ステップS5の実行後、送信速度上限が決定される(S7)。ステップS7では、ステップS5で特定された他のルータ1の数量(つまり、通信路数)に対応する送信速度上限が、速度上限テーブル20(図3参照)に基づいて決定される。ステップS7で決定された送信速度上限は、RAM13の所定記憶エリアにセットされる。
【0035】
ステップS7の実行後、通信路設定が有効化される(S9)。つまり、ステップS5で通信制御テーブル(図示外)に設定された通信路が、ルータ1の通信制御に反映される。詳細には、ルータ1は、自拠点のPC2から他拠点のPC2宛てのデータを受信した場合、他拠点のPC2が接続されている他のルータ1に、受信データをVPN通信で送信する。一方、ルータ1は、他のルータ1から自拠点のPC2宛てのデータをVPN通信で受信して、自拠点のPC2に送信する。
【0036】
通知信号が通信路設定通知でない場合(S3:NO)、通知信号に応じたその他の処理が実行される(S11)。通知がない場合(S1:NO)、あるいは、ステップS9またはS11の実行後、処理はステップS1に戻る。
【0037】
図6を参照して、ルータ1で実行されるバッファ処理について説明する。バッファ処理では、まずデータ送信要求ありか否かが判断される(S31)。具体的には、自拠点のPC2から他拠点のPC2宛てのデータを受信した場合、データ送信要求ありと判断される(S31:YES)。この場合、RAM13の送信バッファ(図示外)に空きありか否かが判断される(S33)。ステップS31で受信されたデータ量が、送信バッファの空き容量以下である場合、送信バッファに空きありと判断される(S33:YES)。この場合、ステップS31で受信されたデータが、送信バッファ(図示外)に書き込まれる(S35)。一方、送信バッファに空きがない場合(S33:NO)、ステップS31で受信されたデータが破棄される(S37)。データ送信要求がない場合(S31:NO)、あるいは、ステップS35またはS37の実行後、処理はステップS31に戻る。
【0038】
図7を参照して、ルータ1で実行されるデータ送信処理について説明する。データ送信処理では、まずRAM13の送信バッファ(図示外)にデータありか否かが判断される(S51)。送信バッファ(図示外)にデータがある場合(S51:YES)、RAM31にセットされている送信速度上限が読み出される(S53)。そして、送信バッファ(図示外)に記憶されているデータが、ステップS53で読み出された送信速度上限内で送信可能であるか否かが判断される(S55)。ステップS55では、公知のトークンバケツフィルタアルゴリズムによって、送信速度上限内で送信可能であるか否かが判断されればよい。
【0039】
送信速度上限内で送信可能であると判断された場合(S55:YES)、送信バッファ(図示外)に記憶されているデータが、先述のデータ送信要求に示される通信端末(本実施形態では、他拠点のPC2)に送信される(S57)。ステップS57で送信されたデータが送信バッファ(図示外)から削除される(S59)。ステップS57の実行後、または送信バッファ(図示外)にデータがない場合(S51:NO)、あるいは送信速度上限内で送信可能でない場合(S55:NO)、処理はステップS51に戻る。
【0040】
以上説明したように、第一実施形態に係るルータ1では、通信路設定通知に応じて通信路が設定され、通信路の数量に基づいて通信路単位の送信速度上限が決定される。各通信路では、決定された送信速度上限を超えない送信速度で通信制御が実行される。送信速度上限は、アナログ電話制御に必要なCPU11の処理能力が確保される送信速度が決定される。したがって、通信路の数量が増加しても、アナログ電話制御に必要なCPU11の処理能力が確保される。ひいては、VPN通信が実行される場合でも、アナログ電話アプリケーションを安定動作させて、アナログ電話の通話品質を確保することができる。
【0041】
図8〜図10を参照して、本発明の第二実施形態について説明する。第一実施形態に係るルータ1は、自端末のみで最適な送信速度上限を決定したのに対し、第二実施形態に係るルータ1は、他のルータ1との間で最適な送信速度上限を合意決定する点で異なる。この相違点に関連する処理および構成以外は、例えば通信システムおよびルータ1の構成等は、第一の実施形態と同じである。従って、第一の実施形態と同一の構成については、同一の番号を付して説明を省略する。
【0042】
本実施形態では、フラッシュメモリ14に、通信制御テーブル(図示外)および速度上限テーブル20(図3参照)に加えて、上限合意テーブル30が記憶されている。図8および図9を参照して、上限合意テーブル30について説明する。図8に示すように、上限合意テーブル30には、各通信路の送信速度上限が設定されている。ただし、ルータ1に設定されていない通信路(図8の例では、通信路3、4)には「未接続」が設定されている。
【0043】
ルータ1に設定される各通信路の送信速度上限は、ルータ1に固有の通信速度上限や、ルータ1に設定されている通信路数などに応じて変化する。図9に示す例では、通信速度上限が等しい5つのルータ1(ルータ「A」〜「E」とする。)が設けられている。ルータ「A」およびルータ「B」は通信路「1」で接続され、ルータ「A」およびルータ「C」は通信路「2」で接続されている。さらに、ルータ「B」は、ルータ「D」およびルータ「E」とも通信路で接続されている。以下の説明では、ルータ「A」を自拠点のルータ1とし、ルータ「A」〜「E」の通信速度上限は「100Mbps」とする。
【0044】
速度上限テーブル20(図3参照)によれば、ルータ「A」には2つの通信路が設定されているため、通信路単位の送信速度上限は「25Mbps」となる。ルータ「B」には3つの通信路が設定されているため、通信路単位の送信速度上限は「16.6Mbps」となる。ルータ「C」には1つの通信路が設定されているため、通信路単位の送信速度上限は「50Mbps」となる。つまり、通信路に接続されているルータ1間で送信速度上限が異なっている。
【0045】
本実施形態では、ルータ1の送信速度上限と受信速度上限は等しい。そのため、通信路における送信速度上限がルータ1ごとに異なる場合、通信路に接続されているルータ1のうちの一方が、受信データを十分に処理できずに遅延やエラーを生じるおそれがある。図9に示す通信路「1」では、ルータ「A」の送信速度上限「25Mbps」は、ルータ「B」の送信速度上限「16.6Mbps」よりも大きい。そのため、通信路「1」において、ルータ「A」からルータ「B」に「25Mbps」でデータ送信された場合、送信速度がルータ「B」の受信速度上限「16.6Mbps」を超えるため、ルータ「B」で処理遅延等が生じるおそれがある。
【0046】
よって、通信路に接続されているルータ1間で送信速度上限が異なっている場合には、通信路の送信速度上限は、各ルータ1の送信速度上限のうちで小さいほうであることが好ましい。具体的に、図9に示す通信路「1」では、送信速度上限は「16.6Mbps」であることが好ましい。これにより、通信路に接続されているルータ1は、いずれも受信データを十分に処理することができる。上限合意テーブル30(図8)は、このような最適な送信速度上限を、後述の処理によって決定する際に用いられるテーブルである。
【0047】
図10を参照して、第二実施形態において、ルータ1でそれぞれ実行される通信制御のうち、先述した通信路の設定に関する処理について説明する。第二実施形態では、ルータ1のメイン処理の詳細が、第一実施形態(図5参照)と異なる。
【0048】
図10に示すように、第二実施形態のメイン処理について説明する。まず、ステップS1〜S7と同様に、通知ありか否かが判断され(S101)、通信路設定通知であるか否かが判断され(S103)、通信路が設定され(S105)、送信速度上限が決定される(S107)。ただし、ステップS107で決定された送信速度上限を、値Dとする。上限合意テーブル30(図8)では、ルータ1に設定されている全ての通信路の送信速度上限が、ステップS107で決定された値Dに設定される。
【0049】
ステップS107の実行後、値Dを示す上限通知が全接続先に送信される(S109)。すなわち、通信情報テーブル(図示外)に登録されている全てのルータ1に対して、値Dを示す上限通知が送信される。上限通知は、通知元のルータ1で決定された、通知先のルータ1との間で設定された通信路の送信速度上限を示す通知信号である。ステップS109の実行後、ステップS9と同様に、通信路設定が有効化される(S111)。
【0050】
図9に示す例では、先述のように、ルータ「A」における通信路単位の送信速度上限は、「25Mbps」である。よって、通信路「1」、「2」の送信速度上限として、「25Mbps」が上限合意テーブル30に設定される(S105、S107)。値D「25Mbps」を示す上限通知が、ルータ「B」、「C」に送信される(S109)。通信路設定が有効化されると(S111)、通信路「1」、「2」では、送信速度上限「25Mbps」でVPN通信を実行可能となる。
【0051】
図10に戻る。通知信号が通信路設定通知でない場合(S103:NO)、通知信号が上限通知であるか否かが判断される(S113)。通知信号が上限通知である場合(S113:YES)、通知元のルータ1に対して設定されている通信路の送信速度上限が、上限合意テーブル30から読み出される(S115)。S113の上限通知が示す送信速度上限を、値Aとする。ステップS115で読み出された送信速度上限を、値Bとする。値Aが値Bよりも大きいか否かが判断される(S117)。値Aが値Bよりも大きい場合(S117:YES)、値Bを示す上限通知が、通知元のルータ1に送信される(S119)。値Aが値B以下である場合(S117:NO)、上限合意テーブル30において、通知元のルータ1に対して設定されている通信路の送信速度上限に、値Aが設定される(S121)。
【0052】
図9に示す例では、ルータ「B」では、ルータ「A」から上限通知を受信すると、上限合意テーブル30から通信路「1」の送信速度上限(値B)「16.6Mbps」が読み出される(S113:YES、S115)。上限通知が示す値A「25Mbps」は値B「16.6Mbps」よりも大きいため、値B「16.6Mbps」を示す上限通知がルータ「A」に送信される(S117:YES、S119)。一方、ルータ「A」では、ルータ「B」から上限通知を受信すると、上限合意テーブル30から通信路「1」の送信速度上限(値B)「25Mbps」が読み出される(S113:YES、S115)。上限通知が示す値A「16.6Mbps」は値B「25Mbps」以下であるため、上限合意テーブル30において通信路「1」の送信速度上限に値A「16.6Mbps」が設定される(S117:NO、S121)。これにより、ルータ「A」、「B」では、いずれも通信路「1」の送信速度上限が「16.6Mbps」に設定される。
【0053】
ルータ「C」では、ルータ「A」から上限通知を受信すると、上限合意テーブル30から通信路「2」の送信速度上限(値B)「50Mbps」が読み出される(S113:YES、S115)。上限通知が示す値A「25Mbps」は値B「50Mbps」以下であるため、上限合意テーブル30において通信路「1」の送信速度上限に値A「25Mbps」が設定される(S117:NO、S121)。これにより、ルータ「A」、「C」では、いずれも通信路「2」の送信速度上限が「25Mbps」に設定される。
【0054】
図10に戻る。通知信号が上限通知でない場合(S113:NO)、通知信号に応じたその他の処理が実行される(S123)。通知がない場合(S101:NO)、または、ステップS111、S119、S121、S123のいずれかの実行後、処理はステップS101に戻る。
【0055】
第二実施形態におけるバッファ処理およびデータ処理は、第一実施形態(図6、図7)と同様である。ただし、本実施形態では、ステップS53において、上限合意テーブル30に設定されている全ての送信速度上限のうちで最も小さい送信速度上限が読み出される。そして、ルータ1に設定されている全ての通信路について、ステップS53で読み出された送信速度上限を共通に用いて、送信速度内で送信可能であるか否かが判断される(S55)。よって、ステップS57において、ルータ1に設定されているいずれの通信路でデータ送信される場合でも、そのデータ送信速度はステップS53で読み出された送信速度上限以下となる。例えば、図8に示す上限合意テーブル30の例では、ステップS53で最も小さい送信速度上限「16.6Mbps」が読み出される(S53)。そして、通信路「1」「2」のいずれにデータ送信を行う場合でも、そのデータ送信速度は「16.6Mbps」以下である(S55、S57)。
【0056】
以上説明したように、第二実施形態に係るルータ1では、第一実施形態と同様に、アナログ電話制御に必要なCPU11の処理能力が確保される送信速度上限が決定される。したがって、VPN通信が実行される場合でも、アナログ電話アプリケーションを安定動作させて、アナログ電話の通話品質を確保することができる。さらに、ルータ1で決定された送信速度上限と、通信路が設定された他のルータ1で決定された送信速度上限のうちで小さいものが、通信路の送信速度上限として適用される。したがって、通信路が設定された各ルータ1のCPU11の処理能力が異なる場合でも、各ルータ1でアナログ電話制御に必要なCPU11の処理能力を確保することができる。
【0057】
特に、ルータ1に複数の通信路が設定されている場合には、ルータ1で決定された送信速度上限と、複数の通信路にそれぞれ設定された他のルータ1で決定された送信速度上限のうちで最も小さいものが、通信路の送信速度上限として適用される。したがって、複数の通信路に対して一つの送信速度上限のみが設定されるので、通信路に応じて異なる送信速度上限を適用する必要がなく、データ通信に関する処理負担を軽減することができる。
【0058】
上記実施形態において、ステップS5、S105を実行するCPU11が、本発明の「通信路設定手段」に相当する。ステップS7、S107を実行するCPU11が、本発明の「速度上限決定手段」に相当する。データ送信処理(図7)を実行するCPU11が、本発明の「通信制御手段」に相当する。ステップS109、S119を実行するCPU11が、本発明の「速度上限送信手段」に相当する。ステップS113を実行するCPU11が、本発明の「速度上限受信手段」に相当する。ステップS117〜S121を実行するCPU11が、本発明の「速度上限選択手段」に相当する。ステップS5、S105が、本発明の「通信路設定ステップ」に相当する。ステップS7、S107が、本発明の「速度上限決定ステップ」に相当する。データ送信処理(図7)が、本発明の「通信制御ステップ」に相当する。
【0059】
なお、本発明は上記実施形態に限定されるものではなく、発明の要旨を変更しない範囲での変更が可能である。例えば、速度上限テーブル20のデータ構成は、図3に例示するものに限定されない。一例として、図11に示す速度上限テーブル20では、ルータ1に設定される通信路数が大きいほど、全ての通信路の通信速度上限の総計が小さくなるように、通信路単位の送信速度上限が設定されている。この場合、通信路数が大きいほどCPU11の処理負担が大きくなる現象(いわゆる、オーバーヘッド)を考慮して、より最適な送信速度上限を決定することができる。
【0060】
また、上記実施形態では、ルータ1が実行可能なアプリケーション制御として、アナログ電話機能を例示した。これに代えて、ファックス機能や音声伝言機能などを、ルータ1が実行可能なアプリケーション制御としてもよい。そして、ルータ1に設定されている通信路数に関係なく、サービス品質を確保したいアプリケーション制御に必要なCPU11の処理能力が確保されるような送信速度上限が、上記のように決定されればよい。さらに、上記実施形態では、ルータ1の通信制御および他のアプリケーション制御をプログラム(つまり、ソフトウエア)で実行している。これに代えて、通信制御および他のアプリケーション制御をマイコン等(つまり、ハードウエア)で実行してもよい。
【0061】
また、第二実施形態では、ルータ1に複数の通信路が設定されている場合には、ルータ1で決定された送信速度上限と、複数の通信路にそれぞれ設定された他のルータ1で決定された送信速度上限のうちで最も小さいものが、通信路の送信速度上限として適用される。これに代えて、ルータ1に複数の通信路が設定されている場合に、各通信路について、その通信路に設定されたルータ1で決定された送信速度上限のうちでそれぞれ最も小さいものを、その通信路に固有の送信速度上限として適用してもよい。
【符号の説明】
【0062】
1 ルータ
2 PC
3 複合機
9 インターネット
11 CPU
12 ROM
13 RAM
14 フラッシュメモリ
16 アナログ電話インタフェイス
17 イーサネット(登録商標)スイッチ
20 速度上限テーブル
24 フラッシュメモリ
30 上限合意テーブル
【特許請求の範囲】
【請求項1】
ローカル接続された一の端末装置と、ネットワークを介して接続された他の端末装置との通信制御と、前記通信制御とは異なるアプリケーション制御とを並行して実行可能なCPUを備えたルータであって、
前記一の端末装置と前記他の端末装置とを結ぶVPN(Virtual Private Network)セッションの確立要求を受信した場合に、前記他の端末装置に接続されている他の前記ルータとの間で通信路を設定する通信路設定手段と、
前記通信路の数量に基づいて、前記通信路単位の速度上限を決定する速度上限決定手段と、
少なくとも前記速度上限決定手段によって決定された前記速度上限を超えない通信速度で、前記CPUに前記通信路毎の通信制御を実行させる通信制御手段とを備え、
前記速度上限決定手段は、少なくとも前記アプリケーション制御に必要な前記CPUの処理能力が確保される前記通信速度を、前記速度上限に決定することを特徴とするルータ。
【請求項2】
前記速度上限決定手段によって決定された前記速度上限を、前記通信路に接続された前記他のルータに送信する速度上限送信手段と、
前記通信路に接続された前記他のルータから、前記速度上限を受信する速度上限受信手段と、
前記速度上限決定手段によって決定された前記速度上限と、前記速度上限受信手段によって受信された前記速度上限とのうちで小さいものを選択する速度上限選択手段とを備え、
前記通信制御手段は、前記速度上限選択手段によって選択された前記速度上限を超えない通信速度で、前記CPUに前記通信路毎の通信制御を実行させることを特徴とする請求項1に記載のルータ。
【請求項3】
前記速度上限送信手段は、前記通信路が複数である場合、複数の前記通信路にそれぞれ接続されている前記他のルータに前記速度上限を送信し、
前記速度上限受信手段は、前記通信路が複数である場合、複数の前記通信路にそれぞれ接続されている前記他のルータから前記速度上限を受信し、
前記速度上限選択手段は、前記速度上限決定手段によって決定された前記速度上限と、前記速度上限受信手段によって受信された全ての前記速度上限とのうちで最も小さいものを選択し、
前記通信制御手段は、前記速度上限選択手段によって選択された前記速度上限を超えない通信速度で、前記CPUに全ての前記通信路の通信制御を実行させることを特徴とする請求項2に記載のルータ。
【請求項4】
前記速度上限決定手段は、前記通信路の数量が大きいほど、全ての前記通信路の速度上限の総計が小さくなるように、前記通信路単位の速度上限を決定することを特徴とする請求項1から3のいずれかに記載のルータ。
【請求項5】
ローカル接続された一の端末装置と、ネットワークを介して接続された他の端末装置との通信制御と、前記通信制御とは異なるアプリケーション制御とを並行して実行可能なCPUを備えたルータであるコンピュータに、
前記一の端末装置と前記他の端末装置とを結ぶVPN(Virtual Private Network)セッションの確立要求を受信した場合に、前記他の端末装置に接続されている他の前記ルータとの間で通信路を設定する通信路設定ステップと、
前記通信路の数量に基づいて、前記通信路単位の速度上限を決定する速度上限決定ステップと、
少なくとも前記速度上限決定ステップによって決定された前記速度上限を超えない通信速度で、前記CPUに前記通信路毎の通信制御を実行させる通信制御ステップとを備え、
前記速度上限決定ステップは、少なくとも前記アプリケーション制御に必要な前記CPUの処理能力が確保される前記通信速度を、前記速度上限に決定することを特徴とする通信プログラム。
【請求項1】
ローカル接続された一の端末装置と、ネットワークを介して接続された他の端末装置との通信制御と、前記通信制御とは異なるアプリケーション制御とを並行して実行可能なCPUを備えたルータであって、
前記一の端末装置と前記他の端末装置とを結ぶVPN(Virtual Private Network)セッションの確立要求を受信した場合に、前記他の端末装置に接続されている他の前記ルータとの間で通信路を設定する通信路設定手段と、
前記通信路の数量に基づいて、前記通信路単位の速度上限を決定する速度上限決定手段と、
少なくとも前記速度上限決定手段によって決定された前記速度上限を超えない通信速度で、前記CPUに前記通信路毎の通信制御を実行させる通信制御手段とを備え、
前記速度上限決定手段は、少なくとも前記アプリケーション制御に必要な前記CPUの処理能力が確保される前記通信速度を、前記速度上限に決定することを特徴とするルータ。
【請求項2】
前記速度上限決定手段によって決定された前記速度上限を、前記通信路に接続された前記他のルータに送信する速度上限送信手段と、
前記通信路に接続された前記他のルータから、前記速度上限を受信する速度上限受信手段と、
前記速度上限決定手段によって決定された前記速度上限と、前記速度上限受信手段によって受信された前記速度上限とのうちで小さいものを選択する速度上限選択手段とを備え、
前記通信制御手段は、前記速度上限選択手段によって選択された前記速度上限を超えない通信速度で、前記CPUに前記通信路毎の通信制御を実行させることを特徴とする請求項1に記載のルータ。
【請求項3】
前記速度上限送信手段は、前記通信路が複数である場合、複数の前記通信路にそれぞれ接続されている前記他のルータに前記速度上限を送信し、
前記速度上限受信手段は、前記通信路が複数である場合、複数の前記通信路にそれぞれ接続されている前記他のルータから前記速度上限を受信し、
前記速度上限選択手段は、前記速度上限決定手段によって決定された前記速度上限と、前記速度上限受信手段によって受信された全ての前記速度上限とのうちで最も小さいものを選択し、
前記通信制御手段は、前記速度上限選択手段によって選択された前記速度上限を超えない通信速度で、前記CPUに全ての前記通信路の通信制御を実行させることを特徴とする請求項2に記載のルータ。
【請求項4】
前記速度上限決定手段は、前記通信路の数量が大きいほど、全ての前記通信路の速度上限の総計が小さくなるように、前記通信路単位の速度上限を決定することを特徴とする請求項1から3のいずれかに記載のルータ。
【請求項5】
ローカル接続された一の端末装置と、ネットワークを介して接続された他の端末装置との通信制御と、前記通信制御とは異なるアプリケーション制御とを並行して実行可能なCPUを備えたルータであるコンピュータに、
前記一の端末装置と前記他の端末装置とを結ぶVPN(Virtual Private Network)セッションの確立要求を受信した場合に、前記他の端末装置に接続されている他の前記ルータとの間で通信路を設定する通信路設定ステップと、
前記通信路の数量に基づいて、前記通信路単位の速度上限を決定する速度上限決定ステップと、
少なくとも前記速度上限決定ステップによって決定された前記速度上限を超えない通信速度で、前記CPUに前記通信路毎の通信制御を実行させる通信制御ステップとを備え、
前記速度上限決定ステップは、少なくとも前記アプリケーション制御に必要な前記CPUの処理能力が確保される前記通信速度を、前記速度上限に決定することを特徴とする通信プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2012−205016(P2012−205016A)
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願番号】特願2011−66710(P2011−66710)
【出願日】平成23年3月24日(2011.3.24)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願日】平成23年3月24日(2011.3.24)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】
[ Back to top ]