ACM ICN 2018, Boston, USA

Half-day Tutorial: “Second Generation” Named Data Networking (NDN) Applications: Design Patterns, Libraries, and Architectural Support

This half-day tutorial on applications in Named Data Networking (NDN) will share recent experience developing modular, performant applications taking advantage of NDN and how this has helped to suggest new open-source platform features and new research directions after the completion of the NSF Future Internet Architecture program. Specifically, it will break down an edge-supported, secure mobile Augmented Reality (AR) application and guide the audience through new architectural concepts being explored and new libraries being built to support these and other NDN applications. The tutorial will emphasize how the existing open-source toolset has been evolving since its conception less than a decade ago.

Tutorial Overview


  • Jeff Burke


    • Jeff Burke is Professor In-Residence and Associate Dean for Technology and Innovation at the UCLA School of Theater, Film and Television (TFT), where he has been a faculty member since 2001. His research explores the intersections of the built environment, computer networks, and storytelling. Burke co-founded REMAP, a joint center of TFT and the Henry Samueli School of Engineering and Applied Science, which uses a mixture of research, artistic production, and community engagement to investigate the interrelationships among culture, community, and technology. He is Co-PI and application team lead for the Named Data Networking research project.


  • Peter Gusev


    • Peter Gusev is a staff software engineer with UCLA REMAP. He focuses primarily on Named Data Networking (NDN), and is leading the development of NDN-RTC, a real-time conferencing tool. In addition to his work on NDN, Peter has contributed to a wide range of interactive audiovisual projects. He holds master’s degrees from Bauman Moscow State Technical University and Wroclaw University of Technology.


  • Jeff Thompson


    • Jeff Thompson has been a staff software engineer for the Named Data Networking (NDN) project since 2013. As an undergraduate, he studied computer science and electrical engineering at MIT. His Masters work was in microrobotics and automation at the UC Berkeley Biomimetic Millisystems Lab. At UCLA REMAP, Jeff’s focus is on developing networking libraries under a common public API for C++, JavaScript, Python and Java, as well as maintaining coding standards and development guidelines for deploying software releases.


  • Alex Afanasyev

    Florida International University

    • Alex Afanasyev is an Assistant Professor in the School of Computing and Information Sciences at Florida International University. His research focus is on the next-generation Internet architecture as part of the Named Data Networking (NDN) project. For over 8 years, he has done research in multiple fields vital for the success of NDN, including the application of NDN to Internet-of-Things, addressing challenges of next generation wireless networks, exploration of the data-centric security models, scalability of name-based routing, auto-configuration, distributed data synchronization, and prototype applications. He is also leading development effort of the overall NDN codebase, including widely used in the community NDN software forwarder (NFD), supporting libraries, and the ndnSIM simulation platform.


  • Spyridon Mastorakis


    • Spyridon Mastorakis is a Ph.D. candidate at the Computer Science Department of the University of California, Los Angeles. His research interests span various aspects of Information-Centric Networking and Named-Data Networking, such as peer-to-peer applications and mobility support solutions. He holds an M.S. in Computer Science from the University of California, Los Angeles and a B.S. in Electrical and Computer Engineering from the National Technical University of Athens.


  • Lan Wang

    University of Memphis

    • Lan Wang is Professor and Chair of the Computer Science Department at the University of Memphis. She holds a B.S. degree (1997) in Computer Science from Peking University, China and a Ph.D. degree (2004) in Computer Science from University of California, Los Angeles. Her research interests include future Internet architecture, Internet routing, network security, network performance measurement and sensor networks.


  • Beichuan Zhang

    University of Arizona

    • Beichuan Zhang is an Associate Professor at the Department of Computer Science, the University of Arizona. His research interest is in Internet routing architectures and protocols. He has been working on Named Data Networking, green networking, and inter-domain routing. He received the Applied Networking Research Prize in 2011 by ISOC and IRTF, and best paper awards at IEEE ICDCS in 2005 and IWQoS in 2014. Dr. Zhang received Ph.D. from UCLA and B.S. from Peking University.


  • Lixia Zhang


    • Lixia Zhang is a Professor in the Computer Science Department of UCLA. She received her Ph.D. in computer science from MIT and was a member of the research staff at Xerox PARC before joining UCLA. She is a fellow of ACM and IEEE, the recipient of IEEE Internet Award, and the holder of UCLA Postel Chair in Computer Science. Since 2010 she has been leading the effort on the design and development of the NDN architecture.



NDN is one of the most prominent ICN architectures and software platforms available to the research community. The NDN codebase is published under an open-source license and widely used in experimentation; an international 40+ node testbed is available for research use. Previously, the NDN team presented tutorials on the basics of the architecture and its software, to promote related research and to encourage community contribution to the open-source platform. These earlier tutorials focused primarily on introductory material — in particular, Interest/Data exchange mechanisms and basic content verification. Many of the field’s most interesting research challenges can be found in areas that build on these basics.

Some of our most recent work considers how to support mobile-edge computing (MEC) paradigms that offload computation and other tasks performed on low-latency data streams to edge nodes with more resources than typical mobile terminals, securely and transparently. We are exploring how NDN can support resource discovery, task distribution, mobile publishing, and other MEC requirements while continuing to provide data-centric security, intrinsic multicast support, and other fundamental benefits.

This tutorial will share important architectural concepts we are exploring in these areas, the software we have built to explore their design and implementation in NDN, and remaining open issues. It will focus on how the existing open-source toolset provides a platform for exploring the open research questions and how these tools have recently been expanded. It will also discuss interactions between different parts of the platform, such as forwarding strategy and application library behavior.

Type of the Tutorial

The tutorial will combine introductory material about the architectural concepts, solution space, and available open-source prototype implementations with details from a central motivating example. We expect the duration of the tutorial to be approximately 4 hours, including a 15 minute break.

Outline of the Tutorial

I) Welcome and Introduction (45 minutes)

The introductory section of the tutorial will cover the following fundamentals:

  • Recap of NDN CCL and ndn-cxx libraries, NFD forwarder and repository implementations, focused on typical configuration concerns and subsequent topics in the tutorial.
  • Brief review of storage options: forwarder content store, repository, application in-memory storage.
  • Introduction of basic NDN data-centric security.
  • Introduction of necessary forwarding strategy, routing, and related concepts.
  • Presentation of the running example of the tutorial: edge-supported mobile augmented reality application. We plan to provide a working demo and discuss the various components of the application, which include: a mobile AR browser, NDN-based content publishing, storage, and retrieval mechanisms; acceleration-as-a-service providing low-latency semantic scene analysis support, and data-centric security.

II) NDN Thinking: App Components and Design Considerations (45 minutes)

Following the application demonstration, we will relate how our thinking about building applications over NDN has grown to differ from how we might conceive them using TCP/IP. We will discuss alternatives to cloud services for rendezvous and establishing local trust relationships, the value of multicast, and the impact of data-centric security on application architecture. Concepts introduced during this overview will help frame the remaining sections.

III) Low-Latency Media over NDN (45 minutes)

During this part of the tutorial, we will discuss the specific challenges of low-latency media over NDN, and how these challenges have generated architectural solutions for congestion control, forwarding strategy, and minimizing use of selectors. Each of these topics will be considered from three perspectives: from a brief introduction to applicable theory and literature; as they relate to design approaches in our current practical implementations; and as they specifically relate to use in the example AR application. Through this application, we have come to view low-latency (“real-time”) media as a fundamental capability for many next-generation applications, and believe that this detailed coverage will be of interest and use to the research community — by suggesting capabilities they can apply in their own work, and identifying remaining open research challenges.

IV) Handling Publisher Mobility (30 minutes)

In addition to using a fixed testbed infrastructure, which we will briefly described as it has been covered in other papers and tutorials, our applications include a variety of ephemeral and mobile nodes. A key requirement of the MEC model being pursued for our AR example is the need to support publisher mobility. We will briefly summarize the current theory and design strategies, touching on contemporary papers and describing the choices we have selected for practical implementation.

V) New Library Directions (30 minutes)

This section will cover two topics: 1) The evolution of the security libraries and underlying protocols to support new applications; 2) New higher-level APIs for application development. The latter will be focus on the “Common Name Library” (NDN-CNL), which provides a namespace-based abstraction for dealing with NDN data that does not require applications to implement Interest-Data exchange directly for common publishing and consumption patterns. We will describe both of these libraries using examples from the driver application described in the morning. The library discussion will provide an opportunity to reiterate and expand on common application patterns introduced earlier.

VI) Conclusion and Wrap-Up Discussion (30 minutes)

The tutorial will conclude with an audience-driven wrap-up discussion and will include discussion of planned future work if time allows.

Requirements for Attendees

Attendees wishing to follow along must bring a laptop on which they have pre-installed and tested the full NDN platform, which has been tested most extensively on modern versions of Ubuntu Linux and Mac OS X. Time will not be allocated in the tutorial for troubleshooting participants' installations. For those who wish to work with it, the NDN Platform must be installed and tested prior to the tutorial; we will provide limited email support to participants who encounter any trouble in the weeks leading up to the tutorial.

Attendees should have some reasonable conceptual and practical familiarity with the NDN architecture and the fundamentals of Interest/Data exchange. Ideally, they should be comfortable with Python, as well as with getting around in the Unix shell.

Prior to the tutorial, we will distribute key references on the architecture to the participants, as well as recommendations for hands-on examples that will build familiarity with basic functions in the NDN libraries and serve as a recap of the language itself. This will not be a basic introduction to NDN applications. It will be an intermediate-level tutorial that requires either some basic experience with NDN or similar ICN architectures, or a willingness to follow along with topics that build on basics only covered briefly.