JP2014057149A - 通信装置、中継装置および通信方法 - Google Patents
通信装置、中継装置および通信方法 Download PDFInfo
- Publication number
- JP2014057149A JP2014057149A JP2012199581A JP2012199581A JP2014057149A JP 2014057149 A JP2014057149 A JP 2014057149A JP 2012199581 A JP2012199581 A JP 2012199581A JP 2012199581 A JP2012199581 A JP 2012199581A JP 2014057149 A JP2014057149 A JP 2014057149A
- Authority
- JP
- Japan
- Prior art keywords
- request
- information
- communication
- pipeline
- communication device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004891 communication Methods 0.000 title claims abstract description 144
- 238000000034 method Methods 0.000 title claims description 36
- 238000012545 processing Methods 0.000 claims abstract description 56
- 230000004044 response Effects 0.000 claims description 86
- 230000008569 process Effects 0.000 claims description 15
- 238000004458 analytical method Methods 0.000 claims description 7
- 239000012634 fragment Substances 0.000 claims 1
- 238000000926 separation method Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 13
- 230000010365 information processing Effects 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 4
- 239000000284 extract Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/166—IP fragmentation; TCP segmentation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
Abstract
【課題】高速かつ低消費電力かつ多大なリソースを必要とせずに効率的に通信を行う。
【解決手段】通信装置2は、他の通信装置との間で通信を行う通信部9と、他の通信装置3に対する情報の要求を発生する情報要求部5と、情報要求部5が発生した情報の要求にメタ情報を付加した情報取得要求を生成する情報取得要求生成部6と、他の通信装置3に対して情報取得要求を送信する際に用いるプロトコルよりも下位のプロトコルで規定される情報区切りを超えない範囲内で、情報取得要求を可能な限り多く連結したパイプラインリクエストを生成して通信部9に伝送する情報要求処理部7と、を備える。
【選択図】図1
【解決手段】通信装置2は、他の通信装置との間で通信を行う通信部9と、他の通信装置3に対する情報の要求を発生する情報要求部5と、情報要求部5が発生した情報の要求にメタ情報を付加した情報取得要求を生成する情報取得要求生成部6と、他の通信装置3に対して情報取得要求を送信する際に用いるプロトコルよりも下位のプロトコルで規定される情報区切りを超えない範囲内で、情報取得要求を可能な限り多く連結したパイプラインリクエストを生成して通信部9に伝送する情報要求処理部7と、を備える。
【選択図】図1
Description
本発明の実施形態は、他の通信装置に対して情報を要求する通信装置、中継装置および通信方法に関する。
TCPでは、クライアント装置とサーバ装置間でデータの送受信を繰り返す中でTCPウィンドウを広げていく「スロースタート」と呼ばれる輻輳回避アルゴリズムを用いる。そのため、TCP/IPを利用してファイル取得を開始する場合、必ずスロースタートによる影響を受ける。例えば、ネットワーク帯域が広く、高速に通信が可能なネットワークであっても、往復遅延時間が長い場合には、通信開始時のスループットが低くなることから、スループットが高くなるまでに時間を要する。インターネットでは、クライアント装置とサーバ装置が物理的に離れた場所に存在することが多いため、データのロード時間を縮小することは困難である。
データのロード時間の問題を軽減する別の手法として、HTTPパイプライニングと呼ばれる手法がある。HTTP/1.1では、1回のTCP接続で複数のHTTPリクエスト/リプライを可能にする持続的コネクションがサポートされており、HTTPパイプライニングにより、サーバ装置からのレスポンスを待たずに、連続してリクエストをサーバ装置に送ることができるようになった。これによってリクエストおよびレスポンスの往復回数を削減できた。
しかし、実際には、HTTPリクエストを複数連続してサーバ装置に送信したとしても、TCPのスロースタートの影響を受けるため、往復遅延時間が長いと通信開始時のスループットが低くなることから、スループットが高くなるまでに時間を要するという問題自体は解決できない。
そこで、最近のブラウザは、多数のコネクション数を同時に確立することでデータの取得を高速化している。しかしながら、TCPコネクションを多数同時に確立する手法は、往復遅延時間の問題を軽減するが、その一方でサーバ装置とクライアント装置の双方のメモリやCPUのリソースを余分に消費する。
クライアント装置がHTTPパイプライニングでリクエストを送信する際、連結後のデータ長が、HTTPで正しく扱えるデータ長に収まっていても、IPパケットのパケット長以上になってしまう場合には、HTTPリクエストが複数のパケットにまたがる。リクエストの先頭のパケットを受け取ったサーバ装置は、新たなインスタンスを立ち上げて処理を開始するが、後続のパケットが到着するまでリソースを解放できない。このため、クライアント装置からのパイプラインリクエストが複数のパケットにまたがると、最後のリクエストが届くまで、サーバ装置はリソースを解放できず、多大なリソースを消費することになり、サーバ装置でレスポンスを生成するのにも時間を要してしまう。
クライアント装置が単一のパケットでリクエストする場合、サーバ装置でレスポンスデータを即時に用意できれば、TCP ACKをレスポンスデータに載せて送られる。一方、クライアント装置が複数のパケットにまたがってリクエストする場合、サーバ装置からのレスポンスデータとは別にTCP ACKを単体でクライアント装置に送信することになり、NICの受信時間が増加し、消費電力が増加する。
したがって、クライアント装置がサーバ装置にリクエストを送信する際には、複数パケットにまたがらないように送信することが重要である。
また、サーバ装置からクライアント装置へ送信するデータに関しても、パイプラインを利用して、レスポンスの回数をできるだけ削減するのが望ましい。
本発明は、高速かつ低消費電力かつ多大なリソースを必要とせずに効率的に通信を行うことが可能な通信装置、情報提供装置および情報処理方法を提供するものである。
本発明の一態様では、他の通信装置との間で通信を行う通信部と、前記他の通信装置に対する情報の要求を発生する情報要求部と、前記情報要求部が発生した情報の要求にメタ情報を付加した情報取得要求を生成する情報取得要求生成部と、前記他の通信装置に対して前記情報取得要求を送信する際に用いるプロトコルよりも下位のプロトコルで規定される情報区切りを超えない範囲内で、前記情報取得要求を可能な限り多く連結したパイプラインリクエストを生成して前記通信部を介して前記他の通信装置に伝送する情報要求処理部と、を備えることを特徴とする通信装置が提供される。
以下、図面を参照しながら、本発明の実施形態を説明する。
(第1の実施形態)
図1は第1の実施形態による情報処理システム1の概略構成を示すブロック図である。図1の情報処理システム1は、クライアント装置2とサーバ装置3を備えている。クライアント装置2とサーバ装置3は、ネットワーク4を介して通信を行う。ネットワーク4の具体的な形態は問わない。例えば、インターネット等の公衆通信回線でもよいし、専用通信回線でもよい。また、ネットワーク4は、イーサネット(登録商標)等の有線でもよいし、無線LAN等の無線でもよい。クライアント装置2とサーバ装置3がネットワーク4を介して通信を行う際に用いるプロトコルの種類も問わない。
図1は第1の実施形態による情報処理システム1の概略構成を示すブロック図である。図1の情報処理システム1は、クライアント装置2とサーバ装置3を備えている。クライアント装置2とサーバ装置3は、ネットワーク4を介して通信を行う。ネットワーク4の具体的な形態は問わない。例えば、インターネット等の公衆通信回線でもよいし、専用通信回線でもよい。また、ネットワーク4は、イーサネット(登録商標)等の有線でもよいし、無線LAN等の無線でもよい。クライアント装置2とサーバ装置3がネットワーク4を介して通信を行う際に用いるプロトコルの種類も問わない。
クライアント装置2は、情報要求部5と、情報取得要求生成部6と、情報要求処理部7と、通信パラメータ保持部8と、通信部9とを有する。
情報要求部5は、何らかの入力をトリガーとして、サーバ装置3に対して何らかの情報の要求を発生する。トリガーとなる入力は、例えば、ユーザからの入力や、タイマ計測による定期的な入力などである。
情報取得要求生成部6は、情報要求部5が発生した情報の要求にメタ情報を付加した情報取得要求を生成する。メタ情報とは、情報のファイル種別等を記述したヘッダ情報である。情報取得要求生成部6が生成した情報取得要求は、情報要求処理部7に送信される。
情報要求処理部7は、複数のコネクションを駆使して、情報取得要求生成部6が生成した情報取得要求を、通信部9を介してサーバ装置3に送信する制御を行う。より具体的には、情報要求処理部7は、情報取得要求生成部6が生成した情報取得要求を複数のコネクションに割り振って、各コネクションごとに可能な限り多くの情報取得要求を連結させたパイプラインリクエストを生成する。用いるプロトコルはデータの到達性を保証するプロトコルであれば具体的な形態は問わない。例えば、HTTPや、HTTPS、TCP/IPなどである。このとき、情報要求処理部7は、情報取得要求を送信するのに用いるプロトコルよりも下位のプロトコルで規定される情報区切りであるPDU(Protocol Data Unit)を超えない範囲内で、情報取得要求を可能な限り多く連結したパイプラインリクエストを生成して通信部9に伝送する。通信部9は、情報要求処理部7が生成したパイプラインリクエストをサーバ装置3に送信する。
通信パラメータ保持部8は、サーバ装置3に情報取得要求を送信する際に利用する通信プロトコルに関する種々の通信パラメータを保持する。代表的な通信パラメータとしては、スループット、遅延時間、これらの変動の大小、TCPコネクションごとのTCPの輻輳ウィンドウ、MSS( Maximum Segment Size )、TCPの最大パケットサイズ、IPのMTU(Maximum Transmission Unit)、物理層のフレームの長さなどである。
このように、情報要求処理部7は、サーバ装置3との間の通信経路で情報のフラグメントが起きないように、情報取得要求を可能な限り多く連結したパイプラインリクエストを生成する。例えば、情報要求処理部7は、輻輳ウィンドウのサイズの範囲内で情報取得要求を可能な限り多く連結したパイプラインリクエストを生成する。
図2は第1の実施形態によるクライアント装置2の処理動作の一例を示すシーケンス図である。情報要求部5が発生した情報の要求は、情報要求処理部7を介して情報取得要求生成部6に伝送される(ステップS1)。
情報要求処理部7は、情報取得要求をサーバ装置3に送信する際に用いるプロトコルに関する通信パラメータを通信パラメータ保持部から取得する(ステップS2)。
情報取得要求生成部6は、情報要求部5が発生した情報の要求にメタ情報を付加した情報取得要求を生成する(ステップS3)。
情報要求処理部7は、情報取得要求生成部6が生成した情報取得要求を複数のコネクションに割り振って、各コネクションごとにパイプラインリクエストを生成し、通信部9に伝送する(ステップS4)。また、情報要求処理部7は、情報取得要求の伝送が完了したことを情報要求部5に通知する(ステップS5)。
図3は第1の実施形態による情報要求処理部7の処理手順の一例を示すフローチャートである。まず、HTTPのGETリクエストを生成する(ステップS11)。次に、このGETリクエストが、HTTPの下位プロトコルであるTCPのMSSサイズを超えるか否かを判定する(ステップS12)。超えていない場合は、次のGETリクエストを連結してパイプラインリクエストを生成し(ステップS13)、ステップS12に戻る。
ステップS12で超えたと判定されると、生成したGETリクエストを、通信部9を介してサーバ装置3に送信する(ステップS14)。
クライアント装置2とサーバ装置3との間に複数のコネクションがある場合、一つのサーバ装置3に対して使用してよいコネクションの数には上限がある。例えば、HTTP/1.0では4つのコネクション(セッション)まで、HTTP/1.1では2つのコネクション(セッション)までしか使わないことを推奨している。
各コネクションの最初のパケットにできるだけ多くのリクエストを含めることで、応答遅延を最小化できる。例えば、コネクションが4つある場合、分割されずに送信されるデータ長Lのパケットが4つあることになる。本実施形態では、これら4つのパケットに、できる多くの情報取得要求を詰めることを特徴とする。
情報取得要求の詰め方の一例は、図4に示すように、一つのパケットに、先頭の情報取得要求から順に詰めることである。図4の例では、先頭の情報取得要求から3つ分をコネクションA用のパケットに詰め込み、このパケットがMTUサイズを超えると、次の2つ分の情報取得要求をコネクションB用のパケットに詰め込み、このパケットがMTUサイズを超えると、次の3つ分の情報取得要求をコネクションC用のパケットに詰め込み、このパケットがMTUサイズを超えると、最後の2つ分の情報取得要求をコネクションD用のパケットに詰め込んでいる。
なお、複数のコネクションに複数の情報取得要求を割り振る具体的な手順は、図3や図4に示したものに限定されず、他のアルゴリズム(例えば、線形計画法など)を採用してもよい。
このように、第1の実施形態では、複数の情報取得要求をできるだけ一つのパケットにまとめたパイプラインリクエストを生成してサーバ装置3に送信するようにし、まとめた情報取得要求が下位のプロトコルで規定される情報区切りを超えないようにしたため、サーバ装置3の待ち受け時間を短縮でき、サーバ装置3が迅速にレスポンスを返すことができるようになり、またレスポンスの回数も減らすことができる。これにより、クライアント装置2とサーバ装置3の双方とも、待ち受け時間が短くなり、消費電力を削減できる。
(第2の実施形態)
以下に説明する第2の実施形態は、サーバ装置3に対する情報取得要求に優先順位を付けるものである。
以下に説明する第2の実施形態は、サーバ装置3に対する情報取得要求に優先順位を付けるものである。
図5は第2の実施形態に係る情報処理システム1の概略構成を示すブロック図である。図5では、図1と共通する構成部分には同一符号を付しており、以下では相違点を中心に説明する。
図5のクライアント装置2は、図1の構成に加えて、優先順位決定部11を有する。優先順位決定部11は、情報要求部5が発生させた個々の情報取得要求の優先順位を決定する。優先順位は、要求した情報のファイル種別、要求した情報が表示画面内に表示されるか否か、要求した情報がファイルキャッシュに保持されているか否かなどで決定する。なお、優先順位を決定するための具体的な手法は、特に問わない。
図6は第2の実施形態によるクライアント装置2の処理手順の一例を示すシーケンス図である。図6のステップS21は図2のステップS1と同様であり、ステップS21で情報要求部5からの情報取得要求が情報要求処理部7に伝送されると、情報要求処理部7は、その情報取得要求の優先順位を優先順位決定部11に問い合わせる(ステップS22)。その後は、図2のステップS2〜S5と同様の処理が行われる(ステップS23〜S26)。
図7は第1の実施形態による情報要求処理部7の処理手順を示すフローチャートである。まず、情報要求部5が要求した情報の優先順位を優先順位決定部11に問い合わせて、優先順位の順に情報取得要求を並び替える(ステップS31)。
次に、通信状態がよいTCPコネクションを選択する(ステップS32)。コネクションの通信状態の判断に用いるパラメータは、スループット、遅延時間、エラー率、輻輳ウィンドウの大小や、これらのいずれか、もしくはこれらの組み合わせの変動の大小などである。次に、選択したTCPコネクションに対して、優先順位の高い順に情報取得要求を連結してパイプラインリクエストを生成する(ステップS33)。このとき、優先順位の高い情報取得要求をパイプラインリクエストの先頭側に配置するようにしてもよい。このようにすれば、優先順位の高い情報取得要求から先にサーバ装置3に届き、サーバ装置3からのレスポンスも先に得られる可能性が高いためである。また、輻輳ウィンドウが大きいコネクションは、高スループットが期待できるため、優先順位の高い情報取得要求に優先的に使用してもよい。
次に、パイプラインリクエストの情報長がTCPの下位プロトコルであるIPのMTUサイズを超えるか否かを判定する(ステップS34)。超えていない場合はステップS33の情報取得要求の連結処理を継続し、超えた場合は、連結し終わったパイプラインリクエストを、ステップS32で選択したTCPコネクションを用いて、通信部9を介してサーバ装置3に送信する(ステップS35)。
次に、未送信の情報取得要求があるか否かを判定し、未送信の情報取得要求があれば、ステップS32に戻り、未送信の情報取得要求がなければ、処理を終了する。
図8は第2の実施形態におけるパイプラインリクエストの生成手法の一例を模式的に示す図である。図8の例では、4つのコネクションA〜Dがあり、優先順位の高い順に情報取得要求に1〜10の番号を付している。また、コネクションA〜Dは、輻輳ウィンドウが大きくなる順に並んでおり、コネクションDの輻輳ウィンドウが最大である。
図8の例では、優先順位の高い情報取得要求を、各コネクションごとにパケットの先頭側に配置し、かつ優先順位の高い情報取得要求ほど、輻輳ウィンドウが大きいコネクションで送信するようにしている。
このように、第2の実施形態は、情報取得要求ごとに優先順位を付けて、優先順位の高い順に情報取得要求をパケットの先頭側に配置するため、優先順位の高い情報取得要求に対応するレスポンスが先に到着することが保障される。また、輻輳ウィンドウが広がっているコネクションを積極的に利用して優先順位の高い情報取得要求を送信することで、高いスループットを期待できる。特に、優先順位の高い情報取得要求に対するレスポンスを迅速に取得できるようになる。
(第3の実施形態)
以下に説明する第3の実施形態は、冗長なヘッダのメタ情報を削除、圧縮または置換するものである。第3の実施形態による情報処理システム1のブロック構成は、図1または図5に示したものと同様であるため、その説明を省略する。
以下に説明する第3の実施形態は、冗長なヘッダのメタ情報を削除、圧縮または置換するものである。第3の実施形態による情報処理システム1のブロック構成は、図1または図5に示したものと同様であるため、その説明を省略する。
本実施形態は、情報要求処理部7が生成するパイプラインリクエストのヘッダに含まれる、重複していて、かつ必須でない冗長なメタ情報を削除、圧縮または置換することを特徴とする。削除、圧縮または置換するメタ情報は、例えば、HTTPパイプライニングを利用中に変化することがないブラウザのユーザエージェント情報や、対応している文字コード情報や圧縮方式など、同一パイプラインリクエストに含まれる、内容が同一で、重複しておりかつ必須でない冗長なメタ情報であれば、どれでもよい。
図9は第3の実施形態による情報要求処理部7の処理手順を示すフローチャートである。
まず、メタ情報の類似度の高い情報取得要求をグループ化する(ステップS41)。次に、グループ化した情報取得要求の並び順を決定する(ステップS42)。
次に、ステップS42で決定した並び順に従って、メタ情報を含む個々の情報取得要求を順に連結させてパイプラインリクエストを生成する(ステップS43)。
次に、このパイプラインリクエストに、メタ情報を含む新たな情報取得要求を連結したときに、下位のプロトコルで規定される情報区切り(例えば、TCPのウィンドウサイズや、IPのMTUサイズ、物理層のフレーム長など)を超えるか否かを判定する(ステップS44)。まだ超えない場合は、生成したパイプラインリクエストに含まれる冗長なメタ情報を削除、圧縮または置換した上で、新たな情報取得要求と対応するメタ情報を連結して(ステップS45)、ステップS44に戻る。
ステップS44で下位のプロトコルで規定される情報区切りを超えたと判定されると、生成したパイプラインリクエストを通信部9を介してサーバ装置3に送信する(ステップS46)。
次に、まだ未送信の情報取得要求があるか否かを判定し(ステップS47)、あればステップS43に戻り、なければ処理を終了する。
このように、第3の実施形態では、複数の情報取得要求を順に連結したパイプラインリクエストに含まれるメタ情報のうち、冗長なメタ情報を削除、圧縮または置換するようにしたため、パイプラインリクエストのデータ長を削減でき、その分、より多くの情報取得要求を連結することができ、より高速な通信と消費電力の低減が図れる。
(第4の実施形態)
以下に説明する第4の実施形態は、第1〜第3の実施形態によるクライアント装置2からのパイプラインリクエストに対してレスポンスを返すサーバ装置3の構成および処理動作を説明するものである。
以下に説明する第4の実施形態は、第1〜第3の実施形態によるクライアント装置2からのパイプラインリクエストに対してレスポンスを返すサーバ装置3の構成および処理動作を説明するものである。
図10は第4の実施形態によるサーバ装置3を備えた情報処理システム1のブロック図である。図10に示すクライアント装置2は、第1〜第3の実施形態のいずれかのクライアント装置2である。
図10のサーバ装置3は、レスポンス記憶部21と、パイプライン解析部22と、応答生成部23と、通信パラメータ保持部24と、情報応答処理部25と、通信部26とを有する。
パイプライン解析部22は、クライアント装置2からのパイプラインリクエストを解析して、情報取得要求を抽出する。
通信パラメータ保持部24は、クライアント装置2とサーバ装置3との間の通信で用いられる通信プロトコルの通信パラメータを保持する。この通信パラメータは、例えば、スループット、遅延、これらの変動の大小、TCPの輻輳ウィンドウ、最大セグメント長、最大パケット長、IPのMTU、物理層のフレーム長などである。
応答生成部23は、パイプラインリクエストに含まれる情報取得要求に応じたレスポンスを生成する。このレスポンスには、通信パラメータに基づくメタ情報が付加された状態で、レスポンス記憶部21に保存される。
情報応答処理部25は、通信部26を介してクライアント装置2から送信されたパイプラインリクエストを受信して、パイプライン解析部22に伝送するとともに、レスポンス記憶部21に保存したレスポンスをパイプライン化したパイプラインレスポンスを生成して、通信部26を介してクライアント装置2に伝送する。
図11は図10の情報応答処理部25の処理手順の一例を示すフローチャートである。このフローチャートを開始するに当たって、情報応答処理部25は、クライアント装置2が送信したパイプラインリクエストを通信部26を介して受信して、パイプライン解析部22に伝送する。パイプライン解析部22は、パイプラインリクエストに含まれる個々の情報取得要求を抽出し、各情報取得要求に応じたレスポンスをレスポンス記憶部21に保存する。
そして、情報応答処理部25は、HTTPのGETレスポンスを生成する(ステップS51)。次に、レスポンスあるいはパイプラインレスポンスが下位のプロトコルで規定される情報区切りを超えるか否かを判定する(ステップS52)。ここでは、例えば、IPのMTUサイズを超えるか否かを判定し、超えない場合に、次のレスポンスを連結して(ステップS53)、ステップS52に戻る。
ステップS52で超えると判定された場合は、レスポンスを通信部26を介してクライアント装置2に伝送する(ステップS54)。
このように、第4の実施形態では、クライアント装置2からのパイプラインリクエストを受信したサーバ装置3は、パイプラインリクエストに含まれる各情報取得要求に応じたレスポンスを連結したパイプラインレスポンスが下位のプロトコルで規定される情報区切りを超えるか否かを判定し、超えない範囲で連結したパイプラインレスポンスを通信部26を介してクライアント装置2に返すため、レスポンスの回数を最小限に留めることができ、クライアント装置2へのレスポンスを迅速に行うことができ、消費電力も削減できる。
(第5の実施形態)
以下に説明する第5の実施形態は、クライアント装置2とサーバ装置3との間の通信を中継するプロキシ装置(中継装置)を、クライアント装置2とサーバ装置3の間に設けるものである。
以下に説明する第5の実施形態は、クライアント装置2とサーバ装置3との間の通信を中継するプロキシ装置(中継装置)を、クライアント装置2とサーバ装置3の間に設けるものである。
図12は第5の実施形態による情報処理システム1のブロック図である。図12の情報処理システム1は、ネットワーク4に接続されたプロキシ装置30を備えている。
例えば、プロキシ装置30は、クライアント装置2が送信したパイプラインリクエストやリクエストを受信して、受信したパイプラインリクエストやリクエストを再構成するなどして生成した新たなパイプラインリクエストやリクエストをサーバ装置3に送信する。
また、プロキシ装置30は、サーバ装置3が送信したパイプラインレスポンスやレスポンスを受信して、受信したパイプラインレスポンスやレスポンスを再構成するなどして生成した新たなパイプラインレスポンスやレスポンスをクライアント装置2に送信する。
図12のプロキシ装置30は、パイプラインリクエスト記憶部31と、情報記憶部32と、第1通信パラメータ保持部33と、第2通信パラメータ保持部34と、要求処理部35と、第1通信部36と、第2通信部37とを有する。
リクエスト記憶部31は、クライアント装置2から届いたリクエストやパイプラインリクエストを一時的に保存する。情報記憶部32は、サーバ装置3から受信したレスポンスまたはパイプラインレスポンスを一時的に保存する。
第1通信パラメータ保持部33は、クライアント装置2との間で通信を行う際に用いる通信プロトコルに関する通信パラメータを保持する。第2通信パラメータ保持部34は、サーバ装置3との間で通信を行う際に用いる通信プロトコルに関する通信プロトコルを保持する。
第1および第2通信パラメータ保持部33,34が保持する通信パラメータは、第1〜第4の実施形態で説明した通信パラメータと同様に、スループット、遅延、エラー率、これらの変動の大小、TCPの輻輳ウィンドウ、最大セグメント長、最大パケット長、IPのMTU、物理層のフレーム長などである。
要求処理部35は、クライアント装置2から送信されたパイプラインリクエストを再構成して、新たなパイプラインリクエストやパイプライン化されていないリクエストを生成する。なお、クライアント装置2から送信されたパイプラインリクエストをそのままサーバ装置3に送信してもよい。
また、要求処理部35は、サーバ装置3から送信されたパイプラインレスポンスを再構成して、新たなパイプラインレスポンスやレスポンスを生成したり、サーバ装置3から送信されたパイプラインレスポンスをそのままサーバ装置3に送信する。
第1通信部36は、ネットワーク4を介してクライアント装置2と通信を行う。第2通信部37は、ネットワーク4を介してサーバ装置3と通信を行う。
図12のクライアント装置2、もしくはサーバ装置3のいずれか一つ以上は、第1〜第3の実施形態のいずれかで説明したクライアント装置2もしくは、第4の実施形態で説明したサーバ装置3である。
クライアント装置2からプロキシ装置30にパイプラインリクエストを送信する場合の処理手順として、以下の3通りが考えられる。
1.クライアント装置2は、プロキシ装置30に対し、パイプラインリクエストを送信する。プロキシ装置30は第1通信部36を使い、パイプラインリクエストを受信する。プロキシ装置30はそのパイプラインリクエストをパイプライン化されていないリクエストに変換し、第2通信部37から多数のコネクションを使ってサーバ装置3に送信する。
2.クライアント装置2は、プロキシ装置30に対し、パイプライン化されていないリクエストを送信する。プロキシ装置30は第1通信部36を使い、パイプライン化されていないリクエストを受信する。プロキシ装置30はリクエストをパイプライン化し、第2通信部37を使ってパイプラインリクエストをサーバ装置3に送信する。
3.クライアント装置2は、プロキシ装置30に対し、パイプラインリクエストを送信する。プロキシ装置30は第1通信部36を使い、パイプラインリクエストを受信する。プロキシ装置30は第2通信部37を使ってパイプラインリクエストをサーバ装置3に送信する。
また、サーバ装置3からプロキシ装置30にパイプラインレスポンスを送信する場合の処理手順として、以下の3通りが考えられる。
4.サーバ装置3は、パイプラインレスポンスをプロキシ装置30へ送信する。プロキシ装置30は、第2通信部37を使いパイプラインレスポンスを受信する。プロキシ装置30はパイプラインレスポンスを解析し、第1通信部36を使い、パイプライン化されていないレスポンスをクライアント装置2に送信する。
5.サーバ装置3は、パイプライン化されていないレスポンスをプロキシ装置30へ送信する。プロキシ装置30は、第2通信部37を使いパイプライン化されていないレスポンスを受信する。プロキシ装置30はリクエスト記憶部31にあるクライアント装置2からのリクエストの順序のパイプラインレスポンスを生成し、第1通信部36を使いパイプラインレスポンスをクライアント装置2に送信する。
6.サーバ装置3は、パイプラインレスポンスをプロキシ装置30へ送信する。プロキシ装置30は、第2通信部37を使いパイプラインレスポンスを受信する。プロキシ装置30は第1通信部36を使い、クライアント装置2にパイプラインレスポンスを送信する。
パイプラインリクエストが第2の実施形態で説明したように、情報取得要求の優先順位に基づいて生成されている場合は、以下の手順で、情報取得要求がサーバ装置3に送信される。
まず、プロキシ装置30内の要求処理部35は、クライアント装置2から受信したパイプラインリクエストを一定期間、パイプラインリクエスト記憶部31に保存する。そして、要求処理部35は、パイプラインリクエスト記憶部31に保存されたパイプラインリクエストに含まれる複数の情報取得要求の中で、優先順位の高い情報取得要求から順に選択して、優先順位の高い情報取得要求を先頭側に配置したパイプラインリクエストを生成する。優先順位は、第2の実施形態と同様に、ファイル種別等で判断する。
次に、要求処理部35は、生成したパイプラインリクエストをサーバ装置3に送信する。
要求処理部35は、パイプラインリクエストに応じて、サーバから順次送信されたレスポンスを情報記憶部32に保存するとともに、パイプラインリクエスト記憶部31に保存していた元の情報取得要求と対応づけて、送信順序を間違わないように、可能な限り複数のレスポンスを連結したパイプラインレスポンスを生成して、クライアント装置2に送信する。
このように、第5の実施形態では、クライアント装置2から送信されたパイプラインリクエストをサーバ装置3の代わりにプロキシ装置30で受信して、必要に応じてパイプラインリクエストを再構成してサーバ装置3に送信する。あるいは、サーバ装置3から送信されたパイプラインレスポンスをクライアント装置2の代わりにプロキシ装置30で受信して、必要に応じてパイプラインレスポンスを再構成してクライアント装置2に送信する。いずれの場合であっても、クライアント装置2またはサーバ装置3は、リクエストまたはレスポンスの送信回数を減らすことができ、低消費電力化を図ることができる。
上述した実施形態で説明したクライアント装置2、サーバ装置3およびプロキシ装置30の少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、クライアント装置2、サーバ装置3およびプロキシ装置30の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやCD−ROM等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。
また、クライアント装置2、サーバ装置3およびプロキシ装置30の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線(無線通信も含む)を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
本発明の態様は、上述した個々の実施形態に限定されるものではなく、当業者が想到しうる種々の変形も含むものであり、本発明の効果も上述した内容に限定されない。すなわち、特許請求の範囲に規定された内容およびその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更および部分的削除が可能である。
1 情報処理システム、2 クライアント装置、3 サーバ装置、4 ネットワーク、5 情報要求部、6 情報取得要求生成部、7 情報要求処理部、8 通信パラメータ保持部、9 通信部、11 優先順位決定部、21 レスポンス記憶部、22 パイプライン解析部、23 応答生成部、24 通信パラメータ保持部、25 情報応答処理部、26 通信部、31 パイプラインリクエスト記憶部、32 情報記憶部、33 第1通信パラメータ保持部、34 第2通信パラメータ保持部、35 要求処理部、36 第1通信部、37 第2通信部
Claims (14)
- 他の通信装置との間で通信を行う通信部と、
前記他の通信装置に対する情報の要求を発生する情報要求部と、
前記情報要求部が発生した情報の要求にメタ情報を付加した情報取得要求を生成する情報取得要求生成部と、
前記他の通信装置に対して前記情報取得要求を送信する際に用いるプロトコルよりも下位のプロトコルで規定される情報区切りを超えない範囲内で、前記情報取得要求を可能な限り多く連結したパイプラインリクエストを生成して前記通信部を介して前記他の通信装置に伝送する情報要求処理部と、を備えることを特徴とする通信装置。 - 前記情報要求処理部は、前記他の通信装置との間の通信経路で情報のフラグメントが起きないように、前記情報取得要求を可能な限り多く連結した前記パイプラインリクエストを生成することを特徴とする請求項1に記載の通信装置。
- 前記情報要求処理部は、前記下位のプロトコルで規定される一度に送信できる最大のデータ長の範囲内で、前記情報取得要求を可能な限り多く連結した前記パイプラインリクエストを生成することを特徴とする請求項1に記載の通信装置。
- 前記情報要求処理部は、前記パイプラインリクエストに含まれる冗長な前記メタ情報を削除、圧縮または置換することを特徴とする請求項1乃至3のいずれかに記載の通信装置。
- 前記情報要求部が発生した情報の要求のそれぞれについての優先順位を決定する優先順位決定部を備え、
前記情報要求処理部は、前記優先順位決定部が決定した優先順位が高い順に前記情報取得要求を並べた前記パイプラインリクエストを生成することを特徴とする請求項1乃至4のいずれかに記載の通信装置。 - 前記情報要求処理部は、優先順位が高い前記情報取得要求を前記パイプラインリクエストの先頭側に配置することを特徴とする請求項5に記載の通信装置。
- 前記情報要求処理部は、優先順位が高い前記情報取得要求を含む前記パイプラインリクエストを、輻輳ウィンドウが広いコネクションで送信することを特徴とする請求項5または6に記載の通信装置。
- 前記優先順位決定部は、前記他の通信装置に要求する情報のファイル種別と、該情報が表示画面内に表示されるか否かと、該情報の表示位置と表示中の情報からの画面上の距離と、該情報をファイルキャッシュとして所持しているか否かと、該情報が画面レイアウトを決定する情報であるか否かと、の少なくとも一つに基づいて優先順位を決定することを特徴とする請求項5乃至7のいずれかに記載の通信装置。
- 他の通信装置との間で通信を行う通信部と、
前記他の通信装置から送信され複数の情報取得要求が連結されたパイプラインリクエストに含まれる前記複数の情報取得要求を解析するパイプライン解析部と、
前記パイプラインリクエストに含まれる前記情報取得要求に応じたレスポンスを生成する応答生成部と、
前記情報取得要求に応じたレスポンスを返すのに用いるプロトコルよりも下位のプロトコルで規定される情報区切りを超えない範囲内で、可能な限り多くの前記レスポンスを連結したパイプラインレスポンスを生成して前記通信部を介して前記他の通信装置に伝送する情報応答処理部と、を特徴とする通信装置。 - 請求項1乃至9のいずれかに記載の通信装置と、前記他の通信装置との間の通信を中継する中継装置であって、
前記通信装置との間に設定され、前記通信装置から送信されたリクエストまたは前記パイプラインリクエストを受信するための第1通信部と、
前記他の通信装置との間に設定され、前記通信装置から送信されたリクエストまたは前記パイプラインリクエストを再構成した新たなリクエストまたはパイプラインリクエストを前記他の通信装置に送信するための第2通信部と、を備えることを特徴とする中継装置。 - 必要最小限のコネクションを使って前記通信装置から前記パイプラインリクエストを前記第1通信部で受信し、前記パイプラインリクエストを複数のリクエストに変換し、多数のコネクションを使ってリクエストを前記第2通信部で送信することを特徴とする請求項10に記載の中継装置。
- 複数のコネクションを使って前記通信装置から複数のリクエストを前記第1通信部で受信し、複数のリクエストからパイプラインリクエストを生成し、必要最小限のコネクションを使ってパイプラインリクエストを前記第2通信部で前記他の通信装置に送信することを特徴とする請求項10に記載の中継装置。
- 通信装置から他の通信装置に対する情報の要求を発生するステップと、
前記発生した情報の要求にメタ情報を付加した情報取得要求を生成するステップと、
前記他の通信装置に対して前記情報取得要求を送信する際に用いるプロトコルよりも下位のプロトコルで規定される情報区切りを超えない範囲内で、前記情報取得要求を可能な限り多く連結したパイプラインリクエストを生成して前記通信部を介して前記他の通信装置に伝送するステップと、を備えることを特徴とする通信方法。 - 前記通信装置から送信され複数の情報取得要求が連結されたパイプラインリクエストに含まれる前記複数の情報取得要求を解析するステップと、
前記パイプラインリクエストに含まれる前記情報取得要求に応じたレスポンスを生成するステップと、
前記情報取得要求に応じたレスポンスを返すのに用いるプロトコルよりも下位のプロトコルで規定される情報区切りを超えない範囲内で、可能な限り多くの前記レスポンスを連結したパイプラインレスポンスを生成して前記通信部を介して前記通信装置に伝送するステップと、を特徴とする請求項13に記載の通信方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012199581A JP2014057149A (ja) | 2012-09-11 | 2012-09-11 | 通信装置、中継装置および通信方法 |
US14/020,101 US20140074912A1 (en) | 2012-09-11 | 2013-09-06 | Communication apparatus, relay apparatus and communication method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012199581A JP2014057149A (ja) | 2012-09-11 | 2012-09-11 | 通信装置、中継装置および通信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014057149A true JP2014057149A (ja) | 2014-03-27 |
Family
ID=50234475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012199581A Pending JP2014057149A (ja) | 2012-09-11 | 2012-09-11 | 通信装置、中継装置および通信方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20140074912A1 (ja) |
JP (1) | JP2014057149A (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9660926B2 (en) | 2014-05-30 | 2017-05-23 | Apple Inc. | Multi-stream scheduling and requests |
CN105763474B (zh) * | 2014-12-19 | 2019-10-25 | 华为技术有限公司 | 数据传输方法和装置 |
EP3471376B1 (en) * | 2016-03-17 | 2020-06-17 | Google LLC | Hybrid client-server data provision |
US10574723B2 (en) * | 2016-11-30 | 2020-02-25 | Nutanix, Inc. | Web services communication management |
US10560182B2 (en) * | 2017-03-29 | 2020-02-11 | The Boeing Company | Aircraft communications system for transmitting data |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63137346A (ja) * | 1986-11-29 | 1988-06-09 | Nec Corp | デ−タ転送のバツフア制御方式 |
JPH0675890A (ja) * | 1992-08-26 | 1994-03-18 | Chugoku Nippon Denki Software Kk | クライアント・サーバ間の要求データ応答データ授受方式 |
WO2001058069A1 (en) * | 2000-02-07 | 2001-08-09 | Netli, Incorporated | Method for high-performance delivery of web content |
JP2003283556A (ja) * | 2002-03-26 | 2003-10-03 | Hitachi Ltd | データ通信中継装置及びシステム |
WO2011075738A1 (en) * | 2009-12-18 | 2011-06-23 | Qualcomm Incorporated | Http optimization, multi-homing, mobility and priority |
-
2012
- 2012-09-11 JP JP2012199581A patent/JP2014057149A/ja active Pending
-
2013
- 2013-09-06 US US14/020,101 patent/US20140074912A1/en not_active Abandoned
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63137346A (ja) * | 1986-11-29 | 1988-06-09 | Nec Corp | デ−タ転送のバツフア制御方式 |
JPH0675890A (ja) * | 1992-08-26 | 1994-03-18 | Chugoku Nippon Denki Software Kk | クライアント・サーバ間の要求データ応答データ授受方式 |
WO2001058069A1 (en) * | 2000-02-07 | 2001-08-09 | Netli, Incorporated | Method for high-performance delivery of web content |
JP2009217836A (ja) * | 2000-02-07 | 2009-09-24 | Netli Inc | ウェブ・コンテンツの高性能配信の方法 |
JP2003283556A (ja) * | 2002-03-26 | 2003-10-03 | Hitachi Ltd | データ通信中継装置及びシステム |
WO2011075738A1 (en) * | 2009-12-18 | 2011-06-23 | Qualcomm Incorporated | Http optimization, multi-homing, mobility and priority |
JP2013515399A (ja) * | 2009-12-18 | 2013-05-02 | クゥアルコム・インコーポレイテッド | Http最適化、マルチホーミング、移動性、および、優先度 |
Also Published As
Publication number | Publication date |
---|---|
US20140074912A1 (en) | 2014-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3275162B1 (en) | Systems and techniques for web communication | |
CN105284052B (zh) | 用于基于字典的压缩的系统和方法 | |
US10630758B2 (en) | Method and system for fulfilling server push directives on an edge proxy | |
CN105024872B (zh) | 网络性能测试的方法及装置 | |
CN109792410A (zh) | 压缩流量的服务质量优先级重新排序的系统和方法 | |
WO2015158064A1 (zh) | 一种通信协议转换方法及装置、存储介质 | |
JP2017184259A (ja) | 協働環境におけるフロー制御のためのおよび信頼性のある通信のための方法 | |
US20120246258A1 (en) | Http-based synchronization method and apparatus | |
CN101986648A (zh) | 一种tcp选项的协商方法、装置及网络设备 | |
CN105337961A (zh) | 和客户端进行通信的方法以及服务器 | |
JP2017539163A (ja) | Sshプロトコルに基づく会話解析方法及びシステム | |
CN102523207A (zh) | 基于虚拟网络计算机的远程资源访问方法及代理设备 | |
CN102624695A (zh) | 第三方发起远程方之间的通信 | |
US20140143375A1 (en) | Methods for optimizing service of content requests and devices thereof | |
JP2014057149A (ja) | 通信装置、中継装置および通信方法 | |
JP5304674B2 (ja) | データ変換装置、データ変換方法及びプログラム | |
US10516628B2 (en) | Transfer device, transfer system, and transfer method | |
CN107809681B (zh) | 切片视频传输的方法及装置 | |
CN109600436A (zh) | 一种分布式iscsi服务实现方法、系统及相关装置 | |
US11444882B2 (en) | Methods for dynamically controlling transmission control protocol push functionality and devices thereof | |
WO2024109810A1 (zh) | 虚拟桌面性能探测方法、装置、设备及存储介质和程序 | |
JP6534625B2 (ja) | 通信装置および通信方法 | |
CN114338574A (zh) | 一种即时通讯方法、管理节点及系统 | |
CN104320404B (zh) | 一种多线程高性能http代理实现方法及系统 | |
JP6875474B2 (ja) | 通信システムおよび通信方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140214 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140627 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140711 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20141219 |