(57)【要約】【課題】データパケットのパケットロス情報に応じた冗長度を設定し、パケットロスの回復を行うことが可能な通信システムを提供する。【解決手段】送信装置（S）と、受信装置（R1、R2）と、を少なくとも有し、送信装置（S）と受信装置（R1、R2）との間で、マルチホップでマルチキャスト転送を行う通信システムであり、送信装置（S）は、マルチキャスト通信でデータパケットを受信装置（R1、R2）に送信する。受信装置（R1、R2）は、受信装置（R1、R2）自身において受信するデータパケットに対するパケットロス情報を作成し、該作成したパケットロス情報を送信装置（S）に送信する。送信装置（S）は、受信装置（R1、R2）が送信したパケットロス情報を受信し、その受信したパケットロス情報を基に、当該パケットロス情報に応じた冗長度を設定し、該設定した冗長度で前方向誤り訂正を行ったデータパケットを生成し、該生成したデータパケットを送信する。【選択図】図１
2008283283.tif 000002
【特許請求の範囲】
【請求項１】
マルチホップでマルチキャスト転送を行う通信装置であって、
マルチキャスト通信でデータパケットを送信する送信手段と、
前記データパケットのパケットロス情報を受信する受信手段と、
を有し、
前記送信手段は、
前記パケットロス情報を基に、当該パケットロス情報に応じた冗長度を設定し、該設定した冗長度で前方向誤り訂正を行ったデータパケットを生成し、該生成したデータパケットを送信することを特徴とする通信装置。
【請求項２】
前記パケットロス情報は、
前記データパケットを受信した受信側におけるパケットロスの情報であることを特徴とする請求項１記載の通信装置。
【請求項３】
前記受信手段は、
前記受信側が複数存在する場合には、各々の受信側から前記パケットロス情報を受信し、
前記送信手段は、
各々の受信側から受信した前記パケットロス情報を基に、当該パケットロス情報に応じた冗長度を設定することを特徴とする請求項２記載の通信装置。
【請求項４】
前記受信手段は、
前記データパケットのパケットロスが連続して発生しているかランダムに発生しているかを特定するための連続情報を受信し、
前記送信手段は、
前記連続情報を基に、前記データパケットのパケットロスが連続して発生しているかランダムに発生しているかを判断し、その判断結果に応じて、前記冗長度を変更することを特徴とする請求項１から３の何れか１項に記載の通信装置。
【請求項５】
前記受信手段は、
前記データパケットのマルチホップ数を受信し、
前記送信手段は、
前記マルチホップ数を基に、当該マルチホップ数に応じた冗長度を設定することを特徴とする請求項１から４の何れか１項に記載の通信装置。
【請求項６】
前記送信手段は、
前記冗長度を複数管理し、マルチキャスト通信で送信するデータパケットが動画である場合には、動画のIフレームに対しては、複数の冗長度の中で高い冗長度を設定することを特徴とする請求項１から５の何れか１項に記載の通信装置。
【請求項７】
前記送信手段は、
前記冗長度を複数管理し、マルチキャスト通信で送信するデータパケットに優先度付けがされている場合には、当該優先度に応じた冗長度を設定することを特徴とする請求項１から６の何れか１項に記載の通信装置。
【請求項８】
前記送信手段は、
優先度が高いデータパケットに対しては、高い冗長度を設定し、優先度が低いデータパケットに対しては、低い冗長度を設定することを特徴とする請求項７記載の通信装置。
【請求項９】
前記データパケットの送信レートを設定する設定手段を有することを特徴とする請求項１から８の何れか１項に記載の通信装置。
【請求項１０】
前記受信手段は、
前記パケットロス情報を含むデータパケットを受信し、当該データパケットは、マルチキャスト通信経路制御パケットであることを特徴とする請求項１から５の何れか１項に記載の通信装置。
【請求項１１】
前記受信手段は、
前記パケットロス情報を含むデータパケットを受信し、当該データパケットは、マルチキャスト通信経路制御パケットとは異なる独立した制御パケットであることを特徴とする請求項１から５の何れか１項に記載の通信装置。
【請求項１２】
前記受信手段は、
前記パケットロス情報と、前記連続情報と、前記マルチホップ数と、を含むデータパケットを受信することを特徴とする請求項１０または１１記載の通信装置。
【請求項１３】
マルチホップでマルチキャスト転送を行う通信装置であって、
マルチキャスト通信でデータパケットを受信する受信手段と、
前記受信手段により受信する前記データパケットに対するパケットロス情報を作成し、該作成したパケットロス情報を、前記データパケットを送信した送信側に送信する送信手段と、
を有することを特徴とする通信装置。
【請求項１４】
前記送信手段は、
前記データパケットのパケットロスが連続して発生しているかランダムに発生しているかを特定するための連続情報を作成し、該作成した連続情報を前記送信側に送信することを特徴とする請求項１３記載の通信装置。
【請求項１５】
前記送信手段は、
前記データパケットのマルチホップ数を前記送信側に送信することを特徴とする請求項１３または１４記載の通信装置。
【請求項１６】
前記送信手段は、
前記パケットロス情報を含むデータパケットを作成し、当該データパケットは、マルチキャスト通信経路制御パケットであることを特徴とする請求項１３から１５の何れか１項に記載の通信装置。
【請求項１７】
前記送信手段は、
前記パケットロス情報を含むデータパケットを作成し、当該データパケットは、マルチキャスト通信経路制御パケットとは異なる独立した制御パケットであることを特徴とする請求項１３から１５の何れか１項に記載の通信装置。
【請求項１８】
前記送信手段は、
前記パケットロス情報と、前記連続情報と、前記マルチホップ数と、を含むデータパケットを作成することを特徴とする請求項１６または１７記載の通信装置。
【請求項１９】
送信装置と、受信装置と、を少なくとも有し、送信装置と受信装置との間で、マルチホップでマルチキャスト転送を行う通信システムであって、
前記送信装置は、
マルチキャスト通信でデータパケットを前記受信装置に送信する送信手段と、
前記データパケットのパケットロス情報を受信する受信手段と、
を有し、
前記送信手段は、
前記パケットロス情報を基に、当該パケットロス情報に応じた冗長度を設定し、該設定した冗長度で前方向誤り訂正を行ったデータパケットを生成し、該生成したデータパケットを送信し、
前記受信装置は、
前記データパケットを受信する受信手段と、
前記受信手段により受信する前記データパケットに対するパケットロス情報を作成し、該作成したパケットロス情報を前記送信装置に送信する送信手段と、
を有することを特徴とする通信システム。
【請求項２０】
マルチホップでマルチキャスト転送を行う通信装置で行う通信制御方法であって、
マルチキャスト通信でデータパケットを送信する送信工程と、
前記データパケットのパケットロス情報を受信する受信工程と、を、前記通信装置が行い、
前記送信工程は、
前記パケットロス情報を基に、当該パケットロス情報に応じた冗長度を設定し、該設定した冗長度で前方向誤り訂正を行ったデータパケットを生成し、該生成したデータパケットを送信することを特徴とする通信制御方法。
【請求項２１】
マルチホップでマルチキャスト転送を行う通信装置で行う通信制御方法であって、
マルチキャスト通信でデータパケットを受信する受信工程と、
前記受信工程により受信する前記データパケットに対するパケットロス情報を作成し、該作成したパケットロス情報を送信する送信工程と、を、前記通信装置が行うことを特徴とする通信制御方法。
【請求項２２】
送信装置と、受信装置と、を少なくとも有し、送信装置と受信装置との間で、マルチホップでマルチキャスト転送を行う通信システムで行う通信制御方法であって、
前記送信装置が、マルチキャスト通信でデータパケットを前記受信装置に送信する送信工程と、
前記受信装置が、前記データパケットを受信する受信工程と、
前記受信装置が、前記受信工程により受信する前記データパケットに対するパケットロス情報を作成し、該作成したパケットロス情報を前記送信装置に送信する送信工程と、
前記送信装置が、前記パケットロス情報を受信する受信工程と、
を有し、
前記送信装置における送信工程は、
前記パケットロス情報を基に、当該パケットロス情報に応じた冗長度を設定し、該設定した冗長度で前方向誤り訂正を行ったデータパケットを生成し、該生成したデータパケットを送信することを特徴とする通信制御方法。
【請求項２３】
マルチホップでマルチキャスト転送を行う通信装置に実行させる通信制御プログラムであって、
マルチキャスト通信でデータパケットを送信する送信処理と、
前記データパケットのパケットロス情報を受信する受信処理と、を、前記通信装置に実行させ、
前記送信処理は、
前記パケットロス情報を基に、当該パケットロス情報に応じた冗長度を設定し、該設定した冗長度で前方向誤り訂正を行ったデータパケットを生成し、該生成したデータパケットを送信することを特徴とする通信制御プログラム。
【請求項２４】
マルチホップでマルチキャスト転送を行う通信装置に実行させる通信制御プログラムであって、
マルチキャスト通信でデータパケットを受信する受信処理と、
前記受信処理により受信する前記データパケットに対するパケットロス情報を作成し、該作成したパケットロス情報を送信する送信処理と、を、前記通信装置に実行させることを特徴とする通信制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチホップでデータ転送を行う通信装置、通信システム、通信制御方法及び通信制御プログラムに関し、特に、適切な冗長度で前方向誤り訂正(FEC：Forward Error Correction)を行うことが可能な通信装置、通信システム、通信制御方法及び通信制御プログラムに関するものである。
【背景技術】
【０００２】
無線マルチホップネットワークは、有線の通信インフラを設置することなく、データをマルチホップで転送し、広範囲の通信を可能とする技術であり、ネットワークの自律性・通信端末のモビリティ性の面から注目されている技術である。
【０００３】
その中でも、無線マルチホップネットワーク上で、１つの送信端末から複数の受信端末に対してデータ転送を行うマルチキャスト通信は、情報配信などのサービスに適用することが提案されている。
【０００４】
なお、無線マルチホップネットワーク上でマルチキャスト通信を行う場合には、無線通信区間では、ブロードキャスト通信が用いられる。
【０００５】
しかしながら、無線マルチホップネットワーク上では、無線通信で発生する電波のゆらぎやフェージングなどのために発生するパケットロスの他、無線マルチホップネットワーク特有の『かくれ端末問題』のためにパケットロスが発生することになる。
【０００６】
これらの要因は、時刻、場所、ネットワーク構成により大きく異なり、また、電波状況の変化や通信端末の移動により大きく変動するという特徴がある。また、これらの要因のために発生するパケットロスは、再送のないブロードキャスト通信では回復することができない。
【０００７】
なお、上述した『かくれ端末問題』とは、互いにキャリアセンスできない距離に位置する通信端末同士が同時にデータ送信を行った場合に、その両方のデータを受信できる位置の通信端末において電波干渉が発生し、データを受信できないといった問題である。
【０００８】
一方、アプリケーションレベルのマルチキャスト通信は、ストリーミングに使われることが多い。
【０００９】
ストリーミングでは、再生すべき時刻よりも後に届くパケットは再生に使われない。また、通信におけるパケットロスをある程度許容する代わりに、低遅延であることが重視されている。
【００１０】
このため、ストリーミングでは、パケットロスの回復の方法として、失われたパケットの再送を要求する自動再送制御：ARQ(Auto Repeat reQuest)方式よりも、適切な冗長度で冗長データを予めパケットに付加し、失われたパケットを復元する前方向誤り訂正：FEC(Forward Error Correction)方式が適用されている。
【００１１】
なお、FEC方式では、冗長度を高くするほどパケットに付加される情報量が多くなり、通信路での遅延やパケットロスの発生確率が増大するため、適切な冗長度を設定することが重要となる。
【００１２】
さらに、マルチキャストストリーミングのコンテンツが動画である場合には、MPEG2、MPEG4、H.263、H.264といった動画コーディング方式でコーディングされたフレーム(動画を構成する単位である静止画)がデータとして送信される。
【００１３】
このフレームがネットワークに流れるパケットの最大サイズを超える場合には、複数のパケットに分割して送信することになる。
【００１４】
なお、動画のIフレーム(Intra-coded Frame)は、他のフレーム（Pフレーム：Predicted Frame,Bフレーム：Bi-directional Predicted Frame）の場合に比べてデータサイズが大きいため、送信時に、フレームを分割することが多い。このため、短い時間に、複数のパケットを連続的に送出することになり、バーストトラフィックが発生することになる。
【００１５】
無線マルチホップネットワーク上でバーストトラフィックが発生すると、無線マルチホップネットワーク全体においてバーストトラフィックが発生し、『かくれ端末問題』によるパケットロスの発生確率が上昇することになる。また、Iフレームを失うと、動画再生時の品質劣化が大きくなってしまうことになる。
【００１６】
このため、パケットロスが頻発する無線マルチホップネットワークでは、品質の良い動画再生のためにはIフレームのロス対策が重要となる。
【００１７】
なお、Iフレームとは、動画の１フレームの情報を全て含んだフレームである。このため、Iフレームだけで１フレームを復元することが可能となる。
【００１８】
また、Pフレームとは、該当するフレームとそれより前のIフレームまたはPフレームとの差分情報である。
【００１９】
また、Bフレームとは、該当するフレームとそれより前と後のIフレームまたはPフレームとの差分情報である。
【００２０】
なお、本発明より先に出願された技術文献として、アドホック網内の各ノードでハイブリッド自動再送要求（ARQ）機能を組み込んだデータ伝送のための技術について開示された文献がある（例えば、特許文献１参照）。
【００２１】
また、パケット単位でビットエラー確率基準値を互いに異なるように設定している有無線映像通信システムについて開示された文献がある（例えば、特許文献２参照）。
【００２２】
また、データ配信において、正確な受信状況の把握を可能とし、該受信状況に応じてFECの冗長度を最適可能にする技術について開示された文献がある（例えば、特許文献３参照）。
【００２３】
また、最大許容パケットエラーレートに従うことを可能にする訂正能力を提供するように冗長量を適応化する技術について開示された文献がある（例えば、特許文献４参照）。
【００２４】
また、ODMRP(On Demand Multicast Routing Protocol)プロトコルについて開示された文献がある（例えば、非特許文献１参照）。
【特許文献１】特表２００５−５２９５１８号公報
【特許文献２】特開２００１−２５１２７９号公報
【特許文献３】特開２００２−３３０１１８号公報
【特許文献４】特表２００６−５０５１７７号公報
【非特許文献１】SUNG-JU LEE, 他2名, "On-Demand Multicast Routing Protocol in Multihop Wireless Mobile Networks", Mobile Networks and Applications Volume 7, Issue 6 (December 2002), Pages 441-453
【発明の開示】
【発明が解決しようとする課題】
【００２５】
しかしながら、上記特許文献１に開示されている技術は、ARQにより、失われたパケットの再送制御を行っているため、再送要求とその応答に一定の時間が掛かってしまうことになる。このため、上記特許文献１に開示されている技術では、マルチキャストデータを送信してから受信するまでの時間が大きくなるため、リアルタイム性が損なわれてしまうことになる。また、パケット毎の再送の有無により送信から受信までの時間のばらつきも大きくなるため、マルチキャスト受信アプリケーションでこのばらつきを無くす処理が新規に必要になる。
【００２６】
また、上記特許文献２に開示されている技術は、マルチキャスト受信者におけるパケット受信状況を監視せず、マルチキャスト送信者において推定するだけとなっているため、マルチキャスト受信者のパケット受信状況に適応したFEC冗長度変更が困難であり、必ずしも必要最小限のFEC冗長度を設定することができない。
【００２７】
また、上記特許文献３、４には、FECの冗長度を最適可能にする技術について開示されているが、マルチキャスト通信で送信したデータパケットのパケットロス情報を基に、当該パケットロス情報に応じた冗長度を設定することについては何ら記載もその必要性についても示唆されていない。
【００２８】
本発明は、上記事情に鑑みてなされたものであり、上述した課題である、マルチホップネットワークのマルチキャスト転送において、データパケットのパケットロス情報に応じた冗長度を設定し、パケットロスの回復を行うことが可能な通信装置、通信システム、通信制御方法及び通信制御プログラムを提供することを目的とするものである。
【課題を解決するための手段】
【００２９】
かかる目的を達成するために、本発明は、以下の特徴を有することとする。
【００３０】
本発明にかかる通信装置は、
マルチホップでマルチキャスト転送を行う通信装置であって、
マルチキャスト通信でデータパケットを送信する送信手段と、
前記データパケットのパケットロス情報を受信する受信手段と、
を有し、
前記送信手段は、
前記パケットロス情報を基に、当該パケットロス情報に応じた冗長度を設定し、該設定した冗長度で前方向誤り訂正を行ったデータパケットを生成し、該生成したデータパケットを送信することを特徴とする。
【００３１】
また、本発明にかかる通信装置は、
マルチホップでマルチキャスト転送を行う通信装置であって、
マルチキャスト通信でデータパケットを受信する受信手段と、
前記受信手段により受信する前記データパケットに対するパケットロス情報を作成し、該作成したパケットロス情報を、前記データパケットを送信した送信側に送信する送信手段と、
を有することを特徴とする。
【００３２】
また、本発明にかかる通信システムは、
送信装置と、受信装置と、を少なくとも有し、送信装置と受信装置との間で、マルチホップでマルチキャスト転送を行う通信システムであって、
前記送信装置は、
マルチキャスト通信でデータパケットを前記受信装置に送信する送信手段と、
前記データパケットのパケットロス情報を受信する受信手段と、
を有し、
前記送信手段は、
前記パケットロス情報を基に、当該パケットロス情報に応じた冗長度を設定し、該設定した冗長度で前方向誤り訂正を行ったデータパケットを生成し、該生成したデータパケットを送信し、
前記受信装置は、
前記データパケットを受信する受信手段と、
前記受信手段により受信する前記データパケットに対するパケットロス情報を作成し、該作成したパケットロス情報を前記送信装置に送信する送信手段と、
を有することを特徴とする。
【００３３】
また、本発明にかかる通信制御方法は、
マルチホップでマルチキャスト転送を行う通信装置で行う通信制御方法であって、
マルチキャスト通信でデータパケットを送信する送信工程と、
前記データパケットのパケットロス情報を受信する受信工程と、を、前記通信装置が行い、
前記送信工程は、
前記パケットロス情報を基に、当該パケットロス情報に応じた冗長度を設定し、該設定した冗長度で前方向誤り訂正を行ったデータパケットを生成し、該生成したデータパケットを送信することを特徴とする。
【００３４】
また、本発明にかかる通信制御方法は、
マルチホップでマルチキャスト転送を行う通信装置で行う通信制御方法であって、
マルチキャスト通信でデータパケットを受信する受信工程と、
前記受信工程により受信する前記データパケットに対するパケットロス情報を作成し、該作成したパケットロス情報を送信する送信工程と、を、前記通信装置が行うことを特徴とする。
【００３５】
また、本発明にかかる通信制御方法は、
送信装置と、受信装置と、を少なくとも有し、送信装置と受信装置との間で、マルチホップでマルチキャスト転送を行う通信システムで行う通信制御方法であって、
前記送信装置が、マルチキャスト通信でデータパケットを前記受信装置に送信する送信工程と、
前記受信装置が、前記データパケットを受信する受信工程と、
前記受信装置が、前記受信工程により受信する前記データパケットに対するパケットロス情報を作成し、該作成したパケットロス情報を前記送信装置に送信する送信工程と、
前記送信装置が、前記パケットロス情報を受信する受信工程と、
を有し、
前記送信装置における送信工程は、
前記パケットロス情報を基に、当該パケットロス情報に応じた冗長度を設定し、該設定した冗長度で前方向誤り訂正を行ったデータパケットを生成し、該生成したデータパケットを送信することを特徴とする。
【００３６】
また、本発明にかかる通信制御プログラムは、
マルチホップでマルチキャスト転送を行う通信装置に実行させる通信制御プログラムであって、
マルチキャスト通信でデータパケットを送信する送信処理と、
前記データパケットのパケットロス情報を受信する受信処理と、を、前記通信装置に実行させ、
前記送信処理は、
前記パケットロス情報を基に、当該パケットロス情報に応じた冗長度を設定し、該設定した冗長度で前方向誤り訂正を行ったデータパケットを生成し、該生成したデータパケットを送信することを特徴とする。
【００３７】
また、本発明にかかる通信制御プログラムは、
マルチホップでマルチキャスト転送を行う通信装置に実行させる通信制御プログラムであって、
マルチキャスト通信でデータパケットを受信する受信処理と、
前記受信処理により受信する前記データパケットに対するパケットロス情報を作成し、該作成したパケットロス情報を送信する送信処理と、を、前記通信装置に実行させることを特徴とする。
【発明の効果】
【００３８】
本発明によれば、マルチホップネットワークのマルチキャスト転送において、データパケットのパケットロス情報に応じた冗長度を設定し、パケットロスの回復を行うことが可能となる。
【発明を実施するための最良の形態】
【００３９】
＜通信システムの特徴＞
まず、図１を参照しながら、本実施例における通信システムの特徴について説明する。
【００４０】
本実施例における通信システムは、送信装置（通信端末：Sに相当）と、受信装置（通信端末：R1、R2に相当）と、を少なくとも有し、送信装置（S）と受信装置（R1、R2）との間で、マルチホップでマルチキャスト転送を行う通信システムである。
【００４１】
そして、送信装置（S）は、マルチキャスト通信でデータパケットを受信装置（R1、R2）に送信する。
【００４２】
受信装置（R1、R2）は、受信装置（R1、R2）自身において受信するデータパケットに対するパケットロス情報を作成し、該作成したパケットロス情報を送信装置（S）に送信する。
【００４３】
そして、送信装置（S）は、受信装置（R1、R2）が送信したパケットロス情報を受信し、その受信したパケットロス情報を基に、当該パケットロス情報に応じた冗長度を設定し、該設定した冗長度で前方向誤り訂正を行ったデータパケットを生成し、該生成したデータパケットを送信する。
【００４４】
これにより、マルチホップネットワークのマルチキャスト転送において、データパケットのパケットロス情報に応じた冗長度を設定し、パケットロスの回復を行うことが可能となる。以下、添付図面を参照しながら、本実施例における通信システムについて詳細に説明する。
【００４５】
（第１の実施例）
＜通信システムのシステム構成＞
まず、図１を参照しながら、本実施例における通信システムについて説明する。なお、図１は、本実施例の通信システムのシステム構成を示す図であり、無線マルチホップネットワークの通信端末の配置を示している。
【００４６】
本実施例における通信システムは、図１に示すように、通信端末（S,R1,R2,N1,N2,N3,N4,N5,N6,N7）が無線マルチホップネットワークを構成している。
【００４７】
なお、各通信端末（S,R1,R2,N1,N2,N3,N4,N5,N6,N7）の電波到達距離は、図１に示すように、各通信端末を取り囲む円で示す領域である。そして、その電波到達距離にある通信端末同士が互いに通信を行うことになる。
【００４８】
本実施例における通信端末（S,R1,R2,N1,N2,N3,N4,N5,N6,N7）は、マルチキャストルーティングプロトコルODMRP(On Demand Multicast Routing Protocol)を起動し、マルチキャスト経路の構築と、マルチキャストデータの転送と、を行うことになる。
【００４９】
なお、図１において、通信端末（S）を、マルチキャスト送信端末（S）とし、通信端末（R1、R2）を、マルチキャスト受信端末（R1、R2）とした場合に、送信端末（S）が送信するマルチキャストデータを、N1→N2→N3の順で転送し、通信端末（N3）が転送するマルチキャストデータを通信端末（N4）が転送し、その通信端末（N4）が転送するマルチキャストデータを受信端末（R1）が受信することになる。
【００５０】
また、通信端末（N3）が転送するマルチキャストデータを通信端末（N5）が転送し、その通信端末（N5）が転送するマルチキャストデータを受信端末（R2）が受信することになる。
【００５１】
なお、本実施例における通信システムは、無線マルチホップネットワーク上のマルチキャストルーティングプロトコルとしては、例えば、上記非特許文献1に開示されているODMRP(On Demand Multicast Routing Protocol)プロトコルを適用することが可能である。
【００５２】
また、動画圧縮方式としては、例えば、公知のMPEG4 Visual, ISO/IEC 14496-2の技術を適用することが可能である。
【００５３】
＜通信端末の内部構成＞
次に、図２を参照しながら、図１に示す通信システムを構成する通信端末の内部構成について説明する。なお、図２は、本実施例の通信端末（S,R1,R2,N1,N2,N3,N4,N5,N6,N7）の内部構成を示す詳細図である。なお、各通信端末（S,R1,R2,N1,N2,N3,N4,N5,N6,N7）の内部構成は同様に構成することになるため、以下の説明では、通信端末（S）について説明する。
【００５４】
本実施例の通信端末（S）は、図２に示すように、アンテナ（N11）と、無線処理部（N12）と、経路制御部（N13）と、メッセージキャッシュ（N14）と、ツリー管理部（N15）と、メンバ管理部（N16）と、通信バッファ（N17）と、アプリケーション処理部（N18）と、FECエンコード部（N19）と、バッファ（N20）と、FEC冗長度制御部（N21）と、FECデコード部（N22）と、バッファ（N23）と、を有して構成している。
【００５５】
アンテナ（N11）は、電波の送受信を行うものである。
【００５６】
無線処理部（N12）は、無線ネットワークのデータ通信を行うものである。
【００５７】
経路制御部（N13）は、マルチホップでデータ転送を行う経路の作成・変更・削除を行うものである。
【００５８】
メッセージキャッシュ（N14）は、一度受信したデータを保持し、後に再び受信したデータの同一性の確認に使用するものである。
【００５９】
ツリー管理部（N15）は、通信端末自身（S）の経路を構築するために周辺の通信端末を含めたツリー構造を管理するものである。
【００６０】
メンバ管理部（N16）は、通信端末自身（S）が属するマルチキャストグループの情報を管理するものである。
【００６１】
アプリケーション処理部（N18）は、音声・映像などのアプリケーションデータを送受信するものである。
【００６２】
通信バッファ（N17）は、アプリケーションデータを一時的に保持しておくものである。
【００６３】
FECエンコード部（N19）は、アプリケーションデータパケットからFEC冗長パケットを生成するものである。
【００６４】
バッファ（N20）は、FECエンコード部（N19）のバッファである。
【００６５】
FEC冗長度制御部（N21）は、FECエンコード時の冗長度を決定するものである。
【００６６】
FECデコード部（N22）は、ネットワークから受信したアプリケーションデータパケットと、FEC冗長パケットから失われたパケットと、を復元するものである。
【００６７】
バッファ（N23）は、FECデコード部（N22）のバッファである。
【００６８】
＜制御動作＞
次に、本実施例の通信システムにおける制御動作について説明する。なお、以下の説明では、本実施例の手法と、本実施例の手法と比較するための関連手法と、について説明する。
【００６９】
図３は、マルチキャストデータを転送する経路構築を示す。なお、図３において、マルチキャスト通信経路制御パケットJoinQueryを『JQ』、JoinReplyを『JR』と略記している。
【００７０】
（関連手法の経路構築）
まず、図３を参照しながら、関連手法の経路構築について説明する。なお、以下の説明では、S→N1→N2→N3→N4→R1の経路構築について説明するが、S→N1→N2→N3→N5→R2の経路構築についても同様に行うことになる。
【００７１】
なお、図３において、通信端末（S）は、送信端末（S）となり、通信端末（R1）は、受信端末（R1）となる。また、送信端末（S）と受信端末（R1）との間に存在する通信端末（N1，N2，N3，N4）は、中継端末（N1，N2，N3，N4）となる。
【００７２】
送信端末（S）において、マルチキャストグループ（G1）の送信データ（S1）が発生した後、送信端末（S）は、受信端末（R1）を検索するためのJoinQueryパケットJQ11を送信する。
【００７３】
このJoinQueryパケットJQ11は、ネットワークに存在する中継端末（N1，N2，N3，N4）により、JQ12→JQ13→JQ14→JQ15と転送される。これにより、JoinQueryパケットを全端末（N1，N2，N3，N4，R1）が受信することになる。
【００７４】
なお、送信データ（S1）のマルチキャストグループ（G1）のメンバである受信端末（R1）は、上流隣接端末情報N4を含んだJoinReplyパケットJR11を作成する。なお、上流隣接端末情報N4とは、受信端末（R1）の上流に隣接する通信端末（N4）を識別するための情報である。
【００７５】
受信端末（R1）は、上流隣接端末情報N4を含んだJoinReplyパケットJR11を、JoinQueryパケットが転送されてきた経路と逆方向に送信し、マルチキャストグループ（G1）への参加要求を行うことになる。
【００７６】
受信端末（R1）が送信したJoinReplyパケットJR11は、ネットワークに存在する中継端末（N4，N3，N2，N1）により、JR12→JR13→JR14→JR15と転送され、送信端末（S）に届けられ、送信端末（S）において受信端末（R1）の存在を認識することになる。これにより、送信端末（S）から受信端末（R1）までの経路が構築されることになる。
【００７７】
そして、送信端末（S）が送信するマルチキャストデータパケットは、上記構築された経路上の中継端末（N1，N2，N3，N4）によりマルチホップ転送され、受信端末（R1）が受信することになる。
【００７８】
（本実施例の手法の経路構築）
次に、図３を参照しながら、本実施例の手法の経路構築について説明する。なお、以下の説明では、S→N1→N2→N3→N4→R1の経路構築について説明するが、S→N1→N2→N3→N5→R2の経路構築についても同様に行うことになる。
【００７９】
本実施例の手法の経路構築は、関連手法と同様の経路構築を行う。
【００８０】
但し、本実施例の手法の経路構築は、マルチキャストグループ（G1）のメンバである受信端末（R1）が送信するJoinReplyパケットJR11には、マルチキャストデータパケットを受信したか否か、FECを用いてパケット復元ができたか否かなどのパケット統計情報が含められることになる。
【００８１】
＜経路制御処理＞
次に、図２を参照しながら、通信端末の経路制御処理について説明する。なお、後述するシーケンスナンバとは、１つの通信端末において１つ持つ数値であり、JoinQueryパケットを送信するたびに、値が１つずつ増加する数値である。
【００８２】
（関連手法のJoinQuery処理）
関連手法のJoinQuery処理は、送信端末（S）のアプリケーション処理部（N18）においてマルチキャストグループ（G1）の送信データ（S1）が発生すると、経路制御部（N13）にてJoinQueryパケットを作成し、該作成したJoinQueryパケットを無線処理部（N12）およびアンテナ（N11）を経由して送信することになる。
【００８３】
JoinQueryパケットを受信した通信端末は、アンテナ（N11）および無線処理部（N12）を経由して経路制御部（N13）がJoinQueryパケットを受信する。
【００８４】
経路制御部（N13）は、JoinQueryパケットに含まれる送信端末アドレスと、送信端末シーケンスナンバと、をキーとしてメッセージキャッシュ（N14）を参照し、初めて受信するJoinQueryパケットであるか否かを判断する。
【００８５】
経路制御部（N13）は、初めて受信するJoinQueryパケットである場合は、JoinQueryパケット内のホップカウントを１加えて、他の通信端末に送信することになる。
【００８６】
また、経路制御部（N13）は、通信端末自身がマルチキャストグループ（G1）のメンバである場合は、メンバ管理部（N16）において、参加するマルチキャストグループ（G1）のアドレス、最終JoinQuery受信時刻、直前のJoinQuery送信端末を管理し、JoinReply送信処理を行う。
【００８７】
なお、マルチキャスト送信者である送信端末（S）は、JoinQueryを送信した後の一定期間は、マルチキャストデータが発生してもJoinQueryを送信せず、一定期間が経過した場合に、再びJoinQueryの作成を行い、該作成したJoinQueryを送信することになる。
【００８８】
（関連手法のJoinReply処理）
関連手法のJoinReply処理は、通信端末の経路制御部（N13）において上流隣接端末（直前のJoinQuery送信端末に等しい）を指定し、JoinReplyパケットを作成し、該作成したJoinReplyパケットを無線処理部（N12）およびアンテナ（N11）を経由して送信することになる。
【００８９】
JoinReplyパケットを受信した通信端末では、その通信端末自身がJoinReplyパケットの上流隣接端末に指定されている場合は、ツリー管理部（N15）においてマルチキャストグループ（G1）の受信者が下流に存在することを管理し、上流隣接端末にJoinReplyパケットを送信することになる。
【００９０】
（本実施例の手法におけるJoinQuery処理）
本実施例の手法におけるJoinQuery処理は、関連手法のJoinQuery処理と同様に行う。
【００９１】
（本実施例の手法におけるJoinReply処理）
本実施例の手法におけるJoinReply処理は、関連手法のJoinReply処理のJoinReplyパケットを、FEC対応のJoinReplyパケットに変更することになる。
【００９２】
なお、FEC対応のJoinReplyパケットは、関連手法のJoinReplyパケットのフィールドに、パケット統計情報が含まれることになる。
【００９３】
また、FEC対応のJoinReplyパケットは、関連手法のJoinReplyパケットと同様の方法でマルチキャスト送信者である送信端末（S）にマルチホップ転送することになる。
【００９４】
＜パケット統計情報の生成処理＞
次に、本実施例の特徴であるパケット統計情報の生成処理について説明する。
【００９５】
まず、受信端末（R1）は、マルチキャストデータパケットを受信すると、そのシーケンス番号をキーとして、パケットログを保存する。
【００９６】
なお、パケットログとしては、各データパケットの受信状況情報と、FEC復元状況情報と、過去一定期間のパケット統計情報と、が挙げられる。
【００９７】
各データパケットの受信状況情報とは、各データパケットを受信できたか否かを特定するための情報である。
【００９８】
FEC復元状況情報とは、パケットロスが発生したデータパケットに対し、FECを用いてパケット復元ができたか否かを特定するための情報である。
【００９９】
過去一定期間のパケット統計情報とは、過去一定期間内に受信端末（R1）が受信したデータパケットに関する統計的な情報である。パケット統計情報としては、過去一定期間内のパケットロス数、FECによるパケット復元数、連続パケットロス数、FECブロック内のパケットロス数、マルチキャスト送信者から受信者へ至る経路のホップ数等の情報が挙げられる。
【０１００】
＜マルチキャストデータ処理＞
次に、図２を参照しながら、マルチキャストデータ処理について説明する。
【０１０１】
（関連手法のマルチキャストデータ処理）
関連手法のマルチキャストデータ処理は、送信端末（S）のアプリケーション処理部（N18）においてマルチキャストグループ（G1）の送信データ（S1）が発生すると、そのパケットを、一旦、通信バッファ（N17）に蓄え、シーケンスナンバを付加したあと、経路制御部（N13）の経路に従い、無線処理部（N12）およびアンテナ（N11）を経由して送信することになる。
【０１０２】
マルチキャストデータパケットを受信した通信端末（N1,N2,N3,N4,R1）は、アンテナ（N11）および無線処理部（N12）を経由して、経路制御部（N13）がマルチキャストデータパケットを受信する。
【０１０３】
なお、下流にマルチキャストグループ（G1）の受信者が存在する通信端末（N1,N2,N3,N4）では、送信端末アドレスと、送信端末シーケンスナンバと、をキーとしてメッセージキャッシュ（N14）を参照し、初めて受信するパケットであるか否かを判断する。
【０１０４】
初めて受信するパケットである場合には、他の通信端末に送信する。また、初めて受信するパケットでない場合には、何もしない。
【０１０５】
また、下流にマルチキャストグループ（G1）の受信者が存在しない通信端末では、何もしない。
【０１０６】
さらに、マルチキャストデータパケットを受信した通信端末（N1,N2,N3,N4,R1）では、その通信端末自身がマルチキャストグループ（G1）のメンバである場合には、そのパケットを、一旦、通信バッファ（N17）に蓄え、送信端末アドレスと、送信端末シーケンスナンバと、をキーとしてメッセージキャッシュ（N14）を参照し、初めて受信するパケットであるか否かを判断する。
【０１０７】
初めて受信するパケットである場合には、アプリケーション処理部（N18）に送信する。また、初めて受信するパケットでない場合には何もしない。
【０１０８】
（本実施例の手法におけるマルチキャストデータ処理）
本実施例の手法におけるマルチキャストデータ処理は、マルチキャストデータ送信時に、マルチキャストデータパケットのFECエンコード処理を行う。また、マルチキャストデータ受信時に、マルチキャストデータパケットのFECデコード処理を行う。
【０１０９】
（本実施例の手法におけるマルチキャストデータ送信時のFECエンコード処理）
まず、本実施例の手法におけるマルチキャストデータ送信時のFECエンコード処理について説明する。
【０１１０】
本実施例の手法におけるマルチキャストデータ送信処理は、マルチキャストデータパケットを通信バッファ（N17）に蓄え、シーケンスナンバを付加した後、FECエンコード処理を行うことになる。以下、図４を参照しながら、FECエンコード処理について詳細に説明する。
【０１１１】
まず、後述するFEC冗長度決定方法により、パケット種別からFEC冗長度：Mを決定する（ステップＳ４０２）。
【０１１２】
次に、上記決定したFEC冗長度：Mの変更の有無を判定し（ステップＳ４０３）、ステップＳ４０３において決定したFEC冗長度：Mが、その直前のFEC冗長度と異なる場合には、FEC冗長度：Mの変更の有と判定し（ステップＳ４０３／有）、FECエンコード処理を行うことになる（ステップＳ４０４）。
【０１１３】
次に、通信バッファ（N17）に蓄えたマルチキャストデータパケットをFECエンコード部（N19）のバッファ（N20）に保存する（ステップＳ４０５）。
【０１１４】
なお、ステップＳ４０３において決定したFEC冗長度：Mが、その直前のFEC冗長度と同一の場合は、FEC冗長度：Mの変更の無と判定し（ステップＳ４０３／無）、FECエンコード処理を行わず、マルチキャストデータパケットをFECエンコード部（Ｎ19）のバッファ（N20）に保存することになる（ステップＳ４０５）。
【０１１５】
次に、バッファ（N20）に保存したパケット数が、FEC冗長度：M以上になったか否かを判定し（ステップＳ４０６）、バッファ（N20）に保存したパケット数が、FEC冗長度：M以上になったと判定した場合に（ステップＳ４０６／Ｙｅｓ）、バッファ（N20）にあるパケット群（以下、『FECブロック』と記述する）に対し、FEC演算を行い、後述するFEC冗長パケット（以下、『FECパケット』と記述する）を生成し（ステップＳ４０７）、無線処理部（N12）、アンテナ（N11）を経由して送信し、処理を終了する（ステップＳ４０８）
【０１１６】
また、バッファ（N20）に保存したパケット数が、FEC冗長度：M未満と判定した場合には（ステップＳ４０６／Ｎｏ）、処理を終了する（ステップＳ４０８）。
【０１１７】
なお、FECパケットの送信タイミングは、特に限定せず、FECエンコード部（N19）がそのFECパケットのコピーを行った後に、直ぐに送信するように構築したり、その後のFECパケットと同じタイミングで送信するように構築したりすることが可能である。
【０１１８】
なお、FECパケットの送信の際には、下流の通信端末においてマルチホップ転送を行うことを考慮し、適当なパケット間隔で送信することが好ましい。例えば、パケット間隔としては、送信レートが無線伝送レートの１／３以下になるようにすることが好ましい。
【０１１９】
このように、送信レートを設定し、該設定した送信レートでFECパケットを送信することで、下流の通信端末においてマルチホップ転送を行う際の転送時間を確保するように制御することが可能となる。
【０１２０】
＜FECパケットの構成＞
次に、図５を参照しながら、FECパケットの内容と、そのFECパケットの生成方法と、について説明する。なお、図５は、FECパケットフィールドを示す。
【０１２１】
図５に示すように、FECパケットは、『NumOfPackets』、『Starting Sequence Number』、『Length Recovery』、『FEC payload』で構成されている。
【０１２２】
『NumOfPackets』は、FECブロック内のパケット数である。
【０１２３】
『Starting Sequence Number』は、FECブロック内の最初のパケットのシーケンスナンバである。
【０１２４】
『Length Recovery』は、マルチキャストデータパケットのパケット長から計算される情報である。
【０１２５】
『FEC payload』は、FECブロックの各パケットから計算されたFEC冗長情報である。
【０１２６】
＜FEC冗長度決定方法＞
次に、FEC冗長度決定方法について説明する。
【０１２７】
FEC冗長度決定方法は、２段階あり、マルチキャストデータ転送前に行う段階と、マルチキャストデータ転送中に行う段階と、がある。
【０１２８】
＜マルチキャストデータ転送前に行う段階＞
まず、図６を参照しながら、マルチキャストデータ転送前に行う段階について説明する。なお、図６は、FEC冗長度：MのときのFEC復元前パケットロス率（FEC前ロス率）Lbと、FEC復元後パケットロス率（FEC後ロス率）Laと、の関係の一例を示すグラフである。
【０１２９】
まず、FEC冗長度：M、FEC前ロス率LbとFEC後ロス率La、の関係について説明する。
【０１３０】
パケットロスがランダムである場合、FEC冗長度：Mに対し、FEC前ロス率LbとFEC後ロス率Laとは、図６に示す関係となる。
【０１３１】
例えば、FEC前ロス率Lb=10%のとき、FEC冗長度：M=10であれば、FEC後ロス率La=約6.5%である。これによると、FEC後ロス率Laの目標値が設定されれば、FEC前ロス率Lbの値に対してFEC冗長度：Mの最適値が求められる。以下に簡単な例を示す。
【０１３２】
FEC前ロス率Lbは、FEC後ロス率Laの関数であると捉え、適切なパラメータaを用いて以下の（式１）で近似できる。
【０１３３】
(Lb) = a × (La)2・・・（式1）
【０１３４】
FEC冗長度：Mとパラメータaとの関係が表1のように求められる。なお、表1に示す数値は一例である。
【０１３５】
【表１】
2008283283.tif 000003
【０１３６】
表1よりFEC冗長度：Mとパラメータaとの関係は次の（式２）のように近似される。
【０１３７】
M = 0.22954 × a2 - 0.40831 × a + 0.2834 ・・・（式２）
【０１３８】
なお、上述した関係を用い、FEC前ロス率LbとFEC後ロス率目標値Ltとが与えられると、その最適なFEC冗長度：M'は、以下の（式３）で求められる。
【０１３９】
M' = 0.22954 × ( (Lb)/(La)2 ) 2 - 0.40831 × ( (Lb)/(La) 2) + 0.2834 ・・・（式３）
【０１４０】
次に、図7を参照しながら、FEC後ロス率目標値Ltについて説明する。なお、図７は、FEC後ロス率Laと、FEC前ロス率Lbと、の関係の一例を示すグラフである。
【０１４１】
FEC後ロス率目標値Ltは、FEC前ロス率Lbに応じて以下の条件で設定することになる。
【０１４２】
0% ≦ Lb ≦ 10% のとき、Lt=2%
10% ＜ Lb ≦ 20% のとき、Lt=5%
20% ＜ Lb のとき、Lt=La
【０１４３】
但し、各条件のFEC前ロス率Lbの範囲や、FEC後ロス率目標値Ltの値は一例であり、上述した条件に限定されるものではなく、あらゆる条件を適宜設定することが可能である。
【０１４４】
＜マルチキャストデータ転送中に行う段階＞
次に、マルチキャストデータ転送中に行う段階について説明する。
【０１４５】
マルチキャスト送信端末（S）は、パケット統計情報を含むJoinReplyパケットを受信する。なお、パケット統計情報を含むJoinReplyパケットは、マルチキャスト受信端末（R1）において生成される。
【０１４６】
マルチキャスト送信端末（S）は、パケット統計情報を含むJoinReplyパケットを受信した場合に、FEC前ロス率LbからFEC後ロス率目標値Ltに復元するのに適切なFEC冗長度：M'の値を算出し、現在のFEC冗長度：Mとの差：ΔMを求める。
【０１４７】
次に、パケット統計情報の中の連続パケットロス数とFECブロック内のパケットロス数とを基に、パケットロスのランダム性を確認する。
【０１４８】
ここで、パケットロスのランダム性が高いと判断した場合は、上記求めたΔMを削減、または、0とし、現在のFEC冗長度：Mに加算することで、適切なFEC冗長度：M'を以下の（式４）で取得する。
【０１４９】
M' = M + ΔM ・・・（式４）
【０１５０】
次に、スムージングファクタα (0≦α＜1) を用いた以下の（式５）により、新しいFEC冗長度：Mnを決定する。
【０１５１】
Mn = ( α×M )+ ( ( 1-α ) ×M' ) ・・・（式５）
【０１５２】
なお、パケットロスのランダム性の確認方法としては、例えば、以下の方法が挙げられる。
【０１５３】
連続パケットロス数が、ある決められた値より大きい場合、または、FECブロック内のパケットロス数が２以上である割合が、ある決められた値よりも大きい場合に、パケットロスのランダム性が高いと判断する。
【０１５４】
このように、データパケットのパケットロスが連続して発生しているかランダムに発生しているかを特定するための連続情報（連続パケットロス数、FECブロック内のパケットロス数）を基に、データパケットのパケットロスが連続して発生しているかランダムに発生しているかを判断し、その判断結果に応じて、FEC冗長度を変更することで、パケットロスの発生を回避することが可能となる。
【０１５５】
なお、複数のマルチキャスト受信端末（R1,R2）が存在する場合には、各マルチキャスト受信端末（R1,R2）において生成されたパケット統計情報がマルチキャスト送信端末（S）に通知される。
【０１５６】
この場合には、各マルチキャスト受信端末（R1,R2）において生成された各パケット統計情報に対し、上記（式４）と（式５）との計算を行い、各パケット統計情報に対するMnを算出する。そして、各パケット統計情報に対する複数のMnの値を総合的に評価した値をMnとする。
【０１５７】
但し、総合的に評価する方法としては、例えば、複数のMnの値の平均値をとる方法、複数のMnの値の中央値を取る方法、複数のMnの値の最大値をとる方法、複数のMnの値の最小値をとる方法等が挙げられる。
【０１５８】
なお、マルチキャスト送信者から受信者へ至る経路のホップ数に応じて、FEC冗長度を変更するように制御することも可能である。例えば、ホップ数が多ければ、送信者から受信者までの距離が長くなるため、パケットロスの発生が多くなる。このため、ホップ数が多い場合には、FEC冗長度を高くするように制御する。逆に、ホップ数が少なければ、送信者から受信者までの距離が短くなるため、パケットロスの発生が少なくなる。このため、ホップ数が少ない場合には、FEC冗長度を低くするように制御する。このように、マルチキャスト送信者から受信者へ至る経路のホップ数に応じて、FEC冗長度を変更するように制御することで、パケットロスの発生を回避することが可能となる。
【０１５９】
＜動画のIフレームに対するFEC冗長度決定方法＞
さらに、マルチキャストデータが動画である場合には以下の手法を適用することで、Iフレームのパケットロスを他フレーム（以下、非Iフレーム）よりも抑制することになる。
【０１６０】
まず、２つのFEC冗長度(M1,M2)を管理し（但し、M1＜M2）、非Iフレームに対してはFEC冗長度：M1、Iフレームに対してはFEC冗長度：M2でFECエンコードを行う。
【０１６１】
このように、FEC冗長度を複数管理し、マルチキャストデータが動画である場合には、動画のIフレームに対しては高いFEC冗長度でFECエンコードを行うことが好ましい。
【０１６２】
また、フレーム種別が変わる場合には、FECエンコード部（N19）のバッファ（N20）内部のパケット数が予め決められた数に満たない場合でもFECエンコードを行い、複数の動画フレームのパケットが同一のFECブロック内に入ることのないように制御する。
【０１６３】
なお、上記方法では、FEC冗長度を複数管理し、マルチキャストデータが動画である場合には、動画のIフレームに対しては高いFEC冗長度でFECエンコードを行うことにしたが、マルチキャスト通信で送信するデータパケットに優先度付けがされている場合には、当該優先度に応じた冗長度でFECエンコードを行うことも可能である。
【０１６４】
例えば、３つのFEC冗長度(M1,M2,M3)を管理し（但し、M1＜M2＜M3）、マルチキャスト通信で送信するデータパケットに付与されている優先度が高い場合には、FEC冗長度：M3でFECエンコードを行い、マルチキャスト通信で送信するデータパケットに付与されている優先度が低い場合には、FEC冗長度：M1でFECエンコードを行うように制御することも可能である。
【０１６５】
（本実施例の手法におけるマルチキャストデータ受信時のFECデコード処理）
次に、本実施例の手法におけるマルチキャストデータ受信時のFECデコード処理について説明する。
【０１６６】
本実施例におけるマルチキャストデータ処理では、マルチキャストデータパケットが通信バッファ（N17）に蓄えられた場合に、FECデコード処理を行うことになる。以下、図８、図９を参照しながらFECデコード処理と、FECデコード復元処理と、について説明する。なお、図８は、FECデコード処理を示し、図９は、FECデコード復元処理を示している。
【０１６７】
（FECデコード処理）
まず、受信したマルチキャストデータパケットをFECデコード部（N19）のバッファ（N20）に格納し、シーケンスナンバの順に並べる（ステップＳ８０２）。
【０１６８】
次に、そのパケットがマルチキャストデータパケットか、または、FECパケットであるかを識別する（ステップＳ８０３）。
【０１６９】
FECパケットである場合は（ステップＳ８０３／FECパケット）、FECDEC-delayタイマを始動し（ステップＳ８０４）、処理を終了する（ステップＳ８０５）。
【０１７０】
また、マルチキャストデータパケットである場合は（ステップＳ８０３／非FECパケット）、FECDEC-delayタイマを始動せず、処理を終了する（ステップＳ８０５）。
【０１７１】
なお、ステップＳ８０４においてFECDEC-delayタイマを始動し、FECDECタイマが超過した場合は、FECデコード復元処理を開始する（図９：ステップＳ９０１）。ここでFECパケット受信直後に、FECデコード処理を行わない理由は、ネットワーク転送中にFECブロック内のデータパケットとFECパケットとの順番が逆転する可能性があり、その場合には、FECパケット受信後にFECブロックのデータパケットを受信するため、FECパケット受信後もFECブロックのデータパケットを待つ必要があるためである。
【０１７２】
（FECデコード復元処理）
FECデコード復元処理は、図９に示すように、FECパケットの『NumOfPackets』フィールドと『Starting Sequence Number』フィールドと、から、FECブロック内のデータパケットのシーケンスナンバを取得する（ステップＳ９０２）。
【０１７３】
次に、FECブロックとFECパケットとを使ってFEC復元演算処理を行う（ステップＳ９０３）。
【０１７４】
FEC復元演算処理では、FECブロック内の各パケットとFECパケットの『payload』から失われたパケットを復元する。
【０１７５】
また、FECブロック内の各パケットの長さとFECパケットの『Length Recovery』から失われたパケットのパケット長を復元する。
【０１７６】
次に、FEC復元したパケットをFECデコード部（N22）のバッファ（N23）に格納し、シーケンスナンバの順に並べる（ステップＳ９０４）。
【０１７７】
次に、FECデコード部（N22）のバッファ（N23）の中で、FECパケットよりも古いデータパケットをアプリケーション処理部（N18）に送信し（ステップＳ９０５）、処理を終了する（ステップＳ９０６）。
【０１７８】
このように、本実施例の通信システムは、マルチキャスト受信端末（R1,R2）において作成したパケット統計情報を含むJoinReplyパケットを、マルチキャスト送信端末（S）が取得する。そして、マルチキャスト送信端末（S）は、上記取得したJoinReplyパケットに含まれるパケット統計情報を基に、そのパケット統計情報のパケットロス数に応じたFEC冗長度に設定し、該設定したFEC冗長度でFEC冗長パケットを生成することになる。
【０１７９】
これにより、時刻、場所、ネットワーク構成により変動するデータパケットのパケットロス数に応じたFEC冗長度に設定し、該設定したFEC冗長度でFEC冗長パケットを生成することになるため、最適なパケットロスの回復を行うことが可能となる。
【０１８０】
また、マルチキャストデータが動画である場合には、その動画のIフレームを含むマルチキャストデータパケットに対し、他のフレーム（Pフレーム、Bフレーム）よりも高いFEC冗長度を設定し、該設定したFEC冗長度でFEC冗長パケットを生成することで、動画の品質を向上させることが可能となる。
【０１８１】
また、データパケットを連続して送信する際に、適切なパケット送信間隔を設けることで、『かくれ端末問題』のために発生するパケットロスを低減することが可能となる。
【０１８２】
（第２の実施例）
次に、第２の実施例について説明する。
【０１８３】
第１の実施例は、マルチキャスト受信端末（R1，R2）において生成したパケット統計情報を、JoinReplyパケットに含めて送信することにした。
【０１８４】
第２の実施例は、マルチキャスト受信端末（R1，R2）において生成したパケット統計情報を、第１の実施例のように、JoinReplyパケットに含めるのではなく、独立の制御パケットとして送信することを特徴とする。
【０１８５】
これにより、マルチキャスト受信端末（R1，R2）において生成したパケット統計情報を、ODMRP以外のルーティングプロトコルを使用して、マルチキャスト送信端末（S）に送信することが可能となる。以下、第２の実施例について詳細に説明する。
【０１８６】
第２の実施例におけるマルチキャスト受信端末（R1，R2）は、第１の実施例と同様なパケット統計情報の生成処理により、パケット統計情報を生成した場合に、その生成したパケット統計情報を、独立の制御パケットとして送信する。
【０１８７】
なお、パケット統計情報の生成処理は、予め決められた時間に収集した情報を用いてパケット統計情報を生成するようにしたり、また、予め決められた数の情報を用いてパケット統計情報を生成するようにしたりすることが可能である。
【０１８８】
また、パケット統計情報を含んだ制御パケットを送信した後は、一定期間は、次の制御パケットを送信しないように制御し、一定期間が経過した場合に、再び、パケット統計情報を含んだ制御パケットを送信するように制御することが好ましい。
【０１８９】
なお、マルチキャスト送信端末（S）は、パケット統計情報を含んだ制御パケットを受信した場合に、第１の実施例と同様なマルチキャストデータ処理を行うことになる。
【０１９０】
このように、マルチキャスト受信端末（R1，R2）において生成したパケット統計情報を、第１の実施例のように、JoinReplyパケットに含めるのではなく、独立の制御パケットとして送信する。
【０１９１】
これにより、マルチキャスト受信端末（R1，R2）において生成したパケット統計情報を、ODMRP以外のルーティングプロトコルを使用して、マルチキャスト送信端末（S）に送信することが可能となる。
【０１９２】
なお、上述する実施例は、本発明の好適な実施例であり、上記実施例のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において当業者が上記実施例の修正や代用を行い、種々の変更を施した形態を構築することは可能である。
【０１９３】
例えば、上述した実施例では、無線通信を行う通信システムを基に説明したが、本実施例の技術思想は、無線に限定するものではなく、有線にも適用することが可能である。
【０１９４】
また、上述したパケット統計情報を、１つのパケットデータとして送信するのではなく、複数のパケットデータとして送信するように構築することも可能である。
【０１９５】
また、上述した実施例における通信システムを構成する通信端末における制御動作は、ハードウェア、または、ソフトウェア、あるいは、両者の複合構成によって実行することも可能である。
【０１９６】
なお、ソフトウェアを用いて処理を実行する場合には、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれているコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【０１９７】
例えば、プログラムは、記録媒体としてのハードディスクやＲＯＭ（Read Only Memory）に予め記録しておくことが可能である。あるいは、プログラムは、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)，ＭＯ(Magneto optical)ディスク，ＤＶＤ(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的、あるいは、永続的に格納（記録）しておくことが可能である。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することが可能である。
【０１９８】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、ＬＡＮ(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送したりし、コンピュータでは、転送されてきたプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることが可能である。
【０１９９】
また、上記実施例で説明した処理動作に従って時系列的に実行されるのみならず、処理を実行する装置の処理能力、あるいは、必要に応じて並列的にあるいは個別に実行するように構築することも可能である。
【０２００】
本実施例は、上述した説明より明らかなように、以下の構成を有することを特徴とする。
【０２０１】
本実施例にかかる通信装置は、
マルチホップでマルチキャスト転送を行う通信装置であって、
マルチキャスト通信でデータパケットを送信する送信手段と、
前記データパケットのパケットロス情報を受信する受信手段と、
を有し、
前記送信手段は、
前記パケットロス情報を基に、当該パケットロス情報に応じた冗長度を設定し、該設定した冗長度で前方向誤り訂正を行ったデータパケットを生成し、該生成したデータパケットを送信することを特徴とする。
【０２０２】
また、本実施例にかかる通信装置において、
前記パケットロス情報は、
前記データパケットを受信した受信側におけるパケットロスの情報であることを特徴とする。
【０２０３】
また、本実施例にかかる通信装置において、
前記受信手段は、
前記受信側が複数存在する場合には、各々の受信側から前記パケットロス情報を受信し、
前記送信手段は、
各々の受信側から受信した前記パケットロス情報を基に、当該パケットロス情報に応じた冗長度を設定することを特徴とする。
【０２０４】
また、本実施例にかかる通信装置において、
前記受信手段は、
前記データパケットのパケットロスが連続して発生しているかランダムに発生しているかを特定するための連続情報を受信し、
前記送信手段は、
前記連続情報を基に、前記データパケットのパケットロスが連続して発生しているかランダムに発生しているかを判断し、その判断結果に応じて、前記冗長度を変更することを特徴とする。
【０２０５】
また、本実施例にかかる通信装置において、
前記受信手段は、
前記データパケットのマルチホップ数を受信し、
前記送信手段は、
前記マルチホップ数を基に、当該マルチホップ数に応じた冗長度を設定することを特徴とする。
【０２０６】
また、本実施例にかかる通信装置において、
前記送信手段は、
前記冗長度を複数管理し、マルチキャスト通信で送信するデータパケットが動画である場合には、動画のIフレームに対しては、複数の冗長度の中で高い冗長度を設定することを特徴とする。
【０２０７】
また、本実施例にかかる通信装置において、
前記送信手段は、
前記冗長度を複数管理し、マルチキャスト通信で送信するデータパケットに優先度付けがされている場合には、当該優先度に応じた冗長度を設定することを特徴とする。
【０２０８】
また、本実施例にかかる通信装置において、
前記送信手段は、
優先度が高いデータパケットに対しては、高い冗長度を設定し、優先度が低いデータパケットに対しては、低い冗長度を設定することを特徴とする。
【０２０９】
また、本実施例にかかる通信装置は、
前記データパケットの送信レートを設定する設定手段を有することを特徴とする。
【０２１０】
また、本実施例にかかる通信装置において、
前記受信手段は、
前記パケットロス情報を含むデータパケットを受信し、当該データパケットは、マルチキャスト通信経路制御パケットであることを特徴とする。
【０２１１】
また、本実施例にかかる通信装置において、
前記受信手段は、
前記パケットロス情報を含むデータパケットを受信し、当該データパケットは、マルチキャスト通信経路制御パケットとは異なる独立した制御パケットであることを特徴とする。
【０２１２】
また、本実施例にかかる通信装置において、
前記受信手段は、
前記パケットロス情報と、前記連続情報と、前記マルチホップ数と、を含むデータパケットを受信することを特徴とする。
【０２１３】
また、本実施例にかかる通信装置は、
マルチホップでマルチキャスト転送を行う通信装置であって、
マルチキャスト通信でデータパケットを受信する受信手段と、
前記受信手段により受信する前記データパケットに対するパケットロス情報を作成し、該作成したパケットロス情報を、前記データパケットを送信した送信側に送信する送信手段と、
を有することを特徴とする。
【０２１４】
また、本実施例にかかる通信装置において、
前記送信手段は、
前記データパケットのパケットロスが連続して発生しているかランダムに発生しているかを特定するための連続情報を作成し、該作成した連続情報を前記送信側に送信することを特徴とする。
【０２１５】
また、本実施例にかかる通信装置において、
前記送信手段は、
前記データパケットのマルチホップ数を前記送信側に送信することを特徴とする。
【０２１６】
また、本実施例にかかる通信装置において、
前記送信手段は、
前記パケットロス情報を含むデータパケットを作成し、当該データパケットは、マルチキャスト通信経路制御パケットであることを特徴とする。
【０２１７】
また、本実施例にかかる通信装置において、
前記送信手段は、
前記パケットロス情報を含むデータパケットを作成し、当該データパケットは、マルチキャスト通信経路制御パケットとは異なる独立した制御パケットであることを特徴とする。
【０２１８】
また、本実施例にかかる通信装置において、
前記送信手段は、
前記パケットロス情報と、前記連続情報と、前記マルチホップ数と、を含むデータパケットを作成することを特徴とする。
【０２１９】
また、本実施例にかかる通信システムは、
送信装置と、受信装置と、を少なくとも有し、送信装置と受信装置との間で、マルチホップでマルチキャスト転送を行う通信システムであって、
前記送信装置は、
マルチキャスト通信でデータパケットを前記受信装置に送信する送信手段と、
前記データパケットのパケットロス情報を受信する受信手段と、
を有し、
前記送信手段は、
前記パケットロス情報を基に、当該パケットロス情報に応じた冗長度を設定し、該設定した冗長度で前方向誤り訂正を行ったデータパケットを生成し、該生成したデータパケットを送信し、
前記受信装置は、
前記データパケットを受信する受信手段と、
前記受信手段により受信する前記データパケットに対するパケットロス情報を作成し、該作成したパケットロス情報を前記送信装置に送信する送信手段と、
を有することを特徴とする。
【０２２０】
また、本実施例にかかる通信制御方法は、
マルチホップでマルチキャスト転送を行う通信装置で行う通信制御方法であって、
マルチキャスト通信でデータパケットを送信する送信工程と、
前記データパケットのパケットロス情報を受信する受信工程と、を、前記通信装置が行い、
前記送信工程は、
前記パケットロス情報を基に、当該パケットロス情報に応じた冗長度を設定し、該設定した冗長度で前方向誤り訂正を行ったデータパケットを生成し、該生成したデータパケットを送信することを特徴とする。
【０２２１】
また、本実施例にかかる通信制御方法は、
マルチホップでマルチキャスト転送を行う通信装置で行う通信制御方法であって、
マルチキャスト通信でデータパケットを受信する受信工程と、
前記受信工程により受信する前記データパケットに対するパケットロス情報を作成し、該作成したパケットロス情報を送信する送信工程と、を、前記通信装置が行うことを特徴とする。
【０２２２】
また、本実施例にかかる通信制御方法は、
送信装置と、受信装置と、を少なくとも有し、送信装置と受信装置との間で、マルチホップでマルチキャスト転送を行う通信システムで行う通信制御方法であって、
前記送信装置が、マルチキャスト通信でデータパケットを前記受信装置に送信する送信工程と、
前記受信装置が、前記データパケットを受信する受信工程と、
前記受信装置が、前記受信工程により受信する前記データパケットに対するパケットロス情報を作成し、該作成したパケットロス情報を前記送信装置に送信する送信工程と、
前記送信装置が、前記パケットロス情報を受信する受信工程と、
を有し、
前記送信装置における送信工程は、
前記パケットロス情報を基に、当該パケットロス情報に応じた冗長度を設定し、該設定した冗長度で前方向誤り訂正を行ったデータパケットを生成し、該生成したデータパケットを送信することを特徴とする。
【０２２３】
また、本実施例にかかる通信制御プログラムは、
マルチホップでマルチキャスト転送を行う通信装置に実行させる通信制御プログラムであって、
マルチキャスト通信でデータパケットを送信する送信処理と、
前記データパケットのパケットロス情報を受信する受信処理と、を、前記通信装置に実行させ、
前記送信処理は、
前記パケットロス情報を基に、当該パケットロス情報に応じた冗長度を設定し、該設定した冗長度で前方向誤り訂正を行ったデータパケットを生成し、該生成したデータパケットを送信することを特徴とする。
【０２２４】
また、本実施例にかかる通信制御プログラムは、
マルチホップでマルチキャスト転送を行う通信装置に実行させる通信制御プログラムであって、
マルチキャスト通信でデータパケットを受信する受信処理と、
前記受信処理により受信する前記データパケットに対するパケットロス情報を作成し、該作成したパケットロス情報を送信する送信処理と、を、前記通信装置に実行させることを特徴とする。
【産業上の利用可能性】
【０２２５】
本発明にかかる通信装置、通信システム、通信制御方法及び通信制御プログラムは、マルチホップネットワーク上でのマルチキャスト通信、例えば、映像配信、音声配信、その他の形式の情報配信等のマルチメディア通信のサービスに適用可能である。
【図面の簡単な説明】
【０２２６】
【図１】本実施例の通信システムのシステム構成を示す図である。
【図２】本実施例の通信システムを構成する通信端末の内部構成を示す図である。
【図３】マルチキャストデータを転送する経路構築を説明するための図である。
【図４】FECエンコード処理を説明するための図である。
【図５】FECパケットフィールドを示す図である。
【図６】FEC冗長度：MのときのFEC復元前パケットロス率（FEC前ロス率）Lbと、FEC復元後パケットロス率（FEC後ロス率）Laと、の関係の一例を示すグラフである。
【図７】FEC後ロス率Laと、FEC前ロス率Lbと、の関係の一例を示すグラフである。
【図８】FECデコード処理を説明するための図である。
【図９】FECデコード復元処理を説明するための図である。
【符号の説明】
【０２２７】
S,R1,R2,N1,N2,N3,N4,N5,N6,N7    通信端末
N11    アンテナ
N12    無線処理部
N13    経路制御部
N14    メッセージキャッシュ
N15    ツリー管理部
N16    メンバ管理部
N17    通信バッファ
N18    アプリケーション処理部
N19    FECエンコード部
N20    バッファ
N21    FEC冗長度制御部
N22    FECデコード部
N23    バッファ
【図１】
2008283283.tif 000004
【図２】
2008283283.tif 000005
【図３】
2008283283.tif 000006
【図４】
2008283283.tif 000007
【図５】
2008283283.tif 000008
【図６】
2008283283.tif 000009
【図７】
2008283283.tif 000010
【図８】
2008283283.tif 000011
【図９】
2008283283.tif 000012