The document provides an overview of hybrid Information-Centric Networking (hICN). Key points:
- hICN brings Content-Centric Networking (CCN) into IPv6 to allow connection-less and location-independent data access using names.
- It uses an Interest/Data packet format with the name prefix in the IPv6 header to leverage IP routing. This allows hICN to be an overlay of IPv6.
- It provides many-to-many communication, mobility, redundancy elimination and other benefits while being implemented as an evolutionary upgrade to current networks.
- The implementation status includes a VPP plugin network forwarder, transport library, and applications support. Work
How to Remove Document Management Hurdles with X-Docs?
Introduction to Hybrid Information-Centric Networking
1. Luca Muscariello, Cisco Systems
An Introduction to the
Hybrid Information-Centric Networking Project
FD.io mini summit at
Kubecon 2019,
Barcelona 20th of May 2019
2. What is hICN in the first place?
• You may have heard
• Content-Centric Networking (RFC to be published in 2019, implementation in FD.io CICN)
• Name-Data Networking (currently in the Intel-NSF Wireless-Edge Network program)
• The whole idea was launched by Van Jacobson at Xerox’s PARC in 2009
as a research project.
• Cisco has acquired CCN Xerox’s IPR in 2017 and open sourced CICN and
hICN in FD.io.
• hICN brings CCN into IPv6.
• How?
3. • A network architecture to transport many different kinds of applications from real-time to
content-distribution;
• enables connection-less and location-independent communications by identifying data with
unambiguous names;
• hICN is based on request/reply semantics and an hICN node accepts data from an input
interface if and only if there is a pending request for it (local flow balance principle).
• data authentication instead of end-point authentication.
• The application can ask “what” it wants to the transport network and not “where” to find it.
What is hICN in the first place?
4. • Many-to-Many communications
• Simpler anycast, multicast
• Mobility and multi-homing is built-in
• Redundancy elimination
• Transport services are receiver-driven, the data sender is stateless
• Scalability for many workloads we struggle with today: Group communications, Multicast.
What does it bring to current networking?
6. • Insert ICN into the Internet Protocol
• Evolutionary implementation
• Shorter time to deployment
• Minimize standardization effort
• Minimize clean-slate work in routers and end-hosts
• Enable hybrid deployment and interconnection of IPv6 and hICN
• hICN as an overset of IPv6
Motivation
7. Name prefixes in IPv6
numbers
• location-independent identifiers for
data sources
• An RTP media source
• An HTTP service
• A video object
• An end host
• A service
8. • Definitions:
• Name prefix: encoded as an IPv6 128 bits word and carried in IPv6 header fields
• Name suffix: encoded in transport headers fields such as TCP
• Name: hierarchical concatenation of name prefix and suffix
Naming data with the Internet Protocol
bits 48 (or >) 16(or <) 64
fields Routing prefix Subnet Interface id
bits 64 64
fields Routing prefix Resource prefix
Name prefix in AF_HICN
9. • It is an open problem to determine
which IPv6 prefixes should be used as
name prefixes: several options are
possible.
• It is desirable to be able to recognize
that an IPv6 prefix is a name prefix, e.g.
with an address family
• However this can be determined and
distributed by a control plane to
configure routers
IPv6 prefixes for data names
1. a new IPv6 address family AF_HICN,
b001::/16
2. Let the management and control
plane to locally configure HICN
prefixes and announce them to
neighbors for interconnection. A
prefix owner can reuse existing
prefixes
3. Other solutions…
11. Packet format: two protocol data units
• The protocol semantic is request/reply
• Two protocol data units: Interest/Data
• Interest is used to query Data with a 1:1 match
• The semantics are unchanged w.r.t. NDN/CCN
• draft-irtf-icnrg-ccnxmessages-09 (RFC in 2019)
• draft-irtf-icnrg-ccnxsemantics-10 (RFC in 2019)
L4 Header
Payload
L3 Header
L4 Header
L3 Header
Interest Packet
Data Packet
12. Packet format L3
• The name prefix is stored in the DST
address field to exploit IP
routing/forwarding of the requests
• The name prefix is stored in the SRC
address field as replies are not routed
by name
• SRC and DST in Interest/Data are valid
IPv6 addresses (locators), i.e.
identifiers of network interfaces
Destination Address
Name Prefix for Interest Packets
Source Address
Name Prefix for Data Packets
Payload Length Next Header Hop Limit
Flow LabelTraffic ClassVersion
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
13. Packet format L4
• Use the TCP header by default
• Keep SRC/DST ports
• But also UDP header to carry a
hICN L4 header
• May be the long term approach as
new transport services tend to be
developed on top of UDP (LEDBAT,
QUIC)
Name Suffix
Destination PortSource Port
Path Label
Checksum Lifetime
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
Data Offset Time Scale Loss Detection and Recovery
M
A
N
A
C
K
S
I
G
R
S
T
S
Y
N
F
I
N
Name Suffix
Destination PortSource Port
Path Label
Checksum
Data Offset Time Scale Loss Detection and Recovery
M
A
N
A
C
K
S
I
G
R
S
T
S
Y
N
F
I
N
ChecksumLength
TCP
UDP
TCP-like
OR
14. Security: authentication and integrity
• Authenticity and Integrity provided by using crypto signatures
• Binds data, data name and producer identity.
• Two signature envelops: a single data packet or the transport manifest
• In the first case the signature is carried by the IP authentication header
• In the second case the transport manifest is the only signed unit
• Definition of L4 Manifest
• A low level index of names of a collection of data packets
• Carries hashes of data for integrity (e.g. SHA256)
• Carries the signature of the manifest for authentication (Cipher text of
the RSA256 using producer’s private key).
L4 Header
Payload
L3 Header
Data Packet
AH Header
L4 Header
L3 Header
L4 Manifest
16. hICN protocol semantics: the interest path
ingress Packet cache
RX(Interest)
name:=PARSE(Interest Packet)
lookup(name,
exact match)
Data?
yes
no
TX(Data,
data.v6.dst:=
interest.v6.src)
drop
egress
Inter
est
yes
same
src?
cache
duplicate
no
IPv6 FIB
forwarding
strategy
yes
lookup(name prefix,
longest match)
TX(Interest,
interest.v6.src:=
interface.v6.addr)
valid
interfaces
no match
valid
interfaces
17. hICN protocol semantics: the data path
egress Packet cache
RX(Data)
lookup(name,
exact match)
no
ingress
Inter
est
yes
TX(Data,
data.v6.dst:=
interest[1].v6.src)
Get all
interests
and evict
TX(Data,
data.v6.dst:=
interest[2].v6.src)
TX(Data,
data.v6.dst:=
interest[3].v6.src)
drop
cache
name:=PARSE(Data)
18. • hICN traffic requires a punting rule
• Has to be efficient and easy to manage
• AF_HICN putting using ACL
• Explicitly flag hICN traffic, how?
Port numbers?
Punting hICN traffic
Packetparser
AccessControlList
PuntingandPolicy
Ingress
VRF: hICN function
Egress
AddressTables
20. • An INET like Socket API and a post-socket API
• Unidirectional sockets: producer and consumers
• Socket identifiers based on name prefixes
• Segmentation and signature computation at the producer
• Reassembly and signature verification at the consumer
• DATAGRAM or STREAM transport
• Reliable or unreliable
• Support of current applications: HTTP, (S)RTP
• Support (D)TLS and soon MLS (for group communications).
Transport Layer and Socket API
IP
TCP, UDP
HTTP, RTP
hICN
STREAM, DATAGRAM,
RELIABLE, UNRELIABLE
DASH, RTC
21. Application
ADU
Forwarding Engine
L3 PDU (I/D)
Transport Socket Library
Segmentation Authentication NamingIntegrity
Reassembly Verification Flow ControlFetching
Producer Services
Consumer Services
Routing and Forwarding
Application Logic
Transport Services
22. Producer Socket Consumer Socket
Interest Input
Buffer
Data Output
Buffer
Integrity
Authentication
Segmentation
Naming
Hit
Miss
Interests
Application (e.g. HTTP Client)
Interest Output
Buffer
Data Input
Buffer
Data Packets
Integrity/Auth
Check
Reassembly
Data Retrieval
Protocol
Interests Data Packets
Application (e.g. HTTP Server)
Interests can be satisfied
directly at the transport layer
26. Implementation Status (v19.04)
Network
• VPP plugin implementing the packet forwarder
• Socket-based app for end client (Windows 10,
macOS 12.14, iOS 12, Android 8, Linux
Ubuntu/CentOS)
• NETCONF/YANG support using a sysrepo plugin
• Network management and Telemetry
• Mobility management.
Transport
• A user-space library implementing transport
services
• Reliable/Unreliable
• Real-Time (Audio and Video)
• Congestion control (Delay-Based, BBR)
• Loss detection and recovery
• a memif based connector to VPP
• a socket based connector for the client packet
forwarder.
https://github.com/FDio/hicn
27. Work in progress
• Performance enhancements in the VPP plugin and the transport
library
• More supported applications
• gRPC
• BitTorrent
• Control/Management plane
• Routing
• DHCP for name provisioning