< draft-irtf-nwcrg-nwc-ccn-reqs-07.txt   draft-irtf-nwcrg-nwc-ccn-reqs-08.txt >
Network Coding Research Group K. Matsuzono Network Coding Research Group K. Matsuzono
Internet-Draft H. Asaeda Internet-Draft H. Asaeda
Intended status: Informational NICT Intended status: Informational NICT
Expires: April 27, 2022 C. Westphal Expires: May 19, 2022 C. Westphal
Huawei Huawei
October 24, 2021 November 15, 2021
Network Coding for Content-Centric Networking / Named Data Networking: Network Coding for Content-Centric Networking / Named Data Networking:
Considerations and Challenges Considerations and Challenges
draft-irtf-nwcrg-nwc-ccn-reqs-07 draft-irtf-nwcrg-nwc-ccn-reqs-08
Abstract Abstract
This document describes the current research outcomes in Network This document describes the current research outcomes in Network
Coding (NC) for Content-Centric Networking (CCNx) / Named Data Coding (NC) for Content-Centric Networking (CCNx) / Named Data
Networking (NDN), and clarifies the technical considerations and Networking (NDN), and clarifies the technical considerations and
potential challenges for applying NC in CCNx/NDN. This document is potential challenges for applying NC in CCNx/NDN. This document is
the product of the Coding for Efficient Network Communications the product of the Coding for Efficient Network Communications
Research Group (NWCRG) and the Information-Centric Networking Research Group (NWCRG) and the Information-Centric Networking
Research Group (ICNRG). Research Group (ICNRG).
skipping to change at page 1, line 39 skipping to change at page 1, line 39
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on April 27, 2022. This Internet-Draft will expire on May 19, 2022.
Copyright Notice Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 35 skipping to change at page 2, line 35
6.2.4. Producer Operation . . . . . . . . . . . . . . . . . 13 6.2.4. Producer Operation . . . . . . . . . . . . . . . . . 13
6.2.5. Backward Compatibility . . . . . . . . . . . . . . . 14 6.2.5. Backward Compatibility . . . . . . . . . . . . . . . 14
6.3. In-network Caching . . . . . . . . . . . . . . . . . . . 14 6.3. In-network Caching . . . . . . . . . . . . . . . . . . . 14
6.4. Seamless Consumer Mobility . . . . . . . . . . . . . . . 15 6.4. Seamless Consumer Mobility . . . . . . . . . . . . . . . 15
7. Challenges . . . . . . . . . . . . . . . . . . . . . . . . . 15 7. Challenges . . . . . . . . . . . . . . . . . . . . . . . . . 15
7.1. Adoption of Convolutional Coding . . . . . . . . . . . . 15 7.1. Adoption of Convolutional Coding . . . . . . . . . . . . 15
7.2. Rate and Congestion Control . . . . . . . . . . . . . . . 16 7.2. Rate and Congestion Control . . . . . . . . . . . . . . . 16
7.3. Security . . . . . . . . . . . . . . . . . . . . . . . . 16 7.3. Security . . . . . . . . . . . . . . . . . . . . . . . . 16
7.4. Routing Scalability . . . . . . . . . . . . . . . . . . . 17 7.4. Routing Scalability . . . . . . . . . . . . . . . . . . . 17
8. Security Considerations . . . . . . . . . . . . . . . . . . . 17 8. Security Considerations . . . . . . . . . . . . . . . . . . . 17
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 19 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 18
10. Informative References . . . . . . . . . . . . . . . . . . . 19 10. Informative References . . . . . . . . . . . . . . . . . . . 19
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22
1. Introduction 1. Introduction
Information-Centric Networking (ICN) in general, and Content-Centric Information-Centric Networking (ICN) in general, and Content-Centric
Networking (CCNx) [16] or Named Data Networking (NDN) [19] in Networking (CCNx) [16] or Named Data Networking (NDN) [19] in
particular, have emerged as a novel communication paradigm advocating particular, have emerged as a novel communication paradigm advocating
the retrieval of data based on their names. This paradigm pushes the retrieval of data based on their names. This paradigm pushes
content awareness into the network layer. It is expected to enable content awareness into the network layer. It is expected to enable
consumers to obtain the content they desire in a straightforward and consumers to obtain the content they desire in a straightforward and
efficient manner from the heterogenous networks they may be connected efficient manner from the heterogenous networks they may be connected
to. The CCNx/NDN architecture has introduced innovative ideas and to. The CCNx/NDN architecture has introduced innovative ideas and
has stimulated research in a variety of areas, such as in-network has stimulated research in a variety of areas, such as in-network
caching, name-based routing, multipath transport, content security. caching, name-based routing, multipath transport, and content
One key benefit of requesting content by name is that it eliminates security. One key benefit of requesting content by name is that it
the requirement of establishing a session between the client and a eliminates the requirement to establish a session between the client
specific server, and the content can thereby be retrieved from and a specific server, and the content can thereby be retrieved from
multiple sources. multiple sources.
In parallel, there has been a growing interest in both academia and In parallel, there has been a growing interest in both academia and
industry for better understanding the fundamental aspects of Network industry for better understanding the fundamental aspects of Network
Coding (NC) toward enhancing key system performance metrics such as Coding (NC) toward enhancing key system performance metrics such as
data throughput, robustness and reduction in the required number of data throughput, robustness and reduction in the required number of
transmissions through connected networks, and redundant transmission transmissions through connected networks, and redundant transmission
on broadcast or point-to-multipoint connections. NC is a technique on broadcast or point-to-multipoint connections. NC is a technique
that is typically used for encoding packets to recover from lost that is typically used for encoding packets to recover from lost
source packets at the receiver, and for effectively obtaining the source packets at the receiver, and for effectively obtaining the
desired information in a fully distributed manner. In addition, NC desired information in a fully distributed manner. In addition, in
can be used for security enhancements [2] [3] [4] [5]. terms of security aspects, NC can be managed using a practical
security scheme that deals with pollution attacks [2], and can be
utilized for preventing eavesdroppers from obtaining meaningful
information [3] or protecting a wireless video stream while retaining
the NC benefits [4] [5].
From the perspective of the NC transport mechanism, NC can be divided From the perspective of the NC transport mechanism, NC can be divided
into two major categories: coherent NC, and non-coherent NC [39]. In into two major categories: coherent NC, and non-coherent NC [38]
coherent NC, the source and destination nodes know the exact network [39]. In coherent NC, the source and destination nodes know the
topology and the coding operations at intermediate nodes. When exact network topology and the coding operations available at
multiple consumers are attempting to receive the same content such as intermediate nodes. When multiple consumers are attempting to
live video streaming, coherent NC could enable optimal throughput by receive the same content such as live video streaming, coherent NC
sending the content flow over the constructed optimal multicast trees could enable optimal throughput by sending the content flow over the
[33]. However, it requires a fully adjustable and specific routing constructed optimal multicast trees [32]. However, it requires a
mechanism, and a large computational capacity for central fully adjustable and specific routing mechanism, and a large
coordination. In the case of non-coherent NC, that often comprises computational capacity for central coordination. In the case of non-
the use of Random Linear Coding (RLC), it is not necessary to know coherent NC, that often comprises the use of Random Linear Coding
the network topology nor the intermediate coding operations [34]. As (RLC), it is not necessary to know the network topology nor the
non-coherent NC works in a completely independent and decentralized intermediate coding operations [33]. As non-coherent NC works in a
manner, this approach is more feasible especially in the large-scale completely independent and decentralized manner, this approach is
use cases. more feasible in terms of eliminating such a central coordination.
NC combines multiple packets together with parts of the same content, NC combines multiple packets together with parts of the same content,
and may do this at the source or at other nodes in the network. and may do this at the source or at other nodes in the network.
Network coded packets are not associated with a specific server, as Network coded packets are not associated with a specific server, as
they may have been combined within the network. As NC is focused on they may have been combined within the network. As NC is focused on
what information should be encoded in a network packet instead of the what information should be encoded in a network packet instead of the
specific host at which it has been generated, it is in line with the specific host at which it has been generated, it is in line with the
architecture of the CCNx/NDN core networking layer. NC has already architecture of the CCNx/NDN core networking layer. NC has already
been implemented for information/content dissemination [6] [7] [8]. been implemented for information/content dissemination [6] [7] [8].
Montpetit, et al., first suggested that NC techniques be exploited to Montpetit, et al., first suggested that NC techniques be exploited to
skipping to change at page 4, line 24 skipping to change at page 4, line 28
2. Terminology 2. Terminology
This section provides the terms related to NC and CCNx/NDN used in This section provides the terms related to NC and CCNx/NDN used in
this document. this document.
2.1. Definitions related to NC 2.1. Definitions related to NC
The terms regarding NC used in this document are defined as follows. The terms regarding NC used in this document are defined as follows.
These are aligned with RFCs produced by the FEC Framework (FECFRAME) These are aligned with RFCs produced by the FEC Framework (FECFRAME)
IETF Working Groups as well as IRTF Coding for Efficient Network IETF Working Groups as well as IRTF Coding for Efficient Network
Communications Research Group (NWCRG)[22]. Communications Research Group (NWCRG)[21].
o Source Symbol: A unit of data originating from the source that is
used as input to encoding operations.
o Coded Symbol, or Repair Symbol: A unit of data that is the result
of a coding operation, applied either to source symbols or (in
case of re-coding) source and/or coded symbols.
o Source Packet: A packet originating from the source that o Source Packet: A packet originating from the source that
contributes to one or more source symbols. The source symbol is a contributes to one or more source symbols. The source symbol is a
unit of data originating from the source that is used as input to unit of data originating from the source that is used as input to
encoding operations. For instance, a real-time transport protocol encoding operations. For instance, a real-time transport protocol
(RTP) packet as a whole can constitute a source symbol. In other (RTP) packet as a whole can constitute a source symbol. In other
situations (e.g., to address variable size packets), a single RTP situations (e.g., to address variable size packets), a single RTP
packet may contribute to various source symbols. packet may contribute to various source symbols.
o Coded Packet, or Repair Packet: A packet containing one or more o Repair Packet: A packet containing one or more coded symbols (also
coded symbols (also called repair symbol). The coded symbol is a called repair symbol). When there is a single repair symbol per
unit of data that is the result of a coding operation, applied repair packet, a repair symbol corresponds to a repair packet.
either to source symbols or (in case of re-coding) source and/or
coded symbols. When there is a single coded symbol per coded
packet, a coded symbol corresponds to a coded packet.
o Innovative Packet: A source or coded packet that increases the o Innovative Packet: A source or repair packet that increases the
rank of the linear system (also called degrees of freedom) at a rank of the linear system (also called degrees of freedom) at a
receiver. receiver.
o Encoding versus Re-coding versus Decoding: Encoding is an o Encoding versus Re-coding versus Decoding: Encoding is an
operation that takes source symbols as input and produces encoding operation that takes source symbols as input and produces encoding
symbols (source or coded symbols) as output. Re-coding is an symbols (source or coded symbols) as output. Re-coding is an
operation that takes encoding symbols as input and produces operation that takes encoding symbols as input and produces
encoding symbols as output. Decoding is an operation takes encoding symbols as output. Decoding is an operation takes
encoding symbols as input and produces source symbols as output. encoding symbols as input and produces source symbols as output.
The terms regarding coding types are defined as follows: The terms regarding coding types are defined as follows:
o Linear Coding: Linear combination of a set of input symbols (i.e.,
source and/or coded symbols) using a given set of coefficients and
resulting in a repair symbol.
o Random Linear Coding (RLC): A particular form of linear coding o Random Linear Coding (RLC): A particular form of linear coding
using a set of random coding coefficients. Linear coding linearly using a set of random coding coefficients.
combines a set of input source and/or coded symbols using a given
set of coefficients and resulting in a coded symbol. Many linear
codes exist that differ from the way coding coefficients are drawn
from a finite field of a given size.
o Block Coding: A coding technique wherein the input flow(s) must be o Block Coding: A coding technique wherein the input flow(s) must be
first segmented into a sequence of blocks; encoding and decoding first segmented into a sequence of blocks; encoding and decoding
are performed independently on a per-block basis. are performed independently on a per-block basis.
o Sliding Window Coding or Convolutional Coding: A general class of o Sliding Window Coding or Convolutional Coding: A general class of
coding techniques that rely on a sliding encoding window. coding techniques that rely on a sliding encoding window.
Encoding window is a set of source (and coded in the case of re- Encoding window is a set of source (and coded in the case of re-
coding) symbols used as input to the coding operations. The set coding) symbols used as input to the coding operations. The set
of symbols change over time, as the encoding window slides over of symbols change over time, as the encoding window slides over
skipping to change at page 6, line 32 skipping to change at page 6, line 37
called binary extension fields {0..2^m-1}, where m often equals 1, called binary extension fields {0..2^m-1}, where m often equals 1,
4 or 8 for practical reasons. 4 or 8 for practical reasons.
o Finite Field size: The number of elements in a finite field. For o Finite Field size: The number of elements in a finite field. For
example the binary extension field {0..2^m-1} has size q=2^m. example the binary extension field {0..2^m-1} has size q=2^m.
2.2. Definitions related to CCNx/NDN 2.2. Definitions related to CCNx/NDN
The terminologies regarding CCNx/NDN used in this document are The terminologies regarding CCNx/NDN used in this document are
defined in RFC8793 [17] produced by ICNRG. They are consistent with defined in RFC8793 [17] produced by ICNRG. They are consistent with
the relevant documents ([1][18]). the relevant documents ([1] [18]).
3. CCNx/NDN Basics 3. CCNx/NDN Basics
We briefly explain the key concepts of CCNx/NDN. Both protocols are We briefly explain the key concepts of CCNx/NDN. In a CCNx/NDN
similar in principle, but differ in some architecture and protocol network, there are two types of packets at the network level:
choices. interest and data packet (defined in Section 3.4 of [17]). The term
of content object, which means a unit of content data, is an alias to
In a CCNx network, there are two types of packets at the network data packet [17]. The ICN consumer (defined in Section 3.2 of [17])
level: interest and data packet (defined in Section 3.4 of [17]). requests a content object by sending an interest that carries the
The term of content object, which means a unit of content data, is an name of the data.
alias to data packet [17]. The ICN consumer (defined in Section 3.2
of [17]) requests a content object by sending an interest that
carries the name of the data. One difference to note here between
CCNx and NDN is that in CCNx [18], the interest is required to carry
a full name, while in NDN [20], it may carry a name prefix (and
receive in return any data with a name matching this prefix).
Once an ICN forwarder (defined in Section 3.2 of [17]) receives an Once an ICN forwarder (defined in Section 3.2 of [17]) receives an
interest, it performs a series of lookups: first it checks if it has interest, it performs a series of lookups: first it checks if it has
a copy of the requested content object available in the Content Store a copy of the requested content object available in the Content Store
(CS) (defined in Section 3.3 of [17]). If it does, it returns the (CS) (defined in Section 3.3 of [17]). If it does, it returns the
data, and the transaction is considered to have been successfully data, and the transaction is considered to have been successfully
completed. completed.
If it does not have a copy of the requested content object in the CS, If it does not have a copy of the requested content object in the CS,
it performs a lookup of the Pending Interest Table (PIT) (defined in it performs a lookup of the Pending Interest Table (PIT) (defined in
skipping to change at page 7, line 31 skipping to change at page 7, line 30
Base (FIB) (defined in Section 3.3 of [17]) lookup for selecting an Base (FIB) (defined in Section 3.3 of [17]) lookup for selecting an
outgoing interface. The FIB lists name prefixes and their outgoing interface. The FIB lists name prefixes and their
corresponding forwarding interfaces in order to send the interest corresponding forwarding interfaces in order to send the interest
towards a forwarder that possesses a copy of the requested data. towards a forwarder that possesses a copy of the requested data.
Once a copy of the data is retrieved, it is sent back to the Once a copy of the data is retrieved, it is sent back to the
consumer(s) using the trail of PIT entries; forwarders remove the PIT consumer(s) using the trail of PIT entries; forwarders remove the PIT
state every time that an interest is satisfied, and may store the state every time that an interest is satisfied, and may store the
data in their CS. data in their CS.
Data packets carry some information for validating the data, and in Data packets carry some information for verifying data integrity and
particular, that the data is indeed that which corresponds to the origin authentication, and in particular, that the data is indeed
name. This is necessary because authentication of the object is that which corresponds to the name [24]. This is necessary because
crucial in CCNx/NDN. However, this step is optional at forwarders in authentication of the object is crucial in CCNx/NDN. However, this
order to speed up the processing. step is optional at forwarders in order to speed up the processing.
The key aspect of CCNx/NDN is that the consumer of the content does The key aspect of CCNx/NDN is that the consumer of the content does
not establish a session with a specific server. Indeed, the not establish a session with a specific server. Indeed, the
forwarder or producer (defined in Section 3.2 of [17]) that returns forwarder or producer (defined in Section 3.2 of [17]) that returns
the content object is not aware of the network location of the the content object is not aware of the network location of the
consumer and the consumer is not aware of the network location of the consumer and the consumer is not aware of the network location of the
node that provides the content. This, in theory, allows the node that provides the content. This, in theory, allows the
interests to follow different paths within a network or even to be interests to follow different paths within a network or even to be
sent over completely different networks. sent over completely different networks.
skipping to change at page 8, line 15 skipping to change at page 8, line 15
manner that is well known as a major coding technique. manner that is well known as a major coding technique.
For simplicity, let us consider an example case of end-to-end coding For simplicity, let us consider an example case of end-to-end coding
wherein a producer and consumer respectively perform encoding and wherein a producer and consumer respectively perform encoding and
decoding for a content object. This end-to-end coding is regarded as decoding for a content object. This end-to-end coding is regarded as
a special case of NC. The producer splits the content into several a special case of NC. The producer splits the content into several
blocks called generations. Encoding and decoding are performed blocks called generations. Encoding and decoding are performed
independently on a per-block (per-generation) basis. Let us assume independently on a per-block (per-generation) basis. Let us assume
that each generation consists of K original source packets of the that each generation consists of K original source packets of the
same size. When the packets do not have the same size, zero padding same size. When the packets do not have the same size, zero padding
is added. In order to generate one coded packet within a certain is added. In order to generate one repair packet within a certain
generation, the producer linearly combines K of the original source generation, the producer linearly combines K of the original source
packets, where additions and multiplications are performed using a packets, where additions and multiplications are performed using a
coding vector consisting of K coding coefficients that are randomly coding vector consisting of K coding coefficients that are randomly
selected in a certain finite field. The producer may respond to selected in a certain finite field. The producer may respond to
interests to send the corresponding source packets and coded packets interests to send the corresponding source packets and repair packets
in the content flow (called systematic coding), where the coded in the content flow (called systematic coding), where the repair
packets (also called repair packets) are typically used for repairing packets are typically used for recovering lost source packets.
lost source packets.
Coded packets can also be used for performing encoding. If the Repair packets can also be used for performing encoding. If the
forwarding nodes know each coding vector and generation identifier of forwarding nodes know each coding vector and generation identifier of
the received coded packets, they may perform an encoding operation the received repair packets, they may perform an encoding operation
(called re-coding), which is the most distinctie feature of NC (called re-coding), which is the most distinctie feature of NC
compared to other coding techniques. compared to other coding techniques.
At the consumer, decoding is performed by solving a set of linear At the consumer, decoding is performed by solving a set of linear
equations that are represented by the coding vectors of the received equations that are represented by the coding vectors of the received
coded packets within a certain generation. In order to obtain all source and repair packets (possibly only repair packets) within a
the source packets, the consumer requires K linearly independent certain generation. In order to obtain all the source packets, the
equations. In other words, the consumer must receive at least K consumer requires K linearly independent equations. In other words,
linearly independent data packets (called innovative packets). As the consumer must receive at least K linearly independent data
receiving a linearly dependent data packet is not useful for packets (called innovative packets). As receiving a linearly
decoding, re-coding should generate and provide innovative packets. dependent data packet is not useful for decoding, re-coding should
One of major benefits of RLC is that even for a small-sized finite generate and provide innovative packets. One of major benefits of
field (e.g., q=2^8), the probability of generating linearly dependent RLC is that even for a small-sized finite field (e.g., q=2^8), the
packets is negligible [33]. probability of generating linearly dependent packets is negligible
[32].
5. Advantages of NC and CCNx/NDN 5. Advantages of NC and CCNx/NDN
Combining NC and CCNx/NDN can contribute to effective large-scale Combining NC and CCNx/NDN can contribute to effective large-scale
content/information dissemination. They individually provide similar content/information dissemination. They individually provide similar
benefits such as throughput/capacity gain and robustness enhancement. benefits such as throughput/capacity gain and robustness enhancement.
The difference between their approaches is that, the former considers The difference between their approaches is that, the former considers
content flow as algebraic information that is to be combined [21], content flow as algebraic information that is to be combined [20],
while the latter focuses on the content/information itself at the while the latter focuses on the content/information itself at the
networking layer. Because these approaches are complementary and networking layer. Because these approaches are complementary and
their combination would be advantageous, it is natural to combine their combination would be advantageous, it is natural to combine
them. them.
The name-based communication in CCNx/NDN enables consumers to obtain The name-based communication in CCNx/NDN enables consumers to obtain
requested content objects without establishing and maintaining end- requested content objects without establishing and maintaining end-
to-end communication channels between nodes. This feature to-end communication channels between nodes. This feature
facilitates the exploitation of the in-network cache and multipath/ facilitates the exploitation of the in-network cache and multipath/
multisource retrieval and also supports consumer mobility without the multisource retrieval and also supports consumer mobility without the
need for updating the location information/identifier during handover need for updating the location information/identifier during handover
[16]. Furthermore, the name-based communication intrinsically [16]. Furthermore, the name-based communication intrinsically
supports multicast communication because identical interests are supports multicast communication because identical interests are
aggregated at the forwarders. aggregated at the forwarders.
NC can enable the CCNx/NDN transport system to effectively distribute NC can enable the CCNx/NDN transport system to effectively distribute
and cache the data associated with multipath data retrieval [9]. and cache the data associated with multipath data retrieval [9].
Exploiting multipath data retrieval and in-network caching with NC Exploiting multipath data retrieval and in-network caching with NC
contributes to not only improving the cache hit rate but also contributes to not only improving the cache hit rate but also
expanding the anonymity set of each consumer (the set of potential expanding the anonymity set of each consumer (the set of potential
routers that can serve a given consumer) [31]. The expansion makes routers that can serve a given consumer) [30]. The expansion makes
it difficult for adversaries to infer the content consumed by others, it difficult for adversaries to infer the content consumed by others,
and thus contributes to improving cache privacy. Others also have and thus contributes to improving cache privacy. Others also have
introduced some use cases of the application of NC in CCNx/NDN, such introduced some use cases of the application of NC in CCNx/NDN, such
as the cases of content dissemination with in-network caching [10] as the cases of content dissemination with in-network caching [10]
[13] [14], seamless consumer mobility [11] [37], and low-latency low- [13] [14], seamless consumer mobility [11] [36], and low-latency low-
loss video streaming [15]. In this context, it is well worth loss video streaming [15]. In this context, it is well worth
considering NC integration in CCNx/NDN. considering NC integration in CCNx/NDN.
6. Technical Considerations 6. Technical Considerations
This section presents the considerations for CCNx/NDN with NC in This section presents the considerations for CCNx/NDN with NC in
terms of network architecture and protocol. This document focuses on terms of network architecture and protocol. This document focuses on
NC when employed in a block coding manner. NC when employed in a block coding manner.
6.1. Content Naming 6.1. Content Naming
Naming content objects is as important for CCNx/NDN as naming hosts Naming content objects is as important for CCNx/NDN as naming hosts
is in the current-day Internet [25]. In this section, two possible is in the current-day Internet [24]. In this section, two possible
naming schemes are presented. naming schemes are presented.
Each coded packet may have a unique name as content objects (original Each source and repair packet (hereinafter referred to as NC packet)
source packets) has in CCNx/NDN, as PIT/CS operations typically may have a unique name as each original content object has in CCNx/
require a unique name for identifying the coded packet. As a method NDN, as PIT and CS (i.e., cache storage called content store)
of naming a coded packet, the coding vector and the identifier of the operations typically require a unique name for identifying the NC
generation (also called block) can be used as a part of the content packet. As a method of naming an NC packet that takes into account
object name. As in [10], when the generation ID is "g-id", the feature of block coding, the coding vector and the identifier of
the generation (also called block) can be used as a part of the
content object name. As in [10], when the generation ID is "g-id",
generation size is 4, and coding vector is (1,0,0,0), the name could generation size is 4, and coding vector is (1,0,0,0), the name could
be /CCNx.com/video-A/g-id/1000. Some other identifiers and/or be /CCNx.com/video-A/g-id/1000. Some other identifiers and/or
parameters related to the encoding scheme can also be used as name parameters related to the encoding scheme can also be used as name
components. For instance, the encoding ID specifying the coding components. For instance, the encoding ID specifying the coding
scheme may be used with "enc-id" such as /CCNx.com/video-A/enc-id/ scheme may be used with "enc-id" such as /CCNx.com/video-A/enc-id/
g-id/1000, as defined in the FEC Framework (FECFRAME) [27]. This g-id/1000, as defined in the FEC Framework (FECFRAME) [26]. This
naming scheme is simple and can support the delivery of coded packets naming scheme is simple and can support the delivery of NC packets
with exactly the same operations in the PIT/CS as those for the with exactly the same operations in the PIT/CS as those for the
content objects. content objects.
If a content-naming schema such as the one presented above is used, If a content-naming schema such as the one presented above is used,
an interest requesting a coded packet may have the full name an interest requesting an NC packet may have the full name including
including a generation id and coding vector (/CCNx.com/video-A/ a generation id and coding vector (/CCNx.com/video-A/g-id/1000) or
g-id/1000) or only the name prefix including only a generation id only the name prefix including only a generation id (/CCNx.com/video-
(/CCNx.com/video-A/g-id). In the former case, exact name matching to A/g-id). In the former case, exact name matching to the PIT is
the PIT is simply performed at data forwarders (as in CCNx). The simply performed at data forwarders (as in CCNx/NDN). The consumer
consumer is enabled to specify and retrieve an innovative packet is able to specify and retrieve an innovative packet necessary for
necessary for the consumer to decode successfully. This could shift the consumer to decode successfully. This could shift the generation
the generation of the coding vector from the data forwarder onto the of the coding vector from the data forwarder onto the consumer.
consumer.
In the latter case, partial name matching is required at the data In the latter case, partial name matching is required at the data
forwarders (as in the case of NDN). As the interest with only the forwarders. As the interest with only the prefix name matches any NC
prefix name matches any coded packet with the generation ID, the packet with the same prefix, the consumer could immediately obtain an
consumer could immediately obtain an coded packet from a nearby CS NC packet from a nearby CS (in-network cache) without knowing the
(in-network cache) without knowing the coding vectors of the cached coding vectors of the cached NC packets in advance. In the case
coded packets in advance. In the case wherein coded packets in wherein NC packets in transit are modified by in-network re-coding
transit are modified by in-network re-coding performed at forwarders, performed at forwarders, the consumer could also receive the modified
the consumer could also receive the modified coded packets. However, NC packets. However, in contrast to the former case, the consumer
in contrast to the former case, the consumer may fail to obtain may fail to obtain sufficient degrees of freedom (see Section 6.2.3).
sufficient degrees of freedom (see Section 6.2.3). To address this To address this issue, a new TLV type in an interest message may be
issue, a new TLV type in an interest message may be required for required for specifying further coding information in order to limit
specifying further coding information in order to limit the coded the NC packets to be received. For instance, this is enabled by
packets to be received. For instance, this is enabled by specifying specifying the coding vectors of innovative packets for the consumer
the coding vectors of innovative packets for the consumer (also (also called decoding matrix) as in [9]. This extension may incur an
called decoding matrix) as in [9]. This extension may incur an
interest packet of significantly increased size, and it may thus be interest packet of significantly increased size, and it may thus be
useful to use compression techniques for coding vectors [28] [29]. useful to use compression techniques for coding vectors [27] [28].
Without such coding information provided by the interest, the Without such coding information provided by the interest, the
forwarder would be required to maintain some records regarding the forwarder would be required to maintain some records regarding the
interest packets that were satisfied previously (See Section 6.2.3). interest packets that were satisfied previously (See Section 6.2.3).
A coded packet may have a name that indicates that it is a coded An NC packet may have a name that indicates that it is an NC packet,
packet, and move the coding information into a metadata field in the and move the coding information into a metadata field in the payload
payload (i.e., the name includes the data type, source or coded (i.e., the name includes the data type, source or repair packet).
packet). This would not be beneficial for applications or services This would not be beneficial for applications or services that may
that may not need to understand the packet payload. Owing to the not need to understand the packet payload. Owing to the possibility
possibility that multiple coded packets may have the same name, some that multiple NC packets may have the same name, some mechanism is
mechanism is required for the consumer to obtain innovative packets. required for the consumer to obtain innovative packets. As described
As described in Section 6.3, a mechanism for managing the multiple in Section 6.3, a mechanism for managing the multiple innovative
innovative packets in the CS would also be required. In addition, packets in the CS would also be required. In addition, extra
extra computational overhead would be incurred when the payload is computational overhead would be incurred when the payload is being
being encrypted. encrypted.
6.2. Transport 6.2. Transport
The pull-based request-response feature of CCNx/NDN is a fundamental The pull-based request-response feature of CCNx/NDN is a fundamental
principle of its transport layer; one interest retrieves at most one principle of its transport layer; one interest retrieves at most one
data packet. This property prevents consumer or forwarder to inject data packet. This means that forwarder or producer cannot
large amounts of unrequested data into the network. It is believed initiatively inject unrequested data. It is believed that it is
that it is important that this rule not be violated, as 1) it would important that this rule not be violated, as 1) it would open denial-
open denial-of-service (DoS) attacks, 2) it invalidates existing of-service (DoS) attacks, 2) it invalidates existing congestion
congestion control approaches following this rule, and 3) it would control approaches following this rule, and 3) it would reduce the
reduce the efficiency of existing consumer mobility approaches. efficiency of existing consumer mobility approaches. Thus, the
Thus, the following basic operation should be considered for applying following basic operation should be considered for applying NC to
NC to CCNx/NDN. Nevertheless, such security considerations must be CCNx/NDN. Nevertheless, such security considerations must be
addressed if this rule were to be violated. addressed if this rule were to be violated.
6.2.1. Scope of NC 6.2.1. Scope of NC
An open question is whether data forwarder can perform in-network re- An open question is whether data forwarder can perform in-network re-
coding with data packets that are being received in transit, or if coding with data packets that are being received in transit, or if
only the data that matches an interest can be subject to NC only the data that matches an interest can be subject to NC
operations. In the latter case, encoding or re-coding is performed operations. In the latter case, encoding or re-coding is performed
to generate the coded packet at any forwarder that is able to respond to generate the NC packet at any forwarder that is able to respond to
to the interest. This could occur when each coded packet has a the interest. This could occur when each NC packet has a unique name
unique name and interest has the full name. On the other hand, if and interest has the full name. On the other hand, if interest has a
interest has a partial name without any coding vector information or partial name without any coding vector information or NC packets have
coded packets have a same name, the former case may occur; re-coding a same name, the former case may occur; re-coding occurs anywhere in
occurs anywhere in the network where it is possible to modify the the network where it is possible to modify the received NC packet and
received coded packet and forward it. As CCNx/NDN comprises forward it. As CCNx/NDN comprises mechanisms for ensuring the
mechanisms for ensuring the integrity of the data during transfer, integrity of the data during transfer, in-network re-coding
in-network re-coding introduces complexities in the network that introduces complexities in the network that needs consideration for
needs consideration for the integrity mechanisms to still work. the integrity mechanisms to still work. Similarly, in-network
Similarly, in-network caching of coded packets at forwarders may be caching of NC packets at forwarders may be valuable; however, the
valuable; however, the forwarders would require some mechanisms to forwarders would require some mechanisms to validate the NC packets
validate the coded packets (see Section 8). (see Section 8).
6.2.2. Consumer Operation 6.2.2. Consumer Operation
To obtain NC benefits (possibly associated with in-network caching), To obtain NC benefits (possibly associated with in-network caching),
the consumer is required to issue interests that direct the forwarder the consumer is required to issue interests that direct the forwarder
(or producer) to respond with innovative packets if available. In (or producer) to respond with innovative packets if available. In
the case where each coded packet may have a unique name (as described the case where each NC packet may have a unique name (as described in
in Section 6.1), by issuing an interest specifying a unique name with Section 6.1), by issuing an interest specifying a unique name with
g-id and the coding vector for a coded packet, the consumer could g-id and the coding vector for an NC packet, the consumer could
appropriately receive an innovative packet if it is available at some appropriately receive an innovative packet if it is available at some
forwarders. forwarders.
In order to specify the exact name of the coded packet to be In order to specify the exact name of the NC packet to be retrieved,
retrieved, the consumer is required to know the valid naming scheme. the consumer is required to know the valid naming scheme. From a
From a practical viewpoint, it is desirable for the consumer practical viewpoint, it is desirable for the consumer application to
application to automatically construct the right name components automatically construct the right name components without depending
without depending on any application specifications. To this end, on any application specifications. To this end, the consumer
the consumer application may retrieve and refer to a manifest [1] application may retrieve and refer to a manifest [1] that enumerates
that enumerates the content objects including coded packets, or may the content objects including NC packets, or may use some coding
use some coding scheme specifier as a name component to construct the scheme specifier as a name component to construct the name components
name components of interests to request innovative packets. of interests to request innovative packets.
Conversely, the consumer without decoding capability (e.g., specific Conversely, the consumer without decoding capability (e.g., specific
sensor node) may want to receive only the source packets. As sensor node) may want to receive only the source packets. As
described in Section 6.1, because the coded packet can have a name described in Section 6.1, because the NC packet can have a name that
that is explicitly different from source packets, issuing interests is explicitly different from source packets, issuing interests for
for retrieving source packets is possible. retrieving source packets is possible.
6.2.3. Forwarder Operation 6.2.3. Forwarder Operation
If the forwarder constantly responds to the incoming interests by If the forwarder constantly responds to the incoming interests by
returning non-innovative packets, the consumer(s) cannot decode and returning non-innovative packets, the consumer(s) cannot decode and
obtain the source packets for all time. This issue could happen when obtain the source packets. This issue could happen when 1) incoming
1) incoming interests for coded packets do not specify some coding interests for NC packets do not specify some coding parameters such
parameters such as the coding vectors to be used, and 2) the as the coding vectors to be used, and 2) the forwarder does not have
forwarder does not have a sufficient number of linearly independent a sufficient number of linearly independent NC packets (possibly in
source or coded packets (possibly in the CS) to use for re-coding. the CS) to use for re-coding. In this case, the forwarder is
In this case, the forwarder is required to determine whether or not required to determine whether or not it can generate innovative
it can generate innovative packets to be forwarded to the packets to be forwarded to the interface(s) at which the interests
interface(s) at which the interests arrived. An approach to deal arrived. An approach to deal with this issue is that the forwarder
with this issue is that the forwarder maintains a tally of the maintains a tally of the interests for a specific name, generation ID
interests for a specific name, generation ID and the incoming and the incoming interface(s), in order to record how many degrees of
interface(s), in order to record how many degrees of freedom have freedom have already been provided [10]. As such a scheme requires
already been provided [10]. As such a scheme requires state state management (and potentially timers) in forwarders, scalability
management (and potentially timers) in forwarders, scalability and and practicality must be considered. In addition, some transport
practicality must be considered. In addition, some transport mechanism for in-network loss detection and recovery [15] [36] at
mechanism for in-network loss detection and recovery [15] [37] at
forwarder as well as a consumer-driven mechanism could be forwarder as well as a consumer-driven mechanism could be
indispensable for enabling fast loss recovery and realising NC gains. indispensable for enabling fast loss recovery and realising NC gains.
If a forwarder cannot either return a matching innovative packet from If a forwarder cannot either return a matching innovative packet from
its local content store, nor produce on-the-fly a recoded packet that its local content store, nor produce on-the-fly a recoded packet that
is innovative, it is important that the forwarder not simply return a is innovative, it is important that the forwarder not simply return a
non-innovative packet but instead do a forwarding lookup in its FIB non-innovative packet but instead do a forwarding lookup in its FIB
and forward the Interest toward the producer or upstream forwarder and forward the interest toward the producer or upstream forwarder
that can provide an innovative packet. In this context, to retrieve that can provide an innovative packet. In this context, to retrieve
innovative packet effectively and quickly, an appropriate setting of innovative packet effectively and quickly, an appropriate setting of
the FIB and efficient interest forwarding strategies should also be the FIB and efficient interest forwarding strategies should also be
considered. considered.
In another possible case, when receiving interests only for source In another possible case, when receiving interests only for source
packets, the forwarder may attempt to decode and obtain all the packets, the forwarder may attempt to decode and obtain all the
source packets and store them (if the full cache capacity are source packets and store them (if the full cache capacity are
available), thus enabling a faster response to the interests. As re- available), thus enabling a faster response to the interests. As re-
coding or decoding results in an extra computational overhead, the coding or decoding results in an extra computational overhead, the
skipping to change at page 13, line 24 skipping to change at page 13, line 21
6.2.4. Producer Operation 6.2.4. Producer Operation
Before performing NC for specified content in CCNx/NDN, the producer Before performing NC for specified content in CCNx/NDN, the producer
is responsible for splitting the overall content into small content is responsible for splitting the overall content into small content
objects to avoid packet fragmentation that could cause unnecessary objects to avoid packet fragmentation that could cause unnecessary
packet processing and degraded throughput. The size of the content packet processing and degraded throughput. The size of the content
objects should be within the allowable packet size in order to avoid objects should be within the allowable packet size in order to avoid
packet fragmentation in CCNx/NDN network. The producer performs the packet fragmentation in CCNx/NDN network. The producer performs the
encoding operation for a set of the small content objects, and the encoding operation for a set of the small content objects, and the
naming process for the coded packets. naming process for the NC packets.
If the producer takes the lead in determining what coding vectors to If the producer takes the lead in determining what coding vectors to
use in generating the coding packets, there are three general use in generating the NC packets, there are three general strategies
strategies for naming and producing the coded packets: for naming and producing the NC packets:
1. consumers themselves understand in detail the naming conventions 1. consumers themselves understand in detail the naming conventions
used for coded packets and thereby can send the corresponding used for NC packets and thereby can send the corresponding
interests toward the producer to obtain coded packets whose interests toward the producer to obtain NC packets whose coding
coding parameters have already been determined by the producer. parameters have already been determined by the producer.
2. the producer determines the coding vectors and generates the 2. the producer determines the coding vectors and generates the NC
coded packets after receiving interests specifying the packets packets after receiving interests specifying the packets the
the consumer wished to receive. consumer wished to receive.
3. The naming scheme for specifying the coding vectors and 3. The naming scheme for specifying the coding vectors and
corresponding coded packets is explicitly represented via a corresponding NC packets is explicitly represented via a
"Manifest" (e.g., FLIC [24]) that can be obtained by the consumer "Manifest" (e.g., FLIC [23]) that can be obtained by the consumer
and used to select among the available coding vectors and their and used to select among the available coding vectors and their
corresponding packets, and thereby send the corresponding corresponding packets, and thereby send the corresponding
interests. interests.
In the first case, although the consumers cannot flexibly specify a In the first case, although the consumers cannot flexibly specify a
coding vector for generating the coded packet to obtain, the latency coding vector for generating the NC packet to obtain, the latency for
for obtaining the coded packet is less than in the latter two cases. obtaining the NC packet is less than in the latter two cases. For
For the second case, there is a latency penalty for the additional NC the second case, there is a latency penalty for the additional NC
operations performed after receiving the interests. For the third operations performed after receiving the interests. For the third
case, the coded packets to be included in the manifest must be pre- case, the NC packets to be included in the manifest must be pre-
computed by the producer (since the manifest references coded packets computed by the producer (since the manifest references NC packets by
by their hashes, not their names), but the producer can select which their hashes, not their names), but the producer can select which to
to include the manifest, and produce multiple manifests either in include the manifest, and produce multiple manifests either in
advance or on demand with different coding tradeoffs if so desired. advance or on demand with different coding tradeoffs if so desired.
A common benefit the first two approaches to end-to-end coding is A common benefit the first two approaches to end-to-end coding is
that if the producer adds a signature on the coded packets, data that if the producer adds a signature on the NC packets, data
validation becomes possible throughout (as is the case with CCNx/NDN validation becomes possible throughout (as is the case with CCNx/NDN
operation in the absence of NC). The third approach of using a operation in the absence of NC). The third approach of using a
manifest trades off the additional latency incurred by the need to manifest trades off the additional latency incurred by the need to
fetch the manifest against the efficiency of needing a signature only fetch the manifest against the efficiency of needing a signature only
on the manifest and not on each individual coded packet. on the manifest and not on each individual NC packet.
6.2.5. Backward Compatibility 6.2.5. Backward Compatibility
NC operations should be applied in addition to the regular network NC operations should be applied in addition to the regular ICN
behavior. Hence, nodes should be able to not support network coding behavior. Hence, nodes should be able to not support network coding
(not only in forwarding the packets, but also in the caching (not only in forwarding the packets, but also in the caching
mechanism). NC operations should function alongside regular network mechanism). NC operations should function alongside regular ICN
operations. An NC framework should be compatible with a regular operations. An NC framework should be compatible with a regular
framework in order to facilitate backward compatibility and smooth framework in order to facilitate backward compatibility and smooth
migration from one framework to the other. migration from one framework to the other.
6.3. In-network Caching 6.3. In-network Caching
Caching is a useful technique used for improving throughput and Caching is a useful technique used for improving throughput and
latency in various applications. In-network caching in CCNx/NDN latency in various applications. In-network caching in CCNx/NDN
essentially provides support at network level and is highly essentially provides support at network level and is highly
beneficial owing to the involved exploitation of NC for enabling beneficial owing to the involved exploitation of NC for enabling
effective multicast transmission [38], multipath data retrieval [10] effective multicast transmission [37], multipath data retrieval [10]
[11], fast loss recovery [15]. However, there remain several issues [11], fast loss recovery [15]. However, there remain several issues
to be considered. to be considered.
There generally exist limitations in the CS capacity, and the caching There generally exist limitations in the CS capacity, and the caching
policy affects the consumer's performance [30] [35] [36]. It is thus policy affects the consumer's performance [29] [34] [35]. It is thus
crucial for forwarders to determine which content objects should be crucial for forwarders to determine which content objects should be
cached and which discarded. As delay-sensitive applications often do cached and which discarded. As delay-sensitive applications often do
not require an in-network cache for a long period owing to their not require an in-network cache for a long period owing to their
real-time constraints, forwarders have to know the necessity for real-time constraints, forwarders have to know the necessity for
caching received content objects to save the caching volume. In caching received content objects to save the caching volume. In
CCNx, this could be made possible by setting a Recommended Cache Time CCNx, this could be made possible by setting a Recommended Cache Time
(RCT) in the optional header of the data packet at the producer side. (RCT) in the optional header of the data packet at the producer side.
The RCT serves as a guideline for the CS cache in determining how The RCT serves as a guideline for the CS cache in determining how
long to retain the content object. When the RCT is set as zero, the long to retain the content object. When the RCT is set as zero, the
forwarder recognizes that caching the content object is not useful. forwarder recognizes that caching the content object is not useful.
Conversely, the forwarder may cache it when the RCT has a greater Conversely, the forwarder may cache it when the RCT has a greater
value. In NDN, the TLV type of FreshnessPeriod could be used. value. In NDN, the TLV type of FreshnessPeriod could be used.
One key aspect of in-network caching is whether or not forwarders can One key aspect of in-network caching is whether or not forwarders can
cache coded packets in their CS. They may be caching the coded cache NC packets in their CS. They may be caching the NC packets
packets without having the ability to perform a validation of the without having the ability to perform a validation of the content
content objects. Therefore, the caching of the coded packets would objects. Therefore, the caching of the NC packets would require some
require some mechanism to validate the coded packets (see Section 8). mechanism to validate the NC packets (see Section 8). In the case
In the case wherein the coded packets have the same name, it would wherein the NC packets have the same name, it would also require some
also require some mechanism to identify them. mechanism to identify them.
6.4. Seamless Consumer Mobility 6.4. Seamless Consumer Mobility
A key feature of CCNx/NDN is that it is sessionless, which enables A key feature of CCNx/NDN is that it is sessionless, which enables
the consumer and forwarder to send multiple interests toward the consumer and forwarder to send multiple interests toward
different copies of the content in parallel, by using multiple different copies of the content in parallel, by using multiple
interfaces at the same time in an asynchronous manner. Through the interfaces at the same time in an asynchronous manner. Through the
multipath data retrieval, the consumer could obtain the content from multipath data retrieval, the consumer could obtain the content from
multiple copies that are distributed while using the aggregate multiple copies that are distributed while using the aggregate
capacity of multiple interfaces. For the link between the consumer capacity of multiple interfaces. For the link between the consumer
skipping to change at page 16, line 24 skipping to change at page 16, line 22
practicality should be considered. practicality should be considered.
7.2. Rate and Congestion Control 7.2. Rate and Congestion Control
The addition of redundancy using repair packets may result in further The addition of redundancy using repair packets may result in further
network congestion and could adversely affect the overall throughput. network congestion and could adversely affect the overall throughput.
In particular, in a situation wherein fair bandwidth sharing is more In particular, in a situation wherein fair bandwidth sharing is more
desirable, each streaming flow must adapt to the network conditions desirable, each streaming flow must adapt to the network conditions
to fairly consume the available link bandwidth. It is thus necessary to fairly consume the available link bandwidth. It is thus necessary
that each content flow cooperatively implement congestion control to that each content flow cooperatively implement congestion control to
adjust the consumed bandwidth [23]. From this perspective, although adjust the consumed bandwidth [22]. From this perspective, although
a forwarder-supported approach would be effective, an effective a forwarder-supported approach would be effective, an effective
deployment approach that provides benefits under partial deployment deployment approach that provides benefits under partial deployment
is required. is required.
As described in Section 6.4, NC can contribute to seamless consumer As described in Section 6.4, NC can contribute to seamless consumer
mobility by obtaining innovative packets without receiving duplicated mobility by obtaining innovative packets without receiving duplicated
packets through multipath data retrieval. It can be challenging to packets through multipath data retrieval. It can be challenging to
develop an effective rate and congestion control mechanism in order develop an effective rate and congestion control mechanism in order
to achieve seamless consumer mobility while improving the overall to achieve seamless consumer mobility while improving the overall
throughput or latency by fully exploiting NC operations. throughput or latency by fully exploiting NC operations.
7.3. Security 7.3. Security
While CCNx/NDN introduces new security issues at the networking layer While CCNx/NDN introduces new security issues at the networking layer
that are different from the IP network, such as a cache poisoning and that are different from the IP network, such as a cache poisoning and
pollution attacks, a DoS attack using interest packets, some security pollution attacks, a DoS attack using interest packets, some security
approaches are already provided [25] [26]. The application of NC in approaches are already provided [24] [25]. The application of NC in
CCNx/NDN brings two potential security aspects that need to be dealt CCNx/NDN brings two potential security aspects that need to be dealt
with. with.
The first is in-network re-coding at forwarders. Some mechanism for The first is in-network re-coding at forwarders. Some mechanism for
ensuring the integrity of the coded packets newly produced by in- ensuring the integrity of the NC packets newly produced by in-network
network re-coding is required in order for consumers or other re-coding is required in order for consumers or other forwarders to
forwarders to deal with valid coded packets. To this end, there are receive valid NC packets. To this end, there are some possible
some possible approaches described in Section 8, but there may be approaches described in Section 8, but there may be more effective
more effective method with lower complexity and computation overhead. method with lower complexity and computation overhead.
The second is that attackers maliciously request and inject coded The second is that attackers maliciously request and inject NC
packets, which could amplify some attacks. As coded packets are packets, which could amplify some attacks. As NC packets are
unpopular in general use, they could be targeted by a cache pollution unpopular in general use, they could be targeted by a cache pollution
attack that requests less popular content objects more frequently to attack that requests less popular content objects more frequently to
undermine popularity-based caching by skewing the content popularity. undermine popularity-based caching by skewing the content popularity.
Such an attack needs to be dealt with in order to maintain the in- Such an attack needs to be dealt with in order to maintain the in-
network cache efficiency. By injecting invalid coded packets with network cache efficiency. By injecting invalid NC packets with the
the goal of filling the CSs at the forwarders with them, the cache goal of filling the CSs at the forwarders with them, the cache
poisoning attack could be effectual depending on the exact integrity poisoning attack could be effectual depending on the exact integrity
coverage on coded packets. On the assumption that each coded packet coverage on NC packets. On the assumption that each NC packet has
has the valid signature, the straightforward approach would comprise the valid signature, the straightforward approach would comprise the
the forwarders verifying the signature within the coded packets in forwarders verifying the signature within the NC packets in transit
transit and only transmitting and storing the validated coded and only transmitting and storing the validated NC packets. However,
packets. However, as performing a signature verification by the as performing a signature verification by the forwarders may be
forwarders may be infeasible at line speed, some mechanisms should be infeasible at line speed, some mechanisms should be considered for
considered for distributing and reducing the load of signature distributing and reducing the load of signature verification, in
verification, in order to maintain in-network cache benefits such as order to maintain in-network cache benefits such as latency and
latency and network-load reduction. network-load reduction.
7.4. Routing Scalability 7.4. Routing Scalability
In CCNx/NDN, a name-based routing protocol without a resolution In CCNx/NDN, a name-based routing protocol without a resolution
process streamlines the routing process and reduces the overall process streamlines the routing process and reduces the overall
latency. In IP routing, the growth in the routing table size has latency. In IP routing, the growth in the routing table size has
become a concern. It is thus necessary to use a hierarchical naming become a concern. It is thus necessary to use a hierarchical naming
scheme in order to improve the routing scalability by enabling the scheme in order to improve the routing scalability by enabling the
aggregation of the routing information. aggregation of the routing information.
To realize the benefits of NC, consumers need to efficiently obtain To realize the benefits of NC, consumers need to efficiently obtain
innovative packets using multipath retrieval mechanisms of CCNx/NDN. innovative packets using multipath retrieval mechanisms of CCNx/NDN.
This would require some efficient routing mechanism to appropriately This would require some efficient routing mechanism to appropriately
set the FIB and also an efficient interest forwarding strategy. Such set the FIB and also an efficient interest forwarding strategy. Such
routing coordination may create routing scalability issues. It would routing coordination may create routing scalability issues. It would
be challenging to achieve effective and scalable routing for be challenging to achieve effective and scalable routing for
interests requesting coded packets as well as to simplify the routing interests requesting NC packets as well as to simplify the routing
process. process.
8. Security Considerations 8. Security Considerations
In-network re-coding is a distinguishing feature of NC. Only valid In-network re-coding is a distinguishing feature of NC. Only valid
coded packets produced by in-network re-coding must be requested and NC packets produced by in-network re-coding must be requested and
utilized (and possibly stored). To this end, there exist some utilized (and possibly stored). To this end, there exist some
possible approaches. First, as a signature verification approach, possible approaches. First, as a signature verification approach,
the exploitation of multi-signature capability could be applied. the exploitation of multi-signature capability could be applied.
This allows not only the original content producer but also some This allows not only the original content producer but also some
forwarders responsible for in-network re-coding to have their own forwarders responsible for in-network re-coding to have their own
unique signing key. Each forwarder of the group signs newly unique signing key. Each forwarder of the group signs newly
generated coded packet in order for other nodes to be able to generated NC packet in order for other nodes to be able to validate
validate the data with the signature. The CS may verify the the data with the signature. The CS may verify the signature within
signature within the coded packet before storing it to avoid invalid the NC packet before storing it to avoid invalid data caching.
data caching. Second, as a consumer-dependent approach, the consumer
puts a restriction on the matching rule using only the name of the Second, as a consumer-dependent approach, the consumer puts a
requested data. The interest ambiguity can be clarified by restriction on the matching rule using only the name of the requested
specifying both the name and the key identifier (the producer's data. The interest ambiguity can be clarified by specifying both the
public key digest) used for matching to the requested data. This name and the key identifier (the producer's public key digest) used
KeyId restriction is built in the CCNx design [1]. Only the for matching to the requested data. This KeyId restriction is built
requested data packet satisfying the interest with the KeyId in the CCNx design [1]. Only the requested data packet satisfying
restriction would be forwarded and stored in the CS, thus resulting the interest with the KeyId restriction would be forwarded and stored
in a reduction in the chances of cache poisoning. Moreover, in the in the CS, thus resulting in a reduction in the chances of cache
CCNx design, there exists the rule that the CS obeys in order to poisoning. Moreover, in the CCNx design, there exists the rule that
avoid amplifying invalid data; if an interest has a KeyID the CS obeys in order to avoid amplifying invalid data; if an
restriction, the CS must not reply unless it knows that the signature interest has a KeyID restriction, the CS must not reply unless it
on the matching content object is correct. If the CS cannot verify knows that the signature on the matching content object is correct.
the signature, the interest may be treated as a cache miss and If the CS cannot verify the signature, the interest may be treated as
forwarded to the upstream forwarder(s). Third, as a certificate a cache miss and forwarded to the upstream forwarder(s). Third, as a
chain management approach (possibly without certificate authority), certificate chain management approach (possibly without certificate
some mechanism such as [32] could be used to establish a trustworthy authority), some mechanism such as [31] could be used to establish a
data delivery path. This approach adopts the hop-by-hop trustworthy data delivery path. This approach adopts the hop-by-hop
authentication mechanism, wherein forwarding-integrated hop-by-hop authentication mechanism, wherein forwarding-integrated hop-by-hop
certificate collection is performed to provide suspension certificate certificate collection is performed to provide suspension certificate
chains such that the data retrieval is trustworthy. chains such that the data retrieval is trustworthy.
Depending on the adopted caching strategy such as cache replacement Depending on the adopted caching strategy such as cache replacement
policies, forwarders should also take caution when storing and policies, forwarders should also take caution when storing and
retaining the coded packets in the CS as they could be targeted by retaining the NC packets in the CS as they could be targeted by cache
cache pollution attacks. In order to mitigate the cache pollution pollution attacks. In order to mitigate the cache pollution attacks'
attacks' impact, forwarders should check the content request impact, forwarders should check the content request frequencies to
frequencies to detect the attack and may limit requests by ignoring detect the attack and may limit requests by ignoring some of the
some of the consecutive requests. The forwarders can then decide to consecutive requests. The forwarders can then decide to apply or
apply or change to the other cache replacement mechanism. change to the other cache replacement mechanism.
The forwarders or producers require careful attention to the DoS The forwarders or producers require careful attention to the DoS
attacks aiming at provoking the high load of NC operations by using attacks aiming at provoking the high load of NC operations by using
the interests for coded packets. In order to mitigate such attacks, the interests for NC packets. In order to mitigate such attacks, the
the forwarders could adopt a rate-limiting approach. For instance, forwarders could adopt a rate-limiting approach. For instance, they
they could monitor the PIT size growth for coded data per content to could monitor the PIT size growth for NC packets per content to
detect the attacks, and limit the interest arrival rate when detect the attacks, and limit the interest arrival rate when
necessary. If the NC application wishes to secure an interest necessary. If the NC application wishes to secure an interest
(considered as the NC actuator) in order to prevent such attacks, the (considered as the NC actuator) in order to prevent such attacks, the
application should consider using an encrypted wrapper and an application should consider using an encrypted wrapper and an
explicit protocol. explicit protocol.
9. Acknowledgements 9. Acknowledgements
The authors would like to thank ICNRG and NWCRG members, especially The authors would like to thank ICNRG and NWCRG members, especially
Marie-Jose Montpetit, David Oran, Vincent Roca, and Thierry Turletti, Marie-Jose Montpetit, David Oran, Vincent Roca, and Thierry Turletti,
for their valuable comments and suggestions on this document. for their valuable comments and suggestions on this document.
10. Informative References 10. Informative References
[1] Mosko, M. and et al., "Content-Centric Networking (CCNx) [1] Mosko, M. and et al., "Content-Centric Networking (CCNx)
Semantics", RFC 8569, July 2019, Semantics", RFC 8569, July 2019,
<https://tools.ietf.org/html/rfc8569>. <https://tools.ietf.org/html/rfc8569>.
[2] Cai, N. and R. Yeung, "Secure network coding", Proc. [2] Gkantsidis, C. and P. Rodriguez, "Cooperative Security for
Network Coding File Distribution", Proc. Infocom, IEEE,
April 2006.
[3] Cai, N. and R. Yeung, "Secure network coding", Proc.
International Symposium on Information Theory International Symposium on Information Theory
(ISIT), IEEE, June 2002. (ISIT), IEEE, June 2002.
[3] Lima, L., Gheorghiu, S., Barros, J., Medard, M., and A. [4] Lima, L., Gheorghiu, S., Barros, J., Medard, M., and A.
Toledo, "Secure Network Coding for Multi-Resolution Toledo, "Secure Network Coding for Multi-Resolution
Wireless Video Streaming", IEEE Journal of Selected Area Wireless Video Streaming", IEEE Journal of Selected Area
(JSAC), vol. 28, no. 3, April 2002. (JSAC), vol. 28, no. 3, April 2010.
[4] Gkantsidis, C. and P. Rodriguez, "Cooperative Security for
Network Coding File Distribution", Proc. Infocom, IEEE,
April 2006.
[5] Vilea, J., Lima, L., and J. Barros, "Lightweight security [5] Vilea, J., Lima, L., and J. Barros, "Lightweight security
for network coding", Proc. ICC, IEEE, May 2008. for network coding", Proc. ICC, IEEE, May 2008.
[6] Dimarkis, A., Godfrey, P., Wu, Y., Wainwright, M., and K. [6] Dimarkis, A., Godfrey, P., Wu, Y., Wainwright, M., and K.
Ramchandran, "Network Coding for Distributed Storage Ramchandran, "Network Coding for Distributed Storage
Systems", IEEE Trans. Information Theory, vol. 56, no.9, Systems", IEEE Trans. Information Theory, vol. 56, no.9,
September 2010. September 2010.
[7] Gkantsidis, C. and P. Rodriguez, "Network coding for large [7] Gkantsidis, C. and P. Rodriguez, "Network coding for large
skipping to change at page 21, line 5 skipping to change at page 20, line 47
[18] Mosko, M. and et al., "Content-Centric Networking (CCNx) [18] Mosko, M. and et al., "Content-Centric Networking (CCNx)
Messages in TLV Format", RFC 8609, July 2019, Messages in TLV Format", RFC 8609, July 2019,
<https://tools.ietf.org/html/rfc8609>. <https://tools.ietf.org/html/rfc8609>.
[19] Zhang, L., Afanasyev, A., Burke, J., Jacobson, V., Claffy, [19] Zhang, L., Afanasyev, A., Burke, J., Jacobson, V., Claffy,
K., Crowley, P., Papadopoulos, C., Wang, L., and B. Zhang, K., Crowley, P., Papadopoulos, C., Wang, L., and B. Zhang,
"Named data networking", ACM Comput. Commun. Rev., vol. "Named data networking", ACM Comput. Commun. Rev., vol.
44, no. 3, July 2014. 44, no. 3, July 2014.
[20] NDN Packet Format, "NDN Packet Format Specification 0.3 [20] Koetter, R. and M. Medard, "An Algebraic Approach to
documentation", Sept. 2019,
<https://named-data.net/doc/NDN-packet-spec/current/>.
[21] Koetter, R. and M. Medard, "An Algebraic Approach to
Network Coding", IEEE/ACM Trans. on Networking, vol. 11, Network Coding", IEEE/ACM Trans. on Networking, vol. 11,
no 5, Oct. 2003. no 5, Oct. 2003.
[22] Adamson, B. and et al., "Taxonomy of Coding Techniques for [21] Adamson, B. and et al., "Taxonomy of Coding Techniques for
Efficient Network Communications", RFC 8406, June 2018, Efficient Network Communications", RFC 8406, June 2018,
<https://tools.ietf.org/html/rfc8406>. <https://tools.ietf.org/html/rfc8406>.
[23] Kuhn, N., Lochin, E., Michel, F., and M. Welzl, "Coding [22] Kuhn, N., Lochin, E., Michel, F., and M. Welzl, "Coding
and Congestion Control in Transport", Work in Progress, and Congestion Control in Transport", Work in Progress,
draft-irtf-nwcrg-coding-and-congestion-09, June 2021. draft-irtf-nwcrg-coding-and-congestion-09, June 2021.
[24] Tschudin, C., Wood, C., Mosko, M., and D. Oran, "File-Like [23] Tschudin, C., Wood, C., Mosko, M., and D. Oran, "File-Like
ICN Collections (FLIC)", Work in Progress, draft-irtf- ICN Collections (FLIC)", Work in Progress, draft-irtf-
icnrg-flic-02, Nov. 2019. icnrg-flic-03, Nov. 2021.
[25] Kutscher, D. and et al., "Information-Centric Networking [24] Kutscher, D. and et al., "Information-Centric Networking
(ICN) Research Challenges", RFC 7927, July 2016. (ICN) Research Challenges", RFC 7927, July 2016.
[26] Pentikousis, K. and et al., "Information-Centric [25] Pentikousis, K. and et al., "Information-Centric
Networking: Evaluation and Security Considerations", Networking: Evaluation and Security Considerations",
RFC 7945, July 2019. RFC 7945, July 2019.
[27] Watson, M. and et al., "Forward Error Correction (FEC) [26] Watson, M. and et al., "Forward Error Correction (FEC)
Framework", RFC 6363, Oct. 2011. Framework", RFC 6363, Oct. 2011.
[28] Thomos, N. and P. Frossard, "Toward one Symbol Network [27] Thomos, N. and P. Frossard, "Toward one Symbol Network
Coding Vectors", IEEE Communications letters, vol. 16, no. Coding Vectors", IEEE Communications letters, vol. 16, no.
11, November 2012. 11, November 2012.
[29] Lucani, D., Pedersen, M., Heide, J., and F. Fitzek, [28] Lucani, D., Pedersen, M., Heide, J., and F. Fitzek,
"Fulcrum Network Codes: A Code for Fluid Allocation of "Fulcrum Network Codes: A Code for Fluid Allocation of
Complexity", available at http://arxiv.org/abs/1404.6620, Complexity", available at http://arxiv.org/abs/1404.6620,
April 2014. April 2014.
[30] Perino, D. and M. Varvello, "A reality check for content [29] Perino, D. and M. Varvello, "A reality check for content
centric networking", Proc. SIGCOMM Workshop on centric networking", Proc. SIGCOMM Workshop on
Information-centric networking (ICN'11), ACM, August 2011. Information-centric networking (ICN'11), ACM, August 2011.
[31] Wu, Q., Li, Z., Tyson, G., Uhlig, S., Kaafar, M., and G. [30] Wu, Q., Li, Z., Tyson, G., Uhlig, S., Kaafar, M., and G.
Xie, "Privacy-Aware Multipath Video Caching for Content- Xie, "Privacy-Aware Multipath Video Caching for Content-
Centric Networks", IEEE Journal of Selected Area Centric Networks", IEEE Journal of Selected Area
(JSAC) vol. 38, no. 8, June 2016. (JSAC) vol. 38, no. 8, June 2016.
[32] Li, R., Asaeda, H., and J. Wu, "DCAuth: Data-Centric [31] Li, R., Asaeda, H., and J. Wu, "DCAuth: Data-Centric
Authentication for Secure In-Network Big-Data Retrieval", Authentication for Secure In-Network Big-Data Retrieval",
IEEE Trans. on Network Science and Engineering vol. 7, no. IEEE Trans. on Network Science and Engineering vol. 7, no.
1, September 2018. 1, September 2018.
[33] Wu, Y., Chou, P., and K. Jain, "A comparison of network [32] Wu, Y., Chou, P., and K. Jain, "A comparison of network
coding and tree packing", Proc. ISIT, IEEE, June 2004. coding and tree packing", Proc. ISIT, IEEE, June 2004.
[34] Ho, T., Medard, M., Koetter, R., Karger, R., Effros, D., [33] Ho, T., Medard, M., Koetter, R., Karger, R., Effros, D.,
Shi, M., and B. Leong, "A Random Linear Network Coding Shi, M., and B. Leong, "A Random Linear Network Coding
Approach to Multicast", IEEE Trans. Information Approach to Multicast", IEEE Trans. Information
Theory, vol. 52, no.10, October 2006. Theory, vol. 52, no.10, October 2006.
[35] Podlipnig, S. and L. Osz, "A Survey of Web Cache [34] Podlipnig, S. and L. Osz, "A Survey of Web Cache
Replacement Strategies", Proc. ACM Computing Surveys vol. Replacement Strategies", Proc. ACM Computing Surveys vol.
35, no. 4, December 2003. 35, no. 4, December 2003.
[36] Rossini, G. and D. Rossi, "Evaluating CCN multi-path [35] Rossini, G. and D. Rossi, "Evaluating CCN multi-path
interest forwarding strategies", Elsevier Computer interest forwarding strategies", Elsevier Computer
Communication, vol.36, no. 7, April 2013. Communication, vol.36, no. 7, April 2013.
[37] Carofiglio, G., Muscariello, L., Papalini, M., Rozhnova, [36] Carofiglio, G., Muscariello, L., Papalini, M., Rozhnova,
N., and X. Zeng, "Leveraging ICN In-network Control for N., and X. Zeng, "Leveraging ICN In-network Control for
Loss Detection and Recovery in Wireless Mobile networks", Loss Detection and Recovery in Wireless Mobile networks",
Proc. ICN ACM, September 2016. Proc. ICN ACM, September 2016.
[38] Ali, M. and U. Niesen, "Coding for Caching: Fundamental [37] Ali, M. and U. Niesen, "Coding for Caching: Fundamental
Limits and Practical Challenges", IEEE Communications Limits and Practical Challenges", IEEE Communications
Magazine vol. 54, no. 8, August 2016. Magazine vol. 54, no. 8, August 2016.
[39] Koetter, R. and F. Kschischang, "An algebraic approach to [38] Koetter, R. and F. Kschischang, "An algebraic approach to
network coding", IEEE Trans. Netw. vol.11, no.5, October network coding", IEEE Trans. Netw. vol.11, no.5, October
2008. 2003.
[39] Vyetrenko, S., Ho, T., Effros, M., Kliewer, J., and E.
Erez, "Rate regions for coherent and noncoherent
multisource network error correction", Proc. International
Symposium on Information Theory (ISIT), IEEE, July 2009.
[40] Tournoux, P., Lochin, E., Lacan, J., Bouabdallah, A., and [40] Tournoux, P., Lochin, E., Lacan, J., Bouabdallah, A., and
V. Roca, "On-the-Fly Erasure Coding for Real-Time Video V. Roca, "On-the-Fly Erasure Coding for Real-Time Video
Applications", IEEE Trans. Multimeda vol.13, no.4, August Applications", IEEE Trans. Multimeda vol.13, no.4, August
2011. 2011.
Authors' Addresses Authors' Addresses
Kazuhisa Matsuzono Kazuhisa Matsuzono
National Institute of Information and Communications Technology National Institute of Information and Communications Technology
 End of changes. 87 change blocks. 
286 lines changed or deleted 288 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/