(57)【要約】【課題】プロセッサの処理負担を軽減させるとともに様々なプロトコルを使用することができる。【解決手段】送信データに対して、所定のプロトコルで送信するためのプロトコル処理を行うと共に、当該送信データを前記所定のプロトコルで送信を行うＴＯＥと、送信データに対して、ソケットからの要求に従ったプロトコル処理を行うプロトコル解析処理部と、プロトコル処理が行われた送信データを送信するネットワークデバイスと、ソケットからの送信データの送信要求が、ＴＯＥでプロトコル処理可能な所定のプロトコルを用いた送信であるか否かを判断するプロトコル判断部と、所定のプロトコルを用いた送信であると判断された場合に、送信データをＴＯＥに対して受け渡すＴＯＥ受渡部と、所定のプロトコル以外と判断された場合に、送信データをプロトコル層に対して受け渡すプロトコル層受渡部と、を備える。【選択図】        図２
2009053770.tif 000002
【特許請求の範囲】
【請求項１】
送信データに対して、所定のプロトコルで送信するためのプロトコル処理を行うと共に、当該送信データを前記所定のプロトコルで送信を行う、ハードウェア結線された回路であるハードウェア通信デバイス制御部と、
送信データに対して、ネットワークプログラム毎に割り当てられるソケットからの要求に従ったプロトコル処理を行う、ソフトウェアで実現されたプロトコル処理部と、
前記プロトコル処理部により前記プロトコル処理が行われた前記送信データを送信する通信デバイス制御部と、
前記ソケットからの送信データの送信要求が、前記ハードウェア通信デバイス制御部でプロトコル処理可能な前記所定のプロトコルを用いた送信であるか否かを判断するプロトコル判断部と、
前記所定のプロトコルを用いた送信であると判断された場合に、前記ソケットから送信要求された前記送信データを、前記ハードウェア送信デバイス制御部に対して受け渡すハードウェアデバイス受渡部と、
前記所定のプロトコル以外と判断された場合に、前記ソケットから送信要求された前記送信データを、前記プロトコル処理部に対して受け渡すプロトコル受渡部と、
を備えることを特徴とする通信制御装置。
【請求項２】
前記プロトコル処理部は、前記プロトコル処理部で前記送信データに対して前記ソケットからの要求に従ったプロトコル処理を行った後、当該送信データの送信先が前記ハードウェア送信デバイス制御部か、前記通信デバイス制御部か判断し、判断結果に従って前記ハードウェア送信デバイス制御部又は、通信デバイス制御部に対して前記送信データを受け渡すこと、
を特徴とする請求項１に記載の通信制御装置。
【請求項３】
前記ハードウェア通信デバイス制御部は、外部のネットワークに対して送信を行うハードウェア通信デバイスを複数備え、
前記ハードウェア通信デバイスで前記外部のネットワークで送信が許可されているアドレス情報を保持する、前記ハードウェア通信デバイス毎に複数個存在するハードウェアインターフェース情報保持部と、
前記プロトコル判断部で所定のプロトコルを用いて送信を行うと判断した場合に、送信を行う前記ハードウェア通信デバイスを、前記ハードウェアインターフェース情報保持部が保持する前記アドレス情報に基づいて特定するハードウェア特定部と、
をさらに備えることを特徴とする請求項１又は２に記載の通信制御装置。
【請求項４】
前記通信デバイス制御部は、外部のネットワークに対して送信を行う通信デバイスを複数備え、
ネットワークデバイスで前記外部のネットワークで送信が許可されているアドレス情報を保持する、前記ネットワークデバイス毎に複数個存在するインターフェース情報保持部と、
前記プロトコル処理部でプロトコル処理が行われた後、前記送信データの送信に用いる前記ハードウェア通信デバイス又は前記通信デバイスを、前記インターフェース情報保持部及び前記ハードウェアインターフェース情報保持部が保持する前記アドレス情報に基づいて特定する特定部と、
をさらに備えることを特徴とする請求項３に記載の通信制御装置。
【請求項５】
前記インターフェース情報保持部を指し示すポインタ情報と、及び前記ハードウェアインターフェース情報保持部を指し示すポインタ情報と、を記憶するインターフェース管理記憶部と、をさらに備え、
前記特定部は、インターフェース管理記憶部に記憶された前記ポインタ情報が指し示す前記インターフェース情報保持部及び前記ハードウェアインターフェース情報保持部が保持する前記アドレス情報に基づいて特定すること、
を特徴とする請求項４に記載の通信制御装置。
【請求項６】
前記所定のプロトコルが、ＴＣＰ、ＵＤＰ、ＩＰ及びＩＣＭＰのうちいずれか一つ以上であることを特徴とする請求項１乃至５のいずれか一つに記載の通信制御装置。
【請求項７】
外部のネットワークから受信データを受信する制御を行うと共に、受信した前記受信データを所定のプロトコルで解析処理可能か否か判断し、解析可能と判断した場合に前記所定のプロトコルによる解析処理し、ソケットに対してプロトコル解析処理後の前記受信データを受け渡す、ハードウェア結線された回路であるハードウェア通信デバイス制御部と、
前記ハードウェア通信デバイス制御部で前記所定のプロトコルで解析処理可能ではないと判断した場合に前記受信データを取得するハードウェア通信インターフェース部と、
前記ハードウェア通信インターフェース部が取得した前記受信データに対してプロトコル解析処理し、ソケットに対してプロトコル解析処理後の前記受信データを受け渡す、ソフトウェアで実現可能なプロトコル処理部と、
を備えることを特徴とする通信制御装置。
【請求項８】
ネットワークプログラム毎に割り当てられるソケットからの送信データの送信要求が、ハードウェア結線された回路であるハードウェア送信デバイス制御部でプロトコル処理可能な所定のプロトコルを用いた送信であるか否かを判断するプロトコル判断ステップと、
前記所定のプロトコルを用いた送信であると判断された場合に、前記ソケットから送信要求された前記送信データを、前記ハードウェア送信デバイス制御部に対して受け渡すハードウェアデバイス受渡ステップと、
前記ハードウェア通信デバイス制御部が、送信データに対して、前記所定のプロトコルで送信するためのプロトコル処理を行うと共に、当該送信データを前記所定のプロトコルで送信を行うハードウェア通信デバイス制御ステップと、
前記プロトコル判断ステップにより前記所定のプロトコル以外と判断された場合に、前記ソケットから送信要求された前記送信データを、プロトコル処理部に対して受け渡すプロトコル受渡ステップと、
前記プロトコル処理部が、前記送信データに対して、前記ソケットからの要求に従ったプロトコル処理を行うプロトコル処理ステップと、
前記プロトコル処理が行われた前記送信データを送信する通信デバイス制御ステップと、
を有することを特徴とする通信制御方法。
【請求項９】
前記プロトコル処理ステップは、前記プロトコル処理ステップで前記送信データに対して前記ソケットからの要求に従ったプロトコル処理を行った後、当該送信データの送信先が前記ハードウェア送信デバイス制御部であるか否か判断し、前記ハードウェア送信デバイス制御部と判断した場合に、前記ハードウェア送信デバイス制御部に前記送信データを受け渡すこと、
を特徴とする請求項８に記載の通信制御方法。
【請求項１０】
前記ハードウェア通信デバイス制御ステップは、外部のネットワークに対して送信を行う複数のハードウェア通信デバイスから、前記送信データを送信し、
前記ハードウェア通信デバイス毎に複数個存在するハードウェアインターフェース情報保持部が、前記ハードウェア通信デバイスで前記外部のネットワークで送信が許可されているアドレス情報を保持するハードウェアインターフェース情報保持ステップと、
前記プロトコル判断ステップで所定のプロトコルを用いて送信を行うと判断した場合に、送信を行う前記ハードウェア通信デバイスを、前記ハードウェアインターフェース情報保持部が保持する前記アドレス情報に基づいて特定するハードウェア特定ステップと、
をさらに有することを特徴とする請求項８又は９に記載の通信制御方法。
【請求項１１】
前記通信デバイス制御ステップは、外部のネットワークに対して送信を行う複数の通信デバイスから、前記送信データを送信し、
前記ネットワークデバイス毎に複数個存在するインターフェース情報保持部が、前記ネットワークデバイスで前記外部のネットワークで送信が許可されているアドレス情報を保持するインターフェース情報保持ステップと、
前記プロトコル処理ステップでプロトコル処理が行われた後、前記送信データの送信に用いる前記ハードウェア通信デバイス又は前記通信デバイスを、前記インターフェース情報保持部及び前記ハードウェアインターフェース情報保持部が保持する前記アドレス情報に基づいて特定する特定ステップと、
をさらに有することを特徴とする請求項１０に記載の通信制御方法。
【請求項１２】
前記インターフェース情報保持部を指し示すポインタ情報と、及び前記ハードウェアインターフェース情報保持部を指し示すポインタ情報と、をインターフェース管理記憶部に記憶するインターフェース管理記憶ステップと、をさらに有し、
前記特定ステップは、インターフェース管理記憶部に記憶された前記ポインタ情報が指し示す前記インターフェース情報保持部及び前記ハードウェアインターフェース情報保持部が保持する前記アドレス情報に基づいて特定すること、
を特徴とする請求項１１に記載の通信制御方法。
【請求項１３】
前記所定のプロトコルが、ＴＣＰ、ＵＤＰ、ＩＰ及びＩＣＭＰのうちいずれか一つ以上であることを特徴とする請求項８乃至１２のいずれか一つに記載の通信制御方法。
【請求項１４】
ハードウェア結線された回路であるハードウェア通信デバイス制御部が、外部のネットワークから受信データを受信する制御を行うと共に、受信した前記受信データを所定のプロトコルで解析処理可能か否か判断し、解析可能と判断した場合に前記所定のプロトコルによる解析処理し、ソケットに対してプロトコル解析処理後の前記受信データを受け渡すハードウェア通信デバイス制御ステップと、
前記ハードウェア通信デバイス制御ステップで前記所定のプロトコルで解析処理可能ではないと判断した場合に前記受信データを取得するハードウェア通信インターフェースステップと、
前記ハードウェア通信インターフェースステップにより取得された前記受信データに対してプロトコル解析処理し、ソケットに対してプロトコル解析処理後の前記受信データを受け渡すプロトコル処理ステップと、
を備えることを特徴とする通信制御方法。
【請求項１５】
ネットワークプログラム毎に割り当てられるソケットからの送信データの送信要求が、ハードウェア結線された回路であるハードウェア送信デバイス制御部でプロトコル処理可能な所定のプロトコルを用いた送信であるか否かを判断するプロトコル判断ステップと、
前記所定のプロトコルを用いた送信であると判断された場合に、前記ソケットから送信要求された前記送信データを、前記ハードウェア送信デバイス制御部に対して受け渡すハードウェアデバイス受渡ステップと、
前記ハードウェア通信デバイス制御部が、送信データに対して、前記所定のプロトコルで送信するためのプロトコル処理を行うと共に、当該送信データを前記所定のプロトコルで送信を行うハードウェア通信デバイス制御ステップと、
前記プロトコル判断ステップにより前記所定のプロトコル以外と判断された場合に、前記ソケットから送信要求された前記送信データを、プロトコル処理部に対して受け渡すプロトコル受渡ステップと、
前記プロトコル処理部が、前記送信データに対して、前記ソケットからの要求に従ったプロトコル処理を行うプロトコル処理ステップと、
前記プロトコル処理が行われた前記送信データを送信する通信デバイス制御ステップと、
をコンピュータに実行させる通信制御プログラム。
【請求項１６】
ハードウェア結線された回路であるハードウェア通信デバイス制御部が、外部のネットワークから受信データを受信する制御を行うと共に、受信した前記受信データを所定のプロトコルで解析処理可能か否か判断し、解析可能と判断した場合に前記所定のプロトコルによる解析処理し、ソケットに対してプロトコル解析処理後の前記受信データを受け渡すハードウェア通信デバイス制御ステップと、
前記ハードウェア通信デバイス制御ステップで前記所定のプロトコルで解析処理可能ではないと判断した場合に前記受信データを取得するハードウェア通信インターフェースステップと、
前記ハードウェア通信インターフェースステップにより取得された前記受信データに対してプロトコル解析処理し、ソケットに対してプロトコル解析処理後の前記受信データを受け渡すプロトコル処理ステップと、
をコンピュータに実行させる通信制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＴＯＥを用いて通信制御を行う通信制御装置、通信制御方法及び通信制御プログラムに関するものである。
【背景技術】
【０００２】
従来から、インターネットを含むネットワーク環境において、ネットワークのハイスピード化及び複雑化が進む傾向にある。このような傾向になるに従い、当該ネットワーク環境で使用されるネットワークサーバでは、本来目的とするデータ処理以外に、ネットワーク経由のデータを送受信するための処理が多くなり、処理負担が大きくなる傾向にある。
【０００３】
近年、このネットワークサーバにおけるネットワーク処理の負荷低減するために、ＴＯＥ（ＴＣＰ／ＩＰオフロードエンジン）という技術が提案されている。このＴＯＥという技術とは、ＣＰＵに対して高い負荷をかけるネットワークプロトコル処理及びネットワークプロトコルのチェックサム処理等をハードウェア化するものである。そして、当該ハードウェアがネットワーク処理の一部又は全部を行うことで、ネットワークサーバのＣＰＵの負荷を低減するものである。
【０００４】
例えば、特許文献１に記載された技術では、ユーザからの要求を処理するホストプロセッサの他に、ＴＣＰプロトコル処理をオフロード可能とするプロセッサを備えたサーバ装置が提案されている。
【０００５】
このようにＴＯＥを用いてハードウェア化を行った場合、ネットワークの階層モデルは、図１６に示すような構造となる。図１６に示すように、ソケット層より下は、ハードウェアにより実現された一つの層となっている。
【０００６】
このようなＴＯＥの技術は、ハードウェア化しているために、既存のプロトコル層のプロトコルを全てサポートすることは現実的ではない。このため、ＴＯＥは、現在のところＴＣＰ、ＵＤＰ、ＩＰ及びＩＣＭＰのプロトコルのみサポートしている。これらプロトコルの処理を行う場合には、ハードウェアオフロードにより、ＣＰＵの処理負担を軽減させることができる。
【０００７】
【特許文献１】特開２００５−３１６６２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、現在のＰＣアーキテクチャにおいて、ネットワークを通信する際に使用するプロトコルは、上述したプロトコルだけではない。例えば、ＯＳにＮｅｔＢＳＤを使用する場合、ＡｐｐｌｅＴａｌｋ（登録商標）など様々なプロトコルがサポートされている。
【０００９】
このように、ＮｅｔＢＳＤカーネルで、様々なプロトコルがサポート可能なのは、ネットワークの階層モデルが、ネットワークプログラムの下に、ソケット層、プロトコル層、インターフェース層及びネットワークデバイスで構成されると共に、各階層がソフトウェアにより実現されているためである。
【００１０】
つまり、ＴＯＥを使用した装置では、ハードウェア的に結線されたネットワークデバイスを使用することでＣＰＵの処理負担を軽減させることはできるが、このために様々なネットワークプロトコルを使用できないという問題がある。
【００１１】
本発明は、上記に鑑みてなされたものであって、プロセッサの処理負担を軽減させるとともに様々なプロトコルを使用することができる通信制御装置、通信制御方法及び通信制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するために、本発明にかかる通信制御装置は、送信データに対して、所定のプロトコルで送信するためのプロトコル処理を行うと共に、当該送信データを前記所定のプロトコルで送信を行う、ハードウェア結線された回路であるハードウェア通信デバイス制御部と、送信データに対して、ネットワークプログラム毎に割り当てられるソケットからの要求に従ったプロトコル処理を行う、ソフトウェアで実現されたプロトコル処理部と、前記プロトコル処理部により前記プロトコル処理が行われた前記送信データを送信する通信デバイス制御部と、前記ソケットからの送信データの送信要求が、前記ハードウェア通信デバイス制御部でプロトコル処理可能な前記所定のプロトコルを用いた送信であるか否かを判断するプロトコル判断部と、前記所定のプロトコルを用いた送信であると判断された場合に、前記ソケットから送信要求された前記送信データを、前記ハードウェア送信デバイス制御部に対して受け渡すハードウェアデバイス受渡部と、前記所定のプロトコル以外と判断された場合に、前記ソケットから送信要求された前記送信データを、前記プロトコル処理部に対して受け渡すプロトコル受渡部と、を備える。
【００１３】
また、本発明にかかる通信制御装置は、外部のネットワークから受信データを受信する制御を行うと共に、受信した前記受信データを所定のプロトコルで解析処理可能か否か判断し、解析可能と判断した場合に前記所定のプロトコルによる解析処理し、ソケットに対してプロトコル解析処理後の前記受信データを受け渡す、ハードウェア結線された回路であるハードウェア通信デバイス制御部と、前記ハードウェア通信デバイス制御部で前記所定のプロトコルで解析処理可能ではないと判断した場合に前記受信データを取得するハードウェア通信インターフェース部と、前記ハードウェア通信インターフェース部が取得した前記受信データに対してプロトコル解析処理し、ソケットに対してプロトコル解析処理後の前記受信データを受け渡す、ソフトウェアで実現可能なプロトコル処理部と、を備えることを特徴とする。
【００１４】
また、本発明にかかる通信制御方法は、ネットワークプログラム毎に割り当てられるソケットからの送信データの送信要求が、ハードウェア結線された回路であるハードウェア送信デバイス制御部でプロトコル処理可能な所定のプロトコルを用いた送信であるか否かを判断するプロトコル判断ステップと、前記所定のプロトコルを用いた送信であると判断された場合に、前記ソケットから送信要求された前記送信データを、前記ハードウェア送信デバイス制御部に対して受け渡すハードウェアデバイス受渡ステップと、前記ハードウェア通信デバイス制御部が、送信データに対して、前記所定のプロトコルで送信するためのプロトコル処理を行うと共に、当該送信データを前記所定のプロトコルで送信を行うハードウェア通信デバイス制御ステップと、前記プロトコル判断ステップにより前記所定のプロトコル以外と判断された場合に、前記ソケットから送信要求された前記送信データを、プロトコル処理部に対して受け渡すプロトコル受渡ステップと、前記プロトコル処理部が、前記送信データに対して、前記ソケットからの要求に従ったプロトコル処理を行うプロトコル処理ステップと、前記プロトコル処理が行われた前記送信データを送信する通信デバイス制御ステップと、を有することを特徴とする。
【００１５】
また、本発明にかかる通信制御方法は、ハードウェア結線された回路であるハードウェア通信デバイス制御部が、外部のネットワークから受信データを受信する制御を行うと共に、受信した前記受信データを所定のプロトコルで解析処理可能か否か判断し、解析可能と判断した場合に前記所定のプロトコルによる解析処理し、ソケットに対してプロトコル解析処理後の前記受信データを受け渡すハードウェア通信デバイス制御ステップと、前記ハードウェア通信デバイス制御ステップで前記所定のプロトコルで解析処理可能ではないと判断した場合に前記受信データを取得するハードウェア通信インターフェースステップと、前記ハードウェア通信インターフェースステップにより取得された前記受信データに対してプロトコル解析処理し、ソケットに対してプロトコル解析処理後の前記受信データを受け渡すプロトコル処理ステップと、を備えることを特徴とする。
【００１６】
また、本発明にかかる通信制御プログラムは、ネットワークプログラム毎に割り当てられるソケットからの送信データの送信要求が、ハードウェア結線された回路であるハードウェア送信デバイス制御部でプロトコル処理可能な所定のプロトコルを用いた送信であるか否かを判断するプロトコル判断ステップと、前記所定のプロトコルを用いた送信であると判断された場合に、前記ソケットから送信要求された前記送信データを、前記ハードウェア送信デバイス制御部に対して受け渡すハードウェアデバイス受渡ステップと、前記ハードウェア通信デバイス制御部が、送信データに対して、前記所定のプロトコルで送信するためのプロトコル処理を行うと共に、当該送信データを前記所定のプロトコルで送信を行うハードウェア通信デバイス制御ステップと、前記プロトコル判断ステップにより前記所定のプロトコル以外と判断された場合に、前記ソケットから送信要求された前記送信データを、プロトコル処理部に対して受け渡すプロトコル受渡ステップと、前記プロトコル処理部が、前記送信データに対して、前記ソケットからの要求に従ったプロトコル処理を行うプロトコル処理ステップと、前記プロトコル処理が行われた前記送信データを送信する通信デバイス制御ステップと、をコンピュータに実行させる。
【００１７】
また、本発明にかかる通信制御プログラムは、ハードウェア結線された回路であるハードウェア通信デバイス制御部が、外部のネットワークから受信データを受信する制御を行うと共に、受信した前記受信データを所定のプロトコルで解析処理可能か否か判断し、解析可能と判断した場合に前記所定のプロトコルによる解析処理し、ソケットに対してプロトコル解析処理後の前記受信データを受け渡すハードウェア通信デバイス制御ステップと、前記ハードウェア通信デバイス制御ステップで前記所定のプロトコルで解析処理可能ではないと判断した場合に前記受信データを取得するハードウェア通信インターフェースステップと、前記ハードウェア通信インターフェースステップにより取得された前記受信データに対してプロトコル解析処理し、ソケットに対してプロトコル解析処理後の前記受信データを受け渡すプロトコル処理ステップと、をコンピュータに実行させる。
【発明の効果】
【００１８】
本発明によれば、ハードウェア通信デバイス制御部でプロトコル処理と所定のプロトコルで送信を行うことでプロセッサの処理負担を軽減させるとともに、ソフトウェアでプロトコル処理を行うことで様々なプロトコルを使用可能という効果を奏する。
【００１９】
本発明によれば、ハードウェア通信デバイス制御部でプロトコル解析処理と所定のプロトコルで受信を行うことでプロセッサの処理負担を軽減させるとともに、ソフトウェアでプロトコル解析処理を行うことで様々なプロトコルを使用可能という効果を奏する。
【発明を実施するための最良の形態】
【００２０】
以下に添付図面を参照して、この発明にかかる通信制御装置、通信制御方法及び通信制御プログラムの最良な実施の形態を詳細に説明する。なお、以下に示す実施の形態では通信制御装置を情報処理装置に適用した例について説明する。
【００２１】
図１は、実施の形態にかかる情報処理装置１００のハードウェア構成を示した図である。図１に示すように情報処理装置１００は、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、ＨＤＤ１０４と、ＴＯＥ１０５と、シリアル回線Ｉ／Ｆ１０６と、無線ＬＡＮ＿Ｉ／Ｆ１０７と、ＵＳＢ＿Ｉ／Ｆ１０８とを備えており、通常のコンピュータを利用したハードウェア構成となっている。
【００２２】
そして、ＲＯＭ１０２又はＨＤＤ１０４に格納されたプログラムが、ＲＡＭ１０３上にロードされる。そして、ＣＰＵ１０１がロードされたプログラムを用いて処理を行うことになる。
【００２３】
このＣＰＵ１０１は、当該プログラムを用いて、シリアル回線Ｉ／Ｆ１０６、無線ＬＡＮ＿Ｉ／Ｆ１０７及びＵＳＢ＿Ｉ／Ｆ１０８を使用した通信制御を行う。
【００２４】
ＴＯＥ１０５に用いられている技術は、ＣＰＵに対して高い負荷をかけるネットワークプロトコル処理及びネットワークプロトコルのチェックサム処理等をハードウェア化するものである。そして、当該ハードウェアがネットワーク処理の一部又は全部を行うことで、ＣＰＵ１０１の負荷を低減する。
【００２５】
ＴＯＥ１０５は、有線ＬＡＮ＿Ｉ／Ｆ１０９を備え、有線ＬＡＮ＿Ｉ／Ｆ１０９を使用した通信制御を行うと共に、受信したデータをハードウェアで所定のプロトコルの解析をした後、例えばＲＡＭ１０３に格納する。また、ＴＯＥ１０５では、有線ＬＡＮ＿Ｉ／Ｆ１０９から複数のネットワークデバイス(以下、ＴＯＥネットワークデバイスと称す)が接続されていることを想定している。
【００２６】
また、ＴＯＥ１０５は、ＴＣＰ／ＵＤＰ／ＩＣＭＰ／ＩＰ以外のプロトコルのデータを受信した場合、これを検知し、受信したデータと共に外部に処理を要求する機能を持つものとする。また、有線ＬＡＮ＿Ｉ／Ｆ１０９を介して接続されるＴＯＥネットワークデバイスは、ＴＯＥでプロトコル解析を行う構成以外から、直接送信データを受信できる機構を備えているものとする。
【００２７】
このように、本実施の形態にかかる情報処理装置１００においては、ＴＯＥ１０５による通信制御と、シリアル回線Ｉ／Ｆ１０６、無線ＬＡＮ＿Ｉ／Ｆ１０７及びＵＳＢ＿Ｉ／Ｆ１０８と、による通信制御とが行われる。次に情報処理装置１００のソフトウェア構成について説明する。
【００２８】
図２は情報処理装置１００のネットワークをレイヤー構造で示した図である。図２に示すように、情報処理装置１００は、ユーザアプリケーション層２０１、ソケット層２０２、ラッパー層２０３と、プロトコル層２０４と、インターフェース層２０５と、ネットワークデバイス層２０６と、ＴＯＥインターフェース層２０７と、ＴＯＥ２０８とを備えている。
【００２９】
情報処理装置１００では、ソケット層２０２、プロトコル層２０４、インターフェース層２０５について、従来から使用されているものをほぼ流用可能とする。これにより、広範に普及しているＯＳのカーネルに実装されたネットワーク処理を可能とする。そして、情報処理装置１００では、新規にラッパー層２０３及びＴＯＥインターフェース層２０７を追加することで、従来のソフトウェアによるネットワーク処理と、ＴＯＥ２０８によるハードウェアオフロードとの共存を可能としている。
【００３０】
ユーザアプリケーション層２０１は、利用者が使用可能なネットワークプログラム２１１ａ〜ｃを備える。そして、各ネットワークプログラム２１１ａ〜ｃは、通信を行う際に後述するソケット層２０２に対して、通信処理を要求する。
【００３１】
ソケット層２０２は、ネットワーク接続に関する情報をまとめたディスクリプタ（記述子）であるソケット２１２ａ〜ｃを保持する層である。ソケット層２０２はユーザアプリケーション層２０１のネットワークプログラム２１１ａ〜ｃに対し、プロトコル層２０４へのインターフェースを隠蔽し、ネットワーク接続のサービスのエンドポイントを提供する。
【００３２】
ソケット２１２ａ〜ｃは、ユーザアプリケーション層２０１のネットワークプログラム２１１ａ〜ｃ毎に一つ以上作成される。また、ソケットは作成される際、通信に用いるプロトコルが設定される。このようにして、ソケット２１２ａ〜ｃは、上述したネットワークプログラム２１１ａ〜ｃとの関連付けと、送受信の対象となるアドレス、送受信に用いるプロトコル情報、送受信するデータに関する情報、送受信に用いるルーティング情報を保持する。そして、ソケット２１２ａ〜ｃは、ネットワークから所定のＩＰアドレスへの送信する指示や、所定のＩＰアドレスからの受信待ちする指示を受け付けた場合に、後述するラッパー層２０３に、当該指示を送信する。そして、送信先のラッパー層２０３からは、各ソケット２１２ａ〜ｃが保持しているプロトコル情報又はＩＰアドレス等を参照可能とする。
【００３３】
なお、このソケット層２０２で使用されるソケットＡＰＩはネットワークプログラミングのデファクトスタンダードとなっており、ＯＳを問わず使用可能である。
【００３４】
ラッパー層２０３は、プロトコル判断部２２１と、送信側ＴＯＥオブジェクト特定部２２２と、プロトコル層受渡部２３４と、ＴＯＥ受渡部２３５と、を備えると共に、ソケット層２０２に対して既存のＩ／Ｆを保持している。また、ラッパー層２０３は、ソケット層２０２からデータの送信要求が行われた場合に、当該データの送信に使用するプロトコルに応じて、プロトコル層２０４にプロトコル処理を要求するか、ＴＯＥ２０８にプロトコル処理を要求するか切り替えを行う。
【００３５】
プロトコル判断部２２１は、ソケット２１２ａ〜ｃから送信要求が行われた場合、当該ソケット２１２ａ〜ｃが保持するプロトコル情報から、ＴＯＥ２０８でプロトコル処理可能か否か判断する。
【００３６】
プロトコル層受渡部２３４は、プロトコル判断部２２１がＴＯＥ２０８でプロトコル処理可能ではないと判断した場合、プロトコル層２０４に送信対象であるデータを受け渡すと共に、当該データのプロトコル処理を要求する。
【００３７】
一方、プロトコル判断部２２１で、ＴＯＥ２０８でプロトコル処理可能であると判断した場合、さらに送信側ＴＯＥオブジェクト特定部２２２が、ＴＯＥインターフェース管理テーブル２２９を使用してＴＯＥインターフェースオブジェクト２３１が保持する情報を順に参照して、ＴＯＥ２０８内のネットワークデバイス２３３ａ〜ｂでデータの送信が可能か否か判断する。なお、詳細な処理については後述する。
【００３８】
ＴＯＥ受渡部２３５は、送信側ＴＯＥオブジェクト特定部２２２がＴＯＥ２０８内のネットワークデバイス２３３ａ〜ｂでデータの送信が可能と判断した場合、ＴＯＥ受渡部２３５に送信対象であるデータを受け渡すと共に、当該データのプロトコル処理を要求する。
【００３９】
ＴＯＥインターフェース管理テーブル２２９は、後述するＴＯＥインターフェースオブジェクト２３１を特定するための情報（オブジェクトのポインタ）が格納される。なお、本実施の形態では、この各オブジェクトを特定するための情報としてポインタを利用したが、ハッシュなど他の情報を用いても良い。つまり、当該ＴＯＥインターフェース管理テーブル２２９を参照することで、ＴＯＥインターフェースオブジェクト２３１にアクセスすることが可能になる。また、このＴＯＥインターフェース管理テーブル２２９は、ラッパー層２０３及びＴＯＥインターフェース層２０７から参照可能にする。
【００４０】
プロトコル層２０４は、プロトコル解析処理部２２３と、プロトコル別受信バッファ２２４と、オブジェクト特定部２２５とを備え、上位に存在するソケット層２０２とのデータの送受信制御、下位に存在するインターフェース層２０５とのデータの送受信制御を行う。また、プロトコル層２０４により、ソケット層２０２及びインターフェース層２０７は完全に分離され、互いに意識することなく処理を行うことができる。
【００４１】
プロトコル別受信バッファ２２４は、インターフェース層２０５又はＴＯＥインターフェース層２０７から受信した受信データを、プロトコル別に一時的に記憶する。
【００４２】
プロトコル解析処理部２２３は、通信データを送信するためのプロトコル処理を行う。プロトコル処理とは、任意のプロトコルで通信データを送信するために、当該通信データから、当該プロトコルのフォーマットのよるパケットを生成する等の処理をいう。
【００４３】
また、プロトコル解析処理部２２３は、受信したデータに対してプロトコル解析処理を行う。このプロトコル解析処理とは、プロトコル別受信バッファ２２４に記憶されたデータ（パケット）を読み出して、当該プロトコルのフォーマットによるパケットから、格納されていたデータを取得する等の処理をいう。
【００４４】
また、プロトコル解析処理部２２３においてプロトコル処理又はプロトコル解析の可能なプロトコルとしては、どのようなプロトコルであっても良く、例えば現在ＮｅｔＢＳＤでサポートされているあらゆるプロトコル等でも良い。
【００４５】
オブジェクト特定部２２５は、プロトコル処理を行った後のデータを引き渡すインターフェースオブジェクト２２７又はＴＯＥインターフェースオブジェクト２３１を特定する。オブジェクト特定部２２５は、インターフェース管理テーブル２２６を参照して、各インターフェースオブジェクト２２７又はＴＯＥインターフェースオブジェクト２３１にアクセスして、送信制御が可能なインターフェースオブジェクト２２７又はＴＯＥインターフェースオブジェクト２３１を特定する。
【００４６】
また、インターフェース管理テーブル２２６において、インターフェースオブジェクト２２７のポインタ及びＴＯＥインターフェースオブジェクト２３１のポインタが区別することなく格納されている。このため、オブジェクト特定部２２５は、ＴＯＥ２０８側のＴＯＥネットワークデバイス２３３ａ〜ｂ又はネットワークデバイス層２０６のネットワークデバイス２２８ａ〜ｃを指し示すオブジェクトであるかを認識する必要なく、これらインターフェースオブジェクト２２７又はＴＯＥインターフェースオブジェクト２３１にアクセスできる。
【００４７】
そして、プロトコル層２０４から、オブジェクト特定部２２５により特定されたインターフェースオブジェクト２２７又はＴＯＥインターフェースオブジェクト２３１の、（ＴＯＥ）ネットワークデバイスにデータを引き渡すためのインターフェースが呼び出される。これにより、データを（ＴＯＥ）ネットワークデバイスに引き渡すことができる。なお、インターフェースオブジェクト２２７及びＴＯＥインターフェースオブジェクト２３１の引き渡すためのインターフェースは共通として、デバイスの差異は隠蔽されているものとする。
【００４８】
インターフェース層２０５は、下位のネットワークデバイス層２０６と、プロトコル層２０４との間に存在する層である。インターフェース層２０５は、ネットワークデバイス層２０６が備えているハードウェアを抽象化することで、具体的なハードウェアを隠蔽し、ハードウェア毎にＡＰＩを提供する。
【００４９】
また、インターフェース層２０５は、インターフェースオブジェクト２２７を備えている。当該インターフェースオブジェクト２２７は、物理的なネットワークデバイス毎に１対1に割り当てられているメモリオブジェクトである。また、インターフェースオブジェクト２２７は、当該ネットワークデバイスのハードウェア情報、アクセス先のアドレス情報及び当該ネットワークデバイスにアクセスするためのインターフェースを備えている。これにより、当該インターフェースオブジェクト２２７を操作することで、割り当てられたネットワークデバイスを制御することができる。
【００５０】
また、プロトコル層２０４とインターフェース層２０５との間には、インターフェース管理テーブル２２６が備えられている。このインターフェース管理テーブル２２６には、インターフェースオブジェクト２２７及び後述するＴＯＥインターフェースオブジェクト２３１を特定するための情報（オブジェクトのポインタ）が格納されている。なお、本実施の形態では、この各オブジェクトを特定するための情報としてポインタを利用したが、ハッシュなど他の情報を用いても良い。このインターフェース管理テーブル２２６は、プロトコル層２０４及びインターフェース層２０５から参照可能とする。
【００５１】
図３は、インターフェース管理テーブル２２６とインターフェースオブジェクト２２７との関連を示した説明図である。図３に示すように、インターフェース管理テーブル２２６に登録されたオブジェクトのポインタを参照することで、インターフェースオブジェクトを特定できる。さらに、インターフェースオブジェクトが生成、削除が行われる度に、インターフェース層２０５はインターフェース管理テーブル２２６のレコードの登録、削除を行う。なお、インターフェース管理テーブル２２６には、ＴＯＥインターフェースオブジェクト２３１のポインタも登録されるが、詳細については後述する。
【００５２】
ネットワークデバイス層２０６は、第１ネットワークデバイス２２８ａ、第２ネットワークデバイス２２８ｂ、第３ネットワークデバイス２２８ｃを備え、外部のネットワークと送受信する。受信したデータは、インターフェース層２０５のインターフェースオブジェクト２２７に受け渡される。
【００５３】
ＴＯＥ２０８は、プロトコル解析回路２３２と、第１ＴＯＥネットワークデバイス２３３ａと、第２ＴＯＥネットワークデバイス２３３ｂとを備え、ハードウェアにより結線した回路で、所定のプロトコルによるプロトコル処理及びプロトコル解析処理と、外部ネットワークとの間の通信制御と、を行う。これにより、ＴＯＥ２０８は、特に処理データ量、スピードが増加傾向にある所定のプロトコル（例えばＴＣＰ／ＩＰ）のハードウェアオフロードを行うことができる。
【００５４】
プロトコル解析回路２３２は、ラッパー層２０３から入力された通信データを送信するため、所定のプロトコルによるプロトコル処理を行う。また、プロトコル解析回路２３２は、第１ＴＯＥネットワークデバイス２３３ａ又は第２ＴＯＥネットワークデバイス２３３ｂが通信データを受信した場合、所定のプロトコルによるプロトコル解析処理を行う。また、プロトコル解析回路２３２においてプロトコル処理及びプロトコル解析処理が可能なプロトコルは、ＴＣＰ、ＵＤＰ、ＩＰ及びＩＣＭＰとする。
【００５５】
また、プロトコル解析回路２３２は、受信したデータのプロトコルがＴＣＰ、ＵＤＰ、ＩＰ及びＩＣＭＰ以外と判断した場合、受信したデータと共に、ＴＯＥインターフェース層２０７にプロトコル解析処理を要求する。
【００５６】
第１ＴＯＥネットワークデバイス２３３ａ及び第２ＴＯＥネットワークデバイス２３３ｂは、ハードウェアにより結線され、外部のネットワークと送受信を行うためのデバイスとする。
【００５７】
ＴＯＥインターフェース層２０７は、受信側ＴＯＥオブジェクト特定部２３０と、ＴＯＥインターフェースオブジェクト２３１とを備え、ＴＯＥ２０８を他の構成と接続するためのインターフェースとなる。
【００５８】
受信側ＴＯＥオブジェクト特定部２３０は、ＴＯＥ２０８でプロトコル解析処理できなかったデータを処理するＴＯＥインターフェースオブジェクト２３１を特定する。受信側ＴＯＥオブジェクト特定部２３０は、ＴＯＥインターフェース管理テーブル２２９を参照して、各ＴＯＥインターフェースオブジェクト２３１にアクセスして、当該受信したネットワークデバイスに対応するＴＯＥインターフェースオブジェクト２３１を特定する。
【００５９】
ＴＯＥインターフェースオブジェクト２３１は、ＴＯＥ２０８が備えるネットワークデバイス毎に１対１に対応付けられている。そして、当該ＴＯＥインターフェースオブジェクト２３１は、インターフェースオブジェクト２２７と同様の情報を保持すると共に、対応付けられたネットワークデバイスを制御することができる。さらに、ＴＯＥインターフェースオブジェクト２３１は、ＴＯＥ２０８でプロトコル解析処理が失敗した場合に、プロトコル層２０４でプロトコル解析処理を行うためのインターフェースとなる。
【００６０】
図４は、インターフェースクラス４０１とＴＯＥインターフェースクラス４０２のクラス構造を示した図である。図４に示すように、インターフェースクラス４０１は、属性としてアドレス情報と、ハードウェア情報と、を備えている。このアドレス情報には、対応付けられたネットワークデバイスで送受信を行うＩＰアドレスを格納する。また、ハードウェア情報には、割り当てられたネットワークデバイスに関する情報を格納する。また、これら属性は、図４の属性の左側に「＋」記号が付されていることから把握できるように、外部に対して公開されている。また、他の操作も「＋」記号が付されている場合は同様に外部に対して公開されている。
【００６１】
また、インターフェースクラス４０１は、操作としてハードウェア、ドライバに対するアクセス制御（）とプロトコル層から送信データを、ネットワークデバイスへの引き渡し制御（）とを備えている。これら操作により、ネットワークデバイスを使用することができる。
【００６２】
また、ＴＯＥインターフェースクラス４０２は、インターフェースクラスを継承すると共に、操作としてプロトコル解析処理への入力・出力インターフェース（）を備えている。当該操作を使用することで、ＴＯＥ２０８が受信したデータを、プロトコル層２０４に対して出力することができる。
【００６３】
これらインターフェースクラス及びＴＯＥインターフェースクラスを実体化することで、インターフェースオブジェクト２２７及びＴＯＥインターフェースオブジェクト２３１が生成され、上述した属性、操作を使用することができる。
【００６４】
本実施の形態にかかる情報処理装置１００においては、第１ＴＯＥネットワークデバイス２３３ａ及び第２ＴＯＥネットワークデバイス２３３ｂが起動時に自動的に検出された際に、対応するＴＯＥインターフェースオブジェクト２３１が生成される。また、インターフェースオブジェクト２２７も同様に、起動時の自動検出に伴い生成される。
【００６５】
そして、生成されたＴＯＥインターフェースオブジェクト２３１のポインタは、インターフェース管理テーブル２２６及びＴＯＥインターフェース管理テーブル２２９に登録され、インターフェースオブジェクト２２７のポインタはインターフェース管理テーブル２２６に登録される。
【００６６】
これにより、ＴＯＥインターフェース管理テーブル２２９に格納されたポインタから、ＴＯＥインターフェースオブジェクト２３１にアクセスすることで、ＴＯＥ２０８が備えるＴＯＥネットワークデバイス２３３ａ〜ｂの情報を参照することができる。
【００６７】
また、インターフェース管理テーブル２２６に格納されたポインタから、ＴＯＥインターフェースオブジェクト２３１にアクセスすることで、ＴＯＥ２０８が備えるＴＯＥネットワークデバイス２３３ａ〜ｂの情報を参照することができる。同様に、インターフェース管理テーブル２２６に格納されたポインタから、インターフェースオブジェクト２２７にアクセスすることで、ネットワークデバイス層２０６が備えるネットワークデバイス２２８ａ〜ｃの情報を参照することができる。
【００６８】
図５は、インターフェースオブジェクト２２７及びＴＯＥインターフェースオブジェクト２３１の登録先のインターフェース管理テーブルを示した説明図である。図５に示すように、インターフェース管理テーブル２２６には、各インターフェースオブジェクト２２７と、各ＴＯＥインターフェースオブジェクト２３１とを参照可能にするポインタが格納される。これによりプロトコル層２０４でプロトコル処理が終了した後のデータを、ネットワークデバイス層２０６のネットワークデバイス２２８ａ〜ｃ及びＴＯＥ２０８のＴＯＥネットワークデバイス２３３ａ〜ｂのいずれに対しても出力することができる。
【００６９】
このような構成を備えることで、情報処理装置１００では、最上位層にユーザアプリケーション層２０１のネットワークプログラム２１１ａ〜ｃから、ソケット層２０２を経由した後、ラッパー層２０３を介して、プロトコル層２０４及びＴＯＥ２０８にアクセスできるので、プロトコル処理を切り替えることができる。
【００７０】
次に、以上のように構成された本実施の形態にかかるＴＯＥインターフェース層２０７におけるＴＯＥインターフェースオブジェクト２３１のアドレス情報の登録手順について説明する。図６は、本実施の形態にかかるＴＯＥインターフェース層２０７における上述した処理の手順を示すフローチャートである。
【００７１】
まず、ＴＯＥインターフェース層２０７は、外部からの要求に応じて、ＴＯＥネットワークデバイスにＩＰアドレスの割り当てを受け付ける（ステップＳ６０１）。なお、外部とは、ラッパー層２０３を介して接続されるソケット２１２ａ〜ｃや、ＴＯＥ２０８等とする。
【００７２】
そして、ＴＯＥインターフェース層２０７は、ＴＯＥインターフェース管理テーブル２２９にまだ確認していない、ＴＯＥインターフェースオブジェクト２３１を指し示すポインタがあるか否か判断する（ステップＳ６０２）。ないと判断した場合（ステップＳ６０２：Ｎｏ）、該当するＴＯＥネットワークデバイスが存在しないものとして処理を終了する。
【００７３】
次に、ＴＯＥインターフェース層２０７は、ポインタがあると判断した場合（ステップＳ６０２：Ｙｅｓ）、ポインタが指し示すＴＯＥインターフェースオブジェクト２３１のハードウェア情報を参照して、当該ＴＯＥインターフェースオブジェクト２３１が、割当先のネットワークデバイスか否か判断する(ステップＳ６０３)。割当先のネットワークデバイスではないと判断した場合（ステップＳ６０３：Ｎｏ）、再びステップＳ６０２から処理を開始する。
【００７４】
また、ＴＯＥインターフェース層２０７が、ＴＯＥインターフェースオブジェクト２３１が、割当先のネットワークデバイスと判断した場合（ステップＳ６０３：Ｙｅｓ）、当該ＴＯＥインターフェースオブジェクト２３１のアドレス情報に、ＩＰアドレスの追加設定を行う（ステップＳ６０４）。これにより、ＩＰアドレスが適切に割り当てられたことになる。
【００７５】
次に、以上のように構成された本実施の形態にかかるＴＯＥインターフェース層２０７におけるＴＯＥインターフェースオブジェクト２３１のアドレス情報の開放手順について説明する。図７は、本実施の形態にかかるＴＯＥインターフェース層２０７における上述した処理の手順を示すフローチャートである。
【００７６】
まず、ＴＯＥインターフェース層２０７は、外部からの要求に応じて、ＴＯＥネットワークデバイスにＩＰアドレスの開放を受け付ける（ステップＳ７０１）。
【００７７】
そして、ＴＯＥインターフェース層２０７は、ＴＯＥインターフェース管理テーブル２２９にまだ確認していないＴＯＥインターフェースオブジェクト２３１を指し示すポインタがあるか否か判断する（ステップＳ７０２）。ないと判断した場合（ステップＳ７０２：Ｎｏ）、該当するＴＯＥネットワークデバイスが存在しないものとして処理を終了する。
【００７８】
次に、ＴＯＥインターフェース層２０７は、ポインタがあると判断した場合（ステップＳ７０２：Ｙｅｓ）、ポインタが指し示すＴＯＥインターフェースオブジェクト２３１のハードウェア情報を参照して、当該ＴＯＥインターフェースオブジェクト２３１が、アドレス開放先のネットワークデバイスか否か判断する(ステップＳ７０３)。開放先のネットワークデバイスではないと判断した場合（ステップＳ７０３：Ｎｏ）、再びステップＳ７０２から処理を開始する。
【００７９】
また、ＴＯＥインターフェース層２０７が、ＴＯＥインターフェースオブジェクト２３１は、開放先のネットワークデバイスと判断した場合（ステップＳ７０３：Ｙｅｓ）、当該ＴＯＥインターフェースオブジェクト２３１のアドレス情報から、該当するＩＰアドレスを削除する（ステップＳ７０４）。これにより、ＩＰアドレスが適切に削除されたことになる。
【００８０】
なお、インターフェースオブジェクト２２７に対するＩＰアドレスの割り当て及び開放は従来通りとして説明を省略する。
【００８１】
次に、本実施の形態にかかる情報処理装置１００における送信処理について説明する。図８は、本実施の形態にかかる情報処理装置１００における上述した処理の手順を示すフローチャートである。
【００８２】
まず、ネットワークプログラム２１１ａ〜ｃが、ソケット２１２ａ〜ｃに対して、送信するデータを出力する（ステップＳ８０１）。次に。ソケット２１２ａ〜ｃが、送信するデータを、ラッパー層２０３に出力する（ステップＳ８０２）。
【００８３】
そして、ラッパー層２０３に送信するデータが入力された場合、ラッパー層２０３のプロトコル判断部２２１は、出力元のソケット２１２ａ〜ｃが保持するプロトコル情報に基づいて使用するプロトコルを決定した後、当該プロトコルがＴＯＥで処理可能なプロトコル（ＴＣＰ／ＵＤＰ／ＩＣＭＰ／ＩＰ）であるか否かを判断する（ステップＳ８０３）。処理可能なプロトコルと判断した場合（ステップＳ８０３：Ｙｅｓ）、ＴＯＥインターフェース管理テーブル２２９及びＴＯＥインターフェースオブジェクト２３１を参照して、送信処理を行うＴＯＥネットワークデバイスを特定する（ステップＳ８０４）。
【００８４】
次に、ＴＯＥ受渡部２３５は、ＴＯＥ２０８に対して送信するデータを受け渡すと共に、特定されたＴＯＥネットワークデバイスから、入力されたＩＰアドレスにデータを送信するようＴＯＥ２０８に対して指示する（ステップＳ８０５）。なお、ステップＳ８０３〜Ｓ８０５で示したラッパー層２０３の処理の詳細については後述する。
【００８５】
そして、ＴＯＥ２０８のプロトコル解析回路２３２は、入力されたデータを、所定のプロトコルで送信するためのプロトコル処理を行う（ステップＳ８０６）。その後、ステップＳ８０４で特定されたＴＯＥネットワークデバイス（例えば第１ＴＯＥネットワークデバイス２３３ａ）は、プロトコル処理された後のデータを、指示されたＩＰアドレスに送信する（ステップＳ８０７）。
【００８６】
一方、ラッパー層２０３のプロトコル判断部２２１は、入力されたデータに使用するプロトコルがＴＯＥで処理可能なプロトコル（ＴＣＰ／ＵＤＰ／ＩＣＭＰ／ＩＰ）ではないと判断した場合（ステップＳ８０３：Ｎｏ）、プロトコル層受渡部２３４が、プロトコル層２０４に対して、送信するデータを受け渡すと共に、当該データのプロトコル処理を要求する（ステップＳ８０８）。
【００８７】
そして、プロトコル層２０４のプロトコル解析処理部２２３が、入力されたプロトコル情報に従って、入力されたデータに対してプロトコル処理を行う（ステップＳ８０９）。
【００８８】
その後、プロトコル層２０４のオブジェクト特定部２２５が、インターフェース管理テーブル２２６、インターフェースオブジェクト２２７及びＴＯＥインターフェースオブジェクト２３１を参照して、送信処理を行うネットワークデバイス２２８ａ〜ｃ又はＴＯＥネットワークデバイス２３３ａ〜ｂを特定する（ステップＳ８１０）。そして、プロトコル層２０４は、特定されたネットワークデバイスに対応するインターフェースオブジェクト２２７又はＴＯＥインターフェースオブジェクト２３１の操作を呼び出して、送信処理を指示する（ステップＳ８１１）。
【００８９】
そして、送信指示されたインターフェースオブジェクト２２７又はＴＯＥインターフェースオブジェクト２３１からの操作により、ネットワークデバイス２２８ａ〜ｃ又はＴＯＥネットワークデバイス２３３ａ〜ｂは、プロトコル処理された後のデータを、指示されたＩＰアドレスに送信する（ステップＳ８１２）。
【００９０】
次に、以上のように構成された本実施の形態にかかるラッパー層２０３における受信待ち又は送信処理について説明する。図９は、本実施の形態にかかるラッパー層２０３における上述した処理の手順を示すフローチャートである。なお、受信待ちの処理は、情報処理装置１００の起動時に行われるものとする。
【００９１】
まず、ラッパー層２０３は、ソケット層２０２のソケット２１２ａ〜ｃから、プロトコル層２０４へのリクエストを受け付ける（ステップＳ９０１）。このリクエストとは、受信待ち又は、データの送信の要求とする。なお、リクエストがデータの送信の場合、当該処理手順は、図８のステップＳ８０３及びＳ８０４の処理を詳細に説明したものとなる。
【００９２】
次に、ラッパー層２０３は、リクエストを行ったソケット２１２ａ〜ｃが保持するアドレス情報から、使用するプロトコルを決定する（ステップＳ９０２）。
【００９３】
そして、ラッパー層２０３のプロトコル判断部２２１は、決定されたプロトコルが、ＴＯＥ２０８で処理可能なプロトコル（ＴＣＰ／ＵＤＰ／ＩＣＭＰ／ＩＰ）であるか否かを判断する（ステップＳ９０３）。ＴＯＥ２０８で処理可能なプロトコル（ＴＣＰ／ＵＤＰ／ＩＣＭＰ／ＩＰ）ではないと判断した場合（ステップＳ９０３：Ｎｏ）、プロトコル層２０４に対して、リクエストに応じた受信待ち又は送信指示を行う（ステップＳ９０４）。
【００９４】
一方、プロトコル判断部２２１が、ＴＯＥ２０８で処理可能なプロトコル（ＴＣＰ／ＵＤＰ／ＩＣＭＰ／ＩＰ）であると判断した場合（ステップＳ９０３：Ｙｅｓ）、送信側ＴＯＥオブジェクト特定部２２２は、ＴＯＥインターフェース管理テーブル２２９のレコード数だけ、ステップＳ９０６以降の処理を繰り返す（ステップＳ９０５）。なお、繰り返しが行われる度に、ステップＳ９０６で利用されるＴＯＥインターフェース管理テーブル２２９のレコードが変更される。
【００９５】
次に、送信側ＴＯＥオブジェクト特定部２２２は、ＴＯＥインターフェース管理テーブル２２９のレコードのポインタで示されたＴＯＥインターフェースオブジェクト２３１に登録されたアドレスの数だけ、ステップＳ９０７以降の処理を繰り返す（ステップＳ９０６）。なお、繰り返しが行われる度に、ステップＳ９０７で利用されるＴＯＥインターフェースオブジェクト２３１に設定されているＩＰアドレスが変更される。
【００９６】
そして、送信側ＴＯＥオブジェクト特定部２２２は、リクエストを行ったソケット２１２ａ〜ｃに設定されているＩＰアドレスが、ポインタで示されたＴＯＥインターフェースオブジェクト２３１に設定されているＩＰアドレスか否か判断する（ステップＳ９０７）。
【００９７】
次に、送信側ＴＯＥオブジェクト特定部２２２は、リクエストを行ったソケット２１２ａ〜ｃに設定されているＩＰアドレスが、ポインタで示されたＴＯＥインターフェースオブジェクト２３１に設定されているＩＰアドレスではないと判断した場合（ステップＳ９０７：Ｎｏ）、再びステップＳ９０６から処理を繰り返す（ステップＳ９０８）。
【００９８】
そして、ステップＳ９０６〜ステップＳ９０８までのループが終了した場合、再びステップＳ９０５から処理を繰り返す（ステップＳ９０９）。
【００９９】
一方、送信側ＴＯＥオブジェクト特定部２２２は、リクエストを行ったソケット２１２ａ〜ｃに設定されているＩＰアドレスが、ポインタで示されたＴＯＥインターフェースオブジェクト２３１に設定されているＩＰアドレスだと判断した場合（ステップＳ９０７：Ｙｅｓ）、ラッパー層２０３は、受け付けたリクエストが受信待ちか送信か判断する（ステップＳ９１０）。このＴＯＥインターフェースオブジェクト２３１に対応するＴＯＥネットワークデバイス２３３ａ〜ｂが送信処理を行うデバイスとして特定される。
【０１００】
ステップＳ９１０で、ラッパー層２０３が受信待ちと判断した場合、ＴＯＥ２０８に、受信待ちを指示する（ステップＳ９１１）。また、ラッパー層２０３は、リクエストにデータ受信先のＩＰアドレスが指定されていれば、当該ＩＰアドレスから受信するよう指示し、リクエストにデータ受信先のＩＰアドレスが指定されていなければ、全てのＩＰアドレスから受信するよう指示する。
【０１０１】
一方、ステップＳ９１０で、ラッパー層２０３が送信と判断した場合、データ送信先のＩＰアドレスが、リクエストを出力したソケット２１２ａ〜ｃに設定されたルーティング情報から送信可能か否か判断する（ステップＳ９１２）。送信できないと判断した場合（ステップＳ９１２：Ｎｏ）、再びステップＳ９０６から処理を繰り返す（ステップＳ９０８）。
【０１０２】
一方、ラッパー層２０３が送信可能と判断した場合（ステップＳ９１２：Ｙｅｓ）、ＴＯＥ受渡部２３５は、ＴＯＥ２０８に対して送信するデータを受け渡すと共に、特定されたＴＯＥネットワークデバイス２３３ａ〜ｂから、入力されたＩＰアドレスにデータを送信するようＴＯＥ２０８に対して指示する（ステップＳ９１３）。当該指示により、図８のステップＳ８０６以降の処理が行われる。
【０１０３】
次に、ネットワークデバイス層２０６ａ〜ｃから送信のリクエストが行われた場合の処理の経路について説明する。図１０は、所定のプロトコル（ＴＣＰ／ＵＤＰ／ＩＣＭＰ／ＩＰ）でプロトコル処理を行い、第１ＴＯＥネットワークデバイス２３３ａから送信した場合の処理の経路を示した説明図である。
【０１０４】
まずは、ネットワークプログラム２１１ａから送信するデータの出力が行われたものとする（ステップＳ１００１）。この場合、ソケット２１２ａが、送信するデータを、ラッパー層２０３に出力する（ステップＳ１００２）。この際、ラッパー層２０３のプロトコル判断部２２１が、出力元のソケット２１２ａ〜ｃが保持するプロトコル情報に基づいて使用するプロトコルを決定した後、決定されたプロトコルが所定のプロトコル（ＴＣＰ／ＵＤＰ／ＩＣＭＰ／ＩＰ）と判断したものとする。
【０１０５】
そして、所定のプロトコルと判断された後、ラッパー層２０３は、送信側ＴＯＥオブジェクト特定部２２２に送信先のＴＯＥネットワークデバイス２３３ａ〜ｂを特定するよう指示する（ステップＳ１００３）。そこで、送信側ＴＯＥオブジェクト特定部２２２は、ＴＯＥインターフェース管理テーブル２２９を参照して、ＴＯＥインターフェースオブジェクト２３１のポインタを取得する（ステップＳ１００４）。次に、送信側ＴＯＥオブジェクト特定部２２２は、ポインタで示されたＴＯＥインターフェースオブジェクト２３１のアドレス情報を参照して、当該オブジェクトに対応するＴＯＥネットワークデバイスが送信先か否か判断する（ステップＳ１００５）。なお、本処理手順では、第１ＴＯＥネットワークデバイス２３３ａが送信先と判断されたものとする。
【０１０６】
送信先となる第１ＴＯＥネットワークデバイス２３３ａを特定した後、ＴＯＥ受渡部２３５が、送信するデータを受け渡すと共に、プロトコル解析回路２３２にプロトコル処理を指示する（ステップＳ１００６）。
【０１０７】
そして、プロトコル解析回路２３２でプロトコル処理を終了した後、上述した処理で送信先と判断された第１ネットワークデバイス２３３ａに送信処理を指示する（ステップＳ１００７）。これにより、ＴＯＥ２０８からデータの送信が行われる。
【０１０８】
図１１は、所定のプロトコル（ＴＣＰ／ＵＤＰ／ＩＣＭＰ／ＩＰ）以外のプロトコル処理を行い、第１ネットワークデバイス２２８ａ又は第１ＴＯＥネットワークデバイス２３３ａから送信した場合の処理の経路を示した説明図である。
【０１０９】
まずは、ネットワークプログラム２１１ａから送信するデータの出力が行われたものとする（ステップＳ１１０１）。この場合、ソケット２１２ａが、送信するデータを、ラッパー層２０３に出力する（ステップＳ１１０２）。そして、ラッパー層２０３のプロトコル判断部２２１が、出力元のソケット２１２ａが保持するプロトコル情報に基づいて使用するプロトコルを決定した後、決定されたプロトコルが所定のプロトコル（ＴＣＰ／ＵＤＰ／ＩＣＭＰ／ＩＰ）以外と判断したものとする。
【０１１０】
そして、所定のプロトコル以外と判断された後、プロトコル層受渡部２３４が、プロトコル層２０４に対して送信するデータを受け渡すと共に、プロトコル層２０４のプロトコル解析処理部２２３に、決定されたプロトコルでプロトコル処理を行うよう指示する（ステップＳ１１０３）。そして、プロトコル層２０４は、プロトコル解析処理部２２３でプロトコル処理が終了した後、オブジェクト特定部２２５に対して、送信先のＴＯＥインターフェースオブジェクト又はインターフェースオブジェクトを特定するよう指示する（ステップＳ１１０４）。そこで、オブジェクト特定部２２５は、インターフェース管理テーブル２２６を参照して、インターフェースオブジェクト２２７又はＴＯＥインターフェースオブジェクト２３１のポインタを取得する（ステップＳ１１０５）。この後、インターフェース管理テーブル２２６に参照されたポインタに基づいて、第１ネットワークデバイス２２８ａで送信する場合と、第１ＴＯＥネットワークデバイス２３３ａで送信する場合とがある。まずは、第１ネットワークデバイス２２８ａで送信する場合について説明する。
【０１１１】
オブジェクト特定部２２５は、ポインタで示されたインターフェースオブジェクト２２７のアドレス情報を参照して、当該オブジェクトに対応するネットワークデバイスが送信先か否か判断する（ステップＳ１１０６）。そして、送信先となるネットワークデバイスを特定した後、ネットワークデバイスに対応するインターフェースオブジェクト２２７に送信処理を指示する。
【０１１２】
そして、インターフェースオブジェクト２２７は、対応する第１ネットワークデバイス２２８ａに送信処理を指示する（ステップＳ１１０７）。これにより、第１ネットワークデバイス２２８ａからデータの送信が行われる。
【０１１３】
次に、第１ＴＯＥネットワークデバイス２３３ａで送信する場合について説明する。オブジェクト特定部２２５は、ポインタで示されたＴＯＥインターフェースオブジェクト２３１のアドレス情報を参照して、当該オブジェクトに対応するＴＯＥネットワークデバイスが送信先か否か判断する（ステップＳ１１０８）。そして、送信先となるＴＯＥネットワークデバイスを特定した後、当該ＴＯＥネットワークデバイスに対応するＴＯＥインターフェースオブジェクト２３１に送信処理を指示する。
【０１１４】
そして、ＴＯＥインターフェースオブジェクト２３１は、対応する第１ＴＯＥネットワークデバイス２３３ａに送信処理を指示する（ステップＳ１１０９）。これにより、第１ＴＯＥネットワークデバイス２３３ａからデータの送信が行われる。
【０１１５】
次に、本実施の形態にかかる情報処理装置１００におけるＴＯＥ２０８でデータを受信した場合の処理について説明する。図１２は、本実施の形態にかかる情報処理装置１００における上述した処理の手順を示すフローチャートである。
【０１１６】
まず、第１ＴＯＥネットワークデバイス２３３ａが、データの受信処理を行う（ステップＳ１２０１）。
【０１１７】
次に、プロトコル解析回路２３２は、受信したデータが解析可能な所定のプロトコル（ＴＣＰ／ＵＤＰ／ＩＣＭＰ／ＩＰ）であるか否か判断する（ステップＳ１２０２）。
【０１１８】
そして、プロトコル解析回路２３２が所定のプロトコルであると判断した場合（ステップＳ１２０２：Ｙｅｓ）、所定のプロトコルによる解析処理を受信したデータに対して行う（ステップＳ１２０３）。
【０１１９】
次に、ＴＯＥ２０８は、プロトコル解析処理後のデータを、ソケット層２０２のソケット２１２ａ〜ｃに出力する（ステップＳ１２０４）。
【０１２０】
一方、プロトコル解析回路２３２が所定のプロトコルではないと判断した場合（ステップＳ１２０２：Ｎｏ）、ＴＯＥ２０８は、受信したデータをＴＯＥインターフェース層２０７に出力する（ステップＳ１２０５）。
【０１２１】
そして、ＴＯＥインターフェース層２０７の受信側ＴＯＥオブジェクト特定部２３０は、ＴＯＥインターフェース管理テーブル２２９に格納されたポインタから、ＴＯＥインターフェースオブジェクト２３１を参照し、当該ＴＯＥインターフェースオブジェクト２３１のハードウェア情報を確認して、受信処理を行ったＴＯＥネットワークデバイス２３３ａに対応するＴＯＥインターフェースオブジェクト２３１を特定する（ステップＳ１２０６）。受信側ＴＯＥオブジェクト特定部２３０は、特定されたＴＯＥインターフェースオブジェクト２３１に受信したデータを出力する。
【０１２２】
次に、ＴＯＥインターフェースオブジェクト２３１は、入力されたデータを出力すると共に、当該データのプロトコル解析処理をするようプロトコル層２０４に対して指示する（ステップＳ１２０７）。
【０１２３】
そして、プロトコル層２０４では、ＴＯＥインターフェースオブジェクト２３１からプロトコル別受信バッファ２２４に入力されたデータを、指示されたプロトコル別に一時的に格納する（ステップＳ１２０８）。
【０１２４】
そして、プロトコル解析処理部２２３は、指示に従って、プロトコル別受信バッファ２２４に格納されていたデータを取り出し、プロトコル解析処理を行う（ステップＳ１２０９）。これにより、受信したパケットから使用されるデータを抽出できたことになる。
【０１２５】
次に、プロトコル層２０４は、プロトコル解析処理後のデータを、ソケット２１２ａ〜ｃに出力する（ステップＳ１２１０）。
【０１２６】
そして、ソケット２１２ａ〜ｃは、入力されたデータを、当該ソケット２１２ａ〜ｃと対応付けられたネットワークプログラム２１１ａ〜ｃに出力する（ステップＳ１２１１）。
【０１２７】
上述した処理手順により、ＴＯＥ２０８が受信したデータについて、所定のプロトコルの場合はハードウェアオフロードを行うことを可能にすると共に、所定のプロトコル以外のプロトコルについてはプロトコル層２０４で解析処理を行うことを可能にしている。
【０１２８】
次に、第１ＴＯＥネットワークデバイス２３３ａがデータを受信した場合の処理の経路について説明する。図１３は、第１ＴＯＥネットワークデバイス２３３ａがデータを受信して、所定のプロトコル（ＴＣＰ／ＵＤＰ／ＩＣＭＰ／ＩＰ）でプロトコル解析処理を行った場合の処理の経路を示した説明図である。
【０１２９】
まず、第１ネットワークデバイス２３３ａが、データの受信処理した場合、プロトコル解析回路２３２に解析処理を行うよう指示する（ステップＳ１３０１）。
【０１３０】
そして、プロトコル解析回路２３２が、解析処理可能と判断して、解析処理を行った後、解析処理後のデータを、ソケット２１２ａに出力する（ステップＳ１３０２）。
【０１３１】
そして、ソケット２１２ａは、入力されたデータを、対応付けられているネットワークプログラム２１１ａに出力する（ステップＳ１３０３）。上述する処理を行うことで、ネットワークプログラム２１１ａは、第１ＴＯＥネットワークデバイス２３３ａからデータを受信することができる。
【０１３２】
図１４は、第１ＴＯＥネットワークデバイス２３３ａがデータを受信して、所定のプロトコル（ＴＣＰ／ＵＤＰ／ＩＣＭＰ／ＩＰ）以外のプロトコルでプロトコル解析処理を行った場合の処理の経路を示した説明図である。
【０１３３】
まず、第１ネットワークデバイス２３３ａが、データの受信処理した場合、プロトコル解析回路２３２に解析処理を行うよう指示する（ステップＳ１４０１）。
【０１３４】
そして、プロトコル解析回路２３２が、解析処理できないと判断した場合、受信したデータをＴＯＥインターフェース層２０７に出力する（ステップＳ１４０２）。
【０１３５】
そして、受信側ＴＯＥオブジェクト特定部２３０は、ＴＯＥインターフェース管理テーブル２２９を参照して、ＴＯＥインターフェースオブジェクト２３１のポインタを取得する（ステップＳ１４０３）。そして、受信側ＴＯＥオブジェクト特定部２３０は、取得したポインタが指し示すＴＯＥインターフェースオブジェクト２３１のハードウェア情報を確認し、データを受信した第１ＴＯＥネットワークデバイス２３３ａに対応するＴＯＥインターフェースオブジェクト２３１を特定する。
【０１３６】
そして、受信側ＴＯＥオブジェクト特定部２３０は、特定されたＴＯＥインターフェースオブジェクト２３１に受信したデータを出力する（ステップＳ１４０４）。
【０１３７】
次に、ＴＯＥインターフェースオブジェクト２３１は、プロトコル層２０４に対して、入力されたデータを出力すると共に、当該データのプロトコル解析処理をするよう指示する（ステップＳ１４０５）。これにより入力されたデータは、プロトコル別にプロトコル別受信バッファ２２４に格納される。
【０１３８】
そして、プロトコル解析処理部２２３は、プロトコル別受信バッファ２２４に格納されたデータを取得する（ステップＳ１４０６）。その後、プロトコル解析処理部２２３は、取得したデータのプロトコル解析処理を行った後、解析処理したデータを、ソケット２１２ａ〜ｃに出力する（ステップＳ１４０７）。
【０１３９】
そして、ソケット２１２ａ〜ｃは、入力されたデータを、当該ソケット２１２ａ〜ｃと対応付けられたネットワークプログラム２１１ａ〜ｃに出力する（ステップＳ１４０８）。上述した処理手順により、ＴＯＥでプロトコル解析処理を実行できないデータを受信した場合にでも適切にプロトコル解析処理を行うことができる。
【０１４０】
図１５は、第１ネットワークデバイス２２８ａがデータを受信して、プロトコル解析処理を行った場合の処理の経路を示した説明図である。
【０１４１】
まず、第１ネットワークデバイス２２８ａが、データの受信処理した場合、当該第１ネットワークデバイス２２８ａに対応するインターフェースオブジェクト２２７に、受信したデータを出力する（ステップＳ１５０１）。
【０１４２】
そして、インターフェースオブジェクト２２７は、入力されたデータを、プロトコル別にプロトコル別受信バッファ２２４に格納する（ステップＳ１５０２）。
【０１４３】
そして、プロトコル解析処理部２２３は、プロトコル別受信バッファ２２４に格納されたデータを取得する（ステップＳ１５０３）。その後、プロトコル解析処理部２２３は、取得したデータのプロトコル解析処理を行った後、解析処理したデータを、ソケット２１２ａ〜ｃに出力する（ステップＳ１５０４）。
【０１４４】
そして、ソケット２１２ａ〜ｃは、入力されたデータを、当該ソケット２１２ａ〜ｃと対応付けられたネットワークプログラム２１１ａ〜ｃに出力する（ステップＳ１５０５）。
【０１４５】
また、上述した本実施の形態にかかる情報処理装置１００は、ネットワークを制御するソフトウェア群がレイヤー構造で制御するＯＳであればどのようなＯＳでもよい。適用可能なＯＳとしては、例えばＮｅｔＢＳＤ等が存在する。
【０１４６】
上述したように、本実施の形態にかかる情報処理装置１００では、ＴＯＥを備えた場合であっても、既存のソフトウェアプロトコルスタックと共存させることを可能としている。
【０１４７】
ところで、従来の情報処理装置では、ソケット層及びインターフェース層は互いに一方から他方を参照できない関係にあったため、ソケット層以下をハードウェア化してオフロード可能にすると共に、当該ハードウェアを経由しないネットワークデバイスを搭載した場合、送信するデータを適切なネットワークデバイスに振り分けることが出来なくなっていた。
【０１４８】
これに対し、本実施の形態にかかる情報処理装置１００では、上述したような構成を備えることで、ＴＯＥハードウェアに搭載されたＴＯＥネットワークデバイス以外のネットワークデバイスも使用することが可能になった。
【０１４９】
これにより、本実施の形態にかかる情報処理装置１００では、ＴＯＥを搭載することでハードウェアオフロードを可能にして、ＣＰＵ１０１の処理負担を軽減すると共に、さまざまなプロトコルに対応することが可能になる。
【０１５０】
また、本実施の形態にかかる情報処理装置１００では、ＴＯＥに搭載されたＴＯＥネットワークデバイス以外に、さまざまなネットワークデバイスを利用することが可能になる。このようなネットワークデバイスは、本実施の形態のように、シリアル回線Ｉ／Ｆ１０６、無線ＬＡＮ＿Ｉ／Ｆ１０７及びＵＳＢ＿Ｉ／Ｆ１０８に制限するものではなく、従来から使用される様々なネットワークデバイスを適用しても良い。
【０１５１】
本実施形態の情報処理装置１００で実行される通信制御プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital Versatile Disk）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【０１５２】
また、本実施形態の情報処理装置１００で実行される通信制御プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の情報処理装置１００で実行される通信制御プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【０１５３】
また、本実施形態の通信制御プログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【０１５４】
本実施の形態の情報処理装置１００で実行される通信制御プログラムは、上述した各部（ユーザアプリケーション層、ソケット層、プロトコル層、インターフェース層、ＴＯＥインターフェース層）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵが上記記録媒体から通信制御プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、ユーザアプリケーション層、ソケット層、プロトコル層、インターフェース層、ＴＯＥインターフェース層が主記憶装置上に生成されるようになっている。
【産業上の利用可能性】
【０１５５】
以上のように、本発明にかかる通信制御装置、通信制御方法及び通信制御プログラムは、通信制御に有用であり、特に、ＴＯＥを用いた通信制御に適している。
【図面の簡単な説明】
【０１５６】
【図１】実施の形態にかかる情報処理装置のハードウェア構成を示した図である。
【図２】情報処理装置のソフトウェア構成をレイヤー構造で示した図である。
【図３】インターフェース管理テーブルとインターフェースオブジェクトとの関連を示した説明図である。
【図４】インターフェースクラスとＴＯＥインターフェースクラスのクラス構造を示した図である。
【図５】インターフェースオブジェクト及びＴＯＥインターフェースオブジェクトの登録先のインターフェース管理テーブルを示した説明図である。
【図６】実施の形態にかかるＴＯＥインターフェース層におけるＴＯＥインターフェースオブジェクトのアドレス情報の登録手順を示すフローチャートである。
【図７】実施の形態にかかるＴＯＥインターフェース層におけるＴＯＥインターフェースオブジェクトのアドレス情報の開放手順を示すフローチャートである。
【図８】実施の形態にかかる情報処理装置における送信処理の手順を示すフローチャートである。
【図９】実施の形態にかかるラッパー層における受信待ち又は送信処理の手順を示すフローチャートである。
【図１０】実施の形態にかかる情報処理装置における、所定のプロトコルでプロトコル処理を行い、第１ＴＯＥネットワークデバイスから送信した場合の処理経路を示した説明図である。
【図１１】実施の形態にかかる情報処理装置における、所定のプロトコル以外のプロトコル処理を行い、第１ネットワークデバイス又は第１ＴＯＥネットワークデバイスから送信した場合の処理経路を示した説明図である。
【図１２】実施の形態にかかる情報処理装置におけるＴＯＥでデータを受信した場合の処理の手順を示すフローチャートである。
【図１３】実施の形態にかかる情報処理装置における、第１ＴＯＥネットワークデバイスがデータを受信して、所定のプロトコルでプロトコル解析処理を行った場合の処理の経路を示した説明図である。
【図１４】実施の形態にかかる情報処理装置における、第１ＴＯＥネットワークデバイスがデータを受信して、所定のプロトコル以外のプロトコルでプロトコル解析処理を行った場合の処理の経路を示した説明図である。
【図１５】実施の形態にかかる情報処理装置における、第１ネットワークデバイスがデータを受信して、プロトコル解析処理を行った場合の処理の経路を示した説明図である。
【図１６】従来のＴＯＥを搭載した情報処理装置におけるネットワークの階層モデルを示した説明図である。
【符号の説明】
【０１５７】
１００  情報処理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  ＨＤＤ
１０５  ＴＯＥ
１０６  シリアル回線Ｉ／Ｆ
１０７  無線ＬＡＮ＿Ｉ／Ｆ
１０８  ＵＳＢ＿Ｉ／Ｆ
１０９  有線ＬＡＮ＿Ｉ／Ｆ
２０１  ユーザアプリケーション層
２０２  ソケット層
２０３  ラッパー層
２０４  プロトコル層
２０５  インターフェース層
２０６  ネットワークデバイス層
２０７  ＴＯＥインターフェース層
２０８  ＴＯＥ
２１１ａ〜ｃ  ネットワークプログラム
２１２ａ〜ｃ  ソケット
２２１  プロトコル判断部
２２２  送信側ＴＯＥオブジェクト特定部
２２３  プロトコル解析処理部
２２４  プロトコル別受信バッファ
２２５  オブジェクト特定部
２２６  インターフェース管理テーブル
２２７  インターフェースオブジェクト
２２８ａ  第１ネットワークデバイス
２２８ｂ  第２ネットワークデバイス
２２８ｃ  第３ネットワークデバイス
２２９  インターフェース管理テーブル
２３０  受信側ＴＯＥオブジェクト特定部
２３１  ＴＯＥインターフェースオブジェクト
２３２  プロトコル解析回路
２３３ａ  第１ネットワークデバイス
２３３ｂ  第２ネットワークデバイス 
【図１】
2009053770.tif 000003
【図２】
2009053770.tif 000004
【図３】
2009053770.tif 000005
【図４】
2009053770.tif 000006
【図５】
2009053770.tif 000007
【図６】
2009053770.tif 000008
【図７】
2009053770.tif 000009
【図８】
2009053770.tif 000010
【図９】
2009053770.tif 000011
【図１０】
2009053770.tif 000012
【図１１】
2009053770.tif 000013
【図１２】
2009053770.tif 000014
【図１３】
2009053770.tif 000015
【図１４】
2009053770.tif 000016
【図１５】
2009053770.tif 000017
【図１６】
2009053770.tif 000018