# US 2008/0189429 A1 · Apparatus and method for peer-to-peer streaming

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2008/0189429 A1
- Document ID: US20080189429A1
- Status: Published application
- Kind: A1
- Application number: 11/670,879
- Filed: 2007-02-02
- Published: 2008-08-07
- Earliest claimed: 2007-02-02
- Assignees: Sony Corporation; Sony Electronics Inc.
- Inventors: Behram Mario DaCosta
- Web page: https://patentgrep.com/patent/US20080189429A1

## CPC

- H04L 67/101: based on network conditions
- H04L 65/612: for unicast
- H04L 65/80: Responding to QoS
- H04L 67/1001: for accessing one among a plurality of replicated servers
- H04L 67/104: Peer-to-peer [P2P] networks
- H04L 67/108: {characterised by resources being split in blocks or fragments}
- H04L 65/65: Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method and apparatus of communicating streaming content through the Internet. Elements of streaming content are segmented and stored across a plurality of network-enabled computer devices coupled to the Internet. Each segment of the streaming content contains a plurality of data packets and an identifier for the segment. A client application accesses a streaming content element after first determining its availability on the network, such as according to a list. Requests for segments of the streaming content element are made by the client to selected devices based on information about service latency, such as determined in response to server status information, negotiation, estimation, and/or measurement. Real-time connectivity is established through which the packets of the segments are retrieved from the sending devices. The packets and segments are prepared and ordered into a streaming output of said given content element.

## Claims

### Claim 1

An apparatus for collecting streaming content from over the Internet, comprising:
means for a client to determine the availability of a given streaming content element within a plurality of peer devices configured for communicating with the client over the Internet;
wherein said given streaming element is retained within the plurality of peer devices as a plurality of segments, each of which contains a plurality of data packets and a segment identifier;
means for requesting said segments of the given content element from any of the plurality of peer devices based on transmission performance;
means for establishing real-time connectivity with one or more peer devices, from within the plurality of peer devices, from which are collected the packets within each of said segments of the given streaming content element as transmitted over the Internet; and
means for preparing and ordering the collected packets and segments into a non-segmented streaming output of said given streaming content element.

### Claim 2 (depends on 1)

An apparatus as recited in claim 1, wherein the Internet is a wide area network that utilizes IP protocols.

### Claim 3 (depends on 1)

An apparatus as recited in claim 1, wherein said client is a network-enabled computer device configured for utilizing a peer-to-peer protocol that allows streaming of content elements over the Internet.

### Claim 4 (depends on 1)

An apparatus as recited in claim 1, wherein said transmission performance is determined in response to server status information, measurement, negotiation, estimation, or any desired combination of server status, measurement, negotiation and estimation.

### Claim 5 (depends on 1)

An apparatus as recited in claim 1, wherein said means for a client to determine the availability of a given streaming content element within the plurality of peer devices comprises programming for reading the members of a list to which said streaming content element has been stored, or provided for the purpose of storage.

### Claim 6 (depends on 1)

An apparatus as recited in claim 1, wherein said means for establishing real-time connectivity comprises the use of a real-time transport protocol established with one or more of the peer devices.

### Claim 7 (depends on 1)

An apparatus as recited in claim 1:
wherein said segments and/or data packets are encoded prior to transmission; and
wherein said means for preparing and ordering the collected packets and segments is configured for decoding the packets and collating the segments into a streaming output of the given streaming content element.

### Claim 8 (depends on 7)

An apparatus as recited in claim 7, wherein said encoding comprises fountain code encoding.

### Claim 9 (depends on 1)

An apparatus as recited in claim 1, wherein said data packets are numbered according to a distributed RTP implementation utilizing global packet numbering wherein identical packet portions of the original media can be detected from comparing their respective packet identifiers.

### Claim 10

An apparatus for collecting streaming content from over the Internet, comprising:
a network-enabled computer device configured for communicating with a plurality of other network-enabled computer devices over the Internet;
programming executable on said network-enabled computer device for,
determining the availability of a given streaming content element within the plurality of other network-enabled computer devices,
wherein said given streaming content element is retained within the other network-enabled computer devices as a plurality of segments, each of which contains a plurality of data packets and a segment identifier,
requesting said segments of the given streaming content element from selected network-enabled computer devices within the plurality of network-enabled computer devices based on estimated and/or measured transmission performance of the network-enabled computer devices,
establishing real-time connectivity with the selected network-enabled computer devices from which are collected the packets within each of said segments of the given streaming content element, and
preparing and ordering the collected packets and segments into a non-segmented streaming output of said given streaming content element.

### Claim 11 (depends on 10)

An apparatus as recited in claim 10, wherein said segments and/or data packets are encoded prior to transmission.

### Claim 12 (depends on 10)

An apparatus as recited in claim 10, wherein said segments and/or data packets are encoded according to a fountain code encoding prior to transmission.

### Claim 13 (depends on 10)

An apparatus as recited in claim 10, wherein said data packets are numbered according to a distributed RTP implementation utilizing global packet numbering wherein identical packet portions of the original media can be detected from comparing their respective packet identifiers.

### Claim 14 (depends on 10)

An apparatus as recited in claim 10, wherein the Internet is a wide area network that utilizes IP protocols.

### Claim 15 (depends on 10)

An apparatus as recited in claim 10, wherein said network-enabled computer device is configured for utilizing a peer-to-peer protocol that allows streaming of content elements over the Internet.

### Claim 16 (depends on 10)

An apparatus as recited in claim 10, wherein said preparing and ordering of the collected packets comprises collating the packets and segments of the streaming content element as received from the selected network-enabled computer devices from which segments of the streaming content element have been requested.

### Claim 17 (depends on 10)

An apparatus as recited in claim 10, wherein the selected network-enabled computer devices are configured to transmit, without conflict, packets within a segment of the streaming content element using IP protocols.

### Claim 18 (depends on 10)

An apparatus as recited in claim 10, wherein the selected network-enabled computer devices create packets of the streaming content for reducing the transmission redundancy by using a distributed real-time transport protocol (RTP).

### Claim 19 (depends on 10)

An apparatus as recited in claim 10, wherein estimated and/or measured transmission performance is determined in response to tracking of service latency from the selected network-enabled computer devices.

### Claim 20 (depends on 10)

An apparatus as recited in claim 10, wherein said estimated and/or measured transmission performance is selected separately or in any desired combination from the group of transmission performance criterion consisting of server status information, measurement, negotiation and estimation.

### Claim 21

A method of communicating streaming content through the Internet, comprising:
storing a given streaming content element within a plurality of network-enabled computer devices configured for communicating over the Internet;
wherein said given streaming element is retained within the network-enabled computer devices as a plurality of segments, each of which contains a plurality of data packets and a segment identifier;
determining the availability of the given streaming element within the plurality of network-enabled computer devices;
requesting said segments of the given content element from selected network-enabled computer devices within the plurality of network-enabled computer devices in response to estimated and/or measured service latency of the network-enabled computer devices;
establishing real-time connectivity with the selected network-enabled computer devices from which are collected the packets within each of said segments of the given content element; and
preparing and ordering the collected packets and segments into a streaming output of said given content element.

### Claim 22 (depends on 21)

A method as recited in claim 21, wherein said service latency is determined in response to server status information, measurement, negotiation, estimation, or any desired combination of server status, measurement, negotiation and estimation.

### Claim 23 (depends on 21)

A method as recited in claim 21, wherein said client is a network-enabled computer device configured for utilizing a peer-to-peer protocol that allows streaming of content elements over the Internet.

### Claim 24 (depends on 21)

A method as recited in claim 21, wherein determining availability of a given streaming content element comprises reading the members of a list to which said streaming content element has been stored, or to which said streaming content element has been provided for the purpose of storage.
