説明

プロキシ装置及びネットワークシステム

【課題】TCPを用いながら、プロトコルレベルの互換性と安全性を確保しつつ、通信時間を高速化する。
【解決手段】実データであるアプリケーションデータを含むIPパケットを送信するクライアント装置2と、クライアント装置2と通信を行い、IPパケットを受信するサーバ3との間に設けられ、クライアント装置2及びサーバ3の間で行われる通信を中継するプロキシ装置4において、クライアント装置2及びサーバ3の間の通信が開始される前に、隣接する他のプロキシ装置5との間のコネクションを開設する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プロキシ装置及びネットワークシステムに関し、特に、クライアント装置及びサーバの間で行われる通信の時間を高速化する装置及びシステムに関する。
【背景技術】
【0002】
WAN(Wide Area Network)やLAN(Local Area Network)における通信で利用されるIP(Internet Protocol)ネットワークでは、一般的に、信頼性のある通信プロトコルとしてTCP(Transmission Control Protocol)が使用されている。TCPは、RFC(Request For Comments)793にて標準化されており、電子メールやファイル転送、WWW(World Wide Web)等で幅広く利用されている。
【0003】
TCPは、通信に先立って予め通信路を確保するコネクション指向のプロトコルであり、3wayハンドシェイクと呼ばれる手順を用いて、通信相手とのコネクション開設が完了した状態で実際のデータ通信を開始する。
【0004】
例えば、クライアント装置とサーバとの間で、TCPによる一般的な通信を行う場合には、図15に示すように、3wayハンドシェイクによるコネクションの開設が行われる。3wayハンドシェイクでは、まず、クライアント装置がサーバに対して接続要求を示す「SYN」パケットを送信する。次に、サーバは、接続許可を示す「SYN+ACK」パケットをクライアント装置に対して送信する。そして、クライアント装置は、接続開始を示す「ACK」パケットを送信してサーバとの通信を開始し、アプリケーションデータ(Data)を送信する。
【0005】
ここで、物理的に距離が離れているクライアント装置とサーバとの間では、図15に示すように、所定のパケットが一方の装置から送信されてから他方の装置で受信するまでの間に伝送遅延が発生する。
【0006】
例えば、WAN通信の一例として衛星通信を用いた場合には、約250msecの伝送遅延が発生する。すなわち、3wayハンドシェイクを用いて通信を行う場合、「SYN」パケットを送信してから「SYN+ACK」パケットを受信して実データの通信が開始されるまで、少なくとも500msec程度の時間が必要となり、メール転送やWWWアクセス等の転送データサイズが比較的小さい通信においては、アプリケーションレイヤにおける通信完了時間に大きく影響する。
【0007】
また、WAN通信においては、一般に、LAN通信よりもパケット廃棄率が高いため、「SYN」パケット等がWANで廃棄された場合には、トランザクション完了時間が増大する。尚、非特許文献1には、Webアクセスを例とした通信データ量が分析され、往復通信回数を1回減らすことにより、Webアクセスが10%だけ高速化できることが記載されている。
【0008】
このように、従来の通信手順においては、3wayハンドシェイクによるコネクション開設を行うため、アプリケーションデータの通信を開始する際に時間を要する。そこで、最近では、アプリケーションデータの通信開始までの時間を改善するため、T/TCP(Transaction/TCP)と呼ばれる技術が提案され、RFC1644にて標準化されている。
【0009】
T/TCPは、TCPにオプションを追加したプロトコルであり、図15に示す「SYN」パケットを送信する際に、アプリケーションデータを含めた形式で転送することにより、3wayハンドシェイクによるコネクション開設処理を簡略化し、TCP通信の開始時間を短縮することができる。
【0010】
しかしながら、従来から用いられるネットワークは、このT/TCPに対応していないことが多く、互換性がないことが考えられる。そのため、T/TCPに対応していないネットワークへの互換性に対応すると共に、通信の高速化を実現するべく、T/TCPをTCPに変換する技術が提案されている(例えば、特許文献1を参照)。
【0011】
また、特許文献2には、モバイル端末とWebサーバとの間で通信を行う場合に、モバイル端末及びWebサーバの間に設けられたプロキシ間のコネクションを、モバイル端末とプロキシサーバとの間で確立された呼が切断されるまで維持することにより、モバイル端末を用いた通信のレスポンスタイムを短縮させる技術が記載されている。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】特許第3493660号公報
【特許文献2】特開2005−117418号公報
【非特許文献1】新野 淳一、”グーグル(登録商標)がWebを高速化するために何をしているか”、[online]、平成22年7月5日、[平成23年9月5日検索]、インターネット<URL:http://www.publickey1.jp/blog/10/web_3.html>
【発明の概要】
【発明が解決しようとする課題】
【0013】
しかしながら、T/TCPを用いた場合には、通信時間を短縮することができるが、T/TCPは、TCPと比較してセキュリティに対する脆弱性が存在するため、容易にDoS(Denial of Service)攻撃を受けてしまうという問題があった。これは、当業者にとってよく知られている事実であり、3wayハンドシェイクを簡略化し、SYNパケットと同時に通信データを受信する方式を採用するためである。
【0014】
また、T/TCPは、上述したセキュリティの観点から、現時点においては普及しておらず、ネットワーク上に構成された各通信装置において、T/TCPをサポートしている装置が非常に少ない。そのため、T/TCPを利用可能な箇所としては、T/TCPがサポートされた通信装置で構成され、かつ、ネットワークの安全性が保証された通信区間に限定されるという問題があった。
【0015】
尚、特許文献1に記載の技術を用いてT/TCPをTCPに変換することにより、T/TCPを用いることができるが、一般的に伝送遅延が大きく、セキュリティ上の危険性が高いWAN区間では、T/TCPを利用することができない。そのため、現状では、TCP通信の開始時間を短縮することができるというT/TCPの利点を生かすことが困難である。
【0016】
さらに、特許文献2に記載の技術では、モバイル端末とWebサーバとの間で初めて通信を開始する際に、プロキシ間における3wayハンドシェイクを必ず実施する必要があるため、コネクション開設のための待ち時間が発生するという問題があった。さらに、特許文献2に記載の技術は、適用範囲がWebアクセスに限定されるため、例えば、FTP(File Transfer Protocol)によるファイル転送や、SMTP(Simple Mail Transfer Protocol)といったメール送信等のアプリケーションを用いたTCP通信に対して適用することができない。
【0017】
そこで、本発明は、上記従来の技術における問題点に鑑みてなされたものであって、一般的に普及しているTCPを用いることで、プロトコルレベルの互換性と安全性を確保しつつ、通信時間を高速化することが可能なプロキシ装置及びネットワークシステムを提供することを目的とする。
【課題を解決するための手段】
【0018】
上記目的を達成するため、本発明は、実データであるアプリケーションデータを含む第1のIPパケットを送信するクライアント装置と、前記クライアント装置と通信を行い、前記第1のIPパケットを受信するサーバとの間に設けられ、前記クライアント装置及び前記サーバの間で行われる通信を中継するプロキシ装置であって、前記クライアント装置及び前記サーバの間の通信が開始される前に、隣接する他のプロキシ装置との間のコネクションを開設することを特徴とする。
【0019】
そして、本発明によれば、クライアント装置及びサーバの間の通信が開始される前に、プロキシ装置間のコネクションを開設するため、通信時間を高速化することが可能になる。
【0020】
上記プロキシ装置において、前記隣接する他のプロキシ装置との間のコネクションの状態を示すコネクション管理状態情報を少なくとも含むコネクション管理テーブルを有し、前記コネクション管理状態情報が前記コネクションが未使用であることを示す場合に、前記コネクションを開設することができる。これにより、未使用状態のすべてのコネクションを通信開始前に開設でき、通信時間を高速化することができる。
【0021】
上記プロキシ装置において、前記コネクション管理テーブルは、前記隣接する他のプロキシ装置のIPアドレス及びポート番号を示す宛先プロキシIPアドレス及び宛先プロキシポート番号と、自身のIPアドレス及びポート番号を示す送信元プロキシIPアドレス及び送信元プロキシポート番号と、前記クライアント装置のIPアドレス及びポート番号を示すクライアントIPアドレス及びクライアントポート番号と、前記サーバのIPアドレス及びポート番号を示すサーバIPアドレス及びサーバポート番号とを含み、前記第1のIPパケットは、前記クライアント装置及び前記サーバのIPアドレスを示す送信元IPアドレス及び宛先IPアドレスを含む第1のIPヘッダと、前記クライアント装置及び前記サーバのポート番号を示す送信元ポート番号及び宛先ポート番号を含む第1のTCPヘッダとを有することができる。
【0022】
上記プロキシ装置において、前記第1のIPヘッダから前記送信元IPアドレス及び前記宛先IPアドレスをクライアントIP情報として抽出するIP受信処理部と、前記第1のTCPヘッダから前記送信元ポート番号及び前記宛先ポート番号をクライアントTCP情報として抽出するTCP受信処理部と、前記アプリケーションデータに対して、前記クライアントIP情報及び前記クライアントTCP情報を付加したプロキシ間アプリケーションデータを生成するTCPプロキシ処理部と、前記プロキシ間アプリケーションデータに対して、前記送信元プロキシポート番号を送信元ポート番号とすると共に、前記宛先プロキシポート番号を宛先ポート番号とする第2のTCPヘッダを付加するTCP送信処理部と、前記プロキシ間アプリケーションデータに対して、前記送信元プロキシIPアドレスを送信元IPアドレスとすると共に、前記宛先プロキシIPアドレスを宛先IPアドレスとする第2のIPヘッダを付加するIP送信処理部とを備えることができる。これにより、クライアント装置から送信され、プロキシ装置で受信したIPパケットを次の送信先に対して適切に送信することができる。
【0023】
上記プロキシ装置において、前記隣接する他のプロキシ装置との間で3wayハンドシェイクを行うことにより、前記コネクションを開設することができる。
【0024】
また、本発明は、実データであるアプリケーションデータを含む第1のIPパケットを送信するクライアント装置と、前記クライアント装置と通信を行い、前記第1のIPパケットを受信するサーバと、前記クライアント装置及び前記サーバの間に設けられ、該クライアント装置及び該サーバの間で行われる通信を中継する複数のプロキシ装置とからなり、前記クライアント装置及び前記サーバの間の通信が開始される前に、互いに隣接する前記複数のプロキシ装置間のコネクションを開設することを特徴とする。本発明によれば、前記発明と同様に、通信時間を高速化することが可能になる。
【発明の効果】
【0025】
以上のように、本発明によれば、TCPを用いながら、プロトコルレベルの互換性と安全性を確保しつつ、通信時間を高速化することが可能になる。
【図面の簡単な説明】
【0026】
【図1】本発明にかかるネットワークシステムの第1の実施形態を示すブロック図である。
【図2】プロキシ装置の構成の一例を示すブロック図である。
【図3】プロキシ装置の構成の一例を示すブロック図である。
【図4】IPパケットについて説明するための略線図である。
【図5】アイドルコネクション管理テーブルについて説明するための略線図である。
【図6】コネクションの状態遷移について説明するための略線図である。
【図7】プロキシ装置間のコネクション開設について説明するための略線図である。
【図8】ネットワークシステムの動作について説明するための略線図である。
【図9】プロキシ装置間のIPパケットについて説明するための略線図である。
【図10】クライアント装置及びサーバの間での通信時に行われる動作について説明するためのシーケンス図である。
【図11】クライアント装置及びサーバの間での通信時に行われる従来の動作について説明するためのシーケンス図である。
【図12】クライアント装置及びサーバの間の通信が終了した場合の処理について説明するためのシーケンス図である。
【図13】ネットワークシステムの他の例を示すブロック図である。
【図14】ネットワークシステムのさらに他の例を示すブロック図である。
【図15】3wayハンドシェイクについて説明するためのシーケンス図である。
【発明を実施するための形態】
【0027】
次に、本発明を実施するための形態について、図面を参照しながら詳細に説明する。
【0028】
図1は、本発明にかかるネットワークシステムの一実施の形態を示し、このネットワークシステム1は、大別して、クライアント装置2、サーバ3、クライアント装置2及びサーバ3の間の通信を中継して代理応答を行うプロキシ装置4及びプロキシ装置5で構成される。また、各装置の間は、各々のネットワーク特性の異なる回線で接続され、各装置間においてTCP通信を終端する通信方式とされる。具体的には、例えば、クライアント装置2及びプロキシ装置4の間がLAN6で接続され、プロキシ装置4及びプロキシ装置5の間がWAN7で接続され、プロキシ装置5及びサーバ3の間がLAN8で接続される。
【0029】
本実施の形態では、クライアント装置2及びサーバ3の間の通信で必要なWAN7の区間におけるプロキシ装置4及びプロキシ装置5の間のコネクションを、クライアント装置2及びサーバ3の間の通信が開始される前に予め開設する。尚、以下の説明では、クライアント装置2及びサーバ3の間の通信開始前に開設されるプロキシ装置4及びプロキシ装置5の間のコネクションを「アイドルコネクション」と称して説明する。
【0030】
クライアント装置2は、サーバ3に対して送信すべき実データからなるIPパケットを、LAN6を介して送信する。サーバ3は、クライアント装置2から送信されたIPパケットを、LAN8を介して受信する。尚、クライアント装置2及びサーバ3については、通常使用される一般的な装置を用いることができるため、ここでは詳細な説明を省略する。
【0031】
IPパケットは、図4(a)に示すように、実データであるアプリケーションデータにIPヘッダ及びTCPヘッダが付加されたパケットである。IPヘッダには、例えば、宛先となる装置のIPアドレス(以下、「宛先IPアドレス」とする)と、送信元となる装置のIPアドレス(以下、「送信元IPアドレス」とする)が記述される。この例では、宛先IPアドレスとしてサーバ3のIPアドレスが記述され、送信元IPアドレスとしてクライアント装置2のIPアドレスが記述される。
【0032】
また、TCPヘッダには、例えば、宛先となる装置のポート番号(以下、「宛先ポート番号」とする)と、送信元となる装置のポート番号(以下、「送信元ポート番号」とする)が記述される。この例では、宛先ポート番号としてサーバ3のポート番号が記述され、送信元ポート番号としてクライアント装置2のポート番号が記述される。
【0033】
プロキシ装置4は、図2に示すように、IP受信処理部11、TCP受信処理部12、TCPプロキシ処理部13、TCP送信処理部14及びIP送信処理部15で構成される。
【0034】
IP受信処理部11は、クライアント装置2から送信されたIPパケットをLAN6を介して受信し、図4(a)に示すIPパケットのIPヘッダに記述された宛先IPアドレス及び送信元IPアドレスをクライアントIP情報としてTCPプロキシ処理部13に対して通知する。また、IP受信処理部11は、IPパケットからIPヘッダを取り除いた、TCPヘッダ及びアプリケーションデータからなるTCPセグメントをTCP受信処理部12に対して供給する。
【0035】
TCP受信処理部12は、IP受信処理部11から供給されたTCPセグメントを受信し、TCPヘッダに記述された宛先ポート番号及び送信元ポート番号をクライアントTCP情報としてTCPプロキシ処理部13に対して通知する。また、TCP受信処理部12は、TCPセグメントからTCPヘッダを取り除いたアプリケーションデータをTCPプロキシ処理部13に対して供給する。
【0036】
TCPプロキシ処理部13は、TCP受信処理部12から供給されたアプリケーションデータに対して、IP受信処理部11及びTCP受信処理部12から通知されたクライアントIP情報及びクライアントTCP情報を付加したプロキシ間アプリケーションデータ(図4(b))を生成し、TCP送信処理部14に対して供給する。
【0037】
また、TCPプロキシ処理部13は、プロキシ装置4及びプロキシ装置5の間のコネクションを管理するためのアイドルコネクション管理テーブルを予め保有し、コネクションの管理を行う。アイドルコネクション管理テーブルには、アプリケーションデータの宛先及び送信元のIPアドレス及びポート番号と、プロキシ装置4及びプロキシ装置5のIPアドレス及びポート番号とが互いに関連付けられて記述される。尚、アイドルコネクション管理テーブルの詳細については、後述する。
【0038】
TCP送信処理部14は、アイドルコネクション管理テーブルに基づき、TCPプロキシ処理部13から供給されたプロキシ間アプリケーションデータに対して、次の送信先であるプロキシ装置5のポート番号を宛先ポート番号とし、プロキシ装置4のポート番号を送信元ポート番号としたTCPヘッダを付加してTCPセグメントを生成し、IP送信処理部15に対して供給する。
【0039】
IP送信処理部15は、アイドルコネクション管理テーブルに基づき、TCP送信処理部14から供給されたTCPセグメントに対して、次の送信先であるプロキシ装置5のIPアドレスを宛先IPアドレスとし、プロキシ装置4のIPアドレスを送信元IPアドレスとしたIPヘッダを付加してIPパケットを生成し、プロキシ装置5に対してWAN7を介して送信する。
【0040】
プロキシ装置5は、図3に示すように、IP受信処理部21、TCP受信処理部22、TCPプロキシ処理部23、TCP送信処理部24及びIP送信処理部25で構成される。
【0041】
IP受信処理部21は、プロキシ装置4から送信されたIPパケットをWAN7を介して受信し、IPパケットからIPヘッダを取り除いた、TCPヘッダ及びプロキシ間アプリケーションデータからなるTCPセグメントをTCP受信処理部22に対して供給する。
【0042】
TCP受信処理部22は、IP受信処理部21から供給されたTCPセグメントを受信し、TCPセグメントからTCPヘッダを取り除いたプロキシ間アプリケーションデータをTCPプロキシ処理部23に対して供給する。
【0043】
TCPプロキシ処理部23は、プロキシ装置4のTCPプロキシ処理部13と同様に、アイドルコネクション管理テーブルを予め保有し、プロキシ装置4及びプロキシ装置5の間のコネクションを管理する。また、TCPプロキシ処理部23は、TCP受信処理部22から供給されたプロキシ間アプリケーションデータからアプリケーションデータを抽出し、TCP送信処理部24に対して供給する。
【0044】
TCP送信処理部24は、アイドルコネクション管理テーブルに基づき、TCPプロキシ処理部23から供給されたアプリケーションデータに対して、送信先であるサーバ3のポート番号を宛先ポート番号とし、プロキシ装置5のポート番号を送信元ポート番号としたTCPヘッダを付加してTCPセグメントを生成し、IP送信処理部25に対して供給する。
【0045】
IP送信処理部25は、アイドルコネクション管理テーブルに基づき、TCP送信処理部24から供給されたTCPセグメントに対して、送信先であるサーバ3のIPアドレスを宛先IPアドレスとし、プロキシ装置5のIPアドレスを送信元IPアドレスとしたIPヘッダを付加してIPパケットを生成し、サーバ3に対してLAN8を介して送信する。
【0046】
尚、プロキシ装置4及びプロキシ装置5の各部は、必ずしもハードウェアによって構成される必要はなく、その一部又は全部がソフトウェア(コンピュータプログラム)によって構成され、コンピュータ装置等により実行させるようにしてもよい。
【0047】
ここで、アイドルコネクション管理テーブルについて、図5を参照して説明する。アイドルコネクション管理テーブルは、上述したように、プロキシ装置4及びプロキシ装置5の間のコネクションを管理するためのテーブルであり、図5に示すように、隣接するプロキシ装置(プロキシ装置4及びプロキシ装置5)の間に開設する各々のコネクションに対応する1つ又は複数のエントリが記述される。
【0048】
各々のエントリには、項目「コネクション管理状態」、「宛先プロキシIPアドレス」、「宛先プロキシポート番号」、「送信元プロキシIPアドレス」、「送信元プロキシポート番号」、「クライアントIPアドレス」、「クライアントポート番号」、「サーバIPアドレス」及び「サーバポート番号」が互いに関連付けられて記述される。
【0049】
項目「コネクション管理状態」は、当該コネクションの状態を示し、通信状態に応じて状態が遷移した場合に更新される。コネクションの状態としては、例えば、「未使用状態」、「アイドルコネクション状態」及び「通信状態」がある。尚、コネクションの状態遷移については後述する。
【0050】
項目「宛先プロキシIPアドレス」及び「宛先プロキシポート番号」は、このエントリに対応するコネクションにおける次の送信先であるプロキシ装置のIPアドレス及びポート番号を示す。項目「送信元プロキシIPアドレス」及び「送信元プロキシポート番号」は、このアイドルコネクション管理テーブルを保有するプロキシ装置のIPアドレス及びポート番号を示す。
【0051】
項目「クライアントIPアドレス」及び「クライアントポート番号」は、送信元であるクライアント装置2のIPアドレス及びポート番号を示す。項目「サーバIPアドレス」及び「サーバポート番号」は、宛先であるサーバ3のIPアドレス及びポート番号を示す。
【0052】
これらの項目「クライアントIPアドレス」、「クライアントポート番号」、「サーバIPアドレス」及び「サーバポート番号」には、クライアント装置2及びサーバ3の間で初めて通信が行われる際に、クライアントIP情報及びクライアントTCP情報に基づき、クライアント装置2及びサーバ3のIPアドレス及びポート番号が設定される。
【0053】
次に、プロキシ装置4及びプロキシ装置5の間のアイドルコネクションの管理について説明する。通常、2つの装置間でTCP/IP通信を行う場合には、送信元及び宛先のIPアドレスとポート番号との組み合わせによりコネクションが識別される。このとき、送信元及び宛先のIPアドレスは、IPパケットのIPヘッダに記述され、送信元及び宛先のポート番号は、IPパケットのTCPヘッダに記述される。
【0054】
そこで、本実施の形態では、プロキシ装置4及びプロキシ装置5の間で通信を行う際に、送信元及び宛先のIPアドレスとポート番号とをアイドルコネクション管理テーブルによって管理する。
【0055】
具体的には、例えば、プロキシ装置4及びプロキシ装置5のIPアドレス及びポート番号は、アイドルコネクション管理テーブル内の項目「宛先プロキシIPアドレス」、「宛先プロキシポート番号」、「送信元プロキシIPアドレス」及び「送信元プロキシポート番号」に設定される。
【0056】
尚、クライアントサーバモデルの通信においては、装置間のコネクションが複数存在することが一般的であるため、アイドルコネクションについてもネットワークシステムの規模に応じたコネクション数を確保する必要がある。そのため、本実施の形態では、必要とされるコネクション数分のポート番号を予め用意し、各々のコネクションをアイドルコネクション管理テーブルのエントリとして設定する。
【0057】
次に、コネクションの状態遷移について、図6を参照して説明する。図6に示すように、ネットワークシステム1のシステム起動時においては、すべてのコネクション状態が未使用状態S1であり、プロキシ装置4、5のTCPプロキシ処理部13、23が保有するアイドルコネクション管理テーブルに記述された各エントリの項目「コネクション管理状態」が「未使用状態」に設定される。
【0058】
次に、TCPプロキシ処理部13、23によってアイドルコネクション管理テーブルの項目「コネクション管理状態」が参照され、「未使用状態」であるエントリについて、項目「宛先プロキシIPアドレス」、「宛先プロキシポート番号」、「送信元プロキシIPアドレス」及び「送信元プロキシポート番号」に基づきアイドルコネクションが開設される。そして、プロキシ装置4及びプロキシ装置5における各TCP受信処理部12、22及びTCP送信処理部14、24の間で3wayハンドシェイクが行われる。
【0059】
例えば、図7に示すように、プロキシ装置4のIPアドレス及びポート番号を「B」及び「X」とし、プロキシ装置5のIPアドレス及びポート番号を「C」及び「Y」とした場合には、宛先IPアドレス及び宛先ポート番号を「C」及び「Y」、送信元IPアドレス及び送信元ポート番号を「B」及び「X」とした「SYN」パケットによる3wayハンドシェイクが行われ、アイドルコネクションが開設される。
【0060】
説明は図6に戻り、3wayハンドシェイクが完了してアイドルコネクションが開設されると、コネクション状態がアイドルコネクション状態S2に遷移する。そして、アイドルコネクション管理テーブルに記述された当該エントリの項目「コネクション管理状態」が「アイドルコネクション状態」に更新される。
【0061】
次に、クライアント装置2からの通信が開始されると、コネクション状態が通信状態S3に遷移する。具体的には、TCPプロキシ処理部13、23によってアイドルコネクション管理テーブルの項目「コネクション管理状態」が参照され、「アイドルコネクション状態」である所定のエントリが通信用コネクションとして割り当てられる。そして、通信用コネクションに割り当てられたエントリの項目「コネクション管理状態」が「通信状態」に更新される。
【0062】
クライアント装置2とサーバ3との間の通信が終了すると、コネクション状態が未使用状態S1に遷移し、アイドルコネクション管理テーブルの項目「コネクション管理状態」が「未使用状態」に更新される。
【0063】
尚、コネクション状態が通信状態S3から未使用状態S1に遷移したコネクションは、例えば、未使用状態S1に遷移したタイミングから予め設定されたタイムアウト時間が経過した後に、アイドルコネクション状態S2に遷移する。
【0064】
このようにコネクション状態が遷移することにより、クライアント装置2からサーバ3に対する通信が開始される前に、アイドルコネクションを予め開設することができる。
【0065】
次に、上記構成を有するネットワークシステム1の動作について、図2及び図8を参照して説明する。尚、以下の説明では、クライアント装置2及びサーバ3の間での通信が開始される前に、上述の状態遷移に基づいてプロキシ装置4及びプロキシ装置5の間におけるアイドルコネクションが予め開設されているものとする。
【0066】
図8に示すように、ネットワークシステム1において、クライアント装置2からサーバ3に対してデータを送信する場合には、まず、クライアント装置2及びプロキシ装置4の間で3wayハンドシェイク処理が行われ、サーバ3に対して送信すべき実データを含むIPパケットが図4(a)に示す形式でクライアント装置2から送信される。
【0067】
クライアント装置2から送信されるIPパケットのIPヘッダには、サーバ3のIPアドレスが宛先IPアドレスとして記述され、クライアント装置2のIPアドレスが送信元IPアドレスとして記述される。また、TCPヘッダには、サーバ3のポート番号が宛先ポート番号として記述され、クライアント装置2のポート番号が送信元ポート番号として記述される。
【0068】
すなわち、クライアント装置2から送信されるIPパケットは、図8に示すように、宛先IPアドレスが「D」、送信元IPアドレスが「A」、宛先ポート番号が「J」、送信元ポート番号が「I」となる。
【0069】
クライアント装置2から送信されたIPパケットは、LAN6を介してプロキシ装置4で受信される。このとき、プロキシ装置4は、複数のポートでIPパケットの受信を待機し、任意の複数のポートのうち、宛先ポート番号と同一のポート番号を有するポートによりIPパケットを受信する。すなわち、プロキシ装置4は、IPパケットのTCPヘッダに記述された宛先ポート番号であるサーバ3のポート番号と同一のポート番号「J」のポートを介してIPパケットを受信する。
【0070】
プロキシ装置4は、IPパケットを受信すると、受信したIPパケットが図2に示すIP受信処理部11に供給される。IP受信処理部11は、IPパケットに対して所定の受信処理を行い、IPパケットからIPヘッダを除いたTCPヘッダ及びアプリケーションデータを含むTCPセグメントをTCP受信処理部12に供給する。また、IP受信処理部11は、IPパケットのIPヘッダに記述された宛先IPアドレス及び送信元IPアドレスをクライアントIP情報として抽出し、TCPプロキシ処理部13に供給する。
【0071】
TCP受信処理部12は、IP受信処理部11から供給されたTCPセグメントに対して所定の受信処理を行い、TCPセグメントからTCPヘッダを除いたアプリケーションデータをTCPプロキシ処理部13に供給する。また、TCP受信処理部12は、TCPヘッダに記述された宛先ポート番号及び送信元ポート番号をクライアントTCP情報として抽出し、TCPプロキシ処理部13に供給する。尚、IP受信処理部11及びTCP受信処理部12による受信処理については、従来と同様の処理が行われるものであり、本実施の形態において直接関係しないため、詳細な説明を省略する。
【0072】
TCPプロキシ処理部13は、アプリケーションデータ、クライアントIP情報及びクライアントTCP情報を受信すると、保有するアイドルコネクション管理テーブルを参照し、対応するエントリのアイドルコネクションを割り当てる。
【0073】
ここで、クライアント装置2からサーバ3に対して初めてIPパケットが送信された場合、TCPプロキシ処理部13は、割り当てられたアイドルコネクションの情報として、クライアントIP情報及びクライアントTCP情報に記述された送信元IPアドレス、送信元ポート番号、宛先IPアドレス及び宛先ポート番号を、クライアントIPアドレス、クライアントポート番号、サーバIPアドレス及びサーバポート番号として、アイドルコネクション管理テーブルの対応するエントリに設定する。
【0074】
さらに、TCPプロキシ処理部13は、次の送信先であるプロキシ装置5に対してクライアント装置2及びサーバ3のIPアドレス及びポート番号を通知する目的として、アプリケーションデータにクライアントIP情報及びクライアントTCP情報を付加したプロキシ間アプリケーションデータを生成し、TCP送信処理部14に供給する。
【0075】
プロキシ間アプリケーションデータは、図9に示すように、宛先IPアドレスを「D」、送信元IPアドレスを「A」としたクライアントIP情報と、宛先ポート番号を「J」、送信元ポート番号を「I」としてクライアントTCP情報とをアプリケーションデータに対して付加したデータである。
【0076】
TCP送信処理部14は、アイドルコネクション管理テーブルの項目「宛先プロキシポート番号」及び「送信元プロキシポート番号」に基づき、TCPプロキシ処理部13から供給されたプロキシ間アプリケーションデータに対して、次の送信先であるプロキシ装置5のポート番号を宛先ポート番号とすると共に、プロキシ装置4のポート番号を送信元ポート番号としたTCPヘッダを付加し、TCPセグメントを生成する。生成されたTCPセグメントは、IP送信処理部15に供給される。
【0077】
IP送信処理部15は、アイドルコネクション管理テーブルの項目「宛先プロキシIPアドレス」及び「送信元プロキシIPアドレス」に基づき、TCP送信処理部14から供給されたTCPセグメントに対して、プロキシ装置5のIPアドレスを宛先IPアドレスとすると共に、プロキシ装置4のIPアドレスを送信元IPアドレスとしたIPヘッダを付加し、図9に示すIPパケットを生成する。生成されたIPパケットは、WAN7を介してプロキシ装置5に供給される。
【0078】
すなわち、プロキシ装置4から送信されるIPパケットは、図8に示すように、宛先IPアドレスが「C」、送信元IPアドレスが「B」、宛先ポート番号が「Y」、送信元ポート番号が「X」となる。
【0079】
プロキシ装置5は、WAN7を介してIPパケットを受信すると、受信したIPパケットが図3に示すIP受信処理部21に供給される。IP受信処理部21は、IPパケットに対して所定の受信処理を行い、IPパケットからIPヘッダを除いたTCPヘッダ及びプロキシ間アプリケーションデータを含むTCPセグメントをTCP受信処理部22に供給する。
【0080】
TCP受信処理部22は、IP受信処理部21から供給されたTCPセグメントに対して所定の受信処理を行い、TCPセグメントからTCPヘッダを除いたプロキシ間アプリケーションデータをTCPプロキシ処理部23に供給する。
【0081】
TCPプロキシ処理部23は、プロキシ間アプリケーションデータを受信すると、保有するアイドルコネクション管理テーブルを参照し、対応するエントリのアイドルコネクションを割り当てる。
【0082】
ここで、クライアント装置2からサーバ3に対して初めてIPパケットが送信された場合、TCPプロキシ処理部23は、割り当てられたアイドルコネクションの情報として、プロキシ間アプリケーションデータに付加されたクライアントIP情報及びクライアントTCP情報に記述された送信元IPアドレス、送信元ポート番号、宛先IPアドレス及び宛先ポート番号を、クライアントIPアドレス、クライアントポート番号、サーバIPアドレス及びサーバポート番号として、アイドルコネクション管理テーブルの対応するエントリに設定する。そして、設定されたエントリに記述された内容に基づき、プロキシ装置5及びサーバ3の間のコネクションを開設する。このとき、TCP受信処理部22及びTCP送信処理部24によりサーバ3との3wayハンドシェイク処理が行われる。
【0083】
また、プロキシ装置5及びサーバ3の間のコネクションが開設されると、TCPプロキシ処理部23は、プロキシ間アプリケーションデータに含まれるアプリケーションデータをTCP送信処理部24に供給する。
【0084】
TCP送信処理部24は、TCPプロキシ処理部23から供給されたアプリケーションデータに対して、次の送信先であるサーバ3のポート番号「J」を宛先ポート番号とすると共に、クライアント装置2のポート番号「I」を送信元ポート番号としたTCPヘッダを付加し、TCPセグメントを生成する。生成されたTCPセグメントは、IP送信処理部25に供給される。
【0085】
IP送信処理部25は、TCP送信処理部24から供給されたTCPセグメントに対して、サーバ3のIPアドレス「D」を宛先IPアドレスとすると共に、クライアント装置2のIPアドレス「A」を送信元IPアドレスとしたIPヘッダを付加してIPパケットを生成する。生成されたIPパケットは、LAN8を介してサーバ3に供給される。
【0086】
すなわち、プロキシ装置5から送信されるIPパケットは、図8に示すように、宛先IPアドレスが「D」、送信元IPアドレスが「A」、宛先ポート番号が「J」、送信元ポート番号が「I」となる。
【0087】
尚、この例では、送信元IPアドレス及び送信元ポート番号をクライアント装置2のIPアドレス及びポート番号としたが、これに限られず、例えば、送信元IPアドレス及び送信元ポート番号をプロキシ装置5のIPアドレス及びポート番号としてもよい。
【0088】
このように、クライアント装置2からサーバ3に対してIPパケットを送信する場合には、プロキシ装置4及びプロキシ装置5においてアイドルコネクション管理テーブルを参照し、適切なアイドルコネクションを割り当てると共に、プロキシ装置4及びプロキシ装置5の間でやりとりされるIPパケットに含まれる宛先及び送信元のIPアドレス及びポート番号を変換することにより、クライアント装置2からサーバ3に対してIPパケットを適切に送信することができる。
【0089】
また、ネットワークシステム1においては、図10に示すように、クライアント装置2及びサーバ3の間で通信が開始される前にプロキシ装置4及びプロキシ装置5の間におけるアイドルコネクションを予め開設するため、アイドルコネクション開設の際の3wayハンドシェイク処理が通信開始前に行われる。
【0090】
具体的には、プロキシ装置4のTCP送信処理部14から「SYN」パケットが送信され、プロキシ装置5のTCP受信処理部22で受信される。次に、プロキシ装置5のTCP送信処理部24から「SYN+ACK」パケットが送信され、プロキシ装置4のTCP受信処理部12で受信される。そして、プロキシ装置4のTCP送信処理部14から「ACK」パケットが送信され、プロキシ装置5のTCP受信処理部22で受信される。このようにして、プロキシ装置4及びプロキシ装置5の間で3wayハンドシェイク処理が行われる。
【0091】
これにより、図11に示すように、クライアント装置2及びサーバ3の間で通信が開始された後に、プロキシ装置4及びプロキシ装置5の間で行われる従来の3wayハンドシェイク処理に要する時間Tだけ、通信時間を高速化することができる。
【0092】
尚、クライアント装置2からサーバ3に対する2回目以降のIPパケットの送信時においては、プロキシ装置4及びプロキシ装置5が保有するアイドルコネクション管理テーブルの対応するエントリの各項目が設定されているため、プロキシ装置5に対してクライアント装置2及びサーバ3のIPアドレス及びポート番号を通知する必要がない。そのため、プロキシ装置4のTCPプロキシ処理部13においてプロキシ間アプリケーションデータを生成する必要がなく、プロキシ装置4は、プロキシ装置5に対してアプリケーションデータをそのままの形式で送信することができる。
【0093】
また、サーバ3からクライアント装置2に対してデータを送信する場合についても、プロキシ装置4及びプロキシ装置5においてアイドルコネクション管理テーブルを参照し、プロキシ装置4及びプロキシ装置5の間の宛先及び送信元のIPアドレス及びポート番号を変換することにより、上述と同様の流れで通信を行うことができる。
【0094】
次に、クライアント装置2及びサーバ3の間の通信が終了した場合の処理について、図12を参照して説明する。ネットワークシステム1では、各装置間においてTCP通信が終端されるため、各装置間におけるコネクション単位で閉鎖処理が行われる。本実施の形態では、まず、クライアント装置2及びプロキシ装置4の間のコネクションの閉鎖処理が行われ、次いでプロキシ装置4及びプロキシ装置5の間の閉鎖処理が行われる。そして、最後にプロキシ装置5及びサーバ3の間の閉鎖処理が行われる。
【0095】
具体的には、まず、図12に示すように、クライアント装置2がプロキシ装置4に対して閉鎖要求を示す「FIN」パケットを送信し、プロキシ装置4がクライアント装置2からの「FIN」パケットに対する「ACK」パケットをクライアント装置2に対して送信する。次に、プロキシ装置4がクライアント装置2に対して「FIN」パケットを送信し、クライアント装置2がプロキシ装置4からの「FIN」パケットに対する「ACK」パケットを送信する。これにより、クライアント装置2及びプロキシ装置4の間におけるコネクションが閉鎖される。
【0096】
以下、同様にして、プロキシ装置4及びプロキシ装置5の間、プロキシ装置5及びサーバ3の間においても装置間で「FIN」パケット及び「ACK」パケットのやりとりが行われることにより、各装置間のコネクションが閉鎖される。
【0097】
このようにして、各装置間のコネクションが閉鎖されると、プロキシ装置4及びプロキシ装置5が保有するアイドルコネクション管理テーブルにおける当該エントリの項目「コネクション管理状態」が「未使用状態」に更新される。
【0098】
以上のように、本実施の形態によれば、クライアント装置及びサーバの間での通信が開始される前に、クライアント装置とサーバとの間に設けられたプロキシ装置間のコネクションを予め開設するため、プロキシ装置間のコネクション開設の際に行われる処理に要する時間が不要となり、クライアント装置及びサーバの間の通信時間を高速化することができる。
【0099】
また、プロキシ装置は、アイドルコネクション管理テーブルに基づき、IPパケットに含まれる宛先及び送信元のIPアドレス及びポート番号を変換するため、受け取ったIPパケットを次の送信先に対して適切に送信することができる。
【0100】
以上、本発明の実施の形態について説明したが、本発明は、上述した本発明の実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【0101】
例えば、上述の例では、2つのプロキシ装置を用いて1つのWAN区間を経由してクライアント装置とサーバとの通信を行う場について説明したが、これに限られず、複数のプロキシ装置を用いて複数のWAN区間を経由して通信を行う場合についても、本発明を適用可能である。
【0102】
具体的には、例えば図13に示すように、クライアント装置31とサーバ32との間に複数のプロキシ装置33、34、35、36を設け、クライアント装置31及びプロキシ装置33を接続するLAN37と、プロキシ装置間を接続するWAN38A、38B、38Cと、プロキシ装置36及びサーバ32を接続するLAN39とを経由して、クライアント装置31及びサーバ32の間で通信を行うネットワークシステム30に対しても適用可能である。
【0103】
このネットワークシステム30において、プロキシ装置33及びプロキシ装置36は、本実施の形態におけるプロキシ装置4及びプロキシ装置5と同様に動作する。また、プロキシ装置34及びプロキシ装置35については、プロキシ装置4及びプロキシ装置5と同様に、通信が開始される前に各WAN区間のアイドルコネクションを開設する。このとき、プロキシ装置34及びプロキシ装置35は、隣接する装置がサーバ32でないため、IPパケットを受信した際に、パケット内に含まれるプロキシ間アプリケーションデータからアプリケーションデータを抽出することなく、IPヘッダ及びTCPヘッダに含まれる宛先及び送信元のIPアドレス及びポート番号を変換した状態で、プロキシ間アプリケーションデータを含むIPパケットをそのまま次の送信先である装置に対して送信する。
【0104】
さらに、この例に限られず、例えば、ネットワークシステムに複数のサーバが設けられる場合についても、本発明を適用可能である。例えば、図14に示すように、ネットワークシステム40、クライアント装置41、サーバ42A及び42B、プロキシ装置43、44、45で構成され、クライアント装置41及びプロキシ装置43の間がLAN46で接続され、プロキシ装置43及びプロキシ装置44、45の間がWAN47で接続され、プロキシ装置44及びサーバ42Aの間がLAN48で接続され、プロキシ装置45及びサーバ42Bの間がLAN49で接続される。
【0105】
この場合、プロキシ装置43は、クライアント装置41から送信されるIPパケットの宛先に応じてプロキシ装置44及びプロキシ装置45のうちいずれかのプロキシ装置に対して通信を行うべきかを判断する必要がある。ここで、上述した本実施の形態では、ポート番号に基づいて複数のコネクションを管理する場合について説明したが、アイドルコネクション管理テーブルにおいて、ポート番号の他に、宛先プロキシIPアドレスでプロキシ装置間のコネクションを識別することも可能であるため、複数のプロキシ装置毎のIPアドレスもコネクション管理に含めることで、本発明を適用することができる。
【0106】
さらにまた、本実施の形態では、送信元IPアドレス(クライアント装置のIPアドレス)及び宛先IPアドレス(サーバのIPアドレス)をクライアントIP情報とし、送信元ポート番号(クライアント装置のポート番号)及び宛先ポート番号(サーバのポート番号)をクライアントTCP情報としたが、これに限られず、例えば、プロキシ装置のメモリ容量や処理能力、プロキシ装置間の通信帯域等に余裕があれば、IPパケットのIPヘッダ全体の記述内容をクライアントIP情報とすると共に、TCPヘッダ全体の記述内容をクライアントTCP情報としてもよい。
【0107】
これにより、クライアントIP情報及びクライアントTCP情報のデータ量が増加するが、例えば、ネットワーク内に本情報を解析する装置等を設けることで、アプリケーション別の優先制御や統計カウンタの収集等の付加機能を追加することも可能である。
【0108】
また、本実施の形態では、システム起動時等に、コネクション管理状態が未使用状態であるエントリに対応するすべてのアイドルコネクションを開設するようにしているが、これに限られず、例えば、プロキシ装置間のアイドルコネクション数に対して閾値を設け、開設するアイドルコネクション数を閾値以下に制限するようにしてもよい。
【0109】
これにより、アイドルコネクションを開設する際の処理による通信帯域の占有や、本実施の形態をソフトウェアにより実現する場合に、CPU時間を占有することを防止することができる。
【0110】
さらに、上述では、IPをネットワーク層(レイヤ3)のプロトコルとして説明したが、本実施の形態においては、トランスポート層(レイヤ4)のプロトコルであるTCPを対象としているため、ネットワーク層については、IP以外のプロトコルでも実現することができ、物理層(レイヤ1)や論理層(レイヤ2)についても同様である。
【符号の説明】
【0111】
1 ネットワークシステム
2 クライアント装置
3 サーバ
4、5 プロキシ装置
6、8 LAN
7 WAN
11、21 IP受信処理部
12、22 TCP受信処理部
13、23 TCPプロキシ処理部
14、24 TCP送信処理部
15、25 IP送信処理部
30 ネットワークシステム
31 クライアント装置
32 サーバ
33、34、35、36 プロキシ装置
37 LAN
38(38A、38B、38C) WAN
39 LAN
40 ネットワークシステム
41 クライアント装置
42(42A、42B) サーバ
43、44、45 プロキシ装置
46、48、49 LAN
47 WAN


【特許請求の範囲】
【請求項1】
実データであるアプリケーションデータを含む第1のIPパケットを送信するクライアント装置と、前記クライアント装置と通信を行い、前記第1のIPパケットを受信するサーバとの間に設けられ、前記クライアント装置及び前記サーバの間で行われる通信を中継するプロキシ装置であって、
前記クライアント装置及び前記サーバの間の通信が開始される前に、隣接する他のプロキシ装置との間のコネクションを開設することを特徴とするプロキシ装置。
【請求項2】
前記隣接する他のプロキシ装置との間のコネクションの状態を示すコネクション管理状態情報を少なくとも含むコネクション管理テーブルを有し、
前記コネクション管理状態情報が前記コネクションが未使用であることを示す場合に、前記コネクションを開設することを特徴とする請求項1に記載のプロキシ装置。
【請求項3】
前記コネクション管理テーブルは、前記隣接する他のプロキシ装置のIPアドレス及びポート番号を示す宛先プロキシIPアドレス及び宛先プロキシポート番号と、自身のIPアドレス及びポート番号を示す送信元プロキシIPアドレス及び送信元プロキシポート番号と、前記クライアント装置のIPアドレス及びポート番号を示すクライアントIPアドレス及びクライアントポート番号と、前記サーバのIPアドレス及びポート番号を示すサーバIPアドレス及びサーバポート番号とを含み、
前記第1のIPパケットは、前記クライアント装置及び前記サーバのIPアドレスを示す送信元IPアドレス及び宛先IPアドレスを含む第1のIPヘッダと、前記クライアント装置及び前記サーバのポート番号を示す送信元ポート番号及び宛先ポート番号を含む第1のTCPヘッダとを有することを特徴とする請求項1又は2に記載のプロキシ装置。
【請求項4】
前記第1のIPヘッダから前記送信元IPアドレス及び前記宛先IPアドレスをクライアントIP情報として抽出するIP受信処理部と、
前記第1のTCPヘッダから前記送信元ポート番号及び前記宛先ポート番号をクライアントTCP情報として抽出するTCP受信処理部と、
前記アプリケーションデータに対して、前記クライアントIP情報及び前記クライアントTCP情報を付加したプロキシ間アプリケーションデータを生成するTCPプロキシ処理部と、
前記プロキシ間アプリケーションデータに対して、前記送信元プロキシポート番号を送信元ポート番号とすると共に、前記宛先プロキシポート番号を宛先ポート番号とする第2のTCPヘッダを付加するTCP送信処理部と、
前記プロキシ間アプリケーションデータに対して、前記送信元プロキシIPアドレスを送信元IPアドレスとすると共に、前記宛先プロキシIPアドレスを宛先IPアドレスとする第2のIPヘッダを付加するIP送信処理部とを備えることを特徴とする請求項3に記載のプロキシ装置。
【請求項5】
前記隣接する他のプロキシ装置との間で3wayハンドシェイクを行うことにより、前記コネクションを開設することを特徴とする請求項1乃至4のいずれかに記載のプロキシ装置。
【請求項6】
実データであるアプリケーションデータを含む第1のIPパケットを送信するクライアント装置と、
前記クライアント装置と通信を行い、前記第1のIPパケットを受信するサーバと、
前記クライアント装置及び前記サーバの間に設けられ、該クライアント装置及び該サーバの間で行われる通信を中継する複数のプロキシ装置とからなり、
前記クライアント装置及び前記サーバの間の通信が開始される前に、互いに隣接する前記複数のプロキシ装置間のコネクションを開設することを特徴とするネットワークシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2013−62753(P2013−62753A)
【公開日】平成25年4月4日(2013.4.4)
【国際特許分類】
【出願番号】特願2011−201297(P2011−201297)
【出願日】平成23年9月15日(2011.9.15)
【出願人】(303013763)NECエンジニアリング株式会社 (651)
【Fターム(参考)】