Named data networking: Stateful forwarding plane for datagram delivery

Reinventing smart routing and dumb forwarding.

modular humanoid polyhedra / connections / structure / building / network
fdecomite (CC BY 2.0)
Current Job Listings

The Internet was designed to connect things easily, but a lot has changed since its inception. Users now expect the internet to find the “what” (i.e., the content), but the current communication model is still focused on the “where.”

The Internet has evolved to be dominated by content distribution and retrieval. As a matter of fact, networking protocols still focus on the connection between hosts that surfaces many challenges.

The most obvious solution is to replace the “where” with the “what” and this is what Named Data Networking (NDN) proposes. NDN uses named content as opposed to host identifiers as its abstraction.

How the traditional IP works

To deliver packets from a source to a destination, IP needs to accomplish two phases of operation. The first phase is the routing plane also known as the control plane. This phase enables the routers to share routing updates and select the best path to construct the forwarding information table (FIB). The second phase is the forwarding plane also known as the data plane. This is the phase where forwarding to the next hop is executed upon FIB examination.

Primarily, the actual routing (control plane) is stateful and can adapt to the network changes, such as link down, router crashes, new routes or alternative better paths. However, the actual IP forwarding is stateless and cannot adapt to anything without instruction from the routing control plane. This has often been referred to as “smart routing and dumb forwarding.”

The IP is only interested in packets for a particular destination. Typically, you put a node on a network, and it performs a broadcast known as address resolution protocol (ARP) for the destination address. It then binds the logical IP identifier to the physical identity, which is the media access control address (MAC).

Routing can then propagate the routes and there is no need to propagate the host addresses as they can be covered by the prefix. The MAC binding is only needed on the local network and not for global communications. Such kind of communication model has allowed the IP to scale up.

Introducing NDN forwarding

Significantly, Named Data Networking (NDN) goes beyond the traditional paradigm and adds intelligence and state to each device. For this, it uses a new network forwarding plane. Data consumers, similar to source hosts in the IP word, send what's known as Interest packets for the data they are looking for. Further, the nodes in the path forward the Interest packets and eventually maintain the state of all pending Interest requests.

So, we have two types of packets, Interest and Data packets. Both packets carry a name instead of an IP address. Hence, Interest and Data packets are one-for-one, thereby enabling strict flow balance.

The data consumers enter a given name of the desired piece of data that they want to retrieve into the Interest packet and then send the Interest packet to the network. You could relate the Interest packet similar to a hypertext transfer protocol (HTTP) Get-request. However, please be mindful of the fact that HTTP is an application protocol and NDN is a network layer protocol although NDN has a similar request and retrieval process.

Essentially, if you want data, you logically broadcast it. You say what your interest is and give the prefix of what you want. The consumers broadcast an Interest packet over any and all available communication paths.

NDN has a simpler relationship with Layer 2 than that of IP, which allows NDN to broadcast all the multiple simultaneous connectivities, such as 3G, Bluetooth, and Ethernet. Unlike IP, NDN packets cannot loop which is why it can take advantage of multiple interfaces.

More information on NDN names

The primary concern of NDN is data, not nodes, so there is no need to bind a Layer 3 IP address to a Layer 2 MAC address. There simply is no IP address. Fundamentally, the NDN network layer uses application data names to communicate.

A name is an opaque object and the only thing NDN cares about is that it has a hierarchical structure. The hierarchical structure is used to do the “longest match” lookup which is similar to the IP prefix lookups. Both IP and NDN use the “longest match” prefix-based lookups because of the hierarchical aggregation of details.

Nodes in the path use this name to forward the Interest packet to the data producers which could be in multiples. Largely, there is no concept of a destination in the world of NDN unlike IP. Once an Interest packet hits a node that holds the requested data, that node will ultimately return the data packets that contain both, the name and the content.

The core difference between IP and NDN

Essentially, IP has a location-centric approach to data delivery. There is a concept of the destination and the packet must reach the destination. The destination address is used to guide the forwarding traffic flows towards a destination.

With NDN the name is used to guide the forwarding. In the case of NDN, there may be multiple devices that can hold the requested data, but with IP there is usually only one destination.

NDN data structures

For this new style of forwarding to occur, we need new data structures. The new data structures include the pending interest table (PIT), forwarding information table (FIB) and content store (CS). 

Particularly, when an Interest packet hits a node, the node first checks the content store. The content store remembers the data it has seen before. It's like a buffer in normal routers but with a different replacement property.

If there is a match, the node is known as a data producer. Hence, it will return the data back to the same interface the Interest packet was received from. If there is no match, the router then looks at the PIT. The PIT holds all the pending Interests i.e. the Interest that has not been satisfied yet. It contains Interests that couldn't be satisfied locally and as a result, were sent to someone else. But you still have to remember it.

If no entry is found in the PIT, the router then examines the FIB for forwarding. Here, we need to keep in mind that the FIB has named prefixes, not IP prefixes and it uses multiple outbound interfaces.

Stateful forwarding plane

NDN has a stateful forwarding plane for datagram delivery (per packet and per hop) in comparisons to the IP’s stateless forwarding plane. As a matter of fact, IP forwarding by itself has no adaptability. It needs to be told what to do by the routing protocol. This is in contrast to the NDN communication model that keeps datagram state at every node. IP is end-to-end while NDN is hop-by-hop, thereby enabling a per-hop stateful forwarding plane. Each node in the path can make its own decision on where to forward the Interest.

A stateful forwarding plane adds significant intelligence. Substantially, nodes can measure the performance of different paths, rapidly detect failures, avoid failed links, circumvent prefix hijacking and utilize multiple paths to mitigate congestion, perform built-in network caching and native multicast data delivery.

Typically, each NDN node makes its own informed decision about which path to take. The decisions are based on the observation of the previously forwarded Interest packets. This eventually enables the per-datagram state on each node.

Unlike the IP’s end-to-end packet delivery model, the Interest and Data exchange communication model are hop-by-hop so there is no notion of a specific source and destination. Within the IP world if you are sent a datagram you better be able to deal with it. They only have one choice and you are that sole choice. You have to be able to handle the traffic that you are announcing. As a result, there are global dependencies.

However, with NDN there are no global dependencies. If there are 5 places where the content might be, it can ask all 5 simultaneously. Basically, there is no global dependency, just local dependencies.

NDN routing protocols and RTT

Similar to today’s IP architecture, NDN uses the routing protocols. The IP routing protocols propagate the reachability of IP addresses. However, with NDN, instead of distributing IP prefixes, the routing protocols distribute the name prefixes.

Like IP, NDN has a FIB but instead of having IP prefixes, it has named prefixes and each given name can utilize multiple interfaces. Generally speaking, the IP FIB contains only the next-hop information, whereas the NDN FIB records both, the routing and forwarding plane, which is known as adaptive forwarding.

The NDN FIB also contains a per-interface estimate of the RTT, which allows the measurement of path performance. Essentially, the RTT sample is taken every time a data packet is received.

This is however different from today's model that uses transmission control protocol (TCP) on the end host to control the congestion. TCP on the end host is used to detect congestion and adjust the sending rate accordingly.

This article is published as part of the IDG Contributor Network. Want to Join?

Join the Network World communities on Facebook and LinkedIn to comment on topics that are top of mind.
Now read: Getting grounded in IoT