(57)【要約】【課題】通信機能が動作するモジュールの処理能力が不足する場合に、各種アプリケーションが動作するモジュールにて通信に必要な処理を代替することができる技術を提供する。【解決手段】ネットワーク情報に基づいて通信パケットのプロトコル処理を行い、他の装置との間で前記通信パケットの送受信を行う通信部と、前記通信部の処理能力に係る所定の値が所定の閾値を超える場合に、前記ネットワーク情報に基づいて前記通信パケットのプロトコル処理を代替するパケット処理部と、を有する情報処理装置を提供する。【選択図】図５
2016134824.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク情報に基づいて通信パケットのプロトコル処理を行い、他の装置との間で前記通信パケットの送受信を行う通信部と、
前記通信部の処理能力に係る所定の値が所定の閾値を超える場合に、前記ネットワーク情報に基づいて前記通信パケットのプロトコル処理を代替するパケット処理部と、
を有する情報処理装置。
【請求項２】
前記通信部は、前記通信部にプロトコル処理させる前記通信パケットを識別するオフロード情報と前記ネットワーク情報とを格納する記憶手段を含み、
前記通信部は、前記記憶手段に格納された前記オフロード情報に基づいて、前記他の装置から受信した前記通信パケットをプロトコル処理するのか、前記パケット処理部にプロトコル処理させるのかを判断する、請求項１に記載の情報処理装置。
【請求項３】
前記オフロード情報は、データリンク層プロトコルを指定するための情報を含む、請求項２に記載の情報処理装置。
【請求項４】
前記オフロード情報は、前記パケット処理部の起動を許可するか否かの情報を含み、
前記オフロード情報が、前記通信パケットを前記パケット処理部がプロトコル処理することを示す場合であって、前記パケット処理部が休止状態であり、かつ、前記パケット処理部の起動が許可されている場合、前記通信部は、前記他の装置から受信した前記通信パケットを、前記パケット処理部を起動させてから前記パケット処理部にプロトコル処理させる、請求項２又は３に記載の情報処理装置。
【請求項５】
前記パケット処理部は、前記通信部から前記ネットワーク情報を取得して保持し、
前記通信部は、所定の条件を満たす場合に、前記ネットワーク情報を更新させるために前記ネットワーク情報を前記パケット処理部に通知する、請求項１乃至４のいずれか一項に記載の情報処理装置。
【請求項６】
前記通信部は、前記ネットワーク情報を前記パケット処理部に通知する場合、変更されたネットワーク情報のみを前記パケット処理部に通知する、請求項５に記載の情報処理装置。
【請求項７】
前記通信部がプロトコル処理を行っているセッションに関する情報に基づいて、前記通信部にプロトコル処理を中止させ、前記パケット処理部にプロトコル処理を継続させるように制御する制御部を有する、請求項１乃至６のいずれか一項に記載の情報処理装置。
【請求項８】
前記処理能力に係る所定の値はＴＣＰコネクション数である、請求項１乃至７のいずれか一項に記載の情報処理装置。
【請求項９】
ネットワーク情報に基づいて通信パケットのプロトコル処理を行い、通信部を用いて他の装置との間で前記通信パケットの送受信を行う通信ステップと、
前記通信部の処理能力に係る所定の値が所定の閾値を超える場合に、前記ネットワーク情報に基づいて前記通信パケットのプロトコル処理を代替するパケット処理ステップと、
を有する情報処理方法。
【請求項１０】
情報処理装置に、
ネットワーク情報に基づいて通信パケットのプロトコル処理を行い、通信部を用いて他の装置との間で前記通信パケットの送受信を行う通信ステップと、
前記通信部の処理能力に係る所定の値が所定の閾値を超える場合に、前記ネットワーク情報に基づいて前記通信パケットのプロトコル処理を代替するパケット処理ステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
通信機能を有する機器において、スタンバイ状態での消費電力を低減させるために、各種アプリケーションが動作するモジュールと通信機能が動作するモジュールとを分離し、各種アプリケーションが動作するモジュールのみをスタンバイ状態にすることで、他の装置からの通信への応答性を維持しながら消費電力を低減させる技術が既に知られている。
【０００３】
通信機能が動作するモジュールは、例えば、ＡＲＰ、ＤＨＣＰのようなプロトコルに対する自動応答処理、及びＴＣＰ／ＩＰ等のプロトコルが担う比較的下位レイヤのパケット処理といったような、他の装置と通信を行う際に必要な処理を行っている。これにより、各種アプリケーションが動作するモジュールは、上記のような通信に必要な処理を行う必要がなく、柔軟な設計が可能になるという利点がある。
【０００４】
一方で、通信機能が動作するモジュールは常に動作していることになる。そのため、通信機能が動作するモジュールには、消費電力を抑えるために、比較的処理能力が小さいハードウェアが利用されることがある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の従来技術では、通信機能が動作するモジュールの処理能力が不足する場合に、各種アプリケーションが動作するモジュールにて通信に必要な処理を代替することが出来なかった。
【０００６】
開示の技術は上記に鑑みてなされたものであって、通信機能が動作するモジュールの処理能力が不足する場合に、各種アプリケーションが動作するモジュールにて通信に必要な処理を代替することができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
開示の技術の情報処理装置は、ネットワーク情報に基づいて通信パケットのプロトコル処理を行い、他の装置との間で前記通信パケットの送受信を行う通信部と、前記通信部の処理能力に係る所定の値が所定の閾値を超える場合に、前記ネットワーク情報に基づいて前記通信パケットのプロトコル処理を代替するパケット処理部と、を有する。
【発明の効果】
【０００８】
開示の技術によれば、通信機能が動作するモジュールの処理能力が不足する場合に、各種アプリケーションが動作するモジュールにて通信に必要な処理を代替することができる技術を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態に係る情報処理装置のハードウェア構成の一例を示す図である。
【図２】実施の形態に係るＭａｉｎ−ＨＷのソフトウェア構成の一例を示す図である。
【図３】実施の形態に係るＮｅｔｗｏｒｋ−ＨＷのソフトウェア構成の一例を示す図である。
【図４】オフロードポリシー情報テーブルの一例を示す図である。
【図５】送信処理の処理手順の一例を示すシーケンス図である。
【図６】受信処理の処理手順の一例を示すフローチャートである。
【図７】受信処理の処理手順の一例を示すシーケンス図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して実施の形態について説明する。各図面において、同一構成部分には同一符号を付し、重複した説明を省略する場合がある。
【００１１】
[実施の形態]
＜概要＞
本実施の形態に係る情報処理装置は、各種アプリケーションが動作するモジュール（以下、「Ｍａｉｎ−Ｈａｒｄｗａｒｅ」という）と通信機能が動作するモジュール（以下、「Ｎｅｔｗｏｒｋ−Ｈａｒｄｗａｒｅ」という）とを有し、各種アプリケーションが他の装置と通信することで所定の処理を行う。所定の処理とは、通信により行われる処理全般を含み、他の装置へのアクセス、又は他の装置からの指示により行われる処理などをいう。
【００１２】
情報処理装置は、例えば、サーバ、ＰＣ（Personal Computer）、携帯端末、スマートフォン、タブレット、画像処理装置、画像形成装置、プリンタ、スキャナ、プロジェクタ、電子黒板、デジタルサイネージ、又はゲーム機器などである。情報処理装置は、通信を行う装置であればどのような装置であってもよい。
【００１３】
なお、以下の説明において、Ｍａｉｎ−Ｈａｒｄｗａｒｅは「Ｍａｉｎ−ＨＷ」と省略し、Ｎｅｔｗｏｒｋ−Ｈａｒｄｗａｒｅは「Ｎｅｔｗｏｒｋ−ＨＷ」と省略して記載する。
【００１４】
Ｍａｉｎ−ＨＷは、Ｎｅｔｗｏｒｋ−ＨＷと接続するためのインタフェースを有しており、各種アプリケーションは、Ｎｅｔｗｏｒｋ−ＨＷを介して他の装置と通信を行う。また、Ｎｅｔｗｏｒｋ−ＨＷの処理能力が不足している場合に、Ｎｅｔｗｏｒｋ−ＨＷが行うプロトコル処理を代替する。プロトコル処理とは、各種アプリケーションからは隠ぺいされている、通信に係る処理であり、例えば、ＯＳＩ参照モデルのうち、データリンク層、ネットワーク層、又はトランスポート層が行う処理である。具体的には、ＩＰ（Internet-Protocol）が行うパケット生成、結合等の処理、又は、ＴＣＰ（Transport Control Protocol）が行うパケット生成、結合等の処理などである。
【００１５】
Ｎｅｔｗｏｒｋ−ＨＷは、Ｍａｉｎ−ＨＷからの指示を受けてプロトコル処理を行い、他の装置とパケットを送受信する。また、ＡＲＰ（Address Resolution Protocol）テーブル及びルーティングテーブルのように、他の装置とのパケット送受信に必要な情報（以下、「ネットワーク情報」という）の保持及び更新を行う。
【００１６】
なお、以下の説明において、Ｎｅｔｗｏｒｋ−ＨＷで行うプロトコル処理を「オフロード処理」と言い、Ｍａｉｎ−ＨＷで行うプロトコル処理を「非オフロード処理」と言うことがある。また、Ｎｅｔｗｏｒｋ−ＨＷでプロトコル処理を行うデータ又はパケットのことを「オフロードデータ」と言い、Ｍａｉｎ−ＨＷでプロトコル処理を行うデータ又はパケットのこと「非オフロードデータ」と言うことがある。
【００１７】
＜ハードウェア構成＞
図１は、実施の形態に係る情報処理装置のハードウェア構成の一例を示す図である。実施の形態に係る情報処理装置は、Ｍａｉｎ−ＨＷ１０とＮｅｔｗｏｒｋ−ＨＷ２０とを有する。Ｍａｉｎ−ＨＷ１０とＮｅｔｗｏｒｋ−ＨＷ２０とは、Ｓｅｒｉａｌ−Ｂｕｓ３０で接続されている。Ｍａｉｎ−ＨＷ１０は、ＣＰＵ１１とＲＯＭ１２とＲＡＭ１３とＳｅｒｉａｌ  Ｉ／Ｆ１４とＵＳＢ  Ｉ／Ｆ１５とセンサ１６とを有する。また、Ｎｅｔｗｏｒｋ−ＨＷ２０は、ＣＰＵ２１とＲＯＭ２２とＲＡＭ２３とＳｅｒｉａｌ  Ｉ／Ｆ２４とＵＳＢ  Ｉ／Ｆ２５とＴｏＥ（TCP offload Engine）２６とＮｅｔｗｏｒｋ  Ｉ／Ｆ２７とを有する。
【００１８】
ＣＰＵ１１及びＣＰＵ２１は、それぞれＭａｉｎ−ＨＷ１０及びＮｅｔｗｏｒｋ−ＨＷ２０の全体制御を行うプロセッサである。ＣＰＵ１１及びＣＰＵ２１は、ＲＯＭ１２、ＲＯＭ２２、ＲＡＭ１３及びＲＡＭ２３に記憶されたオペレーティングシステム、及びアプリケーション等の各種プログラムを実行し、Ｍａｉｎ−ＨＷ１０及びＮｅｔｗｏｒｋ−ＨＷ２０の各種機能を実現する。
【００１９】
ＲＯＭ１２及びＲＯＭ２２には、各種プログラムや各種プログラムによって利用されるデータ等が記憶される。ＲＡＭ１３及びＲＡＭ２３は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。
【００２０】
Ｓｅｒｉａｌ  Ｉ／Ｆ１４及びＳｅｒｉａｌ  Ｉ／Ｆ２４は、ユーザからの入力及びユーザへの通知を行うための入出力装置を接続するインタフェースである。Ｓｅｒｉａｌ  Ｉ／Ｆ１４及びＳｅｒｉａｌ  Ｉ／Ｆ２４に接続される入出力装置は、例えば、キーボード、マウス、タッチパネル、又はディスプレイ等である。
【００２１】
ＵＳＢ  Ｉ／Ｆ１５及びＵＳＢ  Ｉ／Ｆ２５は、Ｓｅｒｉａｌ−Ｂｕｓ３０を介して行われるＭａｉｎ−ＨＷ１０とＮｅｔｗｏｒｋ−ＨＷ２０との間のデータ送受信に使用されるインタフェースである。
【００２２】
センサ１６は、外部環境の状況を測定するセンサである。センサ１６から出力されたデータは、Ｍａｉｎ−ＨＷ１０で動作する各種アプリケーションで使用され、直接又は加工されて他の装置に送信される。
【００２３】
ＴｏＥ−ＨＷ２６は、ＣＰＵ１１又はＣＰＵ２１の代わりにトランスポート層、ネットワーク層、及びデータリンク層のプロトコル処理を行うハードウェアである。ＴｏＥ−ＨＷ２６は、内部にＣＰＵ及びメモリを有しており、ＴｏＥ−ＨＷ２６単体でプロトコル処理を行うことができる。
【００２４】
また、ＴｏＥ−ＨＷ２６は、ネットワーク情報を記憶する。ＴｏＥ−ＨＷ２６は、ネットワーク情報を用いて、ＩＰヘッダ及びＥｔｈｅｒｎｅｔ(登録商標)ヘッダの生成などを行う。ネットワーク情報は、例えば、ＡＲＰテーブル、ＮＤ（Neighbor Discovery）キャッシュ、ルーティングテーブル、情報処理装置自身のＩＰアドレス及びＭＡＣアドレス、ＴＣＰに設定するオプション（ＭＳＳ（Maximum Segment Size）、ウインドウサイズ等）等である。
【００２５】
また、ＴｏＥ−ＨＷ２６は、他の装置から受信したパケットを、Ｎｅｔｗｏｒｋ−ＨＷでプロトコル処理（オフロード処理）するのか、Ｍａｉｎ−ＨＷ１０でプロトコル処理するのかを識別するための情報（以下、「オフロードポリシー情報」という）を記憶する。
【００２６】
Ｎｅｔｗｏｒｋ  Ｉ／Ｆ２７は、ＬＡＮ、ＷＡＮ、ＡＴＭ、又は無線ＬＡＮ等のネットワークに接続するためのインタフェースである。Ｎｅｔｗｏｒｋ  Ｉ／Ｆ２７は、ネットワークから受信した信号に対して物理層の処理を行い、処理したデータをＴｏＥ−ＨＷ２６に渡す。また、ＴｏＥ−ＨＷ２６から受信したパケットに対して物理層の処理を行い、ネットワークに送信する。
【００２７】
＜ソフトウェア構成＞
（Ｍａｉｎ−ＨＷ）
図２は、実施の形態に係るＭａｉｎ−ＨＷのソフトウェア構成の一例を示す図である。Ｍａｉｎ−ＨＷ１０は、アプリケーション処理部１０１と、オフロードデータ送受信部１０２と、非オフロードデータ送受信部１０３と、情報制御部１０４と、コマンド処理部１０５と、ＵＳＢ通信部１０６とを有する。また、非オフロードデータ送受信部１０３は、プロトコル処理部１１３を有する。これら各部は、ＲＯＭ１２又はＲＡＭ１３にインストールされた１以上のプログラムが、ＣＰＵ１１に実行させる処理により実現され得る。
【００２８】
アプリケーション処理部１０１は、Ｎｅｔｗｏｒｋ−ＨＷ２０を介して他の装置との間で通信を行うことで所定の処理を行う。所定の処理とは、通信により行われる処理全般を含み、他の装置へのアクセス、又は他の装置からの指示により行われる処理などである。所定の処理の一例として、他の装置に対する認証処理、センサ１６が出力した情報の送信、動画像の送信、又はＷｅｂアクセスなどが挙げられる。
【００２９】
また、アプリケーション処理部１０１は、情報制御部１０４を介してＮｅｔｗｏｒｋ−ＨＷ２０の処理能力に係る所定の値（例えば、ＴＣＰコネクション数）を問い合わせ、処理能力に係る所定の値が所定の閾値を超えているか否かを判断する。アプリケーション処理部１０１は、判断結果に基づいて、他の装置と送受信するデータを、Ｎｅｔｗｏｒｋ−ＨＷ２０にプロトコル処理させる（オフロード処理させる）のか、Ｍａｉｎ−ＨＷ１０自身でプロトコル処理するのかを判断する。所定の閾値とは、例えば、Ｎｅｔｗｏｒｋ−ＨＷ２０が同時に確立可能なＴＣＰコネクション数の上限などである。
【００３０】
オフロードデータ送受信部１０２は、アプリケーション処理部１０１からの要求を受けて、オフロード処理させるデータをＮｅｔｗｏｒｋ−ＨＷ２０に送信する。また、オフロードデータ送受信部１０２は、Ｎｅｔｗｏｒｋ−ＨＷ２０から送られてきたオフロードデータ（Ｎｅｔｗｏｒｋ−ＨＷ２０でプロトコル処理されたデータ）をアプリケーション処理部１０１に送信する。
【００３１】
非オフロードデータ送受信部１０３は、アプリケーション処理部１０１から非オフロードデータを受信し、プロトコル処理部１１３に処理させる。また、非オフロードデータ送受信部１０３は、プロトコル処理部１１３によりプロトコル処理されたパケットを、Ｎｅｔｗｏｒｋ−ＨＷ２０に送信する。また、非オフロードデータ送受信部１０３は、Ｎｅｔｗｏｒｋ−ＨＷ２０からネットワーク情報を取得し、取得したネットワーク情報をプロトコル処理部１１３に渡す。また、非オフロードデータ送受信部１０３は、非オフロードデータに対応する他の装置からの応答パケットをオフロード処理させないようにするため、Ｎｅｔｗｏｒｋ−ＨＷ２０にオフロードポリシー情報を追加する。
【００３２】
また、非オフロードデータ送受信部１０３は、Ｎｅｔｗｏｒｋ−ＨＷ２０から送られてきた非オフロードデータをプロトコル処理部１１３に処理させる。また、非オフロードデータ送受信部１０３は、プロトコル処理部１１３によりプロトコル処理されたデータを、アプリケーション処理部１０１に送信する。
【００３３】
プロトコル処理部１１３は、ネットワーク情報に基づいて、非オフロードデータのプロトコル処理を行う。
【００３４】
情報制御部１０４は、Ｎｅｔｗｏｒｋ−ＨＷ２０が保持している情報の取得、及びＮｅｔｗｏｒｋ−ＨＷ２０に保持させる情報の送信を行う。
【００３５】
コマンド処理部１０５は、Ｍａｉｎ−ＨＷ１０とＮｅｔｗｏｒｋ−ＨＷ２０との間でデータを送受信するためのコマンドを生成する。また、コマンド処理部１０５は、Ｎｅｔｗｏｒｋ−ＨＷ２０から受信したコマンドを解釈する。コマンドには、例えば、オフロードデータを送受信するためのコマンド、非オフロードデータを送受信するためのコマンド、Ｎｅｔｗｏｒｋ−ＨＷ２０からネットワーク情報を取得するためのコマンド、Ｎｅｔｗｏｒｋ−ＨＷにオフロードポリシー情報を設定するためのコマンド、Ｎｅｔｗｏｒｋ−ＨＷ２０にＡＲＰ解決を依頼するためのコマンド等がある。
【００３６】
ＵＳＢ通信部１０６は、ＵＳＢ通信部２０５との間でコマンドの送受信を行う。
【００３７】
（Ｎｅｔｗｏｒｋ−ＨＷ）
図３は、実施の形態に係るＮｅｔｗｏｒｋ−ＨＷのソフトウェア構成の一例を示す図である。Ｎｅｔｗｏｒｋ−ＨＷ２０は、ネットワーク通信部２０１とネットワーク情報管理部２０２と情報制御受付部２０３とコマンド処理部２０４とＵＳＢ通信部２０５とを有する。また、ネットワーク通信部２０１はＴｏＥ制御部２１１を有する。これら各部は、ＲＯＭ２２又はＲＡＭ２３にインストールされた１以上のプログラムが、ＣＰＵ２１に実行させる処理により実現され得る。
【００３８】
ネットワーク通信部２０１は、外部ネットワークとの間でパケットの送受信を行う。ネットワーク通信部２０１は、Ｍａｉｎ−ＨＷ１０から送られてきたオフロードデータをＴｏＥ−ＨＷ２６に送信し、ＴｏＥ−ＨＷ２６にプロトコル処理させる。また、Ｍａｉｎ−ＨＷ１０から送られてきた非オフロードデータ（プロトコル処理部１１３によりプロトコル処理されたパケット）をＴｏＥ−ＨＷ２６を介して他の装置に送信する。
【００３９】
なお、ネットワーク通信部２０１は、ＴｏＥ−ＨＷ２６が行うことができないプロトコル処理を、ＴｏＥ−ＨＷ２６の代わりにオフロード処理するようにしてもよい。例えば、ネットワーク通信部２０１は、ＩＰｓｅｃ(Security Architecture for Internet Protocol)、ＴＬＳ（Transport Layer Security）又はＨＴＴＰ（Hypertext Transfer Protocol）のように、ＴｏＥ−ＨＷ２６では扱うことが困難なプロトコルを処理するようにしてもよい。
【００４０】
ＴｏＥ制御部２１１は、ＴｏＥ−ＨＷ２６の制御を行う。ＴｏＥ制御部２１１は、情報制御受付部２０３、及びネットワーク情報管理部２０２からの指示により、ＴｏＥ−ＨＷ２６に記憶されているネットワーク情報の取得及び更新、オフロードポリシー情報テーブルの管理（レコードの追加、更新、及び削除）を行う。
【００４１】
また、ＴｏＥ制御部２１１は、ＴｏＥ−ＨＷ２６がプロトコル処理を行う際にＭＡＣアドレス解決が出来ない場合、ＡＲＰリクエスト又はＮＳ（Neighbor Solicitation）要求を生成し、ＴｏＥ−ＨＷ２６を介してネットワークに送信する。
【００４２】
ネットワーク情報管理部２０２は、Ｎｅｔｗｏｒｋ−ＨＷ２０上で自律的に動作し、ＡＲＰパケット、ＤＨＣＰパケット、ＮＤ（Neighbor Discovery）パケット等をネットワーク通信部２０１及びＴｏＥ−ＨＷ２６を介して送受信し、これらのプロトコルのパケットを解析することでネットワーク情報の生成及び更新を行う。生成及び更新したネットワーク情報は、ＴｏＥ制御部２１１を介してＴｏＥ−ＨＷ２６に格納する。なお、ネットワーク情報管理部２０２は、ＩＫＥ（Internet Key Exchange）プロトコル等を用いた鍵情報の生成及び更新を行い、鍵情報をネットワーク通信部２０１に保持させるようにしてもよい。
【００４３】
また、ネットワーク情報管理部２０２は、他の装置から送信されるＰｉｎｇリクエスト、ＡＲＰリクエスト、ＲＡ(Router Advertisement)メッセージ等に対して自動的に応答する。
【００４４】
情報制御受付部２０３は、Ｍａｉｎ−ＨＷ１０からの要求を受けて、ＴｏＥ−ＨＷ２６が保持している情報の取得及びＴｏＥ−ＨＷ２６に保持させる情報の送信を、ＴｏＥ制御部２１１を介して行う。
【００４５】
コマンド処理部２０４は、Ｍａｉｎ−ＨＷ１０とＮｅｔｗｏｒｋ−ＨＷ２０との間でデータを送受信するためのコマンドを生成する。また、コマンド処理部１０５は、Ｍａｉｎ−ＨＷ１０から受信したコマンドを解釈する。
【００４６】
ＵＳＢ通信部２０５は、ＵＳＢ通信部１０６との間でコマンドの送受信を行う。
【００４７】
図４は、オフロードポリシー情報テーブルの一例を示す図である。オフロードポリシー情報は、ＴｏＥ−ＨＷ２６に格納されており、対象／非対象フラグと、スリープ解除フラグと、データリンク層種別と、データリンク層アドレスと、ネットワーク層種別と、ネットワーク層アドレスと、トランスポート層種別と、トランスポート層ポート番号とを有する。
【００４８】
対象／非対象フラグは、ＴｏＥ−ＨＷ２６がオフロード処理すべきパケットか否かを示すフラグである。対象／非対象フラグが「非対象」に設定されている場合、そのレコードに合致するパケットは、Ｍａｉｎ−ＨＷ１０にプロトコル処理させるパケットであることを示す。対象／非対象フラグが「対象（自動応答）」に設定されている場合、そのレコードに合致するパケットは、ネットワーク情報管理部２０２が処理すべきパケットであることを示す。対象／非対象フラグが「対象（ＴｏＥ）」に設定されている場合、そのレコードに合致するパケットは、ＴｏＥ−ＨＷ２６自身がプロトコル処理すべきパケットであることを示す。
【００４９】
対象／非対象フラグが「対象（ＴｏＥ）」に設定されているレコードは、対象／非対象フラグが「非対象」及び「対象（自動応答）」であるレコードに合致しないパケットを受信した場合に、ＴｏＥ−ＨＷ２６自身がプロトコル処理すべきであることを示すために予め設定されている情報（以下、「デフォルトオフロードポリシー情報」という）である。なお、デフォルトオフロードポリシー情報は、図４に示すようにオフロードポリシー情報テーブルに格納するようにしてもよいし、オフロードポリシー情報テーブルには格納せずに、予めＴｏＥ−ＨＷ２６の動作プログラムに組み込むようにしてもよい。なお、ＴｏＥ−ＨＷ２６は、対象／非対象フラグが「非対象」、「対象（自動応答）」及び「対象（ＴｏＥ）」のいずれのレコードにも合致しないパケットを受信した場合、当該パケットを破棄する。
【００５０】
スリープ解除フラグは、Ｍａｉｎ−ＨＷ１０にプロトコル処理させるパケット（対象／非対象フラグが「非対象」に設定されているパケット）を受信した場合に、スリープ状態（休止状態）であるＭａｉｎ−ＨＷ１０を起動させた上でＭａｉｎ−ＨＷ１０にプロトコル処理させるのか、又は、Ｍａｉｎ−ＨＷ１０を起動させずに受信したパケットを破棄するのかを識別するフラグである。スリープ解除フラグが「する」に設定されており、かつ、Ｍａｉｎ−ＨＷ１０がスリープ状態である場合、当該パケットを受信したＴｏＥ−ＨＷ２６は、Ｍａｉｎ−ＨＷ１０を起動させる信号を、ネットワーク通信部２０１を介してＭａｉｎ−ＨＷ１０に送信する。スリープ解除フラグが「しない」に設定されており、かつＭａｉｎ−ＨＷ１０がスリープ状態である場合、ＴｏＥ−ＨＷ２６は当該パケットを破棄する。
【００５１】
データリンク層種別と、データリンク層アドレスと、ネットワーク層種別と、ネットワーク層アドレスと、トランスポート層種別と、トランスポート層ポート番号とは、それぞれ受信したパケットを特定するための設定値である。データリンク層種別には、データリンク層のプロトコル名が設定される。ネットワーク層種別には、ネットワーク層のプロトコル名が設定される。トランスポート層種別には、トランスポート層のプロトコル名が設定される。データリンク層アドレスには、データリンク層種別に設定されたプロトコルの送信元アドレス及び宛先アドレスが設定される。ネットワーク層アドレスには、ネットワーク層種別に設定されたプロトコルの送信元アドレス及び宛先アドレスが設定される。トランスポート層ポート番号には、トランスポート層種別に設定されたプロトコルの送信元ポート番号及び宛先ポート番号が設定される。「＊」は、ワイルドカード（任意の値）であることを示す。
【００５２】
なお、オフロードポリシー情報には、データリンク層種別、ネットワーク層種別及びトランスポート層種別に加えて、さらに上位のレイヤのプロトコル名（例えば、ＯＳＩ参照モデルにおけるアプリケーション層のプロトコル名）を設定可能なようにしてもよい。
【００５３】
＜処理手順＞
（データ送信手順）
図５は、送信処理の処理手順の一例を示すシーケンス図である。図５を用いて、アプリケーション処理部１０１が他の装置にデータを送信する場合の処理手順について説明する。
【００５４】
アプリケーション処理部１０１は、利用者の指示を受けて通信処理を開始する（Ｓ３０１）。続いて、アプリケーション処理部１０１は、ＴｏＥ−ＨＷ２６でオフロード処理が可能であるかを確認するため、情報制御部１０４に対して、ＴｏＥ−ＨＷ２６が処理しているＴＣＰコネクション数を問い合わせる（Ｓ３０３）。続いて、問い合わせを受けた情報制御部１０４は、コマンド処理部１０５に対してＮｅｔｗｏｒｋ−ＨＷ２０情報取得信号を送信する（Ｓ３０５）。続いて、コマンド処理部１０５は、ＵＳＢ通信部１０６及びＵＳＢ通信部２０５を介して、ＴＣＰコネクション数を問い合わせるためのＮｅｔｗｏｒｋ−ＨＷ情報取得コマンドをコマンド処理部２０４に送信する（Ｓ３０７）。コマンド処理部２０４は、情報制御受付部２０３に情報取得信号を送信する（Ｓ３０９）。情報制御受付部２０３が受信した情報取得信号は、ネットワーク通信部２０１及びＴｏＥ制御部２１１を介してＴｏＥ−ＨＷ２６に送信される（Ｓ３１１、Ｓ３１３、Ｓ３１５）。続いて、ＴｏＥ−ＨＷ２６は、ＴｏＥ−ＨＷ２６自身が確立中のＴＣＰコネクション数をＴｏＥ制御部２１１に送信する。ＴｏＥ制御部２１１に送信されたＴＣＰコネクション数は、ステップＳ３０１〜ステップＳ３１５とは逆の処理手順によりアプリケーション処理部１０１に伝えられる。
【００５５】
アプリケーション処理部１０１は、ＴｏＥ−ＨＷ２６が処理しているＴＣＰコネクション数が、所定の閾値を超えているか否かを判断する。所定の閾値を超えていない場合、ＴｏＥ−ＨＷ２６で他の装置に送信するデータのオフロード処理が可能であると判断し、ステップＳ３２１の処理手順に進む。所定の閾値を超えている場合、Ｍａｉｎ−ＨＷ１０自身でプロトコル処理を行うべきと判断して、ステップＳ３３１の処理手順に進む。所定の閾値は、予めＲＯＭ１２又はＲＡＭ１３に保持するようにしてもよいし、ステップＳ３０３〜ステップＳ３１５の処理手順の中でＴｏＥ−ＨＷ２６から取得するようにしてもよい。
【００５６】
ステップＳ３２１で、アプリケーション処理部１０１は、他の装置に送信するデータ、セッションＩＤ、及び通信相手情報（他の装置のＩＰアドレス及びＴＣＰポート番号）をオフロードデータ送受信部１０２に送信する。なお、セッションＩＤは、Ｍａｉｎ−ＨＷ１０の中で、他の装置との間で送受信されるデータを識別するためのＩＤである。オフロードデータ送受信部１０２は、他の装置に送信するデータ、セッションＩＤ、及び通信相手情報をコマンド処理部１０５に送信する（Ｓ３２３）。コマンド処理部１０５は、ＵＳＢ通信部１０６及びＵＳＢ通信部２０５を介して、コマンド処理部２０４にオフロードデータ送信コマンドを送信する（Ｓ３２５）。コマンド処理部２０４は、オフロードデータ送信信号をネットワーク通信部２０１及びＴｏＥ制御部２１１を介してＴｏＥ−ＨＷ２６に送信する（Ｓ３２７、Ｓ３２９）。他の装置に送信するデータ、セッションＩＤ、及び通信相手情報を受信したＴｏＥ−ＨＷ２６は、通信相手情報とネットワーク情報とに基づいてイーサネットフレームを生成し、Ｎｅｔｗｏｒｋ  Ｉ／Ｆ２７を介してネットワーク上にパケットを送信する（Ｓ３３０）。
【００５７】
ステップＳ３３１で、アプリケーション処理部１０１は、他の装置に送信するデータ、セッションＩＤ、及び通信相手情報（他の装置のＩＰアドレス及びＴＣＰポート番号）を非オフロードデータ送受信部１０３に送信する。
【００５８】
続いて、非オフロードデータ送受信部１０３は、ＴｏＥ−ＨＷ２６に記憶されているネットワーク情報を取得するため、情報制御部１０４に対して、ネットワーク情報の取得を要求する（Ｓ３３５）。続いて、情報制御部１０４は、コマンド処理部１０５に対してＮｅｔｗｏｒｋ−ＨＷ情報取得信号を送信する（Ｓ３３５）。続いて、コマンド処理部１０５は、ＵＳＢ通信部１０６及びＵＳＢ通信部２０５を介して、ネットワーク情報を取得するためのＮｅｔｗｏｒｋ−ＨＷ情報取得コマンドをコマンド処理部２０４に送信する（Ｓ３３７）。Ｎｅｔｗｏｒｋ−ＨＷ情報取得コマンドを受信したコマンド処理部２０４は、情報制御受付部２０３に情報取得信号を送信する（Ｓ３３９）。情報制御受付部２０３が受信した情報取得信号は、ネットワーク通信部２０１及びＴｏＥ制御部２１１を介してＴｏＥ−ＨＷ２６に送信される（Ｓ３４１、Ｓ３４３、Ｓ３４５）。続いて、ＴｏＥ−ＨＷ２６は、ネットワーク情報をＴｏＥ制御部２１１に送信する。ＴｏＥ制御部２１１に送信されたネットワーク情報は、ステップＳ３３３〜ステップＳ３４５とは逆の処理手順により非オフロードデータ送受信部１０３に伝えられる。
【００５９】
非オフロードデータ送受信部１０３は、プロトコル処理部１１３にネットワーク情報を設定する（Ｓ３４７）。続いて、非オフロードデータ送受信部１０３は、他の装置に送信するデータ、セッションＩＤ、及び通信相手情報（他の装置のＩＰアドレス及びＴＣＰポート番号）をプロトコル処理部１１３に送信する（Ｓ３４９）。プロトコル処理部１１３は、通信相手情報とネットワーク情報とに基づいてイーサネットフレームを生成し、生成したイーサネットフレームを非オフロードデータ送受信部１０３に送信する。
【００６０】
なお、ネットワーク情報に含まれているＡＲＰテーブル又はＮＤキャッシュに、他の装置のＩＰアドレスに対応するＭＡＣアドレスが存在しない場合、プロトコル処理部１１３はイーサネットフレームを生成することが出来ない。この場合、プロトコル処理部１１３は、Ｎｅｔｗｏｒｋ−ＨＷ２０に対してネットワーク情報の更新を要求し、再度ステップＳ３３３〜ステップＳ３４５の処理手順によりネットワーク情報を取得する。プロトコル処理部１１３は、ネットワーク情報が更新されるまで繰り返しネットワーク情報を取得するようにしてもよい。また、Ｎｅｔｗｏｒｋ−ＨＷ２０側は、プロトコル処理部１１３に対してネットワーク情報が更新されたことを通知するようにしてもよい。
【００６１】
ネットワーク情報の更新に関する処理手順を具体的に説明する。プロトコル処理部１１３は、情報制御部１０４にネットワーク情報の更新を要求する。当該要求は、コマンド処理部１０５、コマンド処理部２０４、情報制御受付部２０３を介してネットワーク情報管理部２０２に伝えられる。ネットワーク情報管理部２０２は、ＡＲＰリクエスト生成コマンド又はＮＳ要求生成コマンドをＴｏＥ制御部２１１に送信する。ＴｏＥ制御部２１１は、ＡＲＰリクエスト又はＮＳ要求を生成し、ＴｏＥ−ＨＷ２６を介してネットワークに送信する。ＴｏＥ−ＨＷ２６が受信したＡＲＰ応答、又はＮＡ（Neighbor Advertisement）応答は、ネットワーク情報管理部２０２に伝えられ、ネットワーク情報管理部２０２によりネットワーク情報の更新が行われる。
【００６２】
続いて、非オフロードデータ送受信部１０３は、ＴｏＥ−ＨＷ２６に格納されているオフロードポリシー情報テーブルにオフロードポリシー情報を追加させるために、情報制御部１０４にオフロードポリシー情報設定信号を送信する（Ｓ３５１）。続いて、情報制御部１０４は、コマンド処理部１０５に対してＮｅｔｗｏｒｋ−ＨＷ情報設定信号を送信する（Ｓ３５３）。続いて、コマンド処理部１０５は、ＵＳＢ通信部１０６及びＵＳＢ通信部２０５を介して、オフロードポリシーを設定するためのＮｅｔｗｏｒｋ−ＨＷ情報設定コマンドをコマンド処理部２０４に送信する（Ｓ３５５）。Ｎｅｔｗｏｒｋ−ＨＷ情報設定コマンドを受信したコマンド処理部２０４は、情報制御受付部２０３に情報設定信号を送信する（Ｓ３５７）。情報制御受付部２０３が受信した情報設定信号は、ネットワーク通信部２０１及びＴｏＥ制御部２１１を介してＴｏＥ−ＨＷ２６に送信される（Ｓ３５９、Ｓ３６１、Ｓ３６３）。続いて、ＴｏＥ−ＨＷ２６は、受信したオフロードポリシー情報をオフロードポリシー情報テーブルに新たなレコードを追加して格納する。ＴｏＥ−ＨＷ２６は、オフロードポリシー情報の追加が完了したことを、ステップＳ３５１〜ステップＳ３６３とは逆の処理手順により非オフロードデータ送受信部１０３に伝える。
【００６３】
なお、情報処理装置が他の装置に対してＴＣＰでデータを送信する場合、例えば、「対象／非対象」フラグは「非対象」、データリンク層種別は「ＭＡＣ」、データリンク層アドレスは「＊」、ネットワーク層種別は「ＩＰ」、ネットワーク層アドレスのソースアドレス（Ｓｒｃ）は他の装置のＩＰアドレス、ネットワーク層アドレスの宛先アドレス（Ｄｓｔ）は情報処理装置自身のＩＰアドレス、トランスポート層種別は「ＴＣＰ」、トランスポート層ポート番号のソースポート番号（Ｓｒｃ）は、他の装置のポート番号、トランスポート層ポート番号の宛先ポート番号（Ｄｓｔ）は、情報処理装置自身のポート番号（アプリケーション処理部に割り当てわれたポート番号）であるオフロードポリシー情報がオフロードポリシー情報テーブルに追加される。
【００６４】
続いて、非オフロードデータ送受信部１０３は、プロトコル処理部１１３により生成されたイーサネットフレームをコマンド処理部１０５に送信する（Ｓ３７１）。コマンド処理部１０５は、ＵＳＢ通信部１０６及びＵＳＢ通信部２０５を介して、パケット送信コマンドをコマンド処理部２０４に送信する（Ｓ３７３）。コマンド処理部２０４は、イーサネットフレームを含むパケット送信信号をネットワーク通信部２０１及びＴｏＥ制御部２１１を介してＴｏＥ−ＨＷ２６に送信する（Ｓ３７５、Ｓ３７７）。ＴｏＥ−ＨＷ２６は、受信したイーサネットフレームをＮｅｔｗｏｒｋ  Ｉ／Ｆ２７を介してネットワークに送信する（Ｓ３７９）。
【００６５】
（データ送信手順の補足）
なお、非オフロードデータ送受信部１０３又はプロトコル処理部１１３は、ＴｏＥ−ＨＷ２６から取得したネットワーク情報をキャッシュするようにしてもよい。また、ＴｏＥ制御部２１１は、所定の条件を満たす場合に、更新されたネットワーク情報を非オフロードデータ送受信部１０３又はプロトコル処理部１１３に通知するようにしてもよい。所定の条件を満たす場合とは、例えば、ネットワーク情報が更新された場合、Ｍａｉｎ−ＨＷ１０がスリープ状態でない場合、Ｍａｉｎ−ＨＷ１０がスリープ状態から復帰した場合である。
【００６６】
また、ＴｏＥ制御部２１１は、更新されたネットワーク情報のうち、差分のみを非オフロードデータ送受信部１０３又はプロトコル処理部１１３に通知するようにしてもよい。また、ＴｏＥ制御部２１１は、非オフロードデータをＭａｉｎ−ＨＷ１０に送信する際に、非オフロードデータとネットワーク情報とを合わせてＮｅｔｗｏｒｋ−ＨＷ２０に送信するようにしてもよい。また、ＴｏＥ制御部２１１は、非オフロードデータ送受信部１０３又はプロトコル処理部１１３から、ネットワーク情報を全て通知するのか、又は、指定された情報のみを通知するのかに関する設定を受け付けるようにしてもよい。この場合、ＴｏＥ制御部２１１は、ネットワーク情報のうち、指定された情報のみを非オフロードデータ送受信部１０３又はプロトコル処理部１１３に通知するようにする。
【００６７】
なお、ステップＳ３０３〜ステップＳ３１５の処理手順で、アプリケーション処理部１０１は、ＴｏＥ−ＨＷ２６が処理しているＴＣＰコネクション数と所定の閾値とを比較するようにしたが、他の処理能力に係る所定の値を用いるようにしてもよい。例えば、アプリケーション処理部１０１は、ＴｏＥ−ＨＷ２６のＣＰＵ使用率、メモリ使用率、トラフィック量、温度、クロック数、又は消費電力等の値をＴｏＥ−ＨＷ２６から取得して、取得した値と所定の閾値とを比較するようにしてもよい。また、アプリケーション処理部１０１は、Ｎｅｔｗｏｒｋ−ＨＷ２０のＣＰＵ２１の使用率、ＲＡＭ２３の使用率、トラフィック量、温度、クロック数、又は消費電力等の値をＮｅｔｗｏｒｋ−ＨＷ２０から取得して、取得した値と所定の閾値とを比較するようにしてもよい。
【００６８】
なお、Ｍａｉｎ−ＨＷ１０は、実行されるアプリケーションごとに優先度を設けるようにして、優先度に応じてＮｅｔｗｏｒｋ−ＨＷ２０（ＴｏＥ−ＨＷ２６）にプロトコル処理させる（オフロード処理させる）のか否かを判断するようにしてもよい。例えば、Ｍａｉｎ−ＨＷ１０は、動画像転送といった大容量データを送受信するアプリケーションのデータ送信を優先的にオフロード処理させるようにし、Ｗｅｂブラウザのような比較的小さいデータを送受信するアプリケーションはＭａｉｎ−ＨＷ１０（プロトコル処理部１１３）にてプロトコル処理するようにしてもよい。
【００６９】
更に、Ｍａｉｎ−ＨＷ１０は、Ｎｅｔｗｏｒｋ−ＨＷ２０（ＴｏＥ−ＨＷ２６）の処理能力が不足している場合、優先度の低いアプリケーションの通信のオフロード処理を中止させ、優先度の高いアプリケーションの通信をオフロード処理させるようにしてもよい。以下、具体的な手順を説明する。
【００７０】
まず、アプリケーション処理部１０１は、新規にセッションを開始する際に、オフロード処理中の既存のセッションの優先度と、当該新規セッションの優先度とを比較する。なお、セッションとは、アプリケーション処理部１０１と他の装置との間で行われる一連の通信をいう。例えば、「新規にセッションを開始する」ことの一例は、"新たに他の装置との間で動画像の転送を開始する"ことである。
【００７１】
続いて、アプリケーション処理部１０１は、優先度の低いセッションを停止すると共に、Ｎｅｔｗｏｒｋ−ＨＷ２０（ＴｏＥ−ＨＷ２６）から優先度の低いセッションに対応するＴＣＰセッション情報を取得する。ＴＣＰセッション情報は、例えば、シーケンス番号、ウインドウサイズ等である。続いて、アプリケーション処理部１０１は、取得したＴＣＰセッション情報を非オフロードデータ送受信部１０３に送信する。非オフロードデータ送受信部１０３は、受信したＴＣＰセッション情報をプロトコル処理部１１３に送信する。これにより、プロトコル処理部１１３はＴｏＥ−ＨＷ２６のＴＣＰの状態を引き継ぐことができる。続いて、アプリケーション処理部１０１は、優先度の低いセッションを再開し、ステップＳ３３１〜ステップＳ３７９の処理手順によりパケットを送信する。続いて、アプリケーション処理部１０１は、優先度の高いセッションを開始し、ステップＳ３２１〜ステップＳ３３１の処理手順によりデータを送信する。以上の手順により、Ｍａｉｎ−ＨＷ１０は、Ｎｅｔｗｏｒｋ−ＨＷ２０（ＴｏＥ−ＨＷ２６）の処理能力が不足している場合、優先度の低いアプリケーションのデータ送信のオフロード処理を中止させ、優先度の高いアプリケーションのデータ送信をオフロード処理させることができる。
【００７２】
（データ受信手順）
図６は、受信処理の処理手順の一例を示すフローチャートである。図６を用いて、ＴｏＥ−ＨＷ２６が他の装置からパケットを受信した場合に、ＴｏＥ−ＨＷ２６がオフロード処理するのか否かを判断する手順について説明する。
【００７３】
まず、ＴｏＥ−ＨＷ２６は、他の装置からパケットを受信する（Ｓ４０１）。続いて、ＴｏＥ−ＨＷ２６は、オフロードポリシー情報に基づいて、受信したパケットをネットワーク情報管理部２０２に処理させるのか、ＴｏＥ−ＨＷ２６自身がプロトコル処理するのか、Ｍａｉｎ−ＨＷ１０にプロトコル処理させるのかを判断する（Ｓ４０３）。ネットワーク情報管理部２０２に処理させると判断した場合、ステップＳ４０５の処理手順に進む。ＴｏＥ−ＨＷ２６自身がプロトコル処理すると判断した場合、ステップＳ４０９の処理手順に進む。Ｍａｉｎ−ＨＷ１０にプロトコル処理させると判断した場合、ステップＳ４１５の処理手順に進む。
【００７４】
ステップＳ４０５で、ＴｏＥ−ＨＷ２６は、ＣＰＵ２１に対して、受信したパケットをネットワーク情報管理部２０２に処理させることを通知する。続いて、ＴｏＥ−ＨＷ２６は、他の装置から受信したパケットをそのまま出力する（Ｓ４０７）。
【００７５】
ステップＳ４０９で、ＴｏＥ−ＨＷ２６は、他の装置から受信したパケットに対してプロトコル処理を行う。続いて、ＴｏＥ−ＨＷ２６は、ＣＰＵ２１に対して、プロトコル処理を行ったデータを出力することを通知する（Ｓ４１１）。続いて、ＴｏＥ−ＨＷ２６は、プロトコル処理を行ったデータを出力する（Ｓ４１３）。
【００７６】
ステップＳ４１５で、ＴｏＥ−ＨＷ２６は、ＣＰＵ２１に対して、受信したパケットをＭａｉｎ−ＨＷ１０に処理させることを通知する。続いて、ＴｏＥ−ＨＷ２６は、他の装置から受信したパケットをそのまま出力する（Ｓ４１７）。
【００７７】
図７は、受信処理の処理手順の一例を示すシーケンス図である。図７を用いて、情報処理装置が、他の装置から受信したパケットをプロトコル処理する処理手順を説明する。
【００７８】
まず、ＴｏＥ−ＨＷ２６は、他の装置からパケットを受信する（Ｓ５０１）。ＴｏＥ−ＨＷ２６は、図６のステップＳ４０１〜ステップＳ４１７の処理手順に従い、オフロードポリシー情報に基づいて、受信したパケットをネットワーク情報管理部２０２に処理させるのか、ＴｏＥ−ＨＷ２６自身がプロトコル処理するのか、又は、Ｍａｉｎ−ＨＷ１０にプロトコル処理させるのかを判断する。ＴｏＥ−ＨＷ２６自身がプロトコル処理すると判断した場合、ステップＳ５０３の処理手順に進む。ネットワーク情報管理部２０２に処理させると判断した場合、ステップＳ５１３の処理手順に進む。Ｍａｉｎ−ＨＷ１０にプロトコル処理させると判断した場合、ステップＳ５２５の処理手順に進む。
【００７９】
ステップＳ５０３で、ＴｏＥ−ＨＷ２６は、プロトコル処理を行ったデータ（以下、図７の説明において「受信データ」という）をネットワーク通信部２０１に送信する。ネットワーク通信部２０１が受信した受信データは、コマンド処理部２０４、ＵＳＢ通信部２０５、ＵＳＢ通信部１０６、コマンド処理部１０５及びオフロードデータ送受信部１０２を介してアプリケーション処理部１０１に送信される（Ｓ５０５、Ｓ５０７、Ｓ５０９、Ｓ５１１）。
【００８０】
ステップＳ５１３で、ＴｏＥ−ＨＷ２６は、他の装置から受信したパケット（以下、図７の説明において「未処理パケット」という）をネットワーク通信部２０１に送信する（Ｓ５１３）。ネットワーク通信部２０１は、未処理パケットをネットワーク情報管理部２０２に送信する（Ｓ５１５）。ネットワーク情報管理部２０２は、受信した未処理パケットを分析し（Ｓ５１７）、ＴｏＥ−ＨＷ２６に格納されているネットワーク情報の更新を行う。また、ネットワーク情報管理部２０２は、未処理パケットが、Ｐｉｎｇリクエストなどの他の装置に応答すべきパケットである場合、応答パケットを生成してネットワーク通信部２０１に送信する（Ｓ５１９）。ネットワーク通信部２０１は、受信した応答パケットをＴｏＥ−ＨＷ２６に送信する（Ｓ５２１）。ＴｏＥ−ＨＷ２６は、受信した応答パケットを他の装置に送信する（Ｓ５２３）。
【００８１】
ステップＳ５２５で、ＴｏＥ−ＨＷ２６は、未処理パケットをネットワーク通信部２０１に送信する。ネットワーク通信部２０１が受信した未処理パケットは、コマンド処理部２０４、ＵＳＢ通信部２０５、ＵＳＢ通信部１０６及びコマンド処理部１０５を介して非オフロードデータ送受信部１０３に送信される（Ｓ５２７、Ｓ５２９、Ｓ５３１）。続いて、非オフロードデータ送受信部１０３は、プロトコル処理部１１３に未処理パケットを送信し、プロトコル処理部１１３に対して未処理パケットをプロトコル処理するよう指示する（Ｓ５３３）。非オフロードデータ送受信部１０３は、プロトコル処理部１１３でプロトコル処理された受信データをアプリケーション処理部１０１に送信する（Ｓ５３５）。
【００８２】
＜効果＞
以上、実施の形態に係る情報処理装置は、他の装置との間で新たに通信を行う場合、Ｎｅｔｗｏｒｋ−ＨＷ２０の処理能力が不足していないかを確認し、処理能力が不足している場合、Ｍａｉｎ−ＨＷ１０でプロトコル処理を行うようにした。これにより、実施の形態に係る情報処理装置は、Ｎｅｔｗｏｒｋ−ＨＷ２０の処理能力が不足している場合であっても、他の装置との間で新たに通信を開始することができる。また、これにより、実施の形態に係る情報処理装置は、処理能力に制約があるＮｅｔｗｏｒｋ−ＨＷ２０では対応できない量のプロトコル処理を行うことができる。また、これにより、実施の形態に係る情報処理装置は、Ｎｅｔｗｏｒｋ−ＨＷ２０に必要なハードウェアリソースを抑えることもできる。
【００８３】
また、実施の形態に係る情報処理装置は、データリンク層種別、ネットワーク層種別及びトランスポート層種別に加えて、さらに上位のレイヤのプロトコル名をオフロードポリシー情報に設定できるようにした。これにより、実施の形態に係る情報処理装置は、Ｎｅｔｗｏｒｋ−ＨＷ２０では処理できない種類のプロトコルのプロトコル処理をＭａｉｎ−ＨＷ１０に代替させることができる。
【００８４】
また、実施の形態に係る情報処理装置は、Ｍａｉｎ−ＨＷ１０がスリープ状態である場合、Ｍａｉｎ−ＨＷ１０のスリープ状態を解除し、他の装置から受信したパケットをＭａｉｎ−ＨＷ１０にプロトコル処理させることを可能にした。これにより、実施の形態に係る情報処理装置は、Ｍａｉｎ−ＨＷ１０がスリープ状態である場合であっても、Ｎｅｔｗｏｒｋ−ＨＷ２０が対応できない量のプロトコル処理を、Ｍａｉｎ−ＨＷ１０にプロトコル処理させることができる。また、実施の形態に係る情報処理装置は、Ｍａｉｎ−ＨＷ１０がスリープ状態である場合であっても、Ｎｅｔｗｏｒｋ−ＨＷ２０では処理できない種類のプロトコルのプロトコル処理をＭａｉｎ−ＨＷ１０に代替させることができる。
【００８５】
また、実施の形態に係る情報処理装置は、Ｍａｉｎ−ＨＷ１０がスリープ状態であり、かつＮｅｔｗｏｒｋ−ＨＷ２０が他の装置からパケットを受信した場合において、スリープ状態を解除した上で他の装置から受信したパケットをＭａｉｎ−ＨＷ１０にプロトコル処理させるのか、又は、スリープ状態を解除せずに受信したパケットを破棄するのかを選択可能にした。これにより、実施の形態に係る情報処理装置は、不要なパケットを受信した場合にＭａｉｎ−ＨＷ１０のスリープ状態を解除する必要がなく、消費電力を削減することができる。
【００８６】
また、実施の形態に係る情報処理装置は、Ｍａｉｎ−ＨＷ１０が通信を行う度にＮｅｔｗｏｒｋ−ＨＷ２０からネットワーク情報を取得するのではなく、所定の条件を満たす場合に、更新されたネットワーク情報をＮｅｔｗｏｒｋ−ＨＷ２０からＭａｉｎ−ＨＷ１０に通知することを可能にした。これにより、実施の形態に係る情報処理装置は、Ｍａｉｎ−ＨＷ１０とＮｅｔｗｏｒｋ−ＨＷ２０との間の通信回数を削減することができる。
【００８７】
また、実施の形態に係る情報処理装置は、更新されたネットワーク情報のみをＮｅｔｗｏｒｋ−ＨＷ２０からＭａｉｎ−ＨＷ１０に通知することを可能にした。これにより、Ｍａｉｎ−ＨＷ１０は、変更されていないネットワーク情報を取得する必要がなく、Ｎｅｔｗｏｒｋ−ＨＷ２０との間の通信回数又は通信頻度を削減することが可能になる。
【００８８】
また、実施の形態に係る情報処理装置は、Ｍａｉｎ−ＨＷ１０がＮｅｔｗｏｒｋ−ＨＷ２０からＴＣＰセッション情報を取得した上で、優先度の低いアプリケーションのオフロード処理を中止させることを可能にした。これにより、Ｍａｉｎ−ＨＷ１０は、Ｎｅｔｗｏｒｋ−ＨＷ２０の処理能力が不足している状態であっても、優先度の高いアプリケーションのデータをＮｅｔｗｏｒｋ−ＨＷ２０にオフロード処理させることができる。
【００８９】
以上、本発明は実施の形態に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能である。
【００９０】
以上、実施の形態で述べたシーケンス及びフローチャートは、矛盾の無い限り順序を入れ替えてもよい。
【００９１】
以上、実施の形態の全部又は一部は、プログラムによって実装され得る。このプログラムは、記憶媒体に格納することができる。Ｍａｉｎ−ＨＷ１０又はＮｅｔｗｏｒｋ−ＨＷ２０は、記憶媒体に格納されたプログラムをＲＡＭにインストールすることができる。
【００９２】
なお、実施の形態において、Ｎｅｔｗｏｒｋ−ＨＷ２０、ネットワーク通信部２０１又はＴｏＥ−ＨＷ２６は、通信部の一例である。非オフロードデータ送受信部１０３及びプロトコル処理部１１３は、パケット処理部の一例である。オフロードポリシー情報は、オフロード情報の一例である。ＴＣＰセッション情報は、セッションに関する情報の一例である。スリープ解除フラグは、起動を許可するか否かの情報の一例である。アプリケーション処理部１０１は、制御部の一例である。
【符号の説明】
【００９３】
１０  Ｍａｉｎ−ＨＷ
２０  Ｎｅｔｗｏｒｋ−ＨＷ
２６  ＴｏＥ−ＨＷ
１０１  アプリケーション処理部
１０２  オフロードデータ送受信部
１０３  非オフロードデータ送受信部
１０４  情報制御部
１０５、２０４  コマンド処理部
１０６、２０５  ＵＳＢ通信部
１１３  プロトコル処理部
２０１  ネットワーク通信部
２０２  ネットワーク情報管理部
２０３  情報制御受付部
２１１  ＴｏＥ制御部
【先行技術文献】
【特許文献】
【００９４】
【特許文献１】特開２００５‐０８５２８４号公報
【図１】
2016134824.tif 000003
【図２】
2016134824.tif 000004
【図３】
2016134824.tif 000005
【図４】
2016134824.tif 000006
【図５】
2016134824.tif 000007
【図６】
2016134824.tif 000008
【図７】
2016134824.tif 000009