説明

グループ管理装置、及び、マルチキャストグループ管理方法

【課題】 通信量を抑えてマルチキャストグループ管理を行うグループ管理装置、及び、マルチキャストグループ管理方法を提供する。
【解決手段】 グループ管理装置20のトークン割当部21は、加入要求メッセージを送信してきたデータ受信端末301にトークンを含んだ加入応答メッセージを送信する。データ受信端末301がトークン割当対象状態でないことが判明した場合に、トークン割当解除部23は、データ受信端末301に対するトークンの割当を解除し、トークン割当部21は、当該トークンを含んだ加入応答メッセージをデータ受信端末302に送信する。マルチキャスト配信データ中継部24は、少なくとも1のデータ受信端末30にトークンが割り当てられている間、マルチキャストグループに属しているデータ受信端末30へのマルチキャスト配信データの中継を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルチキャストグループを管理するグループ管理装置、及び、マルチキャストグループ管理方法に関する。
【背景技術】
【0002】
従来のインターネット等を利用したデータ配信は、送信側であるデータ送信端末と受信側であるデータ受信端末との関係から、ユニキャスト配信、ブロードキャスト配信、及び、マルチキャスト配信に分類される。
ユニキャスト配信は、1つのデータ送信端末が1つのデータ受信端末にデータを配信する1対1の通信である。このため、データ送信端末が配信すべきデータ量はデータ受信端末の数に比例して大きくなり、データ受信端末の数が増加すると、データ送信端末や通信路においてデータの配信処理のための負荷が大きくなってしまう。
これに対し、ブロードキャスト配信及びマルチキャスト配信は、1つのデータ送信端末が多数のデータ受信端末にデータを配信する1対多の通信であるため、上記問題は生じない。
【0003】
ここで、マルチキャスト配信は、ブロードキャスト配信と異なり、一回の操作で特定多数の相手にデータを配信する方式である。マルチキャスト配信の一例としては、IP(Internet protocol)を用いてマルチキャスト配信を実現するIPマルチキャストが広く知られている。IPマルチキャストでは、同一のデータを受信するデータ受信端末のグループにマルチキャスト用のIPアドレスを割り当てることで、マルチキャストグループを構成する。このマルチキャストグループに割り当てられるIPアドレス(以下「マルチキャストアドレス」という)は当該グループに固有である。データ受信端末は、あるマルチキャストグループ宛に配信されるマルチキャスト配信データの受信を希望する場合、当該マルチキャストグループに所属してグループメンバとなる。具体的には、データ受信端末は、マルチキャストグループへの加入要求を、隣接しているグループ管理装置に送信することにより、当該マルチキャストグループに属するデータ受信端末が配下に存在することを示す情報を記憶させる。これにより、データ受信端末は、データ送信端末から当該マルチキャストグループ宛に配信されるデータを、グループ管理装置等を介して受信することができる。
【0004】
ここで、上記マルチキャスト配信データを受信するデータ受信端末とグループ管理装置との間のマルチキャストグループ管理用プロトコルとしては、IGMP(Internet Group Management Protocol)が用いられている。このIGMPに対応したグループ管理装置であるIGMPルータには、自身の配下にあるデータ受信端末の中にマルチキャストグループに属しているデータ受信端末が存在するか否かを判別する機能が実装されている。
【0005】
IGMPやマルチキャストに関する文献としては、非特許文献1〜3が存在する。IGMPは、IGMPルータにおいて、データ受信端末を特定しない匿名モデルを採用している。匿名モデルでは、各データ受信端末を一つ一つ管理しないため、その管理コストの低減を図ることが可能であり、結果としてデータ受信端末数が増えた場合のスケーラビリティの確保が可能となる。
【0006】
このようなIPマルチキャストの匿名モデルでは、データ受信端末を特定しないため、ユーザに対する課金やデータ受信者数の測定が不可能であるという問題点があった。そこで、IGAP(IGMP for user Authentication Protocol)を用いてデータ受信端末を使用するユーザの認証を行う技術が提案されている(例えば、非特許文献4参照)。IGAPは、データ受信端末が発行するマルチキャストグループへの加入要求メッセージ(IGMP Membership Report)を拡張し、データ受信端末を使用するユーザを認証する。これにより、データ受信端末を使用するユーザを特定することが可能であり、IGMPで提供する匿名モデルに対する課題を解決している。
【0007】
IGMPルータでは、最低1台のマルチキャストグループに属しているデータ受信端末(以下「グループメンバ」ともいう)が配下に存在するか否かの状態のみ保持しているため、グループメンバからマルチキャストグループ離脱要求(IGMP Leave Group)を受信した場合に、他のグループメンバが存在するか否かを確認する必要がある。このためにIGMPルータでは、IGMP Group‐Specific Queryを当該マルチキャストグループ宛にマルチキャストし、さらにそれを受信したデータ受信端末は、その返答(IGMP Membership Report)を返すことによって、他にもグループメンバが存在することをIGMPルータに伝えている。
【0008】
以上の動作は、従来のイーサネット(登録商標)等の有線LAN(Local Area Network)では問題とならなかったが、データ受信端末が頻繁に移動するような無線LANでは問題となる。無線LANにおけるデータ受信端末は頻繁に移動を繰り返す傾向にあるため、移動する毎に、移動元と移動先とのサブネットワークのIGMPルータに対してマルチキャストグループへの加入と離脱とを繰り返す必要があるためである。IGMPでは、マルチキャストグループへの離脱を繰り返すたびに上記通信が必要となるため、無線LANのようなネットワークではIGMPは適切ではない。
【0009】
IGAPでは、全てのグループメンバのユーザ認証を行うため、グループ管理装置であるIGAPルータにおいてグループメンバを厳密に管理することが可能である。こういった特徴を利用し、IGAPでは、データ受信端末からのマルチキャストグループ離脱要求メッセージ(IGMP Leave Group)に対して、他にグループメンバが存在しているか否かを確認すること無しに、単に当該データ受信端末の管理情報を削除するFast Leave機能を提供している。これによれば、IGMPのように、マルチキャストグループメンバの状況確認のための通信(IGMP Leave Group後のIGMP Group Specific Query)が必要ないなどの利点がある。
【0010】
しかし、IGAPでは、データ受信端末からのマルチキャストグループ加入要求メッセージ(IGMP Membership Report)に対するユーザ認証を実行するために、ユーザに対する課金やデータ受信者数の測定が必要ない場合には、この通信及び処理が冗長になる場合があった。
このように、IGMPにおいては、グループメンバが離脱する度に他のグループメンバの状況を確認するための通信を行い、また、IGAPにおいては、加入要求メッセージを受信する度にユーザ認証のための通信を行うため、どちらのプロトコルを用いても通信量が増大するという問題点があった。
【0011】
一方、移動通信ネットワークにおけるマルチキャストグループ管理に関する技術も提案されている(例えば、特許文献1参照)。特許文献1においては、ルータ配下の移動通信端末が、他のルータ配下に移動したり、マルチキャストグループへの加入や離脱を繰り返す毎に、ルータはその旨の情報を受信してグループ管理情報を更新し、移動通信端末毎にグループ管理を行う。このような移動通信端末毎にグループ管理を行う方式では、上述した通信量が増大するという問題点を解決することはできない。
【0012】
また、データ受信端末がマルチキャスト配信データを受信した後の応答メッセージ数を削減する技術について検討されている文献も存在する(例えば、特許文献2参照)。しかし、特許文献2に記載されている技術は、マルチキャスト配信データに対するデータ受信端末からの応答数を削減する技術であるため、ここで課題としているグループ管理のための通信量の削減に利用することは難しい。
【特許文献1】特開2001−177564号公報
【特許文献2】特開2000−115051号公報
【非特許文献1】Thomas Maufer著、楠本博之訳、「IPマルチキャスト入門」、初版、共立出版株式会社、2001年11月
【非特許文献2】Dave Kosiur著、苅田幸雄監訳、「マスタリングTCP/IPマルチキャスト編」、第1版、第2刷、平成12年11月
【非特許文献3】Beau Williamson著、コムサス訳、シスコシステムズ監訳、「IPマルチキャストネットワーク開発ガイドVol.1」、初版、2001年7月
【非特許文献4】林経正、他、著「IGAP:IGMP for User Authentication Protocol」、Internet‐draft、2003年
【発明の開示】
【発明が解決しようとする課題】
【0013】
以上のように、データ受信端末がマルチキャストグループへの加入と離脱を頻繁に繰り返すような通信環境において、どのようにグループ管理に必要な通信量を抑えるかが問題となる。
本発明は、以上の点を鑑みてなされたものであり、通信量を抑えてマルチキャストグループ管理を行うグループ管理装置、及び、マルチキャストグループ管理方法を提供することを目的とする。
【課題を解決するための手段】
【0014】
上記課題を解決するために、請求項1に記載の発明は、自装置の配下に存在するデータ受信端末へのマルチキャスト配信データの中継を行うグループ管理装置において、あるマルチキャストグループに属している前記データ受信端末のうち、少なくとも1のデータ受信端末に対してトークンを割り当てるトークン割当手段と、前記トークンが割り当てられたデータ受信端末が、自装置の配下に存在し、かつ、前記あるマルチキャストグループに属している状態であるトークン割当対象状態であるか否かを管理するトークンメンバ管理手段と、前記トークンメンバ管理手段により、前記トークンが割り当てられたデータ受信端末が前記トークン割当対象状態でないことが判明した場合に、該データ受信端末に対するトークンの割当を解除するトークン割当解除手段と、少なくとも1のデータ受信端末に前記トークンが割り当てられている間、前記あるマルチキャストグループに属しているデータ受信端末へのマルチキャスト配信データの中継を行うマルチキャスト配信データ中継手段とを備えることを特徴とするグループ管理装置を提供する。
【0015】
本発明によれば、前記グループ管理装置のトークン割当手段は、自装置の配下に存在し、かつ、あるマルチキャストグループに属しているデータ受信端末のうち、少なくとも1のデータ受信端末に対してトークンを割り当て、前記トークンメンバ管理手段は、前記トークンが割り当てられたデータ受信端末が前記トークン割当対象状態であるか否かを管理し、前記トークン割当解除手段は、前記トークンが割り当てられたデータ受信端末が前記トークン割当対象状態でないことが判明した場合に、該データ受信端末に対するトークンの割当を解除し、前記マルチキャスト配信データ中継手段は、少なくとも1のデータ受信端末に前記トークンが割り当てられている間、前記あるマルチキャストグループに属しているデータ受信端末へのマルチキャスト配信データの中継を行うため、前記グループ管理装置は、前記トークンが割り当てられたデータ受信端末の状態を管理するための通信量のみでグループ管理を行うことができ、グループ管理のための通信量を抑えることができる。
【0016】
請求項2に記載の発明は、請求項1に記載のグループ管理装置において、前記トークン割当手段は、前記トークン割当解除手段により割当が解除されたトークンを、他のデータ受信端末に割り当てることを特徴とする。
本発明によれば、前記グループ管理装置のトークン割当手段は、前記トークン割当解除手段により割当が解除されたトークンを他のデータ受信端末に割り当てるため、前記トークンメンバ管理手段は、継続して、新たに前記トークンが割り当てられた前記他のデータ受信端末の状態を管理することができ、配下に前記あるマルチキャストグループに属しているデータ受信端末が存在するか否かを厳密に管理することが可能となる。
【0017】
請求項3に記載の発明は、請求項1又は2に記載のグループ管理装置において、前記トークン割当手段は、前記データ受信端末が、自装置の配下に継続して存在しており、かつ、前記あるマルチキャストグループに継続して属している時間と、前記データ受信端末が、自装置の配下に存在し、かつ、前記あるマルチキャストグループに属していた過去の累積時間と、前記データ受信端末の機種との少なくとも1に応じて、前記トークンを割り当てるべきデータ受信端末を決定することを特徴とする。
【0018】
本発明によれば、前記グループ管理装置のトークン割当手段は、前記あるマルチキャストグループに継続して属している時間と前記累積時間と前記機種との少なくとも1に応じて、前記トークンを割り当てるべきデータ受信端末を決定するため、前記あるマルチキャストグループに継続して属している時間や前記累積時間が長いデータ受信端末や、頻繁に移動しない機種のデータ受信端末に対して前記トークンを割り当てることが可能となる。このため、前記グループ管理装置は、加入及び離脱に伴うグループ管理のための通信量や、他のデータ受信端末に前記トークンを再割当するための通信量を削減することができる。
【0019】
請求項4に記載の発明は、請求項1から3のいずれか1項に記載のグループ管理装置において、前記トークン割当手段は、自装置の配下に存在し、かつ、前記あるマルチキャストグループに属しているデータ受信端末の数と、前記データ受信端末が自装置の配下に継続して存在する平均時間との少なくとも一方に応じて、前記トークンを割り当てるべきデータ受信端末の数を決定することを特徴とする。
【0020】
本発明によれば、前記グループ管理装置のトークン割当手段は、前記データ受信端末の数と前記平均時間との少なくとも一方に応じて、前記トークンを割り当てるべきデータ受信端末の数を決定するため、前記トークン割当手段は、配下に存在するデータ受信端末の数や移動状況に合わせて、前記トークンを割り当てるべきデータ受信端末の最適な数を決定することができる。このため、前記グループ管理装置は、最適な数のデータ受信端末のみを管理することができるため、通信量を抑えて、マルチキャストグループ管理を行うことができる。
【0021】
請求項5に記載の発明は、請求項1から4のいずれか1項に記載のグループ管理装置において、前記トークンメンバ管理手段は、前記トークンが割り当てられたデータ受信端末に対してのみ、該データ受信端末より受信したメッセージに対する応答メッセージを返信することを特徴とする。
本発明によれば、前記グループ管理装置のトークンメンバ管理手段は、前記トークンが割り当てられたデータ受信端末に対してのみ、該データ受信端末より受信したメッセージに対する応答メッセージを返信するため、前記トークンが割り当てられたデータ受信端末とのメッセージ授受については、メッセージの欠落が生じないよう正確に管理することができる一方、前記トークンが割り当てられていないデータ受信端末に対しては、応答メッセージの返信を省くことができる。従って、グループ管理装置は、通信量を抑えてマルチキャストグループの管理を行うことができる。
【0022】
請求項6に記載の発明は、請求項1から5のいずれか1項に記載のグループ管理装置において、前記トークンメンバ管理手段は、前記トークンが割り当てられたデータ受信端末に対してのみ、該データ受信端末が前記トークン割当対象状態であるか否かを確認するためのメッセージを送信することを特徴とする。
本発明によれば、前記グループ管理装置のトークンメンバ管理手段は、前記トークンが割り当てられたデータ受信端末に対してのみ、該データ受信端末が前記トークン割当対象状態であるか否かを確認するためのメッセージを送信するため、前記トークンが割り当てられているデータ受信端末ついては、正確に前記トークン割当対象状態であるか否かを管理する一方、前記トークンが割り当てられていないデータ受信端末に対しては、メッセージの送信を省くことができる。従って、前記グループ管理装置は、通信量を抑えて、マルチキャストグループ管理を行うことができる。
【0023】
請求項7に記載の発明は、請求項1から6のいずれか1項に記載のグループ管理装置において、前記トークン割当手段は、前記あるマルチキャストグループ宛に問合せメッセージを送信することにより、該あるマルチキャストグループに属していることが確認されたデータ受信端末の中から、前記トークンを割り当てるべきデータ受信端末を決定することを特徴とする。
本発明によれば、前記グループ管理装置のトークン割当手段は、マルチキャストグループに属していることが確認されたデータ受信端末の中から前記トークンを割り当てるべきデータ受信端末を決定するため、自装置の配下に存在しなくなったりマルチキャストグループから離脱したデータ受信端末に対して、前記トークンを割り当てようとして失敗することがなくなるため、不要な通信量を削減することができる。
【0024】
請求項8に記載の発明は、グループ管理装置が行うマルチキャストのグループ管理方法において、前記グループ管理装置の配下に存在し、かつ、あるマルチキャストグループに属しているデータ受信端末のうち、少なくとも1のデータ受信端末に対してトークンを割り当てるトークン割当ステップと、前記トークンが割り当てられたデータ受信端末の状態が、前記グループ管理装置の配下に存在していない状態と、前記あるマルチキャストグループに属していない状態との少なくとも1の状態であることが判明した場合に、前記データ受信端末に対するトークンの割当を解除するトークン割当解除ステップと、前記トークン割当解除ステップにおいて割当を解除されたトークンを、前記グループ管理装置の配下に存在し、かつ、前記あるマルチキャストグループに属しているデータ受信端末のうち、いずれか1のデータ受信端末に割り当てるトークン再割当ステップとを有し、少なくとも1のデータ受信端末に前記トークンが割り当てられている間、前記あるマルチキャストグループに属しているデータ受信端末へのマルチキャスト配信データの中継を行うことを特徴とするグループ管理方法を提供する。
本発明によれば、前記グループ管理装置は、前記トークンが割り当てられたデータ受信端末の状態を管理するための通信量のみでマルチキャストグループ管理を行うことができ、マルチキャストグループ管理のための通信量を抑えることができる。
【発明の効果】
【0025】
本発明によれば、グループ管理装置は、自装置の配下に存在し、かつ、あるマルチキャストグループに属しているデータ受信端末のうち、少なくとも1のデータ受信端末に対してトークンを割り当て、該トークンが割り当てられたデータ受信端末が前記トークン割当対象状態であるか否かを管理するため、前記トークンが割り当てられたデータ受信端末の状態を管理するための通信量のみでマルチキャストグループ管理を行うことができ、マルチキャストグループ管理のための通信量を抑えることができる。
【発明を実施するための最良の形態】
【0026】
次に、図面を参照しながら、本発明の実施の形態について説明する。なお、以下の説明において参照する各図においては、他の図と同等部分に同一符号が付されている。
[1.構成]
図1には、本発明の実施の形態に係るマルチキャストグループ管理システム10の構成を示す。同図に示すように、マルチキャストグループ管理システム10は、マルチキャストグループを管理するグループ管理装置20と、当該グループ管理装置20の配下に存在する複数のデータ受信端末30とを含むネットワークで構成される。ここで、「グループ管理装置20の配下にデータ受信端末30が存在する」とは、グループ管理装置20とデータ受信端末30とが通信可能に接続されており、グループ管理装置20がデータ受信端末30に対するデータ配信を中継する状態のことをいう。このようなネットワークの例としてイーサネット(登録商標)や無線LAN、移動通信網等が考えられる。グループ管理装置20は、例えば、ルータであり、この場合には、ルータに管理されるサブネットワーク上のデータ受信端末30が、ルータの配下に存在するデータ受信端末30となる。データ受信端末30は、例えば、移動通信端末やパーソナルコンピュータ(以下「PC」という)である。なお、以下の説明において、複数のデータ受信端末30をそれぞれ区別する必要がある場合には、データ受信端末301、データ受信端末302、データ受信端末303、・・・、と記述する。
【0027】
図2には、マルチキャストグループ管理システム10と他の関連する装置とを含むネットワーク構成の一例を示す。グループ管理装置20は、データ配信を中継するデータ中継装置40と接続されており、グループ管理装置20自身はデータ中継装置40の機能も保持している。グループ管理装置20とデータ中継装置40とは相互に接続されており、インターネット等のネットワークを形成する。データ送信端末50は、データ中継装置40に接続されており、データ中継装置40を介してネットワークにデータを配信することが可能である。
【0028】
次に、グループ管理装置20の構成について詳細に説明する。グループ管理装置20は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、ハードディスク、通信インターフェース、及び、内部時計を含んで構成され、一般的なコンピュータのハードウェア資源を備えている。また、ROM、RAM及びハードディスクには、データやプログラム等のソフトウェア資源が記憶されている。
【0029】
グループ管理装置20のハードディスクに記憶されるソフトウェア資源として、例えば、マルチキャストグループのメンバを管理するためのグループ管理テーブルが存在する。当該グループ管理テーブルは、グループ管理装置20の配下に存在し、かつ、マルチキャストグループに属しているデータ受信端末30についての管理情報を管理するためのテーブルである。当該グループ管理テーブルは、マルチキャストグループ毎に作成される。
【0030】
図3には、グループ管理テーブルの一例を示す。同図に示すように、グループ管理テーブルには、端末フィールドと状態フィールドとトークン情報フィールドと時刻フィールドとが設けられている。端末フィールドには、IPアドレス等の、データ受信端末30を一意に識別するための情報が記録される。状態フィールドには、データ受信端末30に対するグループ管理装置20の状態を示す情報、例えば、授受したメッセージ内容や通信状態を示す情報が記録される。トークン情報フィールドには、本発明で大きな役割を担うトークンがデータ受信端末30に割り当てられているか否かを示す情報が記録される。時刻フィールドには、これらのフィールドが更新された時刻を示す時刻情報が記録される。以下では、これらのフィールドに記録される「端末」と「状態」と「トークン情報」と「時刻」とを含む情報を「管理情報」という。また、グループ管理テーブルは、図示せぬ、マルチキャストグループを識別するための情報と関連付けられており、この情報によって、グループ管理テーブルが、どのマルチキャストグループを管理するためのテーブルであるかを識別することが可能である。
【0031】
次に、本発明における「トークン」について説明する。本発明における「トークン」は、グループ管理装置20の配下に存在し、かつ、あるマルチキャストグループに属しているデータ受信端末30のうち、少なくとも1のデータ受信端末30に割り当てられる情報である。トークンが割り当てられたデータ受信端末30は、マルチキャストグループへの加入状況や、グループ管理装置20配下からの移動状況等の管理が厳密に行われる。
【0032】
トークンに含まれる情報としては、トークンを一意に識別するためのID、トークンが適用されるマルチキャストアドレス、及び、有効期限等が存在する。場合によっては、グループ管理装置20の電子署名が含まれていても良い。以下では、トークンが割り当てられたデータ受信端末30を「トークンメンバ」とも呼び、トークンが割り当てられていないデータ受信端末30を「非トークンメンバ」とも呼ぶ。
【0033】
また、グループ管理装置20のハードディスクには、グループ管理テーブルに管理情報を記録するためのプログラムや、トークンをデータ受信端末30に割り当てるためのプログラムが記憶されている。
これらのハードウェア資源とソフトウェア資源とが協働して動作することにより、図4に示す、トークン割当部21、トークンメンバ管理部22、トークン割当解除部23、及び、マルチキャスト配信データ中継部24がグループ管理装置20に実現される。
【0034】
トークン割当部21は、あるマルチキャストグループに属している配下のデータ受信端末30のうち、少なくとも1のデータ受信端末30に対してトークンを割り当てる。具体的なトークンの割当手順としては、トークン割当部21は、トークンを割り当てるべきデータ受信端末30に対して、トークンを含んだ加入応答メッセージ(Join Response)をデータ受信端末30に送信する。これにより、データ受信端末30から加入応答確認メッセージ(Join Response ACK)を受信すると、トークン割当部21は、グループ管理テーブルのトークン情報フィールドに、データ受信端末30に対してトークンを割り当てたことを示す情報“Yes”を記録する。
【0035】
また、トークン割当部21は、トークン割当解除部23がデータ受信端末30に対するトークンの割当を解除した場合に、当該割当が解除されたトークンを、他の割当可能なデータ受信端末30に割り当てる。
また、トークン割当部21は、トークンを割り当てるべきデータ受信端末30を決定する機能を有している。トークン割当部21は、各種情報に基づいて、今後最も長い期間、マルチキャストグループから離脱せず、かつ配下から移動しないと予想されるデータ受信端末30に対して、トークンを割り当てることに決定する。
【0036】
具体的な決定方法の例としては、トークン割当部21は、データ受信端末30がグループ管理装置20の配下に存在し続けており、かつ、あるマルチキャストグループに属し続けている「継続時間」に応じて、トークンを割り当てるべきデータ受信端末30を決定する。例えば、トークン割当部21は、上記「継続時間」が一番長いデータ受信端末30に対してトークンを付与する。これは、あるマルチキャストグループに一番長く属していたデータ受信端末30は、今後も同じ状態が続くと予想されるためである。ここでは、「継続時間」は、グループ管理テーブルの時刻フィールドに記録されている時刻情報を用いて算出される。
【0037】
また、別の決定方法の例として、トークン割当部21は、データ受信端末30がグループ管理装置20の配下に存在し、かつ、あるマルチキャストグループに属していた過去の「累積時間」に応じて、トークンを割り当てるべきデータ受信端末30を決定する。「累積時間」の算出方法としては、例えば、グループ管理装置20は、グループ管理テーブルの更新履歴をハードディスクに記憶しておく。そして、トークン割当部21は、当該更新履歴に含まれる時刻情報に基づいて、データ受信端末30があるマルチキャストグループに属していた累積時間をデータ受信端末30毎に算出する。トークン割当部21は、算出結果に基づいて、累積時間が最も長いデータ受信端末30に対してトークンを割り当てることに決定する。
【0038】
また、別の決定方法の例として、トークン割当部21は、データ受信端末30の機種に応じて、トークンを割り当てるべきデータ受信端末30を決定する。具体的には、グループ管理装置20は、データ受信端末30から送信されてきたメッセージに含まれる機種情報をハードディスクに記録しておく。トークン割当部21は当該機種情報を参照して、最も移動量が少ないと予想される機種のデータ受信端末30を、トークンを割り当てるべきデータ受信端末30として決定する。例えば、トークン割当部21は、携帯電話機よりもPCを、また、ノート型PCよりもデスクトップ型PCを、トークンを割り当てるべきデータ受信端末30に決定する。
【0039】
また、トークン割当部21は、マルチキャストグループ毎にトークンを割り当てるべきデータ受信端末30の数を決定する機能を備えている。決定方法としては、トークン割当部21は、グループ管理装置20の配下に存在し、かつ、あるマルチキャストグループに属しているデータ受信端末30の数に応じて、トークンを割り当てるべきデータ受信端末30の数を決定する。例えば、トークン割当部21は、あるマルチキャストグループに属している配下のデータ受信端末30が所定の数を超えたときには、当該あるマルチキャストグループに対してトークンを割り当てるべきデータ受信端末30の数を2台に決定する。
【0040】
また、別の決定方法としては、トークン割当部21は、データ受信端末30が、グループ管理装置20の配下に継続して存在する平均時間に基づき、トークンを割り当てるべきデータ受信端末30の数を変更しても良い。例えば、平均時間が所定の閾値よりも短い場合には、トークン割当部21は、配下のネットワーク上に存在するデータ受信端末30が移動する傾向が強いと判断し、トークンを割り当てるべきデータ受信端末30の数を増加させても良い。このようにトークンメンバの数を増加させることにより、グループ管理テーブルに記録されているグループメンバと実際配下に存在するグループメンバとの不一致が多く発生した場合にも、グループ管理装置20が送信したメッセージに対する応答が得られる確率が高くなるため、離脱遅延(Leave Latency)の問題を解消することが可能である。
【0041】
なお、トークン割当部21は、場合によっては、配下のあるマルチキャストグループに属しているデータ受信端末30全てに対してトークンを割り当てても良い。この場合には、グループ管理装置20とデータ受信端末30とは1対1の状態管理を行うことになり、厳密なグループメンバの管理が可能である。このような管理方法はグループメンバ数が少ない場合には有効である。しかし、グループメンバ数が増加した場合には、スケーラビリティの問題が発生するため、この場合には逆に与えるトークン数を減少させ、一部のグループメンバのみトークンを与えるというような管理方法をとるのがよい。
【0042】
トークンメンバ管理部22は、前記トークン割当部21によりトークンが割り当てられたデータ受信端末30が「トークン割当対象状態」であるか否かを管理する。ここで、「トークン割当対象状態」とは、あるマルチキャストグループに対応するトークンが割り当てられたデータ受信端末30が、継続して、グループ管理装置20の配下に存在し、かつ、当該あるマルチキャストグループに属している状態をいう。従って、あるマルチキャストグループに対応するトークンが割り当てられたデータ受信端末30が、グループ管理装置20の配下に存在しなくなった場合、すなわち、当該データ受信端末30が、他のグループ管理装置20の配下に移動したり、電源断となった場合には、当該データ受信端末30は「トークン割当対象状態」でなくなる。また、当該データ受信端末30が、あるマルチキャストグループから離脱するために離脱要求メッセージ(Leave Request)をグループ管理装置20に送信した場合にも、当該データ受信端末30は「トークン割当対象状態」でなくなる。
【0043】
トークンメンバ管理部22による「トークン割当対象状態」の具体的な管理方法としては、以下の方法がある。トークンメンバ管理部22は、トークンが割り当てられたデータ受信端末30に対してのみ、受信したメッセージに対する応答メッセージを返信し、メッセージの欠落が生じないように管理する。データ受信端末30から受信するメッセージには、例えば、加入要求メッセージ(Join Request)や離脱要求メッセージ(Leave Request)がある。なお、「トークンが割り当てられたデータ受信端末30」には、トークン割当対象に決定されたデータ受信端末30も含まれる。また、他の管理方法としては、トークンメンバ管理部22は、トークンが割り当てられたデータ受信端末30に対してのみ、状態を確認するための状態確認メッセージ(Hello)を送信する。
【0044】
トークンメンバ管理部22は、以上のようなメッセージの授受により、トークンが割り当てられているデータ受信端末30が「トークン割当対象状態」であるか否かを厳密に管理する。
トークン割当解除部23は、トークンメンバ管理部22による管理によって、トークンが割り当てられているデータ受信端末30が「トークン割当対象状態」でないことが判明した場合に、当該データ受信端末30に対するトークンの割当を解除する。具体的な割当解除方法としては、トークン割当解除部23は、グループ管理テーブルのデータ受信端末30に対するトークン情報フィールドを“No”に更新する。
【0045】
マルチキャスト配信データ中継部24は、少なくとも1のデータ受信端末30にトークンが割り当てられている間、当該トークンに対応するマルチキャストグループに属しているデータ受信端末30へのマルチキャスト配信データの中継を行う。少なくとも1のデータ受信端末30に、あるマルチキャストグループに対応するトークンが割り当てられているか否かの判断は、あるマルチキャストグループのグループ管理テーブルのトークン状態フィールドに“Yes”が記述されている管理情報が存在するか否かによって判断される。
【0046】
[2.動作]
以下では、マルチキャストグループ管理システム10におけるマルチキャストグループ管理方法について、図を用いて説明する。
本発明に係るマルチキャストグループ管理方法においては、グループ管理装置20の配下に存在するデータ受信端末30の中に、あるマルチキャストグループ宛に配信されるマルチキャスト配信データの受信を所望するデータ受信端末30が存在するか否かを管理する方法を提供する。
【0047】
(最初のグループメンバ加入時のトークン割当処理)
図5〜図8は、データ受信端末301が最初のグループメンバとして、あるマルチキャストグループ(ここでは、「マルチキャストグループA」とする)に加入する場合に行われるトークン割当処理の動作手順を説明する図である。
データ受信端末301が最初のグループメンバであるため、本手順を実行する時点においては、グループ管理装置20のハードディスクには、マルチキャストグループAのグループ管理テーブルは作成されていない。また、ここでは、グループ管理装置20配下のマルチキャストグループAのメンバに対して、1つのトークンが割り当てられるものとする。
【0048】
まず、データ受信端末301は、加入要求メッセージ(Join Request)をグループ管理装置20に対して送信することで、マルチキャストグループA宛に配信されるデータの受信を所望することを伝える(図5及び図6のステップS1)。
Join Requestを受信したグループ管理装置20は、ハードディスクにマルチキャストグループAのグループ管理テーブルが存在するか否かを確認する。ここでは、マルチキャストグループAのグループ管理テーブルが存在しないことから、グループ管理装置20は、データ受信端末301が当該マルチキャストグループAにおける最初のグループメンバとなることが分かる。そして、グループ管理装置20は、当該マルチキャストグループAのグループ管理テーブルを作成する(図5のステップS2)。
【0049】
同時に、グループ管理装置20のマルチキャスト配信データ中継部24は、当該マルチキャストグループA宛のマルチキャスト配信データを中継するために、PIM(Protocol Independent Multicast)等のマルチキャストルーティングプロトコルを用いてマルチキャスト配信経路を構築する(図5のステップS3)。そして、マルチキャスト配信データ中継部24は、マルチキャストグループAに属するデータ受信端末301に対してマルチキャスト配信データの中継を行う。これによって、データ受信端末301は、当該マルチキャスト配信データの受信が可能となる。
【0050】
グループ管理装置20は、Join Requestを受信すると、グループ管理テーブルにデータ受信端末301の管理情報を記述するための領域を作成する。そして、グループ管理装置20は、作成した領域の端末フィールドにデータ受信端末301を識別するための情報“301”を記録し、状態フィールドにJoin Requestを受信したことを示す情報“Join Received”を記録し、トークン情報フィールドに“No”を記録し、時刻フィールドにJoin Requestを受信した時刻“11:30”を記録する(図5及び図6のステップS4)。
【0051】
ここで、グループ管理装置20のトークン割当部21は、マルチキャストグループAのグループメンバに少なくとも1のトークンを割り当てる必要があるが、現在マルチキャストグループAの最初のグループメンバとなるデータ受信端末301からのJoin Requestを受信しているため、データ受信端末301にトークンを割り当てることに決定する。そして、トークン割当部21は、トークンを一意に識別するためのトークンIDと、マルチキャストグループAを識別するためのマルチキャストアドレスとを含むトークンを生成する。
【0052】
トークンメンバ管理部22は、データ受信端末301に対して、生成したトークンを含む加入応答メッセージ(Join Response)を返す(図5及び図7のステップS5)。次いで、トークンメンバ管理部22は、グループ管理テーブルの状態フィールドに、Join Responseを送信したことを示す情報“Join Response Sent”を記録する(図5及び図7のステップS6)。
Join Requestを受信したデータ受信端末301は、加入応答確認メッセージ(Join Response ACK)を返す(図5及び図8のステップS7)。
【0053】
Join Response ACKを受信したグループ管理装置20のトークンメンバ管理部22は、グループ管理テーブルの状態フィールドに、Join Response ACKが届いたことを示す情報“Connected”を記録する。さらに、トークンメンバ管理部22は、トークンが無事にデータ受信端末301に届いたことが確認できたため、トークン情報フィールドに“Yes”を記録する(図5及び図8のステップS8)。
以上の動作により、グループ管理装置20は、マルチキャストグループAの最初のグループメンバであるデータ受信端末301に対してのトークンの割当と、その確認応答とを完了することが出来る。
【0054】
(二番目以降のグループメンバの加入)
次に、図9及び図10を参照して、データ受信端末302が二番目以降のグループメンバとしてマルチキャストグループAに加入する時の動作手順を説明する。
データ受信端末302は、データ受信端末301と同様に、加入要求メッセージ(Join Request)をグループ管理装置20に対して送信することで、マルチキャストグループA宛に配信されるマルチキャスト配信データの受信を所望することを伝える(図9及び図10のステップS11)。本手順は最初のグループメンバ加入時と同様である。
【0055】
Join Requestを受信したグループ管理装置20は、マルチキャストグループAを管理するためのグループ管理テーブルが既に作成されているか否かを確認する。ここでは、グループ管理装置20のハードディスクに、マルチキャストグループAのグループ管理テーブルが既に作成されており、当該グループ管理テーブルに、データ受信端末301に関する管理情報が記録されていることから、データ受信端末302がマルチキャストグループAにおける二番目以降のグループメンバであることが分かる。グループ管理装置20は、マルチキャストグループAのグループ管理テーブルに、データ受信端末302の管理情報を追加する。具体的には、グループ管理装置20は、グループ管理テーブルにデータ受信端末302の管理情報を記録するための領域を作成する。そして、グループ管理装置20は、作成した領域の端末フィールドに、データ受信端末302を識別するための情報“302”を記録し、状態フィールドに“Join Received”を記録し、トークン情報フィールドに“No”を記録し、時刻フィールドに、Join Requestを受信した時刻“11:34”を記録する(図9及び図10のステップS12)。
【0056】
グループ管理装置20は、二番目以降のグループメンバからJoin Requestを受信した場合には、二番目以降のグループメンバにトークンを割り当てる必要がないため、ここで処理を終了する。
データ受信端末302は、データ受信端末301がすでにマルチキャストグループAのメンバであることから、Join Request送出時点からマルチキャスト配信データを受信することが出来る。
【0057】
(トークンメンバ離脱時のトークン割当解除処理)
図11〜図16は、トークンメンバであるデータ受信端末301が、マルチキャストグループA宛のマルチキャスト配信データの受信を希望しない場合や、グループ管理装置20の配下から移動する場合に、マルチキャストグループAから離脱する際のトークン割当解除処理の動作手順を示す図である。なお、ここでは、マルチキャストグループAのグループ管理テーブルに、データ受信端末303やデータ受信端末304についてもグループメンバとして記録されている状態から説明を開始する。
データ受信端末301は、離脱要求メッセージ(Leave Request)をグループ管理装置20に対して送信することで、マルチキャストグループAからの離脱を所望することを伝える(図11及び図12のステップS21)。このLeave Requestには、データ受信端末301が開放するトークンに関する情報を含む。
【0058】
Leave Requestを受信したグループ管理装置20のトークンメンバ管理部22は、グループ管理テーブルを参照して、データ受信端末301に対するトークン情報フィールドに“Yes”が記録されていることから、トークンメンバであるデータ受信端末301からのLeave Requestであると判断する。そして、トークンメンバ管理部22は、グループ管理テーブルのデータ受信端末301に対する状態フィールドを、データ受信端末301からLeave Requestを受信したことを示す情報“Leave Request Received”で更新する。さらに、トークンメンバ管理部22は、受信したトークンに関する情報が正しい情報であるかどうかを判断する。例えば、トークンメンバ管理部22は、一般的な改ざんチェックや送信元の正当性チェックを行う。例えば、トークンの改ざんチェックの方法の一例として、鍵付きハッシュ関数を用いて生成したメッセージ認証コードを、トークンとして用いたり、トークンの付属情報として付加する方法がある。判断の結果、正しいトークンであると判断すると、トークンメンバ管理部22は、データ受信端末301が「トークン割当対象状態」でなくなったと判断する。
【0059】
これにより、トークン割当解除部23は、データ受信端末301のトークン情報フィールドを“No”に変更することにより、トークンが返却された、すなわち、当該データ受信端末301に対するトークンの割当が解除されたことを記録する(図11及び図12のステップS22)。
その後、グループ管理装置20のトークンメンバ管理部22は、当該データ受信端末301に対して離脱要求確認メッセージ(Leave Request ACK)を返す(図11及び図13のステップS23)。そして、グループ管理装置20のトークンメンバ管理部22は、グループ管理テーブルに記録されているデータ受信端末301に関する管理情報を削除する(図11及び図13のステップS24)。
以上の手順によりトークンメンバであるデータ受信端末301のマルチキャストグループAからの離脱が完了する。
【0060】
<他端末へのトークンの付与>
ここでトークンは、マルチキャストグループメンバの中で最低1台のデータ受信端末30に割り当てられるという特徴を持つものであるため、グループ管理装置20のトークン割当部21は、データ受信端末301に割り当てられていたトークンを、別のデータ受信端末30に対して割り当てる必要がある。
そこで、マルチキャストグループAのグループ管理テーブルに、グループメンバとして記録されているデータ受信端末30が存在する場合には(図14のステップS31;Yes)、グループ管理装置20のトークン割当部21は、グループ管理テーブルから、最も過去の時刻情報を含む管理情報を検索し、当該検索された管理情報に対するデータ受信端末30を、次のトークンメンバとして選出する(図14のステップS33)。
【0061】
なお、グループ管理テーブルに他のデータ受信端末30が記録されていない場合には(図14のステップS31;No)、この時点でマルチキャストグループAのグループメンバが配下に存在しないことになる。このため、トークンメンバ管理部22は、当該グループ管理テーブル自体をハードディスクから削除する。これにより、マルチキャスト配信データ中継部24は、マルチキャストグループAに対する配信データの中継を停止する(図14のステップS32)。
【0062】
ここでは、図15に示すように、グループ管理テーブルにグループメンバとして記録されているデータ受信端末30が存在し(図14のステップS31;Yes)、グループ管理テーブルの時刻フィールドに記録されている時刻情報から、データ受信端末302が一番長い時間、配下でマルチキャストグループAにグループメンバとして属していることが判る。このため、トークン割当部21は、データ受信端末302を次のトークンメンバとして選出することになる(図14のステップS33)。
【0063】
次に、次のトークンメンバとして選出されたデータ受信端末302へのトークンの割当処理について説明する。グループ管理装置20のトークン割当部21は、次のトークンメンバとなるべきデータ受信端末302に対して、トークンを含んだ加入応答メッセージ(Join Response)を返す(図14及び図15のステップS34)。また、グループ管理装置20のトークンメンバ管理部22は、グループ管理テーブルのデータ受信端末302に対する状態フィールドに、Join Responseを送信したことを示す情報として“Join Response Sent”を記録する(図14及び図15のステップS35)。
【0064】
Join Responseを受信したデータ受信端末302は、加入応答確認メッセージ(Join Response ACK)を返す(図14及び図16のステップS36)。
Join Response ACKを受信したグループ管理装置20のトークンメンバ管理部22は、グループ管理テーブルのデータ受信端末302に対する状態フィールドに、加入応答確認が完了したことを示す情報として“Connected”を記録する。さらに、Join Response ACKにより、トークンが無事にデータ受信端末302に届いたことを確認できたため、トークン割当部21は、データ受信端末302に対するトークン情報フィールドに“Yes”を記録する(図14及び図16のステップS37)。
【0065】
以上の動作によって、トークン割当解除部23によりトークンメンバであるデータ受信端末301に対するトークンの割当が解除された場合に、グループ管理装置20のトークン割当部21は、次のトークンメンバとなるべきデータ受信端末302に対してトークンを割り当てることができる。
【0066】
(非トークンメンバの離脱)
図17及び図18は、非トークンメンバであるデータ受信端末303がマルチキャストグループAから離脱する場合の動作手順を説明したものである。
本手順を開始する時点においては、グループ管理テーブルには図16に示す管理情報が記録されているものとする。
まず、データ受信端末303は、離脱要求メッセージ(Leave Request)をグループ管理装置20に対して送信することで、マルチキャストグループAのグループメンバに配信されるデータの受信停止を所望することを伝える(図17及び図18のステップS41)。
【0067】
Leave Requestを受信したグループ管理装置20は、図16のグループ管理テーブルに示すように、データ受信端末303に対するトークン情報フィールドに“No”が記録されていることから、非トークンメンバであるデータ受信端末303からのLeave Requestであると判断する。そして、グループ管理装置20は、グループ管理テーブルから、データ受信端末303に関する管理情報を削除する(図17及び図18のステップS42)。以上の動作により、非トークンメンバの離脱手順が完了する。
【0068】
(トークンメンバのKeep Alive)
以上説明したように、グループ管理装置20のトークン割当部21は、配下に存在するマルチキャストのグループメンバを、トークンメンバと非トークンメンバに分ける。そして、トークンメンバ管理部22は、トークンメンバに関しては各メッセージのやり取りに対して確認応答を行い、厳密なメンバシップ管理を行う。これにより、トークンメンバ管理部22は、トークンメンバが「トークン割当対象状態」であることを厳密に管理する。一方、非トークンメンバに関してはメッセージのやり取りを最小限に抑えて厳密な管理を行わないことで、グループ管理装置20におけるスケーラビリティを確保しようとするのが本発明の特徴である。
【0069】
従って、グループ管理装置20のトークンメンバ管理部22は、トークンメンバに対しては、確認応答を行う以外にも、定期的に状況確認を行い、トークンメンバが配下においてそのマルチキャストグループに属しているか否か、すなわち、トークンメンバが「トークン割当対象状態」であるか否かを厳密に管理する必要がある。
図19及び図20を参照しながら、トークンメンバが「トークン割当対象状態」であることを確認するためのKeep Alive手順について説明する。
【0070】
図19では、グループ管理装置20のトークンメンバ管理部22が、トークンメンバに対して、定期的に状態確認メッセージ(Hello)を送信する(図19のステップS51)。Helloは、決められたタイマに従って、トークンメンバに対して送信される。
Helloを受信したトークンメンバであるデータ受信端末302は、Helloの応答として状態確認応答メッセージ(Hello ACK)を返す(図20のステップS52)。
以上の動作により、グループ管理装置20のトークンメンバ管理部22は、トークンメンバであるデータ受信端末302が「トークン割当対象状態」であることを確認することができる。
【0071】
グループ管理装置20のトークンメンバ管理部22は、トークンメンバにHelloを送信したものの、一定のタイムアウト時間を待ってもその応答が無い場合には、当該トークンメンバが「トークン割当対象状態」でなくなったと判断する。これにより、トークン割当解除部23は、トークンメンバに対するトークンの割当を解除する。具体的には、トークン割当解除部23は、トークンメンバの管理情報をグループ管理テーブルより削除する。次いで、トークン割当部21は、トークンの割当が解除されたのを検知して、図14に示す手順に従い、配下に存在する他のグループメンバに対するトークン割当処理を行う。これにより、トークン割当部21は、配下のサブネットワーク上にトークンメンバが最低一台存在するように制御することとなる。
【0072】
(非トークンメンバの突然の離脱)
非トークンメンバについては、Join RequestもしくはLeave Requestに対する確認応答を行わず、さらにKeep Aliveによる状態確認を行わないため、グループ管理装置20のグループ管理テーブルで管理されるデータ受信端末30の加入状況と、実際のデータ受信端末30の加入状況とが一致しない場合がしばしば発生する。
例えば、データ受信端末30が頻繁に移動する無線LANのようなモバイルネットワークにおいては、非トークンメンバであるデータ受信端末30が、Leave Requestを送信すること無しに、他のグループ管理装置20の配下に移動してしまうことが当然発生する。また、データ受信端末30が突然電源断となった場合なども考えられる。その際には、グループ管理装置20は、自身が保持するグループ管理テーブルで管理される加入状況と、実際の加入状況が一致しないという状態が発生する。このような状態が問題となる場合として、図14に示すような、非トークンメンバがトークンを割り当てられてトークンメンバに変化する例が存在する。
【0073】
図14及び図15のステップS34において、グループ管理装置20がJoin Responseを送信した時に、データ受信端末302がすでに存在しない場合の動作手順を、図21を参照して説明する。
図21には、データ受信端末302が電源断や移動により、Leave Requestを出すこと無しに不在になった状況を示している。このような場合には、グループ管理装置20のトークンメンバ管理部22は、Join Responseを出すものの、それに対する応答(リプライ)が無いために、当該データ受信端末302が「トークン割当対象状態」でないものと判断する。そして、トークン割当解除部23は、グループ管理テーブルから、データ受信端末302に関する管理情報を削除する。
その後、グループ管理装置20のトークン割当部21は、他のデータ受信端末30に対してトークンを与えるための手順を行うために、図14に示す他端末へのトークンの割当手順を実行する。
【0074】
(Membership Query)
非トークンメンバの突然の離脱が多くのデータ受信端末30に渡ると、図21で説明したような、Join Responseに対するリプライを返信しないデータ受信端末30が多数存在することになる。このような場合には、グループ管理装置20のトークン割当部21は、トークンをデータ受信端末30に対して割り当てるために、連続してJoin Responseをデータ受信端末30に対して送信する場合がある。
【0075】
具体的な例として、グループ管理装置20が、グループ管理テーブルに記録されている管理情報に基づいて、配下にグループメンバが多数存在すると把握していたとしても、グループメンバの電源断や移動等の理由で、自装置20の配下に存在すると把握していた全てのグループメンバが実際には存在しない場合も考えられる。このような場合には、グループ管理装置20のトークン割当部21は、グループ管理テーブルにグループメンバとして記録されている全てのデータ受信端末30に対して順にトークンを与えようとし、さらにそのリプライを待ち続けるという状況が発生する。このような例においては、グループ管理装置20はマルチキャスト配信データの中継が必要ない場合にも当該データの中継を続けてしまうという離脱遅延(Leave Latency)の問題が発生し、結果としてネットワークの利用効率を著しく低下させる原因となる。
【0076】
以上のことから、グループ管理装置20のトークン割当部21は、Join Responseの代わりに加入者問い合わせメッセージ(Membership Query)をネットワーク全体にマルチキャスト配信しても良い。
図22は、グループ管理装置20がMembership Queryを用いて、マルチキャストグループメンバの確認を行った場合の例を示す。データ受信端末30は、Membership Queryを受信すると、グループ管理装置20から指定された最大応答時間(Max Response Time)の範囲内でタイマを起動し、そのタイマが満了した場合には、グループ管理装置20に対してJoin Requestを改めて送信する。
【0077】
これにより、グループ管理装置20は、どのデータ受信端末30がグループメンバとして存在しているか否かを確認することが可能となる。このように、トークン割当部21は、グループ管理テーブルで管理されているグループメンバの加入状況と実際の加入状況とを一致させるために、Membership Queryを用いることができる。
グループ管理装置20のトークン割当部21は、Join Responseを個々のデータ受信端末30に送信する代わりにMembership Queryを使用するか否かを決定することが出来る。例えば、Join Responseに対するタイムアウトがある決められた値回数以上発生した場合に、グループ管理テーブルで管理されているグループメンバの加入状況と実際の加入状況とが一致していない可能性が高いと考えられるため、トークン割当部21はMembership Queryを使用するという決定方法が考えられる。
【0078】
グループ管理装置20は、定期的にMembership Queryを用いて、配下のデータ受信端末30の加入状況確認を行っても良い。例えば、無線LAN等のデータ受信端末30が頻繁に移動するネットワークで用いられるグループ管理装置20の場合、Membership Query発行の時間間隔を短くするなどの工夫が考えられる。
【0079】
(メッセージの欠落による状態不一致)
トークンメンバであるデータ受信端末30とグループ管理装置20とのメッセージのやり取りは、マルチキャストグループ加入の際に、Join Request→Join Response→Join Response ACK、マルチキャストグループ離脱の際に、Leave Request→Leave Request ACKの構成となっており、いずれかのメッセージが欠落した場合には再送により対処することが出来る。
【0080】
例えば、マルチキャストグループへの加入の際に、Join Responseが何らかの原因で欠落した場合には、グループ管理装置20のトークンメンバ管理部22は、Join Response ACKが戻ってこないことによりその状況を把握する。そしてグループ管理装置20のトークンメンバ管理部22は、Join Responseを再送することによりメッセージの欠落に対処する。Join Response ACKが欠落した場合にも同様である。
【0081】
同様に、Leave RequestやLeave Request ACKの欠落に対しても、データ受信端末30は、Leave Request に対するLeave Request ACKが届かないことにより、データの欠落を検出することができる。データの欠落を検出したデータ受信端末30は、Leave Requestを再送することでメッセージの欠落に対処することが可能である、
ただし、非トークンメンバの場合には、非トークンメンバが送信したJoin RequestとLeave Requestとのいずれに対してもグループ管理装置20から応答が無いため、それらのメッセージが欠落したとしても、欠落していることを検出することが出来ない場合がある。
【0082】
例えば、最初にあるマルチキャストグループに加入するためのJoin Requestを発行したトークンメンバとなるべきデータ受信端末30のJoin Requestが欠落した場合には、データ受信端末30はマルチキャスト配信データの配信を受けることができないため、データ受信端末30はJoin Requestを再送するための判断をすることが可能である。
【0083】
一方、非トークンメンバが送信したJoin Requestが欠落した場合には、そのメッセージが実際にグループ管理装置20に届いていないにもかかわらず、非トークンメンバはマルチキャスト配信データを受信することは可能であるため、グループ管理テーブルで管理されているグループメンバの加入状況と実際の加入状況との不一致が発生する。このような場合、データ受信端末30は、実際にはグループメンバであるのにもかかわらずグループ管理装置20には認識されないという状況が発生するため、他のグループメンバの離脱によって突然マルチキャスト配信データの中継が停止されてしまうことも考えられる。このような場合には、データ受信端末30は、マルチキャスト配信データの受信が終了してしまったことで何らかの異常が発生したと判断し、Join Requestを改めて送信するなどの対処が必要である。
【0084】
グループ管理装置20は、以上のような状況が発生することを鑑み、最後のグループメンバが離脱したと判断したときには、データの中継を停止する前にMembership Queryを用いて残存しているグループメンバが存在するか否かを問い合わせても良い。このようにすれば、グループ管理装置20は、非トークンメンバヘのマルチキャストデータの中継を停止してしまうということが無くなる。
【0085】
(非グループメンバのメッセージの受信)
グループ管理装置20のグループ管理テーブルで管理されているグループ加入状況と実際のデータ受信端末30のグループ加入状況とが不一致である場合に、データ受信端末30は、あるマルチキャストグループのメンバで無いのに、Join Response、Hello、或いは、Membership Queryを受信することがある。
【0086】
このような場合、データ受信端末30が当該メッセージを無視することによって、結果的にグループ管理装置20は当該データ受信端末30が存在しないと判断するため、グループ管理テーブルで管理されているグループ加入状況を実際のグループ加入状況に一致させることが出来る。しかし、無視することによってグループ管理装置20のタイムアウトを発生させる方法では、グループ管理装置20がメッセージを送信してからグループ管理テーブルを更新するまでのタイムラグが生じる。
従って、データ受信端末30は、あるマルチキャストグループのメンバで無いのに、そのグループに対するJoin Response、Hello、又は、Membership Queryを受信した場合には、それに対する否定応答(NACK)を返しても良い。NACKを返すことによって、グループ管理装置20はいち早く不一致を把握することが可能である。
【0087】
(各メッセージの宛先アドレス)
図23は、以上に説明した各メッセージの一覧をまとめたものである。
Join Requestは、データ受信端末30からグループ管理装置20に対して送信するものであるため、グループ管理装置20のユニキャストアドレスがその宛先となる。もしくは、グループ管理装置20群あてのマルチキャストグループアドレスをあらかじめ割り当て、それを宛先アドレスとしても良い。もしくはグループ管理装置20用に割り当てられたエニイキャストアドレスがある場合には、それを宛先アドレスにしても良い。
【0088】
Join Responseは、グループ管理装置20からデータ受信端末30に対して送信するものであり、データ受信端末30のユニキャストアドレスがその宛先アドレスに用いられる。
Join Response ACKは、データ受信端末30からグループ管理装置20に対して送信するものであり、Join Responseと同様に3種類の宛先アドレスの設定方法が存在する。
【0089】
Leave Requestは、データ受信端末30からグループ管理装置20に対して送信するものであるため、グループ管理装置20のユニキャストアドレスがその宛先となる。もしくは、グループ管理装置20群あてのマルチキャストグループアドレスをあらかじめ割り当て、それを宛先アドレスとしても良い。もしくはグループ管理装置20用に割り当てられたエニイキャストアドレスがある場合には、それを宛先アドレスにしても良い。
【0090】
Leave Request ACKは、グループ管理装置20からデータ受信端末30に対して送信するものであり、データ受信端末30のユニキャストアドレスがその宛先アドレスに用いられる。
Membership Queryに関しては、グループ管理装置20から当該マルチキャストグループのメンバであるデータ受信端末30に対して送信されるメッセージであるため、当該マルチキャストアドレスがその宛先に用いられる。
【0091】
Helloに関しては、グループ管理装置20からデータ受信端末30に対して送信されるものであるため、データ受信端末30のユニキャストアドレスがその宛先アドレスに用いられる。
但し、前に説明するようにトークンメンバは複数存在することも考えられるので、トークンメンバ全てに対してHelloメッセージをするために、トークンメンバ用マルチキャストグループを宛先としても良い。
【0092】
Hello ACKに関しては、データ受信端末30からグループ管理装置20に対して送信するものであるため、グループ管理装置20のユニキャストアドレスがその宛先となる。もしくは、グループ管理装置20群あてのマルチキャストグループアドレスをあらかじめ割り当て、それを宛先アドレスとしても良い。もしくはグループ管理装置20用に割り当てられたエニイキャストアドレスがある場合には、それを宛先アドレスにしても良い。
【0093】
(まとめ)
以上説明したように、グループ管理装置20は、トークンが割り当てられたデータ受信端末30のみを厳密に管理することによって、グループ管理のための通信量を抑えることができる。また、グループ管理装置20は、トークンが割り当てられたデータ受信端末30を厳密に管理することにより、少なくとも1のデータ受信端末30にトークンが割り当てられているか否かによって、マルチキャストグループに属しているデータ受信端末30が配下に存在しているか否かを判断することができる。このため、従来のように、配下にグループメンバが存在しているか否かを確認するためのメッセージを送信する必要がなくなる。このように、本発明によって、通信量を抑えたマルチキャストグループ管理を行うことが可能となる。
【0094】
また、無線LAN等のモバイル環境においては、データ受信端末30は頻繁に移動し、グループ管理装置20配下のマルチキャストグループに属している期間は通常短くなるものと考えられる。このため、頻繁に移動するデータ受信端末30に対しては、トークンを割り当てないことによって、厳密な管理を行わないようにする。その一方、移動が少なくマルチキャストグループに属している期間が長い一部のデータ受信端末30に対しては、トークンを割り当てて厳密に管理する。このようなグループ管理を行うことで、データ受信端末30の移動に伴い発生する加入、離脱による余計な通信が発生しないようにすることが可能となる。
【0095】
[3.変形例]
以上、本発明の実施形態について説明したが、本発明は係る実施形態に限定されるものではなく、その技術思想の範囲内で様々な変形が可能である。変形例としては、例えば、以下のようなものが考えられる。
(1)上述した実施形態におけるトークン割当部21によるトークン割当の方法としては、トークン割当部21が、トークンに関する情報を含んだJoin Responseをデータ受信端末30に送信することによって、データ受信端末30にトークンを記憶させるようにしたが、これに限定されることはない。例えば、トークンに関する情報を含まないJoin Responseをデータ受信端末30に送信し、データ受信端末30に対してトークンを割り当てた旨の情報をグループ管理テーブルに記録しておくだけでもよい。
【0096】
(2)上述した実施形態においては、トークンは、基本的に、あるマルチキャストグループに最初に加入したデータ受信端末30に対して与えられるとして説明したが、これに限定されることはない。例えば、1秒差で、グループメンバが存在していない同一のマルチキャストグループへの加入要求を、2つのデータ受信端末30より受信した場合には、トークン割当部21は、例えば、データ受信端末30の機種によって、どちらのデータ受信端末30にトークンを割り当てるかを決定するようにしてもよい。
【0097】
(3)上述した実施形態においては、データ受信端末30は、グループ管理装置20の配下から移動する時に、基本的に離脱要求メッセージ(Leave Request)を送信することを前提として説明したが、これに限定されることはない。データ受信端末30がグループ管理装置20の配下から移動する時に、離脱要求メッセージ(Leave Request)を送信しない場合には、グループ管理装置20は、加入者問い合わせメッセージ(Membership Query)を送信したり、または、データ受信端末30の位置情報を受信して、データ受信端末30が配下に存在するか否かを判断するようにしても良い。
【0098】
(4)上述した実施形態におけるメッセージの種類は一例であり、同様の機能を果たすメッセージであれば、どのようなメッセージでも良い。また、「トークン割当対象状態」を管理するための方法や、管理のために使用するメーセージの種類についても一例に過ぎず、厳密に「トークン割当対象状態」を管理することができる方法であれば、どのような方法を用いても良い。
【0099】
(5)上述した実施形態においては、グループ管理テーブルは、マルチキャストグループ毎に作成されるとして説明したが、1つのグループ管理テーブルによって全てのマルチキャストグループを管理してもよい。また、グループ管理テーブルのデータ構成は一例であり、例えば、マルチキャストグループの識別情報としてマルチキャストアドレスのフィールドを設けても良い。
【産業上の利用可能性】
【0100】
マルチキャストグループ管理に利用することができる。特に、多くのグループメンバが頻繁に移動する通信環境において利用した場合には、グループ管理に必要な通信量を大幅に削減することができる。
【図面の簡単な説明】
【0101】
【図1】本発明の実施の形態に係るマルチキャストグループ管理システム10の構成図である。
【図2】同実施の形態に係るマルチキャストグループ管理システム10を含むネットワーク構成の一例を示す図である。
【図3】同実施の形態に係るグループ管理テーブルの一例を示す図である。
【図4】同実施の形態に係るグループ管理装置20の機能構成を示す図である。
【図5】同実施の形態に係るデータ受信端末301が最初のグループメンバとしてマルチキャストグループに加入する場合に行われるトークン割当処理の動作手順を示すフローチャートである。
【図6】同実施の形態に係るデータ受信端末301が加入要求メッセージを送信したときのグループ管理テーブルの状態を示す図である。
【図7】同実施の形態に係るグループ管理装置20がデータ受信端末301に加入応答メッセージを送信したときのグループ管理テーブルの状態を示す図である。
【図8】同実施の形態に係るデータ受信端末301が加入応答確認メッセージを送信したときのグループ管理テーブルの状態を示す図である。
【図9】同実施の形態に係るデータ受信端末302が二番目以降のグループメンバとしてマルチキャストグループに加入する場合の動作手順を示すフローチャートである。
【図10】同実施の形態に係るデータ受信端末302が加入要求メッセージを送信したときのグループ管理テーブルの状態を示す図である。
【図11】同実施の形態に係るデータ受信端末301がマルチキャストグループから離脱する場合に行われるトークン割当解除処理の動作手順を示すフローチャートである。
【図12】同実施の形態に係るトークンメンバであるデータ受信端末301が離脱要求メッセージを送信したときのグループ管理テーブルの状態を示す図である。
【図13】同実施の形態に係るグループ管理装置20が離脱要求確認メッセージを送信したときのグループ管理テーブルの状態を示す図である。
【図14】同実施の形態に係るトークン割当解除後のトークン割当処理の動作手順を示すフローチャートである。
【図15】同実施の形態に係るグループ管理装置20がデータ受信端末302に加入応答メッセージを送信したときのグループ管理テーブルの状態を示す図である。
【図16】同実施の形態に係るデータ受信端末302が加入応答確認メッセージを送信したときのグループ管理テーブルの状態を示す図である。
【図17】同実施の形態に係る非トークンメンバであるデータ受信端末303がマルチキャストグループから離脱する場合の動作手順を示すフローチャートである。
【図18】同実施の形態に係る非トークンメンバであるデータ受信端末303が離脱要求メッセージを送信したときのグループ管理テーブルの状態を示す図である。
【図19】同実施の形態に係るグループ管理装置20がトークンメンバであるデータ受信端末302に状態確認メッセージを送信したときのグループ管理テーブルの状態を示す図である。
【図20】同実施の形態に係るデータ受信端末302が状態確認応答メッセージをグループ管理装置20に送信したときのグループ管理テーブルの状態を示す図である。
【図21】同実施の形態に係るグループ管理装置20が非存在メンバヘトークンを割り当てようとしたときの状態を説明するための図である。
【図22】同実施の形態に係るグループ管理装置20が配下のデータ受信端末30に対して加入者問い合わせメッセージを送信したときのグループ管理テーブルの状態を示す図である。
【図23】同実施の形態に係るメッセージの種別を説明するための図である。
【符号の説明】
【0102】
10 マルチキャストグループ管理システム
20 グループ管理装置
21 トークン割当部
22 トークンメンバ管理部
23 トークン割当解除部
24 マルチキャスト配信データ中継部
30,301,302,303,304 データ受信端末
40 データ中継装置
50 データ送信端末

【特許請求の範囲】
【請求項1】
自装置の配下に存在するデータ受信端末へのマルチキャスト配信データの中継を行うグループ管理装置において、
あるマルチキャストグループに属している前記データ受信端末のうち、少なくとも1のデータ受信端末に対してトークンを割り当てるトークン割当手段と、
前記トークンが割り当てられたデータ受信端末が、自装置の配下に存在し、かつ、前記あるマルチキャストグループに属している状態であるトークン割当対象状態であるか否かを管理するトークンメンバ管理手段と、
前記トークンメンバ管理手段により、前記トークンが割り当てられたデータ受信端末が前記トークン割当対象状態でないことが判明した場合に、該データ受信端末に対するトークンの割当を解除するトークン割当解除手段と、
少なくとも1のデータ受信端末に前記トークンが割り当てられている間、前記あるマルチキャストグループに属しているデータ受信端末へのマルチキャスト配信データの中継を行うマルチキャスト配信データ中継手段と
を備えることを特徴とするグループ管理装置。
【請求項2】
前記トークン割当手段は、前記トークン割当解除手段により割当が解除されたトークンを、他のデータ受信端末に割り当てることを特徴とする
請求項1に記載のグループ管理装置。
【請求項3】
前記トークン割当手段は、
前記データ受信端末が、自装置の配下に継続して存在しており、かつ、前記あるマルチキャストグループに継続して属している時間と、
前記データ受信端末が、自装置の配下に存在し、かつ、前記あるマルチキャストグループに属していた過去の累積時間と、
前記データ受信端末の機種と
の少なくとも1に応じて、前記トークンを割り当てるべきデータ受信端末を決定することを特徴とする
請求項1又は2に記載のグループ管理装置。
【請求項4】
前記トークン割当手段は、
自装置の配下に存在し、かつ、前記あるマルチキャストグループに属しているデータ受信端末の数と、
前記データ受信端末が自装置の配下に継続して存在する平均時間と
の少なくとも一方に応じて、前記トークンを割り当てるべきデータ受信端末の数を決定することを特徴とする
請求項1から3のいずれか1項に記載のグループ管理装置。
【請求項5】
前記トークンメンバ管理手段は、
前記トークンが割り当てられたデータ受信端末に対してのみ、該データ受信端末より受信したメッセージに対する応答メッセージを返信することを特徴とする
請求項1から4のいずれか1項に記載のグループ管理装置。
【請求項6】
前記トークンメンバ管理手段は、
前記トークンが割り当てられたデータ受信端末に対してのみ、該データ受信端末が前記トークン割当対象状態であるか否かを確認するためのメッセージを送信することを特徴とする
請求項1から5のいずれか1項に記載のグループ管理装置。
【請求項7】
前記トークン割当手段は、
前記あるマルチキャストグループ宛に問合せメッセージを送信することにより、該あるマルチキャストグループに属していることが確認されたデータ受信端末の中から、前記トークンを割り当てるべきデータ受信端末を決定することを特徴とする
請求項1から6のいずれか1項に記載のグループ管理装置。
【請求項8】
グループ管理装置が行うマルチキャストのグループ管理方法において、
前記グループ管理装置の配下に存在し、かつ、あるマルチキャストグループに属しているデータ受信端末のうち、少なくとも1のデータ受信端末に対してトークンを割り当てるトークン割当ステップと、
前記トークンが割り当てられたデータ受信端末の状態が、前記グループ管理装置の配下に存在していない状態と、前記あるマルチキャストグループに属していない状態との少なくとも1の状態であることが判明した場合に、前記データ受信端末に対するトークンの割当を解除するトークン割当解除ステップと、
前記トークン割当解除ステップにおいて割当が解除されたトークンを、前記グループ管理装置の配下に存在し、かつ、前記あるマルチキャストグループに属しているデータ受信端末のうち、いずれか1のデータ受信端末に割り当てるトークン再割当ステップと
を有し、
少なくとも1のデータ受信端末に前記トークンが割り当てられている間、前記あるマルチキャストグループに属しているデータ受信端末へのマルチキャスト配信データの中継を行うことを特徴とするグループ管理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate