(57)【要約】【課題】有線と通信品質が悪い無線通信環境が混在するようなネットワークでのマルチキャストパケットの到達性の向上や、各受信者が最も短時間で損失パケットを回復できる再送元の選定、マルチキャストパケットを送信するサーバへの負担減を図る。【解決手段】複数の端末装置間でマルチキャスト通信を行う端末装置であって、送信元端末装置からのマルチキャスト通信によるパケットについて損失パケットを検出した場合、前記複数の端末装置に損失パケットの送信を依頼するメッセージである再送要求メッセージを送信し、前記複数の端末装置から返信された再送応答メッセージを受信し、再送を行う端末装置間でのパケットの往復時間、ホップ数、最大転送ユニット数の少なくとも一つに基づいて、前記損失パケットの再送を担当する端末装置を決定することを特徴とした端末装置である。【選択図】図５
2009010575.tif 000002
【特許請求の範囲】
【請求項１】
マルチキャスト通信によりパケットを伝送する中継装置であって、伝送中に失われた損失パケットの送信を依頼するメッセージである再送要求メッセージに応じた再送応答メッセージを受信し、前記再送応答メッセージが所定の時間内に到達していない場合は、前記再送応答メッセージを破棄することを特徴とする中継装置。
【請求項２】
複数の端末装置間でマルチキャスト通信を行う端末装置であって、送信元端末装置からのマルチキャスト通信によるパケットについて損失パケットを検出した場合、前記複数の端末装置に損失パケットの送信を依頼するメッセージである再送要求メッセージを送信し、前記複数の端末装置から返信された再送応答メッセージを受信し、再送を行う端末装置間でのパケットの往復時間、ホップ数、最大転送ユニット数の少なくとも一つに基づいて、前記損失パケットの再送を担当する端末装置を決定することを特徴とした端末装置。
【請求項３】
前記端末装置は、受信したそれぞれの再送応答メッセージの到達時刻を調べ、前記送信元端末装置へのラウンド・トリップ・タイムよりも短い時間で到達した再送応答メッセージを送信した端末装置を損失パケットの再送を担当する端末装置に決定する、ことを特徴とする請求項２に記載の端末装置。
【請求項４】
前記端末装置は、前記送信元端末装置へのラウンド・トリップ・タイムよりも短い時間で到達した再送応答メッセージが存在しないと判定した場合、前記送信元端末装置の再送スケジュールが所定の許容範囲を超えるか否かを判定し、前記送信元端末装置の再送スケジュールが所定の許容範囲を超えない場合には、前記送信元端末装置を損失パケットの再送を担当する端末装置に決定する、ことを特徴とする請求項３に記載の端末装置。
【請求項５】
前記端末装置は、前記送信元端末装置の再送スケジュールが所定の許容範囲を超えると判定した場合、再送要求メッセージを前記複数の端末装置に送信し、この再送要求メッセージに応答する再送応答メッセージが所定の時間内に到達したか否かを判定し、前記所定の時間内に到達した再送応答メッセージを送信した端末装置を損失パケットの再送を担当する端末装置に決定する、ことを特徴とする請求項４に記載の端末装置。
【請求項６】
前記マルチキャスト通信にかかるパケットのそれぞれは、先のシーケンス番号を有するパケットの実データを元に所定の関数により生成されたハッシュ値を有している、ことを特徴とする、請求項２から５のいずれかに記載の端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチキャスト通信のための中継装置、並びに端末装置に関する。
【背景技術】
【０００２】
近年、インターネットを利用した映像配信などの普及に伴い、ネットワーク内で複数の相手を指定して同じデータを送信する技術であるマルチキャスト送信の必要性が高まっている。マルチキャスト通信には、データの再送要求のフィードバックによりネットワークの通信料を爆発的に増大させる虞がある。
【０００３】
従来のマルチキャストパケットの再送方法は、（１）送信元に送りなおしてもらう、（２）ルータでキャッシュを取っておいて送りなおしてもらう、（３）他の受信者から必要データを送りなおしてもらう、という３種類であった。
【特許文献１】特表２００７−５０２５６４号公開公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記（１）の方法は、送信元に対する再送要求のフィードバックが集中する可能性があり、大規模モデルに向かない。上記（２）の方法は、再送要求をルータで集約することで送信元に対するフィードバックを削減するが、ルータ自身がデータをキャッシュする必要もあり、通信品質の悪い環境ではデータの保持に限界がある（例えば、特許文献１）。（３）の方法は、再送を担当する端末の選択方法に難があり、適切とは言えない。
【０００５】
本発明は、上記マルチキャスト通信における再送要求の問題点を解決することを目的とするものであり、具体的には、ＲＴＴ（ラウンドトリップタイム）、送信元の再送スケジュールなどを考慮して、送信元と他の受信者ノードとを状況に応じて再送元ノードとして再送を依頼し、最も効率の良い再送元を求める管理方法を提供する。また同じマルチキャスト受信者からの再送を受け付けるときにデータの正当性を保証するためにシーケンス番号が振られる連続したマルチキャストデータにＭＤ５の値を付与し、次に処理すべきデータの改ざん防止などを行うことで安全な再送を受けることを目的とする。
【０００６】
この発明により、有線と通信品質が悪い無線通信環境が混在するようなネットワークでのマルチキャストパケットの到達性向上や、各受信者が最も短時間で損失パケットを回復できる再送元の選定、マルチキャストパケットを送信するサーバへの負担減、などの効果が得られる。
【課題を解決するための手段】
【０００７】
上記課題を解決するための手段として、本発明は以下の特徴を有する。  
本発明の第１の態様は、中継装置として提案される。この中継装置は、マルチキャスト通信によりパケットを伝送する中継装置であって、伝送中に失われた損失パケットの送信を依頼するメッセージである再送要求メッセージに応じた再送応答メッセージを受信し、前記再送応答メッセージが所定の時間内に到達していない場合は、前記再送応答メッセージを破棄することを特徴としている。
【０００８】
本発明の第２の態様は、複数の端末装置間でマルチキャスト通信を行う端末装置として提案される。この端末装置は、送信元端末装置からのマルチキャスト通信によるパケットについて損失パケットを検出した場合、前記複数の端末装置に損失パケットの送信を依頼するメッセージである再送要求メッセージを送信し、前記複数の端末装置から返信された再送応答メッセージを受信し、再送を行う端末装置間でのパケットの往復時間、ホップ数、最大転送ユニット数の少なくとも一つに基づいて、前記損失パケットの再送を担当する端末装置を決定することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、再送要求メッセージによるリンクのあふれの発生を防止することが可能となり、効率的かつ迅速な損失パケットの再送完了を実現することができる
【００１０】
本発明の別の態様によれば、マルチキャスト通信における損失パケットの回復を、再送によって実現する際に、再送を担当するノードをネットワークの状況に応じて変化させることで、効率的かつ迅速な損失パケットの再送完了を実現することができる。
【００１１】
また、本発明のさらに別の態様によれば、再送担当ノードとなった近隣ノードからのデータが真に必要としているデータかを保証することを可能とし、効率的かつ迅速な損失パケットの再送完了を実現することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照しながら本発明の実施の形態を説明する。
本発明は、マルチキャスト通信における高信頼性トランスポートプロトコルに関し、その高信頼性獲得の過程で行われる、損失パケットの回復を担うノードを動的に決定することを主たる目的としている。
【００１３】
［１．本発明の前提となる技術など］
一般に、マルチキャストは送信元となるノード（以下送信元）があるマルチキャストアドレス宛に送ったパケットをそのパケットの受信を希望するノード（以下受信者）がマルチキャストグループへ参加することで経路を形成し、ルータがパケットを必要とされるインタフェースの数だけコピーして転送する。
【００１４】
通常、マルチキャストはＵＤＰパケットとして送信され、ＴＣＰのように相手の状況を確認してから送られるコネクション型ではない。つまり送信元は受信者がパケットを受け取ったかどうかについて関知しないといスタンスを取る。
【００１５】
しかし、マルチキャストによる通信においても、パケットを確実に受信者に届けたい場合、通常のマルチキャスト通信に加えて、パケットロスなどが起こった場合を考慮に入れた振る舞いが必要になる。それは、マルチキャストの高信頼性と呼ばれ、実現するためにルーティングなどを司るＩＰ層より上のトランスポート層でセッションなどの管理を行うプロトコルが必要になる。トランスポート層で機能する高信頼性マルチキャストトランスポートプロトコルでは、送信元が、分割されて送信されるパケットにシーケンス番号を割り振り、受信者側でパケットロスの検出を行っている。
【００１６】
［１．１．一般的なマルチキャスト通信における経路による通信品質の差］
従来のマルチキャスト通信においては、マルチキャストパケットの経路によって通信品質に差が生ずることがある。図８は、従来のマルチキャスト通信における経路による通信品質の差を示す図である。
【００１７】
考えうる状況として、図８に示す状況が考えられる。図８において、送信元端末装置８０１は、有線／無線ルータ８０２に接続されている。有線／無線ルータ８０２は、無線回線により無線端末装置８０４Ｄに接続すると共に、ルータなどの中継器８０３−１〜８０３−５を経由して有線端末装置８０４Ａと接続し、また中継器８０３−１、８０３−６、８０３−７を経由して有線端末装置８０４Ｂと接続し、またさらに中継器８０３−１及び８０３−６を経由して有線端末装置８０４Ｃと接続している。
【００１８】
このように有線、無線通信の混在環境などで、物理的、ネットワーク的に近隣に存在しながらも、マルチキャストパケットの送信元からの経路の構成上、別経路に属する受信者が存在するとき、マルチキャスト送信元からの経路の通信品質が悪く、送信元に再送を依頼しても、必要なデータが得られない場合など、動的に再送元を選択可能にすることが必要である。
【００１９】
図８では受信者として有線端末装置８０４Ａ、８０４Ｂ、８０４Ｃ、無線端末装置８０４Ｄ、そしてマルチキャストパケットの送信元端末装置８０１が描かれている。有線端末装置８０４Ａ、８０４Ｂ、８０４Ｃ、無線端末装置８０４Ｄ、はそれぞれ送信元端末装置８０１が送信したマルチキャストパケットを受信する。
【００２０】
ここで、送信元端末装置８０１から無線端末装置８０４Ｄへの通信品質が悪くパケットロス率が高いと、無線端末装置８０４Ｄは頻繁に送信元端末装置８０１に再送要求を行うことになる。
【００２１】
さて、ネットワークの上流への負荷を低減するために、本発明のようにマルチキャストで再送を行い、より近隣の受信者（端末装置）からデータを再送してもらう方法を取るものとする。このとき有線端末装置８０４Ｂから有線端末装置８０４Ｃに向かって帯域を大きく消費する通信が行われている場合、無線端末装置８０４Ｄは、有線端末装置８０４Ｂ、有線端末装置８０４Ｃからの再送による即時の損失パケットの回復は望めない。そこでホップ数などの面でＢ、Ｃよりも遠い距離にある有線端末装置８０４Ａが再送を行う端末装置として選択されるのである。
【００２２】
現在このマルチキャストの確達性を保証する方法として大きく二つの方式が考えられている。
一つは、送信するパケットに予め冗長パケットを加え、ある程度パケットの損失が起こっても、受信者側で到達したパケットだけで損失分が回復できるようなＦＥＣ(Forward  Error  Correction)と呼ばれる方法と、もう一つは、受信者が受け取れなかった損失パケットを再び送りなおしてもらって補うという再送制御の方法である。
【００２３】
本発明では、上記再送制御に焦点を当てている。再送を行うには、受信者が再送要求を出さなければならない。具体的には再送要求とは、連続して送られてくるパケットのシーケンス番号を基準としてパケットの抜けがあるかどうかを受信者側が判断し、受け取りそこなったパケットが検出された場合に、ＮＡＣＫ(Negative  Acknowledgement)メッセージを受信者が送信する、という方法である。
【００２４】
上記再送制御における再送方法にはいくつか方法があり、一つは送信元が受信者からの要求を受けて損失パケットを送りなおすというものである。その他に必要とするデータを持つ他のノードに再送を依頼する方法や、再送のみを担当する別サーバを要してそのノードに対して再送を要求する場合などがある。
【００２５】
［１．２．再送ノード探索メカニズム］
高信頼性マルチキャストプロトコルにおいては、送信元からのパケットを受信しそこなった受信者（端末装置）は、ＮＡＣＫ（以下再送要求）メッセージを、再送を求めて送信する。この再送要求メッセージの送信方法は、大きく二つに分類される。
【００２６】
［１．２．１．ユニキャストによる再送要求］
一つはユニキャストによる再送要求メッセージの送信である。これは、送信元もしくは決められた宛先に再送を依頼するときに使われる方法で、最も単純な方法である。この方法の利点は、受信者は損失パケットを検出したら、ただちに送信元に再送要求メッセージを送信して、必要なパケットの再送信を依頼するという点である。再送信の要求に応えられるかどうかは、送信元或いは決められた宛先によって判断される。
【００２７】
この方法の欠点は、数多くの受信者が同様にパケットを損失し、それら受信者が一斉に送信元に対してユニキャストによる再送要求メッセージを送信した場合である。送信元付近では再送要求メッセージによるリンクのあふれが発生する可能性がある（再送要求メッセージによるフィードバックあふれ）。
【００２８】
また、この再送要求メッセージによるフィードバックあふれを解消する方法の一つして、受信者から送信元までの経路で中継を担当するルータで再送要求メッセージの集約を行うという方法もある。しかしこの場合中継ノードが使用しているプロトコルを理解して動作する必要があり、ルータ上で転送データをキャッシュしておく必要があり、膨大なデータを扱う場合、ルータに求められる能力が大きくなりすぎるため、現実的でない場合も出てくる。
【００２９】
さらに、このユニキャストによる再送の場合、一つのオブジェクトの送信が完了するまで次のオブジェクトの送信ができなくなる場合もあり、数多くの受信者が存在する場合に、一つのオブジェクトの送信に時間がかかる可能性もある。
【００３０】
また、送信元とは別に、予め再送を担当するノードを設定する場合でも、そのノードへの接続の安定性などにより、動的に再送元を変更する必要が出てくる。
【００３１】
［１．２．２．マルチキャストによる再送要求］
次に、マルチキャストによる再送要求について述べる。マルチキャストによる再送要求は、再送を依頼するノードを、同じマルチキャスト受信者に制限することで効率の良い探索を可能にする。従来行われている方法は、損失パケットを検出した受信者が、探索する範囲を１ホップずつ広げながら徐々に近隣のノードに必要とするデータを要求し、それに応えるノードからデータを受信するというものである。この方法では、必要とするデータを持つマルチキャスト受信者が近隣にいない場合に探索に時間がかかるだけでなく、ホップ数的な近隣というだけで、データ転送に時間がかかる環境にあるノードが選択される可能性もある。また、最終的に送信元が最も近隣の必要データ保持ノードであると判断される場合もある。
【００３２】
［２．本発明の概要］
本発明は、前述したマルチキャストによる再送要求に焦点を当て、さらに効率良く、他の通信に負荷をかけない再送ノードの選定方法を提案する技術である。
【００３３】
マルチキャスト通信によりパケットの再送を行う高信頼性マルチキャストプロトコルにおいて、送受信者間のＲＴＴ（ラウンドトリップタイム）や帯域などのデータが利用できる。再送されるデータが間違いのないものとするためには、送信元から送りなおしてもらうことが望ましい。しかし再送するタイミングや再送への対応、フィードバックあふれなどの懸念から、送信元端末装置だけに再送要求をすることは望ましくない。パケットを中継しているルータがキャッシュとして転送したデータを保存し、そのルータに直接接続しているノードの再送を分担する方法や、近隣に存在する同一データを受け取ったマルチキャストグループメンバに再送を依頼する方法などが開発されている。
【００３４】
本発明はこれらの手段からどのノードに再送を依頼するかを決定する手段を提供することを目的とした通信装置を提供することである。再送要求を所属しているマルチキャストグループ宛に送信し、そのマルチキャストグループに属するメンバから再送可能かどうかの応答を受け取る。送信元とのＲＴＴと要求したノード自身の許容時間との比較から再送を担当するノードである再送担当ノードを決定する。
【００３５】
また、この再送担当ノード決定に際し、近隣ノードからのデータが真に必要としているデータかを保証するには、シーケンス番号などで連続するデータに次のパケットのペイロード部分のＭＤ５値を入れ、データの正当性を確認する。
【００３６】
再送担当ノードを決定するポリシーは、１．時間制限、２．帯域制限である。１．はマルチメディアなどのデータを再生するときのリアルタイム性を求められる場合、２．は無線通信ネットワークなどで帯域が極めて細い場合などを考慮している。判断をするのはあくまで再送を要求しているノードである再送要求ノードである。
【００３７】
［２．１．本発明にかかる再送担当ノードの選定方法］
図１は、本発明が適用されるネットワークの構成例を示す図である。図１において、送信元端末装置１０１（図中白い丸にＳで示した）は、本発明の中継装置に相当する装置である、パケットを中継するルータ１０２（図中白丸で示した）を経由して、受信先である端末装置１０３（図中網掛けした丸で示した）と接続されている。
【００３８】
ルータ１０２は、パケットを中継する装置であって、演算処理装置（ＣＰＵ）、主メモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）、入出力装置（Ｉ／Ｏ）、必要な場合にはハードディスク装置等の外部記憶装置を具備している装置である。
【００３９】
また送信元端末装置１０１及び端末装置１０３は、演算処理装置（ＣＰＵ）、主メモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）、入出力装置（Ｉ／Ｏ）、必要な場合にはハードディスク装置等の外部記憶装置を具備している装置であって、例えば有線／無線回線によるネットワーク通信機能を有するパーソナルコンピュータ、ＰＤＡ（Personal Data Assistant）、携帯電話機、携帯ゲーム機などの情報処理装置である。
【００４０】
図１に示した例では、３つの端末装置１０３（以下、それぞれを区別するために受信先端末装置Ｌ１、Ｌ２、Ｌ３と呼ぶ）は、送信元端末装置１０１からマルチキャストアドレス「224.1.２.X」宛に送られたマルチキャストパケットを受信するマルチキャスト受信者である。通常、図１のようにマルチキャストの経路は、冗長な経路を排除し無駄なパケット転送が行われないようなツリー状に形成されてパケットを受信者まで転送するように選択される。この例では、受信先端末装置Ｌ１、Ｌ２、Ｌ３までの経路はそれぞれ経路ＲＴ１、ＲＴ２、ＲＴ３となる。
【００４１】
さて、ここで受信先端末装置Ｌ２があるパケットが受信できていないことを検出したとする。損失パケットを検出した受信先端末装置Ｌ２が必要とするデータを持つ端末装置であって、送信元端末装置１０１以外の端末装置１０３を探す場合、探索の母集団はなるべく少ないほうが良い。この例では、必要とするマルチキャストパケットを持っているのは、当然同じデータを受け取っていたと考えられる、同じマルチキャストグループの受信者（この例では、受信先端末装置Ｌ１、Ｌ３、及び送信元端末装置１０１）である。そこで図２のように損失パケットを回復したい場合には、他の受信者宛にマルチキャストアドレス「224.1.２.X」宛に再送要求メッセージを送信する。図２に、受信先端末装置Ｌ２が再送要求メッセージを送信する場合の送信経路の例を示す。図２に示すように、受信先端末装置Ｌ２は受信先端末装置Ｌ１、Ｌ３、及び送信元端末装置１０１に宛てて再送要求メッセージをそれぞれ経路ＲＴ４、ＲＴ５、ＲＴ６を経由して送信する。
【００４２】
受信先端末装置Ｌ２によって送信された再送要求メッセージは、ルータ１０２で転送され、各受信者、すなわち受信先端末装置Ｌ１、Ｌ３、及び送信元端末装置１０１に届く。再送要求メッセージを受信した各受信者である受信先端末装置Ｌ１、Ｌ３、及び送信元端末装置１０１は、その再送要求メッセージに対して応えられるかどうかを判断した上で、再送要求メッセージを送信した受信者である受信先端末装置Ｌ２に返答である再送応答メッセージを送信する。
【００４３】
図３は再送要求メッセージを受け取った各受信者及び送信元である受信先端末装置Ｌ１、Ｌ３、及び送信元端末装置１０１の、前記再送要求メッセージに対する応答である再送応答メッセージの経路の例を示している。この例では、受信先端末装置Ｌ１は再送要求メッセージに対して応えられないと判断し、一方受信先端末装置Ｌ３及び送信元端末装置１０１は、再送要求メッセージに対して応えられると判断したものとする。
【００４４】
再送要求に対して応えることができないノードである受信先端末装置Ｌ１は、特に何も返事を返さないことで対応する。一方、再送要求に応えられるノードである受信先端末装置Ｌ３及び送信元端末装置１０１は、再送要求メッセージの送信者である受信先端末装置Ｌ２に宛ててユニキャストで再送応答メッセージを送信する（ＲＴ７、ＲＴ８）。この際、再送要求メッセージに対する再送応答メッセージには再送要求を送信したノードから各受信者までのＲＴＴが含まれている。
【００４５】
図４は、ルータ１０２が再送応答メッセージを破棄する例を示した図である。再送要求メッセージを受け取ったルータ１０２の中で、特にマルチキャスト経路の分岐点となるルータ、つまり図４ではルータＲ１とルータＲ２がそのルータ１０２に当たる。二つ以上のインタフェースからマルチキャストパケットを転送するルータでは、再送要求メッセージに含まれている送信元端末装置１０１と、再送を要求している受信者である受信先端末装置１０３とのＲＴＴ（Round  Trip  Time）を設定し、再送要求メッセージが通過してから再送応答メッセージが戻ってくるまでの時間を計っている。ルータ１０２は、再送要求ノードの許容時間外に届いた再送応答メッセージを破棄することによって再送要求ノードへのフィードバックあふれを防ぐ。
【００４６】
図４に示す例では、ルータＲ１は、送信元端末装置１０１、及び受信先端末装置Ｌ３からそれぞれ再送応答メッセージを受信する。ルータＲ１は、それぞれの再送応答メッセージの宛先及び要求しているデータからこれら再送応答メッセージを同一の再送要求メッセージに対する再送応答メッセージと見なし、再送要求メッセージが通過してからの時間でフィルタリングして許容時間外に届いた再送応答メッセージを破棄するのである。
【００４７】
この再送応答メッセージの本来の目的は、すばやい返答でなるべく短時間で再送を完了することにあるので、ある一定時間でのフィルタリングは有効である。許容時間（ここでは送信元までのＧＲＴＴ）内に再送要求ノード（この例では、受信先端末装置Ｌ２）に到達した再送応答メッセージは、再送を依頼した再送要求ノード（この例では、受信先端末装置Ｌ２）によって処理され、最も好ましいノード（この例では、受信先端末装置Ｌ３及び送信元端末装置１０１のいずれか）を再送担当ノードとして決定する。
【００４８】
［２．２．再送応答メッセージの集約］
上述のように、損失パケットを検知した受信者である受信先端末装置１０３（再送要求ノード）は、マルチキャストアドレス宛に再送要求メッセージを送信する。再送要求メッセージを受信した他の各受信者及び送信元は再送信可能であるかを、再送要求を出した受信者に対してユニキャストで送信する。ここで再送を要求する先のマルチキャストグループのメンバが膨大であるときは、膨大な量の再送応答メッセージが再送要求ノードに集中することになり、これは従来のユニキャストによる再送要求が送信元であふれるという現象と同じフィードバックあふれを引き起こすことになる。
【００４９】
本発明は、再送応答メッセージをフィルタリングすることでこの問題を解決する。再送要求の目的は、必要とする損失パケットの回復にある。単純に回復するだけならば、再送を担当するノードの状態がどうであれ、いつかは回復するという見込みのもと再送処理を要求することも可能だが、ストリーミングデータなどのように、ある時間制限を持って回復を必要としているケースも多く見ることができる。そういった時間制約が求められるデータ転送においては、いち早く再送要求が受理され損失パケットが回復することが必要である。そのようなケースも想定して、本発明では再送要求に対する再送応答を受け付ける時間制限を設け、再送要求ノードへの途中の経路において時間制限に間に合わなかった再送応答メッセージを中継ノードにより遮断させることで、再送要求ノードへのフィードバックあふれを防ぐこととしている。
【００５０】
この時間制限によるフィルタリングの基準となる時間は、受信者である受信先端末装置１０３から送信元端末装置１０１までのＧＲＴＴ（Great-est  Round  Trip Time）をベースとして、受信者ノードである受信先端末装置１０３が任意に決定することができる。ＲＴＴは２点間のパケットの行き帰りの所要時間を表しているので、時々刻々と変化するネットワークの状況により、再送担当ノードを変更するトリガとすることが可能である。フィルタリングを実行するルータ１０２は、再送要求メッセージを転送する際に、経路の分岐を発生したルータ（例えば、図４におけるルータＲ１、Ｒ２）である。
【００５１】
経路の分岐点となる各ルータ１０２は、再送要求ノードからの再送要求メッセージが通過してから、送信元端末装置１０１又は他の受信先端末装置１０２から送信された再送応答メッセージを受信するまでの時間を計測する。ルータ１０２は、その時間が再送要求ノードが定めた時間制限の許容範囲であった場合は、その再送応答メッセージを転送し、そうでない場合はその時点で再送応答メッセージを破棄する。再送応答メッセージが、すべてフィルタリングされた場合には、再送担当としてオリジナルの送信元ノードが再送要求ノードにより選択されることになる。
【００５２】
［２．３．再送要求ノードにおける再送担当ノード決定方法の例］
次に、本発明において、ルータ１０２から再送応答メッセージを受信した再送要求ノードが再送担当ノードを決定する再送担当ノード決定方法について図５を参照しながら説明する。図５は、再送応答メッセージを受信した再送要求ノードによる、再送担当ノード決定方法の例を示すフローチャートである。
【００５３】
再送応答メッセージを受けた再送要求している受信者は、設定した時間内に得られた再送候補となるノードの中から再送担当ノードを選択することになる。
【００５４】
本発明にかかる再送担当ノードの決定方法では、いくつかのパラメータの比較によって決定する。このパラメータの一つは、損死すパケットを検知して再送要求メッセージを送信した受信先端末装置１０３である再送要求ノードから、再送担当ノードまでのＲＴＴである。このＲＴＴは、ネットワークの混雑状況などにより動的に変化する性質のものなので、たとえ経由するルータが少ない、つまりホップ数の面から見て近隣にあると言えるノード同士でも、メッセージのやり取りに時間がかかる場合も示すことができる。
【００５５】
まず、再送要求ノードである受信先端末装置１０３は、マルチキャストメンバ宛に再送要求メッセージを送信する（Ｓ１０１）。再送要求メッセージを受信し、かつ再送要求に応じられると判定したマルチキャストメンバ、すなわち他の受信先端末装置１０３及び送信元端末装置１０１は、再送要求ノードである受信先端末装置１０３に宛てて再送応答メッセージを送信する（Ｓ１０２）。
【００５６】
再送応答メッセージを受信した再送要求ノードである受信先端末装置１０３は、受信したそれぞれの再送応答メッセージの到達時刻を調べ、送信元端末装置１０１へのＲＴＴよりも短い時間でやり取り可能なマルチキャストメンバが存在するか否かを判定する（Ｓ１０３）。
【００５７】
送信元端末装置１０１へのＲＴＴよりも短い時間でやり取り可能なマルチキャストメンバが存在する場合は、そのマルチキャストメンバを選択する(Ｓ１０８)。但し、信元端末装置１０１へのＲＴＴよりも短い時間でやり取り可能なマルチキャストメンバが複数ある場合（Ｓ１０３、Ｙｅｓ）には、（１）ＴＴＬがより小さいマルチキャストメンバ、（２）帯域がより広いマルチキャストメンバを優先して、再送担当ノードに決定する（Ｓ１０９）。すなわち、ＲＴＴが同じ値だった場合は、再送担当ノードを決定する基準として、ＴＴＬ（Time-to-Live）、つまりホップ数による選択を行う。経由するルータやネットワークの数が多いほどパケットロス率は高まることを考慮し、再送パケットの損失を可能な限り防ぐための選択である。
【００５８】
次に再送担当ノードを決定する基準として、ＭＴＵ（Maximum  Transmission  Unit）を比較の基準とする。ＭＴＵは最大転送量を表し、パケットの通る経路の太さを現している。これも再送パケット自体の損失を防ぐためになるべく安定した経路を選択するという方針の下で決定を行うための選択である。
【００５９】
一方、ステップＳ１０３において送信元端末装置１０１へのＲＴＴよりも短い時間でやり取り可能なマルチキャストメンバが存在しないと判定した場合（Ｓ１０３、Ｎｏ）には、送信元端末装置１０１の再送を行う時間が明らかであることを前提として、送信元端末装置１０１の再送スケジュールが、再送要求ノードである受信先端末装置１０３の許容範囲を超えるか否かを判定する（Ｓ１０４）。ここで許容範囲とは、再送にかかる時間経過により不都合が生じない時間を言えい、ユーザやソフトウエアなどが指定する時間であっても良い。
【００６０】
送信元端末装置１０１の再送スケジュールが、再送要求ノードである受信先端末装置１０３の許容範囲を超えないと判定した場合（Ｓ１０４、Ｎｏ）、再送要求ノードである受信先端末装置１０３は、送信元端末装置１０１を再送担当ノードとして決定する（Ｓ１０５）。
【００６１】
一方、送信元端末装置１０１の再送スケジュールが、再送要求ノードである受信先端末装置１０３の許容範囲を超えると判定した場合（Ｓ１０４、Ｙｅｓ）、再送要求ノードである受信先端末装置１０３は、再び再送要求メッセージをマルチキャストメンバに対して送信する(Ｓ１０６)。この再送要求メッセージに応答する再送応答メッセージを受信した再送要求ノードである受信先端末装置１０３は、再送応答メッセージのフィルタリングを行う。すなわち、再送要求ノードである受信先端末装置１０３は、ユーザが任意に設定する時間（例えば、送信元端末装置１０１とのＲＴＴのｎ倍（ｎは任意の数））内に再送要求ノードである受信先端末装置１０３に到達した再送応答メッセージのマルチキャストメンバはあるか否かを判定する（Ｓ１０７）。
【００６２】
ステップＳ１０７において、ユーザが任意に設定する時間内に再送要求ノードである受信先端末装置１０３に到達した再送応答メッセージのマルチキャストメンバはあると判定した場合（Ｓ１０７、Ｙｅｓ）、ユーザが任意に設定する時間内に再送要求ノードである受信先端末装置１０３に到達した再送応答メッセージを送信したマルチキャストメンバが再送担当ノードとして決定される(Ｓ１８０)。そのようなマルチキャストメンバが複数存在する場合には、前述と同様に、（１）ＴＴＬがより小さいマルチキャストメンバ、（２）帯域がより広いマルチキャストメンバを優先して、再送担当ノードに決定する（Ｓ１０９）。
【００６３】
一方、ステップＳ１０７において、ユーザが任意に設定する時間内に再送要求ノードである受信先端末装置１０３に到達した再送応答メッセージのマルチキャストメンバはないと判定した場合（Ｓ１０７、Ｎｏ）、再送要求ノードである受信先端末装置１０３は、送信元端末装置１０１を再送担当ノードとして決定する（Ｓ１０５）。
【００６４】
次に、図６に送信元ノード（送信元端末装置１０１）、再送要求ノード、すなわちパケット損失を検出した受信先端末装置１０３、及び他のマルチキャストグループメンバ（送信元端末装置１０１及び他の受信先端末装置１０３）の間で交換される再送要求メッセージ、再送応答メッセージ、及び各自の振る舞いについてのシーケンス図を示す。
【００６５】
まず、送信元端末装置１０１は、受信先端末装置１０３にマルチキャストパケットを連続して送信する（Ｓ２０１）。このとき、マルチキャストパケットの一つが損失パケットになったものとする（図中、点線の矢印で示した）。なお、このとき送信元端末装置１０１は、同じマルチキャストメンバである他の受信先端末装置１０３にも同様にマルチキャストパケットを送信しているが、これは図示を省略している。
【００６６】
この受信先端末装置１０３（以下、再送要求ノードと呼ぶ）は損失パケットの発生を検出すると、他のマルチキャストメンバ（他の受信先端末装置１０３、及び送信元端末装置１０１）にマルチキャストアドレスを用いて再送要求メッセージを送信する（Ｓ２０２）。再送要求メッセージを受信したマルチキャストメンバのそれぞれは、再送要求に応じることが可能かどうかを判断し、再送要求に応じることが可能なマルチキャストメンバは、再送要求ノードに宛てて再送応答メッセージを送信する（Ｓ２０３）。
【００６７】
送信応答メッセージを受信した再送要求ノードである受信先端末装置１０３は、送信元ノードである送信元端末装置１０１とのＲＴＴ内に到着した再送応答メッセージがあるかどうかを調べ、そのような再送応答メッセージがあればその再送応答メッセージを送信したマルチキャストメンバを再送担当ノードに決定する（Ｓ２０４）。そのようなマルチキャストメンバが複数存在する場合には、（１）ＴＴＬがより小さいマルチキャストメンバ、（２）帯域がより広いマルチキャストメンバを優先して、再送担当ノードに決定する。なお、これら処理は図５のＳ１０３、Ｓ１０８、Ｓ１０９に相当する。
【００６８】
Ｓ２０４において再送担当ノードを決定できない場合には、再送要求ノードである受信先端末装置１０３は、送信元端末装置１０１の再送スケジュールが許容範囲内であるかどうかを調べ、再送スケジュールが許容範囲内であれば、送信元端末装置１０１を再送担当ノードに決定する（Ｓ２０５）。なお、これらの処理は図６のステップＳ１０４、Ｓ１０５に相当する。
【００６９】
上記Ｓ２０５において、再送スケジュールが許容範囲内でない場合には、再送要求ノードである受信先端末装置１０３は、マルチキャストメンバに対して再送要求メッセージを再度送信する（Ｓ２０６）。
【００７０】
再度の再送要求メッセージを受信したマルチキャストメンバのそれぞれは、再送要求に応じることが可能かどうかを判断し、再送要求に応じることが可能なマルチキャストメンバは、再送要求ノードに宛てて再送応答メッセージを送信する（Ｓ２０７）。
【００７１】
送信応答メッセージを受信した再送要求ノードである受信先端末装置１０３は、ユーザが任意に設定する時間（例えば、送信元端末装置１０１とのＲＴＴのｎ倍（ｎは任意の数））内に再送応答メッセージを受信できたかどうかを調べ、そのような再送応答メッセージが存在する場合には、その再送応答メッセージを送信したマルチキャストメンバを再送担当ノードに決定する（Ｓ２０８）。そのようなマルチキャストメンバが複数存在する場合には、（１）ＴＴＬがより小さいマルチキャストメンバ、（２）帯域がより広いマルチキャストメンバを優先して、再送担当ノードに決定する。なお、これらの処理は、図５のステップＳ１０６、Ｓ１０７、Ｓ１０８、Ｓ１０９に相当する。
【００７２】
次に、ステップＳ２０４、Ｓ２０５、Ｓ２０８のいずれかで再送担当ノードが決定した場合、再送要求ノードである受信先端末装置１０３は、再送担当ノードである受信先端末装置１０３或いは送信元端末装置１０１に損失パケットの送信を求める再送依頼メッセージを送信する（Ｓ２０９）。再送依頼メッセージを受信した再送担当ノードは、損失パケットのデータを生成し（Ｓ２１０）、損失パケットを再送要求ノードである受信先端末装置１０３に送信する（Ｓ２１１）。
【００７３】
一方、ステップＳ２０４、Ｓ２０５、Ｓ２０８のいずれかで再送担当ノードが決定した場合、再送要求ノードである受信先端末装置１０３は、送信元端末装置１０１に損失パケットの送信を求める再送依頼メッセージを送信する（Ｓ２１２）。再送依頼メッセージを受信した再送担当ノードは、損失パケットを再送要求ノードである受信先端末装置１０３に送信する（Ｓ２１３）。
【００７４】
上記の処理を行うことにより、再送要求ノードである受信先端末装置１０３は、送信元端末装置１０１からの再送に時間がかかる場合や、再送を行わない場合などに、繰り返し条件を緩和しながら再送担当ノードを探索することができる。
【００７５】
［２．４．データ正当性の保証］
上記のような方法で、損失パケットの再送を依頼する場合、送信元端末装置１０１から直接再送されるパケットは良いが、近隣に存在する同じマルチキャストグループのメンバである受信先端末装置１０３からの再送の場合、送られてきたパケットが本当に必要としているデータなのかどうかを疑う必要が出てくる。
【００７６】
一般に、損失パケットの検出にはデータをパケットに分割した際のシーケンス番号を使っている。ストリーミング配信やＩＰ電話のようなマルチメディア系のデータの場合、シーケンス番号どおりに処理されることが望ましい。
【００７７】
そこで、本発明では、図７のように、各パケットに、次のシーケンス番号を持つパケットのペイロードのＭＤ５値を持たせる。図７は、本発明にかかる送信元端末装置１０１及び再送担当ノードが生成するパケットのデータ構成例を示す図である。
【００７８】
図７に示す例では、それぞれ連続したシーケンス番号を有する３つのパケットのデータ構成例を示す。３つのパケット７００−１、７００−２、７００−３はそれぞれ、ヘッダ７０１、ＭＤ５値７０２、実データ（ペイロード）７０３で構成されている。パケット７００−１のシーケンス番号が最も若く、以下順にパケット７００−２、７００−３の順でシーケンス番号を有している。
【００７９】
ここで、パケット７００−２のＭＤ５値７０２は、パケット７００−１の実データ７０３を元に不可逆な一方向関数であるＭＤ５により生成された値である。同様に、パケット７００−３のＭＤ５値は、パケット７００−２の実データ７０３を元に不可逆な一方向関数であるＭＤ５により生成された値である。ＭＤ５値は、認証やデジタル署名などに使われるハッシュ関数(一方向要約関数)の一つであるＭＤ５により生成される固定長のハッシュ値である。
【００８０】
上記の構成を有するパケットを使用することで、再送要求の結果送られてきたパケットが改ざんされていないかを再送要求ノードである受信先端末装置１０３が判定することが可能となり、送信元端末装置１０１以外のノード／マルチキャストメンバからの損失パケットの再送による回復も受け入れることが可能となる。
【００８１】
［３．本発明の利点］
本発明によれば、マルチキャスト通信における損失パケットの回復を、再送によって実現する際に、再送を担当するノードをネットワークの状況に応じて変化させることで、効率的かつ迅速な損失パケットの再送完了を実現することができる。
【図面の簡単な説明】
【００８２】
【図１】本発明が適用されるネットワークの構成例を示す図
【図２】受信先端末装置が再送要求メッセージを送信する場合の送信経路の例を示す図
【図３】再送要求メッセージに対する応答である再送応答メッセージの経路の例を示す図
【図４】ルータが再送応答メッセージを破棄する例を示した図
【図５】再送担当ノード決定方法の例を示すフローチャート
【図６】送信元ノード、再送要求ノード、他のメンバの動作例を示すシーケンス図
【図７】本発明にかかる送信元端末装置が生成するパケットのデータ構成例を示す図
【図８】従来のマルチキャスト通信における経路による通信品質の差を示す図
【符号の説明】
【００８３】
１０１              …  送信元端末装置（端末装置）
１０２、Ｒ１、Ｒ２  …  ルータ
１０３              …  受信先端末装置
【図１】
2009010575.tif 000003
【図２】
2009010575.tif 000004
【図３】
2009010575.tif 000005
【図４】
2009010575.tif 000006
【図５】
2009010575.tif 000007
【図６】
2009010575.tif 000008
【図７】
2009010575.tif 000009
【図８】
2009010575.tif 000010