(57)【要約】【課題】エンド装置間におけるスループットを改善するためエンド装置間の通信制御から独立した通信制御を実施可能とする。【解決手段】送信側エンド装置と受信側エンド装置との間で送受信されるＴＣＰパケットの経路上に配置された中継装置であって、送信側エンド装置から受信される受信側エンド装置宛てのＴＣＰパケットと、経路上において中継装置と受信側エンド装置との間に配置された他の中継装置から受信される送信側エンド装置宛てのＴＣＰパケットとを覗き見て得られた情報に基づき、送信側エンド装置と受信側エンド装置との間で実行される通信制御から独立した通信制御を他の中継装置との間で実行する制御装置とを含む。【選択図】図３
2015012570.tif 000002
【特許請求の範囲】
【請求項１】
送信側エンド装置と受信側エンド装置との間で送受信されるＴＣＰ（Transmission Control Protocol）パケットの経路上に配置され、
前記送信側エンド装置から受信される前記受信側エンド装置宛てのＴＣＰパケットと、前記経路上において前記中継装置と前記受信側エンド装置との間に配置された他の中継装置から受信される前記送信側エンド装置宛てのＴＣＰパケットとを覗き見ることによって得られた情報を記憶する記憶装置と、
前記情報に基づき、前記送信側エンド装置と前記受信側エンド装置との間で実行される通信制御から独立した通信制御を前記他の中継装置との間で実行する制御装置と
を含む中継装置。
【請求項２】
前記記憶装置は、前記送信側エンド装置から受信されたＴＣＰパケットが前記他の中継装置へ中継されるときに、当該ＴＣＰパケットのコピーを記憶し、
前記制御装置は、前記他の中継装置から受信されたＴＣＰパケットを覗き見た結果、当該ＴＣＰパケットに前記他の中継装置へ中継したＴＣＰパケットの受信に係る否定応答が含まれているときには前記コピーを用いた再送処理を行う
請求項１に記載の中継装置。
【請求項３】
前記記憶装置は、ＴＣＰパケットの受信に係る肯定応答を当該ＴＣＰパケットの送信元へ送信済か否かを示す送信済／未送信情報を記憶し、
前記制御装置は、前記他の中継装置から受信されたＴＣＰパケットの覗き見の結果、覗き見たＴＣＰパケットに肯定応答が含まれているときに、前記送信済／未送信情報に基づき、前記肯定応答を含むＴＣＰパケットの廃棄又は転送処理を行う
請求項２に記載の中継装置。
【請求項４】
前記制御装置は、前記送信側エンド装置からＴＣＰパケットを受信した場合に、前記他の受信装置から当該ＴＣＰパケットの肯定応答を受信する前に、肯定応答を生成して前記送信側エンド装置に送信するとともに、肯定応答を送信済みであることを示す前記送信済／未送信情報を前記記憶装置に記憶する
請求項３に記載の中継装置。
【請求項５】
前記制御装置は、前記覗き見によって得られた情報を用いて、前記送信側エンド装置と前記受信側エンド装置との間で実行される輻輳検出方法と異なる方法で輻輳検出を行う
請求項１に記載の中継装置。
【請求項６】
前記制御装置は、前記覗き見によって得られた情報を用いて、前記送信側エンド装置と前記受信側エンド装置との間で実行される送信レートの決定方法と異なる方法で送信レートを決定する
請求項１に記載の中継装置。
【請求項７】
前記制御装置は、前記他の中継装置へのＴＣＰパケットの送信時刻と、当該ＴＣＰパケットに対する肯定応答の受信時刻とを用いた統計値に基づいて、前記他の中継装置へ転送されるＴＣＰパケットの送信レートを決定する
請求項１に記載の中継装置。
【請求項８】
送信側エンド装置と受信側エンド装置との間で送受信されるＴＣＰ（Transmission Control Protocol）パケットの経路上に配置され、
前記経路上において前記送信側エンド装置と前記中継装置との間に配置された他の中継装置から受信された前記受信側エンド装置宛てのＴＣＰパケットを覗き見た結果に基づき
、否定応答を含むＴＣＰパケット又は肯定応答を含むＴＣＰパケットを生成して前記他の中継装置に送信する処理を行う制御装置と、
前記受信側エンド装置宛てのＴＣＰパケットのコピーを記憶する記憶装置と、を含み、
前記制御装置は、前記受信側エンド装置から受信されたＴＣＰパケットを覗き見た結果、当該ＴＣＰパケットに前記受信側エンド装置へ中継したＴＣＰパケットの受信に係る否定応答が含まれているときには前記コピーを用いた再送処理を行い、当該ＴＣＰパケットに前記受信側エンド装置へ中継したＴＣＰパケットの受信に係る肯定応答が含まれている場合には、当該ＴＣＰパケットの廃棄を行う
中継装置。
【請求項９】
送信側エンド装置と受信側エンド装置との間で送受信されるＴＣＰ（Transmission Control Protocol）パケットの経路上に配置された中継装置が、
前記送信側エンド装置から受信される前記受信側エンド装置宛てのＴＣＰパケットと、前記経路上において前記中継装置と前記受信側エンド装置との間に配置された他の中継装置から受信される前記送信側エンド装置宛てのＴＣＰパケットとを覗き見し、
前記覗き見によって得られた情報を記憶装置に記憶し、
前記情報に基づき、前記送信側エンド装置と前記受信側エンド装置との間で実行される通信制御から独立した通信制御を前記他の中継装置との間で実行する
ことを含む中継装置の通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、中継装置に関する。
【背景技術】
【０００２】
Transmission Control Protocol (ＴＣＰ)通信を行う通信機器として、様々な通信機器がある。例えば、Wide Area Network(ＷＡＮ)高速化装置、或いはＷＡＮ最適化装置と呼
ばれる装置がある。
【０００３】
クラウド利用の増加に伴って、クラウドデータセンタで稼働するサーバにクライアントがアクセスする利用形態が増えている。クラウドデータセンタは、地理的に遠方にあったり、海外にあったりする。このため、往復遅延時間(Round Trip Time(ＲＴＴ))が大きく
なる傾向にある。ＲＴＴが大きい回線を用いたＴＣＰ通信は、パケット廃棄によって性能が低下し、通信スループットが低下するという問題がある。
【０００４】
近年、ＷＡＮ高速化装置と呼ばれる装置の使用によって、エンドデバイスのＴＣＰをより回線利用率の高いＴＣＰに置き換えて通信することによって、ＴＣＰの平均スループット低下を改善することが行われている。
【０００５】
ＷＡＮ高速化装置はサーバと端末間のＷＡＮ回線を挟んで配置される。ＷＡＮ高速化装置は、送信側の端末又はサーバのＴＣＰセッションを一旦終端し、高速化したＴＣＰ(以
下高速化ＴＣＰと呼ぶ)に置き換えて、対向するＷＡＮ高速化装置と通信を行う。対向す
るＷＡＮ高速化装置は、高速化ＴＣＰを通常のＴＣＰに戻し、受信側の端末又はサーバと通信する。
【０００６】
ＷＡＮ高速化装置間の高速トランスポートプロトコルのアルゴリズムはベンダにより様々である。例えば、ＵＤＰを改良し、再送制御と輻輳制御機能が付加されたプロトコルや、既存のＴＣＰの輻輳制御機能を改善し効率化を図ったプロトコルが使用される。
【０００７】
ＵＤＰベースのプロトコルでは、例えば、UDP-based data transfer(ＵＤＴ)というプ
ロトコルが知られている。また、ＴＣＰを改良したプロトコルとしては、CUBIC ＴＣＰやScalable ＴＣＰといったアルゴリズムがある。特に、Scalable ＴＣＰは、帯域が大きく、ＲＴＴが大きいＷＡＮ回線向けに改良されたＴＣＰ輻輳制御アルゴリズムである。
【０００８】
一方で、インターネットから企業のイントラネットやクラウドにアクセスするためにSecure Socket Layer Virtual Private Network（ＳＳＬ−ＶＰＮ）を用いることが一般的
となっている。
【０００９】
しかしながら、ＳＳＬ−ＶＰＮを用いた環境に既存のＷＡＮ高速化装置を適用すると、通信できないという問題がある。その理由として、第１に、ＷＡＮ高速化装置では一般にＴＣＰセッションを一旦終端する。しかし、ＳＳＬでカプセル化されたパケットをＷＡＮ高速化装置が終端しプロトコルを載せ替える際に、セマンティクスが崩れてしまい受信端末で復号できなくなる可能性があった。
【００１０】
また、ＷＡＮ高速化装置では、ＴＣＰセッションを終端した後、ＵＤＰのようなＴＣＰ以外のプロトコルを用い、かつポート番号も異なる値を使用する。このため、ファイアウォールが途中に存在すると、パケットがファイアウォールを通過できないという問題が生じる。
【００１１】
上記のような問題に対して、ＷＡＮ高速化装置が証明書を入手し、エンド装置からのＴＣＰセッションの暗号化を解除した上で、一旦ＷＡＮ高速化装置で終端を行い、ＷＡＮ高速化装置間で再度ＳＳＬトンネルにカプセル化して通信を行うために一旦暗号化を解除するという方法があった。この方法では、ＷＡＮ高速化装置の機能が複雑なため良好なスループットが得られにくく、価格が高価になるという問題があった。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開平１１−４６２１７号公報
【非特許文献】
【００１３】
【非特許文献１】"Improving TCP/IP Performance over Wireless Networks1", Hari Balakrishnan, Srinivasan Seshan, Elan Amir and Randy H. Katz, [hari,ss,elan,randy]@CS.Berkeley.EDU, Computer Science Division, University of California at Berkeley
【発明の概要】
【発明が解決しようとする課題】
【００１４】
本発明の実施形態は、エンド装置間における通信のスループットを改善するためにエンド装置間の通信制御から独立した通信制御を実施可能な技術を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明の実施形態は、送信側エンド装置と受信側エンド装置との間で送受信されるＴＣＰ（Transmission Control Protocol）パケットの経路上に配置された中継装置であって
、
前記送信側エンド装置から受信される前記受信側エンド装置宛てのＴＣＰパケットと、前記経路上において前記中継装置と前記受信側エンド装置との間に配置された他の中継装置から受信される前記送信側エンド装置宛てのＴＣＰパケットとを覗き見ることによって得られた情報を記憶する記憶装置と、
前記情報に基づき、前記送信側エンド装置と前記受信側エンド装置との間で実行される通信制御から独立した通信制御を前記他の中継装置との間で実行する制御装置と
を含む中継装置である。
【発明の効果】
【００１６】
本発明の実施形態によれば、エンド装置間における通信のスループットを改善するためにエンド装置間の通信制御から独立した通信制御を実施することができる。
【図面の簡単な説明】
【００１７】
【図１】図１は、実施形態におけるネットワークシステムの構成例を示す。
【図２】図２は、実施形態に係る中継装置に適用可能な情報処理装置（コンピュータ）のハードウェア構成例を示す。
【図３】図３は、中継装置の構成例を模式的に示す。
【図４】図４は、ＡＣＫ済みリストのデータ構造例を示す。
【図５】図５は、図１に示した端末とホストとがＴＣＰ通信を行う場合における各中継装置の動作を示すシーケンス図である。
【図６】図６は、図１に示した端末とホストとがＴＣＰ通信を行う場合における各中継装置の動作を示すシーケンス図である。
【図７】図７は、揺らぎdiffの分散V(diff)とパケット間隔(g)との関係を示すグラフである。
【図８】図８は、パケット受信時における中継装置におけるＣＰＵの処理を示すフローチャートである。
【図９】図９は、送信側の中継部として機能するときのＣＰＵの処理を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、図面を参照して本発明の実施形態について説明する。実施形態の構成は例示であり、本発明の実施形態は、以下の実施形態の構成に限定されない。
【００１９】
実施形態では、上記課題を解決するために、中継装置は、ＴＣＰを終端することなく、レイヤ２（Ｌ２）又はレイヤ３（Ｌ３）のパケット中継を行う際に、パケットの中身を覗き見（スヌープ）する。パケットロスが検出された場合には、中継装置間で再送を要求し、エンド装置間のＴＣＰの再送機構とは独立したフィードバックに基くローカル再送を行う。これによって、エンド装置のＴＣＰに見える廃棄率を下げ、ＴＣＰのスループットが低下することを回避する（改善を図る）ことができる。
【００２０】
＜ネットワーク構成＞
図１は、実施形態におけるネットワークシステムの構成例を示す。図１において、ネットワークシステム１０は、インターネットＩＮと、インターネットＩＮに接続されたクラウドＣを含む。インターネットＩＮは、Internet Protocol （ＩＰ）網の一例である。クラウドＣは、イントラネットであっても良い。
【００２１】
インターネットＩＮには、ユーザ端末である端末（端末装置）１１が接続されている。クラウドＣは、端末１１と通信を行う端末（端末装置）１２（以下、ホスト１２と表記）と、ＳＳＬ−ＶＰＮ装置１３とを含んでいる。また、クラウドＣの入口には、ファイアウォールＦＷが配置されている。ＳＳＬの通信セッションは、ファイアウォールＦＷを通過することができる設定を有する。
【００２２】
さらに、ネットワークシステム１０は、実施形態に係る中継装置を含む。すなわち、インターネットＩＮには、中継装置１５（中継装置＃１）が設置されている。クラウドＣにおけるファイアウォールＦＷとＳＳＬ−ＶＰＮ装置１３との間には、中継装置１６（中継装置＃２）が設置されている。中継装置１５は、第１中継装置（送信側中継装置）の一例であり、中継装置１６は第２中継装置（受信側中継装置）の一例である。
【００２３】
端末１１は、送信エンド装置の一例であり、ＳＳＬ−ＶＰＮ装置１３は受信エンド装置の一例である。中継装置１５は、送信側中継装置の一例であり、中継装置１６は、受信側中継装置の一例である。
【００２４】
端末１１がクラウドＣ内のホスト１２とＴＣＰ通信を行う場合には、ＳＳＬ−ＶＰＮを用いた通信が行われる。端末１１は、ホスト１２と通信するため、暗号化された送信データ（送信パケット）を、ＳＳＬ−ＶＰＮトンネルを用いて送信する。すなわち、端末１１は、送信パケットにＳＳＬ−ＶＰＮに基づくヘッダを付与することで送信パケットをカプセル化し、カプセル化されたパケットを送信する。カプセル化パケットは、中継装置１５を経て、クラウドＣに到達する。
【００２５】
カプセル化パケットはＳＳＬヘッダ及びＴＣＰヘッダを含み、ＴＣＰヘッダには、宛先ポート番号４４３番が指定されている。この宛先ポート番号の指定によって、カプセル化パケットは、ファイアウォールＦＷを通過することができる。  カプセル化パケットは、中継装置１６を経て、クラウドＣ内のＳＳＬ−ＶＰＮ装置１３で終端される。すなわち、
カプセル化パケットからヘッダが除去されて元の送信パケットが取得される。ＳＳＬ−ＶＰＮ装置１３は、ＳＳＬ−ＶＰＮ通信に係るＴＣＰセッションと異なるＴＣＰセッションを用いて、送信パケットをホスト１２へ転送する。
【００２６】
ホスト１２から端末１１宛てのパケットが送信された場合には、ＳＳＬ−ＶＰＮ装置１３が、ホスト１２から受信されたパケットをカプセル化する。カプセル化されたパケットは、中継装置１６，ファイアウォールＦＷ，インターネットＩＮ，中継装置１５を通過し、端末１１で受信される。端末１１は、カプセル化パケットのヘッダ除去によって、元のパケットを取得することができる。
【００２７】
例えば、クラウドＣ，すなわち、クラウドデータセンタが遠方（例えば海外）にあり、ＳＳＬ−ＶＰＮトンネルのセッション（ＳＳＬセッション）がインターネットＩＮを介して設定される場合に、遅延が大きく(例えば、往復遅延時間RTT=200ms)、廃棄率が高い(例えば、廃棄率=0.1%)回線をＳＳＬセッションが通ると仮定する。
【００２８】
この場合、端末１１とＳＳＬ−ＶＰＮ装置１３との間のＳＳＬセッションは、通常のＴＣＰプロトコルを用いると良好なスループットが得られないことが予想される。このような事情に鑑み、中継装置１５及び中継装置１６が配置されている。なお、中継装置１５と中継装置１６との間における通信経路上には、１以上の通常の中継装置（中継装置１５及び１６が有する再送制御機能（後述）を有しない中継装置）が配置されていても良い。
【００２９】
＜中継装置のハードウェア構成例＞
各中継装置１５及び１６のハードウェア構成として、例えば、既存のレイヤ３スイッチやルータが有するハードウェアアーキテクチャを適用することができる。或いは、中継装置のハードウェア構成として、パーソナルコンピュータ（ＰＣ），ワークステーション，専用又は汎用のサーバマシンが有する既存のハードウェアアーキテクチャを適用することもできる。
【００３０】
図２は、実施形態に係る中継装置１５、中継装置１６として適用可能な情報処理装置（コンピュータ）のハードウェア構成例を示す。図２において、情報処理装置２０は、例として、Central Processing Unit(ＣＰＵ)２１と、メモリ２２と、ストレージ（記憶装置
）２３と、Graphics Processing Unit(ＧＰＵ)２４とを含む。さらに、情報処理装置２０は、入力インタフェース２５と、外部デバイスフェース２６と、通信インタフェース２７とを含む。
【００３１】
ＣＰＵ２１，メモリ２２，ストレージ２３，ＧＰＵ２４，入力インタフェース２５，外部デバイスインタフェース２６，及び通信インタフェース２７は、バスＢを介して相互に接続されている。
【００３２】
入力インタフェース２５には、入力装置（例えば、キーボード，ボタン，ポインティングデバイス）２５Ａが接続される。外部デバイスインタフェース２６は、例えば、ディスク記録媒体（ＣＤ，ＤＶＤ，ブルーレイ）のドライブ装置や、Universal Serial Bus(Ｕ
ＳＢ)メモリや周辺機器（ディスプレイ（表示装置）のような出力装置）が接続されるＵ
ＳＢポートを含む。
【００３３】
メモリ２２は、ＣＰＵ２１の作業領域として使用されるメインメモリとして機能する。メインメモリは、例えば、Random Access Memory（ＲＡＭ）及びRead Only Memory（ＲＯＭ）を含む。
【００３４】
ストレージ２３は、ＣＰＵ２１によって実行される各種のプログラム，及び各プログラ
ムの実行時に使用されるデータを記憶する。ストレージ２３は、例えば、不揮発性記録媒体であり、例えば、ハードディスク，フラッシュメモリ，ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）の少なくとも１つを用いて形成されることが
できる。メモリ２２及びストレージ２３のそれぞれは、記録媒体の一例である。ＧＰＵ２４は、画像処理を司るプロセッサである。
【００３５】
通信インタフェース（通信ＩＦ）２７は、通信インタフェース回路を含む。通信ＩＦと２７して、例えば、既存のネットワーク・カードやネットワーク・インタフェース・カード（ＮＩＣ）と呼ばれるLocal Area Network（ＬＡＮ）接続用のインタフェース装置を適用することができる。通信ＩＦ２７は、例えば、インターネットＩＮ，クラウドＣ内のネットワークに接続される。
【００３６】
ＣＰＵ２１は、例えば、ストレージ２３にインストールされたプログラムをメモリ２２にロードして実行することにより、中継装置１５（中継装置１６）としての機能を発揮することができる。ＣＰＵ２１は、プロセッサ（マイクロプロセッサ）や制御装置の一例である。ＣＰＵ２１の代わりに、Digital Signal Processor（ＤＳＰ）を使用することもできる。
【００３７】
図２に示した情報処理装置２０のハードウェア構成は、図１に示した端末１１，ホスト１２，ＳＳＬ−ＶＰＮ装置のハードウェア構成として適用することができる。また、後述する中継装置１５（中継装置１６）が有する機能は、端末１１やホスト１２のような端末装置やサーバを含むエンド装置、或いは、ＷＡＮ高速化装置を含む各種の中継装置に適用可能である。
【００３８】
上述したＣＰＵ２１，メモリ２２及びストレージ２３を用いたプログラム実行によって実現される機能は、専用又は汎用のハードウェアチップを用いたハードウェアロジック（ワイヤードロジック）によって実現されても良い。
【００３９】
ハードウェアロジック又はワイヤードロジックによって実現される機能は、例えば、電気回路，電子回路，集積回路（Integrated circuit（ＩＣ），Large Scale Integration
（ＬＳＩ），Application Specific Integrated Circuit（ＡＳＩＣ）等），Programmable Logic Device （ＰＬＤ，例えば、Field Programmable Gate Array（ＦＰＧＡ））のうちの少なくとも１つ、又は２以上によって実現されることができる。
【００４０】
＜中継装置の構成例＞
図３は、中継装置の構成例を模式的に示す。中継装置１５と中継装置１６とは同じ構成を有するため、図３は、例として、中継装置１５の構成例を示す。中継装置１５は、アップリンク（ＵＬ）用のインタフェース部（ＩＦ部）３１と、ダウンリンク（ＤＬ）用のインタフェース部（ＩＦ部）３２とを有している。
【００４１】
ＩＦ部３１は、受信側の中継部（ＲＸ）３３と、送信側の中継部（ＴＸ）３４と接続されている。ＩＦ部３２は、受信側の中継部（ＲＸ）３５と、送信側の中継部（ＴＸ）３６と接続されている。中継部３３，３４，３５及び３６は、交換部（スイッチ）３７と接続されている。
【００４２】
アップリンク側において、中継部３３は、中継処理部３３１とＴＣＰ解析部３３２とを有し、中継部３４は、バッファ３４１とレート制御部３４２とを含んでいる。ＴＣＰ解析部３３２は、ＴＣＰ  ＡＣＫ生成部３８と接続されており、ＴＣＰ  ＡＣＫ生成部３８は、ＡＣＫ済みリスト３９と接続されている。
【００４３】
ダウンリンク側において、中継部３５は、中継処理部３５１とＴＣＰ解析部３５２とを含んでいる。中継部３６は、バッファ３６１とレート制御部３６２とを含んでいる。ＡＣＫ済みリスト３９は、ＴＣＰ解析部３５２と接続されている。ＴＣＰ解析部３５２は、ＴＣＰ輻輳検出部４０と接続されている。ＴＣＰ輻輳検出部４０は、レート制御部３６２と接続されている。また、中継部３６は、キャッシュ部４１と接続されている。
【００４４】
各ＩＦ部３１，３２は、ネットワークからの信号を中継部が扱うパケットに変換したり、中継部から送信されるパケットをネットワーク上の信号に変換したりする。交換部３７は、受信側の中継部（中継部３３，３５）から受信されたパケットを、受信側の中継部で指定された出力インタフェースに対応する送信側の中継部（中継部３４，３６）に転送する処理（スイッチング）を行う。
【００４５】
各中継部３３〜３６は、対応するＩＦ部（ＩＦ部３１及び３２の一方）から受信したパケットを中継ルール(予め保持した経路テーブル（ルーティングテーブル）など)に従って他のＩＦ部（ＩＦ部３１及び３２の他方）へ転送する処理を行う。中継は、ＯＳＩ参照モデルにおけるレイヤ３の中継であっても、レイヤ２の中継であってもよい。
【００４６】
各中継処理部３３１，３５１は、対応するＩＦ部から受信されたパケットを中継ルールに従って転送先のＩＦ部を決定する処理を行う。各ＴＣＰ解析部３３２，３５２は、対応する受信側の中継部３３又は３５で受信されたパケットに含まれるＴＣＰヘッダの情報を覗き見（スヌーピング）によって検査する。
【００４７】
各バッファ３４１，３６１は、交換部３７から転送された未送信のパケットを一時的に蓄積する。各レート制御部３４２，３６２は、パケット送信レートの制御を行う。例えば、レート制御部３６２は、ＴＣＰ輻輳検出部４０からの指示に基づいて、中継部３６におけるパケット送信レートを規制する。
【００４８】
ＴＣＰ  ＡＣＫ生成部３８は、アップリンク（上流）側の通信装置から受信されたパケットをＴＣＰ解析部３３２が覗き見（検査）した結果、ＴＣＰパケットが含まれる場合、ダウンリンク（下流）側のエンド装置（エンドホスト）に代わってＴＣＰ受信確認メッセージ（ＴＣＰ  ＡＣＫ）を生成する。ＴＣＰ  ＡＣＫを含むパケット（ＡＣＫパケット）は、中継部３４及びＩＦ部３１を経て、アップリンク側の通信装置へ送信される。これによって、送信ホスト（アップリンク側のエンド装置）と中継装置１５との間の転送スループットの低下を抑えることができる。
【００４９】
ＴＣＰ輻輳検出部４０は、ダウンリンク側の通信装置から受信されたＡＣＫパケットをＴＣＰ解析部３５２が覗き見した結果に基づき、ダウンリンク側の通信装置間の回線の輻輳具合を判断する。ＴＣＰ輻輳検出部４０は、判断結果に基づき、ダウンリンク側のレート制御部３６２に送信帯域を指示する。
【００５０】
また、ＴＣＰ輻輳検出部４０は、ダウンリンク側の通信装置が送信するＡＣＫパケットから判断される、アップリンク側に位置する中継装置とダウンリンク側に位置する中継装置と間のネットワークの通信品質に基づいて、アップリンク側に位置する中継装置の送信レートを決定する。
【００５１】
キャッシュ部４１は、送信側の中継部３６によって中継されるパケットを、再送要求に備えて蓄積する。キャッシュ部４１に蓄積されたパケットは、ＴＣＰ解析部３５２が対応するＡＣＫを検出した場合に、キャッシュ部４１から削除される。
【００５２】
ＡＣＫ済みリスト３９は、中継装置においてローカル的にＡＣＫを返信したパケット（
メッセージ）の識別情報と、ＡＣＫ送信済／未送信を示す情報とを記録するリストである。ＤＬ側のＴＣＰ解析部３５２は、ＤＬ側からＡＣＫを受信した場合に、ＡＣＫ済みリスト３９を参照し、受信したＡＣＫをＵＬ側へ転送するか否かを判定する。
【００５３】
図４は、ＡＣＫ済みリストのデータ構造例を示す。図４において、ＡＣＫ済みリストは、１以上のレコードからなる。レコードは、送信元ＩＰアドレス（ＳＲＣ  ＩＰ），送信元ポート番号（ＳＲＣ  ＰＯＲＴ），宛先ＩＰアドレス（ＤＳＴ  ＩＰ），宛先ポート番号（ＤＳＴ  ＰＯＲＴ），開始シーケンス（ＳＥＱ）番号，終了シーケンス番号，及び中継時刻をパケットの識別情報として記憶する。さらに、レコードは、ＡＣＫの送信済み／未送信を示す情報としてＡＣＫフラグを格納する。ＡＣＫフラグは、ＵＬ側の中継部３４によるＡＣＫ送信処理が終了した場合にセット（オン）にされ、ＡＣＫ送信処理が終了するまでの間はセットされない。
【００５４】
図３に図示したＩＦ部３１及び３２は、図２に示した通信ＩＦ２７によって実現される。中継処理部３３１及び３５１，ＴＣＰ解析部３３２及び３５２，ＴＣＰ  ＡＣＫ生成部３８，ＴＣＰ輻輳検出部４０，レート制御部３４２及び３６２は、例えば、ＣＰＵ２１がプログラムを実行することによって実現される機能である。バッファ３４１及び３６１，並びにキャッシュ部４１は、メモリ２２の記憶領域を用いて実現される。ＡＣＫ済リスト３９は、メモリ２２の記憶領域に記憶される。中継処理部３３１，３５１及び交換部３７の機能は、ＣＰＵ２１によるプログラムの実行、或いは専用又は汎用のハードウェアを用いて実現することができる。
【００５５】
図３に示した中継装置の構成は、端末やサーバに実装可能である。この場合、例えば、端末やサーバ上に仮想マシンを構成し、当該仮想マシン上で中継装置と同等の機能がソフトウェアによって実行される。なお、中継装置１５，１６が備えるハードウェア構成として、ＧＰＵ２４，入力インタフェース２５，外部デバイスインタフェース２６は省略が可能である。
【００５６】
＜動作シーケンス＞
図５及び図６は、図１に示した端末１１とホスト１２とがＴＣＰ通信を行う場合における中継装置１５及び中継装置１６の動作を示すシーケンス図である。図５に示すシーケンスは、端末１１とクラウドＣのＳＳＬ−ＶＰＮ装置１３との間でＳＳＬセッションを確立し、端末１１からＳＳＬ−ＶＰＮ装置１３の下流側にあるホスト１２へファイル（データ）を転送する場合を想定する。なお、中継装置１５，１６から見て、端末１１側がアップリンク（ＵＬ）側であり、ホスト１２側がダウンリンク（ＤＬ）側である。
【００５７】
端末１１は、ＳＳＬ−ＶＰＮ装置１３との間で、ＴＣＰポート番号“４４３”が宛先ポート番号に指定されたＳＳＬセッションを確立する。ファイアウォールＦＷは当該ＳＳＬセッションを通過させる。
【００５８】
端末１１は、ＳＳＬ−ＶＰＮ装置１３に対して鍵を要求し(１)、ＳＳＬ−ＶＰＮ装置１３との間で共通鍵を交換する(３１)。このとき、各中継装置１５，１６は、ＳＳＬセッション確立のためのＴＣＰパケットの内容を参照し(１１，２１)、ＴＣＰパケットが鍵交換用のパケットである場合には、そのまま中継する(１２，２２)。
【００５９】
例えば、中継装置１５，１６は、ＴＣＰパケットに含まれるＳＳＬヘッダの“Content Type”の値を参照し、この値がユーザデータを含むことを示す“Application_Data”であるときに、ＡＣＫ生成及び送信処理を行うようにすることができる。
【００６０】
端末１１は、ＳＳＬ−ＶＰＮ装置１３と共通鍵を交換すると、データを暗号化しＴＣＰ
セッションを用いて送信する(２)。ＴＣＰでは、通信を行う際にウィンドウ制御が行われる。ここでは、シーケンス番号（SEQ=150〜250）のＴＣＰセグメントを含むＩＰパケット（カプセル化パケット、以下、単に「パケット」と表記することもある）が、送信されたと仮定する。
【００６１】
中継装置１５（中継装置＃１）では、ＴＣＰを終端することなく、ＤＬ側の中継部３３の中継処理部３３１がパケットの中継処理を行う（１３）。このとき、ＴＣＰ解析部３３２は、パケットのＴＣＰヘッダを参照する（覗き見る）。ＴＣＰヘッダがある場合、ＴＣＰ  ＡＣＫ生成部３８は、パケットに対するＡＣＫを生成する。ＡＣＫは、端末１１に送信される（１５）。このとき、ＡＣＫを送信したパケットの情報が、ＡＣＫ済みリスト３９に格納される。このとき、ＡＣＫ済みリスト３９において、当該パケットのレコードにおけるＡＣＫフラグがオンに設定される。このようにＡＣＫは、対向装置（中継装置１６）から受信される前に端末１１へ送信される。これによって、端末１１におけるＡＣＫの待ち状態を早期に解除することができる。
【００６２】
また、ダウンリンク側の中継部３６では、中継部３３から交換部３７を介して受信されたパケットを中継装置１５と中継装置１６との間での間の再送に備えてキャッシュ部４１に一時記憶する（１６）。パケットは、中継部３６からＩＦ部３２を経て、インターネットＩＮに送出される（図１）。パケットは、通信が正常に行われる場合、クラウドＣのファイアウォールＦＷを通過して、中継装置１６へ到達する。しかし、図５では、中継装置１５と中継装置１６との間のネットワークにおいて、シーケンス番号“SEQ=200”を含む
パケットが破棄された場合が例示されている。
【００６３】
中継装置１６では、中継部３３（中継処理部３３１）が、受信したパケットの中継処理を行う（２３）。このとき、ＴＣＰ解析部３３２は、パケットのＴＣＰヘッダを参照し(
２４)、中継すべきパケットのうち“SEQ=200”のパケットが抜けている（破棄されている）ことを検出することができる。
【００６４】
ＴＣＰ  ＡＣＫ生成部３８は、ＴＣＰ解析部３３２の解析結果に応じて、ローカルなＡＣＫ（受信成功を示す肯定応答）又はＮＡＣＫ（non-ACK：受信失敗を示す否定応答）を
生成する。すなわち、中継部３３で受信できたパケットに関しては、ＡＣＫを含むパケットを生成し、受信できなかったパケットに関してはＮＡＣＫを含むパケットを生成する（２５）。生成されたＡＣＫ及びＮＡＣＫを含むパケット（ＡＣＫ／ＮＡＣＫパケット）は、中継装置１５へ送信される。なお、ＡＣＫ又はＮＡＣＫを含むパケット（ＡＣＫ／ＮＡＣＫメッセージ）は、ユーザデータを含まず、暗号化は不要である。
【００６５】
中継装置１６では、送信側の中継部３６がパケットをＳＳＬ−ＶＰＮ装置１３へ転送すると共に、当該パケットのコピーをキャッシュ部４１に蓄積する中継パケットをキャッシュする（２６）。
【００６６】
中継装置１５は、中継装置１６からローカルなＡＣＫ又はＮＡＣＫを受信する。ＡＣＫが受信された場合には、当該ＡＣＫは、中継部３５のＴＣＰ解析部３５２で検出される。この場合、ＴＣＰ解析部４０は、キャッシュ部４１に格納されたＡＣＫに対応するパケットを削除する。一方、ＴＣＰ解析部４０がＮＡＣＫを検出した場合には、中継部３６が、ＮＡＣＫに対応するパケットをキャッシュ部４１から取得し、中継装置１６へ再送する（１７）。
【００６７】
２５で中継装置１６から送信されるＡＣＫ又はＮＡＣＫは、中継装置１５と中継装置１６との間でパケットのローカルな再送を行うために生成されたメッセージである。このため、中継装置１５は、ＡＣＫ及びＮＡＣＫをＵＬ方向に中継しない。
【００６８】
具体的には、中継装置１５では、ＤＬ側の中継部３５でローカルなＡＣＫが受信されると、ＡＣＫ済みリスト３９を参照し、既にＵＬ側の中継部３４が上流の通信機器（端末１１）にＡＣＫを送信している場合（ＡＣＫフラグがオンの場合）には、ＡＣＫパケットを破棄する（１９）。
【００６９】
また、中継装置１５では、中継装置１６からのＡＣＫ又はＮＡＣＫの到着をＴＣＰ解析部３５２と接続されたＴＣＰ輻輳検出部４０が監視する。ＴＣＰ輻輳検出部４０は、中継装置１５と中継装置１６との間の回線の輻輳具合を検出する。レート制御部３６２は、検出された輻輳具合に応じて、ＤＬ方向へのパケット送信レートを決定する。
【００７０】
例えば、ＴＣＰ輻輳検出部４０は、中継装置１５から中継装置１６へ送信したパケットに対するＡＣＫパケットの到着時間（往復遅延時間ＲＴＴ）を計測する。計測結果において、到着間隔の揺らぎが少なければ、中継装置１５と中継装置１６との間の回線には、送信レートを上げる余裕があると判断して送信レートを上げる。これに対し、ＴＣＰ輻輳検出部４０は、揺らぎが大きいときに中継装置１５と中継装置１６との間で輻輳が生じていると判断し、送信レートを下げる。
【００７１】
揺らぎ（分散）と送信レートとの関係について説明する。ＴＣＰ輻輳検出部４０は、中継装置１６へ送信されるパケットと、当該パケットに対するＡＣＫパケットとのＲＴＴの揺らぎを計算する。ＴＣＰ輻輳検出部４０は、揺らぎの大きさに応じてパケットの送信間隔（パケット間ギャップ）を大きくする。
【００７２】
ＲＴＴの揺らぎdiffは、以下の式（１）で算出することができる。
【００７３】
【数１】
2015012570.tif 000003
【００７４】
式（１）において、baseRTTは、中継装置で観測されるＲＴＴの最小値である。揺らぎdiffの平均をE(diff)とし、揺らぎdiffの分散をV(diff)とすると、V(diff)は、以下の式（２）で求められ、V(diff)が所定閾値γ以上であるときの送信レートＷは、以下の式（３
）で求められる。
【００７５】
【数２】
2015012570.tif 000004
【００７６】
図７は、揺らぎdiffの分散V(diff)とパケット間隔(g)との関係を示すグラフである。分散V(diff)が閾値γ未満である間は、パケットは、最小のパケット間ギャップｇ0で送信される。すなわち、最高の送信レートでパケットが送信される。これに対し、分散V(diff)
が閾値γを上回ると、パケット間ギャップ（ｇ）は、分散V(diff)の上昇に応じて広くな
る（図７に示す曲線グラフを参照）。従って、揺らぎが大きくなると、送信レートＷを低下させることで、パケットの欠落（破棄）を回避する。
【００７７】
上記のような送信レート制御の採用によって、端末１１で実行されるＴＣＰに基づくレート制御（ウィンドウ制御）と異なるレート制御でパケットを送信することが可能となる。したがって、ＲＴＴが大きい回線であっても、端末１１でのレート制御によるスループットの影響を受けることを回避することができる。
【００７８】
図６に戻って、中継装置１６は、中継装置１５から受信したパケットをＳＳＬ−ＶＰＮ装置１３に向けて中継（送信）する。このとき、中継（送信）されたパケットがキャッシュ部４１に一時記憶（キャッシュ）される。
【００７９】
ＳＳＬ−ＶＰＮ装置１３は、受信したパケットに対してＡＣＫを送信する（３２）。中継装置１６は、ＤＬ側の中継部３５でＡＣＫを受信すると、ＴＣＰ解析部３５２がＡＣＫ済みリスト３９を参照し、既にＵＬ側の中継部３３が上流の通信機器（中継装置１５）にＡＣＫを送信している場合には、ＡＣＫパケットを破棄する（２８）。これに対し、ＡＣＫが未送信（ＡＣＫフラグがオフ）の場合には、中継部３６がＡＣＫを中継装置１５に送信する。
【００８０】
ＳＳＬ−ＶＰＮ装置１３は、中継装置１６から受信されたパケットに対するＳＳＬセッションの終端処理を行う。すなわち、ＳＳＬ−ＶＰＮ装置１３は、パケットのデカプセル化を行い、オリジナルのパケットを得る。オリジナルのパケットは、ＳＳＬ−ＶＰＮ装置１３とホスト１２との間に確立された、他のＴＣＰセッションを用いてホスト１２に送信される。ホスト１２は、受信できたパケットについてはＡＣＫを、受信できなかったパケットについてはＮＡＣＫをＳＳＬ−ＶＰＮ装置１３に返す。
【００８１】
＜動作フローチャート＞
図８は、パケット受信時における中継装置１５（中継装置１６）におけるＣＰＵ２１の処理を示すフローチャートである。受信側の中継処理部３３１として機能するＣＰＵ２１は、パケットが受信されると、ＴＣＰ解析部３３２として機能し、パケットのＴＣＰヘッダを覗き見る(１０１)。
【００８２】
次に、ＣＰＵ２１は、ＴＣＰヘッダの格納内容を参照して、パケット（ＴＣＰパケット）の種別を判定する（１０２）。ここに、ＴＣＰパケットは、ユーザデータを含む通常のデータパケットと、ＡＣＫを含みユーザデータを含まないＡＣＫパケットと、ユーザデータ及びＡＣＫを含む“ＡＣＫ＋データ”パケットとに分類することができる。
【００８３】
ＴＣＰパケットがデータパケットである場合には、１１０の処理へ進む。１１０において、ＣＰＵ２１は、ＴＣＰ  ＡＣＫ生成部３８として機能し、データパケットに対するＡＣＫを生成し、アップリンク側の通信装置へ送信する。１１０の処理は、主に、中継装置１５が端末１１からデータパケットを受信し、中継装置１６へ中継する場合に発生する。
【００８４】
このとき、ＣＰＵ２１は、正常に受信された最終セグメントのシーケンス番号をＡＣＫに含める。また、ＣＰＵ２１は、シーケンス番号が欠落しているセグメントについては、ＴＣＰヘッダのオプションフィールドの一つである（選択的受信確認（Selective Acknow
ledgment：ＳＡＣＫ））フィールドを利用し、欠落しているシーケンス番号を上流の通信装置へ通知してもよい。
【００８５】
また、ＣＰＵ２１は、ＴＣＰ ＡＣＫ生成部３８として機能し、ＡＣＫを送信したデー
タパケットの識別情報をＡＣＫ済みリスト３９（図４）に記録し、ＡＣＫフラグをオンに設定する（１１１）。
【００８６】
その後、ＣＰＵ２１は、中継処理部３３１として機能し、パケットのＩＰヘッダを参照し、メモリ２２やストレージ２３に予め記憶されている経路テーブル(ルーティングテー
ブル：図示せず)を参照し、宛先ＩＰアドレスに対応する送信先インタフェースを決定す
る。そして、ＣＰＵ２１は、決定されたインタフェースへパケットが転送されるように交換部（スイッチ）３７を制御する (１１２)。交換部（スイッチ）３７は、パケットを送
信側（ダウンリンク側）のＩＦ部３２へ向けて転送し、パケットは、バッファ３６１に一時記憶される。
【００８７】
１０２において、ＴＣＰパケットがＡＣＫパケットである場合には、処理が１２０へ進む。１２０以降の処理は、主に、中継装置１６が中継装置１５から受信したデータパケットに対するＡＣＫパケットを中継装置１５が受信した場合に実行される。
【００８８】
１２０において、ＣＰＵ２１は、ＴＣＰパケットがＡＣＫパケットである場合には、ＴＣＰ輻輳検出部４０として機能する。すなわち、ＣＰＵ２１は、ＡＣＫの受信時刻と、ＡＣＫに対応するデータパケットの中継時刻（ＡＣＫ済みリスト３９に記録）とからＲＴＴを求める。続いて、ＣＰＵ２１は、ＲＴＴの平均値（E(diff)に相当）を計算するととも
に、連続するパケットのＲＴＴの分散（V(diff)に相当）を計算する。
【００８９】
ＣＰＵ２１は、ＲＴＴの平均及び分散を用いて輻輳状態を判断し、パケットの送信間隔（送信レート）を決定する(１２１)。また、ＣＰＵ２１は、ＡＣＫ済みリスト３９を参照し、ＡＣＫに対応するレコードのＡＣＫフラグがオンになっている場合には、キャッシュ部４１からデータパケットを削除する（１２４）とともに、ＡＣＫパケットを破棄する（１２５）。さらに、ＡＣＫパケットをＵＬ方向へ通知する必要がないからである。このとき、リストから該当するレコードも削除される。
【００９０】
一方、ＡＣＫに対応するデータパケットのＡＣＫがＵＬ方向に未送信の場合（ＡＣＫフラグがオフの場合）には、ＣＰＵ２１は、ＡＣＫパケットをＵＬ方向に中継する（１２３）。ＵＬ側の中継装置（中継装置１５）が端末１１へまだＡＣＫを送信していないことを意味するからである。
【００９１】
１０２において、ＴＣＰパケットが“ＡＣＫ＋データ”パケットである場合は、１３０以降の処理が実行される。１３０以降の処理は、主に、中継装置１６が中継装置１５から受信したデータパケットに対し、それぞれＡＣＫパケットを送信することなく中継し(例
えば鍵交換のシーケンス)、ホスト１２から端末１１へユーザデータ及びＡＣＫを一つの
パケットに含めて送信した“ＡＣＫ＋データ”パケットをＤＬ側で受信した場合に実行される。
【００９２】
１３０〜１３２，及び１３４の処理は、１２０〜１２２，及び１２４の処理と同じである。１３５では、“ＡＣＫ＋データ”パケットからＡＣＫが除去されたデータパケットをＣＰＵ２１が生成し、当該データパケットがＵＬ側へ転送される。また、１３３では、ＡＣＫフラグがオンとなっていないため、当該“ＡＣＫ＋データ”パケットをＣＰＵ２１はそのままＵＬ側へ転送する。
【００９３】
図９は、送信側の中継部３６として機能するときのＣＰＵ２１の処理を示すフローチャートである。ＣＰＵ２１は、図８における１２１又は１３１で設定したパケット送信間隔に従ってパケットを送信する。すなわち、ＣＰＵ２１は、パケット送信時刻になったらバッファ３６１からパケットを一つ取り出す(２０１)。続いて、ＣＰＵ２１は、キャッシュ部４１にパケットのコピーを書き込む(２０２)。そして、ＣＰＵ２１は、パケット送信時刻をＡＣＫ済みリストに記録し(２０３)、ＩＦ部３２へパケットを転送する(２０４)。
【００９４】
なお、図３〜図９を用いた説明では、ＵＬ方向からＤＬ方向へＴＣＰパケットが送信される場合の構成及び動作について説明した。もっとも、ＤＬ方向からＵＬ方向（ＳＳＬ−ＶＰＮ装置１３→端末１１）へ転送されるＳＳＬセッションのＴＣＰパケットについて上記と同様の動作を行うための構成要素を中継装置１５，１６は備えることができる。
【００９５】
＜実施形態の作用効果＞
実施形態におけるネットワークシステム１０によれば、端末１１とＳＳＬ−ＶＰＮ装置１３との間に中継装置１５，１６との間で、端末１１とＳＳＬ−ＶＰＮ装置１３との間（エンド装置間）で実施される再送制御から独立したＴＣＰパケットの再送制御が行われる。
【００９６】
当該再送制御は、ＴＣＰパケットの送信元装置である端末１１に、ＴＣＰパケットの再送を要求するのではなく、中継装置１５や中継装置１６にキャッシュ（一時記憶）されたＴＣＰパケットのコピーが用いられる。これによって、再送に係る時間の短縮化を図ることができ、エンド装置間におけるＴＣＰパケットのスループットの低下を抑えることができる。
【００９７】
また、再送制御は、中継装置１５，１６が、ＴＣＰパケットのＴＣＰヘッダを覗き見することで行われる。すなわち、ＴＣＰセッションの暗号化がエンド装置間で一旦解除されることがない。このため、ＴＣＰセッションがファイアウォールＦＷで遮断されることがなく、且つＴＣＰセッションの一時解除のための複雑な処理に伴うスループット低下を抑えることができる。また、既存のＷＡＮ高速化装置のような高価な装置の導入を回避することができる。
【００９８】
また、中継装置１５は、ＴＣＰパケットの送信時刻と、ＴＣＰパケットに対応するＡＣＫパケットの受信時刻からＲＴＴを算出し、さらに、ＲＴＴの平均及び分散（揺らぎの平均及び分散）を算出する。そして、中継装置１５は、分散の値を中継装置間の輻輳度合いを示す指標として用い、分散値に応じたパケット送信間隔（送信レート）を決定する。中継装置１６も、中継装置１５と同様の手法で、送信レートを決定することができる。このように、中継装置１５，１６は、エンド装置間で実行される送信レート制御と異なる送信レート制御を実施することができる。
【００９９】
上記のような再送制御及びレート制御を含め、実施形態における中継装置間では、エンド装置間で実行される通信制御から独立した通信制御を実行することができる。例えば、輻輳検出、誤り訂正制御、及び送信レート制御を、中継装置間において、エンド装置間と異なる方法で行うことができる。
【０１００】
例えば、エンド装置間でパケットロスの検出に基づく輻輳検出が実行されている場合に、中継装置間で、キューイング遅延検出による輻輳検出を行うことができる。また、エンド装置間でキューイング遅延検出による輻輳検出が実行されている場合に、中継装置間で、空き帯域測定による輻輳検出を行うことができる。
【０１０１】
また、誤り訂正制御として、エンド装置間では、輻輳検出時にパケットの再送が行われ
るのに対し、中継装置間では、輻輳検出時に誤り訂正制御として、パケットにＦＥＣ（Forward Error Correction）による冗長データを付加する処理が実行されるようにしても良い。或いは、エンド間で実行される再送のバックオフ制御と異なる再送のバックオフ制御が実行されるようにしても良い。或いは、エンド間で使用される再送タイマ値と異なる再送タイマ値が中継装置間で使用されるようにしても良い。
【０１０２】
また、レート制御として、エンド装置間で輻輳ウィンドウの大きさを増減する方法が利用されている場合に、中継装置間で、図７を用いて説明したようなパケット間ギャップを調整する方法や、ウィンドウの大きさではなく、最大送信レートを制御する方法を実施することができる。
【０１０３】
（付記１）  送信側エンド装置と受信側エンド装置との間で送受信されるＴＣＰ（Transmission Control Protocol）パケットの経路上に配置され、
前記送信側エンド装置から受信される前記受信側エンド装置宛てのＴＣＰパケットと、前記経路上において前記中継装置と前記受信側エンド装置との間に配置された他の中継装置から受信される前記送信側エンド装置宛てのＴＣＰパケットとを覗き見ることによって得られた情報を記憶する記憶装置と、
前記情報に基づき、前記送信側エンド装置と前記受信側エンド装置との間で実行される通信制御から独立した通信制御を前記他の中継装置との間で実行する制御装置と
を含む中継装置。（１）
【０１０４】
（付記２）  前記記憶装置は、前記送信側エンド装置から受信されたＴＣＰパケットが前記他の中継装置へ中継されるときに、当該ＴＣＰパケットのコピーを記憶し、
前記制御装置は、前記他の中継装置から受信されたＴＣＰパケットを覗き見た結果、当該ＴＣＰパケットに前記他の中継装置へ中継したＴＣＰパケットの受信に係る否定応答が含まれているときには前記コピーを用いた再送処理を行う
付記１に記載の中継装置。（２）
【０１０５】
（付記３）  前記記憶装置は、ＴＣＰパケットの受信に係る肯定応答を当該ＴＣＰパケットの送信元へ送信済か否かを示す送信済／未送信情報を記憶し、
前記制御装置は、前記他の中継装置から受信されたＴＣＰパケットの覗き見の結果、覗き見たＴＣＰパケットに肯定応答が含まれているときに、前記送信済／未送信情報に基づき、前記肯定応答を含むＴＣＰパケットの廃棄又は転送処理を行う
付記２に記載の中継装置。（３）
【０１０６】
（付記４）  前記制御装置は、前記送信側エンド装置からＴＣＰパケットを受信した場合に、前記他の受信装置から当該ＴＣＰパケットの肯定応答を受信する前に、肯定応答を生成して前記送信側エンド装置に送信するとともに、肯定応答を送信済みであることを示す前記送信済／未送信情報を前記記憶装置に記憶する
付記３に記載の中継装置。（４）
【０１０７】
（付記５）  前記制御装置は、前記覗き見によって得られた情報を用いて、前記送信側エンド装置と前記受信側エンド装置との間で実行される輻輳検出方法と異なる方法で輻輳検出を行う
付記１に記載の中継装置。（５）
【０１０８】
（付記６）  前記制御装置は、前記覗き見によって得られた情報を用いて、前記送信側エンド装置と前記受信側エンド装置との間で実行される送信レートの決定方法と異なる方法で送信レートを決定する
付記１に記載の中継装置。（６）
【０１０９】
（付記７）  前記制御装置は、前記他の中継装置へのＴＣＰパケットの送信時刻と、当該ＴＣＰパケットに対する肯定応答の受信時刻とを用いた統計値に基づいて、前記他の中継装置へ転送されるＴＣＰパケットの送信レートを決定する
付記１に記載の中継装置。（７）
【０１１０】
（付記８）  前記制御装置は、ＴＣＰパケットに含まれたセッション情報が特定のセッション情報であることを示す場合に、前記肯定応答を生成して前記送信側エンド装置に送信する
付記４記載の中継装置。
【０１１１】
（付記９）  前記制御装置は、ＴＣＰパケットに含まれたコンテンツ種別が特定の種別を示す場合に、前記肯定応答を生成して前記送信側エンド装置に送信する
付記４記載の中継装置。
【０１１２】
（付記１０）  送信側エンド装置と受信側エンド装置との間で送受信されるＴＣＰ（Transmission Control Protocol）パケットの経路上に配置された中継装置であって、
前記経路上において前記送信側エンド装置と前記中継装置との間に配置された他の中継装置から受信された前記受信側エンド装置宛てのＴＣＰパケットを覗き見た結果に基づき、否定応答を含むＴＣＰパケット又は肯定応答を含むＴＣＰパケットを生成して前記他の中継装置に送信する処理を行う制御装置と、
前記受信側エンド装置宛てのＴＣＰパケットのコピーを記憶する記憶装置と、を含み、
前記制御装置は、前記受信側エンド装置から受信されたＴＣＰパケットを覗き見た結果、当該ＴＣＰパケットに前記受信側エンド装置へ中継したＴＣＰパケットの受信に係る否定応答が含まれているときには前記コピーを用いた再送処理を行い、当該ＴＣＰパケットに前記受信側エンド装置へ中継したＴＣＰパケットの受信に係る肯定応答が含まれている場合には、当該ＴＣＰパケットの廃棄を行う
中継装置。（８）
【０１１３】
（付記１１）  送信側エンド装置と受信側エンド装置との間で送受信されるＴＣＰ（Transmission Control Protocol）パケットの経路上に配置された中継装置が、
前記送信側エンド装置から受信される前記受信側エンド装置宛てのＴＣＰパケットと、前記経路上において前記中継装置と前記受信側エンド装置との間に配置された他の中継装置から受信される前記送信側エンド装置宛てのＴＣＰパケットとを覗き見し、
前記覗き見によって得られた情報を記憶装置に記憶し、
前記情報に基づき、前記送信側エンド装置と前記受信側エンド装置との間で実行される通信制御から独立した通信制御を前記他の中継装置との間で実行する
ことを含む中継装置の通信制御方法。（９）
【０１１４】
（付記１２）  送信側エンド装置と受信側エンド装置との間で送受信されるＴＣＰ（Transmission Control Protocol）パケットの経路上に配置された第１中継装置と、
前記経路上において、前記第１中継装置と前記受信側エンド装置との間に配置された第２中継装置とを含み、
前記第１中継装置は、
前記送信側エンド装置から受信される前記受信側エンド装置宛てのＴＣＰパケットと、前記第２中継装置から受信される前記送信側エンド装置宛てのＴＣＰパケットとを覗き見ることによって得られた情報を記憶する記憶装置と、
前記情報に基づき、前記送信側エンド装置と前記受信側エンド装置との間で実行される通信制御から独立した通信制御を前記第２中継装置との間で実行する制御装置と
を含むネットワークシステム。
【０１１５】
（付記１３）  前記第１中継装置の前記記憶装置は、前記送信側エンド装置から受信されたＴＣＰパケットが前記第２中継装置へ中継されるときに、当該ＴＣＰパケットのコピーを記憶し、
前記第１中継装置の前記制御装置は、前記第２中継装置から受信されたＴＣＰパケットを覗き見た結果、当該ＴＣＰパケットに前記第２中継装置へ中継したＴＣＰパケットの受信に係る否定応答が含まれているときには前記コピーを用いた再送処理を行い、
前記第２中継装置は、前記第１中継装置からＴＣＰパケットが前記受信側エンド装置へ中継されるときに、当該ＴＣＰパケットのコピーを記憶する記憶装置と、
前記受信側エンド装置から受信されたＴＣＰパケットを覗き見て、当該ＴＣＰパケットに前記受信側エンド装置へ中継したＴＣＰパケットの受信に係る否定応答が含まれているときには前記コピーを用いた再送処理を行い、当該ＴＣＰパケットに前記受信側エンド装置へ中継したＴＣＰパケットの受信に係る肯定応答が含まれている場合には、当該ＴＣＰパケットの廃棄を行う制御装置とを含む、
付記１２に記載のネットワークシステム。
【符号の説明】
【０１１６】
ＦＷ・・・ファイアウォール
１０・・・ネットワークシステム
１１・・・端末
１２・・・端末（ホスト）
１３・・・ＳＳＬ−ＶＰＮ装置
１５，１６・・・中継装置
２０・・・情報処理装置
２１・・・ＣＰＵ
２２・・・メモリ
２３・・・ストレージ
２７・・・通信インタフェース
３１，３２・・・ＩＦ部
３３〜３６・・・中継部
３７・・・交換部
３８・・・ＴＣＰ  ＡＣＫ生成部
３９・・・ＡＣＫ済みリスト
４０・・・ＴＣＰ輻輳検出部
４１・・・キャッシュ部
３３１，３５１・・・中継処理部
３３２，３５２・・・ＴＣＰ解析部
３４１，３６１・・・バッファ
【図１】
2015012570.tif 000005
【図２】
2015012570.tif 000006
【図３】
2015012570.tif 000007
【図４】
2015012570.tif 000008
【図５】
2015012570.tif 000009
【図６】
2015012570.tif 000010
【図７】
2015012570.tif 000011
【図８】
2015012570.tif 000012
【図９】
2015012570.tif 000013