第1網と第2網のTCP通信を中継する通信装置において、第1網から受信し、第2網へ中継する中継データを一時的に蓄積するバッファと、前記バッファに蓄積した中継データのサイズを計算する受信部と、第2網への実際の送信スループットを計測する送信帯域制御部とを備え、前記受信部は、中継データのサイズと、送信スループットとに基づいて、第1網側のTCP通信で送信するACKパケットに記載する受信ウィンドウサイズの値を計算する前記通信装置。請求項1に記載の通信装置において、前記バッファが空いていても残存量が所定量以下であれば残存量をゼロとして、前記ACKパケットに記載する受信ウィンドウサイズの値を定める通信装置。請求項1に記載の通信装置において、前記受信部は、中継データのサイズを、送信スループットで除算し、中継データのサイズを送信スループットで除算した値が、予め定められた閾値以上の場合に、第1網側のTCP通信で送信するACKパケットに記載する前記受信ウィンドウサイズの値を0にすることを特徴とする通信装置。請求項1に記載の通信装置において、第2網でのラウンドトリップタイムを記録する第1記憶領域をさらに備え、前記受信部は、前記中継データのサイズと、前記送信スループットと、前記ラウンドトリップタイムとに基づいて、第1網側のTCP通信で送信するACKパケットに記載する前記受信ウィンドウサイズの値を計算することを特徴とする通信装置。請求項4に記載の通信装置において、前記受信部は、前記中継データのサイズから、前記送信スループットと前記ラウンドトリップタイムの乗算値を減算した値を、送信スループットで除算した値が、予め定められた閾値以上の場合に、第1網側のTCP通信で送信するACKパケットに記載する前記受信ウィンドウサイズの値を0にすることを特徴とする通信装置。請求項4に記載の通信装置において、第2網側のTCP通信においてパケット廃棄を検出したときに、廃棄パケットを再送するパケット再送部をさらに備え、前記送信帯域制御部は、第2網側のTCP通信での再送スループットを計測し、計測した再送スループットを送信スループットで除算することで再送率を計算し、前記受信部は、前記中継データのサイズと、前記送信スループットと、前記ラウンドトリップタイムと、再送率とに基づいて、第1網側のTCP通信で送信するACKパケットに記載する前記受信ウィンドウサイズの値を決定することを特徴とする通信装置。請求項6に記載の通信装置において、前記受信部は、前記送信スループットと前記ラウンドトリップタイムと前記再送率の増加に伴い大きくなる係数を計算し、前記中継データのサイズから、前記送信スループットとラウンドトリップタイムと前記係数との乗算値を減算した値を、送信スループットで除算した値が、予め定められた閾値以上の場合に、第1網側のTCP通信で送信するACKパケットに記載する前記受信ウィンドウサイズの値を0にすることを特徴とする通信装置。請求項6に記載の通信装置において、インターバル時間を保持する第2記憶領域と、現在時刻との基準時刻との差がインターバル時間よりも大きいときに、該インターバル時間が加算される該基準時刻を記録する第3記憶領域と、基準時刻後の再送スループットと、基準時刻前の送信スループットを記録する第4記憶領域とをさらに備え、前記受信部は、基準時刻後の再送スループットを、基準時刻前の送信スループットで除算することで再送率を求めることを特徴とする通信装置。請求項1に記載の通信装置において、前記バッファは、第1網からの受信データを整列されるまで蓄積しておき、整列後も読み出されるまで蓄積しておく第1網側受信バッファと、第2網への送信データを蓄積しておき、データ送信後も第2網側からACKを受信するまで蓄積しておく第2網側送信バッファとを有し、前記受信部は、前記第1網側受信バッファに蓄積された整列済みデータと未整列データのサイズと、前記第2網側送信バッファに蓄積された未送信データとACK待ちデータのサイズとを加算することで、蓄積された中継データのサイズを計算することを特徴とする通信装置。請求項9に記載の通信装置において、前記第1網側受信バッファの整列済みデータを読出し、前記第2側送信バッファへ未送信データとして書き込むデータ転送部をさらに備え、前記受信部は、前記データ転送部が処理中のデータのサイズをさらに加算することで、中継データのサイズを計算することを特徴とする通信装置。請求項10に記載の通信装置において、前記データ転送部が、データ転送中にデータの加工を行うことを特徴とする通信装置。請求項1に記載の通信装置において、前記受信部は、第1網側のTCP通信で通知すべき受信ウィンドウサイズの値が予め定められた閾値未満に減少した後、再び該閾値以上に増加したときに、第1網側のTCP通信において受信パケットが無いときでも、第1網側のTCP通信での新たな受信ウィンドウサイズの値を求めて、該受信ウィンドウサイズの値を記載したACKパケットを送信することを特徴とする通信装置。請求項3に記載の通信装置において、前記受信部は、第1網側のTCP通信にて受信ウィンドウサイズの値を0にしたACKパケットを送信した後に、未受信データを含むパケットを受信したときに、第1網側のTCP通信での受信シーケンス番号をインクリメントして、受信ウィンドウサイズを0にしたACKパケットを送信することを特徴とする通信装置。請求項9に記載の通信装置において、前記受信部は、第1網側のTCP通信にて受信ウィンドウサイズの値を0にしたACKパケットを送信した後に、未受信データを含むパケットを受信したときに、前記第1網側の受信バッファに空きがあれば、受信したパケットを該第1網側受信バッファに蓄積して、第1網側のTCP通信での受信シーケンス番号をインクリメントして、受信ウィンドウサイズを0にしたACKパケットを送信することを特徴とする通信装置。LAN側とWAN側の2つのTCP通信を中継する中継装置において、LAN側の回線帯域がWAN側の回線帯域よりも大きいと、LAN側の送信端末から中継装置への入力スループットが、中継装置からWANへの出力スループットよりも大きくなる場合があり、中継装置のバッファに大量のデータが蓄積され溢れることがある。バッファ溢れがおきると、バッファ残存量0であることがLAN側の送信端末に通知され、LAN側の送信端末から中継装置への送信が停止する。中継装置からWANへの出力スループットが、LAN側の送信端末から中継装置への入力スループットよりも相対的に小さいときは、中継装置のバッファに溜まったデータが減り、バッファに空きが生じるまでに時間がかかる。中継装置のバッファに再び空きが生じて通信が再開されるまでに長時間かかることにより、尚且つ、TCPではバッファが空いたことが即座にLAN側の送信端末に通知されないことにより、通信停止時間が長期化する課題がある。また、通信停止時間に長期化により通信が切断されたと送信端末に誤認され、コネクションが強制切断されてしまう課題があった。本発明は、以上の点に鑑み、第一網側と第二網側を介して行われるTCP通信を中継する通信装置において、第一網側の回線帯域より第二網側の回線帯域が小さい場合、通信装置の送受信バッファのあふれを防ぎ、さらに端末間のコネクションが強制切断されることを防ぐ通信装置を提供することを目的とする。上記課題の少なくとも一を解決するために、本発明の第1の解決手段によると、第1網と第2網とを介するTCP通信を中継する通信装置において、第1網から受信し、第2網へ中継する中継データを一時的に蓄積するバッファと、前記バッファに蓄積した中継データのサイズを計算する受信部と、第2網への実際の送信スループットを計測する送信帯域制御部とを備え、前記受信部は、中継データのサイズと、送信スループットとに基づいて、第1網側のTCP通信で送信するACKパケットに記載する受信ウィンドウサイズの値を計算する前記通信装置が提供される。例えば、第一の解決手段の具体的な一態様としては、LAN側TCP通信向け受信バッファに蓄積されている未整列データサイズと整列済みデータサイズと、WAN側TCP通信向け送信バッファに蓄積されている未送信データサイズと確認応答待ちデータサイズと、から装置に蓄積されたデータサイズの合計値を計算する手段と、WAN側TCP通信の送信スループットと再送スループットを計測する手段と、蓄積データサイズの合計値と、WAN側TCP通信の送信スループットと再送スループットとラウンドトリップタイムRTTに基づいて、LAN側の送信端末へ返信するACKパケットに記載する受信ウィンドウサイズrwndの値を計算するための手段を備える。更に、rwndが減少して予め定めた閾値を下回った後、再びその閾値を超過したときに、rwndの値を記載したACKパケットをLAN側の送信端末へ即座に送信する手段を備える。本態様により、バッファに余裕ができたときに、通信が即座に再開され、通信停止時間を短縮することができる。本発明によると、第一網側と第二網側を介して行われるTCP通信を中継する通信装置において、第一網側の回線帯域より第二網側の回線帯域が小さい場合、通信装置の中継のための送受信バッファのあふれを防ぐ。また、本発明によると、端末間のコネクションが強制切断されるころを防ぐ通信装置を提供できる。本発明を実施するための代表的な形態は、下記の通りである。まず、図13と図14を用いて、従来の中継装置1310、1320の課題を説明する。図13には、端末111と端末121との間の通信を、従来の装置1310、1320が中継する際のシーケンス図を示す。図14には、端末111と装置1310との間のLAN帯域1401と、装置1310と装置1320との間のWAN帯域1402の推移を示す。装置1310は、この例ではLAN側に2パケット蓄積可能な受信バッファrbufと、WAN側に3パケット蓄積可能な送信バッファsbufを備える1301。装置1310は、端末111から1つ目のデータパケット1313を受信すると、装置1310のLAN側の受信バッファrbufにパケット記載のデータを1つ蓄積する1302。装置1310は、1つ目のデータパケット受信後、1つ目のデータを受け取ったことを表すACK=1と受信バッファの残りサイズが1であることを表すwin_size=1を記載したACKパケット1329を端末111に向けて返信する。LAN側の受信バッファに蓄積された1つ目のデータは、WAN側の送信バッファに移される1303。1つ目のデータは、WAN側の送信バッファに移された後、WAN側の装置1320に向けて送られるが、ここでは廃棄されてしまうものとする1328。次に、装置1310が、LAN側の端末111から2つ目のデータパケット1314を受信すると、装置1310のLAN側の受信バッファrbufにパケット記載のデータを1つ蓄積する1304。装置1310は、2つ目のデータパケット受信後、2つ目のデータを受け取ったことを表すACK=2と受信バッファの残りサイズが1であることを表すwin_size=1を記載したACKパケット1330を端末111に向けて返信する。LAN側の受信バッファに蓄積された2つ目のデータは、WAN側の送信バッファに移される1305。1つ目のデータが廃棄されて、WAN側へ送信する際の制御帯域が小さいままなので、2つ目のデータは、WAN側の送信バッファに移された後、しばらくはWAN側に向けて送信されずに、蓄積される。次に、装置1310が、LAN側の端末111から3つ目のデータパケット1324を受信すると、装置1310のLAN側の受信バッファrbufにパケット記載のデータを1つ蓄積する1306。装置1310は、3つ目のデータパケット受信後、3つ目のデータを受け取ったことを表すACK=3と受信バッファの残りサイズが1であることを表すwin_size=1を記載したACKパケットを端末111に向けて返信する。LAN側の受信バッファに蓄積された3つ目のデータは、WAN側の送信バッファに移される1307。1つ目のデータが廃棄されて、WAN側の制御帯域が小さいままなので、3つ目のデータは、WAN側の送信バッファに移された後、しばらくはWAN側に向けて送信されずに、蓄積される。前回、蓄積されたままだった2つ目のデータが例えばここでWAN側に向けて送信される1331。次に、装置1310が、LAN側の端末111から4つ目のデータパケット1325を受信すると、装置1310のLAN側の受信バッファrbufにパケット記載のデータが1つ蓄積される1308。装置1310は、4つ目のデータパケット受信後、4つ目のデータを受け取ったことを表すACK=4と受信バッファの残存量が1であることを表すwin_size=1を記載したACKパケットを端末111に向けて返信する。LAN側の受信バッファに蓄積された4つ目のデータは、WAN側の送信バッファが一杯なため、移されない1332。WAN側の装置1320から、データ2に対するACKが戻ってきても1333、データ1が送信できていないため、WAN側の送信バッファに蓄積されたデータ1~3は消去されずにそのまま残る1332。次に、LAN側の端末111から5つ目のデータパケット1326が送信されると、LAN側の受信バッファにパケットが2つ蓄積される1309。5つ目のデータパケット受信後、装置1310は、5つ目のデータを受け取ったことを表すACK=5と受信バッファの残りサイズが0であることを表すwin_size=0を記載したACKパケットを端末111に向けて返信する。以上、述べてきたように、装置1310は、データパケットを受信する毎に、受信バッファ残存量を記載したACKパケットを、LAN側の送信端末111に向けて送信する1315。LAN側の受信バッファ残存量が無いことを示すwin_size=0のACKパケットを受け取った端末111は、装置1310においてLAN側の受信バッファが一杯と判断して、データ送信を停止する。その後、装置1310から3つ目のデータがWAN側へ送信され1334、3つ目のデータに対するACKが戻ってきても1335、データ1が到達できていないため、WAN側の送信バッファに蓄積されたデータ1~3は消去されずにそのまま残る1316。装置1310は、LAN側の送信端末111からデータパケットを受信しないときは、ACKパケット1317を定期的に装置111へ送る1318。ACKパケットには、LAN側の受信バッファの残りサイズが0であることを表すwin_size=0が記載される。このように、パケット受信時1315、または定期的に1318、ACKパケットがLAN側の装置111へと送信される。このように、WAN側の回線帯域がLAN側の回線帯域よりも小さい場合、LAN側の送信端末111から装置1310への入力スループットが、装置1310からWAN側の装置1320への出力スループットよりも大きく差が大きいため、装置1310のWAN側の送信バッファsbufとLAN側の受信バッファrbufに大量のデータがたまり、すぐに満杯となってしまう。更に、バッファに空きが生じるまでに時間がかかり、その後のデータ送信の停止時間が長時間におよぶため、端末111がコネクションに何らかの問題が生じたと判断して、RSTパケット送信1319によりコネクションを強制切断してしまう場合がある1401。装置1310は、データ1に対するACKパケットが戻ってこないと、しばらくしてからデータ1を再送する1321。その後、装置1320からデータ1~3を受け取ったことを表すACK=3を受信する1322。これにより、WAN側の送信バッファに蓄積されたデータ1~3が消去される1311。その後、LAN側の受信バッファに蓄積された4つ目と5つ目のデータが、WAN側の送信バッファへ移される1312。これにより、LAN側の受信バッファrbufが空となる。受信パケットがないときはACKパケットは定期的に送信されるため、LAN側の受信バッファが空になっても、ただちにwin_sizeを記載したACKパケットが端末111に送信されない1323。従って、端末111はデータ送信を再開できず、データ送信の停止時間が長期化してしまう。場合によっては、定期的なACKパケット送信の前に1327、端末111がコネクションに何らかの問題が生じたと判断して、RSTパケット送信1319によりコネクションを強制切断してしまう。図14を参照してさらに説明する。以上、記載したように、LAN側の回線帯域に対してWAN側の回線帯域が小さい場合は、LAN側の送信端末111から中継装置1310への入力スループット1401が、中継装置1310からWAN側の中継装置1320への出力スループット1402よりも大きいため、装置1310のWAN側の送信バッファsbufとLAN側の受信バッファrbufに大量のデータがたまり、すぐに満杯となってしまう1403。更に、バッファに空きが生じるまでに時間がかかり、その後のデータ送信の停止時間が長時間におよぶため、端末111がコネクションに何らかの問題が生じたと判断して、RSTパケット送信1319によりコネクションを強制切断してしまう1404、という課題があった。加えて、LAN側の受信バッファが空になっても、ただちにwin_sizeを記載したACKパケットが端末111に送信されないため1323、端末111はデータ送信を再開できず、データ送信の停止時間が長期化してしまう。場合によっては、端末111がコネクションに何らかの問題が生じたと判断して、RSTパケット送信1319によりコネクションを強制切断してしまう、という課題もあった。更に、特許文献1に記載されているように、TCP通信を制御するための変数である輻輳ウィンドウサイズに基づいて、バッファへの蓄積サイズや新たに蓄積可能なデータサイズを制御する方式では、WAN側のRTTが増大したときに、バッファの使用可能量が減少してしまう。例えば、送信スループットやRTTや廃棄率の増大に応じて必要バッファ量が増大する独自TCPを用いて通信するケースでは、十分なスループットを達成できなくなり課題となる。また、特許文献2に記載のように、中継装置と中継装置の間の通信速度が、中継装置とクライアントの間の通信速度よりも高い時に、クライアント端末に対する受信ウィンドウサイズを抑える方式では、スループットの小さい方の通信の受信ウィンドウサイズを抑えて、通信速度差を余計に拡大させることとなり、本願の課題を解決することはできない。更に、特許文献2に記載のように、帯域遅延積を用いてバッファへのデータ蓄積量を制限する方式では、制限を越えるパケットを受信したときにバッファ溢れを生じ、パケット廃棄を生じさせることで、パケット再送が頻発し、データ送信の再開がかえって遅くなってしまう、という課題があった。本実施の形態は、これらの従来の方式では解決できなかった課題を解決する。図1には、本実施の形態の通信装置を適用したネットワークシステムの構成図を示す。通信装置中継装置ともいう。以下、単に装置と記す101、102、103は、複数の拠点内LAN第1網110、120、130とWAN第2網140を接続する通信回線上に設置される。各拠点内LAN110、120、130には、複数の端末111~113、121~123、131~133が接続している。装置101、102、103は、第1網と第2網の2つのTCP通信を中継する。なお、装置101、102、103は、2つのWANのTCP通信を中継してもよい。また、端末、装置及びネットワークの数は図示以外にも適宜の数を備えても良い。図2には、本実施の形態の装置200のブロック図を示す。装置200は、例えば、外部のWAN/LANネットワークとのパケットの送受信を行うWAN側及びLAN側のネットワークインターフェース201/211と、TCP以外のUDPパケットやARPパケット等を素通しさせるためのフィルタ202/210と、TCP通信のための制御を行うWAN側及びLAN側のTCPモジュール203/209と、WAN側のTCPモジュール209の管理するN個の送信バッファ207およびN個の受信バッファ208と、LAN側のTCPモジュール203の管理するN個の送信バッファ205およびN個の受信バッファ204と、送受信バッファ間でデータの乗せ換えを行うプロキシデータ転送部206と、N個のエントリを備えた状態テーブル212と、N個のエントリを備えた帯域テーブル213とを備える。なお、上述のN個は、それぞれ異なる数でもよい。TCPモジュール203/209、プロキシ206、状態テーブル212及び帯域テーブル213については、後に他の図面を参照して詳述し、ここでは概略を述べる。WAN側のTCPモジュール209は、送信帯域制御部715と、送信履歴更新部705と、を備える。送信帯域制御部715は、送信スループット531、532の情報を状態テーブル212に蓄積する。送信履歴更新部705は、WAN側送信バッファ207から読み出した送信データサイズに応じて、状態テーブル212のバッファ管理ポインタ508~510、515~517、521~526の情報を更新する。プロキシ206は、データ読出し部601と、データ加工部602と、データ書き込み部603を備える。データ加工部602は、加工中のデータサイズ529、530の情報を、状態テーブル212に蓄積する。データ読出し部601は、LAN側受信バッファ204から読み出したデータサイズに応じて、状態テーブル212のバッファ管理ポインタ508~510、515~517、521~526の情報を更新する。データ書き込み部603は、WAN側送信バッファ207に書き込んだデータサイズに応じて、状態テーブル212のバッファ管理ポインタ508~510、515~517、521~526の情報を更新する。LAN側のTCPモジュール203は、受信履歴更新部726と、集約部732とを備える。受信履歴更新部726は、受信したパケットデータを、LAN側受信バッファに蓄積する。更に、受信履歴更新部726は、蓄積したデータサイズに応じて、状態テーブル212のバッファ管理ポインタ508~510、515~517、521~526の情報を更新する。更に、受信履歴更新部726は、状態テーブル212のバッファ管理ポインタ508~510、515~517、521~526と加工中データサイズ529、530から読み出した情報から、LAN側受信バッファに蓄積されたデータサイズと、WAN側送信バッファに蓄積されたデータサイズと、加工中データサイズの合計値を計算する。更に、受信履歴更新部726は、計算したデータサイズと、状態テーブル212の送信スループット531、532の情報とに基づいて、受信ウィンドウサイズrwndを計算し、計算した受信ウィンドウサイズrwndの値を記載したACKパケットを生成し、生成したACKパケットを集約部732経由でLAN側に送信する。図4には、装置がやりとりするパケットのフォーマット図を表す。パケットは、MACヘッダ400、IPヘッダ410、TCPヘッダ420、TCPオプションヘッダ430及びペイロード450を有する。MACヘッダ400は、宛先MACアドレスを表すDMAC401と、送信元MACアドレスを表すSMAC402と、MACフレームタイプを表すType403を含む。IPヘッダ410は、MACヘッダを除くパケット長を表すIPlength411と、プロトコル番号を表すprotocol412と、送信元IPアドレスを表すSIP413と、宛先IPアドレスを現すDIP414とを含む。TCPヘッダ420は、送信元ポート番号を表すsrc.port421と、宛先ポート番号を表すdst.port422と、送信シーケンス番号を表すSEQ423と、受信シーケンス番号を表すACK424と、TCPフラグ番号を表すflag425と、TCPのヘッダ長を表すtcphlen426と、受信バッファの残りサイズを表すwin-size427とを含む。TCPオプションヘッダ430は、オプション種別を表すoptionkind431と、オプション長を表すoptionlength432と、どこからどこまで部分的に受信できたかを記載するleft_edge_1~4433、435、437、439、right_edge_1~4434、436、438、440を含む。図3には、送受信バッファ管理用のポインタの説明図を表す。本図では、データを左から右に書き込んでいき、左から右に読み出していくものとする。受信バッファ204、208は、受信したデータの先頭新しいデータを示すポインタright_recv303と、整列済みデータと未整列データの境界を示すポインタleft_recv302と、プロキシ206による読出し済データと未読出しデータの境界を示すleft_rbuf301と、を管理する。受信したデータの先頭を示すポインタright_recv303は、ロスの発生が無く、前から順番にデータを受信すると、受信したデータサイズ分増えて、右へ移動する。受信できずに歯抜けになっているデータ箇所ロスセグメントが存在する状態で、再送パケットを受信して、ロスセグメントが消滅すると、整列済みデータと未整列データの境界を示すポインタleft_recv302は、最も小さなロスセグメントの左端まで移動する。プロキシ206は、読出し済データと未読出しデータの境界を示すleft_rbuf301から順番にデータを読み出し、読み出したデータサイズ分、left_rbuf301を右へ移動させる。読み出せるデータサイズの最大値は、left_recv302とleft_rbuf301の差に応じた値である。送信バッファ205、207は、プロキシ206により書き込み済みで送信可能状態となっているデータの先頭を表すポインタright_sbuf306と、送信済みデータの先頭を示す送信済みデータと未送信データの境界でもあるポインタright_send305と、受信側から確認応答を受信済みのデータの先頭を示すポインタleft_send304と、を管理する。プロキシ206が書き込み済みで送信可能状態となっているデータの先頭を表すポインタright_sbuf306は、プロキシ206がデータを書き込む毎に、書き込んだデータサイズ分増加し、右へ移動する。送信したデータ、の先頭を示すポインタright_send305を始点として、新たなデータが送信され、right_send305は、送信されたデータサイズ分増加し、右へ移動する。受信側から、left_send304よりも大きな受信シーケンス番号を持つ確認応答パケットを受信すると、left_send304は、確認応答パケットに記載された受信シーケンス番号へと増加し、右へ移動する。図5には、状態テーブル212のフォーマット図を示す。状態テーブル212は、n個のエントリ520-1~nを有する。各エントリ520は、エントリが使用中であるか否かを記載するVLD501と、LANまたはWAN側のコネクションが確立中であるか否かを記載するconnect_state502と、LAN側の端末のIPアドレスを表すLIP503と、WAN側の端末のIPアドレスを表すWIP504と、LAN側の端末のTCPポート番号を表すLport505と、WAN側の端末のTCPポート番号を表すWport506と、LAN側のTCP通信の状態を表すlan_state507と、LAN側の受信バッファ管理用のポインタを表すlan_left_rbuf508、lan_left_recv509、lan_right_recv510と、LAN側のウィンドウスケールオプションの値を表すlan_ws511と、LAN側の平均RTTを表すlan_rtt512と、LAN側の輻輳ウィンドウサイズを表すcwnd513と、LAN側の送信バッファ管理用のポインタを表すlan_left_send521、lan_right_send522、lan_right_sbuf523と、LAN側の送信端末に通知する受信ウィンドウサイズを表すrwnd527と、LAN側の受信バッファから読み出され加工中のデータサイズを表すlan_wan529と、WAN側のTCP通信の状態を表すwan_state514と、WAN側の受信バッファ管理用のポインタを表すwan_left_rbuf515、wan_left_recv516、wan_right_recv517と、WAN側のウィンドウスケールオプションの値を表すwan_ws518と、WAN側の平均RTTを表すwan_rtt519と、WAN側の再送率を表すrts_ratio528と、WAN側の基準時刻後の送信帯域を表すsnd531と、WAN側の基準時刻前の送信帯域を表すold_snd532と、WAN側の送信バッファ管理用のポインタを表すwan_left_send524、wan_right_send525、wan_right_sbuf526と、WAN側の受信バッファから読み出され加工中のデータサイズを表すwan_lan530とを有する。図6には、プロキシ206のブロック図を示す。プロキシ206は、例えばLAN側の受信バッファrbuf204からデータを読出すデータ読出し部601と、読み出したデータに対して圧縮解凍暗号化復号削除複製追記などの加工を行うデータ加工部602と、加工済みデータをWAN側の送信バッファsbuf207へ書き込むデータ書き込み部603と、WAN側の受信バッファrbuf208からデータを読み出すデータ読出し部606と、読み出したデータに対して圧縮解凍暗号化復号削除複製追記などの加工を行うデータ加工部605と、加工済みデータをLAN側の送信バッファsbuf205へ書き込むデータ書き込み部604とを有する。データ加工部602とデータ加工部605との間で、データのやり取りをする場合もある。データ加工部602、605の処理は、上述の例以外にも、データに対する適宜の処理でもよい。データ読出し部601は、lan_left_rbuf508からlan_left_recv509までの間に蓄積されている整列済みデータから読み出した先頭データから、読み出すべきデータサイズと、データ加工後のデータサイズを推定する。先頭データとしては、TLSTransportLayerSecurity/SSLSecureSocketLayerヘッダ、SMBServerMessageBlockヘッダ、等などを使用してもよい。TLS/SSLヘッダに記載された値からは、復号後のチェックサムやヘッダを除いた平文データサイズを推定することができる。SMBヘッダからは、プリフェッチ等を行った後のコマンドデータサイズを推定することができる。推定した加工後のデータサイズと、wan_right_sbuf526とwan_left_send524の差、すなわち未送信データとACK確認待ちデータの合計との和が、WAN側の送信バッファサイズwan_sbuf_sizeを超えない場合は、データを受信バッファ204から読み出して、データ加工部602へ転送する。更に、推定した読み出すべきデータサイズと、データ加工後のデータサイズのうち、大きい方を状態テーブル212のlan_wan529へ記載する。詳細は、図9に示すフローチャート図を参照して後述する。データ読出し部606は、wan_left_rbuf515からwan_left_recv516までの間に蓄積されている整列済みデータから読み出した先頭データから、読み出すべきデータサイズと、データ加工後のデータサイズを推定する。先頭データとしては、TLSTransportLayerSecurity/SSLSecureSocketLayerヘッダ、SMBServerMessageBlockヘッダ、等などを使用してもよい。推定した加工後のデータサイズと、lan_right_sbuf523とlan_left_send521の差、すなわち未送信データとACK確認待ちデータの合計との和が、LAN側の送信バッファサイズlan_sbuf_sizeを超えない場合は、データを受信バッファ208から読み出して、データ加工部605へ転送する。更に、推定した読み出すべきデータサイズと、データ加工後のデータサイズのうち、大きい方を状態テーブル212のwan_lan530へ記載する。詳細は、図10に示すフローチャート図を参照して後述する。図9と図10には、データ読出し部601とデータ読出し部606のデータ読出し処理のフローチャート図をそれぞれ示す。図9の各処理は、データ読み出し部601が実行する。データ読出し部601は、処理を開始するとステップ900、はじめにlan_left_recv509がlan_left_rbuf508よりも大きいか比較し、LAN側の受信バッファに整列済みデータが存在するか否かを判定するステップ901。ステップ900で大きくないと判断した場合、すなわち整列済みデータが存在しない場合は、ステップ901を繰り返す。一方、ステップ900で大きいと判断した場合、すなわち整列済みデータが存在する場合は、次に、lan_left_recv509からlan_left_rbuf508の間にある整列済みデータの先頭データから、読み出すべきデータサイズと、データ加工後のデータサイズを推定するステップ906。先頭データとしては、TLSTransportLayerSecurity/SSLSecureSocketLayerヘッダ、SMBServerMessageBlockヘッダ、等などを使用してもよい。推定の手法は適宜の手法を用いてよい。次に、wan_right_sbuf526とwan_left_send524の差分未送信データとACK確認待ちデータの合計値と、WAN側の送信バッファサイズwan_sbuf_sizeとの差分バッファ空きサイズが、ステップ906で推定した加工後のデータサイズよりも大きいか否か比較を行うステップ902。ステップ902にて大きいと判定した場合、ステップ906にて推定した読み出すべきデータサイズのデータを、LAN側の受信バッファから読み出すステップ903。ステップ902にて否と判定した場合は、データ加工しない場合のみ、wan_right_sbuf526とwan_left_send524の差分未送信データとACK確認待ちデータの合計値と、WAN側の送信バッファサイズwan_sbuf_sizeとの差分バッファ空きサイズに相当するサイズのデータを、LAN側の受信バッファから読み出すステップ904。データを加工するか否かは、予め定められても良いし、パケットの種類毎に定められても良い。データ読み出し後、lan_left_rbuf508に読み出したデータサイズを加算するステップ905。ステップ905の後、ステップ901へ戻る。なお、wan_right_sbuf526は、データ書き込み部603がデータを書き込んだ際に、書き込んだデータサイズ分だけ増加する。図10の各処理は、データ読み出し部606が実行する。データ読出し部606は、処理を開始するとステップ1000、はじめにwan_left_recv516がwan_left_rbuf515よりも大きいか比較し、WAN側の受信バッファに整列済みデータが存在するか否かを判定するステップ1001。ステップ1001で大きくないと判断した場合、すなわち整列済みデータが存在しない場合は、ステップ1001を繰り返す。一方、ステップ1001で大きいと判断した場合、すなわち整列済みデータが存在する場合は、次に、wan_left_recv516からwan_left_rbuf515の間にある整列済みデータの先頭データから、読み出すべきデータサイズと、データ加工後のデータサイズを推定するステップ1006。先頭データとしては、TLSTransportLayerSecurity/SSLSecureSocketLayerヘッダ、SMBServerMessageBlockヘッダ、等などを使用してもよい。次に、lan_right_sbuf523とlan_left_send521の差分未送信データとACK確認待ちデータの合計値と、LAN側の送信バッファサイズlan_sbuf_sizeとの差分バッファ空きサイズが、ステップ1006で推定した加工後のデータサイズよりも大きいか否か比較を行うステップ1002。ステップ1002にて大きいと判定した場合、ステップ1006にて推定した読み出すべきデータサイズのデータを、WAN側の受信バッファから読み出すステップ1003。ステップ1002にて否と判定した場合は、データ加工しない場合のみ、lan_right_sbuf523とlan_left_send521の差分未送信データとACK確認待ちデータの合計値と、LAN側の送信バッファサイズlan_sbuf_sizeとの差分バッファ空きサイズに相当するサイズのデータを、WAN側の受信バッファから読み出すステップ1004。データ読出し後、wan_left_rbuf515に読出したデータサイズを加算するステップ1005。ステップ1005の後、ステップ1001へ戻る。なお、lan_right_sbuf523は、データ書き込み部604がデータを書き込んだ際に、書き込んだデータサイズ分だけ増加する。図7Aには、WAN側のTCPモジュール209のブロック図を示す。TCP通信を実現するTCPモジュール209は、受信処理を行うRX部受信部702と、送信処理を行うTX部送信部701を有する。RX部702は、受信パケットをTCP制御パケットとデータ付パケットとACKパケットに分離するパケット解析部708と、受信したTCP制御パケットに基づいて状態テーブル212内のTCP状態lan_state507、wan_state514を変更するTCP制御部707と、受信したデータパケットの送信シーケンス番号SEQ423と受信シーケンス番号ACK424とに基づいて、状態テーブル212内のバッファ管理ポインタを変更してACKパケットを返信する受信履歴更新部706とを有する。TX部701は、状態テーブル212内のTCP状態lan_state507、wan_state514を用いてTCP制御パケットを送信するTCP制御部703と、受信したACKパケットに基づいて状態テーブル212内のバッファ管理ポインタを変更し、受信したACKパケット記載の部分的確認応答left_edge_1~4433、435、436、439、right_edge_1~4434、436、438、440を用いて送信バッファsbuf207からデータを読み出してパケットを再送するパケット再送部704と、送信バッファsbuf207から読み出したデータを載せたパケットを送信して、状態テーブル212内のバッファ管理ポインタを変更する送信履歴更新部705とを有する。さらに、TX部701は、再送パケットとデータパケットを受け取り、バッファ1~n709-1~nに振り分けると共に、各TCPコネクションの送信/再送ビット長を送信帯域制御部715に通知する振分部708と、現在時刻を生成して送信帯域制御部715に通知するタイマ713と、インターバル時間を保存して送信帯域制御部715に通知するインターバル格納部714と、帯域テーブル213を制御して、各TCPコネクションのトークンサイズをトークン更新部717に通知する送信帯域制御部715と、TCPコネクション毎にトークンバケツを管理して、送信可能なコネクションをマルチプレクサ712に通知するトークン更新部717と、ACKパケット、TCP制御パケット、再送パケット、データパケットをFIFOで集約して、出力するマルチプレクサ712およびバッファ709~711とを有する。図7Bには、LAN側のTCPモジュール203のブロック図を示す。TCP通信を実現するTCPモジュール203は、受信処理を行うRX部722と、送信処理を行うTX部721を有する。RX部722は、受信パケットをTCP制御パケットとデータ付パケットとACKパケットに分離するパケット解析部728と、受信したTCP制御パケットに基づいて状態テーブル212内のTCP状態lan_state507、wan_state514を変更するTCP制御部727と、受信したデータパケットの送信シーケンス番号SEQ423と受信シーケンス番号ACK424とに基づいて、状態テーブル212内のバッファ管理ポインタを変更してACKパケットを返信する受信履歴更新部726とを有する。TX部721は、状態テーブル212内のTCP状態lan_state507、wan_state514を用いてTCP制御パケットを送信するTCP制御部723と、受信したACKパケットに基づいて状態テーブル212内のバッファ管理ポインタを変更し、受信したACKパケット記載の部分的確認応答left_edge_1~4433、435、436、439、right_edge_1~4434、436、438、440を用いて送信バッファsbuf205からデータを読み出してパケットを再送するパケット再送部724と、送信バッファsbuf205から読み出したデータを載せたパケットを送信して、状態テーブル212内のバッファ管理ポインタを変更する送信履歴更新部725と、ACKパケット、TCP制御パケット、再送パケット、データパケットをFIFOで集約して、出力するマルチプレクサ732およびバッファ729~731とを有する。図8には、帯域テーブル213のフォーマットを表す。帯域テーブル213は、コネクション毎に、旧基準時刻前の送信帯域制御帯域、基準時刻前の送信帯域再送帯域制御帯域、基準時刻、及び、基準時刻後の送信ビット積算値再送ビット積算値制御帯域を記録する。基準時刻後の制御帯域は、現在時刻における制御帯域を表す本実施例では、tokenと表す。基準時刻後の送信帯域は、現在時刻における送信帯域を表し本実施例では、sndと表す、基準時刻後の送信ビット積算値をインターバル時間で除算することで求められる。基準時刻後の再送帯域は、現在時刻における再送帯域を表し本実施例では、rtsと表す、基準時刻後の再送ビット積算値をインターバル時間で除算することで求められる。基準時刻前の制御帯域送信帯域再送帯域は、基準時刻の直前までの制御帯域送信帯域再送帯域を表す本実施例では、old_token、old_snd、old_rtsと表す。また、現在使用している基準時刻の一つ前に使用していた基準時刻を旧基準時刻と呼び、旧基準時刻前の制御帯域送信帯域再送帯域は、旧基準時刻の直前までの制御帯域送信帯域再送帯域を表す本実施例では、old_old_token、old_old_snd、old_old_rtsと表す。例えば、基準時刻前の再送率old_rts_ratioは、old_rts/old_old_sndで求められる。また、基準時刻後の現在の再送率rts_ratioは、rts/old_sndで求められる。なお、インターバル格納部714のインターバル時間の代わりに、状態テーブル212記載のwan_rtt519を用いる場合もある。帯域テーブル213の各情報は、例えば、送信帯域制御部715により更新される。また、送信帯域制御部715は、送信ビット積算値、再送ビット積算値などから、送信帯域送信スループットsnd531、再送帯域再送スループットrts、再送率rts_ratio528をそれぞれ求め、状態テーブル212に記憶する。図18には、旧基準時刻、基準時刻、現在時刻の関係を表す。旧基準時刻と、基準時刻の差は、インターバル時間である。旧基準時刻前のインーターバル時間の制御帯域送信帯域再送帯域は、old_old_token、old_old_snd、old_old_rtsと表す1803。旧基準時刻から基準時刻までの制御帯域送信帯域再送帯域は、old_token、old_snd、old_rtsと表す1802。基準時刻から現在時刻までの制御帯域送信帯域再送帯域は、token、snd、rtsと表す1801。インターバル時間は、例えばRTT等の変動する値でもよいし、固定の値を用いても良い。送信帯域制御部715は、帯域テーブル213に記載された値を用いて制御帯域tokenを決定し、トークン更新部717へ伝える。更に、状態テーブル212のrts_ratio528を更新する。図17には、LAN側からデータ付きパケットを受信した際のパケットの流れを表す。LAN側から到着したデータ付きパケットは受信履歴更新部726に到着する。受信履歴更新部726は、ACKパケットを集約部732経由でLAN側に返信し、パケットに記載されたデータをLAN側受信バッファrbuf204へと蓄積する。更に、蓄積データサイズに基づいて状態テーブル212のポインタを更新する。データ読出し部601は、LAN側受信バッファrbuf204に蓄積された整列済みデータを読出し、データ加工部602へ転送する。更に、読み出したデータサイズに基づいて状態テーブル212のポインタを更新する。データ加工部602は、データを加工して、データ書き込み部603へ転送する。更に、加工中のデータサイズに基づいて状態テーブル212の加工中データサイズを更新する。データ書き込み部603は、加工済みデータをWAN側送信バッファsbuf207へと書き込む。更に、書き込んだデータサイズに基づいて状態テーブル212のポインタを更新する。WAN側送信バッファsbuf207に書き込まれたデータは、送信履歴更新部705から読み出されて、WAN側へデータ付きパケットとして送信される。受信履歴更新部726は、LAN側の受信バッファ204の最大値から、lan_right_recv510とlan_left_rbuf508との差分を引くことで、受信バッファの残存量を計算する。受信データのペイロード450のサイズが、受信バッファ204の残存量以下のときは、ペイロード450に記載されたデータ全てを受信バッファ204に格納する。ペイロード450のサイズが、受信バッファ204の残存量よりも大きい場合は、ペイロード450の先頭から受信バッファの残存量に相当するサイズのデータだけを受信バッファ204に格納する。格納データサイズが0よりも大きいときは、データ付きパケットのTCPヘッダ420に記載されたSEQ423の値と、格納データサイズに基づいて、受信バッファ管理用ポインタの更新を行う。例えば、SEQ423に格納データサイズを加算した値が、lan_right_recv510よりも大きい場合は、lan_right_recv510を、SEQ423に格納データサイズを加算した値に変更する。更に、格納データは、lan_right_recv510で最後尾となるように、LAN側の受信バッファ204に記憶される。その後、rwnd527をTCPヘッダ420のwin_size427に記載し、受信バッファ管理ポインタの1つlan_left_recv509をTCPヘッダ420のACK424に記載したACKパケットを、LAN側へ返信する。なお、受信履歴更新部726において、データを格納するか否かの判断に、rwnd527の値は使用されない。そのため、rwnd527が0であっても、受信バッファの残存量が0よりも大きければ、ACKパケットを送信した後に受信したパケットのペイロード450に記載されたデータは受信バッファに格納され、受信シーケンス番号がインクリメントされたACK424を持ち、受信ウィンドウサイズを0にしたACKパケットが、LAN側へ返信される。送信履歴更新部705は、wan_right_send525から右方向に、最大wan_right_sbuf526までのデータを、WAN側送信バッファsbuf207から読み出す。wan_right_send525は、読み出したデータサイズ分、増加して、右に移動する。更に、読み出したデータをペイロード450に記載し、wan_right_send525をSEQ423に記載したTCPヘッダ420を追加したデータ付きパケットを、WAN側へ送信する。図12Aには、LAN側TCPの受信履歴更新部726のACK返信の一例を示したフローチャート図を示す。受信履歴更新部726は、処理が始まるとステップ1211、データパケットの受信があるか否かをポーリングして確認するステップ1212。受信パケットがある場合は、新たなrwnd527を求めてTCPヘッダ420のwin_size427に記載したACKパケットをLAN側へ返信するステップ1214。ステップ1212において、受信パケットが無い場合でも、rwnd527が予め定めた閾値未満から閾値以上に増加したことを確認した場合はステップ1213、新たなrwnd527を求めてTCPヘッダ420のwin_size427に記載したACKパケットをLAN側へ返信するステップ1214。ステップ1213にて、変化が確認されなかった場合は、ステップ1212へと戻る。図12Aに示すように、LAN側TCPの受信履歴更新部726が、ステップ1213の処理を行うことで、データパケットの受信が無いときでも、LAN側の送信端末に通知すべきrwndが予め定めた閾値を超過したら即座に、rwndを記載したACKパケットをLAN側の送信端末に返信できるようになる。これにより、LAN側の送信端末は、LAN側の受信バッファに空きが生じたことを直ちに知り、送信を再開することが可能となる。図12Bには、LAN側TCPの受信履歴更新部726のACK返信の、より詳細な一例を示したフローチャート図を示す。受信履歴更新部726は、処理が始まるとステップ1200、はじめに、内部変数lan_rbuf_fullを0に初期化するステップ1201。次に、rwnd527を計算するステップ1210。rwnd527の計算方法は、図11A~Dを参照して後述する。次に、内部変数lan_rbuf_fullが0であり、かつ、rwnd527が最大セグメントサイズ1パケットに載せられる最大データサイズmss上述の閾値に相当よりも小さいか否かを判定するステップ1202。ステップ1202において真であれば、内部変数lan_rbuf_fullを1に変更してステップ1203、ステップ1204へと進む。ステップ1202において偽であれば、ステップ1204へと進む。ステップ1204では、新たなデータパケットの受信があるか否かを判定する。受信パケットがある場合は、受信バッファ管理用ポインタ更新を行うステップ1205。例えば、SEQ423にペイロード450のサイズを加算した値が、lan_right_recv510よりも大きい場合は、lan_right_recv510をSEQ423にイロード450のサイズを加算した値に変更する。さらに、rwnd527を計算するステップ1208。rwnd527の計算方法は、図11A~Dを参照して後述する。一方、ステップ1204にて受信パケットが無い場合は、内部変数lan_rbuf_fullが1であり、かつ、rwnd527が最大セグメントサイズ1パケットに載せられる最大データサイズmss以上であるか否かを判定するステップ1206。否の場合は、ステップ1210へと戻る。真である場合は、内部変数lan_rbuf_fullを0にしてステップ1207、ステップ1208へと進む。ステップ1208では、rwnd527を計算する。その後、rwnd527をTCPヘッダ420のwin_size427に、受信バッファ管理ポインタの1つlan_left_recv509をTCPヘッダ420のACK424に、それぞれ記載したACKパケットを返信するステップ1209。図12Bに示すように、LAN側TCPの受信履歴更新部726が、ステップ1206とステップ1207の処理及びステップ1202、1203の処理を行うことで、データパケットの受信が無いときでも、LAN側の送信端末に通知すべきrwndがMSSを超過したら即座に、rwndを記載したACKパケットをLAN側の送信端末に返信できるようになる。これにより、LAN側の送信端末は、LAN側の受信バッファに空きが生じたことを直ちに知り、送信を再開することができる。次に、rwnd527の計算について説明する。例えば、図12Aのステップ1214、図12Bのステップ1210、1208の処理に相当する。図11Aには、LAN側TCPの受信履歴更新部726の行うrwnd527計算の一例を示したフローチャート図を示す。rwnd527計算がはじまるとステップ1110、WAN送信バッファsbuf207とLAN受信バッファrbuf204に蓄積されたデータサイズ蓄積データサイズと、プロキシ206で加工中のデータサイズを加算した値を、装置に蓄積された中継データサイズの合計値とするステップ1111。各データサイズは、状態テーブル212から読み出してもよいし、又は状態テーブル212から読み出されたデータから求めてもよい。更に、装置に蓄積された中継データサイズの合計値を、計測したWAN側の送信スループットsnd又はold_sndで除算して、装置内のデータが空になる時間を推定するステップ1112。更に、推定した時間が、予め定められた閾値thrよりも大きいか否かを判定するステップ1113。閾値は、TCPのタイムアウト時間より定めることができる。例えば、タイムアウト時間をそのまま閾値としても良いし、係数をかけてもよい。ステップ1113において、大きいと判定した場合は、rwnd527を0にしてステップ1117、処理を終了するステップ1116。ステップ1113において、否と判定した場合は、計測した送信スループットと閾値を乗算した値と、装置に蓄積された中継データサイズの合計値と、の差をrwnd527に設定するステップ1114。更に、rwnd527を右にwan_ws518シフトした値と、65535のどちらか小さい方を、新たなrwnd527の値としてステップ1115、終了するステップ1116。ステップ1115により、例えばACKに書き込める最大値65535を超える場合は、rwnd527が最大値65535となる。なお、ACKに書き込める最大値は他の値が定められていてもよい。図11Aに示したLAN側TCPモジュール203の受信履歴更新部726の行う処理により、装置に蓄積された中継データの合計値と、計測したWAN側の送信スループットとに基づいて、LAN側に返信するACKパケットに記載する受信ウィンドウサイズを定める手段が実現される。更に、蓄積された中継データの合計値を、計測した送信スループットで除算した値が、ある閾値以上になったときに、LAN側に送信するACKパケットに記載する受信ウィンドウサイズの値を0にする手段が実現される。なお、特許文献2には、例えば受信履歴更新部726における、図11Aに示したような、送信帯域制御部715が計測したWAN側の送信スループットと、装置に蓄積された中継データサイズに基づいてrwnd527を計算する手段や、図12に示したような、rwnd527の変化をトリガとしてACKパケットを返信する手段について記載がない。上に記載した効果は、図11Aに示すrwnd527の計算方法と、図12に示すACK返信方法とを用いて、初めて可能となる。図11Bには、LAN側TCPモジュール203の受信履歴更新部726の行うrwnd527計算の別の一例を示したフローチャート図を示す。全体的な処理の流れは、図11Aと同じであるが、ステップ1111がステップ1118へ変更されており、装置に蓄積された中継データの合計値を求める手法が異なる。WAN送信バッファsbufとLAN受信バッファrbufに蓄積されたデータサイズと、加工中のデータサイズの合計値から、計測した送信スループットとラウンドトリップタイムの積を減算した値を、装置に蓄積された中継データの合計値とするステップ1118。これにより、ラウンドトリップタイムRTTが大きいほど、中継データの合計値が少なく見積もられ、rwndが大きめに設定されて、TCP通信が多くのバッファ量を使うことができるようrwnd527を制御することができ、RTTを考慮した受信ウィンドウサイズrwnd527の計算が可能となる。図11Bに示したLAN側TCPモジュール203の受信履歴更新部726の行う処理により、装置に蓄積された中継データの合計値と、計測したWAN側の送信スループットと、ラウンドトリップタイムとに基づいて、LAN側に送信するACKパケットに記載する受信ウィンドウサイズの値を計算する手段が実現される。更に、装置に蓄積された及び加工中の中継データの合計値を、計測したWAN側の送信スループットとラウンドトリップタイムの乗算値で減算した値を、計測したWAN側の送信スループットで除算した値が、ある閾値以上になったときに、LAN側に送信するACKパケットに記載する受信ウィンドウサイズの値を0にする手段が実現される。図11Cには、LAN側TCPモジュール203の受信履歴更新部726の行うrwnd527計算のさらに別の一例を示したフローチャート図を示す。全体的な処理の流れは、図11Bと同じであるが、ステップ1118がステップ1119とステップ11120へ変更されおり、装置に蓄積された中継データの合計値を求める手法が異なる。まず、ステップ1119において、計測した送信スループットと再送率と、ラウンドとリップタイムに基づいて、係数kを計算する。例えば、送信スループット、ラウンドトリップタイム、再送率が大きくなると、係数kも大きくなるように係数kを求める。より詳細な求め方を図11Dで例示する。更に、ステップ1120において、WAN送信バッファsbufとLAN受信バッファrbufに蓄積されたデータサイズと、加工中のデータサイズを加算した値から、計測した送信スループットとラウンドトリップタイムと係数kの積を減算した値を、装置に蓄積された中継データの合計値とする。これにより、例えば再送率が大きいほど、TCP通信が多くのバッファ量を使うことができるよう、rwnd527を制御することができ、RTTを考慮した受信ウィンドウサイズrwnd527計算が可能となる。例えば、再送率が大きいほどステップ1114で設定されるrwnd527が他の例に比べて大きくなり、端末からのデータを受信してバッファにたまりやすくなる。再送率が大きい場合は再送のためのデータも含めてバッファにためておく必要があり、本例では他の例に比べてバッファに蓄積される量を多めにすることができる。図11Cに示したLAN側TCPモジュール203の受信履歴更新部726の行う処理により、中継装置に蓄積されたデータのサイズと、WAN側の送信スループットと、ラウンドトリップタイムと、WAN側の再送率とに基づいて、LAN側に送信するACKパケットに記載する受信ウィンドウサイズの値を決定する手段が実現される。更に、WAN側の送信スループットとラウンドトリップタイムとWAN側の再送率から係数を計算し、中継装置に蓄積されたデータのサイズを、WAN側の送信スループットとラウンドトリップタイムと前記係数との乗算値で減算した値を、WAN側の送信スループットで除算した値が、ある閾値以上になったときに、LAN側に送信するACKパケットに記載する受信ウィンドウサイズの値を0にする手段が実現される。図11Dには、LAN側TCPモジュール203の受信履歴更新部726の行うrwnd527計算の別のより詳細な一例を示したフローチャート図を示す。rwnd527計算がはじまるとステップ1100、基準時刻前の送信帯域old_snd532とRTT平均値wan_rtt519を乗算することで内部変数cを計算し、更に、内部変数kに1を代入するステップ1101。その後、最大セグメントサイズ1パケットに載せられる最大データサイズmssを内部変数cで除算した値が、rts_ratio528のk乗よりも大きいか否かを判定するステップ1102。小さい場合はkに2を加算してステップ1103、ステップ1102を繰り返す。ステップ1102が真の場合は、内部変数cをc=ckold_sndthrに更新するステップ1104。更に、内部変数cが、WAN側送信バッファの蓄積データサイズとLAN側受信バッファの蓄積データサイズと加工中のデータサイズの和wan_right_sbuf526-wan_left_send524lan_right_recv510-lan_left_rbuf508lan_wan529よりも大きいか否かを判定するステップ1105。小さい場合は、rwndを0にしてステップ1108、終了するステップ1109。ステップ1105が真の場合は、内部変数cと、WAN側送信バッファの蓄積データサイズとLAN側受信バッファの蓄積データサイズと加工中のデータサイズの和wan_right_sbuf526-wan_left_send524lan_right_recv510-lan_left_rbuf508lan_wan529と、の差を、rwnd527の値とするステップ1106。更に、rwnd527を右にwan_ws518シフトした値と、65535のどちらか小さい方を、新たなrwnd527の値としてステップ1107、終了するステップ1109。これにより、RTTや再送率が大きいほど、TCP通信が多くのバッファ量を使うことができるよう、rwnd527を制御することができ、RTTを考慮した受信ウィンドウサイズrwnd527計算が可能となる。図11Dに示した、rwnd値の計算方式により、WAN側のTCP通信の送信スループットold_sndと、再送率rts_ratioと、RTTと、LAN側の未整列データサイズと整列済みデータサイズと、WAN側の送信バッファの未送信データサイズとACK待ちデータサイズと、加工中のデータサイズに基づいて、LAN側の送信端末へ返信するACKパケットに記載する受信ウィンドウサイズrwndの値を制御することができる。図11A~Dに示したrwnd値の計算方式により、WAN側の回線帯域がLAN側の回線帯域よりも小さいときに、LAN側の送信端末のデータの送信しすぎを防止することができる。これにより、WAN側の送信バッファとLAN側の受信バッファが満杯になることによる通信停止時間の長期化およびそれに伴うタイムアウトとコネクション強制切断を防ぐことができる。更に、図12Bのステップ1206およびステップ1207を備えることで、データパケットの受信が無いときでも、LAN側の送信端末に通知すべきrwndがMSSを超過したら即座に、rwndを記載したACKパケットをLAN側の送信端末に返信できるようになる。これにより、LAN側の送信端末は、LAN側の受信バッファに空きが生じたことを直ちに知り、送信を再開することができる。図15と図16を用いて、装置101、102の効果を説明する。図15には、端末111と端末121との間の通信を、装置101、102が中継する際のシーケンス図を示す。図16には、端末111と装置101との間のLAN帯域1601と、装置101と装置102との間のWAN帯域1602の推移を示す。装置101は、この例ではLAN側に2パケット蓄積可能な受信バッファrbufと、WAN側に3パケット蓄積可能な送信バッファsbufを備える1501。端末111から1つ目のデータパケットが送信されると、LAN側の受信バッファにパケットが1つ蓄積される1502。1つ目のデータパケット受信後、装置101は、1つ目のデータを受け取ったことを表すACK=1と、WAN側の制御帯域RTT再送率とバッファの使用状況から計算したwin_size=3を記載したACKパケットを端末111に向けて返信する。win-sizeが上述のrwndに相当する。LAN側の受信バッファに蓄積された1つ目のデータは、WAN側の送信バッファに移される1503。1つ目のデータは、WAN側の送信バッファに移された後、WAN側に向けて送られるが、ここでは廃棄されてしまうものとする。データ廃棄が起きると、WAN側の制御帯域は減少する。次に、LAN側の端末111から2つ目のデータパケットが送信されると、LAN側の受信バッファにパケットが1つ蓄積される1504。2つ目のデータパケット受信後、装置101は、WAN側の制御帯域RTT再送率とバッファの使用状況からwin_sizeを計算する。WAN側の制御帯域が減少し、バッファ使用量が増加したので、win_sizeは減少する。装置101は、2つ目のデータを受け取ったことを表すACK=2と、減少したwin_size=2を記載したACKパケットを端末111に向けて返信する。LAN側の受信バッファに蓄積された2つ目のデータは、WAN側の送信バッファに移される1505。1つ目のデータが廃棄されて、WAN側の制御帯域が小さいままなので、2つ目のデータは、WAN側の送信バッファに移された後、しばらくはWAN側に向けて送信されずに、蓄積される。次に、LAN側の端末111から3つ目のデータパケットが送信されると、LAN側の受信バッファにパケットが1つ蓄積される1506。3つ目のデータパケット受信後、装置101は、WAN側の制御帯域RTT再送率とバッファの使用状況からwin_sizeを計算する。WAN側の制御帯域が減少したままで、バッファ使用量が増加したので、win_sizeは減少する。装置101は、3つ目のデータを受け取ったことを表すACK=3と、減少したwin_size=1を記載したACKパケットを端末111に向けて返信する。LAN側の受信バッファに蓄積された3つ目のデータは、WAN側の送信バッファに移される1507。1つ目のデータが廃棄されて、WAN側の制御帯域が小さいままなので、3つ目のデータは、WAN側の送信バッファに移された後、しばらくはWAN側に向けて送信されずに、蓄積される。前回、蓄積されたままだった2つ目のデータが、例えばここでWAN側に向けて送信される。次に、LAN側の端末111から4つ目のデータパケット1513が送信されると、LAN側の受信バッファにパケットが1つ蓄積される1508。4つ目のデータパケット1513受信後、装置101は、WAN側の制御帯域RTT再送率とバッファの使用状況からwin_sizeを計算する。WAN側の制御帯域が減少したままで、バッファ使用量が増加したので、win_sizeは減少する。装置101は、4つ目のデータを受け取ったことを表すACK=4と、減少したwin_size=0を記載したACKパケット1514を端末111に向けて返信する。このように、装置101からWAN側の装置102への出力スループットが、LAN側の端末111から装置101への入力スループットよりも相対的に小さい時は、LAN側の受信バッファに空きがあっても、図13に示した従来方式よりも早めにバッファ残存量0であることを示すwin_size=0を記載したACKパケットを端末111に送信する1516。win_size=0のACKパケットを受け取った端末111は、LAN側の受信バッファが一杯と判断して、データ送信を停止する。これにより、LAN側の端末111から装置101への入力スループットを小さくすることができ、データ送信停止時のバッファへのデータ蓄積量を少なくすることができる。LAN側の受信バッファに蓄積された4つ目のデータは、WAN側の送信バッファが一杯なため、移されない1515。WAN側の装置102から、データ2に対するACKが戻ってきても、データ1が送信できていないため、WAN側の送信バッファに蓄積されたデータ1~3は消去されずにそのまま残る1515。同様に、その後、装置101から3つ目のデータパケット1517が送信されて、データ3に対するACKが戻ってきても、データ1が送信できていないため、WAN側の送信バッファに蓄積されたデータ1~3は消去されずにそのまま残る1518。データ1を送信してからしばらくたってから、装置101は、データ1を再送する1519。その後、装置102からデータ1~3を受け取ったことを表すACK=3のACKパケット1520を受信して初めて、WAN側の送信バッファに蓄積されたデータ1~3が消去される1509。3つ目のデータまで送信できたので、WAN側の制御帯域は回復する。送受信バッファに蓄積していたデータ1~3が消去され、データ4だけが残ると、WAN側の制御帯域RTT再送率とバッファの使用状況からwin_sizeが再計算される。WAN側の制御帯域が大きく回復し、バッファへの蓄積量が減少したので、win_sizeは増加する。win_sizeが0より大きくなると、即座に、3に増加したwin_size=3を記載したACKパケット1522が、端末111に向けて返信される。このように、バッファ残存量に余裕ができて、win_sizeの値が回復すると、即座にACKパケットが送信され、win_sizeの値が通知される1521。その後、LAN側の受信バッファに蓄積された4つ目のデータが、WAN側の送信バッファへ移される1510。次に、LAN側の端末111から5つ目のデータパケットが送信されると、LAN側の受信バッファにパケットが1つ蓄積される1511。5つ目のデータパケット受信後、装置101は、WAN側の制御帯域RTT再送率とバッファの使用状況からwin_sizeを計算する。バッファ使用量が増加したのでwin_sizeは減少する。5つ目のデータを受け取ったことを表すACK=5と、減少したwin_size=2を記載したACKパケットを端末111に向けて返信する。更に、4つ目のデータをWAN側へ送信すると共に、LAN側の受信バッファに蓄積された5つ目のデータが、WAN側の送信バッファへ移される1512。以上のように、WAN側の回線帯域がLAN側の回線帯域よりも小さく、装置101からWAN側の装置102への出力スループット1602が、LAN側の端末111から装置101への入力スループット1601よりも小さい時に、装置101は、LAN側の受信バッファとWAN側の送信バッファの残存量が少なくなってくると、早めにwin_size=0を記載したACKパケットを装置111へ送ることで、送信端末111の送信を停止させる。これにより、LAN側の端末111から装置101への入力スループットを少なくすることができ1601、データ送信停止時のバッファへのデータ蓄積量を少なくすることができる1603。データ蓄積量が少ないため、WAN側の装置102へのデータ送信が進展し、バッファ残存量に余裕ができるまでの時間も短期化し、送信再開までの時間を短くすることができる1604。更に、バッファ残存量が回復したときに、直ちに0よりも大きなwin_sizeを送信端末111に通知することで、データ送信を即座に再開させることができる。これらにより、LAN側の送信端末111から装置101への送信停止時間が小さくなり、コネクションが切断されたとLAN側の送信端末111に誤認されることによるコネクション強制切断が起きにくくなる1604。加えて、装置101におけるLAN側の受信バッファとWAN側の送信バッファへのデータ蓄積量のゆらぎが小さくなり、底をつきにくくなるため、WAN側の送信帯域を一定に保ちやすくなる1602。上述の本実施の形態の態様により、LAN側とWAN側の2つのTCP通信を中継する中継装置において、WAN側の回線帯域がLAN側の回線帯域よりも小さく、中継装置からWAN側への出力スループットが、LAN側の送信端末から中継装置への入力スループットよりも相対的に小さいときに、LAN側TCP通信向け受信バッファに空きがあっても、早めに、バッファ残存量0であることをLAN側の送信端末へ通知して送信を停止させることができる。これにより、LAN側の送信端末から中継装置への入力スループットが小さくなるので、LAN側のTCP通信の受信バッファとWAN側のTCP通信の送信バッファに、短時間で大量のデータが蓄積され溢れることを防ぐ。加えて、バッファへの蓄積量を少なくすることにより、中継装置のバッファに再び余裕が生じて、通信が再開されるまでの通信停止時間を短縮する。更に、バッファに余裕が生じたときに、そのことを直ちに送信端末に通知することで、通信を即座に再開させ、通信停止時間を短縮する。これらの効果により、LAN側の送信端末と中継装置との間の通信停止時間が短縮され、通信が切断されたとLAN側の送信端末に誤認され、タイムアウトにより、コネクションが強制切断されてしまうことを防ぐ。