JP4869169B2 - データ送信装置およびデータ再送方法 - Google Patents

データ送信装置およびデータ再送方法 Download PDF

Info

Publication number
JP4869169B2
JP4869169B2 JP2007182669A JP2007182669A JP4869169B2 JP 4869169 B2 JP4869169 B2 JP 4869169B2 JP 2007182669 A JP2007182669 A JP 2007182669A JP 2007182669 A JP2007182669 A JP 2007182669A JP 4869169 B2 JP4869169 B2 JP 4869169B2
Authority
JP
Japan
Prior art keywords
retransmission
data
retransmission request
receiving terminal
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007182669A
Other languages
English (en)
Other versions
JP2009021818A (ja
Inventor
一暢 小西
衛一 村本
孝弘 米田
一朗 武井
真史 小林
泰輔 松本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2007182669A priority Critical patent/JP4869169B2/ja
Priority to CN2008800227709A priority patent/CN101720543B/zh
Priority to PCT/JP2008/001873 priority patent/WO2009008181A1/ja
Priority to US12/668,271 priority patent/US8259724B2/en
Publication of JP2009021818A publication Critical patent/JP2009021818A/ja
Application granted granted Critical
Publication of JP4869169B2 publication Critical patent/JP4869169B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/44Star or tree networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/1887Scheduling and prioritising arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0093Point-to-multipoint

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Small-Scale Networks (AREA)

Description

本発明は、他の装置からの要求に応じてデータの再送を行うデータ送信装置およびデータ再送方法に関する。
近年、通信ネットワークの急速な発展に伴い、テレビ会議システムやオンラインゲームなど、同一のグループに属する複数の受信者の間で映像や音声のデータをリアルタイムに通信する機会が増大している。このようなコミュニケーション用途の通信では、複数の受信者に対して同一のデータが送信されることが多い。
複数の受信者に対して同一のデータを効率的に伝送する通信技術として、マルチキャスト通信が知られている。マルチキャスト通信におけるマルチメディアデータの配信先は、グループ分けされ、グループごとにマルチキャストでパケットが送信される。
データの送信元とデータの送信先とが異なるセグメントに位置している場合、従来は、送信元から送信先に至る経路上の全てのパケット中継装置(以下「ルータ」という)がマルチキャスト通信に対応している必要があった。
これに対し、近年、明示的マルチキャスト方式やオーバレイマルチキャスト方式など、経路上の全てのルータがマルチキャスト通信に対応していなくても異なるセグメントへのマルチキャスト通信を可能とする通信方式が開発され、普及が進んでいる。
まず、明示的マルチキャスト方式によるパケット配信について説明する。
明示的マルチキャスト方式は、グループに属する全てのデータ受信装置の宛先アドレスを、送信パケットのオプションヘッダ部またはペイロード部に格納することにより、全送信先を明示的に指定する通信方式である。代表的な明示的マルチキャスト方式としては、例えば、エクスプリシットマルチキャスト(explicit multicast:XCAST)がある(非特許文献1参照)。
明示的マルチキャスト方式では、経路上の全てのルータが明示的マルチキャスト方式に対応していなくても、IP(internet protocol)パケット(以下単に「パケット」という)に格納された宛先アドレスの全ての受信者に対して、データを送信することができる。その際、パケットがどの受信者に対して配送されたかは、パケットのヘッダに格納されたビット列などによって管理される。
各ルータは、宛先プレフィクス、次ホップ、および送出インタフェースを対応付けたユニキャスト経路表を有する。
明示的マルチキャスト方式に対応したルータは、パケットが到着すると、パケットのオプションヘッダまたはペイロードに格納された全ての宛先アドレスを、ユニキャスト経路表で検索し、対応する送出インタフェースを調べる。
明示的マルチキャスト方式に対応したルータは、パケットが送出される送出インタフェースに含まれる受信者の宛先アドレス以外の宛先アドレスをパケットから削除するか、パケットに格納されたビット列を走査し、該当する宛先アドレスに、配送済みのマークを付加する。また、明示的マルチキャスト方式に対応したルータは、IPヘッダに記述された宛先アドレスを、未配送の受信者の宛先アドレスに書き換える。複数の送出インタフェースに対してパケットを送出する場合には、明示的マルチキャスト方式に対応したルータは、パケットを送出インタフェースの数だけ複製し、複製したパケットのそれぞれに対して宛先アドレスの書き換えを行う。
また、明示的マルチキャスト方式に対応したデータ受信装置は、受信したパケットに未配送の宛先アドレスがあった場合、そのパケットを複製し、IPヘッダの宛先アドレスを未配送の宛先アドレスに書き換えて送出する。その際、明示的マルチキャスト方式に対応したデータ受信装置は、未配送の宛先アドレスから自ノードのアドレスを削除するか、パケットヘッダに格納されたビット列を配送済みに変更する。このような、データ受信装置からルータへと受信パケットが再び送信される配送は、数珠繋ぎ配送と呼ばれる。
一方、非明示的マルチキャスト方式に対応していないルータは、IPヘッダに記述された宛先アドレスをユニキャスト経路表で検索し、通常のユニキャスト通信と同様にパケットを送出する。また、非明示的マルチキャスト方式に対応していないデータ受信装置は、通常の受信処理のみを行う。
以上の仕組みから、明示的マルチキャスト方式では、経路上の全てのルータが明示的マルチキャスト方式に対応していなくても、全ての受信者に対してパケットを送信することができる。したがって、明示的マルチキャスト方式を用いれば、インターネットなどの既存のネットワークにおいてもマルチキャスト通信を行うことが可能となる。
次に、オーバレイマルチキャスト方式によるパケット配信について説明する。
オーバレイマルチキャスト方式は、データ受信装置がパケットのコピーおよび転送を行うことで、グループに属する全てのデータ受信装置にパケットを送信する通信方式である。代表的なオーバレイマルチキャスト方式としては、アプリケーションレベルマルチキャスト(application level multicast:ALM)がある。以下、ALMを用いたパケット配信について説明する。
図29は、ALMによる通信システムの構成の一例を示すシステム構成図である。
図29において、通信システム10は、データ送信装置である送信端末(20)と、送信端末からデータの配信を受ける受信端末A〜E(30a〜30e)とを有する。
ALMでは、実ネットワーク上に、パケットの配送ルートである仮想的なツリー構造のネットワークを構築する。このような仮想的なツリー構造のネットワークは、配送木と呼ばれる。図29において、各装置を結ぶ線は、通信システム10の配送木の構成を示している。
下流側に他の受信端末30を有する各受信端末30がパケットをコピーおよび転送することで、全ての受信端末30にパケットが配信される。例えば、受信端末Bの下流には、受信端末D、Eが存在する。受信端末Bは、受信端末Aから転送されてきたパケットを受信すると、まず、ルーティングテーブルを調べ、下流に受信端末D、Eが存在することを判別する。そして、受信端末Bは、受信端末D、Eにパケットを転送するために、受信したパケットをコピーし、コピーしたパケットを受信端末D、Eに転送する。
このように、オーバレイマルチキャスト方式では、データ受信装置がルータの役割を担うことにより、配送木に基づいた配信ルートでパケットが配信される。配送木は、データ受信装置同士が情報を交換したり、データ送信装置が配送木を作成することで構築される。
ところで、ネットワークにおける輻輳や伝送誤りなどに起因して、パケットの廃棄や紛失(以下「パケットロス」と総称する)が発生する場合がある。ストリームデータの送信においてパケットロスが発生すると、ストリームデータに抜けが生じ、受信側で再生される映像や音楽の品質低下を招く。特に、MPEG(moving picture experts group)のように映像フレーム間の依存関係を利用した圧縮コーデックを用いている場合、1つのパケットロスが長時間の映像の乱れに繋がる。
そこで、宛先に到達しなかったパケットを再送することが、従来行われている。データ送信装置は、パケットロスの発生を検出したデータ受信装置からデータの再送の要求(以下「再送要求」という)を受信すると、これに対応して、パケットロスが発生したパケットに格納されていたデータを再送パケットにより再送する。パケットロスが発生したパケットに格納されていたデータを再送することにより、データ受信装置におけるデータの品質を向上させることができる。
ところが、リアルタイム通信では、送信の対象となるデータがデータ送信装置に入力されてからデータ受信装置でデータが再生されるまでの遅延時間をできるだけ短くすることが要求される。例えば、違和感無く会話が成立する遅延時間は一般的に200〜400ms程度と言われている。このことから、テレビ会議システムでは、データ送信装置に映像や音声が入力された時間から、データ送信装置でデータがエンコードされ、データ受信装置でデータがデコードされて、最終的に映像デバイスやスピーカから出力される時間(再生時間)までの遅延時間が重要である。
データ受信装置は、後続のパケットを受信してからでなければパケットロスの発生を検出できないため、下流に位置するデータ受信装置では、パケットロスを検出する時間が遅い。また、下流に位置するデータ受信装置では、データ送信装置との間の往復遅延時間(round trip time:RTT)が長い。したがって、許容される遅延時間が短い場合、下流に位置するデータ受信装置には、データの再生時間に間に合わせて再送パケットを到着させることができず、再送を行ったにもかかわらずデータの品質を改善できないといった事態が発生する。
そこで、リアルタイム性を保持した再送制御をマルチキャスト通信において実施する技術が、例えば特許文献1および2に記載されている。
特許文献1記載の技術では、パケットロスを検出したデータ受信装置は、パケットの送信元であるデータ送信装置ではなく、パケットを転送した中間ノードに対して再送要求を行う。そして、中間ノードで該当するパケットを取得している場合には、パケットの送信元であるデータ送信装置ではなく、中間ノードがパケットの再送を行う。これにより、中間ノードとデータ送信装置の間で発生する遅延時間を取り除くことができ、リアルタイム性の確保が容易となる。
特許文献2記載の技術では、パケットロスを検出したデータ受信装置は、周辺装置に対して再送要求をマルチキャストで送信する。再送要求を受信したデータ受信装置のうち、要求されたデータパケットを受信しているデータ受信装置は、再送パケットをマルチキャストで送信する。これにより、データ送信装置から再送パケットを送信する場合よりも早く再送パケットを到着させることが可能となり、リアルタイム性の確保が容易となる。
特開2002−84239号公報 特開2003−209576号公報 Y. Imai, M. Shin and Y. Kim, "XCAST6 : eXplictMulticast on IPv6", IEEE / IPSJ SAINT2003 Workshop 4, IPv6 and Applications, Orland, Jan. 2003.
しかしながら、特許文献1記載の技術は、どの中間ノードに対して再送要求を行うべきかを各データ受信装置で判断しなければならないため、各データ受信装置で配送木に関する情報を予め記憶しておく必要がある。したがって、特許文献1記載の技術は、既存のネットワークへの適用が難しいだけでなく、配送木の構造が不明な場合には適用が難しい。また、配送木の上流側でパケットロスが発生した場合、下流のデータ受信装置の再送要求を中間ノードがバッファリングしながら上流側に送信するため、かえってリアルタイム性が損なわれるという問題がある。
また、特許文献2記載の技術は、各データ受信装置に、他のデータ受信装置からの再送要求に応じてマルチキャストで再送パケットを送信する機能を持たせなくてはならないため、やはり既存のネットワークへの適用は難しい。また、特許文献2記載の技術は、一般のIPマルチキャスト方式を対象としているため、ルータやデータ受信装置がパケットのコピーおよび転送を行うXCASTやALMのようなスモールグループを対象としたマルチキャスト方式には適さないという問題がある。10箇所程度のデータ送信先で構成されるスモールグループ向けのマルチキャスト方式では、データ受信装置の間の関連性が高く、パケットロスを検出したデータ受信装置の周辺のデータ受信装置でも同様に該当パケットを受信できていない可能性が高いためである。
以上のことから、配送木の構造が不明な場合でも、データ受信装置に至る経路上の装置の機能や装置間の関連性に依存することなく、データ送信装置単体で再送パケットを早いタイミングで送出できることが望ましい。
本発明は、かかる点に鑑みてなされたものであり、配送木の構造が不明な場合でも再送パケットを早いタイミングで送出することができるデータ送信装置およびデータ再送方法を提供することを目的とする。
本発明のデータ送信装置は、データの再送要求を受信する再送要求受信部と、第1のデータ受信装置から送られてきた再送要求の受信数の過去の履歴と、前記第1のデータ受信装置から送られてきた再送要求と対象を同一とする他のデータ受信装置から送られてきた再送要求の受信数の過去の履歴と、を蓄積する関連性更新部と、前記第1のデータ受信装置から再送要求を受信したとき、前記関連性更新部により蓄積された履歴から配送木を推定し、前記第1のデータ受信装置に加えて、前記推定された配送木において前記第1のデータ受信装置の下流に位置する他のデータ受信装置を、前記データの再送先として選択する再送先選択部とを具備する構成を採る。
本発明のデータ再送方法は、第1のデータ受信装置からデータの再送要求を受信する再送要求受信ステップと、第1のデータ受信装置から送られてきた再送要求の受信数の過去の履歴と、前記第1のデータ受信装置から送られてきた再送要求と対象を同一とする他のデータ受信装置から送られてきた再送要求の受信数の過去の履歴とから配送木を推定し、前記第1のデータ受信装置に加えて、前記推定した配送木において前記第1のデータ受信装置の下流に位置する他のデータ受信装置を、前記データの再送先として選択する再送先選択ステップと、前記再送先選択ステップで再送先として選択されたデータ受信装置に、前記データを送信する再送ステップとを有するようにした。
本発明によれば、配送木を推定し、推定した配送木においてデータの再送要求元の下流に位置する他のデータ受信装置を、データの再送先に加える。これにより、配送木の構造が不明な場合でも、データ受信装置に至る経路上の装置の機能や装置間の関連性に依存することなく再送パケットを早いタイミングで送出することができる。
以下、本発明の各実施の形態について、図面を参照して詳細に説明する。
(実施の形態1)
図1は、本発明の実施の形態1に係るデータ送信装置としての送信端末を含む通信システムの構成を示すシステム構成図である。本実施の形態は、映像および音声を多地点にリアルタイムで配信するテレビ会議システムに本発明を適用した例である。
図1において、通信システム100は、明示的マルチキャスト方式によるパケット配信を行う送信端末200と、送信端末200からパケットの配信を受ける受信端末300a〜300eとを有する。送信端末200および受信端末300a〜300eは、同一のスモールグループに参加している。以下、記述の簡素化のため、受信端末300a〜300eを個別に記述する場合には、それぞれ受信端末A〜Eと記述する。
送信端末200は、配信の対象となる映像および音声のストリームデータを、通し番号であるシーケンス番号が付されたデータパケットに格納して、受信端末A〜Eに配信する。また、送信端末200は、受信端末A〜Eからの要求に応じて、配信したデータの再送を行う。
受信端末A〜Eは、自己を宛先とするデータパケットをそれぞれ受信し、元のストリームデータを再生する。また、受信端末A〜Eは、受信パケットのシーケンス番号の抜けからパケットロスの発生を検出し、送信端末200に対してデータの再送要求を行う。具体的には、受信端末A〜Eは、受信されなかったデータパケットのシーケンス番号と、IPアドレスやポート番号などの自端末を特定するための識別情報とを記述した再送要求パケットを生成し、送信端末200に送信する。
受信端末A、Bは、明示的マルチキャスト方式に対応しており、受信パケットに未送信の宛先が指定されているとき、受信パケットを複製し、未送信の宛先にパケットを転送する。一方、受信端末C〜Eは、明示的マルチキャスト方式に対応しておらず、パケットの転送は行わない。
図1において、各端末を結ぶ線は、通信システム100で構築されている配送木の構成を示している。
通信システム100では、送信端末200のパケットの転送先は受信端末Aであり、受信端末Aのパケットの転送先は受信端末B、Cであり、受信端末Bのパケットの転送先は受信端末D、Eとなっている。受信端末D、Eは、受信端末Bの下流に位置し、受信端末B、Cは、受信端末Aの下流に位置している。
ここで、送信端末200の構成および動作の説明に先立ち、本実施の形態における再送パケットを早いタイミングで送出する方法の概要について説明する。
図1から明らかなように、受信端末Bに到達していないパケットは、受信端末D、Eにも到達しない。したがって、受信端末Bによって再送を要求されたデータは、受信端末D、Eからも再送を要求される。また、受信端末Aに到達していないパケットは、受信端末B〜Eにも到達しない。したがって、受信端末Aによって再送を要求されたデータは、受信端末B〜Eからも再送を要求される。
通常、パケットロスが発生したとき、下流に位置する受信端末300の再送要求よりも、その受信端末300の上流に位置する受信端末300の再送要求の方が、送信端末200に早く到達する。したがって、送信端末200が再送要求パケットの送信元の受信端末300(以下適宜「再送要求元」という)の下流に位置する他の受信端末300にも再送パケットを送信することにより、実際の再送要求パケットの受信に先行して下流の受信端末300に再送パケットを送出することができる。また、受信端末300と送信端末200のネットワーク上の距離が、上流に位置する受信端末300よりも、下流に位置する受信端末300の方が短い場合、下流の受信端末300からの再送要求の方が上流の受信端末300よりも早く送信端末200に届く場合がある。その場合でも、上流の受信端末300からの再送要求を送信端末200は受信できるため、最初に下流の受信端末からの再送要求を受信した時点で、上流の受信端末に対しても再送パケットを送信することができる。これは、実際の配送木と推定した配送木が同一でなくても、早いタイミングで再送が可能なことを示す。
上記した先行的な再送パケット送出を実現するには、送信端末200で、どの受信端末300の下流にどの受信端末が位置するか、つまり、通信システム100で構築されている配送木を推定する必要がある。
まず、各受信端末300の再送要求の実施の回数(以下「再送要求回数」という)に着目する。
下流に位置する受信端末の再送要求回数は、自端末の上流に位置する受信端末300の再送要求回数以上の値となる。図1に示す通信システム100では、受信端末D、Eの再送要求回数は、受信端末Bの再送要求回数以上となり、受信端末B〜Eの再送要求回数は、受信端末Aの再送要求回数以上となる。任意の時点の受信端末A〜Eの再送要求回数を順にN〜Nと置くと、以上の各受信端末300の再送要求回数の大小関係は、以下の式(1)で表すことができる。
≧ N ≧ N
≧ N ≧ N
≧ N ・・・・・・(1)
任意の2つの受信端末300を第1および第2の受信端末と置くと、これら2つの受信端末の相対的な配置パターンとして、「第1の受信端末が第2の受信端末の上流にある配置」、「第2の受信端末が第1の受信端末の上流にある配置」、および「第1の受信端末と第2の受信端末が別のルート上に存在する配置」、の3つが考えられる。
第1の受信端末の再送要求回数が第2の受信端末の再送要求回数以上の値である場合、「第1の受信端末が第2の受信端末の上流にある配置」の可能性を排除することができる。また、第2の受信端末の再送要求回数が第1の受信端末の再送要求回数以上の値である場合、「第2の受信端末が第1の受信端末の上流にある配置」の可能性を排除することができる。
ところが、例えば受信端末Bと受信端末Cのようにルートの異なる受信端末300の間では、再送要求回数の大小関係は不定である。したがって、各受信端末300の再送要求回数のみから、残りの2つの配置パターンのいずれに該当するかを特定することは難しい。
次に、各受信端末300の再送要求の対象に着目する。
上記した第1および第2の受信端末において、同一のパケットについて再送要求を行う割合が高ければ高いほど、「第1の受信端末と第2の受信端末が別のルート上に存在する配置」である可能性は低くなる。すなわち、第1の受信端末と第2の受信端末が同一ルート上に存在する可能性が高くなる。
更に、例えば、第1の受信端末から再送要求されるパケットが、第2の受信端末からも再送要求される割合が高ければ高いほど、第1の受信端末が第2の受信端末の上流に位置する可能性が高くなる。すなわち、第1の受信端末から再送要求されるパケットが第2の受信端末から再送要求される割合に基づいて、配送木における第1の受信端末と第2の受信端末と相対的な配置パターンを推定することができる。
そこで、本実施の形態の送信端末200は、個々の受信端末300から再送要求されたパケットが、他の受信端末300からも再送要求されたか否かを判断し、判断結果を記録しておくことにより、各受信端末300の再送要求の配送木の推定を可能にする。そして、送信端末200は、再送要求を受信するごとに、推定される配送木で下流に位置する他の受信端末300が存在するか否かを判断し、該当する受信端末300が存在する場合には、実際の再送要求の受信に先行して、その下流に位置する他の受信端末300にパケットを再送する。これにより、下流に位置する受信端末300に対する再送パケットの送出の迅速化を図る
以下、送信端末200の構成および動作について説明する。まず、送信端末200の構成について説明する。
図2は、実施の形態1に係る送信端末200の構成を示すブロック図である。
図2において、送信端末200は、データパケット生成部210、データパケット送信部220、データ蓄積部230、再送要求受信部240、受信端末関連性更新部250、再送先選択部260、および再送部270を有する。
データパケット生成部210は、外部のエンコーダなどの装置(図示せず)から、映像および音声のストリームデータを入力する。これらの映像および音声は、テレビ会議において、ディジタルカメラやマイクロフォン(いずれも図示せず)で、入力されたものである。データパケット生成部210は、入力された映像および音声のストリームデータを分割し、分割したデータを格納したデータパケットを構築する。このデータパケットは、宛先として受信端末A〜Eを明示的に指定する明示的マルチキャストパケットであり、また、分割の順序に従ってシーケンス番号を昇順に付されている。データパケット生成部210は、構築したデータパケットを、再送用にデータ蓄積部230に保存するとともに、データパケット送信部220に出力する。
データパケット送信部220は、データパケット生成部210から入力されたデータパケットを、受信端末A〜Eを配置したネットワーク400に送出する。ここでは、図1に示したように、送信端末200のデータパケット転送先は、受信端末Aである。
データ蓄積部230は、データパケット生成部210から入力された再送用のデータパケットを保存するとともに、受信端末A〜Eの再送要求における関連性を保存するためのテーブル(以下「関連性保存テーブル」という)を格納する。
図3は、関連性保存テーブルの構成を示す図である。関連性保存テーブル810は、受信端末811、再送済シーケンス番号812、再送要求シーケンス番号813、総再送要求受信数814、および再送要求受信数815の欄を有する。
受信端末811には、受信端末A〜Eを識別する情報が記述される。他の各欄812〜815は、受信端末A〜Eごとに対応付けられている。以下、説明の簡便化のため、関連性保存テーブル810に記述された受信端末300ごとの情報の一まとまりを「レコード」という。
再送済シーケンス番号812には、受信端末300に対して再送したデータパケットのシーケンス番号が記述される。再送要求シーケンス番号813には、受信端末300から再送要求されたデータパケットのシーケンス番号が記述される。総再送要求受信数814には、受信端末300から送られてきた再送要求の受信数の総数(以下総再送要求受信数という)が記述される。再送要求受信数815には、関連する他の受信端末300から同一のシーケンス番号の再送要求を受信した数が、受信端末300ごとに記述される。総再送要求受信数814および再送要求受信数815には、初期値としてそれぞれ0が記述される。
関連性保存テーブル810の記述内容は、受信される再送要求パケットに基づいて、図2に示す受信端末関連性更新部250により更新される。
図2に示す再送要求受信部240は、受信端末A〜Eから再送要求パケットを受信する。
図4は、再送要求パケットの構成の一例を示す図である。
図4に示すように、再送要求パケット820は、ヘッダ部821とペイロード部822とから構成される。ヘッダ部821には、再送要求元のIPアドレスである送信元IPアドレス823と、再送要求の送信先(ここでは送信端末200)のIPアドレスである宛先IPアドレス824とが記述されている。送信元IPアドレス823からは、再送要求元を特定することが可能である。ペイロード部822には、再送要求の対象であるデータパケットのシーケンス番号(以下「再送要求シーケンス番号」という)825が記述されている。
なお、再送要求元のIPアドレスはペイロード部822に記述されても良い。また、受信端末300ごとに予め一意のID番号を付与し、そのIDがペイロード部822に記述されても良い。また、再送要求シーケンス番号も、RTP(real-time transport protocol)ヘッダのように、ヘッダ部821内に記述されても良い。
図2に示す再送要求受信部240は、受信した再送要求パケット820から、再送要求シーケンス番号825と送信元IPアドレス823とを取得し、再送要求元を解析する。そして、再送要求受信部240は、取得した再送要求シーケンス番号と、再送要求元を一意に示す情報(以下適宜「再送要求元情報」という)とを、データ蓄積部230を介して受信端末関連性更新部250に出力する。
なお、再送要求受信部240は、データパケットに記述されたポート番号など、送信元IPアドレス823以外の情報から、再送要求元情報を取得しても良い。また、送信元IPアドレス823を、そのまま再送要求元情報として取り扱っても良い。また、送信元IPアドレス823とポート番号などの情報を複数組み合わせて、再送要求元情報として取り扱っても良い。
受信端末関連性更新部250は、再送要求受信部240から入力された再送要求シーケンス番号および再送要求元情報に基づいて、図3に示す関連性保存テーブル810を更新する。具体的には、受信端末関連性更新部250は、関連性保存テーブル810に、各受
信端末300から過去に再送要求されたパケットが、他の受信端末300からも再送要求された割合を、他の受信端末300ごとに記録する。
再送先選択部260は、受信端末関連性更新部250により再送要求シーケンス番号と再送要求元情報とを入力されるごとに更新した関連性保存テーブル810に基づいて、配送木を推定し、先行的に再送パケットを送信すべき受信端末300を選択する。具体的には、再送先選択部260は、再送要求元から過去に再送要求されたパケットが他の受信端末300からも再送要求される割合が所定の閾値よりも高いとき、該当する他の受信端末300を配送木において再送要求元の下流に位置する受信端末であると推定し、再送要求元と併せて再送パケットの送信先に選択する。そして、再送先選択部260は、構築したすべての再送パケットを、再送部270に出力する。
再送部270は、再送先選択部260から入力された再送パケットを、ネットワーク400に対して送信する。ネットワーク400に送信された再送パケットは、図示しないルータや受信端末A、Bによって、指定された送信先へと転送される。
送信端末200は、図示しないが、CPU(central processing unit)、制御プログラムを格納したROM(read only memory)などの記憶媒体、RAM(random access memory)などの作業用メモリ、および通信回路を有する。CPUが制御プログラムを実行することで、図2に示す各部の機能は実現される。
次いで、上記構成を有する送信端末200の動作について説明する。ここでは、図5〜図11を用いて、再送要求パケットを受信したときの送信端末200の動作について説明する。
図5は、再送要求パケットを受信したときの送信端末200の全体動作の流れを示すフローチャートである。
まず、ステップS1000で、再送要求受信部240は、再送要求パケットを受信し、再送要求パケットから再送要求シーケンス番号を取得し、送信元IPアドレスやポート番号など再送要求元の受信端末を特定する再送要求元情報を取得する。
そして、ステップS2000で、再送要求受信部240は、再送要求シーケンス番号と再送要求元情報とを、受信端末関連性更新部250に出力する。受信端末関連性更新部250は、再送要求受信部240から入力された再送要求シーケンス番号および再送要求元情報に基づいて、関連性保存テーブル810(図3参照)を更新する関連性更新処理を実行する。そして、受信端末関連性更新部250は、関連性保存テーブル810を更新した後、再送要求シーケンス番号と再送要求元情報とを、データ蓄積部230を介して再送先選択部260に出力する。関連性更新処理の詳細については後述する。
そして、ステップS3000で、再送先選択部260は、再送要求シーケンス番号、再送要求元情報、および関連性保存テーブル810に基づいて、再送先チェック処理を実行する。再送先チェック処理は、再送要求元で損失したデータと同一のデータを損失していると判断できる受信端末300を調べ、該当する受信端末300を宛先とした再送パケット(図4に示す)を構築して再送部270に出力する処理である。再送先チェック処理の詳細については後述する。
そして、ステップS4000で、再送部270は、再送先選択部260から入力された全ての再送パケットを、ネットワーク400に送信する。そして、一連の処理を終了する。
次いで、関連性保存テーブル810を更新する関連性更新処理の詳細について説明する。
図6は、関連性更新処理(図5のステップS2000)の流れを示すフローチャートである。また、図7〜図9は、図3に示す関連性保存テーブル810に対して関連性更新処理が行われた場合の関連性保存テーブル810の記述内容の変化の様子を示す図である。
ここでは、関連性保存テーブル810が図3の状態のときに、受信端末Dから再送要求シーケンス番号として「10」を受信した場合を例にとって説明する。図3に示すように、受信端末Bおよび受信端末Eからは、既に再送要求シーケンス番号として「10」を受信している。
まず、ステップS2100で、受信端末関連性更新部250は、再送要求受信部240から入力された再送要求シーケンス番号と再送要求元情報とを関連付けて、データ蓄積部230に保存する。具体的には、受信端末関連性更新部250は、関連性保存テーブル810のうち、再送要求元のレコードの再送要求シーケンス番号813に、入力された再送要求シーケンス番号を記述する。
上記処理後の関連性保存テーブル810は、図7に示すように、受信端末Dの再送要求シーケンス番号813に「10」が追加された状態となる。
そして、図6のステップS2200で、受信端末関連性更新部250は、関連性保存テーブル810のうち再送要求元の総再送要求受信数814の値に1を加算する。
上記処理後の関連性保存テーブル810は、図8に示すように、受信端末Dの総再送要求受信数814の値が「29」から「30」に更新される。
そして、図6のステップS2300で、受信端末関連性更新部250は、再送要求元以外の受信端末300を1つ選択する。
そして、ステップS2400で、受信端末関連性更新部250は、再送要求元以外の受信端末300であって現在選択されている受信端末(以下単に「選択されている受信端末」という)300からの過去の再送要求シーケンス番号に、今回の再送要求シーケンス番号と同一のシーケンス番号が含まれているか否かを調べる。具体的には、受信端末関連性更新部250は、関連性保存テーブル810のうち、選択されている受信端末300のレコードの再送要求シーケンス番号813に、今回の再送要求シーケンス番号と同一のシーケンス番号が記述されているか否かを判断する。受信端末関連性更新部250は、同一のシーケンス番号が記述されている場合には(S2400:YES)、ステップS2500に進み、同一のシーケンス番号が記述されていない場合には(S2400:NO)、ステップS2700に進む。
ステップS2500で、受信端末関連性更新部250は、関連性保存テーブル810における再送要求元のレコードの再送要求受信数815のうち、選択されている受信端末300の値に1を加算する。
そして、ステップS2600で、受信端末関連性更新部250は、関連性保存テーブル810における選択されている受信端末300のレコードの再送要求受信数815のうち、再送要求元の値に1を加算する。
ステップS2700で、受信端末関連性更新部250は、再送要求元以外で未選択の受信端末300があるか否かを判断する。受信端末関連性更新部250は、未選択の受信端末300がある場合には(S2700:YES)、ステップ2300に戻り、未選択の受信端末300を1つ選択して処理を繰り返す。また、受信端末関連性更新部250は、全ての受信端末300について処理を完了した場合には(S2700:NO)、一連の処理を終了し、図5に示す処理に戻る。
このように、受信端末関連性更新部250による関連性更新処理の結果、各受信端末300のレコードにおける再送要求受信数815の値は、その受信端末300からの再送要求とシーケンス番号を同一とする再送要求が他の受信端末300で何回行われたかを示す値となる。
関連性更新処理の実行後の関連性保存テーブル810は、図9に示すように、受信端末Dのレコードの再送要求受信数815のうち、受信端末Bの値と受信端末Eの値とが、「29」から「30」にそれぞれ更新される。これは、今回の再送要求シーケンス番号「10」と同一のシーケンス番号のパケットが、既に受信端末B、Eからも再送要求されているためである。また、受信端末B、Eのレコードの再送要求受信数815のうち受信端末Dの値が、「29」から「30」にそれぞれ更新される。これは、既に受信端末B、Eから受信した再送要求シーケンス番号「10」と同一のシーケンス番号のパケットが、今回、受信端末Dから再送要求されたためである。
次いで、再送先選択部260による再送先チェック処理の詳細について説明する。
図10は、再送先チェック処理(図5のステップS3000)の流れを示すフローチャートである。
まず、ステップS3100で、再送先選択部260は、今回再送を要求されたデータを、再送要求元に既に再送したか否かを調べる。具体的には、再送先選択部260は、今回入力された再送要求シーケンス番号が、関連性保存テーブル810の再送要求元のレコードの再送済シーケンス番号812に記述されているか否かを調べる。これは、他の受信端末300からの再送要求に基づいて、今回の再送要求元に既に再送パケットを送信している場合があるためである。
再送先選択部260は、再送要求元の受信端末300にまだ再送パケットを送信していない場合には(S3100:NO)、ステップS3200に進み、既に再送パケットを送信している場合には(S3100:YES)、再送パケットを生成することなく、図5に示す処理に戻る。これにより、今回の再送要求元に既に要求されたデータの再送パケットを送信している場合に、再送パケットの送信の重複を避けることができる。
ステップS3200で、再送先選択部260は、再送要求シーケンス番号に該当するデータパケットがデータ蓄積部230に保存されているか否かをチェックする。再送先選択部260は、このチェックの結果、該当するデータパケットが保存されている場合には(S3200:YES)、ステップS3300に進み、保存されていない場合には(S3200:NO)、要求されたデータが存在しないため、再送パケットを生成することなく、図5に示す処理に戻る。
ステップ3300で、再送先選択部260は、データ蓄積部230に保存され、再送要求シーケンス番号に該当する再送用のデータパケットから、再送パケットを構築する。
そして、ステップS3400で、再送先選択部260は、データ蓄積部230に蓄積されている関連性保存テーブル810を参照して、再送要求元の受信端末300以外の関連する受信端末300を1つ選択する。
そして、ステップS3500で、再送先選択部260は、関連性保存テーブル810に保持された同一のシーケンス番号についての再送要求パケットを送信した再送要求受信数815のうち、今回受信した再送要求パケットの送信元の受信端末300の値の履歴に基づいて、他の受信端末300が再送要求元の下流にいるかどうかを調べ、配送木を推定する。推定した配送木に基づいて、再送要求元の下流に位置する受信端末300を再送パケットの送信先として選択する。
その際、配送木を推定するための基準の一例として、再送要求元のレコードの再送要求受信数815のうち選択されている受信端末300の値を、再送要求元のレコードの総再送要求受信数814の値で割った値である「関連度」を算出する。関連度が高い受信端末300は、配送木において再送要求元の下流に位置すると判定し、配送木を推定する。
なお、配送木を推定する基準の値として、単純に再送要求受信数815が近い端末を選択してもよいし、配送木の下流の受信端末300からの再送要求は短い時間以内に受信する可能性が高いため、同一のシーケンス番号に対する再送要求数が近く、かつそれらの再送要求が短い時間の中で受信できたかどうかで再送要求元の下流に位置する受信端末300であるか否かを判定しそれらの端末を再送要求先として選択してもよい。以下、関連度を用いた場合の配送木の推定と再送先受信端末の選択について述べる。
推定した配送木に基づいて、再送要求元の下流に位置する受信端末300においても、再送要求元から再送を要求されているデータパケットと同一のデータパケットにパケットロスが発生している可能性が高い。したがって、上記した所定の閾値は、選択されている受信端末300ではパケットロスは発生していないと判断すべき関連度の最大値であり、実験や経験から求めることができる。
そして、ステップS3600で、再送先選択部260は、ステップS3500で推定した配送木から、選択されている受信端末300が再送要求元の下流に位置するか否かを判断する。具体的には、上記した関連度が所定の閾値よりも高いか否かを判断する。再送先選択部260は、選択されている受信端末300が再送要求元の下流に位置する場合、つまり、関連度が所定の閾値よりも高い場合には(S3600:YES)、ステップS3700に進む。一方、選択されている受信端末300が再送要求元の下流に位置しない場合、つまり、関連度が所定の閾値以下の場合には(S3600:NO)、再送先選択部260は、ステップS3700を経ずにその次のステップS3800に進む。
ステップS3700で、再送先選択部260は、選択されている受信端末300に対する再送パケットを構築する。この再送パケットの構築は、選択されている受信端末300から再送要求を受信していない段階で行われることになる。
そして、ステップS3800で、再送先選択部260は、未選択の関連する受信端末300があるか否かを判断する。この判断の結果、再送先選択部260は、未選択の関連する受信端末300がある場合には(S3800:YES)、ステップ3400に戻り、未選択の関連する受信端末300を1つ選択して処理を繰り返し、全ての関連する受信端末300について処理を完了した場合には(S3800:NO)、ステップS3900に進む。
ステップS3900で、再送先選択部260は、データの再送を行う受信端末300ごとに、今回再送の対象とするデータパケットのシーケンス番号を保存する。具体的には、再送先選択部260は、関連性保存テーブル810のうち、再送パケットを送信する各受信端末300のレコードの再送済シーケンス番号812に、再送の対象とするデータパケットのシーケンス番号を追加する。そして、一連の処理を終了し、図5に示す処理に戻る。ステップS3700で構築された全ての再送パケットは、再送部270に入力され、図5のS4000で、再送部270によりネットワーク400に送信される。
このように、再送先選択部260による再送先チェック処理の結果、パケットロスしている確率の高い下流の受信端末300に対して、その受信端末300からの実際の再送要求に先立って再送パケットを構築し、送出することができる。
所定の閾値を高くすればするほど、先行的な再送パケット送出が実行されにくくなり、この結果、不要な再送パケット送出を低減し、ネットワーク負荷を軽減することができる。また、所定の閾値を低くすればするほど、先行的な再送パケット送出が実行され易くなり、この結果、再送パケット送出の迅速化を積極的に実現することができる。
なお、所定の閾値は、通信開始時に決定した一定値にしても良いし、再送要求受信数の数に応じて変化させても良い。通常、再送要求受信数が少ない場合、算出される関連度の信頼性は低い。したがって、例えば、初期状態では所定の閾値を高く設定し、再送要求受信数の増加に従って所定の閾値を低下させていくことにより、ネットワーク負荷の軽減と再送パケット送出の迅速化とをバランス良く実現することができる。
図11は、図9に示す関連性保存テーブル810に対して再送先チェック処理および再送処理が行われた場合の、関連性保存テーブル810の記述内容の変化の様子を示す図である。
ここでは、関連性保存テーブル810が図9の状態のときに、再送先選択部260に、再送要求シーケンス番号として「10」が入力され、再送要求元情報として受信端末Dを示す情報が入力された場合の、関連性保存テーブル810の記述内容の変化を例にとって示している。
図11に示すように、再送先チェック処理が実行された後の関連性保存テーブル810は、受信端末Dのレコードの再送済シーケンス番号812にシーケンス番号「10」が追加された状態となる。
ここで、関連性保存テーブル810が図11に示す状態のときに、再送先選択部260に、再送要求シーケンス番号および再送要求元情報として、「15」と受信端末Bを示す情報とが入力された場合を例にとり、再送先チェック処理および処理の結果について説明する。
受信端末Bのレコードにおいて、総再送要求受信数814は「30」であり、再送要求受信数815の受信端末A、C〜Eの値は、「5」、「5」、「30」、「30」である。再送要求受信数815の受信端末A、C〜Eの値を総再送要求受信数814の値で割った関連度は、「0.17」、「0.17」、「1.0」、「1.0」となる。例えば、所定の閾値が「0.5」に設定されている場合、所定の閾値よりも高い値となるのは、受信端末D、Eの関連度である。したがって、再送要求元である受信端末Bに加えて、受信端末D、Eも、再送パケットの送信先として選択される。
受信端末D、Eは、受信端末Bの下流に位置する。したがって、通常、受信端末D、Eにおけるパケットロスの検出は、受信端末Bにおけるパケットロスの検出よりも遅く、受信端末D、Eからの再送要求の送信端末200へ到達は、受信端末Bからの再送要求の送信端末200へ到達よりも遅い。受信端末Bからの再送要求に基づいて受信端末D、Eにも再送パケットを送出することにより、受信端末D、Eからの再送要求に基づいて再送パケットを送出する場合よりも、受信端末D、Eに対する再送パケットの送出タイミングを早めることができる。
なお、再送パケットの構築および送信は、送信先ごとに再送パケットを構築し、ユニキャスト通信によってそれぞれの受信端末300に送信しても良いし、XCASTやALMを用いて1つのマルチキャストパケットを構築し、マルチキャストにより各受信端末300に送信しても良い。また、XCASTでデータパケットを再送する際に、アドレスリストに記述する宛先の順番を各受信端末300が先頭になるように変更したXCASTパケットを複数構築して送信し、再送パケットが損失した場合に他の受信端末300から転送させるようにしても良い。
以上説明したように、本実施の形態によれば、送信端末200は、通信システム100の配送木を推定するための関連性保存テーブル810を作成する。そして、送信端末200は、データの再送要求を受信したとき、関連性保存テーブル810に基づいて配送木を推定し、推定した配送木において再送要求元の下流に位置する他の受信端末300を、再送パケットの送出先に加える。これにより、配送木の構造が不明な場合でも、配送木の下流に位置する受信端末300に対する再送パケットの送出を早いタイミングで行うことが可能となる。したがって、例えば、再送パケットを再生時間までに届けることが可能となり、許容される遅延時間が短いリアルタイム通信に適した再送制御を実現することができる。また、送信先の受信端末300に至る経路上の装置の機能や装置間の関連性に依存せずに、送信端末200単体で再送パケットを送出するので、既存のネットワークに容易に適用することができる。
(実施の形態2)
実施の形態2は、時間的に新しい再送要求の影響が強く出るように重み付けをして受信端末間の関連性を更新することにより、ネットワークの状態変化への追従性の向上を図る場合である。
図12は、本発明の実施の形態2に係るデータ送信装置としての送信端末の構成を示すブロック図であり、実施の形態1の図2に対応するものである。図2と同一部分には同一符号を付し、これについての説明を省略する。
図12において、送信端末500は、図2の受信端末関連性更新部250に代えて、受信端末関連性更新部550を有する。
受信端末関連性更新部550は、再送要求受信部240から入力された再送要求シーケンス番号および再送要求元情報に基づいて、図3に示す関連性保存テーブル810を更新する。
また、受信端末関連性更新部550は、関連性保存テーブル810の更新の際、更新前後の差分のうち、時間的により新しい更新の差分に対して、より強い重み付けを行う。受信端末関連性更新部550は、この重み付けのために、関連性保存テーブル810の各レコードの最後の更新時刻を記録するためのレコード更新時刻テーブルを作成し、データ蓄積部230に保存する。
図13は、データ蓄積部230に格納されるレコード更新時刻テーブルの内容の一例を示す図である。
レコード更新時刻テーブル830は、受信端末831および前回更新時刻[sec]832の2つの欄から構成される。受信端末831には、受信端末A〜Eを示す情報が記述される。前回更新時刻832には、受信端末300ごとに、関連性保存テーブル810の対応するレコードが更新された時刻のうち最も新しい時刻が記述される。図13には、秒(sec)で時刻を保存した場合を例示しているが、前回の再送要求からの経過時間を特定可能であれば、どのような単位および形式で保存しても良い。
以下、受信端末関連性更新部550による関連性更新処理の詳細について説明する。ここでは、図14〜図18を用いて、再送要求パケットを受信したときの送信端末500の動作について説明する。
図14は、受信端末関連性更新部550による関連性更新処理(図5のステップS2000、図6)の流れを示すフローチャートである。図6と同一部分には同一ステップ番号を付し、これについての説明を省略する。
受信端末関連性更新部550は、ステップS2100で再送要求されたデータパケットのシーケンス番号を保存した後、ステップS2201に進む。
ステップS2201で、受信端末関連性更新部550は、関連性保存テーブル810の再送要求元のレコードの値を、今回受信した再送要求パケットに基づく更新内容に対してより強い重みが掛かるように更新する。そして、受信端末関連性更新部550は、現在時刻を取得し、レコード更新時刻テーブル830のうち、今回の再送要求元の前回更新時刻832に記述する。
具体的には、受信端末関連性更新部550は、まず、再送要求元のレコードの更新前の値に対して掛ける重み係数を、例えば以下の式(2)を用いて算出する。
重み係数 = −1 / 0.05
× ( 今回の再送要求受信時刻 − 前回のレコード更新時刻 ) + 1
・・・・・・(2)
なお、上記式(2)において、今回の再送要求受信時刻とは、今回の再送要求パケットの受信時刻であり、前回のレコード更新時刻とは、関連性保存テーブル810のうち今回の再送要求元のレコードが最後に更新された時刻である。前回のレコード更新時刻には、レコード更新時刻テーブル830のうち、今回の再送要求元の前回更新時刻832に記述された値を用いればよい。
すなわち、受信端末関連性更新部550は、前回のレコード更新からの経過時間を0.05で割った値を1から引いた値を、重み係数として算出する。重み係数の最小値は0.1とする。したがって、受信端末関連性更新部550は、例えば、式(2)で算出した値が0.1以下となる場合には、重み係数を0.1に決定する。式(2)の1項目の分母(ここでは0.05)は、関連性保存テーブル810のネットワーク変化への追従性を決定付けるパラメータであり、再送要求受信時刻と同単位の値となる。
式(2)により算出される重み係数は、再送要求元のレコードの前回の更新から時間が経過すればするほど、小さい値となる。
受信端末関連性更新部550は、算出した重み係数を用いて、例えば以下に示す式(3)を用いて、再送要求元のレコードの総再送要求受信数814の値を更新する。
総再送要求受信数 = 現在の総再送要求受信数 × 重み係数 + 1・・・・・・(3)
また、受信端末関連性更新部550は、算出した重み係数を用いて、例えば以下に示す式(4)を用いて、再送要求元のレコードの再送要求受信数815の全ての値を更新する。
再送要求受信数 = 再送要求受信数 × 重み ・・・・・・(4)
すなわち、受信端末関連性更新部550は、再送要求元のレコードに対し、現在記述されている値に重み係数を乗じた上で、今回の再送要求に対応する更新を行う。これにより、前回のレコードの更新から時間が経過すればするほど、今回の更新内容に対して相対的により強い重みが掛けられる。
なお、式(2)の1項目の分母の0.05は一例であり、本値を小さくすればより時間的に新しい再送要求パケットの影響を強くすることができ、逆に大きくすればネットワークへの追従性を下げることができる。また、最小値の0.1も一例であり、過去の履歴をどの程度加味するかにより変更可能な値である。
また、受信端末関連性更新部550は、選択している受信端末300のレコードの再送要求シーケンス番号813に、今回の再送要求シーケンス番号と同一のシーケンス番号が記述されている場合には、ステップS2500の後、ステップS2601に進む。
ステップS2601で、受信端末関連性更新部550は、選択されている受信端末300のレコードの再送要求受信数815および総再送要求受信数814の値を、今回受信した再送要求パケットに基づく更新内容に対してより強い重みが掛かるように更新する。そして、受信端末関連性更新部550は、現在時刻を取得し、レコード更新時刻テーブル830のうち、選択されている受信端末300の前回更新時刻832に記述する。
具体的には、受信端末関連性更新部550は、まず、選択されている受信端末300のレコードの更新前の値に対して掛ける重み係数を、例えば上記式(2)により算出する。ただし、ここでの前回のレコード更新時刻とは、関連性保存テーブル810のうち選択されている受信端末300のレコードが最後に更新された時刻である。前回のレコード更新時刻には、レコード更新時刻テーブル830のうち、選択されている受信端末300の前回更新時刻832に記述された値を用いればよい。
そして、受信端末関連性更新部550は、例えば、算出した重み係数と上記式(4)とを用いて、選択されている受信端末300のレコードの再送要求受信数815のうち、再送要求元以外の全ての受信端末300の値を更新する。
また、受信端末関連性更新部550は、例えば、算出した重み係数と以下に示す式(5)とを用いて、選択されている受信端末300のレコードの再送要求受信数815のうち、再送要求元の値を更新する。
再送要求受信数 = 現在の再送要求受信数 × 重み + 1 ・・・・・・(5)
更に、受信端末関連性更新部550は、例えば、算出した重み係数と以下に示す式(6)とを用いて、選択されている受信端末300のレコードの総再送要求受信数814の値を更新する。
総再送要求受信数 = 現在の総再送要求受信数 × 重み ・・・・・・(6)
すなわち、受信端末関連性更新部550は、選択されている受信端末300のレコードに対し、現在記述されている値に重み係数を乗じた上で、今回の再送要求に対応する更新を行う。これにより、前回のレコードの更新から時間が経過すればするほど、今回の更新内容に対して相対的により強い重みが掛けられる。
上記したステップS2500、S2601の処理は、今回再送要求されているシーケンス番号と同一のシーケンス番号について既に再送要求を送信してきている受信端末300の全てに対して実行される。
このように、受信端末関連性更新部550による関連性更新処理の結果、関連性保存テーブル810は、時間軸で重み付けをして更新される。
なお、レコード更新時刻テーブル830の更新は、関連性更新処理の最後にまとめて行うようにしても良い。
前回の更新からの経過時間が長ければ長いほど最新の更新内容の重みをより強くすることにより、配送木の変化があった場合に、関連性保存テーブル810の内容を、現状の配送木に合致した内容により短時間で近付けることができる。すなわち、配送木の変化に対する関連性保存テーブル810の内容の追従性を向上させることができる。
ここで、上記処理による関連性保存テーブル810の記述内容の変化の様子の一例を説明する。
図15は、ある時点の関連性保存テーブル810の内容を示す図である。図16および図17は、図15に示す関連性保存テーブル810に対して図14に示す関連性更新処理が行われた場合の、関連性保存テーブル810の記述内容の変化の様子を示す図である。
ここでは、1439.0340[sec]の時刻に、受信端末Dからシーケンス番号「10」を指定した再送要求パケットを受信した場合の、関連性保存テーブル810の記述内容の変化を例にとって示している。また、上記受信時刻に、レコード更新時刻テーブル830は、図13に示す状態であったとする。
再送要求元である受信端末Dのレコードの、前回の更新時刻と今回の更新時刻との時間差は、1439.0340−1439.0040=0.03[sec]である。したがって、式(2)を用いて算出される重み係数は、 −1 / 0.05 × 0.03 + 1 = 0.4 となる。
受信端末Dのレコードにおける総再送要求受信数814の更新前の値は、図15に示すように、「29」である。したがって、受信端末Dの総再送要求受信数814の値は、式(3)と重み係数0.4とを用いた結果、図16に示すように、29×0.4+1=12.6に更新される。
受信端末Dのレコードにおける再送要求受信数815の更新前の受信端末A〜C、Dの値は、図15に示すように、「5」、「25」、「5」、「22」である。したがって、受信端末Dのレコードにおける再送要求受信数815の受信端末A〜C、Dの値は、式(4)と重み係数0.4とを用いた結果、図16に示すように、「2」、「10」、「2」、「8.8」に更新される。
ここで、図14のステップS2300で、受信端末Eよりも先に受信端末Bが選択されたものとする。受信端末B、Eは、今回の再送要求シーケンス番号(ここではシーケンス番号「10」)と同一のシーケンス番号の再送要求を既に行っているものとする。
受信端末Bのレコードの、前回の更新時刻と今回の更新時刻との時間差は、1439.0340−1439.0071=0.037[sec]である。したがって、式(2)を用いて算出される重み係数は、 −1 / 0.05 × 0.037 + 1 = 0.26 となる。
受信端末Bのレコードにおける再送要求受信数815の更新前の受信端末A、C〜Eの値は、図15に示すように、「5」、「5」、「25」、「30」である。したがって、受信端末Bのレコードにおける再送要求受信数815の受信端末A、C、E(再送要求元以外の受信端末300)の値は、式(4)と重み係数0.26とを用いた結果、図16に示すように、「1.3」、「1.3」、「7.8」に更新される。そして、受信端末Bのレコードにおける再送要求受信数815の受信端末D(再送要求元)の値は、式(5)と重み係数0.26とを用いた結果、図16に示すように、「7.5」に更新される。
また、受信端末Bのレコードの総再送要求受信数814は、図15に示すように、「30」である。したがって、受信端末Bのレコードの総再送要求受信数814の値は、式(6)と重み「0.26」とを用いた結果、図16に示すように、「7.8」に更新される。
受信端末Eのレコードの、前回の更新時刻と今回の更新時刻との時間差は、1439.0340−1439.0010=0.033[sec]である。したがって、式(2)を用いて算出される重みは、−1/0.05×0.033+1=0.34となる。
受信端末Eのレコードにおける再送要求受信数815の更新前の受信端末A〜Dの値は、図16に示すように、「5」、「30」、「5」、「24」である。したがって、受信端末Eのレコードにおける再送要求受信数815の受信端末A〜C(再送要求元以外の受信端末300)の値は、式(4)と重み係数0.34とを用いた結果、図17に示すように、「1.7」、「10.2」、「1.7」に更新される。そして、受信端末Eのレコードにおける再送要求受信数815の受信端末D(再送要求元)の値は、式(5)と重み係数0.34とを用いた結果、図17に示すように、「9.16」に更新される。
また、受信端末Eのレコードの総再送要求受信数814は、図15に示すように、「30」である。したがって、受信端末Eのレコードの総再送要求受信数814の値は、式(6)と重み「0.34」とを用いた結果、図17に示すように、「10.2」に更新される。
なお、重み付けを細かく実施するために、一定時間ごとの総再送要求数および関連する受信端末300の再送要求数の履歴を、過去複数回分保存しておき、履歴ごとに重み係数を設定するようにしても良い。
この場合、受信端末関連性更新部550は、一定時間ごとの総再送要求数および関連する受信端末300の再送要求数の履歴を過去複数回分保存したテーブル(以下「履歴保存テーブル」という)を作成し、この履歴保存テーブルに基づいて、関連性保存テーブル810の更新を行う。以下、上記履歴保存テーブルの内容および更新処理と、履歴保存テーブルに基づく関連性保存テーブル810の更新処理について、それぞれのテーブルの変化の様子の一例を用いて説明する。
図18は、ある時点における関連性保存テーブル810の内容の一例を示す図であり、図19は、上記時点における履歴保存テーブルの内容の一例を示す図である。また、図20、図22は、図19の履歴保存テーブルの記述内容の変化の様子を示す図であり、図21、図23は、図18の関連性保存テーブル810の記述内容の変化の様子を示す図である。以下、添え字「i」は再送要求に関する最も新しい履歴、添え字「ii」は次に新しい履歴、添え字「iii」は更に次に新しい履歴であることをそれぞれ示す。
図19に示す履歴保存テーブル840は、受信端末関連性更新部550によって生成され、データ蓄積部230に保存される。履歴保存テーブル840は、受信端末841、前回更新時刻842、過去の履歴843、再送要求受信数の履歴844の欄を有する。過去の履歴844には、過去3回分の履歴843i〜843iiiが記述される。再送要求受信数の履歴844には、受信端末A〜Eごとに、過去3回分の履歴が記述される。
受信端末841には、受信端末A〜Eを識別する情報が記述される。他の各欄は、受信端末A〜Eごとに対応付けられている。以下、説明の簡便化のため、履歴保存テーブル840に記述された受信端末300ごとの情報の一まとまりを「履歴レコード」という。
また、履歴保存テーブル840の過去の履歴843と再送要求受信数の履歴844は、関連性保存テーブル810の総再送要求受信数814と再送要求受信数815にそれぞれ対応している。
受信端末関連性更新部550は、総再送要求受信数と関連する受信端末300の再送要求受信数とを、一定時間ごとに区切って、それぞれ履歴保存テーブル840の過去の履歴843と再送要求受信数の履歴844とに保存する。そして、受信端末関連性更新部550は、一定時間ごとに区切った履歴に新しさに応じた重み係数を掛け、その算出結果に基づいて、関連性保存テーブル810の総再送要求受信数814および再送要求受信数815を更新する。
ここでは、上記一定時間を10秒とし、保存する履歴は3回分とする。また、過去3回分の履歴に掛ける重み係数を、時間的に新しい方から順に、「0.6」、「0.3」、「0.1」とする。すなわち、より新しい履歴に対してより強い重み付けを行う。古い履歴をより重視したい場合には、古い履歴の重み係数を高く設定し、新しい履歴をより重視したい場合には、新しい履歴の重みを高く設定すれば良い。
受信端末関連性更新部550は、再送要求パケットが受信されるごとに、再送要求元の前回のレコード更新時刻から10秒が経過したか否かを判断する。そして、10秒以内の場合には、履歴保存テーブル840における最新の履歴の数値書き換えを行い、10秒を超えている場合には、最新の履歴の数値書き換えと併せて、履歴保存テーブル840における履歴情報のシフトを行う。
ここでは、今回の再送要求パケットが、受信端末Dから送信されたものであり、その受信時刻が1439.8050[sec]であったとする。この場合、受信端末Dの前回のレコード更新時刻1439.0040[sec]からの経過時間は10秒以内である。したがって、受信端末関連性更新部550は、履歴保存テーブル840に対して、履歴情報のシフトは行わず、最新の履歴の数値書き換えのみを行う。
受信端末関連性更新部550は、まず、履歴保存テーブル840のうち、再送要求元である受信端末Dの履歴レコードの過去の履歴843iの値に1を加える。これにより、図20に示すように、受信端末Dの履歴レコードの過去の履歴843iの値は、「20」に更新される。
また、受信端末関連性更新部550は、今回の再送要求シーケンス番号と同一のシーケンス番号の再送要求を既に行っている受信端末300が存在する場合には、再送要求受信数の履歴844のうち、関連性保存テーブル810で更新される値に対応する値に、1を加算する。ここで、受信端末B、Eは、今回の再送要求シーケンス番号と同一のシーケンス番号の再送要求を既に行っているものとする。この場合、図20に示すように、受信端末Dの履歴レコードのうち、再送要求受信数の履歴844の、受信端末B、Eの履歴Bi、Eiの値は、それぞれ「20」および「23」に更新される。また、図20に示すように、受信端末B、Eの履歴レコードのうち、再送要求受信数の履歴844の、受信端末Dの履歴Diの値は、「21」に更新される。
次に、受信端末関連性更新部550は、関連性保存テーブル810のうち、履歴保存テーブル840で更新された履歴レコードに対応するレコードを、履歴保存テーブル840の更新後の値に基づいて更新する。具体的には、履歴保存テーブル840の過去3回分の履歴に重み係数を乗じた値の合計を算出し、算出した値を関連性保存テーブル810の対応部分に記述する。
この結果、関連性保存テーブル810のうち、受信端末Dのレコードの総再送要求受信数814は、図21に示すように、設定された重み係数と受信端末Dの履歴レコードの過去の履歴843から、 0.6 × 21 + 0.3 × 15 + 0.1 × 5 = 17.6 に更新される。同様にして、受信端末B、D、Eのレコードの再送要求受信数815dの全ての値が更新される。
そして、受信端末関連性更新部550は、履歴保存テーブル840のうち、レコードの更新の対象となった受信端末B、D、Eの前回更新時刻842に、現在時刻を記述する。ここでは、1450.1123[sec]が記述されるものとする。
このようにして、関連性保存テーブル810は時間的に新しい履歴により強い重みを付けた状態で更新される。
次に、既に受信端末B、Eから再送要求シーケンス番号として受信しているシーケンス番号を指定した再送要求を、時刻1450.1123[sec]に、受信端末Dから受信したとする。この場合、前回の更新時刻1439.0040[sec]からの経過時間は、約11.1秒、つまり10秒以上である。
受信端末関連性更新部550は、まず、時間差を10秒で除した値を小数点以下切捨てた値を算出し、今回の再送要求に関連する受信端末の履歴レコードの内容を、算出された値の分だけ過去側にそれぞれシフトさせる。
ここでは、11.1/10=1.1となるので、図22に示すように、図20に示す履歴保存テーブル840のうち、今回の再送要求に関連する受信端末B、D、Eの最も新しい履歴(i)および次に新しい履歴(ii)が、それぞれ古い側に1つずつシフトされる。シフト後の処理は、前回の更新からの経過時間が10秒未満の場合と同様である。
この結果、図23に示すように、関連性保存テーブル810のうち受信端末B、D、Eのレコードの全てが更新される。
このようにして、過去の再送要求の重み付けを細かく実施することができる。これにより、時間軸における重みの分布をより高い自由度で設定できる。また、一定時間以内の新しい履歴のみを利用して関連度を算出できるため、ネットワークの状況変化への追従性を更に向上させることができる。
なお、更に細かに重み付けを行いたい場合には、履歴保存テーブル840に記録する過去の履歴の数をより多くすれば良い。
このように、本実施の形態によれば、関連性保存テーブルの更新において、時間的により新しい再送要求に基づく更新内容に対して、より強い重みを与えることができる。これにより、追従性の良い配送木推定が可能となり、配送木が通信中に変更される環境や、配送木の下流におけるネットワークの状態変化が激しいような環境においても、再送パケットを早いタイミングで送出することができる。
なお、配送木やネットワークの状態の変化の程度や速度に応じて、各履歴の重み付けを変更するようにしても良い。この場合には、配送木やネットワークの状態の変化に対する追従性と、推定の精度とを、バランス良く確保することが可能となる。
(実施の形態3)
実施の形態3は、推定した配送木が実際の配送木と異なり、先行的な再送パケット送信の再送先の選択が失敗した場合にこれを検出し、失敗の結果を関連性保存テーブルに反映することにより、ネットワークの状態変化への追従性の向上を図る場合である。
ある受信端末から、その受信端末への再送の対象としていないシーケンス番号であって、他の受信端末への再送の対象としているシーケンス番号を、再送要求シーケンスとして受信したとする。この場合、過去の再送処理において、再送先の選択を失敗していたことが推定できる。このような失敗は、例えば、配送木やネットワークが変化したときに生じる。そこで、本実施の形態の送信端末は、再送要求を受信するごとに、その再送要求が過去の再送先選択の失敗によるものか否かを判断し、過去の再送先選択の失敗である場合には、関連性保存テーブルに修正を加えることにより、同じ失敗の防止を図るようにしている。
図24は、実施の形態3に係るデータ送信装置としての送信端末の構成を示すブロック図であり、実施の形態1の図2に対応するものである。図2と同一部分には同一符号を付し、これについての説明を省略する。
図24において、送信端末600は、再送先選択結果反映部690を更に有するとともに、図2の再送要求受信部240に代えて再送要求受信部640を有する。
再送要求受信部640は、受信した再送要求パケットから、再送要求シーケンス番号と再送要求元情報とを取得する。そして、再送要求受信部640は、データ蓄積部230に格納された関連性保存テーブル810(図3参照)を調べ、取得した再送要求シーケンス番号が、再送要求元のレコードの再送済シーケンス番号812に記述されておらず、かつ他の受信端末300のレコードの再送済シーケンス番号812には記述されているという条件を満たすか否かを判断する。
再送要求受信部640は、上記条件を満たさない場合には、実施の形態1と同様に、受信端末関連性更新部250に再送要求シーケンス番号と再送要求元情報とを出力する。一方、上記条件を満たす場合には、再送要求受信部640は、再送先の受信端末の選択に失敗があったものとして、再送先選択結果反映部690に再送要求シーケンス番号と再送要求元情報とを出力する。
再送先選択結果反映部690は、関連性保存テーブル810において、再送要求受信部640から入力された再送要求シーケンス番号と同一のシーケンス番号のデータを既に再送している他の受信端末300のレコードに修正を加える。具体的には、再送先選択結果反映部690は、上記他の受信端末300のレコードの再送要求受信数815のうち、再送要求元の値を増加させる。これにより、以降に上記他の受信端末300から再送要求パケットを受信した場合に、上記再送要求元が再送先として選択され易くなるようにする。
以下、上記構成を有する送信端末600の動作について説明する。ここでは、図25〜図28を用いて、再送要求パケットを受信したときの送信端末600の動作について説明する。
図25は、再送要求パケットを受信したときの送信端末600の全体動作の流れを示すフローチャートであり、実施の形態1の図5に対応するものである。図5と同一部分には同一ステップ番号を付し、これについての説明を省略する。
再送要求受信部640で再送要求パケットが受信されると(ステップS1000)、処理はステップS1100に進む。
ステップS1100で、再送要求受信部640は、今回の再送要求シーケンス番号と同一のシーケンス番号に対する再送パケットを、再送要求元以外の他の受信端末300に既に送信しているか否かを判別する。具体的には、再送要求受信部640は、関連性保存テーブル810のうち再送要求元以外の受信端末300のレコードの再送済シーケンス番号812で、再送要求シーケンス番号と同一のシーケンス番号を探索する。同一のシーケンス番号に対する再送パケットを他の受信端末300に送信していない場合には(S1100:NO)、処理はステップS2000に進む。一方、同一のシーケンス番号が存在し、同一のシーケンス番号に対する再送パケットを他の受信端末300に既に送信している場合には(S1100:YES)、処理はステップS1200に進む。
ステップS1200で、再送要求受信部640は、今回の再送要求シーケンス番号と同一のシーケンス番号に対する再送パケットを、再送要求元に既に送信しているか否かを判別する。具体的には、再送要求受信部640は、関連性保存テーブル810のうち再送要求元のレコードの再送済シーケンス番号812に、再送要求シーケンス番号と同一のシーケンス番号が記述されているか否かを調べる。再送要求シーケンス番号と同一のシーケンス番号が記述されている場合には(S1200:YES)、単に過去に送信した再送パケットにパケットロスが発生したものとして、処理はステップS2000に進む。一方、再送要求シーケンス番号と同一のシーケンス番号が記述されていない場合には(S1200:NO)、処理はステップS1300に進む。
S1300で、再送要求受信部640は、再送要求シーケンス番号と再送要求元情報とを、再送先選択結果反映部690に出力する。再送要求受信部640は、シーケンス番号と再送要求元情報を入力されると、再送要求先が再送先の選択から漏れているとして、関連性保存テーブル810を修正する再送先選択結果修正処理を実行する。そして、処理はステップS2000に進み、以降、実施の形態1と同様に、関連性更新処理および再送先チェック処理を経て、再送パケットが送信される。
図26は、再送先選択結果修正処理(図25のステップS1300)の流れを示すフローチャートである。
ステップS1310で、再送先選択結果反映部690は、再送要求元以外の受信端末300を1つ選択する。
ステップS1320で、再送先選択結果反映部690は、関連性保存テーブル810において、選択されている受信端末300のレコードの再送済シーケンス番号813に、再送要求シーケンス番号と同一のシーケンス番号が記述されているか否かを調べる。再送先選択結果反映部690は、同一のシーケンス番号が記述されている場合には(S1320:YES)、ステップS1330に進み、同一のシーケンス番号が記述されていない場合には(S1320:NO)、ステップS1340に進む。
ステップS1330で、再送先選択結果反映部690は、選択されている受信端末300のレコードの再送要求受信数815のうち再送要求元の値を増加させる。また、再送先選択結果反映部690は、修正後の再送要求受信数が、選択されている受信端末300のレコードの総再送要求受信数814を超えてしまう場合には、修正幅が大きすぎると判断し、該当する再送要求受信数を、総再送要求受信数814と同一の値に変更する。再送要求元の値の増加には、例えば以下の式(7)を用いれば良い。
再送要求受信数 = 現在の再送要求受信数 × 1.1 ・・・・・・(7)
式(7)を用いた場合、選択されている受信端末300のレコードにおける再送要求元の再送要求受信数は1.1倍される。これにより、選択されている受信端末300から再送要求を受信したときに、今回の再送要求元が先行的な再送パケットの送信先として選択されやすくなる。
なお、式(7)における1.1の値を大きくすれば、再送要求元をより選択し易くしたり、より短時間のうちに再送先として選択されるようにすることができ、逆に小さくすれば、再送先選択結果反映部690による修正の影響を低減できる。また、再送要求受信数の値の増加は、例えば、現在の再送要求受信数に単純に一定値を加算することにより行ったり、選択されている受信端末300の総再送要求受信数との差分から増加分を決定することにより行っても良い。
そして、ステップS1340で、再送先選択結果反映部690は、未選択の受信端末300があるか否かを判断する。再送先選択結果反映部690は、未選択の受信端末300がある場合には(S1340:YES)、ステップ1310に戻って未選択の受信端末300を1つ選択して処理を繰り返し、全ての受信端末300について処理を完了した場合には(S1340:NO)、一連の処理を終了し、図25に示す処理に戻る。
このように、再送先選択結果反映部690による再送先選択結果修正処理の結果、関連性保存テーブル810は、再送先の選択の失敗を反映させる形で、現状の配送木の状態に近付ける方向に修正される。そして、修正後の関連性保存テーブル810に対して、ステップS2000の関連性更新処理が行われることになる。
以下、上記処理による関連性保存テーブル810の記述内容の変化の様子を説明する。
図27は、ある時点の関連性保存テーブル810の内容を示す図である。また、図28は、図27に示す関連性保存テーブル810に対して再送先選択結果修正処理が行われた場合の、関連性保存テーブル810の記述内容の変化の様子を示す図である。
図27に示す関連性保存テーブル810では、受信端末B、Eのレコードにのみ、再送済シーケンス番号812にシーケンス番号「10」が記述されている。この状態にあるとき、受信端末Dからシーケンス番号「10」を指定した再送要求パケットを受信したとする。
受信端末B、Eのレコードの再送済シーケンス番号812にはシーケンス番号「10」が記述されており、再送要求元である受信端末Dのレコードの再送済シーケンス番号812にはシーケンス番号「10」が記述されていないため、処理は再送先選択結果反映部690に渡される。
そして、受信端末B、Eのレコードの再送要求受信数815のうち、受信端末Dの値が、増加の方向に更新される。式(7)が用いられた場合、受信端末Bのレコードの再送要求受信数815のうち受信端末Dの値は、図28に示すように、20×1.1=22に更新される。また、受信端末Eのレコードの再送要求受信数815のうち受信端末Dの値は、図28に示すように、23×1.1=25.3に更新される。
このように、本実施の形態によれば、過去の再送パケット送信において再送先に選択されていない受信端末300から再送要求パケットが到着したとき、先行的に再送され易くなるように、関連性保存テーブル810を修正する。これにより、配送木やネットワークの状態の変化に素早く追従して関連性保存テーブルを修正することができ、低遅延での再送制御をより確実に実施することができる。
なお、以上説明した各実施の形態では、明示的マルチキャスト方式によるパケット配信を行う送信端末について説明したが、これに限定されるものではなく、本発明は、オーバレイマルチキャスト方式を含む各種のデータ送信装置に適用することが可能である。より具体的には、複数のデータ受信装置からデータの再送要求を受信するデータ送信装置に適用可能である。
本発明に係るデータ送信装置およびデータ再送方法は、配送木の構造が不明な場合でも再送パケットを早いタイミングで送出することができるデータ送信装置およびデータ再送方法として有用である。このデータ送信装置およびデータ再送方法によれば、低遅延なリアルタイム通信においても、再生時間までにパケットロスを回復するための再送パケットを受信することで受信端末の受信映像品質を向上することが可能であり、例えばテレビ会議システムやネットワークゲームのようなデータ送信装置およびデータ再送方法として有用である。また、パケット受信装置に至る経路上の装置の機能や装置間の関連性に依存しないため、特に、既存のネットワークにおけるマルチキャスト通信や、スモールグループ向けのマルチキャスト通信に好適である。
本発明の実施の形態1に係るデータ送信装置を含む通信システムの構成を示すシステム構成図 実施の形態1に係るデータ送信装置としての送信端末の構成を示すブロック図 実施の形態1における関連性保存テーブルの構成を示す図 実施の形態1における再送要求パケットの構成の一例を示す図 実施の形態1における再送要求パケットを受信したときの送信端末の全体動作の流れを示すフローチャート 実施の形態1における関連性更新処理の流れを示すフローチャート 実施の形態1における関連性保存テーブルの記述内容の変化の様子を示す図 実施の形態1における関連性保存テーブルの記述内容の変化の様子を示す図 実施の形態1における関連性保存テーブルの記述内容の変化の様子を示す図 実施の形態1における再送先チェック処理の流れを示すフローチャート 実施の形態1における関連性保存テーブルの記述内容の変化の様子を示す図 本発明の実施の形態2に係るデータ送信装置としての送信端末の構成を示すブロック図 実施の形態2におけるレコード更新時刻テーブルの内容の一例を示す図 実施の形態2における関連性更新処理の流れを示すフローチャート 実施の形態2におけるある時点の関連性保存テーブルの内容の一例を示す図 実施の形態2における関連性保存テーブルの記述内容の変化の様子を示す図 実施の形態2における関連性保存テーブルの記述内容の変化の様子を示す図 実施の形態2におけるある時点の関連性保存テーブルの内容の一例を示す図 実施の形態2における図18と同時点の履歴保存テーブルの内容の一例を示す図 実施の形態2における履歴保存テーブルの記述内容の変化の様子を示す図 実施の形態2における関連性保存テーブルの記述内容の変化の様子を示す図 実施の形態2における履歴保存テーブルの記述内容の変化の様子を示す図 実施の形態2における関連性保存テーブルの記述内容の変化の様子を示す図 本発明の実施の形態3に係るデータ送信装置としての送信端末の構成を示すブロック図 実施の形態3における再送要求パケットを受信したときの送信端末の全体動作の流れを示すフローチャート 実施の形態3における再送先選択結果修正処理の流れを示すフローチャート 実施の形態3におけるある時点の関連性保存テーブルの内容の一例を示す図 実施の形態3における関連性保存テーブルの記述内容の変化の様子を示す図 従来のマルチキャスト方式の通信システムの構成の一例を示すシステム構成図
符号の説明
100 通信システム
200、500、600 送信端末
210 データパケット生成部
220 データパケット送信部
230 データ蓄積部
240、640 再送要求受信部
250、550 受信端末関連性更新部
260 再送先選択部
270 再送部
300 受信端末
400 ネットワーク
690 再送先選択結果反映部

Claims (12)

  1. データの再送要求を受信する再送要求受信部と、
    第1のデータ受信装置から送られてきた再送要求の受信数の過去の履歴と、前記第1のデータ受信装置から送られてきた再送要求と対象を同一とする他のデータ受信装置から送られてきた再送要求の受信数の過去の履歴と、を蓄積する関連性更新部と、
    前記第1のデータ受信装置から再送要求を受信したとき、前記関連性更新部により蓄積された履歴から配送木を推定し、前記第1のデータ受信装置に加えて、前記推定された配送木において前記第1のデータ受信装置の下流に位置する他のデータ受信装置を、前記データの再送先として選択する再送先選択部と、
    を有するデータ送信装置。
  2. 前記再送要求受信部は、
    受信した再送要求から、その再送要求の対象を示す情報と、その再送要求の送信元のデータ受信装置を示す情報と、を抽出する、
    請求項1記載のデータ送信装置。
  3. 前記関連性更新部は、
    受信した再送要求の対象を示す情報を、その再送要求の送信元のデータ受信装置を示す情報に対応付けて記述した関連性保存テーブルを作成し、
    前記再送先選択部は、
    前記関連性保存テーブルを参照して前記配送木を推定する、
    請求項1記載のデータ送信装置。
  4. 前記関連性保存テーブルは、第1のデータ受信装置から送られてきた再送要求の総受信数と、前記第1のデータ受信装置から送られてきた再送要求と対象を同一とする他のデータ受信装置から送られてきた再送要求の受信数と、を更に記述し、
    前記関連性更新部は、
    前記関連性保存テーブルを参照して、前記第1のデータ受信装置から受信した再送要求と対象を同一とする再送要求を他のデータ受信装置から受信したか否かを判断し、この判断結果に基づいて前記関連性保存テーブルを更新する、
    請求項3記載のデータ送信装置。
  5. 前記再送先選択部は、
    前記第1のデータ受信装置から送られてきた再送要求と対象を同一とする他のデータ受信装置から送られてきた再送要求の受信数を、前記第1のデータ受信装置から送られてきた再送要求の総受信数で除した値を、関連度として算出し、前記関連度が所定の閾値よりも高いとき、該当する他のデータ受信装置が前記第1のデータ受信装置の下流に位置すると判断する、
    請求項4記載のデータ送信装置。
  6. 前記関連性更新部は、
    前記関連性保存テーブルの前記再送要求の総受信数および前記再送要求の受信数を、時間軸で重み付けをして更新する、
    請求項4記載のデータ送信装置。
  7. 前記関連性更新部は、
    前記関連性保存テーブルの更新前後の差分のうち、時間的により新しい更新の差分に対して、より強い重み付けを行う、
    請求項6記載のデータ送信装置。
  8. 前記第1のデータ受信装置以外の他のデータ受信装置から受信した再送要求の対象を、前記他のデータ受信装置に送信しておらず、かつ前記第1のデータ受信装置に送信しているとき、前記関連性テーブルに記述された値のうち、前記第1のデータ受信装置から送られてきた再送要求と対象を同一とする前記他のデータ受信装置から送られてきた再送要求の受信数の値を増加させる再送先選択結果反映部、を更に有する、
    請求項5記載のデータ送信装置。
  9. 前記関連性保存テーブルは、データ受信装置を示す情報に対応付けて、再送要求に対応して送信したデータを示す情報を記述し、
    前記再送先選択結果反映部は、
    前記関連性保存テーブルを参照して、前記第1のデータ受信装置以外の他のデータ受信装置から受信した再送要求の対象を、前記他のデータ受信装置に送信しておらず、かつ前記第1のデータ受信装置に送信しているか否かを判断する、
    請求項8記載のデータ送信装置。
  10. 前記第1のデータ受信装置が参加するグループへの配信の対象となるデータを格納しシーケンス番号を付されたデータパケットを、前記グループにマルチキャストで送信するデータパケット送信部と、
    前記グループにマルチキャストで送信されるデータパケットを蓄積するデータ蓄積部と、を更に有し、
    前記再送先選択部は、
    前記第1のデータ受信装置から受信した再送要求の対象を示す情報が前記シーケンス番号のとき、該当するデータパケットに格納されたデータを前記データ蓄積部から取得し、取得したデータを再送の対象とする、
    請求項2記載のデータ送信装置。
  11. 前記再送先選択部は、
    前記データ蓄積部から取得したデータを格納し、かつ前記再送先として選択したデータ受信装置を宛先とする再送パケットを生成し、
    前記再送先選択部により生成された再送パケットを、その再送パケットの宛先に送信する再送部、を更に有する、
    請求項10記載のデータ送信装置。
  12. 第1のデータ受信装置からデータの再送要求を受信する再送要求受信ステップと、
    第1のデータ受信装置から送られてきた再送要求の受信数の過去の履歴と、前記第1のデータ受信装置から送られてきた再送要求と対象を同一とする他のデータ受信装置から送られてきた再送要求の受信数の過去の履歴とから配送木を推定し、前記第1のデータ受信装置に加えて、前記推定した配送木において前記第1のデータ受信装置の下流に位置する他のデータ受信装置を、前記データの再送先として選択する再送先選択ステップと、
    前記再送先選択ステップで再送先として選択されたデータ受信装置に、前記データを送信する再送ステップと、
    を有するデータ再送方法。
JP2007182669A 2007-07-11 2007-07-11 データ送信装置およびデータ再送方法 Expired - Fee Related JP4869169B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2007182669A JP4869169B2 (ja) 2007-07-11 2007-07-11 データ送信装置およびデータ再送方法
CN2008800227709A CN101720543B (zh) 2007-07-11 2008-07-11 数据发送装置和数据重发方法
PCT/JP2008/001873 WO2009008181A1 (ja) 2007-07-11 2008-07-11 データ送信装置およびデータ再送方法
US12/668,271 US8259724B2 (en) 2007-07-11 2008-07-11 Data transmitting apparatus and data retransmitting method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007182669A JP4869169B2 (ja) 2007-07-11 2007-07-11 データ送信装置およびデータ再送方法

Publications (2)

Publication Number Publication Date
JP2009021818A JP2009021818A (ja) 2009-01-29
JP4869169B2 true JP4869169B2 (ja) 2012-02-08

Family

ID=40228372

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007182669A Expired - Fee Related JP4869169B2 (ja) 2007-07-11 2007-07-11 データ送信装置およびデータ再送方法

Country Status (4)

Country Link
US (1) US8259724B2 (ja)
JP (1) JP4869169B2 (ja)
CN (1) CN101720543B (ja)
WO (1) WO2009008181A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5650656B2 (ja) * 2010-06-28 2015-01-07 パナソニックIpマネジメント株式会社 通信端末、通信方法、プログラム、及び集積回路
JP2012014452A (ja) * 2010-06-30 2012-01-19 Fujitsu Ltd 情報処理装置、情報処理プログラム、情報処理方法
JP6241622B2 (ja) * 2012-11-28 2017-12-06 パナソニックIpマネジメント株式会社 受信端末および受信方法
JP6331263B2 (ja) * 2013-05-16 2018-05-30 富士通株式会社 通信装置、通信システム、及び通信方法
CN103269260A (zh) * 2013-06-03 2013-08-28 腾讯科技(深圳)有限公司 数据传输方法、数据接收端、数据发送端和数据传输系统
US20150189543A1 (en) * 2013-12-26 2015-07-02 International Datacasting Corporation System and Methods for Providing an Enhanced Content Proxy in a Wireless Network
CN108933798B (zh) * 2017-05-23 2022-02-18 杭州海康威视数字技术股份有限公司 数据存储方法、存储服务器及系统
CN109428399B (zh) * 2017-08-28 2022-02-08 国家能源投资集团有限责任公司 储能系统监测方法、装置及系统
CN111835467B (zh) * 2020-07-28 2022-03-29 中国平安财产保险股份有限公司 消息发送方法、装置、计算机设备和存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69938094T2 (de) * 1998-11-30 2009-02-05 Matsushita Electric Industries Co. Ltd., Kadoma Paketwiederübertragungskontrolle mit Prioritätsinformationen
JP2003209576A (ja) 2002-01-15 2003-07-25 Matsushita Electric Ind Co Ltd マルチキャスト通信方法及びそのシステム
WO2006081454A2 (en) * 2005-01-26 2006-08-03 Internet Broadcasting Corporation Layered multicast and fair bandwidth allocation and packet prioritization
US7778273B2 (en) * 2005-10-21 2010-08-17 Microsoft Corporation Application-level multicasting architecture
US7457257B2 (en) * 2005-11-17 2008-11-25 International Business Machines Corporation Apparatus, system, and method for reliable, fast, and scalable multicast message delivery in service overlay networks
WO2009093457A2 (en) * 2008-01-24 2009-07-30 Panasonic Corporation Multimedia data transmitting apparatus and multimedia data management method

Also Published As

Publication number Publication date
CN101720543B (zh) 2013-06-12
US8259724B2 (en) 2012-09-04
CN101720543A (zh) 2010-06-02
WO2009008181A1 (ja) 2009-01-15
US20100183012A1 (en) 2010-07-22
JP2009021818A (ja) 2009-01-29

Similar Documents

Publication Publication Date Title
JP4869169B2 (ja) データ送信装置およびデータ再送方法
CN102859950B (zh) 估计拥塞的方法
US10200300B2 (en) Maintaining named data networking (NDN) flow balance with highly variable data object sizes
US9432876B2 (en) Data forwarding in hybrid mesh networks
JP5084405B2 (ja) ループフリーアドホックルーティングを行なうシステム
JP4454320B2 (ja) 伝送装置、伝送制御プログラム、及び伝送方法
US8499211B1 (en) Network-based service for the repair of IP multicast sessions
JP4857262B2 (ja) エンド・ツー・エンドの信頼性のあるグループ通信のための方法および装置
US20120005549A1 (en) Transfer apparatus, transfer program, and transfer method
WO2016045332A1 (zh) 编码参数的调整、反馈信息的处理方法及装置
CN105721536A (zh) 用于信息中心联网的兴趣确认
CN103650399B (zh) 纠正数据单元的自适应生成
KR20170037818A (ko) 작은 다중 경로 또는 단일 경로 포워딩 상태를 이용한 정보 중심 네트워킹
WO2007135959A1 (ja) 通信端末装置および再送要求方法
JP2014534776A (ja) 全範囲の保護を提供するip高速リルート方式
JP4969342B2 (ja) 受信端末及び受信方法
US8321754B2 (en) Method for transmitting multimedia data in ad hoc communication networks
JP5632384B2 (ja) 送信端末及び帯域推定方法
US20120155268A1 (en) Packet relay device
US10334322B1 (en) System and method for media delivery on broadcast video networks
US8238335B2 (en) Multi-route transmission of packets within a network
JP6547973B2 (ja) ストリーム制御の方法およびシステム
JPWO2007015482A1 (ja) 送信装置および送信レート制御方法
JP2005318395A (ja) 無線ネットワークシステム、無線ネットワークシステムのパケットロス軽減方法、及び、無線通信装置
JP2009010575A (ja) マルチキャスト通信のための中継装置、並びに端末装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100113

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111025

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111115

R150 Certificate of patent or registration of utility model

Ref document number: 4869169

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141125

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees