JP2008283523A - データ送信装置、データ送信方法及びデータ送信プログラム - Google Patents
データ送信装置、データ送信方法及びデータ送信プログラム Download PDFInfo
- Publication number
- JP2008283523A JP2008283523A JP2007126640A JP2007126640A JP2008283523A JP 2008283523 A JP2008283523 A JP 2008283523A JP 2007126640 A JP2007126640 A JP 2007126640A JP 2007126640 A JP2007126640 A JP 2007126640A JP 2008283523 A JP2008283523 A JP 2008283523A
- Authority
- JP
- Japan
- Prior art keywords
- time
- data packet
- data
- retransmission
- packet
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
【解決手段】送信装置Tnと受信装置Rnによる通信網NWを介するデータパケット送受信において、送信装置Tnは、Fast Retransmitによる再送があった場合、その後でDuplicate ACKパケットを受信する度にACKされていないデータパケットのタイムアウト時間を調整する。タイムアウト時間の調整では、その時点におけるタイムアウト時間の最大増加量を計時中のタイムアウト時間に加算する。
【選択図】図8
Description
TCP Illustrated Volume 1, W.Richard Stvens, ADDISON-WESLEY, 1994, Chapter17〜24全体(特にTCP再送のChapeter21) The Addition of Explicit Congestion Notification (ECN) to IP, RFC3168
以下、図面を参照しつつ本発明の実施の形態について説明する。図1は、本発明の一実施形態によるデータ送信装置である送信装置Tnを備えた通信システムの構成を示した図である。本通信システムは、図示のように送信装置Tn、送信装置tn、通信網NW及び受信装置Rnによって構成されており、以下に説明するようにデータパケット(授受対象とする情報を示すデータのTCPに準拠したパケット。一般にはTCPパケットないしセグメント等とも呼ばれる。以下同じ。)を送受信してTCPによる再送制御を伴うデータ通信を実施する。
次に、上記構成による動作について説明する。データパケットの送信においては、上述したように送信装置Tnには特有の再送制御があるのに対し、送信装置tnは一般的な在来の再送制御形態を採っている。そこで、以下の動作説明においては、まず、送信装置tnと受信装置Rnによるデータパケットの送受信について説明し、その送受信動作における在来の再送制御等についての考察をした後に、送信装置Tnと受信装置Rnによるデータパケットの送受信について説明することにより、在来の再送制御とは異なる送信装置Tn特有の再送制御の具体的内容を明らかにする。なお、以下の動作説明におけるパケットの送受信は、すべて通信網NWを介して行われる(したがって、特に必要がない限り通信網NWには言及しない。)。
TCPでは、送信側が送信したデータパケットに対し、受信側がACK(Acknowledgement(確認応答))パケットを送信することによって受信確認を行う。データパケットにはシーケンス番号が付与されており、受信側は、送信するACKパケットによってどこまでのシーケンス番号のデータパケットを受信したかを示す。送信側は、そのACKパケットを受信することにより、受信側がどこまでデータパケットを受信したかを把握することができる。したがって、何らかの理由でデータパケット等にエラーが発生すると、送信側は、そのエラー発生を受信側からのACKパケットによって把握することが可能である。
図2は、送信装置tnと受信装置Rnの間におけるFast Retransmitを伴うデータパケットの送受信シーケンスを示した図である。図2においては、シーケンス番号をi(i=1、2、3、…)とすると、“Data,SEQ=i”がシーケンス番号iのデータパケットを表し、“ACK SEQ=i”がシーケンス番号iのデータパケットを受信したことを示すACKパケットを表している(以下、送受信シーケンスを示す他の図面における“Data,SEQ=i”、“ACK SEQ=i”も同様である。)。
図3は、送信装置tnと受信装置Rnの間におけるタイムアウト再送を伴うデータパケットの送受信シーケンスを示した図である。図3に示すように、データパケット“Data,SEQ=1”を送信装置tnが送信して受信装置Rnが受信し、ACKパケット“ACK SEQ=1”を受信装置Rnが送信して送信装置tnが受信すると、送信装置tnは、受信装置Rnがシーケンス番号1のデータパケットを正常に受信したことを把握する。これに対し、続くデータパケット“Data,SEQ=2”を送信装置tnが送信して受信装置Rnが受信し、受信装置RnがACKパケット“ACK SEQ=2”を送信したが、そのACKパケット“ACK SEQ=2”が消失し、送信装置tnで受信できなかったとすると、送信装置tnでは、ACKパケットが返送されてこないため、シーケンス番号2のデータパケットが正常に受信されたか否かが分からない。
MをRTTの実測値、AをSmoothed RTT([A←0.9A+0.1M]で算出されるRT
Tの平滑化平均)、DをRTTの変動部分として、
Err=M−A
A←A+1/8×Err
D←D+0.25(|Err|−D)
RTO=A+4D
なお、M、A及びDの初期値は適宜設定される。
TCPにおいては、上述したFast Retransmitとタイムアウト再送が一般的な再送制御方法として採用されている。TCPによるデータ通信では、これらの再送制御を行いつつ、輻輳回避のための輻輳制御を実施している。輻輳制御の形態としては、cwnd(Congestion Windowの略。一回に送信するパケット数を意味し、ウィンドウサイズとも呼ばれる。以下同じ。)を当初は小さくしておき、ACKパケットを受信する毎に(すなわち、送信が成功する度に)cwndを少しずつ大きくしていくものが採用されている。この形態の輻輳制御はスロースタートと呼ばれている。cwndが大きいほど一回に多数のパケットが送信可能であることから、TCPスループット(TCPによるデータ通信のスループット。以下同じ。)の向上に役立つ。
・下位レイヤ(移動体網のような無線リンクやOSI(Open Systems Interconnection)参照モデルでいうところのレイヤ2)での再送による一時的な遅延増加があった場合
・QoS(Quality of Service)を考慮して優先制御を行う際に、TCPのデータパケットが優先されずにデータパケットが送信されない場合
・時分割多重(TDMA(Time Division Multiple Access))の環境下でスケジューリングによりTCPのデータパケットに対して帯域を得られなかった場合
以上の考察によれば、重複したタイムアウト再送を避けるためには、タイムアウト時間を適切に制御すればよいということになる。また同時に、Fast Retransmitの発生が、重複したタイムアウト再送の可能性を生じさせる前提になっているということもできる。そこで、送信装置Tnによるデータパケット送信では、このFast Retransmitの発生に着目し、Fast Retransmitが実際に発生した時点から、Fast Retransmitとの関連を考慮したタイムアウト時間制御を実施することにより、上述した重複再送による問題を解決する。
送信装置Tnでは、タイムアウト時間を制御するために、Fast Retransmitが発生したシーケンス番号以降で、現在回線上に存在するデータパケット、及び再送データパケットの原送信時以降(再送されたデータパケットが以前最初に送信された時以降)で再送データパケットに対するACKパケットが返答されていない間に送信されたデータパケットに対するタイムアウト時間のみを増加するというタイムアウト調整アルゴリズムを用いる。すなわち、送信装置Tnのタイムアウト調整アルゴリズムは、Fast Retransmitが発生した時点以降において、そのFast Retransmitによって再送されたデータパケットと、当該データパケットの再送前の原送信時から当該データパケットに対するACKパケットの受信時までの間に送信された各データパケットとを対象として適用し、それらのデータパケットのタイムアウト時間をそれぞれFast Retransmit発生時の状況に応じた所定の時間分だけ増加させる。
図7は、送信装置Tnが実行するタイムアウト時間制御の処理手順を示したフローチャートである。この処理手順による処理動作は、送信装置Tnの上述したデータ送信プログラム中、特定条件下でタイムアウト時間を調整する特有の再送時間制御方式による処理動作の部分に当たり、送信装置Tnは、データ送信プログラムの他の部分によるパケット送受信、Fast Retransmit及びタイムアウト再送等の再送制御、並びに輻輳回避アルゴリズム等を実行しつつ、図7の処理手順によるタイムアウト時間制御を実行し、特有の再送制御を伴うデータパケット送信を実施する。
(a) Fast Retransmitが発生した時の最初の調整では、各UnACKedデータパケット
のタイムアウト値をクリアし、そのFast Retransmitの発生時点において算出さ
れているタイムアウト時間(上記タイムアウト時間RTO等)の値を各UnACK
edデータパケットのタイムアウト値に設定する。
(b) 2回目以降の調整では、以前のタイムアウト値の最大増加量を各UnACKedデー
タパケットのタイムアウト値に付加する。
TCPにおけるタイムアウト時間は、上記タイムアウト時間RTO等のように動的に計算されているので、過去に順次算出されたタイムアウト時間において、タイムアウト時間が最も増加したときの増加量(最大増加値)を送信装置TnのRAM、キャッシュメモリないしハードディスク等の記憶装置に記憶しておき、2回目以降の調整では、その最大増加量を各UnACKedデータパケットの計時中のタイムアウト値に加算する。ただし、2回目以降の調整で新たにUnACKedデータパケットが加わった場合(新たなデータパケットが送信された場合)には、その時点において算出されているタイムアウト時間の値を当該UnACKedデータパケットのタイムアウト値に設定し、他のUnACKedデータパケットのタイムアウト値はそのまま維持し、次回以降の調整で当該UnACKedデータパケットも含めた各UnACKedデータパケットについて(b)の調整をするものとする。
図8は、以上のようなタイムアウト時間制御を実施した場合の送信装置Tnと受信装置Rnによるデータパケットの送受信シーケンス例を示した図である。図8に示すように、送信装置Tnがデータパケット“Data,SEQ=1”〜“Data,SEQ=8”を送信したが、データパケット“Data,SEQ=4”が消失したとすると、受信装置Rnは、データパケット“Data,SEQ=1”〜“Data,SEQ=3”を受信してACKパケット“ACK SEQ=1”〜“ACK SEQ=3”を返送した後にデータパケット“Data,SEQ=5”を受信し、データパケット“Data,SEQ=4”が受信されないので、データパケット“Data,SEQ=5”の受信時にDuplicate ACKパケット“ACK SEQ=3”を送信し、以後のデータパケット“Data,SEQ=6”〜“Data,SEQ=8”の各受信時にもDuplicate ACKパケット“ACK SEQ=3”を送信する。これにより、送信装置Tnは、Duplicate ACKパケット“ACK SEQ=3”を2度受信した時点でFast Retransmitによりデータパケット“Data,SEQ=4”を再送し、タイムアウト時間を調整するための処理(上記ステップS2以下の処理)を開始する。すなわち、データパケット“Data,SEQ=4”をFast Retransmit再送した送信装置Tnは、シーケンス番号Xとしてシーケンス番号4、UnACKedシーケンス番号の範囲としてシーケンス番号4〜8を取得し(上記ステップS2及びS3)、送受信するパケットに応じて各UnACKedデータパケットのタイムアウト時間を調整する(上記ステップS3〜S7)。
送信装置Tnにおいては、上述したタイムアウト調整アルゴリズム以外の他のタイムアウト調整アルゴリズムを利用して上記ステップS4での処理を行うものとしてもよい。以下、その例を挙げる。
同一シーケンス番号でのDuplicate ACKパケットが返る度にタイムアウト値の計測を元のタイムアウト値にリセットする。タイムアウト時間は、上述したように送信装置Tnが同一ACK番号のDuplicate ACKパケットを受信する度に操作している。これは、同一ACK番号のDuplicate ACKパケットが受信側から返答されるということは、まだ再送されたデータパケットが受信側に到着していないことを示しているためである。そこで、他のタイムアウト調整アルゴリズムAとしては、Duplicate ACKパケットを受信する度に各UnACKedデータパケットのタイムアウト時間の計測を止め、元から設定されているタイムアウト値にリセットする。具体的には、
(a) Fast Retransmitが発生した時の最初の調整では、各UnACKedデータパケット
のタイムアウト値をクリアし、そのFast Retransmitの発生時点において算出さ
れているタイムアウト時間(上記タイムアウト時間RTO等)の値を各UnACK
edデータパケットのタイムアウト値に設定する。
(b) 2回目以降の調整では、各UnACKedデータパケットの計時中タイムアウト値を
リセットする。
ただし、2回目以降の調整で新たにUnACKedデータパケットが加わった場合(新たなデータパケットが送信された場合)には、その時点において算出されているタイムアウト時間の値を当該UnACKedデータパケットのタイムアウト値に設定し、他のUnACKedデータパケットのタイムアウト値はそのまま維持し、次回以降の調整で当該UnACKedデータパケットも含めた各UnACKedデータパケットについて(b)の調整をするものとする。
同一シーケンス番号でのDuplicate ACKパケットが返る度にタイムアウト値に予め定めた一定値を付加する。タイムアウト時間は、送信装置Tnが同一ACK番号のDuplicate ACKパケットを受信する度に操作しているので、その度に各UnACKedデータパケットのタイムアウト時間を予め定めた一定量だけ増加させる。具体的には、
(a) Fast Retransmitが発生した時の最初の調整では、各UnACKedデータパケット
のタイムアウト値をクリアし、そのFast Retransmitの発生時点において算出さ
れているタイムアウト時間(上記タイムアウト時間RTO等)の値を各UnACK
edデータパケットのタイムアウト値に設定する。
(b) 2回目以降の調整では、各UnACKedデータパケットの計時中タイムアウト値に
予め定めた一定値を加算する。
ただし、2回目以降の調整で新たにUnACKedデータパケットが加わった場合(新たなデータパケットが送信された場合)には、その時点において算出されているタイムアウト時間の値を当該UnACKedデータパケットのタイムアウト値に設定し、他のUnACKedデータパケットのタイムアウト値はそのまま維持し、次回以降の調整で当該UnACKedデータパケットも含めた各UnACKedデータパケットについて(b)の調整をするものとする。
NW 通信網
Rn 受信装置
Claims (7)
- TCPによるデータパケット送信をするデータ送信装置であって、
受信側からの再送要求に応じてするデータパケットの再送をしたときに、前記受信側からの受信の確認応答がされていない既送信データパケットにつき、前記受信側との当該再送時におけるデータパケットの送受信状況に基づいて、前記既送信データパケットの時間経過による再送に向けての経過時間の計時を調整する、データ送信装置。 - 前記送受信状況に基づいて取得した前記時間経過による再送を行う経過時間の変更指標が示す最大の時間増加量を、同一データパケットの再送要求受信時に前記計時が示す再送までの時間に加えて前記計時を調整する、請求項1記載のデータ送信装置。
- 前記時間経過による再送を行う経過時間の最大増加量を前記最大の時間増加量とする、請求項2記載のデータ送信装置。
- 同一データパケットの再送要求受信時に前記計時が示す再送までの時間を計時開始当初の時間にリセットして前記計時を調整する、請求項1記載のデータ送信装置。
- 同一データパケットの再送要求受信時に前記計時が示す再送までの時間に一定の時間を加えて前記計時を調整する、請求項1記載のデータ送信装置。
- TCPによるデータパケット送信をするデータ送信方法であって、
受信側からの再送要求に応じてするデータパケットの再送をしたときに、前記受信側からの受信の確認応答がされていない既送信データパケットにつき、前記受信側との当該再送時におけるデータパケットの送受信状況に基づいて、前記既送信データパケットの時間経過による再送に向けての経過時間の計時を調整する、データ送信方法。 - TCPによるデータパケット送信をするデータ送信プログラムであって、
受信側からの再送要求に応じてするデータパケットの再送をしたときに、前記受信側からの受信の確認応答がされていない既送信データパケットにつき、前記受信側との当該再送時におけるデータパケットの送受信状況に基づいて、前記既送信データパケットの時間経過による再送に向けての経過時間の計時を調整する機能を、コンピュータに実現させるためのデータ送信プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007126640A JP4925916B2 (ja) | 2007-05-11 | 2007-05-11 | データ送信装置、データ送信方法及びデータ送信プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007126640A JP4925916B2 (ja) | 2007-05-11 | 2007-05-11 | データ送信装置、データ送信方法及びデータ送信プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008283523A true JP2008283523A (ja) | 2008-11-20 |
JP4925916B2 JP4925916B2 (ja) | 2012-05-09 |
Family
ID=40143958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007126640A Expired - Fee Related JP4925916B2 (ja) | 2007-05-11 | 2007-05-11 | データ送信装置、データ送信方法及びデータ送信プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4925916B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015133688A (ja) * | 2013-12-11 | 2015-07-23 | パナソニックIpマネジメント株式会社 | 通信制御装置 |
US11405148B2 (en) | 2017-02-27 | 2022-08-02 | Nec Corporation | Communication system, communication device, method, and recording medium of program |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000261496A (ja) * | 1999-03-04 | 2000-09-22 | Toshiba Corp | 無線通信装置 |
JP2002330168A (ja) * | 2001-05-07 | 2002-11-15 | Nec Corp | 通信システムにおける再転送タイムアウト時間の設定方法 |
JP2004015556A (ja) * | 2002-06-07 | 2004-01-15 | Sony Corp | 通信方法、通信装置及び通信システム |
-
2007
- 2007-05-11 JP JP2007126640A patent/JP4925916B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000261496A (ja) * | 1999-03-04 | 2000-09-22 | Toshiba Corp | 無線通信装置 |
JP2002330168A (ja) * | 2001-05-07 | 2002-11-15 | Nec Corp | 通信システムにおける再転送タイムアウト時間の設定方法 |
JP2004015556A (ja) * | 2002-06-07 | 2004-01-15 | Sony Corp | 通信方法、通信装置及び通信システム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015133688A (ja) * | 2013-12-11 | 2015-07-23 | パナソニックIpマネジメント株式会社 | 通信制御装置 |
US11405148B2 (en) | 2017-02-27 | 2022-08-02 | Nec Corporation | Communication system, communication device, method, and recording medium of program |
Also Published As
Publication number | Publication date |
---|---|
JP4925916B2 (ja) | 2012-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5694993B2 (ja) | 通信装置及び通信方法 | |
JP4016387B2 (ja) | データフロー制御方法 | |
JP4654926B2 (ja) | 通信システム、通信装置及びそれらに用いる輻輳制御方法並びにそのプログラム | |
JP4021885B2 (ja) | 無線通信システムにおいて送信ウィンドウサイズ変更手順を処理するために受信機と送信機とを制御する方法 | |
EP1568180B1 (en) | A method for enhancing transmission quality of streaming media | |
KR100533686B1 (ko) | 모바일 애드 혹 네트워크에서의 데이터 전송 방법 및 이를이용한 네트워크 장치 | |
US20080101290A1 (en) | Apparatus for Arq Controlling in Wireless Portable Internet System and Method Thereof | |
US9456377B2 (en) | System and method for transmission control protocol service delivery in wireless communications systems | |
JP2004537218A (ja) | Nackベースのプロトコルにおける輻輳制御の信頼性のある効率的な対応方法 | |
WO2014069642A1 (ja) | 通信装置、送信データ出力制御方法、及びそのプログラム | |
US6662330B1 (en) | Joint range reject automatic repeat request protocol | |
JP2008524942A (ja) | 重複受信確認を用いたデータフロー制御 | |
CN113014505B (zh) | 一种高动态拓扑卫星网络中时延区分的传输控制方法 | |
JP4817077B2 (ja) | 無線lan通信システム | |
JP7067544B2 (ja) | 通信システム、通信装置、方法およびプログラム | |
JP4925916B2 (ja) | データ送信装置、データ送信方法及びデータ送信プログラム | |
WO2017118239A1 (zh) | 数据包的无线传输跨层优化方法及装置 | |
JP2002521960A (ja) | 通信システムにおけるデータ・パケットの伝達方法および装置 | |
JP5387058B2 (ja) | 送信装置、送信レート算出方法及び送信レート算出プログラム | |
JP3163479B2 (ja) | 帯域制御方法 | |
JP2005509370A (ja) | 信頼性の低い通信環境における通信効率および性能の改良 | |
JP6011813B2 (ja) | 通信装置およびその通信制御方法 | |
JP2000022744A (ja) | パケット通信システム、パケット通信装置及びパケット通信方法 | |
JP6145190B1 (ja) | 中継装置、中継方法及び中継プログラム | |
KR20090050125A (ko) | 무선 네트워크에서 티시피 성능 향상을 위한 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100201 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20100202 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110222 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110405 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110527 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20110530 |
|
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: 20120110 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120207 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150217 Year of fee payment: 3 |
|
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 |