(57)【要約】      （修正有）【課題】ネットワーク負荷の均衡を実現し、ネットワークの輻輳を回避する。【解決手段】仮想ルータクラスタは、ゲートウェイ、およびゲートウェイと相互接続する少なくとも１つの仮想ルータを備える。ゲートウェイは、外部から転送されたデータパケットを受信し、さらに、オープン・ショーテスト・パス・ファーストプロトコルに基づいて、仮想ルータからデータパケットに対応した第１の仮想ルータを選択し、且つ、データパケットを、データパケットに対応した各第１の仮想ルータへ転送する。第１の仮想ルータは、データパケットを受信して宛先ポートへ転送する。【選択図】図１
2017098935.tif 000002
【特許請求の範囲】
【請求項１】
ゲートウェイ、および前記ゲートウェイと相互接続する少なくとも１つの仮想ルータを備えており、
前記ゲートウェイは、外部から転送されたデータパケットを受信し、
前記ゲートウェイは、さらに、オープン・ショーテスト・パス・ファーストプロトコルに基づいて、前記仮想ルータから前記データパケットに対応した第１の仮想ルータを選択し、且つ各前記データパケットを、前記データパケットに対応した各前記第１の仮想ルータへ転送し、
前記第１の仮想ルータは、前記データパケットを受信して宛先ポートへ転送することを特徴とする
仮想ルータクラスタ。
【請求項２】
前記ゲートウェイは、オープン・ショーテスト・パス・ファーストプロトコルに基づいて前記仮想ルータから前記データパケットに対応した第１の仮想ルータを選択する際に、
各前記データパケットのアドレス情報を取得し、且つ
前記アドレス情報のハッシュ値に基づいて、前記データパケットに対応した第１の仮想ルータを選択することを特徴とする
請求項１に記載の仮想ルータクラスタ。
【請求項３】
前記データパケットのアドレス情報は、前記データパケットの送信元ネットワークプロトコルアドレス、送信元ポート番号、宛先ネットワークプロトコルアドレス、宛先ポート番号、および前記データパケットのプロトコルコードを含むことを特徴とする
請求項２に記載の仮想ルータクラスタ。
【請求項４】
前記第１の仮想ルータが前記データパケットを受信して宛先ポートへ転送する際に、
複数の第１のカーネルが所定の時間間隔で第１のホストのネットワークインターフェースをポーリングし、
複数の前記第１のカーネルにおける任意の１つの第２のカーネルが前記ネットワークインターフェースをアクセスする期間中に、前記ネットワークインターフェースが前記ゲートウェイから送信された前記データパケットを受信した場合、前記第２のカーネルが前記データパケットを取得し、且つ宛先ポートへ前記データパケットを転送し、
前記第１のホストは、前記第１の仮想ルータのホストであり、前記第１のカーネルは、前記第１の仮想ルータによって独占される前記第１のホストのカーネルであることを特徴とする
請求項１に記載の仮想ルータクラスタ。
【請求項５】
外部から転送されたデータパケットを受信するステップと、
オープン・ショーテスト・パス・ファーストプロトコルに基づいて、前記データパケットに対応した第１の仮想ルータを選択するステップと、
前記データパケットを前記データパケットに対応した前記第１の仮想ルータへ転送するステップと、を含むことを特徴とする
データ転送方法。
【請求項６】
前記オープン・ショーテスト・パス・ファーストプロトコルに基づいて、前記データパケットに対応した第１の仮想ルータを選択するステップにおいては、
各前記データパケットのアドレス情報を取得するステップと、
前記アドレス情報のハッシュ値に基づいて、前記データパケットに対応した第１の仮想ルータを選択するステップと、を含むことを特徴とする
請求項５に記載の方法。
【請求項７】
前記データパケットのアドレス情報は、
前記データパケットの送信元ネットワークプロトコルアドレス、送信元ポート番号、宛先ネットワークプロトコルアドレス、宛先ポート番号、および前記データパケットのプロトコルコードを含むことを特徴とする
請求項６に記載の方法。
【請求項８】
オープン・ショーテスト・パス・ファーストプロトコルを満たすことに基いて、ゲートウェイから送信されたデータパケットを受信するステップと、
宛先ポートへ前記データパケットを転送するステップと、を含むことを特徴とする
データ転送方法。
【請求項９】
前記オープン・ショーテスト・パス・ファーストプロトコルを満たすことに基いて、ゲートウェイから送信されたデータパケットを受信するステップにおいては、
前記データパケットのアドレス情報のハッシュ値がオープン・ショーテスト・パス・ファーストプロトコルを満たすことに基いて、ゲートウェイから送信された前記データパケットを受信するステップを含むことを特徴とする
請求項８に記載の方法。
【請求項１０】
前記データパケットのアドレス情報は、
前記データパケットの送信元ネットワークプロトコルアドレス、送信元ポート番号、宛先ネットワークプロトコルアドレス、宛先ポート番号、および前記データパケットのプロトコルコードを含むことを特徴とする
請求項９に記載の方法。
【請求項１１】
前記オープン・ショーテスト・パス・ファーストプロトコルを満たすことに基いて、ゲートウェイから送信されたデータパケットを受信するステップにおいては、
所定の時間間隔でネットワークインターフェースをポーリングするステップと、
前記ネットワークインターフェースが前記ゲートウェイから送信された前記データパケットを受信した場合、前記データパケットを取得して宛先ポートへ前記データパケットを転送するステップとを含むことを特徴とする
請求項８に記載の方法。
【請求項１２】
外部転送のデータパケットを受信するように構成される受信モジュールと、
オープン・ショーテスト・パス・ファーストプロトコルに基づいて各前記データパケットに対応した第１の仮想ルータを選択するように構成される選択モジュールと、
各前記データパケットを各前記データパケットに対応した前記第１の仮想ルータへ転送するように構成される転送モジュールとを含むことを特徴とする
データ転送装置。
【請求項１３】
前記転送モジュールは、さらに、
各前記データパケットのアドレス情報を取得し、且つ
前記アドレス情報のハッシュ値に基づいて、各前記データパケットに対応した第１の仮想ルータを選択するように構成されることを特徴とする
請求項１２に記載の装置。
【請求項１４】
前記データパケットのアドレス情報は、
前記データパケットの送信元ネットワークプロトコルアドレス、送信元ポート番号、宛先ネットワークプロトコルアドレス、宛先ポート番号、および前記データパケットのプロトコルコードを含むことを特徴とする
請求項１３に記載装置。
【請求項１５】
オープン・ショーテスト・パス・ファーストプロトコルを満たすことに基いて、ゲートウェイから送信されたデータパケットを受信するように構成される受信モジュールと、
宛先ポートへ前記データパケットを転送するように構成される転送モジュールとを備えることを特徴とする
データ転送装置。
【請求項１６】
前記受信モジュールは、さらに、
前記データパケットのアドレス情報のハッシュ値がオープン・ショーテスト・パス・ファーストプロトコルを満たすことに基いて、ゲートウェイから送信された前記データパケットを受信するように構成されることを特徴とする
請求項１５に記載の装置。
【請求項１７】
前記データパケットのアドレス情報は、
前記データパケットの送信元ネットワークプロトコルアドレス、送信元ポート番号、宛先ネットワークプロトコルアドレス、宛先ポート番号、および前記データパケットのプロトコルコードを含むことを特徴とする請求項１６に記載装置。
【請求項１８】
前記受信モジュールは、さらに、
所定の時間間隔でネットワークインターフェースをポーリングし、
前記ネットワークインターフェースが前記ゲートウェイから送信された前記データパケットを受信した場合、前記データパケットを取得して宛先ポートへ前記データパケットを転送するように構成されることを特徴とする
請求項１５に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ技術分野に関し、具体的にインターネット技術分野に関し、特に仮想ルータクラスタ、データ転送方法および装置に関する。
【背景技術】
【０００２】
インターネットの爆発的な成長に伴い、ネットワークをめぐって新たなサービスが絶えずに注目されており、クラウドコンピューティングネットワークは、その中の１つの典型的な複雑なサービスである。クラウドコンピューティングネットワークにおいて、ユーザのニーズは、例えば、ルーティング設定情報などの個別設定、安全ＡＣＬ（Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｌｉｓｔ、アクセス制御リスト）、ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ、ネットワークアドレス変換）、ネットワーク隔離、ネットワーク速度制限、ネットワーク転送の高機能などが多様化されており、いずれもルータに対してさらなる要求が提出され、ルータの複雑さが著しく向上させた。
【０００３】
クラウドコンピューティングネットワークの新たなチャレンジを迎えるために、従来のルータに対しては、２種類の解決策があり、その１つは、ソフトウェア仮想化による実施形態、すなわち仮想化ルータであり、もう１つは、高度にカスタマイズさ れ た（特定プロトコル、特定ハードウェア等）物理ルータである。
【０００４】
従来技術における仮想ルータは、通常、ｉｐｔａｂｌｅｓ（ネットワークプロトコルアドレス・フィルタリングシステム）、およびプロトコルスタックの形態により、ルーティングを実現する。ところが、このような実施形態では、パケットメッセージの処理過程においてカーネルにおいるコピーが複数回を必要となり、性能の１つの弱点となっている。
【０００５】
従来技術の仮想ルータクラスタは、論理的には、１つの仮想ルータが通常に複数の仮想ルータのインスタンスの転送のみを機能としており、ある仮想ルータが異常で使用できない場合、その担当するすべての仮想ルータのインスタンスのいずれも、使用不可の状態になる。拡張には、仮想ルータのこのようなインスタンスに指定されたコロケーション（すなわち、仮想ルータのインスタンスと仮想ルータとがバインディング関係を持ち）の設計は、汎用性が足りなく、仮想ルータと関わらなければならない。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、改善された仮想ルータクラスタ、データ転送方法および装置を提供することにより、上記の背景技術に記載された少なくとも１つの技術的問題を解決することを目的とする。
【課題を解決するための手段】
【０００７】
第１の態様において、本発明は、仮想ルータクラスタを提供して、この仮想ルータクラスタは、ゲートウェイ、およびゲートウェイと相互接続する少なくとも１つの仮想ルータを備えており、その中で、ゲートウェイは外部から転送されたデータパケットを受信し、ゲートウェイはさらにオープン・ショーテスト・パス・ファーストプロトコルに基づいて仮想ルータからデータパケットに対応した第１の仮想ルータを選択し、且つデータパケットを、データパケットに対応した各第１の仮想ルータへ転送し、第１の仮想ルータはデータパケットを受信して宛先ポートへ転送する。
【０００８】
いくつかの実施例において、前記ゲートウェイは、オープン・ショーテスト・パス・ファーストプロトコルに基づいて前記仮想ルータから前記データパケットに対応した第１の仮想ルータを選択する際に、データパケットのアドレス情報を取得し、且つアドレス情報のハッシュ値に基づいてデータパケットに対応した第１の仮想ルータを選択する。
【０００９】
いくつかの実施例において、前記データパケットのアドレス情報は、データパケットの送信元ネットワークプロトコルアドレス、送信元ポート番号、宛先ネットワークプロトコルアドレス、宛先ポート番号、およびデータパケットのプロトコルコードを含む。
【００１０】
いくつかの実施例において、第１の仮想ルータがデータパケットを受信して宛先ポートへ転送する際に、複数の第１のカーネルが所定の時間間隔で第１のホストのネットワークインターフェースをポーリングし、複数の第１のカーネルにおける任意の１つの第２のカーネルがネットワークインターフェースをアクセスする期間中に、ネットワークインターフェースがゲートウェイから送信されたデータパケットを受信した場合、第２のカーネルがデータパケットを取得し、且つ宛先ポートへデータパケットを転送し、その中で、第１のホストは、第１の仮想ルータのホストであり、第１のカーネルは、第１の仮想ルータによって独占される第１のホストのカーネルである。
【００１１】
第２の態様において、本発明は、外部から転送されたデータパケットを受信するステップと、オープン・ショーテスト・パス・ファーストプロトコルに基づいてデータパケットに対応した第１の仮想ルータを選択するステップと、データパケットに対応した第１の仮想ルータへデータパケットを転送するステップとを含むデータ転送方法を提供した。
【００１２】
いくつかの実施例において、オープン・ショーテスト・パス・ファーストプロトコルに基づいてデータパケットに対応した第１の仮想ルータを選択するステップにおいては、データパケットのアドレス情報を取得するステップと、アドレス情報のハッシュ値に基づいてデータパケットに対応した第１の仮想ルータを選択するステップとを含む。
【００１３】
いくつかの実施例において、前記データパケットのアドレス情報は、データパケットの送信元ネットワークプロトコルアドレス、送信元ポート番号、宛先ネットワークプロトコルアドレス、宛先ポート番号、およびデータパケットのプロトコルコードを含む。
【００１４】
第３態様において、本発明は、オープン・ショーテスト・パス・ファーストプロトコルを満たすことに基いて、ゲートウェイから送信されたデータパケットを受信するステップと、宛先ポートへデータパケットを転送するステップとを含むデータ転送方法を提供した。
【００１５】
いくつかの実施例において、オープン・ショーテスト・パス・ファーストプロトコルを満たすことに基いて、ゲートウェイから送信されたデータパケットを受信するステップにおいては、データパケットのアドレス情報のハッシュ値がオープン・ショーテスト・パス・ファーストプロトコルを満たすことに基いて、ゲートウェイから送信されたデータパケットを受信するステップを含む。
【００１６】
いくつかの実施例において、前記データパケットのアドレス情報は、例えば、データパケットの送信元ネットワークプロトコルアドレス、送信元ポート番号、宛先ネットワークプロトコルアドレス、宛先ポート番号、およびデータパケットのプロトコルコードを含んでもよい。
【００１７】
いくつかの実施例において、オープン・ショーテスト・パス・ファーストプロトコルを満たすことに基いて、ゲートウェイから送信されたデータパケットを受信するステップにおいては、所定の時間間隔でネットワークインターフェースをポーリングするステップと、ネットワークインターフェースがゲートウェイから送信されたデータパケットを受信した場合、データパケットを取得して宛先ポートへデータパケットを転送するステップとを含む。
【００１８】
第４の態様において、本発明は、外部転送のデータパケットを受信するように構成される受信モジュールと、オープン・ショーテスト・パス・ファーストプロトコルに基づいてデータパケットに対応した第１の仮想ルータを選択するように構成される選択モジュールと、データパケットをデータパケットに対応した第１の仮想ルータへ転送するように構成される転送モジュールとを備えるデータ転送装置を提供した。
【００１９】
いくつかの実施例において、転送モジュールは、さらに、データパケットのアドレス情報を取得し、且つ、アドレス情報のハッシュ値に基づいてデータパケットに対応した第１の仮想ルータを選択するように構成される。
【００２０】
いくつかの実施例において、前記データパケットのアドレス情報は、データパケットの送信元ネットワークプロトコルアドレス、送信元ポート番号、宛先ネットワークプロトコルアドレス、宛先ポート番号、およびデータパケットのプロトコルコードを含む。
【００２１】
第５の態様において、本発明は、オープン・ショーテスト・パス・ファーストプロトコルを満たすことに基いて、ゲートウェイから送信されたデータパケットを受信するように構成される受信モジュールと、宛先ポートへデータパケットを転送するように構成される転送モジュールとを備えるデータ転送装置を提供した。
【００２２】
いくつかの実施例において、受信モジュールは、さらに、データパケットのアドレス情報のハッシュ値がオープン・ショーテスト・パス・ファーストプロトコルを満たすことに基いて、ゲートウェイから送信されたデータパケットを受信するように構成される。
【００２３】
いくつかの実施例において、前記データパケットのアドレス情報は、例えば、データパケットの送信元ネットワークプロトコルアドレス、送信元ポート番号、宛先ネットワークプロトコルアドレス、宛先ポート番号、およびデータパケットのプロトコルコードを含んでもよい。
【００２４】
いくつかの実施例において、受信モジュールは、さらに、所定の時間間隔でネットワークインターフェースをポーリングし、且つ、ネットワークインターフェースがゲートウェイから送信されたデータパケットを受信した場合、データパケットを取得して宛先ポートへデータパケットを転送するように構成される。
【発明の効果】
【００２５】
本発明に係る仮想ルータクラスタ、データ転送方法および装置は、オープン・ショーテスト・パス・ファーストプロトコルに基づいて、データを受信して転送する仮想ルータを確定することにより、負荷の均衡を実現し、ネットワークの輻輳を回避することができる。
【００２６】
なお、本発明に係る仮想ルータクラスタのいくつかの実施例において、各仮想ルータは、独立してゲートウェイと接続しており、各仮想ルータの間には、互いにカップリングされていないので、クラスタにおける一部の仮想ルータに障害が発生しても、その他の仮想ルータの正常な動作に影響を与えない。
【００２７】
以下、図面を参照しながら非限定的な実施例を詳細に説明することにより、本発明の他の特徴、目的、および利点は、より明らかになる。
【図面の簡単な説明】
【００２８】
【図１】本発明に係る仮想ルータクラスタの一実施例を示す構成図である。
【図２】本発明に係るデータ転送方法の一実施例を示すフローチャートである。
【図３】本発明に係るデータ転送方法の他の一実施例を示すフローチャートである。
【図４】本発明に係るデータ転送装置の一実施例を示す構造模式図である。
【図５】本発明に係るデータ転送装置の他の一実施例を示す構造模式図である。
【図６】本発明の実施例を実現するためのゲートウェイまたは仮想ルータのホストに適用されるコンピュータシステムを示す構造模式図である。
【発明を実施するための形態】
【００２９】
以下、図面および実施例を参照しながら、本発明をさらに詳しく説明する。ただし、ここで説明されている具体的な実施例は、係る発明を解釈するためのものに過ぎず、本発明の範囲を制限するものではないと理解されるべきである。また、説明の便宜上、図面に本発明と関連する部分のみが示されている。
【００３０】
ただし、衝突がない限り、本願における実施例、および実施例における特徴は、互いに組み合せてもよい。以下、図面を参照しながら実施例に基づいて本発明を詳細に説明する。
【００３１】
図１に示すように、本発明に係る仮想ルータクラスタの一実施例の構成図１００である。
本実施例において、仮想ルータクラスタは、ゲートウェイ１１０、およびゲートウェイと相互接続する少なくとも１つの仮想ルータ１２１〜１２３を備える。
【００３２】
ここで、「相互接続」は、例えば、ゲートウェイ１１０がデータ情報を各仮想ルータ１２１〜１２３へ送信できる意味としてもよい。また、ゲートウェイ１１０と各仮想ルータ１２１〜１２３との間に相互接続することは、具体的な相互接続の形態に限定されていない。異なる応用場面において、ゲートウェイ１１０、および各仮想ルータ１２１〜１２３は、有線接続または無線接続を含む、異なる相互接続の形態を用いてもよい。無線接続形態は、３Ｇ／４Ｇ接続、ＷｉＦｉ接続、ブルートゥース（Ｂｌｕｅｔｏｏｔｈ）接続、ＷｉＭＡＸ接続、Ｚｉｇｂｅｅ接続、ＵＷＢ（ｕｌｔｒａ  ｗｉｄｅｂａｎｄ）接続、および他の従来既知のまたは将来に開発される無線接続方式を含むが、これらに限定されない。
【００３３】
ゲートウェイ１１０は、外部から転送されたデータパケットを受信し、オープン・ショーテスト・パス・ファーストプロトコルに基づいて、仮想ルータからデータパケットに対応した第１の仮想ルータ１２１を選択し、且つデータパケットを、データパケットに対応した各第１の仮想ルータ１２１へ転送する。
【００３４】
オープン・ショーテスト・パス・ファースト（Ｏｐｅｎ  Ｓｈｏｒｔｅｓｔ  Ｐａｔｈ  Ｆｉｒｓｔ：ＯＳＰＦ）プロトコルは、内部ゲートウェイプロトコル（Ｉｎｔｅｒｉｏｒ  Ｇａｔｅｗａｙ  Ｐｒｏｔｏｃｏｌ：ＩＧＰ）の１種であり、単一の自律システム（ａｕｔｏｎｏｍｏｕｓ  ｓｙｓｔｅｍ：ＡＳ）内においてルーティングに用いられる。それは、リンク状態ルーティングプロトコルに対する一実施形態であり、内部ゲートウェイプロトコル（ＩＧＰ）に属し、このため、自律システムの内部に動作されている。
【００３５】
第１の仮想ルータ１２１は、データパケットを受信して宛先ポートへ転送する。
【００３６】
いくつかの代替的な実現形態において、本実施例の仮想ルータクラスタにおける各仮想ルータは、異なる物理マシンに集積されてもよい。つまり、これらの代替的な実現形態において、仮想ルータクラスタにおける各仮想ルータは、そのホストに一対一で対応している。これらの代替的な実現形態において、第１の仮想ルータ１２１は、そのホストのネットワークインターフェース（例えば、ネットワークカード）を介してゲートウェイ１１０で送信されたデータパケットを受信し、第１の仮想ルータ１２１によりルーティング処理された後に、さらにそのホストのネットワークインターフェースを介して当該データパケットを宛先ポートへ転送する。
【００３７】
図１から分かるように、本実施例の仮想ルータクラスタにおいて、各仮想ルータ１２１〜１２３は、それぞれ直接にゲートウェイ１１０とデータ交換する一方、各仮想ルータ１２１〜１２３の間にデータ交換が行われていない。つまり、各仮想ルータ１２１〜１２３の間には、主従関係がなく、同じデータパケットついては、単にゲートウェイ１１０、およびそれに対応した第１の仮想ルータ１２１のみを経由し（それに対応した第１の仮想ルータ１２１以外の、仮想ルータクラスタにおけるその他の任意の仮想ルータを経由しなく）、さらに第１の仮想ルータ１２１により外へ転送される。
【００３８】
このように、仮想ルータクラスタにおける一部の仮想ルータの通信が異常である場合、ゲートウェイは、オープン・ショーテスト・パス・ファーストプロトコルに基づいて、仮想ルータクラスタの中に正常に動作している仮想ルータから１つの仮想ルータを選択し、当該仮想ルータが、データパケットを受信して受信されたデータパケットを外へ転送することに用いられ、したがって仮想ルータクラスタを全体としての正常に動作することを確保することができる。
【００３９】
いくつかの代替的な実現形態において、ゲートウェイ１１０は、オープン・ショーテスト・パス・ファーストプロトコルに基づいて仮想ルータ１２１〜１２３からデータパケットに対応した第１の仮想ルータ１２１を選択した際に、具体的に、
データパケットのアドレス情報を取得し、且つ、アドレス情報のハッシュ値に基づいてデータパケットに対応した第１の仮想ルータ１２１を選択するように行ってもよい。
【００４０】
これらの代替的な実現形態において、前記データパケットのアドレス情報は、データパケットの送信元ネットワークプロトコルアドレス、送信元ポート番号、宛先ネットワークプロトコルアドレス、宛先ポート番号、およびデータパケットのプロトコルコードを含む。上記のデータパケットのアドレス情報に対してハッシュ演算を行うことにより、データパケットの送信元ネットワークプロトコルアドレス、送信元ポート番号、宛先ネットワークプロトコルアドレス、宛先ポート番号、およびデータパケットのプロトコルコードに一対一で対応したハッシュ値を取得ることができ、且つ、当該ハッシュ値を仮想ルータクラスタから第１の仮想ルータを選択する唯一の根拠とする。
【００４１】
いくつかの応用場面において、例えば、既存のハッシュアルゴリズムにより、データパケットの送信元ネットワークプロトコルアドレス、送信元ポート番号、宛先ネットワークプロトコルアドレス、宛先ポート番号、およびデータパケットのプロトコルコードのハッシュ値を求めてもよく、または、具体的な応用場面に応じて具体的なハッシュアルゴリズムを設定し、さらにデータパケットの送信元ネットワークプロトコルアドレス、送信元ポート番号、宛先ネットワークプロトコルアドレス、宛先ポート番号およびデータパケットのプロトコルコードのハッシュ値を取得してもよい。
【００４２】
いくつかの代替的な実現形態において、第１の仮想ルータ１２１がデータパケットを受信して宛先ポートへ転送する際に、複数の第１のカーネルが所定の時間間隔で第１のホストのネットワークインターフェースをポーリングし、複数の第１のカーネルにおける任意の１つの第２のカーネルがネットワークインターフェースをアクセスする期間中に、ネットワークインターフェースがゲートウェイから送信されたデータパケットを受信した場合、第２のカーネルがデータパケットを取得し、且つ宛先ポートへデータパケットを転送し、その中で、第１のホストは、第１の仮想ルータのホストであり、第１のカーネルは、第１の仮想ルータが独占する第１のホストのカーネルである。
【００４３】
これらの代替的な実現形態において、第１の仮想ルータ１２１は、通常、そのホストの一部のカーネルを「独占」することにより、データパケットの処理動作を行うことができる。これらのカーネル（すなわち、第１のカーネル）は、一定の時間間隔でそのホスト（すなわち、第１のホスト）のネットワークインターフェース（例えば、ネットワークカード）をアクセスすることができる。その中の１つのカーネル（すなわち、第２のカーネル）がホストのネットワークインターフェースをアクセスする際に、ネットワークインターフェースがゲートウェイから送信されたデータパケットをちょうど受信した場合、当該カーネルは、ネットワークインターフェースから当該データパケットを取得し、当該データパケットに対して、例えば、ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ：ネットワークアドレス変換）、ルーティング、フィルタリングなどの処理を行った後に、当該データパケットを宛先ポートへ転送することができる。
【００４４】
また、これらの代替的な実現形態において、第１の仮想ルータ１２１は、そのホストの一部のカーネルを「独占」することにより、データパケットの処理動作を行い、既存の物理ルータがデータパケットを処理する際に、コンピュータカーネルデータを頻繁にコピーすることを回避することができる。
【００４５】
図２に示すように、本発明の一実施例のデータ転送方法の模式的なフローチャート２００である。
【００４６】
本実施例のデータ転送方法は、例えば、図１に示すような仮想ルータクラスタにおけるゲートウェイ１１０で実行されることができる。
【００４７】
具体的には、本実施例のデータ転送方法は、次のステップ２１０〜２３０を含む。
ステップ２１０：外部から転送されたデータパケットを受信する。
ステップ２２０：オープン・ショーテスト・パス・ファーストプロトコルに基づいてデータパケットに対応した第１の仮想ルータを選択する。
ステップ２３０：データパケットを、データパケットに対応した第１の仮想ルータへ転送する。
【００４８】
いくつかの代替的な実現形態において、ステップ２２０のオープン・ショーテスト・パス・ファーストプロトコルに基づいてデータパケットに対応した第１の仮想ルータを選択するステップにおいては、次のステップ２２１およびステップ２２２により実施されてもよい。
ステップ２２１：データパケットのアドレス情報を取得する。
ステップ２２２：アドレス情報のハッシュ値に基づいてデータパケットに対応した第１の仮想ルータを選択する。
【００４９】
いくつかの代替的な実現形態において、前記データパケットのアドレス情報は、例えば、データパケットの送信元ネットワークプロトコルアドレス、送信元ポート番号、宛先ネットワークプロトコルアドレス、宛先ポート番号、およびデータパケットのプロトコルコードを含んでもよい。
【００５０】
図３に示すように、本発明に係るデータ転送方法の他の一実施例を示すフローチャート３００である。
【００５１】
本実施例のデータ転送方法は、例えば、図１に示すような仮想ルータクラスタにおける第１の仮想ルータ１２１で実行されることができる。
【００５２】
具体的には、本実施例のデータ転送方法は、ステップ３１０〜３２０を含む。
ステップ３１０：オープン・ショーテスト・パス・ファーストプロトコルを満たすことに基いて、ゲートウェイから送信されたデータパケットを受信する。
ステップ３２０：宛先ポートへデータパケットを転送する。
【００５３】
いくつかの代替的な実現形態において、ステップ３１０のオープン・ショーテスト・パス・ファーストプロトコルを満たすことに基いて、ゲートウェイから送信されたデータパケットを受信するステップにおいては、例えば、次のステップ３１１の形態で実現されてもよい。
【００５４】
ステップ３１１：データパケットのアドレス情報のハッシュ値がオープン・ショーテスト・パス・ファーストプロトコルを満たすことに基いて、ゲートウェイから送信されたデータパケットを受信する。
【００５５】
いくつかの代替的な実現形態において、前記データパケットのアドレス情報は、例えば、データパケットの送信元ネットワークプロトコルアドレス、送信元ポート番号、宛先ネットワークプロトコルアドレス、宛先ポート番号、およびデータパケットのプロトコルコードを含んでもよい。
【００５６】
いくつかの代替的な実現形態において、ステップ３１０のオープン・ショーテスト・パス・ファーストプロトコルを満たすことに基いて、ゲートウェイから送信されたデータパケットを受信するステップにおいては、次のステップ３１２およびステップ３１３をさらに含んでもよい。
ステップ３１２：所定の時間間隔でネットワークインターフェースをポーリングする。
ステップ３１３：ネットワークインターフェースがゲートウェイから送信されたデータパケットを受信した場合、データパケットを取得して宛先ポートへデータパケットを転送する。
【００５７】
さらに、前記各図に示した方法の実施形態として、本発明は、図４に示すように、データ転送装置の一実施例４００を提供した。当該装置の実施例は、図２に示した方法の実施例に対応している。当該装置は、具体的に、図１に示すような仮想ルータクラスタにおけるゲートウェイ１１０に用いられて実行されてもよい。
【００５８】
図４に示すようなデータ転送装置は、受信モジュール４１０と、選択モジュール４２０と、転送モジュール４３０とを備えてもよい。
【００５９】
その中で、受信モジュール４１０は、外部から転送されたデータパケットを受信するように構成されてもよい。
【００６０】
選択モジュール４２０は、オープン・ショーテスト・パス・ファーストプロトコルに基づいてデータパケットに対応した第１の仮想ルータを選択するように構成されてもよい。
【００６１】
転送モジュール４３０は、データパケットをデータパケットに対応した第１の仮想ルータへ転送するように構成されてもよい。
【００６２】
いくつかの代替的な実現形態において、転送モジュール４３０は、さらに、データパケットのアドレス情報を取得し、且つ、アドレス情報のハッシュ値に基づいてデータパケットに対応した第１の仮想ルータを選択するように構成されてもよい。
【００６３】
いくつかの代替的な実現形態において、前記データパケットのアドレス情報は、例えば、データパケットの送信元ネットワークプロトコルアドレス、送信元ポート番号、宛先ネットワークプロトコルアドレス、宛先ポート番号、およびデータパケットのプロトコルコードを含む。
【００６４】
前記データ転送装置４００は、例えば、プロセッサ、メモリなどのいくつかの他の公知の構造をさらに備えてもよく、本発明の実施例を曖昧にすることを回避するために、これらの公知の構造を図４に示しなかったことを、当業者は理解することができる。
【００６５】
さらに、前記各図に示した方法の実施形態として、本発明は、図５に示すように、データ転送装置の一実施例５００を提供した。当該装置の実施例は、図３に示した方法の実施例に対応している。当該装置は、具体的に、図１に示すような仮想ルータクラスタにおける第１の仮想ルータ１２１に用いられて実行されてもよい。
【００６６】
図５に図すようなデータ転送装置は、受信モジュール５１０と、転送モジュール５２０とを備えてもよい。
その中で、受信モジュール５１０は、オープン・ショーテスト・パス・ファーストプロトコルを満たすことに基いて、ゲートウェイから送信されたデータパケットを受信するように構成されてもよい。
【００６７】
転送モジュール５２０は、宛先ポートへデータパケットを転送するように構成されてもよい。
いくつかの代替的な実現形態において、受信モジュール５１０は、さらに、データパケットのアドレス情報のハッシュ値がオープン・ショーテスト・パス・ファーストプロトコルを満たすことに基いて、ゲートウェイから送信されたデータパケットを受信するように構成されてもよい。
【００６８】
これらの代替的な実現形態において、前記データパケットのアドレス情報は、前記データパケットの送信元ネットワークプロトコルアドレス、送信元ポート番号、宛先ネットワークプロトコルアドレス、宛先ポート番号、および前記データパケットのプロトコルコードを含んでもよい。
【００６９】
いくつかの代替的な実現形態において、受信モジュール５１０は、さらに、所定の時間間隔でネットワークインターフェースをポーリングし、且つ、ネットワークインターフェースがゲートウェイから送信されたデータパケットを受信した場合、データパケットを取得して宛先ポートへデータパケットを転送するように構成されてもよい。
【００７０】
前記データ転送装置５００が、例えば、プロセッサ、メモリなどのいくつかの他の公知の構造をさらに備えてもよく、本発明の実施例を曖昧にすることを回避するために、これらの公知の構造を図５に示しなかったことを、当業者は理解することができる。
【００７１】
以下、本発明の実施例を実現するためのゲートウェイまたは仮想ルータのホストに適用されるコンピュータシステムを示す構造模式図である図６を参照する。
【００７２】
図６に示すように、コンピュータシステム６００は、読み出し専用メモリ（ＲＯＭ）６０２に記憶されているプログラムまたは記憶部６０８からランダムアクセスメモリ（ＲＡＭ）６０３にロードされたプログラムに基づいて様々な適当な動作および処理を実行することができる中央処理装置（ＣＰＵ）６０１を備える。ＲＡＭ６０３には、システム６００の操作に必要な様々なプログラムおよびデータがさらに記憶されている。ＣＰＵ６０１、ＲＯＭ６０２およびＲＡＭ６０３は、バス６０４を介して互いに接続されている。入力／出力（Ｉ／Ｏ）インターフェース６０５もバス６０４に接続されている。
【００７３】
キーボード、マウスなどを含む入力部６０６、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）など、およびスピーカなどを含む出力部６０７、ハードディスクなどを含む記憶部６０８、およびＬＡＮカード、モデムなどを含むネットワークインターフェースカードの通信部６０９は、Ｉ／Ｏインターフェース６０５に接続されている。通信部６０９は、例えばインターネットのようなネットワークを介して通信処理を実行する。ドライバ６１０は、必要に応じてＩ／Ｏインターフェース６０５に接続される。リムーバブルメディア６１１は、例えば、マグネチックディスク、光ディスク、光磁気ディスク、半導体メモリなどのようなものであり、必要に応じてドライバ６１０に取り付けられ、したがって、ドライバ６１０から読み出されたコンピュータプログラムが必要に応じて記憶部６０８にインストールされる。
【００７４】
特に、本発明の実施例によれば、上記のフローチャートを参照しながら記載されたプロセスは、コンピュータのソフトウェアプログラムとして実現されてもよい。例えば、本発明の実施例は、コンピュータプログラム製品を含み、当該コンピュータプログラム製品は、機械可読媒体に有形に具現化されるコンピュータプログラムを含み、前記コンピュータプログラムは、フローチャートで示される方法を実行するためのプログラムコードを含む。このような実施例では、当該コンピュータプログラムは、通信部６０９を介してネットワークからダウンロードされてインストールされてもよく、および／またはリムーバブルメディア６１１からインストールされてもよい。
【００７５】
図面におけるフローチャートおよびブロック図は、本発明の各実施例に係るシステム、方法およびコンピュータプログラム製品により実現可能なアーキテクチャ、機能および操作を示す。ここで、フローチャートまたはブロック図における各枠は、１つのモジュール、プログラムセグメント、またはコードの一部を代表してもよく、前記モジュール、プログラムセグメント、またはコードの一部は、規定された論理機能を達成するための１つ以上の実行可能な命令を含む。なお、いくつかの代替実施態様として、枠に示された機能は、図面に示された順番と異なる順番で実行されてもよい。例えば、連続して示された２つの枠は、関連する機能に応じて、実際にほぼ並行に実行されてもよく、逆の順番で実行されてもよい。なお、ブロック図および／またはフローチャートにおける各枠と、ブロック図および／またはフローチャートにおける枠の組合せは、規定された機能または操作を実行する、ハードウェアに基づく専用システムで実現されてもよく、あるいは、専用ハードウェアとコンピュータの命令との組合せで実行されてもよい。
【００７６】
本発明の実施例に記載されたユニットは、ソフトウェアで実現されてもよく、ハードウェアで実現されてもよい。記載されたユニットは、プロセッサに設定されてもよく、例えば、「受信モジュール、選択モジュール、および転送モジュールを備えるプロセッサ」として記載されてもよい。その中でも、これらのユニットの名称は、ある場合において当該ユニットその自体を限定するものではなく、例えば、受信モジュールは、「外部転送のデータパケットを受信するモジュール」として記載されてもよい。
【００７７】
一方、本発明は、不揮発性コンピュータ記憶媒体をさらに提供し、当該不揮発性コンピュータ記憶媒体は、上記した実施例の前記装置に含まれる不揮発性コンピュータ記憶媒体であってもよく、独立に存在して端末に組み立てられていない不揮発性コンピュータ記憶媒体であってもよい。前記不揮発性コンピュータ記憶媒体は、１つ以上のプログラムが記憶され、前記１つ以上のプログラムが１つの機器により実行された場合、上記した機器に以下の通りにさせ、すなわち、外部転送のデータパケットを受信し、オープン・ショーテスト・パス・ファーストプロトコルに基づいてデータパケットに対応した第１の仮想ルータを選択し、そしてデータパケットに対応した第１の仮想ルータへデータパケットを転送するようにさせる。
【００７８】
なお、本発明の不揮発性コンピュータ記憶媒体に記憶された１つ以上のプログラムがさらに１つの機器に実行された場合、当該機器に、オープン・ショーテスト・パス・ファーストプロトコルを満たすことに基いて、ゲートウェイから送信されたデータパケットを受信し、且つ、宛先ポートへデータパケットを転送するようにさせてもよい。
【００７９】
以上の記載は、本発明の好ましい実施例、および使用された技術的原理の説明に過ぎない。本発明に係る特許請求の範囲が、上記した技術的特徴の特定な組合せからなる技術案に限定されることではなく、本発明の趣旨を逸脱しない範囲で、上記の技術的特徴または同等の特徴の任意の組合せからなる他の技術案も含むべきであることを、当業者は理解すべきである。例えば、上記の特徴と、本発明に開示された類似の機能を持っている技術的特徴（これらに限定されていない）とを互いに置き換えてなる技術案が挙げられる。
【図１】
2017098935.tif 000003
【図２】
2017098935.tif 000004
【図３】
2017098935.tif 000005
【図４】
2017098935.tif 000006
【図５】
2017098935.tif 000007
【図６】
2017098935.tif 000008