MSc project: Extension and evaluation of routing with hints for NetInf information-centric networking

This page describes an example Master student project previously offered in the DNA lab.


The Network of Information (NetInf) [1] is a future network architecture based on the concept of information-centric networking (ICN) [2].  NetInf was developed in the EU project SAIL ( and in SICS Center for Networked Systems.  The main abstraction of ICN is named data objects.  Communication is defined in terms of requesting and publishing named data objects, making it possible to integrate storage for caching in the network infrastructure.  In contrast, the main abstraction of current networks is named hosts and communication is defined in terms of end-to-end communication between the named hosts.

Designing global routing and forwarding for ICN is a challenging task with respect to scalability and performance.  In principle, an ICN routing system needs to keep track of on the order of 10^15 named data objects on a global scale, a vastly larger number than the number of hosts in the current network.

A global routing scheme called NetInf routing with hints was developed in the SAIL project.  The scheme makes heavy use of routing aggregation to achieve global scalability.  A first prototype was implemented in a proprietary NetInf code base (NNRP).

Objectives and goals

The objectives of this project are to re-implement the NetInf routing scheme in an open source code base, and to extend this implementation with important new functionality beyond the existing proprietary implementation.  The tentative open source code base to start from is the python-based NetInf prototype implementation.

There are a number of extensions to the current scheme that the project can design, implement and evaluate.  Which ones will be decided together with the student.  These extensions are: (1) Re-define the routing scheme to use partial ordering of hints rather than just priorities.  This is important to avoid routing loops.  (2) Relating to forwarding performance, design and implement more efficient lookup functions, in particular for checking the cache, to improve NetInf router performance.  (3) Design and implement an interface to an open source routing daemon (Quagga or BIRD) for populating the hint forwarding table.

The project is intended for one student that works together with another NetInf-related project.  Very good implementation experience is a required prerequisite.

Work plan

  1. Study and learn the key concepts of information-centric networking and the NetInf, as well as, become familiarised with the NetInf python code.
  2. Implement any remaining functions of NetInf routing in the python-based NetInf prototype.
  3. Design and implement one or more of the above mentioned extensions.
  4. Evaluation of the prototype implementation in collaboration with the other student project.


[1] Christian Dannewitz, Dirk Kutscher, Börje Ohlman, Stephen Farrell, Bengt Ahlgren, and Holger Karl. Network of information (NetInf) - An information-centric networking architecture. Computer Communications, 36(7):721–735, April 2013.

[2] Bengt Ahlgren, Christian Dannewitz, Claudio Imbrenda, Dirk Kutscher, and Börje Ohlman. A survey of information-centric networking. IEEE Communications Magazine, 50(7), July 2012.