(57)【要約】【課題】モジュール間のメッセージの伝送の個々の障害を検出および調整することができるメッセージング方式を改善する。【解決手段】送信モジュールから受信モジュールに送出されているメッセージの伝送を追跡する方法およびモジュールが提供される。方法は、受信モジュールにおいてメッセージを受信するステップと、受信されたメッセージが、送信モジュールによって送出されたその前のメッセージがもしあれば、それに対する適切なシーケンスで受信モジュールによって受信されたかどうかを決定するために、受信されたメッセージを評価するステップと、受信モジュールから送信モジュールへの受信確認メッセージを生成するステップとを含み、受信確認メッセージが含むインジケータの値は、受信されたメッセージの直前に送信モジュールから受信モジュールに送信されたその前のメッセージがもしあれば、それが受信モジュールによって受信されたかどうかを示す。【選択図】      図３Ａ
2004180295.tif 000002
【特許請求の範囲】
【請求項１】
通信デバイスにおいて送信モジュールから受信モジュールに送出されるメッセージの伝送を追跡する方法であって、
（ａ）前記受信モジュールにおいてメッセージを受信するステップと、
（ｂ）前記受信されたメッセージが、前記送信モジュールによって送出されたその前のメッセージがもしあれば、前記その前のメッセージに対する適切なシーケンスで前記受信モジュールによって受信されたかどうかを決定するために前記受信されたメッセージを評価するステップと、
（ｃ）前記受信モジュールから前記送信モジュールへの受信確認メッセージを生成するステップとを含み、前記受信確認メッセージはインジケータを含み、前記受信されたメッセージの直前に前記送信モジュールから前記受信モジュールに送信された前記その前のメッセージがもしあれば、前記その前のメッセージが前記受信モジュールによって受信されたかどうかを前記インジケータの値が示す、メッセージの伝送を追跡する方法。
【請求項２】
前記ステップ（ｂ）により、前記受信されたメッセージが前記適切なシーケンスで受信されなかったと決定された場合には、前記インジケータの前記値が、前記その前のメッセージが前記受信モジュールによっては受信されなかったことを示す請求項１に記載のメッセージの伝送を追跡する方法。
【請求項３】
（ｄ）前記受信確認メッセージを前記送信モジュールに伝送するステップをさらに含む請求項２に記載のメッセージの伝送を追跡する方法。
【請求項４】
前記メッセージおよび前記受信確認メッセージが、前記送信モジュールから前記受信モジュールに伝送される各バケットに関連付けられる請求項３に記載のメッセージの伝送を追跡する方法。
【請求項５】
各前記受信確認メッセージが、
前記受信されたメッセージについての受信確認応答を示す値を含む第１のフィールドと、
（ｉ）前記インジケータの前記値、および（ｉｉ）前記受信されたメッセージの直前に前記送信モジュールから前記受信モジュールに伝送された前記その前のメッセージについての受信確認応答を示す値のうちの１つを含む第２のフィールドとを含む請求項４に記載のメッセージの伝送を追跡する方法。
【請求項６】
前記その前のメッセージについての前記受信確認応答、および、前記受信されたメッセージについての前記受信確認応答が、前記その前のメッセージおよび前記受信されたメッセージが前記受信モジュールによって受諾されたかどうかをそれぞれ示す請求項５に記載のメッセージの伝送を追跡する方法。
【請求項７】
（ｅ）前記送信モジュールにおいて、前記受信モジュールによって送出された前記受信確認メッセージを受信するステップと、
（ｆ）前記受信された受信確認メッセージが、前記受信モジュールによって送出されたその前の受信確認メッセージがもしあれば、前記その前の受信確認メッセージに対する適切なシーケンスで前記送信モジュールによって受信されたかどうかを決定するステップとをさらに含む請求項６に記載のメッセージの伝送を追跡する方法。
【請求項８】
各前記受信確認メッセージがシーケンス番号をさらに含み、
前記ステップ（ｂ）により、前記受信されたメッセージが前記適切なシーケンスで受信されなかったと決定された場合には、前記ステップ（ｃ）が前記受信確認メッセージの前記シーケンス番号を、その旨を示す値に設定し、かつ、
前記受信された受信確認メッセージが、前記受信された受信確認メッセージの前記シーケンス番号の前記値に基づいてその前の受信確認メッセージに対する適切なシーケンスで前記送信モジュールによって受信されたかどうかを前記ステップ（ｆ）が決定する請求項７に記載のメッセージの伝送を追跡する方法。
【請求項９】
（ｇ）前記受信された受信確認メッセージが前記適切なシーケンスで前記送信モジュールによって受信されなかった場合には、前記受信されたメッセージの直前に前記送信モジュールから前記受信モジュールに伝送された前記その前のメッセージが前記受信モジュールによって受信されたかどうかを決定するために、前記第２のフィールドの前記値を評価するステップをさらに含む請求項８に記載のメッセージの伝送を追跡する方法。
【請求項１０】
（ｈ１）前記受信された受信確認メッセージが適切なシーケンスで前記送信モジュールによって受信されなかった場合、および、前記第２のフィールドの前記値が、前記送信モジュールから伝送された前記その前のメッセージが前記受信モジュールによって受信されなかったことを示す場合には、前記その前のメッセージの喪失を反映するために前記送信モジュールの内部状態を前記受信モジュールに対して同期させるステップをさらに含む請求項９に記載のメッセージの伝送を追跡する方法。
【請求項１１】
（ｈ２）前記受信された受信確認メッセージが適切なシーケンスで前記送信モジュールによって受信されなかった場合、および、前記第２のフィールドの前記値が、前記送信モジュールから伝送された前記その前のメッセージが前記受信モジュールによって受信されたことを示す場合には、前記第２のフィールドに含まれる前記その前のメッセージについての前記受信確認応答を処理するステップをさらに含む請求項１０に記載のメッセージの伝送を追跡する方法。
【請求項１２】
前記送信モジュールが、前記受信モジュールに伝送された前記メッセージに関連付けられたメモリを割り当て、
（ｉ）前記第１のフィールドの前記値および前記第２のフィールドの前記値に応じて前記メモリを再割り当てするステップをさらに含む請求項１１に記載のメッセージの伝送を追跡する方法。
【請求項１３】
通信デバイスにおいて受信モジュールから送信モジュールに送出されている受信確認メッセージの伝送を追跡する方法であって、前記受信確認メッセージの各々が前記送信モジュールから前記受信モジュールに送出されたメッセージに関連付けられ、
（ａ）前記受信モジュールによって送出された受信確認メッセージを前記送信モジュールにおいて受信するステップを含み、前記受信された受信確認メッセージがインジケータを含み、前記インジケータの値が、前記受信された受信確認メッセージに関連付けられたメッセージの直前に前記送信モジュールから前記受信モジュールに伝送されたその前のメッセージがもしあれば、前記その前のメッセージが前記受信モジュールによって受信されたかどうかを示し、
（ｂ）前記受信された受信確認メッセージが、前記受信モジュールによって送信されたその前の受信確認メッセージがもしあれば、前記その前の受信確認メッセージに対して適切なシーケンスで前記送信モジュールによって受信されたかどうかを決定するステップをさらに含む受信確認メッセージの伝送を追跡する方法。
【請求項１４】
（ｃ）前記受信確認メッセージが前記適切なシーケンスで前記送信モジュールによって受信されなかった場合には、前記受信された受信確認メッセージに関連する前記メッセージの直前に前記送信モジュールから前記受信モジュールに伝送された前記その前のメッセージが前記受信モジュールによって受信されたかどうかを決定するための前記インジケータの前記値を評価するステップをさらに含む請求項１３に記載の受信確認メッセージの伝送を追跡する方法。
【請求項１５】
（ｄ１）前記受信された受信確認メッセージが適切なシーケンスで前記送信モジュールによって受信されなかった場合、および、前記送信モジュールから伝送された前記その前のメッセージが前記受信モジュールによって受信されなかったことを前記インジケータが示す場合には、前記その前のメッセージの喪失を反映するために前記送信モジュールの内部状態を同期させるステップをさらに含む請求項１４に記載の受信確認メッセージの伝送を追跡する方法。
【請求項１６】
（ｄ２）前記受信された受信確認メッセージが適切なシーケンスで前記送信モジュールによって受信されなかった場合、および、前記インジケータが、前記送信モジュールから伝送された前記その前のメッセージが前記受信モジュールによって受信されたことを示す場合には、前記受信された受信確認メッセージに含まれる前記その前のメッセージについての受信確認応答を処理するステップをさらに含む請求項１５に記載の受信確認メッセージの伝送を追跡する方法。
【請求項１７】
前記受信された受信確認メッセージの各々がシーケンス番号に関連付けられ、前記ステップ（ｂ）が、
前記受信された受信確認メッセージについての予想されるシーケンス番号を、前記その前の受信確認メッセージの前記シーケンス番号に基づいて決定するステップと、
前記予想されるシーケンス番号が前記受信された受信確認メッセージについての前記シーケンス番号と合わない場合には、前記受信された受信確認メッセージが前記適切なシーケンスで前記送信モジュールによって受信されなかったことを示すステップとを含む請求項１６に記載の受信確認メッセージの伝送を追跡する方法。
【請求項１８】
前記受信確認メッセージの各々がシーケンス番号に関連付けられ、前記ステップ（ｂ）が、
前記その前の受信確認メッセージについての予想されるシーケンス番号を、前記受信された受信確認メッセージの前記シーケンス番号に基づいて決定するステップと、
前記予想されるシーケンス番号が前記送信モジュールによって受信された前記その前の受信確認メッセージについての前記シーケンス番号と合わない場合には、前記受信された受信確認メッセージが前記適切なシーケンスで前記送信モジュールによって受信されなかったことを示すステップとを含む請求項１６に記載の受信確認メッセージの伝送を追跡する方法。
【請求項１９】
前記受信確認メッセージおよび前記メッセージが、前記送信モジュールから前記受信モジュールに伝送されるパケットに関連付けられる請求項１６に記載の受信確認メッセージの伝送を追跡する方法。
【請求項２０】
各前記受信確認メッセージが、
前記受信された受信確認メッセージに関連付けられた前記メッセージについての受信確認応答を示す値を含む第１のフィールドと、
（ａ）前記インジケータの前記値、および（ｂ）前記受信された受信確認メッセージに関連付けられた前記メッセージの直前に前記送信モジュールから前記受信モジュールに伝送された前記その前のメッセージについての受信確認応答を示す値のうちの１つを含む第２のフィールドとを含む請求項１９に記載の受信確認メッセージの伝送を追跡する方法。
【請求項２１】
前記送信モジュールが、伝送の時に前記受信モジュールに伝送された前記メッセージに関連付けられたメモリを割り当て、
（ｅ）前記第１のフィールドの前記値および前記第２のフィールドの前記値に応じて前記メモリを再割り当てするステップをさらに含む請求項２０に記載の受信確認メッセージの伝送を追跡する方法。
【請求項２２】
前記その前のメッセージについての前記受信確認応答、および、前記受信された受信確認メッセージに関連付けられた前記メッセージについての前記受信確認応答が、前記その前のメッセージ、および、前記受信された受信確認メッセージに関連付けられた前記メッセージが前記受信モジュールによって受諾されたかどうかをそれぞれ示す請求項２１に記載の受信確認メッセージの伝送を追跡する方法。
【請求項２３】
通信デバイスにおいて送信モジュールから受信モジュールに送出されているメッセージの伝送を追跡するための受信モジュールであって、
メッセージを受信するように構成される第１の入力と、
前記受信されたメッセージが、前記送信モジュールによって送出されたその前のメッセージがもしあれば、前記その前のメッセージに対する適切なシーケンスで受信されたかどうかを決定するために前記受信されたメッセージを評価するように構成されたシーケンス評価ユニットと、
前記受信モジュールから前記送信モジュールへの伝送のために受信確認メッセージを生成するように構成される受信確認ユニットとを含み、前記受信確認メッセージがインジケータを含み、前記受信されたメッセージの直前に前記送信モジュールから前記受信モジュールに伝送されたその前のメッセージがもしあれば、前記その前のメッセージが前記受信モジュールによって受信されたかどうかを前記インジケータの値が示す、受信モジュール。
【請求項２４】
前記シーケンス評価ユニットが前記受信されたメッセージが前記適切なシーケンスで受信されなかったことを決定した場合には、前記その前のメッセージが前記受信モジュールによって受信されなかったことを示すように前記インジケータの前記値を前記受信確認ユニットが設定する請求項２３に記載のメッセージの伝送を追跡するための受信モジュール。
【請求項２５】
前記受信されたメッセージの各々がシーケンス番号に関連付けられ、前記シーケンス評価ユニットが、
前記受信モジュールによって受信された前記その前のメッセージの前記シーケンス番号に基づいて、前記受信されたメッセージについての予想されるシーケンス番号を決定し、かつ、
前記予想されるシーケンス番号が前記受信されたメッセージについての前記シーケンス番号と合わない場合には、前記受信されたメッセージが前記適切なシーケンスで前記受信モジュールによって受信されなかったことを示す請求項２４に記載のメッセージの伝送を追跡するための受信モジュール。
【請求項２６】
前記メッセージの各々がシーケンス番号に関連付けられ、
前記シーケンス評価ユニットが、
前記受信されたメッセージの前記シーケンス番号に基づいて、前記送信モジュールから前記受信モジュールに伝送された前記その前のメッセージについての予想されるシーケンス番号を決定し、かつ、
前記予想されるシーケンス番号が前記受信モジュールによって受信された前記その前のメッセージについての前記シーケンス番号と合わない場合には、前記受信されたメッセージが前記適切なシーケンスで前記受信モジュールによって受信されなかったことを示す請求項２４に記載のメッセージの伝送を追跡するための受信モジュール。
【請求項２７】
前記メッセージおよび前記受信確認メッセージが前記送信モジュールから前記受信モジュールに伝送されるパケットに関連付けられる請求項２４に記載のメッセージの伝送を追跡するための受信モジュール。
【請求項２８】
各前記受信確認メッセージが、
前記受信されたメッセージについての受信確認応答を示す値を含む第１のフィールドと、
（ｉ）前記インジケータの前記値と、（ｉｉ）前記受信されたメッセージの直前に前記送信モジュールから前記受信モジュールに伝送された前記その前のメッセージについての受信確認応答を示す値とのうちの１つを含む第２のフィールドとを含む請求項２７に記載のメッセージの伝送を追跡するための受信モジュール。
【請求項２９】
前記その前のメッセージについての前記受信確認応答、および、前記受信されたメッセージについての前記受信確認応答が、前記その前のメッセージおよび前記受信されたメッセージが前記受信モジュールによって受諾されたかどうかをそれぞれ示す請求項２８に記載のメッセージの伝送を追跡するための受信モジュール。
【請求項３０】
通信デバイスにおいて受信モジュールから送信モジュールに送出されている受信確認メッセージの伝送を追跡するための送信モジュールであって、
前記受信モジュールによって送出された受信確認メッセージを前記送信モジュールにおいて受信するように構成される第１の入力を含み、前記受信された受信確認メッセージがインジケータを含み、前記受信された受信確認メッセージに関連付けられたメッセージの直前に前記送信モジュールから前記受信モジュールに伝送されたその前のメッセージがもしあれば、前記その前のメッセージが前記受信モジュールによって受信されたかどうかを前記インジケータの値が示し、
前記受信された受信確認メッセージが、前記受信モジュールによって送出されたその前の受信確認メッセージがもしあれば、前記その前の受信確認メッセージに対する適切なシーケンスで前記送信モジュールによって受信されたかどうかを決定するように構成されるシーケンス評価ユニットをさらに含む受信確認メッセージの伝送を追跡するための送信モジュール。
【請求項３１】
前記受信された受信確認メッセージが前記適切なシーケンスで前記送信モジュールによって受信されなかった場合には、前記受信された受信確認メッセージに関連付けられた前記メッセージの直前に前記送信モジュールから前記受信モジュールに伝送された前記その前のメッセージが前記受信モジュールによって受信されたかどうかを決定するために、前記インジケータの前記値を前記送信モジュールが評価する請求項３０に記載の受信確認メッセージの伝送を追跡するための送信モジュール。
【請求項３２】
前記受信された受信確認メッセージが適切なシーケンスで前記送信モジュールによって受信されてなかった場合、および、前記送信モジュールから伝送された前記その前のメッセージが前記受信モジュールによって受信されなかったことを前記インジケータが示す場合には、前記その前のメッセージの喪失を反映するために、前記送信モジュールが前記送信モジュールの内部状態を同期させる請求項３１に記載の受信確認メッセージの伝送を追跡するための送信モジュール。
【請求項３３】
前記シーケンス評価ユニットが、前記受信された受信確認メッセージが適切なシーケンスで前記送信モジュールによって受信されなかったことを決定した場合、および、前記インジケータが、前記送信モジュールから伝送された前記その前のメッセージが前記受信モジュールによって受信されたことを示す場合には、前記送信モジュールは前記受信された受信確認メッセージに含まれる前記その前のメッセージについての受信確認応答を処理する請求項３２に記載の受信確認メッセージの伝送を追跡するための送信モジュール。
【請求項３４】
前記受信確認メッセージおよび前記メッセージが、前記送信モジュールから前記受信モジュールに伝送されるパケットに関連付けられる請求項３３に記載の受信確認メッセージの伝送を追跡するための送信モジュール。
【請求項３５】
各前記受信確認メッセージが、
前記受信された受信確認メッセージに関連付けられた前記メッセージについての受信確認応答を示す値を含む第１のフィールドと、
（ａ）前記インジケータの前記値、および（ｂ）前記受信された受信確認メッセージに関連付けられた前記メッセージの直前に前記送信モジュールから前記受信モジュールに伝送された前記その前のメッセージについての受信確認応答を示す値のうちの１つを含む第２のフィールドとを含む請求項３４に記載の受信確認メッセージの伝送を追跡するための送信モジュール。
【請求項３６】
前記送信モジュールがメモリをさらに含み、
前記送信モジュールが、前記受信モジュールに伝送された前記メッセージに関連付けられた情報を保存するために前記メモリを割り当て、前記第１のフィールドの前記値および前記第２のフィールドの前記値に応じて前記メモリを再割り当てする請求項３５に記載の受信確認メッセージの伝送を追跡するための送信モジュール。
【請求項３７】
前記その前のメッセージについての前記受信確認応答、および、前記受信された受信確認メッセージに関連付けられた前記メッセージについての前記受信確認応答が、前記その前のメッセージおよび前記受信された受信確認メッセージに関連付けられた前記メッセージが前記受信モジュールによって受諾されたかどうかをそれぞれ示す請求項３６に記載の受信確認メッセージの伝送を追跡するための送信モジュール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信デバイスにおいて２つのモジュール間で伝送されるメッセージを追跡するためのシステムおよび方法に関する。詳細には、本発明は、送出されたメッセージが目的地モジュールによって受信されない時に検出する方法に関する。
【背景技術】
【０００２】
通信デバイスにおいて、デバイスのための機能がいくつかのモジュールの形で実施されることは一般的である。たとえば、通信用スイッチにおいて、各モジュールはラインカード、スイッチファブリック、および、制御システムを含む。各モジュールは、それ自体がいくつかのサブモジュールを含むことがある。これはサブモジュールについて同様に繰り返されることがある。集積回路上で回路密度が増大するにつれ、このような回路は一般に一連の相互接続されたモジュールとして開発されている。信号はモジュール間の接続を介してモジュール間で通信される。集積回路の増大する密度および上昇する動作周波数により、接続部上を搬送される信号はエラーを含み易くなっている。
【０００３】
通信デバイスのモジュールのためには、メッセージングシステムが一般に使用されている。このシステムにおいて、各モジュールは管理上の、および、ペイロードの情報を有するメッセージを生成することができる。管理上の情報はメッセージの意図された目的地、メッセージのサイズ、および、エラー管理情報を含むことができる。メッセージは通信リンクを介してソースモジュールから目的地モジュールに伝送される。
【０００４】
しばしば、通信デバイスによって処理されるメッセージおよびデータパケットは何らかの順序に維持されなければならない。データパケットを追跡する知られている方法は、シーケンス番号を各パケットに関連付けることである。通信デバイスがパケットを受信すると、それのモジュールはそのパケットを内部的に処理し、最終的に、デバイスはパケットを別の通信デバイスに伝送する。通信デバイスによるパケットの内部処理を促進するために、しばしば、別個のメッセージが各パケットに関連付けられる。各メッセージは、モジュールによる関連パケットの処理と連動してモジュール間を伝送される。メッセージが、それのパケットに関連する管理上の情報を含むため、メッセージを処理するモジュールは必ずしもパケットを処理するモジュールと同じモジュールでなくてもよいことが理解されよう。例として、パケットの処理において、１つのモジュールはパケットのための行動（たとえば、行列で待つ、廃棄する、変形するなど）について決定ごとに責任を負うことができ、別のモジュールはその行動を実行することができる。
【０００５】
メッセージを伝送する時に、メッセージを伝送するモジュールは伝送されたメッセージが目的地モジュールによって受信されたかどうかを知る必要がある。通信リンクの障害またはメッセージ自体におけるエラーはメッセージの喪失を引き起こす。解決策として、従来技術のメッセージングシステムは、メッセージを受信するモジュールに、受信確認（ＡＣＫ）メッセージを生成させ、送信モジュールに伝送し返させることによってメッセージを追跡する。送信モジュールは、最終的にＡＣＫメッセージを受信した時に伝送されたメッセージが受信されたことを知る。
【０００６】
伝送／ＡＣＫメッセージ方式には短所がある。たとえば、送信モジュールによって最初のメッセージを伝送する時に障害が発生した場合には、意図された受信モジュールはそのメッセージを受信せず、返答するＡＣＫメッセージを生成しない。この状況において、送信モジュールは恐らく漠然とＡＣＫメッセージを待っている。受信モジュールによってＡＣＫメッセージを伝送する時に障害が発生した場合には、発信元送信モジュールはＡＣＫメッセージを受信せず、オリジナルのメッセージが実は受信モジュールによって問題なく受信されたという知識を持たない。これらの障害は、オリジナルのメッセージを見たか否かの異なったいずれかの状況に受信モジュールがあるという点で均等ではない。メッセージの喪失がシステムの動作に対する頑固な妨害をもたらすことがある多くの状況がある。伝送／ＡＣＫメッセージ方式がこれらの障害のメカニズムを区別しないと仮定すると、唯一の取るべき是正行動はシステムをリセットすることになることがある。明らかに、これはシステムの動作を途絶させる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
モジュール間のメッセージの伝送の個々の障害を検出および調整することができる、２つのモジュール間の改善されたメッセージング方式を提供するためのシステムおよび方法が求められている。
【課題を解決するための手段】
【０００８】
第１の態様において、通信デバイスにおいて送信モジュールから受信モジュールに送出されているメッセージの伝送を追跡する方法が提供される。この方法は、（ａ）受信モジュールにおいてメッセージを受信するステップを含む。この方法は同様に、（ｂ）受信されたメッセージが、送信モジュールによって送出されたその前のメッセージがもしあれば、該その前のメッセージに対する適切なシーケンスで受信モジュールによって受信されたかどうかを決定するために受信されたメッセージを評価するステップを含む。この方法は、（ｃ）受信モジュールから送信モジュールへの受信確認メッセージを生成するステップをさらに含み、受信確認メッセージはインジケータを含み、受信されたメッセージの直前に送信モジュールから受信モジュールに送信されたその前のメッセージがもしあれば、該その前のメッセージが受信モジュールによって受信されたかどうかを、インジケータの値が示す。
【０００９】
前記ステップ（ｂ）により、受信されたメッセージが適切なシーケンスで受信されなかったと決定された場合には、インジケータの値はその前のメッセージが受信モジュールによっては受信されなかったことを示すことができる。
【００１０】
方法は、（ｄ）受信確認メッセージを送信モジュールに伝送するステップをさらに含むことができる。
【００１１】
メッセージおよび受信確認メッセージは送信モジュールから受信モジュールに伝送される各バケットに関連付けることができる。
【００１２】
各受信確認メッセージは、受信されたメッセージについての受信確認応答を示す値を含む第１のフィールドと、（ｉ）インジケータの値、および（ｉｉ）受信されたメッセージの直前に送信モジュールから受信モジュールに伝送されたその前のメッセージについての受信確認応答を示す値、のうちの１つを含む第２のフィールドとを含むことができる。
【００１３】
その前のメッセージについての受信確認応答および受信されたメッセージについての受信確認応答は、その前のメッセージおよび受信されたメッセージが受信モジュールによって受諾されたかどうかをそれぞれ示すことができる。
【００１４】
方法は、（ｅ）送信モジュールにおいて、受信モジュールによって送出された受信確認メッセージを受信するステップと、（ｆ）受信された受信確認メッセージが、受信モジュールによって送出されたその前の受信確認メッセージがもしあれば、前記その前の受信確認メッセージに対する適切なシーケンスで送信モジュールによって受信されたかどうかを決定するステップとをさらに含むことができる。
【００１５】
各受信確認メッセージはシーケンス番号をさらに含むことができる。ステップ（ｂ）により、受信されたメッセージが適切なシーケンスでは受信されなかったと決定された場合には、ステップ（ｃ）は受信確認メッセージのシーケンス番号をその旨を示す値に設定することができる。ステップ（ｆ）は、受信された受信確認メッセージが、受信された受信確認メッセージのシーケンス番号の値に基づいてその前の受信確認メッセージに対する適切なシーケンスで送信モジュールによって受信されたかどうかを決定することができる。
【００１６】
この方法は、（ｇ）受信された受信確認メッセージが適切なシーケンスで送信モジュールによって受信されなかった場合には、受信されたメッセージの直前に送信モジュールから受信モジュールに伝送されたその前のメッセージが受信モジュールによって受信されたかどうかを決定するために、第２のフィールドの値を評価するステップをさらに含むことができる。
【００１７】
この方法は、（ｈ１）受信された受信確認メッセージが適切なシーケンスで送信モジュールによって受信されなかった場合、および、第２のフィールドの値が、送信モジュールから伝送されたその前のメッセージが受信モジュールによって受信されなかったことを示す場合には、その前のメッセージの喪失を反映するために送信モジュールの内部状態を受信モジュールに対して同期させるステップをさらに含むことができる。
【００１８】
この方法は、（ｈ２）受信された受信確認メッセージが適切なシーケンスで送信モジュールによって受信されなかった場合、および、第２のフィールドの値が、送信モジュールから伝送されたその前のメッセージが受信モジュールによって受信されたことを示す場合には、第２のフィールドに含まれるその前のメッセージについての受信確認応答を処理するステップをさらに含むことができる。
【００１９】
送信モジュールは、受信モジュールに伝送されたメッセージに関連付けられたメモリを割り当てることができる。この方法は、（ｉ）第１のフィールドの値および第２のフィールドの値に応じてメモリを再割り当てするステップをさらに含むことができる。
【００２０】
第２の態様においては、通信デバイスにおいて受信モジュールから送信モジュールに送出されている受信確認メッセージの伝送を追跡する方法が提供される。受信確認メッセージの各々は送信モジュールから受信モジュールに送出されたメッセージに関連付けられている。この方法は、（ａ）受信モジュールによって送出された受信確認メッセージを送信モジュールにおいて受信するステップを含み、受信された受信確認メッセージはインジケータを含み、受信された受信確認メッセージに関連付けられたメッセージの直前に送信モジュールから受信モジュールに伝送されたその前のメッセージがもしあれば、該その前のメッセージが受信モジュールによって受信されたかどうかを、インジケータの値が示す。この方法は、（ｂ）受信された受信確認メッセージが、受信モジュールによって送出されたその前の受信確認メッセージがもしあれば、該その前の受信確認メッセージに対する適切なシーケンスで送信モジュールによって受信されたかどうかを決定するステップを同じく含む。
【００２１】
第３の態様においては、通信デバイスにおいて送信モジュールから受信モジュールに送出されているメッセージの伝送を追跡するための受信モジュールが提供される。受信モジュールは、メッセージを受信するように構成される第１の入力と、受信されたメッセージが、送信モジュールによって送出されたそれ以前のメッセージがもしあれば、該それ以前のメッセージに対する適切なシーケンスで受信されたかどうかを決定するために受信されたメッセージを評価するように構成されたシーケンス評価ユニットとを含む。受信モジュールは受信モジュールから送信モジュールへの伝送のために受信確認メッセージを生成するように構成される受信確認ユニットを同じく含み、受信確認メッセージがインジケータを含み、受信されたメッセージの直前に送信モジュールから受信モジュールに伝送されたその前のメッセージがもしあれば、該その前のメッセージが受信モジュールによって受信されたかどうかを、インジケータの値が示す。
【００２２】
第３の態様においては、通信デバイスにおいて受信モジュールから送信モジュールに送出されている受信確認メッセージの伝送を追跡するための送信モジュールが提供される。送信モジュールは、受信モジュールによって送出された受信確認メッセージを送信モジュールにおいて受信するように構成される第１の入力を含み、受信された受信確認メッセージがインジケータを含み、受信された受信確認メッセージに関連付けられたメッセージの直前に送信モジュールから受信モジュールに伝送されたその前のメッセージがもしあれば、該その前のメッセージが受信モジュールによって受信されたかどうかを、インジケータの値が示す。送信モジュールは、受信された受信確認メッセージが、受信モジュールによって送出されたその前の受信確認メッセージがもしあれば、該その前の受信確認メッセージに対する適切なシーケンスで送信モジュールによって受信されたかどうかを決定するように構成されるシーケンス評価ユニットを同じく含む。
【００２３】
他の態様においては、上記の態様の様々な組合せおよび部分集合が提供される。
【００２４】
本発明の前述および他の態様は、本発明の特定の実施形態の以下の説明、および、本発明の原理を例の方法のみによって示す添付の図面からより明らかになる。図面において、同じ要素は同じ参照番号を取る（かつ、個々の要素は一義的な英字添え字を付けられる）。
【発明を実施するための最良の形態】
【００２５】
以下の説明、および、その中で説明される実施形態は、本発明の原理の特定の実施形態の例の説明の方法によって提供される。これらの例は、それらの原理の限定および本発明の限定ではなく、説明の目的のために提供される。以下の説明において、同じ部品は、本明細書および図面の全体を通じて、同じ個々の参照番号が付けられる。
【００２６】
従来技術のメッセージング方式
実施形態の特徴を説明するために、先ず、従来技術のメッセージング方式の特徴および問題を述べる。
【００２７】
図１Ａを参照すると、通信スイッチ内の従来技術の通信デバイス１００が示される。通信スイッチ、および、したがって、通信デバイス１００はデータトラフィックの伝送を処理する。知られているように、データトラフィックを処理する際に、スイッチはデータトラフィックを一連の部分、またはパケットに区分することができる。スイッチに対して上流側のデバイスも既に区分化を実行していることが可能である。各パケットはデータトラフィックの他のパケットを基準として順序づけられた要素である。パケットは各々独立に処理され、通信デバイスによって伝送される。パケットの処理および伝送の追跡の支援とするために、通信デバイスは各パケットを追跡するための一連の離散型メッセージを使用する。デバイス１００は、パケットの処理の間にパケットおよびそれらのメッセージを追跡するためのモジュール１０２およびモジュール１０４を有する。モジュール１０２および１０４は、パケットおよびメッセージに関連する情報を保存するための内部メモリ１０８および１１０をそれぞれ有する。モジュール１０２および１０４は、通信リンク１０６を介してそれらのメッセージを互いに伝送し合う。
【００２８】
パケット１２０がモジュール１０２に到着すると、モジュール１０２は、パケット１２０を保存するために内部メモリ１０８からメモリ１２２を割り当てる。パケット１２０の伝送を処理する際に、モジュール１０２および１０４によってメッセージ１３０が生成され、通信リンク１０６を介して互いに対して伝送される。パケット１２０に関連する情報を処理するために、矢印１３２で示すように、モジュール１０２はメッセージ１３０を通信リンク１０６を介してモジュール１０４に伝送する。モジュール１０４は、メッセージ１３０を受信すると、矢印１３６で示すように、通信リンク１０６を介してモジュール１０２にＡＣＫ１３４を伝送することによって応答する。
【００２９】
図１Ｂを参照すると、１つの従来技術の実施において、メッセージ１３０は４バイトを含み、メッセージ識別子１６２を含むメッセージ識別子フィールド１６２’（４ビット）、シーケンス番号１６４を含むシーケンス番号フィールド１６４’（８ビット）、メッセージペイロード１６６を含むメッセージペイロード１６６’（２０ビット）を含む一連のフィールドに区分されている。図１Ｃを参照すると、１つの従来技術の実施において、ＡＣＫ１３４は２バイトを含み、メッセージ識別子１７２を含むメッセージ識別子フィールド１７２’（４ビット）、シーケンス番号１７４を含むシーケンス番号フィールド１７４’（８ビット）、返答１７６を含む返答フィールド１７６’（１ビット）、および、パディングフィールド１７８’（３ビット）を含む一連のフィールドに同じく区分されている。この例において、返答フィールド１７６’は、これに対応するパケット１２０が受諾されるか廃棄されるかを示す対応メッセージ１３０に対する応答を含む。フィールド１６４および１７４に置かれたシーケンス番号はメッセージがシーケンスされることを可能にする。
【００３０】
図２を参照すると、通信リンク１０６を介したモジュール１０２と１０４との間のメッセージ１３０およびＡＣＫ１３４の交換の３つのシナリオが示されている。時間軸２００はモジュール１０２と１０４との間の伝送メッセージ１３０およびＡＣＫ１３４の時間を区切っている。
【００３１】
第１のシナリオにおいて、一連のメッセージ１３０およびＡＣＫ１３４はモジュール１０２と１０４との間で問題なく交換されている。このシナリオにおいて、時刻２０２に、パケット１２０（１）はモジュール１０２に到着し、これはモジュール１０２がメッセージ１３０（１）を生成し、モジュール１０４に伝送するためのきっかけとなる。矢印２３２（１）で示すように、モジュール１０２は、通信リンク１０６を介してモジュール１０４にメッセージ１３０（１）を伝送する。時刻２０８に、モジュール１０４はメッセージ１３０（１）を受信し、メッセージ１３０（１）を受信したことに応じて、ＡＣＫ１３４（１）を生成する。したがって、矢印２３６（１）で示すように、モジュール１０４はモジュール１０２にＡＣＫ１３４（１）を伝送し、これはモジュール１０２に時刻２１４に到着する。ＡＣＫ１３４（１）を受信することによって、モジュール１０２はメッセージ１３０（１）がモジュール１０４によって受信されたことを決定することができる。
【００３２】
第２のシナリオにおいて、メッセージ１３０およびＡＣＫ１３４の交換に障害点が導入される。このシナリオにおいて、時刻２０６に、パケット１２０（２）はモジュール１０２に到着し、矢印２３２（２）で示すように、メッセージ１３０（２）の生成および通信リンク１０６を介したモジュール１０４への伝送のきっかけとなる。時刻２１２に、モジュール１０４はメッセージ１３０（２）を受信し、ＡＣＫ１３４（２）を生成し、矢印２３６（２）で示すように、これがモジュール１０２に伝送される。しかし、通信リンク１０６の障害２４０はＡＣＫ１３４（２）がモジュール１０２において受信されることを妨害する。したがって、一連のメッセージ１３０と対応する一連の処理されたパケット１２０との間の同期の切断が起こる。
【００３３】
第３のシナリオにおいて、障害点はモジュール１０２からモジュール１０４へのメッセージング処理に導入されている。時刻２１０に、パケット１２０（３）はモジュール１０２に到着し、矢印２３２（３）で示すように、メッセージ１３０（３）の生成およびモジュール１０４への伝送のきっかけとなる。しかし、障害２４２はメッセージ１３０（３）がモジュール１０４に到着することを妨害する。したがって、モジュール１０４は、メッセージ１３０（３）についてＡＣＫ１３４を生成せず、伝送もしない。
【００３４】
第２および第３のシナリオにおいて、メモリを再獲得し、モジュール１０２および１０４に含まれる情報を再同期するために、デバイス１００は障害状態に対して応答しなければならない。これが行われなければ、モジュールの調整は妨害されるか、または、完全に喪失する可能性が高く、使用されていたメモリは再割り当て可能とはならないことがある。同じ障害状態が再び発生すると、追加のメモリは使用不可能になることがあり、最終的に、通信デバイスを動作不能にする。
【００３５】
ＡＣＫメッセージを含めた従来技術のシステムのメッセージおよび実施形態は、パリティ、ＣＲＣ、および、他の知られている符号化方式を含む様々なエラー検出方式（または、エラー検出および訂正方式）を使用することができる。エラーの検出および訂正を提供する符号化方式は帯域幅上は効率的でない傾向にある。エラー検出方式は、誤った情報の通過を妨害することに非常に有効とすることができるが、応答は、一般的にエラーのあるメッセージを廃棄することに限定される。
【００３６】
実施形態の基本的な特徴
簡単に言えば、実施形態の通信デバイスは、第１と第２のモジュールとの間で通信リンクを介して通信する第１のモジュールおよび第２のモジュールを有する。典型的なメッセージングシステムにおいて、第１のモジュールは第２のモジュールにメッセージを伝送する。第２のモジュールは受信確認メッセージ（「ＡＣＫメッセージ」または単に「ＡＣＫ」）でメッセージに返答する。ＡＣＫは第２のモジュールが現在のメッセージを受信したことを示す。しかし、ＡＣＫは、第２のモジュールがその前のメッセージ、特に、現在のメッセージの前に送出された最後のメッセージを受信したかどうかの指示も含む。メッセージは自身を互いから区別するため、および、互いに対する自身の順序を識別するためにシーケンス番号を有する。第２のモジュールは受信されたメッセージのシーケンス番号の追跡も行い、その前のメッセージが受信されたかどうかを決定することができる。実施形態のメッセージング方式は、以前に受信されたメッセージおよび予想されるメッセージに対する現在のメッセージの追跡を可能にする。
【００３７】
実施形態のメッセージング方式および通信デバイス
図３Ａを参照すると、実施形態の通信デバイス３００は、これが、通信リンク３０６によって接続された第１のモジュール３０２および第２のモジュール３０４を有する点でデバイス１００と同じである。本発明に関連する差は、モジュール間で送出される通信のために使用されるメッセージング方式において提供される。特に、モジュール３０２は内部メモリ３０８を有し、モジュール３０４は内部メモリ３１０を有する。デバイス３００のモジュール３０２および３０４は、デバイス３００に到着する（図示しない）パケットを処理するために互いにメッセージ３３０を伝送する。モジュール３０４がメッセージ３３０を受信すると、これはモジュール３０２にＡＣＫ３３４を伝送する。モジュール３０２および３０４は、本明細書に説明されるメッセージ処理を実施するための適切な制御論理を有する通信用スイッチによって伝送されているパケットの態様を処理するＡＳＩＣであってもよい。代わりに、メッセージ処理は、モジュール上で動作する適切なソフトウェア／ファームウェアで実施することができる。実施形態において、通信リンク３０６は好ましくは光信号発生リンクである。メッセージ３３０およびＡＣＫ３３４の内容は、通信リンク３０６の伝送プロトコルに従った伝送のために変換されなければならないことがある。異なった実施形態において、モジュール３０２および３０４は同じ機能的要素、たとえば、同じラインカード上にあってもよく、または、それらは異なった機能的要素上にあってもよく、たとえば、モジュール３０２がラインカード上にあってよく、モジュール３０４は制御システム内にあってもよい。特定の実施において、ユニットとして考えられるシステムはラインカードの一部であり、２つのモジュールはそのラインカード上に位置するＡＳＩＣである。
【００３８】
デバイス３００において、各メッセージ３３０は、履歴的識別子として機能し、順番になったパケットの対応する集合について生成されたメッセージ３３０の集合におけるそれの順序を示す位置を示すシーケンス番号に関連付けられる。シーケンス番号を追跡することによって、モジュールがメッセージ３３０を受信すると、モジュールは含まれるシーケンス番号を抽出することができ、ちょうど受信したばかりのメッセージがそれの直前に受信されたメッセージ３３０とシーケンスになっているかどうかを決定することができる。同様に、モジュールは、それの直後にどのようなメッセージ３３０が受信されると予想されるかを決定することができる。シーケンス番号の生成は、シーケンス番号が（メッセージ／ＡＣＫ信号シーケンスの伝送および受信のための伝送時間に匹敵する）ある時間の長さ内で繰り返さず、かつ、同じ値を使用して２つの位置で独立に生成できるいかなる方法でも実行することができる。（最大値におけるラップアラウンドを備えた）カウンタがこれらの要件を満たす単純な例であり、これは、与えられたいかなる値からも先行するまたは後続する値を決定することが簡単であるという長所をさらに有する。このようにして、モジュール３０４が、これが受信した最後のメッセージ３３０のシーケンス番号を保存している場合には、これは、これが受信する次のメッセージ３３０がシーケンスになっているか否かを決定することができる。そして、否であれば、これは、どのメッセージ３３０が受信されなかったかを決定することができる。同様に、モジュール３０２が、これが受信した最後のＡＣＫ３３４のシーケンス番号を保存している場合には、これは、これが受信する次のＡＣＫ３３４がシーケンスになっているか否かを決定することができる。そして、否であれば、これはどのＡＣＫ３３４が受信されなかったかを決定することができる。
【００３９】
図３Ｂを参照すると、（モジュール３０２によって生成された）メッセージ３３０は少なくとも以下のフィールド、メッセージ識別子３６２を含むメッセージ識別子フィールド３６２’（４ビット）、シーケンス番号３６４を含むシーケンス番号フィールド３６４’（８ビット）、および、ペイロード３６６を含むメッセージペイロードフィールド３６６’（２０ビット）を含む。受信されたメッセージ３３０について、モジュール３０４は、ちょうど受信されたメッセージ３３０の後にどのようなメッセージ３３０が受信されるべきであるかを決定するためにシーケンス番号３６４を使用することができ、ちょうど前に受信されたメッセージ３３０とちょうど受信されたメッセージ３３０との間にメッセージのギャップ、すなわち、行方不明になったメッセージ３３０があるかどうかを決定することができる。シーケンスのギャップはシーケンス評価ユニット３４４によってモジュール３０２において評価される。
【００４０】
図３Ｃを参照すると、ＡＣＫ３３４はモジュール３０２への伝送のためにモジュール３０４において受信確認ユニット３４８によって生成され、受信されたメッセージ３３０に応じる。ＡＣＫ３３４は少なくとも以下のフィールド、メッセージ識別子３７２を含むメッセージ識別子フィールド３７２’（４ビット）、シーケンス番号３７４を含むシーケンス番号フィールド３７４’（８ビット）、これの対応するメッセージについての受信確認応答（受諾または廃棄）である第１の返答３７６を含む第１の返答フィールド３７６’（１ビット）、第２の返答３７８を含む第２の返答フィールド３７８’（２ビット）、および、パディングフィールド３８０’（１ビット）を含む。実施においては、ＡＣＫ３３４がＡＣＫ１３４（図１Ｃ）と同じサイズであることが理解されよう。したがって、実施形態の信号発生方式のためには低い帯域幅のオーバーヘッドがある。さらに、多くの場合、信号発生帯域幅の要件に増加はない可能性がある。
【００４１】
第２の返答３７８は、ＡＣＫ３３４の直前に送出された第１の返答３７６の受信確認応答の指示を提供する。したがって、メッセージのギャップが発生しなければ、モジュール３０４は、次のＡＣＫ３３４の第２の返答３７８を格納するために直前のＡＣＫ３３４の第１の返答３７６を保存する。モジュール３０２も以前に受信されたＡＣＫ３３４のシーケンス番号３７４を保存し、受信されたＡＣＫ３３４のシーケンスのギャップがいつ発生したかを認識する。シーケンスのギャップはシーケンス評価ユニット３４４によってモジュール３０２において評価される。シーケンスのギャップは、モジュール３０２が第２の返答３７８から情報を読むことを促す。含まれる情報から、モジュール３０２は喪失されたＡＣＫ３３４からの情報を受け取る。
【００４２】
図３Ａはモジュール３０２と３０４との間のメッセージ３３０およびＡＣＫ３３４の交換の２つのシナリオを示す。時間軸３１２はモジュール３０２と３０４との間のメッセージ３３０およびＡＣＫ３３４の伝送の時間を区切っている。
【００４３】
第１のシナリオにおいて、通常の問題のない一連のメッセージ３３０およびＡＣＫ３３４はモジュール３０２と３０４との間で交換される。時刻３１４に、矢印３３２（１）で示すように、モジュール３０２はメッセージ３３０（１）を生成し、通信リンク３０６を介してモジュール３０４に伝送する。メッセージ３３０（１）にはシーケンス番号３６４（１）、および、モジュール３０４に対する処理指示を含むメッセージペイロード３６６（１）が格納される。その後、メッセージ３３０（１）はモジュール３０４に到着する。その後、時刻３１８に、モジュール３０４の受信確認ユニット３４８はＡＣＫ３３４（１）を生成し、それにシーケンス番号３７４（１）、第１の返答３７６（１）、および、第２の返答３７８（１）を格納する。シーケンス番号３７４（１）は、メッセージ３３０（１）のシーケンス番号３６４（１）に関連付けられた、番号としての符号を含む。実施形態において、ＡＣＫ３３４についてのシーケンス番号３７４はそれのメッセージ３３０についてのシーケンス番号３６４に設定される。第１の返答３７６（１）は（「Ａ１」で示す）メッセージ３３０（１）に対する受信確認応答を含む一方、第２の返答３７８（１）は（「Ａ０」で示す）（図示しない）以前のメッセージであるメッセージ３３０（０）についての受信確認応答を含む。モジュール３０４は、さらなる使用のためにシーケンス番号３６４（１）および第１の返答３７６（１）を保存する。矢印３３６（１）で示すように、モジュール３０４はＡＣＫ３３４（１）をモジュール３０２に伝送し、これは時刻３２２に到着する。シーケンスに沿って伝送されたパケットを使用してシーケンス番号３７４を追跡することによって、モジュール３０２がＡＣＫ３３４（１）を受信すると、シーケンス評価ユニット３４４はそれからシーケンス番号３７４（１）を抽出することができ、それを、以前に受信されたシーケンス番号３７４と比較する。それは、この処理を、保存されているシーケンス番号３７４と受信されたシーケンス番号３７４（１）とを比較することによって行う。シーケンス評価ユニット３４４は、メッセージのギャップがあるかどうかを決定するために、保存されているシーケンス番号３７４から数え上げるか、次に受信されたシーケンス番号３７４から数え戻るかのいずれかができる。シーケンスのギャップは、ＡＣＫ３３４が最後の２つのシーケンス番号３７４、すなわち、最後の２つの受信されたＡＣＫ３３４の間で受信されなかったことを示唆する。シーケンス評価ユニット３４４はメッセージのギャップがないことを決定する。
【００４４】
第２のシナリオにおいて、時刻３２２の間もなく後に通信リンク３０６に障害３４０が存在するために、ＡＣＫ３３４はモジュール３０２への途中で喪失される。このシナリオにおいて、時刻３１６に、矢印３３２（２）で示すように、モジュール３０２は通信リンク３０６を介してモジュール３０４にメッセージ３３０（２）を伝送する。続いて、メッセージ３３０（２）はモジュール３０４に到着する。時刻３２０に、受信確認ユニット３４８は、シーケンス番号３７４（２）、第１の返答３７６（２）、および、第２の返答３７８（２）を含むＡＣＫ３３４（２）を生成する。矢印３３４で示すように、モジュール３０４は通信リンク３０６を介してＡＣＫ３３４（２）を伝送するが、これは障害３４０のためにモジュール３０２に到着しない。その後、時刻３２０に、矢印３３２（３）で示すように、モジュール３０２は通信リンク３０６を介してモジュール３０４にメッセージ３３０（３）を伝送する。続いて、メッセージ３３０（３）はモジュール３０４に到着する。時刻３２４に、受信確認ユニット３４８はＡＣＫ３３４（３）を生成し、それにシーケンス番号３７４（３）、第１の返答３７６（３）、および、第２の返答３７８（３）を格納する。第２の返答３７８（３）は、モジュール３０２に到着しなかったメッセージ３３０（２）に提供される受信確認応答を含む。矢印３３６（３）で示すように、モジュール３０４はモジュール３０２にＡＣＫ３３４（３）を伝送する。ＡＣＫ３３４（３）は時刻３２８にモジュール３０２に到着する。シーケンス評価ユニット３４４は受信されたシーケンス番号３７４（３）を保存されているシーケンス番号３７４（１）と再び比較する。シーケンス評価ユニット３４４は、保存されているシーケンス番号３７４（１）から数え上げるか、受信されたシーケンス番号３７４（３）から数え戻るかのいずれかによってこれを行う。図示するように、現在の応答についてのシーケンス番号３７４（３）が「３」であるために、シーケンス評価ユニット３４４はシーケンス番号が受信されたＡＣＫ３３４についての予想される次の値を有するかどうかを決定する。「３」のキーについて「２」が予想され、それが提供されなかったために、シーケンス評価ユニット３４４は不一致を認識し、エラーが発生したことに気付く。シーケンス評価ユニット３４４はこのエラーをモジュール３０２に示し、続いて、モジュール３０２は第２の返答３７８（３）から喪失された情報を読み取る。この時、モジュール３０２には、メッセージ３３０（２）に対する以前に喪失された受信確認応答が提供される。
【００４５】
次に、図４を参照すると、モジュール３０４は、以前に伝送されたメッセージ３３０が受信されたかどうかを決定するためにシーケンス番号３６４を追跡する。モジュール３０４は、以前のメッセージ３３０からシーケンス番号３６４を保存することによって、メッセージのギャップがあるかどうかを決定する。シーケンス番号３６４を持つメッセージ３３０を受信した後、モジュール３０４は、シーケンス番号３６４を保存されているシーケンス番号３６４と比較する。モジュール３０４は、受信されたシーケンス番号３６４が予想された値を有するかどうかを決定するために、保存されているシーケンス番号３６４から数え上げるか、受信されたシーケンス番号３６４から数え戻るかのいずれかができる。シーケンスのギャップはシーケンス評価ユニット３４６によってモジュール３０４において評価される。モジュール３０４が、これが以前に伝送されたメッセージ３３０を受信しなかったことを決定した場合には、現在のＡＣＫ３３４における第２の応答３７８は、モジュール３０４によって、この状態を示すためのフラッグ値に設定される。ＡＣＫ３３４は受信確認ユニット３４８によってモジュール３０４において生成される。モジュール３０４は、ＡＣＫ３３４のシーケンスにおけるギャップを示すシーケンス番号３７４のための値を生成する。ＡＣＫ３３４はシーケンス番号３７４を備えてモジュール３０２に伝送される。モジュール３０２は受信されたシーケンス番号３７４におけるギャップについてチェックを行う。シーケンスにおけるギャップはシーケンス評価ユニット３４４によってモジュール３０２において評価される。シーケンスにおけるギャップは、以前に伝送されたメッセージ３３０がモジュール３０４によって受信されなかったことをモジュール３０２に示すためのインジケータとしてフラグ値が機能する第２の返答３７８から情報をモジュール３０２が読むことを促す。続いて、モジュール３０２は、メッセージ３３０の喪失を反映するために、自身の内部状態を更新することによってモジュール３０４に自身を再同期することができる。同期は、喪失されたメッセージ３３０に関する情報を廃棄すること、または、喪失されたメッセージ３３０を再伝送することなどの手段によって達成することができる。したがって、メッセージのギャップが発生した場合、メッセージ３３０が再伝送される場合には、モジュール３０２は伝送されるメッセージ３３０を保存することができる。
【００４６】
図４において、デバイス３００のモジュール３０４への途中で喪失されたメッセージ３３０の例を示す。時間軸４００はモジュール３０２と３０４との間のメッセージおよびＡＣＫの伝送の時間を区切っている。時刻４０２において、矢印４３２（１１）で示すように、モジュール３０２は通信リンク３０６を介したモジュール３０４への伝送のためにメッセージ３３０（１１）を生成する。メッセージ３３０（１１）には、シーケンス番号３６４（１１）、および、モジュール３０４のための処理パラメータを含むメッセージペイロード３６６（１１）が格納される。続いて、メッセージ３３０（１１）はモジュール３０４に到着する。
【００４７】
モジュール３０４のシーケンス評価ユニット３４６はシーケンス番号３６４（１１）を以前に保存したシーケンス番号３６４と比較する。シーケンス評価ユニット３４６はメッセージのギャップが発生していないことを決定する。
【００４８】
時刻４０６に、受信確認ユニット３４８はＡＣＫ３３４（１１）を生成し、それに、シーケンス番号３７４（１１）、第１の返答３７６（１１）、および、第２の返答３７８（１１）を格納する。第１の返答３７６（１１）は（「Ａ１１」で示す）メッセージ３３０（１１）についての受信確認応答を含む一方、第２の返答３７８（１１）は以前のメッセージである（図示しない）（「Ａ１０」で示す）メッセージ３３０（１０）についての受信確認応答を含む。モジュール３０４は、今後の使用のために、シーケンス番号３６４（１１）および第１の返答３７６（１１）を保存する。矢印４３６（１１）で示すように、モジュール３０４はモジュール３０２にＡＣＫ３３４（１１）を伝送し、これは時刻４１０に到着する。モジュール３０２におけるシーケンス評価ユニット３４４は、同様に、シーケンス番号３７４（１１）を以前に保存したシーケンス番号３７４と比較し、シーケンスのギャップが発生しなかったことを決定する。
【００４９】
時刻４０４に、矢印４３２（１２）で示すように、モジュール３０２はメッセージ３３０（１２）を生成し、通信リンク３０６を介してモジュール３０４に伝送する。しかし、障害４４２のために、メッセージ３３０（１２）はモジュール３０４に到着しない。したがって、受信確認ユニット３４８はＡＣＫ３３４を生成するためのきっかけを持っていない。
【００５０】
時刻４０６に、矢印４３２（１３）に示すように、モジュール３０２は通信リンク３０６を介してモジュール３０４にメッセージ３３０（１３）を伝送する。続いて、メッセージ３３０（１３）はモジュール３０４に到着する。シーケンス評価ユニット３４６はメッセージ３３０（１３）からシーケンス番号３６４（１３）を抽出し、それを保存されているシーケンス番号３６４（１１）と比較する。シーケンス評価ユニット３４６は、保存されているシーケンス番号３６４（１１）から数え上げるか、受信されたシーケンス番号３６４（１３）から数え戻るかのいずれかによってこれを行う。現在のメッセージについてのシーケンス番号３６４（１３）が「１３」であるために、図示するように、シーケンス評価ユニット３４６は、シーケンス番号が最後に受信されたメッセージ３３０について予想される次の値を有するかどうかを決定する。「１３」のキーについて「１２」が予想され、それが提供されなかったために、エラーが発生した。したがって、受信確認ユニット３４８は第２の返答３７８（１３）に、（「ｉｎｖ」で示す）以前のメッセージ３３０が受信されなかったことを示す「無効」フラッグを格納する。
【００５１】
時刻４１０に、受信確認ユニット３４８はＡＣＫ３３４（１３）を生成し、それに、シーケンス番号３７４（１３）、第１の返答３７６（１３）、および、第２の返答３７８（１３）を格納する。モジュール３０４は、ＡＣＫ３３４のシーケンスにおけるギャップを示すシーケンス番号３７４（１３）のための値を生成する。これは、メッセージ３３０（１３）から、シーケンス番号３６４（１３）のための値をコピーすることによって最も容易に達成される。第１の返答３７６（１３）は（「Ａ１３」で示す）メッセージ３３０（１３）についての受信確認応答を含む一方、第２の返答３７８（１３）は「無効」フラッグを含む。
【００５２】
矢印４３６（１３）で示すように、モジュール３０４はＡＣＫ３３４（１３）をモジュール３０２に伝送し、これは時刻４１４に到着する。シーケンス評価ユニット３４４は、受信されたシーケンス番号３７４におけるギャップについて再びチェックを行う。シーケンス評価ユニット３４４は、モジュール３０２が第２の返答３７８（１３）から情報を読むことを促すシーケンスのギャップを検出する。第２の返答３７８（１３）における「無効」フラッグは、以前のメッセージ３３０（１２）がモジュール３０４に到着しなかったことをモジュール３０２に対して示す。続いて、モジュール３０２は自身をモジュール３０４に再同期させる。この例においては、矢印４３２（１４）で示すように、モジュール３０２が、メッセージ３３０（１４）を、障害４４２のために喪失された処理パラメータとともにモジュール３０４に伝送する。これは、メッセージ３３０（１２）において本来は伝送された、メッセージ３３０（１４）におけるメッセージペイロード３６４（１４）における値「Ｍ１２」によって示される。モジュール３０２は、メッセージペイロード３６４（１２）に関連する情報を廃棄することを含む他の手段によっても自身をモジュール３０４に再同期させることができることが理解されよう。
【００５３】
したがって、説明される実施形態の基本アルゴリズムおよび方式は、メッセージ３３０の集合に対する最後のＡＣＫ３３４の喪失を遠くまでは追跡しない。デバイス３００は図５に示す以下の方法でこの状況に対処する。この方法において、時間軸５００はモジュール３０２と３０４との間のメッセージ３３０およびＡＣＫ３３４の伝送の時間を区切っている。障害５４０で終結する矢印５３６（２１）（ｉ）で示すように、メッセージ３３０（２１）に対する最後のＡＣＫ３３４（１）がモジュール３０４への途中で喪失されるシナリオを示す。モジュール３０４は過剰な帯域幅について通信リンク３０６をモニタする。通信リンク３０６上に利用可能な帯域幅があれば、矢印５３６（２１）（ｉｉ）で示すように、モジュール３０４はＡＣＫ３３４（１）をモジュール３０２に再伝送する。シーケンスのギャップについてチェックを行っているシーケンス評価ユニット３４４は、ＡＣＫ３３４（２１）（ｉｉ）が次の予想されるＡＣＫ３３４であることを決定し、それに従って処理を行う。
【００５４】
モジュール３０２からモジュール３０４への最後のメッセージ３３０が喪失された場合には、通信リンク３０６上で利用可能となっている帯域幅上で、モジュール３０４は以前のＡＣＫ３３４を伝送する。次のＡＣＫ３３４はモジュール３０２によって受信された以前のＡＣＫ３３４と同じ情報を含む。シーケンスのギャップについてチェックを行っている、モジュール３０４におけるシーケンス評価ユニット３４４は、受信されたシーケンス番号３７４が最後のシーケンス番号３７４と合うかどうかを決定する。これによって、モジュール３０２は、最後のメッセージ３３０が喪失されたことを認識し、最後のメッセージ３３０を再伝送する。
【００５５】
モジュール３０２からモジュール３０４にメッセージが伝送されていない遊びの状態のもとでは、モジュール３０４は、帯域幅が利用可能であるために自身が以前に送出した最後の有効なＡＣＫ３３４を伝送する。帯域幅の使用を留保するためには、ＡＣＫ３３４のために全ての遊んでいる帯域幅を使用することより、むしろ、ＡＣＫ３３４が送出されるレートを制限することの方が望ましいことがある。受信されたメッセージ３３０がない初期化の場合では、受信された有効なメッセージ３３０がないことを示すＡＣＫ３３４が生成される。これを示すためには、多くの方法を使用することができる。第１の返答３７６は、これに追加されて「有効／無効」ビットを有することができるか、シーケンス番号３７４は無効な値を与えられることができるか、または、シーケンス番号３７４は、シーケンス番号３７４の初期値に先行する値に初期化することができる。たとえば、シーケンス番号３７４が８ビットの長さであり、モジュール３０２がそれを「０」を表す２進法の数に初期化すれば、この状態で、モジュール３０４は、ＡＣＫ３３４メッセージを、「２５５」を表す２進法の数を有するシーケンス番号３７４とともに送出する。
【００５６】
さらに、モジュール３０２は、ＡＣＫ３３４がある定められた時間の長さ以内にメッセージ３３０に対応して受信されない場合には、モジュール３０２がメッセージ３３０は喪失されたと考え、それに従って反応する「タイムアウト」機能を提供することができる。
【００５７】
実施形態のデバイスでは、モジュール３０２と３０４との間のメッセージングが典型的に非常に信頼できる、すなわち、伝送されるメッセージ３３０およびＡＣＫ３３４の数に比較して、比較的少ないメッセージ３３０およびＡＣＫ３３４が喪失される。しかし、デバイス３００において伝送される大量のメッセージ３３０およびＡＣＫ３３４について、これは、モジュール３０２および３０４に、それぞれそれらの内部メモリ３０８および３１０のかなり大きな部分の軌跡を未だに喪失させる。実施形態のメッセージ３３０およびＡＣＫ３４を伝送する方法は良好に機能する。なぜなら、デバイス３００の通常の動作では、連続するメッセージ３３０およびＡＣＫ３３４の喪失の発生レートが低いからである。伝送においてメッセージ３３０およびＡＣＫ３３４が喪失されるレートが、モジュール間で問題なく伝送されるメッセージを生成するためのシステムの能力を超えたために実施形態が上記に詳述した訂正を行うことができなければ、重大な、修復不可能な障害が発生し、システムのリセットを必要とすることを想定することができる。
【００５８】
モジュール３０２において受信されたシーケンス番号３７４が２つ以上のシーケンス番号３７４のギャップを示すように、上述のシステムがメッセージ３３０を喪失した場合には、述べたような特定の実施形態はそのギャップを訂正することを可能とすることができず、単一のメッセージ３３０またはＡＣＫ３３４の喪失がある時に可能であるシステムの正確さのレベルを保証することを可能とすることができない。この場合、モジュール３０２は、ＡＣＫ３３４が受信されていないメッセージ３３０が喪失されたことを想定することができ、これは、タイムアウト期限を超えているために、モジュール３０２が既に行っていることがある。喪失されたものが、いくつかのＡＣＫ３３４メッセージであった可能性があるため、正確な挙動は保証されないことに留意されたい。多くのメッセージ３３０および／またはＡＣＫ３３４が喪失されると、リンクのレベルのエラー検出がシステム内のより高次のレベルのデバイスにシステムのリセットのきっかけとなる可能性がある警報を発する可能性が高い。モジュール３０２において受信されたシーケンス番号３７４が２つ以上のシーケンス番号３７４のギャップを示す場合には、モジュール３０２がこれを使用して警報を発し、警報を使用してシステムリセットをトリガすることができる。
【００５９】
次に、システムのリセットを必要とせずに連続するメッセージの喪失からのシステムの復帰を支援するための実施形態の拡張を説明する。喪失が復帰できる連続するメッセージの数は、連続するエラーの予想されるレートに従って設計することができる。
【００６０】
連続する喪失されたＡＣＫまたはメッセージを追跡する実施形態のメッセージング方式および通信デバイス
連続するメッセージ３３０またはＡＣＫ３３４の喪失の発生の可能性がより高い状況において、上述の実施形態は、ＡＣＫ３３４の長さを増やすこと、および、発信元のモジュールに多くの以前の受信確認応答を伝送することによって拡張することができる。したがって、図６Ａを参照すると、実施形態の拡張である通信デバイス６００が示されている。この図において、デバイス６００は、これが通信リンク６０６によって接続された第１のモジュール６０２および第２のモジュール６０４を有するという点でデバイス３００と同じである。モジュール６０２および６０４は、共に内部メモリ（図示せず）を有する。モジュール６０２および６０４の双方は、デバイス６００に到着するパケットを処理するために互いにメッセージ６３０を伝送する。メッセージ６３０を受信するモジュールは、メッセージ６３０を発信するモジュールにＡＣＫ６３４を伝送する。
【００６１】
モジュール３０４に関して説明すると、ちょうど受信されたメッセージ６３０と最後に受信されたメッセージ６３０との間のシーケンス番号６６４にギャップがあるかどうかを決定するために、モジュール６０４におけるシーケンス評価ユニット６４４は、シーケンス番号６６４を介して予想される次のメッセージ６３０を追跡し、シーケンス番号６６４を使用することができる。
【００６２】
図６Ｂを参照すると、モジュール６０２がメッセージ６３０を生成した時、メッセージ６３０は少なくとも以下のフィールド、メッセージ識別子６６２を含むメッセージ識別子フィールド６６２’（４ビット）、シーケンス番号６６４を含むシーケンス番号フィールド６６４’（８ビット）、および、メッセージペイロード６６６を含むメッセージペイロード６６６’（２０ビット）を有する。
【００６３】
デバイス６００は、これがどのようにしてＡＣＫ６３４を伝送するかの点でデバイス３００とは異なる。モジュール６０４における受信確認ユニット６４８によって生成されたＡＣＫ６３４は、以前のメッセージ６３０に対する一連の２ビットの返答を含む。この実施形態において、ＡＣＫ６３４は以前のメッセージ６３０に対する返答を含み、２つの以前のメッセージ６３０に返答する。図６Ｃを参照すると、受信されたメッセージ６３０に応じて、モジュール６０４がモジュール６０２にＡＣＫ６３４を提供する時、ＡＣＫ６３４は少なくとも以下のフィールド、メッセージ識別子６７２を含むメッセージ識別子フィールド６７２’（４ビット）、シーケンス番号６７４を含むシーケンス番号フィールド６７４’（８ビット）、返答が受諾であるか拒否であるかを示す第１の返答６７６を含む第１の返答フィールド６７６’（１ビット）、直前のメッセージ６３０に返答を提供する第２の返答６７８を含む第２の返答フィールド６７８’（２ビット）、直前のメッセージ６３０の前に伝送されたメッセージ６３０に返答を提供する第３の返答６８０を含む第３の返答フィールド６８０’（２ビット）、および、パディングフィールド６８２’を有する。モジュール６０２が直前のＡＣＫ６３４を受信しなかった場合には、第２の返答６７８は前のＡＣＫ６３４からの第１の返答６７６の再伝送として機能する。モジュール６０２が直前のＡＣＫ６３４、または、直前のＡＣＫ６３４に先立つＡＣＫ６３４を受信しなかった場合には、第２の返答６７８は直前のＡＣＫ６３４からの第１の返答６７６の再伝送として機能し、第３の返答６８０は直前のＡＣＫ６３４に先立つＡＣＫ６３４からの第１の６７６の返答の再伝送として機能する。これらの特徴を提供するために、モジュール６０２は自身が受信する最後のＡＣＫ６３４のシーケンス番号６７４、または、同等に、自身が予想する次のＡＣＫ６３４のシーケンス番号６７４を保存する。これがＡＣＫ６３４を受信する時、シーケンス番号６７４のギャップは検出することができ、情報は再伝送された情報から読み取れる。モジュール６０４が前のＡＣＫ６３４に含まれる情報を再伝送することを可能にするために、モジュール６０４は、「無効」フラッグが送出されたかどうかを含めて、自身の前のＡＣＫ情報を保存することが必要となる。
【００６４】
モジュール６０４におけるシーケンス評価ユニット６４６が、自身が少なくとも１つの前に伝送されたメッセージ６３０を受信しなかったことをシーケンス番号に基づいて決定した場合には、受信確認ユニット６４８は適切な第２の返答６７８または第３の返答６８０においてこのことを示す。この場合、以前のように、モジュール６０４におけるシーケンス評価ユニット６４６は、受信されたシーケンス番号６６４に基づいてギャップが発生したことを決定する。モジュール６０２におけるシーケンス番号ユニット６４４は、同様に、受信されたシーケンス番号６７４に基づいてギャップが発生したことを決定し、第２の返答６７８および第３の返答６８０の１つまたは双方において伝送された「無効」フラッグを読み取る。モジュール６０２は、どのメッセージ６３０が喪失されたかの指示に基づいて、自身をモジュール６０４に再同期させる。同期は、喪失されたメッセージ６３０に関連する情報を廃棄するか、または、喪失されたメッセージ６３０を再伝送するなどの手段によって達成することができる。モジュール６０２が前に伝送されたメッセージ６３０を再伝送する場合には、それは自身の前のメッセージ情報を保存することが必要となる。
【００６５】
図６Ａは３つのシナリオを示し、図中では、時間軸６７０はモジュール６０２と６０４との間のメッセージ６３０およびＡＣＫ６３４の伝送の時間を区切っている。
【００６６】
第１のシナリオにおいて、通常の、問題のない一連のメッセージ６３０およびＡＣＫ６３４はモジュール６０２と６０４との間で交換される。時刻７０２に、矢印６３２（２９）で示すように、モジュール６０２はメッセージ６３０（２９）を生成し、通信リンク６０６を介してモジュール６０４に伝送する。メッセージ６３０（２９）はメッセージ番号６６４（２９）、および、モジュール６０４に対する指示を含むメッセージペイロード６６６（２９）を含む。メッセージ６３０はモジュール６０４に到着する。モジュール６０４におけるシーケンス評価ユニット６４６はシーケンス番号６６４（２９）を読み取り、メッセージのギャップが発生していないことを決定する。
【００６７】
時刻７０６に、受信確認ユニット６４８はＡＣＫ６３４（２９）を生成し、それに、シーケンス番号６７４（２９）および返答６７６（２９）、６７８（２９）、６８０（２９）を格納する。第１の返答６７６（２９）は（「Ａ２９」で示す）メッセージ６３０（２９）についての受信確認応答を含み、第２の返答６７８（２９）は前のメッセージである（図示しない）（「Ａ２８」で示す）メッセージ６３０（２８）についての受信確認応答を含み、第３の返答６８０（２９）はもうひとつ前のメッセージである（図示しない）（「Ａ２７」で示す）メッセージ６３０（２７）についての受信確認応答を含む。矢印６３６（２９）で示すように、モジュール６０４はＡＣＫ６３４（２９）をモジュール６０２に伝送し、これは時刻７１０に到着する。モジュール６０２はＡＣＫ６３４（２９）を受信し、シーケンス評価ユニット６４４はシーケンス番号６７４（２９）を読み取り、メッセージのギャップが発生していないことを決定する。
【００６８】
第２のシナリオは、モジュール６０４への途中で喪失されているメッセージ６３０の例を示す。時刻７０４に、矢印６３２（３０）で示すように、モジュール６０２はメッセージ６３０（３０）を生成し、通信リンク６０６を介して伝送する。障害６４２は、メッセージ６３０（３０）がモジュール６０４に到着することを妨害する。デバイス６００は、デバイス３００の方法と同じ方法でこの障害６４２に対処し、ＡＣＫ６３４（３１）の一部として第２の返答６７８（３１）において「無効」フラッグを次のメッセージ６３０（３１）に提供する。モジュール６０４は、ＡＣＫ６３４のシーケンスにおけるギャップを示すシーケンス番号６７４（３１）についての値を生成する。これは、メッセージ６３０（３１）からシーケンス番号６６４（３１）についての値をコピーすることによって最も容易に達成される。
【００６９】
モジュール６０２におけるシーケンス評価ユニット６４４は、ＡＣＫ６３４における受信されたシーケンス番号６７４のシーケンスにおけるギャップについてチェックを行う。シーケンス評価ユニット６４４は、ギャップが発生して最後のＡＣＫ６３４（３０）が受信されなかったことを決定する。したがって、モジュール６０２は、メッセージ６３４（３０）がモジュール６０４によって受信されなかったためにＡＣＫ６３４（３０）が生成されなかったことを示す第２の返答６７８（３１）から「無効」フラッグを読み取る。続いて、モジュール６０２は自身をモジュール６０４に再同期させる。この例において、モジュール６０２は、メッセージ６３０（３０）のメッセージペイロード６６６（３０）において本来は伝送されたメッセージペイロード６６６（３３）における「Ｍ３０」によって示される、メッセージ６３０（３３）におけるメッセージ６３０（３０）から処理パラメータを再伝送する。メッセージペイロード６６６（３０）に関連する情報を廃棄することを含む他の手段によって、モジュール６０２が自身をモジュール６０４に再同期させることができることが理解されよう。
【００７０】
ＡＣＫ６３４の図示された実施形態が２つの連続するメッセージ６３０の喪失をモジュール６０４に示すことができるため、モジュール６０２および６０４が、多くの連続するメッセージ６３０の喪失を追跡するように構成できることも理解されよう。
【００７１】
第３のシナリオはモジュール６０２への途中で喪失されている一連のＡＣＫ６３４の例を示す。時刻７０８および７１４において、モジュール６０２はそれぞれメッセージ６３０（３２）および６３０（３３）を生成しモジュール６０４に伝送する。モジュール６０４のシーケンス評価ユニット６４６はメッセージのギャップが発生していないことを決定し、受信確認ユニット６４８はそれぞれＡＣＫ６３４（３２）および６３４（３３）を生成する。矢印６３６（３２）および６３６（３３）でそれぞれ示すように、モジュール６０４は通信リンク６０６を介してこれらのＡＣＫ６３４を伝送する。障害６４０（ｉ）および６４０（ｉｉ）は、ＡＣＫ６３４（３２）および６３４（３３）がモジュール６０２に到着することを妨害する。時刻７１６に、矢印６３２（３４）で示すように、モジュール６０２はメッセージ６３０（３４）を生成し、通信リンク６０６を介してモジュール６０４に伝送する。メッセージ６３０（３４）はシーケンス番号６６４（３４）、および、モジュール６０４のための処理パラメータを含むメッセージペイロード６６６（３４）を含む。メッセージ６３０（３４）はモジュール６０４に到着する。シーケンス評価ユニット６４６はメッセージのギャップが発生していないことを再び決定する。時刻７２０に、受信確認ユニット６４８はＡＣＫ６３４（３４）を生成し、それに、シーケンス番号６７４（３４）および返答６７６（３４）、６７８（３４）、６８０（３４）を格納する。第１の返答６７６（３４）は（「Ａ３４」で示す）メッセージ６３０（３４）についての受信確認応答を含み、第２の返答６７８（３４）は（「Ａ３３」で示す）前のメッセージ６３０（３３）についての受信確認応答を含み、かつ、第３の返答６８０（３４）は（「Ａ３２」で示す）もうひとつ前のメッセージ６３０（３４）についての受信確認応答を含む。矢印６３６（３４）で示すように、モジュール６０４はＡＣＫ６３４（３４）をモジュール６０２に伝送し、これは時刻７２４に到着する。
【００７２】
モジュール６０２のシーケンス評価ユニット６４４は受信されたシーケンス番号６７４のシーケンスにおけるギャップについてチェックを行う。シーケンス評価ユニット６４４は、ギャップが発生したこと、および、最後の２つのＡＣＫ６３４（３２）および６３４（３３）が受信されなかったことを決定する。したがって、モジュール６０２はＡＣＫ６３４（３４）から第２の返答６７８（３４）および第３の返答６８０（３４）を読み取る。したがって、モジュール６０２には、それぞれ障害６４０（ｉ）および６４０（ｉｉ）のために喪失されたメッセージ６３０（３２）および６３０（３３）に対する受信確認応答が提供される。
【００７３】
３つ以上の連続するメッセージ６３０またはＡＣＫ６３４の喪失に対する支援を提供するために４つ以上の受信確認応答を搬送するため、ＡＣＫ６３４がさらに拡張できることが理解されよう。
【００７４】
他の実施形態において、シーケンス番号システムは、順序づけられたいかなる符号の集合を使用しても取って代わることができることが理解されよう。さらに、他の実施形態においては、ＡＣＫに、既に説明した返答フィールドのいずれか１つに、メッセージに前に応答したもののシーケンス番号を格納することができる。このような実施形態において、ＡＣＫは２つのシーケンス番号を含み、そのことによって、２つのシーケンス番号の値を抽出し、比較することによる、例示的なモジュール３０２、６０２による喪失されたパケットの直接的な決定を可能にする。さらに他の実施形態において、モジュール３０２および６０２から送出されたパケットの喪失がある時、モジュール３０４および６０４はＡＣＫにおいて直接的に報告するように修正することができる。この実施形態において、モジュール３０４および６０４は受信されたメッセージからシーケンス番号を追跡し、シーケンス番号におけるギャップが存在するかどうかを決定する。いかなるそのようなギャップの検出の際にも、行方不明になったメッセージについてモジュール３０２および６０２に即座に通知するために、特別なメッセージをそれらのモジュールに送出することができる。
【００７５】
上述した実施形態は、セルストリーム、および、セルストリームを解析するためとそのセルストリーム内にデータを挿入するための必要な機能へのアクセスを有するソフトウェア、ファームウェア、または、ハードウェアのモジュールに実施することができる。そのような抽出解析および挿入技術は、当技術分野で既に知られている技術を組み込むことができるが、本明細書において定義される追加の機能を有する。
【００７６】
本実施形態には詳細の様々な変形を行うことができ、その全ては本発明の範囲内に該当することを当業者なら理解することに留意されたい。
【図面の簡単な説明】
【００７７】
【図１Ａ】従来技術の通信デバイスの２つのモジュールを示すブロック図である。
【図１Ｂ】図１Ａのデバイスによって生成され、伝送されるメッセージおよびそのフィールドを示すブロック図である。
【図１Ｃ】図１Ａのデバイスによって生成され、伝送される受信確認（ＡＣＫ）メッセージおよびそのフィールドを示すブロック図である。
【図２】図１Ａのデバイスによる一連のメッセージおよび関連ＡＣＫメッセージの伝送の進行を示す時間線のブロック図である。
【図３Ａ】実施形態の通信デバイスのブロック図、および、デバイスによって生成され、処理される一連のメッセージおよび関連ＡＣＫメッセージの伝送の進行を示す時間線を示すブロック図である。
【図３Ｂ】図３Ａのデバイスによって生成され、伝送されるメッセージおよびそのフィールドを示すブロック図である。
【図３Ｃ】図３Ａのデバイスによって生成され、伝送されるＡＣＫメッセージおよびそのフィールドを示すブロック図である。
【図４】図３Ａのデバイスによって生成され、処理される一連のメッセージおよび関連ＡＣＫメッセージの伝送の他の進行を示す時間線のブロック図である。
【図５】図３Ａのデバイスによって生成され、処理される一連のメッセージおよび関連ＡＣＫメッセージの伝送のさらに他の進行を示す時間線のブロック図である。
【図６Ａ】デバイスの他の実施形態によって生成され、処理される一連のメッセージおよび関連ＡＣＫメッセージの伝送の進行を示す時間線のブロック図である。
【図６Ｂ】図６Ａのデバイスによって生成され、伝送されるメッセージおよびそのフィールドを示すブロック図である。
【図６Ｃ】図６Ａのデバイスによって生成され、伝送されるＡＣＫメッセージおよびそのフィールドを示すブロック図である。
【符号の説明】
【００７８】
１００  従来技術の通信デバイス
３００、６００  実施形態の通信デバイス
１０２、１０４、３０２、３０４、６０２、６０４  モジュール
１０６、３０６、６０６  通信リンク
１０８、１１０、１２２、３０８、３１０  メモリ
１２０  パケット
１３０、３３０、６３０  メッセージ
１３４、３３４  ＡＣＫ
３４８  受信確認ユニット
【図１Ａ】
2004180295.tif 000003
【図１Ｂ】
2004180295.tif 000004
【図１Ｃ】
2004180295.tif 000005
【図２】
2004180295.tif 000006
【図３Ａ】
2004180295.tif 000007
【図３Ｂ】
2004180295.tif 000008
【図３Ｃ】
2004180295.tif 000009
【図４】
2004180295.tif 000010
【図５】
2004180295.tif 000011
【図６Ａ】
2004180295.tif 000012
【図６Ｂ】
2004180295.tif 000013
【図６Ｃ】
2004180295.tif 000014
【外国語明細書】
2004180295.tif 000015
2004180295.tif 000016
2004180295.tif 000017
2004180295.tif 000018
2004180295.tif 000019
2004180295.tif 000020
2004180295.tif 000021
2004180295.tif 000022
2004180295.tif 000023
2004180295.tif 000024
2004180295.tif 000025
2004180295.tif 000026
2004180295.tif 000027
2004180295.tif 000028
2004180295.tif 000029
2004180295.tif 000030
2004180295.tif 000031
2004180295.tif 000032
2004180295.tif 000033
2004180295.tif 000034
2004180295.tif 000035
2004180295.tif 000036
2004180295.tif 000037
2004180295.tif 000038
2004180295.tif 000039
2004180295.tif 000040
2004180295.tif 000041
2004180295.tif 000042
2004180295.tif 000043
2004180295.tif 000044
2004180295.tif 000045
2004180295.tif 000046
2004180295.tif 000047
2004180295.tif 000048
2004180295.tif 000049
2004180295.tif 000050
2004180295.tif 000051
2004180295.tif 000052
2004180295.tif 000053
2004180295.tif 000054
2004180295.tif 000055
2004180295.tif 000056
2004180295.tif 000057
2004180295.tif 000058
2004180295.tif 000059
2004180295.tif 000060
2004180295.tif 000061
2004180295.tif 000062
2004180295.tif 000063
2004180295.tif 000064
2004180295.tif 000065
2004180295.tif 000066
2004180295.tif 000067
2004180295.tif 000068
2004180295.tif 000069