(58)【調査した分野】(Int.Cl.,DB名)
前記応答送信頻度決定手段は、前記第1の送信頻度決定方法を用いる場合、目標送信速度が大きいほど応答パケットの送信頻度が大きくなる、または、現在の送信速度が大きいほど応答パケットの送信頻度が小さくなる関数を用いて、前記応答パケットの送信頻度を決定する、請求項1に記載の受信トラヒックの高速化装置。
前記応答送信頻度決定手段は、前記第1の送信頻度決定方法を用いる場合、目標送信速度を現在の送信速度で除算した値を、第1の定数乗または第1の定数倍してから、第2の定数を減算した値を用いて、前記応答パケットの送信頻度を決定する、請求項1又は請求項2に記載の受信トラヒックの高速化装置。
前記応答送信頻度決定手段は、前記第2の送信頻度決定方法を用いる場合、現在の送信速度が大きいほど応答パケットの送信頻度が小さくなる関数を用いて、前記応答パケットの送信頻度を決定する、請求項1乃至請求項3のいずれか一項に記載の受信トラヒックの高速化装置。
前記応答送信頻度決定手段は、目標送信速度に第3の定数を乗算した値よりも現在の送信速度が小さい場合に、前記第1の送信頻度決定方法を用いると判断し、それ以外の場合に前記第2の送信頻度決定方法を用いると判断する、請求項1乃至請求項4のいずれか一項に記載の受信トラヒックの高速化装置。
【発明を実施するための形態】
【0018】
本発明の好ましい実施形態について説明する前に、本発明の上位概念の実施形態の、受信トラヒックの高速化装置、および高速化方法について説明する。
図1は、本発明の上位概念の実施形態の、受信トラヒックの高速化装置を説明するためのブロック図である。
【0019】
図1の受信トラヒックの高速化装置200は、目標送信速度推定手段201と、現在送信速度推定手段202と、応答送信頻度決定手段203と、を含む。
【0020】
目標送信速度推定手段201は、データパケットの受信結果をもとにネットワークの可用帯域を推定し、推定された可用帯域をもとに目標送信速度を推定する。現在送信速度推定手段202は、データパケットの受信結果をもとに、現時点でのデータパケットを送出する速度を推定する。応答送信頻度決定手段203は、応答パケットの送信頻度を決定する。この応答パケットの送信頻度は例えば、目標送信速度推定手段12が推定した目標送信速度と、現在送信速度推定手段13が推定した現在送信速度とのうちの1つ以上の情報をもとに決定する。
【0021】
本実施形態によれば、データパケットの受信結果をもとにネットワークの可用帯域を推定し、推定された可用帯域をもとに目標送信速度を推定している。またデータパケットの受信結果をもとに、現時点でのデータパケットを送出する速度を推定する。そして、推定した目標送信速度と、推定した現在送信速度とのうちの1つ以上の情報をもとに、応答パケットの送信頻度を決定している。特に、推定した目標送信速度と推定した現在送信速度とをもとに、上記現在送信速度が上記目標送信速度に近付くように応答パケットの送信頻度を決定している。これにより、可用帯域を推定し、推定結果に基づいてデータ送信装置のトランスポートプロトコルの送信可能なデータ量がどこまで、どの程度速く増加するかを判断して、確認応答パケットの返信頻度を変更する。その結果、可用帯域を素早く使い切れるように加速し、且つ不必要な確認応答パケットの返信を抑制することができる。以下、本発明のより具体的な実施形態について、図面を参照しながら詳細に説明する。
【0022】
〔第1実施形態〕
本発明の第1実施形態による受信トラヒックの高速化装置、および高速化方法について、説明する。
図2は、本発明の第1実施形態の、受信トラヒックの高速化装置を説明するためのブロック図である。
図3は、本発明の第1実施形態の、受信トラヒックの高速化装置の動作を説明するためのフローチャートである。
【0023】
[構成の説明]
本実施形態は、受信トラヒックの高速化装置、および高速化方法を、ネットワーク4を経由してデータ送信装置2から送信されたデータパケットを受信するデータ受信装置1に適用した場合である。
【0024】
図2のシステムのデータ受信装置1やデータ送信装置2は、例えばユーザがコンテンツをダウンロードする場合のPC(Personal Computer)や携帯端末などであり、またはユーザがコンテンツをアップロードする場合のサーバやクラウドストレージなどである。
【0025】
図2のシステムのデータ受信装置1は、データ送信装置2から送信されたデータパケットを受信し、正常に受信できたか否かに応じて、または、一定時間ごとに応答パケットを上記データ送信装置2に送信するデータ受信装置1である。
【0026】
図2のシステムのデータ送信装置2は、例えばユーザがコンテンツをダウンロードする場合のサーバやクラウドストレージなどであったり、ユーザがコンテンツをアップロードする場合のPCや携帯端末などであったりし、データ受信装置1にデータパケットを送信し、上記データ受信装置1から上記データパケットに対応する応答パケットを受信した際に、上記応答パケットに記載されている情報に応じて、正常な受信を確認することなく同時に送信可能なデータパケットの量を決定し、上記送信可能なデータパケットの量に従って上記データ受信装置1にデータパケットを送信するデータ送信装置2である。
【0027】
さらに
図2のシステムは、データ受信装置1とデータ送信装置2とを繋げるネットワーク4を含む。
【0028】
なお、ここで、データ受信装置1とデータ送信装置2との間の通信に用いられるプロトコルがTCPの場合、上記応答パケットはACKパケットに該当し、上記送信可能なデータパケットの量はcwndに該当する。しかしながら、これに限定されず、例えばデータ受信装置1やデータ送信装置2において動作しているプログラムが独自の応答パケットを送信したり、独自に送信可能なデータパケットの量を決定したりしても良い。
【0029】
本実施形態のデータ受信装置1は、データ送受信手段11、目標送信速度推定手段12、現在送信速度推定手段13、送信制御状態推定手段14、および応答送信頻度決定手段15を含む。これらの手段は、それぞれ概略つぎのように動作する。
【0030】
データ送受信手段11は、ネットワーク4を経由してデータ送信装置2から送信されたデータパケットを受信し、正常に受信できたか否かを示す応答パケットを、応答送信頻度決定手段15が決定した送信頻度で上記データ送信装置2に送信する。
【0031】
目標送信速度推定手段12は、データ送受信手段11によるデータパケットの受信結果をもとにネットワーク4の可用帯域を推定し、推定された可用帯域をもとに目標送信速度を推定する。
【0032】
現在送信速度推定手段13は、データ送受信手段11によるデータパケットの受信結果をもとに、現時点でのデータ送信装置2がデータパケットを送出する速度を推定する。
【0033】
送信制御状態推定手段14は、送信可能なデータパケットの量を決定する際に、どのような決定方法を用いているのかを推定する。この決定方法の推定は、データ送受信手段11によるデータパケットの受信結果と、現在送信速度推定手段13が推定した現在送信速度をもとに、データ送信装置2が応答パケットの内容や受信状況をもとに送信可能なデータパケットの量を決定する際に、行う。
【0034】
応答送信頻度決定手段15は、データ送受信手段11がデータ送信装置2に送信する応答パケットの送信頻度を決定する。この送信頻度の決定は、目標送信速度推定手段12が推定した目標送信速度と、現在送信速度推定手段13が推定した現在送信速度と、送信制御状態推定手段14が推定した送信可能なデータパケットの量の決定方法のうちの1つ以上の情報をもとに行う。特に、推定した目標送信速度と推定した現在送信速度とをもとに、上記現在送信速度が上記目標送信速度に近付くように応答パケットの送信頻度を決定している。
【0035】
データ送受信手段11は、データ送信装置2からデータパケットが送信されてきた際に、上記データパケットを受信する。また、応答送信頻度決定手段15が応答パケットの送信頻度を決定した際に、データパケットを正常に受信できたか否かを示す応答パケットを、上記決定された送信頻度で上記データ送信装置2に送信する。
【0036】
ここで、上記送信頻度で応答パケットを送信する方法は、例えば、上記送信頻度に沿うように応答パケットの送信回数を調整する方法である。具体的には、例えば、データパケットの到着頻度の1/5倍の頻度で応答パケットを送信すると応答送信頻度決定手段15が決定した場合、データ送受信手段11はデータパケットを5個受信するごとに応答パケットを1個送信する。また、例えば、データパケットの到着頻度の5倍の頻度で応答パケットを送信すると応答送信頻度決定手段15が決定した場合、データ送受信手段11はデータパケットを1個受信するごとに応答パケットを5個送信する。
【0037】
また、上記送信方法に限らず、例えば、上記送信頻度に沿うように応答パケットの送信時間間隔を調整する方法であっても良い。具体的には、例えば、データパケットの到着頻度の5倍の頻度で応答パケットを送信すると応答送信頻度決定手段15が決定した場合、データ送受信手段11はデータパケットの受信時間間隔またはその統計値を計算し、上記計算値を1/5倍にした時間間隔で応答パケットを送信する。
【0038】
また、例えば、データパケットの到着頻度の1/5倍の頻度で応答パケットを送信すると応答送信頻度決定手段15が決定した場合、データ送受信手段11は上記計算値を5倍にした時間間隔で応答パケットを送信する。なお、ここで、データ受信装置1とデータ送信装置2との間の通信に用いられるプロトコルがTCPの場合、1個のデータパケットに対して2個以上の応答パケットを送信する際に、重複ACKにならないようにするため、データパケットの途中のシーケンス番号までを受信済みであるかのように、その次のシーケンス番号を応答パケットに記載して送信する。
【0039】
具体的には、例えば、シーケンス番号が10001〜11400のデータパケットを1個受信し、これに対して5個の応答パケットを送信する場合、データ送受信手段11は、例えば、それぞれ要求するシーケンス番号が10281、10561、10841、11121、11401と記載された応答パケットをデータ送信装置2に送信する。また、応答パケットに記載するシーケンス番号は1以上大きい値を順次記載し、未受信の中で最小のシーケンス番号を最後の応答パケットに記載していれば良い。これにより上記の例のように等差的にシーケンス番号を増加させる制約はなく、例えば、それぞれ要求するシーケンス番号が10002、10003、10004、10005、11401と記載された応答パケットをデータ送信装置2に送信しても良い。
【0040】
目標送信速度推定手段12は、データ送受信手段11がデータパケットを受信した際、または、一定時間ごとに、データ送受信手段11によるデータパケットの受信結果をもとにネットワーク4の可用帯域を推定し、上記可用帯域をもとに目標送信速度を推定する。ここで、上記可用帯域の推定方法は、例えば、データパケットのサイズまたはその統計値をデータパケットのデータ送受信手段11における受信間隔またはその統計値で除算した値を上記可用帯域と推定する方法である。
【0041】
また、上記推定方法に限らず、例えば、データ送受信手段11における受信間隔が予め定められた閾値以下のデータパケットを1まとまりのパケット群と捉え、上記パケット群のサイズまたはその統計値を上記パケット群の受信にかかった時間またはその統計値で除算した値を上記可用帯域と推定する方法であっても良い。
【0042】
また、ここでの上記目標送信速度の推定方法は、例えば、上記推定された可用帯域をそのまま上記目標送信速度と推定する方法である。また、上記推定方法に限らず、例えば、タイムスタンプの値などを用いてデータ送信装置2とデータ受信装置1との間の往復遅延時間を算出し、上記往復遅延時間またはその統計値を上記推定された可用帯域に乗算した値を上記目標送信速度と推定する方法であっても良い。
【0043】
現在送信速度推定手段13は、データ送受信手段11がデータパケットを受信した際、または、一定時間ごとに、データ送受信手段11によるデータパケットの受信結果をもとに、現時点でデータ送信装置2がデータパケットを送出する現在送信速度を推定する。ここで、上記現在送信速度の推定方法は、例えば、タイムスタンプの値などを用いてデータ送信装置2とデータ受信装置1との間の往復遅延時間を算出し、上記往復遅延時間の間にデータ送受信手段11が受信したデータパケットのサイズまたはその統計値を上記現在送信速度と推定する方法である。
【0044】
また、上記推定方法に限らず、例えば、上記往復遅延時間の間にデータ送受信手段11が受信したデータパケットのサイズまたはその統計値を、上記往復遅延時間またはその統計値で除算した値を上記現在送信速度と推定する方法であっても良い。
【0045】
送信制御状態推定手段14は、データ送受信手段11がデータパケットを受信した際、または、現在送信速度推定手段13が現在送信速度を推定した際、または、一定時間ごとに、データ送受信手段11によるデータパケットの受信結果と、現在送信速度推定手段13が推定した現在送信速度をもとに、データ送信装置2が応答パケットの内容や受信状況をもとに送信可能なデータパケットの量を決定する際に、どのような決定方法を用いているかという送信制御状態を推定する。
【0046】
ここで、上記送信制御状態の推定方法は、例えば、データ受信装置1とデータ送信装置2との間の通信に用いられるプロトコルがTCPの場合、データ送信装置2のTCPがスロースタートフェーズにあるか輻輳回避フェーズにあるかを推定する方法である。具体的には、要求するシーケンス番号が同一の応答パケットを、データ送受信手段11が3回連続で送信した場合、または、現在送信速度推定手段13が推定した現在送信速度が、前回の値に予め定められた定数αを乗算した値より小さい場合、または、現在送信速度推定手段13が推定した現在送信速度が、前回の値に予め定められた定数βを加算した値より小さい場合に、輻輳回避フェーズに移行したと推定し、通信開始直後、または、現在送信速度推定手段13が推定した現在送信速度が、予め定められた閾値より小さい場合に、スロースタートフェーズに移行したと推定する。
【0047】
また、上記推定方法に限らず、例えば、データ受信装置1とデータ送信装置2との間の通信に用いられるプロトコルがTCP以外であっても、その決定アルゴリズムが既知または事前に通知しておき、上記決定アルゴリズムの挙動に沿った判別条件を設定することで、同様に送信制御状態を推定する方法であっても良い。
【0048】
応答送信頻度決定手段15は、データ送受信手段11がデータパケットを受信した際、または、目標送信速度推定手段12が目標送信速度を推定した際、または、現在送信速度推定手段13が現在送信速度を推定した際、または、送信制御状態推定手段14が送信制御状態を推定した際、または、一定時間ごとに、目標送信速度推定手段12が推定した目標送信速度と、現在送信速度推定手段13が推定した現在送信速度と、送信制御状態推定手段14が推定した送信可能なデータパケットの量の決定方法のうちの1つ以上の情報をもとに、データ送受信手段11がデータ送信装置2に送信する応答パケットの送信頻度を決定する。
【0049】
ここで、上記送信頻度は、1個のデータパケットに対していくつの応答パケットを送信するかという、0より大きい倍率値を表す。具体的な処理としては、応答送信頻度決定手段15は、高頻度決定方法と低頻度決定方法の2つの異なる送信頻度の決定方法のいずれかを用いるかを判断し、さらに、判断した上記送信頻度の決定方法を用いて応答パケットの送信頻度を決定する。ここで、高頻度決定方法と低頻度決定方法のいずれかを用いるかの判断方法は、例えば、現在送信速度推定手段13が推定した現在送信速度が、目標送信速度推定手段12が推定した目標送信速度に予め定められた定数γを乗算した値よりも小さい場合に、高頻度決定方法を用いると判断し、それ以外の場合に低頻度決定方法を用いると判断する方法である。
【0050】
また、上記判断方法に限らず、送信制御状態推定手段14が例えば、データ送信装置2のTCPがスロースタートフェーズにあると推定した場合に、高頻度決定方法を用いると判断し、データ送信装置2のTCPが輻輳回避フェーズにあると推定した場合に、低頻度決定方法を用いると判断する方法であっても良い。
【0051】
また、応答パケットの送信頻度の決定方法としては、高頻度決定方法で決定される送信頻度が、低頻度決定方法で決定される送信頻度よりも大きくなるように決定する方法がある。具体的な決定方法としては、高頻度決定方法における送信頻度の決定方法は、例えば、目標送信速度推定手段12が推定した目標送信速度が大きいほど上記送信頻度が大きくなる、または、現在送信速度推定手段13が推定した現在送信速度が大きいほど上記送信頻度が小さくなる関数を用いて、上記送信頻度を決定する方法である。
【0052】
より具体的には、上記目標送信速度をA、上記現在送信速度をB、予め定められた定数をδ(正の実数)、ε(実数)としたとき、上記送信頻度を(A/B)^(1/δ)−εによって決定する方法である。また、上記決定方法に限らず、例えば、上記送信頻度を(A/B)×(1/δ)−εによって決定する方法であっても良いし、例えば、上記決定方法のいずれかを、高頻度決定方法に移行した直後または通信開始直後の一度だけ計算し、低頻度決定方法に移行するまでの間は同じ送信頻度を使用し続ける方法であっても良い。
【0053】
例えば、低頻度決定方法が背景技術のTCPよりも小さい送信頻度を決定している場合に、背景技術のTCPと同じ送信頻度に決定する方法であっても良い。ここで、δはどの程度早く目標送信速度に到達させるかを示しており、例えば往復遅延時間の5倍程度の時間で目標送信速度に到達させる場合は、δ=5とするのが望ましい。また、εは上記送信頻度を調整するための数値で、ε=1またはε=1/δとするのが望ましい。しかし、上記数値例に限らず、別の数値が設定されていても良い。
【0054】
また、低頻度決定方法における送信頻度の決定方法は、例えば、上記現在送信速度が大きいほど上記送信頻度が小さくなる関数を用いて、上記送信頻度を決定する方法である。より具体的には、予め定められた定数をζ(正の実数)、η(実数)としたとき、上記送信頻度をζ/B−ηによって決定する方法である。また、上記決定方法に限らず、例えば、上記送信頻度を予め定められた定数θに決定する方法である。また、上記決定方法に限らず、例えば、高頻度決定方法が背景技術のTCPよりも大きい送信頻度を決定している場合に、背景技術のTCPと同じ送信頻度に決定する方法であっても良い。ここで、ζはどの程度の応答パケットを送信するかを示しており、例えば往復遅延時間内に応答パケットを10個程度送信する場合は、ζ=10とするのが望ましい。また、ηは上記送信頻度を調整するための数値で、η=0とするのが望ましい。しかし、上記数値例に限らず、別の数値が設定されていても良い。
【0055】
なお、応答送信頻度決定手段15では、目標送信速度推定手段12が推定した目標送信速度と、現在送信速度推定手段13が推定した現在送信速度と、送信制御状態推定手段14が推定した送信可能なデータパケットの量の決定方法のうちの1つ以上の情報を用いる。しかしながら応答送信頻度決定手段15では、上記情報のうちのいくつかを使用しない場合、第1実施形態では、使用しない上記情報に該当する推定手段を含まない構成を取ることもできる。
【0056】
[動作の説明]
次に、
図2と
図3を参照して、本発明の第1実施形態の動作について説明する。
【0057】
まずデータ送受信手段11が、ネットワーク4を経由してデータ送信装置2からデータパケットが送信されてきた際に、上記データパケットを受信する(ステップS11)。
【0058】
目標送信速度推定手段12が、データ送受信手段11がデータパケットを受信した際、または、一定時間ごとに、データ送受信手段11によるデータパケットの受信結果をもとにネットワーク4の可用帯域を推定する。さらに目標送信速度推定手段12は、こうして推定した可用帯域をもとに目標送信速度を推定する(ステップS12)。
【0059】
現在送信速度推定手段13が、データ送受信手段11がデータパケットを受信した際、または、一定時間ごとに、データ送受信手段11によるデータパケットの受信結果をもとに、現時点でデータ送信装置2がデータパケットを送出する現在送信速度を推定する(ステップS13)。
【0060】
送信制御状態推定手段14が、データ送受信手段11がデータパケットを受信した際、または、現在送信速度推定手段13が現在送信速度を推定した際、または、一定時間ごとに、データ送受信手段11によるデータパケットの受信結果と、現在送信速度推定手段13が推定した現在送信速度をもとに、データ送信装置2が応答パケットの内容や受信状況をもとに送信可能なデータパケットの量を決定する際に、どのような決定方法を用いているかという送信制御状態を推定する(ステップS14)。
【0061】
次に応答送信頻度決定手段15が、データ送受信手段11がデータ送信装置2に送信する応答パケットの送信頻度を決定する(ステップS15)。この応答パケットの送信頻度は、目標送信速度推定手段12が推定した目標送信速度と、現在送信速度推定手段13が推定した現在送信速度と、送信制御状態推定手段14が推定した送信可能なデータパケットの量の決定方法のうちの1つ以上の情報をもとに、決定される。特に、推定した目標送信速度と推定した現在送信速度とをもとに、上記現在送信速度が上記目標送信速度に近付くように応答パケットの送信頻度を決定する。さらにこの応答パケットの送信頻度の決定は、データ送受信手段11がデータパケットを受信した際、または、目標送信速度推定手段12が目標送信速度を推定した際、または、現在送信速度推定手段13が現在送信速度を推定した際、または、送信制御状態推定手段14が送信制御状態を推定した際、または、一定時間ごとに、行う。
【0062】
次にデータ送受信手段11が、データパケットを受信した際、または、一定時間ごとに、上記データパケットを正常に受信できたか否かを示す応答パケットを、応答送信頻度決定手段15が決定した送信頻度で上記データ送信装置2に送信する(ステップS16)。
【0063】
[効果の説明]
本実施形態によれば、推定した目標送信速度と、推定した現在送信速度と、推定した送信可能なデータパケットの量の決定方法のうちの1つ以上の情報をもとに、データ送受信手段11がデータ送信装置2に送信する応答パケットの送信頻度を、応答送信頻度決定手段15が決定している。
【0064】
これにより、可用帯域を推定し、推定結果に基づいてデータ送信装置2のトランスポートプロトコルの送信可能なデータ量がどこまで、どの程度速く増加するかを判断して、確認応答パケットの返信頻度を変更する。その結果、可用帯域を素早く使い切れるように加速し、且つ不必要な確認応答パケットの返信を抑制することができる。
【0065】
特に、データ送受信手段11がデータ送信装置2に送信する応答パケットの送信頻度を、推定した目標送信速度と推定した現在送信速度とをもとに、上記現在送信速度が上記目標送信速度に近付くように応答パケットの送信頻度を決定することにより、応答パケットの送信頻度を最適化することができ、受信トラヒックをより一層高速化することができる
。
【0066】
〔第2実施形態〕
次に、本発明の第2実施形態による受信トラヒックの高速化装置、および高速化方法について、説明する。
図4は、本発明の第2実施形態の、受信トラヒックの高速化装置を説明するためのブロック図である。
図5は、本発明の第2実施形態の、受信トラヒックの高速化装置の動作を説明するためのフローチャートである。なお、第1実施形態の受信トラヒックの高速化装置と同様な要素については、同じ参照番号を付して、その詳細な説明を省略することとする。
【0067】
[構成の説明]
本実施形態は、第1実施形態に対し、データ送信装置2とデータ受信装置1との間のデータ通信を一度終端する中継サーバ3を含むシステムへ適用した場合である。言い換えると本実施形態は、データ送信装置2とデータ受信装置1との間のデータ通信を一度終端する中継サーバ3に、上述した受信トラヒックの高速化装置、および高速化方法を適用した場合である。
【0068】
図4を参照すると、本発明の第2実施形態は、第1実施形態に対し、例えばキャッシュサーバやプロキシサーバ、MEC(Mobile Edge Computing)サーバなどのように、データ送信装置2とデータ受信装置1との間に設置され、データ送信装置2とデータ受信装置1との間のデータ通信を一度終端する中継サーバ3を含む。本実施形態では第1実施形態のネットワーク4のうち、データ送信装置2と中継サーバ3との間の区間を送信側ネットワーク41、中継サーバ3とデータ受信装置1との間の区間を受信側ネットワーク42とする。
【0069】
これらの手段は、それぞれ概略つぎのように動作する。
【0070】
データ受信装置1は、第1実施形態のデータ受信装置1と同じ構成をしていても良いし、特別な構成は持たずに背景技術のデータ受信装置と同じ構成をしていても良い。
【0071】
中継サーバ3は、第1実施形態のデータ受信装置1に対し、データ送信装置2から受信したデータパケットを、受信側ネットワーク42を経由してデータ受信装置1に送信するデータ送受信手段(受信側)112をさらに含む。また中継サーバ3は、第1実施形態のデータ送受信手段11の代わりに、データ送受信手段(送信側)111を含む。
【0072】
データ送受信手段(送信側)111は、第1実施形態のデータ送受信手段11の動作に加えて、データ送信装置2からデータパケットを受信した際に、上記データパケットをデータ送受信手段(受信側)112に転送する。
【0073】
データ送受信手段(受信側)112は、データ送受信手段(送信側)111からデータパケットを転送された際に、受信側ネットワーク42を経由して、上記データパケットをデータ受信装置1に送信する。そして、上記データ受信装置1から上記データパケットに対応する応答パケットを受信した際に、上記応答パケットに記載されている情報に応じて、正常な受信を確認することなく同時に送信可能なデータパケットの量を決定し、上記送信可能なデータパケットの量に従って上記データ受信装置1にデータパケットを送信する。
【0074】
目標送信速度推定手段12は、第1実施形態の目標送信速度推定手段12の動作に加えて、データ送受信手段(受信側)112が応答パケットを受信した際、または、一定時間ごとに、データ送受信手段(受信側)112による応答パケットの受信結果をもとに受信側ネットワーク42の可用帯域を推定し、第1実施形態の目標送信速度推定手段12と同様にして推定した送信側ネットワーク41の可用帯域と、上記受信側の可用帯域をもとに、目標送信速度を推定する。ここで、上記受信側の可用帯域の推定方法は、例えば、データ送受信手段(受信側)112が受信した応答パケットによってデータ受信装置1への正常な到着が新たに確認されたデータのサイズまたはその統計値を、上記応答パケットのデータ送受信手段(受信側)112における受信間隔またはその統計値で除算した値を上記受信側の可用帯域と推定する方法である。また、上記推定方法に限らず、例えば、データ送受信手段(受信側)112における受信間隔が予め定められた閾値以下の応答パケットを1まとまりの応答パケット群と捉え、上記応答パケット群によってデータ受信装置1への正常な到着が新たに確認されたデータのサイズまたはその統計値を、上記応答パケット群の受信にかかった時間またはその統計値で除算した値を上記受信側の可用帯域と推定する方法であっても良いし、中継サーバ3における滞留データサイズ、つまり、データ送受信手段(送信側)111が受信済みであり、且つ、データ送受信手段(受信側)112がまだ送出していないデータパケットのサイズを計測し、上記滞留データサイズの増加速度(減少しているときは負値の増加速度と捉える)を、第1実施形態の目標送信速度推定手段12と同様にして推定した送信側ネットワーク41の可用帯域から減算した値を上記受信側の可用帯域と推定する方法であっても良いし、データ送受信手段(送信側)111が受信したデータパケットを中継サーバ3において一時的に滞留させておき、上記滞留させたデータパケットをまとめてデータ送受信手段(受信側)112から送信し、上記滞留させたデータパケットの送信で得られたスループットを上記受信側の可用帯域と推定する方法であっても良いし、上記受信側の可用帯域は急変しないと仮定して、中継サーバ3とデータ受信装置1との前回の通信セッションで得られた可用帯域またはスループットの最大値を上記受信側の可用帯域と推定する方法であっても良い。また、ここで、上記目標送信速度の推定方法は、例えば、送信側ネットワーク41の可用帯域と受信側ネットワーク42の可用帯域のいずれかの値、または、小さい方の値を上記目標送信速度と推定する方法である。また、上記推定方法に限らず、例えば、タイムスタンプの値などを用いてデータ送信装置2と中継サーバ3との間の往復遅延時間(送信側ネットワーク41の往復遅延時間)と、中継サーバ3とデータ受信装置1との間の往復遅延時間(受信側ネットワーク42の往復遅延時間)をそれぞれ算出し、上記送信側ネットワーク41の往復遅延時間またはその統計値を送信側ネットワーク41の可用帯域に乗算した値と、上記受信側ネットワーク42の往復遅延時間またはその統計値を受信側ネットワーク42の可用帯域に乗算した値のいずれかの値、または、小さい方の値を上記目標送信速度と推定する方法であっても良い。
【0075】
[動作の説明]
次に、
図4および
図5を参照して、本発明の第2実施形態の動作について説明する。
【0076】
まず中継サーバ3のデータ送受信手段(送信側)111が、送信側ネットワーク41を経由してデータ送信装置2からデータパケットが送信されてきた際に、上記データパケットを受信し、上記データパケットをデータ送受信手段(受信側)112に転送する(ステップS21)。
【0077】
中継サーバ3のデータ送受信手段(受信側)112が、データ送受信手段(送信側)111からデータパケットを転送された際に、受信側ネットワーク42を経由して上記データパケットをデータ受信装置1に送信する(ステップS22)。
【0078】
目標送信速度推定手段12が、データ送受信手段(送信側)111がデータパケットを受信した際、または、一定時間ごとに、データ送受信手段(送信側)111によるデータパケットの受信結果をもとに送信側ネットワーク41の可用帯域を推定する。また目標送信速度推定手段12は、データ送受信手段(受信側)112が応答パケットを受信した際、または、一定時間ごとに、データ送受信手段(受信側)112による応答パケットの受信結果をもとに受信側ネットワーク42の可用帯域を推定する。こうして推定した送信側の可用帯域と推定した受信側の可用帯域とをもとに、目標送信速度推定手段12は目標送信速度を推定する(ステップS23)。
【0079】
現在送信速度推定手段13が、データ送受信手段(送信側)111がデータパケットを受信した際、または、一定時間ごとに、データ送受信手段(送信側)111によるデータパケットの受信結果をもとに、現在送信速度を推定する(ステップS24)。この現在送信速度は、現時点でデータ送信装置2がデータパケットを送出する送信速度である。
【0080】
送信制御状態推定手段14が、データ送信装置2が応答パケットの内容や受信状況をもとに送信可能なデータパケットの量を決定する際に、どのような決定方法を用いているかという送信制御状態を推定する(ステップS25)。この送信可能なデータパケットの量の決定は、データ送受信手段(送信側)111がデータパケットを受信した際、または、現在送信速度推定手段13が現在送信速度を推定した際、または、一定時間ごとに行う。
【0081】
次に応答送信頻度決定手段15が、標送信速度推定手段12が推定した目標送信速度と、現在送信速度推定手段13が推定した現在送信速度と、送信制御状態推定手段14が推定した送信可能なデータパケットの量の決定方法のうちの1つ以上の情報をもとに、データ送受信手段(送信側)111がデータ送信装置2に送信する応答パケットの送信頻度を決定する(ステップS26)。特に、推定した目標送信速度と推定した現在送信速度とをもとに、上記現在送信速度が上記目標送信速度に近付くように応答パケットの送信頻度を決定する。この送信頻度の決定は、データ送受信手段(送信側)111がデータパケットを受信した際、または、目標送信速度推定手段12が目標送信速度を推定した際、または、現在送信速度推定手段13が現在送信速度を推定した際、または、送信制御状態推定手段14が送信制御状態を推定した際、または、一定時間ごとに、行う。
【0082】
次にデータ送受信手段(送信側)111が、データパケットを受信した際、または、一定時間ごとに、上記データパケットを正常に受信できたか否かを示す応答パケットを、応答送信頻度決定手段15が決定した送信頻度で上記データ送信装置2に送信する(ステップS27)。
【0083】
[効果の説明]
本実施形態によれば、推定した目標送信速度と、推定した現在送信速度と、推定した送信可能なデータパケットの量の決定方法のうちの1つ以上の情報をもとに、データ送受信手段(送信側)111がデータ送信装置2に送信する応答パケットの送信頻度を、応答送信頻度決定手段15が決定している。
【0084】
これにより、可用帯域を推定し、推定結果に基づいてデータ送信装置2のトランスポートプロトコルの送信可能なデータ量がどこまで、どの程度速く増加するかを判断して、確認応答パケットの返信頻度を変更する。その結果、可用帯域を素早く使い切れるように加速し、且つ不必要な確認応答パケットの返信を抑制することができる。
【0085】
特に、データ送受信手段(送信側)111がデータ送信装置2に送信する応答パケットの送信頻度を、推定した目標送信速度と推定した現在送信速度とをもとに、上記現在送信速度が上記目標送信速度に近付くように応答パケットの送信頻度を決定することにより、応答パケットの送信頻度を最適化することができ、受信トラヒックをより一層高速化することができる。
【0086】
さらに、本実施形態では中継サーバ3の目標送信速度推定手段12が、データパケットの受信結果と応答パケットの受信結果をもとに目標送信速度を推定している。これによりデータ送信装置2とデータ受信装置1との間のデータ通信を一度終端する中継サーバ3を含むシステムにおいても、可用帯域を素早く使い切れるように加速し、且つ不必要な確認応答パケットの返信を抑制することができる。
【0087】
〔その他の実施形態〕
上述した本発明の各実施形態に係る、受信トラヒックの高速化装置は、このような構成や動作を実現するプログラムを実行できる情報処理装置によっても実現されうる。例えば、本発明の受信トラヒックの高速化装置は、情報処理装置に上述した高速化方法を実行させるプログラムを読み込ませて実行させることにより、実現することも考えられる。このプログラムは、コンピュータ読み取り可能な記録媒体の形態で、流通され得る。このような記録媒体に記録されたプログラムを読み込んで、情報処理装置で実行することにより、本実施形態の機能をソフトウェア的に実現してもよい。
【0088】
図6(a)は、本発明のその他の実施形態の受信トラヒックの高速化装置を説明するためのブロック図であり、
図6(b)はその他の実施形態の受信トラヒックの高速化装置に用いられる情報処理装置の一例を示すブロック図である。
図6(b)の情報処理装置300は、CPU(Central Processing Unit)301、およびメモリ302を含む。このようなハードウェア構成の情報処理装置300で、上述した本発明の実施形態の、受信トラヒックの高速化装置は、実現され得る。すなわち、CPU301に、目標送信速度推定処理、現在送信速度推定処理、および応答送信頻度決定処理などを実行させ、可用帯域を推定し、推定結果に基づいてデータ送信装置のトランスポートプロトコルの送信可能なデータ量がどこまで、どの程度速く増加するかを判断して、確認応答パケットの返信頻度を変更するように構成すればよい。このような処理を実行させるプログラムは、プログラムを記録した記録媒体の形態で、流通され得る。このプログラムは、CF(Compact Flash(登録商標))およびSD(Secure Digital)等の汎用的な半導体記録デバイス、フレキシブルディスク(Flexible Disk)等の磁気記録媒体、またはCD−ROM(Compact Disc Read Only Memory)などの光学記録媒体などの形態で、流通され得る。
【0089】
以上、本発明の好ましい実施形態を説明したが、本発明はこれに限定されるものではない。特許請求の範囲に記載した発明の範囲内で、種々の変形が可能であり、それらも本発明の範囲に含まれることはいうまでもない。
【0090】
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)データ送信装置から受信したデータパケットに対して応答パケットを返信するデータ受信装置に用いられる受信トラヒックの高速化装置であって、
データパケットの受信結果をもとにネットワークの可用帯域を推定し、推定された可用帯域をもとに目標送信速度を推定する目標送信速度推定手段と、
前記データパケットの受信結果をもとに、前記データパケットを前記データ送信装置が送出する現在の送信速度を推定する現在送信速度推定手段と、
前記推定した目標送信速度と前記推定した現在送信速度とをもとに、前記現在送信速度が前記目標送信速度に近付くように応答パケットの送信頻度を決定する応答送信頻度決定手段と、を含む受信トラヒックの高速化装置。
(付記2)前記応答送信頻度決定手段は、条件に応じて第1の送信頻度決定方法と第2の送信頻度決定方法のうちのどちらを用いて応答パケットの送信頻度を決定するかを判断し、
前記第1の送信頻度決定方法で決定される応答パケットの送信頻度は、前記第2の送信頻度決定方法で決定される応答パケットの送信頻度よりも大きくなるように設定されている、付記1に記載の受信トラヒックの高速化装置。
(付記3)前記応答送信頻度決定手段は、前記第1の送信頻度決定方法を用いる場合、目標送信速度が大きいほど応答パケットの送信頻度が大きくなる、または、現在の送信速度が大きいほど応答パケットの送信頻度が小さくなる関数を用いて、前記応答パケットの送信頻度を決定する、付記2に記載の受信トラヒックの高速化装置。
(付記4)前記応答送信頻度決定手段は、前記第1の送信頻度決定方法を用いる場合、目標送信速度を現在の送信速度で除算した値を、第1の定数乗または第1の定数倍してから、第2の定数を減算した値を用いて、前記応答パケットの送信頻度を決定する、付記2又は付記3に記載の受信トラヒックの高速化装置。
(付記5)前記応答送信頻度決定手段は、前記第2の送信頻度決定方法を用いる場合、現在の送信速度が大きいほど応答パケットの送信頻度が小さくなる関数を用いて、前記応答パケットの送信頻度を決定する、付記2乃至付記4のいずれか一つに記載の受信トラヒックの高速化装置。
(付記6)前記応答送信頻度決定手段は、目標送信速度に第3の定数を乗算した値よりも現在の送信速度が小さい場合に、前記第1の送信頻度決定方法を用いると判断し、それ以外の場合に前記第2の送信頻度決定方法を用いると判断する、付記2乃至付記5のいずれか一つに記載の受信トラヒックの高速化装置。
(付記7)前記データ送信装置とデータ受信装置との間の通信に用いられるプロトコルがTCP(Transmission Control Protocol)である場合に、
データパケットの受信状況と現在の送信速度をもとに、データ送信装置における輻輳制御の状態がスロースタートであるか輻輳回避であるかを推定する送信制御状態推定手段をさらに備え、
前記応答送信頻度決定手段は、前記送信制御状態推定手段によって輻輳制御の状態がスロースタートであると推定された場合に、前記第1の送信頻度決定方法を用いると判断し、輻輳回避であると推定された場合に、前記第2の送信頻度決定方法を用いると判断する、付記2乃至付記5のいずれか一つに記載の受信トラヒックの高速化装置。
(付記8)前記データ送信装置と前記データ受信装置との間に設置された中継サーバに適用され、
前記目標送信速度推定手段は、前記データ送信装置からのデータパケットの受信状況をもとに、前記データ送信装置と前記中継サーバとの間のネットワークにおける第1の可用帯域を推定し、前記データ受信装置からの応答パケットの受信状況または前記中継サーバに滞留しているデータ量の変化の速度をもとに、前記中継サーバと前記データ受信装置との間のネットワークにおける第2の可用帯域を推定し、前記第1の可用帯域と前記第2の可用帯域をもとに前記目標送信速度を推定する、付記1乃至付記7のいずれか一つに記載の受信トラヒックの高速化装置。
(付記9)データ送信装置から受信したデータパケットに対して応答パケットを返信するデータ受信装置に用いられる受信トラヒックの高速化方法であって、
データパケットの受信結果をもとにネットワークの可用帯域を推定し、推定された可用帯域をもとに目標送信速度を推定し、
前記データパケットの受信結果をもとに、前記データパケットを前記データ送信装置が送出する現在の送信速度を推定し、
前記推定した目標送信速度と前記推定した現在送信速度とをもとに、前記現在送信速度が前記目標送信速度に近付くように応答パケットの送信頻度を決定する、受信トラヒックの高速化方法。
(付記10)前記応答パケットの送信頻度の決定は、条件に応じて第1の送信頻度決定方法と第2の送信頻度決定方法のうちのどちらを用いて応答パケットの送信頻度を決定するかを判断し、
前記第1の送信頻度決定方法で決定される応答パケットの送信頻度は、前記第2の送信頻度決定方法で決定される応答パケットの送信頻度よりも大きくなるように設定されている、付記9に記載の受信トラヒックの高速化方法。
(付記11)前記第1の送信頻度決定方法を用いる場合、目標送信速度が大きいほど応答パケットの送信頻度が大きくなる、または、現在の送信速度が大きいほど応答パケットの送信頻度が小さくなる関数を用いて、前記応答パケットの送信頻度を決定する、付記10に記載の受信トラヒックの高速化方法。
(付記12)前記第1の送信頻度決定方法を用いる場合、目標送信速度を現在の送信速度で除算した値を、第1の定数乗または第1の定数倍してから、第2の定数を減算した値を用いて、前記応答パケットの送信頻度を決定する、付記10又は付記11に記載の受信トラヒックの高速化方法。
(付記13)前記第2の送信頻度決定方法を用いる場合、現在の送信速度が大きいほど応答パケットの送信頻度が小さくなる関数を用いて、前記応答パケットの送信頻度を決定する、付記10乃至付記12のいずれか一つに記載の受信トラヒックの高速化方法。
(付記14)目標送信速度に第3の定数を乗算した値よりも現在の送信速度が小さい場合に、前記第1の送信頻度決定方法を用いると判断し、それ以外の場合に前記第2の送信頻度決定方法を用いると判断する、付記10乃至付記13のいずれか一つに記載の受信トラヒックの高速化方法。
(付記15)前記データ送信装置とデータ受信装置との間の通信に用いられるプロトコルがTCP(Transmission Control Protocol)である場合に、
データパケットの受信状況と現在の送信速度をもとに、データ送信装置における輻輳制御の状態がスロースタートであるか輻輳回避であるかを推定し、
輻輳制御の状態がスロースタートであると推定された場合に、前記第1の送信頻度決定方法を用いると判断し、輻輳回避であると推定された場合に、前記第2の送信頻度決定方法を用いると判断する、付記10乃至付記13のいずれか一つに記載の受信トラヒックの高速化方法。
(付記16)前記データ送信装置と前記データ受信装置との間に設置された中継サーバに適用され、
前記データ送信装置からのデータパケットの受信状況をもとに、前記データ送信装置と前記中継サーバとの間のネットワークにおける第1の可用帯域を推定し、前記データ受信装置からの応答パケットの受信状況または前記中継サーバに滞留しているデータ量の変化の速度をもとに、前記中継サーバと前記データ受信装置との間のネットワークにおける第2の可用帯域を推定し、前記第1の可用帯域と前記第2の可用帯域をもとに前記目標送信速度を推定する、付記9乃至付記15のいずれか一つに記載の受信トラヒックの高速化方法。
(付記17)データ送信装置から受信したデータパケットに対して応答パケットを返信するデータ受信装置に用いられる受信トラヒックの高速化プログラムであって、
コンピュータに、
データパケットの受信結果をもとにネットワークの可用帯域を推定し、推定された可用帯域をもとに目標送信速度を推定する目標送信速度推定処理と、
前記データパケットの受信結果をもとに、前記データパケットを前記データ送信装置が送出する現在の送信速度を推定する現在送信速度推定処理と、
前記推定した目標送信速度と前記推定した現在送信速度とをもとに、前記現在送信速度が前記目標送信速度に近付くように応答パケットの送信頻度を決定する応答送信頻度決定処理と、を実行させる受信トラヒックの高速化プログラム。
(付記18)前記応答送信頻度決定処理では、条件に応じて第1の送信頻度決定方法と第2の送信頻度決定方法のうちのどちらを用いて応答パケットの送信頻度を決定するかを判断し、
前記第1の送信頻度決定方法で決定される応答パケットの送信頻度は、前記第2の送信頻度決定方法で決定される応答パケットの送信頻度よりも大きくなるように設定されている、付記17に記載の受信トラヒックの高速化プログラム。
(付記19)前記応答送信頻度決定処理では、前記第1の送信頻度決定方法を用いる場合、目標送信速度が大きいほど応答パケットの送信頻度が大きくなる、または、現在の送信速度が大きいほど応答パケットの送信頻度が小さくなる関数を用いて、前記応答パケットの送信頻度を決定する、付記18に記載の受信トラヒックの高速化プログラム。
(付記20)前記応答送信頻度決定処理では、前記第1の送信頻度決定方法を用いる場合、目標送信速度を現在の送信速度で除算した値を、第1の定数乗または第1の定数倍してから、第2の定数を減算した値を用いて、前記応答パケットの送信頻度を決定する、付記18又は付記19に記載の受信トラヒックの高速化プログラム。
(付記21)前記応答送信頻度決定処理では、前記第2の送信頻度決定方法を用いる場合、現在の送信速度が大きいほど応答パケットの送信頻度が小さくなる関数を用いて、前記応答パケットの送信頻度を決定する、付記18乃至付記20のいずれか一つに記載の受信トラヒックの高速化プログラム。
(付記22)前記応答送信頻度決定処理では、目標送信速度に第3の定数を乗算した値よりも現在の送信速度が小さい場合に、前記第1の送信頻度決定方法を用いると判断し、それ以外の場合に前記第2の送信頻度決定方法を用いると判断する、付記18乃至付記21のいずれか一つに記載の受信トラヒックの高速化プログラム。
(付記23)前記データ送信装置とデータ受信装置との間の通信に用いられるプロトコルがTCP(Transmission Control Protocol)である場合に、
データパケットの受信状況と現在の送信速度をもとに、データ送信装置における輻輳制御の状態がスロースタートであるか輻輳回避であるかを推定する送信制御状態推定処理を、さらに前記コンピュータに実行させ、
前記応答送信頻度決定処理では、前記送信制御状態推定処理によって輻輳制御の状態がスロースタートであると推定された場合に、前記第1の送信頻度決定方法を用いると判断し、輻輳回避であると推定された場合に、前記第2の送信頻度決定方法を用いると判断する、付記18乃至付記21のいずれか一つに記載の受信トラヒックの高速化プログラム。
(付記24)前記データ送信装置と前記データ受信装置との間に設置された中継サーバに適用され、
前記目標送信速度推定処理では、前記データ送信装置からのデータパケットの受信状況をもとに、前記データ送信装置と前記中継サーバとの間のネットワークにおける第1の可用帯域を推定し、前記データ受信装置からの応答パケットの受信状況または前記中継サーバに滞留しているデータ量の変化の速度をもとに、前記中継サーバと前記データ受信装置との間のネットワークにおける第2の可用帯域を推定し、前記第1の可用帯域と前記第2の可用帯域をもとに前記目標送信速度を推定する、付記17乃至付記23のいずれか一つに記載の受信トラヒックの高速化プログラム。