IP Library Granted Patent US 10,075,401
Granted Patent B2
US 10,075,401 · App. 14/662,101 · Granted Sep 11, 2018

Pending interest table behavior

Inventors: Marc E. Mosko (Santa Cruz, CA); Ignacio Solis (South San Francisco, CA); Jose J. Garcia-Luna-Aceves (San Mateo, CA)
Assignee: Cisco Technology, Inc.
H04L51/16H04L51/14H04L67/2833H04L67/327H04L69/28
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,075,401
App. No.
14/662,101
Granted
Sep 11, 2018
Kind
B2
Abstract

One embodiment provides a system that facilitates efficient aggregation of multiple interest messages for the same content from multiple predecessors. During operation, an intermediate node receives a first interest message from a predecessor node. The first interest indicates a name for a content object and a lifetime associated with the first interest. The intermediate node identifies an entry in a pending interest table that corresponds to the first interest and determines that the entry has not expired. The intermediate node determines whether a second interest message which indicates a same content object name as the first interest message has been received from the predecessor node. If so, it forwards the first interest. If not, it adds information associated with the predecessor node to the entry. The intermediate node determines a predecessor lifetime associated with the entry and also determines a maximum lifetime associated with the entry.

Claims (83)

1. A computer-implemented method for forwarding packets, the method comprising:

receiving, by an intermediate node, a first interest message from a predecessor node, wherein the first interest message indicates a name for a content object and a lifetime associated with the first interest message, wherein the lifetime associated with the first interest message corresponds to a length of time the first interest message is valid;

determining whether an entry in a pending interest table that corresponds to the first interest message exists, when the entry exists, the entry indicates a maximum lifetime and predecessor information for the predecessor node, wherein the predecessor information includes a predecessor lifetime;

responsive to determining that the entry exists and is not expired, wherein the entry is not expired when expiration of the maximum lifetime occurs after a current time:

responsive to determining that a second interest message which indicates a same content object name as the first interest message has been received after the first interest message from the predecessor node, forwarding the first interest message;

determining an updated predecessor lifetime associated with the entry, wherein the updated predecessor lifetime associated with the entry corresponds to a length of time an interest indicating the content object from the predecessor node is valid;

responsive to determining that the entry does not exist:

adding information included in the first interest message to the pending interest table in a new entry; and

determining the maximum lifetime associated with the entry or the new entry, wherein the maximum lifetime associated with the entry or the new entry corresponds to a longest predecessor lifetime associated with the entry or the new entry.

2. The method of claim 1 , wherein the lifetime associated with the first interest message is based on one or more of:

a round trip time; and

a subscription time.

3. The method of claim 1 , wherein an entry in the pending interest table indicates a name; and wherein the predecessor information further includes a predecessor identifier.

4. The method of claim 1 , wherein determining the updated predecessor lifetime associated with the entry further comprises:

determining a first expiration time based on a current time and the lifetime of the first interest message; and

responsive to determining that the first expiration time occurs after an expiration of the predecessor lifetime, setting the updated predecessor lifetime associated with the entry to the first expiration time.

5. The method of claim 1 , wherein determining the maximum lifetime associated with the entry further comprises:

responsive to determining that an expiration of the updated predecessor lifetime associated with the entry occurs after an expiration of the maximum lifetime, setting the maximum lifetime associated with the entry to the updated predecessor lifetime.

6. The method of claim 1 , further comprising:

receiving a packet that corresponds to a content object corresponding to a matching entry in the pending interest table;

determining a valid predecessor node based on the matching entry;

forwarding the content object to the valid predecessor node based on the predecessor information;

removing the predecessor information from the matching entry; and

responsive to determining that no predecessor information remains for the matching entry, removing the matching entry from the pending interest table.

7. The method of claim 6 , wherein determining the valid predecessor node comprises:

selecting a predecessor node with an expiration of the updated predecessor lifetime that occurs after a current time.

8. The method of claim 1 , wherein the lifetime associated with the first interest message is included as part of signed information of the first interest message.

9. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method, the method comprising:

receiving, by an intermediate node, a first interest message from a predecessor node, wherein the first interest message indicates a name for a content object and a lifetime associated with the first interest message, wherein the lifetime associated with the first interest message corresponds to a length of time the first interest message is valid;

determining whether an entry in a pending interest table that corresponds to the first interest message exists, when the entry exists, the entry indicates a maximum lifetime and predecessor information for the predecessor node, wherein the predecessor information includes a predecessor lifetime;

responsive to determining that the entry exists and is not expired, wherein the entry is not expired when expiration of the maximum lifetime occurs after a current time:

responsive to determining that a second interest message which indicates a same content object name as the first interest message has been received after the first interest message from the predecessor node, forwarding the first interest message;

determining an updated predecessor lifetime associated with the entry, wherein the updated predecessor lifetime associated with the entry corresponds to a length of time an interest indicating the content object from the predecessor node is valid;

responsive to determining that the entry does not exist:

adding information included in the first interest message to the pending interest table in a new entry; and

determining the maximum lifetime associated with the entry or the new entry, wherein the maximum lifetime associated with the entry or the new entry corresponds to a longest predecessor lifetime associated with the entry or the new entry.

10. The storage medium of claim 9 , wherein the lifetime associated with the first interest message is based on one or more of:

a round trip time; and

a subscription time.

11. The storage medium of claim 9 , wherein an entry in the pending interest table indicates a name; and wherein the predecessor information further includes a predecessor identifier.

12. The storage medium of claim 9 , wherein determining the updated predecessor lifetime associated with the entry further comprises:

determining a first expiration time based on a current time and the lifetime of the first interest message; and

responsive to determining that the first expiration time occurs after an expiration of the updated predecessor lifetime, setting the updated predecessor lifetime associated with the entry to the first expiration time.

13. The storage medium of claim 9 , wherein determining the maximum lifetime associated with the entry further comprises:

responsive to determining that an expiration of the updated predecessor lifetime associated with the entry occurs after an expiration of the maximum lifetime, setting the maximum lifetime associated with the entry to the updated predecessor lifetime.

14. The storage medium of claim 9 , wherein the method further comprises:

receiving a packet that corresponds to a content object corresponding to a matching entry in the pending interest table;

determining a valid predecessor node based on the matching entry;

forwarding the content object to the valid predecessor node based on the predecessor information;

removing the predecessor information from the matching entry; and

responsive to determining that no predecessor information remains for the matching entry, removing the matching entry from the pending interest table.

15. The storage medium of claim 14 , wherein determining the valid predecessor node comprises:

selecting a predecessor node with an expiration of the predecessor lifetime that occurs after a current time.

16. The non-transitory computer-readable storage medium of claim 9 , wherein the lifetime associated with the first interest message is included as part of signed information of the first interest message.

17. A computer system for facilitating forwarding of packets, the system comprising:

a processor; and

a storage device storing instructions that when executed by the processor cause the processor to perform a method, the method comprising:

receiving, by an intermediate node, a first interest message from a predecessor node, wherein the first interest message indicates a name for a content object and a lifetime associated with the first interest message, wherein the lifetime associated with the first interest message corresponds to a length of time the first interest message is valid;

determining whether an entry in a pending interest table that corresponds to the first interest message exists, when the entry exists, the entry indicates a maximum lifetime and predecessor information for the predecessor node, wherein the predecessor information includes a predecessor lifetime;

responsive to determining that the entry exists and is not expired:

responsive to determining that a second interest message which indicates a same content object name as the first interest message has been received after the first interest message from the predecessor node, forwarding the first interest message;

determining an updated predecessor lifetime associated with the entry, wherein the updated predecessor lifetime associated with the entry corresponds to a length of time an interest indicating the content object from the predecessor node is valid;

responsive to determining that the entry does not exist:

adding information included in the first interest message to the pending interest table in a new entry; and

determining the maximum lifetime associated with the entry or the new entry, wherein the maximum lifetime associated with the entry or the new entry corresponds to a longest predecessor lifetime associated with the entry or the new entry.

18. The computer system of claim 17 , wherein the lifetime associated with the first interest message is based on one or more of:

a round trip time; and

a subscription time.

19. The computer system of claim 17 , wherein an entry in the pending interest table indicates a name; and wherein the predecessor information further includes a predecessor identifier.

20. The computer system of claim 17 , wherein determining the updated predecessor lifetime associated with the entry further comprises:

determining a first expiration time based on a current time and the lifetime of the first interest message; and

responsive to determining that the first expiration time occurs after an expiration of the updated predecessor lifetime, setting the updated predecessor lifetime associated with the entry to the first expiration time.

21. The computer system of claim 17 , wherein determining the maximum lifetime associated with the entry further comprises:

responsive to determining that an expiration of the updated predecessor lifetime associated with the entry occurs after an expiration of the maximum lifetime, setting the maximum lifetime associated with the entry to the updated predecessor lifetime.

22. The computer system of claim 17 , wherein the method further comprises:

receiving a packet that corresponds to a content object corresponding to a matching entry in the pending interest table;

determining a valid predecessor node based on the matching entry;

forwarding the content object to the valid predecessor node based on the predecessor information;

removing the predecessor information from the matching entry; and

responsive to determining that no predecessor information remains for the matching entry, removing the matching entry from the pending interest table.

23. The computer system of claim 22 , wherein determining the valid predecessor node comprises:

selecting a predecessor node with an expiration of the predecessor lifetime that occurs after a current time.

24. The system of claim 17 , wherein the lifetime associated with the first interest message is included as part of signed information of the first interest message.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2017
From: PALO ALTO RESEARCH CENTER INCORPORATED
To: CISCO SYSTEMS, INC.
Reel/Frame 041714/0373 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2017
From: CISCO SYSTEMS, INC.
To: CISCO TECHNOLOGY, INC.
Reel/Frame 041715/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2015
From: MOSKO, MARC E.; SOLIS, IGNACIO; GARCIA-LUNA-ACEVES, JOSE J.
To: PALO ALTO RESEARCH CENTER INCORPORATED
Reel/Frame 035407/0587 →
Continuity (1)
Related Publication 20160277340A1 · Sep 22, 2016