(57)【要約】【課題】同一パケットの二重配信を防止し、ネットワークの帯域を有効に活用することができる通信装置およびネットワークシステムを得ること。【解決手段】データ分配決定手段１４は、マルチキャストツリーを構成する通信装置１間の推定帯域に基づいて、自装置の子である通信装置１へのパケットの分配の割合を算出して子である通信装置１へ送信するパケットを決定する。データ分配決定手段１４は、ＡＬＭ通信手段１５、および下位レイヤ終端手段１６を介して、決定した子である通信装置１へ送信するパケットの情報を予約情報として子である通信装置１に送信するとともに、予約情報に基づいて子である通信装置１にパケットを送信し、自装置の親からの予約情報に基づいて兄弟である通信装置１にパケットを送信する。【選択図】        図２
2007251805.tif 000002
【特許請求の範囲】
【請求項１】
マルチキャストツリーを構成し、アプリケーションレイヤマルチキャストによるマルチキャスト通信を行うネットワークシステムに適用される通信装置であって、
上位アプリケーションからの要求または他の通信装置からの要求によって前記マルチキャストツリーを構成して管理するマルチキャストツリー構築手段と、
前記マルチキャストツリー構築手段によって管理されるマルチキャストツリーから自装置の通信相手となる親、子、および兄弟となる通信装置に関するホスト情報と、親である通信装置から子である通信装置へのパケットの分配が登録された自装置が生成した子に対する予約情報と、自装置の親である通信装置から受信した親からの予約情報と、フィードバック情報に含まれる各推定帯域情報とを管理するホスト管理手段と、
前記ホスト情報に基づいて通信相手となる通信装置から自装置への転送経路の帯域を推定し、通信相手である通信装置を識別するための通信装置識別子と推定した帯域を対応付けた通信相手毎の推定帯域情報を含むフィードバック情報を通信相手となる通信装置に送信するとともに、自装置の兄弟である通信装置から受信したフィードバック情報を親である通信装置に送信し、自装置が親である通信装置の場合、受信したフィードバック情報に含まれる推定帯域情報および自装置が送信した推定帯域情報に基づいて、自装置の子である通信装置へのパケットの分配の割合を算出し、算出したパケットの分配を子に対する予約情報として子である通信装置に送信するとともに、前記ホスト管理手段に通知するデータ分配決定手段と、
前記子に対する予約情報に基づいて子である通信装置にパケットを送信し、前記親からの予約情報に基づいて兄弟である通信装置にパケットを送信する配信データ管理手段と、
を備えることを特徴とする通信装置。
【請求項２】
前記ホスト管理手段は、
パケットの廃棄を検出すると、前記親からの予約情報に基づいて廃棄されたパケットを有する通信装置が送信元である通信装置の他に存在するか否かを判定し、送信元である通信装置の他に廃棄されたパケットを有する通信装置が存在する場合には、管理している各推定帯域情報に基づいて推定帯域が最も大きい通信装置を選択し、
前記配信データ管理手段は、
前記ホスト管理手段によって選択された通信装置に廃棄されたパケットの再送を要求すること、
を特徴とする通信装置。
【請求項３】
兄弟である通信装置にパケットを送信する際に、前記親からの予約情報に当該パケットを有する送信元候補となる通信装置が複数存在する場合、前記送信元候補となる通信装置の中から送信元の通信装置を選択する送信先／送信要求先決定手段、
をさらに備えることを特徴とする通信装置。
【請求項４】
前記データ分配決定手段は、
パケットの分配を決定する際に、複数の通信装置に同一のパケットを分配した場合には、前記各推定帯域情報に基づいて推定帯域が最も大きい通信装置を送信元として選択し、選択した送信元の通信装置を示す送信元通信装置識別子を予約情報に含めておき、
前記送信先／送信要求先決定手段は、
前記送信元候補となる通信装置の中から前記予約情報に含まれる送信元通信装置識別子が示す通信装置を選択すること、
を特徴とする請求項３に記載の通信装置。
【請求項５】
前記送信先／送信要求先決定手段は、
前記送信元候補となる通信装置のアドレスと送信先となる通信装置のアドレスとの差が最も小さい送信元候補の通信装置を送信元の通信装置として選択すること、
を特徴とする請求項３に記載の通信装置。
【請求項６】
前記送信先／送信要求先決定手段は、
送信元候補の通信装置の通信装置識別子であるアドレスと、送信先の通信装置のアドレスとに基づいて送信元候補の通信装置毎のＨａｓｈ計算を実行し、計算結果が最も大きい送信元候補の通信装置を送信元の通信装置として選択すること、
を特徴とする請求項３に記載の通信装置。
【請求項７】
パケットの送受信処理を監視して輻輳を検出した場合には、
親である通信装置および兄弟である通信装置に自装置の子である通信装置を示す通信装置識別子を含むバイパス要求を送信するとともに、前記ホスト管理手段、前記データ分配決定手段、および前記配信データ管理手段にバイパス要求を送信したことを通知してパケットの送信を停止させ、
バイパス要求を受信した場合には、
前記バイパス要求に含まれる通信装置識別子が示す通信装置との間にコネクションを確立し、前記ホスト管理手段、前記データ分配決定手段、および前記配信データ管理手段にバイパス要求を受信したことを通知して前記バイパス要求を送信した通信装置の代わりに前記コネクションを確立した通信装置にパケットを送信させるバイパス要求送受信手段、
をさらに備えることを特徴とする請求項１〜６の何れか一つに記載の通信装置。
【請求項８】
請求項１〜７の何れか一つに記載の通信装置を用いて親子関係および兄弟関係によるマルチキャストツリーを構成し、アプリケーションレイヤマルチキャストによるマルチキャスト通信を行うネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションレイヤマルチキャストによるマルチキャスト通信に関するものであり、特に、マルチキャストツリーを構成する通信装置間の帯域を有効に活用する通信装置およびネットワークシステムに関するものである。
【背景技術】
【０００２】
マルチキャストには、ＩＰ層において処理を行なうＩＰマルチキャストと、アプリケーション層において処理を行なうアプリケーションレイヤマルチキャスト（ＡＬＭ：Application Layer Multicast）とがある。ＩＰマルチキャストは、パケット内のＩＰアドレスにマルチキャストアドレスが設定されているパケットを受信した際にルータが受信したパケットを複製して転送するため、ネットワークシステム内の全てのルータがＩＰマルチキャスト対応機能を備える必要がある。しかしながら、ＩＰマルチキャスト対応ルータは、ＩＰマルチキャスト非対応（ユニキャスト）ルータと比較して高額であることや、既に構築されているネットワークのユニキャストルータをＩＰマルチキャスト対応ルータに置き換える作業などの点から、ＩＰマルチキャストによるネットワークの導入障壁が高いのが現状である。
【０００３】
これに対してＡＬＭは、マルチキャストグループに属するエンドホスト同士で論理リンク（マルチキャストツリー）を構成し、エンドホストのアプリケーションがパケットを複製し、それぞれがユニキャスト通信を行うことでマルチキャスト通信を実現している。そのため、ＡＬＭは、ＩＰマルチキャストと比較して、同じパケットが同じ物理リンクを複数回使用するなど網資源の使用効率は悪いが、ネットワーク内のユニキャスト対応ルータをＩＰマルチキャスト対応ルータに置き換えることなくそのまま使用することができ、既存のネットワークシステムに導入しやすいというメリットがある。
【０００４】
一般的にＡＬＭでは、エンドホスト間でＩＰマルチキャストと同様に通信装置の親子関係および兄弟関係によるマルチキャストツリーを構築し、構築したマルチキャストツリーに沿って親である通信装置から子である通信装置にパケットを配信するが、このマルチキャストツリーによる配信のほかに、親である通信装置以外の通信装置から直接パケットを受信することでスループットを向上させるBulletという方式が提案されている（たとえば、非特許文献１参照）。
【０００５】
【特許文献１】D. Kostic, A. Rodriguez, J. Albrecht, and A. Vahdat. "Bullet:High bandwidth data dissemination using an overlay mesh". In 19th ACM Symposium on Operating Systems Principles, October 2003.
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記非特許文献１に記載の従来技術は、親となる通信装置以外の通信装置からパケットを受信することで、マルチキャストツリーに沿って親である通信装置から子である通信装置にパケットを配信するＡＬＭによるマルチキャスト通信よりもスループットを向上することができる。
【０００７】
しかしながら、上記非特許文献１に記載の従来技術では、各通信装置が独立して他の通信装置からパケットを取得するため、自装置の親となる通信装置が同じパケットを同様に他の通信装置から取得した場合、同一のパケットが二重に送信されるため、ネットワークの帯域を無駄に消費するという問題があった。
【０００８】
また、上記非特許文献１に記載の従来技術では、自装置に必要なパケットを有する通信装置を検出するために、マルチキャストツリーの末端の通信装置であるリーフから送信元の通信装置であるルート方向のマルチキャストツリーに沿って情報を選択収集し、ルートからリーフに対してその情報を配分するようにしているため、親以外の通信装置からパケットを受信するには時間がかかり、ネットワークの輻輳などの状態変化に十分対応できない場合があるという問題があった。
【０００９】
本発明は、上記に鑑みてなされたものであって、同一パケットの二重配信を防止し、ネットワークの帯域を有効に活用することができる通信装置およびネットワークシステムを得ることを第１の目的とする。
【００１０】
また、本発明の第２の目的は、マルチキャストツリーの親以外の通信装置からパケットを取得する際に、パケットを取得する通信装置を検出する時間を削減し、ネットワークの輻輳などの状態変化に対応することができる通信装置およびネットワークシステムを得ることである。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、本発明は、マルチキャストツリーを構成し、アプリケーションレイヤマルチキャストによるマルチキャスト通信を行うネットワークシステムに適用される通信装置であって、上位アプリケーションからの要求または他の通信装置からの要求によって前記マルチキャストツリーを構成して管理するマルチキャストツリー構築手段と、前記マルチキャストツリー構築手段によって管理されるマルチキャストツリーから自装置の通信相手となる親、子、および兄弟となる通信装置に関するホスト情報と、親である通信装置から子である通信装置へのパケットの分配が登録された自装置が生成した子に対する予約情報と、自装置の親である通信装置から受信した親からの予約情報と、フィードバック情報に含まれる各推定帯域情報とを管理するホスト管理手段と、前記ホスト情報に基づいて通信相手となる通信装置から自装置への転送経路の帯域を推定し、通信相手である通信装置を識別するための通信装置識別子と推定した帯域を対応付けた通信相手毎の推定帯域情報を含むフィードバック情報を通信相手となる通信装置に送信するとともに、自装置の兄弟である通信装置から受信したフィードバック情報を親である通信装置に送信し、自装置が親である通信装置の場合、受信したフィードバック情報に含まれる推定帯域情報および自装置が送信した推定帯域情報に基づいて、自装置の子である通信装置へのパケットの分配の割合を算出し、算出したパケットの分配を子に対する予約情報として子である通信装置に送信するとともに、前記ホスト管理手段に通知するデータ分配決定手段と、前記子に対する予約情報に基づいて子である通信装置にパケットを送信し、前記親からの予約情報に基づいて兄弟である通信装置にパケットを送信する配信データ管理手段と、を備えることを特徴とする。
【発明の効果】
【００１２】
この発明によれば、マルチキャストツリーを構成する通信装置間の推定帯域に基づいて、親である通信装置が自装置の子である通信装置へのパケットの分配の割合を算出し、算出したパケットの分配を子に対する予約情報として子である通信装置に送信するとともに、子に対する予約情報に基づいて子である通信装置にパケットを送信し、自装置の親からの予約情報に基づいて兄弟である通信装置にパケットを送信するようにしているため、同一パケットの二重配信を低減し、ネットワークの帯域を有効に活用することができる通信装置を得ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１３】
以下に、本発明における通信装置およびネットワークシステムの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１４】
実施の形態１．
図１〜図６を参照してこの発明の実施の形態１を説明する。図１は、この発明におけるネットワークシステムの構成の一例を示す図である。この発明におけるネットワークシステムは、図１に示すように、通信装置１（１−１〜１−５を示す）が親子関係によるマルチキャストツリーを構築する。図１においては、通信装置１−１と通信装置１−２，１−３、および通信装置１−２と通信装置１−４，１−５の２組の親子関係によってマルチキャストツリーを構築しており、通信装置１−１と通信装置１−２，１−３の親子関係においては、通信装置１−１が親であり、通信装置１−２，１−３が子である。また、通信装置１−２と通信装置１−４，１−５の親子関係においては、通信装置１−２が親であり、通信装置１−４，１−５が子であり、通信装置１−４，１−５は通信装置１−１から見ると孫となる。また、通信装置１−２と通信装置１−３、および通信装置１−４と通信装置１−５は、それぞれ同一の親を有する兄弟関係となっている。
【００１５】
通信装置１は、自装置の親となる通信装置１、子となる通信装置１、および兄弟となる通信装置１を通信相手としてそれぞれユニキャスト通信を行うことでマルチキャスト通信を実現する。通信装置１は、自装置の親となる通信装置１および兄弟となる通信装置１間の帯域を推定し、推定した帯域と当該帯域の通信相手となる通信装置１（相手装置）を識別するための通信装置識別子（たとえば、通信装置１のアドレスを用いる）とを対応付けた帯域推定情報を含むフィードバック情報４（４ａ〜４ｄを示す），５（５ａ〜５ｄを示す）を通信相手となる通信装置１に送信する。また、通信装置１は、受信したフィードバック情報に基づいてパケット２（２ａ−１〜２ａ−５，２ｂ−１〜２ｂ−５，２ｃ−１〜２ｃ−５，２ｄ−１〜２ｄ−５，２ｅ−１〜２ｅ−５を示す）の配分を決定し、決定したパケット２の配分を通知する予約情報３（３ａ，３ｂを示す）を子となる通信装置１に送信する。通信装置１は、予約情報３に基づいて受信したパケット２を子となる通信装置１および兄弟となる通信装置１に送信する。
【００１６】
図１においては、通信装置１−２は、親である通信装置１−１および兄弟である通信装置１−３から受信するパケット２ｂ（２ｂ−１〜２ｂ−５を示す）や図示しない帯域測定用のパケットを用いた通信によって通信装置１−１および通信装置１−３から自装置への転送経路の帯域を推定して推定帯域情報を生成する。通信装置１−２は、推定帯域情報を含むフィードバック情報４ａ，５ａを通信装置１−１，１−３に送信する。
【００１７】
通信装置１−３は、親である通信装置１−１および兄弟である通信装置１−２から受信するパケット２ｃ（２ｃ−１〜２ｃ−５を示す）や図示しない帯域測定用のパケットを用いた通信によって通信装置１−１および通信装置１−２から自装置への転送経路の帯域を推定し、推定帯域情報を含むフィードバック情報４ｂ，５ｂを通信装置１−１，１−２に送信する。
【００１８】
通信装置１−４は、親である通信装置１−２および兄弟である通信装置１−５から受信するパケット２ｄ（２ｄ−１〜２ｄ−５を示す）や図示しない帯域測定用のパケットを用いた通信によって通信装置１−２および通信装置１−５から自装置への転送経路の帯域を推定し、推定帯域情報を含むフィードバック情報４ｃ，５ｃを通信装置１−２，１−５に送信する。
【００１９】
通信装置１−５は、親である通信装置１−２および兄弟である通信装置１−４から受信するパケット２ｅ（２ｅ−１〜２ｅ−５を示す）や図示しない帯域測定用のパケットを用いた通信によって通信装置１−２および通信装置１−４から自装置への転送経路の帯域を推定し、推定帯域情報を含むフィードバック情報４ｄ，５ｄを通信装置１−２，１−４に送信する。
【００２０】
このとき、通信装置１は、兄弟である通信装置１から受信したフィードバック情報５に含まれる帯域推定情報を親である通信装置１へのフィードバック情報４に付加して送信する。すなわち、通信装置１は、子である通信装置１以外の通信装置１との帯域推定情報をすべて親である通信装置１に通知する。
【００２１】
図１においては、通信装置１−２は、通信装置１−３からのフィードバック情報５ｂに含まれる自装置から通信装置１−３への転送経路の推定帯域情報と、通信装置１−１から自装置への転送経路の推定帯域情報とを含むフィードバック情報４ａを通信装置１−１に送信する。通信装置１−３は、通信装置１−２からのフィードバック情報５ａに含まれる自装置から通信装置１−２への転送経路の推定帯域情報と、通信装置１−１から自装置への転送経路の推定帯域情報とを含むフィードバック情報４ｂを通信装置１−１に送信する。通信装置１−４は、通信装置１−５からのフィードバック情報５ｄに含まれる自装置から通信装置１−５への転送経路の推定帯域情報と、通信装置１−２から自装置への転送経路の推定帯域情報とを含むフィードバック情報４ｃを通信装置１−２に送信する。通信装置１−５は、通信装置１−４からのフィードバック情報５ｃに含まれる自装置から通信装置１−４への転送経路の推定帯域情報と、通信装置１−２から自装置への転送経路の推定帯域情報とを含むフィードバック情報４ｄを通信装置１−２に送信する。これにより、マルチキャストツリーの親子関係にある通信装置１間の転送経路の推定帯域情報が親である通信装置１に通知される。
【００２２】
親子関係における親となる通信装置１は、子である通信装置１から受信したフィードバック情報４に基づいて、子である通信装置１に送信するパケットの分配を決定する。図１においては、通信装置１−１は、シーケンス番号「＃１」のパケット２−１、シーケンス番号「＃２」のパケット２−２、およびシーケンス番号「＃４」のパケット２−４を通信装置１−２に送信し、シーケンス番号「＃１」のパケット２−１、シーケンス番号「＃３」のパケット２−３、およびシーケンス番号「＃５」のパケット２−５を通信装置１−３に送信することを決定する。また、通信装置１−２は、パケット２−１，２−３を通信装置１−４に送信し、パケット２−２，２−４，２−５を通信装置１−５に送信することを決定する。
【００２３】
親である通信装置１は、決定したパケットの分配を子である通信装置１の通信装置識別子に対応付けた予約情報３を生成し、生成した予約情報３を子である通信装置１に送信する。図１においては、通信装置１−１が通信装置１−２にパケット２−１，２−２，２−４を送信し、通信装置１−１が通信装置１−３にパケット２−１，２−３，２−５を送信するという情報が含まれた予約情報３ａを、通信装置１−１が通信装置１−２，２−３に送信する。また、通信装置１−２が通信装置１−４にパケット２−１，２−３を送信し、通信装置１−２が通信装置１−５にパケット２−２，２−４，２−５を送信するという情報が含まれる予約情報３ｂを、通信装置１−２が通信装置１−４，１−５に送信する。
【００２４】
予約情報３を受信した通信装置１は、予約情報３に基づいて自装置の親である通信装置１または兄弟である通信装置１から受信したパケット２を子である通信装置１および兄弟である通信装置１に送信する。
【００２５】
図１においては、通信装置１−１が、パケット２−１，２−２，２−４をパケット２ｂ−１，２ｂ−２，２ｂ−４として通信装置１−２に送信し、パケット２−１，２−３，２−５をパケット２ｃ−１，２ｃ−３，２ｃ−５として通信装置１−３に送信する。通信装置１−２は、予約情報３ａから通信装置１−３にはパケット２−２，２−４が通信装置１−１から送信されないことを認識し、受信したパケット２ｂ−２，２ｂ−４をパケット２ｃ−２，２ｃ−４として通信装置１−３に送信する。これにより、通信装置１−３は、パケット２−１〜２−５であるパケット２ｃ−１〜２ｃ−５を受信する。通信装置１−３は、予約情報３ａから通信装置１−２にはパケット２−３，２−５が通信装置１−１から送信されないことを認識し、パケット２ｃ−３，２ｃ−５をパケット２ｂ−３，２ｂ−５として通信装置１−２に送信する。これにより、通信装置１−２は、パケット２−１〜２−５であるパケット２ｂ−１〜２ｂ−５を受信する。
【００２６】
通信装置１−２はパケット２ｂ−１，２ｂ−３をパケット２ｄ−１，２ｄ−３として通信装置１−４に送信し、パケット２ｂ−２，２ｂ−４，２ｂ−５をパケット２ｅ−２，２ｅ−４，２ｅ−５として通信装置１−５に送信する。通信装置１−４は、予約情報３ｂから通信装置１−５にはパケット２−１，２−３が送信されないことを認識し、パケット２ｄ−１，２ｄ−３をパケットパケット２ｅ−１，２ｅ−３として通信装置１−５に送信する。これにより、通信装置１−５は、パケット２−１〜２−５であるパケット２ｅ−１〜２ｅ−５を受信する。また、通信装置１−５は、予約情報３ｂから通信装置１−４にはパケット２−２，２−４，２−５が送信されないことを認識し、パケット２ｅ−２，２ｅ−４，２ｅ−５をパケット２ｄ−２，２ｄ−４，２ｄ−５として通信装置１−４に送信する。これにより、通信装置１−４は、パケット２−１〜２−５であるパケット２ｄ−１〜２ｄ−５を受信する。
【００２７】
通信装置１は、予め定められた周期毎に自装置の親となる通信装置１および兄弟となる通信装置１間の帯域を推定して推定帯域情報を含むフィードバック情報４，５を送信し、親となる通信装置１は、フィードバック情報４を受信するとフィードバック情報に基づいてパケットの配分を決定して予約情報３を子である通信装置１に送信する。
【００２８】
図２は、先の図１に示した通信装置１のマルチキャスト通信に関する構成を示すブロック図である。図２において、通信装置１は、アプリケーションインタフェース手段１０、ＡＬＭ通信手段１５、下位レイヤ終端手段１６、マルチキャストツリー構築手段１１、配信データ管理手段１２、ホスト管理手段１３、およびデータ分配決定手段１４を備えている。
【００２９】
アプリケーションインタフェース手段１０は、上位のアプリケーションとのインタフェース機能を有し、上位のアプリケーションからのデータを配信データ管理手段１２に出力するとともに、配信データ管理手段１２から入力されるパケットを上位のアプリケーションに出力する。また、アプリケーションインタフェース手段１０は、上位のアプリケーションからのマルチキャスト通信への参加または離脱の要求をマルチキャストツリー構築手段１１に出力する。
【００３０】
ＡＬＭ通信手段１５は、ＡＬＭによるマルチキャスト通信におけるデータ配信に関するパケットの送受信を行なう。下位レイヤ終端手段１６は、他の通信装置１と接続するネットワークの下位レイヤであるレイヤ１〜４の終端機能を有し、ネットワークから受信したパケットをＡＬＭ通信手段１５に出力するとともに、ＡＬＭ通信手段１５から入力されたパケットをネットワークに出力する。
【００３１】
マルチキャストツリー構築手段１１は、アプリケーションインタフェース手段１０を介して入力されるマルチキャスト通信への参加要求または離脱要求をＡＬＭ通信手段１５および下位レイヤ終端手段１６を介して他の通信装置１に送信し、マルチキャストツリーの生成や更新、削除などマルチキャストツリーを管理する。
【００３２】
また、マルチキャストツリー構築手段１１は、構築したマルチキャストツリーの親子関係および兄弟関係の情報から、自装置に関する親交関係や兄弟関係を抽出し、抽出した通信装置１に関するホスト情報を生成してホスト管理手段１３に通知する。
【００３３】
ホスト管理手段１３は、マルチキャストツリー構築手段１１から通知されるホスト情報を管理する。また、下位レイヤ終端手段１６およびＡＬＭ通信手段１５を介して他の通信装置１から受信した予約情報３および自装置のデータ分配決定手段１４がＡＬＭ通信手段１５および下位レイヤ終端手段１６を介して他の通信装置１に送信した予約情報３を管理する。
【００３４】
データ分配決定手段１４は、ホスト管理手段１３によって管理されているホスト情報に基づいて通信相手となる通信装置１から自装置への転送経路の帯域を推定する。データ分配決定手段１４は、通信相手である通信装置１を識別するための通信装置識別子と推定した帯域を対応付けた推定帯域情報を含むフィードバック情報４，５を通信相手である通信装置１に送信する。このとき、データ分配決定手段１４は、親である通信装置１に送信するフィードバック情報４には、子以外の通信装置１、すなわち兄弟である通信装置１から受信したフィードバック情報５に含まれる推定帯域情報を付加する。
【００３５】
データ分配決定手段１４は、自装置が親となる通信装置１である場合には、受信したフィードバック情報４に含まれる推定帯域情報に基づいてパケットの分配の割合を算出し、算出した分配の割合を含む予約情報３を子となる通信装置１に送信する。
【００３６】
配信データ管理手段１２は、自装置がマルチキャストツリーの最上流に位置する場合、アプリケーションインタフェース手段１０を介して上位のアプリケーションから入力されたデータを分割してパケット２を生成し、生成したパケット２にシーケンス番号を付与する。配信データ管理手段１２は、シーケンス番号を付与したパケット２をデータ分配決定手段１４が算出した分配の割合に基づいて子である通信装置１に送信する。
【００３７】
また、配信データ管理手段１２は、自装置がマルチキャストツリーの最上流に位置していない場合、すなわち自装置の親となる通信装置１が存在する場合、受信したパケット２をシーケンス番号に基づいて並べ替えるなど受信パケットの管理を行なうとともに、ホスト管理手段１３によって管理されている予約情報３に基づいて、受信したパケット２を子および／または兄弟となる通信装置１に送信する。
【００３８】
つぎに、通信装置１の動作を詳細に説明する。まず、マルチキャストツリーを構築してパケットの分配を決定するマルチキャスト構築処理の動作について説明する。アプリケーションインタフェース手段１０を介して上位のアプリケーションから、マルチキャストツリーへの参加要求を受けると、マルチキャストツリー構築手段１１は、ＡＬＭ通信手段１５および下位レイヤ終端手段１６を介してマルチキャスト通信への参加要求を送信し、他の通信装置１と通信を行なってマルチキャストツリーを構築する。
【００３９】
マルチキャストツリーの構築は、通信装置１のマルチキャストツリー構築手段１１がそれぞれ処理を分散して行なってもよいし、ネットワークシステムに図示しないマルチキャストツリーを管理するマルチキャストツリー管理装置を備え、マルチキャストツリー管理装置が各通信装置１からのマルチキャスト通信への参加要求や離脱要求を受信して構築してもよく、マルチキャストツリーの構築方法はどのようなものであってもかまわない。ここでは、マルチキャストツリーが構築されると、マルチキャストツリーを構築する通信装置１の親子関係や兄弟関係、通信装置１の通信装置識別子などの情報を含むマルチキャストツリー情報がマルチキャストツリー内の各通信装置１に通知されることで、各通信装置１がマルチキャストツリーの構成を認識するものとする。
【００４０】
マルチキャストツリー構築手段１１は、マルチキャストツリー情報の親子関係や兄弟関係から自装置に関する親子関係や兄弟関係を抽出する。マルチキャストツリー構築手段１１は、抽出した親子関係や兄弟関係から、通信装置１と自装置との関係（自装置に対して親であるのか、子であるのか、兄弟であるのか）を当該通信装置１の通信装置識別子に対応付けたホスト情報を生成する。マルチキャストツリー構築手段１１は、生成したホスト情報をホスト管理手段１３に通知する。ホスト管理手段１３は、通知されたホスト情報を記憶して管理する。
【００４１】
マルチキャストツリー構築手段１１によってマルチキャストツリーが構築され、ホスト管理手段１３にホスト情報が記憶された後、データ分配決定手段１４は、ホスト情報に基づいて自装置が親であるか否かを認識する。
【００４２】
具体的には、データ分配決定手段１４は、ホスト情報の通信装置１と自装置との関係として「子」が存在するか否かを判定し、「子」が存在する場合には自装置は親であると認識し、「子」が存在しない場合には自装置は親ではないと認識する。
【００４３】
自装置が親であると認識した場合、データ分配決定手段１４は、パケット２の分配の配分を決定する。マルチキャスト通信前の初期状態には、子である通信装置１からフィードバック情報４を受信していないので、データ分配決定手段１４は、たとえば、子である通信装置１に均等にパケットを分配することを決定する。データ分配決定手段１４は、決定したパケットの分配を子である通信装置１の通信装置識別子に対応付けた予約情報３を生成する。
【００４４】
データ分配決定手段１４は、生成した予約情報３をＡＬＭ通信手段１５および下位レイヤ終端手段１６を介して子である通信装置１に送信する。また、データ分配決定手段１４は、生成した予約情報３（自装置からみて子に対する予約情報３）をホスト管理手段１３に通知する。ホスト管理手段１３は、通知された予約情報３を記憶して管理する。
【００４５】
一方、通信装置１に親となる通信装置１が存在する場合、すなわち自装置が子である場合、通信装置１は、下位レイヤ終端手段１６およびＡＬＭ通信手段１５を介して親である通信装置１からの予約情報３を受信する。予約情報３を受信すると、ホスト管理手段１３は、受信した予約情報３（自装置からみて親からの予約情報３）を記憶して管理する。
【００４６】
つぎに、マルチキャストツリー構築処理が終了した後に実行されるマルチキャスト通信処理の動作について説明する。通信装置１がマルチキャストツリーの最上流の通信装置１である場合、配信データ管理手段１２は、アプリケーションインタフェース手段１０を介して上位のアプリケーションから送信すべきデータを受信する。配信データ管理手段１２は、受信したデータを分割してパケット２を生成し、生成したパケット２にシーケンス番号を付与する。配信データ管理手段１２は、シーケンス番号をホスト管理手段１３に通知する。
【００４７】
ホスト管理手段１３は、記憶している子に対する予約情報３およびシーケンス番号に基づいてパケットの送信先となる通信装置１を選択する。ホスト管理手段１３が記憶する予約情報３には、通信装置１の通信装置識別子に対応付けて当該通信装置１に送信すべきパケットの分配が登録されている。パケットの分配は、たとえば、シーケンス番号を除数Ｘでの剰余によって指定される。よって、ホスト管理手段１３は、シーケンス番号を除数Ｘで除算した剰余と一致する剰余が登録されている通信装置識別子が示す通信装置１を当該パケットの送信先として選択する。ホスト管理手段１３は、選択した通信装置１の通信装置識別子をシーケンス番号毎に対応付けた送信先情報を配信データ管理手段１２に出力する。
【００４８】
配信データ管理手段１２は、シーケンス番号を付与したパケットを送信先情報のシーケンス番号毎に対応付けられた通信装置識別子が示す通信装置１にＡＬＭ通信手段１５および下位レイヤ終端手段１６を介して送信する。これにより、データ分配決定手段１４によって決定されたパケットの分配に基づいたパケットの送信が実現される。
【００４９】
一方、通信装置１がマルチキャストツリーの最上流に位置する通信装置１ではない場合、配信データ管理手段１２は、下位レイヤ終端手段１６およびＡＬＭ通信手段１５を介してパケット２を受信する。配信データ管理手段１２は、受信したパケット２のシーケンス番号を抽出し、抽出したシーケンス番号をホスト管理手段１３に出力する。
【００５０】
ホスト管理手段１３は、記憶している予約情報３およびシーケンス番号に基づいてパケットの送信先となる通信装置１を選択する。具体的には、ホスト管理手段１３は、自装置の子となる通信装置１に対しては、自装置のデータ分配決定手段１４が生成した子に対する予約情報３を用いて、抽出したシーケンス番号を除数Ｘで除算した余りと一致する剰余が登録されている通信装置識別子が示す通信装置１を当該パケットの送信先として選択する。また、自装置の兄弟となる通信装置１に対しては、親となる通信装置１から受信した親からの予約情報３を用いて、抽出したシーケンス番号を除数Ｘで除算した剰余が登録されていない通信装置１を選択する。すなわち、兄弟である通信装置１の場合、ホスト管理手段１３は、抽出したシーケンス番号を除数Ｘで除算した剰余が登録されていれば、抽出したシーケンス番号のパケットは親である通信装置１から兄弟である通信装置１に送信されていると認識し、抽出したシーケンス番号を除数Ｘで除算した剰余が登録されていなければ、自装置が送信すべきパケットであると認識する。ホスト管理手段１３は、選択した通信装置１の通信装置識別子をシーケンス番号毎に対応付けた送信先情報を配信データ管理手段１２に出力する。
【００５１】
配信データ管理手段１２は、受信したパケット２をコピーし、コピーしたパケット２を送信先情報のシーケンス番号毎に対応付けられた通信装置識別子が示す通信装置１にＡＬＭ通信手段１５および下位レイヤ終端手段１６を介して送信する。これにより、データ分配決定手段１４によって決定されたパケットの分配、および親である通信装置１から通知されたパケットの配分に基づいたパケットの送信が実現される。
【００５２】
また、配信データ管理手段１２は、受信したパケット２をデータ分配決定手段１４に出力するとともに、受信したパケットをシーケンス番号順に並べ替えて、すべてのシーケンス番号のパケット２の受信が完了したか否かを判定する。すべてのパケット２の受信が完了した場合、配信データ管理手段１２は、アプリケーションインタフェース手段１０を介してすべてのパケット２を上位のアプリケーションに出力する。
【００５３】
一方、データ分配決定手段１４は、配信データ管理手段１２から入力されるパケット２、すなわち下位レイヤ終端手段１６およびＡＬＭ通信手段１５を介して親である通信装置１および兄弟である通信装置１から受信したパケット２や、予め定められた周期毎に送信した帯域測定用のパケットに基づいて、親である通信装置１および兄弟である通信装置１から自装置への転送経路の帯域を推定する。
【００５４】
データ分配決定手段１４は、ＡＬＭ通信手段１５および下位レイヤ終端手段１６を介して通信相手である通信装置１を識別するための通信装置識別子と推定した帯域を対応付けた推定帯域情報を含むフィードバック情報４，５を通信相手である通信装置１に送信する。このとき、データ分配決定手段１４は、親である通信装置１に送信するフィードバック情報４には、子以外の通信装置１、すなわち兄弟である通信装置１からのフィードバック情報５に含まれる推定帯域情報を付加する。
【００５５】
データ分配決定手段１４は、ホスト管理手段１３に記憶されているホスト情報に基づいて自装置が親であるか否かを認識する。自装置が親である場合、データ分配決定手段１４は、フィードバック情報４に含まれる推定帯域情報に基づいてパケットの分配を決定するパケット分配処理を実行する。
【００５６】
図３のフローチャート、および図４〜図６（図６−１，図６−２を示す）を参照して、パケット分配処理の動作を詳細に説明する。なお、ここでは、説明を簡単にするために、図４に示すように、通信装置１Ｓが親であり、通信装置１Ａ〜１Ｃが子となる親子関係の場合を例に挙げて説明する。また、通信装置１Ｓには、通信装置１Ｓから通信装置１Ａへの転送経路の推定帯域が「３０」であり、通信装置１Ｓから通信装置１Ｂ，１Ｃへの転送経路の推定帯域が「２０」であり、通信装置１Ａから通信装置１Ｂへの転送経路の推定帯域が「５」であり、通信装置１Ａから通信装置１Ｃへの転送経路の推定帯域が「２０」であり、通信装置１Ｂから通信装置１Ａへの転送経路の推定帯域が「５」であり、通信装置１Ｂから通信装置１Ｃへの転送経路の推定帯域が「４０」であり、通信装置１Ｃから通信装置１Ｂへの転送経路の推定帯域が「４０」であり、通信装置１Ｃから通信装置１Ａへの転送経路の推定帯域が「２０」であることを示す推定帯域情報を含むフィードバック情報が通知されているものとする。なお、ここでは、説明を簡単にするために同一の子同士の通信装置１の推定帯域は両方向とも同じ値としたが、方向によって推定帯域が異なっていてもかまわない。
【００５７】
通信装置１Ｓのデータ分配決定手段１４は、子である通信装置１Ａ〜１Ｃからのフィードバック情報を受信すると、フィードバック情報に含まれる推定帯域情報を抽出する。また、データ分配決定手段１４は、各通信装置１Ａ〜１Ｃの割り当て帯域を初期化（この場合は「０」）する。
【００５８】
通信装置１Ｓのデータ分配決定手段１４は、推定帯域情報に基づいて子であるすべての通信装置１Ａ〜１Ｃの流入帯域を算出する（ステップＳ１００）。ここで、流入帯域とは、送信元となる通信装置１Ｓ，１Ａ〜１Ｃから送信先となる通信装置１Ａ〜１Ｃへの各転送経路の帯域の合計値のことである。なお、データ分配決定手段１４は、子である通信装置１Ａ〜１Ｃ間の流入帯域が自装置から当該通信装置１Ａ〜１Ｃへの流入帯域よりも大きい場合には、子である通信装置１Ａ〜１Ｃ間の推定帯域を自装置から当該通信装置１Ａ〜１Ｃへの推定帯域に置き換える。
【００５９】
具体的には、通信装置１Ｓ（図中ではＳ）から通信装置１Ａ（図中ではＡ）への転送経路の推定帯域は「３０」であり、通信装置１Ｂ（図中ではＢ）から通信装置１Ａへの転送経路の推定帯域は「５」であり、通信装置１Ｃ（図中ではＣ）から通信装置１Ａへの転送経路の推定帯域は「２０」である（図４参照）。通信装置１Ｂ，１Ｃから通信装置１Ａへの転送経路の推定帯域は、通信装置１Ｓから通信装置１Ｂ，１Ｃへの転送経路の推定帯域以下であるので、データ分配決定手段１４は、図５−１に示すように、通信装置１Ｂ，１Ｃから通信装置１Ａへの転送経路の推定帯域をそのまま用いて、通信装置１Ａの流入帯域「５５」を算出する。
【００６０】
また、通信装置１Ｓから通信装置１Ｂへの転送経路の推定帯域は「２０」であり、通信装置１Ａから通信装置１Ｂへの転送経路の推定帯域は「５」であり、通信装置１Ｃから通信装置１Ｂへの転送経路の推定帯域は「４０」である（図４参照）。通信装置１Ｃから通信装置１Ｂへの転送経路の推定帯域は、通信装置１Ｓから通信装置１Ｃへの転送経路の推定帯域より大きいので、データ分配決定手段１４は、図５−１に示すように、通信装置１Ｃから通信装置１Ｂへの転送経路の推定帯域「４０」を通信装置１Ｓから通信装置１Ｃへの転送経路の推定帯域「２０」に置き換えて通信装置１Ｂの流入帯域「４５」を算出する。
【００６１】
また、通信装置１Ｓから通信装置１Ｃへの転送経路の推定帯域は「２０」であり、通信装置１Ａから通信装置１Ｃへの転送経路の推定帯域は「２０」であり、通信装置１Ｂから通信装置１Ｃへの転送経路の推定帯域は「４０」である（図４参照）。通信装置１Ｂから通信装置１Ｃへの転送経路の推定帯域は、通信装置１Ｓから通信装置１Ｂへの転送経路の推定帯域より大きいので、データ分配決定手段１４は、図５−１に示すように、通信装置１Ｂから通信装置１Ｃへの転送経路の推定帯域「４０」を通信装置１Ｓから通信装置１Ｂへの転送経路の推定帯域「２０」に置き換えて通信装置１Ｃの流入帯域「６０」を算出する。
【００６２】
データ分配決定手段１４は、計算した流入帯域が最も小さい通信装置１Ａ〜１Ｃを処理対象通信装置として選択する（ステップＳ１０１）。ここでは、通信装置１Ｂの流入帯域が最も小さいので、データ分配決定手段１４は、通信装置１Ｂを処理対象通信装置として選択する。
【００６３】
また、データ分配決定手段１４は、各通信装置１Ａ〜１Ｃに帯域を割り当てた後、割り当てた帯域に応じてパケットの分配を決定する際の基準帯域を算出する。基準帯域は、下記の式（１）によって求めることができる。
基準帯域＝最も小さい流入帯域／シーケンス番号の指定に用いる除数      …式（１）
【００６４】
データ分配決定手段１４は、処理対象通信装置への転送経路の帯域を割り当てる（ステップＳ１０２）。ここでは、通信装置１Ｂが処理対象通信装置として選択されている。よって、データ分配決定手段１４は、通信装置１Ｂへの転送経路の帯域を割り当てる。
【００６５】
具体的には、通信装置１Ｓから通信装置１Ｂへの転送経路は、「通信装置１Ｓ→通信装置１Ａ→通信装置１Ｂ」の第１の転送経路と、「通信装置１Ｓ→通信装置１Ｂ」の第２の転送経路と、「通信装置１Ｓ→通信装置１Ｃ→通信装置１Ｂ」の第３の転送経路の３つである。第１の転送経路では、通信装置１Ａから通信装置１Ｂへの転送経路の推定帯域が「５」であるので、帯域「５」を割り当てる。第２の転送経路では、通信装置１Ｓから通信装置１Ｂの転送経路の推定帯域が「２０」であるので、帯域「２０」を割り当てる。また、第３の転送経路では、通信装置１Ｃから通信装置１Ｂへの推定帯域が「２０」であるので、帯域「２０」を割り当てる。すなわち、データ分配決定手段１４は、親から処理対象通信装置への転送経路毎に、当該転送経路の推定帯域が最も小さい帯域を割り当てる。
【００６６】
データ分配決定手段１４は、未完了の通信装置１Ａ〜１Ｃ、すなわち処理対象通信装置以外の通信装置１Ａ〜１Ｃの割り当て帯域を更新する（ステップＳ１０３）。ここでは、処理対象通信装置として通信装置１Ｂが選択されているので、通信装置１Ａ，１Ｃの割り当て帯域を更新する。
【００６７】
具体的には、通信装置１Ｓから処理対象通信装置である通信装置１Ｂへの転送経路に帯域を割り当てた際に、通信装置１Ｓから通信装置１Ａ，１Ｃへの転送経路の帯域も決定している。よって、未完了の通信装置の転送経路は、通信装置１Ａと通信装置１Ｃ間の転送経路、および通信装置１Ｂから通信装置１Ａ，１Ｃへの転送経路である。すなわち、データ分配決定手段１４は、通信装置１Ｓから通信装置１Ａへの転送経路として、「通信装置１Ｓ→通信装置１Ｂ→通信装置１Ａ」の第４の転送経路、および「通信装置１Ｓ→通信装置１Ｃ→通信装置１Ａ」の第５の転送経路と、通信装置１Ｓから通信装置１Ｃへの転送経路として「通信装置１Ｓ→通信装置１Ａ→通信装置１Ｃ」の第６の転送経路、および「通信装置１Ｓ→通信装置１Ｂ→通信装置１Ｃ」の第７の転送経路との割り当て帯域を更新する。
【００６８】
上述したように、第１の転送経路である「通信装置１Ｓ→通信装置１Ａ→通信装置１Ｂ」には、帯域「５」が割り当てられている。通信装置１Ｂから通信装置１Ａへの転送経路の推定帯域は「５」であり、第１の転送経路に割り当てた帯域「５」と等しい。よって、データ分配決定手段１４は、第１の転送経路に割り当てた帯域「５」を通信装置１Ａを経由する第６の転送経路「通信装置１Ｓ→通信装置１Ａ→通信装置１Ｃ」に帯域「５」を割り当てる。
【００６９】
第２の転送経路である「通信装置１Ｓ→通信装置１Ｂ」には帯域「２０」が割り当てられている。通信装置１Ｂから通信装置１Ａへの転送経路の推定帯域は「５」であり、第２の転送経路に割り当てた帯域「２０」以下である。よって、データ分配決定手段１４は、第２の転送経路に割り当てた帯域「２０」の内、通信装置１Ｂから通信装置１Ａの推定帯域「５」と等しい帯域「５」を通信装置１Ｂを経由する第４の転送経路「通信装置１Ｓ→通信装置１Ｂ→通信装置１Ａ」に割り当てる。
【００７０】
また、通信装置１Ｂから通信装置１Ｃへの転送経路の推定帯域は「２０」であり、第２の転送経路に割り当てた帯域「２０」と等しい。よって、データ分配決定手段１４は、第２の転送経路に割り当てた帯域「２０」を通信装置１Ｂを経由する第７の転送経路「通信装置１Ｓ→通信装置１Ｂ→通信装置１Ｃ」に割り当てる。
【００７１】
第３の転送経路である「通信装置１Ｓ→通信装置１Ｃ→通信装置１Ｂ」には帯域「２０」が割り当てられている。通信装置１Ｃから通信装置１Ａへの転送経路の推定帯域は「２０」であり、第３の転送経路に割り当てた帯域「２０」と等しい。よって、データ分配決定手段１４は、第３の転送経路に割り当てた帯域「２０」を通信装置１Ｃを経由する第５の転送経路「通信装置１Ｓ→通信装置１Ｃ→通信装置１Ａ」に割り当てる。
【００７２】
データ分配決定手段１４は、割り当てた帯域に応じてパケットの分配を決定する。上述したように、パケットの分配はシーケンス番号を除数Ｘによって除算した際の剰余によって指定する。よって、データ分配決定手段１４は、図６−１に示すように、シーケンス番号を除数Ｘで除算した際の剰余ＳＮを列方向とし、子である通信装置１Ａ〜１Ｃを行方向としたビットマップを用いて自装置から各通信装置１Ａ〜１Ｃへのパケットの分配を決定する。
【００７３】
なお、除数Ｘの相対は粒度によって変化するが、各通信装置１Ｓ，１Ａ〜１Ｃ間の転送経路の最低帯域と最大帯域との比が「１００〜１０００」程度と考えると、除数Ｘは「１００〜１０００」程度あればよい。また、子の数は５０台以下程度と考えると、ビットマップの容量は、最大で５０Ｋｂｉｔ（６Ｋバイト）程度となる。図６−１においては、説明を簡単にするために除数Ｘを「１０」としている。
【００７４】
データ分配決定手段１４は、上記式（１）によって算出した基本帯域を用いて、下記の式（２）によって各通信装置１Ａ〜１Ｃへのパケットの分配割合を算出する。
分配割合＝通信装置に割り当てた帯域／基本帯域      …  式（２）
具体的には、通信装置１Ｓから通信装置１Ａへの転送経路には帯域「５」が割り当てられ、通信装置１Ｓから通信装置１Ｂ，１Ｃへの転送経路にはそれぞれ帯域「２０」が割り当てられているので、通信装置１Ａのパケットの分配割合は「５／４．５≒２」となり、通信装置１Ｂ，１Ｃへのパケットの分配割合はそれぞれ「２０／４．５≒５」となる。なお、ここでは、上記式（２）によって算出された分配割合の小数点以下を切り上げている。
【００７５】
データ分配決定手段１４は、除数分のパケット（この場合は１０個のパケット）を算出した通信装置１Ａ〜１Ｃへのパケットの分配割合に基づいて、剰余ＳＮが重ならないように均等にパケットを分配する。また、分配割合は小数点以下を切り上げにしているため余分な割り当てが発生する場合がある。この場合は、一方を削除すればよい。
【００７６】
図６−１においては、通信装置１Ａに剰余ＳＮが「１」，「３」の２個のパケットを分配し、通信装置１Ｂに剰余ＳＮが「０」，「２」，「４」，「６」，「８」の５個のパケットを分配し、通信装置１Ｃに剰余ＳＮが「１」，「３」，「５」，「７」，「９」の５個のパケットを分配している。
【００７７】
データ分配決定手段１４は、割り当てた帯域を帯域割り当て前の推定帯域（リンク）から減算して推定帯域を更新するとともに、各通信装置１Ａ〜１Ｃへの割り当て帯域の合計を算出する（ステップＳ１０４）。具体的には、図５−２に示すように、通信装置１Ｓから通信装置１Ａへの転送経路には帯域「５」が割り当てられたので、推定帯域は「２５」となる。通信装置１Ｂから通信装置１Ａへの転送経路には帯域「５」が割り当てられたので、推定帯域は「０」となる。また、通信装置１Ｃから通信装置１Ａへの転送経路には帯域「２０」が割り当てられたので、推定帯域は「０」となり、通信装置１Ａに割り当てた帯域の合計は「３０」となる。
【００７８】
また、通信装置１Ｓから通信装置１Ｂへの転送経路には帯域「２０」が割り当てられたので、推定帯域は「０」となる。通信装置１Ａから通信装置１Ｂへの転送経路には帯域「５」が割り当てられたので、推定帯域は「０」となる。また、通信装置１Ｃから通信装置１Ｂへの転送経路には帯域「２０」が割り当てられたので、推定帯域は「０」となり、通信装置１Ｂに割り当てた帯域の合計は「４５」となる。
【００７９】
さらに、通信装置１Ｓから通信装置１Ｃへの転送経路には帯域「２０」が割り当てられたので、推定帯域は「０」となる。通信装置１Ａから通信装置１Ｃへの転送経路には帯域「５」が割り当てられたので、推定帯域は「１５」となる。また、通信装置１Ｂから通信装置１Ｃへの転送経路には帯域「２０」が割り当てられたので、推定帯域は「０」となり、通信装置１Ｃに割り当てた帯域の合計は「４５」となる。
【００８０】
割り当てた帯域を帯域割り当て前の推定帯域（リンク）から減算して推定帯域を更新し、各通信装置１Ａ〜１Ｃへの割り当て帯域の合計を算出した後に、データ分配決定手段１４は、最も小さい流入帯域より割り当て帯域が小さい通信装置１Ａ〜１Ｃが存在するか否かを判定する（ステップＳ１０５）。
【００８１】
最も小さい流入帯域より割り当て帯域が小さい通信装置１Ａ〜１Ｃが存在する場合、データ分配決定手段１４は、割り当て帯域の最も小さい通信装置１Ａ〜１Ｃを新たな処理対象通信装置として選択し、選択した処理対象通信装置への転送経路に帯域を割り当て、未完了の通信装置１の割り当て帯域を更新し、割り当てた帯域を割り当て前の推定帯域から減算するとともに割り当て帯域を算出する動作を、最も小さい流入帯域より割り当て帯域が小さい通信装置１Ａ〜１Ｃが存在しなくなるまで（各通信装置１Ａ〜通信装置１Ｃの割り当て帯域が最も小さい流入帯域以上になるまで）繰り返す（ステップＳ１０２〜Ｓ１０６）。
【００８２】
ここでは、先の図５−２に示したように、現在の処理対象通信装置である通信装置１Ｂの割り当て帯域が「４５」であり、通信装置１Ａの割り当て帯域が「３０」であり、通信装置１Ｃの割り当て帯域が「４５」であるので、データ分配決定手段１４は、通信装置１Ａを新たな処理対象通信装置として選択する。
【００８３】
処理対象通信装置である通信装置１Ａへの転送経路は、図５−２に示したように、通信装置１Ｓから通信装置１Ａへの転送経路の推定帯域が「２５」であり、他の通信装置１Ｂ，１Ｃから通信装置１Ａへの転送経路の推定帯域は「０」である。また、通信装置１Ａの現在の割り当て帯域は「３０」であり、流入帯域が最も小さい通信装置１Ｂの流入帯域が「４５」であるので、データ分配決定手段１４は、ステップＳ１０２によって、通信装置１Ｓから通信装置１Ａへの転送経路の推定帯域「３０」から通信装置１Ａの割り当て帯域の不足分の帯域「１５」を通信装置１Ａに割り当てる。すなわち、ステップＳ１０２によって、データ分配決定手段１４は、処理対象通信装置への割り当て帯域は、流入帯域が最も小さい通信装置１Ａ〜１Ｃの流入帯域以下とする。
【００８４】
なお、データ分配決定手段１４は、処理対象通信装置に対して複数割り当て可能な帯域がある場合には、たとえば、親である通信装置１Ｓから処理対象通信装置への転送経路を最優先とし、つぎに、兄弟である通信装置１Ａ〜１Ｃから処理対象通信装置への転送経路の中で、余剰帯域が大きい（推定帯域が大きい）転送経路から順に割り当てる。
【００８５】
データ分配決定手段１４は、ステップＳ１０３によって、未完了の通信装置１Ａ〜１Ｃの割り当て帯域を更新するが、ここでは、通信装置１Ｃの割り当て帯域は、通信装置１Ｂの流入帯域以上となっているので、対象外とする。すなわち、ステップＳ１０３において、データ分配決定手段１４は、未完了の通信装置１Ａ〜１Ｃの割り当て帯域の更新は、流入帯域が最も小さい通信装置１の流入帯域より割り当て帯域が小さい通信装置１Ａ〜１Ｃのみを対象として割り当て帯域を更新する。
【００８６】
データ分配決定手段１４は、新たに通信装置１Ｓから通信装置１Ａ〜１Ｃへの転送経路に割り当てた帯域に応じてパケットの分配を決定する。ここでは、通信装置１Ｓから通信装置１Ａへの転送経路に新たに帯域「１５」を割り当てている。よって、データ分配決定手段１４は、上記式（２）から、通信装置１Ａへのパケットの分配割合「１５／４≒４」を算出し、算出した分配割合に応じてパケットを分配する。
【００８７】
流入帯域が最も小さい通信装置１Ｂを処理対象通信装置として帯域を割り当てた際に、先の図６−１に示すように通信装置１Ｓから通信装置１Ａ〜１Ｃへのパケットを分配しているので、データ分配決定手段１４は、図６−２に示すように、既に分配されているパケットを除いて、剰余ＳＮが重ならないように均等にパケットを均等に分配する。
【００８８】
図６−２においては、通信装置１Ａに剰余ＳＮが「０」，「２」，「４」，「６」のパケットを分配している。また、分配割合は小数点以下を切り上げたために余分な割り当てが発生しているので、先の図６−１において通信装置１Ａに分配された剰余ＳＮが「１」のパケットと、通信装置１Ｃに分配された剰余ＳＮが「３」のパケットを削除している。
【００８９】
データ分配決定手段１４は、ステップＳ１０４によって、割り当てた帯域を割り当て前の推定帯域から減算するとともに、各通信装置１Ａ〜１Ｃへの割り当て帯域の合計を算出する。この場合、通信装置１Ｓから通信装置１Ａへの転送経路に帯域「１５」を割り当てているので、データ分配決定手段１４は、通信装置１Ｓから通信装置１Ａへの転送経路の推定帯域「２５」（図５−２参照）から帯域「１５」を減算するとともに、通信装置１Ａの割り当て帯域「３０」に帯域「１５」を加算して、図５−３に示すように、通信装置１Ｓから通信装置１Ａへの転送経路の推定帯域を「１０」とし、通信装置１Ａの割り当て帯域を「４５」にする。これにより、通信装置１Ａ〜通信装置１Ｃの各割り当て帯域が「４５」となり、流入帯域が最も小さい通信装置１Ｂの流入帯域「４５」と等しくなる。よって、各通信装置１Ａ〜１Ｃの割り当て帯域が最も小さい流入帯域以上になり、データ分配決定処理を終了する。
【００９０】
データ分配決定手段１４は、データ分配決定処理によって決定したパケットの分配を通信装置１の通信装置識別子に対応付けた予約情報３を生成し、生成した予約情報３をＡＬＭ通信手段１５および下位レイヤ終端手段１６を介して子である通信装置１に送信するとともに、生成した予約情報３をホスト管理手段１３に通知して記憶させる。
【００９１】
一方、下位レイヤ終端手段１６およびＡＬＭ通信手段１５を介して親である通信装置１からの予約情報３を受信すると、ホスト管理手段１３は受信した予約情報３を記憶して管理する。これにより、新たな予約情報３に基づいてパケットの送信先となる通信装置１を選択することが可能となる。
【００９２】
以上説明したように、この実施の形態１においては、マルチキャストツリーを構成する通信装置１間の推定帯域に基づいて、親である通信装置１が自装置の子である通信装置１へのパケットの分配の割合を算出し、算出したパケットの分配を子に対する予約情報３として子である通信装置１に送信するとともに、子に対する予約情報３に基づいて子である通信装置１にパケットを送信し、自装置の親からの予約情報３に基づいて兄弟である通信装置１にパケットを送信するようにしているため、同一パケットの二重配信を低減し、ネットワークの帯域を有効に活用することができる。
【００９３】
また、この実施の形態１においては、親である通信装置１が子である通信装置１に予約情報３を送信するようにしている。すなわち、親子関係の通信装置１のみで予約情報３をやりとりするようにしている。これにより、子である通信装置１が予め親および兄弟である通信装置１から配信されるデータを認識することができるとともに、予約情報３の通信時間も短縮することができ、すばやく輻輳などの変化に対応することができる。
【００９４】
なお、この実施の形態１においては、パケットの廃棄に関しては説明していないが、本発明の通信装置およびネットワークシステムは、ＡＬＭが前提となっている。したがって、パケットの廃棄が許容されないファイル配信などの場合、配信データ管理手段１２が、送達確認（ＡＣＫまたはＮＡＣ）をパケットの送信元となる通信装置に送信し、ＮＡＣＫを受信した場合にＮＡＣＫが要求するパケットを再送するようにすればよい。この場合、パケットの送信元はホスト管理手段１３が記憶する予約情報によって認識すればよい。
【００９５】
また、この実施の形態１においては、子である通信装置１が親である通信装置１から受信したパケットの中で、兄弟関係にある通信装置１の中で自装置しか受信していないデータを兄弟関係にある通信装置１に送信することでパケットを補完するようにしたが、パケットを受信していない通信装置１が、当該パケットを受信している（当該パケットが分配されている）通信装置１にＮＡＣＫを送信してパケットを要求し、ＮＡＣＫを受信した場合にはＮＡＣＫが要求するパケットを送信することで受信していないパケットを補完するようにしてもよい。
【００９６】
さらに、この実施の形態１においては、データ分配決定処理によってデータ分配決定手段１４は、流入帯域の最も小さい通信装置１の流入帯域分の帯域を各通信装置に割り当てることでネットワークシステムの帯域を最大限に私用するようにした。しかしながら、たとえば、ストリーミングなどのアプリケーションでは転送帯域が決まっているため、転送帯域以上の帯域を割り当てても帯域が無駄になる場合がある。したがって、アプリケーションが要求する帯域（要求帯域）以上の帯域を割り当てることを防止するために、流入帯域が最も小さい通信装置１の流入帯域が要求帯域よりも大きい場合には、要求帯域分のみの帯域を割り当てるようにしてもよい。また、各通信装置１間の残帯域が最大になるように割り当ててもよい。
【００９７】
実施の形態２．
図７を参照して、この発明の実施の形態２を説明する。先の実施の形態１では、パケットを受信できなかった場合、当該パケットの送信元である通信装置１からパケットを再送するようにした。この実施の形態２では、送信元である通信装置１からパケットを再送するのではなく、当該パケットを受信している通信装置１の中で帯域が最も大きい通信装置１にパケットを要求して未受信のパケットを補完するものである。
【００９８】
なお、この実施の形態２のネットワークシステムおよび通信装置１の構成は、先の図１および図２に示した実施の形態１のネットワークシステムおよび通信装置１の構成と同様であるので、ここではその説明を省略する。
【００９９】
また、この実施の形態２のネットワークシステムおよび通信装置１の動作は、先の実施の形態１とほぼ同じであり、相違点はパケットの再送に関する動作であるので、ここでは
図７のフローチャートを参照して、相違点であるパケットの再送に関する動作のみを説明する。なお、データ分配決定手段１４は、通信相手となる通信装置１（親および兄弟の通信装置１）から自装置への推定帯域情報をホスト管理手段１３に通知し、ホスト管理手段１３は、推定帯域情報を記憶して管理しているものとする。
【０１００】
配信データ管理手段１２は、受信しているパケットのシーケンス番号に基づいて廃棄されたパケットがあるか否かを判定する。マルチキャストツリーの最上流に位置する通信装置１の配信データ管理手段１２は、シーケンス番号順にパケットを送信するので、通常は、各通信装置１にはシーケンス番号順にパケットが到達する。したがって、配信データ管理手段１２は、受信しているパケットをシーケンス番号順に並び替え、抜けているシーケンス番号のパケットが廃棄されたと判定する。なお、転送経路の状態によっては、シーケンス番号の順番が逆転して到達することもあるので、たとえば、２回連続で抜けている場合にパケットが廃棄されたと判定するようにしてもよく、パケットが廃棄されたか否かの判定方法はどのようなものであってもかまわない。
【０１０１】
廃棄されたパケットがある場合、配信データ管理手段１２は、廃棄されたパケットのシーケンス番号をホスト管理手段１３に通知する。廃棄されたパケットのシーケンス番号が通知されると、ホスト管理手段１３は、通知されたシーケンス番号および親からの予約情報３に基づいて、送信元である通信装置１以外の通信装置１が通知されたシーケンス番号のパケット（廃棄されたパケット）を有しているか否かを判定する（ステップＳ２００）。
【０１０２】
具体的には、ホスト管理手段１３は、通知されたシーケンス番号を除数Ｘで除算した剰余を算出する。算出した剰余のパケットが分配される通信装置１が親からの予約情報３に１つしか存在しない場合、ホスト管理手段１３は、送信元である通信装置１のみが廃棄されたパケットを有していると判定する。算出した剰余のパケットが分配される通信装置１が予約情報に複数存在する場合、ホスト管理手段１３は、送信元である通信装置１以外の通信装置１も廃棄されたパケットを有していると判定する。
【０１０３】
送信元である通信装置１以外の通信装置１も廃棄されたパケットを有している場合、ホスト管理手段１３は、廃棄されたパケットを有している通信装置１の中で帯域が最も大きい通信装置１を選択する（ステップＳ２０１）。具体的には、ホスト管理手段１３は、記憶している推定帯域情報の中で、廃棄されたパケットを有している通信装置１の通信装置識別子に対応付けられた推定帯域情報を抽出する。ホスト管理手段１３は、抽出した推定帯域情報の中で推定帯域が最も大きい推定帯域情報に対応付けられた通信装置識別子が示す通信装置１を選択する。ホスト管理手段１３は、選択した通信装置１の通信装置識別子を配信データ管理手段１２に通知する。
【０１０４】
配信データ管理手段１２は、通知された通信装置識別子が示す通信装置１、すなわち廃棄されたパケットを有する通信装置１の中で最も帯域が大きい通信装置１に廃棄されたパケットを要求する送信要求（ＮＡＣＫ）を送信する（ステップＳ２０２）。
【０１０５】
一方、送信元である通信装置１のみが通知された廃棄されたパケットを有している場合、ホスト管理手段１３は、送信元である通信装置１の通信装置識別子を配信データ管理手段１２に通知する。
【０１０６】
配信データ管理手段１２は、通知された通信装置識別子が示す通信装置１、すなわち廃棄されたパケットを有する送信元の通信装置１に廃棄されたパケットを要求する送信要求（ＮＡＣＫ）を送信する（ステップＳ２０３）。
【０１０７】
以上説明したように、この実施の形態２においては、パケットの廃棄を検出すると、親からの予約情報３に基づいて廃棄されたパケットを有する通信装置１が送信元である通信装置１の他に存在するか否かを判定し、送信元である通信装置１の他に廃棄されたパケットを有する通信装置が存在する場合には、管理している推定帯域情報に基づいて推定帯域が最も大きい通信装置を選択し、選択した通信装置に廃棄されたパケットの再送を要求するようにしているため、パケットの廃棄が発生した場合でも、ネットワークの帯域を有効に活用することができる。
【０１０８】
なお、この実施の形態２においては、廃棄されたパケットを有する通信装置１が複数存在する場合には、推定帯域情報から得られる推定帯域が最も大きい通信装置１を選択して廃棄されたパケットを要求するようにしたが、残帯域を把握可能であれば、残帯域の最も大きな通信装置１を選択するようにしてもよい。
【０１０９】
残帯域の把握方法としては、たとえば、親となる通信装置１のデータ分配決定手段１４が、各通信装置１に帯域を割り当てた後に更新した各通信装置１間の推定帯域、すなわちフィードバック情報４に含まれる推定帯域から割り当てた帯域を減算した帯域を予約情報３に含めて各通信装置１に通知すればよい。そして、廃棄されたパケットを要求する通信装置１を選択する際に、ホスト管理手段１３は、推定帯域情報の推定帯域ではなく、親からの予約情報３に含まれる推定帯域を用いて通信装置１を選択するようにすればよい。
【０１１０】
このように、残帯域の最も大きな通信装置１を廃棄されたパケットの再送通信装置１として選択するようにすれば、帯域割り当て後の帯域に最も余裕のある転送経路を用いることが可能となり、帯域割り当て前の推定帯域を用いる場合と比較して、より効率よく転送経路を利用することができる。
【０１１１】
また、この実施の形態２においては、ＮＡＣＫベースによる廃棄パケットの要求によって廃棄されたパケットの再送を行うようにしたが、ＡＣＫベースの場合には、送信元である通信装置１以外の通信装置１に再送を要求する場合、送信元である通信装置１からの再送を防止するために、送信元である通信装置１に擬似的にＡＣＫを送信するようにすればよい。
【０１１２】
実施の形態３．
図８を用いて、この発明の実施の形態３を説明する。この実施の形態３のネットワークシステムは、先の図２に示した実施の形態１，２のネットワークシステムの通信装置１の代わりに、通信装置１ａを備えている。
【０１１３】
図８は、この実施の形態３の通信装置１ａのマルチキャスト通信に関する構成を示すブロック図である。通信装置１ａは、先の図２に示した実施の形態１，２の通信装置１に、送信先／送信要求先決定手段１７が追加されている。実施の形態１の通信装置１と同じ機能を持つ構成部分には同一符号を付し、重複する説明は省略する。
【０１１４】
送信先／送信要求先決定手段１７は、兄弟である通信装置１ａ間（同一の親の子同士）で転送するパケットの送信元となる通信装置１ａの候補が複数存在する場合に、送信元となる通信装置１ａを選択する機能を有する。
【０１１５】
つぎに、この実施の形態３のネットワークシステムおよび通信装置１ａの動作を説明する。なお、この実施の形態３のネットワークシステムおよび通信装置１ａと、先の実施の形態１，２のネットワークシステムおよび通信装置１との相違点は、兄弟である通信装置１で転送するパケットの送信元となる通信装置１ａの候補が複数存在する場合の送信元となる通信装置１ａを選択することである。したがって、ここでは、相違点のみの動作を説明する。
【０１１６】
兄弟である通信装置１ａ間でパケットを転送する場合、送信元となる通信装置１ａが受信したパケットを兄弟である通信装置１ａに転送すべきか否かを判断する方法と、送信先となる通信装置１ａが受信すべきパケットを有する通信装置１ａを選択して当該パケットを要求する方法の２つがある。まず、送信元となる通信装置１ａが受信したパケットを兄弟である通信装置１ａに転送すべきか否かを判断する場合の動作について説明する。
【０１１７】
ホスト管理手段１３は、配信データ管理手段１２から受信したシーケンス番号を通知されると、記憶している親からの予約情報３およびシーケンス番号に基づいてパケットの送信先となる通信装置１ａを選択する。送信先となる通信装置１ａを選択した場合、ホスト管理手段１３は、選択した通信装置１ａに当該パケットを送信する送信元候補が複数存在するか否かを判定する。
【０１１８】
具体的には、ホスト管理手段１３は、通知されたシーケンス番号を除数Ｘで除算した剰余が示すパケットの分配が、自装置のみに対応付けられているか否かを判定する。通知されたシーケンス番号を除数Ｘで除算した剰余が示すパケットの分配が、自装置のみに対応付けられている場合、ホスト管理手段１３は、当該パケットを送信する送信元候補は複数存在しないと判定し、先の実施の形態１，２と同様の動作によって当該パケットを選択した通信装置１ａに送信する。
【０１１９】
通知されたシーケンス番号を除数Ｘで除算した剰余が示すパケットの分配が、自装置以外の通信装置１ａにも対応付けられている場合、ホスト管理手段１３は、当該パケットを送信する送信元候補が複数存在すると判定し、送信元候補が複数存在することを通知する送信元選択要求を配信データ管理手段１２に通知する。
【０１２０】
送信元選択要求が通知された場合、配信データ管理手段１２は、送信先／送信要求先決定手段１７に当該パケットのシーケンス番号を付加した送信元選択要求を通知する。送信元選択要求を受けると、送信先／送信要求先決定手段１７は、送信元選択要求に含まれるシーケンス番号を用いて送信元となる通信装置１ａを選択する。
【０１２１】
選択方法としては、下記の３つの方法がある。
（１）親である通信装置１ａが予め送信元を指定しておき、この指定によって送信元となる通信装置１ａを選択する。
（２）送信先となる通信装置１ａとアドレスが最も近い通信装置１ａを送信元の通信装置１ａとして選択する。
（３）パケットのシーケンス番号とアドレスを用いてＨａｓｈ計算を行い、計算結果が最も大きな通信装置１ａを送信元の通信装置１ａとして選択する。
【０１２２】
上記（１）の選択方法を適用する場合、親である通信装置１ａのデータ分配決定手段１４がデータ分配決定処理によって同一のパケットを複数の通信装置１ａに分配する際に、複数の通信装置１ａの中の１つの通信装置１ａを送信元として選択しておき、予約情報３にこの情報を含めておく。たとえば、データ分配決定手段１４は、推定帯域が最も大きい通信装置１ａを送信元として選択する。送信先／送信要求先決定手段１７は、ホスト管理手段１３に記憶されている親からの予約情報３を参照して、送信元となる通信装置１ａを選択する。
【０１２３】
上記（２）の選択方法を適用する場合、ホスト管理手段１３は、複数の送信元候補の通信装置１ａのそれぞれの通信装置識別子であるアドレスと、送信先の通信装置１ａのアドレスとを含めた送信元選択要求を配信データ管理手段１２に通知する。配信データ管理手段１２は、通知された送信元選択要求を送信先／送信要求先決定手段１７に通知する。
【０１２４】
送信元選択要求が通知されると、送信先／送信要求先決定手段１７は、送信元選択要求に含まれる送信元候補の通信装置１ａのアドレスと、送信先の通信装置１ａのアドレスとを比較する。送信先／送信要求先決定手段１７は、比較の結果、送信元候補の通信装置１ａのアドレスと送信先の通信装置１ａのアドレスとの差が最も小さい送信元候補の通信装置１ａを送信元の通信装置１ａとして選択する。
【０１２５】
比較の結果、送信元候補の通信装置１ａのアドレスと送信先の通信装置１ａのアドレスとの差が最も小さい送信元候補の通信装置１ａが複数存在する場合、送信先／送信要求先決定手段１７は、送信元候補の通信装置１ａのアドレスと送信先の通信装置１ａのアドレスとの差が最も小さい送信元候補の通信装置１ａの中でアドレスが小さい通信装置１ａを送信元の通信装置１ａとして選択する。
【０１２６】
上記（３）の選択方法を適用する場合、ホスト管理手段１３は、送信元候補の通信装置１ａのそれぞれの通信装置識別子であるアドレスと、送信先の通信装置１ａのアドレスとを含めた送信元選択要求を配信データ管理手段１２に通知する。配信データ管理手段１２は、通知された送信元選択要求にシーケンス番号を付加した送信元選択要求を送信先／送信要求先決定手段１７に通知する。
【０１２７】
送信元選択要求が通知されると、送信先／送信要求先決定手段１７は、送信元選択要求に含まれるシーケンス番号を除数Ｘで除算した剰余を算出する。送信先／送信要求先決定手段１７は、算出した剰余と、送信元候補の通信装置１ａのそれぞれの通信装置識別子であるアドレスと、送信先の通信装置１ａのアドレスとに基づいて送信元候補の通信装置毎のＨａｓｈ計算を実行する。送信先／送信要求先決定手段１７は、送信元候補のＨａｓｈ計算の結果が最も大きい送信元候補の通信装置１ａを送信元の通信装置１ａとして選択する。
【０１２８】
Ｈａｓｈ計算の結果が最も大きい送信元候補の通信装置１ａが複数存在する場合、送信先／送信要求先決定手段１７は、送信元候補の通信装置１ａの中でアドレスが最も小さい通信装置１ａを送信元の通信装置１ａとして選択する。
【０１２９】
上記（１）〜（３）の何れかによって送信元の通信装置１ａを選択すると、送信先／送信要求先決定手段１７は、選択した送信元の通信装置１ａのアドレスを含む送信元選択応答を配信データ管理手段１２に通知する。配信データ管理手段１２は、送信元選択応答に含まれるアドレスが自装置のアドレスであるか否かを判定する。送信元選択応答に含まれるアドレスが自装置のアドレスである場合、パケットの送信元が自装置であると認識し、ＡＬＭ通信手段１５および下位レイヤ終端手段１６を介して当該パケットを送信元選択応答に含まれる送信先の通信装置１ａに送信する。送信元選択応答に含まれるアドレスが自装置のアドレスではない場合、配信データ管理手段１２は、パケットの送信元は自装置ではないと認識して処理を終了する。
【０１３０】
つぎに、送信先となる通信装置１ａが受信すべきパケットを有する通信装置１ａを選択して当該パケットを要求する場合の動作を説明する。送信先／送信要求先決定手段１７は、マルチキャスト通信において受信するパケットから自装置と送信元となる各通信装置１ａの残帯域を監視する。配信データ管理手段１２は、受信しているパケットのシーケンス番号に基づいて未受信のパケット、すなわち親である通信装置１ａ以外の通信装置１ａから受信すべきパケット（要求パケット）のシーケンス番号を検出する。配信データ管理手段１２は、要求パケットのシーケンス番号をホスト管理手段１３に通知する。
【０１３１】
要求パケットのシーケンス番号が通知されると、ホスト管理手段１３は通知されたシーケンス番号および予約情報に基づいて、予約パケットを有している通信装置１ａを抽出する。具体的には、ホスト管理手段１３は、通知されたシーケンス番号を除数Ｘで除算した剰余を算出し、算出した剰余のパケットが分配される通信装置１ａを抽出する。ホスト管理手段１３は、抽出した通信装置１ａの通信装置識別子であるアドレスを含めた送信元選択要求を配信データ管理手段１２に通知する。
【０１３２】
送信元選択要求に含まれるアドレスが１つの場合、配信データ管理手段１２は、送信元選択要求に含まれるアドレスが示す通信装置１ａにパケットを要求する送信要求（たとえば、ＮＡＣＫ）を送信する。送信元選択要求に含まれるアドレスが複数の場合、配信データ管理手段１２は、送信元選択要求を送信先／送信要求先決定手段１７に通知する。
【０１３３】
送信元選択要求が通知されると、送信先／送信要求先決定手段１７は、送信元選択要求に含まれる各アドレスを抽出する。送信先／送信要求先決定手段１７は、抽出した各アドレスが示す通信装置１ａのそれぞれの残帯域の中から、最も残帯域が大きい通信装置１ａを送信元の通信装置１ａとして選択する。最も残帯域が大きい通信装置１ａが複数存在する場合、送信先／送信要求先決定手段１７は、最も残帯域が大きい通信装置１ａの中で最も帯域が大きい通信装置１ａを送信元の通信装置１ａとして選択する。最も残帯域が大きい通信装置１ａが複数存在する場合、送信先／送信要求先決定手段１７は、最も残帯域が大きい通信装置１ａの中で、最もアドレスが小さい通信装置１ａを送信元の通信装置１ａとして選択する。
【０１３４】
送信先／送信要求先決定手段１７は、選択した送信元の通信装置１ａのアドレスを含む送信元選択応答を配信データ管理手段１２に通知する。配信データ管理手段１２は、送信元選択応答に含まれるアドレスが示す通信装置１ａにパケットを要求する送信要求を送信する。
【０１３５】
以上説明したように、この実施の形態３においては、兄弟である通信装置１ａにパケットを送信する際に、親からの予約情報３に当該パケットを有する送信元候補となる通信装置１ａが複数存在する場合、前記送信元候補となる通信装置１ａの中から推定帯域が最も大きい通信装置１ａを送信元の通信装置１ａとして選択するようにしているため、ネットワークの帯域を有効に活用することができる。
【０１３６】
また、マルチキャストツリーの親以外の通信装置からパケットを取得する際に、予め通知された親からの予約情報３から送信元とする通信装置１ａを選択するため、パケットを取得する通信装置を検出する時間を削減することができる。
【０１３７】
実施の形態４．
図９および図１０（図１０−１〜図１０−４を示す）を参照して、この発明の実施の形態４を説明する。この実施の形態４のネットワークシステムは、先の実施の形態３のネットワークシステムの通信装置１ａの代わり、通信装置１ｂを備えている。
【０１３８】
図９は、この実施の形態４の通信装置１ｂのマルチキャスト通信に関する構成を示すブロック図である。通信装置１ｂは、先の図８に示した実施の形態３の通信装置１ａに、バイパス要求送受信手段１８が追加されている。実施の形態３の通信装置１ａと同じ機能を持つ構成部分には同一符号を付し、重複する説明は省略する。
【０１３９】
バイパス要求送受信手段１８は、輻輳した通信装置１ｂへのバイパス要求の送信と、輻輳した通信装置１ｂからのバイパス要求の受信を行い、バイパス要求を送信または受信したことを装置内の各構成要素へ通知する。
【０１４０】
つぎに、この実施の形態４のネットワークシステムおよび通信装置１ｂの動作を説明する。なお、この実施の形態４のネットワークシステムおよび通信装置１ｂと、先の実施の形態３のネットワークシステムおよび通信装置１ａとの相違点は、通信装置１ｂが輻輳した際にバイパス処理を行うことのみであるので、ここでは相違点のみを説明する。
【０１４１】
まず、自装置に輻輳が発生した場合の通信装置１ｂの動作を説明する。バイパス要求送受信手段１８は、配信データ管理手段１２、ホスト管理手段１３、データ分配決定手段１４、ＡＬＭ通信手段１５、および下位レイヤ終端手段１６を監視して、マルチキャスト通信処理（パケットの送受信）の処理速度を認識する。
【０１４２】
他のアプリケーションの実行などによって自装置の処理速度が他の通信装置１ｂの処理速度より低下したことを検出すると、バイパス要求送受信手段１８は、ＡＬＭ通信手段１５および下位レイヤ終端手段１６を介して、バイパス要求を親である通信装置１ｂおよび兄弟である通信装置１ｂに送信する。バイパス要求には、自装置の子である通信装置１ｂの通信装置識別子、すなわち新たにコネクションを確立する通信装置１ｂの通信装置識別子が含まれている。
【０１４３】
下位レイヤ終端手段１６およびＡＬＭ通信手段１５を介して、バイパス応答を受信すると、バイパス要求送受信手段１８は、配信データ管理手段１２およびホスト管理手段１３にパケットの転送処理を停止することを通知する。配信データ管理手段１２およびホスト管理手段１３は、パケットの転送処理を停止することが通知されると、パケットの受信処理のみを実行し、受信したパケットを他の通信装置１ｂ（子や兄弟）に送信する処理を停止する。
【０１４４】
つぎに、輻輳した通信装置１ｂからバイパス要求を受信した場合の通信装置１ｂの動作を説明する。下位レイヤ終端手段１６およびＡＬＭ通信手段１５を介してバイパス要求を受信すると、バイパス要求送受信手段１８は、バイパス要求に含まれる親である通信装置１ｂおよび子である通信装置１ｂの通信装置識別子を抽出する。バイパス要求送受信手段１８は、抽出した通信装置識別子が示す通信装置１ｂと通信を行って新たなコネクションを確立する。
【０１４５】
バイパス要求を受信してコネクションを確立した場合、バイパス要求送受信手段１８は、バイパス応答をバイパス要求の送信元である通信装置１ｂに送信する。また、バイパス要求送受信手段１８は、新たにコネクションを確立した通信装置１ｂにパケットを送信することを配信データ管理手段１２、ホスト管理手段１３、およびデータ分配決定手段１４に通知し、配信データ管理手段１２、ホスト管理手段１３、およびデータ分配決定手段１４は、通知された通信装置１ｂを擬似的に自装置の子としてマルチキャスト通信を実行する。
【０１４６】
バイパス要求を受信することなくコネクションを確立した場合、バイパス要求送受信手段１８は、新たにコネクションを確立した通信装置１ｂからパケットを受信することを配信データ管理手段１２、ホスト管理手段１３、およびデータ分配決定手段１４に通知し、配信データ管理手段１２、ホスト管理手段１３、およびデータ分配決定手段１４は、通知された通信装置１ｂを擬似的に自装置の親としてマルチキャスト通信を実行する。
【０１４７】
つぎに、図１０を参照して、ネットワークシステムの動作を説明する。図１０−１に示すように、通信装置１ｂ−１と通信装置１ｂ−２，１ｂ−３、および通信装置１ｂ−２と通信装置１ｂ−４，１ｂ−５の２組の親子関係によってマルチキャストツリーを構築しており、通信装置１ｂ−１と通信装置１ｂ−２，１ｂ−３の親子関係においては、通信装置１ｂ−１が親であり、通信装置１ｂ−２，１ｂ−３が子である。また、通信装置１ｂ−２と通信装置１ｂ−４，１ｂ−５の親子関係においては、通信装置１ｂ−２が親であり、通信装置１ｂ−４，１ｂ−５が子であり、通信装置１ｂ−４，１ｂ−５は通信装置１ｂ−１から見ると孫となる。また、通信装置１ｂ−２と通信装置１ｂ−３、および通信装置１ｂ−４と通信装置１ｂ−５は、それぞれ同一の親を有する兄弟関係となっている状態で、通信装置１ｂ−２に輻輳が発生したとする。
【０１４８】
通信装置１ｂ−２は、図１０−２に示すように、子である通信装置１ｂ−４，１ｂ−５へのバイパスを要求するバイパス要求を親である通信装置１ｂ−１および兄弟である通信装置１ｂ−３に送信する。バイパス要求を受信した通信装置１ｂ−１，１ｂ−３は、図１０−３に示すように、通信装置１ｂ−４，１ｂ−５に対して一般的なコネクション確立処理を実行して、新たなコネクションを確立する。
【０１４９】
通信装置１ｂ−１と通信装置１ｂ−４，１ｂ−５、および通信装置１ｂ−３と通信装置１ｂ−４，１ｂ−５にそれぞれコネクションが確立すると、図１０−４に示すように、通信装置１ｂ−１，１ｂ−３は、通信装置１ｂ−２の代わりに通信装置１ｂ−４，１ｂ−５にパケットの転送を開始し、通信装置１ｂ−２は自装置へのパケットの受信処理のみを実行する。
【０１５０】
パケットの送受信処理を監視して輻輳を検出した場合には、親である通信装置１ｂおよび兄弟である通信装置１ｂに自装置の子である通信装置１ｂを示す通信装置識別子を含むバイパス要求を送信するとともに、子に対する予約情報３に基づいたパケットの送信を停止させ、バイパス要求を受信した場合には、バイパス要求に含まれる通信装置識別子が示す通信装置１ｂとの間にコネクションを確立し、バイパス要求を送信した通信装置１ｂの代わりにコネクションを確立した通信装置１ｂにパケットを送信するようにしているため、輻輳した通信装置１ｂの送信処理がなくなりマルチキャスト通信における処理負荷を軽減することができるとともに、ネットワークシステム全体のスループットの低下を防止することができる。
【０１５１】
なお、この実施の形態４においては、バイパス要求を送信した通信装置１ｂは、すべてのパケットの送信を停止し、バイパス要求を受信した通信装置１ｂがパケットの送信を代行するようにしたが、処理負荷に応じて一部のパケットの送信のみをバイパスするようにしてもよい。この場合、たとえば、子である通信装置１ｂ中の一部に対するバイパス要求を親および兄弟である通信装置１ｂに送信すればよい。
【産業上の利用可能性】
【０１５２】
以上のように、本発明にかかる通信装置は、アプリケーションレイヤマルチキャストによるマルチキャスト通信に有用であり、特に、ネットワークの帯域を有効活用が要求されるネットワークシステムに適している。
【図面の簡単な説明】
【０１５３】
【図１】この発明におけるネットワークシステムの構成の一例を示す図である。
【図２】図１に示した実施の形態１の通信装置のマルチキャスト通信に関する構成を示すブロック図である。
【図３】図２に示したデータ分配決定手段の動作を説明するためのフローチャートである。
【図４】データ分配決定手段の動作を説明するための図である。
【図５−１】データ分配決定手段の動作を説明するための図である。
【図５−２】データ分配決定手段の動作を説明するための図である。
【図５−３】データ分配決定手段の動作を説明するための図である。
【図６−１】データ分配決定手段の動作を説明するための図である。
【図６−２】データ分配決定手段の動作を説明するための図である。
【図７】パケットの再送動作を説明するためのフローチャートである。
【図８】この発明の実施の形態３の通信装置のマルチキャスト通信に関する構成を示すブロック図である。
【図９】この発明における実施の形態４の通信装置のマルチキャスト通信に関する構成を示すブロック図である。
【図１０−１】この発明における実施の形態４のネットワークシステムの動作を説明するための図である。
【図１０−２】この発明における実施の形態４のネットワークシステムの動作を説明するための図である。
【図１０−３】この発明における実施の形態４のネットワークシステムの動作を説明するための図である。
【図１０−４】この発明における実施の形態４のネットワークシステムの動作を説明するための図である。
【符号の説明】
【０１５４】
１，１ａ，１ｂ  通信装置
１０  アプリケーションインタフェース手段
１１  マルチキャストツリー構築手段
１２  配信データ管理手段
１３  ホスト管理手段
１４  データ分配決定手段
１５  ＡＬＭ通信手段
１６  下位レイヤ終端手段
１７  送信先／送信要求先決定手段
１８  バイパス要求送受信手段
【図１】
2007251805.tif 000003
【図２】
2007251805.tif 000004
【図３】
2007251805.tif 000005
【図４】
2007251805.tif 000006
【図５−１】
2007251805.tif 000007
【図５−２】
2007251805.tif 000008
【図５−３】
2007251805.tif 000009
【図６−１】
2007251805.tif 000010
【図６−２】
2007251805.tif 000011
【図７】
2007251805.tif 000012
【図８】
2007251805.tif 000013
【図９】
2007251805.tif 000014
【図１０−１】
2007251805.tif 000015
【図１０−２】
2007251805.tif 000016
【図１０−３】
2007251805.tif 000017
【図１０−４】
2007251805.tif 000018