JP2011155406A - 送信装置、送信方法及びプログラム - Google Patents

送信装置、送信方法及びプログラム Download PDF

Info

Publication number
JP2011155406A
JP2011155406A JP2010014722A JP2010014722A JP2011155406A JP 2011155406 A JP2011155406 A JP 2011155406A JP 2010014722 A JP2010014722 A JP 2010014722A JP 2010014722 A JP2010014722 A JP 2010014722A JP 2011155406 A JP2011155406 A JP 2011155406A
Authority
JP
Japan
Prior art keywords
transmission rate
priority
amount
transmission
rtt
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010014722A
Other languages
English (en)
Other versions
JP5308364B2 (ja
Inventor
Shuhei Oda
周平 小田
Kazuhiro Kamimura
和宏 上村
Katsunori Aoki
勝典 青木
Makoto Yamamoto
真 山本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Japan Broadcasting Corp
Original Assignee
Nippon Hoso Kyokai NHK
Japan Broadcasting Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Hoso Kyokai NHK, Japan Broadcasting Corp filed Critical Nippon Hoso Kyokai NHK
Priority to JP2010014722A priority Critical patent/JP5308364B2/ja
Publication of JP2011155406A publication Critical patent/JP2011155406A/ja
Application granted granted Critical
Publication of JP5308364B2 publication Critical patent/JP5308364B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

【課題】既存のネットワークを変更することなく、利用者の所望する優先度に従ったデータ伝送を、簡易な手法により実現する。
【解決手段】送信レート決定部15は、パケットロスが発生している場合、または、パケットロスが発生しておらずRTTが増加している場合、輻輳が発生していると判定し、前回算出したCWNDよりも小さくなるように、優先度に従って新たなCWNDを算出する。また、パケットロスが発生しておらずRTTの変化が無いまたはRTTが減少している場合、輻輳が発生していないと判定し、前回算出したCWNDよりも大きくなるように、優先度に従って新たなCWNDを算出する。これにより、既存のネットワーク経路3をそのまま用いることができる。また、輻輳制御方式を変更するのみで済むから、優先度に従ったデータ伝送を簡易な手法により実現できる。
【選択図】図2

Description

本発明は、複数の送信装置及び複数の受信装置が帯域を共有して接続されたネットワークにおいて、利用者の意図に従ったデータ伝送を実現するために、各伝送の送信レートを制御する技術に関する。
従来、インターネットに代表されるIPネットワークにおいて、送受信装置は同一のネットワーク経路を共有してデータを伝送する。しかしながら、送信装置から送信されたパケットの合計がネットワーク経路の帯域幅を超えた場合、ルータにてパケットは廃棄されてしまい、データは正常に伝送されなくなる。また、パケットが送信装置から無制限に送信された場合、IPネットワークに輻輳が発生し、データは正常に伝送されなくなる。このため、送受信装置において、輻輳を回避することが必要となる。そこで、送受信装置は、IPネットワークで用いられる代表的な伝送プロトコルであるTCP(Transmission Control Protocol)により、輻輳制御を行っている。
TCPには輻輳制御機能が組み込まれており、その制御方法として様々な方式が提案されている。提案されているいずれの方式も、送信装置が、受信装置から確認応答(ACK)パケットを受信してパケットロスの発生を検出することにより、または、RTT(Round Trip Time:ラウンドトリップタイム)を計測してその変化を判定することにより、パケット送信量を決定し、送信レートを制御するものである。
(NewReno方式)
TCPに組み込まれた輻輳制御機能のうち最も普及している方式は、TCP NewReno方式である(非特許文献1を参照)。このNewReno方式は、送信装置が、インクリメントする確認応答番号を含むACKを受信した場合、その受信毎に、一度に送信するパケット送信量を1パケットずつ増加させ、同一の確認応答番号を含むACKを連続して受信した場合、パケットロスの発生を検出したと判定し、一度に送信するパケット送信量を1/2に減少させるものである。このようなパケットロスの発生によってパケット送信量を調節するNewReno方式は、ロスベース輻輳制御方式と呼ばれている。
ここで、ACKに含まれる確認応答番号は、送信装置により送信されたデータパケットのパケット番号に対応しており、正常時には、ACK毎にインクリメントした値となる。受信装置がデータパケットを受信したが、正しいパケット番号ではなかったと判定した場合には(異常時には)、本来受信すべき番号を確認応答番号としたACKが生成され、送信装置へ送信される。つまり、受信装置は、正しい番号ではないパケット番号を含むデータパケットを受信した場合、本来受信すべき番号を確認応答番号としたACKを送信装置へ送信する。このように、受信装置は、正しい番号ではないパケット番号を含むデータパケットを連続して受信した場合、同一の確認応答番号を含むACKを連続して送信装置へ送信する。
図10は、従来のNewReno方式において、送信パケット数を示す輻輳ウィンドウサイズ(CWND)の変化を説明するグラフである。このグラフは、シミュレーションにより得られた結果を示している。一般に、TCPに組み込まれた輻輳制御は、送信装置が一度に送信するパケット数である輻輳ウィンドウサイズ(CWND)を調節することで行われる。
NewReno方式では、送信装置は、インクリメントする確認応答番号を含むACKを、受信装置から連続して受信した場合、その受信毎に、CWNDを式(1)のように増加させる。
CWND=CWND+(1/CWND) ・・・(1)
これを時間軸上に表すと、CWNDは、図10に示すa−b区間のように増加する。
そして、送信装置は、同一の確認応答番号を含むACKを3回連続して受信した場合、パケットロスが発生したものと判定し、CWNDを式(2)のように減少させる。つまり、パケット送信量を1/2に減少させる。
CWND=(1/2)×CWND ・・・(2)
これを時間軸上で表すと、CWNDは、図10において、b時点でパケットロスの発生が判定された場合、b−c区間のように減少する。そして、送信装置は、インクリメントする確認応答番号を含むACKを連続して受信すると、その受信毎に再び、CWNDを式(1)のように増加させる。これを時間軸上で表すと、CWNDは、図10に示すc−d区間のように増加する。
尚、図10に示したCWNDの変化は、NewReno方式における輻輳回避フェーズと呼ばれる制御フェーズの様子を表したものであり、このフェーズに先がけて、ネットワーク帯域の上限を探るためのスロースタートフェーズと呼ばれる初期制御が行われる。つまり、図10に示したCWNDの変化は、初期制御が行われた後の定常的な動作である輻輳回避フェーズを表したものである。
NewReno方式の他に、後述する多くの輻輳制御方式が提案されている。いずれの方式も、送信装置が、正常に確認応答を受信してCWNDを増加させ、正常に確認応答を受信しない場合にパケットロスの発生を判定することにより、またはRTTの増加を判定することにより、CWNDを減少させるものである。
(Vegas方式)
他の代表的な輻輳制御方式として、TCP Vegas方式(非特許文献2を参照)がある。このVegas方式は、送信装置がRTTの増減に従ってパケット送信量を調節するものであり、ディレイベース輻輳制御方式と呼ばれている。
(他の方式)
これらの2つの輻輳制御方式を基本にして、帯域の有効利用及び送信レートの公平性の観点から、多くの改良方式が提案されている(例えば特許文献1を参照)。また、伝送されているデータの内容に緊急性がない場合、そのデータのパケット送信量を抑え、緊急性がある場合、そのデータのパケット送信量を増やすことにより、緊急性の高いデータ伝送を優先させる方式も提案されている(特許文献2を参照)。このように、従来の輻輳制御方式は、送信装置及び受信装置が自発的に送信レートを制御することが前提になっている。
一方、IPネットワークにQoS(Quality of Service)機能を持たせ、各伝送の内容に応じた優先度に基づいて、ルータのパケット転送順位を制御する方式も提案されている。代表的な方式として、IntServ方式及びDiffServ方式がある(非特許文献3,4を参照)。これらの方式は、パケットに優先度が記述されており、IPネットワークを構成するルータが、優先度の高いパケットを優先度の低いパケットよりも先に転送するものである。
特開2006−217234号公報 特開2006−14329号公報
IETF RFC3782 L.Brakmo and L.Peterson, TCP Vegas: End to End Congestion Avoidance on a Global Internet, IEEE Journal on Selected Areas in Communication, Vol 13 No.8, Oct.1995 IETF RFC1633 IETF RFC2474
前述した非特許文献1,2及び特許文献1による方式は、送受信装置がIPネットワークの帯域を公平に利用するように、送信レートを制御することを目的としている。このため、伝送内容に応じた優先度に従ってデータを伝送することができないという問題があった。例えば、リアルタイム性が要求される映像データ及び音声データを伝送しているときに、後から伝送しても構わないデータの伝送が開始されてネットワークが混雑すると、リアルタイム性が要求される映像または音声が途切れてしまうことがある。また、利用者により緊急性を要すると判断されたデータを伝送したい場合であっても、緊急性を要するデータを他のデータと比較して高速に伝送することができない。
また、前述した特許文献2による方式は、ある送信装置から受信装置への送信レートを抑え、他の送信装置から受信装置へのデータ伝送を優先させるものである。このため、利用者の所望する段階的な優先度に従って、送信レートを制御することができない。
また、従来のNewReno方式では、送信装置は、受信装置からACKを受信した時に、ACKに含まれる確認応答番号に基づいてパケット送信量を増減させる。このため、RTTが大きい場合にはパケット送信量を増加させるのに時間がかかってしまう。つまり、RTTが大きい場合はRTTが小さい場合に比べ、相対的に送信レートを増加させるのが遅くなってしまう。一般に、RTTは、送信装置と受信装置との間の距離に比例して増大する。このため、受信装置を基点とすると、遠方の送信装置との間の送信レートは、距離的に近い送信装置との間の送信レートよりも低くなってしまう。これでは、利用者の所望する優先度に従ったデータ伝送を実現することができず、また、利用者が意図するパケット送信量のデータ伝送を実現することができない。
図11は、従来のNewReno方式における、RTTの違いによるCWNDの変化を説明するグラフである。このグラフは、シミュレーションにより得られた結果を示している。図11に示すように、RTTが大きい場合はRTTが小さい場合に比べ、パケット送信量を示すCWNDを増加させるのに時間を要し、送信レートは低くなる。
また、前述した非特許文献3,4の方式は、IPネットワークを構成するルータが優先度に応じて転送を行うものである。この方式を実現するためには、IPネットワークを構成するルータを、この方式に対応したものに置き換える必要があり、既存のIPネットワークをそのまま利用することができないという問題があった。
このように、利用者の所望する優先度に従って、優先度の高いデータを高速に伝送し、優先度の低いデータを低速に伝送できるように、既存のIPネットワークを変更することなく簡易な手法によって各伝送の送信レートを制御することが望まれていた。また、RTTの大小に影響を受けることなく、利用者の意図に従ったデータ伝送を実現することが望まれていた。
そこで、本発明はかかる問題を解決するためになされたものであり、本発明の目的は、既存のネットワークを変更することなく、利用者の意図に従ったデータ伝送を、簡易な手法にて実現する送信装置、送信方法及びプログラムを提供することにある。具体的には、本発明の目的は、利用者の所望する優先度に従って、優先度の高いデータを高速に伝送し、優先度の低いデータを低速に伝送することが可能なデータ伝送を、簡易な手法にて実現することにある。また、他の目的は、RTTの大小にかかわらず、利用者の意図に従ったデータ伝送を、簡易な手法にて実現することにある。
上記目的を達成するために、本発明による送信装置は、ネットワークの輻輳状態に応じて送信レートを制御しながら受信装置へデータパケットを送信し、前記データパケットに対する応答を前記受信装置から受信する送信装置において、前記送信したデータパケットに対する応答を受信する受信部と、前記受信部により受信された応答に基づいて、前記ネットワークの輻輳状態を判定し、前記輻輳状態及び優先度に基づいて、前記輻輳を回避するための送信レートを決定する送信レート決定部と、を備え、前記送信レート決定部が、前記送信レートを減少させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの減少量が小さくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの減少量が大きくなるように、前記送信レートを決定し、前記送信レートを増加させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの増加量が大きくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの増加量が小さくなるように、前記送信レートを決定する、ことを特徴とする。
また、本発明による送信装置は、さらに、前記データパケットの送信時刻及び前記受信部により受信された応答の受信時刻に基づいて、RTT(Round Trip Time:ラウンドトリップタイム)を計測するRTT計測部と、前記受信部により受信された応答に含まれる確認応答番号に基づいて、パケットロスの発生を検出するパケットロス検出部と、を備え、前記送信レート決定部が、前記パケットロス検出部によりパケットロスの発生が検出された場合、または、前記パケットロスの発生が検出されず、かつ前記RTT計測部により計測されたRTTが増加している場合、前記ネットワークの経路に輻輳が発生していると判定し、前記パケットロスの発生が検出されず、かつ前記RTTが減少している場合、前記ネットワークの経路に輻輳が発生していないと判定する経路状態判定手段と、
前記経路状態判定手段により前記ネットワークの経路に輻輳が発生していると判定された場合、前回算出したデータ量よりも減少させ、かつ、前記優先度が高いときは低いときよりも減少量が小さくなるように、優先度が低いときは高いときよりも減少量が大きくなるように、新たなデータ量を算出し、前記ネットワークの経路に輻輳が発生していないと判定された場合、前回算出したデータ量よりも増加させ、かつ、前記優先度が高いときは低いときよりも増加量が大きくなるように、優先度が低いときは高いときよりも増加量が小さくなるように、新たなデータ量を算出するデータ量算出手段と、前記データ量算出手段により算出された新たなデータ量と、前記受信部により受信された応答に含まれる最大受付可能データ量とを比較し、前記新たなデータ量が前記最大受付可能データ量以下の場合、前記新たなデータ量をパケット送信量に決定し、前記新たなデータ量が前記最大受付可能データ量よりも大きい場合、前記最大受付可能データ量をパケット送信量に決定するパケット送信量決定手段と、を備え、前記パケット送信量決定手段により決定されたパケット送信量にて送信レートを制御する、ことを特徴とする。
また、本発明による送信装置は、前記RTT計測部の代わりに、滞留パケット数算出部を備え、前記滞留パケット数算出部が、前記データパケットの送信時刻及び前記受信部により受信された応答の受信時刻に基づいて、RTTを計測し、前記RTT、及び前記送信レート決定部により決定された送信レートにて送信されるデータパケットの量に基づいて、前記ネットワークに滞留している滞留パケット数を算出し、前記送信レート決定部が、前記受信部により受信された応答に含まれる確認応答番号及び最大受付可能データ量、並びに前記滞留パケット数算出部により算出された滞留パケット数に基づいて、前記ネットワークの輻輳状態を判定し、前記送信レートを減少させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの減少量が小さくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの減少量が大きくなるように、前記送信レートを決定し、前記送信レートを増加させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの増加量が大きくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの増加量が小さくなるように、前記送信レートを決定する、ことを特徴とする。
また、本発明による送信装置は、ネットワークの輻輳状態に応じて送信レートを制御しながら受信装置へデータパケットを送信し、前記データパケットに対する応答を前記受信装置から受信する送信装置において、前記送信したデータパケットに対する応答を受信する受信部と、前記データパケットの送信時刻及び前記受信部により受信された応答の受信時刻に基づいて、RTT(Round Trip Time:ラウンドトリップタイム)を計測するRTT計測部と、前記受信部により受信された応答に基づいて、前記ネットワークの輻輳状態を判定し、前記輻輳状態、予め設定された優先度、及び前記RTT計測部により計測されたRTTに基づいて、前記輻輳を回避するための送信レートを決定する送信レート決定部と、を備え、前記送信レート決定部が、前記送信レートを減少させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの減少量が小さくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの減少量が大きくなるように、前記送信レートを決定し、前記送信レートを増加させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの増加量が大きくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの増加量が小さくなるように、前記送信レートを決定し、かつ、前記送信レートを減少させる際に、前記RTTが大きい場合は、前記RTTが小さい場合よりも前記送信レートの減少量が小さくなるように、前記送信レートを決定し、前記RTTが小さい場合は、前記RTTが大きい場合よりも前記送信レートの減少量が大きくなるように、前記送信レートを決定し、前記送信レートを増加させる際に、前記RTTが大きい場合は、前記RTTが小さい場合よりも前記送信レートの増加量が大きくなるように、前記送信レートを決定し、前記RTTが小さい場合は、前記RTTが大きい場合よりも前記送信レートの増加量が小さくなるように、前記送信レートを決定する、ことを特徴とする。
また、本発明による送信装置は、さらに、前記受信部により受信された応答に含まれる確認応答番号に基づいて、パケットロスの発生を検出するパケットロス検出部を備え、前記送信レート決定部が、前記パケットロス検出部によりパケットロスの発生が検出された場合、または、前記パケットロスの発生が検出されず、かつ前記RTT計測部により計測されたRTTが増加している場合、前記ネットワークの経路に輻輳が発生していると判定し、前記パケットロスの発生が検出されず、かつ前記RTTが減少している場合、前記ネットワークの経路に輻輳が発生していないと判定する経路状態判定手段と、前記経路状態判定手段により前記ネットワークの経路に輻輳が発生していると判定された場合、前回算出したデータ量よりも減少させ、かつ、前記優先度が高いときは低いときよりも減少量が小さくなるように、優先度が低いときは高いときよりも減少量が大きくなるように、かつ、前記RTTが大きいときは小さいときよりも減少量が小さくなるように、RTTが小さいときは大きいときよりも減少量が大きくなるように、新たなデータ量を算出し、前記ネットワークの経路に輻輳が発生していないと判定された場合、前回算出したデータ量よりも増加させ、かつ、前記優先度が高いときは低いときよりも増加量が大きくなるように、優先度が低いときは高いときよりも増加量が小さくなるように、かつ、前記RTTが大きいときは小さいときよりも増加量が大きくなるように、RTTが小さいときは大きいときよりも増加量が小さくなるように、新たなデータ量を算出するデータ量算出手段と、前記データ量算出手段により算出された新たなデータ量と、前記受信部により受信された応答に含まれる最大受付可能データ量とを比較し、前記新たなデータ量が前記最大受付可能データ量以下の場合、前記新たなデータ量をパケット送信量に決定し、前記新たなデータ量が前記最大受付可能データ量よりも大きい場合、前記最大受付可能データ量をパケット送信量に決定するパケット送信量決定手段と、を備え、前記パケット送信量決定手段により決定されたパケット送信量にて送信レートを制御する、ことを特徴とする。
また、本発明による送信装置は、さらに、前記データパケットが送信される受信装置の宛先アドレスと、前記宛先アドレスに対応する優先度とを保持する優先度保持部と、宛先アドレスを入力し、前記優先度保持部から前記宛先アドレスに対応する優先度を読み出し、前記優先度を前記送信レート決定部に出力する優先度生成部と、を備え、前記送信レート決定部が、前記優先度生成部により出力された優先度を入力し、前記送信レートを決定する、ことを特徴とする。
また、本発明による送信装置は、ネットワークの輻輳状態に応じて送信レートを制御しながら受信装置へデータパケットを送信し、前記データパケットに対する応答を前記受信装置から受信する送信装置において、前記送信したデータパケットに対する応答を受信する受信部と、前記データパケットの送信時刻及び前記受信部により受信された応答の受信時刻に基づいて、RTT(Round Trip Time:ラウンドトリップタイム)を計測するRTT計測部と、前記RTT計測部により計測されたRTTに基づいて、前記送信レートを減少させる際に、前記RTTが大きい場合は、前記RTTが小さい場合よりも前記送信レートの減少量が小さくなるように、前記送信レートを決定し、前記RTTが小さい場合は、前記RTTが大きい場合よりも前記送信レートの減少量が大きくなるように、前記送信レートを決定し、前記送信レートを増加させる際に、前記RTTが大きい場合は、前記RTTが小さい場合よりも前記送信レートの増加量が大きくなるように、前記送信レートを決定し、前記RTTが小さい場合は、前記RTTが大きい場合よりも前記送信レートの増加量が小さくなるように、前記送信レートを決定する送信レート決定部と、を備えたことを特徴とする。
また、本発明による送信装置は、前記送信レート決定部が、送信レートを増加させた結果、パケットロスの発生を検出する前にRTTが増加していることを判定した場合、前記送信レートの増加を抑える、ことを特徴とする。
さらに、本発明による送信方法は、ネットワークの輻輳状態に応じて送信レートを制御しながら受信装置へデータパケットを送信する送信方法において、データパケットを送信するステップと、前記送信したデータパケットに対する応答を受信するステップと、前記受信した応答に基づいて前記ネットワークの輻輳状態を判定するステップと、前記判定した輻輳状態及び優先度に基づいて、前記輻輳を回避するための送信レートを決定するステップと、を有し、前記送信レートを決定するステップが、前記送信レートを減少させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの減少量が小さくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの減少量が大きくなるように、前記送信レートを決定し、前記送信レートを増加させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの増加量が大きくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの増加量が小さくなるように、前記送信レートを決定する、ことを特徴とする。
さらに、本発明による送信プログラムは、コンピュータを、前記送信装置として機能させることを特徴とする。
本発明によれば、パケット送信量を算出する際に、利用者の意図が反映された優先度を考慮するようにしたから、利用者の意図に従ったデータ伝送を実現することができる。これにより、既存のネットワークをそのまま利用し、TCP方式の手順を変更することなく、輻輳制御方式を変更するのみで済むから、簡易な手法にて優先度に従ったデータ伝送を実現できる。また、本発明によれば、パケット送信量を算出する際にRTTを考慮するようにしたから、RTTの大小にかかわらず、利用者の意図に従ったデータ伝送を実現することができる。
実施例1の送信装置を含む全体システムの構成を示す図である。 実施例1による送信装置の構成を示すブロック図である。 送信レート決定部の構成を示すブロック図である。 送信装置による輻輳制御の処理を示すフローチャートである。 実施例1におけるCWNDの変化を説明するグラフである。 実施例2の送信装置を含む全体システムの構成を示す図である。 実施例3の送信装置を含む全体システムの構成を示す図である。 実施例4の送信装置を含む全体システムの構成を示す図である。 実施例5の送信装置に含まれる構成部を示す図である。 従来のNewReno方式におけるCWNDの変化を説明するグラフである。 従来のNewReno方式における、RTTの違いによるCWNDの変化を説明するグラフである。
以下、本発明を実施するための最良の形態について、図面を参照して説明する。第1の実施形態(実施例1)は、複数台の送信装置から1台の受信装置へデータをアップロードするシステムを想定しており、外部から直接入力した優先度に従って送信レートを調節する例である。第2の実施形態(実施例2)は、複数台の送信装置から1台の受信装置へデータをアップロードするシステムを想定しており、優先度に従うことに加え、RTTの影響を受けないように送信レートを調節する例である。第3の実施形態(実施例3)は、1台の送信装置から複数台の受信装置へデータをダウンロードするシステムを想定しており、実施例1に対応し、外部から直接入力した優先度に従って送信レートを調節する例である。第4の実施形態(実施例4)は、1台の送信装置から複数台の受信装置へデータをダウンロードするシステムを想定しており、実施例2に対応し、優先度に従うことに加え、RTTの影響を受けないように送信レートを調節する例である。第5の実施形態(実施例5)は、データをアップロードまたはダウンロードするシステムを想定しており、優先度を外部から直接入力するのではなく、受信装置を示す宛先アドレスに基づいて優先度を生成する例である。第6の実施形態(実施例6)は、データをアップロードまたはダウンロードするシステムを想定しており、RTTの影響を受けないように送信レートを調節する例である。
まず、実施例1について詳細に説明する。実施例1は、複数台の送信装置から1台の受信装置へデータをアップロードするシステムを想定しており、外部から直接入力した優先度に従って送信レートを調節する例である。
図1は、実施例1の送信装置を含む全体システムの構成を示す図である。実施例1のシステムは、複数台の送信装置1−1,1−2,1−3,・・・(例えば、複数台のクライアント)と、1台の受信装置2(例えば、1台のサーバ)とを備えて構成され、複数台の送信装置1−1,1−2,1−3,・・・が1台の受信装置2へ向けて同時に伝送するデータのアップロードを想定したシステムである。送信装置1−1,1−2,1−3,・・・と受信装置2とはネットワーク経路3により接続される。
各送信装置1−1,1−2,1−3,・・・は、共有するネットワーク経路3を介して受信装置2へ向けてデータを伝送する。このため、データを同時に伝送するには、帯域を分け合う必要がある。従来のTCPによるデータ伝送では、送信装置に備えた輻輳制御機能により、各送信装置が公平に帯域を使用するように送信レートが制御される。
しかしながら、それぞれの伝送内容により、重要性または緊急度の高いファイルのデータを、より高速に受信装置2へ伝送したいという利用者の要求があっても、優先度を付けてデータを伝送することができなかった。そこで、実施例1では、利用者の所望する優先度に従ったデータ伝送を実現する。実施例2〜5においても同様である。
(送信装置の構成)
次に、図1に示した送信装置1−1,1−2,1−3,・・・の構成について説明する。図2は、実施例1による送信装置1(以下、送信装置1−1,1−2,1−3,・・・を総称して送信装置1という。)の構成を示すブロック図である。この送信装置1は、送信部10、受信部11、RTT(ラウンドトリップタイム)計測部12、パケットロス検出部13、RWND(受信ウィンドウサイズ)検出部14及び送信レート決定部15を備えている。
送信部10は、送信データを入力すると共に、送信レート決定部15からパケット送信量を入力し、送信データにTCPヘッダを付加してパケット(データパケット)を生成し、パケット送信量のパケットを受信装置2へ送信する。また、送信部10は、パケットを送信したときの時刻を内蔵タイマー(図示せず)から取得し、送信時刻をRTT計測部12に出力する。
ここで、受信装置2は、送信装置1により送信されたパケットを受信し、受信したパケットが本来受信すべきパケット番号のパケットであると判定した場合(パケットが正常であると判定した場合)、パケットに含まれるパケット番号を確認応答番号に設定し、確認応答番号を含むACK(ACKパケット)を生成して送信装置1へ送信する。一方、受信装置2は、送信装置1により送信されたパケットを受信し、受信したパケットが本来受信すべきパケット番号のパケットでないと判定した場合(パケットが正常でないと判定した場合)、本来受信すべきパケットに含まれるパケット番号を確認応答番号に設定し、確認応答番号を含むACKを生成して送信装置1へ送信する。したがって、受信装置2は、パケットが正常でないと連続して判定した場合、同一の確認応答番号を含むACKを連続して送信装置1へ送信する。
受信装置2から送信装置1へ送信されるACKは、送信装置1から受信装置2へ送信されたパケットに対する応答である。受信装置2は、ACKを生成する際に、受信装置2の最大受付可能データ量を示すRWNDをTCPヘッダに記述し、TCPヘッダを付加したACKを送信装置1へ送信する。つまり、送信装置1が受信するACKには、確認応答番号及びRWNDが含まれる。RWNDは、受信装置2において、送信装置1からパケットを受信することができる最大受付可能データ量を示す受信ウィンドウサイズである。
受信部11は、受信装置2から確認応答番号及びRWNDを含むACKを受信し、ACKを受信したときの時刻を内蔵のタイマー(図示せず)から取得し、受信時刻をRTT計測部12に出力する。また、受信部11は、受信したACKをパケットロス検出部13及びRWND検出部14に出力する。
RTT計測部12は、送信部10からパケットの送信時刻を入力して記憶し、受信部11からそのパケットに対するACKの受信時刻を入力する。そして、RTT計測部12は、受信時刻から送信時刻を減算してRTTを計測し、その減算結果であるRTTを送信レート決定部15に出力する。
パケットロス検出部13は、受信部11からACKを入力し、入力したACKに含まれる確認応答番号に基づいて、前回受信して入力したACKに含まれる確認応答番号と、今回受信して入力したACKに含まれる確認応答番号とを比較し、パケットロスの発生を検出する。そして、パケットロス検出部13は、パケットロスが発生しているか否かを示すパケットロス発生有無の情報を送信レート決定部15に出力する。具体的には、パケットロス検出部13は、前回の確認応答番号と今回の確認応答番号とが同一であると判定して、その同一の判定が所定数連続した場合、パケットロスが発生したものと判定する。例えば、所定数が2に設定されているとき、パケットロス検出部13は、確認応答番号が同一であるとの判定を2回連続して行った場合、すなわち、同一の確認応答番号を含むACKが3回連続したことを判定した場合、パケットロスが発生したものと判定する。この判定手法を3DUPACKという。
RWND検出部14は、受信部11からACKを入力し、ACKのTCPヘッダに記述されたRWNDを取得することによりRWNDを検出し、RWNDを送信レート決定部15に出力する。
送信レート決定部15は、利用者の所望する優先度を外部から入力すると共に、RTT計測部12からRTTを、パケットロス検出部13からパケットロス発生有無の情報を、RWND検出部14からRWNDをそれぞれ入力する。そして、送信レート決定部15は、優先度、RTT及びパケットロス発生有無の各データに基づいてCWNDを算出し、CWND及びRWNDのうちの小さい方をパケット送信量に決定し、パケット送信量を送信部10に出力する。これにより、送信レートが決定される。CWNDの算出手法の詳細については後述する。以下、RWNDはCWNDと比較して十分に大きい値であるとし、CWNDの増減がパケット送信量に直接影響するものとする。このようにして決定されたパケット送信量のパケットが、送信部10から送信される。
尚、送信レート決定部15は、外部から優先度を入力するようにしたが、本発明は入力方法を限定するものではない。例えば、送信レート決定部15は、利用者が送信装置1に対して直接キー操作を行うことにより、優先度を入力するようにしてもよい。また、受信部11がセッション開始時に優先度を受信装置2から受信し、送信レート決定部15は、受信部11から優先度を入力するようにしてもよい。さらに、送信レート決定部15は、パケット伝送の途中で、変更された優先度を入力するようにしてもよい。
(送信レート決定部の構成)
次に、図2に示した送信レート決定部15の構成について説明する。図3は、送信レート決定部15の構成を示すブロック図である。この送信レート決定部15は、経路状態判定手段20、パラメータ設定手段21、CWND算出手段22及びパケット送信量決定手段23を備えている。
経路状態判定手段20は、RTT計測部12からRTTを入力すると共に、パケットロス検出部13からパケットロス発生有無の情報を入力し、以下の(a)〜(c)によりネットワーク経路3の輻輳状態を判定し、輻輳状態に応じてCWND維持、CWND減少またはCWND増加の判定結果を生成し、判定結果をパラメータ設定手段21及びCWND算出手段22に出力する。
(a)パケットロス発生有りの場合、帯域に輻輳が発生していると判定し、CWND減少の判定結果を生成する。
(b)パケットロス発生無し、かつ、RTTが増加している場合、帯域に輻輳が発生していると判定し、CWND維持またはCWND減少の判定結果を生成する。
(c)パケットロス発生無し、かつ、RTTの変化が無いまたはRTTが減少している場合、帯域に輻輳が発生していないと判定し、CWND増加の判定結果を生成する。
ここで、経路状態判定手段20は、今回入力したRTTと前回入力したRTTとを比較し、RTTの変化状態を判定する。すなわち、経路状態判定手段20は、RTTに基づいて、RTTが増加している、RTTの変化が無い、またはRTTが減少していることを判定する。尚、経路状態判定手段20は、RTT変化量を算出し、RTT変化量を予め設定された閾値と比較することにより、RTTの変化状態を判定するようにしてもよい。例えば、RTT変化量を予め設定された2つの閾値と比較し、第1の閾値よりも大きい場合、RTTが増加していると判定し、RTT変化量が第1の閾値以下かつ第2の閾値以上である場合、RTTの変化が無いと判定し、RTT変化量が第2の閾値よりも小さい場合、RTTが減少していると判定する。また、経路状態判定手段20は、パケットロス発生無し、かつ、RTTが増加していると判定した場合、RTT変化量が予め設定された閾値よりも大きい場合、CWND維持の判定結果を生成し、RTT変化量が予め設定された閾値以下の場合、CWND減少の判定結果を生成する。
パラメータ設定手段21は、外部から優先度を入力すると共に、経路状態判定手段20から判定結果(CWND維持、CWND減少またはCWND増加)を入力し、判定結果及び優先度に基づいてパラメータαを設定し、パラメータαをCWND算出手段22に出力する。
具体的には、パラメータ設定手段21は、判定結果がCWND維持の場合、優先度にかかわらず、パラメータα=1を設定する。また、パラメータ設定手段21は、判定結果がCWND減少の場合、優先度に比例するように、0<α<1の範囲でパラメータαを設定する。例えば、優先度が高い場合、後述するCWND算出手段22において算出されるCWNDをさほど減少させないように、すなわち減少率が1/2よりも低くなるように、0.5<α<1の範囲でパラメータαを設定する。優先度が低い場合、CWNDを十分に減少させるように、すなわち減少率が1/2よりも高くなるように、0<α<0.5の範囲でパラメータαを設定する。優先度が中位の場合、CWNDの減少率が1/2になるように、α=0.5のパラメータαを設定する。
また、パラメータ設定手段21は、判定結果がCWND増加の場合、優先度に比例するように、パラメータαを設定する。例えば、優先度が高い場合、CWNDの増加量が1/CWNDよりも大きくなるように、α>1の範囲でパラメータαを設定する。優先度が低い場合、CWNDの増加量が1/CWNDよりも小さくなるように、0<α<1の範囲でパラメータαを設定する。優先度が中位の場合、CWNDの増加量が1/CWNDになるように、α=1のパラメータαを設定する。
CWND算出手段22は、経路状態判定手段20から判定結果(CWND維持、CWND減少またはCWND増加)を入力すると共に、パラメータ設定手段21からパラメータαを入力し、以下の式によりCWNDを算出し、CWNDをパケット送信量決定手段23に出力する。
CWND算出手段22は、判定結果がCWND維持またはCWND減少の場合、以下の式によりCWNDを算出する。
CWND=α×CWND ・・・(3)
ここで、前述のとおり、判定結果がCWND維持の場合、パラメータα=1であり、判定結果がCWND減少の場合、パラメータαは、優先度に比例した0<α<1範囲の値である。したがって、CWND算出手段22は、判定結果がCWND維持の場合、優先度にかかわらず、前回と同じCWNDを算出する。また、CWND算出手段22は、判定結果がCWND減少であり、優先度が高い場合、前回のCWNDよりも小さく、かつ、前回のCWNDに1/2を乗算した値よりも大きい値になるように、新たなCWNDを算出する。この場合、CWNDは、従来のNewReno方式により算出される値に比べ相対的に大きい値に減少する。また、CWND算出手段22は、判定結果がCWND減少であり、優先度が低い場合、前回のCWNDに1/2を乗算した値よりも小さく、かつ、0よりも大きい値になるように、新たなCWNDを算出する。この場合、CWNDは、従来のNewReno方式により算出される値に比べ相対的に小さい値に減少する。
一方、CWND算出手段22は、判定結果がCWND増加の場合、以下の式によりCWNDを算出する。
CWND=CWND+α×(1/CWND) ・・・(4)
ここで、パラメータαは、優先度に比例した値(優先度が高い場合α>1、優先度が低い場合0<α<1)である。したがって、CWND算出手段22は、優先度が高い場合、前回のCWNDよりも大きく、かつ、増加量が前回のCWNDの逆数よりも大きくなるように、新たなCWNDを算出する。この場合、CWNDは、従来のNewReno方式により算出される値に比べ相対的に大きい値に増加する。また、CWND算出手段22は、優先度が低い場合、前回のCWNDより大きく、かつ、増加量が前回のCWNDの逆数よりも小さくなるように、新たなCWNDを算出する。この場合、CWNDは、従来のNewReno方式により算出される値に比べ相対的に小さい値に増加する。
パケット送信量決定手段23は、CWND算出手段22からCWNDを入力すると共に、RWND検出部14からRWNDを入力し、CWND及びRWNDのうちの小さい方をパケット送信量に決定し、パケット送信量を送信部10に出力する。
このように、送信レート決定部15は、優先度、RTT及びパケットロス発生有無の各データを入力し、(a)パケットロス発生有りの場合、帯域に輻輳が発生していると判定し、CWND減少の判定結果を生成し、優先度が高いときは優先度が低いときよりもCWNDが大きくなるように、前回のCWNDよりも小さくなる範囲で新たなCWNDを算出する。また、(b)パケットロス発生無し、かつ、RTTが増加している場合、輻輳が発生していると判定し、CWND維持またはCWND減少の判定結果を生成する。そして、CWND維持の判定結果を生成した場合、前回と同じ値になるようにCWNDを算出する。また、CWND減少の判定結果を生成した場合、優先度が高いときは優先度が低いときよりもCWNDが大きくなるように、前回のCWNDよりも小さくなる範囲で新たなCWNDを算出する。また、(c)パケットロス発生無し、かつ、RTTの変化が無いまたはRTTが減少している場合、輻輳が発生していないと判定し、CWND増加の判定結果を生成し、優先度が高いときは優先度が低いときよりもCWNDが大きくなるように、前回のCWNDよりも大きくなる範囲で新たなCWNDを算出する。これにより、送信装置1は、優先度が高い場合、相対的に高い送信レートでパケットを送信し、優先度が低い場合、相対的に低い送信レートでパケットを送信するように制御することができる。尚、上記CWND算出方法は、NewReno方式による伝送に対する相対的な優先度を持たせるためのものであるが、NewReno方式とは異なる他の方式による伝送においても、CWNDの増加、減少量をその方式に対して相対的に調節することにより、NewReno方式と同様に優先度を持たせることができる。
(送信装置の処理)
次に、送信装置1による輻輳制御の処理について説明する。図4は、送信装置1による輻輳制御の処理を示すフローチャートである。送信装置1は、前述のとおり、受信装置2からACKを受信し、1つのACK毎にCWNDを増減させ、パケット送信量を調節する。
送信部10は、後述するステップS408にて決定されたパケット送信量にて、パケットを送信する(ステップS401)。受信部11は、送信部10により送信されたパケットの応答であるACKを待ち、ACKを受信する(ステップS402)。
ここで、RTT計測部12は、ACKの受信時刻からパケットの送信時刻を減算してRTTを計測し、送信レート決定部15に出力する。パケットロス検出部13は、ACKに含まれる確認応答番号に基づいて、前回受信したACKに含まれる確認応答番号と、今回受信したACKに含まれる確認応答番号とを比較し、確認応答番号が所定数回同じであると判定した場合、パケットロスの発生有りを検出し、確認応答番号が連続していると判定した場合、パケットロスの発生無しを検出し、パケットロス発生有無を送信レート決定部15に出力する。また、RWND検出部14は、ACKに含まれるRWNDを取得し、RWNDを送信レート決定部15に出力する。
送信レート決定部15は、パケットロス検出部13から入力したパケットロス発生有無の情報に基づいて、パケットロスが発生したか否かを判定する(ステップS403)。パケットロスが発生したことを判定した場合(ステップS403:パケットロス有)、帯域に輻輳が発生していると判定し、前記(a)のようにCWND減少の判定結果を生成し、優先度に従ってパラメータαを設定してCWND減少の処理を行い、前記式(3)を用いてCWNDを算出する(ステップS405)。一方、パケットロスが発生していないことを判定した場合(ステップS403:パケットロス無)、RTT計測部12から入力したRTTを用いて比較処理を行う(ステップS404)。
送信レート決定部15は、ステップS404において、RTTが増加していると判定した場合(ステップS404:RTT増加)、帯域に輻輳が発生していると判定し、RTT変化量を予め設定された閾値と比較することにより、CWND維持またはCWND減少の判定結果を生成し、優先度に従ってパラメータαを設定してCWND維持またはCWND減少の処理を行い、前記式(3)を用いてCWNDを算出する(ステップS405)。一方、RTTの変化が無いまたはRTTが減少していると判定した場合(ステップS404:変化無またはRTT減少)、帯域に輻輳が発生していないと判定し、優先度に従ってパラメータαを設定してCWND増加の処理を行い、前記式(4)を用いてCWNDを算出する(ステップS406)。
そして、送信装置1は、ステップS405またはステップS406から移行して、処理を終了させる場合(ステップS407:Y)、輻輳制御の処理が終了する。一方、処理を終了させない場合(ステップS407:N)、送信レート決定部15は、ステップS405またはステップS406において算出されたCWNDと、RWND検出部14から入力したRWNDとを比較し、CWNDがRWND以下の場合、CWNDをパケット送信量に決定し、CWNDがRWNDよりも大きい場合、RWNDをパケット送信量に決定し、送信部10に出力する(ステップS408)。そして、ステップS401において、送信部10が、ステップS408にて決定されたパケット送信量のパケットを受信装置2へ送信し、ステップS402において、受信部11が、受信装置2から送信されるACKを待つ。このようにして、ステップS401〜ステップS408の処理が繰り返される。
尚、図2、図3及び図4では、RTT計測部12がRTTを計測し、送信レート決定部15が、RTTに基づいて輻輳の発生の有無を判定するようにしたが(図4のステップS404)、RTTの代わりに滞留パケット数を用いて判定するようにしてもよい。すなわち、送信装置1は、ネットワーク経路3に滞留しているパケットの数を算出し、その滞留パケット数に基づいて輻輳の発生の有無を判定するようにしてもよい。
具体的には、送信装置1が滞留パケット数算出部を備え、滞留パケット数算出部は、送信レート決定部15からCWNDを入力し、RTT計測部12からRTTを入力し、これまでに計測されて入力したRTTのうち最小のRTTをRTTminに設定し、現在計測されて入力したRTTをRTTnowに設定し、以下の式により、ネットワーク経路3に滞留しているパケットの数である滞留パケット数δを算出し、滞留パケット数δを送信レート決定部15に出力する。
δ=(CWND/RTTmin−CWND/RTTnow)×RTTmin
・・・(5)
そして、送信レート決定部15は、RTT計測部12からRTTを入力する代わりに、滞留パケット数算出部から滞留パケット数δを入力し、図4のステップS404においてRTTの比較処理と同じように、滞留パケット数λの比較処理を行い、輻輳の発生を判定する。この場合、送信レート決定部15は、滞留パケット数λの変化量を算出し、その変化量と予め設定された閾値とを比較することにより、輻輳の発生を判定するようにしてもよい。送信レート決定部15は、帯域に輻輳が発生していると判定した場合、CWND維持またはCWND減少の判定結果を生成し、ステップS405へ移行してCWND維持またはCWND減少の処理を行う。一方、送信レート決定部15は、帯域に輻輳が発生していないと判定した場合、CWND増加の判定結果を生成し、ステップS406へ移行してCWND増加の処理を行う。
(シミュレーション結果)
図5は、実施例1におけるCWNDの変化を説明するグラフである。このグラフは、シミュレーションにより得られた結果を示している。図5には、高い優先度にて算出されたCWNDの変化と、低い優先度にて算出されたCWNDの変化とがグラフで示されており、さらに、従来のNewReno方式により算出されたCWNDの変化もグラフに示されている。図5から、優先度が高い場合、CWNDはより速く増加し、パケットロス発生時等におけるCWNDの減少量は小さくなっていることがわかる。また、優先度が低い場合、CWNDはより遅く増加し、パケットロス発生時等におけるCWNDの減少量は大きくなっていることがわかる。
また、図5から、優先度が高い場合におけるCWNDの平均値が、従来のNewReno方式によるCWNDの平均値よりも大きくなっており、優先度が低い場合におけるCWNDの平均値が、従来のNewReno方式によるCWNDの平均値よりも小さくなっていることがわかる。
以上のように、実施例1の送信装置1によれば、複数台の送信装置1−1,1−2,1−3,・・・から1台の受信装置2へデータをアップロードする場合において、パケットロスが発生していると判定した場合、または、パケットロスが発生しておらず、かつRTTが増加していると判定した場合、帯域に輻輳が発生していると判定し、優先度が高いときは、従来の方式によるCWNDよりも大きくなるように、優先度が低いときは、従来の方式によるCWNDよりも小さくなるように、前回のCWNDよりも小さくなる範囲で新たなCWNDを算出し、送信レートを調節するようにした。また、パケットロスが発生しておらず、かつRTTの変化が無いまたはRTTが減少していると判定した場合、帯域に輻輳が発生していないと判定し、優先度が高いときは、従来の方式によるCWNDよりも大きくなるように、優先度が低いときは、従来の方式によるCWNDよりも小さくなるように、前回のCWNDよりも大きくなる範囲で新たなCWNDを算出し、送信レートを調節するようにした。これにより、既存のネットワーク経路3に配置されたルータをそのまま用いることができるから、ネットワーク経路3を変更することなく、また、TCP方式の手順を変更することなく、輻輳制御方式を変更するのみで、利用者の所望する優先度に従ったデータ伝送を、簡易な手法により実現することができる。
また、実施例1の送信装置1によれば、図4に示したステップS404において、RTTが増加していると判定した場合、帯域に輻輳が発生していると判定し、CWND維持の処理またはCWND減少の処理を行い、RTTの変化が無いまたはRTTが減少していると判定した場合、帯域に輻輳が発生していないと判定し、CWND増加の処理を行うようにした。
ここで、送信装置1の送信レート決定部15が、CWNDを急激に増加させて送信レートを高くした場合、送信レートがネットワーク経路3の帯域幅を超えた時点で、ネットワーク経路3において、連続してパケットが廃棄されてしまう。そうすると、受信装置2によりACKが送信されない期間が長時間になるから、送信装置1の受信部11は、送信部10から送信されたパケットに対応したACKを受信することができず、タイムアウト処理を行なう。そして、送信レート決定部15は、タイムアウトに伴ってCWNDを小さい値(例えば、初期値1)にリセットする。すなわち、送信レート決定部15が急激にCWNDを増加させ、受信部11がタイムアウトを検出した場合、送信レート決定部15は、直ちにCWNDを小さい値にリセットする。このため、送信レート決定部15は、CWNDを増加させる必要があるにもかかわらず、CWNDの平均値を大きくすることができない。そこで、CWNDを適切に増加させて送信レートを調節するには、ネットワーク経路3において、連続してパケットが廃棄されないように、送信レート決定部15が、帯域上限付近でCWNDの増加量を抑える必要がある。
実施例1では、帯域上限付近でCWNDの増加量を抑えるために、ステップS404の処理を行う。具体的には、送信レート決定部15は、CWNDを急激に増加させたことに伴って、ステップS404においてRTTの増加を判定する。これにより、パケットロスが発生する前に、ネットワーク経路3における帯域の輻輳の兆候を検出することができる。この場合、送信レート決定部15は、ステップS405において、CWND維持の処理またはCWND減少の処理を行う。これにより、パケットロスの発生につながるCWNDの増加を抑えることができる。このように、CWNDの増加を抑えることができるから、連続したパケットロスの発生を防ぎ、ACKの未受信によるタイムアウト処理を避けることができる。
尚、実施例1の変形例として、送信装置1は、RTT計測部12を備えていなくてもよい。前述の実施例1の送信装置1は、RTT計測部12を備えており、送信レート決定部15が、図4のステップS403において、パケットロスが発生したことを判定した場合(ステップS403:Y)、RTT計測部12により計測されたRTTの増減を判定する(ステップS404)。そして、RTTが増加していると判定した場合、CWND維持またはCWND減少の処理を行い、RTTの変化が無いまたはRTTが減少していると判定した場合、CWND増加の処理を行う。これに対し、実施例1の変形例では、送信レート決定部15は、図4のステップS403において、パケットロスが発生したことを判定した場合(ステップS403:Y)、ステップS404の処理を行わないで、CWND増加の処理を行う(ステップS406)。
以上のように、実施例1の変形例による送信装置1によれば、パケットロスが発生していると判定した場合、帯域に輻輳が発生していると判定し、優先度が高いときは、従来の方式によるCWNDよりも大きくなるように、優先度が低いときは、従来の方式によるCWNDよりも小さくなるように、前回のCWNDよりも小さくなる範囲で新たなCWNDを算出し、送信レートを調節するようにした。また、パケットロスが発生していないと判定した場合、帯域に輻輳が発生していないと判定し、優先度が高いときは、従来の方式によるCWNDよりも大きくなるように、優先度が低いときは、従来の方式によるCWNDよりも小さくなるように、前回のCWNDよりも大きくなる範囲で新たなCWNDを算出し、送信レートを調節するようにした。これにより、実施例1と同様に、既存のネットワーク経路3に配置されたルータをそのまま用いることができるから、ネットワーク経路3を変更することなく、また、TCP方式の手順を変更することなく、輻輳制御方式を変更するのみで、利用者の所望する優先度に従ったデータ伝送を、簡易な手法により実現することができる。
以上、実施例1の送信装置1による輻輳制御方式について、図1に示したシステムのとおり、複数台の送信装置1−1,1−2,1−3,・・・が1台の受信装置2へ向けて同時にデータを伝送するシステムを想定して説明したが、この輻輳制御方式は、送信装置1−1,1−2,1−3,・・・及び受信装置2が帯域を共有している場合に、優先度に従って各装置の相対的な伝送速度を制御するものである。したがって、実施例1の送信装置1による輻輳制御方式は、図1に示したシステム以外に、複数台の受信装置2を備えて構成されるシステムにおいても適用がある。
次に、実施例2について詳細に説明する。実施例2は、複数台の送信装置から1台の受信装置へデータをアップロードするシステムを想定しており、優先度に従うことに加え、RTTの影響を受けないように送信レートを調節する例である。
図6は、実施例2の送信装置を含む全体システムの構成を示す図である。実施例2のシステムは、複数台の送信装置1−1,1−2(例えば、複数台のクライアント)と、1台の受信装置2(例えば、1台のサーバ)とを備えて構成され、複数台の送信装置1−1,1−2が1台の受信装置2へ向けて同時に伝送するデータのアップロードを想定したシステムである。送信装置1−1と受信装置2とは、RTT=50msecのネットワーク経路3−1及びRTT=50msecのネットワーク経路3−3により接続される。また、送信装置1−2と受信装置2とは、RTT=150msecのネットワーク経路3−2及びRTT=50msecのネットワーク経路3−3により接続される。
各送信装置1−1,1−2は、ネットワーク経路3−3を共有しながら、受信装置2へ向けてデータを伝送する際に、実施例1に示した輻輳制御手法により、利用者の所望する優先度に従ったデータ伝送を実現することができる。
しかしながら、図6に示すように、RTT送信装置1−1から受信装置2へ向けてデータを伝送する際のRTTの合計は100msecであり、送信装置1−2から受信装置2へ向けてデータを伝送する際のRTTの合計は200msecである。このため、送信装置1−2が受信装置2へ向けて送信したパケットに対するACKを受信するまでの時間は、送信装置1−1が受信装置2へ向けて送信したパケットに対するACKを受信するまでの時間に比べて2倍となる。CWNDは、ACKを受信したときに増加するから、図11に示したように、RTTが大きい送信装置1−2は、RTTの小さい送信装置1−1に比べて、CWNDを増加させるのに時間を要することになる。すなわち、RTTが大きいほど、送信レートの増加速度は遅くなるから、同じ優先度が設定されていたとしても、RTTの大小の違いによって、異なる送信レートになってしまう。
ここで、それぞれの伝送内容により、伝送内容の重要性や緊急度によっては、RTTが大きい送信装置1−2から受信装置2へのデータ伝送は、他のデータ伝送よりも高速に行いたい場合がある。また、RTTが小さい送信装置1−1から受信装置2へのデータ伝送は、他のデータ伝送より低速に行っても構わない場合もある。
そこで、実施例2では、RTTの影響を受けることなく、RTTの大小にかかわらず、利用者の所望する優先度に従ったデータ伝送を実現する。
(送信装置の構成、送信レート決定部の構成、送信装置の処理)
次に、図6に示した実施例2による送信装置1−1,1−2の構成、送信レート決定部15の構成及び送信装置1−1,1−2の処理について説明する。実施例2による送信装置1(以下、送信装置1−1,1−2を総称して送信装置1という。)の構成は、図2に示した構成と基本的には同様であるが、送信レート決定部15が実施例1とは異なる処理を行う。また、送信装置1に備えた送信レート決定部15の構成も、図3に示した構成と基本的には同様であるが、CWND算出手段22が実施例1とは異なる処理を行う。また、実施例2による送信装置1の処理も、図4に示した処理と基本的には同様であるが、ステップS405のCWND維持及びCWND減少の処理、並びにステップS406のCWND増加の処理が実施例1と異なっている。
図3を参照して、実施例2のCWND算出手段22は、経路状態判定手段20から判定結果(CWND維持、CWND減少またはCWND増加)を入力すると共に、パラメータ設定手段21からパラメータαを入力し、さらに、RTT計測部12からRTTを入力する。そして、CWND算出手段22は、以下の式によりCWNDを算出し、CWNDをパケット送信量決定手段23に出力する。
CWND算出手段22は、判定結果がCWND維持またはCWND減少の場合、以下の式によりCWNDを算出する(図4のステップS405)。
CWND=α×(RTT/RTTorg)×CWND ・・・(6)
ここで、RTTorgは、予め設定された、RTTの基準となる値である。尚、パラメータαは、実施例1と同様に、判定結果がCWND維持の場合、パラメータα=1であり、判定結果がCWND減少の場合、優先度に比例した0<α<1範囲の値である。
ここで、CWNDはACKを受信するRTT毎に算出されるから、RTTが大きい場合はCWNDの更新速度が遅くなり、RTTが小さい場合はCWNDの更新速度は速くなる。実施例2によれば、RTTを考慮した式(6)を用いてCWNDを算出するから、RTTが大きい場合は、CWNDの減少量を抑えて大きい値にすることができる。また、RTTが小さい場合は、CWNDの減少量を大きくし、RTTが大きい場合のCWNDよりもCWNDを小さい値にすることができる。したがって、CWNDを減少させた後に増加させることを考慮すると、RTTが大きい場合はRTTが小さい場合に比べ、CWNDを増加させる際の更新頻度が少なくなり、増加量が小さくなるから、CWNDを減少させる際の減少量を抑えることにより、CWNDを増加させる際にRTTが小さい場合と同様のCWNDを早期に得ることができる。
一方、CWND算出手段22は、判定結果がCWND増加の場合、以下の式によりCWNDを算出する(図4のステップS406)。
CWND=CWND+α×(RTT/RTTorg)×(1/CWND)
・・・(7)
尚、パラメータαは、実施例1と同様に、優先度に比例した値(優先度が高い場合α>1、優先度が低い場合0<α<1)である。
前述のとおり、CWNDはACKを受信するRTT毎に算出されるから、RTTが大きい場合はCWNDの更新速度が遅くなり、RTTが小さい場合はCWNDの更新速度は速くなる。したがって、判定結果がCWND増加の場合、CWND算出手段22により、RTTに関わらず基準とするRTTorgのときのCWND増加速度と同等の増加速度とすることができる。これは、所定期間Tにおいて、CWNDは(T/RTT)回更新されるから、優先度が同じ場合、CWNDの増加量は、α×(RTT/RTTorg)×(1/CWND)×(T/RTT)=α×(1/RTTorg)×(1/CWND)×Tとなり、RTTの値に依存することなくCWNDの増加量は一定になるからである。すなわち、図11に示したように、RTTが大きい場合、従来はCWNDの更新速度が遅いからCWNDの増加速度が遅かった。また、RTTが小さい場合、従来はCWNDの更新速度が速いからCWNDの増加速度が速かった。実施例2によれば、RTTを考慮した式(7)を用いてCWNDを算出するから、RTTの大きさに応じてCWNDの増加速度をRTTorgの増加速度に合わせることができる。
以上のように、実施例2の送信装置1によれば、実施例1と同様に、複数台の送信装置1−1,1−2から1台の受信装置2へデータをアップロードする場合において、パケットロスの発生及びRTTの増加の有無に応じて、帯域に輻輳が発生しているか否かを判定し、優先度が高いときは、従来の方式によるCWNDよりも大きくなるように、優先度が低いときは、従来の方式によるCWNDよりも小さくなるようにCWNDを算出すると共に、帯域に輻輳が発生していると判定した場合、前回のCWNDよりも小さくなる範囲で新たなCWNDを算出し、帯域に輻輳が発生していないと判定した場合、前回のCWNDよりも大きくなる範囲で新たなCWNDを算出し、送信レートを調節するようにした。これにより、実施例1と同様に、利用者の所望する優先度に従ったデータ伝送を、簡易な手法により実現することができる。また、実施例1と同様に、図4に示したステップS404の処理により、パケットロスが発生する前に、ネットワーク経路3−1,3−2,3−3における帯域の輻輳の兆候を検出し、CWNDの増加を抑えることができるから、連続したパケットロスの発生を防ぎ、ACKの未受信によるタイムアウト処理を避けることができる。
また、実施例2の送信装置1によれば、CWND維持及びCWND減少の処理を行う場合、RTTを考慮した式(6)を用いてCWNDを算出し、CWND増加の処理を行う場合、RTTを考慮した式(7)を用いてCWNDを算出するから、RTTの大きさに応じてCWNDの増加速度を、基準となるRTTorgの増加速度に合わせることができる。したがって、RTTの大小にかかわらず、所定時間におけるパケット送信量の平均値(所定のパケット送信量)が等しくなるように、送信レートを調節することができる。つまり、RTTの影響を受けることなく、RTTの大小にかかわらず、利用者の所望する優先度に従ったデータ伝送を、簡易な手法により実現することができる。
以上、実施例2の送信装置1による輻輳制御方式について、図6に示したシステムのとおり、複数台の送信装置1−1,1−2が1台の受信装置2へ向けて同時にデータを伝送するシステムを想定して説明したが、この輻輳制御方式は、送信装置1−1,1−2及び受信装置2が帯域を共有し、RTTの異なるネットワーク経路3−1,3−2を介してデータを伝送する際に、RTTの影響を受けることなく、優先度に従って各装置の相対的な伝送速度を制御するものである。したがって、実施例2の送信装置1による輻輳制御方式は、図6に示したシステム以外に、複数台の受信装置2を備えて構成されるシステムにおいても適用がある。
次に、実施例3について詳細に説明する。実施例3は、1台の送信装置から複数台の受信装置へデータをダウンロードするシステムを想定しており、実施例1に対応し、外部から直接入力した優先度に従って送信レートを調節する例である。
図7は、実施例3の送信装置を含む全体システムの構成を示す図である。実施例3のシステムは、1台の送信装置1(例えば、1台のサーバ)と、複数台の受信装置2−1,2−2,2−3,・・・(例えば、複数台のクライアント)とを備えて構成され、1台の送信装置1が複数台の受信装置2−1,2−2,2−3,・・・へ向けて同時に伝送するデータのダウンロードを想定したシステムである。送信装置1と受信装置2−1,2−2,2−3,・・・とはネットワーク経路3により接続される。
送信装置1は、共有するネットワーク経路3を介して受信装置2−1,2−2,2−3,・・・へ向けてデータを伝送する。このため、データを同時に伝送するには、帯域を分け合う必要がある。従来のTCPによるデータ伝送では、送信装置に備えた輻輳制御機能により、送信装置が公平に帯域を使用するように送信レートが制御される。
しかしながら、それぞれの伝送内容により、重要性または緊急度の高いファイルのデータを、より高速に受信装置2−1,2−2,2−3,・・・へ伝送したいという利用者の要求があっても、優先度を付けてデータを伝送することができなかった。そこで、実施例3では、利用者の所望する優先度に従ったデータ伝送を実現する。
(送信装置の構成、送信レート決定部の構成、送信装置の処理)
図7に示した実施例3による送信装置1の構成、送信装置1に備えた送信レート決定部15の構成、及び送信装置1の処理は、図2に示した実施例1による送信装置1の構成、図3に示した送信レート決定部15の構成、及び図4に示した送信装置1の処理とそれぞれ同様である。
以上のように、実施例3の送信装置1によれば、1台の送信装置1から複数台の受信装置2−1,2−2,2−3,・・・へデータをダウンロードする場合においても、実施例1による送信装置1と同様の構成及び処理により、実施例1と同様に、利用者の所望する優先度に従ったデータ伝送を、簡易な手法により実現することができる。
尚、実施例3の変形例として、実施例1の変形例と同様に、送信装置1は、RTT計測部12を備えていなくてもよい。すなわち、送信レート決定部15は、図4のステップS403において、パケットロスが発生したことを判定した場合(ステップS403:Y)、ステップS404の処理を行わないで、CWND増加の処理を行う(ステップS406)。
次に、実施例4について詳細に説明する。実施例4は、1台の送信装置から複数台の受信装置へデータをダウンロードするシステムを想定しており、実施例2に対応し、優先度に従うことに加え、RTTの影響を受けることがないように送信レートを調節する例である。
図8は、実施例4の送信装置を含む全体システムの構成を示す図である。実施例4のシステムは、1台の送信装置1(例えば、1台のサーバ)と、複数台の受信装置2−1,2−2(例えば、複数台のクライアント)とを備えて構成され、1台の送信装置1が複数台の受信装置2−1,2−2へ向けて同時に伝送するデータのダウンロードを想定したシステムである。送信装置1と受信装置2−1とは、RTT=50msecのネットワーク経路3−1及びRTT=50msecのネットワーク経路3−2により接続される。また、送信装置1と受信装置2−2とは、RTT=50msecのネットワーク経路3−1及びRTT=150msecのネットワーク経路3−3により接続される。
送信装置1は、ネットワーク経路3−1を共有しながら、受信装置2へ向けてデータを伝送する際に、実施例3に示した輻輳制御手法により、利用者の所望する優先度に従ったデータ伝送を実現することができる。
しかしながら、図8に示すように、RTT送信装置1から受信装置2−1へ向けてデータを伝送する際のRTTの合計は100msecであり、送信装置1から受信装置2−2へ向けてデータを伝送する際のRTTの合計は200msecである。このため、送信装置1が受信装置2−2へ向けて送信したパケットに対するACKを受信するまでの時間は、送信装置1が受信装置2−1へ向けて送信したパケットに対するACKを受信するまでの時間に比べて2倍となる。CWNDは、送信したパケットに対するACKを受信したときに増加するから、RTTが大きいほど、送信レートの増加速度は遅くなってしまい、同じ優先度が設定されていたとしても、RTTの大小の違いによって、異なる送信レートになってしまう。
ここで、それぞれの伝送内容により、伝送内容の重要性や緊急度によっては、RTTが大きい送信装置1から受信装置2−2へのデータ伝送は、他のデータ伝送よりも高速に行いたい場合がある。また、RTTが小さい送信装置1から受信装置2−1へのデータ伝送は、他のデータ伝送より低速に行っても構わない場合もある。
そこで、実施例4では、RTTの影響を受けることなく、RTTの大小にかかわらず、利用者の所望する優先度に従ったデータ伝送を実現する。
(送信装置の構成、送信レート決定部の構成、送信装置の処理)
図8に示した実施例4による送信装置1の構成、送信装置1に備えた送信レート決定部15の構成、及び送信装置1の処理は、実施例2による送信装置1の構成、実施例2による送信レート決定部15の構成、及び実施例2による送信装置1の処理とそれぞれ同様である。
以上のように、実施例4の送信装置1によれば、1台の送信装置1から複数台の受信装置2−1,2−2へデータをダウンロードする場合においても、実施例2による送信装置1と同様の構成及び処理により、実施例2と同様に、RTTの影響を受けることなく、RTTの大小にかかわらず、利用者の所望する優先度に従ったデータ伝送を、簡易な手法により実現することができる。
次に、実施例5について詳細に説明する。実施例5は、実施例1〜4及び実施例1,3の変形例のいずれのシステムにも適用し、データをアップロードまたはダウンロードするシステムを想定しており、優先度を外部から直接入力するのではなく、受信装置を示す宛先アドレスに基づいて優先度を生成する例である。
図9は、実施例5の送信装置1に含まれる構成部を示す図である。実施例5の送信装置1は、図2に示した構成に加え、送信レート決定部15の前段に、優先度保持部16及び優先度生成部17を備えている。優先度保持部16は、宛先アドレスに対応した優先度の情報を保持している。優先度生成部17は、外部から宛先アドレスを入力し、宛先アドレスに対応する優先度を優先度保持部16から読み出すことにより優先度を生成し、宛先アドレスに対応する優先度を送信レート決定部15に出力する。送信部10、受信部11、RTT計測部12、パケットロス検出部13、RWND検出部14及び送信レート決定部15は、図2に示した構成部と同様である。また、送信装置1の処理についても、前述した実施例1〜4の処理と同様である。
以上のように、実施例5の送信装置1によれば、優先度生成部17において、例えば、従来のNewReno方式と同様の優先度になるように、優先度を生成することができ、外部から優先度の入力がない場合であっても、従来の方式と同程度の送信レートにてデータ伝送を行うことができる。また、外部から優先度の入力がなくても、受信装置を示す宛先アドレス毎の優先度に従ったデータ伝送を、簡易な手法により実現することができる。
尚、送信装置は、送信装置からデータ伝送を開始する場合に、外部から宛先アドレスを入力し、優先度を生成するようにしたが、本発明はこれに限定されることはない。例えば、送信装置は、受信装置から送信開始要求を受信した場合に、受信装置からの開始セッションにて宛先アドレスを取得し、優先度を生成するようにしてもよい。
次に、実施例6について詳細に説明する。実施例6は、図6に示した実施例2のシステムまたは図8に示した実施例4のシステムが適用され、データをアップロードまたはダウンロードするシステムを想定している。また、実施例6は、優先度が設定されない場合、または複数の送信装置において同一の優先度が設定されている場合、RTTの大小にかかわらず同じ送信レートになるように、送信レートを調節する例である。例えば、送信装置と受信装置との間の距離が長い場合、その距離が短い場合に比べてRTTが大きくなる。しかしながら、利用者の意図に従った送信量によりデータ伝送を行うためには、RTTの大小にかかわらず、同じ送信レートにてデータを伝送することが必要になる。そこで、実施例6は、既存のネットワークを変更することなく、RTTの大小にかかわらず、利用者の意図に従ったデータ伝送を、簡易な手法にて実現することを目的とする。以下、優先度が設定されていない場合を例にして説明する。
(送信装置の構成、送信レート決定部の構成、送信装置の処理)
実施例6による送信装置1の構成は、図2に示した構成と基本的には同様であるが、送信レート決定部15は優先度を入力しない。また、実施例6による送信装置1に備えた送信レート決定部15は、図3に示したパラメータ設定手段21を備えておらず、経路状態判定手段20、CWND算出手段22及びパケット送信量決定手段23を備えている。また、実施例6による送信装置1の処理は、図4に示した処理と基本的には同様であるが、ステップS405のCWND維持及びCWND減少の処理、並びにステップS406のCWND増加の処理が実施例1〜5と異なっている。
図3を参照して、実施例6のCWND算出手段22は、経路状態判定手段20から判定結果(CWND維持、CWND減少またはCWND増加)を入力すると共に、RTT計測部12からRTTを入力し、以下の式によりCWNDを算出し、CWNDをパケット送信量決定手段23に出力する。
CWND算出手段22は、判定結果がCWND維持またはCWND減少の場合、以下の式によりCWNDを算出する(図4のステップS405)。
CWND=(RTT/RTTorg)×CWND ・・・(8)
ここで、RTTorgは、予め設定された、RTTの基準となる値である。
ここで、CWNDはACKを受信するRTT毎に算出されるから、RTTが大きい場合はCWNDの更新速度が遅くなり、RTTが小さい場合はCWNDの更新速度は速くなる。実施例6によれば、RTTを考慮した式(8)を用いてCWNDを算出するから、RTTが大きい場合は、CWNDの減少量を抑えて大きい値にすることができる。また、RTTが小さい場合は、CWNDの減少量を大きくし、RTTが大きい場合のCWNDよりもCWNDを小さい値にすることができる。したがって、CWNDを減少させた後に増加させることを考慮すると、RTTが大きい場合はRTTが小さい場合に比べ、CWNDを増加させる際の更新頻度が少なくなり、増加量が小さくなるから、CWNDを減少させる際の減少量を抑えることにより、CWNDを増加させる際にRTTが小さい場合と同様のCWNDを早期に得ることができる。
一方、CWND算出手段22は、判定結果がCWND増加の場合、以下の式によりCWNDを算出する(図4のステップS406)。
CWND=CWND+(RTT/RTTorg)×(1/CWND)
・・・(9)
前述のとおり、CWNDはACKを受信するRTT毎に算出されるから、RTTが大きい場合はCWNDの更新速度が遅くなり、RTTが小さい場合はCWNDの更新速度は速くなる。したがって、判定結果がCWND増加の場合、CWND算出手段22により、RTTに関わらず基準とするRTTorgのときのCWND増加速度と同等の増加速度とすることができる。これは、所定期間Tにおいて、CWNDは(T/RTT)回更新されるから、優先度が同じ場合、CWNDの増加量は、(RTT/RTTorg)×(1/CWND)×(T/RTT)=(1/RTTorg)×(1/CWND)×Tとなり、RTTの値に依存することなくCWNDの増加量は一定になるからである。すなわち、図11に示したように、RTTが大きい場合、従来はCWNDの更新速度が遅いからCWNDの増加速度が遅かった。また、RTTが小さい場合、従来はCWNDの更新速度が速いからCWNDの増加速度が速かった。実施例6によれば、RTTを考慮した式(9)を用いてCWNDを算出するから、RTTの大きさに応じてCWNDの増加速度をRTTorgの増加速度に合わせることができる。
以上のように、実施例6の送信装置1によれば、CWND維持及びCWND減少の処理を行う場合、RTTを考慮した式(8)を用いてCWNDを算出し、CWND増加の処理を行う場合、RTTを考慮した式(9)を用いてCWNDを算出するから、RTTの大きさに応じてCWNDの増加速度を、基準となるRTTorgの増加速度に合わせることができる。したがって、RTTの大小にかかわらず、所定時間におけるパケット送信量の平均値(所定のパケット送信量)が等しくなるように、送信レートを調節することができる。つまり、RTTの影響を受けることなく、RTTの大小にかかわらず、利用者の意図に従ったデータ伝送を、簡易な手法により実現することができる。
本発明の実施例1〜6による送信装置1のハード構成としては、通常のコンピュータを使用することができる。送信装置1は、CPU、RAM等の揮発性の記憶媒体、ROM等の不揮発性の記憶媒体、及びインターフェース等を備えたコンピュータによって構成される。実施例1〜4,6の送信装置1に備えた送信部10、受信部11、RTT計測部12、パケットロス検出部13、RWND検出部14及び送信レート決定部15の各機能は、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。また、実施例5の送信装置1に備えた、送信部10、受信部11、RTT計測部12、パケットロス検出部13、RWND検出部14、送信レート決定部15、優先度保持部16及び優先度生成部17の各機能も、これらの機能を記述したプログラムをCPUに実行させることによりそれぞれ実現される。これらのプログラムは、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスク等)、光ディスク(CD−ROM、DVD等)、半導体メモリ等の記憶媒体に格納して頒布することもできる。
以上、実施例を挙げて本発明を説明したが、本発明は前記実施例に限定されるものではなく、その技術思想を逸脱しない範囲で種々変形可能である。例えば、前記実施例では、NewReno方式を例に挙げて説明したが、本発明は、NewReno方式に限定されるものではなく、他の方式にも適用がある。
1 送信装置
2 受信装置
3 ネットワーク経路
10 送信部
11 受信部
12 RTT計測部
13 パケットロス検出部
14 RWND検出部
15 送信レート決定部
16 優先度保持部
17 優先度生成部
20 経路状態判定手段
21 パラメータ設定手段
22 CWND算出手段
23 パケット送信量決定手段

Claims (10)

  1. ネットワークの輻輳状態に応じて送信レートを制御しながら受信装置へデータパケットを送信し、前記データパケットに対する応答を前記受信装置から受信する送信装置において、
    前記送信したデータパケットに対する応答を受信する受信部と、
    前記受信部により受信された応答に基づいて、前記ネットワークの輻輳状態を判定し、前記輻輳状態及び優先度に基づいて、前記輻輳を回避するための送信レートを決定する送信レート決定部と、を備え、
    前記送信レート決定部は、
    前記送信レートを減少させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの減少量が小さくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの減少量が大きくなるように、前記送信レートを決定し、
    前記送信レートを増加させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの増加量が大きくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの増加量が小さくなるように、前記送信レートを決定する、ことを特徴とする送信装置。
  2. 請求項1に記載の送信装置において、
    さらに、前記データパケットの送信時刻及び前記受信部により受信された応答の受信時刻に基づいて、RTT(Round Trip Time:ラウンドトリップタイム)を計測するRTT計測部と、
    前記受信部により受信された応答に含まれる確認応答番号に基づいて、パケットロスの発生を検出するパケットロス検出部と、を備え、
    前記送信レート決定部は、
    前記パケットロス検出部によりパケットロスの発生が検出された場合、または、前記パケットロスの発生が検出されず、かつ前記RTT計測部により計測されたRTTが増加している場合、前記ネットワークの経路に輻輳が発生していると判定し、前記パケットロスの発生が検出されず、かつ前記RTTが減少している場合、前記ネットワークの経路に輻輳が発生していないと判定する経路状態判定手段と、
    前記経路状態判定手段により前記ネットワークの経路に輻輳が発生していると判定された場合、前回算出したデータ量よりも減少させ、かつ、前記優先度が高いときは低いときよりも減少量が小さくなるように、優先度が低いときは高いときよりも減少量が大きくなるように、新たなデータ量を算出し、前記ネットワークの経路に輻輳が発生していないと判定された場合、前回算出したデータ量よりも増加させ、かつ、前記優先度が高いときは低いときよりも増加量が大きくなるように、優先度が低いときは高いときよりも増加量が小さくなるように、新たなデータ量を算出するデータ量算出手段と、
    前記データ量算出手段により算出された新たなデータ量と、前記受信部により受信された応答に含まれる最大受付可能データ量とを比較し、前記新たなデータ量が前記最大受付可能データ量以下の場合、前記新たなデータ量をパケット送信量に決定し、前記新たなデータ量が前記最大受付可能データ量よりも大きい場合、前記最大受付可能データ量をパケット送信量に決定するパケット送信量決定手段と、を備え、
    前記パケット送信量決定手段により決定されたパケット送信量にて送信レートを制御する、ことを特徴とする送信装置。
  3. 請求項2に記載の送信装置において、
    前記RTT計測部の代わりに、滞留パケット数算出部を備え、
    前記滞留パケット数算出部は、前記データパケットの送信時刻及び前記受信部により受信された応答の受信時刻に基づいて、RTTを計測し、前記RTT、及び前記送信レート決定部により決定された送信レートにて送信されるデータパケットの量に基づいて、前記ネットワークに滞留している滞留パケット数を算出し、
    前記送信レート決定部は、前記受信部により受信された応答に含まれる確認応答番号及び最大受付可能データ量、並びに前記滞留パケット数算出部により算出された滞留パケット数に基づいて、前記ネットワークの輻輳状態を判定し、前記送信レートを減少させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの減少量が小さくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの減少量が大きくなるように、前記送信レートを決定し、前記送信レートを増加させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの増加量が大きくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの増加量が小さくなるように、前記送信レートを決定する、ことを特徴とする送信装置。
  4. ネットワークの輻輳状態に応じて送信レートを制御しながら受信装置へデータパケットを送信し、前記データパケットに対する応答を前記受信装置から受信する送信装置において、
    前記送信したデータパケットに対する応答を受信する受信部と、
    前記データパケットの送信時刻及び前記受信部により受信された応答の受信時刻に基づいて、RTT(Round Trip Time:ラウンドトリップタイム)を計測するRTT計測部と、
    前記受信部により受信された応答に基づいて、前記ネットワークの輻輳状態を判定し、前記輻輳状態、優先度、及び前記RTT計測部により計測されたRTTに基づいて、前記輻輳を回避するための送信レートを決定する送信レート決定部と、を備え、
    前記送信レート決定部は、
    前記送信レートを減少させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの減少量が小さくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの減少量が大きくなるように、前記送信レートを決定し、
    前記送信レートを増加させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの増加量が大きくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの増加量が小さくなるように、前記送信レートを決定し、かつ、
    前記送信レートを減少させる際に、前記RTTが大きい場合は、前記RTTが小さい場合よりも前記送信レートの減少量が小さくなるように、前記送信レートを決定し、前記RTTが小さい場合は、前記RTTが大きい場合よりも前記送信レートの減少量が大きくなるように、前記送信レートを決定し、
    前記送信レートを増加させる際に、前記RTTが大きい場合は、前記RTTが小さい場合よりも前記送信レートの増加量が大きくなるように、前記送信レートを決定し、前記RTTが小さい場合は、前記RTTが大きい場合よりも前記送信レートの増加量が小さくなるように、前記送信レートを決定する、ことを特徴とする送信装置。
  5. 請求項4に記載の送信装置において、
    さらに、前記受信部により受信された応答に含まれる確認応答番号に基づいて、パケットロスの発生を検出するパケットロス検出部を備え、
    前記送信レート決定部は、
    前記パケットロス検出部によりパケットロスの発生が検出された場合、または、前記パケットロスの発生が検出されず、かつ前記RTT計測部により計測されたRTTが増加している場合、前記ネットワークの経路に輻輳が発生していると判定し、前記パケットロスの発生が検出されず、かつ前記RTTが減少している場合、前記ネットワークの経路に輻輳が発生していないと判定する経路状態判定手段と、
    前記経路状態判定手段により前記ネットワークの経路に輻輳が発生していると判定された場合、前回算出したデータ量よりも減少させ、かつ、前記優先度が高いときは低いときよりも減少量が小さくなるように、優先度が低いときは高いときよりも減少量が大きくなるように、かつ、前記RTTが大きいときは小さいときよりも減少量が小さくなるように、RTTが小さいときは大きいときよりも減少量が大きくなるように、新たなデータ量を算出し、前記ネットワークの経路に輻輳が発生していないと判定された場合、前回算出したデータ量よりも増加させ、かつ、前記優先度が高いときは低いときよりも増加量が大きくなるように、優先度が低いときは高いときよりも増加量が小さくなるように、かつ、前記RTTが大きいときは小さいときよりも増加量が大きくなるように、RTTが小さいときは大きいときよりも増加量が小さくなるように、新たなデータ量を算出するデータ量算出手段と、
    前記データ量算出手段により算出された新たなデータ量と、前記受信部により受信された応答に含まれる最大受付可能データ量とを比較し、前記新たなデータ量が前記最大受付可能データ量以下の場合、前記新たなデータ量をパケット送信量に決定し、前記新たなデータ量が前記最大受付可能データ量よりも大きい場合、前記最大受付可能データ量をパケット送信量に決定するパケット送信量決定手段と、を備え、
    前記パケット送信量決定手段により決定されたパケット送信量にて送信レートを制御する、ことを特徴とする送信装置。
  6. 請求項1から5までのいずれか一項に記載の送信装置において、
    さらに、前記データパケットが送信される受信装置の宛先アドレスと、前記宛先アドレスに対応する優先度とを保持する優先度保持部と、
    宛先アドレスを入力し、前記優先度保持部から前記宛先アドレスに対応する優先度を読み出し、前記優先度を前記送信レート決定部に出力する優先度生成部と、を備え、
    前記送信レート決定部は、前記優先度生成部により出力された優先度を入力し、前記送信レートを決定する、ことを特徴とする送信装置。
  7. ネットワークの輻輳状態に応じて送信レートを制御しながら受信装置へデータパケットを送信し、前記データパケットに対する応答を前記受信装置から受信する送信装置において、
    前記送信したデータパケットに対する応答を受信する受信部と、
    前記データパケットの送信時刻及び前記受信部により受信された応答の受信時刻に基づいて、RTT(Round Trip Time:ラウンドトリップタイム)を計測するRTT計測部と、
    前記RTT計測部により計測されたRTTに基づいて、
    前記送信レートを減少させる際に、前記RTTが大きい場合は、前記RTTが小さい場合よりも前記送信レートの減少量が小さくなるように、前記送信レートを決定し、前記RTTが小さい場合は、前記RTTが大きい場合よりも前記送信レートの減少量が大きくなるように、前記送信レートを決定し、
    前記送信レートを増加させる際に、前記RTTが大きい場合は、前記RTTが小さい場合よりも前記送信レートの増加量が大きくなるように、前記送信レートを決定し、前記RTTが小さい場合は、前記RTTが大きい場合よりも前記送信レートの増加量が小さくなるように、前記送信レートを決定する送信レート決定部と、
    を備えたことを特徴とする送信装置。
  8. 請求項2または5に記載の送信装置において、
    前記送信レート決定部は、送信レートを増加させた結果、パケットロスの発生を検出する前にRTTが増加していることを判定した場合、前記送信レートの増加を抑える、ことを特徴とする送信装置。
  9. ネットワークの輻輳状態に応じて送信レートを制御しながら受信装置へデータパケットを送信する送信方法において、
    データパケットを送信するステップと、
    前記送信したデータパケットに対する応答を受信するステップと、
    前記受信した応答に基づいて前記ネットワークの輻輳状態を判定するステップと、
    前記判定した輻輳状態及び優先度に基づいて、前記輻輳を回避するための送信レートを決定するステップと、を有し、
    前記送信レートを決定するステップは、
    前記送信レートを減少させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの減少量が小さくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの減少量が大きくなるように、前記送信レートを決定し、
    前記送信レートを増加させる際に、前記優先度が高い場合は、前記優先度が低い場合よりも前記送信レートの増加量が大きくなるように、前記送信レートを決定し、前記優先度が低い場合は、前記優先度が高い場合よりも前記送信レートの増加量が小さくなるように、前記送信レートを決定する、ことを特徴とする送信方法。
  10. コンピュータを、請求項1から9までのいずれか一項に記載の送信装置として機能させるための送信プログラム。
JP2010014722A 2010-01-26 2010-01-26 送信装置、送信方法及びプログラム Expired - Fee Related JP5308364B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010014722A JP5308364B2 (ja) 2010-01-26 2010-01-26 送信装置、送信方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010014722A JP5308364B2 (ja) 2010-01-26 2010-01-26 送信装置、送信方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2011155406A true JP2011155406A (ja) 2011-08-11
JP5308364B2 JP5308364B2 (ja) 2013-10-09

Family

ID=44541064

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010014722A Expired - Fee Related JP5308364B2 (ja) 2010-01-26 2010-01-26 送信装置、送信方法及びプログラム

Country Status (1)

Country Link
JP (1) JP5308364B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011250365A (ja) * 2010-05-31 2011-12-08 Nippon Hoso Kyokai <Nhk> 送信装置、受信装置及びプログラム
JP2015033125A (ja) * 2013-08-07 2015-02-16 日本放送協会 パケット送信装置およびそのプログラム
US10187671B2 (en) 2013-12-02 2019-01-22 Samsung Electronics Co., Ltd. Apparatus and method for transmitting and receiving content
WO2019159893A1 (ja) * 2018-02-15 2019-08-22 日本電気株式会社 データ配信装置、システム、方法および記録媒体
CN113300971A (zh) * 2021-02-05 2021-08-24 阿里巴巴集团控股有限公司 数据处理系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003258881A (ja) * 2002-02-28 2003-09-12 Nippon Telegr & Teleph Corp <Ntt> アダプティブ品質制御方式
JP2006197110A (ja) * 2005-01-12 2006-07-27 Fujitsu Ltd 中継装置及び通信端末装置
JP2007189592A (ja) * 2006-01-16 2007-07-26 Kddi Corp トークンバケットによるトラヒック制御装置、方法及びプログラム
JP2009278521A (ja) * 2008-05-16 2009-11-26 Canon Inc 通信装置、及び通信方法、プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003258881A (ja) * 2002-02-28 2003-09-12 Nippon Telegr & Teleph Corp <Ntt> アダプティブ品質制御方式
JP2006197110A (ja) * 2005-01-12 2006-07-27 Fujitsu Ltd 中継装置及び通信端末装置
JP2007189592A (ja) * 2006-01-16 2007-07-26 Kddi Corp トークンバケットによるトラヒック制御装置、方法及びプログラム
JP2009278521A (ja) * 2008-05-16 2009-11-26 Canon Inc 通信装置、及び通信方法、プログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011250365A (ja) * 2010-05-31 2011-12-08 Nippon Hoso Kyokai <Nhk> 送信装置、受信装置及びプログラム
JP2015033125A (ja) * 2013-08-07 2015-02-16 日本放送協会 パケット送信装置およびそのプログラム
US10187671B2 (en) 2013-12-02 2019-01-22 Samsung Electronics Co., Ltd. Apparatus and method for transmitting and receiving content
WO2019159893A1 (ja) * 2018-02-15 2019-08-22 日本電気株式会社 データ配信装置、システム、方法および記録媒体
CN113300971A (zh) * 2021-02-05 2021-08-24 阿里巴巴集团控股有限公司 数据处理系统及方法

Also Published As

Publication number Publication date
JP5308364B2 (ja) 2013-10-09

Similar Documents

Publication Publication Date Title
US7987284B2 (en) Communication processing apparatus, data communication system, and communication processing method
JP6672340B2 (ja) データフローを調整するシステム及び方法
US9641650B2 (en) TCP proxy server
CN110266605B (zh) 用于速率控制的方法和设备
JP4878391B2 (ja) 適応的なキュー待ち時間を伴うスケジューリング及びキューマネージメント
EP3075110B1 (en) Controlling a transmission control protocol window size
EP1524808A2 (en) Adjusting transmission rate in a mobile ad hoc network
WO2020048147A1 (zh) 数据传输方法及装置
KR20040002604A (ko) 수신기 개시 송신 레이트 증가 방법
JP2011035442A (ja) 送信レート制御方法および通信装置
KR20170097129A (ko) 데이터 전송 방법 및 장치
JP5308364B2 (ja) 送信装置、送信方法及びプログラム
KR20200083582A (ko) 실시간 전송 네트워크 혼잡 조건에 기초하여 데이터 전송 네트워크 프로토콜을 가속 또는 감속하기 위한 시스템 및 방법
TWI646807B (zh) Rudp裝置及滑動窗參數的動態調整方法
KR101837637B1 (ko) 클라이언트 측 ack 조정 기반 적응 스트리밍 방법 및 장치
WO2016100890A1 (en) Smooth bandwidth-delay product variation inside wireless networks
US9130843B2 (en) Method and apparatus for improving HTTP adaptive streaming performance using TCP modifications at content source
KR102176176B1 (ko) 전송 제어 프로토콜을 이용하는 무선 네트워크에서 혼잡 제어 방법 및 장치
US10015288B2 (en) Communication apparatus and control method of communication apparatus
JP3853784B2 (ja) データ通信管理方法
JP2005086375A (ja) パケット送信量制御方法、通信システム、通信装置及びプログラム
JP6200870B2 (ja) データ転送制御装置、方法及びプログラム
JP6491521B2 (ja) パケット通信におけるパケット送信装置、通信端末及び輻輳制御方法
JP5520139B2 (ja) 送信装置、受信装置及びプログラム
KR101806510B1 (ko) 혼잡 진입 제어 장치 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120319

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130514

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130604

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130628

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5308364

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees