(57)【要約】【課題】  受信パケットを振り分けるためのフィルタリングによる処理負荷がかからない技術を提供すること。【解決手段】  外部機器からパケットを受信すると、サブシステムが動作していなければ該パケットをメインシステムに配送し、サブシステムが動作していれば該パケットをメインシステム及びサブシステムの何れか一方に配送する。【選択図】  図１
2015087871.tif 000002
【特許請求の範囲】
【請求項１】
配送されたパケットを用いてアプリケーションを実行するメインシステムと、配送されたパケットを用いて該アプリケーションとは異なるアプリケーションを実行するサブシステムと、を有する通信装置であって、
外部機器からパケットを受信すると、前記サブシステムが動作していなければ該パケットを前記メインシステムに配送し、前記サブシステムが動作していれば該パケットを前記メインシステム及び前記サブシステムの何れか一方に配送する配送手段を備えることを特徴とする通信装置。
【請求項２】
前記配送手段は、前記サブシステムのアプリケーションの起動が指示されていない間は、前記外部機器から受信したパケットを前記メインシステムに配送することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記配送手段は、前記サブシステムのアプリケーションの起動が指示されてから規定時間内は、前記外部機器から受信したパケットを前記サブシステムに配送することを特徴とする請求項１又は２に記載の通信装置。
【請求項４】
前記配送手段は、前記サブシステムの起動が指示されていない間は、前記外部機器から受信したパケットを前記メインシステムに配送することを特徴とする請求項１に記載の通信装置。
【請求項５】
前記配送手段は、前記サブシステムの起動が指示されてから規定時間内は、前記外部機器から受信したパケットを前記サブシステムに配送することを特徴とする請求項１又は４に記載の通信装置。
【請求項６】
前記配送手段は、前記サブシステムのアプリケーションの起動が指示されてから規定時間内は、前記外部機器から受信したパケットを、前記メインシステム及び前記サブシステムのうち該パケットに含まれている宛先が示す一方に配送することを特徴とする請求項１又は２に記載の通信装置。
【請求項７】
前記配送手段は、前記サブシステムの起動が指示されてから規定時間内は、前記外部機器から受信したパケットを、前記メインシステム及び前記サブシステムのうち該パケットに含まれている宛先が示す一方に配送することを特徴とする請求項１又は４に記載の通信装置。
【請求項８】
前記メインシステムは外部と通信を行うためのアプリケーションを実行し、
前記サブシステムは、該通信の設定を行うためのアプリケーションを実行し、
前記配送手段は、
前記メインシステムが外部と通信を行うための設定がなされていない場合、前記サブシステムのアプリケーションの起動が指示されてから規定時間内は、前記外部機器から受信したパケットを前記サブシステムに配送し、
前記メインシステムが外部と通信を行うための設定がなされた場合、前記サブシステムのアプリケーションの起動が指示されてから規定時間内は、前記外部機器から受信したパケットを、前記メインシステム及び前記サブシステムのうち該パケットに含まれている宛先が示す一方に配送する
ことを特徴とする請求項１に記載の通信装置。
【請求項９】
前記配送手段は、前記サブシステムに対する通信を終了させることを通知するためのパケットを前記外部機器から受信した場合には、該パケットを前記サブシステムに配送することを特徴とする請求項１乃至８の何れか１項に記載の通信装置。
【請求項１０】
配送されたパケットを用いてアプリケーションを実行するメインシステムと、配送されたパケットを用いて該アプリケーションとは異なるアプリケーションを実行するサブシステムと、を有する通信装置の制御方法であって、
前記通信装置の配送手段が、外部機器からパケットを受信すると、前記サブシステムが動作していなければ該パケットを前記メインシステムに配送し、前記サブシステムが動作していれば該パケットを前記メインシステム及び前記サブシステムの何れか一方に配送することを特徴とする通信装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信技術に関し、特に、受信したデータを目的のアプリケーションに配送する為の技術に関するものである。
【背景技術】
【０００２】
通信に関わる処理のなかで、負荷の重い処理を分離して別のＣＰＵ（サブシステム）やハードウェアにより処理するという構成が最近増加傾向にある。通常１つのＣＰＵ上でソフトウェアのスタックとして実現されているものを複数のＣＰＵで分離実行することで、全体として処理性能を向上させることができる。
【０００３】
このようなネットワーク処理が複数のサブシステムに分割された構成において、ソフトウェアをどこに配置すべきかが、機能分担、および保守・管理のために重要になってくる。
【０００４】
例えば、無線ＬＡＮの簡易設定機能を持つソフトウェアがある。この簡易設定機能を持つソフトウェアと、外部と接続するための無線ＬＡＮ機能を持つソフトウェア（無線ＬＡＮドライバ）と、をサブシステムとして分離する。このように分離することで、無線ＬＡＮ機能に関するソフトウェア群をサブシステムにまとめられ、保守・管理が容易になるというメリットがある。
【０００５】
一方、このように複数のサブシステムが存在し、そのサブシステム内部に通信すべきアプリケーションを含んでいるような構成の場合、受信したパケットを目的とするアプリケーションに配送するための機構が必要である。
【０００６】
受信したパケットを目的とするアプリケーションに配送するための方法として、特許文献１には、データ受信時において、受信データが持つ識別情報に従って受信データを各アプリケーションのいずれかに振り分けることが記載されている。
【０００７】
また、特許文献２には、常時すべてのパケットを破棄するフィルタと、予め設定された特定のパケットのみを通過させる通過フィルタとを有する装置が記載されている。この装置では、規制解除要求に応じて通過フィルタを一時的に有効状態または無効状態に設定することで、パケットに対するデータ通信規制を解除する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０００−２３５５３６号公報
【特許文献２】特開２００３−２５９０２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した特許文献１に記載の方法では、パケットを受信するたびに識別情報を参照して各アプリケーションへ受信パケットを振り分ける必要があるため、パケットを受信するたびにフィルタリングによる処理負荷がかかる。
【００１０】
また、上述した特許文献２に記載の装置では、予めフィルタの有効時間を設定し、有効期間が経過したときにフィルタを無効状態にする。そのため、フィルタを有効状態にすることで行ったデータ通信が完了した後も、フィルタの有効時間が経過するまでフィルタリングを行う処理負荷がかかる可能性がある。
【００１１】
本発明は、このような問題に鑑みてなされたものであり、受信パケットを振り分けるためのフィルタリングによる処理負荷がかからない技術を提供する。
【課題を解決するための手段】
【００１２】
本発明の一様態は、配送されたパケットを用いてアプリケーションを実行するメインシステムと、配送されたパケットを用いて該アプリケーションとは異なるアプリケーションを実行するサブシステムと、を有する通信装置であって、外部機器からパケットを受信すると、前記サブシステムが動作していなければ該パケットを前記メインシステムに配送し、前記サブシステムが動作していれば該パケットを前記メインシステム及び前記サブシステムの何れか一方に配送する配送手段を備えることを特徴とする。
【発明の効果】
【００１３】
本発明の構成によれば、受信パケットを振り分けるためのフィルタリングによる処理負荷がかからないようにすることができる。
【図面の簡単な説明】
【００１４】
【図１】通信装置１０１の機能構成例を示すブロック図。
【図２】通信制御部１２６の構成を示すブロック図。
【図３】通信装置１０１が行う処理のフローチャート。
【図４】ステップＳ３０３における処理の詳細を示すフローチャート。
【図５】ステップＳ３０９における処理の詳細を示すフローチャート。
【図６】通信装置１０１が行う処理のフローチャート。
【図７】通信装置１０１が行う処理のフローチャート。
【図８】ステップＳ７０３における処理の詳細を示すフローチャート。
【図９】ステップＳ７０５における処理の詳細を示すフローチャート。
【図１０】通信装置１０１が行う処理のフローチャート。
【図１１】通信装置１０１が行う処理のフローチャート。
【発明を実施するための形態】
【００１５】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の１つである。
【００１６】
以下では、図１に示す構成を有する通信装置が受信データ（受信パケット）を処理する場合の様々な実施形態について説明する。然るに、以下に示す各実施形態について説明する前に、各実施形態で共通に用いる図１の通信装置について説明する。この通信装置は外部機器との通信を行うものであり、その通信形態は、ＩＥＥＥ８０２規格に準拠した有線ＬＡＮおよび無線ＬＡＮに対応する。もちろん、通信装置の構成や通信形態については、当業者であれば、以下の説明から、様々な構成、通信形態が適用可能であることが明らかとなるであろう。
【００１７】
図１は、通信装置１０１の機能構成例を示すブロック図である。以下では、図１に示した各機能部は何れもハードウェアによって構成されているものとして説明するが、機能部によっては一部の機能をソフトウェアでもって構成し、このソフトウェアを対応する機能部や制御部などが実行するようにしても良い。
【００１８】
通信装置１０１は、ネットワークに接続されており、該ネットワーク上に接続されている他の機器（外部機器）との間でデータ通信を行うことができる装置である。この通信装置１０１は、メインシステム１１１と、サブシステム１２１と、ＣＰＵ間通信部１０２と、を有しており、メインシステム１１１とサブシステム１２１とは、ＣＰＵ間通信部１０２を介して互いに通信（ＣＰＵ間通信）可能となっている。
【００１９】
先ず、メインシステム１１１について説明する。メインシステム制御部１１２は、ＣＰＵなどの制御部及びメモリを有しており、メインシステム記憶部１１３に格納されているコンピュータプログラムやデータを用いて様々な処理を実行する。これによりメインシステム制御部１１２は、メインシステム１１１を構成する各機能部の動作制御を行うと共に、ＣＰＵ間通信部１０２を介してサブシステム１２１との間のＣＰＵ間通信を行う。
【００２０】
メインシステム記憶部１１３には、メインシステム１１１内の各機能部（１１３〜１１５）が行うものとして後述する各処理を、該機能部に実行させるためのコンピュータプログラムやデータが保存されている。このデータには、メインシステム１１１が既知の情報として取り扱うデータも含まれている。
【００２１】
然るにメインシステム制御部１１２は、そのＣＰＵによって、メインシステム記憶部１１３から必要なコンピュータプログラムやデータを読み出して自身のメモリにロードし、このロードしたコンピュータプログラムやデータを用いて各種の処理を実行する。
【００２２】
第１ネットワークスタック処理部１１４（第１のネットワークスタック）は、自身宛や第１アプリケーション処理部１１５宛に送信されたパケットを用いて、ＯＳＩ参照モデルにおけるネットワーク層およびトランスポート層およびセッション層の処理を行う。
【００２３】
第１アプリケーション処理部１１５は、自身宛や第１ネットワークスタック処理部１１４宛に送信されたパケットを用いて、ＯＳＩ参照モデルにおけるアプリケーション層やプレゼンテーション層等の処理を行う。すなわち、第１アプリケーション処理部１１５は、第１ネットワークスタック処理部１１４が対象とする層とは異なる層の処理を行う。これにより第１アプリケーション処理部１１５は、第１の通信アプリケーションを実現するための処理を実行する。
【００２４】
次に、サブシステム１２１について説明する。サブシステム制御部１２２は、ＣＰＵなどの制御部及びメモリを有しており、サブシステム記憶部１２３に格納されているコンピュータプログラムやデータを用いて様々な処理を実行する。これによりサブシステム制御部１２２は、サブシステム１２１を構成する各機能部の動作制御を行うと共に、ＣＰＵ間通信部１０２を介してメインシステム１１１との間のＣＰＵ間通信を行う。
【００２５】
サブシステム記憶部１２３には、サブシステム１２１内の各機能部（１２２，１２４〜１２８）が行うものとして後述する各処理を、該機能部に実行させるためのコンピュータプログラムやデータが保存されている。このデータには、サブシステム１２１が既知の情報として取り扱うデータも含まれている。
【００２６】
然るにサブシステム制御部１２２は、そのＣＰＵによって、サブシステム記憶部１２３から必要なコンピュータプログラムやデータを読み出して自身のメモリにロードし、このロードしたコンピュータプログラムやデータを用いて各種の処理を実行する。
【００２７】
第２ネットワークスタック処理部１２４（第２のネットワークスタック）は、自身宛や第２アプリケーション処理部１２５宛に送信されたパケットを用いて、ＯＳＩ参照モデルにおけるネットワーク層およびトランスポート層およびセッション層の処理を行う。
【００２８】
第２アプリケーション処理部１２５は、自身宛や第２ネットワークスタック処理部１２４宛に送信されたパケットを用いて、ＯＳＩ参照モデルにおけるアプリケーション層やプレゼンテーション層等の処理を行う。すなわち、第２アプリケーション処理部１２５は、第２ネットワークスタック処理部１２４が対象とする層とは異なる層の処理を行う。これにより第２アプリケーション処理部１２５は、第２の通信アプリケーションを実現するための処理を実行する。
【００２９】
通信制御部１２６は、ネットワーク上に接続されている外部機器との間のデータ通信を制御するものである。通信制御部１２６のより詳細な構成については、図２を用いて後述する。
【００３０】
フィルタ部１２７は、通信制御部１２６が外部機器から受信したデータ（パケット）の配送先の判断を行う。この判断には、配送しないことを判断することも含む。タイマ部１２８は、現在日時を計時する機能や、計時開始指示を受けると計時を開始し、計時終了指示を受けると計時を終了することで、計時開始指示を受けてから計時終了指示を受けるまでの間の期間の長さを測定する機能、を有する。
【００３１】
次に、通信制御部１２６の構成について、図２のブロック図を用いて説明する。通信処理部２０１は、ＯＳＩ参照モデルにおけるデータリンク層および物理層の処理を行う。配送部２０２は、フィルタ部１２７による判断結果に従って、ネットワーク上に接続されている外部機器から受信した受信パケットの配送制御を行う。なお、受信パケットをメインシステム１１１側の機能部に配送する場合、この配送は、実際には、メインシステム制御部１１２及びサブシステム制御部１２２間でＣＰＵ間通信を行うことで行われる。
【００３２】
フィルタ処理部２０３は、第２の通信アプリケーションに対する通信を終了させることを通知するためのパケットを検知すべく、通信装置１０１が外部機器から受信したパケットや、通信装置１０１内のパケットに対してフィルタリングを行う。このようなフィルタリングとして、例えば、TCPでの通信が終了したときに送信されるＦＩＮパケットや無線通信パラメータの設定が完了したときに送信されるDeauthパケットにおける特定のビットを検査する方法が挙げられる。このような「第２の通信アプリケーションに対する通信を終了させることを通知するためのパケット」に関する情報は、サブシステム記憶部１２３に格納されている。
【００３３】
タイマ処理部２０４は、サブシステム１２１の動作開始（第２ネットワークスタック処理部１２４の起動や第２の通信アプリケーションの起動など）に伴う受信パケットの配送制御開始時に、タイマ部１２８に計時開始指示を送出する。これにより、該配送制御開始時からの経過時間を計時させる。そしてタイマ処理部２０４は、この経過時間が規定時間を超えているか否かの判断を随時行う。この「規定時間」は、既知の情報として予めサブシステム記憶部１２３に格納されている。
【００３４】
次に、ＣＰＵ間通信部１０２について説明する。メインシステム１１１（メインシステム制御部１１２）とサブシステム１２１（サブシステム制御部１２２）とはこのＣＰＵ間通信部１０２を介してＣＰＵ間通信を行っている。例えば、メインシステム制御部１１２が、サブシステム１２１に転送すべきデータをＣＰＵ間通信部１０２に書き込むと、サブシステム制御部１２２に割り込みが発生する。そして、サブシステム制御部１２２は、メインシステム制御部１１２がこのＣＰＵ間通信部１０２に書き込んだデータを読み出す。これは、サブシステム制御部１２２が、メインシステム１１１に転送すべきデータをＣＰＵ間通信部１０２に書き込んだ場合も同様である。
【００３５】
以下に説明する各実施形態では、第１の通信アプリケーションは、無線ＬＡＮを用いた大容量データ通信を行うアプリケーションであり、第２の通信アプリケーションは、無線ＬＡＮの設定を自動で行うアプリケーションであるものとして説明する。しかし、これはあくまでも具体的な説明を行うための一例に過ぎす、第１の通信アプリケーション、第２の通信アプリケーションが他のものであっても、メインシステム１１１及びサブシステム１２１の基本的な動作は同様である。
【００３６】
［第１の実施形態］
本実施形態では、配送部２０２は、第２の通信アプリケーションが起動されて実行されている間は、外部機器から受信した受信パケットを、第２ネットワークスタック処理部１２４に配送する。一方、配送部２０２は、第２の通信アプリケーションが実行されていなければ、外部機器から受信した受信パケットを、第１ネットワークスタック処理部１１４に配送する。このような本実施形態に係る処理について、図３のフローチャートを用いて説明する。
【００３７】
サブシステム制御部１２２が第２アプリケーション処理部１２５に対して第２の通信アプリケーションの起動指示を出力した場合には、処理はステップＳ３０１を介してステップＳ３０３に進む。一方、サブシステム制御部１２２が第２アプリケーション処理部１２５に対して第２の通信アプリケーションの起動指示を出力していない場合には、処理はステップＳ３０１を介してステップＳ３０２に進む。
【００３８】
ステップＳ３０２では、フィルタ部１２７は、第１ネットワークスタック処理部１１４を、通信制御部１２６が外部機器から受信した受信パケットの配送先として決定する。然るに配送部２０２は、通信制御部１２６が外部機器から受信した受信パケットを第１ネットワークスタック処理部１１４に配送する。これによりこの受信パケットは、第１ネットワークスタック処理部１１４や第１アプリケーション処理部１１５で処理される。
【００３９】
一方、ステップＳ３０３では、切り替え開始処理として、図４のフローチャートに従った処理が実行される。ステップＳ３０３における処理の詳細について、図４のフローチャートを用いて説明する。
【００４０】
ステップＳ４０１では、フィルタ処理部２０３は、通信装置１０１が外部機器から受信したパケットや、通信装置１０１内のパケットに対するフィルタリングを開始する。フィルタ処理部２０３は、フィルタリングの終了指示を受けるまで、このフィルタリングを続ける。
【００４１】
ステップＳ４０２では、タイマ処理部２０４は、タイマ部１２８に計時開始指示を送出して、タイマ部１２８に計時を開始させる（計時開始時からの経過時間の測定）。タイマ処理部２０４は、計時の終了指示を受けるまで、タイマ部１２８に経過時間測定を続けさせる。
【００４２】
ステップＳ４０３では、タイマ処理部２０４は、現在タイマ部１２８が測定している経過時間と、サブシステム記憶部１２３に格納されている規定時間との比較を行い、経過時間が規定時間を超えたか否かを判断する。タイマ処理部２０４は、この比較を、比較の終了指示を受けるまで続ける。
【００４３】
図３に戻って、フィルタ処理部２０３が上記フィルタリングにより、「第２の通信アプリケーションに対する通信を終了させることを通知するためのパケット」を検知した場合、処理はステップＳ３０４を介してステップＳ３０７に進む。一方、フィルタ処理部２０３が上記フィルタリングにより、「第２の通信アプリケーションに対する通信を終了させることを通知するためのパケット」を検知していない場合、処理はステップＳ３０４を介してステップＳ３０５に進む。
【００４４】
ステップＳ３０５では、フィルタ部１２７は、第２ネットワークスタック処理部１２４を、通信制御部１２６が外部機器から受信した受信パケットの配送先として決定する。然るに配送部２０２は、通信制御部１２６が外部機器から受信した受信パケットを第２ネットワークスタック処理部１２４に配送する。これによりこの受信パケットは、第２ネットワークスタック処理部１２４や第２アプリケーション処理部１２５で処理される。
【００４５】
なお、配送部２０２は、通信制御部１２６が外部機器から受信した受信パケットを配送する前に、該受信パケット中のＩＰアドレスを参照し、該ＩＰアドレスが第２ネットワークスタック処理部１２４のＩＰアドレスと一致するか否かを判断する。第２ネットワークスタック処理部１２４のＩＰアドレスは、例えば、予めサブシステム記憶部１２３に登録しておけばよい。そして配送部２０２は、それぞれのＩＰアドレスが一致していれば配送を行うが、異なっていれば、この受信パケットを破棄する。
【００４６】
ここで、第２ネットワークスタック処理部１２４に受信パケットを配信しても、この受信パケットに対して、第２ネットワークスタック処理部１２４や第２アプリケーション処理部１２５からエラー応答が帰ってくる場合がある。エラー応答とは、例えば、受信パケットが持つポート番号に対応するポートが開いてない場合に、第２ネットワークスタック処理部１２４が対向機に対して送信するICMPのPort Unreachable等が挙げられる。このようなエラー応答をフィルタ処理部２０３が検知した場合、サブシステム制御部１２２は、第２アプリケーション処理部１２５に第２の通信アプリケーションの実行を停止させ、その後、処理はステップＳ３０９に進む。また、タイマ処理部２０４が、タイマ部１２８が計時している現在の経過時間が規定時間を超えたと判断した場合にも、処理はステップＳ３０９に進む。
【００４７】
然るに、フィルタ処理部２０３が上記のようなエラー応答を検知した場合若しくはタイマ部１２８が計時している現在の経過時間が規定時間を超えたとタイマ処理部２０４が判断した場合には、処理はステップＳ３０６を介してステップＳ３０９に進む。一方、フィルタ処理部２０３が上記のエラー応答を検知しておらず、且つタイマ部１２８が計時している現在の経過時間が規定時間を超えていない（規定時間内）とタイマ処理部２０４が判断した場合、処理はステップＳ３０６を介してステップＳ３０４に戻る。ステップＳ３０９では、図５のフローチャートに従った処理を行う。
【００４８】
ステップＳ５０１では、フィルタ処理部２０３は、フィルタリングを終了する。この終了の指示は、サブシステム制御部１２２によって行われる。ステップＳ５０２では、タイマ処理部２０４は、タイマ部１２８に計時を終了させる。この終了の指示は、サブシステム制御部１２２によって行われる。ステップＳ５０３では、タイマ処理部２０４は、ステップＳ４０３で行っていた比較処理及び判断処理を終了する。この終了の指示は、サブシステム制御部１２２によって行われる。
【００４９】
ここで、一例として、フィルタ処理部２０３が検知したエラー応答の内容がパケットの再送要求であった場合、エラー応答を検知してすぐに第２の通信アプリケーションを終了するのは得策ではない。このような場合は、第２の通信アプリケーションを終了せずに、第２ネットワークスタック処理部１２４に対してパケットを配送し続けてもよい。
【００５０】
一方、フィルタ処理部２０３が検知した「第２の通信アプリケーションに対する通信を終了させることを通知するためのパケット」が通信装置１０１が外部機器から受信した受信パケットであった場合、処理はステップＳ３０７を介してステップＳ３０８に進む。また、フィルタ処理部２０３が検知した「第２の通信アプリケーションに対する通信を終了させることを通知するためのパケット」が、通信装置１０１から外部機器に送信する送信パケットであれば、通信制御部１２６は該送信パケットを外部機器に送信する。そしてその後、処理はステップＳ３０７を介してステップＳ３０９に進む。
【００５１】
ステップＳ３０８では、フィルタ部１２７は、第２ネットワークスタック処理部１２４を配送先として決定するので、配送部２０２は、フィルタ処理部２０３が検知した受信パケットを第２ネットワークスタック処理部１２４に配送する。これによりこの受信パケットは、第２ネットワークスタック処理部１２４や第２アプリケーション処理部１２５で処理される。
【００５２】
そしてステップＳ３０９における処理の後、サブシステム制御部１２２が第２アプリケーション処理部１２５に対して第２の通信アプリケーションの起動指示を出力しない限りは、ステップＳ３０２における処理が繰り返し実行されることになる。
【００５３】
＜第１の実施形態の変形例＞
第１の実施形態では、受信パケットは、第２の通信アプリケーションが実行されている間は第２ネットワークスタック処理部１２４に配送され、第２の通信アプリケーションが実行されていなければ第１ネットワークスタック処理部１１４に配送されていた。
【００５４】
本変形例では、受信パケットを、第２ネットワークスタック処理部１２４の起動指示がなされている場合は第２ネットワークスタック処理部１２４に配送し、起動指示がなされていなければ、第１ネットワークスタック処理部１１４に配送する。
【００５５】
本変形例における処理について、図６のフローチャートを用いて説明する。なお、以下では第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは第１の実施形態と同様であるものとする。
【００５６】
サブシステム制御部１２２が第２ネットワークスタック処理部１２４に対して起動指示を出力した場合には、処理はステップＳ６０１を介してステップＳ６０３に進む。一方、サブシステム制御部１２２が第２ネットワークスタック処理部１２４に対して起動指示を出力していない場合には、処理はステップＳ６０１を介してステップＳ６０２に進む。
【００５７】
ステップＳ６０２〜Ｓ６０９の各ステップにおける処理はそれぞれ、上記のステップＳ３０２〜Ｓ３０９と同じであるので、これらのステップに係る説明は省略する。そしてステップＳ６０９における処理の後、サブシステム制御部１２２が第２ネットワークスタック処理部１２４に対して起動指示を出力しない限りは、ステップＳ６０２における処理が繰り返し実行されることになる。
【００５８】
このように、第１の実施形態やその変形例によれば、サブシステム１２１が動作中（第２ネットワークスタック処理部１２４の動作中や第２アプリケーション処理部１２５の動作中）であれば、受信パケットを第２ネットワークスタック処理部１２４に配送する。このような動作により、受信パケットが持つIPアドレスやポート番号などの識別情報を参照し、受信パケットがどちらのネットワークスタック宛かの判別を行う処理が必要ないので、受信パケットを振り分けるためのフィルタリングによる処理負荷がかからない。
【００５９】
［第２の実施形態］
本実施形態では、第２の通信アプリケーションが実行されている間は、受信パケットが持つ宛先情報に従って、該受信パケットを目的とするネットワークスタック処理部に配送する。本実施形態に係る処理について、図７のフローチャートを用いて説明する。ステップＳ７０１，Ｓ７０２ではそれぞれ、上記のステップＳ３０１，Ｓ３０２と同様の処理が実行される。
【００６０】
ステップＳ７０３では、振り分け開始処理として、図８のフローチャートに従った処理が実行される。ステップＳ７０３における処理の詳細について、図８のフローチャートを用いて説明する。
【００６１】
ステップＳ８０１では、サブシステム制御部１２２は、ＣＰＵ間通信部１０２を介してメインシステム制御部１１２との間でＣＰＵ間通信を行い、メインシステム記憶部１１３で管理しているＩＰアドレスを取得する。そしてサブシステム制御部１２２は、この取得したＩＰアドレスと、サブシステム記憶部１２３で管理しているＩＰアドレスと、の間で重複しているＩＰアドレスがあるか否かをチェックする。このチェックの方法については様々な方法が適用可能であり、特定の方法に限るものではない。
【００６２】
例えば、第２ネットワークスタック処理部１２４にＩＰアドレスが割り当てられると、サブシステム制御部１２２は、このＩＰアドレスを、ＣＰＵ間通信部１０２を介してメインシステム制御部１１２に通知する。メインシステム制御部１１２は、この通知されたＩＰアドレスと、第１ネットワークスタック処理部１１４のＩＰアドレスと、を比較して、重複しているか否かをチェックする。
【００６３】
このようなステップＳ８０１におけるチェックの結果、重複している場合には、処理はステップＳ８０２に進む。一方、このチェックの結果、重複していない場合には、処理はステップＳ８０３に進む。
【００６４】
ステップＳ８０２では、第１ネットワークスタック処理部１１４のＩＰアドレス、第２ネットワークスタック処理部１２４のＩＰアドレスの何れか一方を変更する処理を行う。この処理には２通り考えられる。
【００６５】
１つの目の方法としては、メインシステム制御部１１２は、第１ネットワークスタック処理部１１４のＩＰアドレスを、第２ネットワークスタック処理部１２４のＩＰアドレスとは異なるＩＰアドレスに変更する方法が考えられる。
【００６６】
２つ目の方法としては次のような方法が考えられる。先ず、メインシステム制御部１１２は、それぞれのＩＰアドレスが重複する旨をＣＰＵ間通信部１０２を介してサブシステム制御部１２２に通知する。この通知を受け取ったサブシステム制御部１２２は、第２ネットワークスタック処理部１２４のＩＰアドレスを第１ネットワークスタック処理部１１４のＩＰアドレスとは異なるＩＰアドレスに変更する。
【００６７】
また、機器に対して自動的にIPアドレスを割り振る機能であるRFC5735に規定してあるAutoIP等を用いて、第１ネットワークスタック処理部１１４のIPアドレスを自動的に変更してもよい。ステップＳ８０３〜Ｓ８０５の各ステップではそれぞれ、上記のステップＳ４０１〜Ｓ４０３における処理と同じ処理を実行する。
【００６８】
図７に戻って、次に、フィルタ処理部２０３が上記フィルタリングにより、「第２の通信アプリケーションに対する通信を終了させることを通知するためのパケット」を検知した場合、処理はステップＳ７０４を介してステップＳ７０７に進む。一方、フィルタ処理部２０３が上記フィルタリングにより、「第２の通信アプリケーションに対する通信を終了させることを通知するためのパケット」を検知していない場合、処理はステップＳ７０４を介してステップＳ７０５に進む。
【００６９】
ステップＳ７０５では、受信パケット振り分け処理として、図９のフローチャートに従った処理を実行する。ステップＳ７０５における処理の詳細について、図９のフローチャートを用いて説明する。
【００７０】
ステップＳ９０１では、フィルタ部１２７は、受信したパケット中の宛先ＩＰアドレスを検査し、該宛先ＩＰアドレスが第１ネットワークスタック処理部１１４、第２ネットワークスタック処理部１２４、の何れのＩＰアドレスであるのかを判断する。この判断のために、メインシステム制御部１１２は、ＣＰＵ間通信部１０２を介してサブシステム制御部１２２に第１ネットワークスタック処理部１１４のＩＰアドレスを通知する。もちろん、予めサブシステム記憶部１２３に第１ネットワークスタック処理部１１４のＩＰアドレスを格納しておいても良い。
【００７１】
この判断の結果、受信したパケット中の宛先ＩＰアドレスが第２ネットワークスタック処理部１２４のＩＰアドレスであれば、処理はステップＳ９０２に進む。また、受信したパケット中の宛先ＩＰアドレスが第１ネットワークスタック処理部１１４のＩＰアドレスであれば、処理はステップＳ９０３に進む。また、受信したパケット中の宛先ＩＰアドレスが、第１ネットワークスタック処理部１１４、第２ネットワークスタック処理部１２４の何れのＩＰアドレスでもない場合には、処理はステップＳ９０４に進む。
【００７２】
ステップＳ９０２では、配送部２０２は、この受信したパケットを第２ネットワークスタック処理部１２４に対して配送し、ステップＳ９０３では、配送部２０２は、この受信したパケットを第１ネットワークスタック処理部１１４に対して配送する。また、ステップＳ９０４では、配送部２０２は、この受信したパケットを破棄する。ステップＳ７０６〜Ｓ７０９の各ステップではそれぞれ、上記のステップＳ３０６〜Ｓ３０９における処理と同様の処理を実行する。
【００７３】
＜第２の実施形態の変形例１＞
第２の実施形態では、フィルタ部１２７が、受信したパケット中の宛先ＩＰアドレスを検査し、該宛先ＩＰアドレスが第１ネットワークスタック処理部１１４、第２ネットワークスタック処理部１２４、の何れのＩＰアドレスであるのかを判断していた。本変形例では、フィルタ部１２７は、受信したパケット中の宛先ポート番号を検査し、該宛先ポート番号が、第１アプリケーション処理部１１５、第２アプリケーション処理部１２５の何れで使用されているポート番号であるのかを判断する。
【００７４】
本変形例では第１アプリケーション処理部１１５及び第２アプリケーション処理部１２５のそれぞれが使用するポート番号を予め、例えばサブシステム記憶部１２３に登録しておき、以下に説明する点を除き、図７，８のフローチャートに従った処理を実行する。
【００７５】
本変形例では、図８のフローチャートにおいて、ステップＳ８０１では、サブシステム記憶部１２３に登録されているそれぞれのポート番号が重複しているか否かをチェックする。そしてこのチェックの結果、重複している場合には、ステップＳ８０２において、互いに重複しないように、一方若しくは両方を変更する。そしてこのようなチェックを経て、それぞれのポート番号が重複してない状態が整ってからステップＳ８０３〜Ｓ８０５の処理を行う。このとき、受信パケット中のＩＰアドレスに対応するネットワークスタック処理部に配送するのではなく、受信パケット中のポート番号に対応するアプリケーション処理部に配送する点が、第２の実施形態と異なる。
【００７６】
このように、本変形例では、受信したパケットの配送先を、該パケット中の宛先ポート番号を参照することで特定することができる。そのため、例えば、第１ネットワークスタック処理部１１４及び第２ネットワークスタック処理部１２４のそれぞれのＩＰアドレスを別個にする必要はなく、同じであっても構わない。
【００７７】
＜第２の実施形態の変形例２＞
第２の実施形態では、受信パケットは、第２の通信アプリケーションが実行されている間は、第１ネットワークスタック処理部１１４及び第２ネットワークスタック処理部１２４の何れかに配送されていた。また、第２の通信アプリケーションが実行されていなければ、第１ネットワークスタック処理部１１４に配送されていた。
【００７８】
本変形例では、受信パケットを、第２ネットワークスタック処理部１２４の起動指示がなされている場合は、第１ネットワークスタック処理部１１４及び第２ネットワークスタック処理部１２４の何れかに配送する。また、起動指示がなされていなければ、第１ネットワークスタック処理部１１４に配送する。
【００７９】
本変形例の処理について、図１０のフローチャートを用いて説明する。なお、以下では第２の実施形態との差分について重点的に説明し、以下で特に触れない限りは第２の実施形態と同様であるものとする。
【００８０】
サブシステム制御部１２２が第２ネットワークスタック処理部１２４に対して起動指示を出力した場合には、処理はステップＳ１００１を介してステップＳ１００３に進む。一方、サブシステム制御部１２２が第２ネットワークスタック処理部１２４に対して起動指示を出力していない場合には、処理はステップＳ１００１を介してステップＳ１００２に進む。
【００８１】
ステップＳ１００２〜Ｓ１００９の各ステップにおける処理はそれぞれ、上記のステップＳ７０２〜Ｓ７０９と同じであるので、これらのステップに係る説明は省略する。そしてステップＳ１００９における処理の後、サブシステム制御部１２２が第２ネットワークスタック処理部１２４に対して起動指示を出力しない限りは、ステップＳ１００２における処理が繰り返し実行されることになる。
【００８２】
このように、第２の実施形態やその変形例によれば、サブシステム１２１が動作中（第２ネットワークスタック処理部１２４の動作中や第２アプリケーション処理部１２５の動作中）であれば、受信パケットを、該受信パケット内の宛先が示す配送先に配送する。このような動作により、サブシステム１２１が動作中ではない場合は、受信パケットが持つIPアドレスやポート番号などの識別情報を参照し、受信パケットがどちらのネットワークスタック（アプリケーション処理部）宛かの判別を行う処理が必要ない。そのため、受信パケットを振り分けるためのフィルタリングによる処理負荷がかからない。
【００８３】
また、本変形例では、受信パケット内の宛先がメインシステム１１１側である場合、第１の実施形態とは異なり、サブシステム１２１が動作中であったとしても、受信パケットを、メインシステム１１１側に配送することができる。
【００８４】
［第３の実施形態］
本実施形態では、第１の実施形態（その変形例も含む）に係るパケット配送方法と、第２の実施形態（その変形例も含む）に係るパケット配送方法と、を設定情報に応じて使い分ける。この設定情報とは、例えば、無線ＬＡＮによる外部機器とのデータ通信を行うための無線通信パラメータ設定を一度も実施していない初期状態であるか否かの判別情報である。本変形例では、このような判別情報は、サブシステム記憶部１２３に格納されているものとする。本実施形態に係る処理について、図１１のフローチャートを用いて説明する。
【００８５】
サブシステム制御部１２２が第２アプリケーション処理部１２５に第２の通信アプリケーションの起動指示を出力していない場合や、第２ネットワークスタック処理部１２４に起動指示を出力していない場合は、第１，２の実施形態と同様である。
【００８６】
一方、サブシステム制御部１２２は、第２アプリケーション処理部１２５に第２の通信アプリケーションの起動指示を出力した場合や、第２ネットワークスタック処理部１２４に起動指示を出力した場合、サブシステム記憶部１２３内の判別情報を参照する。そしてサブシステム制御部１２２は、参照した判別情報が初期状態を示しているか否かを判断する。このようなサブシステム制御部１２２による処理はステップＳ１１０１において行われる。
【００８７】
ここで、この初期状態とは、例として、無線通信パラメータ設定を一度も実施していない状態である。ここで、判別情報は、例えば、「初期状態である」ことを示している場合には、その値は「０」であり、「初期状態でない」ことを示している場合には、その値は「１」である。
【００８８】
そして、判別情報の値が「０」であれば、処理はステップＳ１１０２に進み、判別情報の値が「１」であれば、処理はステップＳ１１０４に進む。ステップＳ１１０２では、図３を用いて説明したパケット配送制御処理（ステップＳ３０３以降）を実行する。
【００８９】
無線通信パラメータ設定をしていない状態では、第１アプリケーション処理部１１５が実行する無線ＬＡＮを用いたデータ通信を行うことができないため、受信パケットを第１ネットワークスタック処理部１１４に配送する必要がない。
【００９０】
そしてステップＳ１１０２における処理が終了すると、第２アプリケーション処理部１２５により無線通信の設定が完了しているので、ステップＳ１１０３では、サブシステム制御部１２２は、判別情報の値を「０」から「１」に変更する。
【００９１】
一方、ステップＳ１１０４では、図７を用いて説明したパケット配送制御処理（ステップＳ７０３以降）を実行する。なお、以上説明した各実施形態やその変形例の一部や全部を適宜組み合わせて新たな構成をなし得ることは、当業者であれば理解できるであろう。
【００９２】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015087871.tif 000003
【図２】
2015087871.tif 000004
【図３】
2015087871.tif 000005
【図４】
2015087871.tif 000006
【図５】
2015087871.tif 000007
【図６】
2015087871.tif 000008
【図７】
2015087871.tif 000009
【図８】
2015087871.tif 000010
【図９】
2015087871.tif 000011
【図１０】
2015087871.tif 000012
【図１１】
2015087871.tif 000013