(57)【要約】【課題】再送パケットの無駄な重複送信を防ぐ。【解決手段】データ送信装置は、受信した再送要求情報がロスパケットの１回目の再送要求に係るものである場合、再送パケットを送信する（ST13,ST14）。２回目以降の再送要求に係るものである場合、データ送信装置は、再送要求情報に含まれる最新受信パケット情報に基づいて、送信情報記憶部から最新受信パケットの送信時刻を取得し(ST17)、この送信時刻と現時刻との差をとって最新遅延時間を算出する(ST17)。そして、データ送信装置は、ロスパケットの最新再送時刻から現時刻まで最新遅延時間以上経過している場合だけ、再送パケットを送信する(ST18,ST14)。ロスパケットの最新再送時刻から現時刻まで最新遅延時間以上経過していない場合、受信した再送要求情報は、データ受信装置がロスしていない再送パケットの到着前に、定期的に計測されている伝送往復遅延時間に基づいて送信したものである可能性が大きい。【選択図】図８
2008141633.tif 000002
【特許請求の範囲】
【請求項１】
データ送信装置およびデータ受信装置からなり、パケット化されたストリーミングデータを伝送するデータ通信システムであって、
上記データ受信装置は、
上記データ送信装置から送信されてくる上記ストリーミングデータのパケットを受信するパケット受信部と、
上記パケット受信部で受信された上記ストリーミングデータのパケットを解析して該ストリーミングデータを再構成するデパケタイザと、
上記パケット受信部で受信された上記ストリーミングデータのパケットに基づいて、ロスしたパケットを検出するパケットロス検出部と、
上記パケットロス検出部で検出されたロスパケットの情報および上記パケット受信部で受信された最新受信パケットの情報を含む再送要求情報を生成する再送要求生成部と、
上記再送要求生成部で生成された上記再送要求情報を上記送信装置に送信する再送要求送信部とを備え、
上記データ送信装置は、
上記ストリーミングデータをパケット化するパケタイザと、
上記パケタイザで生成された上記ストリーミングデータのパケットを上記データ受信装置に送信するパケット送信部と、
上記パケット送信部で送信される各パケットの少なくとも送信時刻を含む送信情報を記憶する送信情報記憶部と、
上記データ受信装置から送られてくる上記再送要求情報を受信する再送要求受信部と、
上記再送要求受信部で受信された上記再送要求情報に含まれる上記最新受信パケット情報に基づいて上記送信情報記憶部から上記最新受信パケットの送信時刻を取得し、該送信時刻と現時刻との差を取って最新の遅延時間を算出する遅延時間算出部と、
上記ロスパケットの再送制御を行うパケット再送制御部とを備え、
上記パケット再送制御部は、
上記再送要求受信部で受信された上記再送要求情報が、該再送要求情報に含まれるロスパケット情報で示されるロスパケットの１回目の再送要求に係るものであるとき、上記ロスパケットの送信時刻から現時刻までの時間によらず、該ロスパケットを上記データ受信装置に送信するように上記パケット送信部を制御し、
上記再送要求受信部で受信された上記再送要求情報が、該再送要求情報に含まれるロスパケット情報で示されるロスパケットの２回目以降の再送要求に係るものであるとき、上記再送要求情報に含まれる上記ロスパケット情報に基づいて上記送信情報記憶部から上記ロスパケットの最新再送時刻を取得し、該最新再送時刻から現時刻まで上記遅延時間算出部で算出された上記最新遅延時間以上経過している場合、上記ロスパケットを上記データ受信装置に送信するように上記パケット送信部を制御する
ことを特徴とするデータ通信システム。
【請求項２】
パケット化されたストリーミングデータを受信するデータ受信装置であって、
上記データ送信装置から送信されてくる上記ストリーミングデータのパケットを受信するパケット受信部と、
上記パケット受信部で受信された上記ストリーミングデータのパケットを解析して該ストリーミングデータを再構成するデパケタイザと、
上記パケット受信部で受信された上記ストリーミングデータのパケットに基づいて、ロスしたパケットを検出するパケットロス検出部と、
上記パケットロス検出部で検出されたロスパケットの情報および上記パケット受信部で受信された最新受信パケットの情報を含む再送要求情報を生成する再送要求生成部と、
上記再送要求生成部で生成された上記再送要求情報を上記データ送信装置に送信する情報送信部と
を備えることを特徴とするデータ受信装置。
【請求項３】
上記データ送信装置との間の通信により、定期的に、該データ送信装置との間の伝送往復遅延時間を取得する遅延時間取得部をさらに備え、
上記再送要求生成部は、
上記パケットロス検出部で検出された上記ロスパケットの再生時刻が、現時刻から上記遅延時間取得部で取得された伝送往復遅延時間後の時刻より後の時刻であるとき、上記再送要求情報を生成する
ことを特徴とする請求項２に記載のデータ受信装置。
【請求項４】
上記データ送信装置との間の通信により、定期的に、該データ送信装置との間の伝送往復遅延時間を取得する遅延時間取得部をさらに備え、
上記再送要求生成部は、
上記情報送信部から所定のロスパケットの上記再送要求情報が送信された時刻から上記遅延時間取得部で取得された伝送往復遅延時間以内に上記パケット受信部で上記所定のロスパケットが受信されないとき、上記所定のロスパケットの上記再送要求情報を再度生成する
ことを特徴とする請求項２に記載のデータ受信装置。
【請求項５】
パケット化されたストリーミングデータを受信する受信方法であって、
送信側から送信されてくる上記ストリーミングデータのパケットを受信するパケット受信ステップと、
上記パケット受信ステップで受信された上記ストリーミングデータのパケットを解析して該ストリーミングデータを再構成するパケット解析ステップと、
上記パケット受信ステップで受信された上記ストリーミングデータのパケットに基づいて、ロスしたパケットを検出するパケットロス検出ステップと、
上記パケットロス検出ステップで検出されたロスパケットの情報および上記パケット受信ステップで受信された最新受信パケットの情報を含む再送要求情報を生成する再送要求生成ステップと、
上記再送要求生成ステップで生成された上記再送要求情報を上記送信側に送信する再送要求送信ステップと
を備えることを特徴とするデータ受信方法。
【請求項６】
パケット化されたストリーミングデータを送信するデータ送信装置であって、
上記ストリーミングデータをパケット化するパケタイザと、
上記パケタイザで生成された上記ストリーミングデータのパケットをデータ受信装置に送信するパケット送信部と、
上記パケット送信部で送信される各パケットの少なくとも送信時刻を含む送信情報を記憶する送信情報記憶部と、
上記データ受信装置から送られてくる、ロスパケットの情報および最新受信パケットの情報を含む再送要求情報を受信する再送要求受信部と、
上記再送要求受信部で受信された上記再送要求情報に含まれる上記最新受信パケット情報に基づいて上記送信情報記憶部から上記最新受信パケットの送信時刻を取得し、該送信時刻と現時刻との差を取って最新の遅延時間を算出する遅延時間算出部と、
上記ロスパケットの再送制御を行うパケット再送制御部とを備え、
上記パケット再送制御部は、
上記再送要求受信部で受信された上記再送要求情報が、該再送要求情報に含まれるロスパケット情報で示されるロスパケットの１回目の再送要求に係るものであるとき、上記ロスパケットの送信時刻から現時刻までの時間によらず、該ロスパケットを上記データ受信装置に送信するように上記パケット送信部を制御し、
上記再送要求受信部で受信された上記再送要求情報が、該再送要求情報に含まれるロスパケット情報で示されるロスパケットの２回目以降の再送要求に係るものであるとき、上記再送要求情報に含まれる上記ロスパケット情報に基づいて上記送信情報記憶部から上記ロスパケットの最新再送時刻を取得し、該最新再送時刻から現時刻まで上記遅延時間算出部で算出された上記最新遅延時間以上経過している場合、上記ロスパケットを上記データ受信装置に送信するように上記パケット送信部を制御する
ことを特徴とするデータ送信装置。
【請求項７】
パケット化されたストリーミングデータを送信する送信方法であって、
上記ストリーミングデータをパケット化するパケット生成ステップと、
上記パケット生成ステップで生成された上記ストリーミングデータのパケットを受信側に送信するパケット送信ステップと、
上記パケット送信ステップで送信される各パケットの少なくとも送信時刻を含む送信情報を送信情報記憶部に記憶する送信情報記憶ステップと、
上記受信側から送られてくる、ロスパケットの情報および最新受信パケットの情報を含む再送要求情報を受信する再送要求受信ステップと、
上記再送要求受信ステップで受信された上記再送要求情報に含まれる上記最新受信パケット情報に基づいて上記送信情報記憶部から上記最新受信パケットの送信時刻を取得し、該送信時刻と現時刻との差を取って最新の遅延時間を算出する遅延時間算出ステップと、
上記ロスパケットの再送制御を行うパケット再送制御ステップとを備え、
上記パケット再送制御ステップでは、
上記再送要求受信ステップで受信された上記再送要求情報が、該再送要求情報に含まれるロスパケット情報で示されるロスパケットの１回目の再送要求に係るものであるとき、上記ロスパケットの送信時刻から現時刻までの時間によらず、該ロスパケットを上記受信側に送信するように上記パケット送信ステップを制御し、
上記再送要求受信ステップで受信された上記再送要求情報が、該再送要求情報に含まれるロスパケット情報で示されるロスパケットの２回目以降の再送要求に係るものであるとき、上記再送要求情報に含まれる上記ロスパケット情報に基づいて上記送信情報記憶部から上記ロスパケットの最新再送時刻を取得し、該最新再送時刻から現時刻まで上記遅延時間算出ステップで算出された上記最新遅延時間以上経過している場合、上記ロスパケットを上記受信側に送信するように上記パケット送信ステップを制御する
ことを特徴とするデータ送信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ通信システム、データ受信装置、データ受信方法、データ送信装置およびデータ送信方法に関する。詳しくは、この発明は、データ受信装置はロスパケット情報および最新受信パケット情報を含む再送要求情報をデータ送信装置に送信し、データ送信装置は、最新受信パケット情報に基づいて最新の遅延時間（伝送往復遅延時間）を求め、ロスパケットの最新再送時刻から現時刻まで最新遅延時間以上経過していない場合はロスパケットを再送しないことにより、再送パケットの無駄な重複送信を防ぐようにしたデータ通信システム等に係るものである。
【背景技術】
【０００２】
ＩＰ(Internet Protocol)ネットワーク上でビデオやオーディオのデータを伝送する場合、データを受信しながら再生を行うストリーミング伝送方式が用いられる。特に、再生時間の制御やリアルタイム性が求められる場合は、ＲＴＰ(Realtime Transport Protocol)でパケット化されたデータをＵＤＰ(User Datagram Protocol)で伝送するストリーミング方式が適している。この方式はそのままではＴＣＰ(Transmission Control Protocol)が持つレート制御やロスしたパケットの回復制御がないため、ＲＴＰの制御情報を用いたレート制御、ロスパケットを回復する再送制御、冗長符号制御などが開発され、利用されている。
【０００３】
再送制御では、受信装置でロスしたパケットを検出し、そのパケットの情報（シーケンス番号）を再送要求として送信装置に通知し、送信装置が要求されたパケットを再送するのが基本的な動作である。さらに、再送パケットが再びロスする可能性があること、ストリーミング方式ではデータを再生処理するタイミングまでにデータが到着する必要があること、から、ネットワーク遅延を別途測定し、再生時間に間に合うと計算された再送パケットの要求および送信を行う工夫がされている（特許文献１、特許文献２、特許文献３参照）。
【特許文献１】特開２００２−８４３３８号公報
【特許文献２】特開２００３−１６９０４０号公報
【特許文献３】特開２００５−１３６５４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１〜３に記載される従来技術では、ネットワーク遅延を定期的に測定し、その測定値を用いて受信装置または送信装置において再送の判断を行っている。しかしながら、パケットロスが発生する状況においては輻輳の発生や無線などのリンク品質の悪化が生じており、ネットワーク内の各装置のバッファリング遅延が増加することで、実際の遅延値は通常時に測定した値よりもはるかに大きい値になることが観測されている。
【０００５】
例えば、輻輳によるバッファリング遅延によって、通常１０ミリ秒だった遅延が２０〜３０ミリ秒になることや、無線ＬＡＮ(Local Area Network)のリンク状態の悪化によって、一時的に１００ミリ秒を超える遅延になることがある。このようなとき、従来技術では変動前の小さい測定値で再送を判断するために、受信装置の再生時刻に間に合わない再送パケット、前に送信した再送パケットが受信装置に処理される前に重複送信された再送パケット、が冗長なパケットとして送信されてしまい、さらにネットワーク状況を悪化させてしまう問題がある。
【０００６】
このような冗長なパケットとなる再送パケットの送信を回避するために、従来技術においても、遅延を測定する間隔を十分小さくすればよいが、別途必要であった測定用データ量が増大してしまい、ネットワークおよびデータ通信システムの負荷が大きくなってしまうという問題がある。
【０００７】
この発明の目的は、ネットワークおよびデータ通信システムの負荷を大きくすることなく、再送パケットの無駄な重複送信を防ぐことにある。
【課題を解決するための手段】
【０００８】
この発明の概念は、
データ送信装置およびデータ受信装置からなり、パケット化されたストリーミングデータを伝送するデータ通信システムであって、
上記データ受信装置は、
上記データ送信装置から送信されてくる上記ストリーミングデータのパケットを受信するパケット受信部と、
上記パケット受信部で受信された上記ストリーミングデータのパケットを解析して該ストリーミングデータを再構成するデパケタイザと、
上記パケット受信部で受信された上記ストリーミングデータのパケットに基づいて、ロスしたパケットを検出するパケットロス検出部と、
上記パケットロス検出部で検出されたロスパケットの情報および上記パケット受信部で受信された最新受信パケットの情報を含む再送要求情報を生成する再送要求生成部と、
上記再送要求生成部で生成された上記再送要求情報を上記送信装置に送信する再送要求送信部とを備え、
上記データ送信装置は、
上記ストリーミングデータをパケット化するパケタイザと、
上記パケタイザで生成された上記ストリーミングデータのパケットを上記データ受信装置に送信するパケット送信部と、
上記パケット送信部で送信される各パケットの少なくとも送信時刻を含む送信情報を記憶する送信情報記憶部と、
上記データ受信装置から送られてくる上記再送要求情報を受信する再送要求受信部と、
上記再送要求受信部で受信された上記再送要求情報に含まれる上記最新受信パケット情報に基づいて上記送信情報記憶部から上記最新受信パケットの送信時刻を取得し、該送信時刻と現時刻との差を取って最新の遅延時間を算出する遅延時間算出部と、
上記ロスパケットの再送制御を行うパケット再送制御部とを備え、
上記パケット再送制御部は、
上記再送要求受信部で受信された上記再送要求情報が、該再送要求情報に含まれるロスパケット情報で示されるロスパケットの１回目の再送要求に係るものであるとき、上記ロスパケットの送信時刻から現時刻までの時間によらず、該ロスパケットを上記データ受信装置に送信するように上記パケット送信部を制御し、
上記再送要求受信部で受信された上記再送要求情報が、該再送要求情報に含まれるロスパケット情報で示されるロスパケットの２回目以降の再送要求に係るものであるとき、上記再送要求情報に含まれる上記ロスパケット情報に基づいて上記送信情報記憶部から上記ロスパケットの最新再送時刻を取得し、該最新再送時刻から現時刻まで上記遅延時間算出部で算出された上記最新遅延時間以上経過している場合、上記ロスパケットを上記データ受信装置に送信するように上記パケット送信部を制御する
ことを特徴とするデータ通信システムにある。
【０００９】
この発明において、データ送信装置は、画像データ、音声データ等のストリーミングデータをパケット化した後にネットワークを介して、データ受信装置に送信する。データ受信装置は、受信したパケットを解析して、ストリーミングデータを再構成する。データ送信装置は、データ受信装置に送信する各パケットの少なくとも送信時刻を含む送信情報を送信情報記憶部に記憶する。
【００１０】
データ受信装置は、受信したパケットに基づき、例えばシーケンス番号の抜けから、ロスしたパケットを検出する。データ受信装置は、ロスパケットの情報（例えばシーケンス番号）および最新受信パケットの情報（例えばシーケンス番号）を含む再送要求情報を生成し、この再送要求情報をデータ送信装置に送信する。
【００１１】
この場合、データ受信装置は、ロスパケットの再生時刻が現時刻から伝送往復遅延時間後の時刻より後の時刻であるとき、再送要求情報を生成してもよい。ロスパケットの再生時刻が現時刻から伝送往復遅延時間後の時刻より前の時刻であるときは、再送要求情報に対応してデータ送信装置から送られてくる再送パケットが、当該パケットの再生時刻より後の時刻にデータ受信装置に到着して無駄になる可能性が大きいからである。
【００１２】
また、この場合、データ受信装置は、所定のロスパケットの再送要求情報が送信された時刻から伝送往復遅延時間内に当該所定のロスパケットを受信できないとき、当該所定のロスパケットの再送要求情報を再度生成するようにしてもよい。所定のロスパケットが伝送往復遅延時間以内に受信できないとき、再送要求情報に応じてデータ送信装置から送られてくる所定のロスパケットが再びロスしている可能性があるからである。
【００１３】
データ送信装置は、データ受信装置から送られてくる再送要求情報を受信する。データ送信装置は、受信した再送要求情報が、その中に含まれるロスパケット情報で示されるロスパケットの１回目の再送要求に係るものであるか否か判断する。１回目の再送要求に係るものである場合、データ送信装置は、ロスパケットの送信時刻から現時刻までの時間によらず、ロスパケットをデータ受信装置に再送する。
【００１４】
２回目以降の再送要求に係るものである場合、データ送信装置は、再送要求情報に含まれる最新受信パケット情報に基づいて、送信情報記憶部から最新受信パケットの送信時刻を取得し、この送信時刻と現時刻との差をとって最新の遅延時間を算出する。この最新遅延時間は、最新受信パケットの往復の伝送に要した時間に相当する。そして、データ送信装置は、ロスパケットの最新再送時刻から現時刻まで最新遅延時間以上経過している場合、ロスパケットをデータ受信装置に再送する。ロスパケットの最新再送時刻から現時刻まで最新遅延時間以上経過していない場合、受信した再送要求情報は、データ受信装置がロスしていない再送パケットの到着前に上述した伝送往復遅延時間に基づいて送信したものである可能性が大きいからである。
【発明の効果】
【００１５】
この発明によれば、データ受信装置はロスパケット情報および最新受信パケット情報を含む再送要求情報をデータ送信装置に送信し、データ送信装置は、最新受信パケット情報に基づいて最新遅延時間を求め、ロスパケットの最新再送時刻から現時刻まで最新遅延時間以上経過していないときにはロスパケットを再送しないので、再送パケットの無駄な重複送信を防ぐことができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照して、この発明の実施の形態について説明する。図１は、実施の形態としてのデータ通信システム１００の構成を示している。このデータ通信システム１００は、データ送信装置１１０およびデータ受信装置１２０からなっている。これらデータ送信装置１１０およびデータ受信装置１２０は、ネットワーク（ＩＰ網）１３０を介して接続されている。
【００１７】
データ送信装置１１０は、画像データ、音声データ等のストリーミングデータをパケット化し、データ受信装置１２０にＲＴＰパケットを送信する。データ受信装置１２０は、受信したＲＴＰパケットにロスしたパケットがあるときは、データ送信装置１１０に再送要求パケット（再送要求情報）を送信して、ロスパケットの再送を要求する。
【００１８】
図２は、データ送信装置１１０の構成を示している。このデータ送信装置１１０は、パケタイザ１１１と、送信バッファ１１２と、ＲＴＰデータ通信部１１３と、送信情報記憶部１１４と、制御データ通信部１１５と、再送要求処理部１１６とを有している。データソースは、ストリーミングデータを転送データとして出力する。データソースは、例えば、ビデオカメラであり、画像データおよび音声データを出力する。なお、転送データは、ＣＤ(Compact Disc)、ＤＶＤ(Digital Versatile Disc)等の再生データ、あるいは、外部ネットワーク、放送衛星等からの受信データ等であってもよい。なお、以下の説明では、データ送信装置１１０からデータ受信装置１２０に、データソースからの画像データを転送する構成を中心として説明する。
【００１９】
パケタイザ１１１は、データソースからの画像データをパケット化する。なお、この画像データは、例えばＭＰＥＧ圧縮処理等による符号化がなされた符号化データである。パケタイザ１１１は、ＲＴＰに従ったデータパケット（以下、単に、「パケット」と称する）を生成する。このＲＴＰは、ＩＥＴＦ  ＲＦＣ１８８９で規定されている。ＲＴＰに従ったデータ転送では、時間情報としてパケットにタイプスタンプを付加し、当該タイムスタンプの参照により、送信側と受信側の時間的関係の把握を行い、受信側において、パケット転送の遅延揺らぎ（ジッター）などの影響を受けずに同期をとった再生を可能としている。
【００２０】
パケタイザ１１１は、符号化データをペイロードとしたパケットを生成する処理を実行する。ペイロードデータに対してＲＴＰパケットヘッダを付加してパケット化する。図３は、ＲＴＰパケットのフォーマットを示している。ＲＴＰヘッダには、ヴァージョン（Ｖ）、パディング（Ｐ）、拡張ビット（Ｘ）の有無、送信元数（Ｃｏｕｎｔｅｒ）、マーカ情報（ｍａｒｋｅｒ_ｂｉｔ）、ペイロードタイプ（Ｐａｙｌｏａｄｔｙｐｅ）、シーケンス番号、タイムスタンプ、同期ソース（送信元）識別子（ＳＳＲＣ）および貢献ソース（送信元）識別子（ＣＳＲＣ）の各フィールドが設けられている。
【００２１】
データ受信側において、ＲＴＰヘッダに付与されたタイムスタンプによりＲＴＰパケットの展開時に処理時間の制御が実行され、リアルタイム画像、または音声の再生制御が可能となる。なお、画像データの符号化データを格納したＲＴＰパケットにおいては、１つの画像フレームに属する複数のＲＴＰパケットに共通のタイムスタンプが設定され、各フレームを構成する終端パケットには、終端であることを示す識別フラグがＲＴＰヘッダに格納される。
【００２２】
送信バッファ１１２は、パケタイザ１１１で生成されたＲＴＰパケットを一時的に蓄積し、各ＲＴＰパケットを順次ＲＴＰデータ通信部１１３を通じてＩＰ網に送信する。また、送信バッファ１１２は、再送要求処理部１１６からの再送要求に応じて、指定されたパケットを、ＲＴＰデータ通信部１１３を通じてＩＰ網に再送する。また、送信バッファ１１２は、送信パケットと、当該送信パケットの送信情報を送信情報記憶１１４に保存する。送信情報は、少なくとも送信パケットの送信時刻を含むものとされる。
【００２３】
この実施の形態では、送信パケットの送信情報は、送信時刻および再送回数を含むものとされる。図４は、送信情報記憶部１１４に保存された送信情報の一例を示している。送信パケットのシーケンス番号と対応付けて、送信時刻および再送回数が記憶される。送信時刻は、送信パケットをＩＰ網に送信した時刻を示し、再送回数は再送要求に応じて再送した回数を示している。送信パケットの再送があると、送信時刻および再送回数が更新される。例えば、図４において、シーケンス番号５の送信パケットについては、時刻ｔ５で送信され、その後に、時刻ｔ５′で１回目の再送が実行されたときは、送信時刻は「ｔ５」から「ｔ５′」に更新され、再送回数は「０」から「１」に更新される。
【００２４】
ＲＴＰデータ通信部１１３は、送信バッファ１１２から供給されるＲＴＰパケットを、ＩＰヘッダを付与した後に、ＩＰ網に送信する。上述した送信バッファ１１２およびこのＲＴＰデータ通信部１１３は、パケット送信部を構成する。
【００２５】
図５は、ＩＰヘッダのフォーマットを示している。ＩＰｖ４、ＩＰｖ６等のヴァージョンを示すヴァージョン、ヘッダ長、さらに、優先度情報を格納したＴＯＳ（Type of Service）フィールド、パケットの長さ、パケットの識別子、ＩＰ層でのデータ分割（フラグメント）に関する制御情報としてのフラグ、分割（フラグメント）されたデータの場所を示す断片オフセット、データの破棄までの時間情報を示すＴＴＬ（Time to Live）、上位層で利用されるプロトコル（４：ＩＰ，ＴＣＰ：７，ＵＤＰ：１７…）、ヘッダのチェックサム、送信元ＩＰアドレス、宛て先ＩＰアドレスを有する。
【００２６】
制御データ通信部１１５は、データ受信装置１２０との間で、ＲＴＣＰ（Real-time Transport Control Protocol）パケットの通信を行う。このＲＴＣＰは、ＩＥＴＦ  ＲＦＣ１８８９で規定されている。制御データ通信部１１５は、例えば、データ受信装置１２０から送られてくるＮＡＣＫ（Negative ACKnowledge)−ＲＴＣＰパケットを受信する。このＮＡＣＫ−ＲＴＣＰパケットは、再送要求情報を有している。この制御データ通信部１１５は、再送要求受信部を構成する。
【００２７】
図６は、ＮＡＣＫ−ＲＴＣＰパケットのフォーマットを示している。ＲＴＣＰヘッダには、ヴァージョン（Ｖ）、パディング（Ｐ）、ペイロードタイプ（ＰＴ）、パケットの長さ（length）、同期ソース（送信元）識別子（ＳＳＲＣ）および名前（Application name）の各フィールドが設けられている。ＮＡＣＫ−ＲＴＣＰパケットの場合、ペイロードタイプ（ＰＴ）は、２０４とされる。名前は、ＮＡＣＫ−ＲＴＣＰパケットを取り扱うアプリケーションプログラムの名前である。ＮＡＣＫペイロードに、再送要求情報（ＮＡＣＫ）が配置される。
【００２８】
図７は、この実施の形態におけるＮＡＣＫペイロードのフォーマットを示している。先頭の３２ビットには再送を要求するＲＴＰパケットの送信源識別子（Data source’s SSRC）が設けられ、続く１６ビットにはロスパケット（ロスしたＲＴＰパケット）のシーケンス番号（Seq_lost）が設けられ、さらに続く１６ビットには最新受信パケット（再送要求情報を作成した時点における最新の受信ＲＴＰパケット）のシーケンス番号（Seq_last_recv）が設けられる。
【００２９】
なお、図７の例では、ロスパケットのシーケンス番号（Seq_lost）および最新受信パケットのシーケンス番号（Seq_last_recv）が一対だけ設けられたものを示したが、ロスした複数のＲＴＰパケットをまとめて要求する場合には、これらが複数対設けられる。
【００３０】
再送要求処理部１１６は、制御データ通信部１１５でＮＡＣＫ−ＲＴＣＰパケットが受信されるとき、再送要求情報で再送要求されているＲＴＰパケットを再送すべきか否かを判断し、再送すべきと判断したとき、送信バッファ１１２に当該ＲＴＰパケットの再送要求を送る。この再送要求処理部１１６は、パケット再送制御部を構成する。
【００３１】
再送要求処理部１１６は、制御データ通信部１１５でＮＡＣＫ−ＲＴＣＰパケットが受信されるとき、再送要求情報が、この再送要求情報で再送要求されているＲＴＰパケットの１回目の再送要求に係るものであるか否かを判断する。再送要求処理部１１６は、当該判断をする際に、再送要求情報に含まれるロスパケットのシーケンス番号（Seq_lost）を使用し、送信情報記憶部１１４から当該シーケンス番号（Seq_lost）に対応して記憶されている再送回数を取得して判断する。
【００３２】
再送要求処理部１１６は、再送回数が０であって、１回目の再送要求に係るものであると判断するとき、直ちに、再送要求情報に含まれるシーケンス番号（Seq_lost）のＲＴＰパケットを再送するように、送信バッファ１１２に再送要求を送る。再送要求処理部１１６は、再送回数が１以上であって、２回目以降の再送要求に係るものであると判断するときは、以下の処理をする。
【００３３】
再送要求処理部１１６は、再送要求情報に含まれる最新受信パケットのシーケンス番号（Seq_last_recv）を使用し、送信情報記憶部１１４から当該シーケンス番号（Seq_last_recv）に対応して記憶されている送信時刻を取得し、当該送信時刻と現時刻との差をとって、最新の遅延時間（伝送往復遅延時間）を算出する。この場合、再送要求処理部１１６は、遅延時間算出部を構成する。
【００３４】
そして、再送要求処理部１１６は、再送要求情報に含まれるロスパケットのシーケンス番号（Seq_lost）を使用し、送信情報記憶部１１４から当該シーケンス番号（Seq_lost）に対応して記憶されている送信時刻（最新再送時刻）を取得し、この最新再送時刻から現時刻まで最新遅延時間以上経過しているか否かを判断する。再送要求処理部１１６は、最新再送時刻から現時刻まで最新遅延時間以上経過している場合、再送要求情報に含まれるシーケンス番号（Seq_lost）のＲＴＰパケットを再送するように、送信バッファ１１２に再送要求を送る。
【００３５】
図８のフローチャートは、再送要求処理部１１６における再送制御の処理手順を示している。
【００３６】
再送要求処理部１１６は、制御データ通信部１１５でロスパケットの再送を要求するＮＡＣＫ−ＲＴＣＰパケットが受信されたとき、ステップＳＴ１１において、再送制御の処理を開始する。そして、再送要求処理部１１６は、ステップＳＴ１２において、再送要求情報（ＮＡＣＫ）（図７参照）からロスパケット情報、つまりロスパケットのシーケンス番号Seq_lostを取得する。
【００３７】
次に、再送要求処理部１１６は、ステップＳＴ１３において、受信した再送要求情報が、その中に含まれるロスパケット情報で示されるロスパケットの１回目の再送要求に係るものであるか否かを判断する。この場合、ステップＳＴ１２で取得されたロスパケットのシーケンス番号Seq_lostを識別子として、送信情報記憶部１１４からロスパケットの再送回数を取得して判断する。
【００３８】
再送要求処理部１１６は、ステップＳＴ１３において、１回目の再送要求に係るものであると判断するとき、ステップＳＴ１４において、送信バッファ１１２に当該ロスパケットの再送要求を送り、当該ロスパケットをデータ受信装置１２０に送信する。そして、再送要求処理部１１６は、ステップＳＴ１５において、送信情報記憶部１１４における、当該ロスパケットの送信時刻および再送回数の情報を更新し、その後、ステップＳＴ１６において、再送制御の処理を終了する。
【００３９】
また、再送要求処理部１１６は、ステップＳＴ１３において、２回目以降の再送要求に係るものであると判断するとき、ステップＳＴ１７に移る。このステップＳＴ１７において、再送要求処理部１１６は、再送要求情報（ＮＡＣＫ）（図７参照）から最新受信パケット情報、つまり最新受信パケットのシーケンス番号Seq_last_recvを取得し、このシーケンス番号Seq_last_recvを識別子として、送信情報記憶部１１４から最新受信パケットの送信時刻を取得し、この送信時刻と現時刻との差をとって、最新遅延時間（伝送往復遅延時間）を算出する。
【００４０】
そして、再送要求処理部１１６は、ステップＳＴ１８において、ステップＳＴ１２で取得されたロスパケットのシーケンス番号Seq_lostを識別子として、送信情報記憶部１１４からロスパケットの送信時刻（最新再送時刻）を取得し、当該最新再送時刻から現時刻まで最新遅延時間以上経過しているか否かを判断する。
【００４１】
最新再送時刻から現時刻まで最新遅延時間以上経過していない場合、再送要求処理部１１６は、ステップＳＴ１６に移り、直ちに、再送制御の処理を終了する。つまり、この場合には、ロスパケットの再送は行わない。
【００４２】
最新再送時刻から現時刻まで最新遅延時間以上経過している場合、再送要求処理部１１６は、ステップＳＴ１４に移り、上述した１回目の再送要求に係る場合であるときと同様に、送信バッファ１１２に当該ロスパケットの再送要求を送り、当該ロスパケットをデータ受信装置１２０に送信する。そして、再送要求処理部１１６は、ステップＳＴ１５において、送信情報記憶部１１４における、当該ロスパケットの送信時刻および再送回数の情報を更新し、その後、ステップＳＴ１６において、再送制御の処理を終了する。
【００４３】
再送要求処理部１１６は、図８のフローチャートに沿った再送制御の処理を行うことで、１回目の再送要求に対しては、ロスパケットの送信時刻から現時刻までの時間によらず、ロスパケットをデータ受信装置１２０に再送し、２回目以降の再送要求に対しては、ロスパケットの最新再送時刻から現時刻まで最新遅延時間以上経過している場合のみ、ロスパケットをデータ受信装置１２０に再送する。
【００４４】
図９は、データ受信装置１２０の構成を示している。このデータ受信装置１２０は、ＲＴＰデータ通信部１２１と、受信バッファ１２２と、デパケタイザ１２３と、再送要求生成部１２４と、再送要求リスト記憶部１２５と、制御データ通信部１２６とを有している。
【００４５】
ＲＴＰデータ通信部１２１は、データ送信装置１１０からネットワーク（ＩＰ網）１３０を介して送られてくるＲＴＰパケットを受信する。受信バッファ１２２は、ＲＴＰデータ通信部１２１で受信されたＲＴＰパケットを一時的に蓄積する。ＲＴＰデータ通信部１２１および受信バッファ１２２は、パケット受信部を構成する。デパケタイザ１２３は、受信バッファ１２２に蓄積されたＲＴＰパケットを解析する。デパケタイザ１２３は、ＲＴＰパケット内のヘッダ、ペイロードについての解析を実行し、パケット化前のストリーミングデータを再構成する。デパケタイザ１２３から出力されるストリーミングデータ（符号化データ）は、図示しないデコーダで復号化されて画像表示が行われる。
【００４６】
制御データ通信部１２６は、データ送信装置１１０との間で、ＲＴＣＰパケットの通信を行う。制御データ通信部１２６は、後述するように再生要求生成部１２４で生成されて送られてくるＮＡＣＫ−ＲＴＣＰパケット（図６、図７参照）を、データ送信装置１１０に送信する。この場合、制御データ通信部１２６は、再送要求送信部を構成する。
【００４７】
また、制御データ通信部１２６は、再送要求生成部１２４で伝送往復遅延時間（ＲＴＴ：Round Trip Time）を測定するために、データ送信装置１１０に遅延計測用のＲＴＣＰパケットを送信すると共に、データ送信装置１１０から送られてくる当該遅延計測用のＲＴＣＰパケットを受信する。図示は省略するが、遅延計測用のＲＴＣＰパケットにおいては、ペイロードに、データ受信装置１２０が当該ＲＴＣＰパケットを送信した時刻が配置される。
【００４８】
データ送信装置１１０は、データ受信装置１１０から送られてきた遅延計測用のＲＴＣＰパケットを、送信時刻をそのままにして、データ受信装置１２０に直ちに送り返す。そのため、再送要求生成部１２４は、制御データ受信部１２６で受信された遅延計測用のＲＴＣＰパケット内の送信時刻から現時刻を差し引くことで、伝送往復遅延時間を計測できる。
【００４９】
データ受信装置１２０では、このような伝送往復遅延時間の計測を定期的に行う。ただし、伝送往復遅延時間の計測を行うためには、上述したように、データ受信装置１２０とデータ送信装置１１０との間で遅延計測用のＲＴＣＰパケットの通信が必要となり、制御のオーバーヘッドとなる。そのため、この伝送往復遅延時間は、例えば、数百ミリ秒から数秒という長い間隔で行われる。なお、伝送往復遅延時間の計測を上述したようにデータ受信装置１２０で行うのではなく、データ送信装置１１０で行うようにし、データ受信装置１２０は伝送往復遅延時間の情報をデータ送信装置１１０から通知してもらうようにしてもよい。
【００５０】
再送要求生成部１２４は、ＲＴＰデータ通信部１２６で受信されて受信バッファ１２２に蓄積されるＲＴＰパケットに基づいて、ロスしたＲＴＰパケットを検出する。この場合、再送要求生成部１２４は、受信されたＲＴＰパケットのシーケンス番号を監視し、シーケンス番号の抜けがあるとき、当該抜けたシーケンス番号のＲＴＰパケットはロスしたものと判断する。この場合、再送要求生成部１２４は、パケットロス検出部を構成する。
【００５１】
再送要求生成部１２４は、ロスパケット（ロスしたＲＴＰパケット）の再送を要求するＮＡＣＫ−ＲＴＣＰパケット（図６、図７参照）を生成し、制御データ通信部１２６に送る。また、再送要求生成部１２４は、再送要求リストを、再送要求リスト記憶部１２５に記憶する。図１０は、再送要求リストの一例を示している。再送要求をしたロスパケットのシーケンス番号と対応付けて、再送パケット到着予定時刻および再生（デコード）時刻が記憶される。
【００５２】
再送パケット到着予定時刻は、再送を要求するＮＡＣＫ−ＲＴＣＰパケットの送信時刻に上述の伝送往復遅延時間を加算して得られる時刻である。あるロスパケットにつき、新たにＮＡＣＫ−ＲＴＣＰパケットの送信を行う場合、この再送パケット到着予定時刻は変化する。再生（デコード）時刻は、ロスパケットの前後に位置するＲＴＰパケットのタイムスタンプから得られる。
【００５３】
再送要求生成部１２４は、所定のロスパケットについてＮＡＣＫ−ＲＴＣＰパケットを生成して制御データ通信部１２６に送った後、伝送往復遅延時間が経過しても、当該所定のロスパケットを受信できないとき、再度ＮＡＣＫ−ＲＴＣＰパケットを生成して制御データ通信部１２６に送る。所定のロスパケットを伝送往復遅延時間以内に受信できないとき、再送要求情報（ＮＡＣＫ）に対応してデータ送信装置１１０から送られてくるパケットが再びロスしている可能性があるからである。
【００５４】
また、再送要求生成部１２４は、ロスパケットの再生（デコード）時刻が、現時刻から上述の伝送往復遅延時間後の時刻（再送パケット到着予定時刻）より後の時刻であるとき、当該ロスパケットの再送を要求するＮＡＣＫ−ＲＴＣＰパケット（図６、図７参照）を生成し、制御データ通信部１２６に送る。したがって、再送要求生成部１２４は、ロスパケットの再生時刻が、現時刻から再送パケット到着予定時刻より前の時刻であるときは、当該ロスパケットの再送を要求するＮＡＣＫ−ＲＴＣＰパケットを作成しない。
【００５５】
ロスパケットの再生時刻が再送パケット到着予定時刻より前の時刻であるときは、再送要求情報（ＮＡＣＫ）に対応してデータ送信装置１１０から送られてくるロスパケットが、当該パケットの再生時刻より後にデータ受信装置１１０で受信されて無駄になる可能性が大きいからである。
【００５６】
図１１のフローチャートは、再送要求生成部１２４における再送要求制御の処理手順を示している。
【００５７】
再送要求生成部１２４は、ＲＴＰデータ通信部１２１でＲＴＰパケットが受信されたとき、ステップＳＴ２１において、再送要求制御の処理を開始する。そして、再送要求生成部１２４は、ステップＳＴ２２において、パケットロスがあるか否かを判断する。この場合、再送要求生成部１２４は、受信したＲＴＰパケットのシーケンス番号を監視し、シーケンス番号の抜けがあるとき、パケットロスがあると判断する。
【００５８】
再送要求生成部１２４は、パケットロスがないと判断するとき、直ちに、ステップＳＴ２７に移り、再送要求制御の処理を終了する。再送要求生成部１２４は、パケットロスがあると判断するとき、ステップＳＴ２３に移る。このステップＳＴ２３において、再送要求生成部１２４は、ロスパケット（ロスしたＲＴＰパケット）のシーケンス番号Seq_lostおよび再生（デコード）時刻を取得する。この場合、再送要求生成部１２４は、ロスパケットの前後のＲＴＰパケットのシーケンス番号から当該ロスパケットのシーケンス番号Seq_lostを取得すると共に、ロスパケットの前後のＲＴＰパケットのタイムスタンプから当該ロスパケットの再生（デコード）時刻を取得する。
【００５９】
次に、再送要求生成部１２４は、ステップＳＴ２４において、ロスパケットの再送が再生（デコード）時刻に間に合うか否かを判断する。この場合、再送要求生成部１２４は、ロスパケットの再生時刻が、現時刻から伝送往復遅延時間（ＲＴＴ）後の時刻（再送パケット到着予定時刻）より後の時刻であるとき、当該ロスパケットの再送が再生時刻に間に合うと判断する。
【００６０】
再送要求生成部１２４は、ロスパケットの再送が間に合わないと判断する場合、直ちにステップＳＴ２７に移り、再送要求制御の処理を終了する。つまり、この場合、当該ロスパケットの再送を要求するＮＡＣＫ−ＲＴＣＰパケットの生成は行わない。一方、再送要求生成部１２４は、ロスパケットの再送が間に合うと判断する場合、ステップＳＴ２５に移る。このステップＳＴ２５において、再送要求生成部１２４は、最新受信パケット（ＲＴＰデータ通信部１２１で受信したＲＴＰパケットのうち、最も新しいＲＴＰパケット）のシーケンス番号Seq_last_recvを取得する。
【００６１】
そして、再送要求生成部１２４は、ステップＳＴ２６において、ロスパケットの再送を要求するＮＡＣＫ−ＲＴＣＰパケットを生成して、制御データ通信部１２６を通じて、データ送信装置１１０に送る。なお、このＮＡＣＫ−ＲＴＣＰパケットのペイロードには、図７に示すように、ロスパケットのシーケンス番号Seq_lostおよび最新受信パケットのシーケンス番号Seq_last_recvが配置されている。また、再送要求生成部１２４は、このステップＳＴ２６において、再送要求に関連する情報（ロスパケットのシーケンス番号、再送パケット到着予定時刻、再生（デコード）時刻）を、再送要求リストに登録する（図１０参照）。
【００６２】
再送要求生成部１２４は、ステップＳＴ２６の処理の後、ステップＳＴ２７に移り、再送要求制御の処理を終了する。
【００６３】
再送要求生成部１２４は、図１１のフローチャートに沿った再送要求制御の処理を行うことで、ＲＴＰパケットが受信される毎にパケットロスの検出を行い、パケットロスがあるときは、ロスパケットの再送パケット到着予定時刻が当該ロスパケットの再生（デコード）時刻に間に合う場合のみ、当該ロスパケットの再送を要求するＮＡＣＫ−ＲＴＣＰパケットを生成してデータ送信装置１１０に送る。
【００６４】
図１２のフローチャートは、再送要求生成部１２４における再送要求リスト制御の処理手順を示している。
【００６５】
再送要求生成部１２４は、ＲＴＰデータ通信部１２１でＲＴＰパケットが受信されたとき、ステップＳＴ３１において、再送要求リスト制御の処理を開始する。そして、再送要求生成部１２４は、ステップＳＴ３２において、受信パケット（受信したＲＴＰパケット）情報に基づいて、再送要求リストを更新する。すなわち、再送要求生成部１２４は、受信パケットが再送パケットである場合、再送要求リストから当該受信パケットに関連する情報を削除する。
【００６６】
次に、再送要求生成部１２４は、ステップＳＴ３３において、再送要求リスト記憶部１２５に記憶されている再送要求リストから、現時刻が再送パケット到着予定時刻を越えたロスパケットを取得する。そして、再送要求生成部１２４は、ステップＳＴ３４において、再送パケット到着予定時刻を越えたロスパケットが存在し、かつ当該ロスパケットの再送に係るパケット到着予定時刻が当該ロスパケットの再生（デコード）時刻に間に合うか否かを判断する。
【００６７】
再送要求生成部１２４は、再送パケット到着予定時刻を越えたロスパケットが存在しないとき、あるいは、再送パケット到着予定時刻を越えたロスパケットが存在するが、当該ロスパケットの再送に係る再送パケット到着予定時刻が当該ロスパケットの再生時刻に間に合わないときは、直ちにステップＳＴ３７に移り、再送要求リスト制御の処理を終了する。
【００６８】
再送要求生成部１２４は、再送パケット到着予定時刻を越えたロスパケットが存在し、かつ当該ロスパケットの再送に係るパケット到着予定時刻が当該ロスパケットの再生時刻に間に合うときは、ステップＳＴ３５に移る。このステップＳＴ３５において、再送要求生成部１２４は、最新受信パケット（ＲＴＰデータ通信部１２１で受信したＲＴＰパケットのうち、最も新しいＲＴＰパケット）のシーケンス番号Seq_last_recvを取得する。
【００６９】
そして、再送要求生成部１２４は、ステップＳＴ３６において、ロスパケットの再送を要求するＮＡＣＫ−ＲＴＣＰパケットを生成して、制御データ通信部１２６を通じて、データ送信装置１１０に送る。また、再送要求生成部１２４は、このステップＳＴ３６において、再送要求リストを更新する。この場合、当該ロスパケットに対応した再送パケット到着予定時刻は、ロスパケットの再送を要求するＮＡＣＫ−ＲＴＣＰパケットの送信時刻に、上述の遅延計測用のＲＴＣＰパケットを用いる等して計測されている伝送往復遅延時間を加算して得られた時刻に変更される。
【００７０】
再送要求生成部１２４は、ステップＳＴ３６の処理の後、ステップＳＴ３７に移り、再送要求制御の処理を終了する。
【００７１】
再送要求リスト生成部１２４が、図１２のフローチャートに沿った再送要求リスト制御の処理を行うことで、受信パケットが再送パケットである場合、再送要求リストから当該受信パケットに関連する情報を削除する。また、再送要求生成部１２４は、図１２のフローチャートに沿った再送要求リスト制御の処理を行うことで、ＲＴＰパケットが受信される毎に、再送要求リストから再送パケット到着予定時刻を越えたロスパケットを取得し、当該ロスパケットの再送に係るパケット到着予定時刻が当該ロスパケットの再生（デコード）時刻に間に合う場合のみ、当該ロスパケットの再送を要求するＮＡＣＫ−ＲＴＣＰパケットを生成してデータ送信装置１１０に送る。
【００７２】
図１に示すデータ通信システム１００の動作を説明する。
【００７３】
データ送信装置１１０（図２参照）のパケタイザ１１１には、データソースから符号化された画像データが供給される。パケタイザ１１１では、画像データがパケット化され、ＲＴＰに従ったデータパケット（ＲＴＰパケット）が生成される。パケタイザ１１１で生成されたＲＴＰパケットは、送信バッファ１１２に一時的に蓄積される。各ＲＴＰパケットは、送信バッファ１１２から順次取り出されてＲＴＰデータ通信部１１３に送られ、ネットワーク（ＩＰ網）１３０を介して、データ受信装置１２０（図９参照）に送信される。
【００７４】
データ受信装置１２０のＲＴＰデータ通信部１２１では、データ送信装置１１０からネットワーク（ＩＰ網）１３０を介して送られてくるＲＴＰパケットが受信される。ＲＴＰデータ通信部１２１で受信されたＲＴＰパケットは受信バッファ１２２に一時的に蓄積される。デパケタイザ１２３では、受信バッファ１２２に蓄積されたＲＴＰパケットの解析が行われ、パケット化前の符号化された画像データ（ストリーミングデータ）が再構成される。デパケタイザ１２３から出力される符号化された画像データは、図示しないデコーダで復号化されて画像表示が行われる。
【００７５】
データ受信装置１２０の再送要求生成部１２４では、ＲＴＰデータ通信部１２６で受信されて受信バッファ１２２に蓄積されるＲＴＰパケットに基づいて、パケットロスの検出が行われる。パケットロスがあるとき、再送要求生成部１２４では、ロスパケット（ロスしたＲＴＰパケット）の再送を要求するＮＡＣＫ−ＲＴＣＰパケット（図６、図７参照）が生成される。再送要求生成部１２４で生成されるＮＡＣＫ−ＲＴＣＰパケットは制御データ通信部１２６に送られ、ネットワーク（ＩＰ網）１３０を介して、データ送信装置１１０に送信される。この場合、再送要求に関連する情報が再送要求リストに登録される（図１０参照）。
【００７６】
なお、再送要求生成部１２４では、ロスパケットの再送パケット到着予定時刻が当該ロスパケットの再生（デコード）時刻に間に合う場合のみ、当該ロスパケットの再送を要求するＮＡＣＫ−ＲＴＣＰパケットが生成される（図１１参照）。
【００７７】
また、再送要求生成部１２４では、ＲＴＰデータ通信１２１でＲＴＰパケットが受信される毎に、再送要求リストから再送パケット到着予定時刻を越えたロスパケットの存在が確認され、当該ロスパケットが存在する場合、当該ロスパケットの再送を要求するＮＡＣＫ−ＲＴＣＰパケットが生成される（図１２参照）。
【００７８】
なお、この場合も、再送要求生成部１２４では、当該ロスパケットの再送に係るパケット到着予定時刻が当該ロスパケットの再生（デコード）時刻に間に合う場合のみ、当該ロスパケットの再送を要求するＮＡＣＫ−ＲＴＣＰパケットが生成される。
【００７９】
データ受信装置１１０の制御データ通信部１１５では、データ受信装置１２０からネットワーク（ＩＰ網）１３０を介して送られてくるＮＡＣＫ−ＲＴＣＰパケットが受信される。受信されたＮＡＣＫ−ＲＴＣＰパケットが１回目の再送要求に係るものである場合、ロスパケットの送信時刻から現時刻までの時間によらず、再送要求処理部１１６から送信バッファ１１２に再送要求が送られ、ＲＴＰデータ通信部１１３を通じて、データ受信装置１２０にロスパケットが再送される（図８参照）。
【００８０】
また、受信されたＮＡＣＫ−ＲＴＣＰパケットが２回目以降の再送要求に係るものである場合、ロスパケットの最新再送時刻から現時刻まで最新遅延時間以上経過している場合のみ、再送要求処理部１１６から送信バッファ１１２に再送要求が送られ、ＲＴＰデータ通信部１１３を通じて、データ受信装置１２０に、ロスパケットが再送される（図８参照）。
【００８１】
図１３を参照して、ロスパケットの再送動作の具体例を説明する。通常時の伝送往復遅延時間（ＲＴＴ）が１０ミリ秒で、輻輳によってパケットロスが発生し、また、バッファリング遅延の増大により遅延時間が３０ミリ秒になったとする。ここで、通常時の伝送往復遅延時間（ＲＴＴ）とは、上述の遅延計測用のＲＴＣＰパケット等を用いて計測された伝送往復遅延時間に相当する。
【００８２】
データ受信装置１２０は、図１１の制御フローによって、パケットロスを検出し、再送要求ＮＡＣＫ１（ＮＡＣＫ−ＲＴＣＰパケット）をデータ送信装置１１０に送信し、ＲＴＴである１０ミリ秒後を到着予定時刻として再送要求リストに登録する。１０ミリ秒後、データ受信装置１２０は、図１２の制御フローによって、到着予定時刻までに再送パケットが到着しなかったため、再送要求ＮＡＣＫ２をデータ送信装置１１０に送信する。以下、データ受信装置１２０は、到着予定時刻が再生（デコード）時刻の前であれば、再送パケットが到着するまで、再送要求ＮＡＣＫを送信する。
【００８３】
データ送信装置１１０は、図８の制御フローによって、再送要求ＮＡＣＫ１を処理し、シーケンス番号Seq_lostを持つＲＴＰパケットの１回目の再送要求であるため、直ちに、再送パケットを送信する。データ送信装置１１０は、その後、再送要求ＮＡＣＫ２，ＮＡＣＫ３を受信するが、該当再送パケットの送信から、最新の遅延時間である３０ミリ秒が経過していないため、再送パケットを送信しない。
【００８４】
データ受信装置１２０においては、再送要求ＮＡＣＫ１の３０ミリ秒後に再送パケットがロスせずに到着する場合、再送要求ＮＡＣＫ２，ＮＡＣＫ３に対する再送パケットが無駄となる。上述のようにデータ送信装置１１０で再送要求ＮＡＣＫ２，ＮＡＣＫ３に対して再送パケットを送信しないことで、再送パケットを効果的に削減できたことになる。
【００８５】
仮に、再送パケットがロスした場合、データ受信装置１２０が再送要求ＮＡＣＫ４を送信し、データ送信装置１１０は最新の遅延時間に基づいて、２回目の再送パケット送信を判断する。この後も、データ受信装置１２０の遅延情報が更新されない限り、再送要求ＮＡＣＫ５，ＮＡＣＫ６が１０ミリ秒ごとに送信され、データ送信装置１１０において無駄になる再送パケットが送られないように制御される。図１３には、再送要求ＮＡＣＫ４，ＮＡＣＫ５，ＮＡＣＫ６の図示を省略している。
【００８６】
なお、図１３において、括弧内の数字がＲＴＰパケットのシーケンス番号を表し、シーケンス番号が５であるＲＴＰパケットがロスしたＲＴＰパケットであるとする。この場合、再送要求ＮＡＣＫ１の作成時における最新受信パケットのシーケンス番号は６となる。つまり、再送要求ＮＡＣＫ１において、ロスパケットのシーケンス番号Seq_lostは５となり、最新受信パケットのシーケンス番号Seq_last_recvは６となる。
【００８７】
図１３においては、図面の簡単化のため、シーケンス番号が７以降のＲＴＰパケットの図示は省略している。再送要求ＮＡＣＫ２，ＮＡＣＫ３において、ロスパケットのシーケンス番号Seq_lostは再送要求ＮＡＣＫ１と同じく５となるが、最新受信パケットのシーケンス番号Seq_last_recvについては再送要求ＮＡＣＫ１とは異なったものとなる。
【００８８】
図１に示すデータ通信システム１００によれば、データ受信装置１２０はロスパケットのシーケンス番号Seq_lostおよび最新受信パケットのシーケンス番号Seq_last_recvを含むＮＡＣＫ−ＲＴＣＰパケットをデータ送信装置１１０に送信し、データ送信装置１１０は、最新受信パケットのシーケンス番号Seq_last_recvに基づいて最新遅延時間を求め、ロスパケットの最新再送時刻から現時刻まで最新遅延時間以上経過していない場合はロスパケットを再送しないものであり、再送パケットの無駄な重複送信を防ぐことができる。
【００８９】
また、図１に示すデータ通信システム１００によれば、ロスパケットの再送を要求するＮＡＣＫ−ＲＴＣＰパケットに２バイトの情報（シーケンス番号Seq_last_recv）を追加するだけであり（図７参照）、遅延測定用のパケットや処理は必要なく、また、再送を行うときのみ最新遅延時間を求めるため、ネットワーク１３０やデータ送信装置１１０、データ受信装置１２０に対する追加オーバーヘッドが極めて少ない。
【００９０】
なお、上述実施の形態においては、ロスパケット情報がロスパケットのシーケンス番号Seq_lostであり、最新受信パケット情報が最新受信パケットのシーケンス番号Seq_last_recvであるものを示したが、それぞれ、シーケンス番号に限定されるものではなく、ロスパケット、最新受信パケットを特定できる情報であればよい。
【産業上の利用可能性】
【００９１】
この発明は、輻輳の発生や無線などのリンク品質の悪化に伴うパケットロスを回復する場合に効果を発揮し、ネットワーク帯域の効率的な利用に寄与するものであり、ストリーミングデータを伝送するデータ通信システムに適用できる。
【図面の簡単な説明】
【００９２】
【図１】実施の形態としてのデータ通信システムの構成を示すブロック図である。
【図２】データ送信装置の構成を示すブロック図である。
【図３】ＲＴＰパケットのフォーマットを示す図である。
【図４】送信パケットの送信情報を説明するための図である。
【図５】ＩＰヘッダのフォーマットを示す図である。
【図６】ＮＡＣＫ−ＲＴＣＰパケットのフォーマットを示す図である。
【図７】ＮＡＣＫペイロードのフォーマットを示す図である。
【図８】データ送信装置における再送制御の処理手順を示すフローチャートである。
【図９】データ受信装置の構成を示すブロック図である。
【図１０】再送要求リストを説明するための図である。
【図１１】データ受信装置における再送要求制御の処理手順を示すフローチャートである。
【図１２】データ受信装置における再送要求リスト制御の処理手順を示すフローチャートである。
【図１３】ロスパケットの再送動作の具体例を説明するためのシーケンス図である。
【符号の説明】
【００９３】
１００・・・データ通信システム、１１０・・・データ送信装置、１１１・・・パケタイザ、１１２・・・送信バッファ、１１３・・・ＲＴＰデータ通信部、１１４・・・送信情報記憶部、１１５・・・制御データ通信部、１１６・・・再送要求処理部、１２０・・・データ受信装置、１２１・・・ＲＴＰデータ通信部、１２２・・・受信バッファ、１２３・・・デパケタイザ、１２４・・・再送要求生成部、１２５・・・再送要求リスト記憶部、１２６・・・制御データ通信部、１３０・・・ネットワーク（ＩＰ網）
【図１】
2008141633.tif 000003
【図２】
2008141633.tif 000004
【図３】
2008141633.tif 000005
【図４】
2008141633.tif 000006
【図５】
2008141633.tif 000007
【図６】
2008141633.tif 000008
【図７】
2008141633.tif 000009
【図８】
2008141633.tif 000010
【図９】
2008141633.tif 000011
【図１０】
2008141633.tif 000012
【図１１】
2008141633.tif 000013
【図１２】
2008141633.tif 000014
【図１３】
2008141633.tif 000015