(57)【要約】【課題】パケットロスを未然に防止して視聴品質保護を実施することができ、かつ階層化コンテンツ間における選択的な品質保護とレート制御を実現する。【解決手段】階層化コンテンツの配信時、階層化コンテンツ間の優先度と階層化コンテンツの階層間における優先度を付与してマルチキャスト送信する。ＩＰネットワーク１３，１４のルータ５の出力ポート８において、コンテンツ間の優先度に基づいて設定されたいくつかの出力キューに対して振分けを行い、各出力キューにおいて階層化コンテンツのデータパケットが入力されると、出力キューの占有率の算出を行い、出力キューに設けた閾値と算出された占有量とを比較することで、出力キューの混雑状態を判定する。出力キューが混雑していると判定された場合、入力されるデータパケットにマーキングして受信クライアント９に転送することで、ネットワーク１３，１４の混雑状態の通知を行い、マーキングされたパケットを受信した受信クライアント９がネットワーク１３，１４の混雑発生を検出して受信レートの削減を行う。【選択図】図１
2005102104.tif 000002
【特許請求の範囲】
【請求項１】
ＩＰネットワークにおけるＩＰマルチキャスト配信システムであって、
階層化されたコンテンツをデータパケットとし、該データパケットにマルチキャストアドレスおよび優先度を付与してマルチキャスト配信を行う配信手段と、
該配信手段から配信されたデータパケットを受け取り、該データパケットに付与されるマルチキャストアドレスと優先度を基にマルチキャスト転送を行う転送手段と、
配信された該データパケットを受信し、階層化コンテンツの視聴を行う受信手段と
を有することを特徴とするＩＰマルチキャスト配信システム。
【請求項２】
請求項１記載のＩＰマルチキャスト配信システムにおいて、
該配信手段は、配信すべき階層化コンテンツの階層情報と該階層化コンテンツの優先度の管理を行う機能部と、
配信すべき階層化コンテンツに対してマルチキャストアドレスと、階層化コンテンツ自体もしくは該階層化コンテンツの各階層もしくはその両方に対して優先度を付与し、データパケットを形成する機能部と、
マルチキャストアドレスおよび優先度が付与された階層化コンテンツのデータパケットをマルチキャスト配信する機能部と
を有することを特徴とするＩＰマルチキャスト配信システム。
【請求項３】
請求項１または２に記載のＩＰマルチキャスト配信システムにおいて、
前記転送手段は、前記配信手段よりマルチキャスト配信される階層化コンテンツのデータパケットを入力ポートより受信する機能部と、
前記受信手段からの階層化コンテンツのデータパケットの受信要求およびマルチキャストプロトコルを処理する機能部と、
該入力ポートより受信したデータパケットに付与されているマルチキャストアドレスを認識し、該受信手段より受信要求のあった出力ポートに対してマルチキャスト転送する機能部と、
該入力ポートより受信したデータパケットに付与されている階層化コンテンツ自体の優先度もしくは各階層の優先度もしくはその両方に基づいて送出制御を行う機能部と
を有することを特徴とするＩＰマルチキャスト配信システム。
【請求項４】
請求項１から３のいずれかに記載のＩＰマルチキャスト配信システムにおいて、
前記送出制御の機能部は、出力ポートに設けられた一つもしくは複数の出力キューに対して、データパケットに付与されている階層化コンテンツ自体の優先度に基づいて、該優先度を基に設定した対応する出力キューに対してデータパケットを振り分ける機能部と、
該出力キューの占有量を算出し、算出値とデータパケットに付与されている階層の優先度を基に設定した閾値と比較し、比較結果により該出力キューにおける混雑状態を検出する機能部と、
該出力キューの混雑状態をデータパケットに付与し、前記受信手段に通知する機能部と
を有することを特徴とするＩＰマルチキャスト配信システム。
【請求項５】
請求項１から４のいずれかに記載のＩＰマルチキャスト配信システムにおいて、
前記受信手段は、受信を希望する階層化コンテンツに対して受信開始要求を行う機能部と、
受信した階層化コンテンツのデータパケットからコンテンツの再生を行う機能部と、
受信した階層化コンテンツのデータパケットを検査し、前記転送手段より通知されるネットワークの混雑状態を判断する機能部と、
受信した階層化コンテンツのデータパケットを検査し、ネットワークの安定状態を判断する機能部と、
受信停止を希望するコンテンツに対して受信停止要求を行う機能部と
を有することを特徴とするＩＰマルチキャスト配信システム。
【請求項６】
ＩＰマルチキャスト配信システムにおけるレート制御方法であって、
転送手段の出力ポートにおける出力キューに、階層化コンテンツ自体の優先度により振り分けられたデータパケットが入力した際に、該出力キューの占有量を算出するステップと、
算出された該出力キューの占有量と階層の優先度に基づいて設定された閾値との比較により該出力キューの混雑状態を判断するステップと、
該出力キューの混雑状態が判断された場合に、データパケットに混雑状態を示すマーキングを行うステップと、
受信手段において、コンテンツのデータパケットを受信する際に、受信したデータパケットを検査し、マーキングされたデータパケットのカウントを行うステップと、
カウントを行った結果のカウント値と、一定値もしくはある期間中のカウント値の増加率などを含む設定した閾値との比較により、ネットワークの混雑状態を判断するステップと、
ネットワークの混雑状態を判断した場合に、階層化コンテンツの受信レートの削減を行うステップと
を有することを特徴とするＩＰマルチキャスト配信システムのレート制御方法。
【請求項７】
ＩＰマルチキャスト配信システムにおけるレート制御方法であって、
受信手段において、コンテンツのデータパケットを受信する際に、受信したデータパケットを検査し、マーキングされたパケットを設定される期間受信しなかった場合、もしくは設定される一定数までの許容される数にとどまる数の受信の場合に、ネットワークを安定状態と判断するステップと、
ネットワークが安定な状態と判断した場合に、階層化コンテンツの受信レートの維持、もしくは受信レートの増加を行うステップと
を有することを特徴とするＩＰマルチキャスト配信システムのレート制御方法。
【請求項８】
ＩＰマルチキャスト配信システムにおけるレート制御用プログラムであって、
転送手段のコンピュータにおける出力ポートの出力キューに、階層化コンテンツ自体の優先度により振り分けられたデータパケットが入力した際に、該出力キューの占有量を算出する手順、算出された該出力キューの占有量と階層の優先度に基づいて設定された閾値との比較により該出力キューの混雑状態を判断する手順、該出力キューの混雑状態が判断された場合に、データパケットに混雑状態を示すマーキングを行う手順を、それぞれ実行させるためのＩＰマルチキャスト配信用プログラム。
【請求項９】
ＩＰマルチキャスト配信システムにおけるレート制御用プログラムであって、
受信手段のコンピュータに、コンテンツのデータパケットを受信する際に、受信したデータパケットを検査する手順、マーキングされたデータパケットのカウントを行う手順、
カウントを行った結果のカウント値と、一定値もしくはある期間中のカウント値の増加率などを含む設定した閾値との比較を行う手順、比較の結果に基づいてネットワークの混雑状態を判断する手順、該ネットワークの混雑状態を判断した場合に、階層化コンテンツの受信レートの削減を行う手順を、それぞれ実行させるためのＩＰマルチキャスト配信用プログラム。
【請求項１０】
ＩＰマルチキャスト配信システムにおけるレート制御用プログラムであって、
受信手段のコンピュータに、コンテンツのデータパケットを受信する際に、受信したデータパケットを検査する手順、マーキングされたデータパケットを設定される期間受信しなかった場合、もしくは設定される一定数までの許容される数にとどまる数の受信の場合に、ネットワークを安定状態と判断する手順、該ネットワークが安定な状態と判断した場合に、階層化コンテンツの受信レートの維持、もしくは受信レートの増加を行う手順を、それぞれ実行させるためのＩＰマルチキャスト配信用プログラム。
【請求項１１】
請求項８から１０までのいずれかに記載のＩＰマルチキャスト配信用プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰパケット通信網におけるＩＰマルチキャスト配信システムとＩＰマルチキャスト配信システムにおけるレート制御方法、およびそのプログラムと記録媒体に関する。
【背景技術】
【０００２】
従来のＩＰマルチキャストを利用した配信システムは、ＩＰユニキャストを利用した配信システムに比べて、配信サーバの負荷やネットワーク上のデータ量を削減できるために、大容量コンテンツを配信する場合に有効である。しかしながら、単純なＩＰマルチキャストを利用した配信システムでは、ユーザ端末の能力やユーザのネットワーク帯域に応じた個別の対応は困難である。
このため、ユーザ端末ごとに適切な品質のコンテンツを受け取ることができるように、配信側では、元のコンテンツを階層符号化し、階層ごとに別々のマルチキャストアドレスで送信している。ユーザは、必要とする階層のマルチキャストアドレスをＩＧＭＰ（Ｉｎｔｅｒｎｅｔ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）のＭｅｍｂｅｒｓｈｉｐ  Ｒｅｐｏｒｔ（ＩＧＭＰ  Ｊｏｉｎ）メッセージを用いてマルチキャストをサポートするエッジルータに受信要求することで、各ユーザ端末に応じた品質のコンテンツが受信可能となるような階層化マルチキャストが提案されている。
【０００３】
【非特許文献１】Ｓ．ＭｃＣａｎｎｅ  ａｎｄ  Ｖ．Ｊａｃｏｂｓｏｎ，“Ｒｅｃｅｉｖｅｒ−ｄｒｉｖｅｎ  Ｌａｙｅｒｅｄ  Ｍｕｌｔｉｃａｓｔ”，ｉｎ  Ｐｒｏｃ．  ｏｆ  ＡＣＭＳＩＧＣＯＭＭ，Ｐａｌｏ  Ａｌｔｏ，ＣＡ，Ａｕｇ  １９９６，ｐｐ．１１７−１３０
【非特許文献２】Ｌ．Ｖｉｃｉｓａｎｏ  ａｎｄ  Ｊ，  Ｃｒｏｗｃｒｏｆｔ，“ＴＣＰ−ｌｉｋｅ  ｃｏｎｇｅｓｔｉｏｎ  ｃｏｎｔｒｏｌ  ｆｏｒ  ｌａｙｅｒｅｄ  ｍｕｌｔｉｃａｓｔ  ｍｕｌｔｉｃａｓｔ  ｄａｔａ  ｔｒａｎｓｆｅｒ”，ｉｎ  Ｐｒｏｃ．ＩＥＥＥ  ＩＮＦＯＣＯＭ，Ｓａｎ  Ｆｒａｎｃｉｓｃｏ，ＣＡ，Ｍａｒ／Ａｐｒ  １９９８  ｐｐ．９９６−１００３
【非特許文献３】Ｘ．Ｌｉ，Ｓ．  Ｐａｕｌ  ａｎｄ  Ｍ．Ａｍｍａｒ，“Ｌａｙｅｒｅｄ  ｖｉｄｅｏ  ｍｕｌｔｉｃａｓｔ  ｗｉｔｈ  ｒｅｔｒａｎｓｍｉｓｓｉｏｎ：Ｅｖａｌｕａｔｉｏｎ  ｏｆ  ｈｉｅｒａｒｃｈｉｃａｌ  ｒａｔｅ  ｃｏｎｔｒｏｌ”，ｉｎ  Ｐｒｏｃ．ＩＥＥＥ  ＩＮＦＯＣＯＭ．Ｓａｎ  Ｆｒａｎｃｉｓｃｏ，ＣＡ  Ｍａｒ／Ａｐｒ  １９９８  ｐｐ．１０６２−１０７２
【非特許文献４】Ｚ．Ｚｈａｎｇ  ａｎｄ  Ｖ．Ｏ．Ｋ．Ｌｉ，“Ｒｏｕｔｅｒ−ａｓｓｉｓｔｅｄ  ｌａｙｅｒｅｄ  ｍｕｌｔｉｃａｓｔ”，ｉｎ  Ｐｒｏｃ．ＩＥＥＥ  ＩＣＣ，Ｎｅｗ  Ｙｏｒｋ，Ａｐｒ−Ｍａｙ，２００２
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、階層化マルチキャストにおけるレート制御方法として一般的な受信者駆動型の制御手法としては、ＲＬＭ（Ｒｅｃｅｉｖｅｒ−ｄｒｉｖｅｎ−Ｌａｙｅｒｅｄ  Ｍｕｌｔｉｃａｓｔ）がある（例えば、非特許文献１参照）。ＲＬＭでは、Ｊｏｉｎ  Ｅｘｐｅｒｉｍｅｎｔと呼ばれる試行錯誤的なレート制御手法が用いられる。これは、ユーザが階層化されたコンテンツの基本階層より順にＩＧＭＰ  Ｊｏｉｎを行い、ユーザ端末にてパケットロスを検出した段階で、Ｊｏｉｎの実施を停止し、受信中の最高階層からの離脱処理をＩＧＭＰ  Ｌｅａｖｅメッセージを用いることで実施する。これらの動作を繰り返すことで、最適なレートを探ることになるが、Ｊｏｉｎ  Ｅｘｐｅｒｉｍｅｎｔを行うことによりネットワークを輻輳状態にしてパケットロスを引き起すことは避けられず、映像コンテンツなどのパケットロスに脆弱なコンテンツに対してはブロックノイズの発生や視聴停止などを引き起こしてしまう、という問題があった。
【０００５】
また、ユーザ端末にてパケットロスを検出した後、ＩＧＭＰ  Ｌｅａｖｅを用いて受信中の最高階層からの離脱処理を行う場合、Ｌｅａｖｅメッセージを受信したエッジルータがトラヒックを停止するまでには離脱遅延時間（Ｌｅａｖｅ  Ｌａｔｅｎｃｙ）が発生する。これは、Ｌｅａｖｅメッセージで離脱を要求されたマルチキャストグループに対し、エッジルータが他の視聴ユーザがいないことを確認し、トラヒック停止を行うまでに要する時間のことであり、このためにパケットロス検出からレート制御による輻輳が回避されるまでに時間がかかってしまい、パケットロスの影響を被る時間が長くなってしまう、という問題があった。
【０００６】
ところで、ＲＬＭを改良した手法として、ＲＬＣ（Ｒｅｃｅｉｖｅｒ−ｄｒｉｖｅｎ  Ｌａｙｅｒｅｄ  Ｃｏｎｇｅｓｔｉｏｎ  Ｃｏｎｔｒｏｌ）（非特許文献２参照）やＬＶＭＲ（Ｌａｙｅｒｅｄ  ｖｉｄｅｏ  ｍｕｌｔｉｃａｓｔ  ｗｉｔｈ  ｒｅｔｒａｎｓｍｉｓｓｉｏｎ）（非特許文献３参照）という手法があるが、いずれも端末によるパケットロスを検出してからのレート制御を行うため、パケットロスを引き起こしてしまう問題点までは解決されていない。
【０００７】
さらに、受信者駆動型のみではなく、ルータ主導型のレート制御手法も考案されている。
ルータ主導型を用いることで、受信者駆動型よりも迅速なレート制御が実現可能であるが、その一方で、ルータに付加的な機能を設ける必要がある。例えば、前記文献（非特許文献４参照）に示される手法では、ネットワーク内のルータにて階層化コンテンツの各階層の符号化速等の情報を保持し、ネットワークの輻輳を検知した際に帯域を最も使用している階層化セッションの階層を１つフィルタリングすることによりレート制御を行う。
しかし、上記手法では、各階層の符号化速度の情報はユーザ端末より受信することを想定しており、端末数が増大した場合の規模拡張性に問題があった。
【０００８】
また、受信者駆動型レート制御およびルータ主導型レート制御のいずれの場合も、レート削減時は、使用帯域の多いコンテンツや受信階層数の多いコンテンツからのレート削減を実施するという、全ての階層化コンテンツから公平にレート削減を実施する手法が殆んどである。
しかし、有料番組と無料番組を提供する場合において、ネットワーク輻輳によるレート制御が必要になった場合、無料番組のみレート制御を行い、有料番組については受信レートを維持したいということも考えられるが、これまでの手法では実現が困難である、という問題がある。
【０００９】
（目的）
そこで、本発明の目的は、これらの問題点を解消し、ネットワークの輻輳発生を予め検出して、事前制御を行うことにより、パケットロスを未然に防止して視聴品質保護を実施することができ、かつ階層化コンテンツ間における選択的な品質保護とレート制御を実現することが可能なＩＰマルチキャスト配信システムとそのレート制御方法、およびそのプログラムと記録媒体を提供することである。
【課題を解決するための手段】
【００１０】
本発明のＩＰマルチキャスト配信システムは、階層化コンテンツの配信時、階層化コンテンツ間の優先度と階層化コンテンツの階層間における優先度を付与して、マルチキャスト送信する。それに基づき、ＩＰネットワークのルータの出力ポートにおいて、コンテンツ間の優先度に基づいて設定されたいくつかの出力キューに対して振分けを行い、各出力キューにおいて階層化コンテンツのデータパケットが入力されると、出力キューの占有率の算出を行い、出力キューに設けた閾値と算出された占有量とを比較することにより、出力キューの混雑状態を判定する。出力キューが混雑していると判定された場合、入力されるデータパケットにマーキングしてユーザ端末に転送することで、ネットワークの混雑状態の通知を行い、マーキングされたパケットを受信したユーザ端末がネットワークの混雑発生を検出して受信レートの削減を行う。また、ある一定期間マーキングされたデータパケットを受信しない場合、もしくは、受信数がある一定数までの許容される数にとどまる場合には、ネットワークは安定状態であると判断し、受信レートの維持もしくは増加を行うことによりレート制御を実現する。
【発明の効果】
【００１１】
本発明によれば、各ユーザのネットワーク環境に応じた品質でコンテンツ配信を行うことができる階層化マルチキャストにおいて、ネットワークの混雑状態をネットワーク内のルータで検出し、ユーザ端末に予め通知することにより、ネットワークの輻輳が生じてコンテンツのデータパケットが廃棄される前にコンテンツの受信レート制御を行うことができ、コンテンツ視聴に与える影響を最小にすることが可能になる。
また、ネットワークが安定状態の時には、コンテンツの受信レートの維持もしくは増加を行うことができ、コンテンツ視聴品質を向上させることもできる。
さらに、コンテンツ間に優先度を設けることにより、コンテンツ間における選択的な品質保護とレート制御を実現することが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施形態を、図面により詳細に説明する。
（実施例１）
図１は、本発明の実施例１に係るＩＰマルチキャスト配信システムの構成図である。
実施例１では、図１に示すように、配信手段としての配信サーバ１、転送手段としてのマルチキャスト対応ルータ５（以下、単にルータと呼ぶ）、および受信手段としての受信クライアント９から構成される。
配信サーバ１は、階層化コンテンツを管理するコンテンツ管理部２と、階層化コンテンツの各階層に対してマルチキャストアドレスや優先度の付与を行うための階層処理部３と、それらのマルチキャスト配信を行うための配信制御部４とから構成される。
ルータ５は、複数の入力ポート６と出力ポート８、および入力ポートより受信した階層化コンテンツのデータパケットをユーザ要求のあった出力ポートに対してマルチキャスト転送処理を実施したり、マルチキャストプロトコル処理を実施するためのマルチキャスト転送処理部７から構成される。
【００１３】
受信クライアント９は、階層化コンテンツのデータパケットの受信やマルチキャストプロトコルの処理を行う送受信制御部１０と、ネットワークの混雑状態の判定を行う状態判定部１１、また階層化コンテンツの再生を行う再生部１２から構成される。
配信サーバ１とルータ５、ルータ５と受信クライアント９は、直接もしくはＩＰネットワーク１３，１４を経由して接続されるものとする。
【００１４】
図２は、図１における配信サーバのコンテンツ管理部にて設定されるコンテンツ管理テーブルの構成例を示す図、図３は図１における配信サーバの階層処理部にて設定されるアドレス管理テーブルの構成例を示す図である。
配信サーバ１のコンテンツ管理部２では、図２に示すように、コンテンツ種別と階層数が管理されるコンテンツ管理テーブル２ａが保持される。また、階層処理部３においては、図３に示すように、コンテンツ管理部２より取得した階層化コンテンツの各階層に対してマルチキャストアドレスや優先度の付与を行い、その情報を管理するためのアドレス管理テーブル３ａが保持される。
階層化コンテンツに対して付与されるマルチキャストアドレスは、他の階層化コンテンツに割り当てられるマルチキャストアドレスとは重複しないように割り当てが行われ、各階層に付与される階層優先度は、階層化コンテンツ自身の特徴に従って任意に付与できる。
【００１５】
一般に、階層化コンテンツは、コンテンツ再生に最低限必要な基本階層と、品質向上の役目を果たす拡張階層から構成されるため、基本階層に対して高い優先度の付与を行えば、最低限のコンテンツ視聴品質の保護が可能となる。本実施例においては、優先度１が最も優先度が高いものとする。
受信クライアント９が接続されるルータ５の出力ポート８に対して、階層化コンテンツの各階層に対する受信要求が届いたとき、ルータ５はその出力ポート８に対して階層化コンテンツの要求があった階層のデータパケット転送を開始する。
【００１６】
図４は、図１におけるルータの出力ポートの構成例を示す図である。
ルータ５におけるデータパケットの出力処理について説明する。ルータ５の出力ポート８の構成は、図４に示すように、出力ポート８より送出されるデータパケットが一旦格納される出力キュー１８と、その出力キュー１８内に格納されているデータパケットにより占められるキューの占有量を算出するキュー長算出部１６と、その出力キュー１８にデータパケットを入力する際にパケットの優先度等の検査を行うパケット処理部１５と、算出されたキュー長と予め設定された閾値との比較により出力キュー１８の混雑度を判定する比較判定部１７とから構成される。
【００１７】
図５は、図４におけるルータの比較判定部にて設定される閾値管理テーブルの構成例を示す図、図６は図４におけるルータの出力キューの閾値の設定イメージを示す説明図である。
比較判定部１７においては、図５に示すように、データパケットに付与される階層優先度と、それに基づいて設定される閾値とを管理する闡値管理テーブル１７ａが設けられ、比較判定処理に用いられる。
図６に、閾値の設定例が示されている。この例では、出力キュー１８において、優先度１に対して閾値１００が、優先度２に対して閾値５０が、優先度３に対して閾値３０が、それぞれ設定されている。
【００１８】
図７は、図４におけるルータのパケット処理部にデータパケットが入力してから、出力キューにパケットが入力されるまでのルータの動作フローチャートである。
図７により、ルータ５の出力ポート８における動作処理を説明する。
配信サーバ１よりマルチキャスト配信されている階層化コンテンツのある階層のデータパケットがパケット処理部１５に到着したとき（ステップ７０１）、キュー長算出部１６により現在の出力キューの占有量の算出を行い、値を取得する（ステップ７０２）。次に、到着したデータパケットに付与されている階層優先度を検査し（ステップ７０３）、比較判定部１７に設けられている閾値管理テーブル１７ａの当該優先度における閾値を取得する（ステップ７０４）。キュー長算出部１６より取得した算出値と設定された閾値との比較を行い（ステップ７０５）、キュー長算出部１６より取得した算出値の方が閾値よりも小さい場合には、データパケットはそのまま出力キューに入力する（ステップ７０８）。一方、キュー長算出部より取得した算出値と閾値とが等しいか、もしくは算出値の方が大きい場合には、データパケットにマーキングビットを付加して（ステップ７０７）、出力キューに入力する（ステップ７０８）。この操作により、受信クライアント９に対して、ネットワークの混雑発生を事前に通知することができる。
【００１９】
図８は、図１における受信クライアントの階層化コンテンツの受信要求をしてから、コンテンツ視聴中の動作フローチャートである。
図８により、受信クライアント９の動作処理を説明する。
本実施例においては、階層化コンテンツＡに対して受信要求を行う場合を示す。また、ルータ５の出力ポート８と受信クライアント９とは直接もしくはＬ２スイッチなどのネットワーク機器経由で接続されているものとし、該出力ポートと該受信クライアントは同一サブネットワーク上にあるものとする。また、階層化コンテンツＡの各階層のデータパケットは配信サーバ１よりルータ５まで届いているものとする。
【００２０】
以下、図８により、受信クライアント９におけるレート制御の動作を説明する。
図９は、図１における受信クライアントの状態判定部に設定される状態判定カウンタの構成図、図１０は、図１における受信クライアントの状態判定部に設定される状態判定タイマの構成図である。
まず、受信クライアント９は階層化コンテンツＡの階層１のマルチキャストアドレス２３０．１．１．１に対してＩＧＭＰ  Ｊｏｉｎメッセージをルータ５に対して送信し、階層化コンテンツＡの階層１に対して受信要求を行う（ステップ８０１）。次に、状態判定部１１に設けた状態判定カウンタ１１ａに、図９に示すように受信要求を行った階層のマルチキャストアドレスとカウンタ値の初期値を設定する（ステップ８０２）。本実施例においては、状態判定カウンタの該初期値を０として設定している。また、状態判定部１１に設けた状態判定タイマ１１ｂに、図１０に示すように階層化コンテンツ毎に残タイマ値を設定する（ステップ８０３）。本実施例においては、状態判定タイマの残タイマ値の初期値を１００として設定している。また、状態判定タイマ値は、一定時間毎に減算される（ステップ８１４）。
【００２１】
次に、要求を行った階層のデータパケットが送受信制御部に到着すると（ステップ８０４）、データパケットにネットワークの混雑情報を示すマーキングビットが付与されているか否かの検査を行い（ステップ８０５）、データパケットを再生部に渡してコンテンツの視聴を実行する（ステップ８０６）。ここで、ステップ８０５の結果、データパケットにマーキングビットが付加されていないことを確認すると（ステップ８０７）、ステップ８０４に戻り、以降の処理を繰り返す。
一方、ステップ８０５の結果、データパケットにマーキングビットの付加を検出した場合には（ステップ８０７）、データパケットの宛先マルチキャストアドレスを検査し（ステップ８０８）、状態判定カウンタの当該部分のカウンタ値を増加させ（ステップ８０９）、設定されている閾値との比較を行う。また、状態判定タイマを初期値にリセットする（ステップ８１０）。
【００２２】
ここで、受信クライアント９が階層化コンテンツＡの階層１から階層３まで全て受信している場合に、ルータにより出力キューの混雑が判定され、階層３（マルチキャストアドレス：２３０．１．１．３）のデータパケットにマーキングビットが付与されて転送された場合について説明する。
図１１は、図１における受信クライアントの状態判定部に設定される状態判定カウンタの更新例を示す図である。
該受信クライアント９にて、階層３のデータパケットにマーキングビットの付与を検出すると、図１１に示すように設定されている状態判定カウンタ１１ｃの当該マルチキャストアドレス欄のカウンタ値をカウントアップし、予め設定される閾値と比較する（ステップ８１１）。ここで、比較に用いられる閾値は、ある一定値でもよいし、またある期間中のカウンタ値の増加率などでもよく、制御ポリシーにより定めることができる。カウンタ値が設定された閾値を超えない場合には、ステップ８０４に戻り、以降の処理を繰り返す。
【００２３】
一方、カウンタ値が設定された閾値を超えた場合、ネットワークが混雑状態にあると判断して、閾値を超えた該マルチキャストアドレスに対して離脱処理を行う（ステップ８１２）ことにより、受信レート削減処理を実施する。また、状態判定カウンタ１１ｃから、離脱処理を行った当該マルチキャストグループとそのカウンタ値を削除し、該状態判定カウンタの更新を行い（ステップ８１３）、ステップ８０４に戻って以降の処理を繰り返す。
【００２４】
図１２は、図１における受信クライアントとルータ間のレート削減の動作フローチャートである。
本実施例におけるルータ５と受信クライアント９におけるレート削減処理の動作を、図１２にまとめておく。ルータ５の動作である図７のステップ７０１〜７０８は、まとめて記述されている。３階層受信に際しては、受信クライアント９の状態判定カウンタの設定（ステップ８０２）を、階層３について行い、次に、パケット到着、データパケットの検査、コンテンツ再生（ステップ８０４〜８０６）を、階層１〜３について行い、マーキング確認、閾値との比較により混雑判定（ステップ８０７〜８１１）を行った後、階層３に対する離脱処理（ステップ８１２）を行い、２階層受信に際して、状態判定カウンタ更新（ステップ８１３）を、階層３を削除することにより実施する。
【００２５】
以上は、ネットワークの混雑判定により、レート削減を行う場合のフローであるが、ネットワークの安定状態時には、レートの維持、もしくはレートの増加を行うことも可能であり、以下にレート維持およびレート増加の動作フローについて説明する（図８）。
ここで、受信クライアント９が階層化コンテンツＡの階層１および２を受信しているものとする。
受信クライアント９において、ステップ８０３にて設定された階層化コンテンツＡに対する状態判定タイマの残タイマ値の減算処理を一定時間ごとに行い（ステップ８１４）、残タイマ値が０か否かの検査を行う（ステップ８１５）。残タイマ値が０でない場合には、ステップ８１４に戻り、以降の処理を繰り返すことで現在のレートを維持する。一方、残タイマ値が０になった場合には、ネットワークの安定状態が続いたものと判断し、レートの増加を行うために現在の受信階層数の検査を行う（ステップ８１６）。現在の受信階層数が最大ではない場合、受信レート増加のためにステップ８０１に戻り、現在受信中の階層よりも上位の階層に対して受信要求を行う。これ以降は、ステップ８０２，８０３を実施し、以降の処理を繰り返す。
一方、ステップ８１６において、現在の受信階層数が最大である場合、これ以上のレートの増加はできないことから、ステップ８０３に戻り、以降の処理を繰り返すことで現在のレートを維持する。
【００２６】
図１３は、図１における受信クライアントとルータ間のレート維持もしくは増加の動作例を示すフローチャートである。
本実施例におけるルータ５と受信クライアント９のレート維持および増加処理の動作を、図１３にまとめておく。すなわち、２階層受信の場合、受信クライアント９は、状態判定タイマ初期設定（ステップ８０３）を、階層化コンテンツについて行い、タイマ減算処理（ステップ８１４）を行い、残タイマが０（ステップ８１５）のとき、受信階層数を判断し（ステップ８１６）、階層３に対する要求を行う（ステップ８０１）。
その後、３階層受信に際し、受信クライアント９は、状態判定タイマ初期設定（ステップ８０３）を階層化コンテンツについて再度行う。
以上により、ルータ５にてネットワークの混雑状態を通知された場合には、受信クライアント９にて階層化コンテンツの受信レートを削減することにより、レート制御が可能であり、データパケットのロスを未然に防止することができる。また、受信クライアントにてネットワークの安定状態を判断した場合、受信レートの維持もしくはレート増加によるレート制御も可能である。
【００２７】
（実施例２）
図１４は、本発明の実施例２に係る配信サーバのコンテンツ管理部にて設定されるコンテンツ優先度が設けられた時のコンテンツ管理テーブルの構成図である。
以下、図１４から図１７により実施例２について説明する。なお、装置構成は、図１と同様である。図１５は、図１における配信サーバの階層処理部にて設定されるコンテンツ割付の設定例を示す図である。
配信サーバ１のコンテンツ管理部２において、図１４に示すように、コンテンツ種別と階層数とコンテンツ優先度が管理されるコンテンツ管理テーブル２ｂが保持される。階層処理部３においては、図１５に示すように、コンテンツ管理部２より取得した階層化コンテンツの各階層に対してマルチキャストアドレスや階層優先度の付与とコンテンツ優先度付与の管理を行うアドレス管理テーブル３ｂが保持される。付与されるマルチキャストアドレスは、他の階層化コンテンツに割り当てられるマルチキャストアドレスとは重複しないように割り当てが行われ、各階層に付与される階層優先度は、階層化コンテンツの特徴に従って任意に付与できる。また、コンテンツ優先度についても、コンテンツ間の特徴によって任意に付与できる。例えば、有料コンテンツの場合には優先度を高く、無料コンテンツの場合には優先度を低く設定すれば、ネットワークの混雑時、無料コンテンツからレート制御を行い、有料コンテンツの配信品質を落とすことなく配信が可能である。本実施例において、コンテンツ優先度も階層優先度についても、優先度１が最も優先度が高いものとする。
【００２８】
ここで、図１４で管理されるコンテンツのうち、階層化コンテンツＡをマルチキャスト配信する場合、階層化コンテンツＡにおける階層化コンテンツ自身の優先度が高いコンテンツ優先度１を全てのデータパケットに付与する。また、階層化コンテンツＡの階層１をコンテンツ再生に最低限必要な基本階層とし、階層２，３を拡張階層とすると、階層化コンテンツＡの階層１のデータパケットには優先度の高い階層優先度１を割り当て、階層２，３のデータパケットには順に優先度が低くなるように階層優先度２，３の割り当てを行い、配信制御部によりマルチキャスト配信することで、階層化コンテンツＡの特徴に従った配信が可能になる。
【００２９】
図１６は、図１におけるルータの出力ポートが複数の出力キューを有する場合の構成図、図１７は図１６におけるパケット振分部に設けられる振分管理テーブルの設定例を示す図である。
ルータ５におけるデータパケットの出力処理について、図１６により説明する。
コンテンツ優先度毎に送出制御を行うため、出力ポートに対して複数の出力キューを設置する。本実施例においては、出力キューを２つ（出力キュー２３，２７）示しているが、コンテンツ優先度の数に応じて出力キューを設けることが可能である。出力ポートに対してマルチキャスト転送されたデータパケットを適当な出力キューに振り分けるため、パケット振分部１９を設ける。また、パケット振分部１９においては、図１７に示すような振分管理テーブル１９ａを保持し、入力されたデータパケットに付与されているコンテンツ優先度に基づいて振分先となる出力キューを決めるための情報を管理する。また、出力キュー２３，２７内に格納されているデータパケットにより占められるキューの占有量を算出するキュー長算出部２１，２５と、各出力キューにデータパケットを入力する際にパケットに付与されている階層優先度等の検査を行うパケット処理部２０，２４と、算出されたキュー長と予め設定された閾値との比較により出力キューの混雑度を判定する比較判定部２２，２６から構成される。さらに、複数の出力キューに入力されたデータパケットを順に送出するためのパケット出力部２８を設ける。
【００３０】
図１８は、図１６におけるルータの動作フローチャート、図１９は図１６におけるルータの比較判定部にて設定される閾値管理テーブルの構成例を示す図である。
データパケットがパケット振分部１９に到着してからの動作を、図１８により説明する。
データパケットが、パケット振分部１９に到着したならば（ステップ１７０１）、振分管理テーブル１９ａに記されている情報に従って、該当する出力キューにデータパケットを振り分ける（ステップ１７０２，１７０３）。振分け後は、図１９に示すように出力キュー毎に、独立して比較判定部２２，２６に設けられた閾値管理テーブル２２ａ，２６ａにおける閾値とキュー長算出部２１，２５にて算出した出力キューの占有量との比較を行うなど、実施例１の出力キューにおける処理と同様な処理を行う（ステップ１７０４，１７０５）。次に、パケット出力部２８により、各出力キューよりパケットの取り出しを行い（ステップ１７０６）、パケットの出力を実施する（ステップ１７０７）。
【００３１】
ステップ１７０６において、各出力キューより取り出すデータパケットの割合を変化させることで、出力キュー間のデータパケットの出力量に差を設けることが可能となり、出力キュー間に重みを設けることができる。重みの小さい出力キューは、他の重みが大きく設定された出力キューよりもデータパケットの送出割合が相対的に減少するため、重みの小さな出力キューへ入力されるデータパケットが増大した場合、マーキングされるデータパケットが増大する。このため、コンテンツ優先度の低いコンテンツは重みの小さい出力キューに入力されるようにすれば、コンテンツ優先度の低いコンテンツからレート制御の対象とすることが可能となる。
一方、受信クライアント９の動作については、実施例１における受信クライアント９の動作と同様の手順でレート制御が可能である。
【００３２】
なお、図７、図８、図１２、図１３および図１８の各フローをプログラムコード化し、ＣＤ−ＲＯＭ等の記録媒体に格納しておけば、プログラムの販売や貸与の場合に便利であり、また、配信サーバ１、ルータ５、あるいは受信クライアント９の各コンピュータに記録媒体を装着し、プログラムをインストールして実行させることで、本発明を容易に実現することができる。
【図面の簡単な説明】
【００３３】
【図１】本発明の実施例１に係るＩＰマルチキャスト配信システムの構成図である。
【図２】図１における配信サーバのコンテンツ管理部に設定されるコンテンツ管理テーブルの構成例図である。
【図３】図１における配信サーバの階層処理部に設定されるコンテンツ割付の設定例を示す図である。
【図４】図１におけるルータの出力ポートの構成例を示す図である。
【図５】図４におけるルータの比較判定部に設定される閾値管理テーブルの構成例を示す図である。
【図６】図４におけるルータの出力キューにおける閾値の設定イメージを示す説明図である。
【図７】図４におけるルータのパケット処理部の動作フローチャートである。
【図８】図１における受信クライアントの動作フローチャートである。
【図９】図１における受信クライアントの状態判定部に設定される状態判定カウンタの設定例を示す図である。
【図１０】図１における受信クライアントの状態判定部に設定される状態判定タイマの設定例を示す図である。
【図１１】図１における受信クライアントの状態判定部に設定される状態判定カウンタの更新例を示す図である。
【図１２】図１における受信クライアントとルータ間のレート削減の動作フローチャートである。
【図１３】図１における受信クライアントとルータ間のレート維持もしくは増加の動作フローチャートである。
【図１４】図１における配信サーバのコンテンツ管理部に設定されるコンテンツ優先度が設けられた時のコンテンツ管理テーブルの構成例を示す図である。
【図１５】図１における配信サーバの階層処理部に設定されるコンテンツ割付の設定例を示す図である。
【図１６】図１におけるルータの出力ポートが複数の出力キューを有する場合の構成例を示す図である。
【図１７】図１６におけるパケット振分部に設けられる振分管理テーブルの設定例を示す図である。
【図１８】図１６におけるルータの動作フローチャートである。
【図１９】図１６におけるルータの比較判定部に設定される閾値管理テーブルの構成例を示す図である。
【符号の説明】
【００３４】
１：配信サーバ、２：コンテンツ管理部、２ａ，２ｂ：コンテンツ管理テーブル、
３：階層処理部、３ａ，３ｂ：アドレス管理テーブル、４：配信制御部、５：ルータ、
６：入力ポート、７：マルチキャスト転送処理部、８：出力ポート、
９：受信クライアント、１０：送受信制御部、１１：状態判定部、
１１ａ，１１ｃ：状態判定カウンタ、１１ｂ：状態判定タイマ、１２：再生部、
１３，１４：ＩＰネットワーク、１５，２０，２４：パケット処理部、
１６，２１，２５：キュー長算出部、１７，２２，２６：比較判定部、
１７ａ，２２ａ，２６ａ：閾値管理テーブル、１８，２３，２７：出力キュー、
１９：パケット振分部、１９ａ：振分管理テーブル、２８：パケット出力部。
【図１】
2005102104.tif 000003
【図２】
2005102104.tif 000004
【図３】
2005102104.tif 000005
【図４】
2005102104.tif 000006
【図５】
2005102104.tif 000007
【図６】
2005102104.tif 000008
【図７】
2005102104.tif 000009
【図８】
2005102104.tif 000010
【図９】
2005102104.tif 000011
【図１０】
2005102104.tif 000012
【図１１】
2005102104.tif 000013
【図１２】
2005102104.tif 000014
【図１３】
2005102104.tif 000015
【図１４】
2005102104.tif 000016
【図１５】
2005102104.tif 000017
【図１６】
2005102104.tif 000018
【図１７】
2005102104.tif 000019
【図１８】
2005102104.tif 000020
【図１９】
2005102104.tif 000021