JP2017076866A - Communication device, control method thereof, and program - Google Patents
Communication device, control method thereof, and program Download PDFInfo
- Publication number
- JP2017076866A JP2017076866A JP2015202914A JP2015202914A JP2017076866A JP 2017076866 A JP2017076866 A JP 2017076866A JP 2015202914 A JP2015202914 A JP 2015202914A JP 2015202914 A JP2015202914 A JP 2015202914A JP 2017076866 A JP2017076866 A JP 2017076866A
- Authority
- JP
- Japan
- Prior art keywords
- transmission interval
- communication
- signal
- keepalive
- protocols
- 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
Abstract
Description
本発明は、通信装置、その制御方法、及びプログラムに関する。 The present invention relates to a communication device, a control method thereof, and a program.
近年、ウェブの発展により、HTTP/1.1の高速化が求められている。IETF(Internet Engineering Task Force)では、HTTP/1.1の次期の規格であるHTTP/2が策定された。また、HTTPは、パーソナルコンピュータやブラウザ以外の組込み機器においても広く利用されている。そのような組込み機器のうち、内蔵型電池を持つ組込み機器では、一般的に通信利用時には稼働時間が短くなる傾向にあった。 In recent years, with the development of the web, speeding up of HTTP / 1.1 has been demanded. In the IETF (Internet Engineering Task Force), HTTP / 2, which is the next standard of HTTP / 1.1, was formulated. HTTP is also widely used in embedded devices other than personal computers and browsers. Among such embedded devices, embedded devices having a built-in battery generally tend to have a shorter operating time when using communication.
通信機器は、対向機器とコネクションを確立したのち、そのコネクションを維持するため、及び、対向機器との通信経路を維持するため、定期的にKeepAliveメッセージを送受信している。通信機器と対向機器との間の通信経路を制御しているルータは、アプリケーション層とトランスポート層それぞれにおいて、データの送受信があるかを判断し、一定期間データの送受信が無かった場合に、コネクションを切断することが一般的に知られている。なお、通信機器は、KeepAlive処理は、トランスポート層だけでなく、アプリケーション層でも行われる。また、各層のKeepAlive送信間隔や送信タイミングは、層毎で決定される。 After establishing a connection with the opposite device, the communication device periodically transmits and receives a KeepAlive message in order to maintain the connection and to maintain a communication path with the opposite device. The router that controls the communication path between the communication device and the opposite device determines whether there is data transmission / reception in each of the application layer and the transport layer. It is generally known to cut. For communication devices, KeepAlive processing is performed not only in the transport layer but also in the application layer. In addition, the KeepAlive transmission interval and transmission timing of each layer are determined for each layer.
一方、デバイスの処理負荷軽減の為に、複数のCPU(Central Processing Unit)で処理することが可能なデバイスの開発が行われている。このようなデバイスでは、例えば、通信機能処理を行うCPUとアプリケーション処理を行うCPUといったように、保持するCPUごとに処理が割り当てられている。また、このようなデバイスでは、アプリケーション処理を行うCPUが通信機能処理を行うCPUに依存しているため、アプリケーション処理が動いている場合に、通信処理を行うCPUも動いていなければならない。 On the other hand, devices that can be processed by a plurality of CPUs (Central Processing Units) have been developed to reduce the processing load on the devices. In such a device, a process is assigned to each CPU to be held, such as a CPU that performs communication function processing and a CPU that performs application processing. In such a device, since the CPU that performs the application processing depends on the CPU that performs the communication function processing, the CPU that performs the communication processing must also operate when the application processing is operating.
アプリケーション層とトランスポート層におけるKeepAliveの送信間隔は、各層毎で決定されるため、それぞれ異なる場合がある。この場合、複数のCPUで処理するデバイスは、アプリケーション処理を行うCPUが通信機能処理を行うCPUに依存しているため、トランスポート層のKeepAliveを送信していないタイミングでも、アプリケーション層のKeepAliveを送信するために、トランスポート層における処理を行わなければならない。そのため、消費電力が大きくなってしまうという課題があった。また、1つのCPUでアプリケーション処理と通信機能処理を行う場合においても、各処理におけるKeepAliveの送信タイミングのズレによって通信装置の消費電力が大きくなってしまう恐れがあった。 Since the keep-alive transmission interval in the application layer and the transport layer is determined for each layer, it may be different. In this case, since the device that processes multiple CPUs depends on the CPU that performs application function processing, the CPU that performs application processing transmits the KeepAlive of the application layer even when it does not transmit the KeepAlive of the transport layer. In order to do so, processing in the transport layer must be performed. Therefore, there has been a problem that power consumption becomes large. In addition, even when application processing and communication function processing are performed by one CPU, there is a risk that the power consumption of the communication device may increase due to a shift in transmission timing of KeepAlive in each processing.
特許文献1では、通信機器内の複数のアプリケーションにおけるKeepAliveの送信タイミングを制御する技術が開示されている。しかしながら、特許文献1には、アプリケーション層とトランスポート層といった、異なる通信階層におけるKeepAliveの送信タイミングを制御することは行われていない。その結果、通信装置が通信不要な期間が短くなり、消費電力の低減が図れなかった。 Patent Document 1 discloses a technique for controlling KeepAlive transmission timing in a plurality of applications in a communication device. However, Patent Document 1 does not control KeepAlive transmission timing in different communication layers such as an application layer and a transport layer. As a result, the period during which the communication device does not require communication is shortened, and power consumption cannot be reduced.
本発明は。上記課題に鑑みてなされたものであり、通信装置の消費電力を低減することを目的とする。 The present invention. The present invention has been made in view of the above problems, and aims to reduce power consumption of a communication device.
上記目的を達成するための一手段として、本発明の通信装置は以下の構成を有する。すなわち、複数のプロトコルを用いることで他の通信装置と通信可能な通信装置であって、前記複数のプロトコルそれぞれについて、前記他の通信装置とのコネクションを維持するための信号の送信間隔を取得する取得手段と、前記取得された送信間隔に基づいて、前記コネクションが維持される範囲で前記信号が送信されない期間が長くなるように、前記複数のプロトコルそれぞれについて、前記信号の新たな送信間隔を決定する決定手段と、前記決定された新たな送信間隔を前記複数のプロトコルそれぞれに対して設定する設定手段と、を有することを特徴とする。 As a means for achieving the above object, the communication apparatus of the present invention has the following configuration. That is, a communication device that can communicate with another communication device by using a plurality of protocols, and for each of the plurality of protocols, obtain a signal transmission interval for maintaining a connection with the other communication device Based on the acquisition means and the acquired transmission interval, a new transmission interval of the signal is determined for each of the plurality of protocols so that a period during which the signal is not transmitted is long as long as the connection is maintained. And determining means for setting the determined new transmission interval for each of the plurality of protocols.
通信装置の消費電力を低減できる。 The power consumption of the communication device can be reduced.
以下、添付の図面を参照して、本発明をその実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。 Hereinafter, the present invention will be described in detail based on the embodiments with reference to the accompanying drawings. The configurations shown in the following embodiments are merely examples, and the present invention is not limited to the illustrated configurations.
[実施形態1]
本発明の例示的な実施形態である実施形態1を、図面を参照して説明する。図1は、実施形態1におけるシステム構成を示す図である。通信装置101は、ネットワーク100に接続し、サーバ102と通信可能である。サーバ102は、ネットワーク100に接続し、通信装置101と通信可能である。ネットワーク100は、通信装置101とサーバ102が接続するネットワークである。本実施形態におけるネットワーク100は、インターネット、WAN(Wide Area Network)、LAN(Local Area Network)、等の複合であっても実現できる。なお、通信装置101とサーバ102は、ネットワーク100を介さずに、直接に接続することも可能である。例えば、通信装置101とサーバ102は、無線アドホックネットワークを用いることにより、直接接続が実現可能である。通信装置101は、サーバ102との間でコネクションが確立された後、該コネクションを維持するための信号であるKeepAliveを、一定間隔で送信する。
[Embodiment 1]
Embodiment 1, which is an exemplary embodiment of the present invention, will be described with reference to the drawings. FIG. 1 is a diagram illustrating a system configuration according to the first embodiment. The
図2は、通信装置101のハードウェア構成を示す図である。バス200は、電源供給部201から、アプリケーション制御部205、プロトコル制御部206、及び無線制御部207へ電源を供給するバスである。電源供給部201は、各モジュールに電源を供給する。電源供給部201は、特定のモジュールのみに電源を供給することが可能である。例えば、電源供給部201は、無線制御部207のみに電源を供給し、アプリケーション制御部205、プロトコル制御部206には電源を供給しないことが可能である。バス202は、アプリケーション制御部205とプロトコル制御部206を接続する。バス203は、プロトコル制御部206と無線制御部207を接続する。バス204は、アプリケーション制御部205とプロトコル制御部206から電源供給部201への電源供給を制御する。アプリケーション制御部205は、アプリケーションに対応した処理を行う。プロトコル制御部206は、通信プロトコルに対応した処理を行う。無線制御部207は、無線通信の処理を行う。アンテナ208は、無線通信を行うアンテナでありサーバ102と無線通信を行う。なお、本実施形態では、通信装置101は無線通信を行うものとして説明するが、有線通信を行うことも可能である。
FIG. 2 is a diagram illustrating a hardware configuration of the
本実施形態では、アプリケーション制御部205、プロトコル制御部206、無線制御部207それぞれがCPUを持つような3CPU構成となっている。3CPU構成にすることで、アプリケーション制御部205、プロトコル制御部206、無線制御部207における処理が分離され、処理速度の向上や、アプリケーション制御部205、プロトコル制御部206の処理負荷が軽減可能となる。なお、本実施形態では3CPU構成としているが、例えばアプリケーション制御部205とプロトコル制御部206の処理を1つのCPUが行っても良いし、PCの複数コアの構成にアプリケーション制御部205とプロトコル制御部206を割り当てる構成であってもよい。また、無線制御部207は、無線チップのような半導体チップであってもよい。前者の2CPU構成によれば、処理負荷の大きい無線制御部207を分離できることにより、アプリケーション制御部205、プロトコル制御部206の処理負荷を軽減できる。また、後者の半導体チップによれば、無線制御部207における処理速度を向上することができる。
In this embodiment, the
図3は、アプリケーション制御部205に含まれるモジュールの構成を示す図である。バス300は、アプリケーション制御部205に接続するバスである。アプリケーションプロトコル制御部301は、アプリケーションプロトコルに関する制御を行う。表示部302は、各種表示を行い、例えば、エラーの表示を行う。操作部303は、ユーザの操作等に基づいて、アプリケーションの操作を行う。撮像部304は、静止画や動画の撮影を行う。取得部305は、第1のデータ保持部306、第2のデータ保持部403(図4)、第3のデータ保持部502(図5)からKeepAlive送信間隔を取得する。第1データ保持部306は、アプリケーションのKeepAlive送信間隔や送信開始タイミングを保持する。図8(b)に、第1のデータ保持部306で保持される情報の一例を示す。図8(b)に示される情報には、後述する処理により変更される前と後のKeepAlive送信間隔(sec)と、KeepAlive送信開始タイミングが含まれている。
FIG. 3 is a diagram illustrating a configuration of modules included in the
決定部307は、取得部305で取得したKeepAlive送信間隔をもとに、プロトコル制御部206と無線制御部207が処理を行わない時間が長くなるように、KeepAlive送信間隔や送信開始タイミングを決定する。設定部308は、決定部307で決定したKeepAlive送信間隔や送信開始タイミングを、第1のデータ保持部306、第2のデータ保持部403、第3のデータ保持部502に設定する。再接続判断部309は、サーバ102との通信が切断された場合に、再接続を行うか判断を行う。第1の接続維持部310は、アプリケーションのKeepAlive送信を行う。接続維持情報保持部311は、取得部305で取得したKeepAlive送信間隔や、決定部307で決定したKeepAlive送信間隔や送信開始タイミングと保持する。図8(a)に、接続維持情報保持部311で保持される情報の一例を示す。図8(a)に含まれる情報には、各プロトコルについて、後述する処理により変更される前と後のKeepAlive送信間隔(sec)と、KeepAlive送信開始タイミングが含まれている。
Based on the KeepAlive transmission interval acquired by the
図4は、プロトコル制御部206に含まれるモジュールの構成を示す図である。バス400は、プロトコル制御部206に接続するモジュールのバスである。HTTP/2制御部401は、HTTP/2の処理を行う。本実施形態では、HTTP/2を利用するが、HTTP/1.1やWebsocketといったTCPベースのプロトコルでもCoAPなどのUDPベースのプロトコルを利用してもよい。TCP/IP制御部402は、TCP/IPの処理を行う。なお、本実施形態ではTCPとするが、UDPであってもよい。第2のデータ保持部403は、HTTP/2のKeepAlive送信間隔や送信開始タイミングを保持する。第2のデータ保持部403で保持される情報の一例は、第1のデータ保持部306で保持される情報の一例と同様に図8(b)に示される。第2の接続維持部404は、HTTP/2のKeepAlive送信を行う。第1の検知部405は、HTTP/2の切断の検知を行う。第1の通知部406は、HTTP/2の切断/再接続の通知を行う。
FIG. 4 is a diagram illustrating a configuration of modules included in the
図5は、無線制御部207に含まれるモジュール構成を示す図である。バス500は、無線制御部207に接続するモジュールのバスである。無線プロトコル制御部501は、無線プロトコルの処理を行う。第3のデータ保持部502は、TCP/IPのKeepAlive送信間隔や送信開始タイミングを保持する。第3のデータ保持部502で保持する情報の一例は、第1のデータ保持部306で保持される情報の一例と同様に図8(b)に示される。第3の接続維持部503は、TCP/IPのKeepAlive送信を行う。第2の検知部504は、TCP/IPの切断の検知を行う。第2の通知部505は、TCP/IPの切断/再接続の通知を行う。
FIG. 5 is a diagram illustrating a module configuration included in the
本実施形態における通信装置101は、上述したように、複数のCPUを有する。各CPU間で処理のやり取りをする際に、アプリケーション制御部205/プロトコル制御部206間と、プロトコル制御部206/無線制御部207間でCPU間の通信を行う。例えば、アプリケーション制御部205に含まれる取得部305がプロトコル制御部206に含まれる第2のデータ保持部403からKeepAlive送信間隔を取得する場合について記述する。取得部305がアプリケーション制御部205を経由し、アプリケーション制御部205とプロトコル制御部206間でCPU間通信を行い、第2のデータ保持部403からKeepAlive送信間隔を取得する。また、アプリケーション制御部205から無線制御部207のモジュールに制御を行う場合は、プロトコル制御部206を経由してCPU間の通信を行う。本実施形態では、アプリケーション制御部205から無線制御部207のモジュールに制御を行うためにプロトコル制御部206を経由しているが、アプリケーション制御部205から無線制御部207に直接CPU間の通信を行う構成であっても良い。以降の記載では、CPUを跨いだ処理を「CPU間通信を行い」と省略する。
As described above, the
図6は、HTTP/2を使用した通信において、通信装置101がサーバ102に対するKeepAliveの送信タイミング(KeepAlive送信間隔と送信開始タイミング)を決定する処理のフローチャートである。本フローは、通信装置101がサーバ102との接続/再接続を行う時に開始される。なお、本フローの開始時は、接続/再接続時だけでなく、所定の時間で行っても良いし、操作部303が所定の操作を行った時でも良いし、アクセスポイントや通信経路が切り替わった時でも良い。
FIG. 6 is a flowchart of a process in which the
取得部305は、第1のデータ保持部306からKeepAlive送信間隔を取得する。また、取得部305は、CPU間通信を行い、第2のデータ保持部403と第3のデータ保持部502からKeepAlive送信間隔を取得する。取得部305は、取得したKeepAlive送信間隔を接続維持情報保持部311に保持する(S601)。本実施形態では、アプリケーション制御部205、プロトコル制御部206、無線制御部207が保持しているKeepAlive送信間隔を用いたが、1つのCPUにて保持されている各通信プロトコルのKeepAlive送信間隔を用いてもよい。また、取得部305は、KeepAlive送信間隔を測定して取得しても良い。
The
決定部307は、取得部305で取得したKeepAlive送信間隔から、KeepAlive送信間隔と送信開始タイミングを決定する(S602)。本実施形態では、決定部307は、サーバ102とのコネクションが維持される時間の範囲で、プロトコル制御部206と無線制御部207が処理を行わない時間が長くなるように、KeepAlive送信間隔と送信開始タイミングを決定する。本実施形態では、決定部307は、取得部305で取得したKeepAlive送信間隔の最小のKeepAlive送信間隔の倍数かつ、変更前のKeepAlive送信間隔以下となるように、KeepAlive送信間隔を決定する。例えば、アプリケーションのKeepAlive送信間隔が35(sec)、HTTP/2のKeepAlive送信間隔が24(sec)、TCP/IPのKeepAlive送信間隔が10(sec)である場合を考える。この場合、最小のKeepAlive送信間隔は、TCP/IPのKeepAlive送信間隔の10(sec)であることから、決定部307は、アプリケーションのKeepAlive送信間隔を30(sec)、HTTP/2のKeepAlive送信間隔を20(sec)、TCP/IPのKeepAlive送信間隔を10(sec)と変更することを決定する。これにより、各層におけるKeepAliveの送信タイミングの一部が一致するようになる。すなわち、決定部307は、各プロトコルでKeepAliveの送信タイミングの少なくとも一部が同期するように、複数のプロトコルそれぞれについて、KeepAliveの新たな送信間隔を決定する。
The
なお、決定部307は、上記の方法以外の方法を利用してKeepAlive送信間隔を決定してもよい。例えば、決定部307は、HTTP/2のKeepAlive送信間隔とTCP/IPのKeepAlive送信間隔を最小のKeepAlive送信間隔に合わせてもよい。さらに、本実施形態では、変更後のKeepAlive送信間隔を、変更前のKeepAlive送信間隔以下となるように決定しているが、変更前のKeepAlive送信間隔以上となるように決定してもよい。例えば、変更前のアプリケーションのKeepAlive送信間隔が35(sec)だった場合に、決定部307は、変更後の送信間隔を40(sec)と決定してもよい。KeepAlive送信間隔が長い場合は、接続が切れる可能性が高くなるので、決定したKeepAlive送信間隔を設定後に接続が切れなかった場合に、該送信間隔を本設定するようにしてもよい。それにより、無駄なKeepAlive送信を省くことができ、消費電力を低減できる。また、決定部307は、取得部305で取得したKeepAlive送信間隔の最小のKeepAlive送信間隔の倍数かつ、変更前のKeepAlive送信間隔に近くなるように、KeepAlive送信間隔を決定してもよい。例えば、アプリケーションのKeepAlive送信間隔が35(sec)、HTTP/2のKeepAlive送信間隔が24(sec)、TCP/IPのKeepAlive送信間隔が10(sec)である場合、決定部307は、アプリケーションのKeepAlive送信間隔を40(sec)、HTTP/2のKeepAlive送信間隔を20(sec)、TCP/IPのKeepAlive送信間隔を10(sec)と変更することを決定する。
Note that the
本実施形態において、決定部307は、KeepAlive送信開始タイミングについて、HTTP/2のKeepAlive送信開始タイミングとTCP/IPのKeepAlive送信開始タイミングを同じ時刻にし、アプリケーションのKeepAlive送信開始タイミングを該時刻よりも所定時間早くするように決定する。アプリケーションのKeepAlive送信開始タイミングを所定時間早くする理由は、アプリケーションのKeepAliveはTCP/IPのKeepAliveよりも一般的にデータサイズが大きいため、TCP/IPのKeepAliveのKeepAlive送受信時間に比べ遅延が発生するからである。なお、本実施形態では、決定部307は、アプリケーションのKeepAlive送信開始タイミングを所定時間早くしているが、同時刻にしても良い。また、決定部307は、優先度を用いてKeepAlive送信順序を制御しても良い。
In the present embodiment, the
なお、決定部307は、KeepAliveに関する情報(送信間隔および送信開始タイミング)を、KeepAliveの待受け時間を考慮して決定してもよい。インターネットを介した通信の場合、100ms以上の遅延が発生することが知られている。接続相手によって遅延を考慮することで、受信時間外になるKeepAliveを取り逃すことを低減する。さらに、決定部307は、通信の揺らぎの値から遅延の上限値と下限値を想定してKeepAliveに関する情報を決定してもよい。また、本実施形態では、通信装置101の対向機器となるサーバ102を1台にしているが、通信装置101は、複数の接続先の装置とのKeepAlive送信間隔と送信開始タイミングを調整してもよい。これにより、更なる消費電力の低減を行うことができる。
Note that the
次に、設定部308は、決定部307にて決定したKeepAlive送信間隔と送信開始タイミングを第1のデータ保持部306に設定する。また、設定部308は、CPU間通信を行い、第2のデータ保持部403および第3のデータ保持部502に設定する(S603)。
Next, the
図7はHTTP/2を使用した通信において、通信装置101が通信判断を行い、サーバ102に接続維持を行うためのシーケンスを示す図である。M701において、通信装置101は、サーバ102とHTTP/2通信を開始し、コネクションを確立する。具体的には、アプリケーションプロトコル制御部301が、CPU間通信を行い、HTTP/2制御部401にサーバ102とのコネクション生成を指示し、HTTP/2制御部401はTCP/IP制御部402を介し、CPU間通信を行い、無線制御部207を用いてサーバ102とパケットの送受信を行う。
FIG. 7 is a diagram illustrating a sequence for the
M702において、取得部305は、第1のデータ保持部306からKeepAlive送信間隔を取得する(S601)。M703において、取得部305は、CPU間通信を行い、第2のデータ保持部403からKeepAlive送信間隔を取得する(S601)。M704において、取得部305は、CPU間通信を行い、第3のデータ保持部502からKeepAlive送信間隔を取得する(S601)。なお、M702〜M704の順序は変更可能である。
In M702, the
M705において、決定部307は、KeepAlive送信間隔と送信開始タイミングを決定する(S602)。M706において、設定部308は、KeepAlive送信間隔と送信開始タイミングを第1のデータ保持部306に設定する(S603)。M707において、設定部308は、CPU間通信を行い、KeepAlive送信間隔と送信開始タイミングを第2のデータ保持部403に設定する(S603)。M708において、設定部308は、CPU間通信を行い、KeepAlive送信間隔と送信開始タイミングを第1のデータ保持部502に設定する(S603)。なお、M706〜M708の順序は変更可能である。
In M705, the
M709において、第1の接続維持部310は、サーバ102に対してアプリケーションのKeepAlive送信を行う。具体的には、まず、第1の接続維持部310がCPU間通信を行い、HTTP/2制御部401にKeepAliveメッセージの生成を指示する。本実施形態におけるアプリケーションのKeepAliveメッセージは、アプリケーションデータを含むメッセージのことである。例えば、HTTP/2のHEADERフレームを用いてHTTPのGETメソッドやHEADメッセージといったような、サーバ102の状態が変わらないようなKeepAliveメッセージを用いる。HTTP/2制御部401は、TCP/IP制御部402を介し、CPU間通信を行い、無線制御部207を用いてサーバ102とパケットの送受信を行う。通信装置101は、アプリケーション制御部205のKeepAliveメッセージにアプリケーションデータを含めることにより、所定のルータがアプリケーションデータのやり取りを行っていないと接続を切ってしまうという問題の解消が可能となる。
In M709, the first
また、本実施形態では、第1の接続維持部310は、アプリケーション制御部205のKeepAliveメッセージを他のKeepAliveメッセージよりも所定の時間早く送信する。アプリケーション制御部205のKeepAliveメッセージは、他のKeepAliveメッセージよりもデータサイズが大きく、KeepAliveメッセージの送受信時間がかかる。アプリケーション制御部205のKeepAliveメッセージが所定の時間早く送信されることで、プロトコル制御部206と無線制御部207の処理遅延を解消することができ、消費電力を小さくすることが可能である。なお、本実施形態ではアプリケーション制御部205のKeepAliveメッセージの送信を所定時間早くしているが、プロトコル制御部206と無線制御部207のKeepAliveメッセージの送信と同時刻であっても良い。
In the present embodiment, the first
M710において、第2の接続維持部404は、サーバ102にHTTP/2のKeepAlive送信を行う。具体的には、まず、第2の接続維持部404がHTTP/2制御部401にKeepAliveメッセージの生成を指示する。本実施形態におけるアプリケーションのKeepAliveメッセージは、HTTP/2のPINGフレームのことである。HTTP/2制御部401は、TCP/IP制御部402を介し、CPU間通信を行い、無線制御部207を用いてサーバ102とパケットの送受信を行う。なお、本実施形態ではPINGフレームを送信しているが、HEADERフレームであっても良い。また、本実施形態では、第2の接続維持部404は、HTTP/2のKeepAlive送信をしているが、HTTP/2のKeepAlive送信間隔よりアプリケーションのKeepAlive送信間隔が長い場合は、HTTP/2のKeepAlive送信を行わなくても良い。M711において、第3の接続維持部503はサーバ102にTCP/IPのKeepAlive送信を行う。なお、M710とM711の順序は変更可能である。
In M710, the second
本実施形態では、決定部307で決定したKeepAlive送信間隔を用いてKeepAliveメッセージを送受信しているが、決定部307で決定したKeepAlive送信間隔より小さな間隔で送信してもよい。例えば、ネットワークの状況によって、パケットのバーストロスが発生する場合がある。この時、通信装置101は、パケットロスが発生しているか否かを判断し、パケットロスが発生していた場合は、決定部307で決定したKeepAlive送信間隔よりも短い時間でKeepAliveメッセージを送受信しても良い。これによって、接続がより維持しやすくなるという効果がある。
In this embodiment, the KeepAlive message is transmitted / received using the KeepAlive transmission interval determined by the
また、本実施形態ではKeepAlive送信間隔の取得、決定、設定をアプリケーション制御部205のCPUにて行っているが、これに限らず、プロトコル制御部206や無線制御部207で行っても良い。
In this embodiment, the keep-alive transmission interval is acquired, determined, and set by the CPU of the
以上、本実施形態における通信装置101は、サーバ102とのコネクション生成後、該コネクションの維持のためのKeepAlive通信を行う時に、アプリケーション、HTTP/2、TCP/IPのKeepAlive送信間隔と送信開始タイミングを決定する。これにより、KeepAlive時におけるプロトコル制御部206と無線制御部207が処理していない時間が長くなり、消費電力を小さくすることが可能とある。
As described above, the
実施形態のHTTP/2は、例えば、WebSocket、XMPP、RTSPといった通信プロトコルであっても実現できる。XMPPやRTSPのような、KeepAliveメッセージに相当するメッセージがない場合には、アプリケーションデータをKeepAliveメッセージとして送信する必要がある。その際のアプリケーションデータは、XMPPであれば所定のメッセージ、RTSPであれば、GETメソッドのメッセージといった、サーバ102の状態が変わらないようなメッセージを用いることで、アプリケーション制御部205の通信を維持することができる。本実施形態のKeepAlive送信間隔は通信装置101の状態によってその値を変更しても良い。例えば、AC電源に繋いでいるような安定した電力が供給されている場合は、KeepAlive送信間隔を短くすることで、サーバ102との通信を維持しやすくすることが可能である。また、通信装置101の電池の残量が少ない場合は、KeepAlive送信間隔を長くすることで消費電力を小さくすることが可能である。
The HTTP / 2 of the embodiment can be realized even with a communication protocol such as WebSocket, XMPP, and RTSP, for example. When there is no message corresponding to the KeepAlive message, such as XMPP or RTSP, it is necessary to transmit application data as a KeepAlive message. The application data at that time maintains a communication of the
[実施形態2]
本発明の例示的な実施形態である実施形態2を、図面を参照して説明する。システム構成及び通信装置101の構成は、実施形態1で説明した構成と同様であるため、説明を省略する。
[Embodiment 2]
図9は、HTTP/2を使用した通信において、所定のプロトコルの通信が切断された際に、通信装置101が再接続を行ない、サーバ102とのKeepAlive送信間隔と送信開始タイミングを再決定する処理のフローチャートである。このフローは、第1の検知部405にてHTTP/2コネクションの切断、もしくは第2の検知部504にてTCP/IPの切断が検知された時に開始する。第1の検知部405にてHTTP/2コネクションの切断が検知された場合、第1の通知部406は、CPU間通信を行い、アプリケーションプロトコル制御部301に切断の通知を行う(S901)。第2の検知部504にてTCP/IPコネクションの切断が検知された場合、第2の通知部505は、CPU間通信を行い、TCP/IP制御部402、HTTP/2制御部401を介し、アプリケーションプロトコル制御部301に切断の通知を行う。
FIG. 9 shows a process of re-determining the keep-alive transmission interval and transmission start timing with the
再接続判断部309は、第1の通知部406もしくは第2の検知部504からの切断の通知をもとに、表示部302にて、HTTP/2またはTCP/IPの再接続を行うか否かをユーザに判断させるための表示制御を行う。図11(a)に、再接続を行うか否かをユーザに判断させるために再接続判断部309により表示制御された表示部302における画面例を示す。ユーザにより再接続するための操作が一定時間行われなかった場合、もしくは、再接続しないことを示す操作が行われた場合、再接続判断部309は、再接続を待たないと判断する(S902のNo)。ユーザにより再接続するための操作が行われた場合、再接続判断部309は再接続を待つと判断する(S902のYes)。この場合、再接続判断部309は、通信装置101とサーバ102間の再接続を確認するために待機する(S903)。
The
再接続判断部309は、第1の通知部406もしくは第2の検知部504から所定時間内に再接続の通知を受けることができたか否かによって、通信装置101とサーバ102間で再接続できたか否かを判断する(S904)。再接続判断部309は、所定時間内に再接続の通知を受けた場合、通信装置101とサーバ102間で再接続できたと判断する(S904のYes)。この場合、通信装置101は、KeepAlive送信間隔と送信開始タイミングを再設定する為に、実施形態1において説明した図6の処理を実行する(S905)。一方、再接続判断部309は、所定時間内に再接続の通知を受けなかった場合、通信装置101とサーバ間で再接続できなかったと判断し(S904のNo)、表示部302にて、エラー画面を表示するための制御を行い(S906)、処理は終了する。図11(c)に、再接続判断部309により表示制御された表示部302におけるエラー画面例を示す。
The
なお、本実施形態では、再接続判断部309は、表示部302にて図11(a)と図11(c)に例示する画面を表示するための制御を行うが、このような表示制御を行わなくてもよい。また、再接続判断部309は、再接続を行うか否かを、ユーザからの操作以外の方法により判断してもよい。また、再接続判断部309は、図11(a)に例示する画面を表示するための制御を行った後、表示部302に対して、再接続時のKeepAlive送信間隔を短くするか否かをユーザに判断させるための表示制御を行ってもよい。図11(b)に、再接続時のKeepAlive送信間隔を短くするか否かをユーザに判断させるために再接続判断部309により表示制御された表示部302における画面例を示す。
再接続を行うか否かをユーザに判断させるために再接続判断部309により表示制御された表示部302における画面例を示す。ユーザによりKeepAlive送信間隔(図11(b)の「接続維持間隔」)を短くするための操作が行われた場合、再接続時の通信が維持される可能性が高くなる。
In this embodiment, the
The screen example in the
図10は、HTTP/2を使用した通信において、TCPの通信が切断された際に、再接続を行ない、通信装置101がサーバ102とのKeepAlive送信間隔と送信開始タイミングを再決定するためのシーケンスを示す図である。本シーケンス図は、TCP/IPの通信が切断された場合を示すが、HTTP/2の通信が切断された場合のシーケンスも同様である。
FIG. 10 shows a sequence for re-determining the KeepAlive transmission interval and transmission start timing with the
M1001において、第2の検知部504は、TCP/IPコネクションの切断を検知する。M1002において、第2の通知部505は、CPU間通信を行い、TCP/IP制御部402、HTTP/2制御部401を介し、アプリケーションプロトコル制御部301に切断の通知を行う(S901)。再接続判断部309は、ユーザにより再接続するための操作が行われた場合、再接続処理が行われるまで所定時間待機する(S902のYes、S903)。
In M1001, the
M1003において、TCP/IP制御部402は、CPU間通信を行い、無線制御部207を用いてサーバ102とコネクションの生成を行う。M1004において、第2の通知部505は、CPU間通信を行い、TCP/IP制御部402、HTTP/2制御部401を介し、アプリケーションプロトコル制御部301に再接続の通知を行う。再接続判断部309は、この通知をもとに、再接続できたことを判断し(S904でYes)、通信装置101は、実施形態1において説明した図6の処理を行う。M1005において、取得部305は、CPU間通信を行い、第3のデータ保持部502からKeepAlive送信間隔を取得する(S601)。また、このとき、取得部305は、アプリケーションのKeepAlive送信間隔とHTTP/2のKeepAlive送信間隔を取得してもよい。
In M1003, the TCP /
M1006において、決定部307は、KeepAlive送信間隔と送信開始タイミングを決定する(S602)。M1007において、設定部308は、KeepAlive送信間隔と送信開始タイミングを第1のデータ保持部306に設定する(S603)。M1008において、設定部308は、CPU間通信を行い、KeepAlive送信間隔と送信開始タイミングを第2のデータ保持部403に設定する(S603)。M1009において、設定部308は、CPU間通信を行い、KeepAlive送信間隔と送信開始タイミングを第1のデータ保持部502に設定する(S603)。なお、M1007〜M1009の順序は変更可能である。
In M1006, the
M1010において、第1の接続維持部310は、サーバ102にアプリケーションのKeepAlive送信を行う。具体的には、第1の接続維持部310が、CPU間通信を行い、HTTP/2制御部401にKeepAliveメッセージの生成を指示する。HTTP/2制御部401は、TCP/IP制御部402を介し、CPU間通信を行い、無線制御部207を用いてサーバ102とパケットの送受信を行う。
In M <b> 1010, the first
M1011において、第2の接続維持部404はサーバ102にHTTP/2のKeepAlive送信を行う。具体的には、第2の接続維持部404がHTTP/2制御部401にKeepAliveメッセージの生成を指示する。HTTP/2制御部401はTCP/IP制御部402を介し、CPU間通信を行い、無線制御部207を用いてサーバ102とパケットの送受信を行う。M1012において、第3の接続維持部503はサーバ102にTCP/IPのKeepAlive送信を行う。なお、M1011とM1012の順序は変更可能である。
In M1011, the second
続いて、TCPの通信が切断された際に再接続できなかった場合のシーケンスを示す。M1013において、第2の検知部504は、TCP/IPコネクションの切断を検知する。M1014において、第2の通知部505は、CPU間通信を行い、TCP/IP制御部402、HTTP/2制御部401を介し、アプリケーションプロトコル制御部301に切断の通知を行う(S901)。再接続判断部309は、ユーザにより再接続するための操作が行われた場合、再接続処理が行われるまで所定時間待機する(S902のYes、S903)。再接続判断部309は、所定時間内に再接続の通知を受けないことから、再接続できなかったと判断する(S904でNo)。M1015において、アプリケーションプロトコル制御部301はサーバ102とのコネクションを削除し、M1016において、再接続判断部309は、表示部302にて図11(c)に例示するエラー画面を表示するための制御を行う。
Next, a sequence when reconnection cannot be performed when TCP communication is disconnected will be shown. In M1013, the
このように、本実施形態における通信装置101は、サーバ102とのコネクションを再生成した際に、通信維持を行う時に、アプリケーション、HTTP/2、TCP/IPのKeepAlive送信間隔と送信開始時間を再決定する。これにより、再接続時にKeepAliveタイミングが変わることによる、消費電力の増加を抑えることが可能である。
As described above, the
[その他の実施形態]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
[Other Embodiments]
The present invention supplies a program that realizes one or more functions of the above-described embodiments to a system or apparatus via a network or a storage medium, and one or more processors in a computer of the system or apparatus read and execute the program This process can be realized. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.
101 通信装置、102 サーバ、205 アプリケーション制御部、206 プロトコル制御部、207 無線通信制御部、305 取得部、307 決定部
101 communication device, 102 server, 205 application control unit, 206 protocol control unit, 207 wireless communication control unit, 305 acquisition unit, 307 determination unit
Claims (13)
前記複数のプロトコルそれぞれについて、前記他の通信装置とのコネクションを維持するための信号の送信間隔を取得する取得手段と、
前記取得された送信間隔に基づいて、前記コネクションが維持される範囲で前記信号が送信されない期間が長くなるように、前記複数のプロトコルそれぞれについて、前記信号の新たな送信間隔を決定する決定手段と、
前記決定された新たな送信間隔を前記複数のプロトコルそれぞれに対して設定する設定手段と、
を有することを特徴とする通信装置。 A communication device capable of communicating with other communication devices by using a plurality of protocols,
For each of the plurality of protocols, an acquisition means for acquiring a transmission interval of a signal for maintaining a connection with the other communication device;
Determining means for determining a new transmission interval of the signal for each of the plurality of protocols based on the acquired transmission interval so that a period in which the signal is not transmitted is long within a range in which the connection is maintained; ,
Setting means for setting the determined new transmission interval for each of the plurality of protocols;
A communication apparatus comprising:
前記他の通信装置と再接続すると判断された場合、前記取得手段は、少なくとも前記切断されたプロトコルについて、前記信号の送信間隔を取得し、
前記決定手段は、前記取得された送信間隔に基づいて、前記信号の送信タイミングが同期するように、前記複数のプロトコルそれぞれについて、前記信号の新たな送信タイミングを決定し、
前記設定手段は、前記決定された新たな送信タイミングを前記複数のプロトコルそれぞれに対して設定することを特徴とする請求項1から7のいずれか1項に記載の通信装置 When communication using any one of the plurality of protocols is disconnected while the transmission interval of the signal is acquired for each of the plurality of protocols by the acquisition unit, the other communication device And determining means for determining whether to reconnect
When it is determined to reconnect with the other communication device, the acquisition unit acquires the transmission interval of the signal for at least the disconnected protocol,
The determining means determines a new transmission timing of the signal for each of the plurality of protocols so that the transmission timing of the signal is synchronized based on the acquired transmission interval,
The communication apparatus according to claim 1, wherein the setting unit sets the determined new transmission timing for each of the plurality of protocols.
前記複数のプロトコルそれぞれについて、前記他の通信装置とのコネクションを維持するための信号の送信間隔を取得する取得工程と、
前記取得された送信間隔に基づいて、前記コネクションが維持される範囲で前記信号が送信されない期間が長くなるように、前記複数のプロトコルそれぞれについて、前記信号の新たな送信間隔を決定する決定工程と、
前記決定された新たな送信間隔を前記複数のプロトコルそれぞれに対して設定する設定工程と、
を有することを特徴とする制御方法。 A communication device control method capable of communicating with other communication devices by using a plurality of protocols,
For each of the plurality of protocols, an acquisition step of acquiring a signal transmission interval for maintaining a connection with the other communication device;
A determination step of determining a new transmission interval of the signal for each of the plurality of protocols based on the acquired transmission interval so that a period during which the signal is not transmitted is extended within a range in which the connection is maintained; ,
A setting step of setting the determined new transmission interval for each of the plurality of protocols;
A control method characterized by comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015202914A JP2017076866A (en) | 2015-10-14 | 2015-10-14 | Communication device, control method thereof, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015202914A JP2017076866A (en) | 2015-10-14 | 2015-10-14 | Communication device, control method thereof, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017076866A true JP2017076866A (en) | 2017-04-20 |
Family
ID=58549561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015202914A Pending JP2017076866A (en) | 2015-10-14 | 2015-10-14 | Communication device, control method thereof, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017076866A (en) |
-
2015
- 2015-10-14 JP JP2015202914A patent/JP2017076866A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI642282B (en) | Fail recovery method and internet of things system and charging system using the same | |
JP6487883B2 (en) | Failure recovery method, Internet system of goods and charging system using the same | |
US10652340B2 (en) | Quick relay interface and transport selection | |
JP6192284B2 (en) | COMMUNICATION DEVICE AND ITS CONTROL METHOD | |
US10159041B2 (en) | Communication apparatus, method of controlling the same, and non-transitory computer-readable storage medium | |
JPWO2016152307A1 (en) | COMMUNICATION DEVICE, COMMUNICATION METHOD, AND PROGRAM | |
US20170230484A1 (en) | Network System and Method for Establishing Data Link by Using Relay Node | |
JP5221617B2 (en) | COMMUNICATION DEVICE, COMMUNICATION SYSTEM, CONTROL METHOD, AND PROGRAM | |
JP4732523B2 (en) | Communication device and power supply method | |
JP5768017B2 (en) | Communication terminal, communication method, and communication program | |
US10015746B2 (en) | Communication apparatus and control method thereof | |
US11729289B2 (en) | Push message communication apparatus | |
JP5880688B2 (en) | Information processing apparatus, information processing system, information processing method, and program | |
JP6576099B2 (en) | COMMUNICATION DEVICE, COMMUNICATION DEVICE CONTROL METHOD, PROGRAM, AND COMMUNICATION SYSTEM | |
JP2017076866A (en) | Communication device, control method thereof, and program | |
US20170093624A1 (en) | Router Connectivity for Client Devices | |
JP6806865B2 (en) | Communication equipment, control methods and programs for communication equipment | |
US10327125B2 (en) | Communication apparatus, control method for communication apparatus, and non-transitory computer-readable storage medium | |
US20150156166A1 (en) | Communication method and mobile electronic device using the same | |
JP6577718B2 (en) | COMMUNICATION DEVICE, COMMUNICATION DEVICE CONTROL METHOD, AND PROGRAM | |
JP6554002B2 (en) | Communication device, control method therefor, and program | |
JP2014050090A (en) | Packet repeater and method | |
JP5986528B2 (en) | Control device, program and method for preventing transition to sleep mode in terminal | |
JP2016219909A (en) | Device and method for packet relay | |
JP2017022550A (en) | Radio communication terminal |