[go: up one dir, main page]

JP4711921B2 - 通信端末装置および再送要求方法 - Google Patents

通信端末装置および再送要求方法 Download PDF

Info

Publication number
JP4711921B2
JP4711921B2 JP2006255098A JP2006255098A JP4711921B2 JP 4711921 B2 JP4711921 B2 JP 4711921B2 JP 2006255098 A JP2006255098 A JP 2006255098A JP 2006255098 A JP2006255098 A JP 2006255098A JP 4711921 B2 JP4711921 B2 JP 4711921B2
Authority
JP
Japan
Prior art keywords
packet
retransmission request
retransmission
data
unit
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.)
Active
Application number
JP2006255098A
Other languages
English (en)
Other versions
JP2008005455A (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 JP2006255098A priority Critical patent/JP4711921B2/ja
Priority to PCT/JP2007/060155 priority patent/WO2007135959A1/ja
Priority to CN2007800066488A priority patent/CN101390348B/zh
Priority to US12/301,598 priority patent/US8023509B2/en
Publication of JP2008005455A publication Critical patent/JP2008005455A/ja
Application granted granted Critical
Publication of JP4711921B2 publication Critical patent/JP4711921B2/ja
Active 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/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • H04L12/1868Measures taken after transmission, e.g. acknowledgments
    • 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/1809Selective-repeat protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • 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
    • 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/0097Relays

Landscapes

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

Description

本発明は、マルチキャスト通信における通信端末装置および再送要求方法に関し、特に、マルチキャスト通信においてパケットロスが発生した場合に、パケット再送要求を行う通信端末装置および再送要求方法に関する。
近年、ネットワークの急速な発展に伴って、テレビ会議やネットワークゲームなどで、1つの送信ノードが複数の受信ノードに同一のパケットを送信する機会が増大している。このような場合、送信ノードは、すべての受信ノードに対して効率的に同一のパケットを送信することができるマルチキャスト通信で配信を行うことが多い。例えば、送信ノードは、パケットの配信先となる受信ノードを10台程度の受信ノードから構成されるグループに分け、グループごとにパケットをマルチキャスト通信で配信する。
グループごとにマルチキャスト通信を行う通信方式の一つとして、明示的マルチキャスト方式がある。明示的マルチキャスト方式では、送信ノードは、グループ内の全受信ノードのアドレスをパケットのオプションヘッダまたはペイロードに記載することで、全受信ノードを明示的に指定する。代表的な明示的マルチキャスト方式として、XCAST(Explicit Multicast)がある(非特許文献1参照)。
一般的に、同一グループ内の受信ノードにマルチキャスト通信を行う場合、経路上のすべてのパケット中継装置(以下「ルータ」という)がマルチキャスト通信に対応していなければならない。しかし、明示的マルチキャスト方式では、経路上のすべてのルータが明示的マルチキャスト方式に対応していなくても、送信ノードはパケット内にアドレスが記載された全受信ノードにパケットを配信することができる。その際、パケットのヘッダ内のビット列(以下「ビットマップ」という)は、各受信ノードについてパケットが配送されたか否かを管理する。
ここで、明示的マルチキャスト方式の通信におけるパケット配信方法を、経路上のすべてのルータが明示的マルチキャスト方式に対応している場合と、明示的マルチキャスト方式に対応していない場合とに分けて説明する。経路上の一部のルータのみが明示的マルチキャスト方式に対応している場合も、同様の配信方法ですべての受信ノードにパケットを配信できる。
明示的マルチキャスト方式に対応しているルータ(以下「対応ルータ」という)は、他のノードからパケットを受信すると、パケットのオプションヘッダまたはペイロードに記載されたすべての宛先アドレスについて自身の持つユニキャスト経路表を検索することで、各宛先アドレスに対応した送信インターフェースを調べる。次いで、対応ルータは、送信先のインターフェースの数だけパケットを複製し、各インターフェースに対応するパケットを送信する。このとき、対応ルータは、複製された各パケットについてヘッダ内のビットマップを走査し、送信先のインターフェースに含まれない受信ノードに対応するビットに配送済みのマークを付加する。さらに、対応ルータは、IPヘッダに記載された宛先アドレスを未配送の受信者の宛先アドレスに書き換える。このように、経路上の対応ルータがパケットの複製および送信を繰り返すことにより、パケットがすべての受信ノードへ配信される。
一方、明示的マルチキャスト方式に対応していないルータ(以下「未対応ルータ」という)は、他のノードからパケットを受信すると、パケットのオプションヘッダまたはペイロードに記載された宛先アドレスを参照せずに、IPヘッダに記載された宛先アドレスについて自身の持つユニキャスト経路表を検索することで、通常のユニキャスト通信と同様にパケットを送信する。受信ノードは、パケットを受信すると、ヘッダ内のビットマップを走査し、未配送の宛先アドレスの有無を確認する。未配送の宛先アドレスがあった場合、受信ノードは、IPヘッダの宛先アドレスを未配送の宛先アドレスに書き換えたパケットを複製し、ルータに対して送信する。その際、受信ノードは、ビットマップ内の自ノードに対応するビットに配送済みのマークを付加する。このように、受信ノードが受信したパケットを再びルータに対して送信することにより、パケットがすべての受信ノードへ転送される。このような配送は、「数珠繋ぎ配送」と呼ばれる。
以上の仕組みから、明示的マルチキャスト方式では、経路上のすべてのルータが明示的マルチキャスト方式に対応していなくても、すべての受信ノードに対してパケットを配信できる。そのため、明示的マルチキャスト方式を用いれば、インターネット上で経路上のすべてのルータを対応ルータに置き換えることなく、インターネットを用いてマルチキャスト通信を行うことができる。
一般的に、ネットワーク通信において輻輳などが発生した場合、ネットワークを流れるパケットが失われてしまうことがある(以下「パケットロス」という)。ファイル転送などデータを損失してはならない通信においてパケットロスが発生した場合、受信ノードは送信ノードに対してパケットロスが発生したパケットの再送を要求する。しかし、マルチキャスト通信では、パケットロスを検知したすべての受信ノードが送信ノードに対して再送要求を行うと、再送要求を受信する送信ノードの負荷が増大して通常の通信に影響を及ぼすという問題がある。このような問題を解決するべく、受信ノードが送信ノード以外のノードに対して再送要求を行うという、次の2つの方式が開示されている。
第1の方式は、ネットワーク上に再送用の中間ノードを設ける方式である。パケットロスを検知した受信ノードは、マルチキャスト通信を用いて中間ノードに対して再送要求を行う。再送要求を受けた中間ノードは、再送要求を行った受信ノードに対してユニキャスト通信またはマルチキャスト通信を用いてパケットを再送する(例えば、特許文献1参照)。
第2の方式は、ネットワーク上に中間ノードを設けずに再送要求を行う方式である。パケットロスを検知した受信ノードは、ランダム時間待機した後、すべての受信ノードに対して再送要求をマルチキャスト通信で送信する。再送要求を受け取った受信ノードは、あらかじめ定められた確率に則って、再送パケットをマルチキャスト通信で送信する。受信ノードは、自らがパケットを再送する前に他の受信ノードからの再送パケットを受信した場合は、再送要求を受け取っていても再送パケットを送信しない。また、受信ノードは、パケットロスを検知しても、再送要求を送信するまでの待機時間中に再送パケットがマルチキャスト通信によって到着すれば、再送要求を送信しない(例えば、非特許文献2参照)。
これらの方式の受信ノードは、マルチキャスト通信に参加している他の受信ノードのIPアドレスを知ることはできない。したがって、パケットロスを検知した受信ノードは、ユニキャスト通信ではなくマルチキャスト通信を用いて他のノードに再送要求パケットを送信する。
これらの方式を用いることにより、マルチキャスト通信においてパケットロスが発生した場合であっても、受信ノードは送信ノードに負荷をかけることなく他のノード(中間ノードまたは受信ノード)に再送要求を行うことができる。
特開2001−103051号公報 Y. Imai, M. Shin and Y. Kim, "XCAST6: eXplicit Multicast on IPv6", IEEE/IPSJ SAINT2003 Workshop 4, IPv6 and Applications, Orland, Jan. 2003. Sally Floyd, Van Jacobson, Ching-Gung Liu, Steven McCanne and Lixia Zhang, "A Reliable Multicast Framework for Light-weight Sessions and Application Level Framing", IEEE/ACM Transactions on Networking, November 1996.
しかしながら、上記従来の方式にあっては、パケットロスが発生する度にネットワーク全体に再送要求パケットが流れるため、ネットワーク全体の帯域に高負荷がかかるという課題がある。また、再送要求パケットを受信したすべてのノード(中間ノードまたは受信ノード)が再送要求受信処理を行うため、各ノードの処理負荷が増大するという課題がある。
本発明は、かかる点に鑑みてなされたものであり、マルチキャスト通信において、ネットワーク全体の帯域および他のノードに負荷をかけずに再送要求を行うことができる通信端末装置および再送要求方法を提供することを目的とする。
本発明の通信端末装置は、データパケットを受信するパケット受信部と、前記パケット受信部が受信した一連のデータパケットにパケットロスが発生したことを検知するパケットロス検知部と、前記パケットロス検知部がパケットロスの発生を検知した場合に、前記パケット受信部が受信したデータパケットのアドレスリストに記載されている一つ以上のIPアドレスから、再送要求先のIPアドレスを選択する再送要求先選択部と、前記再送要求先のIPアドレスにパケットロスが発生したデータパケットのデータの再送を要求する再送要求パケットを作成する再送要求パケット作成部と、前記再送要求先のIPアドレスに前記再送要求パケットを送信するパケット送信部と、を備える構成を採る。
本発明の再送要求方法は、データパケットを受信するステップと、受信した一連のデータパケットにパケットロスが発生したことを検知するステップと、パケットロスが発生したことを検知した場合に、受信したデータパケットのアドレスリストに記載されている一つ以上のIPアドレスから、再送要求先のIPアドレスを選択するステップと、前記再送要求先のIPアドレスに前記パケットロスが発生したデータパケットのデータの再送を要求する再送要求パケットを作成するステップと、前記再送要求先のIPアドレスに前記再送要求パケットを送信するステップと、を有する。
本発明によれば、受信ノードとしての通信端末装置は、パケットロスを検知しても特定の受信ノードに対してユニキャスト通信で再送要求を行うため、ネットワーク全体の帯域およびすべてのノードに負荷をかけることなく再送要求を行うことができる。
以下、本発明の実施の形態について、図面を参照しつつ説明する。
(実施の形態1)
図1は、本発明の一実施の形態に係る通信端末装置の動作を説明するための通信ネットワークの概要を示す図である。
図1において、通信ネットワーク200は、1台の送信ノード300、3台のルータ400〜402、5台の通信端末装置100〜104から構成されている。
送信ノード300は、明示的マルチキャスト方式のデータパケットを作成し、通信端末装置100〜104に対して配信する。
ルータ400〜402は、通信ネットワーク200上のパケットに含まれる宛先アドレス情報に基づいて、パケットのルーティングを行う。
通信端末装置100〜104は、送信ノード300が送信したデータパケットを受信する受信ノードである。また、通信端末装置100〜104は、後述するように、パケットロスを検知したときに再送要求パケットの作成および送信を行い、再送要求パケットを受信したときに再送パケットの作成および送信を行う。
図2は、図1における通信端末装置100の構成を示すブロック図である。
図2において、通信端末装置100は、パケット受信部110、パケットチェック部111、パケットロス検知部112、再送要求先選択部113、再送要求パケット作成部114、再送パケット作成部115、再送パケット受信部116、データ蓄積部117、パケット送信部118を備えて構成される。
パケット受信部110は、通信ネットワーク200からパケットを受信する。そして、パケット受信部110は、受信したパケットをパケットチェック部111に渡す。
パケットチェック部111は、パケット受信部110が受信したパケットの種類を判別する。そして、パケットチェック部111は、パケットの種類に応じた出力先にパケットを渡す。
ここで、パケットの種類について説明する。パケットの種類は、例えば、データパケット、再送要求パケットおよび再送パケットがある。データパケットは、送信ノードが作成する明示的マルチキャスト方式のパケットであり、送信ノードが受信ノードへ配信するデータが格納されている。再送要求パケットは、パケットロスの発生を検知した受信ノード(通信端末装置)が作成するユニキャスト方式のパケットであり、パケットロスが発生したデータパケットの再送を要求するのに必要な情報が格納されている。再送パケットは、再送要求パケットを受信した受信ノード(通信端末装置)が作成するユニキャスト方式のパケットであり、再送要求パケットで要求された再送データが格納されている。
パケットチェック部111の説明に戻る。パケットチェック部111は、受信したパケットをデータパケットと判別した場合、このパケットをパケットロス検知部112に渡す。また、パケットチェック部111は、受信したパケットを再送要求パケットと判別した場合、このパケットを再送パケット作成部115に渡す。また、パケットチェック部111は、受信したパケットを再送パケットと判別した場合、このパケットを再送パケット受信部116に渡す。
パケットロス検知部112は、パケット受信部110が受信している一連のデータパケットにパケットロスが発生しているか否かを判定する。例えば、パケットロス検知部112は、データパケットのヘッダ部に記載されたシーケンス番号を調べることで、パケットロスの発生を検知することができる。
ここで、データパケット内のシーケンス番号について説明する。図3は、明示的マルチキャスト方式のデータパケットの構成の一例を示す図である。図3において、データパケット500は、ヘッダ部501と、配信データを含むペイロード502とを有する。ヘッダ部501には、ルーティングヘッダ503(後述)およびシーケンス番号504が含まれる。図3に示すデータパケットの例では、シーケンス番号504は整数「17」である。ヘッダ部501は、他のヘッダを有していてもよいが、説明の便宜上ここでは説明しない。
パケットロス検知部112の説明に戻る。パケットロス検知部112は、シーケンス番号が連続したデータパケットを受信しているときは、パケットロスは発生していないと判定する。一方、パケットロス検知部112は、シーケンス番号が非連続のデータパケットを受信したときは、パケットロスが発生したと判定する。例えば、ある時点で受信したデータパケットのシーケンス番号が「15」であり、次に受信したデータパケットのシーケンス番号が「16」であったときは、パケットロス検知部112はパケットロスが発生していないと判定する。一方、ある時点で受信したデータパケットのシーケンス番号が「15」であり、次に受信したデータパケットのシーケンス番号が「17」であったときは、パケットロス検知部112はシーケンス番号「16」のデータパケットにパケットロスが発生したと判定する。パケットロス検知部112は、パケットロスが発生したと判定した場合、パケットロスとなったデータパケットを他の受信ノードから再送してもらうために、パケットロスとなったデータパケットのシーケンス番号(上述の例では「16」)を再送要求先選択部113に通知する。同時に、パケットロス検知部112は、保持している(最後に受信した)データパケット(上述の例ではシーケンス番号「17」のデータパケット)を再送要求先選択部113に渡す。また、パケットロス検知部112は、パケットチェック部111から渡されたデータパケットに含まれるデータをデータ蓄積部117に格納する。このとき、パケットロス検知部112は、後の再送処理のためにデータパケットのシーケンス番号を対応するデータと関連づけて格納しておく。なお、パケットロス検知部112は、データパケットをそのままデータ蓄積部117に格納してもよい。
再送要求先選択部113は、パケットロス検知部112から通知されたパケットロスが発生したデータパケットについて、どの受信ノードに対して再送要求を行うかを選択する。このとき、再送要求先選択部113は、パケットロス検知部112から渡されたデータパケット内のビットマップおよびアドレスリストを検索することで、再送要求先の受信ノードを選択することができる。
ここで、データパケット内のビットマップおよびアドレスリストについて説明する。図3において、データパケット500のルーティングヘッダ503には、配送済みか否かを示すビット列であるビットマップ505と、送信先となる受信ノードのIPアドレスが1つ以上記載されているアドレスリスト506とが含まれている。図3に示すデータパケットの例において、アドレスリスト506には、通信端末装置A(以下「受信ノードA」という)のIPアドレス507、通信端末装置C(以下「受信ノードC」という)のIPアドレス508および通信端末装置D(以下「受信ノードD」という)のIPアドレス509が記載されているものとする。また、ビットマップ505には、アドレスリスト506に記載された受信ノードのIPアドレスそれぞれについて配送済みか否かを示すビットが、アドレスリスト506内のIPアドレス507〜509の並び順通りに1ビットずつ割当てられている。図3に示すデータパケットの例では、配送済みを示すビットを0、未配送を示すビットを1とすると、ビットマップは「0・1・1」であるので、受信ノードAは配送済み(0)であり、受信ノードCは未配送(1)であり、受信ノードDも未配送(1)であることを示している。
再送要求先選択部113の説明に戻る。再送要求先選択部113は、パケットロス検知部112から渡されたデータパケット内のビットマップを見て、配送済みとなっているビット(上記の例では「0」のビット)を1つ選択する。そして、再送要求先選択部113は、同じデータパケットのアドレスリストを調べ、選んだビットに対応する受信ノードのIPアドレスを取得する。再送要求先選択部113が配送済みを示すビットを選択する方法(基準)は特に限定されず、配送済みを示すビットであればどのビットを選択してもよい。例えば、送信ノードが、ネットワーク上で近い受信ノード同士が隣接するように受信ノードのIPアドレスをアドレスリストに記載しているのであれば、再送要求先選択部113は、自ノードに対応するビットの近くにある配送済みのビットを優先的に選択するようにしてもよい。また、再送要求先選択部113は、1つの受信ノードに多くの再送要求が集中しないように、複数ある配送済みを示すビットの中からランダムに配送済みのビットを選択するようにしてもよい。また、再送要求先選択部113は、送信ノードから各受信ノードの性能に関する情報を取得しているのであれば、より性能の高い配送済みの受信ノードを選択するようにしてもよい。なお、再送要求先選択部113は、配送済みの受信ノードがない場合は、送信ノードを選択する。例えば、図3に示すデータパケットの場合、ビットマップ505が「0」となっている配送済みの受信ノードは受信ノードAのみである。したがって、再送要求先選択部113は、再送要求先として受信ノードAのIPアドレス507を選択する。
再送要求先選択部113は、再送要求先として選択した受信ノードのIPアドレスおよびパケットロスが発生したデータパケットのシーケンス番号を再送要求パケット作成部114に通知する。また、再送要求先選択部113は、再送要求を行うデータパケットのシーケンス番号を記録する。例えば、再送要求先選択部113は、データ蓄積部117に格納された「再送要求を行う(行った)シーケンス番号の表」に再送要求を行うデータパケットのシーケンス番号を記載すればよい。
図4は、「再送要求を行う(行った)シーケンス番号の表」の一例を示す図である。この表600は、シーケンス番号5、9および16のデータパケットについて再送要求を行ったことが記録されている例である。この表は、後述する再送パケット受信部116によって使用される。
再送要求パケット作成部114は、再送要求先選択部113が選択した再送要求先の受信ノードのIPアドレスおよび再送要求するデータパケットのシーケンス番号を含む再送要求パケットを作成する。
ここで、再送要求パケットについて説明する。図5は、再送要求パケットの構成の一例を示す図である。図5(A)において、再送要求パケット700は、ヘッダ部701と、ペイロード702とを有する。ヘッダ部701には、宛先アドレス703、再送要求元アドレス704および再送要求するデータパケットのシーケンス番号705が含まれる。ヘッダ部701は、他のヘッダを有していてもよいが、説明の便宜上ここでは説明しない。
再送要求パケット作成部114の説明に戻る。再送要求パケット作成部114は、ヘッダ部701の宛先アドレス703に、再送要求先選択部113が選択した再送要求先のIPアドレス(図5(A)に示す例では受信ノードAのIPアドレス)を記載する。また、再送要求パケット作成部114は、再送要求元アドレス704に自らのIPアドレス(図5(A)の例では受信ノードCのIPアドレス)を記載し、再送要求するデータパケットのシーケンス番号705に再送要求先選択部113から通知されたシーケンス番号を記載する。なお、図5(B)に示すように、再送要求パケット作成部114は、再送要求元アドレス704および再送要求するデータパケットのシーケンス番号705をペイロード702中に記載してもよい。そして、再送要求パケット作成部114は、作成した再送要求パケットをパケット送信部118に渡す。
再送パケット作成部115は、パケットチェック部111から渡された再送要求パケットに含まれている再送要求元アドレスおよび再送要求されているデータパケットのシーケンス番号を取得する。そして、再送パケット作成部115は、取得したシーケンス番号のデータがデータ蓄積部117に格納されているか否かを判定する。そして、再送パケット作成部115は、再送要求されているデータがデータ蓄積部117に格納されていると判定した場合、取得した再送要求元アドレスおよびシーケンス番号に基づいて再送パケットを作成する。
ここで、再送パケットについて説明する。図6は、再送パケットの構成の一例を示す図である。図6において、再送パケット800は、ヘッダ部801と、再送データを含むペイロード802とを有する。ヘッダ部801には、宛先アドレス803および再送要求されているデータパケットのシーケンス番号804が含まれる。ヘッダ部801は、他のヘッダを有していてもよいが、説明の便宜上ここでは説明しない。
再送パケット作成部115の説明に戻る。再送パケット作成部115は、再送要求パケットに記載された再送要求元アドレスを宛先アドレス803に記載し、再送要求パケットに記載されたシーケンス番号をシーケンス番号804に記載する。また、再送パケット作成部115は、そのシーケンス番号に対応したデータを再送データとしてペイロード802に格納する。そして、再送パケット作成部115は、作成した再送パケットをパケット送信部118に渡す。
再送パケット受信部116は、パケットチェック部111から渡された再送パケットに含まれるシーケンス番号を取得する。そして、再送パケット受信部116は、取得したシーケンス番号がデータ蓄積部117に格納された再送要求を行ったシーケンス番号の表(図4参照)に記載されているか否かを判定する。そして、再送パケット受信部116は、取得したシーケンス番号が表に記載されていると判定した場合、再送パケットの再送データが再送要求したデータだと判断し、このデータをデータ蓄積部117に格納する。一方、再送パケット受信部116は、取得したシーケンス番号が表に記載されていないと判定した場合、再送パケットの再送データが再送要求していないデータだと判断し、再送パケットを破棄する。
データ蓄積部117は、データパケットまたは再送パケットに含まれるデータおよびシーケンス番号を格納する記憶部である。また、データ蓄積部117は、再送要求を行ったシーケンス番号の表も格納する。
パケット送信部118は、再送要求パケット作成部114が作成した再送要求パケットおよび再送パケット作成部115が作成した再送パケットをネットワーク200に送信する。
以下、上述のように構成された通信端末装置100の動作を説明する。
図7は、パケットを受信したときの通信端末装置100の動作を示すフローチャートである。
まず、ステップS100において、パケット受信部110は、通信ネットワーク200からパケットを受信する。そして、パケット受信部110は、受信したパケットをパケットチェック部111に渡す。
次いで、ステップS200において、パケットチェック部111は、パケット受信部110が受信したパケットの種類を判別する。そして、パケットチェック部111は、受信したパケットをデータパケットと判別した場合(S200:データパケット)、そのパケットをパケットロス検知部112に渡して、ステップS300に進む。パケットチェック部111は、受信したパケットを再送要求パケットと判別した場合(S200:再送要求パケット)、そのパケットを再送パケット作成部115に渡して、ステップS400に進む。パケットチェック部111は、受信したパケットを再送パケットと判別した場合(S200:再送パケット)、そのパケットを再送パケット受信部116に渡して、ステップS500に進む。
ステップS300では、データパケット受信処理を行い、本フローを終了する。データパケット受信処理は、通常はデータパケットをデータ蓄積部117に格納する処理である。ただし、受信しているデータパケットにパケットロスが発生した場合は、データパケット受信処理は、損失したデータについて他の特定の受信ノードに再送要求を行う処理となる。データパケット受信処理については、図8を用いて後述する。
ステップS400では、再送要求パケット受信処理を行い、本フローを終了する。再送要求パケット受信処理は、再送要求パケットによって再送要求されたデータを再送要求元に送信する処理である。再送要求パケット受信処理については、図9を用いて後述する。
ステップS500では、再送パケット受信処理を行い、本フローを終了する。再送パケット受信処理は、通常は再送パケットのデータをデータ蓄積部117に格納する処理である。再送パケット受信処理については、図10を用いて後述する。
次に、データパケット受信処理(ステップS300)について、図8に示すフローチャートを用いて説明する。
まず、ステップS301において、パケットロス検知部112は、パケットチェック部111から渡されたデータパケットに含まれるデータ(またはデータパケット全体)をデータ蓄積部117に格納する。
次いで、ステップS302において、パケットロス検知部112は、パケットロスが発生しているか否かを判定する。パケットロス検知部112は、パケットロスが発生していないと判定した場合(S302:NO)、本フローを終了する。一方、パケットロス検知部112は、パケットロスが発生したと判定した場合(S302:YES)、パケットロスが発生したデータパケットのシーケンス番号と、保持している(最後に受信した)データパケットとを再送要求先選択部113に渡し、ステップS303に進む。
ステップS303において、再送要求先選択部113は、パケットロス検知部112から渡されたデータパケットのビットマップとアドレスリストから、再送要求先とする受信ノードを選択する。また、再送要求先選択部113は、再送要求を行うデータパケットのシーケンス番号を、データ蓄積部117に格納された表に記載する。そして、再送要求先選択部113は、選択した再送要求先の受信ノードのIPアドレスおよび再送要求を行うデータパケットのシーケンス番号を再送要求パケット作成部114に通知する。
次いで、ステップS304において、再送要求パケット作成部114は、再送要求先選択部113から通知されたIPアドレスおよびシーケンス番号から、ユニキャスト方式の再送要求パケットを作成する。そして、再送要求パケット作成部114は、作成した再送要求パケットをパケット送信部118に渡す。
次いで、ステップS305において、パケット送信部118は、再送要求パケット作成部114が作成した再送要求パケットを再送要求先の受信ノードに送信し、本フローを終了する。
次に、再送要求パケット受信処理(ステップS400)について、図9に示すフローチャートを用いて説明する。
まず、ステップS401において、再送パケット作成部115は、パケットチェック部111から渡された再送要求パケットに含まれる再送要求されているデータパケットのシーケンス番号を取得する。そして、再送パケット作成部115は、そのシーケンス番号のデータがデータ蓄積部117に格納されているか否かを判定する。そして、再送パケット作成部115は、データがデータ蓄積部117に格納されていると判定した場合(S401:YES)、ステップS404に進む。一方、再送パケット作成部115は、データが格納されていないと判定した場合(S401:NO)、ステップS402に進む。
ステップS402において、再送パケット作成部115は、再送要求されているデータパケットを受信するため任意の時間待機する。
次いで、ステップS403において、再送パケット作成部115は、再送要求されているデータパケットのデータがデータ蓄積部117に格納されているか否かを再度判定する。そして、再送パケット作成部115は、データがデータ蓄積部117に格納されていると判定した場合(S403:YES)、ステップS404に進む。一方、再送パケット作成部115は、データがデータ蓄積部117に格納されていないと判定した場合(S403:NO)、ステップS402に戻る。したがって、再送パケット作成部115は、再送要求されたデータパケットのデータがデータ蓄積部117に格納されるまで、ステップS402とステップS403とを繰り返す。
ステップS404において、再送パケット作成部115は、再送パケットを作成する。このとき、再送パケット作成部115は、再送要求パケットに記載されている再送要求元アドレスを再送パケットの宛先アドレスとする。また、再送パケット作成部115は、再送要求パケットに記載されたシーケンス番号と、そのシーケンス番号に対応したデータとを再送パケットに格納する。そして、再送パケット作成部115は、作成した再送パケットをパケット送信部118に渡す。
次いで、ステップS405において、パケット送信部118は、再送パケット作成部115が作成した再送パケットを再送要求元の受信ノード(通信端末装置)に送信し、本フローを終了する。
次に、再送パケット受信処理(ステップS500)について、図10に示すフローチャートを用いて説明する。
まず、ステップS501において、再送パケット受信部116は、再送パケットに含まれるシーケンス番号を取得する。そして、再送パケット受信部116は、データ蓄積部117に格納された再送要求を行ったシーケンス番号の表に同一のシーケンス番号が記載されているか否かを判定する。そして、再送パケット受信部116は、同一のシーケンス番号が記載されていると判定した場合(S501:YES)、ステップS502に進む。一方、再送パケット受信部116は、同一のシーケンス番号が記載されていないと判定した場合(S501:NO)、ステップS503に進む。
ステップS502において、再送パケット受信部116は、受信した再送パケットのデータをデータ蓄積部117に格納する。そして、再送パケット受信部116は、再送要求を行ったデータパケットのシーケンス番号の表から再送要求したデータパケットのシーケンス番号を削除し、本フローを終了する。
ステップS503において、再送パケット受信部116は、受信した再送パケットを破棄し、本フローを終了する。
最後に、図1を用いて、通信ネットワーク200における通信端末装置100〜104の動作を説明する。送信ノード300は、説明の便宜上、受信ノードA100、受信ノードC102および受信ノードD103に同一のデータパケットを配信するものとする。また、ルータ400〜402は、明示的マルチキャスト方式に対応しているものとする。
まず、送信ノード300は、受信ノードA100、受信ノードC102および受信ノードD103のIPアドレスをアドレスリストに含むデータパケットを作成する。ここで、送信ノード300は、図3に示すデータパケットを作成したものとする(ただし、ビットマップ505の値は「111」となる)。そして、送信ノード300は、作成したデータパケットをルータ400に送信する。
ルータ400は、送信ノード300からデータパケットを受信すると、データパケットのアドレスリストに記載された受信ノードA100、受信ノードC102および受信ノードD103のIPアドレスについて送信インターフェースを調べる。この場合、ルータ400は、受信ノードA100およびルータ401にデータパケットを送信することになる。ルータ400は、送信先のインターフェースの数(すなわち2つ)データパケットを複製する。そして、ルータ400は、受信ノードA100およびルータ401に複製したデータパケットを送信する。このとき、ルータ400は、受信ノードA100に送信するデータパケットのビットマップにおいて、受信ノードC102のIPアドレスおよび受信ノードD103のIPアドレスに対応するビットを配送済みにする(すなわちビットマップ505は「100」となる)。同様に、ルータ400は、ルータ401に送信するデータパケットのビットマップにおいて、受信ノードA100のIPアドレスに対応するビットを配送済みにする(すなわちビットマップ505は「011」となる)。
受信ノードA100は、ルータ400から受信したデータパケットのデータおよびシーケンス番号をデータ蓄積部117に格納する(通常のデータパケット受信処理)。
ルータ401は、上記ルータ400と同様に、受信ノードC102およびルータ402にデータパケット(ビットマップ505はそれぞれ「010」、「001」となる)を送信する(マルチキャスト通信)。
受信ノードC102は、ルータ401から受信したデータパケットのデータおよびシーケンス番号をデータ蓄積部117に格納する(通常のデータパケット受信処理)。
ルータ402は、受信ノードD103にデータパケットを送信するが、ここでルータ402−受信ノードD間でパケットロスが発生したものとする。
受信ノードD103は、送信ノード300から受信しているデータパケットにパケットロスが発生したことを検知する。受信ノードD103は、パケットロスが発生したデータパケット(例えばシーケンス番号「16」)の次に受信したデータパケット(例えばシーケンス番号「17」)のビットマップ(「001」)およびアドレスリストを調べる。そして、受信ノードD103は、このデータパケット(シーケンス番号「17」)が配送済みの受信ノードを再送要求先とする再送要求パケットを作成する。ここでは、受信ノードD103は、再送要求先の受信ノードとして受信ノードA100を選択したものとして、図5(A)に示す再送要求パケットを作成したものとする。そして、受信ノードD103は、作成した再送要求パケットをルータ402に送信する(パケットロス発生時のデータパケット受信処理)。
ルータ402は、受信した再送要求パケットをルータ401に送信する(ユニキャスト通信)。
ルータ401は、受信した再送要求パケットをルータ400に送信する(ユニキャスト通信)。
ルータ400は、受信した再送要求パケットを受信ノードA100に送信する(ユニキャスト通信)。
受信ノードA100は、ルータ400から受信した再送要求パケットに含まれるシーケンス番号(例えば「16」)および再送要求元アドレス(受信ノードDのIPアドレス)を取得する。そして、受信ノードA100は、受信ノードD103を送信先とする、再送データを格納した再送パケットを作成する。ここでは、受信ノードA100は、図6に示す再送パケットを作成したものとする。受信ノードA100は、作成した再送パケットをルータ400に送信する(再送要求パケット受信処理)。
ルータ400は、受信した再送パケットをルータ401に送信する(ユニキャスト通信)。
ルータ401は、受信した再送パケットをルータ402に送信する(ユニキャスト通信)。
ルータ402は、受信した再送パケットを受信ノードD103に送信する(ユニキャスト通信)。
受信ノードD103は、ルータ402から受信した再送パケットに含まれる再送データおよびシーケンス番号をデータ蓄積部に格納する(再送パケット受信処理)。
以上説明したように、実施の形態1に係る通信端末装置は、受信したデータパケットのヘッダに含まれるビットマップとアドレスリストから再送要求を行う受信ノードのIPアドレスを選択し、選択した受信ノードに対してユニキャスト通信により再送要求を行う。したがって、グループ内のある受信ノードにパケットロスが発生したとしても、従来の方法のようにすべての受信ノードが再送要求パケット受信処理を行うのではなく、選択された受信ノードのみが再送要求パケット受信処理を行う。このように、実施の形態1に係る通信端末装置は、ネットワーク全体の帯域および他の受信ノードに負荷をかけることなく再送要求を行うことができる。
(実施の形態2)
実施の形態1では、ある受信ノードから再送要求パケットを受信した場合、すぐに再送パケットを作成する例を示した。実施の形態2では、ある受信ノードから再送要求パケットを受信しても、同一データに対する再送要求パケットを他の受信ノードから受信するために、一定時間待機した後に再送パケットを作成する例を示す。
図11は、本発明の実施の形態2に係る通信端末装置の構成を示す図である。実施の形態1に係る通信端末装置と同じ構成要素については同一の符号を付し、重複箇所の説明を省略する。
図11において、通信端末装置150は、図2の通信端末装置100の構成に加えて、再送要求パケット待機部119をさらに備えている。再送要求先選択部113、再送要求パケット待機部119、再送要求パケット作成部114および再送パケット作成部115以外の構成要素は、実施の形態1と同様のものなのでここでは説明しない。
再送要求先選択部113は、実施の形態1の再送要求先選択部と同じように再送要求先の受信ノードのIPアドレスを選択する。そして、再送要求先選択部113は、再送要求先として選択した受信ノードのIPアドレスおよびパケットロスが発生したデータパケットのシーケンス番号を再送要求パケット待機部119に通知する。
再送要求パケット待機部119は、再送要求先選択部113から再送要求先の受信ノードのIPアドレスおよびパケットロスが発生したデータパケットのシーケンス番号が通知された後、同じシーケンス番号のデータの再送を要求する再送要求パケットを受信するために所定の時間待機する(再送要求パケット受信待機状態)。そして、再送要求パケット待機部119は、再送要求先選択部113から通知された再送要求先の受信ノードのIPアドレスおよびパケットロスが発生したデータパケットのシーケンス番号を再送要求パケット作成部114に通知する。このとき、再送要求パケット待機部119は、待機中に同じシーケンス番号のデータの再送を要求する再送要求パケットを再送パケット作成部115から渡された場合、この再送要求パケットに記載されている再送要求元のIPアドレスも再送要求パケット作成部114に通知する。
再送要求パケット作成部114は、実施の形態1の再送要求パケット作成部が有する機能に加え、さらに、再送要求パケット待機部119から複数の再送要求元のIPアドレスを通知された場合に、複数の再送元のIPアドレスを再送要求パケットに再送要求元アドレスとして記載する。
ここで、複数の再送元のIPアドレスが記載された再送要求パケットについて説明する。図12は、複数の再送元のIPアドレスが記載された再送要求パケットの構成の一例を示す図である。図12において、再送要求パケット710は、ヘッダ部711とペイロード712とを有する。ヘッダ部711には、宛先アドレス713、再送要求するデータパケットのシーケンス番号714、再送要求元となる受信ノードのIPアドレス716、717が記載されているアドレスリスト715が含まれる。ヘッダ部711は他のヘッダを有していてもよいが、説明の便宜上ここでは説明しない。
再送要求パケット作成部114の説明に戻る。再送要求パケット作成部114は、再送要求パケット待機部119から複数の再送要求元のIPアドレスを通知された場合に、すべての再送要求元のIPアドレスをアドレスリストに記載したユニキャスト方式の再送要求パケットを作成する。
再送パケット作成部115は、実施の形態1の再送パケット作成部が有する機能に加え、さらに、明示的マルチキャスト方式の再送パケットを作成する。
ここで、明示的マルチキャスト方式の再送パケットについて説明する。図13は、明示的マルチキャスト方式の再送パケットの構成の一例を示す図である。図13において、再送パケット810は、ヘッダ部811と、再送データを含むペイロード812とを有する。ヘッダ部811には、ルーティングヘッダ813およびシーケンス番号814が含まれる。ルーティングヘッダ813には、配送済みか否かを示すビットマップ815と、再送先となる受信ノードのIPアドレスが1つ以上記載されているアドレスリスト816とが含まれている。ヘッダ部811は他のヘッダを有していてもよいが、説明の便宜上ここでは説明しない。
再送パケット作成部115の説明に戻る。再送パケット作成部115は、複数の再送要求元のIPアドレスを含む再送要求パケットを受信した場合、すべての再送要求元のIPアドレスをアドレスリストに記載した明示的マルチキャスト方式の再送パケットを作成する。また、再送パケット作成部115は、再送要求パケット待機部119が再送要求パケット受信待機状態のときにパケットチェック部111から再送要求パケットを渡された場合、渡された再送要求パケットを再送要求パケット待機部119に渡す。
以下、上述のように構成された通信端末装置150の動作を説明する。
通信端末装置150は、パケットを受信すると、受信したパケットの種類によって、データパケット受信処理、再送要求パケット受信処理および再送パケット受信処理を行う。この動作は、実施の形態1と同様のものなのでここでは説明しない(図7参照)。
次に、実施の形態1と異なる、データパケット受信処理および再送要求パケット受信処理について説明する。再送パケット受信処理は実施の形態1と同様のものなのでここでは説明しない。
初めにデータパケット受信処理(ステップS300)について、図14に示すフローチャートを用いて説明する。
まず、ステップS311で、パケットロス検知部112は、パケットチェック部111から渡されたデータパケットに含まれるデータ(またはデータパケット全体)をデータ蓄積部117に格納する。
次いで、ステップS312において、パケットロス検知部112は、パケットロスが発生しているか否かを判定する。そして、パケットロス検知部112は、パケットロスが発生していないと判定した場合(S312:NO)、本フローを終了する。一方、パケットロス検知部112は、パケットロスが発生したと判定した場合(S312:YES)、パケットロスが発生したデータパケットのシーケンス番号と、保持している(最後に受信した)データパケットとを再送要求先選択部113に渡し、ステップS313に進む。
ステップS313において、再送要求先選択部113は、パケットロス検知部112から渡されたデータパケットのビットマップとアドレスリストから、再送要求先とする受信ノードを選択する。また、再送要求先選択部113は、再送要求を行うデータパケットのシーケンス番号を、データ蓄積部117に格納された表に記録する。そして、再送要求先選択部113は、選択した再送要求先の受信ノードのIPアドレスおよび再送要求を行うデータパケットのシーケンス番号を再送要求パケット待機部119に通知する。
次いで、ステップS314において、再送要求パケット待機部119は、再送要求先選択部113から再送要求先の受信ノードのIPアドレスおよびパケットロスが発生したデータパケットのシーケンス番号が通知された後、同じシーケンス番号のデータの再送を要求する再送要求パケットを受信するまで、所定の時間待機する(再送要求パケット受信待機処理)。再送要求パケット受信待機処理については、図15を用いて後述する。再送要求パケット受信待機処理の後、再送要求パケット待機部119は、再送要求先選択部113から通知された再送要求先の受信ノードのIPアドレスおよびパケットロスとなったデータパケットのシーケンス番号を再送要求パケット作成部114に通知する。また、再送要求パケット待機部119は、待機中に同じシーケンス番号のデータの再送を要求する再送要求パケットを再送パケット作成部115から渡された場合、この再送要求パケットに含まれる再送要求元のIPアドレスも再送要求パケット作成部114に通知する。
次いで、ステップS315において、再送要求パケット作成部114は、再送要求パケット待機部119から通知されたIPアドレスおよびシーケンス番号から、再送要求パケットを作成する。このとき、再送要求パケット作成部114は、再送要求パケット待機部119から複数の再送要求元のIPアドレスを通知された場合、すべての再送元のIPアドレスを再送要求元アドレスとして記載する。そして、再送要求パケット作成部114は、作成した再送要求パケットをパケット送信部118に送る。
次いで、ステップS316において、パケット送信部118は、再送要求パケット作成部114が作成した再送要求パケットを再送要求先の受信ノードに送信し、本フローを終了する。
次に、再送要求パケット受信待機処理(ステップS314)について、図15に示すフローチャートを用いて説明する。
まず、ステップS601において、再送要求パケット待機部119は、再送要求先選択部113から再送要求先の受信ノードのIPアドレスおよびパケットロスとなったデータパケットのシーケンス番号が通知された後、再送要求パケット受信待機状態に移行する。
次いで、ステップS602において、再送要求パケット待機部119は、再送パケット作成部115から再送要求パケットを受け取っているか否かを判定する。そして、再送要求パケット待機部119は、再送要求パケットを受け取っていると判定した場合(S602:YES)、ステップS603に進む。一方、再送要求パケット待機部119は、再送要求パケットを受け取っていないと判定した場合(S602:NO)、ステップS605に進む。
ステップS603において、再送要求パケット待機部119は、再送パケット作成部115から受け取った再送要求パケットに含まれる再送を要求されているデータパケットのシーケンス番号が、パケットロス検知部112がパケットロスを検知したデータパケットのシーケンス番号と同一であるか否かを判定する。そして、再送要求パケット待機部119は、2つのシーケンス番号が同一であると判定した場合(S603:YES)、ステップS604に進む。一方、再送要求パケット待機部119は、2つのシーケンス番号が同一でないと判定した場合(S603:NO)、ステップS605に進む。
ステップS604において、再送要求パケット待機部119は、再送パケット作成部115から受け取った再送要求パケットに含まれる再送要求元アドレスをすべて取得する。
ステップS605において、再送要求パケット待機部119は、再送要求パケット待機状態に移行してから一定時間を経過したか否かを判定する。そして、再送要求パケット待機部119は、一定時間を経過してないと判定した場合(S605:NO)、ステップS602に戻る。一方、再送要求パケット待機部119は、一定時間を経過したと判定した場合(S605:YES)、ステップS604で取得した再送要求元アドレスを再送要求パケット作成部114に通知し、本フローを終了する。
次に、再送要求パケット受信処理について、図16に示すフローチャートを用いて説明する。
まず、ステップS411において、再送パケット作成部115は、パケットチェック部111から渡された再送要求パケットに含まれる再送要求されているデータパケットのシーケンス番号を取得する。そして、再送パケット作成部115は、そのシーケンス番号のデータがデータ蓄積部117に格納されているか否かを判定する。そして、再送パケット作成部115は、データがデータ蓄積部117に格納されていないと判定した場合(S411:NO)、ステップS412に進む。一方、再送パケット作成部115は、データが格納されていると判定した場合(S411:YES)、ステップS416に進む。
ステップS412において、再送パケット作成部115は、再送要求パケット待機部119が再送要求パケット受信待機状態か否かを判定する。そして、再送パケット作成部115は、再送要求パケット待機部119が再送要求パケット受信待機状態であると判定した場合(S412:YES)、ステップS413に進む。一方、再送パケット作成部115は、再送要求パケット待機部119が再送要求パケット受信待機状態でないと判定した場合(S412:NO)、ステップS414に進む。
ステップS413において、再送パケット作成部115は、再送要求パケット受信待機状態の間に再送要求パケットを受信した場合、受信した再送要求パケットを再送要求パケット待機部119に渡す。そして、再送パケット作成部115は、再送要求パケット待機部119が再送要求パケット受信待機状態を終了したとき、ステップS414に進む。
ステップS414において、再送パケット作成部115は、再送要求されているデータパケットの再送パケットを受信するため、任意の時間待機する。
次いで、ステップS415において、再送パケット作成部115は、再送要求されているデータパケットのデータがデータ蓄積部117に格納されているか否かを再度判定する。そして、再送パケット作成部115は、データがデータ蓄積部117に格納されていると判定した場合(S415:YES)、ステップS416に進む。一方、再送パケット作成部115は、データがデータ蓄積部117に格納されていないと判定した場合(S415:NO)、ステップS414に戻る。したがって、再送パケット作成部115は、再送要求されたデータパケットのデータがデータ蓄積部117に格納されるまで、ステップS414とステップS415とを繰り返す。
ステップS416において、再送パケット作成部115は、再送要求元のIPアドレスが再送要求パケットに複数記載されているか否かを判定する。そして、再送パケット作成部115は、再送要求元のIPアドレスが1つであると判定した場合(S416:NO)、ステップS417に進む。一方、再送パケット作成部115は、再送要求元のIPアドレスが複数あると判定した場合(S416:YES)、ステップS418に進む。
ステップS417において、再送パケット作成部115は、再送要求元アドレスを宛先アドレスとするユニキャスト方式の再送パケットを作成する。そして、再送パケット作成部115は、作成した再送パケットをパケット送信部118に渡す。
ステップS418において、再送パケット作成部115は、すべての再送要求元アドレスをアドレスリストに記載した明示的マルチキャスト方式の再送パケットを作成する。そして、再送パケット作成部115は、作成した再送パケットをパケット送信部118に渡す。
ステップS419において、パケット送信部118は、再送パケット作成部115が作成した再送パケットを再送要求元の受信ノード(通信端末装置)に送信し、本フローを終了する。
以上説明したように、実施の形態2に係る通信端末装置は、あるシーケンス番号のデータの再送を要求する再送要求パケットを作成する際に、同じシーケンス番号のデータの再送を要求する再送要求パケットを他の受信ノードから受信した場合、自ノードのIPアドレスだけでなく、その再送要求パケットに再送要求元として記載されているIPアドレスも再送要求元として再送要求パケットに記載する。また、実施の形態2に係る通信端末装置は、複数の再送要求元アドレスが記載されている再送要求パケットを受信した場合、すべての再送要求元アドレスを宛先アドレスとする明示的マルチキャスト方式の再送パケットを作成し、作成した再送パケットを送信する。本実施の形態によれば、実施の形態1の効果に加えて、ネットワーク全体の帯域の消費をさらに低減することができる。
(実施の形態3)
実施の形態1では、パケットロスを検知した場合、再送要求元アドレスとして自ノードのIPアドレスを再送要求パケットに記載する例を示した。実施の形態3では、パケットロスを検知した場合、すべての未配送の受信ノードのIPアドレスを再送要求パケットに記載する例を示す。
図17は、本発明の実施の形態3に係る通信端末装置の構成を示す図である。実施の形態1に係る通信端末装置と同じ構成要素については同一の符号を付し、重複箇所の説明を省略する。
図17において、通信端末装置160は、図2の通信端末装置100の構成に加えて、数珠繋ぎ配送チェック部120をさらに備えている。再送要求先選択部113、数珠繋ぎ配送チェック部120、再送要求パケット作成部114および再送パケット作成部115以外の構成要素は、実施の形態1と同様のものなのでここでは説明しない。
再送要求先選択部113は、実施の形態1の再送要求先選択部と同じように再送要求先の受信ノードのIPアドレスを選択する。そして、再送要求先選択部113は、再送要求先として選択した受信ノードのIPアドレス、パケットロスが発生したデータパケットのシーケンス番号および保持している(最後に受信した)データパケットを数珠繋ぎ配送チェック部120に渡す。
数珠繋ぎ配送チェック部120は、再送要求先選択部113から渡されたデータパケットを自ノードが数珠繋ぎ配送によって他の受信ノードに転送しているか否かを判定する。数珠繋ぎ配送チェック部120は、数珠繋ぎ配送によって転送しているか否かを判定するには、受信したデータパケットを自ノードが別の受信ノードに転送しているか否かを検知してもよいし、ビットマップで自ノードを示すビット以外に未配送を示すビットが1つでもあれば数珠繋ぎ配送を行っていると判定してもよいし、ルータに自ノードが数珠繋ぎを行う受信ノードか否かを問い合わせてもよいし、データパケットに数珠繋ぎ配送を行う受信ノードか否かを示すフラグを立てて、そのフラグを調べることで数珠繋ぎ配送を検知してもよい。そして、数珠繋ぎ配送チェック部120は、数珠繋ぎ配送によって転送していないと判定した場合、再送要求先選択部113から通知された再送要求先の受信ノードのIPアドレスおよびパケットロスとなったデータパケットのシーケンス番号を再送要求パケット作成部114に通知する。一方、数珠繋ぎ配送チェック部120は、数珠繋ぎ配送によって転送されていると判定した場合、再送要求先選択部113から通知された再送要求先の受信ノードのIPアドレスおよびパケットロスとなったデータパケットのシーケンス番号に加え、再送要求先選択部113から渡されたデータパケットのアドレスリストに記載された複数のIPアドレスのうち、自ノードのIPアドレスより後ろに記載されたIPアドレスも再送要求元のIPアドレスとして再送要求パケット作成部114に通知する。
再送要求パケット作成部114は、実施の形態1の再送要求パケット作成部が有する機能に加え、さらに、数珠繋ぎ配送チェック部120から複数の再送要求元のIPアドレスを通知された場合に、すべての再送要求元のIPアドレスを再送要求パケットに再送要求元アドレスとして記載する。
再送パケット作成部115は、実施の形態1の再送パケット作成部が有する機能に加え、さらに、明示的マルチキャスト方式の再送パケットを作成する。再送パケット作成部115は、複数の再送先のIPアドレスが記載された再送要求パケットを受信した場合、すべての再送先のIPアドレスをアドレスリストに記載した明示的マルチキャスト方式の再送パケットを作成する。
以下、上述のように構成された通信端末装置160の動作を説明する。
通信端末装置160は、パケットを受信すると、受信したパケットの種類によって、データパケット受信処理、再送要求パケット受信処理および再送パケット受信処理を行う。この動作は、実施の形態1と同様のものなのでここでは説明しない(図7参照)。
次に、実施の形態1と異なる、データパケット受信処理および再送要求パケット受信処理について説明する。再送パケット受信処理は実施の形態1と同様のものなのでここでは説明しない。
初めにデータパケット受信処理について、図18に示すフローチャートを用いて説明する。
まず、ステップS321において、パケットロス検知部112は、パケットチェック部111から渡されたデータパケットに含まれるデータ(またはデータパケット全体)をデータ蓄積部117に格納する。
次いで、ステップS322において、パケットロス検知部112は、パケットロスが発生しているか否かを判定する。そして、パケットロス検知部112は、パケットロスが発生していないと判定した場合(S322:NO)、本フローを終了する。一方、パケットロス検知部112は、パケットロスが発生したと判定した場合(S322:YES)、損失したデータパケットのシーケンス番号と、保持している(最後に受信した)データパケットとを再送要求先選択部113に渡し、ステップS323に進む。
ステップS323において、再送要求先選択部113は、パケットロス検知部112から渡されたデータパケットのビットマップとアドレスリストから、再送要求先とする受信ノードを選択する。また、再送要求先選択部113は、再送要求を行うデータパケットのシーケンス番号を、データ蓄積部117に格納された表に記録する。そして、再送要求先選択部113は、選択した再送要求先の受信ノードのIPアドレスおよび再送要求を行うデータパケットのシーケンス番号ならびに保持している(最後に受信した)データパケットを数珠繋ぎ配送チェック部120に渡す。
次いで、ステップS324において、数珠繋ぎ配送チェック部120は、再送要求先選択部113から渡されたデータパケットが数珠繋ぎ配送によって転送されているか否かを判定する。そして、数珠繋ぎ配送チェック部120は、数珠繋ぎ配送によって転送されていると判定した場合(S324:YES)、ステップS325に進む。一方、数珠繋ぎ配送チェック部120は、数珠繋ぎ配送によって転送されていないと判定した場合(S324:NO)、ステップS326に進む。
ステップS325において、数珠繋ぎ配送チェック部120は、再送要求先の受信ノードのIPアドレスおよびパケットロスとなったデータパケットのシーケンス番号ならびに再送要求先選択部113から渡されたデータパケットのアドレスリストに記載された複数のIPアドレスのうち、自ノードのIPアドレスより後ろに記載されたIPアドレスを再送要求パケット作成部114に通知する。
ステップS326において、再送要求パケット作成部114は、数珠繋ぎ配送チェック部120から通知されたIPアドレスおよびシーケンス番号から、再送要求パケットを作成する。このとき、再送要求パケット作成部114は、数珠繋ぎ配送チェック部120から複数の再送要求元のIPアドレスを通知された場合、すべての再送要求元のIPアドレスを再送要求パケットに再送要求元アドレスとして記載する。そして、再送要求パケット作成部114は、作成した再送要求パケットをパケット送信部118に送る。
次いで、ステップS327において、パケット送信部118は、再送要求パケット作成部114が作成した再送要求パケットを再送要求先の受信ノードに対してユニキャスト通信で送信し、本フローを終了する。
次に、再送要求パケット受信処理について、図19に示すフローチャートを用いて説明する。
まず、ステップS421において、再送パケット作成部115は、パケットチェック部111から渡された再送要求パケットに含まれる再送要求されているデータパケットのシーケンス番号を取得する。そして、再送パケット作成部115は、そのシーケンス番号のデータがデータ蓄積部117に格納されているか否かを判定する。そして、再送パケット作成部115は、データがデータ蓄積部117に格納されていないと判定した場合(S421:NO)、ステップS422に進む。一方、再送パケット作成部115は、データが格納されていると判定した場合(S421:YES)、ステップS424に進む。
ステップS422において、再送パケット作成部115は、再送要求されているデータパケットを受信するため任意の時間待機する。
次いで、ステップS423において、再送パケット作成部115は、再送要求されているデータパケットのデータがデータ蓄積部117に格納されているか否かを再度判定する。そして、再送パケット作成部115は、データがデータ蓄積部117に格納されていると判定した場合(S423:YES)、ステップS424に進む。一方、再送パケット作成部115は、データが格納されていないと判定した場合(S423:NO)、ステップS422に戻る。したがって、再送パケット作成部115は、再送要求されたデータパケットのデータがデータ蓄積部117に格納されるまで、ステップS422とステップS423とを繰り返す。
ステップS424において、再送パケット作成部115は、再送要求元のIPアドレスが再送要求パケットに複数記載されているか否かを判定する。そして、再送パケット作成部115は、再送要求元のIPアドレスが1つと判定した場合(S424:NO)、ステップS425に進む。一方、再送パケット作成部115は、再送要求元のIPアドレスが複数あると判定した場合(S424:YES)、ステップS426に進む。
ステップS425において、再送パケット作成部115は、再送要求元アドレスを宛先アドレスとするユニキャスト方式の再送パケットを作成する。そして、再送パケット作成部115は、作成した再送パケットをパケット送信部118に渡す。
ステップS426において、再送パケット作成部115は、すべての再送要求元アドレスをアドレスリストに記載した明示的マルチキャスト方式の再送パケットを作成する。そして、再送パケット作成部115は、作成した再送パケットをパケット送信部118に渡す。
ステップS427において、パケット送信部118は、再送パケット作成部115が作成した再送パケットを再送要求元の受信ノード(通信端末装置)に送信し、本フローを終了する。
以上説明したように、実施の形態3に係る通信端末装置は、数珠繋ぎ配送を行っている状態でパケットロスを検知した場合に、アドレスリスト中で自ノードのIPアドレスより後ろに記載された受信ノードのIPアドレスを再送要求元アドレスとして再送要求パケットを作成し、作成した再送要求パケットを送信する。また、実施の形態3に係る通信端末装置は、複数の再送要求元アドレスが記載されている再送要求パケットを受信した場合、すべての再送要求元アドレスを宛先アドレスとする明示的マルチキャスト方式の再送パケットを作成し、作成した再送パケットを送信する。このように、本実施の形態によれば、実施の形態1の効果に加えて、数珠繋ぎ配送が起きている場合により早い再送を行うことができる。
(実施の形態4)
実施の形態1では、データパケット内のビットマップおよびアドレスリストを用いて再送要求先の受信ノードを選択する例を示した。実施の形態4では、他の受信ノードと情報交換パケットを交換することで他の受信ノードの応答時間をあらかじめ算出し、ビットマップおよびアドレスリストに加えてさらに他の受信ノードの応答時間も用いて再送要求先の受信ノードを選択する例を示す。
図20は、本発明の実施の形態4に係る通信端末装置の構成を示す図である。実施の形態1に係る通信端末装置と同じ構成要素については同一の符号を付し、重複箇所の説明を省略する。
図20において、通信端末装置170は、図2の通信端末装置100の構成に加えて、情報交換部121および再送応答時間計算部122をさらに備えている。パケットチェック部111、パケットロス検知部112、再送要求先選択部113、データ蓄積部117、パケット送信部118、情報交換部121および再送応答時間計算部122以外の構成要素は、実施の形態1と同様のものなのでここでは説明しない。
パケットチェック部111は、実施の形態1のパケットチェック部と同じように、パケット受信部110が受信したパケットの種類を判別する。そして、パケットチェック部111は、パケットの種類に応じた出力先にパケットを渡す。
パケットの種類は、データパケット、再送要求パケット、再送パケット、問合せ用情報交換パケットおよび応答用情報交換パケットがある。データパケット、再送要求パケットおよび再送パケットは、実施の形態1と同様のものなのでここでは説明しない。問合せ用情報交換パケットは、他の受信ノードの応答時間を取得しようとする受信ノード(通信端末装置)が作成するユニキャスト方式のパケットである。応答用情報交換パケットは、問合せ用情報交換パケットを受信した受信ノード(情報端末装置)が作成するユニキャスト方式のパケットである。
パケットチェック部111の説明に戻る。パケットチェック部111は、受信したパケットをデータパケットと判別した場合、このパケットをパケットロス検知部112に渡す。また、パケットチェック部111は、受信したパケットを再送要求パケットと判別した場合、このパケットを再送パケット作成部115に渡す。また、パケットチェック部111は、受信したパケットを再送パケットと判別した場合、このパケットを再送パケット受信部116に渡す。また、パケットチェック部111は、受信したパケットを問合せ用情報交換パケットまたは応答用情報交換パケットと判別した場合、このパケットを情報交換部121に渡す。
パケットロス検知部112は、実施の形態1のパケットロス検知部が有する機能に加え、パケットチェック部111から渡されたデータパケットに記載されたアドレスリストおよびビットマップをデータ蓄積部117に格納する。パケットロス検知部112は、すでにデータ蓄積部117に同一のアドレスリストおよびビットマップが格納されている場合、データパケットに記載されたアドレスリストおよびビットマップを格納しなくてもよい。
情報交換部121は、他の受信ノードとの間の往復遅延時間(Round Trip Time:以下「RTT」という)を測定するための問合せ用情報交換パケットを定期的に作成する。このとき、情報交換部121は、データ蓄積部117に格納されている他の受信ノードのIPアドレスを取得し、それらのアドレスを宛先として問合せ用情報交換パケットを作成する。
ここで、問合せ用情報交換パケットについて説明する。図21は、問合せ用情報交換パケットの構成の一例を示す図である。図21において、問合せ用情報交換パケット900は、ヘッダ部901と、ペイロード902とを有する。ヘッダ部901には、宛先アドレス903、問合せ元アドレス904および問合せ用情報交換パケットの送信時刻905が含まれる。ヘッダ部901は、他のヘッダを有していてもよいが、説明の便宜上ここでは説明しない。
情報交換部121の説明に戻る。情報交換部121は、データ蓄積部117に格納された他の受信ノードのIPアドレスを定期的に取得する。そして、情報交換部121は、ヘッダ部901の宛先アドレス903に、取得した他の受信ノードのIPアドレスを記載する。また、情報交換部121は、問合せ元アドレス904に自らのIPアドレス(図21の例では受信ノードCのIPアドレス)を記載する。そして、情報交換部121は、作成した問合せ用情報交換パケットをパケット送信部118に渡す。
また、情報交換部121は、パケットチェック部111から問合せ用情報交換パケットを渡された場合、この問合せ用情報交換パケットの問合せ元アドレス904に記載されたIPアドレスを宛先とする応答用情報交換パケットを作成する。このとき、情報交換部121は、問合せ用情報交換パケットの送信時刻905に記載された時刻を応答用情報交換パケットに記載する。そして、情報交換部121は、作成した応答用情報交換パケットをパケット送信部118に渡す。
また、情報交換部121は、パケットチェック部111から応答用情報交換パケットを渡された場合、このパケットを再送応答時間計算部122に渡す。
再送応答時間計算部122は、情報交換部121から渡された応答用情報交換パケットの送信時刻905に記載された時刻と現在時刻との差から、情報交換パケットを交換した受信ノードとの間のRTTを算出する。そして、再送応答時間計算部122は、算出したRTTをその受信ノードのIPアドレスと共にデータ蓄積部117に格納する。このとき、RTTの急な変化に追随しすぎないように、過去のRTTを加重平均した値をデータ蓄積部117に格納するようにしてもよい。
データ蓄積部117は、実施の形態1のデータ蓄積部が有する機能に加え、再送応答時間計算部122が算出した各受信ノードのRTTを応答時間として格納する。図22は、応答時間を記録した表の一例を示す図である。この表は、受信ノードA〜Cについて応答時間が記録されている例である。この表は、後述する再送要求先選択部113によって使用される。
再送要求先選択部113は、実施の形態1の再送要求先選択部と同じように、パケットロス検知部112から通知されたパケットロスが発生したデータパケットについて、どの受信ノードに対して再送要求を行うかを選択する。このとき、再送要求先選択部113は、パケットロス検知部112から渡されたデータパケット内のビットマップおよびアドレスリストに加え、データ蓄積部117に格納された各受信ノードの応答時間を記録した表も用いて再送要求を行う受信ノードを選択する。
再送要求先選択部113は、パケットロス検知部112から渡されたデータパケット内のビットマップを検索し、配送済みとなっているビットを選択する。そして、再送要求先選択部113は、同じデータパケットのアドレスリストを調べ、選んだビットに対応する受信ノードのIPアドレスを取得する。ビットマップ中に配送済みとなっているビットが複数存在した場合、再送要求先選択部113は、データ蓄積部117に格納された各受信ノードの応答時間の表(図22参照)を調べ、配送済みの各受信ノードの応答時間と再送要求するデータを再生するまでの時間とを比較する。その結果、再送要求先選択部113は、すべての受信ノードの応答時間がこのデータを再生するまでの時間を上回っている場合、再送要求をしても再生するまでに再送データを受信することができないと判断し、再送要求を行わない。また、再送要求先選択部113は、一つ以上の受信ノードの応答時間がこのデータを再生するまでの時間を下回っている場合、これらの下回っている受信ノードのうちのいずれかを再送要求先として選択する。例えば、再送要求先選択部113は、最も応答時間の短い受信ノードを再送要求先として選択すればよい。
例えば、図23に示すデータパケット(図3のデータパケットとビットマップ505が異なる)のアドレスリスト506には、受信ノードAのIPアドレス507、受信ノードCのIPアドレス508および受信ノードDのIPアドレス509が記載されているものとする。また、ビットマップ505には、アドレスリスト506に記載された受信ノードのIPアドレスそれぞれについて配送済みか否かを示すビットが、アドレスリスト506内のIPアドレス507〜509の並び順通りに1ビットずつ割当てられているものとする。図23に示すデータパケットの例では、配送済みを示すビットを0、未配送を示すビットを1とすると、ビットマップは「0・0・1」であるので、受信ノードAおよび受信ノードCは配送済み(0)であり、受信ノードDは未配送(1)であることを示している。この場合、再送要求先選択部113は、再送要求先の候補として受信ノードAおよび受信ノードCのIPアドレスを選択する。そして、再送要求先選択部113は、受信ノードAおよび受信ノードCの応答時間と再送要求するデータを再生するまでの時間とを比較する。例えば、各受信ノードの応答時間が図22に示すものであり、再送要求するデータを再生するまでの時間が15ミリ秒(ms)の場合、再送要求先選択部113は、受信ノードAの応答時間のみが15ミリ秒を下回っているので、受信ノードAを再送要求先として選択する。
再送要求先選択部113は、実施の形態1の再送要求先選択部と同じように、再送要求先として選択した受信ノードのIPアドレスおよびパケットロスが発生したデータパケットのシーケンス番号を再送要求パケット作成部114に通知する。また、再送要求先選択部113は、実施の形態1の再送要求先選択部と同じように、再送要求を行うデータパケットのシーケンス番号を記録する(図4参照)。
パケット送信部118は、実施の形態1のパケット送信部が有する機能に加え、さらに、情報交換部121が作成した問合せ用情報交換パケットの送信時刻905に現在時刻を記載する。また、パケット送信部118は、問合せ用情報交換パケットおよび応答用情報交換パケットをネットワーク200にユニキャスト通信により送信する。なお、パケット送信部118は、問合せ用情報交換パケットの送信時刻905をペイロード902に記載してもよい。
以下、上述のように構成された通信端末装置170の動作を説明する。通信端末装置170の動作は、定期的かつ自発的に行う問合せ用情報交換パケット送信処理と、パケットを受信したときに行うパケット受信処理とに大きく分けられる。
図24は、問合せ用情報交換パケット送信処理を行うときの通信端末装置170の動作を示すフローチャートである。
まず、ステップS700において、情報交換部121は、データ蓄積部117に格納されている他の受信ノードのIPアドレスを取得し、それらのアドレスを宛先とする問合せ用情報交換パケットを作成する。そして、情報交換部121は、作成した問合せ用情報交換パケットをパケット送信部118に渡す。
次いで、ステップS701において、パケット送信部118は、情報交換部121が作成した問合せ用情報交換パケットに現在時刻を送信時刻として記載する。そして、パケット送信部118は、問合せ用情報交換パケットを問い合わせ先の受信ノードに送信し、本フローを終了する。
図25は、パケット受信処理を行うときの通信端末装置170の動作を示すフローチャートである。
まず、ステップS100において、パケット受信部110は、通信ネットワーク200からパケットを受信する。そして、パケット受信部110は、受信したパケットをパケットチェック部111に渡す。
次いで、ステップS200において、パケットチェック部111は、パケット受信部110が受信したパケットの種類を判別する。そして、パケットチェック部111は、受信したパケットをデータパケットと判別した場合(S200:データパケット)、そのパケットをパケットロス検知部112に渡して、ステップS300に進む。パケットチェック部111は、受信したパケットを再送要求パケットと判別した場合(S200:再送要求パケット)、そのパケットを再送パケット作成部115に渡して、ステップS400に進む。パケットチェック部111は、受信したパケットを再送パケットと判別した場合(S200:再送パケット)、そのパケットを再送パケット受信部116に渡して、ステップS500に進む。パケットチェック部111は、受信したパケットを問合せ用情報交換パケットまたは応答用情報交換パケットと判別した場合(S200:問合せ用情報交換パケット、応答用情報交換パケット)、このパケットを情報交換部121に渡して、ステップS800に進む。
ステップS300では、データパケット受信処理を行い、本フローを終了する。データパケット受信処理については、図27を用いて後述する。
ステップS400では、再送要求パケット受信処理を行い、本フローを終了する。再送要求パケット受信処理は、実施の形態1と同様のものなので説明を省略する。
ステップS500では、再送パケット受信処理を行い、本フローを終了する。再送パケット受信処理は、実施の形態1と同様のものなので説明を省略する。
ステップS800では、情報交換パケット受信処理を行い、本フローを終了する。情報交換パケット受信処理は、受信した情報交換パケットの種類に応じて処理内容が異なる。情報交換パケット受信処理は、受信した情報交換パケットが問合せ用情報交換パケットの場合、応答用情報交換パケットを問合せ元に送信する処理である。一方、情報交換パケット受信処理は、受信した情報交換パケットが応答用情報交換パケットの場合、情報交換を行った受信ノードのIPアドレスおよびその応答時間をデータ蓄積部117に格納する処理である。情報交換パケット受信処理については、図26を用いて後述する。
次に、実施の形態1と異なる、データパケット受信処理および情報交換パケット受信処理およびについて説明する。
初めに、情報交換パケット受信処理(ステップS800)について、図26に示すフローチャートを用いて説明する。
まず、ステップS801において、情報交換部121は、パケットチェック部111から渡された情報交換パケットの種類を判別する。そして、情報交換部121は、受信したパケットを問合せ用情報交換パケットと判別した場合(S801:問合せ用情報交換パケット)、ステップS802に進む。一方、情報交換部121は、受信したパケットを応答用情報交換パケットと判別した場合(S801:応答用情報交換パケット)、そのパケットを再送応答時間計算部122に渡して、ステップS804に進む。
ステップS802において、情報交換部121は、問合せ用情報交換パケットの問合せ元アドレスに記載されたIPアドレスを宛先とする応答用情報交換パケットを作成する。このとき、情報交換部121は、問合せ用情報交換パケットの送信時刻に記載された送信時刻を作成した応答用情報交換パケットに記載する。そして、情報交換部121は、応答用情報交換パケットをパケット送信部118に渡す。
次いで、ステップS803において、パケット送信部118は、情報交換部121が作成した応答用情報交換パケットを問合せ元の受信ノードに送信し、本フローを終了する。
ステップS804において、再送応答時間計算部122は、情報交換部121から渡された応答用情報交換パケットに記載された送信時刻と現在時刻の時間差から、情報交換パケットを交換した受信ノードのRTTを算出する。そして、再送応答時間計算部122は、算出した受信ノードのRTTをその受信ノードのIPアドレスと共にデータ蓄積部117に格納し、本フローを終了する。
次に、データパケット受信処理(ステップS300)について、図27に示すフローチャートを用いて説明する。
まず、ステップS331において、パケットロス検知部112は、パケットチェック部111から渡されたデータパケットに含まれるデータ(またはデータパケット全体)をデータ蓄積部117に格納する。
次いで、ステップS332において、パケットロス検知部112は、パケットチェック部111から渡されたデータパケットに記載されたアドレスリストおよびビットマップをデータ蓄積部117に格納する。
次いで、ステップS333において、パケットロス検知部112は、パケットロスが発生しているか否かを判定する。パケットロス検知部112は、パケットロスが発生していないと判定した場合(S333:NO)、本フローを終了する。一方、パケットロス検知部112は、パケットロスが発生したと判定した場合(S333:YES)、パケットロスが発生したデータパケットのシーケンス番号と、保持している(最後に受信した)データパケットとを再送要求先選択部113に渡し、ステップS334に進む。
ステップS334において、再送要求先選択部113は、パケットロス検知部112から渡されたデータパケットのビットマップおよびアドレスリストから、配送済みとなっている受信ノードのIPアドレスを取得する。そして、再送要求先選択部113は、データ蓄積部117に格納された配送済みの各受信ノードの応答時間を調べる。そして、再送要求先選択部113は、各受信ノードの応答時間が再送要求するデータを再生するまでの時間を上回るか否かを判定する。再送要求先選択部113は、すべての受信ノードの応答時間がこのデータを再生するまでの時間を上回っていると判定した場合(S334:YES)、本フローを終了する。一方、再送要求先選択部113は、一つ以上の受信ノードの応答時間がこのデータを再生するまでの時間を下回っていると判定した場合(S334:NO)、ステップS335に進む。
ステップS335において、再送要求先選択部113は、応答時間がこのデータを再生するまでの時間を下回っている受信ノードのうちのいずれかを再送要求先として選択する。再送要求先選択部113は、選択した再送要求先の受信ノードのIPアドレスおよび再送要求を行うデータパケットのシーケンス番号を再送要求パケット作成部114に通知する。
ステップS336において、再送要求パケット作成部114は、再送要求先選択部113から通知されたIPアドレスおよびシーケンス番号から、ユニキャスト方式の再送要求パケットを作成する。そして、再送要求パケット作成部114は、作成した再送要求パケットをパケット送信部118に渡す。
次いで、ステップS337において、パケット送信部118は、再送要求パケット作成部114が作成した再送要求パケットを再送要求先の受信ノードに送信し、本フローを終了する。
以上説明したように、実施の形態4に係る通信端末装置は、問合せ用情報交換パケットおよび応答用情報交換パケットを用いて、他の受信ノードの応答時間を算出する。そして、実施の形態4に係る通信端末装置は、ビットマップおよびアドレスリストに加えてさらに算出された応答時間も用いて再送要求を行う受信ノードを選択し、選択した受信ノードに対してユニキャスト通信により再送要求を行う。このように、本実施の形態によれば、実施の形態1の効果に加えて、再送要求を行うデータを再生する時までに再送データを受信できる受信ノードを再送要求先として選択することができる。
(実施の形態5)
実施の形態4では、他の受信ノードと情報交換パケットを交換することで他の受信ノードの応答時間をあらかじめ算出し、ビットマップ、アドレスリストおよび他の受信ノードの応答時間を用いて再送要求先の受信ノードを選択する例を示した。実施の形態5では、他の受信ノードと情報交換パケットを交換することで、他の受信ノードのセッション情報などを収集し、ビットマップ、アドレスリストならびに他の受信ノードのセッション情報などを用いて再送要求先の受信ノードを選択する例を示す。
図28は、本発明の実施の形態5に係る通信端末装置の構成を示す図である。実施の形態4に係る通信端末装置と同じ構成要素については同一の符号を付し、重複箇所の説明を省略する。
図28において、通信端末装置180は、図20の通信端末装置170の構成に加えて、セッション情報管理部123をさらに備えている。再送要求先選択部113、データ蓄積部117、情報交換部121、再送応答時間計算部122およびセッション情報管理部123以外の構成要素は、実施の形態4と同様のものなのでここでは説明しない。
情報交換部121は、実施の形態4の情報交換部と同じように、他の受信ノードのセッション情報などを取得するための問合せ用情報交換パケットを定期的に作成する。このとき、情報交換部121は、一の受信ノードに対して複数の一連の情報交換パケットを作成する。また、情報交換部121は、他の受信ノードとの間の損失イベント率を測定するために、シーケンス番号およびその受信ノードと情報交換パケットを最後に交換した時のRTTを問合せ用情報交換パケットに記載する。
ここで、問合せ用情報交換パケットについて説明する。図29は、問合せ用情報交換パケットの構成の一例を示す図である。図29において、問合せ用情報交換パケット910は、ヘッダ部911と、ペイロード912とを有する。ヘッダ部911には、宛先アドレス913、問合せ元アドレス914、問合せ用情報交換パケットの送信時刻915、RTT916およびシーケンス番号917が含まれる。ヘッダ部911は、他のヘッダを有していてもよいが、説明の便宜上ここでは説明しない。
情報交換部121の説明に戻る。情報交換部121は、データ蓄積部117に格納された他の受信ノードのIPアドレスを定期的に取得する。そして、情報交換部121は、ヘッダ部911の宛先アドレス913に、取得した他の受信ノードのIPアドレスを記載する。また、情報交換部121は、問合せ元アドレス914に自らのIPアドレス(図29の例では受信ノードCのIPアドレス)を記載し、RTT916に問い合わせ先の受信ノードとの間で最後に測定したRTT(図29の例では「30(ミリ秒)」)を記載し、シーケンス番号917に一連の問合せ用情報交換パケット間で連続するシーケンス番号(図29の例では整数「3」)を記載する。なお、情報交換部121は、RTT916およびシーケンス番号917をペイロード912に記載してもよい。そして、情報交換部121は、作成した問合せ用情報交換パケットをパケット送信部118に渡す。
また、情報交換部121は、パケットチェック部111から問合せ用情報交換パケットを渡された場合、一連の問合せ用情報交換パケットにパケットロスが発生しているか否かを判定する。例えば、情報交換部121は、一連の問合せ用情報交換パケットのヘッダ部に記載されたシーケンス番号を調べることで、パケットロスの発生を検知することができる。情報交換部121は、パケットロスが発生したと判定した場合、問合せ用情報交換パケットに記載されたRTTから1RTT以内のパケットロスを1イベント損失として、前回問合せ用情報交換パケットを受信した時刻からのイベント損失の発生割合である損失イベント率を算出する。さらに、情報交換部121は、受信できた問合せ用情報交換パケットのデータ量を求める。そして、情報交換部121は、求めた損失イベント率および受信できたデータ量をその受信ノードのIPアドレスと関連づけてデータ蓄積部117に格納する。
また、情報交換部121は、実施の形態4の情報交換部と同じように、問合せ用情報交換パケットの問合せ元アドレスに記載されたIPアドレスを宛先とする応答用情報交換パケットを作成する。このとき、情報交換部121は、問合せ用情報交換パケットに記載された送信時刻だけでなく、損失イベント率および受信できたデータ量も応答用情報交換パケットに記載する。さらに、情報交換部121は、自ノードがデータパケットを確保しうる時間や自ノードの処理性能などの情報を応答用情報交換パケットに記載してもよい。そして、情報交換部121は、作成した応答用情報交換パケットをパケット送信部118に渡す。
また、情報交換部121は、パケットチェック部111から応答用情報交換パケットを渡された場合、このパケットをセッション情報管理部123に渡す。
セッション情報管理部123は、情報交換部121から渡された応答用情報交換パケットの送信時刻905に記載された時刻と現在時刻との時間差から、情報交換を行った受信ノードとのRTTを算出する。そして、セッション情報管理部123は、算出したRTTをその受信ノードのIPアドレスと関連付けてデータ蓄積部117に格納する。このとき、RTTの急な変化に追随しすぎないように、過去のRTTを加重平均した値をデータ蓄積部117に格納するようにしてもよい。
また、セッション情報管理部123は、定期的に他の受信ノードから返信されてくる応答用情報交換パケットに記載された損失イベント率および受信できたデータ量ならびに応答用情報交換パケットに記載された送信時刻から算出されるRTTなどの情報を管理する。そして、セッション情報管理部123は、それらの情報から、情報交換パケットを交換している受信ノードの利用可能な空き帯域を推定する。
セッション情報管理部123は、TFRC(TCP Friendly Rate Control)に基づいて他の受信ノードの利用可能な空き帯域を推定する。TFRCでは、他の受信ノードの利用可能な空き帯域が以下の式に基づいて推定される(M. Handley et al., “TCP Friendly Rate Control (TFRC): Protocol Specification”, RFC 3448.を参照)。
Figure 0004711921
ただし、X:利用可能な帯域(bps)、R:RTT(秒)、b:TCPのACK数、p:損失イベント率、s:パケットサイズ(バイト)、t_RTO:TCPのタイムアウト値(=4×R)を示す。
このように、セッション情報管理部123は、RTTおよび損失イベント率から、他の受信ノードの利用可能な空き帯域を推定する。そして、セッション情報管理部123は、他の受信ノードの利用可能な空き帯域の推定値を再送応答時間計算部122に渡す。
再送応答時間計算部122は、応答用情報交換パケットに記載された損失イベント率およびセッション情報管理部123から渡された利用可能な空き帯域の推定値から、受信ノードの応答時間を修正するための補正値を算出する。再送応答時間計算部122は、相手の受信ノードの利用可能な空き帯域の値が大きい場合、再送要求しても帯域に余裕があるため補正値を大きくする。一方、再送応答時間計算部122は、相手の受信ノードの利用可能な空き帯域の値が小さい場合、補正値を小さくする。また、再送応答時間計算部122は、相手の受信ノードとの間の損失イベント率が高い場合、再送要求しても再送パケットまたは再送要求パケットが失われる可能性が高いため補正値を小さくする。一方、再送応答時間計算部122は、相手の受信ノードとの間の損失イベント率が低ければ、補正値を大きくする。このとき、再送応答時間計算部122は、応答用情報交換パケットに記載されたその他の情報を用いて補正値を算出してもよい。例えば、応答用情報交換パケットに受信ノードの処理性能に関する情報が含まれていた場合、再送応答時間計算部122は、受信ノードの処理性能が高ければ補正値を大きくする。一方、再送応答時間計算部122は、受信ノードの処理性能が低ければ補正値を小さくする。そして、再送応答時間計算部122は、算出した補正値をその受信ノードのIPアドレスと共にデータ蓄積部117に格納する。なお、相手の受信ノードがデータを保存する時間が応答用情報交換パケットに記載されていた場合、再送応答時間計算部122は、データ蓄積部117に格納された各受信ノードの応答時間の表(図22参照)を調べ、相手の受信ノードの応答時間とその受信ノードがデータを保存する時間とを比較する。その結果、再送応答時間計算部122は、相手の受信ノードの応答時間がその受信ノードがデータを保存する時間を上回っている場合、再送要求をしても再生するまでに再送データを受信することができないと判断し、自ノードがその受信ノードに対して再送要求を行わないようにする。例えば、再送応答時間計算部122は、データ蓄積部117に格納された各受信ノードの応答時間の表(図22参照)からその受信ノードの応答時間を削除することで、自ノードがその受信ノードに対して再送要求を行わないようにすることができる。また、再送応答時間計算部122は、各受信ノードの応答時間の表におけるその受信ノードの応答時間の数値を極めて大きい値に修正することで、自ノードがその受信ノードに対して再送要求を行わないようにすることができる。
データ蓄積部117は、実施の形態4のデータ蓄積部が有する機能に加え、再送応答時間計算部122によって算出された応答時間の補正値を格納する。これらの情報は、後述する再送要求先選択部113によって使用される。
再送要求先選択部113は、実施の形態4の再送要求先選択部と同じように、パケットロス検知部112から通知されたパケットロスが発生したデータパケットについて、どの受信ノードに対して再送要求を行うかを選択する。このとき、再送要求先選択部113は、パケットロス検知部112から渡されたデータパケット内のビットマップ、アドレスリストおよび各受信ノードの応答時間に加え、データ蓄積部117に格納された応答時間の補正値も用いて再送要求を行う受信ノードを選択する。
再送要求先選択部113は、実施の形態4の再送要求先選択部と同じように、再送要求するデータパケットを配送済みで、かつ応答時間が再送要求するデータを再生するまでの時間を下回る受信ノードを選択する。再送要求先選択部113は、この条件を満たす受信ノードが複数ある場合、各受信ノードの応答時間から補正値を引き、各受信ノードの修正応答時間を算出する。そして、再送要求先選択部113は、修正応答時間の最も短い受信ノードを再送要求先として選択する。なお、再送要求先選択部113は、上記条件を満たす受信ノードが複数ある場合、各受信ノードの補正値を直接比較し、補正値が最も大きい受信ノードを再送要求先として選択してもよい。
再送要求先選択部113は、実施の形態4の再送要求先選択部と同じように、再送要求先として選択した受信ノードのIPアドレスおよびパケットロスが発生したデータパケットのシーケンス番号を再送要求パケット作成部114に通知する。また、再送要求先選択部113は、実施の形態4の再送要求先選択部と同じように、再送要求を行うデータパケットのシーケンス番号を記録する。
以下、上述のように構成された通信端末装置180の動作を説明する。通信端末装置180の動作は、実施の形態4の通信端末装置と同じように、定期的かつ自発的に行う問合せ用情報交換パケット送信処理と、パケットを受信した時に行うパケット受信処理とに大きく分けられる。問合せ用情報交換パケット送信処理およびパケット受信処理は、実施の形態4と同様のものなのでここでは説明しない。
次に、実施の形態4と異なる、パケット受信処理内のデータパケット受信処理および情報交換パケット受信処理およびについて説明する。パケット受信処理内の再送要求パケット受信処理および再送パケット受信処理は実施の形態4と同様のものなのでここでは説明しない。
初めに、情報交換パケット受信処理(ステップS800)について、図30に示すフローチャートを用いて説明する。
まず、ステップS811において、情報交換部121は、パケットチェック部111から渡された情報交換パケットの種類を判別する。そして、情報交換部121は、受信したパケットを問合せ用情報交換パケットと判別した場合(S811:問合せ用情報交換パケット)、ステップS812に進む。一方、情報交換部121は、受信したパケットを応答用情報交換パケットと判別した場合(S811:応答用情報交換パケット)、そのパケットをセッション情報管理部123に渡して、ステップS816に進む。
ステップS812において、情報交換部121は、パケットチェック部111から渡された一連の問合せ用情報交換パケットにパケットロスが発生しているか否かを判定する。情報交換部121は、パケットロスが発生したと判定した場合(S812:YES)、ステップS813に進む。一方、パケットロス検知部112は、パケットロスが発生していないと判定した場合(S812:NO)、ステップS814に進む。
ステップS813において、情報交換部121は、問合せ用情報交換パケットに記載されたRTTから損失イベント率を算出する。また、情報交換部121は、受信できた問合せ用情報交換パケットのデータ量を求める。そして、情報交換部121は、求めた損失イベント率および受信できたデータ量をその受信ノードのIPアドレスと共にデータ蓄積部117に格納する。
ステップS814において、情報交換部121は、問合せ用情報交換パケットの問合せ元アドレスに記載されたIPアドレスを宛先とする応答用情報交換パケットを作成する。このとき、情報交換部121は、問合せ用情報交換パケットに記載された送信時刻、ならびにステップS813で求めた損失イベント率および受信できたデータ量を応答用情報交換パケットに記載する。そして、情報交換部121は、作成した応答用情報交換パケットをパケット送信部118に渡す。
次いで、ステップS815において、パケット送信部118は、情報交換部121が作成した応答用情報交換パケットを問合せ元の受信ノードに送信し、本フローを終了する。
ステップS816で、セッション情報管理部123は、情報交換部121から渡された応答用情報交換パケットに記載された送信時刻と現在時刻との時間差から、情報交換を行った受信ノードとのRTTを算出する。そして、セッション情報管理部123は、算出したRTTをその受信ノードのIPアドレスと関連付けてデータ蓄積部117に格納する。
次いで、ステップS817において、セッション情報管理部123は、ステップS816で算出したRTTおよび応答用情報交換パケットに記載された損失イベント率から、情報交換を行った受信ノードの利用可能な空き帯域を推定する。そして、セッション情報管理部123は、推定した他の受信ノードの利用可能な空き帯域の値をその受信ノードのIPアドレスと関連付けてデータ蓄積部117に格納する。
次いで、ステップS818において、再送応答時間計算部122は、応答用情報交換パケットに記載された損失イベント率およびステップS817で推定した利用可能な空き帯域の値から、応答時間を修正するための補正値を算出する。そして、再送応答時間計算部122は、算出した補正値をその受信ノードのIPアドレスと関連付けてデータ蓄積部117に格納し、本フローを終了する。
次に、データパケット受信処理(ステップS300)について、図31に示すフローチャートを用いて説明する。
まず、ステップS341において、パケットロス検知部112は、パケットチェック部111から渡されたデータパケットに含まれるデータ(またはデータパケット全体)をデータ蓄積部117に格納する。
次いで、ステップS342において、パケットロス検知部112は、パケットチェック部111から渡されたデータパケットに記載されたアドレスリストおよびビットマップをデータ蓄積部117に格納する。
次いで、ステップS343において、パケットロス検知部112は、パケットロスが発生しているか否かを判定する。パケットロス検知部112は、パケットロスが発生していないと判定した場合(S343:NO)、本フローを終了する。一方、パケットロス検知部112は、パケットロスが発生したと判定した場合(S343:YES)、パケットロスが発生したデータパケットのシーケンス番号と、保持している(最後に受信した)データパケットとを再送要求先選択部113に渡し、ステップS344に進む。
ステップS344において、再送要求先選択部113は、パケットロス検知部112から渡されたデータパケットのビットマップおよびアドレスリストから、配送済みとなっている受信ノードのIPアドレスを取得する。そして、再送要求先選択部113は、データ蓄積部117に格納された配送済みの各受信ノードの応答時間を調べる。そして、再送要求先選択部113は、各受信ノードの応答時間が再送要求するデータを再生するまでの時間を上回るか否かを判定する。再送要求先選択部113は、すべての受信ノードの応答時間がこのデータを再生するまでの時間を上回っていると判定した場合(S344:YES)、本フローを終了する。一方、再送要求先選択部113は、一つ以上の受信ノードの応答時間がこのデータを再生するまでの時間を下回っていると判定した場合(S344:NO)、ステップS345に進む。
ステップS345において、再送要求先選択部113は、応答時間がこのデータを再生するまでの時間を下回っている受信ノードの応答時間からそれぞれの補正値を引き、修正応答時間を算出する。
ステップS346において、再送要求先選択部113は、応答時間がこのデータを再生するまでの時間を下回っている受信ノードのうち、修正応答時間が最も小さい受信ノードを再送要求先として選択する。再送要求先選択部113は、選択した再送要求先の受信ノードのIPアドレスおよび再送要求を行うデータパケットのシーケンス番号を再送要求パケット作成部114に通知する。
ステップS347において、再送要求パケット作成部114は、再送要求先選択部113から通知されたIPアドレスおよびシーケンス番号から、ユニキャスト方式の再送要求パケットを作成する。そして、再送要求パケット作成部114は、作成した再送要求パケットをパケット送信部118に渡す。
次いで、ステップS348において、パケット送信部118は、再送要求パケット作成部114が作成した再送要求パケットを再送要求先の受信ノードに送信し、本フローを終了する。
以上説明したように、実施の形態5に係る通信端末装置は、問合せ用情報交換パケットおよび応答用情報交換パケットを用いて、他の受信ノードの応答時間ならびに他の受信ノードの損失イベント率および利用可能な空き帯域の推定値に基づく応答時間の補正値を算出する。そして、実施の形態5に係る通信端末装置は、ビットマップおよびアドレスリストに加えてさらに算出された応答時間およびその補正値も用いて再送要求を行う受信ノードを選択し、選択した受信ノードに対してユニキャスト通信により再送要求を行う。このように、本実施の形態によれば、実施の形態4の効果に加えて、損失イベント率が低くかつ空き帯域が大きい受信ノード、すなわち再送データを確実に受信できる受信ノードを再送要求先として選択することができる。
なお、上記各実施の形態の通信端末装置は、再送要求パケットを送信してから一定時間を経過しても再送パケットを受信しない場合、ビットマップとアドレスリストを用いて新たな再送要求先を選択し、選択した新たな再送要求先の受信ノードに再送パケットを送信するようにしてもよい。
また、上記各実施の形態の通信端末装置は、再送要求されたデータがデータ蓄積部に格納されていない場合、再送要求元の受信ノードに対してデータがないというメッセージを送ってもよい。また、上記各実施の形態の通信端末装置は、再送要求されたデータがデータ蓄積部に格納されていない場合、何もせずに再送要求パケット受信処理を終了してもよい。この場合、再送要求パケットの送信元の受信ノードは、別の受信ノードに再送要求パケットを送信しなくてはならない。
また、上記各実施の形態では、再送パケット受信部は、データ蓄積部に格納された表に記載されたシーケンス番号に基づいて再送パケットの正当性を評価したが、再送パケット受信部は、再送要求先のIPアドレスなどの情報に基づいて再送パケットの正当性のチェックを行ってもよい。
また、上記実施の形態2では、パケットロスを検知した受信ノードが、再送要求パケットを1つにまとめるために一定時間待機するようにしたが、再送要求パケットを受信した受信ノードが、再送パケットを1つにまとめるために一定時間待機するようにしてもよい。この場合、再送パケットは明示的マルチキャスト方式のパケットとなる。
本発明にかかる通信端末装置は、ネットワーク全体の帯域消費や受信ノードの処理負荷を低減できるという効果を有し、テレビ会議やネットワークゲームなどの通信端末装置として有用である。
本実施の形態に係る通信端末装置を受信ノードとするマルチキャスト配信の流れを説明するための通信ネットワークの概要を示す図 本発明の実施の形態1に係る通信端末装置の構成を示すブロック図 データパケットの構成の一例を示す図 再送要求を行う(行った)データパケットのシーケンス番号を記載する表を示す図 (A)再送要求パケットの構成の一例を示す図、(B)再送要求パケットの構成の別の例を示す図 再送パケットの構成の一例を示す図 本発明の実施の形態1に係る通信端末装置のパケット受信時の動作を示すフローチャート 本発明の実施の形態1に係るデータパケット受信処理を示すフローチャート 本発明の実施の形態1に係る再送要求パケット受信処理を示すフローチャート 本発明の実施の形態1に係る再送パケット受信処理を示すフローチャート 本発明の実施の形態2に係る通信端末装置の構成を示すブロック図 複数の再送元のIPアドレスが記載された再送要求パケットの構成の一例を示す図 明示的マルチキャスト方式の再送パケットの構成の一例を示す図 本発明の実施の形態2に係るデータパケット受信処理を示すフローチャート 本発明の実施の形態2に係る再送要求パケット受信待機処理を示すフローチャート 本発明の実施の形態2に係る再送要求パケット受信処理を示すフローチャート 本発明の実施の形態3に係る通信端末装置の構成を示すブロック図 本発明の実施の形態3に係るデータパケット受信処理を示すフローチャート 本発明の実施の形態3に係る再送要求パケット受信処理を示すフローチャート 本発明の実施の形態4に係る通信端末装置の構成を示すブロック図 問合せ用情報交換パケットの構成の一例を示す図 他の受信ノードの応答時間を記載する表を示す図 データパケットの構成の一例を示す図 本発明の実施の形態4に係る通信端末装置の問合せ用情報交換パケット送信時の動作を示すフローチャート 本発明の実施の形態4に係る通信端末装置のパケット受信時の動作を示すフローチャート 本発明の実施の形態4に係る情報交換パケット受信処理を示すフローチャート 本発明の実施の形態4に係るデータパケット受信処理を示すフローチャート 本発明の実施の形態5に係る通信端末装置の構成を示すブロック図 問合せ用情報交換パケットの構成の一例を示す図 本発明の実施の形態5に係る情報交換パケット受信処理を示すフローチャート 本発明の実施の形態5に係るデータパケット受信処理を示すフローチャート
符号の説明
100〜104、150、160、170、180 通信端末装置
110 パケット受信部
111 パケットチェック部
112 パケットロス検知部
113 再送要求先選択部
114 再送要求パケット作成部
115 再送パケット作成部
116 再送パケット受信部
117 データ蓄積部
118 パケット送信部
119 再送要求パケット待機部
120 数珠繋ぎ配送チェック部
121 情報交換部
122 再送応答時間計算部
123 セッション情報管理部
200 通信ネットワーク
300 送信ノード
400〜402 ルータ

Claims (16)

  1. データパケットを受信するパケット受信部と、
    前記パケット受信部が受信した一連のデータパケットにパケットロスが発生したことを検知するパケットロス検知部と、
    前記パケットロス検知部がパケットロスの発生を検知した場合に、前記パケット受信部が受信したデータパケットのアドレスリストに含まれる1つ以上のIPアドレスから、再送要求先のIPアドレスを選択する再送要求先選択部と、
    前記再送要求先のIPアドレスにパケットロスが発生したデータパケットのデータの再送を要求する再送要求パケットを作成する再送要求パケット作成部と、
    前記再送要求先のIPアドレスに前記再送要求パケットを送信するパケット送信部と、
    を備える通信端末装置。
  2. 前記データパケットは、前記アドレスリストに含まれる1つ以上のIPアドレスのそれぞれについて、前記データパケットが配送済みであるか否かを示すビット列であるビットマップを含み、
    前記再送要求先選択部は、
    前記ビットマップから配送済みを示すビットを1つ選択し、選択されたビットに対応するIPアドレスを再送要求先のIPアドレスとして選択する、
    請求項1記載の通信端末装置。
  3. 前記パケット受信部は、
    パケットとしてデータパケットに加えて再送パケットを受信し、
    前記通信端末装置は、
    前記パケット受信部が受信したパケットの種類を判別するパケットチェック部と、
    前記パケットチェック部が前記パケットをデータパケットと判別した場合、前記データパケットに含まれるデータおよびシーケンス番号を格納するデータ蓄積部と、
    前記パケットチェック部が前記パケットを再送パケットと判別した場合、前記再送パケットに含まれるデータおよびシーケンス番号を前記データ蓄積部に格納する再送パケット受信部と、
    をさらに備える請求項1記載の通信端末装置。
  4. 前記パケットロス検知部は、
    前記パケット受信部が受信するデータパケットのシーケンス番号が連続しているか否かを判定することで、パケットロスが発生したことを検知する、
    請求項3記載の通信端末装置。
  5. 前記再送要求パケット作成部は、
    データの再送を要求する前記データパケットのシーケンス番号と、再送要求元のIPアドレスとしての自装置のIPアドレスとを再送要求パケットに記載する、
    請求項3記載の通信端末装置。
  6. 前記再送パケット受信部は、
    前記再送パケットに含まれるシーケンス番号と再送要求を行ったシーケンス番号とが同一である場合、前記再送パケットに含まれるデータおよびシーケンス番号を前記データ蓄積部に格納する、
    請求項3記載の通信端末装置。
  7. 前記パケット受信部は、
    パケットとしてデータパケットおよび再送パケットに加えて再送要求パケットを受信し、
    前記通信端末装置は、
    前記再送要求先選択部が再送要求先のIPアドレスを選択した後に一定時間待機し、前記再送要求先に再送要求するデータと同一のデータを再送要求する再送要求パケットを受信する再送要求パケット待機部、をさらに備え、
    前記再送要求パケット作成部は、
    前記再送要求パケット待機部が受信した前記再送要求パケットに含まれる再送要求元アドレスを、自らのアドレスに加えて再送要求元アドレスとして再送要求パケットに記載する、
    請求項3記載の通信端末装置。
  8. 前記再送要求パケット待機部は、
    前記再送要求先選択部が再送要求先のIPアドレスを選択した後に一定時間待機し、
    再送要求パケットを受信したとき、前記再送要求先に再送要求するデータのシーケンス番号と、前記再送要求パケットに含まれる再送要求するデータのシーケンス番号とが同一であるか否かを判定し、
    前記再送要求先に再送要求するデータのシーケンス番号と、前記再送要求パケットに含まれる再送要求するデータのシーケンス番号とが同一である場合、前記再送要求パケットに記載された再送要求元アドレスを、前記再送要求パケット作成部に再送要求元アドレスとして通知し、
    一定時間経過した後、待機状態を終了する、
    請求項7記載の通信端末装置。
  9. 前記パケット受信部が受信したデータパケットが数珠繋ぎ配送によって転送されているか否かを判定し、前記データパケットが数珠繋ぎ配送によって転送されている場合、前記データパケットのアドレスリストに記載されたIPアドレスのうち、自らのIPアドレスより後ろに記載されたすべてのIPアドレスを前記再送要求パケット作成部に通知する数珠繋ぎ配送チェック部、をさらに備え、
    前記再送要求パケット作成部は、さらに、
    前記数珠繋ぎ配送チェック部から通知されたIPアドレスを自らのアドレスに加えて再送要求元アドレスとする再送要求パケットを作成する、
    請求項3記載の通信端末装置。
  10. 応答用情報交換パケットおよびデータパケットをパケットとして受信するパケット受信部と、
    前記パケット受信部が受信したパケットの種類を判別するパケットチェック部と、
    前記パケットチェック部が前記パケットを応答用情報交換パケットと判別した場合、前記応答用情報交換パケットに含まれる送信時刻および現在時刻から、前記応答用情報交換パケットの送信元の応答時間を算出する再送応答時間計算部と、
    前記パケットチェック部が前記パケットをデータパケットと判別した場合、前記データパケットにパケットロスが発生したことを検知するパケットロス検知部と、
    前記パケットロス検知部がパケットロスの発生を検知した場合、前記パケット受信部が受信したデータパケットのアドレスリストに含まれる1つ以上のIPアドレスから、パケットロスが発生したデータパケットのデータを再生するまでの時間が前記応答時間よりも短いIPアドレスを再送要求先のIPアドレスとして選択する再送要求先選択部と、
    前記再送要求先のIPアドレスにパケットロスが発生したデータパケットのデータの再送を要求する再送要求パケットを作成する再送要求パケット作成部と、
    問合せ用情報交換パケットを定期的に作成する情報交換部と、
    前記再送要求パケット作成部が前記再送要求パケットを作成した場合、前記再送要求先のIPアドレスに前記再送要求パケットを送信し、前記情報交換部が前記問合せ用情報交換パケットを作成した場合、前記問合せ用情報交換パケットに送信時刻として現在時刻を記載した後、前記データパケットのアドレスリストに記載されたIPアドレスに前記問合せ用情報交換パケットを送信するパケット送信部と、
    を備える通信端末装置。
  11. 前記パケット受信部は、
    パケットとしてデータパケットおよび応答用情報交換パケットに加えて問合せ用情報交換パケットを受信し、
    前記情報交換部は、さらに、
    前記パケットチェック部が前記パケットを問合せ用情報交換パケットと判別した場合、前記問合せ用情報交換パケットに含まれる問合せ元のIPアドレスおよび送信時刻に基づいて、前記問合せ元のIPアドレスおよび前記送信時刻を含む応答用情報交換パケットを作成し、
    前記パケット送信部は、さらに、
    前記情報交換部が前記応答用情報交換パケットを作成した場合、前記問合せ元のIPアドレスに前記応答用情報交換パケットを送信する、
    請求項10記載の通信端末装置。
  12. 応答用情報交換パケットおよびデータパケットをパケットとして受信するパケット受信部と、
    前記パケット受信部が受信したパケットの種類を判別するパケットチェック部と、
    前記パケットチェック部が前記パケットを応答用情報交換パケットと判別した場合、前記応答用情報交換パケットに含まれる送信時刻および現在時刻から、前記応答用情報交換パケットの送信元の応答時間を算出し、前記応答用情報交換パケットに含まれる損失イベント率および前記応答用情報交換パケットを受信できたデータ量から、前記応答用情報交換パケットの送信元の利用可能な帯域を推定するセッション情報管理部と、
    前記パケットチェック部が前記パケットを応答用情報交換パケットと判別した場合、前記応答用情報交換パケットに含まれる損失イベント率および前記セッション情報管理部が推定した前記応答用情報交換パケットの送信元の利用可能な帯域から、前記応答用情報交換パケットの送信元の応答時間を修正するための補正値を算出する再送応答時間計算部と、
    前記パケットチェック部が前記パケットをデータパケットと判別した場合、前記データパケットにパケットロスが発生したことを検知するパケットロス検知部と、
    前記パケットロス検知部がパケットロスの発生を検知した場合、前記パケット受信部が受信したデータパケットのアドレスリストに含まれる1つ以上のIPアドレスから、パケットロスが発生したデータパケットのデータを再生するまでの時間が前記応答時間よりも短く、かつ前記応答時間を前記補正値を用いて修正した修正応答時間が最も短いIPアドレスを再送要求先のIPアドレスとして選択する再送要求先選択部と、
    前記再送要求先のIPアドレスにパケットロスが発生したデータパケットのデータの再送を要求する再送要求パケットを作成する再送要求パケット作成部と、
    問合せ用情報交換パケットを定期的に作成する情報交換部と、
    前記再送要求パケット作成部が前記再送要求パケットを作成した場合、前記再送要求先のIPアドレスに前記再送要求パケットを送信し、前記情報交換部が前記問合せ用情報交換パケットを作成した場合、前記問合せ用情報交換パケットに送信時刻として現在時刻を記載した後、前記データパケットのアドレスリストに記載されたIPアドレスに前記問合せ用情報交換パケットを送信するパケット送信部と、
    を備える通信端末装置。
  13. 前記パケット受信部は、
    パケットとしてデータパケットおよび応答用情報交換パケットに加えて問合せ用情報交換パケットを受信し、
    前記情報交換部は、さらに、
    前記パケットチェック部が前記パケットを問合せ用情報交換パケットと判別した場合、前記問合せ用情報交換パケットに含まれるシーケンス番号および応答時間から損失イベント率を算出し、前記問合せ用情報交換パケットを受信できたデータ量を算出し、前記問合せ用情報交換パケットに含まれる問合せ元のIPアドレス、前記送信時刻、前記損失イベント率および前記受信できたデータ量を含む応答用情報交換パケットを作成し、
    前記パケット送信部は、さらに、
    前記情報交換部が前記応答用情報交換パケットを作成した場合、前記問合せ元のIPアドレスに前記応答用情報交換パケットを送信する、
    請求項12記載の通信端末装置。
  14. 少なくとも第一の通信端末装置および第二の通信端末装置を有するマルチキャスト通信システムであって、
    前記第一の通信端末装置は、受信している一連のデータパケットにパケットロスが発生したことを検知した場合、受信したデータパケットのアドレスリストに含まれる1つ以上のIPアドレスから再送要求先として前記第二の通信端末のIPアドレスを選択し、パケットロスが発生したデータパケットのデータの再送を要求する再送要求パケットを前記第二の通信端末にユニキャスト通信で送信し、
    前記第二の通信端末装置は、前記第一の通信端末装置から前記再送要求パケットを受信した場合、再送要求されているデータを含む再送パケットを前記第一の通信端末装置にユニキャスト通信で送信する、
    マルチキャスト通信システム。
  15. 少なくとも第一の通信端末装置および第二の通信端末装置を有するマルチキャスト通信システムにおけるデータ再送方法であって、
    前記第一の通信端末装置が、受信している一連のデータパケットにパケットロスが発生したことを検知した場合に、受信したデータパケットのアドレスリストに含まれる1つ以上のIPアドレスから再送要求先として前記第二の通信端末のIPアドレスを選択し、パケットロスが発生したデータパケットのデータの再送を要求する再送要求パケットを前記第二の通信端末にユニキャスト通信で送信するステップと、
    前記第二の通信端末装置が、前記第一の通信端末装置から前記再送要求パケットを受信した場合に、再送要求されているデータを含む再送パケットを前記第一の通信端末装置にユニキャスト通信で送信するステップと、
    を有するデータ再送方法。
  16. データパケットを受信するステップと、
    受信した一連のデータパケットにパケットロスが発生したことを検知するステップと、
    パケットロスが発生したことを検知した場合に、受信したデータパケットのアドレスリストに記載されている一つ以上のIPアドレスから、再送要求先のIPアドレスを選択するステップと、
    前記再送要求先のIPアドレスに前記パケットロスが発生したデータパケットのデータの再送を要求する再送要求パケットを作成するステップと、
    前記再送要求先のIPアドレスに前記再送要求パケットを送信するステップと、
    を有する再送要求方法。
JP2006255098A 2006-05-22 2006-09-20 通信端末装置および再送要求方法 Active JP4711921B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2006255098A JP4711921B2 (ja) 2006-05-22 2006-09-20 通信端末装置および再送要求方法
PCT/JP2007/060155 WO2007135959A1 (ja) 2006-05-22 2007-05-17 通信端末装置および再送要求方法
CN2007800066488A CN101390348B (zh) 2006-05-22 2007-05-17 通信终端装置、组播通信系统、数据重发方法及重发请求方法
US12/301,598 US8023509B2 (en) 2006-05-22 2007-05-17 Communication terminal and retransmission request method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006142127 2006-05-22
JP2006142127 2006-05-22
JP2006255098A JP4711921B2 (ja) 2006-05-22 2006-09-20 通信端末装置および再送要求方法

Publications (2)

Publication Number Publication Date
JP2008005455A JP2008005455A (ja) 2008-01-10
JP4711921B2 true JP4711921B2 (ja) 2011-06-29

Family

ID=38723271

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006255098A Active JP4711921B2 (ja) 2006-05-22 2006-09-20 通信端末装置および再送要求方法

Country Status (4)

Country Link
US (1) US8023509B2 (ja)
JP (1) JP4711921B2 (ja)
CN (1) CN101390348B (ja)
WO (1) WO2007135959A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4984162B2 (ja) * 2008-01-17 2012-07-25 日本電気株式会社 監視制御方法および監視制御装置
US8023513B2 (en) * 2009-02-24 2011-09-20 Fujitsu Limited System and method for reducing overhead in a wireless network
JP2010213150A (ja) * 2009-03-12 2010-09-24 Nec Corp 送信装置、大容量ファイル配信システム、同システムにおけるファィル再送制御方法、再送制御プログラム
GB2466540B (en) * 2009-09-24 2010-11-17 Nokia Corp Multicast service
US20140181140A1 (en) * 2010-11-15 2014-06-26 Samsung Electronics Co., Ltd. Terminal device based on content name, and method for routing based on content name
JP2012213110A (ja) * 2011-03-31 2012-11-01 Sony Corp 無線通信装置及び無線通信方法、並びに無線通信システム
JP2013093717A (ja) * 2011-10-25 2013-05-16 Fujitsu Ltd 無線局、通信システム、及び通信方法
JP6064522B2 (ja) * 2012-10-30 2017-01-25 富士通株式会社 通信装置及び通信方法
US9603039B2 (en) * 2013-04-03 2017-03-21 Qualcomm Incorporated Opportunistic media patching for a communication session
US9900169B2 (en) 2015-03-18 2018-02-20 Cisco Technology, Inc. Reliable multicast in low-power and lossy networks
JP6699864B2 (ja) * 2016-01-12 2020-05-27 Necプラットフォームズ株式会社 通信システム、及び通信方法
CN107483306A (zh) * 2017-07-28 2017-12-15 深圳怡化电脑股份有限公司 一种通信方法、通信系统及存储介质
US11722377B2 (en) 2019-06-21 2023-08-08 Lutron Technology Company Llc Coordinated startup routine for control devices of a network
EP4498617A3 (en) 2019-12-02 2025-04-09 Lutron Technology Company, LLC Percentile floor link qualification
US11770324B1 (en) * 2019-12-02 2023-09-26 Lutron Technology Company Llc Processing advertisement messages in a mesh network
WO2021127458A1 (en) 2019-12-20 2021-06-24 Lutron Technology Company Llc Handling loss or removal of devices in a mesh network
US12273256B2 (en) 2020-05-08 2025-04-08 Lutron Technology Company Llc Assigning router devices in a mesh network
CN113315709B (zh) * 2021-03-22 2023-02-28 阿里巴巴新加坡控股有限公司 地址缓存的创建方法、路由选址方法和装置
JP7713366B2 (ja) * 2021-10-21 2025-07-25 株式会社日立製作所 データ共有システム及びデータ共有方法
US11805039B1 (en) * 2023-01-20 2023-10-31 Dell Products L.P. Method and apparatus for detecting degraded network performance
JP7683945B2 (ja) * 2023-03-10 2025-05-27 Necプラットフォームズ株式会社 通信システム、受信装置、通信方法、プログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05347623A (ja) * 1992-04-07 1993-12-27 Nec Corp マルチキャスト通信方式
JPH09191314A (ja) 1996-01-10 1997-07-22 Mitsubishi Electric Corp 連続データ伝送方法および連続データ伝送装置
CA2197263A1 (en) * 1997-02-11 1998-08-11 Dan Burke Method of detecting signal degradation fault conditions within sonet and sdh signals
US6526022B1 (en) * 1998-06-30 2003-02-25 Sun Microsystems Detecting congestion by comparing successive loss of packets in windows to provide congestion control in reliable multicast protocol
JP2000307580A (ja) * 1999-04-21 2000-11-02 Nippon Telegr & Teleph Corp <Ntt> データ配信方法およびその記録媒体
JP2001103051A (ja) 1999-09-30 2001-04-13 Japan Science & Technology Corp マルチキャスト通信方法
US6724770B1 (en) * 2000-02-17 2004-04-20 Kenneth P. Birman Multicast protocol with reduced buffering requirements
JP2002084239A (ja) 2000-09-06 2002-03-22 Nippon Telegr & Teleph Corp <Ntt> メディア情報配信システムおよびメディア情報配信方法
JP4116470B2 (ja) * 2002-03-06 2008-07-09 ヒューレット・パッカード・カンパニー メディア・ストリーミング配信システム
CN100334867C (zh) * 2002-11-20 2007-08-29 华为技术有限公司 简单网络管理协议中数据包传送的可靠性保证方法
JP4452983B2 (ja) * 2004-01-08 2010-04-21 ソニー株式会社 受信装置および方法、プログラム、並びに記録媒体
US7733868B2 (en) * 2005-01-26 2010-06-08 Internet Broadcasting Corp. Layered multicast and fair bandwidth allocation and packet prioritization
JP4688566B2 (ja) * 2005-05-10 2011-05-25 富士通東芝モバイルコミュニケーションズ株式会社 送信機及び受信機

Also Published As

Publication number Publication date
JP2008005455A (ja) 2008-01-10
WO2007135959A1 (ja) 2007-11-29
US8023509B2 (en) 2011-09-20
CN101390348B (zh) 2012-01-04
US20090245252A1 (en) 2009-10-01
CN101390348A (zh) 2009-03-18

Similar Documents

Publication Publication Date Title
JP4711921B2 (ja) 通信端末装置および再送要求方法
US9270475B2 (en) Network-based service for the repair of IP multicast sessions
JP4798285B2 (ja) パケットの伝送品質計測方法、およびパケット受信計測装置
JP5084405B2 (ja) ループフリーアドホックルーティングを行なうシステム
US6567929B1 (en) Network-based service for recipient-initiated automatic repair of IP multicast sessions
KR100552509B1 (ko) 이동 애드 혹 네트워크에서의 브로드캐스트 데이터 처리방법
TW201014396A (en) Network utilities in wireless mesh communications networks
US20050243722A1 (en) Method and apparatus for group communication with end-to-end reliability
CN100579034C (zh) 上报设备信息的方法、获取设备信息的系统和设备
US20080247355A1 (en) Duplicate detection method for ad hoc network
TW201123770A (en) Route selection in wireless networks
TW201014393A (en) Node discovery and culling in wireless mesh communications networks
CN105721536A (zh) 用于信息中心联网的兴趣确认
EP1714446A1 (en) Reliable message distribution with enhanced emfc for ad hoc mesh networks
US20090190529A1 (en) Mobile IP Communication System
CN114500366B (zh) 一种防止主备节点间路由环路的方法和装置
JP2007049382A (ja) 無線中継装置、無線中継方法およびそのコンピュータ・プログラム
JPWO2007015428A1 (ja) 送信装置および送信方法
JP2009010575A (ja) マルチキャスト通信のための中継装置、並びに端末装置
KR102427315B1 (ko) Rpl 환경에서 이동성 장치로 향하는 하향 트래픽 신뢰성 증대를 위한 장치 및 방법
Bachran et al. A framework for multicast and quality based forwarding in manets.
WO2012100711A1 (zh) 一种应用层信令路由保护方法、设备、计算机程序和存储介质
CN119586106B (zh) 组播隧道负载均衡的方法、装置、网关设备及存储介质
Shome et al. Performance enhancement of pragmatic general multicast (PGM) protocol using a local loss recovery strategy
KR101940753B1 (ko) 네트워크 장치 및 그 통신 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110106

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110322