ACM ICN 2016, September 26-28, 2016, Kyoto, Japan.
Site Menu

3rd ACM Conference on Information-Centric Networking (ICN 2016), Sept. 26-28, 2016

Tutorial: Exploring NDN Research through Real World Problem Solving


As the interest in ICN research continues to grow, many people become interested in getting involved, but do not see clearly where is an easy entry point into this exciting new area. Based on our experience from the application-driven NDN architecture development over the last six years, we believe that an easy and productive way to get started in ICN research is to build simple applications over NDN and run them in real, emulated, and simulated environments. Such first-hand experience with the architecture, its available open source libraries, frameworks, tools, and environments, can help one clarify and deepen the conceptual understanding about this new networking paradigm, see its advantages, appreciate the differences with the existing TCP/IP protocol stack, as well as identify new research challenges.

The tutorial would be most beneficial for students and other researches who want to gain further understanding of ICN beyond reading the literature and are looking for interesting ICN research topics to work on. The main goal of the tutorial is to offer a booster to get one started through interactive and fun mental exercises together with hands-on experiences.

Tutorial Outline

This full day tutorial is made of three major sections as listed below. It is expected to run from 9AM to 5PM, including a 1-hour working lunch and two 30-min breaks in the morning and afternoon. We expect that the breaks will provide valuable time gaps for people to socialize, clarify missed points, and to exchange their experience.

  1. NDN Architecture Overview

    We plan to illustrate the basic concepts of the NDN architecture with specific examples to help both create an interactive learning atmosphere and demonstrate the key differences between the existing TCP/IP and the NDN protocol architectures.

  2. A Day in NDN Development Wonderland
    1. A Quick NDN Codebase Overview: We plan to provide an overview of the existing codebase, including NDN Forwarding daemon (NFD), NDN C++ library with eXperimental eXtensions (ndn-cxx), NDN Common Client libraries (NDN-CCL), and port of NFD on Android platform (NFD Android). We will use the existing NDN testbed and application examples to illustrate how the code is being used today.

    2. Contributing to NDN Open Codebase: Here we plan to illustrate the overall development process of the core NDN components that the NDN team has been using for codebase development over the last several years. We will describe how to discover known missing pieces in the software, how to start with code development, how to submit code to be reviewed by NDN team, and how to respond to NDN team comments so your contributions will be quickly merged. Information covered in this section will be particularly useful for those who may later join NDN’s open source development effort. A new architecture needs the broader community’s effort, and you would be proud of your contributions 20 years down the road!

    3. Developing Simple Simulations with ndnSIM: Sometimes it may be difficult to start with a real NDN environment, or test your idea in a non-trivial setting. Simulations can then overcome these constraints. ndnSIM is a pretty popular package that have been used over the last several years and helped produce over 280 publications according to Google Scholar.

      In this section of the tutorial we will use a set of pre-planned and/or participant-suggested scenarios and show what needs to be done to run the simulation-based evaluation.

    4. Developing Simple NDN Applications: Everyone must have had the experience that they hear something that seems very simple, but when they sit down to do it, they could not figure out how. Here is your opportunity of taking what you have learned so far during the day and do an exercise to enhance the learning. Depending on the participants background, we consider splitting into several groups where participants together with the mentors will go through a complete process of developing a new NDN applications: what code can be used as a bootstrapping point, what are the next steps, and how to run the application. Given the importance of the security in NDN, we will also show what is expected from the developer, user, and operator to secure the applications.

    5. Experimenting with NDN Apps using Mini-NDN: There are cases where one need to evaluate applications in a controlled environments. We will demonstrate how one can use an NDN network emulator, Mini-NDN, to emulate multiple NDN nodes to run and evaluate the applications on a single system. With Mini-NDN, users do not need to modify their application code that may be necessary to for simulation purposes or reserve servers on emulation services like Emulab.

  3. Q & A Session

    During the tutorial, we will set up an online board to collect questions about the basic ICN/NDN concepts and the programming exercises. During this last section of the tutorial, we plan to break into smaller groups, with each addressing a specific area of questions that people may bring up.

Expected Outcome

We hope this tutorial would help open the door for people to get into NDN research. We plan to put the tutorial recording online in case anyone wants to refresh their memory, and even better, introduce their colleagues and friends to watch and learn.

Biographies of Tutorial Speakers

  • Alex Afanasyev is an Adjunct Assistant Professor in University of California, Los Angeles. He received his Ph.D. degree in computer science from UCLA in 2013. His research focus is on the next-generation Internet architecture as part of the Named Data Networking (NDN) project. His research interests include a variety of topics that are vital for the success of NDN, including scalability of name-based routing, auto-configuration, distributed data synchronization, application and network security. Dr. Afanasyev is also leading the development effort of the overall NDN codebase.
  • Jeff Burke is Assistant 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. He has produced, managed, programmed, and designed performances, short films, new genre art installations and new facility construction internationally for over fifteen years, incorporating emerging technologies as part of these projects and creative works. 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. From 2006-2012, Burke was the area lead for participatory sensing at the NSF Center for Embedded Networked Sensing (CENS). He is Co-PI and application team lead for the Named Data Networking research project.
  • Davide Pesavento is currently a Ph.D. candidate at the University Pierre & Marie Curie, Sorbonne University, in Paris (France), under the supervision of Prof. Giovanni Pau. He received his B.S. and M.S. in computer science from the University of Padua, Italy. His main research interests are opportunistic mobile connectivity, vehicular networks, and the application of the NDN approach to vehicular networks. In 2012 he designed and developed the first version of VNDN, a complete NDN protocol stack for vehicular ad-hoc networks. Since 2014 he is one of the main developers for the core NDN software, including the NDN Forwarding Daemon (NFD).
  • 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 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.

Site Menu

The ACM ICN 2016 website is based on the ACM SIGCOMM 2012 source code, which is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. Source code is available at