TCP通信を中継するTCP変換部を有するカードを複数備え、前記TCP変換部は、自TCP変換部を介してデータ送信中のTCPコネクション数の情報を、自装置内の他のTCP変換部との間で交換する情報交換部と、各TCP通信の最大送信帯域を定める帯域制御部とを有し、前記情報交換部は、他のTCP変換部と交換したTCPコネクション数の情報に基づいて、装置全体におけるデータ送信中のTCPコネクション数の合計値を計算し、前記帯域制御部は、装置全体におけるデータ送信中のTCPコネクション数の合計値に基づいて、各TCP通信の最大送信帯域を定める通信装置。請求項1に記載の通信装置において、前記TCP変換部は、接続している回線の最大送信帯域を記録する状態記憶領域をさらに有し、前記帯域制御部は、記録された回線の最大送信帯域と、装置全体におけるデータ送信中のTCPコネクション数の合計値とに基づいて、各TCP通信の最大送信帯域を定める制限することを特徴とする通信装置。請求項1に記載の通信装置において、前記TCP変換部は、TCP通信の対向装置から、該対向装置におけるデータ受信中のTCPコネクション数の合計値を受信し、前記帯域制御部は、装置全体のデータ送信中のTCPコネクション数の合計値と、前記対向装置から受信した対向装置におけるデータ受信中のTCPコネクション数の合計値とに基づいて、各TCP通信の最大送信帯域を制限することを特徴とする通信装置。請求項3に記載の通信装置において、前記情報交換部は、データ受信中のTCPコネクション数の情報を他のTCP変換部との間で交換し、交換したTCPコネクション数の情報に基づいて、装置全体のデータ受信中のTCPコネクション数の合計値を計算し、計算した装置全体のデータ受信中のTCPコネクション数の合計値を、前記対向装置へ通知することを特徴とする通信装置。請求項3に記載の通信装置において、前記TCP変換部は、装置の接続している回線の最大送信帯域を記録する状態記憶領域をさらに有し、前記TCP変換部は、前記対向装置における回線の最大受信帯域を、該対向装置からさらに受信し、前記帯域制御部は、自装置に記録した回線の最大送信帯域と、自装置全体のデータ送信中のTCPコネクション数の合計値と、前記対向装置から受信した該対向装置における回線の最大受信帯域と、前記対向装置から受信した該対向装置におけるデータ受信中のTCPコネクション数の合計値とに基づいて、各TCP通信の最大送信帯域を制限することを特徴とする通信装置。請求項5に記載の通信装置において、前記帯域制御部は、自装置に記録した回線の最大送信帯域を、自装置全体のデータ送信中のTCPコネクション数の合計値で除算した値と、前記対向装置から受信した該対向装置における回線の最大受信帯域を、該対向装置から受信した該対向装置におけるデータ受信中のTCPコネクション数の合計値で除算した値とに基づいて、各TCP通信の最大帯域を制限することを特徴とする通信装置。請求項5に記載の通信装置において、前記状態記憶領域は、接続している回線の最大受信帯域をさらに記録し、前記情報交換部は、記録した回線の最大受信帯域と、自装置全体のデータ受信中のTCPコネクション数の合計値を、前記対向装置へ通知することを特徴とする通信装置。請求項1に記載の通信装置において、前記帯域制御部は、各TCP通信におけるデータの再送率をさらに用いて、各TCP通信の最大送信帯域を制限することを特徴とする通信装置。請求項8に記載の通信装置において、前記帯域制御部は、各TCP通信における基準時刻後の再送帯域と基準時刻以前の送信帯域とを計測し、基準時刻後の再送帯域と基準時刻以前の送信帯域で除算することでデータの再送率を計算することを特徴とする通信装置。請求項1に記載の通信装置において、前記帯域制御部は、各TCP通信における再送率の変化率を計算し、再送率の変化率に応じて各TCP通信の最大送信帯域を変更することを特徴とする通信装置。請求項10に記載の通信装置において、前記帯域制御部は、再送率の変化率が予め定められた閾値を超過したときに各TCP通信の最大送信帯域を再送率に応じて減少させることを特徴とする通信装置。請求項10に記載の通信装置において、前記帯域制御部は、再送率の変化率が予め定められた閾値を超過しないときに各TCP通信の最大送信帯域を増加させることを特徴とする通信装置。請求項1に記載の通信装置において、各TCP通信の最大送信帯域に従いデータを送信する送信制御部さらに備える通信装置。請求項1に記載の通信装置において、各TCP通信に対して重みを設定し、各TCPコネクションについて、対応する各重みを加算してTCPコネクション数の合計値を求め、該重みに応じて最大送信帯域を定める通信装置。TCPを用いた通信では、送信帯域がRTTと廃棄率に大きく左右されるため、WANのようなRTTが大きく、ホップ数が大きく廃棄発生箇所が多い環境で、契約帯域を大幅に下回る送信帯域しか得られない場合がある。更に、複数のTCP通信の間で回線帯域が公平に割り当てられない。本発明は、以上の点に鑑み、TCPを用いた通信において、WANのようなRTTが大きく、ホップ数が大きく廃棄発生箇所が多い環境で、送信帯域が契約帯域を大幅に下回ることを防ぐ通信装置を提供することを目的とする。上記課題を解決するために、本願発明の一態様では、各拠点におけるLANからWANへのアクセス回線部分に設置された装置が、2つのTCP通信を中継するTCP変換部を含むカードを複数備え、カード内のTCP変換部が、ある拠点の端末と装置の間のTCP通信、2つの装置間のTCP通信、装置と別拠点の端末の間のTCP通信を中継する手段と、装置内の複数のTCP変換部の間で、データ送信中のコネクション数とデータ受信中のコネクション数の情報を交換する手段と、データ送信中のコネクション数とデータ受信中のコネクション数の合計数を計算する手段と、データ受信中のコネクション数の合計数とWANへのアクセス回線帯域の情報を、対向装置内のTCP変換部に対して、TCPコネクション毎に通知する手段と、受信側端末に接続された装置内のTCP変換部が、送信側端末に接続された装置内のTCP変換部に対して廃棄箇所を、TCPコネクション毎にフィードバック通知する手段と、送信側端末に接続された装置内のTCP変換部が、フィードバック通知された廃棄箇所を再送する手段と、送信側端末に接続された装置内のカードが、直近の再送帯域と、それ以前の送信帯域と、自装置のデータ送信中のコネクション数の合計数とWANへのアクセス回線帯域と、対向装置から通知されたデータ受信中のコネクション数の合計数とWANへのアクセス回線帯域と、に基づいて制御帯域を決定する手段と、を備える態様とする。上述の態様により、送信帯域がRTTと廃棄率に大きく左右されなくなり、WANのようなRTTが大きく、ホップ数が大きく廃棄発生箇所が多い環境で、実効帯域が改善する。更に、複数のTCP通信の間で回線帯域が公平に割り当てられる。本発明の解決手段によると、TCP通信を中継するTCP変換部を有するカードを複数備え、前記TCP変換部は、自TCP変換部を介してデータ送信中のTCPコネクション数の情報を、自装置内の他のTCP変換部との間で交換する情報交換部と、各TCP通信の最大送信帯域を定める帯域制御部とを有し、前記情報交換部は、他のTCP変換部と交換したTCPコネクション数の情報に基づいて、装置全体におけるデータ送信中のTCPコネクション数の合計値を計算し、前記帯域制御部は、装置全体におけるデータ送信中のTCPコネクション数の合計値に基づいて、各TCP通信の最大送信帯域を定める通信装置が提供される。本発明によると、TCPを用いた通信において、WANのようなRTTが大きく、ホップ数が大きく廃棄発生箇所が多い環境で、送信帯域が契約帯域を大幅に下回ることを防ぐ通信装置を提供することができる。本発明を実施するための代表的な形態は、下記の通りである。実施例1には基本的な一形態を、実施例2には2つのWANを中継する形態を、実施例3にはTCPコネクション毎に重み付けする形態を記載する。図1には、本実施の形態の通信装置を適用した中継システムの構成図を示す。通信装置中継装置ともいう。以下、単に装置と記す101、102、103は、複数の拠点内LAN110、120、130とWAN140を接続する通信回線上に設置される。各拠点内LAN110、120、130には、複数の端末111~113、121~123、131~133が接続している。また、端末、装置及びネットワークの数は図示以外にも適宜の数を備えても良い。装置101は、LAN110からWAN140にデータ送信中のTCP通信の送信コネクション数と、LAN110からWAN140への回線141の送信アクセス帯域を管理する。更に、送信コネクション数と送信アクセス帯域の情報を用いて、1つのTCP通信が回線帯域を使いすぎないように、1コネクションあたりの通信帯域の最大値を制限することで、コネクション間の公平性を確保する。例えば、回線141の送信アクセス帯域が100Mbpsで、TCP通信の送信コネクション数が10だった場合、1コネクションあたりの通信帯域の最大値を10Mbpsに制限しつつ、TCP通信の帯域制御を実施する。装置102は、WAN140からLAN120に向かうデータを受信中のTCP通信の受信コネクション数と、WAN140からLAN120への回線142の受信アクセス帯域を管理する。装置102には、装置101からの通信データだけでなく、装置103からの通信データも流れ込む。装置102は、自装置で管理している受信コネクション数と受信アクセス帯域の情報を、装置101と装置103へ通知する。装置101は、自装置の送信コネクション数と送信アクセス帯域の情報に加えて、対向装置102の受信コネクション数と受信アクセス帯域の情報を用いて、1つのTCP通信が回線141や回線142の帯域を使いすぎないように、1コネクションあたりの通信帯域の最大値を制限することで、コネクション間の公平性を確保する。例えば、回線141の送信アクセス帯域が100Mbps、回線142の受信アクセス帯域が40Mbpsで、装置101の送信コネクション数が10、装置102の受信コネクション数が8である場合、回線141における1コネクションあたりの通信帯域の最大値は10Mbpsだが、回線142における1コネクションあたりの通信帯域の最大値は5Mbpsとなる。このような場合、装置101は、装置102へ向かうTCP通信の1コネクションあたりの通信帯域の最大値を、両者のうち少ないほうの回線142における最大値5Mbpsに制限することで、自装置の接続している回線141だけでなく、リモートの回線142にも考慮したコネクション間の公平性を実現することができる。自装置の情報だけを用いて、1コネクションあたりの通信帯域の最大値を10Mbpsに制限するだけだと、回線142の帯域を使いすぎてしまうため、対向装置の情報も用いて、総合的に帯域を制限することが重要である。図11には、本実施の形態の通信装置1111のブロック図を示す。図1の装置101、102、103に相当する。装置1111は、ひとつ又は複数のカード1100-1~sと、ひとつ又は複数のNIFNetworkInterFace1106-1~tと、複数のスイッチ1104-1~wと、これらの間でデータをやり取りするための接続部1105-1~s、1110-1~tと、カード1100とNIF1106とスイッチ1104を管理するための管理部1120とを備える。カード1100-1~sは、TCP通信の中継を行うTCP変換部200-1~sと、複数のネットワーク回線1103-1~s-1~eを収容してパケットの送受信を行うインターフェース1102-1~sと、TCP変換部200-1~sとインターフェース1102-1~sと接続部1105-1~sとの間でパケットの送受信を行うスイッチ1101-1~sとを備える。NIF1~t1106-1~tは、複数のネットワーク回線1109-1~t-1~i-1~fを収容してパケットの送受信を行う複数のインターフェース1107-1~t-1~iと、インターフェース1107-1~t-1~iと接続部1110-1~tとの間でパケットの送受信を行うスイッチ1108-1~tとを備える。管理部1120には、端末管理端末1121が接続され、端末1121から管理用の情報を送受信する他、内部の情報を端末1121に向けて送信し、端末1121に内部情報を表示することができる。装置1111は、ネットワーク回線1103-1~s-1~eやネットワーク回線1109-1~t-1~i-1~fのいずれか1つ以上がLANに接続され、ネットワーク回線1103-1~s-1~eやネットワーク回線1109-1~t-1~i-1~fのいずれか1つ以上がWANに接続される。LANから装置1111に入力されたパケットは、TCP変換部200のいずれか1つに転送され、その後、WANへと出力される。WANから装置1111に入力されたパケットは、TCP変換部200のいずれか1つに転送され、その後、LANへと出力される。装置1111は、ネットワーク回線1103-1~s-1~eやネットワーク回線1109-1~t-1~i-1~fからパケットを受信すると、TCP変換を行うべきパケットか否かを判断する。例えば、パケットのヘッダ情報に基づき判断できる。TCP変換を行うべきパケットと判断した場合は、TCP変換部200へと転送する。TCP変換を行わないパケットは、通常のルータやスイッチと同様に転送を行う。TCP変換部200は、転送されてきたパケットに対して、TCP通信の中継処理を行ったあと、通常のルータやスイッチと同様に転送を行う。図2には、TCP通信の中継を行うTCP変換部200のブロック図を示す。TCP変換部200は、TCP通信のための制御を行うWAN側及びLAN側のTCP処理部203/209と、WAN側のTCP209の管理するN個の送信バッファ207およびN個の受信バッファ208と、LAN側のTCP203の管理するN個の送信バッファ205およびN個の受信バッファ204と、送受信バッファ間でデータの乗せ換えを行うプロキシ206と、N個のエントリを備えた状態テーブル状態記憶領域212と、N個のエントリを備えた帯域テーブル213と、装置1111内のTCP変換部200の間でデータ送信中のコネクション数やデータ受信中のコネクション数の情報を交換するための情報交換部230と、パケットをWAN側のTCP処理部209またはLAN側のTCP処理部203または情報交換部230へと振り分ける振分部221と、WAN側のTCP処理部209またはLAN側のTCP処理部203または情報交換部230から送信されたパケットを集約したあと通常のルータやスイッチと同様に転送を行う集約部220とを有する。なお、上述のN個はそれぞれ異なる数でもよい。振分部221は、転送されてきたパケットがLAN側から来たパケットかWAN側から来たパケットかを判定して、LAN側から来たパケットをLAN側のTCP処理部203へ転送し、WAN側から来たパケットをWAN側のTCP処理部209へと転送する。LAN側からきたかWAN側からきたかは、例えばパケット内の適宜の情報を用いて判断してもよい。TCP処理部203、209、プロキシ206については、後に詳述しここでは概略を述べる。LAN側のTCP処理部203は、送信履歴更新部725と、パケット再送部724と、受信履歴更新部726と、振分部728と、集約部732とを備える。受信履歴更新部726は、受信したパケットデータを、LAN側受信バッファ204に蓄積する。更に、受信履歴更新部726は、蓄積したデータサイズに応じて、状態テーブル212のバッファ管理ポインタ508~510、515~517、521~526の情報を更新する。更に、受信履歴更新部726は、受信したデータの位置を記載したACKパケットを集約部732経由で返信する。送信履歴更新部725は、LAN側送信バッファ205から読み出した送信データをパケットにして送信すると共に、読み出した送信データサイズに応じて、状態テーブル212のバッファ管理ポインタ508~510、515~517、521~526の情報を更新する。WAN側のTCP処理部209は、送信帯域制御部715と、送信履歴更新部705と、パケット再送部704と、受信履歴更新部706と、振分部708と、集約部712とを備える。受信履歴更新部706は、受信したパケットデータを、WAN側受信バッファ208に蓄積する。更に、受信履歴更新部706は、蓄積したデータサイズに応じて、状態テーブル212のバッファ管理ポインタ508~510、515~517、521~526の情報を更新する。更に、受信履歴更新部706は、受信したデータの位置を記載したACKパケットを集約部712経由で返信する。送信帯域制御部715は、計測した送信帯域532~534と再送帯域530、531の情報を状態テーブル212に蓄積する。送信履歴更新部705は、WAN側送信バッファ207から読み出した送信データをパケットにして送信すると共に、読み出した送信データサイズに応じて、状態テーブル212のバッファ管理ポインタ508~510、515~517、521~526の情報を更新する。プロキシ206は、データ読出し部601、606と、データ加工部602、605と、データ書込部603、604を備える。データ加工部602、605は、加工中のデータサイズ529、530の情報を、状態テーブル212に蓄積する。データ読出部601、606は、受信バッファ204、208から読み出したデータサイズに応じて、状態テーブル212のバッファ管理ポインタ508~510、515~517、521~526の情報を更新する。データ書込部603、604は、送信バッファ207、205に書き込んだデータサイズに応じて、状態テーブル212のバッファ管理ポインタ508~510、515~517、521~526の情報を更新する。図3には、送受信バッファ管理用のポインタの説明図を表す。本図では、データを左から右に書き込んでいき、左から右に読み出していくものとする。受信バッファは、受信したデータの先頭を示すポインタright_recv303と、整列済みデータと未整列データの境界を示すポインタleft_recv302と、プロキシ206がすでに読出し済のデータとまだ読出していないデータの境界を示すleft_rbuf301と、を管理する。受信したデータの先頭を示すポインタright_recv303は、ロスの発生が無く、前から順番にデータを受信すると、受信したデータサイズ分増えて、右へ移動する。受信できずに歯抜けになっているデータ箇所ロスセグメントが存在する状態で、再送パケットを受信して、ロスセグメントが消滅すると、整列済みデータと未整列データの境界を示すポインタleft_recv302は、最も小さなロスセグメントの左端まで移動する。プロキシ206は、読出済データと未読出データの境界を示すleft_rbuf301から右へ向かって順番にデータを読み出し、読み出したデータサイズ分、left_rbuf301を右へ移動させる。読み出せるデータサイズの最大値は、left_recv302とleft_rbuf301の差である。送信バッファは、プロキシ206が書込済みで送信可能な状態となっているデータの先頭を表すポインタright_sbuf306と、すでに送信済みのデータの先頭を示すポインタright_send305と、受信側から確認応答を受信済みのデータの先頭を示すポインタleft_send304と、を管理する。プロキシ206が書込済みで送信可能な状態となっているデータの先頭を表すポインタright_sbuf306は、プロキシ206がデータを書き込む毎に、書き込んだデータサイズ分増加し、右へ移動する。送信済みデータの先頭を示すポインタright_send305を始点として右に向かって新たなデータが送信され、right_send305は、送信されたデータサイズ分増加し、右へ移動する。受信側から、left_send304よりも大きな受信シーケンス番号を持つ確認応答パケットを受信すると、left_send304は、確認応答パケットに記載された受信シーケンス番号へと増加し、右へ移動する。図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とを含む。TCPオプションヘッダ430は、オプション種別を表すoptionkind431と、オプション長を表すoptionlength432と、どこからどこまで部分的に受信できたかを記載するleft_edge_1~4433、435、437、439、right_edge_1~4434、436、438、440を含む。left_edge_1~4433、435、437、439、right_edge_1~4434、436、438、440には受信できなかった部分を記載するケースもある。更に、TCPオプションヘッダ430に、送信アクセス回線帯域max_send_bandwidth443、受信アクセス回線帯域max_recv_bandwidth441、データ受信中のコネクション数recv_number442及びデータ送信中のコネクション数send_number444を記載して、装置間の情報交換や、装置内のTCP変換部同士の情報交換などに使用してもよい。図5には、状態テーブル212のフォーマット図を示す。各TCP変換部200の状態テーブル212は、例えばTCPコネクション毎の状態を記録するためのn個のエントリ520と、装置1111の送信アクセス回線帯域を記録するmax_snd_bandwidth539と、装置1111の受信アクセス回線を記録するmax_rcv_bandwidth540と、装置1111全体のデータ送信中のTCPコネクション数を記録するall_snd_num536と、装置1111全体のデータ受信中のTCPコネクション数を記録するall_rcv_num538と、各TCP変換部200がデータ送信中のTCPコネクション数を記録するsnd_num535と、各TCP変換部200がデータ受信中のTCPコネクション数を記録するrcv_num537と、各TCPコネクションの最小帯域を記録するeach_min_bandwidth543とを有する。各エントリ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_wan528と、LAN側の送信バッファ管理用のポインタを表すlan_left_send521、lan_right_send522、lan_right_sbuf523と、LAN側の送信端末に通知する受信ウィンドウサイズを表すrwnd527と、WAN側のTCP通信の状態を表すwan_state514と、WAN側の受信バッファ管理用のポインタを表すwan_left_rbuf515、wan_left_recv516、wan_right_recv517と、WAN側のウィンドウスケールオプションの値を表すwan_ws518と、WAN側の平均RTTを表すwan_rtt519と、WAN側の受信バッファから読み出され加工中のデータサイズを表すwan_lan529と、WAN側の送信バッファ管理用のポインタを表すwan_left_send524、wan_right_send525、wan_right_sbuf526と、WAN側の直近の再送率を表すrts_ratio530と、WAN側の過去の再送率を表すold_rts_ratio531と、WAN側の直近の送信帯域を表すsnd532と、WAN側の過去の送信帯域を表すold_snd533と、WAN側のさらにそのまた過去の送信帯域を表すold_old_snd534とを有する。さらに、対向装置のデータ受信中のコネクション数を記録するeach_rcv_num541と、対向装置の受信アクセス回線帯域を記録するeach_rcv_bandwidth542とを有する。each_rcv_num541と、each_rcv_bandwidth542は、対向装置が通知してきた情報に基づいて更新される。例えば、パケット再送部704が、対向装置が送信してきたACKパケットのTCPオプションフィールドに記載された値などを用いて、TCPコネクション毎に更新する。each_rcv_num541と、each_rcv_bandwidth542は、例えば、該当するエントリに対応するTCP通信の対向装置から受信される。max_snd_bandwidth539や、max_rcv_bandwidth540などは、端末1121経由などで手動で更新される。snd_num535や、rcv_num537は、情報交換部230が更新する。情報交換部230が、例えば、状態テーブル212のエントリ毎にバッファ蓄積量right_sbufとleft_sendの差と、right_recvとleft_rbufの差の合計をチェックし、送信バッファにデータが蓄積されているエントリはデータ送信中のコネクション、受信バッファにデータが蓄積されているエントリはデータ受信中のコネクション、と判断することで計算する。all_rcv_num538と、all_snd_num536は、装置1111内部の他の全てのTCP変換部200との間の情報交換に基づいて、更新される。TCP変換部200の情報交換部230は、他の全てのTCP変換部200に対して、自分のsnd_num535や、rcv_num537を通知すると共に、他の全てのTCP変換部200から通知されてきたsnd_num535や、rcv_num537の合計値を計算することで、all_rcv_num538と、all_snd_num536を得て、定期的に更新する。情報交換部230は、自装置でデータ受信中のTCPコネクションの合計値all_rcv_num538と、接続される回線の最大受信帯域max_rcv_bandwidth540を、TCP通信の対向装置に通知する。図6には、プロキシ206のブロック図を示す。プロキシ206は、LAN側の受信バッファrbuf204からデータを読出すデータ読出し部601と、読み出したデータに対して圧縮解凍暗号化復号削除複製追記などの加工を行うデータ加工部602と、加工済みデータをWAN側の送信バッファsbuf207へ書き込むデータ書き込み部603と、WAN側の受信バッファrbuf208からデータを読み出すデータ読出し部606と、読み出したデータに対して圧縮解凍暗号化復号削除複製追記などの加工を行うデータ加工部605と、加工済みデータをLAN側の送信バッファsbuf205へ書き込むデータ書き込み部604とを有する。データ加工部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を超えない場合は、データを読み出して、データ加工部602へ転送する。更に、推定した読み出すべきデータサイズと、データ加工後のデータサイズのうち、大きい方を状態テーブル212のlan_wan528へ記載する。詳細は、図9に示すフローチャート図を参照して後述する。データ読出し部606は、wan_left_rbuf515からwan_left_recv516までの間に蓄積されている整列済みデータから読み出した先頭データから、読み出すべきデータサイズと、データ加工後のデータサイズを推定する。先頭データとしては、TLSTransportLayerSecurity/SSLSecureSocketLayerヘッダ、SMBServerMessageBlockヘッダ、等などを使用してもよい。推定した加工後のデータサイズが、lan_right_sbuf523とlan_left_send521の差、すなわち未送信データとACK確認待ちデータの合計値が、LAN側の送信バッファサイズlan_sbuf_sizeを超えない場合は、データを読み出して、データ加工部605へ転送する。更に、推定した読み出すべきデータサイズと、データ加工後のデータサイズのうち、大きい方を状態テーブル212のwan_lan529へ記載する。詳細は、図10に示すフローチャート図を参照して後述する。図9と図10にはそれぞれ、データ読出し部601とデータ読出し部606のデータ読出し処理のフローチャート図を示す。図9の各ステップは、データ読出し部601が実行する。データ読出し部601は、処理を開始するとステップ900、はじめにlan_left_recv509がlan_left_rbuf508よりも大きいか比較を行い、LAN側の受信バッファ204に整列済みデータが存在するか否かを判定するステップ901。ステップ901において大きくないと判定した場合、すなわち整列済みデータが存在しない場合は、ステップ901を繰り返す。ステップ901において大きいと判定した場合、すなわち整列済みデータが存在する場合は、次に、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側の受信バッファ204から読み出すステップ903。ステップ902にて否と判定した場合は、データ加工しない場合のみ、wan_right_sbuf526とwan_left_send524の差分未送信データとACK確認待ちデータの合計値と、WAN側の送信バッファサイズwan_sbuf_sizeとの差分バッファ空きサイズに相当するサイズのデータを、LAN側の受信バッファ204から読み出すステップ904。読み出されたデータは、データ加工部602を介してデータ書き込み部603に出力される。データ読み出し後、lan_left_rbuf508に読み出したデータサイズを加算するステップ905。ステップ905の後、ステップ901へ戻る。なお、wan_right_sbuf526は、データ書き込み部603がデータを書き込んだ際に、書き込んだデータサイズ分だけ増加する。図10の各ステップはデータ読出し部606が実行する。データ読出し部606は、処理を開始するとステップ1000、はじめにwan_left_recv516がwan_left_rbuf515よりも大きいか比較を行い、WAN側の受信バッファ208に整列済みデータが存在するか否かを判定するステップ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側の受信バッファ208から読み出すステップ1003。ステップ1002にて否と判定した場合は、データ加工しない場合のみ、lan_right_sbuf523とlan_left_send521の差分未送信データとACK確認待ちデータの合計値と、LAN側の送信バッファサイズlan_sbuf_sizeとの差分バッファ空きサイズに相当するサイズのデータを、WAN側の受信バッファ208から読み出すステップ1004。読み出されたデータは、データ加工部605を介してデータ書き込み部604に出力される。データ読出し後、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と、再送パケットとデータパケットを受け取り、バッファ1~n709-1~nに振り分けると共に、各TCPコネクションの送信/再送ビット長を送信帯域制御部715に通知する振分部708と、現在時刻を生成して送信帯域制御部715に通知するタイマ713と、インターバル時間予め定めた固定値、または計測したRTTなどを保存して送信帯域制御部715に通知するインターバル格納部714と、帯域テーブル213を制御して、各TCPコネクションのトークンサイズをトークン更新部に通知する送信帯域制御部715と、TCPコネクション毎にトークンバケツを管理して、送信可能なコネクションをマルチプレクサ712に通知するトークン更新部717と、ACKパケット、TCP制御パケット、再送パケット、データパケットをFIFOで集約して、出力するマルチプレクサ712およびバッファ709~711とを有する。本実施例において、TX部701の各ブロックのうち、各TCP通信の制御帯域最大送信帯域に従いデータを送信するブロック例えば、トークン更新部717、マルチプレクサ712、バッファ709等をまとめて送信制御部と称することもある。図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とを有する。WAN側TCP処理部209の送信帯域制御部715は基準時刻という内部変数を管理している。基準時刻と、タイマ713の現在時刻との差が、インターバル格納部714のインターバル時間よりも大きくなると、基準時刻にインターバル時間を加算して新たな基準時刻とする。加算前の基準時刻は、旧基準時刻となる。すなわち、現在使用している基準時刻の一つ前に使用していた基準時刻は旧基準時刻となる。図8には、送信帯域制御部715が管理する帯域テーブル213のフォーマットを表す。帯域テーブル213は、コネクション毎に、基準時刻と、基準時刻後の送信ビット積算値再送ビット積算値制御帯域と、基準時刻前の送信帯域再送帯域制御帯域と、旧基準時刻前の送信帯域制御帯域と、を記録する。基準時刻後の制御帯域は、現在時刻における制御帯域を表す本実施例では、tokenと表す。基準時刻後の送信帯域は、現在時刻における送信帯域を表し本実施例では、sndと表す、基準時刻後の送信ビット積算値を、現在時刻と基準時刻の差分で除算することで求められる。基準時刻後の再送帯域は、現在時刻における再送帯域を表し本実施例では、rtsと表す、基準時刻後の再送ビット積算値を、現在時刻と基準時刻の差分で除算することで求められる。基準時刻前の制御帯域送信帯域再送帯域は、旧基準時刻から基準時刻までの制御帯域送信帯域再送帯域の平均値を表す本実施例では、old_token、old_snd、old_rtsと表す。旧基準時刻前の制御帯域送信帯域は、旧基準時刻の直前までの制御帯域送信帯域を表す本実施例では、old_old_token、old_old_snd、と表す。基準時刻前の再送率old_rts_ratioは、old_rts/old_old_sndで求められる。また、基準時刻後の現在の再送率rts_ratioは、rts/old_sndで求められる。インターバル時間として、状態テーブル212記載のwan_rtt519を用いる場合もある。図12には、旧基準時刻基準時刻現在時刻と、その前後の制御帯域送信帯域再送帯域の関係を表す。基準時刻と旧基準時刻との差は、インターバル時間である。旧基準時刻前のインターバル時間の制御帯域送信帯域の平均値は、old_old_token、old_old_sndと表す1203。旧基準時刻から基準時刻までの間の制御帯域送信帯域再送帯域の平均値は、old_token、old_snd、old_rtsと表す1202。基準時刻から現在時刻までの制御帯域送信帯域再送帯域の平均値は、token、snd、rtsと表す1201。送信帯域制御部715は、帯域テーブル213に記載された値を用いて、上述のようにrts_ratio530とold_rts_ratio531を計算し、制御帯域tokenを決定し、トークン更新部717へ伝える。更に、状態テーブル212を更新する。図2を用いて、LAN側からデータ付きパケットを受信した際のパケットの流れを説明する。LAN側から到着したデータ付きパケットは、LAN側TCP処理部203に入り、受信履歴更新部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側の受信バッファの最大値から、lan_right_recv510とlan_left_rbuf508との差分を、引くことで、受信バッファの残存量を計算する。ペイロード450のサイズが、受信バッファの残存量以下のときは、ペイロード450に記載されたデータ全てを受信バッファに格納する。ペイロード450のサイズが、受信バッファの残存量よりも大きい場合は、ペイロード450の先頭から受信バッファの残存量に相当するサイズのデータだけを受信バッファに格納する。格納データサイズが0よりも大きいときは、データ付きパケットのTCPヘッダ420に記載されたSEQ423の値と、格納データサイズに基づいて、受信バッファ管理用ポインタの更新を行う。例えば、パケットヘッダ記載のSEQ423に格納データサイズを加算した値が、lan_right_recv510よりも大きい場合は、lan_right_recv510を、SEQ423に格納データサイズを加算した値に変更する。更に、受信データの最後尾がlan_right_recv510となるように、受信データをLAN側の受信バッファに記載する。その後、受信ウィンドウサイズrwnd527をTCPヘッダ420のwin_size427に記載し、受信バッファ管理ポインタの1つlan_left_recv509をTCPヘッダ420のACK424に記載したACKパケットを、LAN側へ返信する。なお、受信履歴更新部726において、データを格納するか否かの判断に、rwnd527の値は使用されない。そのため、rwnd527が0であっても、受信バッファの残存量が0よりも大きければ、ペイロード450に記載されたデータが受信バッファに格納され、インクリメントされたACK424を持つACKパケットが、LAN側へ返信される。また、送信履歴更新部705についてさらに説明すると、wan_right_send525から右方向に、最大wan_right_sbuf526までのデータを、WAN側送信バッファsbuf207から読み出す。wan_right_send525は、読み出したデータサイズ分、増加して、右に移動する。更に、読み出したデータをペイロード450に記載し、wan_right_send525をSEQ423に記載したTCPヘッダ420を追加したデータ付きパケットを、WAN側へ送信する。制御帯域の更新処理制御帯域の更新処理とは別に、情報交換部230により、上述のように自装置の他の情報交換部との情報通知及び受信、対向装置の情報交換部との情報通知及び受信がされ、状態テーブル212の各情報が更新される。図13Aには、送信帯域制御部715が制御帯域tokenを更新する際の概念的なフローチャートを表す。送信帯域制御部715が、本フローチャートに従い処理を実行することで、自装置の送信アクセス回線帯域とデータ送信中コネクション数から求められる自装置の1コネクションあたり帯域だけでなく、対向装置から通知された受信アクセス回線帯域とデータ受信中コネクション数から求められる対向装置の1コネクションあたり帯域も用いることで、より公平に帯域を制限しつつ、再送率に基づく帯域制御を実現することができる。図13Aの各ステップは、送信帯域制御部715により実行される。制御帯域の更新処理がスタートするとステップ1301、送信帯域制御部715が、パケット再送率=rts/old_tokenまたはrts/old_sndの増加率が一定値予め定められた閾値を超過したか否かを判定するステップ1302。超過した場合は、現在の再送帯域rtsと、昔の基準時刻より前の制御帯域old_tokenまたは昔の基準時刻より前の送信帯域old_sndを用いて、制御帯域tokenを更新するステップ1303。例えば、基準時刻より前の制御帯域を、現在の再送帯域に応じた量減らし、現時刻の制御帯域とする。一方、超過しなかった場合は、制御帯域を増加させるステップ1304。ステップ1303やステップ1304のあとに、自装置のコネクション数とアクセス帯域、および対向装置のコネクション数とアクセス帯域とに基づいて、制御帯域tokenを更新するステップ1305。最後に、各コネクションの最小帯域each_min_bandwidth543に基づき、制御帯域tokenを更新するステップ1306。制御帯域tokenを変更することで、トークンバケツに蓄積されるトークンの量が変わり、それによりパケットの送信レートを変更することが可能となる。図13Bには、送信帯域制御部715が帯域テーブル213記載の値を用いて、制御帯域tokenを変更するフローチャート図を表す。図13Aをより詳細にした例を示す。図13Bの各ステップは、送信帯域制御部715により実行される。制御帯域tokenの更新処理がスタートするとステップ1306、送信帯域制御部715が、タイマ713の出力する現在時刻と、帯域テーブル213記載の基準時刻との差が、インターバル格納部714の出力するインターバル時間以上であるか否かを判定するステップ1307。インターバル時間として、計測したRTTの平均値や初期値等を記録したwan_rtt519等を使用してもよい。ステップ1307において真と判断された場合は、基準時刻後の現在の制御帯域tokenの値をtmpに退避させておくステップ1308。更に、例えば、帯域テーブル213に記憶された再送ビット積算値基準時刻後/現在時刻-基準時刻/送信帯域基準時刻前で求められる再送率基準時刻後rts_ratioが、再送帯域基準時刻前/送信帯域旧基準時刻前で求められる旧再送率基準時刻前old_rts_ratioのK倍K:予め定められた1以上の係数よりも大きいか否かを判定するステップ1309。上述のステップ1302に相当する。Kの値は、固定としてもよいし、tokenの値に応じて変化してもよい。ステップ1309において、大きいと判定した場合は、再送率の増加率が大きいと判断して、制御帯域基準時刻後tokenの値を、制御帯域基準時刻前old_tokenの値よりも小さくなるように、例えば再送帯域rtsを用いて減少させる。例えば、制御帯域基準時刻後token=制御帯域基準時刻前old_token-再送帯域基準時刻後rtsなどとするステップ1311。ステップ1309で偽と判定された場合は、制御帯域基準時刻後tokenを増加させるステップ1310。制御帯域基準時刻後tokenの増加方法は、線形に増加させてもよいし、指数的に増加させてもよいし、線形増加と指数増加を組み合わせても良いし、最初線形増加させてその後で指数増加してもよいし、増加率を制御帯域基準時刻後tokenに応じて変化させてもよい。ステップ1311またはステップ1310が完了すると、例えば送信帯域旧基準時刻前old_old_snd=送信帯域基準時刻前old_snd、送信帯域基準時刻前old_snd=送信帯域基準時刻後snd、再送帯域基準時刻前old_rts=再送帯域基準時刻後rts、基準時刻=基準時刻インターバル、送信ビット積算値基準時刻後=0、再送ビット積算値基準時刻後=0、制御帯域旧基準時刻前old_old_token=制御帯域基準時刻前old_token、制御帯域基準時刻前old_token=tmp、と更新し、各値を帯域テーブル213に記録するステップ1312。その後ステップ1315に移る。一方、ステップ1307で、偽と判定された場合は、ステップ1309と同様に、再送ビット積算値基準時刻後/現在時刻-基準時刻/送信帯域基準時刻前で求められる再送率基準時刻後rts_ratioが、再送帯域基準時刻前/送信帯域旧基準時刻前で求められる旧再送率基準時刻前old_rts_ratioのK倍K:予め定められた1以上の係数よりも大きいか否かを判定するステップ1313。Kの値は、固定としてもよいし、tokenの値に応じて変化してもよい。ステップ1313において大きいと判定した場合は、再送率の変化率が大きいと判断して、ステップ1311と同様に、制御帯域基準時刻後tokenの値を、制御帯域基準時刻前old_tokenの値よりも小さくなるように、再送帯域rtsを用いて減少させる。例えば、制御帯域基準時刻後token=制御帯域基準時刻前old_token-再送帯域基準時刻後rtsとするステップ1314。ステップ1313において小さいあるいは同等と判定した場合は、何もしない。これらのステップにより、インターバル時間が経過しなくても、再送率の増加を即座に検出し、制御帯域を更新できる。その後ステップ1315に移る。ステップ1315では、制御帯域基準時刻後tokenが、装置1111の送信アクセス回線帯域max_snd_bandwidth539を、装置1111のデータ送信中のTCPコネクション数all_snd_num536で除算した1コネクションンあたり送信アクセス回線帯域よりも大きい場合は、制御帯域基準時刻後tokenを、1コネクションあたり送信アクセス回線帯域に変更する。更に、制御帯域基準時刻後tokenが、対向装置の受信アクセス回線帯域each_rcv_bandwidth542を、対向装置のデータ受信中のTCPコネクション数each_rcv_num541で除算した1コネクションあたり受信アクセス回線帯域よりも大きい場合は、制御帯域基準時刻後tokenを、1コネクションあたり受信アクセス回線帯域に変更するステップ1315。更に、制御帯域基準時刻後tokenが、各TCP通信の最小帯域each_min_bandwidthよりも小さい場合は、制御帯域基準時刻後tokenを各TCP通信の最小帯域each_min_bandwidthに変更するステップ1316。すなわち図13Bで示す2つの式で定まるtokenのうちいずれか小さいほうをとる。なお、ステップ1315、1316におけるそれぞれのデータは、状態テーブル212を参照して読み出すことができる。制御帯域tokenを変更することで、トークンバケツに蓄積されるトークンの量が変わり、それによりパケットの送信レートを変更することが可能となる。このように、自装置の送信アクセス回線帯域とデータ送信中コネクション数から求められる自装置の1コネクションあたり帯域だけでなく、対向装置から通知された受信アクセス回線帯域とデータ受信中コネクション数から求められる対向装置の1コネクションあたり帯域も用いることで、より公平に帯域を制限しつつ、再送率に基づく帯域制御を実現することができる。図22には、ステップ1305やステップ1315の詳細な処理例のフローチャートを示す。図22の各ステップは、送信帯域制御部715により実行される。処理がスタートするとステップ2201、状態テーブル212から、装置1111の送信アクセス回線帯域max_snd_bandwidth539と、装置1111のデータ送信中のTCPコネクション数all_snd_num536と、対向装置の受信アクセス回線帯域each_rcv_bandwidth542と、対向装置のデータ受信中のTCPコネクション数each_rcv_num541との情報を読み出すステップ2208。装置1111の送信アクセス回線帯域max_snd_bandwidth539を、装置1111のデータ送信中のTCPコネクション数all_snd_num536で除算した1コネクションンあたり送信アクセス回線帯域が、対向装置の受信アクセス回線帯域each_rcv_bandwidth542を、対向装置のデータ受信中のTCPコネクション数each_rcv_num541で除算した1コネクションあたり受信アクセス回線帯域よりも大きいか否かを判定するステップ2202。大きい場合は、制御帯域基準時刻後tokenが、対向装置の1コネクションあたり受信アクセス回線帯域よりも大きいか否かを判定するステップ2203。大きい場合は、制御帯域基準時刻後tokenを、対向装置の1コネクションあたり受信アクセス回線帯域に、定数αを加算した値、または定数αを乗算した値に変更するステップ2205。αの値は1でもよいし、他の値でもよい。ステップ2203において否と判定した場合は何もせずに終了するステップ2207。一方、ステップ2202において否と判定した場合は、制御帯域基準時刻後tokenが、自装置の1コネクションあたり送信アクセス回線帯域よりも大きいか否かを判定するステップ2204。大きい場合は、制御帯域基準時刻後tokenを、自装置の1コネクションあたり送信アクセス回線帯域に、定数αを加算した値、または定数αを乗算した値に変更するステップ2206。ステップ2204において否と判定した場合は何もせずに終了するステップ2207。更に、制御帯域tokenを状態テーブル212および帯域テーブル213へ書き込むステップ2209。なお、ステップ2203、2204で否と判定した場合は、ステップ2209を省略し、処理を終了してもよい。このように、自装置の送信アクセス回線帯域とデータ送信中コネクション数から求められる自装置の1コネクションあたり帯域だけでなく、対向装置から通知された受信アクセス回線帯域とデータ受信中コネクション数から求められる対向装置の1コネクションあたり帯域も用いることで、より公平に帯域を制限しつつ、再送率に基づく帯域制御を実現することができる。以上の送信帯域制御部715の制御帯域を更新する方法により、過去の送信帯域と直近の再送帯域に基づく再送率の変化率を用いて帯域を制御する方法と、装置間で交換したコネクション数の情報を用いて帯域を制御する方法と、を組みあわせて、帯域を制御することが可能となる。これにより、制御帯域が利用可能帯域付近で上下するように更新されるため、利用可能帯域を100近く使い切ることができる。更に、標準的なTCP通信しかできない端末間でも、RTTや廃棄率に依存しない通信を実現することができる。動作例図14には、TCP変換部200を1つ含む装置1111-Aと、TCP変換部200を1つ含む装置1111-Bと、の間で自装置の統計情報に基づいて帯域制御を行う例の概念図を示す。装置1111-Aの送信アクセス回線60Mbpsとし、3台の送信端末1401~1403から3台の受信端末1404~1406に向けて、装置1111-Aと装置1111-Bを経由して、3つのTCP通信が行われている。装置1111-A内のTCP変換部200-A内の状態テーブル212-Aでは、snd_num=3、all_snd_num=3、max_snd_bandwidth=60Mbpsと記録される。本情報を用いて、TCP変換部200-A内の送信帯域制御部715-Aは、公平分配可能なTCP通信の1コネクションあたりの帯域を20Mbpsと計算する。送信帯域制御部715-Aは、再送率に基づいて制御帯域tokenを決定した後ステップ1302~1304相当、制御帯域tokenが20Mbpsを超過している場合は、制御帯域tokenが20Mbps以下となるよう制御帯域を制限するステップ1305相当。図15には、TCP変換部200を複数含む装置1111-Aと、TCP変換部200を1つ含む装置1111-Bと、の間で自装置の統計情報に基づいて帯域制御を行う例の概念図を示す。装置1111-Aの送信アクセス回線60Mbpsとし、3台の送信端末1501~1503から3台の受信端末1504~1506に向けて、装置1111-Aと装置1111-Bを経由して、3つのTCP通信が行われている。2つのTCP通信は、1つ目のTCP変換部200-A-1を経由し、1つのTCP通信は、2つ目のTCP変換部200-A-2を経由する。装置1111-A内のTCP変換部200-A-1内の状態テーブル212-A-1では、snd_num=2、all_snd_num=3、max_snd_bandwidth=60Mbpsと記録される。本情報を用いて、TCP変換部200-A-1内の送信帯域制御部715-A-1は、公平分配可能なTCP通信の1コネクションあたりの帯域を20Mbpsと計算する。送信帯域制御部715-A-1は、再送率に基づいて制御帯域tokenを決定した後ステップ1302~1304相当、制御帯域tokenが20Mbpsを超過している場合は、制御帯域tokenが20Mbps以下となるよう制御帯域を制限するステップ1305相当。装置1111-A内のTCP変換部200-A-2内の状態テーブル212-A-1では、snd_num=1、all_snd_num=3、max_snd_bandwidth=60Mbpsと記録される。本情報を用いて、TCP変換部200-A-2内の送信帯域制御部715-A-2は、公平分配可能なTCP通信の1コネクションあたりの帯域を20Mbpsと計算する。送信帯域制御部715-A-2は、再送率に基づいて制御帯域tokenを決定した後ステップ1302~1304相当、制御帯域tokenが20Mbpsを超過している場合は、制御帯域tokenが20Mbps以下となるよう制御帯域を制限するステップ1305相当。図16には、TCP変換部200を1つ含む装置1111-Aと、TCP変換部200を1つ含む装置1111-Bと、の間で対向装置の統計情報に基づいて帯域制御を行う例の概念図を示す。装置1111-Bの受信アクセス回線30Mbpsとし、3台の送信端末1601~1603から3台の受信端末1604~1606に向けて、装置1111-Aと装置1111-Bを経由して、3つのTCP通信が行われている。装置1111-B内のTCP変換部200-B内の状態テーブル212-Bでは、rcv_num=3、all_rcv_num=3、max_rcv_bandwidth=30Mbpsと記録される。本情報は、ACKパケット等に載せられて、送信端末1601~1603側の装置1111-Aに通知され、TCP変換部200-Aの状態テーブル212に記録される。通知された情報に基づいて、TCP変換部200-A内の送信帯域制御部715-Aは、制御帯域の最大値が10Mbps以下となるように制御帯域を調整する。図17には、TCP変換部200を1つ含む装置1111-Aと、TCP変換部200を複数含む装置1111-Bと、の間で対向装置の統計情報に基づいて帯域制御を行う例の概念図を示す。装置1111-Bの受信アクセス回線30Mbpsとし、3台の送信端末1701~1703から3台の受信端末1704~1706に向けて、装置1111-Aと装置1111-Bを経由して、3つのTCP通信が行われている。2つのTCP通信は、1つ目のTCP変換部200-B-1を経由し、1つのTCP通信は、2つ目のTCP変換部200-B-2を経由する。装置1111-B内のTCP変換部200-B-1内の状態テーブル212-B-1では、rcv_num=2、all_rcv_num=3、max_rcv_bandwidth=30Mbpsと記録される。本情報は、ACKパケット等に載せられて、送信端末1701~1703側の装置1111-Aに通知され、状態テーブル212-Aに記録される。通知された情報に基づいて、TCP変換部200-A内の送信帯域制御部715-Aは、制御帯域の最大値が10Mbps以下となるように制御帯域を調整する。装置1111-B内のTCP変換部200-B-2内の状態テーブル212-B-2では、rcv_num=1、all_rcv_num=3、max_rcv_bandwidth=30Mbpsと記録される。本情報は、ACKパケット等に載せられて、送信端末1701~1703側の装置1111-Aに通知され、状態テーブル212-Aに記録される。通知された情報に基づいて、TCP変換部200-A内の送信帯域制御部715-Aは、公平分配可能なTCP通信の1コネクションあたりの帯域を10Mbpsと計算する。送信帯域制御部715-Aは、再送率に基づいて制御帯域tokenを決定した後ステップ1302~1304相当、制御帯域tokenが10Mbpsを超過している場合は、制御帯域tokenが10Mbps以下となるよう制御帯域を制限するステップ1305相当。図18には、TCP変換部200を1つ含む装置1111-Aと、TCP変換部200を1つ含む装置1111-Bと、の間で自装置と対向装置の統計情報に基づいて帯域制御を行う例の概念図を示す。装置1111-Aの送信アクセス回線60Mbps、装置1111-Bの受信アクセス回線30Mbpsとし、3台の送信端末1801~1803から3台の受信端末1804~1806に向けて、装置1111-Aと装置1111-Bを経由して、3つのTCP通信が行われている。装置1111-B内のTCP変換部200-B内の状態テーブル212-Bでは、rcv_num=3、all_rcv_num=3、max_rcv_bandwidth=30Mbpsと記録される。本情報は、ACKパケット等に載せられて、送信端末1801~1803側の装置1111-Aに通知され、状態テーブル212-Aに記録される。装置1111-A内のTCP変換部200-A内の状態テーブル212-Aでは、snd_num=3、all_snd_num=3、max_snd_bandwidth=60Mbpsと記録される。対向装置からの情報と、自装置内の記録情報を用いて、TCP変換部200-A内の送信帯域制御部715-Aは、公平分配可能なTCP通信の1コネクションあたりの帯域を10Mbpsと計算する。送信帯域制御部715-Aは、再送率に基づいて制御帯域tokenを決定した後ステップ1302~1304相当、制御帯域tokenが10Mbpsを超過している場合は、制御帯域tokenが10Mbps以下となるよう制御帯域を制限するステップ1305相当。図19には、TCP変換部200を1つ含む装置1111-Aと、TCP変換部200を複数含む装置1111-Bと、の間で自装置と対向装置の統計情報に基づいて帯域制御を行う例の概念図を示す。装置1111-Aの送信アクセス回線60Mbps、装置1111-Bの受信アクセス回線30Mbpsとし、3台の送信端末1901~1903から3台の受信端末1904~1906に向けて、装置1111-Aと装置1111-Bを経由して、3つのTCP通信が行われている。2つのTCP通信は、1つ目のTCP変換部200-B-1を経由し、1つのTCP通信は、2つ目のTCP変換部200-B-2を経由する。装置1111-B内のTCP変換部200-B-1内の状態テーブル212-B-1では、rcv_num=2、all_rcv_num=3、max_rcv_bandwidth=30Mbpsと記録される。本情報は、ACKパケット等に載せられて、送信端末1901~1903側の装置1111-Aに通知され、状態テーブル212-Aに記録される。装置1111-B内のTCP変換部200-B-2内の状態テーブル212-B-2では、rcv_num=1、all_rcv_num=3、max_rcv_bandwidth=30Mbpsと記録される。本情報は、ACKパケット等に載せられて、送信端末1901~1903側の装置1111-Aに通知され、状態テーブル212-Aに記録される。装置1111-A内のTCP変換部200-A内の送信帯域制御部715-Aは、対向装置からの情報と、自装置内の記録情報を用いて、公平分配可能なTCP通信の1コネクションあたりの帯域を10Mbpsと計算する。送信帯域制御部715-Aは、再送率に基づいて制御帯域tokenを決定した後ステップ1302~1304相当、制御帯域tokenが10Mbpsを超過している場合は、制御帯域tokenが10Mbps以下となるよう制御帯域を制限するステップ1305相当。図20には、TCP変換部200を複数含む装置1111-Aと、TCP変換部200を1つ含む装置1111-Bと、の間で自装置と対向装置の統計情報に基づいて帯域制御を行う例の概念図を示す。装置1111-Aの送信アクセス回線60Mbps、装置1111-Bの受信アクセス回線30Mbpsとし、3台の送信端末2001~2003から3台の受信端末2004~2006に向けて、装置1111-Aと装置1111-Bを経由して、3つのTCP通信が行われている。2つのTCP通信は、1つ目のTCP変換部200-B-1を経由し、1つのTCP通信は、2つ目のTCP変換部200-B-2を経由する。装置1111-B内のTCP変換部200-B内の状態テーブル212-Bでは、rcv_num=3、all_rcv_num=3、max_rcv_bandwidth=30Mbpsと記録される。本情報は、ACKパケット等に載せられて、送信端末2001~2003側の装置1111-Aに通知され、状態テーブル212-A-1、212-A-2に記録される。装置1111-A内のTCP変換部200-A-1内の状態テーブル212-A-1では、snd_num=2、all_snd_num=3、max_snd_bandwidth=60Mbpsと記録される。装置1111-A内のTCP変換部200-A-1内の送信帯域制御部715-A-1は、対向装置からの情報と、自装置内の記録情報を用いて、公平分配可能なTCP通信の1コネクションあたりの帯域を10Mbpsと計算する。送信帯域制御部715-A-1は、再送率に基づいて制御帯域tokenを決定した後ステップ1302~1304相当、制御帯域tokenが10Mbpsを超過している場合は、制御帯域tokenが10Mbps以下となるよう制御帯域を制限するステップ1305相当。装置1111-A内のTCP変換部200-A-2内の状態テーブル212-A-2では、snd_num=1、all_snd_num=3、max_snd_bandwidth=60Mbpsと記録される。装置1111-A内のTCP変換部200-A-2内の送信帯域制御部715-A-2は、対向装置からの情報と、自装置内の記録情報を用いて、公平分配可能なTCP通信の1コネクションあたりの帯域を10Mbpsと計算する。送信帯域制御部715-A-2は、再送率に基づいて制御帯域tokenを決定した後ステップ1302~1304相当、制御帯域tokenが10Mbpsを超過している場合は、制御帯域tokenが10Mbps以下となるよう制御帯域を制限するステップ1305相当。図21には、TCP変換部200を複数含む装置1111-Aと、TCP変換部200を複数含む装置1111-Bと、の間で自装置と対向装置の統計情報に基づいて帯域制御を行う例の概念図を示す。装置1111-Aの送信アクセス回線60Mbps、装置1111-Bの受信アクセス回線30Mbpsとし、3台の送信端末2101~2103から3台の受信端末2104~2106に向けて、装置1111-Aと装置1111-Bを経由して、3つのTCP通信が行われている。2つのTCP通信は、1つ目のTCP変換部200-A-1とTCP変換部200-B-1を経由し、1つのTCP通信は、2つ目のTCP変換部200-A-2とTCP変換部200-B-2を経由する。装置1111-B内のTCP変換部200-B-1内の状態テーブル212-B-1では、rcv_num=2、all_rcv_num=3、max_rcv_bandwidth=30Mbpsと記録される。本情報は、ACKパケット等に載せられて、送信端末2101~2103側の装置1111-A例えばTCP通信において対向するTCP変換部200-A-1に通知され、状態テーブル212-A-1に記録される。装置1111-B内のTCP変換部200-B-2内の状態テーブル212-B-2では、rcv_num=1、all_rcv_num=3、max_rcv_bandwidth=30Mbpsと記録される。本情報は、ACKパケット等に載せられて、送信端末2101~2103側の装置1111-A例えばTCP通信において対向するTCP変換部200-A-2に通知され、状態テーブル212-A-2に記録される。装置1111-A内のTCP変換部200-A-1内の状態テーブル212-A-1では、snd_num=2、all_snd_num=3、max_snd_bandwidth=60Mbpsと記録される。装置1111-A内のTCP変換部200-A-1内の送信帯域制御部715-A-1は、対向装置からの情報と、自装置内の記録情報を用いて、公平分配可能なTCP通信の1コネクションあたりの帯域を10Mbpsと計算する。送信帯域制御部715-A-1は、再送率に基づいて制御帯域tokenを決定した後ステップ1302~1304相当、制御帯域tokenが10Mbpsを超過している場合は、制御帯域tokenが10Mbps以下となるよう制御帯域を制限するステップ1305相当。装置1111-A内のTCP変換部200-A-2内の状態テーブル212-A-2では、snd_num=1、all_snd_num=3、max_snd_bandwidth=60Mbpsと記録される。装置1111-A内のTCP変換部200-A-2内の送信帯域制御部715-A-2は、対向装置からの情報と、自装置内の記録情報を用いて、公平分配可能なTCP通信の1コネクションあたりの帯域を10Mbpsと計算する。送信帯域制御部715-A-2は、再送率に基づいて制御帯域tokenを決定した後ステップ1302~1304相当、制御帯域tokenが10Mbpsを超過している場合は、制御帯域tokenが10Mbps以下となるよう制御帯域を制限するステップ1305相当。なお、装置1111に接続された端末1121が、装置1111内部の各TCP変換部200内の状態テーブル212のsnd_num、all_snd_num、max_snd_bandwidth、rcv_num、all_rcv_num、max_rcv_bandwidth、each_rcv_bandwidth、each_rcv_num等の情報を読み取り、外部へ表示することで、TCPコネクション毎の帯域を表示したり、装置が収容しているTCPコネクション数を表示したり、対向装置のアクセス帯域やTCPコネクション数の情報を表示したりすることができる。以上の送信帯域制御部715の制御帯域を更新する方法により、過去の送信帯域と直近の再送帯域を用いて、再送率の変化率を用いて帯域を制御する方法と、装置間で交換したコネクション数の情報を用いて帯域を制御する方法と、を組みあわせて、帯域を制御することが可能となる。これにより、制御帯域が利用可能帯域付近で上下するように更新されるため、利用可能帯域を100近く使い切ることができる。図23には、2つのWAN2340、2330を中継する装置2303を含むシステム構成図を示す。装置2301と装置2302は、実施例1と同じ通信装置を用いる。装置2301は、端末2311~2313が接続されたLAN2310と、WAN2340に接続している。装置2302は、端末2321~2323が接続されたLAN2320と、WAN2330に接続している。通信装置以下、単に装置と記す2303は、WAN2340とWAN2330に接続している。装置2303は、図11に示すブロック図と同様な構成をとる。図11中のLANはWANに変わる。図24には、装置2303内のTCP変換部のブロック図を示す。図2の構成と比べると、装置2303では、LANTCPブロック203が、WANTCPブロック209-1に置き換わっている。さらに、第2の帯域テーブル213-1を持ち、帯域テーブル213を2つ備える。WANTCP処理部209-1の構成は、WANTCP処理部209と同様である。上述の制御帯域の更新処理が、WAN2340側とWAN2330側の双方で行われる。図25には、状態テーブル2401のフォーマットを表す。状態テーブル2401は、LAN管理用の情報がなくなり、WAN管理用の情報を2セット備える。状態テーブル2401は、TCPコネクション毎の状態を記録するためのn個のエントリ520と、装置2303のそれぞれのWANに対する送信アクセス回線帯域を記録するmax_snd_bandwidth539、539-1と、装置2303のそれぞれのWANに対する受信アクセス回線を記録するmax_rcv_bandwidth540、540-1と、装置2303がそれぞれのWANに対してデータ送信中のTCPコネクション数を記録するall_snd_num536、536-1と、装置2303がそれぞれのWANからデータ受信中のTCPコネクション数を記録するall_rcv_num538、538-1と、各TCP変換部200がそれぞれのWANに対してデータ送信中のTCPコネクション数を記録するsnd_num535、535-1と、各TCP変換部200がそれぞれのWANからデータ受信中のTCPコネクション数を記録するrcv_num537、537-1と、それぞれのWANに対する各TCPコネクションの最小帯域を記録するeach_min_bandwidth543、543-1とを有する。各エントリ520は、それぞれのWANの情報を含む。例えば、各エントリ520は、エントリが使用中であるか否かを記載するVLD501と、コネクションが確立中であるか否かを記載するconnect_state502と、WAN側の端末のIPアドレスを表すWIP504と、もう一つのWAN側の端末のIPアドレスを表すwIP503と、WAN側の端末のTCPポート番号を表すWport506と、もう一つのWAN側の端末のTCPポート番号を表すwport505と、それぞれのWAN側のTCP通信の状態を表すwan_state514、514-1と、それぞれのWAN側の受信バッファ管理用のポインタを表すwan_left_rbuf515、515-1、wan_left_recv516、516-1、wan_right_recv517、517-1と、それぞれのWAN側のウィンドウスケールオプションの値を表すwan_ws518、518-1と、それぞれのWAN側の平均RTTを表すwan_rtt519、519-1と、それぞれのWAN側の受信バッファから読み出され加工中のデータサイズを表すwan_lan529、529-1と、それぞれのWAN側の送信バッファ管理用のポインタを表すwan_left_send524、524-1、wan_right_send525、525-1、wan_right_sbuf526、526-1と、それぞれのWAN側の直近の再送率を表すrts_ratio530、530-1と、それぞれのWAN側の過去の再送率を表すold_rts_ratio531、531-1と、それぞれのWAN側の直近の送信帯域を表すsnd532、532-1と、それぞれのWAN側の過去の送信帯域を表すold_snd533、533-1と、それぞれのWAN側のさらにそのまた過去の送信帯域を表すold_old_snd534、534-1と、それぞれのWAN側の対向装置のデータ受信中のコネクション数を記録するeach_rcv_num541、541-1と、それぞれのWAN側の対向装置の受信アクセス回線帯域を記録するeach_rcv_bandwidth542、542-1とを有する。each_rcv_num541、541-1と、each_rcv_bandwidth542、542-1は、対向装置が通知してきた情報に基づいて更新される。パケット再送部704が、対向装置が送信してきたACKパケットのTCPオプションフィールドに記載された値などを用いて、TCPコネクション毎に更新する。max_snd_bandwidth539、539-1や、max_rcv_bandwidth540、540-1などは、端末1121経由などで手動で更新される。snd_num535、535-1や、rcv_num537、537-1は、情報交換部2402が、それぞれのWAN毎に交換する。情報交換部2402が、状態テーブル212のエントリ毎にバッファ蓄積量をチェックし、送信バッファにデータが蓄積されているエントリはデータ送信中のコネクション、受信バッファにデータが蓄積されているエントリはデータ受信中のコネクションと判断してコネクション数を積算していくことで、snd_num535、535-1や、rcv_num537、537-1を計算する。all_rcv_num538、538-1と、all_snd_num536、536-1は、装置2303内部の他の全てのTCP変換部200との間の情報交換に基づいて、更新される。TCP変換部200の情報交換部2402は、他の全てのTCP変換部200に対して、自分のsnd_num535、535-1や、rcv_num537、537-1を、それぞれのWAN毎に通知する。また、他の全てのTCP変換部200から通知されてきたsnd_num535、535-1や、rcv_num537、537-1の合計値をそれぞれのWAN毎に計算することで、all_rcv_num538、538-1と、all_snd_num536、536-1をそれぞれのWAN毎に得て、定期的に更新する。装置2303が、それぞれのWANに対して独立に動作し、それぞれのWANにおいて情報交換を独立に行うことで、実施例1と同様な機能を、2つのWANを中継する装置でも実現することができる。本実施例では、TCPコネクション毎に重み付けしてコネクション数を計算する一例を示す。図26には、本実施例の状態テーブル212-1のフォーマットを示す。状態テーブル212-1は、実施例1の構成に対して、各エントリに重みweight2601の情報が追加されている。重みweight2601は、例えば、各コネクションのバッファ蓄積量right_sbufとleft_sendの差と、right_recvとleft_rbufの差の合計に基づいて決めても良いし、ポート番号TCPポート番号に基づいて決めても良い。ポート番号に基づいて決める場合は、装置1111に接続された端末1121から、ポート番号毎に重み付けを手動で情報交換部230に指定しておいてもよい。情報交換部230は、エントリのポート番号LportやWportを見て、指定された重み付けをweight2601に記録する。情報交換部230は、コネクション数の合計値を計算する場合に、1コネクションに対して、該コネクションに対応するweight2601に記載された値を加算していく。例えば、weight2601が2の場合は該コネクション1本に対して2を加算し、0.5の場合は0.5を加算する。こうして求めたコネクション数の合計値snd_numを、他のTCP交換部200と交換する。また、送信帯域制御部715が、自装置の複数のTCP通信の各コネクションに対する帯域を求めるには、装置1111の送信アクセス回線帯域max_snd_bandwidth539を、装置1111のデータ送信中のTCPコネクション数all_snd_num536で除算し、得られた値を該当するTCP通信のweight2601と乗算することで求める。また、送信帯域制御部715は、対向装置の複数のTCP通信の各コネクションに対する帯域を求めるには、対向装置の受信アクセス回線帯域each_rcv_bandwidth542を、対向装置のデータ受信中のTCPコネクション数each_rcv_num541で除算し、得られた値を該当するTCP通信のweight2601と乗算することで求める。以上のように、重み付けweight2601を反映させたTCPコネクション数を用いることにより、TCPコネクション毎に重み付けしつつ、実施例1と同様な機能を実現することができる。