[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

USRE49943E1 - System and method for a context layer switch - Google Patents

System and method for a context layer switch Download PDF

Info

Publication number
USRE49943E1
USRE49943E1 US16/855,771 US202016855771A USRE49943E US RE49943 E1 USRE49943 E1 US RE49943E1 US 202016855771 A US202016855771 A US 202016855771A US RE49943 E USRE49943 E US RE49943E
Authority
US
United States
Prior art keywords
content
context label
cls
routing
layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US16/855,771
Inventor
Guo Qiang Wang
Wen Tong
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
FutureWei Technologies Inc
Original Assignee
FutureWei Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by FutureWei Technologies Inc filed Critical FutureWei Technologies Inc
Priority to US16/855,771 priority Critical patent/USRE49943E1/en
Application granted granted Critical
Publication of USRE49943E1 publication Critical patent/USRE49943E1/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/355Application aware switches, e.g. for HTTP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1076Resource dissemination mechanisms or network resource keeping policies for optimal resource availability in the overlay network

Definitions

  • the present invention relates generally to data communication systems, and more particularly to a system and method for a context layer switch.
  • TCP/IP based Internet After an over forty-year journey from its infancy to a widely accepted business/application model, the TCP/IP based Internet has become a universal communication platform.
  • Internet technologies have successfully transformed legacy end-to-end communication systems from a circuit-to-circuit model (i.e., circuit switching) to a host-to-host model (i.e., packet switching).
  • circuit-to-circuit model i.e., circuit switching
  • host-to-host model i.e., packet switching
  • Recently, however, the industry is gaining momentum to transfer next generation Internet technology from connectivity-based networking to content-based networking.
  • Content-centric networking is designed and optimized for the content itself, and aims to be highly distributed and collaborative to fill the growing demand for networks that support personalization and social media.
  • IP routing is designed for host-to-host conversation, but today most Internet traffic is used for content dissemination.
  • content such as streaming video
  • DSLAM Digital Subscriber Line Access Multiplexer
  • BRAS Broadband Remote Access Servers
  • Over-subscription occurs, for example, when IP routing only provides a “pipe” transmission without regard to the characteristics of the content being carried. Therefore, IP routing has difficulty optimizing content traffic dissemination over underlying link layer network resources such as bandwidth and topology.
  • a network device has an input port for receiving input packets, and an output port for sending output packets, where the input packets and output packets have context layer information.
  • the network device also includes a processor configured to process the input packets and output packets using a network protocol having a context layer.
  • a method of operating a network device includes transmitting and receiving packets on at least one port and receiving a first packet from a client on at least one port, where the packets have context layer information and the first packet includes a content name and a context label header.
  • the method also includes determining if requested content associated with the content name is in a local memory. If the requested content is not in the local memory, at least one second packet is transmitted to a second network device on the at least one port, where the at least one second packet includes the content name. In some embodiments, the at least one second packet also includes a context label header. If the requested content is in the local memory, at least one third packet is transmitted to the client on the at least one port, where the at least one third packet includes the requested content.
  • a method of operating a context level switch includes receiving a first packet from a client on at least one port, where the packet includes a content name and a context label header. The method also includes retrieving the requested content from memory and transmitting at least one second packet to the client on the at least one port, where the at least one second packet includes the requested content.
  • FIG. 1 illustrates a functional block diagram of an embodiment Context Label Switch (CLS) node
  • FIG. 2 illustrates an embodiment CLS reference network model
  • FIG. 3 illustrates networking in the context of an embodiment Context Label Layer (CLL) protocol stack
  • FIG. 4 illustrates content of an embodiment context label
  • FIG. 5 illustrates an embodiment content name with a CL-header
  • FIG. 6 illustrates an embodiment mapping between name space
  • FIG. 7 illustrates content data with a multi-identifier and Context Label (CL) according to an embodiment
  • FIG. 8 illustrates an embodiment name resolution scheme
  • FIG. 9 illustrates a two layered dynamic hash table (DHT) according to an embodiment of the present invention.
  • FIG. 10 illustrates a block diagram illustrating inter-domain content resolution for CLS and non-CLS systems according to an embodiment
  • FIG. 11 illustrates an embodiment implementation of name and content authentication
  • FIG. 12 illustrates an illustrates an embodiment network build-in Storage Node (SN) architecture
  • FIG. 13 illustrates an embodiment joint optimization subsystem
  • FIG. 14 illustrates an embodiment deployment mapping CLS logical entities to network elements
  • FIG. 15 illustrates a block diagram of Content Client (CC) functionality for an embodiment
  • FIG. 16 illustrates a block diagram of Content Proxy (CP) functionality for an embodiment
  • FIG. 17 illustrates an embodiment mapping of a content storage subsystem to a logical node
  • FIG. 18 illustrates a logical view of index nodes and data storage nodes according to an embodiment of the present invention
  • FIG. 19 illustrates a diagram depicting an embodiment CLS user initial entry procedure
  • FIG. 20 illustrates an embodiment CLS topology auto discovery diagram
  • FIG. 21 illustrates distributed content storage according to an embodiment
  • FIG. 22 illustrates distributed content resolution and access according to an embodiment
  • FIG. 23 illustrates an embodiment cluster router architecture
  • FIG. 24 illustrates an embodiment cluster router
  • FIG. 25 illustrates further embodiment cluster routers
  • FIG. 26 illustrates a block diagram showing an embodiment architecture of a CLS
  • FIG. 27 illustrates an embodiment mapping of a system software package onto hardware
  • FIG. 28 illustrates a CLS according to an embodiment
  • FIG. 29 illustrates an embodiment network system using content proxies.
  • Embodiment devices include, but are not limited to context layer switches, routers, network devices, client devices, cellular telephones, and Internet access devices, as examples.
  • Embodiments of the present invention include applications of Context Label Switching (CLS) technology for next generation Internet that moves content among people and machines.
  • a Context Label (CL) as a relationship profile which interrelate the communication-enabled attributes of a network, user and interested content/application.
  • CL is used to label application information chunks (I-chunk) and to guide the data delivery services, and is used to describe the delivery service semantics of Internet (i.e., who, what, when & where).
  • embodiment CLS-enabled network devices could switch and deliver application data among peers.
  • Embodiments work within a Context Label Layer (CLL) framework architecture and operate using content-oriented network communication techniques. In CLL, the CL is created, added, removed and switched between content publisher and consumer or from machine to machine.
  • CLL Context Label Layer
  • the Internet has become a common platform that allows people to share information and content.
  • Content sharing over hyper-connected Internet with user/device mobility has moved Internet communication model from a traditional fixed point-to-point conversation (e.g., phone) to p-mp or mp-mp ubiquitous information dissemination (e.g., video conference).
  • the current technology development is toward the convergence of services over diverse delivery platforms for both wire-line and wireless communication networks. Networks, user devices and service/applications will adapt to the user's personal preference and context.
  • Internet application/service operational semantics can be represented, in some embodiments, as a “Who gets or provides What at Where and When, and with Trustiness” system, in which “Who” is the user ID (e.g., consumer ID or supplier ID in subscriber/supplier model), or device ID (e.g., machine-to-machine model); “What” is the interested content/service name; “Where” is the location of user or device; “When” is the time stamp of consumer requested or the content/service to be provided, and how long the content can exist in the network; the “Trustiness” is an agreement for confidence or faith between consumer and supplier.
  • “Who” is the user ID (e.g., consumer ID or supplier ID in subscriber/supplier model), or device ID (e.g., machine-to-machine model); “What” is the interested content/service name; “Where” is the location of user or device; “When” is the time stamp of consumer requested or the content/service to be provided, and how long the content can exist in the network; the “Trustiness
  • a Context-Oriented Profile CCP is defined, where CCP is a subset of R.
  • Each element of CCP is a Context Label (CL).
  • CL can be used in Internet service operation to inquire and deliver content and service/application data.
  • CL can be embedded in user's request such as “Tony's iPhone wants movie: xxx at location: (e.g., GPS) on: next Monday,” and the movie supplier can deliver movie: xxx with an assigned security code in the response and follow the navigation guided by the given CL.
  • Embodiments of the present invention use CLS.
  • a CLS forwards and relays content I-chunk with build-in CL between peers.
  • CLS has a local cache for content storage, where the working mode of CLS is to store, process, and forward, where the “process” function is to process the local content cache, based on a defined CL.
  • irrelevant content replication and unnecessary data relay operations are removed.
  • the CLS is “application-aware” and provides a “smart-pipe” for the service provider and enterprises of next generation Internet.
  • a context is defined as a profile that consists of minimal set of attributes associated with supporting content delivery in a communication network. From the operational semantic of content/application delivery service, context interrelates altogether of communication-enabled attributes from dynamically changing network property such as, location and presence; user profile such as interesting preference, device type, user ID, and service transaction time; and application attributes, such as content name, version, security, size and TTL (Time-To-Live). Other attributes can be defined in other embodiments.
  • the context is adapted into the service delivery platform to guide the content delivery in the network.
  • the “label to” represents a context defined for data content, for example, CL.
  • CL is different from the legacy label defined in a Multiple Protocol Label Switch (MPLS), Generalized MPLS (GMPLS), and/or Transport MPLS (TMPLS), or Provider Backbone Bridge/Provider Backbone Transport (PBB/PBT) where a label is used to identify a data transport connection/connectivity.
  • MPLS Multiple Protocol Label Switch
  • GPLS Generalized MPLS
  • TPLS Transport MPLS
  • PBB/PBT Provider Backbone Bridge/Provider Backbone Transport
  • CL is used to identify a relationship profile for content delivery service. This profile has of several attributes from network, device, application/service, security, etc.
  • the context label is created and attached to application I-chunks, and is used as an in-band or an out-band signaling mechanism to guide the content delivery service and storage service in the network.
  • network-defined elements may include location info and presence info; a user profile may include user ID, device-ID/device-type, and preference and transaction time, etc.
  • application/service-defined elements may include content name, version, medium type, content I-chunk number, chunk size, content published time, content TTL and security code, etc.
  • Each CL is an element of a content-oriented profile that represents the relationship between user, content and network.
  • a CL can be implemented as an ASCII string (constituted by following certain rules) in content data chuck.
  • the format of the CL is identified and processed by a FPGA, an ASIC, or a network processor based on pre-defined rules.
  • CL uses a format of widely used application layer protocol such as URL or other format.
  • CL normally is created by the end device based on a pre-defined policy for content publishing, inquiry and delivery.
  • CL is attached to application I-chunks and can be modified by a CLS within the network for the purpose of delivery security (e.g., add/remove encryption) or late-banding (e.g., change location or time element).
  • CLL is defined as a protocol stack to create, add, remove, update and switch CL in the network. From the perspective of layered protocol stack, CLL is located between application/service and data transport protocol.
  • the application/service layer may be any type of content such as video, audio, Web, Email, and voice, while the data transport layer could be TCP/IP, UDP, P2P, PPP, Broadcasting protocol, Ethernet MAC, wireless MAC, MPLS/TMPLS, PBB/PBT, or GMPLS.
  • CLL is overlaid with any data transport layer.
  • An embodiment data transport layer is overlaid with various physical link layers such as Ethernet, Bluetooth, WiMAX/LTE, WiFi, DSL, xPON, DOCSIS, and Optical.
  • other application service layers, data transport layers and/or physical layers can be used.
  • CLL can be implemented at an end user device, an access device, an access gateway and a CL-enabled router/switch.
  • CLL is responsible to segment/assemble the application content to/from variable size content chunks, and dispatch/receive the CL data to/from the lower layer, depending on the maximum transmission unit (MTU) capacity of various physical links.
  • MTU maximum transmission unit
  • CLL creates and inserts CL for each content chuck (at the sender), or modifies CL (at an intermediate relay node), or removes CL (at the receiver) from each content chunk in some embodiments.
  • CLL also implements CL management plane, CL routing plane, CL forwarding plane, CL service process plane and CL caching process plane.
  • the CL routing plane is used to find the routing path, to guide global content search/discovery, to determine next hop/interface, and to manage mobility anchoring and location service.
  • the CL forwarding plane is used to guide the content delivery, to manage content flow for load balancing and traffic engineering, to prioritize traffic scheduling for Quality of Service (QoS) and to control CL switching fabric.
  • the CL service plane is used to execute content distillation, dissemination, mash up, content aggregation and content chunk customization (i.e., same video may be sent to different end devices with various resolution/contrast), and intelligent traffic management.
  • the CL caching process plane is used to execute local data retrieval, local caching, content database maintenance, global content synchronization and aggregation, content deduplication, and content access privilege policy management.
  • CL management plane, CL routing plane, CL forwarding plane, CL service process plane and CL caching process plane may encompass a subset, superset, and/or different functionality as the functions described above.
  • CLL may implement a security sub-layer to handle all security issues including the encryption/decryption for content chunk and CL, as well as to manage security key distribution.
  • each N-element CL is a variable size ASCII string which may be implemented as widely used format such as URL.
  • CL is used mainly for facilitating content discovery and content delivery/routing.
  • CL uniquely identifies a content chunk.
  • the composition of CL follows some policy-constraint rules such as constitution priority.
  • a CL may be created by the following embodiment method:
  • CL composition follows a hierarchical structure (i.e., tree-like), where each node in the tree represents an attribute defined by network, user/device profile or by an application and/or service. The position of each node in the tree is defined by the policy of a Content Oriented Profile. CLL will use this naming tree to create a CL and use CL in the following scenarios:
  • CL represents the content delivery relationship between the subscriber and the supplier, which inter-relate attributes from network, user and application. In some embodiments CL only describes a delivery service operational semantic. When content chunks are delivered on overlay data transport network, CL can be mapped into any type of transport connection medium such as MPLS/GMPLS label, IP address, MAC address, WiMAX/LTE connection ID, etc.
  • CL is created, added and removed by the end user node or content server, and may be updated at intermediate nodes. In some embodiments, CL is handled at access edge nodes as long as the edge device knows how to deliver the content to the right user device without using CL operation.
  • CLL-enabled relay nodes may modify some elements of a given CL. For example, if a particular link/network needs security protection, CLL-enabled relay node may add extra security coding in CL and remove these security codes before making content chunks leave the link/network. In some another cases, CLL-enabled relay nodes may change CL location elements or TTL elements due to the next hop reachability issue or some other considerations (e.g., the presence or the mobile location of the receiver). This is referred to as a “late-binding” capability.
  • CLS is a CLL-enabled access device, gateway, routing switch, or some other data-capable access and transport devices.
  • CLS implements several CCL functional engines (or planes), which may include a management plane, CL routing plane, CL forwarding plane, CL service process plane, and CL local cache process plane.
  • Local cache is a local database or data server. Physically these planes can be built into the same box/chassis, or in separate box/chassis depending on the embodiments.
  • Each plane may have its own network processors (multi-core or single-core) and I/O interfaces, and communicate with each other via high-speed channels.
  • these functional planes are clustered together and are represented by a CLS in some embodiments.
  • the management plane conducts system FCAPS functions using management interfaces such as GUI, Web, CLI, SNMP, CORBA or some other standard/proprietary management protocols in some embodiments.
  • This plane implements NE Operation, Administration, Maintenance & Provisioning (OAM&P) functions.
  • the CL routing plane implements CL routing algorithms and protocols to determine the adjacent CLSs and next hop for relaying content chunks in embodiments.
  • the next hop CLS determination may rely on interested content distribution, CL location info and overlay physical network topology.
  • Various criteria help determine CL routing paths in some embodiments.
  • a hybrid approach is used in a broadcasting-enabled LAN and point-to-point WAN autonomous domain.
  • CLS may use broadcasting CL inquiries (similar to Dynamic source routing protocol) to determine the next hop, while in BGP domain or MPLS/TMPLS/GMPLS network, DHT or DNS protocols can be used to determine where the next hop is for inquired content.
  • the location information embedded in CL can be used to determine the next hop.
  • the next hop is defined as the adjacent CLL-enabled end devices, the CLL-enabled switch/router, or the CL-enabled local cache server.
  • each CL contains enough information, for example content chunk name prefix and GPS information, for the routing plane to determine the routing path.
  • CLS nodes overlay existing transport infrastructure, for example, an IP network
  • CL routing learns underlying topology and bandwidth to conduct integrated routing to optimize network resources and promote content delivery performance in some embodiments. For example, CLL layer topology and IP layer topology can be collaborated.
  • the CL next hop may also include the local cache (if the interested inquiry is discovered in the local cache). Similar to normal IP router, CL routing plane stores a routing table which consists of the mapping between CL prefix and the logical/physical I/O interfaces of CLS. Once a CL routing table is established, it will be installed in the CL forwarding plane, for example, for relay purposes.
  • CL routing plane may co-exist with these routing planes in some embodiments. The collaboration between the CL routing plane and the other routing planes is implemented in either an overlay model or integrated model.
  • An embodiment CL routing plane may also support mobility management and location services, due to the fact that CL may have embedded location information.
  • the CL forwarding plane includes CLS switch fabric, I/O interfaces and network processors to handle content relay, to manage content flow for load balancing and traffic engineering, and to prioritize traffic scheduling for QoS, and delivery policy enforcement.
  • CLL security sub-layer crypto functions may be implemented in this plane.
  • CL look up and classification (“deeper packet inspection”) process and security encryption/decryption may all be implemented, for example, in an FPGA, ASIC, or very-high speed network processor.
  • the forwarding plane executes CL look up to determine the egress interface, and shifts content chunks from the ingress port of switch fabric to the egress port.
  • CL forwarding plane Based on the overlay network architecture and interfaces, CL forwarding plane handles all L2/L3/L4 protocol stacks to terminate and dispatch the received data packets in some embodiments.
  • the CL forwarding plane may also execute relay policy enforcement.
  • the policy profiles are configured from either the CL management plane or the CL service plane.
  • the CL service plane is responsible for several tasks including content distillation, dissemination, mash up, content aggregation and content chunk customization (i.e., same video may be sent to different end devices with various resolution/contrast).
  • This plane may also support local/global load balancing and intelligent traffic management for content distribution.
  • the service plane may install user/content service profiles and related action list into CL forwarding plane for flow processing.
  • this control plane may support content security functions such as authentication and key distribution.
  • the control plane communicates with a local cache server to store and update content database.
  • other functions of the service plane may also include user account and device attachment management, user presence and mobility management, and service level agreement (SLA) profile management.
  • SLA service level agreement
  • Local cache server manages local content storage. Typical tasks of an embodiment local cache are to create, update, re-fresh (based on TTL in CL), retrieve and synchronize/aggregate the contents with other CLSs, and make/remove the duplication of contents.
  • the CL name prefix is used as key/index to store and to discover the interested data.
  • content and its key refreshment and disposal may be restricted by TTL. This plane also manages content access privilege policy.
  • a trust-to-trust content-oriented networking model delivers content and applications based on named data with built-in security.
  • named hosts are not used. Rather, the network handles more “application semantics” which are relevant to the environmental context of the information such as the security/privacy, the content name and type, the end user device, user location and presence, and the content life circle (e.g., time to live (TTL)) within the network.
  • content-oriented network, content security, content storage and content delivery are built-in functions of the network.
  • the network leverages powerful distributed computing and optimization to minimize capital expenses and operational expenses, as well as improving user experience for content.
  • CLS is a platform for a content-centric networking model.
  • CLS delivers contents by leveraging and consolidating advanced distributed computing, joint optimization based routing/forwarding protocols, and more cross/inter-layer optimization algorithms.
  • CLS provides content/application delivery services with these enabling technologies to create a “green” and “behavior-adaptable” environment for global information sharing.
  • a CLS system encompasses 5 building blocks: a very scalable and fast Content-based Naming and Resolution scheme with self certifying content names, a cost efficient and scalable collaborative network embedded storage cloud for caching, practical Traffic Engineering/Server Selection, a content positioning system having joint optimization (i.e., cross-layer) for content dissemination routing to leverage IP or non-IP capabilities such as content networking directly over Ethernet, and a parallel computing cloud for user-content profile analytics and content service processing.
  • CLS has protocols that support content based naming, resolution and joint optimization.
  • existing protocols are incorporated into systems, such as embedding opaque type length value (TLV) into routing protocols such as Intermediate Systems-Intermediate Systems/Border Gateway Protocol (IS-IS/BGP) data packets.
  • TLV opaque type length value
  • IS-IS/BGP Intermediate Systems-Intermediate Systems/Border Gateway Protocol
  • CLS-enabled delivery services incorporate embodiment network reference models, interface requirements, functional entities, protocols, and procedures for various CLS implementation alternatives.
  • CLS architecture logical entities decompose and alternative deployment views map CLS logical entities to physical network elements (NEs).
  • NEs network elements
  • CLS nodes interwork with each other via CLS User Network Interface (UNI) and CLS Node-Node Interface (NNI) protocols, including, but are not limited to:
  • UNI CLS User Network Interface
  • NNI CLS Node-Node Interface
  • CLS system use existing data transport mechanisms including both infrastructure (e.g., IP, MPLS, Ethernet transport and packet-optical, 3G/4G wireless) and infrastructure-less (e.g., wireless ad hoc and Ultra Wideband (UWB) radio).
  • CLS is implemented over IP including IPv4 and IPv6.
  • CLS networks directly over Ethernet. This yields performance improvement in some embodiments.
  • CLS can operate over other network types, for example, over fiber, and over wireless connections such as WiFi and Bluetooth.
  • CLS systems use several protocols between a CLS node and an IP router/Ethernet switcher (logically, in physical deployment, and/or the CLS node might be a part of the CLS enabled router/switcher), as follows:
  • CLS systems include content-based naming and resolution schemes with self certifying content names, which fit the topologies of the existing networks.
  • naming scheme a self-certified binding between name, publisher and content is supported.
  • the naming scheme the format is hybrid, HTTP or flat (by hashing the HTTP name).
  • a HTTP name is used in the User-Network Interface (UNI) and in the inter-Autonomous System Node-Node Interface (AS NNI).
  • AS NNI inter-Autonomous System Node-Node Interface
  • a flat version is used in the intra AS NNI.
  • a hierarchical dynamic hash table (DHT) based resolution design is used that fits the hierarchy of infrastructure networks, such as access/edge/metro accumulation/backbone.
  • DHT hierarchical dynamic hash table
  • another global DHT is used in one embodiment.
  • CREX Content Resolution Exchange
  • DONA Data-Oriented Network Architecture
  • CLS also adopts a broadcast/multicast method for the name resolution in some embodiments, for example, Address Resolution Protocol (ARP).
  • ARP Address Resolution Protocol
  • CLS systems use a cost efficient and scalable collaborative network embedded storage cloud for content storage and caching.
  • the storage cloud is logically composed of an embedded storage engine and a local and collaborative caching decision maker.
  • the embedded storage engine is responsible for the storage of content that has not expired.
  • the embedded storage engine resides inside network elements (e.g., DSLAM, switcher, routers) or servers placed proximately to such elements.
  • the CLS storage engine can also leverage the customer terminals' capabilities.
  • the local and collaborative caching decision maker decides or suggests whether specific content should or should not be cached.
  • the storage capacity of each CLS node is partitioned into two portions. One portion is left to the local caching decision maker and may use a Least Recently Used (LRU) like evictor patter, and the other portion is utilized to realize a collaborative caching system, with the assistance of a collaborative caching decision maker.
  • LRU Least Recently Used
  • “local” means that a decision is just made according to local requests served by the node itself.
  • multiple proximate CLS nodes contribute some portion of their storage capacity to implement a virtual caching storage unit which is shared by all the CLS nodes in the same domain in some embodiments.
  • CLS systems use Practical Traffic Engineering/Server Selection joint optimization for content dissemination routing.
  • CLS nodes are deployed by carriers that normally operate the infrastructure networks, a joint optimization solution uses content routing for some embodiments. How to respond in time and handle burst background traffic churn is handled by blocks that perform information collecting, computing, and feedback.
  • CLS collects the traffic information by using a protocol for collecting traffic conditions, and user content request by a user-content request profile collection protocol.
  • the protocol for collecting traffic conditions can be applied in an Echo-pattern like way.
  • the root of managed device tree sends a query down to the leaves.
  • each sub-tree root only sends aggregated results back to its own parent node.
  • embodiment systems devise a threshold based solution.
  • CPS Content Positioning System
  • CPS Content Positioning System
  • CPS makes its decision for content placement (where the content should be stored) and routing re-direction (which path the content should be delivered) based on certain criteria.
  • CPS makes decisions primarily based on the knowledge it acquired from both context layer (e.g., “hotness” of the content) and underlying infrastructure layer utilization (e.g., bandwidth and congestion situation over particular physical links).
  • fast response time is achieved in two ways.
  • One embodiment method is to leverage the parallel computing facility described in the parallel computing facility described hereinbelow.
  • the joint optimization problem is decomposed into multiple sub-problems that are computed in parallel.
  • Another embodiment method to achieve fast response time is to divide the network into multiple hierarchical sub networks, and then let each sub network compute its own optimization problem, where the upper layer network (its sub networks turn into a node) coordinates their computation.
  • an embodiment CLS system uses a protocol for notifying the router about joint optimization results and protocols for notifying an OpenFlowTM controller about the joint optimization results, as discussed above, in order to modify infrastructure layer forwarding/routing policies.
  • a joint TE/SS routing decision feedback protocol is also used to notify correspondent CLS nodes (normally the first CLS hop from the customer, and potentially the CLS enabled customer device itself) to adjust its application layer routing policy.
  • the application layer routing policy can be the proportion of downloading content from one specific node.
  • other protocols can be used.
  • CLS systems cache popular content inside each access/accumulation network so that a considerable proportion of the traffic is redirected to a local metro-area network.
  • an existing tree like Ethernet access network is transformed, by a certain degree, into a non-blocking network (for local content exchange), by using commodity hardware, for example, using 1 Giga Ethernet switchers, or by using spare ports of Ethernet switchers in existing metro-networks.
  • other hardware can be used.
  • a parallel computing cloud facility is used for parallelized joint optimization and user-content profile analysis.
  • Parallel computing for optimization corresponding to an embodiment metro-area Ethernet implementation, assures that computation is completed in time in some embodiments.
  • a user-content request profile traffic collection protocol to collect the user profiles.
  • possible user requests are captured at the resolution node and logs are summarized.
  • the profiles can be regarded as a two-dimensional matrix in which each row corresponds to one user, and each column corresponds to one piece of content.
  • results of the computation methods are used for recommendation and/or feedback for CLS parameters self-adjustment.
  • User behavior pattern analysis is also used for other services, for example, personalized target advertisement in some embodiments.
  • an Application Programming Interface is included that is open to carriers and/or third parties.
  • CLS applications include CLS-enabled wireless backhaul, HTTP streaming video for video on demand (VoD) services, CLS over Carrier Ethernet and Fiber, and CLS interworking with a cloud data center.
  • CLS building block functions are implemented using Intel Router Brick and OpenFlowTM enabled system platforms, and CLS system software and interface primitives implemented on Linux OS.
  • CLS applications include other applications, implementations, and software.
  • FIG. 1 illustrates a functional block diagram of embodiment CLS node 100 , which interfaces to other distributed CLS processing nodes and centralized controllers. Such functionalities can also be selectively supported by one specific Network Element (NE).
  • NE Network Element
  • a domain is defined as a cluster of CLS nodes that are grouped together based on certain administrative policies. In other embodiments, these functions can be provided locally or provide functionality for multiple domains. In alternative embodiments, greater or fewer controller entities, as well as other types of controller entities can be used.
  • CLS processing node 112 is coupled to joint optimization controller 102 , cooperative caching controller 104 and profile analysis facility 106 via interfaces 132 , 134 and 136 , respectively.
  • Joint optimization controller 102 collects user content requests and traffic dynamics, and utilizes optimization decomposition to periodically work out the policy for content server selection, content positioning, and traffic engineering (such as changing IP routing direction). Joint optimization controller 102 then provides notice the content routing engine 108 about such policy changes. In an embodiment, notice of policy changes helps CLS node 100 provide efficient routing.
  • Cooperative caching controller 104 collects user content requests and/or traffic dynamics, and works out the global optimal caching policy for each domain.
  • CLS local caching engine 110 accords to such policy, so as to contribute some portion of their storage to constitute a shared cache.
  • Profile analysis facility 106 which has parallel computing facilities, is used for user content profile analysis.
  • the output of profile analysis facility 106 provides feedback to cooperative caching controller 104 in some embodiments.
  • the output of profile analysis facility 106 can also be used by other applications, for example to provide a recommendation for personalized target advertisement.
  • each CLS processing node 112 has distributed processing entities including proxy 114 , content routing engine 108 , local storage engine 116 , local caching engine 110 , content GET/PUT adapter 118 , name resolution engine 120 , Dynamic Hash Tree Key-Based-Routing DHT KBR 122 , topology maintenance 124 , transportation engine 126 , user request synopses generator 128 , and traffic synopses generator 130 .
  • greater or few distributed entities can be used, and/or distributed processing entities having other functionality can also be included. In embodiments of the present invention, these distributed processing entities of this category can operate independently or cooperate in a decentralized way.
  • Proxy 114 is a bridge between user terminals that may not be CLS enabled and the CLS network. Proxy 114 receives user requests, distributes the requests to relevant engines to process the messages, forwards the messages to the next hop (if needed), and dispatches the response to the users. In some embodiments, proxy 114 is deployed in the very edge of the network, for example, on the DSLAMS, at the first CLS hop from a user's point of view.
  • the core module of CLS processing node 112 is content routing engine 108 , which decides where and how to get requested content wanted.
  • Content routing engine 108 chooses between the local cache, remote CLS peers, and the original publisher.
  • content routing engine 108 uses name resolution engine 120 to get a list of possible candidates if it is determined that requested content is not in local cache.
  • Content routing engine 108 receives instructions from the joint optimization controller 102 , so as to enforce content layer routing (server selection) and the underlay routing jointly.
  • local storage engine 116 includes storage optimized for streaming content, as well as for small sized Key-Value object storage for CLS indexing.
  • Local caching engine 110 which is an agent of the cooperative caching controller 104 , defines local greedy caching policies such as LRU in some embodiments. Local caching engine 110 decides whether or not content is cached. In embodiments, Local caching engine 110 is also configured to evict some content due to expiration or lack of storage space.
  • Content GET/PUT adapter 118 encapsulates the basic semantics of the storage for content, and also performs some preprocessing tasks such as operations in batch.
  • Name resolution engine 120 is another core module of CLS processing node 112 .
  • name resolution engine 120 switches between three operating methods. These three operating methods include broadcasting such as Address Resolution Protocol (ARP) in a local area, DHT lookup inside a metro area or AS and some inter AS resolution mechanisms, for example, REX tree or Global DHT.
  • ARP Address Resolution Protocol
  • DHT KBR 122 fulfils a key based routing task of DHT, by leveraging the information learned from topology maintenance module.
  • CLS builds up the hierarchical DHT inside each AS or metro area, and each layer corresponds to some specific layer of infrastructure networks, for example, the DSLAM layer, Ethernet Switcher layer and Edge Router layer. Considering that such peers are, in fact, network elements, one hop DHT KBRs are implemented inside each cluster in some embodiments.
  • Topology maintenance block 124 performs CLS node discovery and status monitoring of CLS nodes.
  • topology maintenance block 124 incorporates the opaque TLV embedded in IS-IS and BGP packets, a broadcasting/multicasting method, or some configuration service assistance.
  • Transportation engine 126 maps CLS over the main stream and potential layer-3 and/or layer-2 communication layers. In some embodiments, Non-IP capabilities are implemented, as well. Also, in some embodiments, Transportation engine 126 includes Ethernet enhancement for metro area content networking.
  • User request synopses generator 128 summarizes user demand for content, and sends it to joint optimization controller 102 , cooperative caching controller 104 and profile analysis facility 106 .
  • Traffic synopses generator 130 summarizes background traffic information and reports it to joint optimization controller 102 and cooperative caching controller 104 .
  • FIG. 2 depicts an embodiment CLS reference network model.
  • the CLS network is made of several players: consumers 202 , publishers, CLS nodes 206 and 208 , Access Service Network (ASN) operators 210 and 212 and data bearer network operators 214 .
  • CLS network is operated as a Content Distribution Service Provider (CDSP), which may be the same provider of ASN 210 and 212 and Data Bearer Network (DBN) 214 , or an independent 3rd operator having bilateral agreement with the providers of ASN 210 and 212 and DBN 214 .
  • CDSP Content Distribution Service Provider
  • DBN Data Bearer Network
  • the top layer contains content/application aware virtual clouds 216 which provide service intelligence to support service requirements, service quality agreements, service brokering, service scenario and flexible service billing.
  • Virtual cloud layer 216 uses open APIs 218 to offer consumers novel media/content experience. For example, APIs are provided to help publishers/subscriber to publish/retrieve the generated/requested contents, to offer content storage service, to provide event notification service and to provisioning CLS nodes for efficient content delivery.
  • Middle layer 220 is made of CLS functional entities.
  • each of these functional entities is realized in a centralized entity.
  • these functional entities may be distributed over multiple physical functional entities.
  • Embodiment CLS content overlays may be implemented over various access technologies and data bearer technologies, such as Personal Area Network, Body Area Network, Home Area Network, Fix/Mobile access, and Metro and Core data network.
  • CLS connects consumer and publisher via CLS User Network Interface (C-UNI) and CLS Node-Node Interface (C-NNI) and delivers content between them.
  • Inter-CLS-AS communication occurs via an Exchange Network-Network Interface (E-NNI).
  • E-NNI Exchange Network-Network Interface
  • CLS interoperates with the underline network via I-NNI.
  • the CLS reference model depicts the normative reference points C-UNI, C-NNI and I-NNI as shown in FIG. 2 .
  • C-UNI mainly uses HTTP or other well known protocol to minimize the modification of client device.
  • An embodiment C-NNI includes one of more of the following protocols: intra/inter-domain content based naming and resolution protocol, user-content requests profile collection protocol, collaborative cache decision/suggestion feedback protocol, user-content profile analytics feedback protocol, and joint TE/SS routing decision feedback protocol.
  • An embodiment I-NNI includes protocols for collecting traffic condition (e.g., queue length) from router, in a Echo-pattern like way, protocols for notifying the router about the joint optimization result, so as to let the router modify its routing by MPLS or other schemes, Protocols for notifying the OpenFlowTM controller about joint optimization results, so as to let the controller modify the forwarding table inside switchers.
  • traffic condition e.g., queue length
  • Protocols for notifying the OpenFlowTM controller about joint optimization results so as to let the controller modify the forwarding table inside switchers.
  • greater, fewer and/or different protocols can be used.
  • Lower layer is 222 is made of network elements, such as access point, 3G/4G wireless, core routers, MPLS switches, residential gateways, data centre switches, or even wireless ad hoc networks, etc. These elements provide underline data “pipe” connectivity for the CLS overlay.
  • lower layer 222 is a merged layer with the middle layer, for example, when all or part of its NEs are CLS enabled, or upgraded to be CLS enabled. From a user experience perspective, in some embodiments, content can be shared over any delivery medium.
  • a CLS system delivers content over any network, whether the network is an infrastructure network or an infrastructure-less network.
  • a CLS system allows multiple implementation options for a given functional entity, and yet achieves interoperability among different realizations of functional entities. Interoperability is based on the definition of communication protocols and data plane treatment between functional entities to achieve an overall content delivery function, for example, security, “findability” or content caching management. Thus, the functional entities on either side of reference point represent a collection of control and bearer plane end-points. In an embodiment, interoperability can be based only on protocols exposed across a reference point, which depends on the end-to-end function or capability realized (based on the usage scenarios supported by the overall network).
  • CLS uses a CL to characterize each content data, where context is an attribute-profile that associates real-time information with social objects.
  • context is an attribute-profile that associates real-time information with social objects.
  • CLS defines a CLL between application layer and data bearer layer.
  • CLL is knowledgeable to deliver and to process content between content consumers and publishers.
  • CLL has two types of intelligence: knowledge from application (via CL) and the knowledge from the bearer networks (via link adaptation and integrated routing).
  • the CLL collectively couples applications with infrastructure resources and optimally utilize network topology and resources for delivering content.
  • FIG. 3 illustrates networking in the context of an embodiment CLL protocol stack.
  • the CLL provides a generic content delivery layer for a content-centric network. With a well-defined CL and limited semantic scope, CLS can control “how much” the network should learn from applications and the best balance between needed overhead and processing performance.
  • Each network node 302 , 304 , 306 and 308 implements a protocol stack that includes physical layer 310 , data bearer layer 312 , which is a data transport layer, and CLL 314 .
  • Nodes 302 and 308 represent endpoints, for example, client nodes or data providing nodes, and have application layer 316 .
  • Nodes 304 and 306 represent intermediate nodes that perform routing and content storage, for example.
  • CLS implements a distributed Content/Service-aware overlay for content delivery services.
  • CLS treats content as a “connoted data.”
  • Each element in a CL is an attribute which characterizes the content.
  • the tuple time, location, security
  • CL is a CL that can be used to define and/or determine whether the designated content is meaningful or not.
  • the user can only watch movie Y for two days, Y is prohibited from circulating in Singapore area and the subscriber can get public key of Y from key-locator.
  • an implicit rule can be applied using the CL.
  • the CL is a relational array that defines the semantic scope for the associated data.
  • each data is not an isolated object, but rather data is characterized by its surrounding environment.
  • CLS uses CL to guide content searching, routing/forwarding, local caching and mash up processing.
  • each CL is a “meta data” which are attributes used to scope whether the content is meaningful or meaningless against a certain context when people share information using the Internet. These meta data (attributes) come from many aspects in some embodiments.
  • a user-specific context may include user ID, device name and device type; network-specific context may include location and presence; application-specific context may include content name, version, size and TTL (time-to-live); and security-specific context may include security key and crypto algorithms.
  • a CL is attached to the content as a “header.” CL characterizes the relationship between content and its existing environment.
  • Embodiment CLs can be implemented in a variety of ways.
  • a CL-enabled extension-header can be defined for HTTP 1.0 protocol as follows:
  • CL header is a list of (name:value) pairs.
  • This example CL header defines that the video should be delivered to an IPhone at location GPS with security key.
  • the video is viewable for only 24-hour, and the receiver has to verify the signature of the publisher which was signed using either HMAC or CMAC algorithm.
  • a client gets a list of content names from a search engine. Next, the client enters a URL. The client device adds a CL header, which binds a node ID and an application ID, and other context information, if any. Next, the client device sends CL to all connected access interfaces. The message is propagated to all reachable CLS nodes within a certain scope, in one embodiment, until it reaches either a node with the cached content, or the node nearest to the publisher (i.e., the web server.) Next, the contents are delivered along the backward path (soft-state path established by CL-get). Subsequent updates to the local cache (i.e., saving a copy) are done at each node.
  • Any-cast and/or Multi-Point-Multipoint is performed via the multicasting message from the client and from a CLS node in some embodiments.
  • any-cast is used where content owner is not pre-known.
  • a request to a DNS is only issued by a network node and not by a client node, such that the network node will only issue a DNS if it cannot find content within the CLS system.
  • CLS systems use three core context values: Real-time, Socialization and Personalization.
  • a carrier can utilize an embodiment context to couple real-time Internet operational semantics (i.e., where, who, when, and how) with user social objects.
  • CLS applies hybrid content naming schemes for content delivery, with respect to the different interfaces.
  • CLS utilizes widely used user-friendly formats such as a Uniform Resource Locator (URL) structured name in one embodiment.
  • URL Uniform Resource Locator
  • CLS uses flat naming space to facilitate Multi-tier DHT name resolution.
  • CLS/non-CLS interworking structured name should be used.
  • other naming schemes can be used.
  • a CLS node provides mapping functions to transform the name between structured naming space and flat naming space, if necessary.
  • CLS supports URL naming with extension header over a C-UNI interface, where an extension header is used for context label.
  • CLS uses URL naming for backward compatibility purposes in some embodiments.
  • a movie publisher can publish movie URI “www.yahoo.com/movie/AVATAR” to the CLS network. Together with this ID, the publisher can define a CL-header which includes several attributes, such as a signed checksum for content authentication, the public key of publisher, and a TTL which indicates how long the content can exist in the CLS network.
  • CLS implements multi-tier DHT to support content resolution and distributed data storage within an AS cluster.
  • flat naming i.e., unstructured name
  • CLS nodes mapping user-friendly name into multi-tier DHT flat naming space and determine where the content should be stored (i.e., publish operation) or searched (i.e., inquiry operation) in some embodiments.
  • the CLS node creates a mapping entry between the URI and the flat name.
  • the flat name may use a signature (content name, content data) that was signed by publisher's private key.
  • the meta data carried by CL-header is also stored together with the content name.
  • CLS when a CLS node receives a content inquiry from subscriber, CLS translates URI to a 256-bit DHT name and finds a copy of the movie within the cluster, as shown in FIG. 6 , which illustrates mapping between name spaces.
  • the content e.g., a movie
  • CLS returns the movie with the URI to the subscriber.
  • CLS inter-domain communications include two scenarios: inter-CLS-AS and CLS/non-CLS interworking.
  • the inter-CLS-AS interface uses a global DHT flat name in an embodiment.
  • a structured name is used that implements Content Resolution Exchange Point (CREX) functions with name translations similar to C-UNI.
  • CREX Content Resolution Exchange Point
  • the structured name is applied such that content routing exchange functions (e.g., DNS) uses the structured name for further content resolution and routing.
  • DNS content routing exchange functions
  • the inquiry with structured or flat name
  • CREX determines whether it should go to a further resolution or drop the search.
  • name persistence implies that content name remains valid in case of storage location change, content modification, owner change, and change of algorithms used for naming purpose (e.g., a hashing algorithm).
  • each content data object may have multiple identifiers.
  • URI URI
  • a data object also contains meta data (i.e., a Context Label) representing the content entity in some embodiments.
  • one attribute of a CL is a signature.
  • the signature is a checksum function of content name and content data entity, and signed with the private key of the publisher. The signature is used by the subscriber to authenticate the owner of the content.
  • CLS considers two scenarios of naming persistence: one for a content data entity change, and one for content ownership change.
  • CLS re-calculates the signature of (Name, Content), where “Name” is kept unchanged and “Content” is the modified data entity in one example.
  • CLS re-publishes the updated content with the new context label.
  • the context label keeps all the other attributes unchanged but the new Signature. The name is kept unchanged. In other scenarios, other attributes are changed.
  • CLS system When content changes its owner or service provider, an embodiment CLS system re-calculates the Signature (Name, Content) by using a new owner's private key and replacing the key locator of Context Label by pointing to the public key of new owner. After the modification, CLS re-publishes a new CL containing new Signature and new public key. In this example, both Name and Content are kept unchanged.
  • a CLS system has a content first networking architecture.
  • customers do not need to specify the address of the communication peer; they just request content directly by the correspondent content name as discussed hereinabove.
  • the embodiment CLS network finds candidate sources hosting the content and gets it back to the customer using, for example, multi-path downloading.
  • An embodiment name resolution entity answers the question of “where” such candidate sources are. “Where” here means the address of the ultimate server or even the next hop.
  • FIG. 7 illustrates how a user-friendly name is mapped to a content entity via a multi-identifier and a context label.
  • FIG. 8 illustrates embodiment name resolution schemes for local area resolution 802 , an intra AS (or metropolitan area) resolution using a hierarchical DHT based approach 804 , and inter AS resolution using global DHT or hierarchical REX 806 .
  • a broadcasting based name resolution is a very efficient broadcasting is naturally supported in both wireless access environment and Ethernet access networks. Considering the scalability of broadcasting, its application is limited inside each local access area in some embodiments.
  • a broadcasting scheme a user who broadcasts an interest can be responded to by anyone else (including other users or CLS nodes) who has the desired content.
  • ARP or other broadcasting based primitives for example, can be used.
  • intra AS (or metropolitan area) resolution a hierarchical DHT based approach is used.
  • the DHT hierarchy fits the hierarchy of infrastructure networks, such as DSLAMS, Ethernet Switches, BRAS, routers, etc., in some embodiments. All, or representative peers from the lower layer DHT join the upper layer DHT.
  • FIG. 9 depicts a two layered hierarchical DHT, where all region DHT peers 902 , 904 , 906 and 908 join whole DHT 910 at the same time.
  • a node needing content first uses hashing to get a flat name, then performs a lookup in the lowest level of DHT to which it belongs. The node then switches to upper layer DHT to lookup more candidates if necessary. If a content resolution fails at the top DHT, the inquiry will be sent to CREX to get global resolution.
  • Inter AS resolution another global DHT is used, which unifies the CLS name resolution design.
  • a hierarchical tree of CREX is implemented.
  • other methods can be used for Inter AS resolution.
  • Inter-CLS-AS domain communication is performed between two CLS networks, while the latter is performed between a CLS network and non-CLS network.
  • CLS implements CREX to exchange the content name resolution information across the CLS domain in an embodiment.
  • Each CLS-AS may be adjacent to several other CLS-AS, based on the definition of CLS admin/routing domain.
  • some CLS nodes are designated as the border nodes to communicate with other CLS-AS via CREX.
  • the border nodes implement inter-domain protocols to exchange information with CREX.
  • a CLS node (a.k.a., originating node) receives a content inquiry from a user, it firstly maps the URI name to flat name and conducts an intra-domain resolution. If the content cannot be found, the originating node multicasts the inquiry to all the border nodes. The latter communicates with CREX to execute further resolution.
  • CREX is a logical entity that can be implemented on the border node or on a different box in some embodiments.
  • CREX determines how far the resolution should go and what the inter-domain protocol is used for adjacent domains. To support large scale content resolution, CREX implements content name aggregation in some embodiments.
  • CREX inter-domain content resolution is performed by extending the BGP protocol to populate top level content name across the domain.
  • BGP is used to exchange both infrastructure reachability and content routing reachability.
  • the top level name represents the integrated content naming hierarchy in an embodiment.
  • the top content name is an AS-ID/content-domain or City-ID/content-domain.
  • Opaque TLV can be extended to BGP to include the top content name.
  • the extended BGP is installed at CLS border node to exchange the top content name and to perform inter-domain name resolution.
  • BGP is run to exchange infrastructure topology information only, and other protocols are used for inter-domain content name resolution.
  • CREX can directly trigger a DNS inquiry for content resolution in an embodiment.
  • CREX uses the returned IP address to get the content from the origin server.
  • the inquiry is forwarded to CREX for further search. The inquiry is dropped if the content cannot be found at CREX.
  • FIG. 10 is a block diagram illustrating inter-domain content resolution for CLS and non-CLS systems.
  • CLS nodes resolve a large amount of on-line content.
  • a huge DHT or similar distributed indexing implementation composed of tens of thousands nodes is used in one embodiment.
  • other name aggregation schemes can be used.
  • the top content name can be an AS-ID/content-domain or City-ID/content-domain and the content domain is defined according to either geographical region, administrative domain or underlying routing domain.
  • Each domain is managed by third independent parties in some embodiments. If the content-domain is made to be equivalent to the host name part of the URL, then the number of content names is almost comparable with the number of host domain names.
  • a DNS server like architecture can be used in some embodiments.
  • the number of top level content names will be reduced comparing to the number of DSN entries.
  • a content-centric network CCN
  • CLS systems use built-in security mechanisms for content delivery using an information-oriented view of security, that is, the security is applied against the content, rather than against the “connectivity pipes.”
  • An advantage of using an information-oriented view of security is that it is suited to defend against malicious attacks to which “secured pipe” connections have difficulty defending such as Replay and Man-in-the-Middle or Man-in-the-Page, where an interceptor changes and/or frauds a message between sender and receiver.
  • trustworthiness comes from the content itself, not from the machine on which the content is stored.
  • CLS implementations support a receiver-centric security model in which the user can decide what content they would like to receive and from whom they will receive the content.
  • CLS security approach enables a user to authenticate the linkage between content names and content. For example, given a Name N associated with Content C, a publisher could create a digital signature Sign(N, C), and publish mapping triple ⁇ N, C, Sign(N, C) ⁇ into CLS network.
  • Sign(N, C) is a check sum signed by publisher's private key. For example, before the movie publisher publishes www.yahoo.com/movie/AVATAR into the network, the publisher uses his/her private key to create a signed check sum “xxx.” The triple, ⁇ www.yahoo.com/movie/AVATAR, AVATA-content, xxx ⁇ , is then published to CLS.
  • the name, www.yahoo.com/movie/AVATAR is published into a search engine like Google, as well.
  • the subscribers then get ID “www.yahoo.com/movie/AVATAR” from Google and issue a CLS search for the movie with the selected ID.
  • the mapping triple ⁇ N, C, Sign(N, C) ⁇ is implemented in URL with CL header in HTTP.
  • subscriber After subscriber receives the movie, he/she will use the publisher's public key to verify xxx and to authenticate the publisher, where the authentication is successful only if the publish key matched with private key for decrypting the signature.
  • other security methods can be used.
  • top level public key i.e., public-key-1 from VP
  • public-key-2 which authenticates the VP is the right person who manages the director
  • public-key-3 which verify “xxx” (which authenticates the employee is the right person who is the author of Content with name N).
  • CLS can support a flexible layered access privilege security management and delegation model between content publisher and the consumer.
  • FIG. 11 illustrates an example of an implementation of authentication name and content.
  • a CLS system creates a label header to facilitate the layered public key management.
  • This header contains an array of entries to indicate where the user can get the public key (a.k.a., key locator).
  • the key locator is a public key, or a URL indicating the CA (Certification Authority) from which the user can locate the public key.
  • CA Certification Authority
  • other types of key locators can be used.
  • a CL-header with key locator provides CLS a flexible mechanism to support a “security delegation” model.
  • both subscriber and publisher indicate their certification authority (CA), or delegate their CA in the locator.
  • CA certification authority
  • the receiver gets a sender's CA URL link (i.e., key locator) and follows the URL link to peer's delegate to get sender's public key for authentication. After executing the authentication (i.e., verifying the signature), the receiver reads the contents. Alternatively, the receiver conducts further crypto operations with the sender to exchange a symmetrical key if the content is encrypted.
  • CLS can delegate CA to a trustable third party who is a certificate authority to represent a social community like subscribers and publishers.
  • CLS creates a social security control layer that verifies the social relationship between the sender and the receiver.
  • the CA delegation can proceed in one domain if sender and receiver are in the same social society, or in multiple domains.
  • CLS security is integrated flexibly with today's web-based hierarchical CA system.
  • CLS security implements a peer-to-peer trust relationship for information networking, and performs content access privilege check associated with social trust and policies. By checking the relationship between content name and the content, and using a CL header, CLS implements a social control layer of trustworthiness which defines and verifies the social relationship between the content supplier and the consumers in some embodiments.
  • An embodiment content storage subsystem provides storage and caching capabilities for the content, and storage for the content name resolution items.
  • content storage capability permanently stores content until the content is deleted.
  • the content storage subsystem can be used by CLS, for example, to provide services like Amazon Simple Storage Service (Amazon S3TM).
  • a CLS system stores content by storage service first and then publishes content to a name resolution system.
  • content cache capability is used to dynamically store content so that future requests for that content can be served faster.
  • CLS system requests content
  • the request is served quickly by reading the cache. Otherwise, the request is routed and the requested content is fetched from its original storage location or from other locations.
  • name resolution storage capability is used by the name resolution system to store and operate the name resolution item.
  • a CLS system has a distributed storage system for the content storage and caching.
  • the distributed storage system has large scale Storage Nodes (SN) that provide storage resources.
  • SN Storage Nodes
  • two types of SNs are provided: a network built-in SN and a User equipment build-in SN.
  • An embodiment network build-in SN is embedded in the Network infrastructure and may be integrated within network nodes like router or Ethernet switch.
  • the network build-in SN is implemented as a storage server with a physical link to network nodes. High availability and with low churn of this kind of SN facilitate maintenance and management in some embodiments.
  • An embodiment user equipment build-in SN is embedded in user equipment such as personally-owned hard disk.
  • user equipment build-in SNs are characterized by mobility, multi-homing and high SN churn.
  • FIG. 12 illustrates an embodiment network built-in SN architecture.
  • Storage resource 1200 is made of one or more kinds of storage media such as hard disk drive, memory, Solid State Disk, for example. The determination of which type of storage media is used is determined by read-write efficiency, cost and business demands in some embodiments.
  • Storage resource 1200 is divided into three portions for three types of data: content storage 1202 , content cache 1204 and name resolution storage 1206 .
  • an embodiment SN chooses all data types or certain data types to be stored based on its own configuration. For example, some embodiment SNs may only store and cache content, while other embodiment SNs may just store name resolution storage 1206 .
  • Local storage engine 1208 integrates local storage resource management and provides a unified data operation interface to other subsystems or internal modules in some embodiments. Local storage engine 1208 performs optimization to improve the efficiency of data access. In embodiments local storage engine 1208 informs topology maintenance subsystem 1210 of the information on local storage resource such as the data type being stored, the total capacity, and the free capacity for each data type.
  • Local caching engine 1212 splits the local content cache resource into two portions: non-cooperative caching and cooperative caching.
  • the capacity ratio of two portions is dynamically adjusted by cooperative caching controller 1214 in some embodiments.
  • Non-cooperative caching maximizes the local hit rate for highly popular content, where the content replacement strategy is determined by local caching engine 1212 itself.
  • content replacement strategy is completely determined by local caching engine 1212 .
  • a LRU replacement can be used.
  • Cooperative caching aims to vanish cache-capacity constraints by allowing each cache to utilize nearby caches to prevent excessive replication for content. Such a content replacement strategy is determined by policy dynamically installed by Cooperative Caching Controller 1214 and the local access pattern of the content.
  • the policy (e.g. access cost) is calculated by Cooperative Caching Controller 1214 based on the global information such as access pattern of the content, cache location, network topology and available bandwidth in some embodiments. In alternative embodiments, greater, fewer, and/or different parameters can be used.
  • Content GET/PUT Adaptor 1216 hides the local operational details for different types of content and provides a uniform interface to external applications.
  • data consistency is a consideration for CLS systems, where content is stored, cached, distributed and replicated across multiple SNs.
  • Embodiment systems track some or all of the following parameters: number of replicas of the content, placement of the replicas, access-to-update ratio, conflicting operations, network bandwidth and server utilization, and availability.
  • the number of replicas for the original content storage can be limited by a Content Publish operation, however, in some embodiments, the number of replicas for the content cache may uncontrollable, dynamically changed and very large.
  • the placement of the replicas is based on the geographic/topological complexity of the replica, especially with respect to content cache. Access-to-update ratio is closely related to the service property.
  • Conflicting operations include read-write conflicts and write-write conflicts. Some embodiment systems make sure that conflicting operations are done in the same order for all cooperative caching. Since a large number of synchronization jobs, especially for content cache, will consume large amounts of network bandwidth and server resources, network bandwidth and server utilization is taken into account in some embodiments. Regarding availability, consistency and availability may not be satisfied same time in some systems, based on Brewer's Consistency, Availability and Partition tolerance (CAP) theorem. Therefore, in some embodiment systems, if an application service needs high availability, consistency may be traded off.
  • CAP Partition tolerance
  • content storage uses a strong consistency or eventual consistency for content storage.
  • a user may define a consistency requirement when content is published. If a user does not define the requirement, a default consistency (based on system configuration) is applied.
  • Another related attribute is number of replicas for the content storage which is defined by the user or by a system default value in other embodiments.
  • content caching uses only eventual consistency for content cache.
  • One is TTL, which defines how long a replica of content cache can live, and another is check time, which limits a SN to take no more than N ms in trying to check the new version of the content by contacting original SN.
  • N is between about 50 ms and about 100 ms.
  • strong consistency provides that all read and write operations to content at the original SNs are executed in some sequential order, and that a read to content from original SNs always sees the latest written value.
  • Eventual Consistency implies that writes to an content at original SNs are still applied in a sequential order, but reads to a content from caching SNs can return stale data for some period of inconsistency (i.e., before writes are applied on caching SNs).
  • Table 1 describes an embodiment interface between a SN and another subsystem:
  • KeyLocator Location of the public Key public key location checksum for content authentication (see next section for details), the public key from publisher to help the subscriber for authentication, and a TTL which defines how long the content can exist in the CLS network
  • TTL T Define a time no more than T ms a replica of the content can exist.
  • RepNum N>, . . . ⁇ Each item means to store N replica of content in AS named X.
  • ISPs Internet Service Provides
  • IP layer traffic engineering and application layer server selection respectively optimizes their own objectives and these two parties have no cooperation, which can only obtain sub-optimal equilibria.
  • ISPs have a strong incentive to offer content to their own subscribers by deploying their own content distribution infrastructure. Based on these two considerations, embodiment methods employing joint optimization between traffic engineering and server selection provides for content routing and good user experience.
  • FIG. 13 illustrates an embodiment joint optimization subsystem 1300 , which provides an optimal policy for IP layer traffic engineering and application layer server selection.
  • joint optimization subsystem 1300 has joint optimization controller 1302 and content routing engine 1310 .
  • Joint optimization controller 1302 which has information collecting module 1304 , computing module 1306 and control output module 1308 , executes information collection, rapid computation of joint optimization problems, and results feedback used for network utility maximization and user experience optimization.
  • joint optimization receives known information in order to make an optimal decision.
  • known information includes a list of candidate servers having wanted content, network status such as topology information and traffic information, and request information related to user terminals.
  • server information is obtained from content routing engine 1310
  • network status information is obtained from traffic synopses generator 1312 .
  • User request information is obtained from user request synopses generator 1314 .
  • Information collecting module 1302 connects to content routing engine 1310 to get the list of candidate servers, traffic synopses generator 1312 to collect the traffic information by using protocols for collecting traffic condition (e.g., queue length) from the router, in a Echo-pattern like way, and requests synopses generator 1314 obtains user content requests by using a user-content requests profile collection protocol.
  • traffic condition e.g., queue length
  • computing module 1306 helps to execute joint optimization calculations so as to obtain optimal results.
  • three methods efficiently calculate an optimal solution.
  • One method is to apply optimization decomposition theory to decompose the joint optimization problem into multi-level sub-problems, and solve each sub-problem directly in parallel.
  • Another method is to apply a projection type method to find an optimal point of a convex/concave function on an intersection of convex/concave sets.
  • a third method is to divide the network into multiple hierarchical sub-networks so that these sub-networks independently compute its own optimization problem due to their irrelevance and having the upper layer network help coordinate their computation by using bandwidth coupling.
  • other methods can be used to calculate an optimal solution.
  • control output module 1308 exports optimal routing to content routing engine through a protocol.
  • a content positioning protocol can be used.
  • the control output module 1308 exports a mapping of users and servers, the paths of each user-server pair, and the traffic proportion of each path. These optimal results will then formulate two policies, one is an IP layer routing policy, and the other is an application layer server selection policy.
  • Content routing engine 1310 establishes an indirect interaction with user terminals through proxy, which accumulates user requests. Such requested information eventually reaches requests synopses generator 1314 . Furthermore, in some embodiments, content routing engine 1310 decides where and how to get wanted content. For example, content routing engine 1310 can request wanted content from the local cache through content GET/PUT adapter 1316 . If content routing engine 1310 finds that the wanted content is not in the local cache, it uses name resolution engine 1318 to get a list of candidate servers. After joint optimization subsystem 1300 finishes its calculation and obtains optimal results, content routing engine receives instructions from a control output module 1308 of joint optimization controller 1302 .
  • These instructions are classified into two types, one is to inform transportation engine to modify the underlay routing policy by using protocols for notifying the router about the joint optimization result, so as to let the router modify its routing by MPLS or other schemes, and/or protocols for notifying the OpenFlowTM controller about joint optimization results, so as to let the controller modify the forwarding table inside switchers or both.
  • the other type directs topology maintenance to execute content layer routing (server selection) by using protocol joint TE/SS routing decision feedback protocol or protocols for notifying the router about the joint optimization result, so as to let the router modify its routing by MPLS or other schemes.
  • FIG. 14 illustrates an embodiment deployment mapping CLS logical entities to network elements.
  • CLS nodes include many different subsystems to support content routing/resolution, content storage/caching, global inter-layer resource optimization and content service processing. In an embodiment, these functions are implemented independently and operated via a collaborative manner. In an embodiment, CLS nodes virtually organize these functions together to scale the system in the way of pay-as-you-grow.
  • CLS Client CC
  • CLS Proxy CP
  • CC is implemented at user device
  • CP is implemented on CLS node.
  • Both CC and CP implement C-UNI protocols, while CP also supports C-NNI, I-NNI and E-NNI protocols. In alternative embodiments, other protocols can be supported.
  • CC is the middleware between applications, for example, Web, Video, Audio, and access link layer.
  • CC implements C-UNI protocols communicating with CP, and CLL functions which add/remove content labels for each content chunk.
  • CC can be built into a Web browser, or run as an independent software module.
  • CC further provides link adaptation functions to manage access links and execute attachment management and mobility support.
  • CC also provides open API to application layer to publish user-generated content, to inquire the interested content, and to adapt content delivery functions to various access links with serial or parallel operation mode (e.g., multi-homing operation).
  • CC also implements security/privacy operation such as data crypto and content authentication.
  • FIG. 15 illustrates a block diagram of CC functionality for an embodiment.
  • transport adaptation engine 1504 receives data from interface 1502 and forwards it to CLL receiver module 1506 , which removes the CL header. The data is then forwarded to a use application via API 1508 .
  • transmitted data from API 1508 is routed to CLL dispatcher module 1510 , which adds the CL header and forwards the data to transport adaptation engine 1504 for transmission over attached access interface 1502 .
  • Subscriber policy engine 1512 is used to manage per-subscriber access privilege profiles (e.g., access security and QoS enforcement), and attachment configuration interface module 1514 is used to manage user's access status (e.g., presence and location).
  • CP is a proxy software module that implements CLS node processing functions described above.
  • CP is responsible for content routing and content forwarding over C-UNI, I-NNI, C-NNI and E-NNI.
  • C-UNI CP manages CC attachment and mobility for location-based services.
  • CP also implements content service process for designated applications such as content mash up, transcoding and targeted advertisements in some embodiments.
  • I-NNI CP implements IS-IS to support CLS topology automatic discovery and maintenance. IS-IS is also used to collect and integrate underlying infrastructure topology for CLS routing path selection and optimization.
  • the routing integration can be done either using integrated mode (i.e., CLS and infrastructure share the same IS-IS routing database), or using an overlay model (i.e., CLS maintains an individual routing database but keeps a mapping in between).
  • CLS has global cross-layer optimization.
  • C-NNI C-NNI
  • CP supports content naming resolution and content caching/storage functions.
  • CP implements mapping functions between C-UNI naming space and C-NNI naming space.
  • other interface types can be used.
  • CP implements E-NNI protocols interworking with CREX for inter-domain name resolution.
  • CP forwarding plane implements a L2/L3/L4 protocol stack to terminate/dispatch content chunks. These stacks are based on the adjacent links. Terminated packets are classified by inspecting CL-header, and the flow action engine looks up the pre-configured action table to determine where the packet should be processed. For example, after content is found from DHT resolution at remote CLS node, one copy may be made in the local cache. In an embodiment, before the originating CLS node sends the content back to the user, a mash up procedure may be executed (e.g., add some ads in the web page).
  • CLS implements OpenFlowTM management to execute policy-based forwarding, and provide open API to service layer to customize rule-based content routing.
  • the forwarding plane may implement QoS policy engine to schedule the packet relaying functions with priority.
  • CL-based crypto procedures for encryption/decryption may be implemented.
  • FIG. 16 illustrates a block diagram of CP 1600 functionality for an embodiment.
  • CP functionality is performed by software running on a context label switch (CLS).
  • transport adaptation engine 1604 receives data from adjacent access/router interface, which is a wireless or wireline interface. Deeper packet inspection is performed 1606 , and the CL header is looked up and classified 1608 . The data is then forwarded to CL flow action engine 1610 , which interfaces to CLL routing plane 1612 , CLL service plane 1614 , and CLL storage plane 1616 . Data is also received from these planes by CL flow action engine 1610 and forwarded CL header processing module, which applies the CL header and forwards the data to QoS scheduler and CLL dispatcher 1620 . GET/DATA is than forwarded to adjacent access/router interface 1602 via transport adaptation engine 1604 .
  • CP 1600 checks to see if requested data is stored in CLL storage plane 1616 . If the content is not stored locally a request is sent to CLL routing plane 1612 , which initiates a request for the data externally through CL header processing block 1618 , QoS scheduler and dispatcher 1620 and transport adaptation engine 1604 .
  • the data may sent to CLL service plane 1614 via transport adaptation engine 1604 , deeper packet inspection 1606 , CL header classify and look up 1608 and CL flow engine 1610 , in some embodiments, for example, to insert advertisements on web pages.
  • service plane 1614 performs functions such as transcoding video for clients according to the type of client hardware, base on a client provided context label. For example, a small mobile client device may require video with a lower picture resolution than a desktop computer client device.
  • each CS subsystem is mapped to two kinds of logical nodes: indexing node 1704 and data storage node 1702 , as illustrated in FIG. 17 .
  • Indexing Node 1704 has local storage engine 1706 and name resolution storage 1710 within storage resource 1708 .
  • Each index node can simultaneously joins in one or more name resolution subsystems, for example, regional Multi-Layered DHT, Global DHT/CRXP, (Content Resolution Exchange Point) and stores and looks-up name resolution items belong to specific key range in some embodiments.
  • Each resolution item has a mapping relationship between a content name and a list of content locations. Each location is a data storage node address where a replica of content stored. In such embodiments, content name resolution and content storage are logically separated.
  • Data storage node 1702 is made of local storage engine 1706 , local caching engine 1712 , Content GET/PUT Adaptor 1714 and storage resource 1708 for content storage 1716 and content caching 1718 .
  • a topology maintenance subsystem (not shown) will decide which data storage nodes should store the content based on the acknowledge of storage resources of each node and placement policy defined by user.
  • data storage node 1702 stores or caches content
  • data storage node 1702 publishes the content to corresponding indexing node 1704 based on hash of the content name.
  • FIG. 18 illustrates a logical view of index nodes and data storage nodes for an embodiment of the present invention.
  • a CLS overlay model uses several interfaces: C-UNI, C-NNI and I-NNI.
  • Each interface implements a group of functions that reside in different functional entities on either side of it.
  • two types of CLS functions are defined with respect to data plane protocols and control plane protocols.
  • the normative protocol and the associated functional entities for each interface are specified as follows.
  • C-UNI is the interface between CLS Client (CC at user device) and CLS Proxy (CP at network side).
  • An embodiment C-UNI Data plane procedure supports content inquiry and content publish, based on given content name and associated context label.
  • a data plane implementation uses HTTP 1.0 with entity-header extension for CL.
  • An embodiment C-UNI control plane procedure support CLS-access-peering discovery, bootstrap configuration and attachment management.
  • CC implements a couple of protocol options for the control plane. For example, when CC attaches to IP-enabled access network (wireless and wireline), the network may broadcast a CLS operator ID as a “NSP,” or CC selects NSP from a pre-configured NSP list. In an embodiment, CC could use NSP ID for network entry procedure.
  • ASP AAA server sends CC the IP address of CP as “content home.” After CC has allocated IP address via DHCP, CC establishes IP connectivity to CP to conduct further CLL layer attachment procedures. While in an ad hoc wireless network (i.e., no IP infrastructure), after the link layer association is up, both CC (at one device) and CP (at peering device) sends broadcasting messages to discover peers and use an election protocol to establish CLL association in an embodiment.
  • An embodiment CLL attachment procedure may include exchanging configuration data such as security, boot up data, capacity negotiation and other policies. After a CLS connection is up, a heart beaten (Keep-alive) protocol can be used to maintain the attachment. When the boot up procedure is done, the CLS access point floods the attachment to all the other CLS nodes (within the same AS), thus supporting CC mobility.
  • CC is always connecting to a CP at a CLS node, whether CLS function is implemented in an infrastructure box (e.g., access router), or CLS node is co-located with an infrastructure box.
  • an infrastructure box e.g., access router
  • C-NNI is the interface between two CPs residing on adjacent CLS nodes within a single CLS AS cluster (a.k.a., intro-domain).
  • CLS node adjacency is a logical link over an underlying L2 or L3 connectivity (saying MPLS LSP or a IP tunnel).
  • Embodiment C-NNI data plane protocols mainly include content name resolution, content retrieval and content storage.
  • Embodiment C-NNI control plane protocols are for overlay topology discovery and infrastructure connectivity establishment/maintenance.
  • CLS uses Multi-tier DHT for data plane and IS-IS for topology routing, respectively, in some embodiments.
  • an embodiment naming resolution protocol uses Sandstone Multi-tier DHT protocol which maps URI-based content name to flat naming space for processing the content retrieval and storage.
  • an originating CLS node when an originating CLS node receives an inquiry from user, it first maps a hierarchical URI to a flat name (via consistent hash) to find out where the content is stored within the CLS AS cluster, and then forwards the inquiry to the next hop to get the content.
  • CLS may implement one-hop resolution. If full-name mapping cannot determine the next hop (i.e., CLS cannot find the content in local domain), the originating node forwards the inquiry (with the full structured name) to the designated CLS border node.
  • the border node will bubble up the search to a neighboring CLS domain or to the non-CLS domain via CREX. If the border CLS node cannot find the content, the inquiry dropped in some embodiments.
  • the details of embodiment inter-domain protocol are described with respect to I-NNI hereinbelow.
  • the originating CLS includes URI with CL header in inquiry message when it is sent to the targeting CLS border node.
  • CLS assumes that the underlying infrastructure network is IP-routing-capable, whether it is an IP router, a MPLS/GMPLS, or an IEEE 802.1aq-enabled Ethernet transport.
  • CLS implements extended IS-IS with opaque TLV for CLS node boot up and automatic topology discovery.
  • the opaque TLV includes CLS node neighborhood information such as node ID, link capability, the designated border node ID/address, and node type (e.g., a border node), etc, in some embodiments.
  • CLS node neighborhood information such as node ID, link capability, the designated border node ID/address, and node type (e.g., a border node), etc, in some embodiments.
  • This LSA will be populated within IS-IS AS domain to notify all the other CLS nodes that a new node is added in. All the pre-connected CLS nodes receive this TLV and establish a new link in their routing database to reach to the new node. As well, via exchanging LSA database with the connected IP router, the new CLS node can acquire all the topological information of pre-connected CLS nodes. With such an embodiment automatic discovery procedure, a new CLS network topology is formed and synchronized in all CLS nodes (a.k.a., topology convergence). If DHT implements one-hop reachability, the CLS forms a fully mesh topology. On the other hand, if DHT implements multi-hop reachability, the CLS forms a partial mesh or ring-like topology.
  • C-NNI protocol is overlaid over an I-NNI platform.
  • each CLS node holds two routing topologies: one from CLS layer and one from an underlying IP layer.
  • the CLS node can effectively map CLS layer topology to the IP transport topology. This mapping refers to inter-layer optimization in some embodiments.
  • CLS implements transport adaptation engine functions to support inter-layer routing, mapping and optimization to any data bearer network. IP transport connectivity between any two CLS nodes can be established either on-demand, or by pre-configuration, depending on which control capability is provided by the underlying networks.
  • I-NNI represents an interworking interface between adjacent CLS nodes and overlaid infrastructure node.
  • the control plane of I-NNI is an IS-IS protocol that manages the adjacent topological links for the overlay networks.
  • the transport adaptation engines of CLS node discover, establish and maintain L2/L3 connectivity for various adjacent links.
  • the data plane protocol encapsulates/de-encapsulates CLS messages to/from underline L2 or L3 data packets protocols.
  • An embodiment CLS node supports L2/L3/L4 protocol stacks. For CLS intra-domain routing, the path between CLS nodes can be pre-configured or created on-demand.
  • IP GRE tunnel is established between two CLS nodes via an OAM&P system, or a MPLS LSP path is created via RSVP signaling protocol.
  • IS-IS running in a data bearer network exposes underlying topology information to the CLS layer.
  • the topology information includes links, link bandwidth availability, and other QoS parameters.
  • E-NNI represents a content resolution exchange interface between CLS border nodes within different CLS AS, or between CLS border node and the adjacent non-CLS data networks.
  • the resolution protocol is implemented via CREX functions in some embodiment.
  • a CLS border node uses extended BGP (with opaque TLV) to exchange both IP reachability and content resolution reachability with CREX.
  • extended BGP with opaque TLV
  • a CLS border node only uses legacy BGP to exchange IP reachability while implementing a global DHT resolution protocol for content reachability with CREX.
  • CREX when CLS border nodes connect to a non-CLS network, CREX functions as a DNS agent. After a CLS border node receives content inquiry from an originating CLS node (within CLS AS cluster), it triggers DNS request to the non-CLS domain to get the IP address of the original destination and forward the inquiry to the targeting server. Once it gets the content back, the border node sends the received content back to CLS originating node.
  • CREX is responsible to determine whether the further inquiry should continue or drop the incoming request, based on the exchange policy.
  • CLS workflow analysis includes a CLS boot up procedure for user initial entry, CLS topology automatic discovery, CLS content publish and inquiry, and CLS content naming and routing in both intra-domain and inter-domain.
  • FIG. 19 illustrates a diagram depicting an embodiment CLS user initial entry procedure.
  • a CLS user i.e., CC on user device
  • a CLS Service Provider i.e., CP on CSP's CLS node
  • This embodiment procedure is typically executed on a first time use, initial network entry, network re-entry, or when user transitions across different CLS domains.
  • CC detects one or more available CLS CSP or CC detects CSPs via a stored configuration acquired from a previous entry or configured by CLS management system.
  • the CSP list may be broadcasted from access network such as WiFi, LTE or WiMAX.
  • CC identifies all accessible CSPs and selects a CSP based on some preference criteria.
  • preference criteria include CSPs that have a bilateral agreement with the access network operator.
  • CC performs more concrete processes procedures with access network.
  • CC becomes authorized on the selected CSP for service subscription and creates a business relationship enabling access via the selected CSP.
  • CC acquires and stores the configuration information.
  • An embodiment CLS topology auto discovery diagram is illustrated.
  • An embodiment CLS AS domain is defined by content naming resolution area (i.e., DHT routing domain), which is scoped by geographical range or administration domain.
  • the join or leave of a CLS node causes all the CLS nodes (within the AS) to update the routing database and to synchronize the changes.
  • the CLS node connects to ISP routers and configures IS-IS links.
  • IS-IS on CLS new node
  • ISP routers flood LSA to all adjacent nodes.
  • this TLV is sent over a CLS link at far end pre-connected CLS node.
  • far end CLS creates a CLS-adjacent link with the new node and updates its routing database
  • a new CLS node is synchronized with attached ISP router by exchanging LSA database.
  • the new node creates a CLS routing database from LSA DB that contains all pre-established CLS links (with opaque TLV).
  • the new CLS node holds two topologies: one for CLS layer and one for underlying IP routing domain.
  • the new node creates peering adjacent links to all the other CLS nodes by calculating the best paths (assuming IP layer t support QoS routing).
  • a CLS node uses DHT protocol to determine the designated next hop and to forward the inquiry to the destination over the selected path.
  • CLS uses distributed content storage, as illustrated in FIG. 21 .
  • a CLS node creates content storage under two scenarios: one is when CLS clients publish a new content to the network; and the other is when the local cache makes a local copy after a successful retrieval.
  • peer nodes 2102 , 2104 , 2106 , 2108 and 2110 are implemented as CLS nodes. Originating peer 2102 is the CLS node that receives published content from an attached client.
  • publisher 2112 publishes content to CLS node.
  • CLS node 2102 (originating peer) divides the content into pieces, and determines the destination peers (one primary peer 2106 and two backup peers 2108 and 2110 ) to store the pieces based on one-hop routing table.
  • Originating peer 2102 sends the pieces to the primary peer 2106 .
  • Primary peer 2106 then sends the pieces to the backup peers using infrastructure network connectivity, and backup peers 2108 and 2110 send results back to the primary peer node to get content.
  • Primary peer 2106 then sends the results back to originating peer 2102 , and originating peer 2102 determines the destination profile peers (one primary peer and two backup peers) to store the profile data of this piece based on one-hop routing table.
  • originating peer 2102 sends profile data to these profile peers.
  • the procedure of making a copy at local cache is similar to what is described above, except that the trigger is issued from the CLS node which makes the local copy, instead of from the publisher client, in some embodiments.
  • FIG. 22 illustrates distributed content resolution and access for an embodiment of the present invention.
  • an inquiry is forwarded to the destination CLS node (Main peer 2106 ).
  • Main peer 2106 then sends the content back to originating peer 2102 .
  • a subscriber issues an inquiry
  • originating peer 2102 determines profile peer 2104 that stores the profile of the interested content.
  • originating peer 2102 sends a request to profile peer 2104 to get the attributes of the content pieces.
  • the request can be a request for a total number of pieces, in one embodiment.
  • Profile peer 2104 then returns the results, and then Originating peer 2102 determines the destination nodes that stored the interested content (i.e., Primary and Backup CLS nodes).
  • originating peer 2102 then sends a request to primary node 2106 to get the content. If Primary node 2106 fails, the request is sent to backups 2108 and 2110 . Main peer 2106 then sends back the content to originating peer 2102 . In turn, the content is sent back to the subscriber.
  • a CLS node is implemented by using leading technologies from Multi-core computing servers, distributed local caching and advanced routing framework.
  • a CLS node is implemented using an Intel RouteBricks platform, which has a software-defined router with high-speed parallel processing capability by using Intel's multi-core computing technology. In one embodiment, 35 Gbps parallel routing capability is used.
  • One RouteBricks based CLS embodiment is fully programmable using a Click/Linux environment and some embodiments can be built from off-the-shelf, general-purpose server hardware. In one embodiment, the architecture allows routing capability to linearly scale up.
  • FIG. 23 illustrates an embodiment cluster router architecture having servers 2302 interconnected by inter-server switch 2304 .
  • the cluster router is implemented using RouteBricks to form high-speed switch fabric to connect servers 2304 .
  • the servers are NIC cards; however, other server implementations can be used in other embodiments.
  • FIG. 24 illustrates an embodiment cluster router.
  • Each server has multiple processing cores 2408 , arranged in “sockets” 2404 . All cores 2408 in a socket share the same L3 cache 2408 .
  • Each socket 2404 has integrated memory controller 2410 , connected to a portion of overall memory space 2402 via a memory bus. Sockets 2404 are connected to each other and to the I/O hub via dedicated high-speed point-to-point links. Finally, I/O hub 2404 is connected to the NICs via a set of PCIe buses.
  • FIG. 25 illustrates various alternative embodiments including one socket system 2502 that includes a single socket, and a four socket system 2504 that has four sockets.
  • any number of sockets can be used in a system depending on the system's specification and environment.
  • FIG. 26 illustrates a block diagram showing an embodiment architecture of a context label switch (CLS).
  • CLS functionality includes flow-based content forwarding represented by forwarding plane 2602 , content routing protocols represented by routing plane 2604 , distributed local cache management for content retrieval and storage represented by local cache server 2606 , content service processing (e.g., mash up, transcoding and adaptation/customization) represented by service plane 2608 , and management plane 2610 that provides OAM interface for OSS in one embodiment.
  • CLS may also provide open API for content flow management and for 3rd party brokering services.
  • forwarding plane 2602 has L2/L3/L4 stack 2618 , CL look up and classify module 2620 , CL flow action engine 2622 , CL switching scheduler 2624 , policy engine 2626 , CL crypto module 2630 and Forwarding Information Base (FIB) 2632 . These modules interface to line cards having an ingress port 2612 , switch fabric 2616 , and line cards having egress port 2614 . Forwarding plane performs operations that affect CL flow in some embodiments.
  • Routing plane 2604 has CL routing protocol and routing collaboration module 2644 , mobility and location module 2640 and CL routing database 2648 . In some embodiments routing plane 2604 performs some functions similar to that of conventional routers. Routing plane 2604 also performs infrastructure routing, as well as content routing integrated with infrastructure routing in some embodiments.
  • Service plane 2608 has event service module 2662 , distillation dissemination mash up customization module 2650 , third party service brokering module 2660 , attachment and mobility module 2656 , security key management module 2652 , intelligent traffic management module 2658 and content caching service module 2654 .
  • Service plane 2608 processes services such as mash up and advertisement. For example, in some embodiments, service plane 2608 performs advertising insertions onto web pages depending on the context information from the client.
  • Local cache server 2606 has CL data storage and maintenance block 2642 , global synch, redistribution and aggregation module 2638 , access policy privilege policy module 2634 , CL data retrieval optimization module 2640 and CL content module 2636 .
  • local cache service module provides local cache and storage for the CLS.
  • Management plane 2610 has OAM&P module 2664 , NE UI manager module 2666 and Management Information Base (MIB) module 2668 .
  • MIB Management Information Base
  • greater and/or few modules may be used.
  • other functionality can be incorporated within the system software.
  • a CLS system achieves a balance between CL overhead processing and system performance for routing throughput.
  • a CLS node is a “router+server” platform, in which content flow for forwarding and relay is processed at CL header level, which means the termination of L2/L3/L4 stack. The incoming content inquiry is searched in local cache (or shared storage) to determine if there is a local copy to be returned.
  • each UNI-faced NIC card can also participate in content service processing tasks such as mash up.
  • CLS design may also facilitate other leading-edge technologies such as Deep(er)PI and open flow management for CL-based content forwarding. The following figure depicts the mapping relationship between CLS software and RouteBricks hardware.
  • FIG. 27 illustrates an embodiment mapping of system software package 2702 onto hardware 2704 .
  • hardware is implemented using four server cards 2706 and a fifth server card 2708 for a control server.
  • Forwarding plane functions 2710 , operating system (OS) 2712 , virtualization plane 2714 and services plane 2716 are run on server cards 2706 , whereas routing protocol 2718 is ran on control server 2708 .
  • forwarding plane 2710 can be ran on one processor, and the virtual storage management of virtualization plane 2714 can be implemented in local cache engine 2720 of server cards 2706 .
  • software can be mapped onto hardware differently.
  • CLS systems can be implemented using other architectures and technologies.
  • software system 2702 implements forwarding plane 2710 having policy engine 2730 , flow lookup and classifier 2734 , flow action engine 2736 , CL flow scheduler 2732 , FIB 2742 , CL crypto, 2740 and CL REGEX 2738 .
  • OS 2712 is implemented by Linux, however, in alternative embodiments; other operating systems can be used.
  • Virtualization plane 2714 has hypervisor 2750 , virtual service flow manager 2754 and virtual storage manager 2752 .
  • Services plane 2716 has mash up module 2760 , event module 2762 , transcoding module 2764 , and cache 2766 .
  • Management and control plane 2718 has open API 2770 , DHT KBR 2772 , overlay routing 2774 , service policy 2776 , user attachment 2778 , traffic/request synopsis generator 2780 , content routing 2782 and name resolution 2784 .
  • Control server 2708 has routing engine processor 2902 , integrated memory controller 2906 and I/O ports 2908 .
  • Each server card/socket 2706 has service engine (SE) multi-core processor 2910 , local cache engine multi-core processor 2720 , integrated memory controller 2912 , FIB cache 2914 , fast path processor (FP) multi-core processor 2920 , flow process memory 2916 and I/O ports 2922 .
  • SE service engine
  • FP fast path processor
  • FIG. 28 illustrates a CLS according to an embodiment of the present invention.
  • CLS 3000 has one or more application server cards 3001 and control server card 3005 .
  • Application server card 3001 has CP 3006 , content routing dispatcher 3009 , application engine 3003 and storage engine 3004 .
  • CP 3006 receives an input packet and compares the CL to an entry in flow table 3036 . If the entry does not match the flow table, a new flow is initiated, otherwise, an action, such as a mash up procedure to add a short advertisement in video stream, is taken.
  • CP 3006 performs content flow management, which identifies, creates and removes flow entries from the flow table, and adds, deletes, and/or modifies relevant actions for each flow in the table.
  • Content routing dispatcher 3009 distributes packets to application engine 3003 , storage engine 3004 or routing engine controller 3050 to handle data-path packets and control-path packets accordingly.
  • Application engine 3003 has application API 3010 , and one or more service virtual machines 3012 , 3014 , global flow table 3018 , driver & instance 3020 and hypervisor 3034 . These functions can be implemented by hardware, or by software running on hardware.
  • Storage engine 3004 has storage API 3022 , storage manager 3024 , statistic block 3026 , hot pluggable cache policy 3028 , content table 3030 and driver and instance 3032 .
  • CLS 3000 may provide other functions and/or have greater or fewer modules than depicted.
  • storage engine 3004 also includes storage for local cache, which is implemented using hardware such as disk drives, or other types of storage. The total amount of storage devoted to each CLS, depends on usage, the number of clients, and total memory capacity of storage engine 3004 .
  • storage engine 3004 is expandable to keep up with network demands.
  • storage engine 3004 stores frequently requested content. Content that is not frequently requested, or content that expires because of expired security keys and or TTL labels can be overwritten by new data.
  • Control server card 3005 has routing engine controller 3050 , which includes routing tables 3052 , drivers & instance 3054 , name resolution 3058 , DHT KBR 3056 , CLS topology manager 3060 , transport topology manager 3062 , and attachment manager 3064 .
  • FIG. 29 illustrates a block diagram of embodiment network system 3100 using an embodiment CLS.
  • CLS publisher 3102 and CLS subscriber 3104 are coupled to first content proxy 3110
  • CLS publisher 3106 and CLS subscriber 3108 are coupled to second content proxy 3112 via CP UNI interfaces.
  • Transport routing functions of content proxies 3110 and 3112 are coupled together via transport network 3114 , while the CP NNI interfaces of content proxies 3110 and 3112 communicate with each other.
  • Embodiments of the present invention formalize the operational semantic of content/application delivery service platform for next generation Internet via a context label.
  • Embodiment CLs inter-relate user personal/device profile, application context and network property all together to form a middleware layer to utilize application intelligence, user profile and network intelligence to guide content/application delivery.
  • CL/CLL can be implemented to overlay any data transport layer in both infrastructure-oriented and infrastructure-less network, which can deliver content via simple and transparent multi-modal interfaces (e.g., WiFi, Bluetooth, 3G/4G wireless, Ethernet, Optical, etc).
  • Embodiment systems provide efficient and effective network resource optimization by localizing popular content in a local cache server thus creating a “Green” delivery service platform to reduce traffic and non-deterministic data distribution, and in turn, to reduce energy consumption.
  • Some embodiment systems embed security and privacy to support personalized services, and provide intelligent & autonomous network architecture and management (e.g., CL context profile is used for in-banding signaling to support user dynamic mobility).
  • CLL is a common layer and framework to seamlessly correlate wire-line and wireless for content delivery services.
  • a context is a profile having minimal a set of attributes associated with supporting content delivery in a communication network. From the operational semantic of content/application delivery service, a context inter-relates communication-enabled attributes from dynamically changing network properties such as location and presence, a user profile such as interest or preference, a device type, a user ID, and service transaction time; and application attributes such as content name, version, security, size and TTL.
  • a CL represents a context assigned for data content. Different from the legacy label defined in MPLS/GMPLS/TMPLS or PBB/PBT, in which a label is used to identify a data transport connection/connectivity. In embodiments, a CL is used to identify a relationship profile for content delivery service. In some embodiments, a CL is an ASCII string attached to application data chucks. According to the defined rules, in one embodiment, CL is identified and processed by a FPGA, an ASIC or a network processor for content switching/routing.
  • a protocol stack called Context Label Layer (CLL) creates and inserts a CL for each content chuck (at sender), or modifies a CL (at intermediate relay node), or removes a CL (at receiver) from each content chunk.
  • CLL also implements a CL routing plane, CL forwarding plane, CL service process plane and CL caching process plane. From the perspective of a layered protocol stack, CLL is located between application content/service and data transport protocol. In an embodiment, CLL is responsible to segment/assemble the application content to/from variable size content chunks and dispatch/receive the I-chunks to/from the various lower layer data transport, depending on the MTU capacity of various physical links.
  • a context label switch includes computation resources, communication resources, and storage resources.
  • the context label switch provides content routing and mobility functionality.
  • the context label switch provides classification, filtering and mash up functionality.
  • the context label switch provides content search, naming resolution and security functionality.
  • the context label switch provides other resources.
  • a network device has an input port for receiving input packets, and an output port for sending output packets, where the input packets and output packets have context layer information.
  • the network device also includes a processor configured to process the input packets and output packets using a network protocol having a context layer.
  • the network device has a cache
  • the processor is further configured to receive an information request from a client via the input port, where the information request includes at least one input packet having a client identification context label and a content identification label.
  • the processor is further configured to determine if content data corresponding to the content identification context label is in the cache. If the content data is in the cache, the content data is sent to the client in at least one first output packet via the output port. The content data is addressed to the client with the client identification label.
  • the network device is further configured to send at least one second output packet to a second network device requesting the content data if the content data is not in the cache.
  • the at least one second output packet indentifies the content data by the content identification label.
  • the processor is further configured to send at least one third output packet to a third network device requesting the content data if the content data is not available from the second network device, where the at least one third output packet, which carries the content data, is encapsulated and identified by either an IP address, or some other L2 protocols such as an Ethernet MAC address.
  • the processor is also configured to reformat the content data according to the client identification context label.
  • the content data comprises video data in a first format
  • the processor is further configured to reformat the video data in the first format into a second format.
  • the network device further includes a switch fabric configured to switch packets between the input port and the output port.
  • the processor of the network device is further configured to transmit a first output packet to a client, where the output packet has a client identification context label identifying the client. If transmission to the client is not successful, or if the client stops asking for more content, the processor will stop the transmission.
  • a keep-alive protocol can be used to test for the presence of the client. If a client device is no longer reachable, the attachment/presence status of the client is modified.
  • the processor of the network device is further configured to process context layer information comprising user specific information, application specific information, network specific information and security specific information.
  • a method of operating a network device includes transmitting and receiving packets on at least one port and receiving a first packet from a client on at least one port, where the packets have context layer information and the first packet includes a content name and a context label header. The method also includes determining if requested content associated with the content name is in a local cache. If the requested content is not in the local cache, at least one second packet is transmitted to a second network device on the at least one port, where the at least one second packet includes the content name and the context label. If the requested content is in the local cache, at least one third packet is transmitted to the client on the at least one port, where the at least one third packet includes the requested content.
  • the method also includes transmitting at least one fourth packet to a third network device if the second network device does not have the requested content.
  • the packets include the content name in HTTP URI and the context label in an extended HTTP entity header that comprises a user device identifier, location information, timing and some other attributes.
  • the packets are encapsulated in IP protocol if there are IP transport connections among clients and network devices.
  • the packets are encapsulated in link layer (L2) protocol if there is no IP transport, for example, in Bluetooth, WiFi, Ethernet or other wireless radio links.
  • the method also includes locating a client based on the context label header.
  • the client device may install a GPS locator which can determine the current user location.
  • every network device, as well, can install a GPS to determine its own location and they have the GPS knowledge of all the other peering network devices.
  • the client device sends the first packet the first packet can include the user's GPS location in the context label.
  • the second, the third or the fourth network devices send the retrieved content back to the first network device, based on the calculation of client's GPS proximity with the GPS of the network devices, the proximately is used to determine to which first network device the client is currently attached.
  • the access points are changed while the client device is mobile.
  • the retrieved content is sent to the network device that is the closest one to the user device.
  • the method can also include transmitting at least one second packet to a second network device on the at least one port, and accessing a copy of the requested content from an upstream content provider.
  • a method of operating a context level switch includes receiving a first packet from a client on at least one port, where the packet includes a content name and a context label header. The method also includes retrieving the requested content from the cache and transmitting at least one second packet to the client on the at least one port, where the at least one second packet includes the requested content.
  • the context label header includes a client device type context identifier. The method also includes reformatting the requested content according to the client device type context identifier before transmitting the at least one second packet in some embodiment.
  • the context label header includes a time-to-live (TTL) identifier, the TTL identifier denoting a lifetime for the requested content.
  • the method can also include deleting the requested content from the memory at an expiration of the TTL.
  • the context label header includes a security key for the requested content.
  • the context label header comprises location information, and the location information comprises global positioning system (GPS) based location information.
  • GPS global positioning system
  • a method of operating a client device includes forming a context label, sending a packet over the network, and receiving a packet.
  • the client device has a processor that runs software implementing content client (CC) functionality.
  • the client device runs software that implements a network a context label layer (CLL).
  • CLL functionality is implemented by hardware in the client device.
  • the client device is configured to communicate with a network having a context label layer (CLL).
  • a method of operating a context layer switch includes receiving packets from clients, and transmitting contents to clients based on a locally stored cache. If the content on the locally stored cache is not available, the context layer switch accesses copies of the content from upstream CLS nodes and/or a content provider.
  • a method of operating a context layer switch includes having a context layer (CL) in the Network protocol.
  • a method of operating context layer switch includes locating clients based on CL header.
  • the CL header is used (e.g., GPS information) instead of an IP address.
  • the context switch interacts with the rest of the network to maintain continuity of service based on the CL header.
  • a method of managing cached content includes associating TTL with content, reformatting streaming video data based on client device, and keeping content in cache based on validity of client keys.
  • a context layer switch device is configured to receive packets from clients, and transmit content to clients based on locally stored cache. If locally stored cache is not available, the context layer switch obtains copies of the content from upstream CLS nodes and/or a content provider. In a further embodiment, the context layer switch device is configured to locate clients based on a CL header and interacts with the rest of the network to maintain continuity of service. In a further embodiment, the CL header is used instead of an IP address.
  • a context layer switch device is configured to associate TTL with content, reformat streaming video data based on a client device, and keep content in cache based on validity of client keys.
  • a context layer switch device is configured to run content proxy (CP) software and/or implement CP functionality in hardware.
  • CP content proxy
  • a context layer switch device is implemented with interconnected sockets.
  • the context layer switch device has management plane, service plane and routing plane functionality.
  • a context layer switch device is configured to operate on a network with a context layer (CL) in the network protocol.
  • the context layer switch has software that executes a network protocol having a context layer.
  • network protocol functionality is implemented in hardware.
  • the advantages of embodiments of the present invention include the ability to help interne service providers (ISPs) to differentiate and prioritize the “high-value” content bits for their billing model, the ability to overlay the content layer over all kinds of data transport layers and flexibly adapt to various link sizes and diverse MTUs, and the ability to efficiently utilize network bandwidth/resource/topology to reduce the cost, improve performance and save energy.
  • ISPs interne service providers
  • Some embodiments also provide application layer knowledge to better support QoS, scale load balancing, and create a better user experience with personalized services.
  • Advantages of embodiments further include a networking architecture optimized for content storage and dissemination that addresses issues of scalability, cost efficiency and security for content.
  • An advantage of embodiments of the present invention that store video content locally and transcode the video according to the screen resolution of the client device is reduced network traffic because multiple versions of the video data do not need to be requested from the service provider.
  • Advantages of embodiments that employ RouteBricks multi-server/multi-core clusters include fulfillment of content search and process and relay objectives, while at the same time maximizing the system to reduce the delay and to promote throughput.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

In accordance with an embodiment, a network device has an input port for receiving input packets, and an output port for sending output packets, where the input packets and output packets have context layer information. The network device also includes a processor configured to process the input packets and output packets using a network protocol having a context layer.

Description

CROSS REFERENCE TO RELATED APPLICATIONS
This application is a Reissue Application of U.S. Pat. No. 9,319,311 B2, issued on Apr. 19, 2016 from U.S. application Ser. No. 13/959,486 filed on Aug. 5, 2013, which is a continuation of U.S. application Ser. No. 12/769,052, filed on Apr. 28, 2010, issued as U.S. Pat. No. 8,504,718 B2 on Aug. 6, 2013, entitled, “System and Method for a Context Layer Switch,” which application is hereby incorporated herein by reference in its entirety.
TECHNICAL FIELD
The present invention relates generally to data communication systems, and more particularly to a system and method for a context layer switch.
BACKGROUND
After an over forty-year journey from its infancy to a widely accepted business/application model, the TCP/IP based Internet has become a universal communication platform. Internet technologies have successfully transformed legacy end-to-end communication systems from a circuit-to-circuit model (i.e., circuit switching) to a host-to-host model (i.e., packet switching). Recently, however, the industry is gaining momentum to transfer next generation Internet technology from connectivity-based networking to content-based networking. Content-centric networking is designed and optimized for the content itself, and aims to be highly distributed and collaborative to fill the growing demand for networks that support personalization and social media.
Internet protocol (IP) routing is designed for host-to-host conversation, but today most Internet traffic is used for content dissemination. As the demand for content, such as streaming video, increases, using traditional IP routing becomes more challenging. For example, a small percentage of content may account for a large percentage of total network traffic. Current Internet IP routing designs, however, have not been optimized for this skew distribution resulting in over-subscription between Digital Subscriber Line Access Multiplexer (DSLAM) and Ethernet switchers, between Ethernet switchers and Broadband Remote Access Servers (BRAS), and between BRAS to edge routers. Over-subscription occurs, for example, when IP routing only provides a “pipe” transmission without regard to the characteristics of the content being carried. Therefore, IP routing has difficulty optimizing content traffic dissemination over underlying link layer network resources such as bandwidth and topology.
What are needed are efficient systems and methods of content distribution having high availability, high reliability, low latency, and ubiquitous mobility.
SUMMARY OF THE INVENTION
In accordance with an embodiment, a network device has an input port for receiving input packets, and an output port for sending output packets, where the input packets and output packets have context layer information. The network device also includes a processor configured to process the input packets and output packets using a network protocol having a context layer.
In accordance with another embodiment, a method of operating a network device includes transmitting and receiving packets on at least one port and receiving a first packet from a client on at least one port, where the packets have context layer information and the first packet includes a content name and a context label header. The method also includes determining if requested content associated with the content name is in a local memory. If the requested content is not in the local memory, at least one second packet is transmitted to a second network device on the at least one port, where the at least one second packet includes the content name. In some embodiments, the at least one second packet also includes a context label header. If the requested content is in the local memory, at least one third packet is transmitted to the client on the at least one port, where the at least one third packet includes the requested content.
In accordance with another embodiment, a method of operating a context level switch includes receiving a first packet from a client on at least one port, where the packet includes a content name and a context label header. The method also includes retrieving the requested content from memory and transmitting at least one second packet to the client on the at least one port, where the at least one second packet includes the requested content.
The foregoing has outlined rather broadly the features of an embodiment of the present invention in order that the detailed description of the invention that follows may be better understood. Additional features and advantages of embodiments of the invention will be described hereinafter, which form the subject of the claims of the invention. It should be appreciated by those skilled in the art that the conception and specific embodiments disclosed may be readily utilized as a basis for modifying or designing other structures or processes for carrying out the same purposes of the present invention. It should also be realized by those skilled in the art that such equivalent constructions do not depart from the spirit and scope of the invention as set forth in the appended claims.
BRIEF DESCRIPTION OF THE DRAWINGS
For a more complete understanding of the present invention, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawing, in which:
FIG. 1 illustrates a functional block diagram of an embodiment Context Label Switch (CLS) node;
FIG. 2 illustrates an embodiment CLS reference network model;
FIG. 3 illustrates networking in the context of an embodiment Context Label Layer (CLL) protocol stack;
FIG. 4 illustrates content of an embodiment context label;
FIG. 5 illustrates an embodiment content name with a CL-header;
FIG. 6 illustrates an embodiment mapping between name space;
FIG. 7 illustrates content data with a multi-identifier and Context Label (CL) according to an embodiment;
FIG. 8 illustrates an embodiment name resolution scheme;
FIG. 9 illustrates a two layered dynamic hash table (DHT) according to an embodiment of the present invention;
FIG. 10 illustrates a block diagram illustrating inter-domain content resolution for CLS and non-CLS systems according to an embodiment;
FIG. 11 illustrates an embodiment implementation of name and content authentication;
FIG. 12 illustrates an illustrates an embodiment network build-in Storage Node (SN) architecture;
FIG. 13 illustrates an embodiment joint optimization subsystem;
FIG. 14 illustrates an embodiment deployment mapping CLS logical entities to network elements;
FIG. 15 illustrates a block diagram of Content Client (CC) functionality for an embodiment;
FIG. 16 illustrates a block diagram of Content Proxy (CP) functionality for an embodiment;
FIG. 17 illustrates an embodiment mapping of a content storage subsystem to a logical node;
FIG. 18 illustrates a logical view of index nodes and data storage nodes according to an embodiment of the present invention;
FIG. 19 illustrates a diagram depicting an embodiment CLS user initial entry procedure;
FIG. 20 illustrates an embodiment CLS topology auto discovery diagram;
FIG. 21 illustrates distributed content storage according to an embodiment;
FIG. 22 illustrates distributed content resolution and access according to an embodiment;
FIG. 23 illustrates an embodiment cluster router architecture;
FIG. 24 illustrates an embodiment cluster router;
FIG. 25 illustrates further embodiment cluster routers;
FIG. 26 illustrates a block diagram showing an embodiment architecture of a CLS;
FIG. 27 illustrates an embodiment mapping of a system software package onto hardware;
FIG. 28 illustrates a CLS according to an embodiment; and
FIG. 29 illustrates an embodiment network system using content proxies.
Corresponding numerals and symbols in the different figures generally refer to corresponding parts unless otherwise indicated. The figures are drawn to clearly illustrate the relevant aspects of the embodiments and are not necessarily drawn to scale.
DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS
The making and using of various embodiments are discussed in detail below. It should be appreciated, however, that the present invention provides many applicable inventive concepts that can be embodied in a wide variety of specific contexts. The specific embodiments discussed are merely illustrative of specific ways to make and use the invention, and do not limit the scope of the invention.
The present invention will be described with respect to embodiments in specific contexts, for example, a context layer switch. Embodiment devices include, but are not limited to context layer switches, routers, network devices, client devices, cellular telephones, and Internet access devices, as examples.
Embodiments of the present invention include applications of Context Label Switching (CLS) technology for next generation Internet that moves content among people and machines. A Context Label (CL) as a relationship profile which interrelate the communication-enabled attributes of a network, user and interested content/application. In embodiments, CL is used to label application information chunks (I-chunk) and to guide the data delivery services, and is used to describe the delivery service semantics of Internet (i.e., who, what, when & where). Based on a given CL, embodiment CLS-enabled network devices could switch and deliver application data among peers. Embodiments work within a Context Label Layer (CLL) framework architecture and operate using content-oriented network communication techniques. In CLL, the CL is created, added, removed and switched between content publisher and consumer or from machine to machine.
The Internet has become a common platform that allows people to share information and content. Content sharing over hyper-connected Internet with user/device mobility has moved Internet communication model from a traditional fixed point-to-point conversation (e.g., phone) to p-mp or mp-mp ubiquitous information dissemination (e.g., video conference). The current technology development is toward the convergence of services over diverse delivery platforms for both wire-line and wireless communication networks. Networks, user devices and service/applications will adapt to the user's personal preference and context.
For the end users, Internet application/service operational semantics can be represented, in some embodiments, as a “Who gets or provides What at Where and When, and with Trustiness” system, in which “Who” is the user ID (e.g., consumer ID or supplier ID in subscriber/supplier model), or device ID (e.g., machine-to-machine model); “What” is the interested content/service name; “Where” is the location of user or device; “When” is the time stamp of consumer requested or the content/service to be provided, and how long the content can exist in the network; the “Trustiness” is an agreement for confidence or faith between consumer and supplier.
In principle, this Internet service operational semantic can be characterized and quantified as a relation R=(User/Device, Content/Service, Time, Location, Security). In embodiments, a Context-Oriented Profile (CCP) is defined, where CCP is a subset of R. Each element of CCP is a Context Label (CL). CL can be used in Internet service operation to inquire and deliver content and service/application data. For example, CL can be embedded in user's request such as “Tony's iPhone wants movie: xxx at location: (e.g., GPS) on: next Monday,” and the movie supplier can deliver movie: xxx with an assigned security code in the response and follow the navigation guided by the given CL. Embodiments of the present invention use CLS.
In an embodiment, a CLS forwards and relays content I-chunk with build-in CL between peers. CLS has a local cache for content storage, where the working mode of CLS is to store, process, and forward, where the “process” function is to process the local content cache, based on a defined CL. In some embodiments, irrelevant content replication and unnecessary data relay operations are removed. In some embodiments, the CLS is “application-aware” and provides a “smart-pipe” for the service provider and enterprises of next generation Internet.
In some embodiments, a context is defined as a profile that consists of minimal set of attributes associated with supporting content delivery in a communication network. From the operational semantic of content/application delivery service, context interrelates altogether of communication-enabled attributes from dynamically changing network property such as, location and presence; user profile such as interesting preference, device type, user ID, and service transaction time; and application attributes, such as content name, version, security, size and TTL (Time-To-Live). Other attributes can be defined in other embodiments. The context is adapted into the service delivery platform to guide the content delivery in the network.
In embodiments, the “label to” represents a context defined for data content, for example, CL. In some embodiments, CL is different from the legacy label defined in a Multiple Protocol Label Switch (MPLS), Generalized MPLS (GMPLS), and/or Transport MPLS (TMPLS), or Provider Backbone Bridge/Provider Backbone Transport (PBB/PBT) where a label is used to identify a data transport connection/connectivity. In embodiments, CL is used to identify a relationship profile for content delivery service. This profile has of several attributes from network, device, application/service, security, etc. In some embodiments, the context label is created and attached to application I-chunks, and is used as an in-band or an out-band signaling mechanism to guide the content delivery service and storage service in the network.
In embodiments, CL is defined as an N-element-tuple (N>=1) which has attributes and elements defined from a network property, a user/device profile and/or applications and services. For example, in an embodiment, network-defined elements may include location info and presence info; a user profile may include user ID, device-ID/device-type, and preference and transaction time, etc. In embodiments, application/service-defined elements may include content name, version, medium type, content I-chunk number, chunk size, content published time, content TTL and security code, etc. Each CL is an element of a content-oriented profile that represents the relationship between user, content and network.
In an embodiment CLL, a CL can be implemented as an ASCII string (constituted by following certain rules) in content data chuck. The format of the CL is identified and processed by a FPGA, an ASIC, or a network processor based on pre-defined rules. For example, in one embodiment, CL uses a format of widely used application layer protocol such as URL or other format. In embodiments, CL normally is created by the end device based on a pre-defined policy for content publishing, inquiry and delivery. CL is attached to application I-chunks and can be modified by a CLS within the network for the purpose of delivery security (e.g., add/remove encryption) or late-banding (e.g., change location or time element).
In embodiments, CLL is defined as a protocol stack to create, add, remove, update and switch CL in the network. From the perspective of layered protocol stack, CLL is located between application/service and data transport protocol. The application/service layer may be any type of content such as video, audio, Web, Email, and voice, while the data transport layer could be TCP/IP, UDP, P2P, PPP, Broadcasting protocol, Ethernet MAC, wireless MAC, MPLS/TMPLS, PBB/PBT, or GMPLS. CLL is overlaid with any data transport layer. An embodiment data transport layer is overlaid with various physical link layers such as Ethernet, Bluetooth, WiMAX/LTE, WiFi, DSL, xPON, DOCSIS, and Optical. In alternative embodiments, other application service layers, data transport layers and/or physical layers can be used.
In embodiments, CLL can be implemented at an end user device, an access device, an access gateway and a CL-enabled router/switch. CLL is responsible to segment/assemble the application content to/from variable size content chunks, and dispatch/receive the CL data to/from the lower layer, depending on the maximum transmission unit (MTU) capacity of various physical links. Based on pre-defined profile policy, CLL creates and inserts CL for each content chuck (at the sender), or modifies CL (at an intermediate relay node), or removes CL (at the receiver) from each content chunk in some embodiments. CLL also implements CL management plane, CL routing plane, CL forwarding plane, CL service process plane and CL caching process plane. Based on CL, the CL routing plane is used to find the routing path, to guide global content search/discovery, to determine next hop/interface, and to manage mobility anchoring and location service. The CL forwarding plane is used to guide the content delivery, to manage content flow for load balancing and traffic engineering, to prioritize traffic scheduling for Quality of Service (QoS) and to control CL switching fabric. The CL service plane is used to execute content distillation, dissemination, mash up, content aggregation and content chunk customization (i.e., same video may be sent to different end devices with various resolution/contrast), and intelligent traffic management. The CL caching process plane is used to execute local data retrieval, local caching, content database maintenance, global content synchronization and aggregation, content deduplication, and content access privilege policy management. In alternative embodiments, CL management plane, CL routing plane, CL forwarding plane, CL service process plane and CL caching process plane may encompass a subset, superset, and/or different functionality as the functions described above. In further embodiments, CLL may implement a security sub-layer to handle all security issues including the encryption/decryption for content chunk and CL, as well as to manage security key distribution.
In an embodiment, each N-element CL is a variable size ASCII string which may be implemented as widely used format such as URL. CL is used mainly for facilitating content discovery and content delivery/routing. In some embodiments, CL uniquely identifies a content chunk. The composition of CL follows some policy-constraint rules such as constitution priority. For example, a CL may be created by the following embodiment method:
    • 1. CL=Content title; If not unique, continue;
    • 2. CL=CL+version; If not unique, continue;
    • 3. CL=CL+publisher-name; If not unique, continue; and
    • 4. CL=CL+published-time.
In an embodiment, CL composition follows a hierarchical structure (i.e., tree-like), where each node in the tree represents an attribute defined by network, user/device profile or by an application and/or service. The position of each node in the tree is defined by the policy of a Content Oriented Profile. CLL will use this naming tree to create a CL and use CL in the following scenarios:
    • 1. Publish CL content to local repository and content server;
    • 2. CL content distillation, dissemination, mash up, global synchronization and aggregation;
    • 3. CL as index for local content storage and maintenance;
    • 4. CL as index for Content search and inquiry;
    • 5. Content routing to find a path;
    • 6. Content forwarding;
    • 7. CL for mobility management and location services; and
    • 8. CL for security key distribution and crypto operation.
      In further embodiments, CL can be used for other functions.
In some embodiments, CL represents the content delivery relationship between the subscriber and the supplier, which inter-relate attributes from network, user and application. In some embodiments CL only describes a delivery service operational semantic. When content chunks are delivered on overlay data transport network, CL can be mapped into any type of transport connection medium such as MPLS/GMPLS label, IP address, MAC address, WiMAX/LTE connection ID, etc.
In some embodiments, CL is created, added and removed by the end user node or content server, and may be updated at intermediate nodes. In some embodiments, CL is handled at access edge nodes as long as the edge device knows how to deliver the content to the right user device without using CL operation.
In some embodiments, CLL-enabled relay nodes may modify some elements of a given CL. For example, if a particular link/network needs security protection, CLL-enabled relay node may add extra security coding in CL and remove these security codes before making content chunks leave the link/network. In some another cases, CLL-enabled relay nodes may change CL location elements or TTL elements due to the next hop reachability issue or some other considerations (e.g., the presence or the mobile location of the receiver). This is referred to as a “late-binding” capability.
In an embodiment, CLS is a CLL-enabled access device, gateway, routing switch, or some other data-capable access and transport devices. From system level, CLS implements several CCL functional engines (or planes), which may include a management plane, CL routing plane, CL forwarding plane, CL service process plane, and CL local cache process plane. Local cache is a local database or data server. Physically these planes can be built into the same box/chassis, or in separate box/chassis depending on the embodiments. Each plane may have its own network processors (multi-core or single-core) and I/O interfaces, and communicate with each other via high-speed channels. Logically, these functional planes are clustered together and are represented by a CLS in some embodiments.
The management plane conducts system FCAPS functions using management interfaces such as GUI, Web, CLI, SNMP, CORBA or some other standard/proprietary management protocols in some embodiments. This plane implements NE Operation, Administration, Maintenance & Provisioning (OAM&P) functions.
The CL routing plane implements CL routing algorithms and protocols to determine the adjacent CLSs and next hop for relaying content chunks in embodiments. The next hop CLS determination may rely on interested content distribution, CL location info and overlay physical network topology. Various criteria help determine CL routing paths in some embodiments. For example, in one embodiment, a hybrid approach is used in a broadcasting-enabled LAN and point-to-point WAN autonomous domain. In LAN or PBB/PBT enabled access network, CLS may use broadcasting CL inquiries (similar to Dynamic source routing protocol) to determine the next hop, while in BGP domain or MPLS/TMPLS/GMPLS network, DHT or DNS protocols can be used to determine where the next hop is for inquired content. In GPS covered area, for example, the location information embedded in CL can be used to determine the next hop. In CLL networking topology, the next hop is defined as the adjacent CLL-enabled end devices, the CLL-enabled switch/router, or the CL-enabled local cache server. In embodiments, each CL contains enough information, for example content chunk name prefix and GPS information, for the routing plane to determine the routing path. When CLS nodes overlay existing transport infrastructure, for example, an IP network, CL routing learns underlying topology and bandwidth to conduct integrated routing to optimize network resources and promote content delivery performance in some embodiments. For example, CLL layer topology and IP layer topology can be collaborated.
In some embodiments, the CL next hop may also include the local cache (if the interested inquiry is discovered in the local cache). Similar to normal IP router, CL routing plane stores a routing table which consists of the mapping between CL prefix and the logical/physical I/O interfaces of CLS. Once a CL routing table is established, it will be installed in the CL forwarding plane, for example, for relay purposes. When CLL is implemented over an overlay network such as IP routing, PBB/PBT routing, MPLS/GMPLS routing, the CL routing plane may co-exist with these routing planes in some embodiments. The collaboration between the CL routing plane and the other routing planes is implemented in either an overlay model or integrated model. An embodiment CL routing plane may also support mobility management and location services, due to the fact that CL may have embedded location information.
The CL forwarding plane includes CLS switch fabric, I/O interfaces and network processors to handle content relay, to manage content flow for load balancing and traffic engineering, and to prioritize traffic scheduling for QoS, and delivery policy enforcement. In some embodiments, CLL security sub-layer crypto functions may be implemented in this plane. To accelerate content relay at line speed, CL look up and classification (“deeper packet inspection”) process and security encryption/decryption may all be implemented, for example, in an FPGA, ASIC, or very-high speed network processor. Based on the CL routing table made from the CL routing plane, and an action list defined by the CL service plane, the forwarding plane executes CL look up to determine the egress interface, and shifts content chunks from the ingress port of switch fabric to the egress port. Based on the overlay network architecture and interfaces, CL forwarding plane handles all L2/L3/L4 protocol stacks to terminate and dispatch the received data packets in some embodiments. The CL forwarding plane may also execute relay policy enforcement. In embodiments, the policy profiles are configured from either the CL management plane or the CL service plane.
In an embodiment, the CL service plane is responsible for several tasks including content distillation, dissemination, mash up, content aggregation and content chunk customization (i.e., same video may be sent to different end devices with various resolution/contrast). This plane may also support local/global load balancing and intelligent traffic management for content distribution. Based on the policy for content flow, the service plane may install user/content service profiles and related action list into CL forwarding plane for flow processing. Optionally, this control plane may support content security functions such as authentication and key distribution. In some embodiments, the control plane communicates with a local cache server to store and update content database.
In further embodiments, other functions of the service plane may also include user account and device attachment management, user presence and mobility management, and service level agreement (SLA) profile management.
In an embodiment, Local cache server manages local content storage. Typical tasks of an embodiment local cache are to create, update, re-fresh (based on TTL in CL), retrieve and synchronize/aggregate the contents with other CLSs, and make/remove the duplication of contents. The CL name prefix is used as key/index to store and to discover the interested data. In some embodiments, content and its key refreshment and disposal may be restricted by TTL. This plane also manages content access privilege policy.
In one embodiment, a trust-to-trust content-oriented networking model delivers content and applications based on named data with built-in security. In one embodiment, named hosts are not used. Rather, the network handles more “application semantics” which are relevant to the environmental context of the information such as the security/privacy, the content name and type, the end user device, user location and presence, and the content life circle (e.g., time to live (TTL)) within the network. In such an embodiment content-oriented network, content security, content storage and content delivery are built-in functions of the network. In some embodiments the network leverages powerful distributed computing and optimization to minimize capital expenses and operational expenses, as well as improving user experience for content.
An embodiment CLS is a platform for a content-centric networking model. CLS delivers contents by leveraging and consolidating advanced distributed computing, joint optimization based routing/forwarding protocols, and more cross/inter-layer optimization algorithms. In an embodiment, CLS provides content/application delivery services with these enabling technologies to create a “green” and “behavior-adaptable” environment for global information sharing.
In an embodiment, a CLS system encompasses 5 building blocks: a very scalable and fast Content-based Naming and Resolution scheme with self certifying content names, a cost efficient and scalable collaborative network embedded storage cloud for caching, practical Traffic Engineering/Server Selection, a content positioning system having joint optimization (i.e., cross-layer) for content dissemination routing to leverage IP or non-IP capabilities such as content networking directly over Ethernet, and a parallel computing cloud for user-content profile analytics and content service processing.
In embodiments, CLS has protocols that support content based naming, resolution and joint optimization. However, in some embodiments, existing protocols are incorporated into systems, such as embedding opaque type length value (TLV) into routing protocols such as Intermediate Systems-Intermediate Systems/Border Gateway Protocol (IS-IS/BGP) data packets. The opaque TLV is used to carry the information of CLS node and CL.
In some embodiments, CLS-enabled delivery services incorporate embodiment network reference models, interface requirements, functional entities, protocols, and procedures for various CLS implementation alternatives.
In an embodiment CLS architecture, logical entities decompose and alternative deployment views map CLS logical entities to physical network elements (NEs).
In an embodiment, CLS nodes interwork with each other via CLS User Network Interface (UNI) and CLS Node-Node Interface (NNI) protocols, including, but are not limited to:
    • 1) intra/inter-domain content based naming and resolution protocol;
    • 2) user-content requests profile collection protocol;
    • 3) collaborative cache decision/suggestion feedback protocol;
    • 4) user-content profile analytics feedback protocol; and
    • 5) joint TE/SS routing decision feedback protocol.
In some embodiments CLS system use existing data transport mechanisms including both infrastructure (e.g., IP, MPLS, Ethernet transport and packet-optical, 3G/4G wireless) and infrastructure-less (e.g., wireless ad hoc and Ultra Wideband (UWB) radio). In some embodiments CLS is implemented over IP including IPv4 and IPv6. In other embodiments CLS networks directly over Ethernet. This yields performance improvement in some embodiments. In further embodiments, CLS can operate over other network types, for example, over fiber, and over wireless connections such as WiFi and Bluetooth.
In some embodiments, CLS systems use several protocols between a CLS node and an IP router/Ethernet switcher (logically, in physical deployment, and/or the CLS node might be a part of the CLS enabled router/switcher), as follows:
    • 6) protocols for collecting traffic condition (e.g., queue length) from router, in an echo-pattern like way;
    • 7) Protocols for notifying the router about the joint optimization result, so as to let the router modify its routing by MPLS or other schemes;
    • 8) Protocols for notifying the OpenFlow controller about joint optimization results, so as to let the controller modify the forwarding table inside switchers. In some embodiments, OpenFlow is used as a test bed for CLS over Ethernet;
    • 9) Protocols for publishing/retrieving content to/from the CLS network; and
    • 10) Protocols for transmitting content among user and CLSs.
In some embodiments, CLS systems include content-based naming and resolution schemes with self certifying content names, which fit the topologies of the existing networks. In an embodiment naming scheme, a self-certified binding between name, publisher and content is supported. In some embodiments, the naming scheme the format is hybrid, HTTP or flat (by hashing the HTTP name). A HTTP name is used in the User-Network Interface (UNI) and in the inter-Autonomous System Node-Node Interface (AS NNI). In some embodiments, a flat version is used in the intra AS NNI.
In an embodiment resolution scheme, a hierarchical dynamic hash table (DHT) based resolution design is used that fits the hierarchy of infrastructure networks, such as access/edge/metro accumulation/backbone. For the inter-AS portion, another global DHT is used in one embodiment. Alternatively, a hierarchical tree of Content Resolution Exchange (CREX) similar to what is implemented by a Data-Oriented Network Architecture (DONA). In the first hop (or in the local access networks), CLS also adopts a broadcast/multicast method for the name resolution in some embodiments, for example, Address Resolution Protocol (ARP).
In some embodiments, CLS systems use a cost efficient and scalable collaborative network embedded storage cloud for content storage and caching. In an embodiment, the storage cloud is logically composed of an embedded storage engine and a local and collaborative caching decision maker. The embedded storage engine is responsible for the storage of content that has not expired. The embedded storage engine resides inside network elements (e.g., DSLAM, switcher, routers) or servers placed proximately to such elements. In some embodiments the CLS storage engine can also leverage the customer terminals' capabilities.
The local and collaborative caching decision maker decides or suggests whether specific content should or should not be cached. In one embodiment, the storage capacity of each CLS node is partitioned into two portions. One portion is left to the local caching decision maker and may use a Least Recently Used (LRU) like evictor patter, and the other portion is utilized to realize a collaborative caching system, with the assistance of a collaborative caching decision maker. In one embodiment “local” means that a decision is just made according to local requests served by the node itself. In the later case, multiple proximate CLS nodes contribute some portion of their storage capacity to implement a virtual caching storage unit which is shared by all the CLS nodes in the same domain in some embodiments.
In some embodiments, CLS systems use Practical Traffic Engineering/Server Selection joint optimization for content dissemination routing. When CLS nodes are deployed by carriers that normally operate the infrastructure networks, a joint optimization solution uses content routing for some embodiments. How to respond in time and handle burst background traffic churn is handled by blocks that perform information collecting, computing, and feedback.
Using an embodiment information collecting module, CLS collects the traffic information by using a protocol for collecting traffic conditions, and user content request by a user-content request profile collection protocol. In some embodiments, the protocol for collecting traffic conditions can be applied in an Echo-pattern like way. In such an embodiment, the root of managed device tree sends a query down to the leaves. When the collected responses are sent back reversely along the tree, each sub-tree root only sends aggregated results back to its own parent node. In some large-scale embodiments where the massive scale and frequent churn of Internet traffic pattern makes it difficult to capture every dynamic change, embodiment systems devise a threshold based solution.
An embodiment computing module called CPS (Content Positioning System) that performs joint optimization in minutes, or within seconds, if possible, to determine the best routing paths between any two CLS nodes and re-direct the content delivery between them. In embodiments, CPS makes its decision for content placement (where the content should be stored) and routing re-direction (which path the content should be delivered) based on certain criteria. For example, CPS makes decisions primarily based on the knowledge it acquired from both context layer (e.g., “hotness” of the content) and underlying infrastructure layer utilization (e.g., bandwidth and congestion situation over particular physical links). In embodiments, fast response time is achieved in two ways. One embodiment method is to leverage the parallel computing facility described in the parallel computing facility described hereinbelow. Here, the joint optimization problem is decomposed into multiple sub-problems that are computed in parallel. Another embodiment method to achieve fast response time is to divide the network into multiple hierarchical sub networks, and then let each sub network compute its own optimization problem, where the upper layer network (its sub networks turn into a node) coordinates their computation.
Using an embodiment feedback method, after computing, an embodiment CLS system uses a protocol for notifying the router about joint optimization results and protocols for notifying an OpenFlow™ controller about the joint optimization results, as discussed above, in order to modify infrastructure layer forwarding/routing policies. A joint TE/SS routing decision feedback protocol is also used to notify correspondent CLS nodes (normally the first CLS hop from the customer, and potentially the CLS enabled customer device itself) to adjust its application layer routing policy. For example, the application layer routing policy can be the proportion of downloading content from one specific node. In alternative embodiments, other protocols can be used.
Many conventional access networks exhibit a tree like pattern because most traffic comes from the backbone network. An over-subscription model is reasonable for web surfing, in that each user conforms to a click-downloading-reading behavior model. In such a model, reading lasts much longer than the downloading. Therefore, other users can reuse the bandwidth for downloading. Streaming content changes this model, in that over-over-subscription becomes a large bottleneck if many customers want to watch streaming content simultaneously.
In an embodiment, CLS systems cache popular content inside each access/accumulation network so that a considerable proportion of the traffic is redirected to a local metro-area network. In one embodiment, an existing tree like Ethernet access network is transformed, by a certain degree, into a non-blocking network (for local content exchange), by using commodity hardware, for example, using 1 Giga Ethernet switchers, or by using spare ports of Ethernet switchers in existing metro-networks. In alternative embodiments, other hardware can be used.
In an embodiment, a parallel computing cloud facility is used for parallelized joint optimization and user-content profile analysis. Parallel computing for optimization, corresponding to an embodiment metro-area Ethernet implementation, assures that computation is completed in time in some embodiments.
Regarding collection and feedback, embodiment CLS implementations, a user-content request profile traffic collection protocol to collect the user profiles. In one embodiment, possible user requests are captured at the resolution node and logs are summarized. To some extent, the profiles can be regarded as a two-dimensional matrix in which each row corresponds to one user, and each column corresponds to one piece of content. After utilizing content usage pattern analysis, results of the computation methods are used for recommendation and/or feedback for CLS parameters self-adjustment. User behavior pattern analysis is also used for other services, for example, personalized target advertisement in some embodiments.
In some embodiment CLS implementations, an Application Programming Interface (API) is included that is open to carriers and/or third parties.
In some embodiments, CLS applications include CLS-enabled wireless backhaul, HTTP streaming video for video on demand (VoD) services, CLS over Carrier Ethernet and Fiber, and CLS interworking with a cloud data center. In some embodiments, CLS building block functions are implemented using Intel Router Brick and OpenFlow™ enabled system platforms, and CLS system software and interface primitives implemented on Linux OS. In alternative embodiments, CLS applications include other applications, implementations, and software.
FIG. 1 illustrates a functional block diagram of embodiment CLS node 100, which interfaces to other distributed CLS processing nodes and centralized controllers. Such functionalities can also be selectively supported by one specific Network Element (NE). In an embodiment, there are three controller entities, joint optimization controller 102, cooperative caching controller 104 and profile analysis facility 106, which are centralized for each domain. In an embodiment, a domain is defined as a cluster of CLS nodes that are grouped together based on certain administrative policies. In other embodiments, these functions can be provided locally or provide functionality for multiple domains. In alternative embodiments, greater or fewer controller entities, as well as other types of controller entities can be used.
In embodiments where the controller entities service a domain of multiple nodes, CLS processing node 112 is coupled to joint optimization controller 102, cooperative caching controller 104 and profile analysis facility 106 via interfaces 132, 134 and 136, respectively.
Joint optimization controller 102 collects user content requests and traffic dynamics, and utilizes optimization decomposition to periodically work out the policy for content server selection, content positioning, and traffic engineering (such as changing IP routing direction). Joint optimization controller 102 then provides notice the content routing engine 108 about such policy changes. In an embodiment, notice of policy changes helps CLS node 100 provide efficient routing.
Cooperative caching controller 104 collects user content requests and/or traffic dynamics, and works out the global optimal caching policy for each domain. In an embodiment, CLS local caching engine 110 accords to such policy, so as to contribute some portion of their storage to constitute a shared cache.
Profile analysis facility 106, which has parallel computing facilities, is used for user content profile analysis. The output of profile analysis facility 106 provides feedback to cooperative caching controller 104 in some embodiments. In further embodiments, the output of profile analysis facility 106 can also be used by other applications, for example to provide a recommendation for personalized target advertisement.
In an embodiment, each CLS processing node 112 has distributed processing entities including proxy 114, content routing engine 108, local storage engine 116, local caching engine 110, content GET/PUT adapter 118, name resolution engine 120, Dynamic Hash Tree Key-Based-Routing DHT KBR 122, topology maintenance 124, transportation engine 126, user request synopses generator 128, and traffic synopses generator 130. In some embodiments, greater or few distributed entities can be used, and/or distributed processing entities having other functionality can also be included. In embodiments of the present invention, these distributed processing entities of this category can operate independently or cooperate in a decentralized way.
Proxy 114 is a bridge between user terminals that may not be CLS enabled and the CLS network. Proxy 114 receives user requests, distributes the requests to relevant engines to process the messages, forwards the messages to the next hop (if needed), and dispatches the response to the users. In some embodiments, proxy 114 is deployed in the very edge of the network, for example, on the DSLAMS, at the first CLS hop from a user's point of view.
The core module of CLS processing node 112 is content routing engine 108, which decides where and how to get requested content wanted. Content routing engine 108 chooses between the local cache, remote CLS peers, and the original publisher. In some embodiments, content routing engine 108 uses name resolution engine 120 to get a list of possible candidates if it is determined that requested content is not in local cache. Content routing engine 108 receives instructions from the joint optimization controller 102, so as to enforce content layer routing (server selection) and the underlay routing jointly.
In an embodiment, local storage engine 116 includes storage optimized for streaming content, as well as for small sized Key-Value object storage for CLS indexing.
Local caching engine 110, which is an agent of the cooperative caching controller 104, defines local greedy caching policies such as LRU in some embodiments. Local caching engine 110 decides whether or not content is cached. In embodiments, Local caching engine 110 is also configured to evict some content due to expiration or lack of storage space. Content GET/PUT adapter 118 encapsulates the basic semantics of the storage for content, and also performs some preprocessing tasks such as operations in batch.
Name resolution engine 120 is another core module of CLS processing node 112. In one embodiment, in order to return a list of suitable nodes hosting the wanted content, name resolution engine 120 switches between three operating methods. These three operating methods include broadcasting such as Address Resolution Protocol (ARP) in a local area, DHT lookup inside a metro area or AS and some inter AS resolution mechanisms, for example, REX tree or Global DHT.
In an embodiment, DHT KBR 122, fulfils a key based routing task of DHT, by leveraging the information learned from topology maintenance module. CLS builds up the hierarchical DHT inside each AS or metro area, and each layer corresponds to some specific layer of infrastructure networks, for example, the DSLAM layer, Ethernet Switcher layer and Edge Router layer. Considering that such peers are, in fact, network elements, one hop DHT KBRs are implemented inside each cluster in some embodiments.
Topology maintenance block 124 performs CLS node discovery and status monitoring of CLS nodes. In some embodiments, topology maintenance block 124 incorporates the opaque TLV embedded in IS-IS and BGP packets, a broadcasting/multicasting method, or some configuration service assistance.
Transportation engine 126 maps CLS over the main stream and potential layer-3 and/or layer-2 communication layers. In some embodiments, Non-IP capabilities are implemented, as well. Also, in some embodiments, Transportation engine 126 includes Ethernet enhancement for metro area content networking. User request synopses generator 128 summarizes user demand for content, and sends it to joint optimization controller 102, cooperative caching controller 104 and profile analysis facility 106. Traffic synopses generator 130 summarizes background traffic information and reports it to joint optimization controller 102 and cooperative caching controller 104.
FIG. 2 depicts an embodiment CLS reference network model. The CLS network is made of several players: consumers 202, publishers, CLS nodes 206 and 208, Access Service Network (ASN) operators 210 and 212 and data bearer network operators 214. In this network reference model, CLS network is operated as a Content Distribution Service Provider (CDSP), which may be the same provider of ASN 210 and 212 and Data Bearer Network (DBN) 214, or an independent 3rd operator having bilateral agreement with the providers of ASN 210 and 212 and DBN 214.
In this layered view, the top layer contains content/application aware virtual clouds 216 which provide service intelligence to support service requirements, service quality agreements, service brokering, service scenario and flexible service billing. Virtual cloud layer 216 uses open APIs 218 to offer consumers novel media/content experience. For example, APIs are provided to help publishers/subscriber to publish/retrieve the generated/requested contents, to offer content storage service, to provide event notification service and to provisioning CLS nodes for efficient content delivery.
Middle layer 220 is made of CLS functional entities. In some embodiments, each of these functional entities is realized in a centralized entity. In other embodiments, these functional entities may be distributed over multiple physical functional entities. Embodiment CLS content overlays may be implemented over various access technologies and data bearer technologies, such as Personal Area Network, Body Area Network, Home Area Network, Fix/Mobile access, and Metro and Core data network. CLS connects consumer and publisher via CLS User Network Interface (C-UNI) and CLS Node-Node Interface (C-NNI) and delivers content between them. Inter-CLS-AS communication occurs via an Exchange Network-Network Interface (E-NNI). To overlay with various access and data bearer network, CLS interoperates with the underline network via I-NNI. The CLS reference model depicts the normative reference points C-UNI, C-NNI and I-NNI as shown in FIG. 2 . C-UNI mainly uses HTTP or other well known protocol to minimize the modification of client device. An embodiment C-NNI includes one of more of the following protocols: intra/inter-domain content based naming and resolution protocol, user-content requests profile collection protocol, collaborative cache decision/suggestion feedback protocol, user-content profile analytics feedback protocol, and joint TE/SS routing decision feedback protocol. An embodiment I-NNI includes protocols for collecting traffic condition (e.g., queue length) from router, in a Echo-pattern like way, protocols for notifying the router about the joint optimization result, so as to let the router modify its routing by MPLS or other schemes, Protocols for notifying the OpenFlow™ controller about joint optimization results, so as to let the controller modify the forwarding table inside switchers. In alternative embodiments, greater, fewer and/or different protocols can be used.
Lower layer is 222 is made of network elements, such as access point, 3G/4G wireless, core routers, MPLS switches, residential gateways, data centre switches, or even wireless ad hoc networks, etc. These elements provide underline data “pipe” connectivity for the CLS overlay. In some embodiments, lower layer 222 is a merged layer with the middle layer, for example, when all or part of its NEs are CLS enabled, or upgraded to be CLS enabled. From a user experience perspective, in some embodiments, content can be shared over any delivery medium. In some embodiments, a CLS system delivers content over any network, whether the network is an infrastructure network or an infrastructure-less network.
In an embodiment, a CLS system allows multiple implementation options for a given functional entity, and yet achieves interoperability among different realizations of functional entities. Interoperability is based on the definition of communication protocols and data plane treatment between functional entities to achieve an overall content delivery function, for example, security, “findability” or content caching management. Thus, the functional entities on either side of reference point represent a collection of control and bearer plane end-points. In an embodiment, interoperability can be based only on protocols exposed across a reference point, which depends on the end-to-end function or capability realized (based on the usage scenarios supported by the overall network).
In an embodiment, CLS uses a CL to characterize each content data, where context is an attribute-profile that associates real-time information with social objects. From a protocol perspective, CLS defines a CLL between application layer and data bearer layer. With CL as a handle, CLL is knowledgeable to deliver and to process content between content consumers and publishers. In an embodiment, CLL has two types of intelligence: knowledge from application (via CL) and the knowledge from the bearer networks (via link adaptation and integrated routing). Thus the CLL collectively couples applications with infrastructure resources and optimally utilize network topology and resources for delivering content.
FIG. 3 illustrates networking in the context of an embodiment CLL protocol stack. In an embodiment, the CLL provides a generic content delivery layer for a content-centric network. With a well-defined CL and limited semantic scope, CLS can control “how much” the network should learn from applications and the best balance between needed overhead and processing performance. Each network node 302, 304, 306 and 308 implements a protocol stack that includes physical layer 310, data bearer layer 312, which is a data transport layer, and CLL 314. Nodes 302 and 308 represent endpoints, for example, client nodes or data providing nodes, and have application layer 316. Nodes 304 and 306, on the other hand, represent intermediate nodes that perform routing and content storage, for example.
In an embodiment, CLS implements a distributed Content/Service-aware overlay for content delivery services. To realize “content awareness” and to control the complexity of processing content semantics, CLS treats content as a “connoted data.” In an embodiment CLS system, each content data chunk is attached with a Context Label CL is defined as n-element tuple (n>=1). Each element in a CL is an attribute which characterizes the content. For example, the tuple (time, location, security) is a CL that can be used to define and/or determine whether the designated content is meaningful or not.
For example, one scenario for “connoted” movie Y is to use CL=(2-day, Singapore, key-locator). In this example, the user can only watch movie Y for two days, Y is prohibited from circulating in Singapore area and the subscriber can get public key of Y from key-locator. In some embodiments, an implicit rule can be applied using the CL. For example, after the key expires in two days the movie is no longer watchable. In one embodiment, the CL is a relational array that defines the semantic scope for the associated data. In the view of CLS, each data is not an isolated object, but rather data is characterized by its surrounding environment. In an embodiment, CLS uses CL to guide content searching, routing/forwarding, local caching and mash up processing.
In an embodiment, each CL is a “meta data” which are attributes used to scope whether the content is meaningful or meaningless against a certain context when people share information using the Internet. These meta data (attributes) come from many aspects in some embodiments. For example, as shown in FIG. 4 , a user-specific context may include user ID, device name and device type; network-specific context may include location and presence; application-specific context may include content name, version, size and TTL (time-to-live); and security-specific context may include security key and crypto algorithms. When content is being generated or being delivered, a CL is attached to the content as a “header.” CL characterizes the relationship between content and its existing environment.
Embodiment CLs can be implemented in a variety of ways. For example, when application data is carried in HTTP, a CL-enabled extension-header can be defined for HTTP 1.0 protocol as follows:
    • http://video.aol.com/category/comedy?sem=1&ncid=AOLVDP001
    • /my-iPhone: 1234
    • my-location: GPS
    • security-key: %&*(
    • TTL: 24-hour
    • Signature: (HMAC|CMAC)
In the above example, video content is attached with a CL header, which is a list of (name:value) pairs. This example CL header defines that the video should be delivered to an IPhone at location GPS with security key. As defined by the CL, the video is viewable for only 24-hour, and the receiver has to verify the signature of the publisher which was signed using either HMAC or CMAC algorithm.
In an embodiment usage method using HTTP over CLS, a client gets a list of content names from a search engine. Next, the client enters a URL. The client device adds a CL header, which binds a node ID and an application ID, and other context information, if any. Next, the client device sends CL to all connected access interfaces. The message is propagated to all reachable CLS nodes within a certain scope, in one embodiment, until it reaches either a node with the cached content, or the node nearest to the publisher (i.e., the web server.) Next, the contents are delivered along the backward path (soft-state path established by CL-get). Subsequent updates to the local cache (i.e., saving a copy) are done at each node. In an embodiment, Any-cast and/or Multi-Point-Multipoint is performed via the multicasting message from the client and from a CLS node in some embodiments. In some embodiments, any-cast is used where content owner is not pre-known. In one embodiment, a request to a DNS is only issued by a network node and not by a client node, such that the network node will only issue a DNS if it cannot find content within the CLS system.
In embodiments, CLS systems use three core context values: Real-time, Socialization and Personalization. A carrier can utilize an embodiment context to couple real-time Internet operational semantics (i.e., where, who, when, and how) with user social objects.
In an embodiment, CLS applies hybrid content naming schemes for content delivery, with respect to the different interfaces. For example, with respect to a C-UNI interface, CLS utilizes widely used user-friendly formats such as a Uniform Resource Locator (URL) structured name in one embodiment. For a C-NNI interface within a CLS AS, CLS uses flat naming space to facilitate Multi-tier DHT name resolution. For inter-CLS-AS domain, either a structured name or a flat name can be used relying on how global naming is agreed. For CLS/non-CLS interworking, structured name should be used. Alternatively, other naming schemes can be used. In embodiments, a CLS node provides mapping functions to transform the name between structured naming space and flat naming space, if necessary.
In an embodiment, CLS supports URL naming with extension header over a C-UNI interface, where an extension header is used for context label. Given that almost 70% Internet traffic today is carried by HTTP protocol, CLS uses URL naming for backward compatibility purposes in some embodiments. For example, as illustrated in FIG. 5 , a movie publisher can publish movie URI “www.yahoo.com/movie/AVATAR” to the CLS network. Together with this ID, the publisher can define a CL-header which includes several attributes, such as a signed checksum for content authentication, the public key of publisher, and a TTL which indicates how long the content can exist in the CLS network.
In an embodiment, CLS implements multi-tier DHT to support content resolution and distributed data storage within an AS cluster. In a DHT-enabled network, flat naming (i.e., unstructured name) is used to facilitate a content search. After a URI is received over C-UNI, CLS nodes mapping user-friendly name into multi-tier DHT flat naming space and determine where the content should be stored (i.e., publish operation) or searched (i.e., inquiry operation) in some embodiments. The CLS node creates a mapping entry between the URI and the flat name. In an embodiment, the flat name may use a signature (content name, content data) that was signed by publisher's private key. The meta data carried by CL-header is also stored together with the content name. For example, when a CLS node receives a content inquiry from subscriber, CLS translates URI to a 256-bit DHT name and finds a copy of the movie within the cluster, as shown in FIG. 6 , which illustrates mapping between name spaces. After the content (e.g., a movie) is delivered to the originating CLS node by checking the mapping entry, CLS returns the movie with the URI to the subscriber.
In one embodiment, CLS inter-domain communications include two scenarios: inter-CLS-AS and CLS/non-CLS interworking. The inter-CLS-AS interface uses a global DHT flat name in an embodiment. Alternatively, a structured name is used that implements Content Resolution Exchange Point (CREX) functions with name translations similar to C-UNI. For CLS/non-CLS interworking, the structured name is applied such that content routing exchange functions (e.g., DNS) uses the structured name for further content resolution and routing. In either of the interworking cases, if an originating CLS node cannot find the content, the inquiry (with structured or flat name) will be submitted to all adjacent CREXs to execute the further search. In an embodiment CREX determines whether it should go to a further resolution or drop the search.
In an embodiment, name persistence implies that content name remains valid in case of storage location change, content modification, owner change, and change of algorithms used for naming purpose (e.g., a hashing algorithm). In an embodiment CLS system, each content data object may have multiple identifiers. For example, data may have user-friendly name using URI and an internal DHT ID=HASH (URI). In addition to the name, a data object also contains meta data (i.e., a Context Label) representing the content entity in some embodiments. In an embodiment, one attribute of a CL is a signature. The signature is a checksum function of content name and content data entity, and signed with the private key of the publisher. The signature is used by the subscriber to authenticate the owner of the content. One embodiment CLS considers two scenarios of naming persistence: one for a content data entity change, and one for content ownership change.
Regarding content data entity modification, whenever content data is updated, CLS re-calculates the signature of (Name, Content), where “Name” is kept unchanged and “Content” is the modified data entity in one example. After the modification, CLS re-publishes the updated content with the new context label. Under this scenario, the context label keeps all the other attributes unchanged but the new Signature. The name is kept unchanged. In other scenarios, other attributes are changed.
When content changes its owner or service provider, an embodiment CLS system re-calculates the Signature (Name, Content) by using a new owner's private key and replacing the key locator of Context Label by pointing to the public key of new owner. After the modification, CLS re-publishes a new CL containing new Signature and new public key. In this example, both Name and Content are kept unchanged.
In an embodiment, a CLS system has a content first networking architecture. In this embodiment, customers do not need to specify the address of the communication peer; they just request content directly by the correspondent content name as discussed hereinabove. The embodiment CLS network finds candidate sources hosting the content and gets it back to the customer using, for example, multi-path downloading. An embodiment name resolution entity answers the question of “where” such candidate sources are. “Where” here means the address of the ultimate server or even the next hop. FIG. 7 illustrates how a user-friendly name is mapped to a content entity via a multi-identifier and a context label.
FIG. 8 illustrates embodiment name resolution schemes for local area resolution 802, an intra AS (or metropolitan area) resolution using a hierarchical DHT based approach 804, and inter AS resolution using global DHT or hierarchical REX 806.
In an embodiment local access area resolution method, a broadcasting based name resolution is a very efficient broadcasting is naturally supported in both wireless access environment and Ethernet access networks. Considering the scalability of broadcasting, its application is limited inside each local access area in some embodiments. By using a broadcasting scheme, a user who broadcasts an interest can be responded to by anyone else (including other users or CLS nodes) who has the desired content. In some embodiments, ARP or other broadcasting based primitives, for example, can be used.
In an embodiment intra AS (or metropolitan area) resolution, a hierarchical DHT based approach is used. The DHT hierarchy fits the hierarchy of infrastructure networks, such as DSLAMS, Ethernet Switches, BRAS, routers, etc., in some embodiments. All, or representative peers from the lower layer DHT join the upper layer DHT. FIG. 9 depicts a two layered hierarchical DHT, where all region DHT peers 902, 904, 906 and 908 join whole DHT 910 at the same time. In an embodiment, a node needing content first uses hashing to get a flat name, then performs a lookup in the lowest level of DHT to which it belongs. The node then switches to upper layer DHT to lookup more candidates if necessary. If a content resolution fails at the top DHT, the inquiry will be sent to CREX to get global resolution.
In an embodiment, Inter AS resolution another global DHT is used, which unifies the CLS name resolution design. Alternatively, a hierarchical tree of CREX is implemented. In alternative embodiments, other methods can be used for Inter AS resolution.
In one embodiment, there are two scenarios for inter-domain exchange: inter-CLS-AS domain and CLS/non-CLS domain. Inter-CLS-AS domain communication is performed between two CLS networks, while the latter is performed between a CLS network and non-CLS network. CLS implements CREX to exchange the content name resolution information across the CLS domain in an embodiment. Each CLS-AS may be adjacent to several other CLS-AS, based on the definition of CLS admin/routing domain. Within each CLS-AS cluster, some CLS nodes are designated as the border nodes to communicate with other CLS-AS via CREX. The border nodes implement inter-domain protocols to exchange information with CREX. When a new CLS node joins the AS, the new node automatically discovers all the border nodes within the AS, and the new node establishes point-to-point infrastructure connectivity with each border node. When a CLS node (a.k.a., originating node) receives a content inquiry from a user, it firstly maps the URI name to flat name and conducts an intra-domain resolution. If the content cannot be found, the originating node multicasts the inquiry to all the border nodes. The latter communicates with CREX to execute further resolution. In an embodiment, CREX is a logical entity that can be implemented on the border node or on a different box in some embodiments. In an embodiment, CREX determines how far the resolution should go and what the inter-domain protocol is used for adjacent domains. To support large scale content resolution, CREX implements content name aggregation in some embodiments.
In one embodiment, CREX inter-domain content resolution is performed by extending the BGP protocol to populate top level content name across the domain. In this case, BGP is used to exchange both infrastructure reachability and content routing reachability. The top level name represents the integrated content naming hierarchy in an embodiment. For example, the top content name is an AS-ID/content-domain or City-ID/content-domain. Opaque TLV can be extended to BGP to include the top content name. The extended BGP is installed at CLS border node to exchange the top content name and to perform inter-domain name resolution. Alternatively, BGP is run to exchange infrastructure topology information only, and other protocols are used for inter-domain content name resolution.
For CLS/non-CLS interworking, CREX can directly trigger a DNS inquiry for content resolution in an embodiment. Here, CREX uses the returned IP address to get the content from the origin server. In inter-domain cases, in some embodiments, if a CLS network cannot find the content in intra-domain, the inquiry is forwarded to CREX for further search. The inquiry is dropped if the content cannot be found at CREX. FIG. 10 is a block diagram illustrating inter-domain content resolution for CLS and non-CLS systems.
In embodiments, CLS nodes resolve a large amount of on-line content. To support this, a huge DHT or similar distributed indexing implementation composed of tens of thousands nodes is used in one embodiment. Alternatively, other name aggregation schemes can be used. For example, in one embodiment, the top content name can be an AS-ID/content-domain or City-ID/content-domain and the content domain is defined according to either geographical region, administrative domain or underlying routing domain. Each domain is managed by third independent parties in some embodiments. If the content-domain is made to be equivalent to the host name part of the URL, then the number of content names is almost comparable with the number of host domain names. In this case, a DNS server like architecture can be used in some embodiments. In embodiments that aggregate into a more abstract level (e.g., the content-domain is an aggregation of host names), then the number of top level content names will be reduced comparing to the number of DSN entries. In such embodiments, a content-centric network (CCN) can be used.
In some embodiments, CLS systems use built-in security mechanisms for content delivery using an information-oriented view of security, that is, the security is applied against the content, rather than against the “connectivity pipes.” An advantage of using an information-oriented view of security is that it is suited to defend against malicious attacks to which “secured pipe” connections have difficulty defending such as Replay and Man-in-the-Middle or Man-in-the-Page, where an interceptor changes and/or frauds a message between sender and receiver. In one embodiment CLS implementation, trustworthiness comes from the content itself, not from the machine on which the content is stored. Some embodiment CLS implementations support a receiver-centric security model in which the user can decide what content they would like to receive and from whom they will receive the content.
An embodiment CLS security approach enables a user to authenticate the linkage between content names and content. For example, given a Name N associated with Content C, a publisher could create a digital signature Sign(N, C), and publish mapping triple {N, C, Sign(N, C)} into CLS network. Here, Sign(N, C) is a check sum signed by publisher's private key. For example, before the movie publisher publishes www.yahoo.com/movie/AVATAR into the network, the publisher uses his/her private key to create a signed check sum “xxx.” The triple, {www.yahoo.com/movie/AVATAR, AVATA-content, xxx}, is then published to CLS. The name, www.yahoo.com/movie/AVATAR is published into a search engine like Google, as well. The subscribers then get ID “www.yahoo.com/movie/AVATAR” from Google and issue a CLS search for the movie with the selected ID. As described in previous section, the mapping triple {N, C, Sign(N, C)} is implemented in URL with CL header in HTTP. After subscriber receives the movie, he/she will use the publisher's public key to verify xxx and to authenticate the publisher, where the authentication is successful only if the publish key matched with private key for decrypting the signature. In alternative embodiments, other security methods can be used.
In an embodiment, this procedure is iterated based on a layered privilege security with delegation model. For example, consider that there are security domain ownership relations among a VP, Director and Employee in the content naming tree, and the VP, Director and Employee are the holders of public key 1, public key 2 and public key 3, respectively. After the Employee calculates xxx=Sign 3(N, C) and publishes {N, C, xxx}, the Director can use his private key to create a new signature yyy=Sign 2(xxx, public-key-3) and attach yyy to the content. This implies a delegation relationship between the director and the employee (i.e., director guarantees that Sign 3 is the one from the employee). In turn, the VP can use his private key to create a new signature zzz=Sign 1(yyy, public-key-2) and attach “zzz” to the content. When the subscriber receives the content, he can use top level public key (i.e., public-key-1 from VP) to verify “zzz” (which authenticates the VP is the right person who manages the director), and use public-key-2 to verify yyy (which authenticates the director is the right person who manages the employee), and public-key-3 to verify “xxx” (which authenticates the employee is the right person who is the author of Content with name N). By applying this embodiment approach CLS can support a flexible layered access privilege security management and delegation model between content publisher and the consumer. FIG. 11 illustrates an example of an implementation of authentication name and content.
In an embodiment, a CLS system creates a label header to facilitate the layered public key management. This header contains an array of entries to indicate where the user can get the public key (a.k.a., key locator). In embodiments, the key locator is a public key, or a URL indicating the CA (Certification Authority) from which the user can locate the public key. In further embodiments, other types of key locators can be used.
In embodiments, a CL-header with key locator provides CLS a flexible mechanism to support a “security delegation” model. In this model, both subscriber and publisher indicate their certification authority (CA), or delegate their CA in the locator. In an embodiment method, when labeled content (either an inquiry or data) is received, the receiver gets a sender's CA URL link (i.e., key locator) and follows the URL link to peer's delegate to get sender's public key for authentication. After executing the authentication (i.e., verifying the signature), the receiver reads the contents. Alternatively, the receiver conducts further crypto operations with the sender to exchange a symmetrical key if the content is encrypted.
In an embodiment, CLS can delegate CA to a trustable third party who is a certificate authority to represent a social community like subscribers and publishers. By providing CA URL links in CL header, CLS creates a social security control layer that verifies the social relationship between the sender and the receiver. The CA delegation can proceed in one domain if sender and receiver are in the same social society, or in multiple domains. Thus, in embodiments, CLS security is integrated flexibly with today's web-based hierarchical CA system.
In an embodiment, CLS security implements a peer-to-peer trust relationship for information networking, and performs content access privilege check associated with social trust and policies. By checking the relationship between content name and the content, and using a CL header, CLS implements a social control layer of trustworthiness which defines and verifies the social relationship between the content supplier and the consumers in some embodiments.
An embodiment content storage subsystem provides storage and caching capabilities for the content, and storage for the content name resolution items. In an embodiment, content storage capability permanently stores content until the content is deleted. The content storage subsystem can be used by CLS, for example, to provide services like Amazon Simple Storage Service (Amazon S3™). In one embodiment, a CLS system stores content by storage service first and then publishes content to a name resolution system.
In an embodiment, content cache capability is used to dynamically store content so that future requests for that content can be served faster. In an embodiment, when a CLS system requests content, if the requested content is contained in cache (cache hit), the request is served quickly by reading the cache. Otherwise, the request is routed and the requested content is fetched from its original storage location or from other locations. In an embodiment, name resolution storage capability is used by the name resolution system to store and operate the name resolution item.
In an embodiment, a CLS system has a distributed storage system for the content storage and caching. The distributed storage system has large scale Storage Nodes (SN) that provide storage resources. In an embodiment, two types of SNs are provided: a network built-in SN and a User equipment build-in SN. An embodiment network build-in SN is embedded in the Network infrastructure and may be integrated within network nodes like router or Ethernet switch. In some embodiments, the network build-in SN is implemented as a storage server with a physical link to network nodes. High availability and with low churn of this kind of SN facilitate maintenance and management in some embodiments. An embodiment user equipment build-in SN is embedded in user equipment such as personally-owned hard disk. When a user device attaches to CLS network, part of its own storage space becomes available to CLS network in some embodiments. Also, in some embodiments, user equipment build-in SNs are characterized by mobility, multi-homing and high SN churn.
FIG. 12 illustrates an embodiment network built-in SN architecture. Storage resource 1200 is made of one or more kinds of storage media such as hard disk drive, memory, Solid State Disk, for example. The determination of which type of storage media is used is determined by read-write efficiency, cost and business demands in some embodiments. Storage resource 1200 is divided into three portions for three types of data: content storage 1202, content cache 1204 and name resolution storage 1206. During operation, an embodiment SN chooses all data types or certain data types to be stored based on its own configuration. For example, some embodiment SNs may only store and cache content, while other embodiment SNs may just store name resolution storage 1206.
Local storage engine 1208 integrates local storage resource management and provides a unified data operation interface to other subsystems or internal modules in some embodiments. Local storage engine 1208 performs optimization to improve the efficiency of data access. In embodiments local storage engine 1208 informs topology maintenance subsystem 1210 of the information on local storage resource such as the data type being stored, the total capacity, and the free capacity for each data type.
Local caching engine 1212 splits the local content cache resource into two portions: non-cooperative caching and cooperative caching. The capacity ratio of two portions is dynamically adjusted by cooperative caching controller 1214 in some embodiments. Non-cooperative caching maximizes the local hit rate for highly popular content, where the content replacement strategy is determined by local caching engine 1212 itself. In some embodiments, content replacement strategy is completely determined by local caching engine 1212. For example, in some embodiments a LRU replacement can be used. Cooperative caching, on the other hand, aims to vanish cache-capacity constraints by allowing each cache to utilize nearby caches to prevent excessive replication for content. Such a content replacement strategy is determined by policy dynamically installed by Cooperative Caching Controller 1214 and the local access pattern of the content. The policy (e.g. access cost) is calculated by Cooperative Caching Controller 1214 based on the global information such as access pattern of the content, cache location, network topology and available bandwidth in some embodiments. In alternative embodiments, greater, fewer, and/or different parameters can be used.
Content GET/PUT Adaptor 1216 hides the local operational details for different types of content and provides a uniform interface to external applications.
In some embodiments, data consistency is a consideration for CLS systems, where content is stored, cached, distributed and replicated across multiple SNs. Embodiment systems track some or all of the following parameters: number of replicas of the content, placement of the replicas, access-to-update ratio, conflicting operations, network bandwidth and server utilization, and availability. The number of replicas for the original content storage can be limited by a Content Publish operation, however, in some embodiments, the number of replicas for the content cache may uncontrollable, dynamically changed and very large. The placement of the replicas is based on the geographic/topological complexity of the replica, especially with respect to content cache. Access-to-update ratio is closely related to the service property.
Conflicting operations include read-write conflicts and write-write conflicts. Some embodiment systems make sure that conflicting operations are done in the same order for all cooperative caching. Since a large number of synchronization jobs, especially for content cache, will consume large amounts of network bandwidth and server resources, network bandwidth and server utilization is taken into account in some embodiments. Regarding availability, consistency and availability may not be satisfied same time in some systems, based on Brewer's Consistency, Availability and Partition tolerance (CAP) theorem. Therefore, in some embodiment systems, if an application service needs high availability, consistency may be traded off.
In an embodiment system, content storage uses a strong consistency or eventual consistency for content storage. A user may define a consistency requirement when content is published. If a user does not define the requirement, a default consistency (based on system configuration) is applied. Another related attribute is number of replicas for the content storage which is defined by the user or by a system default value in other embodiments.
With regard to content caching, the consistency requirement is relaxed in some embodiments. For example, in one embodiment, content caching uses only eventual consistency for content cache. There are two attributes related to achieve eventual consistency. One is TTL, which defines how long a replica of content cache can live, and another is check time, which limits a SN to take no more than N ms in trying to check the new version of the content by contacting original SN. In an embodiment, N is between about 50 ms and about 100 ms. These two attributes can be defined by the user or by a default value.
In an embodiment, strong consistency provides that all read and write operations to content at the original SNs are executed in some sequential order, and that a read to content from original SNs always sees the latest written value. Eventual Consistency implies that writes to an content at original SNs are still applied in a sequential order, but reads to a content from caching SNs can return stale data for some period of inconsistency (i.e., before writes are applied on caching SNs).
Table 1 describes an embodiment interface between a SN and another subsystem:
TABLE 1
Interface between SN and other subsystems
Subsystem Function Parameter Return
Name Publish (Name, Name: content name Success
Resolution Attribute, Location) Attribute: optional (see or Fail reason
Engine following table for detail)
Location: content location list or
location list
Resolve (Name) Name: content name Location List
(empty list means
no match
resolution entry)
Withdraw (Name, Name: content name Success
Location) Location: content location list or or Fail reason
location list
Content Put (Name, Attribute, Name: Content name Success
Routing Data) Attribute: (see next table) or Fail reason
Engine Data: Content data
Get (Name) Name: content name Content data
or Fail reason
Delete(Name) Name: content name Success
or Fail reason
Cooperative Install (Policy) Policy: access cost. Success
Caching or Fail reason
Controller unInstall (Policy) Policy: access cost? Success
or Fail reason
Topology Inform StorageResInfo: Array of < Success
Maintenance (StorageResInfo) Supported data type, total or Fail reason
capacity, free capacity>
TABLE 2
Attribute Definition
Attribute
Category Attribute Name Meaning
Security Signature = XXX checksum for content
authentication (see
next section for security)
KeyLocator = Location of the public Key
public key location
checksum for content
authentication (see
next section for details),
the public key from
publisher to help the
subscriber for
authentication, and a TTL
which defines how
long the content can exist
in the CLS network
Consistency Consistency Type = Define the consistency
Eventual requirement for the
Consistency content.
or Strong
Consistency
CheckTime = N Limit a SN to take no more
than N ms in trying to check
the version of the content by
contacting original SN.
TTL = T Define a time no more than T
ms a replica of the content
can exist.
Placement PlaceArray = Define a list of placement
{<AS = X, requirement for the content.
RepNum = N>, . . .} Each item means to store N
replica of content in AS named X.
Traditionally, Internet Service Provides (ISPs) mainly provide Internet connectivity and optimize traffic engineering on their networks to control how resources are used and what path the traffic will take through their networks (that is, how the traffic is routed from its source to its destination). Typically, current IP layer traffic engineering and application layer server selection respectively optimizes their own objectives and these two parties have no cooperation, which can only obtain sub-optimal equilibria. Furthermore, due to the fact that the subscribers of ISPs are becoming the subscribers of CPs, ISPs have a strong incentive to offer content to their own subscribers by deploying their own content distribution infrastructure. Based on these two considerations, embodiment methods employing joint optimization between traffic engineering and server selection provides for content routing and good user experience.
FIG. 13 illustrates an embodiment joint optimization subsystem 1300, which provides an optimal policy for IP layer traffic engineering and application layer server selection. In an embodiment, joint optimization subsystem 1300 has joint optimization controller 1302 and content routing engine 1310. Joint optimization controller 1302, which has information collecting module 1304, computing module 1306 and control output module 1308, executes information collection, rapid computation of joint optimization problems, and results feedback used for network utility maximization and user experience optimization.
In an embodiment, joint optimization receives known information in order to make an optimal decision. Such known information includes a list of candidate servers having wanted content, network status such as topology information and traffic information, and request information related to user terminals. In some embodiments, server information is obtained from content routing engine 1310, and network status information is obtained from traffic synopses generator 1312. User request information is obtained from user request synopses generator 1314. Information collecting module 1302, therefore, connects to content routing engine 1310 to get the list of candidate servers, traffic synopses generator 1312 to collect the traffic information by using protocols for collecting traffic condition (e.g., queue length) from the router, in a Echo-pattern like way, and requests synopses generator 1314 obtains user content requests by using a user-content requests profile collection protocol.
In an embodiment, computing module 1306 helps to execute joint optimization calculations so as to obtain optimal results. In embodiments, three methods efficiently calculate an optimal solution. One method is to apply optimization decomposition theory to decompose the joint optimization problem into multi-level sub-problems, and solve each sub-problem directly in parallel. Another method is to apply a projection type method to find an optimal point of a convex/concave function on an intersection of convex/concave sets. A third method is to divide the network into multiple hierarchical sub-networks so that these sub-networks independently compute its own optimization problem due to their irrelevance and having the upper layer network help coordinate their computation by using bandwidth coupling. In alternative embodiments, other methods can be used to calculate an optimal solution.
In an embodiment, control output module 1308 exports optimal routing to content routing engine through a protocol. In one embodiment, a content positioning protocol can be used. The control output module 1308 exports a mapping of users and servers, the paths of each user-server pair, and the traffic proportion of each path. These optimal results will then formulate two policies, one is an IP layer routing policy, and the other is an application layer server selection policy.
Content routing engine 1310 establishes an indirect interaction with user terminals through proxy, which accumulates user requests. Such requested information eventually reaches requests synopses generator 1314. Furthermore, in some embodiments, content routing engine 1310 decides where and how to get wanted content. For example, content routing engine 1310 can request wanted content from the local cache through content GET/PUT adapter 1316. If content routing engine 1310 finds that the wanted content is not in the local cache, it uses name resolution engine 1318 to get a list of candidate servers. After joint optimization subsystem 1300 finishes its calculation and obtains optimal results, content routing engine receives instructions from a control output module 1308 of joint optimization controller 1302. These instructions are classified into two types, one is to inform transportation engine to modify the underlay routing policy by using protocols for notifying the router about the joint optimization result, so as to let the router modify its routing by MPLS or other schemes, and/or protocols for notifying the OpenFlow™ controller about joint optimization results, so as to let the controller modify the forwarding table inside switchers or both. The other type directs topology maintenance to execute content layer routing (server selection) by using protocol joint TE/SS routing decision feedback protocol or protocols for notifying the router about the joint optimization result, so as to let the router modify its routing by MPLS or other schemes.
FIG. 14 illustrates an embodiment deployment mapping CLS logical entities to network elements. In an embodiment, CLS nodes include many different subsystems to support content routing/resolution, content storage/caching, global inter-layer resource optimization and content service processing. In an embodiment, these functions are implemented independently and operated via a collaborative manner. In an embodiment, CLS nodes virtually organize these functions together to scale the system in the way of pay-as-you-grow.
In an embodiment, CLS Client (CC) and CLS Proxy (CP) are software modules to support content routing and content forwarding, where CC is implemented at user device and CP is implemented on CLS node. Both CC and CP implement C-UNI protocols, while CP also supports C-NNI, I-NNI and E-NNI protocols. In alternative embodiments, other protocols can be supported.
In an embodiment, CC is the middleware between applications, for example, Web, Video, Audio, and access link layer. CC implements C-UNI protocols communicating with CP, and CLL functions which add/remove content labels for each content chunk. CC can be built into a Web browser, or run as an independent software module. CC further provides link adaptation functions to manage access links and execute attachment management and mobility support. CC also provides open API to application layer to publish user-generated content, to inquire the interested content, and to adapt content delivery functions to various access links with serial or parallel operation mode (e.g., multi-homing operation). In further embodiments, CC also implements security/privacy operation such as data crypto and content authentication.
FIG. 15 illustrates a block diagram of CC functionality for an embodiment. Given an attached access interface 1502, which can be a wireless or wireline interface, transport adaptation engine 1504 receives data from interface 1502 and forwards it to CLL receiver module 1506, which removes the CL header. The data is then forwarded to a use application via API 1508. Likewise, transmitted data from API 1508 is routed to CLL dispatcher module 1510, which adds the CL header and forwards the data to transport adaptation engine 1504 for transmission over attached access interface 1502. Subscriber policy engine 1512 is used to manage per-subscriber access privilege profiles (e.g., access security and QoS enforcement), and attachment configuration interface module 1514 is used to manage user's access status (e.g., presence and location).
In an embodiment, CP is a proxy software module that implements CLS node processing functions described above. CP is responsible for content routing and content forwarding over C-UNI, I-NNI, C-NNI and E-NNI. For C-UNI, CP manages CC attachment and mobility for location-based services. CP also implements content service process for designated applications such as content mash up, transcoding and targeted advertisements in some embodiments. For I-NNI, CP implements IS-IS to support CLS topology automatic discovery and maintenance. IS-IS is also used to collect and integrate underlying infrastructure topology for CLS routing path selection and optimization. The routing integration can be done either using integrated mode (i.e., CLS and infrastructure share the same IS-IS routing database), or using an overlay model (i.e., CLS maintains an individual routing database but keeps a mapping in between). Based on the knowledge of information resource at CLS level and network topology at infrastructure level, CLS has global cross-layer optimization. For C-NNI, CP supports content naming resolution and content caching/storage functions. CP implements mapping functions between C-UNI naming space and C-NNI naming space. In alternative embodiments, other interface types can be used.
For CLS border nodes, CP implements E-NNI protocols interworking with CREX for inter-domain name resolution. In an embodiment, CP forwarding plane implements a L2/L3/L4 protocol stack to terminate/dispatch content chunks. These stacks are based on the adjacent links. Terminated packets are classified by inspecting CL-header, and the flow action engine looks up the pre-configured action table to determine where the packet should be processed. For example, after content is found from DHT resolution at remote CLS node, one copy may be made in the local cache. In an embodiment, before the originating CLS node sends the content back to the user, a mash up procedure may be executed (e.g., add some ads in the web page). In some embodiments, CLS implements OpenFlow™ management to execute policy-based forwarding, and provide open API to service layer to customize rule-based content routing. Furthermore, the forwarding plane may implement QoS policy engine to schedule the packet relaying functions with priority. In some embodiments, CL-based crypto procedures for encryption/decryption may be implemented.
FIG. 16 illustrates a block diagram of CP 1600 functionality for an embodiment. In some embodiments, CP functionality is performed by software running on a context label switch (CLS). In an embodiment, transport adaptation engine 1604 receives data from adjacent access/router interface, which is a wireless or wireline interface. Deeper packet inspection is performed 1606, and the CL header is looked up and classified 1608. The data is then forwarded to CL flow action engine 1610, which interfaces to CLL routing plane 1612, CLL service plane 1614, and CLL storage plane 1616. Data is also received from these planes by CL flow action engine 1610 and forwarded CL header processing module, which applies the CL header and forwards the data to QoS scheduler and CLL dispatcher 1620. GET/DATA is than forwarded to adjacent access/router interface 1602 via transport adaptation engine 1604.
In an embodiment, CP 1600 checks to see if requested data is stored in CLL storage plane 1616. If the content is not stored locally a request is sent to CLL routing plane 1612, which initiates a request for the data externally through CL header processing block 1618, QoS scheduler and dispatcher 1620 and transport adaptation engine 1604. When the CP receives the externally requested data, the data may sent to CLL service plane 1614 via transport adaptation engine 1604, deeper packet inspection 1606, CL header classify and look up 1608 and CL flow engine 1610, in some embodiments, for example, to insert advertisements on web pages. In some embodiments, service plane 1614 performs functions such as transcoding video for clients according to the type of client hardware, base on a client provided context label. For example, a small mobile client device may require video with a lower picture resolution than a desktop computer client device.
In an embodiment, based on the supported storage type, each CS subsystem is mapped to two kinds of logical nodes: indexing node 1704 and data storage node 1702, as illustrated in FIG. 17 . Indexing Node 1704 has local storage engine 1706 and name resolution storage 1710 within storage resource 1708. Each index node can simultaneously joins in one or more name resolution subsystems, for example, regional Multi-Layered DHT, Global DHT/CRXP, (Content Resolution Exchange Point) and stores and looks-up name resolution items belong to specific key range in some embodiments. Each resolution item has a mapping relationship between a content name and a list of content locations. Each location is a data storage node address where a replica of content stored. In such embodiments, content name resolution and content storage are logically separated.
Data storage node 1702 is made of local storage engine 1706, local caching engine 1712, Content GET/PUT Adaptor 1714 and storage resource 1708 for content storage 1716 and content caching 1718. In an embodiment, when a user attempts to publish content to the CLS system, a topology maintenance subsystem (not shown) will decide which data storage nodes should store the content based on the acknowledge of storage resources of each node and placement policy defined by user. When data storage node 1702 stores or caches content, data storage node 1702 publishes the content to corresponding indexing node 1704 based on hash of the content name. When a user tries to get content from CLS system, a content routing engine routes the content request to an appropriate SN by querying corresponding indexing node 1704 in the name resolution subsystem. FIG. 18 illustrates a logical view of index nodes and data storage nodes for an embodiment of the present invention.
In embodiments of the present invention, a CLS overlay model uses several interfaces: C-UNI, C-NNI and I-NNI. Each interface implements a group of functions that reside in different functional entities on either side of it. Specifically, two types of CLS functions are defined with respect to data plane protocols and control plane protocols. The normative protocol and the associated functional entities for each interface are specified as follows.
In an embodiment, C-UNI is the interface between CLS Client (CC at user device) and CLS Proxy (CP at network side). An embodiment C-UNI Data plane procedure supports content inquiry and content publish, based on given content name and associated context label. In one embodiment, a data plane implementation uses HTTP 1.0 with entity-header extension for CL. An embodiment C-UNI control plane procedure support CLS-access-peering discovery, bootstrap configuration and attachment management. Based on the type of physical link interfaces, CC implements a couple of protocol options for the control plane. For example, when CC attaches to IP-enabled access network (wireless and wireline), the network may broadcast a CLS operator ID as a “NSP,” or CC selects NSP from a pre-configured NSP list. In an embodiment, CC could use NSP ID for network entry procedure.
During an embodiment authentication process, ASP AAA server sends CC the IP address of CP as “content home.” After CC has allocated IP address via DHCP, CC establishes IP connectivity to CP to conduct further CLL layer attachment procedures. While in an ad hoc wireless network (i.e., no IP infrastructure), after the link layer association is up, both CC (at one device) and CP (at peering device) sends broadcasting messages to discover peers and use an election protocol to establish CLL association in an embodiment. An embodiment CLL attachment procedure may include exchanging configuration data such as security, boot up data, capacity negotiation and other policies. After a CLS connection is up, a heart beaten (Keep-alive) protocol can be used to maintain the attachment. When the boot up procedure is done, the CLS access point floods the attachment to all the other CLS nodes (within the same AS), thus supporting CC mobility.
In one embodiment CLS networking scenario, CC is always connecting to a CP at a CLS node, whether CLS function is implemented in an infrastructure box (e.g., access router), or CLS node is co-located with an infrastructure box.
In an embodiment, C-NNI is the interface between two CPs residing on adjacent CLS nodes within a single CLS AS cluster (a.k.a., intro-domain). In an embodiment CLS overlay model, CLS node adjacency is a logical link over an underlying L2 or L3 connectivity (saying MPLS LSP or a IP tunnel). Embodiment C-NNI data plane protocols mainly include content name resolution, content retrieval and content storage. Embodiment C-NNI control plane protocols are for overlay topology discovery and infrastructure connectivity establishment/maintenance. CLS uses Multi-tier DHT for data plane and IS-IS for topology routing, respectively, in some embodiments.
Regarding content name resolution, an embodiment naming resolution protocol uses Sandstone Multi-tier DHT protocol which maps URI-based content name to flat naming space for processing the content retrieval and storage. In an embodiment, when an originating CLS node receives an inquiry from user, it first maps a hierarchical URI to a flat name (via consistent hash) to find out where the content is stored within the CLS AS cluster, and then forwards the inquiry to the next hop to get the content. In some embodiments, CLS may implement one-hop resolution. If full-name mapping cannot determine the next hop (i.e., CLS cannot find the content in local domain), the originating node forwards the inquiry (with the full structured name) to the designated CLS border node. The border node will bubble up the search to a neighboring CLS domain or to the non-CLS domain via CREX. If the border CLS node cannot find the content, the inquiry dropped in some embodiments. The details of embodiment inter-domain protocol are described with respect to I-NNI hereinbelow. The originating CLS includes URI with CL header in inquiry message when it is sent to the targeting CLS border node.
Regarding CLS topology discovery and formation, in one embodiment, CLS assumes that the underlying infrastructure network is IP-routing-capable, whether it is an IP router, a MPLS/GMPLS, or an IEEE 802.1aq-enabled Ethernet transport. CLS implements extended IS-IS with opaque TLV for CLS node boot up and automatic topology discovery. The opaque TLV includes CLS node neighborhood information such as node ID, link capability, the designated border node ID/address, and node type (e.g., a border node), etc, in some embodiments. When a new CLS node joins the network, it floods IS-IS LSA with an opaque TLV via connected IP network. This LSA will be populated within IS-IS AS domain to notify all the other CLS nodes that a new node is added in. All the pre-connected CLS nodes receive this TLV and establish a new link in their routing database to reach to the new node. As well, via exchanging LSA database with the connected IP router, the new CLS node can acquire all the topological information of pre-connected CLS nodes. With such an embodiment automatic discovery procedure, a new CLS network topology is formed and synchronized in all CLS nodes (a.k.a., topology convergence). If DHT implements one-hop reachability, the CLS forms a fully mesh topology. On the other hand, if DHT implements multi-hop reachability, the CLS forms a partial mesh or ring-like topology.
Regarding mapping between CLS topology and transport topology, C-NNI protocol is overlaid over an I-NNI platform. By using Multi-tier DHT and extended IS-IS protocol, each CLS node holds two routing topologies: one from CLS layer and one from an underlying IP layer. The CLS node can effectively map CLS layer topology to the IP transport topology. This mapping refers to inter-layer optimization in some embodiments. In some embodiments, CLS implements transport adaptation engine functions to support inter-layer routing, mapping and optimization to any data bearer network. IP transport connectivity between any two CLS nodes can be established either on-demand, or by pre-configuration, depending on which control capability is provided by the underlying networks.
In an embodiment system, I-NNI represents an interworking interface between adjacent CLS nodes and overlaid infrastructure node. The control plane of I-NNI is an IS-IS protocol that manages the adjacent topological links for the overlay networks. The transport adaptation engines of CLS node discover, establish and maintain L2/L3 connectivity for various adjacent links. Based on the type of data bearer network, the data plane protocol encapsulates/de-encapsulates CLS messages to/from underline L2 or L3 data packets protocols. An embodiment CLS node supports L2/L3/L4 protocol stacks. For CLS intra-domain routing, the path between CLS nodes can be pre-configured or created on-demand. For example, IP GRE tunnel is established between two CLS nodes via an OAM&P system, or a MPLS LSP path is created via RSVP signaling protocol. As described previously, IS-IS running in a data bearer network exposes underlying topology information to the CLS layer. In embodiments, the topology information includes links, link bandwidth availability, and other QoS parameters. With such knowledge, embodiment CLS nodes select a best path to reach the next hop CLS node.
In an embodiment, E-NNI represents a content resolution exchange interface between CLS border nodes within different CLS AS, or between CLS border node and the adjacent non-CLS data networks. In both cases, the resolution protocol is implemented via CREX functions in some embodiment.
For CLS inter-domain content routing, a CLS border node uses extended BGP (with opaque TLV) to exchange both IP reachability and content resolution reachability with CREX. Alternatively, a CLS border node only uses legacy BGP to exchange IP reachability while implementing a global DHT resolution protocol for content reachability with CREX.
In an embodiment, when CLS border nodes connect to a non-CLS network, CREX functions as a DNS agent. After a CLS border node receives content inquiry from an originating CLS node (within CLS AS cluster), it triggers DNS request to the non-CLS domain to get the IP address of the original destination and forward the inquiry to the targeting server. Once it gets the content back, the border node sends the received content back to CLS originating node. In an embodiment, CREX is responsible to determine whether the further inquiry should continue or drop the incoming request, based on the exchange policy.
In embodiments of the present invention, CLS workflow analysis includes a CLS boot up procedure for user initial entry, CLS topology automatic discovery, CLS content publish and inquiry, and CLS content naming and routing in both intra-domain and inter-domain.
FIG. 19 illustrates a diagram depicting an embodiment CLS user initial entry procedure. In an embodiment access entry discovery and selection method, a CLS user (i.e., CC on user device) discovers a CLS Service Provider (i.e., CP on CSP's CLS node). This embodiment procedure is typically executed on a first time use, initial network entry, network re-entry, or when user transitions across different CLS domains. In a first step CC detects one or more available CLS CSP or CC detects CSPs via a stored configuration acquired from a previous entry or configured by CLS management system. In some embodiments, the CSP list may be broadcasted from access network such as WiFi, LTE or WiMAX. In a second step, CC identifies all accessible CSPs and selects a CSP based on some preference criteria. In one example, preference criteria include CSPs that have a bilateral agreement with the access network operator. In a third step, CC performs more concrete processes procedures with access network. In a fourth step CC becomes authorized on the selected CSP for service subscription and creates a business relationship enabling access via the selected CSP. Finally, in a fifth step, CC acquires and stores the configuration information.
Turning to FIG. 20 , an embodiment CLS topology auto discovery diagram is illustrated. An embodiment CLS AS domain is defined by content naming resolution area (i.e., DHT routing domain), which is scoped by geographical range or administration domain. In one embodiment, the join or leave of a CLS node causes all the CLS nodes (within the AS) to update the routing database and to synchronize the changes. In one embodiment, during a first step, the CLS node connects to ISP routers and configures IS-IS links. In a second step, IS-IS (on CLS new node) sends LSA with opaque TLV which include CLS neighborhood information. Next, in a third step, ISP routers flood LSA to all adjacent nodes. Specifically, this TLV is sent over a CLS link at far end pre-connected CLS node. In a fourth step, far end CLS creates a CLS-adjacent link with the new node and updates its routing database, and in a fifth step, a new CLS node is synchronized with attached ISP router by exchanging LSA database. The new node creates a CLS routing database from LSA DB that contains all pre-established CLS links (with opaque TLV). In an embodiment, the new CLS node holds two topologies: one for CLS layer and one for underlying IP routing domain. During a sixth step, from routing database, the new node creates peering adjacent links to all the other CLS nodes by calculating the best paths (assuming IP layer t support QoS routing). In a seventh step, when a CLS node receives content inquiry, it uses DHT protocol to determine the designated next hop and to forward the inquiry to the destination over the selected path.
In an embodiment, CLS uses distributed content storage, as illustrated in FIG. 21 . For example, a CLS node creates content storage under two scenarios: one is when CLS clients publish a new content to the network; and the other is when the local cache makes a local copy after a successful retrieval. In FIG. 21 , peer nodes 2102, 2104, 2106, 2108 and 2110 are implemented as CLS nodes. Originating peer 2102 is the CLS node that receives published content from an attached client.
In an embodiment method, publisher 2112 publishes content to CLS node. Next CLS node 2102 (originating peer) divides the content into pieces, and determines the destination peers (one primary peer 2106 and two backup peers 2108 and 2110) to store the pieces based on one-hop routing table. Next, Originating peer 2102 sends the pieces to the primary peer 2106. Primary peer 2106 then sends the pieces to the backup peers using infrastructure network connectivity, and backup peers 2108 and 2110 send results back to the primary peer node to get content. Primary peer 2106 then sends the results back to originating peer 2102, and originating peer 2102 determines the destination profile peers (one primary peer and two backup peers) to store the profile data of this piece based on one-hop routing table. Lastly, originating peer 2102 sends profile data to these profile peers.
The procedure of making a copy at local cache is similar to what is described above, except that the trigger is issued from the CLS node which makes the local copy, instead of from the publisher client, in some embodiments.
FIG. 22 illustrates distributed content resolution and access for an embodiment of the present invention. In an embodiment, after content is resolved by originating peer, an inquiry is forwarded to the destination CLS node (Main peer 2106). Main peer 2106 then sends the content back to originating peer 2102. First, a subscriber issues an inquiry, then originating peer 2102 determines profile peer 2104 that stores the profile of the interested content. Next, originating peer 2102 sends a request to profile peer 2104 to get the attributes of the content pieces. For example, the request can be a request for a total number of pieces, in one embodiment. Profile peer 2104 then returns the results, and then Originating peer 2102 determines the destination nodes that stored the interested content (i.e., Primary and Backup CLS nodes). Next, originating peer 2102 then sends a request to primary node 2106 to get the content. If Primary node 2106 fails, the request is sent to backups 2108 and 2110. Main peer 2106 then sends back the content to originating peer 2102. In turn, the content is sent back to the subscriber.
In one embodiment, a CLS node is implemented by using leading technologies from Multi-core computing servers, distributed local caching and advanced routing framework. In one embodiment, a CLS node is implemented using an Intel RouteBricks platform, which has a software-defined router with high-speed parallel processing capability by using Intel's multi-core computing technology. In one embodiment, 35 Gbps parallel routing capability is used. One RouteBricks based CLS embodiment is fully programmable using a Click/Linux environment and some embodiments can be built from off-the-shelf, general-purpose server hardware. In one embodiment, the architecture allows routing capability to linearly scale up.
FIG. 23 illustrates an embodiment cluster router architecture having servers 2302 interconnected by inter-server switch 2304. In an embodiment, the cluster router is implemented using RouteBricks to form high-speed switch fabric to connect servers 2304. In an embodiment, the servers are NIC cards; however, other server implementations can be used in other embodiments.
FIG. 24 illustrates an embodiment cluster router. Each server has multiple processing cores 2408, arranged in “sockets” 2404. All cores 2408 in a socket share the same L3 cache 2408. Each socket 2404 has integrated memory controller 2410, connected to a portion of overall memory space 2402 via a memory bus. Sockets 2404 are connected to each other and to the I/O hub via dedicated high-speed point-to-point links. Finally, I/O hub 2404 is connected to the NICs via a set of PCIe buses.
FIG. 25 illustrates various alternative embodiments including one socket system 2502 that includes a single socket, and a four socket system 2504 that has four sockets. In alternative embodiments of the present invention, any number of sockets can be used in a system depending on the system's specification and environment.
FIG. 26 illustrates a block diagram showing an embodiment architecture of a context label switch (CLS). Embodiment CLS functionality includes flow-based content forwarding represented by forwarding plane 2602, content routing protocols represented by routing plane 2604, distributed local cache management for content retrieval and storage represented by local cache server 2606, content service processing (e.g., mash up, transcoding and adaptation/customization) represented by service plane 2608, and management plane 2610 that provides OAM interface for OSS in one embodiment. In alternative embodiments, CLS may also provide open API for content flow management and for 3rd party brokering services.
In an embodiment, forwarding plane 2602 has L2/L3/L4 stack 2618, CL look up and classify module 2620, CL flow action engine 2622, CL switching scheduler 2624, policy engine 2626, CL crypto module 2630 and Forwarding Information Base (FIB) 2632. These modules interface to line cards having an ingress port 2612, switch fabric 2616, and line cards having egress port 2614. Forwarding plane performs operations that affect CL flow in some embodiments.
Routing plane 2604 has CL routing protocol and routing collaboration module 2644, mobility and location module 2640 and CL routing database 2648. In some embodiments routing plane 2604 performs some functions similar to that of conventional routers. Routing plane 2604 also performs infrastructure routing, as well as content routing integrated with infrastructure routing in some embodiments.
Service plane 2608 has event service module 2662, distillation dissemination mash up customization module 2650, third party service brokering module 2660, attachment and mobility module 2656, security key management module 2652, intelligent traffic management module 2658 and content caching service module 2654. Service plane 2608 processes services such as mash up and advertisement. For example, in some embodiments, service plane 2608 performs advertising insertions onto web pages depending on the context information from the client.
Local cache server 2606 has CL data storage and maintenance block 2642, global synch, redistribution and aggregation module 2638, access policy privilege policy module 2634, CL data retrieval optimization module 2640 and CL content module 2636. In an embodiment, local cache service module provides local cache and storage for the CLS.
Management plane 2610 has OAM&P module 2664, NE UI manager module 2666 and Management Information Base (MIB) module 2668. In alternative embodiments, greater and/or few modules may be used. In further alternative embodiments, other functionality can be incorporated within the system software.
In one embodiment, a CLS system achieves a balance between CL overhead processing and system performance for routing throughput. In an embodiment, a CLS node is a “router+server” platform, in which content flow for forwarding and relay is processed at CL header level, which means the termination of L2/L3/L4 stack. The incoming content inquiry is searched in local cache (or shared storage) to determine if there is a local copy to be returned. In addition to relay and inquiry functions, each UNI-faced NIC card can also participate in content service processing tasks such as mash up. CLS design may also facilitate other leading-edge technologies such as Deep(er)PI and open flow management for CL-based content forwarding. The following figure depicts the mapping relationship between CLS software and RouteBricks hardware.
FIG. 27 illustrates an embodiment mapping of system software package 2702 onto hardware 2704. In this example, hardware is implemented using four server cards 2706 and a fifth server card 2708 for a control server. Forwarding plane functions 2710, operating system (OS) 2712, virtualization plane 2714 and services plane 2716 are run on server cards 2706, whereas routing protocol 2718 is ran on control server 2708. In one embodiment, forwarding plane 2710 can be ran on one processor, and the virtual storage management of virtualization plane 2714 can be implemented in local cache engine 2720 of server cards 2706. In alternative embodiments, software can be mapped onto hardware differently. Also, in further alternative embodiments, CLS systems can be implemented using other architectures and technologies.
In an embodiment, software system 2702 implements forwarding plane 2710 having policy engine 2730, flow lookup and classifier 2734, flow action engine 2736, CL flow scheduler 2732, FIB 2742, CL crypto, 2740 and CL REGEX 2738. In one embodiment, OS 2712 is implemented by Linux, however, in alternative embodiments; other operating systems can be used. Virtualization plane 2714 has hypervisor 2750, virtual service flow manager 2754 and virtual storage manager 2752. Services plane 2716 has mash up module 2760, event module 2762, transcoding module 2764, and cache 2766. Management and control plane 2718 has open API 2770, DHT KBR 2772, overlay routing 2774, service policy 2776, user attachment 2778, traffic/request synopsis generator 2780, content routing 2782 and name resolution 2784. Control server 2708 has routing engine processor 2902, integrated memory controller 2906 and I/O ports 2908. Each server card/socket 2706 has service engine (SE) multi-core processor 2910, local cache engine multi-core processor 2720, integrated memory controller 2912, FIB cache 2914, fast path processor (FP) multi-core processor 2920, flow process memory 2916 and I/O ports 2922.
FIG. 28 illustrates a CLS according to an embodiment of the present invention. CLS 3000 has one or more application server cards 3001 and control server card 3005. Application server card 3001 has CP 3006, content routing dispatcher 3009, application engine 3003 and storage engine 3004.
CP 3006 receives an input packet and compares the CL to an entry in flow table 3036. If the entry does not match the flow table, a new flow is initiated, otherwise, an action, such as a mash up procedure to add a short advertisement in video stream, is taken. In some embodiments, CP 3006 performs content flow management, which identifies, creates and removes flow entries from the flow table, and adds, deletes, and/or modifies relevant actions for each flow in the table. Content routing dispatcher 3009 distributes packets to application engine 3003, storage engine 3004 or routing engine controller 3050 to handle data-path packets and control-path packets accordingly.
Application engine 3003 has application API 3010, and one or more service virtual machines 3012, 3014, global flow table 3018, driver & instance 3020 and hypervisor 3034. These functions can be implemented by hardware, or by software running on hardware.
Storage engine 3004 has storage API 3022, storage manager 3024, statistic block 3026, hot pluggable cache policy 3028, content table 3030 and driver and instance 3032. In alternative embodiments of the present invention, CLS 3000 may provide other functions and/or have greater or fewer modules than depicted. In embodiments, storage engine 3004 also includes storage for local cache, which is implemented using hardware such as disk drives, or other types of storage. The total amount of storage devoted to each CLS, depends on usage, the number of clients, and total memory capacity of storage engine 3004. In some embodiments, storage engine 3004 is expandable to keep up with network demands. In an embodiment, storage engine 3004 stores frequently requested content. Content that is not frequently requested, or content that expires because of expired security keys and or TTL labels can be overwritten by new data.
Control server card 3005 has routing engine controller 3050, which includes routing tables 3052, drivers & instance 3054, name resolution 3058, DHT KBR 3056, CLS topology manager 3060, transport topology manager 3062, and attachment manager 3064.
FIG. 29 illustrates a block diagram of embodiment network system 3100 using an embodiment CLS. CLS publisher 3102 and CLS subscriber 3104 are coupled to first content proxy 3110, and CLS publisher 3106 and CLS subscriber 3108 are coupled to second content proxy 3112 via CP UNI interfaces. Transport routing functions of content proxies 3110 and 3112 are coupled together via transport network 3114, while the CP NNI interfaces of content proxies 3110 and 3112 communicate with each other.
Embodiments of the present invention formalize the operational semantic of content/application delivery service platform for next generation Internet via a context label. Embodiment CLs inter-relate user personal/device profile, application context and network property all together to form a middleware layer to utilize application intelligence, user profile and network intelligence to guide content/application delivery. In some embodiments, CL/CLL can be implemented to overlay any data transport layer in both infrastructure-oriented and infrastructure-less network, which can deliver content via simple and transparent multi-modal interfaces (e.g., WiFi, Bluetooth, 3G/4G wireless, Ethernet, Optical, etc). Embodiment systems provide efficient and effective network resource optimization by localizing popular content in a local cache server thus creating a “Green” delivery service platform to reduce traffic and non-deterministic data distribution, and in turn, to reduce energy consumption. Some embodiment systems embed security and privacy to support personalized services, and provide intelligent & autonomous network architecture and management (e.g., CL context profile is used for in-banding signaling to support user dynamic mobility). In some embodiments, CLL is a common layer and framework to seamlessly correlate wire-line and wireless for content delivery services.
In an embodiment, a context is a profile having minimal a set of attributes associated with supporting content delivery in a communication network. From the operational semantic of content/application delivery service, a context inter-relates communication-enabled attributes from dynamically changing network properties such as location and presence, a user profile such as interest or preference, a device type, a user ID, and service transaction time; and application attributes such as content name, version, security, size and TTL.
In an embodiment, a CL represents a context assigned for data content. Different from the legacy label defined in MPLS/GMPLS/TMPLS or PBB/PBT, in which a label is used to identify a data transport connection/connectivity. In embodiments, a CL is used to identify a relationship profile for content delivery service. In some embodiments, a CL is an ASCII string attached to application data chucks. According to the defined rules, in one embodiment, CL is identified and processed by a FPGA, an ASIC or a network processor for content switching/routing.
In an embodiment, a protocol stack called Context Label Layer (CLL) creates and inserts a CL for each content chuck (at sender), or modifies a CL (at intermediate relay node), or removes a CL (at receiver) from each content chunk. CLL also implements a CL routing plane, CL forwarding plane, CL service process plane and CL caching process plane. From the perspective of a layered protocol stack, CLL is located between application content/service and data transport protocol. In an embodiment, CLL is responsible to segment/assemble the application content to/from variable size content chunks and dispatch/receive the I-chunks to/from the various lower layer data transport, depending on the MTU capacity of various physical links.
In an embodiment, a context label switch includes computation resources, communication resources, and storage resources. By using computation and communication resources, the context label switch provides content routing and mobility functionality. By using computation and storage resources, the context label switch provides classification, filtering and mash up functionality. By using storage and communication resources, the context label switch provides content search, naming resolution and security functionality. In alternative embodiments, the context label switch provides other resources.
In accordance with an embodiment, a network device has an input port for receiving input packets, and an output port for sending output packets, where the input packets and output packets have context layer information. The network device also includes a processor configured to process the input packets and output packets using a network protocol having a context layer.
In a further embodiment, the network device has a cache, and the processor is further configured to receive an information request from a client via the input port, where the information request includes at least one input packet having a client identification context label and a content identification label. The processor is further configured to determine if content data corresponding to the content identification context label is in the cache. If the content data is in the cache, the content data is sent to the client in at least one first output packet via the output port. The content data is addressed to the client with the client identification label.
In a further embodiment, the network device is further configured to send at least one second output packet to a second network device requesting the content data if the content data is not in the cache. In an embodiment, the at least one second output packet indentifies the content data by the content identification label.
In a further embodiment, the processor is further configured to send at least one third output packet to a third network device requesting the content data if the content data is not available from the second network device, where the at least one third output packet, which carries the content data, is encapsulated and identified by either an IP address, or some other L2 protocols such as an Ethernet MAC address. In an embodiment, the processor is also configured to reformat the content data according to the client identification context label. In some embodiments, the content data comprises video data in a first format, and the processor is further configured to reformat the video data in the first format into a second format. In further embodiments, the network device further includes a switch fabric configured to switch packets between the input port and the output port.
In a further embodiment, the processor of the network device is further configured to transmit a first output packet to a client, where the output packet has a client identification context label identifying the client. If transmission to the client is not successful, or if the client stops asking for more content, the processor will stop the transmission. In an embodiment, a keep-alive protocol can be used to test for the presence of the client. If a client device is no longer reachable, the attachment/presence status of the client is modified.
In a further embodiment, the processor of the network device is further configured to process context layer information comprising user specific information, application specific information, network specific information and security specific information.
In accordance with another embodiment, a method of operating a network device includes transmitting and receiving packets on at least one port and receiving a first packet from a client on at least one port, where the packets have context layer information and the first packet includes a content name and a context label header. The method also includes determining if requested content associated with the content name is in a local cache. If the requested content is not in the local cache, at least one second packet is transmitted to a second network device on the at least one port, where the at least one second packet includes the content name and the context label. If the requested content is in the local cache, at least one third packet is transmitted to the client on the at least one port, where the at least one third packet includes the requested content.
In a further embodiment, the method also includes transmitting at least one fourth packet to a third network device if the second network device does not have the requested content. In a further embodiment, the packets include the content name in HTTP URI and the context label in an extended HTTP entity header that comprises a user device identifier, location information, timing and some other attributes. In some embodiments, the packets are encapsulated in IP protocol if there are IP transport connections among clients and network devices. In some embodiments, the packets are encapsulated in link layer (L2) protocol if there is no IP transport, for example, in Bluetooth, WiFi, Ethernet or other wireless radio links. In further embodiments, transmitting the at least one third packet to the client that comprises the retrieved content and the context label. The third packet is sent back to the client from the ports at which the network devices received the first packet.
In a further embodiment, the method also includes locating a client based on the context label header. The client device may install a GPS locator which can determine the current user location. In a further embodiment, every network device, as well, can install a GPS to determine its own location and they have the GPS knowledge of all the other peering network devices. When the client device sends the first packet, the first packet can include the user's GPS location in the context label. When the second, the third or the fourth network devices send the retrieved content back to the first network device, based on the calculation of client's GPS proximity with the GPS of the network devices, the proximately is used to determine to which first network device the client is currently attached. In some embodiments, the access points are changed while the client device is mobile. For example, the retrieved content is sent to the network device that is the closest one to the user device. The method can also include transmitting at least one second packet to a second network device on the at least one port, and accessing a copy of the requested content from an upstream content provider.
In accordance with another embodiment, a method of operating a context level switch includes receiving a first packet from a client on at least one port, where the packet includes a content name and a context label header. The method also includes retrieving the requested content from the cache and transmitting at least one second packet to the client on the at least one port, where the at least one second packet includes the requested content. In a further embodiment, the context label header includes a client device type context identifier. The method also includes reformatting the requested content according to the client device type context identifier before transmitting the at least one second packet in some embodiment.
In a further embodiment, the context label header includes a time-to-live (TTL) identifier, the TTL identifier denoting a lifetime for the requested content. The method can also include deleting the requested content from the memory at an expiration of the TTL. In some embodiments, the context label header includes a security key for the requested content. In further embodiments, the context label header comprises location information, and the location information comprises global positioning system (GPS) based location information.
In an embodiment, a method of operating a client device includes forming a context label, sending a packet over the network, and receiving a packet. The client device has a processor that runs software implementing content client (CC) functionality. In some embodiments, the client device runs software that implements a network a context label layer (CLL). Alternatively, CLL functionality is implemented by hardware in the client device. The client device is configured to communicate with a network having a context label layer (CLL).
In an embodiment, a method of operating a context layer switch includes receiving packets from clients, and transmitting contents to clients based on a locally stored cache. If the content on the locally stored cache is not available, the context layer switch accesses copies of the content from upstream CLS nodes and/or a content provider. In a further embodiment, a method of operating a context layer switch includes having a context layer (CL) in the Network protocol.
In an embodiment, a method of operating context layer switch includes locating clients based on CL header. In some embodiments, the CL header is used (e.g., GPS information) instead of an IP address. In an embodiment, the context switch interacts with the rest of the network to maintain continuity of service based on the CL header.
In an embodiment, a method of managing cached content includes associating TTL with content, reformatting streaming video data based on client device, and keeping content in cache based on validity of client keys.
In an embodiment, a context layer switch device is configured to receive packets from clients, and transmit content to clients based on locally stored cache. If locally stored cache is not available, the context layer switch obtains copies of the content from upstream CLS nodes and/or a content provider. In a further embodiment, the context layer switch device is configured to locate clients based on a CL header and interacts with the rest of the network to maintain continuity of service. In a further embodiment, the CL header is used instead of an IP address.
In an embodiment, a context layer switch device is configured to associate TTL with content, reformat streaming video data based on a client device, and keep content in cache based on validity of client keys. In a further embodiment, a context layer switch device is configured to run content proxy (CP) software and/or implement CP functionality in hardware.
In an embodiment, a context layer switch device is implemented with interconnected sockets. The context layer switch device has management plane, service plane and routing plane functionality. In a further embodiment, a context layer switch device is configured to operate on a network with a context layer (CL) in the network protocol. In some embodiments, the context layer switch has software that executes a network protocol having a context layer. In some embodiments, network protocol functionality is implemented in hardware.
The advantages of embodiments of the present invention include the ability to help interne service providers (ISPs) to differentiate and prioritize the “high-value” content bits for their billing model, the ability to overlay the content layer over all kinds of data transport layers and flexibly adapt to various link sizes and diverse MTUs, and the ability to efficiently utilize network bandwidth/resource/topology to reduce the cost, improve performance and save energy.
Some embodiments also provide application layer knowledge to better support QoS, scale load balancing, and create a better user experience with personalized services.
Advantages of embodiments further include a networking architecture optimized for content storage and dissemination that addresses issues of scalability, cost efficiency and security for content.
An advantage of embodiments of the present invention that store video content locally and transcode the video according to the screen resolution of the client device is reduced network traffic because multiple versions of the video data do not need to be requested from the service provider.
Advantages of embodiments that employ RouteBricks multi-server/multi-core clusters include fulfillment of content search and process and relay objectives, while at the same time maximizing the system to reduce the delay and to promote throughput.
Although present embodiments and its advantages have been described in detail, it should be understood that various changes, substitutions and alterations can be made herein without departing from the spirit and scope of the invention as defined by the appended claims. For example, many of the features and functions discussed above can be implemented in software, hardware, or firmware, or a combination thereof.
Moreover, the scope of the present application is not intended to be limited to the particular embodiments of the process, machine, manufacture, composition of matter, means, methods and steps described in the specification. As one of ordinary skill in the art will readily appreciate from the disclosure of the present invention, processes, machines, manufacture, compositions of matter, means, methods, or steps, presently existing or later to be developed, that perform substantially the same function or achieve substantially the same result as the corresponding embodiments described herein may be utilized according to the present invention. Accordingly, the appended claims are intended to include within their scope such processes, machines, manufacture, compositions of matter, means, methods, or steps.

Claims (24)

What is claimed is:
1. A system for Context Label Switching (CLS) comprising:
a network device including a context label layer for managing a context label for each content chunk of a plurality of content chunks, the context label comprising at least one of interested content information, location information, time stamp information, security information, and user ID information, the user ID information including a consumer ID, a supplier ID, and or a device ID, wherein the context label layer comprises the managing the context label comprising:
a routing plane configured to determinedetermining a routing path for a content chunk in accordance with the context label; and
a service plane configured to processprocessing the content chunk; and, wherein the context label layer comprises:
a cache plane configured to store and manage the content chunk in association with the context label,
wherein the context label is carried in a layer above a data transport layer, and
wherein the managing the context label comprises creating and inserting the context label at a sender, modifying the context label at an intermediate relay node, and removing the context label at a receiver.
2. The system of claim 1, wherein managing the context label comprises creating and inserting the context label at a sender, modifying the context label at an intermediate relay node, and removing the context label at a receiver.
3. The system of claim 1, wherein the context label layer further comprises a forwarding plane configured to guide managing the context label comprises:
guiding content chunk delivery associating the routing plane routing path; and manage
managing content flow.
4. The system of claim 3, wherein the forwarding plane managing the content flow comprises managing the content flow for load balancingand, traffic engineering, and prioritizing traffic scheduling.
5. The system of claim 3, wherein the forwarding plane determines guiding the content chunk delivery comprises determining an egress interface for the content flow in accordance with a routing table from the routing plane for the routing path and an action list defined by the service plane for the processing the content chunk.
6. The system of claim 5, wherein the routing table includes mapping between a profile defined by the context label and I/O interface of the system.
7. The system of claim 1, wherein processing the content chunk comprises content distillation, dissemination, mash up, content aggregation and content chunk customization.
8. The system of claim 1, wherein the storing and managing the content chunk comprises storing the content chunk, updating the content chunk, retrieving the content chunk and synchronizing the content chunk with other CLS system, and removing duplicated content chunk.
9. The system of claim 1, wherein the routing plane is further configured to guide managing the context label further comprises content search, to determine determining a next hop, and to manage managing a mobility anchoring and location service.
10. The system of claim 1, further comprising a management plane configured to provide wherein the managing the context label further comprises providing the an interface for operation, administration, maintenance and provisioning.
11. A system for Context Label Switching (CLS) comprising:
a network device including a context label layer for managing a context label for each content chunk of a plurality of content chunks, the context label comprising at least one of user ID information, interested content information, and at least one of location information, time stamp information, and or security information, wherein the time stamp information comprises a time stamp when the a content chunk is requested, a time stamp when the content chunk is to be provided, and an indication as to how long the content chunk can exist in the system, wherein the context label layer comprises the managing the context label comprising:
a routing plane configured to determinedetermining a routing path for the content chunk in accordance with the context label; and
a service plane configured to processprocessing the content chunk; and, wherein the context label layer comprises:
a cache plane configured to store and manage the content chunk in association with the context label,
wherein the context label is carried in a layer above a data transport layer, and
wherein the managing the context label comprises creating and inserting the context label at a sender, modifying the context label at an intermediate relay node, and removing the context label at a receiver.
12. The system of claim 11, wherein the processing the content chunk comprises content distillation, dissemination, mash up, content aggregation and content chunk customization.
13. The system of claim 11, wherein the storing and managing the content chunk comprises storing the content chunk, updating the content chunk, retrieving the content chunk and synchronizing the content chunk with other CLS system, and removing duplicated content chunk.
14. A method for Context Label Switching (CLS) comprising:
determining, by a routing plane of a context label layer, a routing path for a content chunk in accordance with a context label, the context label being managed by the context label layer and comprising at least one of interested content information, location information, time stamp information, security information, and user ID information, the user ID information including a consumer ID, a supplier ID, and or a device ID, wherein the context label layer performs:
processing, by a service plane of the context label layer, the content chunk, and
storing and managing, by a cache plane of the context label layer, the content chunk in association with the context label,
wherein the context label is carried in a layer above a data transport layer, and
wherein management of the context label by the context label layer comprises creating and inserting the context label at a sender, modifying the context label at an intermediate relay node, and removing the context label. at a receiver.
15. The method of claim 14, wherein management of the context label by the context label layer comprises creating and inserting the context label at a sender, modifying the context label at an intermediate relay node, and removing the context label at a receiver.
16. The method of claim 14, further comprising:
guiding, by a forwarding plane of the context label layer, the content chunk delivery associating the routing plane; and
managing content flow.
17. The method of claim 16, further comprising determining, by the forwarding plane of the context label layer, an egress interface for the content flow in accordance with a routing table from the routing plane and an action list defined by the service plane.
18. The method of claim 17, wherein the routing table includes mapping between a profile defined by the context label and an I/O interface of a system.
19. The method of claim 16, wherein the managing the content flow comprises managing the content flow for load balancingand, traffic engineering, and prioritizing traffic scheduling.
20. The method of claim 14, wherein the storing and managing the content chunk comprises storing the content chunk, updating the content chunk, retrieving the content chunk and synchronizing the content chunk with other CLS system, and removing duplicated content chunk.
21. The method of claim 14, further comprising guiding, by the routing plane, content search, determining a next hop, and managing a mobility anchoring and location service.
22. The method of claim 14, wherein the processing the content chunk comprises content distillation, dissemination, mash up, content aggregation and content chunk customization.
23. The method of claim 14, wherein the context label further comprises time stamp information, and wherein the time stamp information comprises a time stamp when the content chunk is requested, a time stamp when the content chunk is to be provided, and an indicator as to how long the content chunk can exist in a system.
24. The system of claim 1, wherein the context label is carried in the layer below an application layer, and wherein the interested content information and the user ID information exclude layer-2 information, layer-3 information, and layer-4 information.
US16/855,771 2010-04-28 2020-04-22 System and method for a context layer switch Active 2031-03-06 USRE49943E1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/855,771 USRE49943E1 (en) 2010-04-28 2020-04-22 System and method for a context layer switch

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/769,052 US8504718B2 (en) 2010-04-28 2010-04-28 System and method for a context layer switch
US13/959,486 US9319311B2 (en) 2010-04-28 2013-08-05 System and method for a context layer switch
US16/855,771 USRE49943E1 (en) 2010-04-28 2020-04-22 System and method for a context layer switch

Related Parent Applications (2)

Application Number Title Priority Date Filing Date
US12/769,052 Continuation US8504718B2 (en) 2010-04-28 2010-04-28 System and method for a context layer switch
US13/959,486 Reissue US9319311B2 (en) 2010-04-28 2013-08-05 System and method for a context layer switch

Publications (1)

Publication Number Publication Date
USRE49943E1 true USRE49943E1 (en) 2024-04-23

Family

ID=44859203

Family Applications (3)

Application Number Title Priority Date Filing Date
US12/769,052 Active 2031-08-28 US8504718B2 (en) 2010-04-28 2010-04-28 System and method for a context layer switch
US13/959,486 Ceased US9319311B2 (en) 2010-04-28 2013-08-05 System and method for a context layer switch
US16/855,771 Active 2031-03-06 USRE49943E1 (en) 2010-04-28 2020-04-22 System and method for a context layer switch

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US12/769,052 Active 2031-08-28 US8504718B2 (en) 2010-04-28 2010-04-28 System and method for a context layer switch
US13/959,486 Ceased US9319311B2 (en) 2010-04-28 2013-08-05 System and method for a context layer switch

Country Status (1)

Country Link
US (3) US8504718B2 (en)

Families Citing this family (529)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1504356B1 (en) * 2002-05-03 2019-04-17 Unium Inc. Method and apparatus for persistent connections to a device through the use of multiple physical network connections and connection hand-offs between multiple bands, modes and networks
US8145908B1 (en) * 2004-10-29 2012-03-27 Akamai Technologies, Inc. Web content defacement protection system
US8107921B2 (en) 2008-01-11 2012-01-31 Seven Networks, Inc. Mobile virtual network operator
US9456054B2 (en) 2008-05-16 2016-09-27 Palo Alto Research Center Incorporated Controlling the spread of interests and content in a content centric network
EP2187640A1 (en) * 2008-11-10 2010-05-19 Thomson Licensing Method for converting between interlaced video and progressive video during transmission via a network
KR101172885B1 (en) * 2008-12-18 2012-08-10 한국전자통신연구원 Apparatus and method for providing device profile using device identifier
WO2014047951A1 (en) 2012-09-29 2014-04-03 华为技术有限公司 Network storage method, switch device, and controller
US8923293B2 (en) 2009-10-21 2014-12-30 Palo Alto Research Center Incorporated Adaptive multi-interface use for content networking
JP5672779B2 (en) * 2010-06-08 2015-02-18 ソニー株式会社 Transmission control apparatus and transmission control method
US8842533B2 (en) * 2010-07-02 2014-09-23 Futurewei Technologies, Inc. Traffic engineering and server selection for content distribution
US9525647B2 (en) 2010-07-06 2016-12-20 Nicira, Inc. Network control apparatus and method for creating and modifying logical switching elements
US10103939B2 (en) 2010-07-06 2018-10-16 Nicira, Inc. Network control apparatus and method for populating logical datapath sets
US9680750B2 (en) 2010-07-06 2017-06-13 Nicira, Inc. Use of tunnels to hide network addresses
US8750164B2 (en) 2010-07-06 2014-06-10 Nicira, Inc. Hierarchical managed switch architecture
US8964528B2 (en) 2010-07-06 2015-02-24 Nicira, Inc. Method and apparatus for robust packet distribution among hierarchical managed switching elements
US9078085B2 (en) * 2010-10-25 2015-07-07 Futurewei Technologies, Inc. System and method for local operations in a communications system
EP2643952B1 (en) 2010-11-22 2023-05-31 Nec Corporation Communication system, communication device, controller, and method and program for controlling forwarding path of packet flow
KR20120062174A (en) * 2010-12-06 2012-06-14 한국전자통신연구원 Apparatus and method for dynamic processing a variety of characteristics packet
JP5585664B2 (en) * 2011-01-13 2014-09-10 日本電気株式会社 Network system and route control method
JP5594171B2 (en) * 2011-02-02 2014-09-24 富士通株式会社 Communication processing apparatus, address learning program, and address learning method
US20130103784A1 (en) * 2011-02-02 2013-04-25 3Crowd Technologies, Inc. Routing client requests
US20120215957A1 (en) * 2011-02-17 2012-08-23 Byungcheol Cho Semiconductor storage device-based cache storage system
WO2012145533A2 (en) * 2011-04-19 2012-10-26 Seven Networks, Inc. Shared resource and virtual resource management in a networked environment
US9043452B2 (en) 2011-05-04 2015-05-26 Nicira, Inc. Network control apparatus and method for port isolation
JP5561620B2 (en) * 2011-05-27 2014-07-30 日立金属株式会社 Network system and network system operation method
US20130007196A1 (en) * 2011-06-30 2013-01-03 Alfano Frank M Connectionless Operation in a Wireless Network
US9149682B2 (en) * 2011-07-05 2015-10-06 Google Inc. System and method for sharing of athletic performance data
US20130103853A1 (en) 2011-07-29 2013-04-25 3Crowd Technologies, Inc. Directing clients based on communication format
US9680791B2 (en) 2011-07-29 2017-06-13 Fortinet, Inc. Facilitating content accessibility via different communication formats
EP3462686B1 (en) 2011-08-17 2019-10-16 Nicira Inc. Distributed logical l3 routing
US10091028B2 (en) 2011-08-17 2018-10-02 Nicira, Inc. Hierarchical controller clusters for interconnecting two or more logical datapath sets
US8560663B2 (en) * 2011-09-30 2013-10-15 Telefonaktiebolaget L M Ericsson (Publ) Using MPLS for virtual private cloud network isolation in openflow-enabled cloud computing
US9250941B2 (en) 2011-09-30 2016-02-02 Telefonaktiebolaget L M Ericsson (Publ) Apparatus and method for segregating tenant specific data when using MPLS in openflow-enabled cloud computing
US8792492B2 (en) * 2011-10-17 2014-07-29 Telcordia Technologies, Inc. Open communication method in a heterogeneous network
CN103067428B (en) * 2011-10-21 2016-08-10 华为技术有限公司 Base station, service processing method and cloud computing system
US9288104B2 (en) 2011-10-25 2016-03-15 Nicira, Inc. Chassis controllers for converting universal flows
US9203701B2 (en) 2011-10-25 2015-12-01 Nicira, Inc. Network virtualization apparatus and method with scheduling capabilities
US9137107B2 (en) 2011-10-25 2015-09-15 Nicira, Inc. Physical controllers for converting universal flows
US9178833B2 (en) 2011-10-25 2015-11-03 Nicira, Inc. Chassis controller
KR20130048032A (en) * 2011-11-01 2013-05-09 한국전자통신연구원 Routing method in content-centric network
WO2013095622A1 (en) * 2011-12-23 2013-06-27 Empire Technology Develpment Llc Optimization of resource utilization in a collection of devices
KR101326789B1 (en) * 2011-12-26 2013-11-08 건국대학교 산학협력단 A system and method of Multiple Context-awareness for a customized cloud service distribution in Service Level Agreement
US8861527B1 (en) * 2011-12-30 2014-10-14 Emc Corporation Network-assisted routing for topology-aware overlay networks
US9032061B1 (en) 2011-12-30 2015-05-12 Emc Corporation Policy based intelligent data placement
US8675672B1 (en) 2011-12-30 2014-03-18 Emc Corporation Hierarchical cluster tree overlay network
US10218756B2 (en) 2012-01-06 2019-02-26 Comcast Cable Communications, Llc Streamlined delivery of video content
EP2634991B1 (en) 2012-02-28 2017-08-02 Alcatel Lucent Content-centric networking
US9628438B2 (en) 2012-04-06 2017-04-18 Exablox Consistent ring namespaces facilitating data storage and organization in network infrastructures
EP2748993B1 (en) 2012-04-18 2015-09-02 Nicira Inc. Using transactions to compute and propagate network forwarding state
US9515920B2 (en) * 2012-04-20 2016-12-06 Futurewei Technologies, Inc. Name-based neighbor discovery and multi-hop service discovery in information-centric networks
US9112793B2 (en) 2012-05-31 2015-08-18 International Business Machines Corporation End-to-end multipathing through network having switching devices compatible with different protocols
US9118573B2 (en) 2012-05-31 2015-08-25 International Business Machines Corporation Multipath effectuation within singly contiguous network fabric via switching device routing logic programming
US9363152B2 (en) * 2012-06-11 2016-06-07 Microsoft Technology Licensing, Llc Large-scale passive network monitoring using multiple tiers of ordinary network switches
US9225550B2 (en) 2012-06-21 2015-12-29 International Business Machines Corporation Switch monitoring statistics gathering at servers and gateways for overlay networks
US8799399B2 (en) * 2012-06-25 2014-08-05 Microsoft Corporation Near-real time distributed usage aggregation system
WO2014000252A1 (en) * 2012-06-29 2014-01-03 France Telecom Method for establishing a hierarchical transmission structure in a content centric network
US9231892B2 (en) 2012-07-09 2016-01-05 Vmware, Inc. Distributed virtual switch configuration and state management
JP6329139B2 (en) * 2012-07-13 2018-05-23 サムスン エレクトロニクス カンパニー リミテッド Content requester, content provider, and node communication method for content provision in a content name-based content-centric network
US20140020102A1 (en) * 2012-07-16 2014-01-16 Infosys Limited Integrated network architecture
JP6102108B2 (en) * 2012-07-24 2017-03-29 富士通株式会社 Information processing apparatus, data providing method, and data providing program
US9588900B2 (en) 2012-07-25 2017-03-07 Empire Technology Development Llc Management of chip multiprocessor cooperative caching based on eviction rate
US8855118B2 (en) 2012-07-30 2014-10-07 Hewlett-Packard Development Company, L.P. Source discovery for non-flooding multicast using openflow
CN103581252B (en) * 2012-07-31 2016-12-21 华为技术有限公司 Support the method for subscribed content, equipment and system in content network
US8817733B2 (en) * 2012-08-16 2014-08-26 Intel Corporation Mobile proxy for cloud radio access network
US9112922B2 (en) 2012-08-28 2015-08-18 Vantrix Corporation Method and system for self-tuning cache management
EP2901618A4 (en) 2012-09-26 2016-04-27 Hewlett Packard Development Co Multicast message update
US9923808B2 (en) * 2012-10-09 2018-03-20 Netscout Systems, Inc. System and method for real-time load balancing of network packets
US9537793B2 (en) * 2012-10-10 2017-01-03 Cisco Technology, Inc. Ensuring any-to-any reachability with opportunistic layer 3 forwarding in massive scale data center environments
WO2014064890A1 (en) * 2012-10-24 2014-05-01 パナソニック株式会社 Communication system, reception terminal, transmission terminal, and flow rate control method
US9280546B2 (en) * 2012-10-31 2016-03-08 Palo Alto Research Center Incorporated System and method for accessing digital content using a location-independent name
US9400800B2 (en) 2012-11-19 2016-07-26 Palo Alto Research Center Incorporated Data transport by named content synchronization
KR101965794B1 (en) * 2012-11-26 2019-04-04 삼성전자주식회사 Packet format and communication method of network node for compatibility of ip routing, and the network node
JP6043879B2 (en) * 2012-11-27 2016-12-14 テレフオンアクチーボラゲット エルエム エリクソン(パブル) Apparatus and method for separation of tenant specific data when using MPLS in OpenFlow enabled cloud computing
US10430839B2 (en) 2012-12-12 2019-10-01 Cisco Technology, Inc. Distributed advertisement insertion in content-centric networks
US9979595B2 (en) 2012-12-18 2018-05-22 Juniper Networks, Inc. Subscriber management and network service integration for software-defined networks having centralized control
US8711855B1 (en) 2012-12-18 2014-04-29 Juniper Networks, Inc. Topology discovery, control channel establishment, and datapath provisioning within an aggregation network with centralized control
US9100285B1 (en) 2012-12-18 2015-08-04 Juniper Networks, Inc. Dynamic control channel establishment for software-defined networks having centralized control
US9001659B2 (en) * 2013-01-21 2015-04-07 Futurewei Technologies, Inc. OpenFlow enabled WiFi management entity architecture
US10616049B2 (en) 2013-01-25 2020-04-07 Dell Products, L.P. System and method for determining the configuration of switches in virtual link trunking environments
US9407500B2 (en) 2013-01-25 2016-08-02 Dell Products L.P. System and method for determining the configuration of switches in virtual link trunking environments
KR102063681B1 (en) * 2013-03-11 2020-01-08 삼성전자주식회사 Communicaton method of administration node, requesting node and normal node deleting unvalid contents using contents revocation list in a contents centric network
US9444748B2 (en) 2013-03-15 2016-09-13 International Business Machines Corporation Scalable flow and congestion control with OpenFlow
US9609086B2 (en) 2013-03-15 2017-03-28 International Business Machines Corporation Virtual machine mobility using OpenFlow
US9596192B2 (en) 2013-03-15 2017-03-14 International Business Machines Corporation Reliable link layer for control links between network controllers and switches
US9407560B2 (en) 2013-03-15 2016-08-02 International Business Machines Corporation Software defined network-based load balancing for physical and virtual networks
US9477500B2 (en) * 2013-03-15 2016-10-25 Avi Networks Managing and controlling a distributed network service platform
US9769074B2 (en) 2013-03-15 2017-09-19 International Business Machines Corporation Network per-flow rate limiting
US9104643B2 (en) 2013-03-15 2015-08-11 International Business Machines Corporation OpenFlow controller master-slave initialization protocol
US9118984B2 (en) 2013-03-15 2015-08-25 International Business Machines Corporation Control plane for integrated switch wavelength division multiplexing
US9978025B2 (en) 2013-03-20 2018-05-22 Cisco Technology, Inc. Ordered-element naming for name-based packet forwarding
JP5939580B2 (en) * 2013-03-27 2016-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Name identification system for identifying anonymized data, method and computer program therefor
US9197553B2 (en) 2013-03-29 2015-11-24 Cisco Technology, Inc. Using a virtual internet protocol address to represent dually connected hosts in an internet protocol overlay network
WO2014166092A1 (en) * 2013-04-11 2014-10-16 华为技术有限公司 Resource allocation method, switch, and controller
US9552382B2 (en) 2013-04-23 2017-01-24 Exablox Corporation Reference counter integrity checking
US9225638B2 (en) 2013-05-09 2015-12-29 Vmware, Inc. Method and system for service switching using service tags
US9935791B2 (en) * 2013-05-20 2018-04-03 Cisco Technology, Inc. Method and system for name resolution across heterogeneous architectures
US9712334B2 (en) * 2013-05-21 2017-07-18 Brocade Communications Systems, Inc. Efficient multicast topology construction in a routed network
US9432215B2 (en) 2013-05-21 2016-08-30 Nicira, Inc. Hierarchical network managers
WO2014190093A1 (en) * 2013-05-21 2014-11-27 Exablox Corporation Automatic data ring discovery and configuration
US9826025B2 (en) * 2013-05-21 2017-11-21 Cisco Technology, Inc. Chaining service zones by way of route re-origination
US9185120B2 (en) 2013-05-23 2015-11-10 Palo Alto Research Center Incorporated Method and system for mitigating interest flooding attacks in content-centric networks
US9525524B2 (en) 2013-05-31 2016-12-20 At&T Intellectual Property I, L.P. Remote distributed antenna system
US9999038B2 (en) 2013-05-31 2018-06-12 At&T Intellectual Property I, L.P. Remote distributed antenna system
WO2014201270A1 (en) 2013-06-12 2014-12-18 Exablox Corporation Hybrid garbage collection
JP2016526720A (en) 2013-06-19 2016-09-05 エグザブロックス・コーポレーション Data scrubbing in cluster-based storage systems
US9509614B2 (en) 2013-06-20 2016-11-29 Cisco Technology, Inc. Hierarchical load balancing in a network environment
US9419845B2 (en) * 2013-06-27 2016-08-16 Cisco Technology, Inc. Dynamic content distribution network selection based on context from transient criteria
US20150006571A1 (en) * 2013-06-28 2015-01-01 LGS Innovations LLC Method And Apparatus For Enabling Queries In An Information-Centric Network
US9571386B2 (en) 2013-07-08 2017-02-14 Nicira, Inc. Hybrid packet processing
US10218564B2 (en) 2013-07-08 2019-02-26 Nicira, Inc. Unified replication mechanism for fault-tolerance of state
US9571304B2 (en) 2013-07-08 2017-02-14 Nicira, Inc. Reconciliation of network state across physical domains
US9934242B2 (en) 2013-07-10 2018-04-03 Exablox Corporation Replication of data between mirrored data sites
US9407580B2 (en) 2013-07-12 2016-08-02 Nicira, Inc. Maintaining data stored with a packet
US9282019B2 (en) 2013-07-12 2016-03-08 Nicira, Inc. Tracing logical network packets through physical network
US9197529B2 (en) 2013-07-12 2015-11-24 Nicira, Inc. Tracing network packets through logical and physical networks
US9628400B2 (en) * 2013-07-24 2017-04-18 Cisco Technology, Inc. Interest forwarding for interactive client anonymity
US9444722B2 (en) 2013-08-01 2016-09-13 Palo Alto Research Center Incorporated Method and apparatus for configuring routing paths in a custodian-based routing architecture
KR101882727B1 (en) * 2013-08-08 2018-07-27 삼성전자주식회사 Terminal apparatus and Method for controlling terminal apparatus
CN104348728B (en) * 2013-08-08 2018-03-09 华为技术有限公司 Generate the method and apparatus of forwarding information
US9952885B2 (en) 2013-08-14 2018-04-24 Nicira, Inc. Generation of configuration files for a DHCP module executing within a virtualized container
US9887960B2 (en) 2013-08-14 2018-02-06 Nicira, Inc. Providing services for logical networks
US9973382B2 (en) 2013-08-15 2018-05-15 Nicira, Inc. Hitless upgrade for network control applications
US9577845B2 (en) 2013-09-04 2017-02-21 Nicira, Inc. Multiple active L3 gateways for logical networks
US9503371B2 (en) 2013-09-04 2016-11-22 Nicira, Inc. High availability L3 gateways for logical networks
WO2015036023A1 (en) * 2013-09-12 2015-03-19 Nec Europe Ltd. A method for operating an information-centric network and network
US9602398B2 (en) 2013-09-15 2017-03-21 Nicira, Inc. Dynamically generating flows with wildcard fields
US9674087B2 (en) 2013-09-15 2017-06-06 Nicira, Inc. Performing a multi-stage lookup to classify packets
WO2015049013A1 (en) * 2013-10-04 2015-04-09 Telefonaktiebolaget L M Ericsson (Publ) A method and apparatus for configuring optical network nodes
US9596126B2 (en) 2013-10-10 2017-03-14 Nicira, Inc. Controller side method of generating and updating a controller assignment list
US10063458B2 (en) 2013-10-13 2018-08-28 Nicira, Inc. Asymmetric connection with external networks
US9977685B2 (en) 2013-10-13 2018-05-22 Nicira, Inc. Configuration of logical router
US9088803B2 (en) * 2013-10-14 2015-07-21 Nec Laboratories America, Inc. Software defined joint bandwidth provisioning and cache management for MBH video traffic optimization
US10248556B2 (en) 2013-10-16 2019-04-02 Exablox Corporation Forward-only paged data storage management where virtual cursor moves in only one direction from header of a session to data field of the session
US9407549B2 (en) 2013-10-29 2016-08-02 Palo Alto Research Center Incorporated System and method for hash-based forwarding of packets with hierarchically structured variable-length identifiers
US9276840B2 (en) 2013-10-30 2016-03-01 Palo Alto Research Center Incorporated Interest messages with a payload for a named data network
US9282050B2 (en) 2013-10-30 2016-03-08 Palo Alto Research Center Incorporated System and method for minimum path MTU discovery in content centric networks
US9401864B2 (en) * 2013-10-31 2016-07-26 Palo Alto Research Center Incorporated Express header for packets with hierarchically structured variable-length identifiers
US8897697B1 (en) 2013-11-06 2014-11-25 At&T Intellectual Property I, Lp Millimeter-wave surface-wave communications
KR102131699B1 (en) * 2013-11-07 2020-07-08 삼성전자주식회사 Contents transmitter and contents receiver, method for transmitting contents and method for receiving contents
US10129365B2 (en) 2013-11-13 2018-11-13 Cisco Technology, Inc. Method and apparatus for pre-fetching remote content based on static and dynamic recommendations
US9311377B2 (en) 2013-11-13 2016-04-12 Palo Alto Research Center Incorporated Method and apparatus for performing server handoff in a name-based content distribution system
US10101801B2 (en) 2013-11-13 2018-10-16 Cisco Technology, Inc. Method and apparatus for prefetching content in a data stream
US10089655B2 (en) 2013-11-27 2018-10-02 Cisco Technology, Inc. Method and apparatus for scalable data broadcasting
US9503358B2 (en) 2013-12-05 2016-11-22 Palo Alto Research Center Incorporated Distance-based routing in an information-centric network
US9225652B2 (en) * 2013-12-05 2015-12-29 Huawei Technologies Co., Ltd. Framework for traffic engineering in software defined networking
US10009794B2 (en) 2013-12-05 2018-06-26 Huawei Technologies Co., Ltd. Framework for traffic engineering in software defined networking
US9967199B2 (en) 2013-12-09 2018-05-08 Nicira, Inc. Inspecting operations of a machine to detect elephant flows
US10193771B2 (en) 2013-12-09 2019-01-29 Nicira, Inc. Detecting and handling elephant flows
US9985829B2 (en) 2013-12-12 2018-05-29 Exablox Corporation Management and provisioning of cloud connected devices
US9569368B2 (en) 2013-12-13 2017-02-14 Nicira, Inc. Installing and managing flows in a flow table cache
US9996467B2 (en) 2013-12-13 2018-06-12 Nicira, Inc. Dynamically adjusting the number of flows allowed in a flow table cache
US9842027B1 (en) * 2013-12-27 2017-12-12 EMC IP Holding Company LLC Intelligent application optimized backups
US9379979B2 (en) 2014-01-14 2016-06-28 Palo Alto Research Center Incorporated Method and apparatus for establishing a virtual interface for a set of mutual-listener devices
US10172068B2 (en) 2014-01-22 2019-01-01 Cisco Technology, Inc. Service-oriented routing in software-defined MANETs
US10098051B2 (en) 2014-01-22 2018-10-09 Cisco Technology, Inc. Gateways and routing in software-defined manets
US9374304B2 (en) 2014-01-24 2016-06-21 Palo Alto Research Center Incorporated End-to end route tracing over a named-data network
US9774582B2 (en) 2014-02-03 2017-09-26 Exablox Corporation Private cloud connected device cluster architecture
WO2015120071A2 (en) 2014-02-04 2015-08-13 Exablox Corporation Content based organization of file systems
US9954678B2 (en) 2014-02-06 2018-04-24 Cisco Technology, Inc. Content-based transport security
US9531679B2 (en) 2014-02-06 2016-12-27 Palo Alto Research Center Incorporated Content-based transport security for distributed producers
US8949949B1 (en) * 2014-02-11 2015-02-03 Level 3 Communications, Llc Network element authentication in communication networks
KR101521808B1 (en) * 2014-02-20 2015-05-20 한국전자통신연구원 Apparatus, method, and system of context-aware security control of cloud environment
CN104869057B (en) * 2014-02-21 2019-03-01 中兴通讯股份有限公司 Open flow switch Graceful Restart processing method, device and open flow controller
US9678998B2 (en) 2014-02-28 2017-06-13 Cisco Technology, Inc. Content name resolution for information centric networking
US10089651B2 (en) 2014-03-03 2018-10-02 Cisco Technology, Inc. Method and apparatus for streaming advertisements in a scalable data broadcasting system
US9836540B2 (en) 2014-03-04 2017-12-05 Cisco Technology, Inc. System and method for direct storage access in a content-centric network
US9473405B2 (en) 2014-03-10 2016-10-18 Palo Alto Research Center Incorporated Concurrent hashes and sub-hashes on data streams
US9626413B2 (en) 2014-03-10 2017-04-18 Cisco Systems, Inc. System and method for ranking content popularity in a content-centric network
US9391896B2 (en) 2014-03-10 2016-07-12 Palo Alto Research Center Incorporated System and method for packet forwarding using a conjunctive normal form strategy in a content-centric network
US9419855B2 (en) 2014-03-14 2016-08-16 Nicira, Inc. Static routes for logical routers
US9590901B2 (en) 2014-03-14 2017-03-07 Nicira, Inc. Route advertisement by managed gateways
US20150263906A1 (en) * 2014-03-14 2015-09-17 Avni Networks Inc. Method and apparatus for ensuring application and network service performance in an automated manner
US9225597B2 (en) 2014-03-14 2015-12-29 Nicira, Inc. Managed gateways peering with external router to attract ingress packets
US9680708B2 (en) 2014-03-14 2017-06-13 Veritas Technologies Method and apparatus for cloud resource delivery
US9313129B2 (en) 2014-03-14 2016-04-12 Nicira, Inc. Logical router processing by network controller
US9407432B2 (en) 2014-03-19 2016-08-02 Palo Alto Research Center Incorporated System and method for efficient and secure distribution of digital content
US9916601B2 (en) 2014-03-21 2018-03-13 Cisco Technology, Inc. Marketplace for presenting advertisements in a scalable data broadcasting system
US9503321B2 (en) 2014-03-21 2016-11-22 Nicira, Inc. Dynamic routing for logical routers
US9647883B2 (en) 2014-03-21 2017-05-09 Nicria, Inc. Multiple levels of logical routers
US9363179B2 (en) 2014-03-26 2016-06-07 Palo Alto Research Center Incorporated Multi-publisher routing protocol for named data networks
US9413644B2 (en) 2014-03-27 2016-08-09 Nicira, Inc. Ingress ECMP in virtual distributed routing environment
US9893988B2 (en) 2014-03-27 2018-02-13 Nicira, Inc. Address resolution using multiple designated instances of a logical router
WO2015149831A1 (en) * 2014-03-31 2015-10-08 Telefonaktiebolaget L M Ericsson (Publ) Handling of traffic flows in a communications system
US10193806B2 (en) 2014-03-31 2019-01-29 Nicira, Inc. Performing a finishing operation to improve the quality of a resulting hash
CN103905337B (en) * 2014-03-31 2018-01-23 华为技术有限公司 A kind of processing unit of Internet resources, method and system
US9686200B2 (en) 2014-03-31 2017-06-20 Nicira, Inc. Flow cache hierarchy
US9385954B2 (en) 2014-03-31 2016-07-05 Nicira, Inc. Hashing techniques for use in a network environment
US9363086B2 (en) 2014-03-31 2016-06-07 Palo Alto Research Center Incorporated Aggregate signing of data in content centric networking
US9716622B2 (en) 2014-04-01 2017-07-25 Cisco Technology, Inc. System and method for dynamic name configuration in content-centric networks
US9390289B2 (en) 2014-04-07 2016-07-12 Palo Alto Research Center Incorporated Secure collection synchronization using matched network names
US9473576B2 (en) 2014-04-07 2016-10-18 Palo Alto Research Center Incorporated Service discovery using collection synchronization with exact names
US10075521B2 (en) 2014-04-07 2018-09-11 Cisco Technology, Inc. Collection synchronization using equality matched network names
US9451032B2 (en) 2014-04-10 2016-09-20 Palo Alto Research Center Incorporated System and method for simple service discovery in content-centric networks
DE102014207479A1 (en) 2014-04-17 2015-10-22 Robert Bosch Gmbh Method for classifying a data segment with regard to its further processing
US9203885B2 (en) 2014-04-28 2015-12-01 Palo Alto Research Center Incorporated Method and apparatus for exchanging bidirectional streams over a content centric network
US9992281B2 (en) * 2014-05-01 2018-06-05 Cisco Technology, Inc. Accountable content stores for information centric networks
US9602422B2 (en) 2014-05-05 2017-03-21 Nicira, Inc. Implementing fixed points in network state updates using generation numbers
CN105099961B (en) * 2014-05-12 2020-01-17 中兴通讯股份有限公司 Method and device for quickly synchronizing medium access control address table
US9609014B2 (en) 2014-05-22 2017-03-28 Cisco Systems, Inc. Method and apparatus for preventing insertion of malicious content at a named data network router
US9455835B2 (en) 2014-05-23 2016-09-27 Palo Alto Research Center Incorporated System and method for circular link resolution with hash-based names in content-centric networks
US9276751B2 (en) 2014-05-28 2016-03-01 Palo Alto Research Center Incorporated System and method for circular link resolution with computable hash-based names in content-centric networks
US9467377B2 (en) 2014-06-19 2016-10-11 Palo Alto Research Center Incorporated Associating consumer states with interests in a content-centric network
US9537719B2 (en) 2014-06-19 2017-01-03 Palo Alto Research Center Incorporated Method and apparatus for deploying a minimal-cost CCN topology
US9516144B2 (en) 2014-06-19 2016-12-06 Palo Alto Research Center Incorporated Cut-through forwarding of CCNx message fragments with IP encapsulation
US9426113B2 (en) 2014-06-30 2016-08-23 Palo Alto Research Center Incorporated System and method for managing devices over a content centric network
US9742881B2 (en) 2014-06-30 2017-08-22 Nicira, Inc. Network virtualization using just-in-time distributed capability for classification encoding
US9699198B2 (en) 2014-07-07 2017-07-04 Cisco Technology, Inc. System and method for parallel secure content bootstrapping in content-centric networks
US9959156B2 (en) 2014-07-17 2018-05-01 Cisco Technology, Inc. Interest return control message
US9621354B2 (en) 2014-07-17 2017-04-11 Cisco Systems, Inc. Reconstructable content objects
US9590887B2 (en) 2014-07-18 2017-03-07 Cisco Systems, Inc. Method and system for keeping interest alive in a content centric network
US9729616B2 (en) 2014-07-18 2017-08-08 Cisco Technology, Inc. Reputation-based strategy for forwarding and responding to interests over a content centric network
US9535968B2 (en) 2014-07-21 2017-01-03 Palo Alto Research Center Incorporated System for distributing nameless objects using self-certifying names
US9882964B2 (en) 2014-08-08 2018-01-30 Cisco Technology, Inc. Explicit strategy feedback in name-based forwarding
US9729662B2 (en) 2014-08-11 2017-08-08 Cisco Technology, Inc. Probabilistic lazy-forwarding technique without validation in a content centric network
US9503365B2 (en) 2014-08-11 2016-11-22 Palo Alto Research Center Incorporated Reputation-based instruction processing over an information centric network
CN105337819B (en) * 2014-08-15 2020-05-22 中国电信股份有限公司 Data processing method of broadband access gateway, broadband access gateway and network system
US9391777B2 (en) 2014-08-15 2016-07-12 Palo Alto Research Center Incorporated System and method for performing key resolution over a content centric network
US9800637B2 (en) 2014-08-19 2017-10-24 Cisco Technology, Inc. System and method for all-in-one content stream in content-centric networks
US9467492B2 (en) 2014-08-19 2016-10-11 Palo Alto Research Center Incorporated System and method for reconstructable all-in-one content stream
US9875127B2 (en) 2014-08-22 2018-01-23 Nicira, Inc. Enabling uniform switch management in virtual infrastructure
US9497282B2 (en) 2014-08-27 2016-11-15 Palo Alto Research Center Incorporated Network coding for content-centric network
US9692689B2 (en) * 2014-08-27 2017-06-27 International Business Machines Corporation Reporting static flows to a switch controller in a software-defined network (SDN)
US10204013B2 (en) 2014-09-03 2019-02-12 Cisco Technology, Inc. System and method for maintaining a distributed and fault-tolerant state over an information centric network
US9553812B2 (en) 2014-09-09 2017-01-24 Palo Alto Research Center Incorporated Interest keep alives at intermediate routers in a CCN
US9768833B2 (en) 2014-09-15 2017-09-19 At&T Intellectual Property I, L.P. Method and apparatus for sensing a condition in a transmission medium of electromagnetic waves
US10063280B2 (en) 2014-09-17 2018-08-28 At&T Intellectual Property I, L.P. Monitoring and mitigating conditions in a communication network
EP3198464B1 (en) * 2014-09-25 2019-02-06 Hughes Network Systems, LLC Application-aware multihoming for data traffic acceleration in data communications networks
US9806885B1 (en) * 2014-09-26 2017-10-31 Rockwell Collins, Inc. Dual use cryptographic system and method
US9634928B2 (en) 2014-09-29 2017-04-25 Juniper Networks, Inc. Mesh network of simple nodes with centralized control
US10225137B2 (en) 2014-09-30 2019-03-05 Nicira, Inc. Service node selection by an inline service switch
US9768980B2 (en) 2014-09-30 2017-09-19 Nicira, Inc. Virtual distributed bridging
US10320679B2 (en) 2014-09-30 2019-06-11 Nicira, Inc. Inline load balancing
US9935827B2 (en) 2014-09-30 2018-04-03 Nicira, Inc. Method and apparatus for distributing load among a plurality of service nodes
US10020960B2 (en) 2014-09-30 2018-07-10 Nicira, Inc. Virtual distributed bridging
US11178051B2 (en) 2014-09-30 2021-11-16 Vmware, Inc. Packet key parser for flow-based forwarding elements
US10511458B2 (en) 2014-09-30 2019-12-17 Nicira, Inc. Virtual distributed bridging
US10257099B2 (en) * 2014-09-30 2019-04-09 A 10 Networks, Incorporated Applications of processing packets which contain geographic location information of the packet sender
US10250443B2 (en) 2014-09-30 2019-04-02 Nicira, Inc. Using physical location to modify behavior of a distributed virtual network element
US9615269B2 (en) 2014-10-02 2017-04-04 At&T Intellectual Property I, L.P. Method and apparatus that provides fault tolerance in a communication network
US9685992B2 (en) 2014-10-03 2017-06-20 At&T Intellectual Property I, L.P. Circuit panel network and methods thereof
US10469342B2 (en) 2014-10-10 2019-11-05 Nicira, Inc. Logical network traffic analysis
US9503189B2 (en) 2014-10-10 2016-11-22 At&T Intellectual Property I, L.P. Method and apparatus for arranging communication sessions in a communication system
US9973299B2 (en) 2014-10-14 2018-05-15 At&T Intellectual Property I, L.P. Method and apparatus for adjusting a mode of communication in a communication network
US9627768B2 (en) 2014-10-21 2017-04-18 At&T Intellectual Property I, L.P. Guided-wave transmission device with non-fundamental mode propagation and methods for use therewith
US9312919B1 (en) 2014-10-21 2016-04-12 At&T Intellectual Property I, Lp Transmission device with impairment compensation and methods for use therewith
US9653770B2 (en) 2014-10-21 2017-05-16 At&T Intellectual Property I, L.P. Guided wave coupler, coupling module and methods for use therewith
US9780834B2 (en) 2014-10-21 2017-10-03 At&T Intellectual Property I, L.P. Method and apparatus for transmitting electromagnetic waves
US9577306B2 (en) 2014-10-21 2017-02-21 At&T Intellectual Property I, L.P. Guided-wave transmission device and methods for use therewith
US9769020B2 (en) 2014-10-21 2017-09-19 At&T Intellectual Property I, L.P. Method and apparatus for responding to events affecting communications in a communication network
US10069933B2 (en) 2014-10-23 2018-09-04 Cisco Technology, Inc. System and method for creating virtual interfaces based on network characteristics
US9462455B2 (en) * 2014-11-11 2016-10-04 Sony Corporation Dynamic user recommendations for ban enabled media experiences
US9800327B2 (en) 2014-11-20 2017-10-24 At&T Intellectual Property I, L.P. Apparatus for controlling operations of a communication device and methods thereof
US9954287B2 (en) 2014-11-20 2018-04-24 At&T Intellectual Property I, L.P. Apparatus for converting wireless signals and electromagnetic waves and methods thereof
US9742462B2 (en) 2014-12-04 2017-08-22 At&T Intellectual Property I, L.P. Transmission medium and communication interfaces and methods for use therewith
US10009067B2 (en) 2014-12-04 2018-06-26 At&T Intellectual Property I, L.P. Method and apparatus for configuring a communication interface
US9461706B1 (en) 2015-07-31 2016-10-04 At&T Intellectual Property I, Lp Method and apparatus for exchanging communication signals
US9997819B2 (en) 2015-06-09 2018-06-12 At&T Intellectual Property I, L.P. Transmission medium and method for facilitating propagation of electromagnetic waves via a core
US10340573B2 (en) 2016-10-26 2019-07-02 At&T Intellectual Property I, L.P. Launcher with cylindrical coupling device and methods for use therewith
US10243784B2 (en) 2014-11-20 2019-03-26 At&T Intellectual Property I, L.P. System for generating topology information and methods thereof
US9544006B2 (en) 2014-11-20 2017-01-10 At&T Intellectual Property I, L.P. Transmission device with mode division multiplexing and methods for use therewith
US9536059B2 (en) 2014-12-15 2017-01-03 Palo Alto Research Center Incorporated Method and system for verifying renamed content using manifests in a content centric network
US9590948B2 (en) 2014-12-15 2017-03-07 Cisco Systems, Inc. CCN routing using hardware-assisted hash tables
US10237189B2 (en) 2014-12-16 2019-03-19 Cisco Technology, Inc. System and method for distance-based interest forwarding
US9846881B2 (en) 2014-12-19 2017-12-19 Palo Alto Research Center Incorporated Frugal user engagement help systems
US10003520B2 (en) 2014-12-22 2018-06-19 Cisco Technology, Inc. System and method for efficient name-based content routing using link-state information in information-centric networks
US9473475B2 (en) 2014-12-22 2016-10-18 Palo Alto Research Center Incorporated Low-cost authenticated signing delegation in content centric networking
US9660825B2 (en) 2014-12-24 2017-05-23 Cisco Technology, Inc. System and method for multi-source multicasting in content-centric networks
US9998247B1 (en) 2014-12-30 2018-06-12 Juniper Networks, Inc. Controller-based network device timing synchronization
US10020946B2 (en) * 2015-01-07 2018-07-10 Cyph, Inc. Multi-key encryption method
WO2016114822A1 (en) 2015-01-16 2016-07-21 Cyph Inc. A system and method of cryprographically signing web applications
US9961056B2 (en) 2015-01-07 2018-05-01 Cyph, Inc. Method of deniable encrypted communications
US20160204916A1 (en) * 2015-01-08 2016-07-14 Ngoc-Dung DAO System and method for joint optimization of source selection and traffic engineering
US9946743B2 (en) 2015-01-12 2018-04-17 Cisco Technology, Inc. Order encoded manifests in a content centric network
US9916457B2 (en) 2015-01-12 2018-03-13 Cisco Technology, Inc. Decoupled name security binding for CCN objects
US9832291B2 (en) 2015-01-12 2017-11-28 Cisco Technology, Inc. Auto-configurable transport stack
US9602596B2 (en) 2015-01-12 2017-03-21 Cisco Systems, Inc. Peer-to-peer sharing in a content centric network
US9954795B2 (en) 2015-01-12 2018-04-24 Cisco Technology, Inc. Resource allocation using CCN manifests
US9462006B2 (en) 2015-01-21 2016-10-04 Palo Alto Research Center Incorporated Network-layer application-specific trust model
US9699116B2 (en) * 2015-01-26 2017-07-04 Telefonaktiebolaget L M Ericsson (Publ) SDN based interdomain and intradomain traffic engineering
US10129180B2 (en) 2015-01-30 2018-11-13 Nicira, Inc. Transit logical switch within logical router
US9552493B2 (en) 2015-02-03 2017-01-24 Palo Alto Research Center Incorporated Access control framework for information centric networking
US10333840B2 (en) 2015-02-06 2019-06-25 Cisco Technology, Inc. System and method for on-demand content exchange with adaptive naming in information-centric networks
US9876570B2 (en) 2015-02-20 2018-01-23 At&T Intellectual Property I, Lp Guided-wave transmission device with non-fundamental mode propagation and methods for use therewith
US9749013B2 (en) 2015-03-17 2017-08-29 At&T Intellectual Property I, L.P. Method and apparatus for reducing attenuation of electromagnetic waves guided by a transmission medium
US10075401B2 (en) 2015-03-18 2018-09-11 Cisco Technology, Inc. Pending interest table behavior
US10298713B2 (en) * 2015-03-30 2019-05-21 Huawei Technologies Co., Ltd. Distributed content discovery for in-network caching
US10594743B2 (en) 2015-04-03 2020-03-17 Nicira, Inc. Method, apparatus, and system for implementing a content switch
US10038628B2 (en) 2015-04-04 2018-07-31 Nicira, Inc. Route server mode for dynamic routing between logical and physical networks
US9967134B2 (en) 2015-04-06 2018-05-08 Nicira, Inc. Reduction of network churn based on differences in input state
US9705561B2 (en) 2015-04-24 2017-07-11 At&T Intellectual Property I, L.P. Directional coupling device and methods for use therewith
US10224981B2 (en) 2015-04-24 2019-03-05 At&T Intellectual Property I, Lp Passive electrical coupling device and methods for use therewith
US9793954B2 (en) 2015-04-28 2017-10-17 At&T Intellectual Property I, L.P. Magnetic coupling device and methods for use therewith
US9490869B1 (en) 2015-05-14 2016-11-08 At&T Intellectual Property I, L.P. Transmission medium having multiple cores and methods for use therewith
US9748626B2 (en) 2015-05-14 2017-08-29 At&T Intellectual Property I, L.P. Plurality of cables having different cross-sectional shapes which are bundled together to form a transmission medium
US9871282B2 (en) 2015-05-14 2018-01-16 At&T Intellectual Property I, L.P. At least one transmission medium having a dielectric surface that is covered at least in part by a second dielectric
US10650940B2 (en) 2015-05-15 2020-05-12 At&T Intellectual Property I, L.P. Transmission medium having a conductive material and methods for use therewith
US9917341B2 (en) 2015-05-27 2018-03-13 At&T Intellectual Property I, L.P. Apparatus and method for launching electromagnetic waves and for modifying radial dimensions of the propagating electromagnetic waves
US9866309B2 (en) 2015-06-03 2018-01-09 At&T Intellectual Property I, Lp Host node device and methods for use therewith
US9912381B2 (en) 2015-06-03 2018-03-06 At&T Intellectual Property I, Lp Network termination and methods for use therewith
US10812174B2 (en) 2015-06-03 2020-10-20 At&T Intellectual Property I, L.P. Client node device and methods for use therewith
US9913139B2 (en) 2015-06-09 2018-03-06 At&T Intellectual Property I, L.P. Signal fingerprinting for authentication of communicating devices
US9820146B2 (en) 2015-06-12 2017-11-14 At&T Intellectual Property I, L.P. Method and apparatus for authentication and identity management of communicating devices
US10116605B2 (en) 2015-06-22 2018-10-30 Cisco Technology, Inc. Transport stack name scheme and identity management
US10075402B2 (en) 2015-06-24 2018-09-11 Cisco Technology, Inc. Flexible command and control in content centric networks
US9865911B2 (en) 2015-06-25 2018-01-09 At&T Intellectual Property I, L.P. Waveguide system for slot radiating first electromagnetic waves that are combined into a non-fundamental wave mode second electromagnetic wave on a transmission medium
US9509415B1 (en) 2015-06-25 2016-11-29 At&T Intellectual Property I, L.P. Methods and apparatus for inducing a fundamental wave mode on a transmission medium
US9640850B2 (en) 2015-06-25 2017-05-02 At&T Intellectual Property I, L.P. Methods and apparatus for inducing a non-fundamental wave mode on a transmission medium
US10348625B2 (en) 2015-06-30 2019-07-09 Nicira, Inc. Sharing common L2 segment in a virtual distributed router environment
US9628116B2 (en) 2015-07-14 2017-04-18 At&T Intellectual Property I, L.P. Apparatus and methods for transmitting wireless signals
US9882257B2 (en) 2015-07-14 2018-01-30 At&T Intellectual Property I, L.P. Method and apparatus for launching a wave mode that mitigates interference
US10205655B2 (en) 2015-07-14 2019-02-12 At&T Intellectual Property I, L.P. Apparatus and methods for communicating utilizing an antenna array and multiple communication paths
US9853342B2 (en) 2015-07-14 2017-12-26 At&T Intellectual Property I, L.P. Dielectric transmission medium connector and methods for use therewith
US10044409B2 (en) 2015-07-14 2018-08-07 At&T Intellectual Property I, L.P. Transmission medium and methods for use therewith
US10148016B2 (en) 2015-07-14 2018-12-04 At&T Intellectual Property I, L.P. Apparatus and methods for communicating utilizing an antenna array
US9847566B2 (en) 2015-07-14 2017-12-19 At&T Intellectual Property I, L.P. Method and apparatus for adjusting a field of a signal to mitigate interference
US10090606B2 (en) 2015-07-15 2018-10-02 At&T Intellectual Property I, L.P. Antenna system with dielectric array and methods for use therewith
US9871283B2 (en) 2015-07-23 2018-01-16 At&T Intellectual Property I, Lp Transmission medium having a dielectric core comprised of plural members connected by a ball and socket configuration
US9749053B2 (en) 2015-07-23 2017-08-29 At&T Intellectual Property I, L.P. Node device, repeater and methods for use therewith
US9948333B2 (en) 2015-07-23 2018-04-17 At&T Intellectual Property I, L.P. Method and apparatus for wireless communications to mitigate interference
US9912027B2 (en) 2015-07-23 2018-03-06 At&T Intellectual Property I, L.P. Method and apparatus for exchanging communication signals
US10701038B2 (en) 2015-07-27 2020-06-30 Cisco Technology, Inc. Content negotiation in a content centric network
US9735833B2 (en) 2015-07-31 2017-08-15 At&T Intellectual Property I, L.P. Method and apparatus for communications management in a neighborhood network
US9967173B2 (en) 2015-07-31 2018-05-08 At&T Intellectual Property I, L.P. Method and apparatus for authentication and identity management of communicating devices
US9986034B2 (en) 2015-08-03 2018-05-29 Cisco Technology, Inc. Transferring state in content centric network stacks
US9960999B2 (en) * 2015-08-10 2018-05-01 Futurewei Technologies, Inc. Balanced load execution with locally distributed forwarding information base in information centric networks
US10230629B2 (en) 2015-08-11 2019-03-12 Nicira, Inc. Static route configuration for logical router
US10610144B2 (en) 2015-08-19 2020-04-07 Palo Alto Research Center Incorporated Interactive remote patient monitoring and condition management intervention system
US10474654B2 (en) 2015-08-26 2019-11-12 Storagecraft Technology Corporation Structural data transfer over a network
US10075363B2 (en) 2015-08-31 2018-09-11 Nicira, Inc. Authorization for advertised routes among logical routers
US9832123B2 (en) 2015-09-11 2017-11-28 Cisco Technology, Inc. Network named fragments in a content centric network
US9904535B2 (en) 2015-09-14 2018-02-27 At&T Intellectual Property I, L.P. Method and apparatus for distributing software
US10355999B2 (en) 2015-09-23 2019-07-16 Cisco Technology, Inc. Flow control with network named fragments
US10313227B2 (en) 2015-09-24 2019-06-04 Cisco Technology, Inc. System and method for eliminating undetected interest looping in information-centric networks
US9977809B2 (en) 2015-09-24 2018-05-22 Cisco Technology, Inc. Information and data framework in a content centric network
US9641553B2 (en) 2015-09-25 2017-05-02 Intel Corporation Methods and apparatus to facilitate end-user defined policy management
US9769128B2 (en) 2015-09-28 2017-09-19 At&T Intellectual Property I, L.P. Method and apparatus for encryption of communications over a network
US10454820B2 (en) 2015-09-29 2019-10-22 Cisco Technology, Inc. System and method for stateless information-centric networking
US10204122B2 (en) 2015-09-30 2019-02-12 Nicira, Inc. Implementing an interface between tuple and message-driven control entities
US9729197B2 (en) 2015-10-01 2017-08-08 At&T Intellectual Property I, L.P. Method and apparatus for communicating network management traffic over a network
US9876264B2 (en) 2015-10-02 2018-01-23 At&T Intellectual Property I, Lp Communication system, guided wave switch and methods for use therewith
US10263965B2 (en) 2015-10-16 2019-04-16 Cisco Technology, Inc. Encrypted CCNx
US10355367B2 (en) 2015-10-16 2019-07-16 At&T Intellectual Property I, L.P. Antenna structure for exchanging wireless signals
US9794238B2 (en) 2015-10-29 2017-10-17 Cisco Technology, Inc. System for key exchange in a content centric network
US10095535B2 (en) 2015-10-31 2018-10-09 Nicira, Inc. Static route types for logical routers
US10103981B2 (en) 2015-11-01 2018-10-16 Cisco Technology, Inc. BIER forwarding validation
US10009446B2 (en) 2015-11-02 2018-06-26 Cisco Technology, Inc. Header compression for CCN messages using dictionary learning
US9807205B2 (en) 2015-11-02 2017-10-31 Cisco Technology, Inc. Header compression for CCN messages using dictionary
US10021222B2 (en) 2015-11-04 2018-07-10 Cisco Technology, Inc. Bit-aligned header compression for CCN messages using dictionary
US10097521B2 (en) 2015-11-20 2018-10-09 Cisco Technology, Inc. Transparent encryption in a content centric network
US9912776B2 (en) 2015-12-02 2018-03-06 Cisco Technology, Inc. Explicit content deletion commands in a content centric network
US10097346B2 (en) 2015-12-09 2018-10-09 Cisco Technology, Inc. Key catalogs in a content centric network
US10078062B2 (en) 2015-12-15 2018-09-18 Palo Alto Research Center Incorporated Device health estimation by combining contextual information with sensor data
US10257271B2 (en) 2016-01-11 2019-04-09 Cisco Technology, Inc. Chandra-Toueg consensus in a content centric network
US10291474B2 (en) * 2016-01-15 2019-05-14 Tata Consultancy Services Limited Method and system for distributed optimal caching of content over a network
US9949301B2 (en) 2016-01-20 2018-04-17 Palo Alto Research Center Incorporated Methods for fast, secure and privacy-friendly internet connection discovery in wireless networks
US10305864B2 (en) 2016-01-25 2019-05-28 Cisco Technology, Inc. Method and system for interest encryption in a content centric network
US10257065B2 (en) * 2016-02-01 2019-04-09 Huawei Technologies Co., Ltd. Method and system for communication network configuration using virtual link monitoring
US10333846B2 (en) * 2016-02-19 2019-06-25 Citrix Systems, Inc. Systems and methods for routing network packets between multi-core intermediaries
US10043016B2 (en) 2016-02-29 2018-08-07 Cisco Technology, Inc. Method and system for name encryption agreement in a content centric network
US10003507B2 (en) 2016-03-04 2018-06-19 Cisco Technology, Inc. Transport session state protocol
US10742596B2 (en) 2016-03-04 2020-08-11 Cisco Technology, Inc. Method and system for reducing a collision probability of hash-based names using a publisher identifier
US10038633B2 (en) 2016-03-04 2018-07-31 Cisco Technology, Inc. Protocol to query for historical network information in a content centric network
US10051071B2 (en) 2016-03-04 2018-08-14 Cisco Technology, Inc. Method and system for collecting historical network information in a content centric network
US9832116B2 (en) 2016-03-14 2017-11-28 Cisco Technology, Inc. Adjusting entries in a forwarding information base in a content centric network
US10212196B2 (en) 2016-03-16 2019-02-19 Cisco Technology, Inc. Interface discovery and authentication in a name-based network
US11436656B2 (en) 2016-03-18 2022-09-06 Palo Alto Research Center Incorporated System and method for a real-time egocentric collaborative filter on large datasets
US10067948B2 (en) 2016-03-18 2018-09-04 Cisco Technology, Inc. Data deduping in content centric networking manifests
US10091330B2 (en) 2016-03-23 2018-10-02 Cisco Technology, Inc. Interest scheduling by an information and data framework in a content centric network
US10033639B2 (en) 2016-03-25 2018-07-24 Cisco Technology, Inc. System and method for routing packets in a content centric network using anonymous datagrams
US10129360B2 (en) * 2016-03-28 2018-11-13 The Boeing Company Unified data networking across heterogeneous networks
US10320760B2 (en) 2016-04-01 2019-06-11 Cisco Technology, Inc. Method and system for mutating and caching content in a content centric network
US9930146B2 (en) 2016-04-04 2018-03-27 Cisco Technology, Inc. System and method for compressing content centric networking messages
US10425503B2 (en) 2016-04-07 2019-09-24 Cisco Technology, Inc. Shared pending interest table in a content centric network
US10027578B2 (en) 2016-04-11 2018-07-17 Cisco Technology, Inc. Method and system for routable prefix queries in a content centric network
US20170310583A1 (en) * 2016-04-22 2017-10-26 Cisco Technology, Inc. Segment routing for load balancing
US10333849B2 (en) 2016-04-28 2019-06-25 Nicira, Inc. Automatic configuration of logical routers on edge nodes
US10484515B2 (en) 2016-04-29 2019-11-19 Nicira, Inc. Implementing logical metadata proxy servers in logical networks
US10841273B2 (en) 2016-04-29 2020-11-17 Nicira, Inc. Implementing logical DHCP servers in logical networks
US11019167B2 (en) 2016-04-29 2021-05-25 Nicira, Inc. Management of update queues for network controller
US10091161B2 (en) 2016-04-30 2018-10-02 Nicira, Inc. Assignment of router ID for logical routers
US10404450B2 (en) 2016-05-02 2019-09-03 Cisco Technology, Inc. Schematized access control in a content centric network
US10320675B2 (en) 2016-05-04 2019-06-11 Cisco Technology, Inc. System and method for routing packets in a stateless content centric network
US9846553B2 (en) 2016-05-04 2017-12-19 Exablox Corporation Organization and management of key-value stores
US10547589B2 (en) 2016-05-09 2020-01-28 Cisco Technology, Inc. System for implementing a small computer systems interface protocol over a content centric network
US10063414B2 (en) 2016-05-13 2018-08-28 Cisco Technology, Inc. Updating a transport stack in a content centric network
US10084764B2 (en) 2016-05-13 2018-09-25 Cisco Technology, Inc. System for a secure encryption proxy in a content centric network
US10103989B2 (en) 2016-06-13 2018-10-16 Cisco Technology, Inc. Content object return messages in a content centric network
US10305865B2 (en) 2016-06-21 2019-05-28 Cisco Technology, Inc. Permutation-based content encryption with manifests in a content centric network
US10148572B2 (en) 2016-06-27 2018-12-04 Cisco Technology, Inc. Method and system for interest groups in a content centric network
US10560320B2 (en) 2016-06-29 2020-02-11 Nicira, Inc. Ranking of gateways in cluster
US10153973B2 (en) 2016-06-29 2018-12-11 Nicira, Inc. Installation of routing tables for logical router in route server mode
US10009266B2 (en) 2016-07-05 2018-06-26 Cisco Technology, Inc. Method and system for reference counted pending interest tables in a content centric network
US9992097B2 (en) 2016-07-11 2018-06-05 Cisco Technology, Inc. System and method for piggybacking routing information in interests in a content centric network
US10122624B2 (en) 2016-07-25 2018-11-06 Cisco Technology, Inc. System and method for ephemeral entries in a forwarding information base in a content centric network
US10069729B2 (en) 2016-08-08 2018-09-04 Cisco Technology, Inc. System and method for throttling traffic based on a forwarding information base in a content centric network
US10956412B2 (en) 2016-08-09 2021-03-23 Cisco Technology, Inc. Method and system for conjunctive normal form attribute matching in a content centric network
US9860075B1 (en) 2016-08-26 2018-01-02 At&T Intellectual Property I, L.P. Method and communication node for broadband distribution
US10454758B2 (en) 2016-08-31 2019-10-22 Nicira, Inc. Edge node cluster network redundancy and fast convergence using an underlay anycast VTEP IP
US10033642B2 (en) 2016-09-19 2018-07-24 Cisco Technology, Inc. System and method for making optimal routing decisions based on device-specific parameters in a content centric network
US10366368B2 (en) * 2016-09-22 2019-07-30 Microsoft Technology Licensing, Llc Search prioritization among users in communication platforms
US10341236B2 (en) 2016-09-30 2019-07-02 Nicira, Inc. Anycast edge service gateways
US10212248B2 (en) 2016-10-03 2019-02-19 Cisco Technology, Inc. Cache management on high availability routers in a content centric network
US10447805B2 (en) 2016-10-10 2019-10-15 Cisco Technology, Inc. Distributed consensus in a content centric network
US10811767B2 (en) 2016-10-21 2020-10-20 At&T Intellectual Property I, L.P. System and dielectric antenna with convex dielectric radome
US10374316B2 (en) 2016-10-21 2019-08-06 At&T Intellectual Property I, L.P. System and dielectric antenna with non-uniform dielectric
US10312567B2 (en) 2016-10-26 2019-06-04 At&T Intellectual Property I, L.P. Launcher with planar strip antenna and methods for use therewith
US10135948B2 (en) 2016-10-31 2018-11-20 Cisco Technology, Inc. System and method for process migration in a content centric network
US10225025B2 (en) 2016-11-03 2019-03-05 At&T Intellectual Property I, L.P. Method and apparatus for detecting a fault in a communication system
US10291334B2 (en) 2016-11-03 2019-05-14 At&T Intellectual Property I, L.P. System for detecting a fault in a communication system
US10224634B2 (en) 2016-11-03 2019-03-05 At&T Intellectual Property I, L.P. Methods and apparatus for adjusting an operational characteristic of an antenna
US10498044B2 (en) 2016-11-03 2019-12-03 At&T Intellectual Property I, L.P. Apparatus for configuring a surface of an antenna
EP3539261B1 (en) 2016-11-14 2022-08-10 Temple University Of The Commonwealth System Of Higher Education System and method for network-scale reliable parallel computing
US10243851B2 (en) 2016-11-21 2019-03-26 Cisco Technology, Inc. System and method for forwarder connection information in a content centric network
US10535928B2 (en) 2016-11-23 2020-01-14 At&T Intellectual Property I, L.P. Antenna system and methods for use therewith
US10340601B2 (en) 2016-11-23 2019-07-02 At&T Intellectual Property I, L.P. Multi-antenna system and methods for use therewith
US10178445B2 (en) 2016-11-23 2019-01-08 At&T Intellectual Property I, L.P. Methods, devices, and systems for load balancing between a plurality of waveguides
US10090594B2 (en) 2016-11-23 2018-10-02 At&T Intellectual Property I, L.P. Antenna system having structural configurations for assembly
US10340603B2 (en) 2016-11-23 2019-07-02 At&T Intellectual Property I, L.P. Antenna system having shielded structural configurations for assembly
US10361489B2 (en) 2016-12-01 2019-07-23 At&T Intellectual Property I, L.P. Dielectric dish antenna system and methods for use therewith
US10305190B2 (en) 2016-12-01 2019-05-28 At&T Intellectual Property I, L.P. Reflecting dielectric antenna system and methods for use therewith
US10020844B2 (en) 2016-12-06 2018-07-10 T&T Intellectual Property I, L.P. Method and apparatus for broadcast communication via guided waves
US10326494B2 (en) 2016-12-06 2019-06-18 At&T Intellectual Property I, L.P. Apparatus for measurement de-embedding and methods for use therewith
US10727599B2 (en) 2016-12-06 2020-07-28 At&T Intellectual Property I, L.P. Launcher with slot antenna and methods for use therewith
US10439675B2 (en) 2016-12-06 2019-10-08 At&T Intellectual Property I, L.P. Method and apparatus for repeating guided wave communication signals
US10135145B2 (en) 2016-12-06 2018-11-20 At&T Intellectual Property I, L.P. Apparatus and methods for generating an electromagnetic wave along a transmission medium
US10694379B2 (en) 2016-12-06 2020-06-23 At&T Intellectual Property I, L.P. Waveguide system with device-based authentication and methods for use therewith
US10819035B2 (en) 2016-12-06 2020-10-27 At&T Intellectual Property I, L.P. Launcher with helical antenna and methods for use therewith
US10382976B2 (en) 2016-12-06 2019-08-13 At&T Intellectual Property I, L.P. Method and apparatus for managing wireless communications based on communication paths and network device positions
US10755542B2 (en) 2016-12-06 2020-08-25 At&T Intellectual Property I, L.P. Method and apparatus for surveillance via guided wave communication
US9927517B1 (en) 2016-12-06 2018-03-27 At&T Intellectual Property I, L.P. Apparatus and methods for sensing rainfall
US10637149B2 (en) 2016-12-06 2020-04-28 At&T Intellectual Property I, L.P. Injection molded dielectric antenna and methods for use therewith
US10359749B2 (en) 2016-12-07 2019-07-23 At&T Intellectual Property I, L.P. Method and apparatus for utilities management via guided wave communication
US10139820B2 (en) 2016-12-07 2018-11-27 At&T Intellectual Property I, L.P. Method and apparatus for deploying equipment of a communication system
US10547348B2 (en) 2016-12-07 2020-01-28 At&T Intellectual Property I, L.P. Method and apparatus for switching transmission mediums in a communication system
US10027397B2 (en) 2016-12-07 2018-07-17 At&T Intellectual Property I, L.P. Distributed antenna system and methods for use therewith
US10389029B2 (en) 2016-12-07 2019-08-20 At&T Intellectual Property I, L.P. Multi-feed dielectric antenna system with core selection and methods for use therewith
US10168695B2 (en) 2016-12-07 2019-01-01 At&T Intellectual Property I, L.P. Method and apparatus for controlling an unmanned aircraft
US9893795B1 (en) 2016-12-07 2018-02-13 At&T Intellectual Property I, Lp Method and repeater for broadband distribution
US10243270B2 (en) 2016-12-07 2019-03-26 At&T Intellectual Property I, L.P. Beam adaptive multi-feed dielectric antenna system and methods for use therewith
US10446936B2 (en) 2016-12-07 2019-10-15 At&T Intellectual Property I, L.P. Multi-feed dielectric antenna system and methods for use therewith
US10326689B2 (en) 2016-12-08 2019-06-18 At&T Intellectual Property I, L.P. Method and system for providing alternative communication paths
US10103422B2 (en) 2016-12-08 2018-10-16 At&T Intellectual Property I, L.P. Method and apparatus for mounting network devices
US10389037B2 (en) 2016-12-08 2019-08-20 At&T Intellectual Property I, L.P. Apparatus and methods for selecting sections of an antenna array and use therewith
US10938108B2 (en) 2016-12-08 2021-03-02 At&T Intellectual Property I, L.P. Frequency selective multi-feed dielectric antenna system and methods for use therewith
US10411356B2 (en) 2016-12-08 2019-09-10 At&T Intellectual Property I, L.P. Apparatus and methods for selectively targeting communication devices with an antenna array
US9998870B1 (en) 2016-12-08 2018-06-12 At&T Intellectual Property I, L.P. Method and apparatus for proximity sensing
US10069535B2 (en) 2016-12-08 2018-09-04 At&T Intellectual Property I, L.P. Apparatus and methods for launching electromagnetic waves having a certain electric field structure
US10777873B2 (en) 2016-12-08 2020-09-15 At&T Intellectual Property I, L.P. Method and apparatus for mounting network devices
US10601494B2 (en) 2016-12-08 2020-03-24 At&T Intellectual Property I, L.P. Dual-band communication device and method for use therewith
US10916969B2 (en) 2016-12-08 2021-02-09 At&T Intellectual Property I, L.P. Method and apparatus for providing power using an inductive coupling
US10530505B2 (en) 2016-12-08 2020-01-07 At&T Intellectual Property I, L.P. Apparatus and methods for launching electromagnetic waves along a transmission medium
US9911020B1 (en) 2016-12-08 2018-03-06 At&T Intellectual Property I, L.P. Method and apparatus for tracking via a radio frequency identification device
US10264586B2 (en) 2016-12-09 2019-04-16 At&T Mobility Ii Llc Cloud-based packet controller and methods for use therewith
US9838896B1 (en) 2016-12-09 2017-12-05 At&T Intellectual Property I, L.P. Method and apparatus for assessing network coverage
US10340983B2 (en) 2016-12-09 2019-07-02 At&T Intellectual Property I, L.P. Method and apparatus for surveying remote sites via guided wave communications
US10582002B2 (en) * 2016-12-09 2020-03-03 Arris Enterprises Llc Cache proxy for a network management information base
US10742746B2 (en) 2016-12-21 2020-08-11 Nicira, Inc. Bypassing a load balancer in a return path of network traffic
US10237123B2 (en) 2016-12-21 2019-03-19 Nicira, Inc. Dynamic recovery from a split-brain failure in edge nodes
US10212071B2 (en) 2016-12-21 2019-02-19 Nicira, Inc. Bypassing a load balancer in a return path of network traffic
US10616045B2 (en) 2016-12-22 2020-04-07 Nicira, Inc. Migration of centralized routing components of logical router
CN108243104B (en) * 2016-12-23 2021-03-16 中兴通讯股份有限公司 Multi-layer LSP control method and device
US20180227220A1 (en) * 2017-02-07 2018-08-09 Microsoft Technology Licensing, Llc Router Cooperation
CN106803810B (en) * 2017-02-08 2020-06-16 苏州浪潮智能科技有限公司 CC-NUMA system and method for reducing monitoring overhead
US9973940B1 (en) 2017-02-27 2018-05-15 At&T Intellectual Property I, L.P. Apparatus and methods for dynamic impedance matching of a guided wave launcher
US10805239B2 (en) 2017-03-07 2020-10-13 Nicira, Inc. Visualization of path between logical network endpoints
US10298293B2 (en) 2017-03-13 2019-05-21 At&T Intellectual Property I, L.P. Apparatus of communication utilizing wireless network devices
US20190044809A1 (en) 2017-08-30 2019-02-07 Intel Corporation Technologies for managing a flexible host interface of a network interface controller
US10608887B2 (en) 2017-10-06 2020-03-31 Nicira, Inc. Using packet tracing tool to automatically execute packet capture operations
US10693733B2 (en) * 2017-10-27 2020-06-23 Cisco Technology, Inc. Horizontal scaling of fabric networks
US10805181B2 (en) 2017-10-29 2020-10-13 Nicira, Inc. Service operation chaining
US20190129882A1 (en) * 2017-10-30 2019-05-02 NVXL Technology, Inc. Multi-connector module design for performance scalability
US10511459B2 (en) 2017-11-14 2019-12-17 Nicira, Inc. Selection of managed forwarding element for bridge spanning multiple datacenters
US10374827B2 (en) 2017-11-14 2019-08-06 Nicira, Inc. Identifier that maps to different networks at different datacenters
US11012420B2 (en) 2017-11-15 2021-05-18 Nicira, Inc. Third-party service chaining using packet encapsulation in a flow-based forwarding element
US10797910B2 (en) 2018-01-26 2020-10-06 Nicira, Inc. Specifying and utilizing paths through a network
EP3527996B1 (en) * 2018-02-19 2023-03-29 Siemens Aktiengesellschaft Measuring system and method for measuring electrical signals
US10805192B2 (en) 2018-03-27 2020-10-13 Nicira, Inc. Detecting failure of layer 2 service using broadcast messages
US11411998B2 (en) * 2018-05-01 2022-08-09 Cisco Technology, Inc. Reputation-based policy in enterprise fabric architectures
US10742553B1 (en) * 2018-05-29 2020-08-11 Juniper Networks, Inc. Forwarding information base caching
US11258760B1 (en) 2018-06-22 2022-02-22 Vmware, Inc. Stateful distributed web application firewall
US11184327B2 (en) 2018-07-05 2021-11-23 Vmware, Inc. Context aware middlebox services at datacenter edges
US10999220B2 (en) 2018-07-05 2021-05-04 Vmware, Inc. Context aware middlebox services at datacenter edge
US10887221B2 (en) 2018-08-28 2021-01-05 Mediatek Inc. Methods of synchronization mode of flow table and apparatus using the same
US11595250B2 (en) 2018-09-02 2023-02-28 Vmware, Inc. Service insertion at logical network gateway
US10944673B2 (en) 2018-09-02 2021-03-09 Vmware, Inc. Redirection of data messages at logical network gateway
US10432405B1 (en) * 2018-09-05 2019-10-01 Accelor Ltd. Systems and methods for accelerating transaction verification by performing cryptographic computing tasks in parallel
US10404473B1 (en) 2018-09-05 2019-09-03 Accelor Ltd. Systems and methods for processing transaction verification operations in decentralized applications
US10333694B1 (en) 2018-10-15 2019-06-25 Accelor Ltd. Systems and methods for secure smart contract execution via read-only distributed ledger
US11362889B2 (en) * 2018-10-15 2022-06-14 Cdw Llc System and method for automated information technology services management
US10771318B1 (en) 2018-10-24 2020-09-08 Vmware, Inc High availability on a distributed networking platform
US10931560B2 (en) 2018-11-23 2021-02-23 Vmware, Inc. Using route type to determine routing protocol behavior
US10735541B2 (en) 2018-11-30 2020-08-04 Vmware, Inc. Distributed inline proxy
US10797998B2 (en) 2018-12-05 2020-10-06 Vmware, Inc. Route server for distributed routers using hierarchical routing protocol
US10938788B2 (en) 2018-12-12 2021-03-02 Vmware, Inc. Static routes for policy-based VPN
US11249784B2 (en) * 2019-02-22 2022-02-15 Vmware, Inc. Specifying service chains
US11665244B2 (en) 2019-07-11 2023-05-30 Kyndryl, Inc. Selecting user profiles on platforms based on optimal persona of a user in a given context
WO2021021173A1 (en) * 2019-07-31 2021-02-04 Huawei Technologies Co., Ltd. Transporting a multi-transport network context-identifier (mtnc-id) across multiple domains
CN116232990A (en) 2019-07-31 2023-06-06 华为技术有限公司 Transmitting MTNC-ID on data plane supporting SRv to enable 5G transmission
CN114128228B (en) 2019-07-31 2023-06-06 华为技术有限公司 Transmitting MTNC-ID through SRv head to realize 5G transmission
US11095480B2 (en) 2019-08-30 2021-08-17 Vmware, Inc. Traffic optimization using distributed edge services
US11283717B2 (en) 2019-10-30 2022-03-22 Vmware, Inc. Distributed fault tolerant service chain
US11140218B2 (en) 2019-10-30 2021-10-05 Vmware, Inc. Distributed service chain across multiple clouds
US11641305B2 (en) 2019-12-16 2023-05-02 Vmware, Inc. Network diagnosis in software-defined networking (SDN) environments
US11223494B2 (en) 2020-01-13 2022-01-11 Vmware, Inc. Service insertion for multicast traffic at boundary
US11283699B2 (en) 2020-01-17 2022-03-22 Vmware, Inc. Practical overlay network latency measurement in datacenter
US11659061B2 (en) 2020-01-20 2023-05-23 Vmware, Inc. Method of adjusting service function chains to improve network performance
US11153406B2 (en) 2020-01-20 2021-10-19 Vmware, Inc. Method of network performance visualization of service function chains
US11483242B2 (en) * 2020-03-26 2022-10-25 Juniper Networks, Inc. Seamless end-to-end segment routing across metropolitan area networks
US11368387B2 (en) 2020-04-06 2022-06-21 Vmware, Inc. Using router as service node through logical service plane
US11444996B2 (en) * 2020-04-20 2022-09-13 Cisco Technology, Inc. Two-level cache architecture for live video streaming through hybrid ICN
US11516136B2 (en) * 2020-06-04 2022-11-29 Juniper Networks, Inc. Distributed node processing of network traffic
US11616755B2 (en) 2020-07-16 2023-03-28 Vmware, Inc. Facilitating distributed SNAT service
US11606294B2 (en) 2020-07-16 2023-03-14 Vmware, Inc. Host computer configured to facilitate distributed SNAT service
US11611613B2 (en) 2020-07-24 2023-03-21 Vmware, Inc. Policy-based forwarding to a load balancer of a load balancing cluster
US11451413B2 (en) 2020-07-28 2022-09-20 Vmware, Inc. Method for advertising availability of distributed gateway service and machines at host computer
US11902050B2 (en) 2020-07-28 2024-02-13 VMware LLC Method for providing distributed gateway service at host computer
US11196628B1 (en) 2020-07-29 2021-12-07 Vmware, Inc. Monitoring container clusters
US11558426B2 (en) 2020-07-29 2023-01-17 Vmware, Inc. Connection tracking for container cluster
US11570090B2 (en) 2020-07-29 2023-01-31 Vmware, Inc. Flow tracing operation in container cluster
US11734043B2 (en) 2020-12-15 2023-08-22 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11611625B2 (en) 2020-12-15 2023-03-21 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11736436B2 (en) 2020-12-31 2023-08-22 Vmware, Inc. Identifying routes with indirect addressing in a datacenter
US11336533B1 (en) 2021-01-08 2022-05-17 Vmware, Inc. Network visualization of correlations between logical elements and associated physical elements
WO2022177598A1 (en) * 2021-02-18 2022-08-25 Futurewei Technologies Co., Ltd. Resource aware forwarding in the network with abstract destination address and semantic addressing
US11687210B2 (en) 2021-07-05 2023-06-27 Vmware, Inc. Criteria-based expansion of group nodes in a network topology visualization
US11711278B2 (en) 2021-07-24 2023-07-25 Vmware, Inc. Visualization of flow trace operation across multiple sites
US11706109B2 (en) 2021-09-17 2023-07-18 Vmware, Inc. Performance of traffic monitoring actions
CN113938422B (en) * 2021-10-12 2023-02-24 上海淇玥信息技术有限公司 Flow distribution method and device and electronic equipment
CN115643558B (en) * 2022-12-13 2023-03-03 亚信科技(中国)有限公司 Data processing method and device, electronic equipment and storage medium

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020068584A1 (en) * 2000-12-05 2002-06-06 Nortel Networks Limited Method and system for transmitting data to a mobile device
US6535518B1 (en) * 2000-02-10 2003-03-18 Simpletech Inc. System for bypassing a server to achieve higher throughput between data network and data storage system
US20040114579A1 (en) * 2002-12-11 2004-06-17 Jeyhan Karaoguz Media exchange network supporting multiple broadband network and service provider infrastructures
US7096210B1 (en) 2000-03-10 2006-08-22 Honeywell International Inc. Trainable, extensible, automated data-to-knowledge translator
US7120148B1 (en) * 2002-02-12 2006-10-10 Cisco Technology, Inc. System and method for providing source awareness in a wireless application protocol network environment
US7209977B2 (en) * 2001-10-01 2007-04-24 International Business Machines Corporation Method and apparatus for content-aware web switching
US20080192740A1 (en) 2005-03-04 2008-08-14 Nokia Siemens Networks Gmbh & Co. Kg Processing Realtime Media Streams
US20080301320A1 (en) * 2007-05-31 2008-12-04 Morris Robert P Method And System For Managing Communication Protocol Data Based On MIME Types
US7469310B2 (en) 2002-02-22 2008-12-23 Broadcom Corporation Network switch architecture for processing packets independent of media type of connected ports
US7509673B2 (en) 2003-06-06 2009-03-24 Microsoft Corporation Multi-layered firewall architecture
US20110040688A1 (en) * 2007-08-28 2011-02-17 Deutsche Telekom Ag Method, system and computer program product for the decentralized distribution of digital content
US20110093609A1 (en) * 2008-06-16 2011-04-21 Rolf Blom Sending Secure Media Streams
US7948986B1 (en) 2009-02-02 2011-05-24 Juniper Networks, Inc. Applying services within MPLS networks
US7961739B2 (en) 2005-07-21 2011-06-14 Genband Us Llc Systems and methods for voice over multiprotocol label switching
US20110161409A1 (en) * 2008-06-02 2011-06-30 Azuki Systems, Inc. Media mashup system
US8516193B1 (en) * 2006-03-30 2013-08-20 Pegasystems Inc. Techniques for content-based caching in a computer system
US9246801B1 (en) * 2008-12-12 2016-01-26 Juniper Networks, Inc. Transmitting packet label contexts within computer networks
US9882954B2 (en) * 2009-03-31 2018-01-30 Snap Inc. Selective partial updates of web content

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6535518B1 (en) * 2000-02-10 2003-03-18 Simpletech Inc. System for bypassing a server to achieve higher throughput between data network and data storage system
US7096210B1 (en) 2000-03-10 2006-08-22 Honeywell International Inc. Trainable, extensible, automated data-to-knowledge translator
US20020068584A1 (en) * 2000-12-05 2002-06-06 Nortel Networks Limited Method and system for transmitting data to a mobile device
US7209977B2 (en) * 2001-10-01 2007-04-24 International Business Machines Corporation Method and apparatus for content-aware web switching
US7120148B1 (en) * 2002-02-12 2006-10-10 Cisco Technology, Inc. System and method for providing source awareness in a wireless application protocol network environment
US7469310B2 (en) 2002-02-22 2008-12-23 Broadcom Corporation Network switch architecture for processing packets independent of media type of connected ports
US20040114579A1 (en) * 2002-12-11 2004-06-17 Jeyhan Karaoguz Media exchange network supporting multiple broadband network and service provider infrastructures
US7509673B2 (en) 2003-06-06 2009-03-24 Microsoft Corporation Multi-layered firewall architecture
US20080192740A1 (en) 2005-03-04 2008-08-14 Nokia Siemens Networks Gmbh & Co. Kg Processing Realtime Media Streams
US7961739B2 (en) 2005-07-21 2011-06-14 Genband Us Llc Systems and methods for voice over multiprotocol label switching
US8516193B1 (en) * 2006-03-30 2013-08-20 Pegasystems Inc. Techniques for content-based caching in a computer system
US20080301320A1 (en) * 2007-05-31 2008-12-04 Morris Robert P Method And System For Managing Communication Protocol Data Based On MIME Types
US20110040688A1 (en) * 2007-08-28 2011-02-17 Deutsche Telekom Ag Method, system and computer program product for the decentralized distribution of digital content
US20110161409A1 (en) * 2008-06-02 2011-06-30 Azuki Systems, Inc. Media mashup system
US20110093609A1 (en) * 2008-06-16 2011-04-21 Rolf Blom Sending Secure Media Streams
US9246801B1 (en) * 2008-12-12 2016-01-26 Juniper Networks, Inc. Transmitting packet label contexts within computer networks
US7948986B1 (en) 2009-02-02 2011-05-24 Juniper Networks, Inc. Applying services within MPLS networks
US9882954B2 (en) * 2009-03-31 2018-01-30 Snap Inc. Selective partial updates of web content

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
"Why do we need a Content-Centric Furture Internet? Proposals towards Content-Centric Internet Architectures," Created by the Future Content Networks Goup, May 2009, 23 pages, Prague.
Dobrescu, M., et al., "RouteBricks: Exploiting Parallelism To Scale Software Routers," Proceedings of the 22nd ACM Symposium on Operating Systems Principles, Oct. 11-14, 2009, 14 pages, Big Sky, MT.
Jacobson, V., "Introduction to Content Centric Networking," FISS 09, Jun. 22, 2009, 96 pages, Bremen, Germany.
Koponen, T., et al., "A Data-Oriented (and Beyond) Network Architecture," SIGCOMM 07, Aug. 27-31, 2007, 12 pages, Kyoto, Japan.
Luciani et al., RFC 2334: Server Cache Synchronization Protocol, Apr. 1998, The Internet Society, pp. 1-40. (Year: 1998). *

Also Published As

Publication number Publication date
US8504718B2 (en) 2013-08-06
US20110271007A1 (en) 2011-11-03
US9319311B2 (en) 2016-04-19
US20130322451A1 (en) 2013-12-05

Similar Documents

Publication Publication Date Title
USRE49943E1 (en) System and method for a context layer switch
US11693716B2 (en) Independent datastore in a network routing environment
Xylomenos et al. A survey of information-centric networking research
Fang et al. A survey of energy-efficient caching in information-centric networking
US7920572B2 (en) Modifying operation of peer-to-peer networks based on integrating network routing information
Majeed et al. Multimedia streaming in information-centric networking: A survey and future perspectives
EP2230802B1 (en) A method and apparatus for maintaining route information
US20130041982A1 (en) Method and node for acquiring content and content network
Barakabitze et al. A survey on naming, name resolution and data routing in information centric networking (ICN)
Pavlou et al. Internet-scale content mediation in information-centric networks
Alahmri et al. Efficient pooling and collaborative cache management for NDN/IoT networks
EP2433412B1 (en) Limiting storage messages in peer to peer network
JP4146373B2 (en) Service selection method and service selection system in dynamic network
KR20130033253A (en) Overlay multicast system and its method to provide multiple content distribution in distributed content nodes
Banerjee et al. The survey, research challenges, and opportunities in ICN
Hassan et al. A taxonomy of information-centric networking architectures based on data routing and name resolution approaches
Ma et al. Source routing over protocol-oblivious forwarding for named data networking
Chai et al. Towards information-centric networking: research, standardization, business and migration challenges
Wang et al. NCDN: A Node‐Failure Resilient CDN Solution with Reinforcement Learning Optimization
Fekih et al. Secure SDN-based in-network caching scheme for CCN
Alghamdi et al. Fog-Based CDN Architecture Using ICN Approach for Efficient Large-Scale Content Distribution
Karrakchou et al. A survey of routing mechanisms in ICNs
Zhang et al. Centaur: A evolutionary design of hybrid ndn/ip transport architecture for streaming application
Benseny et al. Feasibility of IP-over-ICN
Yang et al. Multi-path Routing Policy for Content Distribution in Content Network

Legal Events

Date Code Title Description
FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY