JP5387058B2 - 送信装置、送信レート算出方法及び送信レート算出プログラム - Google Patents

送信装置、送信レート算出方法及び送信レート算出プログラム Download PDF

Info

Publication number
JP5387058B2
JP5387058B2 JP2009050739A JP2009050739A JP5387058B2 JP 5387058 B2 JP5387058 B2 JP 5387058B2 JP 2009050739 A JP2009050739 A JP 2009050739A JP 2009050739 A JP2009050739 A JP 2009050739A JP 5387058 B2 JP5387058 B2 JP 5387058B2
Authority
JP
Japan
Prior art keywords
transmission rate
transmission
change
acknowledgment signal
ack
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
JP2009050739A
Other languages
English (en)
Other versions
JP2010206608A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2009050739A priority Critical patent/JP5387058B2/ja
Publication of JP2010206608A publication Critical patent/JP2010206608A/ja
Application granted granted Critical
Publication of JP5387058B2 publication Critical patent/JP5387058B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は送信装置、送信レート算出方法及び送信レート算出プログラムに関し、特に確認応答信号を用いた送信レートの設定に関する。
送受信端末間で、データパケットの送達確認を行いながら送信レート制御を行って通信するプロトコルとしてTCP(Transmission Control Protocol)が挙げられる。TCPのレート制御方法は、受信端末からのACK(Acknowledgement)パケットを送信端末が受信するが、送信端末はACKパケットの受信を待たずに送出可能なデータパケット量を制御する。送信が成功すれば送出量を増加させ、失敗すると送出量を減少させる。
非特許文献1に記載されているTCPの制御について図12、図13を用いて説明する。図12はTCP通信を行う送信端末100、受信端末200の構成図である。
最初に、送信端末100について説明する。データ送信部101は、送信データ蓄積部104からデータを取り出して、送信レート決定部103から通知される送信レートでデータパケットを送信する。ACK受信部102は、受信端末200からACKパケットを受信して、受信端末200におけるパケットロスを検出すると、データ送信部101へ再送を要求する。また、送信レート決定部103に対して、データパケットの送信に成功したかどうか通知する。
送信レート決定部103は、ACKパケットを受信し、ACKパケットに含まれるACK番号が進んでデータパケットの送信に成功したことがわかると、送出量を増加させる。増加させる方法としては、図13に示すように現在の送出量が予め定めたssthresh(slow start threshold)よりも小さい場合、ACKパケット受信毎に送信レートを2倍にする。現在の送出量がssthreshよりも大きい場合は、ACKパケット受信毎に1/(現在の送出レート)分増加させる。
また、同じACK番号のACKパケットを重複して受信した場合には、受信端末200においてパケットロスしたと判断して、送出量を半減させる。一定時間ACKパケットを受け取らない場合は、送出量を1データパケットまで減少させる。送信データ蓄積部104は、送信するデータを蓄積している。
次に、受信端末200の説明をする。データ受信部201は、送信端末100からのデータを受信して、ACK送信部202へ受信で進んだシーケンス番号を通知し、データを受信データ蓄積部204へ蓄積する。ACK送信部202は、ACK頻度決定部203から通知される頻度で、データ受信部201から通知されるシーケンス番号から次に受信を期待するシーケンス番号をACK番号としてACKパケットを作成し、返信する。ACK頻度決定部203は、データパケットX(Xは1以上の整数)個受信毎にACKパケットの返信および一定時間経過すればACKパケットの返信をACK送信部201へ指示する。TCPでは、X=2が推奨されている。
M.Allman,V.Paxson,W.Stevens,"RFC2581 TCP congestion Control"IETF,April1999
ACKパケットの頻度を決めるXが大きな値をとる場合や、一定時間が大きくなる場合、ACKパケットの頻度が減少し、送信レート制御の粒度が粗くなり、ネットワークの込み具合の変化に応じた送信レート制御が困難になる。
具体的に図14を用いて説明する。図14は、ACKの頻度が減少したときのレートの変化を表したものである。丸印のプロットは、データパケット受信毎にACKパケットを返信した場合の送信レートの変化を表し、四角印のプロットは、データパケット3個受信毎にACKパケットを返信した場合の送信レートの変化表している。図14に示したように、データパケット3個受信毎にACKパケットを返信した場合は、ネットワークの輻輳に反応してレート減少させるタイミングが遅れるという問題や、送信レートの増加が鈍化するという問題がある。
本発明は、このような問題点を解決するためになされたものであり、ACKの頻度が減少しても、ネットワークの輻輳状態に応じた送信レートを決定するができる送信装置、送信レート算出方法及び送信レート算出プログラムを提供することを目的とする。
本発明の第1の態様にかかる送信装置は、M個(Mは2以上の整数)のデータパケット受信毎に確認応答信号を送信する受信装置から前記確認応答信号を受信して送信レート制御を行う送信装置であって、前記確認応答信号受信時に、前記確認応答信号が前記受信装置からN個(NはMよりも小さい整数)のデータパケット受信毎に返信された場合の送信レート変化を推定する送信レート変化推定部と、前記送信レート変化推定部によって推定された送信レート変化に基づいて送信レートを計算する送信レート計算部を備えたものである。
また、本発明の第2の態様にかかる送信レート算出方法は、M個(Mは2以上の整数)のデータパケット受信毎に生成される確認応答信号に基づいて、送信レートの算出を行う送信レート算出方法であって、前記確認応答信号がN個(NはMよりも小さい整数)のデータパケット受信毎に生成された場合に当該確認応答信号に基づいて送信レート変化を推定するステップと、前記推定された送信レート変化に基づいて送信レートを計算するステップを備えることである。
また、本発明の第3の態様にかかる送信レート算出プログラムは、M個(Mは2以上の整数)のデータパケット受信毎に生成される確認応答信号に基づいて、送信レートの算出を行う送信レート算出プログラムであって、前記確認応答信号がN個(NはMよりも小さい整数)のデータパケット受信毎に生成された場合に当該確認応答信号に基づいて送信レート変化を推定するステップと、前記推定された送信レート変化に基づいて送信レートを計算するステップを送信装置の制御コンピュータに実行させるものである。
本発明により、ACKの頻度が減少しても、ネットワークの輻輳状態に応じた送信レートを決定するができる送信装置、送信レート算出方法及び送信レート算出プログラムを提供することができる。
実施の形態1にかかる送信装置の構成図である。 実施の形態1にかかる送信装置及び受信装置の構成図である。 実施の形態1にかかるパケットロスの検出方法を示す図である。 実施の形態1にかかるACKパケットの構成図である。 実施の形態1にかかる送信レート変化を示す図である。 実施の形態1にかかる送信装置及び受信装置のフローチャートである。 実施の形態1にかかる送信レート変化の制御を示す図である。 実施の形態2にかかる送信装置及び受信装置の構成図である。 実施の形態2にかかる送信レート変化を示す図である。 実施の形態2にかかる送信レート変化を示す図である。 実施の形態2にかかる送信装置及び受信装置のフローチャートである。 従来の送信装置及び受信装置の構成図である。 従来の送信レート変化を示す図である。 従来の送信レート変化を示す図である。
(実施の形態1)
以下、図面を参照して本発明の実施の形態について説明する。図1は本発明の実施の形態1にかかる送信装置の構成図である。ここで、送信装置10は、受信装置20に対して送信したデータパケットの送達結果を確認するために、受信装置20から確認応答信号(ACKパケット)を受信する。受信装置20は、M個(Mは2以上の整数)のデータパケットを受信する毎に確認応答信号を送信装置10に送信する。送信装置10は、受信した確認応答信号に基づいて、送信レート制御を実施する。送信装置10は、送信レート変化推定部11と、送信レート計算部12を備えている。
送信レート変化推定部11は、受信装置20からの確認応答信号受信時に、確認応答信号が受信装置20からN個(NはMよりも小さい整数)のデータパケットを受信する毎に返信された場合の送信レートの変化を推定する。具体的には、受信装置20がデータパケットの受信に成功した場合は、送信レートを増加させ、受信装置20がデータパケットの受信に失敗した場合は、送信レートを減少させるとした場合の送信レート変化を推定する。受信装置20がデータパケットの受信に成功したか否かの情報は、送信装置10が受信装置20から受信する確認信号に基づいて確認することができる。
送信レート計算部12は、送信レート変化推定部11によって推定された送信レート変化に基づいて送信レートを計算する。
次に、図2を用いて本発明の実施の形態1にかかる送信装置と受信装置の構成について詳細に説明する。送信装置10は、パケットを一意に識別するシーケンス番号を含んだデータパケットを送信し、受信装置20は、TCP SACK(Selective ACK)オプションを用いて、ACK番号として次に受信を期待するシーケンス番号を設定し、また、受信したデータパケットのシーケンス番号を含んだACKパケットを送信装置10へ返信する。
送信装置10は、送信レート変化推定部11と、送信レート計算部12と、データ送信部13と、ACK受信部14と、RTT(Round Trip Time)計測部15と、送信データ蓄積部16を備えている。
データ送信部13は、送信データ蓄積部16からデータを取得し、取得したデータをパケット化する。そして、送信レート計算部12から通知される送信レートに従ってパケットを送信する。また、データパケットを送信したときにRTT計測部15に送信時刻を通知する。
ACK受信部14は、ACKパケット受信時にRTT計測部15に受信時刻を通知する。さらに、受信したACKパケットに含まれる情報からパケットロス発生を検出すると、データ送信部13に対して、パケットロスしたパケットの再送を指示する。パケットロスの判定は、同じACK番号のACKパケットを一定数以上受信するか、一定時間以上ACKパケットを受信しない場合である。パケットロス発生の検出方法は後に詳述する。また、ACK受信部14は、ACKパケットを送信レート変化推定部11へ通知する。
RTT計測部15は、データ送信部13からデータパケットの送信時刻、ACK受信部14からACKパケット受信時刻を取得する。これにより、データパケットを送信してから、当該データパケットに対するACKを受信するまでの時間を示すRTT値を計算する。これにより求められたRTT値を送信レート変化推定部11へ通知する。
送信レート変化推定部11は、ACK受信部14から通知されるACKパケットから、受信装置20がデータパケットを正常に受信したか否かの情報を取得する。さらに、RTT計測部15から取得するRTT値に基づいて、受信装置20がデータパケット受信毎にACKパケットが返信された場合に、変化する送信レートの変化を推定する。推定結果を送信レート計算部12へ通知する。
次に、図3、図4、図5を用いて送信レート変化の推定方法について説明する。受信装置20が、データパケットを受信するたびにACKパケットを返信し、送信装置10がACKパケットを受信した場合の送信レートの変化を推定する。
図3は、データパケットとACKパケットの送信の様子を示しており、送信装置10は、データパケットのサイズ100Byteでシーケンス番号100から2400までのデータパケットを送信している(実線の矢印)。例えば、送信装置10から送信するデータパケット100は、シーケンス番号100から199までのデータより構成される。図3は、データパケット600、700、800、1900をロスしている様子を示している。
受信装置20は、送信装置10から20個のデータパケットを受信して、図4に示すACKパケットを送信装置10へ返信する(図3の受信装置20から送信装置10へ向かう実線の矢印)。具体的には、データパケット2400を取得した時点で、データパケットが20個に達するため、ACKパケットを返信する。受信装置20が連続して受信できている最新のシーケンス番号が599までなので、ACKパケットのACK番号は600と設定される。また、受信できているデータパケットのシーケンス番号として900〜1899、2000〜2499が含まれる。
送信レート変化推定部11は、ACK受信部14から、ACKパケットを受信すると、送信レート計算部12から現在の送信レートを取得し、RTT計測部15からRTT値を取得する。さらに、ACKパケットに示されるシーケンス番号から、データパケット受信毎にACKが返信された場合の送信レートを推測する。図5は、受信装置20がデータパケットを1個受信する毎にACKを返信した場合の送信レートの変化を示している。ACKパケット受信の時点で送信レートは図5に示すようにrate_aで、送信レート閾値よりも大きい値とする。図4に示すACKパケットからシーケンス番号100から599までの5個のデータパケットが送信成功していることが分かるので、図5の送信レートrate_aから一定量で5回送信レートを増加させる。送信装置10の送信レート制御は、データ送信が成功すれば送信レートを増加させ、データ送信が失敗すれば、送信レートを減少させる。
送信レートの増加方法は、送信レートの閾値を設定して、閾値以下であれば、データ送信が成功したACKパケット受信毎に送信データレートを例えば2倍にし、指数関数的に増加させる。送信レートが閾値以上になると、データ送信が成功したACKパケット受信毎に一定量増加させ、線形的に増加させる。
ここで、送信装置10における受信装置20のパケットロス検出方法とレート制御について説明する。受信装置20が、データパケット受信毎にACKパケットを返信する場合のパケットロス検出方法は(1)同じACK番号のACKパケットを複数受信した場合(2)一定時間ACKパケットを受信しない場合(再送タイムアウトの検出)、の2通りある。送信レート制御は、(1)の場合、パケットロス検出の直前の送信レートを半分にし、(2)の場合、次のACKを受信するまでに少なくとも1個のデータパケットを送信できるレートまで下げる。再送タイムアウト時間は、RTT+4×(RTTの平均偏差)で求める。ここでは、同じACK番号のACKパケットを3つ受信するとロスしたと判断すると、送信装置10が、図3の(7)のACKパケットを受信すると、3回連続でACK番号600のACKパケットを受信することになる。これにより、シーケンス番号600番のデータパケットのロスが発生したと検知してシーケンス番号1300のデータパケット送信に割り込んで再送を実施する。この再送パケットのデータ送信が成功するまで、ACKパケット受信毎に送信レートを一定量増加させる(図5の区間A)。シーケンス番号600のデータパケットの再送成功は、ACK番号が700に設定されている図3の(10)のACKパケット受信により検知する。このとき送信レートを半減させる(図5のタイミングB)。このとき、送信レート閾値を、半減させた送信レート値に更新する。
次に、図3の(12)のACKパケットを受信した時点で、3回連続でACK番号700のACKパケットを受信することになる。これにより、シーケンス番号700のデータパケットのロスが発生したと検知してシーケンス番号1800のデータ送信に割り込んで再送を実施する。図3の(14)のACKパケット受信までは、ACKパケット受信毎に一定量送信レートを増加させる(図5の区間C)。図3の(15)のACKパケットを受信により、シーケンス番号700番の再送が成功したと検知し、シーケンス番号2200の送信レートを半減させる(図5のタイミングD)。このとき、送信レート閾値を半減させた送信レート値に更新する。
次に、シーケンス番号2200のデータパケット送信直前に、800番のACKパケットを一定時間受信しなかったため、再送タイムアウトが発生したとする。このとき、送信レートを次のACKパケットを受信するまで少なくとも1個のデータパケットが送出可能な送信レートまで低減させる(図5のタイミングE)。その後、図3の(19)のACKパケットを受信するまで送信レートを増加させる。送信レートは、送信レート閾値よりも小さいため、ACKパケット受信毎に送信レートを2倍する(図5の区間F)。
前述のようにACKパケットの情報とRTTから、データパケット送信成功の場合は、送信レート閾値よりも大きいかどうかを判断して、送信レートの増加幅を推定する。データパケットロスの場合、再送タイムアウトが発生するかどうかをRTTから判断して減少幅を推定する。このようにして推定した送信レート変化の推定結果を送信レート計算部12へ通知する。
1データパケット毎にACKパケットが返信される場合の送信レート変化を推定することで、送信装置10は、単純にレートを増減させるのではなく、データパケットの送信成功および失敗からネットワークの輻輳状況に応じたレート制御を可能とさせる。つまり、ACKパケットの頻度は少ないにもかかわらず、制御粒度の細かいレート制御を実現することが可能となる。
送信レート計算部12は、送信レート変化推定部11から送信レート変化の推定情報を取得する。推定した送信レートの変化から、データパケット毎にACKパケットが返信された場合における、送信装置10がデータパケットを送信してから、ACKパケットを受信するまでの送信データ量を算出することができる。このようにして算出した送信データ量を、次のACKパケットが到着するまでに送出できる送信データ量として推定する。この送信データ量を、次のACKパケットが到着するまでに、送信できるよう、送信レートを設定する。設定したレートは、データ送信部13へ通知する。
また、送信レートは、送信レート変化推定部11が推定した送信レートの平均送信レートを送信レートとしてもよく、ネットワークの帯域を使い切る指標値としてロス直前の送信レートの平均を計算し、送信レートとしてもよい。ロス直前の送信レートは、図5の丸で囲んだときの送信レートである。
送信データ蓄積部16は、送信するデータを蓄積する。
以上説明したように、送信装置10は、データパケットの送信成功時には、送信レートを増加させ、失敗時には送信レートを減少させる制御で説明したが、上記以外にもACKパケットをトリガーに送信レート制御している方式にも適用できる。また、以上の説明においては、送信装置10における処理について説明したが、データパケットを受信した受信装置20でも、生成するACKパケットの情報に基づいて、送信装置10と同様の処理を行うことが可能である。
次に、図2の受信装置20の構成について説明する。受信装置20は、データ受信部21、ACK送信部22、ACK頻度決定部23、受信データ蓄積部24を備えている。
データ受信部21は、送信装置10からのデータパケットを受信する。データ受信部21は、受信したデータの情報をACK送信部22へ通知する。具体的には、データパケットのシーケンス番号等である。さらに、データ受信部21は、データパケットを受信データ蓄積部24へ蓄積する。
ACK送信部22は、図4に示すように、受信したデータパケットを一意に識別するシーケンス番号を含んだACKパケットを作成して、ACK頻度度決定部23から通知される頻度に従って送信装置10へ送信する。
ACK頻度決定部23は、送信装置10に対して、ACKを送信する頻度を決定し、ACK送信部22へ通知する。前述のACKの頻度とは、データパケットX(Xは1以上の整数)個受信毎にACKパケットを送信装置10へ返信するもしくは時間周期的にACKパケットを返信する。ACK送信部22へは、Xの値もしくは周期的にACKパケットを返信する時間を決定して、ACK送信部22に通知する。
次に、図6を用いて本発明の実施の形態1にかかる送信装置と受信装置の処理の流れにつき説明を行う。
はじめに、送信装置10は、送信データ蓄積部16からデータを取り出してパケット化する。さらに、送信レート計算部12から通知される送信レートに従ってデータパケットを送信する。このとき、パケットサイズは100Byteとしている。また、データパケットには、データパケットを一意に識別するシーケンス番号を含める(S100)。
次に、受信装置20では、ACK頻度決定部23から、データパケットを20個受信毎にACKパケットを生成して送出するよう通知がなされる。受信装置20は、図3に示すように、シーケンス番号2400のデータパケットを受信時にACKパケットを作成して返信し、送信装置10はACKパケットを受信する(S101)。
次に、ACK受信部14は送信レート変化推定部11へ、ACK番号、受信したデータのシーケンス番号等を含むACKパケットの情報を通知する。また、ACK受信部14は、データ送信部13へロスしたパケットの再送を指示する。RTT計測部15は、RTTを計算して送信レート変化推定部11へRTTを通知する(S102)。
次に、送信レート変化推定部11は、送信レートの変化を推定し、送信レート計算部12へ通知する(S103)。送信レート変化の推定方法は、図3乃至図5で説明したものと同様であるため、説明を省略する。
次に、送信レート計算部12は、送信レート変化推定部11から通知された送信レート変化と、次にACKパケットを受信するまでに送信する送信データ量から、送信レートを算出し(S104)、データ送信部13に通知する(S105)。
次に、図7を用いて本発明の実施の形態1にかかる送信レート変化の推定処理の流れにつき説明を行う。ACK受信部14は、ACKパケットを受信してから受信装置20におけるデータパケットのロスがあるか確認する(S200)。データパケットのロスがあれば、再送タイムアウトが発生するかどうか確認する(S201)。再送タイムアウトが発生すれば送信レートを最小にする(S202)。再送タイムアウトが発生しないようであれば、送信レートを半減させる(S203)。
次に、S200において、ロスがなければ、現在の送信レートが送信レート閾値よりも大きいか確認する(S204)。閾値よりも大きければ、送信レートを一定量増加させる(S205)。閾値よりも小さければ、送信レートを例えば2倍にする(S206)。
以上説明したように、本発明の実施の形態1にかかる送信装置をもちいることにより、ACKの頻度が減少しても、ACKが例えば1データパケット毎に返信される場合の送信レートの変化を推測して、送信レートを決定することで、よりネットワークの輻輳状態に応じた送信レート制御を実現できる。つまり、ACKの頻度を減少させることによりネットワークに送出されるACKパケットを減少させることが可能であり、送信装置及び受信装置のACKパケット処理に伴う処理負荷を軽減させることができる。さらに、ACKパケットが例えば1データパケット毎に返信された場合と同様に高精度な送信レート制御を行うことができる。
(実施の形態2)
図8を用いて本発明の実施の形態2にかかる送信装置10の構成について説明する。送信装置10は、図1の送信装置10の構成に、送信レート変化制御部17を加えた構成となる。その他の構成は図1と同様である。
送信レート変化制御部17は、送信レート計算部12から送信レートを取得する。また、ACK受信部14からACKパケットの受信時刻とACKパケット到着までに送出するデータパケット数を取得し、次のACKパケットを受信するまでに、ACK受信部14から取得したデータパケット数を送信できるように、到達送信レート、送信レートの増減およびタイミングを決定する。到達送信レートとは、次のACKパケットを受信する時に設定する送信レートである。送信レートが、現在の送信レートの値よりも一定値以上の場合、急激に送信レートを増加させるとネットワーク内で輻輳が発生する可能性があるため線形的に増加させる。ここで、送信レートの増減とタイミング制御方法について2つの場合に分けて説明する。
(1)現在の送信レート+α≦送信レート計算部12で計算される送信レート、の場合。αは任意の送信レート値を示す。
前述にあるとおり、この場合、送信レートが急激に増加し、ネットワーク中で輻輳が発生する可能性がある。このため、急激なレート増加による輻輳を抑制するため線形的に送信レートを増加させる。まず、増加させるタイミングについて説明する。送信レートを増加させるタイミングは、受信装置20が、1データパケット受信毎にACKパケットを返信している場合の送信レート制御タイミングと合わせる。ACKパケットを受信するまでに送出しているデータパケット数に等しい回数のタイミングで増加させる。図9では、ACKパケットを受信するまでに4個のデータパケットを送信している場合の様子を示している。従って、増加させるタイミングは、ACK受信部14から通知される時刻から算出されるACKパケット到着間隔を4で除算した値となる。図9ではその値をTとしている。
次に、4回の送信レート増加で到達させる送信レートについて説明する。次のACKパケットが到着するまで、送信レート計算部12から通知される送信レートrate_cで送信した場合のデータパケット量(図11の斜線部の面積)を送信するため、次のACKパケット受信時までに到達する送信レートは2×rate_c−rate_aとなる。従って、1回での送信レート増加量βはβ=2(rate_c−rat_a)/4となる。図9は、現在の送信レートrate_a+αが、送信レート計算部12で計算されたrate_cよりも小さい値であることを示している。前述より、T時間毎に2(rate_c−rat_a)/4送信レートを増加させる。本情報をデータ送信部13へ通知する。
(2)送信レート計算部12で計算される送信レート<現在の送信レート+α、の場合。αは任意の送信レート値を示す。
この場合、現在の送信レートを、送信レート計算部12で計算される送信レートに変更しても、ネットワークにおいて輻輳が発生する可能性は低いため、図10に示すように送信レートrate_cで送信するようにデータ送信部13へ通知する。
次に、図11を用いて、本発明の実施の形態2にかかる送信装置と受信装置の処理の流れにつき説明する。なお、S304までは、図6のS104までと同様であるため、説明を省略する。
送信レート計算部12は、送信レート変化推定部11から通知された送信レート変化と、次にACKパケットを受信するまでに送信する送信データ量から、送信レートを算出し送信レート変化制御部17に出力する。送信レート変化推定部11から送信レート、ACK受信部14からACKパケット受信時刻とACKパケット到着までに送信したデータパケット数を取得し、前述のとおり、送信レートの増加量およびタイミングを求めて(S205)、データ送信部13へ通知する(S206)。
以上説明したように、本発明の実施の形態2にかかる送信装置を用いることにより、現在の送信レートよりも算出された送信レートが大きい場合、急激に送信レートを増加させるのではなく、線形的に徐々に増加させることで、ネットワークの輻輳を回避することができる。
以上の説明は、本発明の実施の形態を説明するものであり、本発明が以上の実施の形態に限定されるものではない。また、当業者であれば、以上の実施の形態の各要素を本発明の範囲において容易に変更、追加、変換することが可能である。
10 送信装置
11 送信レート変化推定部
12 送信レート計算部
13 データ送信部
14 ACK受信部
15 RTT計測部
16 送信データ蓄積部
17 送信レート変化制御部
20 受信装置
21 データ受信部
22 ACK送信部
23 ACK頻度決定部
24 受信データ蓄積部

Claims (17)

  1. M個(Mは2以上の整数)のデータパケット受信毎に確認応答信号を送信する受信装置から前記確認応答信号を受信して送信レート制御を行う送信装置であって、
    前記確認応答信号受信時に、前記確認応答信号が前記受信装置からN個(NはMよりも小さい整数)のデータパケット受信毎に返信された場合の送信レート変化を推定する送信レート変化推定部と、
    前記送信レート変化推定部によって推定された送信レート変化に基づいて送信レートを計算する送信レート計算部を備えた送信装置。
  2. 前記送信レート計算部は、前記送信レート変化から次の確認応答信号を受信するまでに送信できるデータパケット量を計算し、前記データパケット量に応じて送信レートを計算することを特徴とする請求項1記載の送信装置。
  3. 現在の送信レートと前記送信レート計算部によって計算された送信レートの大小関係に基づいて、次に設定する送信レートの増減量と前記現在の送信レートの変更タイミングを決定する送信レート変化制御部、をさらに備える請求項1又は2記載の送信装置。
  4. 前記送信レート変化推定部は、前記現在の送信レートと、あらかじめ定められた送信レート閾値と、データパケット送信後確認応答信号を受信するまでのタイミングと、確認応答信号に含まれるデータパケット受信の成功もしくは失敗の情報とに基づいて、前記受信装置がN個のデータパケット受信毎に確認応答信号を返信する場合の前記送信レート変化を推定することを特徴とする請求項に記載の送信装置。
  5. 前記送信レート変化推定部は、前記受信装置において、前記データパケットの受信が成功した場合に送信レートが増加すると推定することを特徴とする請求項1乃至4のいずれか1項に記載の送信装置。
  6. 前記送信レート変化推定部は、前記送信レートが増加すると推定した場合に、前記送信レート閾値と比較し、推定中の送信レートが前記送信レート閾値以上の場合には、送信レートは線形的に増加し、推定中の送信レートが前記送信レート閾値よりも小さい場合には、送信レートは指数関数的に増加すると推定することを特徴とする請求項に記載の送信装置。
  7. 前記送信レート変化推定部は、前記受信装置において、前記データパケットの受信に失敗した場合に送信レートが減少すると推定することを特徴とする請求項1乃至4のいずれか1項に記載の送信装置。
  8. 前記送信レート変化推定部は、前記送信レートが減少すると推定した場合に、前記送信レートの減少に基づいて、前記送信レート閾値も減少すると推定することを特徴とする請求項4又は6に記載の送信装置。
  9. 前記送信レート変化推定部は、前記送信レートが減少すると判定した場合に、前記データパケット送信後確認応答信号を受信するまでのタイミングに基づいて再送タイムアウト値を推定し、前記再送タイムアウトが発生しなければ前記推定中の送信レートが半減すると推定し、前記再送タイムアウトが発生すれば、送信レートが最小値になると推定することを特徴とする請求項に記載の送信装置。
  10. 前記送信レート計算部は、前記送信レート変化の推定から前記推定した送信レートの平均値を算出し、送信レートを計算することを特徴とする請求項1乃至4のいずれか1項に記載の送信装置。
  11. 前記送信レート計算部は、前記送信レート変化の推定から推定した送信レートが減少する直前の前記推定した送信レート値の平均を送信レートとすることを特徴とする請求項1乃至4、及び請求項10のいずれか1項に記載の送信装置。
  12. 前記送信レート変化制御部は、前記送信レート計算部から通知される送信レートが、現在の送信レートよりも大きくかつ前記送信レートと現在の送信レートとの差分が一定以上ある場合、前記送信レートの増減量と前記送信レート変更タイミングを決定することを特徴とする請求項3記載の送信装置。
  13. 前記送信レート変化制御部は、前記送信レート変更タイミングを、前記受信装置が、確認応答信号を返信してから次の確認応答信号を返信するまでの推定タイミングに基づいて決定することを特徴とする請求項3又は請求項12に記載の送信装置。
  14. 前記送信レート変化制御部は、前記送信レート計算部から通知される送信レートが、現在の送信レートよりも大きくかつ前記送信レートと現在の送信レートとの差分が一定以上ある場合、次に確認応答信号が到着するまでに前記送信レート計算部から通知される送信レートで送信可能なデータパケット数に基づいて、次に確認応答信号が到着する時の到達送信レートを決定することを特徴とする請求項3又は請求項12又は請求項13に記載の送信装置。
  15. 前記送信レート変化制御部は、前記送信レート変更タイミングと前記到達送信レートから送信レート増加量を決定することを特徴とする請求項14に記載の送信装置。
  16. M個(Mは2以上の整数)のデータパケット受信毎に生成される確認応答信号に基づいて、送信レートの算出を行う送信レート算出方法であって、
    前記確認応答信号がN個(NはMよりも小さい整数)のデータパケット受信毎に生成された場合に当該確認応答信号に基づいて送信レート変化を推定するステップと、
    前記推定された送信レート変化に基づいて送信レートを計算するステップを備えた送信レート算出方法。
  17. M個(Mは2以上の整数)のデータパケット受信毎に生成される確認応答信号に基づいて、送信レートの算出を行う送信レート算出プログラムであって、
    前記確認応答信号がN個(NはMよりも小さい整数)のデータパケット受信毎に生成された場合に当該確認応答信号に基づいて送信レート変化を推定するステップと、
    前記推定された送信レート変化に基づいて送信レートを計算するステップを送信装置の制御コンピュータに実行させる送信レート算出プログラム。
JP2009050739A 2009-03-04 2009-03-04 送信装置、送信レート算出方法及び送信レート算出プログラム Expired - Fee Related JP5387058B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009050739A JP5387058B2 (ja) 2009-03-04 2009-03-04 送信装置、送信レート算出方法及び送信レート算出プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009050739A JP5387058B2 (ja) 2009-03-04 2009-03-04 送信装置、送信レート算出方法及び送信レート算出プログラム

Publications (2)

Publication Number Publication Date
JP2010206608A JP2010206608A (ja) 2010-09-16
JP5387058B2 true JP5387058B2 (ja) 2014-01-15

Family

ID=42967615

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009050739A Expired - Fee Related JP5387058B2 (ja) 2009-03-04 2009-03-04 送信装置、送信レート算出方法及び送信レート算出プログラム

Country Status (1)

Country Link
JP (1) JP5387058B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180368021A1 (en) * 2017-06-16 2018-12-20 Samsung Electronics Co., Ltd. Method and apparatus for transmitting tcp ack in communication system

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014222464A (ja) * 2013-05-14 2014-11-27 株式会社東芝 制御装置
JP5775123B2 (ja) * 2013-08-29 2015-09-09 インテル コーポレイション アクセス・ポイントの輻輳検出及び低減のための記憶媒体及びシステム
CN106656431B (zh) 2015-09-21 2020-09-29 华为技术有限公司 一种报文传输方法及用户设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3974027B2 (ja) * 2002-11-28 2007-09-12 株式会社エヌ・ティ・ティ・ドコモ 基地局制御装置、データ伝送方法及びプログラム
JP4267988B2 (ja) * 2003-09-05 2009-05-27 株式会社エヌ・ティ・ティ・ドコモ パケット送信量制御方法、通信システム、通信装置及びプログラム
JP2008053888A (ja) * 2006-08-23 2008-03-06 Matsushita Electric Ind Co Ltd 通信装置、プログラム、情報記憶媒体および通信制御方法
JP4627290B2 (ja) * 2006-09-29 2011-02-09 Kddi株式会社 Tcpを用いたレート制御方法、サーバ及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180368021A1 (en) * 2017-06-16 2018-12-20 Samsung Electronics Co., Ltd. Method and apparatus for transmitting tcp ack in communication system
US10645609B2 (en) * 2017-06-16 2020-05-05 Samsung Electronics Co., Ltd. Method and apparatus for transmitting TCP ACK in communication system

Also Published As

Publication number Publication date
JP2010206608A (ja) 2010-09-16

Similar Documents

Publication Publication Date Title
JP4778453B2 (ja) 通信端末、輻輳制御方法および輻輳制御プログラム
KR100597425B1 (ko) 무선 네트워크 환경에서 전송 지연으로 인한 불필요한 재전송을 감소시키기 위한 방법 및 이를 이용한 통신 장치
JP4708978B2 (ja) 高スループットを実現する通信システム、通信端末、セッション中継装置、及び通信プロトコル
JP5867188B2 (ja) 情報処理装置、輻輳制御方法および輻輳制御プログラム
US20070177502A1 (en) Communication system, communication apparatus, congestion control method used therefor, and program for the method
US20060209838A1 (en) Method and system for estimating average bandwidth in a communication network based on transmission control protocol
JP2006014329A (ja) 通信端末
JP2007534194A5 (ja)
US8565249B2 (en) Queue management system and methods
CN107800638B (zh) 一种拥塞控制方法及装置
Waghmare et al. Comparative Analysis of different TCP variants in a wireless environment
CN113014505B (zh) 一种高动态拓扑卫星网络中时延区分的传输控制方法
KR100912178B1 (ko) 무선 환경에서의 혼잡제어방법 및 기록매체
JP5387058B2 (ja) 送信装置、送信レート算出方法及び送信レート算出プログラム
US8279756B2 (en) Communication terminal, communication control method, and communication control program
CN111193577A (zh) 使用传输超时的网络系统通信方法及通信装置
JP7067544B2 (ja) 通信システム、通信装置、方法およびプログラム
WO2017118239A1 (zh) 数据包的无线传输跨层优化方法及装置
JP6011813B2 (ja) 通信装置およびその通信制御方法
JP3163479B2 (ja) 帯域制御方法
JP4925916B2 (ja) データ送信装置、データ送信方法及びデータ送信プログラム
KR100518000B1 (ko) 지연 ack 전송방법
KR100915996B1 (ko) 대역폭변화에 따른 적응형 전송 제어 프로토콜을 이용한데이터 패킷 전송 방법 및 그를 위한 송신측 단말장치
WO2013011638A1 (ja) 通信装置およびその通信制御方法
JP6417225B2 (ja) パケット通信におけるパケット送信装置、通信端末及びスロースタート制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130610

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130716

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130826

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: 20130910

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130923

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees