Contribution aware peer-to-peer live streaming service
Abstract
Contribution recognition methods for live streaming in peer-to-peer networks, including steps to calculate peer eligibility and surplus order, to identify and contact potential parent peers, and to implement connectivity policies. And the system.

Term
Projected expiry 29 November 2026.
- Priority and filed
- Published
- Today
- Projected expiry
32 claims: 7 independent, 25 dependent
- 1ピアツーピアネットワークにおけるライブストリーミングのための貢献認識方法であって、 ピアの有資格および余剰次数を算出するステップと、 潜在的な親ピアを識別し、連絡をとるステップと、 接続ポリシーを実行するステップと を備えたことを特徴とする方法。
- 2前記ピアツーピアネットワークは、メッシュベースの環境であることを特徴とする請求項1に記載の方法。
- 3前記ピアツーピアネットワークにおけるピアは、前記ピアによるアップリンク帯域幅の貢献をフロー当たりの帯域幅で割ったものに比例するレベルのサービスを受けることを特徴とする請求項1に記載の方法。
- 4ピア情報を更新するステップをさらに備えたことを特徴とする請求項1に記載の方法。
- 5前記更新するステップは、 更新されたピア情報を転送するステップと、 前記更新されたピア情報が受信され、格納されていることの承認を受信するステップと を含むことを特徴とする請求項4に記載の方法。
- 6前記算出するステップは、 1組のシステム全体のパラメータを計算するステップと、 前記ピアツーピアネットワークにおいて、前記計算された1組のシステム全体のパラメータを伝搬するステップと を含むことを特徴とする請求項1に記載の方法。
- 7前記識別し、連絡をとるステップは、 有資格の入次数を算出するステップと、 余剰の入次数を算出するステップと、 参加要求メッセージを送信するステップと、 潜在的な親ピアのリストを受信するステップと、 前記潜在的な親ピアのリスト上の潜在的な親ピアに連絡をとって、前記潜在的な親ピアとの接続を確立しようと試みるステップと を含むことを特徴とする請求項1に記載の方法。
- 8前記潜在的な親ピアが空のスロットを有している場合、前記潜在的な親ピアへの前記接続が確立されることを特徴とする請求項7に記載の方法。
- 9前記実行するステップは、前記接続ポリシーに従って、前記潜在的な親ピアにすでに接続されている子ピアが先取可能であるかどうかを決定するステップを含むことを特徴とする請求項7に記載の方法。
- 10前記識別し、連絡をとるステップは、 有資格の入次数を算出するステップと、 余剰の入次数を算出するステップと、 参加要求メッセージを送信するステップと、 ソースのアドレスを受信するステップと、 前記ソースに連絡をとるステップと、 前記ソースから、潜在的な親ピアの第1のリストを受信するステップと、 前記潜在的な親ピアの第1のリスト上の前記潜在的な親ピアのうちの1つに連絡をとって、前記潜在的な親ピアとの接続を確立しようと試みるステップと、 前記連絡を受けた潜在的な親ピアから、潜在的な親ピアの第2のリストを受信するステップと を含むことを特徴とする請求項1に記載の方法。
- 11前記潜在的な親ピアが空のスロットを有している場合、前記潜在的な親ピアへの前記接続が確立されることを特徴とする請求項10に記載の方法。
- 12前記実行するステップは、前記接続ポリシーに従って、前記潜在的な親ピアにすでに接続されている子ピアが先取可能であるかどうかを決定するステップを含むことを特徴とする請求項10に記載の方法。
- 13前記識別し、連絡をとるステップは、 有資格の入次数を算出するステップと、 余剰の入次数を算出するステップと、 参加要求メッセージを送信するステップと、 潜在的な親ピアのランダムに選択されたリストを受信するステップと、 前記潜在的な親ピアのランダムに選択されたリスト上の潜在的な親ピアに連絡をとって、前記潜在的な親ピアとの接続を確立しようと試みるステップと、 前記連絡を受けた潜在的な親ピアから、潜在的な親ピアのリストを受信するステップと を含むことを特徴とする請求項1に記載の方法。
- 14前記潜在的な親ピアが空のスロットを有している場合、前記潜在的な親ピアへの前記接続が確立されることを特徴とする請求項13に記載の方法。
- 15前記実行するステップは、前記接続ポリシーに従って、前記潜在的な親ピアにすでに接続されている子ピアが先取可能であるかどうかを決定するステップを含むことを特徴とする請求項13に記載の方法。
- 16前記接続ポリシーが過度の参加、離脱をもたらす場合、前記接続ポリシーは、変更可能であることを特徴とする請求項1に記載の方法。
- 17ピアツーピアネットワークにおけるライブストリーミングのための貢献認識システムであって、 ピアの有資格および余剰次数を算出する手段と、 潜在的な親ピアを識別し、連絡をとる手段と、 接続ポリシーを実行する手段と を備えたことを特徴とするシステム。
- 18前記ピアツーピアネットワークは、メッシュベースの環境であることを特徴とする請求項17に記載のシステム。
- 19前記ピアツーピアネットワークにおけるピアは、前記ピアによるアップリンク帯域幅の貢献をフロー当たりの帯域幅で割ったものに比例するレベルのサービスを受けることを特徴とする請求項17に記載のシステム。
- 20ピア情報を更新するための手段をさらに備えたことを特徴とする請求項17に記載のシステム。
- 21前記更新する手段は、 更新されたピア情報を転送する手段と、 前記更新されたピア情報が受信され、格納されていることの承認を受信する手段と を含むことを特徴とする請求項20に記載のシステム。
- 22前記算出する手段は、 1組のシステム全体のパラメータを計算する手段と、 前記ピアツーピアネットワークにおいて、前記計算された1組のシステム全体のパラメータを伝搬する手段と を含むことを特徴とする請求項20に記載のシステム。
- 23前記識別し、連絡をとる手段は、 有資格の入次数を算出する手段と、 余剰の入次数を算出する手段と、 参加要求メッセージを送信する手段と、 潜在的な親ピアのリストを受信する手段と、 潜在的な親ピアの前記リスト上の潜在的な親ピアに連絡をとって、前記潜在的な親ピアとの接続を確立しようと試みる手段と を含むことを特徴とする請求項17に記載のシステム。
- 24前記潜在的な親ピアが空のスロットを有している場合、前記潜在的な親ピアへの前記接続が確立されることを特徴とする請求項23に記載のシステム。
- 25前記実行する手段は、前記接続ポリシーに従って、前記潜在的な親ピアにすでに接続されている子ピアが先取可能であるかどうかを決定することを含むことを特徴とする請求項23に記載のシステム。
- 26前記識別し、連絡をとる手段は、 有資格の入次数を算出する手段と、 余剰の入次数を算出する手段と、 参加要求メッセージを送信する手段と、 ソースのアドレスを受信する手段と、 前記ソースに連絡をとる手段と、 前記ソースから、潜在的な親ピアの第1のリストを受信する手段と、 前記潜在的な親ピアの第1のリスト上の前記潜在的な親ピアのうちの1つに連絡をとって、前記潜在的な親ピアとの接続を確立しようと試みる手段と、 前記連絡を受けた潜在的な親ピアから、潜在的な親ピアの第2のリストを受信する手段と を含むことを特徴とする請求項17に記載のシステム。
- 27前記潜在的な親ピアが空のスロットを有している場合、前記潜在的な親ピアへの前記接続が確立されることを特徴とする請求項26に記載のシステム。
- 28前記実行する手段は、前記接続ポリシーに従って、前記潜在的な親ピアにすでに接続されている子ピアが先取可能であるかどうかを決定することを含むことを特徴とする請求項26に記載のシステム。
- 29前記識別し、連絡をとる手段は、 有資格の入次数を算出する手段と、 余剰の入次数を算出する手段と、 参加要求メッセージを送信する手段と、 潜在的な親ピアのランダムに選択されたリストを受信する手段と、 前記潜在的な親ピアのランダムに選択されたリスト上の潜在的な親ピアに連絡をとって、前記潜在的な親ピアとの接続を確立しようと試みる手段と、 前記連絡を受けた潜在的な親ピアから、潜在的な親ピアのリストを受信する手段と を含むことを特徴とする請求項17に記載のシステム。
- 30前記潜在的な親ピアが空のスロットを有している場合、前記潜在的な親ピアへの前記接続が確立されることを特徴とする請求項29に記載のシステム。
- 31前記実行する手段は、前記接続ポリシーに従って、前記潜在的な親ピアにすでに接続されている子ピアが先取可能であるかどうかを決定することを含むことを特徴とする請求項29に記載のシステム。
- 32前記接続ポリシーが過度の参加、離脱をもたらす場合、前記接続ポリシーは、変更可能であることを特徴とする請求項17に記載のシステム。
Independent claims32
60 paragraphs, as filed
The present invention relates generally to peer-to-peer networking, and more particularly to incentive-based livestreaming over peer-to-peer networks.
There are two types of peer-to-peer (P2P) livestreaming environments: tree-based and mesh-based. The tree-based approach has taken some steps in providing contribution-aware P2P livestreaming. The mesh-based method does not provide any well-known support for providing contribution-aware P2P livestreaming. However, the mesh-based method is superior to the tree-based method in terms of robustness, efficiency, and the like.
<p> An environmental feature of the mesh-based approach to P2P livestreaming is that peers have constrained outgoing bandwidth. For mesh-based approaches with peer-constrained non-uniform transmission bandwidth, it is desirable to provide contribution-aware P2P livestreaming.</p>
<p> Livestreaming is described herein with respect to video, but can also include any type of livestreaming media, such as digital audio. As used herein, "/" indicates an alternative name for the same or similar component. In mesh-based processing of P2P livestreaming, peers / users receive different levels of service depending on their willingness to contribute to the network, in which case the willingness is the peer's uplink bandwidth for the mesh overlay. It is obtained by dividing the width contribution by the bandwidth per flow.</p><p> Peers wishing to participate in a P2P network are referred to herein as participating peers or requesting peers. A bootstrapping node is a node that acts as a gatekeeper. Participating peers contact the bootstrapping node to join the P2P network. The bootstrapping node informs the participating peers of the total number of peers / users in the P2P network. Alternatively, the participating peer informs the bootstrapping node of the intention value of its contribution, as measured by the bandwidth, that the participating peer is trying to make to the P2P overlay / network. Using the information provided by the bootstrapping node, participating peers calculate the number of parent peers they can connect to.</p><p> Each peer is a qualified parent peer (r) based on the overlay situation and its own bandwidth contribution.<sub>i</sub>) Is maintained at a certain number. This then determines the bandwidth, which in turn determines the quality that the peer can receive. Each individual peer serves a particular number of other peers as a child, based on its willingness and the availability of its child peers.</p><p> Livestreaming in a peer-to-peer network, including the steps of calculating the peer's entitlement and excess degree, identifying and contacting potential parent peers, and implementing connectivity policies. Contribution recognition method and system for.</p>
The present invention can be best understood by reference to the following detailed description in conjunction with the accompanying drawings. The drawings include the following figures, which are briefly described below.<figref num="1">It is a schematic diagram which shows the diffusion tree.</figref><figref num="2">It is a figure which shows the main basic element of the system by this invention.</figref><figref num="3A">It is a schematic diagram which shows the centralized peer discovery method.</figref><figref num="3B">It is a block diagram which shows the communication between a requesting peer and a bootstrapping node in a centralized peer discovery method.</figref><figref num="3C">It is a schematic diagram which shows the detailed operation of the requesting peer of FIG. 3B.</figref><figref num="3D">It is a block diagram which shows the communication between an existing peer and a bootstrapping node in a centralized peer discovery method.</figref><figref num="3E">FIG. 3 is a schematic diagram showing the detailed operation of the contacted peer in 3D.</figref><figref num="4A">It is a schematic diagram which shows the distributed peer discovery method.</figref><figref num="4B">It is a block diagram which shows the communication between a requesting peer and a bootstrapping node in a distributed peer discovery method.</figref><figref num="4C">It is a schematic diagram which shows the detailed operation of the requesting peer of FIG. 4B.</figref><figref num="4D">FIG. 4B is a schematic diagram showing the detailed operation of the contacted peer.</figref><figref num="5A">It is a schematic diagram which shows the semi-distributed peer discovery method.</figref><figref num="5B">It is a block diagram which shows the communication between a requesting peer and a bootstrapping node in a semi-distributed peer discovery method.</figref><figref num="5C">It is a schematic diagram which shows the detailed operation of the requesting peer of FIG. 5B.</figref><figref num="5D">FIG. 5B is a schematic diagram showing the detailed operation of the contacted peer in FIG. 5B.</figref><figref num="6">It is a flow chart which shows the peer discovery process.</figref>
The selection policy for distributing bandwidth to participating peers is based on the peer's contribution in the P2P network. There are N peers, peer i (p)<sub>i</sub>) Is the intention value W<sub>i</sub>Assuming that, by the heuristics described herein, its p<sub>i</sub>Can have a qualified parent peer r<sub>i</sub>Determine the total number of. Use the generic cost function to determine the number of eligible parents that each peer can have.
<maths num="1"><img file="JP2010511348A_D0001.tif" /></maths>
In the formula, r<sub>i</sub>Is the qualified parent peer, N is the number of participating peers, W<sub>i</sub>Is p<sub>i</sub>The intention value of, t is the cost coefficient. Make sure your system has extra bandwidth by using a cost factor greater than 1.
Number of eligible parent peers r<sub>i</sub>After determining, execute the parent discovery process. Each peer is at least r<sub>i</sub>It is necessary to find the parent peer to connect (form a connection). The parent discovery process needs to distribute bandwidth in a fair and timely manner. This specification describes three different methods by which a peer can find a suitable parent peer: centralized, distributed, and semi-distributed. The present specification also describes a device capable of finding a suitable parent peer for a participating / requesting peer.
Delivering live multimedia streams via P2P overlays is an effective technique for supporting one-to-many streaming over the Internet. This technique is commonly referred to as P2P streaming. In P2P streaming, participating users (peers) proactively provide their resources (bandwidth and storage space) by transferring their available content to other peers. The total resources available correspond to the total number of users / peers and can potentially accommodate any number of participating peers.
Efforts in designing P2P streaming protocols were often limited to highly resource-provisioned environments in the system. However, some important aspects of actual placement, which have been largely ignored, are the lack of resources in asymmetric and non-uniform bandwidth peers and overlays. The present invention addresses these issues by taking into account a fairly heterogeneous environment in which the host makes disproportionate contributions to overlays due to limited transmit bandwidth or lack of intent. .. Moreover, in such an environment, the total resources in the system may not be sufficient for everyone to receive a stream of sufficient quality.
It is desirable for peers to be able to effectively use all resources in the system while enjoying stream quality in proportion to their contributions. These policies can encourage peers to use the bandwidth of high bandwidth peers more, provide better quality to low bandwidth peers, and contribute more to enjoy higher quality. Possible methods of monitoring overall system resources, including centralized, distributed, and semi-distributed, are scrutinized.
PRIME is a live streaming technology, and each P2P streaming system (i) builds an overlay that bundles participating peers into overlays, and (ii) content delivery that determines the delivery of content to individual peers via overlays. It consists of two main components.
Participating peers form randomly connected overlays or meshes, which are directed graphs. Each peer maintains a certain number of parent peers that retrieve the content from it, and a certain number of child peers that deliver the content. For each peer, the number of parent peers and the number of child peers are shown as incoming and outgoing degrees, respectively. In order to effectively use the access link bandwidth of the participating peers, the incoming and outgoing degrees of each peer shall be its available receive bandwidth b.<sub>down</sub>, And transmit bandwidth b<sub>up</sub>Is set in proportion to. The ratio of receive (or transmit) bandwidth to in (or out) order represents the average bandwidth of each connection, which is called bandwidth per flow or bwpf. bwpf is a configuration parameter that was a priori selected and known by the individual peers. Specifically, the in-degree and out-degree of the peer are b, respectively.<sub>down</sub>/ bwpf and b<sub>up</sub>Set to be / bwpf.
A swarm-like content delivery mechanism is used for content delivery. The main advantage of group content delivery is that it can effectively use the transmit bandwidth of participating peers and is robust against peer participation movements (or drastic changes). Group content delivery combines push-type content reporting with pull-type content requests. As a parent peer, each peer periodically reports its newly received packets to its child peers. As a child peer, each peer parent a subset of the requested packets based on the available packets reported at each parent peer and the available bandwidth from each parent peer to the requesting child peer. Request each of the peers on a regular basis. The packet requested by each parent peer is determined by the packet scheduling algorithm. Each parent peer delivers the packet requested by each child peer via a congestion controlled mechanism such as TCP or RAP.
Content is coded with multi-description coding (MDC) to accommodate bandwidth non-uniformity between peers. The MDC aggregates the streaming content into several substreams, each substream being decrypted separately. The quality delivered to each peer is proportional to the number of separate substreams it receives. MDC coding allows each peer to receive the appropriate number of substreams delivered over its access link bandwidth.
The packet scheduling algorithm is to (i) fully use the available bandwidth from each parent peer and (ii) ensure that the packets requested by the child peers are delivered in time. Two goals should be achieved. The pattern of delivery of individual packets through the overlay mesh (the path that packets traverse from the source to each peer) depends on the group behavior of the packet scheduling algorithms on all participating peers and the overlay mesh topology. Each peer tracks the bandwidth available at each parent peer (through passive measurements) and the available content (using regular reports). Given this information, the scheduling algorithm is called periodically to determine which packets are required for each parent peer in two steps. First, the scheduler identifies the new packet with the highest time stamp available in the parent peer during the last reporting period. These new packets are always requested by the child peer to the parent peer. Second, each parent peer is required to have a random subset of the other missing packets in order to fully use its received bandwidth. To achieve load balancing, if packets are available in multiple parent peers, request the packet from the parent with the lowest ratio of requested packets to total packets that can be serviced by the parent peer.
By using the scheduling algorithm described above, each segment of content is in the spreading and swarming stages. It is delivered to each participating peer in two stages (phase). During the spread phase, each peer receives any fragment of the new segment from its parent peer at a higher level (closer to the source). Therefore, the newly generated segment fragments are progressively pulled by different levels of peers. For example, a newly generated segment fragment is taken by a level 1 peer after one period (Δ), by a level 2 peer after 2 * Δ, and so on. After a period of d, all peers in the overlay have one fragment of the new segment. Ideally, each piece of segment is delivered only once by the source. Therefore, a group of peers that receive a fragment of a segment during the diffusion stage form a tree called the diffusion tree, which originates from level 1 peers. The shaded nodes in Figure 1 form a diffuse tree. All connections from a level i peer to its child peers at level i + 1 are called diffuse connections. These connections are on the spread tree.
During the swarming phase, each peer receives all missing fragments of the segment from its parent peer at the same or lower level (far from the source). These parent peers are called swarming parents. The swarming phase can take multiple periods. This is because the swarming parent may not have all the missing fragments of the segment. Except for diffuse connections, all other connections in the overlay mesh are swarming connections. A collection of swarming connections forms a directed mesh called a swarming mesh. Swarming meshes are used to exchange different pieces of each segment between different diffusion trees.
That is, each fragment of any new segment is spread through a particular spread tree during the spread stage of that segment. The available fragments are then exchanged between peers in different diffusion trees via the swarming mesh during the swarming phase of the segment.
To allow peers to receive quality proportional to their contribution in the system, the P2P streaming technology described above is enhanced by the following four mechanisms shown in Figure 2. 1. System level information update and propagation 2. Calculation of peer qualifications and surplus connections 3. Discovery of peers 4. Policy
As shown in Figure 2, the basic element of the policy, "update", is the system-wide parameters N, W.<sub>i</sub>, And f<sub>i</sub>And represent the need to propagate its parameters to all peers in the network. Qualified (R<sub>i</sub>) And surplus (E<sub>i</sub>) Degrees are calculated for each peer according to the formula shown below. Through peer discovery, in distributed peer discovery techniques, in a pool of peers, or in centralized peer discovery techniques, potential peers in a pair / list / queue of peers selected by the bootstrapping node. R with potentially preemptable child peers by contacting<sub>i</sub>+ E<sub>i</sub>An attempt is made to find a vacant or parent peer. Finally, if a potential peer has been sought, but already connected, use Table 2 to determine if the potential peer's children are preemptible. If the child is preemptive, preempt the child peer.
System-level parameters need to be updated and propagated throughout livestreaming. These parameters are N, W, as defined in Table 1.<sub>i</sub>, And f<sub>i</sub>Is included. Upon arrival, the participating peer contacts the bootstrapping node and intends to service the other peer (W).<sub>i</sub>) To the bootstrapping node. The bootstrapping node is the total number N of peers in the system and the sum of the intention values of all peers Σ (W).<sub>i</sub>) Has information. When leaving, the peer must contact the bootstrapping node again to unregister from the overlay. Peers may not unregister from the overlay in the event of corruption or other fatal conditions. Otherwise, the existing peer needs to notify the bootstrapping node of leaving the overlay.
<tables num="1"><img file="JP2010511348A_D0002.tif" /></tables>
Peer's actual contribution f<sub>i</sub>Changes over time. Therefore, the system sums up the contributions of all peers Σ (f)<sub>i</sub>) Needs to be refreshed regularly to calculate. The calculation can be performed by the following two methods.
· Centralized update: In this approach, the peer contacts the bootstrapping node each time the actual contribution changes.
· Distributed update: In this approach, contribution information is propagated along the diffusion tree. A peer periodically updates its parent peer in the spread tree with respect to its current contribution and the sum of the contributions of its subordinate (child) peers (in the spread tree). First-level peers send updates to bootstrapping nodes throughout. With distributed updates, the information is only updated on a regular basis, so Σ (f)<sub>i</sub>The value of) may not be accurate. However, it is considered that sufficient accuracy can be obtained by adjusting the length of regular updates.
N, Σ (W) for peers to calculate the number of qualified and surplus receptions, as described below.<sub>i</sub>) And Σ (f<sub>i</sub>) Gathered information also needs to be propagated to all peers. This propagation can also be performed by a centralized method or a distributed method. In the centralized method, the bootstrapping node is N, Σ (W).<sub>i</sub>), And Σ (f<sub>i</sub>) Notify all peers of the current value on a regular basis. In the distributed method, information is distributed from the root (bootstrapping node) to all peers via a diffusion tree.
Qualified degree R of peer i<sub>i</sub>Is calculated using the following formula.
<maths num="2"><img file="JP2010511348A_D0003.tif" /></maths>
In the equation, t is a parameter expressed as a cost factor, t> 1 to ensure that the system has extra bandwidth. R<sub>i</sub>Is basically the sum of the two terms. The first term is that the peer is W<sub>i</sub>Represents the minimum bandwidth entitled to receive by providing, and the second term is the average residual bandwidth per peer. The calculated surplus degree of peer i is E<sub>i</sub>= Max-R<sub>i</sub>Is.
When a peer calculates a qualified order, it tries to find a peer with a surplus order to accommodate it. That is, a peer with a surplus order looks for a parent peer that can help the peer with the surplus order make additional connections so as to improve its contribution and thus its quality. The peer discovery process can be performed using three different methods described below.
In centralized peer discovery, the bootstrapping node maintains a table that keeps track of each peer in the system. Each peer has one input in the table (id, W<sub>i</sub>, F<sub>i</sub>, E<sub>i</sub>, R<sub>i</sub>), In this case id is the peer id. W<sub>i</sub>And f<sub>i</sub>The difference from and indicates the number of empty slots in this peer. Also, each peer in the system maintains a table of all its child peers in the spread tree and their corresponding parameters.
Then, referring to Figure 3, the requesting peer (the peer requesting the discovery of a potential peer to which it can connect) makes the request, r.<sub>A</sub>, E<sub>A</sub>, F<sub>A</sub>Send to the bootstrapping node along with its parameters in (1). The bootstrapping node returns a list of all potential parent peers that can potentially accept the requesting peer and become its parent peer (1). The potential parent peer of the requesting peer is defined as follows: 1. If the peer has an empty slot, it is a potential parent peer. 2. Based on the policies defined in Table 2, the parent peer of peer B is a potential peer if the requesting peer (denoted as peer A) can preempt the peer (denoted as peer B). Is.
<tables num="2"><img file="JP2010511348A_D0004.tif" /></tables>
An example of how to use Table 2 to determine if a current connection is preemptible is as follows: Suppose peer B is already connected to a particular parent peer. In the first example, peer a (p<sub>a</sub>) And peer b (p)<sub>a</sub>) Have qualified orders. p<sub>a</sub>The actual contribution (degree) is f<sub>a</sub>Is. p<sub>a</sub>The actual qualified degree of entry is r<sub>a</sub>Is. p<sub>a</sub>The actual surplus degree of is e<sub>a</sub>Is. p<sub>b b</sub>The same applies to. f<sub>a</sub>= 20, r<sub>a</sub>= 2, e<sub>a</sub>If = 0, then (r<sub>a</sub>+ e<sub>a</sub>) / f<sub>a</sub>= 2/20 = 1/10. f<sub>b b</sub>= 20, r<sub>b b</sub>= 5, e<sub>b b</sub>If = 0, then (r<sub>b b</sub>+ e<sub>b b</sub>) / f<sub>b b</sub>= 5/20 = 1/4. p<sub>a</sub><p<sub>b b</sub>Because it is a calculation of p<sub>a</sub>Is p<sub>b b</sub>Can be preempted. In the second example, p<sub>a</sub>Has a qualified degree, p<sub>b b</sub>Has a surplus order. p<sub>a</sub>Using the same values for the parameters of p<sub>a</sub>Is also in this case (r<sub>a</sub>+ e<sub>a</sub>) / f<sub>a</sub>It has a calculated value of = 2/20 = 1/10. f<sub>b b</sub>= 5, r<sub>b b</sub>= 2, e<sub>b b</sub>If = 1, then (r<sub>b b</sub>+ e<sub>b b</sub>) / f<sub>b b</sub>= 3/5. Again, p<sub>a</sub><p<sub>b b</sub>Because it is a calculation of p<sub>b b</sub>Is p<sub>a</sub>Can be preempted. In the third example, p<sub>a</sub>Has a surplus order, p<sub>b b</sub>Is a qualified degree. In this case, P<sub>a</sub>Is P<sub>b b</sub>Cannot be preempted. In the fourth example, p<sub>a</sub>And p<sub>b b</sub>Has a surplus order. f<sub>a</sub>= 5, r<sub>a</sub>= 2, e<sub>a</sub>If = 0, e<sub>a</sub>/ f<sub>a</sub>= 0/5 = 0. f<sub>b b</sub>= 5, r<sub>b b</sub>= 2, e<sub>b b</sub>If = 2, e<sub>b b</sub>/ f<sub>b b</sub>= 2/5, so p<sub>a</sub>Is P<sub>b b</sub>Can be preempted. Because the ratio e<sub>a</sub>/ f<sub>a</sub>Is the ratio e<sub>b b</sub>/ f<sub>b b</sub>Because it is smaller. r<sub>a</sub>And r<sub>b b</sub>Note that is not used in this example.
When the requesting peer receives the list from the bootstrapping node (2), it contacts the peers in the list in sequence (2). The contacted peer accepts the requesting peer if it has an empty slot, and this peer becomes a child of this contacted peer. If the contacted peer does not have an empty slot, Table 2 shows whether the requesting peer can preempt one of the contacted peer's child peers. Use the stated policy. If the requesting peer can preempt any of the contacted child peers, the contacted peer disconnects the child peer selected to preempt and assigns a connection / slot to the requesting peer. If not, notify the requesting peer that it cannot be accepted. All peers in the returned list are potential parent peers, but may not be able to accept the requesting peer for the following reasons: 1. Parameters maintained on the bootstrapping node may not be up to date due to the delay between state changes and the time the parameters are updated. 2. As the requesting node gets more parent peers, r<sub>A</sub>, E<sub>A</sub>, F<sub>A</sub>The value of changes over time.
The process of contacting the peers in the list continues until the requesting peer gets the requested number of peers or the list is exhausted. In the latter case, the requesting peer pauses for a period of T and restarts the above process.
FIG. 3B is a block diagram of communication between the requesting peer and the bootstrapping node in a centralized peer discovery scheme. For each peer, there is one entry in the peer information table (id, W<sub>i</sub>, F<sub>i</sub>, E<sub>i</sub>, R<sub>i</sub>). The requesting peer sends a join request to peer contact interface 305 in the bootstrapping node (1). Peer communication interface 305 then forwards the reference request to peer information table module 310 (2). The peer information table module 310 performs a browse operation on the peer information table and returns a list of potential parent peer lists to peer contact interface 305 (3). Peer contact interface 305 then returns a list containing the peer information requested to the requesting peer.
FIG. 3C is a schematic diagram of the detailed operation of the requesting peer in FIG. 3B. The requesting peer contacts the bootstrapping node with a join request (1). The bootstrapping node returns a list of potential parent peers (2). The requesting peer queues potential / candidate parent peers with a list of potential parent peers. The requesting peer can then sequentially retrieve each potential parent peer from the queue, contact the potential parent peer, and accept the requesting peer, thus its child peers (or of their child peers). Check if it can be one) (3).
Figure 3D is a block diagram of communication between an existing peer and a bootstrapping node in a centralized peer discovery scheme. The existing peer updates its associated information with the bootstrapping node by sending an update message to the bootstrapping node's peer contact interface 305 (1). The peer communication interface 305 forwards the update information to the peer information table module 310 that updates the peer information table (2). The bootstrapping node returns a message to existing peers through the peer contact interface indicating that the information has been updated (3).
FIG. 3E is a schematic diagram of the detailed operation of the peer contacted in Figure 3D. The contacted peer (potential parent peer) receives a request from the requesting peer to join it as a child peer (1). The contacted peer may meet the participation request by inspecting its child peer information table and either by any empty slot it can have or by preempting one of the current child peers. Decide if you can. The contacted peer returns a response to the requesting peer indicating the outcome of the decision (2).
Then, referring to Figure 4, in the distributed discovery method, the requesting peer first contacts the bootstrapping node (1). The bootstrapping node returns the address / location of the content source node at the root of all spread trees (1). The requesting node maintains a waiting queue, puts the content source node in that queue, and the requesting peer first contacts the source node (2), which returns its child list to the requesting peer. (2). All peers in the content source node and system maintain their child peer's table in the spread tree and its corresponding parameters.
Each time the requesting peer dequeues one potential parent peer and contacts this potential parent peer to see if it can be accepted (3). Each contacted peer returns a list of its child peers (4). Acceptance is based on the same policies as described above. The contacted peer accepts the requesting peer if it has an empty slot, the requesting peer becomes a child of this contacted peer, and the contacted peer is a list of its child peers. Is returned to the requesting peer (4). In this way, the requesting peer contacts the peer further down the diffusion tree (5), and then the requesting peer contacts the children of each accepted and contacted peer, while Continue until the requested number of peers that the requesting peer can connect to is retrieved or the list and peers are exhausted (6). If the contacted peer does not have an empty slot, Table 2 shows whether the requesting peer can preempt one of the contacted peer's child peers. Use the stated policy. If the requesting peer can preempt any of the contacted child peers, the contacted peer disconnects the child peer selected to be preempted and connects / slots to the requesting peer. assign. If not, notify the requesting peer that it cannot be accepted. At the end of the process, the contacted peer also returns to the requesting peer a list of its child peers in the spread tree. The requesting peer attaches the returned list to the end of the waiting queue. This process continues until the requesting peer acquires the requested number of peers or the list is exhausted. In the latter case, the requesting peer pauses for a period of T and restarts the above process.
The third method is a semi-distributed method. To reduce signaling overhead, peers maintain some local information about their parent peers that are two hops apart. Each parent peer has the number of empty slots W<sub>i</sub>, Actual contribution f<sub>i</sub>, And the number of surplus connections to its child peers e<sub>i</sub>Piggie back information about in a content packet. In addition, the parent peer has information about that parent peer (W).<sub>i</sub>, F<sub>i</sub>, E<sub>i</sub>) To its child peers. Therefore, a node has information about its parent peer and grandparent peer.
FIG. 4B is a block diagram of communication between the requesting peer and the bootstrapping node in the distributed peer discovery method. The requesting peer sends a join request to peer contact interface 405 on the bootstrapping node (1). The bootstrapping node returns the address / location of the content source node (2). The requesting peer contacts the content source node (3).
FIG. 4C is a schematic diagram showing the detailed operation of the requesting peer in FIG. 4B. The requesting peer contacts the bootstrapping node (1). The requesting peer receives the content source node information from the bootstrapping node (2). The requesting peer contacts the content source node and receives a list / queue of its child peers, which are the potential parent peers of the requesting peer (2). The requesting peer stores the returned child peer list at the end of its potential / candidate parent peer's queue. The requesting peer then queues each potential parent peer's input to the potential / candidate parent peer and contacts it to see if the requesting peer can become its child peer. Confirm (4). The contacted potential parent peer returns a list / queue of its child peers, and the requesting peer stores it at the end of its potential / candidate parent peer's queue.
FIG. 4D is a schematic diagram of the detailed operation of the peer contacted in FIG. 4B. Upon receiving a join request from the requesting peer (1), the contacted peer inspects its child peer information table and either by any empty slot it can have, or of its current child peers. Determine if the participation request can be met by anticipating one of the above. The contacted peer returns a response indicating the outcome of the decision, along with its child peer list, to the requesting peer (2).
Then, referring to Figure 5A, the requesting node returns a waiting queue for potential peers (1) to contact the bootstrapping node (1). Note that the bootstrapping node has a list of all peers in the system. However, it does not maintain a table that tracks the parameters of each peer. The bootstrapping node randomly selects a predetermined number of potential parent peers from the list and returns the list as a waiting queue to the requesting node.
The requesting node then contacts each peer in the list (2) and receives its adjacency list (2). All of these lists are put together to form a single waiting queue. The requesting peer dequeues one peer each time and contacts this potential peer to see if it can be accepted (3). Acceptance is based on the same policies as described above. The contacted peer accepts the requesting peer if it has an empty slot, and this peer becomes a child of this contacted peer. If the contacted peer does not have an empty slot, Table 2 shows whether the requesting peer can preempt one of the contacted peer's child peers. Use the stated policy. If the requesting peer can preempt one of the contacted child peers, the contacted peer disconnects the child peer selected to be preempted and requests a connection / slot. Assign to the side peer. If not, notify the requesting peer that it cannot be accepted.
This process continues until the requesting peer acquires the requested number of peers or the list is exhausted. In the latter case, the requesting peer pauses for a period of T and restarts the above process.
FIG. 5B is a block diagram of communication between the requesting peer and the bootstrapping node in the semi-distributed peer discovery method. The peer information table maintains a list of all peers in the system. The requesting peer sends a join request to the bootstrapping node's peer contact interface 505 (1). The peer communication interface 505 then forwards the reference request to the peer information table module 510 (2). The peer information table module 510 performs a lookup operation on the peer information table and returns a list of randomly selected potential parent peers to peer contact interface 505 (3). The peer contact interface 505 then returns a list of randomly selected potential parent peers and their peer information to the requesting peer.
FIG. 5C is a schematic diagram of the detailed operation of the requesting peer of FIG. 5B. The requesting peer contacts the bootstrapping node (1). The requesting peer receives a list of randomly selected potential parent peers (2) and queues the randomly selected potential parent peers to its potential / candidate parent peers. The requesting peer sequentially contacts the peers in its potential / candidate parent peer's queue (3). The requesting peer then sends an adjacency request message to the contacted (potential parent) peer (3). Each contacted peer returns a list of its neighbors. The requesting peer stores a list of neighboring peers in its potential / candidate parent peer's queue. The requesting peer contacts the next potential parent peer in its potential / candidate parent peer's queue to see if the requesting peer can become its child peer (4).
FIG. 5D is a schematic diagram showing the detailed operation of the peer contacted in FIG. 5B. When the contacted peer receives an adjacency request message from the requesting node, it returns its adjacency peer list to the requesting node (1). If the incoming message is to look for an empty slot, the contacted peer inspects its child peer information table and either by any empty slot it can have, or by the current child peer. Determine if the requirement can be met by anticipating one of them. The contacted peer returns a response to the requesting peer indicating the outcome of the decision (2).
Next, refer to FIG. 6, which is a flow chart showing the peer discovery process. At 605, p<sub>i</sub>Contact the bootstrapping node. At 610, tests are done to determine if centralized peer discovery is to be used. If you are supposed to use centralized peer discovery, at 615, the bootstrapping node causes an empty slot / connection to p with a list / queue of potentially preemptable child peers.<sub>i</sub>Provided to. Then p<sub>i</sub>Is 635, r of the potential peers as qualified peers<sub>i</sub>And e of the potential peers as surplus peers<sub>i</sub>Contact. If you are not supposed to use centralized peer discovery, the 620 will be tested to determine if you are supposed to use distributed peer discovery. If you are supposed to use distributed peer discovery, at 625, the random list / queue identification (id) is p.<sub>i</sub>Provided to. At 630, p<sub>i</sub>Searches for all peers in the list / queue of peers for empty slots / connections and potentially preemptive peers. Then p<sub>i</sub>Is 635, r of the potential peers as qualified peers<sub>i</sub>And e of the potential peers as surplus peers<sub>i</sub>Contact. If you are not supposed to use distributed peer discovery, by default you will use semi-distributed peer discovery. At 640, the number N of peers in the network is p<sub>i</sub>Provided to. Then at 645, I explores all N peers and is a child or p of these N peers.<sub>i</sub>Find an empty slot or a potentially preemptive child peer among the children of a potential peer one hop away from. Then p<sub>i</sub>Is 635, r of the potential peers as qualified peers<sub>i</sub>And e of the potential peers as surplus peers<sub>i</sub>Contact.
It should be noted that the present invention can have a longer start-up delay / latency than the traditional non-contributory peer-to-peer streaming scheme. The process of finding the parent peer results in longer startup delays. In addition, the waiting time will be different depending on the different peer discovery method. The centralized peer discovery method and the semi-distributed peer discovery method have shorter start / join latency than the distributed peer discovery method that traverses the diffusion tree starting from the root. However, the contribution recognition peer-to-peer livestreaming method of the present invention uses MDC (Multiple Descriptive Coding) to encode the underlying data, so that the peer replays each time it receives the first description. Can be started. This can potentially reduce the startup wait time.
The peer preemption policy can lead to the participation and withdrawal of extra peers in the present invention. For example, if the requesting peer preempts a child peer that is already connected to the parent peer, the preempted child peer must try to join another parent peer and therefore systemizes extra joins and exits. Will be added to. This process continues until the preempted child peer finds an empty slot for it in another parent peer.
This has little effect if the preempted connection is a "surplus connection", as it is unlikely that the peer will have this connection first. One way to mitigate this issue is to change the lien policy. In the lien policy of the present invention, a "qualified connection" cannot preempt another "qualified connection". Also, since MDC (Multiple Description Coding) is used to encode the stream data, the effects of joining and leaving may not be significant. If the peer loses some description, the display quality will be degraded, but the stream will still be visible.
It should be understood that the present invention can be implemented in various forms of hardware, software, firmware, dedicated processors, or combinations thereof. It is desirable to implement the present invention as a combination of hardware and software. Furthermore, the software should be implemented as an application program that is tangibly embedded in the program storage device. The application program can be uploaded to and executed by a machine that contains any suitable architecture. The machine should be implemented on a computer platform with hardware, such as one or more central processing units (CPUs), random access memory (RAM), and input / output (I / O) interfaces. The computer platform also includes an operating system and microinstructions. The various steps and functions described herein can be part of a microinstruction code, or part of an application program (or a combination thereof), which is performed through an operating system. .. In addition, various other peripherals can be connected to the computer platform, such as additional data storage and printing devices.
Since it is desirable to implement some of the component system components and method steps shown in the accompanying drawings in software, the actual connections between the system components (or process steps) are programmed by the present invention. It should be further understood that it can vary depending on the method. Given the teachings herein, the parties may intend to implement or configure these and similar of the present invention.
21 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| JP2014520428A | Cited by | Japan | Search report |
| JP2014520428A | Cited by | Japan | Examiner |
| US9444887B2 | Cited by | United States of America | Applicant |
19 members in 6 offices
Priority claims3
| Document | Office | Kind | Date |
|---|---|---|---|
| 2006045588 | United States of America | W | |
| 2006045588 | – | – | – |
| WO2006US45588 | – | – | – |
Members19
| Document | Office | Kind | |
|---|---|---|---|
| WO2008066516A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2008066560A1 | World Intellectual Property Organization (WIPO) | A1 | |
| EP2090074A1 | European Patent Office (EPO) | A1 | |
| EP2095610A1 | European Patent Office (EPO) | A1 | |
| CN101543019A | China | A | |
| CN101543021A | China | A | |
| US2010030909A1 | United States of America | A1 | |
| US2010064049A1 | United States of America | A1 | |
| JP2010511348AThis record | Japan | A | |
| JP2010515113A | Japan | A | |
| JP4830025B2 | Japan | B2 | |
| BRPI0622079A2 | Brazil | A2 | |
| JP4994458B2 | Japan | B2 | |
| CN101543021B | China | B | |
| CN101543019B | China | B | |
| CN102868674A | China | A | |
| BRPI0718939A2 | Brazil | A2 | |
| US8898232B2 | United States of America | B2 | |
| US9094416B2 | United States of America | B2 |
11 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Cancellation because of no payment of annual feesLAPS | LAPS | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| First payment of annual fees (during grant procedure)JAPANESE INTERMEDIATE CODE: A61A61 | A61 | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Decision of grant or rejection writtenTRDD | TRDD | |
| Written amendmentJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Notification of reasons for refusalJAPANESE INTERMEDIATE CODE: A131A131 | A131 |
Numbers
- Publication
- 2010511348
- Publication, DOCDB
- 2010511348
- Publication, EPODOC
- JP2010511348
- Application
- 2009539220
- Application, DOCDB
- 2009539220
- Application, EPODOC
- JP20090539220
Titles2
- Japanese
- 貢献認識(CONTRIBUTIONAWARE)ピアツーピアライブストリーミングサービス
- English
- Contribution recognition (CONTRIBUTION AWARE) Peer-to-peer live streaming service
Classification
- CPC, 7
- H04L67/104
- H04L29/06027
- H04L65/4084
- H04L65/80
- H04L67/1046
- H04L67/1082
- H04L67/1093
- IPC, 2
- H04L12 56
- G06F13 00
Designated states4
- Regional, 4
- Zimbabwe
- Turkmenistan
- Türkiye
- Togo