Pragmatic General Multicast ( PGM ) は、信頼性の高いマルチキャストコンピュータ ネットワーク トランスポート プロトコルです。PGM は、信頼性の高いパケット シーケンスを複数の受信者に同時に提供するため、複数の受信者によるファイル転送などのアプリケーションに適しています。
マルチキャストは、ネットワークの各リンクでメッセージを 1 回だけ配信し、複数の宛先へのリンクが分割された場合にのみコピーを作成するという最も効率的な戦略を使用して、情報を宛先のグループに同時に配信するネットワーク アドレス指定方法です (通常はネットワークスイッチとルーター)。ただし、ユーザー データグラム プロトコルと同様に、マルチキャストではメッセージ ストリームの配信が保証されません。メッセージは、ドロップされたり、複数回配信されたり、順序どおりに配信されなかったりする場合があります。PGMなどの信頼性の高いマルチキャストプロトコルでは、受信者が失われたメッセージや順序どおりに配信されていないメッセージを検出して修正アクションを実行できる機能が追加されています (原理的にはTCPと同様)。これにより、ギャップのない順序どおりのメッセージ ストリームが実現します。
TCP は ACK を使用して送信されたパケットのグループを確認しますが (マルチキャストでは非経済的です)、PGM は否定確認応答(NAK) の概念を使用します。特定のシーケンスのデータ損失が検出されるたびに、定義されたネットワーク レイヤー ホップバイホップ プロシージャを介して NAK がホストにユニキャストで返送されます。PGM は整合性のために NAK に大きく依存しているため、NAK が送信されると、ホップごとに NAK 確認(NCF) がマルチキャストで送信されます。その後、修復データ(RDATA) が送信元から、または宛先に近い場所にある指定ローカル修復装置 (DLR) から返送されます。
PGM はIETF の実験的なプロトコルです。まだ標準ではありませんが、 Windows XP以降のバージョンのMicrosoft Windowsを含む一部のネットワーク デバイスとオペレーティング システム、およびLinux、Windows、Solaris用のサードパーティ ライブラリに実装されています。
外部リンク
- https://tools.ietf.org/html/rfc3208
- https://github.com/steve-o/openpgm/
- https://web.archive.org/web/20110111200232/http://www.cisco.com/en/US/docs/ios/12_0t/12_0t5/feature/guide/pgmscale.html
