Traitement en cours

Veuillez attendre...

Paramétrages

Paramétrages

Aller à Demande

1. WO2020107768 - PRISE EN CHARGE COLLABORATIVE D'UNE RÉSOLUTION DE NOM-À-LOCALISATEUR DANS UN RÉSEAU PERMETTANT UN RÉSEAUTAGE CENTRÉ SUR L'INFORMATION

Document

Description

Title of Invention 0001   0002   0003   0004   0005   0006   0007   0008   0009   0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102   0103   0104   0105   0106  

Claims

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24  

Drawings

1   2   3   4   5   6   7   8A 8B   9   10  

Description

Title of Invention : COLLABORATIVE IN-NETWORK NAME-TO-LOCATOR RESOLUTION SUPPORT FOR INFORMATION CENTRIC NETWORKING

[0001]
CROSS REFERENCE TO RELATED APPLICATIONS
[0002]
This application claims priority to U.S. provisional patent application Serial No. 62/771,490, filed on November 26, 2018, and entitled “COLLABORATIVE IN-NETWORK NAME-TO-LOCATOR RESOLUTION SUPPORT for INFORMATION CENTRIC NETWORKING, ” which is incorporated herein by reference as if reproduced in its entirety.

TECHNICAL FIELD

[0003]
The present application relates to Information Centric Networking (ICN) ; and more particularly to name-to-locator resolution in ICN.

BACKGROUND

[0004]
Recently, Information Centric Networking (ICN) has been proposed as an approach to evolve the Internet infrastructure from the existing host-centric design to a data-centric architecture. In ICN, network communications are accomplished by requesting named content as opposed to sending packets to destination addresses. Examples of proposed ICN architectures include, but are not limited to, Named Data Networking (NDN) , Content Centric Networking (CCN) , Content Oriented Networking (CON) , Data Oriented Networking (DON) , and Content Based Networking (CBN) .
[0005]
Using CCN as an example, a client node requests data by sending an “interest packet” to the network. The interest packet includes the name or prefix of the data that should be retrieved. Routers in the network then forward the interest packet, using the name of the interest, for further routing towards available data and data replicas. Once the interest packet reaches a cache (or “content store” ) holding a match for the interest, a content return packet (e.g., "data packet" ) is sent back. The content return packet generally retraces the path followed by the interest packet for reception by the client node which requested the content.
[0006]
SUMMARY
[0007]
The present disclosure provides various aspects that may be employed with one or more of the embodiments. These aspects may be combined with one another singularly, in various combinations, or in total. According to a first embodiment of the present disclosure, a method is provided for performing name-to-locator resolution in an Information Centric Network (ICN) network. According to the method, a first edge router of a plurality of edge routers is assigned a subset of a namespace managed by the plurality of edge routers. The first edge router maintains a resolution cache for storing namespace-to-locator mapping information. The resolution cache includes a long-term cache for storing mapping information relating to the subset of the namespace, and a short-term cache for storing mapping information relating to non-assigned namespace. In accordance with the method, the first edge router receives an interest packet including a content name for requested content and, in response, performs a locator resolution process for the interest packet.
[0008]
According to the method, the locator resolution process includes determining whether the content name is within the subset of the namespace and, in response to determining that the content name is not within the subset of the namespace, further determining whether the short-term cache includes mapping information relating to the content name. In response to determining that the short-term cache does not include mapping information relating to the content name, the method further includes setting a resolution identifier within the interest packet to indicate a resolve request or a redirect request, and forwarding the interest packet, including the resolution identifier, for processing by a second edge router of the plurality of edge routers in accordance with the resolution identifier.
[0009]
According to a first aspect of the first embodiment, setting a resolution identifier within the interest packet includes determining that the content name is within a second subset of the namespace managed by the plurality of edge routers and that the second subset of the namespace is assigned to the second edge router. In response, the method includes setting the resolution identifier to indicate a redirect request.
[0010]
According to a second aspect of the first embodiment, the locator resolution process further includes receiving, by the first edge router, a response to a forwarded interest packet, wherein the response includes a resolution identifier indicating resolution of a redirect request. With this aspect, when the response further includes a received locator, the method includes storing a corresponding locator mapping in the short-term cache, inserting the received locator as a forwarding label within the interest packet, and forwarding the interest packet in accordance with corresponding information of a Forwarding Information Base (FIB) of the first edge router. When the response further includes both a received locator and the requested content, the method includes storing a corresponding name-locator mapping in the short-term cache and forwarding the requested content to a requesting entity.
[0011]
According to a third aspect of the first embodiment, the locator resolution process further includes receiving, by the first edge router, a response to a forwarded interest packet, the response including a received locator and a resolution identifier indicating resolution of a resolve request, storing a corresponding locator mapping in the long-term cache, inserting the received locator as a forwarding label within the interest packet, and forwarding the interest packet in accordance with corresponding information of a Forwarding Information Base (FIB) of the first edge router.
[0012]
According to a fourth aspect of the first embodiment, the locator resolution process further includes in response to determining that the content name is within the subset of the namespace, further determining whether the long-term cache includes mapping information relating to the content name, the mapping information comprising an associated locator. With this aspect, the method further includes in response to determining that the long-term cache does not include mapping information relating to the content name, forwarding the interest packet to a resolution server. In response to determining that the long-term cache includes mapping information relating to the content name, the method further includes inserting the associated locator as a forwarding label within the interest packet and forwarding the interest packet in accordance with corresponding information of a Forwarding Information Base (FIB) of the first edge router.
[0013]
According to a fifth aspect of the first embodiment, the method further includes determining, by the first edge router, a resolution-based activity metric information of the first edge router, receiving additional resolution-based activity metric information from one or more additional edge routers of the plurality of edge routers, comparing the resolution-based activity metric information of the first edge router to the additional resolution-based activity metric information and identifying one or more additional edge routers of the plurality of edge routers having relatively greater resources available for resolution operations than the first edge router. In this fifth aspect, the method additionally includes reassigning at least a portion of the subset of the namespace to the one or more additional edge routers of the plurality of edge routers and correspondingly updating a namespace mapping database maintained by the first edge router.
[0014]
According to a sixth aspect of the first embodiment, receiving additional resolution-based activity metric information from one or more additional edge routers of the plurality of edge routers includes receiving the additional resolution-based activity metric information on a periodic basis. According to a seventh aspect of the first embodiment, reassigning at least a portion of the subset of the namespace includes performing a hashing function on the subset of the namespace to generate further subsets of the namespace.
[0015]
According to an eighth aspect of the first embodiment, the locator resolution process further includes in response to determining that the content name is within the subset of the namespace, further determining whether a resolution-based activity metric of the first edge router compares unfavorably to a threshold. In response to determining that the resolution- based activity metric of the first edge router compares unfavorably to a threshold, with this aspect the resolution identifier within the interest packet is set to indicate a resolve request and the interest packet, including the resolution identifier, is forwarded for processing by another edge router of the plurality of edge routers.
[0016]
According to a ninth aspect of the first embodiment, the method further includes replacing mapping information stored by the resolution cache with updated mapping information received by the first edge router. With this ninth aspect, the mapping information stored by the short-term cache is replaced more frequently than mapping information stored by the long-term cache.
[0017]
A second embodiment of the present disclosure relates to a network device for performing name-to-locator resolution in an Information Centric Networking (ICN) network. The network device includes at least one network interface, a memory storage comprising instructions, and one or more processors in communication with the at least one network interface and the memory storage. The one or more processors execute the instructions to determine an assigned subset of a namespace managed by a plurality of network devices including the network device. The network device of the second embodiment further executes the instructions to maintain a resolution cache for storing namespace-to-locator mapping information. The resolution cache includes both a long-term cache for storing mapping information relating to the assigned subset of the namespace and a short-term cache for storing mapping information relating to non-assigned namespace. According to this embodiment, the network device receives, via the at least one network interface, an interest packet including a content name for requested content, and determines whether the content name is within the assigned subset of the namespace.
[0018]
In response to determining that the content name is not within the subset of the namespace, the network device further determines whether the short-term cache includes mapping information relating to the content name. In response to determining that the short-term cache does not include mapping information relating to the content name, the network device of the second embodiment sets a resolution identifier within the interest packet to indicate a resolve request or a redirect request, and forwards the interest packet, including the resolution identifier, via the at least one network interface for processing by a second edge router of the plurality of edge routers in accordance with the resolution identifier.
[0019]
The second embodiment also includes a plurality of aspects that may apply singularly or in combination. According to a first aspect of the second embodiment, the one or more processors of the network device further execute the instructions to determine that the content name is within a second subset of the namespace managed by the plurality of network devices. With this first aspect, in response to further determining that the second subset of the namespace is assigned to the second network device, the network device sets the resolution identifier to indicate the redirect request.
[0020]
According to a second aspect of the second embodiment, the one or more processors of the network device further execute the instructions to receive, via the at least one network interface, a response to a forwarded interest packet, wherein the response includes a resolution identifier indicating resolution of a redirect request. With this aspect, when the response further includes a received locator, the network device stores a corresponding locator mapping in the short-term cache, inserts the received locator as a forwarding label within the interest packet, and forwards the interest packet, via the at least one network interface, in accordance with corresponding information of a Forwarding Information Base (FIB) of the network device. When the response further includes both a received locator and the requested content, the network device stores a corresponding name-locator mapping in the short-term cache and forwards the requested content to a requesting entity via the at least one network interface.
[0021]
According to a third aspect of the second embodiment, the one or more processors of the network device further execute the instructions to receive, via the at least one network interface, a response to a forwarded interest packet, wherein the response includes a received locator and a resolution identifier indicating resolution of a resolve request. With this third aspect, the network device further stores a corresponding locator mapping in the long-term cache, inserts the received locator as a forwarding label within the interest packet, and forwards the interest packet, via the at least one network interface, in accordance with corresponding information of a Forwarding Information Base (FIB) of the network device.
[0022]
According to a fourth aspect of the second embodiment, the one or more processors of the network device further execute the instructions to determine that the content name is within the subset of the namespace, and further determine whether the long-term cache includes mapping information relating to the content name, the mapping information comprising an associated locator. With this aspect, in response to determining that the long-term cache does not include mapping information relating to the content name, the network device forwards, via the at least one network interface, the interest packet to a resolution server. In response to determining that the long-term cache includes mapping information relating to the content name, the network device inserts the associated locator as a forwarding label within the interest packet and forwards, via the at least one network interface, the interest packet in accordance with corresponding information of a Forwarding Information Base (FIB) of the network device.
[0023]
According to a fifth aspect of the second embodiment, the one or more processors of the network device further execute the instructions to determine a resolution-based activity metric information of the network device and receive additional resolution-based activity metric information from one or more additional network devices of the plurality of network devices. The network device of this aspect compares the resolution-based activity metric information of the network device to the additional resolution-based activity metric information and identifies one or more additional network devices of the plurality of network devices having relatively greater resources available for resolution operations than the network device. In this fifth aspect, the network device additionally reassigns at least a portion of the subset of the namespace to the one or more additional network devices of the plurality of network devices and correspondingly updates a namespace mapping database maintained by the network device.
[0024]
According to a sixth aspect of the second embodiment, in response to determining that the content name is within the assigned subset of the namespace, the one or more processors of the network device further execute the instructions to determine whether a resolution-based activity metric of the network device compares unfavorably to a threshold and, in response to determining that the resolution-based activity metric of the network device compares unfavorably to a threshold, set the resolution identifier within the interest packet to indicate a resolve request. With this sixth aspect, the network device forwards, via the at least one network interface, the interest packet for processing by another network device of the plurality of network devices.
[0025]
According to a seventh aspect of the second embodiment, the one or more processors of the network device further execute the instructions to replace mapping information stored by the resolution cache with updated mapping information received by the network device, wherein mapping information stored by the short-term cache is replaced more frequently than mapping information stored by the long-term cache.
[0026]
A third embodiment is directed to a non-transitory computer-readable media storing computer instructions for mapping names to locators in an Information Centric Networking (ICN) network. In this embodiment, when the instructions are executed by one or more processors of a first edge router of a plurality of edge routers of the ICN network, the instructions cause the one or more processors to determine an assigned subset of a namespace managed by the first edge router, wherein the first edge router maintains a resolution cache for storing namespace-to-locator mapping information, the resolution cache including a long-term cache for storing mapping information relating to the assigned subset of the namespace, and a short-term cache for storing mapping information relating to non-assigned namespace. According to this third embodiment, the one or more processors further receive an interest packet including a content name for requested content and perform a locator resolution process that includes determining whether the content name is within the assigned subset of the namespace. In response to determining that the content name is not within the assigned subset of the namespace, the one or more processors determine whether the short-term cache includes mapping information relating to the content name. If not, a resolution identifier within the interest packet is set to indicate a resolve request or a redirect request, and the interest packet, including the resolution identifier, is forwarded for processing by a second edge router of the plurality of edge routers in accordance with the resolution identifier.
[0027]
The third embodiment includes various aspects that may be applied singularly or in combination. According to a first aspect of the third embodiment, the instructions further cause the one or more processors to perform the steps of determining that the content name is within a second subset of the namespace managed by the plurality of edge routers and is assigned to the second edge router and, in response, setting the resolution identifier to indicate the redirect request.
[0028]
According to a second aspect of the third embodiment, the instructions further cause the one or more processors to perform the step of receiving, by the first edge router, a response to a forwarded interest packet, wherein the response includes a resolution identifier indicating resolution of a redirect request. In this second aspect, when the response further includes a received locator, the steps also include storing a corresponding locator mapping in the short-term cache, inserting the received locator as a forwarding label within the interest packet, and forwarding the interest packet in accordance with corresponding information of a Forwarding Information Base (FIB) of the first edge router. When the response includes both a received locator and the requested content, the steps further include storing a corresponding name-locator mapping in the short-term cache and forwarding the requested content to a requesting entity.
[0029]
According to a third aspect of the third embodiment, the instructions further cause the one or more processors to perform the steps of receiving, by the first edge router, a response to a forwarded interest packet, wherein the response includes a received locator and a resolution identifier indicating resolution of a resolve request. In this third aspect, the steps further include storing a corresponding locator mapping in the long-term cache, inserting the received locator as a forwarding label within the interest packet, and forwarding the interest packet in accordance with corresponding information of a Forwarding Information Base (FIB) of the first edge router.
[0030]
According to a fourth aspect of the third embodiment, the instructions further cause the one or more processors to perform the steps of determining a resolution-based activity metric information of the first edge router, receiving additional resolution-based activity metric information from one or more additional edge routers of the plurality of edge routers, comparing the resolution-based activity metric information of the first edge router to the additional resolution-based activity metric information and identifying one or more additional edge routers of the plurality of edge routers having relatively greater resources available for resolution operations than the first edge router. In this fourth aspect, the steps additionally include reassigning at least a portion of the subset of the namespace to the one or more additional edge routers of the plurality of edge routers and correspondingly updating a namespace mapping database maintained by the first edge router.
[0031]
According to a fifth aspect of the third embodiment in response to determining that the content name is within the assigned subset of the namespace, the instructions further cause the one or more processors to perform the steps of further determining whether a resolution-based activity metric of the first edge router compares unfavorably to a threshold and, if so, setting the resolution identifier within the interest packet to indicate a resolve request and forwarding the interest packet, including the resolution identifier, for processing by another edge router of the plurality of edge routers.
[0032]
By utilizing a novel two-level resolution cache design and multi-bit resolution identifier field, the disclosed embodiments allow a resolution process to be seamlessly transferred between edge routers for purposes of improving resource utilization in an ICN network. These and other features will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings and claims.

BRIEF DESCRIPTION OF THE DRAWINGS

[0033]
For a more complete understanding of this disclosure, reference is now made to the following brief description, taken in connection with the accompanying drawings and detailed description, wherein like reference numerals represent like parts.
[0034]
FIG. 1 is a schematic diagram of a network environment that implements information centric networking in accordance an embodiment of the present disclosure.
[0035]
FIG. 2 is a flow diagram illustrating examples of name-to-locator resolution operations utilizing resolution caches in accordance with an embodiment of the present disclosure.
[0036]
FIG. 3 is a functional block diagram of an edge router in accordance with an embodiment of the present disclosure.
[0037]
FIG. 4 is a logic diagram illustrating examples of name-to-locator resolution in accordance with an embodiment of the present disclosure.
[0038]
FIG. 5 is a logic diagram illustrating further examples of name-to-locator resolution in accordance with an embodiment of the present disclosure.
[0039]
FIG. 6 is a flow diagram illustrating communications between edge routers in accordance with an embodiment of the present disclosure.
[0040]
FIG. 7 is a logic diagram illustrating reassignment of managed namespace in accordance with an embodiment of the present disclosure.
[0041]
FIG. 8A illustrates an example of an assigned namespace map in accordance with an embodiment of the present disclosure.
[0042]
FIG. 8B illustrates an example of a hierarchical assigned namespace map in accordance with an embodiment of the present disclosure.
[0043]
FIG. 9 illustrates an example of an ICN interest/data packet including a resolution identifier field in accordance with an embodiment of the present disclosure.
[0044]
FIG. 10 is a block diagram representation of an edge router in accordance with an embodiment of the present disclosure.

DETAILED DESCRIPTION

[0045]
It should be understood at the outset that, although illustrative implementations of one or more embodiments are provided below, the disclosed systems and/or methods may be implemented using any number of techniques, whether currently known or in existence. The disclosure should in no way be limited to the illustrative implementations, drawings, and techniques illustrated below, including the exemplary designs and implementations illustrated and described herein, but may be modified within the scope of the appended claims along with their full scope of equivalents.
[0046]
Unlike conventional TCP/IP host-centric networking, ICN uses names of information (content) to identify the information, rather than using associated IP addresses. In ICN, the names used for content requests can be hierarchical or flat. In many scenarios, hierarchical names can be expected to be very long, have varying formats, and use location-independent identifiers. In a generic example, a hierarchical name including contiguous name components ordered from a most general level to a most specific level might take the form: /net/named-data/wp-content/uploads/2018/01/2018-paper1. pdf. Routing based on such names can be performed directly, using name-based forwarding with resolution integrated within the routing, or indirectly, using locator-based forwarding in conjunction with an explicit name resolution system.
[0047]
In general, edge routers resolve requests without locators to one or more locators through a resolution system. Using long hierarchical names for edge resolution and packet forwarding, however, can give rise to a number of issues. For instance, performing lookup operations such as longest-prefix matching based lookup operations on names having a high number of components can introduce a heavy processing burden on ICN forwarders (e.g., ICN routers or other ICN nodes that implement stateful forwarding) . Likewise, if a large number of incoming requests trigger an initial resolution to a locator (e.g., a local/global identifier, such as a domain identifier, border router, or service point) , the associated processing can negatively impact request forwarding performance as more requests are queued pending resolution, particularly if resolutions are handled locally and not forwarded to a name resolver node. However, handling resolutions locally may help avoid overloading of the name resolver node. For instance, if all requests require resolution mapping, supporting xTbps forwarding capacity may require support for resolving >100M requests/second, which could become problematic with the use of longer hierarchical names.
[0048]
From the point of view of a consumer, performing name-to-locator resolution can be host-based, network-based, or a hybrid thereof. Under host-based resolution, a consumer makes an explicit resolution request on the relevant namespace to retrieve an identifier before making a request for content under that namespace. Subsequent request messages can include the identifier as part of the header to aid with resolution if local resolution fails. Under network-based resolution, which is a primary focus of the embodiments described herein, the consumer is transparent to the resolution process by assuming the presence of resolution mapping within the network when forwarding request messages directly to the network. The possibility of batch requests (multiple requests within a resolution timeframe) from a consumer may further introduce issues at the router responsible for resolution, however, as resolution operations can potentially compete with forwarding resources.
[0049]
To address such issues, novel content-based communication infrastructures and methodologies are introduced below for performing name-to-locator resolution. The mechanisms described herein enable the resolution process to be separated from packet forwarding. In addition, router resources are dynamically dedicated to the resolution process, resulting in improved packet forwarding performance and in-band resolution capabilities.
[0050]
Referring now to FIG. 1, a schematic diagram of a network environment 100 that implements information centric networking (ICN) in accordance with an embodiment of the present disclosure is shown. The network environment 100 includes an ICN network 102, which services a particular domain. The ICN network 102 of the illustrated embodiment includes a plurality of ICN edge routers (also referred to herein as “ERs” in the plural and “ER” in the singular) , including ER 104, ER 106, and ER 108. The ERs 104-108 communicate between themselves and with a resolution server 110 via a resolution mesh 112 of the given domain. The ICN network 102 of this embodiment further includes a border router 122 and four ICN routers 114, 116, 118 and 120, each of which can function as conventional ICN forwarders (e.g., ICN routers utilizing locator-based forwarding) . Each of the illustrated routers may include storage to cache content as the content propagates through the ICN network 102. In this embodiment, ER 104 may receive request messages from an end host 126 (e.g., a client device) via an access node 124, while ER 106 may receive request messages from an end host 130 via an access node 128. As described more fully in conjunction with FIG. 3, each ER can maintain a Forwarding Information Base (FIB) , which contains a table relating names/name prefixes to interfaces, and a Pending Interest Table (PIT) for recording routing decisions. While three ERs 104-108 and four ICN routers 114-120 are shown in FIG. 1, the principles described herein may be applied to any number of ERs and ICN routers.
[0051]
The illustrated ICN network 102 supports both centralized and decentralized global name-to-locator resolution. For example, the resolution server 110 of the ICN network 102 may communicate with a higher level resolution server 132 that further supports another ICN network 134 (or domain of a hierarchal namespace) via resolution server 136. As used herein, the term “ICN” can refer to either information centric networking or an information centric network, depending on the context.
[0052]
As described more fully below, a two-level dedicated resolution caching design is implemented at the plurality of ERs 104-108 of a given network domain. In addition, a novel multi-bit resolution identifier is included within request messages (e.g., interest packets) between the ERs 104-108 to enable a resolution process to be seamlessly transferred between the ERs for purposes of improving resource utilization in a network. For example, an ER that does not have sufficient resources to efficiently handle resolution of a request message (e.g., limited cache availability) can set an appropriate resolution identifier and forward the request message to a neighboring edge router, thereby improving distribution of resolution processing within the network. Further, by distributing a managed namespace optimally to the ERs 104-108, the described embodiments facilitate in-band resolution, allowing request messages to be handled immediately and without buffering while resolution processes are completed. In certain embodiments, dynamic resource availability and sharing is integrated in the ERs 104-108 to improve resource utilization and load balancing.
[0053]
In various embodiments, the described architectures and methodologies function as a localized approach to optimize and improve the performance and scalability of an existing global resolution system. By facilitating name-to-locator resolution using collaborative processing at a set of routers, the described embodiments further overcome potential limitations in proposed ICN architectures. For example, resolution schemes utilizing a distributed hash table (DHT) or multi-level distributed hash table (MDHT) approach typically target flat namespace assignment and use by hashing complete content names (e.g., of format publisher identifier: : content identifier) . Such approaches can give rise to multiple requests to a resolution system in the case of a hierarchical namespace. By assigning subsets of a global namespace/hierarchical namespace components to the managed resolution of caches of edge routers in accordance with the disclosed embodiments, the number of requests to a resolution system can be reduced.
[0054]
FIG. 2 is a flow diagram 200 illustrating examples of name-to-locator resolution operations utilizing resolution caches in accordance with an embodiment of the present disclosure. In various embodiments, each of the ERs 104-108 implements a novel two-level resolution cache design that comprises two types of resources –a short-term cache and a long-term cache –with respect to the managed namespace at a given edge router. The resolution cache stores namespace-to-locator mapping information. In these embodiments, the short-term caching resources are utilized in resolution of received requests on non-managed namespaces at an ER, while the long-term caching resources are utilized for received requests on managed (or on-demand assigned) namespaces or subsets thereof assigned to an ER. In general, the namespace-to-locator mapping information stored by a short-term cache is replaced with updated mapping information received by an ER more frequently (e.g., on shorter time scales) than the namespace-to-locator mapping information stored in the long-term cache of the ER.
[0055]
In the examples of FIG. 2, four locator resolution processing flows 202, 204, 206 and 208 are shown for name-to-locator resolution of an interest packet received at ER 104. In each of the examples, the interest packet includes a content name for requested content. In a first locator resolution processing flow 202, the ER 104 determines that its local resolution cache includes mapping information (i.e., a locator) relating to the content name. The ER 104 retrieves the associated locator, at 202-1, from either a long-term cache (e.g., when the content name corresponds to namespace managed by the ER 104) or a short-term cache (e.g., when the content name corresponds to unmanaged namespace) . As described more fully below, when retrieving the locator from a long-term cache, the ER 104 can further insert the locator as a forwarding label within the interest packet and forward the interest packet in accordance with information of a FIB maintained by the ER 104.
[0056]
In a second locator resolution processing flow 204, the ER 104 determines that the content name corresponds to unmanaged namespace and forwards the interest packet to the resolution server 110 for locator resolution processing (204-1) . In response to receiving a locator from the resolution server, the ER 104 further stores the locator in its short-term cache (204-2) for use in resolving other interest packets involving the corresponding namespace. In certain embodiments, the processing flow 204 is further utilized when collaborative processing is not preferred for a particular namespace, for instance due to unavailability of resources at an ER or when better efficiency is observed via utilization of the resolution server 110.
[0057]
In the third locator resolution processing flow 206, the content name corresponds to namespace managed by the ER 104. In response to determining that the local long-term cache does not include mapping information relating to the content name, the ER 104 forwards the interest packet to the resolution server 110 for processing (206-1) , and stores the responsive locator in its long-term cache (206-2) for use in resolving prospective interest packets involving the corresponding namespace.
[0058]
The fourth locator resolution processing flow 208 illustrates an example of a collaborative locator resolution scheme. In this example, in response to determining that the content name of a received interest packet corresponds to a namespace managed by a second ER 106 of the domain, the ER 104 forwards the interest packet to the ER 106 for processing (208-1) . In various embodiments, such as described more fully below, the ER 104 sets a resolution identifier field in the interest packet to inform the ER 106 that the interest packet is being forwarded for resolution. In addition, prior to forwarding the interest packet, the ER 104 checks its local short-term cache to determine if a corresponding locator is already present. Upon receiving the forwarded packet, the ER 106 retrieves (when present) a locator for the content name from its local long-term cache (208-2) and returns the locator to the ER 104. The ER 104 of this example stores the received locator in its short-term cache (208-3) for use in resolving any further interest packets involving the corresponding namespace. In certain embodiments, the resolution cache of the ER 104 may be proactively populated with locator information (e.g., based on content popularity dynamics determined by the resolution system) .
[0059]
FIG. 3 is a functional block diagram of an edge router (ER) 300 in accordance with an embodiment of the present disclosure. The ER 300 can implement any of the ERs 104-108 of FIGs. 1, 2 and 6. Although not explicitly illustrated in full, the ER 300 incorporates basic ICN components, including a Pending Interest Table (PIT) , a Content Store (CS) 304, and a Forwarding Information Base (FIB) . In an example, the FIB is a database that, for a set of prefixes, records a list of interfaces that can be used to retrieve data packets with names under the corresponding prefixes. The list of interfaces for each prefix can be ranked, and prefix/interfaces mappings can be associated with additional information to facilitate forwarding strategy decisions. Routing decisions are recorded in the PIT for use in returning received data to the requestor along the reverse path of the interest packet. In an example, the PIT is a database that records received and not yet satisfied interests and the associated interfaces from which they were received. The PIT can also record interfaces to which interests were forwarded, as well as information to assess data plane performance. Interests for the same data may be aggregated into a single PIT entry. The CS 304 functions as a content cache in the networking layer. Various aspects of the resolution processing described herein can be viewed as complimenting the foregoing ICN components to improve overall networking performance, and can operate independent of an underlying resolution system implementation (e.g., a global resolution system performing a centralized/decentralized/distributed resolution) .
[0060]
The ER 300 of this embodiment includes a PIT/CS/RES check module 302 that operates to determine the type of received packets (e.g., interest packets, data packets and various types of resolution packets) and perform entry verification for cached content. In a generalized example of resolution processing of an incoming request/response by ER 300 (further processing details are provided in conjunction with FIGs. 4 and 5) , an incoming interest packet is checked by the PIT/CS/RES check module 302 to determine if there is a corresponding entry in the PIT. If so, the CS 304 is also checked for matching content. When matching content exists, a content object is generated and sent to the requestor by packet forwarding module 314. If there is no matching content in the CS 304, forward processing module 310 determines an outgoing interface for request forwarding. In an example, if the FIB of the ER 300 contains an entry for the content name, the PIT/CS update module 312 inserts a corresponding entry in the PIT and the packet forwarding module 314 forwards the request over one or more interfaces identified by the FIB.
[0061]
If the FIB does not contain an entry for the content name, a resolution process utilizing resolution cache 308 is invoked. In the illustrated embodiment, the resolution module 306 interacts with the resolution cache 308 and operates in part to resolve received requests that do not carry a matching entry within the FIB. In this embodiment, the resolution module 306 creates and forwards (via packet forwarding module 314) a resolution request to a name resolution system/server or another edge router performing collaborative resolution, and updates the FIB following a receipt of a resolution response. In certain embodiments, the resolution cache 308 maintains interface information such that the FIB may be bypassed. In addition, use and updating of the PIT can also be bypassed if the resolution cache 308 stores resolution request information.
[0062]
If the PIT/CS/RES check module 302 determines that a received packet is a data packet that is not marked as a resolution response, the PIT/CS/RES check module 302 verifies the corresponding PIT entry and forwards to the received content to CS 304 for caching. The PIT/CS update module 312 also removes the corresponding PIT entry and creates a CS entry identifying the cached content. If the PIT/CS/RES check module 302 determines that a received packet is a (collaborative) resolution response, which may also include a data packet, the packet is processed by the resolution module 306 and the resolution cache 308 is updated (e.g., in accordance with a resolution identifier of the packet) . Forwarding processing module 310 also updates the FIB. If the received packet includes a data packet, the PIT/CS module 312 caches the received content in CS 304 and the packet is forwarded (e.g., via an incoming interface (s) mapped by the PIT) to a requestor. If the received packet includes a locator, the PIT/CS module 312 creates a corresponding PIT entry and the packet is forwarded by packet forwarding module 314 (e.g., to a collaborative ER or an interface mapped by the identifier) .
[0063]
The ER 300 of this embodiment further includes various resources for performing ICN resolution and routing operations. Such resources can include dedicated or pre-allocated resources (e.g., storage 330 comprising one or more disk drives 332 and memory 334) and resources that can be shared on demand and made available for load balancing. In the illustrated embodiment, resources available for sharing can include processing resources 320 (e.g., for performing local resolution operations) , bandwidth 322 for communicating with other potential resolvers or a resolution server (s) , and storage 324 (e.g., one or more disk drives 326 and memory 328) for maintaining various caches and resolution information. The resources available for sharing or reallocation can comprise unused or underutilized components of the pre-allocated resources or other available resources. As described more fully below in conjunction with FIGs. 6 and 7, allocation and reassignment of such resources can be based on resolution-based activity metric information of one or more ERs. The resolution-based activity metric information can be determined in real-time, for example, by a resource monitor module 318 of each ER operating in conjunction with a resource/sharing/allocation module 316 that implements resource allocations. In one example, resources of ERs of an ICN network 102 are effectively distributed (e.g., for load balancing) based on distributed ER namespace assignments, examples of which are described in conjunction with FIGs. 8A and 8B.
[0064]
FIG. 4 is a logic diagram 400 illustrating examples of name-to-locator resolution in accordance with an embodiment of the present disclosure. In the illustrated embodiment, a first edge router of a plurality of edge routers is assigned a subset of a namespace managed by the plurality of edge routers. The first edge router maintains a resolution cache for storing namespace-to-locator mapping information. The resolution cache includes a long-term cache for storing mapping information relating to the subset of the namespace, and a short-term cache for storing mapping information relating to non-assigned namespace.
[0065]
The illustrated method commences when the first edge router receives (e.g., from a downstream consumer or client device) an interest packet (also referred to herein as a “request” ) including a content name for requested content (step 402) . In response, the first edge router performs a name-to-locator resolution process (also referred to herein as a “locator resolution process” or “resolution process” ) for the interest packet. In the resolution process, the first edge router determines whether the content name is within the assigned subset of the namespace that it manages (step 404) . If the content name is not within the subset of the namespace, the resolution process continues by further determining whether the short-term cache includes mapping information relating to the content name (412) .
[0066]
In response to determining that the short-term cache does not include mapping information relating to the content name, the first edge router determines whether to request that a second edge router resolve the interest packet or whether to redirect the interest packet, and sets a corresponding resolution identifier within the interest packet (step 416) . A determination to resolve via the second edge router can be based, for example, on selection of a collaborative resolution process when resolution resources of the first edge router are relatively limited as compared to resolution resources at a second edge router of the domain (examples of determining relative resource availability are described in conjunction with FIGs. 6 and 7) . Although not explicitly illustrated, in certain embodiments the first edge router may further determine to send the request to an in-domain resolution server or global resolution system based on performance metrics such as latency of retrieval and processing overhead associated with hits/misses at collaborating ERs.
[0067]
When determining to resolve the request via a second edge router, the first edge router sets a corresponding resolution identifier (e.g., indicating a Resolve Request packet) in the interest packet and forwards the interest packet (or “request” ) , including the resolution identifier, to the second edge router (step 426) . In the illustrated embodiment, following processing by the second edge router, the first edge router receives a response to the forwarded interest packet (step 428) . In this example, the response packet includes a locator corresponding to the content name and a Resolve Response resolution identifier. Next, the first edge router stores a locator mapping for the content name in its long-term cache, inserts the received locator as a forwarding label within the interest packet, and forwards the interest packet (e.g., to a requesting client device) in accordance with corresponding information of a Forwarding Information Base (FIB) of the first edge router (step 430) .
[0068]
When determining to redirect the request at step 416, the resolution process includes setting the resolution identifier within the interest packet to indicate a redirect request and forwarding the interest packet to a (managing) second edge router (step 418) . In one example, determining to redirect the request includes determining (e.g., via an assigned namespace map) that the content name of the interest packet is within a second subset of the namespace managed by the plurality of edge routers and that the second subset of the namespace is assigned to the second edge router. Following processing by the second edge router, the first edge router receives a response to a forwarded interest packet, wherein the response includes a resolution identifier indicating resolution of a redirect request (step 420) . When the response further includes a received locator, the resolution process further includes storing a corresponding locator mapping in the short-term cache of the first edge router, inserting the received locator as a forwarding label within the interest packet, and forwarding the interest packet in accordance with corresponding information of a FIB of the first edge router (step 422) . When the response of step 420 includes both a received locator and the requested content/data, the resolution process further includes storing a corresponding name-locator mapping in the short-term cache of the first edge router, removing the locator from the response packet (s) , and forwarding the response packet (s) including the requested content to a requesting entity (step 424) .
[0069]
In the illustrated embodiment, when the first edge router determines at step 404 that the content name is within the assigned subset of the namespace that it manages, the locator resolution process further includes determining whether the long-term cache of the first edge router includes mapping information relating to the content name, the mapping information comprising an associated locator (step 406) . In response to determining that the long-term cache does not include mapping information relating to the content name, the first edge router forwards the interest packet to a resolution server (step 414) and the resolution process generally proceeds in accordance with steps 428 and 430. In response to determining that the long-term cache includes mapping information relating to the content name, the first edge router inserts the associated locator as a forwarding label within the interest packet and forwards the interest packet in accordance with corresponding information of a FIB of the first edge router (step 408) . Following receipt of a responsive data, the first edge router forwards the responsive data to the requesting entity (step 410) .
[0070]
In a further example, the locator resolution process includes determining that the content name is within the subset of the namespace assigned to the first edge router, and further determining whether a resolution-based activity metric (such as described below) of the first edge router compares unfavorably to a threshold. In response to determining that the resolution-based activity metric of the first edge router compares unfavorably to a threshold, in this example the resolution identifier within the interest packet is set to indicate a resolve request and the interest packet, including the resolution identifier, is forwarded for processing by another edge router of the plurality of edge routers.
[0071]
FIG. 5 is a logic diagram 500 illustrating further examples of name-to-locator resolution in accordance with an embodiment of the present disclosure. The operations of this embodiment relate to processing of an interest packet forwarded from a first edge router to a second edge router of a domain, and include various aspects that are the same or similar to the aspects described with reference to FIG. 4. In the illustrated embodiment, the second edge router receives the information packet from the first edge router (step 502) and determines a resolution type based on a resolution identifier in the information packet (step 504) .
[0072]
When the resolution type indicates a Redirect Request packet, the second edge router determines whether to accept the packet for resolution processing (e.g., based on an assigned namespace map, resource availability, etc. ) (step 506) . In the illustrated embodiment, in response to determining to accept the redirect request, the second edge router updates an internal Pending Interest Table (PIT) (step 508) . The resolution process further determines whether the long-term cache of the second edge router includes mapping information relating to the content name of the redirected packet, the mapping information comprising an associated locator (step 510) . In response to determining that the long-term cache includes the relevant mapping information, the second edge router inserts the corresponding locator as a forwarding label within the redirected interest packet (step 512) . The second edge router further performs a FIB lookup on the corresponding locator and forwards the interest packet via an associated interface (step 514) . When a responsive data packet is received, the second edge router extracts/removes the associated PIT entry and forwards the data packet to the requesting edge router of the domain or, alternatively, to a requesting client (step 516) .
[0073]
If the resolution identifier of a received interest packet indicates a Resolve Request packet as determined at step 504, the second edge router further determines whether its long-term cache includes mapping information relating to the content name of the interest packet, the mapping information including an associated locator (step 518) . When the mapping information is present, the second edge router sends a resolution response, including the associated locator, to the first edge router (step 520) . When the mapping information is not present as determined in step 518, or when the resolution process determines in step 510 that the long-term cache does not include relevant mapping information, the second edge router forwards the received interest packet to a resolution system/server (e.g., resolution server 110) for further name-to-locator resolution processing (step 522) . Next, the second edge router receives a response to the forwarded interest packet, wherein the response includes a locator or a locator and the requested content/data (step 524) . In this embodiment, resolution processing continues with step 520, and a resolution response is sent to the first edge router. In one example, the resolution response can be either a Resolve Response packet or a Rejected-Resolution: : Redirect Response packet (e.g., when the resolution process is unsuccessful or unable to be completed by the second edge router) .
[0074]
FIG. 6 is a flow diagram 600 illustrating communications between edge routers in accordance with an embodiment of the present disclosure. In the illustrated embodiment, ER resolution-based activity metric information 602 is exchanged between the ERs 102-106 for use in distributing ER namespace group/prefix assignments 604 in a manner that optimizes ER resource utilization. In one example, ERs exchange information regarding respective active resource usage (e.g., as a weighted average over a time frame) , and re-distribute namespace assignments when desirable to improve resolution performance. In a further example, if a portion of a (subset) of a namespace is reassigned from a first ER to a second ER, the first ER gracefully removes a related resource (e.g., resolution cache data) by replacing it with received requests over time, while the second ER gracefully introduces the reassigned namespace based on new incoming requests as opposed to transferring stored information from the first ER.
[0075]
The resolution-based activity metric information 602 can include a wide range of information. In various examples, the metric set can include all or a subset of: a ratio between average processing use versus processing available for resolution; the average hit rate of a long-term cache (e.g., percentage of requests extracted from the long-term cache) ; success rate and secondary cost for hits (which may be retrieved as feedback from requesting ERs) ; and average latency, both local and feedback-based.
[0076]
In various embodiments, the disclosed edge routers may act as packet forwarders in which resources are shared with routing components such as the previously-described PIT, CS and FIB. As such, resources available to ERs of a domain may be treated as an elastic range, rather than a constant value. In an embodiment, elastic resource availability is accommodated via a utility performance metric (u ER) that is based on a ratio of active resource utilization percentage.
[0077]
More particularly, in this example the utility performance metric can be represented as u ER = (wrr loc + wrr col) /rr max, ER, where wrr loc represents a weighted local request rate (e.g., rr lox x w local) , wrr col represents a weighted collaborative request rate (e.g., rr col x w col) , and rr max, ER represents a maximum allowed request rate at a given ER, which can be derived based on resource usage per request. In operation, dependency functions (represented herein as f BW(mem) and f PROC (mem) ) are created for bandwidth and processing requirements based on storage/memory, as the number of entries stored locally can determine how a resolution process proceeds (e.g., handle locally, contact a second ER, or contact a resolution system) . These dependency functions have values that are updated dynamically as an ER obtains more measurements, and aid in determining resource requirements for an observed request arrival rate. The functions can be used in optimizing memory usage, particularly in embodiments having a centralized controller (e.g., the resource sharing/allocation module 316 of FIG. 3) at each ER of a domain.
[0078]
Continuing with this example, average bandwidth/processing resource requirements are determined for local/remote requests. The ratio of local/average and remote/average are used as weights in the determination. Further, an initial rr max, ER and utility ratio are determined based on the minimum of (1) a maximum allowed rate based on bandwidth availability or (2) a maximum allowed rate based on processing availability. Each ER of the domain operates to monitor its respective active resource usage in real-time (e.g., via a resource monitor module 318) , and obtains a weighted moving average of the active resource usage, represented by:
[0079]
U ER (t) = w x U ER (t-1) + (1-w) x U ER (t-1) , where U ER (t) represents the weighted average value at observation instance t and U ER (t-1) represents the measured value at time instance t-1.
[0080]
In various embodiments, ERs participating in collaborative resolution periodically exchange resolution-based activity metric information 602 with other collaborating ERs. For example, at a given announcement time T, each such ER can be assumed to have access to the resolution-based activity metric information 602 of other ERs. Such information allows each ER to have the same perspective on the active system load of the collaborative resolution system.
[0081]
In additional embodiments, a collaborative resolution system within a domain is assigned a utility threshold δ AS. If resource utilization is below the threshold at every ER, the resolution system is deemed to be operating with acceptable boundaries. In contrast, if resource utilization is above the threshold (> δ AS) at a given ER, system resources are reallocated. For example, at a time T, the ERs of the resolution system are ordered based on observed utility values (e.g., from highest to lowest) . Reallocation of resources can occur gradually, such that ERs having a resource utilization above the threshold incrementally reassign a subset of their assigned namespaces to ERs having the least resource utilization (e.g., at sub-T intervals) . Alternatively, a “greedy” re-assignment scheme can be utilized, wherein namespaces (or subsets thereof) assigned to ERs having the highest resource utilization are reassigned randomly to one or more ERs observing relatively lower resource utilization. Reassignment determinations can be announced to all of the ERs of a given domain in order to reduce the number control messages that are exchanged to accomplish reassignment of resources.
[0082]
In one aspect, the exchange of resolution-based activity metric information 602 is utilized to detect a failed ER. For example, a failed or failing ER can be detected when the ER is disconnected from other ERs of a domain and periodic update messages cease (or otherwise indicate a failure) . Upon detection of a failed ER, one or more remaining ERs of the domain can initiate communication with a global resolution system regarding requests on namespaces managed the failed ER until the namespaces are reassigned to the remaining ERs.
[0083]
FIG. 7 is a logic diagram illustrating reassignment of managed namespace in accordance with an embodiment of the present disclosure. The operations 700 of FIG. 7 are consistent with the operations of FIGs. 4 and 5 and can be implemented, for example, by the edge routers of FIG. 6. As noted, the available resources for name-to-locator resolution operations can change over time at a given ER as a result of varying demands from other ERs of a domain as well as demand from client devices (e.g., for managed namespace groups) . In the embodiment depicted by FIG. 7, adaptive load distribution is utilized to improve the efficiency of name-to-locator resolution without unduly impacting packet forwarding operations.
[0084]
Operations 700 of FIG. 7 begin with assigning, to first edge router of a plurality of edge routers of a domain, a subset of a namespace (or namespace group) managed by the plurality of edge routers (step 702) . Operations 700 continue with determining, by the first edge router, a resolution-based activity metric information of the first edge router (step 704) . Optionally, step 704 further includes determining whether the resolution-based activity metric of the first edge router compares unfavorably to a threshold. In various embodiments, the resolution-based activity metric information and the threshold are based on one or more of the examples described above with reference to FIG. 6. Next, the first edge router receives (e.g., on a periodic basis) additional resolution-based activity metric information from one or more additional edge routers of the plurality of edge routers (step 706) .
[0085]
Operations 700 continue with comparing the resolution-based activity metric information of the first edge router to the additional resolution-based activity metric information and identifying one or more additional edge routers of the plurality of edge routers having relatively greater resources available for resolution operations than the first edge router (step 708) . In the depicted embodiment, the operations 700 further include reassigning at least a portion of the subset of the namespace to the one or more additional edge routers of the plurality of edge routers and correspondingly updating a namespace mapping database maintained by the first edge router (step 710) .
[0086]
FIGs. 8A and 8B illustrate examples of assigned namespace maps 800 and 802 in accordance with an embodiments of the present disclosure. In these embodiments, it is assumed that the set of global namespaces is distributed evenly and logically distributed to N namespace groups, which are in turn assigned to K edge routers within a domain. For example, an initialization phase is performed to assign a subset of the namespace groups (e.g., approximately N/K namespace groups) to each ER of the domain. In the foregoing examples, it is further assumed that during the initialization phase a given namespace group M is assigned or otherwise allocated to an ER (ID) having an identifier (ID) value equal to Modulo ( {M<=N} , K) , with id=0 assigned to ER (K) .
[0087]
Referring more particularly to FIG. 8A an example of an assigned namespace map (ANM) 800 maintained by an ER is illustrated. In this embodiment, ANM 800 comprises a hash table with N “buckets” /namespace groups NG (N) of a namespace (e.g., a global namespace) managed by ERs of a domain. The ANM 800 includes assignment entries for each namespace group corresponding to ER identifiers ER (1) -ER (K) and/or associated locators. In the example ANM 800, NG (1) is assigned to ER (1) , NG (N-1) is assigned to ER(max (modulo (N-1, K) , K) ) , and NG (N) includes an entry for ER (max (modulo (N, K) , K) ) . Under this approach, following initialization ER (j, where j<K) would have access to namespaces falling into namespace groups {j, K+j, …, w jK+j} , where w j = (max (i) , where iK+j<=N) . In an example, namespace groups NG (1) –NG (K) comprise a first assignment group of N/K assignment groups. In various embodiments, the ER identifiers can be determined based on a priority assignment approach. For example, priority can be based on actual node IDs, ER locators, transformed locator metrics, pre-configured ordering by a domain, etc.
[0088]
In one example of mapping a content name to the ANM 800, a hashing operation is performed on the first k components of the content name, such that hOut = Hash (/c1/c2/…/ck) . A modulo operation of hOut with respect to N is performed to determining a matching namespace group (NG (ID ) = modulo (hOut, N) ) .
[0089]
FIG. 8B illustrates an example of a hierarchical assigned namespace map 802 in accordance with an embodiment of the present disclosure. Based on initial namespace assignments, each ER of a domain initially generates a fast-lookup mapping database, such as the ANM 802, having ER identity and/or locator information. In instances where a particular namespace group is determined to be overloaded with respect to other namespace groups, such as described above in conjunction with FIG. 6 and FIG. 7, load balancing can be improved by reassigning at least a portion of the namespace group to another ER (s) by performing a hierarchical hashing of the namespace group to generate further subsets of the managed namespace.
[0090]
In the illustrated embodiment, for example, when a namespace group of ER (1) is determined to be overloaded, a hierarchical hashing of the namespace group is performed to generate sub-namespace groups (e.g., at a next component level) . These sub-namespace groups are then reassigned in whole or part to further improve load balance. In an example of operation, two-component namespace /streamingservice/movies/maps to an overloaded namespace group. This namespace group is further separated into sub-namespace groups at the component level, e.g., /streamingservice/movies/titlesA/, /streamingservice/movies/titlesB/, etc. and reassigned.
[0091]
Following reassignment, each ER updates its respective assigned namespace map, and redirects received resolution requests based on the resulting mappings. Various transfer policies may be utilized. In one example, a gradual transfer policy is used by a requesting ER by probabilistically forwarding request to previously-mapped/newly-mapped ERs within a pre-determined time following the reassignment. In another example, a newly-assigned ER forwards requests to a previously assigned ER within a relatively short time period following re-assignment.
[0092]
In a further example, a previously-mapped ER removes transferred namespaces on-demand as it updates its internal long-term cache. In this example, for a period of time following reassignment, the previously-mapped ER can perform lookup operations on the corresponding namespaces in its long-term cache before forwarding corresponding requests to a newly-assigned ER, while also transferring any matching information from its long-term cache to its short-term cache. In addition, if the long-term cache contains matching information, the ER can proactively send a resolution update message to the newly-assigned ER in order to update its long-term cache with relevant name-to-locator mapping information.
[0093]
FIG. 9 illustrates an example of an ICN interest/data packet 900 including a resolution identifier field in accordance with an embodiment of the present disclosure. At a high level, ICN can be viewed as using application-level data units at a network level. An ICN interest/data packet 900 format can include, for example, a representation of data and a request for the data. Elements of the packet format can include, for example, name, name constraints, payload, a security context and security context constraints.
[0094]
The resolution identifier field of the illustrated embodiment includes a two-bit identifier used in resolution operations such as those described in conjunction with FIGs. 3 and 4. In this example, the resolution identifier field is used to establish four primary resolution-driven packet types. A resolution identifier value of “00” is used for regular interest forwarding (e.g., collaborative resolution processing between ERs of a domain for unmanaged namespace) , and indicates a type of Resolution: : Resolve Request packet. A value of “01” indicates a resolution request to an associated ER for collaborative resolution processing, and is shown as a Resolution: : Redirect Request packet. This type of packet essentially redirects an interest towards a content producer, via an associated ER that manages the corresponding namespace, and in certain circumstances may allow for reduced content retrieval latency. A value of “10” indicates a resolution response (shown as a Resolution: : Resolve Response packet) and a value of “11” indicates a content object with resolution update, which is a type of Content Object with Resolve packet. Although a two-bit identifier is shown, the resolution identifier field may include a differing number of bits in various embodiments.
[0095]
FIG. 10 is a block diagram representation of an edge router (ER) 1000 in accordance with embodiments of the present disclosure. The ER 1000 can comprise, for example, any of the ERs 104-108 of FIGs. 1, 2 and 6, ER 300 of FIG. 3, or any other ER or router described above. The illustrated ER 1000 includes a processing system or processing unit 1002 (which can also be referred to as a processor, judging unit, determining unit, executing unit, or equivalent terminology referencing a component capable of performing computations and/or other processing related tasks) , a memory storage 1004, one or more network interface (s) 1006, and one or more supplemental interface (s) 1008, which may (or may not) be arranged as shown in FIG. 10. Specific ERs 1000 may utilize all of the components shown, or only a subset of the components, and levels of integration may vary from device to device. Furthermore, the ER 1000 may contain multiple instances of a component, such as multiple processing units, processors, memories, etc.
[0096]
The network interface (s) 1006 may comprise wired links, such as an Ethernet cable or the like, and/or wireless links to access other devices or nodes via one or more networks and to exchange networking information, including for example ICN-related communications such as described herein. The one or more supplemental interface (s) 1008 may be utilized, for example, to couple interfaces devices to the ER 1000 and/or to perform debugging, maintenance and upgrading operations.
[0097]
The memory storage 1004 is also coupled to the processing unit 1002, and stores programming and/or instructions that, when executed by the processing unit 1002, cause the ER 1000 to perform ICN-related operations such as described in conjunction with FIGs. 4, 5 and 7 using any one or combination of steps described in the embodiments. Further, memory storage 1004 of the illustrated embodiment includes a content store 1010, a resolution cache 1012 comprising a short-term cache 1014 and a long-term cache 1016, an assigned namespace map 1018, and may also maintain other (not separately illustrated) ICN-related routing tables, forwarding tables, or other tables or information disclosed herein. Although illustrated as a single storage, memory storage 1004 may be implemented, for example, as a combination of read only memory (ROM) , random access memory (RAM) , or secondary storage (e.g., one or more disk drives or tape drives) .
[0098]
In the illustrated embodiment, the memory storage 1004 further includes programming and/or instructions for forwarding processing 1020, PIT/CS/RES checking 1022, PIT/CS updating 1024, packet forwarding 1026 and resource monitoring/sharing/allocation 1028, each of which cause the ER 1000 to perform functions corresponding to those described above (e.g., in conjunction with FIG. 3) .
[0099]
It should be understood that software can be installed in and sold with an edge router or like device. Alternatively, the software can be obtained and loaded into the edge router, including obtaining the software through a physical medium or distribution system, including, for example, from a server owned by the software creator or from a server not owned but used by the software creator. The software can be stored on a server for distribution over the Internet, for example.
[0100]
As may be used herein, the term “non-transitory computer-readable media” includes one or more memory elements. A memory element may be a separate memory device, multiple memory devices, or a set of memory locations within a memory device. Such a memory device may be a read-only memory, random access memory, volatile memory, non-volatile memory, static memory, dynamic memory, flash memory, cache memory, and/or any device that stores digital information. The memory device may be in a form a solid-state memory, a hard drive memory, cloud/networked memory, a thumb drive, server memory, a computing device memory, and/or other physical medium for storing digital information. The terms “computer-readable media” and “computer-readable medium” do not include carrier waves to the extent that carrier waves are deemed too transitory.
[0101]
As may be used herein, the term “compares favorably” , indicates that a comparison between two or more items, signals, values, etc., provides a desired relationship. For example, when the desired relationship is that signal 1 has a greater magnitude than signal 2, a favorable comparison may be achieved when the magnitude of signal 1 is greater than that of signal 2 or when the magnitude of signal 2 is less than that of signal 1. As may be used herein, the term “compares unfavorably” , indicates that a comparison between two or more items, signals, etc., fails to provide the desired relationship.
[0102]
As may also be used herein, the terms “processing circuitry, ” “processing circuit, ” “processor, ” and/or “processing unit” or their equivalents (such as identified above) may be a single processing device or a plurality of processing devices. Such a processing device may be a microprocessor, micro-controller, digital signal processor, microcomputer, central processing unit, field programmable gate array, programmable logic device, state machine, logic circuitry, analog circuitry, digital circuitry, and/or any device that manipulates signals (analog and/or digital) based on hard coding of the circuitry and/or operational instructions. A processor, processing circuitry, processing circuit, and/or processing unit may be, or further include, memory and/or an integrated memory element, which may be a single memory device, a plurality of memory devices, and/or embedded circuitry of another module, processing circuitry, processing circuit, and/or processing unit. Such a memory device may be a read-only memory, random access memory, volatile memory, non-volatile memory, static memory, dynamic memory, flash memory, cache memory, and/or any device that stores digital information. Note that if the processing module, module, processing circuitry, processing circuit, and/or processing unit includes more than one processing device, the processing devices may be centrally located (e.g., directly coupled together via a wired and/or wireless bus structure) or may be distributedly located (e.g., cloud computing via indirect coupling via a local area network and/or a wide area network) . Further note that if the processor, processing circuitry, processing circuit, and/or processing unit implements one or more of its functions via a state machine, analog circuitry, digital circuitry, and/or logic circuitry, the memory and/or memory element storing the corresponding operational instructions may be embedded within, or external to, the circuitry comprising the state machine, analog circuitry, digital circuitry, and/or logic circuitry. Still further note that, the memory element may store, and the module, processing circuitry, processing circuit, and/or processing unit executes, hard coded and/or operational instructions corresponding to at least some of the steps and/or functions illustrated in one or more of the Figures. Such a memory device or memory element can be included in an article of manufacture.
[0103]
One or more embodiments of the disclosure have been described above with the aid of method steps illustrating the performance of specified functions and relationships thereof. The boundaries and sequence of these functional building blocks and method steps have been arbitrarily defined herein for convenience of description. Alternate boundaries and sequences can be defined so long as the specified functions and relationships are appropriately performed. Any such alternate boundaries or sequences are thus within the scope and spirit of the claims. Further, the boundaries of these functional building blocks have been arbitrarily defined for convenience of description. Alternate boundaries could be defined if the certain significant functions are appropriately performed. Similarly, flow diagram blocks may also have been arbitrarily defined herein to illustrate certain significant functionality. To the extent used, the flow diagram block boundaries and sequence could have been defined otherwise and still perform the certain significant functionality. Such alternate definitions of both functional building blocks and flow diagram blocks and sequences are thus within the scope and spirit of the present disclosure. One of average skill in the art will also recognize that the functional building blocks, and other illustrative blocks, modules and components herein, can be implemented as illustrated or by discrete components, application specific integrated circuits, processing circuitries, processors executing appropriate software and the like or any combination thereof.
[0104]
The one or more embodiments are used herein to illustrate one or more aspects, one or more features, one or more concepts, and/or one or more examples of the disclosure. A physical embodiment of an apparatus, an article of manufacture, a machine, and/or of a process may include one or more of the aspects, features, concepts, examples, etc. described with reference to one or more of the embodiments discussed herein. Further, from Figure to Figure, the embodiments may incorporate the same or similarly named functions, steps, modules, etc. that may use the same or different reference numbers and, as such, the functions, steps, modules, etc. may be the same or similar functions, steps, modules, etc. or different ones.
[0105]
The term “module” is used in the description of one or more of the embodiments. A module includes a processing module, a processor, a functional block, processing circuitry, hardware, and/or memory that stores operational instructions for performing one or more functions as may be described herein. Note that, if the module is implemented via hardware, the hardware may operate independently and/or in conjunction with software and/or firmware. As also used herein, a module may contain one or more sub-modules, each of which may be one or more modules.
[0106]
Although the present disclosure has been described with reference to specific features and embodiments thereof, it is evident that various modifications and combinations can be made thereto without departing from the scope of the disclosure. The specification and drawings are, accordingly, to be regarded simply as an illustration of the disclosure as defined by the appended claims, and are contemplated to cover any and all modifications, variations, combinations or equivalents that fall within the scope of the present disclosure.

Claims

[Claim 1]
A computer-implemented method for name-to-locator resolution in an Information Centric Networking (ICN) network, the method comprising: assigning, to a first edge router of a plurality of edge routers, a subset of a namespace managed by the plurality of edge routers, wherein the first edge router maintains a resolution cache for storing namespace-to-locator mapping information, the resolution cache including a long-term cache for storing mapping information relating to the subset of the namespace, and a short-term cache for storing mapping information relating to non-assigned namespace; receiving, by the first edge router, an interest packet including a content name for requested content; and performing, by the first edge router, a locator resolution process including: determining whether the content name is within the subset of the namespace; in response to determining that the content name is not within the subset of the namespace, further determining whether the short-term cache includes mapping information relating to the content name; in response to determining that the short-term cache does not include mapping information relating to the content name, setting a resolution identifier within the interest packet to indicate a resolve request or a redirect request; and forwarding the interest packet, including the resolution identifier, for processing by a second edge router of the plurality of edge routers in accordance with the resolution identifier.
[Claim 2]
The computer-implemented method of claim 1, wherein setting a resolution identifier within the interest packet comprises: determining that the content name is within a second subset of the namespace managed by the plurality of edge routers; determining that the second subset of the namespace is assigned to the second edge router; and in response, setting the resolution identifier to indicate the redirect request.
[Claim 3]
The computer-implemented method of any one of claims 1-2, the locator resolution process further comprising: receiving, by the first edge router, a response to a forwarded interest packet, wherein the response includes a resolution identifier indicating resolution of a redirect request; and when the response further includes a received locator: storing a corresponding locator mapping in the short-term cache; inserting the received locator as a forwarding label within the interest packet; and forwarding the interest packet in accordance with corresponding information of a Forwarding Information Base (FIB) of the first edge router, and when the response further includes both a received locator and the requested content: storing a corresponding name-locator mapping in the short-term cache; and forwarding the requested content to a requesting entity.
[Claim 4]
The computer-implemented method of any one of claims 1-3, the locator resolution process further comprising: receiving, by the first edge router, a response to a forwarded interest packet, wherein the response includes a received locator and a resolution identifier indicating resolution of a resolve request; storing a corresponding locator mapping in the long-term cache; inserting the received locator as a forwarding label within the interest packet; and forwarding the interest packet in accordance with corresponding information of a Forwarding Information Base (FIB) of the first edge router.
[Claim 5]
The computer-implemented method of any one of claims 1-4, the locator resolution process further comprising: in response to determining that the content name is within the subset of the namespace, further determining whether the long-term cache includes mapping information relating to the content name, the mapping information comprising an associated locator; in response to determining that the long-term cache does not include mapping information relating to the content name, forwarding the interest packet to a resolution server; and in response to determining that the long-term cache includes mapping information relating to the content name: inserting the associated locator as a forwarding label within the interest packet; and forwarding the interest packet in accordance with corresponding information of a Forwarding Information Base (FIB) of the first edge router.
[Claim 6]
The computer-implemented method of any one of claims 1-5, further comprising: determining, by the first edge router, a resolution-based activity metric information of the first edge router; receiving additional resolution-based activity metric information from one or more additional edge routers of the plurality of edge routers; comparing the resolution-based activity metric information of the first edge router to the additional resolution-based activity metric information and identifying one or more additional edge routers of the plurality of edge routers having relatively greater resources available for resolution operations than the first edge router; and in response, reassigning at least a portion of the subset of the namespace to the one or more additional edge routers of the plurality of edge routers and correspondingly updating a namespace mapping database maintained by the first edge router.
[Claim 7]
The computer-implemented method of claim 6, wherein receiving additional resolution-based activity metric information from one or more additional edge routers of the plurality of edge routers includes receiving the additional resolution-based activity metric information on a periodic basis.
[Claim 8]
The computer-implemented method of any one of claim 6 or claim 7, wherein reassigning at least a portion of the subset of the namespace includes performing a hashing function on the subset of the namespace to generate further subsets of the namespace.
[Claim 9]
The computer-implemented method of any one of claims 1-8, the locator resolution process further comprising: in response to determining that the content name is within the subset of the namespace, further determining whether a resolution-based activity metric of the first edge router compares unfavorably to a threshold; in response to determining that the resolution-based activity metric of the first edge router compares unfavorably to a threshold, setting the resolution identifier within the interest packet to indicate a resolve request; and forwarding the interest packet, including the resolution identifier, for processing by another edge router of the plurality of edge routers.
[Claim 10]
The computer-implemented method of any one of claims 1-9, further comprising: replacing mapping information stored by the resolution cache with updated mapping information received by the first edge router, wherein mapping information stored by the short-term cache is replaced more frequently than mapping information stored by the long-term cache.
[Claim 11]
A network device for performing name-to-locator resolution in an Information Centric Networking (ICN) network, comprising: at least one network interface; a memory storage comprising instructions; one or more processors in communication with the at least one network interface and the memory storage, wherein the one or more processors execute the instructions to: determine an assigned subset of a namespace managed by a plurality of network devices including the network device; maintain a resolution cache for storing namespace-to-locator mapping information, the resolution cache including a long-term cache for storing mapping information relating to the assigned subset of the namespace, and a short-term cache for storing mapping information relating to non-assigned namespace; receive, via the at least one network interface, an interest packet including a content name for requested content; determine whether the content name is within the assigned subset of the namespace; in response to determining that the content name is not within the assigned subset of the namespace, further determine whether the short-term cache includes mapping information relating to the content name; in response to determining that the short-term cache does not include mapping information relating to the content name, set a resolution identifier within the interest packet to indicate a resolve request or a redirect request; and forward, via the at least one network interface, the interest packet, including the resolution identifier, for processing by a second network device of the plurality of network devices in accordance with the resolution identifier.
[Claim 12]
The network device of claim 11, wherein the one or more processors further execute the instructions to: determine that the content name is within a second subset of the namespace managed by the plurality of network devices; determine that the second subset of the namespace is assigned to the second network device; and in response, set the resolution identifier to indicate the redirect request.
[Claim 13]
The network device of any one of claims 11-12, wherein the one or more processors further execute the instructions to: receive, via the at least one network interface, a response to a forwarded interest packet, wherein the response includes a resolution identifier indicating resolution of a redirect request; and when the response further includes a received locator: store a corresponding locator mapping in the short-term cache; insert the received locator as a forwarding label within the interest packet; and forward, via the at least one network interface, the interest packet in accordance with corresponding information of a Forwarding Information Base (FIB) of the network device, and when the response further includes both a received locator and the requested content: store a corresponding name-locator mapping in the short-term cache; and forward, via the at least one network interface, the requested content to a requesting entity.
[Claim 14]
The network device of any one of claims 11-13, wherein the one or more processors further execute the instructions to: receive, via the at least one network interface, a response to a forwarded interest packet, wherein the response includes a received locator and a resolution identifier indicating resolution of a resolve request; store a corresponding locator mapping in the long-term cache; insert the received locator as a forwarding label within the interest packet; and forward, via the at least one network interface, the interest packet in accordance with corresponding information of a Forwarding Information Base (FIB) of the network device.
[Claim 15]
The network device of any one of claims 11-14, wherein the one or more processors further execute the instructions to: in response to determining that the content name is within the assigned subset of the namespace, further determine whether the long-term cache includes mapping information relating to the content name, the mapping information comprising an associated locator; in response to determining that the long-term cache does not include mapping information relating to the content name, forward the interest packet to a resolution server; and in response to determining that the long-term cache includes mapping information relating to the content name: insert the associated locator as a forwarding label within the interest packet; and forward, via the at least one network interface, the interest packet in accordance with corresponding information of a Forwarding Information Base (FIB) of the network device.
[Claim 16]
The network device of any one of claims 11-15, wherein the one or more processors further execute the instructions to: determine a resolution-based activity metric information of the network device; receive additional resolution-based activity metric information from one or more additional network devices of the plurality of network devices; compare the resolution-based activity metric information of the network device to the additional resolution-based activity metric information and identifying one or more additional network devices of the plurality of network devices having relatively greater resources available for resolution operations than the network device; and in response, reassign at least a portion of the assigned subset of the namespace to the one or more additional network devices of the plurality of network devices and correspondingly update a namespace mapping database maintained by the network device.
[Claim 17]
The network device of any one of claims 11-16, wherein the one or more processors further execute the instructions to: in response to determining that the content name is within the assigned subset of the namespace, further determine whether a resolution-based activity metric of the network device compares unfavorably to a threshold; in response to determining that the resolution-based activity metric of the network device compares unfavorably to a threshold, set the resolution identifier within the interest packet to indicate a resolve request; and forward, via the at least one network interface, the interest packet for processing by another network device of the plurality of network devices.
[Claim 18]
The network device of any one of claims 11-17, wherein the one or more processors further execute the instructions to: replace mapping information stored by the resolution cache with updated mapping information received by the network device, wherein mapping information stored by the short-term cache is replaced more frequently than mapping information stored by the long-term cache.
[Claim 19]
A non-transitory computer-readable media storing computer instructions for mapping names to locators in an Information Centric Networking (ICN) network, that when executed by one or more processors of a first edge router of a plurality of edge routers of the ICN network, cause the one or more processors to perform the steps of: determining an assigned subset of a namespace managed by the first edge router, wherein the first edge router maintains a resolution cache for storing namespace-to-locator mapping information, the resolution cache including a long-term cache for storing mapping information relating to the assigned subset of the namespace, and a short-term cache for storing mapping information relating to non-assigned namespace; receiving an interest packet including a content name for requested content; and performing a locator resolution process including: determining whether the content name is within the assigned subset of the namespace; in response to determining that the content name is not within the assigned subset of the namespace, further determining whether the short-term cache includes mapping information relating to the content name; in response to determining that the short-term cache does not include mapping information relating to the content name, setting a resolution identifier within the interest packet to indicate a resolve request or a redirect request; and forwarding the interest packet, including the resolution identifier, for processing by a second edge router of the plurality of edge routers in accordance with the resolution identifier.
[Claim 20]
The non-transitory computer-readable media of claim 19, wherein the one or more processors further perform the steps of: determining that the content name is within a second subset of the namespace managed by the plurality of edge routers; determining that the second subset of the namespace is assigned to the second edge router; and in response, setting the resolution identifier to indicate the redirect request.
[Claim 21]
The non-transitory computer-readable media of any one of claims 19-20, wherein the one or more processors further perform the steps of: receiving, by the first edge router, a response to a forwarded interest packet, wherein the response includes a resolution identifier indicating resolution of a redirect request; and when the response further includes a received locator: storing a corresponding locator mapping in the short-term cache; inserting the received locator as a forwarding label within the interest packet; and forwarding the interest packet in accordance with corresponding information of a Forwarding Information Base (FIB) of the first edge router, and when the response further includes both a received locator and the requested content: storing a corresponding name-locator mapping in the short-term cache; and forwarding the requested content to a requesting entity.
[Claim 22]
The non-transitory computer-readable media of any one of claims 19-21, wherein the one or more processors further perform the steps of: receiving, by the first edge router, a response to a forwarded interest packet, wherein the response includes a received locator and a resolution identifier indicating resolution of a resolve request; storing a corresponding locator mapping in the long-term cache; inserting the received locator as a forwarding label within the interest packet; and forwarding the interest packet in accordance with corresponding information of a Forwarding Information Base (FIB) of the first edge router.
[Claim 23]
The non-transitory computer-readable media of any one of claims 19-22, wherein the one or more processors further perform the steps of: determining, by the first edge router, a resolution-based activity metric information of the first edge router; receiving additional resolution-based activity metric information from one or more additional edge routers of the plurality of edge routers; comparing the resolution-based activity metric information of the first edge router to the additional resolution-based activity metric information and identifying one or more additional edge routers of the plurality of edge routers having relatively greater resources available for resolution operations than the first edge router; and in response, reassigning at least a portion of the assigned subset of the namespace to the one or more additional edge routers of the plurality of edge routers and correspondingly updating a namespace mapping database maintained by the first edge router.
[Claim 24]
The non-transitory computer-readable media of any one of claims 19-23, wherein the one or more processors further perform the steps of: in response to determining that the content name is within the assigned subset of the namespace, further determining whether a resolution-based activity metric of the first edge router compares unfavorably to a threshold; in response to determining that the resolution-based activity metric of the first edge router compares unfavorably to a threshold, setting the resolution identifier within the interest packet to indicate a resolve request; and forwarding the interest packet, including the resolution identifier, for processing by another edge router of the plurality of edge routers.

Drawings

[ Fig. 1]  
[ Fig. 2]  
[ Fig. 3]  
[ Fig. 4]  
[ Fig. 5]  
[ Fig. 6]  
[ Fig. 7]  
[ Fig. 8A 8B]  
[ Fig. 9]  
[ Fig. 10]