JP3000546B2 - 輻輳制御方法 - Google Patents

輻輳制御方法

Info

Publication number
JP3000546B2
JP3000546B2 JP5321597A JP5321597A JP3000546B2 JP 3000546 B2 JP3000546 B2 JP 3000546B2 JP 5321597 A JP5321597 A JP 5321597A JP 5321597 A JP5321597 A JP 5321597A JP 3000546 B2 JP3000546 B2 JP 3000546B2
Authority
JP
Japan
Prior art keywords
data
packet
received
control method
node
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 - Lifetime
Application number
JP5321597A
Other languages
English (en)
Other versions
JPH10257092A (ja
Inventor
幸雄 渥美
Original Assignee
株式会社超高速ネットワーク・コンピュータ技術研究所
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 株式会社超高速ネットワーク・コンピュータ技術研究所 filed Critical 株式会社超高速ネットワーク・コンピュータ技術研究所
Priority to JP5321597A priority Critical patent/JP3000546B2/ja
Publication of JPH10257092A publication Critical patent/JPH10257092A/ja
Application granted granted Critical
Publication of JP3000546B2 publication Critical patent/JP3000546B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、輻輳制御方法に関
し、特に通信プロトコル処理を実行するノードにおける
プロトコルレイヤ4の輻輳制御の方法に関するものであ
る。
【0002】
【従来の技術】一般に、レイヤ4のプロトコルの代表例
として、インターネットで広く使用されているTCPプ
ロトコルでは、各送受信ノードのレイヤ4処理部におい
て、ウィンドウ方式と呼ばれるフロー制御を使用してい
る。このウィンドウ方式のフロー制御では、各種性能の
網やノードが混在した通信環境を対象としてるため、利
用できるリソースが不明という前提に基づいてフロー制
御のパラメータを調整して送信する制御、すなわち輻輳
制御を行っている。
【0003】図4は従来のデータ送信処理を示すフロー
チャートであり、図4を参照して、従来の輻輳制御方法
について説明する。TCPのデータ転送において、送信
ノードは、相手ノードの受信能力(バッファ)を示す受
信ノードが宣言した受信告知ウィンドウサイズ(以下、
adwndという)の他に、ネットワークの転送能力を
推定した輻輳ウィンドウサイズ(以下、cwndとい
う)を用いて、adwndとcwndのいずれか小さい
方、すなわちmin(adwnd,cwnd)の範囲で
送信する。以下、A,Bのいずれか小さい方を選択する
関数をmin(A,B)と表す。
【0004】輻輳制御は、cwndを中心として実現さ
れており、これらパラメータの他にスロースタート閾値
(以下、ssthreshという)が設けられている。
また、輻輳制御フェーズとして、スロースタートフェー
ズと輻輳回避フェーズと呼ばれる2つのフェーズがあ
り、制御の方法が異なる。ある時点で送信可能なパケッ
ト数は、min(cwnd, adwnd)であるが、
各パラメータの変動に伴い通信中に変化していく。
【0005】コネクション設定後、送信側のレイヤ4処
理部では、図4に示す輻輳制御を開始する。まず、フロ
ー制御パラメータの初期値として、ssthresh=
adwnd、cwnd=1パケットに設定する(ステッ
プ40)。そして、スロースタートフェーズに入り、m
in(cwnd, adwnd)個、この場合は1個の
データパケットを送信し(ステップ41)、確認応答パ
ケット(ACKパケット)の受信を待つ(ステップ4
2)。
【0006】ここで、一定時間内に受信ノードからのA
CKパケットが受信され(ステップ42:YES)、そ
の受信ACKパケットが後述する重複ACKパケットで
ない場合には(ステップ45:NO)、cwndがしき
い値ssthreshに達するまで(ステップ46:Y
ES)、cwndをACKパケットで受信確認されたパ
ケット数nだけ増やし(ステップ47)、送信終了では
ない場合には(ステップ49)、ステップ41へ戻って
後続パケットの送信を行う。したがって、次のパケット
送信時には、前回送信時よりn個多いパケットが送信さ
れる。この場合、最初に送信した1個のパケットが受信
確認された(n=1)ことから、1つ増やされて2つの
パケットが送信される。
【0007】以降、送信したパケットが受信ノードで正
常受信されたことを示す受信ノードからのACKパケッ
トを受信するごとに、次の送信可能量であるcwndが
閾値ssthreshになるまで、1、2、4‥と指数
関数的に増加していく。一方、cwndがssthre
shに達した場合には(ステップ46:NO)、輻輳回
避フェーズに入る。この輻輳回避フェーズでは、ACK
パケット受信ごとにcwndを、ACKパケットで受信
確認されたパケット数nに基づき、n/cwndだけ増
加させる(ステップ48)。
【0008】したがって、直前の送信パケット量である
cwndに対する全ての確認応答を受信すると、cwn
dは1パケットだけ増加することになり、スロースター
トフェーズと比較すると遥かに緩やかな増加となる。な
お、データパケット紛失事象には、確認応答が受信され
ず(ステップ42:NO)、時間監視がタイムアウトし
た時(ステップ43:YES)、または所定数(通常は
3)以上の重複ACKを受信した時(ステップ45:Y
ES)に、パケット紛失が発生したものと判断する。
【0009】ここでいう重複ACK受信とは、同一の受
信シーケンス番号を有するACKパケットを連続して複
数個受信することであり、最初のACKの他に所定数
(例えば3個)の重複したACKパケットを受信すると
データパケット紛失の発生とみなされる。このようにし
てデータパケット紛失と判断した時は、輻輳制御の各パ
ラメータを、ssthresh=min(cwnd,
adwnd)/2、cwnd=1に変更する(ステップ
44)。なお、パケット紛失検出後のcwnd値の別の
設定方法として、新cwnd=旧cwnd/2とする方
法がある(例えば、W.R.Stevens 著、TCP IllustratedV
ol.1 Chapter 21、Addison Wesley、1994など)。
【0010】一方、データパケットの再送方法として、
go−back−N再送と選択的再送がある。選択的再
送では、紛失パケットのみを再送するため、このための
情報として受信側が選択的応答(SACK)情報を送信
側に通知する。このSACK情報とは、受信側で非連続
受信(即ち、パケット紛失により)となったパケット全
てについて、受信できた区間を具体的に通知するもので
ある。
【0011】送信側では、このSACK情報を使用し
て、紛失パケットのみを再送する。特に、go−bac
k−N再送では紛失パケット以降を全て再送するので、
回線遅延時間が大きく、網内に滞留するパケット数が非
常に多くなる長距離高速回線や、パケット紛失率が高い
通信回線では、実効的スループットが大幅に低下する。
【0012】したがって、高速情報通信や移動通信が発
展しつつある現状において、150Mbpsなどの長距
離高速回線やパケット紛失率が高い無線回線で、選択的
再送は非常に有効である。なお、TCPで選択再送/選
択的応答情報の仕様がRFC2018として正式に規定
されたのは最近(1996年10月)であり、このため
TCPなどでの輻輳制御においては、選択再送/選択的
応答情報を考慮した方式となっていない。
【0013】
【発明が解決しようとする課題】しかしながら、このよ
うな従来の輻輳制御方法では、パケット紛失事象を検出
した場合、そのパケット紛失状況によらず一律に輻輳ウ
ィンドウサイズcwndを削減するという方法が適用さ
れるため、ネットワークの負荷状況を反映したcwnd
値が設定されず、ネットワークの能力を適切に利用する
ことができないという問題があった。通常、パケット紛
失状況はその時点でのネットワークの負荷状況に依存す
るものである。
【0014】例えば、図5(a)に示すように、データ
紛失量が小さい場合(8個のうち2個紛失)や、図5
(b)に示すように、データ紛失量が大きい場合(8個
のうち4個紛失)があり、それぞれのパケット紛失状況
ごとにデータ紛失量が異なる。また、図6(a)に示す
ように、離散的にデータパケットが紛失した場合や、図
6(b)に示すように、バースト的に連続するデータパ
ケットが紛失した場合があり、それぞれのパケット紛失
状況ごとにデータ紛失形態が異なる。
【0015】したがって、従来のように一律に輻輳ウィ
ンドウサイズcwndを削減する場合には、検出された
パケット紛失事象ごとに異なるそれぞれのパケット紛失
状況、すなわちネットワークの負荷状況を反映したcw
nd値が設定されないため、極端なcwnd削減に起因
するスループットの低下、あるいは不十分なcwnd削
減に起因するパケット紛失事象の再発生やこれに伴うス
ループットの低下などが発生し、ネットワーク資源を有
効利用できないという問題があった。本発明はこのよう
な課題を解決するためのものであり、パケット紛失事象
検出時に、ネットワークの負荷状況に応じて適切に送信
パケット数を制御できる輻輳制御方法を提供することを
目的としている。
【0016】
【課題を解決するための手段】このような目的を達成す
るために、本発明による輻輳制御方法は、請求項1とし
て、所定のコネクションを介して接続された送受信ノー
ド間で、レイヤ4プロトコルとして、受信ノードの受信
能力を示す受信告知ウィンドウサイズとネットワークの
転送能力を推定した輻輳ウィンドウサイズとのうち、い
ずれか小さい方の値を送信可能パケット数としてデータ
パケットを送信ノードから受信ノードへ転送する場合の
輻輳制御方法において、受信ノードでは、送信ノードか
ら送信された複数のデータパケットのうち非連続に受信
されたデータパケットに対する個々の受信確認を示す選
択的応答情報を格納して確認応答パケットを送信ノード
に転送し、パケット紛失発生時、送信ノードでは、受信
ノードからの確認応答パケットに格納されている選択的
応答情報から算出した紛失データ量または正常受信デー
タ量に基づいて、以降の輻輳ウィンドウサイズを削減す
るようにしたものである。したがって、パケット紛失発
生時、送信ノードにおいて、受信ノードからの確認応答
パケットに格納されている選択的応答情報から算出した
紛失データ量または正常受信データ量に基づいて、以降
の輻輳ウィンドウサイズが削減され、送信可能パケット
数が削減される。
【0017】また、請求項2として、請求項1記載の輻
輳制御方法において、送信ノードでは、受信ノードで受
信されなかった各区間の紛失データ量の総和を示す総紛
失データ量LostDTと、所定の削減係数kとから算
出される削減分LostDT×kだけ輻輳ウィンドウサ
イズを削減するようにしたものである。したがって、受
信ノードで受信されなかった各区間の紛失データ量の総
和を示す総紛失データ量LostDTに基づいて輻輳ウ
ィンドウサイズが削減される。また、請求項3として、
請求項1記載の輻輳制御方法において、送信ノードで
は、受信ノードで受信されなかった各区間の紛失データ
量の総和である総紛失データ量LostDTと、ACK
パケットで受信確認された先頭データパケットから選択
的応答情報で示される最終のデータパケットまでの未確
認データパケットを含む全送信データ量TotalDT
と、現行のウィンドウサイズcwndと、所定の削減係
数kとから、cwnd×(1−LostDT/Tota
lDT)×kにより新たな輻輳ウィンドウサイズを算出
するようにしたものである。したがって、総紛失データ
量LostDTと、全送信データ量TotalDTとの
比に基づいて輻輳ウィンドウサイズが削減される。
【0018】また、請求項4として、請求項1記載の輻
輳制御方法において、送信ノードでは、受信ノードで正
常受信された各区間の受信データ量の総和を示す全受信
データ量AckedDTと、確認応答パケットで受信確
認された先頭データパケットから選択的応答情報で示さ
れる最終のデータパケットまでの未確認データパケット
を含む全送信データ量TotalDTと、現行のウィン
ドウサイズcwndと、所定の削減係数kとから、cw
nd×AckedDT/TotalDT×kにより新た
な輻輳ウィンドウサイズを算出するようにしたものであ
る。したがって、全受信データ量AckedDTと全送
信データ量TotalDTとの比に基づいて新たな輻輳
ウィンドウサイズが算出される。
【0019】また、請求項5として、請求項2記載の輻
輳制御方法において、送信ノードでは、発生したパケッ
ト紛失がバースト的か否かを判断するしきい値を設け、
受信ノードで受信されなかった各区間のうち、その区間
の紛失データ量が前記しきい値以上となるバースト区間
が存在する場合には削減係数kとして第1の削減係数k
bを用い、バースト区間が存在しない場合には削減係数
kとして第1の削減係数kbより小さい第2の削減係数
ksを用いるようにしたものである。また、請求項6と
して、請求項3または4記載の輻輳制御方法において、
送信ノードでは、発生したパケット紛失がバースト的か
否かを判断するしきい値を設け、受信ノードで受信され
なかった各区間のうち、その区間の紛失データ量が前記
しきい値以上となるバースト区間が存在する場合には削
減係数kとして第1の削減係数kbを用い、バースト区
間が存在しない場合には削減係数kとして第1の削減係
数kbより大きい第2の削減係数ksを用いるようにし
たものである。したがって、受信ノードで受信されなか
った個々の区間のうち、その区間の紛失データ量がしき
い値以上となるバースト区間が存在する場合には、比較
的大きく輻輳ウィンドウサイズが削減され、バースト区
間が存在しない場合には比較的小さく輻輳ウィンドウサ
イズが削減される。
【0020】また、請求項7として、請求項1記載の輻
輳制御方法において、送信ノードでは、輻輳ウィンドウ
サイズを設定または削減後に用いる送信シーケンス番号
を開始送信シーケンス番号として保持しておき、受信ノ
ードからの選択的応答情報を含む確認応答パケットの受
信時に、その確認応答パケットで通知された受信シーケ
ンス番号であって、かつ受信ノードで正常受信されたデ
ータに後続して受信を期待するデータの送信シーケンス
番号を示す受信シーケンス番号と、保持しておいた開始
送信シーケンス番号とを比較し、開始送信シーケンス番
号が受信シーケンス番号より小さい場合にのみ、輻輳ウ
ィンドウサイズを削減するようにしたものである。した
がって、開始送信シーケンス番号が受信シーケンス番号
より小さい場合にのみ輻輳ウィンドウサイズが削減され
る。また、請求項8として、請求項1記載の輻輳制御方
法において、送信ノードでは、受信ノードからの確認応
答パケットに選択的応答情報が格納されている場合にパ
ケット紛失発生と判断するようにしたものである。した
がって、受信ノードからの確認応答パケットに選択的応
答情報が格納されているか否かに応じてパケット紛失発
生の有無が判断される。
【0021】
【発明の実施の形態】次に、本発明について図面を参照
して説明する。図1は本発明の一実施の形態である輻輳
制御方法によるデータ送信処理を示すフローチャート、
図2は一般的な通信システムのブロック図である。図2
において、送信ノード1および受信ノード2は、それぞ
れ通信網(ネットワーク)3に収容されており、通信網
3に所定のコネクションを設定し、そのコネクションを
介してデータ転送を行う。
【0022】送信ノード1および受信ノード2におい
て、アプリケーション処理部5は、上位のアプリケーシ
ョンを実行する処理部である。また、レイヤ4処理部6
は、コネクションの設定解放、フロー制御等に基づいた
データ送受信の処理を行う処理部、下位レイヤ処理部7
は、フレームの組立/分解などのレイヤ2の処理、およ
びルーティングなどのレイヤ3の処理を行う処理部であ
る。
【0023】レイヤ4処理部6で実行されるプロトコル
レイヤ4のフロー制御はウィンドウ方式とし、輻輳制御
用のパラメータとして、通信相手が受信可能として宣言
する受信ウィンドウサイズ(adwnd)の他に、輻輳
ウィンドウサイズ(cwnd)、 スロースタート閾値
(ssthresh)を有する。さらに、複数回のパケ
ット紛失事象の検出でcwndを必要以上に何度も削減
してまうことを防止することを目的として、開始送信シ
ーケンス番号情報(SNO)を有する。なお、送信シー
ケンス番号とは、各パケットに格納された個々のデータ
に順に付与されている一連の番号である。
【0024】送信可能なパケット数は、min(cwn
d, adwnd)であり、各パラメータの変動に伴い
通信中に変化していく。以下、A,Bのいずれか小さい
方を選択する関数をmin(A,B)と表す。また、受
信側でパケット紛失を検出した場合に、確認応答パケッ
ト(以下、ACKパケットという)に選択的応答情報
(以下、SACK情報という)を設定するように、コネ
クション設定時に送信側と受信側とでネゴシエーション
しておくものとする。
【0025】次に、図1を参照して、本発明の動作とし
て送信ノードにおける輻輳制御処理について説明する。
送信ノード1のレイヤ4処理部6は、アプリケーション
処理部5からの通信要求に基づいてコネクション設定を
行い、その設定完了に応じて図1に示すデータ送信処理
を開始する。
【0026】まず、輻輳制御用の各パラメータの初期値
として、ssthresh=adwnd、cwnd=1
パケット、SNO=送信シーケンス番号の初期値(開始
送信シーケンス番号)を設定する(ステップ10)。そ
して、スロースタートフェーズに入り、min(cwn
d, adwnd)個、この場合は1個のデータパケッ
トを送信し(ステップ11)、ACKパケットの受信を
待つ(ステップ12)。
【0027】この場合、受信ノード2においてACKパ
ケットを返送するタイミングは、例えば所定数のパケッ
トを受信するごとに返送するようにしてもよく、また送
信ノードから受信ノードに対してACKパケットの返送
を要求するようにしてもよく、各種方法にてACKパケ
ットの返送タイミングを決定可能である。なお、本発明
では、1つのACKパケットにより、複数のパケットに
ついての確認応答情報が返送される場合を前提としてい
る。
【0028】ここで、一定時間内に受信ノード2からの
ACKパケットが受信され(ステップ12:YES)、
その受信ACKパケットにSACK情報が含まれていな
い場合には(ステップ15:NO)、cwndがしきい
値ssthreshに達するまで(ステップ16:YE
S)、cwndをACKパケットで受信確認されたパケ
ット数nだけ増やし(ステップ17)、送信終了ではな
い場合には(ステップ19)、ステップ11へ戻って後
続パケットの送信を行う。
【0029】したがって、次のパケット送信時には、前
回送信時よりn個多いパケットが送信される。この場
合、最初に送信した1個のパケットが受信確認された
(n=1)ことから、1つ増やされて2つのパケットが
送信される。以降、送信したパケットが受信ノードで正
常受信されたことを示す受信ノードからのACKパケッ
トを受信するごとに、次の送信可能量であるcwndが
閾値ssthreshになるまで、1、2、4‥と指数
関数的に増加していく。
【0030】一方、cwndがssthreshに達し
た場合には(ステップ16:NO)、輻輳回避フェーズ
に入る。この輻輳回避フェーズでは、ACKパケット受
信ごとにcwndをACKパケットで受信確認されたパ
ケット数nに基づき、n/cwndだけ増加させる(ス
テップ18)。したがって、直前の送信パケット量であ
るcwndに対する全ての確認応答を受信すると、cw
ndは1パケットだけ増加することになり、スロースタ
ートフェーズと比較すると遥かに緩やかな増加となる。
【0031】なお、データパケット紛失事象では、確認
応答が受信されず(ステップ12:NO)、時間監視が
タイムアウトした時に(ステップ13:YES)、パケ
ット紛失が発生したものと判断する。この場合、輻輳制
御の各パラメータを、ssthresh=min(cw
nd, adwnd)/2、cwnd=1パケットに変
更する(ステップ14)。
【0032】一方、SACK情報を含むACKパケット
を受信した場合には(ステップ15:YES)、そのA
CKパケットに示された受信シーケンス番号が、開始送
信シーケンス番号SNOより大きいか否か判断し(ステ
ップ20)、受信シーケンス番号が開始送信シーケンス
番号SNO以下の場合(ステップ20:NO)、cwn
dの削減は行わない。なお、この受信シーケンス番号
は、受信ノード2で正常受信されたデータに後続するデ
ータであって、受信ノード2が次に受信を期待するデー
タの送信シーケンス番号を示している。また、受信シー
ケンス番号が開始送信シーケンス番号SNOより大きい
場合(ステップ20:YES)、cwndの削減処理を
行うとともに(ステップ21)、開始送信シーケンス番
号をSNOへ記憶する(ステップ22)。
【0033】なお、cwndの削減を行った時点で、送
信済みであるが応答が未確認のデータパケットについて
は、その後、パケット紛失事象を検出し、それに対して
cwndを削減すると不必要な過削減となってしまう。
本発明では、これを防止するために、cwndの削減を
行った時点で次に送信するデータであって、再送データ
ではなく新たな送信データの送信シーケンス番号をSN
Oへ記憶しておく。
【0034】cwndの削減処理は以下のように実施す
る。まず、予めSACK情報に基づいて、正常受信でき
なかったi番目の不連続区間ごとの紛失データ量(以
下、LostDiという)を算出しておくとともに、必
要に応じて、これらを総計して紛失パケットの総紛失デ
ータ量(以下、LostDTという)などを算出してお
くものとする。
【0035】まず、方法1は、削減係数kを設け、総紛
失データ量をk倍した値を用いてcwnd値を削減す
る。すなわち、 新cwnd=旧cwnd−LostDT×k により算出する。これにより、総紛失データ量が大きい
ほど、すなわちデータ紛失時のネットワーク負荷が大き
いほどcwndが大幅に削減され、ネットワーク負荷を
迅速に低減できるとともに、総紛失データ量が小さい場
合には、cwndがあまり削減されなくなり、ある程度
のスループットが維持される。
【0036】また、方法2は、ACKパケットで受信確
認された先頭のデータパケットからSACK情報で示さ
れる最終のデータパケットまでの未確認データパケット
を含む全送信データ量TotalDTを用いて、 新cwnd=旧cwnd×(1−LostDT/Tot
alDT)×k によりcwndを算出する。
【0037】これにより、受信されるべき全送信データ
量TotalDTに対する総紛失データ量LostDT
が大きいほどcwndが大幅に削減され、ネットワーク
負荷を迅速に低減できる。また、受信されるべき全送信
データ量に対する総紛失データ量が小さいほど、cwn
dがあまり削減されなくなり、データパケット紛失事象
発生時でも、ある程度のスループットが維持される。
【0038】また、方法3は、ACKパケットの受信シ
ーケンス番号から算出される連続して確認された受信デ
ータ量と、SACK情報で示される非連続な受信データ
量とを合計した全受信データ量(以下、AckedDT
という)、ACKパケットで受信確認された先頭のデー
タパケットからSACK情報で示される最終のデータパ
ケットまでの未確認データパケットを含む全送信データ
量TotalDTと、削減係数kとから、 新cwnd=旧cwnd×AckedDT/Total
DT×k により算出する。
【0039】これにより、受信されるべき全送信データ
量TotalDTに対する正常受信された全受信データ
量AckedDTが小さいほど、cwndが大幅に削減
され、ネットワーク負荷を迅速に低減できる。また、受
信されるべき全送信データ量に対する正常受信された全
受信データ量が大きいほどcwndがあまり削減されな
くなり、データパケット紛失事象発生時でも、ある程度
のスループットが維持される。
【0040】また、方法4は、パケット紛失がバースト
的か否かで、前述した方法1〜3で用いる削減係数を変
えるものである。このためパケット紛失がバースト的か
否かを判断する閾値BurstTHと、削減係数として
kb(第1の削減係数)とks(第2の削減係数)の2
つを設ける。データパケット紛失がバーストか否かは、
受信できなかった不連続区間ごとにLostDiとBu
rstTHとを比較して行う。
【0041】ここで、例えば、この方法4を方法1に適
用する場合には、LostDi≧BurstTHとなる
区間があればバースト的と判断して、削減係数kとして
kbを用い、 新cwnd=旧cwnd−LostDT×kb で算出する。一方、LostDi≧BurstTHとな
る区間がなければ非バーストと判断して、削減係数kと
してkbより小さいks(kb>ks)を用い、新cw
nd=旧cwnd−LostDT×ksで算出する。
【0042】また、方法2または3に適用する場合に
は、LostDi≧BurstTHとなる区間があれば
バースト的と判断して、削減係数kとしてkbを用い、
LostDi≧BurstTHとなる区間がなければ非
バーストと判断して、削減係数kとしてkbより大きい
ks(kb<ks)を用いる。これにより、前述の図6
に示したように、発生したデータパケット紛失が離散的
かバースト的かを適切に判断できる。また、バースト的
にデータパケット紛失が発生した場合にはcwndが大
幅に削減され、ネットワーク負荷を迅速に低減できると
ともに、離散的にデータパケットが紛失した場合には、
cwndがあまり削減されなくなり、データパケット紛
失事象発生時でも、ある程度のスループットが維持され
る。
【0043】なお、以上のcwnd削減処理で用いた各
データ量は、例えば次のように算出される。図3はデー
タパケット紛失発生時の送信データシーケンスを示す説
明図であり、(a)はシーケンス図、(b)はACKパ
ケットの構成を示している。
【0044】ここでは、送信ノード1からデータパケッ
トを100バイト単位で受信ノード2へ送信する場合を
例に説明する。まず、送信シーケンス番号0〜99のデ
ータが格納された1つのデータパケットが送信され、以
後、送信シーケンス番号100〜199,200〜29
9,300〜399,400〜499,500〜59
9,600〜699,700〜799のデータが格納さ
れた7つのデータパケットが順に送信される。
【0045】受信ノード2では、受信したパケットに格
納されているデータの送信シーケンス番号を管理してお
り、この場合には、送信シーケンス番号200〜29
9,500〜599が紛失したことから、送信シーケン
ス番号799のデータパケット受信後、図3(b)に示
す内容のACKパケットを送信ノード1へ返送する。図
3(b)において、コネクション識別情報31は、送信
ノード1と受信ノード2との間に設定されたコネクショ
ンを示す識別情報である。
【0046】また、受信シーケンス番号32は、先頭パ
ケットから最初に正常受信できなかったデータパケット
の送信シーケンス番号を示しており、この場合には、最
初に紛失したパケットの送信シーケンス番号200が設
定されている。さらに、SACK情報33として、紛失
したデータパケットに挟まれるようにして正常受信でき
た各データパケットの区間、すなわち選択受信済み区間
を示す送信シーケンス番号が、各選択受信済み区間ごと
に設定されている。
【0047】ここでは、正常受信されたデータパケット
の各送信シーケンス番号のうち、200〜299、およ
び500〜599が受信検出されていないことから、選
択受信済み区間aとして、その先頭と最後尾+1の送信
シーケンス番号300,500が設定され、選択受信済
み区間bとして、その先頭と最後尾+1の送信シーケン
ス番号600,800が設定されている。したがって、
この例では、正常受信できなかった各不連続区間A,B
の紛失データ量LostDiとして、LostD(A)
=100,LostD(B)=100が、送信ノード1
で算出される。
【0048】なお、必要に応じて、これら不連続区間
A,Bの紛失データ量LostD(A),LostD
(B)を総計することにより、紛失パケットの総データ
量LostDT=200が算出される。また、ACKパ
ケットで受信確認された先頭のデータパケットからSA
CK情報で示される最終データパケットまでの未確認デ
ータパケットを含む全送信データ量TotalDTは、
SACK情報で示される最終データパケットの送信シー
ケンス番号とACKパケットを受信した時点の開始送信
シーケンス番号情報SNOとから、この例では、Tot
alDT=800が算出される。
【0049】また、連続して確認された受信データ量
は、ACKパケットの受信シーケンス番号とACKパケ
ットを受信した時点の開始送信シーケンス番号情報SN
Oとから、この例では200−0=200と算出され、
SACK情報で示される非連続な受信データ量は、この
例では200+200=400と算出される。したがっ
て、全受信データ量AckedDTは、これらの合計か
ら、AckedDT=600が算出される。
【0050】このように、受信ノードから通知されたS
ACK情報に基づいて、受信ノードにおいて正常受信で
きなかった紛失データ量を算出し、この紛失データ量に
基づいてパケット紛失検出直後の送信可能パケット量
(cwnd)の削減を行うようにしたので、従来のよう
に、そのパケット紛失状況によらず一律に輻輳ウィンド
ウサイズcwndを削減する場合と比較して、ネットワ
ークの負荷状況に応じて適切に送信パケット数を制御で
き、ネットワーク資源を有効利用できる。
【0051】また、cwndを初期設定あるいは削減し
た時点での、再送データ以外の新たな送信データの送信
シーケンス番号を開始送信シーケンス番号情報SNOと
して記憶しておき、受信ノードからのSACK情報とと
もに通知された受信シーケンス番号、すなわち先頭パケ
ットから最初に正常受信できなかったデータパケットの
送信シーケンス番号を示す受信シーケンス番号が、SN
Oより小さい場合には、cwnd削減を行わないように
したので、複数回のパケット紛失事象の検出でcwnd
を必要以上に何度も削減してまうことを防止できる。
【0052】
【発明の効果】以上説明したように、本発明は、請求項
1として、受信ノードでは、送信ノードから送信された
複数のデータパケットのうち非連続に受信されたデータ
パケットに対する個々の受信確認を示す選択的応答情報
を格納して確認応答パケットを送信ノードに転送し、パ
ケット紛失検出時、送信ノードでは、受信ノードからの
確認応答パケットに格納されている選択的応答情報から
算出した紛失データ量または正常受信データ量に基づい
て、以降の輻輳ウィンドウサイズを削減するようにした
ので、従来のように、そのパケット紛失状況によらず一
律に輻輳ウィンドウサイズcwndを削減する場合と比
較して、実際のネットワークの負荷状況に応じて適切に
送信パケット数を制御でき、ネットワーク資源を有効利
用できる。
【0053】また、請求項2として、請求項1記載の輻
輳制御方法において、送信ノードでは、受信ノードで受
信されなかった各区間の紛失データ量の総和を示す総紛
失データ量LostDTと、所定の削減係数kとから算
出される削減分LostDT×kだけ輻輳ウィンドウサ
イズを削減するようにしたので、総紛失データ量が大き
いほど、すなわちデータ総紛失時のネットワーク負荷が
大きいほど輻輳ウィンドウサイズが大幅に削減され、ネ
ットワーク負荷を迅速に低減できるとともに、総紛失デ
ータ量が小さい場合には、輻輳ウィンドウサイズがあま
り削減されなくなり、ある程度のスループットが維持さ
れる。
【0054】また、請求項3として、請求項1記載の輻
輳制御方法において、送信ノードでは、受信ノードで受
信されなかった各区間の紛失データ量の総和である総紛
失データ量LostDTと、ACKパケットで受信確認
された先頭データパケットから選択的応答情報で示され
る最終のデータパケットまでの未確認データパケットを
含む全送信データ量TotalDTと、現行のウィンド
ウサイズcwndと、所定の削減係数kとから、cwn
d×(1−LostDT/TotalDT)×kにより
新たな輻輳ウィンドウサイズを算出するようにしたの
で、受信されるべき全送信データ量TotalDTに対
する総紛失データ量LostDTが大きいほど輻輳ウィ
ンドウサイズが大幅に削減され、ネットワーク負荷を迅
速に低減できる。また、受信されるべき全送信データ量
に対する総紛失データ量が小さいほど、輻輳ウィンドウ
サイズがあまり削減されなくなり、データパケット紛失
事象発生時でも、ある程度のスループットが維持され
る。
【0055】また、請求項4として、請求項1記載の輻
輳制御方法において、送信ノードでは、受信ノードで正
常受信された各区間の受信データ量の総和を示す全受信
データ量AckedDTと、確認応答パケットで受信確
認された先頭データパケットから選択的応答情報で示さ
れる最終のデータパケットまでの未確認データパケット
を含む全送信データ量TotalDTと、現行のウィン
ドウサイズcwndと、所定の削減係数kとから、cw
nd×AckedDT/TotalDT×kにより新た
な輻輳ウィンドウサイズを算出するようにしたので、全
送信データ量TotalDTに対する全受信データ量A
ckedDTが小さいほど、輻輳ウィンドウサイズが大
幅に削減され、ネットワーク負荷を迅速に低減できる。
また、受信されるべき全送信データ量に対する正常受信
されたデータ量が大きいほど輻輳ウィンドウサイズがあ
まり削減されなくなり、データパケット紛失事象発生時
でも、ある程度のスループットが維持される。
【0056】また、請求項5として、請求項2記載の輻
輳制御方法において、送信ノードでは、発生したパケッ
ト紛失がバースト的か否かを判断するしきい値を設け、
受信ノードで受信されなかった各区間のうち、その区間
の紛失データ量が前記しきい値以上となるバースト区間
が存在する場合には削減係数kとして第1の削減係数k
bを用い、バースト区間が存在しない場合には削減係数
として第1の削減係数kbより小さい第2の削減係数k
sを用い、また、請求項6として、請求項3または4記
載の輻輳制御方法において、第1の削減係数kbより大
きい第2の削減係数ksを用いるようにしたものであ
る。したがって、発生したデータパケット紛失が離散的
かバースト的かを適切に判断でき、また、バースト的に
データパケット紛失が発生した場合には輻輳ウィンドウ
サイズが大幅に削減され、ネットワーク負荷を迅速に低
減できるとともに、離散的にデータパケットが紛失した
場合には、輻輳ウィンドウサイズがあまり削減されなく
なり、データパケット紛失事象発生時でも、ある程度の
スループットが維持される。
【0057】また、請求項7として、請求項1記載の輻
輳制御方法において、送信ノードでは、輻輳ウィンドウ
サイズを設定または削減後に用いる送信シーケンス番号
を開始送信シーケンス番号として保持しておき、受信ノ
ードからの選択的応答情報を含む確認応答パケットの受
信時に、その確認応答パケットで通知された受信シーケ
ンス番号であって、かつ受信ノードで正常受信されたデ
ータに後続して受信を期待するデータの送信シーケンス
番号を示す受信シーケンス番号と、保持しておいた開始
送信シーケンス番号とを比較し、開始送信シーケンス番
号が受信シーケンス番号より小さい場合にのみ、輻輳ウ
ィンドウサイズを削減するようにしたので、複数回のパ
ケット紛失事象の検出で輻輳ウィンドウサイズを必要以
上に何度も削減してまうことを防止できる。また、請求
項8として、請求項1記載の輻輳制御方法において、送
信ノードでは、受信ノードからの確認応答パケットに選
択的応答情報が格納されている場合にパケット紛失発生
と判断するようにしたので、比較的簡単な処理で正確に
パケット紛失発生を判断できる。
【図面の簡単な説明】
【図1】 本発明の一実施の形態である輻輳制御方法に
よるデータ送信処理を示すフローチャート図である。
【図2】 一般的な通信システムを示すブロック図であ
る。
【図3】 データパケット紛失発生時の送信データシー
ケンスを示す説明図である。
【図4】 従来の輻輳制御方法によるデータ送信処理を
示すフローチャート図である。
【図5】 データ紛失量の違いを示す説明図である。
【図6】 データ紛失形態の違いを示す説明図である。
【符号の説明】
1…送信ノード、2…受信ノード、3…通信網(ネット
ワーク)、5…アプリケーション処理部、6…レイヤ4
処理部、7…下位レイヤ処理部、31…コネクション識
別情報、32…受信シーケンス番号、33…SACK情
報(選択的応答情報)。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平1−286547(JP,A) 特開 平5−236058(JP,A) 特開 平9−284338(JP,A) 1996年信学総大B−799 信学技報IN97−34 信学技報SSE97−114 情報処理学会第55回(平成9年後期) 全国大会、3−857 (58)調査した分野(Int.Cl.7,DB名) H04L 12/56

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】 所定のコネクションを介して接続された
    送受信ノード間で、レイヤ4プロトコルとして、受信ノ
    ードの受信能力を示す受信告知ウィンドウサイズとネッ
    トワークの転送能力を推定した輻輳ウィンドウサイズと
    のうち、いずれか小さい方の値を送信可能パケット数と
    してデータパケットを送信ノードから受信ノードへ転送
    する場合の輻輳制御方法において、 受信ノードは、 送信ノードから送信された複数のデータパケットのうち
    非連続に受信されたデータパケットに対する個々の受信
    確認を示す選択的応答情報を格納して確認応答パケット
    を送信ノードに転送し、 送信ノードは、 パケット紛失発生時には、受信ノードからの確認応答パ
    ケットに格納されている選択的応答情報から算出した紛
    失データ量または正常受信データ量に基づいて、以降の
    輻輳ウィンドウサイズを削減することを特徴とする輻輳
    制御方法。
  2. 【請求項2】 請求項1記載の輻輳制御方法において、 送信ノードは、 受信ノードで受信されなかった各区間の紛失データ量の
    総和を示す総紛失データ量LostDTと、所定の削減
    係数kとから算出される削減分LostDT×kだけ輻
    輳ウィンドウサイズを削減することを特徴とする輻輳制
    御方法。
  3. 【請求項3】 請求項1記載の輻輳制御方法において、 送信ノードは、 受信ノードで受信されなかった各区間の紛失データ量の
    総和である総紛失データ量LostDTと、ACKパケ
    ットで受信確認された先頭データパケットから選択的応
    答情報で示される最終のデータパケットまでの未確認デ
    ータパケットを含む全送信データ量TotalDTと、
    現行のウィンドウサイズcwndと、所定の削減係数k
    とから、cwnd×(1−LostDT/TotalD
    T)×kにより新たな輻輳ウィンドウサイズを算出する
    ことを特徴とする輻輳制御方法。
  4. 【請求項4】 請求項1記載の輻輳制御方法において、 送信ノードは、 受信ノードで正常受信された各区間の受信データ量の総
    和を示す全受信データ量AckedDTと、確認応答パ
    ケットで受信確認された先頭データパケットから選択的
    応答情報で示される最終のデータパケットまでの未確認
    データパケットを含む全送信データ量TotalDT
    と、現行のウィンドウサイズcwndと、所定の削減係
    数kとから、cwnd×AckedDT/TotalD
    T×kにより新たな輻輳ウィンドウサイズを算出するこ
    とを特徴とする輻輳制御方法。
  5. 【請求項5】 請求項2記載の輻輳制御方法において、 送信ノードは、 発生したパケット紛失がバースト的か否かを判断するし
    きい値を設け、 受信ノードで受信されなかった各区間のうち、その区間
    の紛失データ量が前記しきい値以上となるバースト区間
    が存在する場合には削減係数kとして第1の削減係数k
    bを用い、バースト区間が存在しない場合には削減係数
    kとして第1の削減係数kbより小さい第2の削減係数
    ksを用いることを特徴とする輻輳制御方法。
  6. 【請求項6】 請求項3または4記載の輻輳制御方法に
    おいて、 送信ノードは、 発生したパケット紛失がバースト的か否かを判断するし
    きい値を設け、 受信ノードで受信されなかった各区間のうち、その区間
    の紛失データ量が前記しきい値以上となるバースト区間
    が存在する場合には削減係数kとして第1の削減係数k
    bを用い、バースト区間が存在しない場合には削減係数
    kとして第1の削減係数kbより大きい第2の削減係数
    ksを用いることを特徴とする輻輳制御方法。
  7. 【請求項7】 請求項1記載の輻輳制御方法において、 送信ノードは、 輻輳ウィンドウサイズを設定または削減後に用いる送信
    シーケンス番号を開始送信シーケンス番号として保持し
    ておき、 受信ノードからの選択的応答情報を含む確認応答パケッ
    トの受信時に、その確認応答パケットで通知された受信
    シーケンス番号であって、かつ受信ノードで正常受信さ
    れたデータに後続して受信を期待するデータの送信シー
    ケンス番号を示す受信シーケンス番号と、保持しておい
    た開始送信シーケンス番号とを比較し、開始送信シーケ
    ンス番号が受信シーケンス番号より小さい場合にのみ、
    輻輳ウィンドウサイズを削減することを特徴とする輻輳
    制御方法。
  8. 【請求項8】 請求項1記載の輻輳制御方法において、 送信ノードは、 受信ノードからの確認応答パケットに選択的応答情報が
    格納されている場合にパケット紛失発生と判断すること
    を特徴とする輻輳制御方法。
JP5321597A 1997-03-07 1997-03-07 輻輳制御方法 Expired - Lifetime JP3000546B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5321597A JP3000546B2 (ja) 1997-03-07 1997-03-07 輻輳制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5321597A JP3000546B2 (ja) 1997-03-07 1997-03-07 輻輳制御方法

Publications (2)

Publication Number Publication Date
JPH10257092A JPH10257092A (ja) 1998-09-25
JP3000546B2 true JP3000546B2 (ja) 2000-01-17

Family

ID=12936618

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5321597A Expired - Lifetime JP3000546B2 (ja) 1997-03-07 1997-03-07 輻輳制御方法

Country Status (1)

Country Link
JP (1) JP3000546B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1018821A1 (en) * 1999-01-08 2000-07-12 TELEFONAKTIEBOLAGET L M ERICSSON (publ) Communication device and method
SE516871C2 (sv) * 1999-06-23 2002-03-12 Teracom Ab Metod för flödesstyrning i ett datakommunikationsnät
CN102484609B (zh) * 2009-01-16 2015-04-15 主线网络控股有限公司 在具有高延时及封包遗失率的网络中使用传输控制协议来最大化带宽利用率
JP5625748B2 (ja) * 2010-10-28 2014-11-19 ソニー株式会社 通信装置、通信システム、プログラム及び通信方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
1996年信学総大B−799
信学技報IN97−34
信学技報SSE97−114
情報処理学会第55回(平成9年後期)全国大会、3−857

Also Published As

Publication number Publication date
JPH10257092A (ja) 1998-09-25

Similar Documents

Publication Publication Date Title
US7277390B2 (en) TCP processing apparatus of base transceiver subsystem in wired/wireless integrated network and method thereof
EP1142226B1 (en) Communication device and method
DE60307032T2 (de) Steuerungs-Verfahren und -Vorrichtung zur Datenübertragung
US7460472B2 (en) System and method for transmitting information in a communication network
EP1251661B1 (en) Data flow control method
US20020122385A1 (en) Data throughput over lossy communication links
US6487689B1 (en) Receiver initiated recovery algorithm (RIRA) for the layer 2 tunneling protocol (L2TP)
EP1371192B1 (en) Method and device for improving a data throughput
CA2387289C (en) Packet communication method and proposal node
CN101369877B (zh) 无线传输控制协议处理方法和设备
JP2004297742A (ja) 通信装置、通信制御方法及びプログラム
JP2002135357A (ja) 通信システムにおけるデータ流れの制御方法
Wong et al. Improving end-to-end performance of TCP using link-layer retransmissions over mobile internetworks
JP3003095B1 (ja) フロー制御方法
KR20040027176A (ko) 무선 환경에서의 혼잡제어방법 및 기록매체
JP3000546B2 (ja) 輻輳制御方法
US20080285447A1 (en) Session Relaying Apparatus, Session Relay Method, and Session Relay Program
JP3163479B2 (ja) 帯域制御方法
JP3527111B2 (ja) データ転送制御方法
EP1505759B1 (en) Method and device for transmitting/receiving data using acknowledged transport layer protocols
JP2893398B1 (ja) 輻輳制御方法
JP3158357B2 (ja) 再送制御方法
JP2984910B2 (ja) データフロー制御方法
KR100913897B1 (ko) 재전송 타임아웃 수를 줄이기 위한 전송 제어 프로토콜혼잡제어방법
JP2003224547A (ja) フロー制御方法