(57)【要約】【課題】受信装置において、上位層に係る条件で指定された特定の通信に関する、下位層のデバッグ情報を取得する。【解決手段】送信装置１００のデバイスドライバ１３０は、上位層に係る条件で指定されたデバッグ対象の通信における下位層パケットの所定の領域に装置間デバッグフラグを設定し、受信装置２００に送信する。受信装置２００のデバイスドライバ２３０は、送信装置１００から所定の領域に装置間デバッグフラグが設定されている下位層パケットを受信した場合に、当該下位層パケットに対する下位層の受信処理に係るデバッグ情報を取得する。【選択図】      図１
2015153150.tif 000002
【特許請求の範囲】
【請求項１】
上位層に係る条件で指定されたデバッグ対象の通信における下位層パケットの所定の領域に装置間デバッグフラグを設定し、受信装置に送信する、第１の下位層処理手段を含む送信装置と、
前記送信装置から前記所定の領域に前記装置間デバッグフラグが設定されている下位層パケットを受信した場合に、当該下位層パケットに対する下位層の受信処理に係るデバッグ情報を取得する、第２の下位層処理手段を含む前記受信装置と、
を備えた通信システム。
【請求項２】
前記送信装置は、さらに、送信対象の上位層パケットに対する上位層の送信処理を行い、当該上位層パケットがデバッグ対象の通信における上位層パケットである場合に、当該上位層パケットに対する前記上位層の送信処理に係るデバッグ情報を取得するとともに、第１の装置内デバッグフラグを設定する、第１の上位層処理手段を含み、
前記第１の下位層処理手段は、前記第１の上位層処理手段により生成された前記上位層パケットを含んだ下位層パケットに対する下位層の送信処理を行い、前記第１の装置内デバッグフラグが設定されている場合に、当該下位層パケットに対する前記下位層の送信処理に係るデバッグ情報を取得するとともに、当該下位層パケットの所定の領域に装置間デバッグフラグを設定し、
前記受信装置は、さらに、前記第２の下位層処理手段により抽出された上位層パケットに対する上位層の受信処理を行い、第２の装置内デバッグフラグが設定されている場合に、当該上位層パケットに対する前記上位層の受信処理に係るデバッグ情報を取得する、第２の上位層処理手段を含み、
前記第２の下位層処理手段は、前記送信装置から受信した下位層パケットに対する前記下位層の受信処理を行い、当該下位層パケットの前記所定の領域に前記装置間デバッグフラグが設定されている場合に、当該下位層パケットに対する前記下位層の受信処理に係るデバッグ情報を取得するとともに、前記第２の装置内デバッグフラグを設定する、
請求項１に記載の通信システム。
【請求項３】
前記上位層は、トランスポート、及び、ネットワーク層であり、前記下位層は、データリンク層である、
請求項１または２に記載の通信システム。
【請求項４】
前記第１の下位層処理手段は、前記データリンク層におけるＶＬＡＮタグに前記装置間デバッグフラグを設定する、請求項３に記載の通信システム。
【請求項５】
上位層に係る条件で指定されたデバッグ対象の通信における下位層パケットの所定の領域に装置間デバッグフラグを設定し、前記所定の領域に前記装置間デバッグフラグが設定されている下位層パケットを受信した場合に、当該下位層パケットに対する下位層の受信処理に係るデバッグ情報を取得する受信装置に送信する、下位層処理手段
を備えた送信装置。
【請求項６】
上位層に係る条件で指定されたデバッグ対象の通信における下位層パケットの所定の領域に装置間デバッグフラグを設定し、送信する送信装置から、前記所定の領域に前記装置間デバッグフラグが設定されている下位層パケットを受信した場合に、当該下位層パケットに対する下位層の受信処理に係るデバッグ情報を取得する、下位層処理手段
を備えた受信装置。
【請求項７】
送信装置において、上位層に係る条件で指定されたデバッグ対象の通信における下位層パケットの所定の領域に装置間デバッグフラグを設定し、受信装置に送信し、
前記受信装置において、前記送信装置から前記所定の領域に前記装置間デバッグフラグが設定されている下位層パケットを受信した場合に、当該下位層パケットに対する下位層の受信処理に係るデバッグ情報を取得する、
デバッグ方法。
【請求項８】
前記送信装置の第１の上位層処理手段において、送信対象の上位層パケットに対する上位層の送信処理を行い、当該上位層パケットがデバッグ対象の通信における上位層パケットである場合に、当該上位層パケットに対する前記上位層の送信処理に係るデバッグ情報を取得するとともに、第１の装置内デバッグフラグを設定し、
前記送信装置の第１の下位層処理手段において、前記第１の上位層処理手段により生成された前記上位層パケットを含んだ下位層パケットに対する下位層の送信処理を行い、前記第１の装置内デバッグフラグが設定されている場合に、当該下位層パケットに対する前記下位層の送信処理に係るデバッグ情報を取得するとともに、当該下位層パケットの所定の領域に装置間デバッグフラグを設定し、
前記受信装置の第２の下位層処理手段において、前記送信装置から受信した下位層パケットに対する前記下位層の受信処理を行い、当該下位層パケットの前記所定の領域に前記装置間デバッグフラグが設定されている場合に、当該下位層パケットに対する前記下位層の受信処理に係るデバッグ情報を取得するとともに、第２の装置内デバッグフラグを設定し、
前記受信装置の第２の上位層処理手段において、前記第２の下位層処理手段により抽出された上位層パケットに対する上位層の受信処理を行い、前記第２の装置内デバッグフラグが設定されている場合に、当該上位層パケットに対する前記上位層の受信処理に係るデバッグ情報を取得する、
請求項７に記載のデバッグ方法。
【請求項９】
コンピュータに、
上位層に係る条件で指定されたデバッグ対象の通信における下位層パケットの所定の領域に装置間デバッグフラグを設定し、前記所定の領域に前記装置間デバッグフラグが設定されている下位層パケットを受信した場合に、当該下位層パケットに対する下位層の受信処理に係るデバッグ情報を取得する受信装置に送信する、
処理を実行させるプログラム。
【請求項１０】
コンピュータに、
上位層に係る条件で指定されたデバッグ対象の通信における下位層パケットの所定の領域に装置間デバッグフラグを設定し、送信する送信装置から、前記所定の領域に前記装置間デバッグフラグが設定されている下位層パケットを受信した場合に、当該下位層パケットに対する下位層の受信処理に係るデバッグ情報を取得する、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、送信装置、受信装置、デバッグ方法、及び、プログラムに関する。
【背景技術】
【０００２】
複数コンピュータ等により構成される通信システムにおけるネットワーク障害の調査では、コンピュータ内での通信処理のデバッグが行われる。この場合、コンピュータ内で、トランスポート層やネットワーク層に係る条件で指定された特定の通信に関して、トランスポート層からネットワーク層、データリンク層までの複数のプロトコル層に跨った一連の処理のデバッグ情報が要求される場合がある。例えば、トランスポート層、ネットワーク層として、ＴＣＰ／ＩＰ、データリンク層としてＥｔｈｅｒｎｅｔ（登録商標）が用いられていると仮定する。この場合、特定のＩＰアドレスやポート番号を用いた通信に対して、ＴＣＰ、ＩＰ、及び、Ｅｔｈｅｒｎｅｔの一連の処理に係るデバッグ情報の取得が要求される。しかしながら、Ｅｔｈｅｒｎｅｔの処理を行うデバイスドライバでは、ＴＣＰ／ＩＰのプロトコルを解釈できない。このため、デバイスドライバで、特定の通信に係るパケットを識別する方法が必要となる。
【０００３】
送信側のコンピュータ（送信装置）のデバイスドライバにおいて、特定の通信に係るパケットを識別する方法としては、例えば、ＴＣＰ／ＩＰの処理を行うネットワークスタックが、送信データを収容するデータ管理構造体にデバッグフラグを設定する方法がある。デバイスドライバは、デバッグフラグをもとに、送信データが特定の通信に係る送信データかどうかを判断できる。
【０００４】
受信側のコンピュータ（受信装置）のデバイスドライバにおいて、特定の通信に係るパケットを識別する方法としては、例えば、デバイスドライバにＴＣＰ／ＩＰのプロトコル解析処理を追加する方法が考えられる。しかしながら、この場合、プロトコル解析処理の負荷や遅延に伴うデバッグ情報の損失や、本来共通な上位レイヤのプロトコル解析処理をデバイスドライバ毎に追加する手間等が生じる。
【０００５】
このように、受信装置のデバイスドライバでは、特定の通信に係るパケットを識別することが難しい。したがって、受信装置では、トランスポート層やネットワーク層等、上位層に係る条件で指定された特定の通信に関する、Ｅｔｈｅｒｎｅｔ等、下位層のデバッグ情報を取得することができない。
【０００６】
なお、特許文献１には、ネットワーク上のデバッグ支援装置において、コンピュータ間の特定の通信の情報を取得する技術が開示されている。しかしながら、特許文献１に開示された技術では、デバッグ支援装置を介することにより、ネットワーク上の転送経路や転送速度が変わる上、デバッグ支援装置で観測できる情報しか採取できないという問題がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１０−１３６０５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、上述した課題を解決し、受信装置において、上位層に係る条件で指定された特定の通信に関する、下位層のデバッグ情報を取得可能な、通信システム、送信装置、受信装置、デバッグ方法、及び、プログラムを提供することである。
【課題を解決するための手段】
【０００９】
本発明の通信システムは、上位層に係る条件で指定されたデバッグ対象の通信における下位層パケットの所定の領域に装置間デバッグフラグを設定し、受信装置に送信する、第１の下位層処理手段を含む送信装置と、前記送信装置から前記所定の領域に前記装置間デバッグフラグが設定されている下位層パケットを受信した場合に、当該下位層パケットに対する下位層の受信処理に係るデバッグ情報を取得する、第２の下位層処理手段を含む前記受信装置と、を備える。
【００１０】
本発明の送信装置は、上位層に係る条件で指定されたデバッグ対象の通信における下位層パケットの所定の領域に装置間デバッグフラグを設定し、前記所定の領域に前記装置間デバッグフラグが設定されている下位層パケットを受信した場合に、当該下位層パケットに対する下位層の受信処理に係るデバッグ情報を取得する受信装置に送信する、下位層処理手段を備える。
【００１１】
本発明の受信装置は、上位層に係る条件で指定されたデバッグ対象の通信における下位層パケットの所定の領域に装置間デバッグフラグを設定し、送信する送信装置から、前記所定の領域に前記装置間デバッグフラグが設定されている下位層パケットを受信した場合に、当該下位層パケットに対する下位層の受信処理に係るデバッグ情報を取得する、下位層処理手段を備える。
【００１２】
本発明のデバッグ方法は、送信装置において、上位層に係る条件で指定されたデバッグ対象の通信における下位層パケットの所定の領域に装置間デバッグフラグを設定し、受信装置に送信し、前記受信装置において、前記送信装置から前記所定の領域に前記装置間デバッグフラグが設定されている下位層パケットを受信した場合に、当該下位層パケットに対する下位層の受信処理に係るデバッグ情報を取得する。
【００１３】
本発明の第１のプログラムは、コンピュータに、上位層に係る条件で指定されたデバッグ対象の通信における下位層パケットの所定の領域に装置間デバッグフラグを設定し、前記所定の領域に前記装置間デバッグフラグが設定されている下位層パケットを受信した場合に、当該下位層パケットに対する下位層の受信処理に係るデバッグ情報を取得する受信装置に送信する、処理を実行させる。
【００１４】
本発明の第２のプログラムは、コンピュータに、上位層に係る条件で指定されたデバッグ対象の通信における下位層パケットの所定の領域に装置間デバッグフラグを設定し、送信する送信装置から、前記所定の領域に前記装置間デバッグフラグが設定されている下位層パケットを受信した場合に、当該下位層パケットに対する下位層の受信処理に係るデバッグ情報を取得する、処理を実行させる。
【発明の効果】
【００１５】
本発明の効果は、受信装置において、上位層に係る条件で指定された特定の通信に関する、下位層のデバッグ情報を取得できることである。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態の特徴的な構成を示すブロック図である。
【図２】本発明の実施の形態における、通信システム１の構成を示すブロック図である。
【図３】本発明の実施の形態における、デバッグ対象情報を示す図である。
【図４】本発明の実施の形態における、通信システム１の処理を示すフローチャートである。
【図５】本発明の実施の形態における、データ管理構造体１５０、２５０、及び、Ｅｔｈｅｒｎｅｔパケット４００の例を示す図である。
【発明を実施するための形態】
【００１７】
次に、本発明の実施の形態について説明する。
【００１８】
はじめに、本発明の実施の形態の構成について説明する。図２は、本発明の実施の形態における、通信システム１の構成を示すブロック図である。
【００１９】
通信システム１は、送信装置１００、及び、受信装置２００を含む。送信装置１００と受信装置２００とは、ネットワークにより接続される。
【００２０】
送信装置１００は、アプリケーション１１０、ネットワークスタック１２０（または、第１の上位層処理部）、デバイスドライバ１３０（または、第１の下位層処理部）、及び、ＮＩＣ（Network Interface Card）１４０を含む。
【００２１】
受信装置２００は、アプリケーション２１０、ネットワークスタック２２０（または、第２の上位層処理部）、デバイスドライバ２３０（または、第２の下位層処理部）、及び、ＮＩＣ２４０を含む。
【００２２】
アプリケーション１１０、２１０は、それぞれ、ネットワークスタック１２０、２２０を用いて、相互に通信を行うプログラムである。
【００２３】
ネットワークスタック１２０、２２０は、トランスポート層、及び、ネットワーク層のプロトコルの処理を行うプログラムである。本発明の実施の形態では、トランスポート層、及び、ネットワーク層のプロトコルとして、ＴＣＰ／ＩＰを用いる。なお、トランスポート層、及び、ネットワーク層のプロトコルは、ＴＣＰ／ＩＰ以外の他のプロトコルでもよい。
【００２４】
デバイスドライバ１３０、２３０は、データリンク層のプロトコルの処理、及び、ＮＩＣ１４０、２４０の制御を行うプログラムである。本発明の実施の形態では、データリンク層のプロトコルとして、Ｅｔｈｅｒｎｅｔを用いる。なお、データリンク層のプロトコルは、Ｅｔｈｅｒｎｅｔ以外の他のプロトコルでもよい。
【００２５】
また、ネットワークスタック１２０、２２０、デバイスドライバ１３０、２３０は、それぞれ、送信装置１００、受信装置２００で動作するＯＳ（Operating System）により提供されてもよい。
【００２６】
また、本発明の実施の形態においては、ネットワークスタック１２０、２２０とデバイスドライバ１３０、２３０間のように、プロトコル層を超えて共通に使用可能なデータ管理構造体１５０、２５０に、処理対象のパケットを格納して処理する。ここで、データ管理構造体１５０、２５０には、デバッグマーク領域１５１、２５１が確保される。データ管理構造体１５０、２５０に格納されたパケットがデバッグ対象である場合、デバッグマーク領域１５１、２５１には、装置内デバッグフラグが設定される。
【００２７】
例えば、ＯＳがＬｉｎｕｘ（登録商標）の場合、データ管理構造体１５０、２５０はｓｋｂ（sk_buff構造体）であり、ｓｋｂ内のｃｂ（Control buffer）配列が、デバッグマーク領域１５１、２５１として用いられる。
【００２８】
また、本発明の実施の形態においては、送信装置１００から受信装置２００へ転送されるＥｔｈｅｒｎｅｔパケット４００がデバッグ対象である場合、Ｅｔｈｅｒｎｅｔパケット４００のＶＬＡＮタグ４０１に、装置間デバッグフラグが設定される。
【００２９】
送信装置１００のネットワークスタック１２０は、プロトコル処理部１２１、デバッグ対象記憶部１２２、デバッグ対象判定部１２３、デバッグ情報取得部１２４、及び、デバッグフラグ設定部１２５を含む。
【００３０】
プロトコル処理部１２１は、ＴＣＰ／ＩＰのプロトコルに従った送信処理を行う。プロトコル処理部１２１は、送信処理において、アプリケーション１１０から受信した送信データをペイロードとして含む、ＴＣＰ／ＩＰパケット３００（上位層パケット）を生成する。
【００３１】
デバッグ対象記憶部１２２は、デバッグ対象のパケットの条件を指定するデバッグ対象情報を記憶する。図３は、本発明の実施の形態における、デバッグ対象情報を示す図である。デバッグ対象情報では、デバッグ対象のパケットを、ＴＣＰヘッダやＩＰヘッダの設定値等、トランスポート層、ネットワーク層に係る条件で指定する。
【００３２】
デバッグ対象判定部１２３は、デバッグ対象情報をもとに、処理対象のパケットがデバッグ対象であるかどうかを判定する。
【００３３】
デバッグ情報取得部１２４は、処理対象のパケットがデバッグ対象の場合、ＴＣＰ／ＩＰの送信処理に係るデバッグ情報を取得する。
【００３４】
デバッグフラグ設定部１２５は、処理対象のパケットがデバッグ対象の場合、データ管理構造体１５０のデバッグマーク領域１５１に、装置内デバッグフラグ（例えば「１」）を設定する。
【００３５】
送信装置１００のデバイスドライバ１３０は、プロトコル処理部１３１、デバッグ対象判定部１３３、デバッグ情報取得部１３４、及び、デバッグフラグ設定部１３５を含む。
【００３６】
プロトコル処理部１３１は、Ｅｔｈｅｒｎｅｔのプロトコルに従った送信処理を行う。プロトコル処理部１２１は、送信処理において、ネットワークスタック１２０により生成されたＴＣＰ／ＩＰパケット３００をペイロードとして含む、Ｅｔｈｅｒｎｅｔパケット４００（下位層パケット）を生成し、受信装置２００へ送信する。
【００３７】
デバッグ対象判定部１３３は、データ管理構造体１５０のデバッグマーク領域１５１の値をもとに、処理対象のパケットがデバッグ対象であるかどうかを判定する。
【００３８】
デバッグ情報取得部１３４は、処理対象のパケットがデバッグ対象の場合、Ｅｔｈｅｒｎｅｔの送信処理に係るデバッグ情報を取得する。
【００３９】
デバッグフラグ設定部１３５は、処理対象のパケットがデバッグ対象の場合、Ｅｔｈｅｒｎｅｔパケット４００に、装置間デバッグフラグを示すＶＬＡＮ ＩＤ（例えば「１」）が設定されたＶＬＡＮタグ４０１を挿入する。なお、デバッグフラグ設定部１３５は、ネットワークスタック１２０により指定されたＶＬＡＮ ＩＤが設定されたＶＬＡＮタグ４０１を挿入してもよい。この場合、処理対象のパケットがデバッグ対象であれば、ネットワークスタック１２０は、装置間デバッグフラグを示すＶＬＡＮ ＩＤを指定する。
【００４０】
なお、Ｅｔｈｅｒｎｅｔパケット４００が、通常のＶＬＡＮを用いて転送される場合は、多重ＶＬＡＮの場合のように、当該通常のＶＬＡＮのＶＬＡＮタグに加えて、装置間デバッグフラグを示すＶＬＡＮ ＩＤが設定されたＶＬＡＮタグ４０１が挿入される。
【００４１】
受信装置２００のデバイスドライバ２３０は、プロトコル処理部２３１、デバッグ対象判定部２３３、デバッグ情報取得部２３４、及び、デバッグフラグ設定部２３５を含む。
【００４２】
プロトコル処理部２３１は、Ｅｔｈｅｒｎｅｔのプロトコルに従った受信処理を行う。プロトコル処理部２２１は、受信処理において、送信装置１００から受信したＥｔｈｅｒｎｅｔパケット４００に含まれるＴＣＰ／ＩＰパケット３００を抽出する。
【００４３】
デバッグ対象判定部２３３は、Ｅｔｈｅｒｎｅｔパケット４００のＶＬＡＮタグ４０１の値をもとに、処理対象のパケットがデバッグ対象であるかどうかを判定する。
【００４４】
デバッグ情報取得部２３４は、処理対象のパケットがデバッグ対象の場合、Ｅｔｈｅｒｎｅｔの受信処理に係るデバッグ情報を取得する。
【００４５】
デバッグフラグ設定部２３５は、処理対象のパケットがデバッグ対象の場合、データ管理構造体２５０のデバッグマーク領域２５１に装置内デバッグフラグ（例えば「１」）を設定する。
【００４６】
受信装置２００のネットワークスタック２２０は、プロトコル処理部２２１、デバッグ対象判定部２２３、及び、デバッグ情報取得部２２４を含む。
【００４７】
プロトコル処理部２２１は、ＴＣＰ／ＩＰのプロトコルに従った受信処理を行う。プロトコル処理部１２１は、受信処理において、デバイスドライバ２３０により抽出されたＴＣＰ／ＩＰパケット３００に含まれる受信データを抽出する。
【００４８】
デバッグ対象判定部２２３は、データ管理構造体２５０のデバッグマーク領域２５１の値をもとに、処理対象のパケットがデバッグ対象であるかどうかを判定する。
【００４９】
デバッグ情報取得部２２４は、処理対象のパケットがデバッグ対象の場合、ＴＣＰ／ＩＰの受信処理に係るデバッグ情報を取得する。
【００５０】
デバッグ情報取得部１２４、１３４、２３４、２２４により生成されるデバッグ情報は、送信処理や受信処理が行われた時刻、処理したパケットのヘッダ、ペイロードを含んでいてもよい。また、デバッグ情報は、送信処理や受信情報において検出されたエラー等の情報を含んでいてもよい。デバッグ情報は、図示しない記憶部に保存、または、図示しない表示部や他の装置へ出力される。
【００５１】
なお、送信装置１００、及び、受信装置２００は、それぞれ、ＣＰＵ（Central Processing Unit）とプログラムを記憶した記憶媒体を含み、プログラムに基づく制御によって動作するコンピュータであってもよい。この場合、送信装置１００のＣＰＵが、アプリケーション１１０、ネットワークスタック１２０、及び、デバイスドライバ１３０の機能を実現するためのコンピュータプログラムを実行する。また、受信装置２００のＣＰＵが、アプリケーション２１０、ネットワークスタック２２０、及び、デバイスドライバ２３０の機能を実現するためのコンピュータプログラムを実行する。また、送信装置１００の記憶媒体は、デバッグ対象記憶部１２２の情報を記憶する。また、送信装置１００、受信装置２００の記憶媒体は、それぞれ、上述のデータ管理構造体１５０、２５０を記憶する。
【００５２】
次に、本発明の実施の形態における通信システム１の動作について説明する。
【００５３】
図４は、本発明の実施の形態における、通信システム１の処理を示すフローチャートである。また、図５は、本発明の実施の形態における、データ管理構造体１５０、２５０、及び、Ｅｔｈｅｒｎｅｔパケット４００の例を示す図である。
【００５４】
はじめに、送信装置１００のアプリケーション１１０は、システムコール等により、ネットワークスタック１２０に対してデータの送信を指示する（ステップＳ１０１）。ここで、アプリケーション１１０は、送信データとともに、宛先ＩＰアドレス、宛先ポート番号等を指定する。送信データは、データ管理構造体１５０に格納される。
【００５５】
ネットワークスタック１２０のデバッグ対象判定部１２３は、処理対象のパケットがデバッグ対象であるかどうかを判定する（ステップＳ１０２）。ここで、デバッグ対象判定部１２３は、処理対象のパケットが、デバッグ対象記憶部１２２に記憶されているデバッグ対象情報で指定される条件に合致する場合、デバッグ対象であると判定する。
【００５６】
処理対象のパケットがデバッグ対象の場合（ステップＳ１０２／Ｙ）、デバッグフラグ設定部１２５は、データ管理構造体１５０のデバッグマーク領域１５１に装置内デバッグフラグを設定する（ステップＳ１０３）。プロトコル処理部１２１は、デバッグ情報取得部１２４によるデバッグ情報の取得を行いながら、ＴＣＰ／ＩＰのプロトコルに従った送信処理を行う（ステップＳ１０４）。
【００５７】
例えば、デバッグ対象記憶部１２２に図３のようなデバッグ対象情報が記憶されていると仮定する。そして、アプリケーション１１０により、宛先ＩＰアドレス「192.168.1.2」、宛先ポート「80」のＴＣＰ／ＩＰによるデータ送信が指示された場合、デバッグ対象判定部１２３は、デバッグ対象であると判断する。この場合、デバッグフラグ設定部１２５は、図５のように、デバッグマーク領域１５１に装置内デバッグフラグ「１」を設定する。そして、デバッグ情報取得部１２４は、ＴＣＰ／ＩＰの送信処理に係るデバッグ情報を取得する。
【００５８】
一方、処理対象のパケットがデバッグ対象でない場合（ステップＳ１０２／Ｎ）、プロトコル処理部１２１は、デバッグ情報取得部１２４によるデバッグ情報の取得を行わずに、ＴＣＰ／ＩＰのプロトコルに従った送信処理を行う（ステップＳ１０５）。
【００５９】
プロトコル処理部１２１は、生成されたＴＣＰ／ＩＰパケット３００を含むデータ管理構造体１５０とともに、デバイスドライバ１３０に対してパケット送信を指示する（ステップＳ１０６）。
【００６０】
次に、デバイスドライバ１３０のデバッグ対象判定部１３３は、処理対象のパケットがデバッグ対象であるかどうかを判定する（ステップＳ１０７）。ここで、デバッグ対象判定部１３３は、データ管理構造体１５０のデバッグマーク領域１５１に装置内デバッグフラグが設定されている場合、デバッグ対象であると判定する。
【００６１】
処理対象のパケットがデバッグ対象の場合（ステップＳ１０７／Ｙ）、デバッグフラグ設定部１３５は、Ｅｔｈｅｒｎｅｔパケット４００に、装置間デバッグフラグを設定したＶＬＡＮタグ４０１を挿入する（ステップＳ１０８）。プロトコル処理部１３１は、デバッグ情報取得部１３４によるデバッグ情報の取得を行いながら、Ｅｔｈｅｒｎｅｔのプロトコルに従った送信処理を行う（ステップＳ１０９）。
【００６２】
例えば、図５のように、デバッグマーク領域１５１に装置内デバッグフラグ「１」が設定されている場合、デバッグフラグ設定部１３５は、Ｅｔｈｅｒｎｅｔパケット４００に、装置間デバッグフラグ「ＶＬＡＮ ＩＤ＝１」のＶＬＡＮタグ４０１を挿入する。そして、デバッグ情報取得部１３４は、Ｅｔｈｅｒｎｅｔの送信処理に係るデバッグ情報を取得する。
【００６３】
一方、処理対象のパケットがデバッグ対象でない場合（ステップＳ１０７／Ｎ）、プロトコル処理部１３１は、デバッグ情報取得部１３４によるデバッグ情報の取得を行わずに、Ｅｔｈｅｒｎｅｔのプロトコルに従った送信処理を行う（ステップＳ１１０）。
【００６４】
プロトコル処理部１３１は、ＮＩＣ１４０を介して、受信装置２００へ、生成されたＥｔｈｅｒｎｅｔパケット４００を送信する（ステップＳ１１１）。
【００６５】
例えば、プロトコル処理部１３１は、図５のようなＥｔｈｅｒｎｅｔパケット４００を、受信装置２００へ送信する。
【００６６】
次に、受信装置２００のデバイスドライバ２３０におけるプロトコル処理部２３１は、ＮＩＣ２４０を介して、送信装置１００から、Ｅｔｈｅｒｎｅｔパケット４００を受信する（ステップＳ２０１）。受信したＥｔｈｅｒｎｅｔパケット４００は、データ管理構造体２５０に格納される。
【００６７】
デバッグ対象判定部２３３は、処理対象のパケットがデバッグ対象であるかどうかを判定する（ステップＳ２０２）。ここで、デバッグ対象判定部１３３は、Ｅｔｈｅｒｎｅｔパケット４００のＶＬＡＮタグ４０１に装置間デバッグフラグが設定されている場合、デバッグ対象であると判定する。
【００６８】
処理対象のパケットがデバッグ対象の場合（ステップＳ２０２／Ｙ）、デバッグフラグ設定部２３５は、データ管理構造体２５０のデバッグマーク領域２５１に装置内デバッグフラグを設定する（ステップＳ２０３）。プロトコル処理部２３１は、デバッグ情報取得部２３４によるデバッグ情報の取得を行いながら、Ｅｔｈｅｒｎｅｔのプロトコルに従った受信処理を行う（ステップＳ２０４）。また、プロトコル処理部２３１は、装置間デバッグフラグが設定されていたＶＬＡＮタグ４０１を削除する。
【００６９】
例えば、図５のように、ＶＬＡＮタグ４０１に装置間デバッグフラグ「ＶＬＡＮ ＩＤ＝１」が設定されている場合、デバッグフラグ設定部２３５は、データ管理構造体２５０のデバッグマーク領域２５１に装置内デバッグフラグ「１」を設定する。そして、デバッグ情報取得部２３４は、Ｅｔｈｅｒｎｅｔの受信処理に係るデバッグ情報を取得する。
【００７０】
一方、処理対象のパケットがデバッグ対象でない場合（ステップＳ２０２／Ｎ）、プロトコル処理部２３１は、デバッグ情報取得部２３４によるデバッグ情報の取得を行わずに、Ｅｔｈｅｒｎｅｔのプロトコルに従った受信処理を行う（ステップＳ２０５）。
【００７１】
プロトコル処理部２３１は、抽出されたＴＣＰ／ＩＰパケット３００を含むデータ管理構造体２５０とともに、ネットワークスタック２２０に対してパケット受信を通知する（ステップＳ２０６）。
【００７２】
次に、ネットワークスタック２２０のデバッグ対象判定部２２３は、処理対象のパケットがデバッグ対象であるかどうかを判定する（ステップＳ２０７）。ここで、デバッグ対象判定部２３３は、データ管理構造体２５０のデバッグマーク領域２５１に装置内デバッグフラグが設定されている場合、デバッグ対象であると判定する。
【００７３】
処理対象のパケットがデバッグ対象の場合（ステップＳ２０７／Ｙ）、プロトコル処理部２２１は、デバッグ情報取得部２２４によるデバッグ情報の取得を行いながら、ＴＣＰ／ＩＰのプロトコルに従った受信処理を行う（ステップＳ２０８）。
【００７４】
例えば、図５のように、デバッグマーク領域２５１に装置内デバッグフラグ「１」が設定されている場合、デバッグ情報取得部２２４は、ＴＣＰ／ＩＰの受信処理に係るデバッグ情報を取得する。
【００７５】
一方、処理対象のパケットがデバッグ対象でない場合（ステップＳ２０７／Ｎ）、プロトコル処理部２２１は、デバッグ情報取得部２２４によるデバッグ情報の取得を行わずに、ＴＣＰ／ＩＰのプロトコルに従った受信処理を行う（ステップＳ２０９）。
【００７６】
プロトコル処理部２２１は、システムコール等により、抽出された受信データとともに、アプリケーション１１０に対してデータの受信を通知する（ステップＳ２１０）。
【００７７】
アプリケーション１１０は、受信データを処理する（ステップＳ２１１）。
【００７８】
以上により、本発明の実施の形態の動作が完了する。
【００７９】
次に、本発明の実施の形態の特徴的な構成を説明する。図１は、本発明の実施の形態の特徴的な構成を示すブロック図である。
【００８０】
通信システム１は、送信装置１００、及び、受信装置２００を含む。
【００８１】
送信装置１００は、デバイスドライバ１３０（第１の下位層処理部）を含む。デバイスドライバ１３０は、上位層に係る条件で指定されたデバッグ対象の通信における下位層パケットの所定の領域に装置間デバッグフラグを設定し、受信装置２００に送信する。
【００８２】
受信装置２００は、デバイスドライバ２３０（第２の下位層処理部）を含む。デバイスドライバ２３０は、送信装置１００から所定の領域に装置間デバッグフラグが設定されている下位層パケットを受信した場合、当該下位層パケットに対する下位層の受信処理に係るデバッグ情報を取得する。
【００８３】
本発明の実施の形態によれば、受信装置２００において、上位層に係る条件で指定された特定の通信に関する、下位層のデバッグ情報を取得できる。その理由は、送信装置１００が、上位層に係る条件で指定されたデバッグ対象の通信における下位層パケットに装置間デバッグフラグを設定し、受信装置２００が、装置間デバッグフラグにより、デバッグ対象の通信における下位層パケットを識別するためである。これにより、受信装置２００のデバイスドライバ２３０は、上位層のプロトコル解析処理を行うことなく、デバッグ対象の通信における下位層パケットを識別し、下位層のデバッグ情報を取得できる。
【００８４】
また、本発明の実施の形態によれば、上位層に係る条件で指定された特定の通信に関する、複数のプロトコル層に跨った一連の処理のデバッグ情報を取得できる。その理由は、デバッグ対象の通信におけるパケットに対して、送信装置１００、受信装置２００の内部では、装置内デバッグフラグ、送信装置１００と受信装置２００間では、上述の装置間デバッグフラグが付与されるためである。これにより、送信装置１００、及び、受信装置２００のネットワークスタック１２０、２２０、及び、デバイスドライバ１３０、２３０は、それぞれ、デバッグ対象のパケットを識別でき、特定の通信に関する、上位層、下位層のデバッグ情報を取得できる。
【００８５】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【００８６】
例えば、本発明の実施の形態では、Ｅｔｈｅｒｎｅｔパケット４００のＶＬＡＮタグ４０１に、装置間デバッグフラグを設定した。しかしながら、これに限らず、デバイスドライバ２３０が抽出できれば、装置間デバッグフラグは、Ｅｔｈｅｒｎｅｔパケット４００のｔｙｐｅフィールド等、ＶＬＡＮタグ４０１以外の領域に設定されてもよい。また、装置間デバッグフラグは、Ｅｔｈｅｒｎｅｔパケット４００をさらにカプセル化したときの、カプセル化ヘッダに設定されてもよい。
【００８７】
また、本発明の実施の形態では、装置内デバッグフラグや装置間デバッグフラグの値として、「１」を設定した。しかしながら、これに限らず、複数の異なる通信をデバッグ対象として識別する必要がある場合は、装置内デバッグフラグや装置間デバッグフラグの値として、複数の値が定義されてもよい。
【００８８】
また、本発明の実施の形態では、通信システム１が送信装置１００と受信装置２００とを含む場合について説明した。しかしながら、これに限らず、通信システム１は、送信装置１００の各機能と受信装置２００の各機能とを含む、通信装置を複数含んでいてもよい。
【符号の説明】
【００８９】
１    通信システム
１００    送信装置
１１０    アプリケーション
１２０    ネットワークスタック
１２１    プロトコル処理部
１２２    デバッグ対象記憶部
１２３    デバッグ対象判定部
１２４    デバッグ情報取得部
１２５    デバッグフラグ設定部
１３０    デバイスドライバ
１３１    プロトコル処理部
１３３    デバッグ対象判定部
１３４    デバッグ情報取得部
１３５    デバッグフラグ設定部
１４０    ＮＩＣ
１５０    データ管理構造体
１５１    デバッグマーク領域
２００    受信装置
２１０    アプリケーション
２２０    ネットワークスタック
２２１    プロトコル処理部
２２３    デバッグ対象判定部
２２４    デバッグ情報取得部
２３０    デバイスドライバ
２３１    プロトコル処理部
２３３    デバッグ対象判定部
２３４    デバッグ情報取得部
２３５    デバッグフラグ設定部
２４０    ＮＩＣ
２５０    データ管理構造体
２５１    デバッグマーク領域
３００    ＴＣＰ／ＩＰパケット
４００    Ｅｔｈｅｒｎｅｔパケット
４０１    ＶＬＡＮタグ
【図１】
2015153150.tif 000003
【図２】
2015153150.tif 000004
【図３】
2015153150.tif 000005
【図４】
2015153150.tif 000006
【図５】
2015153150.tif 000007