JP5948111B2 - パケット通信装置および方法 - Google Patents

パケット通信装置および方法 Download PDF

Info

Publication number
JP5948111B2
JP5948111B2 JP2012085993A JP2012085993A JP5948111B2 JP 5948111 B2 JP5948111 B2 JP 5948111B2 JP 2012085993 A JP2012085993 A JP 2012085993A JP 2012085993 A JP2012085993 A JP 2012085993A JP 5948111 B2 JP5948111 B2 JP 5948111B2
Authority
JP
Japan
Prior art keywords
client
request
server
file
side proxy
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.)
Expired - Fee Related
Application number
JP2012085993A
Other languages
English (en)
Other versions
JP2013218387A (ja
Inventor
裕司 大石
裕司 大石
通貴 奥野
通貴 奥野
大 明石
大 明石
伊藤 大輔
大輔 伊藤
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2012085993A priority Critical patent/JP5948111B2/ja
Publication of JP2013218387A publication Critical patent/JP2013218387A/ja
Application granted granted Critical
Publication of JP5948111B2 publication Critical patent/JP5948111B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Description

本発明は、パケット通信装置および方法に関する。
ウェブシステムにおいて、クライアント側で、サーバからの情報を表示しようとする場合、クライアントサーバ間で、ウェブブラウザはHTMLを解析し、オブジェクトを発見するたびにそのオブジェクトに対するGETリクエストをサーバに送信する。通常ブラウザから一つのサーバへの同時接続数は制限されているため、ウェブページの読み込みにはクライアント・サーバ間の往復が多数回行われることとなる。
クライアントとサーバが大陸間海底ケーブルなどの遅延の大きなワイドエリアネットワーク (Wide Area Network: WAN)により接続されている場合、ハイパーテキスト転送プロトコル (Hyper Text Transfer Protocol: HTTP)による通信は、効率が著しく低下する。遅延の大きなネットワークでは、クライアントがリクエストを送信してからサーバからレスポンスが返ってくるまで長い時間がかかり、クライアントはその間待機する必要を生じる。これが多数回行われるためウェブページをリクエストしてから表示が完了するまでの時間が長くなる。
例えば、クライアントとサーバが、衛星回線を通じて通信し、HTTPプロトコルに従って、サーバから衛星回線を介してダウンロードされるウエブページのインラインオブジェクトの呼び出し遅れを防ぐために、分散プロキシサーバが、基本コンポーネントの取得時に、インラインオブジェクトを先読みする技術が特許文献1に開示されている。
また、HTTP方式を拡張して、サーバ上のファイルを容易に編集可能としたWebDAV (Web Distributed Authoring and Versioning) という方式がある(非特許文献1)。WebDAVではサーバ上のファイルやフォルダをWebDAVクライアント経由で操作可能である。WebDAVでもHTTPと同様のリクエストが用いられるほか、フォルダ内のファイルに関するプロパティ情報を取得するためのPROPFINDというリクエストが用いられる。
しかしながら、WebDAVではHTTPと異なり、ファイルが基本コンポーネントとそれに付随するインラインオブジェクトのような主従関係になっておらず、特許文献1の技術を適用しても、ファイルの関係性を見出すことができないため先読みすることはできない。
そこで、本発明では、WebDAVをWAN経由で利用する場合に、適切なファイル一覧の取得方法を実現することを、一目的とする。
また、WebDAVではファイル一覧の情報を取得したとしても、次のリクエストが判明しないとそれらのファイルを転送するべきか否かを断定できないため、ファイルの転送が不要な場合にもファイルの転送を行ってしまう。そこで本発明では、必要な場合のみに複数のファイルを効率的に転送することを他の目的とする。また、WebDAVをWAN経由で利用する場合に適切なファイルの高速転送を実現することを他の目的とする。
少なくともいずれか一の課題を解決するために、本発明の一態様は、クライアントと接続されるクライアント側プロキシと、サーバと接続されるサーバ側プロキシとを含むシステムで、前記クライアントおよび前記サーバの間の通信を中継する通信方法であって、前記クライアントと前記サーバの間で前記クライアントからのリクエストに対して前記サーバがレスポンスを送信する形式の通信方法において、前記クライアントからが送信される第一のリクエストで取得される複数ファイルのリストを含むレスポンスを、クライアントに送信し、前記クライアントから、前記リストに関連する第二のリクエストを受領した場合、 前記クライアントからのリクエストを待たずに、前記サーバに対して前記リストに該当する複数ファイルを取得するためのリクエストを送信し、前記複数ファイル取得リクエストに対するレスポンスとして前記複数ファイルのリストに該当する前記複数ファイルの実体を、前記サーバからプリフェッチする、ことを特徴とする通信方法。
また別の態様は、クライアント装置とサーバ装置間で、サーバに格納されるデータの通信制御を行うプロキシシステムであって、クライアントと通信するクライアント通信部と、サーバと通信するサーバ通信部と、前記クライアントからの、第一のリクエストに対するレスポンスに含まれる複数の情報のうち、少なくともいずれか一の情報の取得要求を前記クライアントから受信した場合、前記レスポンスに含まれる複数の情報の取得要求を、サーバに送信し、前記複数の情報取得要求に対するレスポンスを、前記サーバからの受領した場合、前記クライアントに当該レスポンスを送信する、送信制御部と、を有する態様である。
HTTPやWebDAVに従う通信で、サーバからクライアントへの複数ファイルを効率的に転送する。
本発明の実施例1における通信方式を表すシーケンス図である。 本実施例におけるネットワーク構成図である。 本実施例におけるクライアント側プロキシの内部構成を表す図である。 本実施例におけるサーバ側プロキシの内部構成を表す図である。 本実施例におけるクライアント側プロキシおよびサーバ側プロキシのデータ管理テーブルを表す図である。 本発明の実施例1におけるクライアント側プロキシの動作を表すフローチャートである。 本発明の実施例1におけるサーバ側プロキシの動作を表すフローチャートである。 本発明の実施例2における通信方式を表すシーケンス図である。 本発明の実施例2におけるクライアント側プロキシの動作を表すフローチャートである。 本発明の実施例2におけるサーバ側プロキシの動作を表すフローチャートである。 本発明の実施例3における通信方式を表すシーケンス図である。 本発明の実施例3におけるクライアント側プロキシの動作を表すフローチャートである。 本発明の実施例3におけるサーバ側プロキシの動作を表すフローチャートである。 本発明の実施例4における通信方式を表すシーケンス図である。 本発明の実施例4におけるクライアント側プロキシの内部構成を表す図である。 本発明の実施例4におけるサーバ側プロキシの内部構成を表す図である。 本発明の実施例4におけるクライアント側プロキシおよびサーバ側プロキシのデータ管理テーブルを表す図である 本発明の実施例4におけるクライアント側プロキシの動作を表すフローチャートである。 本発明の実施例4におけるサーバ側プロキシの動作を表すフローチャートである。
図2は本実施例におけるネットワーク構成を表す図である。
クライアント(11)と同一のLAN(13)内にクライアント側プロキシ(12)を設置し、クライアント側プロキシ(12)がWAN(14)との通信を行う。同様に、サーバ(16)と同一のLAN(17)内にサーバ側プロキシ(15)を設置し、サーバ側プロキシ(15)がWANとの通信を行う。クライアント側プロキシ(12)とサーバ側プロキシ(15)が協調して動作することにより、LANに比べて遅延の大きなWANでも性能劣化を抑えて通信を行うことを可能とする。
本実施例では、クライアント側プロキシ(12)とサーバ側プロキシ(15)が協調して動作するシステムを説明するが、クライアント側プロキシ(12)あるいはサーバプロキシ(15)が他方のプロキシの動作を兼ねて、他方の処理を省略するプロキシシステムであってもよい。
本発明の第一の実施例における通信シーケンスを図1に示す。図1では通信にかかわる、少なくとも一以上のクライアント(11)、クライアント側プロキシ(12)、サーバ側プロキシ(15)、およびサーバ(16)のシーケンスを示している。
クライアントがサーバ上のフォルダにアクセスする際、まず、クライアントは、そのフォルダに対してPROPFINDというリクエスト(101)を発行する。このリクエストは、クライアント側プロキシ(12)で受信され、サーバ側プロキシ(15)へとWANを介してを転送される(111)。
サーバ側プロキシ(15)は、PROPFINDを受信すると、サーバ(16)へさらに転送する(121)。PROPFINDを受信したサーバ(16)はそれに対するレスポンスを生成し、クライアントに向けてWAN側へ返送する(122)。このレスポンスにはフォルダ内のファイル一覧が含まれる。同レスポンスはサーバ側プロキシ(15)でクライアント側プロキシ(12)へ転送され(112)、サーバ側プロキシ(15)は、PROPFINDに対するレスポンスを解析し、フォルダ内のファイル一覧を取得する。さらにクライアント側プロキシ(12)でクライアント(11)へ転送される(102)。クライアント側プロキシ(12)でも同様にこのレスポンスを解析し、ファイル一覧を取得する。クライアント(11)はクライアント側プロキシ(12)およびサーバ側プロキシ(15)とは、別にこのレスポンスを解析してファイル一覧を取得する。
ファイル一覧を取得したクライアント(11)は、各ファイルに対して順にリクエストを送信する。クライアント(11)から送信された最初のファイルに対するリクエスト(103)は、クライアント側プロキシ(12)によって転送され(113)、サーバ側プロキシ(15)によって転送されて(123)サーバ(16)によって受信される。サーバ(16)はリクエスト(123)に対するレスポンスとしてファイルを送信する(124)。
まず、サーバ側プロキシ(15)の動作を説明する。レスポンス(124)を受信したサーバ側プロキシ(15)はこれをクライアント側プロキシ(12)へ転送する(114)。同時に、サーバ側プロキシ(15)はファイル一覧中の次のファイルに対するリクエストを、クライアント(11)に代わってサーバ(16)に送信する(125)。サーバ(16)はこれに対するレスポンスとしてファイルを送信する(126)。該当ファイル(ファイル一覧のうちいずれか一のファイル)を受信したサーバ側プロキシ(15)は、このファイルをクライアント側プロキシ(12)へ転送(115)するとともに、ファイル一覧に次のファイルがあればそれに対するリクエストを送信する(127)。サーバ側プロキシ(15)が同リクエストに対するレスポンスを受信(128)するとこれをクライアント側プロキシ(12)へ転送する(116)。サーバ側プロキシ(15)は、ファイル一覧に次のファイルがないので、ファイル一覧を破棄して動作を完了する。
次に、クライアント側プロキシ(12)の動作を説明する。クライアント側プロキシ(12)はファイル1のレスポンスを受信(114)し、ファイル1を取得すると、ファイル1をクライアント(11)へ転送する(104)。クライアント(11)はファイル2に対するリクエストを送信する(105)。一方でファイル2のレスポンスはサーバ側プロキシ(15)より送信されるされる(115)ので、クラアント側プロキシ(12)は、ファイル2に対するリクエストとレスポンスがそろった段階で、クライアント(11)に対してレスポンスを送信する(106)。同様の動作をファイル一覧中の全てのファイルに対して繰り返し(107,116,108)、ファイル一覧を破棄して動作を完了する。
上記動作は、クライアント側プロキシ(12)、サーバ側プロキシ(15)の双方にてクライアント(11)およびサーバ(16)の組ごとに独立に行われる。クライアント(11)およびサーバ(16)の識別はパケットヘッダ中のIPアドレスを用いて行う。
以上により、「PROPFIND」に対するレスポンスに含まれる「207 Multi−Status」に該当するファイルの指定を受けたの契機にサーバ側プロキシ15が、「207 Multi−Status」に対応する複数ファイルの読み出しを実行し、クライアント側プロキシ12に「200 OK」により、それぞれファイル1−3を送る例を示した。
図3はクライアント側プロキシ(12)の内部構成を表す図である。サーバ側プロキシ(12)は、クライアント11とサーバ16の間の通信を仲介し、パケットを送受信する通信装置であって、クライアント11とWANの間にあるのが一例である。または、クライアント側の局所ネットワークのゲートウェイ装置であってもよい。クライアントは、例えば情報処理装置、無線情報処理端末である。局所ネットワークは、有線、無線少なくともいずれかで構成されてもよい。
LAN側コネクション管理部(301)はクライアント(11)との通信を行う。クライアント(11)からのリクエストはリクエスト判定部(302)にて、リクエストを送信したクライアント(11)が識別される。また、そのリクエストがPROPFINDやGETなど、プリフェッチ動作の契機となるものかどうかが判定される。
プリフェッチ動作中でないとき、受信したリクエストはそのままリクエスト送信部(305)に送られ、サーバ側プロキシ(15)へ送信される。プリフェッチ動作中はリクエストは一旦データ管理部(304)に登録される。
データ管理部(304)はIPアドレスで識別されるクライアント(11)ごとにテーブルを持ち、リクエスト・レスポンスの状態とそのデータを管理する。例えばクライアントが3台あれば3つのテーブル(311〜313)を持つ。リクエストを受信すればそのパス名をキーとしてテーブルを検索して、リクエスト受信済みのフラグを立てる。またプリフェッチされたレスポンスを受信すればレスポンス受信済みのフラグを立てる。テーブルのエントリは定期的に調べられ、リクエスト受信済みかつレスポンス受信済みであれば、レスポンスをレスポンス送信部(303)を介して、クライアントへ送信する。リクエスト受信時にレスポンスが登録されていなければ、リクエストをリクエスト送信部(305)を介してサーバ側プロキシ(15)へ送信してもよい。
リクエスト送信部(305)は、リクエスト判定部(302)またはデータ管理部(304)から受け取ったリクエストをWAN側コネクション管理部(307)を用いて送信する。
WAN側コネクション管理部(307)は、WANを通じてサーバ側プロキシ(15)との通信の制御を行う。
レスポンス解析部(306)ではサーバ側プロキシ(15)から受信したレスポンスのIPアドレスを解析して、どのクライアント(11)に対するものであるか判断する。また、PROPFINDに対するレスポンスであればその内容も解析しファイル一覧を取得してデータ管理部(304)に登録する。同時にレスポンス送信部(303)に渡してクライアント(11)へ転送する。GETに対するレスポンスであればデータ管理部(304)に登録する。
レスポンス送信部(303)ではレスポンス解析部(306)またはデータ管理部(304)から受信したレスポンスデータをLAN側コネクション管理部(301)に渡してクライアント(11)へ転送する。
図4はサーバ側プロキシ(15)の内部構成を表す図である。サーバ側プロキシ(15)は、クライアントとサーバの間の通信を仲介し、パケットを送受信する通信装置であって、サーバとWANの間にあるのが一例である。または、サーバ側の局所ネットワークのゲートウェイ装置であってもよい。サーバは、例えば情報処理装置である。サーバ側の局所ネットワークは、有線、無線少なくともいずれかで構成されてもよい。WAN側コネクション管理部(401)はクライアント側プロキシ(12)との通信を行う。
クライアント側プロキシからのリクエストはリクエスト判定部(402)にて、リクエストを送信したクライアント(11)が識別される。また、そのリクエストがPROPFINDやGETなど、プリフェッチ動作の契機となるものかどうかが判定される。
プリフェッチ動作中でないとき、受信したリクエストはそのままリクエスト送信部(405)に送られ、サーバへ送信される。プリフェッチ動作中の場合、リクエストは、一旦データ管理部(404)に登録される。
データ管理部(404)は、クライアント側プロキシ(12)と同様にクライアント(11)ごとにデータ管理テーブルを持ち、リクエスト・レスポンスの状態とそのデータを管理する。例えばクライアント(11)が3台あれば3つのテーブル(411〜413)を持つ。プリフェッチ動作中は、テーブルは定期的に調べられ、プリフェッチ未了のエントリがあればプリフェッチを行うため、リクエスト送信部(405)へURLを渡す。クライアント側プロキシ(12)からリクエストを受信した場合、該当レスポンスを送信していなければ、そのリクエストを優先的にリクエスト送信部(405)へ渡し、サーバ(16)へ送信する。
リクエスト送信部(405)は、リクエスト判定部(402)またはデータ管理部(404)から受け取ったリクエストをLAN側コネクション管理部(407)を用いて送信する。LAN側コネクション管理部(406)は、サーバ側プロキシ(15)とサーバ(16)との通信を制御する。
レスポンス解析部(406)ではサーバ(15)から受信したPROPFINDに対するレスポンスを解析しファイル一覧を取得してデータ管理部(404)に登録する。同時にレスポンス送信部(403)を介してクライアント(16)へ転送する。またレスポンスがGETに対するレスポンスであればデータ管理部(404)に登録する。
レスポンス送信部(403)は、レスポンス解析部(406)またはデータ管理部(404)から受信したレスポンスデータをWAN側コネクション管理部(401)を介してクライアント側プロキシ(12)へ転送する。
図5は、(a)クライアント側プロキシおよび(b)サーバ側プロキシのデータ管理部における、データ管理テーブル(311,411)を示す。クライアント側プロキシのデータ管理テーブル(311)は対象となるファイルごとに、ファイルのURL(351)、プリフェッチしたレスポンス(352)、および1または0の値をとる3種類のフラグを持っている。フラグは「クライアントからリクエスト受信済み(353)」、「サーバ側プロキシからレスポンス受信済み(354)」、「クライアントにレスポンス送信済み(355)」である。
「クライアントからリクエスト受信済み(353)」フラグは、そのファイルに対するリクエストをクライアントから受信したとき1に設定される。フラグの値は、0,1以外であっても、クライアントからのリクエストが受信されたかか否かを、識別できる値を用いてもよい。
「サーバ側プロキシからレスポンス受信済み(354)」フラグはそのファイルをサーバ側プロキシから受信したとき1に設定される。フラグの値は、1以外であっても、サーバ側プロキシからレスポンスが受信されたかか否かを、識別できる値を用いてもよい。これらのフラグの両方が1となっていれば、レスポンスはクライアント側プロキシからクライアントへ送信され、「クライアントにレスポンス送信済み(355)」フラグが1に設定される。「クライアントにレスポンス送信済み(355)」フラグが1であれば該当エントリは削除される。
サーバ側プロキシのデータ管理テーブルは対象となるファイルごとに、ファイルのURL(451)、プリフェッチしたレスポンス(452)、および1または0の値をとる3種類のフラグを持っている。フラグは「サーバにプリフェッチリクエスト送信済み(453)」、「クライアント側プロキシからリクエスト受信済み(454)」、「サーバからレスポンス受信済み(456)」である。
「サーバにプリフェッチリクエスト送信済み(453)」フラグは、そのファイルに対するリクエストをサーバに送信したとき1に設定される。フラグの値は、0,1以外であっても、サーバにプリフェッチリクエストが送信されたかか否かを、識別できる値を用いてもよい。「クライアント側プロキシからリクエスト受信済み(454)」フラグはクライアント側プロキシからリクエストを受信したときに1に設定される。「サーバからレスポンス受信済み(455)」フラグはサーバからレスポンスを受信したときに1に設定される。このフラグが1のときにレスポンスはクライアント側プロキシに送信され、エントリが削除される。
図6はクライアント側プロキシ(12)の動作を表すフローチャートである。初期状態ではLAN側でパケットを受信するまで待機する(501)。クライアント側プロキシ(12)は、LAN側でパケットを受信すると、送信元および宛先IPアドレスごとに分離する(502)。そのパケットがPROPFINDリクエストであれば(503)、クライアント側プロキシ(12)は、サーバ側プロキシへ転送して(504)、GET待ち状態へ移行する。その他のリクエストであれば(551)、同様にサーバ側プロキシへ転送する(552)が、プリフェッチの準備は行わず、サーバ側プロキシ(15)からレスポンスを受信するのを待って(553)それをクライアント(11)へ転送し(554)、初期状態(501)へ戻る。
サーバ側プロキシへ転送したPROPFIND(504)のレスポンスが受信されるまで、クライアント側プロキシ(12)は、当該PROPFIND(504)に関する処理を待機する(505)。PROPFIND(504)のレスポンスが受信されると、クライアント側プロキシ(12)は、そのレスポンスをクライアント(11)へ転送する(506)。また、クライアント側プロキシ(12)は、このレスポンスを解析してファイル一覧を作成し、データ管理部(404)に登録する(507)。
続いて、クライアント側プロキシ(12)は、クライアントからのGETリクエストを待ちうける(508)。GETを受信すると、クライアント側プロキシ(12)は、これをサーバ側プロキシ(15)へ転送し(509)、GETリクエストに対するレスポンスを受信するまで待機する(510)。クライアント側プロキシ(12)は、受信されればクライアント(11)へ転送(511)し、サーバ側プロキシ(15)からのプリフェッチデータを待ちうける(512)。GET以外のリクエストを受信した場合(555)は、同様にサーバ側プロキシ(15)へ転送する(556)が、WAN側からレスポンスを受信するのを待って(557)それをクライアント(11)へ転送し(558)、初期状態(501)へ戻る。
サーバ側プロキシ(15)からのプリフェッチデータを受信すると(512)、クライアント側プロキシ(12)は、これをデータ管理部(304)に保存して(513)、クライアントからのリクエストを待ちうける(514)。リクエストを受信すると、リクエストに該当するファイルをデータ管理部(304)に保存されているプリフェッチデータから読み出し、保存していたプリフェッチデータをレスポンスとしてクライアントに送信する(515)。
ファイル一覧にファイルが残っていれば、512以降を繰り返す(516)。すべてのデータを転送し終わるか、タイムアウトによりプリフェッチしたデータを破棄し初期状態(501)に戻る(517)。
上記動作は、クライアント側プロキシ(12)、サーバ側プロキシ(15)の双方にてクライアント(11)およびサーバ(16)の組ごとに独立に行われる。クライアント(11)およびサーバ(16)の識別はパケットヘッダ中のIPアドレスを用いて行う。
図7は、サーバ側プロキシ(15)の動作を表すフローチャートである。初期状態ではWAN側でパケットを受信するまで待機する(601)。サーバ側プロキシ(15)は、受信すると送信元および宛先IPアドレスごとに分離する(602)。そのパケットがPROPFINDリクエストであれば(603)、サーバ側プロキシ(15)は、サーバ(16)へ転送して(604)GET待ち状態へ移行する。その他のリクエストであれば(651)、サーバ側プロキシ(15)は、サーバ(16)へ転送する(652)が、プリフェッチの準備は行わず、サーバ側プロキシ(15)は、サーバ(16)からレスポンスを受信するのを待って(653)それをクライアント(11)側へ転送し(654)、初期状態(601)へ戻る。
一方、サーバ側プロキシ(15)は、ステップ603の後、サーバ(16)へ転送したPROPFIND(604)のレスポンスが受信されるまで待機し(605)受信されるとクライアント側プロキシ(15)へ転送する(606)。また、サーバ側プロキシ(15)は、PROPFIND(604)に対するレスポンスを解析してファイル一覧を作成し、データ管理部(404)に登録する(607)。
続いてクライアント側プロキシ(12)からのGETリクエストを待ちうける(608)。GETを受信すると、サーバ側プロキシ(15)は、これをサーバ(16)へ転送し(609)、それに対するレスポンスを受信するまで待機する(610)。受信されればクライアント側プロキシ(12)へ転送し(611)、データ管理部(404)に登録されているファイル一覧に従って、次のファイルに対するプリフェッチリクエストを送信する(612)。GET以外のリクエストを受信した場合(655)は、サーバ側プロキシ(15)は、にサーバへ転送する(656)が、サーバ(16)からレスポンスを受信するのを待って(657)それをクライアント側プロキシ(12)へ転送し(658)、初期状態(601)へ戻る。
一方、ステップ612に対してサーバ(16)からのプリフェッチデータを受信すると(613)、サーバ側プロキシ(15)は、クライアント側プロキシに送信する(614)。
ファイル一覧に従って、サーバ側プロキシ(15)は、サーバから受信されていないファイルが残っていれば、612以降を繰り返す(615)。すべてのデータを転送し終わるか、タイムアウトによりプリフェッチしたデータを破棄し初期状態(601)に戻る(616)。
上記動作は、クライアント側プロキシ(12)、サーバ側プロキシ(15)の双方にてクライアント(11)およびサーバ(16)の組ごとに独立に行われる。クライアント(11)およびサーバ(16)の識別はパケットヘッダ中のIPアドレスを用いて行う。
本発明の第二の実施例における通信シーケンスを図8に示す。図8では通信にかかわる、クライアント(11)、クライアント側プロキシ(12)、サーバ側プロキシ(15)、およびサーバ(16)のシーケンスを示している。本実施例の方式により、実施例1の場合と比べて同等の通信効率を保ちながら、WAN上の通信をWebDAVの標準プロトコルにのっとったものとする。それによりWAN上の通信がファイアウォール、Intrusion Detection System/Intrusion Protection System、Deep Packet Inspectionなどのセキュリティシステムにより、異常な通信であると判断されて遮断されることを防ぐことができる。
手順701、702、711、712、721、722は、図1の手順101、102、111、112、121、122と同様にPROPFINDのリクエストとそのレスポンスと同様である。
ファイル一覧を取得したクライアント(11)は、各ファイルに対して順にリクエストを送信する。クライアント(11)から送信された最初のファイルに対するリクエスト(703)は、クライアント側プロキシ(12)によって受信される。クライアント側プロキシ(12)は、このリクエストを解析して、PROPFINDリクエストに対するレスポンスであるファイル一覧中に含まれるファイル(ファイル1)であると判断すると、このリクエストをサーバ側プロキシ(15)へ転送する(713)。さらに、クライアント側プロキシ(12)は、クライアントからのリクエスト(707)で指定されるファイル(ファイル1)ではないが、ファイル一覧にある他のファイル(ファイル2、3)に対するリクエスト(714、715)も発行する。これらのリクエストは前のリクエストに対するレスポンスを待つことなくサーバ側プロキシ(15)へ送信される(714,715)。
サーバ側プロキシ(15)は、クライアント側プロキシ(12)からのリクエストを受信(713)すると、ファイル一覧中のファイルで、クライアントからの最初のリクエストで指定されたファイル(ファイル1)に対するリクエストを、クライアント(11)に代わってサーバ(16)に送信する(723)。サーバ(16)は、これに対するレスポンスとしてファイル1を送信する(724)。これを受信したサーバ側プロキシ(15)は、このファイルをクライアント側プロキシ(12)へ転送(716)する。
また、サーバ側プロキシ(15)は、サーバ(16)からのファイル1の受信に応じて、受信したファイル1が含まれるファイル一覧に次のファイル(ファイル2)があればそれに対するリクエストを送信する(725)。サーバ側プロキシ(15)が同リクエストに対するレスポンスを受信(726)すると、これをクライアント側プロキシ(12)へ転送する(717)。さらに、次のファイルも、ステップ725、726、717と同様にプリフェッチを行うと(727,728,718)、サーバ側プロキシ(15)は、ファイル一覧に次のファイルがない場合、ファイル一覧を破棄して動作を完了する。このリクエストは前のリクエストに対するレスポンスを受信してから開始してもよいし、複数のリクエストを同時に送信してもよい。
クライアント側プロキシ(12)は、ファイル1のレスポンスを受信(716)すると、これをクライアント(11)へ転送する(704)。クライアント(11)はファイル2に対するリクエストを送信する(705)。一方でファイル2のレスポンスは、サーバ側プロキシ(15)より受信される(717)ので、ファイル2に対するリクエストとレスポンスがそろった段階で、クライアント(11)に対してレスポンスを送信する(706)。同様の動作をファイル一覧中の全てのファイルに対して繰り返し(718,707,708)、ファイル一覧を破棄して動作を完了する。
上記動作は、クライアント側プロキシ(12)、サーバ側プロキシ(15)の双方にてクライアント(11)およびサーバ(16)の組ごとに独立に行われる。クライアント(11)およびサーバ(16)の識別はパケットヘッダ中のIPアドレスを用いて行う。
図9は第二の実施例におけるクライアント側プロキシ(12)の動作を表すフローチャートである。ステップ801ないし807、851ないし854は、図6のステップ501ないし507、551ないし554と同様である。
続いてクライアントからのGETリクエストを待ちうける(808)。クライアント側プロキシ(12)は、GETリクエストを受信するとこれを契機にファイル一覧中のファイルに対してプリフェッチリクエストを発行する(809)。このリクエストは前のリクエストに対するレスポンスを待たずに送信される。ファイル一覧中の全てのファイルに対してリクエストを送信するまでこれを繰り返す(810)。GET以外のリクエストを受信した場合(855)は、同様にサーバ側プロキシ(15)へ転送する(856)が、WAN側からレスポンスを受信するのを待って(857)それをクライアント(11)へ転送し(858)、初期状態(801)へ戻る。
サーバ側プロキシ(15)から最初のリクエストに対するレスポンスを受信すると(811)、クライアント側プロキシ(12)は、これをクライアントへ転送する(812)。クライアント側プロキシ(12)は、サーバ側プロキシ(15)からのプリフェッチデータを受信すると(813)、これをデータ管理部(304)に保存して(814)、クライアントからのリクエストを待ちうける(815)。リクエストを受信すると、クライアント側プロキシ(12)は、保存していたデータをレスポンスとしてクライアントに送信する(816)。
ファイル一覧にファイルが残っていれば、812以降を繰り返す(817)。すべてのデータを転送し終わるか、タイムアウトによりプリフェッチしたデータを破棄し初期状態(801)に戻る(818)。上記動作は、クライアント側プロキシ(12)、サーバ側プロキシ(15)の双方にてクライアント(11)およびサーバ(16)の組ごとに独立に行われる。クライアント(11)およびサーバ(16)の識別はパケットヘッダ中のIPアドレスを用いて行う。
図10は第二の実施例におけるサーバ側プロキシ(15)の動作を表すフローチャートである。ステップ901ないし907、951ないし954は、図7のステップ601ないし607、651ないし654と同様である。 続いてクライアント側プロキシ(12)からのプリフェッチリクエストを待ちうける(908)。プリフェッチリクエストは、ファイル一覧に含まれるファイルの数に対応して複数送られるため、サーバ側プロキシ(15)は、ファイル一覧に含まれるファイルの数に対応する全てのリクエストを受信するまでこれを繰り返す(909)。続いて、プリフェッチリクエストを順次サーバ(16)へ転送し(910)、それに対するレスポンスを受信するまで待機する(911)。サーバ側プロキシ(15)は、レスポンスが受信されればクライアント側プロキシ(12)へ、それらを転送する(912)。GET以外のリクエストを受信した場合(955)は、サーバ側プロキシ(15)は、同様にサーバ(16)へ転送する(956)が、サーバ側プロキシ(15)は、サーバ(16)からGET以外のリクエストに対応するレスポンスを受信するのを待って(957)それをクライアント側プロキシ(12)へ転送し(958)、初期状態(901)へ戻る。
ファイル一覧にサーバから取得していないファイルが残っていれば、910以降を繰り返す(913)。すべてのデータを転送し終わるか、タイムアウトによりプリフェッチしたデータを破棄し初期状態(901)に戻る(914)。上記動作は、クライアント側プロキシ(12)、サーバ側プロキシ(15)の双方にてクライアント(11)およびサーバ(16)の組ごとに独立に行われる。クライアント(11)およびサーバ(16)の識別はパケットヘッダ中のIPアドレスを用いて行う。
装置内の構成については実施例1の場合と同様であるので、ここでは省略する。
以上の実施例2の説明により、WebDAVに従った通信により得られた情報を用いて、プリフェッチするリクエストとレスポンスとを対応づけ、プロキシ間での通信制御を行うことを説明した。その制御により、WAN上の通信がファイアウォール、Intrusion Detection System/Intrusion Protection System、Deep Packet Inspectionなどのセキュリティシステムにより、プリフェッチするための通信が、異常な通信であると判断されて遮断されることを防ぐことができる。
本発明の第三の実施例における通信シーケンスを図11に示す。この例では実施例2の方式をHTTPに適用している。本実施例の方式により、実施例2の場合と同様に、WAN上の通信はHTTPの標準にのっとったものとなるため、セキュリティシステムにより異常な通信として判断され遮断されることを防ぐことができる。
クライアントが、サーバからウェブページを読み込む場合、まずHTMLファイルに対してGETというリクエスト(1001)を発行する。これはクライアント側プロキシ(12)で受信され、サーバ側プロキシ(15)へとWAN上を転送される(1011)。サーバ側プロキシ(15)はこれを受信すると、サーバ(16)へさらに転送する(1021)。HTMLに対するGETを受信したサーバ(16)は、そのHTMLファイルをクライアントへ返送する(1022)。このレスポンス(1022)は、HTTPに従った「200 OK」というレスポンスであり、フォルダ内のファイル一覧が含まれる。同レスポンスはサーバ側プロキシ(15)でクライアント側プロキシ(12)へ転送され(1012)、サーバ側プロキシ(15)は、このレスポンスを解析することによりフォルダ内のファイル一覧を取得する。さらにクライアント側プロキシ(12)でクライアント(11)へ転送される(1002)。クライアント側プロキシ(12)でも同様にこのレスポンスを解析し、ファイル一覧を取得する。クライアント(11)はクライアント側プロキシ(12)およびサーバ側プロキシ(15)とは、独立してこのレスポンスを解析してファイル一覧を取得する。
ファイル一覧を取得したクライアント(11)は、各ファイルに対して順にリクエストを送信する。クライアント(11)から送信された最初のファイルに対するリクエスト(1003)は、クライアント側プロキシ(12)によって受信される。
クライアント側プロキシ(12)は、このリクエストを解析して、ファイル一覧中に含まれるファイルであると判断すると、このリクエストをサーバ側プロキシ(15)へ転送する(1013)。クライアント11からのリクエストで指定されるファイルが「200 OK」のレスポンス(1012)で取得したファイル一覧中に含まれるファイル(file 1)であると、クライアント側プロキシ(12)が判断すると、そのファイル一覧の他のファイル(file2, 3)に対するリクエストも発行する。これらのリクエストは前のリクエストに対するレスポンスを待つことなくサーバ側プロキシ(15)へ送信される(1014,1015)。つまり、クライアントからファイル一覧に含まれる一のファイルを指定するリクエストがくると、クライアント側プロキシ(12)は、ファイル一覧に含まれる他のファイルについてのリクエストも、クライアント(11)からのリクエストを待つことなく、サーバ側プロキシ(15)にプリフェッチリクエスト(1014、1015)を発行する。
サーバ側プロキシ(15)は、クライアント側プロキシ(12)からのリクエストを受信(1013)すると、ファイル一覧中のファイルに対するリクエストを、クライアント(11)に代わってサーバ(16)に送信する(1023)。サーバ(16)はこれに対するレスポンスとしてファイルを送信する(1024)。
これを受信したサーバ側プロキシ(15)は、このファイルをクライアント側プロキシ(12)へ転送(1016)するとともに、レスポンス(1022)で取得したファイル一覧に他のファイルがあればそれに対するリクエストをサーバ(16)に送信する(1025)。
サーバ側プロキシ(15)は、同リクエストに対するレスポンスを受信(1026)すると、これをクライアント側プロキシ(12)へ転送する(1017)。他のファイルも同様にプリフェッチを行う(1027,1028,1018)。なお、サーバ側プロキシ(15)は。クライアント側プロキシ(12)から送信されるプリフェッチリクエストに対応するファイルのリクエストをサーバ(16)送信してもよい。サーバ側プロキシ(15)は、ファイル一覧に次のファイルがないので、ファイル一覧を破棄して動作を完了する。このリクエストは前のリクエストに対するレスポンスを受信してから開始される。
クライアント側プロキシ(12)は、ファイル1のレスポンスを受信(1016)すると、これをクライアント(11)へ転送する(1004)。クライアント(11)は、ファイル一覧に含まれるファイル2に対するリクエストを送信する(1005)。一方でファイル2のレスポンスはサーバ側プロキシ(15)から送信される(1017)ので、クライアント側プロキシ(12)は、ファイル2に対するリクエストを保持し、レスポンスを受領した場合に、クライアント(11)に対して、保持しているファイル2に対するリクエストに対応するレスポンスを送信する(1006)。同様の動作をファイル一覧に含まれるファイルに対して繰り返し(1018,1007,1008)、ファイル一覧をバッファから破棄して動作を完了する。
上記動作は、クライアント側プロキシ(12)、サーバ側プロキシ(15)の双方にてクライアント(11)およびサーバ(16)の組ごとに独立に行われる。クライアント(11)およびサーバ(16)の識別はパケットヘッダ中のIPアドレスを用いて行う。
図12は、実施例3におけるクライアント側プロキシ(12)の動作を表すフローチャートである。初期状態ではLAN側でパケットを受信するまで待機する(1101)。受信すると送信元および宛先IPアドレスごとに分離する(1102)。そのパケットがHTMLに対するGETリクエストであれば(1103)サーバ側プロキシへ転送して(1104)GET待ち状態へ移行する。その他のリクエストであれば(1151)、同様にサーバ側プロキシ(15)へ転送する(1152)が、プリフェッチの準備は行わず、サーバ側プロキシ(15)からレスポンスを受信するのを待って(1153)それをクライアント(11)へ転送し(1154)、初期状態(1101)へ戻る。
サーバ側プロキシへ転送したHTMLに対するGET(1104)のレスポンスが受信されるまで待機し(1105)受信されるとクライアント(11)へ転送する(1106)。同時にこのレスポンスを解析してファイル一覧を作成し、データ管理部(304)に登録する(1107)。
続いてクライアントからのGETリクエストを待ちうける(1108)。ファイル一覧に含まれるファイルに対するGETリクエストを受信すると、クライアント側プロキシは、これを契機にファイル一覧中のファイルに対してプリフェッチリクエストを発行する(1109)。これらのリクエストは前のリクエストに対するレスポンスを待たずに送信される。また、クライアントからのGETリクエストで指定されるファイルだけでなく、GETリクエストで特定されるファイル一覧に含まれるファイルに対してリクエストを送信するまでこれを繰り返す(1110)。GET以外のリクエストを受信した場合(1155)は、同様にサーバ側プロキシ(15)へ転送する(1156)が、WAN側からレスポンスを受信するのを待って(1157)それをクライアント(11)へ転送し(1158)、初期状態(1101)へ戻る。
サーバ側プロキシ(15)から最初のリクエストに対するレスポンスを受信すると(1111)、クライアント側プロキシ(12)は、これをクライアントへ転送する(1112)。サーバ側プロキシ(15)からのプリフェッチデータを受信すると(1113)、クライアント側プロキシ(12)は、これをデータ管理部(304)に保存して(1114)、クライアントからのリクエストを待ちうける(1115)。クライアントからのリクエストを受信すると、クライアント側プロキシ(12)は、当該リクエストで指定されるファイルに対応する、ファイルを保存していたデータから読み出し、そのデータをレスポンスとしてクライアントに送信する(1116)。
クライアント側プロキシ(12)は、ファイル一覧にファイルが残っていれば、1112以降を繰り返す(1117)。クライアント側プロキシ(12)は、すべてのデータを転送し終わるか、タイムアウトによりプリフェッチしたデータを破棄し初期状態(1101)に戻る(1118)。
上記動作は、クライアント側プロキシ(12)、サーバ側プロキシ(15)の双方にてクライアント(11)およびサーバ(16)の組ごとに独立に行われる。クライアント(11)およびサーバ(16)の識別はパケットヘッダ中のIPアドレスを用いて行う。
図13は、実施例3におけるサーバ側プロキシ(15)の動作を表すフローチャートである。初期状態ではWAN側でパケットを受信するまで待機する(1201)。受信すると送信元および宛先IPアドレスごとに分離する(1202)。そのパケットがHTMLに対するGETリクエストであれば(1203)サーバ(16)へ転送して(1204)GET待ち状態へ移行する。その他のリクエストであれば(1251)、同様にサーバ(16)へ転送する(1252)が、プリフェッチの準備は行わず、サーバ(16)からレスポンスを受信するのを待って(1253)それをクライアント(11)へ転送し(1254)、初期状態(1201)へ戻る。
サーバ(16)へ転送したHTMLに対するGET(1204)のレスポンスが受信されるまで待機し(1205)受信されるとクライアント側プロキシ(15)へ転送する(1206)。同時にこのレスポンスを解析してファイル一覧を作成する(1207)。
続いてクライアント側プロキシ(12)からのプリフェッチリクエストを待ちうける(1208)。図11の1014及び1015がプリフェッチリクエストである。リクエストは連続して複数送られるため、全てのリクエストを受信するまでこれを繰り返す(1209)。続いてこれを順次サーバ(16)へ転送し(1210)、それに対するレスポンスを受信するまで待機する(1211)。少なくとも一のレスポンスが受信されれば、サーバ側プロキシ(15)は、そのレスポンスをクライアント側プロキシ(12)へ転送する(1212)。なお、図11の1023ないし1028のように、サーバ側プロキシは、一のファイルのリクエストに対するサーバからのレスポンス受領後に、別のファイルのリクエストを送信していてもよい。
GET以外のリクエストを受信した場合(1255)は、同様にサーバへ転送する(1256)が、サーバ(16)からレスポンスを受信するのを待って(1257)それをクライアント側プロキシ(12)へ転送し(1258)、初期状態(1201)へ戻る。
ファイル一覧にファイルが残っていれば、1210以降を繰り返す(1213)。すべてのデータを転送し終わるか、タイムアウトによりプリフェッチしたデータを破棄し初期状態(1201)に戻る(1214)。 上記動作は、クライアント側プロキシ(12)、サーバ側プロキシ(15)の双方にてクライアント(11)およびサーバ(16)の組ごとに独立に行われる。クライアント(11)およびサーバ(16)の識別はパケットヘッダ中のIPアドレスを用いて行う。
装置内の構成については実施例1の場合と同様であるので、ここでは省略する。
本発明の第四の実施例を図14に示す。この例では実施例1の複数のクライアントが、同一のフォルダをダウンロードした際に、プロキシにて読み込み済みのデータをバッファに保持し、一のクライアントからのアクセスで削除するのではなく、複数のクライアントからのアクセスのためにバッファに保持し、複数のクライアントにファイルを転送することにより、データ転送量の削減を図っている。
この例では実施例1の場合にクライアントB(11b)が追加されており、クライアントA(11a)と同一のフォルダに対しダウンロードを試みている。クライアントA(11a)のシーケンスは実施例1と同様であるので、詳細は省略する。
クライアント側プロキシ(12)では、フォルダカウント(1410)という値を用いてフォルダごとの同時アクセスしているクライアント数を管理する。クライアントA(11a)からのPROPFIND(201)を受信すると、クライアント側プロキシ(12)は、フォルダカウント(1410)を1に更新する。この値が1である間にクライアントB(11b)からPROPFIND(1401)が送信され、これを受信したクライアント側プロキシ(12)は、フォルダカウントを2に更新する(1411)。クライアント側プロキシ(12)は、PROPFINDに対するレスポンスを保持し、これをクライアントB(11b)に送信する(1402)。これを受けて、クライアント(11)がフォルダ内のファイルに対してGETを発行する(1403)。これに対するレスポンスもクライアント側プロキシ(12)が保持しているため、クライアント側プロキシ(12)はそれをそのまま送信する。(1404)。
一方でクライアントA(11a)への転送はファイル3にて終了し(208)、クライアント側プロキシ(12)のフォルダカウントは1となる(1412)。
クライアントB(11b)への転送はファイル2(1405、1406)、ファイル3(1407、1408)と続き、終了する。このときクライアント側プロキシ(12)のフォルダカウントが1であるので、このカウンタおよびフォルダ内のファイルを削除して終了する。
図15はクライアント側プロキシ(12)の内部構成を表す図である。本実施例では、実施例1の構成に共有データプール(1501)とフォルダテーブル(1502)を追加したものとなっている。レスポンスデータはクライアントごとのデータ管理テーブルではなく、クライアント(11a、11b)間で共有される共有データプール(1501)に格納される。また、フォルダテーブル(1502)はフォルダごとにそのフォルダにアクセスしているクライアント数を示すテーブルである。他は図3と同様である。
図16はサーバ側プロキシ(15)の内部構成を表す図である。本実施例では、実施例1の構成に共有データプール(1601)とフォルダテーブル(1602)を追加したものとなっている。これらはクライアント側プロキシのものと同様の機能を持つ。他は図4と同様である。
図17(a)はクライアント側プロキシ(12)のデータ管理部(304)における、データ管理テーブル(311〜313)を示す。また図17(b)はサーバ側プロキシのデータ管理部(404)における、データ管理テーブル(411〜413)を示す。実施例1との違いは、これらのテーブルではレスポンスを管理しないため、レスポンス内容(352、452)の項目がない点である。
図17(c)は共有データプール(1501、1601)のデータテーブルを示す。これは、URL(1551)、レスポンス内容(1552)、ファイルが属するフォルダの情報(1553)を持つ。フォルダの情報は単なるフォルダ名でも、後述するフォルダテーブルのエントリへのポインタでよい。このデータはすべてのクライアント(11a、11b)で共有され、他のクライアントのリクエストによりプリフェッチされたデータであっても、データがこの中にあればこのデータをレスポンスとして送信する。
図17(d)はフォルダテーブル(1502)を示す。これは、フォルダ名(1554)とカウンタ(1555)を持ち、カウンタ(1555)はフォルダごとにそのフォルダにアクセスしているクライアントの数を示しており、1以上の値をとる。フォルダ内全ファイルの転送が完了すると、プロキシはフォルダテーブル(1502)をチェックし、カウンタ(1555)の値が2以上であれば、他にアクセスしているクライアントがいるため同フォルダ内のファイルを削除しない。一方カウンタ(1555)の値が1であった場合は、他にアクセスしているクライアントがいないのでファイルを削除する。
図18はクライアント側プロキシ(12)の動作を表すフローチャートである。初期状態ではLAN側でパケットを受信するまで待機する(1801)。受信すると送信元および宛先IPアドレスごとに分離する(1802)。そのパケットがPROPFINDリクエストであれば(1803)フォルダテーブルをカウントアップする(1804)。その他のリクエストであれば(1851)、同様にサーバ側プロキシ(15)へ転送する(1852)が、サーバ側プロキシ(15)からレスポンスを受信するのを待って(1853)それをクライアント(11)へ転送し(1854)、初期状態(1801)へ戻る。
フォルダカウントが2以上であれば(1805)、他のクライアントが読み込んだデータが存在するため、そのデータ(PROPFINDに対するレスポンス)をレスポンスとしてクライアント(11)へ送信する(1806)。フォルダカウントが1であれば、PROPFINDリクエストをサーバ側プロキシ(15)へ転送して(1807)GET待ち状態へ移行する。サーバ側プロキシ(15)へ転送したPROPFINDのレスポンスが受信されるまで待機し(1808)受信されるとクライアント(11)へ転送する(1809)。同時にこのレスポンスを解析してファイル一覧を作成する(1810)。
続いてクライアントからのGETリクエストを待ちうける(1811)。GET以外のリクエストを受信した場合(1855)は、同様にサーバ側プロキシ(15)へ転送する(556)が、WAN側からレスポンスを受信するのを待って(557)それをクライアント(11)へ転送し(558)、初期状態(501)へ戻る。
GETを受信した場合、フォルダカウントを参照し(1812)、2以上であれば他のクライアントが読み込んだデータが存在するため、そのデータをレスポンスとしてクライアントへ送信する(1813)。フォルダ内の全ファイルを転送完了するかタイムアウトするまでこれを繰り返し(1814)、終了したらフォルダカウントをカウントダウンする(1815)。
フォルダカウントが1であった場合、リクエストをサーバ側プロキシ(15)へ転送し(1816)、それに対するレスポンスを受信するまで待機して(1817)、受信されればクライアント(11)へ転送し(1817)、サーバ側プロキシ(15)からのプリフェッチデータを待ちうける(1818)。 サーバ側プロキシ(15)からのプリフェッチデータを受信すると(1818)、これをデータ管理部(304)に保存して(1820)、クライアントからのリクエストを待ちうける(1821)。リクエストを受信すると保存していたデータをレスポンスとしてクライアントに送信する(1822)。
ファイル一覧にファイルが残っていれば、512以降を繰り返す(1823)。すべてのデータを転送し終わるか、タイムアウトによりフォルダカウントをカウントダウンし、初期状態(1801)に戻る(1824)。
図19はサーバ側プロキシ(15)の動作を表すフローチャートである。初期状態ではWAN側でパケットを受信するまで待機する(1901)。受信すると送信元および宛先IPアドレスごとに分離する(1902)。そのパケットがPROPFINDリクエストであれば(1903)フォルダテーブルをカウントアップする(1904)。その他のリクエストであれば(1951)、同様にサーバ(16)へ転送する(1952)が、サーバ(16)からレスポンスを受信するのを待って(1953)それをクライアント側プロキシ(12)へ転送し(1954)、初期状態(1901)へ戻る。
フォルダカウントが2以上であれば(1905)、他のクライアントが読み込んだデータが存在するため、そのデータ(PROPFINDに対するレスポンス)をレスポンスとしてクライアント側プロキシ(12)へ送信する(1906)。フォルダカウントが1であれば、PROPFINDリクエストをサーバ(16)へ転送して(1907)GET待ち状態へ移行する。サーバ(16)へ転送したPROPFINDのレスポンスが受信されるまで待機し(1908)受信されるとクライアント側プロキシ(12)へ転送する(1909)。同時にこのレスポンスを解析してファイル一覧を作成する(1910)。
続いてクライアント側プロキシ(12)からのGETリクエストを待ちうける(1911)。GET以外のリクエストを受信した場合(1955)は、同様にサーバへ転送する(1956)が、サーバ(16)からレスポンスを受信するのを待って(1957)それをクライアント側プロキシ(12)へ転送し(1958)、初期状態(1901)へ戻る。
GETを受信した場合、フォルダカウントを参照し(1912)、2以上であれば他のクライアントが読み込んだデータが存在するため、そのデータをレスポンスとしてクライアント側プロキシ(12)へ送信する(1913)。フォルダ内の全ファイルを転送完了するかタイムアウトするまでこれを繰り返し(1914)、終了したらフォルダカウントをカウントダウンする(1915)。
フォルダカウントが1であった場合、リクエストをサーバ(16)へ転送し(1916)、それに対するレスポンスを受信するまで待機する(1917)。受信されればクライアント側プロキシ(12)へ転送し(1918)、次のファイルに対するプリフェッチリクエストを送信する(1919)。 サーバ(16)からのプリフェッチデータを受信すると(1920)、クライアント側プロキシに送信する(1921)。ファイル一覧にファイルが残っていれば、1919以降を繰り返す(1922)。すべてのデータを転送し終わるか、タイムアウトによりプリフェッチしたデータを破棄し初期状態(1901)に戻る(1923)。
上述の実施例により、HTTPやWebDAVに従う通信で、サーバからクライアントの利用状況に応じて複数ファイルを効率的に転送するとができる。

Claims (13)

  1. ライアントとサーバの間で前記クライアントからのリクエストに対して前記サーバがレスポンスを送信する形式の通信方法において、
    前記クライアントと前記サーバとに接続され、前記クライアントおよび前記サーバの間の通信を中継するプロキシシステムが、
    前記サーバから取得したファイル一覧を含むレスポンスを、前記クライアントに送信し、
    前記クライアントから、前記ファイル一覧含まれ第一のファイルを指定するのリクエスト信を契機として
    前記クライアントから、前記ファイル一覧に含まれる前記第一のファイル以外の第二のファイルを指定する第二のリクエストを受信しなくても、前記ファイル一覧含まれる、前記第二のファイルをプリフェッチするための第三のリクエストを前記サーバへ送信し、
    前記サーバから、前記第三のリクエストに対するレスポンスである前記第二のファイルプリフェッチする
    ことを特徴とする通信方法。
  2. 請求項1の通信方法であって、
    前記プロキシシステムは、サーバ側プロキシとクライアント側プロキシとを含み、
    前記プリフェッチは、前記サーバ側プロキシで行い、
    前記サーバ側プロキシは、
    一つ以上のファイル取得を要求する第三のリクエストを前記サーバへ送信し、
    前記第三のリクエストに対するレスポンスとしてプリフェッチした一つ以上の前記第二のファイルを前記クライアント側プロキシに送信し、
    前記クライアント側プロキシは、
    前記サーバ側プロキシから前一つ以上の第二のファイルを受信して保存し
    受信した前記第二のファイルの一つを取得するための前記第二のリクエストを前記クライアントから受信した場合に保存している該当する前記第二のファイルの一つを前記クライアントに送信する
    ことを特徴とする通信方法。
  3. 請求項2の通信方法であって、
    前記クライアント側プロキシ
    前記クライアントから前記第のリクエストを受信した後に、前記クライアントから、前記第二のリクエストを受信した場合、
    前記第二のリクエストに対するレスポンスとなるべき前記第二のファイル前記サーバ側プロキシから受信ていない場合に、前記第リクエストを前記サーバ側プロキシに転送する
    ことを特徴とする通信方法。
  4. 請求項3の通信方法であって、
    前記サーバ側プロキシ
    前記クライアント側プロキシから前記第二のファイルを指定する前記第二のリクエストを受信した場合に、
    当該サーバ側プロキシが、前記第二のファイルを指定する前記第三のリクエストを未送信の場合に、前記第二のリクエストを前記第三のリクエストとして他のリクエストより優先的に前記サーバに送信する
    ことを特徴とする通信方法。
  5. 請求項1の通信方法であって、
    前記プロキシシステムは、サーバ側プロキシとクライアント側プロキシとを含み、
    前記クライアント側プロキシは、
    一つ以上のファイル取得を要求する第三のリクエストを前記サーバ側プロキシへ送信し、
    前記サーバ側プロキシは、
    前記第三のリクエストを前記サーバに転送し、
    前記サーバから前記第三のリクエストに対するレスポンスとして一つ以上の前記第二のファイルを受信し、
    前記一つ以上の第二のファイルを前記クライアント側プロキシへ転送し、
    前記クライアント側プロキシは、
    前記サーバ側プロキシから前一つ以上の第二のファイルを受信して保存し
    受信した前記第二のファイルの一つを取得するための前記第二のリクエストを前記クライアントから受信した場合に保存している該当する前記第二のファイルの一つを前記クライアントに送信する
    ことを特徴とする通信方法。
  6. 請求項5の通信方法であって、
    前記クライアント側プロキシは、前記第三のリクエストにより複数のファイル取得を要求する場合、
    前記第三のリクエストにより複数ファイル取得を要求する場合、
    前記第三のリクエストとして、一つのファイル取を要求するリクエストを送信
    当該リクエストに対するレスポンスである一つの前記第二のファイルを受信する前に、次のファイル取を要求する次のリクエストを、前記第三のリクエストとして送信す
    とを特徴とする通信方法。
  7. 請求項の通信方法であって、
    前記クライアント側プロキシは、
    複数の前記クライアントに接続され、
    前記ファイル一覧に含まれ、プリフェッチされた前記第二のファイルを保存し、
    第一の記クライアントがリクエストしたファイルと同一のファイルに対するリクエストを、第二の前記クライアントから受信した場合に、
    前記第二のクライアントに対して保存た前記ファイルを送信する
    ことを特徴とする通信方法。
  8. 請求項の通信方法であって
    前記クライアント側プロキシは、複数の前記クライアントに接続され、
    前記サーバ側プロキシは、
    前記ファイル一覧に含まれプリフェッチされた前記第二のファイルを保存し、
    第一の記クライアントがリクエストしたファイルと同一のファイルに対する、第二の前記クライアントからのリクエストを受信した場合に、
    前記第二のクライアントに対するレスポンスとして保存た前記ファイルを送信する
    ことを特徴とする通信方法。
  9. 請求項記載の通信方法であって、
    前記クライアント側プロキシ及び前記サーバ側プロキシは、WebDAVに従う通信であって、
    前記第一のリクエストは、PROPFINDであり、
    記ファイル一覧は、前記ファイルの実体の場所を示すURLであって、「207 MutliStatus」というレスポンスに含まれ、
    前記第2のリクエスト、当該ファイルの実体の取得を要求するためのGETリクエストであ
    とを特徴とする通信方法。
  10. 請求項記載の通信方法であって、
    前記クライアント側プロキシ及び前記サーバ側プロキシは、HTTPプロトコルに従う通信であって、
    前記第一のリクエストがHTMLファイルに対するGETリクエストであり、
    前記前記ァイル一覧は、「200 OK」というレスポンスに含まれ、
    前記第2のリクエスト、当該ファイルの実体の取得を要求するためのGETリクエストであ
    とを特徴とする通信方法。
  11. クライアントとサーバ間で、前記サーバに格納される情報の通信制御を行うプロキシシステムであって、
    前記クライアントと通信するクライアント通信部と、
    前記サーバと通信するサーバ通信部と、
    通信制御部と、を有し、
    前記通信制御部は、
    前記クライアントからの、第一のリクエストに対して前記サーバから取得したレスポンスが示す、前記サーバに格納されている複数の情報のうち、一つの第一の前記情報の取得要求を前記クライアントから受信したことを契機として、前記レスポンスが示す、前記第一の情報を含む複数の前記情報の取得要求を、前記サーバに送信し、
    前記複数の情報取得要求に対するレスポンスである前記複数の情報を前記サーバから受信した場合、前記クライアントに当該複数の情報を送信す
    とを特徴とするプロキシシステム。
  12. 請求項11記載のプロキシシステムであって、
    前記通信制御部は、
    バッファを備え、
    WebDAVプロトコルに従、前記クライアントからの送信される前記第一のリクエストであるPROPFINDに対する前記サーバからのレスポンスに基づいて、特定されるフォルダに含まれるファイルのURLを用いて、前記フォルダに含まれるいずれか一のファイルの取得要求を前記クライアントから受信した場合、前記フォルダに含まれる他のファイルも前記サーバからプリフェッチして前記バッファに保存し
    前記クライアントからの前記他のファイルの取得要求に応じて、保存したファイルをクライアントに送信す
    とを特徴とするプロキシシステム。
  13. 請求項12記載のプロキシシステムであって、
    前記クライアント通信部は、複数の前記クライアントと通信し、
    前記通信制御部は、前記複数のクライアントから、PROPFINDを受信した場合、前記バッファに保存したファイルを当該複数のクライアントにそれぞれ送信し、当該ファイルを前記バッファから削除す
    とを特徴とするプロキシシステム。
JP2012085993A 2012-04-05 2012-04-05 パケット通信装置および方法 Expired - Fee Related JP5948111B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012085993A JP5948111B2 (ja) 2012-04-05 2012-04-05 パケット通信装置および方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012085993A JP5948111B2 (ja) 2012-04-05 2012-04-05 パケット通信装置および方法

Publications (2)

Publication Number Publication Date
JP2013218387A JP2013218387A (ja) 2013-10-24
JP5948111B2 true JP5948111B2 (ja) 2016-07-06

Family

ID=49590441

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012085993A Expired - Fee Related JP5948111B2 (ja) 2012-04-05 2012-04-05 パケット通信装置および方法

Country Status (1)

Country Link
JP (1) JP5948111B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20260095366A1 (en) * 2024-09-30 2026-04-02 Zoom Communications, Inc. Identifying Firewall Issues Impacting Communication Sessions

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015001784A (ja) * 2013-06-13 2015-01-05 富士通株式会社 情報処理システム、情報処理装置、及び情報処理プログラム
WO2016132501A1 (ja) * 2015-02-19 2016-08-25 富士通株式会社 通信装置、情報処理方法、及び、情報処理プログラム
JP6620788B2 (ja) * 2017-06-15 2019-12-18 富士通クライアントコンピューティング株式会社 データ提供システム、情報処理方法および情報処理プログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4514872B2 (ja) * 2000-01-26 2010-07-28 シャープ株式会社 情報取得装置および情報取得方法、ならびに情報取得プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2003186785A (ja) * 2001-12-14 2003-07-04 Sanyo Electric Co Ltd ローカルサーバ、情報配信システムおよびユーザ端末装置
JP5172169B2 (ja) * 2007-02-16 2013-03-27 シャープ株式会社 コンテンツ表示装置、テレビジョン受像機、コンテンツ表示方法、コンテンツ表示制御プログラム、および記録媒体
JP5439761B2 (ja) * 2008-07-25 2014-03-12 富士通株式会社 コンテンツ再生装置、コンテンツ再生方法およびコンテンツ再生プログラム
JP5442541B2 (ja) * 2010-06-21 2014-03-12 日本電信電話株式会社 Web情報取得方法および装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20260095366A1 (en) * 2024-09-30 2026-04-02 Zoom Communications, Inc. Identifying Firewall Issues Impacting Communication Sessions

Also Published As

Publication number Publication date
JP2013218387A (ja) 2013-10-24

Similar Documents

Publication Publication Date Title
US10778554B2 (en) Latency measurement in resource requests
TWI444079B (zh) 用於在應用層連結/聚合多個介面的方法、處理器、電腦程式產品及裝置
EP2272239B1 (en) Server selection for routing content to a client using application layer redirection
US10630758B2 (en) Method and system for fulfilling server push directives on an edge proxy
Bormann et al. CoAP (constrained application protocol) over TCP, TLS, and WebSockets
US9253065B2 (en) Latency measurement in resource requests
US8924528B1 (en) Latency measurement in resource requests
US10645145B2 (en) Method and apparatus for accelerating data transmission in a network communication system
US20180375952A1 (en) Method and apparatus for reducing network resource transmission size using delta compression
CN103312807B (zh) 数据传输方法、装置及系统
US8984164B2 (en) Methods for reducing latency in network connections and systems thereof
EP2988518B1 (en) System and method for all-in-one content stream in content-centric networks
US20110280247A1 (en) System and method for reducing latency via multiple network connections
JP5948111B2 (ja) パケット通信装置および方法
CN103533080A (zh) 用于lvs的服务器调度方法及装置
US8539099B2 (en) Method for providing on-path content distribution
CN108605039B (zh) 在spdy连接上检测恶意软件
WO2013180255A1 (ja) 通信装置および方法
US10110646B2 (en) Non-intrusive proxy system and method for applications without proxy support
US20110282926A1 (en) Relay apparatus, recording medium storing a relay program, and a relay method
JP2013088998A5 (ja)
CN107612831B (zh) 一种访问源站的数据报文的传输方法及装置
Netravali Understanding and improving web page load times on modern networks
Blanchet Postellation: an enhanced delay-tolerant network (dtn) implementation with video streaming and automated network attachment
WO2015117677A1 (en) Method and software for transmitting website content

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151020

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151218

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160606

R151 Written notification of patent or utility model registration

Ref document number: 5948111

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees