JP2011141778A - オフロード処理装置、および、通信システム - Google Patents

オフロード処理装置、および、通信システム Download PDF

Info

Publication number
JP2011141778A
JP2011141778A JP2010002502A JP2010002502A JP2011141778A JP 2011141778 A JP2011141778 A JP 2011141778A JP 2010002502 A JP2010002502 A JP 2010002502A JP 2010002502 A JP2010002502 A JP 2010002502A JP 2011141778 A JP2011141778 A JP 2011141778A
Authority
JP
Japan
Prior art keywords
communication
virtual
offload
identification information
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010002502A
Other languages
English (en)
Other versions
JP5423404B2 (ja
Inventor
Hiroyoshi Kubota
浩義 久保田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2010002502A priority Critical patent/JP5423404B2/ja
Publication of JP2011141778A publication Critical patent/JP2011141778A/ja
Application granted granted Critical
Publication of JP5423404B2 publication Critical patent/JP5423404B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

【課題】同一通信装置上における仮想装置間の通信性能を向上させるオフロード処理装置を提供すること。
【解決手段】複数の仮想装置21を有する通信装置2に接続され、仮想装置21の識別情報を格納する識別情報格納手段31と、通信プロトコル処理の実行要求を表す情報を含む通信データが入力されるオフロードデータ入出力手段32と、通信データに含まれる宛先および送信元の識別情報が識別情報格納手段31に格納されているか否かに基づいて通信データが仮想装置21間で仮想的に通信されるものであるか否かを判断する仮想通信判断手段33と、仮想的に通信されるものではないと判断された通信データに対して通信プロトコル処理を実行するオフロード処理実行手段34と、を有する。
【選択図】 図1

Description

本発明は、通信装置からオフロードされる通信プロトコル処理を実行するオフロード処理装置およびこれを備える通信システムに関する。
一般的な通信システムにおいて、通信装置は、ネットワークインタフェース装置を介してデータを送受信し、送受信されるデータに対して各種の通信プロトコル処理を実行する。
しかしながら、通信装置が実行する通信プロトコル処理には、データのチェックサム演算処理や、大容量データのセグメント化処理等、負荷の高い処理が多い。
そのため、ネットワークの発展に伴ってデータ通信量が増加するにつれ、通信装置が実行する通信プロトコル処理量が肥大化し、通信装置の負荷が増大するという問題があった。
このような問題を軽減するものとして、通信プロトコル処理の一部を通信装置からオフロードされて代わりに実行するオフロード処理装置が知られている(例えば、特許文献1参照)。
一方、通信装置の処理能力向上に伴い、1つの物理的な通信装置に複数の仮想的な通信装置(以下、仮想装置という)を設け、仮想装置に物理資源を共有させる仮想化技術が知られている。この仮想化技術では、各仮想装置が仮想的なネットワークインタフェース装置(以下、仮想ネットワークインタフェース装置という)を備える。仮想ネットワークインタフェース装置は、仮想ネットワークを介して物理的なネットワークインタフェース装置に接続される。そして、この各仮想装置上で実行されるOS(Operating System)は、仮想ネットワークインタフェース装置を物理的なネットワークインタフェース装置と同等に認識することにより、ネットワークを介した通信を行う。
このような仮想化技術において、特許文献2に記載されたようなオフロード処理装置が知られている。このオフロード処理装置は、コア機能として、トランスポート層およびネットワーク層の通信プロトコルであるTCP/IP(Transmission Control Protocol and Internet Protocol)のパケット処理を実行するコア機能回路と、複数の仮想装置に対して完結したオフロード処理装置としてそれぞれ提示される複数のクライアントインタフェース回路と、クライアントインタフェース回路をコア機能回路に接続する多重化回路とを備えている。これにより、TCP/IPパケットのオフロード機能を持つ単一のオフロード処理装置が、複数の仮想装置で共有される。
特表2002−517855号公報 特表2008−503015号公報
しかしながら、特許文献2に記載されたオフロード処理装置は、同一通信装置上における仮想装置間で通信される通信データに対して、送信元の仮想装置および宛先の仮想装置の両方からオフロードされたTCP/IPパケット処理を実行する。そのため、特許文献2に記載されたオフロード処理装置は、同一通信装置上における仮想装置間の通信性能を低下させるといった課題があった。
また、特許文献1に記載されたオフロード処理装置も、内部の仮想装置間の通信に適用された場合、送信元および宛先の仮想装置の両方からオフロードされた通信プロトコル処理を実行することになる。そのため、特許文献1に記載されたオフロード処理装置も、同一通信装置上における仮想装置間の通信性能を低下させるといった課題があった。
本発明は、上述の課題を解決するためになされたもので、同一通信装置上における仮想装置間の通信性能を向上させることができるオフロード処理装置および通信システムを提供することを目的とする。
本発明に係るオフロード処理装置は、物理的に1つの通信装置上で物理資源を共有しながらそれぞれが独立した通信装置として動作する複数の仮想装置を有する通信装置に接続され、前記仮想装置を識別する識別情報を格納する識別情報格納手段と、通信プロトコル処理の実行要求を表す情報を含む通信データが前記仮想装置から入力されるオフロードデータ入力手段と、前記オフロードデータ入力手段に入力された通信データに含まれる宛先および送信元をそれぞれ識別する識別情報が前記識別情報格納手段に格納されているか否かに基づいて、前記通信データが、前記複数の仮想装置間で仮想的に通信されるものであるか否かを判断する仮想通信判断手段と、前記仮想通信判断手段によって前記通信データが仮想的に通信されるものでないと判断された場合、この通信データに対して前記通信プロトコル処理を実行するオフロード処理実行手段と、前記オフロード処理実行手段によって前記通信プロトコル処理が実行された前記通信データおよび前記仮想通信判断手段によって前記仮想的に通信されるものであると判断されて前記通信プロトコル処理が実行されなかった通信データを前記仮想装置に出力するオフロードデータ出力手段と、を備える。
また、本発明に係る通信システムは、通信装置と、オフロード処理装置と、を備え、前記通信装置は、前記通信装置の物理資源を共有しながらそれぞれが独立した通信装置として動作する複数の仮想装置を有し、前記仮想装置は、仮想的なネットワークによって他の前記仮想装置に接続され、通信データを送受信する通信アプリケーションと、前記通信データに対する通信プロトコル処理の実行要求を表す情報を前記通信データに含めて前記オフロード処理装置に出力するオフロード要求手段と、を有し、前記オフロード処理装置は、前記仮想装置を識別する識別情報を格納する識別情報格納手段と、前記オフロード要求手段から出力された通信データが入力されるオフロードデータ入力手段と、前記オフロードデータ入力手段に入力された通信データに含まれる宛先および送信元をそれぞれ識別する識別情報が前記識別情報格納手段に格納されているか否かに基づいて、前記通信データが、前記複数の仮想装置間で仮想的に通信されるものであるか否かを判断する仮想通信判断手段と、前記仮想通信判断手段によって前記通信データが仮想的に通信されるものでないと判断された場合、この通信データに対して前記通信プロトコル処理を実行するオフロード処理実行手段と、前記オフロード処理実行手段によって前記通信プロトコル処理が実行された前記通信データおよび前記仮想通信判断手段によって前記仮想的に通信されるものであると判断されて前記通信プロトコル処理が実行されなかった通信データを前記仮想装置に出力するオフロードデータ出力手段と、を有する。
本発明は、同一通信装置上における仮想装置間の通信性能を向上させるオフロード処理装置および通信システムを提供することができる。
本発明の第1の実施の形態としての通信システムの機能ブロック図である。 本発明の第1の実施の形態としての通信システムの動作を示すフローチャートである。 本発明の第2の実施の形態としての通信システムの機能ブロック図である。 本発明の第2の実施の形態としての通信システムが内部の仮想装置の識別情報を格納する動作を示すフローチャートである。 本発明の第2の実施の形態としての通信システムが送信データに対するチェックサム演算をオフロードする動作を示すフローチャートである。 本発明の第2の実施の形態としての通信システムが受信データに対するチェックサム演算をオフロードする動作を示すフローチャートである。
次に、本発明の第1の実施の形態について図面を参照して詳細に説明する。
本発明の第1の実施の形態としての通信システム1の構成を図1に示す。通信システム1は、通信装置2と、オフロード処理装置3とを備えている。
まず、通信装置2の構成について説明する。
通信装置2は、CPU(Central Processing Unit)と、ROM(Read Only Memory)と、RAM(Random Access Memory)と、記憶装置と、周辺機器接続インタフェースとを有する汎用的なコンピュータ装置によって構成される。
次に、通信装置2の機能ブロックについて説明する。
通信装置2は、仮想装置21aおよび仮想装置21b(以下、総称して仮想装置21ともいう)を備えている。また、仮想装置21は、通信アプリケーション22およびオフロード要求手段23を有している。なお、図1には2つの仮想装置21を示しているが、本発明における通信装置が備える仮想装置の数を限定するものではない。
ここで、仮想装置21は、コンピュータ装置の記憶装置に記憶された仮想化ソフトウェアがCPUによって実行されることによって実現される。
また、仮想装置21aおよび21bは、仮想化ソフトウェアによって実行される仮想ネットワークによって互いに接続されている。
また、仮想装置21には、通信装置2の物理資源が仮想化ソフトウェアによって論理的に分割されて割り当てられる。これにより、仮想装置21aおよび21bは、通信装置2の物理資源を共有する。
通信アプリケーション22は、仮想装置21に割り当てられた記憶装置に記憶されたOS(Operating System)と、このOS上で実行される通信クライアントソフトウェアおよび通信ドライバソフトウェアとがCPUによって実行されることによって実現される。
また、通信アプリケーション22は、送受信する通信データに対する通信プロトコル処理をオフロード要求手段23にオフロードするよう設定されている。
オフロード要求手段23は、前述の仮想化ソフトウェアによって実行される仮想ネットワークインタフェース装置によって構成される。
また、オフロード要求手段23は、通信アプリケーション22によってオフロードされる通信データに対する通信プロトコル処理の実行をオフロード処理装置3に要求する。すなわち、オフロード要求手段23は、通信プロトコル処理の実行要求を表す情報を通信データに含めてオフロード処理装置3に出力する。
例えば、オフロード要求手段23は、通信データに通信プロトコル処理の実行を要求するフラグを設定してオフロード処理装置3に出力する。
次に、オフロード処理装置3の構成について説明する。
オフロード処理装置3は、ネットワークケーブルが接続されるソケットと、ネットワークケーブルを介して通信データを送受信する送受信回路と、通信装置2からオフロードされる通信プロトコル処理を実行する通信プロトコル処理回路と、制御回路と、記憶装置と、通信装置2に接続する接続インタフェースとを備えたネットワークインタフェースコントローラによって構成されている。
なお、オフロード処理装置3は、通信装置2と一体に構成されていてもよい。例えば、オフロード処理装置3は、通信装置2を構成するコンピュータ装置が備えるマザーボード上に組み込まれていてもよい。
次に、オフロード処理装置3の機能ブロックについて説明する。
オフロード処理装置3は、識別情報格納手段31と、オフロードデータ入出力手段32と、仮想通信判断手段33と、オフロード処理実行手段34とを備えている。なお、オフロードデータ入出力手段32は、本発明のオフロードデータ入力手段およびオフロードデータ出力手段の一実施形態を構成する。
ここで、識別情報格納手段31は記憶装置によって構成され、オフロードデータ入出力手段32は接続インタフェース、記憶装置および制御回路によって構成され、仮想通信判断手段33は制御回路によって構成され、オフロード処理実行手段34は通信プロトコル処理回路によって構成される。
識別情報格納手段31は、仮想装置21aおよび21bをそれぞれ識別する識別情報を格納している。
オフロードデータ入出力手段32には、通信プロトコル処理の実行要求を表す情報を含む通信データが仮想装置21から入力される。
仮想通信判断手段33は、オフロードデータ入出力手段32に入力される通信データに含まれる宛先および送信元をそれぞれ識別する識別情報が、識別情報格納手段31に格納されているか否かに基づいて、この通信データが、仮想装置21aおよび21b間で仮想的に通信されるものであるか否かを判断する。
オフロード処理実行手段34は、仮想通信判断手段33によって通信データが仮想的に通信されるものでないと判断された場合に、この通信データに対してオフロードされた通信プロトコル処理を実行する。一方、オフロード処理実行手段34は、仮想通信判断手段33によって通信データが仮想的に通信されるものであると判断された場合には、この通信データに対してオフロードされた通信プロトコル処理を実行しない。
前述したオフロードデータ入出力手段32は、オフロード処理実行手段34によって処理された通信データおよび仮想通信判断手段33によって仮想的に通信されるものであると判断されて通信プロトコル処理が実行されていない通信データを仮想装置21に出力する。
以上のように構成された通信システム1が通信プロトコル処理をオフロードする動作について図2を用いて説明する。
まず、通信プロトコル処理の実行要求を表す情報を含む通信データが、仮想装置21のオフロード要求手段23によってオフロード処理装置3のオフロードデータ入出力手段32に入力される(ステップS1)。
次に、仮想通信判断手段33によって、ステップS1で入力された通信データから、宛先および送信元を識別する識別情報がそれぞれ抽出される(ステップS2)。
次に、仮想通信判断手段33によって、ステップS2で抽出された宛先および送信元の識別情報が識別情報格納手段31に格納されているか否かが判断される(ステップS3)。
ここで、このステップS2で抽出された宛先および送信元の識別情報のうち少なくとも1つが識別情報格納手段31に格納されていないと判断された場合、オフロード処理実行手段34によって、この通信データに対してオフロードされた通信プロトコル処理が実行される(ステップS4)。通信プロトコル処理が実行された通信データは、オフロードデータ入出力手段32によって仮想装置21に出力される。
一方、ステップS3において、ステップS2で抽出された宛先および送信元の識別情報の両方が識別情報格納手段31に格納されていると判断された場合、この通信データに対する通信プロトコル処理は実行されない。通信プロトコル処理が実行されなかった通信データは、オフロードデータ入出力手段32によって仮想装置21に出力される。
以上で、通信システム1は通信プロトコル処理をオフロードする動作を終了する。
次に、本発明の第1の実施の形態の効果について説明する。
本発明の第1の実施の形態としての通信システムおよびオフロード処理装置は、同一通信装置上における仮想装置間の通信性能を向上させることができる。
その理由は、オフロード処理装置が、あらかじめ記憶しておいた内部の仮想装置の識別情報に基づいて内部の仮想装置間の通信であるか否かを判断し、内部の仮想装置間の通信である場合はオフロード処理を実行しないからである。
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。
本発明の第2の実施の形態では、本発明のオフロード処理装置をTCP/IPチェックサムオフロード機能を持つネットワークインタフェースコントローラに適用した通信システムについて説明する。TCP/IPパケットのチェックサム演算処理は、通信経路におけるデータ化けを検出する処理であるため、物理的なネットワークを介した通信では必要であるが、同一通信装置上の仮想装置間の通信ではデータ化けが起きる可能性がなく不要である。
本発明の第2の実施の形態としての通信システム4の構成を図3に示す。
図3において、通信システム4は、通信装置5と、ネットワークインタフェースコントローラ6とを備えている。通信装置5は、ネットワークインタフェースコントローラ6を介して物理的なネットワークに接続されている。
まず、通信装置5の構成について説明する。
通信装置5は、本発明の第1の実施の形態における通信装置2と同様に汎用的なコンピュータ装置によって構成される。
また、通信装置5は、機能ブロックとして、仮想装置51aおよび51b(以下、総称して仮想装置51ともいう)と、仮想ネットワーク59とを備え、仮想装置51aおよび51bは仮想ネットワーク59によって互いに接続されている。なお、図1には2つの仮想装置51を示しているが、本発明における通信装置が備える仮想装置の数を限定するものではない。
また、仮想装置51は、TCP/IPパケットの送受信を行う通信アプリケーション52と、仮想ネットワークインタフェース手段53と、を有し、仮想ネットワークインタフェース手段53は、オフロード要求手段54と、仮想送受信手段55とを有している。なお、仮想送受信手段55は、本発明の仮想送信手段の一実施形態を構成する。
仮想装置51、仮想ネットワークインタフェース手段53および仮想ネットワーク59は、コンピュータ装置の記憶装置に記憶された仮想化ソフトウェアがCPUによって実行されることによって実現される。
通信アプリケーション52は、仮想装置51に割り当てられた記憶装置に記憶されたOSと、このOS上で実行されるTCP/IP通信クライアントソフトウェアおよび仮想ネットワークインタフェース手段53を制御する通信ドライバソフトウェアとがCPUによって実行されることによって実現される。
また、通信アプリケーション52は、仮想装置51に割り当てられたIPアドレスを送信元のIPアドレスとして送信TCP/IPパケットを生成する。
また、通信アプリケーション52は、送受信するTCP/IPパケットに対する通信プロトコル処理を仮想ネットワークインタフェース手段53にオフロードするよう設定されている。
仮想ネットワークインタフェース手段53は、仮想化ソフトウェアによって割り振られた固有のMAC(Media Access Control)アドレスを有している。また、仮想ネットワークインタフェース手段53は、通信アプリケーション52によって物理的なネットワークインタフェースコントローラと同等に認識される。
オフロード要求手段54は、通信アプリケーション52によって生成される送信TCP/IPパケットに対するチェックサム演算処理の実行をネットワークインタフェースコントローラ6に要求する。すなわち、オフロード要求手段54は、チェックサム演算の実行要求フラグを送信TCP/IPパケットに含めてネットワークインタフェースコントローラ6に出力する。
また、オフロード要求手段54は、仮想送受信手段55によって受信される受信TCP/IPパケットに対するチェックサム検証処理のオフロードをネットワークインタフェースコントローラ6に要求する。すなわち、オフロード要求手段54は、チェックサム検証の実行要求フラグを受信TCP/IPパケットに含めてネットワークインタフェースコントローラ6に出力する。
仮想送受信手段55は、ネットワークインタフェースコントローラ6によって処理された送信TCP/IPパケットを仮想ネットワーク59を介して送信する。このとき、仮想送受信手段55は、仮想ネットワークインタフェース手段53が有するMACアドレスを用い、送信TCP/IPパケットをイーサネット(登録商標)フレームにカプセル化して送信する。
また、仮想送受信手段55は、仮想ネットワーク59を介してイーサネット(登録商標)フレームを受信し、受信TCP/IPパケットにデカプセル化する。
仮想ネットワーク59は、仮想送受信手段55によって送信されるイーサネット(登録商標)フレームを、宛先に応じて振り分ける。すなわち、仮想ネットワーク59は、イーサネット(登録商標)フレームの宛先MACアドレスが内部の仮想装置51であれば仮想的に送信し、通信装置5の外部の装置であれば、ネットワークインタフェースコントローラ6に出力する。
次に、ネットワークインタフェースコントローラ6の構成について説明する。
ネットワークインタフェースコントローラ6は、本発明の第1の実施の形態におけるオフロード処理装置3と同一のハードウェア構成を備え、通信プロトコル処理回路としてTCP/IPチェックサム演算回路を備えている。
また、ネットワークインタフェースコントローラ6は、機能ブロックとして、識別情報格納手段61と、オフロードデータ入出力手段62と、仮想通信判断手段63と、オフロード処理実行手段64と、送受信データ入出力手段65と、送受信手段66と、識別情報抽出手段67と、を備えている。なお、オフロードデータ入出力手段62は、本発明のオフロードデータ入力手段およびオフロードデータ出力手段を構成し、送受信データ入出力手段65は、本発明の送信データ入力手段の一実施形態を構成する。
ここで、識別情報格納手段61は記憶装置によって構成され、オフロードデータ入出力手段62および送受信データ入出力手段65は、接続インタフェース、記憶装置および制御回路によって構成され、仮想通信判断手段63は制御回路によって構成され、オフロード処理実行手段64はTCP/IPチェックサム演算回路によって構成され、送受信手段66は送受信回路によって構成され、識別情報抽出手段67は制御回路によって構成される。
識別情報格納手段61は、仮想装置51の識別情報としてIPアドレスを格納する。
オフロードデータ入出力手段62には、チェックサム演算またはチェックサム検証の実行要求フラグを含むTCP/IPパケットが仮想装置51から入力される。
仮想通信判断手段63は、オフロードデータ入出力手段62に入力されるTCP/IPパケットから宛先および送信元のIPアドレスを抽出し、抽出したIPアドレスが識別情報格納手段61に格納されているか否かに基づいて、TCP/IPパケットが仮想装置51間で仮想的に通信されるものであるか否かを判断する。
オフロード処理実行手段64は、仮想通信判断手段63によって仮想装置51間で仮想的に通信されるものではないと判断された送信TCP/IPパケットに対して、チェックサム演算を実行する。
具体的には、オフロード処理実行手段64は、送信TCP/IPパケットに対してTCPチェックサムを演算し、演算結果をTCPヘッダのチェックサムフィールドに設定する。また、オフロード処理実行手段64は、送信TCP/IPパケットのIPヘッダチェックサムを演算し、演算結果をIPヘッダのチェックサムフィールドに設定する。
また、オフロード処理実行手段64は、受信TCP/IPパケットに対してTCPチェックサムを演算し、演算結果を検証する。また、オフロード処理実行手段64は、受信TCP/IPパケットのIPヘッダチェックサムを演算し、演算結果を検証する。
また、オフロード処理実行手段64は、仮想通信判断手段63によって仮想装置51間で仮想的に通信されるものであると判断された送信TCP/IPパケットのチェックサムフィールドにあらかじめ定められた固定値を設定する。
また、オフロード処理実行手段64は、仮想的に通信されるものであると判断された受信TCP/IPパケットのチェックサムフィールドがあらかじめ定められた固定値であることを検証する。
送受信データ入出力手段65には、外部の通信装置宛のイーサネット(登録商標)フレームが仮想ネットワーク59から入力され、送受信手段66によって物理的なネットワークに送信される。また、送受信データ入出力手段65には、送受信手段66によって物理的なネットワークから受信されたイーサネット(登録商標)フレームが入力され、仮想ネットワーク59に出力される。
識別情報抽出手段67は、送受信データ入出力手段65に仮想ネットワーク59からイーサネット(登録商標)フレームが入力されると、このイーサネット(登録商標)フレームに含まれる送信元のIPアドレスを抽出し、識別情報格納手段61に格納する。
以上のように構成された通信システム4の動作について図4〜図6を参照して説明する。
まず、図4を用いて、通信システム4が内部の仮想装置の識別情報を格納する動作を説明する。
ここでは、まず、外部に送信されるイーサネット(登録商標)フレームが、仮想装置51の仮想送受信手段55から、ネットワークインタフェースコントローラ6の送受信データ入出力手段65に入力される(ステップS11)。
次に、識別情報抽出手段67によって、ステップS11で入力されたイーサネット(登録商標)フレームから、送信元のIPアドレスが抽出される(ステップS12)。
次に、識別情報抽出手段67によって、ステップS12で抽出されたIPアドレスが、識別情報格納手段61に格納される(ステップS13)。
以上で、通信システム4は、内部の仮想装置の識別情報を格納する動作を終了する。
次に、図5を用いて、通信システム4が送信TCP/IPパケットに対するチェックサ
ム演算をオフロードする動作について説明する。
ここでは、まず、送信TCP/IPパケットが、通信アプリケーション52によって生成され、オフロード要求手段54によってチェックサム演算要求フラグを設定されて、ネットワークインタフェースコントローラ6のオフロードデータ入出力手段62に入力される(ステップS21)。
次に、仮想通信判断手段63によって、ステップS21で入力された送信TCP/IPパケットから、宛先および送信元のIPアドレスが抽出される(ステップS22)。
次に、仮想通信判断手段63によって、ステップS22で抽出された宛先および送信元のIPアドレスが識別情報格納手段61に格納されているか否かが判断される(ステップS23)。
ここで、宛先および送信元のIPアドレスのうち少なくとも1つが識別情報格納手段61に格納されていないと判断された場合、オフロード処理実行手段64によって、この送信TCP/IPパケットに対してチェックサム演算処理が行われる(ステップS24)。
チェックサム演算処理された送信TCP/IPパケットは、オフロードデータ入出力手段62によって仮想装置51に出力され、仮想装置51の仮想送受信手段55によって、仮想ネットワーク59を介して外部に送信される。
一方、ステップS23で、宛先および送信元のIPアドレスの両方が識別情報格納手段61に格納されていると判断された場合、オフロード処理実行手段64によって、このTCP/IPパケットのチェックサムフィールドにあらかじめ定められた固定値が設定される(ステップS25)。
チェックサムフィールドに固定値が設定された送信TCP/IPパケットは、オフロードデータ入出力手段62によって仮想装置51に出力され、仮想装置51の仮想送受信手段55によって、仮想ネットワーク59を介して内部の仮想装置51に送信される。
以上で、通信システム4は、送信TCP/IPパケットに対するチェックサム演算をオフロードする動作を終了する。
次に、図6を用いて、通信システム4が受信TCP/IPパケットに対するチェックサム検証をオフロードする動作について説明する。
ここでは、まず、受信TCP/IPパケットが、仮想送受信手段55によって受信され、オフロード要求手段54によってチェックサム検証要求フラグが設定されて、ネットワークインタフェースコントローラ6のオフロードデータ入出力手段62に入力される(ステップS31)。
次に、仮想通信判断手段63によって、ステップS31で入力された受信TCP/IPパケットから宛先および送信元のIPアドレスが抽出される(ステップS32)。
次に、仮想通信判断手段63によって、ステップS32で抽出された宛先および送信元のIPアドレスが識別情報格納手段61に格納されているか否かが判断される(ステップS33)。
ここで、宛先および送信元のIPアドレスのうち少なくとも1つが識別情報格納手段61に格納されていないと判断された場合、オフロード処理実行手段64によって、受信TCP/IPパケットに対するチェックサム演算が実行されてチェックサムフィールドが検証される(ステップS34)。
一方、ステップS33で、宛先および送信元のIPアドレスの両方が識別情報格納手段61に格納されていると判断された場合、オフロード処理実行手段64によって、受信TCP/IPパケットのチェックサムフィールドに設定された値が、あらかじめ定められた固定値であることが検証される(ステップS35)。
ステップS34およびS35で検証された受信TCP/IPパケットは、オフロードデータ入出力手段32によって仮想装置51に出力され、仮想装置51の通信アプリケーション52によって処理される。
以上で、通信システム4は、受信TCP/IPパケットに対するチェックサム検証をオフロードする動作を終了する。
次に、本発明の第2の実施の形態の効果について説明する。
本発明の第2の実施の形態としての通信システムおよびネットワークインタフェースコントローラに適用されたオフロード処理装置は、同一通信装置上で仮想装置間のTCP/IP通信が増加しても通信性能を低下させず効率がよい。
その理由は、オフロード処理装置が、内部の仮想装置間で通信されるTCP/IPパケットに対して、負荷の高いTCP/IPチェックサム演算処理を実行しないからである。
また、本発明の第2の実施の形態としての通信システムおよびネットワークインタフェースコントローラに適用されたオフロード処理装置は、ソフトウェアによる設定を必要とせずに、同一通信装置上で動作する仮想装置間の通信であるか否かを判断することができる。
その理由は、オフロード処理装置がTCP/IPパケットを外部に送信する際に、TCP/IPパケットの送信元の識別情報を抽出し、抽出した送信元の識別情報を内部の仮想装置の識別情報として記憶するからである。
次に、本発明の第2の実施の形態の他の態様について説明する。
本発明の第2の実施の形態における通信システム4は、他の態様として、仮想装置51によって送受信されるイーサネット(登録商標)フレームのチェックサム演算処理をネットワークインタフェースコントローラ6にオフロードしてもよい。
この場合、ネットワークインタフェースコントローラ6の識別情報抽出手段67は、送受信データ入出力手段65に入力されるイーサネット(登録商標)フレームからMACアドレスを抽出し、抽出したMACアドレスを内部の仮想装置の識別情報として識別情報格納手段61に格納する。
また、仮想装置51のオフロード要求手段54は、送受信イーサネット(登録商標)フレームに対するチェックサム演算のオフロードをネットワークインタフェースコントローラ6に要求する。
また、ネットワークインタフェースコントローラ6の仮想通信判断手段63は、イーサネット(登録商標)フレームに含まれる宛先および送信元のMACアドレスが識別情報格納手段61に格納されているか否かに基づいて、このイーサネット(登録商標)フレームが仮想装置51間で仮想的に通信されるものであるか否かを判断する。
オフロード処理実行手段64は、仮想的に通信されるものでないと判断されたイーサネット(登録商標)フレームのチェックサム演算処理を実行する。オフロード処理実行手段64は、仮想的に通信されるものであると判断されたイーサネット(登録商標)フレームのチェックサム演算処理は実行しない。
以上のように構成された本発明の第2の実施の形態の他の態様における通信システム4の動作は、上述の本発明の第2の実施の形態の動作の説明においてTCP/IPパケットをイーサネット(登録商標)フレームに替えIPアドレスをMACアドレスに替えることにより同様に説明されるため、説明を省略する。
次に、本発明の第2の実施の形態の他の態様の効果について説明する。
本発明の第2の実施の形態の他の態様の通信システムおよびネットワークインタフェースコントローラに適用されたオフロード処理装置は、同一通信装置上で仮想装置間のイーサネット(登録商標)通信が増加しても通信性能を低下させず効率がよい。
その理由は、オフロード処理装置が、仮想的に通信されるものではないと判断されたイーサネット(登録商標)フレームに対しては、仮想装置間の通信に不要なチェックサム演算処理を実行しないからである。
なお、本発明の第2の実施の形態および他の態様において、通信システム4は、TCP/IPに限らず、他の通信プロトコロルに基づいて通信を行うものであってもよい。
また、仮想装置間の仮想ネットワークの通信プロトコルは、イーサネット(登録商標)が代表的ではあるが、MACアドレスで識別できる他の通信プロトコルでも良い。
この場合も、通信システム4およびネットワークインタフェースコントローラ6は、負荷の高いエラー検出符号演算処理を仮想装置間の通信では実行しないことにより、仮想装置間の通信性能を向上させることができる。
また、本発明の第2の実施の形態および他の態様において、ネットワークインタフェースコントローラ6は、チェックサム演算処理に限らず、仮想装置間の通信に不要なその他の通信プロトコル処理をオフロードされて実行するものであってもよい。
この場合も、通信システム4およびネットワークインタフェースコントローラ6は、仮想装置間の通信に不要な通信プロトコル処理を仮想装置間の通信では実行しないことにより、内部の仮想装置間の通信性能を向上させることができる。
また、上述した本発明の各実施の形態において、オフロード処理装置の動作は、本発明のオフロード処理プログラムを構成するプログラムモジュールとしてオフロード処理装置の記憶装置に格納され、制御部によって実行されるようにしてもよい。
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
本発明は、同一通信装置上の仮想装置間の通信性能を向上させることができるオフロード処理装置および通信システムを提供することができ、同一通信装置上の仮想装置間での通信量が多い通信システムおよびこの通信システムに備えられるオフロード処理装置として好適である。
(付記1) 前記仮想装置が、
前記通信データを前記仮想ネットワークを介して送信する仮想送信ステップをさらに実行し、
前記オフロード処理装置が、
前記仮想送信ステップで送信される前記通信データのうち通信装置の外部に送信される通信データが前記仮想的なネットワークを介して入力される送信データ入力ステップと、
前記送信データ入力ステップで入力される通信データに含まれる送信元を識別する識別情報を抽出して前記記憶装置に格納する識別情報抽出ステップと、
をさらに実行することを特徴とする請求項10に記載の通信方法。
1、4 通信システム
2、5 通信装置
3 オフロード処理装置
6 ネットワークインタフェースコントローラ
21、51 仮想装置
22、52 通信アプリケーション
23、54 オフロード要求手段
31、61 識別情報格納手段
32、62 オフロードデータ入出力手段(オフロードデータ入力手段、オフロードデータ出力手段)
33、63 仮想通信判断手段
34、64 オフロード処理実行手段
53 仮想ネットワークインタフェース手段
55 仮想送受信手段(仮想送信手段)
65 送受信データ入出力手段(送信データ入力手段)
67 識別情報抽出手段

Claims (10)

  1. 物理的に1つの通信装置上で物理資源を共有しながらそれぞれが独立した通信装置として動作する複数の仮想装置を有する通信装置に接続され、
    前記仮想装置を識別する識別情報を格納する識別情報格納手段と、
    通信プロトコル処理の実行要求を表す情報を含む通信データが前記仮想装置から入力されるオフロードデータ入力手段と、
    前記オフロードデータ入力手段に入力された通信データに含まれる宛先および送信元をそれぞれ識別する識別情報が前記識別情報格納手段に格納されているか否かに基づいて、前記通信データが、前記複数の仮想装置間で仮想的に通信されるものであるか否かを判断する仮想通信判断手段と、
    前記仮想通信判断手段によって前記通信データが仮想的に通信されるものでないと判断された場合、この通信データに対して前記通信プロトコル処理を実行するオフロード処理実行手段と、
    前記オフロード処理実行手段によって前記通信プロトコル処理が実行された前記通信データおよび前記仮想通信判断手段によって前記仮想的に通信されるものであると判断されて前記通信プロトコル処理が実行されなかった通信データを前記仮想装置に出力するオフロードデータ出力手段と、を備えたオフロード処理装置。
  2. 前記仮想装置によって前記通信装置の外部に送信される通信データが入力される送信データ入力手段と、
    前記送信データ入力手段に入力される通信データに含まれる送信元を識別する識別情報を抽出して前記識別情報格納手段に格納する識別情報抽出手段と、
    をさらに備えることを特徴とする請求項1に記載のオフロード処理装置。
  3. 前記オフロード処理実行手段は、前記通信プロトコル処理として、前記通信データのエラー検出符号演算処理を実行することを特徴とする請求項2に記載のオフロード処理装置。
  4. 前記通信データはTCP/IP(Transmission Control Protocol / Internet Protocol)パケットであり、
    前記識別情報抽出手段は、前記識別情報としてIPアドレスを抽出し、
    前記オフロード処理実行手段は、前記通信プロトコル処理として、TCP/IPパケットのチェックサム演算を行うことを特徴とする請求項3に記載のオフロード処理装置。
  5. 前記通信データは前記仮想装置間の通信の通信プロトコルによるフレームであり、
    前記識別情報抽出手段は、前記識別情報としてMAC(Media Access Control)アドレスを抽出し、
    前記オフロード処理実行手段は、前記通信プロトコル処理として、前記フレームのチェックサム演算を行うことを特徴とする請求項3または請求項4に記載のオフロード処理装置。
  6. 物理的に1つの通信装置上で物理資源を共有しながらそれぞれが独立した通信装置として動作する複数の仮想装置を有する通信装置に接続されたオフロード処理装置に、
    前記仮想装置を識別する識別情報を記憶装置に格納する識別情報格納ステップと、
    通信プロトコル処理の実行要求を表す情報を含む通信データが前記仮想装置から入力されるオフロードデータ入力ステップと、
    前記オフロードデータ入力ステップで入力された通信データに含まれる宛先および送信元をそれぞれ識別する識別情報が前記記憶装置に格納されているか否かに基づいて、前記通信データが、前記複数の仮想装置間で仮想的に通信されるものであるか否かを判断する仮想通信判断ステップと、
    前記仮想通信判断ステップで前記通信データが仮想的に通信されるものでないと判断された場合、この通信データに対して前記通信プロトコル処理を実行するオフロード処理実行ステップと、
    前記オフロード処理実行ステップで前記通信プロトコル処理が実行された前記通信データおよび前記仮想通信判断ステップで前記仮想的に通信されるものであると判断されて前記通信プロトコル処理が実行されなかった通信データを前記仮想装置に出力するオフロードデータ出力ステップと、
    を実行させるオフロード処理プログラム。
  7. 前記オフロード処理装置に、
    前記仮想装置によって前記通信装置の外部に送信される通信データが入力される送信データ入力ステップと、
    前記送信データ入力ステップで入力された通信データに含まれる送信元を識別する識別情報を抽出して前記記憶装置に格納する識別情報抽出ステップと、
    をさらに実行させることを特徴とする請求項6に記載のオフロード処理プログラム。
  8. 通信装置と、オフロード処理装置と、を備え、
    前記通信装置は、
    前記通信装置の物理資源を共有しながらそれぞれが独立した通信装置として動作する複数の仮想装置を有し、
    前記仮想装置は、
    仮想的なネットワークによって他の前記仮想装置に接続され、
    通信データを送受信する通信アプリケーションと、
    前記通信データに対する通信プロトコル処理の実行要求を表す情報を前記通信データに含めて前記オフロード処理装置に出力するオフロード要求手段と、
    を有し、
    前記オフロード処理装置は、
    前記仮想装置を識別する識別情報を格納する識別情報格納手段と、
    前記オフロード要求手段から前記通信データが入力されるオフロードデータ入力手段と、
    前記オフロードデータ入力手段に入力された通信データに含まれる宛先および送信元をそれぞれ識別する識別情報が前記識別情報格納手段に格納されているか否かに基づいて、前記通信データが、前記複数の仮想装置間で仮想的に通信されるものであるか否かを判断する仮想通信判断手段と、
    前記仮想通信判断手段によって前記通信データが仮想的に通信されるものでないと判断された場合、この通信データに対して前記通信プロトコル処理を実行するオフロード処理実行手段と、
    前記オフロード処理実行手段によって前記通信プロトコル処理が実行された前記通信データおよび前記仮想通信判断手段によって前記仮想的に通信されるものであると判断されて前記通信プロトコル処理が実行されなかった通信データを前記仮想装置に出力するオフロードデータ出力手段と、を有する通信システム。
  9. 前記仮想装置は、
    前記通信アプリケーションによって送信される通信データを前記仮想的なネットワークを介して送信する仮想送信手段をさらに備え、
    前記オフロード処理装置は、
    前記仮想送信手段によって前記通信装置の外部に送信される通信データが前記仮想的なネットワークを介して入力される送信データ入力手段と、
    前記送信データ入力手段に入力される通信データに含まれる送信元を識別する識別情報を抽出して前記識別情報格納手段に格納する識別情報抽出手段と、
    をさらに備えることを特徴とする請求項8に記載の通信システム。
  10. 通信装置と、オフロード処理装置と、を用いて、
    前記通信装置が、
    複数の仮想装置に物理資源を共有させてそれぞれを独立した通信装置として動作させるとともに前記仮想装置間を仮想的なネットワークで接続する仮想化ステップを実行し、
    前記仮想装置が、
    通信アプリケーションによって送受信される通信データに対する通信プロトコル処理の実行要求を表す情報を前記通信データに含めて前記オフロード処理装置に出力するオフロード要求ステップを実行し、
    前記オフロード処理装置が、
    前記仮想装置を識別する識別情報を記憶装置に格納する識別情報格納ステップと、
    前記オフロード要求ステップで出力された通信データが入力されるオフロードデータ入力ステップと、
    前記オフロードデータ入力ステップで入力された通信データに含まれる宛先および送信元をそれぞれ識別する識別情報が前記記憶装置に格納されているか否かに基づいて、前記通信データが、前記複数の仮想装置間で仮想的に通信されるものであるか否かを判断する仮想通信判断ステップと、
    前記仮想通信判断ステップで前記通信データが仮想的に通信されるものでないと判断された場合、この通信データに対して前記通信プロトコル処理を実行するオフロード処理実行ステップと、
    前記オフロード処理実行ステップで前記通信プロトコル処理が実行された通信データおよび前記仮想通信判断ステップで前記仮想的に通信されるものであると判断されて前記通信プロトコル処理が実行されなかった通信データを前記仮想装置に出力するオフロードデータ出力ステップと、を実行する通信方法。
JP2010002502A 2010-01-08 2010-01-08 オフロード処理装置、および、通信システム Expired - Fee Related JP5423404B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010002502A JP5423404B2 (ja) 2010-01-08 2010-01-08 オフロード処理装置、および、通信システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010002502A JP5423404B2 (ja) 2010-01-08 2010-01-08 オフロード処理装置、および、通信システム

Publications (2)

Publication Number Publication Date
JP2011141778A true JP2011141778A (ja) 2011-07-21
JP5423404B2 JP5423404B2 (ja) 2014-02-19

Family

ID=44457565

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010002502A Expired - Fee Related JP5423404B2 (ja) 2010-01-08 2010-01-08 オフロード処理装置、および、通信システム

Country Status (1)

Country Link
JP (1) JP5423404B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003179626A (ja) * 2001-12-10 2003-06-27 Fujitsu Ltd 中継コネクション管理プログラムおよび中継コネクション管理方法
JP2007174704A (ja) * 2007-03-12 2007-07-05 Brother Ind Ltd ネットワーク装置、およびネットワーク装置用のプログラム
JP2008503015A (ja) * 2004-06-30 2008-01-31 インテル・コーポレーション 複数クライアントによる単一物理デバイスの共有

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003179626A (ja) * 2001-12-10 2003-06-27 Fujitsu Ltd 中継コネクション管理プログラムおよび中継コネクション管理方法
JP2008503015A (ja) * 2004-06-30 2008-01-31 インテル・コーポレーション 複数クライアントによる単一物理デバイスの共有
JP2007174704A (ja) * 2007-03-12 2007-07-05 Brother Ind Ltd ネットワーク装置、およびネットワーク装置用のプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSND200900782007; '次世代データ・センター技術の全貌' 日経コミュニケーション 第545号, 20091101, p.50〜55, 日経BP社 *
JPN6013053574; '次世代データ・センター技術の全貌' 日経コミュニケーション 第545号, 20091101, p.50〜55, 日経BP社 *

Also Published As

Publication number Publication date
JP5423404B2 (ja) 2014-02-19

Similar Documents

Publication Publication Date Title
US10581884B2 (en) Channel data encapsulation system and method for use with client-server data channels
US11218537B2 (en) Load balancing in distributed computing systems
EP3079313B1 (en) Data splitting method and splitter
CN108268328B (zh) 数据处理装置及计算机
US8661160B2 (en) Bidirectional receive side scaling
US20130166720A1 (en) Network system and network managing method
CN113326228B (zh) 基于远程直接数据存储的报文转发方法、装置及设备
US9742616B2 (en) Device for indicating packet processing hints
US9774710B2 (en) System and method for network protocol offloading in virtual networks
US9875126B2 (en) Hash-based load balancing for bonded network interfaces
WO2011096307A1 (ja) プロキシ装置とその動作方法
US11936562B2 (en) Virtual machine packet processing offload
US11394804B2 (en) System and method for stateless distribution of bidirectional flows with network address translation
US20140241355A1 (en) Systems and Methods for Paravirtualized IP Over Infiniband Bridging
JP2006502662A5 (ja)
US9137199B2 (en) Stateful NAT64 function in a distributed architecture
US20150139232A1 (en) Virtual Machine Data Packet Encapsulation and Decapsulation
JP5423404B2 (ja) オフロード処理装置、および、通信システム
US20090285207A1 (en) System and method for routing packets using tags
JP6279970B2 (ja) プロセッサ、通信装置、通信システム、通信方法およびコンピュータプログラム
US20230164086A1 (en) Systems and methods for network traffic trunking
JP6480747B2 (ja) 通信装置、制御方法、及びプログラム
CN105531678A (zh) 虚拟机数据的同步方法和装置
CN113419810A (zh) 数据交互方法、装置、电子设备及计算机存储介质
CN116489115A (zh) 使用提示的有效数据包重新排序

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20110706

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121219

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130930

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131029

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131111

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5423404

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees