HICN
hICN Facts |
Project Lead: Luca Muscariello
Repository: git clone https://gerrit.fd.io/r/hicn |
Introduction
Hybrid ICN is an architecture that brings ICN into IPv6 as described in [1]. By doing that, hicn allows to generalize IPv6 networking by using location-independent name-based networking. This is made either at the network layer and at the transport layer by also providing name-based sockets to applications.
hicn allows to reuse existing IPv6 protocol and architectures, to extend them and deploy hybrid solutions based on the use case and application needs. Moreover, hicn can exploit hardware and software implementations heavily based on IP, making much simpler insertion of the technology in current networks, current applications and design future applications reusing what the industry already provides in terms of on the shelf components.
hicn is composed of network and transport stack for a variety of platforms. It supports end-host operating systems by using a portable and lightweight forwarder in C11 and a server oriented network forwarder based on VPP. The transport stack is implemented as a shared library written in C++11 where different transport protocols can be implemented based on the application needs. The early release will support a reliable transport protocol that is throughput optimal (à la TCP) and a transport protocol that can carry audio/video for real-time communications. The transport library provides an API for application that is based on INET socket API with in addition a post-socket API based on [5],[6],[7]. Both network forwarders will be equipped of binary APIs to provide a CLI as well data-model driven management features.
The project will have strong interactions with other fdio projects such as VPP, CICN in the first place and with DMM in the future.
Several applications will be supported from early releases such as HTTP, RTP where many-to-many communications, mobility and multi-homing is important. Some relevant applications include, but are not limited to, MPEG-DASH, WebRTC, heterogenous access (LTE/WiFi), mobile edge offloading (V2X, IoT), mobility management ([2],[3],[4])and cloud-native applications (service-mesh, micro-services communications).
In more detail, early releases would include:
- 1. A core library that reflects the Internet draft specifications in [1];
- 2. A forwarder implemented as a VPP plugin (server);
- 3. A portable lightweight forwarder (client);
- 4. A transport library compatible with both client and server forwarders implementing transport protocols.
Getting Started
$ git clone https://git.fd.io/hicn $ cd hicn $ mkdir build; cd build $ cmake .. $ make
Folder | Description |
---|---|
lib | Core support library |
hicn-plugin | VPP plugin. You need to know about VPP VPP |
hicn-light | Lightweight packet forwarder |
utils | Tools for testing |
apps | Application examples using hicn stack |
Supported Platform
- Ubuntu 16.04 LTS (x86_64) - Ubuntu 18.04 LTS (x86_64) - Debian Stable/Testing - Red Hat Enterprise Linux 7 - CentOS 7 - Android 8 - iOS 12 - macOS 10.12 - Windows 10
For developers
Pulling, Building, Hacking, and Pushing VPP Code - Explains how to get up and going with the vpp code base and FD.io repositories.
Bibliography
- [1] Muscariello, L., Carofiglio, G., Auge, J., and M. Papalini, "Hybrid Information-Centric Networking", [ https://tools.ietf.org/html/draft-muscariello-intarea-hicn-01 draft-muscariello-intarea-hicn-01] (work in progress), December 2018.
- [2] Auge, J., Carofiglio, G., Muscariello, L., and M. Papalini, "Anchorless mobility through hICN" draft-auge-dmm-hicn-mobility-01 (work in progress), December 2018.
- [3] Auge, J., Carofiglio, G., Muscariello, L., and M. Papalini, "Anchorless mobility management through hICN (hICN-AMM): Deployment options" draft-auge-hicn-mobility-deployment-options-01 (work in progress), December 2018.
- [4] Bogineni K., Akhavain A., Herbert T., Farinacci T., et al. "Optimized Mobile User Plane Solutions for 5G" draft-bogineni-dmm-optimized-mobile-user-plane-01 (work in progress), December 2018.
- [5] Pauly, T., Trammell, B., Brunstrom, A., Fairhurst, G., Perkins, C., Tiesel, P., and C. Wood, "An Architecture for Transport Services", draft-ietf-taps-arch-02 (work in progress), October 2018.
- [6] Brunstrom, A., Pauly, T., Enghardt, T., Grinnemo, K., Jones, T., Tiesel, P., Perkins, C., and M. Welzl, "Implementing Interfaces to Transport Services", draft- ietf-taps-impl-02 (work in progress), October 2018.
- [7] Trammell, B., Welzl, M., Enghardt, T., Fairhurst, G., Kuehlewind, M., Perkins, C., Tiesel, P., and C. Wood, "An Abstract Application Layer Interface to Transport Services", draft-ietf-taps-interface-02 (work in progress), October 2018.