IP Library Granted Patent US 10,193,947
Granted Patent B2
US 10,193,947 · App. 15/003,142 · Granted Jan 29, 2019

Devices and methods for content distribution in a communications network

Inventors: Antonia Tulino (Red Bank, NJ); Jaime Llorca (Red Bank, NJ)
Assignee: Nokia of America Corporation
H04L67/00H04L67/06H04L67/2861H04L67/36
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,193,947
App. No.
15/003,142
Granted
Jan 29, 2019
Kind
B2
Abstract

At least one example embodiment provides a method for transmitting data files in a network. The method may include receiving requests from destination devices for packets of the data files. The method may include constructing a conflict graph such that each packet requested by each destination device is represented by a distinct vertex in a plurality of vertices of the conflict graph. The method may include coloring the plurality of vertices of the conflict graph according to a coloring scheme. The method may include performing a first encoding operation on the requested packets based on the coloring to generate first encoded data. The method may include performing a second encoding operation on the first encoded data to generate second encoded data. The method may include sending the second encoded data.

Claims (62)

1. A method for transmitting data files in a combination network, comprising:

performing a caching method including determining popularities for the data files according to a demand distribution of destination devices and sending random packets of the data files to the destination devices based on the determined popularities;

receiving one or more requests from one or more the destination devices for packets of one or more the data files, wherein the requests are for missing packets that were not cached as a result of the caching method;

constructing a conflict graph, such that each packet requested by each destination device is represented by a distinct vertex among a plurality of vertices of the conflict graph, based on which of the plurality of vertices represent a same requested packet and which requested packets are stored in caches belonging to the destination devices;

coloring the plurality of vertices of the conflict graph according to a coloring scheme such that any two linked vertices have different colors;

performing a first encoding operation on the requested packets by combining subsets of the requested packets represented by vertices having a same color to generate first encoded data;

performing a second encoding operation on the first encoded data by combining bits of the first encoded data according to a binary encoding method to generate second encoded data, wherein the binary encoding method includes,

determining a number of blocks based on a number of connections incoming to the destination devices from intermediate nodes, wherein the intermediate nodes connect a source of the data files to the destination devices and the destination devices are connected to different subsets of the intermediate nodes,

grouping the bits of the first encoded data into a the determined number of blocks,

padding one or more of the blocks with at least one bit to generate padded blocks,

determining a number of shifting operations for the padded blocks based on (i) the number of connections incoming to the destination devices from the intermediate nodes and (ii) a total number of the intermediate nodes,

performing the determined number of shifting operations on bits of one or more of the padded blocks to generate shifted blocks,

removing at least one bit from the shifted blocks to generate resultant blocks, and

combining the resultant blocks to generate the second encoded data; and

sending respective subsets of the second encoded data towards the one or more destination devices via respective intermediate nodes, wherein

the first encoding operation reduces a total load on the combination network, and

the second encoding operation distributes the total load evenly over the connections incoming to the destination devices from the intermediate nodes.

2. The method of claim 1 , wherein the constructing constructs an undirected conflict graph.

3. The method of claim 1 , wherein the constructing constructs a directed conflict graph.

4. The method of claim 1 , wherein the binary encoding method includes,

grouping the bits of the first encoded data into the number of blocks having an equal number of bits in at least some of the blocks,

padding the one or more blocks with at least one ‘0’ to generate the padded blocks,

performing the determined number of shifting operations on the bits of the one or more padded blocks to generate the shifted blocks,

removing a last bit from the shifted blocks to generate the resultant blocks, and

combining the resultant blocks to generate the second encoded data.

5. The method of claim 1 , wherein the performing the caching method further includes

ranking the data files based on the determined popularities,

dividing the ranked data files into a first subset of data files and a second subset of data files based on a threshold value, the first subset including higher ranked data files than the second subset,

selecting a respective number of random packets for each data file of the first subset according to a respective rank, and

sending the selected random packets to the destination devices such that each destination device caches different random packets for each data file of the first subset.

6. A device for transmitting data files in a combination network, comprising:

a memory including instructions stored thereon; and

a processor configured to execute the instructions stored on the memory to,

perform a caching method including determining popularities for the data files according to a demand distribution of destination devices and sending random packets of the data files to the destination devices based on the determined popularities,

receive one or more requests from the destination devices for packets of the data files, wherein the requests are for missing packets that were not cached as a result of the caching method;

construct a conflict graph, such that each packet requested by each destination device is represented by a distinct vertex among a plurality of vertices of the conflict graph, based on which of the plurality of vertices represent a same requested packet and which requested packets are stored in caches belonging to the destination devices,

color the plurality of vertices of the conflict graph according to a coloring scheme such that any two linked vertices have different colors,

perform a first encoding operation on the requested packets by combining subsets of the requested packets represented by vertices having a same color to generate first encoded data, and

perform a second encoding operation on the first encoded data by combining bits of the first encoded data according to a binary encoding method to generate second encoded data, wherein the binary encoding method includes,

determining a number of blocks based on a number of connections incoming to the destination devices from intermediate nodes, wherein the intermediate nodes connect a source of the data files to the destination devices and the destination devices are connected to different subsets of the intermediate nodes,

grouping the bits of the first encoded data into the determined number of blocks,

padding one or more of the blocks with at least one bit to generate padded blocks,

determining a number of shifting operations for the padded blocks based on (i) the number of connections incoming to the destination devices from the intermediate nodes and (ii) a total number of the intermediate nodes,

performing the determined number of shifting operations on bits of one or more of the padded blocks to generate shifted blocks,

removing at least one bit from one or more of the shifted blocks to generate resultant blocks, and

combining the resultant blocks to generate the second encoded data, and

sending respective subsets of the second encoded data towards the destination devices via respective intermediate nodes, wherein

the first encoding operation reduces a total load on the combination network, and

the second encoding operation distributes the total load evenly over the connections incoming to the destination devices from the intermediate nodes.

7. The device of claim 6 , wherein the processor is configured to execute the instructions stored on the memory to construct the conflict graph as an undirected conflict graph.

8. The device of claim 6 , wherein the processor is configured to execute the instructions stored on the memory to construct the conflict graph as a directed conflict graph.

9. The device of claim 6 , wherein the processor is configured to execute the instructions stored on the memory to perform the binary encoding method by,

grouping the bits of the first encoded data into the number of blocks having an equal number of bits in at least some of the blocks,

padding the one or more blocks with at least one ‘0’ to generate the padded blocks,

performing the determined number of shifting operations on the bits of the one or more padded blocks to generate the shifted blocks,

removing a last bit from the shifted blocks to generate the resultant blocks, and

combining the resultant blocks to generate the second encoded data.

10. The device of claim 6 , wherein the processor is configured to execute the instructions stored on the memory to perform the caching method further including

ranking the data files based on the determined popularities,

dividing the ranked data files into a first subset of data files and a second subset of data files based on a threshold value, the first subset including higher ranked data files than the second subset,

selecting a respective number of random packets for each data file of the first subset according to a respective rank, and

sending the selected random packets to the destination devices such that each destination device caches different random packets for each data file of the first subset.

Assignments (2)
CHANGE OF NAME Recorded Nov 14, 2018
From: ALCATEL-LUCENT USA INC.
To: NOKIA OF AMERICA CORPORATION
Reel/Frame 047513/0350 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2016
From: TULINO, ANTONIA; LLORCA, JAIME
To: ALCATEL-LUCENT USA INC.
Reel/Frame 037640/0567 →
Continuity (2)
Provisional Application 62110121 · Jan 30, 2015
Related Publication 20160226735A1 · Aug 4, 2016