Enabling HTTP content integrity for co-incidental multicast delivery in information-centric networks

Employing proxy rule identifiers to ensure the integrity of content delivered over an HTTP-over-ICN system. An exemplary method is performed by a client-side network attachment point (cNAP) on an information-centric network (ICN). The cNAP receives an HTTP request that includes a resource identifier and at least one header field. The cNAP generates a proxy rule identifier (PRID) based on the header field(s) and a content identifier (CID) based on the resource identifier. The PRID may be generated by applying a hash function to a string that includes header field data. The cNAP sends an outgoing ICN message that includes the CID and the PRID. In response, the cNAP receives an incoming ICN message that includes an HTTP response, a PRID, and a CID. The cNAP and directs the HTTP response to the appropriate client(s) based on the PRID and CID.

BACKGROUND

Information-centric networking (ICN) constitutes a new paradigm in which content is exchanged by means of information addressing, while connecting appropriate networked entities that are suitable to act as a source of information towards the networked entity that requested the content.

Novel architectures have been proposed in this space, requiring the partial replacement of current network infrastructure in order to realize the desired network-level functions of these solutions. Migration scenarios foresee that the new proposed architectures could be realized as an overlay over existing, e.g., IP- or local Ethernet-based, architectures. Such migration, however, would still require the transition of the user equipment (UE) to an ICN-based solution. With IP-based applications providing a broad range of Internet services in use nowadays, transitioning all of these applications can easily been seen as a much harder task than the pure transition of the network-level functionality, e.g., protocol stack implementation, in the UE since it also requires the transition of the server-side components, e.g., e-shopping web-servers and alike. Hence, one can assume that IP-based services, and with it purely IP-based UEs, will continue to exist for some time to come.

The transition to ICN at the network level, on the other hand, promises many benefits, such as increased efficiency through the usage of in-network caches and the spatial/temporal decoupling of sender/receiver in general, the utilization of SDN upgrades for better flow management, etc.

The disclosure “Methods and Systems for Anchoring Hypertext Transfer Protocol (HTTP) Level Services in an Information Centric Network (ICN),” WO2016123516A1, incorporated herein by reference in its entirety, outlines systems and methods for providing HTTP-level services over an ICN network, mapping HTTP request and response methods into appropriate ICN packets, published towards appropriate ICN names. Said mapping is performed at the Network Attachment Point (NAP) of the client and server, respectively, as well as at the ICN border GW for cases of HTTP methods being sent towards and from peering networks. With such methods, an increasing portion of current Internet-based service can be mapped onto ICN architectures.

The disclosure “Elastic Service Provisioning via HTTP-level Surrogate Management,” U.S. Provisional Application Ser. No. 62/309,610 filed Mar. 17, 2016, incorporated herein by reference in its entirety, discloses an HTTP surrogate that refers to service endpoints at HTTP level that act on behalf of and with authority of an origin server. In RFC 3040, “Internet Web Replication & Caching Taxonomy,” January 2001, a surrogate is a gateway co-located with an origin server, or at a different point in the network, to which is delegated the authority to operate on behalf of, and typically working in close co-operation with, one or more origin servers. Devices commonly known as “reverse proxies” and “(origin) server accelerators” are both more properly considered to be surrogates. Surrogates may be deployed close to the origin server, close to the locality, or throughout the network—a configuration similar to that of a Content Delivery Network (CDN). By placing surrogate servers at distributed network locations, the service can possibly be accessed with much shorter path and higher accessible bandwidth without the need to contact the service at its origin servers. Apart from all the benefits from the local direct content access, surrogates act on behalf of the origin server (and therefore the content's owner), they offer content owners greater control over their behavior than normal proxies, e.g., edge caches or traditional CDNs. As a result, they offer greater potential for improving performance, offloading the processing/network load from the origin server with transparent user experiences. Surrogates function similarly to mirror servers in that a fully qualified copy of the whole site is stored; however, the user is expected to be able to access a surrogate service using the same FQDN/URL rather than being redirected to different ones as mirror servers implement. Unlike standard HTTP intermediaries, surrogates offer finer control by the origin server and content owner because of their implied relationship.

The reintroduction of multicast for clients that happen to retrieve the same web resource at roughly the same time is based on the mechanics described in WO2016123516A1. As the entire network and transport layer is removed to exchange HTTP requests and their responses between one or more client NAPs (cNAPs) and one server NAP (sNAP), the mapping of an incoming HTTP response from a sNAP—delivered via co-incidental multicast—to a number of particular IP endpoints is an open issue. Situations having two IP clients requesting the same URL at roughly the same time has been described in WO2016123516A1. However, issues remain unsolved when the content in the HTTP response of a web server differs depending on specific information provided in the HTTP request header of the HTTP client. For instance, if a web client could not read an HTTP response properly due to HTTP application internal issues, the client may issue an HTTP request for the same resource again but using an HTTP header field “Range” requesting a particular range of bytes of the response only. Another kind of header information is the type of HTTP request method, with different request methods generally resulting in different HTTP responses (HTTP GET vs HTTP PUT or PUSH).

Furthermore, there are certain techniques possible when programming a full responsive web presence where the web server provides particular MIME-tagged content in different levels of quality depending on the client requesting the content. A range of available HTTP header fields is available, e.g. those described in RFC 4229, which may affect the content of an HTTP response.

SUMMARY

The systems and methods disclosed herein seek to address the integrity of HTTP content delivered over an HTTP-over-ICN system. In relation to the scenario where the additional information in an HTTP request header determines the content a web server provides under a given response URL, the present disclosure addresses the integrity of the content delivered via co-incidental multicast and the corresponding multicast group formation within the sNAP. In addition, the present disclosure addresses the issue of providing placed surrogates and their extended NAPs (eNAPs) with information as to how to treat an HTTP message equivalently to the treatment of that message by the original authoritative server.

An exemplary method is performed by a client network attachment point (cNAP) on an information-centric network (ICN). The cNAP receives from a client an HTTP request that includes a resource identifier and at least one header field. The cNAP generates a request proxy rule identifier (PRID) based on the header field(s) and generates a request content identifier (CID) based on the resource identifier. The cNAP sends an outgoing ICN message requesting data. The message includes the request CID, the request PRID and a node identifier of the cNAP. In response to the outgoing ICN message, the cNAP receives an incoming ICN message that includes an HTTP response, a received PRID, and a received CID. In response to a determination that the received PRID is the same as the request PRID and the received CID is the same as the request CID, the cNAP provides the HTTP response to the client.

In some embodiments, proxy rules are provided to each cNAP instructing the cNAP as to how to PRIDs are to be generated from the header field(s). Some proxy rules are FQDN-specific rules that are applicable only to resources requested using particular FQDNs (fully-qualified domain names). Other proxy rules are generic proxy rules that are applicable regardless of FQDN. In some embodiments, proxy rules indicate how header data is to be arranged into a data structure from which a PRID is determined. For example, a proxy rule may indicate how header data is to be arranged into attribute-value pairs of a string such as an XML data structure, and a hash function may be applied to the resulting string to generate a PRID.

In some embodiments, a method is performed by a client-side network attachment point (cNAP) on an information-centric network (ICN). In one such method, the cNAP receives from a client an HTTP request including a resource identifier and at least one header field. The cNAP generates a request proxy rule identifier (PRID) based on the at least one header field, generates a content identifier (CID) based on the host identifier (FQDN), and generates a reverse content identifier (rCID) based on the URL. The cNAP keeps an rCID to PRID mapping including the communication identifier of how to reach the client. The cNAP sends an outgoing ICN message requesting data, where the message includes the CID, the generated PRID, a node identifier of the cNAP and the HTTP request. In response to the outgoing ICN message, the cNAP receives an incoming ICN message that includes an HTTP response, a PRID, and an rCID. In response to a determination that the received rCID and PRID is the same as the request PRID and rCID, the cNAP provides the HTTP response to the client using the stored communication identifier.

In some embodiments, a method is performed by a server-side network attachment point (sNAP) on an information-centric network (ICN). In one such method, the sNAP receives an incoming ICN message that includes an HTTP request, a CID, an rCID, a PRID and a NID. In response to the ICN message, the sNAP creates a potential multicast group using the rCID and PRID and the NID as the group members. The sNAP sends out the HTTP request to an appropriate server using a pre-stored IP address and transport layer port identifier for that server. When receiving the HTTP response, the sNAP obtains the potential multicast group, which is still open for new members based on rCID and PRID information, and the sNAP then closes the multicast group. The sNAP subsequently publishes the HTTP response, rCID and PRID to all members in the multicast group.

DETAILED DESCRIPTION

A detailed description of illustrative embodiments will now be provided with reference to the various Figures. Although this description provides detailed examples of possible implementations, it should be noted that the provided details are intended to be by way of example and in no way limit the scope of the application.

Note that various hardware elements of one or more of the described embodiments are referred to as “modules” that carry out (i.e., perform, execute, and the like) various functions that are described herein in connection with the respective modules. As used herein, a module includes hardware (e.g., one or more processors, one or more microprocessors, one or more microcontrollers, one or more microchips, one or more application-specific integrated circuits (ASICs), one or more field programmable gate arrays (FPGAs), one or more memory devices) deemed suitable by those of skill in the relevant art for a given implementation. Each described module may also include instructions executable for carrying out the one or more functions described as being carried out by the respective module, and it is noted that those instructions could take the form of or include hardware (i.e., hardwired) instructions, firmware instructions, software instructions, and/or the like, and may be stored in any suitable non-transitory computer-readable medium or media, such as commonly referred to as RAM, ROM, etc.

Exemplary Network Hardware

The serving gateway144may also be connected to the PDN gateway146, which may provide the WTRUs102a,102b,102cwith access to packet-switched networks, such as the Internet110, to facilitate communications between the WTRUs102a,102b,102cand IP-enabled devices.

HTTP-Over-ICN Systems and Methods

Exemplary systems and methods disclosed herein utilize an HTTP-over-ICN infrastructure such as that described WO2016123516A1, in which Network Attachment Points (NAPs) provide standard IP connectivity towards IP-enabled devices. NAPs then encapsulate the received IP traffic into an appropriate ICN packet which is then published under a structured named information item.FIG. 2shows one embodiment of a system overview of the different NAP types in an exemplary surrogate-enabled flexible routing system200with a Path Computation Element (PCE)202combining the ICN network elements Rendezvous (RV) and Topology Manager (TM).

Server-side NAPs (sNAPs)204are NAPs which serve a particular FQDN by subscribing to the ICN CID /http/fqdn and have the capability to form co-incidental multicast groups based on, e.g., the methods described in WO2016123516A1. Extended NAPs (eNAPs)206allow surrogates to be used akin to primary web servers. Extended NAPs provide an authoritative mirrored resource of the primary web server, which in some cases may be a fully virtualize resource environment. Client-side NAPs (cNAPs)208are NAPs which serve IP-only clients (e.g. client210) and allow them to communicate with a web server (e.g. primary web server212or surrogate web server214) via ICN200transparently.

In exemplary systems and methods disclosed herein, each NAP behaves as a transparent HTTP proxy which terminates the TCP session for HTTP traffic towards its IP endpoints (e.g., client as well as server). The HTTP proxy (e.g., NAP) then has the ability to further inspect the incoming HTTP message using two types of proxy rules, namely generic and FQDN-specific ones.

In some exemplary embodiments, generic proxy rules are mandatory fields that the proxy (e.g., an NAP) must react upon as otherwise the response is prone to not be the one the HTTP client was requesting, and the integrity of the entire web resource request is at risk. For instance, in such embodiments, the “Range” field or the HTTP request method in the HTTP request are taken into account when creating a multicast group at a sNAP, as otherwise the HTTP response from the web server associated with the sNAP would not be accepted by the web client associated with a cNAP.

In exemplary embodiments, FQDN-specific rules are customizable rules which the NAPs can take into account and which allow the content providers to tune the multicast creation towards their needs. For instance, audio/video/media content in HTTP responses can be encoded in lower quality for mobile endpoints which the web server determines based on a “User-Agent” field in the HTTP header. This behavior can be communicated to the NAP by providing a precise FQDN-specific proxy rule.

In exemplary embodiments, the proxy rule instances to be applied are generated at cNAPs when receiving the HTTP request from the UE (e.g., client210). The same applies to HTTP responses received from a web server at sNAPs and eNAPs. Note that the proxy rules are not tied to a particular HTTP/TCP session, allowing the sNAP to create multicast groups using a single PRID which can be used by all cNAPs to map it back to their currently opened TCP sessions. These proxy rule instances are represented as a unique identifier across all NAPs for identical (same PRID) HTTP sessions. If sNAPs and eNAPs then provide HTTP responses via multicast, this proxy rule instance identifier serves as the only unique identifier used for all cNAPs to map it back to clients which requested this response. Said proxy rule instance identifier is carried along with every HTTP request and HTTP response publication.

Populating Generic and FQDN-Specific Proxy Rules

For all kinds of NAPs (client, server, and surrogate/extended NAPs), as shown inFIG. 2, generic and FQDN-specific proxy rules are populated, and if a proxy rule update is available in the primary NAP all cNAPs and eNAPs promptly refresh their existing rule(s).

In some embodiments, the distribution of proxy rules is realized via a dedicated namespace which allows all NAPs to retrieve a particular FQDN-specific proxy rule from the primary server, while the rules within this namespace may be distributed via the underlying ICN publish/subscribe network. The integrity of HTTP content delivery via the disclosed co-incidental multicast systems and methods, as described in WO2016123516A1, may be ensured with logic within the NAPs and the transfer of a unique proxy rule identifier in each HTTP publication in the ICN network.

Proxy Rules Namespace

To enable the distribution of proxy rules from the primary NAP serving a particular FQDN, a dedicated namespace is disclosed under the root scope identifier /management. Said root scope is shown as a symbolic name here and is may be subject to agreement or standardization, represented as a particular numbered identifier or name in particular embodiments.FIG. 3depicts an embodiment of the namespace with scope identifiers illustrated as white circles and information identifiers—under which data can be published—as shaded circles. Under the scope path /management/proxyRules, each FQDN is represented as an information item with the value being a hash over the string representation of an FQDN, in one possible embodiment. This information item may be used for exchanging proxy rules the first time between the primary sNAP and a NAP which has not received the proxy rules for a particular FQDN, as well as updated proxy rules for a particular FQDN. The detailed operations on how the proposed proxy rules namespace is used can be found below.

It is appreciated that the namespace inFIG. 3may also utilize dedicated proxy rule items under each FQDN for initial and updated propagation by interpreting the FQDN as a scope and adding /initial and /update information items under each FQDN scope. In this case, the initial item may be used for communicating an initial set of rules every time a NAP attempts to obtain such rules, while the update item may be used for future updates. Such an alternative namespace may, for instance, be utilized for publish/subscribe systems that do not notify the addition of subscribers separately to the publisher, therefore requiring the suggested separation of conveying the initial state separately from any updated state.

In the following disclosure, set forth are the operations and messages exchanged based on the namespace inFIG. 3for the sake of simplicity. However, it will be apparent to one of ordinary skill in the art to modify the various embodiments discussed throughout to utilize the alternate namespace, and/or others as appropriate for particular scenarios.

Populating Proxy Rules to cNAPs

One embodiment of the distribution of proxy rules from the primary sNAP to a cNAP or eNAP using the namespace set forth in relation toFIG. 3is shown inFIG. 4using a Message Sequence Chart (MSC). The network elements shown inFIG. 4are an IP endpoint (client422) which is served by a cNAP424, a Path Computation Element (PCE)426combining the ICN elements Rendezvous (RV) and Topology Manager (TM) as well as a sNAP428, as shown inFIG. 2.

All mandatory generic proxy rules may be distributed prior to the start-up of a NAP, e.g., through a configuration file which comes with each NAP deployment. The methods and their meaning behind the enumerated message flows inFIG. 4are described as follows.

In steps401aand401b, th cNAP and sNAP respectively read their generic proxy rules time-independently from each other at their boot-up phase, either by reading the configuration file or subscribing to the appropriate information item in the namespace.

In step402, a new web server for the fully-qualified domain name (FQDN) foo.com is registered at the sNAP428using a specific registration interface. The registration interface may receive the IP information regarding where the sNAP can reach the computing entities to provide the resource requested either as a single fixed IP endpoint (web server) or a hypervisor which maintains and operates a server farm.

In step403, the sNAP428receives FQDN-specific proxy rules provided by an external entity. Such proxy rules may be provided by some management entity, e.g., operator or service provider based, or directly through the provider of the FQDN (which may require awareness for the support of such rules towards the FQDN service provider).

In step404, the sNAP428advertises the availability of proxy rules for the FQDN foo.com under the scope path /management/proxyRules by hashing the FQDN and placing the value as an information identifier under the mentioned scope path.

This completes the initialization of the primary sNAP428and any cNAP424in the ICN network. The remaining message sequence inFIG. 4illustrates the retrieval of FQDN-specific proxy rules by a cNAP upon the arrival of an HTTP request for the FQDN foo.com for the very first time.

In step405, an IP endpoint422served by the cNAP424issues an HTTP request for foo.com/resource which the cNAP receives through its transparent HTTP proxy functionality which terminates the TCP session initiated by the client.

In step406, upon the arrival of each HTTP request the cNAP checks if FQDN-specific proxy rules exist for the host from which a resource is requested. If the cNAP cannot find any such rule, it subscribes to the information item foo.com (e.g. using a hashed FQDN) under the father scope /management/proxyRules.

The PCE426matches the cNAP424as a subscriber to the sNAP428as a publisher (see step404) for the Content Identifier (CID) /management/proxyRules/foo.com. Consequently, the PCE in step407issues a start publish event to the sNAP for this particular CID.

In step408, the sNAP publishes the proxy rules received in403to the cNAP using a pre-defined format, which is described in further detail below.

In step409, the cNAP updates its local proxy rules for foo.com and can continue with its operations to publish the HTTP request to the sNAP, as described below. This completes the operations at cNAPs and sNAPs in this exemplary embodiment to retrieve generic and FQDN-specific proxy rules.

Populating Proxy Rules to eNAPs

NAPs enabling an authoritative copy of a primary web server at a different location within the ICN network (e.g., surrogates) are referred to as extended NAPs (eNAPs). A message sequence chart for an embodiment of the procedures for eNAPs to obtain proxy rules for the FQDN(s) they are supposed to serve is depicted inFIG. 5. This illustration depicts three network elements, namely an eNAP430, a PCE426, and the primary NAP (sNAP)428serving the FQDN foo.com.

In step501, an external element triggers the activation of a particular IP endpoint as a surrogate at the eNAP430. This activation command to the eNAP comprises—among other data—the FQDN which the eNAP is supposed to serve. The operation of such activation, and other eNAP functionality, may be implemented as described in further detail in Provisional App. No. 62/309,610.

In step502, following the same general procedure as for cNAPs, the eNAP subscribes to the CID /management/proxyRules/foo.com in order to receive the proxy rules from the primary sNAP.

In step503, the PCE informs the sNAP that a new subscriber has become available under /management/proxyRules/foo.com. Note, following the procedure described above in relation toFIG. 3, the eNAP has been subscribed to the aforementioned CID in order to trigger a publish/subscribe match in the PCE.

In step504, the sNAP publishes the proxy rules to the eNAP using a pre-defined format, one example of which is described below.

In step505, the eNAP updates its proxy rules for foo.com which allows it to form co-incidental multicast groups without compromising the integrity of delivered HTTP content.

In step506, the eNAP subscribes to the information item foo.com under the root namespace identifier /http allowing IP-only clients to request web resources. This step may be performed using techniques described in WO2016123516A1. This completes the retrieval of FQDN-specific proxy rules of an eNAP in an embodiment of a surrogate activation in this exemplary embodiment. As noted above, the namespace may also utilize dedicated proxy rule items under each FQDN for initial and updated propagation by interpreting the FQDN as a scope and adding /initial and /update information items under each FQDN scope, thereby accommodating publish/subscribe systems that do not notify the addition of subscribers separately to the publisher.

Updating Operations Across all NAPs

In one embodiment, illustrated inFIG. 6, a sNAP receives an update about FQDN-specific proxy rules and the information is forwarded to all NAPs which have retrieved those rules for the particular FQDN before. At the end of the initial retrieval of FQDN-specific proxy rules, cNAPs and eNAPs stay subscribed to CID /management/proxyRules/foo.com, as described above. Therefore, the sNAP does not need to advertise the availability of information under /management/proxyRules/foo.com anymore in order to be able to publish data towards all subscribers.

In step601, the sNAP receives an update to proxy rules for a particular FQDN, foo.com. The format of the rules may be identical to the initial retrieval of the rules.

In step602, the sNAP publishes the received FQDN-specific proxy rules to all NAPs subscribed to it, e.g., cNAP424and eNAP430, using CID /management/proxyRules/foo.com.

As noted above, a separate update information item may alternatively be used. In this case, the cNAP and eNAP would subscribe to this dedicated update item after receiving the initial proxy rule, as described previously.

This completes the message exchange in this exemplary embodiment between sNAP and client and extended NAPs to obtain updated FQDN-specific proxy rules.

Exemplary Proxy Rules Format

For describing the proxy rules, one embodiment to store and exchange generic and FQDN-specific proxy rules is XML following W3C's DOM specification for this particular file format. Alternative formats that allow structured information may be used in some embodiments. XML is one example that is widely used and supported. Other solutions include relational databases, e.g., SQL.

Proxy rules act upon the existence of header fields in the HTTP request and their values. Header fields that are mandatory to ensure the delivery of the correct HTTP response are provided within a rule element encapsulated in the generic mark-up element, e.g. in the following format.

FQDN-specific proxy rules may be declared in an element fqdn with the actual FQDN as the attribute id. Within the fqdn element, the two elements host and headerfields may be presented. Within headerfields, a name element may exist and if the header field's value should not be used in its entire occurrence as a proxy rule, a value element allows the value to be used with pre-defined values only. Furthermore, it is to be noted that each <name> entry is optional in the rule with several instances being possible utilizing various optional headerfields only (see introductory example on partial requests). One particular embodiment of the format may be, but is not limited to, the following.

Both FQDN-specific and generic elements are not limited in their number of occurrences, and if a rule is not found in the HTTP header, it may be ignored.

Operating on Proxy Rules

The usage of the proxy rules allows multiple identical HTTP clients to be served by the same cNAP requesting the same content, while maintaining integrity.FIG. 7depicts an embodiment of an example message sequence between a client422connected to a cNAP424and a web server432connected to a sNAP428, during an HTTP request/response sequence. It is assumed that proxy rules have been populated according to the methods above and the ICN network is fully operational. Furthermore, the PCE communication used to enable HTTP publish/subscribe matches is not shown inFIG. 7.

In step701, the IP client422served by the cNAP424is issuing an HTTP request to retrieve http://foo.com/resource.

In step702, the cNAP parses the HTTP header and applies generic and FQDN-specific proxy rules received prior to this action in order to generate the proxy rule identifier (PRID). A PRID is a fingerprint for the combination of proxy rules and their values. In one embodiment, a PRID may be realized as a concatenation of all header fields and their values which are given as a string to a hashing function. As the PRID is part of the packet being sent to another NAP, any format which can be “encoded” as a unique stream of bit fields can be used.

In step703, the cNAP stores a mapping identifying the requesting client422and the corresponding reverse CID (rCID) (/http/url) of the request and the PRID of the request. The identifier of the client waiting for the response may be, for example, an IP address along with port or a socket file descriptor, or the like.

In step704, the cNAP publishes the HTTP request using CID /http/fqdn, /http/url as the rCID, and including the PRID in the message, such that all three elements are received by the sNAP. The cNAP may also include its node ID (NID).

In step705, upon arrival of the message, the sNAP adds the cNAP (more precisely its NID) to a list of nodes that are waiting for the response, such as forming a coincidental multicast (CMC) group. This group creation is based on an identical rCID and PRID.

In step706, the HTTP request is sent out to the web server432associated with the FQDN and the sNAP.

In step707, the web server432provides the requested web resource via an HTTP response which is received by the sNAP428.

The sNAP428has information indicating from which CMC group the HTTP request was sent. Using this information, in step708, the sNAP publishes the HTTP response to all NIDs which requested the web resource (e.g., the CMC group), and includes the PRID again. Hence, there can be as many publish operations as there can be different PRIDs for a given rCID.

In step709, based on the mapping stored in step703(rCID, PRID, Clients), the cNAP424identifies the IP endpoint or endpoints (e.g., clients) awaiting this particular response.

In step710, the HTTP response is sent out to all clients with the same proxy rules fingerprint (PRID) which requested the same resource from the same FQDN.

In some embodiments, before publishing an HTTP request (step704), the cNAP424determines whether an HTTP request for the same FQDN, web resource and PRID has already been published. If so, the cNAP424may decline to publish a duplicative HTTP request.

For example, avoiding sending unnecessary HTTP requests to the server (and therefore avoiding receiving unnecessary HTTP responses from the server at the sNAP) may be performed as follows. Upon receiving an HTTP response from the server, after previously sending the appropriate HTTP request, the sNAP checks the number of subscribers to the appropriate ICN name for the URL provided in the HTTP response (for example, count incoming HTTP request messages for the same URL, subscribe to a group size metadata information at a rendezvous point, etc.). The sNAP sends the HTTP response, e.g., in accordance with the methods outlined in WO2016123516A1. In some embodiments, the sNAP stores the PRID of said HTTP response in an internal table, together with the count previously determined. (In some embodiments, e.g. where the PRID does not include the URL, the URL and PRID may be stored together as a pair.) The sNAP receives incoming HTTP request messages from the ICN network and performs a check of whether the corresponding PRID matches any PRID stored in its internal table. If the PRID is not found, the HTTP request message is handled in accordance with the methods in WO2016123516A1. If the PRID is found, i) the HTTP request message is suppressed, e.g., not forwarded to the server; ii) the count in the corresponding table entry is lowered by 1; iii) if the count has reached zero, the table entry is removed; iv) if the count has not yet reached zero, the modified count is stored in the appropriate table entry. The method is realized similarly at an ICN border gateway in scenarios where the server resides in a peering IP network. In this case, the term ‘server’ in the steps above is replaced with the term ‘peering IP network’.

In further embodiments, the disclosed systems and methods may incorporate a surrogate (or eNAP) manager, as disclosed in Provisional App. No. 62/309,610, to allow elastic service provisioning by intelligently activating and managing the surrogate eNAPs based on dynamic statistics reported from the network and the servers. For example, a surrogate manager may consider various metrics, such as server state, server statistics, network statistics, etc., and determine an optimal or preferable eNAP or the primary sNAP to respond to an HTTP request. In some embodiments, the namespace may be extended or otherwise modified to permit a surrogate manager to determine a scope path to be published for an HTTP request or other message (e.g., operating at the publish/subscribe level, in some embodiments integrated with the PCE). Accordingly, the surrogate manager and/or the PCE may determine whether or not to direct a particular request from a cNAP to a currently “better” eNAP than the primary sNAP.