(57)【特許請求の範囲】
【請求項１】
通信の受信側から送信側へデータ・ユニットの正しい受信についての受信応答メッセージを送る受信応答機能を規定すると共にタイム−アウト期間内に受信応答が送信側に到達しない場合にデータ・ユニットを再送する再送タイム−アウト機能を規定するプロトコル（ＴＣＰ）を実施するデータ・ユニット送信機であって、
所定の演算を実行する演算装置と、
情報を記憶する記憶装置と、
所定のデータ・ユニットの送信と当該所定のデータ・ユニットに対応する受信応答の受信との間に経過する時間を表す往復時間の往復時間値（ＲＴＴ）を測定する装置と、
を含むデータ・ユニット送信機において、当該再送タイム−アウト機能に係るパラメータ（ＲＴＯ）を決定する方法であって、
前記測定装置によって前記往復時間値（ＲＴＴ）を測定する過程と、
前記測定装置により測定した往復時間値（ＲＴＴ）の平滑化往復時間値（ＳＲＴＴ（ｏｌｄ））を前記演算装置によって求めて前記記憶装置に記憶する過程と、
少なくとも、前記記憶装置に記憶された平滑化往復時間値（ＳＲＴＴ（ｏｌｄ））及び前記測定装置により測定した往復時間値（ＲＴＴ）に基づく演算式を前記演算装置によって実行することにより、新たな平滑化往復時間値（ＳＲＴＴ（ｎｅｗ））を計算する過程と、
前記時間の経過に対する往復時間値（ＲＴＴ）の平均偏差を示す平均偏差値（ＲＴＴＶＡＲ（ｏｌｄ）を前記演算装置によって求めて前記記憶装置に記憶する過程と、
少なくとも、前記記憶装置に記憶された平均偏差値（ＲＴＴＶＡＲ（ｏｌｄ））、前記測定装置により測定した往復時間値（ＲＴＴ）及び前記記憶装置により記憶された平滑化往復時間値（ＳＲＴＴ（ｏｌｄ））に基づく演算式を前記演算装置によって実行することにより、時間の経過に対する前記往復時間値（ＲＴＴ）の平均偏差を表す新たな平均偏差値（ＲＴＴＶＡＲ（ｎｅｗ））を計算する過程と、
少なくとも、前記新たな平滑化往復時間値（ＳＲＴＴ（ｎｅｗ））及び前記新たな平均偏差値（ＲＴＴＶＡＲ（ｎｅｗ））に基づく演算式を前記演算装置によって実行することにより、前記パラメータ（ＲＴＯ）を計算する過程とを有し、
前記記憶装置に記憶された平滑化往復時間値（ＳＲＴＴ（ｏｌｄ））に基づいて決定される所定の閾値（ＴＨ（ＳＲＴＴ（ｏｌｄ）））よりも、前記測定装置により測定された往復時間値（ＲＴＴ）が大きいか小さいかに基づいて、前記新たな平均偏差値（ＲＴＴＶＡＲ（ｎｅｗ））が異なる方法で計算されることを特徴とする方法。
【請求項２】
当該所定の閾値（ＴＨ（ＳＲＴＴ（ｏｌｄ）））を当該記憶された平滑化往復時間値（ＳＲＴＴ（ｏｌｄ））に等しいものとすることを特徴とする請求項１記載の方法。
【請求項３】
請求項１又は２に記載の方法であって、前記測定装置により測定した往復時間値（ＲＴＴ）が前記所定の閾値（ＴＨ（ＳＲＴＴ（ｏｌｄ）））よりも小さい場合には、前記新たな平均偏差値（ＲＴＴＶＡＲ（ｎｅｗ））を、前記記憶装置に記憶された平均偏差値（ＲＴＴＶＡＲ（ｏｌｄ））に等しいか若しくはこれよりも小さいものとして計算することを特徴とする方法。
【請求項４】
請求項１ないし３のうちの一項に記載の方法であって、前記測定装置により測定した往復時間値（ＲＴＴ）が前記所定の閾値（ＴＨ（ＳＲＴＴ（ｏｌｄ）））よりも大きい場合には、前記新たな平均偏差値（ＲＴＴＶＡＲ（ｎｅｗ））を、前記記憶装置に記憶された平均偏差値（ＲＴＴＶＡＲ（ｏｌｄ））、前記記憶装置に記憶された平滑化往復時間値（ＳＲＴＴ（ｏｌｄ））、前記測定装置により測定した往復時間値（ＲＴＴ）及び重み係数（ｈ）の関数として計算することを特徴とする方法。
【請求項５】
前記重み係数（ｈ）を時間の経過に対して可変なものとすることを特徴とする請求項４記載の方法。
【請求項６】
請求項５記載の方法であって、
ＲＴＴＶＡＲ（ｎｅｗ）が新たな平均偏差値を表し、ＲＴＴＶＡＲ（ｏｌｄ）が前記記憶装置に記憶された平均偏差値を表し、ＳＲＴＴ（ｏｌｄ）が前記記憶装置に記憶された往復時間値を表し、ＲＴＴが前記測定装置により測定した往復時間値を表し、かつ、ｈが当該重み係数を表すものとして、前記測定装置により測定した往復時間値（ＲＴＴ）が前記所定の閾値（ＴＨ（ＳＲＴＴ（ｏｌｄ）））よりも大きいか若しくはこれに等しい場合には、前記新たな平均偏差値（ＲＴＴＶＡＲ（ｎｅｗ））を
【数１】
0004601232.tif 000032
として計算する、ことを特徴とする方法。
【請求項７】
請求項５記載の方法であって、
ＲＴＴＶＡＲ（ｎｅｗ）が新たな平均偏差値を表し、ＲＴＴＶＡＲ（ｏｌｄ）が前記記憶装置に記憶された平均偏差値を表し、ＳＲＴＴ（ｏｌｄ）が前記記憶装置に記憶された往復時間値を表し、ＲＴＴが前記測定装置により測定した往復時間値を表し、かつ、ｈが当該重み係数を表すものとして、
前記測定装置により測定した往復時間値（ＲＴＴ）が前記所定の閾値（ＴＨ（ＳＲＴＴ（ｏｌｄ）））よりも大きいか若しくはこれに等しく、かつ、
【数２】
0004601232.tif 000033
である場合には、前記新たな平均偏差値（ＲＴＴＶＡＲ（ｎｅｗ））を
【数３】
0004601232.tif 000034
として計算し、
前記測定装置により測定した往復時間値（ＲＴＴ）が前記所定の閾値（ＴＨ（ＳＲＴＴ（ｏｌｄ）））よりも大きいか若しくはこれに等しく、かつ、
【数４】
0004601232.tif 000035
である場合には、前記新たな平均偏差値（ＲＴＴＶＡＲ（ｎｅｗ））を
【数５】
0004601232.tif 000036
として計算する、ことを特徴とする方法。
【請求項８】
所定の時間における前記重み係数（ｈ）の値を、前記所定の時間までに送信されたが前記所定の時間までに受信応答されていないデータ・ユニットの数（Ｎ）を表す値（Ｎ、ＳＮ、ｓｓｔｈｒｅｓｈ）と関連付けたものにする、ことを特徴とする請求項４ないし７のうちの一項に記載の方法。
【請求項９】
請求項８記載の方法であって、前記所定の時間までに送信されたが前記所定の時間までに受信応答されていないデータ・ユニットの数（Ｎ）を表す前記値（Ｎ、ＳＮ、ｓｓｔｈｒｅｓｈ）を、
−前記所定の時間までに送信されたが前記所定の時間までに受信応答されていないデータ・ユニットの数（Ｎ）、
−前記所定の時間までに送信されたが前記所定の時間までに受信応答されていない前記データ・ユニットの数（Ｎ）の平滑化平均（ＳＮ）、及び
−スロー・スタート閾値（ｓｓｔｈｒｅｓｈ）
のうちの一つとする、ことを特徴とする方法。
【請求項１０】
前記重み係数（ｈ）を、前記所定の時間までに送信されたが前記所定の時間までに受信応答されていないデータ・ユニットの数（Ｎ）を表す前記値（Ｎ、ＳＮ、ｓｓｔｈｒｅｓｈ）と１との和の逆数値に等しいものとする、ことを特徴とする請求項８又は９記載の方法。
【請求項１１】
通信の受信側から送信側へデータ・ユニットの正しい受信についての受信応答メッセージを送る受信応答機能を規定すると共にタイム−アウト期間内に受信応答が送信側に到達しない場合にデータ・ユニットを再送する再送タイム−アウト機能を規定するプロトコル（ＴＣＰ）を実施するデータ・ユニット送信機であって、
所定の演算を実行する演算装置と、
情報を記憶する記憶装置と、
所定のデータ・ユニットの送信と当該所定のデータ・ユニットに対応する受信応答の受信との間に経過する時間を表す往復時間の往復時間値（ＲＴＴ）を測定する装置と、
を含むデータ・ユニット送信機において、当該再送タイム−アウト機能に係るパラメータ（ＲＴＯ）を決定する方法であって、
前記測定装置により前記往復時間値（ＲＴＴ）を測定する過程と、
当該測定装置により測定した往復時間値（ＲＴＴ）の平滑化往復時間値（ＳＲＴＴ（ｏｌｄ））を前記演算装置によって求めて前記記憶装置に記憶する過程と、
少なくとも、前記記憶装置に記憶された平滑化往復時間値（ＳＲＴＴ（ｏｌｄ））、前記測定装置により測定した往復時間値（ＲＴＴ）及び第１の重み係数（ｇ）に基づく演算式を前記演算装置によって実行することにより、新たな平滑化往復時間値（ＳＲＴＴ（ｎｅｗ））を計算する過程と、
前記時間の経過に対する往復時間値（ＲＴＴ）の平均偏差を示す平均偏差値（ＲＴＴＶＡＲ（ｏｌｄ）を前記演算装置によって求めて前記記憶装置に記憶する過程と、
少なくとも、前記記憶装置に記憶された平均偏差値（ＲＴＴＶＡＲ（ｏｌｄ））、前記測定装置により測定した往復時間値（ＲＴＴ）、前記記憶装置に記憶された平滑化往復時間値（ＳＲＴＴ（ｏｌｄ））及び第２の重み係数（ｈ）に基づく演算式を前記演算装置によって実行することにより、時間の経過に対する前記往復時間値（ＲＴＴ）の平均偏差を表す新たな平均偏差値（ＲＴＴＶＡＲ（ｎｅｗ））を計算する過程と、
少なくとも、前記新たな平滑化往復時間値（ＳＲＴＴ（ｎｅｗ））、前記新たな平均偏差値（ＲＴＴＶＡＲ（ｎｅｗ））及び第３の重み係数（ｗ）に基づく演算式を前記演算装置によって実行することにより、前記パラメータ（ＲＴＯ）を計算する過程とを有し、
前記第１、第２及び第３の重み係数（ｇ、ｈ、ｗ）のうちの少なくとも一つを時間の経過に対して可変なものとすることを特徴とする方法。
【請求項１２】
当該少なくとも一つの重み係数の前記所定の時間における値を、前記所定の時間までに送信されたが前記所定の時間までに受信応答されていないデータ・ユニットの数（Ｎ）を表す値（Ｎ、ＳＮ、ｓｓｔｈｒｅｓｈ）と関連付けたものにする、ことを特徴とする請求項１１記載の方法。
【請求項１３】
前記第１（ｇ）、第２（ｈ）及び第３（ｗ）の重み係数を時間に依存するものとし、前記第１（ｇ）及び第２（ｈ）の重み係数を同一とし、前記第３の重み係数（ｗ）を前記第１の重み係数（ｇ）の逆数値に等しいものとする、ことを特徴とする請求項１１又は１２記載の方法。
【請求項１４】
請求項１２または１３記載の方法であって、前記第１の重み係数（ｇ）及び前記第２の重み係数（ｈ）を、前記所定の時間までに送信されたが前記所定の時間までに受信応答されていないデータ・ユニットの数（Ｎ）を表す前記値（Ｎ、ＳＮ、ｓｓｔｈｒｅｓｈ）の所定の関数（Ｆ）の逆数値（１／Ｆ）に等しいものとし、前記第３の重み係数（ｗ）を前記関数（Ｆ）に等しいものとする、ことを特徴とする方法。
【請求項１５】
前記所定の関数（Ｆ）を、前記所定の時間までに送信されたが前記所定の時間までに受信応答されていないデータ・ユニットの数（Ｎ）を表す前記値（Ｎ、ＳＮ、ｓｓｔｈｒｅｓｈ）と１との和とする、ことを特徴とする請求項１４記載の方法。
【請求項１６】
請求項１２ないし１５のうちの一項に記載の方法であって、前記所定の時間までに送信されたが前記所定の時間までに受信応答されていないデータ・ユニットの数（Ｎ）を表す前記値（Ｎ、ＳＮ、ｓｓｔｈｒｅｓｈ）を、
−前記所定の時間までに送信されたが前記所定の時間までに受信応答されていないデータ・ユニットの数（Ｎ）、
−前記所定の時間までに送信されたが前記所定の時間までに受信応答されていない前記データ・ユニットの数（Ｎ）の平滑化平均（ＳＮ）、及び
−スロー・スタート閾値（ｓｓｔｈｒｅｓｈ）
のうちの一つとする、ことを特徴とする方法。
【請求項１７】
通信の受信側から送信側へデータ・ユニットの正しい受信についての受信応答メッセージを送る受信応答機能を規定すると共にタイム−アウト期間内に受信応答が送信側に到達しない場合にデータ・ユニットを再送する再送タイム−アウト機能を規定するプロトコル（ＴＣＰ）を実施するデータ・ユニット送信機であって、
所定の演算を実行する演算装置と、
情報を記憶する記憶装置と、
所定のデータ・ユニットの送信と当該所定のデータ・ユニットに対応する受信応答の受信との間に経過する時間を表す往復時間の往復時間値（ＲＴＴ）を測定する装置と、
を含むデータ・ユニット送信機において、当該再送タイム−アウト機能に係るパラメータ（ＲＴＯ）を決定する方法であって、
前記測定装置により前記往復時間値（ＲＴＴ）を測定する過程と、
前記測定装置により測定した往復時間値（ＲＴＴ）の平滑化往復時間値（ＳＲＴＴ（ｏｌｄ））を前記演算装置によって求めて前記記憶装置に記憶する過程と、
少なくとも、前記記憶装置に記憶された平滑化往復時間値（ＳＲＴＴ（ｏｌｄ））及び前記測定装置により測定した往復時間値（ＲＴＴ）に基づく演算式を前記演算装置によって実行することにより、新たな平滑化往復時間値（ＳＲＴＴ（ｎｅｗ））を計算する過程と、
前記時間の経過に対する往復時間値（ＲＴＴ）の平均偏差を表す平均偏差値（ＲＴＴＶＡＲ（ｏｌｄ））を前記演算装置によって求めて前記記憶装置に記憶する過程と、
少なくとも、前記記憶装置に記憶された平均偏差値（ＲＴＴＶＡＲ（ｏｌｄ））、前記測定装置により測定した往復時間値（ＲＴＴ）及び前記記憶装置に記憶された平滑化往復時間値（ＳＲＴＴ（ｏｌｄ））に基づく演算式を前記演算装置によって実行することにより、時間の経過に対する前記往復時間値（ＲＴＴ）の平均偏差を表す新たな平均偏差値（ＲＴＴＶＡＲ（ｎｅｗ））を計算する過程と、
少なくとも、前記新たな平滑化往復時間値（ＳＲＴＴ（ｎｅｗ））、前記新たな平均偏差値（ＲＴＴＶＡＲ（ｎｅｗ））、及び前記送信側と前記受信側との間の前記通信において生じるスプリアス・タイム−アウトの数（ＳＰＴＯ）を表す値（Φ（ＳＰＴＯ））に基づく演算式を前記演算装置によって実行することにより、前記パラメータ（ＲＴＯ）を計算する過程と、
を有する方法。
【請求項１８】
前記パラメータ（ＲＴＯ）を、前記新たな平滑化往復時間値（ＳＲＴＴ（ｎｅｗ））及び前記新たな平均偏差値（ＲＴＴＶＡＲ（ｎｅｗ））に応じて定まる第１の係数とスプリアス・タイム−アウトの数を表す前記値（Φ（ＳＰＴＯ））に応じて定まる第２の係数との積として計算する、ことを特徴とする請求項１７記載の方法。
【請求項１９】
請求項１７又は１８記載の方法であって、スプリアス・タイム−アウトの数を表す前記値（Φ（ＳＰＴＯ））は、１と、スプリアス・タイム−アウトによって生じたデータ・ユニット再送の数（ｎ（ＳＰＴＯ））を所定の時間の期間中に送信されたデータ・ユニットの総数（ｎ）で除算した割合と乗算係数（ｆ）との積との、和とする、ことを特徴とする方法。
【請求項２０】
前記乗算係数（ｆ）を５０より大きいか若しくはこれに等しいものとすることを特徴とする請求項１９記載の方法。
【請求項２１】
スプリアス・タイム−アウトの数を表す前記値（Φ（ＳＰＴＯ））を、スプリアス・タイム−アウトの数に基づいて決定される平滑化平均（ＳＲ）とする、ことを特徴とする請求項１７又は１８記載の方法。
【請求項２２】
請求項２１記載の方法であって、受信応答が受信された場合において、前記受信応答がスプリアス・タイム−アウトを示すものかどうかを判断し、前記受信応答がスプリアス・タイム−アウトを示すものであるときには、ＳＲが前記平滑化平均の記憶された値を表し、かつ、ｗｓｒが重み係数を表すものとして、整数定数（Ｎ）及び
【数６】
0004601232.tif 000037
のうちの最小のものに前記平滑化平均の前記記憶された値を更新し、前記タイム−アウトがスプリアス・タイム−アウトでないときには、前記平滑化平均の当該記憶された値と所定の係数との積に前記平滑化平均を更新するように、前記平滑化平均（ＳＲ）を決定する、ことを特徴とする方法。
【請求項２３】
前記重み係数（ｗｓｒ）を０．５に等しいものとすることを特徴とする請求項２２記載の方法。
【請求項２４】
前記所定の係数を周期毎に送られたデータ・ユニットの数を表す値（Ｍ）と関連付けたものにすることを特徴とする請求項２２又は２３記載の方法。
【請求項２５】
周期毎のデータ・ユニットの数を表す前記値（Ｍ）をスロー・スタート閾値（ｓｓｔｈｒｅｓｈ）に基づいて決定することを特徴とする請求項２４記載の方法。
【請求項２６】
請求項２５記載の方法であって、Ｍが前記値を表し、かつ、ｓｓｔｈｒｅｓｈがスロー・スタート閾値を表すものとして、
【数７】
0004601232.tif 000038
として前記値（Ｍ）を決定する、ことを特徴とする方法。
【請求項２７】
請求項２４ないし２６のうちの一項に記載の方法であって、Ｍが周期毎に送られたデータ・ユニットの数を表す前記値（Ｍ）を表し、かつ、Ｋが０≦Ｋ＜１である値を有するものとして、前記所定の係数を
【数８】
0004601232.tif 000039
に等しいものとする、ことを特徴とする方法。
【請求項２８】
前記パラメータ（ＲＴＯ）について上限値及び下限値を設定することを特徴とする請求項１ないし２７のうちの一項に記載の方法。
【請求項２９】
請求項２８記載の方法であって、当該下限値を、少なくとも、測定した往復時間値（ＲＴＴ）と前記データ・ユニット送信機における計時システムが分解できる時間の最短期間である目盛サイズ（ＴＩＣＫ）との和とする、ことを特徴とする方法。
【請求項３０】
前記送信側によって送信されるすべてのデータ・ユニットについて往復時間（ＲＴＴ）を測定することを特徴とする請求項１ないし２９のうちの一項に記載の方法。
【請求項３１】
往復時間値（ＲＴＴ）を測定する度に前記パラメータ（ＲＴＯ）を計算することを特徴とする請求項３０記載の方法。
【請求項３２】
デジタル・コンピュータの内部メモリ中に直接ロード可能なコンピュータ・プログラムであって、前記プログラムがデジタル・コンピュータ上で作動されるときに請求項１ないし３１のうちの一項に記載の方法を実行するためのソフトウェア・コード部分を含む、コンピュータ・プログラム。
【請求項３３】
通信の受信側から送信側へデータ・ユニットの正しい受信についての受信応答メッセージを送る受信応答機能を規定すると共にタイム−アウト期間内に受信応答が送信側に到達しない場合にデータ・ユニットを再送する再送タイム−アウト機能を規定するプロトコル（ＴＣＰ）を実施する構成とされ、かつ、当該再送タイム−アウト機能に係るパラメータ（ＲＴＯ）を決定する構成とされた、データ・ユニット送信機であって、
所定の演算を実行する演算装置と、
情報を記憶する記憶装置と、
所定のデータ・ユニットの送信と当該所定のデータ・ユニットに対応する受信応答の受信との間に経過する時間を表す往復時間の往復時間値（ＲＴＴ）を測定する測定装置と、
を含むデータ・ユニット送信機において、
前記測定装置によって前記往復時間値（ＲＴＴ）を測定する過程と、
前記測定装置によって測定した往復時間値（ＲＴＴ）の平滑化往復時間値（ＳＲＴＴ（ｏｌｄ））を前記演算装置によって求めて前記記憶装置に記憶する過程と、
少なくとも、前記記憶装置により記憶された平滑化往復時間値（ＳＲＴＴ（ｏｌｄ））及び前記測定装置により測定した往復時間値（ＲＴＴ）に基づく演算式を前記演算装置によって実行することにより、新たな平滑化往復時間値（ＳＲＴＴ（ｎｅｗ））を計算する過程と、
前記時間の経過に対する往復時間値（ＲＴＴ）の平均偏差を表す平均偏差値（ＲＴＴＶＡＲ（ｏｌｄ）を前記演算装置によって求めて前記記憶装置に記憶する過程と、
少なくとも、前記記憶装置に記憶された平均偏差値（ＲＴＴＶＡＲ（ｏｌｄ））、前記測定装置により測定した往復時間値（ＲＴＴ）及び前記記憶装置により記憶された平滑化往復時間値（ＳＲＴＴ（ｏｌｄ））に基づく演算式を前記演算装置によって実行することにより、時間の経過に対する前記往復時間値（ＲＴＴ）の平均偏差を表す新たな平均偏差値（ＲＴＴＶＡＲ（ｎｅｗ））を計算する過程と、
少なくとも、前記新たな平滑化往復時間値（ＳＲＴＴ（ｎｅｗ））及び前記新たな平均偏差値（ＲＴＴＶＡＲ（ｎｅｗ））に基づく演算式を前記演算装置によって実行することにより、前記パラメータ（ＲＴＯ）を計算する過程と、
を実行するように構成され、
前記記憶装置に記憶された平滑化往復時間値（ＳＲＴＴ（ｏｌｄ））に基づいて決定される所定の閾値（ＴＨ（ＳＲＴＴ（ｏｌｄ）））よりも、前記測定装置により測定された往復時間値（ＲＴＴ）が大きいか小さいかに基づいて、前記新たな平均偏差値（ＲＴＴＶＡＲ（ｎｅｗ））が異なる方法で計算されることを特徴とするデータ・ユニット送信機。
【請求項３４】
通信の受信側から送信側へデータ・ユニットの正しい受信についての受信応答メッセージを送る受信応答機能を規定すると共にタイム−アウト期間内に受信応答が送信側に到達しない場合にデータ・ユニットを再送する再送タイム−アウト機能を規定するプロトコル（ＴＣＰ）を実施する構成とされ、かつ、当該再送タイム−アウト機能に係るパラメータ（ＲＴＯ）を決定する構成とされた、データ・ユニット送信機であって、
所定の演算を実行する演算装置と、
情報を記憶する記憶装置と、
所定のデータ・ユニットの送信と当該所定のデータ・ユニットに対応する受信応答の受信との間に経過する時間を表す往復時間の往復時間値（ＲＴＴ）を測定する測定装置と、
を含むデータ・ユニット送信機であって、
前記測定装置により前記往復時間値（ＲＴＴ）を測定する過程と、
当該測定装置により測定した往復時間値（ＲＴＴ）の平滑化往復時間値（ＳＲＴＴ（ｏｌｄ））を前記演算装置によって求めて前記記憶装置に記憶する過程と、
少なくとも、前記記憶装置に記憶された平滑化往復時間値（ＳＲＴＴ（ｏｌｄ））、前記測定装置により測定した往復時間値（ＲＴＴ）及び第１の重み係数（ｇ）に基づく演算式を前記演算装置によって実行することにより、新たな平滑化往復時間値（ＳＲＴＴ（ｎｅｗ））を計算する過程と、
前記時間の経過に対する往復時間値（ＲＴＴ）の平均偏差を表す平均偏差値（ＲＴＴＶＡＲ（ｏｌｄ）を前記演算装置によって求めて前記記憶装置に記憶する過程と、
少なくとも、前記記憶装置に記憶された平均偏差値（ＲＴＴＶＡＲ（ｏｌｄ））、前記測定装置により測定した往復時間値（ＲＴＴ）、前記記憶装置に記憶された平滑化往復時間値（ＳＲＴＴ（ｏｌｄ））及び第２の重み係数（ｈ）に基づく演算式を前記演算装置によって実行することにより、時間の経過に対する前記往復時間値（ＲＴＴ）の平均偏差を表す新たな平均偏差値（ＲＴＴＶＡＲ（ｎｅｗ））を計算する過程と、
少なくとも、前記新たな平滑化往復時間値（ＳＲＴＴ（ｎｅｗ））、前記新たな平均偏差値（ＲＴＴＶＡＲ（ｎｅｗ））及び第３の重み係数（ｗ）に基づく演算式を前記演算装置によって実行することにより、前記パラメータ（ＲＴＯ）を計算する過程と、
を実行し、
前記第１、第２及び第３の重み係数（ｇ、ｈ、ｗ）のうちの少なくとも一つを時間の経過に対して可変なものとするように構成されていることを特徴とするデータ・ユニット送信機。
【請求項３５】
通信の受信側から送信側へデータ・ユニットの正しい受信についての受信応答メッセージを送る受信応答機能を規定すると共にタイム−アウト期間内に受信応答が送信側に到達しない場合にデータ・ユニットを再送する再送タイム−アウト機能を規定するプロトコル（ＴＣＰ）を実施する構成とされ、かつ、当該再送タイム−アウト機能に係るパラメータ（ＲＴＯ）を決定する構成とされた、データ・ユニット送信機であって、
所定の演算を実行する演算装置と、
情報を記憶する記憶装置と、
所定のデータ・ユニットの送信と当該所定のデータ・ユニットに対応する受信応答の受信との間に経過する時間を表す往復時間の往復時間値（ＲＴＴ）を測定する測定装置と、
を含むデータ・ユニット送信機であって、
前記測定装置により前記往復時間値（ＲＴＴ）を測定する過程と、
当該測定した往復時間値（ＲＴＴ）の平滑化往復時間値（ＳＲＴＴ（ｏｌｄ））を前記演算装置によって求めて前記記憶装置に記憶する過程と、
少なくとも、前記記憶装置に記憶された平滑化往復時間値（ＳＲＴＴ（ｏｌｄ））及び前記測定装置により測定した往復時間値（ＲＴＴ）に基づく演算式を前記演算装置によって実行することにより、新たな平滑化往復時間値（ＳＲＴＴ（ｎｅｗ））を計算する過程と、
前記時間の経過に対する往復時間値（ＲＴＴ）の平均偏差を表す平均偏差値（ＲＴＴＶＡＲ（ｏｌｄ）を前記演算装置によって求めて前記記憶装置に記憶する過程と、
少なくとも、前記記憶装置に記憶された平均偏差値（ＲＴＴＶＡＲ（ｏｌｄ））、前記測定装置により測定した往復時間値（ＲＴＴ）及び前記記憶装置に記憶された平滑化往復時間値（ＳＲＴＴ（ｏｌｄ））に基づく演算式を前記演算装置によって実行することにより、時間の経過に対する前記往復時間値（ＲＴＴ）の平均偏差を表す新たな平均偏差値（ＲＴＴＶＡＲ（ｎｅｗ））を計算する過程と、
少なくとも、前記新たな平滑化往復時間値（ＳＲＴＴ（ｎｅｗ））、前記新たな平均偏差値（ＲＴＴＶＡＲ（ｎｅｗ））、及び前記送信側と前記受信側との間の前記通信において生じるスプリアス・タイム−アウトの数を表す値（ＳＲ）に基づく演算式を前記演算装置によって実行することにより、前記パラメータ（ＲＴＯ）を計算する過程と、
を実行するように構成されていることを特徴とするデータ・ユニット送信機。
【発明の詳細な説明】
【０００１】
（発明の背景）
本発明は、データ・ユニットの送信機における再送タイム−アウト機能（retransmission time-out feature）に係るパラメータを決定（determining（決定ないし判断））するための方法及び装置に関する。
【０００２】
一般に、通信の分野では、回線交換接続（circuit-switched connections）とデータ・ユニット交換接続（data unit switched connections）との区別がなされている。データ・ユニット交換接続においては、送られる大量のデータがデータ・ユニットに分割され、それらのデータ・ユニットが通信を律するプロトコルに従って送られる。データ・ユニットについては、プロトコルが異なる場面では例えばパケットやフレーム等のようなそれぞれ異なる名称が与えられるという点を特筆することもできるが、以下の説明では便宜上“データ・ユニット”の用語を総称的なものとして用いることにする。
【０００３】
信頼性の高いデータの伝送を確保するために、多くのプロトコルは、データ・ユニット再送（data unit retransmission）の機能を備えている。より具体的には、データ・ユニット再送では、通信中の受信側によるデータ・ユニットの正しい受信（correct receipt（誤りのない受信））を、受信側が送信側（sender（送信側ないし送信元））へ送り返す適切な受信応答メッセージ（acknowledgment message）によって確認することになっている。受信応答が送信側で受信され次第、その送信側はさらなるデータ・ユニットを適切に送り続けることができ、あるいは、受信応答のメッセージが何等受信されない場合や否受信応答メッセージ（non-acknowledgment message）が受信された場合では、受信側で正しく受信されなかったデータ・ユニットを再送信することができる。
【０００４】
データ・ユニット再送に伴う典型的な機能として、再送タイム−アウトの機能がある。この機能は、通信中の送信側が受信応答メッセージを予め定められた時間の期間、すなわち、再送タイム−アウト期間の間だけ待つこととしたものである。この時間を受信応答の受信がないまま経過した後に、対応するデータ・ユニットが自動的に再送信される。この機能は、データ・ユニットが紛失した場合に、その紛失したデータ・ユニットが上記タイム−アウト期間後に自動的に再送されることを保証する。
【０００５】
再送及び再送タイム−アウト機能を規定したプロトコルの一例としては、よく知られた一連のＴＣＰ／ＩＰプロトコルの部分である、いわゆる伝送制御プロトコル（ＴＣＰ（transmission control protocol））が挙げられる。概して、いわゆる往復時間ＲＴＴ（round trip time）に応じて、すなわち、データ・ユニットの送信と当該データ・ユニットに対する受信応答の受信との間に経過する時間に応じて、タイム−アウト期間を決定する必要があるのは、疑う余地のない明らかなところである。
【数９】
0004601232.tif 000002
すなわち、接続が“遠い”（“distant”）場合（換言すればＲＴＴが長い場合）には、“近い”（“close”）接続についての場合（換言すればＲＴＴが短い場合）よりもタイム−アウト期間を長く設定しなければならない。このような状況において、余りに長く設定されたタイム−アウト期間は伝送における無駄な遅延を生じさせる結果となるので、タイム−アウト期間は必要な分だけ長く、かつ、可能な限り短く設定すべきであるということもまた明らかである。
【０００６】
測定されるＲＴＴの値は、例えばデータ・ユニットを転送するネットワーク上のトラヒック状態や遅延受信応答（delayed acknowledgment）のメカニズム等のような複数の要因により、短い時間の期間中で激しく変動し得る。この問題を克服するために、往復時間についての平滑化推定量（smoothed estimator for the roundtrip time（往復時間についての平滑化した（滑らかにした）推定量））を導入することが提案されている。これについては、例えば“TCP/IP Illustrated, Volume 1”The Protocols”by W. Richard Stevens, Section 21.3, Addison Wesley 1994に説明されている。ＲＴＴの推定量を決定する最初の方法では、次の式を用いている。
【数１０】
0004601232.tif 000003
ここで、ＳＲＴＴは平滑化推定量を表し、ＲＴＴは測定された往復時間の瞬時値（momentarily measured round-trip time value（瞬間的に測定された往復時間値））を表し、αは推奨値を０．９とする重み係数ないし平滑係数（weight or smoothening factor（重み付けないし平滑化をする係数））である。平滑化推定量ＳＲＴＴは、新たなＲＴＴの測定が行われる度に更新される。前記０．９という値は、それぞれの新たな推定の９０％を前の推定に基づくものとし、かつ、１０％を新たな測定に基づくものとする値である。ＲＦＣ７９３（ＲＦＣ＝Request for Comments（インターネットの規格等に関する公開文書））では、いわゆる再送タイム−アウト値（retransmission time-out value）ＲＴＯを
【数１１】
0004601232.tif 000004
と設定することが勧告されている。ここで、ＲＴＯとは、上述したタイム−アウト期間について、ＴＣＰに関連して用いられる特定の項（ＴＣＰ特有の用語）である。また、βは、推奨値を２とするさらなる重み係数であり、遅延分散係数（delay variance factor）とも呼ばれている。
【０００７】
ＲＴＯを計算することに対する上述のアプローチは、ＲＴＴの広範囲の揺らぎ（fluctuations（揺らぎないし変動））に遅れずに追従していくことができないという問題点を有している。これは、ネットワーク内の状態を悪化させる不要な再送を行わせる結果となる。このようなことから、平均値（mean value）を考慮するだけでなく標準偏差（standard deviation）の経過を追跡（監視）する試みもすることとした改良が提案されている。上述のStevensによる著書においては、標準偏差の計算をすることが好ましい旨の言及があるが、それによって平方及び平方根の計算が必要となるので、その計算は避ける方が好ましい。このため、結果として次のようなアプローチが導出されることになる。
【数１２】
0004601232.tif 000005
【数１３】
0004601232.tif 000006
【数１４】
0004601232.tif 000007
【数１５】
0004601232.tif 000008
ここで、ＲＴＴは再び上記同様に測定された往復時間値を表し、ＳＲＴＴは平滑化した往復時間の推定量を表し、ＲＴＴＶＡＲは平均偏差（mean deviation）についての推定量を表し、ＲＴＯは再送タイム−アウト値を表し、ｇは第１の重み係数を表し、ｈは第２の重み係数を表す。これらの重み係数ｇ及びｈは、ゲイン（利得）とも呼ばれるものであり、ｇの値が０．１２５に設定されるのに対してｈの値が０．２５に設定される。
【０００８】
上述した式（４）ないし（７）によるアプローチは、十年以上の間、適切なものであるとされていた。
【０００９】
（発明の目的）
本発明は、再送タイム−アウト機能を規定するプロトコルを実施（implementing（実施ないし履行））するデータ・ユニット送信機について、データ送信（データ伝送）の改良したシステムを提供することを目的としている。
【００１０】
（発明の要約）
この目的は、再送タイム−アウト機能に係るパラメータ（例えばＲＴＯ）の決定をより柔軟でかつより適応的なものとすることによって達成される。
【００１１】
請求項１及び３３に記載した第１の側面（特徴）によれば、平均偏差値（例えば上のＲＴＴＶＡＲ）の計算は、当該平均偏差値に対する測定した往復時間値（例えば上のＲＴＴ）の寄与（contribution）を、記憶された平滑化往復時間値（上のＳＲＴＴ）に基づいて決定される閾値よりも測定した往復時間値が小さい場合に、当該閾値よりも測定した往復時間値が大きい場合とは異なるものにするように実行される。
【００１２】
好ましい実施形態によれば、この閾値が平滑化往復時間値の値に等しいものとされる。換言すれば、式（４）ないし（７）の上の例については、この好ましい実施形態により、負の値であるΔと正の値であるΔとに対してＲＴＴＶＡＲが異なる形態で計算されることになる。これにより、測定される往復時間の減少する値が再送タイム−アウト・パラメータの増大を引き起こすのを回避することができる。より具体的には、詳細は好ましい実施形態の説明において明らかにするが、上の式（６）がΔの絶対値を取り入れているという事実により、減少するＲＴＴの値（ＲＴＴ＜ＳＲＴＴ）は、ＲＴＴＶＡＲの値に対して、増大するＲＴＴの値（ＲＴＴ＞ＳＲＴＴ）と同じ影響を持つものになっている。その結果として、上の式（７）において係数４・ＲＴＴＶＡＲがＳＲＴＴの係数より重い（重みがある）ときには、減少するＲＴＴの値がＲＴＯを増加させる作用効果を持つことになる。この全く望ましくない作用効果は、本発明の発明者が認識したものであり、上述した請求項１の包括的な方法によって回避することができる。
【００１３】
請求項１１及び３４に記載した本発明の特徴における第２の側面によれば、重み係数（例えば、ｇ、ｈ及び式（７）におけるＲＴＴＶＡＲの前にある４という特定の係数）が時間の経過に対して可変なものとされる。この機能は、通信を遂行しているネットワークでの変化する状況に対し、タイム−アウト・パラメータ（例えば上のＲＴＯ）の決定をより一層柔軟なものにする。この第２の側面の好ましい実施形態によれば、“飛行中”（“in flight”）のデータ・ユニットの数（個数）、すなわち、任意の時点において、送信はされたが未だ受信応答はされていないデータ・ユニットの数（未処理（outstanding）データ・ユニットの数ともいう。）に、各重みの値が依存するものとされる。
【００１４】
請求項１７及び３５に記載した本発明の特徴における第３の側面によれば、タイム−アウト・パラメータ（例えばＲＴＯ）の決定は、そのパラメータを、さらに与えられた送信側と受信側の間の通信において生じるスプリアス・タイム−アウト（spurious time-outs（不要なタイム−アウトないし誤ったタイム−アウト））の数を表す値にも基づいて計算するようにして、行われる。スプリアス・タイム−アウトとは、リンク上の過度の遅延によって発生するタイム−アウトであり、データ・ユニットの実際の紛失（loss）によって発生するものではない。これの利点は、より用心深い（すなわち、より長い）タイム−アウト期間を計算することについての基準（basis（基準ないし基礎））として、スプリアス・タイム−アウトにより与えられるインプリケーション（implication（含意ないし伴立））、すなわち、タイム−アウト期間が短過ぎるということを利用できる点である。
【００１５】
上述した３つの側面は、あらゆる適宜の形態で好適に組み合わせることができる。かかる組合せは、Ｅｉｆｅｌ再送タイマ（Eifel retransmission timer）とも呼ばれる。本発明の有利な実施形態については、各従属請求項に記載してある。
【００１６】
（図面の簡単な説明）
本発明は、図面を参照しつつ行う以下の好ましい実施形態についての詳細な説明によってより完全に理解することができる。それらの図面において、
図１は、ＴＣＰ定常状態（TCP steady state）について、時間の経過中における再送タイム−アウト機能に係る様々なパラメータを示したグラフであり、
図２は、図１のグラフの部分拡大図（enlarged section）を示し、
図３は、時間の経過に対する再送タイム−アウト・パラメータの他のグラフを示している。
【００１７】
（好ましい実施形態の詳細な説明）
以下の説明は、ＴＣＰへの適用をする場面に関して行うものとする。ただし、これは好ましい一例に過ぎないものであり、再送及び再送タイム−アウトを規定する任意の伝送プロトコルに対して本発明を適用することができるという点には留意されたい。
【００１８】
本発明の特徴における第１の側面によれば、平均偏差値ＲＴＴＶＡＲの値が更新されるときに、記憶（蓄積）された平滑化往復時間値ＳＲＴＴ（ｏｌｄ）（旧ＳＲＴＴ）に基づいて決定される所定の閾値ＴＨよりも測定された往復時間値ＲＴＴの方が小さい場合には、更新される平均偏差値ＲＴＴＶＡＲに対する測定された往復時間値ＲＴＴの寄与は、その所定の閾値ＴＨよりも測定された往復時間値ＲＴＴの方が大きい場合とは異なるものとなる。
【００１９】
本発明の第１の実施形態によれば、閾値ＴＨをＳＲＴＴの記憶された値と等しくすると共に、上の式（６）に示したようなパラメータＲＴＴＶＡＲの計算ないし更新を次式に示す形態に変更する。
【数１６】
0004601232.tif 000009
値Δが０である場合（Δ＝０）については、式（８．１）における上段と下段の選択対象式（alternative）のいずれに割り当てることにしてもよいが、ＲＴＴが一定になればＲＴＴＶＡＲが時間の経過と共に減衰することを確保するためには、Δ＝０の場合を上段の選択対象式に割り当てる方が好ましい。
【００２０】
見て分かるように、ＲＴＴの負の変動（negative variations）、すなわち、ＲＴＴがＳＲＴＴよりも小さい場合は、フィルタリングされて除去される。このようにして、式（６）中でΔの絶対値を採用していることによる不利な影響を未然に回避する。このことについては、以下の図１の詳細な説明と関連させつつ、より明らかにする。
【００２１】
図１は、時間の経過に対して再送タイム−アウトに係る各パラメータを示している。これらのパラメータは、ＴＣＰ定常状態において測定されたもの、すなわち、専らそれ自体へのリンクを備えた既定の送信側と受信側の間の接続において測定されたものである。段階的に変化している図の最下部にあるグラフは、往復時間ＲＴＴの測定された値を図示している。ＲＴＯ（ｐａ）を表す記号は、従来技術による式（４）ないし（７）を用いて計算した場合の再送タイム−アウト・パラメータを表している。Ｒｅｘｍｔ（ｐａ）の各値は、典型的に実施されている再送タイマ（retransmission timer）と関係する値である。これについて簡潔に説明する。
【００２２】
理論的には、再送タイム−アウト値ＲＴＯと再送タイマＲｅｘｍｔは同一となるはずのものである。しかしながら、本発明の発明者が確認したところによれば、従来技術によるＴＣＰの実施は、実際には常にＲＴＯとＲｅｘｍｔの差を生じさせる誤差を含んでいる。この誤差は、実際の再送タイマが常に最も旧い未処理データ・ユニット（すなわち、受信応答がされていないデータ・ユニット）に対して始動される、という事実に起因するものである。その一方で、累積的（cumulative）受信応答や遅延受信応答を使用することに起因して、特定のデータ・ユニットを送信した時点ではその特定のデータ・ユニットがじきに最も旧い未処理データ・ユニットになるであろうということは分からないのが通例である。その特定のデータ・ユニットが最も旧い未処理データ・ユニットであるということは、当該特定のデータ・ユニットまでのすべてのデータ・ユニットに対する受信応答が受信された後に初めて分かる。すべての実践的なＴＣＰの実施では、常に、当該特定されるデータ・ユニットまでのすべてのデータ・ユニットに対するこの受信応答を受信したときにのみ、再送タイマを始動する。その結果として、データ・ユニットの送信と当該データ・ユニットまでのすべてのデータ・ユニットに対する受信応答メッセージの受信との間には、常に遅延δがあることになる。この遅延δは、再送タイマＲｅｘｍｔが再送タイム−アウト値ＲＴＯよりも大きくなるという結果をもたらし、具体的に言えばＲｅｘｍｔ＝ＲＴＯ＋δとすることになる。
【００２３】
この影響による結果として、再送タイム−アウトは、常に、用心深過ぎる、すなわち、長過ぎるものとなっている。
【００２４】
図１に戻ると、このＲＴＯ（ｐａ）とＲｅｘｍｔ（ｐａ）との間の差が容易に確認できる。さらに、図には、式（８．１）で上に示した本発明に基づいて計算したＲＴＯの値も示してある。
【００２５】
太線矢印Ａ及びＢの所を見れば分かるように、測定された往復時間値ＲＴＴが急激に減少しているときには、その結果としてＲＴＯ（ｐａ）の急激な増加を生じている。これは、再送タイム−アウト値が往復時間に追随する動向（tendency（動向ないし傾向））を有するべきであることから、非常に望ましくない。見て分かるように、その動向を再送タイム−アウト値が有することは、本発明に基づくＲＴＯの値によって明らかに達成されている。これらの本発明に基づくＲＴＯの値は、上の式（８．１）に従って計算した平均偏差値ＲＴＴＶＡＲに基づいて計算したものである。見て分かるように、本発明に基づいて決定されたＲＴＯの値は、ＲＴＴの動向に追随し、かつ、常にＲＴＴの上側でＲＴＴ付近にある値となっており、正に要望される通りの値になっている。
【００２６】
図２は、図１の部分拡大図を示しており、この図２においては、ＲＴＴ、ＲＴＯ（ｐａ）及びＲＴＯだけを示してある。見て分かるように、本発明に基づいて計算した場合のＲＴＯの値は、従来技術によって計算したＲＴＯ（ｐａ）よりも安定したグラフを有している。
【００２７】
上の式（８．１）においては、平均偏差ＲＴＴＶＡＲに対してＲＴＴがどちらの寄与をするべきかを決定（判断）するのに用いる閾値ＴＨを、記憶された平滑化往復時間値ＳＲＴＴとしていた。しかし、本発明は、それに限定されるものではなく、一般にＳＲＴＴに基づいて決定される任意の数値を適宜閾値ＴＨとすることができ、例えば、ＴＨ（ＳＲＴＴ）＝ＳＲＴＴ＋constやＴＨ（ＳＲＴＴ）＝ＳＲＴＴ−const等（ここにいうconstは適切な任意の定数値を表す。）のような値、すなわち、ＳＲＴＴの記憶された値よりある程度上側ないし下側にある閾値を、閾値ＴＨとすることができる。概してＴＨは、適切な任意のＳＲＴＴの関数にすることができる。
【００２８】
したがってこのことから、より一般化した次の式（８．２）が導き出される。
【数１７】
0004601232.tif 000010
上記同様、ＲＴＴ＝ＴＨ（ＳＲＴＴ）の場合については、上段の選択対象式に割り当てる方が好ましい。
【００２９】
上の式（８．１）と式（８．２）においては、それぞれＲＴＴＶＡＲを計算するための２つの選択対象式が与えられているが、より多くの選択対象式を与えることも全く同様に行うことができ、測定されたＲＴＴの各値とＳＲＴＴの記憶された値とに応じてより多くの選択対象式を与えることも可能であり、さらにＲＴＴＶＡＲの記憶された値に応じてより多くの選択対象式を与えることも可能である。具体的に言えば、式（８．１）の好ましい変形としては、次の式（８．３）によって与えられるものが挙げられる（ただし、この式（８．３）は、簡略化と明確化のために擬似コード（pseudo code）で既述したものになっている。）。
【数１８】
0004601232.tif 000011
すなわち、ＲＴＴが閾値を上回るケースについては（このケースにおいてＴＨ＝ＳＲＴＴ、すなわちΔ＝０）、２つのサブ−ケース（sub-cases）が考えられる。ｈが０と１の間の値又はその範囲に制限される関数である場合（これが一般には実情となる）、上の式（８．３）の作用効果が“緩衝装置”特性（“shock absorber”characteristic）のタイプとなる、つまり、ＲＴＴの増加に応じたＲＴＯ（さらに後で説明するような任意の適切な形態で計算されるＲＴＯ）の増加の方がＲＴＴの減少に応じたＲＴＯの減少よりも速いものとなる。
【００３０】
最終的には、式（８．１）についてのケースにもあったように、式（８．３）は、次のようにＴＨ＝ＳＲＴＴ（Δ＝０）以外の閾値の値へと一般化することにしてもよい。
【数１９】
0004601232.tif 000012
【００３１】
上の式（８．１）ないし（８．４）において、重みのパラメータｈは、一定（ｈ＝const.）又は可変の値として（定数又は変数として）選定することができる。好ましくは、このパラメータｈは、時間の経過に対して可変であるもの（ｈ＝ｈ（ｔ））に選定するのがよい。さらに、より好ましくは、このパラメータｈは、与えられた時間における未処理データ・ユニットの数（個数）Ｎと関連付けるように選定するのがよい。その瞬時値ｈ（ｔ）は、例えば１／Ｎ（ｔ）となるように選定することができる。ここで、Ｎ（ｔ）は、時間ｔにおける時点までに送信はされたが受信応答はされていないデータ・ユニットの数を表している。
【００３２】
ｈをＮと直接的に関連付けることも可能であるが、Ｎの移動平均（moving average）ないしＮの平滑化した値（“雑音を含む”ＲＴＴ値（“noisy”RTT values）の平滑化した平均値であるＳＲＴＴに類似するもの）を用いる方が好ましい。すなわち、未処理データ・ユニットの数Ｎの移動平均値ＳＮを用いることができ、この移動平均値ＳＮは、例えば
【数２０】
0004601232.tif 000013
として決定することができる。ここで、ｍは適宜の重み係数である。
【００３３】
未処理データ・ユニットの数を表す（示唆する）値を得ることが可能な他の形態として、重みｈは、いわゆるスロー・スタート閾値（slow start threshold）ｓｓｔｈｒｅｓｈ（例えばＴＣＰにより知られている。上述のStevensによる著書，Chapter 21.6参照）と関連付けることもできる。ｓｓｔｈｒｅｓｈは、事実上、未処理データ・ユニットの個数についての平滑化平均（平滑化した（滑らかにした）平均）とみなすことができるからである。
【００３４】
スロー・スタート閾値ｓｓｔｈｒｅｓｈは、従来より輻湊回避（congestion avoidance）に関連して用いられているものである。輻湊回避は、窓単位のフロー制御（window based flow control）で用いられており、２つの主要なパラメータ、すなわち、スロー・スタート閾値といわゆる輻湊窓（congestion window）ｃｗｎｄとを有する。輻湊回避のルーチンは、基本的に次のような形態で機能する。
−輻湊窓及び受信側の公示窓（advertised window）のうちの最小のものよりも送信窓（send window）が大きいことは決してない。
−輻湊が起こった場合（例えばタイム−アウトや重複受信応答（duplicate acknowledgment）の受信によってその徴候が示される。）、瞬時送信窓サイズの２分の１（あるいは他の適切ないくらかの割合（fraction））をｓｓｔｈｒｅｓｈとして保存すると共に、タイム−アウトのときには、輻湊窓を一セグメント（one segment）にリセットする。
−新たなデータが受信応答された場合、ｃｗｎｄとｓｓｔｈｒｅｓｈとの関係に応じて、ｃｗｎｄを増大させる（拡大する）。すなわち、ｃｗｎｄがｓｓｔｈｒｅｓｈよりも小さいか若しくはこれに等しいときには、受信応答が受信される度にｃｗｎｄを一セグメントずつインクリメントし（このルーチンがスロー・スタートと呼ばれる。）、ｃｗｎｄがｓｓｔｈｒｅｓｈよりも大きいときには、受信応答が受信される度にｃｗｎｄを１／ｃｗｎｄずつインクリメントする（これが実際の輻湊回避に当たる。）。
【００３５】
スロー・スタートは窓サイズの幾何級数的な増大（exponential increase）をもたらすことになるのに対し、輻湊回避はリニアな増大（linear increase（線形性の増大））をもたらすことになるに過ぎない。
【００３６】
さて、ｈの決定の方に戻ると、概して重みｈは、未処理データ・ユニットの数を表す値の関数として選定する、すなわち、Ｎ、ＳＮないしｓｓｔｒｅｓｈの関数として選定する。ここで注記し得る点として、これらは単なる例示に過ぎず、未処理データ・ユニットの数を示す（直接的ないし間接的にそれになる）如何なる数値でも適合するという点を挙げることができる。とはいえ、別個の判断ルーチン（determination routine）が何等必要とならないように、標準的なＴＣＰの実施において既に利用可能であるのが通例のｓｓｔｈｒｅｓｈの値を用いることにするのが好ましい。
【００３７】
そこで、好ましい実施形態によれば、重みｈは、ｓｓｔｈｒｅｓｈの関数の逆数（inverse）に選定する、すなわち、ｈ＝１／（ｓｓｔｈｒｅｓｈ＋１）と選定する。ｓｓｔｒｅｓｈはバイトで定義されるが、ここでの適用においてはｓｓｔｒｅｓｈの値をセグメントに換算して用いる。すなわち、ここでの適用においては、ｓｓｔｈｒｅｓｈ＝１はｓｓｔｒｅｓｈのサイズが１つのセグメントに等しいことを意味し、ｓｓｔｈｒｅｓｈ＝２はｓｓｔｒｅｓｈのサイズが２つのセグメントに等しいことを意味する、などといった具合にしてｓｓｔｒｅｓｈの値をセグメントに換算して用いる。好ましくは、ｓｓｔｒｅｓｈのサイズは、初期の接続段階の間に設定ないしネゴシエーションされるパラメータである最大セグメント・サイズ（maximum segment size）ＭＳＳに換算して測定する。あるいは他の形態としては、１０２４バイト等のような任意の固定した値をセグメント基準（a segment reference）として用いることもできる。
【００３８】
上の式（８．１）ないし（８．４）は、様々なｈについての実現可能な形態と共に、上の式（４）、（５）及び（７）と組み合わせてＲＴＯの決定をするようにすることができる。しかしながら、式（８．１）ないし（８．４）は、次の式（９）及び（１０）と組み合わせるのが好ましい。
【数２１】
0004601232.tif 000014
【数２２】
0004601232.tif 000015
ここで、ｇ（ｔ）及びｗ（ｔ）は、時間変化する重み（time variable weights（時間的に可変な重み））を表す。好ましい実施形態によれば、３つの重みｇ（ｔ）、ｈ（ｔ）及びｗ（ｔ）は、ｈ＝ｇ及びｗ＝１／ｇという形で互いに関連付けられるものにする。
【００３９】
通常の形態では、ｇ及び／又はｗは、重みｈに関して上に説明したように、未処理データ・ユニットの数Ｎと関連付けられたものとして選定することができる。すなわち、ｇ及び／又はｗも、Ｎ、ＳＮないしｓｓｔｈｒｅｓｈ等のような未処理データ・ユニットの数Ｎを表す値の関数に選定することができる。
【００４０】
さらに、より好ましくは、上の２つの機能を組み合わせる、すなわち、３つの重みｇ、ｈ及びｗのすべてを特定の形態でＮと関連付けたものに選定するとよい。具体的に言えば、３つの重みｇ、ｈ及びｗのすべてを次に示すように適宜選択可能なＦの関数（appropriately selectable function of F）と関連付けたものとして選定するとよい（ここで、Ｆは、Ｎ、ＳＮ、ｓｓｔｒｅｓｈ若しくは未処理データ・ユニットの数を表す他の適切な任意の数値の、関数である。）。
【数２３】
0004601232.tif 000016
一例としては、Ｆ（Ｎ）をＦ（Ｎ）＝Ｎ＋１と選定して
【数２４】
0004601232.tif 000017
となるようにすることができる。平滑化平均ＳＮやスロー・スタート閾値ｓｓｔｈｒｅｓｈに基づいて各重みを選定することも全く同様に可能であり、
【数２５】
0004601232.tif 000018
のようにすることもでき、例えば、
【数２６】
0004601232.tif 000019
とすることもできる。
【００４１】
当然のことだが、組合せ（combinations）としては、重みｇ、ｈ及びｗのうちの１つだけを時間変化するものとし、あるいは、これら３つの重みのうちの２つを時間変化するものとし、それぞれそれ以外の重みは常に一定とするような形態にすることも可能である。
【００４２】
上のようなやり方で重みを選定することの肯定的な作用効果（positive effects（肯定的ないし有効な作用効果））は、図３において見ることができる。図３は、測定された往復時間値ＲＴＴと、従来技術による計算した再送タイム−アウト値ＲＴＯ（ｐａ）と、従来技術による再送タイマＲｅｘｍｔ（ｐａ）と、ｇ＝１／（ｓｓｔｈｒｅｓｈ＋１）、ｈ＝１／（ｓｓｔｒｅｓｈ＋１）及びｗ＝ｓｓｔｈｒｅｓｈ＋１を用いて上の式（８）、（９）及び（１０）により計算した再送タイム−アウト値ＲＴＯとを、再び示したものである。見て分かるように、一定の重みパラメータを用いることの問題は、再送タイム−アウト値ＲＴＯ（ｐａ）を往復時間値ＲＴＴに対して過度に接近させて追随させ、実際には平滑化や平均化の作用効果が全くないようにする、という結果を招き得る。これは、フロー制御の手順を不安定にすることになる。他方、本発明によるＲＴＯを表しているグラフを見れば分かるように、本発明による再送タイム−アウト値は、ＲＴＴの動向に追随しているが、ＲＴＴの上側にある状態（ＲＴＴを超えている状態）を保っている。すなわち、ＲＴＯの値がＲＴＴの値中に“落ち込む”（“falls into”）ことは、一般に回避する必要があるスプリアス・タイム−アウトをもたらし得るが、時間変化する重み係数ｇ、ｈ及びｗを用いることにより、そのＲＴＯの値がＲＴＴの値中に“落ち込む”ことを回避するのが可能になっている。
【００４３】
上の実施形態は式（８．１）ないし（８．４）と関連させて説明したが、例えばｈ＝１／（Ｎ（ｔ）＋１）やｈ＝１／（ｓｓｔｈｒｅｓｈ＋１）等のような時間変化する重み係数ｈ（ｔ）を従来技術の式（６）に導入することも可能である。当然のことだが、時間変化する重みｗ（ｔ）を用いる式（１０）を、固定した重みｇ、ｈを用いる式（５）及び（６）と組み合わせることも可能であり、時間変化する重みｇ（ｔ）を用いる式（９）を、固定した重みを用いる式（５）及び（７）と組み合わせることも可能である。概して、本発明の特徴における第２の側面は、前記３つの重みのうちの少なくとも一つを時間に依存するパラメータ（time dependent parameter）として選定し、好ましくは未処理ないし未受信応答（unacknowledged）のデータ・ユニットの数に関連付けたものとして選定することである。
【００４４】
本発明の特徴における第３の側面によれば、再送タイム−アウト値ＲＴＯの決定を次のように変形する。
【数２７】
0004601232.tif 000020
ここで、Φ（ＳＰＴＯ）は、スプリアス・タイム−アウトの数（回数）ＳＰＴＯ（the number SPTO）と関連付けられた関数を表す。スプリアス・タイム−アウトとは、送信側と受信側の間のリンクに沿った過度の遅延によって発生するようなタイム−アウトであり、データ・ユニットの紛失によって発生するようなタイム−アウトではなく、換言すれば、送信側が十分長い間待ちさえすれば受信応答は受信されるので、ＲＴＯをより長くすればタイム−アウトは全く生じない。
【００４５】
一例として、式（１１）における関数Φ（ＳＰＴＯ）は、
【数２８】
0004601232.tif 000021
と選定することができる。ここで、ｎ（ＳＰＴＯ）は、予め定めた所定間隔の間にスプリアス・タイム−アウトによって引き起こされるスプリアス・データ・ユニット再送（spurious data unit retransmissions（不要なデータ・ユニット再送ないし誤ったデータ・ユニット再送））の数（回数）を表し、ｎは、当該所定間隔の間におけるデータ・ユニット送信の総数（総回数）を表し、ｆは、乗算パラメータ（multiplication parameter）である。ｆは、任意の適切な値を有するものに選定することができるが、５０ないしそれ以上の値が特に有効であることが分かっている。
【００４６】
この所定の時間間隔は、あらゆる所望の形態で設定することにしてよい。すなわち、この所定の時間間隔は、例えば２分と定義される最大セグメント寿命（ＭＳＬ（maximum segment lifetime））等のような固定された値に設定することにしてもよく、あるいは、瞬間的な通信（momentary communication）についての当該通信の開始からその時点までの全通信時間等のような、瞬間的な通信に応じて定まる値に設定することにしてもよい。
【００４７】
ここで注記し得る点として、１つの（１回の）スプリアス・タイム−アウトが１つ（１回）より多くのスプリアス再送を生じさせることにもなり得るという点がある。例えば、１００個のデータ・ユニットが送られた場合において、２つのスプリアス・タイム−アウトがあり、その第１のスプリアス・タイム−アウトが１回の再送信を生じさせ、かつ、その第２のスプリアス・タイム−アウトが２回の再送信を生じさせたときには、ＳＲが３／１００の値を示すことになる。
【００４８】
好ましい実施形態によれば、Φ（ＳＰＴＯ）は、次のような形態で定義される平滑化した値ＳＲに選定する（ここでも再び簡略化のために擬似コードを選んでいる。）。
【数２９】
0004601232.tif 000022
ここで、ＭＩＮ｛ｘ，ｙ｝は、ｘ及びｙのうちの最小のものに等しく、ＮＣは、０よりも大きい整数、すなわち、Ｎ＝１、２、３、…であり、Ｋは、０≦Ｋ＜１の値を有する比率値（rate value）であり、Ｍは、一周期（a cycle）に送られたデータ・ユニットの数を示す変数である。一周期は、各図中に示したようなＲＴＴの一連の上昇過程（one set of rising steps）に対応する時間の期間であり、例えば、図１における約６９ｓと約９２ｓの間にある上昇過程や、図３における３．９ｓと７．１５の間ないし７．１５と１０．６の間にある上昇過程を参照されたい。一般には、この数の平滑化平均を再び用いるのが好ましい。すなわち、一般には、スロー・スタート閾値ｓｓｔｒｅｓｈに基づき、
【数３０】
0004601232.tif 000023
としてＭを決定し（ここで、φは任意の関数を表す。）、好ましくは
【数３１】
0004601232.tif 000024
としてＭを決定するのがよい。ＮＣは、１若しくは２に選定するのが好ましい。また、Ｋは、０．０１から０．１の間にあるものとするのが好ましく、さらには約０．０５とすればなお好ましい。
【００４９】
すなわち、受信応答が受信される度に、その受信応答がスプリアス・タイム−アウトを示すものかどうかを判断し、スプリアス・タイム−アウトを示すものである場合には、平滑化平均ＳＲを第１の選択対象式に示したように更新し、スプリアス・タイム−アウトを示すものでない場合には、ＳＲを第２の選択対象式に示したように更新する。
【００５０】
式（１１）を見れば分かるように、係数Φ（ＳＰＴＯ）との乗算は、しばらくの間スプリアス・タイム−アウトが生じなかったときにはＲＴＯ（予測量（predictor））を漸進的により楽観的なもの（optimistic）にし、かつ、スプリアス・タイム−アウトが生じた後には逆にＲＴＯをより用心深いもの（conservative）にする。
【００５１】
スプリアス・タイム−アウトの判断は、あらゆる所望の形態で行うことができ、例えば、共に係属中の欧州特許出願９９１００２７４．２に説明されているように行うこともできる（この欧州特許出願９９１００２７４．２は参照によってここに取り込まれる。）。
【００５２】
より具体的には、タイム−アウトが生じたことを理由に与えられたデータ・ユニットを再送した後に、受信した受信応答がその再送したデータ・ユニットに応答したものではなく、前記タイム−アウトを生じたデータ・ユニットに応答したものであるとの判断をすることにより、スプリアス・タイム−アウトを識別する。
【００５３】
スプリアス・タイム−アウトを判断する一つの方法としては、送信及び受信のピア（sending and receiving peer）の間の接続に係る往復時間ＲＴＴの記録を送信側に保持させることを挙げることができ（いずれにしてもこのことを行うのは通例である。）、特に、考慮対象とする時点に至るまでの通信（セッションとも呼ばれる）の間に確認された最短のＲＴＴの記録を送信側に保持させることを挙げることができる。この場合、再送したデータ・ユニットについての受信応答データ・ユニットを当該最短のＲＴＴの予め定めた所定の割合分よりも短い時間の期間内に受信したときには、その受信応答は元の送信（original transmission）に属するものであって再送に属するものではないと送信側が判断する。ここにいう割合分の割合は、固定した値に設定することにしてもよく、あるいは、それ自体が適応パラメータ（adaptive parameter）であることにしてもよい。当然のことだが、当該割合と乗算する比較値（comparison value）が最短の測定されたＲＴＴであることは必須ではなく、それどころかむしろ、送信側が上述のＳＲＴＴ等のような平均のＲＴＴ値を保持することも可能であり、かつ、スプリアス・タイム−アウトを判断するための基準としてその平均の値を用いることも可能である。この意味で、当該割合を乗算する比較値は、概して、接続がされているうちに（すなわち、セッションの間に）測定される１つ又は２つ以上のＲＴＴ値の関数となる。
【００５４】
スプリアス・タイム−アウトを判断することが可能な他の形態としては、送信側が送信するデータ・ユニットに対して、その送信側にマーク（mark）を付加させることが挙げられる。ここで、当該マークは、それが元の送信と再送との区別を可能とするような形で定義する。この場合、それに応じて受信側が受信応答データ・ユニットにマークを付し、受信応答が元の送信に対するものなのかあるいは再送に対するものなのかを送信側が識別できるようにすることができる。このデータ・ユニットのマーキング（marking（マーク付け））は、あらゆる所望の形態で行うことができる。例えば、単純にデータ・ユニット中に単一のビットを示し、そのビットにおいて、０の値が元の送信を表すことにし、かつ、１の値が再送を表すことにする（あるいはその逆にする）のも、理論的には可能である。一般的な観念では、もう少し多くの情報を伝えることにしてもよいとされるビットストリング（bitstring）を選択することができる。ただし、そのようなオプションを規定するプロトコルとの関係では、タイムスタンプ・オプション（timestamp option）を用いるのが好ましい。このオプションについては、例えばＴＣＰに関してはよく知られており、上述のW. R. Stevensによる著書を参照されたい。すなわち、送信されるデータ・ユニット中にタイムスタンプを含めることとし、そのデータ・ユニットがいつ送信されたかをタイムスタンプが示すことにするのが好ましい。この場合、受信側が単純に同じタイムスタンプを受信応答メッセージ中に含めることで、その受信応答がいずれのデータ・ユニットに対するものなのかを識別する一意的な手段（unique way（一意的な結果が出る手段ないし方法））を送信側が備えるようにすることができる。
【００５５】
式（１１）に戻ると、係数Φ（ＳＰＴＯ）がＲＴＯ（予測量）の用心深さ（conservativeness）を適応的に制御する手段であるという点を指摘することができる。すなわち、スプリアス・タイム−アウトがより多く生じれば生じるほどＲＴＯはますます用心深いものになり、逆にスプリアス・タイム−アウトが生じなければ生じないほどＲＴＯはますます用心深くないものになる。
【００５６】
また、計算式（１１）（figure (11)）中に示されているパラメータｗは、先の実施形態と全く同じように、固定した値にしても時間変化する値にしてもよく、好ましくは、未処理データ・ユニットの数を表す適切なパラメータに依存する上述した関数Ｆ（例えばＦ＝ｓｓｔｈｒｅｓｈ＋１）に等しいものとするのがよい。当然のことだが、式（１１）との関係で説明した上の実施形態は、望ましい任意の形態により、１つ若しくは２つ以上又は式（５）、（６）、（８．１）ないし（８．４）若しくは（９）と組み合わせることができる。
【００５７】
好ましくは、式（１１）に基づくＲＴＯの決定（判断）は、次の式（１６）に示すように、最大限界値（maximum limit value）及び最小限界値（minimum limit value）の設定によって完全なものにするとよい。
【数３２】
0004601232.tif 000025
ここで、ＭＡＸ｛ｘ，ｙ｝は、ｘ及びｙのうちの最大のものを与え、ＭＩＮ｛ｘ，ｙ｝は、ｘ及びｙのうちの最小のものを与える。ＴＩＣＫは、タイマ細分性（timer granularity）、すなわち、システムが分解（識別）することができる時間の最小量を表し、ｎは、正の整数であり、Ｔｃｏｎｓｔは、ＲＴＯが過度に大きくならないようにする上限の時間制限（upper time limit）である。例えば、Ｔｃｏｎｓｔは６４secに選定することができる。整数ｎは好ましくは１とし、（１６）の第２の式においてＲＴＯが常に少なくとも一タイマ目盛（one tick）によってＲＴＴより大きいものに決定されることになるようにする。
【００５８】
ＲＴＯについての上限値及び下限値の設定は、さらに、上の他の実施形態のいずれに関しても利用することにしてよい。
【００５９】
以下において、発明者が現在最良の形態（ベスト・モード）と考える実施形態を説明する。この最良の形態は、本発明の特徴における上の各側面の好ましい組合せである。また、それは、Ｅｉｆｅｌ再送タイマとも呼ばれる。より具体的には、この最良の形態の本質は、次のようにしてＲＴＯを決定することにある。
【数３３】
0004601232.tif 000026
【数３４】
0004601232.tif 000027
【数３５】
0004601232.tif 000028
【数３６】
0004601232.tif 000029
【数３７】
0004601232.tif 000030
【数３８】
0004601232.tif 000031
上の各パラメータや各数値は、すべて先の実施形態において定義したものであり、定義や好ましい値の重複説明を要しないようにしてある。
【００６０】
この一連の計算（１７）ないし（２２）をＲＴＴの値が測定される度に実行する。すなわち、ＲＴＴのすべての測定に対してＲＴＯの値を更新する。
【００６１】
上のすべての実施形態においては、様々な計算を各往復時間値ＲＴＴの測定に基づくものとした。好ましくは、それらの測定は、一度に一つのデータ・ユニットの時間を計ることしかしない既知のＴＣＰの実施からは逸脱して、送られるすべてのデータ・ユニットについて実施し、平均してＲＴＴ毎に一度だけのＲＴＴ測定がなされているようにする。すべての送られるデータ・ユニットについての計時（timing（計時ないし経過時間観測））は、例えばＴＣＰに関してＲＦＣ１３２３で定義されているように、タイム・スタンプ・オプションを利用することによって行うのが好ましい。
【００６２】
初めの方で既に述べたように、本発明は、例えばＴＣＰやこれに類するプロトコルのように再送及びタイム−アウトを規定したあらゆるデータ・ユニット通信システムに対して適用することができる。本発明の好ましい適用としては、無線データ・ユニット交換通信システム（wireless data unit switched communication systems）における適用が挙げられる。無線データ・ユニット交換通信システムにおいては、使用可能な帯域幅（bandwidth（帯域幅ないし回線容量））が著しく変化し得るものとなっており、そのことが順次ＲＴＴの激しい変動を引き起こす。かかるシステムの例としては、ＧＰＲＳ（General Packet switched Radio System）やＵＭＴＳ（Universal Mobile Telecommunication System）がある。
【００６３】
具体的な実施形態との関係において本発明を説明したが、これらの実施形態は、単に当業者に対して本発明を説明する目的に資するものに過ぎず、かつ、限定的なものと解釈されるものではない。それどころかむしろ、本発明の範囲は、特許請求の範囲によって定義される。
【図面の簡単な説明】
【図１】  ＴＣＰ定常状態について、時間の経過中における再送タイム−アウト機能に係る様々なパラメータを示したグラフである。
【図２】  図１のグラフの部分拡大図を示したものである。
【図３】  時間の経過に対する再送タイム−アウト・パラメータの他のグラフを示したものである。
【図１】
0004601232.tif 000040
【図２】
0004601232.tif 000041
【図３】
0004601232.tif 000042