(57)【特許請求の範囲】
【請求項１】
ネットワークに接続された複数の受信装置の配送順序を記載した受信装置リストを用いて、前記複数の受信装置に同一パケットをユニキャスト経路で配送する送信装置であって、
前記複数の受信装置の伝送能力に関する情報を、前記複数の受信装置から受信する受信部と、
前記受信部から取得された前記伝送能力に関する情報に基づいて、前記複数の受信装置の利用可能な帯域を推定する受信者能力推定部と、
前記推定された利用可能な帯域に基づいて前記複数の受信装置をクラス分類する受信者クラス分類部と、
前記受信者クラス分類部によって分類された各クラスの前記受信装置リストを記録するクラス別受信者記憶部と、
前記推定された利用可能な帯域に基づいて、前記クラス別受信者記憶部において記録された前記各クラスの受信装置リストを前記利用可能な帯域の高い順に並び替える受信者リスト並び替え部と、
を備えた送信装置。
【請求項２】
前記複数の受信装置の利用可能な帯域を計測するための計測用パケットを前記複数の受信装置へ送信する計測部を更に有し、
前記複数の受信装置の伝送能力に関する情報は、前記計測用パケットに対して応答された情報である請求項１に記載の送信装置。
【請求項３】
前記受信部は、所定時間経過毎に、所定の受信装置について、所定時間経過後の伝送能力に関する情報を取得し、
前記受信者能力推定部は、前記所定時間経過後の伝送能力に関する情報に基づいて、前記所定の受信装置の所定時間経過後の利用可能な帯域を推定し、
前記受信者クラス分類部は、前記所定時間経過後の利用可能な帯域に基づいて、前記所定の受信装置を再クラス分類し、
前記受信者リスト並び替え部は、再クラス分類された結果クラス変更された場合においては、前記所定の受信装置を含むクラスの受信装置リストを、利用可能な帯域の高い順に並び替える請求項１に記載の送信装置。
【請求項４】
前記クラス別受信者記憶部は、前記分類された各クラスの前記受信装置リストと、前記複数の受信装置が再クラス分類された時刻を示すクラス更新時刻とを記録する請求項３に記載の送信装置であって、
前記受信者リスト並び替え部は、再クラス分類された結果クラス変更されなかった場合において、前記所定の受信装置のクラス更新時刻からの経過時間が予め定められた規定時間以上である場合は、前記所定の受信装置を、前記所定の受信装置を含むクラスにおいて、受信装置リストの最後尾に変更する送信装置。
【請求項５】
ネットワークに接続された複数の受信装置の配送順序を記載した受信装置リストを用いて、前記複数の受信装置に同一パケットをユニキャスト経路で配送する送信方法であって、
受信部は、前記複数の受信装置の伝送能力に関する情報を、前記複数の受信装置から受信し、
受信者能力推定部は、前記受信部から取得された前記伝送能力に関する情報に基づいて、前記複数の受信装置の利用可能な帯域を推定し、
受信者クラス分類部は、前記推定された利用可能な帯域に基づいて前記複数の受信装置をクラス分類し、
クラス別受信者記憶部は、前記受信者クラス分類部によって分類された各クラスの前記受信装置リストを記録し、
受信者リスト並び替え部は、前記推定された利用可能な帯域に基づいて、前記クラス別受信者記憶部において記録された前記各クラスの受信装置リストを前記利用可能な帯域の高い順に並び替える送信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は映像や音声といったマルチメディアデータを高品質に伝送する送信装置、および送信方法に関する。
【背景技術】
【０００２】
近年、ネットワークの急速な発展に伴って、テレビ会議やネットワークゲームなど、同一のグループに属する複数の受信装置に対してマルチメディアデータを伝送する機会が増大している。その際に、すべての受信装置に対して同一のパケットを効率的に伝送するための通信方法として、マルチキャスト通信が知られている。
【０００３】
送信装置は、マルチメディアデータを配信する受信装置を１０人程度のスモールグループに分け、スモールグループごとにマルチキャスト通信を行う。そのマルチキャスト通信方式として、明示的マルチキャスト方式がある。これは、送信装置がグループに属する全受信装置の宛先アドレスを、パケット内のオプションヘッダまたはペイロードに受信者リストとして格納し、パケットを配信する全受信装置を明示的に指定するものである。以降、本発明において単に「パケット」と記述した場合、明示的マルチキャスト方式におけるパケットをいう。
【０００４】
代表的な、明示的マルチキャスト方式として、Explicit Multicast（以降、「ＸＣＡＳＴ」という。）がある（非特許文献１）。
【０００５】
具体的に、明示的マルチキャスト方式によるパケット配信方法を以下に説明する。
【０００６】
明示的マルチキャスト方式に対応したルータは、パケットを受信すると、パケットのオプションヘッダまたはペイロードに格納されたすべての宛先アドレスに対して、自身の持つユニキャスト経路表を検索し、各宛先アドレスに対応した送出インターフェースを調べる。そして、複数の出力インターフェースに対してパケットを送出しなければならない場合、ルータは送出インターフェースの数だけパケットを複製する。その際、ルータは送出インターフェースに含まれる受信装置以外の宛先アドレスをパケットのオプションヘッダ等から削除するか、配送済みのマークを付加する。また、ルータは、ＩＰヘッダに記載された宛先アドレスを未配送の受信装置のアドレスへと書き換える。
【０００７】
一方、明示的マルチキャスト方式に対応していないルータは、パケットに格納された宛先アドレスを参照せずに、ＩＰヘッダに記載された宛先アドレスからユニキャスト経路表を検索する。そして、通常のユニキャスト通信と同様にパケットを送出する。すなわち、明示的マルチキャスト方式に対応していないルータは、マルチキャスト通信を行わない。しかし、明示的マルチキャスト方式に対応している受信装置がこのパケットを受信すると、オプションヘッダに格納された受信者リストを参照する。そして、受信者リストに未配送の宛先アドレスがあった場合、受信装置はパケットを複製し、ＩＰヘッダの宛先アドレスを未配送の宛先アドレスに書き換えて送出する。
【０００８】
以上の方法により、明示的マルチキャスト方式では、経路上のすべてのルータが明示的マルチキャスト方式に対応していなくても、すべての受信装置に対してパケットを配信できた。
【０００９】
図９（ａ）はこのときの動作を説明する図である。
【００１０】
図９（ａ）において、送信装置９０１は受信装置９０２乃至９０４へパケットを送信するとき、受信者リストに受信装置９０２乃至９０４をこの順序で記載しオプションヘッダに格納する。
【００１１】
ここで、受信装置９０２、９０４が日本国にあり、受信装置９０３が米国にあるとすると、パケットは日本国にある受信装置９０２から米国の受信装置９０３へ送付され、さらに、米国にある受信装置９０３から日本国の受信装置９０４へ送付されることになる。
【００１２】
このように、受信者リストの宛先アドレスの順番によっては、不効率な配送が行われるという課題があった。
【００１３】
この課題を解決する通信方式として、特許文献１に示すようなものがあった。すなわち、明示的マルチキャスト方式において、パケットを送信する受信者リストを受信装置のアドレスの昇順、降順に並べ替えるというものである。これにより、アドレスの近い受信装置同士が受信者リストで隣接することになり、地理的位置の離れた区間をパケットが往復することを回避することできるとされていた。たとえば、図９（ｂ）において、受信装置９０２、９０４は、同一のアドレスの領域からアドレスが割り当てれ、米国にある受信装置は、別のアドレスの領域からアドレスが割り当てられる。このため、送信装置９０１がアドレス順に受信装置のアドレスを受信者リストに記載すれば、受信装置９０２の次には受信装置９０４が記載されることになり、日本国と米国とをパケットが往復するようなことを回避できると考えられた。
【００１４】
しかし、マルチメディアデータを明示的マルチキャスト方式で伝送する場合、ネットワーク上で輻輳が発生すると、受信装置は安定してマルチメディアデータを受信できなくなり、映像や音声の品質が著しく低下してしまう。そのため、輻輳を回避することが重要となる。しかし、明示的マルチキャスト方式では、伝送レート制御が定義されていないため、例え輻輳が発生しても、伝送レートを制御することによって、輻輳を回避することができなかった。
【００１５】
伝送レート制御方法としては、フィードバック情報を用いたＴＦＲＣ（ＴＣＰ Friendly Rate Control）が知られている（非特許文献２）。このＴＦＲＣは、パケットロスが発生するまで伝送レートを上昇させ、パケットロスが発生した場合に伝送レートを下げる処理を行う。これにより、受信装置は適した伝送レートで伝送を行うことができる。
【００１６】
そこで、明示的マルチキャスト方式を用いた通信に、ＴＦＲＣを利用した伝送レート制御を行うことが検討され、ＳＩＣＣ（Sender Initiated Congestion Control）が提案された（非特許文献３）。
【００１７】
図１１は、ＳＩＣＣの動作を示すパケット配送図である。
【００１８】
図１１において、あらかじめ送信装置は異なる送信レートを割当てたクラスを複数設定する。ＳＩＣＣでは、送信速度の上限Ｂ（ｂｐｓ）を設定し、それに対して１／２ずつ減速した１／２クラスと１／４クラスを含む３クラスが設定されている。送信装置は、受信装置をクラスごとに分類し、各クラスに属する受信装置の宛先アドレスをヘッダに格納したパケットをクラスごとに送信する。
【００１９】
受信装置がどのクラスに属するかは、各受信装置の利用可能な帯域によって決定される。すなわち、送信装置は、ＴＦＲＣの規定による、受信装置から送信装置へフィードバックされる損失イベント率、受信したパケットが送信装置において送信された時間、受信装置が受信できた帯域などの情報を受信し、それらフィードバック情報に基づいて受信装置の利用可能な帯域を推定する。そして、送信装置は、推定した受信装置の利用可能な帯域に基づいて、その帯域を最大限利用できる伝送レートを設定したクラスに受信装置を分類する。
【００２０】
また、送信装置が各受信装置のクラスを分類する処理は、ＴＦＲＣと同様に受信装置からのフィードバック情報を受信するごとに実施されるので、受信装置をネットワークの状態に合わせて受信装置を利用可能な帯域に適したクラスに動的に分類することができる。このように、受信装置はどこか１つのクラスに分類され、送信装置はクラスごとにパケットを送信するので、受信装置のネットワーク状態に合わせた伝送レート制御が実現できた。
【特許文献１】特開２００４−１２０２２２号公報
【非特許文献１】Ｙ．Ｉｍａｉ，Ｍ．Ｓｈｉｎ  ａｎｄ  Ｙ．Ｋｉｍ，“ＸＣＡＳＴ６：ｅＸｐｌｉｃｔ  Ｍｕｌｔｉｃａｓｔ  ｏｎ  ＩＰｖ６”，ＩＥＥＥ／ＩＰＳＪ  ＳＡＩＮＴ２００３  Ｗｏｒｋｓｈｏｐ  ４，ＩＰｖ６  ａｎｄ  Ａｐｐｌｉｃａｔｉｏｎｓ，Ｏｒｌａｎｄ，Ｊａｎ．２００３．
【非特許文献２】Ｍ．Ｈａｎｄｌｅｙ  ｅｔ  ａｌ．，“ＴＣＰ  Ｆｒｉｅｎｄｌｙ  Ｒａｔｅ  Ｃｏｎｔｒｏｌ（ＴＦＲＣ）：Ｐｒｏｔｏｃｏｌ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”，ＲＦＣ  ３４４８、インターネット＜ＵＲＬ：http://www.faqs.org/rfcs/rfc3448.html＞
【非特許文献３】村本 衛一、米田 孝弘、鈴木 史章、鈴木良宏、中村 敦司、“送信者起動マルチキャストにおける輻輳制御方法の提案”、インターネットコンファレンス  ２００３論文集ｐｐ５−１０，２００３／１０
【発明の開示】
【発明が解決しようとする課題】
【００２１】
しかしながら、従来の方式では、伝送能力の低い受信装置が受信者リストの上位に位置する場合、それ以降にある、伝送能力が高い受信装置に悪影響を与えるという課題を有していた。
【００２２】
図１０（ａ）は、このときの動作を説明する図である。
【００２３】
図１０（ａ）において、送信装置９０１は受信装置９０２乃至９０４へパケットを送信するとき、受信者リストに受信装置９０２、受信装置９０４、そして、受信装置９０３の順序で記載しオプションヘッダに格納する。このとき、受信装置９０２のアクセスラインが低速、たとえば６４ｋｂｐｓであり、受信装置９０４のアクセスラインが高速、たとえば１００Ｍｂｐｓであった場合、送信装置９０１から送出された１Ｍｂｐｓのストリームが送出されると、受信装置９０２のアクセスラインでパケットロスが発生する。そして、受信装置９０２以降に配送されるデータは、受信装置９０２が受信できたデータに限られるので、受信装置９０４は伝送能力があってもパケットの欠落したデータしか受信することができなかった。
【００２４】
また、パケットの欠落した受信装置９０２の伝送能力に合わせてＴＲＦＣに基づく伝送制御が行われるので、受信者リストにおいて受信装置９０２より下位に位置する受信装置は、たとえ伝送能力が高くても低い伝送帯域で通信していた。
【００２５】
さらに、図１０（ｂ）に示すように、受信装置９０２が下位クラスに属し、受信装置９０３、９０４が上位クラスに分類されていても、伝送能力の高い受信装置９０４が一時的なネットワークの輻輳によって、伝送能力の低いクラスに分類されることがある。この場合、伝送能力の本来高い受信装置９０４が下位クラスに属する伝送能力の自己よりも低い受信装置９０２の後に位置づけられると、受信装置９０４は、ネットワークの輻輳状態が回復しても、伝送能力の低い受信装置９０２の影響を受けて、上位のクラスに上がることができないという課題を有していた。
【００２６】
本発明は、受信者リスト上にある伝送能力の低い受信装置が、伝送能力の自己よりも高い受信装置に悪影響を与えることがない、明示的マルチキャスト方式の通信を可能にする送信装置を提供することを目的とする。
【課題を解決するための手段】
【００２７】
本発明に係る送信装置は、ＳＩＣＣによる通信を行い、受信者リストを用いてパケットを配送する前に、この受信者リストを受信装置の伝送能力にしたがって並べ替える機能を有するものである。
【００２８】
具体的には、受信装置からのフィードバック情報に基づき利用可能な帯域を推定し、この利用可能な帯域に基づき受信者リストを並べなおすことにより、伝送能力の高い受信装置はネットワークの輻輳状態が回復しても、伝送能力の低い受信装置の影響を受けないという課題を解決する。
【００３０】
また、本発明に係る送信装置は、ネットワークに接続された複数の受信装置の配送順序を記載した受信装置リストを用いて、複数の受信装置に同一パケットをユニキャスト経路で配送する送信装置であって、複数の受信装置の伝送能力に関する情報を、複数の受信装置から受信する受信部と、受信部から取得された伝送能力に関する情報に基づいて、複数の受信装置の利用可能な帯域を推定する受信者能力推定部と、推定された利用可能な帯域に基づいて複数の受信装置をクラス分類する受信者クラス分類部と、受信者クラス分類部によって分類された各クラスの受信装置リストを記録するクラス別受信者記憶部と、推定された利用可能な帯域に基づいて、クラス別受信者記憶部において記録された各クラスの受信装置リストを利用可能な帯域の高い順に並び替える受信者リスト並び替え部とを備えている。
【００３２】
これにより、送信されたパケットは、伝送能力の高い受信装置から低い受信装置へ順番に転送されるので、次に伝送される受信装置が自己よりも低い伝送能力の受信装置の影響を受けて、自己の伝送能力より低い送信レートでパケットを受信しなくてはならないことを防止できる。
【００３５】
また、本発明に係る送信装置は、複数の受信装置の利用可能な帯域を計測するための計測用パケットを複数の受信装置へ送信する計測部を更に有し、複数の受信装置の伝送能力に関する情報は、計測用パケットに対して応答された情報であることを特徴とする。
【００３６】
これにより、送信装置は、配送順位による伝送速度の影響を受けない、受信装置本来の伝送能力を知ることができるので、配送順序を正確に決定することが可能になる。
【００４１】
また、本発明に係る送信装置は、受信部は、所定時間経過毎に、所定の受信装置について、所定時間経過後の伝送能力に関する情報を取得し、受信者能力推定部は、所定時間経過後の伝送能力に関する情報に基づいて、所定の受信装置の所定時間経過後の利用可能な帯域を推定し、受信者クラス分類部は、所定時間経過後の利用可能な帯域に基づいて、所定の受信装置を再クラス分類し、受信者リスト並び替え部は、再クラス分類された結果クラス変更された場合においては、所定の受信装置を含むクラスの受信装置リストを、利用可能な帯域の高い順に並び替えることを特徴とする。
【００４２】
これにより、明示的マルチキャストを行ったときに生じる、受信者リストの上位に位置する他の受信装置による速度制限を解消することができる。
【００４３】
また、本発明に係る送信装置は、クラス別受信者記憶部は、分類された各クラスの受信装置リストと、複数の受信装置が再クラス分類された時刻を示すクラス更新時刻とを記録する送信装置であって、受信者リスト並び替え部は、再クラス分類された結果クラス変更されなかった場合において、所定の受信装置のクラス更新時刻からの経過時間が予め定められた規定時間以上である場合は、所定の受信装置を、所定の受信装置を含むクラスにおいて、受信装置リストの最後尾に変更することを特徴とする。
【００４４】
これにより、受信者リストの下位の受信装置が上位にシフトするので、下位にあった受信装置は、上位に位置する他の受信装置による速度制限を受けることなしにクラス変更が可能になる。
【００４５】
本発明に係る送信方法は、ネットワークに接続された複数の受信装置の配送順序を記載した受信装置リストを用いて、複数の受信装置に同一パケットをユニキャスト経路で配送する送信方法であって、受信部は、複数の受信装置の伝送能力に関する情報を、複数の受信装置から受信し、受信者能力推定部は、受信部から取得された伝送能力に関する情報に基づいて、複数の受信装置の利用可能な帯域を推定し、受信者クラス分類部は、推定された利用可能な帯域に基づいて複数の受信装置をクラス分類し、クラス別受信者記憶部は、受信者クラス分類部によって分類された各クラスの受信装置リストを記録し、受信者リスト並び替え部は、推定された利用可能な帯域に基づいて、クラス別受信者記憶部において記録された各クラスの受信装置リストを利用可能な帯域の高い順に並び替えることを特徴とする。
【００４８】
これにより、送信装置から送信されたパケットは、伝送能力の高い受信装置から低い受信装置へ順番に転送されるので、次に伝送される受信装置が自己よりも低い伝送能力の受信装置の影響を受けて、自己の伝送能力より低い伝送レートでパケットを受信するようになることを防止できる。
【発明の効果】
【００４９】
本発明の送信装置は、受信者リスト上にある伝送能力の低い受信装置が、伝送能力の自己よりも高い受信装置に悪影響を与えない、明示的マルチキャスト方式の通信を可能にする。
【発明を実施するための最良の形態】
【００５０】
以下、本発明の実施の形態について、図面を参照しつつ説明する。
【００５１】
（実施の形態１）
図１は、本発明の実施の形態におけるＳＩＣＣを用いた通信を行う送信装置の構成を示す図である。
【００５２】
図１において、アプリケーション部１１０は送信装置１００の有するアプリケーションを実施するものであり、受信部１０１はパケットを受信し、ペイロードをアプリケーション部１１０へ送出する。また、受信部１０１は、例えば、受信装置２００から受信者レポートパケットを受信し、フィードバック情報を抽出する。図２はこの受信者レポートパケットのデータフォーマットを示す図である。
【００５３】
図２において、送信装置からパケットが送信された時刻（以下、「送信元送信時刻」という。）２０１と、受信装置が受信できた実効レート２０２と、受信装置が測定した損失イベント率２０３とがフィードバック情報である。
【００５４】
受信者能力推定部１０２は、受信部１０１から受け取ったフィードバック情報に、ＴＦＲＣで定義されている帯域推定方式を用いて受信装置の伝送能力を推定するものである。
【００５５】
受信者クラス分類部１０３は、受信能力推定部１０２が推定した受信装置の伝送能力とあらかじめ規定している伝送速度とを比較して、受信装置の属するクラスを決定し、クラス別受信者記憶部１０４に記録する。本実施の形態においては、送信装置１００の最大送信速度Ｂ（ｂｐｓ）を設定し、Ｂ／２（ｂｐｓ）とＢ／４（ｂｐｓ）を閾値とするクラス１乃至クラス３の３つに分ける。そして、それぞれのクラスごとに受信者リストを作成する。
【００５６】
図３は受信者リストのデータ構造を示す図である。図３において、受信装置の宛先アドレス３０１と、その受信装置の最大送信レート３０２とが、送信順に記録される。
【００５７】
受信者リスト並び替え部１０５は、指定されたクラスの受信者リストを受信装置の能力の高い順に並べ替えるものである。具体的には、受信者リスト並べ替え部１０５は、クラス別受信者記憶部１０４に記憶されている受信者リストを読み出し、最大送信レート３０２の大きいものから順に受信装置のアドレス３０１を並べ替える。そして、受信者リスト並べ替え部１０５は、クラス別受信者記憶部１０４に更新された受信者リストを書き込む。
【００５８】
パケット構成部１０６は、明示的マルチキャスト方式のパケットヘッダを構成するものであり、受信者リストをこのヘッダのオプションヘッダまたはペイロードに格納する。この送信パケットのフォーマットは特開平６−３２６７１３号公報や特開２０００−３５４０６３号公報で定義される形式や、特開平１０−９８４６４号公報で定義される形式、あるいは特開２００１−７８３５号公報や文献L. Aguilar, "Datagram Routing for Internet Multicasting", Sigcomm84, March 1984で示される形式のように、オプションヘッダにIPアドレスを併記するものを利用する。また、アプリケーション部１１０から受け取った受信装置へ送信すべきコンテンツをペイロードに記録する。
【００５９】
送信レート制御部１０７は、パケットを送出するタイミングを制御するものであり、受信者リストのクラスに応じて、パケットを送出する時間間隔を制御する。
【００６０】
送信部１０８は、送信レート制御部１０７から指定されたタイミングでパケットを送信するものである。送信部１０８は、パケットの配送する機能を有する。
【００６１】
配送管理部１０９は、明示的マルチキャストを行うための受信者リストを初期化したり、定期的に更新するために、受信者クラス分類部１０３やパケット構成部１０６や送信レート制御部１０７に指示するものである。
【００６２】
なお、パケット構成部１０６と配送管理部１０９とは本発明にかかる計測部１００１に相当する。計測部１００１は、受信装置の伝送速度を計測するための計測用パケットを受信装置へピアツーピアで送信する。なお、計測用パケットは、例えば、独立のパケットとしてもよし、あるいは、アプリケーションのパケットのヘッダにフラグ（計測用パケットに関するもの）を付して適用してもよい。つまり、アプリケーションのパケットが、計測用パケットを兼ねるようにしてもよい。アプリケーションのパケットは、アプリケーション部１１０からパケット構成部１０６を経由して送付される。
【００６３】
次に、本実施の形態にかかる送信装置の動作・作用について図面を用いて説明する。図５は、本発明にかかる送信装置の初期計測動作を示すフロー図である。
【００６４】
図５において、まず、配送管理部１０９は、受信者クラス分類部１０３に初期計測処理の開始を指示し、受信者クラス分類部１０３が送信先として登録済みのすべての受信装置を最下位のクラス１に登録する（ステップＳ５０１）。このとき作成される受信者リストには、受信装置の宛先アドレスが昇順あるいは降順に並べてられる。また、配送管理部１０９は、受信者能力推定部１０２に初期計測を開始することを通知する。また、配送管理部１０９は、送信レート制御部１０７に初期の送信レートとして、例えば、８ｓ／ＧＲＴＴ（ｂｉｔ／秒）を設定し、スロースタートの開始を指示する。なお、ＧＲＴＴ（秒）は、最大ラウンドトリップタイムを示し、ｓはパケットサイズ（ｂｙｔｅ）を示す。さらに、配送管理部１０９は、パケット構成部１０６に初期計測用パケットの生成を指示し、生成された初期計測用パケットが送信部１０８へ送出される。この初期計測用パケットは、上記した文献B. Carter, ”Bprobe and cprobe,”  で規定されるPacket  paier 計測手法あるいはPacket train 計測手法のようにパケット間隔が帯域の逆数に比例することを利用する方式を用いる。また、文献S. M. Bellovin, ”A Best-Case Network Performance  Model,”http://www.research.att.com/smb/papers/netmeas.pdf, February 1992.で規定される時刻同期したホスト間でのパケット転送により帯域を推定する方式や文献RFC３４４８で規定されるTFRCによる帯域推定で用いられるものと同等のものを使用する。送信部１０８は、送信制御部１０７からの送信タイミングの通知を受けて受信装置へ初期計測用パケットを送信する。
【００６５】
次に、送信レート制御部１０７は、ＧＲＴＴ秒が経過する毎に、送信レートを８ｓ／ＧＲＴＴ（ｂｉｔ／秒）ずつ増加させて、送信部１０８へ送信のタイミングを通知する（ステップＳ５０２）。
【００６６】
次に、受信部１０１は、ＮＡＫパケットを受信すると、受信者能力推定部４０２に通知する（ステップＳ５０３）。受信者能力推定部４０２は、初期計測中であるので、そのときの送信レートを送信レート制御部１０７へ問い合わせる。そして、受信者能力推定部４０２は、このときの送信レートを、ＮＡＫパケットの送信元である受信装置の最大送信レートと決定する。また、受信者能力推定部４０２は、送信元受信装置のアドレスと最大送信レートを受信者クラス分類部１０３へ通知する。受信者クラス分類部４０３はこれを受けて、クラス別受信者記憶部１０４の該当クラスの受信者リストに通知されたアドレスを登録する（ステップＳ５０４）。また、分類先クラスが最下位のクラス１でない場合は、クラス１の受信者リストから該当のアドレスを削除する。
【００６７】
次に、受信者クラス分類部１０３は、受信者リスト並べ替え部１０５に受信者リストに変更が生じたクラスを通知する。受信者リスト並べ替え部１０５はこれを受けて、該当するクラスの受信者リストを最大送信レートの大きい順に並べ替える（ステップＳ５０５）。
【００６８】
一方、ステップＳ５０３において、受信部１０１がＮＡＫパケットを受信しない間は、送信レート制御部１０７が送信レートを更新し続ける（ステップＳ５０３、Ｓ５０４）。
【００６９】
次に、受信者クラス分類部１０３は、クラス１の受信者リストに初期設定した受信装置の内で、最大送信レート３０２が未登録の受信装置があるか否かをチェックする（ステップＳ５０６）。最大送信レート３０２が未登録の受信装置がある場合は、ステップＳ５０２へ戻り、なくなった場合は、配送管理部１０９にこの初期計測処理の終了を通知する。配送管理部１０９は、これを受けて、パケット構成部１０６、送信レート制御部１０７、および受信者能力推定部１０２に初期計測処理の終了を通知する。
【００７０】
このように、送信装置は、受信装置の初期のクラス分類において、受信者リストを伝送能力の高い順位に並べ替えるので、明示的マルチキャストを行ったときに生じる、受信者リストの上位に位置する他の受信装置による速度制限を解消できる。
【００７１】
次に、送信装置が通常のコンテンツをパケット送信したときに行う、ＴＦＲＣの規定に基づく伝送制御処理を以下に説明する。
【００７２】
図６は、本実施の形態における送信装置が行う伝送制御処理を示すフロー図である。
【００７３】
図６において、受信部１０１はパケットを受信すると、受信者レポートが含まれているか否かをチェックする（ステップＳ６０１）。
【００７４】
受信者レポートが含まれていない場合、受信部１０１はペイロードを取り出し、アプリケーション部１１０へ引き渡して待機状態に戻る。
【００７５】
一方、受信レポートが含まれていた場合、受信部１０１は、フィードバック情報を送信元受信装置のアドレスとともに受信者能力推定部１０２へ通知する。受信者能力推定部１０２はこれを受けて、ＴＦＲＣで規定される算出式である（式１）に基づいて最大送信速度を求める（ステップＳ６０２）。そして、受信者能力推定部１０２は求めた最大送信速度（すなわち、利用可能な帯域）と送信元受信装置のアドレスとを受信者クラス分類部１０３に通知する。
【数１】
0004598073.tif 000002
【００７６】
ただし、Ｒ：ラウンドトリップタイム（秒）、ｐ：損失イベント率、ｓ：パケットサイズ（ｂｙｔｅ）、ｂ：ＴＣＰの肯定応答単位、Ｔ＿ＲＴＯ：ＴＣＰのタイムアウト値（＝４×Ｒ）を示す。
【００７７】
なお、（式１）で用いるラウンドトリップタイムは、フィードバック情報に含まれる送信元送信時刻２０１と受信レポートパケットを受信した時刻から求められる。
【００７８】
次に、受信者クラス分類部１０３はクラス別受信者記憶部１０４から該当する宛先アドレス３０１の最大送信レート３０２を読み出し、受信者能力推定部１０２から通知された最大送信速度と比較する。そして、登録されていた最大送信レートが通知された最大送信速度より大きい場合、受信者クラス分類部１０３は最大送信レートをそのまま維持する。これは、今回の最大送信速度が自己のアクセスライン等が原因で遅くなったのではなく、自己よりも前に配送された受信装置のアクセスライン等により遅くなっている可能性があるからである。
【００７９】
一方、通知された最大送信速度が、登録されていた最大送信レートより大きい場合、最大送信レートを通知された最大送信速度に置き換える（ステップＳ６０３）。
【００８０】
さらに、受信者クラス分類部１０３は新たな最大送信レートと、クラス分けの閾値とを比較し、該当するクラスに登録変更する（ステップＳ６０４）。具体的には、受信装置の最大送信レートが定められた閾値より上がった場合には、その受信装置がそれまで属していたクラスの受信者リストから、その受信装置のアドレスを削除し、上位のクラスの受信者リストに追加する。そして、受信者クラス分類部１０３は、受信者リスト並べ替え部１０５に受信者リストに変更が生じたクラスを通知する。
【００８１】
次に、受信者リスト並べ替え部１０５は、これを受けて、該当するクラスの受信者リストを最大送信レートの大きい順に並べ替える（ステップＳ６０５）。
【００８２】
このように、送信装置は通常の通信において、受信装置の所属クラスを変更したときに受信者リストを伝送能力の高い順位に並べ替えるので、明示的マルチキャストを行ったときに生じる、受信者リストの上位に位置する他の受信装置による速度制限を解消することができる。
【００８３】
次に、送信装置が定期的に行う送信レートの計測処理について以下に説明する。
【００８４】
図７は、本実施の形態に係る送信装置の送信レート計測処理を示すフロー図である。なお、この送信レート計測処理は、クラス毎に行われる。
【００８５】
図７において、まず、配送管理部１０９は、初期計測処理が終了した後、所定時間毎に（ステップＳ７０１）、パケット構成部１０６と受信者クラス分類部１０３に送信レート計測処理の開始を指示する。パケット構成部１０６は、これを受けて、帯域計測用パケットを生成する。このとき、パケット構成部１０６は、クラス別受信者記憶部１０４からクラス単位で受信者リストを読み出し、登録されている宛先アドレスを宛先にした帯域計測用パケットを複製し、送信部１０８へ順次送出する。また、パケット構成部１０６は、送信レート制御部１０７へ送信先のクラスを通知する。送信レート制御部１０７は、これを受けて、通知されたクラスの送信レートで、送信部１０８にタイミングを通知する。送信部１０８は、通知されたタイミングで帯域計測用パケットを受信装置へ送信する。このときの送信方法は、送信装置から各受信装置へのピアツーピアの通信となる（ステップＳ７０２）。
【００８６】
次に、受信部１０１は、パケットを受信すると、受信者レポートが含まれているか否かをチェックする（ステップＳ７０３）。
【００８７】
受信者レポートが含まれていない場合、受信部１０１はペイロードを取り出し、アプリケーション部１１０へ引き渡して待機状態に戻る。
【００８８】
一方、受信レポートが含まれていた場合、受信部１０１は、フィードバック情報を送信元受信装置のアドレスとともに受信者能力推定部１０２へ通知する。受信者能力推定部１０２はこれを受けて、（式１）に基づいて最大送信速度を求める（ステップＳ７０４）。そして、受信者能力推定部１０２は求めた最大送信速度と送信元受信装置のアドレスとを受信者クラス分類部１０３に通知する。
【００８９】
次に、受信者クラス分類部１０３は、現在、送信レート計測処理中であることを認識しているので、クラス別受信者記憶部１０４の受信者リストに登録されている該当する宛先アドレス３０１の最大送信レート３０２を、通知された最大送信速度に置き換える（ステップＳ７０５）。
【００９０】
さらに、受信者クラス分類部１０３は、新たな最大送信レートとクラス分けの閾値とを比較し、該当するクラスに登録変更する（ステップＳ７０６）。具体的には、受信装置の最大送信レートが定められた閾値より上がった場合には、その受信装置がそれまで属していたクラスの受信者リストから、その受信装置のアドレスを削除し、上位のクラスの受信者リストに追加する。逆に、受信装置の能力が定められた閾値より下がった場合には、その受信装置がそれまで属していたクラスの受信者リストから、その受信装置のアドレスを削除し、下位のクラスの受信者リストに追加する。そして、受信者クラス分類部１０３は、受信者リスト並べ替え部１０５に受信者リストに変更が生じたクラスを通知する。
【００９１】
次に、受信者リスト並べ替え部１０５は、これを受けて、該当するクラスの受信者リストを最大送信レートの大きい順に並べ替える（ステップＳ７０７）。
【００９２】
次に、受信者クラス分類部１０３は、登録されているすべての受信装置から帯域計測用パケットに応答した受信者レポートを受信したか否かをチェックし（ステップＳ７０８）、受信していなければステップＳ７０３に戻り、受信レポートの受信を待つ。
【００９３】
一方、すべての受信装置から受信者レポートを受信した場合は処理を終了する。
【００９４】
このようにして、送信装置は定期的に受信装置の最大送信レートを、それぞれ独立して計測して受信者リストを伝送能力の高い順位に並べ替えるので、明示的マルチキャストを行ったときに生じる、受信者リストの上位に位置する他の受信装置による速度制限を解消することができる。
【００９５】
なお、本実施の形態の常時行う伝送制御処理や、定期的に行う送信レート計測処理において、受信者リスト並び替え部１０５は、受信者能力推定部１０２が（式１）により求めた最大送信速度に基づいて並べ替えたが、これに限らず、フィードバック情報の実効レートや損出イベント率やラウンドトリップタイムのいずれか一つのみを基準に並べ替えることも可能である。あるいは、（式１）以外の算出式による、これらフィードバック情報を組み合わせて算出する数値を用いることもできる。
【００９６】
また、受信者リスト並び替え部１０５は、受信者能力推定部１０２において（式１）により求められた最大送信速度およびそれ以外の情報（伝送能力に関する情報）に基づき、受信者リスト中の配送順序を並べ替えてもよい。それ以外の情報としては、例えば、フィードバック情報の実効レート、損出イベント率、ラウンドトリップタイム、受信端末の機種に固有の情報またはこれらの任意の２つ以上を組み合わせたものがある。
【００９７】
受信端末の機種に固有の情報（受信端末の機種固有情報）としては、例えば、受信端末のメーカ名、受信端末の機種、受信端末の画面サイズ、受信端末のネットワークインターフェイス種別があげられる。
【００９８】
受信者リスト並び替え部１０５は、受信端末の機種に固有の情報が一致する場合、受信者能力推定部１０２において（式１）により求められた最大送信速度に基づいて受信者リストを並べる。つまり、受信者リスト並び替え部１０５は、まず、受信端末の機種に固有の情報に基づき受信端末（受信者）をクラス分類する。例えば、同じ機種の受信端末同士が、同じクラス分類となる。
【００９９】
そして、受信者リスト並び替え部１０５は、同クラスに属する受信端末の中で、受信者能力推定部１０２において（式１）により求められた最大送信速度に基づき、それらの受信端末の配送順序を並べ替える。受信者リスト並び替え部１０５は、例えば、最大送信速度が最大値となる受信端末を、第１番目の配送順序にする。
【０１００】
あるいは、受信者リスト並び替え部１０５は、上記最大送信速度に基づき、受信者リストの配列順序を並べた後、受信端末の機種固有の情報に基づいて、さらに、受信者リストの配送順序を並び替えてもよい。例えば、受信者リスト並び替え部１０５は、受信者リスト（図３参照）中で隣接（上下）する２台の受信端末に関して、最大送信速度の差分が一定値（あらかじめ設定）以下であれば、受信端末の画面サイズの大きさ順（例えば大きい順）に並べ替えてもよい。あるいは、受信者リスト並び替え部１０５は、受信端末のメーカ名または受信端末の機種の情報に基づき、例えば、あらかじめ指定されたメーカ名または機種をもつ受信端末を上位にしてもよい。
【０１０１】
なお、送信端末は、セッション開始時、セッションの途中における受信端末と送信端末との直接通信時、あるいは、特定のサーバ（例えばセッションの呼制御を行うサーバ）経由で、受信端末の機種に固有の情報を取得することができる。
【０１０２】
また、本実施の形態の初期計測処理においては、スロースタートにより求めた最大送信レートに基づいて、受信者リストの受信装置を並べ替えたが、これに限らず、送信装置とそれぞれの受信装置との間のラウンドトリップタイムや実効レートや経路上のホップ数（ルータの数）を測定し、この測定値を用いて受信装置を並び替えることも可能である。あるいは、予め定められた順序を受信装置の能力順として静的に定義し、この予め定められた順序を用いて受信者リストを並び変えてもよい。
【０１０３】
以上のように本発明によれば、パケットの配信順序が伝送能力の低い受信装置が伝送能力の高い受信装置より先に位置づけられることによって、伝送能力の低い受信装置のところでパケットが欠落し、結果として、伝送能力の高い受信装置にパケットが配送されないことを防止できる。また、伝送能力の高い受信装置が、一時的なネットワークの輻輳によって低いクラスに分類されてしまった場合においても、定期的に行う送信レート計測処理により受信装置の最大送信速度が更新できるので、ネットワークの輻輳が回復した場合は、伝送能力の高い受信装置が上位のクラスに上がることができるので、適正な伝送レート制御を実現することができる。
【０１０４】
なお、実施の形態１における送信装置は、受信者クラス分類部１０３により、受信装置の属するクラスを決定する場合について説明したが、クラスの決定をせずに、受信者リストの配送順序を並び替えてもよい。この場合、受信者リスト並び替え部１０５（送信装置）は、受信者能力推定部１０２で推定された受信装置の利用可能な帯域に基づき、受信者リスト中の配送順序を、その帯域の高い順に並び替えてもよい。このようにしても、伝送能力の高い受信装置順にパケットが配送されることとなるので、適正な伝送レート制御を実現することができる。
【０１０５】
また、実施の形態１における送信装置は、受信装置の最大伝送速度またはこれと受信装置の伝送能力の組み合わせに基づき、受信者リストの配送順序を並び替える場合について説明したが、受信装置から受信した伝送能力のみに基づき、受信者リストの配送順序を並び替えてもよい。この場合、受信者リスト並び替え部１０５は、受信部１０１で受信装置から受信された伝送能力（フィードバック情報の実効レート、損出イベント率、ラウンドトリップタイムなど）のみに基づき、受信者リスト中の配送順序（例えば、実効レートの高い順、損出イベント率の小さい順、ラウンドトリップタイムの長い順）を並び替えてもよい。
【０１０６】
（実施の形態２）
本実施の形態における送信装置は、受信装置が所属するクラスを更新してから現時点までの経過時間に基づいて、その受信装置の属する受信者リストの並び替えをさらに行う点が、実施の形態１と異なる。
【０１０７】
本実施の形態における送信装置の構成は、図１に示したブロック図と同一であるが、クラス別受信者記憶部１０４内の受信者リストのデータ構造、および受信者クラス分類部１０３と受信者リスト並び替え部１０５の機能が実施の形態１のものと異なる。これらの異なる点について、以下に説明する。
【０１０８】
図４はクラス別受信者記憶部１０４に記憶される受信者リストのデータ構造を示す図である。
【０１０９】
図４において、受信者リストは受信装置の宛先アドレス３０１と、その受信装置の送信レート３０２と、受信装置が所属するクラスを更新した時刻を示すクラス更新時刻４０１とからなり、最大送信レートの大きい順に記録される。
【０１１０】
また、受信者クラス分類部１０３は、受信者レポートに基づき受信装置を３クラスに分類し受信者リストに登録するが、さらに、上位のクラスに登録を変更したとき、その時点の時刻を受信者リストのクラス更新時刻４０１に記録する。
【０１１１】
また、受信者リスト並び替え部１０５は、実施の形態１で示した機能に加え、さらに、前回の上位クラスへの登録変更から現時点までの経過時間に基づいて、受信者リストの並び換えを行う。
【０１１２】
以上のように構成された送信装置について、以下に受信者リストの更新動作と、その作用を説明する。なお、初期計測動作と定期的に行う送信レート計測動作については、受信者クラス分類部１０３が受信者リストのクラス更新時刻４０１に登録時の時刻を記録する以外は実施の形態１と同一である。
【０１１３】
図８は、本実施の形態における送信装置の定期的に行う送信レート計測処理を示す。
【０１１４】
図８において、ステップＳ８０１乃至ステップＳ８０３は、実施の形態１の図６に示したステップＳ６０１乃至ステップＳ６０３と同一である。
【０１１５】
その後、受信者クラス分類部１０３は、新たな最大送信レートと、クラス分けの閾値とを比較し（ステップＳ８０４）、該当するクラスに登録変更する。具体的には、受信装置の最大送信レートが定められた閾値より上がった場合には、その受信装置がそれまで属していたクラスの受信者リストから、その受信装置のアドレスを削除し、上位のクラスの受信者リストに追加する。このとき、受信者クラス分類部１０３は、受信者リストのクラス更新時刻４０１に現在の時刻を記録する。そして、受信者クラス分類部１０３は、受信者リスト並べ替え部１０５に受信者リストに変更が生じたクラスを通知する。
【０１１６】
次に、受信者リスト並べ替え部１０５は、これを受けて、該当するクラスの受信者リストを最大送信レートの大きい順に並べ替える（ステップＳ８０５）。
【０１１７】
一方、ステップＳ８０４において、受信者クラス分類部１０３がクラスの変更を不要と判断した場合、その判断結果を受信者リスト並び替え部１０５に通知する。
【０１１８】
次に、受信者リスト並び替え部１０５は、クラス別受信者記憶部１０４に記憶されている受信者リストを参照し、送信元受信装置のクラス更新時刻４０１を読み出す。そして、そのクラス更新時刻と現在の時間とから経過時間を算出し、あらかじめ規定した時間を超えているか否かを判断する（ステップＳ８０６）。規定の時間を超えている場合は、その受信装置を該当の受信者リストの最後尾に登録変更し（ステップＳ８０７）、超えていない場合はステップＳ８０５へ処理を移行する。
【０１１９】
このように、送信装置は通常の通信において規定時間以上クラス変更を行っていない受信装置を受信者リストの最後尾に移動させるので、下位の受信装置が上位にシフトする。そのため、下位にあった受信装置は、明示的マルチキャストを行ったときに生じる、上位に位置する他の受信装置による速度制限を受けなくなり、伝送能力の高い受信装置の順にパケットを配送することが可能になる。
【産業上の利用可能性】
【０１２０】
本発明は、明示的マルチキャスト方式によるデータ送信を行う送信装置等に有用であり、パケットの配送順による受信装置の速度制限を解消するのに適している。
【図面の簡単な説明】
【０１２１】
【図１】本発明の実施の形態１における送信装置の構成を示すブロック図
【図２】本発明の実施の形態１における受信者レポートパケットのデータフォーマットを示す図
【図３】本発明の実施の形態１における受信者リストのデータ構造を示す図
【図４】本発明の実施の形態２における受信者リストのデータ構造を示す図
【図５】本発明の実施の形態１における送信装置の初期計測動作を示すフロー図
【図６】本発明の実施の形態１における送信装置の伝送制御処理を示すフロー図
【図７】本発明の実施の形態１における送信装置の送信レート計測処理を示すフロー図
【図８】本発明の実施の形態２における送信装置の送信レート計測処理を示すフロー図
【図９】従来の明示的マルチキャスト方式のパケット配送を示す図
【図１０】従来の明示的マルチキャスト方式のパケット配送を示す図
【図１１】従来のＳＩＣＣの動作を示すパケット配送図
【符号の説明】
【０１２２】
１０１    受信部
１０２    受信者能力推定部
１０３    受信者クラス分類部
１０４    クラス別受信者記憶部
１０５    受信者リスト並び替え部
１０６    パケット構成部
１０７    送信レート制御部
１０８    送信部
１０９    配送管理部
１１０    アプリケーション部
９０１    送信装置
９０２，９０３，９０４    受信装置
【図１】
0004598073.tif 000003
【図２】
0004598073.tif 000004
【図３】
0004598073.tif 000005
【図４】
0004598073.tif 000006
【図５】
0004598073.tif 000007
【図６】
0004598073.tif 000008
【図７】
0004598073.tif 000009
【図８】
0004598073.tif 000010
【図９】
0004598073.tif 000011
【図１０】
0004598073.tif 000012
【図１１】
0004598073.tif 000013