Gossip Protocol : アーキテクチャ、動作、およびそのアプリケーション

問題を排除するために楽器を試してください





大規模なネットワーク (ブロックチェーン) を介したデータ転送は、困難な作業です。大規模なネットワークを介して無数のノードに同様のデータを送信するには、大量の処理能力が必要です。作成に時間がかかり、最終目的地に到達するとデータ値が頻繁に制限されます。そのため、ゴシップ プロトコルは、2 人が 1 杯のお茶について噂話をしているのと同じように、あるノードから別のノードにデータを提供できるようにすることで、この問題を克服します。この記事では、 通信プロトコル お気に入り ゴシッププロトコル – アプリケーションの操作。


ゴシッププロトコルとは?

Gossip プロトコルのような通信プロトコルは、分散システム内での状態共有を単純に許可します。最新のシステムは、このピアツーピア プロトコルを利用して、クラスタまたはネットワーク内のすべてのメンバーに情報を配布します。この種のプロトコルは、すべてのノードを追跡し、ノードがダウンしているかどうかを知るために、中央ノードを含まない分散システム内で使用されます。



Gossip Protocol は、ソーシャル ネットワーク上でデータが送信される方法と同様の原則に基づいて機能します。現在、最新のシステムのほとんどは、これらのプロトコルを頻繁に使用して、構造内の問題が非常に大きいため、またはゴシップ ソリューションが利用可能な最も効率的なソリューションであるために、他の方法では解決が困難な問題を解決しています。

ゴシップ プロトコル アーキテクチャ

ゴシップ プロトコルの実装 Apache Cassandra データベース内で実行できます。ここでは、このプロトコル、Cassandra がノード間の調整を実現する方法、およびこれらのノードが同期を維持する方法について説明します。 Cassandra データベースでは、すべてのノードが類似しており、ピア ツー ピア アーキテクチャを備えており、マスター ツー スレーブ ノードの概念はありません。



  ゴシップ プロトコル アーキテクチャ
ゴシップ プロトコル アーキテクチャ

ゴシップは、Cassandra ノードと仮想ノードがデータを相互に信頼できるものにするために利用するメッセージ システムです。そのため、クラスタ内でレプリケーション ファクタを実装するために使用されます。したがって、すべてのノードがデータベース内のすべてのテーブルの特定の区分を含み、それらが隣接するノードとのみ通信できるリング システムのような Cassandra クラスターを想像してみましょう。

Cassandra がノード間の調整をどのように達成するかを見てみましょう。では、クラスター内に 1 から 6 までの 6 つのノードを含む例を見てみましょう。上記のクラスターでは、node3 がダウンしていることがわかります。そのため、ノードがダウンすると、定期的なメッセージの送信が停止し、他のすべての人がすぐにわかります。

ゴシッププロトコルでは、 ネットワークノード 自分自身と自分が知っている追加ノードに関する状態情報を定期的に交換します。このプロトコルは毎秒実行され、クラスター内の最大 3 つの他のノードと状態メッセージを交換します。

ゴシップ プロトコルは Cassandra 内で非常に役立ちます。ノードは、ノード自体と、噂されている残りのノードに関するデータを交換するためです。その結果、クラスター内のすべてのノードは、残りのノードについてすばやく学習します。

ゴシッププロトコルはどのように機能しますか?

一般に、このプロトコルにより、すべてのノードがクラスター内の他のノードの状態情報を継続的に追跡できます。たとえば、どのノードにアクセスできるか、どのキー範囲に責任があるかなどです。クラスター内のノードは状態情報を送信して、同期して待機します。ゴシップ プロトコルは、ノードが自分自身と自分が知っている他のノードに関する状態情報を定期的に交換するピア ツー ピア通信メカニズムです。

すべてのノードは毎秒ゴシップ ラウンドを開始し、それ自体と他のノードに関する状態情報を別の偶発的なノードと交換します。そのため、新しい発生が最終的にシステム全体に伝播し、すべてのノードがクラスター内の他のすべてのノードについて迅速に学習します。

ゴシッププロトコルの種類

ゴシップ プロトコルは、普及、反エントロピー、および以下で説明する集計を計算するプロトコルの 3 つのタイプで利用できます。

普及プロトコル

普及プロトコルは、ネットワークを介して情報を広めるためにゴシップを利用するため、噂を広めるプロトコルとも呼ばれます。これらは、ブロックチェーンに使用される最も粗いタイプのゴシップ プロトコルです。これらのプロトコルが、短時間で多くのノードにデータを取得するのに適している場合、途中でデータが破損したり、簡単に変更されたりする可能性があります。

反エントロピー プロトコル

これらの種類のゴシップ プロトコルは、主に、比較を変更するだけでなく、それらを評価して重複データを修正するために使用されます。これらのプロトコルの主な目的は、データが正しいことを確認するためにデータを評価して変更することにより、ノード間を移動するときにデータへの変更を減らすことです。

集計を計算するプロトコル

これらのプロトコルは集約プロトコルとも呼ばれ、ノードでデータをサンプリングしてネットワークの集約を機能または計算し、値を結合してシステム全体の値を取得します。これらのタイプのプロトコルはアンチエントロピー プロトコルに関連していますが、送信されるデータの個別の要素を各ノードに送信し、その後データをノード間で共有して全体像を作成するという考えに基づいて構築されています。

ゴシップ プロトコル アルゴリズム

ゴシップ アルゴリズムは、ゴシップに基づいて構築された非同期データ交換プロトコルです。それ以外の場合、噂スタイルは信頼できません。非常にシンプルで幅広い適用性があるため、このアルゴリズムは、特に次の世代のネットワークでは、標準的なアーキテクチャ ソリューションとして登場しています。

ゴシップ プロトコル アルゴリズムでは、ネットワーク内のすべてのノードがノードのサブセットと定期的に情報を交換します。通常、このサブセットは各ノードの隣接ノードのセットです。各ノードには、ローカル ネットワーク ビューのみがあります。すべてのノードは、特定の番号全体で必要なユニバーサル データを取得します。ノードの定期的な更新の。

長所と短所

ゴシッププロトコルの利点 以下のものが含まれます。

  • これらのプロトコルは非常にスケーラブルです。
  • このプロトコルのすべてのノードは同じように動作し、互いに異なる機能や特別な機能はありません。単一または複数のノード内で障害が発生すると、ネットワーク内の他のノードのデータ配信が中断されたり、影響を受けたりすることはありません。同様に、ノードは、機能に影響を与えることなく、制限なくペア間でネットワークを通過したり、ネットワークから離れたりすることができます。
  • これらのプロトコルは、完全に自律的で分散化された方法でデータを配布します。
  • これらのタイプのプロトコルには、ノードがピア ネットワーク内の多くのノードとデータを共有および配布する機能があるため、正しく機能する機能があります。

ゴシッププロトコルの欠点 以下のものが含まれます。

  • これらのプロトコルは、ネットワーク内のノードが障害の発生を中断することなく継続的に動作できるようにすることで、システムに強度を提供します。
  • 冗長性が高いと最大帯域幅が必要になるため、ネットワーク ジャミングが発生する可能性があります。

アプリケーション

ゴシッププロトコルの適用 以下のものを含めます。

  • ゴシップ プロトコルは、主にマルチキャストによって発生した問題を修正するために使用されます。
  • これは、ゴシップの一部またはこの状態の情報が、ネットワーク内の 1 つまたは複数のノードから他のノードのセットに送信される通信の一種です。
  • これらのプロトコルは、データを迅速かつ確実に配信するために、さまざまな配信ネットワークで使用されています。
  • これらは、マイニングノード全体に不定値を分散させるためにビットコインによって使用されます。
  • これらは主に、ネットワークのすべてのノードが情報を取得し、メタデータの配布に役立つペアリングを発見できる通信チャネルを作成するために使用されます。
  • ゴシップ プロトコルは、Ripples データベースでリングの状態と機能に関する情報を送信するために使用されます。
  • Dynamo は Gossip プロトコルを使用してメンバーシップを追跡します。これにより、新しいプログラム参加者を発見したり、不具合を観察したりできます。
  • これらのプロトコルは、サービス ネットワーク Consul で、ネットワークの故障の新しいメンバーの検出と識別の両方に使用されます。
  • Consul ネットワークはこれらのプロトコルを使用して、ネットワーク内の新しいサービスとイベントに関する情報を安全かつ迅速に中継します。

したがって、これはすべてについてです ゴシッププロトコルの概要 – アプリケーションの操作。ゴシップ プロトコルは効果的であるため、ゴシップ プロトコルの障害検出は、分散システムや大規模システムで非同期に簡単に行うことができます。 Gossip Protocol の例とは何ですか?