Content centric networking
This article contains content that is written like an advertisement. (November 2016)
This article needs additional citations for verification. (August 2017)
In contrast to IP-based, host-oriented, Internet architecture, Content-Centric Networking (CCN) emphasizes content by making it directly addressable and routable. Endpoints communicate based on named data instead of IP addresses. CCN is characterized by the basic exchange of content request messages (called "Interests") and content return messages (called "Content Objects"). It is considered an information-centric networking (ICN) architecture.
The goals of CCN are to provide a more secure, flexible, and scalable network, thereby addressing the Internet's modern-day requirements for protected content distribution on a massive scale to a diverse set of end devices. CCN embodies a security model that explicitly secures individual pieces of content rather than securing the connection or "pipe." It provides additional flexibility using data names instead of host names (IP addresses). Additionally, named and secured content resides in distributed caches automatically populated on demand or selectively pre-populated. When requested by name, CCN delivers named content to the user from the nearest cache, traversing fewer network hops, eliminating redundant requests, and consuming fewer resources overall. CCN began as a research project at the Palo Alto Research Center (PARC) in 2007. The first software release (CCNx 0.1) was made available in 2009. CCN is the ancestor of related approaches, including named data networking. CCN technology and its open-source code base were acquired by Cisco in February 2017.
The principles behind information-centric networks were first described in the original 17 rules of Ted Nelson's Project Xanadu in 1979. In 2002, Brent Baccala submitted an Internet-Draft differentiating between connection-oriented and data-oriented networking and suggested that the Internet web architecture was rapidly becoming more data-oriented. In 2006, the DONA project at UC Berkeley and ICSI proposed an information-centric network architecture, which improved TRIAD by incorporating security (authenticity) and persistence as first-class primitives in the architecture. On August 30, 2006, PARC Research Fellow Van Jacobson gave a talk titled "A new way to look at Networking" at Google. The CCN project was officially launched at PARC in 2007. In 2009, PARC announced the CCNx project (Content-Centric Network), publishing the interoperability specifications and an open-source implementation on the Project CCNx website on September 21, 2009. The original CCN design was described in a paper published at the International Conference on emerging Networking EXperiments and Technologies (CoNEXT) in December 2009.
Annual CCNx Community meetings were held in 2011, 2012, 2013 and 2015.
The protocol specification for CCNx 1.0 has been made available for comment and discussion. Work on CCNx happens openly in the ICNRG IRTF research group.
The CCNx specification was published in some IETF drafts. The specifications included:
Seamless data integration within an open-run environment was proposed as a major contributing factor in protecting the security of cloud-based analytics and key network encryption. The driving force in adopting these heuristics was twofold: Batch-interrupted data streams remaining confined to an optimal run environment, and secure shared cloud access depending upon integrative analytic processes.
The CCNx software was available on GitHub.
Motivation and benefits
The functional goal of the Internet Protocol as conceived and created in the 1970s was to enable two machines, one comprising resources and the other desiring access to those resources, to have a conversation with each other. The operating principle was to assign addresses to end points, thereby enabling these end points to locate and connect with one another.
Since those early days, there have been fundamental changes in the way the Internet is used — from the proliferation of social networking services to viewing and sharing digital content such as videos, photographs, documents, etc. Instead of providing basic connectivity, the Internet has become largely a distribution network with massive amounts of video and web page content flowing from content providers to viewers. Increasingly, today's internet users demand faster, more efficient, and more secure access to content without concern to where that content might be located.
Networks are also used in many environments where the traditional TCP/IP communication model doesn't fit. The Internet of Things (IoT) and sensor networks are environments where the source-destination communication model doesn't always provide the best solution.
CCN was designed to work in many environments from high-speed data centers to resource-constrained sensors. CCN aims to be:
- Secure - The CCN communication model secures data and not the communication pipe between two specific end hosts. However, ubiquitous content caching and the absence of a secure communication pipe between end hosts introduce the challenge to content protection against unauthorized access, which requires extra care and solutions. 
- Flexible - CCN uses names to communicate. Names can be location independent and are much more adaptable than IP addresses. Network elements can make more advanced choices based on the named requests and data.
- Scalable - CCN enables the network to scale by allowing caching, enabling native multicast traffic, providing native load balancing, and facilitating resource planning.
Content Object messages are named payloads that are network-sized chunks of data. Names are a hierarchical series of binary name segments that are assigned to Content Objects by content publishers. Signatures are cryptographic bindings between a name, a payload, and the Key Id of the publisher. This is used for provenance. Interest messages are requests for Content Objects that match the name along with some optional restrictions on that object.
The core protocol operates as follows: Consumers request content by sending an Interest message with the name of the desired content. The network routes the interest based on the name using longest prefix match. The interest leaves the state as it traverses the network. This state is stored in the Pending Interest Table (PIT). When a match is found (when an Interest matches a Content Object) the content is sent back on the reverse path of the Interest, following the PIT state created by the Interest.
Because the content is self-identifiable (via the name and the security binding) any Content Object can be cached. Interest messages may be matched against caches along the way, not only at the publishers.
Distributed caching within a content-centric network is also possible, requiring multi-functional access parameters across the database. This essentially enables shared network encryption algorithms to employ role-based access limitations to users based on defined authorization levels. 
Interests match Content Objects based on name prefixes. For example, an Interest for /a/b would match a Content Object named /a/b/c/d or /a/b. Interests include restrictions in the form of selectors. These help the network select which of the possible prefix matches are actual matches. For example, an Interest might exclude certain names, ask for a minimum or a maximum number of extra name segments, etc.
Content Objects have an implicit final name component that is equal to the hash of the Content Object. This may be used for matching to a name.
Packet encoding is done using CCNB (a proprietary format based on a type of binary XML).
The last version of this branch is 0.8.2 Software is available under a GPL license. Specifications and documentation are also available.
CCNx 1.x differs from CCNx 0.x in the following ways:
Interests match Content Objects on exact names, not name prefixes. Therefore, an Interest for /a/b/ will only match a Content Object with the name /a/b. Interests can restrict matches on the publisher KeyID or the object's ContentObjectHash.
A nested type–length–value (TLV) format is used to encode all messages on the wire. Each message is composed of a set of packet headers and a protocol message that includes the name, the content (or payload), and information used to cryptographically validate the message – all contained in nested TLVs.
The specification of CCNx 1.0 is available at: http://blogs.parc.com/ccnx/specifications/
- Named data networking is an NSF funded project based on the original CCNx 0.x code.
- CCN-lite is a lightweight version of CCNx functionally interoperable with CCN 0.x.
- GreenICN is a project focused on disaster recovery scenarios using an Information Centric Networking paradigm.
- Information-centric networking
- Named data networking
- Information-centric networking caching policies
- ^ CCNx Current Code Release, Retrieved 1 August 2014.
- ^ Cisco Acquires PARC’s Content Centric Networking Platform Archived 2018-07-11 at the Wayback Machine, Retrieved 1 March 2017.
- ^ Baccala, Brent (Aug 2002). "Data Oriented Networking"
- ^ Koponen, Teemu; Chawla, Mohit; Chun, Byung-Gon; Ermolinskiy, Andrey; Kim, Kye Hyun; Shenker, Scott; and Stoica, Ion. (August 2007). "A data-oriented (and beyond) network architecture." SIGCOMM Comput. Commun. Rev. 37, 4, 181-192.
- ^ TRIAD project page Archived 2016-03-05 at the Wayback Machine, Stanford University Distributed Systems Group, Retrieved 1 August 2014.
- ^ Jacobson, Van. (Aug 30, 2006). "A new way of looking at networking."
- ^ Jacobson, Van; Smetters, Diana K.; Thornton, James D.; Plass, Michael F.; Briggs, Nicholas H.; Braynard, Rebecca L. (Dec 1-4, 2009). "Networking named content." Proceedings of the 5th International Conference on Emerging Networking Experiments and Technologies. Rome, Italy. Retrieved 1 August 2014.
- ^ "Cicn - fd.io".
- ^ "Cicn - fd.io".
- ^ "Cicn - fd.io".
- ^ "CCNxCon 2015". Archived from the original on 2016-02-22. Retrieved 2016-02-22.
- ^ Bartolomeo; et al. (2016). Identification and Management of Distributed Data: NGN, Content-Centric Networks and the Web. CRC Press. pp. 39–257.
- ^ Ahmed, Hussein; et al. (2016). Content-Centric Networks: An Overview, Applications, and Research Challenges. Springer. pp. 17–64.
- ^ Bilal, Muhammad; et al. (2019). "Secure Distribution of Protected Content in Information-Centric Networking". IEEE Systems Journal. 14 (2): 1921–1932. arXiv:1907.11717. Bibcode:2020ISysJ..14.1921B. doi:10.1109/JSYST.2019.2931813. S2CID 198967720.
- ^ Fricker, C (2012). "Impact of traffic mix on caching performance in a content-centric network". Proceedings IEEE INFOCOM Workshops. arXiv:1202.0108.
- ^ Solis, Ignacio (July 2014). "CCNx 1.0 Changes from 0.x", IETF-90 Proceedings. Toronto, Ontario. Retrieved 1 August 2014.