IP Library › Granted Patent US 10,999,396
Granted Patent B2
US 10,999,396 · App. 15/557,275 · Granted May 4, 2021

Apparatus and method for caching data

Inventors: Johan Kölhi (Stockholm, SE); Michael Huber (Stockholm, SE); Andreas Ljunggren (Stockholm, SE); John Orre (Stockholm, SE); Robert Skog (Stockholm, SE)
Assignee: Telefonaktiebolaget LM Ericsson (Publ)
H04L67/2852H04L63/0428H04L63/166H04L67/2842H04L47/2483
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,999,396
App. No.
15/557,275
Granted
May 4, 2021
Kind
B2
Abstract

A method in a cache node ( 30 ) of a network comprises monitoring a secure data stream being received at the cache node from a server node, and detecting from one or more data chunks of the secure data stream that the secure data stream contains a data object that has been previously received and cached at the cache node, and sending a notification signal to the server node that the data object has been previously cached. The method may further comprise receiving one or more encryption header portions (e.g. TLS headers) from the server node, inserting a previously cached data chunk corresponding to each of the one or more encryption header portions into the data stream, and sending the data stream to a client device.

Claims (47)

1. A method in a cache node of a network, the method comprising:

monitoring, by the cache node, a secure data stream being received at the cache node from a server node;

detecting, by the cache node, from one or more data chunks of the secure data stream that the secure data stream contains a data object that has been previously received and cached at the cache node;

sending, by the cache node, a notification signal to the server node that the data object has been previously cached, wherein the notification signal further indicates number of remaining data chunks of the data object and identifiers of the remaining data chunks of the data object in the cache node;

receiving, by the cache node, one or more encryption header portions relating to each of the remaining data chunks of the data object from the server node; and

inserting, by the cache node, a previously cached data chunk corresponding to each of the one or more encryption header portions, relating to each of the remaining data chunks of the data object, into the secure data stream.

2. The method of claim 1 , further comprising:

sending the secure data stream to a client device.

3. The method of claim 1 , wherein each encryption header portion relates to a corresponding data chunk that has been previously cached by the cache node.

4. The method of claim 1 , wherein detecting whether the data object has been previously cached in the cache node comprises:

detecting that a data object flag is set; and

determining whether a file identifier indicated by the data object flag is already stored in the cache node.

5. The method of claim 4 , wherein the data object flag is used to identify the start of a data object and the end of a data object.

6. The method of claim 1 , wherein the one or more encryption header portions comprise transport layer security (TLS) header portions corresponding to a TLS layer.

7. The method of claim 4 , wherein the data object flag comprises a flag of a transport control protocol (TCP) header.

8. The method of claim 1 , wherein the method further comprises, as a result of detecting that the secure data stream being monitored does not relate to a data object that has been previously cached at the cache node,

storing one or more data chunks corresponding to the data object, without any corresponding encryption header portions, in addition to sending the secure data stream to a client device.

9. A method in a server node of a network, the method comprising:

streaming, by the server node, secure data relating to a data object via a cache node to a client device;

receiving, by the server node, a notification signal from the cache node, the notification signal indicating that the secure data being streamed comprises a data object that has previously been cached at the cache node, wherein the notification signal further indicates number of one or more remaining data chunks of the data object and identifiers of the one or more remaining data chunks of the data object in the cache node;

ceasing, by the server node, to stream the one or more remaining data chunks of the data object in response to receiving the notification signal; and

sending, by the server node, one or more encryption header portions relating to each of the one or more remaining data chunks of the data object to the cache node.

10. The method of claim 9 , wherein the method further comprises, after receiving the notification signal from the cache node, determining which encryption header portions relate to the one or more remaining data chunks of the data object, using one or more corresponding data chunk identifiers received from the cache node with the notification signal.

11. The method of claim 9 , further comprising:

receiving at a transport layer security (TLS) layer of the server node a file pointer relating to a data object to be sent;

determining whether the data object has been sent before; and

as a result of determining that the data object has not been sent before:

storing the data object and an associated key for the data object in a list of data objects;

sending the associated key to a client device;

turning off encryption; and

informing a transport control protocol (TCP) layer to signal that a new data object is being sent.

12. A cache node for a network, the cache node comprising a processor in communication with a memory storing instructions that when executed by the processor, cause the cache node to:

monitor a secure data stream being received at the cache node from a server node;

detect from one or more data chunks of the secure data stream that the secure data stream contains a data object that has been previously received and cached at the cache node;

send a notification signal to the server node that the data object has been previously cached, wherein the notification signal further indicates number of remaining data chunks of the data object and identifiers of the remaining data chunks of the data object in the cache node;

receive one or more encryption header portions relating to each of the remaining data chunks of the data object from the server node; and

insert a previously cached data chunk corresponding to each of the one or more encryption header portions into the secure data stream.

13. The cache node of claim 12 , wherein the instructions further cause the cache node to send the secure data stream to a client device.

14. A cache node adapted to perform the method of claim 3 .

15. A server node for a network, the server node comprising a processor in communication with a memory storing instructions that when executed by the processor, cause the server node to:

stream secure data relating to a data object via a cache node to a client device;

receive a notification signal from the cache node, the notification signal indicating that the secure data being streamed comprises a data object that has previously been cached at the cache node, wherein the notification signal further indicates number of one or more remaining data chunks of the data object and identifiers of the one or more remaining data chunks of the data object in the cache node; and

cease streaming the one or more remaining data chunks of the data object in response to receipt of the notification signal; and

send one or more encryption header portions relating to each of the one or more remaining data chunks of the data object to the cache node.

16. The server node of claim 15 , wherein the instructions further cause the server node to perform the method as defined in claim 9 .

17. A computer program product comprising a non-transitory computer readable medium storing a computer program configured, when run on a computer, to carry out the method of claim 1 .

18. A computer program product comprising a non-transitory computer readable medium storing a computer program configured, when run on a computer, to carry out the method of claim 9 .

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 6, 2018
From: HUBER, MICHAEL; KÖLHI, JOHAN; LJUNGGREN, ANDREAS; ORRE, JOHN; SKOG, ROBERT
To: TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
Reel/Frame 044843/0704 →
Continuity (1)
Related Publication 20180063275A1 · Mar 1, 2018