(57)【要約】【課題】確認応答の受信間隔が正確でないネットワーク上においても、用意されたネットワーク帯域を有効利用しつつ、ネットワークの輻輳を回避できるようにする。【解決手段】計測されると、ＲＴＴの最小値（ｒｔｔ_ｍｉｎ）の時間内に受信したＡｃｋまたはＳＡｃｋ（Ｓｅｌｅｃｔｉｖｅ  Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）の情報から、受信側に到着が確認された受信セグメントのバイト数（ｒｃｖ_ｂｙｔｅｓ）を算出し、受信バイト数設定部１６は、ロス検出部１５にてパケットロスが検出された場合、受信バイト数計算部１４にて算出されたセグメントのバイト数（ｒｃｖ_ｂｙｔｅｓ）に基づいて、パケットロス発生時の輻輳ウィンドウ（ＣＷＮＤ）またはスロースタート閾値（ＳＳＴＨＲＥＳＨ）を設定する。【選択図】      図１
2008182410.tif 000002
【特許請求の範囲】
【請求項１】
受信側から送られる確認応答に基づいて、前記受信側に到着が確認されたセグメントのバイト数を送信側で算出する受信バイト数計算部と、
前記受信バイト数計算部にて算出されたセグメントのバイト数に基づいて、パケットロス発生時の輻輳ウィンドウまたはスロースタート閾値を設定する受信バイト数設定部とを備えることを特徴とする通信端末。
【請求項２】
ＲＴＴの最小値を計測する最小時間計測部と、
前記最小時間計測部にて計測されたＲＴＴの最小値の期間内に受信側から送られる確認応答に基づいて、前記受信側に到着が確認されたセグメントのバイト数を送信側で算出する受信バイト数計算部と、
再送タイムアウトまたは重複確認応答に基づいてパケットロスを検出するロス検出部と、
前記受信バイト数計算部にて算出されたセグメントのバイト数に基づいて、前記パケットロス発生時の輻輳ウィンドウまたはスロースタート閾値を設定する受信バイト数設定部とを備えることを特徴とする通信端末。
【請求項３】
前記受信バイト数設定部は、
高速再送および高速復帰時には、前記受信バイト数計算部にて算出されたセグメントのバイト数および輻輳ウィンドウの１／２の値のいずれか大きい方をスロースタート閾値に設定するとともに、スロースタート閾値を輻輳ウィンドウに設定し、
再送タイムアウト時には、前記受信バイト数計算部にて算出されたセグメントのバイト数および輻輳ウィンドウの１／２の値のいずれか大きい方をスロースタート閾値に設定するとともに、送信側が送信することができる最大セグメントサイズを輻輳ウィンドウに設定することを特徴とする請求項１または２記載の通信端末。
【請求項４】
受信側から送られる確認応答に基づいて、前記受信側に到着が確認されたセグメントのバイト数を送信側で算出するステップと、
前記送信側で算出されたセグメントのバイト数に基づいて、パケットロス発生時の輻輳ウィンドウまたはスロースタート閾値を設定することを特徴とする輻輳制御方法。
【請求項５】
受信側から送られる確認応答に基づいて、前記受信側に到着が確認されたセグメントのバイト数を送信側で算出するステップと、
前記送信側で算出されたセグメントのバイト数に基づいて、パケットロス発生時の輻輳ウィンドウまたはスロースタート閾値を設定するステップとをコンピュータに実行させることを特徴とする輻輳制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信端末、輻輳制御方法および輻輳制御プログラムに関し、特に、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）における輻輳制御方法に適用して好適なものである。
【背景技術】
【０００２】
現在、インターネットで幅広く用いられているＴＣＰでは、ネットワークの輻輳を回避するために、セグメントを送信する際に輻輳ウィンドウ（ＣＷＮＤ）を利用して輻輳制御が行われている。
一般的にＴＣＰの輻輳制御アルゴリズムでは、パケットロスの発生時に、以下のようにして輻輳ウィンドウの設定が行なわれる。
【０００３】
１．ＦＦ（Ｆａｓｔ  Ｒｅｔｒａｎｓｍｉｔ＆Ｆａｓｔ  Ｒｅｃｏｖｅｒｙ：高速再送および高速復帰）時
ＳＳＴＨＲＥＳＨ＝（１−ｂ）×ＣＷＮＤ
ＣＷＮＤ＝ＳＳＴＨＲＥＳＨに設定する。
２．ＲＴＯ（Ｒｅｔｒａｎｓｍｉｔ  Ｔｉｍｅｏｕｔ：再送タイムアウト）発生時
ＳＳＴＨＲＥＳＨ＝（１−ｂ）×ＣＷＮＤ
ＣＷＮＤ＝１×ＭＳＳに設定する。
【０００４】
ただし、ＭＳＳ（Ｍａｘｉｍｕｍ  Ｓｅｇｍｅｎｔ  Ｓｉｚｅ）は送信側が送信することができる最大セグメントサイズである。また、ＣＷＮＤ（ＣＯＮＧＥＳＴＩＯＮ  ＷＩＮＤＯＷ）は、ＴＣＰの送信可能サイズを制限するＴＣＰステート変数である。また、ＳＳＴＨＲＥＳＨ（ＳＬＯＷＳＴＡＲＴ  ＴＨＲＥＳＨＯＬＤ）はスロースタート閾値である。
通常のＴＣＰでは、ａ＝１、ｂ＝０．５が利用される。
【０００５】
また、例えば、非特許文献１には、パケットロスが検出された際にＡｃｋ（Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ：確認応答）の受信間隔からボトルネックリンクに帯域幅を推定しながら、ＣＷＮＤおよびＳＳＴＨＲＥＳＨの値を計算することで、パケットロスの発生後にネットワークリソースを有効活用する方法が開示されている。
すなわち、パケットロスが検出された際にＣＷＮＤおよびＳＳＴＨＲＥＳＨの値を以下のように計算する。
ｂｋ＝ｄｋ／（ｔｋ−ｔｋ−１）                                            （１）
【０００６】
ただし、ｔｋはｋ番目のＡｃｋを受け取った時刻、ｄｋはｋ番目のＡｃｋを受け取るまでに受信側に到着が確認されたセグメントのバイト数である。
そして、（１）式のｂｋの移動平均を（２）式のように算出し、（２）式のｂｋをＣＷＮＤおよびＳＳＴＨＲＥＳＨの値としてそのまま使用する。
ｂｋ＝１９／２１・ｂｋ−１＋２／２１・（ｂｋ−ｂｋ−１）／２              （２）
【０００７】
【非特許文献１】Ｌ．Ａ．Ｇｒｉｅｃｏ  ａｎｄ  Ｓ．Ｍａｓｃｏｌｏ：Ｅｎｄ−ｔｏ−Ｅｎｄ  ｂａｎｄｗｉｄｔｈ  Ｅｓｔｉｍａｔｉｏｎ  ｆｏｒ  Ｃｏｎｇｅｓｔｉｏｎ  Ｃｏｎｔｒｏｌ  ｉｎ  Ｐａｃｋｅｔ  Ｎｅｔｗｏｒｋｓ，Ｐｒｃ．Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ  ｉｎ  Ｍｕｌｔｉｓｅｒｖｉｃｅ  ＩＰ  Ｎｅｔｗｏｒｋｓ（ＱｏＳ−ＩＰ  ２００３．（Ｍｉｌａｎｏ），Ｆｅｂｒｕｒｙ  ２００３．
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来のＴＣＰの輻輳制御アルゴリズムでは、セグメントロスを契機としてＣＷＮＤを減少させ、輻輳制御が行われる。このため、パケットロスの発生前に、ＣＷＮＤが十分な大きさになっていない場合には、パケットロスの発生後のＣＷＮＤおよびＳＳＴＨＲＥＳＨの大きさがネットワーク帯域に対して十分ではないために、用意されたネットワーク帯域を有効利用することができないという問題があった。
【０００９】
また、非特許文献１に開示された方法では、Ａｃｋの受信間隔からＣＷＮＤおよびＳＳＴＨＲＥＳＨの値が決定されることから、Ａｃｋの受信間隔が正確でないネットワーク上では、パケットロスの発生後のＣＷＮＤおよびＳＳＴＨＲＥＳＨの値をネットワークの最適な値に合わせることができないという問題があった。
そこで、本発明の目的は、確認応答の受信間隔が正確でないネットワーク上においても、用意されたネットワーク帯域を有効利用しつつ、ネットワークの輻輳を回避することが可能な通信端末、輻輳制御方法および輻輳制御プログラムを提供することである。
【課題を解決するための手段】
【００１０】
上述した課題を解決するために、請求項１記載の通信端末によれば、受信側から送られる確認応答に基づいて、前記受信側に到着が確認されたセグメントのバイト数を送信側で算出する受信バイト数計算部と、前記受信バイト数計算部にて算出されたセグメントのバイト数に基づいて、パケットロス発生時の輻輳ウィンドウまたはスロースタート閾値を設定する受信バイト数設定部とを備えることを特徴とする。
【００１１】
また、請求項２記載の通信端末によれば、ＲＴＴの最小値を計測する最小時間計測部と、前記最小時間計測部にて計測されたＲＴＴの最小値の期間内に受信側から送られる確認応答に基づいて、前記受信側に到着が確認されたセグメントのバイト数を送信側で算出する受信バイト数計算部と、再送タイムアウトまたは重複確認応答に基づいてパケットロスを検出するロス検出部と、前記受信バイト数計算部にて算出されたセグメントのバイト数に基づいて、前記パケットロス発生時の輻輳ウィンドウまたはスロースタート閾値を設定する受信バイト数設定部とを備えることを特徴とする。
【００１２】
また、請求項３記載の通信端末によれば、前記受信バイト数設定部は、高速再送および高速復帰時には、前記受信バイト数計算部にて算出されたセグメントのバイト数および輻輳ウィンドウの１／２の値のいずれか大きい方をスロースタート閾値に設定するとともに、スロースタート閾値を輻輳ウィンドウに設定し、再送タイムアウト時には、前記受信バイト数計算部にて算出されたセグメントのバイト数および輻輳ウィンドウの１／２の値のいずれか大きい方をスロースタート閾値に設定するとともに、送信側が送信することができる最大セグメントサイズを輻輳ウィンドウに設定することを特徴とする。
【００１３】
また、請求項４記載の輻輳制御方法によれば、信側から送られる確認応答に基づいて、前記受信側に到着が確認されたセグメントのバイト数を送信側で算出するステップと、前記送信側で算出されたセグメントのバイト数に基づいて、パケットロス発生時の輻輳ウィンドウまたはスロースタート閾値を設定することを特徴とする。
また、請求項５記載の輻輳制御プログラムによれば、受信側から送られる確認応答に基づいて、前記受信側に到着が確認されたセグメントのバイト数を送信側で算出するステップと、前記送信側で算出されたセグメントのバイト数に基づいて、パケットロス発生時の輻輳ウィンドウまたはスロースタート閾値を設定するステップとをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１４】
以上説明したように、本発明によれば、受信側に到着が確認されたセグメントのバイト数に基づいて、パケットロス発生時の輻輳ウィンドウまたはスロースタート閾値を設定することが可能となり、パケットロスの発生後の輻輳ウィンドウの値またはスロースタート閾値をネットワークの最適な値に合わせることが可能となる。このため、確認応答の受信間隔が正確でないネットワーク上においても、用意されたネットワーク帯域を有効利用しつつ、ネットワークの輻輳を回避することが可能となる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施形態に係る通信端末について図面を参照しながら説明する。
図１は、本発明の一実施形態に係る送信端末の概略構成を示すブロック図である。
図１において、送信端末１１には、インターネットなどのネットワークを介して送られたセグメントを受信するセグメント受信部１２、ＲＴＴの最小値を計測する最小時間計測部１３、最小時間計測部１３にて計測されたＲＴＴの最小値の期間内に受信側から送られる確認応答に基づいて、前記受信側に到着が確認されたセグメントのバイト数を送信側で算出する受信バイト数計算部１４、再送タイムアウトまたは重複確認応答に基づいてパケットロスを検出するロス検出部１５、受信バイト数計算部１４にて算出されたセグメントのバイト数に基づいて、パケットロス発生時の輻輳ウィンドウまたはスロースタート閾値を設定する受信バイト数設定部１６およびインターネットなどのネットワークを介してセグメントを送信するセグメント送信部１７が設けられている。
【００１６】
そして、セグメント受信部１２は、ネットワークを介して送られたセグメントを受信すると、そのセグメントを最小時間計測部１３、受信バイト数計算部１４およびロス検出部１５に送る。
そして、最小時間計測部１３は、ＴＣＰにて行われる方法と同様にしてＲＴＴを計測することができる。すなわち、Ｔｉｍｅｓｔａｍｐ  Ｏｐｔｉｏｎが利用可能な場合、最小時間計測部１３は、Ａｃｋの受信時に、（現在の時刻）−（Ｔｉｍｅｓｔａｍｐ  Ｅｃｈｏ）をＲＴＴとすることができる。
【００１７】
一方、Ｔｉｍｅｓｔａｍｐ  Ｏｐｔｉｏｎが利用できない場合、最小時間計測部１３は、Ａｃｋの受信時に、（現在の時刻）−（Ａｃｋされたセグメントが送信された時刻）をＲＴＴとすることができる。
そして、最小時間計測部１３は、セグメントが送信されている間にＲＴＴの計測を継続して行い、ＲＴＴの最小値（ｒｔｔ_ｍｉｎ）が計測されるごとにＲＴＴの最小値（ｒｔｔ_ｍｉｎ）を更新しながら、ＲＴＴの最小値（ｒｔｔ_ｍｉｎ）を受信セグメントのバイト数（ｒｃｖ_ｂｙｔｅｓ）の計算期間として用いることができる。
【００１８】
また、ルートの切り替えや受信端末の移動などによってＲＴＴが大きく変化する場合を考慮し、以下の場合にはＲＴＴの最小値（ｒｔｔ_ｍｉｎ）を再設定することもできる。
（１）セグメントの送信が１ＲＴＴ以上の時間行われなかった場合。
この場合には、１ＲＴＴとしては、ＲＴＴの最小値（ｒｔｔ_ｍｉｎ）の他に、ＴＣＰにおいて、ＲＴＴから計算されるＲＴＯ（Ｒｅｔｒａｎｓｍｉｓｓｉｏｎ  Ｔｉｍｅｏｕｔ）を利用することができる。
（２）ＣＷＮＤが初期ウィンドウサイズを下回った場合。
【００１９】
次に、受信バイト数計算部１４は、最小時間計測部１３にてＲＴＴの最小値（ｒｔｔ_ｍｉｎ）が計測されると、ＲＴＴの最小値（ｒｔｔ_ｍｉｎ）の時間内に受信したＡｃｋまたはＳＡｃｋ（Ｓｅｌｅｃｔｉｖｅ  Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）の情報から、受信側に到着が確認された受信セグメントのバイト数（ｒｃｖ_ｂｙｔｅｓ）を算出する。
【００２０】
図２は、本発明の一実施形態に係る受信セグメントのバイト数の計測方法を示す図である。
図２において、ＴＣＰ送信側２１では、ＲＴＴの最小値（ｒｔｔ_ｍｉｎ）の時間内にＴＣＰ受信側２２から受信したＡｃｋの情報から、受信側に到着が確認された受信セグメントのバイト数（ｒｃｖ_ｂｙｔｅｓ）を算出することができる。
具体的には、受信セグメントのバイト数（ｒｃｖ_ｂｙｔｅｓ）は、以下のようにして計測することができる。
・ＳＡｃｋ  Ｏｐｔｉｏｎがサポートされている場合。
ＲＴＴの最小値（ｒｔｔ_ｍｉｎ）の時間内に受け取ったＡｃｋによって受信端末に受信が通知された最大のシーケンス番号（ｒｃｖ_ａｃｋ）から、計測を開始した際にＡｃｋを受信していない先頭セグメントのシーケンス番号（ｄｒｓ_ｓｎｄ_ｕｎａ）を引いた値を利用することができる。
【００２１】
また、セグメントの再送中においては、ＲＴＴの最小値（ｒｔｔ_ｍｉｎ）の時間内に再送したセグメントの合計バイト数を考慮するために、受け取ったＡｃｋのＳＡｃｋ  Ｏｐｔｉｏｎによって通知されたセグメントの合計のバイト数（ｓａｃｋ_ｅｎｄ）から、計測を開始した際にＳＡｃｋ  Ｏｐｔｉｏｎによって通知されたセグメントの合計のバイト数（ｓａｃｋ_ｓｔａｒｔ）を引いた値を最初の値に加える。
すなわち、ｒｃｖ_ｂｙｔｅｓ＝ｒｃｖ_ａｃｋ−ｄｒｓ_ｓｎｄ_ｕｎａ＋（ｓａｃｋ_ｅｎｄ−ｓａｃｋ_ｓｔａｒｔ）となる。
【００２２】
なお、セグメントロスが発生していない場合、ｓａｃｋ_ｅｎｄおよびｓａｃｋ_ｓｔａｒｔの双方とも０になるので、ｒｃｖ_ｂｙｔｅｓ＝ｒｃｖ_ａｃｋ−ｄｒｓ_ｓｎｄ_ｕｎａとなる。また、ＲＴＴの最小値（ｒｔｔ_ｍｉｎ）の時間内にセグメントロスが解消された場合、ｓａｃｋ_ｅｎｄは０になり、ｓａｃｋ_ｓｔａｒｔだけが有効になる。
・ＳＡｃｋ  Ｏｐｔｉｏｎがサポートされていない場合。
この場合には、重複Ａｃｋ（ｒｃｖ_ａｃｋがＡｃｋを受信していない最小のセグメント（ｓｎｄ_ｕｎａ）以下のＡｃｋ）の数を考慮して受信セグメントのバイト数（ｒｃｖ_ｂｙｔｅｓ）を算出することができる。
【００２３】
すなわち、ＲＴＴの最小値（ｒｔｔ_ｍｉｎ）の時間内に最後に受け取ったＡｃｋによって受信端末に受信が通知されたシーケンス番号（ｒｃｖ_ａｃｋ）から、計測を開始した際にＡｃｋを受信していない先頭セグメントのシーケンス番号（ｄｒｓ_ｓｎｄ_ｕｎａ）を引いた値を利用することができる。
また、セグメントの再送中においては、再送したセグメントの合計バイト数を考慮するために、ＲＴＴの最小値（ｒｔｔ_ｍｉｎ）の時間内に受信した重複Ａｃｋの数×ＭＳＳ（ｄａｃｋ_ｅｎｄ）から、計測を開始した際に受信した重複Ａｃｋの数×ＭＳＳ（ｄａｃｋ_ｓｔａｒｔ）を引いた値を最初の値に加える。
【００２４】
すなわち、ｒｃｖ_ｂｙｔｅｓ＝ｒｃｖ_ａｃｋ−ｄｒｓ_ｓｎｄ_ｕｎａ＋（ｄａｃｋ_ｅｎｄ−ｄａｃｋ_ｓｔａｒｔ）となる。
なお、セグメントロスが発生していない場合、ｄａｃｋ_ｅｎｄおよびｄａｃｋ_ｓｔａｒｔの双方とも０になる。
ここで、Ａｃｋパスについてもキューイングディレイが発生する場合、状況によっては受信セグメントのバイト数（ｒｃｖ_ｂｙｔｅｓ）を精度よく計測できないことがある。このため、Ａｃｋの送信時刻を用いることによってＡｃｋパスのキューイングディレイの影響をなくし、受信セグメントのバイト数（ｒｃｖ_ｂｙｔｅｓ）を精度よく計測することが可能となる。
【００２５】
図３は、本発明の一実施形態に係る受信セグメントのバイト数の計測方法のその他の例を示す図である。
図３において、ＡｃｋにおいてＴＣＰ送信側２１側と同様のＴｉｍｅｓｔａｍｐ  Ｏｐｔｉｏｎが付加されている場合、ＲＴＴの最小値（ｒｔｔ_ｍｉｎ）の時間内に送信されたＡｃｋの送信時刻を参照することにより、受信セグメントのバイト数（ｒｃｖ_ｂｙｔｅｓ）を計測することができる。ただし、受信側と送信側で用いられているＴｉｍｅｓｔａｍｐ  Ｏｐｔｉｏｎの粒度が異なる場合、送信側でＡｃｋの送信時刻を補正する必要がある。
【００２６】
図４は、送信側においてＡｃｋの送信時刻を補正する例を示す図である。
図４において、ｔｓはセグメントの送信時刻、ｔｓ＿ｅｃｈｏはＴｉｍｅｓｔａｍｐ  Ｅｃｈｏを表す。送信側では、Ａｃｋを受信した際に、一定の期間計測を行い、その間に受信したＡｃｋのｔｓとｔｓ＿ｅｃｈｏの増加量を計算し、補正に利用する。図４においては、ｔｓ＿ｅｃｈｏの増加量が６０であるに対して、ｔｓの増加量は６なので、ｒｃｖ＿ｂｙｔｅｓは計測を開始した際のＡｃｋの送信時刻にＲＴＴの最小値（ｒｔｔ_ｍｉｎ）の１０分の１を加えた時刻までのＡｃｋによって算出される。
【００２７】
なお、受信セグメントのバイト数（ｒｃｖ_ｂｙｔｅｓ）が前回算出された受信セグメントのバイト数（ｒｃｖ_ｂｙｔｅｓ）より増加した場合には、Ａｃｋの受信ごとに値を更新するようにしてもよい。また、受信セグメントのバイト数（ｒｃｖ_ｂｙｔｅｓ）の増減にかかわらず、ＲＴＴの最小値（ｒｔｔ_ｍｉｎ）の期間ごとに常に受信セグメントのバイト数（ｒｃｖ_ｂｙｔｅｓ）の再計算を行うことができる。また、受信セグメントのバイト数（ｒｃｖ_ｂｙｔｅｓ）に下限を設けることで、受信セグメントのバイト数（ｒｃｖ_ｂｙｔｅｓ）に極端に小さな値が設定されるのを防止することができる。
【００２８】
また、図１のロス検出部１５は、再送タイムアウト（ＲＴＯ）または重複確認応答（Ｄｕｐｌｉｃａｔｅ  Ａｃｋ）に基づいてパケットロスを検出する
次に、図１の受信バイト数設定部１６は、ロス検出部１５にてパケットロスが検出された場合、受信バイト数計算部１４にて算出されたセグメントのバイト数（ｒｃｖ_ｂｙｔｅｓ）に基づいて、パケットロス発生時の輻輳ウィンドウ（ＣＷＮＤ）またはスロースタート閾値（ＳＳＴＨＲＥＳＨ）を設定することができる。
【００２９】
具体的には、受信バイト数設定部１６は、パケットロスの発生時に、以下のようにして輻輳ウィンドウ（ＣＷＮＤ）またはスロースタート閾値（ＳＳＴＨＲＥＳＨ）を設定することができる。
１．ＦＦ（Ｆａｓｔ  Ｒｅｔｒａｎｓｍｉｔ＆Ｆａｓｔ  Ｒｅｃｏｖｅｒｙ：高速再送および高速復帰）時
ＳＳＴＨＲＥＳＨ＝ＭＡＸ（ｒｃｖ＿ｂｙｔｅｓ，ＣＷＮＤ／２）
ＣＷＮＤ＝ＳＳＴＨＲＥＳＨに設定する。
２．ＲＴＯ（Ｒｅｔｒａｎｓｍｉｔ  Ｔｉｍｅｏｕｔ：再送タイムアウト）発生時
ＳＳＴＨＲＥＳＨ＝ＭＡＸ（ｒｃｖ＿ｂｙｔｅｓ，ＣＷＮＤ／２）
ＣＷＮＤ＝１×ＭＳＳに設定する。
【００３０】
ただし、受信セグメントのバイト数（ｒｃｖ_ｂｙｔｅｓ）が、受信セグメントのバイト数（ｒｃｖ_ｂｙｔｅｓ）の計測時のＣＷＮＤ＋α（定数）以下である場合、ネットワークにパケットが滞留していないにもかかわらず、パケットがロストしていることから、このパケットロスはネットワークの輻輳以外の原因で発生したものと判断し、スロースタート閾値（ＳＳＴＨＲＥＳＨ）を、ロスを検出する前と同じ値に設定することができる。また、輻輳ウィンドウ（ＣＷＮＤ）には、一般的なＴＣＰにて行われる方法と同様な値を用いることができる。
【００３１】
次に、図１のセグメント送信部１７は、受信バイト数設定部１６にて設定された輻輳ウィンドウ（ＣＷＮＤ）およびスロースタート閾値（ＳＳＴＨＲＥＳＨ）に従ってセグメントを送信する。
なお、最小時間計測部１３、受信バイト数計算部１４、ロス検出部１５および受信バイト数設定部１６は、これらの手段で行われる処理を遂行させる命令が記述されたプログラムをコンピュータに実行させることにより実現することができる。
【００３２】
そして、このプログラムをＣＤ−ＲＯＭなどの記憶媒体に記憶しておけば、送信端末１１のコンピュータに記憶媒体を装着し、そのプログラムをコンピュータにインストールすることにより、最小時間計測部１３、受信バイト数計算部１４、ロス検出部１５および受信バイト数設定部１６で行われる処理を実現することができる。また、このプログラムをネットワークを介してダウンロードすることにより、このプログラムを容易に普及させることができる。
【００３３】
また、上述した実施形態では、送信側の受信バイト数計算部１４にて計算されたセグメントのバイト数に基づいて、パケットロス発生時の輻輳ウィンドウまたはスロースタート閾値を設定する方法について説明したが、受信側に到着が確認されたセグメントのバイト数の計算を受信側で行い、受信側で計算されたセグメントのバイト数を送信側に伝えることで、パケットロス発生時の輻輳ウィンドウまたはスロースタート閾値を設定するようにしてもよい。
【００３４】
また、上述した実施形態では、受信側に到着が確認されたセグメントのバイト数に基づいて、パケットロス発生時の輻輳ウィンドウまたはスロースタート閾値を送信側で設定する方法について説明したが、受信側に到着が確認されたセグメントのバイト数に基づいて、パケットロス発生時の輻輳ウィンドウまたはスロースタート閾値を受信側で算出し、受信側で計算されたパケットロス発生時の輻輳ウィンドウまたはスロースタート閾値を送信側に伝えることで、パケットロス発生時の輻輳ウィンドウまたはスロースタート閾値を送信側で設定するようにしてもよい。
【図面の簡単な説明】
【００３５】
【図１】本発明の一実施形態に係る送信端末の概略構成を示すブロック図である。
【図２】本発明の一実施形態に係る受信セグメントのバイト数の計測方法を示す図である。
【図３】本発明の一実施形態に係る受信セグメントのバイト数の計測方法のその他の例を示す図である。
【図４】送信側においてＡｃｋの送信時刻を補正する例を示す図である。
【符号の説明】
【００３６】
１１  送信端末
１２  セグメント受信部
１３  最小時間計測部
１４  受信バイト数計算部
１５  ロス検出部
１６  受信バイト数設定部
１７  セグメント送信部
【図１】
2008182410.tif 000003
【図２】
2008182410.tif 000004
【図３】
2008182410.tif 000005
【図４】
2008182410.tif 000006