Method and apparatus to create and manage virtual private groups in a content oriented network

A content router for managing content for virtual private groups in a content oriented network, the content router comprising storage configured to cache a content from a customer in a content oriented network (CON), and a transmitter coupled to the storage and configured to forward the content upon request, wherein the content is signed by the user, wherein the CON provides different security levels for different users in a plurality of users, and wherein the plurality of users correspond to a plurality of user classes.

Not applicable.

REFERENCE TO A MICROFICHE APPENDIX

Not applicable.

BACKGROUND

In a content-oriented network (CON) or information-centric network (ICN), a content router is responsible for routing user requests and content to proper recipients. In the CON, a domain-wide unique name is assigned to each entity that is part of a content delivery framework. The entities may comprise data content, such as video clips or web pages, and/or infrastructure elements, such as routers, switches, or servers. The content router uses name prefixes, which can be full content names or proper prefixes of content names instead of network addresses, to route content packets within the content network. In CONs, content delivery including publishing, requesting, managing (e.g., modification, deletion, etc.) may be based on content name and not content location. One aspect of CONs that may be different from traditional Internet Protocol (IP) networks is the ability of CONs to interconnect multiple geographical points and cache content temporarily or store content on a more persistent basis. This may allow content to be served from the network instead of an original server, and thus may substantially improve user experience. The caching/storing may be used for real time data that is fetched by the user or for persistent data that belongs to the user or to a content provider, e.g., a third party provider.

SUMMARY

In one embodiment, the disclosure includes a content router for managing content for virtual private groups in a content oriented network, the content router comprising storage configured to cache a content from a customer in a content oriented network (CON), and a transmitter coupled to the storage and configured to forward the content upon request, wherein the content is signed by the user, wherein the CON provides different security levels for different users in a plurality of users, and wherein the plurality of users correspond to a plurality of user classes.

In another embodiment, the disclosure includes a content oriented network (CON) system comprising a cache configured to receive a signed content from one of a plurality of Virtual Private Groups (VPGs), cache the signed content, and forward the cached signed content upon request, a first component coupled to the cache and configured to receive the signed content from a publisher and send the signed content to the cache, and a second content coupled to the cache and configured to receive the signed content from the cache and send the signed content to a subscriber that verifies the signed content, wherein the CON provides different security levels for different one of the plurality of VPGs.

In a third aspect, the disclosure includes a network apparatus implemented method comprising receiving at a receiver first content from a first publisher and second content from second publisher, wherein the first content has been signed using a signature of the first publisher, and wherein the second content has been signed using a signature of the second publisher, encrypting with a processor the first and second content, storing the first and second content in a content oriented network (CON), and enforcing a first security policy for the first content and enforcing a second security policy for the second content, wherein the first security policy is different from the second security policy.

DETAILED DESCRIPTION

The caching/storing feature of a CON may have several implications to the user in terms of management, performance, security, and reliability of handled data. The implications may depend on the service level agreements (SLAs) between the CON and the user. In some scenarios, the user may entrust the CON to manage all its data. In other scenarios, the CON may only provide a best effort service, such as giving priority to the preferred user, during the content dissemination process. There may be a need to provide differential treatment to users using a CON as different users may have different requirements, e.g., in terms of content dissemination requirements in terms performance, reliability and security.

Disclosed herein are systems and methods for serving different users or user groups that may have different preferences and requirements. A group of users (mostly affiliated to a common entity, may have grouped in an ad hoc manner) and that may have a common set of preferences in terms of the requirements for how its content is to be managed by the CON SP is referred to herein as a VPG (We use the term VPG as a more general term instead of VPN, as traditionally VPN has been used to indicate an Enterprise instance over a shared infrastructure. In our context VPG could be a VPN or any group of users/entities trying to achieve a common objective). The group may be virtual in the sense that the members of the group may be geographically dispersed and logically overlaid over a CON infrastructure. The group may also be private in the sense that the CON may allow the group to preserve VPG attributes (in terms of content being disseminated) similar to the case if the content dissemination is managed by the VPG themselves. A VPG may be any set of users that are bound by common properties on aspects related to membership, resource (e.g., informational resource and network facility resource), performance, security, reliability, or combinations thereof. For example, a VPG may be an Enterprise, a content creator/distributor (e.g., Netflix, Hulu, etc.), or an online retailer (Amazon, Walmart, etc.) with facilities that may be geographically distributed and whose SLA requirements may be stringent with respect to performance, security, and/or reliability. Alternatively, the VPG may be a form of a social network (e.g., Facebook, Youtube, etc.), which may bind users by their common interests.

Based on the systems and methods, the CON may support security issues for VPG users, such as privacy and confidentiality of shared data and associated network resource. Additionally, each VPG may have corresponding application requirements, e.g., to improve content dissemination among the VPG's users. Such application layer support may be extended in the CON to each VPG. The CON may be based on a framework, e.g., a infrastructure, that allows VPGs of different requirements to coexist on the CON. The framework may allow the CON to formulate specific policies for each of the VPGs, offer customized treatment and realize the policies using building blocks to support VPGs in the CON. The framework may span various elements of the content plane and other planes in the CON to allow VPG creation and operation, as described in detail below.

FIG. 1illustrates an embodiment of a CON architecture100, where content objects is uniquely identified by it ID and delivered to customers based on request for it. The CON architecture100may comprise a plurality of customer nodes/sites112that may publish (push) and/or subscribe or request (pull) content in a CON110. The customer nodes/sites112may correspond to users and/or user applications. The users may be publishers, subscribers, Enterprises (e.g., Healthcare, Financial, Insurance, Movie studios, etc.), Social Networks, Governments, First Responder networks, Sensor Networks, Data Transmission Networks, Mobile-to-Mobile (M2M) networks, other content user types, or combinations thereof.

The customer nodes/sites112may be nodes, devices, or components configured to deliver content to and receive content requests from the users or user applications. For instance, the customer nodes may be fixed or mobile user-oriented devices, such as desktop computers, notebook computers, personal digital assistants (PDAs), or cellular telephones. Alternatively, the customer nodes may be connectivity devices at customer premises, such as modems or set-top boxes. The customer nodes may also comprise customer equipment (not shown) that may be configured to receive content from the CON110, e.g., via access networks, and distribute the content to a plurality of customers112. For instance, the customer nodes may comprise optical network terminals (ONUs) and/or very high bit rate Digital Subscriber Line (VDSL) transceiver units at residential locations (VTU-Rs). The access networks may be any networks that provide access to the content in the CON110, such as Virtual Private Networks (VPNs).

The CON110may provide a plurality of services to the customer nodes/sites112, including content publishing/subscribing or requesting, content cashing/storing, customer mobility support, security, and/or other content oriented services. The CON110may also be referred to herein as an Information Centric Network (ICN). The CON110may comprise a plurality of network nodes130, which may be coupled to each other via network links, e.g., fixed connections. The network nodes130may be any nodes, devices, or components that support transportation of traffic, e.g., frames and/or packets, through the CON110. The network nodes130may pass the traffic onto or receive the traffic from other nodes in the CON110. The network nodes130may comprise a plurality of content servers that store or cache content, which may be provided to users or subscribers, e.g., upon demand. For example, the network nodes130may be routers, switches, or bridges, such as backbone core bridges (BCBs), provider core bridges (PCBs), or label switch routers (LSRs).

Additionally, the network nodes130may comprise content routers that forward content based on content name prefixes. The content routers may be configured to route, cache, and/or store content. Some of the content routers, e.g., edge nodes, may be coupled to the customer nodes/sites112, e.g., via a plurality of access networks, wired links, or wireless links. The content routers may be edge nodes and possibly core nodes in the CON110that forward content traffic to the customer nodes/sites112based on a customer request or demand. The content routers may also receive content requests from the customer nodes/sites112. For example, the content routers are enhanced versions of traditional routers or bridges, such as backbone edge bridges (BEBs), provider edge bridges (PEBs), or label edge routers (LERs) that forward content based on content name prefixes, from a transport perspective the roles of these nodes could be the same (even for backward compatibility), but more importantly they are enabled for content distribution through features like dynamic/persistent caching, and application level assistance. These content routers could also be fully functional CCN routers or content routers based on other proposals, in which case the goal of content dissemination is ingrained in the transportation layer. The network could be a combination of these pure content routers, traditional router/switches or a combination thereof considering the case of deployment of these futuristic technologies.

In the CON architecture100, the CON110may have a CON plane infrastructure120that handles providing different services to the customer nodes/sites112. The CON plane infrastructure120comprise a plurality of operation planes that support the different services for the customer nodes/sites112. For instance, the CON plane infrastructure120comprise a management plane, a storage and computing plane, a control plane, a content plane (also referred to as content data plane), a transport plane. The different planes may handle different aspects of the CON operations and resources related to content, services, and customer nodes/sites112, such as management, storage, control, and transport. Typically, each of the planes may treat the customer nodes/sites112and their corresponding content and support the services for the different customer nodes/sites112, e.g., in terms of performance, security, and reliability, substantially in a similar or flat manner. However, the customer nodes/sites112may belong to different groups, e.g., different VPGs, which may have different requirements (e.g., Quality of Service (QoS) requirements), SLAs, and/or other policies. Typically, the flat plane behavior of the planes in the CON plane infrastructure120does not consider the different requirements of the VPGs, which may cause reduced network efficiency and waste of network resources. For example, disseminating content for different VPGs that have different SLAs in a similar manner may prevent effective load balancing in the CON110.

In an embodiment, the CON110may be an ICN, where the cached content may have one or more owners that may be associated with one or more customer nodes/sites112. The owners may rely on the ICN service provider (SP) to deliver the content to authorized users (e.g., also associated with customer nodes/sites112). Thus, the ICN may be configured to provide the different content of the different owners to their corresponding users based on different requirements associated with the different owners. The requirements may be related to performance (e.g., storage, computing, and/or bandwidth), availability, reliability, security, or combinations thereof. Specifically, the users of the different owned content and owners may be separated into a plurality of VPGs. As such, the different planes in the CON plane infrastructure120may be virtualized, e.g., configured or provisioned, to handle and service a plurality of VPG instances that correspond to the VPGs, as described below.

FIG. 2illustrates an embodiment of a CON plane infrastructure200that may support a plurality of VPGs that have different requirements, SLAs, and/or other policies in an efficient manner. Specifically, the CON plane infrastructure200may support a plurality of VPG instances across a plurality of operation planes, e.g., in terms of management, performance, security, and reliability. The VPG instances may comprise a first VPG instance (VPG-A) and a second VPG instance (VPG-B), which may have corresponding applications, customizations, and policies. The CON plane infrastructure200may allow inter-VPG interaction between the VPG instances. Additionally, the CON plane infrastructure200that may support public access for customers or users that may not belong to the VPG instances, e.g., according to default policies.

The operation planes in the CON plane infrastructure200may comprise a VPG content plane210, a VPG control plane220, a VPG storage and computing plane230(also referred to as resource management plane), a VPG transport plane240, and a VPG management plane250for supporting the different VPG instances and public access based on their corresponding policies. The VPG content plane210may be configured to support the different security SLAs of the VPG instances and public access and handle policy enforcement. The VPG control plane220may be configured to handle routing and resolution for the different VPG instances and public access. The VPG storage and computing plane230may be configured to handle storage and computing for the different VPG instances and public access. The VPG transport plane240may be configured to handle data forwarding and resource management for the different VPG instances and public access. The VPG management plane250may allow interaction between the different VPG users260and the different planes of the CON plane infrastructure200, e.g., via VPG service application programming interfaces (APIs)252. The VPG service APIs may be configured to support ICN service primitives and/or application customizations for the different VPG instances. The service APIs may comprise different information, including type, a VPG, user, and/or service identifier (VPG-ID), security information, content, action information, and/or other information.

FIG. 3illustrates an embodiment of a VPG state300that may be established at a content router to support a VPG instance, e.g., based on the CON plane infrastructure200. The content router may be configured similar to the content routers described above and may route content objects that belong to a VPG instance using the VPG state300. In the case of a plurality of VPGs, the content router may establish a VPG state300for each VPG instance. The VPG state300may route the VPG associated content based on a plurality of corresponding VPG policies330and using a persistent cache or buffer340dedicated for the VPG instance. The persistent cache or buffer340may be a portion of a physical buffer or storage component of the content router.

The VPG state300may be implemented at a plurality of operation planes, including a management plane, a content plane, a control plane, and a transport plane. For instance, the VPG state300may implement at a VPG content plane310a plurality of functions for handling content routing. The content plane functions may be implemented using a VPG application processing logic314that may process the content and a VPG forwarding decision316that may decide proper routing based on content information. The VPG state300may also implement at a VPG control plane320a plurality of functions for supporting content routing. The control plane functions may be implemented using a VPG content routing protocol322, a VPG service/management API324, a VPG resolution protocol326, and/or a VPG signaling protocol312. Additionally, the VPG state300may implement at a VPG transport plane a plurality of functions for forwarding the content in the CON. The transport plane functions may be implemented using virtualized forwarding318, e.g., established for the VPG instance, based on corresponding virtualized transport resources319(e.g., QOS resources) for the VPG instance.

A plurality of VPG states300at one or more content routers may enable a content router and the CON to provide private treatment for data or content, e.g., for a plurality of VPGs (e.g., content owners), in a public or shared CON infrastructure. This may also enable the VPGs to negotiate different SLAs with a CON or an ICN SP to meet the VPGs' requirements. Thus, the ICN SP may use its resources more effectively, for instance by multiplexing resources among multiple VPGs. The ICN SP may also handle a plurality of users with different requirements by prioritizing failure reactions, such as service restoration in case of failures, based on customer priority.

The VPG SLA requirements may comprise security requirements, accessibility requirements, availability requirements, reliability requirements, QoS requirements, application customization requirements, or combinations thereof. The security requirements may comprise aspects related to authentication/authorization, user privacy, confidentiality, data Integrity, trust management, or combinations thereof. The security requirements may be classified into two security levels, a VPG security level and a VPG member security level. At the VPG security level, the VPG may require a level or amount of security assurance on a plurality of interactions and on VPG content that may be stored in the CON.

The CON may also use a group level security paradigm to implement VPG level security policies across multiple or all members of the CON. At the VPG member security level, the CON may or may not be involved. If the CON is involved, then the CON may enforce finer grained security policy control features in comparison to the VPG level, e.g., as required by the VPG for its members. The CON may also allow the members to define their own security policy in the context of the VPG. A plurality of per-user security level functions may be used and handled exclusively by the VPG customer itself, in which case the CON may not be involved in any security related tasks. Alternatively, the CON may take over the responsibility of delivering all the security related assurances to the members of a VPG. See, e.g., U.S. patent application Ser. No. 13/226,605, filed Sep. 7, 2011 and entitled “Method and Apparatus to Create and Manage a Differentiated Security Framework for Content Oriented Networks.” which is incorporated herein by reference. The ideas presented in this patent application could be a type of service a CON provider may provide as a choice to the VPG. In another alternative, a hybrid model may be used where the per-user security level functions may be split between the VPG and the CON. The hybrid model may be a suitable tradeoff from both a complexity and a business model perspective.

One of the reasons a CON customer may be interested in VPG service may be the efficiency the CON provider may offer the customer with respect to disseminating the content to its VPG members. This efficiency may be achieved due to the CON spanning substantially vast geography, and hence covering significant user base, and due to the CON's possible connections with other access/metro/core service providers. In addition to content dissemination efficiency, the VPG may also demand assurance in terms of accessibility, availability, and/or reliability of the VPG's content.

The accessibility requirements may comprise assurance that a member of a VPG is able to access the data in the CON, from a third party network, and/or from anywhere irrespective of whether the member is mobile or has a fixed or less frequently changing location. The availability requirements may comprise assurance with respect to the degree of availability of a piece of content published to the network by the VPG. Availability may be ensured by replicating the content at multiple locations. Replication may be required to make the VPG content dissemination process more efficient, where more replication of data may translate into better QoS to the VPG members. Additionally, replication may be needed to account for failures, such as content router or a link failure which may cause network entities to be disconnected from the network. In this case, replication may allow the accessibility of a copy of the content with improved probability. The reliability requirements may comprise service level assurance with respect to downtime, fail-over, hot standbys, and/or protection switching policies, for instance considering failure of storage or network resources and/or vulnerability of the locations where the CON infrastructure hosts the VPG. The availability factors above may be dependent on the reliability of the infrastructure.

The QoS requirements, e.g., from a content plane perspective, may translate into metrics that matter to the members of the VPG. The QoS requirements may also vary with the type of applications. The mapping of user Quality of Experience (QoE) to network level QoS requirements is well documented in several related standards. For example, in the case of real time services, end-to-end delay and jitter may be more sensitive parameters, where streaming and browsing services are sensitive to response time and packet losses. These performance metrics may be obtained by breaking the end-to-end QoS budgets into control and data plane functions in the content plane. This form of granular budgeting may be the first step to enforce and engineer QoS requirements that may be met in practice. Further, several applications may use the content layer at the users end to publish or retrieve their corresponding content. The content plane interactions may be at the level of an application layer in the Open Systems Interconnection (OSI) model. Allowing the VPG to have an instance of the application in the CON may allow the VPG to disseminate content efficiently to its members and also enhance the member's QoE accordingly, e.g., to ensure the application customization requirements.

FIG. 4illustrates an embodiment of a VPG instantiation400. The VPG instantiation400may comprise identifying distributed storage, computing, and/or bandwidth resource spread across the network. Some form of connectivity may be used to identify and logically connect these different resources. The VPG instantiation400may be implemented in a CON architecture similar to the CON architecture100. The CON architecture may comprise a CON410that comprises a plurality of interconnected content routers412. The CON410and the content routers412may be configured similar to the corresponding components above. Some of the content routers412, e.g., edge nodes, may be coupled to a plurality of customers420, e.g., via access networks, which may be associated with one or more VPGs. Some of the customer nodes/sites420may correspond to the same VPG (VPG-A) and may comprise a plurality of users distributed across a plurality of geographical locations or sites, e.g., Users-Site-1, Users-Site-2, and Users-Site-3. Accordingly, some of the content routers412may establish a corresponding VPG instance to handle content routing for VPG-A, e.g., based on the VPG state300and the CON plane infrastructure200.

A VPG instance in a content router412may enforce the VPG SLA requirements described at the control, management, and the transport planes related to content dissemination. This may require configuration, storage/transport resource reservation, policy enforcement, and control/data protocol instantiation for each VPG. The VPG instantiation400may address where one or more VPGs may be instantiated or established in the CON410using a group of content routers412for each VPG. The VPG instantiation400may also address the amount of resources to be allocated to meet the SLA requirements agreed upon between the VPG and the CON. Theses aspects may be addressed by considering a plurality of factors, including: 1) the geographical spread of the VPG users; 2) the user behavior from which the user request and resulting traffic demand may be predicted for the members of the VPG at a site; 3) the application requirements and type of content requested by the users; and 4) the user expectations in terms of the SLA parameters.

Following the traditional model of provisioning VPNS VPG can be instantiated achieved along the edge nodes without any VPG state in the core of the CONs or ICNs. However, it may be advantageous to leverage the ICN core to improve content delivery. Based on the VPG instantiation scheme400, both the edge and the core of the CON410may be used to establish the VPG instance. However, some but not necessarily all the content routers412in the CON410may establish VPG states. Any of the content routers412in the CON410may be capable of caching and hence serving content. Instantiating the VPGs only at the edge nodes may be easier to implement, e.g., in terms of management, but may not provide an optimal or efficient solution for the VPG in terms of content-dissemination. Alternatively, deploying a VPG instance at all or every content router412may not be scalable and may substantially increase network overhead. A preferred approach to overcome the limitations of both solutions may be to select a subset of the content routers412, which may be a compromise of both approaches. As such, a subset of content routers412that may be used in the CON410may comprise both edge nodes, which may proxy the user requests, and core nodes, which may ensure the VPG SLA requirements.

The VPG instantiation400may be implemented for a plurality of VPGs based on a plurality of inputs, including the expected content demand, e.g., geography, user population, number of sites, user behavior, traffic profile, work loads, or combinations thereof. The inputs may also comprise SLA requirements (e.g., in terms of availability and replication), performance (e.g., in terms of throughput and QoE/QoS), reliability (e.g., in terms of downtime, failures, and/or hot-standby)). The inputs may also comprise network aspects, e.g., in terms of storage, computing, and bandwidth resources, and economic considerations, e.g., in terms of service storage/bandwidth/computation cost and resource limitations. The VPG instantiation400may be based on an optimization objective, e.g., ICN objectives in terms of reducing resource usage, increasing user QoE, and/or increasing revenues. The VPG instantiation400may provide a plurality of outputs, including the subset of content routers412where a VPG is to be instantiated, the virtualized or provisioned resources (e.g., for storage and computing) on each selected content router412, and the bandwidth resources required to ensure performance, availability, and reliability. The outputs may also comprise predetermining the routing over the bandwidth resources or adapting the routing to the VPG requirements. The security of the instantiated VPG instance may be based on the security scheme described in U.S. patent application Ser. No. 13/226,605 filed Sep. 7, 2011 by Xinwen Zhang et al. and entitled “Method and Apparatus to Create and Manage a Differentiated Security Framework for Content Oriented Networks”, which is incorporated herein by reference.

One of the considered resources during VPG instantiation is the allocation of the storage resource to the user. This storage may comprise storage space to cache content objects based on the real time needs of the VPG members and persistent storage. Based on the distributed caching scheme that is used, the VPG instances on the content routers412may be indexed into local storage (locally in the content routers412) and/or remote storage (in remote content routers412). A plurality of collaborative schemes may be applied to improve distributed VPG storage, such as in terms of deciding to cache content locally or use the collaborative model to distribute VPG content based on storage space constraints. The tradeoff between the two approaches may be the efficiency of caching versus the control traffic overhead needed to maintain the cache state of the VPG instances in the content routers412.

FIG. 5illustrates an embodiment of VPG addressing and access500that may be used for an instantiated VPG instance in a CON. The CON may comprise a plurality of interconnected content routers512, which may be coupled to a plurality of nodes514associated with individual users and a plurality of customer sites516that may serve a group of users, such as in an Enterprise or Social network. The customer nodes514and the customer sites516may be configured similar to the corresponding components above. The customer nodes514may communicate with the content routers512and/or the customer sites516via a plurality of access networks520. The customer nodes514and customer sites516may correspond to a plurality of VPGs.

The VPG addressing and access500may be used to ensure appropriate association of the VPG sourced interaction (e.g., at the management, control, and data planes) to the VPG instance on the content routers512. This may require the identification of the publish/request and data flows pertaining to the VPG instance at each content router512associated with the VPG instance. This may be achieved by associating a plurality of VPG IDs to the corresponding VPG instances at the content routers512. For the further control of the service access, the VPG-ID may be concatenated with user or member IDs associated with the VPG users, e.g., the customer nodes514and/or customer sites516. This level of control may allow setting up Access Control Lists (ACLs) per VPG instance. Additionally, other network level IDs may be used by the CON operator to distinguish between the VPG instances. Such IDs may be required for control plane and data plane operation within the CON's context.

FIG. 6illustrates an embodiment of a VPG management plane virtualization600that may be used at the management plane to support operations for an instantiated VPG instance in a CON. The CON may comprise a plurality of interconnected content routers612, a plurality of customer nodes614, a plurality of customer sites616, and a plurality of access networks620, which may be configured substantially similar to the corresponding components above. The customer nodes614may be coupled directly to the customer sites616, which may be customer operators or content providers for the customer nodes614, or via the access networks620, as shown inFIG. 6. The customer nodes614and customer sites616may correspond to a plurality of VPGs. The corresponding VPG instances provisioned at the content routers612are indicated inFIG. 6by a plurality of ellipses that have different patterns. In the VPG management plane virtualization600, a user (e.g., customer node614) or VPG customer operator (e.g., customer site616) may manage the policies that define the operation of the VPG. The managed policies may be based on policy management and SLA management.

Policy management may comprise differentiating policies with respect to privileges awarded to the member of VPG versus the customer side operator of the VPG. The management related interaction with the VPG may be authorized by appropriate security policies taking the privileges into consideration. The member related management privileges may be initially set by the customer operator. For member related interaction, the first step of authorization may be implemented by the customer, which may allow fine grained privilege differentiation among the members of the VPG. This first step of management interaction may be authorized by the VPG customer and subsequently by the CON. The customer operator may be capable of defining policies within the bounds of the SLA parameters that are agreed between the VPG and the service provider. Any policy defined by the operator may be applied to all the VPG instances in the CON. This may be achieved using a centralized entity610or a decentralized mechanism.

In a centralized approach, the VPG customer, e.g., a customer node614, may trigger policy changes by interacting with the first hop CON proxy, e.g., a content router612at the edge of the CON. The customer node614may send one or more policies, actions required, VPG IDs and operator IDs (for the customer operators or the customer sites616) or Member IDs (for the customer nodes514) to the CON proxy to trigger policy changes. The CON proxy may then forward a request to the centralized entity610that may be a CON end VPG manager to identify the VPG instances in the CON and apply the related policies consistently across all the VPG instances. The centralized approach may be further extended for member interactions, where the member defined policies (e.g. policies of a group within the VPG) may be applied across all the VPG instances. Alternatively, a decentralized approach may be implemented where the VPN's control plane may be leveraged to propagate and synchronize the policies across all the VPG instances.

The SLA management may handle the policies related to measuring and monitoring the VPG statistics and comparing the policies with existing SLAs, e.g., to decide if the CON SP is abiding by the agreed SLAs. The monitoring of VPG statistics may be achieved between the VPG sites, e.g., by monitoring the members traffic and response statistics. In some scenarios, the monitoring of VPG statistics may also be achieved by collaboration with the CON. In such scenarios, the CON may share some of the VPG statistics collected at its edges with the VPG customer.

The VPG management plane virtualization600may comprise per-VPG level management functions, such as for VPG addressing, provisioning, and VPG management. VPG addressing may use unique global identifiers, which may comprise a plurality of verifiable VPG IDs for the VPG instances and additional identifiers, e.g., at the user/service level, such as the customer operator ID and/or Member ID, which may be needed based on the VPG service definition and VPG content addressing. VPG addressing may be in line with naming semantics or any other flat naming constructs. As such, the interactions with the VPG may be tagged to virtually or physically separate the VPG interactions in the ICN SLA policy management, e.g., static or dynamic negotiation and enforcement. VPG addressing may be used in security features for user privacy (e.g., handling personal and confidential data), user authentication, data integrity, operator policy, access authentication/authorization, content plane resource (e.g., storage and computation), availability (e.g., replication), and reliability (e.g., downtime, fail-over/protection switching policies, hot standby). VPG addressing may be used in configuring transport plane resources associated with QoS (e.g., response time and bandwidth), point of local repair (PLR), and/or latency. VPG addressing may also be used for service API reliability (e.g., publish, request, modify, and/or delete operations). Provisioning may comprise VPG instantiation, e.g., to fulfill VPG requirements and optimization objective as described above, and accounting operations, e.g., to obtain user traffic statistics and charging for services. VPG management may comprise managing user versus VPG operator versus ICN SP privileges, and service APIs, which may be controlled by a user network interface (UNI) to trigger changes in the VPG. The VPG service may be centrally managed by the ICN SP. In one embodiment, VPG management may be based on a business model where the instantiated instances may be controlled by the corresponding VPGs.

FIG. 7illustrates an embodiment of a VPG storage and computing plane virtualization700that may be used to support storage/caching for a plurality of VPG instances at the storage and computing plane in a CON. The CON may comprise a plurality of interconnected content routers712, a plurality of customer nodes714, and a plurality of access networks720, which may be configured substantially similar to the corresponding components above.

In the VPG storage and computing plane virtualization700, storage and computation may be distributed in the CON according to how the corresponding VPGs were instantiated. Each content router712that comprises a VPG state may have its provisioned or virtualized private storage and computing resource for that VPG. However, the content storing and computation may not be required in all the VPG instances on all the content routers712. For example, content for one VPG (VPG-A) may be distributed based on computation and sorted at the edge content routers712but not the core content routers712. Further policies may be applied over the storage and computing resources to prioritize their usage among the VPGs' content and applications. Based on the control plan intelligence, user requests to publish/subscribe content (e.g., using VPG IDs) may leverage or make use of the availability of the distributed storage and computation resource to maximize or improve content dissemination efficiency. A centralized mode of content resolution, e.g., at a centralized CON entity, may depend on VPG repositories, e.g., local stores/caches at the content routers712, to store/cache and retrieve distributed content portions or chunks across the content routers712. Such distributed content resolution scheme may be optimized for static content. In this case, dynamic content may be staged before being retrieved. Alternatively, a decentralized mode may explore the VPG instances to resolve the content and treat all content as dynamic content.

FIG. 8illustrates an embodiment of a VPG control plane virtualization800that may be used to manage control plane protocol message exchanges for a plurality of VPG instances at the control plane in a CON810. The protocol message exchanges may be related to content publishing/request, routing, name resolution, collaborative caching, and/or other protocols to enable efficient content dissemination. The CON810may comprise a plurality of content routers812coupled to a plurality of customer nodes/sites814, which may be configured as described in the embodiments above. For example, the VPG control plane virtualization800may manage a plurality of protocol message exchanges for a first VPG (VPG-A), a second VPG (VPG-B), and a third VPG (VPG-C). As such, the content routers812may establish three separate VPG states for each corresponding instantiated VPG instance. The VPG states may comprise a first VPG state (A) for VPG-A, a second VPG state (B) for VPG-B, and a third VPG state (C) for VPG-C. Specifically, the content routers812over which the VPG instances have been instantiated may establish a corresponding control protocol instance for each of the VPG instances. For example, the content routers812may establish a first control protocol instance840for VPG-A, a second control protocol instance850for VPG-B, and a third control protocol instance860for VPG-C.

The VPG control plane virtualization800may be used to manage the control plane protocol exchange between the same VPG instance distributed across the CON810, e.g., across the content routers812. The message exchange may comprise a plurality of functions related to managing the VPG policies, cache resources, name resolution management, content forwarding table, replication, and data consistency management in the context of a VPG. As such, multiple replicated control plane instances (at multiple content routers812) may be used for each VPG, which may ensure substantially complete isolation between the VPG instances and exchanges and relatively easy provisioning but may lead to excessive overhead. For example, the VPG control plane virtualization800may use a Distributed Hashed Table (DHT) for each VPG instance to handle user publish/request actions that require appropriate content indexing and name resolution. Using such a per-VPG control plane approach, multiple instances of the DHT may be created per VPG. In this case, each VPG-DHT instance may operate independent of one another. The disadvantage of this approach is the overhead associated with multiple instances of the DHT protocol.

FIG. 9illustrates an embodiment of another VPG control plane virtualization900that may be used to manage protocol message exchanges for a plurality of VPG instances at the control plane in a CON910. The CON910may comprise a plurality of content routers912coupled to a plurality of customer nodes/sites914, which may be configured as described in the embodiments above. For example, the VPG control plane virtualization900may manage a plurality of protocol message exchanges for a first VPG (VPG-A), a second VPG (VPG-B), and a third VPG (VPG-C). As such, the content routers912may establish three separate VPG states for each corresponding instantiated VPG instance. The VPG states may comprise a first VPG state (A) for VPG-A, a second VPG state (B) for VPG-B, and a third VPG state (C) for VPG-C. Specifically, the content routers912over which the VPG instances have been instantiated may establish a single protocol instance940for all the VPG instances. The content routers912may appropriately de-multiplex the protocol exchange messages for VPG-A, VPG-B, and VPG-C based on the individual VPG IDs associated with the different VPG states A, B, and C or instances.

Similar to VPG control plane virtualization800, the VPG control plane virtualization900may be used to manage the control plane protocol exchange between the same VPG instance distributed across the CON910, e.g., across the content routers912. However, the VPG control plane virtualization900may use a single instance of the control plane and associate appropriate demultiplexing properties, e.g., using filter attributes to control plane messages and map the messages to the proper VPG instance. The VPG control plane virtualization900may use a single DHT for all the VPG instances to handle user publish/request actions that require appropriate content indexing and name resolution. This may require provisioning VPG IDs associated with the control plane messages when exchanging the messages between the CON nodes and/or content routers912involved in the control plane operations.

FIG. 10illustrates an embodiment of another VPG control plane virtualization1000that may be used to manage protocol message exchanges for a plurality of VPG instances at the control plane in a CON1010. The CON1010may comprise a plurality of content routers1012coupled to a plurality of customer nodes/sites1014, which may be configured as described in the embodiments above. For example, the VPG control plane virtualization1000may manage a plurality of protocol message exchanges for a first VPG (VPG-A), a second VPG (VPG-B), and a third VPG (VPG-C) (VPG-B and VPG-C are not shown). As such, the content routers1012may establish three separate VPG states for each corresponding instantiated VPG instance, comprising a first VPG state (A) for VPG-A, a second VPG state (B) for VPG-B, and a third VPG state (C) for VPG-C.

Specifically, the content routers1012may establish a corresponding control protocol instance for each of the VPG instances using prefix based content routing paradigms. Each content router1012may host multiple VPG instances using a state of pending table, cached data, and forwarding data for each instance to handle the interest packets. The content routers1012may use routing protocols, such as open shortest path first (OSPF) and/or intermediate system to intermediate system (IS-IS), to enable per VPG instance to manage the forwarding tables. The content routers1012may establish a virtual forwarding information base (VFIB) for each VPG instance to handle the forwarding of the packets for each instance. In some embodiments, the content router1012may also use algorithms for content routing, name resolution and/or server selection for each VPG instance that meet the corresponding VPG requirements. For example, server selection (the choice of servers and network paths) for each VPG may be different, and thus the content router1012may use a corresponding different server selection algorithm for each VPG.

FIG. 11illustrates an embodiment of another VPG control plane virtualization1100that may be used to manage protocol message exchanges for a plurality of VPG instances at the control plane in a CON1110. The CON1110may comprise a plurality of content routers1112coupled to a plurality of customer nodes/sites1114, which may be configured as described in the embodiments above. For example, the VPG control plane virtualization1100may manage a plurality of protocol message exchanges for a first VPG (VPG-A), a second VPG (VPG-B), and a third VPG (VPG-C) (VPG-B and VPG-C are not shown). As such, the content routers1112may establish three separate VPG states for each corresponding instantiated VPG instance, comprising a first VPG state (A) for VPG-A, a second VPG state (B) for VPG-B, and a third VPG state (C) for VPG-C. Specifically, the content routers1112may establish a single control protocol instance1140for all the VPG instances using prefix based content routing paradigms. Each content router1112may host a single state of pending table, cached data, and forwarding data for all the VPG instances to handle the interest packets. As such, the content routers1112may use a demultiplexing scheme to route the protocol messages to the appropriate VPG instances.

FIG. 12illustrates an embodiment of a VPG data plane virtualization1200that may be used to handle content data received and transmitted for a plurality of VPG instances at the data or content data plane in a CON1210. The CON1210may comprise a plurality of content routers1212coupled to a plurality of customer nodes/sites1214, which may be configured as described in the embodiments above. For example, the VPG data plane virtualization1200may handle content data for a first VPG (VPG-A), a second VPG (VPG-B), and a third VPG (VPG-C). Thus, the content routers1212may establish three separate VPG states for each corresponding instantiated VPG instance, comprising a first VPG state (A) for VPG-A, a second VPG state (B) for VPG-B, and a third VPG state (C) for VPG-C.

The content data may correspond to both the user interest emanating from a VPG and data response packets corresponding to the expressed interests. The content portions or chunks exchanged between the VPG instances and/or the content router1212may be encoded with specific attributes, such as the content name that a content portion pertains to or the VPG ID of the VPG instance that the content portion originated from or is to be mapped into at a receiving end. Such meta-data may be used to map the received data to appropriate VPG instances. The VPG data entering the CON1210boundary may be identified by the content router1212as it is tagged, demultiplexed, and processed in the corresponding VPG instance. The resolution of content request to location and forwarding decision may also be taken in the context of the VPG instance. Further, SLA policies (e.g., for performance, security, availability, and reliability) may be enforced over the interest requests/data responses (e.g., content portions) in the context of each VPG. This may trigger interaction with the VPG control plane.

FIG. 13illustrates an embodiment of a VPG transport plane virtualization1300that provides a plurality of forwarding instances for a plurality of VPG instances at the transport plane in a CON1210. The forwarding instances may support reachability between the VPG instances and/or the content routers1312and corresponding resource management functions for transporting data between the VPG instances/content routers1312. The CON may comprise a plurality of content routers1312(only one is shown) coupled to a plurality of customer nodes/sites1314, which may be configured as described in the embodiments above. For example, the VPG transport plane virtualization1300may establish forwarding instances for a first VPG1341(VPG-A), a second VPG1342(VPG-B), and a third VPG1343(VPG-C). Thus, the content routers1312may establish three separate VPG states for each corresponding instantiated VPG instance.

One or more VPG instances may span across the CON, e.g., across the content routers1312. The network nodes, e.g., the content routers1312may be configured to demultiplex the incoming content portions and/or control message exchanges of the different VPG instances. The CON's or ICN's content plane may be a transport plane aware, e.g., aware of the transport plane functions. For incoming traffic, the content plane may be configured to map existing transport virtualization constructs, such as VPN Routing and Forwarding Table (VRF), virtual router (VR), and/or Virtual Private Local Area Network Service (VPLS) constructs, which may be used in current networks or technologies.

For example, VPG-A1341, VPG-B1342, and VPG-C1343at the content data plane1340may be mapped into corresponding VRF/VPG-1instance1351, VRF/VPG-2instance1352, and VRF/VPG-3instance1353, respectively at the transport plane using appropriate constructs required to map the traffic to the right VRF instance. The content router1312may receive a plurality of packets associated with VPG-A, VPG-B, and VPG-C at a transport physical layer1370. The received packets may be processed by a virtualized VPG resource management function1360and then demultiplexed by a virtualized VPG demultiplexer1350. The packets may be demultiplexed properly into the corresponding VRF/VPG-1instance1351, VRF/VPG-2instance1352, and VRF/VPG-3instance1353, e.g., at the transport plane. The transport plane instances may then be properly mapped into the content plane instances VPG-A1341, VPG-B1342, and VPG-C1343.

For outgoing traffic, the content plane instances VPG-A1341, VPG-B1342, and VPG-C1343may also be mapped into the transport plane VRF/VPG-1instance1351, VRF/VPG-2instance1352, and VRF/VPG-3instance1353, in a reverse manner. At the forwarding level, the content routers1312may be configured to add policies to handle different content requests/responses differently. The content plane interaction between any two content routers may be mapped to their corresponding transport layer virtualization, so that the traffic for a VPG instance may traverse the correct instance in the transport plane. Mapping content plane virtualization allows stretching virtualization from application to transport layer.

Transport plane virtualization may be realized by the provider provisioned VPNs. This level of virtualization may allow multiple VPNs to be configured and managed by the VPN service provider. The features provided by such a service may comprise virtual separation of the control and data transport among the hosted VPNs, customized Traffic Engineering (TE) and QoS to meet the individual needs of the VPNs, and security of data traversing between the VPN sites. VPN virtualization may be supported at layer three (L3) and layer two (L2) of the Open Systems Interconnection (OSI) model. The content plane virtualization may be logically connected to the transport plane virtualization, as described above, so that the customization may be extended to all layers of the OSI model. In this case, in addition to content dissemination customization, the VPG may also negotiate SLAs for transport plane connectivity property at the transport plane. The SLA parameters may comprise VPN topology/connectivity and QoS properties based on the traffic offered between the sites. This coupling between the content plane and the transport plane may enable the scope for customized joint TE and SS optimization within a VPG's context.

FIG. 14illustrates an embodiment of a CON security method1400that may be used to provide content integrity and confidentiality. The CON security method may be implemented by a CON, a central authority of the CON, one or more content routers, or combinations thereof. The CON security method1400may be based on any of the security level schemes described above, e.g., based on a user or user group classification, one of the mode of operations described above, or both. The method1400may begin at block1410, where a signed content may be received in the CON, e.g., by a content router. The received content may be signed and published by a user or publisher. The user or publisher may correspond to one or more user groups and may sign the content using pr-p. The content may be published without ensuring confidentiality by the CON, securely published to ensure confidentiality, or securely published for authorized user groups (using groupid-s).

The CON security1400may support one or more VPGs across multiple domains using the notion of exchange points or by extending inter-domain protocols such as External-Border Gateway Protocol (E-BGP) to work across the peering points with appropriate extensions to handle VPG specific information. This also may require appropriate SLA negotiation to meet the requirements of the VPG. The control protocols may be extended to exchange published information from the VPG members across domain boundaries. Thus, the information obtained from another domain may also be associated with certain policies before announcing the information in a local domain. This may allow making content dissemination decisions with the knowledge that VPG instances exists outside the local CON domain. Further, service assurance may also be extended across the peering points by provisioning appropriate bandwidth, storage, and computation resources for VPG traffic crossing the peering points.

The members of a VPG may also be able to access VPG services even when they are mobile. This may not require any special fundamental extensions from the perspective of the constructs that may be used by the CON to enable mobility in a non-VPG scenario. Constructs, schemes, and methods described in U.S. Provisional Patent Application No. 61/439,769 filed Feb. 4, 2011 by Guo-Qiang Wang et al. and entitled “Method and Apparatus for a Control Plane to Manage Domain-Based Security, Mobility and Social Groups in a Content Oriented Network,” which is incorporated herein by reference, may be leveraged to resolve mobile nodes in another domain, and enforce home domain policies in foreign domains. These constructs, schemes, and methods may be combined with per-VPG resource virtualization concepts to provide secured and service assured information dissemination among the mobile members of a VPG.

At block1420, the signed content may be cached/stored in the CON. The content may be encrypted before caching/storing e.g., by the content router. The content may be encrypted using an encryption key k, a groupid-s, or a policy. The encrypted content may also be signed using pr-c. At block1430, a content request may be received in the CON, e.g., by the same or a second content router. The content may be received from a user or subscriber in the same user group or another user group authorized to obtain the content. At block1440, the requested content may be forwarded. The content router may forward the cached/stored content to the subscriber. If the cached/stored content is encrypted, then the content router my decrypt the content using the encryption key k or groupid-s. The subscriber and optionally the content router may also verify the content before obtaining the content. The method1400may then end.

FIG. 15illustrates an embodiment of a network unit1500, which may be any device that transports and processes data through a network. For instance, the network unit1500may be located in the content router or any node in the CON100, or any node in the CON schemes described above. The content router may also be configured to implement or support the CON security method1400described above. The network unit1500may comprise one or more ingress ports or units1510coupled to a receiver (Rx)1512for receiving signals and frames/data from other network components. The network unit1500may comprise a content aware unit1520to determine which network components to send content to. The content aware unit1520may be implemented using hardware, software, or both. The network unit1500may also comprise one or more egress ports or units1530coupled to a transmitter (Tx)1532for transmitting signals and frames/data to the other network components. The receiver1512, content aware unit1520, and transmitter1532may also be configured to implement at least some of the disclosed methods, which may be based on hardware, software, or both. The components of the network unit1500may be arranged as shown inFIG. 15.

The content aware unit1520may also comprise a programmable content forwarding plane block1528and one or more storage blocks1522that may be coupled to the programmable content forwarding plane block1528. The programmable content forwarding plane block1528may be configured to implement content forwarding and processing functions, such as at an application layer or L3, where the content may be forwarded based on content name or prefix and possibly other content related information that maps the content to network traffic. Such mapping information may be maintained in a content table at the content aware unit1520or the network unit1500. The programmable content forwarding plane block1528may interpret user requests for content and accordingly fetch content, e.g., based on metadata and/or content name, from the network or other content routers and may store the content, e.g., temporarily, in the storage blocks1522. The programmable content forwarding plane block1528may then forward the cached content to the user. The programmable content forwarding plane block1528may be implemented using software, hardware, or both and may operate above the IP layer or L2. The storage blocks1522may comprise a cache1524for temporarily storing content, such as content that is requested by a subscriber. Additionally, the storage blocks1522may comprise a long-term storage1526for storing content relatively longer, such as content submitted by a publisher. For instance, the cache1524and the long-term storage1526may include Dynamic random-access memories (DRAMs), solid-state drives (SSDs), hard disks, or combinations thereof.

The network components described above may be implemented on any general-purpose network component, such as a computer or network component with sufficient processing power, memory resources, and network throughput capability to handle the necessary workload placed upon it.FIG. 16illustrates a typical, general-purpose network component1600suitable for implementing one or more embodiments of the components disclosed herein. The network component1600includes a processor1602(which may be referred to as a central processor unit or CPU) that is in communication with memory devices including secondary storage1604, read only memory (ROM)1606, random access memory (RAM)1608, input/output (I/O) devices1610, and network connectivity devices1612. The processor1602may be implemented as one or more CPU chips, or may be part of one or more application specific integrated circuits (ASICs).

The secondary storage1604is typically comprised of one or more disk drives or tape drives and is used for non-volatile storage of data and as an over-flow data storage device if RAM1608is not large enough to hold all working data. Secondary storage1604may be used to store programs that are loaded into RAM1608when such programs are selected for execution. The ROM1606is used to store instructions and perhaps data that are read during program execution. ROM1606is a non-volatile memory device that typically has a small memory capacity relative to the larger memory capacity of secondary storage1604. The RAM1608is used to store volatile data and perhaps to store instructions. Access to both ROM1606and RAM1608is typically faster than to secondary storage1604.