特許第6429559号(P6429559)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特許6429559通信装置、通信システム、情報処理方法及びプログラム
<>
  • 特許6429559-通信装置、通信システム、情報処理方法及びプログラム 図000002
  • 特許6429559-通信装置、通信システム、情報処理方法及びプログラム 図000003
  • 特許6429559-通信装置、通信システム、情報処理方法及びプログラム 図000004
  • 特許6429559-通信装置、通信システム、情報処理方法及びプログラム 図000005
  • 特許6429559-通信装置、通信システム、情報処理方法及びプログラム 図000006
  • 特許6429559-通信装置、通信システム、情報処理方法及びプログラム 図000007
  • 特許6429559-通信装置、通信システム、情報処理方法及びプログラム 図000008
  • 特許6429559-通信装置、通信システム、情報処理方法及びプログラム 図000009
  • 特許6429559-通信装置、通信システム、情報処理方法及びプログラム 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6429559
(24)【登録日】2018年11月9日
(45)【発行日】2018年11月28日
(54)【発明の名称】通信装置、通信システム、情報処理方法及びプログラム
(51)【国際特許分類】
   H04L 29/06 20060101AFI20181119BHJP
   H04L 29/08 20060101ALI20181119BHJP
【FI】
   H04L13/00 305C
   H04L13/00 307A
【請求項の数】17
【全頁数】16
(21)【出願番号】特願2014-197319(P2014-197319)
(22)【出願日】2014年9月26日
(65)【公開番号】特開2016-72684(P2016-72684A)
(43)【公開日】2016年5月9日
【審査請求日】2017年9月13日
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100090273
【弁理士】
【氏名又は名称】國分 孝悦
(72)【発明者】
【氏名】安間 健介
【審査官】 宮島 郁美
(56)【参考文献】
【文献】 特開2000−299774(JP,A)
【文献】 特開平07−023200(JP,A)
【文献】 米国特許出願公開第2013/0227272(US,A1)
【文献】 米国特許出願公開第2004/0259578(US,A1)
【文献】 大津 繁樹,HTTP/2の最新動向,電子情報通信学会誌 第97巻 第8号,日本,一般社団法人電子情報通信学会,2014年 8月 1日,第97巻 第8号,727〜733
【文献】 桐生 直輝,SPDYを用いたHTTPのセッション管理方式の提案と実装,2014年 暗号と情報セキュリティシンポジウム SCIS2014 [CD−ROM] 2014年 暗号と情報セキュリティシンポジウム概要集,電子情報通信学会情報セキュリティ研究専門委員会(ISEC研),2014年 1月24日,1〜8
(58)【調査した分野】(Int.Cl.,DB名)
H04L12/00−12/26,12/50−12/955,29/00
H04B7/24−7/26,H04W4/00−99/00
G06F13/00
(57)【特許請求の範囲】
【請求項1】
第1の通信プロトコルによる通信と、前記第1の通信プロトコルとは異なる第2の通信プロトコルによる通信とを実行可能な通信装置であって、
接続先の通信装置を指定する指定手段と、
前記指定手段により指定された前記接続先の通信装置との通信に用いる通信プロトコルを前記第2の通信プロトコルから前記第1の通信プロトコルへ切り替える切り替え処理を省略するか否かを、前記接続先の通信装置の識別情報が所定の記憶部に登録されているか否かに基づいて断する判断手段と、
前記判断手段により前記切り替え処理を省略しないと判断された場合、前記接続先の通信装置との間で前記第2の通信プロトコルによる通信を行うことで前記第2の通信プロトコルから前記第1の通信プロトコルへの前記切り替え処理を実行する実行手段と、
前記判断手段により前記切り替え処理を省略すると判断された場合には、前記切り替え処理の少なくとも一部を実行することなく前記第1の通信プロトコルによる接続開始要求を前記接続先の通信装置に送信し、前記判断手段により前記切り替え処理を省略しないと判断された場合には、前記実行手段により前記切り替え処理を実行した後に前記第1の通信プロトコルによる前記接続開始要求を前記接続先の通信装置に送信する送信手段と、
を有することを特徴とする通信装置。
【請求項2】
前記実行手段による前記切り替え処理の実行結果に応じて、前記接続先の通信装置との間で前記第1の通信プロトコルによる通信が可能か否かを判断する通信可否判断手段を有することを特徴とする請求項1に記載の通信装置。
【請求項3】
前記通信可否判断手段により前記第1の通信プロトコルによる通信が可能でないと判断された場合、前記接続先の通信装置との間で前記第2の通信プロトコルによる通信を開始する通信開始手段を有することを特徴とする請求項2に記載の通信装置。
【請求項4】
前記接続開始要求に対応する接続開始応答を前記接続先の通信装置から受信した場合、前記第1の通信プロトコルに関する設定情報を適用する適用手段を有することを特徴とする請求項1乃至3の何れか1項記載の通信装置。
【請求項5】
前記適用手段は、前記判断手段により前記切り替え処理を省略すると判断された場合、前記接続先の通信装置との間における過去の通信において使用された設定情報を適用することを特徴とする請求項4に記載の通信装置。
【請求項6】
前記実行手段による前記切り替え処理の実行結果に応じて、前記接続先の通信装置の識別情報を前記所定の記憶部に登録する登録手段を有することを特徴とする請求項1乃至5の何れか1項に記載の通信装置。
【請求項7】
前記所定の記憶部は、前記通信装置が有する記憶部、又は前記通信装置とネットワークを介して接続された記憶部であることを特徴とする請求項1乃至6の何れか1項に記載の通信装置。
【請求項8】
第1の通信プロトコルによる通信と、前記第1の通信プロトコルとは異なる第2の通信プロトコルによる通信とを実行可能な通信装置であって、
前記第1の通信プロトコルによる接続開始要求を接続要求元の通信装置から受信する受信手段と、
前記受信手段により受信された前記接続開始要求に対応する前記接続要求元の通信装置との通信に用いる通信プロトコルを前記第2の通信プロトコルから前記第1の通信プロトコルへ切り替える切り替え処理を省略するか否かを、前記接続要求元の通信装置の識別情報が所定の記憶部に登録されているか否かに基づいて判断する判断手段と、
前記判断手段により前記切り替え処理を省略しないと判断された場合、前記接続要求元の通信装置との間で前記第2の通信プロトコルによる通信を行うことで前記第2の通信プロトコルから前記第1の通信プロトコルへの前記切り替え処理を実行する実行手段と、
前記判断手段により前記切り替え処理を省略すると判断された場合には、前記切り替え処理の少なくとも一部を実行することなく前記第1の通信プロトコルによる接続開始応答を前記接続要求元の通信装置に送信し、前記判断手段により前記切り替え処理を省略しないと判断された場合には、前記実行手段により前記切り替え処理を実行した後に前記第1の通信プロトコルによる前記接続開始応答を前記接続要求元の通信装置に送信する送信手段と、
を有することを特徴とする通信装置。
【請求項9】
前記判断手段により前記切り替え処理を省略すると判断された場合、前記識別情報と対応づけて前記所定の記憶部に記憶されている前記第1の通信プロトコルに関する設定情報を適用する適用手段を有することを特徴とする請求項8記載の通信装置。
【請求項10】
前記実行手段による前記切り替え処理の実行結果に応じて、前記接続要求元の通信装置の識別情報を前記所定の記憶部に登録する登録手段を有することを特徴とする請求項8又は9に記載の通信装置。
【請求項11】
前記所定の記憶部は、前記通信装置が有する記憶部、又は前記通信装置とネットワークを介して接続された記憶部であることを特徴とする請求項8乃至10の何れか1項に記載の通信装置。
【請求項12】
前記設定情報には、SETTINGSフレームの情報及びヘッダ圧縮辞書の情報の少なくとも何れかが含まれることを特徴とする請求項及び9何れか1項記載の通信装置。
【請求項13】
前記実行手段により実行される前記切り替え処理は、前記第2の通信プロトコルとしてのHTTP/1.1から前記第1の通信プロトコルとしてのHTTP/2へのアップグレード処理であることを特徴とする請求項1乃至12の何れか1項に記載の通信装置。
【請求項14】
第1の通信プロトコルによる通信と、前記第1の通信プロトコルとは異なる第2の通信プロトコルによる通信とを実行可能な、第1の通信装置と第2の通信装置とを含む通信システムであって、
前記第1の通信装置は、
接続先の通信装置を指定する指定手段と、
前記指定手段により前記接続先の通信装置として指定された前記第2の通信装置との通信に用いる通信プロトコルを前記第2の通信プロトコルから前記第1の通信プロトコルへ切り替える切り替え処理を省略するか否かを、前記第2の通信装置の識別情報が登録されているか否かに基づいて判断する第1の判断手段と、
前記第1の判断手段により前記切り替え処理を省略しないと判断された場合、前記第2の通信装置との間で前記第2の通信プロトコルによる通信を行うことで前記第2の通信プロトコルから前記第1の通信プロトコルへの前記切り替え処理を実行する実行手段と、
前記第1の判断手段により前記切り替え処理を省略すると判断された場合には、前記切り替え処理の少なくとも一部を実行することなく前記第1の通信プロトコルによる接続開始要求を前記第2の通信装置に送信し、前記第1の判断手段により前記切り替え処理を省略しないと判断された場合には、前記実行手段により前記切り替え処理を実行した後に前記第1の通信プロトコルによる前記接続開始要求を前記第2の通信装置に送信する第1の送信手段と、を有し、
前記第2の通信装置は、
前記接続開始要求を前記第1の通信装置から受信した場合に、前記第1の通信装置との通信に用いる通信プロトコルを前記第2の通信プロトコルから前記第1の通信プロトコルへ切り替える切り替え処理を省略するか否かを、前記第1の通信装置の識別情報が登録されているか否かに基づいて判断する第2の判断手段と、
前記第2の判断手段により前記切り替え処理を省略すると判断された場合、前記切り替え処理の少なくとも一部を実行することなく前記第1の通信プロトコルによる接続開始応答を前記第1の通信装置に送信する第2の送信手段と、
を有することを特徴とする通信システム。
【請求項15】
第1の通信プロトコルによる通信と、前記第1の通信プロトコルとは異なる第2の通信プロトコルによる通信とを実行可能な通信装置が実行する情報処理方法であって、
接続先の通信装置を指定する指定工程と、
前記指定工程において指定された前記接続先の通信装置との通信に用いる通信プロトコルを前記第2の通信プロトコルから前記第1の通信プロトコルへ切り替える切り替え処理を省略するか否かを、前記接続先の通信装置の識別情報が所定の記憶部に登録されているか否かに基づいて判断する判断工程と、
前記判断工程において前記切り替え処理を省略しないと判断された場合、前記接続先の通信装置との間で前記第2の通信プロトコルによる通信を行うことで前記第2の通信プロトコルから前記第1の通信プロトコルへの前記切り替え処理を実行する実行工程と、
前記判断工程において前記切り替え処理を省略すると判断された場合には、前記切り替え処理の少なくとも一部を実行することなく前記第1の通信プロトコルによる接続開始要求を前記接続先の通信装置に送信し、前記判断工程において前記切り替え処理を省略しないと判断された場合には、前記実行工程において前記切り替え処理を実行した後に前記第1の通信プロトコルによる前記接続開始要求を前記接続先の通信装置に送信する送信工程と、
を含むことを特徴とする情報処理方法。
【請求項16】
第1の通信プロトコルによる通信と、前記第1の通信プロトコルとは異なる第2の通信プロトコルによる通信とを実行可能な通信装置が実行する情報処理方法であって、
前記第1の通信プロトコルによる接続開始要求を接続要求元の通信装置から受信する受信工程と、
前記受信工程において受信された前記接続開始要求に対応する前記接続要求元の通信装置との通信に用いる通信プロトコルを前記第2の通信プロトコルから前記第1の通信プロトコルへ切り替える切り替え処理を省略するか否かを、前記接続要求元の通信装置の識別情報が所定の記憶部に登録されているか否かに基づいて判断する判断工程と、
前記判断工程において前記切り替え処理を省略しないと判断された場合、前記接続要求元の通信装置との間で前記第2の通信プロトコルによる通信を行うことで前記第2の通信プロトコルから前記第1の通信プロトコルへの前記切り替え処理を実行する実行工程と、
前記判断工程において前記切り替え処理を省略すると判断された場合には、前記切り替え処理の少なくとも一部を実行することなく前記第1の通信プロトコルによる接続開始応答を前記接続要求元の通信装置に送信し、前記判断工程において前記切り替え処理を省略しないと判断された場合には、前記実行工程において前記切り替え処理を実行した後に前記第1の通信プロトコルによる前記接続開始応答を前記接続要求元の通信装置に送信する送信工程と、
を含むことを特徴とする情報処理方法。
【請求項17】
コンピュータを、請求項1乃至13の何れか1項に記載の通信装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信装置、通信システム、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
デバイスの小型化や無線LANの普及により、多様なデバイスがネットワークに接続するようになってきている。また、デバイス同士の接続や、デバイス及びサーバ、デバイス及びクラウドへの接続が一般化されてきている。
このような状況の中で、ユーザがデバイスを持ち運ぶことで無線LANの領域から外れてしまいネットワークから切断されることや、デバイスのモードの変更や電源のオフ等によってネットワークから切断されることが発生してきている。
このような場合、通信開始時の処理を毎回実行しなければならないという課題が存在する。特許文献1では、先行したネゴシエーション手順によって、サービス情報を取得して、ネゴシエーション手順を省略するという方法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2004−363993号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
通信開始時にプロトコルを切り替えて利用する通信装置等では、再接続する場合等、プロトコルの設定情報の交換処理を再実行しなければならず、接続に時間がかかる問題があった。
【課題を解決するための手段】
【0005】
そこで、本発明の通信装置は、第1の通信プロトコルによる通信と、前記第1の通信プロトコルとは異なる第2の通信プロトコルによる通信とを実行可能な通信装置であって、接続先の通信装置を指定する指定手段と、前記指定手段により指定された前記接続先の通信装置との通信に用いる通信プロトコルを前記第2の通信プロトコルから前記第1の通信プロトコルへ切り替える切り替え処理を省略するか否かを、前記接続先の通信装置の識別情報が所定の記憶部に登録されているか否かに基づいて断する判断手段と、前記判断手段により前記切り替え処理を省略しないと判断された場合、前記接続先の通信装置との間で前記第2の通信プロトコルによる通信を行うことで前記第2の通信プロトコルから前記第1の通信プロトコルへの前記切り替え処理を実行する実行手段と、前記判断手段により前記切り替え処理を省略すると判断された場合には、前記切り替え処理の少なくとも一部を実行することなく前記第1の通信プロトコルによる接続開始要求を前記接続先の通信装置に送信し、前記判断手段により前記切り替え処理を省略しないと判断された場合には、前記実行手段により前記切り替え処理を実行した後に前記第1の通信プロトコルによる前記接続開始要求を前記接続先の通信装置に送信する送信手段と、を有することを特徴とする
【発明の効果】
【0006】
本発明によれば、通信の接続に係る時間を短縮することができる。
【図面の簡単な説明】
【0007】
図1】通信システムのシステム構成の一例を示す図である。
図2】通信装置等のハードウェア構成の一例を示す図である。
図3】通信装置のソフトウェア構成の一例を示す図である。
図4】サーバのソフトウェア構成の一例を示す図である。
図5】通信装置がサーバと通信を開始する際の情報処理の一例を示すフローチャートである。
図6】通信装置とサーバとの間で通信の設定をスキップする場合の情報処理の一例を示すシーケンス図である。
図7】サーバが通信装置と通信を開始する際の情報処理の一例を示すフローチャートである。
図8】通信装置の設定情報のエントリを示す図である。
図9】通信装置とサーバとがHTTP/1.1通信の途中からHTTP/2通信に変更する場合の情報処理の一例を示すシーケンス図である。
【発明を実施するための形態】
【0008】
以下、本発明の実施形態について図面に基づいて説明する。
【0009】
<実施形態1>
図1は、通信システムのシステム構成の一例を示す図である。
通信システムは、ネットワーク100を介して、通信装置101とサーバ102とが通信可能に接続されている。本実施形態におけるネットワーク100は、インターネット、WAN(Wide Area Network)、LAN(Local Area Network)等の複合であってもよい。
通信装置101は、ネットワーク100を通じて、サーバ102とHTTP/1.1及びHTTP/2通信を行う。通信装置101の一例としては、例えば、デジタルカメラ等である。但し、このことは本実施の形態を制限するものではない。通信装置101は、接続要求元の通信装置、第1の通信装置の一例である。また、サーバ102は、接続先の通信装置、第2の通信装置の一例である。
【0010】
図2は、通信装置等のハードウェア構成の一例を示す図である。
より具体的説明すると、図2(a)は、通信装置101のハードウェア構成の一例を示す図である。図2(b)は、サーバ102のハードウェア構成の一例を示す図である。
図2(a)に示されるように、通信装置101は、ハードウェア構成として、CPU10と、メモリ11と、HD12と、ネットワーク制御装置13と、操作表示装置14と、撮像装置15と、を含む。そして、これらのハードウェア構成が、バス16を介して接続されている。
CPU10は、通信装置101の全体を制御する制御部である。CPU10が、メモリ11又はHD12等に記憶されているプログラムに基づき処理を実行することによって、後述する通信装置101のソフトウェア構成及び通信装置101のフローチャートの処理が実現される。メモリ11は、ブートプログラムや、CPU10が処理を実行する際に利用する予め定められたデータ等を記憶する。HD12は、プログラムやCPU10が処理を実行する際に利用するデータ、画像データ等を記憶する。ネットワーク制御装置13は、通信装置101をネットワーク100に接続し、CPU10の制御に基づき、ネットワーク100を介した他の装置との通信を制御する。操作表示装置14は、CPU10の制御に基づき、画像データ等を表示したり、ユーザ操作を受け付け、受け付けた操作に係る操作情報をCPU10に通知したりする。撮像装置15は、CPU10の制御に基づき、撮像を制御する。尚、図2(a)のハードウェア構成は、通信装置101をデジタルカメラとした場合の一例である。
【0011】
また、図2(b)に示されるように、サーバ102は、ハードウェア構成として、CPU20と、メモリ21と、HD22と、ネットワーク制御装置23と、表示装置24と、入力装置25と、を含む。そして、これらのハードウェア構成が、バス26を介して接続されている。
CPU20は、サーバ102の全体を制御する制御部である。CPU20が、メモリ21又はHD22等に記憶されているプログラムに基づき処理を実行することによって、後述するサーバ102のソフトウェア構成及びサーバ102のフローチャートの処理が実現される。メモリ21は、ブートプログラムや、CPU20が処理を実行する際に利用する予め定められたデータ等を記憶する。HD22は、プログラムやCPU20が処理を実行する際に利用するデータ等を記憶する。ネットワーク制御装置23は、サーバ102をネットワーク100に接続し、CP210の制御に基づき、ネットワーク100を介した他の装置との通信を制御する。表示装置24は、CPU20の制御に基づき、データを表示する。入力装置25は、ユーザ操作を受け付け、受け付けた操作に係る操作情報をCPU20に通知する。
【0012】
図3は、通信装置101のソフトウェア構成の一例を示す図である。
通信部201は、TCP/IP処理、及び、TLS(Transport Layer Security)処理を行う。
表示部202は、接続完了や接続エラーの表示を行う。表示部202は、操作表示装置14を用いて表示を行う。通信装置101は、接続完了や接続エラーを表示してもよいし、これに限らず、イベント情報をユーザに音や振動等で通知してもよい。
データ保存部203は、サーバの識別子に関連付けられた設定情報(後述する図8を参照)をHD12等に保持、管理する。本実施形態では、図8に示されるような情報を通信装置101内で保持するものとして説明を行う。しかし、これに限らず、通信装置101は、ネットワークを介した別の装置上に登録されている情報を参照等、利用するようにしてもよい。サーバの識別子は、接続先の通信装置(サーバ)を識別する識別情報の一例である。
設定部204は、データ保存部203で保持している設定情報に基づき通信のパラメータを設定する。
判断部205は、指定された識別子に応じて保持している設定情報の設定を行うか否かを判断する。更に、判断部205は、セキュリティ通信の有無、設定フェーズをスキップできるか否か等を判断する。
【0013】
通信手順切り替え部206は、HTTP/1.1とHTTP/2との通信を切り替える。
通信手順スキップ部207は、通信開始時のハンドシェイク及び設定の手順をスキップする。
選択部208は、HTTP/1.1とHTTP/2とからプロトコルを選択する。
入力部209は、URI、IPアドレス及びポート番号、Session−ID等の識別子の入力を行う。入力部209は、操作表示装置14等に表示されたUIを介したユーザ操作に応じて、識別子を入力してもよいし、NFCやBluetooth(登録商標)等を用いて他の装置等より取得された識別子を入力してもよい。また、入力部209は、通信装置101のアプリケーション等が記憶している識別子をアプリケーション等より受け取り、入力してもよい。
本実施形態では、プロトコルとしてHTTP/1.1とHTTP/2とを例にあげて説明するが、これに限らず、SPDY、QUICであってもよいし、その他の異種のプロトコル間の切り替えであってもよい。HTTP/1.1は、第の通信プロトコルの一例である。HTTP/2は、第の通信プロトコルの一例である。
【0014】
図4は、サーバ102のソフトウェア構成の一例を示す図である。
通信部801は、TCP/IP処理、及び、TLS(Transport Layer Security)処理を行う。
応答部802は、通信切り替えに対する受領メッセージを送信する。応答部802は、通信の切り替え方法がClient connection prefaceである場合、HTTP 200 OKを送信する。また、応答部802は、通信の切り替え方法がHTTP/1.1 Upgrade headerである場合、HTTP 101 Switching Protocolsを送信する。応答部802は、通信の切り替え方法がTLS ALPNフィールド付きのClient Helloである場合、TLS ALPN付きServer Helloを送信する。
データ保存部803は、識別子に関連付けられた設定情報をHD22等に保持、管理する。本実施形態では、設定情報等をサーバ102内で保持するものとして説明を行う。しかし、これに限らず、サーバ102は、ネットワークを介した別の装置上に保持されている設定情報を参照等、利用するようにしてもよい。
設定部804は、データ保存部803で保持している設定情報に基づき通信のパラメータを設定する。
【0015】
判断部805は、指定された識別子に応じて保持している設定情報の設定を行うか否かを判断する。更に、判断部805は、セキュリティ通信の有無や、設定フェーズをスキップできるか否かを判断する。
通信手順切り替え部806は、HTTP/1.1とHTTP/2との通信を切り替える。
通信手順スキップ部807は、通信開始時のハンドシェイク及び設定の手順をスキップする。
選択部808は、HTTP/1.1とHTTP/2とからプロトコルを選択する。
入力部809は、URI、IPアドレス及びポート番号、Session−ID等の識別子の入力を行う。入力部809は、入力装置25等に表示されたUIを介したユーザ操作に応じて、識別子を入力してもよいし、NFCやBluetooth等を用いて他の装置等より取得された識別子を入力してもよい。また、入力部809は、アプリケーション等が記憶している識別子をアプリケーション等から受け取り、入力してもよい。
【0016】
図5は、通信装置101がサーバ102と通信を開始する際の情報処理の一例を示すフローチャートである。
S301において、入力部209は、ユーザ、又は、アプリケーションから識別子を受け付け、入力し、S302に進む。ここでの識別子とは、URI、IPアドレス及びポート番号、Session−ID、その他、通信相手であるサーバ102を識別するための情報である。
S302において、判断部205は、入力された識別子から、通信処理のハンドシェイク及び設定等の処理のスキップを行うか否かの判断を行う。判断部205は、指定された識別子が図8に示すようなテーブルに含まれているかを確認し、含まれている場合、前記処理をスキップすると判断し(S302においてYes)、S303に進む。一方、判断部205は、指定された識別子が前記テーブルに含まれていない場合、前記処理はスキップしないと判断し(S302においてNo)、S312に進む。
【0017】
S303において、判断部205は、セキュリティ通信ありの通信であるか、セキュリティ通信なしの通信であるかを確認する。本実施形態では、識別子に紐付けて、セキュリティ通信ありかなしが予め設定されているものとする。これに限らず、例えば、TLSを利用するように明示された場合に、判断部205は、セキュリティ通信ありと判断してもよい。識別子の他に、識別子と対応付けてTLS通信を行うか否かを示す情報が設定されていてもよいし、TLS通信を行うか否かを示す情報が識別子に含まれる形であってもよい。本実施形態におけるセキュリティ通信とはTLSのことを示しており、別のレイヤのセキュリティ通信(例えば、IPsecや無線の暗号化等)は含んでいない。判断部205は、セキュリティ通信ありであると判断すると(S303においてYes)、S305に進み、セキュリティ通信なしであると判断すると(S303においてNo)、S304に進む。
S304において、通信部201は、サーバ102にTCP接続を開始し、S306に進む。
一方、S305において、通信部201は、サーバ102にTLS接続を開始し、S306に進む。
S306において、通信手順スキップ部207は、サーバ102にHTTP/2通信を開始するためにClient connection prefaceを送信する。通信手順スキップ部207は、HTTP/1.1からHTTP/2にアップグレードを行うための通信手順をスキップしている。Client connection prefaceは、第の通信プロトコルによる接続開始要求の一例である。
【0018】
S307において、判断部205は、サーバ102から、Client connection prefaceの受け付けを完了したメッセージ(例えば、HTTP 200 OK)を受信したか否かを確認する。判断部205は、受け付けを完了したメッセージを受け付けた場合(S307においてYes)、S310に進む。HTTP 200 OKは、接続開始応答の一例である。判断部205は、受け付けエラーメッセージ(例えば、Internal Server ErrorやHTTP Bad Request等)を受け付けた場合(S307においてNo)、S308に進む。
S308において、判断部205は、通信途中にプロトコルを変更できる機能があるか否かを判断する。判断部205は、通信途中にプロトコルを変更できる機能があると判断すると(S308においてYes)、S309に進み、通信途中にプロトコルを変更できる機能が無いと判断すると(S308においてNo)、S316に進む。
S309において、判断部205は、TCP又はTLSの接続を切断した上で、S312に進む。
一方、S310において、設定部204は、図8に示す設定情報を適用し、S311に進む。
S311において、通信手順スキップ部207は、SETTINGSフレームによる通信情報の設定のフェーズをスキップし、図5に示す処理を終了する。
【0019】
S312において、判断部205は、セキュリティ通信ありの通信であるか否かの確認を行う。判断部205は、セキュリティ通信ありの通信であると判断すると(S312においてYes)、S313に進み、セキュリティ通信なしの通信であると判断すると(S312においてNo)、S315に進む。
S313において、通信部201は、サーバ102にTLS接続を開始し、S314に進む。
S314において、通信手順切り替え部206は、TLSのClient HelloメッセージのALPN(Layer Protocol Negotiation)領域を利用して、プロトコルアップグレードの要求をサーバ102に送信し、S317に進む。
S314からS317に進んだ場合、S317において、通信手順切り替え部206は、サーバ102から受信したServer HelloメッセージのALPNフィールドに含まれるメッセージを解析し、プロトコルアップグレードに成功したか否かを判断する。
【0020】
一方、S315において、通信部201は、サーバ102とTCP接続を開始し、S316に進む。
S316において、通信手順切り替え部206は、HTTPのupgradeヘッダを用いたプロトコルアップグレードをサーバ102に送信し、S317に進む。
S316からS317に進んだ場合、S317において、通信手順切り替え部206は、サーバ102から受信したSwitching Protocolのレスポンスを解析し、プロトコルアップグレードに成功したか否かを判断する。
S317において、通信手順切り替え部206は、プロトコルアップグレードに成功し、HTTP/2接続が可能であると判断した場合(S317においてYes)、S318に進む。一方、通信手順切り替え部206は、プロトコルアップグレードに成功せず、HTTP/2接続が可能でないと判断した場合(S317においてNo)、S321に進む。
S317の処理は、通信可否判断の処理の一例である。
【0021】
S318において、通信手順切り替え部206は、HTTP/2の通信手順に従って、Client connection prefaceを送信し、S319に進む。
S319において、通信手順切り替え部206は、SETTINGSフレームの交換による設定情報を取得し、S320に進む。SETTINGSフレームの交換による設定情報は、例えば、ヘッダのテーブルサイズ、サーバのプッシュのありなし、最大ストリーム数、初期Window Size、データ圧縮のありなし等の情報である。
S320において、データ保存部203は、サーバ102の識別子に対応付けて、交換した設定情報を保存し、図5に示す処理を終了する。
一方、S321において、通信部201は、HTTP/1.1での通信を開始し、S322に進む。
S322において、データ保存部203は、サーバ102の識別子に対応付けて、HTTP/1.1接続にのみ対応したサーバであることを保存し、図5に示す処理を終了する。
【0022】
図6は、通信装置101とサーバ102との間で通信の設定をスキップする場合の情報処理の一例を示すシーケンス図である。
本実施形態では、通信装置101は、指定された識別子に応じてサーバ102との間で設定のスキップを行うと決定する。通信装置101とサーバ102とは、TLSによるセキュリティ通信を行う(図5のS302でYes、S303でYes)。通信装置101は、通信装置101のアプリケーションによって指定された識別子(session−ID)を取得する。そして、通信装置101は、識別子を鍵として図8に示されるテーブルを検索し、設定情報があるか否かの判断を行い、識別子に対応する設定情報があった場合には設定情報を利用する。
M401において、通信装置101は、サーバ102にClient helloを送信する(図5のS305)。
M402において、サーバ102は、通信装置101にServer helloを送信する(図5のS305)。
本実施形態では、M401、及び、M402において、ALPNフィールドで指定されるプロトコルアップグレードを省略しているが、これに限らず、省略せずに記載するようにしてもよい。
通信装置101は、HTTP/2を開始すると判断する。
【0023】
M403において、通信装置101は、Client connection prefaceをサーバ102に送信する。HTTP/2を開始すると判断すると、M404において、サーバ102は、HTTP 200 OKを通信装置101に送信する。
その後、通信装置101とサーバ102とは、過去の設定情報を適用した上で、HTTP/2通信を開始する。
本実施形態では、設定情報とは、例えば、ヘッダのテーブルサイズ、サーバのプッシュのありなし、最大ストリーム数、初期Window Size、データ圧縮のありなし、ヘッダ圧縮辞書等である。通信装置101とサーバ102とは、ヘッダ圧縮の辞書として、予め設定してあるものを利用してもよいし、通信開始後の手順によって追記、更新された辞書を利用してもよい。また、本実施形態では、通信装置101とサーバ102とは、過去の設定情報を適用するものとして説明を行ったが、これに限るものではない。例えば、通信装置101とサーバ102とは、それぞれ別の装置上のデータベースに保存してある予め決められた設定情報をダウンロードして適用してもよい。
【0024】
図7は、サーバ102が通信装置101と通信を開始する際の情報処理の一例を示すフローチャートである。
S501において、通信部801は、通信装置101とTCP接続又はTLS接続を行い、S502に進む。
S502において、判断部805は、通信装置101からClient connection prefaceを受信したか否かの判断を行う。判断部805は、Client connection prefaceを受信したと判断した場合(S502においてYes)、S503に進む。一方、判断部805は、Client connection prefaceを受信しなかったと判断した場合(S502においてNo)、S507に進む。
【0025】
S503において、判断部805は、通信装置101の識別子(IPアドレスポート番号、URI、session−ID等)から、データ保存部803に識別子に対応したエントリがあるか否かによって、以下の判断を行う。即ち、判断部805は、前記エントリがあるか否かに基づいて、通信処理の設定をスキップできる通信相手か否かの判断を行う。本実施形態では、判断部805は、データ保存部803にエントリが保持されているか否かをチェックしていたが、これに限らず、ネットワークを介した別の装置上のデータベースにエントリが保持されているか否かをチェックするようにしてもよい。判断部805は、前記エントリがある場合、設定スキップ可能であると判断し(S503においてYes)、S504に進み、前記エントリがない場合、設定スキップ可能でないと判断し(S503においてNo)、S516に進む。
【0026】
S504において、設定部804は、データ保存部803の前記エントリに基づき設定情報を適用し、S505に進む。本実施形態では設定部804は、過去の設定情報を適用するものとして説明を行うが、これに限らず、別の装置上のデータベースに保存してある予め決められた設定情報をダウンロードして適用してもよい。
S505において、通信手順スキップ部807は、SETTINGSフレームによる通信情報の設定のフェーズをスキップし、S506に進む。実施形態では、通信手順スキップ部807は、全ての設定フェーズをスキップするものとして説明を行ったが、これに限らず、設定された一部の設定フェーズのみをスキップするようにしてもよい。
S506において、応答部802は、通信装置101にClient connection prefaceの受信を示すHTTP 200 OKの応答を返信し、図7に示す処理を終了する。
【0027】
S516において、応答部802は、設定のスキップができないクライアントである場合、エラーメッセージ(Invalid method)を通信装置101に返信し、S507に進む。又は、S516において、応答部802は、サーバ102の電源オンオフ等によりエントリが存在しない場合、エラーメッセージ(Internal server error)を通信装置101に送信し、S507に進む。
S507において、判断部805は、プロトコルアップグレードの要求を受信したか否かを判断する。判断部805は、プロトコルアップグレードの要求を受信したと判断すると(S507においてYes)、S508に進み、プロトコルアップグレードの要求を受信しなかったと判断すると(S507においてNo)、S515に進む。
S508において、通信手順切り替え部806は、プロトコルのアップグレード方法を確認する。通信手順切り替え部806は、通信装置101から受信した内容等に基づいて、プロトコルのアップグレード方法を判断する。通信手順切り替え部806は、TLS ALPNフィールドを用いたClient Helloでプロトコルアップグレードを行うと判断した場合(S508においてClient Hello ALPN)、S509に進む。通信手順切り替え部806は、HTTP/1.1 Upgradeヘッダによる切り替えと判断した場合(S508においてプロトコルアップグレードヘッダ)、S511に進む。
【0028】
S509において、通信手順切り替え部806は、TLSのClient HelloメッセージのALPNフィールドを利用したプロトコルアップグレードの要求を通信装置101より受信し、S510に進む。
S510において、応答部802は、TLS ALPNフィールドを用いたServer Helloでプロトコルのアップグレードを受け付けたことを通信装置101に返信し、S513に進む。
【0029】
S511において、通信手順切り替え部806は、HTTP/1.1 Upgradeヘッダを通信装置101より受信し、S512に進む。
S512において、応答部802は、HTTP 101 Switching Protocolsでプロトコルのアップグレードを受け付けたことを通信装置101に返信し、S513に進む。
S513において、通信部201は、SETTINGSフレームの交換を行い、通信の設定情報を受信し、S514に進む。
S514において、データ保存部803は、交換した設定情報を保存し、図7に示す処理を終了する。
一方、S515において、通信部201は、HTTP/1.1通信を継続し、図7に示す処理を終了する。
【0030】
通信装置101とサーバ102とにおける設定情報は、初期設定以後、SETTINGSフレームの交換や辞書の追加に応じて更新されてもよい。これによって、通信装置101とサーバ102とは、同じ設定情報を共有することができる。また、通信装置101又はサーバ102が、別の装置に設定情報をアップロードし、再接続時に通信装置101とサーバ102とがダウンロードして利用してもよい。これにより、通信装置101とサーバ102とはエントリを保持しなくてよくなり、リソースの使用を軽減することができる。
【0031】
図8は、通信装置101の設定情報のエントリを示す図である。
ここでのサーバの識別子は、session−ID、IPアドレス及びポート番号、URI等である。これに限るものではなく、通信相手を一意に指定できればいいため、例えば、SIP URI等の他の識別子であってもよい。
設定情報としては、ヘッダのテーブルサイズ、サーバプッシュの有無、最大ストリーム数、初期Window Size、データ圧縮の有無、ヘッダ圧縮の辞書、暗号通信の有無等である。本実施形態では、SETTINGSフレームで交換する情報のみを設定情報として記憶するものとして説明を行ったが、これに限らず、他のレイヤの設定情報等を利用してもよい。例えば、MTUサイズ、TCPのWindow Size、アプリケーションのプロトコル情報、アプリケーションの設定情報等である。
尚、説明の簡略化のため省略しているが、サーバ102でも図8と同様のエントリを保持する。その場合、サーバの識別子としている部分は通信装置101の識別子となる。通信装置101の識別子は、接続要求元の通信装置の識別情報の一例である。
【0032】
図9は、通信装置101とサーバ102とがHTTP/1.1通信の途中からHTTP/2通信に変更する場合の情報処理の一例を示すシーケンス図である。
M701において、通信装置101は、サーバ102にTCP接続を行い、HTTP/1.1による通信を開始する。
M702において、サーバ102は、通信装置101のTCP接続を受け付け、HTTP/1.1による通信を開始する。
これ以後、通信装置101とサーバ102とはHTTP/1.1通信を行う(M706)。
通信装置101は、HTTP/1.1を利用していたが、アプリケーションの決定によりHTTP/2通信に変更する。
M703において、通信装置101は、HTTP/2にプロトコルをアップグレードするために、サーバ102にHTTP/1.lのupgrade headerを送信する。
M704において、サーバ102は、通信装置101からのプロトコルのアップグレードを受け付けると、HTTP 101 Switching Protocolsを返信する。
M703〜M704において、通信装置101とサーバ102とは通信手順をスキップするか否かの判断を行い、スキップする場合、設定情報を適用した上でHTTP/2通信を行う(M705)。
【0033】
このように、本実施形態の処理は、通信の途中からのプロトコルのアップグレードにも適用できる。HTTP/1.1とHTTP/2とでは、HTTP/1.1に戻すことはできないが、プロトコルをダウングレード(変更)できる場合には、プロトコルの変更処理にかかる処理を低減でき、待ち時間を低減できるようになる。
また、通信装置101とサーバ102との間で最適なパラメータを予め設定、又は、設定情報用のデータベース上に設置しておけば、煩雑なプロトコル開始時の設定処理を低減することができる。例えば、通信装置101とサーバ102とがカメラのような組み込み機器の場合、通信の接続と切断とが頻繁に発生する。このとき、通信装置101とサーバ102との通信手順やパラメータ設定の処理回数が多くなるため、更に上述した実施形態による処理の効果が見込める。
【0034】
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0035】
以上、上述した各実施形態によれば、デバイスが接続したことがある接続先に対して、再接続時の設定処理を低減することができる。また、デバイスが再接続するときのデータ送信開始処理までの時間を短縮することができる。また、通信の接続に係る時間を短縮することができる。
【符号の説明】
【0036】
10 CPU、20 CPU、101 通信装置、102 サーバ
図1
図2
図3
図4
図5
図6
図7
図8
図9