説明

サーバ、サーバ制御方法、サーバ制御プログラム

【課題】画面転送システムにおいて、最適なTCPストリーム数を決定可能とする。
【解決手段】サーバ1は、複数のTCPストリームを用いて、データを送信する送信部102と、前記送信部がデータ送信時に用いたTCPストリーム数と当該TCPストリーム数を用いたデータ送信時に使用した帯域幅の最大値とを対応付けて記憶する記憶部104と、前記記憶部に記憶されたTCPストリーム数及び前記帯域幅の最大値と帯域幅の目標値とに基づき、前記送信部が新たなデータ送信に用いるTCPストリーム数を決定する決定部105と、前記決定部が決定したTCPストリーム数でのデータ送信に使用する帯域幅が、前記記憶部に記憶された前記決定部が決定したTCPストリーム数に一致する前記TCPストリーム数に対応した帯域幅の最大値より大きい場合には、前記帯域幅の最大値を更新する制御部と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、サーバに関する。
【背景技術】
【0002】
ネットワークを介して接続されたサーバからクライアント端末に対してサーバの画面の
情報をリアルタイムで配信する「画面転送システム」がある。本システムは、例えば遠隔
監視システムなどへの応用が期待される。
【0003】
画面転送システムでは、伝送プロトコルにTCP/IPを利用するものが多い。伝送プ
ロトコルにTCP/IPを用いてデータを送信する場合、サーバは、TCP層において、
TCPストリームを用いてデータの伝送レート(通信帯域幅)の制御を行いながら、IP
層にデータを渡し、IP層がネットワークにデータを送出する。
【0004】
従来から、サーバとクライアント端末との間でTCPストリームを複数本確立し、画面
の情報を複数のデータに分割して、分割したデータを並列的に伝送するという手法が用い
られることがある。複数のTCPストリームを用いると、データの伝送レート(通信帯域
幅)を向上することができる。
【0005】
また、画面転送システムにおいては、サーバが保持する画面領域において描画状態に変
化が生じるごとに、その差分となる情報(画面更新と称する。)のみを変化が生じた領域
の情報とともに配信する場合がある。
【0006】
複数のTCPストリームで画面更新を伝送する画面転送システムにおいて、利用可能な
通信帯域幅が割り当てられたときに、最適なTCPストリーム数を決定することが求めら
れる。最適なTCPストリーム数とは、そのTCPストリーム数であれば、割り当てられ
た通信帯域幅を充足することができ、かつ、割り当てられた帯域を満たすために最小限必
要なTCPストリーム数のことである。このように、TCPストリーム数を、最適な数と
することで、所定の画面転送の品質(描画コマ数など)を提供でき、かつ、同じ通信路を
共有する他のアプリケーションの動作に影響を及ばさないことができる。
【0007】
通信帯域幅は、TCPストリーム数に応じて上限が決まっている。したがって、TCP
ストリーム数に応じた通信帯域幅の上限を求め、その上限が、割り当てられた通信帯域幅
を最初に上回るTCPストリーム数を最適なTCPストリーム数とすることができる。
【0008】
従来、複数のTCPストリームで画面更新を伝送する画面転送システムにおいては、上
述した最適なTCPストリーム数を決定する方法が開示されていない。
【0009】
特に、画面更新は、画面変化に応じて、データ量が変動する。したがって、ある数のT
CPストリームを用いて、画面更新を送信した場合に、通信帯域を測定した場合に、測定
した通信帯域幅が、そのTCPストリーム数における上限値であるのか、上限値を下回る
値なのかを判断することができない。特に、画面更新のような、データ変動量が大きいデ
ータを伝送する場合、測定した通信帯域は、TCPストリームの数の上限値と大きく離れ
た値の可能性もある。
【0010】
したがって、複数のTCPストリームで画面更新を伝送する画面行使システムにおいて
、TCPストリーム数に応じた通信帯域幅の上限値を算出することが困難であった。その
結果、最適なTCPストリーム数を求めることも困難であった。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2010−56990号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
本発明の一側面は、割り当てられた帯域を充足することができ、かつ、割り当てられた
帯域を充足するために最小限必要なTCPストリーム数を算出可能なサーバを提供するこ
とを目的とする。
【課題を解決するための手段】
【0013】
本発明の一観点にかかるサーバは、複数のTCPストリームを用いて、データを送信す
る送信部と、前記送信部がデータ送信時に用いたTCPストリーム数と当該TCPストリ
ーム数を用いたデータ送信時に使用した帯域幅の最大値とを対応付けて記憶する記憶部と
、前記記憶部に記憶されたTCPストリーム数及び前記帯域幅の最大値と帯域幅の目標値
とに基づき、前記送信部が新たなデータ送信に用いるTCPストリーム数を決定する決定
部と、前記決定部が決定したTCPストリーム数でのデータ送信に使用する帯域幅が、前記
記憶部に記憶された前記決定部が決定したTCPストリーム数に一致する前記TCPスト
リーム数に対応した帯域幅の最大値より大きい場合には、前記帯域幅の最大値を更新する
制御部と、を備える。
【図面の簡単な説明】
【0014】
【図1】本発明の実施形態にかかる画面転送システムを示すブロック図である。
【図2】画面更新の一例を示す図である。
【図3】領域情報を説明する図である。
【図4】画面転送システムのサーバの送信処理を説明する図。
【図5】サーバ1の記憶部105が保持する情報の例を示す図。
【図6】サーバ1の判断部103の判断処理の流れを説明する図である。
【図7】記憶部105が更新される様子を示す第1の図。
【図8】記憶部105が更新される様子を示す第2の図。
【図9】記憶部105が更新される様子を示す第3の図。
【図10】記憶部105が更新される様子を示す第4の図。
【図11】記憶部105が更新される様子を示す第5の図。
【図12】記憶部105が更新される様子を示す第6の図。
【発明を実施するための形態】
【0015】
以下、本発明の実施の形態について、図面を参照しながら説明する。尚、各図において
同一箇所については同一の符号を付すとともに、重複した説明は省略する。
【0016】
<第1の実施形態>
図1は、本発明の実施形態の画面転送システムの構成を示すブロック図である。
【0017】
本発明の実施形態の画面転送システムは、サーバとして機能する情報処理端末(サーバ
1)と、クライアントとして機能する情報処理端末(クライアント端末2)とが、ネット
ワーク3を介して接続されている。本実施例では、ネットワーク3はIPネットワークで
あるとする。
【0018】
次に、サーバ1の構成を説明する。
【0019】
生成部100は、画面更新の生成を行う。生成部100は、画面領域全体の画面情報を
保持するための記憶領域(フレームバッファ)を有している。そして、生成部100は、
サーバ1でのオペレーティングシステムやアプリケーションの実行状態に応じて記憶領域
の状態を書き換え、最新の画面情報が記憶された状態を保持する。そして、生成部100
は、定期的なタイミングで画面更新の出力を行う。ここで、画面更新とは、前回出力時点
と現時点との画面情報の差分を表す情報である。図2に、画面更新の例を示す。画面更新
は、画面領域全体における領域の位置を表す領域情報と、対応する領域の更新後の画像情
報からなる。領域情報は、画面領域における画像情報の表示位置を示す数値である。図3
は、領域情報を説明する図である。例えば図3に示すように、画面領域の左上角を(0,
0)、右下角を(Width,Height)としたときの、表示位置の左上座標(Le
ft,Top)と右下座標(Right,Bottom)からなる矩形情報で示される。
画像情報は、領域情報に対応する領域の更新後のビットマップデータ(矩形の各画素にお
けるRGB3色の値など)である。生成部100は、最新の画面情報に加えて前回出力時
の画面情報を保持しており、定期的なタイミングでこれらの差分を抽出し、これを画面更
新として圧縮部101へ出力する。
【0020】
圧縮部101は、画面更新の圧縮処理を行う。画面更新に含まれる画像情報に対し、Z
LIBやJPEG等の圧縮処理を施す。
【0021】
送信部102は、画面更新の送信処理を行う。入力された画面更新をネットワーク3上
において伝送可能な形式に変換して、クライアント端末2に対し送信する。伝送プロトコ
ルにはTCP/IPを使用する。また、送信部102は、クライアント端末2との間でT
CPストリームを複数本確立する。送信部102は、画面更新の送信の必要が生じると、
画面更新を適当なサイズに分割した上で、各分割に対し順序を表す番号を付与し、各スト
リームを用いて並列的に送信する。この際、後述する決定部105が決定する数のTCP
ストリームを用いて送信処理を行う。使用するTCPストリームの数は、決定部105の
決定により動的に変更される。尚、TCPストリームの数の初期値は、適当な値を外部か
ら設定する。また送信部102は、自身の使用帯域(データ送信レート)を算出すること
が可能である。例えば最近の5秒間における使用帯域を算出し、外部からの要求に応じて
出力することができる。
【0022】
判断部103は、現在、送信部102が用いているTCPストリーム数に対する使用帯
域の量が、記憶部104に記憶された、当該TCPストリーム数に対応づけて記憶された
使用帯域の量を上回るか否かを判断する。判断部103は、上回ると判断した場合に、記
憶部104に記憶された使用帯域の量を、現在、送信部102が用いている使用帯域の量
に上書き更新する。また記憶部104に記憶された情報が一定時間以上経過した古い情報
であると判断した場合に、当該の情報を削除するよう指示を出す。判断部103は、任意
のタイミング又は定期的に、上述の判断及び判断に応じた記憶部104の更新を行う。
【0023】
記憶部104は、送信部102が用いたTCPストリーム数と、当該のTCPストリー
ム数を用いたときの使用帯域の最大値の組を記憶する。併せて、使用帯域の最大値を記憶
した時刻を記憶する。使用帯域の最大値は、判断部103の判断処理毎に、更新される。
後述するように、送信部102が用いるTCPストリーム数は、決定部105の決定によ
り変動する。記憶部104は、TCPストリーム数が変動する毎に、当該TCPストリー
ム数を用いたときの仕用帯域の値とともに、記憶内容を更新する。
【0024】
決定部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に記憶された使用帯域幅の最大値を更新
する。
【0025】
次に、クライアント端末2の構成を説明する。
【0026】
受信部201は、ネットワーク3を介してサーバ1から画面更新を受信する。
【0027】
伸張部202は、画面更新に含まれる圧縮された画像情報に対して伸張処理を施す。
【0028】
表示部203は、画面領域全体の画面情報を格納するための記憶領域(フレームバッフ
ァ)を有しており、画面更新を受け取ると、領域情報が示す記憶領域上の情報を画像情報
で上書き更新する。ユーザに対し画面情報を視覚的に提示する。
【0029】
≪画面転送システムより行われる処理≫
次に、本実施形態に係る画面転送システムにより行われる処理について、図面を適宜参
照しながら説明する。
【0030】
≪画面転送の開始直後の動作≫
まず、画面転送の開始直後の動作を説明する。
【0031】
画面転送の実行の開始は、サーバ1のユーザから指示される。ユーザはGUI等を通じ
て、サーバ1に接続先のクライアント端末2のIPアドレスを入力する。入力された情報
は送信部102へ通知される。送信部102は当該のIPアドレスの端末との間で、既定
の数のTCPストリームの確立を行う。以下では既定の数として32を使用する。さらに
送信部102は、受信部201との間で、確立したTCPストリームのうち、いくつのT
CPストリームを使って画面更新の送信を行うか(TCPストリーム数の初期値)をネゴ
シエーションする。ネゴシエーションは任意の方法に従ってよい。本実施例ではネゴシエ
ーションの結果、初期のTCPストリーム数として1を固定的に用いるものとする。以降
、送信部102が使用するTCPストリーム数は、任意のタイミングで変更可能である。
TCPストリーム数は送信部102において保持される。
【0032】
≪画面更新の送信〜表示までの動作≫
次に、サーバ1が、クライアント端末2に対して、画面更新を送ってから、クライアン
ト端末2が、画面更新を表示するまでの動作を説明する。
【0033】
画面転送の実行が開始されると、生成部100は、サーバ1のオペレーティングやアプ
リケーションの実行状態に応じてフレームバッファの状態を更新する。さらに、生成部1
00は、定期的なタイミング(例えば50ミリ秒ごと)で、圧縮部101に対し、現在圧
縮処理が実行可能か否かを問い合わせる。実行可能でない場合は何もしない。実行可能で
ある場合は、以下に示す画面更新の生成処理を行う。生成部100は、前回画面更新取得
を行った際のフレームバッファの状態を別途保持している。この保持のための記憶領域を
画面更新取得用バッファと呼ぶ。生成部100は、フレームバッファと画面更新取得用バ
ッファの画面情報を比較し、差分がある部分の領域情報と、その領域の画像情報を取り出
す。そして領域情報と画像情報を用いて画面更新を生成する。画面更新の例は図2で既に
示した通りである。画面更新の作成が完了すると、生成部100は画面更新取得用バッフ
ァの内容をフレームバッファの内容で上書き更新し、取得した画面更新を圧縮部101に
渡す。
【0034】
圧縮部101は生成部100から画面更新を受け取ると、その画面更新に含まれる画像
情報に圧縮処理を施す。圧縮部101は、圧縮処理が完了すると、送信部102に対し、
現在送信処理が実行可能か否かを問い合わせる。実行可能でない場合はしばらく待機した
後に再度問い合わせる。実行可能である場合は、圧縮後の画面更新を送信部102に渡し
送信を依頼する。
【0035】
また圧縮部101は、生成部100から圧縮処理が実行可能か否かの問い合わせを受け
ると、圧縮処理の実行中であれば不可と回答し、そうでなければ可と回答する。
【0036】
送信部102は画面更新を受け取ると送信処理を施す。図4は、送信部102の送信処
理を説明する図である。送信処理は、送信部102が保持するTCPストリーム数の値に
基づいて行われる。始めに送信部102は、図4に示すように、画面更新のデータを任意
のサイズ(例えば1000バイト)に分割する。さらに各々の分割に順序番号を付与する
。順序番号とは、受信部201において各分割を結合して元の画面更新のデータを得るた
めに必要な情報であり、例えば1から始まる分割の通し番号や、あるいはデータ先頭から
のオフセットのバイト数などである。順序番号が付与された後で、各分割は複数のTCP
ストリームに振り分ける。図4は、TCPストリーム数が2の場合の例を示している。奇
数番目の分割は1番目のストリームへ、偶数番目の分割は2番目のストリームへ振り分け
られている。各ストリームは、振り分けられた各分割にTCP/IPの各ヘッダを付与し
た上でクライアント端末2に向けてネットワーク3へ送出する。
【0037】
また送信部102は、使用帯域(単位:Mbps)を算出し保持する。算出は任意の方
法に従って行われる。例えば、過去5秒間に送出されたデータサイズを保持しておき、こ
れを5秒で割った値を使用帯域とする。送信部102は、判断部103から要求を受け取
るごとに、現在の使用帯域、および現在用いているTCPストリーム数を回答する。
【0038】
また送信部102は、圧縮部101から送信処理が実行可能か否かの問い合わせを受け
ると、送信処理の実行中であれば不可と回答し、そうでなければ可と回答する。
【0039】
クライアント端末2の受信部201はサーバ1から複数のTCPストリームを通じて各
分割を受信する。受信部201は受信データからTCP/IPの各ヘッダを除去し、さら
に付与された順序番号に基づいて結合を行い、画面更新のデータを再構成する。順序番号
は除去される。受信部201は再構成された画面更新を伸張部202に渡し、伸張を依頼
する。
【0040】
伸張部202は画面更新を受け取るとその画面更新に含まれる画像情報に伸張処理を施
す。伸張部202は伸張処置が完了すると、画面更新を表示部203に渡し、表示を依頼
する。表示部203は画面領域全体の画面情報を保持する記憶領域を有しており、画面更
新の領域情報が示す領域の情報を、伸張後の画像情報で上書き更新する。表示部203の
状態はユーザに視覚的に提示される。
【0041】
以上、画面更新の生成から表示までの処理の流れについて説明した。
【0042】
≪判断処理≫
次に、判断部103の判断処理を説明する。判断部103は、任意のタイミング(例え
ば5秒間隔)で判断処理を開始する。図6は、判断部103の判断処理の流れを説明する
図である。
【0043】
始めに判断部103は、記憶部104から全てのエントリの取得を行う。記憶部104
は、図5に示すテーブルを保持している。このテーブルは、TCPストリーム数Nと使用
帯域の最大値、直近に値の更新を行った時刻を記憶する。次に判断部103は、現在時刻
を取得し、各エントリのタイムスタンプの値との比較を行う。もし現在時刻よりも規定時
間(例えば30秒)以上が経過したタイムスタンプの値が存在すれば、そのようなエント
リは古すぎると判断し、記憶部104から削除を行う(ステップS1001)。
【0044】
次に判断部103は、送信部102に対し、現在使用しているTCPストリーム数の値
と、現在の使用帯域の値の組の取得を要求する。判断部103は、値を得ると、次に、判
断部103は、記憶部104から得たエントリの中に、送信部102から得たTCPスト
リーム数と等しい値を持つエントリが存在するかを調べる(ステップS1002)。存在
しなければ、判断部103は記憶部104に、当該のTCPストリーム数、使用帯域、現
在時刻を記憶させる(ステップS1003)。一方、送信部102から得たTCPストリ
ーム数と等しい値を持つエントリが存在していれば、当該のエントリの、使用帯域の最大
値とタイムスタンプの値の組み合わせを判断部103に出力する。存在しなければ、その
旨を判断部103に通知する。
【0045】
判断部103は、記憶部104のエントリから、対応する使用帯域の最大値とタイムス
タンプの値の組み合わせを得ることができた場合、送信部102から得た使用帯域と、記
憶部104から得た使用帯域とを比較する(ステップS1003)。このとき、送信部1
02から得た使用帯域が、記憶部104から得た使用帯域を上回っていれば、記憶部10
4のエントリの使用帯域の値を更新する。一方、上回っていなければ、エントリの使用帯
域の値を更新しない。
【0046】
以上の処理が、時間の経過とともに繰り返し実行され、記憶部104には、TCPスト
リーム数と使用帯域の最大値の組み合わせとが、更新を行った時刻とともに記憶される。
さらに規定時間以上経過したエントリは適宜消去されることになる。
【0047】
≪決定処理≫
次に、決定部105の決定処理を説明する。決定部105は、任意のタイミング(例え
ば5秒間隔)で決定処理を開始する。あるいは、判断部103の判断処理が終了するごと
に判断部103が決定部105に決定処理の開始を依頼してもよい。
【0048】
決定部105は内部に、使用帯域の目標値を有している。この値は決定部105に静的
に埋め込まれた値であってもよいし、GUIを通じてユーザが指定する値であってもよい
。また外部から適宜異なる値に書き換えられるものであってもよい。
【0049】
決定部105は、以下に述べる手続きによって、送信部102が行うデータ送信の使用
帯域がこの目標値にもっとも近くなるよう、使用すべき最適なTCPストリーム数の値を
決定する。
【0050】
以降、説明のため、決定部105が有する使用帯域の目標値をBsと書く。また記憶部
104が有する情報のうち、TCPストリーム数をN、使用帯域幅の最大値をBmと書く

【0051】
決定部105は記憶部104から全てのエントリの取得を要求する。得られた情報から
、決定部105は始めに、目標値Bsを超えるようなBmのうちで最も値が小さいものを
選択する。そのようなBmをBmax、Bmaxと対応付けて記憶されたTCPストリー
ム数をNmaxとして説明する。もし、Bsを超えるようなBmが存在しない場合は、最
もBmの値が大きいものをBmax、そのときのTCPストリーム数をNmaxとする。
【0052】
次に、決定部105は、BmaxとNmaxを用いて、使用すべき最適なTCPストリ
ーム数の値をRound(Bs÷Bmax×Nmax)と算出する。ここでRoundは
整数値への四捨五入を行う関数である。つまり、TCPストリーム1本あたりが使用する
帯域幅を単純にBmax÷Nmaxと見なした上で、目標とする使用帯域Bsを(Bma
x÷Nmax)で割ることで、最適なTCPストリームの本数を算出する。
【0053】
なお、BmaxおよびNmaxの選択は上述のやり方に限らない。例えば、Bsを超え
ないBmのうちで最も値が大きいものをBmaxとして選択してもよい。あるいはBsと
Bmの差の絶対値が最小となるものを選択してもよい。このように、目標値(Bs)に近
いBmをBmaxとして選んで最適なTCPストリーム数を決定することで、以降の使用
帯域をBsにより近付けるという効果が期待できる。この効果は、使用するTCPストリ
ーム数と、このとき利用可能な帯域の上限値とが非線形に関係する場合において顕著であ
る。
【0054】
また、最適なTCPストリーム数の値は上記以外の算出方法に依ってもよい。例えば四
捨五入を行うRound関数の代わりに、小数点以下を切り捨てるFloor関数や、切
り上げを行うCeil関数を用いてもよい。小数点以下を切り捨てる場合は、実際の使用
帯域がBsを下回るであろうTCPストリーム数を選択することになる。このような算出
方法は、特に、同じ通信路を共有する他のアプリケーションの動作に影響をできるだけ及
ぼしたくない状況において効果的である。また、小数点以下を切り上げる場合は、実際の
使用帯域がBsを上回るであろうTCPストリーム数を選択することになる。このような
算出方法は、特に、所定の画面転送の品質(描画コマ数など)をできるだけ保証したい状
況において効果的である。
【0055】
また、以上の例では、TCPストリーム1本あたりが使用する帯域幅を算出してから最
適なTCPストリーム数を決定していたが、必ずしもこのやり方に限る必要はない。例え
ば、決定部105は、記憶部104から得たエントリを調べて、Bmの値がちょうどBs
となるエントリが存在した場合に、そのようなBmに対するストリーム数Nの値を最適な
TCPストリーム数として決定してもよい。あるいは、閾値Thを有した上で、Bmの値
とBsとの差がTh以内となるようなエントリが存在する場合には、そのようなBmに対
するストリーム数Nの値を最適なTCPストリーム数として決定してもよい。
【0056】
決定部105は決定した値を送信部102に出力し、TCPストリーム数の適用を依頼
する。送信部102は指定されたTCPストリーム数を反映させる。
【0057】
≪判断部103の判断処理と決定部105の決定処理の具体例≫
次に、決定部105が、最適なTCPストリーム数を決定する際に実行する計算例を示
す。以下では、画面転送開始から、時刻100000、105000、110000、1
15000、120000において、判断部103の処理によって記憶部105が更新さ
れ、更新された情報をもとに決定部105が決定処理を行う例を説明する。図7〜図12
は、時間の経過とともに記憶部105が更新される様子を示す第1〜第6の図である。
【0058】
ここで、決定部105に格納された目標値Bsの値は25Mbpsであるとする。画面
転送の開始直後は、図7に示すように、記憶部104に何も情報が記憶されていない状態
とする。その後、時刻100000に判断部103において判断処理が実行され、結果、
図8に示すように記憶部104の状態が更新されたと仮定する。さらにその後、決定部1
05において決定処理が開始されたとする。このとき、決定部105は、Bmaxとして
8Mbps、Nmaxとして1を選択する。ここから、最適なTCPストリーム数をRo
und(25÷8×1)=Round(3.125)=3と算出する。送信部102にT
CPストリーム数として3が通知され、以降、送信部102は3本のTCPストリームを
用いて画面更新の送信を行うようにする。
【0059】
次に、時刻105000に、再び判断部103において判断処理が実行されたとする。
送信部102から得られたNとBmの組み合わせはN=3とBm=9Mbpsであったと
仮定する。この情報が記憶部104に記憶された直後の様子を図9にしめす。さらにその
後、決定部105において決定処理が開始されたとする。決定部105はBmax=9M
bps、Nmax=3を選択する。そして最適なTCPストリーム数としてRound(
25÷9×3)=Round(8.333)=8と決定する。以降、送信部102は8本
のTCPストリームを用いる。
【0060】
次に、時刻110000に、再び判断部103において判断処理が実行されたとする。
送信部102から得られたNとBmの組み合わせはN=8とBm=8Mbpsであったと
仮定する。この情報が記憶部104に記憶された直後の様子を図10にしめす。さらにそ
の後、決定部105において決定処理が開始されたとする。決定部105はBmax=9
Mbps、Nmax=3を選択する。(Bsを超えるBmが存在しない場合、最もBmの
値が大きいものをBmaxとすることに注意。)最適なTCPストリーム数は引き続き8
が決定される。
【0061】
次に、時刻115000に、再び判断部103において判断処理が実行されたとする。
送信部102から得られたNとBmの組み合わせはN=8とBm=28Mbpsであった
と仮定する。この情報が記憶部104に記憶された直後の様子を図11にしめす。(N=
8に対するBmの値がより大きな28Mbpsで更新されていることに注意。)さらにそ
の後、決定部105において決定処理が開始されたとする。決定部105はBmax=2
8Mbps、Nmax=8を選択する。そして最適なTCPストリーム数としてRoun
d(25÷28×8)=Round(7.143)=7と決定する。以降、送信部102
は7本のTCPストリームを用いる。
【0062】
次に、時刻120000に、再び判断部103において判断処理が実行されたとする。
送信部102から得られたNとBmの組み合わせはN=7とBm=26Mbpsであった
と仮定する。この情報が記憶部104に記憶された直後の様子を図12にしめす。さらに
その後、決定部105において決定処理が開始されたとする。決定部105はBmax=
26Mbps、Nmax=7を選択する。(Bsを超えるBmが存在する場合、Bmのう
ちで最も値が小さいものをBmaxとすることに注意。)そして最適なTCPストリーム
数としてRound(25÷26×7)=Round(6.731)=7と決定する。以
降、送信部102は7本のTCPストリームを用いる。
【0063】
以降、同様の手続きを繰り返す。
【0064】
この判断部103の判断処理を時間の経過とともに、繰り返し実行することで、記憶部
104が記憶するTCPストリーム数(N)毎に、送信部102が用いた使用帯域の最大
値(Bm)を更新しつづけることができる。(例えば、図10において、TCPストリー
ム数が8の場合、使用帯域の最大値を8から28に更新している。)その結果、決定部1
05は、上記決定処理を、TCPストリーム数(N)毎に、過去、送信部102が用いた
使用帯域の最大値をもとに、決定処理を行うことができる。
【0065】
以上のように本実施の形態では、あるTCPストリーム数を用いたときの使用帯域の最
大値を記憶し、これを利用して最適なTCPストリーム数を決定する。画面転送のような
データ伝送では、画面情報に変化があったときにのみ送信すべきデータが発生する。本実
施の形態により、過去用いた使用帯域の最大値を用いてTCPストリーム数を決定するた
め、送信すべきデータの発生が少ない期間に測定した使用帯域の値を除外して最適なTC
Pストリーム数の決定が行われる。これにより、TCPストリーム数を適切に決定するこ
とが可能になる。
【0066】
さらに、本実施例では、最適なTCPストリーム数を決定する手順を繰り返し実行し、
送信に用いるTCPストリーム数を更新している。これにより、実際の使用帯域を目標値
に近付けることを可能にしている。また、画面転送の実行の最中に使用帯域の目標値が変
化した場合であっても、TCPストリーム数を変化に追従して調整することが可能になる

【0067】
さらに、本実施例では、TCPストリーム1本あたりが使用する帯域幅を算出しこれに
基づいてTCPストリーム数を決定している。これにより、TCPストリーム数を1ずつ
変化させる等といった方法と異なり、実際の使用帯域が目標値の近くに到達するまでの時
間を短縮することを可能にしている。
【0068】
さらに、本実施例では、規定時間以上が経過したエントリを削除するという手続きを行
っている。これにより、使用帯域の古過ぎる測定結果を、最適なTCPストリーム数の決
定材料から除外できる効果が期待できる。これは、画面更新の発生パターンが時々刻々と
変化する画面転送において特に効果的である。
【0069】
なお、本実施例では、TCPストリーム数の初期値を決定する際に、1という値を固定
的に使用したが、これに限らず、様々な方法で決定することができる。例えば、前回に画
面転送を実行したときに使用したTCPストリーム数をファイル等に保存しておき、実行
開始時に読み出して使用してよい。最適なTCPストリーム数の値は通信路の状況に応じ
て異なるが、前回の画面転送の実行時の通信路の状況と今回の状況との間に極端な差異が
ある可能性は小さい。よってこのようにして得たTCPストリーム数による使用帯域は目
標値に近いことが期待される。したがって、使用帯域が目標値の近くに到達するまでの時
間を短縮することが可能となる。またさらに、前回のTCPストリーム数をファイルに保
存する際に、そのときの時刻や曜日など時間に関する情報を併せて保存し、読み出しの際
にはこの情報が一致する場合に値を採用するという判断を加えてもよい。一般に、同じ時
刻や曜日における通信路の状況は似通っている可能性が高い。したがって、使用帯域が目
標値の近くに到達するまでの時間をさらに短縮することが可能となる。
【0070】
尚、以上の例では、画面情報を送出する画面転送システムを実施形態として示したが、
必ずしも送出される情報の種類は画面情報に限るものではない。送出するデータ量が時間
によって変動する特性をもつ任意の情報について本発明を適用することができる。たとえ
ば動画像データを送出するシステムであって、符号化後のデータ量(送出するデータ量)
が動きの大きさなど動画像の内容によって時間的に変動する場合であっても本発明を適用
できる。あるいは音声データを送出するシステムであって、符号化後のデータ量が発話の
有無や頻度など音声の内容によって時間的に変動する場合であっても本発明を適用できる

【0071】
また、サーバ1は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いる
ことでも実現することが可能である。すなわち、生成部100、圧縮部101、送信部1
02、判定部103、記憶部104、及び決定部105は、上記のコンピュータ装置に搭
載されたプロセッサにプログラムを実行させることにより実現することができる。このと
き、サーバ1は、上記のプログラムをコンピュータ装置にあらかじめインストールするこ
とで実現してもよいし、CD−ROMなどの記憶媒体に記憶して、あるいはネットワーク
を介して上記のプログラムを配布して、このプログラムをコンピュータ装置に適宜インス
トールすることで実現してもよい。また、記憶部104は、上記のコンピュータ装置に内
蔵あるいは外付けされたメモリ、ハードディスクもしくはCD−R、CD−RW、DVD
−RAM、DVD−Rなどの記憶媒体などを適宜利用して実現することができる。
【0072】
以上説明した実施形態によれば、最適なTCPストリーム数を決定することができるこ
とである。
【0073】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したも
のであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その
他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の
省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や
要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる

【符号の説明】
【0074】
1・・・サーバ、2・・・クライアント端末、3・・・ネットワーク、100・・・生成
部、101・・・圧縮部、102・・・送信部、103・・・判定部、104・・・記憶
部、105・・・決定部、201・・・受信部、202・・・伸長部、203・・・表示
部。

【特許請求の範囲】
【請求項1】
複数のTCPストリームを用いて、データを送信する送信部と、
前記送信部がデータ送信時に用いたTCPストリーム数と当該TCPストリーム数を用
いたデータ送信時に使用した帯域幅の最大値とを対応付けて記憶する記憶部と、
前記記憶部に記憶されたTCPストリーム数及び前記帯域幅の最大値と帯域幅の目標値
とに基づき、前記送信部が新たなデータ送信に用いるTCPストリーム数を決定する決定
部と、
前記決定部が決定したTCPストリーム数でのデータ送信に使用する帯域幅が、前記記憶
部に記憶された前記決定部が決定したTCPストリーム数に一致する前記TCPストリー
ム数に対応した帯域幅の最大値より大きい場合には、前記帯域幅の最大値を更新する制御
部と、
を備えるサーバ。
【請求項2】
前記制御部は、前記決定部が決定したTCPストリーム数に一致する前記TCPストリー
ム数が前記記憶部に記憶されていない場合には、前記決定部が決定したTCPストリーム数
と前記決定部が決定したTCPストリーム数でのデータ送信に使用した帯域幅とを対応付け
て前記記憶部に記憶する、請求項1記載のサーバ。
【請求項3】
前記送信部が送信するデータの量は、時間によって変動する請求項1に記載のサーバ。
【請求項4】
前記送信部が送信するデータは、ネットワークを介して接続されたクライアント端末が
表示する画面情報を更新する情報である請求項3記載のサーバ。
【請求項5】
前記決定部は、前記記憶部に記憶された前記TCPストリーム数及び前記帯域幅の最大
値に基づいて、前記TCPストリーム数についてTCPストリーム1つあたりの帯域幅を
算出し、前記帯域幅の目標値と、前記1つあたりの帯域幅との比から、前記送信部が新た
なデータ送信に用いるTCPストリーム数を決定する請求項1記載のサーバ。
【請求項6】
前記決定部は、前記帯域幅の目標値と、前記記憶部に記憶された、帯域幅の最大値とを
比較し、前記帯域幅の目標値に最も近い帯域幅の最大値と対応付けて記憶されたTCPス
トリーム数を、前記送信部が新たなデータ送信に用いるTCPストリーム数と決定する請
求項1記載のサーバ。
【請求項7】
前記決定部は、前記帯域幅の目標値と、前記1つあたりの帯域幅との比を四捨五入した
値を、前記送信部が新たなデータ送信に用いるTCPストリーム数と決定する請求項5記
載のサーバ。
【請求項8】
前記決定部は、前記帯域幅の目標値と、前記1つあたりの帯域幅との比を小数点以下切
捨した値を、前記送信部が新たなデータ送信に用いるTCPストリーム数と決定する請求
項5記載のサーバ。
【請求項9】
前記決定部は、前記帯域幅の目標値と、前記1つあたりの帯域幅との比を小数点以下切
上した値を、前記送信部が新たなデータ送信に用いるTCPストリーム数と決定する請求
項5記載のサーバ。
【請求項10】
前記記憶部に記憶された、前記送信部がデータ送信時に用いたTCPストリーム数と、
当該TCPストリーム数を用いたデータ送信時に使用した帯域幅の最大値との組について
、以前、前記制御部による前記更新を行った時刻から所定時間以上経過した場合に、当該
所定時間以上経過した組を前記記憶部から削除する請求項1記載のサーバ。
【請求項11】
複数のTCPストリームを用いて、データを送信する送信部と、
前記送信部がデータ送信時に用いたTCPストリーム数と当該TCPストリーム数を用
いたデータ送信時に使用した帯域幅の最大値とを対応付けて記憶する記憶部とを備えるサ
ーバを制御する方法であって、
前記記憶部に記憶されたTCPストリーム数及び前記帯域幅の最大値と帯域幅の目標値
とに基づき、前記送信部が新たにデータ送信に用いるTCPストリーム数を決定する決定
ステップと、
前記決定ステップで決定したTCPストリーム数でのデータ送信に使用する帯域幅が、前
記記憶部に記憶された前記決定ステップで決定したTCPストリーム数に一致する前記T
CPストリーム数に対応した帯域幅の最大値より大きい場合には、前記帯域幅の最大値を
更新する制御ステップと、
を備えるサーバ制御方法。
【請求項12】
複数のTCPストリームを用いて、データを送信する送信部と、
前記送信部がデータ送信時に用いたTCPストリーム数と当該TCPストリーム数を用
いたデータ送信時に使用した帯域幅の最大値とを対応付けて記憶する記憶部とを備えるサ
ーバを制御するプログラムであって、
前記記憶部に記憶されたTCPストリーム数及び前記帯域幅の最大値と帯域幅の目標値
とに基づき、前記送信部が新たにデータ送信に用いるTCPストリーム数を決定する決定
機能と、
前記決定機能で決定したTCPストリーム数でのデータ送信に使用する帯域幅が、前記記
憶部に記憶された前記決定ステップで決定したTCPストリーム数に一致する前記TCP
ストリーム数に対応した帯域幅の最大値より大きい場合には、前記帯域幅の最大値を更新
する制御機能と、
を備えるサーバ制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2013−81004(P2013−81004A)
【公開日】平成25年5月2日(2013.5.2)
【国際特許分類】
【出願番号】特願2011−218676(P2011−218676)
【出願日】平成23年9月30日(2011.9.30)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】