"複数のTCPストリームを用いて、データを送信する送信部と、前記送信部がデータ送信時に用いたTCPストリーム数と当該TCPストリーム数を用いたデータ送信時に使用した帯域幅の最大値とを対応付けて記憶する記憶部と、前記記憶部に記憶されたTCPストリーム数及び前記帯域幅の最大値と帯域幅の目標値とに基づき、前記送信部が新たなデータ送信に用いるTCPストリーム数を決定する決定部と、前記決定部が決定したTCPストリーム数でのデータ送信に使用する帯域幅が、前記記憶部に記憶された前記決定部が決定したTCPストリーム数に一致する前記TCPストリーム数に対応した帯域幅の最大値より大きい場合には、前記帯域幅の最大値を更新する制御部と、を備えるサーバ。前記制御部は、前記決定部が決定したTCPストリーム数に一致する前記TCPストリーム数が前記記憶部に記憶されていない場合には、前記決定部が決定したTCPストリーム数と前記決定部が決定したTCPストリーム数でのデータ送信に使用した帯域幅とを対応付けて前記記憶部に記憶する、請求項1記載のサーバ。前記送信部が送信するデータの量は、時間によって変動する請求項1に記載のサーバ。前記送信部が送信するデータは、ネットワークを介して接続されたクライアント端末が表示する画面情報を更新する情報である請求項3記載のサーバ。前記決定部は、前記記憶部に記憶された前記TCPストリーム数及び前記帯域幅の最大値に基づいて、前記TCPストリーム数についてTCPストリーム1つあたりの帯域幅を算出し、前記帯域幅の目標値と、前記1つあたりの帯域幅との比から、前記送信部が新たなデータ送信に用いるTCPストリーム数を決定する請求項1記載のサーバ。前記決定部は、前記帯域幅の目標値と、前記記憶部に記憶された、帯域幅の最大値とを比較し、前記帯域幅の目標値に最も近い帯域幅の最大値と対応付けて記憶されたTCPストリーム数を、前記送信部が新たなデータ送信に用いるTCPストリーム数と決定する請求項1記載のサーバ。前記決定部は、前記帯域幅の目標値と、前記1つあたりの帯域幅との比を四捨五入した値を、前記送信部が新たなデータ送信に用いるTCPストリーム数と決定する請求項5記載のサーバ。前記決定部は、前記帯域幅の目標値と、前記1つあたりの帯域幅との比を小数点以下切捨した値を、前記送信部が新たなデータ送信に用いるTCPストリーム数と決定する請求項5記載のサーバ。前記決定部は、前記帯域幅の目標値と、前記1つあたりの帯域幅との比を小数点以下切上した値を、前記送信部が新たなデータ送信に用いるTCPストリーム数と決定する請求項5記載のサーバ。前記記憶部に記憶された、前記送信部がデータ送信時に用いたTCPストリーム数と、当該TCPストリーム数を用いたデータ送信時に使用した帯域幅の最大値との組について、以前、前記制御部による前記更新を行った時刻から所定時間以上経過した場合に、当該所定時間以上経過した組を前記記憶部から削除する請求項1記載のサーバ。複数のTCPストリームを用いて、データを送信する送信部と、前記送信部がデータ送信時に用いたTCPストリーム数と当該TCPストリーム数を用いたデータ送信時に使用した帯域幅の最大値とを対応付けて記憶する記憶部とを備えるサーバを制御する方法であって、前記記憶部に記憶されたTCPストリーム数及び前記帯域幅の最大値と帯域幅の目標値とに基づき、前記送信部が新たにデータ送信に用いるTCPストリーム数を決定する決定ステップと、前記決定ステップで決定したTCPストリーム数でのデータ送信に使用する帯域幅が、前記記憶部に記憶された前記決定ステップで決定したTCPストリーム数に一致する前記TCPストリーム数に対応した帯域幅の最大値より大きい場合には、前記帯域幅の最大値を更新する制御ステップと、を備えるサーバ制御方法。複数のTCPストリームを用いて、データを送信する送信部と、前記送信部がデータ送信時に用いたTCPストリーム数と当該TCPストリーム数を用いたデータ送信時に使用した帯域幅の最大値とを対応付けて記憶する記憶部とを備えるサーバを制御するプログラムであって、前記記憶部に記憶されたTCPストリーム数及び前記帯域幅の最大値と帯域幅の目標値とに基づき、前記送信部が新たにデータ送信に用いるTCPストリーム数を決定する決定機能と、前記決定機能で決定したTCPストリーム数でのデータ送信に使用する帯域幅が、前記記憶部に記憶された前記決定ステップで決定したTCPストリーム数に一致する前記TCPストリーム数に対応した帯域幅の最大値より大きい場合には、前記帯域幅の最大値を更新する制御機能と、を備えるサーバ制御プログラム。本発明の一側面は、割り当てられた帯域を充足することができ、かつ、割り当てられた帯域を充足するために最小限必要なTCPストリーム数を算出可能なサーバを提供することを目的とする。本発明の一観点にかかるサーバは、複数のTCPストリームを用いて、データを送信する送信部と、前記送信部がデータ送信時に用いたTCPストリーム数と当該TCPストリーム数を用いたデータ送信時に使用した帯域幅の最大値とを対応付けて記憶する記憶部と、前記記憶部に記憶されたTCPストリーム数及び前記帯域幅の最大値と帯域幅の目標値とに基づき、前記送信部が新たなデータ送信に用いるTCPストリーム数を決定する決定部と、前記決定部が決定したTCPストリーム数でのデータ送信に使用する帯域幅が、前記記憶部に記憶された前記決定部が決定したTCPストリーム数に一致する前記TCPストリーム数に対応した帯域幅の最大値より大きい場合には、前記帯域幅の最大値を更新する制御部と、を備える。以下、本発明の実施の形態について、図面を参照しながら説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。<第1の実施形態>図1は、本発明の実施形態の画面転送システムの構成を示すブロック図である。本発明の実施形態の画面転送システムは、サーバとして機能する情報処理端末サーバ1と、クライアントとして機能する情報処理端末クライアント端末2とが、ネットワーク3を介して接続されている。本実施例では、ネットワーク3はIPネットワークであるとする。次に、サーバ1の構成を説明する。生成部100は、画面更新の生成を行う。生成部100は、画面領域全体の画面情報を保持するための記憶領域フレームバッファを有している。そして、生成部100は、サーバ1でのオペレーティングシステムやアプリケーションの実行状態に応じて記憶領域の状態を書き換え、最新の画面情報が記憶された状態を保持する。そして、生成部100は、定期的なタイミングで画面更新の出力を行う。ここで、画面更新とは、前回出力時点と現時点との画面情報の差分を表す情報である。図2に、画面更新の例を示す。画面更新は、画面領域全体における領域の位置を表す領域情報と、対応する領域の更新後の画像情報からなる。領域情報は、画面領域における画像情報の表示位置を示す数値である。図3は、領域情報を説明する図である。例えば図3に示すように、画面領域の左上角を0,0、右下角をWidth,Heightとしたときの、表示位置の左上座標Left,Topと右下座標Right,Bottomからなる矩形情報で示される。画像情報は、領域情報に対応する領域の更新後のビットマップデータ矩形の各画素におけるRGB3色の値などである。生成部100は、最新の画面情報に加えて前回出力時の画面情報を保持しており、定期的なタイミングでこれらの差分を抽出し、これを画面更新として圧縮部101へ出力する。圧縮部101は、画面更新の圧縮処理を行う。画面更新に含まれる画像情報に対し、ZLIBやJPEG等の圧縮処理を施す。送信部102は、画面更新の送信処理を行う。入力された画面更新をネットワーク3上において伝送可能な形式に変換して、クライアント端末2に対し送信する。伝送プロトコルにはTCP/IPを使用する。また、送信部102は、クライアント端末2との間でTCPストリームを複数本確立する。送信部102は、画面更新の送信の必要が生じると、画面更新を適当なサイズに分割した上で、各分割に対し順序を表す番号を付与し、各ストリームを用いて並列的に送信する。この際、後述する決定部105が決定する数のTCPストリームを用いて送信処理を行う。使用するTCPストリームの数は、決定部105の決定により動的に変更される。尚、TCPストリームの数の初期値は、適当な値を外部から設定する。また送信部102は、自身の使用帯域データ送信レートを算出することが可能である。例えば最近の5秒間における使用帯域を算出し、外部からの要求に応じて出力することができる。判断部103は、現在、送信部102が用いているTCPストリーム数に対する使用帯域の量が、記憶部104に記憶された、当該TCPストリーム数に対応づけて記憶された使用帯域の量を上回るか否かを判断する。判断部103は、上回ると判断した場合に、記憶部104に記憶された使用帯域の量を、現在、送信部102が用いている使用帯域の量に上書き更新する。また記憶部104に記憶された情報が一定時間以上経過した古い情報であると判断した場合に、当該の情報を削除するよう指示を出す。判断部103は、任意のタイミング又は定期的に、上述の判断及び判断に応じた記憶部104の更新を行う。記憶部104は、送信部102が用いたTCPストリーム数と、当該のTCPストリーム数を用いたときの使用帯域の最大値の組を記憶する。併せて、使用帯域の最大値を記憶した時刻を記憶する。使用帯域の最大値は、判断部103の判断処理毎に、更新される。後述するように、送信部102が用いるTCPストリーム数は、決定部105の決定により変動する。記憶部104は、TCPストリーム数が変動する毎に、当該TCPストリーム数を用いたときの仕用帯域の値とともに、記憶内容を更新する。決定部105は、記憶部104に記憶されたTCPストリーム数と使用帯域の最大値の組を参照して、送信部102が用いるTCPストリーム数を決定する。そして、決定したTCPストリーム数を送信部102に通知し、当該TCPストリーム数で送信処理を行うよう指示する。ここで、決定部105は、送信部102が用いるTCPストリーム数として、最適なTCPストリーム数と判断するTCPストリーム数を決定する。このTCPストリーム数の決定方法については、後述する。ここで、最適なTCPストリーム数とは、割り当てられた帯域を満たすために必要であり、かつ最低限必要となるTCPストリーム数のことである。送信部102は、決定部105が決定した最適なTCPストリーム数のTCPストリームを用いて前述した送信処理を行う。尚、前述したとおり、送信部102が、決定部105が決定したTCPストリーム数最適なTCPストリーム数を用いて、送信処理を実行した場合の、使用帯域幅を測定し、測定結果が、記憶部104に記憶された使用帯域幅を上回った場合に、記憶部104に記憶された使用帯域幅の最大値を更新する。次に、クライアント端末2の構成を説明する。受信部201は、ネットワーク3を介してサーバ1から画面更新を受信する。伸張部202は、画面更新に含まれる圧縮された画像情報に対して伸張処理を施す。表示部203は、画面領域全体の画面情報を格納するための記憶領域フレームバッファを有しており、画面更新を受け取ると、領域情報が示す記憶領域上の情報を画像情報で上書き更新する。ユーザに対し画面情報を視覚的に提示する。≪画面転送システムより行われる処理≫次に、本実施形態に係る画面転送システムにより行われる処理について、図面を適宜参照しながら説明する。≪画面転送の開始直後の動作≫まず、画面転送の開始直後の動作を説明する。画面転送の実行の開始は、サーバ1のユーザから指示される。ユーザはGUI等を通じて、サーバ1に接続先のクライアント端末2のIPアドレスを入力する。入力された情報は送信部102へ通知される。送信部102は当該のIPアドレスの端末との間で、既定の数のTCPストリームの確立を行う。以下では既定の数として32を使用する。さらに送信部102は、受信部201との間で、確立したTCPストリームのうち、いくつのTCPストリームを使って画面更新の送信を行うかTCPストリーム数の初期値をネゴシエーションする。ネゴシエーションは任意の方法に従ってよい。本実施例ではネゴシエーションの結果、初期のTCPストリーム数として1を固定的に用いるものとする。以降、送信部102が使用するTCPストリーム数は、任意のタイミングで変更可能である。TCPストリーム数は送信部102において保持される。≪画面更新の送信~表示までの動作≫次に、サーバ1が、クライアント端末2に対して、画面更新を送ってから、クライアント端末2が、画面更新を表示するまでの動作を説明する。画面転送の実行が開始されると、生成部100は、サーバ1のオペレーティングやアプリケーションの実行状態に応じてフレームバッファの状態を更新する。さらに、生成部100は、定期的なタイミング例えば50ミリ秒ごとで、圧縮部101に対し、現在圧縮処理が実行可能か否かを問い合わせる。実行可能でない場合は何もしない。実行可能である場合は、以下に示す画面更新の生成処理を行う。生成部100は、前回画面更新取得を行った際のフレームバッファの状態を別途保持している。この保持のための記憶領域を画面更新取得用バッファと呼ぶ。生成部100は、フレームバッファと画面更新取得用バッファの画面情報を比較し、差分がある部分の領域情報と、その領域の画像情報を取り出す。そして領域情報と画像情報を用いて画面更新を生成する。画面更新の例は図2で既に示した通りである。画面更新の作成が完了すると、生成部100は画面更新取得用バッファの内容をフレームバッファの内容で上書き更新し、取得した画面更新を圧縮部101に渡す。圧縮部101は生成部100から画面更新を受け取ると、その画面更新に含まれる画像情報に圧縮処理を施す。圧縮部101は、圧縮処理が完了すると、送信部102に対し、現在送信処理が実行可能か否かを問い合わせる。実行可能でない場合はしばらく待機した後に再度問い合わせる。実行可能である場合は、圧縮後の画面更新を送信部102に渡し送信を依頼する。また圧縮部101は、生成部100から圧縮処理が実行可能か否かの問い合わせを受けると、圧縮処理の実行中であれば不可と回答し、そうでなければ可と回答する。送信部102は画面更新を受け取ると送信処理を施す。図4は、送信部102の送信処理を説明する図である。送信処理は、送信部102が保持するTCPストリーム数の値に基づいて行われる。始めに送信部102は、図4に示すように、画面更新のデータを任意のサイズ例えば1000バイトに分割する。さらに各々の分割に順序番号を付与する。順序番号とは、受信部201において各分割を結合して元の画面更新のデータを得るために必要な情報であり、例えば1から始まる分割の通し番号や、あるいはデータ先頭からのオフセットのバイト数などである。順序番号が付与された後で、各分割は複数のTCPストリームに振り分ける。図4は、TCPストリーム数が2の場合の例を示している。奇数番目の分割は1番目のストリームへ、偶数番目の分割は2番目のストリームへ振り分けられている。各ストリームは、振り分けられた各分割にTCP/IPの各ヘッダを付与した上でクライアント端末2に向けてネットワーク3へ送出する。また送信部102は、使用帯域単位:Mbpsを算出し保持する。算出は任意の方法に従って行われる。例えば、過去5秒間に送出されたデータサイズを保持しておき、これを5秒で割った値を使用帯域とする。送信部102は、判断部103から要求を受け取るごとに、現在の使用帯域、および現在用いているTCPストリーム数を回答する。また送信部102は、圧縮部101から送信処理が実行可能か否かの問い合わせを受けると、送信処理の実行中であれば不可と回答し、そうでなければ可と回答する。クライアント端末2の受信部201はサーバ1から複数のTCPストリームを通じて各分割を受信する。受信部201は受信データからTCP/IPの各ヘッダを除去し、さらに付与された順序番号に基づいて結合を行い、画面更新のデータを再構成する。順序番号は除去される。受信部201は再構成された画面更新を伸張部202に渡し、伸張を依頼する。伸張部202は画面更新を受け取るとその画面更新に含まれる画像情報に伸張処理を施す。伸張部202は伸張処置が完了すると、画面更新を表示部203に渡し、表示を依頼する。表示部203は画面領域全体の画面情報を保持する記憶領域を有しており、画面更新の領域情報が示す領域の情報を、伸張後の画像情報で上書き更新する。表示部203の状態はユーザに視覚的に提示される。以上、画面更新の生成から表示までの処理の流れについて説明した。≪判断処理≫次に、判断部103の判断処理を説明する。判断部103は、任意のタイミング例えば5秒間隔で判断処理を開始する。図6は、判断部103の判断処理の流れを説明する図である。始めに判断部103は、記憶部104から全てのエントリの取得を行う。記憶部104は、図5に示すテーブルを保持している。このテーブルは、TCPストリーム数Nと使用帯域の最大値、直近に値の更新を行った時刻を記憶する。次に判断部103は、現在時刻を取得し、各エントリのタイムスタンプの値との比較を行う。もし現在時刻よりも規定時間例えば30秒以上が経過したタイムスタンプの値が存在すれば、そのようなエントリは古すぎると判断し、記憶部104から削除を行うステップS1001。次に判断部103は、送信部102に対し、現在使用しているTCPストリーム数の値と、現在の使用帯域の値の組の取得を要求する。判断部103は、値を得ると、次に、判断部103は、記憶部104から得たエントリの中に、送信部102から得たTCPストリーム数と等しい値を持つエントリが存在するかを調べるステップS1002。存在しなければ、判断部103は記憶部104に、当該のTCPストリーム数、使用帯域、現在時刻を記憶させるステップS1003。一方、送信部102から得たTCPストリーム数と等しい値を持つエントリが存在していれば、当該のエントリの、使用帯域の最大値とタイムスタンプの値の組み合わせを判断部103に出力する。存在しなければ、その旨を判断部103に通知する。判断部103は、記憶部104のエントリから、対応する使用帯域の最大値とタイムスタンプの値の組み合わせを得ることができた場合、送信部102から得た使用帯域と、記憶部104から得た使用帯域とを比較するステップS1003。このとき、送信部102から得た使用帯域が、記憶部104から得た使用帯域を上回っていれば、記憶部104のエントリの使用帯域の値を更新する。一方、上回っていなければ、エントリの使用帯域の値を更新しない。以上の処理が、時間の経過とともに繰り返し実行され、記憶部104には、TCPストリーム数と使用帯域の最大値の組み合わせとが、更新を行った時刻とともに記憶される。さらに規定時間以上経過したエントリは適宜消去されることになる。≪決定処理≫次に、決定部105の決定処理を説明する。決定部105は、任意のタイミング例えば5秒間隔で決定処理を開始する。あるいは、判断部103の判断処理が終了するごとに判断部103が決定部105に決定処理の開始を依頼してもよい。決定部105は内部に、使用帯域の目標値を有している。この値は決定部105に静的に埋め込まれた値であってもよいし、GUIを通じてユーザが指定する値であってもよい。また外部から適宜異なる値に書き換えられるものであってもよい。決定部105は、以下に述べる手続きによって、送信部102が行うデータ送信の使用帯域がこの目標値にもっとも近くなるよう、使用すべき最適なTCPストリーム数の値を決定する。以降、説明のため、決定部105が有する使用帯域の目標値をBsと書く。また記憶部104が有する情報のうち、TCPストリーム数をN、使用帯域幅の最大値をBmと書く。決定部105は記憶部104から全てのエントリの取得を要求する。得られた情報から、決定部105は始めに、目標値Bsを超えるようなBmのうちで最も値が小さいものを選択する。そのようなBmをBmax、Bmaxと対応付けて記憶されたTCPストリーム数をNmaxとして説明する。もし、Bsを超えるようなBmが存在しない場合は、最もBmの値が大きいものをBmax、そのときのTCPストリーム数をNmaxとする。次に、決定部105は、BmaxとNmaxを用いて、使用すべき最適なTCPストリーム数の値をRoundBs÷Bmax×Nmaxと算出する。ここでRoundは整数値への四捨五入を行う関数である。つまり、TCPストリーム1本あたりが使用する帯域幅を単純にBmax÷Nmaxと見なした上で、目標とする使用帯域BsをBmax÷Nmaxで割ることで、最適なTCPストリームの本数を算出する。なお、BmaxおよびNmaxの選択は上述のやり方に限らない。例えば、Bsを超えないBmのうちで最も値が大きいものをBmaxとして選択してもよい。あるいはBsとBmの差の絶対値が最小となるものを選択してもよい。このように、目標値Bsに近いBmをBmaxとして選んで最適なTCPストリーム数を決定することで、以降の使用帯域をBsにより近付けるという効果が期待できる。この効果は、使用するTCPストリーム数と、このとき利用可能な帯域の上限値とが非線形に関係する場合において顕著である。また、最適なTCPストリーム数の値は上記以外の算出方法に依ってもよい。例えば四捨五入を行うRound関数の代わりに、小数点以下を切り捨てるFloor関数や、切り上げを行うCeil関数を用いてもよい。小数点以下を切り捨てる場合は、実際の使用帯域がBsを下回るであろうTCPストリーム数を選択することになる。このような算出方法は、特に、同じ通信路を共有する他のアプリケーションの動作に影響をできるだけ及ぼしたくない状況において効果的である。また、小数点以下を切り上げる場合は、実際の使用帯域がBsを上回るであろうTCPストリーム数を選択することになる。このような算出方法は、特に、所定の画面転送の品質描画コマ数などをできるだけ保証したい状況において効果的である。また、以上の例では、TCPストリーム1本あたりが使用する帯域幅を算出してから最適なTCPストリーム数を決定していたが、必ずしもこのやり方に限る必要はない。例えば、決定部105は、記憶部104から得たエントリを調べて、Bmの値がちょうどBsとなるエントリが存在した場合に、そのようなBmに対するストリーム数Nの値を最適なTCPストリーム数として決定してもよい。あるいは、閾値Thを有した上で、Bmの値とBsとの差がTh以内となるようなエントリが存在する場合には、そのようなBmに対するストリーム数Nの値を最適なTCPストリーム数として決定してもよい。決定部105は決定した値を送信部102に出力し、TCPストリーム数の適用を依頼する。送信部102は指定されたTCPストリーム数を反映させる。≪判断部103の判断処理と決定部105の決定処理の具体例≫次に、決定部105が、最適なTCPストリーム数を決定する際に実行する計算例を示す。以下では、画面転送開始から、時刻100000、105000、110000、115000、120000において、判断部103の処理によって記憶部105が更新され、更新された情報をもとに決定部105が決定処理を行う例を説明する。図7~図12は、時間の経過とともに記憶部105が更新される様子を示す第1~第6の図である。ここで、決定部105に格納された目標値Bsの値は25Mbpsであるとする。画面転送の開始直後は、図7に示すように、記憶部104に何も情報が記憶されていない状態とする。その後、時刻100000に判断部103において判断処理が実行され、結果、図8に示すように記憶部104の状態が更新されたと仮定する。さらにその後、決定部105において決定処理が開始されたとする。このとき、決定部105は、Bmaxとして8Mbps、Nmaxとして1を選択する。ここから、最適なTCPストリーム数をRound25÷8×1=Round3.125=3と算出する。送信部102にTCPストリーム数として3が通知され、以降、送信部102は3本のTCPストリームを用いて画面更新の送信を行うようにする。次に、時刻105000に、再び判断部103において判断処理が実行されたとする。送信部102から得られたNとBmの組み合わせはN=3とBm=9Mbpsであったと仮定する。この情報が記憶部104に記憶された直後の様子を図9にしめす。さらにその後、決定部105において決定処理が開始されたとする。決定部105はBmax=9Mbps、Nmax=3を選択する。そして最適なTCPストリーム数としてRound25÷9×3=Round8.333=8と決定する。以降、送信部102は8本のTCPストリームを用いる。次に、時刻110000に、再び判断部103において判断処理が実行されたとする。送信部102から得られたNとBmの組み合わせはN=8とBm=8Mbpsであったと仮定する。この情報が記憶部104に記憶された直後の様子を図10にしめす。さらにその後、決定部105において決定処理が開始されたとする。決定部105はBmax=9Mbps、Nmax=3を選択する。Bsを超えるBmが存在しない場合、最もBmの値が大きいものをBmaxとすることに注意。最適なTCPストリーム数は引き続き8が決定される。次に、時刻115000に、再び判断部103において判断処理が実行されたとする。送信部102から得られたNとBmの組み合わせはN=8とBm=28Mbpsであったと仮定する。この情報が記憶部104に記憶された直後の様子を図11にしめす。N=8に対するBmの値がより大きな28Mbpsで更新されていることに注意。さらにその後、決定部105において決定処理が開始されたとする。決定部105はBmax=28Mbps、Nmax=8を選択する。そして最適なTCPストリーム数としてRound25÷28×8=Round7.143=7と決定する。以降、送信部102は7本のTCPストリームを用いる。次に、時刻120000に、再び判断部103において判断処理が実行されたとする。送信部102から得られたNとBmの組み合わせはN=7とBm=26Mbpsであったと仮定する。この情報が記憶部104に記憶された直後の様子を図12にしめす。さらにその後、決定部105において決定処理が開始されたとする。決定部105はBmax=26Mbps、Nmax=7を選択する。Bsを超えるBmが存在する場合、Bmのうちで最も値が小さいものをBmaxとすることに注意。そして最適なTCPストリーム数としてRound25÷26×7=Round6.731=7と決定する。以降、送信部102は7本のTCPストリームを用いる。以降、同様の手続きを繰り返す。この判断部103の判断処理を時間の経過とともに、繰り返し実行することで、記憶部104が記憶するTCPストリーム数N毎に、送信部102が用いた使用帯域の最大値Bmを更新しつづけることができる。例えば、図10において、TCPストリーム数が8の場合、使用帯域の最大値を8から28に更新している。その結果、決定部105は、上記決定処理を、TCPストリーム数N毎に、過去、送信部102が用いた使用帯域の最大値をもとに、決定処理を行うことができる。以上のように本実施の形態では、あるTCPストリーム数を用いたときの使用帯域の最大値を記憶し、これを利用して最適なTCPストリーム数を決定する。画面転送のようなデータ伝送では、画面情報に変化があったときにのみ送信すべきデータが発生する。本実施の形態により、過去用いた使用帯域の最大値を用いてTCPストリーム数を決定するため、送信すべきデータの発生が少ない期間に測定した使用帯域の値を除外して最適なTCPストリーム数の決定が行われる。これにより、TCPストリーム数を適切に決定することが可能になる。さらに、本実施例では、最適なTCPストリーム数を決定する手順を繰り返し実行し、送信に用いるTCPストリーム数を更新している。これにより、実際の使用帯域を目標値に近付けることを可能にしている。また、画面転送の実行の最中に使用帯域の目標値が変化した場合であっても、TCPストリーム数を変化に追従して調整することが可能になる。さらに、本実施例では、TCPストリーム1本あたりが使用する帯域幅を算出しこれに基づいてTCPストリーム数を決定している。これにより、TCPストリーム数を1ずつ変化させる等といった方法と異なり、実際の使用帯域が目標値の近くに到達するまでの時間を短縮することを可能にしている。さらに、本実施例では、規定時間以上が経過したエントリを削除するという手続きを行っている。これにより、使用帯域の古過ぎる測定結果を、最適なTCPストリーム数の決定材料から除外できる効果が期待できる。これは、画面更新の発生パターンが時々刻々と変化する画面転送において特に効果的である。なお、本実施例では、TCPストリーム数の初期値を決定する際に、1という値を固定的に使用したが、これに限らず、様々な方法で決定することができる。例えば、前回に画面転送を実行したときに使用したTCPストリーム数をファイル等に保存しておき、実行開始時に読み出して使用してよい。最適なTCPストリーム数の値は通信路の状況に応じて異なるが、前回の画面転送の実行時の通信路の状況と今回の状況との間に極端な差異がある可能性は小さい。よってこのようにして得たTCPストリーム数による使用帯域は目標値に近いことが期待される。したがって、使用帯域が目標値の近くに到達するまでの時間を短縮することが可能となる。またさらに、前回のTCPストリーム数をファイルに保存する際に、そのときの時刻や曜日など時間に関する情報を併せて保存し、読み出しの際にはこの情報が一致する場合に値を採用するという判断を加えてもよい。一般に、同じ時刻や曜日における通信路の状況は似通っている可能性が高い。したがって、使用帯域が目標値の近くに到達するまでの時間をさらに短縮することが可能となる。尚、以上の例では、画面情報を送出する画面転送システムを実施形態として示したが、必ずしも送出される情報の種類は画面情報に限るものではない。送出するデータ量が時間によって変動する特性をもつ任意の情報について本発明を適用することができる。たとえば動画像データを送出するシステムであって、符号化後のデータ量送出するデータ量が動きの大きさなど動画像の内容によって時間的に変動する場合であっても本発明を適用できる。あるいは音声データを送出するシステムであって、符号化後のデータ量が発話の有無や頻度など音声の内容によって時間的に変動する場合であっても本発明を適用できる。また、サーバ1は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現することが可能である。すなわち、生成部100、圧縮部101、送信部102、判定部103、記憶部104、及び決定部105は、上記のコンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより実現することができる。このとき、サーバ1は、上記のプログラムをコンピュータ装置にあらかじめインストールすることで実現してもよいし、CD-ROMなどの記憶媒体に記憶して、あるいはネットワークを介して上記のプログラムを配布して、このプログラムをコンピュータ装置に適宜インストールすることで実現してもよい。また、記憶部104は、上記のコンピュータ装置に内蔵あるいは外付けされたメモリ、ハードディスクもしくはCD-R、CD-RW、DVD-RAM、DVD-Rなどの記憶媒体などを適宜利用して実現することができる。以上説明した実施形態によれば、最適なTCPストリーム数を決定することができることである。本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。"