(57)【要約】  一実施形態において、１つ以上の自己チェックペア（７００）は、トランスポートレイヤ（例えば、編組リング型トポロジを有するネットワーク内）におけるデータの条件付きの伝播に対応するネットワーク（１００）内のアプリケーションレイヤで実装される。
2008523726.tif 000002
【特許請求の範囲】
【請求項１】
第１および第２のリング（１０４）を形成する第１および第２のチャネル（１０６）で相互に通信可能にそれぞれ結合されている複数のノード（１０２）と、
前記複数のノードのうち少なくとも２つのノードからなる少なくとも１つの自己チェックペア（７００）とからなるネットワーク（１００）であって、
各ノードは、前記第１のチャネルを介して、第１の方向における第１の隣のノードおよび第２の方向における第２の隣のノードと通信可能に結合し、
各ノードは、前記第２のチャネルを介して、前記第１の方向における前記第１の隣のノードおよび前記第２の方向における前記第２の隣のノードと通信可能に結合し、
前記自己チェックペアの前記２つのノードは、相互に隣り合ったノードであって、
各ノードが前記第１の方向における前記第１のチャネルに沿ってデータの第１の中継されたユニットを中継するときに、当該ノードは、前記データの第１の中継されたユニットと共に、前記データの第１の中継されたユニットの整合性の指標情報を中継し、
各ノードが前記第２の方向における前記第２のチャネルに沿ってデータの第２の中継されたユニットを中継するときに、当該ノードは、前記データの第２の中継されたユニットと共に、前記データの第２の中継されたユニットの整合性の指標情報を中継し、
前記自己チェックペアの前記２つの各ノードは、前記第１の方向における前記第１のチャネル上および前記第２の方向における前記第２のチャネル上で通信されるデータのうちあるデータの特定のユニットについて、
前記自己チェックペア内に含まれる前記２つのノード以外のノードへ、前記第１および第２のチャネルから当該ノードによって受信された前記データの特定のユニットの第１および第２のインスタンスに関する情報を、それぞれ送信し、
前記自己チェックペア内に含まれる前記２つのノードとは別のノードから、前記第１のチャネルおよび第２のチャネルから当該別のノードによって受信された前記データの特定のユニットの第１および第２のインスタンスに関する情報を、それぞれ受信し、
自己チェックペアに関して当該ノードによって実行される処理用として、
前記第１および第２のチャネルから当該ノードによってそれぞれ受信された前記第１および第２のインスタンスに関する情報、および
前記第１および第２のチャネルから前記自己チェックペアの前記２つのノード以外によってそれぞれ受信された前記第１および第２のインスタンスに関する情報、
のうち少なくとも１つをベースにして、当該ノードによって受信された前記データの特定のユニットの第１および第２のインスタンスのうち少なくとも１つを選択することを特徴とするネットワーク。
【請求項２】
前記チェックペアの前記２つのノードが複製判別計算を実行することを特徴とする請求項１記載のネットワーク。
【請求項３】
各ノードは、前記第１のチャネルを介して、前記第１の方向における第１の隣の隣のノードおよび前記第２の方向における第２の隣の隣のノードと通信可能に結合し、
各ノードは、前記第２のチャネルを介して、前記第１の方向における第１の隣の隣のノードおよび前記第２の方向における第２の隣の隣のノードと通信可能に結合していることを特徴とする請求項１記載のネットワーク。
【請求項４】
各ノードが前記第１の方向における前記第１のチャネルに沿って前記データの第１の中継されたユニットを中継するときに、当該ノードが、当該ノードの前記第１の隣のノードおよび前記第１の隣の隣のノードに向かって、前記データの第１の中継されたユニットおよび前記データの第１の中継されたユニットの整合性の指標情報を中継し、
各ノードが前記第２の方向における前記第２のチャネルに沿って前記データの第２の中継されたユニットを中継するときに、当該ノードが、当該ノードの前記第２の隣のノードおよび前記第２の隣の隣のノードに向かって、前記データの第２の中継されたユニットおよび前記データの第２の中継されたユニットの整合性の指標情報を中継することを特徴とする請求項３記載のネットワーク。
【請求項５】
前記データの第１の中継されたユニットの整合性の指標情報が、前記それぞれのノードによって実行される、当該ノードのそれぞれ第２の隣のノードから前記第１のチャネル上で受信したデータと、当該ノードのそれぞれ第２の隣の隣のノードから受信したデータとの間の比較の指標情報からなり、
前記データの第２の中継されたユニットの整合性の指標情報が、前記それぞれのノードによって実行される、当該ノードのそれぞれ第１の隣のノードから前記第２のチャネル上で受信したデータと、当該ノードのそれぞれ第１の隣の隣のノードから受信したデータとの間の比較の指標情報からなることを特徴とする請求項３記載のネットワーク。
【請求項６】
前記第１のチャネルが、各ノードに対して
第１の方向における当該ノードの第１の隣のノードへ通信可能に結合する第１のダイレクトリンク（１０８）と、
第１の方向における当該ノードの第１の隣の隣のノードへ通信可能に結合する第１のスキップリンク（１０８）と、
第２の方向における当該ノードの第２の隣のノードへ通信可能に結合する第２のダイレクトリンク（１０８）と、
第２の方向における当該ノードの第２の隣の隣のノードへ通信可能に結合する第２のスキップリンク（１０８）とからなり、
前記第２のチャネルが、各ノードに対して
第１の方向における当該ノードの第１の隣のノードへ通信可能に結合する第１のダイレクトリンク（１０８）と、
第１の方向における当該ノードの第１の隣の隣のノードへ通信可能に結合する第１のスキップリンク（１０８）と、
第２の方向における当該ノードの第２の隣のノードへ通信可能に結合する第２のダイレクトリンク（１０８）と、
第２の方向における当該ノードの第２の隣の隣のノードへ通信可能に結合する第２のスキップリンク（１０８）とからなることを特徴とする請求項３記載のネットワーク。
【請求項７】
前記自己チェックペアの前記２つの各ノードによって前記第１および第２のチャネルからそれぞれ受信された前記データの特定のユニットの第１および第２のインスタンスについての情報が、当該ノードによって前記第１および第２のチャネルからそれぞれ受信された前記データの特定のユニットの第１および第２のインスタンスをベースにしてそれぞれのノードによって生成されたシンドロームからなることを特徴とする請求項１記載のネットワーク。
【請求項８】
第１および第２のチャネル（１０６）で相互に通信可能に結合されている複数のノード（１０２）と、
前記複数のノードのうち少なくとも２つのノードからなる少なくとも１つの自己チェックペア（７００）とからなるネットワーク（１００）であって、
前記第１のチャネルを介して各ノードが、
前記第１のチャネル上でデータを送信するノードである、少なくとも１つの第１の送信先ノードと、
前記第１のチャネルからデータを受信するノードである、少なくとも１つの第１の受信元ノードとに通信可能に結合されており、
前記第２のチャネルを介して各ノードが、
前記第２のチャネルでデータを送信するノードである、少なくとも１つの第２の送信先ノードと、
前記第２のチャネルからデータを受信するノードである、少なくとも１つの第２の受信元ノードとに通信可能に結合されており、
前記自己チェックペアの前記２つのノードの第１が、前記自己チェックペアの前記２つのノードの第２に対して、それぞれ前記第１の受信元ノードおよびそれぞれ前記第２の送信先ノードからなり、
前記自己チェックペアの前記２つのノードの第２が、前記自己チェックペアの前記２つのノードの第１に対して、それぞれ前記第２の受信元ノードおよびそれぞれ前記第１の送信先ノードからなり、
各ノードが前記第１のチャネルに沿ってデータの第１の中継されたユニットを中継するときに、当該ノードは、前記データの第１の中継されたユニットと共に前記データの第１の中継されたユニットの整合性の指標情報を中継し、
各ノードが前記第２のチャネルに沿ってデータの第２の中継されたユニットを中継するときに、当該ノードは、前記データの第２の中継されたユニットと共に前記データの第２の中継されたユニットの整合性の指標情報を中継し、
前記自己チェックペアの前記２つの各ノードが、前記第１のチャネル上および前記第２のチャネル上で通信されるデータの特定のユニットに関して、
前記自己チェックペア内に含まれる前記２つのノード以外のノードへ、前記第１および第２のチャネルから当該ノードによって受信された前記データの特定のユニットの第１および第２のインスタンスについての情報を、それぞれ送信し、
前記自己チェックペア内に含まれる前記２つのノードとは別のノードから、前記第１のチャネルおよび第２のチャネルから当該別のノードによって受信された前記データの特定のユニットの第１および第２のインスタンスについての情報を、それぞれ受信し、
自己チェックペアに関して当該ノードによって実行される処理用として、
前記第１および第２のチャネルから当該ノードによってそれぞれ受信された前記第１および第２のインスタンスに関する情報、および
前記第１および第２のチャネルから前記自己チェックペアの前記２つのノード以外によってそれぞれ受信された前記第１および第２のインスタンスに関する情報、のうち少なくとも１つをベースにして、当該ノードによって受信された前記データの特定のユニットの第１および第２のインスタンスのうち少なくとも１つを選択することを特徴とするネットワーク。
【請求項９】
第１および第２のリング（１０４）を形成する第１および第２のチャネル（１０６）を通して相互に通信可能にそれぞれ結合された複数のノード（１０２）からなるネットワーク（１００）内で使用される方法であって、各ノードは、前記第１のチャネルを介して、第１の方向における第１の隣のノードおよび第２の方向における第２の隣のノードと通信可能に結合し、各ノードは、前記第２のチャネルを介して、前記第１の方向における前記第１の隣のノードおよび前記第２の方向における前記第２の隣のノードと通信可能に結合されており、前記ネットワークは、相互に隣り合ったノードである２つのノードを含む少なくとも１つの自己チェックペア（７００）を含み、
前記複数のノードの各ノードによって、前記第１のチャネルに沿って、前記データの第１の中継されたユニットの整合性の指標情報を伴う、前記第１のチャネル上でそれぞれのノードによって受信された前記データの第１のユニットを中継し、
前記複数のノードの各ノードによって、前記第２のチャネルに沿って、前記データの第２の中継されたユニットの整合性の指標情報を伴う、前記第２のチャネル上でそれぞれのノードによって受信された前記データの第２のユニットを中継し、
前記第１および第２のチャネル上で通信されるデータの特定のユニットに関して、前記自己チェックペアの前記２つのノードの各ノードにおいて、
前記自己チェックペア内に含まれる前記２つのノード以外へ、前記第１および第２のチャネルから当該ノードによって受信された前記データの特定のユニットの第１および第２のインスタンスに関する情報を、それぞれ送信し、
前記自己チェックペア内に含まれる前記２つのノードとは別のノードから、前記第１および第２のチャネルから当該別のノードによって受信された前記データの特定のユニットの第１および第２のインスタンスについての情報を、それぞれ受信し、
自己チェックペアに関して、当該ノードによって実行される処理用として、
前記第１および第２のチャネルから当該ノードによってそれぞれ受信された前記第１および第２のインスタンスに関する情報および
前記第１および第２のチャネルから前記自己チェックペアの２つのノード以外によってそれぞれ受信された前記第１および第２のインスタンスに関する情報のうち少なくとも１つをベースにして、当該ノードによって受信された前記データの特定のユニットの第１および第２のインスタンスのうち少なくとも１つを選択することを特徴とする方法。
【請求項１０】
第１および第２のノード（１０２）からなる自己チェックペア（７００）であって、
前記第１および第２の各ノードは、少なくとも第１および第２のチャネル（１０６）とそれぞれのノードを通信可能に結合するためのインタフェース（１１３）を含み、前記第１および第２のチャネルは、それぞれ第１および第２のリング（１０４）を含み、
前記第１および第２のノードは、相互に隣り合ったノードであり、
前記第１および第２のチャネル上で中継されるデータの各ユニットに関して、前記データの中継されたユニットの整合性の指標情報は、前記データの中継されたユニットと共に中継され、
前記ネットワーク上で通信されるデータの特定のユニットに関して、
前記第１および第２の各ノードは、前記第１のチャネルから受信した前記データの特定のユニットの第１のインスタンスおよび前記第２のチャネルから受信した前記データの特定のユニットの第２のインスタンスについての情報を交換し、
前記自己チェックペアの前記第１および第２の各ノードは、それぞれのノードによって実行される処理用として、
前記第１および第２のチャネルから当該ノードによってそれぞれ受信された前記第１および第２のインスタンスに関する情報、および
前記第１および第２のチャネルから前記自己チェックペアの２つのノード以外によってそれぞれ受信された前記第１および第２のインスタンスに関する情報、のうち少なくとも１つをベースにして、前記それぞれのノードによって受信された前記データの特定のユニットの第１および第２のインスタンスのうち少なくとも１つを選択することを特徴とする自己チェックペア。
【発明の詳細な説明】
【技術分野】
【０００１】
以降の説明は、一般に通信システムに関し、より詳細には分散型のフォルトトレラントな通信システムに関する。
【背景技術】
【０００２】
本出願は、以下（ここですべて参照によって組み込まれる）の一部継続出願である。
【特許文献１】２００４年１１月１９日に出願された「ＵＮＳＹＮＣＨＲＯＮＯＵＳ  ＭＯＤＥ  ＢＲＯＴＨＥＲ’Ｓ  ＫＥＥＰＥＲ  ＢＵＳ  ＧＵＡＲＤＩＡＮ  ＦＯＲ  Ａ  ＲＩＮＧ  ＮＥＴＷＯＲＫＳ」という名称の米国特許出願第１０／９３３，９３１号（代理人整理番号Ｈ０００５０５９−１６３３）（本明細書では、「Ｈ０００５０５９−１６３３出願」として参照される）は、２００３年１１月１９日に出願された米国仮出願番号６０／５２３，８９２および２００３年１１月１９日に出願された米国仮出願番号６０／５２３，８６５（双方を参照により本明細書に組み込む）の利点について特許請求している。
【特許文献２】２００４年１１月１９日に出願された「ＣＬＩＱＵＥ  ＡＧＧＲＥＧＡＴＩＯＮ  ＩＮ  ＴＤＭＡ  ＮＥＴＷＯＲＫＳ」という名称の米国特許出願第１０／９９４，２０９号（代理人整理番号Ｈ０００９２８０−１６３３）は、２００３年１１月１９日に出願された米国仮出願番号６０／５２３，８９２および２００３年１１月１９日に出願された米国仮出願番号６０／５２３，８６５の利点について特許請求している。
【特許文献３】２００４年１１月１９日に出願された「ＳＹＮＣＨＲＯＮＯＵＳ  ＭＯＤＥ  ＢＲＯＴＨＥＲ’Ｓ  ＫＥＥＰＥＲ  ＢＵＳ  ＧＵＡＲＤＩＡＮ  ＦＯＲ  Ａ  ＴＤＭＡ  ＢＡＳＥＤ  ＮＥＴＷＯＲＫ」という名称の米国特許出願第１０／９９３，９３６号（代理人整理番号Ｈ０００９２８１−１６３３）は、２００３年１１月１９日に出願された米国仮出願番号６０／５２３，８９２および２００３年１１月１９日に出願された米国仮出願番号６０／５２３，８６５の利点について特許請求している。
【特許文献４】２００４年１１月１９日に出願された「ＨＩＧＨ  ＩＮＴＥＧＲＩＴＹ  ＤＡＴＡ  ＰＲＯＰＡＧＡＴＩＯＮ  ＩＮ  Ａ  ＢＲＡＩＤＥＤ  ＲＩＮＧ」という名称の米国特許出願第１０／９９３，９３３号（代理人整理番号Ｈ０００９２７９−１６３３）は、２００３年１１月１９日に出願された米国仮出願番号６０／５２３，８９２および２００３年１１月１９日に出願された米国仮出願番号６０／５２３，８６５の利点について特許請求している。
【特許文献５】２００４年１１月１９日に出願された「ＤＩＲＥＣＴＩＯＮＡＬ  ＩＮＴＥＧＲＩＴＹＥＮＦＯＲＣＥＭＥＮＴ  ＩＮ  Ａ  ＢＩＤＩＲＥＣＴＩＯＮＡＬ  ＢＲＡＩＤＥＤ  ＲＩＮＧ  ＮＥＴＷＯＲＫ」という名称の米国特許出願第１０／９９３，９３２号（代理人整理番号Ｈ０００９２８３−１６３３）は、２００３年１１月１９日に出願された米国仮出願番号６０／５２３，８９２および２００３年１１月１９日に出願された米国仮出願番号６０／５２３，８６５の利点について特許請求している。
【特許文献６】２００４年１１月１９日に出願された「ＭＥＳＳＡＧＥ  ＥＲＲＯＲ  ＶＥＲＩＦＩＣＡＴＩＯＮ  ＵＳＩＮＧ  ＣＨＥＣＫＩＮＧ  ＷＩＴＨ  ＨＩＤＤＥＮ  ＤＡＴＡ」という名称の米国特許出願第１０／９９３，１６２号（代理人整理番号Ｈ０００５０６１−１６３３）は、本明細書では「Ｈ０００５０６１−１６３３出願」として参照され、参照により本明細書に組み込まれる。
【０００３】
分散型のフォルトトレラントな通信システムは、例えば１つの不具合が場合によっては１人または複数の人間の負傷または死亡につながる可能性のあるアプリケーションにおいて使用される。このようなアプリケーションは、本明細書では「安全が決定的に重要となるアプリケーション」と呼ばれる。安全が決定的に重要となるアプリケーションの一例は、航空機あるいはその他のエアロスペースビークル内に含まれるセンサおよび作動装置をモニタおよび管理するために使用されるシステム内に存在する。
【０００４】
そのような安全が決定的に重要となるアプリケーションにおいて使用するために一般に検討される１つのアーキテクチャが、ＴＴＡ（Ｔｉｍｅ−Ｔｒｉｇｇｅｒｅｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）である。ＴＴＡシステムにおいては、複数のノードが、例えばＴＴＰ／Ｃ（Ｔｉｍｅ  Ｔｒｉｇｇｅｒｅｄ  Ｐｒｏｔｏｃｏｌ／Ｃ）あるいはＦＬＥＸＲＡＹプロトコルを使用して、２つの複製された高速の通信チャネルを介して相互に通信する。いくつかの実施形態においては、そのようなＴＴＡシステム内のノードのうちの少なくとも１つが、例えばＴＴＰ／Ａ（Ｔｉｍｅ  Ｔｒｉｇｇｅｒｅｄ  Ｐｒｏｔｏｃｏｌ／Ａ）を使用して、２つの複製された低速のシリアル通信チャネルを介して１つまたは複数のセンサおよび／または作動装置に結合される。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
このようなＴＴＡシステムの１つの構成においては、さまざまなノードが、２つの複製された通信チャネルを介して相互に通信し、これらの通信チャネルのそれぞれは、スター型トポロジを使用して実装される。このような構成においては、それぞれのチャネルは、１つの独立した中央集中型のバスガーディアンを含む。このような中央集中型のバスガーディアンのそれぞれは、それぞれのチャネルごとの単一障害点を表す。別の構成においては、ＴＴＡシステムは、リニアバス型トポロジを使用して実装され、ここでは、さまざまなノードが、２つの複製された通信チャネルを介して相互に通信し、それぞれのノードは、そのノードが結合されるそれぞれの通信チャネルごとに別々の独立したバスガーディアンを含む。すなわち、２つの通信チャネルが使用される場合には、それぞれのノードは、２つの独立したバスガーディアンを含む。しかし、それぞれのノード内に複数の独立したバスガーディアンを提供することは、（例えば、それぞれのノード内に複数のバスガーディアンを提供することに関連してコストが増加するために）一部のアプリケーションには適さない可能性がある。
【課題を解決するための手段】
【０００６】
一実施形態において、ネットワークは、第１および第２のリングを形成する第１および第２のチャネルで相互に通信可能にそれぞれ結合されている複数のノードからなる。ネットワークは、さらに複数のノードのうち少なくとも２つのノードからなる少なくとも１つの自己チェックペアを含む。各ノードは、第１のチャネルを介して、第１の方向における第１の隣のノードおよび第２の方向における第２の隣のノードと通信可能に結合している。各ノードは、第２のチャネルを介して、第１の方向における第１の隣のノードおよび第２の方向における第２の隣のノードと通信可能に結合している。自己チェックペアの２つのノードは、相互に隣り合ったノードである。各ノードが第１の方向における第１のチャネルに沿ってデータの第１の中継されたユニットを中継するときに、当該ノードは、データの第１の中継されたユニットと共に、データの第１の中継されたユニットの整合性の指標情報を中継する。各ノードが第２の方向における第２のチャネルに沿ってデータの第２の中継されたユニットを中継するときに、当該ノードは、データの第２の中継されたユニットと共に、データの第２の中継されたユニットの整合性の指標情報を中継する。自己チェックペアの２つのノードの各ノードは、第１の方向における第１のチャネル上および第２の方向における第２のチャネル上で通信されるデータのうちのデータのある特定のユニットについて、自己チェックペア内に含まれる２つのノード以外のノードへ、第１および第２のチャネルから当該ノードによって受信されたデータの特定のユニットの第１および第２のインスタンスに関する情報をそれぞれ送信し、自己チェックペアに含まれる２つのノードとは別のノードから、それぞれ第１のチャネルおよび第２のチャネルから当該別のノードによって受信されたデータの特定のユニットの第１および第２のインスタンスに関する情報を受信し、自己チェックペアに関する、当該ノードによって実行される処理用として、第１および第２のチャネルから当該ノードによってそれぞれ受信された第１および第２のインスタンスに関する情報、および、第１および第２のチャネルから自己チェックペアの２つのノード以外によってそれぞれ受信された第１および第２のインスタンスに関する情報、のうち少なくとも１つをベースにして当該ノードによって受信されたデータの特定のユニットの第１および第２のインスタンスのうち少なくとも１つを選択する。
【０００７】
他の一実施形態において、ネットワークは、第１および第２のチャネルで相互に通信可能にそれぞれ結合されている複数のノードと、複数のノードのうち少なくとも２つのノードからなる少なくとも１つの自己チェックペアからなる。各ノードは、第１のチャネルを介して、第１のチャネル上でデータを送信するノードである、少なくとも１つの第１の送信先ノードと、第１のチャネルからデータを受信するノードである、少なくとも１つの第１の受信元ノードとに通信可能に結合されている。
【０００８】
各ノードは、第２のチャネルを介して、第２のチャネルでデータを送信するノードである、少なくとも１つの第２の送信先ノードと、第２のチャネルからデータを受信するノードである、少なくとも１つの第２の受信元ノードとに通信可能に結合されている。自己チェックペアの２つのノードの第１は、自己チェックペアの２つのノードの第２に対して、それぞれ第１の受信元ノードおよびそれぞれ第２の送信先ノードからなる。自己チェックペアの２つのノードの第２は、自己チェックペアの２つのノードの第１に対して、それぞれ第２の受信元ノードおよびそれぞれ第１の送信先ノードからなる。各ノードが第１のチャネルに沿ってデータの第１の中継されたユニットを中継するときに、当該ノードは、データの第１の中継されたユニットと共にデータの第１の中継されたユニットの整合性の指標情報を中継する。各ノードが第２のチャネルに沿ってデータの第２の中継されたユニットを中継するときに、当該ノードは、データの第２の中継されたユニットと共にデータの第２の中継されたユニットの整合性の指標情報を中継する。自己チェックペアの２つの各ノードが、第１のチャネル上および第２のチャネル上で通信されるデータの特定のユニットに関して、自己チェックペア内に含まれる２つのノード以外のノードへ、第１および第２のチャネルから当該ノードによって受信されたデータの特定のユニットの第１および第２のインスタンスについての情報をそれぞれ送信し、自己チェックペア内に含まれる２つのノードとは別のノードから、第１のチャネルおよび第２のチャネルから当該別のノードによって受信されたデータの特定のユニットの第１および第２のインスタンスについての情報をそれぞれ受信し、自己チェックペアに関する、当該ノードによって実行される処理用として、第１および第２のチャネルからの当該ノードによってそれぞれ受信された第１および第２のインスタンスに関する情報、および第１および第２のチャネルから自己チェックペアの２つのノード以外によってそれぞれ受信された第１および第２のインスタンスに関する情報、のうち少なくとも１つをベースにして当該ノードによって受信されたデータの特定のユニットの第１および第２のインスタンスのうち少なくとも１つを選択する。
【０００９】
別の実施形態は、第１および第２のリングを形成する第１および第２のチャネルを通して相互に通信可能にそれぞれ結合された複数のノードからなるネットワーク内で使用される方法からなる。各ノードは、第１のチャネルを介して、第１の方向における第１の隣のノードおよび第２の方向における第２の隣のノードと通信可能に結合されている。各ノードは、第２のチャネルを介して、第１の方向における第１の隣のノードおよび第２の方向における第２の隣のノードと通信可能に結合されている。ネットワークは、相互に隣り合ったノードである２つのノードを含む少なくとも１つの自己チェックペアからなる。前記方法は、複数のノードの各ノードによって、第１のチャネルに沿って、データの第１の中継されたユニットの整合性の指標情報を伴う、第１のチャネル上でそれぞれのノードによって受信されたデータの第１のユニットを中継することからなる。前記方法は、さらに複数のノードの各ノードによって、第２のチャネルに沿って、データの第２の中継されたユニットの整合性の指標情報を伴う、第２のチャネル上でそれぞれのノードによって受信されたデータの第２のユニットを中継することからなる。前記方法は、さらに第１および第２のチャネル上で通信されるデータの特定のユニットに関して、自己チェックペアの２つのノードの各ノードにおいて、自己チェックペア内に含まれる２つのノードと別のノードへ、第１および第２のチャネルから当該ノードによって受信されたデータの特定のユニットの第１および第２のインスタンスに関する情報をそれぞれ送信し、自己チェックペア内に含まれる２つのノード以外から、第１および第２のチャネルから当該別のノードによって受信されたデータの特定のユニットの第１および第２のインスタンスに関する情報をそれぞれ受信し、自己チェックペアに対して、当該ノードによって実行される処理用として、第１および第２のチャネルから当該ノードによってそれぞれ受信された第１および第２のインスタンスに関する情報および第１および第２のチャネルから自己チェックペアの２つのノード以外によってそれぞれ受信された第１および第２のインスタンスに関する情報のうち少なくとも１つをベースにして当該ノードによって受信されたデータの特定のユニットの第１および第２のインスタンスのうち少なくとも１つを選択する。
【００１０】
別の実施形態において、自己チェックペアは、第１および第２のノードからなる。第１および第２の各ノードは、少なくとも第１および第２のチャネルとそれぞれのノードを通信可能に結合するためのインターフェースを含む。第１および第２のチャネルは、それぞれ第１および第２のリングからなる。第１および第２のノードは、相互に隣り合ったノードである。第１および第２のチャネル上で中継されるデータの各ユニットに関して、データの中継されたユニットの整合性の指標情報は、データの中継されたユニットと共に中継される。ネットワーク上で通信されるデータの特定のユニットに関して、第１および第２の各ノードは、第１のチャネルから受信したデータの特定のユニットの第１のインスタンスおよび第２のチャネルから受信したデータの特定のユニットの第２のインスタンスについての情報を交換し、自己チェックペアの第１および第２の各ノードは、それぞれのノードによって実行される処理用として、第１および第２のチャネルからの当該ノードによってそれぞれ受信される第１および第２のインスタンスに関する情報、および第１および第２のチャネルから自己チェックペアの２つのノード以外によってそれぞれ受信された第１および第２のインスタンスに関する情報、のうち少なくとも１つをベースにして各ノードによって受信されたデータの特定のユニットの第１および第２のインスタンスのうち少なくとも１つを選択する。
【００１１】
特許請求される本発明の１つまたは複数の実施形態の詳細については、添付の図面および以降の説明において示される。その他の特徴および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【００１２】
さまざまな図面における同様の参照番号および記号は、同様の要素を示す。
【発明を実施するための最良の形態】
【００１３】
図１は、通信ネットワーク１００の一実施形態を示すブロック図である。通信ネットワーク１００は、複数のノード１０２を含む。ネットワーク１００のそれぞれのノード１０２は、少なくとも１つのチャネル１０６に通信可能に結合される。データがチャネル１０６内を流れる所与の方向に向かって、チャネル１０６は、それぞれのノード１０２を、そのノード１０２にとってデータの受信元である少なくとも２つの他のノード１０２（本明細書では「受信元ノード」とも呼ばれる）と、そのノード１０２にとってデータの送信先である少なくとも２つの他のノード１０２（本明細書では「送信先ノード」とも呼ばれる）と直接に（すなわち、１つのホップのみで）通信可能に結合する。一実施形態においては、受信元ノード１０２のうちの１つが、「一次」受信元ノード１０２として指定され、その他の受信元ノード１０２が、「二次」受信元ノード１０２として指定される。１つのノード１０２が、チャネル１０６上で所与の方向にデータを「中継」する場合には、そのノード１０２は、そのチャネル１０６およびその方向に関するデータを一次受信元ノード１０２から受信し、そのチャネル１０６およびその方向に関する受信データを、そのノード１０２用に指定された送信先ノードのそれぞれへとその同じチャネルに沿って転送する。１つのノードによって二次受信元ノード１０２から受信されたデータは、後述のさまざまな比較オペレーションのために使用され、および／または適切なデータが一次受信元ノードから受信されない場合には中継される。１つの所与のノード１０２が、チャネル１０６に沿って所与の方向にデータを「送信」する場合には（すなわち、その所与のノード１０２が、ネットワーク１００上でやり取りされるデータのソースである場合には）、そのノード１０２は、そのチャネル１０２および方向に関するデータを、そのノード１０２用に指定された送信先ノード１０２のそれぞれへ送信する。
【００１４】
図１に示されている特定の実施形態においては、複数のノード１０２は、「編組リング型の」トポロジを有するリング１０４内に配置され、そこでは複数のノード１０２は、複数の通信チャネル１０６を介して相互に通信する。図１に示されている特定の実施形態においては、８つのノード１０２が、２つの複製された通信チャネル１０６を介して相互に通信する。その他の実施形態においては、異なる数および／またはタイプのノード１０２および／またはチャネル１０６、ならびに／あるいは異なるネットワークトポロジが使用される。
【００１５】
ネットワーク１００の実施形態は、さまざまなメディアアクセススキームを使用して実装される。例えば図１に示されている実施形態は、ここでは、ＴＤＭＡ（ｔｉｍｅ  ｄｉｖｉｓｉｏｎ  ｍｕｌｔｉｐｌｅ  ａｃｃｅｓｓ）メディアアクセススキーム（例えば、ＴＴＰ／ＣあるいはＦＬＥＸＲＡＹプロトコルで実施されるメディアアクセススキーム）を使用して実装されるものとして説明される。その他の実施形態においては、その他のメディアアクセススキームが使用される。
【００１６】
図１に示されている８つのノード１０２はまた、図１においてＡからＨの文字で個々にラベル付けされ、また本明細書では個々に「ノードＡ」、「ノードＢ」などと呼ばれる。本明細書において使用される際、「隣のノード」（あるいは単に「隣」）とは、リング１０４内における所与のノード１０２のすぐ次のノードのことである。それぞれのノード１０２は、２つの「隣のノード」１０２、すなわち時計方向のもの（本明細書では「時計方向の隣のノード」あるいは「時計方向の隣」とも呼ばれる）と、反時計方向のもの（本明細書では「反時計方向の隣のノード」あるいは「反時計方向の隣」とも呼ばれる）とを有する。例えばノードＡにとっての隣のノード１０２とは、時計方向のノードＨと、反時計方向のノードＢである。
【００１７】
さらに、本明細書において使用される際、所与のノード１０２にとっての「隣の隣のノード」（あるいは単に「隣の隣」）とは、その所与のノード１０２の隣のノード１０２のさらに隣のノード１０２のことである。それぞれのノード１０２は、２つの隣の隣のノード１０２、すなわち時計方向のもの（本明細書では「時計方向の隣の隣のノード」あるいは「時計方向の隣の隣」とも呼ばれる）と、反時計方向のもの（本明細書では「反時計方向の隣の隣のノード」あるいは「反時計方向の隣の隣」とも呼ばれる）とを有する。例えばノードＡにとっての２つの隣の隣のノードとは、時計方向のノードＧと、反時計方向のノードＣである。
【００１８】
２つの通信チャネル１０６は、それぞれ「チャネル０」および「チャネル１」として図１において個々にラベル付けされている（また本明細書でも、そのように呼ばれる）。図１に示されている実施形態においては、チャネル１０６のそれぞれは、複数のポイントツーポイントの一方向性のシリアルリンク１０８を使用して形成される。チャネル０は、ノード１０２をリング１０４に沿って時計方向に相互接続し、チャネル１は、ノード１０２をリング１０４に沿って反時計方向に相互接続する。その他の実施形態においては、その他のタイプのリンクが使用される。例えば、そのようなその他の一実施形態においては、双方向性のリンクが使用され、本明細書に記載のデバイス、システム、および技術は、通信が発生するそれぞれの方向ごとに実行される。
【００１９】
本明細書において使用される際、リンク１０８が、第１のノード１０２「から」第２のノード１０２「へ」接続されるものとして説明される場合には、そのリンク１０８は、そのリンク１０８を介してデータを第２のノード１０２へ送信するための第１のノード１０２用の通信パスを提供する。すなわち、その一方向性のリンク１０８の方向は、第１のノード１０２から第２のノード１０２へという方向である。
【００２０】
リンク１０８は、それぞれのノード１０２からそのノードの時計方向の隣のノード１０２へ接続される。リンク１０８はまた、それぞれのノード１０２からそのノードの時計方向の隣の隣のノード１０２へも接続される。例えば、１つのリンク１０８が、ノードＡからノードＨへ接続され、１つのリンク１０８が、ノードＡからノードＧへ接続される。これらの時計方向のリンク１０８は、チャネル０を構成し、図１においては実線を使用して示されている。
【００２１】
リンク１０８は、それぞれのノード１０２からそのノードの反時計方向の隣のノード１０２へ接続される。リンク１０８はまた、それぞれのノード１０２からそのノードの反時計方向の隣の隣のノード１０２へも接続される。例えば、１つのリンク１０８が、ノードＡからノードＢへ接続され、１つのリンク１０８が、ノードＡからノードＣへ接続される。これらの反時計方向のリンク１０８は、チャネル１を構成し、図１においては破線を使用して示されている。
【００２２】
所与のノード１０２をそのノードのそれぞれ時計方向および反時計方向の隣のノードへ接続するリンク１０８は、本明細書では「ダイレクト」リンク１０８とも呼ばれる。所与のノード１０２をそのノードのそれぞれ時計方向および反時計方向の隣の隣のノードへ接続するリンク１０８は、本明細書では「スキップ」リンク１０８とも呼ばれる。
【００２３】
図１に示されている特定の実施形態においては、チャネル０に関して、それぞれのノード１０２ごとの受信元ノードは、そのノードの反時計方向の隣および反時計方向の隣の隣であり、それぞれのノード１０２ごとの送信先ノードは、そのノードの時計方向の隣および時計方向の隣の隣である。本明細書に記載の実施形態においては、一次受信元ノードは、各ノードの反時計方向の隣である（ただし、その他の実施形態においては、一次受信元ノードは、そのノードの反時計方向の隣の隣である）。図１に示されている特定の実施形態においては、チャネル１に関して、それぞれのノード１０２ごとの受信元ノードは、そのノードの時計方向の隣および時計方向の隣の隣であり、それぞれのノード１０２ごとの送信先ノードは、そのノードの反時計方向の隣および反時計方向の隣の隣である。本明細書に記載の実施形態においては、一次受信元ノードは、各ノードの時計方向の隣である（しかし、他の実施形態においては、一次受信元ノードは、そのノードの時計方向の隣の隣である）。
【００２４】
図１に示されている特定の実施形態においては、ネットワーク１００は、ピアツーピアネットワークとして実装され、そこでは、それぞれの送信は、ネットワーク１００のそれぞれのノード１０２によって受信されるよう意図されている。その他の実施形態においては、それぞれの送信は、特定の宛先ノードを対象とする。さらに、本明細書に記載の実施形態では、データは、ネットワーク１００内においてデータのフレームの形態でやり取りされるが、その他の実施形態においては、データのその他のユニットがネットワーク１００を介してやり取りされるものと理解されたい。
【００２５】
図２から図６までは、図１中に示すネットワーク１００の実施形態において実行されるトランスポートレイヤ処理の様々な実施形態を説明している。図７から図１０までは、少なくともいくつかのトランスポートレイヤ処理中の上位で実装される図１中に示すネットワーク１００の実施形態において実行される（トランスポートレイヤと比較すると）高位レベルの処理の様々な実施形態を説明している。
【００２６】
本明細書において、ここで記載されている実施形態では、トランスポートレイヤ処理は、２つの−非同期化モードおよび同期化モードという少なくとも２つのモードで動作する。同期化モードで動作している場合には、ネットワーク１００内のノード１０２は、グローバルタイムベースに同期化され、ＴＤＭＡメディアアクセススキームに従って送信を行う。このようなＴＤＭＡメディアアクセススキームに伴って、ネットワーク１００内のノード１０２が所与のスケジュール期間またはラウンド中のどの時点で送信を行うかを確定するために、スケジュールが使用される。所与のスケジュール期間中に、ネットワーク１００内のさまざまなノード１０２は、送信を行うためのそれぞれのタイムスロットを割り当てられる。すなわち、任意の所与のタイムスロットに関して、そのタイムスロットに割り当てられたノード１０２は、そのタイムスロットの間に送信を行うことができる（本明細書では「スケジュールされたノード」１０２とも呼ばれる）。この実施形態においては、スケジュールされたノードは、図２に関連して後述する処理を実行する。ネットワーク１００内のその他のノード１０２は、図３Ａ〜３Ｂおよび４Ａ〜４Ｂに関連して後述する少なくともいくつかの中継処理を実行する。
【００２７】
ノード１０２が、非同期化モードで動作している場合には、それらのノード１０２は、まだグローバルタイムベースに同期化されておらず、まだＴＤＭＡスケジュールに従って送信を行っていない。一実施形態において、非同期モードで動作中のネットワーク１００内のノード１０２によって実行される処理の少なくとも一部が、例えば、Ｈ０００５０５９−１６３３出願の中で説明されている。
【００２８】
図２は、図１のネットワーク１００内においてデータを送信する方法２００の一実施形態を示す流れ図である。図２に示されている方法２００の実施形態については、ここでは、本明細書において図１〜５に関連して記載されている実施形態内で実施されるものとして説明する。方法２００は、ＴＤＭＡスケジュールに従って同期化モードで動作している１つのノード１０２によって実行される。それぞれのノード１０２は、このような実施形態においては、そのノード１０２が、スケジュールされたノード１０２である場合に（すなわち、現在のタイムスロットが、ＴＤＭＡスケジュールによってそのノード１０２に割り当てられている場合に）、方法２００の処理を実行する。図２のコンテキストにおいては、方法２００の処理を実行しているノード１０２は、ここでは「現在の」ノード１０２と呼ばれる。一実施形態においては、現在のノード１０２によって実行されるものとしてここで説明されている機能の少なくとも一部は、そのノード１０２内に含まれるコントローラ内に実装される。方法２００のその他の実施形態は、その他の方法で実装される。
【００２９】
現在のノード１０２は、その現在のノード１０２がＴＤＭＡスケジュールに従ってネットワーク１００上で送信を行うことができるとその現在のノード１０２が判断した場合に（ブロック２０２）、方法２００の処理を実行する。ネットワーク１００内のそれぞれのノード１０２は、そのような判断を行うのに必要な情報を保持する。図１〜５の実施形態においては、そのような情報は、ＴＤＭＡスケジュール、およびノード１０２が同期化される対象であるグローバルタイムベースに関連する情報を含む。
【００３０】
現在のノード１０２が送信を行うことができ、かつそのノード１０２が、送信すべきデータを有する場合には（これは、ブロック２０４においてチェックされる）、その現在のノード１０２は、データのフレームを、チャネル０に沿って、その現在のノードの時計方向の隣および時計方向の隣の隣へ送信し（ブロック２０６）、チャネル１に沿って、その現在のノードの反時計方向の隣および反時計方向の隣の隣へ送信する（ブロック２０８）。現在のノード１０２は、そのフレームをその現在のノードの時計方向の隣および反時計方向の隣へ、それぞれのダイレクトリンク１０８を使用して送信する。現在のノード１０２は、そのフレームをその現在のノードの時計方向の隣の隣および反時計方向の隣の隣へ、それぞれのスキップリンク１０８を使用して送信する。このような実施形態の一実装形態においては、現在のノード１０２は、チャネル０上のフレームをその現在のノードの時計方向の隣および時計方向の隣の隣へ送信する第１のトランシーバと、チャネル１上のフレームをその現在のノードの反時計方向の隣および反時計方向の隣の隣へ送信する第２のトランシーバとを含む。
【００３１】
１図３Ａは、図１のネットワーク１００内においてデータを中継する方法３００の一実施形態を示す流れ図である。１つのノードがデータを「中継」する場合には、そのノード１０２は、１つまたは複数の受信元ノードからデータを受信し、その受信したデータを１つまたは複数の送信先ノードへと転送する。すなわち、ノード１０２がデータを中継している場合には、そのノード１０２は、そのノード１０２が他のノードへと転送しているデータのソースではない。図３Ａに示されている方法３００の実施形態については、ここでは、本明細書において図１〜５に関連して記載されている編組リング型の実施形態内で実施されるものとして説明する。その他の実施形態においては、方法３００は、その他のネットワークトポロジを使用して実施される。方法３００を実施できるその他のネットワークトポロジの一例が、２つの「シンプレックス」リングチャネルを含むネットワークトポロジである。このようなシンプレックスリング型ネットワークの一実装形態においては、ネットワークは、図１に示されているトポロジと同様のトポロジを使用するが、それぞれのノードをその時計方向の隣の隣および反時計方向の隣の隣へ通信可能に結合するスキップリンクは存在しない。
【００３２】
方法３００は、ＴＤＭＡスケジュールに従って同期化モードで動作している１つのノード１０２によって実行される。それぞれのノード１０２は、このような実施形態においては、そのノードの両隣のうちの一方が、現在のタイムスロットにとってのスケジュールされたノード１０２である場合に、方法３００の処理を実行する。図３Ａのコンテキストにおいては、方法３００の処理を実行しているノード１０２は、ここでは「現在の」ノード１０２と呼ばれる。一実施形態においては、現在のノード１０２によって実行されるものとしてここで説明されている機能の少なくとも一部は、そのノード１０２内に含まれるコントローラ内に実装される。方法３００のその他の実施形態は、その他の方法で実装される。
【００３３】
現在のノード１０２は、その現在のノード１０２の両隣のうちの一方が現在のタイムスロットの間に送信を行うようにスケジュールされているとその現在のノード１０２が判断した場合に（これは、ブロック３０２においてチェックされる）、方法３００の処理を実行する。このような隣は、この図３Ａのコンテキストにおいては「スケジュールされた隣」とも呼ばれる。図１〜５の実施形態においては、現在のノード１０２は、ＴＤＭＡスケジュールと、そのノード１０２が同期化される対象であるグローバルタイムベースとを含む情報に基づいて、この判断を行う。
【００３４】
現在のノード１０２が、その両隣のうちの一方が現在のタイムスロットにとってのスケジュールされたノードであると判断した場合には、その現在のノード１０２は、そのスケジュールされた隣から発生してその現在のノード１０２によって受信されたフレームを、そのスケジュールされた隣から、そのスケジュールされた隣をその現在のノード１０２へ結合するダイレクトリンク１０８を介して中継するだけである。すなわち現在のノード１０２が、スケジュールされた隣以外のノード１０２から発生するフレームを受信した場合には、その現在のノード１０２は、そのフレームを中継しない。
【００３５】
現在のノード１０２が、スケジュールされた隣からのフレームの受信を開始した場合には（これは、ブロック３０４においてチェックされる）、その現在のノード１０２は、その送信が、ネットワーク１００内において実施される１つまたは複数のポリシーに準拠しているかどうかをチェックする。図３Ａに示されている特定の実施形態においては、現在のノード１０２は、送信が、例えば、そこにおいて送信を開始しなければならない特定のウィンドウを指定する時間的なポリシーに準拠しているかどうかをチェックする（これは、ブロック３０６においてチェックされる）。ＴＴＰ／ＣあるいはＦＬＥＸＲＡＹプロトコルがサポートされるこのような実施形態の一実装形態においては、現在のノード１０２は、送信が、サポートされるプロトコルの時間的な送信要件に準拠しているかどうかをチェックする。図３Ａに示されている実施形態においては、送信が時間的なポリシーに準拠していない場合には（例えば、ＳＯＳ（ｓｌｉｇｈｔｌｙ−ｏｆｆ−ｓｐｅｃｉｆｉｃａｔｉｏｎ）の障害が発生した場合には）、現在のノード１０２は、現在のフレームを中継しない（ブロック３０８）。（図３Ａ内で点線を使用して示されている）代替実施形態においては、送信が時間的なポリシーに準拠していない場合には、現在のノード１０２は、その送信が時間的なポリシーに準拠していないことを示す情報（例えば、添付または共有された整合性フィールド）と共に現在のフレームを中継する（ブロック３０９）。別の実施形態（図示せず）においては、送信が時間的なポリシーの第１の側面に準拠していない場合には、現在のノード１０２は、その送信を中継せず、またその送信が（第１の側面には準拠している一方で）その時間的なポリシーの別の側面に準拠していない場合には、現在のノード１０２は、その送信がそのポリシーのその側面に準拠していないことを示す情報と共に現在のフレームを中継する。
【００３６】
送信が時間的なポリシーに準拠している場合には、現在のノード１０２は、その送信が１つまたは複数のその他のポリシーに準拠しているかどうかをチェックする（ブロック３１０）。例えば一実施形態においては、現在のノード１０２は、送信が１つまたは複数のセマンティックポリシー（例えば、セマンティックなプロトコル状態のフィルタリングを実施するポリシー）に準拠しているかどうかをチェックする。それぞれのフレームが、そのフレームのコンテンツに基づいて計算されるＣＲＣ（ｃｙｃｌｉｃ  ｒｅｄｕｎｄａｎｃｙ  ｃｈｅｃｋ）フィールドを含む別の実施形態においては、現在のノード１０２は、そのＣＲＣフィールドをチェックして、スケジュールされたノードからその現在のノード１０２へそのフレームを送信する過程で何らかのエラーがそのフレーム内に取り込まれているかどうかを判断する。このようなポリシーの別の例は、コード化層実施ポリシーである。別の例においては、フレーム長ポリシーが使用され、現在のノード１０２は、現在のフレームの長さをチェックする（このような例においては、フレーム長ポリシーに準拠しない場合には、例えば図３Ａのブロック３０９に関連して説明したように処理が行われることになる）。
【００３７】
送信が、その他のポリシーのうちの１つまたは複数に準拠していない場合には、現在のノード１０２は、その送信を中継しない（ブロック３０８）。（図３Ａ内で破線を使用して示されている）代替実施形態においては、現在のノード１０２は、その送信が１つまたは複数のポリシーに準拠していないことを示す情報（例えば、添付または共有された整合性フィールド）と共に現在のフレームを中継する（ブロック３０９）。別の実施形態（図示せず）においては、送信が第１のポリシーに準拠していない場合には、現在のノード１０２は、その送信を中継せず、またその送信が（第１のポリシーには準拠している一方で）別のポリシーに準拠していない場合には、現在のノード１０２は、その送信が後者のポリシーに準拠していないことを示す情報と共に現在のフレームを中継する。
【００３８】
あるいは、送信がすべてのポリシーに準拠している場合には、現在のノード１０２は、現在のフレームを、その現在のフレームの受信元であるチャネルに沿って、その現在のノードの次の隣および次の隣の隣へ中継する（ブロック３１２）。例えば、スケジュールされたノードがノードＡであり、現在のノードがノードＢである場合には、その現在のノードは、現在のフレームをノードＣ（チャネル１に沿ってノードＢの次の隣）へ、およびノードＤ（チャネル１に沿ってノードＢの次の隣の隣）へ中継する。
【００３９】
その他の実施形態においては、現在のノード１０２は、送信が、上述のポリシーにとって代わりとなるあるいは追加となるその他のポリシーに準拠しているかどうかをチェックする。例えば、このようなその他の一実施形態においては、現在のノード１０２は、スケジュールされたノードによる送信の方向に関する整合性を（例えば、図１２に関連して後述する方法で）チェックし、そのフレームが方向に関する整合性を伴って送信されたかどうかを示すフィールドをそのフレームに添付する。
【００４０】
図３Ｂは、図１のネットワーク１００内においてデータを中継する方法３５０の別の実施形態を示す流れ図である。図３Ｂに示されている方法３５０の実施形態については、ここでは、本明細書において図１〜５に関連して記載されている編組リング型の実施形態内で実施されるものとして説明する。その他の実施形態においては、方法３５０は、その他のネットワークトポロジを使用して実施される。方法３５０を実施できるその他のネットワークトポロジの一例が、２つの「シンプレックス」リングチャネルを含むネットワークトポロジである。このようなシンプレックスリング型ネットワークの一実装形態においては、ネットワークは、図１に示されているトポロジと同様のトポロジを使用するが、それぞれのノードをその時計方向および反時計方向の隣の隣へ通信可能に結合するスキップリンクは存在しない。
【００４１】
方法３５０は、ＴＤＭＡスケジュールに従って同期化モードで動作している１つのノード１０２によって実行される。それぞれのノード１０２は、このような実施形態においては、そのノードの両隣のうちの一方が、現在のタイムスロットにとってのスケジュールされたノード１０２である場合に、方法３５０の処理を実行する。図３Ｂのコンテキストにおいては、方法３５０の処理を実行しているノード１０２は、ここでは「現在の」ノード１０２と呼ばれる。一実施形態においては、現在のノード１０２によって実行されるものとしてここで説明されている機能の少なくとも一部は、そのノード１０２内に含まれるコントローラ内に実装される。方法３５０のその他の実施形態は、その他の方法で実装される。
【００４２】
現在のノード１０２は、その現在のノード１０２の両隣のうちの一方が現在のタイムスロットの間に送信を行うようにスケジュールされているとその現在のノード１０２が判断した場合に（これは、ブロック３５２においてチェックされる）、方法３５０の処理を実行する。このような隣は、この図３Ｂのコンテキストにおいては「スケジュールされた隣」とも呼ばれる。図１〜５の実施形態においては、現在のノード１０２は、ＴＤＭＡスケジュールと、そのノード１０２が同期化される対象であるグローバルタイムベースとを含む情報に基づいて、この判断を行う。
【００４３】
方法３５０においては（図３Ａの方法３００と同様に）、現在のノード１０２が、その両隣のうちの一方が現在のタイムスロットにとってのスケジュールされたノードであると判断した場合には、その現在のノード１０２は、そのスケジュールされた隣から発生してその現在のノード１０２によって受信されたフレームを、そのスケジュールされた隣から、そのスケジュールされた隣をその現在のノード１０２へ結合するダイレクトリンク１０８を介して中継するだけである。すなわち現在のノード１０２が、スケジュールされた隣以外のノード１０２から発生するフレームを受信した場合には、その現在のノード１０２は、そのフレームを中継しない。しかし図３Ａの方法３００の場合とは異なり、図３Ｂの方法３５０においては、現在のノード１０２は、ブロック３０８〜３１０に関連付けられている「バスガーディアン」の処理を実行しない。
【００４４】
現在のノード１０２が、スケジュールされた隣からのフレームの受信を開始した場合には（これは、ブロック３５４においてチェックされる）、その現在のノード１０２は、その受信したフレームを、そのフレームの受信元であるチャネルに沿って、その現在のノードの次の隣および次の隣の隣へ中継する（ブロック３５６）。例えば、スケジュールされたノードがノードＡであり、現在のノードがノードＢである場合には、その現在のノードは、ノードＡから受信したフレームをノードＣ（チャネル１に沿ってノードＢの次の隣）へ、およびノードＤ（チャネル１に沿ってノードＢの次の隣の隣）へ中継する。
【００４５】
図４Ａ〜４Ｂは、図１のネットワーク１００内においてデータを中継する方法４００の一実施形態を示す流れ図である。図４Ａ〜４Ｂに示されている方法４００の実施形態については、ここでは、本明細書において図１〜５に関連して記載されている実施形態内で実施されるものとして説明する。方法４００は、ＴＤＭＡスケジュールに従って同期化モードで動作している１つのノード１０２によって実行される。それぞれのノード１０２は、このような実施形態においては、そのノード１０２が現在のタイムスロットの間に送信を行うようにスケジュールされておらず、かつそのノードの両隣のいずれもが現在のタイムスロットの間に送信を行うようにスケジュールされていない場合に、方法４００の処理を実行する。図４Ａ〜４Ｂのコンテキストにおいては、方法４００の処理を実行しているノード１０２は、ここでは「現在の」ノード１０２と呼ばれる。一実施形態においては、現在のノード１０２によって実行されるものとしてここで説明されている機能の少なくとも一部は、そのノード１０２内に含まれるコントローラ内に実装される。方法４００のその他の実施形態は、その他の方法で実装される。
【００４６】
現在のノード１０２は、その現在のノード１０２が現在のタイムスロットの間に送信を行うようにスケジュールされておらず、かつその現在のノードの両隣のいずれもが現在のタイムスロットの間に送信を行うようにスケジュールされていない場合に（これは、図４Ａのブロック４０２においてチェックされる）、方法４００の処理を実行する。図１〜５の実施形態においては、現在のノード１０２は、ＴＤＭＡスケジュールと、そのノード１０２が同期化される対象であるグローバルタイムベースとを含む情報に基づいて、この判断を行う。
【００４７】
現在のノード１０２が現在のタイムスロットの間に送信を行うようにスケジュールされておらず、かつその現在のノードの両隣のいずれもが現在のタイムスロットの間に送信を行うようにスケジュールされておらず、またその現在のノード１０２が、チャネル０上におけるその現在のノードの反時計方向の隣からのフレームの受信を開始したとその現在のノード１０２が判断した場合には（これは、ブロック４０４においてチェックされる）、その現在のノード１０２は、チャネル０上におけるその現在のノードの反時計方向の隣から受信されているフレームを、チャネル０上におけるその現在のノードの反時計方向の隣の隣から受信されている任意のフレームと比較する（ブロック４０６）。図４に示されている実施形態においては、ビットごとの比較が実行される。さらに、図５に関連して後述するように、複数のフレームが、わずかに異なる時点で現在のノード１０２において受信される可能性が高いため、受信される複数のフレームをデスキューするためにデスキュー機能が使用される。現在のノード１０２は、チャネル０上におけるその現在のノードの反時計方向の隣から受信されているフレームを、チャネル０に沿って、その現在のノードの時計方向の隣および時計方向の隣の隣へ中継する（ブロック４０８）。現在のフレームが中継され、比較が完了した後、現在のノード１０２は、その比較の結果を示す情報を、その現在のノードの反時計方向の隣から受信されたフレーム内に含めて、あるいはそのフレームの後に中継する（ブロック４１０）。現在のノード１０２は、その比較の結果を示す情報を、チャネル０に沿って、その現在のノードの時計方向の隣および時計方向の隣の隣へ中継する。一実施形態においては、比較の結果を示す情報は、現在のノード１０２が、その現在のノードの反時計方向の隣から受信されたフレームに添付する１ビットの添付された整合性フィールドを含む。別の実施形態においては、共有された整合性フィールドが、それぞれのフレームの終わりに含まれる。このような実施形態においては、現在のノード１０２は、２つのフレームが同一ではないことを比較が示す場合には、共有された整合性フィールドを「負の」値（例えば、「０」の値）に設定し、あるいは２つのフレームが同一であることを比較が示す場合には、共有された整合性フィールドを変更しない。
【００４８】
現在のノード１０２が、（例えば所定のタイムアウト期間が経過しても）チャネル０上におけるその現在のノードの反時計方向の隣からのフレームを受信せず、その一方でチャネル０上におけるその現在のノードの反時計方向の隣の隣からのフレームの受信を開始した場合には（これは、ブロック４１２においてチェックされる）、その現在のノード１０２は、その現在のノードの反時計方向の隣の隣から受信されているフレームを、チャネル０に沿って、その現在のノードの時計方向の隣および時計方向の隣の隣へ中継する（ブロック４１４）。そのフレームが中継された後、現在のノード１０２は、チャネル０に関してその現在のノード１０２において「ミスマッチ」があったことを示す情報を、そのフレーム内に含めて、あるいはそのフレームの後に中継する（ブロック４１６）。現在のノード１０２は、この情報を、チャネル０に沿って、その現在のノードの時計方向の隣および時計方向の隣の隣へ中継する。現在のノード１０２の反時計方向の隣から受信されたフレームはないため、反時計方向の隣から受信されたフレームが、その現在のノード１０２の反時計方向の隣の隣から受信されたフレームと同一であることはない。
【００４９】
現在のノード１０２が、チャネル０上におけるその現在のノードの反時計方向の隣からの、あるいはチャネル０上におけるその現在のノードの反時計方向の隣の隣からのフレームを受信しない場合には、その現在のノード１０２は、現在のタイムスロットの間にチャネル０に沿っていかなるデータも中継しない（ブロック４１８）。
【００５０】
現在のノード１０２は、チャネル１から受信したフレームに対しても同じ処理を実行する。現在のノード１０２が現在のタイムスロットの間に送信を行うようにスケジュールされておらず、かつその現在のノードの両隣のいずれもが現在のタイムスロットの間に送信を行うようにスケジュールされておらず、またその現在のノード１０２が、チャネル１上におけるその現在のノードの時計方向の隣からのフレームの受信を開始したとその現在のノード１０２が判断した場合には（これは、図４Ｂのブロック４２０においてチェックされる）、その現在のノード１０２は、チャネル１上におけるその現在のノードの時計方向の隣から受信されているフレームを、チャネル１上におけるその現在のノードの時計方向の隣の隣から受信されている任意のフレームと比較する（ブロック４２２）。図４に示されている実施形態においては、ビットごとの比較が実行される。さらに、複数のフレームが、わずかに異なる時点で現在のノード１０２において受信される可能性が高いため、受信される複数のフレームをデスキューするためにデスキュー機能が使用される。現在のノード１０２は、チャネル１上におけるその現在のノードの時計方向の隣から受信されているフレームを、チャネル１に沿って、その現在のノードの反時計方向の隣および反時計方向の隣の隣へ中継する（ブロック４２４）。現在のフレームが中継され、比較が完了した後、現在のノード１０２は、その比較の結果を示す情報を、その現在のノードの時計方向の隣から受信されたフレーム内に含めて、あるいはそのフレームの後に中継する（ブロック４２６）。現在のノード１０２は、その比較の結果を示す情報を、チャネル１に沿って、その現在のノードの反時計方向の隣および反時計方向の隣の隣へ中継する。一実施形態においては、添付された整合性フィールドが使用される。別の実施形態においては、共有された整合性フィールドが使用される。
【００５１】
現在のノード１０２が、（例えば所定のタイムアウト期間が経過しても）チャネル１上におけるその現在のノードの時計方向の隣からのフレームを受信せず、その一方でチャネル１上におけるその現在のノードの時計方向の隣の隣からのフレームの受信を開始した場合には（これは、ブロック４２８においてチェックされる）、その現在のノード１０２は、その現在のノードの時計方向の隣の隣から受信されているフレームを、チャネル１に沿って、その現在のノードの反時計方向の隣および反時計方向の隣の隣へ中継する（ブロック４３０）。そのフレームが中継された後、現在のノード１０２は、チャネル１に関してその現在のノード１０２において「ミスマッチ」があったことを示す情報を、そのフレーム内に含めて、あるいはそのフレームの後に中継する（ブロック４３２）。現在のノード１０２は、この情報を、チャネル１に沿って、その現在のノードの反時計方向の隣および反時計方向の隣の隣へ中継する。現在のノード１０２の時計方向の隣から受信されたフレームはないため、時計方向の隣から受信されたフレームが、その現在のノード１０２の時計方向の隣の隣から受信されたフレームと同一であることはない。
【００５２】
現在のノード１０２が、チャネル１上におけるその現在のノードの時計方向の隣からの、あるいはチャネル１上におけるその現在のノードの時計方向の隣の隣からのフレームを受信しない場合には、その現在のノード１０２は、現在のタイムスロットの間にチャネル１に沿っていかなるデータも中継しない（ブロック４３４）。
【００５３】
一例においては、現在のノード１０２がノードＡであり、ノードＥが、現在のタイムスロットの間に送信を行うようにスケジュールされているノードである。このような例においては、ノードＡは、チャネル０のそれぞれのダイレクトリンク１０８を介してノードＢ（ノードＡの反時計方向の隣）からのフレームを受信し、このフレームを、ノードＡがチャネル０のそれぞれのスキップリンク１０８を介してノードＣ（ノードＡの反時計方向の隣の隣）から受信する任意のフレームと比較する。ノードＡは、ノードＢから受信しているフレームと、その比較の結果を示す情報とを、ノードＨ（チャネル０に沿ってノードＡの次の隣）へ、およびノードＧ（チャネル０に沿ってノードＡの次の隣の隣）へ中継する。このような例においては、ノードＡはまた、チャネル１のそれぞれのダイレクトリンク１０８を介してノードＨ（ノードＡの時計方向の隣）からのフレームを受信し、このフレームを、ノードＡがチャネル１のそれぞれのスキップリンク１０８を介してノードＧ（ノードＡの時計方向の隣の隣）から受信する任意のフレームと比較する。ノードＡは、ノードＨから受信したフレームと、その比較の結果を示す情報とを、ノードＢ（チャネル１に沿ってノードＡの次の隣）へ、およびノードＣ（チャネル１に沿ってノードＡの次の隣の隣）へ中継する。
【００５４】
図４に示されている実施形態においては、ダイレクトリンク１０８とスキップリンク１０８の双方の上で現在のノード１０２によって複数のフレームが受信された場合には、その現在のノード１０２は、ダイレクトリンク１０８上で受信されたフレームを中継する。その他の実施形態においては、ダイレクトリンク１０８とスキップリンク１０８の双方の上で現在のノード１０２によって複数のフレームが受信された場合には、その現在のノード１０２は、スキップリンク１０８上で受信されたフレームを中継する。
【００５５】
図５は、一例においては、それぞれ図３および４Ａ〜４Ｂの方法３００および４００の比較および中継処理を実施するために使用されるノード１０２の論理コンポーネントを示すブロック図である。特定の比較および中継処理を実行しているノード１０２は、図５のコンテキストにおいては、現在のノード１０２と呼ばれる。チャネル０上で受信されたフレームに対する比較および中継処理を実行するために使用される現在のノード１０２の論理コンポーネントが、図５に示されている。チャネル１上で受信されたフレームに対する比較および中継処理は、図５に示されている論理コンポーネントと同様の論理コンポーネントを使用して実行されるということを理解されたい。
【００５６】
図５に示されている例においては、現在のノード１０２は、第１のダイレクトリンクインターフェース５０２を含み、この第１のダイレクトリンクインターフェース５０２は、その現在のノード１０２をチャネル０の反時計方向のダイレクトリンク１０８へ通信可能に結合し、このチャネル０の反時計方向のダイレクトリンク１０８は、その現在のノードの反時計方向の隣へ接続される。現在のノード１０２はまた、第１のスキップリンクインターフェース５０４を含み、この第１のスキップリンクインターフェース５０４は、その現在のノード１０２をチャネル０の反時計方向のスキップリンク１０８へ通信可能に結合し、このチャネル０の反時計方向のスキップリンク１０８は、その現在のノードの反時計方向の隣の隣へ接続される。ダイレクトリンクＦＩＦＯ（ｆｉｒｓｔ−ｉｎ−ｆｉｒｓｔ−ｏｕｔ）バッファ５０６は、第１のダイレクトリンクインターフェース５０２に結合され、スキップリンクＦＩＦＯバッファ５０８は、第１のスキップリンクインターフェース５０４に結合される。第１のダイレクトリンクインターフェース５０２および第１のスキップリンクインターフェース５０４は、それぞれダイレクトリンク１０８およびスキップリンク１０８からデータを受信し、その受信したデータをそれぞれダイレクトリンクＦＩＦＯバッファ５０６およびスキップリンクＦＩＦＯバッファ５０８内に保存する。
【００５７】
現在のノード１０２は、第２のダイレクトリンクインターフェース５１０を含み、この第２のダイレクトリンクインターフェース５１０は、その現在のノード１０２をチャネル０の時計方向のダイレクトリンク１０８へ通信可能に結合し、このチャネル０の時計方向のダイレクトリンク１０８は、その現在のノードの時計方向の隣へ接続される。現在のノード１０２はまた、第２のスキップリンクインターフェース５１２を含み、この第２のスキップリンクインターフェース５１２は、その現在のノード１０２をチャネル０の時計方向のスキップリンク１０８へ通信可能に結合し、このチャネル０の時計方向のスキップリンク１０８は、その現在のノードの時計方向の隣の隣へ接続される。
【００５８】
図５に示されている例においては、現在のノード１０２は、デスキューおよび比較モジュール５１４を含み、このデスキューおよび比較モジュール５１４は、その現在のノードの反時計方向の隣および反時計方向の隣の隣から受信したフレームを「デスキュー」および比較する。図５に示されている特定の例においては、現在のノード１０２は、単一の送信機５１６を含み、この送信機５１６は、その現在のノードの時計方向の隣とその現在のノードの時計方向の隣の隣の双方へデータを送信するために使用される。送信機５１６の出力は、その現在のノードの時計方向の隣およびその現在のノードの時計方向の隣の隣へそれぞれ送信するために、第２のダイレクトリンクインターフェース５１０と第２のスキップリンクインターフェース５１２の双方に結合される。
【００５９】
所与のタイムスロットの間の所与の送信中に、現在のノード１０２は、通常では第１のダイレクトリンクインターフェース５０２および第１のスキップリンクインターフェース５０４上におけるそれぞれのフレームの受信を別々の時点において開始する。例えば、図４のブロック４０６〜４１０および４１４〜４１８に関連して比較および中継処理が実行される場合には、現在のノード１０２は、所与の送信中に、通常では第１のスキップリンクインターフェース５０４上におけるフレームの受信を、第１のダイレクトリンクインターフェース５０２上における対応するフレームの受信を開始する前に開始する。これは、このような例では、第１のスキップリンクインターフェース５０４において受信されるフレームが、第１のダイレクトリンクインターフェース５０２上で受信されるフレームよりも１つ少ないホップを介して進むためである（すなわち、第１のスキップリンクインターフェース５０４上で受信されるフレームが、現在のノードの反時計方向の隣を「スキップ」するためである）。
【００６０】
図５に示されている例においては、デスキューおよび比較モジュール５１４ならびに送信機５１６は、ＦＩＦＯバッファ５０６と５０８の双方が半分満たされるまで待ってから、受信したデータの比較および中継を実行する。その他の実施形態においては、上述のデスキュー技術に加えて、あるいはその代わりに、その他のデスキュー技術が使用される。
【００６１】
図５に示されている特定の例においては、受信された２つのフレームに対するビットごとの比較が、デスキューおよび比較モジュール５１４によって実行される。
データが第１のダイレクトリンクインターフェース５０２において受信されると、その受信されたデータは、ダイレクトリンクＦＩＦＯバッファ５０６の入力端へと書き込まれる。また、データがスキップリンクインターフェース５０４において受信されると、その受信されたデータは、スキップリンクＦＩＦＯバッファ５０８の入力端へと書き込まれる。フレームが第１のダイレクトリンクインターフェース５０２上において受信されているかどうかの判断は、そのインターフェース５０２から受信したデータ内から、フレームの始まりを示す区切り文字を検出することによって行われる。同様に、フレームが第１のスキップリンクインターフェース５０４上において受信されているかどうかの判断は、そのインターフェース５０４から受信したデータ内から、フレームの始まりを示す区切り文字を検出することによって行われる。
【００６２】
フレームが第１のダイレクトリンクインターフェース５０２と第１のスキップリンクインターフェース５０４の双方の上において受信されている場合に、ＦＩＦＯバッファ５０６と５０８の双方が半分満たされると、デスキューおよび比較モジュール５１４は、第１のＦＩＦＯバッファ５０６および第２のＦＩＦＯバッファ５０８のそれぞれの出力端からのビットの受信を開始し、送信機５１６は、ＦＩＦＯバッファ５０６の出力端からのビットの受信を開始する。デスキューおよび比較モジュール５１４は、第１のＦＩＦＯバッファ５０６および第２のＦＩＦＯバッファ５０８からビットを受信すると、受信した２つのフレームに対するビットごとの比較を実行する。送信機５１６は、第１のＦＩＦＯバッファ５０６からビットを受信すると、その受信したビットを、チャネル０に沿って、反時計方向の隣および反時計方向の隣の隣へ中継する。デスキューおよび比較モジュール５１４は、双方のフレームの終わりを比較すると、それらの２つのフレームが同一であったか否かを示すビットを送信機５１６へ出力する。送信機５１６は、デスキューおよび比較モジュール５１４によって出力されたビットを受信し、中継されるフレームの後にそのビットを送信することによって、中継されるフレームの終わりにそのビットを「添付」する。
【００６３】
フレームが第１のダイレクトリンクインターフェース５０２上において受信されており、その一方で第１のスキップリンクインターフェース５０４上では受信されていない場合に、第１のＦＩＦＯバッファ５０６が半分満たされると、デスキューおよび比較モジュール５１４ならびに送信機５１６は、第１のＦＩＦＯバッファ５０６の出力端からのビットの受信を開始する。デスキューおよび比較モジュール５１４は、現在のノード１０２においてチャネル０に対してミスマッチが生じていることを示すビットを送信機５１６へ出力する。送信機５１６は、第１のＦＩＦＯバッファ５０６からビットを受信すると、その受信したビットを、チャネル０に沿って、反時計方向の隣および反時計方向の隣の隣へ中継する。送信機５１６は、デスキューおよび比較モジュール５１４によって出力されたビットを受信し、中継されるフレームの後にそのビットを送信することによって、中継されるフレームの終わりにそのビットを「添付」する。
【００６４】
図４の方法４００用に実行される処理に関しては、フレームが第１のスキップリンクインターフェース５０４上において受信されており、その一方で第１のダイレクトリンクインターフェース５０２上では受信されていない場合に、第２のＦＩＦＯバッファ５０８が半分満たされると、デスキューおよび比較モジュール５１４ならびに送信機５１６は、第２のＦＩＦＯバッファ５０８の出力端からのビットの受信を開始する。デスキューおよび比較モジュール５１４は、現在のノード１０２においてチャネル０に対してミスマッチが生じていることを示すビットを送信機５１６へ出力する。送信機５１６は、第２のＦＩＦＯバッファ５０８からビットを受信すると、その受信したビットを、チャネル０に沿って、反時計方向の隣および反時計方向の隣の隣へ中継する。送信機５１６は、デスキューおよび比較モジュール５１４によって出力されたビットを受信し、中継されるフレームの後にそのビットを送信することによって、中継されるフレームの終わりにそのビットを「添付」する。
【００６５】
ネットワーク１００の実施形態は、ネットワーク１００の複数のノード１０２が同期モードで動作している間の改善されたフォルトトレランスを提供する。例えばネットワーク１００の実施形態は、改善された移送の利用可能度および改善された移送の整合性を提供する。改善された移送の利用可能度は、例えば２つの独立した反対方向の通信チャネル０および１を使用することによって提供される。ネットワーク１００内のノード１０２によって送信されるデータは、２つの独立した通信パスを介してネットワーク１００内のその他のノード１０２のそれぞれへと進む。例えばネットワーク１００のノードＡによって送信されるデータは、チャネル０上をノードＡからノードＢ、Ｃ、Ｄ、およびＥへと反時計方向に進む第１のパスを介して、またチャネル１上をノードＡからノードＨ、Ｇ、Ｆ、およびＥへと時計方向に進む第２のパスを介して、ノードＥへと進む。結果として、これらのパスのうちの一方の上に何らかの単一障害点が生じても、データをノードＥへと首尾よく進めることができる別のパスが存在することになる。
【００６６】
図１〜４に示されている実施形態においては、ネットワーク１００の全体へ送信されるそれぞれのフレーム内にＣＲＣプロトコルフィールドが含まれる。このようなＣＲＣフィールドは、偶発的なエラーに対処するのに非常に適している。送信側のノードと、その送信側のノードの時計方向の隣および反時計方向の隣との間におけるダイレクトリンク１０８上のノイズに起因するエラーは、このような偶発的な性格を有する。しかしアクティブなインターステージによってもたらされるエラーは、本質的に相互に関連付けられる可能性があり、これによってＣＲＣフィールドは、そのようなエラーに対処するのにあまり適さなくなる可能性がある。方法４００の処理を実行する際にノード１０２によって実行されるビットごとの比較は、前のノードによってもたらされるいかなるエラーをも検出し、それによって、このようなアクティブなインターステージによって引き起こされるエラーに対処する。このように中継を行うことによって、ネットワーク１００内における移送の整合性が改善される。
【００６７】
図６は、このようなノード１０２が同期化モードで動作している間に図１のネットワーク１００内において発生する間抜けなタイミングでのでしゃばりな送信による障害の一例を示すブロック図である。図６に示されている例においては、ネットワーク１００内のそれぞれのノード１０２は、図２〜４の方法２００、３００、および４００を実施する。この例においては、ノードＡは、ノードＥが送信を行うようにスケジュールされているタイムスロットの間に、間抜けなタイミングでのでしゃばりな送信による障害を有する。この障害によって、ノードＡは、チャネル０に沿ってノードＡの時計方向の隣のノードＨへ、およびチャネル１に沿ってノードＡの反時計方向の隣のノードＢへ送信を行う。ノードＨが、ノードＡによって送信されたフレームをチャネル０から受信した場合に、ノードＨが、ノードＡ（ノードＨの反時計方向の隣）から受信したフレームと、ノードＢ（ノードＨの反時計方向の隣の隣）から受信したフレームの間で行う比較は、それらの２つのフレームが同一ではないことを示すであろう。結果として、ノードＨは、ノードＡから受信したフレームを、ミスマッチがノードＨにおいて生じたことを示す情報と共にチャネル０上において中継する。同様に、ノードＢが、ノードＡによって送信されたフレームをチャネル１から受信した場合に、ノードＢが、ノードＡ（ノードＢの時計方向の隣）から受信したフレームと、ノードＢ（ノードＢの時計方向の隣の隣）から受信したフレームの間で行う比較は、それらの２つのフレームが同一ではないことを示すであろう。結果として、ノードＢは、ノードＡから受信したフレームを、ミスマッチがノードＨにおいて生じたことを示す情報と共にチャネル１上において中継する。
【００６８】
ノードＡの送信によって影響を受けるチャネル０およびチャネル１のリンク１０８が、破線を使用して図６に示されている。チャネル０内におけるノードＡからノードＨへのダイレクトリンク１０８、ならびにチャネル０内におけるノードＨからノードＧへ、ノードＧからノードＦへ、およびノードＦからノードＥへのダイレクトリンクおよびスキップリンク１０８は、ノードＡによる障害を伴った送信によって影響を受ける。チャネル１内におけるノードＡからノードＢへのダイレクトリンク１０８、ならびにチャネル１内におけるノードＢからノードＣへ、ノードＣからノードＤへ、およびノードＤからノードＥへのダイレクトリンクおよびスキップリンク１０８は、ノードＡによる障害を伴った送信によって影響を受ける。
【００６９】
ノードＥによってチャネル０に沿って送信されたデータは、チャネル０のこの部分におけるリンク１０８がノードＡの送信によって影響を受けないため、ノードＤ、Ｃ、およびＢによって受信され、中継される。同様に、ノードＥによってチャネル１に沿って送信されたデータは、チャネル１のこの部分におけるリンク１０８がノードＡの送信によって影響を受けないため、ノードＦ、Ｇ、およびＨによって受信され、中継される。ノードＡの送信によって影響を受けず、ノードＥが首尾よく送信を行うことができるチャネル０およびチャネル１のリンク１０８が、実線を使用して図６に示されている。このようにして、ノードＥによって送信されたデータは、ノードＡにおいて間抜けなタイミングでのでしゃばりな送信による障害が発生しているにもかかわらず、リング１０４内におけるノード１０２のそれぞれに到達することができる。
【００７０】
別の例では、ノード１０２が同期化モードで動作している間に、図１の通信ネットワーク１００内においてＳＯＳ（ｓｌｉｇｈｔｌｙ−ｏｆｆ−ｓｐｅｃｉｆｉｃａｔｉｏｎ）の不具合あるいは障害が発生している。ＳＯＳの障害は、１つのフレームが、ネットワーク１００内における複数のノード１０２の受信ウィンドウ内で受信され、かつネットワーク１００内におけるその他のノード１０２の受信ウィンドウのわずかに外側にある場合に発生する。ＳＯＳの不具合が発生すると、ノード１０２の前者のセットは、そのフレームを正しいフレームとして受け入れ、その一方でノード１０２の後者のセットは、そのフレームを間違ったフレームとして拒絶する。すなわち、ネットワーク１００内における正当なノード１０２の別々のセットが、同一のフレームに対して別々の見方を有することになり、これは望ましくない。
【００７１】
この例では、ノードＡにおいてＳＯＳの不具合が発生している。このような不具合においては、ノードＡの送信用としてノードＡに割り当てられているタイムスロットの間に、障害を抱えるノードＡは、ある時点で送信を行い、その結果、（もしもノードＡの送信が、リング１０４の全体に完全に中継されるならば）ノードＢ、Ｃ、Ｈ、およびＧは、その送信を正しいものとして受信し、ノードＤ、Ｅ、およびＦは、その送信を間違ったものとして受信することになる。
【００７２】
ノードＢおよびＨは、ノードＡの隣として、ノードＡによる送信が、ネットワーク１００内において実施される時間的なポリシーに準拠しているかどうかをチェックする。このような例においては、ノードＢは、チャネル１上においてノードＡから受信されたフレームが時間的なポリシーに準拠していないと判断し、したがってチャネル１に沿ってそれ以上そのフレームを中継しない。同様に、ノードＨは、チャネル０上においてノードＡから受信されたフレームが時間的なポリシーに準拠していないと判断し、したがってチャネル０に沿ってそれ以上そのフレームを中継しない。このようにして、そうしたＳＯＳの不具合の影響が緩和される。
【００７３】
図１２は、図１のネットワーク１００内における方向的な整合性を検知する方法の一実施形態を示す流れ図である。図１２に示されている方法１２００の実施形態については、ここでは、図１に示されているネットワーク１００を使用して実装されるものとして説明するが、その他の実施形態は、その他のネットワーク内においてその他の方法で実装される。図１２のコンテキストにおいては、方法１２００の処理を実行しているノード１０２は、ここでは「現在の」ノード１０２と呼ばれる。一実施形態においては、現在のノード１０２によって実行されるものとしてここで説明されている機能の少なくとも一部は、そのノード１０２内に含まれるコントローラ内に実装される。方法１２００のその他の実施形態は、その他の方法で実装される。
【００７４】
所与のノード１０２（この図１２のコンテキストにおいては、「送信側の」ノード１０２と呼ばれる）がデータを送信する際、その送信側のノード１０２の両隣のノードのそれぞれは、その送信側のノード１０２がネットワーク１００のチャネル０と１の双方の上で同じデータを送信しているかどうか（すなわち、そこで送信側のノード１０２が方向的な整合性を伴って送信を行っているかどうか）を判断するために、方法１２００を実行する。方法１２００は、例えばネットワーク１００内のノード１０２が、複数のノードが１つのＴＤＭＡスケジュールに従って送信を行う同期化モードで動作している場合に実行することができる。このような実施形態においては、方法１２００は、図３Ａあるいは図３Ｂに関連して前述した処理に加えて、両隣のノードによって実行することができる。方法１２００はまた、例えばネットワーク１００内のノード１０２が（例えばシステムの起動中に）非同期化モードで動作している場合に実行することもできる。このような実施形態においては、方法１２００は、Ｈ０００５０５９−１６３３出願にて説明した処理に加えて、両隣のノードによって実行することができる。
【００７５】
送信側のノード１０２が送信を行う場合には、その送信側のノードの両隣は、自分たちがその送信側のノードから受信するそれぞれのフレームを、それらの両隣を相互に通信可能に結合するスキップリンク１０８を介してやり取りする。図１２に示されているように、現在のノード１０２が、その両隣のうちの一方から発生したフレームを受信した場合には（これは、ブロック１２０２においてチェックされる）、その現在のノード１０２は、自分がその隣から（すなわち、送信側のノードから）受信しているフレームを、その送信側のノードの他方の隣へ転送する（ブロック１２０４）。現在のノード１０２は、送信側のノード１０２からのフレームを、その現在のノード１０２をその送信側のノードへ通信可能に結合するダイレクトリンク１０８から受信する。請求項１２のコンテキストにおいては、現在のノード１０２が送信側のノード１０２からフレームを受信するチャネルは、ここでは「現在のチャネル」と呼ばれる。現在のノード１０２は、自分が送信側のノードから受信するフレームを、その送信側のノード１０２の他方の隣へ、その現在のノード１０２を現在のチャネル以外のチャネル内の他方の隣へ通信可能に結合するスキップリンク１０８を介して転送する。
【００７６】
送信側のノードの他方の隣は、自分が送信側のノードから受信するフレームを、現在のノード１０２へ、その他方の隣を現在のチャネル内のその現在のノード１０２へ通信可能に結合する他のスキップリンク１０８を介して転送する。図１２のコンテキストにおいては、送信側のノードの他方の隣によって現在のノード１０２へ転送されるフレームは、ここでは「他のフレーム」とも呼ばれる。現在のノード１０２は、他のフレームを受信する（ブロック１２０６）。現在のノード１０２は、自分が送信側のノードから受信しているフレームを、自分が他方の隣から受信している他のフレームと比較する（ブロック１２０８）。一実施形態においては、この比較はビットごとの比較である。
【００７７】
現在のノード１０２は、自分が送信側のノード１０２から受信しているフレームを、現在のチャネルに沿って中継する（ブロック１２１０）。例えば送信側のノード１０２が、現在のノード１０２の時計方向の隣である場合には、その現在のノード１０２は、送信側のノード１０２からチャネル１を介してフレームを受信し、その受信したフレームを、チャネル１に沿って、その現在のノード１０２の反時計方向の隣および隣の隣へ中継する。送信側のノード１０２が、現在のノード１０２の反時計方向の隣である場合には、その現在のノード１０２は、送信側のノード１０２からチャネル０を介してフレームを受信し、その受信したフレームを、チャネル０に沿って、その現在のノード１０２の時計方向の隣および隣の隣へ中継する。
【００７８】
送信側のノードによって送信されたフレームの全体が、現在のノード１０２によって中継され、そのフレームと、他方の隣によってその現在のノード１０２へ転送された他のフレームとの比較が完了した後、その現在のノード１０２は、その比較の結果を示す情報を、送信側の隣から受信されたフレーム内に含めて、あるいはそのフレームの後に、現在のチャネルに沿って中継する（ブロック１２１２）。一実施形態においては、比較の結果を示す情報は、図４Ａ〜４Ｂおよび５に関連して前述したように、現在のノード１０２が、送信側のノードから受信されたフレームに添付する１ビットの添付された整合性フィールドを含む。別の実施形態においては、図４Ａ〜４Ｂおよび５に関連して前述したように、共有された整合性フィールドが、それぞれのフレームの終わりに含まれる。
【００７９】
例えば、送信側のノードが図１のノードＡであり、現在のノードがノードＢである場合には、送信側のノードの他方の隣はノードＨである。このような例においては、現在のノード（ノードＢ）は、自分がノードＡから受信するフレームを、ノードＢをノードＨへ通信可能に結合するチャネル０のスキップリンク１０８を介して、他方の隣（ノードＨ）へ転送する。同様に、他方の隣（ノードＨ）は、自分がノードＡから受信するフレームを、ノードＨをノードＢへ通信可能に結合するチャネル１のスキップリンク１０８を介して、現在のノード（ノードＢ）へ転送する。ノードＢは、自分がノードＡから受信するフレームを、自分がノードＨから受信するフレームと比較する。ノードＢは、ノードＡから受信したフレームを、チャネル１に沿ってノードＣ（ノードＢの反時計方向の隣）へ、およびノードＤ（ノードＢの反時計方向の隣の隣）へ中継する。ノードＢは、ノードＡから受信したフレームの全体を中継し、比較を完了すると、（この例においては）その中継されたフレームに１ビットのフィールドを添付する。
【００８０】
一実施形態において、図２〜６および図１２に関連して上述したトランスポートレイヤ機能（ｆｕｎｃｔｉｏｎａｌｉｔｙ）の最上位に実装された、より高いレイヤでの機能も、このようなトランスポートレイヤ機能の様々な特徴の利点を有している。図７〜１０に関連して説明した典型的実施形態において、このような高いレイヤの機能は、アプリケーションレイヤ内で生じるバリュー−ドメイン（ｖａｌｕｅ−ｄｏｍａｉｎ）のフレームエラーを軽減するため、図２〜６および図１２に関連して上述したトランスポートレイヤ機能によって提供される１つ以上の特徴を使用できるように実装される。図７は、アプリケーションレイヤで自己チェックペアを実装できるように構成される図１のネットワーク１００の一実施形態のブロック図である。個々の各ノード１０２は、図２〜６および図１２に関連して上述したトランスポートレイヤ機能の少なくとも一部を実現する。アプリケーションレイヤでの１つ以上の自己チェックペア７００は、ネットワーク１００内に設置される。図７中に示す実施形態において、例えば、自己チェックペア７００は、ノードＡおよびノードＢ（またここでは、個別に「ペアＡ／Ｂ」と呼ばれる）として設置され、別の自己チェックペア７００は、ノードＥおよびノードＦ（またここでは、個別に「ペアＥ／Ｆ」と呼ばれる）として設置される。
【００８１】
各自己チェックペア７００において、各ペアの２つのノード１０２は、各ノード１０２の出力が１ビット毎同一であるような複製判別方法を使って、アプリケーションレイヤで動作することが要求される。これは、簡単なビット毎の票決（ｖｏｔｉｎｇ）を可能にする。一実施形態において純粋計算ベースの複製が実装されている場合、複製決定論（ｒｅｐｌｉｃａ―ｄｅｔｅｒｍｉｎｉｚｍ）は、ペアの中のノード１０２が、双方とも同一の内部状態ベクトル（すなわち、同一の履歴状態）を持ち、かつ次の計算フレームで使用される入力データベクトルについて一致していることが要求される。一般的に自己チェックペアのノードは、受信したデータの複数インスタンスのうちどれを自己チェックペアによって実行する処理の中で使用するべきかを決定するために、（「票決」や「選択」演算として一般に呼ばれる演算の中から）１つ以上の比較オペレーションを実行する。図７に示す実施形態において、図１〜６および図１２に関連して上述したトランスポートレイヤ処理内で実行される比較は、前記自己チェックペア７００によって実行されるこのような票決あるいは選択オペレーションを実現するために利用される。
【００８２】
図８は、自己チェックペア７００のメンバーによって実行される、より高いレイヤ処理の少なくとも一部を実現する方法８０の一実施形態の流れ図である。図８中に示す実施形態において、ネットワーク１００内の各ノード１０２は、ネットワーク１００上でフレームを送信、中継および受信するために、図２〜６に関連して上述した処理の少なくとも一部をトランスポートレイヤで実装する。図８のコンテキストでは、方法８００の処理を実行するノード１０２は、ここでは「現在の」ノード１０２と呼ばれる。現在のノード１０２がメンバーであるような自己チェックペア７００は、またここでは「現在の」ペア７００として呼ばれる。一実施形態において、現在のノード１０２によって実行されているとしてここで説明された機能の少なくとも一部は、ノード１０２内に含まれるコントローラ内で実装される。方法８００の他の実施形態は、別の方法で実装される。
【００８３】
現在のペア７００によって実行される複製判別計算（ｒｅｐｌｉｃａ−ｄｅｔｅｒｍｉｎａｔｅ  ｃｏｍｐｕｔａｔｉｏｎ）の原因となる、各送信されたフレームに対し、方法８００が現在のノード１０２によって実行される。ネットワーク１００内でフレームが送信されるとき、現在のノード１０２で実装されたトランスポートレイヤ機能は、送信されるフレームの２つを上限とするインスタンス−チャネル０から「受信された」１つのインスタンス（ブロック８０２）、およびチャネル１から「受信された」１つのインスタンス（ブロック８０４）を現在のノード１０２上に実装されたアプリケーションレイヤ機能へ供給する。図８中に示す特定の実施形態において、所与のチャネルに関して、トランスポートレイヤ機能がアプリケーションレイヤ機能へ供給する送信フレームのインスタンスは、（例えば、図３Ａ〜図３Ｂおよび図４Ａ〜図４Ｂに関連して上述したように）トランスポートレイヤ機能がそのチャネルに沿って中継する送信されたフレームのインスタンスである。このようなインスタンスは、送信されたフレームのインスタンスに追加される、あるいは含まれる、１つ以上の比較状態インジケータを含むであろう。前記インスタンスに対する比較状態インジケータが、インスタンスが受信されたそのチャネルに沿って現在のノード１０２あるいは任意の以前のノード１０２でミスマッチが発生しないことを示す場合、そのインスタンスは、ここでは「整合性を伴って」受信されてきたと呼ばれる。前記インスタンスに対する比較状態インジケータが、インスタンスが受信されたそのチャネルに沿って現在のノード１０２あるいは任意の以前のノード１０２でミスマッチが発生したことを示すならば、そのインスタンスは、ここでは「整合性を伴わないで」受信されてきたと呼ばれる。
【００８４】
チャネルから整合性を伴って受信した、送信されたフレームの各インスタンスについて、現在のノード１０２は、そのチャネルに沿って１０２の以前のすべてノードがそのチャネルから送信されたフレームについて同じデータを受信したと見なす。例えば、ノードＡがチャネル０から送信されたフレームのインスタンスを整合性を伴って受信するとき、ノードＡは、ノードＢ（チャネル０に沿って以前のノード）が送信されたフレームに関して、チャネル０から同じデータを受信したと見なす。同様にノードＢがチャネル１から送信されたフレームのインスタンスを整合性を伴って受信するとき、ノードＢは、ノードＡ（チャネル１に沿って以前のノード）が送信されたフレームに関して、チャネル１から同じデータを受信したと見なす。
【００８５】
図８中に示す実施形態における、ペア７００によって実行される複製判別計算の原因となる送信された各フレームに関して、ペア７００のメンバーノード１０２は、３ビットベクトル（またここでは「シンドローム」と呼ばれる）を交換する。現在のノード７００の各メンバーノード１０２は、チャネル０から受信した、送信されたフレームのインスタンスおよびチャネル１から受信した、送信されたフレームのインスタンスをベースにしたシンドロームを生成する。各シンドロームは、そのシンドロームを生成したノード１０２がチャネル０から送信されたフレームのインスタンスを整合性を伴って受信したかどうかを示す１ビット（またここでは「チャネル−０ビット」と呼ばれる）、ノード１０２がチャネル１から送信されたフレームのインスタンスを整合性を伴って受信したかどうかを示す１ビット（またここでは「チャネル−１ビット」と呼ばれる）、およびチャネル０から受信したインスタンスが、チャネル１から受信したインスタンスとマッチするかどうかを示す１ビットを含む。自己チェックペア７００のメンバーノード１０２は、シンドロームを交換し、該シンドロームは、ペア７００によって実行される次の複製判別計算に使用される送信フレームのインスタンスを選択するために、各メンバーノード１０２によって使用される。
【００８６】
図８に示す実施形態において、現在のノード１０２は、チャネル０から受信した、送信されたフレームのインスタンスおよびチャネル１から受信した、送信されたフレームのインスタンスをベースとしてシンドロームを生成（ブロック８０６）する。現在のノード１０２と現在のペアの別のメンバーノード１０２は、シンドロームを交換（ブロック８０８）する。そのシンドロームは、現在のノードと現在のペアの別のメンバーノードとの間のチャネル０とチャネル１内のダイレクトリンク１０８を使って交換される。したがって、シンドロームの交換に関して、現在のペアのメンバーノード１０２の間でいかなる追加的結合も要求されない。
【００８７】
一実施形態において、前記シンドローム交換は、所定のタイムスロットの間に生じる。図７のネットワーク１００に関するＴＤＭＡスケジュール９００の一例が図９中に示されている。スケジュール９００は、シンドロームを交換するために、図７の自己チェックペア７００のそれぞれに割り当てられたタイムスロット９０２を含んでいる。図８中に示す例において、ペアＡ／ＢおよびペアＥ／Ｆは、タイムスロット９０２の間、シンドロームを交換する。一実施形態において、「レギュラーの」タイムスロットのために使用される同じトランスポートレイヤ機能がシンドローム交換送信のために使用される。このような実施形態において、タイムスロット９０２の間、ペアＡ／ＢおよびＥ／Ｆがシンドロームを交換するとき、そのタイムスロット９０２の間、ネットワーク１００内の他のノード１０２は、それらが受信するあらゆるフレームを無視するように構成される。
【００８８】
一実施形態において、現在のペア７００によって実行される複製判別計算の原因となるネットワーク１００上で送信された各フレームに関して、現在のペア７００のメンバーによるシンドロームの生成および交換は、前記フレームが送信される特定のタイムスロットの間に発生する。別の実施形態において、現在のペア７００のメンバーは、所与のスケジュールラウンドの間、すべてのフレームを受信し、その後、現在のペア７００によって実行される複製判別計算の原因となるすべての受信したフレームに対して単一の合成シンドロームを生成し、交換する。
【００８９】
図８中に示される実施形態において、シンドローム交換後、現在のノード１０２（および現在のペア７００の他のメンバーノード１０２）は、現在のペア７００（すなわち現在のペア７００の各メンバーノード１０２）によって実行されることになっている複製判別計算の中で使用するべき送信されたフレームのインスタンスを選択（ブロック８１０）する。送信されたフレームのインスタンスの選択方法の一例を図１０中に示す。しかし、他の実施形態は他の方法で実装されることが理解されよう。
【００９０】
図１０は、図７の自己チェックペア７００によって実行される複製判別計算の中で使用する、送信されたフレームのインスタンスを選択する方法１０００の一実施形態の流れ図である。方法１０００の実施形態は、自己チェックペア７００の各メンバーノード内で実装される。図１０のコンテキストにおいて、方法１０００の処理を実行しているノード１０２は、ここでは「現在の」ノード１０２と呼ばれる。現在のノード１０２がメンバーである自己チェックペア７００は、またここでは「現在の」ペア７００と呼ばれる。一実施形態において、現在のノード１０２によって実行されるようなここで説明した機能の少なくとも一部は、ノード１０２の中に含まれるコントローラ内に実装される。方法１０００の他の実施形態は、別の方法で実装される。
【００９１】
現在のペア７００によって実行される複製判別計算の原因となる送信された各フレームに対して、ペア７００の各メンバーノード１０２によって受信される前記送信されたフレームのどのインスタンスがその計算の中で使用されるべきかを判別するために、方法１０００が現在のノード１０２によって実行される。図１０中に示される実施形態において、方法１０００は、所与のフレームに対するインスタンスが受信された後実行され、および対応するシンドロームは、メンバーノード１０２によって生成され、そして交換される。
【００９２】
図１０中に示される実施形態において、現在のノード１０２は、送信されたフレームのソースが自己チェックペア（あるいは他の高い整合性のソース）であるかどうかを最初にチェック（ブロック１００２）する。このような実施形態においては、送信されたフレームのどのインスタンスを使用するべきかの選択は、その送信されたフレームのソースの種類に依存している。図１０中に示される実施形態において、２つのタイプのソース――自己チェックペアノード７００および「シンプレックス」ソースがある。シンプレックスソースとして動作するとき、単一のノード１０２は、自己チェックペア７００のメンバー以外として送信する。図７中に示すネットワーク１００において、ノードＡおよびＢは、ペアＡ／Ｂの一部であり、ノードＥおよびＦは、ペアＥ／Ｆの一部である。
【００９３】
一実施形態において、送信されたフレームのソースの種類は、ＴＤＭＡスケジュールを使用しながら現在のノード１０２によって識別される。例えば、図９中に示されるように、ＴＤＭＡスケジュール９００は、ペアＡ／Ｂに割り当てられるタイムスロット９０４を含む。タイムスロット９０４の間、ノードＡおよびＢは、ネットワーク１００のチャネル０および１上のペアＡ／Ｂとしてフレームを送信する。またスケジュール９００は、ペアＥ／Ｆに割り当てられるタイムスロット９０６を含む。タイムスロット９０６の間、ノードＥおよびＦは、ネットワーク１００のチャネル０および１上のペアＥ／Ｆとしてフレームを送信する。スケジュール９００はまた、ノードＣ、Ｄ、Ｃ、Ｈ、ＢおよびＦにそれぞれ割り当てられるタイムスロット９０８、９１０、９１２、９１４、９１６および９１８を含み、そこにおいてそれぞれのノード１０２は、シンプレックス方法で（すなわち自己チェックペア７００のメンバーとしてではないものとして）送信する。この実施形態において、ノードは、自己チェックペアのメンバーとしても単独のシンプレックスソースとしても、送信してもよいことに留意されたい。例えば、ノードＢおよびＦは、タイムスロット９０４および９０６内ではペアＡ／ＢおよびＥ／Ｆのメンバーとしてそれぞれ送信し、そしてタイムスロット９１６および９１８内ではシンプレックスソースとしてそれぞれ送信する。
【００９４】
図１０中に示される方法１０００の実施形態において、送信されたフレームのソースが自己チェックペアであって、かつ現在のノード１０２が送信されたフレームの少なくとも１つのインスタンスを整合性を伴って受信した場合（ブロック１００４でされるチェック）、現在のノード１０２は、複製判別計算（ブロック１００６）の実行のため、その様な整合性を伴って受信されたインスタンスの１つを選択する。送信されたフレームのソースが自己チェックペア７００であり、かつ現在のノード１０２が所与のチャネルから送信されたフレームのインスタンスを整合性を伴って受信するとき、現在のノード１０２は、現在のペア７００の他のメンバーノード１０２が同じチャネルから送信されたフレームの同一のインスタンスを受信したと見なす。さらに送信されたフレームのソースが自己チェックペア７００であるとき、現在のノード１０２は、そのソース（すなわち送信中の自己チェックペア）が、双方のチャネル上で同じデータを送信すると見なし、および現在のノード１０２が双方のチャネルから送信されたフレームのインスタンスを整合性を伴って受信するようなイベントにおいて、現在のノード１０２は、受信したこれら２つのインスタンスが相互に同一であり、かつ現在のペア７００の他のメンバーノード１０２が双方のチャネルから送信されたフレームのインスタンスを整合性を伴って受信したと見なし、これらの受信したインスタンスがまた相互に同一であり、現在のノード１０２によって受信された２つのインスタンスと同一であると見なす。したがって現在のノード１０２が双方のチャネルからの送信されたフレームのインスタンスを整合性を伴って受信するイベント中に、現在のペア７００の各メンバーノード１０２は、どちらかのチャネルから受信したインスタンスを選ぶことが可能であり、現在のペア７００のメンバーノード１０２は、同じチャネルから受信したインスタンスを選択する必要性はない。一実施形態において、１つのチャネルを好むバイアス（ｂｉａｓ）がある。つまり、現在のノード１０２が双方のチャネルから送信されたフレームのインスタンスを整合性を伴って受信するイベントにおいて、現在のノード１０２は、他のチャネルを経由したチャネルから受信したインスタンスを選択する（しかし、このような場合、１つのチャネルを好むようなバイアスが要求されることはない）。
【００９５】
送信されたフレームのインスタンスが現在のノード１０２によって整合性を伴って受信されず、チャネル０から受信した、送信されたフレームのインスタンスが、チャネル１から受信した、送信されたフレームのインスタンスと同一である場合（ブロック１００８でされるチェック）、現在のノード１０２は、複製判別計算実行用にいずれかのインスタンスを選択（ブロック１０１０）する。送信されたフレームのソースが自己チェックペア７００であり、かつチャネル０から現在のノード１０２によって受信したインスタンスがチャネル１から現在のノード１０２によって受信したインスタンスとマッチするとき、現在のノード１０２は、現在のペア７００の他のメンバーノード１０２によって受信した双方のインスタンスは、相互に同一であって、現在のノード１０２によって受信したインスタンスと同一であると見なす。したがってこの状況においては、現在のペア７００の各メンバーノード１０２は、いずれかのチャネルから受信したインスタンスを選ぶことが可能であり、さらに現在のペア７００のメンバーノード１０２は、同じチャネルから受信したインスタンスを選択する必要性はない。一実施形態においては、１つのチャネルを好むバイアスがある（しかし、このような場合、１つのチャネルを好むようなバイアスが要求されることはない）。
【００９６】
送信されたフレームの双方のインスタンスが現在のノード１０２によって整合性を伴わずに受信され、かつその２つのインスタンスが同一でない場合、現在のノード１０２は、いくつかのデフォルトアクション（ブロック１０１２）を実行する。現在のノード１０２によって実行する特定のアクションは、典型的アプリケーション依存である。例えば、前記実施形態の一実現例においては、現在のノード１０２は、複製判別計算を実行しない。別の実施形態においては、現在のノード１０２は、複製判別計算実行に使用するため、送信されたフレームに代わりに、ある既知の正しいデータ（例えば同じソースからの最後の既知の正しいフレーム）を選択する。他の実施形態においては、他のデフォルトアクションが実行される。このような状況において、現在のノード１０２は、現在のペア７００の他のメンバーノード１０２が、いずれのチャネルからも送信されたフレームのインスタンスを整合性を伴って受信しなかったと見なし、さらに他のメンバーノード１０２によって受信された２つのインスタンスが同一でなく、したがって他のメンバーノード１０２は、その送信されたフレームに関して現在のノード１０２と同じデフォルトアクションを実行すると見なす。
【００９７】
図１０中に示される方法１０００の実施形態において、送信されたフレームのソースが自己チェックぺアでない場合、現在のノード１０２は、現在のノード１０２および現在のペア７００の他のメンバーノード１０２の双方が同じチャネルから送信されたフレームのインスタンスを整合性を伴って受信したかどうかをチェックする（ブロック１０１４内でされるチェック）。そうならば、現在のノード１０２は、複製判別計算の実行用に、送信されたフレームのインスタンスを選択する（ブロック１０１６）。図１０中に示される一実施形態において、送信されたフレームのソースが、自己チェックペアではなく（しかも図１２に関連して上述した方向に関する整合性機能も使用されていない）、かつ現在のノード１０２が双方のチャネルから整合性を伴ってインスタンスを受信するとき、それにもかかわらず、２つの受信したインスタンスが同一でないというケースがあるかもしれない。したがってこのような実施形態において、現在のペア７００のメンバーノード１０２は、チャネルの１つ（またここでは「一次（ｐｒｉｍａｒｙ）チャネル」と呼ばれる）を好むバイアスを有する。これは、以下、現在のペア７００の双方のメンバーノード１０２が双方のチャネルから整合性を伴ってインスタンスを受信し、双方のメンバーノード１０２が一次チャネルから受信したインスタンスを選択するというイベントにおいてである。
【００９８】
代替実施例において、図１２に関連して上述した方向に関する整合性機能がネットワーク１００内のノード１０２のトランスポートレイヤで使用される。前記代替実施例において、送信されたフレームのソースが自己チェックペアでないとき、各インスタンス中に含まれる整合性情報は、送信されたフレームが方向に関する整合性を伴って送信されたかどうか示すことであろう。このような実施形態において、現在のペア７００の各メンバーノードは、チャネルの１つから（方向に関する整合性を含んで）インスタンスを整合性を伴って受信するとき、受信するインスタンスが他のチャネル上で（方向に関する整合性を含んで）ノード１０２によって整合性を伴って受信されたいかなるインスタンスとも同一と見なし、（方向に関する整合性を含んで）いずれかのチャネルから他のメンバーノード１０２によって整合性を伴って受信された任意のインスタンスと同一と見なす。したがって、このような実施形態において、現在のペア７００の各メンバーノードによって選択されたインスタンスは、それぞれのインスタンスが（方向に関する整合性を含んで）各メンバーノードによって整合性を伴って受信された場合は、同じチャネルから受信される必要はない。
【００９９】
図１０中に示される実施形態において、現在のノード１０２および現在のペア７００の他のメンバーノード１０２の双方が同じチャネルから送信されたフレームのインスタンスを整合性を伴って受信していない場合、現在のノード１０２は、チャネル０上で受信されたインスタンスが現在のノード１０２とその他のメンバーノード１０２の双方に対してチャネル１上で受信したインスタンスと同一であるかどうかチェックする（ブロック１０１８）。同一の場合、現在のノード１０２は、複製判別計算の実行用に、何れかのインスタンスを選択する（ブロック１０２０）。一実施形態において、１つのチャネルを好むバイアスがある。現在のノード１０２は、その他のメンバーノード１０２によって生成されたシンドロームを使用して、現在のペア７００のその他のメンバーノード１０２によってチャネル０上で受信されたインスタンスが、その他のノード１０２によってチャネル１上で受信されたインスタンスと同一であるかどうか判別する。
【０１００】
現在のノード１０２およびその他のメンバーノード１０２の双方が、同じチャネルから送信されたフレームのインスタンスを整合性を伴って受信せず、かつ現在のノード１０２およびその他のメンバーノード１０２がチャネル０および１上で同一のインスタンスを受信しなかった場合、現在のノード１０２は、アプリケーション依存のデフォルトアクションを実行する（ブロック１０１２）。図１０中に示される実施形態において、送信されたフレームのソースがシンプレックスソースであるとき、現在のノード１０２は、送信されたフレームのソースが自己チェックペア６００であるときに実行するのと同様のデフォルトアクションを実行する。他の実施形態において、送信されたフレームのソースがシンプレックスソースであるとき実行するデフォルトアクションは、送信されたフレームのソースが自己チェックペア６００であるとき、実行されるデフォルトアクションとは異なる。
【０１０１】
図７〜１０中に示される実施形態において、図１〜３のリング型伝播機能の暗黙的カバレッジと結合されたときのインスタンス選択機能は、自己チェックペア６００の２つのメンバーノード１０２が、複製判別計算を実行するときに、同一のデータ上で動作することを保証する。しかし、このようなアプローチは、ペア７００のメンバーノード１０２での局部的な内部障害を解決しない。例えば、履歴状態の破損（例えば、中性子誘発ビット反転(ｎｅｕｔｒｏｎ  ｉｎｄｕｃｅｄ  ｂｉｔ  ｆｌｉｐｓ)、あるいはシングルイベントアップセット）は、また計算一致性にも影響するかもしれない。このようなエラーを検出するために、一実施例においては、ペア７００のメンバーノード１０２の間で交換されるシンドロームは、履歴状態（あるいは他のデータ）のＣＲＣ（あるいは他のエラー検出および／または訂正コード）を含むように拡張される。ペア７００のメンバーノード１０２は、ＣＲＣ値を比較することによって、このようなエラーが発生したか判定するために交換されたＣＲＣデータを使用する。その様なエラーが発生すると、メンバーノード１０２は、即座のリカバリーアクション（たとえばロールバック、以前の履歴データが残っている場合、あるいは、再インテグレーション、あるいはモードの復帰）を実行することが可能である。具体的なリカバリアクションは、典型的アプリケーション依存である。
【０１０２】
前記履歴状態ＣＲＣ機能は、一実施例において、ペア７００の２つのメンバーノード１０２が電源投入時、首尾よく会合する（ｒｅｎｄｅｚｖｏｕｓ）ことを保証するために使用される。例えば、一実装例において、各メンバーノード１０２は、複製判別計算（あるいは他の処理）を始める前に、履歴状態が一致する（交換されたＣＲＣ値を介してチェックされる）まで待つ。他の実施形態においては、シンドロームは、他の情報を含む。例えば、このような別の一実施形態において、シンドロームは、ソフトウェアおよびバージョン識別子を含む。これらの識別子は、処理の電源投入時、例えば、ペア７００のメンバーノード１０２がその上で同じソフトウェアを実行している事を保証するために使用される。一旦ペア７００のメンバーノード１０２が同じ履歴状態（および／またはソフトウェア）を持っていることを照合すると、図７〜１０および図１〜３に関連して上述した機能は、計算開始時、メンバーノード１０２が複製判別法で適切に動作することを保証するように働く。
【０１０３】
図７の自己チェックペア７００が送信するとき、２つのメンバーノード１０２は、その同じフレームをネットワーク１００内の他のノード１０２へ送信しなければならない。最大限のカバレッジ（ｃｏｖｅｒａｇｅ）のため、ネットワーク１００内の他のノード１０２は、自己チェックペア７００からのフレームを受信することを検証する。図７〜１０中に示される実施形態において、このような検証は、図２〜６に関連して上述されたバスガーディアンならびに中継機能の中で提供される暗黙的チャネルカバレッジを使用しながら実行される。このような実施形態の一実装において、ネットワーク１００内の他のノード１０２は、いずれのソースから受信したフレームも同じ方法で処理されているので、（シンプレックスソースに対するのと反対に）自己チェックペアが、送信中であるということを認識する必要はない。しかし、このような動作のためのアプローチに関して、ペア７００のメンバーノード１０２からの送信は、適当かつ厳密に（すなわち、ネットワーク１００の予期される伝播中継内で）調整されていることが必要である。
【０１０４】
世界的に認められている耐障害性の時間基準の精度は多数ビットセル（１マイクロ秒から５マイクロ秒のオーダ）であり、ペアの２つのメンバー間のローカル会合（ｌｏｃａｌ  ｒｅｎｄｅｚｖｏｕｓ）が、要求される同期レベルを達成するために使用される。一実施形態においては、ダイレクトリンク１０８を使用する「ハルト―リリース（ｈａｌｔ−ｒｅｌｅａｓｅ）」プロトコルが使用される。このような実装において、自己チェックペア７００が送信するときに、ペア７００の「より速い」メンバーノード１０２は、割り当てられたタイムスロットのはじめにアイドル（ＩＤＬＥ）プリアンブルをまず送信する。より速いノード１０２が「より遅い」メンバーノード１０２が送信を開始することを検知するまで、より速いノード１０２は、そのアイドルプリアンブルを送信し続ける。より遅いノードは、より速いノード１０２の存在を検知しながら、最小のプリアンブルを送信する。それは速いノードにとって、それを検知し、より速いノードの実際の送信開始を調整するのに十分に長いプリアンブルである。一実装において、その精密な時間は、グローバルＴＤＭＡスケジュールテーブル内の適切なパラメータを使用したプライオリ（ｐｒｉｏｒｉ）を構成する。このアプローチ（あるいは同様のアプローチ）を使用すると、送信中の自己チェックペア７００の２つのメンバーノード１０２の間の時間差は、ネットワーク１００の予期される名目上の伝播遅延（例えば、約１から３ビットセル）内に厳密に調整可能である。自己チェックペア７００のメンバーノード１０２の送信を厳密に調整するため前記会合機能を実行することによって、ネットワーク１００の他のノード１０２で実装されるデスキューおよび比較機能は、ＦＩＦＯバッファサイズの増加を必要とせずに利用することができる。
【０１０５】
他の実施形態においては、純粋な自己チェックペアの構成に加えて、もしくはその代わりに、２つの隣り合ったノード１０２の間のダイレクトリンク１０８が、ローカルセンサデータのような他のデータタイプとの交換、および／または一致のために、これら２つの隣り合ったノード１０２間の「プライベート」チャネルとして使用される。このような実施形態において、完全な生のデータは、その２つの隣り合ったノード１０２の間で交換される。図９のタイムスロット９０２中のシンドロームの交換に関して、ネットワーク１００内の隣り合ったノード１０２の複数の異なるペアは、同じタイムスロットの間にセンサデータを交換することができる。
【０１０６】
また、他の実施形態において、他のハイブリッドな自己チェックペア組織が、ノード１０２のサブセットのみでタスクおよび／あるいは送信を複製判別方法で動作するように実装される。例えば、図９に関連して上述したように、図７〜１０に関連して上述した実施形態において、ノードＢおよびＦは、タイムスロット９０４および９０６内でペアＡ／ＢおよびＥ／Ｆのメンバーとしてそれぞれ送信し、タイムスロット９１６および９１８内でシンプレックスソースとして、それぞれ送信する。各「クリティカルな」送信は、グローバルなタイムスケジュール内で（例えば、ソースが自己チェックペアあるいはシンプレックスソースかどうか識別することによって）特徴付けられるので、隣り合ったノードの動作は、「バスガーディアン」から自己チェックペア７００のメンバーノード１０２へ、ラウンドツーラウンドおよび／あるいはスロットツースロットから変わる。例えば、ノードＡは、タイムスロット９０４の間、ペアＡ／Ｂのメンバーとして送信し、そしてタイムスロット９１６の間、ノードＢに対するバスガーディアンノードとして動作する。
【０１０７】
本明細書に記載のシステム、デバイス、方法、および技術は、さまざまなタイプのプロトコル（例えば、ＴＴＰ／ＣやＦＬＥＸＲＡＹなどのタイムトリガードプロトコル）を実装するノードにおいて実装することができる。図１１は、図１に示されているネットワーク１００のそれぞれのノード１０２を実装するのに適しているノード１１００の典型的な一実施形態を示すブロック図である。図１１に示されているノード１１００は、ＴＴＰ／Ｃプロトコルを実装している（ただし、本明細書に記載のシステム、デバイス、方法、および技術は、ＴＴＰ／Ｃプロトコルの代わりに、あるいはＴＴＰ／Ｃプロトコルに加えて、その他のプロトコルを使用して実装することもできるという点を理解されたい）。それぞれのノード１１００は、ホスト１１１０およびＴＴＰ／Ｃコントローラ１１１２を含む。ホスト１１１０は、ネットワーク１００を介してやり取りされるデータを提供するアプリケーションソフトウェア１１１４を実行する。例えば一実装形態においては、ホスト１１１０は、安全が決定的に重要となるコントロールアプリケーションを実行するコンピュータである。ホスト１１１０は、ＴＴＰ／Ｃコントローラ１１１２を使用して、通信ネットワーク１００内のその他のノード１０２と通信する。ＴＴＰ／Ｃコントローラ１１１２は、ＴＴＰ／Ｃプロトコルの機能を実施する。ＴＴＰ／Ｃプロトコルは、３つの基本的なサービスを、ホスト１１１０上で実行されるアプリケーションソフトウェア１１１４に提供する。ＴＴＰ／Ｃプロトコルは、決定論的なメッセージ送信、グローバルタイムベース、およびメンバーシップサービスを提供し、それによってそれぞれのノード１１００は、現在どのノードが送信を行っているかがわかる。
【０１０８】
ＴＴＰ／Ｃコントローラ１１１２は、ホスト１１１０と、ＴＴＰ／Ｃコントローラ１１１２のその他のコンポーネントとの間におけるインターフェースとして機能するＣＮＩ（ｃｏｍｍｕｎｉｃａｔｉｏｎ  ｎｅｔｗｏｒｋ  ｉｎｔｅｒｆａｃｅ）１１１６を含む。図１１に示されている実施形態においては、ＣＮＩ１１１６は、デュアルポートメモリ１１１８（ここでは、ＣＮＩメモリ１１１８とも呼ばれる）を使用して実装される。ＣＮＩメモリ１１１８は、ホスト１１１０によって、およびＴＴＰ／Ｃコントローラ１１１２内に含まれているＴＴＰ／Ｃコントローラユニット１１２０によってアクセスされる。このような実施形態の一実装形態においては、ＣＮＩメモリ１１１８は、ＳＲＡＭ（ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）を使用して実装される。バスインターフェース１１２２は、ＣＮＩメモリ１１１８を複数のバス１１２４（例えばデータバス、アドレスバス、および／またはコントロールバス）に結合し、これらのバス１１２４を介して、ホスト１１１０は、ＣＮＩメモリ１１１８との間においてデータの読み取りおよび書き込みを行う。その他の実施形態においては、ＣＮＩメモリ１１１８は、その他の方法で（例えば、シリアルインターフェースを使用して）アクセスされる。
【０１０９】
ＴＴＰ／Ｃコントローラユニット１１２０は、ＴＴＰ／Ｃプロトコルを実装するのに必要な機能を提供する。このような実施形態の一実装形態においては、ＴＴＰ／Ｃコントローラユニット１１２０は、プログラマブルプロセッサ（例えば、マイクロプロセッサ）を使用して実装され、このプログラマブルプロセッサは、ＴＴＰ／Ｃコントローラユニット１１２０によって実行される機能を実施するための命令と共にプログラムされる。このような実施形態においては、命令メモリ１１２６は、ＴＴＰ／Ｃコントローラユニット１１２０に結合される。ＴＴＰ／Ｃコントローラユニット１１２０によって実行されるプログラム命令は、プログラム命令メモリ１１２６内に格納される。一実装形態においては、プログラムメモリ１１２６は、読み取り専用のメモリデバイス、あるいはフラッシュメモリデバイスなどの不揮発性のメモリデバイスを使用して実装される。
【０１１０】
ＴＴＰ／Ｃコントローラ１１１２はまた、ＭＥＤＬ（ｍｅｓｓａｇｅ  ｄｅｓｃｒｉｐｔｏｒ  ｌｉｓｔ）メモリ１１２８を含み、ここには、ＴＤＭＡ（ｔｉｍｅ−ｄｉｖｉｓｉｏｎ  ｍｕｌｔｉｐｌｅ  ａｃｃｅｓｓ）スケジュール、動作モード、およびクロック同期化パラメータに関する構成情報が保存される。ＭＥＤＬメモリ１１２８は通常、例えばフラッシュメモリデバイスおよび／またはＳＲＡＭ（ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）デバイスを使用して実装される。ＣＮＩメモリ１１１８、プログラムメモリ１１２６、およびＭＥＤＬメモリ１１２８のサイズはいずれも、ホスト１１１０上で実行されるアプリケーションソフトウェア１１１４、ＴＴＰ／コントローラユニット１１２０上で実行されるプログラム命令、および／または（後述する）バスガーディアン１１３２の特定のニーズに基づいて選択される。さらに、ＣＮＩメモリ１１１８、プログラムメモリ１１２６、およびＭＥＤＬメモリ１１２８は、別々のコンポーネントとして図１１に示されているが、いくつかの実施形態においては、ＣＮＩメモリ１１１８、プログラムメモリ１１２６、および／またはＭＥＤＬメモリ１１２８は、１つまたは複数のメモリデバイスへと統合される。
【０１１１】
単一のバスガーディアン１１３２は、ＴＴＰ／Ｃコントローラ１１１２とリンク１１０８の間におけるインターフェースとして機能する。図１１に示されている実施形態の一実装形態においては、バスガーディアン１１３２は、例えば１つまたは複数のＵＡＲＴ（ｕｎｉｖｅｒｓａｌ  ａｓｙｎｃｈｒｏｎｏｕｓ  ｒｅｃｅｉｖｅｒ／ｔｒａｎｓｍｉｔｔｅｒ）デバイスを含み、この１つまたは複数のＵＡＲＴデバイスは、図１に示されているシリアルな、一方向性のポイントツーポイントの、一方向性のリンク１０８からデータを受信して、そうしたリンク１０８を介してデータを送信および中継するために使用される。
【０１１２】
バスガーディアン１１３２によってリンク１０８から受信されるデータは、ＴＴＰ／Ｃプロトコルに従って処理するためにＴＴＰ／Ｃコントローラ１１１２へ渡される。ＴＴＰ／Ｃコントローラ１１１２によって送信されることになるデータは、ＴＴＰ／Ｃコントローラユニット１１２０によってバスガーディアン１１３２へ渡される。バスガーディアン１１３２は、ＴＴＰ／Ｃコントローラ１１１２がリンク１０８上における送信をいつ許可されるか、およびリンク１０８から受信されたデータをいつ中継するかを決定する。一実装形態においては、バスガーディアン１１１２は、図２および３に関連して前述した機能の少なくとも一部を実装する。バスガーディアン１１３２は、データをいつ送信および中継するかを判断するために、ＴＴＰ／Ｃコントローラ１１２０のＭＥＤＬメモリ１１２８内に保存されているＭＥＤＬ情報にアクセスする。したがって、それぞれのノード１０２内に含まれるバスガーディアン１１３２は、そのノード１０２にとって、およびそのノードの両隣のそれぞれにとって、バスガーディアン１１３２として機能する。このようにして、それぞれのノード１０２内の単一のバスガーディアン１１３２を使用するだけで、ネットワーク１００内のノード１０２に関して、複数のバスガーディアンに関連付けられているフォルトトレランスを達成することができる。
【０１１３】
ＴＴＰ／Ｃコントローラ１１１２およびバスガーディアン１１３２は、別々のコンポーネントとして図１１に示されているが、このような実施形態の一実装形態においては、ＴＴＰ／Ｃコントローラ１１１２およびバスガーディアン１１３２によって提供される機能は、単一の集積回路デバイスへ統合されるということを理解されたい。このような実装形態においては、さらなるリソースの節約（例えばコスト、スペース、および電力）を達成することができる。このような一実装形態においては、プログラマブルプロセッサは、適切なプログラム命令と共にプログラムされ、この適切なプログラム命令は、プログラマブルプロセッサによって実行されると、ＴＴＰ／Ｃコントローラ１１１２およびバスガーディアン１１３２によって実行されるものとしてここで説明されている機能の少なくとも一部を実行する。その他の実施形態および実装形態においては、ＴＴＰ／Ｃコントローラ１１１２（あるいはその１つまたは複数のコンポーネント）およびバスガーディアン１１３２（あるいはその１つまたは複数のコンポーネント）は、別々のコンポーネントを使用して実装される。
【０１１４】
本明細書に記載のシステム、デバイス、方法、および技術は、図１に示されている特定の編組リング型のトポロジ以外のネットワークトポロジを有するネットワーク内に実装することができる。例えば、本明細書に記載のシステム、デバイス、方法、および技術の少なくとも一部は、ネットワークのさまざまなノードの間において提供されるノード間の接続がさらに多いネットワーク内に実装することができる。このようなネットワークの一例が、「メッシュ型の」ネットワークである。このようなメッシュ型の実施形態の一例においては、それぞれのノードは、（「完全な」メッシュ型のネットワークトポロジの場合には）ネットワーク１００内における他のすべてのノードへ、あるいは（「部分的な」メッシュ型のネットワークトポロジの場合には）ネットワーク内における他のノードのサブセットへ通信可能に結合される。このようなそれぞれのノードごとに、およびこのようなメッシュ型のネットワーク内において定義される所与のチャネル内のデータの所与のフローごとに、そのノードが結合されるノードの少なくとも１つのサブセットが、そのノードにとっての受信元ノードとして指定され、そのノードが結合されるノードの少なくとも１つのサブセットが、送信先ノードとして指定される。
【０１１５】
さらに、本明細書に記載のシステム、デバイス、方法、および技術の少なくとも一部は、ネットワークのさまざまなノードの間において提供されるノード間の接続がさらに少ないネットワーク内に実装することができる。このようなネットワークの一例が、２つの「シンプレックス」リングチャネルを含むネットワークである。このような一実装形態は、図１に示されている方法で実装されるが、それぞれのノードをその時計方向の隣の隣および反時計方向の隣の隣へ通信可能に結合するスキップリンクは存在しない。例えば方法３００の実施形態は、このようなシンプレックスリング型ネットワーク内において使用するのに適している。
【０１１６】
さらに、本明細書に記載のさまざまなシステム、デバイス、方法、および技術は、単一のネットワーク内にすべて一緒に実装する必要はなく、このようなシステム、デバイス、方法、および技術のさまざまな組合せを実装することができるという点を理解されたい。
【０１１７】
本明細書に記載の方法および技術は、デジタル電子回路内に、あるいはプログラマブルプロセッサ（例えば専用プロセッサや、コンピュータなどの汎用プロセッサ）、ファームウェア、ソフトウェア、またはそれらの組合せと共に実装することができる。これらの技術を具体化する装置は、適切な入力デバイスおよび出力デバイスと、プログラマブルプロセッサと、そのプログラマブルプロセッサによって実行するためのプログラム命令を目に見える形で具体化するストレージメディアとを含むことができる。これらの技術を具体化するプロセスは、入力されたデータ上で動作して適切な出力を生成することによって所望の機能を実行するための命令のプログラムを実行するプログラマブルプロセッサによって実行することができる。これらの技術は、有利なことに、データストレージシステムからデータおよび命令を受信するために、ならびにデータストレージシステムへデータおよび命令を送信するために結合されている少なくとも１つのプログラマブルプロセッサと、少なくとも１つの入力デバイスと、少なくとも１つの出力デバイスとを含むプログラマブルシステム上で実行可能な１つまたは複数のプログラム内に実装することができる。一般にプロセッサは、読み取り専用メモリおよび／またはランダムアクセスメモリから命令およびデータを受け取ることになる。コンピュータプログラム命令およびデータを目に見える形で具体化するのに適したストレージデバイスとしては、例えばＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵型のハードディスクおよび取り外し可能なディスクなどの磁気ディスク、光磁気ディスク、ならびにＤＶＤディスクを含むすべての形態の不揮発性メモリが含まれる。これらのいずれも、特別に設計されたＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）によって補強するか、あるいはそうしたＡＳＩＣ内に組み込むことができる。
【０１１８】
添付の特許請求の範囲によって定義される本発明の複数の実施形態について説明した。これにかかわらず、特許請求される本発明の趣旨および範囲から逸脱することなく、説明した実施形態に対するさまざまな修正を行うことができるということが理解できるであろう。したがって、その他の実施形態は、添付の特許請求の範囲内に収まるものである。
【図面の簡単な説明】
【０１１９】
【図１】通信ネットワークの一実施形態を示すブロック図である。
【図２】図１のネットワーク内においてデータを送信する方法の一実施形態を示す流れ図である。
【図３−Ａ】図１のネットワーク内においてデータを中継する方法の一実施形態を示す流れ図である。
【図３−Ｂ】図１のネットワーク内においてデータを中継する方法の一実施形態を示す流れ図である。
【図４−Ａ】図１のネットワーク内においてデータを中継する方法の一実施形態を示す流れ図である。
【図４−Ｂ】図１のネットワーク内においてデータを中継する方法の一実施形態を示す流れ図である。
【図５】一例においては、図３および４Ａ〜４Ｂに示されている方法の比較および中継処理を実施するために使用されるノードの論理コンポーネントを示すブロック図である。
【図６】このようなノードが同期化モードで動作している間に図１のネットワーク内において発生する間抜けなタイミングでのでしゃばりな送信による障害の一例を示すブロック図である。
【図７】自己チェックペアを実装するために、アプリケーションレイヤで構成される図１のネットワークの一実施形態のブロック図である。
【図８】自己チェックペアのメンバーによって実行される上位レイヤ処理の少なくとも一部を実装する方法の一実施形態のフロー図である。
【図９】図７のネットワークに対するＴＤＭＡスケジュールの一例を示す図である。
【図１０】図７の自己チェックペアによって実行される複製判別計算で使用するための送信されたフレームのインスタンスを選択する方法の一実施形態のフロー図である。
【図１１】図１に示されているネットワークのそれぞれのノードを実装するのに適しているノードの一実施形態を示すブロック図である。
【図１２】図１のネットワーク内における方向的な整合性を検知する方法の一実施形態を示す流れ図である。
【図１】
2008523726.tif 000003
【図２】
2008523726.tif 000004
【図３−Ａ】
2008523726.tif 000005
【図３−Ｂ】
2008523726.tif 000006
【図４−Ａ】
2008523726.tif 000007
【図４−Ｂ】
2008523726.tif 000008
【図５】
2008523726.tif 000009
【図６】
2008523726.tif 000010
【図７】
2008523726.tif 000011
【図８】
2008523726.tif 000012
【図９】
2008523726.tif 000013
【図１０】
2008523726.tif 000014
【図１１】
2008523726.tif 000015
【図１２】
2008523726.tif 000016
【国際調査報告】
2008523726.tif 000017
2008523726.tif 000018
2008523726.tif 000019