マルチキャスト通信におけるパケット再送制御方法及び装置
【課題】マルチキャスト通信における、パケット欠落時のパケット再送制御技術に関し、トラフィックの増加と訂正遅延の問題を同時に解決する。
【解決手段】端末Cから端末Aへの転送において、パケット欠落が発生する。端末Aから端末Cに、再送要求が送信される。再送要求において、同時送信先リストとして端末Bアドレスが送信される。端末Aからグループ内下流に、パケット欠落情報が転送される。端末Cから端末Aへ、パケットが再送される。端末Aは、受信した再送パケットをマルチキャストする。端末Cから端末Bへ、パケットが再送される。端末Bは、受信した再送パケットを、通常の転送パケットとして欠落場所に補填し、その後そのパケットをマルチキャストする。グループ3では、転送データ“2”の欠落情報の転送が不必要となり、トラフィックの増加及び訂正遅延が解消できる。
【解決手段】端末Cから端末Aへの転送において、パケット欠落が発生する。端末Aから端末Cに、再送要求が送信される。再送要求において、同時送信先リストとして端末Bアドレスが送信される。端末Aからグループ内下流に、パケット欠落情報が転送される。端末Cから端末Aへ、パケットが再送される。端末Aは、受信した再送パケットをマルチキャストする。端末Cから端末Bへ、パケットが再送される。端末Bは、受信した再送パケットを、通常の転送パケットとして欠落場所に補填し、その後そのパケットをマルチキャストする。グループ3では、転送データ“2”の欠落情報の転送が不必要となり、トラフィックの増加及び訂正遅延が解消できる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルチキャスト通信における、パケット欠落時のパケット再送制御技術に関する。
【背景技術】
【0002】
IP(インターネットプロトコル)網でのパケット欠落の再送処理(ARQ:Automatic Repeat reQuest)は、パケット欠落をACK(正常応答)やNACK(異常応答)の応答により判断し、欠落したパケットを再送する処理である。
【0003】
このARQがマルチキャスト通信やALM(アプリケーションレイヤマルチキャスト)に適用された場合、以下の問題が発生する。
即ち、欠落したパケットの訂正を待ちデータが揃ってから下流端末への転送が行われると、訂正遅延が発生する。図18に示されるように、上流での訂正遅延は下流に伝播し、欠落が発生する毎に遅延は加算され、下流の端末でバッファの破綻が発生する。
【0004】
従来技術1:上記訂正遅延を抑制するために、訂正(再送)処理中もパケットの転送を継続する従来技術が知られている。図19に、この従来技術による再送処理の概要を示す。この手法では、下流端末にパケットの欠落情報が伝播するため、伝播した各端末からの再送要求が抑制される。更に、再送パケットがマルチキャストされることにより、下流端末での訂正が行われる。
【0005】
従来技術2:下記特許文献1が開示するネットワークおよび通信装置は、ALMにおいて、親子関係および兄弟関係を持ち、ACKまたはNACKは兄(兄がいない場合は親)に送ることを特徴としている。これによりACKやNACKの応答やパケットの再送の集中がなく、トラフィックの増加が分散されため、葉の部分に位置する端末においてもバッファの破綻は発生しない。
【特許文献1】特開2007−228063号公報
【特許文献2】特開2004−318274号公報
【特許文献3】特開2004−199578号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかし、前述の従来技術1は、欠落情報の転送によるトラフィックの増加が発生するという問題点を有している。
また、前述の従来技術2は、親から葉への直接再送は行われないため、欠落したパケットの訂正遅延は大きくなる(親→兄→自となるため)。このためパケットの欠落が伝播し、訂正の遅延がさらに大きくなる場合があるという問題点を有している。
【0007】
以上のように、マルチキャスト通信における再送処理では、トラフィックの増加と訂正遅延が問題となるが、どちらも同時に軽減して解決した従来技術はなく、特にストリーミング配信においては、訂正遅延が大きくなると動画の崩れが発生するなどの問題点を有していた。
【課題を解決するための手段】
【0008】
本発明の課題は、トラフィックの増加と訂正遅延の問題を同時に解決することにある。
本発明は、配信経路上の端末装置が階層的にグループ化されたマルチキャスト配信システムにおけるパケット欠落時の再送制御を行う方法又は装置を前提とする。
【0009】
再送要求送信ステップ(図11)では、受信パケットの欠落を検出した第1の端末装置が、その第1の端末装置の上流に位置する第2の端末装置へ、第1の端末装置及びそれが属するグループよりも下流にあるグループ内で最初にパケットを受信する第3の端末装置へのパケット再送要求を送信する。
【0010】
再送パケット送信ステップ(図15)では、その再送要求を受信した第2の端末装置が、第1の端末装置及び第3の端末装置の両方に再送パケットを送信する。
上述の発明の構成において、更に、以下の欠落情報転送ステップと再送パケット転送ステップを含むように構成することができる。
【0011】
即ち、欠落情報転送ステップ(図14)では、第1の端末装置が、パケット欠落情報を、第1の端末装置の下流に位置する各端末装置に順次転送する。
そして、再送パケット転送ステップ(図16)では、第1の端末装置が、第2の端末装置から受信した再送パケットを、第1の端末装置の下流に位置する各端末装置に順次転送する。
【0012】
上述の発明の構成において、更に、以下の破棄ステップを含むように構成することができる。
即ち、破棄ステップ(図14、図16)では、第3の端末装置は、それが属するグループの上流のグループから転送されてきたパケット欠落情報及びそれに対応して転送されてきた再送パケットを破棄する。
【0013】
或いは、他の破棄ステップでは、第1の端末装置が属するグループでは、下流端末へ転送されるパケット欠落情報及び再送パケットを、そのグループ内の最終端末で破棄する。
ここまでの発明の構成において、第3の端末装置は、それが属するグループよりも上流のグループから受信した通常パケットに対して、第2の端末装置から受信した再送パケットを通常パケットとして補填して、第3の端末装置の下流に位置する端末装置に送信するパケット補填ステップを更に含むように構成することができる。
【0014】
グループ管理が行われ、パケットが欠落した場合、自端末への再送要求と、下流グループ端末への再送要求とが、同時に上流端末に送信される。
再送要求を受けた上流端末は、当該端末と要求を受けた下流にあるグループの端末両方に、再送パケットを送信する。
【0015】
上流グループからの再送パケットを受信した端末は、再送パケットによって通常パケットを補填することにより、パケットの欠落情報と再送パケットの転送を止め、下流端末へは通常のパケット転送とする。
【発明の効果】
【0016】
本発明によれば、パケットの欠落の伝播を抑止でき、従来技術におけるトラフィックの増加や訂正遅延は任意のグループ内に留まらせることが可能となり、その下流端末におけるトラフィックの増加と訂正遅延を解消することが可能となる。
【発明を実施するための最良の形態】
【0017】
以下、図面を参照しながら、本発明を実施するための最良の形態を詳細に説明する。
本実施形態の原理説明
以下に説明する実施形態では、配信経路の端末(ノード)が階層的にグループ化されたマルチキャスト配信システムにおいて、パケット欠落時の再送処理として、パケット欠落情報の伝播が予測される下流端末グループ内の端末にも、再送元から直接再送パケットが
送信(先送り)されるように制御されることで、パケット欠落の伝播が抑止される。
【0018】
本実施形態における再送処理の動作原理について、図1の原理説明図に基づいて説明する。
パケット欠落時の再送処理を以下に示す。
【0019】
ステップ1:端末Cから端末Aへの転送において、パケット欠落が発生する。
ステップ2:端末Aから端末Cに、再送要求が送信される。再送要求において、同時送信先リストとして端末Bアドレスが送信される。
ステップ3:端末Aからグループ内下流に、パケット欠落情報が転送される。
ステップ4:端末Cから端末Aへ、パケットが再送される。端末Aは、受信した再送パケットをマルチキャストする。
ステップ5:端末Cから端末Bへ、パケットが再送される。
ステップ6:端末Bは、受信した再送パケットを、通常の転送パケットとして欠落場所に補填し、その後そのパケットをマルチキャストする。
【0020】
以上の動作により、グループ3では、転送データ“2”の欠落情報の転送が不必要となり、トラフィックの増加及び訂正遅延が解消できる。
【0021】
本実施形態の詳細説明
図2は、本実施形態の基本構成図である。
制御部201は、時間管理部201−1、接続情報部201−2、グループ管理情報部201−3、及び再送先リスト検索部201−4により構成される。
【0022】
制御部201は、受信制御部202、送信制御部203の起動、動作タイミングの制御や再送要求の制御を行う。
制御部201は、欠落パケットの再送要求が行われる際(受信制御部202から再送要求を受けた際)には、接続情報部201−2に保持されている送信元(親)端末に対して、再送要求を送信する(送信制御部203に依頼して送信を行う)。
【0023】
制御部201による再送要求の送信時には、グループ管理情報部201−3が、再送先リスト検索部201−4を使って同時に先送りする端末を検索し、その端末アドレスを再送要求に追加する。
【0024】
受信制御部202は、転送データ処理部202−1及び再送情報処理部202−2により構成される。
受信制御部202において、転送データ処理部202−1が、通信部206から受信した(読み出した)データを、転送データ記憶部205に書き込むと同時に、リオーダリングデータ記憶部204にも書き込む。転送データ処理部202−1は、リオーダリングデ
ータ記憶部204への書込みを実行する際には、転送データをシーケンスナンバー順に並び替える。
【0025】
再送情報処理部202−2は、リオーダリングデータ記憶部204に記憶されるデータの並びから、転送時に欠落したであろうパケット(のシーケンスナンバー)を検出し、制御部201に対して欠落パケットの再送要求を送る。
【0026】
また、再送情報処理部202−2は、先送りされた再送データを受信した際の処理も行う。即ち、再送情報処理部202−2は、先送りされた再送データを通常の転送データに変更し、そのシーケンスナンバーなどから転送順を判断し、その転送データを転送データ記憶部205とリオーダリングデータ記憶部204に書き込む。
【0027】
送信制御部203は、転送データ処理部203−1及び再送情報処理部203−2により構成される。
転送データ処理部203−1は、転送データ記憶部205に記憶されているデータを読み出し、そのデータの送信要求を通信部206に送る。
【0028】
再送情報処理部203−2は、制御部201から受けた再送要求を、通信部206に送る。
リオーダリングデータ記憶部204は、受信したデータをシーケンスナンバー順などの並び順で記憶する。
【0029】
転送データ記憶部205では、転送された順にデータの書込み及び読出しが行われる。
以上の構成により、パケット欠落時の再送処理として、パケット欠落の伝播が予測される下流端末グループ内の端末にも、再送元から直接再送パケットが送信(先送り)される制御が実施されることで、パケット欠落情報の伝播が抑止される。
【0030】
上記構成の本実施形態の動作について、以下に具体的に説明する。
本実施形態は、ALM(アプリケーションレイヤマルチキャスト)にて、端末が階層的にグループ化された配信経路における、パケット欠落時の再送処理に関するものである。配信経路上に配置される各端末の内部構成は全て、図2に示される同じ構成を有する。
【0031】
図2の制御部201において、接続情報部201−2には、自端末の接続情報が格納され、グループ管理情報部201−3には、グループ情報が格納される。接続情報とグループ情報を、図3の表1及び図4の表2に示す。
【0032】
図3表1の接続情報は、自端末にデータを送信する親端末のIP(インターネットプロトコル)アドレスと、自端末からデータを送信する子端末のIPアドレスとから構成される。
【0033】
また、図4表2のグループ情報は、自グループの情報(グループナンバーとグループ内で最初にデータを受信するサブルートとなる端末のIPアドレス)と子グループの情報(グループナンバーとグループ内で最初にデータを受信するサブルートとなる端末のIPアドレス)とから構成される。
【0034】
また、各端末は、データを転送するための転送バッファと、受信したデータをシーケンス番号順に並べ替えて入れる、リオーダリングバッファを持つ。パケットの欠落は、このリオーダリングバッファ内のデータがチェックされることにより判断される。図2のリオーダリングデータ記憶部204にリオーダリングバッファ、転送データ記憶部205に転送バッファがそれぞれ構成される。図5に転送バッファの構成を示す。転送データが1つの記憶単位とされ、そのデータ単位で書込みが行われるN段のリングバッファとしての構成を有する。
【0035】
次に、転送データのヘッダ情報を図6の表3に、ヘッダ情報として記述されるデータ種を図7の表4に示す。
ヘッダ情報にデータ種が付加されることにより、転送されたデータの種類を知ることが出来る。データの種類には、図7表4に示される通り、通常データ、再送データ、欠落情報などがあり、転送されてきたデータか再送されてきたデータかを判別することができる。また、或る端末においてパケットの欠落が発生し、その端末が再送要求をしている場合、その端末の下流に欠落したシーケンス番号を記した欠落情報を転送することで、下流端末は上流において欠落したデータを知ることができる。このことにより、自端末が再送要求を出す必要がなく、上流から再送データが転送されることを知ることが出来る。各端末は、受信制御部202内の再送情報処理部202−2に欠落情報リストを持ち、欠落情報を受けた場合にそのリストにその情報を追加する。欠落情報リストを図8の表5に示す。
【0036】
また、本実施形態では、再送データの先送りが行われる。各端末は、受信制御部202内の再送情報処理部202−2に先送り再送データリストを持ち、先送りされた再送データを受信した際にそのリストにその情報を追加する。先送り再送データリストを図9の表6に示す。
【0037】
以上の機能構成及びデータ構成に基づいて、パケット欠落の検知から再送までの処理について以下に説明する。
まず、転送データが受信された際の処理の流れを、図10に示す。なお、随時図2の各機能部を参照するものとする。
【0038】
転送データには、通常データ、再送データ、欠落情報の3種類があるが、転送データを受信後にデータ種をチェックし、データ種によって処理を分ける。
転送データ処理部202−1は、通信部206を介して転送データを受信する(ステップS1001)。
【0039】
転送データ処理部202−1は、転送データのデータ種をチェックする(ステップS1002)。
転送データ処理部202−1は、データ種が”通常データ“の場合は、再送情報処理部202−2及び制御部201と協調して、通常データの受信処理を実行する(ステップS1003−>S1004)。この動作の詳細は、図11の説明において後述する。この処理の後は、次の転送データの受信処理へ戻る(ステップS1004−>S1001)。
【0040】
転送データ処理部202−1は、データ種が”通常データ“でない場合には、更にデータ種が“再送データ”であるか否かをチェックする(ステップS1003−>S1005)。
【0041】
転送データ処理部202−1は、データ種が“再送データ”である場合には、再送情報処理部202−2に、再送データの受信処理を実行させる(ステップS1005−>S1006)。この動作の詳細は、図16の説明において後述する。この処理の後は、次の転送データの受信処理へ戻る(ステップS1006−>S1001)。
【0042】
転送データ処理部202−1は、データ種が”再送データ“でない場合には、更にデータ種が“欠落情報”であるか否かをチェックする(ステップS1005−>S1007)。
【0043】
転送データ処理部202−1は、データ種が“欠落情報”である場合には、再送情報処理部202−2に、欠落情報の受信処理を実行させる(ステップS1007−>S1008)。この動作の詳細は、図14の説明において後述する。この処理の後は、次の転送データの受信処理へ戻る(ステップS1008−>S1001)。
【0044】
転送データ処理部202−1は、データ種が“欠落情報”でない場合には、次の転送データの受信処理へ戻る(ステップS1007−>S1001)。
図11は、図10のステップS1004において転送データ処理部202−1及び再送情報処理部202−2が実行する、通常データの受信処理を示す動作フローチャートである。
【0045】
ここでは、転送データ処理部202−1は、通常データを受信し、転送バッファとリオーダリングバッファに書き込む。続いて、再送情報処理部202−2が、書込み以前のデータに欠落がないか判断し、欠落があった場合は制御部201に再送要求指示を行う。制御部201は、再送要求を、送信元である親端末に送信する。(再送要求の親端末への送信は、図1の端末Aに相当する。)
【0046】
以下、処理の流れに従って説明する。
転送データ処理部202−1は、受信した通常データを、転送データ記憶部205内の転送バッファ(図5参照)へ書き込む(ステップS1101)。
転送データ処理部202−1は、通常データを、リオーダリングデータ記憶部204内のリオーダリングバッファへ、シーケンスナンバーでソートした順番で書き込む(ステップS1102)。
【0047】
再送情報処理部202−2が、リオーダリングデータ記憶部204内のリオーダリングバッファのシーケンスナンバーに、欠落しているナンバーがあるか調べる(ステップS1103)。
【0048】
欠落しているナンバーがない場合、図10のステップS1004の通常データの受信処理を終了する(ステップS1103−>END)。
欠落しているナンバーがある場合、再送情報処理部202−2は、欠落しているシーケンスナンバーとリオーダリングデータ記憶部204内のリオーダリングバッファの最後尾のシーケンスナンバーの差が閾値以上であるか調べる(ステップS1104)。
【0049】
閾値以上でない場合には、図10のステップS1004の通常データの受信処理を終了する(ステップS1104−>END)。
閾値以上である場合は、再送情報処理部202−2は、欠落しているシーケンスナンバーが、自端末が保持する図8表5の欠落情報リストにあるか調べる(ステップS1105)。
【0050】
欠落シーケンスナンバーが欠落情報リストにある場合は、この端末の上流にてデータの欠落が発生し、この端末まで欠落情報が伝播してきており、後から再送データも上流から転送されると判断できるため、再送要求は行わないずに、図10のステップS1004の通常データの受信処理を終了する(ステップS1105−>END)。
【0051】
欠落シーケンスナンバーが欠落情報リストにない場合は、この端末への送信にて欠落が発生したと判断できるため、再送要求を行うために、再送情報処理部202−2が、欠落しているシーケンスナンバーの再送要求指示を制御部201に出す。制御部201は、再送先リスト検索部201−4及び接続情報部201−2を使って図3表1の接続情報を調べることにより、送信元である親端末への再送要求の送信指示を、送信制御部203内の
再送情報処理部203−2に送る。この時、制御部201は、再送先リスト検索部201−4及びグループ管理情報部201−3を使って図4表2のグループ情報にある子グループのサブルート端末のリストを生成し、先送り再送先リストとして送信する。再送情報処理部203−2は、制御部201から要求された再送要求を通信部206を介して送信する(以上、ステップS1106)。
【0052】
再送要求のデータ構造について説明する。まず、配信経路の端末間でやり取りするメッセージ(端末への接続要求、端末からの切断要求、再送要求など)のデータ構造を図12の表7に示す。また、表7のメッセージ種に入るデータを図13の表8に示す。
【0053】
また、表7の3〜5番のオプションデータとしては、メッセージにより必要となるデータが指定される。再送要求で指定されるオプションデータは、再送要求のシーケンスナンバーと先送り再送先リストとなる。表7の3番のオプションデータ種が“再送要求情報”とされ、5番のオプションデータに必要なデータが格納され、そのオプションデータ長が4番のオプションデータ長に格納される。
【0054】
従って、再送要求のデータ構造は、表7のメッセージ情報のメッセージ種に“再送要求”が格納されたデータであり、さらにオプション種には“再送要求情報”が格納され、オプションデータには、再送要求のシーケンスナンバーと先送り再送先リスト(同時再送先端末の端末数と端末のアドレスリスト)が格納される。オプションデータ長には、実際のオプションデータの長さ(バイト長)が格納される。
【0055】
この再送要求メッセージにより、再送要求を受信した端末は、後述するように、要求されたシーケンスナンバーのデータをオプションデータから読み出し、表7の2番のデータ送信元アドレスに再送を行うと同時に、オプションデータに指定された先送り再送先リストに含まれるIPアドレスの端末に再送を実施する。
【0056】
図11の動作フローチャートの処理に戻り、再送情報処理部202−2は、制御部201に再送要求したシーケンスナンバーを、自端末が保持する図8表5の欠落情報リストに登録する(ステップS1107)。
【0057】
再送情報処理部202−2は、再送要求したシーケンスナンバーと共に欠落情報の送信指示を制御部201に出す。制御部201は、再送先リスト検索部201−4及び接続情報部201−2を使って図3表1の接続情報を調べることにより、自端末よりも下流に位置する子端末に向けて、ヘッダ情報のデータ種として“欠落情報”が設定され(図6表3及び図7表4参照)、再送要求したシーケンスナンバーが格納された欠落情報の送信指示を、送信制御部203内の再送情報処理部203−2に送る。(以上、ステップS1108)。
【0058】
このように、下流に欠落情報が転送されることにより、上流で欠落が発生した事と後から再送データも下流に転送されることが、下流の子端末に通知される。
図14は、図10のステップS1008において転送データ処理部202−1及び再送情報処理部202−2が実行する、欠落情報の受信処理を示す動作フローチャートである。
【0059】
図1の例では、端末Aから欠落情報を転送される下流端末であるグループ1の端末と端末Bが実行する。
まず、再送情報処理部202−2が、欠落情報からシーケンスナンバーを取り出す(ステップS1401)。
【0060】
次に、再送情報処理部202−2は、上記シーケンスナンバーが、自端末が保持する図9表6の先送り再送データリスト中にあるか調べる(ステップS1402)。
上記シーケンスナンバーが先送り再送データリスト中にある場合は、既に先送りされた再送データを受信済であるため、欠落情報の転送は行わずに、図10のステップS1008の処理を終了する。これは、図1の端末Bでの処理に相当する。
【0061】
上記シーケンスナンバーが先送り再送データリスト中にない場合は、再送データは先送りされていないため、まず、再送情報処理部202−2は、上記シーケンスナンバーを自端末が保持する図8表5の欠落情報リストに登録する(ステップS1403)。
【0062】
次に、再送情報処理部202−2は、上記欠落情報を転送データ記憶部205内の転送バッファへ書き込み、子端末へ転送する。これは、図1のグループ1内の各端末での処理に相当する。
【0063】
次に、再送要求を受信した端末の処理の流れを、図15の動作フローチャートとして示す。これは、図1の端末Cでの処理に相当する。
まず、受信制御部202内の転送データ処理部202−1が、前述した図11のステップS1106の処理に基づいて下流端末から送信された再送要求を受信する(ステップS1501)。
【0064】
これにより、制御が、送信制御部203内の再送情報処理部203−2に移される。再送情報処理部203−2は、再送要求からシーケンス番号を取り出し、そのシーケンス番号を有するデータを転送データ記憶部205内の転送バッファ(図5参照)から検索する。
【0065】
再送情報処理部203−2は、ヘッダ情報のデータ種として“再送データ”が設定された再送データ(図6表3及び図7表4参照)を生成する(ステップS1503)。
再送情報処理部203−2は、通信部206を介して、再送要求を送信した端末に向けて、その端末のIPアドレスを宛先とする再送データを送信する(ステップS1504)。これは、図1の端末Cから端末Aに向けて再送データが送信される処理に相当する。
【0066】
再送情報処理部203−2は、通信部206を介して、再送要求に格納されている先送り再送先リストに含まれる各サブルート端末に向けて、各々のIPアドレスを宛先とする再送データを送信する(ステップS1505)。これは、端末Cから端末Bに再送データが先送りされる処理に相当する。
【0067】
図16は、図10のステップS1006において転送データ処理部202−1及び再送情報処理部202−2が実行する、再送データの受信処理を示す動作フローチャートである。
【0068】
端末が再送データを受信する場合は、以下の3通りがある。
ケース1:自端末が再送要求を出した場合、又は自端末が再送要求した端末のグループ内の端末であって欠落情報と再送データが転送されてきた場合。
ケース2:先送りにより自端末が再送データを受信する場合。
ケース3:自端末が、先送りにより再送データを受信した後に、更に上流端末から転送されてきた上記再送データを受信する場合。
【0069】
ケース1であるかケース2であるかは、欠落情報を受信済みかどうかで判断される。
欠落情報を受信済みの場合がケース1に相当する。受信後の動作としては、受信された再送データは下流に転送される(ステップS1605)。
【0070】
欠落情報を受信済みでない場合がケース2に相当する。受信後の動作としては、受信された再送データは図9表6の先送り再送データリストに登録される(ステップS1606)。その後通常データとして補填される(後述する図17の説明を参照)。
【0071】
ケース3は、先送り再送データリストに同じシーケンスナンバーのデータが入っているかどうかで判断される。リストに入っている場合がケース3に相当し、入っていない場合はケース1、2に相当する。受信後の動作としては、再送データは既に先送りされているため転送されずに、先送り再送データリストからこのシーケンスナンバーのデータが削除される(ステップS1603)。
【0072】
以下、処理の流れに従って説明する。
再送情報処理部202−2が、再送データからシーケンスナンバーを取り出す(ステップS1601)。
【0073】
再送情報処理部202−2が、上記シーケンスナンバーが自端末が保持する図9表6の先送り再送データリストにあるか否かを判定する(ステップS1602)。
上記シーケンスナンバーが先送り再送データリストにある場合には(上記ケース3に相当する)、先送り再送データを受信済みなので再送データの転送は行われず、再送情報処理部202−2が、自端末が保持する図9表6の先送り再送データリストから、上記シーケンスナンバーのデータを削除する(ステップS1602−>S1603)。
【0074】
上記シーケンスナンバーが先送り再送データリストにない場合には、再送情報処理部202−2は更に、上記シーケンスナンバーが自端末が保持する図8表5の欠落情報リストにあるか否かを判定する(ステップS1604)。
【0075】
上記シーケンスナンバーが欠落情報リストにある場合には(上記ケース1に相当する)、再送情報処理部202−2は、再送データを、転送データ記憶部205内の転送バッファに書き込んで子端末に転送すると共に、リオーダリングデータ記憶部204内のリオーダリングバッファにも書き込む。そして、再送情報処理部202−2は、自端末が保持する図8表5の欠落情報リストからこのシーケンスナンバーの情報を削除する(以上、ステップS1605)。
【0076】
上記シーケンスナンバーが欠落情報リストにない場合には(上記ケース2に相当する)、再送情報処理部202−2は、再送データを、自端末が保持する図9表6の先送り再送データリストに登録する(ステップS1606)。
【0077】
上記ステップS1603、S1605、又はS1606の処理の後、図10のステップS1006の再送データの受信処理を終了する。
最後に、先送りされた再送データの補填処理について、図17の動作フローチャートに基づいて説明する。
【0078】
図16のステップS1606にて先送りされた再送データが受信された場合、その再送データが自端末が保持する図9表6の先送り再送データリストに追加される。
この表6の先送り再送データリストに対して、以下の処理が実行される。この処理は、
転送データ処理部202−1が、図10のステップS1004の通常データの受信処理を行った後に、再送情報処理部202−2が毎回実行する。
【0079】
まず、再送情報処理部202−2は、受信されている通常データのシーケンスナンバーを取り出す(ステップS1701)。
次に、再送情報処理部202−2は、上記シーケンスナンバーより小さいシーケンスナンバーが自端末が保持する図9表6の先送り再送データリストにあり、かつ補填処理が未処理であるか否かが調べられる(ステップS1702)。なお、シーケンスナンバーが最大値まで到達してその次に最小値になった場合は、シーケンスナンバーの循環を考慮した判定が行われる。
【0080】
上記シーケンスナンバーより小さいシーケンスナンバーが先送り再送データリストにないか、又は補填処理が済んでいる場合には、再送情報処理部202−2は、そのまま図17の動作フローチャートの補填処理を終了する(ステップS1702−>END)。
【0081】
上記シーケンスナンバーより小さいシーケンスナンバーが先送り再送データリストにあり、かつ補填処理が未処理の場合には、再送情報処理部202−2は、先送り再送データリスト上で検索ヒットした各エントリから各先送り再送データのパケットを読出し、各パケットのデータ種(図6表3及び図7表4参照)を通常データに変更して転送データ記憶部205内の転送バッファに入れて子端末に転送し、またリオーダリングデータ記憶部204内のリオーダリングバッファにも書き込む。なお、これら2つのバッファへの書込みの位置は、現在処理中の通常データの書込みの位置よりも前の位置になるように制御される。これと共に、再送情報処理部202−2は、自端末が保持する図9表6の先送り再送データリストの該当する各エントリの補填処理項目に、処理済を示す情報を設定する(以上、ステップS1703)。
【0082】
このように、欠落したデータとして伝播してくる部分に、先送りした再送データを補填することで、その端末より下流の端末では、欠落情報と再送データの転送による再送処理を行う必要がなくなる。
【0083】
以上説明した実施形態において、図14や図16の動作フローチャートでは、欠落情報や再送データは、先送りが行われるグループの先頭の端末においてそれ以上伝搬しないように破棄されるように制御が行われるが、そのグループの直前のグループの末尾の端末において破棄されるように制御が行われてもよい。
【図面の簡単な説明】
【0084】
【図1】本実施形態における再送処理の動作原理を示す原理説明図である。
【図2】本実施形態の基本構成図である。
【図3】接続情報に関する表1を示す図である。
【図4】グループ情報に関する表2を示す図である。
【図5】転送バッファの構成図である。
【図6】転送データのヘッダ情報に関する表3を示す図である。
【図7】ヘッダ情報として記述されるデータ種に関する表4を示す図である。
【図8】欠落情報リストに関する表5を示す図である。
【図9】先送り再送データリストに関する表6を示す図である。
【図10】転送データが受信された際の処理の流れを示す動作フローチャートである。
【図11】通常データの受信処理の流れを示す動作フローチャートをである。
【図12】配信経路の端末間でやり取りするメッセージのデータ構造を示す図である。
【図13】メッセージ種に入るデータを示す図である。
【図14】欠落情報の受信処理の流れを示す動作フローチャートである。
【図15】再送要求を受信した端末の処理の流れを示す動作フローチャートである。
【図16】再送データの受信処理の流れを示す動作フローチャートである。
【図17】先送りされた再送データの補填処理の流れを示す動作フローチャートである。
【図18】従来技術の問題点の説明図(その1)である。
【図19】従来技術の問題点の説明図(その2)である。
【符号の説明】
【0085】
201 制御部
201−1 時間管理部
201−2 接続情報部
201−3 グループ管理情報部
201−4 再送先リスト検索部
202 受信制御部
202−1、203−1 転送データ処理部
202−2、203−2 再送情報処理部
203 送信制御部
204 リオーダリングデータ記憶部
205 転送データ記憶部
206 通信部
【技術分野】
【0001】
本発明は、マルチキャスト通信における、パケット欠落時のパケット再送制御技術に関する。
【背景技術】
【0002】
IP(インターネットプロトコル)網でのパケット欠落の再送処理(ARQ:Automatic Repeat reQuest)は、パケット欠落をACK(正常応答)やNACK(異常応答)の応答により判断し、欠落したパケットを再送する処理である。
【0003】
このARQがマルチキャスト通信やALM(アプリケーションレイヤマルチキャスト)に適用された場合、以下の問題が発生する。
即ち、欠落したパケットの訂正を待ちデータが揃ってから下流端末への転送が行われると、訂正遅延が発生する。図18に示されるように、上流での訂正遅延は下流に伝播し、欠落が発生する毎に遅延は加算され、下流の端末でバッファの破綻が発生する。
【0004】
従来技術1:上記訂正遅延を抑制するために、訂正(再送)処理中もパケットの転送を継続する従来技術が知られている。図19に、この従来技術による再送処理の概要を示す。この手法では、下流端末にパケットの欠落情報が伝播するため、伝播した各端末からの再送要求が抑制される。更に、再送パケットがマルチキャストされることにより、下流端末での訂正が行われる。
【0005】
従来技術2:下記特許文献1が開示するネットワークおよび通信装置は、ALMにおいて、親子関係および兄弟関係を持ち、ACKまたはNACKは兄(兄がいない場合は親)に送ることを特徴としている。これによりACKやNACKの応答やパケットの再送の集中がなく、トラフィックの増加が分散されため、葉の部分に位置する端末においてもバッファの破綻は発生しない。
【特許文献1】特開2007−228063号公報
【特許文献2】特開2004−318274号公報
【特許文献3】特開2004−199578号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかし、前述の従来技術1は、欠落情報の転送によるトラフィックの増加が発生するという問題点を有している。
また、前述の従来技術2は、親から葉への直接再送は行われないため、欠落したパケットの訂正遅延は大きくなる(親→兄→自となるため)。このためパケットの欠落が伝播し、訂正の遅延がさらに大きくなる場合があるという問題点を有している。
【0007】
以上のように、マルチキャスト通信における再送処理では、トラフィックの増加と訂正遅延が問題となるが、どちらも同時に軽減して解決した従来技術はなく、特にストリーミング配信においては、訂正遅延が大きくなると動画の崩れが発生するなどの問題点を有していた。
【課題を解決するための手段】
【0008】
本発明の課題は、トラフィックの増加と訂正遅延の問題を同時に解決することにある。
本発明は、配信経路上の端末装置が階層的にグループ化されたマルチキャスト配信システムにおけるパケット欠落時の再送制御を行う方法又は装置を前提とする。
【0009】
再送要求送信ステップ(図11)では、受信パケットの欠落を検出した第1の端末装置が、その第1の端末装置の上流に位置する第2の端末装置へ、第1の端末装置及びそれが属するグループよりも下流にあるグループ内で最初にパケットを受信する第3の端末装置へのパケット再送要求を送信する。
【0010】
再送パケット送信ステップ(図15)では、その再送要求を受信した第2の端末装置が、第1の端末装置及び第3の端末装置の両方に再送パケットを送信する。
上述の発明の構成において、更に、以下の欠落情報転送ステップと再送パケット転送ステップを含むように構成することができる。
【0011】
即ち、欠落情報転送ステップ(図14)では、第1の端末装置が、パケット欠落情報を、第1の端末装置の下流に位置する各端末装置に順次転送する。
そして、再送パケット転送ステップ(図16)では、第1の端末装置が、第2の端末装置から受信した再送パケットを、第1の端末装置の下流に位置する各端末装置に順次転送する。
【0012】
上述の発明の構成において、更に、以下の破棄ステップを含むように構成することができる。
即ち、破棄ステップ(図14、図16)では、第3の端末装置は、それが属するグループの上流のグループから転送されてきたパケット欠落情報及びそれに対応して転送されてきた再送パケットを破棄する。
【0013】
或いは、他の破棄ステップでは、第1の端末装置が属するグループでは、下流端末へ転送されるパケット欠落情報及び再送パケットを、そのグループ内の最終端末で破棄する。
ここまでの発明の構成において、第3の端末装置は、それが属するグループよりも上流のグループから受信した通常パケットに対して、第2の端末装置から受信した再送パケットを通常パケットとして補填して、第3の端末装置の下流に位置する端末装置に送信するパケット補填ステップを更に含むように構成することができる。
【0014】
グループ管理が行われ、パケットが欠落した場合、自端末への再送要求と、下流グループ端末への再送要求とが、同時に上流端末に送信される。
再送要求を受けた上流端末は、当該端末と要求を受けた下流にあるグループの端末両方に、再送パケットを送信する。
【0015】
上流グループからの再送パケットを受信した端末は、再送パケットによって通常パケットを補填することにより、パケットの欠落情報と再送パケットの転送を止め、下流端末へは通常のパケット転送とする。
【発明の効果】
【0016】
本発明によれば、パケットの欠落の伝播を抑止でき、従来技術におけるトラフィックの増加や訂正遅延は任意のグループ内に留まらせることが可能となり、その下流端末におけるトラフィックの増加と訂正遅延を解消することが可能となる。
【発明を実施するための最良の形態】
【0017】
以下、図面を参照しながら、本発明を実施するための最良の形態を詳細に説明する。
本実施形態の原理説明
以下に説明する実施形態では、配信経路の端末(ノード)が階層的にグループ化されたマルチキャスト配信システムにおいて、パケット欠落時の再送処理として、パケット欠落情報の伝播が予測される下流端末グループ内の端末にも、再送元から直接再送パケットが
送信(先送り)されるように制御されることで、パケット欠落の伝播が抑止される。
【0018】
本実施形態における再送処理の動作原理について、図1の原理説明図に基づいて説明する。
パケット欠落時の再送処理を以下に示す。
【0019】
ステップ1:端末Cから端末Aへの転送において、パケット欠落が発生する。
ステップ2:端末Aから端末Cに、再送要求が送信される。再送要求において、同時送信先リストとして端末Bアドレスが送信される。
ステップ3:端末Aからグループ内下流に、パケット欠落情報が転送される。
ステップ4:端末Cから端末Aへ、パケットが再送される。端末Aは、受信した再送パケットをマルチキャストする。
ステップ5:端末Cから端末Bへ、パケットが再送される。
ステップ6:端末Bは、受信した再送パケットを、通常の転送パケットとして欠落場所に補填し、その後そのパケットをマルチキャストする。
【0020】
以上の動作により、グループ3では、転送データ“2”の欠落情報の転送が不必要となり、トラフィックの増加及び訂正遅延が解消できる。
【0021】
本実施形態の詳細説明
図2は、本実施形態の基本構成図である。
制御部201は、時間管理部201−1、接続情報部201−2、グループ管理情報部201−3、及び再送先リスト検索部201−4により構成される。
【0022】
制御部201は、受信制御部202、送信制御部203の起動、動作タイミングの制御や再送要求の制御を行う。
制御部201は、欠落パケットの再送要求が行われる際(受信制御部202から再送要求を受けた際)には、接続情報部201−2に保持されている送信元(親)端末に対して、再送要求を送信する(送信制御部203に依頼して送信を行う)。
【0023】
制御部201による再送要求の送信時には、グループ管理情報部201−3が、再送先リスト検索部201−4を使って同時に先送りする端末を検索し、その端末アドレスを再送要求に追加する。
【0024】
受信制御部202は、転送データ処理部202−1及び再送情報処理部202−2により構成される。
受信制御部202において、転送データ処理部202−1が、通信部206から受信した(読み出した)データを、転送データ記憶部205に書き込むと同時に、リオーダリングデータ記憶部204にも書き込む。転送データ処理部202−1は、リオーダリングデ
ータ記憶部204への書込みを実行する際には、転送データをシーケンスナンバー順に並び替える。
【0025】
再送情報処理部202−2は、リオーダリングデータ記憶部204に記憶されるデータの並びから、転送時に欠落したであろうパケット(のシーケンスナンバー)を検出し、制御部201に対して欠落パケットの再送要求を送る。
【0026】
また、再送情報処理部202−2は、先送りされた再送データを受信した際の処理も行う。即ち、再送情報処理部202−2は、先送りされた再送データを通常の転送データに変更し、そのシーケンスナンバーなどから転送順を判断し、その転送データを転送データ記憶部205とリオーダリングデータ記憶部204に書き込む。
【0027】
送信制御部203は、転送データ処理部203−1及び再送情報処理部203−2により構成される。
転送データ処理部203−1は、転送データ記憶部205に記憶されているデータを読み出し、そのデータの送信要求を通信部206に送る。
【0028】
再送情報処理部203−2は、制御部201から受けた再送要求を、通信部206に送る。
リオーダリングデータ記憶部204は、受信したデータをシーケンスナンバー順などの並び順で記憶する。
【0029】
転送データ記憶部205では、転送された順にデータの書込み及び読出しが行われる。
以上の構成により、パケット欠落時の再送処理として、パケット欠落の伝播が予測される下流端末グループ内の端末にも、再送元から直接再送パケットが送信(先送り)される制御が実施されることで、パケット欠落情報の伝播が抑止される。
【0030】
上記構成の本実施形態の動作について、以下に具体的に説明する。
本実施形態は、ALM(アプリケーションレイヤマルチキャスト)にて、端末が階層的にグループ化された配信経路における、パケット欠落時の再送処理に関するものである。配信経路上に配置される各端末の内部構成は全て、図2に示される同じ構成を有する。
【0031】
図2の制御部201において、接続情報部201−2には、自端末の接続情報が格納され、グループ管理情報部201−3には、グループ情報が格納される。接続情報とグループ情報を、図3の表1及び図4の表2に示す。
【0032】
図3表1の接続情報は、自端末にデータを送信する親端末のIP(インターネットプロトコル)アドレスと、自端末からデータを送信する子端末のIPアドレスとから構成される。
【0033】
また、図4表2のグループ情報は、自グループの情報(グループナンバーとグループ内で最初にデータを受信するサブルートとなる端末のIPアドレス)と子グループの情報(グループナンバーとグループ内で最初にデータを受信するサブルートとなる端末のIPアドレス)とから構成される。
【0034】
また、各端末は、データを転送するための転送バッファと、受信したデータをシーケンス番号順に並べ替えて入れる、リオーダリングバッファを持つ。パケットの欠落は、このリオーダリングバッファ内のデータがチェックされることにより判断される。図2のリオーダリングデータ記憶部204にリオーダリングバッファ、転送データ記憶部205に転送バッファがそれぞれ構成される。図5に転送バッファの構成を示す。転送データが1つの記憶単位とされ、そのデータ単位で書込みが行われるN段のリングバッファとしての構成を有する。
【0035】
次に、転送データのヘッダ情報を図6の表3に、ヘッダ情報として記述されるデータ種を図7の表4に示す。
ヘッダ情報にデータ種が付加されることにより、転送されたデータの種類を知ることが出来る。データの種類には、図7表4に示される通り、通常データ、再送データ、欠落情報などがあり、転送されてきたデータか再送されてきたデータかを判別することができる。また、或る端末においてパケットの欠落が発生し、その端末が再送要求をしている場合、その端末の下流に欠落したシーケンス番号を記した欠落情報を転送することで、下流端末は上流において欠落したデータを知ることができる。このことにより、自端末が再送要求を出す必要がなく、上流から再送データが転送されることを知ることが出来る。各端末は、受信制御部202内の再送情報処理部202−2に欠落情報リストを持ち、欠落情報を受けた場合にそのリストにその情報を追加する。欠落情報リストを図8の表5に示す。
【0036】
また、本実施形態では、再送データの先送りが行われる。各端末は、受信制御部202内の再送情報処理部202−2に先送り再送データリストを持ち、先送りされた再送データを受信した際にそのリストにその情報を追加する。先送り再送データリストを図9の表6に示す。
【0037】
以上の機能構成及びデータ構成に基づいて、パケット欠落の検知から再送までの処理について以下に説明する。
まず、転送データが受信された際の処理の流れを、図10に示す。なお、随時図2の各機能部を参照するものとする。
【0038】
転送データには、通常データ、再送データ、欠落情報の3種類があるが、転送データを受信後にデータ種をチェックし、データ種によって処理を分ける。
転送データ処理部202−1は、通信部206を介して転送データを受信する(ステップS1001)。
【0039】
転送データ処理部202−1は、転送データのデータ種をチェックする(ステップS1002)。
転送データ処理部202−1は、データ種が”通常データ“の場合は、再送情報処理部202−2及び制御部201と協調して、通常データの受信処理を実行する(ステップS1003−>S1004)。この動作の詳細は、図11の説明において後述する。この処理の後は、次の転送データの受信処理へ戻る(ステップS1004−>S1001)。
【0040】
転送データ処理部202−1は、データ種が”通常データ“でない場合には、更にデータ種が“再送データ”であるか否かをチェックする(ステップS1003−>S1005)。
【0041】
転送データ処理部202−1は、データ種が“再送データ”である場合には、再送情報処理部202−2に、再送データの受信処理を実行させる(ステップS1005−>S1006)。この動作の詳細は、図16の説明において後述する。この処理の後は、次の転送データの受信処理へ戻る(ステップS1006−>S1001)。
【0042】
転送データ処理部202−1は、データ種が”再送データ“でない場合には、更にデータ種が“欠落情報”であるか否かをチェックする(ステップS1005−>S1007)。
【0043】
転送データ処理部202−1は、データ種が“欠落情報”である場合には、再送情報処理部202−2に、欠落情報の受信処理を実行させる(ステップS1007−>S1008)。この動作の詳細は、図14の説明において後述する。この処理の後は、次の転送データの受信処理へ戻る(ステップS1008−>S1001)。
【0044】
転送データ処理部202−1は、データ種が“欠落情報”でない場合には、次の転送データの受信処理へ戻る(ステップS1007−>S1001)。
図11は、図10のステップS1004において転送データ処理部202−1及び再送情報処理部202−2が実行する、通常データの受信処理を示す動作フローチャートである。
【0045】
ここでは、転送データ処理部202−1は、通常データを受信し、転送バッファとリオーダリングバッファに書き込む。続いて、再送情報処理部202−2が、書込み以前のデータに欠落がないか判断し、欠落があった場合は制御部201に再送要求指示を行う。制御部201は、再送要求を、送信元である親端末に送信する。(再送要求の親端末への送信は、図1の端末Aに相当する。)
【0046】
以下、処理の流れに従って説明する。
転送データ処理部202−1は、受信した通常データを、転送データ記憶部205内の転送バッファ(図5参照)へ書き込む(ステップS1101)。
転送データ処理部202−1は、通常データを、リオーダリングデータ記憶部204内のリオーダリングバッファへ、シーケンスナンバーでソートした順番で書き込む(ステップS1102)。
【0047】
再送情報処理部202−2が、リオーダリングデータ記憶部204内のリオーダリングバッファのシーケンスナンバーに、欠落しているナンバーがあるか調べる(ステップS1103)。
【0048】
欠落しているナンバーがない場合、図10のステップS1004の通常データの受信処理を終了する(ステップS1103−>END)。
欠落しているナンバーがある場合、再送情報処理部202−2は、欠落しているシーケンスナンバーとリオーダリングデータ記憶部204内のリオーダリングバッファの最後尾のシーケンスナンバーの差が閾値以上であるか調べる(ステップS1104)。
【0049】
閾値以上でない場合には、図10のステップS1004の通常データの受信処理を終了する(ステップS1104−>END)。
閾値以上である場合は、再送情報処理部202−2は、欠落しているシーケンスナンバーが、自端末が保持する図8表5の欠落情報リストにあるか調べる(ステップS1105)。
【0050】
欠落シーケンスナンバーが欠落情報リストにある場合は、この端末の上流にてデータの欠落が発生し、この端末まで欠落情報が伝播してきており、後から再送データも上流から転送されると判断できるため、再送要求は行わないずに、図10のステップS1004の通常データの受信処理を終了する(ステップS1105−>END)。
【0051】
欠落シーケンスナンバーが欠落情報リストにない場合は、この端末への送信にて欠落が発生したと判断できるため、再送要求を行うために、再送情報処理部202−2が、欠落しているシーケンスナンバーの再送要求指示を制御部201に出す。制御部201は、再送先リスト検索部201−4及び接続情報部201−2を使って図3表1の接続情報を調べることにより、送信元である親端末への再送要求の送信指示を、送信制御部203内の
再送情報処理部203−2に送る。この時、制御部201は、再送先リスト検索部201−4及びグループ管理情報部201−3を使って図4表2のグループ情報にある子グループのサブルート端末のリストを生成し、先送り再送先リストとして送信する。再送情報処理部203−2は、制御部201から要求された再送要求を通信部206を介して送信する(以上、ステップS1106)。
【0052】
再送要求のデータ構造について説明する。まず、配信経路の端末間でやり取りするメッセージ(端末への接続要求、端末からの切断要求、再送要求など)のデータ構造を図12の表7に示す。また、表7のメッセージ種に入るデータを図13の表8に示す。
【0053】
また、表7の3〜5番のオプションデータとしては、メッセージにより必要となるデータが指定される。再送要求で指定されるオプションデータは、再送要求のシーケンスナンバーと先送り再送先リストとなる。表7の3番のオプションデータ種が“再送要求情報”とされ、5番のオプションデータに必要なデータが格納され、そのオプションデータ長が4番のオプションデータ長に格納される。
【0054】
従って、再送要求のデータ構造は、表7のメッセージ情報のメッセージ種に“再送要求”が格納されたデータであり、さらにオプション種には“再送要求情報”が格納され、オプションデータには、再送要求のシーケンスナンバーと先送り再送先リスト(同時再送先端末の端末数と端末のアドレスリスト)が格納される。オプションデータ長には、実際のオプションデータの長さ(バイト長)が格納される。
【0055】
この再送要求メッセージにより、再送要求を受信した端末は、後述するように、要求されたシーケンスナンバーのデータをオプションデータから読み出し、表7の2番のデータ送信元アドレスに再送を行うと同時に、オプションデータに指定された先送り再送先リストに含まれるIPアドレスの端末に再送を実施する。
【0056】
図11の動作フローチャートの処理に戻り、再送情報処理部202−2は、制御部201に再送要求したシーケンスナンバーを、自端末が保持する図8表5の欠落情報リストに登録する(ステップS1107)。
【0057】
再送情報処理部202−2は、再送要求したシーケンスナンバーと共に欠落情報の送信指示を制御部201に出す。制御部201は、再送先リスト検索部201−4及び接続情報部201−2を使って図3表1の接続情報を調べることにより、自端末よりも下流に位置する子端末に向けて、ヘッダ情報のデータ種として“欠落情報”が設定され(図6表3及び図7表4参照)、再送要求したシーケンスナンバーが格納された欠落情報の送信指示を、送信制御部203内の再送情報処理部203−2に送る。(以上、ステップS1108)。
【0058】
このように、下流に欠落情報が転送されることにより、上流で欠落が発生した事と後から再送データも下流に転送されることが、下流の子端末に通知される。
図14は、図10のステップS1008において転送データ処理部202−1及び再送情報処理部202−2が実行する、欠落情報の受信処理を示す動作フローチャートである。
【0059】
図1の例では、端末Aから欠落情報を転送される下流端末であるグループ1の端末と端末Bが実行する。
まず、再送情報処理部202−2が、欠落情報からシーケンスナンバーを取り出す(ステップS1401)。
【0060】
次に、再送情報処理部202−2は、上記シーケンスナンバーが、自端末が保持する図9表6の先送り再送データリスト中にあるか調べる(ステップS1402)。
上記シーケンスナンバーが先送り再送データリスト中にある場合は、既に先送りされた再送データを受信済であるため、欠落情報の転送は行わずに、図10のステップS1008の処理を終了する。これは、図1の端末Bでの処理に相当する。
【0061】
上記シーケンスナンバーが先送り再送データリスト中にない場合は、再送データは先送りされていないため、まず、再送情報処理部202−2は、上記シーケンスナンバーを自端末が保持する図8表5の欠落情報リストに登録する(ステップS1403)。
【0062】
次に、再送情報処理部202−2は、上記欠落情報を転送データ記憶部205内の転送バッファへ書き込み、子端末へ転送する。これは、図1のグループ1内の各端末での処理に相当する。
【0063】
次に、再送要求を受信した端末の処理の流れを、図15の動作フローチャートとして示す。これは、図1の端末Cでの処理に相当する。
まず、受信制御部202内の転送データ処理部202−1が、前述した図11のステップS1106の処理に基づいて下流端末から送信された再送要求を受信する(ステップS1501)。
【0064】
これにより、制御が、送信制御部203内の再送情報処理部203−2に移される。再送情報処理部203−2は、再送要求からシーケンス番号を取り出し、そのシーケンス番号を有するデータを転送データ記憶部205内の転送バッファ(図5参照)から検索する。
【0065】
再送情報処理部203−2は、ヘッダ情報のデータ種として“再送データ”が設定された再送データ(図6表3及び図7表4参照)を生成する(ステップS1503)。
再送情報処理部203−2は、通信部206を介して、再送要求を送信した端末に向けて、その端末のIPアドレスを宛先とする再送データを送信する(ステップS1504)。これは、図1の端末Cから端末Aに向けて再送データが送信される処理に相当する。
【0066】
再送情報処理部203−2は、通信部206を介して、再送要求に格納されている先送り再送先リストに含まれる各サブルート端末に向けて、各々のIPアドレスを宛先とする再送データを送信する(ステップS1505)。これは、端末Cから端末Bに再送データが先送りされる処理に相当する。
【0067】
図16は、図10のステップS1006において転送データ処理部202−1及び再送情報処理部202−2が実行する、再送データの受信処理を示す動作フローチャートである。
【0068】
端末が再送データを受信する場合は、以下の3通りがある。
ケース1:自端末が再送要求を出した場合、又は自端末が再送要求した端末のグループ内の端末であって欠落情報と再送データが転送されてきた場合。
ケース2:先送りにより自端末が再送データを受信する場合。
ケース3:自端末が、先送りにより再送データを受信した後に、更に上流端末から転送されてきた上記再送データを受信する場合。
【0069】
ケース1であるかケース2であるかは、欠落情報を受信済みかどうかで判断される。
欠落情報を受信済みの場合がケース1に相当する。受信後の動作としては、受信された再送データは下流に転送される(ステップS1605)。
【0070】
欠落情報を受信済みでない場合がケース2に相当する。受信後の動作としては、受信された再送データは図9表6の先送り再送データリストに登録される(ステップS1606)。その後通常データとして補填される(後述する図17の説明を参照)。
【0071】
ケース3は、先送り再送データリストに同じシーケンスナンバーのデータが入っているかどうかで判断される。リストに入っている場合がケース3に相当し、入っていない場合はケース1、2に相当する。受信後の動作としては、再送データは既に先送りされているため転送されずに、先送り再送データリストからこのシーケンスナンバーのデータが削除される(ステップS1603)。
【0072】
以下、処理の流れに従って説明する。
再送情報処理部202−2が、再送データからシーケンスナンバーを取り出す(ステップS1601)。
【0073】
再送情報処理部202−2が、上記シーケンスナンバーが自端末が保持する図9表6の先送り再送データリストにあるか否かを判定する(ステップS1602)。
上記シーケンスナンバーが先送り再送データリストにある場合には(上記ケース3に相当する)、先送り再送データを受信済みなので再送データの転送は行われず、再送情報処理部202−2が、自端末が保持する図9表6の先送り再送データリストから、上記シーケンスナンバーのデータを削除する(ステップS1602−>S1603)。
【0074】
上記シーケンスナンバーが先送り再送データリストにない場合には、再送情報処理部202−2は更に、上記シーケンスナンバーが自端末が保持する図8表5の欠落情報リストにあるか否かを判定する(ステップS1604)。
【0075】
上記シーケンスナンバーが欠落情報リストにある場合には(上記ケース1に相当する)、再送情報処理部202−2は、再送データを、転送データ記憶部205内の転送バッファに書き込んで子端末に転送すると共に、リオーダリングデータ記憶部204内のリオーダリングバッファにも書き込む。そして、再送情報処理部202−2は、自端末が保持する図8表5の欠落情報リストからこのシーケンスナンバーの情報を削除する(以上、ステップS1605)。
【0076】
上記シーケンスナンバーが欠落情報リストにない場合には(上記ケース2に相当する)、再送情報処理部202−2は、再送データを、自端末が保持する図9表6の先送り再送データリストに登録する(ステップS1606)。
【0077】
上記ステップS1603、S1605、又はS1606の処理の後、図10のステップS1006の再送データの受信処理を終了する。
最後に、先送りされた再送データの補填処理について、図17の動作フローチャートに基づいて説明する。
【0078】
図16のステップS1606にて先送りされた再送データが受信された場合、その再送データが自端末が保持する図9表6の先送り再送データリストに追加される。
この表6の先送り再送データリストに対して、以下の処理が実行される。この処理は、
転送データ処理部202−1が、図10のステップS1004の通常データの受信処理を行った後に、再送情報処理部202−2が毎回実行する。
【0079】
まず、再送情報処理部202−2は、受信されている通常データのシーケンスナンバーを取り出す(ステップS1701)。
次に、再送情報処理部202−2は、上記シーケンスナンバーより小さいシーケンスナンバーが自端末が保持する図9表6の先送り再送データリストにあり、かつ補填処理が未処理であるか否かが調べられる(ステップS1702)。なお、シーケンスナンバーが最大値まで到達してその次に最小値になった場合は、シーケンスナンバーの循環を考慮した判定が行われる。
【0080】
上記シーケンスナンバーより小さいシーケンスナンバーが先送り再送データリストにないか、又は補填処理が済んでいる場合には、再送情報処理部202−2は、そのまま図17の動作フローチャートの補填処理を終了する(ステップS1702−>END)。
【0081】
上記シーケンスナンバーより小さいシーケンスナンバーが先送り再送データリストにあり、かつ補填処理が未処理の場合には、再送情報処理部202−2は、先送り再送データリスト上で検索ヒットした各エントリから各先送り再送データのパケットを読出し、各パケットのデータ種(図6表3及び図7表4参照)を通常データに変更して転送データ記憶部205内の転送バッファに入れて子端末に転送し、またリオーダリングデータ記憶部204内のリオーダリングバッファにも書き込む。なお、これら2つのバッファへの書込みの位置は、現在処理中の通常データの書込みの位置よりも前の位置になるように制御される。これと共に、再送情報処理部202−2は、自端末が保持する図9表6の先送り再送データリストの該当する各エントリの補填処理項目に、処理済を示す情報を設定する(以上、ステップS1703)。
【0082】
このように、欠落したデータとして伝播してくる部分に、先送りした再送データを補填することで、その端末より下流の端末では、欠落情報と再送データの転送による再送処理を行う必要がなくなる。
【0083】
以上説明した実施形態において、図14や図16の動作フローチャートでは、欠落情報や再送データは、先送りが行われるグループの先頭の端末においてそれ以上伝搬しないように破棄されるように制御が行われるが、そのグループの直前のグループの末尾の端末において破棄されるように制御が行われてもよい。
【図面の簡単な説明】
【0084】
【図1】本実施形態における再送処理の動作原理を示す原理説明図である。
【図2】本実施形態の基本構成図である。
【図3】接続情報に関する表1を示す図である。
【図4】グループ情報に関する表2を示す図である。
【図5】転送バッファの構成図である。
【図6】転送データのヘッダ情報に関する表3を示す図である。
【図7】ヘッダ情報として記述されるデータ種に関する表4を示す図である。
【図8】欠落情報リストに関する表5を示す図である。
【図9】先送り再送データリストに関する表6を示す図である。
【図10】転送データが受信された際の処理の流れを示す動作フローチャートである。
【図11】通常データの受信処理の流れを示す動作フローチャートをである。
【図12】配信経路の端末間でやり取りするメッセージのデータ構造を示す図である。
【図13】メッセージ種に入るデータを示す図である。
【図14】欠落情報の受信処理の流れを示す動作フローチャートである。
【図15】再送要求を受信した端末の処理の流れを示す動作フローチャートである。
【図16】再送データの受信処理の流れを示す動作フローチャートである。
【図17】先送りされた再送データの補填処理の流れを示す動作フローチャートである。
【図18】従来技術の問題点の説明図(その1)である。
【図19】従来技術の問題点の説明図(その2)である。
【符号の説明】
【0085】
201 制御部
201−1 時間管理部
201−2 接続情報部
201−3 グループ管理情報部
201−4 再送先リスト検索部
202 受信制御部
202−1、203−1 転送データ処理部
202−2、203−2 再送情報処理部
203 送信制御部
204 リオーダリングデータ記憶部
205 転送データ記憶部
206 通信部
【特許請求の範囲】
【請求項1】
配信経路上の端末装置が階層的にグループ化されたマルチキャスト配信システムにおけるパケット欠落時の再送制御を行う方法であって、
受信パケットの欠落を検出した第1の端末装置が、該第1の端末装置の上流に位置する第2の端末装置へ、前記第1の端末装置及びそれが属するグループよりも下流にあるグループ内で最初にパケットを受信する第3の端末装置へのパケット再送要求を送信する再送要求送信ステップと、
該再送要求を受信した前記第2の端末装置が、前記第1の端末装置及び前記第3の端末装置の両方に再送パケットを送信する再送パケット送信ステップと、
を含むことを特徴とするマルチキャスト通信におけるパケット再送制御方法。
【請求項2】
前記第1の端末装置が、パケット欠落情報を、前記第1の端末装置の下流に位置する各端末装置に順次転送する欠落情報転送ステップと、
前記第1の端末装置が、前記第2の端末装置から受信した再送パケットを、前記第1の端末装置の下流に位置する各端末装置に順次転送する再送パケット転送ステップと、
を更に含むことを特徴とする請求項1に記載のマルチキャスト通信におけるパケット再送制御方法。
【請求項3】
前記第3の端末装置は、それが属するグループの上流のグループから転送されてきたパケット欠落情報及びそれに対応して転送されてきた前記再送パケットを破棄する破棄ステップを更に含む、
ことを特徴とする請求項2に記載のマルチキャスト通信におけるパケット再送制御方法。
【請求項4】
前記第1の端末装置が属するグループでは、下流端末へ転送されるパケット欠落情報及び再送パケットを、該グループ内の最終端末で破棄する破棄ステップを更に含む、
ことを特徴とする請求項2に記載のマルチキャスト通信におけるパケット再送制御方法。
【請求項5】
前記第3の端末装置は、それが属するグループよりも上流のグループから受信した通常パケットに対して、前記第2の端末装置から受信した前記再送パケットを通常パケットとして補填して、前記第3の端末装置の下流に位置する端末装置に送信するパケット補填ステップを更に含む、
ことを特徴とする請求項1乃至4の何れか1項に記載のマルチキャスト通信におけるパケット再送制御方法。
【請求項6】
配信経路上の端末装置が階層的にグループ化されたマルチキャスト配信システムにおけるパケット欠落時の再送制御を行う装置であって、
受信パケットの欠落を検出したときに、自端末装置の上流に位置する端末装置へ、自端末装置及びそれが属するグループよりも下流にあるグループ内で最初にパケットを受信する端末装置へのパケット再送要求を送信する再送要求送信手段と、
該再送要求を受信したときに、該再送要求によって要求されている各端末装置に再送パケットを送信する再送パケット送信手段と、
を含むことを特徴とするマルチキャスト通信におけるパケット再送制御装置。
【請求項1】
配信経路上の端末装置が階層的にグループ化されたマルチキャスト配信システムにおけるパケット欠落時の再送制御を行う方法であって、
受信パケットの欠落を検出した第1の端末装置が、該第1の端末装置の上流に位置する第2の端末装置へ、前記第1の端末装置及びそれが属するグループよりも下流にあるグループ内で最初にパケットを受信する第3の端末装置へのパケット再送要求を送信する再送要求送信ステップと、
該再送要求を受信した前記第2の端末装置が、前記第1の端末装置及び前記第3の端末装置の両方に再送パケットを送信する再送パケット送信ステップと、
を含むことを特徴とするマルチキャスト通信におけるパケット再送制御方法。
【請求項2】
前記第1の端末装置が、パケット欠落情報を、前記第1の端末装置の下流に位置する各端末装置に順次転送する欠落情報転送ステップと、
前記第1の端末装置が、前記第2の端末装置から受信した再送パケットを、前記第1の端末装置の下流に位置する各端末装置に順次転送する再送パケット転送ステップと、
を更に含むことを特徴とする請求項1に記載のマルチキャスト通信におけるパケット再送制御方法。
【請求項3】
前記第3の端末装置は、それが属するグループの上流のグループから転送されてきたパケット欠落情報及びそれに対応して転送されてきた前記再送パケットを破棄する破棄ステップを更に含む、
ことを特徴とする請求項2に記載のマルチキャスト通信におけるパケット再送制御方法。
【請求項4】
前記第1の端末装置が属するグループでは、下流端末へ転送されるパケット欠落情報及び再送パケットを、該グループ内の最終端末で破棄する破棄ステップを更に含む、
ことを特徴とする請求項2に記載のマルチキャスト通信におけるパケット再送制御方法。
【請求項5】
前記第3の端末装置は、それが属するグループよりも上流のグループから受信した通常パケットに対して、前記第2の端末装置から受信した前記再送パケットを通常パケットとして補填して、前記第3の端末装置の下流に位置する端末装置に送信するパケット補填ステップを更に含む、
ことを特徴とする請求項1乃至4の何れか1項に記載のマルチキャスト通信におけるパケット再送制御方法。
【請求項6】
配信経路上の端末装置が階層的にグループ化されたマルチキャスト配信システムにおけるパケット欠落時の再送制御を行う装置であって、
受信パケットの欠落を検出したときに、自端末装置の上流に位置する端末装置へ、自端末装置及びそれが属するグループよりも下流にあるグループ内で最初にパケットを受信する端末装置へのパケット再送要求を送信する再送要求送信手段と、
該再送要求を受信したときに、該再送要求によって要求されている各端末装置に再送パケットを送信する再送パケット送信手段と、
を含むことを特徴とするマルチキャスト通信におけるパケット再送制御装置。
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図1】
【図18】
【図19】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図1】
【図18】
【図19】
【公開番号】特開2010−74595(P2010−74595A)
【公開日】平成22年4月2日(2010.4.2)
【国際特許分類】
【出願番号】特願2008−240564(P2008−240564)
【出願日】平成20年9月19日(2008.9.19)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成22年4月2日(2010.4.2)
【国際特許分類】
【出願日】平成20年9月19日(2008.9.19)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]