JP2016206713A - 通信装置、通信方法、およびプログラム - Google Patents

通信装置、通信方法、およびプログラム Download PDF

Info

Publication number
JP2016206713A
JP2016206713A JP2015083327A JP2015083327A JP2016206713A JP 2016206713 A JP2016206713 A JP 2016206713A JP 2015083327 A JP2015083327 A JP 2015083327A JP 2015083327 A JP2015083327 A JP 2015083327A JP 2016206713 A JP2016206713 A JP 2016206713A
Authority
JP
Japan
Prior art keywords
communication
http
server
unit
protocol
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015083327A
Other languages
English (en)
Other versions
JP2016206713A5 (ja
JP6516539B2 (ja
Inventor
智哉 酒井
Tomoya Sakai
智哉 酒井
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 JP2015083327A priority Critical patent/JP6516539B2/ja
Priority to US15/093,620 priority patent/US10142393B2/en
Publication of JP2016206713A publication Critical patent/JP2016206713A/ja
Publication of JP2016206713A5 publication Critical patent/JP2016206713A5/ja
Application granted granted Critical
Publication of JP6516539B2 publication Critical patent/JP6516539B2/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
    • 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
    • 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
    • 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

Landscapes

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

Abstract

【課題】 複数の通信プロトコルを実行可能な通信装置による通信完了までの時間を短縮させる。【解決手段】 サーバ102に対するHTTPリクエスト数が、通信装置101とサーバ102との通信に使用可能なTCPコネクション数を上回る場合に、HTTP/1.1を使用し、そうでない場合にHTTP/2を使用する。【選択図】 図1

Description

本発明は、通信装置、通信方法、およびプログラムに関し、特に、外部装置との通信を行うために用いて好適なものである。
インターネット標準技術として利用されている通信プロトコル(通信規約)の一つに、HTTP/1.1(Hyper Text Transfer Protocol)がある(非特許文献1参照)。現在、インターネット標準化団体(IETF:Internet Engineering Task Force)において、HTTPの新しいバージョン(HTTP/2)の標準化の策定が進められている(非特許文献2参照)。
HTTP/1.1では、サーバとクライアントとをTCPコネクションで接続し、その接続内においてクライアントからサーバにリクエストを送信する。クライアントは、一つのリクエストに対するレスポンスがサーバから返ってくるまで、次のリクエストを送信する事ができない。しかし、クライアントは、複数のTCPコネクションを使用する事で、接続したTCPコネクションの数分のリクエストを並列に送信する事ができる。
一方、HTTP/2では、サーバとクライアントとをTCPコネクションで接続し、その接続内において、ストリームと呼ばれる論理的なセッションを複数構築(多重化)する。クライアントは、それぞれのストリーム上で、サーバに並列にリクエストを送信する事ができる。HTTP/2では、TCPコネクションの数による制限を受けずに、リクエストを並列に送信する事ができる。
Hypertext Transfer Protocol ―― HTTP/1.1 [平成26年11月25日検索]インターネット<URL:http://www.w3.org/Protocols/ rfc2616/rfc2616.html> Hypertext Transfer Protocol version 2 draft―ietf―httpbis―http2―17 [平成26年11月25日検索]インターネット<URL:http://tools.ietf.org/html/draft―ietf―httpbis―http2―17>
しかしながら、HTTP/1.1とHTTP/2との何れか一方の通信プロトコルを使用する事で、常に早く通信を完了させることができるというわけではない。
例えば、HTTP/1.1では、TCPコネクション数以上のリクエストを送信する場合、そのリクエストに対するレスポンスが戻ってくるまで送信できないリクエストが発生する。その結果、リクエストに対するレスポンスの応答時間が長くなる。
一方、HTTP/2では、ストリームの数がTCPコネクション数により制限されないため、リクエストに対するレスポンスを待たずに、全てのリクエストを並列に送信する事ができる。その結果、リクエストに対するレスポンスの応答時間がHTTP/1.1よりも短くなる。
しかしながら、HTTP/2を使用する事で、通信完了がHTTP/1.1よりも遅くなる場合もある。例えば、一つのHTTPリクエストを送信する場合が考えられる。HTTP/2では、通信開始時にプロトコルアップグレードを行う必要がある。通信プロトコルのアップグレードにProtocol Upgradeメカニズムを使用する場合、サーバとクライアントとの間で追加のやり取りが必要となる。したがって、HTTP/1.1を用いて通信するよりもHTTP/2を用いて通信する場合のほうが、通信完了が遅くなる場合がある。
以上の課題は、HTTP/1.1とHTTP/2に限られない。例えば、HTTP/1.1とSPDYや、HTTP/1.1とQUIC(Quick UDP Internet Connections)等においても同様である。
本発明は、このような問題点に鑑みてなされたものであり、複数の通信プロトコルを実行可能な通信装置による通信完了までの時間を短縮させることを目的とする。
本発明の通信装置は、外部装置に対して送信されるメッセージの数を取得する第1の取得手段と、前記第1の取得手段により取得された前記メッセージの数に基づいて、複数の通信プロトコルのうちの何れか1つを、前記外部装置との通信に使用する通信プロトコルとして選択する選択手段と、を有することを特徴とする。
本発明によれば、複数の通信プロトコルを実行可能な通信装置による通信完了までの時間を短縮させることができる。
通信システムの構成を示す図である。 通信装置およびサーバのハードウェアの構成を示す図である。 通信装置のモジュール構成を示す図である。 通信装置の処理を説明するフローチャートである。 通信装置とサーバとの接続履歴を示す図である。 通信プロトコルの選択方法の第1の例を説明するフローチャートである。 通信プロトコルの選択方法の第2の例を説明するフローチャートである。 通信システムにおけるシーケンスの第1の例を示す図である。 通信システムにおけるシーケンスの第2の例を示す図である。 通信システムにおけるシーケンスの第3の例を示す図である。
以下、図面を参照して一実施形態を説明する。
図1は、通信システムの構成の一例を示す図である。
ネットワーク100には、通信装置101とサーバ102とが接続される。本実施形態では、ネットワーク100の形態は限定されない。例えば、ネットワーク100は、インターネット、WAN(Wide Area Network)、およびLAN(Local Area Network)の少なくとも1つを用いて構築される。尚、通信装置101とサーバ102は、ネットワーク100を介さずに、直接接続されても良い。例えば、無線アドホックネットワークを用いて、通信装置101とサーバ102とが通信するようにしても良い。
通信装置101は、ネットワーク100を通じてサーバ102と通信を行う。サーバ102との通信を行う際には、通信装置101は、クライアントとなる。本実施形態では、サーバ102との通信に際し、通信装置101が、HTTP(Hyper Text Transfer Protocol)/1.1およびHTTP/2のうち何れか1つの通信プロトコルを選択する場合を例に挙げて説明する。
サーバ102は、通信装置101から送信されたリクエストに対するレスポンスを通信装置101に返信する。
図2は、通信装置101およびサーバ102の適用例である情報処理装置のハードウェアの構成の一例を示す図である。尚、通信装置101は、撮像装置、プリンタ、およびプロジェクタ等に適用する事ができる。したがって、図2に示す構成に対し、通信装置101を適用する装置に応じたハードウェアが追加されることになる。また、本実施形態では、サーバ102は1台の情報処理装置(PC)で実現される場合を例に挙げて示す。しかしながら、サーバ102は、プロキシサーバを含めても良いし、クラウド上で分散して配置されていても良い。
図2において、情報処理装置200は、CPU(Central Processing Unit)201と、ROM(Read Only Memory)202と、RAM(Random Access Memory)203と、を有する。情報処理装置200は、さらに、入力装置204と、HD(Hard Disk)205と、表示装置206と、入出力I/F(Interface)207と、通信I/F(Interface)208と、システムバス209と、を有する。
CPU201は、情報処理装置200における動作を統括的に制御するものであり、システムバス209を介して、情報処理装置200の各構成部(202〜208)を制御する。
ROM202は、CPU201の制御プログラムであるBIOS(Basic Input/Output System)およびオペレーティングシステムプログラム(OS)を記憶する。また、ROM202は、CPU201が後述する処理を実行するために必要なプログラム等を記憶する。
RAM203は、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して、ROM202からの必要なプログラム等の読み出しや、HD205からの必要な情報等の読み出しを行って、RAM203にロードする。そして、CPU201は、当該プログラムや情報等の処理を実行する事で各種の動作を実現する。
入力装置204は、例えば、ユーザが必要に応じて、情報処理装置200に対して操作入力を行うためのものである。入力装置204は、例えば、マウス、キーボード、タッチパネル、ボタン、およびスイッチの少なくとも何れか1つを用いて構成される。
HD205は、各種のデータおよびファイル等を記憶する記憶手段を構成する。
表示装置206は、液晶ディスプレイ等のコンピュータディスプレイを有し、CPU201の制御に基づいて、各種の情報や画像を表示する。また、表示装置206は、コンピュータディスプレイとは別に、LED(Light Emitting Diode)等の発光部を備える。
入出力I/F207は、CPU201の制御に基づいて、可搬型記憶媒体等との間で、データの入出力を行う。
通信I/F208は、CPU201の制御に基づいて、外部装置とネットワークを介して各種の情報等の通信を行う。
システムバス209は、CPU201、ROM202、RAM203、入力装置204、HD205、表示装置206、入出力I/F207および通信I/F208を相互に通信可能に接続するためのバスである。
図3は、通信装置101のモジュール構成の一例を示す図である。
バス300は、以下の各モジュール(通信部301〜プロトコルアップグレード部317)を相互に通信可能に接続するためのものである。
通信部301は、TCP/IP処理およびTLS(Transport Layer Security)処理を行う。
表示制御部302は、通信に使用している通信プロトコルを表示装置206(液晶ディスプレイやLED)に表示させるための処理を行う。本実施形態では、通信に使用している通信プロトコルを表示する場合を例に挙げて説明する。しかしながら、これに限らず、通信装置101は、通信に使用している通信プロトコルを、表示に加えまたは表示に代えて、音や振動を用いてユーザに通知しても良い。
データ保持部303は、サーバ102の識別子に関連付けられた履歴情報を保持、管理する。サーバ102の識別子に関連付けられた履歴情報については、図5を参照しながら後述する。本実施形態では、サーバ102の識別子に関連付けられた履歴情報のデータベースを、通信装置101の内部に保持する場合を例に挙げて説明する。しかしながら、これに限らず、サーバ102の識別子に関連付けられた履歴情報は、ネットワーク100を介した別の装置のデータベースに保存されていても良い。
比較部304は、通信装置101とサーバ102との通信に使用可能なTCPコネクション数と、HTTPリクエスト数とを比較する。さらに比較部304は、サーバ102に接続できたTCPコネクション数とHTTPリクエスト数とを比較する。
判断部305は、HTTPリクエストに対するサーバ102からのHTTPレスポンスを受信した後に、HTTPリクエストの送信を継続するか否かを判断する。さらに、判断部305は、通信装置101に入力された、サーバ102の識別子から、当該サーバ102と過去に通信を行ったことがあるか否かを判断する。さらに、判断部305は、サーバ102との通信の際にプロトコルアップグレードを省略する事が可能であるか否かを判断する。
リクエスト数取得部306は、第1の取得処理として、HTTPリクエスト数を取得する。
第1リクエスト送信部307は、HTTP/1.1を使用してHTTPリクエストをサーバ102に送信する。
第2リクエスト送信部308は、HTTP/2を使用してHTTPリクエストをサーバ102に送信する。
第1レスポンス受信部309は、第1リクエスト送信部307が送信したHTTPリクエストに対するHTTPレスポンスをサーバ102から受信する。
第2レスポンス受信部310は、第2リクエスト送信部308が送信したHTTPリクエストに対するHTTPレスポンスをサーバ102から受信する。
コネクション数取得部311は、第2の取得処理として、通信装置101が使用できるTCPコネクション数を取得する。
選択部312は、HTTP/1.1とHTTP/2から、サーバ102との通信に使用する通信プロトコルを選択する。
入力部313は、サーバ102の識別子を入力する。サーバ102の識別子には、例えば、URI、IPアドレスとポート番号、およびSession−ID等が含まれる。ユーザは、入力部313に対して、UI(User Interface)を用いてサーバ102の識別子を入力する事ができる。また、ユーザは、NFC(Near field communication)やBluetooth(登録商標)等を用いてサーバ102の識別子を入力する事もできる。また、アプリケーションが記憶しているサーバ102の識別子を入力部313の入力情報として使用しても良い。
第1接続部314は、通信装置101とサーバ102との間に、HTTP/1.1で通信するためのコネクションを確立する。
第2接続部315は、通信装置101とサーバ102との間に、HTTP/2で通信するためのコネクションを確立する。
切断部316は、HTTP/1.1およびHTTP/2で通信するためのサーバ102とのコネクションを切断する。
プロトコルアップグレード部317は、プロトコルアップグレードを行う。さらに、プロトコルアップグレード部317はプロトコルアップグレードに成功したか否かを判断する。
本実施形態では、通信装置101が、サーバ102との通信に使用する通信プロトコルとして、HTTP/1.1とHTTP/2との何れかを選択して通信する場合を例に挙げて説明する。しかしながら、通信装置101とサーバ102とが通信するための通信プロトコル(第1のプロトコル、第2のプロトコル)は、これらに限定されない。例えば、複数のコネクションを確立し、それぞれのコネクションを使って複数のメッセージを並列に送信する通信プロトコルとして、HTTP/1.1以外の通信プロトコルを用いても良い。また、1つのコネクション上に構築された論理的な複数のストリームを用いることにより複数のメッセージを並列に送信する通信プロトコルとしてHTTP/2以外のプロトコルを用いても良い。例えば、HTTP/2に代えて、SPDYまたはQUIC(Quick UDP Internet Connections)を採用しても良い。また、その他の異種の通信プロトコル間の選択であっても良い。さらに、3つ以上の複数の通信プロトコルからの選択であっても良い。
図4は、サーバ102と通信を行う際の通信装置101の処理の一例を説明するフローチャートである。
入力部313は、サーバ102の識別子を入力する(ステップS401)。入力部313は、サーバ102の識別子を、ユーザによる操作の結果に基づいて取得しても良いし、アプリケーションから取得しても良い。本実施形態では、サーバ102の識別子が、例えば、URI、IPアドレス、ポート番号、およびSession−IDを含む場合を例に挙げて説明する。しかしながら、サーバ102の識別子は、これらに限られず、その他、通信相手であるサーバ102を識別するための情報であれば、どのような情報であってもよい。
次に、コネクション数取得部311は、通信装置101とサーバ102との通信に使用可能なTCPコネクション数を取得する(ステップS402)。
コネクション数取得部311は、例えば、通信装置101全体で使用可能であるTCPコネクション数を取得しても良いし、アプリケーションが既定しているTCPコネクション数を取得しても良い。
また、コネクション数取得部311は、通信装置101上の他のアプリケーションと公平性を考慮して、通信装置101とサーバ102との通信に使用可能なTCPコネクション数を取得する事ができる。例えば、コネクション数取得部311は、通信装置101全体で使用可能であるTCPコネクション数を、通信装置101に実装されているアプリケーションの数で割った値を取得する。また、これに限らず、コネクション数取得部311は、別な方法、例えば、スループットを考慮して、他のアプリケーションとの公平性を保てるように、通信装置101とサーバ102との通信に使用可能なTCPコネクション数を取得しても良い。
また、コネクション数取得部311は、サーバ102が受け付ける事ができるTCPコネクションの数を、通信装置101とサーバ102との通信に使用可能なTCPコネクション数として取得する事ができる。コネクション数取得部311は、サーバ102が受け付ける事ができるコネクション数を、NFCやBluetooth(登録商標)等を用いてサーバ102から直接取得しても良いし、他の通信装置から取得しても良い。また、コネクション数取得部311は、サーバ102に対して複数のコネクションで接続を行い、サーバが実際に受け付けるコネクション数を取得しても良い。
また、コネクション数取得部311は、通信装置101全体で使用可能であるTCPコネクション数と、サーバ102が受け付ける事ができるTCPコネクション数との片方だけでなく両方を考慮してもよい。すなわち、コネクション数取得部311は、これらの両方に基づいて、通信装置101とサーバ102との通信に使用可能なTCPコネクション数を取得する事ができる。例えば、コネクション数取得部311は、通信装置101全体で使用可能であるTCPコネクション数と、サーバ102が受け付ける事ができるTCPコネクション数とのうち小さい方を採用しても良い。また、このとき、通信装置101全体で使用可能であるTCPコネクション数に代えて、例えば、アプリケーションが既定しているTCPコネクション数を採用してもよい。
コネクション数取得部311は、通信装置101とサーバ102との接続履歴がある場合、過去の接続履歴から、サーバ102の識別子に対応するコネクション数を取得する事ができる。
図5は、通信装置101とサーバ102との接続履歴の一例を示す図である。
図5に示すテーブル500は、サーバ102の識別子と、通信装置101とサーバ102との接続履歴を示す履歴情報とを相互に関連付けて記憶する。このテーブル500は、例えば、データ保存部303により記憶される。
図5では、Session―IDと、IPアドレスおよびポート番号と、URIとを含む情報が、サーバ102の識別子である場合を例に挙げて示す。しかしながら、サーバ102の識別子は、これに限るものではなく、通信相手のサーバ102を一意に特定できる情報であればどのような情報であっても良い。例えば、SIP―URI等の他の識別子を用いても良い。
また、図5では、最大コネクション数、リクエスト数、およびHTTP/2通信の可否を含む情報が、履歴情報である場合を例に挙げて示す。しかしながら、履歴情報は、これに限らず、例えば、他のレイヤの設定情報等を利用して履歴情報を構成しても良い。例えば、MTUサイズ、TCPのWindowサイズ、アプリケーションのプロトコル情報、およびアプリケーションの設定情報等を利用して履歴情報を構成しても良い。尚、最大コネクション数とは、HTTP/1.1の通信に使用できるTCPコネクション数の最大値のことである。リクエスト数は、通信装置101からサーバ102に対して送信されるHTTPリクエストの数である。HTTP/2通信の可否は、サーバ102がHTTP/2を使用した通信を行えるか否かを示すものである。
判断部305は、図5に示すテーブル500に、ステップS201で入力されたサーバ102の識別子が含まれているか否かを判断する。この判断の結果、サーバ102の識別子がテーブルに含まれている場合、コネクション数取得部311は、当該サーバ102の識別子に対応する最大コネクション数をテーブル500から取得する事ができる。
また、コネクション数取得部311は、既に確立されているTCPコネクションの数を、通信装置101とサーバ102との通信に使用可能なTCPコネクション数として取得する事ができる。また、後述するステップS415からステップS402に進んだ場合(ステップS402の処理が繰り返された場合)、コネクション数取得部311は、過去にステップS402で取得したTCPコネクション数を使用しても良い。
コネクション数取得部311は、以上のようにして通信装置101とサーバ102との通信に使用可能なTCPコネクション数を取得できなかった場合、デフォルト値を使用する事ができる。また、この場合、通信装置101は、エラーとしてサーバ102との通信を終了しても良い。このとき、表示制御部302は、エラーであることを表示装置206に表示させる事ができる。
次に、リクエスト数取得部306は、HTTPリクエスト数を取得する(ステップS403)。
HTTPリクエスト数を取得する方法の例を以下に説明する。
リクエスト数取得部306は、HTTPリクエスト数として、例えば、通信装置101がサーバ102へアップロードするファイル数や、通信装置101がサーバ102からダウンロードするファイル数を、HTTPリクエスト数として取得する事ができる。
また、例えば、ポーリング(polling)のために通信装置101がサーバ102に定期的にリクエストを送信する場合がある。このような場合であって、定期的に送信されるリクエストの数が固定である場合、リクエスト数取得部306は、その値をHTTPリクエスト数として取得する事ができる。
また、通信装置101は、全てのリクエストに対するレスポンスを受信する前に、追加のリクエストをサーバ102に送信する事が必要になる場合がある。具体的には、Webページのダウンロードを行う場合や、SOAP等の通信プロトコルを使用する場合に、全てのリクエストに対するレスポンスを受信する前に、追加のリクエストをサーバ102に送信する事が必要になる。このような場合、リクエスト数取得部306は、追加のリクエストを想定して、HTTPリクエスト数を設定する事ができる。
また、リクエスト数取得部306は、接続相手のサーバ102のアドレス、ポート番号、およびURL等の情報をもとに、サーバ102によるサービスを特定し、特定したサービスに応じたリクエスト数をHTTPリクエスト数として取得する事ができる。
また、通信装置101とサーバ102との接続履歴がある場合、リクエスト数取得部306は、過去の接続履歴から、サーバ102の識別子に対応するリクエスト数を取得する事ができる(図5を参照)。
また、リクエスト数取得部306は、リクエスト数取得部306が過去に取得した値をHTTPリクエスト数として取得する事ができる。
また、リクエスト数取得部306は、以上のようにしてHTTPリクエスト数を取得できなかった場合、デフォルト値を使用する事ができる。また、この場合、通信装置101は、エラーとしてサーバ102との通信を終了しても良い。このとき、表示制御部302は、エラーであることを表示装置206に表示させる事ができる。
本実施形態では、コネクション数取得部311がTCPコネクション数を取得した後に、リクエスト数取得部306がHTTPリクエスト数を取得する場合を例に挙げて説明する。しかしながら、TCPコネクション数とHTTPリクエスト数の取得の順番は、この順番に限定されない。
比較部304は、リクエスト数取得部306で取得されたHTTPリクエスト数が、コネクション数取得部311で取得されたTCPコネクション数を上回るか否かを判定する(ステップS404)。この判定の結果、HTTPリクエスト数がTCPコネクション数以下の場合、HTTP/2よりもHTTP/1.1を選択した方が、リクエストに対する通信の完了までの時間が短くなりやすいので、ステップS405に進む。すなわち、HTTPリクエスト数がTCPコネクション数以下の場合、すべてのHTTPリクエストを略同時に送信することができる一方、HTTP/1.1からHTTP/2へのプロトコルのアップグレード処理が不要となる。従って、比較部304は、HTTPリクエスト数がTCPコネクション数以下の場合、HTTP/1.1を用いたほうが、HTTP/2を用いるよりも、リクエストに対する通信の完了までの時間が短くなりやすいと判定する。
一方、HTTPリクエスト数がTCPコネクション数を上回る場合、HTTP/1.1よりもHTTP/2を選択した方が、リクエストに対する通信の完了までの時間が短くなりやすいので、ステップS410に進む。すなわち、HTTPリクエスト数がTCPコネクション数以下の場合、すべてのHTTPリクエストを略同時に送信することはできない。従って、比較部304は、HTTP/1.1からHTTP/2へのプロトコルアップグレード処理を行う時間を考慮しても、HTTP/2を用いたほうが、HTTP/1.1を用いるよりも、リクエストに対する通信の完了までの時間が短くなりやすいと判定する。
前述したように、HTTPリクエスト数とTCPコネクション数の片方または両方を取得できなかった場合、比較部304は、デフォルト値を利用して比較を行う事ができる。また、通信装置101は、エラーとして通信を終了しても良い。
また、サーバ102がHTTP/2に対応していない事が事前に分かる場合、ステップS404の判定を省略して、ステップS405に進んでも良い。比較部304は、サーバ102がHTTP/2に対応してない事を、サーバ102の識別子を使用して接続履歴を参照することにより確認することができる(図5を参照)。また、比較部304は、サーバ102がHTTP/2に対応してない事を示す情報を他の通信装置から取得することもできる。
また、サーバ102がHTTP/1.1に対応していない事が事前に分かる場合、ステップS404の判定を省略して、ステップS410に進んでも良い。比較部304は、サーバ102がHTTP/1.1に対応していない事を、サーバ102の識別子を使用して接続履歴を参照することにより確認する事ができる(図5を参照)。また、比較部304は、サーバ102がHTTP/1.1に対応してない事を示す情報を他の通信装置から取得することもできる。
また、サーバ102がHTTP/1.1とHTTP/2の両方に対応していないことが事前に分かる場合、通信装置101は、サーバ102で使用できるその他の通信プロトコルを使用してサーバ102と通信しても良い。また、このような場合、通信装置101は、通信エラーとして通信を終了しても良い。
また、前述したように通信装置101がサーバ102に定期的にリクエストを送信する場合に、毎回のHTTPリクエスト数が固定であり、そのHTTPリクエスト数が、TCPコネクション数以下であることが予め分かるような場合がある。例えば、毎回のHTTPリクエスト数が「1」であるような場合がこのような場合に該当する。このような場合には、ステップS402およびステップS404の処理を省略して、ステップS405に進んでも良い。
ステップS404の判定の結果、HTTPリクエスト数がTCPコネクション数以下である場合、選択部312は、サーバ102との通信に使用する通信プロトコルとしてHTTP/1.1を選択する(ステップS405)。
次に、第1接続部314は、サーバ102に対して、TCPコネクションの確立(TCP接続)を行う(ステップS406)。このとき、第1接続部314は、HTTPリクエスト数以上のTCPコネクションを確立する。また、既にHTTP/1.1のTCPコネクションが確立されている場合、第1接続部314は、新たにTCPコネクションを確立せずに、既に確立されているHTTP/1.1のTCPコネクションの一部または全部を利用しても良い。
TCPコネクションが確立した後、表示制御部302は、通信にHTTP/1.1が使用されていることを示す情報を表示装置206(液晶ディスプレイやLED)に表示させる。
次に、第1リクエスト送信部307は、第1接続部314により確立されたTCPコネクションを使用し、HTTP/1.1のリクエストをサーバ102に送信する(ステップS407)。
次に、第1レスポンス受信部309は、第1リクエスト送信部307がサーバ102に対して送信したリクエストに対するレスポンスを受信する(ステップS408)。
次に、切断部316は、TCPコネクションを切断する(ステップS320)。切断部316は、レスポンスを受信し終えたTCPコネクションから切断しても良いし、サーバ102から全てのレスポンスを受信してから全てのTCPコネクションを切断しても良い。
サーバ102がPersistent Connectionに対応しているのであれば、切断部316は、TCPコネクションを再利用するために、ある一定時間(例えば10分間)待ってから、TCPコネクションを切断しても良い。
以上のようにしてTCPコネクションが切断されると、後述するステップS416に進む。
また、サーバ102がPersistent Connectionに対応していない場合であって、HTTP/1.1が選択された場合には、HTTPリクエストを送信するたびにTCPコネクションを切断する必要がある。このような状況で、HTTPリクエストの送信を継続する場合には、HTTP/1.1を選択するよりもHTTP/2を選択した方が通信完了までの時間を短縮できることがある。したがって、サーバ102がPersistent Connectionに対応していない場合には、ステップS404の判定を省略して、ステップS410に進んでも良い。かかる処理は、例えば、図5に示す接続履歴(履歴情報)に、サーバ102がPersistent Connectionに対応しているか否かを示す情報を含めることにより実現する事ができる。また、比較部304は、サーバ102がPersistent Connectionに対応しているか否かを示す情報を他の通信装置から取得する事もできる。
ステップS404の判定の結果、HTTPリクエスト数がTCPコネクション数を上回る場合、選択部312は、サーバ102との通信に使用する通信プロトコルとしてHTTP/2を選択する(ステップS410)。
次に、第2接続部315は、サーバ102に対して、TCPコネクションの確立(TCP接続)を行う(ステップS411)。
ここで、第2接続部315は、1本以上であれば、何本のTCPコネクションを接続しても良い。
また、既にHTTP/2のTCPコネクションが確立されている場合、第2接続部315は、新たにTCPコネクションを確立せずに、既に確立されているHTTP/2のTCPコネクションの一部または全部を利用しても良い。
TCPコネクションが確立した後、表示制御部302は、通信にHTTP/2が使用されていることを示す情報を表示装置206(液晶ディスプレイやLED)に表示させる。
次に、判断部305は、サーバ102とHTTP/2で通信を行う場合に、プロトコルアップグレードを省略することが可能であるか否かを判断する(ステップS412)。HTTP/2で通信を行う場合であって、通信相手のサーバ102がHTTP/2に対応している事が事前に明らかな場合には、プロトコルアップグレードを省略する事ができる。
判断部305は、サーバ102がHTTP/2に対応しているか否かを、サーバ102の識別子を使用して、接続履歴を参照することにより確認する事ができる。また、判断部305は、NFCやBluetooth(登録商標)等を用いて、サーバ102がHTTP/2に対応しているか否かを示す情報をサーバ102から直接取得する事もできる。また、判断部305は、サーバ102がHTTP/2に対応しているか否かを示す情報を他の通信装置から取得する事もできる。サーバ102がHTTP/2に対応しているかを判断する手段はこれらに限らない。
また、ステップS412において、判断部305は、既に確立されているHTTP/2のTCPコネクションがある場合、そのTCPコネクションを使用して通信できるため、プロトコルアップグレードを省略することが可能であると判断する事ができる。
以上の判断の結果、プロトコルアップグレードを省略することが可能ではない場合、プロトコルアップグレード部317は、プロトコルアップグレードを行う(ステップS413)。プロトコルアップグレード部317は、通信プロトコルのアップグレードに、HTTP Upgradeメカニズムを使用することができる。また、プロトコルアップグレード部317は、通信プロトコルのアップグレードに、TLS ALPN(Application Layer Protocol Negotiation Extension)を使用する事もできる。
プロトコルアップグレードに成功した後、あるいはプロトコルアップグレードを省略した後に、第2リクエスト送信部308はHTTP/2のリクエストをサーバ102に送信する(ステップS414)。
次に、第2レスポンス受信部310は、第2リクエスト送信部308がサーバ102に対して送信したリクエストに対するレスポンスを受信する(ステップS415)。そして、ステップS416に進む。
ステップS416に進むと、判断部305は、HTTPリクエストの送信を継続するか否かを判断する。HTTPリクエストの送信を継続する場合として、定期的にHTTPリクエストを送信する場合や、HTTPレスポンスを受信した結果に対して新たなHTTPリクエストを送信する場合や、ユーザの操作により新たなHTTPリクエストを送信する場合等がある。
判断部305は、リクエストの送信を継続するか否かを、第1レスポンス受信部309または第2レスポンス受信部310が、全てのレスポンスを受信する前に判断しても良いし、全てのレスポンスを受信してから判断しても良い。
HTTPリクエストの送信を継続する場合には、ステップS402に戻り、HTTPリクエストの送信を終了するまで、ステップS402〜S416の処理が繰り返し実行される。
そして、判断部305によりHTTPリクエストの送信を継続しないと判断されると、切断部316は、TCPコネクションを切断する(ステップS417)。切断部316は、レスポンスを受信し終えたTCPコネクションから切断しても良いし、サーバ102から全てのレスポンスを受信してから全てのTCPコネクションを切断しても良い。また、TCPコネクションを再利用するために、切断部316は、ある一定時間(例えば10分間)待ってから、TCPコネクションを切断しても良い。
HTTPリクエストの送信を継続する場合には、既にHTTP/2のTCPコネクションが確立されている場合が考えられる。例えば、ステップS415からステップS402に進んだ場合が該当する。このような場合には、既に確立されているTCPコネクションを使用して通信できるため、プロトコルアップグレードを省略することが可能である。このような状況では、HTTP/1.1を選択するよりもHTTP/2を選択した方が、通信完了までの時間を短縮できることがある。したがって、既にHTTP/2のTCPコネクションが確立されている場合には、ステップS404の判定を省略して、ステップS410に進んでも良い。
図4のフローチャートでは、第1接続部314が、ステップS403で取得されたHTTPリクエスト数以上の数のTCPコネクションの確立に成功する事を前提とする場合を例に挙げて示す。しかしながら、HTTPリクエスト数以上の数のTCPコネクションをサーバ102との間で確立することに失敗する場合も考えられる。このような場合として、例えば、サーバ102が他の通信装置ともTCPコネクションで接続しているため、通信装置101からの接続を受け入れられない場合がある。この他、通信装置101が使用できるTCPコネクション数が、他のアプリケーションの影響により変化する場合等においても、HTTPリクエスト数以上の数のTCPコネクションをサーバ102との間で確立することに失敗する場合がある。
図6は、ステップS403で取得されたHTTPリクエスト数以上のTCPコネクションを確立することができないことを想定した場合の通信プロトコルの選択の方法の一例を説明するフローチャートである。図6のフローチャートは、例えば、図4のステップS406とステップS407との間で行われる。
比較部304は、第1接続部314により確立されたTCPコネクション数(すなわち、サーバ102との接続に成功したTCPコネクション数)が、ステップS403で取得されたHTTPリクエスト数以上であるか否かを判定する(ステップS601)。
この判定の結果、第1接続部314により確立されたTCPコネクション数が、HTTPリクエスト数以上である場合、第1リクエスト送信部307は、HTTP/1.1のリクエストをサーバ102に送信する。この場合、図6のフローチャートの終了後に、図4のステップS407に進む。
一方、第1接続部314により確立されたTCPコネクション数が、HTTPリクエスト数を下回る場合、選択部312は、サーバ102との通信に使用する通信プロトコルとしてHTTP/2を選択する(ステップS602)。この場合、図6のフローチャート終了後に、図4のステップS411に進む。
また、図4のフローチャートでは、サーバ102がHTTP/2に対応し、プロトコルアップグレードに成功する事を前提とする場合を例に挙げて示す。しかしながら、サーバ102がHTTP/2に対応していない場合も考えられる。プロトコルアップグレードを行った結果、サーバ102がHTTP/2に対応していない事が分かった場合、HTTP/1.1を選択する必要がある。
図7は、サーバ102がHTTP/2に対応していないことを想定した場合の通信プロトコルの選択の方法の一例を説明するフローチャートである。図7のフローチャートは、例えば、図4のステップS413の処理の代わりに行われる。
プロトコルアップグレード部317は、プロトコルアップグレードを行う(ステップS701)。ステップS701の処理は、図4のステップS413の処理と同じである。
次に、プロトコルアップグレード部317は、プロトコルアップグレードに成功したか否かを判定する(ステップS702)。
この判定の結果、プロトコルアップグレードに成功した場合、HTTP/2で通信を行うことができる。この場合、図7のフローチャートの終了後に、図4のステップS414に進む。
一方、プロトコルアップグレードに失敗した場合、HTTP/2で通信を行う事ができないので、選択部312は、サーバ102との通信に使用する通信プロトコルとしてHTTP/1.1を選択する。この場合、図7のフローチャートの終了後に、図4のステップS406に進む。
図8は、HTTP/1.1を用いて通信を行う場合の通信システムにおけるシーケンスの一例を示す図である。
ここでは、コネクション数取得部311が取得するTCPコネクション数は「2」であり、リクエスト数取得部306が取得するHTTPリクエスト数は「2」であるものとする。この場合、図4のステップS404において、HTTPリクエスト数がTCPコネクション数以下である(No)と判定され、選択部312は、HTTP/1.1を選択する(ステップS405)。また、ここでは、ステップS416において、リクエストの送信を継続しない(No)と判定されるものとする。
ステップS801において、コネクション数取得部311は、TCPコネクション数を取得する。ここでは、TCPコネクション数として「2」が取得される。
次に、ステップS802において、リクエスト数取得部306は、HTTPリクエスト数を取得する。ここでは、HTTPリクエスト数として「2」が取得される。
次に、ステップS803において、選択部312は、サーバ102との通信に使用する通信プロトコルとしてHTTP/1.1を選択する。
次に、ステップS804において、第1接続部314は、通信装置101とサーバ102との間に1本目のTCPコネクションを確立する。
次に、ステップS805において、第1接続部314は、通信装置101とサーバ102との間に2本目のTCPコネクションを確立する。
次に、ステップS806において、第1リクエスト送信部307は、1つ目のTCPコネクションを利用して、1つ目のHTTPリクエストを送信する。
次に、ステップS807において、第1リクエスト送信部307は、2つ目のコネクションを利用して、2つ目のHTTPリクエストを送信する。
次に、ステップS808において、第1レスポンス受信部309は、1つ目のHTTPリクエストに対するHTTPレスポンスを受信する。
次に、ステップS809において、第1レスポンス受信部309は、2つ目のHTTPリクエストに対するHTTPレスポンスを受信する。
次に、ステップS810において、切断部316は、1本目のTCPコネクションを切断する。
最後に、ステップS811において、切断部316は、2本目のTCPコネクションを切断する。
図9は、HTTP/2を用いて通信を行う場合の通信システムにおけるシーケンスの一例を示す図である。
ここでは、コネクション数取得部311が取得するコネクション数は「2」であり、リクエスト数取得部306が取得するリクエスト数は「3」であるものとする。この場合、図4のステップS404において、HTTPリクエスト数がTCPコネクション数を上回る(Yes)と判定され、選択部312は、HTTP/2を選択する(ステップS410)。また、ここでは、ステップS416において、リクエストの送信を継続しない(No)と判定されるものとする。
ステップS901、S902は、それぞれ、図8のステップS801、S802と同じである。
ステップS903において、選択部312は、サーバ102との通信に使用する通信プロトコルとしてHTTP/2を選択する。
次に、ステップS904において、第2接続部315は、通信装置101とサーバ102との間に1本のTCPコネクションを確立する。
次に、ステップS905において、通信装置101は、プロトコルアップグレードを行う。
次に、ステップS906において、第2リクエスト送信部308は、HTTP/2のリクエストを送信する。
次に、ステップS907において、第2レスポンス受信部310は、HTTP/2のレスポンスを受信する。
最後に、ステップS908において、切断部316は、TCPのコネクションを切断する。
図10は、HTTPリクエストの送信を継続する場合の通信システムにおけるシーケンスの一例を示す図である。
ここでは、コネクション数取得部311が1回目に取得するコネクション数は「2」であり、リクエスト数取得部306が1回目に取得するHTTPリクエスト数は「2」であるものとする。この場合、図4のステップS404において、HTTPリクエスト数がTCPコネクション数以下である(No)と判定され、選択部312は、HTTP/1.1を選択する(ステップS405)。また、ここでは、ステップS416において、リクエストの送信を継続する(Yes)と判定されるものとする。
その後、コネクション数取得部311が2回目に取得するコネクション数は「2」であり、リクエスト数取得部306が2回目に取得するHTTPリクエスト数は「3」であるものとする。この場合、図4のステップS404において、HTTPリクエスト数がTCPコネクション数を上回る(Yes)と判定され、選択部312は、HTTP/2を選択する(ステップS410)。また、ここでは、ステップS416において、リクエストの送信を継続しない(No)と判定されるものとする。
ステップS1001〜S1009は、それぞれ図8のステップS801〜S809と同じである。
また、ステップS1010〜S1016は、それぞれ図9のステップS901〜S917と同じである。
ステップS1017において、切断部316は、通信装置101とサーバ102のTCPコネクション1を切断する。
次に、ステップS1018において、切断部316は、通信装置101とサーバ102のTCPコネクション2を切断する。
最後に、ステップS1019において、切断部316は、通信装置101とサーバ102のTCPコネクション3を切断する。
以上のように本実施形態では、サーバ102に対するHTTPリクエスト数が、通信装置101とサーバ102との通信に使用可能なTCPコネクション数を上回る場合に、HTTP/1.1を使用し、そうでない場合にHTTP/2を使用する。これにより、通信完了までの時間が短くなる可能性の高い通信プロトコルを容易に且つ短時間に選択できる。これにより、ユーザの待ち時間を短縮する事が可能となり、通信システムにおけるユーザビリティを向上させることができる。
尚、前述した実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱する事なく、様々な形で実施する事ができる。
(その他の実施例)
本発明は、以下の処理を実行する事によっても実現される。即ち、まず、以上の実施形態の機能を実現するソフトウェア(コンピュータプログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)が当該コンピュータプログラムを読み出して実行する。
100:ネットワーク、101:通信装置、102:サーバ

Claims (11)

  1. 外部装置に対して送信されるメッセージの数を取得する第1の取得手段と、
    前記第1の取得手段により取得された前記メッセージの数に基づいて、複数の通信プロトコルのうちの何れか1つを、前記外部装置との通信に使用する通信プロトコルとして選択する選択手段と、を有することを特徴とする通信装置。
  2. 前記外部装置との通信に使用可能なコネクションの数を取得する第2の取得手段と、
    前記第1の取得手段により取得された前記メッセージの数と、前記第2の取得手段により取得された前記コネクションの数とを比較する比較手段と、をさらに有し、
    前記選択手段は、前記比較手段による前記比較の結果に基づいて、前記複数の通信プロトコルのうちの何れか1つを、前記外部装置との通信に使用する通信プロトコルとして選択することを特徴とする請求項1に記載の通信装置。
  3. 前記複数の通信プロトコルは、複数のコネクションを前記外部装置との間において確立することが可能な第1の通信プロトコルを含み、
    前記選択手段は、前記比較手段による前記比較の結果、前記第1の取得手段により取得された前記メッセージの数が、前記第2の取得手段により取得された前記コネクションの数以下である場合に、前記外部装置との通信に使用する通信プロトコルとして前記第1の通信プロトコルを選択することを特徴とする請求項2に記載の通信装置。
  4. 前記第1の通信プロトコルは、HTTP(Hyper Text Transfer Protocol)/1.1であり、
    前記メッセージは、HTTPリクエストであることを特徴とする請求項3に記載の通信装置。
  5. 外部装置との過去の通信の結果に基づいて、当該外部装置との通信に使用可能なコネクションの数を記憶する記憶手段をさらに有し、
    前記第2の取得手段は、前記記憶手段により記憶されている、前記外部装置との通信に使用可能なコネクションの数を取得することを特徴とする請求項2〜4の何れか1項に記載の通信装置。
  6. 前記複数の通信プロトコルは、論理的なストリームを用いることにより前記外部装置に複数の前記メッセージを並列に送信することが可能な第2の通信プロトコルを含み、
    前記選択手段は、前記比較手段による前記比較の結果、前記第1の取得手段により取得された前記メッセージの数が、前記第2の取得手段により取得された前記コネクションの数を上回る場合に、前記外部装置との通信に使用する通信プロトコルとして前記第2の通信プロトコルを選択することを特徴とする請求項2〜5の何れか1項に記載の通信装置。
  7. 前記第2の通信プロトコルは、HTTP(Hyper Text Transfer Protocol)/2、SPDY、またはQUIC(Quick UDP Internet Connections)であり、
    前記メッセージは、HTTPリクエストであることを特徴とする請求項6に記載の通信装置。
  8. 外部装置との通信の結果に基づいて、当該外部装置が前記第2の通信プロトコルを使用できるか否かを示す情報を記憶する記憶手段と、
    外部装置で使用される通信プロトコルを前記第2の通信プロトコルにアップグレードするために前記HTTPリクエストの送信の前に当該外部装置との通信を行うプロトコルアップグレード手段と、をさらに有し、
    前記第2のプロトコルを使用できることが前記記憶手段により記憶されている外部装置に対しては、前記プロトコルアップグレード手段による前記通信を省略することを特徴とする請求項7に記載の通信装置。
  9. 前記選択手段により選択された通信プロトコルを示す情報を出力する出力手段をさらに有することを特徴とする請求項1〜8の何れか1項に記載の通信装置。
  10. 外部装置に対して送信されるメッセージの数を取得する第1の取得工程と、
    前記第1の取得工程により取得された前記メッセージの数に基づいて、複数の通信プロトコルのうちの何れか1つを、前記外部装置との通信に使用する通信プロトコルとして選択する選択工程と、を有することを特徴とする通信方法。
  11. 請求項1〜9の何れか1項に記載の通信装置の各手段としてコンピュータを機能させることを特徴とするプログラム。
JP2015083327A 2015-04-15 2015-04-15 通信装置、通信方法、およびプログラム Active JP6516539B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015083327A JP6516539B2 (ja) 2015-04-15 2015-04-15 通信装置、通信方法、およびプログラム
US15/093,620 US10142393B2 (en) 2015-04-15 2016-04-07 Communication apparatus, communication method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015083327A JP6516539B2 (ja) 2015-04-15 2015-04-15 通信装置、通信方法、およびプログラム

Publications (3)

Publication Number Publication Date
JP2016206713A true JP2016206713A (ja) 2016-12-08
JP2016206713A5 JP2016206713A5 (ja) 2018-05-24
JP6516539B2 JP6516539B2 (ja) 2019-05-22

Family

ID=57130043

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015083327A Active JP6516539B2 (ja) 2015-04-15 2015-04-15 通信装置、通信方法、およびプログラム

Country Status (2)

Country Link
US (1) US10142393B2 (ja)
JP (1) JP6516539B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10545940B2 (en) * 2017-02-22 2020-01-28 Red Hat, Inc. Supporting secure layer extensions for communication protocols
US11212368B2 (en) * 2019-05-17 2021-12-28 Netflix, Inc. Fire-and-forget offload mechanism for network-based services

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004068356A1 (ja) * 2003-01-29 2004-08-12 Fujitsu Limited データ通信システムおよびデータ通信方法、データ通信プログラム
JP2007265356A (ja) * 2006-03-30 2007-10-11 Nec Access Technica Ltd 通信プロトコルを用いた相互接続方法および装置
WO2012056783A1 (ja) * 2010-10-25 2012-05-03 日本電気株式会社 コンテンツ共有システム、携帯端末、プロトコル切換方法およびプログラム
WO2013130369A1 (en) * 2012-02-29 2013-09-06 Microsoft Corporation Dynamic selection of security protocol
US20140258461A1 (en) * 2011-05-10 2014-09-11 Israel L'Heureux Client-side http translator
JP2016038664A (ja) * 2014-08-06 2016-03-22 Kddi株式会社 Httpクライアント、httpサーバおよびhttp通信方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5706434A (en) * 1995-07-06 1998-01-06 Electric Classifieds, Inc. Integrated request-response system and method generating responses to request objects formatted according to various communication protocols
US6590885B1 (en) * 1998-07-10 2003-07-08 Malibu Networks, Inc. IP-flow characterization in a wireless point to multi-point (PTMP) transmission system
US6631120B1 (en) * 1999-07-30 2003-10-07 Cisco Technology, Inc. System and method for determining a communication protocol of a communication device operating on digital subscriber lines
US6760772B2 (en) * 2000-12-15 2004-07-06 Qualcomm, Inc. Generating and implementing a communication protocol and interface for high data rate signal transfer
US7035747B2 (en) * 2003-10-21 2006-04-25 National Institute Of Information And Communications Technology Method and apparatus to generate test sequences for communication protocols
DE102006009988B4 (de) * 2006-03-03 2007-12-27 Siemens Ag Kommunikationssystem, Rechner und Verfahren zum Ermitteln eines zu verwendenden Kommunikationsprotokolls in einem Kommunikationssystem
JP4845674B2 (ja) * 2006-10-26 2011-12-28 キヤノン株式会社 データ処理装置及び方法、通信装置、並びにプログラム
KR100877065B1 (ko) * 2007-01-12 2009-01-09 삼성전자주식회사 통신 프로토콜 결정 방법 및 장치
US7809818B2 (en) * 2007-03-12 2010-10-05 Citrix Systems, Inc. Systems and method of using HTTP head command for prefetching
US7694051B2 (en) * 2007-03-22 2010-04-06 Moxa Technologies Co., Ltd. Method for calculating master/slave response time-out under continuous packet format communications protocol

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004068356A1 (ja) * 2003-01-29 2004-08-12 Fujitsu Limited データ通信システムおよびデータ通信方法、データ通信プログラム
JP2007265356A (ja) * 2006-03-30 2007-10-11 Nec Access Technica Ltd 通信プロトコルを用いた相互接続方法および装置
WO2012056783A1 (ja) * 2010-10-25 2012-05-03 日本電気株式会社 コンテンツ共有システム、携帯端末、プロトコル切換方法およびプログラム
US20140258461A1 (en) * 2011-05-10 2014-09-11 Israel L'Heureux Client-side http translator
WO2013130369A1 (en) * 2012-02-29 2013-09-06 Microsoft Corporation Dynamic selection of security protocol
JP2016038664A (ja) * 2014-08-06 2016-03-22 Kddi株式会社 Httpクライアント、httpサーバおよびhttp通信方法

Also Published As

Publication number Publication date
JP6516539B2 (ja) 2019-05-22
US10142393B2 (en) 2018-11-27
US20160308935A1 (en) 2016-10-20

Similar Documents

Publication Publication Date Title
US11140162B2 (en) Response method and system in virtual network computing authentication, and proxy server
JP5714849B2 (ja) モバイルデバイスを用いてプリンタのネットワークと通信するためのシステム及び方法
KR20150013860A (ko) 클라이언트 없는 클라우드 컴퓨팅
JP2008181427A (ja) シングルサインオンシステム、情報端末装置、シングルサインオンサーバ、プログラム
JP2017513151A (ja) プライベートクラウド接続装置クラスタアーキテクチャ
US10440094B2 (en) System for restricting remote operation command if not from relay device
CN103873692A (zh) 一种分享资源的方法、装置及系统
US20180198870A1 (en) Information processing apparatus, method for controlling the same, non-transitory computer-readable storage medium, and information processing system
JP6344907B2 (ja) 情報処理装置、システムおよび情報処理装置の制御方法
JP6429559B2 (ja) 通信装置、通信システム、情報処理方法及びプログラム
JP2017539176A (ja) デバイス構成のための方法およびデバイス
JP6452323B2 (ja) 通信機器、その制御方法、プログラム
US20100217841A1 (en) Provisioning network resources based on environment
JP6516539B2 (ja) 通信装置、通信方法、およびプログラム
JP6458512B2 (ja) 通信機器
US8521911B2 (en) Apparatus, system and method for executing discovery in network
CN112565458B (zh) 平台远程控制方法和装置、存储介质及电子设备
JP5461646B2 (ja) 遠隔接続過程モニタリング方法及び遠隔接続モニタリングシステム
JP6255468B2 (ja) 携帯端末、通信システムおよび携帯端末プログラム
KR100654464B1 (ko) 네트워크 상에 존재하는 호스트들 간의 정보를 공유하는장치 및 그 방법
KR101561524B1 (ko) 원격 사용자 인터페이스 관리 시스템 및 그 방법
JP2016071531A (ja) 情報処理装置、その制御方法、及びプログラム
JP2014102754A (ja) 情報処理装置、制御方法、プログラム及び記憶媒体
JP2020088712A (ja) 通信装置およびその制御方法
JP5727919B2 (ja) 設定方法、設定プログラム及び電化製品

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180406

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180406

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190219

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190416

R151 Written notification of patent or utility model registration

Ref document number: 6516539

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151