(57)【要約】【課題】仮想サーバ間の通信のデータを確実にキャプチャする通信装置、通信システム及び通信装置制御方法を提供する。【解決手段】仮想サーバ１１及び仮想サーバ１２を有する。キャプチャ制御部１３１は、仮想サーバ１１から仮想サーバ１２へデータを送信し、且つ、仮想サーバ１１から仮想サーバ１２への送信データに関する関連情報を出力する。キャプチャ処理部２１は、キャプチャ制御部から出力された前記関連情報を取得し、取得した関連情報を基に仮想サーバ１１から仮想サーバ１２へ転送されるデータを仮想サーバ１１から取得し一次記憶部２２に格納する。【選択図】図１
2016012801.tif 000002
【特許請求の範囲】
【請求項１】
第１仮想装置と、
第２仮想装置と、
前記第１仮想装置から前記第２仮想装置へデータを転送し、且つ、前記第１仮想装置から前記第２仮想装置へ転送されるデータの関連情報を出力するデータ転送部と、
前記データ転送部から出力された前記関連情報を取得し、取得した前記関連情報を基に前記第１仮想装置から前記第２仮想装置へ転送されるデータを前記第１仮想装置から取得し格納部に格納するデータ取得部と
を備えることを特徴とする通信装置。
【請求項２】
第１演算処理装置と、
第２演算処理装置とを備え、
前記第１演算処理装置は、前記第１仮想装置、前記第２仮想装置及び前記データ転送部を動作させ
前記第２演算処理装置は、前記データ取得部を動作させる
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記データ取得部は、前記第１仮想装置から取得したデータをフレーム変換して格納することを特徴とする請求項１又は２に記載の通信装置。
【請求項４】
前記データ取得部は、格納するデータに対してタイムスタンプを付加することを特徴とする請求項１〜３のいずれか一つに記載の通信装置。
【請求項５】
情報処理装置及びデータ取得装置を有する通信システムであって、
前記情報処理装置は、
第１仮想装置と、
第２仮想装置と、
前記第１仮想装置から前記第２仮想装置へデータを転送し、且つ、前記第１仮想装置から前記第２仮想装置へ転送されるデータの関連情報を前記データ取得装置へ出力するデータ転送部とを備え、
前記データ取得装置は、
前記データ転送部から出力された前記関連情報を取得し、取得した前記関連情報を基に前記第１仮想装置から前記第２仮想装置へ転送されるデータを前記第１仮想装置から取得し格納部に格納するデータ取得部を備える
ことを特徴とする通信システム。
【請求項６】
第１仮想装置を動作させ、
第２仮想装置を動作させ、
前記第１仮想装置から前記第２仮想装置へデータを転送し、且つ、前記第１仮想装置から前記第２仮想装置へ転送されるデータの関連情報を出力し、
出力された前記関連情報を基に前記第１仮想装置から前記第２仮想装置へ転送されるデータを前記第１仮想装置から取得し格納部に格納する
ことを特徴とする通信装置制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信システム及び通信装置制御方法に関する。
【背景技術】
【０００２】
サーバ間で通信を行う際、中継装置の故障やサーバの性能不足などによりパケットロストなどの通信トラブルが発生する場合がある。例えば、パケットロストが発生した場合、通信のスループットの低下やデータ転送が失敗する恐れがある。そのため、パケットロストなどの通信トラブルが発生した場合、早期に調査を行い、原因を究明し、対策を施すことが好ましい。
【０００３】
例えば、物理的なイーサネット（Ethernet）（登録商標）の通信では、パケットロストなどの通信トラブルの調査の際には以下のような手法がとられている。１つには、ＯＳ（Operating  System）上でＮＩＣ（Network  Interface  Card）に対してイーサネットフレームをキャプチャするユーザコマンドを実行する手法がある。また、スイッチでポートミラーリングを設定して、特定のポートに着信したイーサネットフレームをミラーポートにコピーしてキャプチャする手法がある。さらに、伝送路にＬＡＮ（Local  Area  Network）アナライザを設置して、イーサネットフレームをキャプチャする手法がある。
【０００４】
これに対して、仮想化されたイーサネットの通信では、通信トラブルの調査には以下のような手法がとられている。１つには、ＯＳ上で仮想化されたＮＩＣに対してイーサネットフレームをキャプチャするユーザコマンドを実行する手法がある。また、仮想スイッチがポートミラーリングをサポートしている場合、ポートミラーリングの設定を行い、特定の仮想スイッチポートに着信したイーサネットフレームを、仮想ミラーポートにコピーしてキャプチャする手法がある。
【０００５】
また、異なる物理サーバに配置された仮想マシン間の通信において、専用のハードウェアを設けて仮想スイッチトラフィックをキャプチャする従来技術がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−４７８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、仮想イーサネットでの通信における通信トラブルの調査については、キャプチャはサーバ上の資源を用いて実施される。そのため、サーバでは業務アプリケーションの処理が優先される場合、サーバ上の資源が枯渇してしまい、キャプチャ処理能力が不足し、情報の取りこぼしが生じるおそれがある。情報の取りこぼしが生じた場合、問題が発生したイーサネットフレームのキャプチャが失敗することが考えられ、通信トラブルの原因が不明となり、解決に時間がかかってしまう。
【０００８】
開示の技術は、上記に鑑みてなされたものであって、仮想サーバ間の通信のデータを確実にキャプチャする通信装置、通信システム及び通信装置制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願の開示する通信装置、通信システム及び通信装置制御方法は、一つの態様において、第１仮想装置及び第２仮想装置を備える。データ転送部は、前記第１仮想装置から前記第２仮想装置へデータを転送し、且つ、前記第１仮想装置から前記第２仮想装置へ転送されるデータの関連情報を出力する。データ取得部は、前記データ転送部から出力された前記関連情報を取得し、取得した前記関連情報を基に前記第１仮想装置から前記第２仮想装置へ転送されるデータを前記第１処理部から取得し格納部に格納する。
【発明の効果】
【００１０】
本願の開示する通信装置、通信システム及び通信装置制御方法の一つの態様によれば、仮想サーバ間の通信のデータを確実にキャプチャすることができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１に係る通信システムのブロック図である。
【図２】図２は、データ送受信構造体のフォーマットの一例を表す図である。
【図３】図３は、リクエスト完了通知用構造体のフォーマットの一例を表す図である。
【図４】図４は、仮想通信チャネル情報構造体のフォーマットの一例を表す図である。
【図５】図５は、実施例１に係るデータキャプチャ処理の概略のフローチャートである。
【図６】図６は、実施例１に係る仮想通信チャネル構造体の初期化処理のフローチャートである。
【図７】図７は、実施例１に係るキャプチャ制御部によるデータ転送ＤＭＡ処理のフローチャートである。
【図８】図８は、実施例１に係るキャプチャＤＭＡ制御部によるキャプチャ処理のフローチャートである。
【図９】図９は、通信システムのハードウェア構成図である。
【図１０】図１０は、実施例２に係る通信システムのブロック図である。
【図１１】図１１は、ＬＳＯ／ＬＲＯ機能使用時のデータ構造を説明するための図である。
【図１２】図１２は、キャプチャ用ＤＭＡ情報領域に格納されるデータのフォーマットの一例を表す図である。
【図１３】図１３は、ＤＭＡクッキーリストのフォーマットの一例を表す図である。
【図１４】図１４は、フレーム変換処理を説明するための図である。
【図１５】図１５は、解析時のキャプチャデータの状態を表す図である。
【図１６】図１６は、実施例２に係るデータキャプチャ処理の概略のフローチャートである。
【図１７】図１７は、実施例２に係るフレーム変換処理部によるフレーム変換処理のフローチャートである。
【図１８】図１８は、実施例２に係るキャプチャＤＭＡ制御部によるキャプチャ用ＤＭＡ処理のフローチャートである。
【発明を実施するための形態】
【００１２】
以下に、本願の開示する通信装置、通信システム及び通信装置制御方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する通信装置、通信システム及び通信装置制御方法が限定されるものではない。
【実施例１】
【００１３】
図１は、実施例１に係る通信システムのブロック図である。本実施例に係る通信システムは、物理サーバ１及びキャプチャ装置２を有している。ここで、図１では、物理サーバ１とキャプチャ装置２とは異なる位置に記載されているが、キャプチャ装置２は、物理サーバ１に搭載されてもよい。
【００１４】
物理サーバ１は、仮想サーバ１１及び１２、並びに、管理制御部１３を有している。管理制御部１３は、仮想サーバ１１及び１２を実現するハイパーバイザーにあたる。この物理サーバ１が、「情報処理装置」の一例にあたる。
【００１５】
仮想サーバ１１は、メモリ域１１１、共有メモリ域１１２、仮想ＮＩＣ１１３及びキャプチャ設定部１１８を有している。この仮想サーバ１１が、「第１仮想装置」の一例にあたる。
【００１６】
メモリ域１１１には、データが格納される。例えば、メモリ域１１１に格納されているデータは、後述するキャプチャ制御部１３１によって、仮想サーバ１２のメモリ域１２１へ転送される。
【００１７】
共有メモリ域１１２は、仮想通信チャネル用メモリ域１１４を有している。仮想通信チャネル用メモリ域１１４は、仮想サーバ１１と他のサーバとの間の通信に用いる仮想通信チャネル毎に管理制御部１３により生成される。例えば、仮想通信チャネル用メモリ域１１４は、仮想サーバ１１と仮想サーバ１２との間の通信に用いる仮想通信チャネルとして生成される。仮想通信チャネル用メモリ域１１４には、イベントキュー１１５、ＴＸ（Transmitter）−ｒｉｎｇ１１６及びＲＸ（Receiver）−ｒｉｎｇ１１７が格納されている。
【００１８】
ＴＸ−ｒｉｎｇ１１６は、データ送受信構造体を記憶する。データ送受信構造体は、送信するデータの情報が登録されたデータ群である。図２は、データ送受信構造体のフォーマットの一例を表す図である。図２に示すように、データ送受信構造体には、バッファ情報のポインタ、オフセット、属性フラグ、メッセージＩＤ及び送信パケットサイズが格納される。
【００１９】
ＲＸ−ｒｉｎｇ１１７は、データ送受信構造体及びリクエスト完了通知用構造体を記憶する。リクエスト完了通知用構造体は、データ送信が完了したことを通知する情報が登録されたデータ群である。図３は、リクエスト完了通知用構造体のフォーマットの一例を表す図である。図３に示すように、リクエスト完了通知用構造体には、メッセージＩＤ、オフセット、フラグ及びステータスが格納される。
【００２０】
イベントキュー１１５は、仮想サーバ１１が実行したイベントを順次記憶する。仮想サーバ１１は、イベントキュー１１５に格納されたイベントを古い順に確認していく。例えば、仮想サーバ１１は、ＴＸ−ｒｉｎｇ１１６へのデータ送受信構造体の格納の通知がイベントキュー１１５に格納されている場合、データの送信処理を行う。また、仮想サーバ１１は、ＲＸ−ｒｉｎｇ１１７へのリクエスト完了通知用構造体の格納の通知がイベントキュー１１５に格納されている場合、メモリ域１１１を解放する。また、仮想サーバ１１は、イベントキュー１１５に格納されたｒｉｎｇのエントリの更新が通知により、ＴＸ−ｒｉｎｇ１１６又はＲＸ−ｒｉｎｇ１１７のエントリが更新されたことを把握する。
【００２１】
仮想ＮＩＣ１１３は、他の仮想ＮＩＣとの間で通信を行うための仮想の通信インタフェースである。仮想サーバ１１は、仮想ＮＩＣ１１３を介して、仮想サーバ１２との間のデータの送受信を行う。例えば、仮想ＮＩＣ１１３は、演算処理部（不図示）を介在させずにメモリ域１１１とメモリ域１２１との間でデータを転送するＤＭＡ（Direct  Memory  Access）転送を行う。
【００２２】
図１におけるメモリ域１１１からＴＸ−ｒｉｎｇ１１６へ延びる矢印のように、仮想ＮＩＣ１１３は、メモリ域１１１に格納されている転送データを基に、データ送受信構造体を作成しＴＸ−ｒｉｎｇ１１６へ格納する。また、図１におけるＲＸ−ｒｉｎｇ１１７からメモリ域１１１への矢印のように、仮想ＮＩＣ１１３は、ＲＸ−ｒｉｎｇ１１７に格納されたデータ送受信構造体に基づいてデータをメモリ域１１１へ格納する。
【００２３】
キャプチャ設定部１１８は、アプリケーションやユーザからキャプチャの開始指示を受ける。そして、キャプチャ設定部１１８は、キャプチャの開始指示を管理制御部１３のキャプチャ制御部１３１へ通知する。
【００２４】
また、キャプチャ設定部１１８は、アプリケーションからキャプチャの停止指示を受ける。そして、キャプチャ設定部１１８は、キャプチャの停止指示をキャプチャ制御部１３１へ通知する。
【００２５】
また、キャプチャ設定部１１８は、アプリケーションからキャプチャの初期化指示を受ける。そして、キャプチャ設定部１１８は、キャプチャの初期化指示をキャプチャ制御部１３１へ通知する。
【００２６】
また、キャプチャ設定部１１８は、アプリケーションからキャプチャの破棄指示を受ける。そして、キャプチャ設定部１１８は、キャプチャの破棄指示をキャプチャ制御部１３１へ通知する。
【００２７】
さらに、キャプチャ設定部１１８は、アプリケーションからキャプチャデータの格納指示を受ける。そして、キャプチャ設定部１１８は、キャプチャデータの格納指示をキャプチャ制御部１３１へ通知する。
【００２８】
仮想サーバ１２は、メモリ域１２１、共有メモリ域１２２及び仮想ＮＩＣ１２３を有している。この仮想サーバ１２が、「第２仮想装置」の一例にあたる。
【００２９】
メモリ域１２１には、データが格納される。例えば、メモリ域１２１は、キャプチャ制御部１３１によって仮想サーバ１１のメモリ域１１１から転送されたデータを格納する。
【００３０】
共有メモリ域１２２は、仮想通信チャネル用メモリ域１２４を有している。仮想通信チャネル用メモリ域１２４は、仮想サーバ１２と他のサーバとの間の通信に用いる仮想通信チャネル毎に管理制御部１３により生成される。例えば、仮想通信チャネル用メモリ域１２４は、仮想サーバ１１と仮想サーバ１２との間の通信に用いる仮想通信チャネルとして生成される。仮想通信チャネル用メモリ域１２４には、イベントキュー１２５、ＴＸ−ｒｉｎｇ１２６及びＲＸ−ｒｉｎｇ１２７が格納されている。
【００３１】
ＴＸ−ｒｉｎｇ１２６は、データ送受信構造体を記憶する。ＲＸ−ｒｉｎｇ１２７は、データ送受信構造体及びリクエスト完了通知用構造体を記憶する。
【００３２】
イベントキュー１２５は、仮想サーバ１２が実行したイベントを順次記憶する。仮想サーバ１２は、イベントキュー１２５に格納されたイベントを古い順に確認していく。例えば、仮想サーバ１２は、ＲＸ−ｒｉｎｇ１２７へのデータ送受信構造体の格納の通知がイベントキュー１２５に格納されている場合、データの受信処理を行う。そして、仮想サーバ１２は、受信処理完了後、メモリ域１２１を解放する。
【００３３】
仮想ＮＩＣ１２３は、他の仮想ＮＩＣとの間で通信を行うための仮想の通信インタフェースである。仮想サーバ１２は、仮想ＮＩＣ１２３を介して、仮想サーバ１１との間のデータの送受信を行う。例えば、仮想ＮＩＣ１２３は、演算処理部（不図示）を介在させずにメモリ域１２１とメモリ域１１１との間でデータを転送するＤＭＡ転送を行う。
【００３４】
図１におけるメモリ域１２１からＴＸ−ｒｉｎｇ１２６へ延びる矢印のように、仮想ＮＩＣ１２３は、メモリ域１２１に格納されている転送データを基に、データ送受信構造体を作成しＴＸ−ｒｉｎｇ１２６へ格納する。また、図１におけるＲＸ−ｒｉｎｇ１２７からメモリ域１２１への矢印のように、仮想ＮＩＣ１２３は、ＲＸ−ｒｉｎｇ１２７に格納されたデータ送受信構造体に基づいてデータをメモリ域１２１へ格納する。
【００３５】
管理制御部１３は、仮想サーバ１１及び１２の管理を行う。管理制御部１３は、キャプチャ制御部１３１を有する。
【００３６】
キャプチャ制御部１３１は、仮想ＮＩＣ１１３が管理制御部１３により生成されたことを検知する。さらに、キャプチャ制御部１３１は、仮想ＮＩＣ１２３が管理制御部１３により生成されたことを検知する。仮想ＮＩＣ１１３及び仮想ＮＩＣ１２３の生成を検知すると、キャプチャ制御部１３１は、仮想サーバ１１と仮想サーバ１２との間の仮想通信チャネルに対応する仮想通信チャネル情報構造体２２４をキャプチャ装置２の仮想通信チャネル用メモリ域２２１に生成する。ただし、キャプチャ制御部１３１は、この段階では、各パラメータの設定が行われていない仮想通信チャネル情報構造体２２４を生成する。仮想通信チャネル情報構造体２２４は、図４に示すようなフォーマットを有している。図４は、仮想通信チャネル情報構造体のフォーマットの一例を表す図である。
【００３７】
チャネルＩＤは、仮想通信チャネルの識別子を表す。キャプチャフラグは、キャプチャの実施状態を表す。ｒｉｎｇ−Ａのアドレスは、ｒｉｎｇ−Ａのメモリ域を示すアドレスを表す。ｒｉｎｇ−Ａとは、仮想通信チャネルを結ぶ仮想ＮＩＣの一方から他方へ送信されるデータに関するデータ送受信構造体が格納されるデータ転送リングである。ｒｉｎｇ−Ｂのアドレスは、ｒｉｎｇ−Ｂのメモリ域を示すアドレスを表す。ｒｉｎｇ−Ｂとは、仮想通信チャネルを結ぶ仮想ＮＩＣの他方から一方へ送信されるデータに関するデータ送受信構造体が格納されるデータ転送リングである。ＭＡＣアドレスリストＡは、仮想通信チャネルを結ぶ仮想ＮＩＣの一方のＭＡＣアドレスを表す。ＭＡＣアドレスリストＢは、仮想通信チャネルを結ぶ仮想ＮＩＣの他方のＭＡＣアドレスを表す。ＭＴＵ（Maximum  Transmission  Unit）−Ａは、仮想通信チャネルを結ぶ仮想ＮＩＣの一方のＭＴＵ長である。ＭＴＵ−Ｂは、仮想通信チャネルを結ぶ仮想ＮＩＣの他方のＭＴＵ長である。
【００３８】
また、キャプチャ制御部１３１は、仮想ＮＩＣ１１３から仮想ＮＩＣ１２３への送信データのデータ送受信構造体を格納させるｒｉｎｇ−Ａ２２２を生成する。また、キャプチャ制御部１３１は、仮想ＮＩＣ１２３から仮想ＮＩＣ１１３への送信データのデータ送受信構造体を格納させるｒｉｎｇ−Ｂ２２３を生成する。
【００３９】
ここでは、仮想サーバ１１と仮想サーバ１２との間の仮想チャネルについて説明したが、キャプチャ制御部１３１は、一対の仮想ＮＩＣ間を結ぶ仮想チャネル毎に、仮想通信チャネル情報構造体２２４、ｒｉｎｇ−Ａ２２２及びｒｉｎｇ−Ｂ２２３を生成する。また、キャプチャ制御部１３１は、一対の仮想ＮＩＣ間を結ぶ仮想チャネル毎に、キャプチャ用メモリ域２２５を確保する。
【００４０】
その後、キャプチャ制御部１３１は、仮想通信チャネル情報構造体２２４、ｒｉｎｇ−Ａ２２２、ｒｉｎｇ−Ｂ２２３及びキャプチャ用メモリ域２２５の作成をキャプチャＤＭＡ制御部２１１に通知する。
【００４１】
次に、キャプチャ制御部１３１は、動作確認などを含む仮想ＮＩＣ１１３の初期化処理を行う。初期化処理が成功した場合、キャプチャ制御部１３１は、仮想通信チャネル情報構造体２２４の初期設定を行う。ここでは、キャプチャ制御部１３１は、図４のチャネルＩＤに、仮想ＮＩＣ１１３と仮想ＮＩＣ１２３とを結ぶ仮想チャネルのＩＤを登録する。また、キャプチャ制御部１３１は、キャプチャフラグを「ｅｎａｂｌｅ」に設定する。また、キャプチャ制御部１３１は、ｒｉｎｇ−Ａのアドレスとして、ｒｉｎｇ−Ａ２２２のアドレスを登録する。また、キャプチャ制御部１３１は、ｒｉｎｇ−Ｂのアドレスとして、ｒｉｎｇ−Ｂ２２３のアドレスを登録する。また、キャプチャ制御部１３１は、ＭＡＣアドレスＡとして、仮想ＮＩＣ１１３のＭＡＣアドレスを登録する。また、キャプチャ制御部１３１は、ＭＡＣアドレスＢとして、仮想ＮＩＣ１２３のＭＡＣアドレスを登録する。また、キャプチャ制御部１３１は、ＭＴＵ−Ａとして、仮想ＮＩＣ１１３のＭＴＵを登録する。また、キャプチャ制御部１３１は、ＭＴＵ−Ｂとして、仮想ＮＩＣ１２３のＭＴＵを登録する。
【００４２】
これに対して、初期化処理が失敗した場合、キャプチャ制御部１３１は、仮想通信チャネル情報構造体２２４のキャプチャフラグを「ｄｉｓａｂｌｅ」に設定する。
【００４３】
初期化処理が成功した後、キャプチャ制御部１３１は、キャプチャ設定部１１８からキャプチャ開始指示を受けると、仮想通信チャネル情報構造体２２４のキャプチャフラグを「ｓｔａｒｔ」に設定する。
【００４４】
また、キャプチャ設定部１１８からキャプチャの停止指示を受けると、キャプチャ制御部１３１は、仮想通信チャネル情報構造体２２４のキャプチャフラグを「ｓｔｏｐ」に設定する。
【００４５】
また、キャプチャ設定部１１８からキャプチャの初期化指示を受けると、キャプチャ制御部１３１は、仮想通信チャネル用メモリ域２２１及びキャプチャ用メモリ域２２５の初期化処理を行う。次に、キャプチャ制御部１３１は、仮想通信チャネル情報構造体２２４のキャプチャフラグを「ｅｎａｂｌｅ」に設定する。ただし、初期化が失敗した場合、キャプチャ制御部１３１は、キャプチャ設定部１１８に初期化失敗のエラー応答を返し、仮想通信チャネル情報構造体２２４のキャプチャフラグを「ｄｉｓａｂｌｅ」に設定する。
【００４６】
また、キャプチャ設定部１１８からキャプチャの破棄指示を受けると、キャプチャ制御部１３１は、仮想通信チャネル情報構造体２２４のキャプチャフラグを「ｄｉｓａｂｌｅ」に設定する。次に、キャプチャ制御部１３１は、キャプチャ用メモリ域２２５を解放する。
【００４７】
初期化が成功しキャプチャ開始指示を受けた後、キャプチャ制御部１３１は、ＴＸ−ｒｉｎｇ１１６を監視する。ＴＸ−ｒｉｎｇ１１６へのエントリの格納を確認すると、キャプチャ制御部１３１は、ＴＸ−ｒｉｎｇ１１６に格納されたエントリを読み込む。読み込んだエントリがデータ送受信構造体であった場合、キャプチャ制御部１３１は、読み込んだデータ送受信構造体が示すパケットをメモリ域１１１から取得する。そして、キャプチャ制御部１３１は、取得したデータのヘッダから送信元及び宛先のＭＡＣアドレスを取得する。ここでは、エントリが、仮想ＮＩＣ１１３から仮想ＮＩＣ１２３へのデータ送信に関するデータ送受信構造体の場合で説明する。
【００４８】
次に、キャプチャ制御部１３１は、データ送受信構造体の読み込み元の仮想ＮＩＣ１１３のＭＡＣアドレス及びデータ送信の宛先の仮想ＮＩＣ１２３のＭＡＣアドレスが登録された仮想通信チャネル情報構造体２２４があるか否かを判定する。
【００４９】
そして、仮想ＮＩＣ１１３及び１２３のＭＡＣアドレスが登録された仮想通信チャネル情報構造体２２４がある場合、キャプチャ制御部１３１は、ｒｉｎｇ−Ａ２２２に読み込んだデータ送受信構造体を書き込む。
【００５０】
その後、キャプチャ制御部１３１は、キャプチャ処理をキャプチャ処理部２１が実行している間待機する。ただし、キャプチャ制御部１３１は、時計を有しており、待機している間にキャプチャＤＭＡ制御部２１１から時刻の通知要求を受けると、その時の時刻をキャプチャＤＭＡ制御部２１１へ通知する。
【００５１】
その後、キャプチャ処理部２１からキャプチャ処理完了の通知を受けると、キャプチャ制御部１３１は、仮想サーバ１１のメモリ域１１１から送信データを取り出し仮想サーバ１２のメモリ域１２１に格納するデータのＤＭＡ転送を行う。以下、キャプチャ制御部１３１による仮想サーバ間のデータのＤＭＡ転送を「データ転送ＤＭＡ」という。この時、メモリ域１２１に書き込む領域が無い場合、キャプチャ制御部１３１は、送信データを破棄する。
【００５２】
また、キャプチャ制御部１３１は、データ転送ＤＭＡを行った場合、仮想サーバ１１のＴＸ−ｒｉｎｇ１１６に格納されているデータ送受信構造体を、仮想サーバ１２のＲＸ−ｒｉｎｇ１２７に転送し格納する。さらに、キャプチャ制御部１３１は、仮想サーバ１２のイベントキュー１２５にＲＸ−ｒｉｎｇ１２７のエントリの更新の通知を格納する。
【００５３】
データ転送ＤＭＡによるデータ送信が完了すると、キャプチャ制御部１３１は、ｒｉｎｇ−Ａ２２２に格納されたデータ送受信構造体を破棄する。
【００５４】
その後、キャプチャ制御部１３１は、リクエスト完了通知用構造体を作成する。そして、キャプチャ制御部１３１は、作成したリクエスト完了通知用構造体をＲＸ−ｒｉｎｇ１１７に格納する。さらに、キャプチャ制御部１３１は、イベントキュー１１５にＲＸ−ｒｉｎｇ１１７のエントリの更新の通知を格納する。
【００５５】
その後、キャプチャ制御部１３１は、仮想ＮＩＣ１１３と仮想ＮＩＣ１２３とを結ぶ仮想通信チャネルのキャプチャデータの格納指示をキャプチャ設定部１１８から受けると、その仮想通信チャネルに対応する仮想通信チャネル情報構造体２２４を確認する。そして、キャプチャフラグが「ｓｔｏｐ」であれば、キャプチャ制御部１３１は、キャプチャ用メモリ域２２５に格納されているデータを二次記憶部２３に格納する。このキャプチャ制御部１３１が、「データ転送部」の一例にあたる。
【００５６】
キャプチャ装置２は、キャプチャ処理部２１、一次記憶部２２及び二次記憶部２３を有している。一次記憶部２２は、例えば、ＲＡＭ（Random  Access  Memory）である。また、二次記憶部２３は、例えば、ハードディスクである。このキャプチャ装置２が、「データ取得装置」の一例にあたる。
【００５７】
キャプチャ処理部２１は、キャプチャＤＭＡ制御部２１１を有している。キャプチャ処理部２１は、メモリ域１１１に格納されたデータを一次記憶部２２へＤＭＡ転送するが、このＤＭＡ転送を「キャプチャ用ＤＭＡ」という。このキャプチャ処理部２１が、「データ取得部」の一例にあたる。
【００５８】
キャプチャＤＭＡ制御部２１１は、仮想通信チャネル情報構造体２２４、ｒｉｎｇ−Ａ２２２、ｒｉｎｇ−Ｂ２２３及びキャプチャ用メモリ域２２５の作成の通知を受ける。そして、キャプチャＤＭＡ制御部２１１は、キャプチャ制御部１３１により仮想通信チャネル用メモリ域２２１に作成されたｒｉｎｇ−Ａ２２２及びｒｉｎｇ−Ｂ２２３を監視する。ここでは、仮想ＮＩＣ１１３から仮想ＮＩＣ１２３へのデータ送信について説明するので、以下では、キャプチャＤＭＡ制御部２１１のｒｉｎｇ−Ａ２２２に関する動作について説明する。
【００５９】
キャプチャＤＭＡ制御部２１１は、ｒｉｎｇ−Ａ２２２にエントリがあることを確認すると、仮想通信チャネル情報構造体２２４のキャプチャフラグを確認する。
【００６０】
キャプチャフラグが「ｓｔｏｐ」の場合、キャプチャＤＭＡ制御部２１１は、キャプチャの不実行を決定し、キャプチャ制御部１３１にキャプチャ処理完了を通知する。
【００６１】
これに対して、キャプチャフラグが「ｓｔａｒｔ」の場合、キャプチャＤＭＡ制御部２１１は、ｒｉｎｇ−Ａ２２２に格納されたエントリが示すデータをキャプチャ対象のデータと判定し、以下のキャプチャ用ＤＭＡの処理を開始する。
【００６２】
キャプチャＤＭＡ制御部２１１は、キャプチャ用メモリ域２２５からＤＭＡ先のアドレス情報を取得する。そして、キャプチャＤＭＡ制御部２１１は、仮想ＮＩＣ１１３を介してメモリ域１１１からデータを取得する。
【００６３】
キャプチャＤＭＡ制御部２１１は、データを取得した時刻をキャプチャ制御部１３１から取得する。そしてキャプチャＤＭＡ制御部２１１は、取得したデータに時刻を付加してキャプチャ用メモリ域２２５の取得したＤＭＡ先のアドレスへ格納する。
【００６４】
キャプチャＤＭＡ制御部２１１は、データの格納が完了すると、キャプチャ処理完了をキャプチャ制御部１３１に通知する。
【００６５】
次に、図５を参照して、実施例１に係る通信システムによるデータキャプチャ処理の概略について説明する。図５は、実施例１に係るデータキャプチャ処理の概略のフローチャートである。ここでも、データがメモリ域１１１からメモリ域１２１へＤＭＡ転送される場合で説明する。
【００６６】
管理制御部１３は、仮想サーバ１１及び仮想サーバ１２の初期化及びキャプチャ装置２の初期化といった初期化処理を実行する（ステップＳ１）。
【００６７】
キャプチャ制御部１３１は、キャプチャの開始指示をキャプチャ設定部１１８から受けると、仮想通信チャネル情報構造体２２４のキャプチャフラグを「ｓｔａｒｔ」に変更する。そして、キャプチャ制御部１３１は、ＴＸ−ｒｉｎｇ１１６に格納されたエントリを読み込み、読み込んだエントリがデータ送受信構造体の場合、データ送受信構造体で指定されたパケットの取得を開始する。キャプチャ制御部１３１は、パケットを受信したか否かを判定する（ステップＳ２）。パケットの受信が完了していない場合（ステップＳ２：否定）、キャプチャ制御部１３１は、パケットの受信を継続する。
【００６８】
パケットを受信した場合（ステップＳ２：肯定）、キャプチャ制御部１３１は、受信したデータのヘッダから送信元及び宛先のＭＡＣアドレスを取得する。そして、送信元及び宛先のＭＡＣアドレスが登録された仮想通信チャネル情報構造体２２４があるか否かにより、送信データがキャプチャ対象か否かを判定する（ステップＳ３）。送信データがキャプチャ対象でない場合（ステップＳ３：否定）、キャプチャ制御部１３１は、ステップＳ９へ進む。
【００６９】
これに対して、送信データがキャプチャ対象の場合（ステップＳ３：肯定）、キャプチャＤＭＡ制御部２１１は、キャプチャを行うための空きメモリが有るか否かを判定する（ステップＳ４）。空きメモリが無い場合（ステップＳ４：否定）、キャプチャＤＭＡ制御部２１１は、仮想通信チャネル情報構造体２２４のキャプチャフラグを「ｓｔｏｐ」に変更する（ステップＳ５）。その後、データキャプチャ処理は、ステップＳ８へ進む。
【００７０】
これに対して、空きメモリが有る場合（ステップＳ４：肯定）、キャプチャＤＭＡ制御部２１１は、Ｒｉｎｇ−Ａ２２２へのデータ送受信構造体の格納を検知して、キャプチャ用ＤＭＡ処理を実行する（ステップＳ６）。
【００７１】
キャプチャ制御部１３１は、キャプチャＤＭＡ制御部２１１からのキャプチャの完了通知により、キャプチャＤＭＡ制御部２１１によるキャプチャ用ＤＭＡ処理が完了したか否かを判定する（ステップＳ７）。キャプチャ用ＤＭＡ処理が完了していない場合（ステップＳ７：否定）、キャプチャ制御部１３１は、キャプチャＤＭＡ制御部２１１によるキャプチャ用ＤＭＡ処理が完了するまで待機する。
【００７２】
これに対して、キャプチャ用ＤＭＡ処理が完了した場合（ステップＳ７：肯定）、キャプチャ制御部１３１は、ステップＳ８に進む。
【００７３】
そして、キャプチャ制御部１３１は、送信先仮想サーバである仮想サーバ１２にデータを送信する（ステップＳ８）。
【００７４】
その後、キャプチャ制御部１３１は、仮想通信チャネル情報構造体２２４のキャプチャフラグを確認し、キャプチャを継続するか否かを判定する（ステップＳ９）。キャプチャフラグが「ｓｔａｒｔ」であり、キャプチャを継続する場合（ステップＳ９：肯定）、キャプチャ制御部１３１は、ステップＳ２に戻る。
【００７５】
これに対して、キャプチャフラグが「ｓｔｏｐ」であり、キャプチャを停止する場合（ステップＳ９：否定）、キャプチャ制御部１３１は、データキャプチャ処理を終了する。
【００７６】
次に、図６を参照して、本実施例に係る仮想通信チャネル構造体２２４の初期化処理の流れについて説明する。図６は、実施例１に係る仮想通信チャネル構造体の初期化処理のフローチャートである。図６に示すフローは、図５のステップＳ１で行われる処理の一例である。
【００７７】
管理制御部１３は、仮想ＮＩＣ１１３及び１２３を作成する（ステップＳ１１）。
【００７８】
キャプチャ制御部１３１は、仮想ＮＩＣ１１３及び１２３が作成されると、仮想ＮＩＣ１１３と仮想ＮＩＣ１２３とを結ぶ仮想通信チャネルに対応する仮想通信チャネル情報構造体２２４を作成する（ステップＳ１２）。この時、キャプチャ制御部１３１は、Ｒｉｎｇ−Ａ２２２及びＲｉｎｇ−Ｂ２２３の作成及びキャプチャ用メモリ域２２５の確保も行う。
【００７９】
そして、キャプチャ制御部１３１は、仮想ＮＩＣ１１３及び１２３の初期化が成功したか否かを判定する（ステップＳ１３）。初期化が成功した場合（ステップＳ１３：肯定）、キャプチャ制御部１３１は、仮想通信チャネル情報構造体２２４の初期設定を行う（ステップＳ１４）。
【００８０】
さらに、キャプチャ制御部１３１は、仮想通信チャネル情報構造体２２４のキャプチャフラグを「ｅｎａｂｌｅ」にする（ステップＳ１５）。
【００８１】
一方、初期化が失敗した場合（ステップＳ１３：否定）、キャプチャ制御部１３１は、仮想通信チャネル情報構造体２２４のキャプチャフラグを「ｄｉｓａｂｌｅ」にする（ステップＳ１６）。
【００８２】
次に、図７を参照して、本実施例に係るキャプチャ制御部１３１によるデータ伝送ＤＭＡ処理の流れについてさらに説明する。図７は、実施例１に係るキャプチャ制御部によるデータ伝送ＤＭＡ処理のフローチャートである。ここでも、仮想サーバ１１から仮想サーバ１２へデータがＤＭＡ転送される場合について説明する。
【００８３】
キャプチャ制御部１３１は、データ送受信構造体をＴＸ−ｒｉｎｇ１１６から取り込む（ステップＳ２１）。
【００８４】
キャプチャ制御部１３１は、データ送受信構造体で指定されたパケットの取得を開始する。そして、キャプチャ制御部１３１は、パケットを受信したか否かを判定する（ステップＳ２２）。パケットの受信が完了していない場合（ステップＳ２２：否定）、キャプチャ制御部１３１は、パケットの受信を継続する。
【００８５】
これに対して、パケットを受信した場合（ステップＳ２２：肯定）、キャプチャ制御部１３１は、受信したパケットのヘッダ情報を取得する（ステップＳ２３）。
【００８６】
次に、キャプチャ制御部１３１は、仮想通信チャネル情報構造体２２４に登録されたＭＡＣアドレスの中に、取得したヘッダ情報に格納された送信元及び宛先のＭＡＣアドレスに該当するＭＡＣアドレスが有るか否かを判定する（ステップＳ２４）。該当するＭＡＣアドレスがない場合（ステップＳ２４：否定）、キャプチャ制御部１３１は、ステップＳ３１へ進む。
【００８７】
これに対して、該当するＭＡＣアドレスが有る場合（ステップＳ２４：肯定）、キャプチャ制御部１３１は、キャプチャフラグが「ｓｔａｒｔ」又は「ｓｔｏｐ」のいずれであるかを確認し、キャプチャ対象か否かを判定する（ステップＳ２５）。キャプチャ対象でない場合（ステップＳ２５：否定）、キャプチャ制御部１３１は、ステップＳ３１へ進む。
【００８８】
これに対して、キャプチャ対象の場合（ステップＳ２５：肯定）、キャプチャ制御部１３１は、ＲＩＮＧ（ここでは、ｒｉｎｇ−Ａ２２２）にデータ送受信構造体をエントリとして格納する（ステップＳ２６）。
【００８９】
その後、キャプチャ制御部１３１は、キャプチャＤＭＡ制御部２１１によるキャプチャ用ＤＭＡ処理が完了したか否かを判定する（ステップＳ２７）。キャプチャ用ＤＭＡ処理が完了していない場合（ステップＳ２７：否定）、キャプチャ制御部１３１は、キャプチャ用ＤＭＡ処理が完了するまで待機する。
【００９０】
これに対して、キャプチャ用ＤＭＡ処理が完了した場合（ステップＳ２７：肯定）、キャプチャ制御部１３１は、送信先の仮想サーバ１２にデータを送信する（ステップＳ２８）。
【００９１】
その後、キャプチャ制御部１３１は、ＲＩＮＧ（ここでは、ｒｉｎｇ−Ａ２２２）からエントリであるデータ送受信構造体を破棄する（ステップＳ２９）。
【００９２】
さらに、キャプチャ制御部１３１は、仮想通信チャネル情報構造体２２４のキャプチャフラグを確認し、キャプチャを継続するか否かを判定する（ステップＳ３０）。キャプチャを継続する場合（ステップＳ３０：肯定）、キャプチャ制御部１３１は、ステップＳ２１へ戻る。
【００９３】
これに対して、キャプチャを停止する場合（ステップＳ３０：否定）、キャプチャ制御部１３１は、データ送受信構造体を送信先の仮想サーバ１２へ送信する（ステップＳ３１）。
【００９４】
次に、図８を参照して、本実施例に係るキャプチャＤＭＡ制御部２１１によるキャプチャ処理の流れについてさらに説明する。図８は、実施例１に係るキャプチャＤＭＡ制御部によるキャプチャ処理のフローチャートである。ここでも、仮想サーバ１１から仮想サーバ１２へデータがＤＭＡ転送される場合について説明する。ここでは、ｒｉｎｇ−Ａ２２２及びｒｉｎｇ−Ｂ２２３の双方を指す場合、「ＲＩＮＧ」という。
【００９５】
キャプチャＤＭＡ制御部２１１は、ＲＩＮＧにエントリが有るか否かを判定する（ステップＳ４１）。ＲＩＮＧにエントリが無い場合（ステップＳ４１：否定）、キャプチャＤＭＡ制御部２１１は、ＲＩＮＧにエントリが格納されるまで待機する。
【００９６】
これに対して、ＲＩＮＧにエントリが有る場合（ステップＳ４１：肯定）、キャプチャＤＭＡ制御部２１１は、メモリ域１１１からデータを取得する。そして、キャプチャＤＭＡ制御部２１１は、取得したデータからキャプチャ用ＤＭＡのためのアドレス情報を取得する（ステップＳ４２）。ここでは、ｒｉｎｇ−Ａ２２２にエントリがある場合であり、キャプチャＤＭＡ制御部２１１は、メモリ域１１１におけるＤＭＡ元のアドレス及びキャプチャ用メモリ域２２５におけるＤＭＡ先のアドレスを取得する。
【００９７】
次に、キャプチャＤＭＡ制御部２１１は、キャプチャ用メモリ域２２５に空きが有るか否かを判定する（ステップＳ４３）。キャプチャ用メモリ域２２５に空きが無い場合（ステップＳ４３：否定）、キャプチャＤＭＡ制御部２１１は、仮想通信チャネル情報構造体２２４のキャプチャフラグを「ｓｔｏｐ」に変更し（ステップＳ４４）、ステップＳ４７へ進む。
【００９８】
これに対して、キャプチャ用メモリ域２２５に空きが有る場合（ステップＳ４３：肯定）、キャプチャＤＭＡ制御部２１１は、キャプチャ制御部１３１から時刻を取得し、タイムスタンプをデータに付加する（ステップＳ４５）。
【００９９】
そして、キャプチャＤＭＡ制御部２１１は、キャプチャ用ＤＭＡ処理を実行する（ステップＳ４６）。
【０１００】
その後、キャプチャＤＭＡ制御部２１１は、キャプチャ処理完了をキャプチャ制御部１３１に通知する（ステップＳ４７）。
【０１０１】
次に、図９を参照して、ハードウェア構成を説明する。図９は、通信システムのハードウェア構成図である。
【０１０２】
物理サーバ１は、ＣＰＵ９１、メモリ９２及びハードディスク９３を有する。さらに、物理サーバ１は、キャプチャ装置２を内蔵する。
【０１０３】
メモリ９２及びハードディスク９３は、ＣＰＵ９１とバスで接続されている。ハードディスク９３は、図１に例示した仮想サーバ１１及び１２、並びに、管理制御部１３の機能を実現するプログラムを含む各種プログラムを記憶している。
【０１０４】
ＣＰＵ９１は、ハードディスク９３に格納された各種プログラムを読み出し、メモリ９２上にプロセスを展開し、実行することで、図１に例示した仮想サーバ１１及び１２、並びに、管理制御部１３の機能を実現する。管理制御部１３は、例えば、ハイパーバイザーとしてＣＰＵ９１により実現される。このＣＰＵ９１が、「第１演算処理装置」の一例にあたる。
【０１０５】
メモリ９２は、メモリ域１１１及び１２１、並びに、共有メモリ域１１２及び１２２を実現する。
【０１０６】
キャプチャ装置２は、ＣＰＵ９０１、メモリ９０２及びハードディスク９０３を有している。
【０１０７】
メモリ９０２及びハードディスク９０３は、ＣＰＵ９０１とバスで接続されている。さらに、ＣＰＵ９０１に接続されるバスと、ＣＰＵ９１に接続されるバスとが接続され、ＣＰＵ９０１とＣＰＵ９１とは通信可能である。
【０１０８】
ハードディスク９０３は、例えば、図１に例示した二次記憶部２３の機能を実現する。また、ハードディスク９０３は、図１に例示したキャプチャ処理部２の機能を実現するプログラムを含む各種プログラムを記憶している。
【０１０９】
ＣＰＵ９０１は、ハードディスク９０３に格納された各種プログラムを読み出し、メモリ９０２上にプロセスを展開し、実行することで、図１に例示したキャプチャ処理部２１の機能を実現する。ＣＰＵ９０１は、ＣＰＵ９１から独立して動作する。例えば、ＣＰＵ９１が管理制御部１３の機能をハイパーバイザーとして実現した場合、ＣＰＵ９０１は、キャプチャ処理部２１のキャプチャ処理をハイパーバイザーが実行する処理とは別の処理として実行する。このＣＰＵ９０１が、「第２演算処理装置」の一例にあたる。
【０１１０】
ここで、図９では、キャプチャ装置２が物理サーバ１に内蔵される場合で説明したが、ＣＰＵ９１やメモリ９２に繋がるバスと、ＣＰＵ９０１やメモリ９０２に繋がるバスとが接続されていれば、キャプチャ装置２は物理サーバ１に内蔵されていなくてもよい。
【０１１１】
以上に説明したように、本実施例に係る通信装置は、仮想サーバを動作させ管理を行うＣＰＵ（Central  Processing  Unit）とは別のＣＰＵを有するキャプチャ装置を有する。そして、仮想サーバ間でデータの送受信のキャプチャを行う場合に、送信データをキャプチャ装置のＣＰＵを用いてキャプチャ装置内のメモリに取り込む。すなわち、サーバ上のリソースを用いずにキャプチャが行える。これにより、サーバにおける業務アプリケーションなどの処理を優先することによるキャプチャ処理能力の劣化を回避することができ、取りこぼしの発生を軽減することができる。また、逆に、キャプチャ処理によるサーバのリソースの消費が抑えられるため、サーバが実行する他の業務アプリケーションの処理能力の低下を軽減することができる。
【０１１２】
また、ポートミラーリング機能を用いてキャプチャを行う場合、仮想スイッチがポートミラーリング機能に未対応であればキャプチャができない。また、近年、仮想スイッチを使用してデータ転送を中継することによる通信性能の低下及びリソース使用量の増大が問題となっている。その問題を回避するため、仮想スイッチを用いずにハイパーバイザーの機能を用いて通信を行うことが増えてきている。このため、ポートミラーリング機能に対応している仮想スイッチを用いてキャプチャを行うことが困難になってきている。これに対して、本実施例に係る通信装置は、ポートミラーリング機能を用いずにキャプチャを行うので、仮想スイッチのポートミラーリング機能への未対応又は仮想スイッチの不使用により発生する問題を回避することができる。
【０１１３】
したがって、本実施例に係る通信装置であれば、仮想サーバ間での通信トラブルの調査においても、原因を突き止めることが容易にでき、通信トラブルを迅速に解決することができる。
【実施例２】
【０１１４】
図１０は、実施例２に係る通信システムのブロック図である。本実施例に係る通信システムは、キャプチャ時に仮想サーバ上で通信に使用されるフレームのデータ構造をイーサネットフレームのデータ構造に変換するフレーム変換を行った上で格納することが実施例１と異なる。以下の説明では、データのフレーム変換について主に説明する。また、以下の説明では、図１０において図１と同じ符号を有する各部は、特に説明のない限り同じ機能を有するものとして説明を省略する。
【０１１５】
本実施例に係る仮想サーバ１１及び１２は、ＬＳＯ（Large  Send  Offload）機能やＬＲＯ（Large  Receive  Offload）機能を有している。
【０１１６】
ここで、ＬＳＯについて説明する。従来のイーサネットフレームの送信処理では、ＬＡＮドライバからＮＩＣに対してイーサネットフレームを１フレームずつＤＭＡ転送で送信していた。しかし、回線速度が高速化すると、単位時間当たりのＤＭＡ転送依頼や完了通知を受ける処理回数が多くなり、ＣＰＵ処理時間が多く消費される。そこで、ＬＡＮドライバは、ＬＳＯ機能を有するサーバは、イーサネットフレームを分割する前のＴＣＰデータグラムにＩＰヘッダ及びＭＡＣヘッダを付与した状態のデータの送信依頼を受ける。ＬＡＮドライバはそのままＮＩＣへＤＭＡ転送する。ＮＩＣは、ヘッダ情報にしたがってイーサネットフレームに分割して伝送路へ送信する。この機能をＬＳＯと呼んでいる。そして、仮想的なネットワーク環境でＬＳＯを使用する場合、仮想的な伝送路上でフレーム分割をせずに大きいデータのまま転送が行われる場合がある。
【０１１７】
さらに、ＬＲＯについて説明する。従来のイーサネットフレームの受信処理では、ＮＩＣからＬＡＮドライバに対して１つのイーサネットフレームごとにＤＭＡ転送して完了したことをＬＡＮドライバに割り込みで通知していた。しかし、イーサネットフレーム長が変わらないまま回線速度を高速化したため、受信を通知する割り込みの発生頻度が多くなってしまい、割り込みを処理するためのＣＰＵの処理時間が長くなってしまった。そこで、ＮＩＣが、受信した複数のイーサネットフレームを１つのＴＣＰセグメントにまとめ、ＬＡＮドライバへＤＭＡ転送する。そして、データ転送は、その後の割り込みにより通知される。ＬＡＮドライバは、受信したデータをそのまま上位のＴＣＰ／ＩＰプロトコル処理部へ転送する。この機能をＬＲＯと呼んでいる。
【０１１８】
この点、物理的なＮＩＣには、ＴＣＰ（Transmission  Control  Protocol）／ＩＰ（Internet  Protocol）チェックサムオフロード機能などのハードウェアオフロード機能を有しているものが多い。ＴＣＰ／ＩＰオフロード機能とは、ＴＣＰ／ＩＰのチェックサム演算をＮＩＣ内部の演算処理装置で実施し、ＯＳやＬＡＮドライバでのＣＰＵ負荷を削減する機能である。しかし、仮想ＮＩＣ１１３と仮想ＮＩＣ１２３との間の通信では、物理サーバ１内でのメモリコピーにより通信が実装されるため伝送品質が高く、且つ、高速化のためにチェックサムが使用されないことが多いためＴＣＰ／ＩＰオフロード機能を用いることは少ない。
【０１１９】
そこで、仮想サーバ１１及び１２は、ＬＳＯやＬＲＯが実装することで、データの高速化を実現している。具体的には、仮想サーバ１１及び１２は、図１１に示すフレーム４０２を用いてデータの送受信を行う。図１１は、ＬＳＯ／ＬＲＯ機能使用時のデータ構造を説明するための図である。
【０１２０】
図１１のフォーマット４０１は、イーサネットフレームのデータ構造を表している。イーサネットフレームは、１．５〜９ｋＢｙｔｅのサイズのデータ４１２にヘッダ情報４１１が付加されている。これに対して、仮想サーバ１１及び１２がデータ転送に用いるフレームは、フォーマット４０１をＮ（Ｎ＝１，２，３・・・）倍したサイズのデータ４１４にヘッダ情報４１３が付加されている。すなわち、フォーマット４０２は、フォーマット４０１のデータ４１２を複数つなげてデータ４１４を作成し、それに１つのヘッダ情報４１３が付加されている。
【０１２１】
キャプチャ制御部１３１は、仮想ＮＩＣ１１３及び１２３の生成を検知すると、仮想通信チャネル情報構造体２２４、ｒｉｎｇ−Ａ２２２及びｒｉｎｇ−Ｂ２２３の作成、並びに、キャプチャ用メモリ域２２５の確保に加えて、以下の処理を行う。
【０１２２】
キャプチャ制御部１３１は、キャプチャ用ＤＭＡ情報領域２２６を仮想通信チャネル用メモリ域２２１上に確保する。
【０１２３】
図１２は、キャプチャ用ＤＭＡ情報領域に格納されるデータのフォーマットの一例を表す図である。キャプチャ用ＤＭＡ情報領域には、図１２に示すような情報が格納される。「ｔｉｍｅｓｔａｍｐ」は、キャプチャするデータのキャプチャタイミングを表すタイムスタンプである。「ｅｔｈｅｒ−ｈｅａｄｅｒ」は、キャプチャするデータのイーサネットヘッダを表す。「ＩＰ−ｈｅａｄｅｒ」は、キャプチャするデータのＩＰヘッダを表す。「チャネルＩＤ」は、キャプチャするデータの送信に用いる仮想チャネルの識別子を表す。「ＤＭＡクッキーリスト」は、ＤＭＡクッキーリストへのポインタを表す。「ｒｅｓｉｄｕａｌ」は、残りデータのサイズを表す。
【０１２４】
さらに、キャプチャ制御部１３１は、図１３に示すようなＤＭＡクッキーリストを作成する。図１３は、ＤＭＡクッキーリストのフォーマットの一例を表す図である。テーブルのサイズは、データ送受信構造体のサイズを表し、クッキー数と一致する。データ＃ｎの格納先アドレスは、データ＃ｎを格納する領域のアドレスを表す。また、サイズ＃ｎは、データ＃ｎのサイズを表す。
【０１２５】
その後、キャプチャ制御部１３１は、仮想通信チャネル情報構造体２２４、ｒｉｎｇ−Ａ２２２、ｒｉｎｇ−Ｂ２２３、キャプチャ用ＤＭＡ情報領域２２６及びキャプチャ用メモリ域２２５の作成をフレーム変換処理部２１２に通知する。
【０１２６】
その後、キャプチャ制御部１３１は、フレーム変換処理部２１２からのキャプチャ処理完了の通知を受けるまで待機する。そして、キャプチャ処理完了の通知を受けると、キャプチャ制御部１３１は、データ転送ＤＭＡを実行する。
【０１２７】
キャプチャ装置２のキャプチャ処理部２１は、キャプチャＤＭＡ制御部２１１及びフレーム変換処理部２１２を有する。
【０１２８】
フレーム変換処理部２１２は、仮想通信チャネル情報構造体２２４、ｒｉｎｇ−Ａ２２２、ｒｉｎｇ−Ｂ２２３、キャプチャ用ＤＭＡ情報領域２２６及びキャプチャ用メモリ域２２５の作成の通知を受ける。そして、フレーム変換処理部２１２は、ｒｉｎｇ−Ａ２２２及びｒｉｎｇ−Ｂ２２３を監視する。以下、仮想ＮＩＣ１１３から仮想ＮＩＣ１２３へのデータ送信の場合ついて、図１４を参照しながらフレーム変換処理について説明する。図１４は、フレーム変換処理を説明するための図である。ここでは、フォーマット４０２としてデータ４１４がイーサネットフォーマットのデータの３倍のサイズである場合で説明する。
【０１２９】
フレーム変換処理部２１２は、ｒｉｎｇ−Ａ２２２にエントリがあることを確認すると、仮想通信チャネル情報構造体２２４のキャプチャフラグを確認する。
【０１３０】
キャプチャフラグが「ｓｔｏｐ」の場合、フレーム変換処理部２１２は、キャプチャの不実行を決定し、キャプチャ制御部１３１にキャプチャ処理完了を通知する。
【０１３１】
これに対して、キャプチャフラグが「ｓｔａｒｔ」の場合、フレーム変換処理部２１２は、ｒｉｎｇ−Ａ２２２に格納されたエントリが示すデータをキャプチャ対象のデータと判定し、以下のキャプチャ用ＤＭＡの処理を開始する。
【０１３２】
フレーム変換処理部２１２は、キャプチャ用メモリ域２２５からＤＭＡ先のアドレス情報を取得する。
【０１３３】
次に、フレーム変換処理部２１２は、仮想ＮＩＣ１１３を介してメモリ域１１１からデータを取得する。そして、フレーム変換処理部２１２は、取得したデータのヘッダ情報を読み込み、イーサネットヘッダ情報４１５及びＩＰヘッダ情報４１６を取り出す。
【０１３４】
次に、フレーム変換処理部２１２は、データ送受信構造体をｒｉｎｇ−Ａ２２２から取得する。そして、フレーム変換処理部２１２は、取得したデータ送受信構造体から送信パケットサイズを取得し、キャプチャ用ＤＭＡ情報領域２２６のｒｅｓｉｄｕａｌの項に取得した送信パケットサイズを登録する。
【０１３５】
さらに、フレーム変換処理部２１２は、取得したデータからヘッダチェックサムを計算し、取得したイーサネットヘッダ情報４１５及びＩＰヘッダ情報４１６に書き込む。ヘッダチェックサムは、例えば、ＩＰチェックサムやＴＣＰチェックサムである。
【０１３６】
次に、フレーム変換処理部２１２は、イーサネットヘッダ情報４１５及びＩＰヘッダ情報４１６のそれぞれのサイズを取得する。さらに、フレーム変換処理部２１２は、仮想通信チャネル情報構造体２２４から仮想ＮＩＣ１１３のＭＴＵ長を取得する。そして、フレーム変換処理部２１２は、イーサネットヘッダ情報４１５のサイズ、ＩＰヘッダ情報４１７のサイズ及び仮想ＮＩＣ１１３のＭＴＵ長を加算することで「ＤＭＡ転送サイズ」を求める。
【０１３７】
次に、フレーム変換処理部２１２は、キャプチャ用ＤＭＡ情報領域２２６に登録されているＤＭＡクッキーリストのポインタを基に、ＤＭＡクッキーリストを参照する。そして、フレーム変換処理部２１２は、ＤＭＡクッキーリストを用いて、キャプチャ用メモリ域２２５にＤＭＡ転送サイズ分の空きがあるか否かを判定する。
【０１３８】
ＤＭＡ転送サイズ分の空きが無い場合、フレーム変換処理部２１２は、仮想通信チャネル情報構造体２２４のキャプチャフラグを「ｓｔｏｐ」に変更する。そして、フレーム変換処理部２１２は、キャプチャ処理の完了をキャプチャ制御部１３１へ通知する。
【０１３９】
一方、ＤＭＡ転送サイズ分の空きが有る場合、フレーム変換処理部２１２は、時刻情報をキャプチャ制御部１３１から取得する。そして、フレーム変換処理部２１２は、保持するイーサネットヘッダ情報４１５及びＩＰヘッダ情報４１６にタイムスタンプ４１７を付加し付加情報４０３を作成する。
【０１４０】
そして、フレーム変換処理部２１２は、付加情報４０３のＤＭＡ転送をキャプチャＤＭＡ制御部２１１に指示する。また、フレーム変換処理部２１２は、データ４１４のＤＭＡ転送をキャプチャＤＭＡ制御部２１１に指示する。ここで、フレーム変換処理部２１２は、データ４１４の中のＭＴＵ長分のＤＭＡ転送指示をキャプチャＤＭＡ制御部２１１に対して順次行っていく。そして、フレーム変換処理部２１２は、ＤＭＡ転送するデータがＭＴＵ長に満たなくなると、データ分だけのキャプチャ用ＤＭＡ転送をキャプチャＤＭＡ制御部２１１に指示する。
【０１４１】
フレーム変換処理部２１２は、ＤＭＡ指示に対して、キャプチャＤＭＡ制御部２１１からキャプチャ用ＤＭＡの完了の通知を受信すると、以下の処理を行う。フレーム変換処理部２１２は、キャプチャ用ＤＭＡ情報領域２２６のｒｅｓｉｄｕａｌに登録されている値からＭＴＵ長を減算する。計算結果が０以下の場合、フレーム変換処理部２１２は、キャプチャ処理完了をキャプチャ制御部１３１に通知する。
【０１４２】
計算結果が０より大きい場合、フレーム変換処理部２１２は、計算結果を新たなｒｅｓｉｄｕａｌとしてキャプチャ用ＤＭＡ情報領域２２６に登録する。その後、次のＤＭＡ転送をキャプチャＤＭＡ制御部２１１に指示する。
【０１４３】
キャプチャＤＭＡ制御部２１１は、付加情報４０３のＤＭＡ転送の指示をフレーム変換処理部２１２から受ける。また、キャプチャＤＭＡ制御部２１１は、データ４１４のＤＭＡ転送の指示をフレーム変換処理部２１２から受ける。
【０１４４】
そして、キャプチャＤＭＡ制御部２１１は、付加情報４０３をフレーム変換処理部２１２から取得する。タイムスタンプ４１７は時間の経過に伴い変化するため、キャプチャＤＭＡ制御部２１１は、キャプチャ用ＤＭＡ処理毎に、異なるタイムスタンプ４１７を付加したイーサネットヘッダ情報４１５及びＩＰヘッダ情報４１６をフレーム変換処理部２１２から取得する。
【０１４５】
そして、キャプチャＤＭＡ制御部２１１は、取得した付加情報４０３を指定されたデータに付加してキャプチャ用メモリ域２２５のＤＭＡ先のアドレスに格納していく。
【０１４６】
例えば、図１４に示すように、キャプチャＤＭＡ制御部２１１は、データ４１４の先頭からＭＴＵ長のデータ４４１に最初のタイミングのタイムスタンプを付加した付加情報４３１を付加させてキャプチャ用メモリ域２２５に格納する。次に、キャプチャＤＭＡ制御部２１１は、データ４１４の残りデータの先頭からＭＴＵ長のデータ４４２に次のタイミングのタイムスタンプを付加した付加情報４３２を付加させてキャプチャ用メモリ域２２５に格納する。次に、キャプチャＤＭＡ制御部２１１は、データ４１４の残りデータ４４３に次のタイミングのタイムスタンプを付加した付加情報４３３を付加させてキャプチャ用メモリ域２２５に格納する。キャプチャ処理部２１は、以上のようなキャプチャ用ＤＭＡ処理を行うことで、イーサネットフレームのデータとしてデータをキャプチャすることができる。
【０１４７】
キャプチャＤＭＡ制御部２１１は、データの格納が完了すると、キャプチャ用ＤＭＡの完了をフレーム変換処理部２１２に通知する。
【０１４８】
さらに、図１５を参照して、解析時のキャプチャデータについて説明する。図１５は、解析時のキャプチャデータの状態を表す図である。
【０１４９】
二次記憶部２３に格納されたデータは、図１５に示すように、いずれもイーサネットフォーマットを有している。さらに、二次記憶部２３に格納されたデータには、タイムスタンプが付加されている。
【０１５０】
データ４５１〜４５６は全てイーサネットフレームのデータとして格納されており、ユーザは使い慣れた形式のデータを用いて解析を行うことができるので、本実施例に係る通信装置によるキャプチャデータは利便性が高い。また、タイムスタンプが付加されているので、データ通信の順番を容易に把握することができ、解析が容易になる。例えば、図１５において、Ｔ１、Ｔ２、Ｔ３、Ｔ４、Ｔ５、Ｔ６の順番で時間が経過しているとする。この場合、仮想サーバ１１と仮想サーバ１２との間で、データ４５１，４５２，４５３，４５４，４５５，４５６の順番でデータの送受信が行われたことを容易に把握でき、通信トラブルの解析を簡略化することができる。
【０１５１】
次に、図１６を参照して、本実施例に係る通信システムによるデータキャプチャ処理の概略について説明する。図１６は、実施例２に係るデータキャプチャ処理の概略のフローチャートである。ここでも、データがメモリ域１１１からメモリ域１２１へＤＭＡ転送される場合で説明する。
【０１５２】
管理制御部１３は、仮想サーバ１１及び仮想サーバ１２の初期化及びキャプチャ装置２の初期化といった初期化処理を実行する（ステップＳ１０１）。
【０１５３】
キャプチャ制御部１３１は、キャプチャの開始指示をキャプチャ設定部１１８から受けると、仮想通信チャネル情報構造体２２４のキャプチャフラグを「ｓｔａｒｔ」に変更する。そして、キャプチャ制御部１３１は、ＴＸ−ｒｉｎｇ１１６に格納されたエントリを読み込み、読み込んだエントリがデータ送受信構造体の場合、データ送受信構造体で指定されたパケットの取得を開始する。キャプチャ制御部１３１は、パケットを受信したか否かを判定する（ステップＳ１０２）。パケットの受信が完了していない場合（ステップＳ１０２：否定）、キャプチャ制御部１３１は、パケットの受信を継続する。
【０１５４】
パケットを受信した場合（ステップＳ１０２：肯定）、キャプチャ制御部１３１は、受信したデータのヘッダから送信元及び宛先のＭＡＣアドレスを取得する。そして、送信元及び宛先のＭＡＣアドレスが登録された仮想通信チャネル情報構造体２２４があるか否かにより、送信データがキャプチャ対象か否かを判定する（ステップＳ１０３）。送信データがキャプチャ対象でない場合（ステップＳ１０３：否定）、キャプチャ制御部１３１は、ステップＳ１１２へ進む。
【０１５５】
これに対して、送信データがキャプチャ対象の場合（ステップＳ１０３：肯定）、フレーム変換処理部２１２は、フレーム分割によりイーサネット形式にデータを変換する（ステップＳ１０４）。
【０１５６】
そして、フレーム変換処理部２１２は、キャプチャを行うための空きメモリが有るか否かを判定する（ステップＳ１０５）。空きメモリが無い場合（ステップＳ１０５：否定）、フレーム変換処理部２１２は、仮想通信チャネル情報構造体２２４のキャプチャフラグを「ｓｔｏｐ」に変更する（ステップＳ１０６）。その後、データキャプチャ処理は、ステップＳ１１１へ進む。
【０１５７】
これに対して、空きメモリが有る場合（ステップＳ１０５：肯定）、フレーム変換処理部２１２は、仮想通信チャネル情報構造体２２４のキャプチャフラグによりキャプチャを継続するか否かを判定する（ステップＳ１０７）。キャプチャを停止する場合（ステップＳ１０７：否定）、データキャプチャ処理は、ステップＳ１１１へ進む。
【０１５８】
これに対して、キャプチャを継続する場合（ステップＳ１０７：肯定）、フレーム変換処理部２１２及びキャプチャＤＭＡ制御部２１１は、Ｒｉｎｇ−Ａ２２２へのデータ送受信構造体の格納を検知すると、キャプチャ用ＤＭＡ処理を実行する（ステップＳ１０８）。
【０１５９】
その後、フレーム変換処理部２１２は、キャプチャＤＭＡ処理を行ったデータが最後の分割データか否かを判定する（ステップＳ１０９）。最後の分割データでない場合（ステップＳ１０９：否定）、フレーム変換処理部２１２は、ステップＳ１０４へ戻る。
【０１６０】
これに対して、最後の分割データの場合（ステップＳ１０９：肯定）、キャプチャ制御部１３１は、フレーム変換処理部２１２からのキャプチャ処理の完了通知により、キャプチャ用ＤＭＡ処理が完了したか否かを判定する（ステップＳ１１０）。キャプチャ用ＤＭＡ処理が完了していない場合（ステップＳ１１０：否定）、キャプチャ制御部１３１は、フレーム変換処理部２１２及びキャプチャＤＭＡ制御部２１１によるキャプチャ用ＤＭＡ処理が完了するまで待機する。
【０１６１】
これに対して、キャプチャ用ＤＭＡ処理が完了した場合（ステップＳ１１０：肯定）、キャプチャ制御部１３１は、ステップＳ１１１に進む。
【０１６２】
そして、キャプチャ制御部１３１は、送信先仮想サーバである仮想サーバ１２にデータを送信する（ステップＳ１１１）。
【０１６３】
その後、キャプチャ制御部１３１は、仮想通信チャネル情報構造体２２４のキャプチャフラグを確認し、キャプチャを継続するか否かを判定する（ステップＳ１１２）。キャプチャフラグが「ｓｔａｒｔ」であり、キャプチャを継続する場合（ステップＳ１１２：肯定）、キャプチャ制御部１３１は、ステップＳ１０１に戻る。
【０１６４】
これに対して、キャプチャフラグが「ｓｔｏｐ」であり、キャプチャを停止する場合（ステップＳ１１２：否定）、キャプチャ制御部１３１は、データキャプチャ処理を終了する。
【０１６５】
次に、図１７を参照して、本実施例に係るフレーム変換処理部２１２によるフレーム変換処理の流れについてさらに説明する。図１７は、実施例２に係るフレーム変換処理部によるフレーム変換処理のフローチャートである。ここでも、仮想サーバ１１から仮想サーバ１２へデータがＤＭＡ転送される場合について説明する。ここでは、ｒｉｎｇ−Ａ２２２及びｒｉｎｇ−Ｂ２２３の双方を指す場合、「ＲＩＮＧ」という。
【０１６６】
フレーム変換処理部２１２は、ＲＩＮＧにエントリが有るか否かを判定する（ステップＳ２０１）。ＲＩＮＧにエントリが無い場合（ステップＳ２０１：否定）、フレーム変換処理部２１２は、ＲＩＮＧにエントリが格納されるまで待機する。
【０１６７】
これに対して、ＲＩＮＧにエントリが有る場合（ステップＳ２０１：肯定）、フレーム変換処理部２１２は、メモリ域１１１からデータを取得する。そして、フレーム変換処理部２１２は、取得したデータのヘッダから送信元及び宛先のＭＡＣアドレスを含むアドレス情報を取得する（ステップＳ２０２）。
【０１６８】
次に、フレーム変換処理部２１２は、取得したデータのヘッダ情報を取得し格納する（ステップＳ２０３）。
【０１６９】
次に、フレーム変換処理部２１２は、ヘッダチェックサムを計算する（ステップＳ２０４）。そして、フレーム変換処理部２１２は、算出したヘッダチェックサムをヘッダ情報に格納する。
【０１７０】
次に、フレーム変換処理部２１２は、キャプチャ用ＤＭＡ情報領域のＤＭＡ先及びＤＭＡ元のアドレスを更新する（ステップＳ２０５）。
【０１７１】
次に、フレーム変換処理部２１２は、キャプチャ用メモリ域２２５に空きが有るか否かを判定する（ステップＳ２０６）。キャプチャ用メモリ域２２５に空きが無い場合（ステップＳ２０６：否定）、フレーム変換処理部２１２は、仮想通信チャネル情報構造体２２４のキャプチャフラグを「ｓｔｏｐ」に変更し（ステップＳ２０７）、ステップＳ２１３へ進む。
【０１７２】
これに対して、キャプチャ用メモリ域２２５に空きが有る場合（ステップＳ２０６：肯定）、フレーム変換処理部２１２は、キャプチャ制御部１３１から時刻を取得し、タイムスタンプを更新しヘッダ情報とともに格納する（ステップＳ２０８）。
【０１７３】
次に、フレーム変換処理部２１２は、タイムスタンプ及びヘッダ情報のＤＭＡ転送をキャプチャＤＭＡ制御部２１１に指示する（ステップＳ２０９）。
【０１７４】
また、フレーム変換処理部２１２は、データ領域のＤＭＡ転送をキャプチャＤＭＡ制御部２１１に指示する（ステップＳ２１０）。
【０１７５】
フレーム変換処理部２１２は、キャプチャＤＭＡ制御部２１１からのキャプチャ用ＤＭＡ処理完了の通知によりキャプチャ用ＤＭＡの処理が完了したか否かを判定する（ステップＳ２１１）。キャプチャ用ＤＭＡの処理が完了していない場合（ステップＳ２１１：否定）、フレーム変換処理部２１２は、キャプチャ用ＤＭＡの処理が完了するまで待機する。
【０１７６】
これに対して、キャプチャ用ＤＭＡの処理が完了した場合（ステップＳ２１１：肯定）、フレーム変換処理部２１２は、転送したデータが最後の分割データか否かを判定する（ステップＳ２１２）。最後の分割データでない場合（ステップＳ２１２：否定）、フレーム変換処理部２１２は、ステップＳ２０５へ戻る。
【０１７７】
これに対して、最後の分割データの場合（ステップＳ２１２：肯定）、フレーム変換処理部２１２は、キャプチャ処理完了をキャプチャ制御部１３１に通知する（ステップＳ２１３）。
【０１７８】
次に、図１８を参照して、本実施例に係るキャプチャＤＭＡ制御部２１１によるキャプチャ用ＤＭＡ処理の流れについて説明する。図１８は、実施例２に係るキャプチャＤＭＡ制御部によるキャプチャ用ＤＭＡ処理のフローチャートである。
【０１７９】
キャプチャＤＭＡ制御部２１１は、フレーム変換処理部２１２からのＤＭＡ指示が有るか否かを判定する（ステップＳ３０１）。フレーム変換処理部２１２からのＤＭＡ指示が無い場合（ステップＳ３０１：否定）、キャプチャＤＭＡ制御部２１１は、ＤＭＡ指示を受けるまで待機する。
【０１８０】
これに対して、フレーム変換処理部２１２からのＤＭＡ指示が有る場合（ステップＳ３０１：肯定）、キャプチャＤＭＡ制御部２１１は、フレーム変換処理部２１２により指示されたデータをメモリ域１１１から取得する。そして、キャプチャＤＭＡ制御部２１１は、フレーム変換処理部２１２から取得したタイムスタンプ、イーサネットヘッダ情報及びＩＰヘッダ情報をデータに付加してキャプチャ用メモリ域２２５に格納し、キャプチャ用ＤＭＡ処理を行う（ステップＳ３０２）。
【０１８１】
その後、キャプチャＤＭＡ制御部２１１は、キャプチャ用ＤＭＡ処理の完了をフレーム変換処理部２１２に通知する（ステップＳ３０３）。
【０１８２】
以上に説明したように、本実施例に係る通信装置は、転送データをイーサネットフレームへ変換して格納する。これにより、仮想的な伝送路で使用される専用のパケットを用いて仮想ＮＩＣ間で通信が行われる場合にも、本実施例に係る通信装置は、一般的なイーサネットフレームの形式でデータを格納することができる。これにより、ユーザは、使い慣れたイーサネットフレームで解析を行うことができ、容易に通信トラブルの解析を行うことができる。また、各フレームはタイムスタンプが付加されて格納されているので、ユーザは、フレームの送受信の順番を容易に把握することができ、通信トラブルの解析の手間を省くことができる。
【符号の説明】
【０１８３】
１  物理サーバ
２  キャプチャ装置
１１，１２  仮想サーバ
１３  管理制御部
２１  キャプチャ処理部
２２  一次記憶部
２３  二次記憶部
１１１，１２１  メモリ域
１１２，１２２  共有メモリ域
１１３，１２３  仮想ＮＩＣ
１１４，１２４  仮想通信チャネル用メモリ域
１１５，１２５  イベントキュー
１１６，１２６  ＴＸ−ｒｉｎｇ
１１７，１２７  ＲＸ−ｒｉｎｇ
１１８  キャプチャ設定部
１３１  キャプチャ制御部
２１１  キャプチャＤＭＡ制御部
２１２  フレーム変換処理部
２２１  仮想通信チャネル用メモリ域
２２２  ｒｉｎｇ−Ａ
２２３  ｒｉｎｇ−Ｂ
２２４  仮想通信チャネル情報構造体
２２５  キャプチャ用メモリ域
２２６  キャプチャ用ＤＭＡ情報領域
【図１】
2016012801.tif 000003
【図２】
2016012801.tif 000004
【図３】
2016012801.tif 000005
【図４】
2016012801.tif 000006
【図５】
2016012801.tif 000007
【図６】
2016012801.tif 000008
【図７】
2016012801.tif 000009
【図８】
2016012801.tif 000010
【図９】
2016012801.tif 000011
【図１０】
2016012801.tif 000012
【図１１】
2016012801.tif 000013
【図１２】
2016012801.tif 000014
【図１３】
2016012801.tif 000015
【図１４】
2016012801.tif 000016
【図１５】
2016012801.tif 000017
【図１６】
2016012801.tif 000018
【図１７】
2016012801.tif 000019
【図１８】
2016012801.tif 000020