JP2016063425A - 通信装置、通信システムおよび通信方法 - Google Patents

通信装置、通信システムおよび通信方法 Download PDF

Info

Publication number
JP2016063425A
JP2016063425A JP2014190438A JP2014190438A JP2016063425A JP 2016063425 A JP2016063425 A JP 2016063425A JP 2014190438 A JP2014190438 A JP 2014190438A JP 2014190438 A JP2014190438 A JP 2014190438A JP 2016063425 A JP2016063425 A JP 2016063425A
Authority
JP
Japan
Prior art keywords
communication
information
transmission interval
communication device
packet
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.)
Granted
Application number
JP2014190438A
Other languages
English (en)
Other versions
JP6290053B2 (ja
Inventor
大介 安次富
Daisuke Ajifu
大介 安次富
圭祐 南
Keisuke Minami
圭祐 南
会津 宏幸
Hiroyuki Aizu
宏幸 会津
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2014190438A priority Critical patent/JP6290053B2/ja
Priority to US14/849,996 priority patent/US10003543B2/en
Publication of JP2016063425A publication Critical patent/JP2016063425A/ja
Application granted granted Critical
Publication of JP6290053B2 publication Critical patent/JP6290053B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/026Details of "hello" or keep-alive messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/16Flow control; Congestion control in connection oriented networks, e.g. frame relay

Abstract

【課題】通信先の通信装置の負荷及び通信量を抑えつつ、通信コネクションを維持する。
【解決手段】本発明の一態様としての通信装置は、通信部と、決定部と、接続維持部とを備える。前記通信部は、通信ネットワークを介して他の通信装置と通信コネクションを確立し、前記通信コネクションを用いて第1情報に関するパケットの通信を行う。前記決定部は、予め取得した前記通信ネットワークの特性情報に基づいて、前記第1情報と異なる第2情報に関するパケットの送信間隔を決定する。前記接続維持部は、少なくとも前記通信コネクションが確立されており、かつ前記第1情報に関するパケットの通信が停止している間、前記決定部で決定された送信間隔に従って、前記通信コネクションを用いて前記他の通信装置に、前記第2情報に関するパケットを送信するよう制御する。
【選択図】図1

Description

本発明の実施形態は、通信装置、通信システムおよび通信方法に関する。
確立した通信コネクションを維持し、双方向の低遅延通信を実現するWeb標準通信プロトコルとして、WebSocketが知られている。このWebSocketとポーリング方式を併用する遠隔制御システム技術が、提案されている。WebSocket通信では、無通信状態が一定時間つづくと、介在する中継装置(ブロードバンドルータ等)が通信コネクションを切断してしまう問題が知られている。上述の遠隔制御システム技術では、この問題を回避ないし解決する方法、具体的には、通信コネクションを長時間維持する機構は開示されていない。一般的には、通信コネクションを維持するためにキープアライブパケットを短周期(例えば1分)で送信し、通信コネクションを維持する仕組みが知られている。
短周期でキープアライブパケットを送信する方式では、多数のクライアントを収容する必要がある場合、キープアライブパケットの送信による通信コストやCPU負荷が無視できない。特に、昨今普及しているクラウドサービスでは、通信を従量課金制にしているものが多く、通信量の増大は直接運用費用に影響するため、可能な限り削減する必要がある。
特開2012−037944号公報
本発明の実施形態は、通信先の通信装置の負荷及び通信量を抑えつつ、通信コネクションを維持することを目的とする。
本発明の一態様としての通信装置は、通信部と、決定部と、接続維持部とを備える。前記通信部は、通信ネットワークを介して他の通信装置と通信コネクションを確立し、前記通信コネクションを用いて第1情報に関するパケットの通信を行う。前記決定部は、予め取得した前記通信ネットワークの特性情報に基づいて、前記第1情報と異なる第2情報に関するパケットの送信間隔を決定する。前記接続維持部は、少なくとも前記通信コネクションが確立されており、かつ前記第1情報に関するパケットの通信が停止している間、前記決定部で決定された送信間隔に従って、前記通信コネクションを用いて前記他の通信装置に、前記第2情報に関するパケットを送信するよう制御する。
第1の実施形態に係る通信システムを示す図。 中継装置に保持されているNATテーブルの例を示す図。 通信維持管理情報の一形態を示す図。 通信装置、中継装置およびサーバ装置間の通信シーケンスの一例を示す図。 通信装置、中継装置およびサーバ装置間の通信シーケンスの他の例を示す図。 第1の実施形態に係る通信装置の取得部の動作フローを示す図。 第1の実施形態に係る通信装置の決定部の動作フローを示す図。 第2の実施形態に係る通信システムを示す図。 第1および第2接続管理情報の例を示す図。 第3の実施形態に係る通信システムを示す図。
以下、図面を参照しながら、本発明の実施形態について説明する。
(第1の実施形態)
図1は、本発明の第1の実施形態に係る通信システムを示す。この通信システムは、通信装置101と、サーバ装置301とを備え、これらが通信ネットワーク501を介して接続されている。通信ネットワーク501は、中継装置201と、中継装置201の上流のネットワーク401とを含む。通信装置101は、中継装置201に無線または有線で接続される。サーバ装置301は、ネットワーク401に有線または無線で接続されている。ネットワーク401は、インターネット等の広域ネットワークでも、ローカルネットワークでもよい。またネットワーク401は、有線ネットワークでも、無線ネットワークでも、これらの複合ネットワークでもよい。本実施形態では、インターネットを想定する。通信装置101は、サーバ装置301と、Web標準通信プロトコルとして知られているWebSocketに従って通信できる。WebSocketでは、TCPコネクション上で、通信装置101およびサーバ装置301間でHTTPを利用してWebSocket接続を行うと、その後は、サーバ装置301および通信装置101のどちらからでも、そのWebSocket接続を利用して、任意のタイミングでデータを送信することができる。データ送信の度に、TCPコネクションを設定する必要はなく、一度設定したTCPコネクションを利用し続けることができる。
サーバ装置301は、基本的には、CPU、主記憶、補助記憶、通信インタフェースといった一般的な計算機のハードウェア構成を備える。サーバ装置301は、通信装置101の通信対象となる通信装置の一形態である。サーバ装置301は、PC、デジタルテレビ、ハードディスクレコーダ、あるいは、タブレット やスマートフォン等のデジタル機器として実現されてもよい。サーバ装置301の構成について、CPU、主記憶、補助記憶等の構成数、容量、接続インタフェース規格等に関して、様々な構成バリエーションをとり得る。サーバ装置301は、クラウドシステム上で動作する仮想マシンであってもよい。
通信装置101は、通信ネットワーク501を介して、すなわち、中継装置201とネットワーク401を介して、サーバ装置301と通信できる機能を備えた装置である。通信装置101は、基本的には、CPU、主記憶部(揮発性または不揮発性のメモリ等)、補助記憶部(SSD、ハードディスク等)、通信インタフェースといった、一般的な計算機のハードウェア構成を備える。通信装置101の具体例として、PC、STB、デジタルテレビ、ハードディスクレコーダ、あるいは、タブレットやスマートフォン等のデジタル機器が考えられる。通信装置101は、白物家電やセンサのような非力な機器であっても構わない。通信装置101は、サーバ装置301と通信できる機能を備える限り、どのような形態の装置であってもよい。例えば、通信装置101は、例えば、ブロードバンドルータのような中継装置であることも可能である。
中継装置201は、通信装置101とサーバ装置301との通信経路上に設置される機器である。例えば、公衆網上のルータ、宅内に設置されたブロードバンドルータやONU、データセンター等のサーバ側のイントラネット内に設置されたロードバランサ、ファイアーウォール、プロキシなど、あらゆるタイプの機器が想定される。本実施形態では、中継装置201は、特に、通信装置101が直接通信可能なブロードバンドルータを想定する。
中継装置201は、図2の例に示すようなNATテーブル、および必要に応じて、図示しないルーティングテーブルに従って、内側から外側(アウトバウンド)、外側から内側(インバウンド)のパケットの入出力を制御する。すなわち、通信装置101側(内側)から受信したパケットのネットワーク401側(外側)へ転送、およびネットワーク401側から受信したパケットの通信装置101側への転送を制御する。
NATテーブルの1つのエントリには、ローカルIP、ローカルポート、グローバルIP、グローバルポート、その他の項目が含まれる。本例ではローカルIPは、通信装置101のローカルのIPアドレス、ローカルポートは、通信装置101のアプリケーションが、サーバ装置301との通信に使用するポート番号である。グローバルIPは通信装置101のユーザに割り当てられたIPアドレス、グローバルポートは、ローカルポートの変換先のポート番号である。アウトバウンドのパケットの送信元IPアドレスおよびポート番号、NATテーブルの該当するエントリ(ローカルIPアドレスとローカルポート番号がマッチするエントリ)に従って、グローバルIPアドレスおよびグローバルポート番号に変換されて、出力インタフェースから出力される。パケットを出力する出力インタフェースがルーティングテーブルによって決められる構成もある。
エントリ内の「その他」の項目には、通信プロトコルの種別や、最後の通信のタイムスタンプや、内側/外側のTCPコネクションの状態が含まれる。TCPコネクションの状態の例として、例えば、通信装置101とサーバ装置301とのTCPコネクションの状態に関する値が設定される。例えば、TCPコネクションに関して、通信装置101およびサーバ装置301のいずれもESTABLISHEDになった場合(TCPコネクションが設定された場合)、内側および外側とも、ESTABLISHEDが設定される(内側/外側=ESTABLISHED/ESTABLISHED)。
中継装置201は、例えば通信装置101からサーバ装置301へのTCPコネクション確立要求のパケットを受信すると、NATテーブルにエントリを生成するとともに、当該パケットを転送する。その後の、サーバ装置301および通信装置101間でやりとりされるパケットのTCPフラグからTCPコネクションの確立を検出すると、ESTABLISHEDを設定する。双方がESTABLISHEDにされたエントリが存在する間は、中継装置201では、通信装置101およびサーバ装置301の当該エントリのTCPコネクションを維持し、通信装置101およびサーバ装置301、このTCPコネクションを利用した通信(Websocket通信、あるいは後述する計測用の通信など。なお、これらの通信はそれぞれ別々のTCPコネクションでよい)が、中継装置201で遮断されることなく、可能である。
中継装置201は、例えば、最後の通信のタイムスタンプの時刻から一定期間、アウトバウンドまたはインバウンドの方向へ、このエントリのTCPコネクションの通信がないと、タイムアウトとして、当該エントリを削除あるいはTCPコネクションの状態をクローズ等(以下、これらのことを、中継装置でTCPコネクションが切断されると表現することがある)する。この場合、通信装置101は、サーバ装置301と、確立済みのTCPコネクションを利用して、Websocketで通信を行おうとしても、中継装置201で当該TCPコネクション切断されているため、中継装置201で通信が遮断され、このため、TCPコネクションの確立手続からやり直す必要が発生する。Websocket通信であれば、現在のWebsocket接続を切断して、TCPコネクションの設定からやり直す必要がある。これを回避するために、Websocket接続を確立後、中継装置201でのタイムアウト前にキープアライブパケットを送信すれば、最後の通信のタイムスタンプの時刻が更新されるため、中継装置201でのTCPコネクションを維持することができる。
中継装置201におけるタイムアウト(接続維持期間)の設定は、アウトバウンドの通信と、インバウンドの通信とで異なってもよい。この場合、最後の通信のタイムスタンプの時刻を、アウトバウンドの通信と、インバウンドの通信とで別々に管理してもよい。
ここでは、NATテーブルのエントリの「その他」のオプション項目で、TCPコネクションの状態を管理したが、NATテーブル自体で管理しない方法も可能である。例えば、通信装置101とサーバ装置301のTCPコネクション状態が、両方ともESTABLISEDになった場合に、所定のテーブルにエントリを生成し、一方ないし双方のTCPコネクション状態がCLOSEDになった場合に当該エントリを削除、あるいは、何らかのNATのタイムアウトポリシーに基づいて、当該エントリを削除するようにすることも可能である。
ネットワーク401にも、中継装置201とは別に、プロバイダやネットワーク提供事業者等の種々の中間ノード(事業者側の中継装置等)が存在し得る。事業者側の中継装置等も、ルータ、ロードバランサ、ファイアーウォール、プロキシなど、あらゆるタイプの機器が想定される。これらの事業者側の中継装置等も、テーブルにエントリを作成して、中継装置201と同様にTCPコネクションを管理している場合もあり得る。タイムアウトが発生すれば、当該TCPコネクションに関するエントリを削除する可能性もある。タイムアウトは、インバウンドとアウトバウンドで別々に管理される場合もあり得る。事業者側の中継装置が、Firewall等のフィルタ機能を備える場合に、このフィルタ機能により一定期間、通信がないと、その通信がない方向のパケットを遮断する可能性もある。
図1の通信装置101は、通信部111、接続維持部112、取得部113、記憶部114および決定部115を備えている。接続維持部112、取得部113、決定部115および通信部111の一部は、CPU等のプロセッサにコンピュータプログラムを実行させることで実現してもよい。
通信部111は、通信ネットワーク501を介して、サーバ装置301と通信コネクションを設定し、当該通信コネクションを用いてサーバ装置301と通信する。通信コネクションは、TCPコネクションが想定されるが、これに限定されず、中継装置201等でコネクション状態が管理される限り、別の通信プロトコルのコネクションも可能である。通信部111は、NIC(Network Interface Card)およびTCP/IP通信スタックを含む機能コンポーネントを含む。TCP/IPスタックは、NIC上にハードウェアで実装されたものであっても良いし、オペレーティングシステム(OS)上に実装されたり、ドライバとして実装されるソフトウェアであってもよい。また、トランスポート層は、TCPに限定されるものではなく、UDPであってもよい。物理層・MAC層は、イーサネット(登録商標)だけでなく、Wifiなどの無線、InfiniBand等であってもよい。
接続維持部112は、中継装置201等によってTCPコネクションが切断されないように、予め定めた方法に従ったタイミングで、接続を維持するためのパケット(キープアライブパケットまたはハートビートパケット。以下、キープアライブパケットに統一)を送信する。Websocktの通常のデータ通信のパケットを第1情報に関するパケットと呼び、キープアライブパケットは、第1情報とは異なる第2情報に関するパケットと呼ぶことができる。キープアライブパケットの送信のタイミングは、基本的には、定期的なタイミングが考えられるが、必ずしも一定である必要はない。キープアライブパケットの送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号は、上述の維持したい通信コネクションで使用するものと同じ値である。接続維持部112は、後述する決定部115からの指示に基づくタイミング、もしくは、後述する記憶部114に記憶された送信間隔情報に基づく一定周期のタイミングで、キープアライブパケットを送信する。
キープアライブパケットがサーバ装置301で受信されると、TCPに従ってACKパケットが返される。通信部111でACKパケットが受信され、通信部111からその旨の通知を受けることで、接続維持部112は、キープアライブパケットの送信に成功したと判断できる。ここでは、キープアライブパケットの送信成功の可否を、TCPでのACKパケットで確認したが、WebSocketプロトコルレベルで、応答パケットを返すようにし、この応答パケットで確認してもよい。例えば、WebSocketプロトコルのPINGフレームを送信し、サーバ装置301が、これに対する応答として、PONGフレーム送信するようにしてもよい。
取得部113は、通信装置101およびサーバ装置301間の通信を維持するために必要な情報として、通信ネットワーク501の特性情報(以下、通信維持用情報と呼ぶ)を取得する。取得方法としては、通信部111を介した通信により取得、または外部からのユーザ入力、またはこれらの両方により取得する。通信ネットワーク501の特性情報(通信維持用情報)は、サーバ装置301と通信装置101との間に介在する中継装置201に関する情報(以降、中継装置情報)、中継装置201より上流のネットワーク401に関する情報、またはこれらの両方を含む。上流のネットワーク401に関する情報(ネットワーク情報)は、例えば契約ネットワークまたはプロバイダを特定できる情報を含み、上流のネットワーク401においてサーバ装置301との間の通信経路上に存在する中継装置の中継装置情報を含んでもよい。なお、中継装置201は、通信ネットワーク501においてサーバ装置301との間の通信経路上に存在する中継装置の1つである。ネットワーク情報は、上記中継装置情報と同時に取得してもよいし、あるいは別途、取得してもよい。取得部113は、取得した接続維持用情報を含む通信維持管理情報を生成し、生成した通信維持管理情報のエントリを、記憶部114に格納する。
以下、中継装置情報の具体例を示す。ここでは中継装置201の中継装置情報を例にとるが、上流ネットワーク401に存在する中継装置についても同様の形態が可能である。
(1−1)中継装置201を識別できる情報(UUID、MACアドレス、型名あるいは機種名+製造番号。ホスト名またはIPアドレス、またはホスト名およびIPアドレスの一方とポート番号との組も可能である)
(1−2)中継装置201の機種を特定できる情報(機種名、型名)、ないし、推定できる情報(製造番号、MACアドレス、メーカ情報、製造年月日情報)(以降、まとめて機種情報と呼ぶ)
(1−3)中継装置201における通信コネクションの切断タイミングが特定できる情報(TCP通信のタイムアウト値など)
中継装置201の中継装置情報を、通信部101を介して取得する場合の方法として、一般的には、UPnP(Universal Plug and Play)を利用することを想定しているが、上記の中継装置201の情報が収集できる限りにおいては、通信プロトコルは問わない。
記憶部114は、取得部113により生成された通信維持管理情報を内部に記憶する。記憶部114は、SSDやハードディスク等の記憶装置でもよいし、DRAM等の不揮発性メモリでもよいし、MRAMやNAND型フラッシュメモリ等の不揮発性メモリでもよい。または、記憶部114は、通信装置101に外付けされる外部記憶媒体(メモリカード、メモリスティックやハードディスク等)でもよい。
図3に、第1の実施形態に係る通信維持管理情報のエントリの例を示す。図3では、通信維持管理情報は、接続維持用情報(中継装置情報およびネットワーク情報)に加えて、エントリ識別情報、送信間隔情報および送信間隔状態情報を含む。
エントリ識別情報としては、中継装置201の識別情報(MACアドレスやUUIDなど)が利用できる。ただし、エントリの識別は、必ずしも中継装置201のみに依存するわけではないので、中継装置201の識別情報と、ネットワーク情報の識別情報(契約ネットワーク識別情報+契約プロバイダ識別情報)を合わせたものを利用しても良いし、別途生成した識別情報を利用しても良い。
送信間隔情報は、キープアライブパケットの送信間隔を表す数値データである。単位は分、秒、ミリ秒など、何でも構わない。
送信間隔状態情報は、キープアライブパケットの送信間隔が決定済みか否かを表す2値である。送信間隔状態情報は、必須ではない。
中継装置情報は、前述したように、中継装置(ここでは中継装置201)に関する情報である。機種名、型名等の各属性が個別カラムを形成していてもよいし、JSONやXMLなどの構造化された形式で、1カラムに保存されていてもよい。
ネットワーク情報は、中継装置201より上流のネットワーク401に関する情報であり、上述したように、契約ネットワーク情報や契約プロバイダ情報、ネットワーク401に存在する中継装置の中継装置情報を含む。ネットワーク情報は、取得部113が取得してもよいし、ユーザが手動で登録してよい。後者の場合、通信装置101は、入力を行うためのWebページや、WebAPIなどのインタフェース、あるいは、物理的な入力インタフェースを備えていてもよい。
図3に示した通信維持管理情報の形態は一例であり、これに限定されるものではない。例えば、以下に示すバリエーションも可能である。
通信維持管理情報が、複数のタプル(すなわち複数のテーブル)に分割されていてもよい。一例として、図3の通信維持管理情報を、ネットワーク情報とそれ以外の情報とに分割してもよい。あるいは、中継装置情報、ネットワーク情報、それ以外の情報、の3つに分割してもよい。図3の通信維持管理情報における一部のカラムを削除してもよい。例えば、ネットワーク情報を削除してもよい。また、中継装置201に関する中継装置情報またはその上流の複数の中継装置に関するネットワーク情報が、これらの中継装置間の接続関係の情報(例えば、中継装置201A−中継装置201B−通信装置101)を含んでもよい。複数の中継装置の中継装置情報が取得できる場合、1つのエントリに複数の中継装置情報を含め、エントリ識別情報をこれらの中継装置の識別子(MACアドレス)の組としてもよい。
決定部115は、キープアライブパケットの送信間隔を決定する機能を有する。決定部115は、例えば、通信維持管理情報のエントリ自体が無い場合、エントリは存在するが当該エントリ内の送信間隔状態情報が未決定を表す値の場合、もしくは、送信間隔が決定されている状態(決定状態)から決定されていない状態(未決定状態)に移行した場合に、送信間隔の決定処理を行う。
具体的には、以下のような場合が、決定部115による送信間隔決定処理の動作開始の契機となる。
(2−1)通信装置101の初回起動時または再初期化時
(2−2)通信装置101の再起動時(停止時に送信間隔情報が消去される場合(例えば揮発性メモリに送信間隔情報を格納している場合)など)
(2−3)通信装置101における送信間隔リセット時(通信装置101が、リセットまたは再決定するためのインタフェースを備える)
(2−4)通信装置101が、中継装置201とは別の中継装置を検出した時
(2−5)サーバ装置301から送信間隔の再決定を行うことの指示メッセージを受信した時
(2−6)キープアライブパケット送信の失敗を検知した時(サーバ装置301からキープアライブパケット送信に対する応答を受信できなかった時)
キープアライブパケットの送信間隔を決定する方法として、例えば以下の方法が可能である。
(3−1)通信装置101の決定部115が、通信部111を用いて、接続維持用情報(中継装置情報と、あるいは、これに加えてネットワーク情報)をサーバ装置301に送信し、その応答として、サーバ装置301から送信間隔情報を取得する。決定部115は、取得した送信間隔情報に示される値を、キープアライブパケットの送信間隔に決定する。なお、サーバ装置301側の具体的な動作は、第2の実施形態で詳述するが、ここで簡単に説明すると、サーバ装置301が、中継装置201の中継装置情報(機種情報等)またはネットワーク情報に関連付けて送信間隔情報を管理しており、通信装置101から受信した接続維持用情報に基づいて、対応する送信間隔情報を応答する)。
(3−2)取得部113が、ユーザ入力手段または中継装置201等から送信間隔情報も取得し、これを利用する。
(3−3)決定部115が、送信間隔を変動させながら(例えば送信毎に一定時間延ばす)、キープアライブパケットを送信し、通信可否をチェックすることで、送信間隔を決定する。これには、通信装置101が単独で実施する場合と、サーバ装置301と連携して実施する場合の2通りが考えられる。詳細は、後述する。
図4に、通信装置101、中継装置201およびサーバ装置301間の通信シーケンスの一例を示す。この通信シーケンスの開始契機としては、通信装置101の初回起動時、再初期化時もしくは再起動時などがある。
通信装置101が機器探索メッセージを送信することで、中継装置201を探索する(ステップS1)。例えば、通信プロトコルとして、Upnpを用いる場合、探索(Search)プロトコルに従って探索を行うことができる。同等機能が実現される限りにおいては、他の通信プロトコルでもよい。
中継装置201が、機器情報広告メッセージを送信することで、通信装置101からの探索に対して応答する(ステップS2)。通信プロトコルがUpnpの場合、応答プロトコルとして、Upnpの広告(Advertisement)プロプロトコルに従って応答を行うことができる。同等機能が実現される限りにおいては、他の通信プロトコルでもよい。
通信装置101の取得部113が、中継装置201から中継装置情報を取得する(ステップS3、S4)。具体的に、中継装置201に機器情報取得要求メッセージを送信し(S3)、中継装置201から機器情報応答メッセージを受信し(S4)、機器情報応答メッセージから中継装置情報を抽出する。通信プロトコルがUpnpの場合、Description(ファイル)を含む応答メッセージを受信し、Descriptionから中継装置情報を抽出できる。同等の機能が実現される限りにおいては、他の通信プロトコルでもよい。また、この際、中継装置情報の取得と並行して、ネットワーク情報を取得してもよい。たとえば、UPnPのDescriptionの場合、Description(XMLメッセージ)に含まれるmanufacturer属性に含まれる情報から、契約ネットワークを類推可能な情報(キャリア情報)を取得できる可能性がある。あるいは、Tracerouteのような経路確認メッセージを送信し、この応答を取得することで、ネットワーク情報を取得することも考えられる。通信装置101は、取得した中継装置情報(およびネットワーク情報)を含む通信維持管理情報のエントリを生成して、記憶部114に登録する。すでにエントリが存在するときは、この登録処理は省略してもよいし、既に存在するエントリを、今回取得した中継装置情報(およびネットワーク情報)によって上書きしてもよい。
取得部113が中継装置情報(およびネットワーク情報)を取得でき、この時点で、キープアライブパケットの送信間隔が未定の場合、通信装置101は、サーバ装置301に対して、中継装置情報(およびネットワーク情報)を含む送信間隔情報取得要求メッセージを送信する(S5)。具体例として、HTTP GETリクエストを送信することが考えられる。ただし、同等の機能を実現できるプロトコルであれば、使用するプロトコルは、何でも構わない。サーバ装置301から応答メッセージを受信し、応答メッセージから送信間隔情報を抽出する(S6)。抽出した送信間隔情報の値を、記憶部114の該当するエントリ内に設定し、送信間隔状態情報を「決定」に設定する。
なお、この後、通信装置101は、サーバ装置301とWebsocket通信を開始した場合(もしくは、すでに開始している場合)、送信間隔情報の値に応じてキープアライブパケットを送信する。これにより、中継装置201等でコネクションが切断される(例えばNATテーブルからエントリが削除される)ことを阻止し、TCPコネクション(およびWebsocket接続)を維持することが期待できる(送信間隔情報の値が中継装置201等のタイムアウトの値以上であることが想定される)。なお、キープアライブパケットの送信は、少なくとも通信装置101とサーバ装置301間で該当のTCPコネクションを利用したWebsocketの通常のデータ通信が停止している間行う。この際、当該通信が最後に行われた時刻を監視しておき、当該最後の時刻を起点として、上記の送信間隔でキープアライブパケットの送信を行ってもよい。もっとも、Websocketの通常のデータ通信の実行有無とは独立して、キープアライブパケットの送信を行ってよい。
本通信シーケンスでは、機器探索メッセージを送信し、それに対する応答フレームを受信することで、中継装置201を発見したが、機器探索メッセージを送信せずに、中継装置201が定期的に送信する広告(Advertisement)メッセージを受信することで、中継装置201を発見してもよい。また、ステップS4においてDescriptionから取得する情報を、ステップS2で送信する広告メッセージに含めるように構成することで、ステップS3、S4の動作を省略してもよい。
図5に、通信装置101、中継装置201およびサーバ装置301間の通信シーケンスの他の例を示す。ステップS1〜S5までは、図4と同様であるため、これらのステップの説明は省略する。
ステップS5で、通信装置101が送信間隔情報取得要求メッセージを送信した後、サーバ装置301から、計測指示を含む応答メッセージを受信する(S7)。通信装置101は、応答メッセージに含まれる計測指示に従って、送信間隔計測処理を行うことにより、キープアライブパケットの送信間隔を決定する。送信間隔計測処理の詳細は、後に説明する。通信装置101は、決定した送信間隔の値を、記憶部114の該当するエントリ内の送信間隔情報に設定する。また、送信間隔状態情報の値として「決定」を設定する。
通信装置101は、送信間隔計測処理で決定した送信間隔の値を表す送信間隔情報を、サーバ装置301にフィードバック送信する(S8)。なお、送信間隔情報のフィードバックは、省略してもかまわない。
なお、この後、通信装置101は、サーバ装置301とTCPコネクションの設定を含むWebsocketの通信を開始した場合、該当するエントリ内の送信間隔の値に応じてキープアライブパケットを送信することで、中継装置201等でタイムアウト等により接続が切断される(例えばNATテーブルからエントリが削除される)ことを阻止できる。これにより、サーバ装置301との通信を維持できる。
図6は、通信装置101における取得部113の動作のフローチャートを示す。中継装置201の起動(初回起動、再起動、再初期化など)または送信間隔リセット(ユーザがインタフェース経由で指示など)により、本フローの動作が開始する。
取得部113は、通信部111を用いて、図4または図5のステップS1〜S4の通信シーケンスの動作を行うことで、中継装置情報を取得する(S1001)。取得部113は、記憶部114にアクセスし、取得した中継装置情報に含まれる中継装置201の識別情報をキーに、該当する通信維持管理情報のエントリが存在するかを確認する(S1002)。
エントリが存在しない場合は(S1003のNO)、ステップS1001で取得した中継装置情報に基づき、新規に通信維持管理情報のエントリを追加する(S1004)。ネットワーク情報を中継装置情報と並行して取得してもよく、その場合は、ネットワーク情報も併せて、エントリに含める。そして、決定部115に、送信間隔の決定処理を行うように指示する(S1006)。
一方、エントリが存在する場合、当該エントリ内の送信間隔状態情報の値が「決定」および「未決定」のいずれであるかを確認し(S1005)、「未決定」の場合は、決定部115に、送信間隔の決定処理を行うように指示する(S1006)。「決定」の場合は、当該エントリ内に送信間隔情報の値が設定されていることから、その値の時間間隔で、キープアライブパケットの送信を行うように、接続維持部112に指示する(S1007)。接続維持部112は、通信装置101とサーバ装置301間で、TCPコネクションの設定を含むWebsocket通信が開始された場合、当該コネクションに対して、ステップS1007で指示された送信間隔で、キープアライブパケットを送信する。
ここで、ステップS1007で接続維持部112への指示を省略することも可能である。この場合、接続維持部112は、例えば通信装置101とサーバ装置301間でWebsocket通信が開始されたことの通知を通信部111から受けて、記憶部114からエントリ内の送信間隔状態情報が「決定」を示すことを確認する。そして、エントリ内の送信間隔情報の値を読み出し、その値の時間間隔で、キープアライブパケットを送信する。
図7は、通信装置101における決定部115の動作フローチャートを示す。決定部115は、取得部113から送信間隔決定処理の実行の指示を受けることで動作を開始する。
決定部115が、取得部113または記憶部114から接続維持用情報(中継装置情報およびネットワーク情報の少なくとも一方)を取得する(S2001)。決定部115は、取得した接続維持用情報に基づき、情報取得要求メッセージを生成して、サーバ装置301に送信し、サーバ装置301から応答メッセージを受信する(S2002)。これは、図4のステップS5、S6または図5のステップS5、S7の通信シーケンスに対応する。
決定部115は、応答メッセージの内容を確認し(S2003)、応答メッセージに送信間隔情報が含まれている場合は、当該送信間隔情報の値を記憶部114の該当するエントリ内に設定し、送信間隔状態情報の値を「未決定」から「決定」に変更する(S2004)。
決定部115は、応答メッセージに計測指示が含まれている場合は、送信間隔計測処理(S2005〜S2011)を行う。まず、決定部115は、接続維持部112にサーバ装置301との接続確立を指示し、送信間隔を初期値(例えば最小値)に設定する(S2005)。このときの接続確立は、Websocketの接続確立でもよいし、その他、TCPコネクションの確立を伴うものであれば、他の通信プロトコルに従った接続確立でもよい。決定部115は、S2005で設定した値の送信間隔の間、待機し、接続維持部112に当該確立したTCPコネクションに基づき、キープアライブパケットの送信を指示する(S2007)。ここでは、計測用に送信するパケットとして、キープアライブパケット(第2情報に関するパケット)を用いるが、送信先からの応答(ACK等)が得られる限り、これとは別の種類のパケット(前述した第1情報および当該第2情報とは異なる第3情報に関するパケット)を用いてもよい。
決定部115は、キープアライブパケットの送信指示後、キープアライブパケットの送信に成功したかを判断する(S2008)。例えば、サーバ装置301からキープアライブパケットに対する応答パケットが返ってきたら、送信は成功と判断する。もし中継装置201等でTCPコネクション(NATエントリ)がタイムアウト等で削除されていた場合、当該パケットが廃棄されるため応答パケットがサーバ装置301から返ってこない。または、中継装置201によっては、該当するNATエントリがない場合は、リセットパケットを返すため、リセットパケットを受信した場合は、キープアライブパケットの送信に失敗したと判断してもよい。
決定部115は、キープアライブパケットの送信に成功したと判断した場合は、現在の送信間隔の値に一定値を加算することで送信間隔を更新する(S2009)。これにより送信間隔を一定時間延ばす。決定部115は、更新後の送信間隔の値が、上限値に達したかを判断する(S2010)。更新後の送信間隔の値が上限値に達していない場合は(NO)、更新後の送信間隔の間待機し(S2006)、再び接続維持部112にキープアライブパケットの送信を指示する(S2007)。
決定部115は、キープアライブパケットの送信に失敗したと判断した場合(ステップS2008のNO)、または、更新後の送信間隔の値が上限値に達した場合(ステップS2010のYES)、1つ前の更新の送信間隔の値を、送信間隔の確定値とする(S2011)。1つ前の更新の送信間隔の値とは、ステップS2008で送信に失敗されたと判断された送信間隔の1つ前に得られた(更新された)送信間隔の値、または、上限値に達したと判断された送信間隔の1つ前に得られた(更新された)送信間隔の値である。送信間隔の値が確定したら、送信間隔の確定値を記憶部114における該当するエントリ内に設定し、送信間隔状態情報の値を「未決定」から「決定」に変更する(S2004)。
このように送信間隔計測処理では、送信間隔を初期値(例えば最小値)から徐々に増やし、送信に失敗したら、1つ前の送信間隔にフォールバックして、その値を、送信間隔に決定する。具体例を挙げると、最小送信間隔を1分とした場合に、この1分から開始して、2分、3分・・・と増やしていき、失敗したら、1つ前の送信間隔にフォールバックして、その値に決定する。途中で、ステップS2009で更新された値が上限値に達したら、当該上限値に送信間隔を決定する。上限値の決定方法として、たとえば60分より大きい値に送信間隔を広げたくない場合には、この60分を上限値とする。
ここでは、上限値を設けたが、上限値を設けずに、送信が失敗するまで、送信間隔の更新およびキープアライブパケットの送信を繰り返し行ってもよい。
また、ステップS2009では、送信間隔の更新のために一定値を加算したが、1分、2分、4分、8分というように、送信間隔の値を、指数的に増加させてもよい。
また、送信間隔の初期値を最小値とするのではなく、最も可能性の高い値を初期値としてもよい。一例として、中継装置情報にTCP通信のタイムアウト値が含まれるときは、このタイムアウト値を初期値として利用してもよい。このとき、最初のキープアライブパケットの送信が成功したら、送信に成功するごとに送信間隔の値を増していき、失敗したら1つ前の値に送信間隔を決定する。最初の送信に失敗したら、送信に成功するまで送信間隔の値を下げていき、成功したときの値を送信間隔として決定する。このとき、下限値および上限値を設けて、下限値または上限値に達した場合は、下限値または上限値を、送信間隔の値に決定してもよい。
なお、図7に示したフローチャートでは、図5のステップS8で行う送信間隔情報(計測結果)のフィードバックの処理は示していないが、当該フィードバックのステップを、図7の動作フロー(ステップS2003、またはステップS2011の後)に追加してもよい。
また、図6のステップS1001で取得部113が中継装置情報を取得できず、かつ記憶部114に通信維持管理情報のエントリが存在しない場合にも、決定部115は、送信間隔計測処理(S2005〜S2011)を行うことで、キープアライブパケットの送信間隔の値を決定してもよい。そして、決定した送信間隔の値を、送信間隔情報に設定した通信維持管理情報エントリを記憶部114に登録してもよい。この場合、エントリに中継装置情報の値が設定されていなくてもよい。エントリ識別情報は、例えば中継装置201のMACアドレスを用いてもよい。
以上のように、本実施形態によれば、サーバ装置および通信装置間の接続を維持するために、中継装置201または上流のネットワークなど、通信経路の状態を考慮して、できるだけ長い値の送信間隔を決定する。これにより、従来のように通信装置が常に最小の送信間隔でキープアライブパケットを送る場合と比較して、サーバ装置側の負荷及び通信量を低減でき、通信コストを改善できる。例えば、送信間隔の最小値が1分の場合に、平均60分(現状、TCPのタイムアウト時間が60分以上に設定されている中継装置201(ブロードバンドルータ)が多く存在する)にまで送信間隔を広げることができれば、単純計算でコストを1/60に削減できる。
(第2の実施形態)
図8は、第2の実施形態に係る通信システムを示す。図1と同一名称の要素には同一の符号を付し、拡張または変更された処理を除き、重複する説明を省略する。
システムの全体構成は第1の実施形態と同様であり、通信装置101の構成も、基本的に第1の実施形態と同様である。第1の実施形態との差分は、主にサーバ装置301の構成にある。本実施形態では、サーバ装置301と通信装置101とが協働して、キープアライブパケットの送信間隔を決定する形態を示す。
サーバ装置301は、通信部311、接続維持部312、送信間隔情報記憶部313、送信間隔情報登録部314、送信間隔情報提供部315を備える。通信部311は、通信装置101の通信部111と同様の機能を有する。
サーバ装置301の接続維持部312は、通信装置101の接続維持部112の動作の差分として、(そもそも取得部113がサーバ装置301側にないため)取得部113からの計測指示の契機が存在しない。
接続維持部312は、一例として、通信装置101の接続維持部112と連携して動作する。接続維持部112の動作を停止させた状態で、キープアライブパケットの送信を、送信間隔を変更しながら行うことで、第1の実施形態の通信装置101と同様にして、送信間隔の値(送信間隔の候補値)を測定により得る。そして、当該取得した値と、通信装置101が測定した値(送信間隔の候補値)に基づき、送信間隔を決定する。例えば両候補値のうち小さい方の値を採用し、通信装置101に当該値をキープアライブパケットの送信間隔として指定する指定情報を含むパケットを送信する。通信装置101は、サーバ装置301から通知された指定情報の値を、キープアライブパケットの送信間隔として用いる。なお、サーバ装置301の接続維持部312は、ネットワーク104での遅延やサーバ装置301での動作遅延を考慮して、上記の採用した値に一定のマージン値を加算した値を、送信間隔として決定してもよい。ここではサーバ装置301側で最終的な送信間隔を決定したが、通信装置101側(決定部115等)で行ってもよい。本動作例において、サーバ装置301の接続維持部312は、通信装置101とWebsocket通信を開始した後、キープアライブパケットの定期的な送信は行うようにしてもよいし、行わないようにしてもよい。サーバ装置301からもキープアライブパケットを送信する場合、サーバ装置301から通信装置101への導通性をより確実に確保できる。すなわち、ネットワーク401には、様々なタイプの装置等が存在し得、通信の方向でタイムアウトを区別したり、TCPのACKパケットはタイムアウトに影響しないと判断する装置構成もあり得るが、サーバ装置301からもキープアライブパケットを送信することで、このような場合も、サーバ装置301から通信装置101への導通性を確保できる。
また、サーバ装置301が、通信装置101からのキープアライブパケットの受信を契機として、キープアライブパケットを送信するバリエーションも可能である。例えば、通信装置101とサーバ装置301が、それぞれ交互に同じ送信間隔で、キープアライブパケットを送信し、双方からのキープアライブパケットの送信に成功して初めて、送信間隔を延ばすようにしてもよい(図7のステップS2009参照)。具体的には、通信装置101からサーバ装置301にキープアライブパケットを送信し、サーバ装置301が応答パケットを返す。サーバ装置301が応答パケットの送信後、通信装置101と同じ送信間隔でキープアライブパケットを送信し、通信装置101から応答パケットを受信する。この場合、双方からのキープアライブパケットに成功したため、送信間隔を延ばして、同様の処理を繰り返す。通信装置101とサーバ装置301で用いる送信間隔の値の同期は、キープアライブパケット内に送信間隔の値を格納することで行ってもよいし、別の方法で行ってもよい。ここでは、通信装置101から契機となるキープアライブパケットを送信したが、順序を逆にして、サーバ装置301から契機となるキープアライブパケットを送信してもよい。
第1の実施形態では、通信装置101からサーバ装置301への導通性は保証できるが、必ずしも逆(すなわち、サーバ装置301から通信装置101への導通性)が担保できるわけでない。上述のようにサーバ装置301からの送信成功を確認することによって、初めて双方向の導通性が担保できる。
送信間隔情報記憶部313は、中継装置201の識別情報と送信間隔情報とを紐づけた第1接続管理情報を記憶する。また、ネットワーク情報(ネットワーク識別情報および契約プロバイダ識別情報の少なくとも一方)と送信間隔情報を関連づけた第2接続管理情報を記憶する。第1および第2接続管理情報の一方のみを記憶する構成も可能である。図9に第1接続管理情報(上段)および第2接続管理情報(下段)の例を示す。
多数の通信装置から送信間隔情報(計測結果)を収集し、確度の高い送信間隔の値を応答するために、第1または第2接続管理情報にサンプル数(計測結果を収集したユーザ数)を属性として持たせてもよい。図9の例では、サンプル数の属性も設けられている。多数の通信装置から返される送信間隔(計測結果)は、基本的に、値のオーダーが分単位などであれば、同じ値となることが想定されるが、一部異なる値が存在しても、所定割合以上のユーザのサンプル値、または所定割合以上の個数のサンプル値が同じであれば、その値を採用し、それ以外は外れ値として無視しても良い。あるいは、多数の通信装置から返された値の平均値または中央値などを、送信間隔情報の値とすることも可能である。
ネットワーク情報には、物理線を提供するネットワーク事業者と、上位サービスを提供するプロバイダが存在し、図9の第2接続管理情報の例では、前者に対応するネットワーク識別情報の項目と、後者に対応する契約プロバイダ識別情報の項目が設けられている。他の例として、ネットワーク識別情報と契約プロバイダ識別情報のそれぞれごとに、送信間隔情報を持つようにデータを構成してもよい。
送信間隔情報提供部315は、通信装置101から送信される情報取得要求メッセージの受信先(図4のステップS3で送信される機器情報取得要求メッセージの受信先)である。この要求メッセージに含まれる、中継装置情報(に含まれる機種情報)またはネットワーク情報(に含まれるネットワーク識別情報やプロバイダ識別情報)またはこれらの両方に基づき、送信間隔情報記憶部313から、該当する送信間隔情報を取得し、当該送信間隔情報を含む応答メッセージ(図4のステップS6参照)を通信装置101に送信する。
より詳細には、情報取得要求メッセージに中継装置情報のみが含まれていれば、該当する中継装置201に関連付けられた送信間隔情報を第1接続管理情報から特定して、通信装置101に応答する。ネットワーク情報のみが含まれていれば、該当ネットワーク情報に関連付けられた送信間隔情報を第2接続管理情報から特定して、通信装置101に応答する。これらの両方が含まれていれば、値の小さい方の送信間隔情報、値の大きい方の送信間隔情報、または、これらの両方を、通信装置101に応答する。
中継装置情報およびネットワーク情報の両方とも含まれていない場合、あるいは、片方のみしか含まれていない場合に、送信間隔の計測指示メッセージを通信装置101に送信してもよい。その他、サンプルが一定数に達しない間は、情報取得要求メッセージに中継装置情報またはネットワーク情報が含まれているか否かにかかわらず、計測指示を含む応答メッセージを通信装置101に送信(図5のステップS7参照)するように構成してもよい。
送信間隔情報登録部314は、通信装置101から送信される送信間隔情報(計測結果)のフィードバック先である(図5のステップS8参照)。このフィードバックメッセージに含まれる接続維持用情報と送信間隔情報を取得し、必要に応じて、送信間隔情報記憶部313を更新する。例えば、中継装置201と同じ機種に対応する第1接続管理情報のエントリが存在し、フィードバックされた送信間隔情報の値がエントリと同じ値の場合は、サンプル数を1だけ増加させる。なお、過去に同じ通信装置101(ユーザ)からのフィードバックがあった場合には、サンプル数を増加させないようにしてもよい。フィードバックされた送信間隔情報の値が、該当する第1接続管理情報のエントリと異なるときは、前述した方法によって、必要に応じて第1接続管理情報における送信間隔の値を更新することも可能である。
また、例えば、あるブロードバンドルータのタイムアウト時間(接続維持時間。すなわち、これによって決定される送信間隔が)が60分であることが、多くのサンプル数によって明らかになっているとして、記憶部313に中継装置識別情報(機種情報)に関連づけられて登録されているとする。この場合に、このブロードバンドルータの配下にある通信装置101の送信間隔が計測により15分とされ、ネットワーク104の環境のタイムアウト時間が不明であるとき、このネットワーク104の環境が、当該通信装置101の送信間隔を15分に決定している要因になっている可能性が高いと判断できる。そこで、この値を記憶部313にネットワーク情報に関連付けて、第2接続管理情報のエントリとして登録してもよい。
以上のように、本実施形態によれば、実フィールドでの送信間隔の計測を通信装置に行わせ、計測結果をサーバ装置301に報告させることによって、TCPコネクションのタイムアウト時間が不明な中継装置や、当該タイムアウト時間が不明なネットワーク経路が存在する場合においても、サーバ装置301は、最適な送信間隔を決定できるようになる。また、本実施形態によれば、サーバ装置301から通信装置の方向への導通性も担保できるようになる。
(第3の実施形態)
図10は、第3の実施形態に係る通信システムを示す。図1または図8と同一名称の要素には同一の符号を付し、拡張または変更された処理を除き、重複する説明を省略する。
通信装置101は、第1および第2の実施形態の構成に加えて、送信間隔情報記憶部117、および全送信間隔情報取得部116を備える。送信間隔情報記憶部117は、第2の実施形態で述べたサーバ装置301側の送信間隔情報記憶部117と同じデータを格納するための記憶部である。このデータは、通信装置101に予めプリセットされていてもよい。または、通信装置101で動作するファームウェアのアップデート等を契機とし、サーバ装置301側の全送信間隔情報提供部316と、通信装置101側の全送信間隔情報取得部116との動作によって、サーバ装置301の送信間隔情報記憶部313内のデータを通信装置101にダウンロードして、最新の情報が送信間隔情報記憶部117に反映されるようにしてもよい。
通信装置101の全送信間隔情報取得部116は、サーバ側から送信間隔情報記憶部117内の全データを取得する。これは、ファームウェアのアップデートという形で、他のシステム情報と共に取得するものであってもよいし、この送信間隔情報記憶部内のデータのみを取得するものであってもよい。取得タイミングも、ファームウェアアップデートのタイミングの他、様々なバリエーションが考えられる。例えば、接続維持している通信コネクションを介して、サーバ装置301から更新通知を受けたタイミングでもよいし、定期的にサーバ装置301にアクセスして送信間隔情報の更新が検知されたタイミングでもよい。
サーバ装置301は、第2の実施形態の構成に加えて、全送信間隔情報提供部316を備える。全送信間隔情報提供部316は、通信装置101に送信間隔情報記憶部117内の全データを提供する。通信装置101へ提供する最新ファームウェアに、当該全データを含めてもよく、この場合、全送信間隔情報提供部316は、サーバ側の管理者によって駆動されても良い。または、全送信間隔情報提供部316は、通信装置101の全送信間隔情報取得部116からの要求を契機として、駆動されて、送信間隔情報記憶部117内の全データを読み出して、通信装置101に提供しても良い。または、全送信間隔情報提供部316が、サーバ装置301側の送信間隔情報記憶部313の内容の変更を検知して、通信装置101に更新通知を行ってもよい。更新通知を行った後、通信装置101からの要求に応じて、送信間隔情報記憶部117内の全データを読み出して、通信装置101に提供してもよい。
通信装置101は、送信間隔情報記憶部117内のデータを利用して、送信間隔を決定することができる。取得部113によって取得された中継装置情報やネットワーク情報(ネットワーク情報はユーザによる手動入力でもよい)から、送信間隔情報記憶部117内のデータに基づき、決定部115により送信間隔を決定する。この動作の詳細は、第1または第2の実施形態の説明から自明であるため省略する。これにより、第1の実施形態における図4のステップS5、S6の動作は不要となり、通信コストも抑制できる。
尚、各実施形態に係る通信装置およびサーバ装置は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現可能である。すなわち、上記のコンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより実現出来る。このとき、通信装置は、上記のプログラムをコンピュータ装置にあらかじめインストールすることで実現することや、各種の記憶媒体に記憶、あるいはネットワークを介して上記のプログラムを配布、このプログラムをコンピュータ装置に適宜インストールすることで実現が出来る。また、通信装置内の各記憶部は、上記のコンピュータ装置に内蔵あるいは外付けされたメモリ、ハードディスクもしくはCD−R、CD−RW、DVD−RAM、DVD−Rなどの記憶媒体などを適宜利用して実現することができる。
本発明は上記実施形態そのままに限定されず、実施段階では要旨を逸脱しない範囲で構成要素を変形し具体化出来る。上記実施形態に開示されている複数の構成要素の適宜な組み合わせで、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除出来、異なる実施形態に渡る要素を適宜組み合わせることも出来る。
101:通信装置
201:中継装置
301:サーバ装置
401:ネットワーク
111:通信部
112:接続維持部
113:取得部
114:記憶部
115:決定部
116:送信間隔情報取得部
117:送信間隔情報記憶部
311:通信部
312:接続維持部
313:送信間隔情報記憶部
314:送信間隔情報登録部
315:送信間隔情報提供部
316:全送信間隔情報提供部

Claims (20)

  1. 通信ネットワークを介して他の通信装置と通信コネクションを確立し、前記通信コネクションを用いて第1情報に関するパケットの通信を行う通信部と、
    予め取得した前記通信ネットワークの特性情報に基づいて、前記第1情報と異なる第2情報に関するパケットの送信間隔を決定する決定部と、
    少なくとも前記通信コネクションが確立されており、かつ前記第1情報に関するパケットの通信が停止している間、前記決定部で決定された送信間隔に従って、前記通信コネクションを用いて前記他の通信装置に、前記第2情報に関するパケットを送信するよう制御する接続維持部と
    を備えた通信装置。
  2. 前記通信ネットワークの特性情報は、前記他の通信装置との間の通信経路上に存在する1つ以上の中継装置の情報を含む
    請求項1に記載の通信装置。
  3. 前記通信ネットワークは、前記通信装置が接続される第1中継装置と、前記第1中継装置の上流ネットワークとを含み、前記通信ネットワークの特性情報は、前記第1中継装置の情報を含む
    請求項2に記載の通信装置。
  4. 前記通信ネットワークは、前記通信装置が接続される第1中継装置と、前記第1中継装置の上流ネットワークとを含み、
    前記通信ネットワークの特性情報は、前記上流ネットワークのネットワーク事業者の識別情報、前記上流ネットワークのネットワークプロバイダの識別情報、前記上流ネットワークにおいて前記他の通信装置との間の通信経路上に存在する中継装置の情報の少なくともいずれかを含む
    請求項2または3に記載の通信装置。
  5. 前記決定部は、少なくとも1つの通信ネットワークの特性情報とパケット送信間隔とを関連づけた関連データに基づき、前記予め取得した通信ネットワークの特性情報から前記送信間隔を決定する
    請求項1ないし4のいずれか一項に記載の通信装置。
  6. 前記他の通信装置との間の通信経路上の1つ以上の中継装置と通信することにより、前記通信ネットワークの特性情報を取得する取得部
    をさらに備えた請求項1ないし6のいずれか一項に記載の通信装置。
  7. 前記送信間隔が決定済みか否かを示す状態情報を記憶する記憶部を備え、
    前記決定部は、前記記憶部から読み出した状態情報が、前記送信間隔が決定済みでないことを示すとき、前記取得部により取得された前記通信ネットワークの特性情報に基づいて、前記送信間隔を決定する処理を行う
    請求項6に記載の通信装置。
  8. 前記決定部は、前記通信ネットワークの特性情報を前記他の通信装置に送信し、前記他の通信装置から送信される前記送信間隔の指定情報を含む応答メッセージを受信し、前記応答メッセージに含まれる前記指定情報に従って、前記送信間隔を決定する
    請求項1ないし7のいずれか一項に記載の通信装置。
  9. 前記決定部は、前記接続維持部を用いて、前記第2情報に関するパケットまたは前記第1および第2情報とは異なる第3情報に関するパケットを、前記パケットの送信間隔を変動させながら送信し、前記パケットの送信の成功可否を判定する、計測処理を行い、前記計測処理の結果に基づいて、前記送信間隔を決定する
    請求項1ないし7のいずれか一項に記載の通信装置。
  10. 前記決定部は、前記通信ネットワークの特性情報を前記他の通信装置に送信し、前記他の通信装置から送信される前記送信間隔の計測処理の指示情報を含む応答メッセージを受信し、前記応答メッセージに含まれる指示情報に従って、前記計測処理を行う
    請求項9に記載の通信装置。
  11. 前記決定部は、前記第2情報または前記第3情報に関するパケットの送信が成功するごとに、前記パケットの送信間隔を増加させ、増加後の送信間隔が上限値に達した場合、または、増加後の送信間隔で前記パケットの送信が失敗した場合には、前記上限値または前記パケットの送信が失敗した1つ前のパケット送信時の送信間隔に基づいて、前記送信間隔を決定する
    請求項9または10に記載の通信装置。
  12. 前記決定部は、前記第2情報または前記第3情報に関するパケットの送信が失敗するごとに、前記パケットの送信間隔を低下させ、低下後の送信間隔が下限値に達した場合、または、前記低下後の送信間隔で前記パケットの送信が成功した場合には、前記下限値または前記パケットの送信が成功した送信間隔に基づいて、前記送信間隔を決定する
    請求項9または10に記載の通信装置。
  13. 前記決定部は、前記決定された送信間隔の値と前記通信ネットワークの特性情報とを含むメッセージを、前記他の通信装置に通知する
    請求項9ないし12のいずれか一項に記載の通信装置。
  14. 前記第2情報に関するパケットは、キープアライブパケットまたはハートビートパケットである
    請求項1ないし13のいずれか一項に記載の通信装置。
  15. 第1の通信装置と、
    前記第1の通信装置と通信ネットワークを介して接続された第2の通信装置とを備え、
    前記第1の通信装置は、前記第2の通信装置と通信コネクションを確立し、前記通信コネクションを用いて第1情報に関するパケットの通信を行う第1通信部と、
    予め取得した前記通信ネットワークの特性情報に基づいて、前記第1情報と異なる第2情報に関するパケットの送信間隔を決定する第1決定部と
    少なくとも前記通信コネクションが確立されており、かつ前記第1情報に関するパケットの通信が停止している間、前記決定部で決定された送信間隔に従って、前記通信コネクションを用いて前記第2の通信装置に、前記第2情報に関するパケットを送信するよう制御する第1接続維持部と
    を備えた通信システム。
  16. 前記第2の通信装置は、
    通信ネットワークの特性情報とパケット送信間隔とを関連づけた関連データを記憶する記憶部と、
    前記第1の通信装置から、前記通信ネットワークの特性情報を含む取得要求メッセージを受信する第2通信部と、
    前記取得要求メッセージに含まれる前記通信ネットワークの特性情報と前記関連データに基づいて、前記第1の通信装置に対する送信間隔を特定し、特定した送信間隔の指定情報を含む応答メッセージを、前記第1の通信装置に送信する第1情報提供部と、
    を備えた請求項15に記載の通信システム。
  17. 前記第2の通信装置の第2通信部は、前記第1の通信装置から、前記第1の通信装置で決定された送信間隔の値と前記通信ネットワークの特性情報とを含むメッセージを受信し、
    前記第2の通信装置は、前記メッセージに含まれる前記通信ネットワークの特性情報と前記送信間隔の値とを関連づけて前記記憶部に格納する情報登録部
    をさらに備えた請求項16に記載の通信システム。
  18. 前記第2の通信装置は、前記記憶部に記憶されているデータを前記第1の通信装置に提供する第2情報提供部をさらに備え、
    前記第1の通信装置は、前記第2の情報提供部から提供されたデータを記憶する記憶部を備え、
    前記第1の通信装置の前記第1決定部は、前記通信ネットワークの特性情報と、前記記憶部に記憶されたデータに基づいて、前記送信間隔を決定する
    請求項16または17に記載の通信システム。
  19. 前記第1の通信装置は、前記第2情報に関するパケットまたは前記第1情報および第2情報とは異なる第3情報に関するパケットを、前記パケットの送信間隔を変動させながら送信し、前記パケットの送信の成功可否を判定する、計測処理を行い、前記計測処理の結果に基づいて、前記送信間隔の候補を決定し、
    前記第2の通信装置は、前記第2情報または前記第3情報に関するパケットを、前記パケットの送信間隔を変動させながら送信し、前記パケットの送信の成功可否を判定する、計測処理を行い、前記計測処理の結果に基づいて、前記送信間隔の候補を決定し、
    前記第1の通信装置および前記第2の通信装置の一方は、前記第1の通信装置および前記第2の通信装置が決定した送信間隔の候補に基づいて送信間隔を決定し、
    前記第1通信装置の前記接続維持部は、前記第1の通信装置および前記第2の通信装置の一方が決定した送信間隔に従って、前記第2情報に関するパケットの送信を制御する
    請求項15ないし19のいずれか一項に記載の通信システム。
  20. 通信ネットワークを介して他の通信装置と通信コネクションを確立し、前記通信コネクションを用いて第1情報に関するパケットの通信を行う通信ステップと、
    予め取得した前記通信ネットワークの特性情報に基づいて、前記第1情報と異なる第2情報に関するパケットの送信間隔を決定する決定ステップと
    少なくとも前記通信コネクションが確立されており、かつ前記第1情報に関するパケットの通信が停止している間、前記決定ステップで決定された送信間隔に従って、前記通信コネクションを用いて前記他の通信装置に、前記第2情報に関するパケットを送信するよう制御する接続維持ステップと、
    を備えた通信方法。
JP2014190438A 2014-09-18 2014-09-18 通信装置、通信システムおよび通信方法 Active JP6290053B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014190438A JP6290053B2 (ja) 2014-09-18 2014-09-18 通信装置、通信システムおよび通信方法
US14/849,996 US10003543B2 (en) 2014-09-18 2015-09-10 Communication device, communication system, and communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014190438A JP6290053B2 (ja) 2014-09-18 2014-09-18 通信装置、通信システムおよび通信方法

Publications (2)

Publication Number Publication Date
JP2016063425A true JP2016063425A (ja) 2016-04-25
JP6290053B2 JP6290053B2 (ja) 2018-03-07

Family

ID=55526846

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014190438A Active JP6290053B2 (ja) 2014-09-18 2014-09-18 通信装置、通信システムおよび通信方法

Country Status (2)

Country Link
US (1) US10003543B2 (ja)
JP (1) JP6290053B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10187284B2 (en) 2014-12-24 2019-01-22 Kabushiki Kaisha Toshiba Communication device, server device, communication method, and non-transitory computer readable medium
US10511671B2 (en) 2016-09-16 2019-12-17 Kabushiki Kaisha Toshiba Communication device, communication method, controlled device, and non-transitory computer readable medium
US10523763B2 (en) 2016-09-16 2019-12-31 Kabushiki Kaisha Toshiba Communication device, communication method, controlled device, and non-transitory computer readable medium

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10321510B2 (en) * 2017-06-02 2019-06-11 Apple Inc. Keep alive interval fallback
CN110557263B (zh) * 2018-05-31 2021-08-03 华为技术有限公司 待机控制方法、系统、终端设备和中继设备
CN113300981A (zh) * 2020-02-21 2021-08-24 华为技术有限公司 报文传输方法、装置及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006203575A (ja) * 2005-01-20 2006-08-03 Fractalist Inc 通信方法
JP2012222378A (ja) * 2011-04-04 2012-11-12 Hitachi Ltd 端末キープアライブ方式、及びキープアライブ間隔決定方法
WO2014013674A1 (ja) * 2012-07-17 2014-01-23 日本電気株式会社 通信維持システム、端末装置、通信維持方法、および、接続維持プログラム
US20140056313A1 (en) * 2012-03-02 2014-02-27 Canon Kabushiki Kaisha Communication system, client apparatus, server apparatus, communication method, and program
JP2014075655A (ja) * 2012-10-03 2014-04-24 Canon Inc 画像形成装置、管理装置、情報処理システム、制御方法およびコンピュータプログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6233232B1 (en) * 1997-04-08 2001-05-15 3Com Corporation Supporting multilink connections across multiple network access servers
US7965729B2 (en) * 2001-05-23 2011-06-21 Polytechnic University Transferring data such as files
US7639663B1 (en) * 2005-03-04 2009-12-29 Itt Manufacturing Enterprises, Inc. Method and apparatus for dynamic channel access within wireless networks
US7768989B2 (en) * 2005-03-04 2010-08-03 Itt Manufacturing Enterprises, Inc. Method and apparatus for multipoint voice operation in a wireless, Ad-Hoc environment
US8385193B2 (en) * 2005-10-18 2013-02-26 Qualcomm Incorporated Method and apparatus for admission control of data in a mesh network
JP4762007B2 (ja) * 2006-03-03 2011-08-31 パナソニック株式会社 中継装置、通信端末、及び通信システム
US8144587B2 (en) * 2006-08-22 2012-03-27 Embarq Holdings Company, Llc System and method for load balancing network resources using a connection admission control engine
JP4639207B2 (ja) * 2007-03-14 2011-02-23 株式会社日立製作所 ネットワークシステム、ノード装置及び管理サーバ
US8700924B2 (en) * 2008-05-21 2014-04-15 International Electronic Machines Corp. Modular sensor node and communications system
JP2012037944A (ja) 2010-08-03 2012-02-23 Canon Inc 画像形成装置、代行運転システム、画像形成装置の制御方法、プログラム
CN104145466A (zh) * 2012-02-24 2014-11-12 诺基亚公司 用于动态服务器/客户端控制的连通性逻辑的方法和装置
JP6106494B2 (ja) 2013-03-29 2017-03-29 株式会社東芝 通信制御装置、サーバ装置、通信システム及びプログラム
JP6470966B2 (ja) * 2014-12-24 2019-02-13 株式会社東芝 通信装置、サーバ装置、通信方法およびプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006203575A (ja) * 2005-01-20 2006-08-03 Fractalist Inc 通信方法
JP2012222378A (ja) * 2011-04-04 2012-11-12 Hitachi Ltd 端末キープアライブ方式、及びキープアライブ間隔決定方法
US20140056313A1 (en) * 2012-03-02 2014-02-27 Canon Kabushiki Kaisha Communication system, client apparatus, server apparatus, communication method, and program
WO2014013674A1 (ja) * 2012-07-17 2014-01-23 日本電気株式会社 通信維持システム、端末装置、通信維持方法、および、接続維持プログラム
JP2014075655A (ja) * 2012-10-03 2014-04-24 Canon Inc 画像形成装置、管理装置、情報処理システム、制御方法およびコンピュータプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10187284B2 (en) 2014-12-24 2019-01-22 Kabushiki Kaisha Toshiba Communication device, server device, communication method, and non-transitory computer readable medium
US10511671B2 (en) 2016-09-16 2019-12-17 Kabushiki Kaisha Toshiba Communication device, communication method, controlled device, and non-transitory computer readable medium
US10523763B2 (en) 2016-09-16 2019-12-31 Kabushiki Kaisha Toshiba Communication device, communication method, controlled device, and non-transitory computer readable medium

Also Published As

Publication number Publication date
US10003543B2 (en) 2018-06-19
JP6290053B2 (ja) 2018-03-07
US20160087907A1 (en) 2016-03-24

Similar Documents

Publication Publication Date Title
JP6290053B2 (ja) 通信装置、通信システムおよび通信方法
US8261339B2 (en) Dynamic network tunnel endpoint selection
US9173117B2 (en) Enhancing a mobile backup channel to address a node failure in a wireline network
JP5888405B2 (ja) 情報処理装置、情報処理方法及びプログラム
EP2949093A1 (en) Address resolution in software-defined networks
JP6279938B2 (ja) 接続管理装置、通信システム、接続管理方法およびプログラム
US11924164B2 (en) Cloud access to local network addresses
US10212072B2 (en) Peer state synchronization mechanism for dynamic network address translation (DNAT) in a network element
JP2018107791A (ja) 第1のタイプのネットワークの顧客構内機器に接続されるように構成されたデバイスで実施される方法および対応するデバイス
US10075354B2 (en) Identification of servers by common wide area network addresses
WO2018024200A1 (zh) 虚拟桌面组播控制方法、终端、代理终端及云桌面服务器
US9729428B2 (en) Peer-to-peer connection system with capability of peer-to-peer connection path routing, path routing method of peer-to-peer connection and computer application program thereof
JP6193155B2 (ja) 通信装置、通信システム、通信方法およびプログラム
CN106254433B (zh) 一种建立tcp通信连接的方法及装置
WO2016177185A1 (zh) 媒体访问控制mac地址的处理方法及装置
US20150365443A1 (en) Method, server and apparatus for establishing point-to-point connection
CN102291413B (zh) 基于互联网的发现协议系统
US20170078196A1 (en) Communication system, control apparatus, and control method
JP6447138B2 (ja) ゲートウェイ装置
EP3097675B1 (en) Crash recovery for smart objects
JP5464360B2 (ja) 移動体通信における改良された端末情報管理方式及び通信方式を実現するメッシュ型ネットワーク及び基地局
WO2015177924A1 (ja) 通信装置及び通信方法及びプログラム
JP2017050765A (ja) 情報処理装置及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160914

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170721

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171024

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180207

R151 Written notification of patent or utility model registration

Ref document number: 6290053

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151