(57)【特許請求の範囲】
【請求項１】
ネットワークの複数のワークステーションへメッセージをマルチキャストするシステムにおいて、
ネットワーク内でのマルチキャストメッセージの送信及び受信に使用する複数のパラメータを含んだＭＤＰデータベーステーブルと、
複数のパラメータをＭＤＰデータベーステーブルから読み出して、複数のサーバ内で該複数のパラメータを使用してＭＤＰセッションを初期化するＭＤＰサーバ初期化モジュールと、
複数のパラメータをＭＤＰデータベーステーブルから読み出して、複数のワークステーション内で該パラメータを使用してＭＤＰセッションを初期化するＭＤＰクライアント初期化モジュールと、
メッセージの送信の要求を受信し、各メッセージに関するＭＤＰ情報パケットを生成し、且つ、メッセージをＭＤＰ情報パケットで指定された各受信人へ送信するＭＤＰサーバオペレーションモジュールと、
ＭＤＰサーバオペレーションモジュールにより送信されたメッセージを受信し、且つ、メッセージを高位レベルのソフトウェアアプリケーションへ送信するＭＤＰクライアントオペレーションモジュールと
を備え、
ＭＤＰサーバ初期化モジュールにより読みだされる複数のパラメータは、初期ＧＲＴＴ値と、リカバリーサイクルと、サーバ補償ファクタと、ブロックサイズと、セグメントサイズとを含み、
ＭＤＰサーバオペレーションモジュールは、リカバリーサイクル、初期ＧＲＴＴ値、サーバ補償ファクタ、ブロックサイズ及びセグメントサイズに基づいてサーバスケルチ値を算出するよう構成され、
サーバは、サーバスケルチ時間が満了すると、メッセージの修正を試みることを停止することを特徴とするシステム。
【請求項２】
請求項１記載のシステムにおいて、ＭＤＰサーバ初期化モジュールは、初期起動時にＧＲＴＴプロービングを起動し、ＧＲＴＴプロービングが、ネットワーク上の複数のワークステーションへ周期的にメッセージを送信すると共に、応答を受信するのに必要な時間を測定するよう構成され、
ＭＤＰサーバ初期化モジュールは、サーバスケルチ時間が満了した時に、ＧＲＴＴプロービングを停止すると共に、メッセージを待ち行列から取り出すことを特徴とするシステム。
【請求項３】
請求項２記載のシステムにおいて、ＭＤＰサーバ初期化モジュールにより読みだされる複数のパラメータは、初期ＧＲＴＴ値、最大ＧＲＴＴ値、ＧＲＴＴプローブ最小間隔値、及びＧＲＴＴプローブ最大間隔値を含んでいることを特徴とするシステム。
【請求項４】
請求項３記載のシステムにおいて、ＭＤＰサーバオペレーションモジュールは更に、
ＧＲＴＴプローブを生成して、サーバと複数のワークステーションの各ワークステーションとの間の最大ラウンドトリップ時間を測定し、且つ、ＭＤＰデータベーステーブルに記憶されたＧＲＴＴ初期値を更新する手段
を備えることを特徴とするシステム。
【請求項５】
請求項４記載のシステムにおいて、ＧＲＴＴプローブ最小間隔値で始動すると共に、ＧＲＴＴプローブの送信間の間隔を、該間隔がＧＲＴＴプローブ最大間隔値に等しくなるまで増大させる複数のワークステーションの各ワークステーションへ、ＧＲＴＴプローブが周期的に送信されるよう構成されていることを特徴とするシステム。
【請求項６】
請求項１記載のシステムにおいて、ＭＤＰサーバオペレーションモジュールは、サーバスケルチ時間が満了すると、メッセージを待ち行列から取り出すよう構成されていることを特徴とするシステム。
【請求項７】
請求項１記載のシステムにおいて、ＭＤＰクライアント初期化モジュールは、ストリーム一体性値及びナッキングモード値をＭＤＰデータベースから読み出すよう構成されていることを特徴とするシステム。
【請求項８】
請求項７記載のシステムにおいて、ＭＤＰクライアントオペレーションモジュールは、ＭＤＰ情報パケットのフィールドが、ＭＤＰクライアントオペレーションモジュールが実行されるワークステーションが情報クライアントである旨の指示をしている場合に、欠落要素のあるメッセージが受信されたときに否定応答を送信しないよう構成されていることを特徴とするシステム。
【請求項９】
請求項８記載のシステムにおいて、ＭＤＰクライアントオペレーションモジュールは、ＭＤＰ情報パケットが、ＭＤＰクライアントオペレーションモジュールが実行されるワークステーションがアクションクライアントである旨の指示をしている場合に、欠落要素のあるメッセージが受信されたときに否定応答を送信するよう構成されていることを特徴とするシステム。
【請求項１０】
請求項９記載のシステムにおいて、ＭＤＰクライアントオペレーションモジュールは、メッセージサイズ及び最大送信速度に基づいてメッセージ遅延時間を算出し、且つ、ＭＤＰ情報パケットを受信してからメッセージ遅延時間に等しい時間、待機するよう構成されていることを特徴とするシステム。
【請求項１１】
請求項１０記載のシステムにおいて、ＭＤＰクライアントオペレーションモジュールは更に、
クライアントスケルチ時間を算出する手段と、
クライアントスケルチ時間が満了した時に、メッセージの受信を終了する手段と
を備えることを特徴とするシステム。
【請求項１２】
ネットワークの複数のワークステーションへメッセージをマルチキャストするための、コンピュータで読み出し可能な媒体に記憶されたコンピュータにより実行可能なコンピュータプログラムにおいて、
ネットワーク内でのマルチキャストメッセージの送信及び受信に使用する複数のパラメータを備えたＭＤＰデータベーステーブルと、
複数のパラメータをＭＤＰデータベーステーブルから読み出して、複数のサーバ内で該複数のパラメータを使用してＭＤＰセッションを初期化するＭＤＰサーバ初期化コードセグメントと、
複数のパラメータをＭＤＰデータベーステーブルから読み出して、複数のワークステーション内で該パラメータを使用してＭＤＰセッションを初期化するＭＤＰクライアント初期化コードセグメントと、
メッセージの送信要求を受信し、各メッセージのＭＤＰ情報パケットを生成し、且つ、ＭＤＰ情報パケットで指定された各受信人へメッセージを送信するＭＤＰサーバオペレーションコードセグメントであって、ＭＤＰ情報パケットは、ＭＤＰクライアントオペレーションモジュールが実行されるワークステーションが情報クライアント又はアクションクライアントの何れかである旨の指示し、アクションクライアントは、欠落要素のあるメッセージが受信されたときに否定応答を送信し、情報クライアントは、メッセージを受動的に受信して否定応答を送信しない、ＭＤＰサーバオペレーションコードセグメントと、
ＭＤＰサーバオペレーションコードセグメントにより送信されたメッセージを受信し、且つ、メッセージを高位レベルのソフトウェアアプリケーションへ送信するＭＤＰクライアントオペレーションコードセグメントと
を備えることを特徴とするコンピュータプログラム。
【請求項１３】
請求項１２記載のコンピュータプログラムにおいて、ＭＤＰサーバ初期化コードセグメントは、初期起動と同時にＧＲＴＴプロービングを起動し、ＧＲＴＴプロービングは、ネットワーク上の複数のワークステーションへ周期的にメッセージを送信すると共に、応答を受信するのに必要な時間を測定するよう構成されていることを特徴とするコンピュータプログラム。
【請求項１４】
請求項１３記載のコンピュータプログラムにおいて、ＭＤＰサーバ初期化コードセグメントにより読みだされる複数のパラメータは、初期ＧＲＴＴ値、最大ＧＲＴＴ値、ＧＲＴＴプローブ最小間隔値、及びＧＲＴＴプローブ最大間隔値を含み、ＭＤＰサーバオペレーションコードセグメントは、サーバスケルチ時間が満了した時に、ＧＲＴＴプロービングを停止すると共に、メッセージを待ち行列から取り出すことを特徴とするコンピュータプログラム。
【請求項１５】
請求項１４記載のコンピュータプログラムにおいて、ＭＤＰサーバオペレーションコードセグメントは更に、
ＧＲＴＴプローブを生成して、サーバと複数のワークステーションの各ワークステーションとの間の最大ラウンドトリップ時間を測定し、且つ、ＭＤＰデータベーステーブル中に記憶されたＧＲＴＴ初期値を更新する手段
を実行するよう構成されていることを特徴とするコンピュータプログラム。
【請求項１６】
請求項１５記載のコンピュータプログラムにおいて、ＧＲＴＴプローブ最小間隔値で始動すると共に、ＧＲＴＴプローブの送信間の間隔を該間隔がＧＲＴＴプローブ最大間隔値に等しくなるまで増大させる複数のワークステーションの各ワークステーションへ、ＧＲＴＴプローブが周期的に送信されるよう構成されていることを特徴とするコンピュータプログラム。
【請求項１７】
請求項１２記載のコンピュータプログラムにおいて、ＭＤＰサーバ初期化コードセグメントにより読みだされる複数のパラメータは、初期ＧＲＴＴ値と、リカバリーサイクルと、サーバ補償ファクタと、ブロックサイズと、セグメントサイズとを含んでいることを特徴とするコンピュータプログラム。
【請求項１８】
請求項１７に記載のコンピュータプログラムにおいて、ＭＤＰサーバオペレーションコードセグメントは、リカバリーサイクル、初期ＧＲＴＴ値、サーバ補償ファクタ、ブロックサイズ、及びセグメントサイズに基づいてサーバスケルチ値を算出するよう構成されていることを特徴とするコンピュータプログラム。
【請求項１９】
請求項１８記載のコンピュータプログラムにおいて、ＭＤＰサーバオペレーションコードセグメントは、サーバスケルチ時間が満了すると、メッセージを待ち行列から取り出すよう構成されていることを特徴とするコンピュータプログラム。
【請求項２０】
請求項１６記載のコンピュータプログラムにおいて、ＭＤＰサーバオペレーションコードセグメントは更に、
サーバスケルチ時間を算出する手段
を備えていることを特徴とするコンピュータプログラム。
【請求項２１】
請求項１２記載のコンピュータプログラムにおいて、ＭＤＰクライアント初期化コードセグメントが、ストリーム一体性値及びナッキングモード値をＭＤＰデータベースから読み出すよう構成されていることを特徴とするコンピュータプログラム。
【請求項２２】
請求項２１記載のコンピュータプログラムにおいて、ＭＤＰクライアントオペレーションコードセグメントは、ＭＤＰ情報パケットのフィールドが、ＭＤＰクライアントオペレーションコードセグメントが実行されるワークステーションが情報クライアントである旨の指示をしている場合、欠落要素のあるメッセージが受信されたときに否定応答を送信しないよう構成されていることを特徴とするコンピュータプログラム。
【請求項２３】
請求項２２記載のコンピュータプログラムにおいて、ＭＤＰクライアントオペレーションコードセグメントは、ＭＤＰ情報パケットが、ＭＤＰクライアントオペレーションコードセグメントが実行されるワークステーションがアクションクライアントである旨の指示をしている場合、欠落要素のあるメッセージが受信されたときに否定応答を送信するよう構成されていることを特徴とするコンピュータプログラム。
【請求項２４】
請求項２３記載のコンピュータプログラムにおいて、ＭＤＰクライアントオペレーションコードセグメントは、メッセージサイズ及び最大送信速度に基づいてメッセージ遅延時間を算出し、且つ、ＭＤＰ情報パケットを受信してからメッセージ遅延時間に等しい時間、待機するよう構成されていることを特徴とするコンピュータプログラム。
【請求項２５】
請求項２４記載のコンピュータプログラムにおいて、ＭＤＰクライアントオペレーションコードセグメントは更に、
クライアントスケルチ時間を算出する手段と、
クライアントスケルチ時間が満了した時にメッセージの受信を終了する手段と
を備えることを特徴とするコンピュータプログラム。
【請求項２６】
ネットワーク上の複数のワークステーションへメッセージをマルチキャストする方法において、
サーバ上でのマルチキャストメッセージの送信を初期化し制御するために、ＭＤＰデータベースから複数のパラメータを呼出すステップと、
ワークステーションでのマルチキャストメッセージの受信を初期化し制御するために、ＭＤＰデータベースから複数のパラメータを呼出すステップと、
メッセージ遅延時間が、マルチキャストメッセージを送信するのに算出した時間を超えないか、又は、マルチキャストメッセージに含まれている消滅時間を超えない時に、複数のワークステーションへマルチキャストメッセージを送信するステップと、
ワークステーションが、マルチキャストメッセージ内のデータが欠落していると判断した時、且つ、ワークステーションが、ＭＤＰ情報パケット内に含まれたフィールド内のアクションワークステーションとして指定されていた時に、サーバへ否定応答を送信するステップと、
ワークステーションが、マルチキャストメッセージ内のデータが欠落していると判断した時、且つ、ワークステーションが、ＭＤＰ情報パケット内に含まれたフィールド内の情報ワークステーションとして指定されていた時に、マルチキャストメッセージを受動的に受信するステップと
を備えることを特徴とする方法。
【請求項２７】
請求項２６記載の方法において、マルチキャストメッセージを複数のワークステーションへ送信する時に、ＧＲＴＴプローブも、複数のワークステーションへ周期的に送信されて、メッセージがワークステーションに受信されてから応答がサーバへ送信されて戻るのにかかる最大ラウンドトリップ時間を決定するよう構成されていることを特徴とする方法。
【請求項２８】
請求項２７記載の方法において、最大ラウンドトリップ時間を決定する時に、該方法は更に、
最大ラウンドトリップ時間に基づいて、ＭＤＰデータベース中に記憶された複数のパラメータを調整するステップ
を備えることを特徴とする方法。
【請求項２９】
請求項２７に記載の方法において、該方法は更に、
ＭＤＰデータベースから検索されたパラメータに基づいて、サーバスケルチ時間を算出するステップと、
サーバスケルチ時間が、消滅時間を超える場合には、サーバスケルチ時間を消滅時間と等しく設定するステップ
を備えることを特徴とする方法。
【請求項３０】
請求項２９記載の方法において、該方法は更に、
サーバスケルチ時間を超えた時に、マルチキャストメッセージを監視してワークステーションが送信する受信すべき否定応答を監視するステップ
を備えることを特徴とする方法。
【請求項３１】
請求項３０記載の方法において、該方法は更に、
マルチキャストメッセージ内の全てのデータが受信されず、且つ、サーバスケルチ時間を超えない場合に、ワークステーションから否定応答を受信したときにマルチキャストメッセージの一部を再送信するステップ
を備えることを特徴とする方法。
【請求項３２】
請求項３１記載の方法において、該方法は更に、
ＭＤＰデータベース内に記憶された複数のパラメータに基づいてクライアントスケルチ時間を算出するステップと、
マルチキャストメッセージの一部がワークステーションに受信されず、且つ、スケルチ時間を超えない場合に、否定応答を送信するステップ
を備えることを特徴とする方法。
【請求項３３】
請求項３２記載の方法において、送信可能なメッセージの一部がワークステーションに受信されていない場合の否定応答の送信は、ワークステーションが、ＭＤＰ情報パケット内のアクションワークステーションとして指定された時にのみ生じるよう構成されていることを特徴とする方法。
【請求項３４】
請求項３３記載の方法において、Ｔｒｃは、５*ＧＲＴＴ、Ｎは、ワークステーションがサーバに受信したメッセージの訂正を要求する機会を与えるために待機するための時間であるリカバリーサイクル、Ｆｃは、ワークステーションが待機する安全率として組み込まれた追加の時間であるクライアント補償ファクタ、Ｂは、メッセージ内のブロック数に基づいたブロック数とセグメントサイズの積であるブロックサイズとしたとき、クライアントスケルチ時間は、Ｎ*Ｔｒｃ*Ｂ*Ｆｃと等しくなるように設定されることを特徴とする方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、信頼性の低いパケット交換ネットワーク上で高信頼マルチキャストディストリビューションを行うシステム及び方法に関する。より詳細には、本発明は、信頼性のない低い帯域幅の無線パケット交換通信網へのアクセス及び制御を可能にして通信網即ちネットワーク上の端末へメッセージを高信頼性を持ってマルチキャストできるシステム、方法及びコンピュータプログラムを使用する。なお、本発明は、合衆国陸軍により授与された契約書番号第ＤＡＡＢＯ７−９５−Ｄ−Ｅ６０４号に基づく政府支援を受けてなされたものである。
【０００２】
【従来の技術】
比較的短いコンピュータ産業の歴史において劇的な変化が起きて来ている。これらの変化の中で最も重要な変化は、ハードウェアの価格が信じられないくらい低下したこと及びコンピュータハードウェアの性能、信頼性、サイズ及び耐久性が同様に信じられないくらいに向上したことである。コンピュータの信頼性及び性能は、軍が個々の戦闘車両にコンピュータを装備するまでに向上してきている。このように、命令や敵味方の軍の位置や動きと言ったその他の任務に不可欠のデータの受信に使用できるコンピュータの広域網が形成される。しかしながら、この種のネットワークにユニークなチャレンジがなされると共に、全ての種類のネットワークに共通のチャレンジがなされる。ユニークなチャレンジの１つは、ネットワークは、高速通信用のケーブルの使用が不可欠となる敵対モバイル戦場環境において動作しなければならないと言うことである。直接又は衛星システムを使用する無線又はマイクロ波通信方法のみが使用できる。従って、斯かるネットワークは、比較的遅い低帯域幅の通信媒体を使用して、メッセージをおくらなければならない。勿論、セルラ電話又はその他の無線又はマイクロ波周波数技術の使用に基づいたネットワークも、どこでどのように使用されるかに拘わらず、同じ帯域幅の問題に遭遇する。どのタイプのネットワークも経験する別のチャレンジは、ネットワークのシア（ｓｈｅｅｒ）サイズである。様々なタイプのコンピュータの何千というノードが１つのネットワークにアクセスする。しかしながら、無線又はマイクロ波通信の利用には、ネットワーク上でのデータ送信速度の面で限界がある。高速ケーブルベースのネットワークが使用された場合でも、１つのネットワーク上にノードが多数あるために、使用される帯域幅により多数のユーザに１つのメッセージを不特定多数へ同報即ちブロードキャスト送信すること、又は特定の多数へマルチキャスト送信することが困難になることがしばしばある。ブロードキャストメッセージは、１つのノードからネットワーク上の全てノードへ送られるメッセージであり、一方、マルチキャストメッセージは、１つのノードからネットワーク上の全てのノードではなく、２以上のノードに送信するメッセージである。
【０００３】
【発明が解決すべき課題】
現在、ＴＣＰ／ＩＰ（送信コントロールプロトコル／インターネットプロトコル）を使用して、ワールドワイドウェブ上での通信を行っている。ＴＣＰを利用した通信は、メッセージ中で送信されるパケット全数及びバイト全数が受信端末で正しく受信されるのを確実にする。これは、受信端末から送信端末へ送信の受け取りを知らせることで達成される簡単なことである。パケットが受信されなかった場合、又は、パケット中のバイトが欠けていた場合には、送信端末が受信端末から再送信の要求を受ける。ＴＣＰは、唯一又は少数の受信端末にメッセージを送る場合には十分な働きをするが、唯一のメッセージを多数の受信端末へ送信することが必要となる場合には、ネットワーク上のトラフィック量の問題がＴＣＰにより生じるオーバーヘッドにより厄介な問題となる。従って、ＴＣＰはユニキャスト（ポイント・ツー・ポイント）送信により適している。
【０００４】
多数のユーザにマルチキャストメッセージを送信することに関係したＴＣＰに見られる上記のオーバーヘッドの問題点を解決するために、ＵＤＰ（ユーザ・データグラム・プロトコル）が開発された。ＵＤＰは、ＴＣＰ／ＩＰ内のプロトコルであり、高信頼メッセージ配信が必要とされない時に使用される。失われたパケット及びパケット内の失われたデータは単純に無視され、応答又は再送信要求は送信端末へ返送されない。ＵＤＰは、限定した量のデータ損失が許容されるオーディオ及びビデオトラフィック送信に使用されることが、通常である。従って、ＵＤＰは１つのソースが多数の受信人へ同時に送信を行うマルチキャスト環境により適している。
【０００５】
しかしながら、ＴＣＰもＵＤＰもどちらも、低帯域幅の通信機構が使用されると共に、少なくとも一定の数のユーザ端末が確実に特定のマルチキャストメッセージを受信できるようにすることが必要となる環境には適していない。これは、無線通信がネットワークのノード間の主たるリンクとして作用すると共に、比較的多数の端末が同時に重要なメッセージ又は命令を受信しなければならないの戦場通信環境において、最も顕著となる。
【０００６】
ＴＣＰ及びＵＤＰの限界を克服するために、合衆国海軍研究所ラボはマルチキャスト・ディセミネーション・プロトコル（ＭＤＰ）を開発した。ＭＤＰは、低いオーバーヘッドでマルチキャストメッセージを高信頼性を持って送信できるように設計されたプロトコルフレームワークである。ＭＤＰサービスは、ＴＣＰ／ＩＰに見られる汎用ＵＤＰ／ＩＰマルチキャストトランスポート層の上に載るものである。低オーバーヘッドはＴＣＰにおいて典型的に使用される応答及びＵＤＰにおける完全な応答の欠落とは反対な否定応答を使用することにより、達成される。しかしながら、ＭＤＰは、同時に選択された受信人がメッセージを受信するのを、又は、少なくともメッセージの一部のみが受信されたことを確実に気づくようにする。ＭＤＰは、１９９９年１０月２２日に出版されたブライアン・アダムソン（Ｂｒｉａｎ  Ａｄａｍｓｏｎ）及びジョー・マッカー（Ｊｏｅ  Ｍａｃｋｅｒ）が記述した「マルチキャスト・ディセミネーション・プロトコル（Ｍｕｌｔｉｃａｓｔ  Ｄｉｓｓｅｍｉｎａｔｉｏｎ  Ｐｒｏｔｏｃｌ）」と題したインターネット・ドラフト（ｄｒａｆｔ−ｍａｋｅｒ−ｒｍｔ−ｍｄｐ−００．ｔｘｔ）に記載されており、その全体を参照として本書に組み込んである。アダムソンとマッカーはまた「マルチキャスト・ディセミネーション・プロトコル開発者のためのガイド（Ｍｕｌｔｉｃａｓｔ  Ｄｉｓｓｅｍｉｎａｔｉｏｎ  Ｐｒｏｔｏｃｌ（ＭＤＰ）Ｄｅｖｅｌｏｐｅｒ'  Ｇｕｉｄｅ）」を出版しており、その全体を参照として本書に組み入れている。上記の開発者のためのガイドにて論議されているように、ＭＤＰはアプリケーション・プログラム・インターフェース（ＡＰＩ）を介して、その主たるインターフェースを提供する。
【０００７】
しかしながら、ＴＣＰ及びＵＤＰと同様に、ＭＤＰはプロトコルであり、Ｍアプリケーション層又はＤＰを微同調（ファインチューニング）して特定のネットワーク用の最適なレベルの性能を達成するシステム管理者に必要なその他の高位レベルのソフトウェアを提供するものではない。微同調とは、パケットサイズや送信速度等の多数のパラメータを詳細に設定することである。このネットワークの微同調により、ネットワークの性能及びネットワーク利用者の満足度に著しいインパクトを与えることができる。しかしながら、ネットワーク性能のテスト又は決定並びにパラメータの変更が、ネットワーク性能にどのようなインパクトを与えるかテスト又は決定することなく、ネットワークの微同調をすることはできない。
更に、ソフトウェアの追加の層が、ユーザのメッセージの送受信を容易にするために必要となる。また、このソフトウェアの追加の層は、ユーザがオーバーヘッドを絶対最小に保ったままでメッセージの受信人を選択できるものである必要がある。これにより、ユーザが潜在的な受取人を識別すると共に、メッセージの受信に欠かせない受取人を同定するのが可能となる。
【０００８】
従って、必要なものは、ＭＤＰアプリケーションを初期化するシステム及びコンピュータプログラムである。このシステム及びコンピュータプログラムは、また、ＭＤＰネットワークの微同調が出来る必要がある。更に、このシステム及びコンピュータプログラムは、ユーザがネットワークの最小オーバーヘッドを維持したままで、ネットワーク上のその他のユーザへメッセージの送受信をするのを可能にする必要がある。斯かるシステム及びコンピュータプログラムは、メッセージの重要な受信人と重要でない受信人との区別が出来る必要がある。このシステム及びコンピュータプログラムは、ネットワーク上の同定した受信人にのみ、送信をおこなうものであって、不特定のユーザ又はワークステーションへメッセージ送信をするものではない。
【０００９】
【課題を解決するための手段】
本発明の実施例は、ネットワーク内の幾つかの端末にメッセージをマルチキャストするシステム及びコンピュータプログラムを提供する。このシステム及びコンピュータプログラムは、ネットワーク内でマルチキャストメッセージの送受信をするのに使用されるパラメータを含んだＭＤＰデータベーステーブルを有する。ＭＤＰデータベーステーブルからパラメータを読み出して、サーバにおいてパラメータを使用してＭＤＰセッションを初期化するＭＤＰサーバ初期化モジュールが提供される。ＭＤＰデータベーステーブルからパラメータを読み出して、ワークステーションにおいてパラメータを使用してＭＤＰセッションを初期化するＭＤＰクライアント初期化モジュールが提供される。メッセージ送信の要求を受信し、ＭＤＰ情報パケットを各メッセージごとに生成し、且つ、斯かるメッセージをＭＤＰ情報パケット内の各指定受信人へ送信するＭＤＰサーバオペレーションモジュールが提供される。このシステム及びコンピュータプログラムは、また、ＭＤＰサーバオペレーションモジュールにより送信されたメッセージを受信して該メッセージを高位レベルのソフトウェアアプリケーションへ送信するＭＤＰクライアントオペレーションモジュールを有する。
【００１０】
更に、本発明の別の実施例は、ネットワーク内の幾つかのワークステーションへメッセージをマルチキャストする方法を提供する。この方法は、サーバ上でマルチキャストメッセージの送信の初期化及び制御をするのに使用するために、ＭＤＰデータベースから幾つかのパラメータを読み出すステップからスタートする。次いで、ワークステーション上でマルチキャストメッセージの受信を初期化して制御するのに使用するために、ＭＤＰデータベースから幾つかのパラメータを読み出す。マルチキャストメッセージは、次いで、マルチキャストメッセージの送信のために算出した時間をメッセージ遅延時間が超過しない時、又は、メッセージ遅延時間がマルチキャストメッセージ内に含まれた消滅（ｐｅｒｉｓｈａｂｉｌｉｔｙ）時間を超過しない時には、ワークステーションへ送信される。その後、ワークステーションがマルチキャストメッセージ内のデータが欠落していると判断した時、及びワークステーションが、ＭＤＰ情報パケット内に含まれたフィールドによってアクティブワークステーションとして指定されている時には、否定応答がサーバに送信される。
【００１１】
【発明の実施の形態】
本発明の詳細な説明に移る前に下記について言及するのが妥当である。適切である場合には、同様の参照符号及び文字は、異なる図面において同一部品、対応する部品又は同様な部品を指定するのに使用することが可能である。更に、下記の詳細な説明では、例としてのサイズ、モデル、値、範囲を挙げるが、本発明はそれらに限定されるものではない。
【００１２】
図１は、広域ネットワーク１０の一例であり、多数の端末及び該端末に接続され多数のユーザを有する。各端末すなわちユーザは、主として送信されるマルチキャストメッセージの対照であるか否かに基づいて、指定される。更に、各端末には、インターネットプロトコル（ＩＰ）アドレスが与えられる。端末すなわちユーザが現在メッセージの対象でなければ、ＭＤＰセッションメンバ２０として同定される。ＭＤＰセッションメンバ２０は、ネットワーク１０の一部であるが、現在はマルチキャストメッセージの受信人としては指定されていない。しかしながら、ユーザすなわち端末がマルチキャストメッセージの受信人として指定される場合には、該ユーバすなわち端末は、ＭＤＰクライアントアクション受信人４０、又はＭＤＰクライアント情報受信人３０の何れかとして指定される。ＭＤＰクライアントアクション受信人４０は、マルチキャストメッセージ全体を高信頼性を持って受信しなければならないユーザすなわち端末である。ＭＤＰクライアントアクション受信人４０は、従って、ＭＤＰにおいて見られる完全な否定応答能力を使用して、マルチキャストメッセージを確実に受信するようにされる。しかしながら、ＭＤＰクライアント情報受信人３０は、メッセージ発信者からはマルチキャストメッセージの重要な受信人であるとはみなされない。従って、ＭＤＰクライアント情報受信人３０は、送られるマルチキャストメッセージを受動的に受信し、図７に図示する如く、せいぜいＭＤＰ情報パケットのヘッダの受信の応答をするのみである。マルチキャストメッセージは、サーバにより送信されるだけである。図１に示した実施例では、２つのサーバ、ＭＤＰサーバ＃２（６０）及びＭＤＰサーバ＃１（７０）が設けられている。これらのサーバは、ＭＤＰパラメータ及びマルチキャストメッセージを初期化して、ユーザを指定する。各ユーザすなわち端末は、メッセージを受信するように設計されており、マルチキャストメッセージを送信するサーバにより、情報受信人又はアクション受信人のどちらかとして同定される。サーバによる指定は、ＭＤＰ情報パケットに含まれたフィールドにより実現される。これについては、図７を参照して更に説明する。
【００１３】
さらに図１を参照する。ユーザすなわち端末は、同時に、ＭＤＰクライアント８０により指定される如く、１つのマルチキャストメッセージのアクション受信人及び別のマルチキャストメッセージの情報受信人の双方に指定される。マルチキャストメッセージの発信者が、図７に示す如く、ＭＤＰ情報パケットのアクション又は情報受信人であるかを決定することから、これが可能となる。更に、ユーザすなわち端末は、サーバ及びＭＤＰクライアント情報受信人又はＭＤＰサーバ＃１（７０）に関して図示するように、サーバ及びＭＤＰクライアントアクション受信人の双方として、指定されることが可能である。また、ネットワーク１０上の任意の端末すなわちユーザをサーバとして指定することも、可能である。
【００１４】
図１に示す端末すなわちワークステーションは、プロセッサベースのシステムとすることが可能であり、パーソナルコンピュータ（ＰＣ）、ラップトップ、パームコンピュータ、及びパーソナルディジタルアシスタント（ＰＤＡ）を含むが、それらに限定されるものではない。更に、図１に示す端末すなわちワークステーションは、また、無線アクセスプロトコル（ＷＡＰ）利用のセルラ電話、又はハイパーマークアップ言語プロトコル（ＨＴＬ）利用のセルラ電話とすることが可能である。図１の端末すなわちワークステーションが有する唯一の要件は、マルチキャスト能力を備えたＩＰネットワークからメッセージを送受信することである。
【００１５】
更に、図１を参照する。ネットワーク１０は、任意の媒体上で作動する任意のパケット交換ネットワークとすることが可能であり、該交換ネットワークは、無線通信媒体、同軸又は光ファイバーケーブル及びツイストペア又は専用線電話回線等を含むが、それらに限定されるものではない。更に、無線通信媒体は、任意の無線周波数、マイクロ波、衛星又はセルラ電話通信媒体を含むことが可能であるが、それらに限定されるものではない。本発明の実施例は、無線通信環境に見られる帯域幅に信頼性がなく且つ遅い環境において、信頼性の高いマルチキャストメッセージを生成するのに最も効果的であると共に、有効である。しかしながら、上に述べたように、本発明の実施例を任意の通信環境に使用することが可能である。
【００１６】
図２は、本発明の実施例に使用されるソフトウェア、ファームウェア、及びハードウェアのモジュール構成図である。図２に示したブロックは、モジュール、コード、コードセグメント、コマンド（指令）、ファームウェア、ハードウェア、インストラクション（命令）及びデータを表し、それらはプロセッサベースのシステムで実行でき、且つ、それに限定されるものではないが、Ｃ＋＋等のプログラム言語で記述可能である。図２に図示したブロックに加えて、ＭＤＰデータベース１４０が図示されており、ＭＤＰ層のソフトウェア及びパラメータを含み、且つ、ＭＤＰセッションのミニ構造照会言語（ＭＳＱＬ）テーブルと呼ぶことも可能である。
【００１７】
更に図２を参照すると、４つのブロックすなわちモジュールが例示されている。ＭＤＰサーバ初期化モジュール１００及びＭＤＰサーバオペレーションモジュール１１０が配置され、図１に示したＭＤＰサーバ＃１（７０）及びＭＤＰサーバ＃２（６０）として指定されたワークステーション又はプロセッサベースのシステム上で実行可能である。しかしながら、上に述べた如く、ネットワーク１０に接続された任意のプロセッサベースのシステムをサーバとして指定することが可能である。サーバを立ち上げると同時にＭＤＰサーバ初期化モジュール１００が実行されて、初期ＭＤＰパラメータを検索して設定する。その後、プロセッサ制御がＭＤＰサーバ初期化モジュール１００により放棄され、ＭＤＰサーバオペレーションモジュール１１０が実行される。ＭＤＰサーバオペレーションモジュール１１０は、必要な限り実行を継続する。ＭＤＰサーバ初期化モジュール１００及びＭＤＰサーバオペレーションモジュール１１０の双方とも、ＭＤＰデータベース１４０の読み出し／書き込みができる。
【００１８】
更に図２を参照する。ＭＤＰクライアント初期化モジュール１２０及びＭＤＰクライアントオペレーションモジュール１３０は、図１に示した全ての残りのワークステーション及びプロセッサベースのシステム内に収容されると共に、該ワークステーション及びシステムにおいて実行され、該ワークステーション及びシステムは、サーバとして指定されない。クライアントシステムを立ち上げると同時に、ＭＤＰクライアント初期化モジュール１２０が実行されて、ＭＤＰパラメータを検索して設定する。その後、プロセッサ制御がＭＤＰクライアント初期化モジュール１２０により放棄されて、ＭＤＰクライアントオペレーションモジュール１３０が実行される。クライアントオペレーションモジュール１３０は、必要な限り無制限に実行を継続する。ＭＤＰクライアント初期化モジュール１２０及びＭＤＰクライアントオペレーションモジュール１３０は、ＭＤＰデータベース１４０を読み出し／書き込みができる。
【００１９】
図３は、図２に図示した、本発明の実施例に使用されるＭＤＰサーバ初期化モジュール１００のフローチャートである。ＭＤＰサーバ初期化モジュール１００は、図３に示したオペレーション２００〜３００を含むが、それらに限定されるものではない。
図３を参照すると、ＭＤＰサーバ初期化モジュール１００は、図１に示したサーバが初期起動されると、オペレーション２００を実行する。処理は直ちにオペレーション２１０へ移行して、最大ラウンドトリップ時間（ＧＲＴＴ）プローブデフォルト設定値がＭＤＰデータベース１４０から読み出され、該データベースは、使用禁止（ｄｉｓａｂｌｉｎｇ）プロービング又は許可（ｅｎａｂｌｉｎｇ）プロービングのどちらかを表す値を有する。この場合、ＧＲＴＴプロービングに関するデフォルト値は、使用禁止プロービングに対するものである。プロービングは、ネットワーク１０上のノードへ能動的にＭＤＰメッセージを送信し、各ノードから応答が戻るのに必要な時間を測定する。初期の立ち上げの場合には、プロービングが使用禁止にされる。その後、処理はオペレーション２２０へ移行して、このＭＤＰセッション用にＧＲＴＴプロービングが設定される。オペレーション２３０では、初期ＧＲＴＴ（ｉｎｉｔ＿ｇｒｔｔ）値がＭＤＰデータベース１４０から読み出される。この初期ＧＲＴＴ値は、最大ラウンドトリップ時間を表し、該時間は、ＭＤＰデータベース１４０にデフォルト値として記憶される。その後、オペレーション２４０において、検索された初期ＧＲＴＴ値がこのＭＤＰセッション用のＧＲＴＴ推定値として設定される。オペレーション２５０では、最大ＧＲＴＴ（Ｍａｘ＿ｇｒｔｔ）値がＭＤＰデータベース１４０から読み出されて、このＭＤＰセッション用としてオペレーション２６０で設定される。最大ＧＲＴＴ値は、ネットワーク１０のノードから受信される帰還応答に必要な時間の最大量を表し、増大可能なＧＲＴＴの最大値を表す。その後、オペレーション２７０では、ＧＲＴＴプローブ最小間隔値がＭＤＰデータベース１４０から読み出される。ＧＲＴＴプローブ最小間隔値は、既に論議した如くプロービングが発生する初期間隔である。プローブは、ノード又はワークステーションから応答が帰還するのに必要な時間を決定する時間にされたテストマルチキャストメッセージである。プロービングが起きると、プローブ間の間隔が、該間隔がＧＲＴＴプローブの最大間隔値になるまで増大する。オペレーション２９０では、最小及び最大ＧＲＴＴプローブ値の双方が、ＭＤＰセッションに設定される。
【００２０】
更に、図３を参照すると、オペレーション３００では、ロバスト（堅個な）ファクタ値がＭＤＰデータベース１４０から読み出される。ロバストファクタ値は、送りだされるフラッシュ指令を表す。フラッシュ指令は、サーバにより発信される指令であって、修正パケットを含んだ特定のメッセージに関係したパケットをもはや送信しないことを示す。これらのフラッシュ指令は、周期的間隔で送出され、ロバストファクタ値は、最大送出数に関係する。その後、処理はオペレーション３２０へ移行して、自動パリティ値がＭＤＰデータベース１４０から読み出される。自動パリティ値は、メッセージと一緒に送られるフォワードエラー訂正パケット数である。これらのフォワードエラー訂正パケットを使用して、不正な又は損失したパケットデータを受信ノードすなわちワークステーションで訂正することが可能である。その後、オペレーション３３０において、各ＭＤＰ符号化ブロックと一緒に送られる全てのパリティパケット数がＭＤＰセッションに設定される。オペレーション３４０では、最大送信速度値がＭＤＰデータベース１４０から読み出される。この最大送信速度値は、秒当りのビットで表したネットワーク１０の最大送信速度である。その後、オペレーション３５０では、この最大合計送信速度がＭＤＰセッションに設定される。オペレーション３６０では、ＭＤＰサーバ初期化モジュール１００が実行を終了する。
【００２１】
図４は、図２に図示した、本発明の実施例で使用されるＭＤＰクライアント初期化モジュール１２０のフローチャートである。ＭＤＰクライアント初期化モジュール１２０は、図４に示したオペレーション４００〜４５０を含むが、それらに限定されるものではない。
ＭＤＰクライアント初期化モジュール１２０は、オペレーション４００で実行を開始して、直ちにオペレーション４０へ進む。オペレーション４１０では、デフォルトストリームインテグリティ（一体性）値をＭＤＰデータベース１４０から読み出すが、該値は、クライアントノード又はワークステーションの初期化と同時に使用禁止となるように設定される。幾つかのブロック又はパケットを有したメッセージが欠落又は順不同のパケットを有したメッセージがクライアントワークステーションにより受け取られる時に、ストリームインテグリティを使用禁止にすることで、ワークステーションがサーバからの再送信の要求を起こさない。処理は次いでオペレーション４２０へ移行して、ストリームインテグリティ値が設定される。オペレーション４３０では、デフォルトナッキング（ｎａｃｋｉｎｇ）（否定応答）モードがＭＤＰデータベース１４０から読み出される。否定応答は通常、メッセージ又はその一部分が受信人に受信されない時に、送信される。メッセージの全ての部分が受信人に受信された場合には、メッセージを送信したサーバには応答はなされない。斯かる特定の場合には、デフォルトナッキングモードが、図７に示すように、ＭＤＰ情報パケットを受信し損なった時にのみ、ナック（否定応答を送信）する。その後、オペレーション４４０では、デフォルトセッションクライアントナッキングモードがＭＤＰセッションに設定される。処理は、次いで、オペレーション４５０へ移行して、ＭＤＰクライアント初期化モジュール１２０が終了して、プロセッサの制御がＭＤＰクライアントオペレーションモジュール１３０へ与えられる。
【００２２】
ＭＤＰサーバ初期化モジュール１００及びＭＤＰクライアント初期化モジュール１２０の双方とも同時に実行される。クライアントノード及びサーバノードの双方がＭＤＰセッション用に初期化されると、処理は即座にサーバ内のＭＤＰサーバオペレーションモジュール１１０及び各クライアントノード用のＭＤＰクライアントオペレーション１３０へ進む。ＭＤＰサーバオペレーションモジュール１１０及びＭＤＰクライアントオペレーションモジュール１３０の双方は、現在のＭＤＰセッションが有効である限り、同時に実行される。
【００２３】
図５は、本発明の実施例に使用される、図２に示したＭＤＰサーバオペレーションモジュール１１０のフローチャートである。ＭＤＰサーバオペレーションモジュール１１０は、図５に示したオペレーション５００〜７１０を含む。
ＭＤＰサーバオペレーション１１０は、オペレーション５００で実行を開始して、即座にオペレーション５１０に進む。オペレーション５１０では、アドレス情報を有したメッセージが高位レベルのソフトウェアアプリケーションから受信されたか否かが判断される。メッセージが受信されないと、ＭＤＰサーバオペレーションモジュール１１０がメッセージが受信されるまで、オペレーション５１０で単純に待機する。メッセージが受信されると、処理がオペレーション５２０へ移行して、メッセージ内のフィールド(図示なし)が消滅時間（ｐｅｒｉｓｈａｂｉｌｉｔｙ  ｔｉｍｅ）値についてチェックされる。メッセージ内の消滅時間フィールドが存在する場合には、メッセージを規定の時間内に送信しなければならないことを意味しており、処理はオペレーション５３０へ進む。オペレーション５３０では、最大送信速度がＭＤＰデータベース１４０から読み出される。その後、オペレーション５４０では、メッセージ送信遅延（ＴD）がメッセージサイズを最大送信速度で除算して算出される。オペレーション５５０では、メッセージ送信遅延（ＴD）が消滅時間より大きいか否かが判断される。メッセージ送信遅延（ＴD）が消滅時間より大きい場合には、処理はオペレーション５６０へ進むか、又は、メッセージを単純にドロップしてしまう。メッセージは、その時の消滅時間よりそのとき許可されたメッセージの送信時間の方が長いことから、メッセージはオペレーション５６０でドロップされる。その後、処理はオペレーション５６０からオペレーション５１０へ戻って、ＭＤＰサーバオペレーションモジュール１１０が別のメッセージが到来するのを待つ。
【００２４】
しかしながら、消滅時間フィールドが設けられていない場合、又は、メッセージ送信遅延が消滅時間より小さい場合には、処理は次にオペレーション５７０へ進む。オペレーション５７０では、ＭＤＰ情報パケットが、メッセージ内の供給されたアドレス情報をもとにして生成される。その後、オペレーション５８０で、ＧＲＴＴプロービングがスイッチオンされる。ＧＲＴＴプロービングは、図３のオペレーション２２０でスイッチオフされたものであり、ＧＲＴＴプロービングをオンにすることにより、メッセージが周期的にネットワーク１０のノードへ送信され、各ノードからのラウンドトリップ時間が測定される。オペレーション５９０では、図７に示したＭＤＰ情報パケットがネットワーク１０上で送信される。オペレーション６００では、トランザクション・ファースト・パス・イベント（Ｔｘ＿Ｆｉｒｓｔ＿ｐａｓｓ）通知がＭＤＰから受信されたか否かを判断する。このトランザクション・ファースト・パス・イベント通知は、メッセージ全体がＭＤＰにより送信されたのか否かを示す。トランザアクション・ファースト・パス・イベント通知は、任意のノードすなわち端末での受信を保証するものではない。トランザクション・ファースト・パス・イベント通知が受信されていなかった場合には、ＭＤＰサーバオペレーションモジュール１１０が通知を受信するまで、単純にオペレーション６００で待つ。
【００２５】
トランザクション・ファースト・パス・イベント通知を受信すると同時に、処理はオペレーション６１０へ進む。オペレーション６１０では、リカバリーサイクル（Ｎ）、サーバ補償ファクタ（ＦS）、ブロックサイズ（Ｂ）、及びセグメントサイズ（Ｓ）がＭＤＰデータベース１４０から読み出される。リカバリーサイクル（Ｎ）は、サーバが待機して受信ノードすなわちターミナルで受信したメッセージの訂正を要求する機会を与えるための時間である。サーバ補償ファクタ（Ｆｓ）は、サーバが待機する安全係数として組み込まれた追加の時間である。ブロックサイズ（Ｂ）は、各ブロックにおいて送信するパケットすなわちセグメントの数である。セグメントサイズ(Ｓ)は、各セグメントすなわちパケットのバイト数で表した大きさである。従って、オペレーション６２０において、図３のオペレーション２４０でこのＭＤＰ用に設定されたＧＲＴＴ推定値が、ＭＤＰから読み出される。次いで、オペレーション６３０において、サーバスケルチ（ｓｑｕｅｌｃｈ）時間が、公式サーバスケルチ時間＝Ｎ*Ｔｒｃ*Ｂ*Ｆｓを使用して算出される。Ｔｒｃは、５*ＧＲＴＴである。上記説明したようにまた以降で説明するように、サーバサーバスケルチ時間は、サーバが修理を試みたりメッセージを無制限に送るのを防止するために使用される。
【００２６】
スケルチ時間が算出されると、処理はオペレーション６４０へ進む。オペレーション６４０では、メッセージを送信する高位レベルのソフトウェアにより消滅時間にメッセージか供給されたか否かが判断される。消滅時間が存在する場合には、処理はオペレーション６５０へ進む。消滅時間が、オペレーション６３０で算出したサーバスケルチ時間未満の場合には、オペレーション６６０へ進んで、サーバスケルチ時間を消滅時間に設定する。これは、消滅時間が過ぎたらサーバがメッセージの送信又は訂正を行わないようにするためになされる。消滅時間が存在しないか、消滅時間が算出したサーバスケルチ時間未満であるか、又は、オペレーション６６０においてサーバスケルチ時間を消滅時間に等しく設定した場合には、オペレーション６７０へ進む。オペレーション６７０では、ＭＤＰノーティファイ・トランザクション・オブジェクト・フィニシュト（Ｍｄｐ＿Ｎｏｔｉｆｙ＿Ｔｘ＿Ｏｂｊｅｃｔ＿Ｆｉｎｉｓｈｅｄ）イベント通知が受信されたか否かを判断する。このＭＤＰノーティファイ・トランザクション・オブジェクト・フィニシュト通知は、ＭＤＰがメッセージの受信人から一切の応答又は否定応答がなかったことを示すものであり、有限時間の期限にもとづくものである。いずれの受信人からも応答が受信されなかった場合には、全ての受信人がメッセージを受信したことと考えられる。ＭＤＰノーティファイ・トランザアクション・オブジェクト・フィニシュト通知が受信された場合には、処理はオペレーション６８０へ進み、ＧＲＴＴプロービングがオフに設定にされる。メッセージが送信されて受信されたと仮定されるから、ＧＲＴＴプロービングがオペレーション６８０でオフに設定される。その後、処理はオペレーション５１０へ戻って、ＭＤＰサーバオペレーションモジュール１１０は、処理すべき別のメッセージを待機する。
【００２７】
更に、図５を参照する。ＭＤＰノーティファイ・トランザクション・オブジェクト・フィニシュト通知が受信され無い場合には、処理はオペレーション６９０へ進む。オペレーション６９０では、オペレーション６３０で算出したサーバスケルチ時間が満了したか否かを判断する。サーバスケルチ時間が満了していない場合、処理はオペレーション６７０へ戻り、ＭＤＰノーティファイ・トランザクション・オブジェクト・フィニシュト通知が受信されるか、又は、サーバスケルチ時間が満了するまで、処理を繰り返す。スケルチ時間が満了した場合には、処理はオペレーション７００へ進み、ＧＲＴＴプロービングがオフにされる。この場合には、メッセージ全部が全ての指定の受信人に受信されなかったものと理解する。更に、スケルチ時間が満了しているので、ＭＤＰサーバオペレーションモジュール１１０は、それ以上メッセージの送信又は修正を試みることはない。その後、処理はオペレーション７１０へ進み、ＭＤＰ送信キュー（図示なし）からメッセージが取り外され、ＭＤＰセッションによるメッセージの再送信又は修理を防止する。
【００２８】
図６は、図２に示す、本発明の別の実施例に使用するＭＤＰクライアントオペレーションモジュール１３０のフローチャートである。ＭＤＰクライアントオペレーションモジュール１３０は、図６に図示したオペレーション８００〜オペレーション９４０を含む。
ＭＤＰクライアントオペレーションモジュール１３０は、オペレーション８００で実行を開始して、直ぐにオペレーション８１０へ進む。オペレーション８１０では、ＭＤＰノーティファイ・レシーブド・オブジェクト・スタート（ｍｄｐ＿Ｎｏｔｉｆｙ＿Ｒｘ＿Ｏｂｊｅｃｔ＿Ｓｔａｒｔ）ノーティフィケーション・イベントが発生したか否かを判断する。オペレーション８１０では、ＭＤＰノーティファイ・レシーブド・オブジェクト・スタート・ノーティフィケーション・イベントは、メッセージがクライアントワークステーションに受信されたことを示すためのものである。メッセージが受信されていなかった場合には、処理は、メッセージが受信されるまで、オペレーション８１０へループして戻る。メッセージが受信されると、処理はオペレーション８２０へ進み、図７に図示したＭＤＰ情報パケットが読み出されて復号化される。その後、処理はオペレーション８３０へ進んで、図７に図示したＭＤＰ情報パケットのバイトフィールド１０２０がアクション受信人に設定されているか否かを判定する。バイトフィールド１０２０がアクション受信人に設定されている場合には、処理はオペレーション８４０へ進む。オペレーション８４０では、ＭＤＰオブジェクトナッキングモードが正常に設定される。正常なナッキングモードでは、クライアントワークステーションは、パケット又はパケットの一部が当該メッセージに対してのみ欠落している時に、否定応答が送信する。しかしながら、本発明のこの実施例は、図７に示すＭＤＰ情報パケットを受信次第、クライアントワークステーションが応答を送信するように修正することが可能である。
【００２９】
バイトフィールド１０２０がアクション受信人に対して設定されているか否かに拘わらず、処理はオペレーション８５０へ進む。オペレーション８５０では、ＭＤＰセッション用の最大送信速度がＭＤＰデータベース１４０から読みだされる。オペレーション８６０では、メッセージ送信遅延（ＴD）時間が、メッセージサイズを取り、該サイズを最大送信速度で割ることによって算出される。その後、オペレーション８７０において、メッセージ送信遅延時間が満了となっているか否かが判定される。メッセージ送信遅延時間が満了していない場合には、処理は、メッセージ送信遅延時間が満了するまでオペレーション８７０までループして戻り、そして処理はオペレーション８８０まで進む。これにより、有限の時間が満期になり、全メッセージの受信が可能となる
【００３０】
更に、図６を参照する。オペレーション８８０では、リカバリーサイクル（Ｎ）、クライアント補償ファクタ（Ｆｃ）、ブロックサイズ（Ｂ）及びセグメントサイズ（Ｓ）がＭＤＰデータベースから読み出される。リカバリーサイクル（Ｎ）は、クライアントが受信ノード又は端末に受信したメッセージの訂正を要求する機会を与えるために待機するための時間である。クライアント補償ファクタ（Ｆｃ）は、クライアントが待機する安全率として組み込まれた追加の時間である。ブロックサイズ（Ｂ）は、ＭＤＰが各ブロック毎に送信するパケットすなわちセグメントの数である。セグメントサイズ（Ｓ）は、各セグメントすなわちパケットのバイトで表したサイズである。その後、オペレーション８９０では、図３のオペレーション２４０においてこのＭＤＰセッション用に設定されたＧＲＴＴ推定値がＭＤＰから検索される。オペレーション８９０は遠隔でなされ、ＧＲＴＴ推定値を検索するためには、クライアントがサーバにアクセスする必要がある。次いで、オペレーション９００では、クライアントスケルチ時間が、サーバスケルチ時間＝Ｎ*Ｔｒｃ*Ｂ*Ｆｃの公式を使用して算出される。但し、Ｔｒｃは５*ＧＲＴＴである。クライアントスケルチ時間は、クライアントが、サーバが当該メッセージに関するそれ以上の送信を停止する時点を超えて、該メッセージの訂正又は再送信を行うために待機することを防止するのに使用される。
【００３１】
更に、図６を参照する。オペレーション９１０では、ＭＤＰレシーブド・オブジェクト・フィニッシュ（Ｍｄｐ＿Ｒｘ＿Ｏｂｊｅｃｔ＿Ｆｉｎｉｓｈｅｄ）イベント通知が受信されたか否かを判断する。ＭＤＰレシーブド・オブジェクト・フィニッシュ・イベント通知は、クライアントがメッセージ全体を受信したことを表す機能を有する。クライアントがメッセージ全体を受信してあった場合には、処理はオペレーション９３０へ進む。オペレーション９３０では、メッセージがＭＤＰクライアントオペレーションモジュール１３０により、適切な高位レベルのソフトウェアアプリケーションへ送信される。しかしながら、ＭＤＰレシーブド・オブジェクト・フィニッシュ・イベント通知がオペレーション９１０で受信された場合には、処理はオペレーション９２０へ進む。オペレーション９２０では、クライアントスケルチ時間が満了したか否かを判断する。クライアントスケルチ時間が満了していない場合には、処理は、ＭＤＰレシーブド・オブジェクト・フィニッシュ・イベント通知が受信されるか、又は、クライアントスケルチ時間が満了するまで、オペレーション９１０へループして戻る。オペレーション９２０において、クライアントスケルチ時間が満了していると判断した場合には、処理はオペレーション９４０へ進んで、ＭＤＰクライアントオペレーションモジュール１３０がメッセージの受信を終了する。その後、処理はループしてオペレーション９４０進み、ＭＤＰクライアントオペレーションモジュール１３０が更に別のメッセージを待機する。
【００３２】
図７は、本発明の別の実施例で使用するＭＤＰ情報パケットのテーブルである。図７に示したテーブルは、ＭＤＰ情報パケットの各バイトに関して表示されるものを説明したものである。バイトフィールド１０００では、メッセージを受信するアドレス又はクライアントワークステーションの数が最初の４バイトで提供される。バイトフィールド１０１０のバイト５〜８は、この特定のクライアントワークステーションのインターネットプロトコル（ＩＰ）アドレスを提供する。その後、バイトフィールド１０２０のバイト９〜１２で、エミッションコントロール設定が提供される。エミッションコントロール設定が使用禁止の場合には、アクション受信人にその旨示され、エミッションコントロール設定が許可される場合には、アクション受信人にその旨示される。前に論議したように、アクション受信人は、メッセージが不完全であったり、メッセージに欠落がある場合には、いつでも否定応答を送信する。しかしながら、情報受信人は、ＭＤＰ情報パケットが受信された時に、否定応答を送信するだけである。その後、図７に示したＭＤＰ情報パケットにおいて、バイトフィールド１０００、１０１０及び１０２０が、このマルチキャストメッセージの受信人毎に繰り返される。本発明の実施例が低帯域幅のネットワーク１０に使用される場合には、特定のメッセージに対して最大で１６人の受信人までが、より効果的なネットワークオペレーションを得られることが判明した。しかしながら、使用するネットワーク１０のタイプに応じて、２32−１までの任意の受信人数を指定することが可能である。
【００３３】
システム管理者は、本発明の実施例を使用して遅く且つ信頼性のないネットワークを微同調して、最小限のオーバーヘッドを可能にする。本発明を用いない場合は、ネットワークは遅く且つ信頼性のないままである。本発明の実施例は、無線通信ネットワークに理想的に適している。しかしながら、本発明の実施例は、任意のタイプのパケット交換ネットワークに使用することが可能である。更に、本発明の実施例を使用して、システム管理者は、メッセージの送受信の管理に使用されるパラメータを修正して、ネットワークが最大効率で作動するようにすることが可能である。また、本発明の実施例は、メッセージの重要な受信人として同定される個人又はワークステーションが確実にメッセージ全部を受信できるようにする。しかしながら、同定された受信人が重要な受信人であると見なされない場合には、帯域幅を使用してまで壊れたパケットの補修又は受信をすることはない。従って、マルチキャストメッセージの送受信に必要なオーバーヘッドは極めて小さく維持される。
【００３４】
本書においてはほんの２、３の例を例示説明しただけであるが、本発明に多数の変更及び修正を施すことが可能なことは当業者には自明のことである。例えば、無線及びマイクロ波通信に利用するように説明してきたが、本発明の実施例は、斯かる形態の通信に限定されるものではない。本発明の実施例は、同軸及び光ファイバケーブルはもとより、ツイストペア、公衆交換電話網及び専用線のいずれを使用した任意のタイプのローカルネットワーク又は広域ネットワークで作動する。更に、任意の種類の高位レベルの通信ソフトウェアをネットワーク通信に利用することが可能である。従って、本書に例示説明した詳細に限定されるものではなく、添付の特許請求の範囲に包含される全ての変更及び修正が可能である。
【図面の簡単な説明】
【図１】異なるカテゴリの多数の端末を有したネットワークの一例の図である。
【図２】本発明の実施例で使用されるソフトウェア、ファームウェア及びハードウェアのモジュール構成を示した図である。
【図３】図２に図示した、本発明の実施例に使用されるＭＤＰサーバ初期化モジュールのフローチャートである。
【図４】図２に図示した、本発明の実施例に使用されるＭＤＰクライアント初期化モジュールのフローチャートである。
【図５】図２に図示した、本発明の実施例に使用されるＭＤＰサーバオペレーションモジュールのフローチャートである。
【図６】図２に図示した、本発明の実施例に使用されるＭＤＰクライアントオペレーションモジュールのフローチャートである。
【図７】本発明の実施例に使用されるＭＤＰ情報パケットのテーブルである。
【図１】
0003647776.tif 000002
【図２】
0003647776.tif 000003
【図３】
0003647776.tif 000004
【図４】
0003647776.tif 000005
【図５】
0003647776.tif 000006
【図６】
0003647776.tif 000007
【図７】
0003647776.tif 000008