IP Library Granted Patent US 9,978,025
Granted Patent B2
US 9,978,025 · App. 13/847,814 · Granted May 22, 2018

Ordered-element naming for name-based packet forwarding

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 9,978,025
App. No.
13/847,814
Granted
May 22, 2018
Kind
B2
Abstract

A name-based content-forwarding system generates an ordered-element name for a content item, and can process an interest to identify and perform an action that satisfies the interest. To generate the ordered-element name, the system generates one or more fixed-length elements for a content item, such that each fixed-length element of the ordered-element name is mapped to the content item or to a context associated with the content item. The system then generates the ordered-element name to include the one or more fixed-length elements so that the name elements are ordered from a highest matching priority to a lowest matching priority. The system can also generate a packet that includes the ordered-element name for the content item, and sends the packet to a target location that corresponds to the ordered-element name.

Claims (137)

1. A computer-implemented method, comprising:

obtaining, by a computing device of a content-centric network, name-generating information associated with a content item or a context of the content item;

generating, by the computing device for the content item, two or more fixed-length elements that each is mapped to the content item or to a context associated with the content item, wherein generating a respective fixed-length element involves:

selecting at least a subset of the name-generating information; and

generating the respective fixed-length element based on the selected subset of the name-generating information;

determining an ordering for the two or more fixed-length elements from a highest-matching priority to a lowest-matching priority;

generating an ordered-element name that includes the two or more ordered fixed-length elements in the determined ordering;

generating a packet that includes the ordered-element name for the content item;

determining a target interface for the packet, which involves performing an exact-match lookup in a lookup table based on any fixed-length element of the ordered-element name, and selecting an interface associated with a matching fixed-length element with a highest-matching priority; and

sending the packet to a local application or to a network neighbor via the target interface.

2. The method of claim 1 , wherein determining the ordering involves:

determining a matching priority for a respective fixed-length element, wherein a matching priority for a respective fixed-length element is based on the corresponding name-generating information; and

determining the ordering, for the one or more fixed-length elements, from a highest matching priority to a lowest matching priority.

3. The method of claim 1 , wherein the name-generating information includes one or more of:

an ordered-element name associated with the content item;

hierarchically structured variable-length identifier (HSVLI) associated with the content item;

a filename associated with the content item;

structured information for the content item;

a universal resource identifier (URI) for the content item;

domain name system (DNS) information associated with the content item;

a timestamp associated with the content item;

a location associated with the content item;

an entity associated with the content item;

a portion of the content item;

data included in the content item;

information related to a content producer;

information related to a content creator;

information related to a content publisher;

information related to a content owner;

information related to a content requester;

information related to a content-consuming device;

information related to a user;

information related to a local physical environment;

information related to a runtime environment;

a keyword associated with content of the content item;

a keyword for a category associated with the content item;

a keyword for an organization associated with the content item;

a randomly generated number; and

information obtained from a user.

4. The method of claim 1 , wherein generating the respective fixed-length element involves one or more of:

deriving a fixed-length element using a predetermined function that takes as input the name-generating information for the content item;

deriving a fixed-length element using a predetermined function that takes as input the content item;

determining a fixed-length element based on other fixed-length elements;

determining a fixed-length element from other ordered-element names;

determining a fixed-length element from previous network events;

determining a fixed-length element by querying the network using the name-generating information as input;

computing a hash using the name-generating information for the content item as input; and

computing a hash using the content item as input.

5. The method of claim 1 , wherein the ordered-element name further includes one or more of:

a content type;

content author information;

name-generator information;

a termination flag for a corresponding fixed-length element, which indicates that an exact-match lookup for the corresponding fixed-length element satisfies an exact-match lookup for the content item;

a non-terminal flag for a corresponding fixed-length element, which indicates that an exact-match lookup for the corresponding fixed-length element identifies routing information for the content item, but does not satisfy an exact-match lookup for the content item;

an exclude flag for a corresponding fixed-length element, which indicates that the ordered-element name does not satisfy a match when an exact-match is identified for the corresponding fixed-length element;

network status information;

an error code;

an application-defined data field;

time information;

security information;

version information;

format information;

a parameter for performing an exact-match lookup operation; and

a name-generating information item, which was used to generate the ordered-element name.

6. The method of claim 1 , wherein generating the respective fixed-length element involves computing a fixed-length address from one or more elements included in an identifier, a filename, or metadata of the content item.

7. A computer-implemented method, comprising:

generating, by a computing device of a content-centric network, an ordered-element name for a content item, wherein the ordered-element name includes two or more fixed-length elements ordered from a highest priority to a lowest priority, wherein a respective fixed-length element is mapped to the content item or to a context associated with the content item, and wherein generating the respective fixed-length element involves:

selecting at least a subset of the name-generating information; and

generating the respective fixed-length element based on the selected subset of the name-generating information;

generating a packet that includes the ordered-element name for the content item, wherein the ordered-element name facilitates forwarding the packet based on an exact-match lookup on one or more of the fixed-length elements;

determining a packet type for the packet;

determining a target location for the packet, which involves performing an exact-match lookup in a lookup table based on any fixed-length element of the ordered-element name, and selecting a location associated with a matching fixed-length element with a highest-matching priority;

sending the packet to the determined target location.

8. The method of claim 7 , wherein the target location includes one or more of:

a data repository within the local computing device;

an application executed by the local computing device;

a remote computing device; and

an application executed by the remote computing device.

9. The method of claim 7 , wherein the packet type includes at least one of:

a data packet;

an interest packet; and

a control packet.

10. The method of claim 7 , further comprising:

maintaining a first data repository, which maps a fixed-length element to an interest packet and/or to one or more remote devices, to determine when a corresponding packet needs to be sent to a remote device; and

maintaining a second repository, which maps a respective packet to one or more remote devices, to keep track of when a packet has been sent to a remote device.

11. The method of claim 7 , further comprising:

determining network-address information for the computing device; and

generating the packet to include the network-address information.

12. A computer-implemented method, comprising:

receiving, by a computing device of a content-centric network, a packet which includes an ordered-element name for a content item, wherein the ordered-element name includes two or more fixed-length elements ordered from a highest priority to a lowest priority, and wherein a respective fixed-length element is mapped to the content item or to a context associated with the content item;

determining a packet type for the received packet;

performing an exact-match lookup operation in a lookup table, based on the packet type and using the ordered-element name's fixed-length elements as input, to determine a packet-processing operation for the packet that corresponds to a matching fixed-length element with a highest priority of the packet's ordered-element name; and

performing the packet-processing operation to process the received packet.

13. The method of claim 12 , wherein the packet type includes at least one of:

a data packet;

an interest packet; and

a control packet.

14. The method of claim 12 , wherein determining the packet-processing operation involves:

determining a target packet-processing operation corresponding to the packet type; and

performing a target-device-lookup operation, based on the packet type, to identify a target computing device that is to perform the target packet-processing operation.

15. The method of claim 14 , wherein performing the target-device-lookup operation involves one or more of:

performing an exact-match lookup operation based on the packet type;

performing an exact-match lookup operation based on the ordered-element name;

performing a wildcard-lookup operation based on the packet type; and

performing a wildcard-lookup operation based on the ordered-element name.

16. The method of claim 14 , wherein the target computing device is a remote computing device; and

wherein the packet-processing operation involves forwarding the packet to the remote computing device.

17. The method of claim 16 , further comprising storing the packet in a data structure which maps a respective fixed-length element of the packet to the packet.

18. The method of claim 14 , wherein the target computing device is the local computing device; and

wherein performing the packet-processing operation involves:

obtaining, from a local repository, a stored packet corresponding to the ordered-element name; and

sending the stored packet to a remote computing device from which the local computing device received the original packet.

19. The method of claim 14 , wherein the target computing device is the local computing device; and

wherein performing the packet-processing operation involves:

generating a packet based on information from the received packet; and

sending the generated packet to a remote computing device from which the local computing device received the original packet.

20. The method of claim 19 , wherein generating the packet involves:

determining data-generating parameters based on one or more of:

a fixed-length element of the original packet's ordered-element name;

an attribute indicated by the ordered-element name;

metadata indicated by the original packet or the ordered-element name; and

a data object stored in the original packet; and

generating the response packet based on the determined data-generating parameters.

21. The method of claim 14 , wherein the target computing device is the local computing device; and

wherein performing the packet-processing operation involves providing the packet to an application executing on the computing device to determine an application-specific operation for processing the packet.

22. A computer-implemented method, comprising:

detecting, by a computing device of a content-centric network, a content item to advertise to other computing devices;

obtaining name-generating information associated with the content item or a context of the content item;

generating, by the computing device for the content item, two or more fixed-length elements that each is mapped to the content item or to the context associated with the content item, wherein generating a respective fixed-length element involves:

selecting at least a subset of the name-generating information; and

generating the respective fixed-length element based on the selected subset of the name-generating information;

generating an advertisement for the content item, wherein the advertisement indicates the two or more fixed-length elements to advertise the presence of the content item; and

sending the advertisement to a neighboring node of the content-centric network, which allows the neighboring node to use any of the two or more fixed-length elements to forward an interest associated with the content item to the local computing device via the content-centric network.

23. The method of claim 22 , wherein the content item includes one or more of:

a content item stored within a local repository of the local computing device;

a content item which is to be generated by the local computing device; and

a content item which is hosted by a remote computing device.

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 Mar 20, 2013
From: SOLIS, IGNACIO
To: PALO ALTO RESEARCH CENTER INCORPORATED
Reel/Frame 030053/0288 →