(57)【特許請求の範囲】
【請求項１】
通信ネットワーク内で起点ノード（１０）から宛先ノード群（２１〜２３）に向かうデータの受信確認を伴う配送におけるエンド・ツー・エンド信頼性を管理する方法において、宛先ノード群（２１〜２３）が少なくとも１つの第１の宛先ノード（２１）を含む方法であって、
−  前記第１の宛先ノード（２１）が起点ノード（１０）から来る第１のメッセージを受信した後、前記第１の宛先ノード（２１）が、前記起点ノード（１０）から伝送されて前記第１の宛先ノード（２１）が受信する第２のメッセージにマーキングされているエンド・ツー・エンド・シーケンス番号を予想し、かつ、前記起点ノード（１０）が、増分的エンド・ツー・エンドシーケンス番号（ｎ１）によって、前記第１の宛先ノード（２１）に宛てて起点ノード（１０）から伝送される第２のメッセージをマーキングするステップと；
−  宛先ノード群（２１〜２３）の中に含まれる１つの宛先ノード（２１〜２３）に宛てて起点ノード（１０）からメッセージ（１〜３）を伝送した時点で、宛先ノード群（２１〜２３）に宛てて起点ノード（１０）が発信した順序付けされた包括的データ・ストリーム内の前記メッセージ（１〜３）の位置を表わす包括的シーケンス番号を増分させるステップであって、この包括的シーケンス番号が、予め定義された最大値まで増分され得るものである、ステップと；
−  起点ノード（１０）から宛先ノード群内に含まれる１つの宛先ノードに宛てて伝送されかつそれについての受信確認を起点ノードが受信していない最も古いメッセージの包括的シーケンス番号を識別するステップと；
−  起点ノード（１０）から宛先ノード群（２１〜２３）の中に含まれる１つの宛先ノード（２１〜２３）に宛てて伝送すべき次のメッセージの包括的シーケンス番号と、識別された包括的シーケンス番号との間の差を計算するステップと；
−  計算された差が予め定義された閾値に等しい場合、起点ノード（１０）から宛先ノード群（２１〜２３）に宛てた新規メッセージの伝送を中断するステップと；
−  この中断の後、前記第１の宛先ノード（２１）においてタイムアウトが検出された場合、前記第１の宛先ノード（２１）が、前記第１の宛先ノード（２１）により受信された前記起点ノード（１０）から来た過去のメッセージにマーキングされているエンド・ツー・エンド・シーケンス番号（ｎ１）と、当該メッセージに対して予想されたエンド・ツー・エンド・シーケンス番号を比較して異なるか否かを判定し、異なる場合、前記第１の宛先ノード（２１）が、データ配送におけるエラーの存在を演繹するステップと、
を含む方法。
【請求項２】
前記データ配送におけるエラーの存在を演繹するステップにおいて、受信したメッセージをマーキングするエンド・ツー・エンド・シーケンス番号（ｎ１）が予想されたエンド・ツー・エンド・シーケンス番号より大きい場合、演繹される前記エラーはメッセージの紛失である、請求項１に記載の方法。
【請求項３】
前記データ配送におけるエラーの存在を演繹するステップにおいて、受信したメッセージをマーキングするエンド・ツー・エンド・シーケンス番号（ｎ１）が予想されたエンド・ツー・エンド・シーケンス番号より小さい場合、演繹される前記エラーは、受信メッセージが重複メッセージであることである、請求項１に記載の方法。
【請求項４】
予め定義された閾値が、前記予め定義された最大値の半分の整数値である、請求項１〜３のいずれか一項に記載の方法。
【請求項５】
包括的シーケンス番号が前記予め定義された最大値に達した場合、この包括的シーケンス番号の初期化ステップをさらに含む、請求項１〜４のいずれか一項に記載の方法。
【請求項６】
包括的シーケンス番号が１６ビットにわたり符号化される、請求項１〜５のいずれか一項に記載の方法。
【請求項７】
エンド・ツー・エンド・シーケンス番号が１６ビットにわたり符号化される、請求項１〜６のいずれか一項に記載の方法。
【請求項８】
起点ノードから宛先ノード（２１〜２３）に宛てたメッセージ（１〜３）の伝送のために、前記宛先ノード（２１〜２３）に対応するエンド・ツー・エンド・シーケンス番号を読取るステップであって、この番号が前記起点ノード（１０）の再伝送メモリ内で記憶されるステップと、読取られたエンド・ツー・エンド・シーケンス番号を１だけ増分するステップとをさらに含み、１だけ増分したエンド・ツー・エンド・シーケンス番号は再伝送メモリ内に記憶され、かつ、前記１だけ増分したエンド・ツー・エンド・シーケンス番号は、起点ノードから宛先ノード（２１〜２３）に宛てた次のメッセージをマーキングするために使用される、請求項１〜７のいずれか一項に記載の方法。
【請求項９】
−  再伝送メモリ内に包括的シーケンス番号を記憶するステップと；
−  ２重連鎖リスト内に前記第１の宛先ノード（２１）に伝送された各メッセージを記憶するステップであって、この２重連鎖リストが前記再伝送メモリ内に記憶され前記第１の宛先ノードに結びつけられている、ステップと、
をさらに含む、請求項１〜８のいずれか一項に記載の方法。
【請求項１０】
情報処理ユニットの内部で使用可能であり、請求項１〜９の一項に記載の方法を実施するための命令を含む、記憶媒体上で実装されたコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット通信ネットワーク内の通信ノード間のエンド・ツー・エンド・ストリーム制御技術に関し、より詳細には、データ配送におけるエンド・ツー・エンド信頼性メカニズムの最適な実装に関する。
【背景技術】
【０００２】
ここで、「エンド・ツー・エンド信頼性」とは、起点ノードから１つ以上の宛先ノードに向かって送られるメッセージのエンド・ツー・エンド（「Ｅｎｄ−ｔｏ−Ｅｎｄ」とも呼ばれる）配送保証を意味する。
【０００３】
パケット通信ネットワークの内部における複数ノードが関与する通信の間には、パケット破損、パケットの無秩序化、パケットの紛失または重複などのさまざまなエラーが発生し得る。このため、特に以下のような異なるエンド・ツー・エンド信頼性メカニズムが想定される：すなわち、
−  受信したメッセージのシーケンス番号の飛越しに気付くことにより、宛先ノードがメッセージの紛失を検出するような形で、伝送された各メッセージに対して起点ノードが１つのエンド・ツー・エンド・シーケンス番号を追加すること；
−  将来エラーが発生した場合に再伝送するために、伝送された全てのメッセージのコピーを、起点ノードレベルでメモリ内に記憶すること；
および、
−  一般に、受信確認（「ａｃｋｎｏｗｌｅｄｇｍｅｎｔ」）を伴う伝送プロトコルを使用する接続である指向性リンクの端部ノード（起点ノードおよび宛先ノード）内で実装される、これらのエラーの検出方法。
【０００４】
実際、エンド・ツー・エンド・シーケンス番号を用いたパケットのスケジューリングに基づく解決法において、各起点・宛先対は、専用のエンド・ツー・エンド・シーケンス番号（各向きに１つずつ）を有している。所与の対のエンド・ツー・エンド・シーケンス番号は、新規メッセージがこれら２つのノード間で送られる毎に、１だけ増分される。このようにして、宛先ノードは、各々の起点ノードについて、受信したパケットが連続的シーケンス番号を確実に含んでいることをチェックする。
【０００５】
この解決法には、それぞれ起点ノードおよび宛先ノードレベルで、
−  ビューイングされた各ノードのために使用すべき次のエンド・ツー・エンド・シーケンス番号を、このノードにより宛先ノードとして記憶するため；
−  ビューイングされた各ノードの次の予測されるエンド・ツー・エンド・シーケンス番号を、このノードにより起点ノードとして記憶するため、
のメモリを追加するという欠点がある。
【０００６】
その上、シーケンス番号の数に、使用される仮想ネットワークの数を乗じる必要がある。例えば、４つの仮想ネットワークに、６５５３６個のノードのネットワーク内でのスケジューリングを保証するためには、ノード１つあたり、２（発信／受信）×６５５３６（ノード数）×４（仮想ネットワーク数）のエンド・ツー・エンド・シーケンス番号を記憶しなければならない。この場合、１６ビット（これに加えて、エラー補正コードの追加のための６ビット）にわたり１つのシーケンス番号で、２２ビットの５２４２８８入力のメモリ、すなわち１１２６４ＫＢが必要とされる。このような記憶空間の割当ては、リソースコストが極めて高く、そのサイズに比例する形でのネットワークの性能に影響を及ぼす。
【０００７】
伝送されたデータ内にエラーが発生した場合（データの破損、スケジューリングされていない配送、またはパケット紛失など）、宛先ノードは、遭遇したエラータイプを明示する「非受信確認」タイプの応答メッセージを返送することにより、起点ノードに知らせる。その後、起点ノードは、１つまたは複数の関係するパケットの再伝送に着手する。
【０００８】
このために、起点ノードは、再伝送メモリ内に、この起点ノードが発出する全てのメッセージのコピーを記憶する。起点ノードは、肯定的な受信確認を受信した場合、再伝送メモリの対応するメッセージを削除することができる。これに対して、否定的な受信確認（すなわち「非受信確認」タイプのもの）を受信した場合、または宛先ノードに送られた一部のメッセージに対する応答メッセージを受信しなかった場合、起点ノードは、その再伝送、場合によってはこの同じ宛先ノードに向けての後続するメッセージの再伝送に着手する。実際、スケジューリングされたトラヒックの場合、エンド・ツー・エンド・シーケンス番号のチェックが誤ったものであることから、宛先ノードは、最初の誤ったメッセージが宛先ノードによりエラーなく再伝送され受信されるまで、誤ったパケットに続く全てのパケットを拒絶する。
【０００９】
このデータ再伝送の欠点は、その実装が不便であるという点にある。実際、起点ノードは、エラーメッセージならびに全ての後続するメッセージを、そのエラーを検出した宛先ノードに向かって、しかもこの宛先だけに向けて再伝送しなければならない。しかしながら、異なる宛先ノードに向かって送られたメッセージが、同じ再伝送メモリ内に記憶される（換言すると、１宛先ノードあたり１つの再伝送メモリを設けることは、実際上実現不可能である）ことから、必要とされるメッセージのみを識別し、エラーを検出した宛先ノードに向かってこれを再伝送するためには、この再伝送メモリをスキャンする必要がある。このことは、確実に、エンド・ツー・エンド信頼性メカニズムの性能に影響を及ぼす。
【００１０】
その上、対応するメッセージが確かに宛先ノードに到着しているにもかかわらず、受信確認メッセージが紛失している可能性もある。この場合、起点ノードはこのメッセージを再伝送し、受信確認メッセージの再伝送を求め、これにより、宛先ノード側のメッセージの重複がひき起こされる。メッセージの重複は、ネットワークの激しい混雑状態の場合にも同様に発生することがあり、その場合、発信されたメッセージまたはその受信確認を減速させて、このメッセージが失われたと考えて起点ノードがこのメッセージを再伝送することになる。その結果、宛先ノードは同じメッセージを２回受信することになる。
【００１１】
重複メッセージと紛失メッセージとを区別するためには、概して、エンド・ツー・エンド・シーケンス番号の可能最大値が、起点ノードと宛先ノードの間の最悪の伝播時間とタイムアウトの合計に等しい持続時間中にこの起点ノードが送ることのできるメッセージ数の２倍をはるかに上回っていることが必要とされる。タイムアウトは、データ・パケットの送信時点で起点ノードにより活動化され、その最後にこのパケットの受取り通知が予想されるディレー時間（Ｒｅｔｒａｎｓｍｉｓｓｉｏｎ  Ｔｉｍｅ  Ｏｕｔ、略してＲＴＯ）である。
【００１２】
この場合、
−  毎秒１億２５００万パケットを送信できる起点ノード；
−  ４秒のタイムアウト、そして
−  （非常に混雑しているネットワークについて）およそ１秒の起点ノードと宛先ノード間の最悪の伝播時間、
について、エンド・ツー・エンド・シーケンス番号の可能最大値は、１２億５０００万をはるかに上回るものでなければならない。したがって、この値は、少なくとも３２ビットにわたり符号化されなければならない。換言すると、こうして、約３２ビットのエンド・ツー・エンド・シーケンス番号を、各送信済みメッセージ中に追加することになる。しかしながら、このような規模のシーケンス番号の付加は、起点ノードと宛先ノード（単複）の間の有効通過帯域の著しい削減を結果としてもたらす非常に高コストのオーバーロードを意味する。３２ビットのシーケンス番号は同様に、ノードレベルでのその記憶に必要な記憶空間も増大させる。
【発明の概要】
【発明が解決しようとする課題】
【００１３】
本発明の目的は、上述の欠点を改善することにある。
【００１４】
本発明のもう１つの目的は、特に大規模ＩＰネットワークにおけるエンド・ツー・エンドストリームの制御技術の実装の複雑性を低減させることにある。
【００１５】
本発明のもう１つの目的は、ＩＰネットワークの内部でのデータ配送における信頼性を増大させることにある。
【００１６】
本発明のもう１つの目的は、
−  所要記憶空間；
−  ネットワークの性能（特に毎秒処理メッセージ数または有効通過帯域）に対する影響；
を制限しながら、大規模ネットワークの信頼性を保証できるエンド・ツー・エンド保護方法を提案することにある。
【課題を解決するための手段】
【００１７】
これらの目的のため、本発明は、第１の態様によると、通信ネットワーク内で起点ノードから宛先ノード群に向かうデータの受信確認を伴う配送におけるエンド・ツー・エンド信頼性を管理する方法において、宛先ノード群が少なくとも１つの第１の宛先ノードを含む方法であって、
−  前記第１の宛先ノードが起点ノードから来る第１のメッセージを受信した後、前記起点ノードから来る予想されたエンド・ツー・エンドシーケンス番号がマーキングされた第２のメッセージの受信を予想するような形で、増分的エンド・ツー・エンドシーケンス番号によって、前記第１の宛先ノードに宛てて起点ノードから伝送されるメッセージをマーキングするステップと；
−  宛先ノード群の中に含まれる１つの宛先ノードに宛てて起点ノードからメッセージを伝送した時点で、包括的シーケンス番号を増分させるステップであって、この包括的シーケンス番号が、予め定義された最大値まで増分され得るものであるステップと；
−  起点ノードから宛先ノード群内に含まれる１つの宛先ノードに宛てて伝送されかつそれについての受信確認を起点ノードが受信していないメッセージの包括的シーケンス番号を識別するステップと；
−  起点ノードから宛先ノード群の中に含まれる１つの宛先ノードに宛てて伝送すべき次のメッセージの包括的シーケンス番号と、識別された包括的シーケンス番号との間の差を計算するステップと；
−  計算された差が予め定義された閾値に等しい場合、起点ノードから宛先ノード群に宛てたメッセージの伝送を中断するステップと；
−  この中断の後、前記第１の宛先ノードにより受信された前記起点ノードから来たメッセージをマーキングするエンド・ツー・エンドシーケンス番号が前記予想されたエンド・ツー・エンドシーケンス番号と異なる場合、前記第１の宛先ノードが、データ配送におけるエラーの存在を演繹するステップと、
を含む方法を提案する。
【００１８】
この方法は、さまざまな実施形態にしたがって、場合によっては組合された形で、以下の特徴を有する：
−  受信したメッセージをマーキングするエンド・ツー・エンドシーケンス番号が予想されたエンド・ツー・エンド・シーケンス番号より大きい場合、エラーはメッセージの紛失である。
−  受信したメッセージをマーキングするエンド・ツー・エンド・シーケンス番号（ｎ１）が予想されたエンド・ツー・エンド・シーケンス番号より小さい場合、エラーは、受信メッセージが重複メッセージであることである。
−  予め定義された閾値は、前記予め定義された最大値の半分の整数値である。
−  包括的シーケンス番号は、１６ビットにわたり符号化される。
−  エンド・ツー・エンド・シーケンス番号は、１６ビットにわたり符号化される。
【００１９】
この方法は、さらに以下のステップを含む：
−  包括的シーケンス番号が前記予め定義された最大値に達した場合、この包括的シーケンス番号を初期化するステップ；
−  前記宛先ノードに対応するエンド・ツー・エンド・シーケンス番号を読取るステップであって、この番号が前記起点ノード（１０）のレベルで記憶されるステップ；
−  読取られたエンド・ツー・エンド・シーケンス番号を１だけ増分するステップ；
−  再伝送メモリ内に包括的シーケンス番号を記憶するステップ；
−  ２重連鎖リスト内に前記第１の宛先ノードに伝送された各メッセージを記憶するステップであって、この２重連鎖リストが前記再伝送メモリ内に記憶され前記第１の宛先ノードに結びつけられているステップ。
【００２０】
本発明は、第２の態様によると、情報処理ユニットの内部で使用可能であり、以上でまとめた方法を実施するための命令を含む、記憶媒体上で実装されたコンピュータプログラム製品を提案している。
【００２１】
本発明の他の目的および利点は、添付図面を参考にして行なわれる実施形態の説明に照らして、明らかになるものである。
【図面の簡単な説明】
【００２２】
【図１】１つの起点ノードから複数の宛先ノードに向けたデータ配送の実施形態を例示する。
【図２】１実施形態に係るデータ記憶およびアクセス方法を例示する。
【発明を実施するための形態】
【００２３】
図１を参照すると、それぞれに、同一の仮想ネットワークに属するかまたは属していない複数の宛先ノード２１、２２、２３に向けてメッセージ１、２、３を伝送する起点ノード１０が表示されている。
【００２４】
起点ノード１０は、宛先ノード２１、２２、２３に対して、受信確認４〜６を伴う（すなわち「受取り通知」を伴うかまたは「ａｃｋｎｏｗｌｅｄｇｍｅｎｔ」を伴う）伝送プロトコルを使用するリンクＬ１、Ｌ２、Ｌ３を介して、メッセージ１、２、３を伝送する。
【００２５】
各宛先ノード２１〜２３に向けて順序付けされたメッセージを伝送するために、各メッセージ１〜３は、起点ノード１０のレベルで、起点ノード１０から来て対応する宛先ノード２１〜２３に向かう順序付けされたメッセージ・ストリーム内のこのメッセージの位置を表わすエンド・ツー・エンド・シーケンス番号ｎ１〜ｎ３によりマーキングされる。換言すると、メッセージ１をマーキングするエンド・ツー・エンド・シーケンス番号ｎ１は、起点ノード１０が宛先ノード２１に向けて発信する全メッセージ中のこのメッセージ１の順番を表わす。したがって、１つの宛先ノード２１によりメッセージが受信されると、この宛先ノードは、受信メッセージのエンド・ツー・エンド・シーケンス番号（ｎ１）に継起する予想されたエンド・ツー・エンド・シーケンス番号（ｎ１＋１）によってマーキングされた、起点ノード１０から来るメッセージの受信を予想する。
【００２６】
エンド・ツー・エンド・シーケンス番号ｎ１〜ｎ３は、１６ビットにわたり符号化される。有利には、エンド・ツー・エンド・シーケンス番号ｎ１〜ｎ３のサイズを１６ビットに制限することは、エンド・ツー・エンド・シーケンス番号のサイズが３２ビットである従来の方法に比べ、１メッセージにつき１６ビットの節約を意味する。
【００２７】
その上、起点ノード１０による全メッセージ１〜３の送信は、宛先ノード２１〜２３に向かって起点ノード１０により発信される順序付けされた包括的データ・ストリーム内のこのメッセージの位置を表わす包括的シーケンス番号Ｎを増分する。換言すると、メッセージ２の包括的シーケンス番号は、宛先ノード群２１〜２３に宛てて起点ノード１０が発信するメッセージ１〜３全体の上のその順番である。
【００２８】
一実施形態において、包括的シーケンス番号Ｎは、エンド・ツー・エンド・シーケンス番号ｎ１〜ｎ３と同じサイズであって、１６ビットにわたり符号化される。この場合、包括的シーケンス番号Ｎは、２の１６乗マイナス１（２１６−１）より大きい値を取り得ない。包括的シーケンス番号は、周期的に増分され、すなわち、この可能最大値Ｎｍａｘに達する毎に初期化される（換言すると、巡回包括的シーケンス番号、さらにはＮｍａｘモジューロ包括的シーケンス番号）。
【００２９】
包括的シーケンス番号Ｎは、ネットワーク３０上でメッセージ１〜３と共に伝送されず、起点ノード１０に結びつけられた再伝送メモリ１１内に保存される。
【００３０】
ここで、２つ以上の宛先ノード群２１〜２３が企図されてよく、その場合、各々の宛先ノード群について１つの包括的シーケンス番号Ｎが定義されるという点に留意すべきである。
【００３１】
ここで図２を参照すると（以上で説明したものと類似の要素には同じ参照番号が付いている）、予め定義されたサイズのハッシング・テーブル（この場合３２）により、メッセージ１〜３のエンド・ツー・エンド・シーケンス番号ｎ１〜ｎ３を得ることが可能である。宛先ノード２１はここでは、メッセージ１に割振るべきエンド・ツー・エンド・シーケンス番号ｎ１を含む起点ノード１０のレベルの記憶空間にアクセスするためのハッシング関数用のキーとして使用されている。こうして、起点ノード１０のレベルで、各宛先ノード２１〜２３のエンド・ツー・エンド・シーケンス番号ｎ１〜ｎ３のシーケンス番号を記憶するために、１つの記憶空間が使用される（１宛先について１つの入力）。宛先ノード２１〜２３に向かってメッセージ１〜３を送る必要がある度に、宛先ノード２１〜２３に対応する記憶空間内に記憶されたエンド・ツー・エンド・シーケンス番号を読取ることによって、エンド・ツー・エンド・シーケンス番号ｎ１〜ｎ３が得られる。１つのエンド・ツー・エンド・シーケンス番号ｎ１〜ｎ３を毎回読取った後、読取られたエンド・ツー・エンド・シーケンス番号の増分が実施される。すなわち、宛先ノード２１〜２３に対しメッセージ１〜３を伝送するために、読取られたばかりのエンド・ツー・エンド・シーケンス番号は、１つだけ増分される。こうして、この同じ宛先ノードに向かって伝送すべき次のメッセージは、まさに、１だけ増分されたエンド・ツー・エンド・シーケンス番号を有することになる。
【００３２】
この場合、エンド・ツー・エンド・シーケンス番号のｎ１は、このエンド・ツー・エンド・シーケンス番号にアクセスするためのキーである宛先ノード２１に向けられた各々のメッセージ１について、１だけ増分される。
【００３３】
このシーケンス番号ｎ１は、宛先ノード２１に宛てて起点ノード１０が発信したメッセージの数と共に線形的に増分される。このシーケンス番号ｎ１はこうして、この宛先ノード２１に向けられたメッセージ全体の中で宛先ノード２１に向けられたメッセージ１を識別することを可能にする。
【００３４】
１つの宛先ノード群２１〜２３あたり１つのハッシング・テーブルが定義されることが好ましい。
【００３５】
それぞれエンド・ツー・エンド・シーケンス番号ｎ１〜ｎ３（ひいては各宛先ノード２１〜２３）に結びつけられた２重連鎖リストｃ１〜ｃ３が構成されて、そこにそれぞれメッセージ１〜３が記憶される。２重連鎖リストは、リスト中の各メッセージについて、関係するリスト中の後続するメッセージを指し示す１つのポインタ、ならびに先行するメッセージを指し示す１つのポインタを含む。
【００３６】
それぞれにメッセージｎ１〜ｎ３を含む２重連鎖リストｃ１〜ｃ３は、再伝送メモリ１１内に記憶される。換言すると、起点ノード１０から発信されたメッセージ１〜３のコピーが、その宛先に応じて、それぞれ２重連鎖リストｃ１〜ｃ３中に挿入される。
【００３７】
有利には、結果として、２重連鎖リストｃ１〜ｃ３は、順序付けされたメッセージ１〜３上にエラーが発生した場合、再伝送メモリ１１内の全ての入力をスキャンすること、特にエラーメッセージに後続する全てのメッセージと関係する宛先ノード２１〜２３に向かって再伝送することを回避することになる。
【００３８】
その上、２重連鎖リストｃ１〜ｃ３を使用することによって、宛先ノード２１〜２３に向かう複数のメッセージの返送を必要とするエラーが検出された場合に再伝送メモリ１１のスキャン時間を短縮することが可能になり、そのために再伝送メモリの記憶空間が一貫して増大することはない。
【００３９】
宛先ノード２１〜２３に向けたメッセージ１〜３上の全てのエラーを検出できるようにするため、
−  起点ノード１０がいかなる受信確認も（肯定的なものであれ否定的なものであれ）受信しなかった、ネットワーク３０上で送信された最も古いメッセージ１〜３の包括的シーケンス番号Ｎと、
−  所与のハッシング指数について（すなわち所与の宛先ノード２１〜２３について）の、送信すべき次のメッセージの包括的シーケンス番号Ｎと、
の間の差が、予め定義された閾値に等しい場合には、ネットワーク３０上のメッセージの送信は中断される。このようにして、受信したエンド・ツー・エンド・シーケンス番号ｎ１〜ｎ３が予想されたエンド・ツー・エンド・シーケンス番号よりも小さい場合、宛先ノード２１〜２３は、それから、受信したメッセージが重複メッセージであることを演繹する。反対に、受信されたメッセージ１〜３のエンド・ツー・エンド・シーケンス番号が予想されたエンド・ツー・エンド・シーケンス番号ｎ１〜ｎ３よりも大きい場合には、宛先ノード２１〜２３はそれから、メッセージが１つ紛失したことを演繹する。
【００４０】
このようにして、宛先ノード２１〜２３は、予想されたエンド・ツー・エンド・シーケンス番号ｎ１〜ｎ３と受信されたエンド・ツー・エンド・シーケンス番号を単に比較することによって、紛失メッセージと重複メッセージとを容易に区別できる。したがって、宛先ノード２１〜２３は、エラー（メッセージの紛失または重複）を検出し、必要と判断した場合、メッセージの再伝送を求める任務を有する。
【００４１】
好ましくは、予め定義された閾値は、包括的シーケンス番号Ｎの可能最大値Ｎｍａｘの半分、またはさらに一般的に、包括的シーケンス番号Ｎの可能最大値の半分の整数値に等しい。
【００４２】
実際、エンド・ツー・エンド・ストリーム制御には、送信すべき次のメッセージの包括的シーケンス番号Ｎである上限を有する、包括的シーケンス番号Ｎ上の幅Ｎｍａｘ／２のウィンドウが使用される。
【００４３】
このウィンドウの下限が、起点ノード１０がいかなる受信確認も受信していないメッセージ１〜３に対応する場合、データ配送においてこのエラーが解決される（すなわち、紛失メッセージの再伝送を要求するかまたは受信メッセージが重複メッセージであることを考慮する）まで、ネットワーク３０上のメッセージ１〜３の送信は中断される。
【００４４】
受信確認メッセージの紛失の処理の最適化に関しては、包括的シーケンス番号Ｎの半分超が使用された（すなわち閾値は、Ｎｍａｘ／２の整数部に等しい）ものの、発信されたメッセージ１〜３がなお、受信確認４〜６を受けていない場合、最も確率の高い２つのケースは、以下の通りである：
−  全てのメッセージ１〜３およびそのそれぞれの受信確認４〜６の配送を遅延させる、ネットワーク３０の混錐状態、または
−  切離された受信確認の紛失。
【００４５】
その結果、起点ノード１０がいかなる受信確認も受信していなかった最も古いメッセージの受信確認が受信されるまで、新規メッセージの伝送は中断されることになる。
【００４６】
（タイムアウトの検出に続く関係するメッセージの再伝送の後に初めてトラヒックの再開が介入するかぎりにおいて）システムの性能に対する受信確認の実際の紛失の影響を制限するために、暗示的受信確認メカニズムがトリガーされる。このメカニズムは、関係する宛先ノードに対してハッシング・テーブルを介して結びつけられた２重連鎖リストｃ１〜ｃ３についての再伝送メモリ１１内のメッセージをスキャンすることからなる。この同じ宛先ノード２１〜２３に向かう最新の順序付けされたメッセージが受信確認４〜６を受信した場合、それは、最も古いメッセージも同様に受信確認はされているがこの受信確認が紛失したことを意味する。この場合、それを暗黙の内に受信確認することが決定され、トラヒックを再開することができる。
【００４７】
再伝送メモリ１１はさらに、メッセージの再伝送を目的としてトランスポート層を管理して所要記憶空間の増大を制限するために使用される。
【００４８】
一実施形態においては、再伝送メモリ１１の読取りおよび書込みポート数を増大させるため、このメモリは複数のメモリ・バンクに切断される。一例を挙げると、伝送メモリは、利用可能な読込みおよび書込みポート数を４倍するために４つのメモリ・バンクに切断される。異なるメモリ・バンク上のメッセージの分布は、メッセージ１〜３の宛先ノード２１〜２３に依存するハッシング関数によって決定され得る。
【００４９】
その結果、有利には、再伝送メモリ１１は、アプリケーション層（メッセージの終了事象の送信）と同時にトランスポート層（再伝送の管理）のためにも使用され得、しかも、毎秒処理できるメッセージ数に関してノードの性能に影響を及ぼすことはない。
【００５０】
一実施形態において、メッセージのスケジューリングは、４つのうち２つの仮想ネットワークについてのみ行なわれる。これにより、エンド・ツー・エンド・シーケンス番号を記憶するために必要な再伝送メモリ１１のサイズを半分にすることができる。その上、エラー補正コードの影響を制限するため、２つのシーケンス番号（仮想ネットワーク１つあたり１個）は、同じ入力の中に記憶され、唯一の同じエラー補正コードにより保護される。これにより、性能に影響を及ぼすことなく、補足的に１０パーセントのメモリの節約が可能になる（各サイクルにおいて最大で、２つの仮想ネットワークのうちの１つについて唯一のシーケンス番号しか必要でない）。
【００５１】
有利にも、上述の実施形態は、データ起点ノードと１つ以上の宛先ノードの間で、使用される受信確認を伴う伝送プロトコルのタイプの如何に関わらず、適用される。この伝送プロトコルは、ポイント・ツー・ポイント・モードでも、ポイント・ツー・マルチポイント・モードでもあり得る。非限定的な例として、この受信確認を伴う伝送プロトコルは、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌの略）、またはＳＣＴＰ（Ｓｔｒｅａｍ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）であり得る。
【００５２】
以上の説明全体を通して、「ノード」なる用語は、端末、サーバーまたはルーターなどのＩＰ通信ネットワーク内の全てのデータ起点および／または宛先要素を意味することを指摘しておくべきである。同様に、メッセージとは、ここでは、データのパケットまたはフレームを意味する。
【００５３】
有利にも、以上で説明した実施形態は、特に記憶空間に関して最小限のリソースの力を活用しながら、複数のリンク上でのデータの順序付けされた高い信頼性の（すなわち紛失のない）配送を可能にする。
【００５４】
有利にも、上述の異なる実施形態は、リソースおよび性能に関して、パケット通信ネットワークにおけるストリーム制御を最適化することができる。
【図１】
0006547973.tif 000002
【図２】
0006547973.tif 000003