JP3727941B2 - 伝送制御方法、通信装置、通信システム及びプログラム - Google Patents

伝送制御方法、通信装置、通信システム及びプログラム Download PDF

Info

Publication number
JP3727941B2
JP3727941B2 JP2003430448A JP2003430448A JP3727941B2 JP 3727941 B2 JP3727941 B2 JP 3727941B2 JP 2003430448 A JP2003430448 A JP 2003430448A JP 2003430448 A JP2003430448 A JP 2003430448A JP 3727941 B2 JP3727941 B2 JP 3727941B2
Authority
JP
Japan
Prior art keywords
probability distribution
original data
distribution information
data blocks
acknowledgment
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
JP2003430448A
Other languages
English (en)
Other versions
JP2004222270A (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.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
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 NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2003430448A priority Critical patent/JP3727941B2/ja
Publication of JP2004222270A publication Critical patent/JP2004222270A/ja
Application granted granted Critical
Publication of JP3727941B2 publication Critical patent/JP3727941B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Detection And Prevention Of Errors In Transmission (AREA)
  • Communication Control (AREA)

Description

本発明は、通信網を介して行われるデータ通信における再送制御のための技術に関する。
近年、TCP(Transmission Control Protocol)に従ってデータの送受信を行う装置が一般的に普及している。TCPは、OSI参照モデルにおけるトランスポート層の通信プロトコルの代表的なものとして周知である。このTCPでは、上位層から渡されたデータストリームをセグメントに分割し、通信相手である受信装置に送信する。TCPは、分割されたデータのセグメントを順番どおり確実に受信装置まで送り届けるための機能を提供している。具体的には、TCPでは、各データセグメントにデータの順番を示す番号(以下、シーケンス番号という)を付与する。送信装置は、データセグメントを送信する際にはこのシーケンス番号をヘッダにセットして送信する。また、送信装置は各データセグメントを送信するとき、これと同時にタイマをセットする。そして、このタイマがタイムアウト値に到達するまでに確認応答を受信しなかった場合には、送信装置はデータセグメントが受信装置まで到達することなく喪失したと一応の判断を行い、当該喪失したとみなされたデータセグメントを同受信装置に対して再送するようになっている。ここで、タイムアウト値は、データセグメントを送信してから、当該データセグメントに対する確認応答を受け取ると期待する時間(データセグメントの予測往復時間)に基づいて定められる。
送信装置において、受信した確認応答がどのデータセグメントに対する確認応答であるかは、確認応答のヘッダに含まれる確認応答番号を参照して判断される。以下、この判断について説明する。まず、受信装置がデータセグメントを受信し、これに対する確認応答を送信する際には、受信装置が次に受信を期待するシーケンス番号(以下、確認応答番号という)を確認応答のヘッダにセットする。例えば、500から始まり、1000、1500・・・と続くシーケンス番号が用いられる場合に、シーケンス番号500を持つデータセグメントを受信したときに送信装置に送信する確認応答番号は1000となる。送信装置は、このような確認応答番号を有する確認応答を受信することにより、送信装置が送信したデータセグメントが無事受信装置によって受信されたと判定し、後続のデータセグメントを送信する。
尚、送信装置が確認応答番号1000を有する確認応答を受信する場合とは、送信装置がシーケンス番号1000を有するデータセグメントを未送信であるか、送信済みであってもそのデータセグメントが受信装置に届いていない場合である。この確認応答番号は、受信装置が、シーケンス番号1000を有するデータセグメントを受信するまでは常に1000となる。例えば、シーケンス番号1000を有するデータセグメントが喪失されたなどの理由により、その後続セグメントであるシーケンス番号1500を有するデータセグメントの方が先に受信装置に到着している場合であっても、受信装置がシーケンス番号1000を有するデータセグメントを受信するまでは、受信装置から送信される確認応答の確認応答番号には1000がセットされる。つまり、確認応答番号には、受信装置が未だ受信していないデータセグメントの最も若いセグメントのシーケンス番号が常にセットされる。
以上説明したデータセグメントの伝送において、各データセグメントを確実に送信するためには、ひとつのデータセグメントを送信した後に、それに対する確認応答を受信してから次のデータセグメントを送信する方式を採用するのが好ましい。しかし、この方式は確実ではあるがデータの伝送効率が悪くなってしまう。伝送効率を高めるため、TCPでは、ウィンドウによって定められる数のデータセグメントを一度に送信する方式を採用している。ウィンドウとは、確認応答を受信する前に受信装置に対して送信することが許されているデータのバイト数、つまりデータセグメントの数である。このウィンドウのサイズは、受信装置におけるバッファの空き容量を超えない範囲で送信装置によって定められる。送信装置が送信済みのデータセグメントに対して確認応答を受信すると、ウィンドウはその時に確認応答を受信したデータセグメントの数だけスライドし、ウィンドウがスライドした数だけ後続のデータセグメントが送信される。これが、「スライディングウィンドウ方式」である。このスライディングウィンドウ方式では、ウィンドウのサイズを制御することによりデータの流量を制御することができる。
ところで、このスライディングウィンドウ方式に従って複数のデータセグメントが受信装置に対して送信された後、送信装置と受信装置間の通信路が輻輳状態になるなどして、通信が停止状態となることがある。特に、通信路が無線区間を含むような場合には、電波環境が悪化する可能性が高い。このような状況下で送信装置がデータセグメントを送信しても、当該データセグメントは受信装置へ届かず中途で喪失してしまうか、通信網の通信状態が復元されるまで通信網のどこかのノードに一時的に保存されることになる。その後、無線環境が改善したりして通信が再開されると、網内に一時的に保存されていたデータセグメントが遅延した後に受信装置に届く場合がある。
ここで、通信路の状態が悪化している時間が長い場合には次のような事態が発生する。まず、送信装置では、データセグメント送信後、タイムアウト発生前に確認応答が受信されない場合には、送信済みであり且つ確認応答を未受信であるデータセグメントの先頭セグメントが再送される。その結果、受信装置には、網内に滞留していたデータセグメント(以下、オリジナルデータセグメントという)と、再送されたデータセグメント(以下、再送データセグメントという)との両方が届くことになる。そして、受信装置は、オリジナルデータセグメントを受信したときに、これに対する確認応答を送信し、再送データセグメントを受信したときに、これに対する確認応答を送信する。
このオリジナルデータセグメントに対する確認応答と再送データセグメントに対する確認応答は、通常の場合、同一の確認応答番号を有する。このため、送信装置がひとつめの確認応答を受信した時点では、当該確認応答がオリジナルデータセグメントに対するものなのか又は再送データセグメントに対するものなのかを判別することができない。このような場合、送信装置は、再送データセグメント送信後最初に確認応答を受信すると、当該確認応答は再送データセグメントに対する確認応答であるとみなし、オリジナルデータセグメントは受信装置に届かなかったものと判断する。以下、事例を挙げ、このような判断が行われる理由について詳述する。
図9は、従来のサーバ装置10'(送信装置)とクライアント装置50(受信装置)との間でパケット通信を行う場合の一例を示すシーケンスチャートである。尚、同図において、サーバ装置10'における各矢印の始点の右側に示される4桁の番号は、サーバ装置10'からパケット通信により送信されるデータセグメントのシーケンス番号である。また、クライアント装置50における各矢印の始点の左側に示される4桁の番号は、クライアント装置50から送信される確認応答に含まれる確認応答番号である。ここでは、初期ウィンドウサイズは「3」であると仮定する。つまり、確認応答を受信する前に3つのデータセグメントを送信可能である。
図9において、サーバ装置10'からクライアント装置50へシーケンス番号0、1000、2000を有するそれぞれのオリジナルデータセグメントS1,S2,S3が送信される。この際、サーバ装置10'ではタイマがセットされる。
図示の例では、網内の通信環境の悪化により、当該オリジナルデータセグメントS1、S2、S3は、クライアント装置50により遅延して順次受信される。クライアント装置50は、オリジナルデータセグメントS1を受信すると確認応答番号1000を有する確認応答R1が送信される。同様に、クライアント装置50は、オリジナルデータセグメントS2を受信すると確認応答番号2000を有する確認応答R2を送信し、オリジナルデータセグメントS3を受信すると確認応答番号3000を有する確認応答R3を送信する。
図9に示す例において、サーバ装置10'では、タイマによって測定される経過時間がタイムアウト値に到達しても確認応答が受信されない。このため、サーバ装置10'では、タイムアウトとなった時点で、オリジナルデータセグメントS1はクライアント装置50に受信されなかったと判定されて、シーケンス番号0を有するデータセグメント(再送データセグメントS′1)が再送される。この時、再送タイムアウトの発生によりウィンドウサイズが最小値に縮小されるため、1データセグメントのみが再送されている。
その後、サーバ装置10'では、確認応答番号1000を有する確認応答R1が受信されるが、上述の事情で当該確認応答R1がオリジナルデータセグメントS1に対応するものなのか又は再送データセグメントS′1に対応するものなのかを判定することができない。その結果、再送データセグメントS′1に対応するものであるとみなされて、シーケンス番号1000を有するデータセグメント(再送データセグメントS′2)が送信される。また、この時、確認応答R1の受信によりウィンドウサイズが1データセグメント分増加するので、シーケンス番号2000を有するデータセグメント(再送データセグメントS′3)も引き続き送信される。
次いで、サーバ装置10'では、クライアント装置50から送信された確認応答番号2000を有する確認応答R2が受信され、その結果、シーケンス番号3000を有するデータセグメント(オリジナルデータセグメントS4)およびそれ以降のデータセグメントが順次送信される。
図示の例では、オリジナルデータセグメントS2とS3が実際はクライアント装置50に無事受信されているにもかかわらず、再送されている(再送データセグメントS'2およびS'3)。すなわち、データセグメントS2とS3はいずれも2回ずつクライアント装置50に受信されているので、結果的に無駄なデータセグメントの再送が行われてしまったと云える。また、図9からも明らかなように、再送データセグメントS'2およびS'3に対する確認応答R'2およびR'3が送られるので、合計で4つのデータセグメントの再送が結果的には無駄であった。
データセグメント再送後最初の確認応答がオリジナルデータセグメントに対するものなのか又は再送データセグメントに対するものなのかを判別することができない場合に、仮に、オリジナルデータセグメントに対するものであると判断すると、このような無駄な再送は行われない。
しかし、このような判断をすると、実際は再送データセグメントに対する確認応答であるのにオリジナルデータセグメントに対する確認応答であるとみなしてしまう場合が生じる。この場合、データセグメントの並びの後方にウィンドウがスライドされ、後続のオリジナルデータセグメントが送信される。このようなことが繰り返し発生すると、サーバ装置10'から送信され、クライアント装置50に到着していないデータセグメントの数が累増するおそれがある。
このような事態に陥るリスクを避けるため、確認応答がオリジナルデータセグメントに対するものなのか又は再送データセグメントに対するものなのかを判別することができない場合に、オリジナルデータセグメントに対するものであると判断することにしているのである。
しかし、このような判断手法を採った場合、データセグメントの無駄な再送が行われるのを回避することができない。
このような問題を解決する技術が非特許文献1及び非特許文献2に記載されている。非特許文献1には、タイムスタンプオプション(RFC 1323)を利用することにより、確認応答がオリジナルデータセグメントに対するものか又は再送データセグメントに対するものかについての判別を正確に行うことを可能とさせる技術が記載されている。
また、非特許文献2には、有線パケット通信網を介するパケット通信において、統計情報を用いて、確認応答がオリジナルデータセグメントに対するものか又は再送データセグメントに対するものかを推定する技術が記載されている。
この文献では、送信装置と受信装置との間の通信コネクションが確立されているときにデータセグメントを送信してから確認応答が届くまでの時間を実測して得られるラウンドトリップタイムのうち最小のラウンドトリップタイムの1/2を閾値として上記の推定を行うことが提案されている。つまり、再送データセグメントを送信してからひとつめの確認応答を受信するまでの経過時間が閾値以上の場合(又は閾値を超過した場合)には再送データセグメントに対する確認応答とみなし、閾値未満の場合(又は閾値以下の場合)にはオリジナルデータセグメントに対する確認応答とみなす。
最小のラウンドトリップタイムの1/2を閾値とすることは、以下に列記する事情に基づいて提案されている。
[事情1] 統計をとったところ、再送データセグメントを送信してから最小のラウンドトリップタイムの1/2が経過するまでの期間、3/4が経過するまでの期間、及び1/1が経過するまでの期間内にオリジナルデータセグメントに対する確認応答を受信する確率に大差はないことが分かった。
[事情2] 統計をとったところ、再送データセグメントを送信してから最小のラウンドトリップタイムの1/2が経過した辺りから再送データセグメントに対する確認応答を受信する確率が急激に増加することが分かった。
アール・ルドウィグ、外1名 (R. Ludwig, et. al),"TCPにおけるアイフル検知アルゴリズム"("The Eifel Detection Algorithm for TCP" <draft-ietf-tsvwg-tcp-eifel-alg-04.txt>),[online],2002年7月24日,インターネット<URL:http://www.watersprings.org/pub/id/draft−ietf−tsvwg−tcp−eifel−alg−04.txt> マーク・アルマン、外1名 (Mark Allman, et. al),"エンドトゥエンドのネットワークパス特性の推測について」("On Estimating End-To-End Network Path Properties"),ACM SIGCOMM '99,1999年10月,第29巻,第4号, p.263−274,(2.8節)
しかしながら、非特許文献1の技術においては、通信環境が良好であっても、送信装置においてはオリジナルデータセグメントに対してタイムスタンプ情報が付加され、受信装置においては確認応答に対してタイムスタンプ情報が付加される。つまり、どちらのデータセグメントについてもその情報量が増加する。したがって、この技術を、通信量に応じて通信料金が変化する従量制課金を前提としている移動パケット通信網を介したパケット通信に適用した場合、通信料の上昇を招いてしまう。データの再送が必要となるケースが少ない良好な通信環境においては、これは不要な通信量の上昇である。また、言うまでもなく、通信料の上昇は受信装置の使用者や送信装置の使用者の望むところではない。
代わりに、当該技術を応用して、データセグメントに対して情報を付加するのではなく、通信時に使用されるTCPヘッダ内の予約ビットに情報を設定する方法も考えられる。しかし、このような方法を用いる場合、既存の通信システムでは対応できず、従って、送信装置及び受信装置に対して、当該方法を用いるための大幅な設計変更が必要となってしまう。
また、非特許文献2の技術を、移動通信網を介する移動通信環境のように無線区間でのデータセグメントの遅延が非常に大きい通信環境に用いても、最適な判別結果を得ることはできない。
本発明は、以上説明した事情に鑑みてなされたものであり、送信装置に受信される確認応答がオリジナルデータセグメントに対するのものであるか又は再送データセグメントに対するものであるのかを適切に判別することができる技術を提供することを目的としている。この技術によれば、データセグメントの情報量を増加させることなく、且つ受信装置に対する設計変更を一切必要とせず、送信装置に対する軽微な設計変更で済む。
上記課題を解決するため、本発明は、送信装置から受信装置に対して複数のオリジナルデータブロックを順次送信する送信過程と、 前記受信装置に対して送信された複数のオリジナルデータブロックのうち、前記受信装置から確認応答信号を受信していないデータブロックを再送するとともに、計時手段を起動し、当該再送データブロックを送信してからの経過時間の測定を開始する過程と、前記受信装置から確認応答信号を受信したとき、前記計時手段により測定された経過時間を取得する取得過程と、前記取得過程において取得された経過時間の値と、過去のデータブロックのラウンドトリップタイムの出現確率を示す第1の確率分布情報とに基づいて、前記確認応答信号が前記複数のオリジナルデータブロックの1に対する確認応答であるか否かを推定する推定過程とを有し、前記送信過程は、前記推定過程において、前記確認応答信号が前記複数のオリジナルデータブロックの1に対する確認応答であると推定された場合に、前記送信過程において送信された複数のオリジナルデータブロックに後続するデータブロックを送信することを特徴とする通信網における伝送制御方法を提供する。好ましくは、前記データブロックの一例としては、TCPにおけるデータセグメントがある。好ましくは、前記受信装置は、移動通信網を介してパケット通信を行う移動通信端末である。
好ましい態様において、前記推定過程において、前記経過時間の値と前記第1の確率分布情報に基づいて、前記確認応答信号が前記複数のオリジナルデータブロックの1に対する確認応答である確率と、前記再送データブロックに対する確認応答である確率を求め、両者を比較することにより当該確認応答信号が複数のオリジナルデータブロックの1に対する確認応答であるか否かを推定するようにしてもよい。この場合、前記推定過程において、前記経過時間の値から推定されるオリジナルデータブロックのラウンドトリップタイムを示す値に基づいて第1の確率分布を参照することにより、前記確認応答信号が前記複数のオリジナルデータブロックの1に対する確認応答である確率を求め、前記経過時間の値に基づいて、前記第1の確率分布情報または当該第1の確率分布情報と同様の分布を有する確率分布情報であって再送データブロックのラウンドトリップタイムの出現確率を示す再送データブロックの確率分布情報を参照することにより、前記確認応答信号が前記再送データブロックに対する確認応答である確率を求めるようにしてもよい
別の好ましい態様において、前記後続するオリジナルデータブロックを送信した後、前記推定過程において行われた推定が正しいと判断された場合に、前記取得過程において取得した、前記再送データブロックを送信してからの経過時間の値を用いて、前記経過時間の出現確率を示す第2の確率分布情報を生成する生成過程を更に有し、前記推定過程は、前記取得過程において取得した経過時間の値、前記第1および第2の確率分布情報に基づいて、前記推定を行う。この場合、前記第2の生成過程において、前記後続するオリジナルデータブロックを要求する確認応答信号を前記受信装置から少なくとも2回受信した場合に前記推定過程において行われた推定が正しいと判断するようにしてもよい。好ましくは、前記第2の確率分布情報は、第1の確率分布情報とは異なる分布を有し、前記推定過程は、前記第2の確率分布情報を参照して、前記確認応答信号が前記複数のオリジナルデータブロックの1に対する確認応答である確率を求める一方、前記第1の確率分布情報と同様の分布を有する確率分布情報であって再送データブロックのラウンドトリップタイムの出現確率を示す再送データブロックの確率分布情報を参照して、前記確認応答信号が前記再送データブロックに対する確認応答である確率を求めるようにしてもよい。
別の好ましい態様において、複数の前記受信装置に対して前記複数のオリジナルデータブロックを送信する場合に、前記複数の受信装置との間に設定された複数のコネクションの各々について当該第1および/または第2の確率分布情報を生成し、前記推定過程において、前記複数の受信装置のいずれかから確認応答信号を受信した際に前記取得過程において取得した経過時間の値と、当該いずれかの受信装置との間に設定されているコネクションについて生成された前記第1および/または第2の確率分布情報に基づいて前記推定を行うようにすればよい。さらに、別の好ましい態様において、各々が異なるサブネットワークに属する複数の前記受信装置に対して前記複数のオリジナルデータブロックを送信する場合に、前記サブネットワーク毎に前記第1および/または第2の確率分布情報を生成し、前記推定過程は、前記複数の受信装置のいずれかから確認応答信号を受信した際に、前記取得手段により取得した経過時間の値と当該いずれかの受信装置が属する前記サブネットワークについて生成された前記第1および/または第2の確率分布情報に基づいて前記推定を行うようにすればよい。
好ましくは、前記過去のデータブロックは、前記複数のオリジナルデータブロックのうち、前記受信装置から確認応答信号を受信済みであるデータブロックを少なくとも含む。この場合、前記第1および第2の確率分布情報は前記受信装置に対して前記複数のオリジナルデータブロックを送信する前に試験的に求められた統計情報であり、前記第1および第2の各生成過程において、前記複数のオリジナルデータブロックの送信を開始した後、当該試験的に求められた統計情報を更新することにより前記第1および第2の確率分布情報を生成してもよい。あるいは、前記第1および第2の確率分布情報は前記受信装置に対して前記複数のオリジナルデータブロックを送信するための通信を開始する前に予め求められた統計情報であり、前記第1および第2の生成過程において、前記複数のオリジナルデータブロック送信のための通信を開始した後、当該予め求められた統計情報を更新することにより前記第1および第2の確率分布情報を生成するようにしてもよい。
また、本発明は、受信装置に対して複数のオリジナルデータブロックを順次送信する送信手段と、過去のデータブロックのラウンドトリップタイムの出現確率を示す第1の確率分布情報を生成する第1の生成手段と、再送データブロックを送信してからの経過時間を測定するための計時手段と、前記受信装置に対して送信された複数のオリジナルデータブロックのうち、前記受信装置から確認応答信号を受信していないデータブロックを再送するとともに、前記計時手段を起動し、前記経過時間の測定を開始する手段と、前記受信装置から確認応答信号を受信したとき、前記計時手段により測定された経過時間を取得する取得手段と、前記取得手段により取得された経過時間の値と、前記第1の生成手段によって生成された第1の確率分布情報とに基づいて、前記確認応答信号が前記複数のオリジナルデータブロックの1に対する確認応答であるか否かを推定する推定手段とを有し、前記送信手段は、前記推定手段により、前記確認応答信号が前記複数のオリジナルデータブロックの1に対する確認応答であると推定された場合に、前記送信手段により送信された複数のオリジナルデータブロックに後続するデータブロックを送信することを特徴とする通信装置を提供する。
好ましい態様において、前記後続するオリジナルデータブロックを送信した後、前記推定手段により行われた推定が正しいと判断された場合に、前記取得手段により取得した経過時間の値を用いて、前記経過時間の出現確率を示す第2の確率分布情報を生成する第2の生成手段を更に有し、前記推定手段は、前記取得手段により取得した経過時間の値、前記第1および第2の確率分布情報に基づいて、前記推定を行えばよい。加えて、本発明による通信装置は、上記伝送制御方法における様々な態様を実行するための手段を有している。
さらに、本発明は、上記通信装置が有する手段を少なくとも2の装置に具備させることにより上記様々な態様における伝送制御方法を実現可能な通信システムを提供する。
加えて、本発明は、上述した様々な態様における伝送制御方法を通信装置に実行させるためのプログラムを提供する。このプログラムは、当該プログラムが記憶された磁気テープ、磁気ディスク、フロッピー(登録商標)ディスク、光記録媒体、光磁気記録媒体、DVD(Digital Video Disk)、RAM等、その他記録媒体に記録され得る。
本発明によれば、送信装置に受信される確認応答データセグメントがオリジナルデータセグメントに対するのものであるか又は再送データセグメントに対するものであるのかを最適に判別することができ、この結果、データセグメントの不必要な送信を防ぐことが可能となる。この技術によれば、データセグメントの情報量を増加させることなく、且つ受信装置に対する設計変更を一切必要とせず、送信装置に対する軽微な設計変更で済む。
以下、図面を参照して本発明の実施の形態を詳細に説明する。なお、実施の形態を説明するための全図において、同一機能を有するものは同一符号を付け、その繰り返しの説明は省略する。
[第1実施形態]
(1.構成)
<通信システム1の構成>
図1は、この発明の第1実施形態に係る通信システム1の構成を例示するブロック図である。
通信端末40は、クライアント装置50と接続され、クライアント装置50と通信を行う。
移動パケット通信網30は、当該移動パケット通信網30に収容される通信端末40に対してパケット通信サービスを提供する。なお、移動パケット通信網30と通信端末40との間の通信区間には、図示しない無線区間が含まれている。この無線区間における通信は、電波を用いて行われる。
サーバ装置10は、通信端末40、移動パケット通信網30、インターネット20を介してクライアント装置50とパケット通信を行い、パケット通信によりクライアント装置50に対してデータセグメントを送信する。なお、本実施形態においては、TCP(Transmission Control Protocol)に従って、パケット通信を行うものとする。
<サーバ装置10の構成>
次に、サーバ装置10の構成について説明する。サーバ装置10の構成は一般的なコンピュータと同様であるから、本発明に係る構成のみについて図2を参照しながら説明する。
CPU100は、記憶部105に記憶されるプログラムを実行することにより、サーバ装置10の装置各部の制御を行う。また、CPU100は、タイマ100aと100bとを備える。
タイマ100aは、CPU100によりセットされたタイムアウト値が経過すると、トリガ信号を出力する。また、このタイマ100aは、データセグメントが送信されてから当該データセグメントに対する確認応答が受信されるまでの時間(以下、ラウンドトリップタイムという)を計測している。従来からの方法と同様に、タイマ100aにより取得されたラウンドトリップタイムはタイムアウト値の計算に用いられる。このタイムアウト値は時々刻々と変化する通信環境に応じて定められる可変の値である。また、本実施形態において、タイマ100aによって計測されたラウンドトリップタイムは、ラウンドトリップタイムの出現確率を示す確率分布データ(図3参照、詳しくは後述する)の生成時にも用いられる。
尚、ラウンドトリップタイムは、ウィンドウ毎にひとつのデータセグメントについて計測する方法が一般的であるが、すべてのデータセグメントについてラウンドトリップタイムを計測し、タイムアウト値または確率分布データの更新に用いてもよい。
タイマ100bは、再送データセグメントが送信された時にのみ動作する。具体的には、タイマ100bは、再送データセグメントの送信時にCPU100の指示により時間の測定を開始し、再送データセグメント送信後ひとつめの確認応答が受信された時に、CPU100の指示により当該測定を終了する。タイマ100bによって測定された時間はCPU100に通知される。CPU100は、この時間を確率分布データと比較することにより、受信した確認応答がオリジナルデータセグメントに対するものであるか又は再送データセグメントに対するものであるかを推定する。
記憶部105は、RAM(Random Accsess Memory)102と、ROM(Read Only Memory)103と、HD(Hard Disk)104とから構成される。
ROM103には、CPU100にデータセグメントの伝送制御処理を行わせるためのプログラムが記憶されている。CPU100は、このプログラムに従い、クライアント装置50に対してデータセグメント(以下、オリジナルデータセグメントという)を送信した後、当該データセグメントに対応する確認応答の受信を待機する。また、CPU100は、オリジナルデータセグメントの送信時にタイマ100aにタイムアウト値をセットし、その後の経過時間をタイマ100aに計測させる。
ここで、通信端末40と移動パケット通信網30との間の無線区間における電波環境が悪化したなどの場合に、タイムアウト値に相当する時間が経過しても確認応答を受信されない事態が発生し得る。このような場合に、確認応答を受信することなく、タイマ100aからタイムアウト値が経過したことを示すトリガ信号が出力されてしまうと、CPU100は、当該データセグメントがクライアント装置50に受信されなかったと判定する。そして、当該データセグメントを再送するとともに、タイマ100aに再び経過時間の測定を開始させる。また、データセグメントが再送されたので、タイマ100bによる経過時間の測定も開始させる。
電波環境が改善されることにより移動パケット通信網30を介した通信が再開されて、データセグメント及び確認応答の送受信が再び可能となったとする。これに伴い、確認応答を受信すると、CPU100は、タイマ100aをリセットするとともに、タイマ100bに経過時間の測定を終了させる。そして、このタイマ100bによって測定された経過時間と後述の確率分布データとを用いて、受信された確認応答がオリジナルデータセグメントに対応するものである確率が高いのか、再送されたデータセグメントに対応するものである確率が高いのかを判定する。
オリジナルデータセグメントに対応するものである確率が高いと判定した場合、CPU100は、オリジナルデータセグメントがクライアント装置50に受信されたと推定し、続いて、後続のオリジナルデータセグメントを送信する。再送データセグメントに対応するものである確率が高いと判定した場合、CPU100は、オリジナルデータセグメントがクライアント装置50に受信されなかったと推定し、続いて、後続の再送データセグメントが有るか否かを判定する。この判定結果が肯定的で有れば、後続の再送データセグメントを送信し、この判定結果が否定的で有れば、後続のオリジナルデータセグメントを送信する。
HD104は、タイマ100aによって計測されたラウンドトリップタイムの出現確率を示す確率分布データ(図3)を記憶している。
この確率分布データは、通信が正常に行われている場合に、データセグメントに対する確認応答が受信されるまでのラウンドトリップタイムの確率分布を示すデータである。図3において、データセグメントが送信された時刻を起点として、各データセグメントのラウンドトリップタイムの出現確率が示されている。
好ましい態様において、通信が正常に行われている場合に、オリジナルデータセグメントに対する確認応答が受信されるまでのラウンドトリップタイム(以下、O1−RTTという)と、再送データセグメントに対する確認応答が受信されるまでのラウンドトリップタイム(以下、S1−RTTという)のそれぞれの確率分布は、以下説明するように同様であるとして取り扱われる。
図4に、オリジナルデータセグメントが送信された時刻を起点として、オリジナルデータセグメントに対する確認応答が受信されるまでの到着時刻の確率分布を実線で示し、再送データセグメントに対する確認応答パケットが受信されるまでの到着時刻の確率分布を点線で示す。この図において、時刻t1は、再送データセグメントが送信された時刻である。時刻t2は、オリジナルデータセグメントに対する確認応答が受信されるまでの到着時刻の出現確率と、再送データセグメントに対する確認応答が受信されるまでの到着時刻の出現確率とが等しくなるときの時刻である。この図に示すように、一般的に、オリジナルデータセグメントが送信されてから、ある時間が経過するまでの間(図示の例では時刻t2までの間)は、オリジナルデータセグメントに対する確認応答が受信される確率が高く、それ以後は、再送データセグメントに対する確認応答が受信される確率が高い。そこで、本実施形態では、図示のように同一曲線を描く2つの確率分布を用いて、再送データセグメント送信後に受信した確認応答がオリジナルデータセグメントに対するものか又は再送データセグメントに対するものであるかの推定を行っている。
更に、HD104には、CPU100に上述の確率分布の学習処理を行わせるための学習プログラムが記憶されている。この学習処理において、CPU100は、クライアント装置50にオリジナルデータセグメントを送信してから当該データセグメントに対応する確認応答を受信するまでのラウンドトリップタイムをタイマ100aにて測定させる。そして、測定された各ラウンドトリップタイムの出現確率を計算することにより、HD104に記憶された確率分布データの値を逐次的に更新する。以上のようにして、CPU100は、上述の確率分布を学習する。
好ましい態様において、タイムアウト後に再送データセグメントを送信してひとつめに受信した確認応答が再送データセグメントに対応していると判定された場合には、タイマ100bによる時間の計測値を用いて、確率分布データを更新するようにしてもよい。確認応答が再送データセグメントに対応していると判定される場合とは、タイマ100bによる計測値が図4における時刻t2までの経過時間より長く、且つひとつめに受信した確認応答と同一の確認応答番号を有するふたつめの確認応答を受信しない場合である。
なお、CPU100は、サーバ装置10とクライアント装置50との通信を開始してから確率分布の学習を行うようにしても良いし、予め統計された統計結果に基づいて確率分布の学習を行っても良い。具体的には、3通りの方法が考えられる。
第1の方法は、サーバ装置10とクライアント装置50との通信を開始後、テストデータセグメントを送信する期間を設け、その期間内に送受信されたデータセグメントおよび確認応答に基づいて確率分布データを生成する。そして、一定期間が経過した後に送信対象のデータセグメントの送信を開始し、データセグメントの再送が必要となる事態が発生した場合には、テストデータセグメントを用いて得られた確率分布データを用いて上述の判定を行う。送信対象のデータセグメントの送信が開始した後も、タイマ100aがラウンドトリップタイムを取得する度に確率分布データは更新される。
第2の方法は、サーバ装置10とクライアント装置50との通信を開始後すぐに送信対象データセグメントの送信を開始し、しばらくの間は確率分布データが存在しないので上述の判定を行わず、確率分布の学習のみを行うという方法である。この方法において本願の伝送制御方法が用いられるのは、通信開始後一定期間が過ぎてからになるので、比較的に長時間に亙る通信に用いれば、効果が期待できる。
第3の方法は、サーバ装置10とクライアント装置50との通信を開始後すぐに送信対象のデータセグメントの送信を開始し、類似する通信環境を用いて予め測定された確率分布データを用いて上記判定を行うという方法である。尚、この場合、通信開始後に取得されたラウンドトリップタイムを用いて、過去の確率分布データを逐次更新することにより学習を行う。
また、図示しないクライアント装置50が複数存在する場合、CPU100は、クライアント装置50のIPアドレス毎に、上述の確率分布を学習する。
以上のように、本実施形態においてサーバ装置10は、再送データセグメント送信後に確認応答が受信されるまでの経過時間を測定し、学習した確率分布のデータを用いて、測定した当該経過時間がO1−RTTである確率が高いのか又はS1−RTTである確率が高いのかを判定することにより、当該確認応答がオリジナルデータセグメントに対応するものであるのか又は再送データセグメントに対応するものであるのかを推定する。
<クライアント装置50の構成>
クライアント装置50は、一般的なコンピュータと同様であるから、本発明に係る機能についてのみ説明する。
クライアント装置50は、サーバ装置10からデータセグメントを受信すると、当該データセグメントを受信したことを示す確認応答をサーバ装置10へ送信する機能を有している。具体的には、クライアント装置50は、確認応答のヘッダの確認応答番号フィールドに、次に受信を期待するデータセグメントのシーケンス番号をセットし、当該確認応答をサーバ装置10へ送信する。
(2.動作)
次に本実施形態の動作について説明する。
図5は、サーバ装置10とクライアント装置50との間でパケット通信を行う場合の一例を示すシーケンスチャートである。また、図6は、サーバ装置10の本実施形態に係るデータセグメントの送信及び受信動作を示すフローチャートである。なお、本実施形態においては、スライディングウィンドウ方式を用いて、データセグメントを送信するものとし、通信開始時点でのウィンドウサイズを「3」とする。また、クライアント装置が受信可能なデータセグメントの容量は送信装置が設定するウィンドウのサイズに対して十分に大きいと仮定する。また、説明の簡易のため、ウィンドウサイズは「3」のまま固定とする。
また、サーバ装置10のCPU100は、クライアント装置50とパケット通信を行っている間、データセグメントの送受信を行う度、HD104に記憶された学習プログラムを実行して、上述の確率分布の学習処理を行っているものとする。
まず、図5において、サーバ装置10から、シーケンス番号0、1000、2000を有するそれぞれのデータセグメント(オリジナルデータセグメントS1、S2、S3)がクライアント装置50へ送信される。3つのデータセグメントが送信されるのは、ウィンドウサイズが「3」であることに拠る。
図示の例では、通信端末40と移動パケット通信網30との間の通信区間に含まれる無線区間における電波環境が悪化し、当該オリジナルデータセグメントS1、S2、S3が一時的に通信網内に滞留している。その後、電波環境が改善され、移動パケット通信網30を介してオリジナルデータセグメントS1、S2、S3はクライアント装置50に送信される。即ち、オリジナルデータセグメントS1〜S3は、各々の送信時から大きく遅延してクライアント装置50に到着することとなる。そして、まず、オリジナルデータセグメントS1を受信したクライアント装置50により、オリジナルデータセグメントS1に対応する確認応答番号1000を有する確認応答R1がサーバ装置10へ送信される。
次に、以上説明したところまでのサーバ装置10の動作について、図6を参照しながら説明する。
サーバ装置10のCPU100は、ステップS10において、オリジナルデータセグメントS1、S2、S3の送信を行う。次いで、オリジナルデータセグメントS1に対してクライアント装置50から送信される確認応答の受信を待機する。このため、CPU100は、タイマ100aにタイムアウト値をセットし、タイマ100aにその後の経過時間の計測をさせる(ステップS11)。
そして、CPU100は、何らかの確認応答を受信したか否かを判断し(ステップS12)、この判断結果が「NO」である場合にはタイマ100aのタイムアウトが発生したか否かを判断する(ステップS13)。そして、ステップS13の判断結果が「NO」である場合には、ステップS12に戻る。以後、CPU100は、タイマ100aにタイムアウトが発生するまでの間、確認応答が受信されない限り、ステップS12およびS13の判断を繰り返す。
そして、クライアント装置50から送信された確認応答R1を受信する前に、タイムアウトが発生したとする。この場合、確認応答を受信することなく、タイマ100aによって測定される経過時間がタイムアウト値に達し、トリガ信号が出力される(ステップS12;NO、ステップS13;YES)。そして、CPU100はタイマ100aの値をリセットするとともに、処理をステップS14へ進める。
ステップS14において、CPU100は、オリジナルデータセグメントS1がクライアント装置50に受信されなかったと判定し、シーケンス番号0を有するデータセグメント(図5における再送データセグメントS′1)をクライアント装置50へ再送するとともに、タイマ100aにタイムアウト値をセットし、タイマ100aに経過時間の計測をさせる。また、この際、タイマ100bにも経過時間の測定を開始させる。
そして、CPU100は、何らかの確認応答を受信したか否かを判断し(ステップS15)、この判断結果が「NO」である場合にはタイマ100aのタイムアウトが発生したか否かを判断する(ステップS16)。そして、ステップS16の判断結果が「NO」である場合には、ステップS15に戻る。以後、CPU100は、タイマ100aにタイムアウトが発生するまでの間、確認応答が受信されない限り、ステップS15およびS16の判断を繰り返す。
その後、タイムアウト値が経過する前に、即ちタイマ100aからトリガ信号が出力される前に、上述の確認応答R1を受信したとする。この場合、ステップS15に進んだとき、その判断結果が「YES」となって、処理はステップS17に移行する。
ステップS17において、CPU100は、タイマ100bに経過時間の測定を終了させる。そして、測定された経過時間とHD104に記憶されている確率分布データとを用いて、確認応答R1がオリジナルデータセグメントS1に対応するものである確率が高いのか、再送データセグメントS′1に対応するものである確率が高いのかを判定する処理を行う(ステップS18)。
具体的には、上述の<サーバ装置10の構成>欄で説明したように、図4における2種類の確率分布データの関係に着目して、ステップS17で測定された経過時間がS1−RTTである確率が高いのか又はO1−RTTである確率が高いのかを判定する。
好ましい態様において、HD104は、図3に示すような1種類の確率分布データを記憶しておく。そして、CPU100は、タイマ100bが測定した経過時間の値を当該確率分布データと比較し、測定値に対応するS1−RTTの出現確率を求める。また、タイマ100bによる測定値に、再送データセグメント送信の契機となったタイムアウト値として100aに設定された値を足し算して、測定値+タイムアウト値に対応するO1−RTTの出現確率を求める。その結果、S1−RTTの出現確率が、O1−RTTの出現確率と等しいか大きい場合、確認応答R1は再送データセグメントに対して送信されたものとみなす。逆に、前者が後者よりも小さい場合、確認応答R1はオリジナルデータセグメントに対して送信されたものとみなす。
別の態様において、HD104は、図4に示すような2種類の確率分布データを記憶しておく。CPU100は、タイマ100bによる測定値に、再送データセグメント送信の契機となったタイムアウト値として100aに設定された値を足し算して、O1−RTTの出現確率を示す確率分布データ(図4の実線)と比較し、測定値+タイムアウト値に対応するO1−RTTの出現確率を求める。また、同様に、測定値+タイムアウト値をS1−RTTの出現確率を示す確率分布データ(図4の点線)と比較し、測定値+タイムアウト値に対応するS1−RTTの出現確率を求める。そして、S1−RTTの確率分布データを参照して求められた出現確率が、O1−RTTの確率分布データを参照して求められた出現確率と等しいか大きい場合、確認応答R1は再送データセグメントに対して送信されたものとみなす。逆に、前者が後者よりも小さい場合、確認応答R1はオリジナルデータセグメントに対して送信されたものとみなす。
図4に示すS1−RTTの確率分布データとO1−RTTの確率分布データを用いる場合、2つの曲線の交差点(図4の時刻t2)を閾値と定め、タイマ100bの計測値にタイムアウト値を足した値が当該閾値より小さい場合には、確認応答R1はオリジナルデータセグメントに対応するものとみなし、閾値と等しいかより大きな場合には、再送データセグメントに対応するとみなすようにしてもよい。
例えば、図4に示すように、ステップS17で測定された経過時間にタイムアウト値を足した値がt′1であったとすると、O1−RTTである確率が高いことが分かる。
従って、CPU100は、確認応答R1がオリジナルデータセグメントS1に対応するものである確率が高いと判定し、ステップS21へ進む。この場合、S1に対する確認応答を受け取ったので、ウィンドウがデータセグメントひとつ分だけスライドし、後続のオリジナルデータセグメントをひとつ送信することが可能となる。そこで、ステップS21において、後続のシーケンス番号3000を有するオリジナルデータセグメント(図5のS4)を送信する。そして、ステップS11、ステップS12へと進む。
ここで、図5に戻って、図6のS21に対応する処理として、サーバ装置10からクライアント装置50へオリジナルデータセグメントS4が送信されている。そして、処理は、ステップS11に戻り、タイマ100aによる経過時間の測定が開始される。
その後、CPU100は、タイマ100aにタイムアウトが発生するまでの間、確認応答が受信されない限り、上述したステップS12およびS13の判断を繰り返す。
一方、サーバ装置10で上述の処理が行われている間、クライアント装置50にオリジナルデータセグメントS2が受信され、当該オリジナルデータセグメントS2に対応する、確認応答番号2000を有する確認応答R2が、サーバ装置10へ送信される。
この確認応答番号2000を有する確認応答R2がサーバ装置10に到達すると、図6において、サーバ装置10のCPU100によるステップS12の判断結果は「YES」となる。この結果、ウィンドウがさらにデータセグメントひとつ分スライドし、後続のシーケンス番号4000を有するオリジナルデータセグメント(図5におけるS5)を送信する(ステップS10)。
このステップに対応する処理として、図5においては、サーバ装置10からオリジナルデータセグメントS5がクライアント装置50へ送信される。
以上のようにして、サーバ装置10からクライアント装置50へデータセグメントが送信される。
なお、図6におけるステップS19で、CPU100は、再送データセグメントに対応するものである確率が高いと判定した場合には、ステップS20に進む。ステップS20においては、後続の再送データセグメントが有るか否かの判定を行う。有ると判定した場合には、ステップS14に進み、無いと判定した場合には、ステップS21に進む。
[第2実施形態]
次に、図1〜図8を参照しながら、第1実施形態と同様の構成を持つサーバ装置10とクライアント装置50間でパケット通信を行う他の例について説明する。
第2実施形態では、第1実施形態で用いた確率分布(以下、確率分布1という)に加え、別の確率分布(以下、確率分布2という)も併用して、図6におけるステップS18の判定処理を行う。
確率分布2は図7に例示するが、タイムアウト発生による再送データセグメントの送信時点を起点とし、タイムアウト後に受け取ったひとつめの確認応答がオリジナルデータセグメントに対する確認応答であった場合の当該確認応答を受信するまでに要した時間(以下、仮のラウンドトリップタイムという)の出現確率を示す。これに対し、確率分布1は、オリジナルデータセグメントの送信時点を起点として得られたラウンドトリップタイムの出現確率を示すが、オリジナルデータセグメントの送信時点と再送データセグメントの送信時点では通信路の状況が必ずしも同程度ではない。このため、ステップS18の判定処理において、確認応答がオリジナルデータセグメントに対応するものである確率を求める場合には、確率分布1に基づくよりも確率分布2の方に基づいた方が信頼性の高い判定結果が得られる。
このような事情のもと、本実施形態では、受信した確認応答が再送データセグメントに対する確認応答である確率を求める場合には確率分布1を用い、オリジナルデータセグメントに対する確認応答である確率を求める場合には確率分布2を用いている。
(1.構成)
第2実施形態の構成は、その主要な部分において第1実施形態と同様であるので、第2実施形態で用いられる付加的な機能についてのみ説明する。
まず、第1実施形態と同様、第2実施形態によるサーバ装置10のCPU100は2種類のタイマ100aと100bを有する(図1参照)。タイマ100a、100b共に、第1実施形態と同様の機能を有するが、第2実施形態において、タイマ100bによって測定された経過時間の値は、ステップS18の判定処理に用いられるのみでなく、確率分布2の学習にも用いられる。
HD104には、確率分布1データに加え、確率分布2データが記憶されている。同様に、HD104には、第1実施形態で述べた確率分布1を学習するための学習プログラム(以下、第1の学習プログラムという)に加え、CPU100に確率分布2の学習処理を行わせるための学習プログラム(以下、第2の学習プログラムという)が記憶されている。
第2の学習プログラムによる処理において、CPU100は、データセグメント再送後に受信された確認応答がオリジナルデータセグメントに対応するものである確率が高いと判定された場合、タイマ100bによって測定された経過時間の値を用いてHD104に記憶された確率分布2データの値を更新する。具体的には、タイマ100bが測定した経過時間がオリジナルデータセグメントに対する仮のラウンドトリップタイムである確率を求め、求めた確率を用いて、HD104に記憶された確率分布2データの値を逐次的に更新する。
尚、確率分布2データの更新の具体的な方法については、過去にタイマ100bによって測定された値と合わせて再計算を行うなど様々な方法が考えられ、任意に変更可能である。
ここで、上述の、「データセグメント再送後に受信された確認応答がオリジナルデータセグメントに対応するものである確率が高いと判定された場合」とは、以下のような場合である。CPU100が再送データセグメント送信後にオリジナルデータセグメントに対する確認応答(図5のR1)と再送データセグメントに対する確認応答(図5のR'1)の両方を受信する場合、確認応答R1を先に受信し、確認応答R'1を後に受信することとなる。図6のステップS18の判定処理は確認応答R1を受信した時点で行われ、この時点ではいずれのセグメントに対する確認応答かに関する推定は可能であっても断定はできない。後になって確認応答R'1を受信した時点で、先に受信された確認応答がオリジナルデータセグメントに対するものであり、後に受信された確認応答が再送データセグメントに対するものであることが断定できる。このように、ステップS18の判定処理によって得られた結果の正否は、2つめの確認応答R'1を受信した時点で始めて確定するので、CPU100は2つめの確認応答を受信した時点で、タイマ100bによる測定値を用いて確率分布2データを更新するようにしている。
実際には、図5に示すように、再送データセグメントS'1がクライアント装置50によって受信されるのはオリジナルデータセグメントS1、S2、S3を受信した後であるので、確認応答R'1に含まれる確認応答番号はひとつめの確認応答R1とは異なっている。従って、サーバ装置10のCPU100は、同一の確認応答番号を有する確認応答が2個(図5のR3とR'1)受信された時点で、確率分布2データの更新を行うようにしている。
尚、第1実施形態において説明した確率分布1の学習処理と同様、第1〜第3いずれかの方法を用いて確率分布2を学習するようにすればよい。第1の方法とは、サーバ装置10とクライアント装置50との通信を開始後、テストデータセグメントを送信する期間を設け、このテストデータセグメントの再送が発生した場合にタイマ100bが取得した仮のラウンドトリップタイムに基づいて確率分布2データを生成する方法である。
第2の方法は、通信開始後に確率分布2の学習を開始するという方法である。この場合、通信開始後しばらくの間は、確率分布2データが存在しないので上述の判定を行わず、一定の時間が経過してから判定処理が行われる。ここでは、再送データセグメントを送信した場合にタイマ100bによる測定を開始させ、ひとつめの確認応答を受信するまでの経過時間を測定しておく。そして、同一の確認応答番号を有するふたつめの確認応答を受信した時点で、タイマ100bによる測定値を用いて確率分布データを生成する。
第3の方法は、通信開始後、類似する通信環境を用いて予め測定された確率分布2データを用いてすぐに上記判定を開始するという方法である。具体的には、従来技術欄で説明したタイムスタンプオプションを用いることにより、再送データセグメント送信後に受信された確認応答がオリジナルデータセグメントに対するものか又は再送データセグメントに対するものかを判別し、予め確率分布2を学習しておく。そして、通信開始後にこの確率分布2データを更新していく形で上述の確率分布2の学習処理を行うようにすれば良い。尚、このタイムスタンプオプションは、第1の方法におけるテストデータセグメントの送信期間、および第2の方法における通信開始直後に学習のみを行っている期間のいずれの場合にも適用可能である。
このようにして学習された確率分布2と、第1実施形態で説明した確率分布1とを用いて、以下のことが分かる。まず、通信が正常に行われている場合に、再送データセグメント送信後に当該再送データセグメントに対する確認応答が受信されるまでのラウンドトリップタイム(以下、S2−RTTという)の確率分布は、確率分布1(図3)で表されうる。また、再送データセグメント送信後にオリジナルデータセグメントに対する確認応答が受信されるまでの仮のラウンドトリップタイム(以下、O2−pRTTという)は、確率分布2(図7)で表される。そこで、図8に、再送データセグメントが送信された時刻を起点として、O2−pRTTの確率分布(確率分布2)を実線で示し、S2−RTTの確率分布(確率分布1)を点線で示す。この図において、2つの曲線の交点である時刻t′2は、O2−pRTTの出現確率と、S2−RTTの出現確率とが等しくなるときの時刻である。図示の例では、再送データセグメントが送信されてから時刻t′2が経過するまでの間は、オリジナルデータセグメントに対する確認応答が受信される確率が高く、時刻t′2が経過した後は、再送データセグメントに対する確認応答が受信される確率が高いことが分かる。本実施形態では、この性質を利用して、確率分布1データおよび確率分布2データの両方に基づいて、図6のステップS18における判定を行うようにしている。
また、図示しないクライアント装置50が複数存在する場合、CPU100は、クライアント装置50のIPアドレス毎に、上述の確率分布2を学習する。
(2.動作)
次に、第2実施形態の動作について説明する。
第2実施形態の動作は、図6のステップS18の判定処理に係る動作を除いて、第1実施形態と同一であるので、当該判定処理に係る部分のみについて説明する。
ステップS18の判定処理は、具体的に以下のように行われる。CPU100は、タイマ100bが測定した経過時間を、確率分布1データおよび確率分布2データの各々と比較する。そして、タイマ100bによる測定値に対応する出現確率を各々求め、確率分布1データを参照して求められた出現確率が、確率分布2データを参照求められた出現確率と等しいか又は大きい場合、確認応答R1は再送データセグメントに対して送信されたものとみなす。逆に、前者が後者よりも小さい場合、確認応答R1はオリジナルデータセグメントに対して送信されたものとみなす。
別の方法として、確率分布1データおよび確率分布2データの各々を示す2曲線の交点(図8のt’2)を閾値と定め、タイマ100bの計測値が当該閾値より小さい場合には、確認応答R1はオリジナルデータセグメントに対応するものとみなし、閾値と等しいかより大きな場合には、再送データセグメントに対応するとみなすようにしてもよい。
図8の例では、時刻t’1に確認応答R1が受信されているので、当該確認応答はオリジナルデータセグメントに対応するものである確率が高いと判断され(ステップS19;NO)、次のステップに進む。
また、ステップS18の判定処理を行った後、本実施形態では、同一の確認応答番号を有する確認応答を2個受信した場合に、確率分布2データを更新する処理を行う。これは、上述したように、この同一の確認応答を2個受信することによってはじめて、ステップS18による判定処理が確定するためである。
[変形例]
以上、本発明の実施形態について説明したが、本発明はその主要な特徴から逸脱することなく他の様々な形態で実施することが可能である。なお、変形例としては、例えば、以下のようなものが考えられる。
上述の実施形態においては、TCPに従ってパケット通信を行うようにしたが、本発明は、データセグメントまたはデータブロックの再送制御を行うプロトコルであれば、TCP以外の通信プロトコルにも適用可能である。また、他のプロトコルを用いる場合、TCPが採用しているスライディングウィンドウ方式と類似のウィンドウを用いて、データセグメントを送信しても良い。
上述の実施形態においては、サーバ装置10は、IPアドレス毎に、上述の確率分布1および2を学習した。しかし、サブネットワーク毎に、ラウンドトリップタイムの確率分布を学習するようにしても良い。また、移動パケット通信網30が複数存在する場合、各移動パケット通信網について確率分布1および2を学習するようにしても良い。これは、通信網によって通信環境が異なるため、通信網毎に確率分布を学習し、それに基づいて判定を行った方がより信頼性の高い判定結果が得られるからである。
また、サーバ装置10で行った上述の確率分布1および2の学習及び確認応答に対するデータセグメントの推定は、他のサーバ装置で行っても良い。このような構成において、サーバ装置10は、再送データセグメント送信後に確認応答を受信すると、この他のサーバ装置に当該確認応答がオリジナルデータセグメントに対するものか又は再送データセグメントに対するものかを問い合わせる。他のサーバ装置は、上述のサーバ装置10が行った判定処理を行い、この判定結果をサーバ装置10へ送信する。サーバ装置10は、送信された判定結果に基づいて、確認応答に対するデータセグメントを推定することができる。
なお、上述の実施形態においては、クライアント装置50は通信端末40を介してサーバ装置10とパケット通信を行った。しかし、クライアント装置50が無線通信機能を備え、通信端末40を介することなく、移動パケット通信網30、インターネット20を介してサーバ装置10とパケット通信を行う構成であっても良い。
本発明の第1および第2実施形態に係る通信システム1の構成を示すブロック図である。 第1および第2実施形態に係るサーバ装置10の構成を示すブロック図である。 第1実施形態に係る確率分布(第2実施形態における確率分布1)の大略を示す図である。 第1実施形態に係る確率分布を用いて出現確率の違いを説明するための図である。 第1および第2実施形態に係るサーバ装置10とクライアント装置50との間でパケット通信を行う場合の一例を示すシーケンスチャートである。 第1および第2実施形態に係るサーバ装置10のパケット送信及び受信動作を示すフローチャートである。 第2実施形態に係る確率分布2の大略を示す図である。 第2実施形態に係る確率分布1及び確率分布2を用いて出現確率の違いを説明するための図である。 従来のサーバ装置10'とクライアント装置50との間でパケット通信を行う場合の一例を示すシーケンスチャートである。
符号の説明
1・・・通信システム、10・・・サーバ装置、100・・・CPU、100a・・・タイマ、100b・・・タイマ、101・・・通信部、102・・・RAM、103・・・ROM、104・・・HD、105・・・記憶部、111・・・バス、20・・・インターネット、30・・・移動パケット通信網、40・・・通信端末、50・・・クライアント装置。

Claims (22)

  1. 送信装置から受信装置に対して複数のオリジナルデータブロックを順次送信する送信過程と、
    前記受信装置に対して送信された複数のオリジナルデータブロックのうち、前記受信装置から確認応答信号を受信していないデータブロックを再送するとともに、計時手段を起動し、当該再送データブロックを送信してからの経過時間の測定を開始する過程と、
    前記受信装置から確認応答信号を受信したとき、前記計時手段により測定された経過時間を取得する取得過程と、
    前記取得過程において取得された経過時間の値と、過去のデータブロックのラウンドトリップタイムの出現確率を示す第1の確率分布情報とに基づいて、前記確認応答信号が前記複数のオリジナルデータブロックの1に対する確認応答であるか否かを推定する推定過程とを有し、
    前記送信過程は、前記推定過程において、前記確認応答信号が前記複数のオリジナルデータブロックの1に対する確認応答であると推定された場合に、前記送信過程において送信された複数のオリジナルデータブロックに後続するデータブロックを送信する
    ことを特徴とする通信網における伝送制御方法。
  2. 前記過去のデータブロックは、前記複数のオリジナルデータブロックのうち、前記受信装置から確認応答信号を受信済みであるデータブロックを少なくとも含む
    ことを特徴とする請求項1に記載の伝送制御方法。
  3. 前記推定過程において、前記経過時間の値と前記第1の確率分布情報に基づいて、前記確認応答信号が前記複数のオリジナルデータブロックの1に対する確認応答である確率と、前記再送データブロックに対する確認応答である確率を求め、両者を比較することにより当該確認応答信号が複数のオリジナルデータブロックの1に対する確認応答であるか否かを推定する
    ことを特徴とする請求項1に記載の伝送制御方法。
  4. 前記推定過程において、前記経過時間の値から推定されるオリジナルデータブロックのラウンドトリップタイムを示す値に基づいて第1の確率分布を参照することにより、前記確認応答信号が前記複数のオリジナルデータブロックの1に対する確認応答である確率を求め、前記経過時間の値に基づいて、前記第1の確率分布情報または当該第1の確率分布情報と同様の分布を有する確率分布情報であって再送データブロックのラウンドトリップタイムの出現確率を示す再送データブロックの確率分布情報を参照することにより、前記確認応答信号が前記再送データブロックに対する確認応答である確率を求める
    ことを特徴とする請求項3に記載の伝送制御方法。
  5. 前記後続するオリジナルデータブロックを送信した後、前記推定過程において行われた推定が正しいと判断された場合に、前記取得過程において取得した、前記再送データブロックを送信してからの経過時間の値を用いて、前記経過時間の出現確率を示す第2の確率分布情報を生成する生成過程を更に有し、
    前記推定過程は、前記取得過程において取得した経過時間の値、前記第1および第2の確率分布情報に基づいて、前記推定を行う
    ことを特徴とする請求項1に記載の伝送制御方法。
  6. 前記第2の確率分布情報は、第1の確率分布情報とは異なる分布を有し、
    前記推定過程は、前記第2の確率分布情報を参照して、前記確認応答信号が前記複数のオリジナルデータブロックの1に対する確認応答である確率を求める一方、前記第1の確率分布情報と同様の分布を有する確率分布情報であって再送データブロックのラウンドトリップタイムの出現確率を示す再送データブロックの確率分布情報を参照して、前記確認応答信号が前記再送データブロックに対する確認応答である確率を求める
    ことを特徴とする請求項5に記載の伝送制御方法。
  7. 受信装置に対して複数のオリジナルデータブロックを順次送信する送信手段と、
    過去のデータブロックのラウンドトリップタイムの出現確率を示す第1の確率分布情報を生成する第1の生成手段と、
    再送データブロックを送信してからの経過時間を測定するための計時手段と、
    前記受信装置に対して送信された複数のオリジナルデータブロックのうち、前記受信装置から確認応答信号を受信していないデータブロックを再送するとともに、前記計時手段を起動し、前記経過時間の測定を開始する手段と、
    前記受信装置から確認応答信号を受信したとき、前記計時手段により測定された経過時間を取得する取得手段と、
    前記取得手段により取得された経過時間の値と、前記第1の生成手段によって生成された第1の確率分布情報とに基づいて、前記確認応答信号が前記複数のオリジナルデータブロックの1に対する確認応答であるか否かを推定する推定手段とを有し、
    前記送信手段は、前記推定手段により、前記確認応答信号が前記複数のオリジナルデータブロックの1に対する確認応答であると推定された場合に、前記送信手段により送信された複数のオリジナルデータブロックに後続するデータブロックを送信する
    ことを特徴とする通信装置。
  8. 前記推定手段は、前記経過時間の値と前記第1の確率分布情報に基づいて、前記確認応答信号が前記複数のオリジナルデータブロックの1に対する確認応答である確率と、前記再送データブロックに対する確認応答である確率を求め、両者を比較することにより当該確認応答信号が複数のオリジナルデータブロックの1に対する確認応答であるか否かを推定する
    ことを特徴とする請求項7に記載の通信装置。
  9. 前記推定手段は、前記経過時間の値から推定されるオリジナルデータブロックのラウンドトリップタイムを示す値に基づいて第1の確率分布を参照することにより、前記確認応答信号が前記複数のオリジナルデータブロックの1に対する確認応答である確率を求め、前記経過時間の値に基づいて、前記第1の確率分布情報または当該第1の確率分布情報と同様の分布を有する確率分布情報であって再送データブロックのラウンドトリップタイムの出現確率を示す再送データブロックの確率分布情報を参照することにより、前記確認応答信号が前記再送データブロックに対する確認応答である確率を求める
    ことを特徴とする請求項8に記載の伝送制御方法。
  10. 複数の前記受信装置に対して前記複数のオリジナルデータブロックを送信する場合に、
    前記第1の生成手段は、前記複数の受信装置との間に設定された複数のコネクションの各々について前記第1の確率分布情報を生成し、
    前記推定手段は、前記複数の受信装置のいずれかから確認応答信号を受信した際に、前記取得手段により取得した経過時間の値と当該いずれかの受信装置との間に設定されているコネクションについて生成された前記第1の確率分布情報に基づいて前記推定を行う
    ことを特徴とする請求項7乃至請求項9のいずれか1に記載の通信装置。
  11. 各々が異なるサブネットワークに属する複数の前記受信装置に対して前記複数のオリジナルデータブロックを送信する場合に、
    前記第1の生成手段は、前記サブネットワーク毎に前記第1の確率分布情報を生成し、
    前記推定手段は、前記複数の受信装置のいずれかから確認応答信号を受信した際に、前記取得手段により取得した経過時間の値と当該いずれかの受信装置が属する前記サブネットワークについて生成された前記第1の確率分布情報に基づいて前記推定を行う
    ことを特徴とする請求項7乃至請求項9のいずれか1に記載の通信装置。
  12. 前記過去のデータブロックは、前記複数のオリジナルデータブロックのうち、前記受信装置から確認応答信号を受信済みであるデータブロックを少なくとも含む
    ことを特徴とする請求項7乃至請求項11のいずれか1に記載の通信装置。
  13. 前記第1の確率分布情報は前記受信装置に対して前記複数のオリジナルデータブロックを送信する前に試験的に求められた統計情報であり、
    前記第1の生成手段は、前記複数のオリジナルデータブロックの送信を開始した後、当該試験的に求められた統計情報を更新することにより前記第1の確率分布情報を生成する
    ことを特徴とする請求項12に記載の通信装置。
  14. 前記第1の確率分布情報は前記受信装置に対して前記複数のオリジナルデータブロックを送信するための通信を開始する前に予め求められた統計情報であり、
    前記第1の生成手段は、前記複数のオリジナルデータブロック送信のための通信を開始した後、当該予め求められた統計情報を更新することにより前記第1の確率分布情報を生成する
    ことを特徴とする請求項12に記載の通信装置。
  15. 前記後続するオリジナルデータブロックを送信した後、前記推定手段により行われた推定が正しいと判断された場合に、前記取得手段により取得した、再送データブロックを送信してからの経過時間の値を用いて、前記経過時間の出現確率を示す第2の確率分布情報を生成する第2の生成手段を更に有し、
    前記推定手段は、前記取得手段により取得された経過時間の値、前記第1および第2の確率分布情報に基づいて、前記推定を行う
    ことを特徴とする請求項7に記載の通信装置。
  16. 前記第2の生成手段は、前記後続するオリジナルデータブロックを要求する確認応答信号を前記受信装置から少なくとも2回受信した場合に前記推定手段により行われた推定が正しいと判断する
    ことを特徴とする請求項15に記載の通信装置。
  17. 複数の前記受信装置に対して前記複数のオリジナルデータブロックを送信する場合に、
    前記第1および第2の各生成手段は、前記複数の受信装置との間に設定された複数のコネクションの各々について当該第1および第2の確率分布情報を生成し、
    前記推定手段は、前記複数の受信装置のいずれかから確認応答信号を受信した際に前記取得手段により取得した経過時間の値と、当該いずれかの受信装置との間に設定されているコネクションについて生成された前記第1および第2の確率分布情報に基づいて前記推定を行う
    ことを特徴とする請求項15または請求項16に記載の通信装置。
  18. 各々が異なるサブネットワークに属する複数の前記受信装置に対して前記複数のオリジナルデータブロックを送信する場合に、
    前記第1および第2の各生成手段は、前記サブネットワーク毎に当該第1および第2の確率分布情報を生成し、
    前記推定手段は、前記複数の受信装置のいずれかから確認応答信号を受信した際に前記取得手段により取得した経過時間の値と、当該いずれかの受信装置が属するサブネットワークについて生成された前記第1および第2の確率分布情報に基づいて前記推定を行う
    ことを特徴とする請求項15または請求項16に記載の通信装置。
  19. 前記第1および第2の確率分布情報は当該通信装置から前記受信装置に対して前記複数のオリジナルデータブロックを送信する前に試験的に求められた統計情報であり、
    前記第1および第2の各生成手段は、前記複数のオリジナルデータブロックの送信を開始した後当該試験的に求められた統計情報を各々更新することにより前記第1および第2の確率分布情報を生成する
    ことを特徴とする請求項15乃至請求項18のいずれか1に記載の通信装置。
  20. 前記第1および第2の確率分布情報は当該通信装置から前記受信装置に対して前記複数のオリジナルデータブロックを送信するための通信を開始する前に予め求められた統計情報であり、
    前記第1および第2の各生成手段は、前記複数のオリジナルデータブロック送信のための通信を開始した後、当該予め求められた統計情報を更新することにより前記第1および第2の確率分布情報を生成する
    ことを特徴とする請求項15乃至請求項18のいずれか1に記載の通信装置。
  21. 送信装置から受信装置に対して複数のオリジナルデータブロックを順次送信する送信手段と、
    過去のデータブロックのラウンドトリップタイムの出現確率を示す第1の確率分布情報を生成する生成手段と、
    再送データブロックを送信してからの経過時間を測定するための計時手段と、
    前記受信装置に対して送信された複数のオリジナルデータブロックのうち、前記受信装置から確認応答信号を受信していないデータブロックを再送するとともに、前記計時手段を起動し、前記経過時間の測定を開始する手段と、
    前記受信装置から確認応答信号を受信したとき、前記計時手段により測定された経過時間を取得する取得手段と、
    前記取得手段により取得された経過時間の値と前記生成手段によって生成された第1の確率分布情報とに基づいて、前記確認応答信号が前記複数のオリジナルデータブロックの1に対する確認応答であるか否かを推定する推定手段とを有し、
    前記送信手段は、前記確認応答信号が前記複数のオリジナルデータブロックの1に対する確認応答であると推定された場合に、前記送信手段により送信された複数のオリジナルデータブロックに後続するデータブロックを送信する
    ことを特徴とする通信システム。
  22. 受信装置に対して複数のオリジナルデータブロックを順次送信する送信処理と、
    前記受信装置に対して送信された複数のオリジナルデータブロックのうち、前記受信装置から確認応答信号を受信していないデータブロックを再送するとともに、計時手段を起動し、当該再送データブロックを送信してからの経過時間の測定を開始する処理と、
    前記受信装置から確認応答信号を受信したとき、前記計時手段により測定された経過時間を取得する処理と、
    前記取得された経過時間の値と、過去のデータブロックのラウンドトリップタイムの出現確率を示す第1の確率分布情報とに基づいて、前記確認応答信号が前記複数のオリジナルデータブロックの1に対する確認応答であるか否かを推定する処理と、
    前記確認応答信号が前記複数のオリジナルデータブロックの1に対する確認応答であると推定された場合に、前記送信処理により送信された複数のオリジナルデータブロックに後続するデータブロックを送信する処理と
    をコンピュータに実行させるためのプログラム。
JP2003430448A 2002-12-27 2003-12-25 伝送制御方法、通信装置、通信システム及びプログラム Expired - Fee Related JP3727941B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003430448A JP3727941B2 (ja) 2002-12-27 2003-12-25 伝送制御方法、通信装置、通信システム及びプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002382221 2002-12-27
JP2003430448A JP3727941B2 (ja) 2002-12-27 2003-12-25 伝送制御方法、通信装置、通信システム及びプログラム

Publications (2)

Publication Number Publication Date
JP2004222270A JP2004222270A (ja) 2004-08-05
JP3727941B2 true JP3727941B2 (ja) 2005-12-21

Family

ID=32911354

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003430448A Expired - Fee Related JP3727941B2 (ja) 2002-12-27 2003-12-25 伝送制御方法、通信装置、通信システム及びプログラム

Country Status (1)

Country Link
JP (1) JP3727941B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5875051B2 (ja) * 2010-11-08 2016-03-02 学校法人日本大学 認証サーバ及び認証サーバによる認証方法

Also Published As

Publication number Publication date
JP2004222270A (ja) 2004-08-05

Similar Documents

Publication Publication Date Title
EP1434380B1 (en) Data transmission control method and system
JP4283589B2 (ja) 通信装置、通信制御方法及びプログラム
CN101854738B (zh) 一种用于卫星网络的传输控制协议方法
EP3780542B1 (en) Data transmission method and device
JP2004537218A (ja) Nackベースのプロトコルにおける輻輳制御の信頼性のある効率的な対応方法
US20070223529A1 (en) Methods and apparatus for estimating bandwidth of a data network
JP2004530388A (ja) アプリケーション配信時のリアルタイムパケット化および再送信
TWI225349B (en) Methodology for improving TCP throughput over lossy communication links
KR20060100512A (ko) 전송제어 프로토콜 기반의 네트워크에서 평균 대역폭 추정방법 및 시스템
CN104683259A (zh) Tcp拥塞控制方法及装置
US7168022B2 (en) Transmission control method and system
JP3492602B2 (ja) データ送信装置及びデータ受信装置
Man et al. ImTCP: TCP with an inline measurement mechanism for available bandwidth
US7839844B2 (en) System and method for dynamically determining retransmit buffer time
JP3727941B2 (ja) 伝送制御方法、通信装置、通信システム及びプログラム
Utsumi et al. TCP-Cherry: A new approach for TCP congestion control over satellite IP networks
JP2005143076A (ja) パケット通信装置、パケット通信方法、データ受信装置およびデータ受信方法
JP2006303887A (ja) データ送信制御方法、通信装置、プログラムおよび記録媒体
JP3784801B2 (ja) 伝送制御方法、通信装置、通信システム及びプログラム
Ratnam et al. WTCP: an efficient mechanism for improving wireless access to TCP services
JP2004140596A (ja) Tcp上のデータ転送における品質を推定する方法およびシステム
JP4809256B2 (ja) データストリーミング方法
KR102131427B1 (ko) Sctp에서의 혼잡 제어 방법 및 장치
Jaiswal et al. A comparative performance analysis of TCP congestion control algorithm: elastic TCP vs. e-Elastic TCP
JP5375313B2 (ja) 通信装置、擬似応答装置、送信レート制御方法およびプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050401

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050722

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050929

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091007

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101007

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111007

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees