JP6004116B2 - 計測装置、通信装置、中継装置、計測方法および計測プログラム - Google Patents

計測装置、通信装置、中継装置、計測方法および計測プログラム Download PDF

Info

Publication number
JP6004116B2
JP6004116B2 JP2015538721A JP2015538721A JP6004116B2 JP 6004116 B2 JP6004116 B2 JP 6004116B2 JP 2015538721 A JP2015538721 A JP 2015538721A JP 2015538721 A JP2015538721 A JP 2015538721A JP 6004116 B2 JP6004116 B2 JP 6004116B2
Authority
JP
Japan
Prior art keywords
information
communication device
transmission
response messages
time
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.)
Expired - Fee Related
Application number
JP2015538721A
Other languages
English (en)
Other versions
JPWO2015045080A1 (ja
Inventor
哲明 鶴岡
哲明 鶴岡
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Application granted granted Critical
Publication of JP6004116B2 publication Critical patent/JP6004116B2/ja
Publication of JPWO2015045080A1 publication Critical patent/JPWO2015045080A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/106Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/087Jitter

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Environmental & Geological Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、計測装置、通信装置、中継装置、計測方法および計測プログラムに関する。
インターネットなどのネットワークを介した通信において、効率的な通信を行うには、送信者はネットワークがどのぐらいのトラフィックを流す能力があるかを把握し、その能力内で送信することが重要となる。しかし、これを直接知る方法はないため、従来さまざまな計測手法が用いられてきた(たとえば、下記特許文献1〜4、非特許文献1〜2参照。)。
特許第4853319号公報 特許第4367505号公報 特開2006−074773号公報 特開2006−340081号公報
S.Floyd,T.Henderson,A.Gurtov、"The NewReno Modification to TCP’s Fast Recovery Algorithm"、RFC2582、Internet Engineering Task Force(IETF)、2003年 Lawrence S.Brakmo,Larry L.Peterson、"TCP Vegas:End to End Congestion Avoidance on a Global Internet"、IEEE Journal on Selected Areas in Communications,Vol.13,No.8、pg.1465−1480、1995年
たとえば、特許文献1においては、受信者において受信レートを観測し、これを送信者に通知する手法が開示されている。しかしながら、既存の通信手順にそのような送信帯域制御を導入する場合、受信側の通信機器においても測定を行うための機能を追加することになる。また、特許文献2においては、受信者が送信者に返送する確認応答の到着ペースやそのRTT(Round Trip Time:ラウンドトリップタイム)を計測することによって、受信者における受信レートを送信者が推定することが開示されている。この方法であれば、送信者が得られる情報だけでネットワークの能力を推定することができる。しかし、この計測方法は、確認応答が返送される戻りパスでのネットワークの状況の影響を受けやすいという問題がある。また、別の従来技術として、パケットのロスや伝播遅延の増加といった、ネットワークの能力を超えた、あるいは超えつつある兆候を監視しながら、徐々に送信レートを上げていくようなフィードバック制御が用いられている(特許文献3,4、非特許文献1,2)が、この手法は本質的に収束に時間がかかるのと、ネットワークの動的な変動に対応できない、という問題がある。
1つの側面では、本発明は、送信側でデータ転送手順に基づいて得られる情報だけで実施可能な到着レートの計測精度の向上を図ることで、適正な送信レートを推定できる計測装置、通信装置、中継装置、計測方法および計測プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明の一側面によれば、受信側における時刻の変化を、受信側が返信するメッセージに付与される送信時刻情報から取得する。
そして、受信側が送信時刻情報を実際の時間からどういう換算を行ったものか、を送信側でその時間当たり変化を監視しることで推定することで受信端末側での相対的な時間経過を送信側の時間尺度に換算する。
すなわち、
第1通信装置から第2通信装置へのデータ転送手順によるデータ転送において、
前記第2通信装置から前記第1通信装置への各応答メッセージにおける前記第2通信装置により付された送信時刻情報の、各応答メッセージにおける変化量を示す第1情報と、前記各応答メッセージの前記第1通信装置への到着時刻の差を示す第2情報と、に基づいて算出する、前記第1通信装置と前記第2通信装置との間の時間換算係数と、
前記第1通信装置から前記第2通信装置への送信データに対応する、ある2つの確認応答メッセージにより確認されたデータ転送の進行量を示す第3情報と、
前記2つの確認応答メッセージにおける、第2通信装置からの各応答メッセージの前記第2通信装置により付された送信時刻情報の差を示す第4情報と、
に基づき得られる前記第2通信装置の送信時刻情報の単位変化量あたりのデータレートに対し、前記時間換算係数を乗じることにより、前記第1通信装置において、前記第2通信装置における到着レートを算出する計測装置、通信装置、中継装置、計測方法および計測プログラムが提案される。
本発明の一側面によれば、送信側でデータ転送手順に基づいて得られる情報だけで実施可能な、戻りパスの影響を受けない到着レートの計測ができるという効果を奏する。
図1は、実施の形態1にかかる通信システムの一例を示す図である。 図2は、実施の形態2にかかる通信システムの一例を示す図である。 図3Aは、実施の形態2にかかるサーバの一例を示す図である。 図3Bは、図3Aに示したサーバにおける信号の流れの一例を示す図である。 図3Cは、サーバのハードウェア構成の一例を示す図である。 図4Aは、TCPのパケットヘッダのフォーマットの一例を示す図である。 図4Bは、タイムスタンプのエンコード方式の一例を示す図である。 図4Cは、タイムスタンプのエンコード方法の他の例を示す図である。 図5は、サーバとクライアントとの間の信号の送受信の一例を示す図である。 図6は、到着レートの変動の一例を示す図である。 図7は、実施の形態2にかかる記録テーブルおよび算出結果の一例を示す図である。 図8は、実施の形態3にかかるサーバに記憶されるテーブルの一例を示す図である。 図9は、実施の形態4にかかるサーバに記憶されるテーブルの一例を示す図である。 図10は、実施の形態8にかかる記録テーブルの一例を示す図である。 図11は、実施の形態8にかかる記録テーブルおよび算出結果の一例を示す図である。 図12は、サーバとクライアントとの間の信号の送受信の一例を示す図である。 図13Aは、実施の形態23にかかる中継装置の一例を示す図である。 図13Bは、図13Aに示した中継装置における信号の流れの一例を示す図である。 図14は、コネクション管理テーブルの一例を示す図である。
以下に図面を参照して、本発明にかかる計測装置、通信装置、中継装置、計測方法および計測プログラムの実施の形態を詳細に説明する。
(実施の形態1)
(実施の形態1にかかる通信システム)
図1は、実施の形態1にかかる通信システムの一例を示す図である。図1に示すように、実施の形態1にかかる通信システム100は、第1通信装置110と、第2通信装置120と、計測装置101と、を含む。第1通信装置110および第2通信装置120は、互いに通信を行う各通信装置である。
計測装置101は、たとえば、第1通信装置110から送信される送信データの第2通信装置120における到着レートを計測する装置である。計測装置101は、第1通信装置110と通信可能な装置であってもよいし、第1通信装置110に設けられた装置であってもよい。計測装置101が第1通信装置110と通信可能な装置である場合は、計測装置101は、第1通信装置110が第2通信装置120から受信する応答メッセージに関する情報等を第1通信装置110から受信して到着レートを計測する。以下の説明においては、計測装置101が第1通信装置110に設けられた装置である場合について説明する。
送信データ111は、第1通信装置110から第2通信装置120へ送信される各送信データである。各々の送信データを区別するため、添字(1〜3、i、j、k)を振っている。応答メッセージ121は、対応する送信データ111に対して第2通信装置120から第1通信装置110へ送信される応答メッセージである。同様に各々のメッセージを区別するため、添字(1〜3、i、j、k)を振っている。
応答メッセージ121のそれぞれには、第2通信装置120によって送信時刻情報T21が付される(各々のメッセージに付されている時刻情報について、対応する添字(1〜3、i、j、k)を振っている)。送信時刻情報T21は、対応する応答メッセージ121が第2通信装置120から送信される時刻に応じ付与されたものである。したがって、送信時刻情報T21は、第2通信装置120の時間基準(内部時刻)に基づき生成された時刻情報である。計測装置101は、第1通信装置110が受信した応答メッセージ121から送信時刻情報T21を取得することができる。送信時刻情報T21と実際の時刻との関係は第2通信装置120の実装依存であり、第1通信装置110は第2通信装置120がその応答メッセージを送信した時刻を、その送信時刻情報T21の値から直接得ることはできない。
到着時刻T11は、応答メッセージ121各々の第1通信装置110における到着時刻である。各々の対応する応答メッセージと同一の添字(1〜3、i、j、k)を振っている。ただし、到着時刻T11は、第1通信装置110の時間基準に基づく送信時刻である。
図1に示す例では、計測装置101が、送信データ111−i〜111−kの第2通信装置120における到着レートを計測する場合について説明する。この場合は、計測装置101は、送信データ111−i、111−kに対する応答メッセージ121−i、121−kの送信時刻情報T21−i,T21−kを取得する。ここで、(T21−k)−(T21−i)(第4情報)は、送信データ111−i〜111−kの到着にかかった、第2通信装置120の時間基準に基づく時間情報を示す。
また、計測装置101は、送信データ111−i〜111−k間の合計のデータ量D(第3情報)を取得する。伝播遅延あるいは応答遅延がある2者間でのデータ転送手順において、データ転送を効率的に行うには相手から確認応答を受けずに一定量データを送ることを許容する必要がある。また、その場合データ転送手順においては受け手の返信する確認応答がどの送信データに対する応答であるかを区別できる必要がある。そのような仕組みを実装しているデータ転送手順においては、確認応答に含まれる情報に、どのデータに対する応答かを示す情報があり、一般にこの情報を解析することにより、2つの応答メッセージ間でどれだけデータ量が届いているかを知ることが可能である。これにより、計測装置101は、D/((T21−k)−(T21−i))によって、第2通信装置120の時間基準に基づく送信データ111−i〜111−kの到着レートを算出することができる。
また、計測装置101は、第1通信装置110の時間基準と、第2通信装置120の時間基準と、の比(時間換算係数)を算出する。そのために、計測装置101は、たとえば送信データ111−1〜111−2に対する応答メッセージ121−1,121−2の送信時刻情報T21−1,T21−2を取得する。また、計測装置101は、応答メッセージ121−1,121−2の到着時刻T11−1,T11−2を取得する。そして、計測装置101は、取得した送信時刻情報T21−1,T21−2の差(第1情報)と、取得した到着時刻T11−1,T11−2の差(第2情報)と、の比((T21−2)−(T21−1))/((T11−2)−(T11−1))を算出することにより時間換算係数を算出する。
たとえば、計測装置101は、時間換算係数を得る対象とする応答メッセージについて、上記の例のように最初の2つを採用してもよいが、別の例として送信データ111−1,111−kの応答メッセージ121−1,121−kを対象とし時間換算係数を算出してもよい。このように、計測対象の期間よりも互いの送信間隔が長い各送信データについて時間換算係数を算出することにより、第1通信装置110と第2通信装置120との間の時間換算係数を精度よく算出することができる。
または、計測装置101は、前記時間換算係数を複数回計測しそれを逐次平均化してもよい。これにより、各応答メッセージ121の到着までの遅延量がばらついても、第1通信装置110と第2通信装置120との間の時間換算係数を精度よく算出することができる。
計測装置101は、たとえば、算出した送信データ111−i〜111−kの第2通信装置120の時間基準に基づく送信時刻情報の単位変化量あたりの到着レートに、算出した第1通信装置110と第2通信装置120との間の時間換算係数を乗じる。これにより、第1通信装置110の時間基準に基づく送信データ111−i〜111−kの到着レートを算出することができる。
たとえば、応答メッセージ121−1,121−kに基づく時間換算係数を用いる場合は、計測装置101は、D/((T21−k)−(T21−i))に((T21−k)−(T21−1))/((T11−k)−(T11−1))を乗じることによって第1通信装置110の時間基準に基づく送信データ111−i〜111−kの到着レートを算出することができる。
以上の算出手順は一例であり、実施に際し各数値の保持の方法や有効桁数あるいは演算ステップ数の最適化等を理由に算術的な変形をして用いることは任意である。
このように、実施の形態1にかかる計測装置101は、ある2つの応答メッセージにおける、受信側である第2通信装置120の側における到着レートを、送信側である第1通信装置110が受け取る応答メッセージ中の確認応答情報を解析して得られる応答されたデータ量と、応答メッセージで示された送信時刻情報の変化量、そして応答メッセージの送信時刻情報および到着時刻の関係から得られる時間換算係数を用いることにより、第2通信装置120の側に機能を追加しなくても、第1通信装置110において容易に取得可能な各情報に基づいて到着レートを計測することができる。
(実施の形態2)
送信時刻情報の具体的な実装形態として、タイムスタンプがある。相手の付与するタイムスタンプ情報から、受信側における時間経過を送信側で算出することで、データ到着レートの計測を、送信側のみの処理で計測可能で、かつ戻りパスのネットワーク状態を受けない(受けにくい)方法によって実現することができる。
タイムスタンプは、たとえばパケットの送信時刻に関する情報をパケットに埋め込むものであり、近年、データ転送プロトコルなどで、各メッセージ間の時間的前後関係の明確化や、RTTの計測を目的に、仕様として採用されている。
送信データがパケット化されて伝達され、その応答メッセージもパケットとして返信される構成において、データパケットに対する応答パケット(たとえばAckパケット)を受信側が迅速に返信することを仮定すれば、応答パケットの送信時刻をタイムスタンプから判断できれば、タイムスタンプの進み具合とAckされたデータ量の進み具合から、受信側における到着レートを推定することができる。
TCP(Transmission Control Protocol:伝送制御プロトコル、RFC793)においては、タイムスタンプ情報をパケットに含むことがオプションとしてRFC1323にて規定されている。このオプションにおいては、パケットを送信するときの時刻情報をプロトコル仕様で定められたフィールドサイズに合う形で数値化したタイムスタンプが埋め込まれる。また、このタイムスタンプは、TCPにおいてはパケット内のTCPヘッダ内に埋め込まれる(たとえば図4A〜図4C参照)。
RTTの計測に用いるために、RFC1323の規定においては、パケットに対し送信時点に対応したタイムスタンプを格納して送信することに加え、応答パケットに、対応するデータパケットのタイムスタンプ値を格納することが求められている。このため、RFC1323においては、パケット送信側のタイムスタンプを格納するフィールド(TSval)と、データパケットの受信側が、データパケットのタイムスタンプを、データパケットに対する応答パケットにエコーバックとして格納するフィールド(TSecr)を用意している(図4B,図4C参照)。
しかし、タイムスタンプは、一般的に、たとえば相手側に対して時間の前後関係を示し(たとえば値が単調増加)、エコーバックした値を使ってRTTが所定の精度で計測可能であればよい。前記RFC1323においても、タイムスタンプの値と時刻の関係については「実際の時間(経過)に対しほぼ比例した値」とだけ規定されている。このため、タイムスタンプの1単位がどの程度の時間経過を示すのかについては実装依存であるし、タイムスタンプの増加ペースが一定であることを保障するものでもない。
そこで、実施の形態2においては、データパケットの送信側が、データパケットに対する応答パケットに含まれるタイムスタンプの進み具合と、送信側における応答パケットの到着時刻の時間経過から、受信側のタイムスタンプの変化速度を計測する。近年の通信システムにおいては、各通信装置が水晶発振(クロック)の精度で時刻の基準を持つのが一般的である。このため、タイムスタンプは、タイムスタンプを生成するメカニズムに由来する変動要素(たとえばタイマ割り込みに対する応答時間の変動)はあるものの、長時間にわたり安定した増加ペースを維持する。
また、データパケットの受信側が応答パケットを送信してからデータパケットの送信側が応答パケットを受信するまでの片方向遅延も途中のキューイングディレイの変動で変化し得る。しかし、これについても一時的な変動はあっても長時間で平均化すれば計測値への影響は小さくなる。
そして、このような方法で応答パケットに含まれるタイムスタンプの変化率(クロック比)が分かれば、各応答パケットに含まれるタイムスタンプから時間の経過を知ることができる。これにより、2つの応答パケットについて、その送信時刻の差と、送信パケットのデータ量と、から受信側における到着レートを計測することが可能となる。
タイムスタンプがクロックに基づき生成されたものである場合は、クロック比は、原理的に同じ値が得られるはずであるため、クロック比の計測の誤差を減らすには計測時間を長くしてもよい。一方、到着レートに算出する際に使用する応答パケットの時間的間隔は、到着レートが絶えず変化することを想定しているため、平滑化されすぎると不都合である。このように、クロック比の算出に用いる応答パケットの対と、到着レートの算出に使用する応答パケットの対は要件が異なるため、それぞれ異なるパケット対に基づいてクロック比および到着レートを算出してもよい。
(実施の形態2にかかる通信システム)
図2は、実施の形態2にかかる通信システムの一例を示す図である。図2に示すように、実施の形態2にかかる通信システム200は、サーバ211〜214と、クライアント221,222と、を含む。サーバ211〜214は、インターネット201に接続されている。クライアント221,222は、無線アクセス網202を介してインターネット201に接続されている。
一例として、サーバ211からクライアント221へデータパケットを送信する場合において、図1に示した計測装置101および第1通信装置110は、たとえばサーバ211に適用することができる。また、図1に示した第2通信装置120は、たとえばクライアント221に適用することができる。ここでは、サーバ211において、サーバ211からクライアント221へのデータパケットのクライアント221における到着レートを計測する場合について説明する。また、サーバ211は、到着レートの計測レートに応じて、クライアント221へのデータパケットの送出レートを制御する。
サーバ211からクライアント221へのデータパケットは、たとえばTCPなどを用いて伝送される。
(サーバ)
図3Aは、実施の形態2にかかるサーバの一例を示す図である。図3Bは、図3Aに示したサーバにおける信号の流れの一例を示す図である。図2に示したサーバ211は、たとえば図3A,図3Bに示すサーバ300によって実現することができる。サーバ300は、リンクレイヤ処理部310と、受信データ組立部321と、受信データバッファ322と、通信アプリケーション実行部330と、送信データバッファ341と、送信パケット構築部342と、送信キュー343と、を備える。
また、サーバ300は、Ack情報解析部351と、Ack情報記録部352と、クロック比計測部353と、相手到着レート計測部354と、を備える。また、サーバ300は、送信遅延変動計測部355と、RTT計測部356と、送出レート制御部357と、再送制御部358と、応答待バッファ359と、を備える。
リンクレイヤ処理部310は、リンクレイヤ受信部311と、リンクレイヤ送信部312と、を備える。リンクレイヤ受信部311は、ネットワーク(たとえば図2のインターネット201)からのパケットを受信する。リンクレイヤ受信部311が受信するパケットには、たとえば、他の通信装置(たとえば図2のクライアント221)からのデータパケットや、サーバ300が送信したデータパケットに対する他の通信装置(たとえば図2のクライアント221)からの応答パケットが含まれる。リンクレイヤ受信部311は、受信したパケットを受信データ組立部321およびAck情報解析部351へ出力する。リンクレイヤ送信部312は、送信キュー343に格納されたパケットを順次読み出してネットワーク(たとえば図2のインターネット201)へ送信する。
受信データ組立部321は、リンクレイヤ受信部311から出力されたパケットのうちのデータパケットを取得する。そして、受信データ組立部321は、取得したデータパケットの組立を行い、組立により得られたデータを受信データバッファ322へ出力する。受信データバッファ322は、受信データ組立部321から出力されたデータを一次格納し、格納したデータを順次、通信アプリケーション実行部330へ出力する。
通信アプリケーション実行部330は、通信アプリケーションを実行する。通信アプリケーションは、通信相手とのデータ授受を行う。その一環として、受信データバッファ322から出力されたデータに基づく処理や、他の通信装置へ送信するためのデータを生成して送信データバッファ341へ出力する処理を行う。送信データバッファ341は、通信アプリケーション実行部330から出力されたデータを一次格納し、格納したデータを順次、送信パケット構築部342へ出力する。
送信パケット構築部342は、送信データバッファ341から出力されたデータに基づいて、通信相手へ送信するためのパケットを構築する。そして、送信パケット構築部342は、構築したパケットを送信キュー343へ格納する。また、送信パケット構築部342によって送信キュー343へ格納されるパケットのレートは送出レート制御部357によって制御される。
再送制御部358は、Ack情報解析部351から出力されたAck/SACK(Selective Ack;データ中途に対する部分的な確認応答を伴うAck)情報に基づいて、応答待バッファ359から送信キュー343へのパケットの読み出しを行うことによって再送制御を行う。
応答待バッファ359は、サーバ300が送信済みのパケットを一時的に格納する。そして、応答待バッファ359は、再送制御部358からの制御に基づいて、格納しているパケットのうちの、Ack情報解析部351から出力されたAck番号に対応するパケットを送信キュー343へ格納する。また、応答待バッファ359は、サーバ300からのパケットの送信時刻をAck情報記録部352およびRTT計測部356へ出力する。
Ack情報解析部351は、リンクレイヤ受信部311から出力されたパケットのうちの応答パケットを取得し、取得した応答パケットの解析を行う。そして、Ack情報解析部351は、取得した応答パケットのうちのAckパケットの内容を示すAck情報をAck情報記録部352へ出力する。また、Ack情報解析部351は、取得した応答パケットを示すAck/SACK情報を再送制御部358へ出力する。また、Ack情報解析部351は、取得した応答パケットのうちのAckパケットのAck番号を応答待バッファ359へ出力する。
Ack情報記録部352は、Ack情報解析部351から出力されたAck情報を記録テーブル352aに記録する。記録テーブル352aは、サーバ300のメモリに記憶されるテーブルである(たとえば図7参照)。
また、Ack情報記録部352は、記録テーブル352aに記録されたAck情報のうちの、2つのAckパケットについての各Ack情報をクロック比計測部353へ出力する。また、Ack情報記録部352は、複数組のAckパケットについての各Ack情報をクロック比計測部353へ出力してもよい。また、Ack情報記録部352は、記録テーブル352aに記録されたAck情報のうちの、計測対象の期間における複数のAckパケットについてのAck情報を相手到着レート計測部354へ出力する。
また、Ack情報記録部352は、記録テーブル352aに記録されたAck情報のうちの、計測対象の期間における複数のAckパケットについてのAck情報(データパケットの送信時刻を含む)を送信遅延変動計測部355へ出力してもよい。
また、Ack情報記録部352は、応答待バッファ359から出力された送信時刻を、該当する送信データのAckパケットと対応付けて記録テーブル352aに記録する。または、Ack情報記録部352は、RTT計測部356から出力されたRTTを、該当する送信データのAckパケットと対応付けて記録テーブル352aに記録してもよい。
クロック比計測部353は、Ack情報記録部352から出力された2つのAckパケットについての各Ack情報、または複数組のAckパケットについての各Ack情報に基づいて、サーバ300とクライアント221の間のクロック比(時間換算係数)を計測する。そして、クロック比計測部353は、計測したクロック比を相手到着レート計測部354へ出力する。
相手到着レート計測部354は、Ack情報記録部352から出力された複数のAckパケットについての各Ack情報と、クロック比計測部353から出力されたクロック比と、に基づいてサーバ300における到着レートを計測する。そして、相手到着レート計測部354は、計測した到着レートを送出レート制御部357へ出力する。
送信遅延変動計測部355は、Ack情報記録部352から出力された計測対象の期間における複数のAckパケットについてのAck情報(データパケットの送信時刻を含む)に基づいて、サーバ300からの送信データの遅延時間の変動を計測する。そして、送信遅延変動計測部355は、遅延時間の変動の計測結果を送出レート制御部357へ出力する。
RTT計測部356は、応答待バッファ359から出力された送信時刻に基づくRTTを計測する。そして、RTT計測部356は、計測したRTTをAck情報記録部352および送出レート制御部357へ出力する。
送出レート制御部357は、相手到着レート計測部354から出力された到着レートに基づいて、サーバ300からのパケットの送出レートを制御する。具体的には、送出レート制御部357は、送信パケット構築部342および再送制御部358を制御することによって送出レートを制御する。
なお、実施の形態2においては、サーバ300の送信遅延変動計測部355およびRTT計測部356を省いた構成としてもよい。
(サーバのハードウェア構成)
図3Cは、サーバのハードウェア構成の一例を示す図である。図3A,図3Bに示したサーバ300は、たとえば図3Cに示す通信装置380によって実現することができる。通信装置380は、CPU381(Central Processing Unit)と、RAM382(Random Access Memory:ランダムアクセスメモリ)と、不揮発メモリ383と、通信インタフェース384と、を備える。CPU381、RAM382、不揮発メモリ383および通信インタフェース384は、バス389によって接続される。
CPU381は、通信装置380の全体の制御を司る。RAM382は、CPU381のワークエリアとして使用される。不揮発メモリ383は、たとえば磁気ディスク、光ディスク、フラッシュメモリなどの不揮発メモリである。不揮発メモリ383には、通信装置380を動作させる各種のプログラムが記憶されている。不揮発メモリ383に記憶されたプログラムは、RAM382にロードされてCPU381によって実行される。
通信インタフェース384は、たとえば有線によって通信装置380の外部(たとえばクライアント221)との間で通信を行う通信インタフェースである。通信インタフェース384は、CPU381によって制御される。
図3A,図3Bに示したリンクレイヤ処理部310は、たとえば通信インタフェース384によって実現することができる。図3A,図3Bに示した受信データ組立部321、通信アプリケーション実行部330および送信パケット構築部342は、たとえばCPU381によって実現することができる。
図3A,図3Bに示したAck情報解析部351、Ack情報記録部352、クロック比計測部353、相手到着レート計測部354、送信遅延変動計測部355およびRTT計測部356は、たとえばCPU381によって実現することができる。図3A,図3Bに示した送出レート制御部357および再送制御部358は、たとえばCPU381によって実現することができる。
図3A,図3Bに示した受信データバッファ322、送信データバッファ341、送信キュー343および応答待バッファ359は、たとえばRAM382によって実現することができる。図3A,図3Bに示した記録テーブル352aは、たとえばRAM382に記憶される。
また、図1に示した計測装置101の到着レートを算出する算出部は、たとえばCPU381によって実現することができる。
(TCPのパケットヘッダのフォーマット)
図4Aは、TCPのパケットヘッダのフォーマットの一例を示す図である。TCPにおいては、たとえば図4Aに示すパケットヘッダのフォーマット410が定義されている。たとえば、フォーマット410の“Sequence Number”には、データパケットを送信する側によってデータパケットのシーケンス番号が格納される。
一方、データパケットを受信した側は、フラグ“ACK”をセットし、受信済みのデータパケットのシーケンス番号を“Acknowledgement Number”に格納した応答パケットを返送する。なお、TCPは双方向のデータ通信をサポートするため、フラグ“ACK”がセットされないパケットは特殊なケースに限られる。また、パケットヘッダ上のシーケンス番号は、初期値がランダムな値で決まるため、データパケットの本来の順序に対して初期値分多い値となる。ただし、シーケンス番号の差分に基づく処理においては初期値を無視することができる。
また、データパケットを受信した側は、たとえば、送信する応答パケットの“Options”のオプション領域411に、所定のエンコード方式(たとえば図4B,図4C参照)でタイムスタンプを格納する。
(タイムスタンプのエンコード方式)
図4Bは、タイムスタンプのエンコード方式の一例を示す図である。データパケットを受信した側が応答パケットのオプション領域411に格納するタイムスタンプには、たとえば図4Bに示すエンコード方式420を用いることができる。“TSval”は、パケットを送信する側が付与するタイムスタンプである。“TSecr”は、受信したパケットに格納されたタイムスタンプ(TSval値)であり、相手にエコーバックするタイムスタンプである。
図4Cは、タイムスタンプのエンコード方法の他の例を示す図である。データパケットを受信した側が応答パケットのオプション領域411に格納するタイムスタンプには、たとえば図4Cに示すエンコード方式430を用いてもよい。
オプション領域411にタイムスタンプのみが格納される場合は、エンコード方式430のようにNOP(No Operation)オプションを併用し、タイムスタンプがワード境界をまたがらないように位置の調整を行うようにしてもよい。これにより、データのアライメントを取ることができる。
(サーバとクライアントとの間の信号の送受信)
図5は、サーバとクライアントとの間の信号の送受信の一例を示す図である。図5において、実線矢印によって示すData(x)は、サーバ211からクライアント221へ送信されるx番目のデータパケットである。点線矢印によって示すAck(x)は、Data(x)に対するクライアント221からサーバ211への応答パケットである。
TSv(x)は、クライアント221によってAck(x)に付与されたタイムスタンプである。したがって、TSv(x)は、クライアント221における時間基準(クロック)に基づく時間を示す。
ΔTas(i,j)は、クライアント221によるAck(i)の送信時刻と、クライアント221によるAck(j)の送信時刻と、の差である(i<j)。ただし、サーバ211はΔTas(i,j)を直接取得することができない。このため、サーバ211は、ΔTas(i,j)に近い値としてΔTar(i,j)を用いる。ΔTar(i,j)は、Ack(i)のサーバ211への到着時刻と、Ack(j)のサーバ211への到着時刻と、の差である。
サーバ211は、到着したAck(i)およびAck(j)に付された各タイムスタンプの差としてTSv(j)−TSv(i)を算出する。そして、サーバ211は、算出したTSv(j)−TSv(i)をΔTar(i,j)で除算する。これにより、クライアント221のクロックに対するサーバ211のクロックの比(クロック比)を算出することができる。
また、サーバ211は、ある程度の時間差を有する複数組のAck(i)およびAck(j)に基づいて複数のクロック比を算出し、算出した複数のクロック比を平均化したクロック比を算出してもよい。平均化には、単なる算出平均を用いてもよいし、EWMA(Exponentially Weighted Moving Average)のような漸化式による平均化を用いてもよい。
Ack(x)の到着遅延時間の変動は、高々RTTより短い時間である。このため、Ack(x)の到着遅延時間の変動があっても、RTTが概ね安定していれば、複数のクロック比を平均化することによって、クロック比を精度よく算出することができる。
また、サーバ211は、計測対象のデータパケット群の合計のデータ量を、計測対象のデータパケットのうちの最初と最後のデータパケットに対する各応答パケットのタイムスタンプの差で除算したレートを算出する。計測対象のデータパケット群の合計のデータ量は、たとえば、計測対象のデータパケットのうちの最初と最後のデータパケットに対する各応答パケットのAck番号の差(または差+1)に、1つのデータパケットのデータ量を乗算することによって得ることができる。
そして、サーバ211は、算出したレートに、算出したクロック比を乗じることにより、サーバ211における時間基準に基づく、計測対象のデータパケット群のクライアント221における到着レートを算出することができる。
(到着レートの変動)
図6は、到着レートの変動の一例を示す図である。図6において、横軸は経過時間を示し、縦軸はサーバ211からクライアント221へのデータパケットの到着レートを示している。物理帯域上限610は、サーバ211からクライアント221へのデータパケットの伝送における物理帯域の上限である。到着レート601は、ウィンドウサイズを十分に小さくした場合に計測される到着レートである。到着レート601に示すように、ウィンドウサイズが小さい場合は、ミクロには図6に示すようになる。
計測結果602は、ウィンドウサイズをある程度の大きさを有するΔW1とした場合に計測される到着レートである。計測結果602に示すように、ウィンドウサイズがある程度の大きさを有する場合は、物理帯域上限610が計測可能になる。
計測結果603は、ウィンドウサイズをΔW2(>ΔW1)とした場合に計測される到着レートである。計測結果603に示すように、ウィンドウサイズがさらに大きい場合は、物理帯域上限610に対する検出感度が鈍くなる。
計測結果604は、ウィンドウサイズをRTT相当の幅とした場合に計測される到着レートである。計測結果604に示すように、ウィンドウサイズをRTT相当の幅とする場合は、低いレートしか計測できなくなる。
他トラフィック620は、サーバ211からクライアント221へのデータパケットの帯域を圧迫する他トラフィックである。計測結果605は、ウィンドウサイズをある程度の大きさを有するΔW3とした場合に計測される到着レートである。計測結果605に示すように、ウィンドウサイズがある程度の大きさを有する場合は、到着レートのピーク値は他トラフィック620の分だけ下がって計測される。
(実施の形態2にかかる記録テーブルおよび算出結果)
図7は、実施の形態2にかかる記録テーブルおよび算出結果の一例を示す図である。Ack情報記録部352は、たとえば図7に示す記録テーブル710を記録する。記録テーブル710においては、各応答パケットについて、到着時刻と、Ack番号と、TS(TSval)値と、が対応付けられている。図7に示す例では到着時刻を秒単位で示しているが、これは実装依存であり、たとえばサーバ211の内部クロックなどに置き換えてもよい。
また、図7に示す例では、記録テーブル710のエントリ数は32である。ただし、記録テーブル710のエントリ数は過去に遡って参照したいAck情報が残っている最小限の値でもよい。実装の容易性から、記録テーブル710のエントリ数は2のべき乗としてもよい。また、Ack情報記録部352は、記録テーブル710のエントリがすべて埋まると、古いエントリから上書きしていく。
図7に示す算出結果720は、記録テーブル710に基づくクロック比の算出結果である。なお、算出結果720は、各エントリでの算出結果を示しているものであり、各エントリに対応する算出結果720のすべてが保持されなくてもよい。図7に示す例では、過去16エントリ分のAck受信情報との差でクロック比を計測する場合について説明する。算出結果720は、到着時刻(j)−到着時刻(j−16)と、TS(j)−TS(j−16)と、クロック比と、平均クロック比と、を示している。
たとえば、サーバ211は、Ack(31)とAck(15)について(j=16)、到着時刻(31)−到着時刻(15)=0.405108−0.304262=0.100846を算出する。また、サーバ211は、TS(31)−TS(15)=39062−39012=50を算出する。そして、サーバ211は、Ack(31)とAck(15)に基づくクロック比として50/0.100846≒495.8を算出する(小数点第2位以下四捨五入)。
同様に、サーバ211は、Ack(30)とAck(14)に基づくクロック比、Ack(29)とAck(13)に基づくクロック比、…と算出し、算出した各クロック比を平均化する。図7に示す例では過去に遡るエントリ数を固定値としているが、単位時間あたりパケット送信量が増えればAck受信量も増えるので、Ackパケットの情報を記録する頻度をデータ送信量に応じて間引いてもよい。
また、図7に示す例では過去のクロック比を単純に平均化しているが、上述のようにEWMAのような漸化式による平均化を用いてもよい。また、スライディングウィンドウ的な手法でクロック比を計算するのでなく、最初のAckパケットからの経過時間とTS変化量の比を取ってもよい。すなわち、集計時間を長くすることにより、比を取る際の変動成分を小さくすることができる。
このように、実施の形態2によれば、クライアント221の側に機能を追加しなくても、サーバ211においてクライアント221における到着レートを計測することが可能になる。また、その計測方法の調整により計測するデータレートの利用形態に合った計測結果を得ることができる。
また、この計測結果を、データ転送を行うプロトコルの送出レートの制御に用いることにより、クライアント221への可用帯域の推定や可用帯域の空きの検出を行うことができる。このため、送出レートを可用帯域にあわせてより適切に調整することが可能となり、通信スループットの向上やネットワークの利用効率の向上を図ることができる。
(実施の形態3)
実施の形態3について、実施の形態2と異なる部分について説明する。クロックが水晶発振により生成され、たとえば1[ms]周期や10[ms]周期といった一定の時間間隔をクロックで得てカウントを増やすことによりタイマが実装されている場合は、想定されるクロック比は限られた値に限定される。
そこで、実施の形態3においては、クロック比の複数の候補を示すクロック比テーブル800を用いて、算出したクロック比にもっとも近い値に置換することにより、クロック比を精度よく推定することができる。
(実施の形態3にかかるサーバに記憶されるテーブル)
図8は、実施の形態3にかかるサーバに記憶されるテーブルの一例を示す図である。実施の形態3にかかるサーバ211のメモリ(たとえば図3CのRAM382)には、たとえば図8に示すクロック比テーブル800が記憶される。クロック比テーブル800においては、クロック比の複数の候補について、クロック換算係数およびコメントが対応付けられている。なお、クロック比テーブル800からコメントを省いてもよい。
クロック換算係数は、タイムスタンプ変化量を時間に換算する係数である。図8に示すクロック比テーブル800では、プロセッサによる算術演算が除算より乗算の方が高速に実行できる場合が多いことを想定し、クロック換算係数はクロック比の逆数としている。また、クロック比テーブル800の各値は、プロセッサにおける整数演算で実行しやすいように、2のべき乗になる値(図8に示す例では1024)でスケーリングされている。
サーバ211は、クロック比テーブル800が示すクロック比の候補の中から、算出したクロック比に最も近いクロック比を特定する。そして、サーバ211は、特定したクロック比に対応するクロック換算係数を、算出したクライアント221の時間基準に基づくレートに乗算し、乗算結果を1024で除算する。これにより、サーバ211に基づく到着レートを算出することができる。
たとえば、サーバ211は、算出したクロック比が910であった場合は、クロック比テーブル800が示すクロック比の候補の中で910に最も近い1024を特定する。そして、サーバ211は、クロック比テーブル800において1024に対応するクロック換算係数である1024を、算出したクライアント221の時間基準に基づくレートに乗算し、乗算結果を1024で除算する。
このように、実施の形態3にかかるサーバ211は、クロック比(時間換算係数)の複数の候補の中から、算出したクロック比に最も近いクロック比を特定する。そして、サーバ211は、特定したクロック比と、クライアント221の時間基準に基づくレートと、を乗じることにより到着レートを算出することができる。これにより、クロック比を精度よく計測し、クロックに基づく到着レートを精度よく計測することができる。
(実施の形態4)
実施の形態4について、実施の形態3と異なる部分について説明する。
(実施の形態4にかかるサーバに記憶されるテーブル)
図9は、実施の形態4にかかるサーバに記憶されるテーブルの一例を示す図である。実施の形態4にかかるサーバ211のメモリ(たとえば図3CのRAM382)には、たとえば図9に示すクロック比テーブル800が記憶される。図9に示すクロック比テーブル800においては、図8に示した各項目に加えて、クロック比の複数の候補について範囲(min)および範囲(max)が対応付けられている。範囲(min)および範囲(max)は、対応する候補のクロック比を中央値とする範囲である。
サーバ211は、クロック比テーブル800が示す範囲(min)および範囲(max)の中から、算出したクロック比が含まれる範囲を特定する。そして、サーバ211は、特定した範囲に対応するクロック換算係数を、算出したクライアント221の時間基準に基づくレートに乗算し、乗算結果を1024で除算する。これにより、サーバ211に基づく到着レートを算出することができる。
また、サーバ211は、算出したクロック比がいずれの範囲にも含まれていない場合は、たとえばクロック比計測エラーとして処理する。この場合は、サーバ211は、クロック比に基づく到着レートを用いた送出レートの制御を行わない。
このように、実施の形態4にかかるサーバ211は、算出したクロック比がクロック比の複数の範囲の中に含まれていない場合は、算出したクロック比に基づく到着レートを用いた送出レートの制御を行わない。これにより、たとえばクライアント221が想定しえないクロックを用いていた場合に、不適切なクロック比に基づく精度の低い到着レートを用いて送出レートを制御して伝送効率が低下することを避けることができる。
(実施の形態5)
実施の形態5について、実施の形態2と異なる部分について説明する。実施の形態5にかかるサーバ211は、クロック比を複数回計測し、複数回計測したクロック比の変動量を算出する。クロック比の変動量の算出には、たとえば分散、標準偏差、平均偏差などを用いることができる。
サーバ211は、算出した変動量が所定の大きさ以上である場合は、たとえばクロック比計測エラーとして処理する。この場合は、サーバ211は、クロック比に基づく到着レートの計測を行わない。これにより、たとえばクライアント221のタイムスタンプが一定の増加ペースを示さない(すなわち時間尺度で使えない)場合に、クライアント221のタイムスタンプに基づいて到着レートを計測してしまうことを避けることができる。
このように、実施の形態5にかかるサーバ211は、クロック比(時間換算係数)のばらつきが所定の大きさ以上である場合は、クロック比に基づく到着レートを用いた送出レートの制御を行わない。これにより、精度の低いクロック比に基づく精度の低い到着レートを用いて送出レートを制御して伝送効率が低下することを避けることができる。
(実施の形態6)
実施の形態6について、実施の形態2と異なる部分について説明する。実施の形態6にかかるサーバ211は、クロック比の計測をクライアント221との通信開始から行い、クロック比を一度計測したらクロック比の計測を止める。そして、サーバ211は、計測したクロック比を、以降の複数回の到着レートの算出に用いる。これにより、サーバ211におけるクロック比の算出のための処理量を低減することができる。
たとえば通信相手が企業内網の端末に限られるなど、相手となる通信端末(サーバやゲートウェイを含む)におけるタイムスタンプの実装が時間に基づき一定の変化が保証できるときは、クロック比も一定であるため、有効である。
このように、実施の形態6にかかるサーバ211によれば、算出した1つのクロック比(時間換算係数)を用いて、異なる期間の複数の到着レートを算出する。これにより、サーバ211におけるクロック比の算出のための処理量を低減することができる。
(実施の形態7)
実施の形態7について、実施の形態2と異なる部分について説明する。実施の形態7にかかるサーバ211は、クロック比の計測をクライアント221との通信開始から行うとともに、クロック比を一度計測した後もクロック比の計測を継続する。
このように、実施の形態7にかかるサーバ211は、サーバ211とクライアント221との間の通信中に継続的にクロック比(時間換算係数)を算出する。これにより、サーバ211とクライアント221との間のクロック比が変動しても、クライアント221における到着レートを精度よく計測することができる。
(実施の形態8)
実施の形態8について、実施の形態2と異なる部分について説明する。
(実施の形態8にかかる記録テーブル)
図10は、実施の形態8にかかる記録テーブルの一例を示す図である。実施の形態8のサーバ211のメモリ(たとえば図3CのRAM382)には、たとえば図10に示す記録テーブル352aが記憶される。記録テーブル352aのAck番号およびタイムスタンプは、応答パケットの、図4AのTCPヘッダのフラグ“ACK”および図4B,図4CのTSvalフィールドに納められた値である。
送信時刻は、応答パケットに対応するデータパケットのサーバ211における送信時刻である。なお、送信時刻を直接取得することが困難な処理系においては、たとえば、タイムスタンプのエコーバック値TSecrから送信時刻を取得してもよい。または、応答パケットに対するRTT計測結果をシステムから取得し、応答パケットの到着時刻からRTTを減算することにより送信時刻を逆算してもよい。なお、実施の形態8においては、記録テーブル352aから送信時刻の項目を省いてもよい。
サーバ211は、クロック比の計測において、たとえば、最新の応答パケットと、過去に受信した応答パケットと、を用いる。この場合に、サーバ211は、過去の応答パケットについて、最新の応答パケットからどのぐらい遡った応答パケットとするかを柔軟に行えるようにするために、たとえば図10に示すような記録テーブル352aを用いる。
そして、サーバ211は、応答パケット受信の際に、記録テーブル352aの格納エントリを順次進めながら記録する。これにより、応答パケットの到着間隔がある程度分かっていれば、所望の時間差のある各応答パケットについての情報を確保することができる。したがって、算出に用いる時間幅を適宜変えることも容易となる。
また、i番目のデータパケットからj番目のデータパケットまでの合計のデータ量を算出する場合に、サーバ211は、i番目のデータパケットおよびj番目のデータパケットに対応する各Ack番号を取得する。そして、サーバ211は、取得した各Ack番号の差分(または差分+1)を、データパケット1つ分のデータ量に乗じる。これにより、i番目のデータパケットからj番目のデータパケットまでの合計のデータ量を算出することができる。
(実施の形態8にかかる記録テーブルおよび算出結果)
図11は、実施の形態8にかかる記録テーブルおよび算出結果の一例を示す図である。Ack情報記録部352は、たとえば図11に示す記録テーブル1110を記録する。記録テーブル1110においては、各応答パケットについて、到着時刻と、Ack番号と、TS(TSval)値と、が対応付けられている。図11に示す例では到着時刻を秒単位で示しているが、これは実装依存であり、たとえばサーバ211の内部クロックなどに置き換えてもよい。
図11に示す例でも図7に示した例と同様に記録テーブル1110のエントリ数を32としているが、応答パケットの到着頻度に対してエントリへの記録頻度を下げるために、図11に示す例では応答パケットが間引かれて記録されている。具体的には、図11に示す例では、6個の応答パケットに付き1個の応答パケットのみが記録されている。
実装の容易性から、記録テーブル1110のエントリ数は2のべき乗としてもよい。また、Ack情報記録部352は、記録テーブル1110のエントリがすべて埋まると、古いエントリから上書きしていく。
図11に示す算出結果1120は、レート観測に用いる時間幅を4エントリ分とした場合の記録テーブル1110に基づく到着レート(バイト/秒)の算出結果である。図11に示す算出結果1130は、レート観測に用いる時間幅を8エントリ分とした場合の記録テーブル1110に基づく到着レート(バイト/秒)の算出結果である。なお、算出結果1120,1130は、各エントリでの算出結果を示しているものであり、各エントリに対応する算出結果1120,1130のすべてが保持されなくてもよい。
ここでは、算出結果1120を例として、エントリ#31の応答パケットの受信時における到着レートの算出手順を説明する。サーバ211は、エントリ#31の応答パケットと、4エントリ遡ったエントリ#27の応答パケットと、のTS値の差を算出する。この場合は、サーバ211は、TS(j)−TS(j−4)=TS(31)−TS(27)=39697−39685=12を算出する。
また、サーバ211は、エントリ#31の応答パケットと、4エントリ遡ったエントリ#27の応答パケットと、のAck番号の差を算出する。この場合は、サーバ211は、Ack(j)−Ack(j−4)=Ack(31)−Ack(27)=2277729−2208225=69504を算出する。
TCPにおけるAck番号はバイト単位である。したがって、エントリ#27の応答パケットからエントリ#31の応答パケットまでに対応する各データパケットの合計のデータ量は69504バイトとなる。
ここで、サーバ211とクライアント221との間のクロック比は、たとえば図7に示した例に基づく1/500であるとする。
サーバ211は、TS値の差にクロック比を乗じることにより、12/500=0.024000を経過時間として算出する。そして、サーバ211は、合計のデータ量を経過時間で除算することにより、69504/0.024000=2896000≒29[メガバイト/秒]を到着レートとして算出する。
このように、実施の形態8に示すサーバ211は、サーバ211からクライアント221への各送信データに対するクライアント221からの応答メッセージについて、その応答確認された送信データに対応するAck番号(シーケンス番号)と、その応答メッセージのタイムスタンプおよび到着時刻と、を記憶する。そして、サーバ211は、記憶内容に基づいて、到着レートの算出に用いる各情報を算出する。
(実施の形態9)
実施の形態9について、実施の形態8と異なる部分について説明する。クライアント221は、転送制御プロトコルおよびその実装によっては、遅延応答(delayed ack)により、サーバ211からの送信パケットの到着に対して即時に応答パケットを返さない場合がある。遅延応答は、たとえばRFC1122において規定されている。
遅延応答が行われると、本来のパケット到着時間に対応するタイムスタンプより時間的に後を示すタイムスタンプが応答パケットに格納されることになり、タイムスタンプが到着時間差を正しく示さなくなる。
これに対して、実施の形態9にかかるサーバ211は、受信した応答パケットが遅延応答によって送信されたものか否かを判定する。そして、サーバ211は、遅延応答によって送信されたものであると判定した応答パケットの情報については、記録テーブル352aに格納しない。これにより、遅延応答によって送信されたものであると判定した応答パケットを計測対象から除外し、応答パケットが遅延されて送信されることによる時間的ずれが到着レートの計測に悪影響を与えることを回避することができる。
たとえば、サーバ211は、応答パケットが単一セグメントに対する応答であるか否かを判定することによって、応答パケットが遅延応答によって送信されたものであるか否かを判定することができる。または、サーバ211は、TSvalの値が前の応答パケットより増えているにも関わらず、TSecrの値に変化がない場合は応答パケットが遅延応答によって送信されたものであると判定することができる。
このように、実施の形態9にかかるサーバ211は、クライアント221からの応答メッセージのうちの、遅延応答によってクライアント221から送信された応答メッセージを除く応答メッセージのそれぞれについて各情報を記憶する。これにより、遅延応答によって送信された応答メッセージを除外して到着レートを算出することができる。このため、応答メッセージのタイムスタンプ(送信時刻情報)に基づく到着レートの算出の精度を向上させることができる。
(実施の形態10)
実施の形態10について、実施の形態8と異なる部分について説明する。パケットレートが高く、応答パケットの到着頻度が高いと、サーバ211における処理負荷が高くなる。また、たとえば図10に示した記録テーブル352aで所望の時間差を得るために、テーブルサイズが大きくなる。
これに対して、実施の形態10にかかるサーバ211は、応答パケットの到着頻度に応じて、到着した応答パケットを間引いて記録テーブル352aに記録する。応答パケットの到着頻度は、データパケットの送出レートに準じるため、サーバ211は、たとえば送出レートに応じて間引く割合を決定する。
転送制御プロトコルとしてTCPを用いる場合は、送出レートは直接制御されず、CWND(congestion window:輻輳ウィンドウ)サイズでRTTあたりの送信パケット数が制御される。このため、サーバ211は、TCPあるいはその類のプロトコルを使っている場合は、たとえば、送出レートを制御するパラメータである輻輳ウィンドウサイズに応じ、応答パケットを間引く割合を決定する。
たとえば、記録テーブル352aのエントリ数が64であるとする。この場合は、サーバ211は、64個のエントリでRTT相当の期間の応答パケットを保持できるようにするには、輻輳ウィンドウサイズ/64個の応答パケットに一回、記録テーブル352aのエントリに記録し残りを間引けばよい。
このように、実施の形態10にかかるサーバ211は、クライアント221からの応答メッセージについて、サーバ211がクライアント221へデータを送信するレートを示す情報(たとえば輻輳ウィンドウサイズ)に応じて記録対象とする応答メッセージを間引いて、シーケンス番号と、送信時刻情報および到着時刻と、を記憶する。これにより、サーバ211における処理負荷を低減することができる。また、記録テーブル352aのサイズを小さくすることができる。
(実施の形態11)
実施の形態11について、実施の形態8と異なる部分について説明する。上述のように、TCPにおいては、RTTあたりの送信パケット数が輻輳ウィンドウサイズで制限される。このため、差を取る応答パケットがちょうどRTT分の時間差にある場合は、応答パケットのシーケンスはちょうど輻輳ウィンドウサイズ分になり、計測レートは送出レートで支配されてしまう。
すなわち、計測時間をRTTになるぐらいの幅にする場合は、可用帯域の計測に要するバーストサイズを得るためには、送出レートが可用レートに達していることを要し、このような状況においては空き帯域を探索しなくてもよい。
したがって、現在の送出レートに対し、どのぐらい可用帯域があるかを知るために本計測方法を用いる場合は、サーバ211は、対象となる応答パケットはRTT期間に送出し得るパケット数より十分に短くする。ここで、RTT期間に送出し得るパケット数は、TCPの場合は一般に輻輳ウィンドウサイズに相当する。
たとえば、実施の形態10のように応答パケットを間引いて記録を行う場合は、ほぼ64エントリがRTT相当になる。このため、用いるエントリ差(iとjの差)を8エントリ分、あるいは16エントリ分とすることができる。
このように、実施の形態11にかかるサーバ211は、第3情報/第4情報取得対象とした応答メッセージの対を、その第3情報で示されるデータ量が、ラウンドトリップタイム内においてサーバ211がクライアント221へ送信し得るデータ量以下であるように応答メッセージの対を選択する。これにより、RTTあたりの送信パケット数が輻輳ウィンドウサイズで制限されていても、到着レートを精度よく計測することができる。
(実施の形態12)
実施の形態12について、実施の形態11と異なる部分について説明する。到着レートの算出に使用する応答パケットの対の間隔は、短いと本来の可用レートより高いレートを計測してしまうリスクがある。ネットワークの変動、より具体的には、RTTの変動、あるいは後述の送信遅延の変動が大きい場合は、他トラフィックの影響を受けやすいと想定されるため、より安定志向の計測方法の方が実用的である。
これに対して、実施の形態12にかかるサーバ211は、ネットワークの変動度合いに応じて到着レートを計測する応答パケットの間隔を調整する。たとえば、サーバ211は、到着レートを計測する応答パケットの間隔を、ネットワークの変動が大きいときに長く、小さいときには短くする。これにより、リスクのある状況下では安全度を取った制御を行うことができる。
一例として、実施の形態10のように応答パケットを間引いて記録を行う場合について説明する。この場合は、サーバ211は、たとえばネットワークの変動が小さい場合はエントリ差(iとjの差)を8エントリ分とし、ネットワークの変動が大きい場合は16エントリ分、といった具合に評価対象とする応答パケット間隔を調整する。
たとえば、エントリ差(iとjの差)を4エントリ分とする場合は、到着レート(バイト/秒)の算出結果は図11に示した算出結果1120のようになる。また、エントリ差(iとjの差)を8エントリ分とする場合は、到着レート(バイト/秒)の算出結果は図11に示した算出結果1130のようになる。
算出結果1120,1130に示すように、エントリ数の差を取る間隔を倍にすると、差分対象とする応答パケットの時間差も約2倍となり、到着レートの算出がより長い時間幅で行われる。その結果、エントリ差を8エントリ分とした場合の方が、エントリ差を4エントリ分とした場合よりもピークが抑えられた結果が得られている(最大で3021913)。
たとえば複数のトラフィックが混在して流れる場合は、経路上の送信キューにおけるパケットスケジューリングのバースト性によっては、長めの計測時間を取らないと一時的に許容されたバースト性によって本来より高いピークレートが見えることがある。このため、RTTの観測値の分散などによってトラフィック変動を評価し、評価結果に応じて遡るエントリ数の幅を変えることにより、到着レートをより精度よく計測することができる。
このように、実施の形態12にかかるサーバ211は、第3情報/第4情報取得対象とする応答メッセージの対は、ネットワークの変動の大きさに応じ、その第4情報で示される時間経過が変動するように応答メッセージの対を選択する。これにより、ネットワークの変動に応じて到着レートを精度よく計測することができる。
(実施の形態13)
実施の形態13について、実施の形態8と異なる部分について説明する。実施の形態13にかかるサーバ211は、TCPの送出レートの制御に到着レートの算出結果を用いる。上述のように、TCPにおいては一般にCWNDの値で送出レートが制御される。サーバ211は、たとえば、CWND/RTTの値が到着レートの算出結果のピーク値に近づくように、データパケットの送出レートの制御を行う。
上述のように、到着レートの算出に用いる応答パケットの対の間隔を狭くすると、到着レートのピーク値が見える。このため、送信のバースト性が発生するような送り方をしていれば(すなわち送信時点で意図的にパケットの送信ペースを均一化しなければ)、ボトルネックリンクの可用帯域を使い切っていれば計測レートはピーク値、使い切っていなければより低い値が得られる。
したがって、到着レートのピーク値を計測することによって、可用帯域を概ね推定することができる。このため、可用帯域の推定値を送出レートの制御目標値として送出レートを制御すれば、可用帯域に迅速に収束するような送出レート制御が可能となる。
このように、実施の形態13にかかるサーバ211は、算出した到着レートのピーク値が送信可能帯域の上限値となるように、データパケットの送出レートを制御する。これにより、輻輳を抑えつつ効率よくデータパケットを伝送することができる。
(実施の形態14)
実施の形態14について、実施の形態13と異なる部分について説明する。計測したピーク値はどこかで捨てること(エージング)をしないと、値が残ってしまう。
これに対して、実施の形態14にかかるサーバ211は、一定期間経過したピーク値は捨てる(ピーク値のエージング)。たとえばTCP用の可用レートの計測を行う場合は、ピーク値は基本的にRTT内に一度は計測できるはずである。このため、サーバ211は、たとえば、過去1RTT〜2RTT分の到着レートの最大値を保持し、保持した最大値が送信可能帯域の上限値となるように、データパケットの送出レートを制御する。
このように、実施の形態14にかかるサーバ211は、算出した到着レートのうちの、所定期間以前の到着レートを除いた到着レートのピーク値に基づいて送出レートの制御を行う。これにより、サーバ211の負荷を低減することができる。また、古い到着レートに基づいて送出レートを制御して伝送効率が低下することを避けることができる。
(実施の形態15)
実施の形態15について、実施の形態2と異なる部分について説明する。実施の形態15にかかるサーバ211は、たとえば図10に示した記録テーブル352aを、送信時刻の項目を含めて記憶する。
(サーバとクライアントとの間の信号の送受信)
図12は、サーバとクライアントとの間の信号の送受信の一例を示す図である。サーバ211は、Ack(i)に対応するData(i)の送信時刻と、Ack(j)に対応するData(j)の送信時刻と、の差であるΔTds(i,j)を算出する。
また、サーバ211は、ΔTar(i,j)に算出したクロック比を乗算した値と、算出したΔTds(i,j)と、の差を算出することにより、サーバ211からのデータパケットの遅延時間の変動を計測する。
ΔTds(i,j)に対してΔTar(i,j)が時間的に増加している場合は、サーバ211からのデータパケットの遅延時間が増加していると判断することができる。一方、ΔTds(i,j)に対してΔTar(i,j)が時間的に低下している場合は、サーバ211からのデータパケットの遅延時間が低下していると判断することができる。
パケットネットワークでの伝播遅延の増加は、通常、キュー滞留時間の増加により起こるため、このように計測した遅延時間の変動は、ネットワークにおける輻輳状態の指標として用いることが可能である。サーバ211は、遅延時間の変動の計測結果に基づいて、データパケットの送出レートを制御する。たとえば、サーバ211は、遅延時間が増加している場合は、データパケットの送出レートを増加させないようにしたり、低下させたりする。これにより、ネットワークの輻輳を抑えることができる。
このように、実施の形態15にかかるサーバ211は、計測対象の最初と最後の各送信データのサーバ211における送信時刻の差を取得する。また、サーバ211は、計測対象の最初と最後の各送信データに対するクライアント221からの各応答メッセージのタイムスタンプの差と、算出したクロック比(時間換算係数)と、を乗算して得られる値と、を取得する。
また、サーバ211は、取得した差と値との差に基づいてサーバ211からの送信データの遅延時間の変動を計測する。そして、サーバ211は、遅延時間の変動の計測結果に基づいて、データパケットの送出レートの制御を行う。これにより、ネットワークにおける輻輳状態に応じた送出レートの制御が可能になり、輻輳を抑えつつ効率よくデータパケットを伝送することができる。
(実施の形態16)
実施の形態16について、実施の形態13または実施の形態15と異なる部分について説明する。TCPにおいては、空き帯域探索と輻輳検出が行われる。ここで、空き帯域探索の方法として、たとえば実施の形態13で示したように、ピーク値を可用帯域推定値として送出レートの制御目標に用いる方法がある。また、輻輳検出の方法として、実施の形態15で示した送信方向遅延の変動(とくに増加傾向)を用いる方法がある。これにより、ネットワークにおける通信相手までのパスにおける可用帯域の空きを迅速に検出するとともに、ネットワークの輻輳を抑える転送制御が可能となる。
ここで、転送制御プロトコルの送出レート制御の方法によっては、直接ターゲットレートに送出レートを変更することが難しいケースもある。たとえば、上述のようにTCPにおいては輻輳ウィンドウの値で送出レートが調整されるが、輻輳ウィンドウの値をいきなり増やすと高いバーストトラフィックが発生し、ネットワークを輻輳させてしまう可能性がある。この場合は送出レートあるいは送出レートを制御するためのパラメータを、送出レートがターゲットレートになるように制御することが求められる。
実施の形態13で示したようにTCPの輻輳制御を実施し、実施の形態15で示した構成により送信方向の遅延増加を検出する場合は、遅延の増加を一回の計測だけで行うと単なるパケット到着揺らぎ程度でも反応してしまう可能性がある。このため、たとえば複数の計測結果を累計し、その累計値が閾値を超えた場合に輻輳と判断する。
輻輳への対応として、サーバ211は、たとえば輻輳ウィンドウの値を調整する。たとえば、サーバ211は、送出レートを半分に落とすことによって輻輳ウィンドウの値を調整する。送出レートを半分にする場合に、たとえば、サーバ211は、応答されたデータサイズが2パケット分に達したとき1パケット送ることが可能となるように輻輳ウィンドウの値を制御する。ただし、輻輳ウィンドウの値を調整する方法についてはこれに限らず、各種の方法を用いることができる。
このように、実施の形態16にかかるサーバ211は、データパケットの遅延時間が増加している場合は、データパケットの送出レートを低下させる。これにより、ネットワークにおける輻輳を抑えることができる。
(実施の形態17)
実施の形態17について、実施の形態16と異なる部分について説明する。実施の形態16に示したように、計測した利用可能帯域を一気に使うような制御をすると、その制御遅延の間での、ネットワーク内、とくにボトルネックリンクをシェアするようなトラフィックが急に増えた場合に急激なトラフィック増加が発生する場合がある。このため、バッファ溢れによるパケット廃棄を招く可能性がある。
これに対して、実施の形態17にかかるサーバ211は、可用帯域との差が大きいときは大きめに送出レートを制御し、可用帯域との差が小さいときは小さめに送出レートを制御し、目標レートに指数的に収束するように送出レートを制御してもよい。
ここでは、輻輳ウィンドウの値の調整により輻輳制御を実施する場合について説明する。この場合は、サーバ211は、目標値となる輻輳ウィンドウの値が現在の輻輳ウィンドウの値の2倍以上であるときに、RTTあたりの輻輳ウィンドウの値が倍になるように輻輳ウィンドウの値を調整する。また、サーバ211は、目標値となる輻輳ウィンドウの値が現在の輻輳ウィンドウの値の2倍未満のときはRTTあたりの輻輳ウィンドウの目標値との差が半分になるように輻輳ウィンドウの値を調整する。
ここで、TCPの輻輳ウィンドウの値を急激に変えるとバーストトラフィックが発生してしまうため、1つの応答パケットあたり新規送信可能となるパケット数が2〜4程度になるように輻輳ウィンドウの値を増加させてもよい。
このように、実施の形態17にかかるサーバ211は、算出した到着レートに基づく送出レートの目標値と、現在の送出レートと、の相違(差または比)に応じて、送出レートの制御量を変化させる。たとえば、サーバ211は、算出した到着レートに基づく送出レートの目標値と、現在の送出レートと、の相違が大きいほど、送出レートの制御量を大きくする。これにより、急激なトラフィックの増加を回避することができる。
(実施の形態18)
実施の形態18について、実施の形態16と異なる部分について説明する。実施の形態16に示したようにTCPの輻輳制御を実施している場合は、輻輳検出時に、計測されるクライアント221の到着レートは輻輳により低下していると想定される。この場合は、適正な利用可能帯域は、到着レートのピーク値ではなく、最新の到着レートがもっとも現実に近い利用可能帯域を示していると考えられる。
これに対して、実施の形態18にかかるサーバ211は、輻輳検出時に、送出レートが到着レートの計測値に近づくように輻輳ウィンドウの値を調整する。たとえば、送出レートを半分にする場合は、サーバ211は、応答されたデータサイズが2パケット分に達したとき1パケット送ることが可能となるように輻輳ウィンドウの値を制御する。
このように、実施の形態18にかかるサーバ211は、データパケットの遅延時間が増加している場合は、算出した到着レートに近づくようにデータパケットの送出レートを制御する。これにより、ネットワークの輻輳時に、実際の利用可能帯域を示す最新の到着レートによってデータパケットを送出することができる。このため、輻輳を抑えつつ効率よくデータパケットを伝送することができる。
(実施の形態19)
実施の形態19について、実施の形態16と異なる部分について説明する。サーバ211がたとえば実施の形態16のような制御機能を有する場合であっても、クライアント221のクロック比が得られなければ正確な到着レートを算出することができない。
これに対して、実施の形態19にかかるサーバ211は、クライアント221のクロック比が得られない場合は、TCPの輻輳制御に従来型アルゴリズム(たとえばrenoやcubic)を用いる。
このように、実施の形態19にかかるサーバ211は、クライアント221のクロック比が得られない場合は、クロック比に基づく到着レートを用いた送出レートの制御とは異なる代替手段によって送出レートの制御を行う。これにより、クライアント221のクロック比が得られなくても送出レートの制御を行うことができる。
(実施の形態20)
実施の形態20について、実施の形態16と異なる部分について説明する。サーバ211がたとえば実施の形態16のような制御機能を有する場合であっても、クライアント221のクロック比が得られなければ正確な到着レートを算出することができない。
これに対して、実施の形態20にかかるサーバ211は、クライアント221のクロック比が得られない場合は、応答パケットの到着時刻差に対するデータ量によって算出されるデータレートを用いて送出レートを制御する。
このように、実施の形態20にかかるサーバ211は、クライアント221のクロック比が得られない場合は、クロック比に基づく到着レートを用いた送出レートの制御とは異なる代替手段によって送出レートの制御を行う。これにより、クライアント221のクロック比が得られなくても送出レートの制御を行うことができる。
(実施の形態21)
実施の形態21について、実施の形態16と異なる部分について説明する。サーバ211がたとえば実施の形態16のような制御機能を有する場合であっても、通信開始後しばらくは到着レートの算出結果が得られない。
これに対して、実施の形態21にかかるサーバ211は、通信開始から所定の期間が経過するまでは、TCPの輻輳制御に従来型アルゴリズム(たとえばスロースタートあるいはrenoやcubic)を用いる。
このように、実施の形態21にかかるサーバ211は、クライアント221との通信開始から所定の期間が経過するまでは、クロック比に基づく到着レートを用いた送出レートの制御とは異なる代替手段によって送出レートの制御を行う。これにより、通信開始後に迅速に送出レートの制御を行うことができる。
(実施の形態22)
実施の形態22について、実施の形態16と異なる部分について説明する。サーバ211がたとえば実施の形態16のような制御機能を有する場合であっても、RTTの計測値がサーバ211の時刻計測分解能に比べて十分大きくないと、到着レートの算出の除数の有効桁数が十分に取れない。
また、TCPではタイムスタンプはオプションのため、相手とのネゴシエーションの結果使用しないという運用も有り得る。このため、そもそもタイムスタンプを使わない通信を始めてしまった場合は到着レート計測が行えない。
これに対して、実施の形態22にかかるサーバ211は、このような場合に、TCPの輻輳制御に従来型アルゴリズム(たとえばrenoやcubic)を用いる。
このように、実施の形態22にかかるサーバ211は、RTTの計測値が一定値以内である場合に、クロック比に基づく到着レートを用いた送出レートの制御とは異なる代替手段によって送出レートの制御を行う。または、実施の形態22にかかるサーバ211は、クライアント221がタイムスタンプを付与しない場合に、クロック比に基づく到着レートを用いた送出レートの制御とは異なる代替手段によって送出レートの制御を行う。または、実施の形態22にかかるサーバ211は、サーバ211のクロック情報の分解能に比べて十分大きくない場合に、クロック比に基づく到着レートを用いた送出レートの制御とは異なる代替手段によって送出レートの制御を行う。
(実施の形態23)
実施の形態23について、実施の形態2と異なる部分について説明する。
(実施の形態23にかかる中継装置)
図13Aは、実施の形態23にかかる中継装置の一例を示す図である。図13Bは、図13Aに示した中継装置における信号の流れの一例を示す図である。図13A,図13Bにおいて、図3A,図3Bに示した部分と同様の部分については同一の符号を付して説明を省略する。
図13A,図13Bに示す中継装置1300は、たとえば図2に示したインターネット201や無線アクセス網202に設けられ、サーバ211とクライアント221との間の通信を含む各コネクションの中継を行う中継装置である。
中継装置1300は、リンクレイヤ処理部1310,1330と、コネクション識別処理部1321と、送信キュー1322と、コネクション管理部1323と、コネクション識別処理部1341と、送信パケットスケジュール部1342と、を備える。
また、中継装置1300は、Ack情報記録部352と、クロック比計測部353と、相手到着レート計測部354と、送信遅延変動計測部355と、RTT計測部356と、コネクション送出レート制御部1351と、を備える。
リンクレイヤ処理部1310は、リンクレイヤ受信部1311と、送信キュー群1312と、スケジューラ1313と、リンクレイヤ送信部1314と、を備える。リンクレイヤ受信部1311は、ネットワーク(たとえば図2のサーバ211)からのパケットを受信する。リンクレイヤ受信部1311が受信するパケットには、たとえば、サーバ211からのデータパケットがある。リンクレイヤ受信部1311は、受信したパケットをコネクション識別処理部1321へ出力する。
送信キュー群1312は、中継装置1300が中継する各コネクションのそれぞれについての送信キューを含む。スケジューラ1313は、送信キュー群1312に格納されたパケットを、コネクション間のスケジューリングを行いながら順次読み出してリンクレイヤ送信部1314へ出力する。リンクレイヤ送信部1314は、スケジューラ1313から出力されたパケットをネットワーク(たとえば図2のサーバ211)へ送信する。
コネクション識別処理部1321は、リンクレイヤ受信部1311から出力されたパケットのコネクションを識別する。そして、コネクション識別処理部1321は、識別結果をコネクション管理部1323へ出力する。また、コネクション識別処理部1321は、コネクションを識別したパケットを送信キュー1322に格納する。
リンクレイヤ処理部1330は、リンクレイヤ送信部1331と、リンクレイヤ受信部1332と、を備える。リンクレイヤ送信部1331は、送信キュー1322に格納されたパケットを順次読み出してローカルリンク(たとえば図2のクライアント221)へ送信する。
リンクレイヤ受信部1332は、ローカルリンク(たとえば図2のクライアント221)からのパケットを受信する。リンクレイヤ受信部1332が受信するパケットには、たとえば、クライアント221からサーバ211への応答パケットがある。リンクレイヤ受信部1332は、受信したパケットをコネクション識別処理部1341へ出力する。
コネクション識別処理部1341は、リンクレイヤ受信部1332から出力されたパケットのコネクションを識別する。そして、コネクション識別処理部1341は、識別結果をコネクション管理部1323へ出力する。また、コネクション識別処理部1341は、コネクションを識別したパケットを送信パケットスケジュール部1342に格納する。
送信パケットスケジュール部1342は、コネクション識別処理部1341から出力されたパケットと、送出レート制御パケットと、のスケジューリングを行い、スケジューリング結果に基づいて各パケットを送信キュー群1312へ格納する。
コネクション管理部1323は、コネクション識別処理部1321,1341から出力されたコネクションの識別情報に基づいて、各コネクションの状態などを示すコネクション管理テーブル1323a(たとえば図14参照)を管理する。また、コネクション管理部1323は、応答パケットについての識別情報に基づいて、応答パケットに関する情報を識別情報とともにAck情報記録部352へ出力する。
Ack情報記録部352は、コネクション管理部1323から出力された情報に基づいて、コネクションごとに設けられる記録テーブル352aを記録する。クロック比計測部353は、クロック比をコネクションごとに計測する。相手到着レート計測部354は、到着レートをコネクションごとに計測する。送信遅延変動計測部355は、送信遅延変動をコネクションごとに計測する。RTT計測部356は、RTTをコネクションごとに計測する。
コネクション送出レート制御部1351は、相手到着レート計測部354から出力された到着レートに基づいて、パケットの送出レートをコネクションごとに決定する。そして、コネクション送出レート制御部1351は、決定した送出レートを示し、対象のコネクションの送信側(たとえばサーバ211)を宛先とする送出レート制御パケットを送信パケットスケジュール部1342へ出力する。これにより、相手到着レート計測部354における到着レートの計測結果に基づいて、パケットの送信側に対して送出レートを制御させることができる。
ここではコネクションごとに到着レートを計測して送出レートを制御する場合について説明したが、到着レートの計測および送出レートの制御の対象は、中継装置1300が中継する各コネクションのうちの一部のコネクションであってもよい。
また、ここでは到着レートの計測結果によって送信側の送出レートを制御する場合について説明したが、到着レートの計測結果をネットワーク状態監視のパラメータとして用いてもよい。また、到着レートの計測結果を中継装置1300の内部でのQoS(Quality of Service)制御に用いてもよい。また、到着レートの計測結果を中継装置1300が制御可能な帯域制御やパケットスケジューリングに用いてもよい。
図13A,図13Bに示した中継装置1300は、たとえば図3Cに示した通信装置380によって実現することができる。この場合は、図13A,図13Bに示したリンクレイヤ処理部1310,1330は、たとえば通信インタフェース384によって実現することができる。図13A,図13Bに示したコネクション識別処理部1321、コネクション管理部1323、コネクション識別処理部1341および送信パケットスケジュール部1342は、たとえばCPU381によって実現することができる。
図13A,図13Bに示したAck情報記録部352、クロック比計測部353および相手到着レート計測部354は、たとえばCPU381によって実現することができる。図13A,図13Bに示した送信遅延変動計測部355、RTT計測部356およびコネクション送出レート制御部1351は、たとえばCPU381によって実現することができる。
図13A,図13Bに示した送信キュー1322は、たとえばRAM382によって実現することができる。図13A,図13Bに示した記録テーブル352aおよびコネクション管理テーブル1323aは、たとえばRAM382に記憶される。
(コネクション管理テーブル)
図14は、コネクション管理テーブルの一例を示す図である。コネクション管理部1323は、コネクション識別処理部1321,1341から出力されたコネクションの識別情報に基づいて、たとえば図14に示すコネクション管理テーブル1323aを管理する。このようなコネクション管理テーブル1323aを管理することにより、中継装置1300が中継する各コネクションのうち、到着レートの計測対象のコネクションについての各パケットの情報を抽出することができる。このコネクションの生成や管理には、たとえばコネクショントラッキング(connection tracking)の技術などを用いることができる。
このように、実施の形態23によれば、クライアント221の側に機能を追加しなくても、サーバ211とクライアント221との間の中継装置1300によってクライアント221における到着レートを計測することが可能になる。また、その計測方法の調整により計測するデータレートの利用形態に合った計測結果を得ることができる。
また、この計測結果を、データ転送を行うプロトコルの送出レートの制御に用いることにより、クライアント221への可用帯域の推定や可用帯域の空きの検出を行うことができる。このため、送出レートを可用帯域にあわせてより適切に調整することが可能となり、通信スループットの向上やネットワークの利用効率の向上を図ることができる。
以上説明したように、計測装置、通信装置、中継装置、計測方法および計測プログラムによれば、到着レートの計測精度の向上を図ることができる。
上述した実施の形態2〜23においては、図1に示した計測装置101および第1通信装置110をサーバ211に適用し、図1に示した第2通信装置120をクライアント221に適用する場合について説明した。ただし、計測装置101、第1通信装置110および第2通信装置120の適用態様はこれに限らない。たとえば、図1に示した計測装置101および第1通信装置110をクライアント221に適用し、図1に示した第2通信装置120をサーバ211に適用することも可能である。
近年のネットワークは、ネットワーク層以下はデータをパケット化し、データグラムとして宛先まで配送し、エンド−エンドの転送保証は、ネットワーク層の上位においてエンドーエンドでTCPなどのトランスポート層サービスを用いて実現されることが多い。エンドーエンドのトランスポート層サービスを用いた個々の通信をコネクションと称する。
このようなネットワーク構成においては、特にネットワークの規模が大きくなると、ネットワークとして個々のトラフィックを厳密に制御することは難しく、一部の特定用途を除き、ベストエフォート型でネットワークを利用することになる。
したがって、ネットワークの容量を超えるようなトラフィックが発生し、その過剰分をキュー等により吸収しきれない場合は、ネットワーク内でパケットの廃棄が発生する。ここで、ベストエフォートだからといって、個々のコネクションが無秩序にデータを流すと容易に各リンクの容量を超えたトラフィックが発生し、その結果パケット廃棄が大量に発生し、実効的な通信が行えなくなる場合がある。
過剰な送信を行うとネットワーク内でバッファ溢れを起こし、自身のデータ転送効率を下げるだけでなく、ほかのトラフィックの通信も妨げてしまう。一方、控えめに送信しすぎると、ネットワークの容量を余らせてしまいデータ転送時間がその分長くかかる。なお、この特性はインターネットでなくても合流や分岐があるようなパケット網でベストエフォート型通信をする場合であれば生じるものである。
また、近年は別の要因でも利用可能な通信帯域が変動する。技術の進展により、データ通信に供するリンクレイヤ技術にさまざまなものが登場し、さらに混在や多段接続で使われる。そのようなリンクにおいては、たとえば無線通信を用いる場合、昨今は電波状況に応じて最適な変調方式を動的に切り替えるような制御が一般化しているため、他にトラフィックが流れてなくても利用可能帯域は変動しうる。
したがって、ベストエフォートで通信を行うネットワークにおいては、急激なトラフィック変動を避けつつ、ネットワークの混み具合やリンク容量の変動により変化する利用可能なスループットを探りながら相手への送出レートを調整する輻輳制御が求められる。しかし、利用可能な通信帯域は絶えず変動するため、絶えず良好なスループットを得るには、利用可能な通信帯域を迅速に知ることが求められる。
トランスポート層サービスを実現するプロトコルとして多く利用されているTCPにおいては、輻輳を回避するための輻輳制御アルゴリズムとして、tahoeおよびその改良版reno/new renoと称される輻輳制御アルゴリズムが実装されている。
しかし、これらアルゴリズムは、廃棄を検出するまでは、RTTあたり送信パケット数を1つずつ増やし、廃棄を検出したらRTTあたり送信パケット数を半分あるいは最小値にするといった単純なものである。このため、RTTが大きいとなかなかスループットが上がらず、実行通信速度が得られない場合がある。
このため、パケット廃棄が検出されない場合により積極的にパケット送信量を増やすような提案や、さらにネットワークの輻輳をRTTの変化を用いて検出するような提案がこれまでなされてきた。しかし、廃棄検出をスループットの抑制に用いるような方法は、絶えずパケット廃棄を発生させるため、ネットワークの効率を低下させ、またバッファ滞留を定常的に起こす場合がある。
また、輻輳を遅延増加で検出する方法は、可用帯域を超えたことは分かっても、可用帯域に余裕があるときにどのぐらい空きがあるかを知ることができないため、結局は輻輳が発生しないよう、ゆっくりスループットを上げる手法を取らざるを得なかった。
こうした制御の限界は、可用帯域を積極的に知ることにより改善できることが考えられるが、この計測は容易ではない。よく知られている方法としては、送信側が過剰に送信すれば、受信側に届く帯域は途中の一番細いリンク(ボトルネックリンク)に律速されるため、受信レートを計測することにより可用帯域を知る方法がある。
しかし、受信レートを直接計測することができるのは受信側であり、この実現には受信側で計測して結果を送信側に伝えることを要する。特にTCPのようなすでに広く使われるプロトコルがある状況では、送受信側双方に実装しないと機能しない方法は普及させるのが難しい。これまでのTCPの輻輳制御アルゴリズムも、送信側のみに適用されるものであるため、効果を得やすいという状況があった。
一方、送信側だけの対応で可能な制御として、Ackパケットで通知されるAck番号の進み具合によって相手への到着レートを計測する方法が知られている。受信側が、データ受信後速やかに応答パケットを返信すれば、応答パケット間隔はデータパケットの到着間隔を示す。
しかし、この計測方法は、Ackパケットが返送されるパスでのキュー遅延の影響を受けやすい。ネットワーク上に他のパケットが流れていないような理想的な条件では、Ackパケットはその長さ自体が短いため迅速に返送され、ほぼ伝播遅延でデータ送信元に返される。しかし、現実には他のトラフィックの影響で到着時間が容易に変動する。たとえば、戻りパスの方向に他トラフィックの長いパケットがあるだけでキューイングディレイが無視できないレベルで発生する。
高々1パケットレベルでのキュー遅延であれば、複数のAckパケットをもとにデータ到着レートを計測することにより変動を抑えることが可能である。しかし、戻りパス自体に輻輳が起き始め徐々に遅延が増加していくような状況ではAckパケットの到着間隔はデータ到着間隔に対し広がり続けるしその逆も起こりうる。したがって、このような状況では到着レートを精度よく計測することが困難である。
これに対して、上述した各実施の形態によれば、応答メッセージの送信時刻情報および到着時刻を用いることにより、送信側において容易に取得可能な各情報に基づいて到着レートを計測することができる。このため、受信側に機能を追加しなくても到着レートを計測することができる。また、到着レートの計測結果に対する、Ackパケットのキュー遅延の影響を抑えることができる。
さらに、送信側と受信側の間の時間比(時間換算係数)を算出して用いることにより、送信側と受信側の各時間基準が一致していなくても到着レートを精度よく計測することができる。
なお、本実施の形態で説明した計測方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)第1通信装置から第2通信装置への2つの送信データに対する前記第2通信装置からの応答メッセージのうち任意の2つの応答メッセージの前記第2通信装置により付された送信時刻情報の差を示す第1情報と、
前記2つの応答メッセージの前記第1通信装置への到着時刻の差を示す第2情報と、
前記第1通信装置から前記第2通信装置への送信データに対する、前記第1情報/第2情報取得対象としたものと同じ、あるいは異なる任意の2つの応答メッセージに対し、その2つの応答メッセージの間において前記第2通信装置へ到着した送信データの合計のデータ量を示す第3情報と、
その第3情報算出の対象とした2つの応答メッセージの前記第2通信装置により付された送信時刻情報の差を示す第4情報と、
に基づいて、前記第1情報と前記第2情報とに基づく前記第1通信装置と前記第2通信装置との間の時間換算係数と、前記第3情報と前記第4情報とに基づくレートと、を乗じて得られる値を算出することにより前記第2通信装置における到着レートを算出する算出部を備えることを特徴とする計測装置。
(付記2)前記算出部は、前記時間換算係数算出において、前記2つの応答メッセージ対を複数組について対応する前記第1情報/第2情報を取得し平均化することを特徴とする付記1に記載の計測装置。
(付記3)前記第1情報/第2情報取得対象の2つの応答メッセージは、前記第3情報/第4情報取得対象とした応答メッセージの間隔よりも長い時間間隔のものを使用することを特徴とする付記1に記載の計測装置。
(付記4)前記算出部は、時間換算係数の複数の候補の中から前記第1情報と前記第2情報との比に最も近い時間換算係数を特定し、特定した前記時間換算係数と前記レートとを乗じることにより前記到着レートを算出することを特徴とする付記1〜3のいずれか一つに記載の計測装置。
(付記5)前記算出部は、算出した1つの前記時間換算係数を用いて異なる期間の複数の前記到着レートを算出することを特徴とする付記1〜4のいずれか一つに記載の計測装置。
(付記6)前記算出部は、前記第1通信装置と前記第2通信装置との間の通信中に継続的に前記時間換算係数を算出することを特徴とする付記1〜4のいずれか一つに記載の計測装置。
(付記7)前記第1通信装置から前記第2通信装置への各送信データに対する前記第2通信装置からの応答メッセージについて、その応答確認された送信データに対応するシーケンス番号と、その応答メッセージの前記送信時刻情報および前記第1通信装置への到着時刻と、を記憶する記憶部を備え、
前記算出部は、前記記憶部の記憶内容に基づいて、前記第1情報、前記第2情報、前記第3情報および前記第4情報を算出することを特徴とする付記1〜6のいずれか一つに記載の計測装置。
(付記8)前記記憶部は、前記第2通信装置からの応答メッセージのうちの、遅延応答によって前記第2通信装置から送信された応答メッセージを除く応答メッセージのそれぞれについて、前記シーケンス番号と、前記送信時刻情報および前記第1通信装置への到着時刻と、を記憶することを特徴とする付記7に記載の計測装置。
(付記9)前記記憶部は、前記第2通信装置からの応答メッセージについて、前記第1通信装置が前記第2通信装置へデータを送信するレートを示す情報に応じて記録対象とする応答メッセージを間引いて、前記シーケンス番号と、前記送信時刻情報および前記第1通信装置への到着時刻と、を記憶することを特徴とする付記7または8に記載の計測装置。
(付記10)前記第3情報/第4情報取得対象とした応答メッセージの対を、その第3情報で示されるデータ量が、ラウンドトリップタイム内において前記第1通信装置が前記第2通信装置へ送信し得るデータ量以下であるように応答メッセージの対を選択することを特徴とする付記1〜9のいずれか一つに記載の計測装置。
(付記11)前記第3情報/第4情報取得対象とする応答メッセージの対は、ネットワークの変動の大きさに応じ、その第4情報で示される時間経過が変動するように応答メッセージの対を選択することを特徴とする付記1〜10のいずれか一つに記載の計測装置。
(付記12)自装置から宛先通信装置へデータの送信を行う通信装置において、そのデータ送信に対する前記宛先通信装置からの任意の2つの応答メッセージについて、前記宛先通信装置により付されたそれぞれの送信時刻情報の差を示す第1情報と、
前記2つの応答メッセージの自装置への到着時刻の差を示す第2情報と、
自装置から前記宛先通信装置への送信データに対する、前記第1情報/第2情報取得対象としたものと同じ、あるいは異なる任意の2つの応答メッセージに対し、その2つの応答メッセージの間において宛先通信装置へ到着した送信データの合計のデータ量を示す第3情報と、
その第3情報算出の対象とした2つの応答メッセージの前記宛先通信装置により付された送信時刻情報の差を示す第4情報と、
に基づいて、前記第1情報と前記第2情報とに基づく自装置と前記宛先通信装置との間の時間換算係数と、前記第3情報と前記第4情報とに基づくレートと、を乗じて得られる値を算出することにより前記宛先通信装置における到着レートを算出する算出部と、
前記算出部によって算出された到着レートに基づく、自装置から前記宛先通信装置への送信データの送出レートの制御を行う制御部と、
を備えることを特徴とする通信装置。
(付記13)前記制御部は、前記第1情報と前記第2情報との比が、時間換算係数の複数の範囲の中に含まれていない場合は、前記到着レートに基づく前記送出レートの制御を行わないことを特徴とする付記12に記載の通信装置。
(付記14)前記制御部は、複数組の前記2つの応答メッセージについての前記時間換算係数を算出し、算出した各時間換算係数のばらつきが所定の大きさ以上である場合は前記到着レートに基づく前記送出レートの制御を行わないことを特徴とする付記12または13に記載の通信装置。
(付記15)前記制御部は、前記算出部によって算出された到着レートのピーク値が送信可能帯域の上限値となるように前記送出レートの制御を行うことを特徴とする付記12〜14のいずれか一つに記載の通信装置。
(付記16)前記制御部は、前記算出部によって算出された到着レートのうちの、所定期間以前の到着レートを除いた到着レートのピーク値に基づいて前記送出レートの制御を行うことを特徴とする付記15に記載の通信装置。
(付記17)前記制御部は、
送信データの受領に対応し前記宛先通信装置が送信する任意の2つの応答メッセージにおける前記送信時刻情報の差と前記時間換算係数とを乗算して得られる値に対する、前記2つの応答メッセージそれぞれに対応する送信データを自装置が送信を行った時刻の差に基づいて自装置からの送信信号の遅延時間の変動を計測し、
前記遅延時間の変動の計測結果に基づいて前記送出レートの制御を行う、
ことを特徴とする付記12〜16のいずれか一つに記載の通信装置。
(付記18)前記制御部は、前記遅延時間の変動の計測結果に基づいて、前記遅延時間が増加している場合は前記送出レートを低下させることを特徴とする付記17に記載の通信装置。
(付記19)前記制御部は、前記到着レートに基づく前記送出レートの目標値と現在の前記送出レートとの相違に応じて、前記送出レートの制御量を変化させることを特徴とする付記12〜18のいずれか一つに記載の通信装置。
(付記20)前記制御部は、前記遅延時間の変動の計測結果に基づいて、前記遅延時間が増加している場合は、前記算出部によって算出された到着レートに近づくように前記送出レートを制御することを特徴とする付記17に記載の通信装置。
(付記21)第1通信装置と第2通信装置との間の通信を中継する中継装置であって、
前記第1通信装置から前記第2通信装置への送信データに対する前記第2通信装置からの任意の2つの応答メッセージにおける前記第2通信装置により付された送信時刻情報の差を示す第1情報と、
前記2つの応答メッセージの前記中継装置への到着時刻の差を示す第2情報と、
前記第1通信装置から前記第2通信装置への送信データに対する、前記第1情報/第2情報取得対象としたものと同じ、あるいは異なる任意の2つの応答メッセージに対し、その2つの応答メッセージの間において前記第2通信装置へ到着した送信データの合計のデータ量を示す第3情報と、
その第3情報算出の対象とした2つの応答メッセージの前記第2通信装置により付された送信時刻情報の差を示す第4情報と、
に基づいて、前記第1情報と前記第2情報とに基づく前記第1通信装置と前記第2通信装置との間の時間換算係数と、前記第3情報と前記第4情報とに基づくレートと、を乗じて得られる値を算出することにより前記第2通信装置における到着レートを算出する算出部と、
を備えることを特徴とする中継装置。
(付記22)第1通信装置から第2通信装置への送信データに対する前記第2通信装置からの応答メッセージのうち任意の2つの応答メッセージに対し、前記第2通信装置により付されたそれぞれの送信時刻情報の差を示す第1情報と、
前記2つの応答メッセージの前記第1通信装置への到着時刻の差を示す第2情報と、
前記第1通信装置から前記第2通信装置への送信データに対する、前記第1情報/第2情報取得対象としたものと同じ、あるいは異なる任意の2つの応答メッセージに対し、その2つの応答メッセージの間において前記第2通信装置へ到着した送信データの合計のデータ量を示す第3情報と、
その第3情報算出の対象とした2つの応答メッセージの前記第2通信装置により付された送信時刻情報の差を示す第4情報と、
に基づいて、前記第1情報と前記第2情報とに基づく前記第1通信装置と前記第2通信装置との間の時間換算係数と、前記第3情報と前記第4情報とに基づくレートと、を乗じて得られる値を算出することにより前記第2通信装置における到着レートを算出することを特徴とする計測方法。
(付記23)コンピュータに、
第1通信装置から第2通信装置への送信データに対する前記第2通信装置からの応答メッセージのうち任意の2つの応答メッセージに対し、前記第2通信装置により付されたそれぞれの送信時刻情報の差を示す第1情報と、
前記2つの応答メッセージの前記第1通信装置への到着時刻の差を示す第2情報と、
前記第1通信装置から前記第2通信装置への送信データに対する、前記第1情報/第2情報取得対象としたものと同じ、あるいは異なる任意の2つの応答メッセージに対し、その2つの応答メッセージの間において前記第2通信装置へ到着した送信データの合計のデータ量を示す第3情報と、
その第3情報算出の対象とした2つの応答メッセージの前記第2通信装置により付された送信時刻情報の差を示す第4情報と、
に基づいて、前記第1情報と前記第2情報とに基づく前記第1通信装置と前記第2通信装置との間の時間換算係数と、前記第3情報と前記第4情報とに基づくレートと、を乗じて得られる値を算出することにより前記第2通信装置における到着レートを算出する処理を実行させることを特徴とする計測プログラム。
100,200 通信システム
101 計測装置
110 第1通信装置
111−1〜111−k 送信データ
120 第2通信装置
121−1〜121−k 応答メッセージ
201 インターネット
202 無線アクセス網
211〜214,300 サーバ
221,222 クライアント
310,1310,1330 リンクレイヤ処理部
311,1311,1332 リンクレイヤ受信部
312,1314,1331 リンクレイヤ送信部
321 受信データ組立部
322 受信データバッファ
330 通信アプリケーション実行部
341 送信データバッファ
342 送信パケット構築部
343,1322 送信キュー
351 Ack情報解析部
352 Ack情報記録部
352a,710,1110 記録テーブル
353 クロック比計測部
354 相手到着レート計測部
355 送信遅延変動計測部
356 RTT計測部
357 送出レート制御部
358 再送制御部
359 応答待バッファ
380 通信装置
381 CPU
382 RAM
383 不揮発メモリ
384 通信インタフェース
389 バス
410 フォーマット
411 オプション領域
420,430 エンコード方式
601 到着レート
602〜605 計測結果
610 物理帯域上限
620 他トラフィック
720,1120,1130 算出結果
800 クロック比テーブル
1300 中継装置
1312 送信キュー群
1313 スケジューラ
1321,1341 コネクション識別処理部
1323 コネクション管理部
1323a コネクション管理テーブル
1342 送信パケットスケジュール部
1351 コネクション送出レート制御部

Claims (9)

  1. 第1通信装置から第2通信装置への2つの送信データに対する前記第2通信装置からの応答メッセージのうち任意の2つの応答メッセージの前記第2通信装置により付された送信時刻情報の差を示す第1情報と、
    前記2つの応答メッセージの前記第1通信装置への到着時刻の差を示す第2情報と、
    前記第1通信装置から前記第2通信装置への送信データに対する、前記第1情報/第2情報取得対象としたものと同じ、あるいは異なる任意の2つの応答メッセージに対し、その2つの応答メッセージの間において前記第2通信装置へ到着した送信データの合計のデータ量を示す第3情報と、
    その第3情報算出の対象とした2つの応答メッセージの前記第2通信装置により付された送信時刻情報の差を示す第4情報と、
    に基づいて、前記第1情報と前記第2情報とに基づく前記第1通信装置と前記第2通信装置との間の時間換算係数と、前記第3情報と前記第4情報とに基づくレートと、を乗じて得られる値を算出することにより前記第2通信装置における到着レートを算出する算出部を備えることを特徴とする計測装置。
  2. 前記算出部は、前記時間換算係数算出において、前記2つの応答メッセージ対を複数組について対応する前記第1情報/第2情報を取得し平均化することを特徴とする請求項1に記載の計測装置。
  3. 前記第1情報/第2情報取得対象の2つの応答メッセージは、前記第3情報/第4情報取得対象とした応答メッセージの間隔よりも長い時間間隔のものを使用することを特徴とする請求項1に記載の計測装置。
  4. 前記算出部は、時間換算係数の複数の候補の中から前記第1情報と前記第2情報との比に最も近い時間換算係数を特定し、特定した前記時間換算係数と前記レートとを乗じることにより前記到着レートを算出することを特徴とする請求項1〜3のいずれか一つに記載の計測装置。
  5. 前記第1通信装置から前記第2通信装置への各送信データに対する前記第2通信装置からの応答メッセージについて、その応答確認された送信データに対応するシーケンス番号と、その応答メッセージの前記送信時刻情報および前記第1通信装置への到着時刻と、を記憶する記憶部を備え、
    前記算出部は、前記記憶部の記憶内容に基づいて、前記第1情報、前記第2情報、前記第3情報および前記第4情報を算出することを特徴とする請求項1〜4のいずれか一つに記載の計測装置。
  6. 自装置から宛先通信装置へデータの送信を行う通信装置において、そのデータ送信に対する前記宛先通信装置からの任意の2つの応答メッセージについて、前記宛先通信装置により付されたそれぞれの送信時刻情報の差を示す第1情報と、
    前記2つの応答メッセージの自装置への到着時刻の差を示す第2情報と、
    自装置から前記宛先通信装置への送信データに対する、前記第1情報/第2情報取得対象としたものと同じ、あるいは異なる任意の2つの応答メッセージに対し、その2つの応答メッセージの間において宛先通信装置へ到着した送信データの合計のデータ量を示す第3情報と、
    その第3情報算出の対象とした2つの応答メッセージの前記宛先通信装置により付された送信時刻情報の差を示す第4情報と、
    に基づいて、前記第1情報と前記第2情報とに基づく自装置と前記宛先通信装置との間の時間換算係数と、前記第3情報と前記第4情報とに基づくレートと、を乗じて得られる値を算出することにより前記宛先通信装置における到着レートを算出する算出部と、
    前記算出部によって算出された到着レートに基づく、自装置から前記宛先通信装置への送信データの送出レートの制御を行う制御部と、
    を備えることを特徴とする通信装置。
  7. 第1通信装置と第2通信装置との間の通信を中継する中継装置であって、
    前記第1通信装置から前記第2通信装置への送信データに対する前記第2通信装置からの任意の2つの応答メッセージにおける前記第2通信装置により付された送信時刻情報の差を示す第1情報と、
    前記2つの応答メッセージの前記中継装置への到着時刻の差を示す第2情報と、
    前記第1通信装置から前記第2通信装置への送信データに対する、前記第1情報/第2情報取得対象としたものと同じ、あるいは異なる任意の2つの応答メッセージに対し、その2つの応答メッセージの間において前記第2通信装置へ到着した送信データの合計のデータ量を示す第3情報と、
    その第3情報算出の対象とした2つの応答メッセージの前記第2通信装置により付された送信時刻情報の差を示す第4情報と、
    に基づいて、前記第1情報と前記第2情報とに基づく前記第1通信装置と前記第2通信装置との間の時間換算係数と、前記第3情報と前記第4情報とに基づくレートと、を乗じて得られる値を算出することにより前記第2通信装置における到着レートを算出する算出部と、
    を備えることを特徴とする中継装置。
  8. 第1通信装置から第2通信装置への送信データに対する前記第2通信装置からの応答メッセージのうち任意の2つの応答メッセージに対し、前記第2通信装置により付されたそれぞれの送信時刻情報の差を示す第1情報と、
    前記2つの応答メッセージの前記第1通信装置への到着時刻の差を示す第2情報と、
    前記第1通信装置から前記第2通信装置への送信データに対する、前記第1情報/第2情報取得対象としたものと同じ、あるいは異なる任意の2つの応答メッセージに対し、その2つの応答メッセージの間において前記第2通信装置へ到着した送信データの合計のデータ量を示す第3情報と、
    その第3情報算出の対象とした2つの応答メッセージの前記第2通信装置により付された送信時刻情報の差を示す第4情報と、
    に基づいて、前記第1情報と前記第2情報とに基づく前記第1通信装置と前記第2通信装置との間の時間換算係数と、前記第3情報と前記第4情報とに基づくレートと、を乗じて得られる値を算出することにより前記第2通信装置における到着レートを算出することを特徴とする計測方法。
  9. コンピュータに、
    第1通信装置から第2通信装置への送信データに対する前記第2通信装置からの応答メッセージのうち任意の2つの応答メッセージに対し、前記第2通信装置により付されたそれぞれの送信時刻情報の差を示す第1情報と、
    前記2つの応答メッセージの前記第1通信装置への到着時刻の差を示す第2情報と、
    前記第1通信装置から前記第2通信装置への送信データに対する、前記第1情報/第2情報取得対象としたものと同じ、あるいは異なる任意の2つの応答メッセージに対し、その2つの応答メッセージの間において前記第2通信装置へ到着した送信データの合計のデータ量を示す第3情報と、
    その第3情報算出の対象とした2つの応答メッセージの前記第2通信装置により付された送信時刻情報の差を示す第4情報と、
    に基づいて、前記第1情報と前記第2情報とに基づく前記第1通信装置と前記第2通信装置との間の時間換算係数と、前記第3情報と前記第4情報とに基づくレートと、を乗じて得られる値を算出することにより前記第2通信装置における到着レートを算出する処理を実行させることを特徴とする計測プログラム。
JP2015538721A 2013-09-26 2013-09-26 計測装置、通信装置、中継装置、計測方法および計測プログラム Expired - Fee Related JP6004116B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/076157 WO2015045080A1 (ja) 2013-09-26 2013-09-26 計測装置、通信装置、中継装置、計測方法および計測プログラム

Publications (2)

Publication Number Publication Date
JP6004116B2 true JP6004116B2 (ja) 2016-10-05
JPWO2015045080A1 JPWO2015045080A1 (ja) 2017-03-02

Family

ID=52742284

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015538721A Expired - Fee Related JP6004116B2 (ja) 2013-09-26 2013-09-26 計測装置、通信装置、中継装置、計測方法および計測プログラム

Country Status (3)

Country Link
US (1) US10129123B2 (ja)
JP (1) JP6004116B2 (ja)
WO (1) WO2015045080A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10547699B2 (en) * 2013-11-21 2020-01-28 Xandr Inc. Methods and apparatus for statistical mobile device identification
CN107211310B (zh) * 2014-12-15 2020-08-18 诺基亚通信公司 用于通信中的测量协调的方法和装置
US10148543B2 (en) * 2015-12-23 2018-12-04 EMC IP Holding Company LLC Connection-oriented communication devices with round trip time estimation
WO2017117671A1 (en) * 2016-01-06 2017-07-13 Fathom Systems Inc. Range determination without prior synchronization between transceivers
US9813299B2 (en) * 2016-02-24 2017-11-07 Ciena Corporation Systems and methods for bandwidth management in software defined networking controlled multi-layer networks
US20180041415A1 (en) * 2016-08-03 2018-02-08 Qualcomm Incorporated Mitigation of transmission control protocol throughput degradation in communication devices due to predictable radio impairment events
JP6805713B2 (ja) * 2016-10-19 2020-12-23 日本電気株式会社 受信トラヒックの高速化装置、高速化方法、および高速化プログラム
US10389644B2 (en) * 2017-02-14 2019-08-20 The United States Of America As Represented By The Secretary Of The Air Force Method and apparatus for waveform independent congestion control
US11395112B2 (en) * 2018-06-14 2022-07-19 Sumitomo Electric Industries, Ltd. Wireless sensor system, wireless terminal device, communication control method and communication control program
CN110134628B (zh) * 2019-05-17 2021-02-02 北京百度网讯科技有限公司 消息传输方法、装置、设备及存储介质
US11115308B2 (en) * 2020-01-07 2021-09-07 Alibaba Group Holding Limited System and method for congestion control using time difference congestion notification
NO346434B1 (en) * 2021-11-18 2022-08-08 Pexip AS Method, system and computer program product for initiating downspeeding in a videoconferencing session
EP4184885B1 (en) * 2021-11-18 2024-03-13 Pexip AS Method, system and computer program product for determining congestion of a communication link transmitting a media stream over the communication link
WO2023170778A1 (ja) * 2022-03-08 2023-09-14 日本電気株式会社 帯域計測装置、データ送信装置、方法、及びコンピュータ可読媒体

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009077442A (ja) * 2008-12-22 2009-04-09 Nec Corp 通信端末、通信システム、輻輳制御方法、及び輻輳制御用プログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999025085A1 (en) * 1997-11-07 1999-05-20 Visual Networks Technologies, Inc. Method and apparatus for performing service level analysis of communications network performance metrics
WO2001091375A2 (en) 2000-05-19 2001-11-29 Williams Communications Llc Method and system for measuring one-way delay variation
US7551560B1 (en) * 2001-04-30 2009-06-23 Opnet Technologies, Inc. Method of reducing packet loss by resonance identification in communication networks
KR100640492B1 (ko) 2004-08-31 2006-10-30 삼성전자주식회사 네트워크의 가용 대역폭 측정 방법
JP4402619B2 (ja) 2005-06-02 2010-01-20 日本電信電話株式会社 マルチキャスト通信フロー制御方法および装置
US8345561B2 (en) * 2006-08-22 2013-01-01 Rueters America Inc. Time monitor
JP4853319B2 (ja) 2007-02-14 2012-01-11 日本電気株式会社 リアルタイム通信におけるメディア品質制御方法、品質制御通信システム、品質制御装置、及び制御プログラム
JP4367505B2 (ja) 2007-03-06 2009-11-18 日本電気株式会社 通信端末、通信システム、輻輳制御方法、及び輻輳制御用プログラム
US20140056157A1 (en) * 2012-08-24 2014-02-27 Ascom Network Testing Ab Systems and Methods for Measuring Available Bandwidth in Mobile Telecommunications Networks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009077442A (ja) * 2008-12-22 2009-04-09 Nec Corp 通信端末、通信システム、輻輳制御方法、及び輻輳制御用プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6016030152; Xu, K., and Ansari, N.: 'Stability and fairness of rate estimation-based AIAD congestion control in TCP' Communications Letters, 9(4) , 2005, pp. 378-380, IEEE *

Also Published As

Publication number Publication date
US10129123B2 (en) 2018-11-13
US20160212032A1 (en) 2016-07-21
WO2015045080A1 (ja) 2015-04-02
JPWO2015045080A1 (ja) 2017-03-02

Similar Documents

Publication Publication Date Title
JP6004116B2 (ja) 計測装置、通信装置、中継装置、計測方法および計測プログラム
US11044290B2 (en) TCP cross traffic rate control
US9674095B2 (en) Communication node
EP2522109B1 (en) Method of estimating congestion
EP1382219B1 (en) Method and device for robust real-time estimation of bottleneck bandwidth
US10057147B2 (en) Apparatus and method for controlling data flow in communication system
US7782767B1 (en) Method and system for calculating burst bit rate for IP interactive applications
JP2006014329A (ja) 通信端末
CN112054965A (zh) 一种拥塞控制方法、设备及计算机可读介质
US9510354B2 (en) Method and a device for low intrusive fast estimation of the bandwidth available between two IP nodes
KR20060100512A (ko) 전송제어 프로토콜 기반의 네트워크에서 평균 대역폭 추정방법 및 시스템
KR20160028792A (ko) 무선 통신 시스템에서 전송 제어를 위한 방법 및 장치
Amponis et al. Introducing a New TCP Variant for UAV networks following comparative simulations
Zhong et al. Performance evaluation of CQIC and TCP BBR in mobile network
JP2006279730A (ja) 輻輳制御方法および送信装置および受信装置
JP6418169B2 (ja) 遅延最小値算出装置、情報送信装置、遅延最小値算出方法およびコンピュータプログラム
WO2019124290A1 (ja) 送信データ量制御装置、方法および記録媒体
Adhari et al. Eclipse: A new dynamic delay-based congestion control algorithm for background traffic
US10516770B2 (en) Transmitting entity and method performed thereby for transmitting one or more data packets to a receiving entity
KR20150125471A (ko) 전송 제어 프로토콜을 이용하는 무선 네트워크에서 혼잡 제어 방법 및 장치
Harhalakis et al. An experimental study of the efficiency of explicit congestion notification
Mikkelsen et al. Performance evaluation of methods for estimating achievable throughput on cellular connections
Cheng et al. Modified TCP startup procedure for large bandwidth-delay networks
Chen et al. On estimating the bandwidth share of TCP connections in presence of reverse traffic
CN117692392A (zh) 重传超时时长确定方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
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: 20160809

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160822

R150 Certificate of patent or registration of utility model

Ref document number: 6004116

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees