JP2017138971A - 通信装置、通信制御方法、及びプログラム - Google Patents
通信装置、通信制御方法、及びプログラム Download PDFInfo
- Publication number
- JP2017138971A JP2017138971A JP2017002686A JP2017002686A JP2017138971A JP 2017138971 A JP2017138971 A JP 2017138971A JP 2017002686 A JP2017002686 A JP 2017002686A JP 2017002686 A JP2017002686 A JP 2017002686A JP 2017138971 A JP2017138971 A JP 2017138971A
- Authority
- JP
- Japan
- Prior art keywords
- communication
- data
- application
- data communication
- protocol
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Telephone Function (AREA)
- Computer And Data Communications (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
【課題】データの送信元に係る識別子が対応づけられていないデータに係るデータ通信を制御できる通信装置、通信制御方法、及びプログラムを提供する。【解決手段】通信装置であって、デフォルトでデータ通信を禁止し、アプリケーションからデータ通信の要求を受け、要求したアプリケーションから要求されたデータ通信のプロトコルに応じて、アプリケーションのデータ通信を許可する通信装置。【選択図】図1
Description
本発明は、通信装置、通信制御方法、及びプログラムに関する。
従来、データ通信可能な携帯端末等の通信装置が知られている(例えば、特許文献1参照)。通信装置においては、通信装置上で稼働するアプリケーションによるデータ通信がデフォルトで許可される一方で、ユーザによって選択されたアプリケーションによるデータ通信が禁止されるという構成が採用されることがある。
アプリケーションから送信されるデータには、アプリケーションに割り当てられた識別子、つまりデータの送信元に係る識別子が対応づけられる。通信装置は、データの送信元に係る識別子に応じてデータ通信を禁止するように制御する。
しかし、データの送信元は、アプリケーションに限られず、通信装置のシステムであることもある。システムから送信されるデータには、識別子が対応づけられていないことがある。この場合、通信装置は、データの送信元に係る識別子に応じたデータ通信の制御を実行できない。
そこで本発明は、上述の点に鑑みてなされたものであり、データの送信元に係る識別子が対応づけられていないデータに係るデータ通信を制御できる通信装置、通信制御方法、及びプログラムを提供することを目的とする。
上記目的を達成する本発明の一実施形態に係る通信装置は、
デフォルトでデータ通信を禁止し、
アプリケーションからデータ通信の要求を受け、
前記要求したアプリケーションから要求されたデータ通信のプロトコルに応じて、該アプリケーションのデータ通信を許可する。
デフォルトでデータ通信を禁止し、
アプリケーションからデータ通信の要求を受け、
前記要求したアプリケーションから要求されたデータ通信のプロトコルに応じて、該アプリケーションのデータ通信を許可する。
また、前記プロトコルは、VPNのプロトコルであってもよい。
また、前記アプリケーションのデータ通信は、プロトコルに含まれる特定のメッセージの通信であってもよい。
また、前記データ通信がセルラ通信である場合に、デフォルトでデータ通信を禁止するようにしてもよい。
また、前記データ通信が無線LAN通信である場合に、デフォルトでデータ通信を許可するようにしてもよい。
また、本発明の一実施形態に係る通信制御方法は、
通信装置において、
デフォルトでデータ通信を禁止するステップと、
アプリケーションからデータ通信の要求を受けるステップと、
前記要求したアプリケーションから要求されたデータ通信のプロトコルに応じて、該アプリケーションのデータ通信を許可するステップと
を含む。
通信装置において、
デフォルトでデータ通信を禁止するステップと、
アプリケーションからデータ通信の要求を受けるステップと、
前記要求したアプリケーションから要求されたデータ通信のプロトコルに応じて、該アプリケーションのデータ通信を許可するステップと
を含む。
また、本発明の一実施形態に係るプログラムは、
通信装置として機能するコンピュータに、
デフォルトでデータ通信を禁止するステップと、
アプリケーションからデータ通信の要求を受けるステップと、
前記要求したアプリケーションから要求されたデータ通信のプロトコルに応じて、該アプリケーションのデータ通信を許可するステップと
を実行させる。
通信装置として機能するコンピュータに、
デフォルトでデータ通信を禁止するステップと、
アプリケーションからデータ通信の要求を受けるステップと、
前記要求したアプリケーションから要求されたデータ通信のプロトコルに応じて、該アプリケーションのデータ通信を許可するステップと
を実行させる。
本発明の一実施形態に係る通信装置、通信制御方法、及びプログラムによれば、データの送信元に係る識別子が対応づけられていないデータに係るデータ通信を制御できる。
(実施形態1)
以下、一実施形態に係る通信装置について、図面を参照しながら詳細に説明する。本実施形態に係る通信装置は、携帯電話、又はスマートフォンなどの携帯機器とすることができる。しかしながら、本実施形態に係る通信装置は、携帯機器に限定されるものではなく、デスクトップPC、ノートPC、タブレット型PC、家電製品、産業用機器(FA機器)、専用端末等、データ通信を行う種々の電子機器とすることができる。
以下、一実施形態に係る通信装置について、図面を参照しながら詳細に説明する。本実施形態に係る通信装置は、携帯電話、又はスマートフォンなどの携帯機器とすることができる。しかしながら、本実施形態に係る通信装置は、携帯機器に限定されるものではなく、デスクトップPC、ノートPC、タブレット型PC、家電製品、産業用機器(FA機器)、専用端末等、データ通信を行う種々の電子機器とすることができる。
[装置構成]
図1は、本実施形態に係る通信装置1の概略構成例を示す機能ブロック図である。図1に示されるように、通信装置1は、制御部10と、通信部11と、記憶部12と、表示部13と、操作部14とを備える。制御部10は、通信部11と、記憶部12と、表示部13と、操作部14とに接続され、これらを制御する。
図1は、本実施形態に係る通信装置1の概略構成例を示す機能ブロック図である。図1に示されるように、通信装置1は、制御部10と、通信部11と、記憶部12と、表示部13と、操作部14とを備える。制御部10は、通信部11と、記憶部12と、表示部13と、操作部14とに接続され、これらを制御する。
制御部10は、オペレーティングシステム(以下、OSともいう)、及び、アプリケーションソフトウェア(以下、アプリケーションともいう)を実行可能なプロセッサ又はマイコン等により構成されうる。OSは、例えばAndroid(登録商標)である。アプリケーションについては後述する。
通信部11は、セルラ通信、又は無線LAN通信等を行う通信インタフェースとして、I/F(インタフェース)デバイス111を備える。I/Fデバイス111は、モデム112と無線LANデバイス113とを含む。通信部11は、I/Fデバイス111を用いてインターネット等のネットワーク側に接続され、ネットワーク側との間でデータ通信を行う。これにより、通信装置1はネットワーク側との間でデータ通信可能となる。通信部11は、制御部10に接続され、ネットワーク側へ出力するデータを制御部10から取得する。制御部10は、通信部11に対して出力するデータをフィルタリング処理によって選択する。フィルタリング処理については後述する。また制御部10は、ネットワーク側から受信したデータを通信部11から取得する。
セルラ通信方式によりネットワーク側と接続される場合、一般的に、通信されるデータ(パケット)の量の増大に応じて通信料金が増大する従量課金制の料金体系が採用される。一方で、無線LAN通信等の方式によりネットワーク側と接続される場合、一般的に、そのような料金体系ではない。
記憶部12は、例えば半導体メモリ等によって構成されうる。記憶部12には、各種情報若しくはデータ、又は、制御部10が実行するOS若しくはアプリケーション等のプログラムが格納される。制御部10は、記憶部12に格納されたプログラムを取得し、実行する。制御部10は、プログラムの実行により生成されるデータを記憶部12に格納する。また記憶部12は、ワークメモリとしても機能しうる。
表示部13は、制御部10から取得した情報に基づき、文字、画像、操作用オブジェクト、ポインタ等を表示する。表示部13は、例えば、液晶ディスプレイ、有機ELディスプレイ、無機ELディスプレイ等の表示デバイスであるが、これらに限られるものではない。
操作部14は、テンキー等の物理キー、タッチパッド、又はタッチパネル等によって構成される。制御部10は、操作部14から取得した入力内容に応じて、表示部13に表示されるポインタ等を移動させたり、操作用オブジェクトを選択したりする。
図2は、本実施形態に係る通信装置1の一例の外観を示す図である。図2に示す通り、本実施形態に係る通信装置1は、いわゆる折りたたみ式(フリップ型又はクラムシェル型等)のフィーチャーフォンである。通信装置1は、上部筐体2と下部筐体3とが、ヒンジ部4によって回動可能に接続される。上部筐体2は表示部13を備え、下部筐体3は操作部14を備える。操作部14は、テンキー等の物理キーの他、物理キーが設けられていない部位にタッチパッド141を備える。通信装置1は、例えば物理キーにより操作用のオブジェクトの選択操作を受け付け、またタッチパッド141によりポインタ等の移動操作を受け付ける。
[アプリケーション]
アプリケーションは、制御部10で実行可能となるように通信装置1にインストールされ、記憶部12に格納される。アプリケーションが通信装置1にインストールされる際、各アプリケーションに固有のユーザ識別子(以下、UIDともいう)が割り当てられる。アプリケーションは、制御部10によって、OS上においてUIDに対応づけられるプロセスとして実行される。
アプリケーションは、制御部10で実行可能となるように通信装置1にインストールされ、記憶部12に格納される。アプリケーションが通信装置1にインストールされる際、各アプリケーションに固有のユーザ識別子(以下、UIDともいう)が割り当てられる。アプリケーションは、制御部10によって、OS上においてUIDに対応づけられるプロセスとして実行される。
アプリケーションは、制御部10で実行される際に、ファイルシステムなどのリソースに対してアクセスする。各アプリケーションが無制限にリソースにアクセスすると、各アプリケーションによるリソースの使用領域が重複することがあり、この場合アプリケーションが正常に実行されなくなることがある。そこで、OS上で実行されるプロセスに対応づけられるUIDによってリソースに対するアクセスを制限し、アプリケーションによるリソース使用が互いに影響を及ぼさないようにする。つまり、各プロセスからアクセス可能なリソースは、同一のUIDに対応づけられるプロセスのリソースに制限される。
各アプリケーションには、グループ識別子(以下、GID又はグループのIDともいう)がさらに割り当てられてもよい。GIDは、各アプリケーションに割り当てられる固有のUIDが属するグループを特定するものである。一つのグループに一個のUIDだけが属してもよいし、一つのグループに複数のUIDが属してもよい。アプリケーションがUIDに対応づけられるプロセスとして実行される際、このプロセスはGIDにも対応づけられるようにしてもよい。また、各プロセスからアクセス可能なリソースは、同一のUIDだけでなく同一のGIDに対応づけられるプロセスのリソースにまで対象を広げて制限されるようにしてもよい。
アプリケーションは、フォアグラウンド(以下、FGともいう)、又は、バックグラウンド(以下、BGともいう)で実行される。アプリケーションがFGで実行されている状態は、例えば、ユーザが確認可能なように実行状況が表示部13に表示される、又は、ユーザが操作部14を用いて操作可能な状態である。アプリケーションがBGで実行されている状態は、例えば、実行状況が表示部13に表示されず、ユーザが操作可能ではない状態、又は、ユーザが意図せずに動作している状態である。
[データ通信プロトコル]
通信装置1のOSと、インターネット等のネットワーク側とのデータ通信は、所定の通信プロトコルに基づいて行われる。本実施形態において、通信プロトコルとして、例えば、TCP(Transmission Control Protocol)が用いられるものとして説明する。しかし、通信プロトコルはTCPに限られるものではなく、他の通信プロトコルが用いられてもよい。
通信装置1のOSと、インターネット等のネットワーク側とのデータ通信は、所定の通信プロトコルに基づいて行われる。本実施形態において、通信プロトコルとして、例えば、TCP(Transmission Control Protocol)が用いられるものとして説明する。しかし、通信プロトコルはTCPに限られるものではなく、他の通信プロトコルが用いられてもよい。
図3は、TCPのシーケンスを説明する図である。図3において、通信装置1とネットワーク側の通信デバイスとの間でTCPを用いたデータ通信が行われる。TCPのシーケンスは、接続確立、データ通信、及び、接続終了に大別される。
<接続確立シーケンス>
通信装置1は、ネットワーク側の通信デバイスに対して、TCPを用いた通信の接続を確立する要求(以下、接続確立要求ともいう)を含むデータを送信する(ステップS501)。続いてネットワーク側の通信デバイスは、通信装置1からの接続確立要求の取得に応じて、確認応答メッセージ(以下、ACKともいう)を含むデータを送信する(ステップS502)。TCPにおいて、ACKは、データのヘッダ部分に含まれる。
通信装置1は、ネットワーク側の通信デバイスに対して、TCPを用いた通信の接続を確立する要求(以下、接続確立要求ともいう)を含むデータを送信する(ステップS501)。続いてネットワーク側の通信デバイスは、通信装置1からの接続確立要求の取得に応じて、確認応答メッセージ(以下、ACKともいう)を含むデータを送信する(ステップS502)。TCPにおいて、ACKは、データのヘッダ部分に含まれる。
続いて通信装置1は、ネットワーク側の通信デバイスからのACKの取得に応じて、ACKを含むデータを送信する(ステップS503)。以上のステップS501〜S503により、通信装置1とネットワーク側の通信デバイスとの間に接続が確立する。
<データ通信シーケンス>
通信装置1は、確立された接続を用いて、ネットワーク側の通信デバイスに対して、データを含むデータを送信する(ステップS504)。続いてネットワーク側の通信デバイスは、通信装置1からデータを取得した場合、ACKを含むデータを送信する(ステップS505)。このとき、ネットワーク側の通信デバイスから送信されるデータは、ACKだけを含むものであってもよい。
通信装置1は、確立された接続を用いて、ネットワーク側の通信デバイスに対して、データを含むデータを送信する(ステップS504)。続いてネットワーク側の通信デバイスは、通信装置1からデータを取得した場合、ACKを含むデータを送信する(ステップS505)。このとき、ネットワーク側の通信デバイスから送信されるデータは、ACKだけを含むものであってもよい。
続いて通信装置1は、ネットワーク側の通信デバイスからデータを取得した場合、ACKを含むデータを送信する(ステップS506)。このとき、通信装置1から送信されるデータは、ACKだけを含むものであってもよい。
以上のステップS504〜S506のように、データ送信とACKの送信とを繰り返すことにより、通信装置1とネットワーク側の通信デバイスとの間でデータ通信が行われる。
<接続終了シーケンス>
通信装置1は、ネットワーク側の通信デバイスに対して、TCPを用いた通信の接続を終了する要求(以下、接続終了要求ともいう)を含むデータを送信する(ステップS507)。ネットワーク側の通信デバイスは、通信装置1からの接続終了要求の取得に応じて、確認メッセージ(以下、ACKともいう)を含むデータを送信する(ステップS508)。通信装置1は、ネットワーク側の通信デバイスからのACKの取得に応じて、ACKを含むデータを送信する(ステップS509)。以上のステップS507〜S509により、通信装置1とネットワーク側の通信デバイスとの間の接続が終了する。
通信装置1は、ネットワーク側の通信デバイスに対して、TCPを用いた通信の接続を終了する要求(以下、接続終了要求ともいう)を含むデータを送信する(ステップS507)。ネットワーク側の通信デバイスは、通信装置1からの接続終了要求の取得に応じて、確認メッセージ(以下、ACKともいう)を含むデータを送信する(ステップS508)。通信装置1は、ネットワーク側の通信デバイスからのACKの取得に応じて、ACKを含むデータを送信する(ステップS509)。以上のステップS507〜S509により、通信装置1とネットワーク側の通信デバイスとの間の接続が終了する。
図3を用いて説明してきたように、TCPを用いたデータ通信においては、データの送信とACKの送信とが対となって実行される。データを送信したデバイスは、送信先のデバイスから、送信したデータに対応するACKを取得してはじめて、データの送信が成功したことを確認できる。データ送信後一定時間ACKを取得できない場合(所定のタイムアウト時間を経過した場合)、デバイスは、データを再送信してもよいし、ACKを取得するまでさらに待機してもよい。
ここで、ACKについてさらに説明する。ACKは、TCPにおける機能を実現するために必要とされる特定のメッセージの一つである。ACKは、ACKフラグとACK番号とを含む。ACKフラグとは、データがACKを含んでいるかを示すフラグである。TCPでは、ACKフラグが1の場合、データがACKを含むことを意味する。また、ACKフラグが0の場合、データがACKを含まないことを意味する。
ACK番号とは、どのデータに対応するACKであるか示す番号である。TCPで送信されるデータにはそれぞれシーケンス番号が付され、シーケンス番号によりデータが区別される。そしてACK番号は、送信されてきたデータに含まれるシーケンス番号に1を加えた番号である。例えば、シーケンス番号が1000であるデータに対応するACKのACK番号は1001とされる。ACK番号とシーケンス番号との関係は上述のものに限られない。
データ通信の最初のデータは、ACKを返す対象のデータがないため、ACKを含まない。よって、データ通信の最初のデータは、ACKフラグが0である。一方で、最初のデータに続くデータは、最初のデータに対するACKを含むため、ACKフラグが1である。
[データ通信の制御]
制御部10によって実行されるアプリケーションは、通信部11を用いて、インターネット等のネットワーク側とのデータ通信を行う。上述の通り、アプリケーションはOS上においてUIDに対応づけられるプロセスとして実行される。そして、アプリケーションから送信されるデータにはUIDが対応づけられる。制御部10は、データに対応づけられたUIDに基づいてデータの送信を許可するか禁止(制限)するか決定することにより、各アプリケーションから送信されるデータに係るデータ通信を許可するか禁止するか制御できる。以下、本実施形態に係る説明においては、データ通信は、原則的に通信部11がネットワーク側との間で行うデータ通信のことを指すものとする。
制御部10によって実行されるアプリケーションは、通信部11を用いて、インターネット等のネットワーク側とのデータ通信を行う。上述の通り、アプリケーションはOS上においてUIDに対応づけられるプロセスとして実行される。そして、アプリケーションから送信されるデータにはUIDが対応づけられる。制御部10は、データに対応づけられたUIDに基づいてデータの送信を許可するか禁止(制限)するか決定することにより、各アプリケーションから送信されるデータに係るデータ通信を許可するか禁止するか制御できる。以下、本実施形態に係る説明においては、データ通信は、原則的に通信部11がネットワーク側との間で行うデータ通信のことを指すものとする。
図4は、本実施形態に係るデータの流れの一例を示すブロック図である。図4において、制御部10と通信部11とが端末側に設けられる。そして、通信部11がネットワーク側と接続され、ネットワーク側との間でデータ通信を行う。
図4において、制御部10は、アプリケーションA16aとアプリケーションB16bとをOS上におけるプロセスとして実行する。制御部10によって実行されるアプリケーションは、必要に応じてネットワーク側とのデータ通信を要求する。例えば、アプリケーションA16aは、ネットワーク側へ向けてデータの送信を要求する。この場合、アプリケーションA16aからネットワーク側へ向けて送信するデータは、制御部10で稼働するパケットフィルタ15に入力される。また、アプリケーションB16bからも同様に、アプリケーションB16bからネットワーク側へ向けて送信するデータがパケットフィルタ15に入力される。
パケットフィルタ15は、制御部10からネットワーク側へ向かうデータのフィルタリング処理を行う。フィルタリング処理は、設定されたフィルタリング条件に基づいて、アプリケーションから要求されたデータの送信を許可するか禁止するか決定する処理である。フィルタリング条件は、例えば、ip_rule又はip_route等を含む。これらのフィルタリング条件は、記憶部12に格納されており、パケットフィルタ15によって参照される。以下、フィルタリング条件を設定する動作は、フィルタリング条件を記憶部12に格納する動作を含むものとする。なお、フィルタリング条件は、記憶部12に格納されずに制御部10に保持されていてもよい。
ip_ruleは、例えば、送信元がXであるデータをネットワーク側へ送信してよいか決定するための条件を含む。ip_routeは、例えば、送信先としてYが指定されたデータをネットワーク側へ送信するルート(中継ルータ等)を決定するための条件を含む。
図4において、アプリケーションA16aから送信されるデータの流れが実線の矢印で示され、アプリケーションB16bから送信されるデータの流れが破線の矢印で示される。このうち、アプリケーションA16aから送信されるデータは、パケットフィルタ15におけるフィルタリング処理によって送信が禁止されず、通信部11に送られる。一方、アプリケーションB16bから送信されるデータは、パケットフィルタ15におけるフィルタリング処理によって送信が禁止され、通信部11に送られない。この動作は、図4において破線の矢印がrejectという記載に向けられることで示される。
パケットフィルタ15を通過したデータ(図4の場合、実線の矢印で示されるアプリケーションA16aから送信されるデータ)は、通信部11に入力される。通信部11は、I/Fデバイス111を用いて、ネットワーク側へデータを送信する。通信部11は、ネットワーク側へデータを送信するに際して、モデム112によるセルラ通信を用いるか、無線LANデバイス113による無線LAN通信を用いるか、又は、他の通信方式を用いるか適宜決定しうる。
[フィルタリング処理]
アプリケーションから送信されるデータについてのデータ通信を許可するか禁止するかは、データ送信元のアプリケーションに割り当てられるUIDに基づいて決定される。以下、UIDとしてXが割り当てられるアプリケーション(以下、UIDがXのアプリケーションともいう)から送信されるデータのことを、UIDがXのデータともいう。また、UIDがXのデータのフィルタリング処理を行うために用いられるフィルタリング条件を、UIDがXのデータのフィルタリング条件ともいう。
アプリケーションから送信されるデータについてのデータ通信を許可するか禁止するかは、データ送信元のアプリケーションに割り当てられるUIDに基づいて決定される。以下、UIDとしてXが割り当てられるアプリケーション(以下、UIDがXのアプリケーションともいう)から送信されるデータのことを、UIDがXのデータともいう。また、UIDがXのデータのフィルタリング処理を行うために用いられるフィルタリング条件を、UIDがXのデータのフィルタリング条件ともいう。
パケットフィルタ15は、例えば、UIDが1のアプリケーションから送信されるデータに係るデータ通信のみ許可するというフィルタリング条件を有する。また、フィルタリング条件は、複数の条件をあわせたものであってもよい。
ここで、本実施形態に係るフィルタリング処理が行われる場合のデータ通信のシーケンスを説明する。本実施形態に係るフィルタリング処理は、BG動作しているアプリケーションが送信するデータに係るデータ通信の許可又は禁止を決定することを前提とする。以下の本実施形態に係るフィルタリング処理の説明は上記前提に基づく。
本実施形態に係るフィルタリング処理は、デフォルトでデータ通信を禁止するというフィルタリング条件(以下、デフォルト通信禁止条件ともいう)が設定されている。デフォルト通信禁止条件が設定されていることにより、他のフィルタリング条件がさらに設定されない限り、全てのデータ通信が禁止される。デフォルト通信禁止条件は、通信装置1の出荷時に設定されたり、通信装置1の初期化時に設定されたりする。すなわち、本実施形態において、「デフォルト」とは、所定のタイミング(例えば、通信装置1の出荷時、通信装置1の初期化時、等)で、標準の動作として予め設定されていることを意味するものとする。
本実施形態においては、必要なデータ通信を実行するために、デフォルト通信禁止条件に加えて、データ通信を許可するための条件(以下、通信許可条件ともいう)が設定されたフィルタリング条件が用いられる。この場合、通信許可条件は、デフォルト通信禁止条件に優先する。
図5は、本実施形態に係るフィルタリング処理のシーケンスを説明する図である。図5には、アプリケーションA16a、アプリケーションB16b、フレームワーク、通信制御部、カーネル、及びモデム112のシーケンスが示されている。
モデム112は、上述の通り、セルラ通信を行う通信インタフェースとして機能するハードウェアである。図5においては、モデム112を用いたセルラ通信によるデータ通信について説明しているが、モデム112ではなく、無線LANデバイス113等の他のI/Fデバイス111に置き換えて、他の通信方式によるデータ通信を行ってもよい。
カーネル、通信制御部、及びフレームワークはソフトウェアであり、制御部10で実行される。図5において、通信制御部にはUIDとして0が割り当てられる。
フレームワークは、OS上においてアプリケーションを動作させるための機能群を含むソフトウェアである。一般的に、フレームワークで準備された機能群を組み合わせることによって、各アプリケーションの機能が実現される。
カーネルは、OSの中核をなすソフトウェアであり、アプリケーション等のソフトウェアによる処理に基づき、通信部11等のハードウェアにおける処理を管理して、ハードウェアの機能を利用できるようにする。
通信制御部は、ネットワーク関連の処理を行うデーモンプログラムであり、フレームワークとカーネルとの間をつなぐ処理をする。通信制御部は、特に、カーネルが通信部11の機能を利用できるようにするためのデータを処理する。本実施形態において、通信制御部は、カーネルが通信部11へのデータ出力を許可するか禁止するか決定するための条件をカーネルに出力する。
本実施形態において、フィルタリング処理はパケットフィルタ15により行われるものとして説明する。ここで、パケットフィルタ15は仮想的な処理ユニットであり、実際のフィルタリング処理は、通信制御部とカーネルとにより行われる。
アプリケーションA16a及びアプリケーションB16bは、OS上において動作するプロセスである。図5において、アプリケーションA16aにはUIDとして1が割り当てられ、アプリケーションB16bにはUIDとして2が割り当てられる。
以下、図5に示されるシーケンスを説明する。BG動作するアプリケーションがデータを送信する場合、デフォルトでセルラ通信によるデータ通信が禁止されている(ステップS1)。つまり、フィルタリング条件として、BG動作するアプリケーションから送信されるデータに係るデフォルト通信禁止条件が設定されている。図5において、デフォルト通信禁止条件が設定されていることは、カーネル、通信制御部、及びフレームワークにより認識されている。特に、カーネルは、デフォルト通信禁止条件が設定されていることを認識している場合、モデム112に対するデータの送信を行わない。
続いて、アプリケーションがBGで動作する場合のUIDが1のデータに係るデータ通信の許可要求(以下、UIDが1のデータの通信許可要求ともいう)を、フレームワークが取得する(ステップS2)。続いて、フレームワークは、UIDが1のデータの通信許可要求を通信制御部に出力する(ステップS3)。
通信制御部は、UIDが1のデータの通信許可要求を取得する(ステップS4)。続いて通信制御部は、UIDが1のデータの通信許可要求をカーネルに出力する(ステップS5)。
カーネルは、UIDが1のデータの通信許可要求を取得する(ステップS6)。以上のステップS3〜S6の動作により、カーネルにUIDが1のデータの通信許可要求が伝達される。つまり、フィルタリング条件として、UIDが1のデータに係る通信許可条件が設定される。
続いて、アプリケーションA16aがBG動作においてデータ通信を要求する場合(ステップS7)、カーネルは、UIDが1のデータに係る通信許可条件が設定されていることを認識しているので、データ通信を許可する(ステップS8)。そして、モデム112は、UIDが1のデータをネットワーク側へ送信するデータ通信を行う(ステップS9)。
一方、UIDとして2が割り当てられるアプリケーションB16bがBG動作においてデータ通信を要求する場合(ステップS10)、カーネルは、UIDが2のデータに係る通信許可条件が設定されていないことを認識している。よって、カーネルは、デフォルト通信禁止条件に基づいて、データ通信を禁止する(ステップS11)。
<アプリケーションからのデータ送信シーケンス>
図5のステップS7〜S9において、アプリケーションがデータ通信を要求してモデム112がデータ通信を行うことを説明した。以下、図6を用いて、これらのシーケンスをより具体的に説明する。図6には、アプリケーションA16a、フレームワーク、カーネル、及びモデム112のシーケンスが示されている。アプリケーションA16a、フレームワーク、カーネル、及びモデム112については、図5と同様であるため説明を省略する。
図5のステップS7〜S9において、アプリケーションがデータ通信を要求してモデム112がデータ通信を行うことを説明した。以下、図6を用いて、これらのシーケンスをより具体的に説明する。図6には、アプリケーションA16a、フレームワーク、カーネル、及びモデム112のシーケンスが示されている。アプリケーションA16a、フレームワーク、カーネル、及びモデム112については、図5と同様であるため説明を省略する。
アプリケーションA16aは、FG又はBGのいずれで動作する場合であっても、アプリケーションA16aから送信されるデータ(UIDが1のデータ)に係るデータ通信の要求(以下、UIDが1のデータ通信要求ともいう)をアプリケーションA16aが動作しているOS上のフレームワークに対して出力する(ステップS101)。
フレームワークは、UIDが1のデータ通信要求を取得する(ステップS102)。続いてフレームワークは、UIDが1のデータ通信要求をカーネルに出力する(ステップS103)。
カーネルは、UIDが1のデータ通信要求を取得する(ステップS104)。続いてカーネルは、モデム112に対してUIDが1のデータ通信要求に基づいてデータを出力する(ステップS105)。そしてモデム112は、UIDが1のデータをネットワーク側へ送信するデータ通信を行う(ステップS106)。
以上説明してきた図6に示されるシーケンスの動作により、アプリケーションから送信するデータが通信部11に出力され、ネットワーク側へ送信される。
以上、UIDに応じてデータ通信を許可するか決定するフィルタリング処理について説明してきた。このフィルタリング処理によれば、ユーザにより明示的にフィルタリング条件が設定されていないアプリケーションB16bから送信されるデータに係るデータ通信を禁止できる。
(実施形態2)
以上説明してきたフィルタリング処理においては、データに対応づけられたUIDに基づいて、当該データに係るデータ通信を許可するか禁止するか決定された。またUIDだけでなく、データに対応づけられたGIDに基づいても、当該データに係るデータ通信を許可するか禁止するか決定されてよい。
以上説明してきたフィルタリング処理においては、データに対応づけられたUIDに基づいて、当該データに係るデータ通信を許可するか禁止するか決定された。またUIDだけでなく、データに対応づけられたGIDに基づいても、当該データに係るデータ通信を許可するか禁止するか決定されてよい。
ここで、カーネルに対して、UID及びGIDが対応づけられていないデータが送信されることがある。この場合カーネルは、UID又はGIDに基づいて当該データに係るデータ通信を許可するか決定できない。この場合のデータ通信の制御方法について、以下、実施形態2として説明する。
UID及びGIDが対応づけられていないデータとは、例えば、フレームワークから送信されるデータである。このようなデータは、アプリケーションが送信すべきデータを送信せずに終了した場合に、フレームワークが当該データを代わりに送信することにより発生する。
アプリケーションが送信すべきデータを送信せずに終了する場合の一例は、アプリケーションがTCPを用いた通信の接続を終了する際に、アプリケーションが接続終了要求を送信した後、ネットワーク側通信デバイスからのACK取得を待たずにアプリケーションが終了してしまう場合である。この場合、フレームワークは、TCPを用いた通信の接続を終了させるために、アプリケーションに代わって、ネットワーク側通信デバイスに対してACKを含むデータを送信する。このACKを含むデータの送信元であるフレームワークにはUID及びGIDが割り当てられていないので、このACKを含むデータにはUID及びGIDが対応づけられない。
このように、UID及びGIDが対応づけられていないデータであっても、ヘッダ部分には、必ず通信プロトコルを示すプロトコル番号が含まれている。そこで、データに含まれるプロトコル番号に基づくフィルタリング処理が可能である。以下、プロトコルXを示すプロトコル番号がヘッダ部分に含まれるデータのことを、プロトコルXのデータという。
図7は、プロトコル番号に基づくフィルタリング処理のシーケンスを示す図である。図7には、アプリケーションA16a、フレームワーク、通信制御部、カーネル、及びモデム112のシーケンスが示されている。アプリケーションA16a、フレームワーク、通信制御部、カーネル、及びモデム112については、図5と同様であるため説明を省略する。
まず、BG動作するアプリケーションがデータを送信する場合、デフォルトでセルラ通信によるデータ通信が禁止されている(ステップS601)。
続いて、アプリケーションがBGで動作する場合のプロトコルXのデータに係るデータ通信の許可要求(以下、プロトコルXのデータの通信許可要求ともいう)を、フレームワークが取得する(ステップS602)。続いて、フレームワークは、プロトコルXのデータの通信許可要求を通信制御部に出力する(ステップS603)。
通信制御部は、プロトコルXのデータの通信許可要求を取得する(ステップS604)。続いて通信制御部は、プロトコルXのデータの通信許可要求をカーネルに出力する(ステップS605)。
カーネルは、プロトコルXのデータの通信許可要求を取得する(ステップS606)。以上のステップS602〜S606の動作により、カーネルにプロトコルXのデータの通信許可要求が伝達される。つまり、フィルタリング条件として、プロトコルXのデータに係る通信許可条件が設定される。
続いて、アプリケーションA16aがBG動作においてプロトコルXを用いたデータ通信を要求する場合(ステップS607)、カーネルは、プロトコルXのデータの通信許可条件が設定されていることを認識しているので、データ通信を許可する(ステップS608)。そして、モデム112は、アプリケーションAから送信されたプロトコルXのデータをネットワーク側へ送信するデータ通信を行う(ステップS609)。
以上、図7を用いて説明してきたように、プロトコル番号に基づいてデータ通信の許可又は禁止を決定することができる。ここで例えば、TCPのデータの通信許可条件がフィルタリング条件として設定される場合、実質的に全てのデータ通信が許可されることとなる場合がある。
そこで、図7で設定された通信許可条件に、データのヘッダ部分に含まれるACKフラグに係る条件がさらに含まれてもよい。つまり、プロトコルXのデータであって、且つ、ACKフラグが1であるデータの通信を許可するという条件が、通信許可条件としてフィルタリング条件に設定されうる。
ACKフラグが1であることが通信許可条件に含まれることにより、ACKフラグが0であるデータ、つまり、最初のデータの送信は禁止される。最初のデータが送信されなければ、ACKフラグが1であるデータが送信されることはない。よって、実質的に全てのデータ通信は禁止される。しかし、上述したような、アプリケーションが接続終了要求を送信した後、ネットワーク側通信デバイスからのACK取得を待たずにアプリケーションが終了してしまう場合に、フレームワーク又はライブラリが代わりに送信するACKを含むデータの通信は許可される。
以上、データ通信のプロトコルに応じてデータ通信を許可するか決定するフィルタリング処理について説明してきた。このフィルタリング処理によれば、データにUID又はGIDが対応づけられていない場合でも、当該データに係るデータ通信を許可するか決定することができる。
実施形態1及び2において、I/Fデバイス111としてモデム112を用いるセルラ通信方式によるデータ通信を禁止する方法について主に説明してきた。しかし、I/Fデバイス111はモデム112に限られず、無線LANデバイス113等であってもよい。つまり、これらの実施形態に係る通信装置1のデータ通信の制御方法は、セルラ通信方式によるデータ通信に限られず、無線LAN通信方式等の他の通信方式によるデータ通信においても適用されうる。
また実施形態1及び2において、データ通信が許可されたデータを送信するために必要となる機能については、デフォルトでデータ通信を許可するようにしてもよい。デフォルトでデータ通信を許可される機能は、例えば、VPN(Vertual Private Network)のトンネリング機能、DNS(Domain Name System)の名前解決機能、又はテザリング機能等である。これらの機能に係るデータ通信は、ユーザが意図した場合に動作するものに限り、許可されてもよい。これらの機能に係るデータ通信を許可する条件は、デフォルト通信禁止条件に優先するフィルタリング条件として設定されてもよい。
また、実施形態1及び2に係るフィルタリング処理は、BG動作しているアプリケーションのデータ通信について行われたが、これには限られず、FG動作しているアプリケーションのデータ通信について行われてもよい。つまり、本実施形態に係るフィルタリング処理は、FG動作しているアプリケーションが送信するデータに係るデータ通信の許可又は禁止を決定してもよい。
(変形例)
変形例として、VPNのトンネリング機能を用いてデータ通信を行うためにデータをカプセル化する場合のフィルタリング処理について説明する。本変形例においては、通信装置1はVPNデバイスをさらに備える。VPNデバイスは、取得したデータをカプセル化するプロトコルを有する。VPNデバイスが有するプロトコル(以下、VPNのプロトコルともいう)には、固有のUIDが割り当てられている。以下、プロトコルに割り当てられたUIDを、プロトコルのUIDともいう。VPNデバイスは、このプロトコルに基づいて、アプリケーションからのデータをカプセル化する。そして、VPNデバイスは、カプセル化したデータを通信部11に出力する。カプセル化されたデータは、データを送信するアプリケーションに割り当てられているUIDとの対応づけが失われる。そして、カプセル化されたデータには、カプセル化を行ったプロトコルのUIDが新たに対応づけられる。
変形例として、VPNのトンネリング機能を用いてデータ通信を行うためにデータをカプセル化する場合のフィルタリング処理について説明する。本変形例においては、通信装置1はVPNデバイスをさらに備える。VPNデバイスは、取得したデータをカプセル化するプロトコルを有する。VPNデバイスが有するプロトコル(以下、VPNのプロトコルともいう)には、固有のUIDが割り当てられている。以下、プロトコルに割り当てられたUIDを、プロトコルのUIDともいう。VPNデバイスは、このプロトコルに基づいて、アプリケーションからのデータをカプセル化する。そして、VPNデバイスは、カプセル化したデータを通信部11に出力する。カプセル化されたデータは、データを送信するアプリケーションに割り当てられているUIDとの対応づけが失われる。そして、カプセル化されたデータには、カプセル化を行ったプロトコルのUIDが新たに対応づけられる。
VPNデバイスは、データのカプセル化を行うプロトコルを複数有してもよい。この場合、各プロトコルのUIDはそれぞれ異なる。そして、カプセル化されたデータには、カプセル化を行ったプロトコルのUIDが対応づけられる。またVPNデバイスがデータのカプセル化を行うプロトコルを複数有する場合、これらのプロトコルのUIDは、共通のグループに属する。この共通のグループには、GIDが割り当てられている。よって、VPNデバイスが有する複数のプロトコルには共通のGIDが対応づけられる。また、VPNデバイスが有するプロトコルは、アプリケーションに含まれるものであってもよい。
また、VPNのプロトコルには、他の通信プロトコルと同様に、プロトコル番号が割り当てられている。よって、VPNのプロトコルによりカプセル化されたデータのヘッダ部分には、データのカプセル化を行ったプロトコルに割り当てられたプロトコル番号が含まれている。
VPNのプロトコルにおいても、TCPと同様に、データの送信後にACKを取得することにより、データの送信が正常に行われたことが確認される。ここで、VPNを利用してデータを送信するアプリケーションが、VPNによる通信の接続を終了する際、TCPの場合と同様に、アプリケーションが接続終了要求を送信した後、ネットワーク側通信デバイスからのACK取得を待たずにアプリケーションが終了してしまう場合がある。
この場合、VPNデバイスは、ネットワーク側通信デバイスとの接続を終了させるために、アプリケーションに代わって、ネットワーク側通信デバイスに対してACKを含むデータを送信する。このACKを含むデータには、UID又はGIDは対応づけられていない。しかし、このデータのヘッダ部分には、VPNのプロトコルに割り当てられたプロトコル番号が含まれている。よって、VPNのプロトコルに割り当てられたプロトコル番号を含むデータに係るデータ通信を許可するという条件をフィルタリング条件として設定することにより、VPNデバイスからのACKの送信が許可される。これにより、VPNによる通信の接続を正常に終了することができる。
以上、変形例について説明してきた。本変形例によれば、VPNのプロトコルに応じてデータ通信を許可するか決定できる。これにより、VPNを利用した通信の接続を終了する際のACKの送信が禁止されないようにできる。
本発明を諸図面や実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形や修正を行うことが容易であることに注意されたい。従って、これらの変形や修正は本発明の範囲に含まれることに留意されたい。例えば、各構成部、各ステップなどに含まれる機能などは論理的に矛盾しないように再配置可能であり、複数の構成部やステップなどを1つに組み合わせたり、或いは分割したりすることが可能である。また、本発明について装置を中心に説明してきたが、本発明は装置の各構成部が実行するステップを含む方法としても実現し得るものである。また、本発明について装置を中心に説明してきたが、本発明は装置が備えるプロセッサにより実行される方法、プログラム、又はプログラムを記録した記憶媒体としても実現し得るものであり、本発明の範囲にはこれらも包含されるものと理解されたい。
上記の実施形態では、従量課金制ではない方式によるデータ通信の方式として無線LANを例示したが、これに限定されず、従量課金制ではない方式は、Bluetooth(登録商標)やEthernet(登録商標)等のデータ通信方式であってもよい。
1 通信装置
10 制御部
11 通信部
111 I/Fデバイス
112 モデム
113 無線LANデバイス
12 記憶部
13 表示部
14 操作部
15 パケットフィルタ
16a アプリケーションA
16b アプリケーションB
10 制御部
11 通信部
111 I/Fデバイス
112 モデム
113 無線LANデバイス
12 記憶部
13 表示部
14 操作部
15 パケットフィルタ
16a アプリケーションA
16b アプリケーションB
Claims (7)
- デフォルトでデータ通信を禁止し、
アプリケーションからデータ通信の要求を受け、
前記要求したアプリケーションから要求されたデータ通信のプロトコルに応じて、該アプリケーションのデータ通信を許可する
通信装置。 - 前記プロトコルは、VPNデバイスでデータをカプセル化するプロトコルである、請求項1に記載の通信装置。
- 前記アプリケーションのデータ通信は、プロトコルに含まれる特定のメッセージの通信である、請求項1又は2に記載の通信装置。
- 前記データ通信がセルラ通信である場合に、デフォルトでデータ通信を禁止する、請求項1乃至3いずれか一項に記載の通信装置。
- 前記データ通信が無線LAN通信である場合に、デフォルトでデータ通信を許可する、請求項1乃至4いずれか一項に記載の通信装置
- 通信装置において、
デフォルトでデータ通信を禁止するステップと、
アプリケーションからデータ通信の要求を受けるステップと、
前記要求したアプリケーションから要求されたデータ通信のプロトコルに応じて、該アプリケーションのデータ通信を許可するステップと
を含む通信制御方法。 - 通信装置として機能するコンピュータに、
デフォルトでデータ通信を禁止するステップと、
アプリケーションからデータ通信の要求を受けるステップと、
前記要求したアプリケーションから要求されたデータ通信のプロトコルに応じて、該アプリケーションのデータ通信を許可するステップと
を実行させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017002686A JP2017138971A (ja) | 2017-01-11 | 2017-01-11 | 通信装置、通信制御方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017002686A JP2017138971A (ja) | 2017-01-11 | 2017-01-11 | 通信装置、通信制御方法、及びプログラム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016019034A Division JP2017139611A (ja) | 2016-02-03 | 2016-02-03 | 通信装置、通信制御方法、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017138971A true JP2017138971A (ja) | 2017-08-10 |
Family
ID=59565152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017002686A Pending JP2017138971A (ja) | 2017-01-11 | 2017-01-11 | 通信装置、通信制御方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017138971A (ja) |
-
2017
- 2017-01-11 JP JP2017002686A patent/JP2017138971A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2017427437B2 (en) | Pdu type setting method, ue policy setting method, and related entity | |
EP3629552A1 (en) | Method, registration center and device for service discovery | |
EP3410759B1 (en) | Method and access point for accessing network by internet-of-things device | |
EP2561708B1 (en) | Method and apparatus for determining access point service capabilities | |
JP2016506546A (ja) | モバイル通信コンピューティングのための装置および方法 | |
JP2005229605A (ja) | 拡張可能無線フレームワーク | |
JP6258985B2 (ja) | 通信装置、通信制御方法、及びプログラム | |
US11394580B2 (en) | Data transmission | |
JP6532851B2 (ja) | 通信装置、dns処理方法、およびプログラム | |
JP2017138971A (ja) | 通信装置、通信制御方法、及びプログラム | |
JP2017139611A (ja) | 通信装置、通信制御方法、及びプログラム | |
JP6029781B1 (ja) | 通信装置、dns処理方法、およびプログラム | |
JP6258986B2 (ja) | 通信装置、通信制御方法、及びプログラム | |
JP6093055B1 (ja) | 通信装置、通信制御方法、及びプログラム | |
JP6180613B2 (ja) | 通信装置、通信制御方法、及びプログラム | |
JP2017225161A (ja) | 通信装置、通信制御方法、及びプログラム | |
JP6339604B2 (ja) | 通信装置、通信制御方法、及びプログラム | |
JP2017225162A (ja) | 通信装置、通信制御方法、及びプログラム | |
JP2017139735A (ja) | 通信装置、通信制御方法、及びプログラム | |
JP2017139736A (ja) | 通信装置、通信制御方法、及びプログラム | |
JP2017201830A (ja) | 通信装置、通信制御方法、及びプログラム | |
JP6069553B1 (ja) | 通信装置、通信制御方法、およびプログラム | |
JP2005250649A (ja) | プロセス間通信アクセス制御方式及び方法 | |
JP2007135083A (ja) | データ通信機能を有する機器 | |
JP2017139751A (ja) | 通信装置、通信制御方法、及びプログラム |