(57)【要約】  例示的な方法、装置及びシステムは、パケットのシーケンスとして宛先計算ノードに送信される複数パケットのうち１個のパケットを複製することを含む。当該パケットの複製を含む複数のパケットは宛先計算ノードに送信される。宛先計算ノードから当該パケットの第１の確認応答を受信した場合、第１の確認応答が複製対象パケット宛であると判定される。第１の確認応答が複製対象パケット宛であるとの判定に応答して、当該パケットに先行して送信された複数パケットのうち１個以上のパケットの各々に対して第２の確認応答が未だ受信されていないと判定される。第２の確認応答が未だ受信されていないとの判定に応答して、当該１個以上のパケットが宛先計算ノードに再送信される。
2020521413.tif 000002
【特許請求の範囲】
【請求項１】
パケットのシーケンスとして宛先計算ノードに送信する複数パケットのうち１個のパケットを複製すること、
前記パケットの複製を含む前記複数パケットを前記宛先計算ノードに送信すること、
前記宛先計算ノードから前記パケットの第１の確認応答を受信すること、
前記第１の確認応答が複製対象パケット宛であると判定すること、
前記第１の確認応答が複製対象パケット宛であるとの判定に応答して、前記パケットに先行して送信された前記複数パケットのうち１個以上のパケットの各々に対して第２の確認応答が未だ受信されていないと判定すること、及び
前記第２の確認応答が未だ受信されていないとの判定に応答して、前記１個以上のパケットを前記宛先計算ノードに再送信すること
を含むコンピュータ実行方法。
【請求項２】
前記パケットが、前記複数パケットのサブセットのうち、複製され且つ複製と共に前記宛先計算ノードに送信される１以上のパケットの１個である、請求項１に記載のコンピュータ実行方法。
【請求項３】
前記サブセットに含まれる前記パケットの複製が、最小個数の複製非対象パケットが各複製対象パケットの１回目の送信に先行して送信され、且つ各複製パケットが前記複製パケットの原本に続いて送信されるように、前記宛先計算ノードに送信されるパケットのシーケンス内で分散されている、請求項２に記載のコンピュータ実行方法。
【請求項４】
前記サブセットに含まれる前記パケットの複製が、前記パケットのシーケンスのうち全ての複製非対象パケットが送信された後で送信される、請求項２に記載のコンピュータ実行方法。
【請求項５】
前記宛先計算ノードへパケットを送信する際のパケット損失量を判定すること、及び
前記判定されたパケット損失量に基づいて、複製して前記サブセットに含めるパケットの個数を設定すること
を更に含む、請求項２〜４のいずれか１項に記載のコンピュータ実行方法。
【請求項６】
前記宛先計算ノードへパケットを送信する際のパケット損失量が閾値を超えたと判定することを更に含み、前記パケット損失量が前記閾値を超えたとの判定に応答して、前記サブセットに含めるパケットの個数をゼロに設定する、請求項５に記載のコンピュータ実行方法。
【請求項７】
前記宛先計算ノードへパケットを送信する際のパケット損失量を判定すること、及び
前記判定されたパケット損失量に基づいて、前記サブセット内における各パケットの複製の個数を設定すること
を更に含む、請求項２〜６のいずれか１項に記載のコンピュータ実行方法。
【請求項８】
前記パケットのシーケンス内で前記パケットの複製が、前記シーケンス内の後続する各々の複製対象パケットの後に挿入される、請求項２に記載のコンピュータ実行方法。
【請求項９】
非一時的コンピュータ可読媒体であって、処理装置により実行された場合に前記処理装置に、
パケットのシーケンスとして宛先計算ノードに送信する複数パケットのうち１個のパケットを複製すること、
前記パケットの複製を含む前記複数パケットを前記宛先計算ノードに送信すること、
前記宛先計算ノードから前記パケットの第１の確認応答を受信すること、
前記第１の確認応答が複製対象パケット宛であると判定すること、
前記第１の確認応答が複製対象パケット宛であるとの判定に応答して、前記パケットに先行して送信された前記複数パケットのうち１個以上のパケットの各々に対して第２の確認応答が未だ受信されていないと判定すること、及び
前記第２の確認応答が未だ受信されていないとの判定に応答して、前記１個以上のパケットを前記宛先計算ノードに再送信することを含む方法を実行させる命令を格納する非一時的コンピュータ可読媒体。
【請求項１０】
前記パケットが、前記複数パケットのサブセットのうち、複製され且つ複製と共に前記宛先計算ノードに送信される１以上のパケットの１個である、請求項９に記載の非一時的コンピュータ可読媒体。
【請求項１１】
前記サブセットに含まれる前記パケットの複製が、最小個数の複製非対象パケットが各複製対象パケットの１回目の送信に先行して送信され、且つ各複製パケットが前記複製パケットの原本に続いて送信されるように、前記宛先計算ノードに送信されるパケットのシーケンス内で分散されている、請求項１０に記載の非一時的コンピュータ可読媒体。
【請求項１２】
前記サブセットに含まれる前記パケットの複製が、前記パケットのシーケンスのうち全ての複製非対象パケットが送信された後で送信される、請求項１０に記載の非一時的コンピュータ可読媒体。
【請求項１３】
前記宛先計算ノードへパケットを送信する際のパケット損失量を判定すること、及び
前記判定されたパケット損失量に基づいて、複製して前記サブセットに含めるパケットの個数を設定すること
を更に含む、請求項１０〜１２のいずれか１項に記載の非一時的コンピュータ可読媒体。
【請求項１４】
前記宛先計算ノードへパケットを送信する際のパケット損失量が閾値を超えたと判定することを更に含み、前記パケット損失量が前記閾値を超えたとの判定に応答して、前記サブセットに含めるパケットの個数をゼロに設定する、請求項１３に記載の非一時的コンピュータ可読媒体。
【請求項１５】
前記宛先計算ノードへパケットを送信する際のパケット損失量を判定すること、及び
前記判定されたパケット損失量に基づいて、前記サブセット内における各パケットの複製の個数を設定することを更に含む、請求項１０〜１４のいずれか１項に記載の非一時的コンピュータ可読媒体。
【請求項１６】
前記パケットのシーケンスで前記パケットの複製が、前記シーケンス内の後続する各々の複製対象パケットの後に挿入される、請求項１０に記載の非一時的コンピュータ可読媒体。
【請求項１７】
処理装置と、
前記処理装置に結合されたメモリとを含む装置であって、前記メモリが、前記処理装置により実行された場合に前記装置に、
パケットのシーケンスとして宛先計算ノードに送信する複数パケットのうち１個のパケットを複製させ、
前記パケットの複製を含む前記複数パケットを宛先計算ノードに送信させ、
前記宛先計算ノードから前記パケットの第１の確認応答を受信させ、
前記第１の確認応答が複製対象パケット宛であると判定させ、
前記第１の確認応答が複製対象パケット宛であるとの判定に応答して、前記パケットに先行して送信された前記複数パケットのうち１個以上のパケットの各々に対して第２の確認応答が未だ受信されていないと判定させ、
前記第２の確認応答が未だ受信されていないとの判定に応答して、前記１個以上のパケットを前記宛先計算ノードに再送信させる命令を格納する、装置。
【請求項１８】
前記パケットが、前記複数パケットのサブセットのうち、複製され且つ複製と共に前記宛先計算ノードに送信される１以上のパケットの１個である、請求項１７に記載の装置。
【請求項１９】
前記サブセットに含まれる前記パケットの複製が、最小個数の複製対象パケットが各複製対象パケットの１回目の送信に先行して送信され、且つ各複製パケットが前記複製パケットの原本に続いて送信されるように、前記宛先計算ノードに送信されるパケットのシーケンス内で分散されている、請求項１８に記載の装置。
【請求項２０】
前記サブセットに含まれるパケットの複製が、前記パケットのシーケンスのうち全ての複製非対象パケットが送信された後で送信される、請求項１８に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野
[0001]  本明細書に記述する各種実施形態はパケット損失の管理に関する。特に、実施形態は、パケットのサブセットの余剰コピーを利用して、複製対象パケットの確認応答を受信する確率を高めると共に、複製対象パケットの確認応答に基づいて、複製非対象パケットの確認応答がなされていないかを判定する。
【背景技術】
【０００２】
発明の背景
[0002]  伝送制御プロトコル（ＴＣＰ）等のネットワークプロトコルは再送信タイマーを利用して、受信器が確認応答していないデータが確実に再送信されるようにする。例えば、このようなタイマーは、既定値又は送信器と受信器との間で測定された往復時間に基づく値に設定されてよい。パケットの確認応答を受信する前にタイマーが時間切れになったならばパケットは再送信され、タイマーの設定時間を延長することができる。例えば無線ネットワーク接続によるパケット損失量が増大及び変化するのに伴い、損失パケットを再送信するための再送信タイマーの設定時間切れを待つことによりデータの配信が遅くなる可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００３】
概要
[0003]  パケットのシーケンスのうち送信するパケットの複製コピーの個数を動的に決定することによりパケット損失を管理する装置及び方法に対するニーズがある。このようなシステム及び方法は任意選択的に、パケット損失を管理する従来方式のシステムを補完又は代替する。
【０００４】
[0004]  いくつかの実施形態によれば、一方法は、パケットのシーケンスとして宛先計算ノードに送信する複数パケットのうち１個のパケットを複製することを含んでいる。方法は又、当該パケットの複製を含む複数パケットを宛先計算ノードに送信することを含んでいる。方法は又、宛先計算ノードから当該パケットの第１の確認応答を受信することを含んでいる。方法は又、第１の確認応答が複製対象パケット宛であると判定することを含んでいる。方法は又、第１の確認応答が複製対象パケット宛であるとの判定に応答して、当該パケットに先行して送信された複数パケットのうち１個以上のパケットの各々に対して第２の確認応答が未だ受信されていないと判定することを含んでいる。方法は又、第２の確認応答が未だ受信されていないとの判定に応答して、当該１個以上のパケットを宛先計算ノードに再送信することを含んでいる。
【０００５】
[0005]  いくつかの実施形態において、当該パケットは、複数パケットのサブセットのうち、複製され且つ複製と共に宛先計算ノードに送信される１以上のパケットの１個である。
【０００６】
[0006]  いくつかの実施形態において、サブセットに含まれるパケットの複製は、最小個数の複製非対象パケットが各複製対象パケットの１回目の送信に先行して送信され、且つ各複製パケットが複製パケットの原本に続いて送信されるように、宛先計算ノードに送信されるパケットのシーケンス内で分散されている。
【０００７】
[0007]  いくつかの実施形態において、サブセットに含まれるパケットの複製は、パケットのシーケンスのうち全ての複製非対象パケットが送信された後で送信される。
【０００８】
[0008]  いくつかの実施形態において、方法は、宛先計算ノードへパケットを送信する際のパケット損失量を判定すること、及び判定されたパケット損失量に基づいて、複製してサブセットに含めるパケットの個数を設定することを含んでいる。
【０００９】
[0009]  いくつかの実施形態において、方法は、宛先計算ノードへパケットを送信する際のパケット損失量が閾値を超えたと判定することを含み、パケット損失量が閾値を超えたとの判定に応答して、サブセットに含めるパケットの個数をゼロに設定する。
【００１０】
[0010]  いくつかの実施形態において、方法は、宛先計算ノードへパケットを送信する際のパケット損失量を判定すること、及び判定されたパケット損失量に基づいて、サブセット内における各パケットの複製の個数を設定することを含んでいる。
【００１１】
[0011]  いくつかの実施形態において、パケットのシーケンス内でパケットの複製がシーケンス内の後続する各々の複製対象パケットの後に挿入される。
【００１２】
[0012]  いくつかの実施形態によれば、非一時的コンピュータ可読媒体は、処理装置により実行された場合に処理装置に方法を実行させる命令を保存している。当該方法は、パケットのシーケンスとして宛先計算ノードに送信する複数パケットのうち１個のパケットを複製することを含んでいる。当該方法は又、当該パケットの複製を含む複数パケットを宛先計算ノードに送信することを含んでいる。当該方法は又、宛先計算ノードから当該パケットの第１の確認応答を受信することを含んでいる。当該方法は又、第１の確認応答が複製対象パケット宛であると判定することを含んでいる。当該方法は又、第１の確認応答が複製対象パケット宛であるとの判定に応答して、対象パケットに先行して送信された複数パケットのうち１個以上のパケットの各々に対して第２の確認応答が未だ受信されていないと判定することを含んでいる。当該方法は又、第２の確認応答が未だ受信されていないとの判定に応答して、対象１個以上のパケットを宛先計算ノードに再送信することを含んでいる。
【００１３】
[0013]  いくつかの実施形態において、当該パケットは、複数パケットのサブセットのうち、複製され且つ複製と共に宛先計算ノードに送信される複数パケットの１個である。
【００１４】
[0014]  いくつかの実施形態において、サブセットに含まれるパケットの複製は、最小個数の複製非対象パケットが各複製対象パケットの１回目の送信に先行して送信され、且つ各複製パケットが複製パケットの原本に続いて送信されるように、宛先計算ノードに送信されるパケットのシーケンス内で分散されている。
【００１５】
[0015]  いくつかの実施形態において、サブセットに含まれるパケットの複製は、パケットのシーケンスのうち全ての複製非対象パケットが送信された後で送信される。
【００１６】
[0016]  いくつかの実施形態において、当該命令は、処理装置に、宛先計算ノードへパケットを送信する際のパケット損失量を判定させ、判定されたパケット損失量に基づいて、複製してサブセットに含めるパケットの個数を設定させる命令を含んでいる。
【００１７】
[0017]  いくつかの実施形態において、当該命令は、処理装置に、宛先計算ノードへパケットを送信する際のパケット損失量が閾値を超えたと判定させる命令を含み、パケット損失量が閾値を超えたとの判定に応答して、サブセットに含めるパケットの個数をゼロに設定する。
【００１８】
[0018]  いくつかの実施形態において、当該命令は、処理装置に、宛先計算ノードへパケットを送信する際のパケット損失量を判定させ、判定されたパケット損失量に基づいて、サブセット内における各パケットの複製の個数を設定させる命令を含んでいる。
【００１９】
[0019]  いくつかの実施形態において、パケットのシーケンス内でパケットの複製がシーケンス内の後続する各々の複製対象パケットの後に挿入される。
【００２０】
[0020]  いくつかの実施形態によれば、一装置は、処理装置と、処理装置に結合されたメモリとを含んでいる。メモリは、処理装置により実行された場合に装置に、パケットのシーケンスとして宛先計算ノードに送信する複数パケットのうち１個のパケットを複製させる命令を格納している。当該命令は又、装置に、当該パケットの複製を含む複数パケットを宛先計算ノードに送信させる。当該命令は又、装置に、宛先計算ノードから当該パケットの第１の確認応答を受信させる。当該命令は又、装置に、第１の確認応答が複製対象パケット宛であると判定させる。当該命令は又、装置に、第１の確認応答が複製対象パケット宛であるとの判定に応答して、当該パケットに先行して送信された複数パケットのうち１個以上のパケットの各々に対して第２の確認応答が未だ受信されていないと判定させる。当該命令は又、装置に、第２の確認応答が未だ受信されていないとの判定に応答して、当該１個以上のパケットを宛先計算ノードに再送信させる。
【００２１】
[0021]  いくつかの実施形態において、当該パケットは、複数パケットのサブセットのうち、複製され且つ複製と共に宛先計算ノードに送信される１以上のパケットの１個である。
【００２２】
[0022]  いくつかの実施形態において、サブセットに含まれるパケットの複製は、最小個数の複製非対象パケットが各複製対象パケットの１回目の送信に先行して送信され、且つ各複製パケットが複製パケットの原本に続いて送信されるように、宛先計算ノードに送信されるパケットのシーケンス内で分散されている。
【００２３】
[0023]  いくつかの実施形態において、サブセットに含まれるパケットの複製は、パケットのシーケンスのうち全ての複製非対象パケットが送信された後で送信される。
【００２４】
図面の簡単な説明
[0024]  本実施形態を、添付図面の各図を例として参照しながら、但しこれらに限定することなく説明し、類似参照符号は類似要素を示している。
【図面の簡単な説明】
【００２５】
【図１】[0025]ネットワークを形成すると共に、パケット損失を管理する実施形態を実装する処理装置をブロック図形式で示す。
【図２】[0026]パケットのサブセットの余剰コピーを含むパケットの３個の例示的なバーストを示す。
【図３】[0027]パケット損失を管理する例示的な方法を示すフロー図である。
【発明を実施するための形態】
【００２６】
発明の詳細な説明
[0028]  本明細書は、パケットのシーケンスのうち、送信するパケットの複製コピーの個数を動的に決定し、且つ複製対象パケットの確認応答を利用して複製非対象パケットの損失を検出することにより、パケット損失を管理する実施形態を記述する。例えば、実施形態は、パケットのシーケンスとして宛先計算ノードに送信する複数パケットのうち１個のパケットの１個以上の複製を生成する。当該パケットの１個以上の複製を含む複数パケットが宛先計算ノードに送信される。当該パケットの複数のコピーを送信する場合、宛先計算ノードが当該パケットを受信及び確認応答する確率が増大する。宛先計算ノードから当該パケットの第１の確認応答を受信した場合、実施形態は、第１の確認応答が複製対象パケット宛であると判定する。確認応答が複製対象パケット宛であるとの判定に応答して、実施形態は、シーケンス内の当該パケットの原本に先行して送信された複数パケットのうち１個以上のパケットの確認応答が未受信であるかを判定する。当該パケットに先行して送信された１個以上のパケットのいずれかの確認応答が未受信との判定に応答して、実施形態は、対応する１個以上のパケットを宛先計算ノードに再送信する。一実施形態において、判定されたパケット損失量に基づいて、複製するパケットの個数及び／又は生成された複製コピーの個数が設定される。その結果、実施形態は、送信する複製パケットの量を動的に調整しつつ、再送信タイマーの設定時間切れに先行してパケットの損失を検出して対応する。
【実施例】
【００２７】
[0029]  図１に、複数の処理装置であって、その１個以上が本明細書に記述するようにパケット損失の管理の実施形態を実装している複数の処理装置を含む例示的なネットワーク１００をブロック図形式で示す。データ内容はネットワーク１００を介して、例えば送信元１０５から宛先１２５に送信される。データは、宛先１２５に到達する前に出口ノード１１０、中間ノード１１５、及び入口ノード１２０を含む経路に沿って送信される。送信元１０５は、エンドユーザー装置（例えば、パーソナルコンピュータ、モバイル機器等）及び／又はサーバ等の１個以上の処理装置を表す。同様に、宛先１２５は、エンドユーザー装置（例えば、パーソナルコンピュータ、モバイル機器等）及び／又はサーバ等の１個以上の処理装置を表す。一実施形態において、宛先１２５は無線接続を介してネットワーク１００に結合されたエンドユーザー装置である。
【００２８】
[0030]  一実施形態において、１個以上の出口ノード１１０、中間ノード１１５、及び入口ノード１２０は、コンテンツ配信ネットワーク（ＣＤＮ）の一部である。ＣＤＮは、複数のデータセンタに設置されたネットワークサーバノードの地理的に分散された組を含んでいる。ＣＤＮネットワークサーバノードは、高い可用性及び性能でコンテンツを提供すべく構成されている。
【００２９】
[0031]  入口ノード１２０は、ハードウェア１３０を含む状態で示されている。送信元１０５、出口ノード１１０、中間ノード１１５、及び宛先１２５の各々は又、同様のハードウェアを含んでいてよい。ハードウェア１３０は、１個以上のプロセッサ（「ＣＰＵ」）、データストレージ及びメモリ（例えば、「ＲＡＭ」）、並びにネットワークインターフェースコントローラ（「ＮＩＣ」）を含んでいる。データストレージ及びメモリは、データ、メタデータ及びプロセッサにより実行されるプログラムの格納に用いられてよい。データストレージ及びメモリは、ランダムアクセスメモリ（「ＲＡＭ」）、読み出し専用メモリ（「ＲＯＭ」）、固体ディスク（「ＳＳＤ」）、フラッシュ、位相変化メモリ（「ＰＣＭ」）等の、１個以上の揮発性及び不揮発性メモリ、又は磁気ディスクドライブ、光ディスクドライブ等の他の種類のデータストレージを含んでいてよい。メモリは内蔵又は分散メモリであってよい。１個以上のバス（図示せず）を用いてハードウェア１３０の各種の要素を相互接続することができる。又、ＮＩＣを用いて、有線又は無線ネットワークを介して入口ノード１２０を中間ノード１１５及び宛先１２５と接続することができる。
【００３０】
[0032]  入口ノード１２０は、パケット損失モジュール１３５を含む状態でも示されている。一実施形態において、パケット損失モジュール１３５は、例えば図２〜３を参照しながら記述するように、複製パケットを用いてパケット損失を監視して、損失パケットを再送信する。一実施形態において、１個以上の出口ノード１１０及び中間ノード１１５の各々も又パケット損失モジュール１３５を含んでいる。
【００３１】
[0033]  図２に、パケットのサブセットの余剰コピーを含む、パケットの例示的なバースト２００、２２５及び２３０を示す。図示するように、バースト２００、２２５及び２３０の各々は１００個のパケットのシーケンスを含んでいる。しかし、パケットのバーストは本例に示すよりも少ない又は多くのパケットを含んでいてよい。バースト２００、２２５及び２３０の各々は、Ｎ番目（Ｎ＝５）のパケット毎に複製を含む状態で示されている。Ｎ番目のパケット毎に複製することで、複製対象パケット間で最小個数の複製非対象パケットが送信される。パケットの複製コピーは、複製であることを強調すべくアステリスクで示している。例えば、複製２０５はシーケンス内で５番目のパケットのコピー、複製２１０はシーケンス内で１０番目のパケットのコピー、複製２１５はシーケンス内の１５番目のパケットのコピー、複製２２０はシーケンス内で２０番目のパケットのコピーである。このパターンの複製は、図２の丸で表すように、シーケンスの残り全体にわたり継続される。図３を参照しながら記述するように、Ｎの値は可変であってよく、また既定値に基づいて、又は宛先１２５パケットを送信する際に判定されたパケット損失量に基づいて設定されてよい。
【００３２】
[0034]  一実施形態において、各複製対象パケットのＸ個のコピーが生成されてシーケンス内に挿入される。例えば、各複製対象パケットの１個以上のコピーが、パケットの原本の後に、及び／又はパケットのシーケンス終端に挿入されてよい。Ｘの値が大きいほど、宛先１２５が複製対象パケットを受信して確認応答する可能性が高くなる。バースト２００及び２２５は、５番目のパケットの直後に１個の複製２０５だけを有する状態で示されている。同様に、バースト２３０は、１００番目のパケットの直後に１個の複製２０５だけを有する状態で示されている。しかし、一実施形態において、複数の複製２０５は、５番目のパケットの直後（例えば、シーケンス内の複製されていない６番目のパケットの前）、１００番目のパケットの直後、又はシーケンス内で５番目のパケットの確認応答を受信する可能性を高めるべく他の箇所にあってよい。同様に、複数の複製２１０、２１５、２２０等は、対応する元パケットの直後に、又はバーストの最後のパケットの後に挿入されてよい。図３を参照しながら記述するように、Ｘの値は可変であり得、既定値に基づいて、又は宛先１２５へパケットを送信する際の判定されたパケット損失量に基づいて設定されてよい。
【００３３】
[0035]  一実施形態において、（例えば上述のようにＸで定義された）各複製対象パケットの１個以上のコピーが、パケットの原本の後に、且つシーケンス内での後続する各々の複製対象パケットの後に挿入される。例えば、図示するように、５番目のパケットの複製２０５は、５番目のパケットの後に、及び後続する各々のＮ番目のパケット（第１０、第１５、第２０等）の後に挿入される。１０番目のパケットの複製２１０は、１０番目のパケットの後に、及び後続する各々のＮ番目のパケット（１５番目、２０番目等）の後に挿入される。複製をバースト２００の全体にわたり分散させることで、たとえ損失パケットのクラスタが存在しても、宛先１２５が複製対象パケットを受信して確認応答する可能性を高める。代替的に、各複製対象パケットの１個以上のコピーが挿入されるのはパケットの対応する原本の後だけであって、シーケンスでの後続する各々の複製対象パケットの後には挿入されない。
【００３４】
[0036]  別の実施形態において、シーケンス内で複製対象パケットの最大個数（Ｍ）個がバースト内の各位置に挿入される。例えば、バースト２２５に示すように、Ｍ＝２であるため複製パケットの２個のインスタンスだけがバースト２２５内の各位置に挿入される。５番目のパケットの複製２０５が５番目のパケットの後に挿入される。この時点で他の複製パケットが存在しないため、１個の複製だけが挿入される。５番目のパケットの複製２０５及び１０番目のパケットの複製２１０が１０番目のパケットの後に挿入される。しかし、１５番目のパケット後に、５番目のパケットの複製２０５はもはや挿入されない。本例では、複製パケットの個数がＭを超えそうな場合、バースト内の先のパケットが複製から除外される。このように、１０番目のパケットの複製２１０及び１５番目のパケットの複製２１５が１５番目のパケットの後に挿入されるが、５番目のパケットの複製２０５は挿入されない。同様に、１５番目のパケットの複製２１５及び２０番目のパケットの複製２２０が２０番目のパケットの後に挿入されるが、複製２０５及び２１０は挿入されない。
【００３５】
[0037]  一実施形態において、（例えば上述のようにＸで定義された）各複製対象パケットの１個以上のコピーが、パケットのバーストの終端に挿入される。例えば、バースト２３０は、バースト２００及び２２５に示すように、全体にわたり分散された複製を含んでいない。代わりに、バースト２３０は、バーストの終端に複製を含んでいるだけである。別の例において、パケットのバーストは、元パケットの直後に１個以上の複製（例えば、シーケンス内で５番目のパケットの後の複製２０５）及びバーストの終端（例えば、シーケンス内で１００番目のパケットの後の複製２０５）に１個以上の複製を含んでいてよいが、それ以外では全体にわたり分散されない（例えば、１０番目、１５番目等のパケットの後には複製２０５は無い）。更に別の一実施形態において、図示するように、バースト２００は複製をバーストの全体にわたり分散された状態で、及び終端に含んでいてよい。
【００３６】
[0038]  図３は、パケット損失を管理する例示的な方法３００を示すフロー図である。ブロック３０５において、パケット損失モジュール１３５は、一連のパケットの組内でＮ番目のパケット毎に１個以上の複製を生成する。例えば、図２を参照しながら記述するように、Ｎ番目のパケット毎にＸ個の複製を生成することができる。パケット損失モジュールは、Ｘ及びＮの既定値を用いてもよく、又はブロック３５０に関して後述するように、推定されたパケット損失値に基づいてＸ及びＮの値を設定してのよい。
【００３７】
[0039]  ブロック３１０において、パケット損失モジュール１３５は、複数されたパケットのシーケンス番号（又はバースト内でパケットを一意に識別する他の識別子、以下「シーケンス番号」）を保存する。これらのシーケンス番号は、宛先１２５により受信及び確認応答される可能性が高い「マーカーパケット」を示す。これらのマーカーパケットのシーケンス番号は、パケット損失モジュール１３５が当該番号を宛先１２５からの確認応答で受信されたシーケンス番号と比較できるように、保存される。
【００３８】
[0040]  ブロック３１５において、パケット損失モジュール１３５は、一連のパケットの組を複製コピーと共に宛先１２５に送信する。図２を参照しながら記述するように、複製コピーは、対応する原本の後に挿入されていても、シーケンス全体にわたり分散されても、及び／又はパケットの組の終端に挿入されていてもよい。
【００３９】
[0041]  ブロック３２０において、パケット損失モジュール１３５は宛先１２５から確認応答を受信する。例えば、パケット損失モジュール１３５は、Internet Engineering Task Force (IETF) RFC 2018 TCP Selective Acknowledgment Optionsに従い確認応答又は選択的確認応答を受信することができる。一実施形態において、受信した確認応答は、宛先１２５により受信されたパケットのシーケンス番号（又は他の一意な識別子）を含んでいる。
【００４０】
[0042]  ブロック３２５において、パケット損失モジュール１３５は、受信した確認応答が複製対象マーカーパケットのシーケンス番号（又は他の一意な識別子）を含むか否かを判定する。受信した確認応答が複製対象マーカーパケットのシーケンス番号を含んでいない場合、ブロック３３０において、パケット損失モジュールは任意選択的に、確認応答された複製非対象パケットシーケンス番号のコピーを保存するか、又は成功裏に送信されて再送信する必要がないパケットを確認すべく、確認応答されたパケットを表す値を更新する。
【００４１】
[0043]  ブロック３３５において、パケット損失モジュール１３５は、組内の追加的なパケットがまだ確認応答されるべきかを判定する。全てのパケットが確認応答されている場合、方法３００はブロック３０５に戻ってパケットの別のバーストを送信する。組内の追加的なパケットがまだ確認応答されるべきである場合、方法３００はブロック３２０に戻って追加的な確認応答を待つ。
【００４２】
[0044]  受信した確認応答が複製対象マーカーパケットのシーケンス番号を含んでいる場合、ブロック３４０において、パケット損失モジュール１３５は、シーケンス内で複製対象パケットに先行する複製非対象パケットに確認応答が欠如しているか否かを判定する。例えば、パケット損失モジュール１３５は、ブロック３３０を参照しながら記述するように、確認応答シーケンス番号を保存して、現在確認応答されているパケットより前のどのパケットがデータ構造又は他の表現から欠如しているかを判定してもよい。代替的に、受信した確認応答は、受信した１個以上のパケットの複数の設定を示すことができ、従ってどのパケットが確認応答されていないかが示唆される。
【００４３】
[0045]  一実施形態において、パケット損失モジュール１３５は、シーケンス内で現在の複製対象パケットに先行するＮ−１個の複製非対象パケットのいずれかの確認応答が欠如しているか否かを判定する。図２に示す例を参照するに、パケット損失モジュール１３５が一連のパケットの組の１０番目のパケットの確認応答を受信して、１０番目のパケットが複製されている（例えば、複製２１０）と判定した場合、パケット損失モジュール１３５は、６〜９番目のパケット（例えばバースト２００ではＮ＝５、Ｎ−１＝４であり、シーケンス内の１０番目のパケットに先行する４個のパケットは、６番目、７番目、８番目、及び９番目のパケットである）が確認応答されているか否かを判定する。代替的に、パケット損失モジュール１３５は、シーケンス内の現在の複製対象パケットに先行するパケットの確認応答が欠如しているか否かを判定する（例えば、バースト２００内の１０番目のパケットの確認応答について、１〜９番目のパケットの確認応答の欠如を評価する）。
【００４４】
[0046]  先行パケットの確認応答が欠如している場合、ブロック３４５において、パケット損失モジュール１３５は、確認応答が欠如していると判定された先行パケットのコピーを再送信する。その結果、パケット損失モジュール１３５は、複製対象マーカーパケットの確認応答の受信に応答して、確認応答が欠如しているパケットを、例えば再送信タイマーの設定時間切れを待つことなく再送信することが可能である。
【００４５】
[0047]  どの先行パケットも確認応答が欠如していない、又は確認応答されていないパケットの再送が続かない場合、ブロック３５０において、パケット損失モジュール１３５は任意選択的に、宛先１２５へのパケット送信について、推定されたパケット損失値を更新する。例えば、パケット損失モジュール１３５は、宛先１２５に送信されたパケットのパケット損失を表すパーセンテージ又は他の値を計算することができる。１つのシーケンス内の２０個のパケットのうち１個が失われた場合、パケット損失モジュール１３５は、宛先１２５へパケットを送信する際のパケット損失値を５％と計算することができる。
【００４６】
[0048]  一実施形態において、推定されたパケット損失値は、後続バースト内のパケットを複製する際に用いるＸの値及び／又はＮの値にマッピングされる。例えば、パケット損失モジュール１３５は、データ構造を利用してパケット損失値又はパケット損失値の範囲をＸの値及び／又はＮの値にマッピングすることができる。パケット損失値が増大するにつれて、Ｘ及び／又はＮの値も増大する。一実施形態において、パケット損失モジュール１３５は、パケット損失値が閾値を超えたか否かを判定し、超えた場合、パケットを複製する必要がないと判定する。例えば、パケット損失が１２％又は他の閾値を超えた場合、パケット損失モジュール１３５は、宛先１２５が無線接続を喪失する恐れがある、又は方法３００によるパケットの再送に利点がないと判定することができる。
【００４７】
[0049]  任意選択的ブロック３５０に続いて、方法３００はブロック３３５に戻って一連のパケットの組内に確認応答すべき追加的なパケットが残っているか否かを判定する。
【００４８】
[0050]  上の記述から、本発明の態様が少なくとも一部はソフトウェアで実現可能であることは明らかであろう。すなわち、パケット損失モジュール１３５及び／又はコンピュータ実行方法３００は、コンピュータシステム又はノード１１０、１１５、及び／又は１２０等の他のデータ処理システムにおいて、メモリ又は他の非一時的機械可読記憶媒体に含まれる命令のシーケンスを自身のプロセッサが実行したことに応答して、実装又は実行されてよい。ソフトウェアは更に、ネットワークインターフェースを介してネットワーク（図示せず）経由で送信又は受信されてよい。各種の実施形態において、配線回路をソフトウェア命令と組み合わせて用いて本実施形態を実行してもよい。このように、上述の技術はハードウェア回路とソフトウェアのいかなる特定の組み合わせにも、又はノード１１０、１１５、及び／又は１２０により実行される命令のいかなる特定の発行元にも限定されない。図示しない追加的な要素も又、ノード１１０、１１５、及び／又は１２０の一部であってよく、及び特定の実施形態において、図１に示すよりも少ない個数の部品をノード１１０、１１５、及び／又は１２０で用いてもよいことが理解されよう。
【００４９】
[0051]  製品を用いて上述の実施形態の機能の少なくとも一部を提供するプログラムコードを格納してもよい。又、製品を用いて、上述の実施形態の機能の少なくとも一部を用いて生成されたプログラムコードを格納してもよい。プログラムコードを格納する製品は、１個以上のメモリ（例えば、静的、動的、又は他の１個以上のフラッシュメモリ、ランダムアクセスメモリ）、光ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気又は光カード、固体ドライブ（ＳＳＤ）、又は電子命令の保存に適した他の種類の非一時的コンピュータ可読媒体として実現できるが、これらに限定されない。又、本発明の実施形態は、ＦＰＧＡ、ＡＳＩＣ、プロセッサ、コンピュータ、又はネットワークを含むコンピュータシステムを利用するハードウェア又はファームウェアに実装されてよいが、これらに限定されない。ハードウェア又はソフトウェアを実装したモジュール及び要素は本発明の実施形態を大幅に変更することなく分割又は組み合わせることができる。
【００５０】
[0052]  本明細書において、本発明について特定の例示的な実施形態に関して記述してきた。本発明の各種の実施形態及び態様について本明細書で議論した詳細事項に関して記述しており、添付の図面に各種の実施形態を示している。上の記述及び図面は、本発明を図解するものであって、本発明を限定するものと解釈してはならない。本明細書における「ある実施形態」、「一実施形態」、「例示的な一実施形態」等への言及は、記述する実施形態が特定の機能、構造、又は特徴を含み得ることを示すが、必ずしも全ての実施形態が特定の機能、構造、又は特徴を含んでいる訳ではない。更に、このような語句は必ずしも同一の実施形態を指す訳ではない。更に、特定の機能、構造、又は特徴がある実施形態と関連付けて記述されている場合、そのような機能、構造、又は特徴は、明示的に記述されているか否かに依らず、他の実施形態と関連付けて実装されていてよい。又、本明細書で用いる用語「例示的」は、単に例又は図解に過ぎない実施形態を指している。「例示的」の使用な好適な例を示すものと解釈してはならない。破線の境界を有するブロック（例：粗い破線、細かい破線、一点鎖線、点線）を用いて、本発明の実施形態に追加的な特徴を加える仮想化されたリソース又は、フロー図における任意選択的動作を示す。しかし、このような表記は、唯一の任意選択肢又は任意選択的動作である、及び／又は実線境界を有するブロックは本発明の特定の実施形態において任意選択でないことを意味するものと解釈すべきでない。本発明の各種実施形態が完全に理解されるよう多数の特定の詳細事項を記述している。しかし、特定の実施態様において、本発明の実施形態を簡潔に説明すべく、公知又は従来方式の詳細事項は記述していない。
【００５１】
[0053]  以下の請求項に開示する本発明のより広範な趣旨及び範囲から逸脱することなく、各種の変更を行えることは明らかであろう。例えば、本明細書に記述する方法は、より少ない又は多くの特徴／ブロックにより実行することができ、又は特徴／ブロックは異なる順序で実行することができる。又、本明細書に記述する方法は、繰り返し、又は互いに並列に実行されても、或いは同一又は同様の方法の異なる実施態様と並列に実行されてもよい。
【図１】
2020521413.tif 000003
【図２】
2020521413.tif 000004
【図３】
2020521413.tif 000005
【国際調査報告】
2020521413.tif 000006
2020521413.tif 000007