(57)【要約】【課題】データの送信元に係る識別子が対応づけられていないデータに係るデータ通信を制御できる通信装置、通信制御方法、及びプログラムを提供する。【解決手段】通信装置であって、デフォルトでデータ通信を禁止し、アプリケーションからデータ通信の要求を受け、要求したアプリケーションから要求されたデータ通信のプロトコルに応じて、アプリケーションのデータ通信を許可する通信装置。【選択図】図１
2017138971.tif 000002
【特許請求の範囲】
【請求項１】
デフォルトでデータ通信を禁止し、
アプリケーションからデータ通信の要求を受け、
前記要求したアプリケーションから要求されたデータ通信のプロトコルに応じて、該アプリケーションのデータ通信を許可する
通信装置。
【請求項２】
前記プロトコルは、ＶＰＮデバイスでデータをカプセル化するプロトコルである、請求項１に記載の通信装置。
【請求項３】
前記アプリケーションのデータ通信は、プロトコルに含まれる特定のメッセージの通信である、請求項１又は２に記載の通信装置。
【請求項４】
前記データ通信がセルラ通信である場合に、デフォルトでデータ通信を禁止する、請求項１乃至３いずれか一項に記載の通信装置。
【請求項５】
前記データ通信が無線ＬＡＮ通信である場合に、デフォルトでデータ通信を許可する、請求項１乃至４いずれか一項に記載の通信装置
【請求項６】
通信装置において、
デフォルトでデータ通信を禁止するステップと、
アプリケーションからデータ通信の要求を受けるステップと、
前記要求したアプリケーションから要求されたデータ通信のプロトコルに応じて、該アプリケーションのデータ通信を許可するステップと
を含む通信制御方法。
【請求項７】
通信装置として機能するコンピュータに、
デフォルトでデータ通信を禁止するステップと、
アプリケーションからデータ通信の要求を受けるステップと、
前記要求したアプリケーションから要求されたデータ通信のプロトコルに応じて、該アプリケーションのデータ通信を許可するステップと
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信制御方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、データ通信可能な携帯端末等の通信装置が知られている（例えば、特許文献１参照）。通信装置においては、通信装置上で稼働するアプリケーションによるデータ通信がデフォルトで許可される一方で、ユーザによって選択されたアプリケーションによるデータ通信が禁止されるという構成が採用されることがある。
【０００３】
アプリケーションから送信されるデータには、アプリケーションに割り当てられた識別子、つまりデータの送信元に係る識別子が対応づけられる。通信装置は、データの送信元に係る識別子に応じてデータ通信を禁止するように制御する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１６２７０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、データの送信元は、アプリケーションに限られず、通信装置のシステムであることもある。システムから送信されるデータには、識別子が対応づけられていないことがある。この場合、通信装置は、データの送信元に係る識別子に応じたデータ通信の制御を実行できない。
【０００６】
そこで本発明は、上述の点に鑑みてなされたものであり、データの送信元に係る識別子が対応づけられていないデータに係るデータ通信を制御できる通信装置、通信制御方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成する本発明の一実施形態に係る通信装置は、
デフォルトでデータ通信を禁止し、
アプリケーションからデータ通信の要求を受け、
前記要求したアプリケーションから要求されたデータ通信のプロトコルに応じて、該アプリケーションのデータ通信を許可する。
【０００８】
また、前記プロトコルは、ＶＰＮのプロトコルであってもよい。
【０００９】
また、前記アプリケーションのデータ通信は、プロトコルに含まれる特定のメッセージの通信であってもよい。
【００１０】
また、前記データ通信がセルラ通信である場合に、デフォルトでデータ通信を禁止するようにしてもよい。
【００１１】
また、前記データ通信が無線ＬＡＮ通信である場合に、デフォルトでデータ通信を許可するようにしてもよい。
【００１２】
また、本発明の一実施形態に係る通信制御方法は、
通信装置において、
デフォルトでデータ通信を禁止するステップと、
アプリケーションからデータ通信の要求を受けるステップと、
前記要求したアプリケーションから要求されたデータ通信のプロトコルに応じて、該アプリケーションのデータ通信を許可するステップと
を含む。
【００１３】
また、本発明の一実施形態に係るプログラムは、
通信装置として機能するコンピュータに、
デフォルトでデータ通信を禁止するステップと、
アプリケーションからデータ通信の要求を受けるステップと、
前記要求したアプリケーションから要求されたデータ通信のプロトコルに応じて、該アプリケーションのデータ通信を許可するステップと
を実行させる。
【発明の効果】
【００１４】
本発明の一実施形態に係る通信装置、通信制御方法、及びプログラムによれば、データの送信元に係る識別子が対応づけられていないデータに係るデータ通信を制御できる。
【図面の簡単な説明】
【００１５】
【図１】実施形態１に係る通信装置の概略構成例を示す機能ブロック図である。
【図２】実施形態１に係る通信装置の一例の外観を示す図である。
【図３】通信プロトコルのシーケンスの一例を示す図である。
【図４】実施形態１に係るデータの流れの一例を示すブロック図である。
【図５】実施形態１に係るフィルタリング処理のシーケンスの一例を説明する図である。
【図６】アプリケーションからデータを送信するシーケンスの一例を説明する図である。
【図７】実施形態２に係るフィルタリング処理のシーケンスの一例を説明する図である。
【発明を実施するための形態】
【００１６】
（実施形態１）
以下、一実施形態に係る通信装置について、図面を参照しながら詳細に説明する。本実施形態に係る通信装置は、携帯電話、又はスマートフォンなどの携帯機器とすることができる。しかしながら、本実施形態に係る通信装置は、携帯機器に限定されるものではなく、デスクトップＰＣ、ノートＰＣ、タブレット型ＰＣ、家電製品、産業用機器（ＦＡ機器）、専用端末等、データ通信を行う種々の電子機器とすることができる。
【００１７】
［装置構成］
図１は、本実施形態に係る通信装置１の概略構成例を示す機能ブロック図である。図１に示されるように、通信装置１は、制御部１０と、通信部１１と、記憶部１２と、表示部１３と、操作部１４とを備える。制御部１０は、通信部１１と、記憶部１２と、表示部１３と、操作部１４とに接続され、これらを制御する。
【００１８】
制御部１０は、オペレーティングシステム（以下、ＯＳともいう）、及び、アプリケーションソフトウェア（以下、アプリケーションともいう）を実行可能なプロセッサ又はマイコン等により構成されうる。ＯＳは、例えばＡｎｄｒｏｉｄ（登録商標）である。アプリケーションについては後述する。
【００１９】
通信部１１は、セルラ通信、又は無線ＬＡＮ通信等を行う通信インタフェースとして、Ｉ／Ｆ（インタフェース）デバイス１１１を備える。Ｉ／Ｆデバイス１１１は、モデム１１２と無線ＬＡＮデバイス１１３とを含む。通信部１１は、Ｉ／Ｆデバイス１１１を用いてインターネット等のネットワーク側に接続され、ネットワーク側との間でデータ通信を行う。これにより、通信装置１はネットワーク側との間でデータ通信可能となる。通信部１１は、制御部１０に接続され、ネットワーク側へ出力するデータを制御部１０から取得する。制御部１０は、通信部１１に対して出力するデータをフィルタリング処理によって選択する。フィルタリング処理については後述する。また制御部１０は、ネットワーク側から受信したデータを通信部１１から取得する。
【００２０】
セルラ通信方式によりネットワーク側と接続される場合、一般的に、通信されるデータ（パケット）の量の増大に応じて通信料金が増大する従量課金制の料金体系が採用される。一方で、無線ＬＡＮ通信等の方式によりネットワーク側と接続される場合、一般的に、そのような料金体系ではない。
【００２１】
記憶部１２は、例えば半導体メモリ等によって構成されうる。記憶部１２には、各種情報若しくはデータ、又は、制御部１０が実行するＯＳ若しくはアプリケーション等のプログラムが格納される。制御部１０は、記憶部１２に格納されたプログラムを取得し、実行する。制御部１０は、プログラムの実行により生成されるデータを記憶部１２に格納する。また記憶部１２は、ワークメモリとしても機能しうる。
【００２２】
表示部１３は、制御部１０から取得した情報に基づき、文字、画像、操作用オブジェクト、ポインタ等を表示する。表示部１３は、例えば、液晶ディスプレイ、有機ＥＬディスプレイ、無機ＥＬディスプレイ等の表示デバイスであるが、これらに限られるものではない。
【００２３】
操作部１４は、テンキー等の物理キー、タッチパッド、又はタッチパネル等によって構成される。制御部１０は、操作部１４から取得した入力内容に応じて、表示部１３に表示されるポインタ等を移動させたり、操作用オブジェクトを選択したりする。
【００２４】
図２は、本実施形態に係る通信装置１の一例の外観を示す図である。図２に示す通り、本実施形態に係る通信装置１は、いわゆる折りたたみ式（フリップ型又はクラムシェル型等）のフィーチャーフォンである。通信装置１は、上部筐体２と下部筐体３とが、ヒンジ部４によって回動可能に接続される。上部筐体２は表示部１３を備え、下部筐体３は操作部１４を備える。操作部１４は、テンキー等の物理キーの他、物理キーが設けられていない部位にタッチパッド１４１を備える。通信装置１は、例えば物理キーにより操作用のオブジェクトの選択操作を受け付け、またタッチパッド１４１によりポインタ等の移動操作を受け付ける。
【００２５】
［アプリケーション］
アプリケーションは、制御部１０で実行可能となるように通信装置１にインストールされ、記憶部１２に格納される。アプリケーションが通信装置１にインストールされる際、各アプリケーションに固有のユーザ識別子（以下、ＵＩＤともいう）が割り当てられる。アプリケーションは、制御部１０によって、ＯＳ上においてＵＩＤに対応づけられるプロセスとして実行される。
【００２６】
アプリケーションは、制御部１０で実行される際に、ファイルシステムなどのリソースに対してアクセスする。各アプリケーションが無制限にリソースにアクセスすると、各アプリケーションによるリソースの使用領域が重複することがあり、この場合アプリケーションが正常に実行されなくなることがある。そこで、ＯＳ上で実行されるプロセスに対応づけられるＵＩＤによってリソースに対するアクセスを制限し、アプリケーションによるリソース使用が互いに影響を及ぼさないようにする。つまり、各プロセスからアクセス可能なリソースは、同一のＵＩＤに対応づけられるプロセスのリソースに制限される。
【００２７】
各アプリケーションには、グループ識別子（以下、ＧＩＤ又はグループのＩＤともいう）がさらに割り当てられてもよい。ＧＩＤは、各アプリケーションに割り当てられる固有のＵＩＤが属するグループを特定するものである。一つのグループに一個のＵＩＤだけが属してもよいし、一つのグループに複数のＵＩＤが属してもよい。アプリケーションがＵＩＤに対応づけられるプロセスとして実行される際、このプロセスはＧＩＤにも対応づけられるようにしてもよい。また、各プロセスからアクセス可能なリソースは、同一のＵＩＤだけでなく同一のＧＩＤに対応づけられるプロセスのリソースにまで対象を広げて制限されるようにしてもよい。
【００２８】
アプリケーションは、フォアグラウンド（以下、ＦＧともいう）、又は、バックグラウンド（以下、ＢＧともいう）で実行される。アプリケーションがＦＧで実行されている状態は、例えば、ユーザが確認可能なように実行状況が表示部１３に表示される、又は、ユーザが操作部１４を用いて操作可能な状態である。アプリケーションがＢＧで実行されている状態は、例えば、実行状況が表示部１３に表示されず、ユーザが操作可能ではない状態、又は、ユーザが意図せずに動作している状態である。
【００２９】
［データ通信プロトコル］
通信装置１のＯＳと、インターネット等のネットワーク側とのデータ通信は、所定の通信プロトコルに基づいて行われる。本実施形態において、通信プロトコルとして、例えば、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）が用いられるものとして説明する。しかし、通信プロトコルはＴＣＰに限られるものではなく、他の通信プロトコルが用いられてもよい。
【００３０】
図３は、ＴＣＰのシーケンスを説明する図である。図３において、通信装置１とネットワーク側の通信デバイスとの間でＴＣＰを用いたデータ通信が行われる。ＴＣＰのシーケンスは、接続確立、データ通信、及び、接続終了に大別される。
【００３１】
＜接続確立シーケンス＞
通信装置１は、ネットワーク側の通信デバイスに対して、ＴＣＰを用いた通信の接続を確立する要求（以下、接続確立要求ともいう）を含むデータを送信する（ステップＳ５０１）。続いてネットワーク側の通信デバイスは、通信装置１からの接続確立要求の取得に応じて、確認応答メッセージ（以下、ＡＣＫともいう）を含むデータを送信する（ステップＳ５０２）。ＴＣＰにおいて、ＡＣＫは、データのヘッダ部分に含まれる。
【００３２】
続いて通信装置１は、ネットワーク側の通信デバイスからのＡＣＫの取得に応じて、ＡＣＫを含むデータを送信する（ステップＳ５０３）。以上のステップＳ５０１〜Ｓ５０３により、通信装置１とネットワーク側の通信デバイスとの間に接続が確立する。
【００３３】
＜データ通信シーケンス＞
通信装置１は、確立された接続を用いて、ネットワーク側の通信デバイスに対して、データを含むデータを送信する（ステップＳ５０４）。続いてネットワーク側の通信デバイスは、通信装置１からデータを取得した場合、ＡＣＫを含むデータを送信する（ステップＳ５０５）。このとき、ネットワーク側の通信デバイスから送信されるデータは、ＡＣＫだけを含むものであってもよい。
【００３４】
続いて通信装置１は、ネットワーク側の通信デバイスからデータを取得した場合、ＡＣＫを含むデータを送信する（ステップＳ５０６）。このとき、通信装置１から送信されるデータは、ＡＣＫだけを含むものであってもよい。
【００３５】
以上のステップＳ５０４〜Ｓ５０６のように、データ送信とＡＣＫの送信とを繰り返すことにより、通信装置１とネットワーク側の通信デバイスとの間でデータ通信が行われる。
【００３６】
＜接続終了シーケンス＞
通信装置１は、ネットワーク側の通信デバイスに対して、ＴＣＰを用いた通信の接続を終了する要求（以下、接続終了要求ともいう）を含むデータを送信する（ステップＳ５０７）。ネットワーク側の通信デバイスは、通信装置１からの接続終了要求の取得に応じて、確認メッセージ（以下、ＡＣＫともいう）を含むデータを送信する（ステップＳ５０８）。通信装置１は、ネットワーク側の通信デバイスからのＡＣＫの取得に応じて、ＡＣＫを含むデータを送信する（ステップＳ５０９）。以上のステップＳ５０７〜Ｓ５０９により、通信装置１とネットワーク側の通信デバイスとの間の接続が終了する。
【００３７】
図３を用いて説明してきたように、ＴＣＰを用いたデータ通信においては、データの送信とＡＣＫの送信とが対となって実行される。データを送信したデバイスは、送信先のデバイスから、送信したデータに対応するＡＣＫを取得してはじめて、データの送信が成功したことを確認できる。データ送信後一定時間ＡＣＫを取得できない場合（所定のタイムアウト時間を経過した場合）、デバイスは、データを再送信してもよいし、ＡＣＫを取得するまでさらに待機してもよい。
【００３８】
ここで、ＡＣＫについてさらに説明する。ＡＣＫは、ＴＣＰにおける機能を実現するために必要とされる特定のメッセージの一つである。ＡＣＫは、ＡＣＫフラグとＡＣＫ番号とを含む。ＡＣＫフラグとは、データがＡＣＫを含んでいるかを示すフラグである。ＴＣＰでは、ＡＣＫフラグが１の場合、データがＡＣＫを含むことを意味する。また、ＡＣＫフラグが０の場合、データがＡＣＫを含まないことを意味する。
【００３９】
ＡＣＫ番号とは、どのデータに対応するＡＣＫであるか示す番号である。ＴＣＰで送信されるデータにはそれぞれシーケンス番号が付され、シーケンス番号によりデータが区別される。そしてＡＣＫ番号は、送信されてきたデータに含まれるシーケンス番号に１を加えた番号である。例えば、シーケンス番号が１０００であるデータに対応するＡＣＫのＡＣＫ番号は１００１とされる。ＡＣＫ番号とシーケンス番号との関係は上述のものに限られない。
【００４０】
データ通信の最初のデータは、ＡＣＫを返す対象のデータがないため、ＡＣＫを含まない。よって、データ通信の最初のデータは、ＡＣＫフラグが０である。一方で、最初のデータに続くデータは、最初のデータに対するＡＣＫを含むため、ＡＣＫフラグが１である。
【００４１】
［データ通信の制御］
制御部１０によって実行されるアプリケーションは、通信部１１を用いて、インターネット等のネットワーク側とのデータ通信を行う。上述の通り、アプリケーションはＯＳ上においてＵＩＤに対応づけられるプロセスとして実行される。そして、アプリケーションから送信されるデータにはＵＩＤが対応づけられる。制御部１０は、データに対応づけられたＵＩＤに基づいてデータの送信を許可するか禁止（制限）するか決定することにより、各アプリケーションから送信されるデータに係るデータ通信を許可するか禁止するか制御できる。以下、本実施形態に係る説明においては、データ通信は、原則的に通信部１１がネットワーク側との間で行うデータ通信のことを指すものとする。
【００４２】
図４は、本実施形態に係るデータの流れの一例を示すブロック図である。図４において、制御部１０と通信部１１とが端末側に設けられる。そして、通信部１１がネットワーク側と接続され、ネットワーク側との間でデータ通信を行う。
【００４３】
図４において、制御部１０は、アプリケーションＡ１６ａとアプリケーションＢ１６ｂとをＯＳ上におけるプロセスとして実行する。制御部１０によって実行されるアプリケーションは、必要に応じてネットワーク側とのデータ通信を要求する。例えば、アプリケーションＡ１６ａは、ネットワーク側へ向けてデータの送信を要求する。この場合、アプリケーションＡ１６ａからネットワーク側へ向けて送信するデータは、制御部１０で稼働するパケットフィルタ１５に入力される。また、アプリケーションＢ１６ｂからも同様に、アプリケーションＢ１６ｂからネットワーク側へ向けて送信するデータがパケットフィルタ１５に入力される。
【００４４】
パケットフィルタ１５は、制御部１０からネットワーク側へ向かうデータのフィルタリング処理を行う。フィルタリング処理は、設定されたフィルタリング条件に基づいて、アプリケーションから要求されたデータの送信を許可するか禁止するか決定する処理である。フィルタリング条件は、例えば、ｉｐ＿ｒｕｌｅ又はｉｐ＿ｒｏｕｔｅ等を含む。これらのフィルタリング条件は、記憶部１２に格納されており、パケットフィルタ１５によって参照される。以下、フィルタリング条件を設定する動作は、フィルタリング条件を記憶部１２に格納する動作を含むものとする。なお、フィルタリング条件は、記憶部１２に格納されずに制御部１０に保持されていてもよい。
【００４５】
ｉｐ＿ｒｕｌｅは、例えば、送信元がＸであるデータをネットワーク側へ送信してよいか決定するための条件を含む。ｉｐ＿ｒｏｕｔｅは、例えば、送信先としてＹが指定されたデータをネットワーク側へ送信するルート（中継ルータ等）を決定するための条件を含む。
【００４６】
図４において、アプリケーションＡ１６ａから送信されるデータの流れが実線の矢印で示され、アプリケーションＢ１６ｂから送信されるデータの流れが破線の矢印で示される。このうち、アプリケーションＡ１６ａから送信されるデータは、パケットフィルタ１５におけるフィルタリング処理によって送信が禁止されず、通信部１１に送られる。一方、アプリケーションＢ１６ｂから送信されるデータは、パケットフィルタ１５におけるフィルタリング処理によって送信が禁止され、通信部１１に送られない。この動作は、図４において破線の矢印がｒｅｊｅｃｔという記載に向けられることで示される。
【００４７】
パケットフィルタ１５を通過したデータ（図４の場合、実線の矢印で示されるアプリケーションＡ１６ａから送信されるデータ）は、通信部１１に入力される。通信部１１は、Ｉ／Ｆデバイス１１１を用いて、ネットワーク側へデータを送信する。通信部１１は、ネットワーク側へデータを送信するに際して、モデム１１２によるセルラ通信を用いるか、無線ＬＡＮデバイス１１３による無線ＬＡＮ通信を用いるか、又は、他の通信方式を用いるか適宜決定しうる。
【００４８】
［フィルタリング処理］
アプリケーションから送信されるデータについてのデータ通信を許可するか禁止するかは、データ送信元のアプリケーションに割り当てられるＵＩＤに基づいて決定される。以下、ＵＩＤとしてＸが割り当てられるアプリケーション（以下、ＵＩＤがＸのアプリケーションともいう）から送信されるデータのことを、ＵＩＤがＸのデータともいう。また、ＵＩＤがＸのデータのフィルタリング処理を行うために用いられるフィルタリング条件を、ＵＩＤがＸのデータのフィルタリング条件ともいう。
【００４９】
パケットフィルタ１５は、例えば、ＵＩＤが１のアプリケーションから送信されるデータに係るデータ通信のみ許可するというフィルタリング条件を有する。また、フィルタリング条件は、複数の条件をあわせたものであってもよい。
【００５０】
ここで、本実施形態に係るフィルタリング処理が行われる場合のデータ通信のシーケンスを説明する。本実施形態に係るフィルタリング処理は、ＢＧ動作しているアプリケーションが送信するデータに係るデータ通信の許可又は禁止を決定することを前提とする。以下の本実施形態に係るフィルタリング処理の説明は上記前提に基づく。
【００５１】
本実施形態に係るフィルタリング処理は、デフォルトでデータ通信を禁止するというフィルタリング条件（以下、デフォルト通信禁止条件ともいう）が設定されている。デフォルト通信禁止条件が設定されていることにより、他のフィルタリング条件がさらに設定されない限り、全てのデータ通信が禁止される。デフォルト通信禁止条件は、通信装置１の出荷時に設定されたり、通信装置１の初期化時に設定されたりする。すなわち、本実施形態において、「デフォルト」とは、所定のタイミング（例えば、通信装置１の出荷時、通信装置１の初期化時、等）で、標準の動作として予め設定されていることを意味するものとする。
【００５２】
本実施形態においては、必要なデータ通信を実行するために、デフォルト通信禁止条件に加えて、データ通信を許可するための条件（以下、通信許可条件ともいう）が設定されたフィルタリング条件が用いられる。この場合、通信許可条件は、デフォルト通信禁止条件に優先する。
【００５３】
図５は、本実施形態に係るフィルタリング処理のシーケンスを説明する図である。図５には、アプリケーションＡ１６ａ、アプリケーションＢ１６ｂ、フレームワーク、通信制御部、カーネル、及びモデム１１２のシーケンスが示されている。
【００５４】
モデム１１２は、上述の通り、セルラ通信を行う通信インタフェースとして機能するハードウェアである。図５においては、モデム１１２を用いたセルラ通信によるデータ通信について説明しているが、モデム１１２ではなく、無線ＬＡＮデバイス１１３等の他のＩ／Ｆデバイス１１１に置き換えて、他の通信方式によるデータ通信を行ってもよい。
【００５５】
カーネル、通信制御部、及びフレームワークはソフトウェアであり、制御部１０で実行される。図５において、通信制御部にはＵＩＤとして０が割り当てられる。
【００５６】
フレームワークは、ＯＳ上においてアプリケーションを動作させるための機能群を含むソフトウェアである。一般的に、フレームワークで準備された機能群を組み合わせることによって、各アプリケーションの機能が実現される。
【００５７】
カーネルは、ＯＳの中核をなすソフトウェアであり、アプリケーション等のソフトウェアによる処理に基づき、通信部１１等のハードウェアにおける処理を管理して、ハードウェアの機能を利用できるようにする。
【００５８】
通信制御部は、ネットワーク関連の処理を行うデーモンプログラムであり、フレームワークとカーネルとの間をつなぐ処理をする。通信制御部は、特に、カーネルが通信部１１の機能を利用できるようにするためのデータを処理する。本実施形態において、通信制御部は、カーネルが通信部１１へのデータ出力を許可するか禁止するか決定するための条件をカーネルに出力する。
【００５９】
本実施形態において、フィルタリング処理はパケットフィルタ１５により行われるものとして説明する。ここで、パケットフィルタ１５は仮想的な処理ユニットであり、実際のフィルタリング処理は、通信制御部とカーネルとにより行われる。
【００６０】
アプリケーションＡ１６ａ及びアプリケーションＢ１６ｂは、ＯＳ上において動作するプロセスである。図５において、アプリケーションＡ１６ａにはＵＩＤとして１が割り当てられ、アプリケーションＢ１６ｂにはＵＩＤとして２が割り当てられる。
【００６１】
以下、図５に示されるシーケンスを説明する。ＢＧ動作するアプリケーションがデータを送信する場合、デフォルトでセルラ通信によるデータ通信が禁止されている（ステップＳ１）。つまり、フィルタリング条件として、ＢＧ動作するアプリケーションから送信されるデータに係るデフォルト通信禁止条件が設定されている。図５において、デフォルト通信禁止条件が設定されていることは、カーネル、通信制御部、及びフレームワークにより認識されている。特に、カーネルは、デフォルト通信禁止条件が設定されていることを認識している場合、モデム１１２に対するデータの送信を行わない。
【００６２】
続いて、アプリケーションがＢＧで動作する場合のＵＩＤが１のデータに係るデータ通信の許可要求（以下、ＵＩＤが１のデータの通信許可要求ともいう）を、フレームワークが取得する（ステップＳ２）。続いて、フレームワークは、ＵＩＤが１のデータの通信許可要求を通信制御部に出力する（ステップＳ３）。
【００６３】
通信制御部は、ＵＩＤが１のデータの通信許可要求を取得する（ステップＳ４）。続いて通信制御部は、ＵＩＤが１のデータの通信許可要求をカーネルに出力する（ステップＳ５）。
【００６４】
カーネルは、ＵＩＤが１のデータの通信許可要求を取得する（ステップＳ６）。以上のステップＳ３〜Ｓ６の動作により、カーネルにＵＩＤが１のデータの通信許可要求が伝達される。つまり、フィルタリング条件として、ＵＩＤが１のデータに係る通信許可条件が設定される。
【００６５】
続いて、アプリケーションＡ１６ａがＢＧ動作においてデータ通信を要求する場合（ステップＳ７）、カーネルは、ＵＩＤが１のデータに係る通信許可条件が設定されていることを認識しているので、データ通信を許可する（ステップＳ８）。そして、モデム１１２は、ＵＩＤが１のデータをネットワーク側へ送信するデータ通信を行う（ステップＳ９）。
【００６６】
一方、ＵＩＤとして２が割り当てられるアプリケーションＢ１６ｂがＢＧ動作においてデータ通信を要求する場合（ステップＳ１０）、カーネルは、ＵＩＤが２のデータに係る通信許可条件が設定されていないことを認識している。よって、カーネルは、デフォルト通信禁止条件に基づいて、データ通信を禁止する（ステップＳ１１）。
【００６７】
＜アプリケーションからのデータ送信シーケンス＞
図５のステップＳ７〜Ｓ９において、アプリケーションがデータ通信を要求してモデム１１２がデータ通信を行うことを説明した。以下、図６を用いて、これらのシーケンスをより具体的に説明する。図６には、アプリケーションＡ１６ａ、フレームワーク、カーネル、及びモデム１１２のシーケンスが示されている。アプリケーションＡ１６ａ、フレームワーク、カーネル、及びモデム１１２については、図５と同様であるため説明を省略する。
【００６８】
アプリケーションＡ１６ａは、ＦＧ又はＢＧのいずれで動作する場合であっても、アプリケーションＡ１６ａから送信されるデータ（ＵＩＤが１のデータ）に係るデータ通信の要求（以下、ＵＩＤが１のデータ通信要求ともいう）をアプリケーションＡ１６ａが動作しているＯＳ上のフレームワークに対して出力する（ステップＳ１０１）。
【００６９】
フレームワークは、ＵＩＤが１のデータ通信要求を取得する（ステップＳ１０２）。続いてフレームワークは、ＵＩＤが１のデータ通信要求をカーネルに出力する（ステップＳ１０３）。
【００７０】
カーネルは、ＵＩＤが１のデータ通信要求を取得する（ステップＳ１０４）。続いてカーネルは、モデム１１２に対してＵＩＤが１のデータ通信要求に基づいてデータを出力する（ステップＳ１０５）。そしてモデム１１２は、ＵＩＤが１のデータをネットワーク側へ送信するデータ通信を行う（ステップＳ１０６）。
【００７１】
以上説明してきた図６に示されるシーケンスの動作により、アプリケーションから送信するデータが通信部１１に出力され、ネットワーク側へ送信される。
【００７２】
以上、ＵＩＤに応じてデータ通信を許可するか決定するフィルタリング処理について説明してきた。このフィルタリング処理によれば、ユーザにより明示的にフィルタリング条件が設定されていないアプリケーションＢ１６ｂから送信されるデータに係るデータ通信を禁止できる。
【００７３】
（実施形態２）
以上説明してきたフィルタリング処理においては、データに対応づけられたＵＩＤに基づいて、当該データに係るデータ通信を許可するか禁止するか決定された。またＵＩＤだけでなく、データに対応づけられたＧＩＤに基づいても、当該データに係るデータ通信を許可するか禁止するか決定されてよい。
【００７４】
ここで、カーネルに対して、ＵＩＤ及びＧＩＤが対応づけられていないデータが送信されることがある。この場合カーネルは、ＵＩＤ又はＧＩＤに基づいて当該データに係るデータ通信を許可するか決定できない。この場合のデータ通信の制御方法について、以下、実施形態２として説明する。
【００７５】
ＵＩＤ及びＧＩＤが対応づけられていないデータとは、例えば、フレームワークから送信されるデータである。このようなデータは、アプリケーションが送信すべきデータを送信せずに終了した場合に、フレームワークが当該データを代わりに送信することにより発生する。
【００７６】
アプリケーションが送信すべきデータを送信せずに終了する場合の一例は、アプリケーションがＴＣＰを用いた通信の接続を終了する際に、アプリケーションが接続終了要求を送信した後、ネットワーク側通信デバイスからのＡＣＫ取得を待たずにアプリケーションが終了してしまう場合である。この場合、フレームワークは、ＴＣＰを用いた通信の接続を終了させるために、アプリケーションに代わって、ネットワーク側通信デバイスに対してＡＣＫを含むデータを送信する。このＡＣＫを含むデータの送信元であるフレームワークにはＵＩＤ及びＧＩＤが割り当てられていないので、このＡＣＫを含むデータにはＵＩＤ及びＧＩＤが対応づけられない。
【００７７】
このように、ＵＩＤ及びＧＩＤが対応づけられていないデータであっても、ヘッダ部分には、必ず通信プロトコルを示すプロトコル番号が含まれている。そこで、データに含まれるプロトコル番号に基づくフィルタリング処理が可能である。以下、プロトコルＸを示すプロトコル番号がヘッダ部分に含まれるデータのことを、プロトコルＸのデータという。
【００７８】
図７は、プロトコル番号に基づくフィルタリング処理のシーケンスを示す図である。図７には、アプリケーションＡ１６ａ、フレームワーク、通信制御部、カーネル、及びモデム１１２のシーケンスが示されている。アプリケーションＡ１６ａ、フレームワーク、通信制御部、カーネル、及びモデム１１２については、図５と同様であるため説明を省略する。
【００７９】
まず、ＢＧ動作するアプリケーションがデータを送信する場合、デフォルトでセルラ通信によるデータ通信が禁止されている（ステップＳ６０１）。
【００８０】
続いて、アプリケーションがＢＧで動作する場合のプロトコルＸのデータに係るデータ通信の許可要求（以下、プロトコルＸのデータの通信許可要求ともいう）を、フレームワークが取得する（ステップＳ６０２）。続いて、フレームワークは、プロトコルＸのデータの通信許可要求を通信制御部に出力する（ステップＳ６０３）。
【００８１】
通信制御部は、プロトコルＸのデータの通信許可要求を取得する（ステップＳ６０４）。続いて通信制御部は、プロトコルＸのデータの通信許可要求をカーネルに出力する（ステップＳ６０５）。
【００８２】
カーネルは、プロトコルＸのデータの通信許可要求を取得する（ステップＳ６０６）。以上のステップＳ６０２〜Ｓ６０６の動作により、カーネルにプロトコルＸのデータの通信許可要求が伝達される。つまり、フィルタリング条件として、プロトコルＸのデータに係る通信許可条件が設定される。
【００８３】
続いて、アプリケーションＡ１６ａがＢＧ動作においてプロトコルＸを用いたデータ通信を要求する場合（ステップＳ６０７）、カーネルは、プロトコルＸのデータの通信許可条件が設定されていることを認識しているので、データ通信を許可する（ステップＳ６０８）。そして、モデム１１２は、アプリケーションＡから送信されたプロトコルＸのデータをネットワーク側へ送信するデータ通信を行う（ステップＳ６０９）。
【００８４】
以上、図７を用いて説明してきたように、プロトコル番号に基づいてデータ通信の許可又は禁止を決定することができる。ここで例えば、ＴＣＰのデータの通信許可条件がフィルタリング条件として設定される場合、実質的に全てのデータ通信が許可されることとなる場合がある。
【００８５】
そこで、図７で設定された通信許可条件に、データのヘッダ部分に含まれるＡＣＫフラグに係る条件がさらに含まれてもよい。つまり、プロトコルＸのデータであって、且つ、ＡＣＫフラグが１であるデータの通信を許可するという条件が、通信許可条件としてフィルタリング条件に設定されうる。
【００８６】
ＡＣＫフラグが１であることが通信許可条件に含まれることにより、ＡＣＫフラグが０であるデータ、つまり、最初のデータの送信は禁止される。最初のデータが送信されなければ、ＡＣＫフラグが１であるデータが送信されることはない。よって、実質的に全てのデータ通信は禁止される。しかし、上述したような、アプリケーションが接続終了要求を送信した後、ネットワーク側通信デバイスからのＡＣＫ取得を待たずにアプリケーションが終了してしまう場合に、フレームワーク又はライブラリが代わりに送信するＡＣＫを含むデータの通信は許可される。
【００８７】
以上、データ通信のプロトコルに応じてデータ通信を許可するか決定するフィルタリング処理について説明してきた。このフィルタリング処理によれば、データにＵＩＤ又はＧＩＤが対応づけられていない場合でも、当該データに係るデータ通信を許可するか決定することができる。
【００８８】
実施形態１及び２において、Ｉ／Ｆデバイス１１１としてモデム１１２を用いるセルラ通信方式によるデータ通信を禁止する方法について主に説明してきた。しかし、Ｉ／Ｆデバイス１１１はモデム１１２に限られず、無線ＬＡＮデバイス１１３等であってもよい。つまり、これらの実施形態に係る通信装置１のデータ通信の制御方法は、セルラ通信方式によるデータ通信に限られず、無線ＬＡＮ通信方式等の他の通信方式によるデータ通信においても適用されうる。
【００８９】
また実施形態１及び２において、データ通信が許可されたデータを送信するために必要となる機能については、デフォルトでデータ通信を許可するようにしてもよい。デフォルトでデータ通信を許可される機能は、例えば、ＶＰＮ（Ｖｅｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）のトンネリング機能、ＤＮＳ（Ｄｏｍａｉｎ  Ｎａｍｅ  Ｓｙｓｔｅｍ）の名前解決機能、又はテザリング機能等である。これらの機能に係るデータ通信は、ユーザが意図した場合に動作するものに限り、許可されてもよい。これらの機能に係るデータ通信を許可する条件は、デフォルト通信禁止条件に優先するフィルタリング条件として設定されてもよい。
【００９０】
また、実施形態１及び２に係るフィルタリング処理は、ＢＧ動作しているアプリケーションのデータ通信について行われたが、これには限られず、ＦＧ動作しているアプリケーションのデータ通信について行われてもよい。つまり、本実施形態に係るフィルタリング処理は、ＦＧ動作しているアプリケーションが送信するデータに係るデータ通信の許可又は禁止を決定してもよい。
【００９１】
（変形例）
変形例として、ＶＰＮのトンネリング機能を用いてデータ通信を行うためにデータをカプセル化する場合のフィルタリング処理について説明する。本変形例においては、通信装置１はＶＰＮデバイスをさらに備える。ＶＰＮデバイスは、取得したデータをカプセル化するプロトコルを有する。ＶＰＮデバイスが有するプロトコル（以下、ＶＰＮのプロトコルともいう）には、固有のＵＩＤが割り当てられている。以下、プロトコルに割り当てられたＵＩＤを、プロトコルのＵＩＤともいう。ＶＰＮデバイスは、このプロトコルに基づいて、アプリケーションからのデータをカプセル化する。そして、ＶＰＮデバイスは、カプセル化したデータを通信部１１に出力する。カプセル化されたデータは、データを送信するアプリケーションに割り当てられているＵＩＤとの対応づけが失われる。そして、カプセル化されたデータには、カプセル化を行ったプロトコルのＵＩＤが新たに対応づけられる。
【００９２】
ＶＰＮデバイスは、データのカプセル化を行うプロトコルを複数有してもよい。この場合、各プロトコルのＵＩＤはそれぞれ異なる。そして、カプセル化されたデータには、カプセル化を行ったプロトコルのＵＩＤが対応づけられる。またＶＰＮデバイスがデータのカプセル化を行うプロトコルを複数有する場合、これらのプロトコルのＵＩＤは、共通のグループに属する。この共通のグループには、ＧＩＤが割り当てられている。よって、ＶＰＮデバイスが有する複数のプロトコルには共通のＧＩＤが対応づけられる。また、ＶＰＮデバイスが有するプロトコルは、アプリケーションに含まれるものであってもよい。
【００９３】
また、ＶＰＮのプロトコルには、他の通信プロトコルと同様に、プロトコル番号が割り当てられている。よって、ＶＰＮのプロトコルによりカプセル化されたデータのヘッダ部分には、データのカプセル化を行ったプロトコルに割り当てられたプロトコル番号が含まれている。
【００９４】
ＶＰＮのプロトコルにおいても、ＴＣＰと同様に、データの送信後にＡＣＫを取得することにより、データの送信が正常に行われたことが確認される。ここで、ＶＰＮを利用してデータを送信するアプリケーションが、ＶＰＮによる通信の接続を終了する際、ＴＣＰの場合と同様に、アプリケーションが接続終了要求を送信した後、ネットワーク側通信デバイスからのＡＣＫ取得を待たずにアプリケーションが終了してしまう場合がある。
【００９５】
この場合、ＶＰＮデバイスは、ネットワーク側通信デバイスとの接続を終了させるために、アプリケーションに代わって、ネットワーク側通信デバイスに対してＡＣＫを含むデータを送信する。このＡＣＫを含むデータには、ＵＩＤ又はＧＩＤは対応づけられていない。しかし、このデータのヘッダ部分には、ＶＰＮのプロトコルに割り当てられたプロトコル番号が含まれている。よって、ＶＰＮのプロトコルに割り当てられたプロトコル番号を含むデータに係るデータ通信を許可するという条件をフィルタリング条件として設定することにより、ＶＰＮデバイスからのＡＣＫの送信が許可される。これにより、ＶＰＮによる通信の接続を正常に終了することができる。
【００９６】
以上、変形例について説明してきた。本変形例によれば、ＶＰＮのプロトコルに応じてデータ通信を許可するか決定できる。これにより、ＶＰＮを利用した通信の接続を終了する際のＡＣＫの送信が禁止されないようにできる。
【００９７】
本発明を諸図面や実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形や修正を行うことが容易であることに注意されたい。従って、これらの変形や修正は本発明の範囲に含まれることに留意されたい。例えば、各構成部、各ステップなどに含まれる機能などは論理的に矛盾しないように再配置可能であり、複数の構成部やステップなどを１つに組み合わせたり、或いは分割したりすることが可能である。また、本発明について装置を中心に説明してきたが、本発明は装置の各構成部が実行するステップを含む方法としても実現し得るものである。また、本発明について装置を中心に説明してきたが、本発明は装置が備えるプロセッサにより実行される方法、プログラム、又はプログラムを記録した記憶媒体としても実現し得るものであり、本発明の範囲にはこれらも包含されるものと理解されたい。
【００９８】
上記の実施形態では、従量課金制ではない方式によるデータ通信の方式として無線ＬＡＮを例示したが、これに限定されず、従量課金制ではない方式は、Ｂｌｕｅｔｏｏｔｈ（登録商標）やＥｔｈｅｒｎｅｔ（登録商標）等のデータ通信方式であってもよい。
【符号の説明】
【００９９】
１  通信装置
１０  制御部
１１  通信部
１１１  Ｉ／Ｆデバイス
１１２  モデム
１１３  無線ＬＡＮデバイス
１２  記憶部
１３  表示部
１４  操作部
１５  パケットフィルタ
１６ａ  アプリケーションＡ
１６ｂ  アプリケーションＢ
【図１】
2017138971.tif 000003
【図２】
2017138971.tif 000004
【図３】
2017138971.tif 000005
【図４】
2017138971.tif 000006
【図５】
2017138971.tif 000007
【図６】
2017138971.tif 000008
【図７】
2017138971.tif 000009