# US 10,320,899 B2 · Peer-to-peer communication of non-common data

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

- Number: US 10,320,899 B2
- Document ID: US10320899B2
- Status: Granted
- Kind: B2
- Application number: 15/005,052
- Filed: 2016-01-25
- Published: 2016-06-09
- Granted: 2019-06-11
- Earliest claimed: 2009-11-25
- Assignees: Telefonaktiebolaget LM Ericsson (publ)
- Applicants: Telefonaktiebolaget L M Ericsson (publ)
- Inventors: Ibtissam El Khayat; Pierre Lepropre
- Web page: https://patentgrep.com/patent/US10320899B2

## CPC

- H04L 67/104: Peer-to-peer [P2P] networks
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/1044: {Group management mechanisms (management of multicast group membership H04L12/185; reconfiguring of node membership in a computing system to eliminate errors G06F11/1425)}
- H04L 67/1068: {Discovery involving direct consultation or announcement among potential requesting and potential source peers}
- H04L 67/108: {characterised by resources being split in blocks or fragments}
- H04L 67/1063: {Discovery through centralising entities}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A first peer device receives distinct first and second metadata. The first metadata includes a common identifier having a one-to-one relationship with a common data piece of a data entity. The common data piece is common to the first peer device, a second peer device, and a third peer device. The second metadata includes one or more non-common identifiers. Each of the one or more non-common identifiers has a one-to-one relationship with a non-common data piece of the data entity that is common to a group of peer devices including the first peer device and excluding the third peer device. The first peer device also receives a third identifier from the second peer device. The first peer device determines whether the second peer device is in the group of peer devices based on whether the third identifier is included in the one or more non-common identifiers.

## Claims

### Claim 1

A method, implemented by a first peer device, the method comprising:
receiving a first metadata comprising a common identifier having a one-to-one relationship with a common data piece of a data entity, the common data piece being common to the first peer device, a second peer device, and a third peer device;
receiving a second metadata, distinct from the first metadata, the second metadata comprising one or more non-common identifiers, each of the one or more non-common identifiers having a one-to-one relationship with a non-common data piece of the data entity that is common to a group of peer devices comprising the first peer device and excluding the third peer device;
receiving a third identifier from the second peer device;
determining whether the second peer device is comprised in the group of peer devices based on whether the third identifier is comprised in the one or more non-common identifiers.

### Claim 2 (depends on 1)

The method of claim 1, further comprising detecting a predefined placeholder identifier within the first metadata, and receiving the second metadata in response.

### Claim 3 (depends on 2)

The method of claim 2:
further comprising determining an order, within the data entity, between the common data piece and a non-common data piece corresponding to one of the one or more non-common identifiers;
wherein the order is determined based on a corresponding order, within the first metadata, between the common identifier and the predefined placeholder identifier.

### Claim 4 (depends on 1)

The method of claim 1, further comprising detecting that the third identifier matches a non-common identifier of the one or more non-common identifiers, and in response, requesting, from the second peer device, the non-common data piece having the one-to-one relationship with the non-common identifier.

### Claim 5 (depends on 1)

The method of claim 1, wherein the one or more non-common identifiers comprises a hash value calculated from a corresponding non-common data piece.

### Claim 6 (depends on 1)

The method of claim 1, further comprising determining a position of a non-common data piece within the data entity based on a position indicator comprised in the non-common identifier having the one-to-one relationship with the non-common data piece.

### Claim 7 (depends on 1)

The method of claim 1:
wherein the determining whether the second peer device is comprised in the group of peer devices comprises determining that the second peer device is comprised in the group of peer devices;
further comprising storing a bitmap comprising a plurality of single-bit fields, each single-bit field comprising a value indicating whether a respective data piece is shared between the first and second peer devices.

### Claim 8 (depends on 1)

The method of claim 1:
wherein the determining whether the second peer device is comprised in the group of peer devices comprises determining that the second peer device is comprised in the group of peer devices;
further comprising storing a bitmap comprising a plurality of single-bit fields, each single-bit field comprising a value indicating whether a respective data piece is available from the second peer device.

### Claim 9 (depends on 8)

The method of claim 8, wherein the storing of the bitmap is responsive to:
receiving an availability indicator from the second peer device indicating that the corresponding piece is available at the second peer device; and
the determining that the second peer device is comprised in the group of peer devices.

### Claim 10 (depends on 1)

The method of claim 1:
wherein the determining whether the second peer device is comprised in the group of peer devices comprises determining that the second peer device is comprised in the group of peer devices;
further comprising, in response to determining that a data piece of the data entity is available at the first peer device, transmitting an availability indicator to the second peer device to indicate that the data piece is available at the first peer device.

### Claim 11 (depends on 1)

The method of claim 1:
wherein a non-common data piece comprises a plurality of consecutive non-common sub-pieces, each sub-piece having a respective hash value;
wherein the non-common identifier having the one-to-one relationship with the non-common data piece is based on the respective hash values.

### Claim 12

A first peer device comprising:
a physical interface configured to exchange signals via a communication network;
a physical processor communicatively coupled to the physical interface, the physical processor configured to:
receive, via the physical interface, a first metadata comprising a common identifier having a one-to-one relationship with a common data piece of a data entity, the common data piece being common to the first peer device, a second peer device, and a third peer device;
receive, via the physical interface, a second metadata, distinct from the first metadata, the second metadata comprising one or more non-common identifiers, each of the one or more non-common identifiers having a one-to-one relationship with a non-common data piece of the data entity that is common to a group of peer devices comprising the first peer device and excluding the third peer device;
receive, via the physical interface, a third identifier from the second peer device;
determine whether the second peer device is comprised in the group of peer devices based on whether the third identifier is comprised in the one or more non-common identifiers.

### Claim 13 (depends on 12)

The first peer device of claim 12, wherein the physical processor is further configured to detect a predefined placeholder identifier within the first metadata, and receiving the second metadata via the physical interface in response.

### Claim 14 (depends on 13)

The first peer device of claim 13:
wherein the physical processor is further configured to determine an order, within the data entity, between the common data piece and a non-common data piece corresponding to one of the one or more non-common identifiers;
wherein the physical processor is configured to determine the order based on a corresponding order, within the first metadata, between the common identifier and the predefined placeholder identifier.

### Claim 15 (depends on 12)

The first peer device of claim 12, wherein the physical processor is further configured to detect that the third identifier matches a non-common identifier of the one or more non-common identifiers, and in response, request, from the second peer device via the physical interface, the non-common data piece having the one-to-one relationship with the non-common identifier.

### Claim 16 (depends on 12)

The first peer device of claim 12, wherein the one or more non-common identifiers comprises a hash value calculated from a corresponding non-common data piece.

### Claim 17 (depends on 12)

The first peer device of claim 12, wherein the physical processor further configured to determine a position of a non-common data piece within the data entity based on a position indicator comprised in the non-common identifier having the one-to-one relationship with the non-common data piece.

### Claim 18 (depends on 12)

The first peer device of claim 12:
wherein to determine whether the second peer device is comprised in the group of peer devices, the physical processor is configured to determine that the second peer device is comprised in the group of peer devices;
wherein the physical processor is further configured to store a bitmap comprising a plurality of single-bit fields, each single-bit field comprising a value indicating whether a respective data piece is shared between the first and second peer devices.

### Claim 19 (depends on 12)

The first peer device of claim 12:
wherein to determine whether the second peer device is comprised in the group of peer devices, the physical processor is configured to determine that the second peer device is comprised in the group of peer devices;
wherein the physical processor is further configured to store a bitmap comprising a plurality of single-bit fields, each single-bit field comprising a value indicating whether a respective data piece is available from the second peer device.

### Claim 20 (depends on 19)

The first peer device of claim 19, wherein the physical processor is further configured to store the bitmap responsive to:
receiving, via the physical interface, an availability indicator from the second peer device indicating that the corresponding piece is available at the second peer device; and
the determining that the second peer device is comprised in the group of peer devices.

### Claim 21 (depends on 12)

The first peer device of claim 12:
wherein to determine whether the second peer device is comprised in the group of peer devices, the physical processor is configured to determine that the second peer device is comprised in the group of peer devices;
wherein the physical processor is further configured to, in response to determining that a data piece of the data entity is available at the first peer device, transmit an availability indicator to the second peer device to indicate that the data piece is available at the first peer device.

### Claim 22 (depends on 12)

The first peer device of claim 12:
wherein a non-common data piece comprises a plurality of consecutive non-common sub-pieces, each sub-piece having a respective hash value;
wherein the non-common identifier having the one-to-one relationship with the non-common data piece is based on the respective hash values.
