JP2016213670A - 通信装置、通信システム、通信方法及びプログラム - Google Patents

通信装置、通信システム、通信方法及びプログラム Download PDF

Info

Publication number
JP2016213670A
JP2016213670A JP2015095654A JP2015095654A JP2016213670A JP 2016213670 A JP2016213670 A JP 2016213670A JP 2015095654 A JP2015095654 A JP 2015095654A JP 2015095654 A JP2015095654 A JP 2015095654A JP 2016213670 A JP2016213670 A JP 2016213670A
Authority
JP
Japan
Prior art keywords
communication
communication device
information
parameter
determination unit
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
JP2015095654A
Other languages
English (en)
Other versions
JP2016213670A5 (ja
JP6548445B2 (ja
Inventor
幸夫 沼上
Yukio Numagami
幸夫 沼上
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2015095654A priority Critical patent/JP6548445B2/ja
Priority to US15/142,602 priority patent/US10110642B2/en
Publication of JP2016213670A publication Critical patent/JP2016213670A/ja
Publication of JP2016213670A5 publication Critical patent/JP2016213670A5/ja
Application granted granted Critical
Publication of JP6548445B2 publication Critical patent/JP6548445B2/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
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/19Connection re-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Multimedia (AREA)
  • Communication Control (AREA)
  • Telephonic Communication Services (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】再度通信路を確立する場合の通信にかかる時間を短縮する。【解決手段】他の通信装置との間で通信路としてのコネクションを確立し、確立した前記コネクション上に通信路であるストリームを生成し、生成した前記ストリーム上で前記他の通信装置と通信を行う通信装置であって、前記他の通信装置との間で再度通信路を確立する場合に利用可能な第1の通信パラメタの情報を、新規ストリームの生成をしないことを示すメッセージに追加する追加手段と、前記追加手段により前記第1の通信パラメタの情報を追加された前記メッセージを前記他の通信装置に送信する送信手段と、を有する。【選択図】図8

Description

本発明は、通信装置、通信システム、通信方法及びプログラムに関する。
HTTP(Hyper Text Transfer Protocol)、UDP(User Datagram Protocol)等のプロトコル(通信規約)が、インターネット標準技術として一般に広く利用されている。プロトコルの中には、標準化策定が進められているHTTPの新しいバージョンであるHTTP/2のように、通信開始時に、既存のプロトコルのバージョンからアップグレードする処理を行うものがある。アップグレードの際、プロトコルの仕様で規定された通信パラメタを通信装置間で交換し、プロトコルの通信で必要となる通信パラメタを互いに設定する。
一方、特許文献1に示されているように、複数のTCP接続を確立し、複数のHTTP通信を並行して行うことによって、通信速度を向上させる方法が提案されている。
特開2012−95098号公報
特許文献1等の従来技術では、通信路を再度確立する際に、通信に利用されるプロトコルのアップグレード処理を再度行う必要があり、通信路の再度の確立に時間がかかるという課題があった。例えば、HTTP/2における通信路としてのコネクションを確立した後に通信エラーが発生し、再度、コネクションを確立する場合、プロトコルのアップグレードの処理からやり直すと、再度の通信路の確立に時間がかかるという課題があった。
また、プロトコルのアップグレード処理中の通信パラメタの交換の際、通信相手の通信装置がそのプロトコルの仕様に準拠しない不適正な値、又は通信装置自身が許容できない値の通信パラメタを送信してくる可能性がある。このとき、通信装置は、接続エラーが発生したとして、通信相手の通信装置に通信を終了する旨を示す信号を送信し、その後にそのプロトコルによる通信を終了させなければならない。しかし、通信相手の通信装置が再接続を試みて、新たに、そのプロトコルによる通信を開始する場合、再び不適正な値、又は許容できない値の通信パラメタを送信してしまい、正常な通信を開始できず、相互接続性が低下するという課題があった。
そこで、本発明は、再度通信路を確立する場合の通信にかかる時間を短縮することを目的とする。
そこで、本発明の通信装置は、他の通信装置との間で通信路としてのコネクションを確立し、確立した前記コネクション上に通信路であるストリームを生成し、生成した前記ストリーム上で前記他の通信装置と通信を行う通信装置であって、前記他の通信装置との間で再度通信路を確立する場合に利用可能な第1の通信パラメタの情報を、新規ストリームの生成をしないことを示すメッセージに追加する追加手段と、前記追加手段により前記第1の通信パラメタの情報を追加された前記メッセージを前記他の通信装置に送信する送信手段と、を有する。
本発明によれば、再度通信路を確立する場合の通信にかかる時間を短縮することができる。
通信システムのシステム構成の一例を示す図である。 通信装置のハードウェア構成の一例を示す図である。 通信装置の機能構成の一例を示す図である。 通信装置の機能構成の一例を示す図である。 GOAWAYフレームのデータ構造の一例を示す図である。 通信装置間のHTTP通信処理の一例を示すシーケンス図である。 通信装置間のHTTP通信処理の一例を示すシーケンス図である。 GOAWAYフレーム送信処理の一例を示すフローチャートである。 GOAWAYフレームに追加する通信パラメタの決定処理の一例を示すフローチャートである。 GOAWAYフレームに追加するSETTINGSパラメタの決定処理の一例を示すフローチャートである。 GOAWAYフレーム受信の際の処理の一例を示すフローチャートである。 SETTINGSフレーム送信の際の処理の一例を示すフローチャートである。 通信装置の機能構成の一例を示す図である。 通信装置間のHTTP通信処理の一例を示すシーケンス図である。 GOAWAYフレーム送信の際の処理の一例を示すフローチャートである。 通信関係の有無を判定する処理の一例を示すフローチャートである。
以下、本発明の実施形態について図面に基づいて説明する。
<実施形態1>
(システム構成)
図1は、通信システムのシステム構成の一例を示す図である。
通信装置10は、本実施形態におけるクライアントとしての通信装置であり、IEEE802.11等に則った無線LAN(Local Area Network)通信機能を有する。通信装置10は、デジタルカメラ、デジタルビデオカメラ、携帯電話、スマートフォン等である。また、通信装置10は、PC、ノートPC、サーバ、等の情報処理装置であってもよい。
本実施形態では、通信装置10は、無線LAN通信機能を用いて他の装置と通信を行うこととする。しかし、通信装置10は、Bluetooth(登録商標)、ZigBee(登録商標)、RFID、等の他の無線LAN通信機能、を利用して他の装置と通信してもよい。また、通信装置10は、Ethernet(登録商標)等の有線LAN通信機能、又は無線LAN通信機能と有線LAN通信機能との組合せを利用して他の装置と通信を行うこととしてもよい。
通信装置20は、本実施形態におけるサーバとしての通信装置であり、通信装置10と無線LANを介して接続される。本実施形態では、通信装置10と通信装置20とは、HTTP/2規格に則ったHTTP通信を行うこととする。しかし、通信装置10と通信装置20とは、通信開始の際にプロトコルのアップグレードを実行し、接続エラーが起こった際に通信相手に通信の終了を示す信号を送信するプロトコルであるならば、他のプロトコルに則った通信を行うこととしてもよい。
本実施形態では、通信装置20は、直接無線LANを介して通信装置10と接続されることとするが、無線アクセスポイントを経由して通信装置10と接続されることとしてもよい。また、通信装置20は、ネットワークスイッチやルータ等の中継装置を経由して通信装置10と有線LAN接続されることとしてもよい。
さらに、本実施形態では、通信装置10と通信装置20とは、同一LANを介して相互に接続されることとする。しかし、通信装置10と通信装置20とは、WAN(Wide Area Network)、インターネット、携帯電話等の公衆無線回線等を介して相互に接続されることとしてもよい。
図2は、通信装置10のハードウェア構成の一例を示す図である。通信装置20も通信装置10と同じハードウェア構成であるとする。通信装置10は、CPU(Central Processing Unit)201、ROM(Read Only Memory)202、RAM(Random Access Memory)203、補助記憶装置204を含む。また、通信装置10は、表示部205、操作部206、無線通信部207を含む。また、アンテナ208は、無線通信部207に接続される。
CPU201は、通信装置10の全体の動作を制御する。ROM202は、変更を必要としないプログラムやパラメタ等を記憶する。RAM203は、補助記憶装置204等から供給されるプログラムやデータを記憶し、CPU201のワークエリアとしても機能する。補助記憶装置204は、画像コンテンツや映像コンテンツ、各種設定ファイル、各種設定された閾値等のデータを記憶する。
表示部205は、ユーザが通信装置10を操作するためのGUI(Graphical User Interface)を表示する。操作部206は、ユーザが通信装置10を操作するための入力インタフェースである。無線通信部207は、アンテナ208を制御し、無線アクセスポイント30、又は通信装置20との無線LAN通信を行う。
CPU201が、ROM202又は補助記憶装置204に記憶されたプログラムに基づき処理を実行することによって、後述する通信装置10の機能、後述するシーケンス図の処理及び後述するフローチャートの処理が実現される。
通信装置20のCPUが、通信装置20のROM又は補助記憶装置に記憶されたプログラムに基づき処理を実行することによって、後述する通信装置20の機能、後述するシーケンス図の処理及び後述するフローチャートの処理が実現される。
(機能構成)
図3は、通信装置20の機能構成の一例を示す図である。
通信装置20は、制御部301、無線LAN通信制御部302、表示制御部303、操作制御部304、記憶制御部305、TCP/IP通信制御部306、HTTP通信制御部307、通信パラメタ決定部308を含む。また、通信装置20は、通信パラメタ追加部309、コネクションエラー判断部310を含む。
制御部301は、通信装置20が備える個々の機能全体を制御する。無線LAN通信制御部302は、通信装置20の通信部を制御し、無線LAN通信方式での無線アクセスポイント又は通信装置10との通信を制御する。表示制御部303は、通信装置20の表示部を制御し、GUIの表示制御を行う。操作制御部304は、通信装置20の操作部を制御し、通信装置20の操作部を介したユーザによる操作入力の制御を行う。記憶制御部305は、通信装置20のRAM又は通信装置20の補助記憶装置を制御し、処理データ、画像コンテンツ、映像コンテンツ等のデータを記憶又は削除する。
TCP/IP通信制御部306は、無線LAN通信制御部302を介して、通信装置10との間でTCP(Transmission Control Protocol)/IP(Internet Protocol)方式の通信を行う。TCP通信の接続処理は、通信装置10と通信装置20との間で通信路としてのコネクションの確立処理の一例である。本実施形態では、通信装置10と通信装置20とは、TCP/IPによる通信を行うこととするが、UDP等を利用する通信を行うこととしてもよい。
HTTP通信制御部307は、TCP/IP通信制御部306を介して、通信装置10との間でHTTP/2方式の通信を行う。また、HTTP通信制御部307は、通信装置10との間でTLS(Transport Layer Security)を利用したHTTPS(HTTP Secure)方式の通信を行うこともできる。
通信パラメタ決定部308は、HTTP通信制御部307を介して、通信装置10に対して送信するGOAWAYフレーム中に、通信装置10とのHTTP通信接続に必要となる通信パラメタを追加するか否かを判定する。
例えば、通信装置10から送信されたSETTINGSフレームに含まれる通信パラメタの値がHTTP/2の仕様に準拠しない不適正な値(以下では、不適正パラメタ値)、又は通信装置20が許容できない値(以下では、非許容パラメタ値)であったとする。その場合、通信パラメタ決定部308は、通信装置10とのHTTP通信接続に必要となる通信パラメタをGOAWAYフレームに追加すると判定する。通信パラメタ決定部308は、通信パラメタを追加すると判定した場合、追加する通信パラメタの内容を決定する。
通信パラメタ追加部309は、HTTP通信制御部307及び通信パラメタ決定部308を介して、通信パラメタ決定部308により決定された通信パラメタをGOAWAYフレーム中に追加する。
コネクションエラー判断部310は、HTTP通信制御部307を介して、通信装置10とのHTTP通信中に検知されたコネクションエラーの要因を判定し、その要因の内容に応じて、GOAWAYフレームに追加する通信パラメタを決定する。コネクションエラーは、接続エラーの一例である。
図4は、通信装置10の機能構成の一例を示す図である。機能構成要素401〜407は、機能構成要素301〜307と同様である。
通信パラメタ決定部408は、HTTP通信制御部407及び通信パラメタ取得部409を介して、通信装置20とのHTTP通信の接続に必要な通信パラメタを決定する。
通信パラメタ取得部409は、HTTP通信制御部407を介して、通信装置20から受信したGOAWAYフレーム中に含まれる通信パラメタを取得する。
(GOAWAYフレームデータ構造)
図5は、GOAWAYフレームのデータ構造の一例を示す図である。GOAWAYフレームは、新規ストリームの生成をしないことを通信相手に通知するためのメッセージである。本実施形態では、通信の終了を指示するための終了メッセージとしてGOAWAYフレームが用いられる。ストリームとは、通信装置間で確立されたTCP通信の接続等のコネクション上における論理的な通信路のことである。通信装置10、通信装置20は、確立されたTCP通信の接続等のコネクション上にストリームを生成し、生成したストリーム上でメッセージをやり取りすることにより互いに通信を行う。
GOAWAYフレーム500は、GOAWAYフレームのデータ全体を示す。
最終ストリームID501は、通信装置10と通信装置20とのHTTP通信において、最後に使用されたストリームのIDである。
エラーコード502は、コネクションエラーが発生したエラーの要因を示す情報である。
追加デバッグ情報503は、GOAWAYフレーム内にHTTP/2プロトコル規格外で追加される情報である。本実施形態において、追加デバッグ情報503は、エラー発生ストリームID504、エラー詳細要因コード505、及び通信パラメタ506を含む。本実施形態において、通信パラメタ追加部309は、追加デバッグ情報503に、通信パラメタを追加する。
エラー発生ストリームID504は、コネクションエラーを発生させる要因となったストリームに関するIDである。
エラー詳細要因コード505は、コネクションエラーが発生したエラーの詳細な要因を示す情報である。エラー詳細要因コード505の内容は、エラーコード502よりも詳細であるとする。
通信パラメタ506は、通信装置10が通信装置20に再度HTTP通信接続を実施する際に必要となる通信パラメタである。通信パラメタ506は、通信の種別507、通信パラメタの名称508、通信パラメタの値509を含む。
(通信処理)
以下、本実施形態における通信装置10と通信装置20との間における通信処理について、詳細に説明する。
(通信接続〜切断〜再接続の処理)
図6は、通信装置10と通信装置20との間のHTTP通信処理の一例を示すシーケンス図である。
M601において、HTTP通信制御部407は、通信装置20とHTTP通信接続を行う。M601の処理の詳細については、図7で後述する。
M602において、HTTP通信制御部407は、通信装置20に対して、SETTINGSフレームを送信する。その際、HTTP通信制御部407は、SETTINGSフレームのSETTINGSパラメタとして不適正パラメタ値、又は非許容パラメタ値を送信することとする。SETTINGSパラメタは、通信パラメタの一例である。
SETTINGSパラメタは、送信者が許可する同時ストリームの最大数を示すSETTINGS_MAX_CONCURRENT_STREAMS、送信者の初期ウィンドウサイズを示すSETTINGS_INITIAL_WINDOW_SIZEを含む。また、SETTINGSパラメタは、ヘッダリストの最大サイズを示すSETTINGS_MAX_HEADER_LIST_SIZE等を含む。SETTINGSパラメタは、HTTP/2の仕様で定義された他のSETTINGSパラメタ、HTTP/2の仕様で定義されない独自のSETTINGSパラメタ等であってもよい。
M603において、HTTP通信制御部307は、通信装置10からSETTINGSフレームを受信し、SETTINGSパラメタを確認する。HTTP通信制御部307は、SETTINGSパラメタが不適正パラメタ値、又は非許容パラメタ値である場合、コネクションエラーを発生させる。
M604において、通信パラメタ決定部308は、HTTP通信制御部307により発生されたコネクションエラーの要因を特定する。そして、通信パラメタ決定部308は、特定した要因に基づいて、コネクションエラーとならないHTTP/2の仕様に準拠した適正なSETTINGSパラメタ又は通信装置20が許容可能なSETTINGSパラメタを決定する。即ち、通信パラメタ決定部308は、再度の通信路の確立に利用可能な通信パラメタ及び、規格に準拠した通信パラメタのうち少なくとも何れか一つを、通信装置10との間で再度通信路を確立する場合に利用可能な通信パラメタとして決定する。
M605において、通信パラメタ追加部309は、通信装置10に対して送信するGOAWAYフレームに、M604で決定したSETTINGSパラメタの値を、追加デバッグ情報503内の通信パラメタ506として追加する。
M606において、HTTP通信制御部307は、通信装置10に対して、M605で通信パラメタが追加されたGOAWAYフレームを送信する。
M607において、通信パラメタ取得部409は、HTTP通信制御部407を介して通信装置20から受信したGOAWAYフレームを受信し、受信したGOAWAYフレーム中の追加デバッグ情報503に含まれている通信パラメタ506を取得する。
M608において、HTTP通信制御部307とHTTP通信制御部407とは、HTTP通信接続を終了する。より具体的には、HTTP通信制御部307とHTTP通信制御部407とは、TCP接続を切断する。
M609の処理は、M601の処理と同様である。
M610において、通信パラメタ決定部408は、前回のHTTP通信接続の終了の際に受信したGOAWAYフレーム中の通信パラメタに基づきSETTINGSパラメタを決定する。決定されたSETTINGSパラメタは、通信装置20から受信した、HTTP/2の仕様に準拠した値又は通信装置20が許容可能な値である。
M611において、HTTP通信制御部407は、通信装置20に対して、M610で決定されたSETTINGSパラメタを含むSETTINGSフレーム(第2メッセージ)を送信する。
M612において、HTTP通信制御部307は、通信装置10からSETTINGSフレームを受信し、受信したSETTINGSフレームに含まれるSETTINGSパラメタが適正な値であるかどうか確認する。
M613において、HTTP通信制御部307は、M612で受信したSETTINGSフレームに含まれるSETTINGSパラメタが適正な値であると確認した場合、以下の処理を行う。即ち、HTTP通信制御部307は、通信装置10に対して、M612で受信したSETTINGSパラメタが適正な値であることを確認したことを示すACKフラグを設定したSETTINGSフレームを送信する。
(HTTP通信接続シーケンス)
図7は、通信装置10と通信装置20とのHTTP通信処理の一例を示すシーケンス図である。図7の処理は、M601、及びM609の処理の詳細を示すものである。
M701において、TCP/IP通信制御部406は、通信装置20とTCP通信接続を行う。
M702において、HTTP通信制御部407は、HTTPS通信を行う場合、通信装置20とTLS(Transport Layer Security)通信接続を行う。HTTP通信制御部407は、TLS通信接続中に、ALPN(Application Layer Protocol Negotiation)によりHTTP/2通信のネゴシエーションを行う。
M703において、HTTP通信制御部407は、HTTPS通信を行わない場合、通信装置20に対して、HTTP/2アップグレード要求を送信する。
M704において、HTTP通信制御部307は、M703で送信されたHTTP/2アップグレード要求に応じて、通信装置10にHTTP/2アップグレード応答を送信する。M704の処理以降、通信装置10と通信装置20とは、HTTP/2通信を開始する。
M705において、HTTP通信制御部407は、通信装置20に対して、クライアントコネクションプリフェイスを送信する。クライアントコネクションプリフェイスは、PRIメソッドと、SETTINGSフレームと、を含む。
M706において、HTTP通信制御部307は、通信装置10に対して、サーバコネクションプリフェイスを送信する。サーバコネクションプリフェイスは、空の可能性があるSETTINGSフレームだけで構成される。
(通信処理)
以下、本実施形態における通信装置10と通信装置20との間の通信処理について、図3、図4に示す機能モジュール構成を用いて詳細に説明する。
(GOAWAYフレーム送信処理)
図8は、通信装置20によるGOAWAYフレーム送信処理の一例を示すフローチャートである。なお、通信装置10もGOAWAYフレームを送信することが可能である。
S801において、HTTP通信制御部307は、TCP/IP通信制御部306を介して、通信装置10からSETTINGSフレームを受信する。
S802において、HTTP通信制御部307は、S801で受信したSETTINGSフレームからSETTINGSパラメタを取得する。
S803において、HTTP通信制御部307は、S801で受信したSETTINGSフレームに基づいて、コネクションエラーを発生させるか否かを判定する。通信装置20は、予め通信装置20の補助記憶装置等に適正なSETTINGSフレームの情報(フレームサイズ、パディング長、SETTINGSパラメタ等の値)を設定ファイル等として記憶しているものとする。
例えば、HTTP通信制御部307は、通信装置20の補助記憶装置に記憶された設定ファイルから適正なSETTINGSフレームの情報を読み出し、以下の処理を行う。即ち、HTTP通信制御部307は、読み出した情報に基づいて、受信したSETTINGSフレームのフレームサイズ、パディング長、SETTINGSパラメタが適正な値か否かを判定する。そして、受信したSETTINGSフレームのフレームサイズ、パディング長、SETTINGSパラメタが適正な値ではないと判定した場合、コネクションエラーを発生させることとする。
HTTP通信制御部307は、コネクションエラーを発生させると判定した場合、S804の処理に進み、コネクションエラーを発生させないと判定した場合、S807の処理に進む。
S804において、通信パラメタ決定部308は、GOAWAYフレームに追加する通信パラメタを決定する。S804の処理の詳細は、図9で後述する。
S805において、通信パラメタ追加部309は、S804で決定した通信パラメタを、GOAWAYフレームに追加する。
S806において、HTTP通信制御部307は、通信装置10に対して、S805で通信パラメタを追加されたGOAWAYフレームを送信して、処理を終了する。
S807において、HTTP通信制御部307は、通信装置10に対して、受信したSETTINGSパラメタが適正な値であることを確認したことを示すACKフラグを設定したSETTINGSフレームを送信する。
S808において、HTTP通信制御部307は、管理する通信装置10に関する既存のSETTINGSパラメタを、S802で取得したSETTINGSパラメタの値で置き換えて、処理を終了する。
(通信パラメタ決定処理)
図9は、通信装置20によるGOAWAYフレームに追加する通信パラメタの決定処理の一例を示すフローチャートである。図9の処理は、S804の処理の詳細である。
S901において、コネクションエラー判断部310は、コネクションエラーの情報を取得する。例えば、コネクションエラー判断部310は、HTTP通信制御部307に対して、S803において発生したエラー要因を問い合わせることで、コネクションエラーの情報を取得することができる。コネクションエラー判断部310は、例えば、HTTP通信制御部307からS801で受信したSETTINGSフレームの情報を取得する。
S902において、コネクションエラー判断部310は、S901で取得したコネクションエラーの情報に基づいて、以下の処理を行う。即ち、コネクションエラー判断部310は、コネクションエラーの要因がS802で取得されたSETTINGSパラメタが不適正パラメタ値、又は非許容パラメタ値であることか否かを判定する処理を行う。コネクションエラー判断部310は、例えば、通信装置20の補助記憶装置に記憶された設定ファイルから適正なSETTINGSフレームの情報を取得する。そして、コネクションエラー判断部310は、取得した適正なSETTINGSフレームの情報に基づいて、S901で取得したコネクションエラーの情報に含まれるSETTINGSパラメタが適正な値又は許容されている値か否かを判定する。
コネクションエラー判断部310は、コネクションエラーの要因を、取得されたSETTINGSパラメタが不適正パラメタ値、又は非許容パラメタ値であることと判定した場合、S903の処理に進む。コネクションエラー判断部310は、コネクションエラーの要因を、取得されたSETTINGSパラメタが不適正パラメタ値、又は非許容パラメタ値であることではないと判定した場合、S904の処理に進む。
S903において、通信パラメタ決定部308は、HTTP/2の仕様に準拠した値、又は通信装置20が許容可能な値を持つSETTINGSパラメタを決定する。そして、通信パラメタ決定部308は、決定したSETTINGSパラメタをGOAWAYフレームに追加する通信パラメタとして決定して、図9の処理を終了する。S903の処理の詳細は、図10で後述する。
S904において、コネクションエラー判断部310は、S901で取得した情報に基づいて、コネクションエラーの要因がS801で受信したSETTINGSフレームのフレームサイズが不適正な値であることか否かを判定する。コネクションエラー判断部310は、例えば、通信装置20の補助記憶装置に記憶された設定ファイルから適正なSETTINGSフレームの情報を取得する。そして、コネクションエラー判断部310は、取得した適正なSETTINGSフレームの情報に基づいて、S901で取得したコネクションエラーの情報に含まれるSETTINGSフレームのフレームサイズが適正な値又は許容されている値か否かを判定する。
コネクションエラー判断部310は、コネクションエラーの要因を、S801で受信したSETTINGSフレームのフレームサイズが不適正な値であることと判定した場合、S905の処理に進む。コネクションエラー判断部310は、コネクションエラーの要因を、S801で受信したSETTINGSフレームのフレームサイズが不適正な値であることではないと判定した場合、S906の処理に進む。
S905において、通信パラメタ決定部308は、HTTP/2の仕様に準拠した値、又は通信装置20が許容可能な値のフレームサイズを決定する。そして、通信パラメタ決定部308は、決定したフレームサイズをGOAWAYフレームに追加する通信パラメタとして決定して、図9の処理を終了する。
S906において、コネクションエラー判断部310は、S901で取得した情報に基づいて、コネクションエラーの要因がS801で受信したSETTINGSフレームのパディング長が不適正な値であることか否かを判定する。コネクションエラー判断部310は、例えば、通信装置20の補助記憶装置に記憶された設定ファイルから適正なSETTINGSフレームの情報を取得する。そして、コネクションエラー判断部310は、取得した情報に基づいて、S901で取得したコネクションエラーの情報に含まれるSETTINGSフレームのパディング長が適正な値又は許容されている値か否かを判定する。
コネクションエラー判断部310は、コネクションエラーの要因を、S801で受信したSETTINGSフレームのパディング長が不適正な値であることと判定した場合、S907の処理に進む。コネクションエラー判断部310は、コネクションエラーの要因を、S801で受信したSETTINGSフレームのパディング長が不適正な値であることではないと判定した場合、S908の処理に進む。
S907において、通信パラメタ決定部308は、HTTP/2の仕様に準拠した値、又は通信装置20が許容可能な値のパディング長を決定する。そして、通信パラメタ決定部308は、決定したパディング長をGOAWAYフレームに追加する通信パラメタとして決定して、図9の処理を終了する。
S908において、通信パラメタ決定部308は、GOAWAYフレームに追加する通信パラメタはないと判定し、図9の処理を終了する。
(SETTINGSパラメタ決定処理)
図10は、通信装置20によるGOAWAYフレームに追加するSETTINGSパラメタの決定処理の一例を示すフローチャートである。図10の処理は、S903の処理の詳細を表す。
S1001において、コネクションエラー判断部310は、S901で取得した情報に基づいて、以下の処理を行う。即ち、コネクションエラー判断部310は、コネクションエラーの要因が、SETTINGSパラメタの同時ストリームの最大数が不適正パラメタ値、又は非許容パラメタ値であることか否かを判定する。コネクションエラー判断部310は、例えば、通信装置20の補助記憶装置に記憶された設定ファイルから適正なSETTINGSフレームの情報を取得する。そして、コネクションエラー判断部310は、取得した情報に基づいて、S901で取得したコネクションエラーの情報に含まれるSETTINGSパラメタの同時ストリームの最大数が適正な値又は許容されている値か否かを判定する。
コネクションエラー判断部310は、コネクションエラーの要因を、SETTINGSパラメタの同時ストリームの最大数が不適正パラメタ値、又は非許容パラメタ値であることと判定した場合、S1002の処理に進む。コネクションエラー判断部310は、コネクションエラーの要因を、SETTINGSパラメタの同時ストリームの最大数が不適正パラメタ値、又は非許容パラメタ値であることではないと判定した場合、S1003の処理に進む。SETTINGSパラメタに含まれるSETTINGS_MAX_CONCURRENT_STREAMSは、同時ストリームの最大数を示す。
S1002において、通信パラメタ決定部308は、HTTP/2の仕様に準拠した値、又は通信装置20が許容可能な値の同時ストリームの最大数を決定して、図10の処理を終了する。
S1003において、コネクションエラー判断部310は、S901で取得した情報に基づいて、コネクションエラーの要因が、SETTINGSパラメタの初期ウィンドウサイズが不適正パラメタ値、又は非許容パラメタ値であることか否かを判定する。コネクションエラー判断部310は、例えば、通信装置20の補助記憶装置に記憶された設定ファイルから適正なSETTINGSフレームの情報を取得する。そして、コネクションエラー判断部310は、取得した情報に基づいて、S901で取得したコネクションエラーの情報に含まれるSETTINGSパラメタの初期ウィンドウサイズが適正な値又は許容されている値か否かを判定する。
コネクションエラー判断部310は、特定した要因が、SETTINGSパラメタの初期ウィンドウサイズが不適正パラメタ値、又は非許容パラメタ値であることと判定した場合、S1004の処理に進む。コネクションエラー判断部310は、特定した要因が、SETTINGSパラメタの初期ウィンドウサイズが不適正パラメタ値、又は非許容パラメタ値であることではないと判定した場合、S1005の処理に進む。SETTINGSパラメタに含まれるSETTINGS_INITIAL_WINDOW_SIZEは、初期ウィンドウサイズを示す。
S1004において、通信パラメタ決定部308は、HTTP/2の仕様に準拠した値、又は通信装置20が許容可能な値の初期ウィンドウサイズを決定して、図10の処理を終了する。
S1005において、コネクションエラー判断部310は、S901で取得した情報に基づいて、コネクションエラーの要因が、SETTINGSパラメタのヘッダリストの最大サイズが不適正パラメタ値、又は非許容パラメタ値であることか否かを判定する。コネクションエラー判断部310は、例えば、通信装置20の補助記憶装置に記憶された設定ファイルから適正なSETTINGSフレームの情報を取得する。そして、コネクションエラー判断部310は、取得した情報に基づいて、S901で取得したコネクションエラーの情報に含まれるSETTINGSパラメタのヘッダリストの最大サイズが適正な値又は許容されている値か否かを判定する。
コネクションエラー判断部310は、特定した要因が、SETTINGSパラメタのヘッダリストの最大サイズが不適正パラメタ値、又は非許容パラメタ値であることと判定した場合、S1006の処理に進む。コネクションエラー判断部310は、特定した要因が、SETTINGSパラメタのヘッダリストの最大サイズが不適正パラメタ値、又は非許容パラメタ値であることではないと判定した場合、S1007の処理に進む。SETTINGSパラメタに含まれるSETTINGS_MAX_HEADER_LIST_SIZEは、ヘッダリストの最大サイズを示す。
S1006において、通信パラメタ決定部308は、HTTP/2の仕様に準拠した値、又は通信装置20が許容可能な値のヘッダリストの最大サイズを決定して、図10の処理を終了する。
S1007において、通信パラメタ決定部308は、GOAWAYフレームに追加する通信パラメタはないと判定し、図10の処理を終了する。
(GOAWAYフレーム受信処理)
図11は、通信装置10によるGOAWAYフレーム受信の際の処理の一例を示すフローチャートである。なお通信装置20が通信装置10からGOAWAYフレームを受信する場合もある。
S1101において、HTTP通信制御部407は、S806で通信装置20により送信されたGOAWAYフレームを受信する。
S1102において、通信パラメタ取得部409は、S1101で受信したGOAWAYフレーム中に追加デバッグ情報が存在するか否かを判定する。通信パラメタ取得部409は、S1101で受信したGOAWAYフレーム中に追加デバッグ情報が存在すると判定した場合、S1103の処理に進み、追加デバッグ情報がないと判定した場合、図11の処理を終了する。
S1103において、通信パラメタ取得部409は、S1101で受信したGOAWAYフレーム中のエラーコードに基づいて、コネクションエラーが発生したか否かを判定する。通信パラメタ取得部409は、コネクションエラーが発生したと判定した場合、S1104の処理に進み、コネクションエラーが発生していないと判定した場合、S1105の処理に進む。
S1104において、通信パラメタ取得部409は、S1101で受信したGOAWAYフレームに含まれる追加デバッグ情報中のエラー発生ストリームID及びエラー詳細要因コードを取得する。
S1105において、通信パラメタ取得部409は、S1101で受信したGOAWAYフレームに含まれる追加デバッグ情報中の通信パラメタを取得し、記憶制御部405を介して、補助記憶装置204等に記憶する。通信パラメタ取得部409は、通信パラメタが複数存在する場合、すべての通信パラメタを取得し、記憶する。通信パラメタ取得部409は、S1105の処理を完了した後、図11の処理を終了する。
(SETTINGSフレーム送信処理)
図12は、通信装置10によるSETTINGSフレーム送信の際の処理の一例を示すフローチャートである。なお通信装置20もSETTINGSフレームを送信することは可能である。
S1201において、通信パラメタ決定部408は、前回のHTTP通信接続の終了前に受信したGOAWAYフレームから取得した通信パラメタが存在するか否か判定する。より具体的には、通信パラメタ決定部408は、補助記憶装置204等から、S1105で記憶された通信パラメタを検索する。通信パラメタ決定部408は、通信パラメタが存在すると判定した場合、S1202の処理に進み、通信パラメタが存在しないと判定した場合、S1204の処理に進む。
S1202において、通信パラメタ決定部408は、S1201で存在すると判定した通信パラメタに基づき、通信装置20に対して送信するSETTINGSフレームの通信パラメタを決定する。より具体的には、通信パラメタ決定部408は、通信装置20に対して送信するSETTINGSフレームのフレームサイズやパディング長等を、S1201で存在すると判定した通信パラメタのフレームサイズやパディング長等と同じ値にする。
S1203において、通信パラメタ決定部408は、S1202で決定した通信パラメタに基づき、通信装置20に対して送信するSETTINGSフレーム中のSETTINGSパラメタを決定する。
S1204において、HTTP通信制御部407は、通信装置20に対して、S1203でSETTINGSパラメタを決定したSETTINGSフレームを送信して、図12の処理を終了する。
以上、本実施形態の処理によれば、通信装置20は、通信装置10からSETTINGSフレームを受信し、SETTINGSパラメタの値を確認する。もし、SETTINGSパラメタの値が仕様に準拠しない不適正な値、又は通信装置20が許容できない値である場合、通信装置20は、コネクションエラーを発生させる。そして、通信装置20は、HTTP/2の仕様に準拠した適正な値、又は通信装置20が許容可能な値をもつSETTINGSパラメタを、GOAWAYフレームの追加デバッグ情報として、通信装置10に送信する。
そして、通信装置10は、通信装置20との再接続の際、受信したGOAWAYフレームに含まれるSETTINGSパラメタに基づいたSETTINGSフレームを通信装置20に送信する。それにより、通信装置10は、通信装置20との再接続の際に、再び不適正な又は通信装置20が許容できないSETTINGSパラメタを送信し、コネクションエラーを発生させることを回避することができる。即ち、通信装置10は、通信装置20と再接続する際のSETTINGSフレームの交換におけるエラーを回避することができる。よって、通信装置10と通信装置20との間で再度通信路を確立する場合の通信にかかる時間の短縮を図ることができ、更に、通信の相互接続性を向上させることができる。
また、本実施形態では、通信装置10、通信装置20は、通信パラメタとしてSETTINGSパラメタの内容を用いることとした。しかし、通信装置10、通信装置20は、他のフレームの内容やコネクション又はストリームに関する内容等、HTTP/2仕様で定義された通信パラメタの内容を用いてもよい。例えば、通信装置10、通信装置20は、共通フレームヘッダ内容(フレームサイズ、フレームタイプ、パディング)、ストリームの状態遷移、ストリームの優先度、ストリームの依存関係、等を通信パラメタとして利用することとしてもよい。
また、通信装置10、通信装置20は、HTTP/2仕様で定義されていない通信パラメタであっても、通信装置10と通信装置20との双方で利用可能な通信パラメタであれば、利用することができる。通信装置10、通信装置20は、例えば、無線LANやTCP/IP、TLS等の他の通信プロトコルで使用している通信パラメタを用いてもよい。それにより、通信装置10は、通信装置20と再接続する際、最適な通信パラメタを用いて通信を再開することができるため、通信装置10と通信装置20との通信速度や相互接続性をさらに向上させることができる。
また、本実施形態では、コネクションエラー判断部310は、図10の処理でSETTINGSパラメタにおける同時ストリームの最大数、初期ウィンドウサイズ、ヘッダリストの最大サイズの値が適正であるか又は許容されているか否かを判定した。しかし、コネクションエラー判断部310は、その他のパラメタの値が適正であるか又は許容されているか否かを判定してもよい。その他のパラメタには、例えば、ヘッダ圧縮テーブルの最大サイズ(HEADER_TABLE_SIZE)、最大フレームペイロードサイズ(MAX_FRAME_SIZE)等がある。また、コネクションエラー判断部310は、HTTP/2仕様で定義されていない独自のSETTINGSパラメタの値が適正であるか又は許容されているか否かを判定することとしてもよい。それにより、通信装置10と通信装置20とは、通信の相互接続性をさらに向上させることができる。
また、本実施形態では、通信パラメタ決定部308は、GOAWAYフレームに追加する通信パラメタとして、HTTP/2の仕様に準拠した値、又は通信装置20が許容可能な値を決定した。しかし、通信パラメタ決定部308は、例えば、通信装置10との通信で使用していた全て又は一部の通信パラメタをGOAWAYフレームに追加すると決定してもよい。即ち、通信パラメタ決定部308は、HTTP/2通信だけに限らず、無線LANやTCP/IP、TLS等の他の通信プロトコルで使用している通信パラメタをGOAWAYフレームに追加してもよい。それにより、通信装置10は、通信装置20と再接続する際、最適な通信パラメタを用いて通信を再開することができるため、通信装置10と通信装置20との通信速度や相互接続性がさらに向上する。
また、本実施形態では、通信装置20は、通信パラメタとしてヘッダ圧縮で利用する情報を用いてもよい。より具体的には、通信装置20は、通信パラメタとして、ヘッダリスト、ヘッダ圧縮用のテーブルであるインデックステーブル、静的テーブル、ヘッダテーブル、等を用いてもよい。コネクションエラー判断部310は、例えば、ヘッダ圧縮用のテーブルの内容に不整合が生じる可能性があることが原因でコネクションエラーが発生しているか否かを判定することとしてよい。
コネクションエラー判断部310によりコネクションエラーが発生していないと判定された場合、通信パラメタ決定部308は、追加する通信パラメタとして、通信装置10とのHTTP通信で使用している現在のヘッダ圧縮用のテーブルを決定する。そして、通信パラメタ追加部309は、前記ヘッダ圧縮用のテーブルの情報をGOAWAYフレーム中の追加デバッグ情報に追加する。通信パラメタ追加部309は、ヘッダ圧縮用のテーブルの全部又は一部をGOAWAYフレーム中の追加デバッグ情報に追加してもよい。通信パラメタ追加部309は、例えば、通信装置20側で主に生成するヘッダテーブルのみをGOAWAYフレーム中の追加デバッグ情報に追加してもよい。
そして、通信装置10は、通信装置20との再接続の際、受信したヘッダ圧縮用のテーブルを再利用することで、再接続の直後から効率的なヘッダ圧縮を行うことが可能となり、通信装置20との間の通信速度を更に向上させることができる。
また、本実施形態では、通信装置20は、通信装置10の信頼度に応じて、GOAWAYフレームに追加する通信パラメタの内容を決定することとしてもよい。より具体的には、通信装置20は、予め、通信装置20の補助記憶装置等に通信を行う他の通信装置の信頼度の情報を含む設定ファイル等を記憶するものとする。そして、通信装置20は、通信装置20の補助記憶装置等に記憶されている設定ファイル等から通信装置10の信頼度を取得する。
通信装置20は、取得した通信装置10の信頼度が設定された閾値以上ならば、通信装置10に送信するGOAWAYフレームにセキュリティ・プライバシー情報を含ませることとする。通信装置20は、取得した通信装置10の信頼度が設定された閾値未満ならば、通信装置10に送信するGOAWAYフレームにセキュリティ・プライバシー情報を含ませないこととする。それにより、通信装置20は、十分に信頼できない通信相手に対して、セキュリティ・プライバシー情報を送信せずに済むため、セキュリティリスクを軽減することができる。
本実施形態では、通信装置10と通信装置20とは、通信開始の際にプロトコルのアップグレードを実行し、接続エラーが起こった際に通信相手に通信の終了を示す信号を送信するプロトコルに則った通信を行うこととした。しかし、通信装置10と通信装置20とは、通信開始の際に通信相手に通信設定情報を送信し、接続エラーが起こった際に通信相手に通信の終了を示す信号を送信するプロトコルに則った通信を行うこととしてもよい。その場合、通信装置10と通信装置20とは、再接続までの時間を短縮することはできないが、通信の相互接続性を向上させることはできる。
<実施形態2>
本実施形態では、通信装置20は、通信装置10と通信装置20との通信関係に基づいて、GOAWAYフレームに通信パラメタを追加する。通信関係は、通信装置間の通信が継続中であるか否かを示す。通信装置20と通信装置10との間に通信関係が有ることは、通信装置20と通信装置10との間でセッション等の一連の通信が継続中であることを示す。本実施形態における通信システムのシステム構成、通信装置10及び通信装置20のハードウェア構成は、実施形態1と同様である。以下では、実施形態1と異なる部分について説明する。
(機能構成)
図13は、本実施形態における通信装置20の機能構成の一例を示す図である。図13において、図3と同じ内容の機能モジュールに関しては説明を省略する。機能構成要素1301〜1309は、それぞれ機能構成要素301〜309と同様である。
ディスカバリ制御部1314は、TCP/IP通信制御部1306又はHTTP通信制御部1307を介して、無線LAN上の通信装置10のディスカバリ(発見)制御を行う。より具体的には、ディスカバリ制御部1314は、無線LAN上の通信装置10を発見する機能を備える。また、ディスカバリ制御部1314は、無線LAN上の通信装置10に、通信装置20の参加又は離脱を通知する機能を備える。
本実施形態においてディスカバリ制御部1314は、UPnP(Universal Plug and Play)規格にて利用されているSSDP(Simple Service Discovery Protocol)方式を利用する。ディスカバリ制御部1314はSSDPに限らず、他のディスカバリ方式を利用してもよい。他のディスカバリ方式には、例えば、mDNS(multicast Domain Name Service)、Bonjour(登録商標)、SDP(Service Discovery Protocol)、等がある。
認証・認可制御部1315は、HTTP通信制御部1307を介して、通信装置10との間でユーザや通信装置20に関する認証・認可処理を行う。本実施形態では、認証・認可制御部1315は、HTTP認証(Basic認証・Digest認証)方式を利用する。認証・認可制御部1315は、OAuth 2.0、OpenID、OpenID Connect、SAML(Security Assertion Markup Language)等、他の認証・認可方式を利用してもよい。
サービス制御部1316は、HTTP通信制御部1307を介して、通信装置10に対するサービスの提供を行う。本実施形態では、サービス制御部1316は、DLNA(Digital Living Network Alliance)、UPnP、及びWebサービス方式を利用する。サービス制御部1316は、他のサービス制御方式を利用してもよい。他のサービスには、例えば、SOAP(Simple Object Access Protocol)、REST(Representational State Transfer)がある。また、他のサービスには、AtomPub(Atom Publishing Protocol)等もある。
(通信関係判断処理)
通信装置10との通信関係の有無の判定に利用される機能について説明する。
通信関係判断部1310は、通信状態判断部1311、通信履歴判断部1312、通信方式判断部1313、の何れか1つ又は複数を介して、ネットワークを介した通信装置10との通信関係の有無を判定する。
通信状態判断部1311は、通信装置10との通信状態の情報を取得し、取得された通信状態の情報に基づき、通信装置10との通信関係の有無を判定する。通信状態判断部1311は、以下のような通信状態の情報に基づいて、通信装置10との通信関係の有無を判定することができる。通信装置10との通信状態の情報は、通信状態情報の一例である。
通信状態判断部1311は、無線LAN通信制御部1302から、通信装置10との無線LAN通信状態の情報を取得する。そして、通信状態判断部1311は、取得した情報に基づき、通信装置10との通信関係の有無を判定することができる。
通信状態判断部1311は、例えば、無線LAN(Wi−Fi)接続の開始・終了、無線LAN通信の際の認証完了、ビーコンの検出・不検出、等のイベント情報や無線LAN接続形態の設定情報(インフラモード、アドホックモード)、等を取得する。そして、通信状態判断部1311は、取得したイベント情報や設定情報に基づいて、通信装置10との通信関係の有無を判定する。
例えば、通信状態判断部1311は、無線LAN(Wi−Fi)接続の開始イベント情報を取得し、終了イベント情報を取得していない場合、通信装置10との通信関係が有るものと判定する。通信状態判断部1311は、その他、Wi−Fi Direct接続の開始・終了、無線LAN通信エラー、等のイベント情報に基づいて、通信装置10との通信関係の有無を判定してもよい。
また、通信状態判断部1311は、TCP/IP通信制御部1306を介して、通信装置10とのTCP/IP通信状態の情報を取得し、取得した情報に基づき、通信装置10との通信関係の有無を判定する。
例えば、通信状態判断部1311は、TCP/IP通信制御部1306から、通信装置10とのTCP/IP通信状態の情報を取得する。通信状態判断部1311は、TCP接続・切断、誤り発生状態、遅延状態、パケット再送状態、データ転送量、フロー制御状態、回線品質、TCP/IP通信エラー、等のTCP/IP通信状態の情報を取得する。
そして、通信状態判断部1311は、取得したTCP/IP通信状態の情報に基づき、通信装置10との通信関係の有無を判定する。例えば、通信状態判断部1311は、TCP接続を示す状態情報を取得し、TCP切断を示す状態情報を取得していない場合、通信装置10との通信関係が有るものと判定する。
また、通信状態判断部1311は、HTTP通信制御部1307を介して、通信装置10とのHTTP通信状態の情報に基づき、通信装置10との通信関係の有無を判定する。
例えば、通信状態判断部1311は、HTTP通信制御部1307から、通信装置10とのHTTP通信状態の情報を取得する。通信状態判断部1311は、HTTP通信の開始(HEADERS+PRIORITYフレーム)・終了(GOAWAYフレーム)、同時HTTP通信数(マルチセッション数)、HTTP通信エラー、等のHTTP通信状態の情報を取得する。
そして、通信状態判断部1311は、取得したHTTP通信状態の情報に基づき通信装置10との通信関係の有無を判定する。例えば、通信状態判断部1311は、HTTP通信の開始を示すフレームを取得し、HTTP通信の終了を示すフレーム(GOAWAYフレーム)を取得していない場合、通信装置10との通信関係が有るものと判定する。
また、通信状態判断部1311は、ディスカバリ制御部1314を介して、通信装置10との無線LAN上のディスカバリ状態の情報に基づき、通信装置10との通信関係の有無を判定する。
例えば、通信状態判断部1311は、ディスカバリ制御部1314から、ディスカバリ状態の情報を取得する。通信状態判断部1311は、通信装置20の無線LANへの参加・離脱、通信装置10の無線LAN上の発見・参加・離脱、等のディスカバリ状態の情報を取得する。
そして、通信状態判断部1311は、取得したディスカバリ状態の情報に基づいて、通信装置10との通信関係の有無を判定する。例えば、通信状態判断部1311は、通信装置10及び通信装置20について、無線LANへの参加を示すディスカバリ状態の情報を取得し、無線LANからの離脱を示すディスカバリ状態の情報を取得していない場合、以下のように判定する。即ち、通信状態判断部1311は、通信装置10との通信関係が有るものと判定する。
また、通信状態判断部1311は、認証・認可制御部1315を介して、通信装置10との認証・認可状態の情報に基づき、通信装置10との通信関係の有無を判定する。
例えば、通信状態判断部1311は、認証・認可制御部1315から、認証・認可状態の情報を取得する。通信状態判断部1311は、認証・認可の開始・終了、ユーザのログイン・ログアウト、認証済・未認証、認可承認済・未承認、認証有効期限内・期限切れ、アクセストークン有効・無効、アクセストークン有効期限内・期限切れ、等の情報を取得する。
そして、通信状態判断部1311は、取得した認証・認可状態の情報に基づいて、通信装置10との通信関係の有無を判定する。例えば、通信状態判断部1311は、通信装置10及び通信装置20について、認証・認可の開始を示す認証・認可状態の情報を取得し、認証・認可の終了を示す認証・認可状態の情報を取得していない場合、通信装置10との通信関係が有るものと判定する。
また、通信状態判断部1311は、サービス制御部1316を介して、通信装置10とのサービス提供・利用状態の情報に基づき、通信装置10との通信関係の有無を判定する。
例えば、通信状態判断部1311は、サービス制御部1316から、サービス提供・利用状態の情報を取得する。通信状態判断部1311は、サービス提供の開始・終了、サービス利用の開始・終了、等のサービス提供・利用状態の情報を取得する。
そして、通信状態判断部1311は、取得したサービス提供・利用状態の情報に基づいて、通信装置10との通信関係の有無を判定する。例えば、通信状態判断部1311は、サービス提供の開始を示すサービス提供・利用状態の情報を取得し、サービス提供の終了を示すサービス提供・利用状態の情報を取得していない場合、通信装置10との通信関係が有るものと判定する。
通信状態判断部1311は、複数の通信状態の情報の組み合わせに基づいて、通信関係の有無を判定してもよい。複数の通信状態の情報には、上記の、通信装置10との無線LAN通信状態の情報、TCP/IP通信状態の情報、HTTP通信状態の情報、無線LAN上のディスカバリ状態の情報、認証・認可状態の情報、サービス提供・利用状態の情報等がある。
通信履歴判断部1312は、通信装置10との通信履歴の情報に基づき、通信装置10との通信関係の有無を判定する。通信履歴判断部1312は、例えば以下のような処理を行う。通信装置10との通信履歴の情報は、通信履歴情報の一例である。
通信履歴判断部1312は、無線LAN通信制御部1302を介して、通信装置10との無線LAN通信履歴の情報に基づき、通信装置10との通信関係の有無を判定する。
例えば、通信履歴判断部1312は、無線LAN通信制御部1302を介して、通信装置20の補助記憶装置等に記憶されたログファイル等から通信装置10との無線LAN通信履歴の情報を取得する。通信履歴判断部1312は、これまでの無線LAN接続・切断の有無、接続形態(インフラ・アドホック、Wi−Fi Direct、Wi−Fi Directの永続的・一時的グループ)、等の通信装置10との無線LAN通信履歴の情報を取得する。
そして、通信履歴判断部1312は、取得した情報に基づいて、通信装置10との通信関係の有無を判定する。例えば、通信履歴判断部1312は、通信装置10の無線LAN接続をしめす無線LAN通信履歴の情報を取得し、通信装置10の無線LAN切断を示す無線LAN通信履歴の情報を取得していない場合、通信装置10との通信関係が有るものと判定する。
また、通信履歴判断部1312は、TCP/IP通信制御部1306を介して、通信装置10とのTCP/IP通信履歴の情報に基づき、通信装置10との通信関係の有無を判定する。
例えば、通信履歴判断部1312は、TCP/IP通信制御部1306を介して、通信装置20の補助記憶装置等に記憶されたログファイル等から通信装置10とのTCP/IP通信履歴の情報を取得する。通信履歴判断部1312は、通信装置10のドメイン名、ホスト名、IPアドレス、ポート番号、通信装置10とのこれまでのTCP/IP接続・切断の有無、等のTCP/IP通信履歴の情報を取得する。
そして、通信履歴判断部1312は、取得した情報に基づいて、通信装置10との通信関係の有無を判定する。例えば、通信履歴判断部1312は、通信装置10のTCP/IP接続をしめすTCP/IP通信履歴の情報を取得し、通信装置10のTCP/IP切断を示すTCP/IP通信履歴の情報を取得していない場合、通信装置10との通信関係が有るものと判定する。
また、通信履歴判断部1312は、HTTP通信制御部1307を介して、通信装置10とのHTTP通信履歴の情報に基づいて、通信関係の有無を判断する。
例えば、通信履歴判断部1312は、HTTP通信制御部1307を介して、通信装置20の補助記憶装置等に記憶されたログファイル等から通信装置10とのHTTP通信履歴の情報を取得する。通信履歴判断部1312は、通信装置10のURI、送信したHTTPリクエストの内容、受信したHTTPレスポンスの内容、HTTP通信(セッション)ID、HTTPストリームID、Cookie、等のHTTP通信履歴の情報を取得する。
そして、通信履歴判断部1312は、取得した情報に基づいて、通信装置10との通信関係の有無を判定する。例えば、通信履歴判断部1312は、切断を要求するHTTPリクエストを取得していない場合、通信装置10との通信関係が有るものと判定する。
また、通信履歴判断部1312は、ディスカバリ制御部1314を介して、通信装置10との無線LAN上のディスカバリ履歴の情報に基づき、通信関係の有無を判定する。
例えば、例えば、通信履歴判断部1312は、ディスカバリ制御部1314を介して、通信装置20の補助記憶装置等に記憶されたログファイル等から通信装置10との無線LAN上のディスカバリ履歴の情報を取得する。通信履歴判断部1312は、通信装置10の無線LANへの参加・離脱の有無・回数・日時、通信装置10の無線LAN上の発見・参加・離脱の有無・回数・日時、等のディスカバリ履歴の情報を取得する。
そして、通信履歴判断部1312は、取得した情報に基づいて、通信装置10との通信関係の有無を判定する。例えば、通信履歴判断部1312は、通信装置10の無線LANへの参加を示すディスカバリ履歴情報を取得し、通信装置10の無線LANからの離脱を示すディスカバリ履歴情報を取得していない場合、通信装置10との通信関係が有るものと判定する。
また、通信履歴判断部1312は、認証・認可制御部1315を介して、通信装置10との認証・認可履歴の情報に基づいて、通信関係の有無を判断する。
例えば、通信履歴判断部1312は、認証・認可制御部1315を介して、通信装置20の補助記憶装置等に記憶されたログファイル等から通信装置10との認証・認可履歴の情報を取得する。通信履歴判断部1312は、認証・認可・ログイン・ログアウトの有無・回数・日時、ID・パスワード等の認証情報・認可情報、承認した回数、等の認証・認可履歴の情報を取得する。また、通信履歴判断部1312は、発行したアクセストークンのID・権限範囲・数・有効期間、無効にしたアクセストークン、等の認証・認可履歴の情報を取得することとしてもよい。
そして、通信履歴判断部1312は、取得した情報に基づいて、通信装置10との通信関係の有無を判定する。例えば、通信履歴判断部1312は、通信装置10からのログインを示す認証・認可履歴の情報を取得し、通信装置10のログアウトを示す認証・認可履歴の情報を取得していない場合、通信装置10との通信関係が有るものと判定する。
また、通信履歴判断部1312は、サービス制御部1316を介して、通信装置10に対するサービス提供・利用履歴の情報に基づいて、通信関係の有無を判断する。
例えば、通信履歴判断部1312は、サービス制御部1316を介して、通信装置20の補助記憶装置等に記憶されたログファイル等から通信装置10に対するサービス提供・利用履歴の情報を取得する。通信履歴判断部1312は、提供・利用したサービスの種別・内容、サービス提供・利用の有無、等の通信装置10に対するサービス提供・利用履歴の情報を取得する。
そして、通信履歴判断部1312は、取得した情報に基づいて、通信装置10との通信関係の有無を判定する。例えば、通信履歴判断部1312は、通信装置10に対するサービス提供が完了していない旨のサービス提供・利用履歴の情報を取得した場合、通信装置10との通信関係が有るものと判定する。
また、通信履歴判断部1312は、通信装置20の補助記憶装置等に記憶されたログファイル等から読み出す等して、通信装置10とのこれまでの通信接続・切断の有無、通信回数、通信日時、通信成功・失敗、エラー種別、等に関する情報を取得できる。
通信履歴判断部1312は、複数の通信履歴情報の組み合わせに基づいて、通信関係の有無を判定してもよい。複数の通信履歴情報には、上記の、無線LAN通信履歴の情報、TCP/IP通信履歴の情報、HTTP通信履歴の情報、無線LAN上のディスカバリ履歴の情報、認証・認可履歴の情報、サービス提供・利用履歴の情報等がある。
通信方式判断部1313は、通信装置10との通信方式の情報に基づき、通信装置10との通信関係の有無を判定する。通信方式判断部1313は、以下のような処理を行う。通信装置10との通信方式の情報は、通信方式情報の一例である。
通信方式判断部1313は、無線LAN通信制御部1302を介して、通信装置10との無線LAN通信方式の情報に基づいて、通信関係の有無を判定する。
例えば、通信方式判断部1313は、無線LAN通信制御部1302から、通信装置10との無線LAN通信方式の情報を取得する。通信方式判断部1313は、通信装置10との無線ダイレクト通信の有無、WPS(Wi−Fi Protected Setup)通信の有無、等の無線LAN通信方式の情報を取得する。通信方式判断部1313は、Wi−Fi Direct通信の有無、Wi−Fi Direct Service通信の有無、Wi−Fi Miracast通信の有無、等に関する無線LAN通信方式の情報を取得してもよい。
そして、通信方式判断部1313は、取得した情報に基づいて、通信装置10との通信関係の有無を判定する。例えば、通信方式判断部1313は、通信装置10との無線ダイレクト通信が有る旨の無線LAN通信方式の情報を取得した場合、通信装置10との通信関係が有るものと判定する。
また、通信方式判断部1313は、TCP/IP通信制御部1306を介して、通信装置10とのTCP/IP通信方式の情報に基づいて、通信関係の有無を判定する。
例えば、通信方式判断部1313は、TCP/IP通信制御部1306から、通信装置10とのTCP/IP通信方式の情報を取得する。通信方式判断部1313は、VPN(Virtual Private Network)通信の有無、等のTCP/IP通信方式の情報を取得する。また、通信方式判断部1313は、IPsec(Security Architecuture for Internet Protocol)通信の有無、等のTCP/IP通信方式の情報を取得することとしてもよい。
そして、通信方式判断部1313は、取得した情報に基づいて、通信装置10との通信関係の有無を判定する。例えば、通信方式判断部1313は、通信装置10とのVPN通信が有る旨のTCP/IP通信方式の情報を取得した場合、通信装置10との通信関係が有るものと判定する。
また、通信方式判断部1313は、HTTP通信制御部1307を介して、通信装置10とのHTTP通信方式の情報に基づいて、通信関係の有無を判定する。
例えば、通信方式判断部1313は、HTTP通信制御部1307からHTTP通信方式の情報を取得する。通信方式判断部1313は、HTTPS(TLS)通信の有無、PROXY通信の有無、等のHTTP通信方式の情報を取得する。
そして、通信方式判断部1313は、取得した情報に基づいて、通信装置10との通信関係の有無を判定する。例えば、通信方式判断部1313は、通信装置10とのHTTPS(TLS)通信が有る旨のHTTP通信方式の情報を取得した場合、通信装置10との通信関係が有るものと判定する。
また、通信方式判断部1313は、ディスカバリ制御部1314を介して、通信装置10との無線LAN上のディスカバリ方式の情報に基づいて、通信関係の有無を判定する。
例えば、通信方式判断部1313は、ディスカバリ制御部1314から、通信装置10との無線LAN上のディスカバリ方式の情報を取得する。通信方式判断部1313は、SSDPの有無、mDNSの有無、Bonjourの有無、SDPの有無、等に関する無線LAN上のディスカバリ方式の情報を取得する。
そして、通信方式判断部1313は、取得した情報に基づいて、通信装置10との通信関係の有無を判定する。例えば、通信方式判断部1313は、通信装置10とのSSDPが有る旨の無線LAN上のディスカバリ方式の情報を取得した場合、通信装置10との通信関係が有るものと判定する。
また、通信方式判断部1313は、認証・認可制御部1315を介して、通信装置10との認証・認可方式の情報に基づいて、通信関係の有無を判定する。
例えば、通信方式判断部1313は、認証・認可制御部1315から、通信装置10との認証・認可方式の情報を取得する。通信方式判断部1313は、HTTP認証(Basic認証、Digest認証)の有無、OAuth 2.0の有無、OpenIDの有無、OpenID Connectの有無、SAMLの有無、等に関する認証・認可方式の情報を取得する。
そして、通信方式判断部1313は、取得した情報に基づいて、通信装置10との通信関係の有無を判定する。例えば、通信方式判断部1313は、通信装置10とのHTTP認証が有る旨の認証・認可方式の情報を取得した場合、通信装置10との通信関係が有るものと判定する。
また、通信方式判断部1313は、サービス制御部1316を介して、通信装置10とのサービス提供・利用方式の情報に基づいて、通信関係の有無を判定する。
例えば、通信方式判断部1313は、DLNAの有無、UPnPの有無、SOAPの有無、RESTの有無、AtomPubの有無、等のサービス提供・利用方式の情報を取得する。
そして、通信方式判断部1313は、取得した情報に基づいて、通信装置10との通信関係の有無を判定する。例えば、通信方式判断部1313は、通信装置10とのDLNAが有る旨のサービス提供・利用方式の情報を取得した場合、通信装置10との通信関係が有るものと判定する。
通信方式判断部1313は、複数の通信方式の情報の組み合わせに基づいて、通信関係の有無を判定してもよい。複数の通信方式の情報には、上記の、無線LAN通信方式の情報、TCP/IP通信方式の情報、HTTP通信方式の情報、無線LAN上のディスカバリ方式の情報、認証・認可方式の情報、サービス提供・利用方式の情報等がある。
また、通信関係判断部1310は、通信状態情報、通信履歴情報、通信方式情報以外にも、通信装置10の機器状態の情報等に基づいて、通信装置10との通信関係の有無を判定することとしてもよい。例えば、通信関係判断部1310は、ディスカバリ制御部1314等から、通信装置10の電源状態の情報や通信装置10の通信モード、撮影モード等のモード情報等を取得する。
そして、通信関係判断部1310は、取得した通信装置10の機器状態の情報等に基づいて、通信装置10との通信関係の有無を判定する。例えば、通信関係判断部1310は、通信装置10の電源状態がONであるならば、通信装置10との通信関係が有ると判定する。
(通信処理)
以下、本実施形態における通信装置10と通信装置20との間の通信処理について、詳細に説明する。
(通信接続〜切断〜再接続の処理)
図14は、通信装置10と通信装置20とのHTTP通信処理の一例を示すシーケンス図である。図14では、図6と異なる処理について説明する。
M1401の処理は、M601の処理と同様である。
M1402において、HTTP通信制御部407は、通信装置20に対して、通信装置20が提供するサービスを利用するためにセッション開始要求を行う。本実施形態では、セッションは、通信装置20が通信装置10とのHTTP通信接続単位として管理される。通信装置10があるサービスの利用を開始するために通信装置20と通信を開始し、サービスの利用後に通信装置20との通信を終了したとすると、セッションとは、通信の開始から終了までの一連の通信のことを示す。通信装置10と通信装置20とは、セッションを一意に識別可能なセッション情報に基づいて、セッションを管理する。また、通信装置10と通信装置20とは、他のセッション管理方式を用いて、セッションを管理することとしてもよい。他のセッション管理方式には、HTTP Cookieプロトコル、SDP(Session Description Protocol)、SIP(Session Initiation Protocol)、等がある。
M1403において、HTTP通信制御部1307は、通信装置10に対して、第1のセッション情報を送信する。本実施形態では、HTTP通信制御部1307は、第1のセッション情報として、セッションを一意に識別可能な情報を送信する。HTTP通信制御部1307は、第1のセッション情報として、HTTP Cookie情報、SDP等他のセッション情報を送信することとしてもよい。
M1404において、HTTP通信制御部407は、通信装置20に対して、第1のセッション情報とともに、HTTPリクエストを送信する。
M1405において、通信状態判断部1311は、M1404で通信装置10から受信した第1のセッション情報が有効か否かを判定する。本実施形態では、通信状態判断部1311は、M1404で送信された第1のセッション情報を有効であると判定したとする。
M1406において、HTTP通信制御部1307は、通信装置10に対して、S1404で送信されたHTTPリクエストに対するHTTPレスポンスを送信する。
M1407において、HTTP通信制御部1307は、通信装置10とのHTTP通信接続を終了させる必要があるイベントを検知する。本実施形態では、HTTP通信制御部1307は、通信装置10とのHTTP通信接続を終了させる必要があるイベントとして、通信装置20が通信装置10に対して提供しているサービスの再起動のイベントであるとする。また、HTTP通信制御部1307は、コネクションエラー、プログラム再起動、無線LAN通信の再接続、ネットワークの離脱・参加、電源再起動、等のHTTP通信接続の終了を伴うイベントを検知することができる。
M1408において、通信関係判断部1310は、通信装置10との通信関係を継続するか否かを判定する。通信関係判断部1310は、通信状態判断部1311、通信履歴判断部1312、通信方式判断部1313を介して、通信装置10との通信関係を継続するか否かを判定する。通信関係判断部1310は、図13の通信関係判断部1310の説明で上述した方法等で、通信装置10との通信関係の有無を判定し、通信装置10との通信関係が有ると判定した場合、通信装置10との通信関係を継続すると判定する。
通信関係判断部1310は、通信装置10との通信関係がないと判定した場合、通常通りの通信の切断処理を行うことと判定する。その場合、通信装置20は、通信パラメタ等を追加していない通常のGOAWAYフレームを通信装置10に送信することとなる。その後、通信装置10は、通常通りの接続処理を行うことで、通信装置20と再接続することとなる。本実施形態では、HTTP通信制御部307は、通信装置10と通信関係を継続すると判定することとする。
M1409において、通信パラメタ決定部1308は、通信装置10との通信関係の継続に必要な通信パラメタを決定する。本実施形態では、通信パラメタ決定部1308は、通信装置10との通信関係の継続に必要な通信パラメタとして、通信装置10とのセッションを新規に管理するための第2のセッション情報を決定する。第2のセッション情報は、第1のセッション情報と関連付けられたセッション情報であってもよいし、第1のセッション情報と同じセッション情報であってもよい。
M1410において、通信パラメタ追加部1309は、通信装置10に対して送信するGOAWAYフレームに、M1409で決定した第2のセッション情報の値を、追加デバッグ情報503内の通信パラメタ506として追加する。
M1411において、HTTP通信制御部1307は、通信装置10に対して、M1410で作成したGOAWAYフレームを送信する。
M1412、M1413の処理は、それぞれM607、M608の処理と同様である。
M1414において、サービス制御部1316は、通信装置10に対して提供しているサービスを再起動する。
M1415の処理は、M609の処理と同様である。
M1416において、通信パラメタ決定部408は、M1412で取得した通信パラメタが存在するか確認し、M1412で取得した通信パラメタに基づいて、第2のセッション情報を決定する。通信装置10は、第2のセッション情報を前回のHTTP通信接続の終了の際に通信装置20から受信したため、M1402の処理のようなセッション開始要求処理を省略し、接続処理を高速化することができる。
M1417において、HTTP通信制御部407は、通信装置20に対して、第2のセッション情報とともに、HTTPリクエストを送信する。
M1418において、通信状態判断部1311は、M1404で通信装置10から受信した第2のセッション情報が有効か否かを判定する。本実施形態では、通信状態判断部1311は、M1417で送信された第2のセッション情報を有効であると判定したとする。
M1419において、HTTP通信制御部1307は、通信装置10に対して、S1417で送信されたHTTPリクエストに対するHTTPレスポンスを送信する。
(通信処理)
以下、本実施形態における通信装置10と通信装置20との間の通信処理について、図13に示す機能構成等を用いて詳細に説明する。
(GOAWAYフレーム送信処理)
図15は、通信装置20によるGOAWAYフレーム送信の際の処理の一例を示すフローチャートである。
S1501において、HTTP通信制御部1307は、通信装置10とのHTTP通信接続を終了させる必要があるイベントを検知する。本実施形態において、HTTP通信制御部1307は、M1407の処理と同様のイベントを検知する。
S1502において、通信関係判断部1310は、通信装置10との通信関係が有るか否かを判定する。S1502の処理の詳細は、図16で後述する。
S1503において、通信関係判断部1310は、S1502で通信関係が有るものと判定した場合、S1504の処理に進み、S1502で通信関係が無いものと判定した場合、S1506の処理に進む。
S1504において、通信パラメタ決定部1308は、通信装置10に送信するGOAWAYフレームに追加する通信パラメタを決定する。本実施形態では、通信パラメタ決定部1308は、M1409と同様の通信パラメタを、通信装置10に送信するGOAWAYフレームに追加する通信パラメタとして決定する。
S1505において、通信パラメタ追加部309は、S1504で決定された通信パラメタを、通信装置10に送信するGOAWAYフレームに追加する。
S1506において、HTTP通信制御部307は、通信装置10に対して、GOAWAYフレームを送信して、図15の処理を終了する。
(通信関係判断処理)
図16は、通信装置20による通信関係の有無を判定する処理の一例を示すフローチャートである。図16の処理は、S1502の処理の詳細を示すものである。
S1601において、通信状態判断部1311は、通信装置10とのセッションが有効か否かを判定する。より具体的には、通信状態判断部1311は、通信装置10に発行した第1のセッション情報が有効か否かを判定する。通信状態判断部1311は、通信装置10とのセッションが有効であると判定した場合、S1602の処理に進み、通信装置10とのセッションが有効でないと判定した場合、S1603の処理に進む。
S1602において、通信関係判断部1310は、S1601での通信状態判断部1311による判定処理の結果を受けて、通信装置10との通信関係が有るものと判定し、図16の処理を終了する。
S1603において、通信関係判断部1310は、S1601での通信状態判断部1311による判定処理の結果を受けて、通信装置10との通信関係が無いものと判定し、図16の処理を終了する。
以上、本実施形態によれば、通信装置20がGOAWAYフレームに第2のセッション情報を追加することで、通信装置10は、通信装置20との再接続の際に、セッション開始要求シーケンスを省略することができる。それによって、通信装置10、通信装置20は、通信装置10と通信装置20との間の通信速度を向上させることができる。
また、本実施形態では、通信関係判断部1310は、通信装置10とのセッション情報が有効か否かに基づいて、通信関係の有無を判定した。しかし、通信関係判断部1310は、図13で前述した方法等で、通信関係の有無を判定してもよい。それによって、通信関係判断部1310は、通信装置10と通信装置20との間の通信関係をより正確に判定することができ、不要な通信パラメタの送信を回避することができ、セキュリティリスクを軽減することができる。
また、通信装置20は、GOAWAYフレームに追加する通信パラメタとしてヘッダ圧縮で利用する情報を用いてもよい。より具体的には、通信装置20は、ヘッダリスト、ヘッダ圧縮用のテーブルであるインデックステーブル、静的テーブル、ヘッダテーブル、等の情報を用いてもよい。例えば、HTTP通信制御部1307は、通信装置10とのHTTP通信接続を終了させる必要があるイベントを検知しタとする。そして、通信関係判断部1310は、通信関係の継続が有るものと判定したとする。その場合、通信パラメタ決定部1308は、追加する通信パラメタとして、通信装置10とのHTTP通信で使用している現在のヘッダ圧縮用のテーブルを選択することを決定する。
そして、通信パラメタ追加部1309は、前記ヘッダ圧縮用のテーブルの情報をGOAWAYフレーム中の追加デバッグ情報に追加する。通信パラメタ追加部1309は、ヘッダ圧縮用のテーブルの全部又は一部をGOAWAYフレーム中の追加デバッグ情報に追加することができる。通信パラメタ追加部1309は、例えば、通信装置20側で主に生成するヘッダテーブルだけをGOAWAYフレーム中の追加デバッグ情報に追加してもよい。そうすると、通信装置10は、通信装置20との再接続の際、受信したヘッダ圧縮用のテーブルを再利用することで、再接続の直後から効率的なヘッダ圧縮を行うことが可能となる。それにより、通信装置10、通信装置20は、通信装置10と通信装置20との通信速度をさらに向上させることができる。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
10 通信装置、20 通信装置、201 CPU

Claims (13)

  1. 他の通信装置との間で通信路としてのコネクションを確立し、確立した前記コネクション上に通信路であるストリームを生成し、生成した前記ストリーム上で前記他の通信装置と通信を行う通信装置であって、
    前記他の通信装置との間で再度通信路を確立する場合に利用可能な第1の通信パラメタの情報を、新規ストリームの生成をしないことを示すメッセージに追加する追加手段と、
    前記追加手段により前記第1の通信パラメタの情報を追加された前記メッセージを前記他の通信装置に送信する送信手段と、
    を有する通信装置。
  2. 前記追加手段は、ストリームの生成に利用されるパラメタの情報を、前記第1の通信パラメタの情報として前記メッセージに追加する請求項1記載の通信装置。
  3. 前記他の通信装置との通信における接続エラーを検知する検知手段を更に有し、
    前記追加手段は、前記検知手段により前記接続エラーが検知された場合、前記接続エラーの要因に応じた前記第1の通信パラメタの情報を前記メッセージに追加する請求項1又は2記載の通信装置。
  4. 前記他の通信装置から前記他の通信装置との通信に関する第2の通信パラメタを取得する取得手段を更に有し、
    前記検知手段は、前記取得手段により取得された前記第2の通信パラメタが、前記他の通信装置との通信方式に準拠しない値又は許容できない値である場合、前記他の通信装置との通信における接続エラーを検知し、
    前記追加手段は、前記検知手段により前記他の通信装置との通信における接続エラーが検知された場合、前記他の通信装置との通信方式に準拠する値又は許容できる値を前記第1の通信パラメタの情報として前記他の通信装置に送信するメッセージに追加する請求項3記載の通信装置。
  5. 前記追加手段は、前記他の通信装置の信頼度に応じた前記第1の通信パラメタの情報を前記メッセージに追加する請求項1乃至4何れか1項記載の通信装置。
  6. 前記追加手段は、前記他の通信装置の信頼度が設定された閾値以上である場合、セキュリティ・プライバシー情報を含む前記第1の通信パラメタの情報を前記メッセージに追加し、前記他の通信装置の信頼度が設定された閾値未満である場合、セキュリティ・プライバシー情報を含まない前記第1の通信パラメタの情報を前記メッセージに追加する請求項5記載の通信装置。
  7. 前記他の通信装置と行う一連の通信を継続するか否かを判定する判定手段を更に有し、
    前記追加手段は、前記判定手段により前記一連の通信を継続すると判定された場合、前記一連の通信の再開に利用される情報を、前記第1の通信パラメタの情報として前記メッセージに追加する請求項1乃至5何れか1項記載の通信装置。
  8. 前記追加手段は、前記他の通信装置と通信を継続する場合、前記他の通信装置とのセッション情報を、前記第1の通信パラメタの情報として前記メッセージに追加する請求項7記載の通信装置。
  9. 前記判定手段は、通信状態情報、通信履歴情報、通信方式情報のうちの少なくとも1つに基づいて、前記他の通信装置との前記一連の通信を継続するか否かを判定し、
    前記追加手段は、前記判定手段により前記他の通信装置と通信を継続すると判定された場合、前記第1の通信パラメタの情報を前記メッセージに追加する請求項7又は8記載の通信装置。
  10. 前記追加手段は、前記他の通信装置とのHTTPに則った前記第1の通信パラメタの情報を、前記他の通信装置に送信する前記メッセージであるGOAWAYフレームに追加する請求項1乃至9何れか1項記載の通信装置。
  11. 第1の通信装置と、前記第1の通信装置との間で通信路としてのコネクションを確立し、確立した前記コネクション上に通信路であるストリームを生成し、生成した前記ストリーム上で前記第1の通信装置と通信を行う第2の通信装置と、を含む通信システムであって、
    前記第2の通信装置は、
    前記第1の通信装置との間で再度通信路を確立する場合に利用可能な通信パラメタの情報を、新規ストリームの生成をしないことを示すメッセージに追加する追加手段と、
    前記追加手段により前記通信パラメタの情報を追加された前記メッセージを前記第1の通信装置に送信する送信手段と、
    を有し、
    前記第1の通信装置は、
    前記送信手段により送信された前記メッセージから前記通信パラメタを取得する取得手段と、
    前記取得手段により取得された前記通信パラメタを含む第2メッセージを前記第2の通信装置に送信する送信手段と、
    を有する通信システム。
  12. 他の通信装置との間で通信路としてのコネクションを確立し、確立した前記コネクション上に通信路であるストリームを生成し、生成した前記ストリーム上で前記他の通信装置と通信を行う通信装置が実行する通信方法であって、
    前記他の通信装置との間で再度通信路を確立する場合に利用可能な通信パラメタの情報を、新規ストリームの生成をしないことを示すメッセージに追加する追加ステップと、
    前記追加ステップで前記通信パラメタの情報を追加された前記メッセージを前記他の通信装置に送信する送信ステップと、
    を含む通信方法。
  13. コンピュータを、請求項1乃至10何れか1項記載の通信装置の各手段として機能させるためのプログラム。
JP2015095654A 2015-05-08 2015-05-08 通信装置、通信方法及びプログラム Active JP6548445B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015095654A JP6548445B2 (ja) 2015-05-08 2015-05-08 通信装置、通信方法及びプログラム
US15/142,602 US10110642B2 (en) 2015-05-08 2016-04-29 Communication apparatus, communication system, communication method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015095654A JP6548445B2 (ja) 2015-05-08 2015-05-08 通信装置、通信方法及びプログラム

Publications (3)

Publication Number Publication Date
JP2016213670A true JP2016213670A (ja) 2016-12-15
JP2016213670A5 JP2016213670A5 (ja) 2018-06-21
JP6548445B2 JP6548445B2 (ja) 2019-07-24

Family

ID=57222978

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015095654A Active JP6548445B2 (ja) 2015-05-08 2015-05-08 通信装置、通信方法及びプログラム

Country Status (2)

Country Link
US (1) US10110642B2 (ja)
JP (1) JP6548445B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10291682B1 (en) * 2016-09-22 2019-05-14 Juniper Networks, Inc. Efficient transmission control protocol (TCP) reassembly for HTTP/2 streams
US10545940B2 (en) * 2017-02-22 2020-01-28 Red Hat, Inc. Supporting secure layer extensions for communication protocols
US10965663B2 (en) * 2018-07-26 2021-03-30 Microsoft Technology Licensing, Llc Troubleshooting single sign on failure
EP3957087A1 (en) * 2019-04-17 2022-02-23 Apple Inc. Separation notifications for wireless accessories
WO2020214701A1 (en) * 2019-04-17 2020-10-22 Prestacom Services Llc Sharing keys for a wireless accessory

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7769017B2 (en) * 2005-07-26 2010-08-03 Nortel Networks Limited Using reachability information to facilitate peer-to-peer communications
JP5640649B2 (ja) 2010-10-27 2014-12-17 ソニー株式会社 データ通信方法及び情報処理装置
US9867225B2 (en) * 2013-04-16 2018-01-09 Telefonaktiebolaget Lm Ericsson (Publ) Method and nodes for handling a failure in a communications network

Also Published As

Publication number Publication date
US20160330095A1 (en) 2016-11-10
US10110642B2 (en) 2018-10-23
JP6548445B2 (ja) 2019-07-24

Similar Documents

Publication Publication Date Title
US11658908B2 (en) Internet of things end-to-end service layer quality of service management
US10200353B2 (en) End-to-end M2M service layer sessions
US9515995B2 (en) Method and apparatus for network address translation and firewall traversal
CN107113319B (zh) 一种虚拟网络计算认证中应答的方法、装置、系统和代理服务器
JP6548445B2 (ja) 通信装置、通信方法及びプログラム
US10819761B2 (en) Electronic device and method for controlling electronic device
WO2015139179A1 (zh) 一种终端间同步内容的方法和终端
WO2013177001A1 (en) Devices and methods for facilitating direct pairing in a wireless docking system
US9980121B2 (en) Method and apparatus for performing discovery in wireless communication system
WO2017075410A1 (en) System and methods for achieving end-to-end security for hop-by-hop services
EP3114821B1 (en) Method and devices for establishing a connection between a seeker device and a target device
US10051673B2 (en) Method and apparatus for session initiation in wireless communication system
CN110771117B (zh) 一种采用面向id的网络的会话层通信
JP6576099B2 (ja) 通信装置、通信装置の制御方法、プログラム、および、通信システム
EP2981043A1 (en) Method for managing portal device, and portal device and system
US9596326B2 (en) Communication apparatus, communication method, and non-transitory computer-readable medium
US8924520B2 (en) Method, remote access server and system for configuring a quality of service parameter
KR101730404B1 (ko) 네트워크 경로를 관리하는 방법 및 이를 수행하는 네트워크 엔티티
US20170311135A1 (en) Control Signaling Transmission Method in MCPTT Architecture and Related Device
KR101998414B1 (ko) M2m 시스템에서 선택적으로 보안성 있는 시간 동기화를 위한 방법 및 장치
WO2010069207A1 (zh) 一种取消同步的方法及装置
JP4841357B2 (ja) セキュアなシグナリングチャネルを用いたリソース更新方法、サーバ、端末及びプログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180507

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180507

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190410

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: 20190528

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190625

R151 Written notification of patent or utility model registration

Ref document number: 6548445

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151