(57)【特許請求の範囲】
【請求項１】
物理的に１つの通信装置上で物理資源を共有しながらそれぞれが独立した通信装置として動作する複数の仮想装置を有する通信装置に接続され、
前記仮想装置を識別する識別情報を格納する識別情報格納手段と、
通信プロトコル処理の実行要求を表す情報を含む通信データが前記仮想装置から入力されるオフロードデータ入力手段と、
前記オフロードデータ入力手段に入力された通信データに含まれる宛先および送信元をそれぞれ識別する識別情報が前記識別情報格納手段に格納されているか否かに基づいて、前記通信データが、前記複数の仮想装置間で仮想的に通信されるものであるか否かを判断する仮想通信判断手段と、
前記仮想通信判断手段によって前記通信データが仮想的に通信されるものでないと判断された場合、この通信データに対して前記通信プロトコル処理を実行するオフロード処理実行手段と、
前記オフロード処理実行手段によって前記通信プロトコル処理が実行された前記通信データおよび前記仮想通信判断手段によって前記仮想的に通信されるものであると判断されて前記通信プロトコル処理が実行されなかった通信データを前記仮想装置に出力するオフロードデータ出力手段と、を備えたオフロード処理装置。
【請求項２】
前記仮想装置によって前記通信装置の外部に送信される通信データが入力される送信データ入力手段と、
前記送信データ入力手段に入力される通信データに含まれる送信元を識別する識別情報を抽出して前記識別情報格納手段に格納する識別情報抽出手段と、
をさらに備えることを特徴とする請求項１に記載のオフロード処理装置。
【請求項３】
前記オフロード処理実行手段は、前記通信プロトコル処理として、前記通信データのエラー検出符号演算処理を実行することを特徴とする請求項２に記載のオフロード処理装置。
【請求項４】
前記通信データはＴＣＰ／ＩＰ（Transmission Control Protocol / Internet Protocol）パケットであり、
前記識別情報抽出手段は、前記識別情報としてＩＰアドレスを抽出し、
前記オフロード処理実行手段は、前記通信プロトコル処理として、ＴＣＰ／ＩＰパケットのチェックサム演算を行うことを特徴とする請求項３に記載のオフロード処理装置。
【請求項５】
前記通信データは前記仮想装置間の通信の通信プロトコルによるフレームであり、
前記識別情報抽出手段は、前記識別情報としてＭＡＣ（Media Access Control）アドレスを抽出し、
前記オフロード処理実行手段は、前記通信プロトコル処理として、前記フレームのチェックサム演算を行うことを特徴とする請求項３または請求項４に記載のオフロード処理装置。
【請求項６】
物理的に１つの通信装置上で物理資源を共有しながらそれぞれが独立した通信装置として動作する複数の仮想装置を有する通信装置に接続されたオフロード処理装置に、
前記仮想装置を識別する識別情報を記憶装置に格納する識別情報格納ステップと、
通信プロトコル処理の実行要求を表す情報を含む通信データが前記仮想装置から入力されるオフロードデータ入力ステップと、
前記オフロードデータ入力ステップで入力された通信データに含まれる宛先および送信元をそれぞれ識別する識別情報が前記記憶装置に格納されているか否かに基づいて、前記通信データが、前記複数の仮想装置間で仮想的に通信されるものであるか否かを判断する仮想通信判断ステップと、
前記仮想通信判断ステップで前記通信データが仮想的に通信されるものでないと判断された場合、この通信データに対して前記通信プロトコル処理を実行するオフロード処理実行ステップと、
前記オフロード処理実行ステップで前記通信プロトコル処理が実行された前記通信データおよび前記仮想通信判断ステップで前記仮想的に通信されるものであると判断されて前記通信プロトコル処理が実行されなかった通信データを前記仮想装置に出力するオフロードデータ出力ステップと、
を実行させるオフロード処理プログラム。
【請求項７】
前記オフロード処理装置に、
前記仮想装置によって前記通信装置の外部に送信される通信データが入力される送信データ入力ステップと、
前記送信データ入力ステップで入力された通信データに含まれる送信元を識別する識別情報を抽出して前記記憶装置に格納する識別情報抽出ステップと、
をさらに実行させることを特徴とする請求項６に記載のオフロード処理プログラム。
【請求項８】
通信装置と、オフロード処理装置と、を備え、
前記通信装置は、
前記通信装置の物理資源を共有しながらそれぞれが独立した通信装置として動作する複数の仮想装置を有し、
前記仮想装置は、
仮想的なネットワークによって他の前記仮想装置に接続され、
通信データを送受信する通信アプリケーションと、
前記通信データに対する通信プロトコル処理の実行要求を表す情報を前記通信データに含めて前記オフロード処理装置に出力するオフロード要求手段と、
を有し、
前記オフロード処理装置は、
前記仮想装置を識別する識別情報を格納する識別情報格納手段と、
前記オフロード要求手段から前記通信データが入力されるオフロードデータ入力手段と、
前記オフロードデータ入力手段に入力された通信データに含まれる宛先および送信元をそれぞれ識別する識別情報が前記識別情報格納手段に格納されているか否かに基づいて、前記通信データが、前記複数の仮想装置間で仮想的に通信されるものであるか否かを判断する仮想通信判断手段と、
前記仮想通信判断手段によって前記通信データが仮想的に通信されるものでないと判断された場合、この通信データに対して前記通信プロトコル処理を実行するオフロード処理実行手段と、
前記オフロード処理実行手段によって前記通信プロトコル処理が実行された前記通信データおよび前記仮想通信判断手段によって前記仮想的に通信されるものであると判断されて前記通信プロトコル処理が実行されなかった通信データを前記仮想装置に出力するオフロードデータ出力手段と、を有する通信システム。
【請求項９】
前記仮想装置は、
前記通信アプリケーションによって送信される通信データを前記仮想的なネットワークを介して送信する仮想送信手段をさらに備え、
前記オフロード処理装置は、
前記仮想送信手段によって前記通信装置の外部に送信される通信データが前記仮想的なネットワークを介して入力される送信データ入力手段と、
前記送信データ入力手段に入力される通信データに含まれる送信元を識別する識別情報を抽出して前記識別情報格納手段に格納する識別情報抽出手段と、
をさらに備えることを特徴とする請求項８に記載の通信システム。
【請求項１０】
通信装置と、オフロード処理装置と、を用いて、
前記通信装置が、
複数の仮想装置に物理資源を共有させてそれぞれを独立した通信装置として動作させるとともに前記仮想装置間を仮想的なネットワークで接続する仮想化ステップを実行し、
前記仮想装置が、
通信アプリケーションによって送受信される通信データに対する通信プロトコル処理の実行要求を表す情報を前記通信データに含めて前記オフロード処理装置に出力するオフロード要求ステップを実行し、
前記オフロード処理装置が、
前記仮想装置を識別する識別情報を記憶装置に格納する識別情報格納ステップと、
前記オフロード要求ステップで出力された通信データが入力されるオフロードデータ入力ステップと、
前記オフロードデータ入力ステップで入力された通信データに含まれる宛先および送信元をそれぞれ識別する識別情報が前記記憶装置に格納されているか否かに基づいて、前記通信データが、前記複数の仮想装置間で仮想的に通信されるものであるか否かを判断する仮想通信判断ステップと、
前記仮想通信判断ステップで前記通信データが仮想的に通信されるものでないと判断された場合、この通信データに対して前記通信プロトコル処理を実行するオフロード処理実行ステップと、
前記オフロード処理実行ステップで前記通信プロトコル処理が実行された通信データおよび前記仮想通信判断ステップで前記仮想的に通信されるものであると判断されて前記通信プロトコル処理が実行されなかった通信データを前記仮想装置に出力するオフロードデータ出力ステップと、を実行する通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置からオフロードされる通信プロトコル処理を実行するオフロード処理装置およびこれを備える通信システムに関する。
【背景技術】
【０００２】
一般的な通信システムにおいて、通信装置は、ネットワークインタフェース装置を介してデータを送受信し、送受信されるデータに対して各種の通信プロトコル処理を実行する。
【０００３】
しかしながら、通信装置が実行する通信プロトコル処理には、データのチェックサム演算処理や、大容量データのセグメント化処理等、負荷の高い処理が多い。
【０００４】
そのため、ネットワークの発展に伴ってデータ通信量が増加するにつれ、通信装置が実行する通信プロトコル処理量が肥大化し、通信装置の負荷が増大するという問題があった。
【０００５】
このような問題を軽減するものとして、通信プロトコル処理の一部を通信装置からオフロードされて代わりに実行するオフロード処理装置が知られている（例えば、特許文献１参照）。
【０００６】
一方、通信装置の処理能力向上に伴い、１つの物理的な通信装置に複数の仮想的な通信装置（以下、仮想装置という）を設け、仮想装置に物理資源を共有させる仮想化技術が知られている。この仮想化技術では、各仮想装置が仮想的なネットワークインタフェース装置（以下、仮想ネットワークインタフェース装置という）を備える。仮想ネットワークインタフェース装置は、仮想ネットワークを介して物理的なネットワークインタフェース装置に接続される。そして、この各仮想装置上で実行されるＯＳ（Operating System）は、仮想ネットワークインタフェース装置を物理的なネットワークインタフェース装置と同等に認識することにより、ネットワークを介した通信を行う。
【０００７】
このような仮想化技術において、特許文献２に記載されたようなオフロード処理装置が知られている。このオフロード処理装置は、コア機能として、トランスポート層およびネットワーク層の通信プロトコルであるＴＣＰ／ＩＰ（Transmission Control Protocol and Internet Protocol）のパケット処理を実行するコア機能回路と、複数の仮想装置に対して完結したオフロード処理装置としてそれぞれ提示される複数のクライアントインタフェース回路と、クライアントインタフェース回路をコア機能回路に接続する多重化回路とを備えている。これにより、ＴＣＰ／ＩＰパケットのオフロード機能を持つ単一のオフロード処理装置が、複数の仮想装置で共有される。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特表２００２−５１７８５５号公報
【特許文献２】特表２００８−５０３０１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献２に記載されたオフロード処理装置は、同一通信装置上における仮想装置間で通信される通信データに対して、送信元の仮想装置および宛先の仮想装置の両方からオフロードされたＴＣＰ／ＩＰパケット処理を実行する。そのため、特許文献２に記載されたオフロード処理装置は、同一通信装置上における仮想装置間の通信性能を低下させるといった課題があった。
【００１０】
また、特許文献１に記載されたオフロード処理装置も、内部の仮想装置間の通信に適用された場合、送信元および宛先の仮想装置の両方からオフロードされた通信プロトコル処理を実行することになる。そのため、特許文献１に記載されたオフロード処理装置も、同一通信装置上における仮想装置間の通信性能を低下させるといった課題があった。
【００１１】
本発明は、上述の課題を解決するためになされたもので、同一通信装置上における仮想装置間の通信性能を向上させることができるオフロード処理装置および通信システムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明に係るオフロード処理装置は、物理的に１つの通信装置上で物理資源を共有しながらそれぞれが独立した通信装置として動作する複数の仮想装置を有する通信装置に接続され、前記仮想装置を識別する識別情報を格納する識別情報格納手段と、通信プロトコル処理の実行要求を表す情報を含む通信データが前記仮想装置から入力されるオフロードデータ入力手段と、前記オフロードデータ入力手段に入力された通信データに含まれる宛先および送信元をそれぞれ識別する識別情報が前記識別情報格納手段に格納されているか否かに基づいて、前記通信データが、前記複数の仮想装置間で仮想的に通信されるものであるか否かを判断する仮想通信判断手段と、前記仮想通信判断手段によって前記通信データが仮想的に通信されるものでないと判断された場合、この通信データに対して前記通信プロトコル処理を実行するオフロード処理実行手段と、前記オフロード処理実行手段によって前記通信プロトコル処理が実行された前記通信データおよび前記仮想通信判断手段によって前記仮想的に通信されるものであると判断されて前記通信プロトコル処理が実行されなかった通信データを前記仮想装置に出力するオフロードデータ出力手段と、を備える。
【００１３】
また、本発明に係る通信システムは、通信装置と、オフロード処理装置と、を備え、前記通信装置は、前記通信装置の物理資源を共有しながらそれぞれが独立した通信装置として動作する複数の仮想装置を有し、前記仮想装置は、仮想的なネットワークによって他の前記仮想装置に接続され、通信データを送受信する通信アプリケーションと、前記通信データに対する通信プロトコル処理の実行要求を表す情報を前記通信データに含めて前記オフロード処理装置に出力するオフロード要求手段と、を有し、前記オフロード処理装置は、前記仮想装置を識別する識別情報を格納する識別情報格納手段と、前記オフロード要求手段から出力された通信データが入力されるオフロードデータ入力手段と、前記オフロードデータ入力手段に入力された通信データに含まれる宛先および送信元をそれぞれ識別する識別情報が前記識別情報格納手段に格納されているか否かに基づいて、前記通信データが、前記複数の仮想装置間で仮想的に通信されるものであるか否かを判断する仮想通信判断手段と、前記仮想通信判断手段によって前記通信データが仮想的に通信されるものでないと判断された場合、この通信データに対して前記通信プロトコル処理を実行するオフロード処理実行手段と、前記オフロード処理実行手段によって前記通信プロトコル処理が実行された前記通信データおよび前記仮想通信判断手段によって前記仮想的に通信されるものであると判断されて前記通信プロトコル処理が実行されなかった通信データを前記仮想装置に出力するオフロードデータ出力手段と、を有する。
【発明の効果】
【００１４】
本発明は、同一通信装置上における仮想装置間の通信性能を向上させるオフロード処理装置および通信システムを提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施の形態としての通信システムの機能ブロック図である。
【図２】本発明の第１の実施の形態としての通信システムの動作を示すフローチャートである。
【図３】本発明の第２の実施の形態としての通信システムの機能ブロック図である。
【図４】本発明の第２の実施の形態としての通信システムが内部の仮想装置の識別情報を格納する動作を示すフローチャートである。
【図５】本発明の第２の実施の形態としての通信システムが送信データに対するチェックサム演算をオフロードする動作を示すフローチャートである。
【図６】本発明の第２の実施の形態としての通信システムが受信データに対するチェックサム演算をオフロードする動作を示すフローチャートである。
【発明を実施するための形態】
【００１６】
次に、本発明の第１の実施の形態について図面を参照して詳細に説明する。
【００１７】
本発明の第１の実施の形態としての通信システム１の構成を図１に示す。通信システム１は、通信装置２と、オフロード処理装置３とを備えている。
【００１８】
まず、通信装置２の構成について説明する。
【００１９】
通信装置２は、ＣＰＵ（Central Processing Unit）と、ＲＯＭ（Read Only Memory）と、ＲＡＭ（Random Access Memory）と、記憶装置と、周辺機器接続インタフェースとを有する汎用的なコンピュータ装置によって構成される。
【００２０】
次に、通信装置２の機能ブロックについて説明する。
【００２１】
通信装置２は、仮想装置２１ａおよび仮想装置２１ｂ（以下、総称して仮想装置２１ともいう）を備えている。また、仮想装置２１は、通信アプリケーション２２およびオフロード要求手段２３を有している。なお、図１には２つの仮想装置２１を示しているが、本発明における通信装置が備える仮想装置の数を限定するものではない。
【００２２】
ここで、仮想装置２１は、コンピュータ装置の記憶装置に記憶された仮想化ソフトウェアがＣＰＵによって実行されることによって実現される。
【００２３】
また、仮想装置２１ａおよび２１ｂは、仮想化ソフトウェアによって実行される仮想ネットワークによって互いに接続されている。
【００２４】
また、仮想装置２１には、通信装置２の物理資源が仮想化ソフトウェアによって論理的に分割されて割り当てられる。これにより、仮想装置２１ａおよび２１ｂは、通信装置２の物理資源を共有する。
【００２５】
通信アプリケーション２２は、仮想装置２１に割り当てられた記憶装置に記憶されたＯＳ（Operating System）と、このＯＳ上で実行される通信クライアントソフトウェアおよび通信ドライバソフトウェアとがＣＰＵによって実行されることによって実現される。
【００２６】
また、通信アプリケーション２２は、送受信する通信データに対する通信プロトコル処理をオフロード要求手段２３にオフロードするよう設定されている。
【００２７】
オフロード要求手段２３は、前述の仮想化ソフトウェアによって実行される仮想ネットワークインタフェース装置によって構成される。
【００２８】
また、オフロード要求手段２３は、通信アプリケーション２２によってオフロードされる通信データに対する通信プロトコル処理の実行をオフロード処理装置３に要求する。すなわち、オフロード要求手段２３は、通信プロトコル処理の実行要求を表す情報を通信データに含めてオフロード処理装置３に出力する。
【００２９】
例えば、オフロード要求手段２３は、通信データに通信プロトコル処理の実行を要求するフラグを設定してオフロード処理装置３に出力する。
【００３０】
次に、オフロード処理装置３の構成について説明する。
【００３１】
オフロード処理装置３は、ネットワークケーブルが接続されるソケットと、ネットワークケーブルを介して通信データを送受信する送受信回路と、通信装置２からオフロードされる通信プロトコル処理を実行する通信プロトコル処理回路と、制御回路と、記憶装置と、通信装置２に接続する接続インタフェースとを備えたネットワークインタフェースコントローラによって構成されている。
【００３２】
なお、オフロード処理装置３は、通信装置２と一体に構成されていてもよい。例えば、オフロード処理装置３は、通信装置２を構成するコンピュータ装置が備えるマザーボード上に組み込まれていてもよい。
【００３３】
次に、オフロード処理装置３の機能ブロックについて説明する。
【００３４】
オフロード処理装置３は、識別情報格納手段３１と、オフロードデータ入出力手段３２と、仮想通信判断手段３３と、オフロード処理実行手段３４とを備えている。なお、オフロードデータ入出力手段３２は、本発明のオフロードデータ入力手段およびオフロードデータ出力手段の一実施形態を構成する。
【００３５】
ここで、識別情報格納手段３１は記憶装置によって構成され、オフロードデータ入出力手段３２は接続インタフェース、記憶装置および制御回路によって構成され、仮想通信判断手段３３は制御回路によって構成され、オフロード処理実行手段３４は通信プロトコル処理回路によって構成される。
【００３６】
識別情報格納手段３１は、仮想装置２１ａおよび２１ｂをそれぞれ識別する識別情報を格納している。
【００３７】
オフロードデータ入出力手段３２には、通信プロトコル処理の実行要求を表す情報を含む通信データが仮想装置２１から入力される。
【００３８】
仮想通信判断手段３３は、オフロードデータ入出力手段３２に入力される通信データに含まれる宛先および送信元をそれぞれ識別する識別情報が、識別情報格納手段３１に格納されているか否かに基づいて、この通信データが、仮想装置２１ａおよび２１ｂ間で仮想的に通信されるものであるか否かを判断する。
【００３９】
オフロード処理実行手段３４は、仮想通信判断手段３３によって通信データが仮想的に通信されるものでないと判断された場合に、この通信データに対してオフロードされた通信プロトコル処理を実行する。一方、オフロード処理実行手段３４は、仮想通信判断手段３３によって通信データが仮想的に通信されるものであると判断された場合には、この通信データに対してオフロードされた通信プロトコル処理を実行しない。
【００４０】
前述したオフロードデータ入出力手段３２は、オフロード処理実行手段３４によって処理された通信データおよび仮想通信判断手段３３によって仮想的に通信されるものであると判断されて通信プロトコル処理が実行されていない通信データを仮想装置２１に出力する。
【００４１】
以上のように構成された通信システム１が通信プロトコル処理をオフロードする動作について図２を用いて説明する。
【００４２】
まず、通信プロトコル処理の実行要求を表す情報を含む通信データが、仮想装置２１のオフロード要求手段２３によってオフロード処理装置３のオフロードデータ入出力手段３２に入力される（ステップＳ１）。
【００４３】
次に、仮想通信判断手段３３によって、ステップＳ１で入力された通信データから、宛先および送信元を識別する識別情報がそれぞれ抽出される（ステップＳ２）。
【００４４】
次に、仮想通信判断手段３３によって、ステップＳ２で抽出された宛先および送信元の識別情報が識別情報格納手段３１に格納されているか否かが判断される（ステップＳ３）。
【００４５】
ここで、このステップＳ２で抽出された宛先および送信元の識別情報のうち少なくとも１つが識別情報格納手段３１に格納されていないと判断された場合、オフロード処理実行手段３４によって、この通信データに対してオフロードされた通信プロトコル処理が実行される（ステップＳ４）。通信プロトコル処理が実行された通信データは、オフロードデータ入出力手段３２によって仮想装置２１に出力される。
【００４６】
一方、ステップＳ３において、ステップＳ２で抽出された宛先および送信元の識別情報の両方が識別情報格納手段３１に格納されていると判断された場合、この通信データに対する通信プロトコル処理は実行されない。通信プロトコル処理が実行されなかった通信データは、オフロードデータ入出力手段３２によって仮想装置２１に出力される。
【００４７】
以上で、通信システム１は通信プロトコル処理をオフロードする動作を終了する。
【００４８】
次に、本発明の第１の実施の形態の効果について説明する。
【００４９】
本発明の第１の実施の形態としての通信システムおよびオフロード処理装置は、同一通信装置上における仮想装置間の通信性能を向上させることができる。
【００５０】
その理由は、オフロード処理装置が、あらかじめ記憶しておいた内部の仮想装置の識別情報に基づいて内部の仮想装置間の通信であるか否かを判断し、内部の仮想装置間の通信である場合はオフロード処理を実行しないからである。
【００５１】
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。
【００５２】
本発明の第２の実施の形態では、本発明のオフロード処理装置をＴＣＰ／ＩＰチェックサムオフロード機能を持つネットワークインタフェースコントローラに適用した通信システムについて説明する。ＴＣＰ／ＩＰパケットのチェックサム演算処理は、通信経路におけるデータ化けを検出する処理であるため、物理的なネットワークを介した通信では必要であるが、同一通信装置上の仮想装置間の通信ではデータ化けが起きる可能性がなく不要である。
【００５３】
本発明の第２の実施の形態としての通信システム４の構成を図３に示す。
【００５４】
図３において、通信システム４は、通信装置５と、ネットワークインタフェースコントローラ６とを備えている。通信装置５は、ネットワークインタフェースコントローラ６を介して物理的なネットワークに接続されている。
【００５５】
まず、通信装置５の構成について説明する。
【００５６】
通信装置５は、本発明の第１の実施の形態における通信装置２と同様に汎用的なコンピュータ装置によって構成される。
【００５７】
また、通信装置５は、機能ブロックとして、仮想装置５１ａおよび５１ｂ（以下、総称して仮想装置５１ともいう）と、仮想ネットワーク５９とを備え、仮想装置５１ａおよび５１ｂは仮想ネットワーク５９によって互いに接続されている。なお、図１には２つの仮想装置５１を示しているが、本発明における通信装置が備える仮想装置の数を限定するものではない。
【００５８】
また、仮想装置５１は、ＴＣＰ／ＩＰパケットの送受信を行う通信アプリケーション５２と、仮想ネットワークインタフェース手段５３と、を有し、仮想ネットワークインタフェース手段５３は、オフロード要求手段５４と、仮想送受信手段５５とを有している。なお、仮想送受信手段５５は、本発明の仮想送信手段の一実施形態を構成する。
【００５９】
仮想装置５１、仮想ネットワークインタフェース手段５３および仮想ネットワーク５９は、コンピュータ装置の記憶装置に記憶された仮想化ソフトウェアがＣＰＵによって実行されることによって実現される。
【００６０】
通信アプリケーション５２は、仮想装置５１に割り当てられた記憶装置に記憶されたＯＳと、このＯＳ上で実行されるＴＣＰ／ＩＰ通信クライアントソフトウェアおよび仮想ネットワークインタフェース手段５３を制御する通信ドライバソフトウェアとがＣＰＵによって実行されることによって実現される。
【００６１】
また、通信アプリケーション５２は、仮想装置５１に割り当てられたＩＰアドレスを送信元のＩＰアドレスとして送信ＴＣＰ／ＩＰパケットを生成する。
【００６２】
また、通信アプリケーション５２は、送受信するＴＣＰ／ＩＰパケットに対する通信プロトコル処理を仮想ネットワークインタフェース手段５３にオフロードするよう設定されている。
【００６３】
仮想ネットワークインタフェース手段５３は、仮想化ソフトウェアによって割り振られた固有のＭＡＣ（Media Access Control）アドレスを有している。また、仮想ネットワークインタフェース手段５３は、通信アプリケーション５２によって物理的なネットワークインタフェースコントローラと同等に認識される。
【００６４】
オフロード要求手段５４は、通信アプリケーション５２によって生成される送信ＴＣＰ／ＩＰパケットに対するチェックサム演算処理の実行をネットワークインタフェースコントローラ６に要求する。すなわち、オフロード要求手段５４は、チェックサム演算の実行要求フラグを送信ＴＣＰ／ＩＰパケットに含めてネットワークインタフェースコントローラ６に出力する。
【００６５】
また、オフロード要求手段５４は、仮想送受信手段５５によって受信される受信ＴＣＰ／ＩＰパケットに対するチェックサム検証処理のオフロードをネットワークインタフェースコントローラ６に要求する。すなわち、オフロード要求手段５４は、チェックサム検証の実行要求フラグを受信ＴＣＰ／ＩＰパケットに含めてネットワークインタフェースコントローラ６に出力する。
【００６６】
仮想送受信手段５５は、ネットワークインタフェースコントローラ６によって処理された送信ＴＣＰ／ＩＰパケットを仮想ネットワーク５９を介して送信する。このとき、仮想送受信手段５５は、仮想ネットワークインタフェース手段５３が有するＭＡＣアドレスを用い、送信ＴＣＰ／ＩＰパケットをイーサネット（登録商標）フレームにカプセル化して送信する。
【００６７】
また、仮想送受信手段５５は、仮想ネットワーク５９を介してイーサネット（登録商標）フレームを受信し、受信ＴＣＰ／ＩＰパケットにデカプセル化する。
【００６８】
仮想ネットワーク５９は、仮想送受信手段５５によって送信されるイーサネット（登録商標）フレームを、宛先に応じて振り分ける。すなわち、仮想ネットワーク５９は、イーサネット（登録商標）フレームの宛先ＭＡＣアドレスが内部の仮想装置５１であれば仮想的に送信し、通信装置５の外部の装置であれば、ネットワークインタフェースコントローラ６に出力する。
【００６９】
次に、ネットワークインタフェースコントローラ６の構成について説明する。
【００７０】
ネットワークインタフェースコントローラ６は、本発明の第１の実施の形態におけるオフロード処理装置３と同一のハードウェア構成を備え、通信プロトコル処理回路としてＴＣＰ／ＩＰチェックサム演算回路を備えている。
【００７１】
また、ネットワークインタフェースコントローラ６は、機能ブロックとして、識別情報格納手段６１と、オフロードデータ入出力手段６２と、仮想通信判断手段６３と、オフロード処理実行手段６４と、送受信データ入出力手段６５と、送受信手段６６と、識別情報抽出手段６７と、を備えている。なお、オフロードデータ入出力手段６２は、本発明のオフロードデータ入力手段およびオフロードデータ出力手段を構成し、送受信データ入出力手段６５は、本発明の送信データ入力手段の一実施形態を構成する。
【００７２】
ここで、識別情報格納手段６１は記憶装置によって構成され、オフロードデータ入出力手段６２および送受信データ入出力手段６５は、接続インタフェース、記憶装置および制御回路によって構成され、仮想通信判断手段６３は制御回路によって構成され、オフロード処理実行手段６４はＴＣＰ／ＩＰチェックサム演算回路によって構成され、送受信手段６６は送受信回路によって構成され、識別情報抽出手段６７は制御回路によって構成される。
【００７３】
識別情報格納手段６１は、仮想装置５１の識別情報としてＩＰアドレスを格納する。
【００７４】
オフロードデータ入出力手段６２には、チェックサム演算またはチェックサム検証の実行要求フラグを含むＴＣＰ／ＩＰパケットが仮想装置５１から入力される。
【００７５】
仮想通信判断手段６３は、オフロードデータ入出力手段６２に入力されるＴＣＰ／ＩＰパケットから宛先および送信元のＩＰアドレスを抽出し、抽出したＩＰアドレスが識別情報格納手段６１に格納されているか否かに基づいて、ＴＣＰ／ＩＰパケットが仮想装置５１間で仮想的に通信されるものであるか否かを判断する。
【００７６】
オフロード処理実行手段６４は、仮想通信判断手段６３によって仮想装置５１間で仮想的に通信されるものではないと判断された送信ＴＣＰ／ＩＰパケットに対して、チェックサム演算を実行する。
【００７７】
具体的には、オフロード処理実行手段６４は、送信ＴＣＰ／ＩＰパケットに対してＴＣＰチェックサムを演算し、演算結果をＴＣＰヘッダのチェックサムフィールドに設定する。また、オフロード処理実行手段６４は、送信ＴＣＰ／ＩＰパケットのＩＰヘッダチェックサムを演算し、演算結果をＩＰヘッダのチェックサムフィールドに設定する。
【００７８】
また、オフロード処理実行手段６４は、受信ＴＣＰ／ＩＰパケットに対してＴＣＰチェックサムを演算し、演算結果を検証する。また、オフロード処理実行手段６４は、受信ＴＣＰ／ＩＰパケットのＩＰヘッダチェックサムを演算し、演算結果を検証する。
【００７９】
また、オフロード処理実行手段６４は、仮想通信判断手段６３によって仮想装置５１間で仮想的に通信されるものであると判断された送信ＴＣＰ／ＩＰパケットのチェックサムフィールドにあらかじめ定められた固定値を設定する。
【００８０】
また、オフロード処理実行手段６４は、仮想的に通信されるものであると判断された受信ＴＣＰ／ＩＰパケットのチェックサムフィールドがあらかじめ定められた固定値であることを検証する。
【００８１】
送受信データ入出力手段６５には、外部の通信装置宛のイーサネット（登録商標）フレームが仮想ネットワーク５９から入力され、送受信手段６６によって物理的なネットワークに送信される。また、送受信データ入出力手段６５には、送受信手段６６によって物理的なネットワークから受信されたイーサネット（登録商標）フレームが入力され、仮想ネットワーク５９に出力される。
【００８２】
識別情報抽出手段６７は、送受信データ入出力手段６５に仮想ネットワーク５９からイーサネット（登録商標）フレームが入力されると、このイーサネット（登録商標）フレームに含まれる送信元のＩＰアドレスを抽出し、識別情報格納手段６１に格納する。
【００８３】
以上のように構成された通信システム４の動作について図４〜図６を参照して説明する。
【００８４】
まず、図４を用いて、通信システム４が内部の仮想装置の識別情報を格納する動作を説明する。
【００８５】
ここでは、まず、外部に送信されるイーサネット（登録商標）フレームが、仮想装置５１の仮想送受信手段５５から、ネットワークインタフェースコントローラ６の送受信データ入出力手段６５に入力される（ステップＳ１１）。
【００８６】
次に、識別情報抽出手段６７によって、ステップＳ１１で入力されたイーサネット（登録商標）フレームから、送信元のＩＰアドレスが抽出される（ステップＳ１２）。
【００８７】
次に、識別情報抽出手段６７によって、ステップＳ１２で抽出されたＩＰアドレスが、識別情報格納手段６１に格納される（ステップＳ１３）。
【００８８】
以上で、通信システム４は、内部の仮想装置の識別情報を格納する動作を終了する。
【００８９】
次に、図５を用いて、通信システム４が送信ＴＣＰ／ＩＰパケットに対するチェックサ
ム演算をオフロードする動作について説明する。
【００９０】
ここでは、まず、送信ＴＣＰ／ＩＰパケットが、通信アプリケーション５２によって生成され、オフロード要求手段５４によってチェックサム演算要求フラグを設定されて、ネットワークインタフェースコントローラ６のオフロードデータ入出力手段６２に入力される（ステップＳ２１）。
【００９１】
次に、仮想通信判断手段６３によって、ステップＳ２１で入力された送信ＴＣＰ／ＩＰパケットから、宛先および送信元のＩＰアドレスが抽出される（ステップＳ２２）。
【００９２】
次に、仮想通信判断手段６３によって、ステップＳ２２で抽出された宛先および送信元のＩＰアドレスが識別情報格納手段６１に格納されているか否かが判断される（ステップＳ２３）。
【００９３】
ここで、宛先および送信元のＩＰアドレスのうち少なくとも１つが識別情報格納手段６１に格納されていないと判断された場合、オフロード処理実行手段６４によって、この送信ＴＣＰ／ＩＰパケットに対してチェックサム演算処理が行われる（ステップＳ２４）。
【００９４】
チェックサム演算処理された送信ＴＣＰ／ＩＰパケットは、オフロードデータ入出力手段６２によって仮想装置５１に出力され、仮想装置５１の仮想送受信手段５５によって、仮想ネットワーク５９を介して外部に送信される。
【００９５】
一方、ステップＳ２３で、宛先および送信元のＩＰアドレスの両方が識別情報格納手段６１に格納されていると判断された場合、オフロード処理実行手段６４によって、このＴＣＰ／ＩＰパケットのチェックサムフィールドにあらかじめ定められた固定値が設定される（ステップＳ２５）。
【００９６】
チェックサムフィールドに固定値が設定された送信ＴＣＰ／ＩＰパケットは、オフロードデータ入出力手段６２によって仮想装置５１に出力され、仮想装置５１の仮想送受信手段５５によって、仮想ネットワーク５９を介して内部の仮想装置５１に送信される。
【００９７】
以上で、通信システム４は、送信ＴＣＰ／ＩＰパケットに対するチェックサム演算をオフロードする動作を終了する。
【００９８】
次に、図６を用いて、通信システム４が受信ＴＣＰ／ＩＰパケットに対するチェックサム検証をオフロードする動作について説明する。
【００９９】
ここでは、まず、受信ＴＣＰ／ＩＰパケットが、仮想送受信手段５５によって受信され、オフロード要求手段５４によってチェックサム検証要求フラグが設定されて、ネットワークインタフェースコントローラ６のオフロードデータ入出力手段６２に入力される（ステップＳ３１）。
【０１００】
次に、仮想通信判断手段６３によって、ステップＳ３１で入力された受信ＴＣＰ／ＩＰパケットから宛先および送信元のＩＰアドレスが抽出される（ステップＳ３２）。
【０１０１】
次に、仮想通信判断手段６３によって、ステップＳ３２で抽出された宛先および送信元のＩＰアドレスが識別情報格納手段６１に格納されているか否かが判断される（ステップＳ３３）。
【０１０２】
ここで、宛先および送信元のＩＰアドレスのうち少なくとも１つが識別情報格納手段６１に格納されていないと判断された場合、オフロード処理実行手段６４によって、受信ＴＣＰ／ＩＰパケットに対するチェックサム演算が実行されてチェックサムフィールドが検証される（ステップＳ３４）。
【０１０３】
一方、ステップＳ３３で、宛先および送信元のＩＰアドレスの両方が識別情報格納手段６１に格納されていると判断された場合、オフロード処理実行手段６４によって、受信ＴＣＰ／ＩＰパケットのチェックサムフィールドに設定された値が、あらかじめ定められた固定値であることが検証される（ステップＳ３５）。
【０１０４】
ステップＳ３４およびＳ３５で検証された受信ＴＣＰ／ＩＰパケットは、オフロードデータ入出力手段３２によって仮想装置５１に出力され、仮想装置５１の通信アプリケーション５２によって処理される。
【０１０５】
以上で、通信システム４は、受信ＴＣＰ／ＩＰパケットに対するチェックサム検証をオフロードする動作を終了する。
【０１０６】
次に、本発明の第２の実施の形態の効果について説明する。
【０１０７】
本発明の第２の実施の形態としての通信システムおよびネットワークインタフェースコントローラに適用されたオフロード処理装置は、同一通信装置上で仮想装置間のＴＣＰ／ＩＰ通信が増加しても通信性能を低下させず効率がよい。
【０１０８】
その理由は、オフロード処理装置が、内部の仮想装置間で通信されるＴＣＰ／ＩＰパケットに対して、負荷の高いＴＣＰ／ＩＰチェックサム演算処理を実行しないからである。
【０１０９】
また、本発明の第２の実施の形態としての通信システムおよびネットワークインタフェースコントローラに適用されたオフロード処理装置は、ソフトウェアによる設定を必要とせずに、同一通信装置上で動作する仮想装置間の通信であるか否かを判断することができる。
【０１１０】
その理由は、オフロード処理装置がＴＣＰ／ＩＰパケットを外部に送信する際に、ＴＣＰ／ＩＰパケットの送信元の識別情報を抽出し、抽出した送信元の識別情報を内部の仮想装置の識別情報として記憶するからである。
【０１１１】
次に、本発明の第２の実施の形態の他の態様について説明する。
【０１１２】
本発明の第２の実施の形態における通信システム４は、他の態様として、仮想装置５１によって送受信されるイーサネット（登録商標）フレームのチェックサム演算処理をネットワークインタフェースコントローラ６にオフロードしてもよい。
【０１１３】
この場合、ネットワークインタフェースコントローラ６の識別情報抽出手段６７は、送受信データ入出力手段６５に入力されるイーサネット（登録商標）フレームからＭＡＣアドレスを抽出し、抽出したＭＡＣアドレスを内部の仮想装置の識別情報として識別情報格納手段６１に格納する。
【０１１４】
また、仮想装置５１のオフロード要求手段５４は、送受信イーサネット（登録商標）フレームに対するチェックサム演算のオフロードをネットワークインタフェースコントローラ６に要求する。
【０１１５】
また、ネットワークインタフェースコントローラ６の仮想通信判断手段６３は、イーサネット（登録商標）フレームに含まれる宛先および送信元のＭＡＣアドレスが識別情報格納手段６１に格納されているか否かに基づいて、このイーサネット（登録商標）フレームが仮想装置５１間で仮想的に通信されるものであるか否かを判断する。
【０１１６】
オフロード処理実行手段６４は、仮想的に通信されるものでないと判断されたイーサネット（登録商標）フレームのチェックサム演算処理を実行する。オフロード処理実行手段６４は、仮想的に通信されるものであると判断されたイーサネット（登録商標）フレームのチェックサム演算処理は実行しない。
【０１１７】
以上のように構成された本発明の第２の実施の形態の他の態様における通信システム４の動作は、上述の本発明の第２の実施の形態の動作の説明においてＴＣＰ／ＩＰパケットをイーサネット（登録商標）フレームに替えＩＰアドレスをＭＡＣアドレスに替えることにより同様に説明されるため、説明を省略する。
【０１１８】
次に、本発明の第２の実施の形態の他の態様の効果について説明する。
【０１１９】
本発明の第２の実施の形態の他の態様の通信システムおよびネットワークインタフェースコントローラに適用されたオフロード処理装置は、同一通信装置上で仮想装置間のイーサネット（登録商標）通信が増加しても通信性能を低下させず効率がよい。
【０１２０】
その理由は、オフロード処理装置が、仮想的に通信されるものではないと判断されたイーサネット（登録商標）フレームに対しては、仮想装置間の通信に不要なチェックサム演算処理を実行しないからである。
【０１２１】
なお、本発明の第２の実施の形態および他の態様において、通信システム４は、ＴＣＰ／ＩＰに限らず、他の通信プロトコロルに基づいて通信を行うものであってもよい。
【０１２２】
また、仮想装置間の仮想ネットワークの通信プロトコルは、イーサネット（登録商標）が代表的ではあるが、ＭＡＣアドレスで識別できる他の通信プロトコルでも良い。
【０１２３】
この場合も、通信システム４およびネットワークインタフェースコントローラ６は、負荷の高いエラー検出符号演算処理を仮想装置間の通信では実行しないことにより、仮想装置間の通信性能を向上させることができる。
【０１２４】
また、本発明の第２の実施の形態および他の態様において、ネットワークインタフェースコントローラ６は、チェックサム演算処理に限らず、仮想装置間の通信に不要なその他の通信プロトコル処理をオフロードされて実行するものであってもよい。
【０１２５】
この場合も、通信システム４およびネットワークインタフェースコントローラ６は、仮想装置間の通信に不要な通信プロトコル処理を仮想装置間の通信では実行しないことにより、内部の仮想装置間の通信性能を向上させることができる。
【０１２６】
また、上述した本発明の各実施の形態において、オフロード処理装置の動作は、本発明のオフロード処理プログラムを構成するプログラムモジュールとしてオフロード処理装置の記憶装置に格納され、制御部によって実行されるようにしてもよい。
【０１２７】
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
【０１２８】
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
【産業上の利用可能性】
【０１２９】
本発明は、同一通信装置上の仮想装置間の通信性能を向上させることができるオフロード処理装置および通信システムを提供することができ、同一通信装置上の仮想装置間での通信量が多い通信システムおよびこの通信システムに備えられるオフロード処理装置として好適である。
【０１３０】
（付記１）  前記仮想装置が、
前記通信データを前記仮想ネットワークを介して送信する仮想送信ステップをさらに実行し、
前記オフロード処理装置が、
前記仮想送信ステップで送信される前記通信データのうち通信装置の外部に送信される通信データが前記仮想的なネットワークを介して入力される送信データ入力ステップと、
前記送信データ入力ステップで入力される通信データに含まれる送信元を識別する識別情報を抽出して前記記憶装置に格納する識別情報抽出ステップと、
をさらに実行することを特徴とする請求項１０に記載の通信方法。
【符号の説明】
【０１３１】
１、４    通信システム
２、５    通信装置
３    オフロード処理装置
６    ネットワークインタフェースコントローラ
２１、５１    仮想装置
２２、５２    通信アプリケーション
２３、５４    オフロード要求手段
３１、６１    識別情報格納手段
３２、６２    オフロードデータ入出力手段（オフロードデータ入力手段、オフロードデータ出力手段）
３３、６３    仮想通信判断手段
３４、６４    オフロード処理実行手段
５３    仮想ネットワークインタフェース手段
５５    仮想送受信手段（仮想送信手段）
６５    送受信データ入出力手段（送信データ入力手段）
６７    識別情報抽出手段
【図１】
0005423404.tif 000002
【図２】
0005423404.tif 000003
【図３】
0005423404.tif 000004
【図４】
0005423404.tif 000005
【図５】
0005423404.tif 000006
【図６】
0005423404.tif 000007