# US 10,503,599 B2 · Method and system for facilitating one-to-many data transmissions with reduced network overhead

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

- Number: US 10,503,599 B2
- Document ID: US10503599B2
- Status: Granted
- Kind: B2
- Application number: 14/563,323
- Filed: 2014-12-08
- Published: 2015-08-06
- Granted: 2019-12-10
- Earliest claimed: 2014-12-08
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Justin Lipman
- Web page: https://patentgrep.com/patent/US10503599B2

## CPC

- H04L 1/1628: {List acknowledgements, i.e. the acknowledgement message consisting of a list of identifiers, e.g. of sequence numbers (H04L1/1614 takes precedence)}
- G06F 11/1402: {Saving, restoring, recovering or retrying}
- H04L 1/08: by repeating transmission, e.g. Verdan system {(H04L1/1858 and H04L1/189 take precedence)}
- H04L 47/26: using explicit feedback to the source, e.g. choke packets
- H04L 47/15: {in relation to multipoint traffic (arrangements for broadcast or multicast in data networks H04L12/18)}
- H04L 47/28: in relation to timing considerations
- H04L 47/29: {using a combination of thresholds}
- H04L 47/34: ensuring sequence integrity, e.g. using sequence numbers
- H04L 2001/0093: {Point-to-multipoint}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method and system for facilitating one-to-many data transmissions with reduced network overhead includes conducting a round of data transmissions from a source computing device to a plurality of sink computing devices. Each of the sink computing devices generates a bucket list of lost data blocks for the round of data transmissions and transmits the bucket list to the source computing device. The source computing device conducts a subsequent round of data transmissions based on the bucket lists. One or more additional subsequent rounds may be conducted until the bucket list of each sink computing device is empty.

## Claims

### Claim 1

A method, to be employed by a source computing device, comprising:
initializing a data transmission session;
transmitting, to a plurality of sink computing devices, a plurality of data packets during the data transmission session;
transmitting, to the plurality of sink computing device, a message associated with an end of transmitting the plurality of data packets during the data transmission session;
receiving, from a first sink computing device of the plurality of sink computing devices at a first time slot and during the data transmission session, a first list of lost data block if there is data packet(s) from the plurality of data packets that the first sink computing device doesn't receive from the source computing device, wherein the lost data blocks are included in the data packets of the plurality of data packets not received from the source computing device; and
receiving, from a second sink computing device of the plurality of sink computing device different from the first sink computing device and at a second time slot and during the data transmission session, a second list of lost data block if there is data packet(s) from the plurality of data packets that the second sink computing device doesn't receive from the source computing device,
wherein the first time slot is prior to the second time slot if the first sink computing device has a higher priority than the second sink computing device,
wherein at least one of the first list of lost data block and the second list of lost data block is to be received from the first sink computing device and/or the second sink computing device in response to the message transmitted during the data transmission session.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
retransmitting, to the first sink computing device, the data packet(s) indicated in the first list of lost data block;
transmitting, to the first sink computing device, another message associated with an end of retransmitting the data packet(s);
receiving, from the first sink computing device and in response to the another message, a third list of lost data block if there is data packet(s) from the retransmitted data packet(s) that the first sink computing device doesn't received from the source computing device; and
repeating the above steps until there is no data packet from the retransmitted data packet(s) that the first sink computing device doesn't receive from the source computing device.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
retransmitting, to the second sink computing device, the data packet(s) indicated in the second list of lost data block;
transmitting, to the second sink computing device, another message associated with an end of notification after retransmitting the data packet(s);
receiving, from the second sink computing device and in response to the another message, a fourth list of lost data block if there is data packet(s) from the retransmitted data packet(s) that the second sink computing device doesn't receive from the source computing device; and
repeating the above steps until there is no data packet from the retransmitted data packet(s) that the second sink computing device doesn't receive from the source computing device.

### Claim 4 (depends on 1)

The method of claim 1, wherein the data packet(s) indicated in the first list of lost data block is to be more than the data packet(s) indicated in the second list of lost data block, if the first sink computing device has the higher priority than the second sink computing device.

### Claim 5 (depends on 1)

The method of claim 1, wherein the first time slot is to happen after expiration of a first delay value associated with a status of a wireless local access networks (WLAN) channel between the source computing device and the first sink computing device.

### Claim 6 (depends on 1)

The method of claim 1, wherein the second time slot is to happen after expiration of a second delay value associated with a status of a wireless local access networks (WLAN) channel between the source computing device and the second sink computing device.

### Claim 7

A method, to be employed by a sink computing device from a plurality of sink computing devices, comprising:
receiving, from a source computing device, at least one of a plurality of data packets during a data transmission session;
receiving, from the source computing device and during the data transmission session, a message indicating an end of transmitting the plurality data packets from the source computing device to the sink computing device, wherein receiving the message comprises receiving the message after transmission of the plurality of data packets is complete;
transmitting, to the source computing device at a first time slot and in response to the message and during the data transmission session, a first list of lost data blocks if there is data packet(s) from the plurality of data packets that the sink computing device doesn't receive from the source computing device, wherein each of the lost data blocks listed in the first list of lost data blocks is sent by the source computing device as part of sending the plurality of data packets;
wherein the first time slot is prior to a second time slot at which another sink computing device of the plurality of sink computing device, different from the sink computing device, is to transmit a second list of lost data block if there is data packet(s) from the plurality of data packets that the another sink computing device doesn't receive from the source computing device, and if the first sink computing device has a higher priority than the second sink computing device.

### Claim 8 (depends on 7)

The method of claim 7, wherein the data packet(s) indicated in the first list of lost data block is to be more than the data packet(s) indicated in the second list of lost data block, if the sink computing device has the higher priority than the another sink computing device.

### Claim 9 (depends on 7)

The method of claim 7, further comprising:
receiving, from the source sink computing device, another message associated with an end of retransmitting the data packet(s) indicated in the first list of lost data block;
transmitting, to the source computing device and in response to the another message, a third list of lost data block if there is data packet(s) from the retransmitted data packet(s) that the sink computing device doesn't receive from the source computing device; and
repeating the above steps until there is no data packet from the retransmitted data packet(s) that the sink computing device doesn't receive from the source computing device.

### Claim 10 (depends on 7)

The method of claim 7, wherein the first time slot is to happen after expiration of a first delay value associated with a status of a wireless local access networks (WLAN) channel between the source computing device and the sink computing device.

### Claim 11 (depends on 7)

The method of claim 7, wherein the second time slot is to happen after expiration of a second delay value associated with a status of a wireless local access networks (WLAN) channel between the source computing device and the another sink computing device.

### Claim 12

A source computing device, comprising:
one or more processors; and
a memory device having stored therein a plurality of instructions that, if executed by the processors, cause the processors to:
initialize a data transmission session;
transmit, to a plurality of sink computing devices, a plurality of data packets during the data transmission session;
transmit, to the plurality of sink computing devices, a message associated with an end of transmitting the plurality of data packets during the data transmission session;
receive, from a first sink computing device of the plurality of sink computing devices at a first time slot and during the data transmission session, a first list of lost data block if there is data packet(s) from the plurality of data packets that the first sink computing device doesn't receive from the source computing device, wherein the lost data blocks are included in the data packets of the plurality of data packets not received from the source computing device; and
receive, from a second sink computing device of the plurality of sink computing device different from the first sink computing device and at a second time slot and during the data transmission session, a second list of lost data block if there is data packet(s) from the plurality of data packets that the second sink computing device doesn't receive from the source computing device,
wherein, the first time slot is prior to the second time slot if the first sink computing device has a higher priority than the second sink computing device,
wherein at least one of the first list of lost data block and the second list of lost data block is to be received from the first sink computing device and/or the second sink computing device in response to the message.

### Claim 13 (depends on 12)

The source computing device of claim 12, wherein the plurality of instructions further cause the processors to:
retransmit, to the first sink computing device, the data packet(s) indicated in the first list of lost data block;
transmit, to the first sink computing device, another message associated with an end of retransmitting the data packet(s);
receive, from the first sink computing device and in response to the another message, a third list of lost data block if there is data packet(s) from the retransmitted data packet(s) that the first sink computing device doesn't received from the source computing device; and
repeat the above steps until there is no data packet from the retransmitted data packet(s) that the first sink computing device doesn't receive from the source computing device.

### Claim 14 (depends on 12)

The source computing device of claim 12, wherein the plurality of instructions further cause the processors to:
retransmit, to the second sink computing device, the data packet(s) indicated in the second list of lost data block;
transmit, to the second sink computing device, another message associated with an end of notification after retransmitting the data packet(s);
receive, from the second sink computing device and in response to the another message, a fourth list of lost data block if there is data packet(s) from the retransmitted data packet(s) that the second sink computing device doesn't receive from the source computing device; and
repeat the above steps until there is no data packet from the retransmitted data packet(s) that the second sink computing device doesn't receive from the source computing device.

### Claim 15 (depends on 12)

The source computing device of claim 12, wherein the data packet(s) indicated in the first list of lost data block is to be more than the data packet(s) indicated in the second list of lost data block, if the first sink computing device has the higher priority than the second sink computing device.

### Claim 16 (depends on 12)

The source computing device of claim 12, wherein the first time slot is to happen after expiration of a first delay value associated with a status of a wireless local access networks (WLAN) channel between the source computing device and the first sink computing device.

### Claim 17 (depends on 12)

The source computing device of claim 12, wherein the second time slot is to happen after expiration of a second delay value associated with a status of a wireless local access networks (WLAN) channel between the source computing device and the second sink computing device.

### Claim 18

A sink computing device, comprising:
one or more processors; and
a memory device having stored therein a plurality of instructions that, if executed by the processors, cause the processors to:
receive, from a source computing device, at least one of a plurality of data packets during a data transmission session;
receive, from the source computing device and during the data transmission, a message associated with an end of transmitting the plurality data packets from the source computing device to the sink computing device, wherein receiving the message comprises receiving the message after transmission of the plurality of data packets is complete;
transmit, to the source computing device at a first time slot and in response to the message and during the data transmission session, a first list of lost data block if there is data packet(s) from the plurality of data packets that the sink computing device doesn't receive from the source computing device, wherein each of the lost data blocks listed in the first list of lost data blocks is sent by the source computing device as part of sending the plurality of data packets;
wherein the first time slot is prior to a second time slot at which another sink computing device of the plurality of sink computing device, different from the sink computing device, is to transmit a second list of lost data block if there is data packet(s) from the plurality of data packets that the another sink computing device doesn't receive from the source computing device, and if the first sink computing device has a higher priority than the second sink computing device.

### Claim 19 (depends on 18)

The sink computing device of claim 18, wherein the data packet(s) indicated in the first list of lost data block is to be more than the data packet(s) indicated in the second list of lost data block, if the sink computing device has the higher priority than the another sink computing device.

### Claim 20 (depends on 18)

The sink computing device of claim 18, wherein the plurality of instructions further cause the processors to:
receive, from the source sink computing device, another message associated with an end of retransmitting the data packet(s) indicated in the first list of lost data block;
transmit, to the source computing device and in response to the another message, a third list of lost data block if there is data packet(s) from the retransmitted data packet(s) that the sink computing device doesn't receive from the source computing device; and
repeat the above steps until there is no data packet from the retransmitted data packet(s) that the sink computing device doesn't receive from the source computing device.

### Claim 21 (depends on 18)

The sink computing device of claim 18, wherein the first time slot is to happen after expiration of a first delay value associated with a status of a wireless local access networks (WLAN) channel between the source computing device and the sink computing device.

### Claim 22 (depends on 18)

The sink computing device of claim 18, wherein the second time slot is to happen after expiration of a second delay value associated with a status of a wireless local access networks (WLAN) channel between the source computing device and the another sink computing device.
