JP2021087036A - Receiver, distribution system, and program - Google Patents

Receiver, distribution system, and program Download PDF

Info

Publication number
JP2021087036A
JP2021087036A JP2019212610A JP2019212610A JP2021087036A JP 2021087036 A JP2021087036 A JP 2021087036A JP 2019212610 A JP2019212610 A JP 2019212610A JP 2019212610 A JP2019212610 A JP 2019212610A JP 2021087036 A JP2021087036 A JP 2021087036A
Authority
JP
Japan
Prior art keywords
packet
receiving device
request information
unit
receiving
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.)
Pending
Application number
JP2019212610A
Other languages
Japanese (ja)
Inventor
大貴 福留
Daiki Fukudome
大貴 福留
敏 西村
Satoshi Nishimura
敏 西村
黒住 正顕
Masaaki Kurozumi
正顕 黒住
彩花 西出
Ayaka Nishide
彩花 西出
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.)
Japan Broadcasting Corp
Original Assignee
Nippon Hoso Kyokai NHK
Japan Broadcasting Corp
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 Nippon Hoso Kyokai NHK, Japan Broadcasting Corp filed Critical Nippon Hoso Kyokai NHK
Priority to JP2019212610A priority Critical patent/JP2021087036A/en
Publication of JP2021087036A publication Critical patent/JP2021087036A/en
Pending legal-status Critical Current

Links

Images

Abstract

To suppress amounts of redundant packets and reduce a load on a re-transmission server, in multicast distribution using FEC.SOLUTION: A receiver 10 comprises: a packet analysis unit 13 for detecting lost packets; a recovery propriety determination unit 14 for determining whether or not the number of the lost packets p is equal to or smaller than a recoverable number E; a lost packet recovery unit 15 for recovering recoverable lost packets when p≤E; a packet request information generation unit 21 for generating packet request information when p>E; a packet request information transmission unit 22 for transmitting the packet request information to another receiver in a P2P group; and a request packet reception unit 20 for receiving a request packer from the other receiver. When p≤E is not established after receiving the request packet and the receiver 10 is a representative receiver, a minimal number of packets establishing p≤E of lost packets having not been acquired are acquired from a re-transmission server 40 and are transmitted according to a request from another receiver in the P2P group.SELECTED DRAWING: Figure 3

Description

本発明は、受信装置、配信システム、及びプログラムに関する。 The present invention relates to a receiving device, a distribution system, and a program.

IP(Internet Protocol)マルチキャストを利用した配信では、送信側はデータを一度送信するだけで、経路途上の通信機器が受信者のいる経路にだけデータを複製し送信するため、一対多の大規模配信において効率的であることが一般的に知られている。 In distribution using IP (Internet Protocol) multicast, the sender only sends the data once, and the communication device on the route duplicates and transmits the data only to the route where the receiver is, so in large-scale one-to-many distribution. It is generally known to be efficient.

IPマルチキャスト配信では、上位のプロトコルとしてUDP(User Datagram Protocol)が利用されるため、パケット到達や到達順序については保証されない。したがって、信頼性のある配信を行うためには、誤り訂正や再送制御などをアプリケーションレイヤにて独自に実装する必要がある。 In IP multicast distribution, UDP (User Datagram Protocol) is used as an upper layer protocol, so packet arrival and arrival order are not guaranteed. Therefore, in order to perform reliable distribution, it is necessary to implement error correction, retransmission control, etc. independently at the application layer.

一般的に、伝送路で発生する誤りを受信側で訂正する誤り訂正(FEC:Forward Error Correction)や、誤りを検出して誤ったデータを再送信する自動再送制御(ARQ:Automatic Repeat Request)により、高品質なデータ配信を実現可能なことが知られている(例えば、非特許文献1参照)。 In general, error correction (FEC: Forward Error Correction) that corrects errors that occur in the transmission line on the receiving side and automatic repeat control (ARQ: Automatic Repeat Request) that detects errors and retransmits incorrect data are used. , It is known that high-quality data distribution can be realized (see, for example, Non-Patent Document 1).

久保田周治、"4 群(モバイル・無線)- 1 編(無線通信基礎) 5 章 誤り訂正技術の応用"、[online]、2010年11月9日、[2019年11月20日検索]、インターネット<URL:http://www.ieice-hbkb.org/files/04/04gun_01hen_05.pdf>Shuji Kubota, "4 groups (mobile / wireless) -1 volume (basic wireless communication) Chapter 5 Application of error correction technology", [online], November 9, 2010, [Search November 20, 2019], Internet <URL: http://www.ieice-hbkb.org/files/04/04gun_01hen_05.pdf>

FECを利用した配信では、損失パケット(パケットロス)を回復するための冗長パケット(検査パケット)を追加で配信する必要がある。冗長パケットの量を多くすると配信効率の低下につながり、逆に冗長パケットの量を少なくすると損失パケットを回復できなくなるため、通信路に応じた適切な量の冗長パケットを付加する必要がある。インターネットなどのオープンなネットワークは利用率に応じて帯域が変動するが、クオリティーの高い配信を実現するためには、一時的なパケット損失の増加に対応することが求められる。そのため、通信路におけるパケット損失率が最大となる場合に合わせて冗長パケット量を設定する必要がある。したがって、パケット損失率が最大とならない期間においては無駄な冗長パケットを配信することとなり、配信効率が低下してしまう。また、ARQを利用したリライアブルなマルチキャストでは損失パケットのみを再送するため、無駄な配信はないが、端末数に応じた負荷が再送サーバにかかる。 In delivery using FEC, it is necessary to additionally deliver redundant packets (inspection packets) for recovering lost packets (packet loss). Increasing the amount of redundant packets leads to a decrease in delivery efficiency, and conversely, decreasing the amount of redundant packets makes it impossible to recover lost packets. Therefore, it is necessary to add an appropriate amount of redundant packets according to the communication path. Bandwidth of open networks such as the Internet fluctuates according to the usage rate, but in order to realize high-quality distribution, it is necessary to cope with the temporary increase in packet loss. Therefore, it is necessary to set the amount of redundant packets according to the case where the packet loss rate in the communication path is maximized. Therefore, in the period when the packet loss rate is not maximized, useless redundant packets are delivered, and the delivery efficiency is lowered. Further, in the reliable multicast using ARQ, only the lost packet is retransmitted, so that there is no useless distribution, but a load corresponding to the number of terminals is applied to the retransmitted server.

かかる事情に鑑みてなされた本発明の目的は、FECを利用したマルチキャスト配信において、冗長パケット量を抑制し、且つ再送サーバの負荷を低減することが可能な受信装置、配信システム、及びプログラムを提供することにある。 An object of the present invention made in view of such circumstances is to provide a receiving device, a distribution system, and a program capable of suppressing the amount of redundant packets and reducing the load on the retransmission server in multicast distribution using FEC. To do.

一実施形態に係る受信装置は、マルチキャストストリームを受信し、損失パケットをP2P(Peer to Peer)通信により補完する受信装置であって、マルチキャストストリームの受信時における損失パケットを検出するパケット解析部と、損失パケット数が、FECにより回復可能な損失パケット数の最大値以下であるか否かを判定する回復可否判定部と、前記損失パケット数が前記最大値以下である場合に、回復可能な損失パケットをFECにより回復する損失パケット回復部と、前記損失パケット数が前記最大値よりも大きい場合に、損失パケットを示すパケット要求情報を生成するパケット要求情報生成部と、前記パケット要求情報をP2Pグループ内の他の受信装置に送信するパケット要求情報送信部と、前記他の受信装置から、前記パケット要求情報が示す損失パケットに含まれるパケットである要求パケットを受信する要求パケット受信部と、を備え、前記要求パケットの受信後に前記損失パケット数が前記最大値以下とならない場合であって、当該受信装置が前記P2Pグループを代表する代表受信装置である場合には、未取得の損失パケットのうち、前記損失パケット数が前記最大値以下となる最小数のパケットを再送サーバから取得し、取得した損失パケットをP2Pグループ内の他の受信装置からの要求により送信する。 The receiving device according to one embodiment is a receiving device that receives a multicast stream and complements lost packets by P2P (Peer to Peer) communication, and includes a packet analysis unit that detects lost packets when receiving the multicast stream. A recoverability determination unit that determines whether or not the number of lost packets is equal to or less than the maximum number of lost packets that can be recovered by FEC, and a recoverable loss packet when the number of lost packets is equal to or less than the maximum value. A loss packet recovery unit that recovers the packet by FEC, a packet request information generation unit that generates packet request information indicating a lost packet when the number of lost packets is larger than the maximum value, and the packet request information in the P2P group. A packet request information transmitting unit for transmitting to another receiving device and a request packet receiving unit for receiving a request packet which is a packet included in the loss packet indicated by the packet request information from the other receiving device are provided. When the number of lost packets does not fall below the maximum value after receiving the request packet and the receiving device is a representative receiving device representing the P2P group, among the unacquired lost packets, the said The minimum number of packets whose number of lost packets is equal to or less than the maximum value is acquired from the retransmission server, and the acquired lost packets are transmitted at the request of other receiving devices in the P2P group.

さらに、一実施形態において、前記受信装置は、パケット要求情報を他の受信装置から受信するパケット要求情報受信部と、前記パケット要求情報が示す損失パケットのうち、前記他の受信装置においてFECによる回復に必要となる最小数のパケットのみを、前記他の受信装置に送信する要求パケット送信部と、を備えてもよい。 Further, in one embodiment, the receiving device recovers by FEC in the packet request information receiving unit that receives the packet request information from another receiving device and the loss packet indicated by the packet request information in the other receiving device. A request packet transmission unit that transmits only the minimum number of packets required for the above to the other receiving device may be provided.

さらに、一実施形態において、前記要求パケット送信部は、前記パケット要求情報が示す損失パケットのうち保持しているパケットの数が、前記他の受信装置においてFECによる回復が可能となる最小数に満たない場合には、前記パケット要求情報が示す損失パケットのうち保持しているパケットの全てを、前記他の受信装置に送信するようにしてもよい。 Further, in one embodiment, the request packet transmission unit satisfies the minimum number of lost packets indicated by the packet request information that can be recovered by the FEC in the other receiving device. If not, all of the retained packets among the lost packets indicated by the packet request information may be transmitted to the other receiving device.

さらに、一実施形態において、前記パケット要求情報送信部は、WebRTC(Web Real-Time Communication)のデータチャネルを利用して、前記パケット要求情報を送信し、前記要求パケット受信部は、WebRTCのデータチャネルを利用して、前記要求パケットを受信するようにしてもよい。 Further, in one embodiment, the packet request information transmitting unit transmits the packet request information using a WebRTC (Web Real-Time Communication) data channel, and the request packet receiving unit is a WebRTC data channel. May be used to receive the request packet.

また、一実施形態に係る配信システムは、前記受信装置と、前記マルチキャストストリームを前記受信装置に送信するサーバと、を備える配信システムであって、複数の前記受信装置によりP2Pグループが生成され、前記サーバは、データパケットを前記P2Pグループ内の全ての受信装置に送信するとともに、同一の符号語で生成した冗長パケットを前記P2Pグループ内の受信装置の台数分に分割し、分割された冗長パケットを前記P2Pグループ内の受信装置にそれぞれ送信する。 Further, the distribution system according to the embodiment is a distribution system including the receiving device and a server that transmits the multicast stream to the receiving device, and a P2P group is generated by the plurality of receiving devices, and the P2P group is generated. The server transmits the data packet to all the receiving devices in the P2P group, divides the redundant packet generated by the same code word into the number of receiving devices in the P2P group, and divides the divided redundant packet into the number of receiving devices. It is transmitted to each of the receiving devices in the P2P group.

また、一実施形態に係るプログラムは、コンピュータを、上記受信装置として機能させる。 Further, the program according to the embodiment causes the computer to function as the receiving device.

本発明によれば、高い信頼性が要求されるデータ配信においてパケット損失率が高い場合でも、受信装置間の補完、又は再送サーバによる補完により信頼性を確保するため、冗長パケット量を抑制することが可能となる。また、FECにより回復できない損失パケットを受信装置間の補完により回復することで、再送サーバへの負荷を低減することが可能となる。 According to the present invention, even when the packet loss rate is high in data distribution that requires high reliability, the amount of redundant packets is suppressed in order to ensure reliability by complementation between receiving devices or complementation by a retransmission server. Is possible. Further, by recovering the lost packet that cannot be recovered by FEC by complementing between the receiving devices, it is possible to reduce the load on the retransmission server.

一実施形態に係る配信システムの概略を示す図である。It is a figure which shows the outline of the distribution system which concerns on one Embodiment. 一実施形態に係るFECブロックの構成を示す図である。It is a figure which shows the structure of the FEC block which concerns on one Embodiment. 一実施形態に係る受信装置の構成例を示すブロック図である。It is a block diagram which shows the structural example of the receiving apparatus which concerns on one Embodiment. 一実施形態に係る配信システムにおける損失パケットの補完について説明する図である。It is a figure explaining the complementation of the loss packet in the distribution system which concerns on one Embodiment. 一実施形態に係る受信装置におけるパケット受信に関する処理手順を示すフローチャートである。It is a flowchart which shows the processing procedure about the packet reception in the receiving apparatus which concerns on one Embodiment. 一実施形態に係る受信装置におけるパケット送信に関する処理手順を示すフローチャートである。It is a flowchart which shows the processing procedure about the packet transmission in the receiving apparatus which concerns on one Embodiment.

以下、本発明の一実施形態について、図面を参照して詳細に説明する。 Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings.

図1は、一実施形態に係る配信システムの概略を示す図である。図1に記載の配信システム1は、配信サーバ30と、再送サーバ40と、グループ生成サーバ50と、複数の受信装置10と、を備える。本実施形態では、配信サーバ30と、再送サーバ40と、グループ生成サーバ50とをそれぞれ区別しているが、これらの一部又は全ては、一体のサーバとして構成されてもよい。 FIG. 1 is a diagram showing an outline of a distribution system according to an embodiment. The distribution system 1 shown in FIG. 1 includes a distribution server 30, a retransmission server 40, a group generation server 50, and a plurality of receiving devices 10. In the present embodiment, the distribution server 30, the retransmission server 40, and the group generation server 50 are distinguished from each other, but some or all of them may be configured as an integrated server.

配信サーバ30及び複数の受信装置10は、マルチキャストルーティングに対応したネットワーク(マルチキャスト対応網)上に設置される。マルチキャスト対応網が複数ある場合には、それぞれのマルチキャスト対応網に対して配信サーバ30が設置される。再送サーバ40及びグループ生成サーバ50は、全ての受信装置10からアクセス可能なネットワーク上に設置される。本ネットワークは、必ずしもマルチキャストルーティングに対応する必要はない。ただし、マルチキャスト対応網に再送サーバ40を設置することで、オープンインターネットの経路を通らないため、受信装置10への再送の際にインターネットのトラフィック混雑による遅延などの影響を抑制できることが期待される。再送サーバ40と受信装置10との間の通信は、TCP(Transmission Control Protocol)を利用したHTTP(Hypertext Transfer Protocol)などによる信頼性のある通信が想定されるが、これに限定されるものではない。 The distribution server 30 and the plurality of receiving devices 10 are installed on a network (multicast compatible network) that supports multicast routing. When there are a plurality of multicast-compatible networks, a distribution server 30 is installed for each multicast-compatible network. The retransmission server 40 and the group generation server 50 are installed on a network accessible from all the receiving devices 10. This network does not necessarily support multicast routing. However, by installing the retransmission server 40 in the multicast-compatible network, it is expected that the influence of delay due to traffic congestion on the Internet at the time of retransmission to the receiving device 10 can be suppressed because the retransmission server 40 does not pass through the open Internet route. Communication between the retransmission server 40 and the receiving device 10 is assumed to be reliable communication by HTTP (Hypertext Transfer Protocol) using TCP (Transmission Control Protocol), but is not limited to this. ..

グループ生成サーバ50は、アクセスのあった受信装置10に対し、複数の受信装置10で構成されP2P通信を行うグループ(以下、「P2Pグループ」という。)を決定する。また、グループ生成サーバ50は、P2Pグループごとに、P2Pグループを代表する1台以上の受信装置(代表受信装置)10を決定する。グループ生成サーバ50は、P2Pグループ及び代表受信装置10を任意に決定することができる。グループ生成サーバ50は、P2Pグループを構成する複数の受信装置10のうち、スループットが閾値を超える受信装置10を代表受信装置10に決定してもよい。各受信装置10がP2P通信を開始するためのシグナリング機能、STUN(Session Traversal Utilities for NATs)機能などは、グループ生成サーバ50が有していてもよいし、他のサーバが有していてもよい。 The group generation server 50 determines a group (hereinafter, referred to as “P2P group”) that is composed of a plurality of receiving devices 10 and performs P2P communication with respect to the receiving device 10 that has been accessed. Further, the group generation server 50 determines one or more receiving devices (representative receiving devices) 10 representing the P2P group for each P2P group. The group generation server 50 can arbitrarily determine the P2P group and the representative receiving device 10. The group generation server 50 may determine the receiving device 10 whose throughput exceeds the threshold value as the representative receiving device 10 among the plurality of receiving devices 10 constituting the P2P group. The group generation server 50 may have a signaling function for each receiving device 10 to start P2P communication, a STUN (Session Traversal Utilities for NATs) function, and the like, or another server may have it. ..

各受信装置10は、P2Pグループ内のその他の受信装置10に対し、P2P通信コネクションをフルメッシュで生成する。例えば、P2P通信にWebRTCを利用することで、ネットワークセグメントの異なる受信装置10とのコネクションや、NAT越えを比較的容易に実現することができる。なお、WebRTCを利用する場合、データチャネルのChannel TypeをDATA#CHANNEL#RELIABLE(0x00)に設定することで到達と順序を保証するものとする。P2P通信には、WebRTC以外の通信プロトコルを利用してもよい。 Each receiving device 10 creates a P2P communication connection with a full mesh to the other receiving devices 10 in the P2P group. For example, by using WebRTC for P2P communication, it is possible to relatively easily realize a connection with a receiving device 10 having a different network segment and NAT traversal. When using WebRTC, the arrival and order are guaranteed by setting the Channel Type of the data channel to DATA # CHANNEL # RELIABLE (0x00). A communication protocol other than WebRTC may be used for P2P communication.

配信サーバ30は、配信時刻になると、FEC付きのマルチキャストストリームを受信装置10に対して配信する。配信サーバ30は、配信するマルチキャストストリームの全てのパケットに、FECブロック番号と、FECブロック内におけるシーケンシャル番号とを、ヘッダ情報として付加する。配信サーバ30が配信するマルチキャストストリームは、動画データであってもよいし、システムアップデート用などのプログラムデータであってもよい。 The distribution server 30 distributes the multicast stream with FEC to the receiving device 10 at the distribution time. The distribution server 30 adds the FEC block number and the sequential number in the FEC block as header information to all the packets of the multicast stream to be distributed. The multicast stream distributed by the distribution server 30 may be moving image data or program data for system update or the like.

図2は、配信サーバ30が送信するFECブロックの構成を示す図である。図2(a)は、P2Pグループ内の受信装置10に対して、データパケット及び冗長パケットを1ストリームで配信する一般的な例を示している。図2(b)は、P2Pグループ内の受信装置10に対して、データパケット及び冗長パケットを個別に配信する例を示している。 FIG. 2 is a diagram showing a configuration of an FEC block transmitted by the distribution server 30. FIG. 2A shows a general example of delivering a data packet and a redundant packet in one stream to the receiving device 10 in the P2P group. FIG. 2B shows an example in which data packets and redundant packets are individually delivered to the receiving device 10 in the P2P group.

図2(a)に示す配信例では、配信サーバ30は同一のFECブロック(データパケットDATA1−1〜DATA1−5、及び冗長パケットPARITY1−6,PARITY1−7)をP2Pグループ内の全ての受信装置10(受信装置10−1及び受信装置10−2)に送信する。 In the distribution example shown in FIG. 2A, the distribution server 30 receives the same FEC block (data packets DATA1-1 to DATA1-5 and redundant packets PARITY1-6, PARITY1-7) in all the receiving devices in the P2P group. It transmits to 10 (reception device 10-1 and reception device 10-2).

図2(b)に示す配信例では、配信サーバ30は、データパケットについては、図2(a)と同様にP2Pグループ内の全ての受信装置10に一つのIPマルチキャストストリームで送信する。配信サーバ30は、冗長パケットについては、同一の符号語(例えば、リード・ソロモン符号)で生成した冗長パケットをP2Pグループ内の受信装置10の台数分に分割し、分割された冗長パケットを異なるIPマルチキャストストリームでP2Pグループ内の受信装置10にそれぞれ送信する。P2Pグループ内の受信装置10は、分割された個別の冗長パケットを受信する。 In the distribution example shown in FIG. 2B, the distribution server 30 transmits the data packet to all the receiving devices 10 in the P2P group by one IP multicast stream as in FIG. 2A. Regarding the redundant packet, the distribution server 30 divides the redundant packet generated by the same code word (for example, the read / multicast code) into the number of receiving devices 10 in the P2P group, and divides the divided redundant packet into different IPs. The multicast stream is transmitted to each of the receiving devices 10 in the P2P group. The receiving device 10 in the P2P group receives the divided individual redundant packets.

つまり、図2(b)に示す配信例では、データパケットDATA1−1〜DATA1−5については、P2Pグループ内の全ての受信装置10(受信装置10−1及び受信装置10−2)に一つのIPマルチキャストストリームで送信する。冗長パケットについては、同一の符号語で生成した冗長パケットPARITY1−6〜PARITY1−9を分割し、冗長パケットPARITY1−6,PARITY1−7を受信装置10−1に送信し、冗長パケットPARITY1−8,PARITY1−9を受信装置10−2に送信する。なお、冗長パケットはP2Pグループ内の受信装置10の台数分で均等に分割する必要はなく、例えば冗長パケットPARITY1−6を受信装置10−1に送信し、冗長パケットPARITY1−7〜PARITY1−9を受信装置10−2に送信してもよい。 That is, in the distribution example shown in FIG. 2B, for the data packets DATA1-1 to DATA1-5, one is one for all the receiving devices 10 (receiving devices 10-1 and receiving devices 10-2) in the P2P group. Send by IP multicast stream. For redundant packets, redundant packets PARITY 1-6 to PARITY 1-9 generated with the same codeword are divided, redundant packets PARITY 1-6 and PARITY 1-7 are transmitted to the receiving device 10-1, and redundant packets PARITY 1-8, PARITY 1-9 is transmitted to the receiving device 10-2. It is not necessary to divide the redundant packet evenly according to the number of receiving devices 10 in the P2P group. For example, the redundant packet PARITY 1-6 is transmitted to the receiving device 10-1, and the redundant packets PARITY 1-7 to PARITY 1-9 are transmitted. It may be transmitted to the receiving device 10-2.

図2(b)に示すように、冗長パケットを分割して個別に配信することで、全体として冗長パケット数が増えることによりFECとしての訂正能力が増加する。そのため、再送サーバ40の負荷をさらに低減することができる。配信サーバ30に近い上位の経路ではトラフィックが増加するものの、受信装置10の1台あたりが配信サーバ30から受信するパケット数は図2(a)と同じであるため、受信装置10の1台あたりの配信効率は同等とすることができる。 As shown in FIG. 2B, by dividing the redundant packets and delivering them individually, the correction capability of the FEC is increased by increasing the number of redundant packets as a whole. Therefore, the load on the retransmission server 40 can be further reduced. Although the traffic increases on the upper route close to the distribution server 30, the number of packets received from the distribution server 30 by one of the receiving devices 10 is the same as in FIG. 2A, so that each receiving device 10 Delivery efficiency can be the same.

受信装置10は、インターネットを介して互いにWebRTCなどによるP2P通信が可能な装置である。受信装置10は、家庭内、事業所などに設置される高機能NAS(Network Attached Storage)であってもよいし、通信事業者設備となる局舎、基地局などに設置されるエッジサーバであってもよい。 The receiving device 10 is a device capable of P2P communication with each other via WebRTC or the like via the Internet. The receiving device 10 may be a high-performance NAS (Network Attached Storage) installed in a home, a business office, or the like, or an edge server installed in a station building, a base station, or the like which is a telecommunications carrier's equipment. You may.

受信装置10は、配信サーバ30からマルチキャストストリームを受信し、シーケンシャル番号のギャップ(不連続性)により、損失パケットを検出する。受信装置10は、FECブロックの最後のパケットが配信されたことを検知すると、そのFECブロック内における損失パケット数などから、回復可否判定を行う。回復可否判定の結果、回復不可の場合には、損失パケットをP2P通信により補完(装置間補完)し、さらに必要に応じて再送サーバ40からの補完を行う。補完処理の詳細については後述する。 The receiving device 10 receives the multicast stream from the distribution server 30 and detects the lost packet due to the sequential number gap (discontinuity). When the receiving device 10 detects that the last packet of the FEC block has been delivered, it determines whether recovery is possible based on the number of lost packets in the FEC block and the like. As a result of the recovery possibility determination, if recovery is not possible, the lost packet is complemented by P2P communication (complementation between devices), and further complementation is performed from the retransmission server 40 as necessary. The details of the completion process will be described later.

図3は、受信装置10の構成例を示すブロック図である。図3に示す受信装置10は、コンテンツ情報管理部11と、マルチキャストストリーム受信部12と、パケット解析部13と、回復可否判定部14と、損失パケット回復部15と、パケット管理蓄積部16と、パケット要求情報受信部17と、パケット要求情報解析部18と、要求パケット送信部19と、要求パケット受信部20と、パケット要求情報生成部21と、パケット要求情報送信部22と、グループ構成情報取得部23と、グループ生成部24と、グループ管理部25と、を備える。 FIG. 3 is a block diagram showing a configuration example of the receiving device 10. The receiving device 10 shown in FIG. 3 includes a content information management unit 11, a multicast stream receiving unit 12, a packet analysis unit 13, a recovery possibility determination unit 14, a lost packet recovery unit 15, a packet management storage unit 16, and the like. Packet request information receiving unit 17, packet request information analysis unit 18, request packet transmitting unit 19, request packet receiving unit 20, packet request information generating unit 21, packet request information transmitting unit 22, and group configuration information acquisition. A unit 23, a group generation unit 24, and a group management unit 25 are provided.

コンテンツ情報管理部11は、時刻及びIPマルチキャストグループアドレスを管理し、配信開始時刻前になると、受信準備トリガーを生成し、マルチキャストストリーム受信部12及びグループ生成部24に出力する。配信開始時刻はコンテンツ情報管理部11が管理してもよいし、図示しない記憶部に配信予定表を格納してもよい。 The content information management unit 11 manages the time and the IP multicast group address, generates a reception preparation trigger before the distribution start time, and outputs the reception preparation trigger to the multicast stream reception unit 12 and the group generation unit 24. The distribution start time may be managed by the content information management unit 11, or the distribution schedule may be stored in a storage unit (not shown).

マルチキャストストリーム受信部12は、コンテンツ情報管理部11から受信準備トリガーが入力されると、該当のマルチキャストストリームの待ち受けを開始する。そして、マルチキャストストリーム受信部12は、配信サーバ30からマルチキャストストリームを受信し、受信したマルチキャストストリームをパケット解析部13に出力する。 When the reception preparation trigger is input from the content information management unit 11, the multicast stream receiving unit 12 starts listening to the corresponding multicast stream. Then, the multicast stream receiving unit 12 receives the multicast stream from the distribution server 30, and outputs the received multicast stream to the packet analysis unit 13.

パケット解析部13は、マルチキャストストリーム受信部12から入力されたマルチキャストストリームの解析を行い、シーケンシャル番号のギャップにより、マルチキャストストリームの受信時における損失パケットを検出する。パケット解析部13は、損失パケットを検出した場合には、損失パケットのシーケンシャル番号及び損失パケット数を回復可否判定部14に通知する。パケット解析部13は、損失パケットを検出しなかった場合には、パケット管理蓄積部16にパケットを格納する。 The packet analysis unit 13 analyzes the multicast stream input from the multicast stream reception unit 12, and detects the lost packet at the time of receiving the multicast stream by the gap of the sequential number. When the packet analysis unit 13 detects a lost packet, the packet analysis unit 13 notifies the recovery possibility determination unit 14 of the sequential number of the lost packet and the number of lost packets. If the packet analysis unit 13 does not detect the lost packet, the packet analysis unit 13 stores the packet in the packet management storage unit 16.

回復可否判定部14は、パケット解析部13により損失パケットを検出した場合、及び要求パケット受信部20により要求パケットを受信した場合に、損失パケットをFECにより回復可能か否かを判定する。例えば、リード・ソロモン符号を用いたFECの場合には、損失パケット数が冗長パケット数の半分以下である場合に回復可能であると判定する。回復可否判定部14は、損失パケットを回復可能と判定した場合には、損失パケット回復部15に通知を行う。回復可否判定部14は、損失パケットを回復不可と判定した場合には、損失パケットのシーケンシャル番号及び損失パケット数を、パケット要求情報生成部21に通知する。 The recovery possibility determination unit 14 determines whether or not the loss packet can be recovered by FEC when the packet analysis unit 13 detects the loss packet and the request packet reception unit 20 receives the request packet. For example, in the case of FEC using the Reed-Solomon code, it is determined that recovery is possible when the number of lost packets is half or less of the number of redundant packets. When the recovery possibility determination unit 14 determines that the lost packet can be recovered, the recovery possibility determination unit 14 notifies the loss packet recovery unit 15. When the recovery possibility determination unit 14 determines that the lost packet cannot be recovered, the recovery possibility determination unit 14 notifies the packet request information generation unit 21 of the sequential number of the lost packet and the number of lost packets.

損失パケット回復部15は、回復可否判定部14により回復可能と判定された損失パケットをFECにより回復し、回復したパケットをパケット管理蓄積部16に出力する。 The loss packet recovery unit 15 recovers the lost packet determined to be recoverable by the recovery possibility determination unit 14 by FEC, and outputs the recovered packet to the packet management storage unit 16.

パケット管理蓄積部16は、受信した完全なパケット(損失パケットについては回復後のパケット)を蓄積し、各パケットを、FECブロック番号及びシーケンシャル番号により管理する。 The packet management storage unit 16 accumulates the received complete packets (for lost packets, the recovered packets), and manages each packet by the FEC block number and the sequential number.

パケット要求情報受信部17は、P2Pグループ内の他の受信装置10から、損失パケットを示すパケット要求情報を受信し、受信したパケット要求情報をパケット要求情報解析部18に出力する。ここで、損失パケットを示すパケット要求情報とは、損失パケットのFECブロック番号及びシーケンシャル番号、並びにパケットを要求する受信装置10のID(識別番号)を示す情報である。 The packet request information receiving unit 17 receives packet request information indicating a lost packet from another receiving device 10 in the P2P group, and outputs the received packet request information to the packet request information analysis unit 18. Here, the packet request information indicating the lost packet is information indicating the FEC block number and the sequential number of the lost packet, and the ID (identification number) of the receiving device 10 requesting the packet.

パケット要求情報解析部18は、パケット要求情報受信部17から入力されたパケット要求情報を解析し、送信するパケットのFECブロック番号及びシーケンシャル番号、並びにパケット要求情報の送信元(パケットの送信先)の受信装置10のIDを要求パケット送信部19に通知する。 The packet request information analysis unit 18 analyzes the packet request information input from the packet request information receiving unit 17, and determines the FEC block number and sequential number of the packet to be transmitted, and the source (packet transmission destination) of the packet request information. Notify the request packet transmission unit 19 of the ID of the receiving device 10.

要求パケット送信部19は、パケット要求情報解析部18から通知を受けると、FECブロック番号及びシーケンシャル番号から該当パケットを特定する。そして、要求パケット送信部19は、パケット要求情報が示す損失パケットのうち、パケット要求情報の送信元の受信装置10においてFECによる回復に必要となる最小数のパケットのみをパケット管理蓄積部16から取得する。また、要求パケット送信部19は、グループ管理部25からネットワーク情報(実際にIPで送信するために必要な情報)を取得する。そして、要求パケット送信部19は、パケット管理蓄積部16から取得したパケットを、パケット要求情報の送信元の受信装置10に送信する。 Upon receiving the notification from the packet request information analysis unit 18, the request packet transmission unit 19 identifies the corresponding packet from the FEC block number and the sequential number. Then, the request packet transmission unit 19 acquires only the minimum number of packets required for recovery by the FEC from the packet management storage unit 16 among the lost packets indicated by the packet request information in the receiving device 10 that is the source of the packet request information. To do. Further, the request packet transmission unit 19 acquires network information (information necessary for actually transmitting by IP) from the group management unit 25. Then, the request packet transmission unit 19 transmits the packet acquired from the packet management storage unit 16 to the receiving device 10 of the transmission source of the packet request information.

パケット要求情報生成部21は、回復可否判定部14から回復不可通知を受け取ると、損失パケットのFECブロック番号及びシーケンシャル番号、並びに当該受信装置(自装置)10のIDを含むパケット要求情報を生成し、該パケット要求情報をパケット要求情報送信部22に出力する。 Upon receiving the unrecoverable notification from the recoverability determination unit 14, the packet request information generation unit 21 generates packet request information including the FEC block number and sequential number of the lost packet and the ID of the receiving device (own device) 10. , The packet request information is output to the packet request information transmission unit 22.

パケット要求情報送信部22は、パケット要求情報生成部21からパケット要求情報を取得する。また、パケット要求情報送信部22は、グループ管理部25からネットワーク情報を取得する。そして、パケット要求情報送信部22は、パケット要求情報生成部21から取得したパケット要求情報を、ネットワーク情報に基づいて決定した他の受信装置10に送信する。自装置が代表受信装置10であった場合には、パケット要求情報送信部22は、パケット要求情報を、他の受信装置10又は再送サーバ40に送信する。 The packet request information transmission unit 22 acquires packet request information from the packet request information generation unit 21. Further, the packet request information transmission unit 22 acquires network information from the group management unit 25. Then, the packet request information transmission unit 22 transmits the packet request information acquired from the packet request information generation unit 21 to another receiving device 10 determined based on the network information. When the own device is the representative receiving device 10, the packet request information transmitting unit 22 transmits the packet request information to another receiving device 10 or the retransmission server 40.

要求パケット受信部20は、P2Pグループ内の他の受信装置10から、要求パケットを受信する。ここで、要求パケットとは、パケット要求情報生成部21で生成したパケット要求情報が示す損失パケットに含まれるパケットである。自装置が代表受信装置10であった場合には、要求パケット受信部20は、再送サーバ40からも要求パケットを受信し得る。 The request packet receiving unit 20 receives a request packet from another receiving device 10 in the P2P group. Here, the request packet is a packet included in the loss packet indicated by the packet request information generated by the packet request information generation unit 21. When the own device is the representative receiving device 10, the request packet receiving unit 20 can also receive the request packet from the retransmission server 40.

グループ構成情報取得部23は、P2P通信を開始するために必要となるネットワーク情報(例えば、SDP,ICE Candidateなど)を、他の受信装置10からシグナリング機能を有するサーバ(例えば、グループ生成サーバ50)を介して取得し、取得したネットワーク情報をグループ生成部24に出力する。 The group configuration information acquisition unit 23 transmits network information (for example, SDP, ICE Candidate, etc.) required for starting P2P communication from another receiving device 10 to a server having a signaling function (for example, a group generation server 50). The acquired network information is output to the group generation unit 24.

グループ生成部24は、コンテンツ情報管理部11から受信準備トリガーを受け取ると、グループ構成情報取得部23から入力されたネットワーク情報を、シグナリング機能を有するサーバ(例えば、グループ生成サーバ50)を介して他の受信装置10に送信し、コネクションを生成する。また、グループ生成部24は、P2Pグループを構成する受信装置10に関するセッション情報をグループ管理部25に通知し、以降セッション情報はグループ管理部25で管理を行う。 When the group generation unit 24 receives the reception preparation trigger from the content information management unit 11, the group generation unit 24 transmits the network information input from the group configuration information acquisition unit 23 via a server having a signaling function (for example, the group generation server 50). Is transmitted to the receiving device 10 of the above, and a connection is generated. Further, the group generation unit 24 notifies the group management unit 25 of the session information regarding the receiving device 10 constituting the P2P group, and thereafter the session information is managed by the group management unit 25.

グループ管理部25は、P2P通信のコネクションの接続・切断といったセッションを管理する。また、グループ管理部25は、セッション情報を含めたP2Pグループのネットワーク情報を、要求パケット送信部19及びパケット要求情報送信部22に通知する。自装置が代表受信装置10であった場合には、グループ管理部25は、P2Pグループ内の受信装置10又は再送サーバ40のネットワーク情報をパケット要求情報送信部22に通知する。 The group management unit 25 manages sessions such as connection / disconnection of P2P communication connections. Further, the group management unit 25 notifies the request packet transmission unit 19 and the packet request information transmission unit 22 of the network information of the P2P group including the session information. When the own device is the representative receiving device 10, the group management unit 25 notifies the packet request information transmitting unit 22 of the network information of the receiving device 10 or the retransmission server 40 in the P2P group.

次に、図4を参照して、配信システム1における損失パケットの補完について説明する。 Next, complementation of lost packets in the distribution system 1 will be described with reference to FIG.

受信装置10は、FECによる回復可否判定の結果、回復不可の場合にはパケット要求情報を作成し、P2Pグループ内の他の受信装置10に対し、P2P通信によりパケット要求情報を送信する。パケット要求情報を受信した受信装置10は、送信元の受信装置10がFECにより回復可能な最小数を上限として、パケット要求情報が示す損失パケットを送信する。これにより、損失パケットの装置間補完が行われ、無駄な通信コストを削減することができる。 As a result of the recovery possibility determination by the FEC, the receiving device 10 creates packet request information when recovery is not possible, and transmits the packet request information to other receiving devices 10 in the P2P group by P2P communication. The receiving device 10 that has received the packet request information transmits the loss packet indicated by the packet request information up to the minimum number that the receiving device 10 of the transmission source can recover by FEC. As a result, lost packets are complemented between devices, and unnecessary communication costs can be reduced.

図4に示す例では、P2Pグループ内に受信装置10−1〜受信装置10−3が存在し、受信装置10−1を代表受信装置とする。また、受信装置10−1はDATA1−1〜DATA1−4を損失し、受信装置10−2はDATA1−2〜DATA1−4を損失し、受信装置10−3はDATA1−1,DATA1−3,DATA1−4を損失し、冗長パケットPARITY1−6,PARITY1−7により1つの損失パケットのみを回復可能であるものとする。受信装置10−1は損失パケット数が4であるため、FECにより損失パケットを回復することができないと判定し、DATA1−1〜DATA1−4が損失パケットであることを示すパケット要求情報を受信装置10−2に送信する(ステップS101)。受信装置10−1からパケット要求情報を受信した受信装置10−2は、DATA1−1〜DATA1−4のうち、保持しているDATA1−1を受信装置10−1に送信する(ステップS102)。 In the example shown in FIG. 4, the receiving devices 10-1 to 10-3 exist in the P2P group, and the receiving device 10-1 is used as the representative receiving device. Further, the receiving device 10-1 loses DATA1-1 to DATA1-4, the receiving device 10-2 loses DATA1-2 to DATA1-4, and the receiving device 10-3 loses DATA1-1, DATA1-3, It is assumed that DATA1-4 is lost and only one lost packet can be recovered by the redundant packets PARITY1-6 and PARITY1-7. Since the receiving device 10-1 has 4 lost packets, it is determined that the lost packets cannot be recovered by FEC, and the receiving device receives packet request information indicating that DATA1-1 to DATA1-4 are lost packets. It is transmitted to 10-2 (step S101). The receiving device 10-2, which has received the packet request information from the receiving device 10-1, transmits the held DATA1-1 out of the DATA1-1 to DATA1-4 to the receiving device 10-1 (step S102).

受信装置10は、装置間補完により損失パケットの受信が完了すると、再度FECによる回復可否判定を行い、回復不可の場合はパケット要求情報を更新し、P2Pグループ内の別の受信装置10に対して装置間補完を試みる。 When the reception of the lost packet is completed by the inter-device complementation, the receiving device 10 again determines whether recovery is possible by FEC, updates the packet request information if recovery is not possible, and refers to another receiving device 10 in the P2P group. Attempt inter-device complementation.

図4に示す例では、受信装置10−1はまだDATA1−2〜DATA1−4の3つのパケットを損失しているため、FECにより損失パケットを回復することができないと判定し、DATA1−2〜DATA1−4が損失パケットであることを示すパケット要求情報を受信装置10−3に送信する(ステップS103)。受信装置10−1からパケット要求情報を受信した受信装置10−3は、DATA1−2〜DATA1−4のうち、保持しているDATA1−2を受信装置10−1に送信する(ステップS104)。 In the example shown in FIG. 4, since the receiving device 10-1 still has lost three packets of DATA1-2 to DATA1-4, it is determined that the lost packet cannot be recovered by FEC, and DATA1-2 to 2 Packet request information indicating that DATA1-4 is a lost packet is transmitted to the receiving device 10-3 (step S103). The receiving device 10-3, which has received the packet request information from the receiving device 10-1, transmits the held DATA1-2 out of the DATA1-2 to DATA1-4 to the receiving device 10-1 (step S104).

P2Pグループ内の他の全ての受信装置10に対して装置間補完の操作を実行し終えても回復不可の場合は、回復が可能となるまで、再度他の受信装置10に対して同様の操作を繰り返す。ただし、自装置が代表受信装置10である場合には、パケット要求情報を再送サーバ40に送付する。再送サーバ40はFECによる回復が可能な最小数のパケットを送信する。 If recovery is not possible even after executing the inter-device complement operation for all other receiving devices 10 in the P2P group, the same operation is performed for the other receiving devices 10 again until recovery is possible. repeat. However, when the own device is the representative receiving device 10, the packet request information is sent to the retransmission server 40. The retransmission server 40 transmits the minimum number of packets that can be recovered by FEC.

図4に示す例では、受信装置10−1〜受信装置10−3は、いずれもDATA1−3,DATA1−4を損失しているため、装置間補完によりDATA1−3,DATA1−4を補完することができない。そこで、代表受信装置10−1は、DATA1−3,DATA1−4が損失パケットであることを示すパケット要求情報を再送サーバ40に送信する(ステップS105)。受信装置10−1は、DATA1−3,DATA1−4のいずれか一方を補完すると、残りの損失パケット数が1になるため、FECにより回復することが可能となる。代表受信装置10−1からパケット要求情報を受信した再送サーバ40は、代表受信装置10−1においてFECによる回復が可能となる最小限のパケットとして、DATA1−3を代表受信装置10−1に送信する(ステップS106)。代表受信装置10−1は、再送サーバ40から取得したDATA1−3を、受信装置10−1又は受信装置10−2からの要求により送信する。 In the example shown in FIG. 4, since the receiving devices 10-1 to the receiving devices 10-3 all lose DATA1-3 and DATA1-4, the DATA1-3 and DATA1-4 are complemented by the inter-device complementation. I can't. Therefore, the representative receiving device 10-1 transmits packet request information indicating that DATA1-3 and DATA1-4 are lost packets to the retransmission server 40 (step S105). When the receiving device 10-1 complements any one of DATA1-3 and DATA1-4, the number of remaining lost packets becomes 1, so that the receiving device 10-1 can be recovered by FEC. The retransmission server 40 that has received the packet request information from the representative receiving device 10-1 transmits DATA1-3 to the representative receiving device 10-1 as the minimum packet that can be recovered by the FEC in the representative receiving device 10-1. (Step S106). The representative receiving device 10-1 transmits DATA1-3 acquired from the retransmission server 40 at the request of the receiving device 10-1 or the receiving device 10-2.

代表受信装置10が再送サーバ40から損失パケットをP2Pグループ内に取り込み、該損失パケットを装置間補完することにより、P2Pグループ内の全ての受信装置10は、FECブロック内の全てのパケットを回復することが可能となる。再送サーバ40は全てのパケットを保持しているため、最終的にこの操作により、全ての受信装置10は損失パケットを回復することができる。P2Pグループ内の代表受信装置10のみが再送サーバ40からパケットを取得するため、再送サーバ40の負荷を低減することが可能となる。また、再送サーバ40から取得したパケットは、代表受信装置10がP2Pグループ内の全ての受信装置10に分配するわけではなく、装置間補完により共有されるため、代表受信装置10の負荷も低減することができる。 The representative receiving device 10 takes the lost packet from the retransmission server 40 into the P2P group, and complements the lost packet between the devices, so that all the receiving devices 10 in the P2P group recover all the packets in the FEC block. It becomes possible. Since the retransmission server 40 holds all the packets, finally by this operation, all the receiving devices 10 can recover the lost packets. Since only the representative receiving device 10 in the P2P group acquires the packet from the retransmission server 40, the load on the retransmission server 40 can be reduced. Further, the packet acquired from the retransmission server 40 is not distributed by the representative receiving device 10 to all the receiving devices 10 in the P2P group, but is shared by the device-to-device complementation, so that the load on the representative receiving device 10 is also reduced. be able to.

次に、図5を参照して、受信装置10におけるパケット受信に関する処理手順について説明する。 Next, a processing procedure related to packet reception in the receiving device 10 will be described with reference to FIG.

ステップS201において、受信装置10はコンテンツ情報管理部11により受信準備トリガーを生成する。受信装置10は、配信開始時刻前になるとグループ生成サーバ50に自動でアクセスする。 In step S201, the receiving device 10 generates a reception preparation trigger by the content information management unit 11. The receiving device 10 automatically accesses the group generation server 50 before the distribution start time.

ステップS202において、グループ生成サーバ50によりP2Pグループが生成されると、受信装置10はグループ生成部24により、P2Pグループ内のコネクションIDであるPeerIDと、P2Pグループ内の接続された受信装置10の台数であるPeer_numを登録する。 In step S202, when the group generation server 50 generates the P2P group, the group generation unit 24 causes the group generation unit 24 to generate the PeerID, which is the connection ID in the P2P group, and the number of connected receiving devices 10 in the P2P group. Peer_num is registered.

ステップS203において、受信装置10はマルチキャストストリーム受信部12により、マルチキャストストリームの受信を開始する。 In step S203, the receiving device 10 starts receiving the multicast stream by the multicast stream receiving unit 12.

ステップS204において、受信装置10はパケット解析部13により、パケットを受信する。 In step S204, the receiving device 10 receives the packet by the packet analysis unit 13.

ステップS205において、受信装置10はパケット解析部13により、パケットのヘッダ情報からFECブロック番号を解析し、現在処理中のFECブロック番号BLと比較することで、FECブロック番号BLのFECブロックの受信が完了したか否かを確認する。パケット解析部13は、FECブロック番号BLのFECブロックの受信が完了すると、FECブロック番号BLのFECブロックの処理を開始する。 In step S205, the receiving device 10 analyzes the FEC block number from the header information of the packet by the packet analysis unit 13 and compares it with the FEC block number BL currently being processed to receive the FEC block of the FEC block number BL. Check if it is completed. When the reception of the FEC block having the FEC block number BL is completed, the packet analysis unit 13 starts processing the FEC block having the FEC block number BL.

ステップS206において、受信装置10はパケット解析部13により、損失パケットの有無を判定する。すなわち、損失パケット数pが0であるか否かを判定する。受信装置10は、ステップS206において損失パケットがあると判定した場合には処理をステップS207に進め、ステップS206において損失パケットが無いと判定した場合には処理をステップS215に進める。 In step S206, the receiving device 10 determines the presence or absence of lost packets by the packet analysis unit 13. That is, it is determined whether or not the number of lost packets p is 0. When the receiving device 10 determines in step S206 that there is a lost packet, the process proceeds to step S207, and when it is determined in step S206 that there is no lost packet, the receiving device 10 proceeds to the process in step S215.

ステップS207において、受信装置10は回復可否判定部14により、損失パケットをFECにより回復可能か否かを判定する。すなわち、回復可否判定部14は、損失パケット数pが、FECにより回復可能な損失パケット数の最大値(回復可能数)E以下であるか否かを判定する。受信装置10は、ステップS207において損失パケット数pが回復可能数E以下であると判定した場合には処理をステップS214に進め、ステップS207において損失パケット数pが回復可能数Eよりも大きいと判定した場合には処理をステップS208に進める。 In step S207, the receiving device 10 determines whether or not the lost packet can be recovered by FEC by the recovery possibility determination unit 14. That is, the recoverability determination unit 14 determines whether or not the number of lost packets p is equal to or less than the maximum value (recoverable number) E of the number of lost packets that can be recovered by FEC. If the receiving device 10 determines in step S207 that the number of lost packets p is equal to or less than the recoverable number E, the process proceeds to step S214, and in step S207 it is determined that the number of lost packets p is larger than the recoverable number E. If so, the process proceeds to step S208.

ステップS208において、受信装置10はパケット要求情報生成部21により、パケット要求情報を生成し、パケット要求情報送信部22により、パケット要求情報をP2Pグループ内の他の受信装置10(PeerIDにより識別される受信装置10)に送信する。そして、要求パケット受信部20により、他の受信装置10からk個の要求パケットを受信し、取得する。グループ管理部25は、他の受信装置10から要求パケットの送信が終了した旨を示す送信終了フラグを受信すると、損失パケット数をp−kに更新し、PeerIDをインクリメントする。そして、グループ管理部25は、まだ損失パケットを補完する必要がある場合には、パケット要求情報の送信先となる、P2Pグループ内の受信装置10を決定する。受信装置10は、逐次的にP2Pグループ内で装置間補完を実施する。受信装置10は、損失パケット数pが回復可能数E以下となった場合、又はP2Pグループ内の全ての受信装置10と装置間補完を行った場合に、装置間補完を終了する。 In step S208, the receiving device 10 generates packet request information by the packet request information generating unit 21, and the packet request information transmitting unit 22 identifies the packet request information by another receiving device 10 (Peer ID) in the P2P group. It is transmitted to the receiving device 10). Then, the request packet receiving unit 20 receives and acquires k request packets from the other receiving device 10. When the group management unit 25 receives the transmission end flag indicating that the transmission of the request packet is completed from the other receiving device 10, the group management unit 25 updates the number of lost packets to pk and increments the PeerID. Then, when it is still necessary to supplement the lost packet, the group management unit 25 determines the receiving device 10 in the P2P group to be the transmission destination of the packet request information. The receiving device 10 sequentially performs inter-device complementation within the P2P group. The receiving device 10 ends the inter-device complementation when the number of lost packets p is equal to or less than the recoverable number E, or when the inter-device complementation is performed with all the receiving devices 10 in the P2P group.

ステップS209において、受信装置10は回復可否判定部14により、装置間補完を実施したことにより損失パケットがFECにより回復可能となったか否かを判定する。すなわち、回復可否判定部14は、損失パケット数pが回復可能数E以下であるか否かを判定する。受信装置10は、ステップS209において回復可能であると判定した場合には処理をステップS214に進め、ステップS209において回復不可能であると判定した場合には処理をステップS210に進める。 In step S209, the receiving device 10 determines whether or not the lost packet can be recovered by FEC by performing inter-device complementation by the recovery possibility determination unit 14. That is, the recoverability determination unit 14 determines whether or not the number of lost packets p is equal to or less than the recoverable number E. If the receiving device 10 determines in step S209 that recovery is possible, the process proceeds to step S214, and if it is determined in step S209 that recovery is not possible, the receiving device 10 proceeds to step S210.

ステップS210において、受信装置10は、代表受信装置である場合には処理をステップS211に進め、代表受信装置でない場合には処理をステップS208に戻す。 In step S210, the receiving device 10 advances the process to step S211 if it is a representative receiving device, and returns the process to step S208 if it is not a representative receiving device.

ステップS211において、受信装置10はパケット要求情報生成部21により、パケット要求情報を生成する。 In step S211 the receiving device 10 generates packet request information by the packet request information generation unit 21.

ステップS212において、受信装置10はパケット要求情報送信部22により、パケット要求情報を再送サーバ40に送信する。 In step S212, the receiving device 10 transmits the packet request information to the retransmission server 40 by the packet request information transmitting unit 22.

ステップS213において、受信装置10は要求パケット受信部20により、再送サーバ40から要求パケットを受信する。再送サーバ40は、FECによる回復が可能な最小数のパケットを送信する。つまり、受信装置10は、未取得の損失パケットのうち、損失パケット数pが回復可能数E以下となる最小数のパケットを再送サーバ40から受信する。 In step S213, the receiving device 10 receives the request packet from the retransmission server 40 by the request packet receiving unit 20. The retransmission server 40 transmits the minimum number of packets that can be recovered by FEC. That is, the receiving device 10 receives from the retransmission server 40 the minimum number of unacquired lost packets in which the number of lost packets p is equal to or less than the recoverable number E.

ステップS214において、受信装置10は損失パケット回復部15により、FECによる回復処理を行う。 In step S214, the receiving device 10 performs recovery processing by FEC by the loss packet recovery unit 15.

ステップS215において、受信装置10はパケット管理蓄積部16により、損失の無い完全なFECブロックを蓄積する。 In step S215, the receiving device 10 stores a complete lossless FEC block by the packet management storage unit 16.

次に、図6を参照して、受信装置10におけるパケット送信に関する処理手順について説明する。 Next, with reference to FIG. 6, a processing procedure relating to packet transmission in the receiving device 10 will be described.

ステップS301において、受信装置10はパケット要求情報受信部17により、パケット要求情報を他の受信装置10から受信し、取得する。 In step S301, the receiving device 10 receives and acquires the packet request information from the other receiving device 10 by the packet request information receiving unit 17.

ステップS302において、受信装置10はパケット要求情報解析部18により、パケット要求情報を解析する。 In step S302, the receiving device 10 analyzes the packet request information by the packet request information analysis unit 18.

ステップS303において、受信装置10は、パケット要求情報が示す損失パケットを含むFECブロックに関して、図5のステップS207の処理が完了するまで待機する。ステップS207で回復可能と判定された場合には、ステップS214まで待機する。 In step S303, the receiving device 10 waits until the processing of step S207 of FIG. 5 is completed with respect to the FEC block including the lost packet indicated by the packet request information. If it is determined in step S207 that recovery is possible, the process waits until step S214.

ステップS304において、受信装置10は要求パケット送信部19により、パケット要求情報に記載されたパケットのうち保持しているパケット(パケット管理蓄積部16に蓄積されているパケット)を配列P[x]に登録し、パケット要求情報が示す損失パケットのうち保持しているパケットの数Nを求める。ここで、配列P[x]の大きさはNである。 In step S304, the receiving device 10 uses the request packet transmitting unit 19 to put the packets held in the packet request information (packets stored in the packet management storage unit 16) into the array P [x]. Register and obtain the number N of lost packets indicated by the packet request information. Here, the size of the array P [x] is N.

ステップS305において、受信装置10は要求パケット送信部19により、パケット要求情報が示す損失パケットのうち保持しているパケットの数Nが0であるか否かを判定する。受信装置10は、ステップS305においてパケット数Nが0でない(該当パケットが存在する)と判定した場合には処理をステップS306に進め、ステップS305においてパケット数Nが0である(該当パケットが存在しない)と判定した場合には処理をステップS307に進める。 In step S305, the receiving device 10 determines whether or not the number N of the retained packets among the lost packets indicated by the packet request information is 0 by the request packet transmitting unit 19. If the receiving device 10 determines in step S305 that the number of packets N is not 0 (the corresponding packet exists), the process proceeds to step S306, and the number of packets N is 0 in step S305 (the corresponding packet does not exist). ), The process proceeds to step S307.

ステップS306において、受信装置10は要求パケット送信部19により、パケット要求情報が示す損失パケットのうち、パケット要求情報の送信元の受信装置10においてFECによる回復に必要となる最小数(p−E)のパケットのみを、パケット要求情報の送信元の受信装置10に送信する。要求パケット送信部19は、パケット要求情報が示す損失パケットのうち保持しているパケットの数Nが、送信元の受信装置10においてFECによる回復が可能となる最小数に満たない場合(N<p−Eの場合)には、パケット要求情報が示す損失パケットのうち保持している全て(N個)のパケットを、パケット要求情報の送信元の受信装置10に送信する。 In step S306, the request packet transmission unit 19 causes the request packet transmission unit 19 to perform the minimum number (pe) of the lost packets indicated by the packet request information required for recovery by the FEC in the reception device 10 that is the source of the packet request information. Only the packet of the above is transmitted to the receiving device 10 which is the source of the packet request information. When the number N of the lost packets indicated by the packet request information is less than the minimum number N that can be recovered by the FEC in the receiving device 10 of the transmission source, the request packet transmission unit 19 (N <p). In the case of −E), all (N) packets held out of the lost packets indicated by the packet request information are transmitted to the receiving device 10 that is the source of the packet request information.

ステップS307において、受信装置10は要求パケット送信部19により、要求パケットの送信が終了した旨を示す送信終了フラグを送信する。 In step S307, the receiving device 10 transmits a transmission end flag indicating that the transmission of the request packet is completed by the request packet transmission unit 19.

<プログラム>
受信装置10は、各機能を実現する処理内容を記述したプログラムを記憶部に格納しておき、CPU(Central Processing Unit)、DSP(Digital Signal Processor)などのプロセッサによってこのプログラムを読み出して実行させるコンピュータであってもよい。また、これらの処理内容の少なくとも一部は、ハードウェアで実現されてもよい。
<Program>
The receiving device 10 is a computer that stores a program that describes the processing contents that realize each function in a storage unit, and reads and executes this program by a processor such as a CPU (Central Processing Unit) or a DSP (Digital Signal Processor). It may be. Further, at least a part of these processing contents may be realized by hardware.

例えば、受信装置10として機能させるためのプログラムは、図5を参照して説明したステップS201〜S215の処理の全部又は一部をコンピュータに実行させる。また、受信装置10として機能させるためのプログラムは、図6を参照して説明したステップS301〜S307の処理の全部又は一部をコンピュータに実行させる。 For example, the program for functioning as the receiving device 10 causes the computer to execute all or part of the processes of steps S201 to S215 described with reference to FIG. Further, the program for functioning as the receiving device 10 causes the computer to execute all or part of the processes of steps S301 to S307 described with reference to FIG.

また、このプログラムは、コンピュータが読み取り可能な記録媒体に記録されていてもよい。このような記録媒体を用いれば、プログラムをコンピュータにインストールすることが可能である。ここで、プログラムが記録された記録媒体は、非一過性の記録媒体であってもよい。非一過性の記録媒体は、特に限定されるものではないが、例えば、CD−ROM、DVD−ROMなどの記録媒体であってもよい。また、このプログラムは、ネットワークを介したダウンロードによって提供することもできる。 The program may also be recorded on a computer-readable recording medium. Using such a recording medium, it is possible to install the program on the computer. Here, the recording medium on which the program is recorded may be a non-transient recording medium. The non-transient recording medium is not particularly limited, but may be, for example, a recording medium such as a CD-ROM or a DVD-ROM. The program can also be provided by download over the network.

以上説明したように、受信装置10又はプログラムは、マルチキャストストリームの受信時に損失パケットを検出すると、損失パケットをFECにより回復可能な場合には回復する。回復できない場合には、自身の所属するP2Pグループ内の他の受信装置10とP2P通信することにより、損失パケットを補完する。P2P通信でも補完できない場合には、代表受信装置10が再送サーバ40に損失パケットを要求し、P2Pグループ内に取り込む。P2Pグループ内の受信装置10は、P2P通信により損失パケットを自装置に取り込むことで、データを完全に回復する。 As described above, when the receiving device 10 or the program detects the lost packet when receiving the multicast stream, the receiving device 10 or the program recovers the lost packet if it can be recovered by FEC. If it cannot be recovered, the lost packet is complemented by P2P communication with another receiving device 10 in the P2P group to which the user belongs. If it cannot be complemented by P2P communication, the representative receiving device 10 requests the retransmission server 40 for the lost packet and incorporates it into the P2P group. The receiving device 10 in the P2P group completely recovers the data by taking the lost packet into its own device by P2P communication.

かかる構成により、パケット損失率が高い場合でも、装置間の補完、又は再送サーバ40による補完により信頼性を確保するため、冗長パケット量を抑制することが可能となる。つまり、高い信頼性と配信効率を両立することが可能となる。また、FECにより回復できない損失パケットを装置間の補完により回復することで、再送サーバ40の負荷を低減することが可能となる。したがって、大規模配信時でも再送爆発を抑制することができ、スケーラビリティを確保することが可能となる。 With such a configuration, even when the packet loss rate is high, the amount of redundant packets can be suppressed because reliability is ensured by complementation between devices or complementation by the retransmission server 40. That is, it is possible to achieve both high reliability and distribution efficiency. Further, the load on the retransmission server 40 can be reduced by recovering the lost packet that cannot be recovered by FEC by complementing the devices. Therefore, it is possible to suppress the retransmission explosion even at the time of large-scale distribution, and it is possible to ensure scalability.

また、受信装置10は、他の受信装置10とのパケット要求情報及び要求パケットの送受信を、WebRTCのデータチャネルを利用して行ってもよい。WebRTCを利用することにより、NAT越えを含めたP2P通信を容易に実現することが可能となる。 Further, the receiving device 10 may send and receive packet request information and request packets with another receiving device 10 by using the data channel of WebRTC. By using WebRTC, it is possible to easily realize P2P communication including NAT traversal.

また、配信サーバ30は、データパケットをP2Pグループ内の全ての受信装置10に送信するとともに、同一の符号語で生成した冗長パケットをP2Pグループ内の受信装置10の台数分に分割し、分割された冗長パケットをP2Pグループ内の受信装置10にそれぞれ送信してもよい。かかる構成により、配信サーバ30に近い経路上では冗長パケット分の全てのネットワーク流量が発生するものの、受信装置10に近い経路上では分割された冗長パケット分のみのネットワーク流量となるため、分割せずに送信する場合と比較し、受信装置10に近い経路上ではトラフィックを抑制することが可能となる。 Further, the distribution server 30 transmits the data packet to all the receiving devices 10 in the P2P group, and divides the redundant packet generated by the same codeword into the number of receiving devices 10 in the P2P group. The redundant packets may be transmitted to the receiving devices 10 in the P2P group, respectively. With this configuration, although all the network flow rates for the redundant packets are generated on the route close to the distribution server 30, the network flow rate is only for the divided redundant packets on the route close to the receiving device 10, so the network flow rate is not divided. It is possible to suppress the traffic on the route closer to the receiving device 10 as compared with the case of transmitting to.

上述の実施形態は代表的な例として説明したが、本発明の趣旨及び範囲内で、多くの変更及び置換ができることは当業者に明らかである。したがって、本発明は、上述の実施形態によって制限するものと解するべきではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。例えば、実施形態に記載の構成ブロック又は処理ステップについて、複数を1つに組み合わせたり、1つを複数に分割したりすることが可能である。 Although the above embodiments have been described as typical examples, it will be apparent to those skilled in the art that many modifications and substitutions can be made within the spirit and scope of the present invention. Therefore, the present invention should not be construed as being limited by the above-described embodiments, and various modifications and modifications can be made without departing from the scope of claims. For example, it is possible to combine a plurality of the constituent blocks or processing steps described in the embodiment into one, or to divide one into a plurality of pieces.

1 配信システム
10 受信装置
11 コンテンツ情報管理部
12 マルチキャストストリーム受信部
13 パケット解析部
14 回復可否判定部
15 損失パケット回復部
16 パケット管理蓄積部
17 パケット要求情報受信部
18 パケット要求情報解析部
19 要求パケット送信部
20 要求パケット受信部
21 パケット要求情報生成部
22 パケット要求情報送信部
23 グループ構成情報取得部
24 グループ生成部
25 グループ管理部
30 配信サーバ
40 再送サーバ
50 グループ生成サーバ
1 Distribution system 10 Receiver 11 Content information management unit 12 multicast stream reception unit 13 Packet analysis unit 14 Recovery availability judgment unit 15 Loss packet recovery unit 16 Packet management storage unit 17 Packet request information reception unit 18 Packet request information analysis unit 19 Request packet Transmission unit 20 Request packet reception unit 21 Packet request information generation unit 22 Packet request information transmission unit 23 Group configuration information acquisition unit 24 Group generation unit 25 Group management unit 30 Distribution server 40 Retransmission server 50 Group generation server

Claims (6)

マルチキャストストリームを受信し、損失パケットをP2P通信により補完する受信装置であって、
マルチキャストストリームの受信時における損失パケットを検出するパケット解析部と、
損失パケット数が、FECにより回復可能な損失パケット数の最大値以下であるか否かを判定する回復可否判定部と、
前記損失パケット数が前記最大値以下である場合に、回復可能な損失パケットをFECにより回復する損失パケット回復部と、
前記損失パケット数が前記最大値よりも大きい場合に、損失パケットを示すパケット要求情報を生成するパケット要求情報生成部と、
前記パケット要求情報をP2Pグループ内の他の受信装置に送信するパケット要求情報送信部と、
前記他の受信装置から、前記パケット要求情報が示す損失パケットに含まれるパケットである要求パケットを受信する要求パケット受信部と、を備え、
前記要求パケットの受信後に前記損失パケット数が前記最大値以下とならない場合であって、当該受信装置が前記P2Pグループを代表する代表受信装置である場合には、未取得の損失パケットのうち、前記損失パケット数が前記最大値以下となる最小数のパケットを再送サーバから取得し、取得した損失パケットをP2Pグループ内の他の受信装置からの要求により送信する、受信装置。
A receiving device that receives a multicast stream and complements lost packets by P2P communication.
A packet analysis unit that detects lost packets when receiving a multicast stream,
A recovery possibility determination unit that determines whether or not the number of lost packets is equal to or less than the maximum number of lost packets that can be recovered by FEC.
A loss packet recovery unit that recovers recoverable lost packets by FEC when the number of lost packets is equal to or less than the maximum value.
A packet request information generation unit that generates packet request information indicating a lost packet when the number of lost packets is larger than the maximum value.
A packet request information transmitting unit that transmits the packet request information to other receiving devices in the P2P group, and a packet request information transmitting unit.
A request packet receiving unit that receives a request packet, which is a packet included in the loss packet indicated by the packet request information, from the other receiving device.
When the number of lost packets does not fall below the maximum value after receiving the request packet and the receiving device is a representative receiving device representing the P2P group, among the unacquired lost packets, the said A receiving device that acquires the minimum number of packets in which the number of lost packets is equal to or less than the maximum value from the retransmission server, and transmits the acquired lost packets at the request of another receiving device in the P2P group.
パケット要求情報を他の受信装置から受信するパケット要求情報受信部と、
前記パケット要求情報が示す損失パケットのうち、前記他の受信装置においてFECによる回復に必要となる最小数のパケットのみを、前記他の受信装置に送信する要求パケット送信部と、
を備える、請求項1に記載の受信装置。
A packet request information receiver that receives packet request information from other receiving devices,
A request packet transmission unit that transmits only the minimum number of packets required for recovery by FEC in the other receiving device among the lost packets indicated by the packet request information to the other receiving device.
The receiving device according to claim 1.
前記要求パケット送信部は、前記パケット要求情報が示す損失パケットのうち保持しているパケットの数が、前記他の受信装置においてFECによる回復が可能となる最小数に満たない場合には、前記パケット要求情報が示す損失パケットのうち保持しているパケットの全てを、前記他の受信装置に送信する、請求項2に記載の受信装置。 When the number of lost packets indicated by the packet request information is less than the minimum number that can be recovered by the FEC in the other receiving device, the request packet transmitting unit performs the packet. The receiving device according to claim 2, wherein all of the retained packets among the lost packets indicated by the request information are transmitted to the other receiving device. 前記パケット要求情報送信部は、WebRTCのデータチャネルを利用して、前記パケット要求情報を送信し、
前記要求パケット受信部は、WebRTCのデータチャネルを利用して、前記要求パケットを受信する、請求項1から3のいずれか一項に記載の受信装置。
The packet request information transmission unit transmits the packet request information by using the data channel of WebRTC.
The receiving device according to any one of claims 1 to 3, wherein the request packet receiving unit receives the request packet by using the data channel of WebRTC.
請求項1から4のいずれか一項に記載の受信装置と、前記マルチキャストストリームを前記受信装置に送信するサーバと、を備える配信システムであって、
複数の前記受信装置によりP2Pグループが生成され、
前記サーバは、データパケットを前記P2Pグループ内の全ての受信装置に送信するとともに、同一の符号語で生成した冗長パケットを前記P2Pグループ内の受信装置の台数分に分割し、分割された冗長パケットを前記P2Pグループ内の受信装置にそれぞれ送信する、配信システム。
A distribution system including the receiving device according to any one of claims 1 to 4 and a server that transmits the multicast stream to the receiving device.
A P2P group is generated by the plurality of receiving devices,
The server transmits the data packet to all the receiving devices in the P2P group, divides the redundant packet generated by the same code word into the number of receiving devices in the P2P group, and divides the redundant packet. Is transmitted to each of the receiving devices in the P2P group.
コンピュータを、請求項1から4のいずれか一項に記載の受信装置として機能させるためのプログラム。 A program for operating a computer as a receiving device according to any one of claims 1 to 4.
JP2019212610A 2019-11-25 2019-11-25 Receiver, distribution system, and program Pending JP2021087036A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019212610A JP2021087036A (en) 2019-11-25 2019-11-25 Receiver, distribution system, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019212610A JP2021087036A (en) 2019-11-25 2019-11-25 Receiver, distribution system, and program

Publications (1)

Publication Number Publication Date
JP2021087036A true JP2021087036A (en) 2021-06-03

Family

ID=76088536

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019212610A Pending JP2021087036A (en) 2019-11-25 2019-11-25 Receiver, distribution system, and program

Country Status (1)

Country Link
JP (1) JP2021087036A (en)

Similar Documents

Publication Publication Date Title
JP4857262B2 (en) Method and apparatus for end-to-end reliable group communication
US10305904B2 (en) Facilitating secure network traffic by an application delivery controller
US9900168B2 (en) System and method for reliable multicast data transport
US8478890B2 (en) System and method for reliable virtual bi-directional data stream communications with single socket point-to-multipoint capability
US9461835B2 (en) Multicast bulk transfer system
JP2006079606A (en) Receiver-driven system and method for peer-to-peer network
EP3518551A1 (en) Method, apparatus and system for transmitting live video
JP4172259B2 (en) Information processing apparatus and method, and computer program
CN102763359B (en) The traffic optimization device of SCTP and method in multicast network
JP2008125062A (en) Method and apparatus for retransmission request reduction in network
EP2445162B1 (en) Method For Adaptive Streaming
JP2010213150A (en) Transmitter, file distribution system, file distribution control method and file distribution control program in system
JP2013502115A (en) Method, device and system for main / standby switching
US7535916B2 (en) Method for sharing a transport connection across a multi-processor platform with limited inter-processor communications
US9948473B2 (en) Seamless connection handshake for a reliable multicast session
US8238335B2 (en) Multi-route transmission of packets within a network
JP2017092692A (en) Data transmission control system and method, and data transmission control program
Zhang et al. Virtualized network coding functions on the Internet
JP2021087036A (en) Receiver, distribution system, and program
Kostić et al. High-bandwidth data dissemination for large-scale distributed systems
US11882340B2 (en) Content distribution system, unicast multicast converter, content distribution method and content distribution program
CN109792444B (en) Play-out buffering in a live content distribution system
Park et al. Scalable and reliable overlay multicast network for live media streaming
US20220263673A1 (en) Content distribution system, multicast unicast / multicast multicast converter, multicast unicast converter, content distribution method and content distribution program
JP2021145168A (en) Distribution server and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221025

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230718

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230822

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20240305